diff --git a/ChangeLog b/ChangeLog index a3296bb..f3e1288 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2002-03-11 Tim Jansen + + * integrated KCModule + + * added ui-Files for invitations + + * added multithreaded inetd capabilities to libvncserver + +2002-03-02 Tim Jansen + + * added kinetd + 2002-02-24 Tim Jansen * fixed DCOP port() call diff --git a/MODES_SECURITY b/MODES_SECURITY deleted file mode 100644 index c4e9398..0000000 --- a/MODES_SECURITY +++ /dev/null @@ -1,26 +0,0 @@ -Modes & Security -================ - -KRfb has 3 different security modes -- stand-alone: - + traditional mode like in versions < 0.7 - + kinetd always disabled - + KRfb only accepts connections from the time the user - started it until he quits krfb - + no security restrictions (password can be empty) -- daemon/invitation only: - + new default since 0.7 - + kinetd is only enabled after the user invited someone - + krfb only accepts invited users, all other requests will be - denied -- daemon/open - + kinetd is always enabled - + a password must be set (enforced by kcontrol module, so this - can be overidden by editing the configuration) - + kinetd accepts both invited and other users - -- an invitation is a password that expires after a default of 60 min -- because of limitations in the Rfb protocol a connecting client must always - enter a password while invitations are valid, even if it is empty - - diff --git a/Makefile.am b/Makefile.am index fd372b3..69529b3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = kinetd libvncserver krfb po doc +SUBDIRS = kinetd kcm_krfb libvncserver krfb po doc EXTRA_DIST = admin AUTHORS COPYING ChangeLog INSTALL README TODO NOTES \ ROADMAP DCOP-INTERFACE krfb.lsm diff --git a/NOTES b/NOTES index acdf27b..634b221 100644 --- a/NOTES +++ b/NOTES @@ -21,8 +21,12 @@ Comments on various aspects of KRfb: for --one-connection - the newconnection-dialog is extra large and has the pixmap on the left side to capture the attention of the user before allowing a connection. -- the auto-port-selection feature is somewhat inconvenient when you have - more than one VNC server running (you cannot know the port). Problems - willbe solved in a future version when there is an invitation feature. + +Do the following files when releasing a new version: +- configure.in.in: change the AM_INIT_AUTOMAKE macro +- krfb/main.cpp: change the VERSION macro +- kcm_krfb/kcm_krfb.cpp: change the VERSION macro +- krfb.lsm: change the version field + tim@tjansen.de diff --git a/ROADMAP b/ROADMAP index 287c687..8de022c 100644 --- a/ROADMAP +++ b/ROADMAP @@ -9,12 +9,16 @@ Version 0.6 (2002/02/18): Improved RFB backend Version 0.7: Better integration with KDE, improved GUI - kded module 'kinetd' that listens on the Rfb port and starts KRfb + -> remove debug msgs, better error handling + -> fetch new services while running - invitation support + -> check for xp dialogs - kcontrol module -- on startup a dialog appears that allows the user to invite somebody - using email (and later other mechanisms). Dialog can be turned off forever, - of course -- remove STDOUT/STDERR logging +-> on startup a dialog appears that allows the user to invite somebody + using email (and later other mechanisms). Dialog can be turned off forever, + of course +-> remove STDOUT/STDERR logging +-> add isConnected() dcop call Version 0.8: - i18n diff --git a/kcm_krfb/Makefile.am b/kcm_krfb/Makefile.am new file mode 100644 index 0000000..d91266d --- /dev/null +++ b/kcm_krfb/Makefile.am @@ -0,0 +1,20 @@ +METASOURCES = AUTO + +# Code +lib_LTLIBRARIES = libkcm_krfb.la + +libkcm_krfb_la_SOURCES = kcm_krfb.cpp kcm_krfb.h configurationwidget.ui +libkcm_krfb_la_LDFLAGS = $(all_libraries) -module -avoid-version -no-undefined +libkcm_krfb_la_LIBADD = $(LIB_QT) $(LIB_KDECORE) $(LIB_KDEUI) + +# Services +kcmdir = $(kde_appsdir)/Settings/System +kcm_DATA = kcmkrfb.desktop + +EXTRA_DIST = $(libkcm_krfb_la_SOURCES)\ + $(kcm_DATA) + +# set the include path for X, qt and KDE +INCLUDES= $(all_includes) + + diff --git a/kcm_krfb/configurationwidget.ui b/kcm_krfb/configurationwidget.ui new file mode 100644 index 0000000..74881d0 --- /dev/null +++ b/kcm_krfb/configurationwidget.ui @@ -0,0 +1,247 @@ + +ConfigurationWidget + + + ConfigurationWidget + + + + 0 + 0 + 353 + 318 + + + + ConfWidget + + + image0 + + + + unnamed + + + 11 + + + 6 + + + + runModeGroup + + + + 5 + 1 + 0 + 0 + + + + Run Mode + + + + unnamed + + + 11 + + + 6 + + + + runInBackgroundRB + + + Always run in &background + + + true + + + Select this option to have Desktop Sharing always available. It will not accept connections unless you either enable uninvited connections or invite somebody. It will use less memory while waiting and you do not have to start or stop it in order to let somebody connect to you desktop. + + + + + runOnDemandRB + + + Run on &demand + + + Select this option to start and stop Desktop sharing manually. + + + + + + + ButtonGroup7 + + + + 5 + 1 + 0 + 0 + + + + Uninvited Connections + + + + unnamed + + + 11 + + + 6 + + + + allowUninvitedCB + + + Allow &uninvited connections + + + true + + + Select this option to allow connecting without inviting. This is useful if you want to access your desktop remotely. + + + + + confirmConnectionsCB + + + &Confirm uninvited connections before accepting + + + If enabled a dialog will appear when somebody attempts to connect, asking you whether you want to accept the connection. + + + + + allowDesktopControlCB + + + Allow u&ninvited connections to control the desktop + + + Enable this option to allow uninvited user to control your desktop (using mouse and keyboard). + + + + + Frame4 + + + + 5 + 0 + 0 + 0 + + + + NoFrame + + + Plain + + + + + + unnamed + + + 6 + + + 6 + + + + TextLabel1 + + + + 1 + 0 + 0 + 0 + + + + Password: + + + + + passwordInput + + + 9 + + + Password + + + If you allow uninvited connections it is highly recommended to set a password in order to protect your computer from unauthorized access. + + + + + + + + + Frame13 + + + NoFrame + + + Plain + + + + + + + 789cdd98c7721cc91186ef7c0a04f3c650d4b637a1d001de5b8200880d1db2da604038c29b0dbdbb32ffeceec582b30448015a85fa2726e69b32592633ab9abf7c98d8db589df8f0cbbbcb2bbe3aac26aa115f4c7ca8af4f4eee7ffde73f7e7bf73e2926e45f144413d1fbbfbd7bbf7935514dac9d9d360a540a50204f91827707f6e09d9ecb045c0c8c726e7be600e579cfde787960eb7f69e01cbc38b08d67a6e7cadaef0d8cc15336b0f5b73270095e1898c1d33dd7d65f3a30ca997b6eac7c75e00a3cdf738bf9f36dc789f5cfdd78c3a8e3bb9ebbfa67c651d0b4e059e3b4ecca0fc06110e636ff29701224b5958fc07990e7982f1f838ba0c863d4bfeb990bf06dcfb65eecc0555065980faff45cdafc6e94c57c5085e0497012266cfd7f06a761da98fd7be3346d6d3e042ec222857d5eee39afc14b3d97369e4d30879cc31e1f82abb04a8dbf2847611426d6df09b8888a18fdd145cf564ee7039bbd4fe0322a131baf0773c4dd78578de3dcfc81bf1a6741577e04aea22a36ffb4f2366a538cdf61be71a002c37f623c688f7889b3986d3c740dce55ca1efb19972a947f04b30a7c05ae5460ac775cabd0ff3eb851c13ee697a8c398ff263d77fe760ad60db5f5c57e26910aed2b70ac42f95ec789ad1f617f123c28dfedd8a7660ff3497215cae14f89ec4e6bf383ff279cb0ad1f617f13af427dc46bd2a850bedf73b71f5bc659d2f9f38331e7564e985faa0e6af35b372eb8b6f961fc69a44239e22b8d55e035e33ca96dbf108f291e30fc2fcd5560c45f5aa49dbfd343cfa5cd7f71602b877fa4a50ae3413e49598572f853ea5528477e936013a11cf34f5b1518fb95052ad4477916aac073e04805463ece6215da07e04485f20d70aa02637db24285f94c0f0cfb0ef3cd4a15fac3fa659c716bf9cfec3377f1e642709575f9c7213eb24605b6f1b42af477a98c70c1781dfc01ee65feb7615c8a03a17c1b8c0d427bc4439ea9c0c87f391eb4afc1850aede17f79a902233fe75e0546fce5950a6ced1b1518f92c6f5560c46fa109d8e263aee7ce5fd1bed08465fb83f82f621518fe05f7b2fd803f633b301f1781310130fcadc083fe91bfc4f94428473e90c34104463e2abc0aeb61e5f5b01e8db10a8cfd281a15ea6f1bcbf6dbfa20df16ad0a8c7c50062a30e2bfd4846cf385bf20fd59fc7d34f67965ed11cf65a2c27c62b0844fe74fc83f703fac8747fc9479ef1fd41aabd03fe683e5b0f9e1bc2ef18011dfa55781719e9655d99d8f0ef9a0ac55b067fd377dff0ee74fd9aac028e780bbfb9047bc72d8f7478db10af5b15fac0794e527c4030febe30f3aeec7931aab501ff1cdc9b0bf38df905ecc7f70bf630d50ac175bfba2efdf4d1b73777f7038afb954c13efc957def8fdec65f0dfe3569ac42ff8877ae5311eab3f130be0b631518e7918f5460ecb78f55609cbf382e2cfe71fff4591cc6b67e386fe0ce367e9c5fd84e1b1fee239e55606b5fa9c0b82ff95a85fe111fbef56d63fb8178ab8234b0f3cee1fe54e985c5ce1b8cb78afaf3c0e17cc3f16dfb83f8a9121518f9bd2afaf561ac078663f1087fa9e5f6d79d7fe71db71d633feb34f4a1ddcf118f75a502aff7dcd59f346eea8e919f6a3cd81fe4c7bad11b0f18f9b389faf5a559631518ebd170d3e577c27e3778c0c8cf4807666fbe63dfd547be40b8d8f981fcd9e251debc7a5bfd3fd970f4b6ea6cb0f3ae7a1379c79d0def6ad7bc896ae73b1b9550fb266a5cf5071b076ef48a3318497fdfda18b9c357dc8943e9ef5b1bc2afe84f439fdfda18efe3eecb78fd594cfc6fd9403f47eed89db85377e6beba737c5ec86f47ee12ba72d7eee65b7b2fb1d18df356dadfc1c6bd7b7093d2df949b76336e56becdb979b720658b6ec92dbb15b7ea7ecec68d5b73eb9d8d0de97bd36db98f6e5b2cad49ff7332ab4f52b2e376dd9eb4fe211bd2fb9e8cebb3accb2c32c0a6db7781f4baef42c8beebe7ba8bc4eeb1cc65512c0d6bf6021bb72e76898c3b95fe16e4db9cacd4becb9e7c6ebb5c4a75fd1624166a996d2163bb79a18d52685dfa08c9c96865e5895c46fce433971a819b222f9f3955549346f7f5f33630df496aa5fd9cf4f3209f0734a2c331fa227bd4d721cc6ec10574841ebe6fe356b4a4eb43c774e20ee994cee82b9dd3c5139dcbaf67526a3aa64bf7402c6b78891ebe6fa3141d637d8ec5c2155d4b5f37744b774f742bbf7e9552d3bd58913594b98cd0c3f76d8c44fbb63e92d7127aa0499aa2699a79a269f975524a5b95ccbb5fbd7df1e6fbefdba04b99f59c3b84029aa5399aa705e973919668b9d392d00cadd02aadd13a6dd026cdcabea38dcc678bb69eb1712ffa28b557685b2c7c1a6c2cd10eed76da119aa13db1f299f6c5caa6d49ba56d8976b1213bbff0cc5a8928704b144acb88624a28a58c722aa864c7e2b4eca814ca75c5e4a5de7325354da15be25a6672fcbc0d6eac8dbc257866f4d5f2018ff810a587f2ed80db3136b44df3fcf9f1a73646fc858f507a24df466f62e3984ffa338e4f84feaa79c8ce4b0efa791b2fd90ff1603e7d990dc955f0abdf6d8cf5ab8c523ee3af7cde8de8c2ad0f169ecfbb44a77cc9577ccd3712012b120963e2836ff98eeff98127bb55bab4de5f98dbe517b132c5d37c2d91bc2a56c6c439cff02ccff124cf77abb4f023365047577ec15df2222ff132af3ccd57bcca6bbcce1bac2f5f8dd45b787cdff8817bc97023e3cda77997b7f823eb4938d4f9c9bbcfef363e3d3d3f788777794f6efcffa18d71d69eeaf5ee893faabfdec6ab69bc0dbc7ff067de7f95b7c3f1ef1f788fa223b9535db9377a8fe280438e38e6c48d38e54cbe871cd87b1d37b84b8ce49e7b80d1ac0ddf1f973eae33f67d90732eb8f4ce935bf3ec3d97c27957774dee43aa44eef1adfc25c3f7c7a58feb8cb5e12bce7ded1b2fe3f40762a516aebaba07729b55ddc93b482b7f77c3f7c7a58feb3cb1e147725b997a0bd1961ffd17ff2fe36d6dfcebefeffe0dd22dc353 + + + + + allowUninvitedCB + toggled(bool) + confirmConnectionsCB + setEnabled(bool) + + + allowUninvitedCB + toggled(bool) + allowDesktopControlCB + setEnabled(bool) + + + allowUninvitedCB + toggled(bool) + passwordInput + setEnabled(bool) + + + + diff --git a/kcm_krfb/kcm_krfb.cpp b/kcm_krfb/kcm_krfb.cpp new file mode 100644 index 0000000..2b921d4 --- /dev/null +++ b/kcm_krfb/kcm_krfb.cpp @@ -0,0 +1,174 @@ + +/*************************************************************************** + kcm_krfb.cpp + -------------- + begin : Sat Mar 02 2002 + copyright : (C) 2002 by Tim Jansen + email : tim@tjansen.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#include "kcm_krfb.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define VERSION "0.7" + + +typedef KGenericFactory KcmKRfbFactory; +K_EXPORT_COMPONENT_FACTORY( libkcm_krfb, KcmKRfbFactory("kcm_krfb") ); + +KcmKRfb::KcmKRfb(QWidget *p, const char *name, const QStringList &) : + KCModule(p, name), + confWidget(this) { + + QVBoxLayout *l = new QVBoxLayout(this, 0, KDialog::spacingHint()); + l->add(&confWidget); + + setButtons(Default|Apply|Reset); + + about = new KAboutData( "kcm_krfb", I18N_NOOP("Desktop Sharing Control Module"), + VERSION, + I18N_NOOP("Configure desktop sharing"), KAboutData::License_GPL, + "(c) 2002, Tim Jansen\n", + 0, "http://www.tjansen.de/krfb", "tim@tjansen.de"); + about->addAuthor("Tim Jansen", 0, "tim@tjansen.de"); + + load(); + + connect(confWidget.passwordInput, SIGNAL(textChanged(const QString&)), SLOT(configChanged()) ); + connect(confWidget.runOnDemandRB, SIGNAL(toggled(bool)), SLOT(configChanged()) ); + connect(confWidget.allowUninvitedCB, SIGNAL(clicked()), SLOT(configChanged()) ); + connect(confWidget.confirmConnectionsCB, SIGNAL(clicked()), SLOT(configChanged()) ); + connect(confWidget.allowDesktopControlCB, SIGNAL(clicked()), SLOT(configChanged()) ); +} + +KcmKRfb::~KcmKRfb() { + delete about; +} + +void KcmKRfb::configChanged() { + emit changed(true); +} + +void KcmKRfb::checkKInetd(bool &available, bool &enabled) { + available = false; + enabled = false; + + DCOPClient *d = KApplication::dcopClient(); + + QByteArray sdata, rdata; + QCString replyType; + QDataStream arg(sdata, IO_WriteOnly); + arg << QString("krfb"); + if (!d->call ("kded", "kinetd", "isEnabled(QString)", sdata, replyType, rdata)) + return; + + if (replyType != "bool") + return; + + QDataStream answer(rdata, IO_ReadOnly); + answer >> enabled; + available = true; +} + +void KcmKRfb::setKInetd(bool enabled) { + DCOPClient *d = KApplication::dcopClient(); + + QByteArray sdata; + QDataStream arg(sdata, IO_WriteOnly); + arg << QString("krfb"); + arg << enabled; + if (!d->send ("kded", "kinetd", "setEnabled(QString,bool)", sdata)) { + confWidget.runInBackgroundRB->setEnabled(false); + confWidget.runOnDemandRB->setChecked(true); + } +} + + +void KcmKRfb::load() { + bool kinetdAvailable, kinetdEnabled; + checkKInetd(kinetdAvailable, kinetdEnabled); + + if (!kinetdAvailable) { + confWidget.runInBackgroundRB->setEnabled(false); + confWidget.runOnDemandRB->setChecked(true); + } + else { + confWidget.runInBackgroundRB->setEnabled(true); + confWidget.runInBackgroundRB->setChecked(kinetdEnabled); + confWidget.runOnDemandRB->setChecked(!kinetdEnabled); + } + + KConfig c("krfbrc"); + confWidget.allowUninvitedCB->setChecked(c.readBoolEntry("allowUninvited", false)); + confWidget.confirmConnectionsCB->setChecked(c.readBoolEntry("confirmUninvitedConnection", false)); + confWidget.allowDesktopControlCB->setChecked(c.readBoolEntry("allowDesktopControl", false)); + confWidget.passwordInput->setText(c.readEntry("uninvitedPassword", "")); +} + +void KcmKRfb::save() { + KConfig c("krfbrc"); + + setKInetd(!confWidget.runOnDemandRB->isChecked()); + + c.writeEntry("allowUninvited", confWidget.allowUninvitedCB->isChecked()); + c.writeEntry("confirmUninvitedConnection", confWidget.confirmConnectionsCB->isChecked()); + c.writeEntry("allowDesktopControl", confWidget.allowDesktopControlCB->isChecked()); + c.writeEntry("uninvitedPassword", confWidget.passwordInput->text()); +} + +void KcmKRfb::defaults() { + bool kinetdAvailable, kinetdEnabled; + checkKInetd(kinetdAvailable, kinetdEnabled); + + if (!kinetdAvailable) { + confWidget.runInBackgroundRB->setEnabled(false); + confWidget.runOnDemandRB->setChecked(true); + } + else { + confWidget.runInBackgroundRB->setEnabled(true); + confWidget.runInBackgroundRB->setChecked(true); + confWidget.runOnDemandRB->setChecked(false); + } + confWidget.allowUninvitedCB->setChecked(false); + confWidget.confirmConnectionsCB->setChecked(false); + confWidget.allowDesktopControlCB->setChecked(false); + confWidget.passwordInput->setText(""); +} + +const KAboutData *KcmKRfb::aboutData() const +{ + return about; +} + +QString KcmKRfb::quickHelp() const +{ + return i18n("

desktop sharing

This module allows you to configure" + " the KDE desktop sharing."); +} + + diff --git a/kinetd/portlistener.h b/kcm_krfb/kcm_krfb.h similarity index 60% rename from kinetd/portlistener.h rename to kcm_krfb/kcm_krfb.h index d90d58b..663a284 100644 --- a/kinetd/portlistener.h +++ b/kcm_krfb/kcm_krfb.h @@ -1,8 +1,8 @@ /*************************************************************************** - kinetd.h + kcm_krfb.h ------------ - begin : Mon Feb 11 2002 + begin : Sat Mar 02 2002 copyright : (C) 2002 by Tim Jansen email : tim@tjansen.de ***************************************************************************/ @@ -16,27 +16,32 @@ * * ***************************************************************************/ -#ifndef _KINETD_H_ -#define _KINETD_H_ +#ifndef _KCM_KRFB_H_ +#define _KCM_KRFB_H_ -#include - -class PortListener { +#include +#include +#include "configurationwidget.h" +class KcmKRfb : public KCModule { + Q_OBJECT private: - QString serviceName; - int port; - QCString execPath; - - public: - PortListener(KService::Ptr s); + ConfigurationWidget confWidget; + KAboutData *about; + void checkKInetd(bool &available, bool &enabled); + void setKInetd(bool enabled); +public: + KcmKRfb(QWidget *p, const char *name, const QStringList &); + ~KcmKRfb(); - - - - - -} + void load(); + void save(); + void defaults(); + QString quickHelp() const; + const KAboutData *aboutData() const; +private slots: + void configChanged(); +}; #endif diff --git a/kcm_krfb/kcmkrfb.desktop b/kcm_krfb/kcmkrfb.desktop new file mode 100644 index 0000000..95451e4 --- /dev/null +++ b/kcm_krfb/kcmkrfb.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Encoding=UTF-8 +Icon=krfb +Type=Application +Exec=kcmshell kcmkrfb + +X-KDE-ModuleType=Library +X-KDE-Library=krfb + +Name=Desktop Sharing Configuration diff --git a/kinetd/Makefile.am b/kinetd/Makefile.am index f525c47..40cdb33 100644 --- a/kinetd/Makefile.am +++ b/kinetd/Makefile.am @@ -4,6 +4,7 @@ METASOURCES = AUTO lib_LTLIBRARIES = libkded_kinetd.la libkded_kinetd_la_SOURCES = kinetd.cpp kinetd.h kinetd.skel +libkded_kinetd_la_LDFLAGS = $(all_libraries) -module -avoid-version libkded_kinetd_la_LIBADD = $(LIB_QT) $(LIB_KDECORE) $(LIB_KDEUI) # Services diff --git a/kinetd/kinetd.cpp b/kinetd/kinetd.cpp index c349747..28b1c19 100644 --- a/kinetd/kinetd.cpp +++ b/kinetd/kinetd.cpp @@ -93,20 +93,7 @@ void PortListener::loadConfig(KService::Ptr s) { if (vmultiInstance.isValid()) multiInstance = vmultiInstance.toBool(); - KStandardDirs ksd; - QString configName = ksd.findResource("config", "kinetdrc"); - if (configName.isNull()) { - QString d = ksd.saveLocation("config"); - if (!d.isNull()) - configName = d + "/kinetdrc"; - else { - valid = false; - kdDebug() << "Unable to create configuration" << endl; - return; - } - } - - config = new KConfig(configName); + config = new KConfig("kinetdrc"); config->setGroup("ListenerConfig"); enabled = config->readBoolEntry("enabled_" + serviceName, enabled); } @@ -121,9 +108,10 @@ void PortListener::accepted(KSocket *sock) { } process.clearArguments(); - // TODO: call now: - // process << argument << sock->socket(); - // process.start(DontCare); + process << argument << sock->socket(); + if (!process.start(KProcess::DontCare) { + kdDebug() << "kinetd: Calling process failed" << endl; + } delete sock; } diff --git a/krfb/configuration.cc b/krfb/configuration.cc index a260d40..f6274f9 100644 --- a/krfb/configuration.cc +++ b/krfb/configuration.cc @@ -24,7 +24,7 @@ #include #include -void ConfigurationDialog2::closeEvent(QCloseEvent *) +void ConfigurationDialog2::closeEvent(QCloseEvent *) { emit closed(); } @@ -36,16 +36,16 @@ Configuration::Configuration() : loadFromKConfig(); saveToDialog(); - connect(confDlg.okButton, SIGNAL(clicked()), + connect(confDlg.okButton, SIGNAL(clicked()), SLOT(okPressed())); - connect(confDlg.cancelButton, SIGNAL(clicked()), + connect(confDlg.cancelButton, SIGNAL(clicked()), SLOT(cancelPressed())); - connect(confDlg.applyButton, SIGNAL(clicked()), + connect(confDlg.applyButton, SIGNAL(clicked()), SLOT(applyPressed())); connect(&confDlg, SIGNAL(closed()), SLOT(cancelPressed())); } -Configuration::Configuration(bool oneConnection, bool askOnConnect, +Configuration::Configuration(bool oneConnection, bool askOnConnect, bool allowDesktopControl, QString password) : preconfiguredFlag(true), askOnConnectFlag(askOnConnect), @@ -64,7 +64,7 @@ void Configuration::loadFromKConfig() { return; KConfig *config = KGlobal::config(); askOnConnectFlag = config->readBoolEntry("askOnConnect", true); - allowDesktopControlFlag = config->readBoolEntry("allowDesktopControl", + allowDesktopControlFlag = config->readBoolEntry("allowDesktopControl", false); passwordString = config->readEntry("password", ""); } @@ -94,6 +94,11 @@ void Configuration::saveToDialog() { confDlg.passwordInput->setText(passwordString); } +void Configuration::reload() { + loadFromKConfig(); + saveToDialog(); +} + bool Configuration::preconfigured() const { return preconfiguredFlag; } diff --git a/krfb/configuration.h b/krfb/configuration.h index a22c60a..9fc5c39 100644 --- a/krfb/configuration.h +++ b/krfb/configuration.h @@ -2,7 +2,7 @@ configuration.h ------------------- begin : Tue Dec 11 2001 - copyright : (C) 2001 by Tim Jansen + copyright : (C) 2001-2002 by Tim Jansen email : tim@tjansen.de ***************************************************************************/ @@ -33,21 +33,20 @@ signals: }; /** - * This class stores the app's configuration and also 'drives' - * the configuration dialog. + * This class stores the app's configuration * @author Tim Jansen */ class Configuration : public QObject { Q_OBJECT public: Configuration(); - Configuration(bool oneConnection, bool askOnConnect, + Configuration(bool oneConnection, bool askOnConnect, bool allowDesktopControl, QString password); ~Configuration(); bool preconfigured() const; bool oneConnection() const; - bool askOnConnect() const; + bool askOnConnect() const; bool allowDesktopControl() const; QString password() const; @@ -55,6 +54,7 @@ public: void setAskOnConnect(bool askOnConnect); void setAllowDesktopControl(bool allowDesktopControl); void setPassword(QString password); + void reload(); signals: void passwordChanged(); @@ -63,10 +63,10 @@ public slots: void showDialog(); private: - void loadFromKConfig(); - void loadFromDialog(); - void saveToKConfig(); - void saveToDialog(); + void loadFromKConfig(); + void loadFromDialog(); + void saveToKConfig(); + void saveToDialog(); ConfigurationDialog2 confDlg; QIntValidator *portValidator; diff --git a/krfb/invite.ui b/krfb/invite.ui new file mode 100644 index 0000000..c617fb2 --- /dev/null +++ b/krfb/invite.ui @@ -0,0 +1,196 @@ + +inviteForm + + + inviteForm + + + + 0 + 0 + 635 + 374 + + + + Desktop Sharing: Invitation + + + + unnamed + + + 11 + + + 6 + + + + Spacer4 + + + Horizontal + + + Expanding + + + + 20 + 20 + + + + + + closeButton + + + + 0 + 0 + 0 + 0 + + + + Close + + + + + PixmapLabel1 + + + + 0 + 0 + 0 + 0 + + + + + 108 + 318 + + + + + 108 + 318 + + + + WinPanel + + + Sunken + + + image0 + + + true + + + + + Frame19 + + + NoFrame + + + Plain + + + + unnamed + + + 11 + + + 6 + + + + TextLabel2 + + + + 5 + 0 + 0 + 0 + + + + + 1 + + + + Welcome to KDE Desktop Sharing + + + + + createInvitationButton + + + Create invitation... + + + + + + Will create a new invitation and display it to you. Use this option if you want to invite somebody personally. + + + + + createInvitationEMailButton + + + Invite via EMail... + + + This button will start your email application with a pre-configured text that explains to the recipient how to connect to your computer. + + + + + dontShowOnStartupButton + + + Do not show this dialog on startup + + + If you enable this option this screen will not be shows at each startup in the future. + + + + + TextLabel1 + + + KDE Desktop Sharing allows you to invite somebody at a remote location to watch and possibly control your desktop. To invite somebody using EMail, press the 'Invite via EMail' button. If you would like to tell somebody how to login personally or via telephone, use the 'Create Invitation' button. + + + WordBreak|AlignTop + + + + + + + + + 789c44ddc792eb4a97add97e3ec56f895e5a199312a2518dd05aeb28ab0640190c411deabefc65ecf5cdc9b33bc786010e878be50e8707f8bffff39fc7cbb3fffccffffed762592e5fbaffe98ecaf97ffea7b77a7ffff9fffefffff7fffcd77f37eae97f5a8dfc3f59b3b5fe9ffffe7ffeebbf6b77b5ff74ff93d4fffdf70f6e0f817640f2350868d5cbc63f587d00cd22ff07cb4b4319a754862a4e79005a451147740ddd7ff0a944db4ae3485036238d7ba043a25f4343a4b17a0752c1c4d08f9c5e08cab8b9cf3343646cf50864452f8e3837441a9f4a3407be28b1f5bd0d024e05651a894e0d64ec09a828d3e515d0cd238d4f9dd2e5f63f7573bdb21557c9817ed90e280c9db8ca5d40bb4e3ebea9ec7643b77f61c8e288c41075fb39039ac0ead91025f6b6045a25054479b4db6554e57769a039bc011de0f34850c5cd7dea889412fb3a01b22c2ebb3c17945414adb09d938f95b25ee67195a56ebfe4f6bf7f0d51eadf3f828a027a05aa2a2aea730e74aba897ef2d4354c3e731d02ba2d43fc7826edcdc5b0af4e90dab5b01697c8d80414555928f4ebda22ab70d51734b5a72a701acea8628c2d91ed0ec441a8b42504501cd69859d16595fdd082a2a7b01b4aba8dbe535d06947797c291f1d127deb08badc1c05d4493b51c8d35490c7112b259a7629f58121125dbc0b7aa491015927aa72990baa681f0b9a5427ef4401cd760559a4b13c1554d1821647826e9cb250a2454583d9014a72fa4afbe854c05285dc0556630381ed45d08b23befa40af15773bd3557a74d3952aaa47839929a77d6efff54140a92f74953e57999706ba077dbf3368461a0b95e9a01bad70716888f6f14eaf4ceb45646c3e3044a37b9b0b38e57bd710a77c5e1908390b0175fb4a474e1b9cb23c31c4296f6d4334cbf9b5a0177d6e4e99a6cd06bdf254d08e9b7b3f16a8e6b60c7195af7343f486f99980329d52d969ab11595fe98816f163f12420d171cb10892e7473ad1e5721b0a56db2be6a085a91f53715509bdb5fa406aa41576953a6cb1d43b4c2b96eaec3c0376e0ae873aff7864874d131c429b35f01e5f17e6888ab2c9919a429b38bd5dcc0115d411a77bbbc3110a59c06717db62d28a23cc62aa0949c7ebd18a2674fe92f69a659ce85a01b8d7fa6ace71cb150fbc8099f5382415ad4b95b255a30364c9546451a6f99a041d60f80aef2d11334981829ebdd4e3487999a65b788ab4c94688f343ed4097b4c0496bb864863a22ed6e7946569889bfb50af1c70c4745fd062f4180b3acc50868668da13b5a0414194228d75a147894d68a75983abcc7b067a5447d08ea6fd3112a4d1e856862ceef683fe9235551e44feac05bcd3d633cd71a7078628f5892edbe18809ed3453c3fd7811501e1f0cd1999ad4fba98060f04e30c80add6dd710cd724247ce4a5d856699a905cd37c0004cb3ccba54c342f97073a0a23255f684b965a6bafd3c3144457d5040795dddf45240c39d1050f246334a7dc2043e6f3623e24ede05ad680e53e61fb9aa61da36c4652702d5cbc79981b152196b3718d67c4a8b21ba2168d30a99afe7aaca554f40d63f68b879daa0dfeae6b27a1c31a503e50a061f27824654c327ad3057ddaea8a85c5539dd313011a09be6aadba50aa86a44d63f6841b9a2c34a3955ddae18d6727764424eaeba5dd2b40b55e5922855a8cf2de99585facb62039429e551a8e616f4ec4215b520eb851aff82122b1c3eb9fd42e5b1a01a0addfe67dc4b633db98adef01dd3e2c67a7c61543f0514d75fef0c8c403f40a6316a64601af86ca0cfe5405e8f525f1c005de6daaff14cd85ccf823902f0fce37309a4cc83167501f38f65cfc010fd0128a7e36f2027a7d318d69a593b67fa15e1a2e9125b4565b7da7d3dbec558d95acfa5e294ef3b20a508c73f80cae36d0ae8b2af82424518f96815eb2b07544049fb5845bdb4d713032072da4e339e1abf2b01938979021471d9da282abbd3c889a7d368639db4e8d1d57f805255190d663d5d8fae5e7b8b9a4b1b45849cdacb3550c54cbaf6be3074e38823a0dbfa37eed786f70093efda4722683722a777403f1e796afd63432caabcdc18da71d9a8a8b45967b2f9cd55d6e5c172c7d840806d000573a9b726a0db9fc4b0b69ec2c443626d12cfb79933f6f16e888c3134668d01f07667889c8e5f0c91e82835a47144d4ed7a7405fa820605d43b35443ea64b435c65f46c888a7a4d0c4564ac692823d19621ea65fc0b34b9cae8c210478c9e0c51d9c307a0d5cea25e2e0c71c4f8cd40b3dc3144fb7811b481f142c0e3ec67b4c26c3da167be4ebdac1b1973dc6d20576fa090374d7b68603acabda41547cc4f0c11c73e8e81010fbcf388c959d18dc056bb8f5898d7db40f30b20f4d51e2a40a714b980394c2daa325fcfcf62bd70b10a70553258e4aecaf70468aad1bd012ddad8746588349828e6ae978fd210f5c2cc207735bc1c0ba21a6aa3cc10cdf2fd09e8a8f61f0d71d9e199212efb762fe8d0c6ce0d712f3d9d92d2e8de76051c31aa1ba2f1f74f0c7431dd7ed6ee476fb81490f571c7107d6e941be25e469b53087dbab95c47ec1ae862db06ba581b283a712f03e5b4646eb9a27df869fea30f94bd88fcef0780dbe9b721dae998f2588fe101733256948db8db8fcf7f50accb3472fafa0e6434988f952172fa9a0928b19f8e214e792f819c16f43236440b7a6d08a8391e670b17218f5e7f1085cc135fe1227c55a285e2d85440c64633433429e61f7f10ed63fa6b88accf5686b8ec47cb10977df93610faee0dd192472a53aab2d63b37c4dd4e3f0cd1c6a61303b7df3530787e1928d33a50712fc39621ca63b634445b1ff70c510d6f4f8294e1e412e8928fde8521ca63fc28e094610de8a53177f88e8940b19e4ac61c86a1b148bb4da6a3b48fa2d38af2f88e9e5dba23ff24000b00b5ef5343646cf70828809f4343dcfecfb3216aeebb65889a9bfe0025b5cf8355d9ac1494fa020a79726788f260eef0077195c5a72025387e012ac2e9bb813eb765a08b3d19221fbf3b86a8b9f742c055de9c06f5f23e33442b7cd5cdf588dac3034334a9c9ad211acc6c22208d496220e2360d518463d54b9f4ef8d2313053fa32c4ed8f968628c261d3403e54517d2e3bfb34c4655f4b0351dbf94869c985212ecb5a4ed91c50a6b3a980535866f80302fdae21d278290d643d46d3b255a7c4868f86c8faf8d6401a3f864863fc6e60267d09b00e537bb93544d607374093cbbe9c18583d8fb0b50e383c584d6930ebc73916aaa886b4df8a1168f62d888951ed279a43e5a0f4531a2263dbcf40a5867b6b88aafc6e1a22d1df39a0a6fddd067ab4e49f3343dcdcf7b921ca74671f50fbf8490dd16f67958140bf6d88ca9ee8e606c4a0a52e3ba08b7d5f19a28dfdbc180806517355abae91f0d94017bb1190282f422ab78f496188acaf7e0c0c498f8668306fbf0602db05d0a0d4a7978628e4495dc0555886fa83a8b92977bb6e414498770391ffd210e531dc9c1265ca9ac11f44d65987f983b8ca6c6c889c8e9c46165799aac45a14507f6c604abb6520a0248628205e50fd0101e5c3c048b827881754b5f1d2c0ddea94b68274cf10f732d9374465f3ae600d1450efcbc0036f57c05566af86b8db4166603ea69c76a8977ecfc003de9521f2f1fa6be0f64b4116b5ff726e889c0e7c4a1655f9a2aa4c8171cd1097ed6f20aa61a8869b29a743439458b701e45954435feda38cdb4f56f1c457ad1fd6995d3c0019eb410b729af6e2e1bdb61f6365771d50e26e7f13407dff77d740476e03eed96343dcedefc21077bb1da5de7547de3b3644943a783544211f8c0d918f9da981ab9c1bb8ca8d21caf4eb0168d01ba6534324ba3531c429dfb9217ac3ef96215ae1ef858196ccddb69a9ab25c0be8fbbf35439cc22acb1f44a39bf50c510d13e5b4a5f95847c0113f95804ef8f36088cbf26aa0eb3ec7ba76d75d6cffd7c0656740875e39bd15286a370d511e0c7cdd4df7501a29953d3d37d0e754c829597ffb3144ddbe1d1b78025e01ea1eaf1343dcedab4ec932a64e6d43d42daf8ebaeb0ec4d3c99381a59b8681c7fb7da0d0d0f825e014de69fd419c32af0c51a6fd53032b798920a7abf781929a1b8c0cd1705ff70c0494cd29acf6a8bf9424daeb185811504555dcfe58d550e53c02b60cac17ee19a85b35986e2cfdd6faf706de9a535169a7c18a1105b49e18c563f51b35970e9829edc4657beeb787ef4083aebe3b33c411fb23a04507623db9e7eeb1b532c4550eea808693a3ae214ed96e18c8d8a78076ba353344897d178668743fe7062657474087233e730347bc1aa290b7760d51c83f3f404a797c3d1ab8fd0b01a76c3f19a2abb353a5b7ee2f51fb937b01f7c21bde3fe0b17ac710a5fefb01e4c40ff64bfd018d7f4b401b9bcd0c51eadf4f06c2e7015068fad5117095f74a4035ccf70dac9f5e0325e1823d247f10897edc19787ee90b68fcf3958147c00550d1f7a74aa3a2e6d843f2071c31324489cd3f0d71d9b9eeb6a29bceb70d918fb74b43e4a3db343073f45572668eca4797a6bdf812d09147c706e6da9b23583dff3090e812e8117107a7026e6ea242ee91e8c79381443740937a37b042a28cf5e984f3a98053c62b038f80958136f6020c48f4b53210d7ef0c2ca74708eeb5eb39ab3d947abb11fb1c6bbd1ba0a9e0f80bb4e81edd23416c37bd5a4e00b6575e2d17068ee0e6daa58ef83064013343dc4bb930147104f5d2ae3822513eba6ca298c72cb8e7883ba6b21d718fa280fa0e7d473da043e83bea0b880e7b3320a5ab1f950202db6ed7108d6e7f6888eeb17b0c641cc1fcb4ef90b3b330c4cd2d1f819c48b77d2bd0296d439cb2f36d606d6b64604ef70e14dccb5647c0bd6c7f18c8e9d210f7b2ff6260481a1be22a3f5d03b3be6b03f7720194c4e46f65ace42adb9f86e862fbaf8648636b7304f3c2374354e5f625503114b01ff70fa208d9b2da77d85aa96e15a5bede0c0c164b038b5d822e43f4f2494011b279e10fe2e6be5786a8b9afcd29844f156197f9c7e4105050e2a5f01f306353edf7b8b9955a728f34e6bf86280f36fbf45b7d4aeced544040f9b836b05abc30b0beaeee31a0034dcf040c7c531f41112eda06ee766c884447947abb4edd0e9f04ba971d439cf2513710e9be054594d80b77db6e502f2f0d435ce56d6060c27a2c20d0cf1243dc1cdba3fe8030fe62600df64a403e065b06d60c6e802691ff43893639a29f1822ebefbadb16adf0655fc011e38921b2fe7662e02d313daadde6b283cac018f529208d61cfc018a512eb149cd23444dd768f0d2c53aae652a09b1aa2080744ba7646217733416ccebf5ace01069c5ab26f606c38004a1db16788ac27878638a55a1a22eb89b2ae01a76c1b1892e8c81a816ad5a7219a65a252efc5c6faaba58ee8eb08b5c2416cacaf95e4a3d3601f3dab3d7d8d62c9821694d5d9aab11d817ee0a8bdf56488fe723430b066d0071460bf07069e3db60d71959d77a022e4ecdc18e28843031177e7d6c022c29e4001b66b60bcbd03142df9b38a81a3e5feae218a70bf1490e8ef1bd053c4fd30c4295fcf86c8d8566a889bdb33d0c57eea8648f4e7ca1045f8f56d88dbdfbb07fa14f2f2c110476c9786b8ecbeaaa1af44770c8ceabaca80f2989c1b228daf89808eccc694c13a9e4621b35f7be078fa5b1aa23cf803a181e3e97c6960c984f6e178fad5145062abb68175dc5d43341876650d1c3edf754a53a3d8ab81a7a4be809b9b6e1b184e7c0a11973dbd03c7d329f5b20e9fbc299a0b38824d8b7fc0a2cad0c0bba415d0d673e5b380bbfd30c46edb1a7f7930703c9d1f1aa239b09776e0003bf0550ac639dd4b8796ccb6b535288d0df04e2b3544c6fa0f0616bb547329653a4c0dacb228eb8adafd3343243ad835b046df03328a703e31f0def4ca40e46f19d801b00fe414215bcefe20d278ff36308751a9e7f13745b5ee8981dd61a581d19418d42e68857d9547c129dd9621f231a819a22a076a9625773b56832939a53b354445754f0d515165c7c090b43244d3ee110cda15cd61ac8c55245aa606d258181891eb067699e85e348a7537104774d5e818c56aa56e8e51ec6af96e8823aa91212aaad22903a5911938e2cb10cdb2a45776ea01574b8ed0d0582b0786a8b98ae6d069020977db69094e0dd160121a6ea71d7f6276b5a42ad7331696f662163c483336d98c895269a5bfc4a069af47e418a2e735017fde313f061a1cc1bbb535c411b5877f95fdb78d8b8d5cdb4980c7b9a30df0845303348a6dbf19a24c773f803e417aaf6f88230e46028682fdca104dfb6068883676780b68c0d92d0c51c87b4b038fd5bf0212ddff3130ddf029c4a0dd2f433cdef7df03d6a318f76260eeb0df32f048dc3444d3ded932f0b07a6c60867268e0e5f4b6211addf2196830318a3fa7fc0386932d1fa132fd30c465f73a86b8ecce9781cb6e80075e6adf43e3e7d0c03bf1170197fdca0c51eaf1c7b4ff204ed9ea09182b97754043e3f7c210b51f93ef7f1065baad7bd1e0f9b96f8858f8b56b8844777780b6c6db3b03ef1b0606c6ca8e216eff7b0c74f42ca6ab68245cbc1be294c5b781ad9113032fc93f8194a6bd6c0874fb7b06e6410f02ee25f68efe032e3b3544892d4686c8fae408c858e95dbe1858b6bd1070b78b370189cefb0696074706a67033036fdf2e819c44e32fcafe806a982f0c4ce1de0c91c67c0394476520eb5740414b9ea89b1654d46ccfc07443f9284a16877d8a06f17d033bbad53eb48cfd3237d0a4ce05b4f5d713035bac9a062657bf02f2313b3430a919189819ec19a2e1767303dbf8d43e2a7ae56b21e0b2efd70212ed1f1878f39e18a28df50f0dd1b4bb1b6054f75518d5075da0ab89e28f212aaaa7f2d0cca0d730f026d16930aa0fd4707bea626a0efca96cad5737b01bcaa790c6a467606e29e893e8e0ccc01c46e5a1c7eaeeb38175875b4324da130c68daa5da986628dd33033b11e8409bf9075d6c3ddd606b02bd613dbb889a4b9a8638a26498efa431dda895d44b278b3fb5bf5a5e19da0184ad75a06b065c1a38e5cd10972d1992d673188ea81948b467e80450519d5247948668a7e5878145952d038b2a8c2f9d2e53a7290d46b39ce44dd064da73148daee189c041dc4b633dcc3377180a3862ef166810a4b7bf040c5a87d706d63fb60cd13e76df81264b047b4aa3491a7b0303abf8134394c7de87816d059921dac7cf8580b1616f0e6834dd4f0c71b7fbbafd16516aef046893b1fd54c011fbb981bd700d038ff7af4087e0b8b31270c4eeaf81f5a067034fe22ab1946ad82a0d510d9f4a34a59bfe5c1a78915a19d873350232e652bf998149cd4ca0029a0a48f4f3c410fdf66b730483b85a50cefc74b532b0bf50659a532ff137897f401a5f8921d288bfdfff03c68665132828e4f83bbe3fd002c0c21057996786c8c7428daee0e97536343053da002f20742fdaeff0fa63e0af17d41b34ce4d8786a886b99aa5c6b9f99121ae127f5afe0fd8f83806fc4257adb0e288992edbd502802abbcbd0b8981958f99e1858dc51c67a94c767cd40117e1868a79b231881b60cbcbfed1a788afe313058dc1878d1ae8cf9bd47dfc07e18a5d1a7bfc413df1f70d9456960c5c86970d9976703ab1b6a637a3332d5cd0d288fe189818a4a0cfcfd4bdb10892efa86e87363d2e8e809a7b72ba02a47f4fd0edfa9a9bdd04ed7031fab2c54f67a9c63d7cdb38147f31743b4f54a576903ddb94043636e8866d9e5e63a1d9df2046834ad7e0c9c42275c8fa6ace510e93a39b7df5f0a38256919e294e4c1c068aa7c309ad6925f4334ede41e28e3945af2636078ed1a185e2b032fc90b43e434a91928535db6d2b8ff6820d1ae8105a267036fde3303ab2cb98125135a50477f7fbb3a3044b32ccf0dfd488381afd3636650d60d6c0950790c2a5ea60c0cac2991685aaf7821931a7877f264e0edca19d050c68830a9bfa8437328f4876c4731b96aae07e0b8dbfd774083e7de02d083e6d61da01d00bfb92142cede8321f271d010b032b1b732b086e234e884473501f9d86f1b983b740d8cb727066639f740c602d1ceb58177f3bafd8cb9c37ec7c0eb96cd11bc80c80cbc7f59023947ec3f1938a26f609565734a74e4f888d71a0ad6720e4a01a76c7d19d8b17b69208d03a0d460f1698844b79b066a4e775b31bb88cf7cfd0183d6ca47704a7ca7e61ff0dee3c7c0dba60ae892f5b99a94c6b9d5b1817d5b4303ef5f041ad6e6858161ad6b607ce91978f3ae56a821895eb9060a68d13490c6dcc022c2b1816daf470686135f85783a6b01da7434bb1168b943653aa05ea6898175fe9a81223c3170d947037f803a3530c98b9941b353a7254f4f0d14d040c084e4fdcec026bdcd11bca0a223771a3c234f9e0454d4ecc4c01b2b9dd2a49d0e3301a5fe4665af87467630b70dfcb1021d683d5632334801cdd7070f069ed5f7000d7c837320d713f0af80d16340fb588f628cea0b43b4f5eeb9214ea95203cb1d2340035ff964e0881d038f918921cab44b83598f405cf6c5c038f7608844ab9e81bfa2b837307a94061ede4f0d8ca634cbf52846a21f8648b4da3130ac9d1948e3d6c07e3a3ad07ae06300fe34f086e6cec01281caa3cf55aa8981ed0d1d0383a7aaa1df651ea4863be0947262a03c2a0397a5083dde964d03e32d39f5f09a6c1bba910fca54e36d2da13cd29686e81343b4c2e4dac0fc83124bdb4af4c8c011af8628f5f20de828d12b03a7fc1a98a1d0e7d294bfceffba14746963c4a034d3f46bc7c0c448a7e47c7d6e42c6b2468f0f5f71d94c1f24e329a999b580cba8ec56bbcddce1e80bd068baf70868fbdc5e4fa055854f03dbf82606d60c9a06b6373c01da3eb7752fe05163bf1010e9f6da8638e52031f0683e1330beeca486c8d89612ad1892f6757315a7ecd70c2c556c1b98079d005d666c3f2ab12e777ba034bac4d3fd9e817ccc0dfc41cc9621bae9efbe2172bafd0ef4183db607065ea59d0b9468dfc0768fd4c09fba750d2c8828516d035ea96efb04faaf968179d0914039bd33b042726688abac5203d38d13035b8aeac08034762606d2783690c6ae21ca23be42f30fd8ee716fa0e662cc6ead47e43822be67f007a4f1f965e088c4c0307f66600a37021a9a6cf60dfc3dd08e807a59a4864863c5ddfaf9f6fbd5c05ace81814d368f0616554e053c574e68631dbd17fbde31f0277735015779a5f63b6d162157ba393d127f1c029a08ac54a61ddafaecd6c0d2cdd2c04e155ad0dfa77de2b20f02e60e1fca7a467388ef39ae21e76e3f7e0dbc09b834c4555e5b024d049468c95578c3dbf2dc613430b0ac4f30f030df5d011aa27b8706de37dc19a2a27afb06361edc1818c4af0d0ce2aa6c0de2bd2303575919f8fc0921c78378f7c2c01b1a558386e82a33f0cae6d610b75fdd0b18e6fb5c763d449328ad703d00f304dc37b0efe244401ae58581e50ecac34374f902b4055f86683055cdc0d0c8bd6800ae95af068e383330ffa0f6d7233243f4a18115a3b1a0cb560d7ac37a441e041c087473df40ae23f6054a63cfc08a510914ca982e5be8941d031b523747f08686769a963a62cbc02787e82f699fefb2a813aea70a7cff949c7aaa30a5a2327d33f49df1b66cd579231131b9ed45d9a36d0111e6e8d21037b7b7057435ddf835b076712a2016eebd001a09f775590d7c076786e82fbb6f8076996c1f0858dd382c04a4b17f6b60c964080c34dd980b18f8f61b8638e5a032b032513730365c19d877b132b0efe2dbc0781ba5deee6867f96fdb404ebf059a7f2c0c94e9be21f2717060201fc706f2f16360efc6b680a7b56dea653d8af1b7c4f7062e7b62e0b25d037f11b23070958180ab2c75b7da43f27b27a08d2d95f526f572706b60e7f08e819d4cca6993abec6e19a208773b80de8b6d1f026d5d5647b4b530b36760c7cc079032007f760cece955bda49ab2a89035127e760d7195f90d9051a69f570676319e0a787a9da90873ad4c3c0a68a7b33303f3c23e50e8958dae5268412413e8eb73af80e6ebd3ba80428eaf68fe03fef04205a407ef97a6813f84a513ae8746fe16706460ca72666023e818d058391a19189197064a4c05d4238c8fd4b4359abef40d91c64819d313f09b2acac32b2596d639a247c65235fec1a321b2de7b1068aa20d05839a0c4d66325db3cf70c9c420bf2e059ed19183c75d976977705c4428f95550ea4827d03bb1875849f4d9f0d0c9eaf822e1f583a35f0c04b84d98c952f02ad2a740dbc2ad9004b26d48bc6ca5a951838e5dc1045584e8152c3ebae81532e0c714af56ee0854cc7c04a0d913fad48a32a0da4313350ea5f40976d9eaf84adf5781b03302b9bed62d060348d8c75fca079f801f4988d1f5d09084a4723a0cfc3c8d1b980b1f2f00e18689ddfa061edcac0981d3dbbd3d11689830b014169af01e8cf90f69a06d6d79546839ceeb50c91e8e18b815d8c99215af2fec4c012c1b5813f2def0814d7db80f65dec9f0a94d34240a2fbf7864874772e20d1fd63a0a59bdb33708ab2ded2187568e02a0f02a2e55e6ee01545cfc0b28b8e686b7255135073874301891e8e0cb4a0be81f58f03a043a23b3aa2c37cecb765a04c95b1546f4654c839cb2ebf6381de48cc006f3cb833b0cbf548a0c7d93340ab3df35b0303ce8980bbfd6a1bf8bb465554c55bafa9ea45eb41934f035b132e05e463b9019e4d95f5ae8e3834f03641dda3a711f9d410fdf6736c60dfe7cac05f0baa6e3546cdd42cfb9cf25619f83ae1e6083662a86e3568c547ddff41d4fe9baa52a3d85b69e0e54122501a94a9d771e767061e239f8036917fb80374982af41680c686ee2ec0d8501bd0d5d74f490c6b530303ce964043c1dcc0931615a5c85fab0a431c51360cbcbda75e3671fdcdc0119521024af56c60971a4d4a81bed67d057a1a0a56065ec5130cd64f6bbc35bf35f03e9b48970e74c49d81457bca34abeb942703df822663997eae61fc6c889b3b8aaba47e90383a03348739b801142d0f8e050a3939a08d180777028e38b83410e98e0cfccdbb4ed196b3bd1b03e1d3c0550e0702e5a36b20f4f50cdcedcac0bef116a07d6c7b2301e571580938e56861e075fe0f90aac4f6049cb27f0e640ce2bb270262d05ed7c047ef3e81827c7ceb08bd39fb6d02fa5b9ef81d89bf6fa9531e9fcf408fdb5f1e1908c1db409f44670f06f6163f1b78b2d0cdf5e92f1f3340f163a9ac0fe840cb1f035789313b4deb0c16d32781ae726420e49c1b787eb912e82adf86b8ca829caee7dabc8bde37b0e23c36f0fef65040a2f1c5fa3568f56b3805d4e85e75d90eb3ad3eb7efb0d5d3cd290675ef01859cdea38187005d855f10aaf5bf0d7c8eee0bd060d17d30b0836869e0ade8b78180a27c38063d1a0828f439c5a05af96be02de08e81b7c4ef06d60b6963595d696c19788e3a36f09e70176800091d396b91683207fcc3013f02b60127d45cc62f095cf1573669c6e7f86ba3688559b3c7e7818f626cc81cb68eea8002cad1d24040f93444bd1cff1aa2ab1f7f018e1fa786a8a8e32d03d12105529ad4d18e2162e17147a0cbb60d2c769d0119afb00ecf054cbf0e3301f9d86d02395b8af6af01cdd8b6a7026e7f7f0fd026cedda18119fd36a0f5f5c3d2c0cba523a0cbcd6d7f033d7ae5f6d8c03b1cd58b438e8ad021e7d740b48ce098ade3071b42760d44871d0311e64b401a9f2d408f2b3f7b06f605df0994b15b0321e7c540c82980a6268aaf0632766d88343e6f0dfce9ce25d0a2a27e96024a2cfe9c720d6d9e5f3e0d647dfe6c60c96420d0a457f9d0246f4221a71d8e98d382f40abcf6aa22f45fb53e012559efe96ebd6782eee18052d13e36e1e2c0c011274043471c1a388206b309174ab4c34f4f4cb9972ce57b8e25759be5848b87e8eaf9df96ff7ff0fc0de440fa0174019ef7737fbcf365dbc0ee9fa5214a7d54009df89e63c21f80e46d7df7eb9834362167c740c8f90114728ebf0d71c4c9be217ae5710b7040b93770ca8e214e397904321df164e008e52307f68f808271ffe806a818f7771b805ec51fbc0bf458fd6560c5f9d3108dee60574084d9bf007ada78702dd093f8ae81c7fb8681d573415f4fd1030393bc4360c0117b898109eb998031fb27a6a379ca2f3ad6e2a726ff01a1ef55400cda6a1ad81b4821a75aaaf8bc33102e6e0c91e8cfdcc0cd8d8016a7fc2c0c848b9e8105f71aa045c84fcad44b8cf1e3696b50939a09324ef93e0034a59da506fed0f10a2889859f6f0656adeb4045a23d1dc12f18d686313fcd337e31a7d62b01458721e591f13380b5e1d840fca0e632fd52deec1948f9d9bb19fd36cb78b04a681f8e1fe531c0afeed412658c1f52a8254380df4da82513a0d7e50526779bf575c4c8c0b2ed1418e88837812646f4a89c3f2daf9d44402936d161cf4047de021c0c760d1c710f38183c1838e2d710757b3603141d4e478638e27c7344d4cbe91250fb38f93670c410d01f901d35811e2d68378ab048ebbcb2d9bf12e8f16d25a059ee55026617dbc78086f9ed99805e79c065533f342f059cb23334f02db50df026f1d1c016ab1d0157d92b0d51ea870706f60751739e19eceb0875f5ed5d03977d30d0d54b0333c753812e7b62e0edec2dd0d6cc515957b8d8490cc4e40b40eff73f1b80de487c1f026a0e932fa0a04c2763a054601b000ae3b34c40089e28ebdab834d1cdf5b5a2f82320044f68740e28af430321e71550fc18be19f8f3d239c0cfddd67a1f00bfda75c55bd122e357556ad539a0e850d2e7d6d181beaf34140cca4b017dbfbc03060a280d01475480a343b90f34749557418fb72b4d035b135a007b146bc9d840707c01b413614eb3ccf3829d08a451f0fb2fc93be551b61a2cec469996ad824f50bf7f0215df621c1e02fa92de4b01e86b4967f11c553a069dcd0d44a9534334bab336a01874766688232ef60d71d9b3145050ba7837c429275f80e641a703a04b1a2777866841c74da00f1c4599960e5bc7bb0676555c024d6da2180848e3f048a09e7d6888530ebe010594bd2b81d2d817288d630341e9046893b19d2303d1e1d81057391e0948e370cfc0e73efa8076ecee9d1bc8e9a521dac79772aac79583a9218e38ac1b98c2dd031ae7be6e0d71fb3b230391bf6360696f06149ae4d1c636b31cea36654359c21ec5d2cb3ff185d4350c58429a370c3c01c7acafd45a702dbe90ba8626ede3b52be088092dc8ab2c9391815fface818cdff77853a2997e64982e96e574f58a52df04945b8182122d48f1a3561e008a1fe5b58137bcdc9ce247ad3c3270040d37e7556bad6a19c858db405c8f11a86af5f91cdd795443b5e9d90786a8a8f306a09abbb83344115e750d51d9176f805e2e5dbc1ae294f339a0be7f716b88234efb8026356753431c71b600141dce5a061e23c9a9973bcea78638e2e4d610e571da03b479e1f814d00ce5f813d0dce1807c6c3af240a0803203d44d0f260616bb86029dd206dc6fe706faed9381a5bd0f01e3fea1aea2f9e9d1ae21b27ef86c20d1d4c0cb58dd7ea1f71e3f02bdf7d831501ebf8076a81e3604f4dbad4b40eb635b6706026c22e05eb6ae00bd9edcba06b409fcf71ee853625bfbc0809bdbba1090e87674e42ad3e69609d5a06050e36f56abac2da8195875aa001e9b6a8bc210816dfa0214c40ffedab8ca5bfa98d8444047eed14e373dbb69a0675f18a2676f4783e9faa355c3183dbaed943f56b88c52efba675f5e00ead9579521eee57a00a8235f9506fafe8181be3f06d4912f5e00ad3b5cdc1888412da00f9c9d00034e398b71aeeb7e7b7c06b8573e009ac01fa78036d79e908f75176342f26a889b3b7a07d4c58ede0c3c468e04a4717408a8031d1d18e294e389803676acabe8a5f0b1f2a10d43c7fb06def1ed1a22a7c733406f898f74958a538e28d3f5684a7f5111eabdd80ee59169e977977ac9b40eb3c801b7756a5f4dbbf67504a402a59153fb3d729a77f809e137eeb6e407a46bc3986df5dafaeceab02b602fcb750c053db7d3eba18176da03d44e6fce0d71c4ed04d06e869b0b4364fdf60350015d5c03038eb88a7edb5bb7c2a8ec8b2b4083c579dd10699c654053700c68f4386b1a22d1536edfc3c91959f7e871f269a059be0bf8e59eef47402df97c628849cd97329612934fc606bac79b21caf4b461607a4e896ddafa85806679fa6688ca3e6d1b68c93ac2bd612a208d939681349e0d040381de461e3f09d43d6e0d91c649dbc01bab23402f308f1e00f5a8e339a0f795075b807664ee4430e8ad3b107f96b50fb438e54b47b8031d00ea405b870646311a8c1e9a93574a3d2b194ee2370ffe015b7869b859a5dfd055a2faf5d2c9b380530671fbfd769f7727b7510dfd4d7f390314a4afe2e6faebde1039bdda039aea1ef7809af6f90250c33de3b20eb0a775811a5dd3108deee406701b6b1998b09e1938650ea8059d70736e1f2733431c71563344019d9c00da7573726ca05956801acce9c210b57ffa6e88487796005de0b463a08b1d003d75d321d0a7f11fc438d777183f7e31f0d335634071fd601b686ae63815e871b66960e648dd667abe3df800b4fdf620073483dda26e374dfbc0100d66f70ac80497866830bba740ae23ae0d4c583f05fa66e82fa0a6fd2de8521e5fbaec8052df8a183468eba5f0f704d04789761e802edbf73fa2690ffc57f16f674093b7c4fd3da0a36fcb71156f7fb97d0434bedc46d81a787cb93c075a54d4c508507fb93c13d02caf760dd10a2f2e0105e9f30f40bde1fcd4108dee726ee029a909b8bf340c91c6e5c2401a330369d401f7975703dd2307dc810a431c71766588423e7d32f008780b28489fdd18e294f3cd116c4d500169f7e0c9a98123748a1accd99d81578b54b6974b4f1f0d7c98e41850073a7a34f0d22f03daa471bc3070954303a7b400f5b9a33b03bb8f6b8082e3ee85811e7566a0474d819c89c0eeb981236606568c9640a18fedebb2652f2624632a4abd32e1cf2afe80cfae520db95e503dfe6b0ecdbadf343fbd0ae2c78e6bf561c0dfbf7f89c60f07fc83b8dbe20768734af16de015055769f7f495d5dd8075cfe6ef5f4863ddb3631db7770d74d87c3d3e05f4d1eedb5e40aaef3a5d5e01eaa6b7ef8668eb37a78648e34669a8df5e1d0a48e3e612c839e57269e0e16c07f0b0c6edbbcf5d770c4c47bf00f7b96b43dccb992eab2e767e65a08ba586a8dbcba9211addf90da061ed6c6988342ea68648e3fcdc404e551e7a6771f663880e74560003c14580ba69f2c1cd650d96d34f160275e4b9814e481b73473ee6f6dd2b8f578668b8c77da0a360d00634d73e20a7eea647af0616445a807ae561dbc0efe0750c2c96cf0d11820f1786e8a6f19d9a35689673b832d0d5e706a60a33a0544e3b06ae420b5a0798989f4ea9ecf5cc894f51fe8b96cdcd67e0f6e3b28d759f6313f835a045a641f49786b62525dfa4f1b79ff01fc42ea43f2063377d400f12b73343dced750ae86df5550d28754466608856a27aae3c6f0b38e566db40c3e55edc3d2e66068ed0cda9f19f770c71c4d5d010cdf2e21850e33f2f0c249a19e294cb5b03af9e9f010d6b171f064eb93644bd9cdf07ac3b103dbb6e8853aeae0cbc4bca01f5a8f31303cfd954a5279b27340777b1b3034364fdf4c1c0433359df74c273036f9bee0d9c320134569ea4069e8029c2753725d1470337d70532a5716ea0ef370cf4977d40ddf4e40228b4a67462e0942703a77c18e89554e5ba13d2f7ef0d3c04a4064e2904bca2385e02954ec90c3c56d31c323d9d1cee08987cc7cbe935f418d50fa9a8bc4107daa67be4298fa2ef11611a6555e745590c7ccd4e5b7f2afb0d74d81e157b7ad7a06fbacdbf002d520f221f7f9fc7619ceb021ad66eb600fdc1e5d599401d79c7100df7660068d0badc3230cc7f1be8b7278648e3ba6d88c67f49d6dd6f2f7f0d74c21f43dced1505e47e7b9e1b38e5d910a75cde05f8edfde58d21caf4ea18d03877756de0889121dae9f903a0a7c68bb98170a1cbea35e9c5a1819edd30c4556e17063ae11250273c39337004b7ef3e773a35b02250021a3ccf7a0696a16e0c3c48e81475c2d399814e786d88867baabb2d58b43f3e02dc2b73030b77ba8a3b611dd003cdf1b181e7a89a80534e54a67abe3d1d1b581bd765bbba4a666041840693f5b4f7eb4dc053f4e92ed0a7671f2b1f03de48ec512f79c6cd7d466f68f9af9e6fa3c45ade6d7bd500f8ebeb2496c39a7f1f7c08785b017a0b78d514e881f7d4409f3b02d4a36e97063af2ae215a61ebc1c044a00fa88b5d0d0ca4f16188346e9280cd48d832d0a33e018d843727067a65c3106dfde6dd100df7ea1568aa578e01f5a88b130347bc1848e3d2409976000d9ee76f065e0a53621e1acf2a40bdf2ecdec0290f06de36ad04b4c2b32d4083e76969a0dfd60075d3b31d03dd946a70373d290c7453dd5ca9acff1a38e5d240a26f067a83f251f1c583932b81ae7260a013be18a2499da87db8dfd24e37fdb666a0dfea5ed46f4f95869e814eb70574e4d31f030f5623404dfbf44ba053be0d315f8f5f52fc077475da58de20d1434ec9b31edf3d8fc8dfee0cb4b615e3eddf6f75d0c5a27db4bd20729702ea0dd795214eb97d363036d4018d2f576d03fde50150e3bf6c026adab70f86680e37a581974b2d01a57ef306e83de199d2505bbf2c0cbcf3ac011a922e760cf4b90b035b1374fb6ada17a7805af279d710cdf2fb4a40459df501b7e47743b4b1cb89809b3bbf30b04430002addedb681449f0dbc9d1d029a179eed1b68da2b43b4c28b04e8298d5d03edf457a076fa6960dd6104a8699fad0cd1c64eb7044a63c7401a4b60a0b72b37029af609e5b16efc8c84b7400b38a1e6fc2afe90ace7bd5efca0c31b2da8c8d952348b194abb6cb5e271f68d6a28b3663498bba8ec4eca6bf4e4ab04f4a76ecf7b8046b1e75d4043d2f38e211aff73f4868e87a4fb0ea045b7fb2d40c3c9d3b1810eb46b8853da334394fafd2fa03e773334d0e75a069ed5b95b8f2f37f78638e2967bf17072bb32b0d8f50568b0b87d33c411374d03bd611bd0e871f56da0cff50dbc69ce051ac59e00f5b98b3303a7a880d4c5ce13c03dead1c007b76f04b4c2f31ea02e763e30b0103134d0c5da02f69fbe5f003d56362f54eaee849f067ad48b8167753518cd0b2fce01bd8f3a1b1b48e3d5c0e29f6a4e9df0423537d02975031d391530464d8e0d4c7ba8b9bc4e1ae79f02569cc74b43cc2de79458deea473e8ea9973cd7d32bbd211fc43276ed36ba7a9aea43f93fbb40c6d7a32e9f04faf2d336c094b6f61ce591ba133e728a47b1e703032bdf478668a7ad474394fa731b5037bddf3610503240bdf2ae638823ea53435ce56962884677ff03a89b3e9d18c8d89d8189401350bf7d3a34d02b752f1a1a6f1b803af2cdab81ae7e0ea857dee8b2ea84377503475406ba4709a8135e54065e81b70d71cab5eea552c35d01ea84173d03a7a84cf5a475d107d4e7ce1f0d71cae5a9813ef709a88b9dbf18e82f7b06bad8d8c0abf825a02e76fe6ae0942703a7e86ef58077e123e8fb97b4d35c73ba8bba40a73c1b0817a98135c721d0d065b70cd182ae5f059c72d205141c8f29f5bc4b3038a4f1af076080869bf77bbc177b34c40baa295559761b71ca6bf4b9ac5574a2233fc7a426f392c9730bd0c3d9f336a08e5c3f36d0c5e68668dacf6f80fa6d7d66a08bf50c714a7b6e88aa7cee00eac84f1f8638e5f114e8b072f53435c411f73b80a6b48f5b06d27836447f699e18f8e3d109a08e7cdf33c4294f7d43b4e4e6b121d2682b6319c3ebed2fe051fddb40504a0d91e8fd3ba06f655def1aa2c1dc760c91c6dde69448a3752b503e7e0047981b0311a661887bb95f028a3037c78638e52e37f07ae1135040b9191b483431449fbbcd0d6c1a68038a30977b8648e3e6d910695c2beb1ad56f748a42cee5ae8128b56f201f2d031dd9a060b00014832e0606e2c7c410695cabad3b06350c91d32beac5e3fec5064874db40c68e0cecaa781490e8f58e2142ce03dd34f73acc968132dd3770d95f0397bd3010d8c602ae72bd6d601d37039aaadb630359f7114a6362e005a6eeb610ec19f89b4425aa68791c436356d48996c75d036f352aa041f89c11b6ca4e2b723a8eee91b706296b7d3136e4a93e12d9c8006d7f69471bcb337dada059022af56602289e36ce0105c7e72d40a1afbe3044276c7d1ba269b7374744c61e068036e73fed18a2d4eb130157698e0dccc794314f7b3e0d84cf0343dc7ef3d010f978fa02143eeb4b03e173cf40119e1ae271f6db6910c7ee0a40e1f3696520d1530321e70d28580c7d581808c11b20041f1a48631f50b4bccf0c1c5103141cef770d1ca1ac2b38de6e19089f9981aa7c01140bef5e0df4db27439c72736be0c5500a7871383770cac8403755835160bbfa35c411b7b43187adcb8e811743878638e5e6c510adf0e10850f7b86c1948233590b11343a471371528f4bd18f868c4d8108f4dd31f43848b07ca34d7a4e6323770d92303a16f21e02ae3474344a9075d56b39c9b4303f5b26d20d13701695cd309f38e1e129531ad5b9e2a5105c7f31f03afb0e84079293836c4e2ce9ccace2bd63e4f0f049c72d20734fb3c217ef8b9f224664ab9e269ad1d8916cd9c8d4b8f878628e48712e8026f9168d11af0218e8fe8c845bb91f2f9d74ba0c9df8a8e0e0db1c814bf3fd72cd28abf136f3f00fae0c343b4f5226bb1e9b9b914100c1ab7404711f7cb40703c03140b1b770662d0ab21f251ff001cfaf60d7144ebd9108dff5157c979ceae1f1948e3c54008de1cc15f4f1e03da20533f31441a8d1f03690c0d918fe77740a1ef616e60e2bc0528f43dee18e288c7b6819bdb03140befbb06a2e58181535243dc5c7b22e0d9f49eca7670bc3f32104ff70d91c6bd6aced3c0d41047dc0d00cdfaae3203a76c1b483437448fba8f205d385a5e150666b08921d278981a228de79a401186c6eff0795d33906869206a0f0d91e893f2a1e0f8fa6e88441fa8865c2b35b72303a3c7e60826bd9b235843a19d3af4dd1c19e2889b2b8186f98921c6ec9b6ba0ad445f053ae5c3c05472cb1025d69a1be8d93303c3eb1ba02f94ddcd0cc4e45f43f4ca6b5d36032e0505d1f25ca7b09c5e3ba5153a9e9ede18d89a107387c2f1f4944657b47bbccebf36f0f7a6174007788d6659fe7dd6fc1f4c3f81348d9a1bed09f893bb66cca5fefe703c9a437c166f0d5de2e97d5454b90e9facd35d026de2e9c3d010974d0702a265a7618852ef340145dcf697817ae901298936bf057ae07d32444e1b5b80226e6b65606cd800fde50cd08ebbc6b581883b327015e54353c9c6898100bb321060cf0c3c48dc000ab0cf730357f935100beb80026cbd32f01e6821a0253fa95e14609f7e0cccd7752f0a9f8f2d03976d1aa223b79475bde47a98018aa7f79581e0780f287cde7f18e288c77d4374f596aa414fd177dc8bc3e7ed8d81abec1908c11340c1f1eec54070bc35c4298f0d0145f89c182218dcd11c1cfaeec60602ec968034ee1f01bf6d9a19c8c7d840a49b0bd8a536ab1be29be5e32d43cce9e2334eff207a656b618876faf00e683be1ed9d81cbde0b9475da47eeb5f12f818ef8344473684d0d3c69b5016da2b87f36c429770b0385bc0434e9bd7e3744c4bd9b1b78354030d01cb7764d5b5f4f69f973fd02e82a48ebe61493cf55a69ae39e134fbd88704a57df04697a76d154903e055a8273c0619c78ba8edac0a581a81d19abda0541fa32eaa54ad3f8a66c125f9dfd0362721aa358e5bf6d4afb80e269a76e88aede3906144fd385218e489b8668b8ed474001b67d6120d16b439c92fd18881f9f80e2697b03714a67c710a76467025a50533955806d2f0da4b16de0b2ba7dc5d3ce96218e68cc0005d8c6d4c0ed5f1ae294cebe81199bca4311b7fe6d20f24f0c4c694f0c9146762a50f73802f41589e75b0189d66b8648f49906e3985c2f0d2c100d0c64fd0350907eec18e2947a6220d2915387e0a71703894e041a92286487e0c75d0321785bc029ed0f430c05f70d4021f8be3490b1914097bd344440b9a7081d82efa706468fba404341696027c21c50f8bc5f0974d9dcc0293780e2e97d53c0290f2706e2e9c4c063530b503c7d3836c429cf9521a2434b459891c6c339902b5ad2813c83bda3696fe2292d79dd4b5932a1dfaee7b83c8c7c01038e38a7233b7c9eef010a9fe747064ee1b28ea7e70780c2e7f9a5211600e24776d6b00e6dffe02d46d3aaaa37f8507e34cb6ebbe2fb523b0da0cb77264625d0e377bc473503df1fdb03fa5914f2cb0530c823d1415465b7d38e3fa94ae2e38ccdae3f1992c778fbf72d8248231b1b225c64e47413825b06e60eaf40c6e43b6d0814d84e0005d8ceae81907306387c9e1b4863cf40084e0dd1703bcf8026aced270369fc1a48a36320d27d0b68c9ad23407f88d21c1898495786b84aab6188aba4af86b84ae31e504c6eb40c9146f3c74001b50564ac2150c46d1c1838e5cac065f70187e02f0303ceb18135fa3ea010fcbc3410d7ef0c714a732250948aa1b1eb985cff3110936f0045dcfaaf40618bcb6ee2a98e503cad770d841c1da1b5cf876d03979d0994d39581487765e0bb1bef065648760007d86d43a451ef1962b078a4f61d711fef049a8e7e19b8976b031f11dd1c1193efd9bb217af603fd651393770d91e8d39581dda54b03d3f30f20d3295d43dccbf306e2b28fcaa926468f378648e3f1cac062e89981404f4b5ecf9301dd8be6c977aaa81e21f89ad0e7b58b4bcac381fe927eeb407fbd32f0c7d6b4f575a0e794ae81f16508e881e6b23470446520d104d00ac9f921c0d43a7925c0aec78658c57fe55eaa663dea652f26023d0f055f91f55ea7153f5d93c48f85357b9b15926b40df75ca62fed1f394367b35442b4c5f0047dc2bc0e13337103e330369d401c5c24e6120168e0d445c25aa25823c354483e93c010a8eada68148776d20d14aa030de02141cb3b68153ce059ae4d500bdb16a3c1898c0ff1848e344c066c1656688aa6c740085cfd6af81f03915e8c922e6743d4f58dbc706024a1fd0a7291a7303917f4fa048d700b409bc7161e0944781f2f16620285d020e9f570642df29a0e0f83c35c411ed230301e510502c7caa0c7c0074cb10596f5e1ad885a4024af9cd94c7738182d2a3819c7e1a28532a3bd72bdfc70b0389de1ad80e54028e7497068e981ba8a88181cd4f2a31fdf5d3c30658437937f0ea99c69f975a2cbf03ba82a681b75ebafd7e40f2414bcef553a477cf024eb98b71aeb78ea744ba1ea079f23545b88e96843e3a9083e375618823aec9ba83e33559f7bac3f58d812d3444a94263d4e5d8c011b4d322d311af06be4d494029cb166f6763cad2ab1a757e10771b68d6f9c250cc61fafeb5cec10ed08d8f1324f1cb2ccdbe4270528b61ad9fe97724b26b800fc624b52d401f54ce33c0d3d11bc0e1730371449e0b68a7a9aea2e0985e1908d27301a7140d030f01bb80a365d740c67e054a636aa0677f03faa270fe696072a5db57e8eb9c0a38252b0dac3b7073b93e34d9de13288d9640d1320114fab26343f4cae60cf05452896af760e350a058f86ee0d7b23a86789a6ff60185bec69121eea5b16b887cb42e0dbc08c90dec954c01cd0b9b5d43a4515f010e6c5b8638a2b130c4559e68a79b49dec2c0293b06c256df10196b5e18789f7d6d88bedfa919085b3a45d1f2f9c8c0655f0c11d75f95a85e733cab2a0b05d87303391d1b22a78da181bd4ef4b9bcd408941b785bfd6e888edce81a08b0ba174d471f94534d471f9e0cc453ba8703ecc38381dd941193fb8eb80f2d03d373faad43f0ddb68134be00cd60ef760d1cf169e02517116613b5af0cc464daa9a3f62301a5e8685a3c3270953b4051fb9a68a9985cbb7e06f25e84cf576aae6c77e291e795cb969dd84a9cbc0155a3c14f9047e41f74dafc14e9b404f47be2f344c057686a31360cd2017f3b5b238d4c1f87ce0b407f9dbf9818889643c0c1f142a0d0b732c429e913a09963fa2cd0294b439c52948668a7690f50f84c4702a5716be0b211e9060e8e9d4b40c1b1931908d2db808263ab6de0f65b86c858f665880ed426eb9e17b65b06ba690a3838360147ba0f03918e7ac953b623379e048aa73b06ae42216f02db8781887b6e206c2506deacaac434856bbf1bc847cf402cbc32906869208e9d008a63cf8581ac370cc4a057035bde050e5b6f064e1919d8d57908e8236ff57d038b5daafd2e70a7dbd756c0a7470189b6e90deb48c7f8f260206ca9b215fa9e6e0c1c412b741c7be818582de614c7b1c7818138f60bf85de3ad81fd41f486751ce38f7b6e0d9c5237f087283ac2816dcb401cbb071ce91e0c64ecd040a2345cc7c29b9a81d9387d6e1d1cb94add1047acfef5a8563de5479793d509d0e76745eefa01193f5e926ccd007efb2989df90f90784be1fa0cf96c4fc48a008736c204ad50cd192f31b4031a8480c71447111b00e4a1cf161208d8e219a54f10e680a57dc1a78d7f809284a151303b371eec5df814f87806250f66920d129a018d47e063cb9da36c4292d655d21a7b56b88529f9c1858dbba02f481a5465d40a29dca10f5d2f802142e5a7b86b8dbf69b815d4829e0707160e0947d0353daccc0f6ca0d101c55628a1fed8e2116bb3ebe017d2fb8a1bb558469d260d60185ed516f06f6289e03facbfaf608d05f1bd71f0d4c369f023c757aee018a304f4d030f895ca568f2abb20f97029d726f2028712f9b90f36ce08836e008736f203a50d98e1f8f130347e814858b3beed6d1e1ae61207e3c00858e681a38a265e009782ba0ccdab1e8564411369add564c9dcab8b946ab0dc4e7d65b8df52c30aeb28a5ed948f5fb95bd17a0e28b7edd1fa01b4724650de8f385b25e94d8bf5f818c7cdc010e2867869828d61203e122aab2b18930a706e247cb10a76464dd13a3e2cdc0557a064ed1117a9ecbaf0d1cc1cd397e644b033d3b051450b2c41047e46d43b4f5ce05e008736c2018280daff476053a65df404edf0d74312aca11a65d37c4119d0f0313815fc001a530100c324364acbd05287eb44e0c71b7edd4c026bddcc0e638a5e180b263a0c4de0dec0dbc34b0494f65da6343ea3b4d3beff3f7c8ad3381aef26b20063d18986ddd1bc8fa0050d86af70decb5be33f0b72bd4bee3589d5ee989d113bdd241e9a90128063ddd1ad860f70928063dd50d3155983581949f457c9c0a140bdb06f6f5b50c9c320414b61ebf0ce46305286c3d52510e5b8f6f068ef8367015da6951ea8857035b1229e4aa1d6b7db5af6852cd94dff14e564d20e58fae3e1301716c7569e067bc3e81ace0fd4b1fe8c60f2825f13befade67afa155f6cebb5003e6a9694d14e9bda4e98c42ff6fd018b4cb5ae81b0d534c464a256018e52a581237e0c1171fb67003f1597d4be043ae5d7c0117780b645670287be430361eb0a50a44b0b40912ecd0dc4a09581ab2c0005b6fcd21047e47d43f4a86c0f70606b1a085bf7801ebd3ae70672ba3270ca23a0c0d6e9189829f500cf832a431c91ee19085bbb80c256a76b204a7d19d8e9a623f499c0566620a0340cd14ed36f036928a78a63ad530369bc18784b5c1ac8fa2d3000d25d0393bce8b74d87ade69d81345203bbd448d471acf366e088674081ad9e1b38827af1e35be31dd0d35afdc640b8f80034db7a1e19086c77067644d0e8d6718c18447fd9842da5e1a0f462e0149a765111a5c6dc7ed9899fff4de277f05a2d4d8c6af133a26be0d75d9241cc2e5a599bb954fcc85febef035cbca26802152127b900fa5de6744d43c4c25a3498d6267e1c1808064780c3c5a1219a54f10a6813452d3390d31b0319bb05da3aa23044b3ccf7004f8cf601824132d355b23ef1a30e2818e4bb06e247cbc0beadcd29ec866a008e0e9921d2482b40d1217b361094ee014587ecc3407458029ab2a4a9818efc63605a7c68889c160706b68aaa1a141d3a0f864834af0cbc8f4a0cbc6ea17d6c1ebdc606123d3290d37d038996061255d63d0f3a3090b1b9219ec59a14e1263af40cec30e36ed7c180bd4e54a5bb7abd65e08833403dbbceddae7b361b972e815c475c19d83b4a797886f23c00dcd5a9db755767a19bac97553bbac72be5b17e328fb7b313eeb6ead4e3c5e1eb084899c3145173ed74c06eec2462617b3ddd888edc7d049af1f795496f00b480c11bc08f8525c32da0c7fbcaee12e0dbc7493fa6e7ed9c5ffe4a7a75032f4153c05dfdcec0b4671750572f5f0c1cb16788b9543503f873a8a49a1ae288f9b6a04f4e4f01fdb1643116e86f671f005565be03a867e70d0331e800a06727931743ac906473403d3baf1b22a73f330311e60950dfcf1e0cd11b8a7d03a74c00f5ecfcd940075a18a2bf648581707164a049ed197807ac9caa67e735037dee0c50bf4d3b8658dbeac46342dbdf44e84c0cec2ed511fabbe8f4c21043e3cf54c007a73a3f4093acb7e80d1ef79b0f06b6579231f7fda62e9baaab53d91ed5ebd7068e50c61c0cce0d6c8da439b8ef3fd3e8d67d9f2386403720197395b29346fb98de02dd163f3a9400fd5634ed77eab65a3fe404740c7c168fbebf8e1f3c7b4440e9ac2713947a4c593a59534f2709a04f3f2f0e800e93896109147c5a2f39044ae61fd544407488df6e69fd7d5c2dfacb5097ed13617a51ea9bef8f0d66005f0849fa89219a43f7cb10598f9d196b602f7ed2ff00783a49e2878aff0111a66588522fdb8023cc8581e7b921900a4606b6563701c245f2911ba2f68b1740c160fa6a60c19d0272dfcf1e0175f5ecd0c01153c0dd74cb10192b8e0d74f51303a16f1b50bf2de6064e9919880e94a97b76b130b0e19016e40d98f9d41047a43a421d399f19d8cb42dd7a54cf2786a8ecd72ba0c37b8f4e5fa0ab1c1a38620ca8ef372964f7fd66cbc03ee91aa07587e693817d7d54e5baef9368d3c0063b5ab28341831eb50e061c51010ac1ad8181bf49a4d1157dc58f984977d6f183b7e69c5265757eeb2862619a16bc02efc6143fd544a0f65b07da3c15f44b406f8aba4f007feb950c12208f8fce24bd5d805f214a7a2b80df3b49bacf06024ab4c234e7755c527500f5b92a35c465bb63c09df0c5c0115c566f57925e696053c91b903355182f80a21f616b4a01b957164bc0bd6165a00345b848d51b92daa781be4f01ad1b3fa77c006d35cb01a066d9e1e6d6e30bb5df05d4e89a94a91a5d32be032abef1df6c08faec64a2b2dde85a43404d6a1add34ad3a0d7696c7789bade796013b15c0977d92e10860c12c1964405e51fb0786183d864b805f3e4fbaba8aa6a3fd6da01b8b6e494f57e96a7c793744a31b466fc8f23a191b0c00fec62a19b60434876113d0dff28c6e01edd7ee7e026a63bdca106974ef0135baee83218ee875815c69f40c1c7160881ed5df02f80b99e47d0f609b67f2d135c429b34f034ff3d1c632b7c29cf258b742e6ebef0622ee19a068999e026a96e909a0e0989e039a0775a606dad81870607b3170445f403b6d5140459f5e19bfc1ddcaaa7683c83f04d2462cdb7e44b8c8d773fc80f71ca8529e0aa26ef3ac1dcbfa4995019d8ab035344494ea57405ed160744ac111bd4fa0e4772307111d726d054c467786a89797c4c05ace1ea04dcfc35343d4ede8c6401a3543a431ba07521d3131c411bd3ea066396c1b78fb7608a859f66b069a65132874c4b5812332433c7a0d77819215672679b936a624fdc210f9983e032c77245d95475fcf95113ff2f55421ba7a7225a0c12453a0a523ae05b4b19cca763b4d8f8102e87c031ac43b5f4025e05ed44e6b9d85813f67a039148380641ad38dbcacf3def42e9a43d1eab6f8c25084bef5d010bf379fc44f5db78a75e80f28e3f68bf5043e0aa81c017a67f1d401b2f8725c526e0b08d2bd234354e54047e887257a5f061acc19c08f9427bce1fd83c8d84b947ab169a71f86c8e9cb01e076ba6f8823c66f06129d01dad13d1e1b784cb801d44e5f4a0357991b48e3d41069fce808b65825fd2b03ed3435308af50d91683f07d4b4076303a70c006d9118dc03ecd74e12f2b169da970235ed05e0a63d1370c48cda2ff839e4e4f5d510e1b33a13704a750e74d43dde8194b65e6c0b740415e5a1a0d83270ca0e90734a4aa32bbaea2f9f06fa0b4d7bd3a3541e0372fa16035f51657c75761a8345d969f263d81fb740278b19dbfbb620e70750e22a655a96dc7ec4c272dd1ba2f10fa640aefef26da0bf9480ba47bf0bf03b67c938ba47b969da27866874e357c04dfbddc07ae19e21aa72d801dcb4f70c74b1858134760c91c67b1350181fbc1a9807150636c89c1a22d1f8f1d67fc0c0a7bb75e31f1968ebcf0606be06e0de5037c411c33740939ae1ab81239e0c91b109592feabcd5a8e680db3af7b269eb24eac89f8f0135cb9c7b59cf50228cc7a78e5b659533ff98c4f8527572dad8cb2750b03ff932227f955634ba7ecc0c2ac7e47e037093ba072a26ce830806d57a8ecbecf3ca10a5de3d07f8a27012df64fa0335ba33400de675d740dd1e1b68301f06a65ffb809bc389815326863865340054fb2f4b0373dc86816d495f0696c3f60c3c7b8c01b5a0e18b81f6f168a0379486b8cae4c0c033d0c8c0830455e946177f6aff0f22d1e13bd0d3650f0c71c42835c46567069ad4a80ff49528ed436f5693112556f0f5fd64b432c47474f000b0f69974a9ca755b6701e0d6c0c3d92190ea886b43ac06ee470beaaee369acd3fdd4809c5f731d3d007dfe60ea2afa6d576dbd76b500ba34fe41c4d3ee7aee10971de440c5d47a9818e211701819ebaedb3a857c6e6097ebbd806586d12fd020ae275f4093a13139055a407502e8f9b67b01a4f1d793c9fb3ba0763a3934d04ef70d91c6cb00502b1c1f1b48e3c8402b1c1af80194b1803836aa00fd5ac5a869e0a9e0c2c065cf0dbc7a1e19e2b2b30dc465e72a31c6ec64d803dcd66706da6966e02a3b06966d5b405f695406667d2303035f1718e894868153de0c3cef532f7adf9074a9db4d6fb831446f78b937444cee522f9bee71678853fab4e422137c19788cfc01721df16988237e2640a175a92ba0c78f64e42f801e24de80f53c28a65f3fd1d67b9d756bff075ff786583e1e4511f6d2461147dc9600bdb276f303f44a36ea44b8e8658df849f62419026dde350e2aa0d2087406f4e873c315d067b567980303208966d95b7753360b7e02ea1eb317033dea14504b9eec1a68b84a430df74569a89dbebc1a68a7db067ac3d0c0af74cf04ea0d53402d79d4307095b181abf40c7195c5260db2de117095c5b7813f41bc37301450a69bc1e2dac065130397551a6a52e3b921121d444beeb9038dea0612dd37302293861799066d031d7902b0f09fbc3c00297deee5d1102da84fd3768f7aab19f88c42616002af34d4c50647402138349006adf0ef4b4fff1aff5ee4b4df19f0ac7e1033d8feba0345affc9e024d801765fdbf55d968da51fb7df797da36a01d88e5ab8167f52b409f7d6f1640c658d91d00394b59f15bcf6b28b406fb0368c3d07e6960c6164daabf1ef85864da02da7ac2211fb97e2f7ad506b4d43917a88b2dbe0cfcfdfe0a507f197701f786ca10cd72de1228d1734324bafa32d0f81f00b7f5d2c084f5cb4047be13e82a4e83ab2c53435c6548cdb937bc6c80e7ec9a81cb2606067103975ded1958fcdb01d48186b786b8caa867e02a9581092b59d7069964d03150407d03fd7601b47495ae21aef246e32ff8827f32fa04d46fdf7473ea952f77067ae53ee04e7860885346a7064e39064af57deeb6e40f3f9369c4e47e9537f969c5c8d8206d1701ab2590c627546aec711ea445113d9b85ccc1fa513d561578b01a64757a65ed1c48d993777d02641a09e32969b0999f928ff5b016b0f50468fbedf0026831d9ecef0029af39b6f60c5195fb39c0076293ad3950f1344f501af8a1f9f30e508f5a7d1a789cfd06d45f6627024e59760c748fb681af14350cd47e04d8c1a637fc18e26edffb0275c2b981aebe6fa0ab3f03ea0d2f4706dae99e81ab8c047ac79718e22a9353a0a9c7c80f039db06ea07b3c1ae2b22f9581cbde0934553806d4c586a98134de0df44add9c9ee786cf064ed935c429231aaedee1242f34baf548c8d6848e211e684654b63be1476ae094b68153c640a97e3b32d06f9568a5235e0d71c44b6e884407aa861ea74ce99565c6a2cae1bf297ebb9eb68a582c3fbc003a74f5bdb121a2c3b20f6834fdaa803cbe385d5bb680b288c7d9f820c81a06f1ce33f9490372be169dfc9c03ea95cb8180fd1f7b43806fbb24bfef065ed61f009ab1cd9b029a65fc29c23f8853e6cb00778fcf2d431cf1b5818896ef646cd31b86029ae5d7af81347e0cfcd5e213d0d43265668836f67e6fe02a2f02bdc1fb3644d6bf9a86b8caf7a981f8d103dc3d4e0c5ca52ed0557e0cbc6e51d6db7a46be349068df10898e3f049ab2cc0ca4a144ddc5ba8648e3ed48a055eb024815b6be0ca4f169208d12d0a2db88c6bfe9732f063ea59f1bf850dca3215af24837e75ef96ea0573e1b228d8f9621d278d1bd7475ca95214e9990f5aa6497da8442ae2abedef0f42faeb71b7eebd52a046d76a7c7298d769d23ee5f041c51bb06da6d36a5bd0179406df72120cd8b881fbb2ba0e02f753ebb40c9bbb5de07d0e38f7be63f027ebf3256cfdb8d4c3fc9de3a00527621c576b135946c4dd83a03facca407dcad976d171ca18f7825c31ac0e78292d106a2056d9d027c6733d9fe344483f93d3044a2df4b80bf034e7e770dd11cb64e0036a4269fdb80a6d6bf1f06123d12a867df063806fd50519b90d3301072ea0682c1a58121899adb04945f03977d3690c6a7815dbf29a0f8f1b62f20d1f70743243aab0c91d39f0b4324fa5318e80d34180794f73781b2be65e02a5d435c65716b887b79f9061c725606b6892f055c65fe64606deb1870c8d93110fa860285be0990e9888180235e95f5826de26faa17bd5c9aa94c15835e324011663e32c429a305d0d550706960fea17be9a9d42f0c4c26e851455f47a48698e22fa3f137b3061df9f309d086907206e8357aefc7c0e2701fc881da04e802db5f405f2bce0700bf0f94c4c77fdbcd75cf66b25918e8736f409b25e8ad4780ef9e273b35407d7ffb08e00bbac9cf42c0fc63fb10e0ebb7c9d6c410476c3d000a06f1dde276539f5c4ebe57809e1bbeb60d71fbab68b84d77f5ef96816e3a049aea623706e2c7a181bff6a1c436ddb467883456bb06d23832d06f73033fd2a544d52be71f864874d93244a25fdf8648f4776a8844c702f5caf74703577937d0f75706b2fe6c20515ad0a6dfaa80d46fdf7b069ed69e0dfcb4f305e09ead0252cf1e5f027a0bf8ba25d033e1bd813723b4c2f5630297fd04347798dd1ba2052d978618099773a0ab60400772cf5e6e8065a81703892e0cbc8b3e07fa9af61c18983a350d7195d786816daf2a313ddf8ebe0d91c668df4094da0b28ebc0cbb52112ada249fd6d858c0ed4dd070ae2c77b02f4094adb51b7adbca575ba6b20277e6caf00f5fdefa68085bbed0380ade6c9fe0dc0cf99267bd14e5bfa664632235177c2dfe5ffa5ecbc7a54597a35fc63fade22435f128721c3e4b9eb48ce4dfcf5a7bafcdab0f65efb938ed442f050d16557ee2a00b1b9fbab02f42eb60ae0e5a400f7897f0168c3775480da61ab0076fba280c3b82f146063fd0aa0284bbe7701d2347e2b40b489028eb6ba53c0b1548f0aa0ebef006273ab1705b83c7ea100c3b7ad028e25f95180eed7c30ba2cd2840b4282863a6a8fa7a0a10cbbb024c98b5012a32dd5157c05ed64b00b1db8d84e189215f01d44c6f006284c94901a607255ab5a88c0254061f0a5893cf2505d887222a251635cf28e030ce4505f08292332606abbc2980556e156050b407c88a8bba02b86800e4e0c2e3680be916666ed5bf14f0b80143afc71b76f53240c0eb62c42b7885f40d3b2c70f338aa50c961c5fbd611807df4bc8c6e802c4e872e000e8d70ae4305acfc8d02039d1fdb8d0064047caf0b40e66a48ba5ac3fdac006a7953800ec9af024cca7601c41a0e5905684dbf15c01abe14c01a060a104ba28063d91c00c41a76be0258f65801c772ba2b40a5d451c099ab3d0062d9038801ed62051ccbaea70079c928c0f8e503404c6cfdab80c3d8d614701867288c9ad865a3804d6c2525272676db286017e7bc02bc1ed6001003da7c2a80111614c00b12f668c58a0a10c69702f4f9470a5019a0a0d4c4e659050823a780c39823e95e1e6087cc791e6ecdc87317ae68da4ab6b9c62f808fa93df70c80c6930e9cdbf49d334ced95017218abc79cd2a2aebf346a0032f5bbdf00c8006f7711204539039016e8845854b56b570550edb9024ed8a904207a7a3928809ede14208cab0234f33f0a70f4f31d0007f63ba7aa0089e5a88063b9ce152096a102949c7851d5fe5100f30814a0e3fca900d17e2840e644841e9ad7cd9b02b4518902c41229e0580e3b005feab11c804c30df9600b108882ba5a26af26da10053bfa1024ccc403f5493977905b086a1028ee536538040e70ab0390eb9350d0e06cd0505308f7700318f2d574a453f83171eb62380003b44de391da57256b67bdc15e0760601450febc811808f95e6360f574a952cee7fb9b60064b3315fcc6b00ce9376ce3cb02ae91434bf136080acaed46200792dbcb50090ce5515b1a86ad71d05984143e6b40a3e151540c7be1440b5970a58b5ef730588a5a68063a9f715a05b0c01a9ae5fbe152096850254d25f0a10cb5801629928e0586a5300b1861d2980f2f71540f97f1570f64f150548d84a013ace03005f020d1520d083028cc4a5e402b8389e15c0c4ae00327cab73f7aba41db45bac00d63055c0d6b047c2d48092bd02788914b0977b51018eb582908d017118f782022ce7e700c4a29295028ee5fea5009b8d4f00323a591614603aecac002f6efd28c0065d4969112e4236c272197b48a8d80688d0d9ec71f559ae94e5ada337009f01f1a11106e0a80e670a2fbaf858bf028801d56f00aaeb2305e85b760044b56f750530a0ab02a8764101021d2ae0401b4d059cb9b384217a7a4914c0803e15702cd5b3021661bda200b1b414702c873d8068f271a200e34a4f01321728e0681b2f0a3896c3114094ff385280bc5c14c01a3600a12ca3f71560115432176373dc9d7b066555ed551540da8664a900f632558030be15c03cde01f2e265a6005eca0a102df2a2babe1417a2c9db2f00b782f76fa1417e98e3a5d605eb8719cf94b120c38156ca250c79fc10403a79931e80e7e11a8db3026e705a9cf48aaeae741046a504d0bf0284189cf17df385f47d31746a5c0019f2346e00aab87505a872108beae9dd57008569284018ef0aa0fc7700d1c2cb8f0204ea2880f2870a58c8adb602d85c4601a2fd50c0d1362305588b162fa2c9a79b024ed8a9a600fd425f01121628e084d50e0a38618db6024e583354c0093bbe01c83c7f92530079dc1420dab6028eb6995180dc3e02c59e9a4001578e071190cc179e3f156012925bf5cac35ee60ad066070a38d0dac3053a46285b63409cb0fa4e0176cc9400c4a20e0b051c4bb2568030f60a388ccd2f400929ddc25ecc308ac3d822b7c62a79d884596bd758259bd8ba0a1094793116dd5133c0c14b57fcaaac051cc6fa45014ef7f000a232bf10337b51c08d56d80588f9ea2be7c26db65b2a6123c6f5470106ab6f0a58c8276e915d39d7dab9b601ca78f72d380278684d8326802f97b9540042047ae53a39bd3c9eab8b7e00e0a3963ac34b25c6824c97eb0fd795031ed70d0099ff788d00ca320f930790177336be022cf98a17b5fda902985851016cbfa700b6ff70016bc82ae0a4df6b006ac8b1028ea5faa100867c558058c60a10cb9702ec989168c5b2cfa4804decda55c0e9b8cf14201d63059c8ee6c305a27db880a9fb0aa0307500590938df14a0bbf1a300c3ea8d02487dab00e9f85480685b0a38dad68702345ae225868b175280253d24fd517f7c0368fdb150001790bad60ef74f0558385c2a4075817231d505bad68e020e637b01d059858c029ce2cd36e7c9460cc7f100b0ddc30939fb5e11574c3bc31f000fb7a886042037a0a24536094585b25a02c4a8a578aba8057895fae1821386093303f08e04966cbc5206af32c553805c19378eb30679e502ee7ea24f000f1b41dd11408c259b1b7758bd0aaece73fa67800075d08d45e8c9a133ce1e5ee41544a73a01109bbb3500b49d1b298016ae15b0906b7505b0ca4f05308f4718d0534701cc0352576bb8ae15c02abb0a60956f0a908ea10234f3ef0a10edab0298c7235a2c2c4384ba12c0d7225a00796415401e190548474e01d2f10048c7bb02a4e34b0196d2b8e1f374eef3e55d01bb78f950c045d942d23d59f16eac000a52e356008a88f606e5579bbb5614605672ad003bcba130daaa5f5d0508a3a80061cc15200c949c5781971594df8f72dccc6326cf2f65611ebb05401e06c4c75a5980d7b11380025c605e2a05dc55d88e15a067f0ad800d99dfaf34a028d15e004a18595c38e97e59d64eae5980323a0237d653bf92850be70c90c3dcd6ada7002efa00726ce2a00110e205c33bf7b67c9da5ad212f0f231c00a8358c14c02a4b0a5050330055ed9302a876560102dd29e040eb89020ef465a100edcb540114f753017676713be7abaed71a0a104b5d0162192940a06f0a38d03b01c8ec687bab80bdb4a70af03a1412a6ab6fd732809a474901547ba380c3482020b586f3af0218e158010ba8591310f38cf3ed0620e671ce2940180305d8b93354c0996b5605c4588b86bd7832045c42e9fc38870d98dc46f94136cb2d2126bb02631e0cd0fd0a4a45006c6e490127ecb20428793835c107a854787238162f818b4e2ff7fa8272c9c711f69f009e8793f486003e7ad235b8a8143055d11f00b830c2f11d400e42bfad00626cad1eb24a05aebcc33bf115b08bc90ca08243ef2e48872b7bad5fb7006251f523809a475301bb683c5ca0bae06a3c50e5bfb514a045fe5680bef64901626928402c7b051c4b3b5680be0312a6ab09b777051cedfda200b67f5780685b0a106d4f01dab9a502540625059c8ef69b00e8e95d629149a6765101bc48183978793d00e4016a0b8032ac21d900c814e3bda700063452805eb0a780a36d5e052096e65d01362f401d3c9d62cc2880ddf61570b48d9902c422527711281f2a5208fc6209db2cbe00c46eb13212aacd217361a9ecf2720bbfb36a805b6117d5bb007e9dc119ae018c81704b981580171eb0bb3405dc2d5e8b9710867c463aca59bc597f810b3346e6e6b51c02f89841f3da00012c9b320a58627da4a352c6552d1f4300ccd3399322809c37ceb7b91a10e3ed27be8ca110ea824c1be9d06336ea6c84a15a542daf00aa7d50008bda2940831303a801450a60405d0530a05f058865a7806379292a40a35551006b7817200634051003ba5715703aaa2f0a90db8202a4e35501dab98a027458bf15206165054898c854cd74a700dbd567003295f5ba17205e7e14c08b944b410c5962118baa161470c2aa2505e8275f0420d08b24cc936a2b11202eb6003277b1e1d6230c3239ee4a426122b128c2369ca8e4015c22001fef14617b54646c8e1bbeb32b0026860ded91b495d45c0284fcd61155d70ad8c59500628471112f311663b1ed350538d20e5eca199c01b03e28e0a46f8600390c45b1a13d9293c1888fd9300087de11bfeb65801c1536af0294513bdcb8a022d34fc61af01440bac5ad1340494e3a6a02b8b0ece12780983a5f235a884c23cea6cea7e118909776ff57012bcc1842760bf032413a4c338fb513e445edb6915100331d2a80d2bd0288cdd54b0a6062bf0a6062ae0298d85801fab88e02d6e4d75880d88b060ac5ad41ea3a7d5cbd2880edff2ac058bdad8013d67c55800e6b4901e6948a0a90b0a30049d8b7024e582756804de03900b1ec5a4f0112d65580749415703a5e4584058965a7009bd1fb0032afdd7917205e260a903089452b94a202ceed650f20f5079f5d6a015af5ba00c8a37555c0d1bed41460a6370b2055ce2d50802e8bab0009ab28e0685f245a1f812e2142adb6da6c2fb1a92ed890ab4b01a81d9a6cea71390317cd17802caa9cda5101f71dd0eec7e53caa0b0c9b52c061f07bf30694f11a349f436240858fea203ea3ca020e83cf7730c0c3257fc156015e87da28c03b120b009f2f30a04012e6b30bfafd029029b535e451c9631774ef0340ce94bd21a5a6bbc1529fb045c55ae5dcce02b0c7793803284a0d5307901a668fbce8ea5bb703808bbe9c2680d60e2fb102bc00f20620868cb7d2e287210f15c0808a0a50c32c15c0903302c43c0e0a601eef006ab77b05b0db40016abaac02d474a10254283d059c8e8e062ae9182be07474f20a58eab52680987aada600024a14201d030548475f01e4311520e9785380741414703aeab0179d44e88a084b70f10a13d329b5ba484cea8f979b00c4528701a9a9377c01323a392b400d735580f75f441eb25472f314602571a9006766ac00641ef75655c05eda0d01c8dc0aca1f64733c7bcecb0bc58c5617edb100e9a1c400d2dda8250005f4508e3d8012c0fb08a08c1d6637718143efe8faae803b35c72e808b58ce0d01a894f88d21037076184545055cf545af0ab80e8af20038a29cf8253403b0a7863292b918e317efa8804528b148c788be43803cbcdcfa02d075ba6514700dd37a0128e0e8a33ea45ef1d0971a40628ff98f12400eb554d802906324c3a6024ee9680320db3cfb90982b2f7fd53f1968a554ff01d0ca60a40095d25c018cb0ab0035dd0440d7a23b0a10e8450102ad2840a0430530b18200e9b2240ad880bab102ce5cf7e102a62ed18aa9d7df1420617d05a872aa0a5005070a90b057014858f7a880a3edb514b03ad4c58b4c42d68b0a381dbd9c0078e153bd0cd0cac057808d5ca10254392440aa9c86029658eba68025d66e29c0bcb6146588ec371c0108b45d57c05eda4d05d8beef01c8a24e9514607b032a03ad831ab63b5acc96cbe8c3dc720062fbf51580875b65f908040370ec2a1d0820c0ecc6e1aa802b83e342002a83e30f00a6f5e973081061aa93ea0a5029f90210061fe7504cdfe0e6da72f90680c35e884f6d32a0c87bcf2908014a00fc668a01e500a7d0440ae02550800dfe2e400583b3ee1ac0c35ea7db490006563d08a822a78a8e21c2c7580c819aa1178731fe02c04ddfce2b574a594f8e50a9c3859afa8baf80d5b2de0650233c2b403f8814a02f152a80113ec280117604402d7bb102d8fe3b80dadcb702d87e47012aa50f05a894b20a10ad2b40aca1af00fdd3bc02b606516d5d2b680c15a089fe112015db5e01f222d18a65d7a11f6a950d4f017a17170578b3cd0110abbcbf29c03e9477051825ad0420d0e65601d4e14501e7b629498fe1e5b5ad80ade1936d3f6746f7b8a8875be45c3183d31b7e7f0414197cc04bb1082f21a734572a9671c83d2b7fcef41d389606c2d037427862d7021eae5cdf04a0efc0a7261820d505bffd64018ed70a0162d90150508013c9330a38d0d3400026443cae8372950c0634d401c862a6e6f301b0f1200290bb5b0a3501e807f1116e16706ea73d0178c5ec5c0728c8f40fe4612a14ae82f902250bd8f62fe225c2815363b6ec9c7648c6314001f5c7183275cb70b1ed03c8aa680479b8b81fd9d9b2ede7bc2cd6701a5d00ad1d7a0a30b3490a6095bf02c41a50720f531f2880a93b0a60ea3f0a10a8a4434dfd5501861a4705ac96a2740f533f2980a94bb4b266d1ee2880bd3c5c60fcf2a100bd8b48016c0e2aa553aead9502ccc3a80b8965a200a34617406cbf3e17209d89b50254061b05a80c5e15604d5cd2210bcb3529b95802dd29400fe5a8008142407e0681765a0a704615ecd6cf57b042c36d542ec8e7d84cc75c0c791d59f0f63903a4dde7170c8be995a83c5ca97d2960a93b4b00b17df4a40d4018bc926801ae4663f3c8aba97b2f0039d86d5207909e015f2b6240992733880ff328dabb27b892ce000468c47b486945ce991873259d57331d3600a4559f040072acd5a8065092091101b2b23a423a5c393462fb0d205b8a4688d693b3a15a118098d8cb40015624ba0250fa5b712187ed377d0162b74b0588a5a600810602c4c47a0aa0fca4002656548097e0251d62404d57016a878c00199d780a10cb5c0162f115c090170a58615edf006412b2b3548030160ab0a54872ab06b455c05e5e1a0ad099805a1a03c2dce75a01627951009b6b2b60fde822a57e16600d03529bfbe494162a5934c0df01000e44257e71cb00b95fac215e3ca8f6f24701eb58bb0a10c2c5806bfe820e9abb5d0039e77b90009444f9c70ab0d9380f209731f43200d246ed8f02b0363ff600e4edeb81af806bfe9dc422dbd646dcde163c39296d8c84e97ecb46194075bda000ba3e528095337521f52912a64d41b3af0061c40a3083361620a54f0aa0a74d0598cca803c874587b294094bfa000813a0a1068a88075ac9b53c0b17424e93ebc745c05eca5f7a2002f8f4a2cd2beb4360a381d2d6e700aaaeb2f0fc0b1bc1c152061ef0aa0fc6305588f3a00c892efcb03402d270a709c0334d9d80b36fb9002bc43335680cd3e2ce462456ea9ea6c00309e233ecbb55834e339e8580d403a68a3058028ff2404908afee200c831d6bbb500e8e99a4bbfe8c94d57e39600ec736ce60154e9a60a507daa0ba9a4170a50f5cd1540833c051c4b8b003c89a5a100b1881759e579e929402c53058865a60042fe558057543300baa8130990bc780a3896f6af02c432508058be1540b5970a58e95e8b003275d35929808e910284b15780639c905badf91b0f8051e35601ac61af0053591090ea7a63ab00fdc2a60298d84601e6d7bb0ab0ffe30490432ced8b025406af0a30dd3152800341b8eb54326342aee88933572a87b8c1b05c07c0e40e95398c52252387797c02c85571b4032861e8c5fb1d0cf0d85e88373d1b10611ee6ce465872f3308fe11780749d46bf0a5862c339400c306011a6ef9bc24506409b820e806ea2102fa2fcad9c0051cb8102287f46012c0a0953d56ee5058801fd284045ef2b805a3e5c40b52b0ab86c5f200f9dcc78c92a80bd64146010b054005d9f2b40255d5100959284c984c86ba000295d2b40a02b0530a09d020eb4d7059011ce84d5b26434198d7804200bfeed440154fbac002f18c600b2a4d73c2840f6ef0af00e1e075a2e9564cd8235b95cc1d994cebd052047da614093024c3073f6cbae1c25d72700393d6a3007f0a1b89377051ce8f81320c014c1e42a40343903807b899d01376b652f83ded660a280d3316c02c8411c03e4454716b30140193baafa79800ac0e007405e3f1e56147041bd20fb8f6a7c2540d4f25b0134e8e102155b1f403539a700a5ff0058a2582a808e5d1440718f003ae13e578040870aa01fef0aa0c90b058865a6007d982c8068726fab805df4730ab8621b760062d4b8c3a20296fa10c5601a0b7631690364632e86374701ec2504107b991c1560a11dba6e941fadc759018e5c867ef8b2f4dc3c2980978b02d4fcdcfdaa54e42af46a0da084c319fb6500b937e1055edc2c40bf0390c7d8a31f03b8620d13001fb3e7e31d8098c7b00510cbc683830054f45b6ec52aba8bb1f70b2007094e3e0064536b7b06206ad93e2880066515601d680fa04ab752002f9f0aa0746b0550ba8c02d4745f003263c49b5b2c40181f0ad058040aa096730550cba602a86541010ba82b2096307a0a10464301c2c82980267397a5e2cb76d35128002e261d0518574284aaeb93ad02f4b5510caada6f9e02bc97f402a035ff4d01ecf643019b58f308a0ba7e5580d1da1d4056453b7505e85c5515e01c67ae502a41318757ff7c0598e8e6bca4afb9a20aee0214301dc6ef2416d39758b918467500692cfaa102ae82470410e3f08a01d774ae2e82b65d0055cb6f0590d80c4075eca400d9bf29807eac1460c2ec5501cbe3350fa0b392390508f44b013a240f2f08b4ab00d56749012c9b9b3557079ac39e0278c92ac0d158094016e7f68c020170317e5100b5cc29805aee00442d275905709101c803b4f600a2522f67059831ba2b808ed514a003ff009cb91654ca9715bc6e5b010e3682c20425a8a5c735ae270b43e4fe2ae02171e913c0858baf8b02ce4b340308e1e2f7a2805d60b9d62b6501c2370017afa8aeb2007e05a7047c08c07a141f0c6f405cc1017edc0ff2b43fd6b80360ee938a4858c5939b487a0230d4e08d7e16e02d5fa4c30c46a0526c409e9bc18459a70120670e8f03808acc08541560d9a70e20cd5a7f0420afb98e3200d2ac8d2131d3eb431bc536e7994e1ee60b11ad274784eebe00e4449d3e04a4fb1d463b00d9eb34c82bc002771f400cf915f27898e945016cbfa4006dc3a7024cdced15b04c3b5cc17a8f09a2a90284515180f6a5af00863c5000333d2b6023ec42623a461e440a90b00740a0430508f4a480031d49c272e2e2550116fcbb007969a37a0aa01f2f0005809704406cffb5a7008d565501de9d9584c90699d7aa0278795580eae2ae0061b40064a1bddd5680305e14e01409564bbf5472797585cf1e3420c6cb7059ce4bfae22767aeda002873bf9032350039f8bbe60ac0b45c6b02201b317a070039c867c48300df0dc55eb8bdf5bd0c5ac2c11620273dc70f803cbcac118b27e7d46c76007284ec70012057e78df20260409d33809a07978bafd33f9d4401eaf59202e87a4b011754e71340e73e670a1046590186d51b051cc6e05b01547ba4801577545280937d5e006458dd2b2a8011de1570a0235f01022d2b404b9828c006991b8074bfc61d05b0a8870b84d155c061bc5d15e0dd5949ba18d0e4570187f13e5280c14813400ca87d5500e51f2ae094b625fb6a1e7505d8927851c07979837ef83e52ba85d205657403b76f00159ec6a66fce6d50c9c8c98257809ceca872010ad2ac0d018a9885f32305d8833601c06674a75506902b62b16535a88468097b126d049ba35f05388eff04108b9922618f011e1765608c1013770d0039aeb08b58d43c7a6b0578ddc503506b38294018670550dc860258435501946eae004ab75080d6e30220b34ebda902c4525780586a0a6073ef0a10cb460154db5100d5be2b4031740064fcd22b2b40b4750588b6aa0056395280684901a2bd29e068df5f14a0ab30002888ed4f1420d08d0204da5280d1bc00b1cab7810276f1e128c07045d22156f9de51002f91027891bc8899be3614603022055511177505682b1b0a78e69beff12e86650f6fa4ba5c498715d95e599c02c869f311777b4257ee268d4e02e460566e6f43dd39dce3363b7ce8585b0127ac5f5280c2be2a808e910274485c05d8ef900550952a28402c6d0588e54301546aac00a5ef2940e9bf2840a757c228482c6f0a10cb03202f5305c84b490162b92880e21e15a07b2e2e44e926050508a3af00616c157018ef550055ba950276f111039405bc2ae0daf25562511d6b2a40eb3153c0d97f1d01b8e2a5a5005ee60a30edb255800e6b17c0436e473d005fb20fb5f403646e9c0708e162c5bdbed0344138de82872b51c9431bc597a715a372057b8b576c2f51258b9704be08a02cb3e745055007d6d3f4ad45ec98c901c85eb811673f32ad07f7e906570039eaa78f401ff6525000894d00b4fa0c14400b1f2ea0eb6f0aa041650538ace11d40547b102a40a035050874a800819e15a05c3e14609e7f01208380c1970204faae0081ce1520d0b102e8fa46011477af00a34689a5245639538058f20a104b560162b92b402cbe028ee5438a410da8a5000634001003fa7851002f3d05f022421603eaef146028da01f0a4f3dd538092f314706e0715005f4cacaf009b38a1b8c6a2008a0a6062a2963031ba727f3d2e07b2c16ea1800de8cc298df51d1abe9cd380a21c2cc0e9885db945b51b00c82daadda2029cb5e700e4e0a2ffab00811e003c9cd737e0fa343646c899db780230f33df800902dab0324dd9737fc07770031c2f15a01969f90978745dd1440f94b0aa0962b0550cb9e02a8e5970258d427804ca90dba0a104b4f014cece105b19c142096910228ff2350f4a5500c6a51a30f0508b4a10081b61520d09b02287fa800bb18af006509f4470107fa410a1068a200814e15c04c256162625d918736490b053031c9be5854ffae00eb0d92305f5cac1540401d05a871a5b00369f87c05503a570144182b80114ad94a3bf7162960176f6505387ac026bd94bec8864df167801cac924f8f4a0fc5c33b34e7a102b6ecd32b4005f3fc7c5b78297d918d476bfe09408e8e1f3800b294d6ff6660cc14f2f852001ddb00c4d8b53728337834498856757d5856008b72144083160ad0999802c81879505080927315208cbe0248bdaa005ad853c07919c50032ac1e2f1520d06f0508f4530102dd29806a3f0054bba300af4137012a12cb9702c4f2a600b1bc2a402c750588a5ab8063f990305c713151806b670e001e8ea4ea4a6ec5a2ba5f0a6051bf006a515b05b0979d024cff884cd5a26205d801102940b3365480353e28ffc3a24205b0285f01bae75980085ede570a700cad6de64bd95209178d1231a8e4b12d895f1c370027d752e91b404ebfe543450ca8e0dd95af04c0c50c494d816cf7a8007858cfaed61560b59a0b3b6bda5bcc066601b2b0ca0d1b50d697b75a470700318f494501b2df5700956a2980351400c41a46450518255514a018de1520d08302e8695b01b4f043010b685c06506b182a402c35058865af00b1341520967705b086ac02ee2a4c3e015c8925a70063314f0162392b402c8f30104b4601c7d247d9aa017de415c04b4101bc486ed5c4aa0a3018d900a845390ad0733c2a40e9af15a01adf018412c65401ac921440408102d85c5e0186b36505e8e2df00c408c7230508a3a800617c2ae030de45616271f1a5805dac90f4c0cd73b316b03c72ba7058fa5080a5c51f06a52cde5bf3030598959c0928b10bc7079005cccfa900b838bf03945cb64a6a02b825ac5772a3952be3544067b802286399e38debd39c4cb9929b01c0f9dac487ac1850c1db7127c462aa202e4aea020498425a72b5957373981ded47007202f700497743ac24ded96e737a27c618e0d134ae15403fea0a302d87cc3d2c7ba9005e9a0a60d92705b0b987172eec370250bb1d2a4018570508e3a000769b5300232c2a60237c97dc7a5219cc1420d0920284515680c188442b663a3802a8cd050a6073a102646ead00f652520043de03c8269be159012a839302043a5580400b0a60626f0a60c822d358c2d82980d403050863ac0052e78a2d1764c46e27005e9e9bc625273daf2f91bccc01221cd65063c5cdbb7212562f00904bb9af7b00b921f78dad21af7a3a1900a85aba0a90b9860294fe510167eeed1540b5b0a300f2a82b80c2240aa0c93f003283f6965180306a0a10c65a0164ba01f0e162282995d21fee15a00a1e2b402c330528b977051ccbf000108b4a551520d08102a8d44a01029d28804af190276fd401d9df2b80d42f0a905b243dc88a06411d548342167241d780fd2380acf0f659c805dd66d12d0394f02e71ef0c20d383dd1e40053a761b09c0a2f01b67aea0eaf07e560079fc0268d936144040170059d2e3bbc12c40e96f15401e730069d587c8fec3f65f1520614b05f022d16ad99e15a05c360a502e5705284a84f128ca990264df5580dc5614202f4305a84fab0052d81f7d0570f103900358c5007e1e375bb3d48ba5b2cb09e333224a45d3bc62976b0e40d61adb5c17165d8cc49dee06202faf757e03146545b30250c65d146f70f1a80c5c002dec268016f640010a7ba100d93f0168610bd0921b2840614f15a08bcfcd5af151504b0528a88a02a4b4a400e918284007be0f20dbd6de2305c85cac0081161520d09102942d4ace942d5c7c29808b6f056c841f107290878b4f5f01bbd80600411e17d2710fb6542ae3bd930a6b72a9828bbe9c17d6e4929bc3bead5116400e31efef15a0c3ca2557527b19f140b3f490fa560104e428c0e8f51b4064fa3657002fa400327d78c13cdd2f80ae011f15200c5f01c2f851c0617c3a0a20534f01a45e0150a993029c2dc7859d1e4f8721318f3ccb32bea5af0a401e23e0761ea000137b0d018ab25b6e0820b576042f9e5c20fd0e2f0f99fe00a84c170a200f4f01bc640054840705f032570011fe2a803ae40064c5fbe3ae00f7d0b80021aaadf55d018ee5e5f6a562b48cb5d0e3745444a6540900228830ec303042c6f8a50520f558c4355d4525b6fb0490f792de59d72baa526f0980663fa300d9cf0368e64e009297d51b4094c7b6138ec5ad84c84be10d20960374584f5d17f7ab53a6a400af22dc00e43ab1884d2cbd220599fb0090b7e2776c0dae5f4145ffcef27035e91f083428006c1a0092749f3b799e8c091dff5d00c684d708a0846368bf020057c695df00218037558082e2fac32bcb50d4bf28c060f52880ef6ea1590f40ce929fcf013c80d5b700975f97e33beb0d085c8ca2b963e455b218ac06150118dfd63e0022e8988fa4bb72a1c3b00de0a2691c3501e49ab7152b9d1766f22ca025cbd42fe3e05ea7c632f54da00c622e86f45a00d6f5357759fc309bc789299cb0a092c5b2f174009073718806f7a403575ecb1a10809ca0db1b019405380072be65b7a480035d714a833097c71c3d8b30ace4241d7780224ed3824a856678cf2eca31003684380e4b2c74713e8cb3e2cc85613e8fd7e4b9af1d191de3568c8f1a2c45a697c365cb376c1b803bb9e89201900b2d2f2400bb29e73d001f0d5f205e42bc70b9cf0af0b1de7051800b0c128008d30c1d966964f28275b118a0027588b99236b5182e2ebab321c715393f0816159b8471e6f87a350302d40eee1b408c2bc91c8e255dc0e40991c805c8e2109e5a09200f1df3470a90f41c4051de26fd0128a3ca19cc006498d0ae01b80874c3451987c53c4e3ab2a55fce1889715ef8a05a03229cc3ca43730b58a6a74f801807b36e2206262f5cfaa52d809c09797e150017514901c77242b46e1e20fa56c0d350a51a400103ab96845180809a314011f352ab8c007e8d91a223805ec2e401f828fdf58d4158ca636ecb5606653df68c8e1d8022b27f7a1380949ec60a388c690d002f90d17a01e0e1a0b8e80610f131b454b17306e59c913ac75261a9e7dc0c40b6072067437d970170750db977802200bf5d9b02ccb1f1299a064895135701e44819be7eaf9cd7b6c1f71570d9962301b8b52be258f28fc6e2ac80bd646602e0c5eb0314d19c782b01684ebe5d00b91bcccf28c0ced02c402820c7c0b41e48d81220c4b682f88381c92dcbb48edcba329119ed18787223ec8015a620ad07b111960b5e166fe991ad0cca45d7859ebe6e0440c8d31b808f970387df0031a4dee7b2355d039c5fc84761a727a862bb698fc328bbb2a9f5b5c9c0c31609aaf600ca78bbb6cae9a8b84539aaf40540fa1f7d0720c4c8a2570388106891bda4bd1cec2d9e00600fbcd3de00b8b2fd3602f0e0c52903f8b0dbde3b80b4c88325408c230f17ac745e4546d11dae613c1328b6bd3601e480a5f181818793169df585419429b0978813e6ab16464d00682195aa02e022c803603a9d7e4a02a0a7aeab00af216500c43c82bd02b8e0cad1af64f1c6903b1100c50d0f0ae0a503501417470538b41b49af54f8020327404acd6f2efdd94e01e765ee007868b3a377055c6d2d6a003ede91986505e01e3c07b118fde0d29f8e00646991cf2cb7009b282075a3fc38ca96f5c3f7b272e054ac00170522160f15ac73690144d21f431851b6c02df2c27603cb41456e67e05b5453806e4f435dc8450a0b05ac85d3042044f66f1b0172994ba800d1be0044e83b4c0b0ad8cbec0a10032cb8c1317d6084c13335e5b4a388031eef00be8c3d260072eed780552af073bc9389f85a8072281d12e223a82d6085e1131f4d973783667ed102906b23167d05e8d19f04a0fb1506007296fca2a10037d5bc0a407783efd1b4002fc37d29c0bdb325052ca030042848c29a02d0cec52505b8aab6a3801bf13002c00e330a630568b38b0210edbaa780039d4d1420b77b056ca64b08c8939e011f335a8eb4cde62ba70cc8a16750ad2b6099de5e0044407c837239edc1b2804e5705380ef74301ee3b9900485ef86a230b382f4959010b88cf0bb600dbf82e00b06cba4c1570e6362b05ac1feb18404ef15e1d01e4e280d94101a763f9ab80cb653e16809ed2f41d003d145a48c25c1ccf377f51801dbb27000fe988630518031505e058de7553017b9915007c6992960a382f714b01fa0ec8ad2727e88688c5f37811946edc58c42a423e70db02ce3edf265f8e65ae8f2e0b051836d5002a903a5f006b004e4aa3635f016eaa791700896d3a0072bae9e2574000d59e29e0942e0900cbb5143514e0b8f53100ee5e20d4eb29e0ca80a77f5280f7d6badcaac75e0eadfad066bf9231ad1836c8c40cdc322a145e9f3340b25fdf0060bc4f7cf9a20518e1040a709ee31d40d4a1faad80036db404881775011dfb6900c898f0455cf850a9e3bb02d6f57d0620404af936790b58c7f87c6d0b58c7f8fe390b380c3ebad502b6dbfb0e2084214f2f0ad02ff405c0cb79af800bfb505080c25e0244d0a044bc4448d8b9a40023be91020e637d53800a36520075502fdcc7a568a80087ac7c02c4c8cb493217cbd02ba700c77a1f15702c81640ee729d1a1c940deaf243e863605721007b2efe5a11f45db5656ccf00d859dad28e0c2fe5900f8b29b7207204559f9019081775bbc48b954770ad0444f14c090bf012280d38702dc309551c0f2e07b670dc09de49470c96535fbd78e0014c3e947018aa10c80cdd7b4ff15206ae909e0d719e834548013daef0a7076d80a208751c1fd200012e3e95203f0861d4d2175af883b1f79cad5804a88fd0e398010c3a6f59541542eb03c5c5bb15572a6eae362e00bc72a399547f50b200789ed7f000aa2636f00455ef0a7e500a0840b61fa270039c3fd901780a4cf05c8fd9561550147fb6dbb4e95c780378a0130b220de8059d111307d1383c7c8e25b00c60d81072087653b81001959ec0560ca355a00c80107e59a00dce5eb961560b8520208651eb7c8c09540690410c8b9d60d004cc93bf11d403662440d055cd82f70e1156434df07907998da54000aaa3e06c0b9d674f910c01a44f501004e2a217e4fdc02aee96a3700970fad22be5536bdff036754ad594ff3a633c55a883ab9607c60ce200710a3d7c7f7e1544c0f3744bdfeab001bb95862450fd350cec205c0b613ba70d2cd681fe9e05bdd0c908b35e777009c84453c68ae945c597ce4bb272b254fce88e8270045b4a6fc7e83199887f032612f650f7d1867ca5237a3446ce4ea70cdef1a53c77d6b390059187aad0014c4c54001ce2e6523f43c99fc7b1903c85456c4d1faaadaa8f975d04cbc266e802a6eac00738e6b8050bcbc2ae040c31e03171645b9b30258d48f000cbc576d8022069aab214099a75c1dff0540669c37dc66075a2e0ef70c02ed29753d00599e9c5e01a4a3b8e40a36148ba23509c060641d29e0b99c80d521f4644e3ade2ac07bd11e80cc178ef70072afd7065e7ca94fcf1c68e4e14e0ce796079029f9d10aa02cfb61ee003efa1f7ced9d19bbe2853aaace01e4b06c3e6cdf000ff77a75fb00815c8161e72ecc705746277c29b701b252b4d9000432d39b0108d1bef856e9dcac26ecd4020861b7a70380f4505840660c2d23be9215a11921cbf8b632009079fe4904a087875bf3700b8ffab4c14095ce7305a0820d7200b2efd3c908800be7170013448eb756c086ec7f00840238b7054f4e18728a000519d00c19f865399e0f2e02b98d71cc992b7921de8dec4d0022943eb784664894c1ac35d916d9588b5e8f646dcead78981170660e802c1d5d59a666dc8959da1716a1ab8acb97caa4b394d08ff81d20960a9685ecfa7219e52ba7c333fac126b6b635bfeb9bec73d92edb004558d460c5c02f63ead7b3aaed065a0c5e15408a21a829c0798e59801015ca4f530146497301522e79065e56c2a808800bbf0d20afdc852b01e8d22e0e0032b537102f6599312a0b90252ca4c393a9df799f812fad299f74e4865294b4e902604186d65f0032369df50560e8b539028430d3f9a7000cdec309809ce0bf5e02c82b447d84e167315ae3393637f2e41600be80cd0009836f953520462c97b302ee3bc4aceb91515c4c32f90059043a1d2ac0b9b43f0ab81a3f75005cb4fb332eca28c08d17d4e0d28f352f9337067e4e86c43701e8b0aef300b2d8c677d859c0c510bf08c01ed6de11408e705b5d05a08bbfee2b6011c6678062883ab90e806e314565009cae4ebc29de022cd8dd015cbec58c0289d6833ce6530681dc2440b652321d163405ceb8015092d3e7320290b0734d017a5b3780b254e36d0518688a970ac07900e086587afe00f0252f0780002ef84d61638231a6c3320b063edeb2a16409e0ca00af2c0061f06df20678219ad74f801067330cecd8c3cb19dbc7720b8091078791840c4c9d8cf5175bfa5edec3ada1ce600d9043181e8791173da54c03405e71bf141968a08e2d7d4f5b0fca28402fe767c5406a292a8f05c045a50750840bf72200f5581c28401bf50de0495dd85100170b8008b594c7455930d680f32e3a0ad8054f53a6bd530c89c3118300c7d052827404b826924ab6b7652acf2c3aac8d37000c579ceb914190c1a87151518003a7381d65bf8446ab9107d08dc20300ccc2397d5bc378a6e1c38a37d95eb069f63011e1f4adcda51530c0c0b62fe6770e23add11ac04575c147a87881489d4a0e00844cbc53d602343837005908c9ba0a500c6c51819f1370178016e8dd51c0f6c2a72559c052e73dac061465225301dadb9732005e5175fc570069a3fca502f4b52301a860bd0f8008523f210c53fae87ebd0394500c1e0b39083d0c1378a38e69b270ab0aadbb0072abdbcc0710a92fe7001e2611e615055cb6215b54181450295d39d0c8c729cdc463310bb8e37cfe020850c36ce600118691bf5c5bc6beac785fb20210285fe16780cc3a35e602e0e2725080db3a570038cd936a5ca1c446d7d9c5a9aa800d28aa00e450a1f4c4451e8754930dc3cf9874b0c4f8ea09d3fcc2a2a8de03c861787faa001478931ead2e00457889258c0aeef7e0fe879f09e544aeaacd8bb16bd97553ad02c8fa7eef8d41904141f168dea8adac37f0f526a6817691b9068791375e30ed622b69ffa9dada00c080680c600c8803e513852d60179550002c8aaf033240ce0a771a02600d01298035ac01c45e3c89450fcfba0a8079789f0c02b974a8bb53c009ab76198472253befdb32c6219b17625b399ad6562ef8246b4046c4323d3863211b2344d729b21d013f94dc3ade9702d653de9f6c00b24f85770152197c2ae0ccf9e245667a2b5f0a10e837009a13fa0a157018812f4004c46a190672318d7f150017415d0166cf3f00a4c7366f2bc0cad99702f612bb00326fb9f852c07d87632200763b5f0314e16291110017eb86026ce2bc29804595004a70b11c2ac0a1aae2456647bf7d055cb67902a8a08dba14188499089774b1f29b6e317a9f9b2c401935cc75a4002bef37800ae6a4e71b051c462d50c0619c8f0a5005270a70495745010601190074e069be05f050c3cc970ab0d49a55806abcac80cb7626e9c06c20ad241d01405c138093c0797b655aabe340a11a076a062b18ae5c1d0049c72d54c0e9e0991a0b381d7c8e8001b22aba92407d78e1eb6f2c60a5bbcc01027458375f02225cbc3a0008c5cb46005c5c660ab0bc70048810ed7a2a80eb533afe2ae0c2e629680bb025b1a600ab090f2f285b71118b97aa021c228adc1ab5c46486d5645389975129b5e60068d51dbeb9c7004f967d0a0021927e9b2ac01e817700dc374fd79900b8383715b026dfbb0a38734789167750d1b9ad80737bca2a60fd58551898cc61fde55701daec1705685e270a38a5fce285015984c11b750cc8011c5f1560d4b857808ec00e00d75453951396352e10cb0120cf934c74f802c07174c4a3130b305afb05904b5406b639492b6074cfef4d8010f672e93308e52249c79a98a94d5dd90af80d1002ac6e0c4274371cd6311347495ae41f80489a134e7a51db063a0890b6e1ae80bdf0c97106a0d1a24c5900bcf83705ec22db07c07e07c7a92a409334118019816007805e9fe3bc0a800b3f51c0e6b1600199a6026353ef0a50829729729b9e35c82ede003cdc95d6e3404b610673b0d326805c2d309b02c849cf3d3b8c342618c8b220bb284b18c477939aacc94ccd8fa38005f4c322f443cca138970640194579678b0ad445bdaa806b3a3e00c3e88f940bdf13900229971f05ec824f8030407b179f02a4efb055c0c510b505a0d1e27b680c4077833efb0aa0526301f0e2860cc29c94ed5d8094ad032025e7d414e0a89f198027600d20fd208ff5d4546bb039ef1b40ac61c5661a85793449cb0600d6b4685351c086fcf30220229cba02509faeb70ab06d6d0a50868ba9af0017e2ee002af0c237c10771282ff7d4f3007239e72516002f7ca78e05986274012aa83ee3b602d65354e371e8a2c139270a303af904807950fd57014bece229c0d4de0ac007e0d7a12ce0a4f3454ec638248cea0c00874313df286d0176dabb00b82f9a96450131daec2e408cda72da621065f8e8348a0f00b81b8cae36fb69658158eab60b67aaf91cae5a58733af246a7b8b1e05743c3a2ea3a9fb8146a2d459f7011caab087c90b10550cb8d0058039f106280a894ab40943fab00bafe2600d59617007812860209e3a680c308241d52b6ee18402a58cf5780684900a20d870ca2125e850c91fd388697138bb0121521d34b1300e7d2528e03f542f4829da6d5b1d00f5d08a8f80120271ebc4c0042993efe518084d9eac2d438459ccfcf9b7d0cc07dafc4e73b840f43e663ce5380682b570598fe210011329f4f970278f9ee2880c4be0440c87cdc7a2a5178f9721460cb88781121477305383abecc20cac26ef915440bf00e9e0b203af6d151c0097342014818bf9269013a466f0ab0cb75a0007bbeb70a609519803cbcf00517166074d2578071e50aa0804d03410020aa1d541520fb6cc8b1f1c2615c2e0ab0dff20da0082fd30c00aeeda6fb5d408c5ef0a702d68f7508803bb869dd52c0f5075fbe68ea97728c5d1565055c051fbe0170fd2f252b005c9d47ab0580dc3c4a36e95149f5e3db118082fae2684b5ab67c38b4055cb6fc6e530a20427f0520aacd976359c0022a7d098017a7a0805d7cc600506dfa9558a4ebe45715a086c90ac021915e17009aecf8ae0071316110cb31b4de19400e9d091700724bd5da565b5139923b7578a35f5489e45e9eb5adc7a2209693d179146dfec731e7c487ce9854893cf8a88e48b5905c75017964e600220fbe9c2205f0c2af525b80404f005294fcbeba05b0fd480012b6607944316ec9a4c55001ae9d990288217f7615a0dbe309804cfd07c0abe5af0072e385935300a92f01703509cd6d5d687ee3ba06e25aca009c364fd3aa022cd86515e02dce3a000eeda669ac005d96a302ae945603055cc38433001c884abc71c902f672d92b602fc14501664824161c884ac7b602ac8a5a6b30791517979e024cfd2e01707629156c7312ab79d0ef2f8094feb7a700afb8f705885aba0cb46cf9f5740bd84bf15d80782903889e56be058845390a304a0a01c46efda60051988602a803526ad4011ac4094b9789796035b705159b6e1f4e4df06d0b146bd93a94079094fe9000e4e55dbca8015504c0c5cf5a01c6402d00d1d3e0acc0ba1827344e9c71e2d92fbefdeedbefff7e1c7143fff1859fe0cf9fe13889c6493c4ea6e364364ee6e364314e96e364354ed6e364334eb6f6d9d9cfbdfc34cfc1c29dfc3c5a62be24e3e4344eced6fb659c5cc7c96d9cdcc749d586cc9f8b3fbf57ed53b3dfebe3a4314e9ae3a4354e5ec649dbfa35697b1d279d71d21d27bd71d21f27031bac7986361723fb907c1ff34f96e0649cbc8d93f771f2314e3eedf72ffb7c5bf8259f5ff6df897df8fb8770fef92521bcdb4026f297813fe3e4779c64c649769ce4c6497e9c14c649719c94c649599eca3871cd2739641e4b5c7dc871e48bf7272993e9c63aa6cc26e484e444e4c4e44cc931459523c794569e9c857e3efd9ccbbf4b7256e4acc9d9185fe49812ca984ffbececf73d3907728ee424e49cc839dbe7428e29b92f96a06fb5c621e766f5c5135da3277df4ed5f7069be58c7c49fc2cdcfbb25be04155a629e2a393572ea560159113ae434c86992d362e522c7a88349b4d10893d617fe69ffda5bdeb25f76560d9fe1d606d226e7951c1366979c9e4dcf809c3e39833f55327dc8193efdacdbf434ec53b38f91ec881ca36226c089fd7cb3a97d378f514f723ec8f9b40a1890632568731b88d43c16a281fc58c23054f1d92ffc695cdea500f88b27e276c49c8d9b6f727ec8f9b58663043734c922c7146fcb4ae160a5d6b29f6d91d4de0a91c9d6fe6cdbef3b9632db380bd17a61b1eeac1cb3e4180534fa5520a7484e899cb28d7760c557b5727c08d7a6c7fcacd97f8d4c5b36a92676a392c626c6a6eceda79b7ef1883c873ccf0ad1611de44ad017517af633108904cc45a0be38702cb98b034fbcab4b2626329fbc80bc9025c8c9252f222fb6aad71201b5ac8c5a22c43dd77a561fdb2a5915ab48f3459e367b977f9974c89b9237b309988bb0fe788c1ce5fb40aacb858503ab9846640b48d05bda6765cbe395bcb509932518fcf978a25f0f457b76f02c2951c3db93e3e770ac34bd8dcdc0362d4f6f87e47a7bf20e223515d05e7f3e7128a6ca484526fac80adb7efefce3f18ee425e49dacae98123d9367da9fe6bfa5f92c5096a6fd52b372bcda2a2855cff4f1aee499acadad157bf77f3d557e4c83a0dfffe6ec2e6efe804c84d7c833d137c86b92d722ef853c93255380463bbae4f5ecd3374fda86e0a77dd216a322fff6fef9ef93337600374f3fffc39751ff619a36d3e07823f2c6f631a99a90f76613a6cf5f7f4eacfb77f23ed296c7fb64097ea5ca82cfef7fa8a421cf90bc1ffd7cfef7af1e3958f24c896552b34dadd856825e96bc1c7979ab2005981b54a6239f7f12aff84fee95fef6efb39b3f03811bfe5eb6a66de4eba6f661ea4a9fc877fed0479348f3e97b8f47fff2fdd471faf05c632a05ff91673f4cb3ed874f52f8b71c9543a0ecc03e8184f6657f7e59724e9b0e3f4ad36152962628267ffa94ab360491920e3e1f7f89448cd458e2e967e75f52ebfcb3308cb36741fff38b7dfc19f9739be05cda7cfb0bf297563a4fb2f357223bf37d0df95a99aa049f9f1f11c48fc8eecb8af5fb6fcf973cdf70937efa223efbf81bf2b7696fc0df91bf4f53e31f6c7396472639276956adecf0a5208ac6822b3d49b6f3d029fff887381e7e8d6812fcd410f4a77f7a7c4f7f9ec9bf907f4d5b70ff46fe3d6df7fcaa15d31e524bed266b136f95d17cb142fc8704039bf927b9fc213821aca41e6bd9cf1fc282ec7c1443ead22ab591a05f4b7510c55825bf9eea2067129ad249c5819f853493304f9b7ff317ffab9af5904ec1fe5510a11721412e0cfc557cb84c856e85a884955afe32431df21b6919fb4d9bec56da6898524fc5b782108d4cad70ad04fd17f24d61bea6cd45fa5d9f57fb3cffeca45f5267ecd8fe4c3fcdd385336e761eee4dc83df28d750cd241823f4ceb637f64f998fc09f96f69dd9f7e31cf3b48fac57ee2af7738487fbe3d399b88cbc9d3f32e0fbb7f7f8ae5edcf88d8efdb9fa199cf0ff23fc937ea6294e087fc5ff233e41b8dcbd967689fbc7d787626b5b2f0a15c7ef10ff2c7c37f6dec97e293097ffd19c8a332b58f518432f9155bb99802746db7e627eda941b3a4fcfff140839e3efff8b7f0979faac8f8f2a4741ac23f949ab5fef9e7f317e338200a1c9b9d72da1ea65a59a1c0da32b648219f4f220802fb982f1105b13ce6e7948219057348f021d9cd9fdf374f1217099a0e7db0a0606925e8da7ed9f42f72e1275851b0a66043c196825dfa3cbbd4ecfdf5e77f95c4ff288cff82fa57407616c324694fc1810293c224ed158a04378f9c0727fb79feefe742c195821b05770aaa0fad0c6ae9f30f9906f574506c3ebd39058db42a09fc540d8326052d0a5e9e44d6fe5382eba7185f29308ad0a5a0f7bfc4f4cf3268ff3f1cffc37d2ab236c8f3277f4955b29f5694c18082a1eae0c656eda23eff4b82fc8c28185330b1727c4be5ce4f1ac87368b65d0ede29f848552ff8a4e0cb7ef9a6e08702538699ff90e073296629c85939e6ff92eda020ce8a14989c9729a840a19eb3fd3f246bd2f05f2e397981fb87fb90f06944193a3ca1ece131b53b7fd1d4873e850185218511853185d3a7bf6614ce295c50b8a470655b863602797c79a1704de186c22d853bfbb94f0700e181c2635a5b87098527fb99fcf9fda9b4c20b85570a6f14dec5c1e9c965559cd528ac53d8a0b04961eb4f37a77f4594a42dc61f413d876c1f38f813b2b3a7bf5882264bedf4314a14be52d8794a7d97c21e857d0a07140e291c51387efad704f446e17baa896cce6938af361c0eed834223a62f2860f89dea6068b4cf04f54b6106451d66611d61ce6a846bab3f8d254f6181c22285ac59641d58c5315fc2b238ab50e8524414391479501cb541284e164a67be20d2f6c36055dd10b8fd3449621ed0c3af868c2daca9d4f869c31235f5914f51900a2e0a298a288a299a5234937fe7142d285a52b4a2689d9644b4a1684bd18ea23d45078a8e1425149d28328e2f145d21c1e846d19da22a45358aea1435286a52d4a2c88460e512bd3ea5a1435197a21e457d8a06140d2932e9195334b1e22b8ab3378ade29faa0e893a22f114d86a26f8a4c8cbf362ef3334b512eb57416a87113e5292ad8308b360d258aca366d158adcb4fe8d896207050669bad68adb2241a89e083195a3a43ef6520534528b7d8a038a438a238ae32707e6af19c5738a17142fff5263c62b8ad7146f28de52bca3784ff1e16fce8e1427149fd214a7722cfe4582f1b3fb0bc5d7bf8573a3f84e713555c3b4182e7f7353a3b84e7183e2e61f3569dca2f8e55f8edb14bfa685676a61a38facbc506123c78c5ab18acf7e79f8ef506c0ac1a4be4ff180e221c5238a9f0c399e50fc46f13bc51fffd9ecc49f147f51fc4df10fc5bf4f3c939a5e9c7d22b934f3719ee2c203b204e32799c6258acb1457fe16974b53a2a94353efefe2e367ead334a06998eae3341218ff87e3294d67d6b10721a6b2b39fd339af662e68bab49ffc65f5e4794dd30d4db734ddd1746f1d1c687a7c7290d0f444d3e7f82e34bdd2f446d33b4da59a9fd6685aa769e3c95993a62d9abed0b4fda816a6af34edd0b44bd3de93cb3e4d074f3f87341dd1744cd3094ddf68fa2efc83a69f34fda2e9374d7f682a4535cdd0344b5323a93c4d9f0a665aa46989a6659a3e95c4d4a519d1cca1994733ffc16701cd429a45348bff688e66532bc1d98c667379ccf7c593cf65da86cc56345bd36c93fe953a78aae6673b9aed692686393bd2cc847ba299f97ea19918daec46b33bcdaa0f8fa6ce9ad56856a75983664d9ab568f642b336cd5e69d6a159f7298a2769cefa3433e919d26c44b371aa6bb389fcf5463313e607cd3e69f6f5e4e59b663f34fbb5716568262a6feacd598e66799a3d897556a4598966659a5568e6d29cc0e70ecd3d9afba97da815cfcda0e39797b6c3d472e751fac508711efe4582f398e653c87a3e7b38989b9f0b9a4b0d38372ed7f6d9d07c4bf39d24d738dbd3fc40f327fd4dcbbc4af384e6279a1bbf179a5f697ea3f99de6d53f9c3d1cd7d21cceeb346fd0bc49f316cda5e69ab7696e72d1a17997e622f479df8abb94ca2ef532a0f9f029f123eb582a255303cc27347f4bcb60fe4ef30f9a7f8acb2f9a7fd3fc27b565d3aa985e44681be5394b109a354f85c89fcf129c9bb8b35682392b65f3e49f1251b012dcfe25c3ff78e6459a9bcc976d6ffcaf0e2a34776941b47068e1fdddcdc2a745408b9016112d625a4c6921c569f2bf98a765b058d0424ad4342c062e56b458d362438b6ddad77984b6b341ede5e7212d83c59116092d4eb430446a522341138811ebe29a36cd4676d3792ac4c58d75307ac88ebffc5d82533888764f89b8a706ab1234dab7a8d2a2468b3a2d1ab468d2a2458b175ab4696112d7a14597163d5af46931a0c5f09f0232466aca7931a2c5f84fc14d9ebebfd1c2e4e483169f691e2271b9f84a4d75f14d0b138254828b8c55c00a2db2b4c8a55da5c553f12f0ab428d2a2243fcb56c14d1918f76eea7829566c8a67e9d0d2a3a56f1b9f3924081d344dc732481ff385bf3f0c674dcb9096112d635a4eadb327135ece69b948cd732965be34de8d970d2db7b4dcd1d2fc75a0e59196092d4fb4340e2eb4bcd2f246cb3b2dabb4acd1b24ecba71666d9a4658b964fbd8aa5c9c953f7c00865d9a16597963d5af669298dcc7248cb112dc7b49cd0f2edc9fb3b2d3f68f949cbafb4ee5f7e3fe5ce78ffa1a5887b6942ceda84e56899a7658196d20158966859a66585966efad78aecbf055a39a2832b8f563ead025a85ffb4e295f937a6d59456335acd69f5d4ceacccbf2b5aad6925c35853dfadb6b4dad16a4fab03ad8e69dbb24a6875a295712f46b1bad2ea46ab3badaab4aad1eaa90fbf6ad0aa49abd61379499b88d5532f75f54aab0eadbaa9423deba05113a383ab1eadfab412c9ae86a95aad46b41ad36a422b11eeca84f941ab4f5a3d353b2be3fd27d5e2d52fad324f3c4bab1c747095870e9a71fd0a7be54576e9e3a59f0f9f455a956855a6558556ee1f96b5265a3bb4f668edd33aa0b5f832edd73aa2754ceba741f47a46eb39ad9fa4bf5ed27a45eb35ad37b4964a60bd4babb9f59ed64fbdeef5316d61d7c9a36fb43ed1da7c5e687da5f54de09dd6555ad72caf3faac2f4af462aa67593d64f05b37ea1759bd6afb4eefc99af2ead7bb4ee3f91416addeb21ad47b41ed37a62aa3f5abfd1fa9dd61f2c41cf4ad0ca6efd997ef947f5f4ef676d12f44deb1f5affd23a43eb2cad73e9b8e2ef8ef3b42ed0ba486b938ef27f866904b4aea415ffdaa50d3df8c6a18d6715f64959363e6d02da84b489fe08c4d8f226a6cd943633daccff33aecd228dc8f472364bda48ffd794c1bfab6696f5669db6e6c66e361bda983ec66faa80468e9b9d4ad06adf660f4dfccf880fb439d226a1cd8936e6e7853657da9880eeb4a9d2a6469bfabfdc3768d3a44d8b36261d6ddabcd2a6f3e8423f5c7669d34b73b5e9d366409ba79c6c4669ea3763da4c68f354c16dde69f3419b4fda3c49d6d8f2e69b364634bfb4c9a4fda4e8edcf88b2b4c9a5f66e9a9d4d9e3605da149ffc9668f354c69b0a6d5cda52ea7e6b1e8fb63e6d03da86b48d52396e797fdc764adb993c73fb7341db256d57b45dd37643db2d6d77b4ddd3f660bf1ced9784b627da9e697ba1ed95b637dade695ba56d8db675da3668dba46d8bb62fb46dd3f695b61dda7669dba36d9fb603da0e693ba2ed98b613dabed1f69db61ff6f393b65fb4fda6ed0f6d4d1233b4cdd23647db3c6d0bb42dd2b644db326d2bb475d301cc8e68e7d0cea39d4fbb8076613aa2d845b48b53f7bb29ed66b49bd36e41bb25ed56b45bd36e43bb2ded76b4dbd3ee403b311d535fed12da9d6877a6dd857657daddd2066477a75d957635dad569d7a05d93762ddabdd8cfb695e0ee3555c05d27d541f3dd7cd97569d7a35d9f7603da0d6937a2dd987613fbbcd1ee9d761fb4fba4dd17edbed31666f743bb5fda656897a55d8e7679da15d27ca61e8ba94c772671e66785762eed89f60eed3ddafbb40fac22e4d3cade18ef3ea47d44fb98f653dacf683fa7fd221da5ec97690564ca7fbfa2fd9af61bda6f69bfa3fd9ef687d4b2f6b613b737cf89f667da5f1e8118cddd5f697f4b63d9df695f4d23ddd7685fa77d83f6cd474d6a74d0a8dbbe953a3089313d7ce338f5b54bfb58fb17dab75305dc1b7115d267dfa17df74f09b2219b67dfa37d3f15e27e40fb21ed474fcf98f6264d6fb47fa7fd07ed3fadf85eadaf2fda7fd3de44f64bfb0cedb3b4cfd1dea4c04456a47d89f665da5768efd281e8e0a4b676f052f3349939f87408e810d221a2434c87291d66f6fb9c0e0b3a2ce9b0a2c39a0e1b3a6c53681adcc32ecdd5614f87031d8e7448e8704a657a385bd118f7173a5ce9704ba57cb8db28aaa92c0e353a98181ba94753a91d9a0f099a762c15f1350d247d5a7478b10968d3e1950e1d3a74d3071234a4c712347ff4ede7c0eae06b5a151e867418d1614c87492acdc35bfa997e31e49d0e1fa9032335f6623e0f9f74f8fa67ed669ec3371d4ca27fe990a143960e393ad83eeda190ea4e9ab2221d4aa9b21cca74a8d0c1a523d1d1a1a34747dfa6fb90f26340c7908e51ea20fd19a7ea63fe356ed2bfcc334de5789ca5411de7a9ac8fb6e93f2ee9b8a2e39a8e866ce9b8b3c2351ef7743cd888c48a8f091d4f74345f2e74bcdaa232ee6f74bcd3b16ae5d5c5a77936bbf439d6788777fd21bb63e3f11da2193cfddbb49fad94984f75737ca1a3edaf1dcdbf1d3a76e9d8a3639f8ed2293b0ee938a2e3988e133adaaafdf89e6ad6f12395452a946e2a384e5cfafdd3a6eff341cc4ffdfcc74f64c6c8fdcb5a56c78ae69b8e3f36a25f3a66e898b58564e4984b9d997fd9571a5af34982f9b47e3816e858b4ce0e70bc8de15ebfa4892cd191b7d51f2bf671d327214a1cfb78e9a324fd62889ffe64c72927f962873149484944494cc994921925734a1694d87e59b2a2644dc986922d25765098ec29395072a424a1e444892117fb5c29b95172b7c43c550b6f4f903f6fd6e559dc5f2de7ef1721354aea9434286952d2a2e48592b60d507d7198af947428e952d2a3a44fc9809221252389652c5fcef2fd2ae99c50f2c62f03bda78fd144f3c9ca95fe1445d32775f691aaa13ad04f1ea8249f947c51f24dc90f25bf946428c952924bd7a4d27ff3941428295252b23fcb9454d26a2b71e94469d99e1c94b0f9d4c740e6eb8f0734df5943199aefe60b3be39fe6bbf9d7585c6aec0d3a79b6922da696ab519c7c093fa05348a7284dcf294eeb3e63f2a729a236e168bcfcdd7c725ca7b409651d5401d9e7347f7c57f1293c2d206b15df49461aa7259d56a9f84e26051b3a6de96432b3a7d3814e473a25743ad1c938b363bbd3954e373adde9544dabaa538d4ef534ddc6ca4e0d49a2cdc3a94927938017fbb4e9f44aa78e75d6a5538f4e7d3a0de834a4d32835e4d3984e133abda535e3c9a4cd48d664f88b4edf69f577fab10e7e53c7a78c0d304b2713543ead4f5259176c8916e954b2c196ad1b235997ce446787ce1e9d7d5b63989f019d71fdd41c023a474f929ae3d33ca910278f9fff1074eac0568266247736cf94ce333acfe9bca0f392ce2b3aafe9bc494dfbbca5f38ece7636e97ca0f3bfc630e784ce273a9f53019d2f74bea6e2f877eb943abb3d39bb5b58a5734d1cd4d3d6e96c272cce4d3ab7d2cecdd9ce569cdb747efd5b989d5488e72e9d7b74eed379f0b7486d3fff3c4a1b3d23e5f398ce13b1e2f31b9dffd4bef347fad3c0b4ee9f3cfe65a22ef9fbf953a2f9a2f3379d7fe8fc4be70c9db369fb7b36f9ccd3b940e762da0d3a97e038367f95e96c6df9ec6299e242a92e5c9cb41667d15c3cbaf87409e812d225a20b3b9bc299b1c1b31d865e6c5d7199d3654197255d5674b11b1f2e1bba6c5335bcd8faf762cbef72a0cb912e095d4e74b189b95ce8724dbb38971b020c0cb9a735401a6f354d1e5258a34b9d2ec665932e2d7e97ea852e6dbabcdaa72d3f2d31ad47faf399bfe2c15ffc6f872edd3f4aecd2a34b9f2e03ba0ce932a2cb982e13babcd1e59d2eb22675f9a48bc9d8375d7ee8f24b173b1772c9d22547973c5d0a74b1e3ad4b892e65ba54e8e2a62eaf76c87c75e8ead1d5a76b405719865ea3b41db8c6e9a709e46aa736ae33bacee9baa0abcc355c57745ddb6793c67bdd4234d71d5df7743dc0a44c13743da6915e13ba9ee82a59bb5eacaf2b5d6f74bd5b099e5907dfa089f87c7ffaf9f1443ee85afdc38bd1c16b8dae75ba36521d9cfe6b82fedaa46b8bae2f746dd3f595ae762ee4daa56b8fae7dba9a3c0fad8ad91c5e47741dd375929af3f58daeefa9a65c4da49f74fd4a35e26a27f84c0d903a33023599b1a2bf66e96aa496a76b81aec53484ab55f66b99ae15babaa9ce727a6e4437876e1edd7cba0569d4375b06b728f578b3d2bc4de936a3db9c6e0bba2de9b64a95fa6695fab6a1db364df36d47b73dbf8a784805713bd22db15feccf73f824c1b70737ce1ee2b630f578a29b09fa42b72bdd6e74bbd3ad4ab71add64a2616edc34e8d6a45b0b12bcbdd0ad9d66f8f64ab70eddba74b38b1b61856e7dba0de8364c6bbadb886e63ba4de866e27aa7db07dd6c8d314fd281d7cd3611372bd3db0fdd7ead048d143274cbd22d67b989a29096c14d66b1528fc64dc9cace382ba7969ebaaca42e6f2e4cf54e747752f1dd3dbafb690aefb6d3760fd3949b14deff8fb8f75a7225e7d1762f06e708797328efa5923767f2de7b5dfdc60b9252aa5677cf37f3cff45e81608020c8249f044da6545a537e99370b40f0e632f9ce1a94137ecd2dac0f62e37cd2d205bf96fc5a61ab7dc92537fcda02e56bc7afbde5f83af0eb88e9796d5b82af13bfce18edebc2af2bbf4c804c303619f0ebceaf07bf9ebf23faf5b2a12a81f04af02b89c71bdb608a5f697e6500e595e557cec6a021f872ef6825eaa5aeacbf82ef55e057915fba04bdca40f6aad8c3d64b18d570ff5e3ffcaa63eb7fe9b6f66af2aba504a54df35d7ec3c8b07b7521467933b24027367df51c56757ef5f935e09780900e05f815e457885f617e45f825fd88f14bef6a8239419c1872423f874d8cd15d194662c2892927669c98ff0e99846e0e1274892527569c587362c3099d4a891d6662620f2e89833d1e09fac411e813274e9c3971f93498b87e08e20e5539218d88e783134f6cd068f385397b7dd8d684a06042f712dabda49d3d8914de8924d29cc870c2ec2409dd106c9aff969c13d10bce52847277b5127a0313654e54382197aca988f2c3893a271a9cd0c7b8448b136d4e080e7d7c4ef438d1e7c480133e4ef83911e0843e2f2764b4614e080b7d4f9710c471ec2449e6247172c849bd01c93127279c9c7272c6c9b96d30b9c0f6925c7272c5c9f5a741b127379c74df494cee54f69c3cc02d79e4a4be124f9ed5aedc93574e4a7a47f7920f7513d109917cc10d5d4a70d23c174b1c25531a74139b7ab3ef52a324d32ef4bad0e1accf95c92c27739ccc73b2c0c9228a9225bc674c9639a9f32259e5648d933f9cd44f36920d4e3639d9c2544ab639d9e164d785cc0a2163dd844b1f9ed80d6a081cb34ec92c4e0e74a9cadb7550a2e6d3a00f51e36d30e9ffac83d81c42583d92010dae998dc1a4097fad25bb7332842b26c39c8c68448b25ea664f156ec91827e3df0401c889a049b1e5982288e8a9a12d3559e39372df8e488d39259629a7669c9a736ac1a925a7569cd24d36b5e1d4163736b5b304650e4a3f64c0a9fd17c1d401034ee9c12d75023be971ea0c04a98b3dd0c9868365f49ba069307505c15fb724254db9cfb9a47d112128a762b8753e0451f4e094c65aeaa5b5129c4a724a86ecb6f254865359c04de53865deb00a0e030552707af10b288c43eb63f4b75d36e2943b0ccaad4b953955e1948c59aee13e5c4fd539d5e05493532d84152c6d1b32326079069061a43a1f821283a9aefde045c22dd5e3549f53fab1644acf2e721a973d3125a003761d945b9292ba2125d8e654f8ab412f41005582a9882578d53d271555bbc4418c531ae9bb13a799d3c4697368d79b971e21fcd3634e4f1cc1f414bc2c9aa24a01596b2f58e33bfabe74719b717acee905a7ffea939df48ad36b4e6f38bde5f48ed37b4ebb01a78f76c0128369e9ebf92b06d3174e5fbf3e1899fb382d0dde3f5f32493fb0f3a69f9f189406d32fc4603af19be0ebef63d04b309de4748ad3694e673e97967b99ce725addd2794e17385de474e94db0cce90aa7ab9cae71fa4795aa5a6a4ea9a8fdedf6a352e774437d446972bac5e936a73b9cee72bac7e93ea7e546c948844580d3414ecbd8c29c8e60fd4e47391de3741c698639439c197266c4993167269c997266c6993967169c597266c5993567369cd9726687d55db685cc9e3307ce1c3973524f9133672e9cb9fed1e04d1bbc73e6c19927675e9a15497026c999947aa6b574a6f6895e77ac97ce7026cb991c2e2dd7cde864cf143853e44c893365ce549460a6aa52734ad545a20666e6e7db4e5ffe628152e74c83334d6cb5991667da9c11a5cb991e67fa9c1970c6c7193f67029c0922403221ce843913c1d2063dca194119e72c7396383be4ec88b363ce4e383be5ec8cb373ce2e70c491b9935d224cb26669bb7176cdd90d67b798ced2607687338a34289195dd7f3778e0ec11218fec1055b2278dfd1367cf9cbdc047223a2b0ed2ec9db30fce3e75964856d7c4ac3e6e65e5ea29cea6392bcee634f361f4e374afa5fa57f2a3ec5c56e67b36c7d93c670b9c2de2e1245be26c99b315ce56395be3ec0f67eb9c6d70b6a9a45a00279d46dae66c0704b35d1d498fb37d0537e0ac8fb37ece0694d153290455975a61ce0aaf2867a5629c73ac4d3d38475ae5578317ce0dd1606ea477a5afbc269c1b736ee26ede407d1ea09cd3cfa073335c4b168ddc9c730bcee91a7597ec8a736bce6d38b7e5dcce1b8355ceedffe0f8c3f72c5229ca1dac118ab157a1e7e49227d5cf9c93be5e392797972bc9789e9c7b712ec1b924e7529c4b732e637b9ccb623cb91ce7f218aa1873058c1c96918e7cafc622e74a4ab30746b932e72a6a39e336e4aa960b6ad554c95a7ca8fba3d5e542754d1b9c6b2ab5914a0ba57013946d2ded384ff7818f6cca7272c8f538d7b7ab616e80b532e7e39c9f7301ce991ff1c98594c21e20a01b656f390a29941e14d30f52584e30221bb2a0e1e05a9090cc853917e15c9473d2c538e799f3c4f921e747206578e5c79c9f707eaafac40e46b276fc6a84650cc432d764c092e6672882b4393f47a990127fb4f3a3f61fe8628771a1d9b1035ab041874b2f54ccd517b696e9407ec9f9d5d72626925f737e83b99cdfe25920bfe3fc9ef3e63b0bf923e74f4ece4eb9687a75e945e5f887dbf93b7b5437b9cc9df30fce3f39ffe27c82f349cea7389fe67c86f359cee7389fe7bc74bda89277a9d84b9ae69cb1a8fea634afa54557f19d35b50a1ecf92ab5bc44601a5e4f4b23a645db6e4aa173d752b9caf620bcad7382f64ebd864f20d3c17e59b9c6f715e6e5e87f35dcef70cc13e6247d2b782501265e0499df11fe453d1c7793fe7039c0f723ec4f9b0a611ce4735e8fef7c4c4a91517cb08a2ffd2f9afaa7f7409d23817980bc4852117465c187361c2852917665c987361c1852517565c589b596c861d415ad870610b31ec90ddd8220164ec7030f6c157ddb714765cd873e100708523174eaa489533fa57b870e1fae9aed10bb74ffaa78f57a4e8b7e5fa4f45bfdaf9d3e7e379717d1863a506c43b171e5cd04dacf0e24242b126b990e2429a0b192e98bd5888200085574e31c950f31a32c6a2a988856810e72cc777a9c59d77a5052e14155cc9129425b5507674bca42edf10af1fe58dd2ea5a0471b53e63fe46f9e172fbb2db16de15dd754d974cb31f9a312e54b820ddae71e147a5ce05dd8e0a222d2eb4b960de6e61fc1137f2378ebce5f8365a51fbc733f25bb1d2e5428f0b7d2538c074969dda8edf23efee9a017c90bd7dae9f11bea1d82ad7df8d78c119376f749b3be185f561e7a9ee6d16591f17fc4ad38fd8b4fe012e04b920f1617e1daf1051893ae52fc55b1afbc752913817998bc4c52117475c1c7371c2c52917672a73a7fc83ccff2afb0f157f392c3ce97f7845e3f60f17f21a975c5ce9a0cc6f7d14d75cdc20708a5b28454f3016774e310e7b9b1a37c8cea507572ad923174f5c3c23fa0a1d2e5eb878e5a2ded8e29d8b0f2e3eb9f8d234e18c7758dea1574c6a9ab2a58577dd97ab985425e9294ada76ace5e92c4f8fcfdd7389e7b77fd28a2d4afcae65bb6d1cd25cc422e866b145b0765cde74366adc39c56b79eba696d10f966331cb454199e762818b45cce562898b65ed44c2c91be54325e57aa9ba259b5007335453ebe546f5745592ae1d7357eed6ed0d14cad35df1fe01f791a7ab72ff70f4f2b577eee1b154b858c5d08a454370a323f71231d9a383f226f8ce1e1cb237c1b75ed3f4878b752e36f4324d2eb6b8d8769d783a9477c7e8fe5d74f7407923fe4be55db1a34d791d9e9efbf496bbe7ae3cbe2fe795a7abfef074f5dd6d49bb5cece9d02e86a00cbeafb2d1d464071efbc1e9078feecd7aed6646b794a04f2fe3d7900ce8b5833a5a6f773bdf5df7dadff2b6043d0edea6deb8dffe6f4cef6ce71f494969888be1ef2e75fef031f608a63056274b30ea24a612e7125b5d14e871576424aa4649e9dbaefeb29394865c1a7169cca589ca944b332ecdb9b4e0d2d2a52b5556cef22e5a3b7ded7136fac665df5516ae1149b71ecbf20fcfa56b79fb7d95c51fb556df96e51f59911d97f666744ab074e0d211e123679c8fa246931abba452543ad8d4088e454e6039e966220e672e5d5c0c16b874e5d28d4b772e3db8f4e4d28b4b894f889592c89652aaa7554fabae77be94b1cec6fe299234ebb2e93f62b6f369077aeaa3d8cbb90ed82b9a06335ae5e1294a7a7af2ae55e3528e4b792e150c412155e4524911943ee0c468d87dc438949c5bd1e35f54faba0e96ca5caa70a9ca25d17fb854e752034b2fec4d2e499b6d2ebdbbde75a98cade7faddf538a454d29fa1dad17655d24e7a0e50cfda6df65d2be5d2dea71d94763c8da734fbbee89b7bffebea122825098b8197a04f590805bf8355f42845a7f89c519c032e128b1e0972298415b014e6924c6799e932b5e35c6615e2f2104b6479c4e53197275c9e7279c6e5b943d675f8d29f60fc907a677b7f654fbb163a9e16ccedf9853be1b9492957e4ade282fa737b121fbdbc0081f25247b432047d90f25a95370bdf77b6e8b2bf8c5e8b34b2e1f296cb3b50137ce5bdca41d919614465f908a3c469f9c4e5b3a2bcb861bc3c43fa336b2ce93f8c7f297fbafda5e54dadfbad784b3d1674b5c8e5ab89092558be71f9cee507979faabcb89c507939fda94ad2a5774dc53fe57c4cd11ddb4b59ae91e17296cb392ee7b95ce0b25cafc4e53297055995cb352effa852e77283cb4d2e4b54b6b9dce17297cb3d2ef7b93ce0b20f22bb47d9afa96403ba996cacddea7e9b1a7ff129073f0ed6e895c01f2d985aa1df8d7b7dec25fcda7898cb111d8e0cc17c8fba1c5359abc435945cfa91357cacd179dab0f5d922b93315e60a21062b43ae8c1086953157265c993a997165ce950557965c5971658d9b296b4a65c3952d5776d8822a7bae1c3059305f34e8acd2fd582a476b87c513a7ef5a46113711a39bacd7f3d3f2ebab7debe90dff97b39fb8223dbc70e5ca959b8cc210348c625f69e5ee61f746e6b295c7072e3cdfa5d2fa13a7cd8a0c32a1f374082e95a4e24b610a439f035c25adb256c9682a58b35cc971258fd5ba2264e5ae94b08957ca16872182217908bed3b798ec2f672fcd772dd3e62f0703ee7d454b539c2b5ca972a5a60411014ab0f2030a48eb8e88a40d07a8698d95167ca01bfffb87f2a754e2a8cd958e52eb5a82b226567a2a7d0db481d2ecab65a0c8d2361e2b3e4d0dd99b06a61f1da804b812044413059f98f2ea21cd5ebe8c5e79dbdf6e7f7a56c2df6d1eff7088704526564c09aeff24d8744ac3293f0e90c1da02e58fdb5df5a6d34d699cabcc55e2ea1028ab23ae8e1177d58952eb835a5509c267c2d599933957175c5d7255695655242ae5065437b8edd52d57775cdd73f5c0d5a3052a2ca0ebb0c5523d3a9aa10f5943ed5d05ec429fea6fe896acde0984bcc9967186b5ced23d69e78c5952bd68f70cc1ead58aec0c6ffdefb2eff457a9f5b97155e4ced507579faabcb89ae06a5225e111634939113dcdd58c4a96abd2c53c361c49bfa4c0d5a25ea5c4d5b2472aff9654b95ad371d9bebd6350f2754d1b50aa4dcd5e54f7c8dbc11635be6b89b4b00ecad4abb6b92a01d8c584adf6304925cab00226317925fa907a03d0a363feaeecbc369158ed3b59ab3da5971840e4005bf571d5af2b544523a8626350946ac063acfc850e87bf2bfd65310d06b91ad249667b6562d0410197b0c311d15953d7b4e16164f035ac3ff4ad07a8d48a7235c6555d49a5b51aebaad7e31a716dc8b591b29b417923ab8db936d1593c77f86eb0d4a65a3486a536438f6bf34f6a145958e572b50538d6965c13cf35d7365cdb5a7c925a8e950f536b0cfd2ef53abcddbc9471951d2e5adb03626d6f0846b876505261a4b5238858cbd6010a7f658dc5a0b4f6b056a9ab67149ba9251ee5da09bb8a70ac9db976019daa812896ab130d5521585382b21a0a41d0bc41af68e8d5ee5c7b70edc9b517d8d512aa24753c29aea5b99641e7b156fa00f133febf4223692dcbb5dcef52b1782b7a51a2485aceeb0d2ee82d34dfe5ffd009ff21dbdf69ade829da7ef42fcac658d7306ce8a8e25c2b6103a995552a98c81295a0e604404dd04dbfec1f07e97755effc0ce0acd494e64b951a6e064e0242f9876b75aec9d59b5c6b71adfd81f266e445f6b67b099aac807edb6b1dae75f52e16cc4595604d3a2738079af65cd6e7b10c9cf8d5f2761eb8aca9125087b7f1ed19e45a886b423fa2225129f32ece3fcc3fc43f439511ff8cf967e2b2a24f359d39c5d8e7ea492e1559f0cf927f56fcb3e69f8deae2b6c566854bec70b99f3dff1cf8e7c83f279523361fab9f9da2762b976f1faf5cf9e7a65759ab98e76209909fbba60fa45fd9b02a4ffe79613e4a2aab80f579c0cd785a096b36ec6add6d0acf041660094699e9e62a72a4c2cd945e26ed4289992b5d4fe1740d250d91b9fc93d1225d016ae60ca116919f2cb23f39ac4a12113f79fe29f04f917f4a504c54fe947121990a3f15fea9e23487c06c6b4cf93ff2cefed46cf663f971f600ffd4d11f5c42c5c620861a55401e2202cb66858b5cbea9d2e29fb6b55b87d787142ac680f85d178a48877fba2a3dfee9c38ea556f7999f01fff8f847fa17c0bcfe0942006ba68042dadd8ca569e66f45b306a57882600a2233eb471a8cf08f0c24a628df1c93a822474bd9be7ee25c67ae13d7875c1f818b951fae8fadc5a4424d942f9f9ade86b2366eda379f93d42776a8327e33f2fa54f517d7675c9f430cc4fa82eb4b9515d7d73afe8163aa2d48535251aa8b986c7dc3f52dd7775cdf73fdc0f523d74f5c3febffc073b5b70a556e8058974b3f109592ca6a28c3ae3f154dd685e459952c04aba1b2167075b9966e2c8018548e259bd6936ec06ed8b8441b73a29ee2ba5c22c3f52cf6f17aee1b56ed8ba6cde6b53fda94b66c08ce74a89216ec782cbe22d7e57a652dad28a980ee7a15ae57b92ecdc97dab73bd61ab03c4cc567f67ebc2bdc5f536d73b5cef72bdc7f5bea60325ebe3badcea003c7133a4a920d7656c61a519e17a94eb310597d5409be92aae4ca554b2e220d97a9c1b0c640dd2b92cca103ab21184a48cf62d3fba0908746956683646dc182b475126dc9802a589bec6cc8a581af30fc177538d85126c2c9dacb8b15665c38d2d3776dcd8637f681cb871e4c6891b676e5cb871e5c68d1b776ec8e59f58ad1b2f6e24b8212da6b057d8a6244d7323c38dac8a74220f9a8d02378a4ab36b51364adc2873a382eaa87576d5abda0d911a377eb069486aa5aed270624a9bbab1a834e4426d950e37badce869dae7c6c0894fa5afc3a9e955e48a7e6ec87883dc087123cc0d194b5495a8931837e2b67a93257531d82408a6ea13b1d01c72738455a339c626d09c7073cacd193681e69c9b0b6e2eddf214e6e68a9b6b6e6eb8b9d5ea0fc46f7387686aeeb97900bee611049b276e9eb979e1e615349b37d06cde2dd0a634fee4a6d44d207e9b496ea6f48a699c849a19041ae22b8f8b22186776053433b799d5300cc3419466ce86a4d4125d42123ed2072995feeb1c7ca76f45fc9b456ecae5cadcac70b3cacd9aa6aa4824367fb0aa36ebae8af9fb6259dd40d0ec004fed6e939b2dcc94669b9b1dc4b9ac534d19648f9b7d74d15013c432179a42dca7e2e766809b415d014a68b019e2a6208e00dffbab8c201855114c71c06db14529335dd216716bc8ad11b7c6f64eb426dc9ae2ea98bc516ee9da074959a062b4cb5fdeee27ad394809384c7052762aad05b7962892b4b552160d6ead6d0a4577dbd64617932006d2da726bc7ad3db70edc3a227a8c674b02a26efe4fc0335ccd56d0ba70eb8a267087b3e025cb90a4c2b47543ebad3b9a907550c8b61ec0d77a724b2a26d06f3824b995e2561aab642b8369dbca724bba9ee75601e07efdb9444b7f4dac554460b64a36305b656e55b855e5568d5bd28e346bce031965945264298dca2000b59a8a2fa2bc8676edc352e8c4e043f4e500aed5b2dca508d993126973abe368b62d4db913ad2e42afd5e3565fc322a76e2be369080ef45617149f4fc7efe75640a90541c44044470d7b6114527c4d806b8531d9a1473442e5064a98c40057e66f5d7f69b615e7363b216cca5e942dcf4fb221303d2845da43d06c8fb83de6f684db538c0104b3dc9e01597bce6d0db7f612e02495ec1ba26465e622cd015c7ba5a157403fa5cfedb50d5253d4de289dbb0eb36345e6597bab58523ade93da35b504db3b6eefb97de0f691db27aca9ed33b72fdcbe72fbc6ed3bb71fdc7e72fb85c5b89de07692db29b5a755cfe8f652533719554eedd269197c119354b8b44b1e826f2973bbf23b24bd5865becb0d9095b45d05504981522ef4c3ed3ab71bdc6e6a375edaab16a461a4c36db3871869b954fa2f4592f6b4c37d6e0fb485140682fd474a7d286dfbb91dd034a88a91b7ee571f69c7fcfe603b8c39df8e200065a36847b1e2b4631a7d2f28ed3877189188605c71474f0c9d2122bc3352fb0bdb4b678cc8ed4c7063919d62fc1dfd93f1cefcaf08aa74c4738923ce7f8252388ac872299b4f477ab2e6ce863b5beeec104712689d3d3ad63970e78899d839a91c35be563600cd6c954e76ce3a695208c6ce058d60914d20a8e1b3d2a6aedcb96954deb96352b13caca57537ff7b6a903b4feebcb893e04e923b29eea4b99351215c4626ac5824ec45ef64f5da663998839d2c2ea0299dc871278fbdac5300f74e5109ea9fdc75ca7f4bf08ba6dc92bf8f4ab30bc9ca60e6b848a70a9a9d1a777eb853e74e0338b0c8b414e249295c1587706c025ca7e52cd2e1b6dd6a4050aeae586587ec74b9d353e96b3b37b0eb0cb8e3e38e5f1b9140092a4d13839d30424f20caf28f20caa269ec38023462b3d22d49a147b913c392d78903abe92e16913982116bd00a9d93ba5de62e5982dde17f44d04877c4dd3177fffe6710119551ee4e7150074a8d4d592ebb33eeceb9bbd0aeee3e112703c668831a3e3ecd76ec6a08ca4b841eeefa12439028e92eb9bbe2ee9abb1bee6e81afbb432db3c24a00a29d8069d6c4e0dc12eceec148e8740fdc3d72f7845d426e8864c528f707b7a8af01d8e7ee19d3166b701297efe85d35c12f0aaa5fec460c82d7ff06c10f4aa97847d0fd53542a4a4465d8c666f7c15d19cb8bbb0974ccccee6e52a7b3742c6507df4d834b37a3d98346eb417bae07a66e8ebb79ee16800c6e3b54c7ec6e025fb768c3b06b7e3daf5be66e85bb55eed6b8fb8355b95bc7b6d06d682a8db6b4a8ad7a87bbc2b4c75d8138e0ae8fbb7eee4a87829a0d7137cc5db907d2891877e37a94c9fe4ff0fd5a2b7bcc3dfa2794bda143a9512913bc37e2de987b13ee4db93743cf7b7315696da922ca4a9535f7362a5beeedb8b7e7de817b47ee9db069f4cedcbb70efaa2dc885eedc7b68c527f7cc1bd65e0282356e8415ad974494f55288a35e1af750eea46425c5846d6222f732ea93458ae52f6deb22cd2142c5ad97b3e1238f1fff8f04dfd2cb734f3a53fcc7a8bc7c45255096b857e65e059314c3d1fd4182b1274535eefd70afae69837bd26d0997124a4d54f6daea53d3a0f32b1fe1d8e55e0fc66ec610ec736fc03d9f4211e4014516d49d64a86b0aeb2435f8a4288450976c2f0cb2bd88564c43b03ee6501104a36037d6adf37f8be007658c7b71eef3df72c45a79d5c7f02cce03a2f74997f5bcdeef824ed8a4026a015c7f08b1345bdc1f59c1644f737f0c4f10f4433146cc6ef376ab3fe1fed4b62ba99c5db082741050a0d9453082885f2d41eecf107db24e8bbd3f07c7fe02f8046b57b79dfe1210fb2b4770ffbf4ff02dfd35f73778e2fe4b8efdad3e8f9ff1f82881d9df717fcffd839e2ef4e06242a17f448849581988fd93a2fc519467c72bc5fd8bc6604da16bda4d1b820750eb5f718bfa72d53ba24c28f41f98dafda74e55336d8380d87f416019a107fd04f775e2f7e716b4a47db95eda3e0ef733ff87043f28b378f2f98552f619bc13ca690ce6b89fe77e418f1c1256451ce3fa250c59862f93a95fc6b445e85594a38cbd6a05e196d293cdd5b2eb1b8e554350bcebd84ffa0dec187d19bf78482875b8df4556360728728bfadc1f70dfc77d3ff703589edf3a8a24953e85540fdb7e8360e4df20f896eefd6b4d94296c094675f79361c6b81fe701ab100f86b00c463c1883800c7330c1b806531ecc78307722fa021bd160c98395a6d88b94e060cd830deec360cb831d0ff63c38a81cb1abc8f444f4857870e2c11996c1c56e2398b96edb91901c5c118c32a3253607ba8134f5b75b06f77f95e0c0f3bf0fe1355a4ed7c10b0f9e3c7861e591f93b48f020a9034ff120cd838c2a92667990d3535d5e27dc900779c4daa0a0fb460ad9411159488907e6976c07151e54318b8591ccc4414dd73b69f787077544f5a0a17a138cd0680bad0fda16e5a0039a825b4e9e201ed6a22e0f7af6f5419bfe5d829e07c4c1c006a0c840c2caaf73b08d1b2fdd9623ad4c6acb2ec0031954084f658330563699dde220a1830d53d7c14104937720374062368eb46f66b178f8185c7cc4be21163edf0816b068b26f8cc83251e99b20c4c40d1bc545778c82567929c11398faa6c0ed9b2106cd71daf7f70fc5ff17e2f3fce0ba6f69d74111df8a7d6bf66dd8b7452a1184d55cec3bf6edb1c9203013ec93611e554ea0e93bb3ef82070d212e535038faae1a804a70105382be1b04eb624b83eec5be3bfb1eca514522ce27585f36247d09784a154cdb258002f410d0258b6b4883c9cf5b55794afb5709a6be6631a26f8009e14bb32fa304b3ec13703a1f65d3c0fd96ce17c0d157d4fd5a03d06caa461188be121ed224bc8052c65bc656e333dfddf255d857655f8d7dd2569d7d0df68987306ab3afa31b885cbecb3e49fbec1bb0cfc73e3ffb02d86de0195445ec21f685b535211eb147195980fe4d7c20e879f388b558214a30fa62ec8bb39fd94fec1fb27ff4118c7d8001fac7ec9fb07fcafe19fbe7ec5f6876c9fe95ca5a1dc600e2df00917f6b08de7113b078fd602d13b4fe1da254524453197b8bf8f8f7ec3fb0ff88a89423a1ff84798d60d449815d5f2a9e319de52ef92f3606ff171f48fe43697a7eded51e65cee886ffaa0bd453572419dd0dc128a955eebac01db10d201e770840ff83fd4f3c6b1831c397ddc2ff422a1c06e6137799eafe844edbbb6e173f98a7fea44ef512fb53ec4f63fefa335a7a617f1613d69f43d62f3d2b801dfa9482ee2fb25f6a95ed9b417fe5df26e83d0fbe63509e4cfc555de92a18bfbfc6fe1ff6d75514a2d5ef188250c66c15520d0814133a0fa422a0d954d0e6f362bf44631b44e1d7c196e2ef2224fd3db0f3f7d93f60bfd4f10313022d803511fb8fb418647f88fd614519d15a57f647d91fb387417ffcff1cd9df1194673e1b83170e30f00588034355461c18035960e2d879448619982a870682d1af830acc000ebb820f712a6960ce01731e0c2c39b0e2c05a512a4dc9a29a3e7b04361cd8622337531bb176c70d0cececb613d873e0c08123074e1c387340ba7bfd1ca703b77f155fc07b9cd607737b9c26844ce081d91678e27e0393745eb2494d531c482bd334045bcd159baf445520c3812c07721cc86b2aed143950e2409903e657a302550ed438f0a352c33a1a90861a6a6c72a0c581b6a61d0e7439d0e3409f03030ec84df07320c0812007421c087320c2812807621c886bbfa3ff3f3c90f8e65f04cd895a6230c81c240e0e3938e2e09883130e4e55661c9c7370c1c1a5cad41549bae2e01a7b6370c3c12d07771cdc73f0c0c123074f1c3c735016341b8352ff0acc92066f361bbc73f0813450e1e093832f0e261065c12466ab4ced608a8369c4633003919b16cc225a657d0c9a43ac394eff67eff7ffb724e8f90fb1f01cd2b3eb60bdc3c102ba172c72b0c4c1b2150943c4ddcb4a50065b55310e351dd70f07eb1c6c70b0c9c11607db1c94d6ba1cec71d07c0b18d42a3ad5cf8ee000012ff3da62f521f2837e2c1f9206031c0c02683084500fca5d8a70300a91e92058833174dd0c23f8efae83dee3b4094011390fb6871c620e118786e8b0dcf8d008333734e6d004a4a4f3a12987661c9a7368a134cb1c5a7268c5a1351c421b0e6d39b4e3d09e43070e1d3974e2d0f94df0cca18bae62aa40ae1cbaa95180f635181f1cba036bd0143dd01b11591065e3965532f4e4d08b43090e798ed3a1d4bf4ab09ff93acac831d01c06eb5d0ea5b11b48344810c8440965100172bf43590594535833b093d4e25b7328af92d3908ceae884638143450e9538649e8b3fd42a1caa4291cbbc5323a056b3ec84b8300dfd70a8ae21e9e75003335d680a4a406cdaa38c3cd5c973febf4930d4fa2268c230d4e65087435d9c3430849e0e41ee6edf763b34e0900f510946136527e2870065ce49de49009b7828c821f3595d28cca10887a24e09ab6e94b0cbc63c6e716c3e61e63061cf090f393ce2f098c3130e4f393ce3f0dcc660f37ff401d3ff8b346f5f04cdab2d89c1f082c392ae38bce6f0061b63788bb184771897e8e13d36c3f001db63f8c8e11387cf2a17d5af6a14fdc6e13b871fd88ed0a0f97f3b116b7d0ebf108048fb56bc9670c229490ea770032595784436cde18cc6a91f811dce72d81d65eaed7f9ba0f72b4e660a9bef8985450a1a5909acdab213ca9a88c5fd86900c17395cd2900c72b8ac535b5857540a3ac7473ab77c1c162035846df8079efe9c21e87774ea4e795931ba71906de46df716995274456e5403933ddcb404e511f55f261876b3b819538247f424dce67087c35d08669f0ca4a70b4e06fb61580632508e0248c612e07010f3371c8208f47058d9c9b82210d9cdc3511db5c4cd4d0986639a8f5b1cd063c822358a83e8cd5a4bdcd95f0843846486232e1622ffee9bc1b6e781c412d4188c0c812032422ae38f8c9162ed238e4c1077d2f3c8942333886c067262c322a87b8be093539a446564ce9105fc650b95519b6d23b27431281259298e3814a31bac5e89acffb0acacdba7fac67e360682db7f155f64e72178716fa785e05e29643972e0c8514f1119049a3c4a454eba64d53872d6ad524f6312a4910b8847f4ac26b5246023371ce3e05cb5bbab4698128cdc551e4e79cbd3d91f9eecdbf3e1c97aebbeeceb10104cfcab0483f16f82ee912e22e34fa9482865b0139a5df1d37f819be3481e5b44a4a022a15ae2489923154dab1c11ca3fd851bf7199bdb8c191fa47906d68dad474a5879580c7ae2922b961ebda5255222d7d23a20f24917f77278974be8ed372aa8f74719c8e88d2e78828329765b64927835010500d5dd4b2582223218e48c409d9284784549ca3cc51d2891fe3e8107ba6ccc2901bbece3c1383758e8e2c3b2fcde8d8a38f6c0a196bf0373ec4bf6a4d3e0fc5fff2272451cfff238bcf8823761d8cce383ac7dd8d2e38bae4e88aa36b008d6e38bae5e88ea37b8e1e387ae4e80933377ae6e8459fffb21c95ec8da3778e3e38fab451f51e72a8e1080a11c32bfafa2268e5050753fa8575ec2ca74f1a4d7c3e21e9afff5d82c9afa30c9ee7f4b9389a02c168da054e03ab6134a3c884518ea379c41dc011765b4965e18352e06891a3258e96395ac1c217adbad8d2c15a826f4c369d7b2c5ef1008dd69ca5e64adfca0fe68efd76f4bffb823aeaf9dfdfdff80465b4a1836f72b4c5d1b6465987a35d0dbd1e47fb1c9578f471d4af6900d1170d7234c4d13047856354675e4ca979624841198271488c39465f7a6ca8a91a7fa57018399d3c15451fbb2f1ce5fe557c2231cf570ecd36622436d5becd3836e7d882634b9515c7d61cdb706c0b911d23b6e3d89e63078e1d3976c29e63c6f8168ceeecc98ec4a20463176cf058176a1cbb424437965f02879bd5a596574c5dd8eff633a6d6bffb5e0b04dd67edadac65d71ba233b1278e75b117c7121c4bea9227b0521c4b734c3065392694f3ba5835b1736244379d5535cfd85f76988683997091812328e225152ba8a8315654b93840854fd65bd1a294d212be3628c388fdfb04dd3788e538fd8ec158158064bd8bd5145f174b5eec4757bd2bc23356e758c3e13b41de83fdc4cdc52a6f8b43f92628509a38735b3a1764ad2e694b45d959a6974fad77112c6d8e756c0cc6baff2a3eeffbfd58eff30949accf31e9b38f637e8e0534cde1b40c25c8b110c7243c231c13ac318ec55da078c76822a3e9d1df7163befd863283ec5be2ecaaa9c4c929ecd8792ac6879a8e383ee6f8c42e85f129c767f8aafebf40b0fbeb2b5bfa295d7ccef105c79780155f717ccdf18dca96e33b953d7a1e3f60441256505a9eb879cfbfa627db74e9c5118c1f397ee2f8d929462e4e8cf1e8e4e41193bd7af41bbe366afeb82bd6fb0c491ef8e3778eff5fbe2b8c7bfe5fb64ee91383f117c7131c4f723cc5f134c7331ccf723cc7f13cc70b1c2f7a06f56b747f692ca9a5e4f4932158862082761a68a254d448ce68a46c1d90569d426aaf59fff80fc7ebf843a44e45dfcd99ef8fc6be3ec38d37fe4f50763cff438f3c87982762846153834efad6d2b5bb88d1211d6a5ad3a2b61b8851cce8ccf0cbd6e73335db3655686f8215959da56971184bc5632c7bb2bb6fbb910e6671a3a87fd3a5dfa396b3a1f9d358fcad97e75bf9f12ec77b1cefffefc5e0e0f75715cce379dc670f1898a47e2c41365cde01411e02e4e1b0f3a0287ffb18ac02dafcff24f1c05fb1f82541958dd3371ebbd712c25797bb138e877537ccda6f3263553a7e1ef5bf5046381ee578ecff9960fc8ba0f983d2468e98cd9889e98f6808fe8dfe67f657f47c040489870ad12b1b31128f88c7861df144b2aa8c8caeb5cada33533da8b5a6c433e239be472f8f0472acb17f9e9db7f8de1f3f6290f1afd9dd3c112ffec79fab102fbf099eccdd225e11af8937daf9a1a6e3f72d97b1185e3abab765a3631c7b813a1ac6e11d734143706b4417daf45bf7daff2b9fddb7654f7c203e825dbb8814281d44f3d90566b74e34d92ebfff649658509e89ff9b5ffa6ab83f9168e9d2616e5567a6ff0df7572755d9b9eccd757be749df63b919b7f7a8bf872c13286d08de35e21eaa187df8ad3c557939cb5b196ad1fdaf749104e13f8ac4ffc7a6bcf2f687026caa73dcc423dea35ced5f6e7ba3b25724fe8fbfc56efe88f44dd07e753542f8afae86df62fa39f9c3fe3f114330a72dbe34153daf69c1c132d9a72a0f55a448c656d21f56cdb98a06f4cb655fae053156c8fec4d18f890b8cf0bd3e1aa006a53c8499906c65bfa3b24edcf82fd6caafc360ce4de126b11ca4429e5030d150707dceab6e86567070ef6eec77272fd742c11358f03704f36ee4792705676c3bcb1b8ae81d49b927eb7397f0a75a7dc257e2f39e16bc4dbd1b371df211be01197013dc3d7b09531b8f17f73302d27ef0174abc3bf8bb3fb4f512c4143edbaf0d76e4fe09c1b0ebc9dd3396b752f8eefcd003a1e08133fc4684ba6f8222114da31ea75f7a0c3bbf6c69f837241a118df1d4215da409d194684634275a38ff3f9b72465a12ad88d6f8144d661fce6eba53bfff72c1a27ca7df51d9dfb22f4ab4f91b82573b8b25a2651da4ad8401d10e97a6fddfdce3fc779fa378331c5f7b8caf3f0665f8eaef0f121d888e442755ce2ebda862e44a7423ba133d889e442fa2047a26f38b924429b5a485a30025ca10658972dae0c9d3c8d95dc8644dfb42b3a073ada91fad45be26b51c8c2d448dc7461ea93724d181a26cdf44a5cf22683e6332312810eb07255826923b5d25aa79baf44354f7642f1ee5e43a2c7ac3155d1c998f18824d04a0a4d4d24814bdeda443d4d5a21e519f6840e423f26bdcf9890258a128a1d92014bf0469482637519848da91db1ed3ead254fc73215c258a74c888e6e19086231a8ef5bd7ce4f357489f73cf8586137c99530e4972d2c489f2affe38511e7ecc9fd3bd1fe9b0d7df6938a5e18c8673ee6768b8d0606cdbd42a4d376ad737d89de22d35f677294794e070e9da8a585dd2e18a866b553634dce205ba88f400e05edcca81576c8254e26eb8938943c33d4715682b8743b54cb4e18186471a9e6878a6e105ad994b981472b5a1341491a13e00089b8c9e16cd1700ed4e1d439bf5160d9ffae8bdc79ed37527ca3edb99fe2628d1a73780862f7db5511682344cd03049c394bdba216287df84bc517ca8b55d78193e696bb7a3483b82c38c1b529686391ae6552f7040a6c998864555641338e18117985e8ea07408f31a2397481ccac3b644df5668d2b0cc910e0d2b1c49a0eeb04ac31a0d7f6858d7ab48fbf5aff9386cd050c6208ca47f1d7daac9dae8f36c2f06310de586f568d8c79a086ae1cf6fd8781753d1e3e236e0aedc1e79bc138e7e1a065c942c3d11f39792fd947e29d9b7832118a461c8e10b6b1a61df8286f2b015c7cc1dc66818c7417724db481ac1c5756e57744d4cc34e4f64656b9130ec9ad5f049a321b88f46341ae39bacdd316e86b4369ad0684aa3198de67fce44ac0ca305208e96345ad168add336a233b4a8bfa5a24a6f48a30d8db64ab0a83f1770d15277943131884f6c0af8d8ba2fce3bbc1f82b2d788c9b85167406074f0800b3abb23353aaa31f3f181058d28c1d149e54ca30b8dae583546327239d0ca22b5a5d11d7124ab89045aac4b236c26badebdf0b5180d43a4a3a7527b619594c53bd6d5a34e9146091a25f16dea7e048be928059aad3870cb0e3e4affc572261c4719ac8ca3358db234cad1284fa382fed1f5c54e55f848e345179be1cf4f29bd0f465804c732df31f1650dc5ebb53b627054a251d94945d3932a55a79f3cca9f626a9dd4ff6408d668f443a33a8d1a346ae2cc154d2ac416863dac2076466dbb8d8c9e580dc14bd074c04b387627d8881d56b54f7477169f2e564904d713e12911d19601f4f04b3332df0593f8c8312b3eb58fc6a3be7d3b8b3f89137ce6a2223272997d7dbb9f98bf797c1f5f0037fa1583784d9dc725e45ab132c406a0845b48876c24ecd16b1a8cb56f097fb9216c431f7d14360423348aea748b6934c9512f8e093b667cf145661fe6df100b2896bf8986e103bd91a550f161a2093ed997a5d66887dd663c325895e3137f5502b2f274d9a5f118535556035952013d8166b16e0eb5fd80ae8913f38619c717df124bad6c6823e9c9046f1fe4502df343d0488899798d5fa389d918b487a18b9e310b26eef057dcd2e1f194c6330c7e3cb75cc60ba7ccd518f6947a088e971ed61167472d25385ed1784d63b9c056a32f86281b8f68bc93b54ca0205e10773b7c202b1359c639deeb22980482914e6ac13a1c71a865282bbe10b6145931856f0ce014e2136f4da024687c007d99ecf5beaead6a1794c27db84323dea98dede24ee3a31e4a2278221a6e7465f0e164da2a01ba718be9df9462d18ce0f342612710c7271a9f697c010ba16688409f6bbaf4108ca8beb0458e94f377c41d4743f04a72db2172a5078d9f2232dd64efd76bbf1059b2518e138a432c38d63894099514e2513693f141c75f46ac0911e188884b2b563fb2a3b862927b93c40e2327243c5dbc10a7129221798695404b63e918c61135f04c7c71449b4365374627491b09e84783f82da4dce7fc882f0f4a6f251ab234ce39524b8d98e51fd95fc6b7e5e6c9aebe4b2186609ec6051a17352da994692c38aa34ae6117166402ce4499ecb382ccf0c2d3480ad18ad91a50bb9c167d98dab200c9a4167ce600146eb987bfb4066c425f16d4a18f8ff8251459a47a45f3478538b5c92a4c3d5d857dbaedf4be4212db0561499522b9cd723bb1a4f8b4ab69e9ad1cef7539921bfc43e3ba0e5046d7708a0cb0a9836daa25af4a4995964ac9658b1e114bdb63b4d00cc10e8dbb9a5e55f14a8fc67d1a0f68ec93cee92f265474e59238f563620a17598fc42e43127d1cd0e818008a778d1b07b023e336dcf46859842e04073dd9b8691ca471083b3578153466d3987dadb89e257b5888e5c660fff5ecddf109ba146f801ae6b27452269accc1288d63348e0b73dc323bba9b1de364a8c3bcd26464153bea779141d151074d61d7466c958e7386a7129c8c6932a1c91429fc2656b1fa5495194de63459d064899094a70eb9c966cd92b5529645d6255277708090a54ab00a028914612a76091079f2c368b131e98e7cc3f31f0ede095d79d3808b954e4e705bc49d14c96200d6279cfb84c2644593b5e713a51e4d3634d9d26447933d4d0e203839d2e4a4e99926179a5c35020634b9a9dc69f2a0c993262f9a246892d466533449d3244393ec279e2c8df187e927d4ba0e912598537c2279072ea7ecf296a6b15b453a5da049d1ae868a52a34f4e3c6973b4768721fd0626086694e0461f0f121a2cd8dcb11420acd8229e94c07752c67e2521dc2e2145dd246e95ae86828f261595aaa4e63d0d4d6a34f9a1499d260d9a3469d2a2499b2302482848b7a5c37d9a0c74803e9af86912a0499026219a846922c4a334f9fa349126711b4f36b0a69f60324c3c71a604a7ec78e534cdc302634ed3bc4dbfec44d3214d47341d63c0b20c4d273845cb0682ed1be7129dc5639a4e693aa3a93ed5cb549d2e4497594cd32570e3a0ae514021e8d3159ccde143b669d9b5fdbab461221fe590a0cf3f21a5b6c60d1b7eff8e941ce0a76b9a4a67b634ddb941e5ddc873b6f3ef096747b4a7e981a6479a9e686aff3699a6179a5e9df39bddd4b17a479579bb35bda9dc551edffaf3db2ee94b5363144b82a649bc359aa6689ac68610d3770a666f91239ed92e863e9a66b04a4a58c9d4c6da9fc1994e0e9fd876cb1f0ab2d54eb3a88eb73e4fece07846c4db33ec1b53a13053d67939b5e0bdce54ce0c437d0eb971bd4b538158a26999a615d7c9bbebf0cdd3ed77faf00ce7e974194e4d39fe388787a7b59bcbc2df10acd3b4a1c2aabfb30d1b74d3a61adf8ad1df3e6f638ba66d9a761095b2b1c8d1a451c4a9100ba55f7795903e174b0fba7a44dfea5eb105353c9674f16991f0d26d1a8f3dd31eb60b093ad9a66541c49d48e0682d8bc054f6373f9bcf9de5864d07787a99ca7df26b97bc230a38dd1803ceee1d72c3332e5314a469c8c563d83352371deda40cbc0946682afd88a912f15cb2ae46ef358c73fdbb5be213b775678c77d5b321cd4640d9ca616c4373029fe8d38e948e119523fddb596c1a493cf9615b7fea6b85bdee307b1cc571782c63abc55cd62d1ecf48ba4aa88f348e1d6c36a1d9946633d779d3eda827fb4b229e22ef601baec864ed275f349b7b46fdc54109ce167abdd8a760b64476b68258ac753546d4befe18adc578463c55c47f83a89c6d69b6a3d9debe6ec0a930e4d64a3dcae9e111a0758d831d9f76d661177c32f1711e6ca9e00d9b3eeaa61195f5bec18753c1ec607b62d9c53cb73fe28983baede4572844beb0ce8edaf995e5353bd1ecac102f34bbbaa277c58621b802c45fe99bcb579157f1faac3ca50b47d3e872ed3bcd1e347bd2ec859dda1f3728f11e415631d958f18e7a073b1eae4f28157c723094c3764bd750d9a631759f58f2e4016ea473568e8d72669e256896a4594ac7e6e9f9fbd65a2e9e6e4b28fceeb627567e59ec28d22e18339f7ba0a9219855c9d12cef94ec1f8ad10b2a6fa5e0ec79550adf0e459a956856a6598566559ad568f64333b9b0dcd82650b6f5314e42c96c17f8f04af6a59e028ae13d020e8c32dff5990f6faa6f78820ee15b253493e86ed3ac43b3aeeb64e1bb876f63cfa37b4b0b7f54fc335bf048df41fc7233040734f3d1ccafb2708a5f8d03273e270b97fa5d2d9fa7d6c05357d200cd82340b69188655229a466926b7374e73b61fccc8562b3b29de3026f45c39d1e79cad2e8e097dd190c62eaf820f04e7439a8f683ea6f9c47560e0e265e1faa31659a0e753cfa0169ec17abbea46349fb9f12e3e53ca78ceed2b619a2fdc15fd86a0dfd2992f69beb20a2a2c55d66a5959a3e5e8ff3085ddd4dd587fe38cec16831482f31dd8cdf7343f605ecf8f343fd1fc4cf30bcdaf3417cb5d7f373d879763e3113e759916ec3e2b16bc314bd3fc41f327cd5f344f689b499aa790e226ddbe717819ad40105d5a79e2c0ff19e0c7df1b281e99af1c5ce9434609665d5d9f217873622aac5db1b1dc104a6f9adef4cb7fad68d6162874c197a3795e4915685e842ebbd0bc44f3b2fadcb5e8ac45159a57695ea3f90f76707c14837710c02a4fe2f33acd1b346fba400e29c196de86131403140d0ad3b65e7df9b9bb661a9911a19f7ea7bfeffdd2e92b1dc2da45d27b38ef40e9d0bcab73d9305d1a82016daee741695a0f587c1f7be08fd4559cf72de8b711044f183018c900e47a7e2cc373710bd25cc61c76ac473af288ba45691ea3799c164c0ba2c51041ba1869231177275416630b54082e260a34a54a5e1b1c21d2175344a82872a1c5cc8d74f935d2bfb4d8d1f9fe2070a3c55c095a51828b052d96b458a9f296b5ca527529da38a3a45bb5acb474a3b273451b28b28158b73d2d0e2a3298132dce58d7c74d5a5c54ae2aa2dcb4ca9d160f5a3cb596f8bf68915025498b942a92a65531ba919366335a5724fbade46891a7458116453790924a5965e319ef4a47b17043db387da17d5b7fb20b3c8fd3a26a3c952056a523661c82487a53d3d96744b3b0189fc9c7f2367e4ab511642708498982c50fc24ad2455d950696a445534502a7edf48e86e454d7aca536d2a5450fb550571bb1edf455ea2afd4ffb88cd0152d1252aa52ee254e26ea041bad3f094ac1f62d7a59e1b48c06625b5639fa82587696446673c4d302e82b408d1226cec5e82928f78f4e847f1eadea2bf74360a7a30b2e337239739b888d1220e5e16dcb72c195fa78132548e47705c8eb4e2d8de064bf097a87d39b6d9e58496539df211bd0dba8080a95aa474ae28cdcd16599ad91db01160e2e61d3d16ab67a44b9dc54250ab78082e17b45cda1544748b63a417d3524367b972fe2b5aaed573848ac6d9ac3e62971e2c379fb141b6da5a1ce106583ba416dc1e58a11c207090464eb43cc37f79d12bfa6879a5e5cd928272b78abdc443e5fe4129d0617fe2d2165c4f51fab05ccae623730237b561bbfd2b5cec403c464be00582cb84a1a404c16e65058c0d9a95dad76a5980234afd1f673323a02f6d6a20c26181705e26b5f7065f8a96692dcad0320b64cb9c0663c765dfb2830564f75a748082b95fd306f3b42c68943d1dd0a2b67f57fd9d1daba294c5cd4c76a9625683654983b1845045afb6d885ccd82da3a55eaeace132b2343ea5155a562d8745d410aca9fca8d49df24baffd8dfdef447c1ab46caab420b2eac3dea665e7bf2f329d7b5a5744224e284848cafd0ba8b49cf27712b47d80124297ccee8416fcd8b89661edad0f22dbce32a25d1d681a757a4c157c538756ac038498bdb88b2ff381a828435a8d905d8d61912cec0d88b5e837ff246b22519c8dbe9a683ad64626ea36d59b7ca5d58c5673dcf395c6e06a8949ba5aa992555d954f764dab0d1c6c76852ce6b5e85bb5671023e87301221373b5b31792605fedf572461139d04a2a9e6875e6c00fad2eb4124fa170a7d583564f5abd6895d0ae6a6f11dd256d93dca09288b8554a21a4956006453a7043b0a17b9fc1440a71f841698a0c3583cffa90456fb9bbebd976b22028035be56895a75501fd5b15b1b481484931ad40c4b083be52461b2d5201b5ac55e060ec5b4dcb7a3344afd0aa6af71c99bcb8564def598156c2ab4e2be94c93562d5ab569d5a195f456e8f46935a0958f567e5a056815a455885661ed64c441fcc10497ec2a8ac8c000638a2fee59f4cc5bfe0fb221adf9b7f20f45bf1459a7defa9a74a1b95a7c20580241134448b7d82bde3ab2e76f7dfdc9be6b89dddc03ab38e7f550a37284abaf4718f97a4ceb09ada7b49ed17a4eeb05ad97b45ed17a4deb0dadc56147eb3dad0f16e2fa48eb13adcf885974dba522eb0b6ecf1a5fd4a3f54d518ede5894e0fa4eeb07ad9f6ef08cf12365b53b2356f1bc3ab3c7936d91376b8751a2f50becd60908085631e07592d629cfe09d2ef6379775da19335f646149fdce8aa09da46b304beb1cada5ab72e922ada51b655a57685da5758dd63fb4aed3ba41eb26ad5b08c3759bd61d84e1ba4beb1ef70b7ad7f30087d540e7f5baaff8069a1db9d0816266711eb2f639c56ff575002bebda88df531ab0a5eb7769c0fa9852384befa54f215a87691da175144bf83a86ad601da70dd386a08b825de26d646b148185acfeb688f3c78760795784b391216d46b41983dd66429b296d66b499d366419b256d56b459d366439b2d6d76b4d9d346c37073a4cd893667da5c6873a5cd0d22fddfdc69833ffca6cd93362fda2430ae4d12643629da986f604af4c97abcc968183e3500c9937d7e748935e8231bb0ef22a96ef5916d41f44d963639dae49d141083125c9b226d4a2aa2941141a27cecc58f03e22b6b4bad9ba69b8a065adad6425ab191b8a9d2a6469b1fdad469d3a04d93362dda08f18e66e506f468d3a7cd80363eac861b61175082c24578856913a14d943631dac469cbb425da0e693ba2ed98b613889de0792cf16bf33d6a19ed764adb990e3be351e656f1ca76f15b797b8a45ea4a2a10b74bcc82ed8ab66b4b70bba1ed96b63b0f41c71146a3ec1dc15f3e250fdfd26fd0efa2ed81b647da9e687ba6ad5cfd4adb1b6defb47dd056baf4a26d82b649daa6689ba66d86cb9266699ba3ad74af405b69a144db326d2bb4add2b646db1fc557a76d83b64d3790a6ea524b1601f369e7b68d91cbf436ec2c8899da97a0038be81d55161f6a56161f3b7c4cc52e6d7b7ab1beca80b63eec2460e4a0886ec46bf94be597db6f1fbfa601da06691b528261da461499108cd236a604e3b463da11ed86b41bd16e4cbb0908eea6b49bd16e4ebb05ed96b45bd16e4dbb0dedb6b4dbd16e4fbb03e2c02bbba3e5b833dfc004a699a60b97ce94c5d2815b6a3a7796b923db71fe1d8b12b7c154e920e0e58eedceb4bba872a5ddcd0e7877877815c16194371a64f7d6c1642d4aff07fdbb084d3d68f7a4dd8b7609da256997c2f2b74b6316ef324089acf0cad12eff21b82bd0ae483b69a44cbb0aedaab4ab29c11fdad569d7a09d0681a4bb16c6025d9436206aaa04771d95ee3f4a4fd3ffd2eded2c22171bd0ce473bbf2a01da056917f248d8a3183df26d8f384bc853fa2bfbae1ba55d8c7671da33ed89f643da8f683fd6b97c4500ee27b49fd27e46fb39ed17b45fd27e45fb35ed37b4dfd27e47fb3ded0fb43fd2fe0482fb33ed2fb4bfba21f89ca2fafea6e9ddc5e0fe6153891484954f452cbaa2ed5f6a5c3ae30b6ea8e273f6252cb2758805a9f82474c9182000f749daa7d498b63125b2cf689aa57d0efa3eef2c394df33635466f15ab9b5a2205e75ca47d89f665da57685fa57d8df642a14efb06ed9bb46fd1be4dfb0eedbbb4efd1beafce03da0b053fed03b40fd23e841804c130ed23b48fd23e46fb388660e4c09fd489d949b23aecae4eb4ab52eb428494b11b2e22629152518ca71419877715e3863f0c1ad2614487311d267498d2618652793c02b28ca6059b1ee6aae45d510696c342d3b9bae52c3eeb93d56cc1d1cfa95b9e0e4b3aace8b0a6c3860e5b3aece8b0a7c3810e473a9ce870a6830cfe4a871b1dee7478d0e14987171d127448d2214587341de4d2d2f91cb61199c2076953ba57a4430973f650567c53c751940a1daa2606bbd8282d2cd5adf2df14d302403fb08d08355c66a2d79bc128040d1443e72d1668e1cb62f5c51f9e5947d6eb2fba3c93f479205ba780f8a1832068d0a14987161dda74e8d0a14b07e9559f0e03b81d7c74f0d321806de410a443880e613a44e810054199c287181de27464fc211bc2a5a73151d198f8c89b60978e43c82f2832198d5d04fa0846892fa31823b263a4b6ca838e13203b4e41f068388eb0d51cdd808f0b95e557f6a3abfd5d2a73df0bf1b8b2456217fd635f23a68e1b3a6eb14b1c7774dcd3f140c7231d4f743cd3f142c72b1d6f74bcc30dced2d5271d4591a125e998a2a3b499a163968e393ae6e958a06311179227b163095310832ddbe090a11df557e5e9587552f3e8bfb23527554ffa2b6b3c7fe858a76303226bedb1a9698b8e6d3a76e8d855e97d2b3d8fc56bec7ecb2f9f5f0e7dc4d47180fde1e8c34671946c808e413a86e818a663848e513ac6d4214e27c65f1f9a87e2d3904e233a8db10b9f26084021789ad26946a7391a3f2dacc8104e4b0cf6b4a293386f94a0703d6d6d7ada7de497054bdbd0d9bd3ebb2f91f03cede974a0d3914e273a9d91cad1fa74a1d315f7f37483bc957756a2cf6b39ddbf9c7f89d7687c249a4e0fe522ca8b1b493a25e824698a4ee293a153964ec2254fa7029d8a742ad1a9acf82a74aad2a98673cc7b0f39fdd0a94ea7069d9a9fcbbdfb260bfda945a7369dcc77583f98de8a50effd4663ed5be7d6f5d4f2b6d0578203c5e7b3044f7e3a495f832aa61f41ed53884e616709bbd4f8843c766f91376b443d259a00314227197f8c4e713a33fe96f53ca4f388ce633a4f54a6749ed1794ee7857d1c3e2fe9bca2f3da1e034d009e3774ded27947e73d1a3f1f6c57cf47cd9eb0b160686743b00b399f955a8fce174d357bbe020a2c5b2dfdd691bd7a8aae28953511f7e7087ce79b423c6a5327c4e00741d8017572be6b2f4d3644e7874b1d383804bf11073fa5c262a54fb8ab079d9f747ed13941e7249d53744e3bc9d0394be71cd63ef33ee69ca77381ce4504e07b0b362be0b944e7329d2b7a5d7375bd6de72ad6fa738dce12a7e63b0b323c996516dce5a360eaedadc56b07affd572daf1b50d6e9dcb004cf4d103cb7b0129fdbb8bc4041ea114b508b8c82b4037f28dd8ff12fb89b462402a46f7d85a81ccf033a4b07fc4a2da0125491bb2214228a2f4ae7189de37461fd6beba1c57719d1654c97095da674997dae62bb1140c0c9a68c1834042f73ba2c6c2a4b3e7491a553e64e7967dffee2b3a2cbda65d75a7d43972d5d7674d93b39d0e54897135dce2a174daf74b9692ad9bbb31ba3d12faa3f9cfe54b9bbeac6727159b1bff082ef92b0c17849d2254597345d3274c9d22547174153a04b11abdba5047c97325d2a74a9d2a546971fbad4e9d270049b7491b1b4e9d2713d3172c283194035cce84c0c8ad6d5b012a5f725d6d8b7bad7fe71eb7e3c611fd04597bf8b9f2e01a4b20e5e34948c5c4274093b3d02dd88dcde8fdeb516ab743f55feb4d8ac1089d1254e57c6af1a5c8778a9771dd1754cd7095da7749dd1754ed7055d97745dc1f9baa6eb86ae5bbaeee8baa7eb81ae47ba9e40f07aa6eb85ae57ba4a23f7afab5f1f986432b1ae4f1113835d98ae2f80782be0a2684cf6576a04c85a1f94b6a22809ba2695a09fae29cce56b1ae064293480ae19d5431f9a563981e93b7bcd5ae5232118c54d5a30cadb41a6d83547d73c5d0bf63b6ad7225d4b742dd3b542d72a5d6b74fda1ab0cb041d7265d5b746dd3b5435781227deed37540571f5dfd4a3040576930e4e983bbd972dabd86814f16a8b3fe7299c5f1c60789204536ea2c510fa008e05a4bd703b7eb9c6388be6b1cf86eacf118b404a543460c2063315cde8a14dde8db39e4e115fad4b5b72484f79bb721dd4696dd6d4cb70917b658e66e5234a3db9c6e0bba2de9b6a2db9a6e1bba69e8dd44f6743bd0ed48b713ddce74bbd0ed4a3769e4eeeebaeb1e36c30bf6d8dbc386c8cdbce537bc64ea19c5a609a7fcd2df3e09a7bcab3bbb5c40ee0f08c6e9f6a4db0b31283db8253e50de7dfa65119f5f6e26fb367a4b653cb024e926b74a3f87bc65e826961c00ddf22025cbdcad40b722dd4a742bd3ad42b72ac049f4597635bafd202a6f75ba35e8264a0bf3f7d606bb777f8c2257c48ae7a35b47e3c3cce25b57a5e7a48fad4014a4dea2b7deb75938f43d96b732a09b5cc3ef24809de416a45bc8a561a788449c3de8311a87b0961a25ec8a82ce227a946e1265f6f72ae8cef84597fb5001ed747aaadc47741fd37d42f729dd67749f831da66d1b7cef0b7c4a775fd27d45f735dd3774dfd27de7e95bc8d387200678dfd3fd40f7a38812bc9f54ce5f82105331faefd2f0b7f1f4ed7641e8ddaf2a32b03bdd1f747fe21e4a7a7f7d89b9b7d013cec7b83dbf9c6f5ea3b127e99ea2bb86de3d43f7ac56344de5e89ed7d56d6be55ea07b91ee25ba9775feb63542a5db15ba0bc41add7fe85ea77b83ee4d441f1a79ba8ebdec15916de900afefd1198252a1e3062f77acf74da7fb87ded6b4679dadbdeda9d54784839db94cdf12bc0fe8ee53c5a47eba07beb9bc8bde887dcef20667d220dddd5fccdcc3748ffce11305a67bcc499c1e8c1f1c7a0c755e9f306de5f423a1f718d1634c8f093da6f49829269fa733ef2baaf131d7215fede81e0b43b0e744893c9696082c6d7aac9c6e4ad7d6d9dadb9eba1a8c8f0d82eeb1a5c7ce129465f1b1577c010771e0a1397069c043d0cbdaabf8e871a0c7911ef8dfc6e971a6c7851ed74fadc7cdb52f9ed20db9b40cfba569821e497c9ef948d123edd865e89145e83d72f4c8d3a3a0ed04dce5061e458db2a063ec0b8c0ea921282c80a3f7951ae5cb5efcb0b6455dabbcb398cb317a94f4feec14e20d93da127422e3c450071fa08ff2b7716075afc5daed8f4ed3a34a8fda5723d6e1e753511e721e757a08a0263e0e7eb4e82131d1a187f45c46d1a787780a6b3f3d025f153fec3cf71b3d0c6a40e8d01e21490dc1b04a44d3283d622a713c4b58bbb1a883ec12f009d3932162872566e549c8ca42fb1cd273a4e918fef2c4f29ca84ce939a3a764179a5d6aba72a5334de75697fde763149f353d3716df738b0f73ad7da9b272cdaedc55b44d34b2a3a774e9404fd14ff43cd3f342cf2b3da59d3b3d1fae3313d7c8ca73d195c7687c9ef47ce9d012f44c9a597c41583d539880924259a9f1622d98986f7d8554b2c6d3b8991664828b3cd3f6fe3c33f4cc623ac33947cf3c3d0bb88dcf223d4bf42cd3b342cf2a8c28ca5b050e354d8da5a6a9911f87af4ecf86fab82aa696719389f62efa2d354f370acea76943efe3d6b4edd89e34ad8296f758d69f2d7ab6cd00df04ff469e9d8f62e44f878f4f5741cb0def69da52e92bf481ebb18f9e7eaeeff0c35975098a003d836a14e2e16f5e5e7c32aa88c317fdf6316e318f7fed8fea46627fa5884ffc8f160a7fd59ab9a3392598a51763742f73a27e11bd8618fc6b44afb185823fc5eac062ec6f529fa2099c8dbf0dd8158a84dd6baaadcfe835a7d7825e4b7aadb48b317aadf1db30f5367e97a3dee57a0f7fe8855410fbe9b5a1d7965e3bf5dca3c7af83ea477ae9d6f13ad3ebf219a46cf1e2603cc54db20876a3c4ac110e87dfe05e57ebf6ff15f71dcbadecca96f3fe8cce398392488a8c1ed17b5f749ad1c96c39ca511223debf77ae95401125699f7bde7de7ee1791814864c1e5c24202455385babe6468ff3a494dd7e6618fbb91c3bb73f0338a115c7ba18ef3c7c221eb705c38e09c3d288c74c55407f4c9a60f94227a3a94b0c31ccaf4a42287aa7f3a309f3388c7bc35f1b762a039f35076e5a0935c77f0e9c239b8f799ca21004505970ca03a9c8f11445af7e05231b0ac41b3207df4e59ba86ed9187d3779ac6b4634d292439b7e193fecfbe243e79b7493d91ed33eedfd9fca0f5866c80223398cbd289a1339e81c288873392c52e31d9fe8f6e41e788cff1bbeba97f2e121e04d3c8e9e80cae1420e693928314fe56147f8cee490a1cc93e9dcebd9201bda432597bc94f97d95ccb732e772504c0b70ad98c25fce8bf6fbc1e24a8a462581627a7143fb96faa5b76c8e255d79336ea5780586e2aab1af28c56b2c67ad5bbc91e22f4c6ff1968fccca25de6c183f710c8f7d2a00dc28e5a0e4f3fda57827c57b293e48911c29eea4f824c56728c8be3044d47d76078be3e02fa77c91d81e178e1bf92228b00b1a7fc53a2bbe3907e96380a0c3ab042c902558f07fe5d3b58312654ca782f492b2a751517b077c40d09ae2e22a7e4af180658b87b7d5f102a2a8f9f5f1c9f65423a42dff3c321233eaa4a2ae1475c4da57598a1529561919f6f0dc5030457b71ca0baf961d3ae87de786a1764d1d46b4bb741740f6e94aa2851dabe8a51a43594d8a758f60dd56f13550805c438a0d6771b85cc212eb28b00ef4cb4036ac68081a884d444670102eb987cc03a0f0a5c682bfbf8750860fad1de71350aa4c9644b325c5b6143b52ec3a449cf41c7c862624d47f9244f5b8f0ce23b8f7c8aabd2fc5011dbc8ec53838a4182223a7ab628086305901671979cbc0175364c79c99c883d894e2845ee998a6787cb23d777bd2fee989c81dfc67fba7c711fa2797bdf2196fbbd4a407403505943ad33329cea5b848e2d80b14958b6fd8f502254de5f53728fbd6b0844fe8a079772a457baa7c3123c5ac1473523cf762d99c573294736fb1029940ce7db1bc140b524ae111c19a425f4a6925a5b594f01455f75ee3df3d531a2fc9b8c66353878bbf05a5e2883fbe4ff15091d2564a9752ba92d2b5946ed8a3c94d32bb0eb23741819b6f57d7df6afd92d26de0e09d0a112cdd8377962a8954293d1c8db1a22c8bb3ca3be88f4119b3ecc8ed53d0b0f404a5f4cc55acddbf10413ef678faf75ee1a4404f7fcf4adb853432d81a5799f6144d29bd4ae94d4a7b29bdb3ebd7203536bdba214109f4d207ae963ebf9561455cdd48e920a5225c2b95b8d4ec3ce850bb778aa626a5f2d1ee2c41b1d01e5b4a15d0bb54f57dbc734732046b78668c21385bfe375e59305ba5666b3c02e9af58799e9a6df934d6bde3e644b95f9752434a4d8fc547a098bc06c6f09207aed4f259a6ca86529be4e848a94bc57e37535280fb1000a1fa8059e3631f598751ef98da25a483a3055943b044194969cc9dbd0629456e230682ffd6bbb5675af1dd3d63f4b7ac24946065d6b829a5899494983329cd3d4035a4a505415904187d04054234635d9bba203f46745059f2142338a0a4a99f784c77df904dd3789a000ee50d7455ce383f25df47464a598f600e8f8fb6e7d0fe5b6f2049c4ca790a6f04f80b28e74b0f255939d5f19f4b292fa582945347b0f0e849a606a5a62ab131861b7a8d208c3c3f1c4b886079e965e552dd106223f4b5b3980e590612673752de4af952ca57946b2933fa96556ea57ce7dfa5f8cfbd8a72de48cd9b787acf5fc7ca90950a65f95eca0f527e94f28e637be2f0763eb5d1defa4bf1f87fd153f3eb39f6d138b8fb41ca2f4c5fbdf2f2c3d5af85df48ba9294f7527ee77465c0fcb2cee1a7940fee3d76ba75fe53081ea1cca7e6053c19fdaf62e59b7ba5075f8225e5a2944b7c8a672910f966092ec1c77727ea1d15e3600c5319810c40ec5c1616c3b1c2b4eab355a4286c15cd5e43e02bd7a5dc907253ca2d29b7a5dc91729708f63c828fff3c82b12c6ef1e4bdf1f3cf382eeefd4b0f0a4a4c29f709cd80e927c7a996a1b78c682cf9b4441fc71ec40653db8b1532489930bd0569c5194ba65799bef8abafde58a65175a5db54ca336d57ca73296b40b990729add9f48f9d4dd0e2ffef66b6ffe4750d670e7f305caf0e52fe53322a59065885a8c94cdf788f64f5eea3bdd71704f1c15c1ac2a8660e507d13de10740ff4214d01c5bdf13be393888bd7fc2119cbb67e5aff9bcb73f80602cb3f7444cf44fede72a3668fadf64f4d3a53c1619fc8a889df968ff8e2d17b00354525e04163e4d96b2f416d353fe924fb17b68f59554d652d948654bb994ca156b5d4be5462abff8f9151f647ef1fe4711bcf808107c73afda1abf4ae5562a7752b997ca03d32f7213a414bdb92a6fbd775befa9fd764bd75a65e70430d740c0ca13d7e045f2aaeacf3456500c4616abbc602d5774586f9899ca1e4ae51dc52a1f52f994ca816ffef9df7835f94570838827d5bbd74648a5289512c75626bff252a9806bb0a8542915dad5d3ba541a52694aa5e5d9676eb6bf216820c678d9a5d8f2458e103f49a523952e1bed49a5cf74400487184765747c3579faf737c5ff09495f1f11b45793db9b002b63a213717811a54ab02ac0f46834652295a954665299931ce6e042532298c04561bef08a4a3ab07f31a60363874a97adf77c7a426487ecfef4f8a9aadea5fd5104cb89556c2f2fba5020749d653c469300af092546d0e0cb4a25478fcee9dd9bf7f188a0a296f7005d109d341595022f5d049762e5c2cb13d26a0aef68d276ab4ba9aea4bac64e5ddd48752bd54b779419ff37dfe3f70f20187cf218bf012a7d035caa571ea0c8031761b4474069c7f8afe163f546aabf8e08563592be11c1ea9d54efa5fa407994eaceebb131ceee58e0917a2c77d861aadac1b3545fa4facaf40d1b4b752fd577a97e48f5d371f01fbc21f99b327e0910f4af431d35382a95834f8b5eccae4a8962c6b2542b525542d4e89da675a6f6bf3a47342591b6dba45e8062ba1a5db6e52eb9f25ea932c456db52ed48b52bd51ed35ba9f6a53a90ea907338729f0c9e74ff3482e17930e6e0a846728d39b6a438d27dd123acd4ea84aec5a23eae8c832d87570c53984de8fde4d5a6b3e832075e42f86e1d8e283995ea4caa73a92edc61f0a4f01f87ec7708ea3d5ffce688ea057119fb09de7a34d3b49c303b66f684f6533a6808ea823ba39251670dc12c2f9bc47ad3291a3e9d25f7cdd2f7389e4b354f040b524bb18302cad704e3a82d8fc7e9d3fd1f852f7cb9bbbdfc253e4e1b7cb59503cb296a5913c4b1175af4b806af6f03023a1089606d03017659afe4000af42fc866b95abdee0a64b9490da4b695daa5d4ae2897e020863595da35c77dfebf704392be4a2018bffdae7623b55f446ae871f429d6cdd08d3cbe5abbc5f1b67607bf143b7510a9eab617d7ee03794866bfc8e3ef4beeb087d49ea4f64c51e5456aaf9437f7e6481ca7ffdee7fbff949c3512b774f1db93873aaf7b8eeddd0ff2d5673f023db67f721b7909bcb3f4e039887dfac6298e9281052b34b0ffac14a556925a596a15a955393f4ad21a852f7e3637cefe6c1c0c8fd3f1bb14f53c38594aadc1b1358f82e562969a17f1ca2dce6a585b2def60857219aee2bc47adedc5d0e948adeb70acf5a4d6a7b14f7b1b96238203366dadeb721efac18d8ec7e94cf98f22b8a8268e327835280e83f855496decd1d1114654349d484d719c791ce3742eb585474d1dbca092564c0dc13eb07044eb13a9be43ca74a4ed84251467392182a7523ba364a496f543c9b9a38cded5fdbb2f19ff3725132510341a6614268df279426632a31428317c3377a99ec27b5cc189aa73b0be2488aadb338fea2b40505f3b442cabb8848ae9f1d550ea1b2a0bf451dfb2832db2f54b767f25f56bc7c1f1bff505d3ff44c6fb0482f6d196de90d46f1c6a18de15955f2e8512636af42c48fd96a43b2370eae01de55ea134041fa4fee8e581b263fa94bca4c6675fe6c55b764eb16da4fe2af537a9ef59e65dea1f52ff94fac11d6586933f8d60f813275bc2fc9d98d48b522f49bdcc119638c8925762fdc32b2a15ba56a577358a2a75f5d4106c509a4c956e2d6f6990622d1a1bdebef696b89865db52ef48bd0b517ad77b52ef738607521f3a04f516f50f2398f5ab789c27824f380cd647b8c7c0c0c64c7590969d487d4a89824b0364818332744e5990865d2e357b3f8942a051cc2162fa05d386575aee6a582c4e1dca694487ba1638a5681f19a967a59e93fab9e342eecf7e3238095fac9d8f3928f53c7189111c7b651064c749101b84cc5c234b00a53abbf00882419a16a491720ad20b7fe9c21540746b1d0b00d02608d810692cc1414cce421a2bb6de91c65a1a1bfb6e8c08deff51f8720f89c3a0fb74fa4d1a5b695c626a918e8f3836ae12f035aebcfd120836aea571e310748afa383704db5e2e08cd173db45c0480b63dc42d69fc72f46edc22d5d6ad8fc69d34fcd7636bbe3aec4f2278564822e86fe91a0f0045018278c5006d3c02b5d862d2d8c1d9c6139c6a3c33bd037c0ddd0cec97478dd740de98ee03cbfe9b25947754d1ada3f1c158bb777ae393729046919f88f08624f7677792dc34719cd6537d6ea6c7696994a451fe492a5ea926ed357a7aa07cfab44e37ede9798da6345a1421d84d4731589a4eccee0aa874fcd52e49da71ac6ef420ca474c545f1a3a9fc3e34df11ffe86e47c1b20f8c2d748330e3646d2185322cfb2e898b54b47026a76c2303595c68ce99c6b8b0ed66d2701161d9f76826c3300cb10ec7c5316940be295a65c3055344f693c3b7e43b2b8fdb30896be7e43c2fb626964a491252e398a616420e67829e7957369e4796ba0550a24842138a77e122348e09a29af8887f28b90a771b1d8d85c4a7325cdb543d0e953caa934377c15b8fd3afacf7e407d1ebc27dec387e37473ebc132969d7bc822afe488e90420362fa579451faf3d7096f6cdc724824e9690d812e2d5bce1551a5d995fb4dc92718ad71dd37b3f5d53693ef81f1cd5ff287c2af9e02787b68dd8b774cd4769ee0050f3094af3d9e3154a0e5751e6459aaf08538a60f38d2905aedd7b049b7b2fefd2fc08f4383545e53369d4c207a64506d70f17689b256996a559a15275df31457ff6732d20e8bf6b8f6a0ebef9123724cd9a3415c706a5e9f5386d0657557491b5a5a90876a5d993669f8acac07c340487e491a53754be4b2ab874e32d9a8ea43926ef22a4d84cfad09b13d050d3e6143f1b5cf30dcd7f1a41ff0b623d4e7b0e4a7326cd3965417e190d357b11e8264f2c9366f852074fa4794a029e51710ec6086628374ce36ce61b6ab19ef1fa08ba0b7f6acc12c1378a76a36be1dc71303ffba3f0859fefe7e7c76f489a79691688ce9c082e3c94f3a4bc78945fe9d7bd07cea03c2139b0a889602b252d7162d0b44849b53b1c89a95d8dd31639d85a21d5fd175532305a1c6cadd1416b8397d517362e1416b6a9c2257eaaff07109c7df9c916bfa52b5c496b0b685a9704a8e095b9cb3a89b37320d8ba22823176268e25c64143445bbff6180d3d52cba3d114e8574ccd7ee3b33a0dbfa4750b32b6eea445105b0ff8d928ffdc0522c42ee90d7fe13d55f84f7e5658f83c76376d1f39d87ac4c254e05a3b8881d57a723a002d386421cfd27ac13ea9f0b5b4ae72622fad77697d383eb6ec6929ad83b48a4c4bd22a333529fa4bb1e5e053bb540e4a32d54dc6d9756f6948ab922a0cf147a469979fcdd9ef4713af5b4e1546ff112895e9e10f8eecde5c0f83adaab46ad2aafbb441a50645370d976d04659ad81b5b2d4a5b5a1d9f76b8990c0cc16b6975a5d5a362692812e83d52b51764bf97374951fa58c5a316ffd35507827a36b4bfc6e2bf5ec1aff20bb354619e2a2cfe390e5e7cfda9026fcfa53590d690a21c1c496b4ce52930aa443eab5719efc0bea9a7a129ef94598ce03c4064ee9585d735cca57f02ceca2c82eab17241e84ff0d3e5d9066f87c56e5873bf6446547a8a6ff59350e65285f35421ff3f46b09040d0fe50aa7b71ebd4437316c0340ef458c930cd12a91c513339f7087e686a08ce3d1079ea2a05a27007a59df2385ab110e29eb7f45c450d190ed03c8c6d91f652da2bfc8e5e6f09f458e3fe9edd70f0c55f3fc2c94262758f9f2575fd6f7faf22a99b2482cfee8399f65ada1b696f0910916a5f1e71849ef1f8662829695f49fb1a206a6a02043f607708b66f0856de39ef20ebc2ae7afb97b46fa57d8754cba070de15434903ba0723e09b7be91d416fdf4bfb41da8fc06ed2420a283d88f6dd055637175ae1eacb5f66f93ae31749fd377ff435f27f9188183a6caaa697d2de6161b69fa4fd2ced17a2f6ea85f069aaba4373cced51b153e8f7d27e0701a17c0044206b3b49fb20ed22539592cf969896a55d917655da351cc1dbf5a080956f04d9a6379a5e0ab25aa025edb6b43bd2ee12af867b50804bb9c68d8ff81ce5cdfd733b64e5bc25a9bffd2b76fb13698ca0fbe9aa62a12ba38f7daf3d90f650da23ca90a2a8458131c296d256b8a7d29e497bce7441e522de4f3c0741b1b4b44f483192a87dcaf4068712d055fb3e9376069484e517e5c631b19d95b61638770c85dd244ffefaacbb54904e4a3a229da5f1021ec6f1d1003528f526cc2819d592ac1c4a6af42f6265e230e87fbf9f1a4b67251d3d66cddcf8355e7736d2d94ae712940413e394a257956e9d2b504f5353100a9d1882b7d2b946a32a1dbadaf9c576b92a3b77d2b9f7e153db7a209a19e93c4a67279d27e93c6bc9d45c71d1feb4c09b74f6c44edb7947cbaa4379f7536580d281ce87743ea573f00bdcdfff2ba68e8faffe310205499d7d81129f1dfcee8fb6218258c22ff6b341bc10b953944e897094a553e162547fab5cda86daa5746a5eafc3e54e83e59bd2697115ef515131e9d87d71a78d9d05d09ca3b94e076e2b3a70f20c780178f5b38b2c8a294c3de9f4a53390ce503a23e1fbaf45d6b8ebc09bda157d9ded483a137c016064343421efc011c8debac9eb4ca5a393a7b3b5c0eac3d98d3bb5ffe78287324e93ac5cdce335c772f71b04dfdc2a56466b1c94fbd444e97f41f8d204e5848bec936beb164b0a043a257c6724a961dd62e10cd004820a6b5653e3e099e3a4c2a4e214ada6d89d13fe0766ef403d00af7014a49b123c4bedd31e588191e9fac21f97cbb4f03dd885ad289edda574579c8f3c69cbe9c10ce549490604b377d77a2784b5961af3abb55c6251ebc1d881483e8e1a48434a62002dddbef504700c82f61d937150411cee806077235d1ddba574af084d83d09894b110957abae1a860a6f7c4212e70e529a92096896057877e43f98560d9bd95ee1d957be93e501e71a9bb93ee93749f5152e6220b910b9134dec20ede9d889c22424991d933282705914c6aa6237e91eeab74dfa4bb97eefb0fa25b16940fb079b994e54a966b7e2e9f8ba35870ee7995e5063fe6d443929e3471a2fce9cf897af3637fa7f3b774dcebdf65b995e5a52caf528baa743fbd8fa13cd25983e590bc74cbb428dd927475cc65cfc16e45bada5c4dba75475170ed0190771ba06bb729dd16805fdec9f21e1fa0abe80800dc016f0f57bcf21ba478a7fd035e23be7ce4abb08b78b2871eaa75a12d75586de976a4db956e8f91f43a101d77df5169a9a2ae7e00206c323c2dda0f00dd4e9d479bc348969fbcf57ec49e33f327ca45caadf418c1f9d2ddd52d0ffc68a3a308ca5281184877e8c8d51d49778c147ae42cce3ef265262460394e3d821ad770ec3e77a1b03b059a089639e92a19e7d097cdd4a92e93b52c5b54d27a52c30d2f603a78044bea123055cf9589cbb62abac0154d597652b9a92cf5285344ddee42ba17d255e544baa75cc22789f5b81cc9722c4bc56822cb29ef6a6a8e7dc1f66210cb52276c2ecb05622250cb1e9f61130653d50b5aec2235d3e949a7f28aa3f67ee61666d730ca92340616a104820d8f69c36367c8e68238681b932a8a1d22eb39e1d36c5e96b954fa5a967ab355c0ca5daaa58083ee2a857f8629b95243bc6d1d31b102bb7c22ab5b8bd270c668a897564be0be5ac96a8d5fb2ced6980c6dad5b905e4a7a22bde5f79588c8b0ba0688ab1b59fd92d52d976d8e2bb4c567a950992f657527ab7b22d8e2e3025e79d51f658c83f8c6a689afad175af8019f0fa9d25b912ee70c886517f214afdefa0828b21b583455cb91b3c641d42f53b2d2db3af6f52ea57725bd6b448d957aae07da94ae5f59bd83471a4d9468f999acb09930de1df0b318d210e9ea93a81d10253578e76778c8821e8957455995f06bea450ec17455069a510170eb0ebeaafc10ce14c755159171752bab9aaceab26ac8aac93f5dbfbaa58a32da78cb73337b7c94527c3042105ceb7ac7c2d7188a8fd7dec1c1de0de3d539f7d62cb6e6de2f8757878c037014f0313aae688a21f8c80079cbdd63870da4772b3d9da591acc638739d97086204b7975d70673571dbc8ea13d11078293453e0a538ce36d8883dacb46fb83b6b9919a224c8f5097a2a23266d59cdf1a4195def0a9396590a4e45766bbc5ab84f67f1973885cf3a553991d5a9ee666e3fb1ff3cc6c717807b9ee0203ea66ea00bed2bdf81287c3df5f4417a8f1e813b486f27bd27cab3db3d54e9bd509e9ce28c103b0f2a4b736e156312cad27be572cb934d7ad42b60c1ae53f8e18bae3eacbf654a3984f0b7210d3fb01c3414123e2c34854ff765adb57ac06eb35e19acc4f113ff2a01b295546126eb3596aa46030da900bd88661137976cff943171e33e61d6e34bfa06a15637b4958e64834f1ff450adeb43a1518ad9bac6d368f28e83ee30f4ca3366d3f3ee4d7a7be929881f2ec041ce8305fb497b0316646931256662efa059439087a05e517a25e99581664f5771557a35b22f0f96ad57b27ed058a6a0802fe0dd03be90d585ac7eae1f19044b8060c545adb02e57a94c642813be0cb6148d988a6f1ec011c44f7c6a02a528eb1dd0d7c53e5c30b6d2ae502aeecb0734122e6d6c17efb27ee2a124873ba2e51d23431a27d3a80dd0ad589eff2945d0d470d1915e5d7a0a4a537a2de9b5a5d7e19a5574ba1e2c438ac66ec3c53e67fc740a101c5bd6102c3bec7a3dd629db59517a7de90da43794de48979beefd98c0f501ccd28d725d241c6ac1b1c64359a4e0d118d84cd63bfadf01d71411c5118cab10d613645705c2a47353c20ea32724dc5de0f160a06426525ac9ba82d0b12c80e628594ce0883697c46e8d410a1b39e55783781652fd787e1ceb1a54b7956213e94d099fc9cc43d3f6caa7e3a06dcaa1314610a9b6666f80eecd8f04444a5d99d8350eab6521bd0b4299c62eac902970c632dd67d74587973de741d98ad57a4abb9e16d358da1a8074512b7c7600ca46eee64f172f085be4870543e8eb273c0945c3fcbc657f2ac4a94da3b0cc1985d3dc76e6094a62bb108454bda4d3acd389906243ade868f5788f70d4d3c57b2abd33ef5ae411548cb224639692f3686edcf1f0889d1acf494fdb6ada9e83bdbcf40ad24f495fa4bf94fe4afa6be96f68d94aff52fa57de722dfd1be9ff92fead0e8e4f4ce832727dcafa040b5371d178a4767549f5f529d9710150c218b73ec58e8c69d8f368d982ae085eccf170d6f599ac33d8a9815753ecdff48b3b3c370167c93902b14e0cf6df60ef2e6c30a4c208a8612d5fc83a2beb9caccf659d97fe9df4efa5ff20fd47faab961d9d527992feb39717e9bf4aff8dfade177861f63559e685629fb0f63f38276370b0ff29fd039503d957f274d5868ab497a8ab52917e55fa355052ef3a74922d6669acd4b0986288e40e0e20345429ac0a8132453155bb1244effce02d3626eec87bdcffe1e05d64e4ad005c443a3dc1dd83777a498301b07ec6b94f11dcfc92cd6df08dd25c3677b2b997cd836c1e65b303829b27d9a8db75e937a4df947e4bfa6de977a4df957e4ffa7de90fbcfb6a1f9292c6cab68b7d30762871dccc79dd3eddea8f7cd13142a1a6daa2e2d58f1c76b69c5d5855024eb8e18c81667f2afd99f4e72e1a124ab24f4f3c153b5afbc3107f810904ab44f08eb7074592059b3b4201689572106fdac077d3c17ea5149eb491a26e0953c568a8f0c9a64be9696a9fd3c8a62f9b816c86b219c9662c9b48fa0be95f483f2dfd13e99f4aff4cfa194a56fa391abb0865d842370ec7feb9872c47bdeded430fee2fcbda2a2e838620d70c4d0017eaa600d61200b58902b81f34ced8ca087a5f174501500ef88b290d43db0d4ed1ba8160fbc6b984ab782ddbad6c2f65cbbb7a5daadb6bd5f155fff60670e3a05ee26931037dfb0b85972758c2ba4debae7dc2d08685fca48704deff6488da2d266c997c8e941ee0b7b7b2bd9381c86089710e56325813c48c0c36c4ee047c54e3604b4a0e88c6d89f60728e95834b27d0af80a9daa91807279422b1187b28679c849903b1cfe50ca54899b802b08c8ee507d732b891c12f19dccae00e1b429e9f29d8dea2473cdb2e9669d95611259556bab411fbab38d3e9e113db6ee788826eb5db1aaae3539f4fece0b847c4a767d837b67585985837f4d482cf75b67a6658f23e648f3f2e0dee65f020834719ecb836370008386e09591f02f8d6806ff0e42d2bac3fc8d8e340e06c8183929a7d36c5107cf29b86b6fbc2f41596c11b654f79478a92dc61061fb804e593650e3228e2aaa5a60c4a32d0e156c04add58f468326ae154884079c25d258325ac0b763be311fd9e7bc53d50c36dc90cdf16295edca671dbb39d63bb50d2e936ad01113351c4d15a83c076a16dbaef9d75c2b617b87b1954655093419dd2a0ec39b026bcd0cd73d092415b063af15dea5daf50b480db6037f4b129831e9b7af70adab455cc2d7ca0d80f48f521d6e960248331b9a99688743b97c144065319cc90829e23563402e63c61cfa1686baa6bc5c15c060b19a83f694019d5e1dbd24ee01bdeed885caec1ca15ff3b8b4da3843b3f6ceb9ffc58e1913bcc238ee2383c76b0d5622d738bc73d12a304cb68e3d8c10627323895c199a30f28632b31cb941b05c63622dd0632c82185a8f19c963c2526a32dbb1cfd9d120a4b0b86a04e42c1f7346136f24b7b22c31431258e7a5517138a655d6154ccb14011a8b911770871d6210ef44b325cca7025c3b50c3732dcba8f1b702accf858c9a31c0f8f009a310e767cdb39845de1d3858ff36044c1276cbcd5ad8095c385c18753c1f0926c88647885510daf314ec097259431a6a48ed26578e3a01cfe725b28aa17e1bbc537cb825843c73320a371d0de6c0068a6687478cb9e4ca6c4513dbfb3a22469dfedeb21e2c37b193e38948d7de06c1c3e083a5a8be156c71e45cf7dc327ecd4270583129f236814d38d159f513fc08e9beb675c55f8f460a887ed883154b7692cdd4f843cbd815b71cdeab1717590e1b30c5f64f82ac33744b4e11e9c529fd1e9ad07d1e3680adce913eb210aab2f806c08891174b01a3d576c9369bf68086ad17736113957871ff0d6ba843ee108ae5866e04a92c3def24910076e107119b45670d8411ffb4b7dc03d5487759e7592ca8072c2db38a5926d17f8f2aaa8b18f00e5f139020e8cbade79cf874faaf7b883cee0572532acc8b02ac31a7e2189019c03415d9bc33ab608e823c47e836fd8f8a6dcba5d115e9c7b5f92a23e42d1ab4dc0376cc9b0adba21d89561c76d2008b4451f71df192c15dc2e2cc31e8d1f10ec15dc5850a5e5a2f2b00f459b721b91c2aa1d0f21a8f5ea63f3c6ed51daa35651fb7024431dbd4ed2047b0e3ef5a96027c5278c459e2b37bccfb967702cf283860a76798a0ca7826df7e3286ec7db7260afec51c73f179d1ef5058ac9850cd3342eb833d0a3e1891be7f034296732ccb836358b54a1b7bd18a00e003ca89473abd518a40b106b508b9e53f2945bcfaca99b1637ed0f9e8c5c023aed43927494929190114dc7d3d1921d0d1d85ad776d61b492d15a461b9c84f0dcf43a3e1c5baff0adcbb6e9f659b5e013b38a8cb632ba9491b67fed7a1cdd20e658c81bfdf25e4cfcf81b32ba45aae3d7ece84e46f7cea88a668d8cead4c806f3080a8f76327a92d1b38c5ea8a7e8e603148e9c08c24395578fc5004371f2e60359bca8f39ef9a64c80c530e578ae8db876888b75830239eae7bc3a703802dcbd0331ee1d43d4c2ef32fa90913678c00e8eaf62f0190460d53bf15151462519955de3d6321a5952f644a182d084344f8cee200e38d31b044e2f558f0546162b0bd87c463519d5b15481a0166e8a9ec6466d276eb4afdf10040a6de706025fcefbdfc16814af51977398677f3d474cbd84f9a73323325153e59db9746c84bda07b828b4bbe0b1b935a9438dac5a88fc6e1989654728d28631945d86747936345db04d0518ac1cee6c6064c06a0356bf036903baf28d6338fec6d329dcb68c169b890519a343cc132820b4ac653888b8318c7c04ffe92cea71c2f9cb7afb4bfb90101b2b953dc0cf7bdae509e79501e501184b7367dcbb894e1a2f359d76fc64dcfc866a87b6c1c10e8c2ccd19f078797cdb1cd1c5ad89338d6c20d5bcbf896cfe92357f4281e732c7de2a84a41c62967344553149e71001576dd068e6301a0639d6fbbab1baf64bcfe266adcc878cb54e592e91524de1f746f195fcbf846c6bf8254e59697ee5012b5ac416be7deb5a016dd46b459a4f7686dfc20e3478a0e7dc75eb4d8139b7da6fc6277bb630bd61ae4813ddefa315c337bc532db600c7147b7ec281ef00b3696a30bafecee35509e61d736d1ef9b8cf75eec591f634e6c4c40cdc67abc00c71f5895e34f4cfef8e0d6a0d26d5c241fe79cc9998c4b082e3a7590328d73140379f77e2187ebdafab5e55641f847da711d416e6851872be445817a95cd565c2dd0a4ef688b1eef71d58c235b161547d2718dbed4d1ecb871ac3b6efa311bf534db22259b94367b64d0442d05b40361d03704bb0e3507d6fb0fca98a16ddcf383783f8ac3e20668ea801444edcff5dd64af744faf8e070ec7f11043190f8f4da91d2d0c8f408f1991b53b8038874be35120daf898cd4610f452a25e72bac3a5e5d629cae81c4cd8171bb7aed1e980edb0b01b762ab1cc5197ab584b8e876ed68d76e34f1f0743105dbbefdf90ed1e2173573f29eff013b574094c211613e10fb73973dee81307384c78d1c544c0e4b93f9eb9de61efd232f08d288e0bea65c74a73cff56508a63c645502dd729c854cc1594cde8413b6e4e03f38556f1c4f3c3755b650f60c8d38dfef8e4921d5c6ef31073d3ad68153de5d300eafc2b14950a5c6d5d1c3d2809ef1f61967ac8a7120d5715c70707def4f9a4c59c8f8c457e906cdb20bb436643b5356f4d541c9327dee73a9f68f041cf71dac6e299cba0100e529bb2bb2f11ae58334efd25ef123acb27a99e98072e2c94bdf634cb8680c410d677a2d4b25ebf50cc485f38c379a3d77bc0a8b05e9736e3e26d69416d3711798e6254a49245e96ccae9c1105ee7ccb2bd6b5215da1a9688d46506be32aea26106d25baa4f192c6a56fead1eb29767ac59663c94874cd96cfb0c36013bb63e35ae5c6d54223b712fd92e8d63912dd49741fb89ff12d68e3764f123d70aa879cffe14fd295e811cab1e497c2bd201b13b6962c76422a55c90e9316999826b35a8e47d18e25879e7dc5608546befaa9afd2f75cab9035256f895c3c714dd582b175fd601abee5965b16d113b2d1b3efa8182c8bb8e2e48befc6c11308d0e906189d2440347b7cd529273f654f5c04b0e018bdf8548bbd26e1d0e1bec1e7688f1514bd731db5689cd243221e7df82a4413d9b42fef9d3f4a1f3b0c4a3624faf42379e71c5b3a64b3251f582e8246382a431063687ca594ba99f014b01a070f01401e05eddeeca6c4d58ead7c01f7706cdd95f1e5954aae4cd1958cd1c1e82b1295884819504615ef1559165589549a2e1943239005d90ba069ba43792a518d2d17fd505f30917a7f0d6f07acaed3d67073805e6cc22aae595b1c51935eb4920b71401f0f1e968379ea1174deeab536217b704561fca4f1e1881d2e99f1e08d8d44ad23820daf0f3c23860c0827e063d491a84b6fa76ee1001143b3072815bba80f81b7695e7da67bc6948a43d056aea2731c403c720ed5ed459c303458f1bc2b25e203f01db31daedf68800938d2a5e15b3e0911330487941165e8520db150c608e4ceb8f6e9351444e58805a26375572b1058d641f5a11354576522911267e6cbcf255a70875110d3141deea94467d433b45ff86269067edd6a72bee529779e73cad8f79ea5ac7cdd1b565cf80d67c9d6743bcaa30a4635a58c392a1bed35b343d766ec0b1ab7774360968c449fc7794bc88194f9f433fcbb623fb5603316668f847df0573d7391dd515e99da6ab5b5a62c2b909b7d72b3e285349ca4c09a891cd70aba7896c99215ad64898bbdca556fd224a9e31e1f8f143bca67d2e5af468fa0c9642593b5cfbeba1496d7c0c89a938dafb209aa6f7cfa1a18d76ce10bdc8764750e6bb2850f3a0643737229932bfa59a67cc8e49a78553c283d99dcc8e497830628c44e1a76e500686b44b1bef56d3e1d27f22b4c9f09178e040a9cf2ba21185e7e3da200075ebdd8d5ce6f2f1d81b3ab617f1b677178bd7e1bd08690ddb940e6e6ccb030821859b8631816937be0327920257b1ed627cf5c423c79e455c3977501eb13d36776f1c0be1ebe9220e1da6b8240213f08428c605cbae3ca39b75f3db30c82ddb175b558362e9680e93340d3371877e4a66117d0363944a4c1929918341f4e26cf4c5f64f24a51e6be511e895ac933ae1c20feec39b8e7b01ffc6c059e9a9b935d40a64ec29158626427f60bccc93be2a8a6b112a64e3e186be362236619568f65582c917d3f361b574974373a5ae2f69d65fcadf1a00a0a67b921ccb93f6464f209d13d6772e0fe6397b8cf605445364e6552c2b610fa1b3ae59c1d7d1dff1747fc25cf41e0baf353b173594793dd71cdba19082764e7ca9b6e85e32a933224da0584adb88579ac18675f8f8d446153d69aa72402e5a76f7c4f32be8262baae3550aa6e2475529549cd47923b06fa60d851d851ccbe70615d253d8a07b9895b300e86c32dfb6cd9ebde127ae88c5f10bc0aaa04c01dd3b87ad8426864c84b64e3c9b0c2f5c0b7dad73986b2a734dc54d90a455fdfb048781df4eee626c986442fc1729e38042b411f217c5781fe05e27252f9827e25095339b8f4657a2a5e0f4b86852bc1c4c4ce97bd034d1fc8561eac5b17e91c53ae82c154929cf8d2d7d5ef87fa450fe1b2a7291fdb3269056db529bb64811f5dfd7e296e6a971c7a3b59e04b535f7a09d9faa57c27e9760cd92e39fe2f0db683be5adf8ced64a75fe43b028e835d86c6ae0bcfaa20dc16a9e899abcfab4527a65b792859147075f3be563168a1c87b86a005b323c017bfd98b7e002a83c052fcd6669efd1683c10cfd1631f483e97fab625d5b83bd63ef47a7ac7cff9b174136e9a621d8f65266e8ad5219252d26e194c6bad9c73289826c5c260ab86cf6e85b5fe5645d13bb3409faaa26cb841d45de58498eeacbf2aa2647554dba53f59776be40d84e95e135f41d850dc12a63479be9d80f65ea4b8f3d40f140a36fd044810f3694d8526553fb009451e0c09859d347013afb6447d6480cfd34e9588cd4c8f71bb18c0d7b1cc0118f2dee629c84329ee3aa1f58e4ab87bec725473182532f319b223fa6100e6b681c94d97b65e41d687bdce3d6da01d6d3a0cdaa57aceb71308672d0ecde4f6714ac8c7612e22898bc76807be43b35bb0d72eaafc64489c713b7bc0f26789a743f9ca47288606c8d27701ab81737340e8c7195911f655cb89d2cd00e1a8f2d21e8e12cc660450101bf548982f9885bde07ed5793d5dbc190f6c194ef0380a2a0cac87b1adbf7c1eceee3293704678c8b33ca20a9583aa732f856661ee8ff52e2928bdf14587cebfa8bd2fd4d83a65cfc74e92f6ac5dd5dd078f14d1f78e9fac23f8cdc108c273fedc5b2275e390dcafc28a7be7ad854ccd3b0583a596cfaadafb84ad8c2e94f2d4fff95f1c7817d97e85bd6e4af6b393104cdab2fa38c5d0d07115bd2bfc7e247c74e9396336fcc507e74321d2867bfa9feaf3dfcfd38b3c90259cadf412d1d809e3504337e4c390eebdc037ae6ede9a0bf336673de9ef3809e06a084de8675adfaa92ff665b8f125832c9b743efd0deb2f1d659365d2c168a7416b21ee59eff5f7d1da60b249efd2bedf8c2f664f7044e6dc6397f185ce83719cfba6733e6badc785ad8573dfdfb947e12c70f82cee3550d2beee1776c743cff16ad6bb143b90f3acc9f802e781cf53ef763640249becfa3418793c8c6c72e6628f3201be393f302886a01eb20b324d5144a64b88ee12c82e112f9d3267c9190ba47c315a5cf515aabb32e25b48e16adcbe5e75a9249bb2ae5741ad9933ba2dabc0f653becc8ab5c49584c58fd046e50a2f5d8fc7eec477b772d5cd684342e3790fc8d20d15cd7200ae59b35b8ff66f08206d537de699781e4cec992754688c954c30f967c194e6fc0c9ffac219dfcb7930e1e1b4c75dc77dc5a30a7bc926a34dd6f715377eead766c637125789fb8a0b678262e9a0d3a91f734cdb786c31f171f5fffed7fffb3fff1f690145e4 + + + + diff --git a/krfb/krfbiface.h b/krfb/krfbiface.h index 133e790..31f0525 100644 --- a/krfb/krfbiface.h +++ b/krfb/krfbiface.h @@ -19,6 +19,12 @@ k_dcop: */ virtual void exit() = 0; + /** + * Tells krfb to re-load the configuration. This is usually + * called by the KControl module. + */ + virtual void reloadConfig() = 0; + /** * If true krfb will disconnect after a client disconnected. * @return true if oneConnection feature is turned on @@ -60,8 +66,9 @@ k_dcop: virtual void setAllowDesktopControl(bool a) = 0; /** - * Sets the default password. An empty password can be used to deactivate - * the password authentication, but only if krfb is in stand-alone mode. + * Sets the password for uninvited sessions. An empty password can be used + * to deactivate the password authentication, but only if krfb is in + * stand-alone mode. * @param p the password to set */ virtual void setPassword(QString p) = 0; diff --git a/krfb/krfbifaceimpl.cc b/krfb/krfbifaceimpl.cc index 28ebf8c..438cc09 100644 --- a/krfb/krfbifaceimpl.cc +++ b/krfb/krfbifaceimpl.cc @@ -31,6 +31,10 @@ void KRfbIfaceImpl::exit() { emit exitApp(); } +void KRfbIfaceImpl::reloadConfig() +{ + return configuration->reload(); +} bool KRfbIfaceImpl::oneConnection() { return configuration->oneConnection(); diff --git a/krfb/krfbifaceimpl.h b/krfb/krfbifaceimpl.h index b73378d..849ca8a 100644 --- a/krfb/krfbifaceimpl.h +++ b/krfb/krfbifaceimpl.h @@ -24,6 +24,7 @@ public: void disconnect(); // void setWindowID(int); void exit(); + void reloadConfig(); bool oneConnection(); void setOneConnection(bool); diff --git a/krfb/main.cpp b/krfb/main.cpp index 2aeca1d..5f99eb9 100644 --- a/krfb/main.cpp +++ b/krfb/main.cpp @@ -35,7 +35,7 @@ #include -#define VERSION "0.6" +#define VERSION "0.7" static const char *description = I18N_NOOP("VNC-compatible server to share " "KDE desktops"); @@ -71,20 +71,20 @@ int main(int argc, char *argv[]) 0, "http://www.tjansen.de/krfb", "ml@tjansen.de"); aboutData.addAuthor("Tim Jansen", "", "tim@tjansen.de"); aboutData.addAuthor("Ian Reinhart Geiser", "DCOP interface", "geiseri@kde.org"); - aboutData.addCredit("Johannes E. Schindelin", + aboutData.addCredit("Johannes E. Schindelin", I18N_NOOP("libvncserver")); aboutData.addCredit("Const Kaplinsky", I18N_NOOP("TightVNC encoder")); aboutData.addCredit("Tridia Corporation", I18N_NOOP("ZLib encoder")); - aboutData.addCredit("AT&T Laboratories Cambridge", + aboutData.addCredit("AT&T Laboratories Cambridge", I18N_NOOP("original VNC encoders and " "protocol design")); aboutData.addCredit("Jens Wagner (heXoNet Support GmbH)", I18N_NOOP("x11 update scanner, " "original code base")); - aboutData.addCredit("Jason Spisak", - I18N_NOOP("Connection side image"), + aboutData.addCredit("Jason Spisak", + I18N_NOOP("Connection side image"), "kovalid@yahoo.com"); KCmdLineArgs::init(argc, argv, &aboutData); KCmdLineArgs::addCmdLineOptions(options); diff --git a/krfb/personalinvitation.ui b/krfb/personalinvitation.ui new file mode 100644 index 0000000..abe516d --- /dev/null +++ b/krfb/personalinvitation.ui @@ -0,0 +1,265 @@ + +personalInvitationForm + + + personalInvitationForm + + + + 0 + 0 + 639 + 374 + + + + Desktop Sharing: Personal Invitation + + + + unnamed + + + 11 + + + 6 + + + + PixmapLabel1 + + + + 0 + 0 + 0 + 0 + + + + + 108 + 318 + + + + + 108 + 318 + + + + WinPanel + + + Sunken + + + image0 + + + true + + + + + PushButton12 + + + + 0 + 0 + 0 + 0 + + + + Close + + + + + Spacer6 + + + Horizontal + + + Expanding + + + + 20 + 20 + + + + + + Frame22 + + + NoFrame + + + Plain + + + + unnamed + + + 11 + + + 6 + + + + TextLabel11 + + + + 5 + 0 + 0 + 0 + + + + + 1 + + + + Personal Invitation + + + + + TextLabel3 + + + In order to connect to your computer the other person can use any VNC client. There must be a network connection between both computers. Note that firewalls may prevent the connections. Below is the information that you need to tell the other person. Note that everybody who knows the password can connect, so be careful. +For security reasons this invitation is only valid for one hour. + + + WordBreak|AlignTop + + + + + Frame21 + + + + 5 + 0 + 0 + 0 + + + + NoFrame + + + Plain + + + + unnamed + + + 11 + + + 6 + + + + TextLabel8 + + + cookie.tjansen.de:0 + + + + + TextLabel4 + + + + 1 + + + + Host (address and display): + + + + + TextLabel5 + + + + 1 + + + + Password: + + + + + TextLabel9 + + + 125423450 + + + + + TextLabel6 + + + + 1 + + + + Expiration time: + + + + + TextLabel10 + + + 17:12 + + + + + + + Frame23 + + + NoFrame + + + Plain + + + + + + + + + 789c44ddc792eb4a97add97e3ec56f895e5a199312a2518dd05aeb28ab0640190c411deabefc65ecf5cdc9b33bc786010e878be50e8707f8bffff39fc7cbb3fffccffffed762592e5fbaffe98ecaf97ffea7b77a7ffff9fffefffff7fffcd77f37eae97f5a8dfc3f59b3b5fe9ffffe7ffeebbf6b77b5ff74ff93d4fffdf70f6e0f817640f2350868d5cbc63f587d00cd22ff07cb4b4319a754862a4e79005a451147740ddd7ff0a944db4ae3485036238d7ba043a25f4343a4b17a0752c1c4d08f9c5e08cab8b9cf3343646cf50864452f8e3837441a9f4a3407be28b1f5bd0d024e05651a894e0d64ec09a828d3e515d0cd238d4f9dd2e5f63f7573bdb21557c9817ed90e280c9db8ca5d40bb4e3ebea9ec7643b77f61c8e288c41075fb39039ac0ead91025f6b6045a25054479b4db6554e57769a039bc011de0f34850c5cd7dea889412fb3a01b22c2ebb3c17945414adb09d938f95b25ee67195a56ebfe4f6bf7f0d51eadf3f828a027a05aa2a2aea730e74aba897ef2d4354c3e731d02ba2d43fc7826edcdc5b0af4e90dab5b01697c8d80414555928f4ebda22ab70d51734b5a72a701acea8628c2d91ed0ec441a8b42504501cd69859d16595fdd082a2a7b01b4aba8dbe535d06947797c291f1d127deb08badc1c05d4493b51c8d35490c7112b259a7629f58121125dbc0b7aa491015927aa72990baa681f0b9a5427ef4401cd760559a4b13c1554d1821647826e9cb250a2454583d9014a72fa4afbe854c05285dc0556630381ed45d08b23befa40af15773bd3557a74d3952aaa47839929a77d6efff54140a92f74953e57999706ba077dbf3368461a0b95e9a01bad70716888f6f14eaf4ceb45646c3e3044a37b9b0b38e57bd710a77c5e1908390b0175fb4a474e1b9cb23c31c4296f6d4334cbf9b5a0177d6e4e99a6cd06bdf254d08e9b7b3f16a8e6b60c7195af7343f486f99980329d52d969ab11595fe98816f163f12420d171cb10892e7473ad1e5721b0a56db2be6a085a91f53715509bdb5fa406aa41576953a6cb1d43b4c2b96eaec3c0376e0ae873aff7864874d131c429b35f01e5f17e6888ab2c9919a429b38bd5dcc0115d411a77bbbc3110a59c06717db62d28a23cc62aa0949c7ebd18a2674fe92f69a659ce85a01b8d7fa6ace71cb150fbc8099f5382415ad4b95b255a30364c9546451a6f99a041d60f80aef2d11334981829ebdd4e3487999a65b788ab4c94688f343ed4097b4c0496bb864863a22ed6e7946569889bfb50af1c70c4745fd062f4180b3acc50868668da13b5a0414194228d75a147894d68a75983abcc7b067a5447d08ea6fd3112a4d1e856862ceef683fe9235551e44feac05bcd3d633cd71a7078628f5892edbe18809ed3453c3fd7811501e1f0cd1999ad4fba98060f04e30c80add6dd710cd724247ce4a5d856699a905cd37c0004cb3ccba54c342f97073a0a23255f684b965a6bafd3c3144457d5040795dddf45240c39d1050f246334a7dc2043e6f3623e24ede05ad680e53e61fb9aa61da36c4652702d5cbc79981b152196b3718d67c4a8b21ba2168d30a99afe7aaca554f40d63f68b879daa0dfeae6b27a1c31a503e50a061f27824654c327ad3057ddaea8a85c5539dd313011a09be6aadba50aa86a44d63f6841b9a2c34a3955ddae18d6727764424eaeba5dd2b40b55e5922855a8cf2de99585facb62039429e551a8e616f4ec4215b520eb851aff82122b1c3eb9fd42e5b1a01a0addfe67dc4b633db98adef01dd3e2c67a7c61543f0514d75fef0c8c403f40a6316a64601af86ca0cfe5405e8f525f1c005de6daaff14cd85ccf823902f0fce37309a4cc83167501f38f65cfc010fd0128a7e36f2027a7d318d69a593b67fa15e1a2e9125b4565b7da7d3dbec558d95acfa5e294ef3b20a508c73f80cae36d0ae8b2af82424518f96815eb2b07544049fb5845bdb4d713032072da4e339e1abf2b01938979021471d9da282abbd3c889a7d368639db4e8d1d57f805255190d663d5d8fae5e7b8b9a4b1b45849cdacb3550c54cbaf6be3074e38823a0dbfa37eed786f70093efda4722683722a777403f1e796afd63432caabcdc18da71d9a8a8b45967b2f9cd55d6e5c172c7d840806d000573a9b726a0db9fc4b0b69ec2c443626d12cfb79933f6f16e888c3134668d01f07667889c8e5f0c91e82835a47144d4ed7a7405fa820605d43b35443ea64b435c65f46c888a7a4d0c4564ac692823d19621ea65fc0b34b9cae8c210478c9e0c51d9c307a0d5cea25e2e0c71c4f8cd40b3dc3144fb7811b481f142c0e3ec67b4c26c3da167be4ebdac1b1973dc6d20576fa090374d7b68603acabda41547cc4f0c11c73e8e81010fbcf388c959d18dc056bb8f5898d7db40f30b20f4d51e2a40a714b980394c2daa325fcfcf62bd70b10a70553258e4aecaf70468aad1bd012ddad8746588349828e6ae978fd210f5c2cc207735bc1c0ba21a6aa3cc10cdf2fd09e8a8f61f0d71d9e199212efb762fe8d0c6ce0d712f3d9d92d2e8de76051c31aa1ba2f1f74f0c7431dd7ed6ee476fb81490f571c7107d6e941be25e469b53087dbab95c47ec1ae862db06ba581b283a712f03e5b4646eb9a27df869fea30f94bd88fcef0780dbe9b721dae998f2588fe101733256948db8db8fcf7f50accb3472fafa0e6434988f952172fa9a0928b19f8e214e792f819c16f43236440b7a6d08a8391e670b17218f5e7f1085cc135fe1227c55a285e2d85440c64633433429e61f7f10ed63fa6b88accf5686b8ec47cb10977df93610faee0dd192472a53aab2d63b37c4dd4e3f0cd1c6a61303b7df3530787e1928d33a50712fc39621ca63b634445b1ff70c510d6f4f8294e1e412e8928fde8521ca63fc28e094610de8a53177f88e8940b19e4ac61c86a1b148bb4da6a3b48fa2d38af2f88e9e5dba23ff24000b00b5ef5343646cf70828809f4343dcfecfb3216aeebb65889a9bfe0025b5cf8355d9ac1494fa020a79726788f260eef0077195c5a72025387e012ac2e9bb813eb765a08b3d19221fbf3b86a8b9f742c055de9c06f5f23e33442b7cd5cdf588dac3034334a9c9ad211acc6c22208d496220e2360d518463d54b9f4ef8d2313053fa32c4ed8f968628c261d3403e54517d2e3bfb34c4655f4b0351dbf94869c985212ecb5a4ed91c50a6b3a980535866f80302fdae21d278290d643d46d3b255a7c4868f86c8faf8d6401a3f864863fc6e60267d09b00e537bb93544d607374093cbbe9c18583d8fb0b50e383c584d6930ebc73916aaa886b4df8a1168f62d888951ed279a43e5a0f4531a2263dbcf40a5867b6b88aafc6e1a22d1df39a0a6fddd067ab4e49f3343dcdcf7b921ca74671f50fbf8490dd16f67958140bf6d88ca9ee8e606c4a0a52e3ba08b7d5f19a28dfdbc180806517355abae91f0d94017bb1190282f422ab78f496188acaf7e0c0c498f8668306fbf0602db05d0a0d4a7978628e4495dc0555886fa83a8b92977bb6e414498770391ffd210e531dc9c1265ca9ac11f44d65987f983b8ca6c6c889c8e9c46165799aac45a14507f6c604abb6520a0248628205e50fd0101e5c3c048b827881754b5f1d2c0ddea94b68274cf10f732d9374465f3ae600d1450efcbc0036f57c05566af86b8db4166603ea69c76a8977ecfc003de9521f2f1fa6be0f64b4116b5ff726e889c0e7c4a1655f9a2aa4c8171cd1097ed6f20aa61a8869b29a743439458b701e45954435feda38cdb4f56f1c457ad1fd6995d3c0019eb410b729af6e2e1bdb61f6365771d50e26e7f13407dff77d740476e03eed96343dcedefc21077bb1da5de7547de3b3644943a783544211f8c0d918f9da981ab9c1bb8ca8d21caf4eb0168d01ba6534324ba3531c429dfb9217ac3ef96215ae1ef858196ccddb69a9ab25c0be8fbbf35439cc22acb1f44a39bf50c510d13e5b4a5f95847c0113f95804ef8f36088cbf26aa0eb3ec7ba76d75d6cffd7c0656740875e39bd15286a370d511e0c7cdd4df7501a29953d3d37d0e754c829597ffb3144ddbe1d1b78025e01ea1eaf1343dcedab4ec932a64e6d43d42daf8ebaeb0ec4d3c99381a59b8681c7fb7da0d0d0f825e014de69fd419c32af0c51a6fd53032b798920a7abf781929a1b8c0cd1705ff70c0494cd29acf6a8bf9424daeb185811504555dcfe58d550e53c02b60cac17ee19a85b35986e2cfdd6faf706de9a535169a7c18a1105b49e18c563f51b35970e9829edc4657beeb787ef4083aebe3b33c411fb23a04507623db9e7eeb1b532c4550eea808693a3ae214ed96e18c8d8a78076ba353344897d178668743fe7062657474087233e730347bc1aa290b7760d51c83f3f404a797c3d1ab8fd0b01a76c3f19a2abb353a5b7ee2f51fb937b01f7c21bde3fe0b17ac710a5fefb01e4c40ff64bfd018d7f4b401b9bcd0c51eadf4f06c2e7015068fad5117095f74a4035ccf70dac9f5e0325e1823d247f10897edc19787ee90b68fcf3958147c00550d1f7a74aa3a2e6d843f2071c31324489cd3f0d71d9b9eeb6a29bceb70d918fb74b43e4a3db343073f45572668eca4797a6bdf812d09147c706e6da9b23583dff3090e812e8117107a7026e6ea242ee91e8c79381443740937a37b042a28cf5e984f3a98053c62b038f80958136f6020c48f4b53210d7ef0c2ca74708eeb5eb39ab3d947abb11fb1c6bbd1ba0a9e0f80bb4e81edd23416c37bd5a4e00b6575e2d17068ee0e6daa58ef83064013343dc4bb930147104f5d2ae3822513eba6ca298c72cb8e7883ba6b21d718fa280fa0e7d473da043e83bea0b880e7b3320a5ab1f950202db6ed7108d6e7f6888eeb17b0c641cc1fcb4ef90b3b330c4cd2d1f819c48b77d2bd0296d439cb2f36d606d6b64604ef70e14dccb5647c0bd6c7f18c8e9d210f7b2ff6260481a1be22a3f5d03b3be6b03f7720194c4e46f65ace42adb9f86e862fbaf8648636b7304f3c2374354e5f625503114b01ff70fa208d9b2da77d85aa96e15a5bede0c0c164b038b5d822e43f4f2494011b279e10fe2e6be5786a8b9afcd29844f156197f9c7e4105050e2a5f01f306353edf7b8b9955a728f34e6bf86280f36fbf45b7d4aeced544040f9b836b05abc30b0beaeee31a0034dcf040c7c531f41112eda06ee766c884447947abb4edd0e9f04ba971d439cf2513710e9be054594d80b77db6e502f2f0d435ce56d6060c27a2c20d0cf1243dc1cdba3fe8030fe62600df64a403e065b06d60c6e802691ff43893639a29f1822ebefbadb16adf0655fc011e38921b2fe7662e02d313daadde6b283cac018f529208d61cfc018a512eb149cd23444dd768f0d2c53aae652a09b1aa2080744ba7646217733416ccebf5ace01069c5ab26f606c38004a1db16788ac27878638a55a1a22eb89b2ae01a76c1b1892e8c81a816ad5a7219a65a252efc5c6faaba58ee8eb08b5c2416cacaf95e4a3d3601f3dab3d7d8d62c9821694d5d9aab11d817ee0a8bdf56488fe723430b066d0071460bf07069e3db60d71959d77a022e4ecdc18e28843031177e7d6c022c29e4001b66b60bcbd03142df9b38a81a3e5feae218a70bf1490e8ef1bd053c4fd30c4295fcf86c8d8566a889bdb33d0c57eea8648f4e7ca1045f8f56d88dbdfbb07fa14f2f2c110476c9786b8ecbeaaa1af44770c8ceabaca80f2989c1b228daf89808eccc694c13a9e4621b35f7be078fa5b1aa23cf803a181e3e97c6960c984f6e178fad5145062abb68175dc5d43341876650d1c3edf754a53a3d8ab81a7a4be809b9b6e1b184e7c0a11973dbd03c7d329f5b20e9fbc299a0b38824d8b7fc0a2cad0c0bba415d0d673e5b380bbfd30c46edb1a7f7930703c9d1f1aa239b09776e0003bf0550ac639dd4b8796ccb6b535288d0df04e2b3544c6fa0f0616bb547329653a4c0dacb228eb8adafd3343243ad835b046df03328a703e31f0def4ca40e46f19d801b00fe414215bcefe20d278ff36308751a9e7f13745b5ee8981dd61a581d19418d42e68857d9547c129dd9621f231a819a22a076a9625773b56832939a53b354445754f0d515165c7c090b43244d3ee110cda15cd61ac8c55245aa606d258181891eb067699e85e348a7537104774d5e818c56aa56e8e51ec6af96e8823aa91212aaad22903a5911938e2cb10cdb2a45776ea01574b8ed0d0582b0786a8b98ae6d069020977db69094e0dd160121a6ea71d7f6276b5a42ad7331696f662163c483336d98c895269a5bfc4a069af47e418a2e735017fde313f061a1cc1bbb535c411b5877f95fdb78d8b8d5cdb4980c7b9a30df0845303348a6dbf19a24c773f803e417aaf6f88230e46028682fdca104dfb6068883676780b68c0d92d0c51c87b4b038fd5bf0212ddff3130ddf029c4a0dd2f433cdef7df03d6a318f76260eeb0df32f048dc3444d3ded932f0b07a6c60867268e0e5f4b6211addf2196830318a3fa7fc0386932d1fa132fd30c465f73a86b8ecce9781cb6e80075e6adf43e3e7d0c03bf1170197fdca0c51eaf1c7b4ff204ed9ea09182b97754043e3f7c210b51f93ef7f1065baad7bd1e0f9b96f8858f8b56b8844777780b6c6db3b03ef1b0606c6ca8e216eff7b0c74f42ca6ab68245cbc1be294c5b781ad9113032fc93f8194a6bd6c0874fb7b06e6410f02ee25f68efe032e3b3544892d4686c8fae408c858e95dbe1858b6bd1070b78b370189cefb0696074706a67033036fdf2e819c44e32fcafe806a982f0c4ce1de0c91c67c0394476520eb5740414b9ea89b1654d46ccfc07443f9284a16877d8a06f17d033bbad53eb48cfd3237d0a4ce05b4f5d713035bac9a062657bf02f2313b3430a919189819ec19a2e1767303dbf8d43e2a7ae56b21e0b2efd70212ed1f1878f39e18a28df50f0dd1b4bb1b6054f75518d5075da0ab89e28f212aaaa7f2d0cca0d730f026d16930aa0fd4707bea626a0efca96cad5737b01bcaa790c6a467606e29e893e8e0ccc01c46e5a1c7eaeeb38175875b4324da130c68daa5da986628dd33033b11e8409bf9075d6c3ddd606b02bd613dbb889a4b9a8638a26498efa431dda895d44b278b3fb5bf5a5e19da0184ad75a06b065c1a38e5cd10972d1992d673188ea81948b467e80450519d5247948668a7e5878145952d038b2a8c2f9d2e53a7290d46b39ce44dd064da73148daee189c041dc4b633dcc3377180a3862ef166810a4b7bf040c5a87d706d63fb60cd13e76df81264b047b4aa3491a7b0303abf8134394c7de87816d059921dac7cf8580b1616f0e6834dd4f0c71b7fbbafd16516aef046893b1fd54c011fbb981bd700d038ff7af4087e0b8b31270c4eeaf81f5a067034fe22ab1946ad82a0d510d9f4a34a59bfe5c1a78915a19d873350232e652bf998149cd4ca0029a0a48f4f3c410fdf66b730483b85a50cefc74b532b0bf50659a532ff137897f401a5f8921d288bfdfff03c68665132828e4f83bbe3fd002c0c21057996786c8c7428daee0e97536343053da002f20742fdaeff0fa63e0af17d41b34ce4d8786a886b99aa5c6b9f99121ae127f5afe0fd8f83806fc4257adb0e288992edbd502802abbcbd0b8981958f99e1858dc51c67a94c767cd40117e1868a79b231881b60cbcbfed1a788afe313058dc1878d1ae8cf9bd47dfc07e18a5d1a7bfc413df1f70d9456960c5c86970d9976703ab1b6a637a3332d5cd0d288fe189818a4a0cfcfd4bdb10892efa86e87363d2e8e809a7b72ba02a47f4fd0edfa9a9bdd04ed7031fab2c54f67a9c63d7cdb38147f31743b4f54a576903ddb94043636e8866d9e5e63a1d9df2046834ad7e0c9c42275c8fa6ace510e93a39b7df5f0a38256919e294e4c1c068aa7c309ad6925f4334ede41e28e3945af2636078ed1a185e2b032fc90b43e434a91928535db6d2b8ff6820d1ae8105a267036fde3303ab2cb98125135a50477f7fbb3a3044b32ccf0dfd488381afd3636650d60d6c0950790c2a5ea60c0cac2991685aaf7821931a7877f264e0edca19d050c68830a9bfa8437328f4876c4731b96aae07e0b8dbfd774083e7de02d083e6d61da01d00bfb92142cede8321f271d010b032b1b732b086e234e884473501f9d86f1b983b740d8cb727066639f740c602d1ceb58177f3bafd8cb9c37ec7c0eb96cd11bc80c80cbc7f59023947ec3f1938a26f609565734a74e4f888d71a0ad6720e4a01a76c7d19d8b17b69208d03a0d460f1698844b79b066a4e775b31bb88cf7cfd0183d6ca47704a7ca7e61ff0dee3c7c0dba60ae892f5b99a94c6b9d5b1817d5b4303ef5f041ad6e6858161ad6b607ce91978f3ae56a821895eb9060a68d13490c6dcc022c2b1816daf470686135f85783a6b01da7434bb1168b943653aa05ea6898175fe9a81223c3170d947037f803a3530c98b9941b353a7254f4f0d14d040c084e4fdcec026bdcd11bca0a223771a3c234f9e0454d4ecc4c01b2b9dd2a49d0e3301a5fe4665af87467630b70dfcb1021d683d5632334801cdd7070f069ed5f7000d7c837320d713f0af80d16340fb588f628cea0b43b4f5eeb9214ea95203cb1d2340035ff964e0881d038f918921cab44b83598f405cf6c5c038f7608844ab9e81bfa2b837307a94061ede4f0d8ca634cbf52846a21f8648b4da3130ac9d1948e3d6c07e3a3ad07ae06300fe34f086e6cec01281caa3cf55aa8981ed0d1d0383a7aaa1df651ea4863be0947262a03c2a0397a5083dde964d03e32d39f5f09a6c1bba910fca54e36d2da13cd29686e81343b4c2e4dac0fc83124bdb4af4c8c011af8628f5f20de828d12b03a7fc1a98a1d0e7d294bfceffba14746963c4a034d3f46bc7c0c448a7e47c7d6e42c6b2468f0f5f71d94c1f24e329a999b580cba8ec56bbcddce1e80bd068baf70868fbdc5e4fa055854f03dbf82606d60c9a06b6373c01da3eb7752fe05163bf1010e9f6da8638e52031f0683e1330beeca486c8d89612ad1892f6757315a7ecd70c2c556c1b98079d005d666c3f2ab12e777ba034bac4d3fd9e817ccc0dfc41cc9621bae9efbe2172bafd0ef4183db607065ea59d0b9468dfc0768fd4c09fba750d2c8828516d035ea96efb04faaf968179d0914039bd33b042726688abac5203d38d13035b8aeac08034762606d2783690c6ae21ca23be42f30fd8ee716fa0e662cc6ead47e43822be67f007a4f1f965e088c4c0307f66600a37021a9a6cf60dfc3dd08e807a59a4864863c5ddfaf9f6fbd5c05ace81814d368f0616554e053c574e68631dbd17fbde31f0277735015779a5f63b6d162157ba393d127f1c029a08ac54a61ddafaecd6c0d2cdd2c04e155ad0dfa77de2b20f02e60e1fca7a467388ef39ae21e76e3f7e0dbc09b834c4555e5b024d049468c95578c3dbf2dc613430b0ac4f30f030df5d011aa27b8706de37dc19a2a27afb06361edc1818c4af0d0ce2aa6c0de2bd2303575919f8fc0921c78378f7c2c01b1a558386e82a33f0cae6d610b75fdd0b18e6fb5c763d449328ad703d00f304dc37b0efe244401ae58581e50ecac34374f902b4055f86683055cdc0d0c8bd6800ae95af068e383330ffa0f6d7233243f4a18115a3b1a0cb560d7ac37a441e041c087473df40ae23f6054a63cfc08a510914ca982e5be8941d031b523747f08686769a963a62cbc02787e82f699fefb2a813aea70a7cff949c7aaa30a5a2327d33f49df1b66cd579231131b9ed45d9a36d0111e6e8d21037b7b7057435ddf835b076712a2016eebd001a09f775590d7c076786e82fbb6f8076996c1f0858dd382c04a4b17f6b60c964080c34dd980b18f8f61b8638e5a032b032513730365c19d877b132b0efe2dbc0781ba5deee6867f96fdb404ebf059a7f2c0c94e9be21f2717060201fc706f2f16360efc6b680a7b56dea653d8af1b7c4f7062e7b62e0b25d037f11b23070958180ab2c75b7da43f27b27a08d2d95f526f572706b60e7f08e819d4cca6993abec6e19a208773b80de8b6d1f026d5d5647b4b530b36760c7cc079032007f760cece955bda49ab2a89035127e760d7195f90d9051a69f570676319e0a787a9da90873ad4c3c0a68a7b33303f3c23e50e8958dae5268412413e8eb73af80e6ebd3ba80428eaf68fe03fef04205a407ef97a6813f84a513ae8746fe16706460ca72666023e818d058391a19189197064a4c05d4238c8fd4b4359abef40d91c64819d313f09b2acac32b2596d639a247c65235fec1a321b2de7b1068aa20d05839a0c4d66325db3cf70c9c420bf2e059ed19183c75d976977705c4428f95550ea4827d03bb1875849f4d9f0d0c9eaf822e1f583a35f0c04b84d98c952f02ad2a740dbc2ad9004b26d48bc6ca5a951838e5dc1045584e8152c3ebae81532e0c714af56ee0854cc7c04a0d913fad48a32a0da4313350ea5f40976d9eaf84adf5781b03302b9bed62d060348d8c75fca079f801f4988d1f5d09084a4723a0cfc3c8d1b980b1f2f00e18689ddfa061edcac0981d3dbbd3d11689830b014169af01e8cf90f69a06d6d79546839ceeb50c91e8e18b815d8c99215af2fec4c012c1b5813f2def0814d7db80f65dec9f0a94d34240a2fbf7864874772e20d1fd63a0a59bdb33708ab2ded2187568e02a0f02a2e55e6ee01545cfc0b28b8e686b7255135073874301891e8e0cb4a0be81f58f03a043a23b3aa2c37cecb765a04c95b1546f4654c839cb2ebf6381de48cc006f3cb833b0cbf548a0c7d93340ab3df35b0303ce8980bbfd6a1bf8bb465554c55bafa9ea45eb41934f035b132e05e463b9019e4d95f5ae8e3834f03641dda3a711f9d410fdf6736c60dfe7cac05f0baa6e3546cdd42cfb9cf25619f83ae1e6083662a86e3568c547ddff41d4fe9baa52a3d85b69e0e54122501a94a9d771e767061e239f8036917fb80374982af41680c686ee2ec0d8501bd0d5d74f490c6b530303ce964043c1dcc0931615a5c85fab0a431c51360cbcbda75e3671fdcdc0119521024af56c60971a4d4a81bed67d057a1a0a56065ec5130cd64f6bbc35bf35f03e9b48970e74c49d81457bca34abeb942703df822663997eae61fc6c889b3b8aaba47e90383a03348739b801142d0f8e050a3939a08d180777028e38b83410e98e0cfccdbb4ed196b3bd1b03e1d3c0550e0702e5a36b20f4f50cdcedcac0bef116a07d6c7b2301e571580938e56861e075fe0f90aac4f6049cb27f0e640ce2bb270262d05ed7c047ef3e81827c7ceb08bd39fb6d02fa5b9ef81d89bf6fa9531e9fcf408fdb5f1e1908c1db409f44670f06f6163f1b78b2d0cdf5e92f1f3340f163a9ac0fe840cb1f035789313b4deb0c16d32781ae726420e49c1b787eb912e82adf86b8ca829caee7dabc8bde37b0e23c36f0fef65040a2f1c5fa3568f56b3805d4e85e75d90eb3ad3eb7efb0d5d3cd290675ef01859cdea38187005d855f10aaf5bf0d7c8eee0bd060d17d30b0836869e0ade8b78180a27c38063d1a0828f439c5a05af96be02de08e81b7c4ef06d60b6963595d696c19788e3a36f09e70176800091d396b91683207fcc3013f02b60127d45cc62f095cf1573669c6e7f86ba3688559b3c7e7818f626cc81cb68eea8002cad1d24040f93444bd1cff1aa2ab1f7f018e1fa786a8a8e32d03d12105529ad4d18e2162e17147a0cbb60d2c769d0119afb00ecf054cbf0e3301f9d86d02395b8af6af01cdd8b6a7026e7f7f0fd026cedda18119fd36a0f5f5c3d2c0cba523a0cbcd6d7f033d7ae5f6d8c03b1cd58b438e8ad021e7d740b48ce098ade3071b42760d44871d0311e64b401a9f2d408f2b3f7b06f605df0994b15b0321e7c540c82980a6268aaf0632766d88343e6f0dfce9ce25d0a2a27e96024a2cfe9c720d6d9e5f3e0d647dfe6c60c96420d0a457f9d0246f4221a71d8e98d382f40abcf6aa22f45fb53e012559efe96ebd6782eee18052d13e36e1e2c0c011274043471c1a388206b309174ab4c34f4f4cb9972ce57b8e25759be5848b87e8eaf9df96ff7ff0fc0de440fa0174019ef7737fbcf365dbc0ee9fa5214a7d54009df89e63c21f80e46d7df7eb9834362167c740c8f90114728ebf0d71c4c9be217ae5710b7040b93770ca8e214e397904321df164e008e52307f68f808271ffe806a818f7771b805ec51fbc0bf458fd6560c5f9d3108dee60574084d9bf007ada78702dd093f8ae81c7fb8681d573415f4fd1030393bc4360c0117b898109eb998031fb27a6a379ca2f3ad6e2a726ff01a1ef55400cda6a1ad81b4821a75aaaf8bc33102e6e0c91e8cfdcc0cd8d8016a7fc2c0c848b9e8105f71aa045c84fcad44b8cf1e3696b50939a09324ef93e0034a59da506fed0f10a2889859f6f0656adeb4045a23d1dc12f18d686313fcd337e31a7d62b01458721e591f13380b5e1d840fca0e632fd52deec1948f9d9bb19fd36cb78b04a681f8e1fe531c0afeed412658c1f52a8254380df4da82513a0d7e50526779bf575c4c8c0b2ed1418e88837812646f4a89c3f2daf9d44402936d161cf4047de021c0c760d1c710f38183c1838e2d710757b3603141d4e478638e27c7344d4cbe91250fb38f93670c410d01f901d35811e2d68378ab048ebbcb2d9bf12e8f16d25a059ee55026617dbc78086f9ed99805e79c065533f342f059cb23334f02db50df026f1d1c016ab1d0157d92b0d51ea870706f60751739e19eceb0875f5ed5d03977d30d0d54b0333c753812e7b62e0edec2dd0d6cc515957b8d8490cc4e40b40eff73f1b80de487c1f026a0e932fa0a04c2763a054601b000ae3b34c40089e28ebdab834d1cdf5b5a2f82320044f68740e28af430321e71550fc18be19f8f3d239c0cfddd67a1f00bfda75c55bd122e357556ad539a0e850d2e7d6d181beaf34140cca4b017dbfbc03060a280d01475480a343b90f34749557418fb72b4d035b135a007b146bc9d840707c01b413614eb3ccf3829d08a451f0fb2fc93be551b61a2cec469996ad824f50bf7f0215df621c1e02fa92de4b01e86b4967f11c553a069dcd0d44a9534334bab336a01874766688232ef60d71d9b3145050ba7837c429275f80e641a703a04b1a2777866841c74da00f1c4599960e5bc7bb0676555c024d6da2180848e3f048a09e7d6888530ebe010594bd2b81d2d817288d630341e9046893b19d2303d1e1d81057391e0948e370cfc0e73efa8076ecee9d1bc8e9a521dac79772aac79583a9218e38ac1b98c2dd031ae7be6e0d71fb3b230391bf6360696f06149ae4d1c636b31cea36654359c21ec5d2cb3ff185d4350c58429a370c3c01c7acafd45a702dbe90ba8626ede3b52be088092dc8ab2c9391815fface818cdff77853a2997e64982e96e574f58a52df04945b8182122d48f1a3561e008a1fe5b58137bcdc9ce247ad3c3270040d37e7556bad6a19c858db405c8f11a86af5f91cdd795443b5e9d90786a8a8f306a09abbb83344115e750d51d9176f805e2e5dbc1ae294f339a0be7f716b88234efb8026356753431c71b600141dce5a061e23c9a9973bcea78638e2e4d610e571da03b479e1f814d00ce5f813d0dce1807c6c3af240a0803203d44d0f260616bb86029dd206dc6fe706faed9381a5bd0f01e3fea1aea2f9e9d1ae21b27ef86c20d1d4c0cb58dd7ea1f71e3f02bdf7d831501ebf8076a81e3604f4dbad4b40eb635b6706026c22e05eb6ae00bd9edcba06b409fcf71ee853625bfbc0809bdbba1090e87674e42ad3e69609d5a06050e36f56abac2da8195875aa001e9b6a8bc210816dfa0214c40ffedab8ca5bfa98d8444047eed14e373dbb69a0675f18a2676f4783e9faa355c3183dbaed943f56b88c52efba675f5e00ead9579521eee57a00a8235f9506fafe8181be3f06d4912f5e00ad3b5cdc1888412da00f9c9d00034e398b71aeeb7e7b7c06b8573e009ac01fa78036d79e908f75176342f26a889b3b7a07d4c58ede0c3c468e04a4717408a8031d1d18e294e389803676acabe8a5f0b1f2a10d43c7fb06def1ed1a22a7c733406f898f74958a538e28d3f5684a7f5111eabdd80ee59169e977977ac9b40eb3c801b7756a5f4dbbf67504a402a59153fb3d729a77f809e137eeb6e407a46bc3986df5dafaeceab02b602fcb750c053db7d3eba18176da03d44e6fce0d71c4ed04d06e869b0b4364fdf60350015d5c03038eb88a7edb5bb7c2a8ec8b2b4083c579dd10699c654053700c68f4386b1a22d1536edfc3c91959f7e871f269a059be0bf8e59eef47402df97c628849cd97329612934fc606bac79b21caf4b461607a4e896ddafa85806679fa6688ca3e6d1b68c93ac2bd612a208d939681349e0d040381de461e3f09d43d6e0d91c649dbc01bab23402f308f1e00f5a8e339a0f795075b807664ee4430e8ad3b107f96b50fb438e54b47b8031d00ea405b870646311a8c1e9a93574a3d2b194ee2370ffe015b7869b859a5dfd055a2faf5d2c9b380530671fbfd769f7727b7510dfd4d7f390314a4afe2e6faebde1039bdda039aea1ef7809af6f90250c33de3b20eb0a775811a5dd3108deee406701b6b1998b09e1938650ea8059d70736e1f2733431c71563344019d9c00da7573726ca05956801acce9c210b57ffa6e88487796005de0b463a08b1d003d75d321d0a7f11fc438d777183f7e31f0d335634071fd601b686ae63815e871b66960e648dd667abe3df800b4fdf620073483dda26e374dfbc0100d66f70ac80497866830bba740ae23ae0d4c583f05fa66e82fa0a6fd2de8521e5fbaec8052df8a183468eba5f0f704d04789761e802edbf73fa2690ffc57f16f674093b7c4fd3da0a36fcb71156f7fb97d0434bedc46d81a787cb93c075a54d4c508507fb93c13d02caf760dd10a2f2e0105e9f30f40bde1fcd4108dee726ee029a909b8bf340c91c6e5c2401a330369d401f7975703dd2307dc810a431c71766588423e7d32f008780b28489fdd18e294f3cd116c4d500169f7e0c9a98123748a1accd99d81578b54b6974b4f1f0d7c98e41850073a7a34f0d22f03daa471bc3070954303a7b400f5b9a33b03bb8f6b8082e3ee85811e7566a0474d819c89c0eeb981236606568c9640a18fedebb2652f2624632a4abd32e1cf2afe80cfae520db95e503dfe6b0ecdbadf343fbd0ae2c78e6bf561c0dfbf7f89c60f07fc83b8dbe20768734af16de015055769f7f495d5dd8075cfe6ef5f4863ddb3631db7770d74d87c3d3e05f4d1eedb5e40aaef3a5d5e01eaa6b7ef8668eb37a78648e34669a8df5e1d0a48e3e612c839e57269e0e16c07f0b0c6edbbcf5d770c4c47bf00f7b96b43dccb992eab2e767e65a08ba586a8dbcba9211addf90da061ed6c6988342ea68648e3fcdc404e551e7a6771f663880e74560003c14580ba69f2c1cd650d96d34f160275e4b9814e481b73473ee6f6dd2b8f578668b8c77da0a360d00634d73e20a7eea647af0616445a807ae561dbc0efe0750c2c96cf0d11820f1786e8a6f19d9a35689673b832d0d5e706a60a33a0544e3b06ae420b5a0798989f4ea9ecf5cc894f51fe8b96cdcd67e0f6e3b28d759f6313f835a045a641f49786b62525dfa4f1b79ff01fc42ea43f2063377d400f12b73343dced750ae86df5550d28754466608856a27aae3c6f0b38e566db40c3e55edc3d2e66068ed0cda9f19f770c71c4d5d010cdf2e21850e33f2f0c249a19e294cb5b03af9e9f010d6b171f064eb93644bd9cdf07ac3b103dbb6e8853aeae0cbc4bca01f5a8f31303cfd954a5279b27340777b1b3034364fdf4c1c0433359df74c273036f9bee0d9c320134569ea4069e8029c2753725d1470337d70532a5716ea0ef370cf4977d40ddf4e40228b4a67462e0942703a77c18e89554e5ba13d2f7ef0d3c04a4064e2904bca2385e02954ec90c3c56d31c323d9d1cee08987cc7cbe935f418d50fa9a8bc4107daa67be4298fa2ef11611a6555e745590c7ccd4e5b7f2afb0d74d81e157b7ad7a06fbacdbf002d520f221f7f9fc7619ceb021ad66eb600fdc1e5d599401d79c7100df7660068d0badc3230cc7f1be8b7278648e3ba6d88c67f49d6dd6f2f7f0d74c21f43dced1505e47e7b9e1b38e5d910a75cde05f8edfde58d21caf4ea18d03877756de0889121dae9f903a0a7c68bb98170a1cbea35e9c5a1819edd30c4556e17063ae11250273c39337004b7ef3e773a35b02250021a3ccf7a0696a16e0c3c48e81475c2d399814e786d88867baabb2d58b43f3e02dc2b73030b77ba8a3b611dd003cdf1b181e7a89a80534e54a67abe3d1d1b581bd765bbba4a666041840693f5b4f7eb4dc053f4e92ed0a7671f2b1f03de48ec512f79c6cd7d466f68f9af9e6fa3c45ade6d7bd500f8ebeb2496c39a7f1f7c08785b017a0b78d514e881f7d4409f3b02d4a36e97063af2ae215a61ebc1c044a00fa88b5d0d0ca4f16188346e9280cd48d832d0a33e018d843727067a65c3106dfde6dd100df7ea1568aa578e01f5a88b130347bc1848e3d2409976000d9ee76f065e0a53621e1acf2a40bdf2ecdec0290f06de36ad04b4c2b32d4083e76969a0dfd60075d3b31d03dd946a70373d290c7453dd5ca9acff1a38e5d240a26f067a83f251f1c583932b81ae7260a013be18a2499da87db8dfd24e37fdb666a0dfea5ed46f4f95869e814eb70574e4d31f030f5623404dfbf44ba053be0d315f8f5f52fc077475da58de20d1434ec9b31edf3d8fc8dfee0cb4b615e3eddf6f75d0c5a27db4bd20729702ea0dd795214eb97d363036d4018d2f576d03fde50150e3bf6c026adab70f86680e37a581974b2d01a57ef306e83de199d2505bbf2c0cbcf3ac011a922e760cf4b90b035b1374fb6ada17a7805af279d710cdf2fb4a40459df501b7e47743b4b1cb89809b3bbf30b04430002addedb681449f0dbc9d1d029a179eed1b68da2b43b4c28b04e8298d5d03edf457a076fa6960dd6104a8699fad0cd1c64eb7044a63c7401a4b60a0b72b37029af609e5b16efc8c84b7400b38a1e6fc2afe90ace7bd5efca0c31b2da8c8d952348b194abb6cb5e271f68d6a28b3663498bba8ec4eca6bf4e4ab04f4a76ecf7b8046b1e75d4043d2f38e211aff73f4868e87a4fb0ea045b7fb2d40c3c9d3b1810eb46b8853da334394fafd2fa03e773334d0e75a069ed5b95b8f2f37f78638e2967bf17072bb32b0d8f50568b0b87d33c411374d03bd611bd0e871f56da0cff50dbc69ce051ac59e00f5b98b3303a7a880d4c5ce13c03dead1c007b76f04b4c2f31ea02e763e30b0103134d0c5da02f69fbe5f003d56362f54eaee849f067ad48b8167753518cd0b2fce01bd8f3a1b1b48e3d5c0e29f6a4e9df0423537d02975031d391530464d8e0d4c7ba8b9bc4e1ae79f02569cc74b43cc2de79458deea473e8ea9973cd7d32bbd211fc43276ed36ba7a9aea43f93fbb40c6d7a32e9f04faf2d336c094b6f61ce591ba133e728a47b1e703032bdf478668a7ad474394fa731b5037bddf3610503240bdf2ae638823ea53435ce56962884677ff03a89b3e9d18c8d89d8189401350bf7d3a34d02b752f1a1a6f1b803af2cdab81ae7e0ea857dee8b2ea84377503475406ba4709a8135e54065e81b70d71cab5eea552c35d01ea84173d03a7a84cf5a475d107d4e7ce1f0d71cae5a9813ef709a88b9dbf18e82f7b06bad8d8c0abf825a02e76fe6ae0942703a7e86ef58077e123e8fb97b4d35c73ba8bba40a73c1b0817a98135c721d0d065b70cd182ae5f059c72d205141c8f29f5bc4b3038a4f1af076080869bf77bbc177b34c40baa295559761b71ca6bf4b9ac5574a2233fc7a426f392c9730bd0c3d9f336a08e5c3f36d0c5e68668dacf6f80fa6d7d66a08bf50c714a7b6e88aa7cee00eac84f1f8638e5f114e8b072f53435c411f73b80a6b48f5b06d27836447f699e18f8e3d109a08e7cdf33c4294f7d43b4e4e6b121d2682b6319c3ebed2fe051fddb40504a0d91e8fd3ba06f655def1aa2c1dc760c91c6dde69448a3752b503e7e0047981b0311a661887bb95f028a3037c78638e52e37f07ae1135040b9191b483431449fbbcd0d6c1a68038a30977b8648e3e6d910695c2beb1ad56f748a42cee5ae8128b56f201f2d031dd9a060b00014832e0606e2c7c410695cabad3b06350c91d32beac5e3fec5064874db40c68e0cecaa781490e8f58e2142ce03dd34f73acc968132dd3770d95f0397bd3010d8c602ae72bd6d601d37039aaadb630359f7114a6362e005a6eeb610ec19f89b4425aa68791c436356d48996c75d036f352aa041f89c11b6ca4e2b723a8eee91b706296b7d3136e4a93e12d9c8006d7f69471bcb337dada059022af56602289e36ce0105c7e72d40a1afbe3044276c7d1ba269b7374744c61e068036e73fed18a2d4eb130157698e0dccc794314f7b3e0d84cf0343dc7ef3d010f978fa02143eeb4b03e173cf40119e1ae271f6db6910c7ee0a40e1f3696520d1530321e70d28580c7d581808c11b20041f1a48631f50b4bccf0c1c5103141cef770d1ca1ac2b38de6e19089f9981aa7c01140bef5e0df4db27439c72736be0c5500a7871383770cac8403755835160bbfa35c411b7b43187adcb8e811743878638e5e6c510adf0e10850f7b86c1948233590b11343a471371528f4bd18f868c4d8108f4dd31f43848b07ca34d7a4e6323770d92303a16f21e02ae3474344a9075d56b39c9b4303f5b26d20d13701695cd309f38e1e129531ad5b9e2a5105c7f31f03afb0e84079293836c4e2ce9ccace2bd63e4f0f049c72d20734fb3c217ef8b9f224664ab9e269ad1d8916cd9c8d4b8f878628e48712e8026f9168d11af0218e8fe8c845bb91f2f9d74ba0c9df8a8e0e0db1c814bf3fd72cd28abf136f3f00fae0c343b4f5226bb1e9b9b914100c1ab7404711f7cb40703c03140b1b770662d0ab21f251ff001cfaf60d7144ebd9108dff5157c979ceae1f1948e3c54008de1cc15f4f1e03da20533f31441a8d1f03690c0d918fe77740a1ef616e60e2bc0528f43dee18e288c7b6819bdb03140befbb06a2e58181535243dc5c7b22e0d9f49eca7670bc3f32104ff70d91c6bd6aced3c0d41047dc0d00cdfaae3203a76c1b483437448fba8f205d385a5e150666b08921d278981a228de79a401186c6eff0795d33906869206a0f0d91e893f2a1e0f8fa6e88441fa8865c2b35b72303a3c7e60826bd9b235843a19d3af4dd1c19e2889b2b8186f98921c6ec9b6ba0ad445f053ae5c3c05472cb1025d69a1be8d93303c3eb1ba02f94ddcd0cc4e45f43f4ca6b5d36032e0505d1f25ca7b09c5e3ba5153a9e9ede18d89a107387c2f1f4944657b47bbccebf36f0f7a6174007788d6659fe7dd6fc1f4c3f81348d9a1bed09f893bb66cca5fefe703c9a437c166f0d5de2e97d5454b90e9facd35d026de2e9c3d010974d0702a265a7618852ef340145dcf697817ae901298936bf057ae07d32444e1b5b80226e6b65606cd800fde50cd08ebbc6b581883b327015e54353c9c6898100bb321060cf0c3c48dc000ab0cf730357f935100beb80026cbd32f01e6821a0253fa95e14609f7e0cccd7752f0a9f8f2d03976d1aa223b79475bde47a98018aa7f79581e0780f287cde7f18e288c77d4374f596aa414fd177dc8bc3e7ed8d81abec1908c11340c1f1eec54070bc35c4298f0d0145f89c182218dcd11c1cfaeec60602ec968034ee1f01bf6d9a19c8c7d840a49b0bd8a536ab1be29be5e32d43cce9e2334eff207a656b618876faf00e683be1ed9d81cbde0b9475da47eeb5f12f818ef8344473684d0d3c69b5016da2b87f36c429770b0385bc0434e9bd7e3744c4bd9b1b78354030d01cb7764d5b5f4f69f973fd02e82a48ebe61493cf55a69ae39e134fbd88704a57df04697a76d154903e055a8273c0619c78ba8edac0a581a81d19abda0541fa32eaa54ad3f8a66c125f9dfd0362721aa358e5bf6d4afb80e269a76e88aede3906144fd385218e489b8668b8ed474001b67d6120d16b439c92fd18881f9f80e2697b03714a67c710a76467025a50533955806d2f0da4b16de0b2ba7dc5d3ce96218e68cc0005d8c6d4c0ed5f1ae294cebe81199bca4311b7fe6d20f24f0c4c694f0c9146762a50f73802f41589e75b0189d66b8648f49906e3985c2f0d2c100d0c64fd0350907eec18e2947a6220d2915387e0a71703894e041a92286487e0c75d0321785bc029ed0f430c05f70d4021f8be3490b1914097bd344440b9a7081d82efa706468fba404341696027c21c50f8bc5f0974d9dcc0293780e2e97d53c0290f2706e2e9c4c063530b503c7d3836c429cf9521a2434b459891c6c339902b5ad2813c83bda3696fe2292d79dd4b5932a1dfaee7b83c8c7c01038e38a7233b7c9eef010a9fe747064ee1b28ea7e70780c2e7f9a5211600e24776d6b00e6dffe02d46d3aaaa37f8507e34cb6ebbe2fb523b0da0cb77264625d0e377bc473503df1fdb03fa5914f2cb0530c823d1415465b7d38e3fa94ae2e38ccdae3f1992c778fbf72d8248231b1b225c64e47413825b06e60eaf40c6e43b6d0814d84e0005d8ceae81907306387c9e1b4863cf40084e0dd1703bcf8026aced270369fc1a48a36320d27d0b68c9ad23407f88d21c1898495786b84aab6188aba4af86b84ae31e504c6eb40c9146f3c74001b50564ac2150c46d1c1838e5cac065f70187e02f0303ceb18135fa3ea010fcbc3410d7ef0c714a732250948aa1b1eb985cff3110936f0045dcfaaf40618bcb6ee2a98e503cad770d841c1da1b5cf876d03979d0994d39581487765e0bb1bef065648760007d86d43a451ef1962b078a4f61d711fef049a8e7e19b8976b031f11dd1c1193efd9bb217af603fd651393770d91e8d39581dda54b03d3f30f20d3295d43dccbf306e2b28fcaa926468f378648e3f1cac062e89981404f4b5ecf9301dd8be6c977aaa81e21f89ad0e7b58b4bcac381fe927eeb407fbd32f0c7d6b4f575a0e794ae81f16508e881e6b23470446520d104d00ac9f921c0d43a7925c0aec78658c57fe55eaa663dea652f26023d0f055f91f55ea7153f5d93c48f85357b9b15926b40df75ca62fed1f394367b35442b4c5f0047dc2bc0e13337103e330369d401c5c24e6120168e0d445c25aa25823c354483e93c010a8eada68148776d20d14aa030de02141cb3b68153ce059ae4d500bdb16a3c1898c0ff1848e344c066c1656688aa6c740085cfd6af81f03915e8c922e6743d4f58dbc706024a1fd0a7291a7303917f4fa048d700b409bc7161e0944781f2f16620285d020e9f570642df29a0e0f83c35c411ed230301e510502c7caa0c7c0074cb10596f5e1ad885a4024af9cd94c7738182d2a3819c7e1a28532a3bd72bdfc70b0389de1ad80e54028e7497068e981ba8a88181cd4f2a31fdf5d3c30658437937f0ea99c69f975a2cbf03ba82a681b75ebafd7e40f2414bcef553a477cf024eb98b71aeb78ea744ba1ea079f23545b88e96843e3a9083e375618823aec9ba83e33559f7bac3f58d812d3444a94263d4e5d8c011b4d322d311af06be4d494029cb166f6763cad2ab1a757e10771b68d6f9c250cc61fafeb5cec10ed08d8f1324f1cb2ccdbe4270528b61ad9fe97724b26b800fc624b52d401f54ce33c0d3d11bc0e1730371449e0b68a7a9aea2e0985e1908d27301a7140d030f01bb80a365d740c67e054a636aa0677f03faa270fe696072a5db57e8eb9c0a38252b0dac3b7073b93e34d9de13288d9640d1320114fab26343f4cae60cf05452896af760e350a058f86ee0d7b23a86789a6ff60185bec69121eea5b16b887cb42e0dbc08c90dec954c01cd0b9b5d43a4515f010e6c5b8638a2b130c4559e68a79b49dec2c0293b06c256df10196b5e18789f7d6d88bedfa919085b3a45d1f2f9c8c0655f0c11d75f95a85e733cab2a0b05d87303391d1b22a78da181bd4ef4b9bcd408941b785bfd6e888edce81a08b0ba174d471f94534d471f9e0cc453ba8703ecc38381dd941193fb8eb80f2d03d373faad43f0ddb68134be00cd60ef760d1cf169e02517116613b5af0cc464daa9a3f62301a5e8685a3c3270953b4051fb9a68a9985cbb7e06f25e84cf576aae6c77e291e795cb969dd84a9cbc0155a3c14f9047e41f74dafc14e9b404f47be2f344c057686a31360cd2017f3b5b238d4c1f87ce0b407f9dbf9818889643c0c1f142a0d0b732c429e913a09963fa2cd0294b439c52948668a7690f50f84c4702a5716be0b211e9060e8e9d4b40c1b1931908d2db808263ab6de0f65b86c858f665880ed426eb9e17b65b06ba690a3838360147ba0f03918e7ac953b623379e048aa73b06ae42216f02db8781887b6e206c2506deacaac434856bbf1bc847cf402cbc32906869208e9d008a63cf8581ac370cc4a057035bde050e5b6f064e1919d8d57908e8236ff57d038b5daafd2e70a7dbd756c0a7470189b6e90deb48c7f8f260206ca9b215fa9e6e0c1c412b741c7be818582de614c7b1c7818138f60bf85de3ad81fd41f486751ce38f7b6e0d9c5237f087283ac2816dcb401cbb071ce91e0c64ecd040a2345cc7c29b9a81d9387d6e1d1cb94add1047acfef5a8563de5479793d509d0e76745eefa01193f5e926ccd007efb2989df90f90784be1fa0cf96c4fc48a008736c204ad50cd192f31b4031a8480c71447111b00e4a1cf161208d8e219a54f10e680a57dc1a78d7f809284a151303b371eec5df814f87806250f66920d129a018d47e063cb9da36c4292d655d21a7b56b88529f9c1858dbba02f481a5465d40a29dca10f5d2f802142e5a7b86b8dbf69b815d4829e0707160e0947d0353daccc0f6ca0d101c55628a1fed8e2116bb3ebe017d2fb8a1bb558469d260d60185ed516f06f6289e03facbfaf608d05f1bd71f0d4c369f023c757aee018a304f4d030f895ca568f2abb20f97029d726f2028712f9b90f36ce08836e008736f203a50d98e1f8f130347e814858b3beed6d1e1ae61207e3c00858e681a38a265e009782ba0ccdab1e8564411369add564c9dcab8b946ab0dc4e7d65b8df52c30aeb28a5ed948f5fb95bd17a0e28b7edd1fa01b4724650de8f385b25e94d8bf5f818c7cdc010e2867869828d61203e122aab2b18930a706e247cb10a76464dd13a3e2cdc0557a064ed1117a9ecbaf0d1cc1cd397e644b033d3b051450b2c41047e46d43b4f5ce05e008736c2018280daff476053a65df404edf0d74312aca11a65d37c4119d0f0313815fc001a530100c324364acbd05287eb44e0c71b7edd4c026bddcc0e638a5e180b263a0c4de0dec0dbc34b0494f65da6343ea3b4d3beff3f7c8ad3381aef26b20063d18986ddd1bc8fa0050d86af70decb5be33f0b72bd4bee3589d5ee989d113bdd241e9a90128063ddd1ad860f70928063dd50d3155983581949f457c9c0a140bdb06f6f5b50c9c320414b61ebf0ce46305286c3d52510e5b8f6f068ef8367015da6951ea8857035b1229e4aa1d6b7db5af6852cd94dff14e564d20e58fae3e1301716c7569e067bc3e81ace0fd4b1fe8c60f2825f13befade67afa155f6cebb5003e6a9694d14e9bda4e98c42ff6fd018b4cb5ae81b0d534c464a256018e52a581237e0c1171fb67003f1597d4be043ae5d7c0117780b645670287be430361eb0a50a44b0b40912ecd0dc4a09581ab2c0005b6fcd21047e47d43f4a86c0f70606b1a085bf7801ebd3ae70672ba3270ca23a0c0d6e9189829f500cf832a431c91ee19085bbb80c256a76b204a7d19d8e9a623f499c0566620a0340cd14ed36f036928a78a63ad530369bc18784b5c1ac8fa2d3000d25d0393bce8b74d87ade69d81345203bbd448d471acf366e088674081ad9e1b38827af1e35be31dd0d35afdc640b8f80034db7a1e19086c77067644d0e8d6718c18447fd9842da5e1a0f462e0149a765111a5c6dc7ed9899fff4de277f05a2d4d8c6af133a26be0d75d9241cc2e5a599bb954fcc85febef035cbca26802152127b900fa5de6744d43c4c25a3498d6267e1c1808064780c3c5a1219a54f10a6813452d3390d31b0319bb05da3aa23044b3ccf7004f8cf601824132d355b23ef1a30e2818e4bb06e247cbc0beadcd29ec866a008e0e9921d2482b40d1217b361094ee014587ecc3407458029ab2a4a9818efc63605a7c68889c160706b68aaa1a141d3a0f864834af0cbc8f4a0cbc6ea17d6c1ebdc606123d3290d37d038996061255d63d0f3a3090b1b9219ec59a14e1263af40cec30e36ed7c180bd4e54a5bb7abd65e08833403dbbceddae7b361b972e815c475c19d83b4a797886f23c00dcd5a9db755767a19bac97553bbac72be5b17e328fb7b313eeb6ead4e3c5e1eb084899c3145173ed74c06eec2462617b3ddd888edc7d049af1f795496f00b480c11bc08f8525c32da0c7fbcaee12e0dbc7493fa6e7ed9c5ffe4a7a75032f4153c05dfdcec0b4671750572f5f0c1cb16788b9543503f873a8a49a1ae288f9b6a04f4e4f01fdb1643116e86f671f005565be03a867e70d0331e800a06727931743ac906473403d3baf1b22a73f330311e60950dfcf1e0cd11b8a7d03a74c00f5ecfcd940075a18a2bf648581707164a049ed197807ac9caa67e735037dee0c50bf4d3b8658dbeac46342dbdf44e84c0cec2ed511fabbe8f4c21043e3cf54c007a73a3f4093acb7e80d1ef79b0f06b6579231f7fda62e9baaab53d91ed5ebd7068e50c61c0cce0d6c8da439b8ef3fd3e8d67d9f2386403720197395b29346fb98de02dd163f3a9400fd5634ed77eab65a3fe404740c7c168fbebf8e1f3c7b4440e9ac2713947a4c593a59534f2709a04f3f2f0e800e93896109147c5a2f39044ae61fd544407488df6e69fd7d5c2dfacb5097ed13617a51ea9bef8f0d66005f0849fa89219a43f7cb10598f9d196b602f7ed2ff00783a49e2878aff0111a66588522fdb8023cc8581e7b921900a4606b6563701c245f2911ba2f68b1740c160fa6a60c19d0272dfcf1e0175f5ecd0c01153c0dd74cb10192b8e0d74f51303a16f1b50bf2de6064e9919880e94a97b76b130b0e19016e40d98f9d41047a43a421d399f19d8cb42dd7a54cf2786a8ecd72ba0c37b8f4e5fa0ab1c1a38620ca8ef372964f7fd66cbc03ee91aa07587e693817d7d54e5baef9368d3c0063b5ab28341831eb50e061c51010ac1ad8181bf49a4d1157dc58f984977d6f183b7e69c5265757eeb2862619a16bc02efc6143fd544a0f65b07da3c15f44b406f8aba4f007feb950c12208f8fce24bd5d805f214a7a2b80df3b49bacf06024ab4c234e7755c527500f5b92a35c465bb63c09df0c5c0115c566f57925e696053c91b903355182f80a21f616b4a01b957164bc0bd6165a00345b848d51b92daa781be4f01ad1b3fa77c006d35cb01a066d9e1e6d6e30bb5df05d4e89a94a91a5d32be032abef1df6c08faec64a2b2dde85a43404d6a1add34ad3a0d7696c7789bade796013b15c0977d92e10860c12c1964405e51fb0786183d864b805f3e4fbaba8aa6a3fd6da01b8b6e494f57e96a7c793744a31b466fc8f23a191b0c00fec62a19b60434876113d0dff28c6e01edd7ee7e026a63bdca106974ef0135baee83218ee875815c69f40c1c7160881ed5df02f80b99e47d0f609b67f2d135c429b34f034ff3d1c632b7c29cf258b742e6ebef0622ee19a068999e026a96e909a0e0989e039a0775a606dad81870607b3170445f403b6d5140459f5e19bfc1ddcaaa7683c83f04d2462cdb7e44b8c8d773fc80f71ca8529e0aa26ef3ac1dcbfa4995019d8ab035344494ea57405ed160744ac111bd4fa0e4772307111d726d054c467786a89797c4c05ace1ea04dcfc35343d4ede8c6401a3543a431ba07521d3131c411bd3ea066396c1b78fb7608a859f66b069a65132874c4b5812332433c7a0d77819215672679b936a624fdc210f9983e032c77245d95475fcf95113ff2f55421ba7a7225a0c12453a0a523ae05b4b19cca763b4d8f8102e87c031ac43b5f4025e05ed44e6b9d85813f67a039148380641ad38dbcacf3def42e9a43d1eab6f8c25084bef5d010bf379fc44f5db78a75e80f28e3f68bf5043e0aa81c017a67f1d401b2f8725c526e0b08d2bd234354e54047e887257a5f061acc19c08f9427bce1fd83c8d84b947ab169a71f86c8e9cb01e076ba6f8823c66f06129d01dad13d1e1b784cb801d44e5f4a0357991b48e3d41069fce808b65825fd2b03ed3435308af50d91683f07d4b4076303a70c006d9118dc03ecd74e12f2b169da970235ed05e0a63d1370c48cda2ff839e4e4f5d510e1b33a13704a750e74d43dde8194b65e6c0b740415e5a1a0d83270ca0e90734a4aa32bbaea2f9f06fa0b4d7bd3a3541e0372fa16035f51657c75761a8345d969f263d81fb740278b19dbfbb620e70750e22a655a96dc7ec4c272dd1ba2f10fa640aefef26da0bf9480ba47bf0bf03b67c938ba47b969da27866874e357c04dfbddc07ae19e21aa72d801dcb4f70c74b1858134760c91c67b1350181fbc1a9807150636c89c1a22d1f8f1d67fc0c0a7bb75e31f1968ebcf0606be06e0de5037c411c33740939ae1ab81239e0c91b109592feabcd5a8e680db3af7b269eb24eac89f8f0135cb9c7b59cf50228cc7a78e5b659533ff98c4f8527572dad8cb2750b03ff932227f955634ba7ecc0c2ac7e47e037093ba072a26ce830806d57a8ecbecf3ca10a5de3d07f8a27012df64fa0335ba33400de675d740dd1e1b68301f06a65ffb809bc389815326863865340054fb2f4b0373dc86816d495f0696c3f60c3c7b8c01b5a0e18b81f6f168a0379486b8cae4c0c033d0c8c0830455e946177f6aff0f22d1e13bd0d3650f0c71c42835c46567069ad4a80ff49528ed436f5693112556f0f5fd64b432c47474f000b0f69974a9ca755b6701e0d6c0c3d92190ea886b43ac06ee470beaaee369acd3fdd4809c5f731d3d007dfe60ea2afa6d576dbd76b500ba34fe41c4d3ee7aee10971de440c5d47a9818e211701819ebaedb3a857c6e6097ebbd806586d12fd020ae275f4093a13139055a407502e8f9b67b01a4f1d793c9fb3ba0763a3934d04ef70d91c6cb00502b1c1f1b48e3c8402b1c1af80194b1803836aa00fd5ac5a869e0a9e0c2c065cf0dbc7a1e19e2b2b30dc465e72a31c6ec64d803dcd66706da6966e02a3b06966d5b405f695406667d2303035f1718e894868153de0c3cef532f7adf9074a9db4d6fb831446f78b937444cee522f9bee71678853fab4e422137c19788cfc01721df16988237e2640a175a92ba0c78f64e42f801e24de80f53c28a65f3fd1d67b9d756bff075ff786583e1e4511f6d2461147dc9600bdb276f303f44a36ea44b8e8658df849f62419026dde350e2aa0d2087406f4e873c315d067b567980303208966d95b7753360b7e02ea1eb317033dea14504b9eec1a68b84a430df74569a89dbebc1a68a7db067ac3d0c0af74cf04ea0d53402d79d4307095b181abf40c7195c5260db2de117095c5b7813f41bc37301450a69bc1e2dac065130397551a6a52e3b921121d444beeb9038dea0612dd37302293861799066d031d7902b0f09fbc3c00297deee5d1102da84fd3768f7aab19f88c42616002af34d4c50647402138349006adf0ef4b4fff1aff5ee4b4df19f0ac7e1033d8feba0345affc9e024d801765fdbf55d968da51fb7df797da36a01d88e5ab8167f52b409f7d6f1640c658d91d00394b59f15bcf6b28b406fb0368c3d07e6960c6164daabf1ef85864da02da7ac2211fb97e2f7ad506b4d43917a88b2dbe0cfcfdfe0a507f197701f786ca10cd72de1228d1734324bafa32d0f81f00b7f5d2c084f5cb4047be13e82a4e83ab2c53435c6548cdb937bc6c80e7ec9a81cb2606067103975ded1958fcdb01d48186b786b8caa867e02a9581092b59d7069964d03150407d03fd7601b47495ae21aef246e32ff8827f32fa04d46fdf7473ea952f77067ae53ee04e7860885346a7064e39064af57deeb6e40f3f9369c4e47e9537f969c5c8d8206d1701ab2590c627546aec711ea445113d9b85ccc1fa513d561578b01a64757a65ed1c48d993777d02641a09e32969b0999f928ff5b016b0f50468fbedf0026831d9ecef0029af39b6f60c5195fb39c0076293ad3950f1344f501af8a1f9f30e508f5a7d1a789cfd06d45f6627024e59760c748fb681af14350cd47e04d8c1a637fc18e26edffb0275c2b981aebe6fa0ab3f03ea0d2f4706dae99e81ab8c047ac79718e22a9353a0a9c7c80f039db06ea07b3c1ae2b22f9581cbde0934553806d4c586a98134de0df44add9c9ee786cf064ed935c429231aaedee1242f34baf548c8d6848e211e684654b63be1476ae094b68153c640a97e3b32d06f9568a5235e0d71c44b6e884407aa861ea74ce99565c6a2cae1bf297ebb9eb68a582c3fbc003a74f5bdb121a2c3b20f6834fdaa803cbe385d5bb680b288c7d9f820c81a06f1ce33f9490372be169dfc9c03ea95cb8180fd1f7b43806fbb24bfef065ed61f009ab1cd9b029a65fc29c23f8853e6cb00778fcf2d431cf1b5818896ef646cd31b86029ae5d7af81347e0cfcd5e213d0d43265668836f67e6fe02a2f02bdc1fb3644d6bf9a86b8caf7a981f8d103dc3d4e0c5ca52ed0557e0cbc6e51d6db7a46be349068df10898e3f049ab2cc0ca4a144ddc5ba8648e3ed48a055eb024815b6be0ca4f169208d12d0a2db88c6bfe9732f063ea59f1bf850dca3215af24837e75ef96ea0573e1b228d8f9621d278d1bd7475ca95214e9990f5aa6497da8442ae2abedef0f42faeb71b7eebd52a046d76a7c7298d769d23ee5f041c51bb06da6d36a5bd0179406df72120cd8b881fbb2ba0e02f753ebb40c9bbb5de07d0e38f7be63f027ebf3256cfdb8d4c3fc9de3a00527621c576b135946c4dd83a03facca407dcad976d171ca18f7825c31ac0e78292d106a2056d9d027c6733d9fe344483f93d3044a2df4b80bf034e7e770dd11cb64e0036a4269fdb80a6d6bf1f06123d12a867df063806fd50519b90d3301072ea0682c1a58121899adb04945f03977d3690c6a7815dbf29a0f8f1b62f20d1f70743243aab0c91d39f0b4324fa5318e80d34180794f73781b2be65e02a5d435c65716b887b79f9061c725606b6892f055c65fe64606deb1870c8d93110fa860285be0990e9888180235e95f5826de26faa17bd5c9aa94c15835e324011663e32c429a305d0d550706960fea17be9a9d42f0c4c26e851455f47a48698e22fa3f137b3061df9f309d086907206e8357aefc7c0e2701fc881da04e802db5f405f2bce0700bf0f94c4c77fdbcd75cf66b25918e8736f409b25e8ad4780ef9e273b35407d7ffb08e00bbac9cf42c0fc63fb10e0ebb7c9d6c410476c3d000a06f1dde276539f5c4ebe57809e1bbeb60d71fbab68b84d77f5ef96816e3a049aea623706e2c7a181bff6a1c436ddb467883456bb06d23832d06f73033fd2a544d52be71f864874d93244a25fdf8648f4776a8844c702f5caf74703577937d0f75706b2fe6c20515ad0a6dfaa80d46fdf7b069ed69e0dfcb4f305e09ead0252cf1e5f027a0bf8ba25d033e1bd813723b4c2f5630297fd04347798dd1ba2052d978618099773a0ab60400772cf5e6e8065a81703892e0cbc8b3e07fa9af61c18983a350d7195d786816daf2a313ddf8ebe0d91c668df4094da0b28ebc0cbb52112ada249fd6d858c0ed4dd070ae2c77b02f4094adb51b7adbca575ba6b20277e6caf00f5fdefa68085bbed0380ade6c9fe0dc0cf99267bd14e5bfa664632235177c2dfe5ffa5ecbc7a54597a35fc63fade22435f128721c3e4b9eb48ce4dfcf5a7bafcdab0f65efb938ed442f050d16557ee2a00b1b9fbab02f42eb60ae0e5a400f7897f0168c3775480da61ab0076fba280c3b82f146063fd0aa0284bbe7701d2347e2b40b489028eb6ba53c0b1548f0aa0ebef006273ab1705b83c7ea100c3b7ad028e25f95180eed7c30ba2cd2840b4282863a6a8fa7a0a10cbbb024c98b5012a32dd5157c05ed64b00b1db8d84e189215f01d44c6f006284c94901a607255ab5a88c0254061f0a5893cf2505d887222a251635cf28e030ce4505f08292332606abbc2980556e156050b407c88a8bba02b86800e4e0c2e3680be916666ed5bf14f0b80143afc71b76f53240c0eb62c42b7885f40d3b2c70f338aa50c961c5fbd611807df4bc8c6e802c4e872e000e8d70ae4305acfc8d02039d1fdb8d0064047caf0b40e66a48ba5ac3fdac006a7953800ec9af024cca7601c41a0e5905684dbf15c01abe14c01a060a104ba28063d91c00c41a76be0258f65801c772ba2b40a5d451c099ab3d0062d9038801ed62051ccbaea70079c928c0f8e503404c6cfdab80c3d8d614701867288c9ad865a3804d6c2525272676db286017e7bc02bc1ed6001003da7c2a80111614c00b12f668c58a0a10c69702f4f9470a5019a0a0d4c4e659050823a780c39823e95e1e6087cc791e6ecdc87317ae68da4ab6b9c62f808fa93df70c80c6930e9cdbf49d334ced95017218abc79cd2a2aebf346a0032f5bbdf00c8006f7711204539039016e8845854b56b570550edb9024ed8a904207a7a3928809ede14208cab0234f33f0a70f4f31d0007f63ba7aa0089e5a88063b9ce152096a102949c7851d5fe5100f30814a0e3fca900d17e2840e644841e9ad7cd9b02b4518902c41229e0580e3b005feab11c804c30df9600b108882ba5a26af26da10053bfa1024ccc403f5493977905b086a1028ee536538040e70ab0390eb9350d0e06cd0505308f7700318f2d574a453f83171eb62380003b44de391da57256b67bdc15e0760601450febc811808f95e6360f574a952cee7fb9b60064b3315fcc6b00ce9376ce3cb02ae91434bf136080acaed46200792dbcb50090ce5515b1a86ad71d05984143e6b40a3e151540c7be1440b5970a58b5ef730588a5a68063a9f715a05b0c01a9ae5fbe152096850254d25f0a10cb5801629928e0586a5300b1861d2980f2f71540f97f1570f64f150548d84a013ace03005f020d1520d083028cc4a5e402b8389e15c0c4ae00327cab73f7aba41db45bac00d63055c0d6b047c2d48092bd02788914b0977b51018eb582908d017118f782022ce7e700c4a29295028ee5fea5009b8d4f00323a591614603aecac002f6efd28c0065d4969112e4236c272197b48a8d80688d0d9ec71f559ae94e5ada337009f01f1a11106e0a80e670a2fbaf858bf028801d56f00aaeb2305e85b760044b56f750530a0ab02a8764101021d2ae0401b4d059cb9b384217a7a4914c0803e15702cd5b3021661bda200b1b414702c873d8068f271a200e34a4f01321728e0681b2f0a3896c3114094ff385280bc5c14c01a3600a12ca3f71560115432176373dc9d7b066555ed551540da8664a900f632558030be15c03cde01f2e265a6005eca0a102df2a2babe1417a2c9db2f00b782f76fa1417e98e3a5d605eb8719cf94b120c38156ca250c79fc10403a79931e80e7e11a8db3026e705a9cf48aaeae741046a504d0bf0284189cf17df385f47d31746a5c0019f2346e00aab87505a872108beae9dd57008569284018ef0aa0fc7700d1c2cb8f0204ea2880f2870a58c8adb602d85c4601a2fd50c0d1362305588b162fa2c9a79b024ed8a9a600fd425f01121628e084d50e0a38618db6024e583354c0093bbe01c83c7f92530079dc1420dab6028eb6995180dc3e02c59e9a4001578e071190cc179e3f156012925bf5cac35ee60ad066070a38d0dac3053a46285b63409cb0fa4e0176cc9400c4a20e0b051c4bb2568030f60a388ccd2f400929ddc25ecc308ac3d822b7c62a79d884596bd758259bd8ba0a1094793116dd5133c0c14b57fcaaac051cc6fa45014ef7f000a232bf10337b51c08d56d80588f9ea2be7c26db65b2a6123c6f5470106ab6f0a58c8276e915d39d7dab9b601ca78f72d380278684d8326802f97b9540042047ae53a39bd3c9eab8b7e00e0a3963ac34b25c6824c97eb0fd795031ed70d0099ff788d00ca320f930790177336be022cf98a17b5fda902985851016cbfa700b6ff70016bc82ae0a4df6b006ac8b1028ea5faa100867c558058c60a10cb9702ec989168c5b2cfa4804decda55c0e9b8cf14201d63059c8ee6c305a27db880a9fb0aa0307500590938df14a0bbf1a300c3ea8d02487dab00e9f85480685b0a38dad68702345ae225868b175280253d24fd517f7c0368fdb150001790bad60ef74f0558385c2a4075817231d505bad68e020e637b01d059858c029ce2cd36e7c9460cc7f100b0ddc30939fb5e11574c3bc31f000fb7a886042037a0a24536094585b25a02c4a8a578aba8057895fae1821386093303f08e04966cbc5206af32c553805c19378eb30679e502ee7ea24f000f1b41dd11408c259b1b7758bd0aaece73fa67800075d08d45e8c9a133ce1e5ee41544a73a01109bbb3500b49d1b298016ae15b0906b7505b0ca4f05308f4718d0534701cc0352576bb8ae15c02abb0a60956f0a908ea10234f3ef0a10edab0298c7235a2c2c4384ba12c0d7225a00796415401e190548474e01d2f10048c7bb02a4e34b0196d2b8e1f374eef3e55d01bb78f950c045d942d23d59f16eac000a52e356008a88f606e5579bbb5614605672ad003bcba130daaa5f5d0508a3a80061cc15200c949c5781971594df8f72dccc6326cf2f65611ebb05401e06c4c75a5980d7b11380025c605e2a05dc55d88e15a067f0ad800d99dfaf34a028d15e004a18595c38e97e59d64eae5980323a0237d653bf92850be70c90c3dcd6ada7002efa00726ce2a00110e205c33bf7b67c9da5ad212f0f231c00a8358c14c02a4b0a5050330055ed9302a876560102dd29e040eb89020ef465a100edcb540114f753017676713be7abaed71a0a104b5d0162192940a06f0a38d03b01c8ec687bab80bdb4a70af03a1412a6ab6fd732809a474901547ba380c3482020b586f3af0218e158010ba8591310f38cf3ed0620e671ce2940180305d8b93354c0996b5605c4588b86bd7832045c42e9fc38870d98dc46f94136cb2d2126bb02631e0cd0fd0a4a45006c6e490127ecb20428793835c107a854787238162f818b4e2ff7fa8272c9c711f69f009e8793f486003e7ad235b8a8143055d11f00b830c2f11d400e42bfad00626cad1eb24a05aebcc33bf115b08bc90ca08243ef2e48872b7bad5fb7006251f523809a475301bb683c5ca0bae06a3c50e5bfb514a045fe5680bef64901626928402c7b051c4b3b5680be0312a6ab09b777051cedfda200b67f5780685b0a106d4f01dab9a502540625059c8ef69b00e8e95d629149a6765101bc48183978793d00e4016a0b8032ac21d900c814e3bda700063452805eb0a780a36d5e052096e65d01362f401d3c9d62cc2880ddf61570b48d9902c422527711281f2a5208fc6209db2cbe00c46eb13212aacd217361a9ecf2720bbfb36a805b6117d5bb007e9dc119ae018c81704b981580171eb0bb3405dc2d5e8b9710867c463aca59bc597f810b3346e6e6b51c02f89841f3da00012c9b320a58627da4a352c6552d1f4300ccd3399322809c37ceb7b91a10e3ed27be8ca110ea824c1be9d06336ea6c84a15a542daf00aa7d50008bda2940831303a801450a60405d0530a05f058865a7806379292a40a35551006b7817200634051003ba5715703aaa2f0a90db8202a4e35501dab98a027458bf15206165054898c854cd74a700dbd567003295f5ba17205e7e14c08b944b410c5962118baa161470c2aa2505e8275f0420d08b24cc936a2b11202eb6003277b1e1d6230c3239ee4a426122b128c2369ca8e4015c22001fef14617b54646c8e1bbeb32b0026860ded91b495d45c0284fcd61155d70ad8c59500628471112f311663b1ed350538d20e5eca199c01b03e28e0a46f8600390c45b1a13d9293c1888fd9300087de11bfeb65801c1536af0294513bdcb8a022d34fc61af01440bac5ad1340494e3a6a02b8b0ece12780983a5f235a884c23cea6cea7e118909776ff57012bcc1842760bf032413a4c338fb513e445edb6915100331d2a80d2bd0288cdd54b0a6062bf0a6062ae0298d85801fab88e02d6e4d75880d88b060ac5ad41ea3a7d5cbd2880edff2ac058bdad8013d67c55800e6b4901e6948a0a90b0a30049d8b7024e582756804de03900b1ec5a4f0112d65580749415703a5e4584058965a7009bd1fb0032afdd7917205e260a903089452b94a202ceed650f20f5079f5d6a015af5ba00c8a37555c0d1bed41460a6370b2055ce2d50802e8bab0009ab28e0685f245a1f812e2142adb6da6c2fb1a92ed890ab4b01a81d9a6cea71390317cd17802caa9cda5101f71dd0eec7e53caa0b0c9b52c061f07bf30694f11a349f436240858fea203ea3ca020e83cf7730c0c3257fc156015e87da28c03b120b009f2f30a04012e6b30bfafd029029b535e451c9631774ef0340ce94bd21a5a6bbc1529fb045c55ae5dcce02b0c7793803284a0d5307901a668fbce8ea5bb703808bbe9c2680d60e2fb102bc00f20620868cb7d2e287210f15c0808a0a50c32c15c0903302c43c0e0a601eef006ab77b05b0db40016abaac02d474a10254283d059c8e8e062ae9182be07474f20a58eab52680987aada600024a14201d030548475f01e4311520e9785380741414703aeab0179d44e88a084b70f10a13d329b5ba484cea8f979b00c4528701a9a9377c01323a392b400d735580f75f441eb25472f314602571a9006766ac00641ef75655c05eda0d01c8dc0aca1f64733c7bcecb0bc58c5617edb100e9a1c400d2dda8250005f4508e3d8012c0fb08a08c1d6637718143efe8faae803b35c72e808b58ce0d01a894f88d21037076184545055cf545af0ab80e8af20038a29cf8253403b0a7863292b918e317efa8804528b148c788be43803cbcdcfa02d075ba6514700dd37a0128e0e8a33ea45ef1d0971a40628ff98f12400eb554d802906324c3a6024ee9680320db3cfb90982b2f7fd53f1968a554ff01d0ca60a40095d25c018cb0ab0035dd0440d7a23b0a10e8450102ad2840a0430530b18200e9b2240ad880bab102ce5cf7e102a62ed18aa9d7df1420617d05a872aa0a5005070a90b057014858f7a880a3edb514b03ad4c58b4c42d68b0a381dbd9c0078e153bd0cd0cac057808d5ca10254392440aa9c86029658eba68025d66e29c0bcb6146588ec371c0108b45d57c05eda4d05d8beef01c8a24e9514607b032a03ad831ab63b5acc96cbe8c3dc720062fbf51580875b65f908040370ec2a1d0820c0ecc6e1aa802b83e342002a83e30f00a6f5e973081061aa93ea0a5029f90210061fe7504cdfe0e6da72f90680c35e884f6d32a0c87bcf2908014a00fc668a01e500a7d0440ae02550800dfe2e400583b3ee1ac0c35ea7db490006563d08a822a78a8e21c2c7580c819aa1178731fe02c04ddfce2b574a594f8e50a9c3859afa8baf80d5b2de0650233c2b403f8814a02f152a80113ec280117604402d7bb102d8fe3b80dadcb702d87e47012aa50f05a894b20a10ad2b40aca1af00fdd3bc02b606516d5d2b680c15a089fe112015db5e01f222d18a65d7a11f6a950d4f017a17170578b3cd0110abbcbf29c03e9477051825ad0420d0e65601d4e14501e7b629498fe1e5b5ad80ade1936d3f6746f7b8a8875be45c3183d31b7e7f0414197cc04bb1082f21a734572a9671c83d2b7fcef41d389606c2d037427862d7021eae5cdf04a0efc0a7261820d505bffd64018ed70a0162d90150508013c9330a38d0d3400026443cae8372950c0634d401c862a6e6f301b0f1200290bb5b0a3501e807f1116e16706ea73d0178c5ec5c0728c8f40fe4612a14ae82f902250bd8f62fe225c2815363b6ec9c7648c6314001f5c7183275cb70b1ed03c8aa680479b8b81fd9d9b2ede7bc2cd6701a5d00ad1d7a0a30b3490a6095bf02c41a50720f531f2880a93b0a60ea3f0a10a8a4434dfd5501861a4705ac96a2740f533f2980a94bb4b266d1ee2880bd3c5c60fcf2a100bd8b48016c0e2aa553aead9502ccc3a80b8965a200a34617406cbf3e17209d89b50254061b05a80c5e15604d5cd2210bcb3529b95802dd29400fe5a8008142407e0681765a0a704615ecd6cf57b042c36d542ec8e7d84cc75c0c791d59f0f63903a4dde7170c8be995a83c5ca97d2960a93b4b00b17df4a40d4018bc926801ae4663f3c8aba97b2f0039d86d5207909e015f2b6240992733880ff328dabb27b892ce000468c47b486945ce991873259d57331d3600a4559f040072acd5a8065092091101b2b23a423a5c393462fb0d205b8a4688d693b3a15a118098d8cb40015624ba0250fa5b712187ed377d0162b74b0588a5a600810602c4c47a0aa0fca4002656548097e0251d62404d57016a878c00199d780a10cb5c0162f115c090170a58615edf006412b2b3548030160ab0a54872ab06b455c05e5e1a0ad099805a1a03c2dce75a01627951009b6b2b60fde822a57e16600d03529bfbe494162a5934c0df01000e44257e71cb00b95fac215e3ca8f6f24701eb58bb0a10c2c5806bfe820e9abb5d0039e77b90009444f9c70ab0d9380f209731f43200d246ed8f02b0363ff600e4edeb81af806bfe9dc422dbd646dcde163c39296d8c84e97ecb46194075bda000ba3e528095337521f52912a64d41b3af0061c40a3083361620a54f0aa0a74d0598cca803c874587b294094bfa000813a0a1068a88075ac9b53c0b17424e93ebc745c05eca5f7a2002f8f4a2cd2beb4360a381d2d6e700aaaeb2f0fc0b1bc1c152061ef0aa0fc6305588f3a00c892efcb03402d270a709c0334d9d80b36fb9002bc43335680cd3e2ce462456ea9ea6c00309e233ecbb55834e339e8580d403a68a3058028ff2404908afee200c831d6bbb500e8e99a4bbfe8c94d57e39600ec736ce60154e9a60a507daa0ba9a4170a50f5cd1540833c051c4b8b003c89a5a100b1881759e579e929402c53058865a60042fe558057543300baa8130990bc780a3896f6af02c432508058be1540b5970a58e95e8b003275d35929808e910284b15780639c905badf91b0f8051e35601ac61af0053591090ea7a63ab00fdc2a60298d84601e6d7bb0ab0ffe30490432ced8b025406af0a30dd3152800341b8eb54326342aee88933572a87b8c1b05c07c0e40e95398c52252387797c02c85571b4032861e8c5fb1d0cf0d85e88373d1b10611ee6ce465872f3308fe11780749d46bf0a5862c339400c306011a6ef9bc24506409b820e806ea2102fa2fcad9c0051cb8102287f46012c0a0953d56ee5058801fd284045ef2b805a3e5c40b52b0ab86c5f200f9dcc78c92a80bd64146010b054005d9f2b40255d5100959284c984c86ba000295d2b40a02b0530a09d020eb4d7059011ce84d5b26434198d7804200bfeed440154fbac002f18c600b2a4d73c2840f6ef0af00e1e075a2e9564cd8235b95cc1d994cebd052047da614093024c3073f6cbae1c25d72700393d6a3007f0a1b89377051ce8f81320c014c1e42a40343903807b899d01376b652f83ded660a280d3316c02c8411c03e4454716b30140193baafa79800ac0e007405e3f1e56147041bd20fb8f6a7c2540d4f25b0134e8e102155b1f403539a700a5ff0058a2582a808e5d1440718f003ae13e578040870aa01fef0aa0c90b058865a6007d982c8068726fab805df4730ab8621b760062d4b8c3a20296fa10c5601a0b7631690364632e86374701ec2504107b991c1560a11dba6e941fadc759018e5c867ef8b2f4dc3c2980978b02d4fcdcfdaa54e42af46a0da084c319fb6500b937e1055edc2c40bf0390c7d8a31f03b8620d13001fb3e7e31d8098c7b00510cbc683830054f45b6ec52aba8bb1f70b2007094e3e0064536b7b06206ad93e2880066515601d680fa04ab752002f9f0aa0746b0550ba8c02d4745f003263c49b5b2c40181f0ad058040aa096730550cba602a86541010ba82b2096307a0a10464301c2c82980267397a5e2cb76d35128002e261d0518574284aaeb93ad02f4b5510caada6f9e02bc97f402a035ff4d01ecf643019b58f308a0ba7e5580d1da1d4056453b7505e85c5515e01c67ae502a41318757ff7c0598e8e6bca4afb9a20aee0214301dc6ef2416d39758b918467500692cfaa102ae82470410e3f08a01d774ae2e82b65d0055cb6f0590d80c4075eca400d9bf29807eac1460c2ec5501cbe3350fa0b392390508f44b013a240f2f08b4ab00d56749012c9b9b3557079ac39e0278c92ac0d158094016e7f68c020170317e5100b5cc29805aee00442d275905709101c803b4f600a2522f67059831ba2b808ed514a003ff009cb91654ca9715bc6e5b010e3682c20425a8a5c735ae270b43e4fe2ae02171e913c0858baf8b02ce4b340308e1e2f7a2805d60b9d62b6501c2370017afa8aeb2007e05a7047c08c07a141f0c6f405cc1017edc0ff2b43fd6b80360ee938a4858c5939b487a0230d4e08d7e16e02d5fa4c30c46a0526c409e9bc18459a70120670e8f03808acc08541560d9a70e20cd5a7f0420afb98e3200d2ac8d2131d3eb431bc536e7994e1ee60b11ad274784eebe00e4449d3e04a4fb1d463b00d9eb34c82bc002771f400cf915f27898e945016cbfa4006dc3a7024cdced15b04c3b5cc17a8f09a2a90284515180f6a5af00863c5000333d2b6023ec42623a461e440a90b00740a0430508f4a480031d49c272e2e2550116fcbb007969a37a0aa01f2f0005809704406cffb5a7008d565501de9d9584c90699d7aa0278795580eae2ae0061b40064a1bddd5680305e14e01409564bbf5472797585cf1e3420c6cb7059ce4bfae22767aeda002873bf9032350039f8bbe60ac0b45c6b02201b317a070039c867c48300df0dc55eb8bdf5bd0c5ac2c11620273dc70f803cbcac118b27e7d46c76007284ec70012057e78df20260409d33809a07978bafd33f9d4401eaf59202e87a4b011754e71340e73e670a1046590186d51b051cc6e05b01547ba4801577545280937d5e006458dd2b2a8011de1570a0235f01022d2b404b9828c006991b8074bfc61d05b0a8870b84d155c061bc5d15e0dd5949ba18d0e4570187f13e5280c14813400ca87d5500e51f2ae094b625fb6a1e7505d8927851c07979837ef83e52ba85d205657403b76f00159ec6a66fce6d50c9c8c98257809ceca872010ad2ac0d018a9885f32305d8833601c06674a75506902b62b16535a88468097b126d049ba35f05388eff04108b9922618f011e1765608c1013770d0039aeb08b58d43c7a6b0578ddc503506b38294018670550dc860258435501946eae004ab75080d6e30220b34ebda902c4525780586a0a6073ef0a10cb460154db5100d5be2b4031740064fcd22b2b40b4750588b6aa0056395280684901a2bd29e068df5f14a0ab30002888ed4f1420d08d0204da5280d1bc00b1cab7810276f1e128c07045d22156f9de51002f91027891bc8899be3614603022055511177505682b1b0a78e69beff12e86650f6fa4ba5c498715d95e599c02c869f311777b4257ee268d4e02e460566e6f43dd39dce3363b7ce8585b0127ac5f5280c2be2a808e910274485c05d8ef900550952a28402c6d0588e54301546aac00a5ef2940e9bf2840a757c228482c6f0a10cb03202f5305c84b490162b92880e21e15a07b2e2e44e926050508a3af00616c157018ef550055ba950276f111039405bc2ae0daf25562511d6b2a40eb3153c0d97f1d01b8e2a5a5005ee60a30edb255800e6b17c0436e473d005fb20fb5f403646e9c0708e162c5bdbed0344138de82872b51c9431bc597a715a372057b8b576c2f51258b9704be08a02cb3e745055007d6d3f4ad45ec98c901c85eb811673f32ad07f7e906570039eaa78f401ff6525000894d00b4fa0c14400b1f2ea0eb6f0aa041650538ace11d40547b102a40a035050874a800819e15a05c3e14609e7f01208380c1970204faae0081ce1520d0b102e8fa46011477af00a34689a5245639538058f20a104b560162b92b402cbe028ee5438a410da8a5000634001003fa7851002f3d05f022421603eaef146028da01f0a4f3dd538092f314706e0715005f4cacaf009b38a1b8c6a2008a0a6062a2963031ba727f3d2e07b2c16ea1800de8cc298df51d1abe9cd380a21c2cc0e9885db945b51b00c82daadda2029cb5e700e4e0a2ffab00811e003c9cd737e0fa343646c899db780230f33df800902dab0324dd9737fc07770031c2f15a01969f90978745dd1440f94b0aa0962b0550cb9e02a8e5970258d427804ca90dba0a104b4f014cece105b19c142096910228ff2350f4a5500c6a51a30f0508b4a10081b61520d09b02287fa800bb18af006509f4470107fa410a1068a200814e15c04c256162625d918736490b053031c9be5854ffae00eb0d92305f5cac1540401d05a871a5b00369f87c05503a570144182b80114ad94a3bf7162960176f6505387ac026bd94bec8864df167801cac924f8f4a0fc5c33b34e7a102b6ecd32b4005f3fc7c5b78297d918d476bfe09408e8e1f3800b294d6ff6660cc14f2f852001ddb00c4d8b53728337834498856757d5856008b72144083160ad0999802c81879505080927315208cbe0248bdaa005ad853c07919c50032ac1e2f1520d06f0508f4530102dd29806a3f0054bba300af4137012a12cb9702c4f2a600b1bc2a402c750588a5ab8063f990305c713151806b670e001e8ea4ea4a6ec5a2ba5f0a6051bf006a515b05b0979d024cff884cd5a26205d801102940b3365480353e28ffc3a24205b0285f01bae75980085ede570a700cad6de64bd95209178d1231a8e4b12d895f1c370027d752e91b404ebfe543450ca8e0dd95af04c0c50c494d816cf7a8007858cfaed61560b59a0b3b6bda5bcc066601b2b0ca0d1b50d697b75a470700318f494501b2df5700956a2980351400c41a46450518255514a018de1520d08302e8695b01b4f043010b685c06506b182a402c35058865af00b1341520967705b086ac02ee2a4c3e015c8925a70063314f0162392b402c8f30104b4601c7d247d9aa017de415c04b4101bc486ed5c4aa0a3018d900a845390ad0733c2a40e9af15a01adf018412c65401ac921440408102d85c5e0186b36505e8e2df00c408c7230508a3a800617c2ae030de45616271f1a5805dac90f4c0cd73b316b03c72ba7058fa5080a5c51f06a52cde5bf3030598959c0928b10bc7079005cccfa900b838bf03945cb64a6a02b825ac5772a3952be3544067b802286399e38debd39c4cb9929b01c0f9dac487ac1850c1db7127c462aa202e4aea020498425a72b5957373981ded47007202f700497743ac24ded96e737a27c618e0d134ae15403fea0a302d87cc3d2c7ba9005e9a0a60d92705b0b987172eec370250bb1d2a4018570508e3a000769b5300232c2a60237c97dc7a5219cc1420d0920284515680c188442b663a3802a8cd050a6073a102646ead00f652520043de03c8269be159012a839302043a5580400b0a60626f0a60c822d358c2d82980d403050863ac0052e78a2d1764c46e27005e9e9bc625273daf2f91bccc01221cd65063c5cdbb7212562f00904bb9af7b00b921f78dad21af7a3a1900a85aba0a90b9860294fe510167eeed1540b5b0a300f2a82b80c2240aa0c93f003283f6965180306a0a10c65a0164ba01f0e162282995d21fee15a00a1e2b402c330528b977051ccbf000108b4a551520d08102a8d44a01029d28804af190276fd401d9df2b80d42f0a905b243dc88a06411d548342167241d780fd2380acf0f659c805dd66d12d0394f02e71ef0c20d383dd1e40053a761b09c0a2f01b67aea0eaf07e560079fc0268d936144040170059d2e3bbc12c40e96f15401e730069d587c8fec3f65f1520614b05f022d16ad99e15a05c360a502e5705284a84f128ca990264df5580dc5614202f4305a84fab0052d81f7d0570f103900358c5007e1e375bb3d48ba5b2cb09e333224a45d3bc62976b0e40d61adb5c17165d8cc49dee06202faf757e03146545b30250c65d146f70f1a80c5c002dec268016f640010a7ba100d93f0168610bd0921b2840614f15a08bcfcd5af151504b0528a88a02a4b4a400e918284007be0f20dbd6de2305c85cac0081161520d09102942d4ace942d5c7c29808b6f056c841f107290878b4f5f01bbd80600411e17d2710fb6542ae3bd930a6b72a9828bbe9c17d6e4929bc3bead5116400e31efef15a0c3ca2557527b19f140b3f490fa560104e428c0e8f51b4064fa3657002fa400327d78c13cdd2f80ae011f15200c5f01c2f851c0617c3a0a20534f01a45e0150a993029c2dc7859d1e4f8721318f3ccb32bea5af0a401e23e0761ea000137b0d018ab25b6e0820b576042f9e5c20fd0e2f0f99fe00a84c170a200f4f01bc640054840705f032570011fe2a803ae40064c5fbe3ae00f7d0b80021aaadf55d018ee5e5f6a562b48cb5d0e3745444a6540900228830ec303042c6f8a50520f558c4355d4525b6fb0490f792de59d72baa526f0980663fa300d9cf0368e64e009297d51b4094c7b6138ec5ad84c84be10d20960374584f5d17f7ab53a6a400af22dc00e43ab1884d2cbd220599fb0090b7e2776c0dae5f4145ffcef27035e91f083428006c1a0092749f3b799e8c091dff5d00c684d708a0846368bf020057c695df00218037558082e2fac32bcb50d4bf28c060f52880ef6ea1590f40ce929fcf013c80d5b700975f97e33beb0d085c8ca2b963e455b218ac06150118dfd63e0022e8988fa4bb72a1c3b00de0a2691c3501e49ab7152b9d1766f22ca025cbd42fe3e05ea7c632f54da00c622e86f45a00d6f5357759fc309bc789299cb0a092c5b2f174009073718806f7a403575ecb1a10809ca0db1b019405380072be65b7a480035d714a833097c71c3d8b30ace4241d7780224ed3824a856678cf2eca31003684380e4b2c74713e8cb3e2cc85613e8fd7e4b9af1d191de3568c8f1a2c45a697c365cb376c1b803bb9e89201900b2d2f2400bb29e73d001f0d5f205e42bc70b9cf0af0b1de7051800b0c128008d30c1d966964f28275b118a0027588b99236b5182e2ebab321c715393f0816159b8471e6f87a350302d40eee1b408c2bc91c8e255dc0e40991c805c8e2109e5a09200f1df3470a90f41c4051de26fd0128a3ca19cc006498d0ae01b80874c3451987c53c4e3ab2a55fce1889715ef8a05a03229cc3ca43730b58a6a74f801807b36e2206262f5cfaa52d809c09797e150017514901c77242b46e1e20fa56c0d350a51a400103ab96845180809a314011f352ab8c007e8d91a223805ec2e401f828fdf58d4158ca636ecb5606653df68c8e1d8022b27f7a1380949ec60a388c690d002f90d17a01e0e1a0b8e80610f131b454b17306e59c913ac75261a9e7dc0c40b6072067437d970170750db977802200bf5d9b02ccb1f1299a064895135701e44819be7eaf9cd7b6c1f71570d9962301b8b52be258f28fc6e2ac80bd646602e0c5eb0314d19c782b01684ebe5d00b91bcccf28c0ced02c402820c7c0b41e48d81220c4b682f88381c92dcbb48edcba329119ed18787223ec8015a620ad07b111960b5e166fe991ad0cca45d7859ebe6e0440c8d31b808f970387df0031a4dee7b2355d039c5fc84761a727a862bb698fc328bbb2a9f5b5c9c0c31609aaf600ca78bbb6cae9a8b84539aaf40540fa1f7d0720c4c8a2570388106891bda4bd1cec2d9e00600fbcd3de00b8b2fd3602f0e0c52903f8b0dbde3b80b4c88325408c230f17ac745e4546d11dae613c1328b6bd3601e480a5f181818793169df585419429b0978813e6ab16464d00682195aa02e022c803603a9d7e4a02a0a7aeab00af216500c43c82bd02b8e0cad1af64f1c6903b1100c50d0f0ae0a503501417470538b41b49af54f8020327404acd6f2efdd94e01e765ee007868b3a377055c6d2d6a003ede91986505e01e3c07b118fde0d29f8e00646991cf2cb7009b282075a3fc38ca96f5c3f7b272e054ac00170522160f15ac73690144d21f431851b6c02df2c27603cb41456e67e05b5453806e4f435dc8450a0b05ac85d3042044f66f1b0172994ba800d1be0044e83b4c0b0ad8cbec0a10032cb8c1317d6084c13335e5b4a388031eef00be8c3d260072eed780552af073bc9389f85a8072281d12e223a82d6085e1131f4d973783667ed102906b23167d05e8d19f04a0fb1506007296fca2a10037d5bc0a407783efd1b4002fc37d29c0bdb325052ca030042848c29a02d0cec52505b8aab6a3801bf13002c00e330a630568b38b0210edbaa780039d4d1420b77b056ca64b08c8939e011f335a8eb4cde62ba70cc8a16750ad2b6099de5e0044407c837239edc1b2804e5705380ef74301ee3b9900485ef86a230b382f4959010b88cf0bb600dbf82e00b06cba4c1570e6362b05ac1feb18404ef15e1d01e4e280d94101a763f9ab80cb653e16809ed2f41d003d145a48c25c1ccf377f51801dbb27000fe988630518031505e058de7553017b9915007c6992960a382f714b01fa0ec8ad2727e88688c5f37811946edc58c42a423e70db02ce3edf265f8e65ae8f2e0b051836d5002a903a5f006b004e4aa3635f016eaa791700896d3a0072bae9e2574000d59e29e0942e0900cbb5143514e0b8f53100ee5e20d4eb29e0ca80a77f5280f7d6badcaac75e0eadfad066bf9231ad1836c8c40cdc322a145e9f3340b25fdf0060bc4f7cf9a20518e1040a709ee31d40d4a1faad80036db404881775011dfb6900c898f0455cf850a9e3bb02d6f57d0620404af936790b58c7f87c6d0b58c7f8fe390b380c3ebad502b6dbfb0e2084214f2f0ad02ff405c0cb79af800bfb505080c25e0244d0a044bc4448d8b9a40023be91020e637d53800a36520075502fdcc7a568a80087ac7c02c4c8cb493217cbd02ba700c77a1f15702c81640ee729d1a1c940deaf243e863605721007b2efe5a11f45db5656ccf00d859dad28e0c2fe5900f8b29b7207204559f9019081775bbc48b954770ad0444f14c090bf012280d38702dc309551c0f2e07b670dc09de49470c96535fbd78e0014c3e947018aa10c80cdd7b4ff15206ae909e0d719e834548013daef0a7076d80a208751c1fd200012e3e95203f0861d4d2175af883b1f79cad5804a88fd0e398010c3a6f59541542eb03c5c5bb15572a6eae362e00bc72a399547f50b200789ed7f000aa2636f00455ef0a7e500a0840b61fa270039c3fd901780a4cf05c8fd9561550147fb6dbb4e95c780378a0130b220de8059d111307d1383c7c8e25b00c60d81072087653b81001959ec0560ca355a00c80107e59a00dce5eb961560b8520208651eb7c8c09540690410c8b9d60d004cc93bf11d403662440d055cd82f70e1156434df07907998da54000aaa3e06c0b9d674f910c01a44f501004e2a217e4fdc02aee96a3700970fad22be5536bdff036754ad594ff3a633c55a883ab9607c60ce200710a3d7c7f7e1544c0f3744bdfeab001bb95862450fd350cec205c0b613ba70d2cd681fe9e05bdd0c908b35e777009c84453c68ae945c597ce4bb272b254fce88e8270045b4a6fc7e83199887f032612f650f7d1867ca5237a3446ce4ea70cdef1a53c77d6b390059187aad0014c4c54001ce2e6523f43c99fc7b1903c85456c4d1faaadaa8f975d04cbc266e802a6eac00738e6b8050bcbc2ae040c31e03171645b9b30258d48f000cbc576d8022069aab214099a75c1dff0540669c37dc66075a2e0ef70c02ed29753d00599e9c5e01a4a3b8e40a36148ba23509c060641d29e0b99c80d521f4644e3ade2ac07bd11e80cc178ef70072afd7065e7ca94fcf1c68e4e14e0ce796079029f9d10aa02cfb61ee003efa1f7ced9d19bbe2853aaace01e4b06c3e6cdf000ff77a75fb00815c8161e72ecc705746277c29b701b252b4d9000432d39b0108d1bef856e9dcac26ecd4020861b7a70380f4505840660c2d23be9215a11921cbf8b632009079fe4904a087875bf3700b8ffab4c14095ce7305a0820d7200b2efd3c908800be7170013448eb756c086ec7f00840238b7054f4e18728a000519d00c19f865399e0f2e02b98d71cc992b7921de8dec4d0022943eb784664894c1ac35d916d9588b5e8f646dcead78981170660e802c1d5d59a666dc8959da1716a1ab8acb97caa4b394d08ff81d20960a9685ecfa7219e52ba7c333fac126b6b635bfeb9bec73d92edb004558d460c5c02f63ead7b3aaed065a0c5e15408a21a829c0798e59801015ca4f530146497301522e79065e56c2a808800bbf0d20afdc852b01e8d22e0e0032b537102f6599312a0b90252ca4c393a9df799f812fad299f74e4865294b4e902604186d65f0032369df50560e8b539028430d3f9a7000cdec309809ce0bf5e02c82b447d84e167315ae3393637f2e41600be80cd0009836f953520462c97b302ee3bc4aceb91515c4c32f90059043a1d2ac0b9b43f0ab81a3f75005cb4fb332eca28c08d17d4e0d28f352f9337067e4e86c43701e8b0aef300b2d8c677d859c0c510bf08c01ed6de11408e705b5d05a08bbfee2b6011c6678062883ab90e806e314565009cae4ebc29de022cd8dd015cbec58c0289d6833ce6530681dc2440b652321d163405ceb8015092d3e7320290b0734d017a5b3780b254e36d0518688a970ac07900e086587afe00f0252f0780002ef84d61638231a6c3320b063edeb2a16409e0ca00af2c0061f06df20678219ad74f801067330cecd8c3cb19dbc7720b8091078791840c4c9d8cf5175bfa5edec3ada1ce600d9043181e8791173da54c03405e71bf141968a08e2d7d4f5b0fca28402fe767c5406a292a8f05c045a50750840bf72200f5581c28401bf50de0495dd85100170b8008b594c7455930d680f32e3a0ad8054f53a6bd530c89c3118300c7d052827404b826924ab6b7652acf2c3aac8d37000c579ceb914190c1a87151518003a7381d65bf8446ab9107d08dc20300ccc2397d5bc378a6e1c38a37d95eb069f63011e1f4adcda51530c0c0b62fe6770e23add11ac04575c147a87881489d4a0e00844cbc53d602343837005908c9ba0a500c6c51819f1370178016e8dd51c0f6c2a72559c052e73dac061465225301dadb9732005e5175fc570069a3fca502f4b52301a860bd0f8008523f210c53fae87ebd0394500c1e0b39083d0c1378a38e69b270ab0aadbb0072abdbcc0710a92fe7001e2611e615055cb6215b54181450295d39d0c8c729cdc463310bb8e37cfe020850c36ce600118691bf5c5bc6beac785fb20210285fe16780cc3a35e602e0e2725080db3a570038cd936a5ca1c446d7d9c5a9aa800d28aa00e450a1f4c4451e8754930dc3cf9874b0c4f8ea09d3fcc2a2a8de03c861787faa001478931ead2e00457889258c0aeef7e0fe879f09e544aeaacd8bb16bd97553ad02c8fa7eef8d41904141f168dea8adac37f0f526a6817691b9068791375e30ed622b69ffa9dada00c080680c600c8803e513852d60179550002c8aaf033240ce0a771a02600d01298035ac01c45e3c89450fcfba0a8079789f0c02b974a8bb53c009ab76198472253befdb32c6219b17625b399ad6562ef8246b4046c4323d3863211b2344d729b21d013f94dc3ade9702d653de9f6c00b24f85770152197c2ae0ccf9e245667a2b5f0a10e837009a13fa0a157018812f4004c46a190672318d7f150017415d0166cf3f00a4c7366f2bc0cad99702f612bb00326fb9f852c07d87632200763b5f0314e16291110017eb86026ce2bc29804595004a70b11c2ac0a1aae2456647bf7d055cb67902a8a08dba14188499089774b1f29b6e317a9f9b2c401935cc75a4002bef37800ae6a4e71b051c462d50c0619c8f0a5005270a70495745010601190074e069be05f050c3cc970ab0d49a55806abcac80cb7626e9c06c20ad241d01405c138093c0797b655aabe340a11a076a062b18ae5c1d0049c72d54c0e9e0991a0b381d7c8e8001b22aba92407d78e1eb6f2c60a5bbcc01027458375f02225cbc3a0008c5cb46005c5c660ab0bc70048810ed7a2a80eb533afe2ae0c2e629680bb025b1a600ab090f2f285b71118b97aa021c228adc1ab5c46486d5645389975129b5e60068d51dbeb9c7004f967d0a0021927e9b2ac01e817700dc374fd79900b8383715b026dfbb0a38734789167750d1b9ad80737bca2a60fd58551898cc61fde55701daec1705685e270a38a5fce285015984c11b750cc8011c5f1560d4b857808ec00e00d75453951396352e10cb0120cf934c74f802c07174c4a3130b305afb05904b5406b639492b6074cfef4d8010f672e93308e52249c79a98a94d5dd90af80d1002ac6e0c4274371cd6311347495ae41f80489a134e7a51db063a0890b6e1ae80bdf0c97106a0d1a24c5900bcf83705ec22db07c07e07c7a92a409334118019816007805e9fe3bc0a800b3f51c0e6b1600199a6026353ef0a50829729729b9e35c82ede003cdc95d6e3404b610673b0d326805c2d309b02c849cf3d3b8c342618c8b220bb284b18c477939aacc94ccd8fa38005f4c322f443cca138970640194579678b0ad445bdaa806b3a3e00c3e88f940bdf13900229971f05ec824f8030407b179f02a4efb055c0c510b505a0d1e27b680c4077833efb0aa0526301f0e2860cc29c94ed5d8094ad032025e7d414e0a89f198027600d20fd208ff5d4546bb039ef1b40ac61c5661a85793449cb0600d6b4685351c086fcf30220229cba02509faeb70ab06d6d0a50868ba9af0017e2ee002af0c237c10771282ff7d4f3007239e72516002f7ca78e05986274012aa83ee3b602d65354e371e8a2c139270a303af904807950fd57014bece229c0d4de0ac007e0d7a12ce0a4f3454ec638248cea0c00874313df286d0176dabb00b82f9a96450131daec2e408cda72da621065f8e8348a0f00b81b8cae36fb69658158eab60b67aaf91cae5a58733af246a7b8b1e05743c3a2ea3a9fb8146a2d459f7011caab087c90b10550cb8d0058039f106280a894ab40943fab00bafe2600d59617007812860209e3a680c308241d52b6ee18402a58cf5780684900a20d870ca2125e850c91fd388697138bb0121521d34b1300e7d2528e03f542f4829da6d5b1d00f5d08a8f80120271ebc4c0042993efe518084d9eac2d438459ccfcf9b7d0cc07dafc4e73b840f43e663ce5380682b570598fe210011329f4f970278f9ee2880c4be0440c87cdc7a2a5178f9721460cb88781121477305383abecc20cac26ef915440bf00e9e0b203af6d151c0097342014818bf9269013a466f0ab0cb75a0007bbeb70a609519803cbcf00517166074d2578071e50aa0804d03410020aa1d541520fb6cc8b1f1c2615c2e0ab0dff20da0082fd30c00aeeda6fb5d408c5ef0a702d68f7508803bb869dd52c0f5075fbe68ea97728c5d1565055c051fbe0170fd2f252b005c9d47ab0580dc3c4a36e95149f5e3db118082fae2684b5ab67c38b4055cb6fc6e530a20427f0520aacd976359c0022a7d098017a7a0805d7cc600506dfa9558a4ebe45715a086c90ac021915e17009aecf8ae0071316110cb31b4de19400e9d091700724bd5da565b5139923b7578a35f5489e45e9eb5adc7a2209693d179146dfec731e7c487ce9854893cf8a88e48b5905c75017964e600220fbe9c2205f0c2af525b80404f005294fcbeba05b0fd480012b6607944316ec9a4c55001ae9d990288217f7615a0dbe309804cfd07c0abe5af0072e385935300a92f01703509cd6d5d687ee3ba06e25aca009c364fd3aa022cd86515e02dce3a000eeda669ac005d96a302ae945603055cc38433001c884abc71c902f672d92b602fc14501664824161c884ac7b602ac8a5a6b30791517979e024cfd2e01707629156c7312ab79d0ef2f8094feb7a700afb8f705885aba0cb46cf9f5740bd84bf15d80782903889e56be058845390a304a0a01c46efda60051988602a803526ad4011ac4094b9789796035b705159b6e1f4e4df06d0b146bd93a94079094fe9000e4e55dbca8015504c0c5cf5a01c6402d00d1d3e0acc0ba1827344e9c71e2d92fbefdeedbefff7e1c7143fff1859fe0cf9fe13889c6493c4ea6e364364ee6e364314e96e364354ed6e364334eb6f6d9d9cfbdfc34cfc1c29dfc3c5a62be24e3e4344eced6fb659c5cc7c96d9cdcc749d586cc9f8b3fbf57ed53b3dfebe3a4314e9ae3a4354e5ec649dbfa35697b1d279d71d21d27bd71d21f27031bac7986361723fb907c1ff34f96e0649cbc8d93f771f2314e3eedf72ffb7c5bf8259f5ff6df897df8fb8770fef92521bcdb4026f297813fe3e4779c64c649769ce4c6497e9c14c649719c94c649599eca3871cd2739641e4b5c7dc871e48bf7272993e9c63aa6cc26e484e444e4c4e44cc931459523c794569e9c857e3efd9ccbbf4b7256e4acc9d9185fe49812ca984ffbececf73d3907728ee424e49cc839dbe7428e29b92f96a06fb5c621e766f5c5135da3277df4ed5f7069be58c7c49fc2cdcfbb25be04155a629e2a393572ea560159113ae434c86992d362e522c7a88349b4d10893d617fe69ffda5bdeb25f76560d9fe1d606d226e7951c1366979c9e4dcf809c3e39833f55327dc8193efdacdbf434ec53b38f91ec881ca36226c089fd7cb3a97d378f514f723ec8f9b40a1890632568731b88d43c16a281fc58c23054f1d92ffc695cdea500f88b27e276c49c8d9b6f727ec8f9b58663043734c922c7146fcb4ae160a5d6b29f6d91d4de0a91c9d6fe6cdbef3b9632db380bd17a61b1eeac1cb3e4180534fa5520a7484e899cb28d7760c557b5727c08d7a6c7fcacd97f8d4c5b36a92676a392c626c6a6eceda79b7ef1883c873ccf0ad1611de44ad017517af633108904cc45a0be38702cb98b034fbcab4b2626329fbc80bc9025c8c9252f222fb6aad71201b5ac8c5a22c43dd77a561fdb2a5915ab48f3459e367b977f9974c89b9237b309988bb0fe788c1ce5fb40aacb858503ab9846640b48d05bda6765cbe395bcb509932518fcf978a25f0f457b76f02c2951c3db93e3e770ac34bd8dcdc0362d4f6f87e47a7bf20e223515d05e7f3e7128a6ca484526fac80adb7efefce3f18ee425e49dacae98123d9367da9fe6bfa5f92c5096a6fd52b372bcda2a2855cff4f1aee499acadad157bf77f3d557e4c83a0dfffe6ec2e6efe804c84d7c833d137c86b92d722ef853c93255380463bbae4f5ecd3374fda86e0a77dd216a322fff6fef9ef93337600374f3fffc39751ff619a36d3e07823f2c6f631a99a90f76613a6cf5f7f4eacfb77f23ed296c7fb64097ea5ca82cfef7fa8a421cf90bc1ffd7cfef7af1e3958f24c896552b34dadd856825e96bc1c7979ab2005981b54a6239f7f12aff84fee95fef6efb39b3f03811bfe5eb6a66de4eba6f661ea4a9fc877fed0479348f3e97b8f47fff2fdd471faf05c632a05ff91673f4cb3ed874f52f8b71c9543a0ecc03e8184f6657f7e59724e9b0e3f4ad36152962628267ffa94ab360491920e3e1f7f89448cd458e2e967e75f52ebfcb3308cb36741fff38b7dfc19f9739be05cda7cfb0bf297563a4fb2f357223bf37d0df95a99aa049f9f1f11c48fc8eecb8af5fb6fcf973cdf70937efa223efbf81bf2b7696fc0df91bf4f53e31f6c7396472639276956adecf0a5208ac6822b3d49b6f3d029fff887381e7e8d6812fcd410f4a77f7a7c4f7f9ec9bf907f4d5b70ff46fe3d6df7fcaa15d31e524bed266b136f95d17cb142fc8704039bf927b9fc213821aca41e6bd9cf1fc282ec7c1443ead22ab591a05f4b7510c55825bf9eea2067129ad249c5819f853493304f9b7ff317ffab9af5904ec1fe5510a11721412e0cfc557cb84c856e85a884955afe32431df21b6919fb4d9bec56da6898524fc5b782108d4cad70ad04fd17f24d61bea6cd45fa5d9f57fb3cffeca45f5267ecd8fe4c3fcdd385336e761eee4dc83df28d750cd241823f4ceb637f64f998fc09f96f69dd9f7e31cf3b48fac57ee2af7738487fbe3d399b88cbc9d3f32e0fbb7f7f8ae5edcf88d8efdb9fa199cf0ff23fc937ea6294e087fc5ff233e41b8dcbd967689fbc7d787626b5b2f0a15c7ef10ff2c7c37f6dec97e293097ffd19c8a332b58f518432f9155bb99802746db7e627eda941b3a4fcfff140839e3efff8b7f0979faac8f8f2a4741ac23f949ab5fef9e7f317e338200a1c9b9d72da1ea65a59a1c0da32b648219f4f220802fb982f1105b13ce6e7948219057348f021d9cd9fdf374f1217099a0e7db0a0606925e8da7ed9f42f72e1275851b0a66043c196825dfa3cbbd4ecfdf5e77f95c4ff288cff82fa57407616c324694fc1810293c224ed158a04378f9c0727fb79feefe742c195821b05770aaa0fad0c6ae9f30f9906f574506c3ebd39058db42a09fc540d8326052d0a5e9e44d6fe5382eba7185f29308ad0a5a0f7bfc4f4cf3268ff3f1cffc37d2ab236c8f3277f4955b29f5694c18082a1eae0c656eda23eff4b82fc8c28185330b1727c4be5ce4f1ac87368b65d0ede29f848552ff8a4e0cb7ef9a6e08702538699ff90e073296629c85939e6ff92eda020ce8a14989c9729a840a19eb3fd3f246bd2f05f2e397981fb87fb90f06944193a3ca1ece131b53b7fd1d4873e850185218511853185d3a7bf6614ce295c50b8a470655b863602797c79a1704de186c22d853bfbb94f0700e181c2635a5b87098527fb99fcf9fda9b4c20b85570a6f14dec5c1e9c965559cd528ac53d8a0b04961eb4f37a77f4594a42dc61f413d876c1f38f813b2b3a7bf5882264bedf4314a14be52d8794a7d97c21e857d0a07140e291c51387efad704f446e17baa896cce6938af361c0eed834223a62f2860f89dea6068b4cf04f54b6106451d66611d61ce6a846bab3f8d254f6181c22285ac59641d58c5315fc2b238ab50e8524414391479501cb541284e164a67be20d2f6c36055dd10b8fd3449621ed0c3af868c2daca9d4f869c31235f5914f51900a2e0a298a288a299a5234937fe7142d285a52b4a2689d9644b4a1684bd18ea23d45078a8e1425149d28328e2f145d21c1e846d19da22a45358aea1435286a52d4a2c88460e512bd3ea5a1435197a21e457d8a06140d2932e9195334b1e22b8ab3378ade29faa0e893a22f114d86a26f8a4c8cbf362ef3334b512eb57416a87113e5292ad8308b360d258aca366d158adcb4fe8d896207050669bad68adb2241a89e083195a3a43ef6520534528b7d8a038a438a238ae32707e6af19c5738a17142fff5263c62b8ad7146f28de52bca3784ff1e16fce8e1427149fd214a7722cfe4582f1b3fb0bc5d7bf8573a3f84e713555c3b4182e7f7353a3b84e7183e2e61f3569dca2f8e55f8edb14bfa685676a61a38facbc506123c78c5ab18acf7e79f8ef506c0ac1a4be4ff180e221c5238a9f0c399e50fc46f13bc51fffd9ecc49f147f51fc4df10fc5bf4f3c939a5e9c7d22b934f3719ee2c203b204e32799c6258acb1457fe16974b53a2a94353efefe2e367ead334a06998eae3341218ff87e3294d67d6b10721a6b2b39fd339af662e68bab49ffc65f5e4794dd30d4db734ddd1746f1d1c687a7c7290d0f444d3e7f82e34bdd2f446d33b4da59a9fd6685aa769e3c95993a62d9abed0b4fda816a6af34edd0b44bd3de93cb3e4d074f3f87341dd1744cd3094ddf68fa2efc83a69f34fda2e9374d7f682a4535cdd0344b5323a93c4d9f0a665aa46989a6659a3e95c4d4a519d1cca1994733ffc16701cd429a45348bff688e66532bc1d98c667379ccf7c593cf65da86cc56345bd36c93fe953a78aae6673b9aed692686393bd2cc847ba299f97ea19918daec46b33bcdaa0f8fa6ce9ad56856a75983664d9ab568f642b336cd5e69d6a159f7298a2769cefa3433e919d26c44b371aa6bb389fcf5463313e607cd3e69f6f5e4e59b663f34fbb5716568262a6feacd598e66799a3d897556a4598966659a5568e6d29cc0e70ecd3d9afba97da815cfcda0e39797b6c3d472e751fac508711efe4582f398e653c87a3e7b38989b9f0b9a4b0d38372ed7f6d9d07c4bf39d24d738dbd3fc40f327fd4dcbbc4af384e6279a1bbf179a5f697ea3f99de6d53f9c3d1cd7d21cceeb346fd0bc49f316cda5e69ab7696e72d1a17997e622f479df8abb94ca2ef532a0f9f029f123eb582a255303cc27347f4bcb60fe4ef30f9a7f8acb2f9a7fd3fc27b565d3aa985e44681be5394b109a354f85c89fcf129c9bb8b35682392b65f3e49f1251b012dcfe25c3ff78e6459a9bcc976d6ffcaf0e2a34776941b47068e1fdddcdc2a745408b9016112d625a4c6921c569f2bf98a765b058d0424ad4342c062e56b458d362438b6ddad77984b6b341ede5e7212d83c59116092d4eb430446a522341138811ebe29a36cd4676d3792ac4c58d75307ac88ebffc5d82533888764f89b8a706ab1234dab7a8d2a2468b3a2d1ab468d2a2458b175ab4696112d7a14597163d5af46931a0c5f09f0232466aca7931a2c5f84fc14d9ebebfd1c2e4e483169f691e2271b9f84a4d75f14d0b138254828b8c55c00a2db2b4c8a55da5c553f12f0ab428d2a2243fcb56c14d1918f76eea7829566c8a67e9d0d2a3a56f1b9f3924081d344dc732481ff385bf3f0c674dcb9096112d635a4eadb327135ece69b948cd732965be34de8d970d2db7b4dcd1d2fc75a0e59196092d4fb4340e2eb4bcd2f246cb3b2dabb4acd1b24ecba71666d9a4658b964fbd8aa5c9c953f7c00865d9a16597963d5af669298dcc7248cb112dc7b49cd0f2edc9fb3b2d3f68f949cbafb4ee5f7e3fe5ce78ffa1a5887b6942ceda84e56899a7658196d20158966859a66585966efad78aecbf055a39a2832b8f563ead025a85ffb4e295f937a6d59456335acd69f5d4ceacccbf2b5aad6925c35853dfadb6b4dad16a4fab03ad8e69dbb24a6875a295712f46b1bad2ea46ab3badaab4aad1eaa90fbf6ad0aa49abd61379499b88d5532f75f54aab0eadbaa9423deba05113a383ab1eadfab412c9ae86a95aad46b41ad36a422b11eeca84f941ab4f5a3d353b2be3fd27d5e2d52fad324f3c4bab1c747095870e9a71fd0a7be54576e9e3a59f0f9f455a956855a6558556ee1f96b5265a3bb4f668edd33aa0b5f832edd73aa2754ceba741f47a46eb39ad9fa4bf5ed27a45eb35ad37b4964a60bd4babb9f59ed64fbdeef5316d61d7c9a36fb43ed1da7c5e687da5f54de09dd6555ad72caf3faac2f4af462aa67593d64f05b37ea1759bd6afb4eefc99af2ead7bb4ee3f91416addeb21ad47b41ed37a62aa3f5abfd1fa9dd61f2c41cf4ad0ca6efd997ef947f5f4ef676d12f44deb1f5affd23a43eb2cad73e9b8e2ef8ef3b42ed0ba486b938ef27f866904b4aea415ffdaa50d3df8c6a18d6715f64959363e6d02da84b489fe08c4d8f226a6cd943633daccff33aecd228dc8f472364bda48ffd794c1bfab6696f5669db6e6c66e361bda983ec66faa80468e9b9d4ad06adf660f4dfccf880fb439d226a1cd8936e6e7853657da9880eeb4a9d2a6469bfabfdc3768d3a44d8b36261d6ddabcd2a6f3e8423f5c7669d34b73b5e9d366409ba79c6c4669ea3763da4c68f354c16dde69f3419b4fda3c49d6d8f2e69b364634bfb4c9a4fda4e8edcf88b2b4c9a5f66e9a9d4d9e3605da149ffc9668f354c69b0a6d5cda52ea7e6b1e8fb63e6d03da86b48d52396e797fdc764adb993c73fb7341db256d57b45dd37643db2d6d77b4ddd3f660bf1ced9784b627da9e697ba1ed95b637dade695ba56d8db675da3668dba46d8bb62fb46dd3f695b61dda7669dba36d9fb603da0e693ba2ed98b613dabed1f69db61ff6f393b65fb4fda6ed0f6d4d1233b4cdd23647db3c6d0bb42dd2b644db326d2bb475d301cc8e68e7d0cea39d4fbb8076613aa2d845b48b53f7bb29ed66b49bd36e41bb25ed56b45bd36e43bb2ded76b4dbd3ee403b311d535fed12da9d6877a6dd857657daddd2066477a75d957635dad569d7a05d93762ddabdd8cfb695e0ee3555c05d27d541f3dd7cd97569d7a35d9f7603da0d6937a2dd987613fbbcd1ee9d761fb4fba4dd17edbed31666f743bb5fda656897a55d8e7679da15d27ca61e8ba94c772671e66785762eed89f60eed3ddafbb40fac22e4d3cade18ef3ea47d44fb98f653dacf683fa7fd221da5ec97690564ca7fbfa2fd9af61bda6f69bfa3fd9ef687d4b2f6b613b737cf89f667da5f1e8118cddd5f697f4b63d9df695f4d23ddd7685fa77d83f6cd474d6a74d0a8dbbe953a3089313d7ce338f5b54bfb58fb17dab75305dc1b7115d267dfa17df74f09b2219b67dfa37d3f15e27e40fb21ed474fcf98f6264d6fb47fa7fd07ed3fadf85eadaf2fda7fd3de44f64bfb0cedb3b4cfd1dea4c04456a47d89f665da5768efd281e8e0a4b676f052f3349939f87408e810d221a2434c87291d66f6fb9c0e0b3a2ce9b0a2c39a0e1b3a6c53681adcc32ecdd5614f87031d8e7448e8704a657a385bd118f7173a5ce9704ba57cb8db28aaa92c0e353a98181ba94753a91d9a0f099a762c15f1350d247d5a7478b10968d3e1950e1d3a74d3071234a4c712347ff4ede7c0eae06b5a151e867418d1614c87492acdc35bfa997e31e49d0e1fa9032335f6623e0f9f74f8fa67ed669ec3371d4ca27fe990a143960e393ad83eeda190ea4e9ab2221d4aa9b21cca74a8d0c1a523d1d1a1a34747dfa6fb90f26340c7908e51ea20fd19a7ea63fe356ed2bfcc334de5789ca5411de7a9ac8fb6e93f2ee9b8a2e39a8e866ce9b8b3c2351ef7743cd888c48a8f091d4f74345f2e74bcdaa232ee6f74bcd3b16ae5d5c5a77936bbf439d6788777fd21bb63e3f11da2193cfddbb49fad94984f75737ca1a3edaf1dcdbf1d3a76e9d8a3639f8ed2293b0ee938a2e3988e133adaaafdf89e6ad6f12395452a946e2a384e5cfafdd3a6eff341cc4ffdfcc74f64c6c8fdcb5a56c78ae69b8e3f36a25f3a66e898b58564e4984b9d997fd9571a5af34982f9b47e3816e858b4ce0e70bc8de15ebfa4892cd191b7d51f2bf671d327214a1cfb78e9a324fd62889ffe64c72927f962873149484944494cc994921925734a1694d87e59b2a2644dc986922d25765098ec29395072a424a1e444892117fb5c29b95172b7c43c550b6f4f903f6fd6e559dc5f2de7ef1721354aea9434286952d2a2e48592b60d507d7198af947428e952d2a3a44fc9809221252389652c5fcef2fd2ae99c50f2c62f03bda78fd144f3c9ca95fe1445d32775f691aaa13ad04f1ea8249f947c51f24dc90f25bf946428c952924bd7a4d27ff3941428295252b23fcb9454d26a2b71e94469d99e1c94b0f9d4c740e6eb8f0734df5943199aefe60b3be39fe6bbf9d7585c6aec0d3a79b6922da696ab519c7c093fa05348a7284dcf294eeb3e63f2a729a236e168bcfcdd7c725ca7b409651d5401d9e7347f7c57f1293c2d206b15df49461aa7259d56a9f84e26051b3a6de96432b3a7d3814e473a25743ad1c938b363bbd3954e373adde9544dabaa538d4ef534ddc6ca4e0d49a2cdc3a94927938017fbb4e9f44aa78e75d6a5538f4e7d3a0de834a4d32835e4d3984e133abda535e3c9a4cd48d664f88b4edf69f577fab10e7e53c7a78c0d304b2713543ead4f5259176c8916e954b2c196ad1b235997ce446787ce1e9d7d5b63989f019d71fdd41c023a474f929ae3d33ca910278f9fff1074eac0568266247736cf94ce333acfe9bca0f392ce2b3aafe9bc494dfbbca5f38ece7636e97ca0f3bfc630e784ce273a9f53019d2f74bea6e2f877eb943abb3d39bb5b58a5734d1cd4d3d6e96c272cce4d3ab7d2cecdd9ce569cdb747efd5b989d5488e72e9d7b74eed379f0b7486d3fff3c4a1b3d23e5f398ce13b1e2f31b9dffd4bef347fad3c0b4ee9f3cfe65a22ef9fbf953a2f9a2f3379d7fe8fc4be70c9db369fb7b36f9ccd3b940e762da0d3a97e038367f95e96c6df9ec6299e242a92e5c9cb41667d15c3cbaf87409e812d225a20b3b9bc299b1c1b31d865e6c5d7199d3654197255d5674b11b1f2e1bba6c5335bcd8faf762cbef72a0cb912e095d4e74b189b95ce8724dbb38971b020c0cb9a735401a6f354d1e5258a34b9d2ec665932e2d7e97ea852e6dbabcdaa72d3f2d31ad47faf399bfe2c15ffc6f872edd3f4aecd2a34b9f2e03ba0ce932a2cb982e13babcd1e59d2eb22675f9a48bc9d8375d7ee8f24b173b1772c9d22547973c5d0a74b1e3ad4b892e65ba54e8e2a62eaf76c87c75e8ead1d5a76b405719865ea3b41db8c6e9a709e46aa736ae33bacee9baa0abcc355c57745ddb6793c67bdd4234d71d5df7743dc0a44c13743da6915e13ba9ee82a59bb5eacaf2b5d6f74bd5b099e5907dfa089f87c7ffaf9f1443ee85afdc38bd1c16b8dae75ba36521d9cfe6b82fedaa46b8bae2f746dd3f595ae762ee4daa56b8fae7dba9a3c0fad8ad91c5e47741dd375929af3f58daeefa9a65c4da49f74fd4a35e26a27f84c0d903a33023599b1a2bf66e96aa496a76b81aec53484ab55f66b99ae15babaa9ce727a6e4437876e1edd7cba0569d4375b06b728f578b3d2bc4de936a3db9c6e0bba2de9b64a95fa6695fab6a1db364df36d47b73dbf8a784805713bd22db15feccf73f824c1b70737ce1ee2b630f578a29b09fa42b72bdd6e74bbd3ad4ab71add64a2616edc34e8d6a45b0b12bcbdd0ad9d66f8f64ab70eddba74b38b1b61856e7dba0de8364c6bbadb886e63ba4de866e27aa7db07dd6c8d314fd281d7cd3611372bd3db0fdd7ead048d143274cbd22d67b989a29096c14d66b1528fc64dc9cace382ba7969ebaaca42e6f2e4cf54e747752f1dd3dbafb690aefb6d3760fd3949b14deff8fb8f75a7225e7d1762f06e708797328efa5923767f2de7b5dfdc60b9252aa5677cf37f3cff45e81608020c8249f044da6545a537e99370b40f0e632f9ce1a94137ecd2dac0f62e37cd2d205bf96fc5a61ab7dc92537fcda02e56bc7afbde5f83af0eb88e9796d5b82af13bfce18edebc2af2bbf4c804c303619f0ebceaf07bf9ebf23faf5b2a12a81f04af02b89c71bdb608a5f697e6500e595e557cec6a021f872ef6825eaa5aeacbf82ef55e057915fba04bdca40f6aad8c3d64b18d570ff5e3ffcaa63eb7fe9b6f66af2aba504a54df35d7ec3c8b07b7521467933b24027367df51c56757ef5f935e09780900e05f815e457885f617e45f825fd88f14bef6a8239419c1872423f874d8cd15d194662c2892927669c98ff0e99846e0e1274892527569c587362c3099d4a891d6662620f2e89833d1e09fac411e813274e9c3971f93498b87e08e20e5539218d88e783134f6cd068f385397b7dd8d684a06042f712dabda49d3d8914de8924d29cc870c2ec2409dd106c9aff969c13d10bce52847277b5127a0313654e54382197aca988f2c3893a271a9cd0c7b8448b136d4e080e7d7c4ef438d1e7c480133e4ef83911e0843e2f2764b4614e080b7d4f9710c471ec2449e6247172c849bd01c93127279c9c7272c6c9b96d30b9c0f6925c7272c5c9f5a741b127379c74df494cee54f69c3cc02d79e4a4be124f9ed5aedc93574e4a7a47f7920f7513d109917cc10d5d4a70d23c174b1c25531a74139b7ab3ef52a324d32ef4bad0e1accf95c92c27739ccc73b2c0c9228a9225bc674c9639a9f32259e5648d933f9cd44f36920d4e3639d9c2544ab639d9e164d785cc0a2163dd844b1f9ed80d6a081cb34ec92c4e0e74a9cadb7550a2e6d3a00f51e36d30e9ffac83d81c42583d92010dae998dc1a4097fad25bb7332842b26c39c8c68448b25ea664f156ec91827e3df0401c889a049b1e5982288e8a9a12d3559e39372df8e488d39259629a7669c9a736ac1a925a7569cd24d36b5e1d4163736b5b304650e4a3f64c0a9fd17c1d401034ee9c12d75023be971ea0c04a98b3dd0c9868365f49ba069307505c15fb724254db9cfb9a47d112128a762b8753e0451f4e094c65aeaa5b5129c4a724a86ecb6f254865359c04de53865deb00a0e030552707af10b288c43eb63f4b75d36e2943b0ccaad4b953955e1948c59aee13e5c4fd539d5e05493532d84152c6d1b32326079069061a43a1f821283a9aefde045c22dd5e3549f53fab1644acf2e721a973d3125a003761d945b9292ba2125d8e654f8ab412f41005582a9882578d53d271555bbc4418c531ae9bb13a799d3c4697368d79b971e21fcd3634e4f1cc1f414bc2c9aa24a01596b2f58e33bfabe74719b717acee905a7ffea939df48ad36b4e6f38bde5f48ed37b4ebb01a78f76c0128369e9ebf92b06d3174e5fbf3e1899fb382d0dde3f5f32493fb0f3a69f9f189406d32fc4603af19be0ebef63d04b309de4748ad3694e673e97967b99ce725addd2794e17385de474e94db0cce90aa7ab9cae71fa4795aa5a6a4ea9a8fdedf6a352e774437d446972bac5e936a73b9cee72bac7e93ea7e546c948844580d3414ecbd8c29c8e60fd4e47391de3741c698639439c197266c4993167269c997266c6993967169c597266c5993567369cd9726687d55db685cc9e3307ce1c3973524f9133672e9cb9fed1e04d1bbc73e6c19927675e9a15497026c999947aa6b574a6f6895e77ac97ce7026cb991c2e2dd7cde864cf143853e44c893365ce549460a6aa52734ad545a20666e6e7db4e5ffe628152e74c83334d6cb5991667da9c11a5cb991e67fa9c1970c6c7193f67029c0922403221ce843913c1d2063dca194119e72c7396383be4ec88b363ce4e383be5ec8cb373ce2e70c491b9935d224cb26669bb7176cdd90d67b798ced2607687338a34289195dd7f3778e0ec11218fec1055b2278dfd1367cf9cbdc047223a2b0ed2ec9db30fce3e75964856d7c4ac3e6e65e5ea29cea6392bcee634f361f4e374afa5fa57f2a3ec5c56e67b36c7d93c670b9c2de2e1245be26c99b315ce56395be3ec0f67eb9c6d70b6a9a45a00279d46dae66c0704b35d1d498fb37d0537e0ac8fb37ece0694d153290455975a61ce0aaf2867a5629c73ac4d3d38475ae5578317ce0dd1606ea477a5afbc269c1b736ee26ede407d1ea09cd3cfa073335c4b168ddc9c730bcee91a7597ec8a736bce6d38b7e5dcce1b8355ceedffe0f8c3f72c5229ca1dac118ab157a1e7e49227d5cf9c93be5e392797972bc9789e9c7b712ec1b924e7529c4b732e637b9ccb623cb91ce7f218aa1873058c1c96918e7cafc622e74a4ab30746b932e72a6a39e336e4aa960b6ad554c95a7ca8fba3d5e542754d1b9c6b2ab5914a0ba57013946d2ded384ff7818f6cca7272c8f538d7b7ab616e80b532e7e39c9f7301ce991ff1c98594c21e20a01b656f390a29941e14d30f52584e30221bb2a0e1e05a9090cc853917e15c9473d2c538e799f3c4f921e747206578e5c79c9f707eaafac40e46b276fc6a84650cc432d764c092e6672882b4393f47a990127fb4f3a3f61fe8628771a1d9b1035ab041874b2f54ccd517b696e9407ec9f9d5d72626925f737e83b99cdfe25920bfe3fc9ef3e63b0bf923e74f4ece4eb9687a75e945e5f887dbf93b7b5437b9cc9df30fce3f39ffe27c82f349cea7389fe67c86f359cee7389fe7bc74bda89277a9d84b9ae69cb1a8fea634afa54557f19d35b50a1ecf92ab5bc44601a5e4f4b23a645db6e4aa173d752b9caf620bcad7382f64ebd864f20d3c17e59b9c6f715e6e5e87f35dcef70cc13e6247d2b782501265e0499df11fe453d1c7793fe7039c0f723ec4f9b0a611ce4735e8fef7c4c4a91517cb08a2ffd2f9afaa7f7409d23817980bc4852117465c187361c2852917665c987361c1852517565c589b596c861d415ad870610b31ec90ddd8220164ec7030f6c157ddb714765cd873e100708523174eaa489533fa57b870e1fae9aed10bb74ffaa78f57a4e8b7e5fa4f45bfdaf9d3e7e379717d1863a506c43b171e5cd04dacf0e24242b126b990e2429a0b192e98bd5888200085574e31c950f31a32c6a2a988856810e72cc777a9c59d77a5052e14155cc9129425b5507674bca42edf10af1fe58dd2ea5a0471b53e63fe46f9e172fbb2db16de15dd754d974cb31f9a312e54b820ddae71e147a5ce05dd8e0a222d2eb4b960de6e61fc1137f2378ebce5f8365a51fbc733f25bb1d2e5428f0b7d2538c074969dda8edf23efee9a017c90bd7dae9f11bea1d82ad7df8d78c119376f749b3be185f561e7a9ee6d16591f17fc4ad38fd8b4fe012e04b920f1617e1daf1051893ae52fc55b1afbc752913817998bc4c52117475c1c7371c2c52917672a73a7fc83ccff2afb0f157f392c3ce97f7845e3f60f17f21a975c5ce9a0cc6f7d14d75cdc20708a5b28454f3016774e310e7b9b1a37c8cea507572ad923174f5c3c23fa0a1d2e5eb878e5a2ded8e29d8b0f2e3eb9f8d234e18c7758dea1574c6a9ab2a58577dd97ab985425e9294ada76ace5e92c4f8fcfdd7389e7b77fd28a2d4afcae65bb6d1cd25cc422e866b145b0765cde74366adc39c56b79eba696d10f966331cb454199e762818b45cce562898b65ed44c2c91be54325e57aa9ba259b5007335453ebe546f5745592ae1d7357eed6ed0d14cad35df1fe01f791a7ab72ff70f4f2b577eee1b154b858c5d08a454370a323f71231d9a383f226f8ce1e1cb237c1b75ed3f4878b752e36f4324d2eb6b8d8769d783a9477c7e8fe5d74f7407923fe4be55db1a34d791d9e9efbf496bbe7ae3cbe2fe795a7abfef074f5dd6d49bb5cece9d02e86a00cbeafb2d1d464071efbc1e9078feecd7aed6646b794a04f2fe3d7900ce8b5833a5a6f773bdf5df7dadff2b6043d0edea6deb8dffe6f4cef6ce71f494969888be1ef2e75fef031f608a63056274b30ea24a612e7125b5d14e871576424aa4649e9dbaefeb29394865c1a7169cca589ca944b332ecdb9b4e0d2d2a52b5556cef22e5a3b7ded7136fac665df5516ae1149b71ecbf20fcfa56b79fb7d95c51fb556df96e51f59911d97f666744ab074e0d211e123679c8fa246931abba452543ad8d4088e454e6039e966220e672e5d5c0c16b874e5d28d4b772e3db8f4e4d28b4b894f889592c89652aaa7554fabae77be94b1cec6fe299234ebb2e93f62b6f369077aeaa3d8cbb90ed82b9a06335ae5e1294a7a7af2ae55e3528e4b792e150c412155e4524911943ee0c468d87dc438949c5bd1e35f54faba0e96ca5caa70a9ca25d17fb854e752034b2fec4d2e499b6d2ebdbbde75a98cade7faddf538a454d29fa1dad17655d24e7a0e50cfda6df65d2be5d2dea71d94763c8da734fbbee89b7bffebea122825098b8197a04f590805bf8355f42845a7f89c519c032e128b1e0972298415b014e6924c6799e932b5e35c6615e2f2104b6479c4e53197275c9e7279c6e5b943d675f8d29f60fc907a677b7f654fbb163a9e16ccedf9853be1b9492957e4ade282fa737b121fbdbc0081f25247b432047d90f25a95370bdf77b6e8b2bf8c5e8b34b2e1f296cb3b50137ce5bdca41d919614465f908a3c469f9c4e5b3a2bcb861bc3c43fa336b2ce93f8c7f297fbafda5e54dadfbad784b3d1674b5c8e5ab89092558be71f9cee507979faabcb89c507939fda94ad2a5774dc53fe57c4cd11ddb4b59ae91e17296cb392ee7b95ce0b25cafc4e53297055995cb352effa852e77283cb4d2e4b54b6b9dce17297cb3d2ef7b93ce0b20f22bb47d9afa96403ba996cacddea7e9b1a7ff129073f0ed6e895c01f2d985aa1df8d7b7dec25fcda7898cb111d8e0cc17c8fba1c5359abc435945cfa91357cacd179dab0f5d922b93315e60a21062b43ae8c1086953157265c993a997165ce950557965c5971658d9b296b4a65c3952d5776d8822a7bae1c3059305f34e8acd2fd582a476b87c513a7ef5a46113711a39bacd7f3d3f2ebab7debe90dff97b39fb8223dbc70e5ca959b8cc210348c625f69e5ee61f746e6b295c7072e3cdfa5d2fa13a7cd8a0c32a1f374082e95a4e24b610a439f035c25adb256c9682a58b35cc971258fd5ba2264e5ae94b08957ca16872182217908bed3b798ec2f672fcd772dd3e62f0703ee7d454b539c2b5ca972a5a60411014ab0f2030a48eb8e88a40d07a8698d95167ca01bfffb87f2a754e2a8cd958e52eb5a82b226567a2a7d0db481d2ecab65a0c8d2361e2b3e4d0dd99b06a61f1da804b812044413059f98f2ea21cd5ebe8c5e79dbdf6e7f7a56c2df6d1eff7088704526564c09aeff24d8744ac3293f0e90c1da02e58fdb5df5a6d34d699cabcc55e2ea1028ab23ae8e1177d58952eb835a5509c267c2d599933957175c5d7255695655242ae5065437b8edd52d57775cdd73f5c0d5a3052a2ca0ebb0c5523d3a9aa10f5943ed5d05ec429fea6fe896acde0984bcc9967186b5ced23d69e78c5952bd68f70cc1ead58aec0c6ffdefb2eff457a9f5b97155e4ced507579faabcb89ae06a5225e111634939113dcdd58c4a96abd2c53c361c49bfa4c0d5a25ea5c4d5b2472aff9654b95ad371d9bebd6350f2754d1b50aa4dcd5e54f7c8dbc11635be6b89b4b00ecad4abb6b92a01d8c584adf6304925cab00226317925fa907a03d0a363feaeecbc369158ed3b59ab3da5971840e4005bf571d5af2b544523a8626350946ac063acfc850e87bf2bfd65310d06b91ad249667b6562d0410197b0c311d15953d7b4e16164f035ac3ff4ad07a8d48a7235c6555d49a5b51aebaad7e31a716dc8b591b29b417923ab8db936d1593c77f86eb0d4a65a3486a536438f6bf34f6a145958e572b50538d6965c13cf35d7365cdb5a7c925a8e950f536b0cfd2ef53abcddbc9471951d2e5adb03626d6f0846b876505261a4b5238858cbd6010a7f658dc5a0b4f6b056a9ab67149ba9251ee5da09bb8a70ac9db976019daa812896ab130d5521585382b21a0a41d0bc41af68e8d5ee5c7b70edc9b517d8d512aa24753c29aea5b99641e7b156fa00f133febf4223692dcbb5dcef52b1782b7a51a2485aceeb0d2ee82d34dfe5ffd009ff21dbdf69ade829da7ef42fcac658d7306ce8a8e25c2b6103a995552a98c81295a0e604404dd04dbfec1f07e97755effc0ce0acd494e64b951a6e064e0242f9876b75aec9d59b5c6b71adfd81f266e445f6b67b099aac807edb6b1dae75f52e16cc4595604d3a2738079af65cd6e7b10c9cf8d5f2761eb8aca9125087b7f1ed19e45a886b423fa2225129f32ece3fcc3fc43f439511ff8cf967e2b2a24f359d39c5d8e7ea492e1559f0cf927f56fcb3e69f8deae2b6c566854bec70b99f3dff1cf8e7c83f279523361fab9f9da2762b976f1faf5cf9e7a65759ab98e76209909fbba60fa45fd9b02a4ffe79613e4a2aab80f579c0cd785a096b36ec6add6d0acf041660094699e9e62a72a4c2cd945e26ed4289992b5d4fe1740d250d91b9fc93d1225d016ae60ca116919f2cb23f39ac4a12113f79fe29f04f917f4a504c54fe947121990a3f15fea9e23487c06c6b4cf93ff2cefed46cf663f971f600ffd4d11f5c42c5c620861a55401e2202cb66858b5cbea9d2e29fb6b55b87d787142ac680f85d178a48877fba2a3dfee9c38ea556f7999f01fff8f847fa17c0bcfe0942006ba68042dadd8ca569e66f45b306a57882600a2233eb471a8cf08f0c24a628df1c93a822474bd9be7ee25c67ae13d7875c1f818b951fae8fadc5a4424d942f9f9ade86b2366eda379f93d42776a8327e33f2fa54f517d7675c9f430cc4fa82eb4b9515d7d73afe8163aa2d48535251aa8b986c7dc3f52dd7775cdf73fdc0f523d74f5c3febffc073b5b70a556e8058974b3f109592ca6a28c3ae3f154dd685e459952c04aba1b2167075b9966e2c8018548e259bd6936ec06ed8b8441b73a29ee2ba5c22c3f52cf6f17aee1b56ed8ba6cde6b53fda94b66c08ce74a89216ec782cbe22d7e57a652dad28a980ee7a15ae57b92ecdc97dab73bd61ab03c4cc567f67ebc2bdc5f536d73b5cef72bdc7f5bea60325ebe3badcea003c7133a4a920d7656c61a519e17a94eb310597d5409be92aae4ca554b2e220d97a9c1b0c640dd2b92cca103ab21184a48cf62d3fba0908746956683646dc182b475126dc9802a589bec6cc8a581af30fc177538d85126c2c9dacb8b15665c38d2d3776dcd8637f681cb871e4c6891b676e5cb871e5c68d1b776ec8e59f58ad1b2f6e24b8212da6b057d8a6244d7323c38dac8a74220f9a8d02378a4ab36b51364adc2873a382eaa87576d5abda0d911a377eb069486aa5aed270624a9bbab1a834e4426d950e37badce869dae7c6c0894fa5afc3a9e955e48a7e6ec87883dc087123cc0d194b5495a8931837e2b67a93257531d82408a6ea13b1d01c72738455a339c626d09c7073cacd193681e69c9b0b6e2eddf214e6e68a9b6b6e6eb8b9d5ea0fc46f7387686aeeb97900bee611049b276e9eb979e1e615349b37d06cde2dd0a634fee4a6d44d207e9b496ea6f48a699c849a19041ae22b8f8b22186776053433b799d5300cc3419466ce86a4d4125d42123ed2072995feeb1c7ca76f45fc9b456ecae5cadcac70b3cacd9aa6aa4824367fb0aa36ebae8af9fb6259dd40d0ec004fed6e939b2dcc94669b9b1dc4b9ac534d19648f9b7d74d15013c432179a42dca7e2e766809b415d014a68b019e2a6208e00dffbab8c201855114c71c06db14529335dd216716bc8ad11b7c6f64eb426dc9ae2ea98bc516ee9da074959a062b4cb5fdeee27ad394809384c7052762aad05b7962892b4b552160d6ead6d0a4577dbd64617932006d2da726bc7ad3db70edc3a227a8c674b02a26efe4fc0335ccd56d0ba70eb8a267087b3e025cb90a4c2b47543ebad3b9a907550c8b61ec0d77a724b2a26d06f3824b995e2561aab642b8369dbca724bba9ee75601e07efdb9444b7f4dac554460b64a36305b656e55b855e5568d5bd28e346bce031965945264298dca2000b59a8a2fa2bc8676edc352e8c4e043f4e500aed5b2dca508d993126973abe368b62d4db913ad2e42afd5e3565fc322a76e2be369080ef45617149f4fc7efe75640a90541c44044470d7b6114527c4d806b8531d9a1473442e5064a98c40057e66f5d7f69b615e7363b216cca5e942dcf4fb221303d2845da43d06c8fb83de6f684db538c0104b3dc9e01597bce6d0db7f612e02495ec1ba26465e622cd015c7ba5a157403fa5cfedb50d5253d4de289dbb0eb36345e6597bab58523ade93da35b504db3b6eefb97de0f691db27aca9ed33b72fdcbe72fbc6ed3bb71fdc7e72fb85c5b89de07692db29b5a755cfe8f652533719554eedd269197c119354b8b44b1e826f2973bbf23b24bd5865becb0d9095b45d05504981522ef4c3ed3ab71bdc6e6a375edaab16a461a4c36db3871869b954fa2f4592f6b4c37d6e0fb485140682fd474a7d286dfbb91dd034a88a91b7ee571f69c7fcfe603b8c39df8e200065a36847b1e2b4631a7d2f28ed3877189188605c71474f0c9d2122bc3352fb0bdb4b678cc8ed4c7063919d62fc1dfd93f1cefcaf08aa74c4738923ce7f8252388ac872299b4f477ab2e6ce863b5beeec104712689d3d3ad63970e78899d839a91c35be563600cd6c954e76ce3a695208c6ce058d60914d20a8e1b3d2a6aedcb96954deb96352b13caca57537ff7b6a903b4feebcb893e04e923b29eea4b99351215c4626ac5824ec45ef64f5da663998839d2c2ea0299dc871278fbdac5300f74e5109ea9fdc75ca7f4bf08ba6dc92bf8f4ab30bc9ca60e6b848a70a9a9d1a777eb853e74e0338b0c8b414e249295c1587706c025ca7e52cd2e1b6dd6a4050aeae586587ec74b9d353e96b3b37b0eb0cb8e3e38e5f1b9140092a4d13839d30424f20caf28f20caa269ec38023462b3d22d49a147b913c392d78903abe92e16913982116bd00a9d93ba5de62e5982dde17f44d04877c4dd3177fffe6710119551ee4e7150074a8d4d592ebb33eeceb9bbd0aeee3e112703c668831a3e3ecd76ec6a08ca4b841eeefa12439028e92eb9bbe2ee9abb1bee6e81afbb432db3c24a00a29d8069d6c4e0dc12eceec148e8740fdc3d72f7845d426e8864c528f707b7a8af01d8e7ee19d3166b701297efe85d35c12f0aaa5fec460c82d7ff06c10f4aa97847d0fd53542a4a4465d8c666f7c15d19cb8bbb0974ccccee6e52a7b3742c6507df4d834b37a3d98346eb417bae07a66e8ebb79ee16800c6e3b54c7ec6e025fb768c3b06b7e3daf5be66e85bb55eed6b8fb8355b95bc7b6d06d682a8db6b4a8ad7a87bbc2b4c75d8138e0ae8fbb7eee4a87829a0d7137cc5db907d2891877e37a94c9fe4ff0fd5a2b7bcc3dfa2794bda143a9512913bc37e2de987b13ee4db93743cf7b7315696da922ca4a9535f7362a5beeedb8b7e7de817b47ee9db069f4cedcbb70efaa2dc885eedc7b68c527f7cc1bd65e0282356e8415ad974494f55288a35e1af750eea46425c5846d6222f732ea93458ae52f6deb22cd2142c5ad97b3e1238f1fff8f04dfd2cb734f3a53fcc7a8bc7c45255096b857e65e059314c3d1fd4182b1274535eefd70afae69837bd26d0997124a4d54f6daea53d3a0f32b1fe1d8e55e0fc66ec610ec736fc03d9f4211e4014516d49d64a86b0aeb2435f8a4288450976c2f0cb2bd88564c43b03ee6501104a36037d6adf37f8be007658c7b71eef3df72c45a79d5c7f02cce03a2f74997f5bcdeef824ed8a4026a015c7f08b1345bdc1f59c1644f737f0c4f10f4433146cc6ef376ab3fe1fed4b62ba99c5db082741050a0d9453082885f2d41eecf107db24e8bbd3f07c7fe02f8046b57b79dfe1210fb2b4770ffbf4ff02dfd35f73778e2fe4b8efdad3e8f9ff1f82881d9df717fcffd839e2ef4e06242a17f448849581988fd93a2fc519467c72bc5fd8bc6604da16bda4d1b820750eb5f718bfa72d53ba24c28f41f98dafda74e55336d8380d87f416019a107fd04f775e2f7e716b4a47db95eda3e0ef733ff87043f28b378f2f98552f619bc13ca690ce6b89fe77e418f1c1256451ce3fa250c59862f93a95fc6b445e85594a38cbd6a05e196d293cdd5b2eb1b8e554350bcebd84ffa0dec187d19bf78482875b8df4556360728728bfadc1f70dfc77d3ff703589edf3a8a24953e85540fdb7e8360e4df20f896eefd6b4d94296c094675f79361c6b81fe701ab100f86b00c463c1883800c7330c1b806531ecc78307722fa021bd160c98395a6d88b94e060cd830deec360cb831d0ff63c38a81cb1abc8f444f4857870e2c11996c1c56e2398b96edb91901c5c118c32a3253607ba8134f5b75b06f77f95e0c0f3bf0fe1355a4ed7c10b0f9e3c7861e591f93b48f020a9034ff120cd838c2a92667990d3535d5e27dc900779c4daa0a0fb460ad9411159488907e6976c07151e54318b8591ccc4414dd73b69f787077544f5a0a17a138cd0680bad0fda16e5a0039a825b4e9e201ed6a22e0f7af6f5419bfe5d829e07c4c1c006a0c840c2caaf73b08d1b2fdd9623ad4c6acb2ec0031954084f658330563699dde220a1830d53d7c14104937720374062368eb46f66b178f8185c7cc4be21163edf0816b068b26f8cc83251e99b20c4c40d1bc545778c82567929c11398faa6c0ed9b2106cd71daf7f70fc5ff17e2f3fce0ba6f69d74111df8a7d6bf66dd8b7452a1184d55cec3bf6edb1c9203013ec93611e554ea0e93bb3ef82070d212e535038faae1a804a70105382be1b04eb624b83eec5be3bfb1eca514522ce27585f36247d09784a154cdb258002f410d0258b6b4883c9cf5b55794afb5709a6be6631a26f8009e14bb32fa304b3ec13703a1f65d3c0fd96ce17c0d157d4fd5a03d06caa461188be121ed224bc8052c65bc656e333dfddf255d857655f8d7dd2569d7d0df68987306ab3afa31b885cbecb3e49fbec1bb0cfc73e3ffb02d86de0195445ec21f685b535211eb147195980fe4d7c20e879f388b558214a30fa62ec8bb39fd94fec1fb27ff4118c7d8001fac7ec9fb07fcafe19fbe7ec5f6876c9fe95ca5a1dc600e2df00917f6b08de7113b078fd602d13b4fe1da254524453197b8bf8f8f7ec3fb0ff88a89423a1ff84798d60d449815d5f2a9e319de52ef92f3606ff171f48fe43697a7eded51e65cee886ffaa0bd453572419dd0dc128a955eebac01db10d201e770840ff83fd4f3c6b1831c397ddc2ff422a1c06e6137799eafe844edbbb6e173f98a7fea44ef512fb53ec4f63fefa335a7a617f1613d69f43d62f3d2b801dfa9482ee2fb25f6a95ed9b417fe5df26e83d0fbe63509e4cfc555de92a18bfbfc6fe1ff6d75514a2d5ef188250c66c15520d0814133a0fa422a0d954d0e6f362bf44631b44e1d7c196e2ef2224fd3db0f3f7d93f60bfd4f10313022d803511fb8fb418647f88fd614519d15a57f647d91fb387417ffcff1cd9df1194673e1b83170e30f00588034355461c18035960e2d879448619982a870682d1af830acc000ebb820f712a6960ce01731e0c2c39b0e2c05a512a4dc9a29a3e7b04361cd8622337531bb176c70d0cececb613d873e0c08123074e1c387340ba7bfd1ca703b77f155fc07b9cd607737b9c26844ce081d91678e27e0393745eb2494d531c482bd334045bcd159baf445520c3812c07721cc86b2aed143950e2409903e657a302550ed438f0a352c33a1a90861a6a6c72a0c581b6a61d0e7439d0e3409f03030ec84df07320c0812007421c087320c2812807621c886bbfa3ff3f3c90f8e65f04cd895a6230c81c240e0e3938e2e09883130e4e55661c9c7370c1c1a5cad41549bae2e01a7b6370c3c12d07771cdc73f0c0c123074f1c3c735016341b8352ff0acc92066f361bbc73f0813450e1e093832f0e261065c12466ab4ced608a8369c4633003919b16cc225a657d0c9a43ac394eff67eff7ffb724e8f90fb1f01cd2b3eb60bdc3c102ba172c72b0c4c1b2150943c4ddcb4a50065b55310e351dd70f07eb1c6c70b0c9c11607db1c94d6ba1cec71d07c0b18d42a3ad5cf8ee000012ff3da62f521f2837e2c1f9206031c0c02683084500fca5d8a70300a91e92058833174dd0c23f8efae83dee3b4094011390fb6871c620e118786e8b0dcf8d008333734e6d004a4a4f3a12987661c9a7368a134cb1c5a7268c5a1351c421b0e6d39b4e3d09e43070e1d3974e2d0f94df0cca18bae62aa40ae1cbaa95180f635181f1cba036bd0143dd01b11591065e3965532f4e4d08b43090e798ed3a1d4bf4ab09ff93acac831d01c06eb5d0ea5b11b48344810c8440965100172bf43590594535833b093d4e25b7328af92d3908ceae884638143450e9538649e8b3fd42a1caa4291cbbc5323a056b3ec84b8300dfd70a8ae21e9e75003335d680a4a406cdaa38c3cd5c973febf4930d4fa2268c230d4e65087435d9c3430849e0e41ee6edf763b34e0900f510946136527e2870065ce49de49009b7828c821f3595d28cca10887a24e09ab6e94b0cbc63c6e716c3e61e63061cf090f393ce2f098c3130e4f393ce3f0dcc660f37ff401d3ff8b346f5f04cdab2d89c1f082c392ae38bce6f0061b63788bb184771897e8e13d36c3f001db63f8c8e11387cf2a17d5af6a14fdc6e13b871fd88ed0a0f97f3b116b7d0ebf108048fb56bc9670c229490ea770032595784436cde18cc6a91f811dce72d81d65eaed7f9ba0f72b4e660a9bef8985450a1a5909acdab213ca9a88c5fd86900c17395cd2900c72b8ac535b5857540a3ac7473ab77c1c162035846df8079efe9c21e87774ea4e795931ba71906de46df716995274456e5403933ddcb404e511f55f261876b3b819538247f424dce67087c35d08669f0ca4a70b4e06fb61580632508e0248c612e07010f3371c8208f47058d9c9b82210d9cdc3511db5c4cd4d0986639a8f5b1cd063c822358a83e8cd5a4bdcd95f0843846486232e1622ffee9bc1b6e781c412d4188c0c812032422ae38f8c9162ed238e4c1077d2f3c8942333886c067262c322a87b8be093539a446564ce9105fc650b95519b6d23b27431281259298e3814a31bac5e89acffb0acacdba7fac67e360682db7f155f64e72178716fa785e05e29643972e0c8514f1119049a3c4a454eba64d53872d6ad524f6312a4910b8847f4ac26b5246023371ce3e05cb5bbab4698128cdc551e4e79cbd3d91f9eecdbf3e1c97aebbeeceb10104cfcab0483f16f82ee912e22e34fa9482865b0139a5df1d37f819be3481e5b44a4a022a15ae2489923154dab1c11ca3fd851bf7199bdb8c191fa47906d68dad474a5879580c7ae2922b961ebda5255222d7d23a20f24917f77278974be8ed372aa8f74719c8e88d2e78828329765b64927835010500d5dd4b2582223218e48c409d9284784549ca3cc51d2891fe3e8107ba6ccc2901bbece3c1383758e8e2c3b2fcde8d8a38f6c0a196bf0373ec4bf6a4d3e0fc5fff2272451cfff238bcf8823761d8cce383ac7dd8d2e38bae4e88aa36b008d6e38bae5e88ea37b8e1e387ae4e80933377ae6e8459fffb21c95ec8da3778e3e38fab451f51e72a8e1080a11c32bfafa2268e5050753fa8575ec2ca74f1a4d7c3e21e9afff5d82c9afa30c9ee7f4b9389a02c168da054e03ab6134a3c884518ea379c41dc011765b4965e18352e06891a3258e96395ac1c217adbad8d2c15a826f4c369d7b2c5ef1008dd69ca5e64adfca0fe68efd76f4bffb823aeaf9dfdfdff80465b4a1836f72b4c5d1b6465987a35d0dbd1e47fb1c9578f471d4af6900d1170d7234c4d13047856354675e4ca979624841198271488c39465f7a6ca8a91a7fa57018399d3c15451fbb2f1ce5fe557c2231cf570ecd36622436d5becd3836e7d882634b9515c7d61cdb706c0b911d23b6e3d89e63078e1d3976c29e63c6f8168ceeecc98ec4a20463176cf058176a1cbb424437965f02879bd5a596574c5dd8eff633a6d6bffb5e0b04dd67edadac65d71ba233b1278e75b117c7121c4bea9227b0521c4b734c3065392694f3ba5835b1736244379d5535cfd85f76988683997091812328e225152ba8a8315654b93840854fd65bd1a294d212be3628c388fdfb04dd3788e538fd8ec158158064bd8bd5145f174b5eec4757bd2bc23356e758c3e13b41de83fdc4cdc52a6f8b43f92628509a38735b3a1764ad2e694b45d959a6974fad77112c6d8e756c0cc6baff2a3eeffbfd58eff30949accf31e9b38f637e8e0534cde1b40c25c8b110c7243c231c13ac318ec55da078c76822a3e9d1df7163befd863283ec5be2ecaaa9c4c929ecd8792ac6879a8e383ee6f8c42e85f129c767f8aafebf40b0fbeb2b5bfa295d7ccef105c79780155f717ccdf18dca96e33b953d7a1e3f60441256505a9eb879cfbfa627db74e9c5118c1f397ee2f8d929462e4e8cf1e8e4e41193bd7af41bbe366afeb82bd6fb0c491ef8e3778eff5fbe2b8c7bfe5fb64ee91383f117c7131c4f723cc5f134c7331ccf723cc7f13cc70b1c2f7a06f56b747f692ca9a5e4f4932158862082761a68a254d448ce68a46c1d90569d426aaf59fff80fc7ebf843a44e45dfcd99ef8fc6be3ec38d37fe4f50763cff438f3c87982762846153834efad6d2b5bb88d1211d6a5ad3a2b61b8851cce8ccf0cbd6e73335db3655686f8215959da56971184bc5632c7bb2bb6fbb910e6671a3a87fd3a5dfa396b3a1f9d358fcad97e75bf9f12ec77b1cefffefc5e0e0f75715cce379dc670f1898a47e2c41365cde01411e02e4e1b0f3a0287ffb18ac02dafcff24f1c05fb1f82541958dd3371ebbd712c25797bb138e877537ccda6f3263553a7e1ef5bf5046381ee578ecff9960fc8ba0f983d2468e98cd9889e98f6808fe8dfe67f657f47c040489870ad12b1b31128f88c7861df144b2aa8c8caeb5cada33533da8b5a6c433e239be472f8f0472acb17f9e9db7f8de1f3f6290f1afd9dd3c112ffec79fab102fbf099eccdd225e11af8937daf9a1a6e3f72d97b1185e3abab765a3631c7b813a1ac6e11d734143706b4417daf45bf7daff2b9fddb7654f7c203e825dbb8814281d44f3d90566b74e34d92ebfff649658509e89ff9b5ffa6ab83f9168e9d2616e5567a6ff0df7572755d9b9eccd757be749df63b919b7f7a8bf872c13286d08de35e21eaa187df8ad3c557939cb5b196ad1fdaf749104e13f8ac4ffc7a6bcf2f687026caa73dcc423dea35ced5f6e7ba3b25724fe8fbfc56efe88f44dd07e753542f8afae86df62fa39f9c3fe3f114330a72dbe34153daf69c1c132d9a72a0f55a448c656d21f56cdb98a06f4cb655fae053156c8fec4d18f890b8cf0bd3e1aa006a53c8499906c65bfa3b24edcf82fd6caafc360ce4de126b11ca4429e5030d150707dceab6e86567070ef6eec77272fd742c11358f03704f36ee4792705676c3bcb1b8ae81d49b927eb7397f0a75a7dc257e2f39e16bc4dbd1b371df211be01197013dc3d7b09531b8f17f73302d27ef0174abc3bf8bb3fb4f512c4143edbaf0d76e4fe09c1b0ebc9dd3396b752f8eefcd003a1e08133fc4684ba6f8222114da31ea75f7a0c3bbf6c69f837241a118df1d4215da409d194684634275a38ff3f9b72465a12ad88d6f8144d661fce6eba53bfff72c1a27ca7df51d9dfb22f4ab4f91b82573b8b25a2651da4ad8401d10e97a6fddfdce3fc779fa378331c5f7b8caf3f0665f8eaef0f121d888e442755ce2ebda862e44a7423ba133d889e442fa2047a26f38b924429b5a485a30025ca10658972dae0c9d3c8d95dc8644dfb42b3a073ada91fad45be26b51c8c2d448dc7461ea93724d181a26cdf44a5cf22683e6332312810eb07255826923b5d25aa79baf44354f7642f1ee5e43a2c7ac3155d1c998f18824d04a0a4d4d24814bdeda443d4d5a21e519f6840e423f26bdcf9890258a128a1d92014bf0469482637519848da91db1ed3ead254fc73215c258a74c888e6e19086231a8ef5bd7ce4f357489f73cf8586137c99530e4972d2c489f2affe38511e7ecc9fd3bd1fe9b0d7df6938a5e18c8673ee6768b8d0606cdbd42a4d376ad737d89de22d35f677294794e070e9da8a585dd2e18a866b553634dce205ba88f400e05edcca81576c8254e26eb8938943c33d4715682b8743b54cb4e18186471a9e6878a6e105ad994b981472b5a1341491a13e00089b8c9e16cd1700ed4e1d439bf5160d9ffae8bdc79ed37527ca3edb99fe2628d1a73780862f7db5511682344cd03049c394bdba216287df84bc517ca8b55d78193e696bb7a3483b82c38c1b529686391ae6552f7040a6c998864555641338e18117985e8ea07408f31a2397481ccac3b644df5668d2b0cc910e0d2b1c49a0eeb04ac31a0d7f6858d7ab48fbf5aff9386cd050c6208ca47f1d7daac9dae8f36c2f06310de586f568d8c79a086ae1cf6fd8781753d1e3e236e0aedc1e79bc138e7e1a065c942c3d11f39792fd947e29d9b7832118a461c8e10b6b1a61df8286f2b015c7cc1dc66818c7417724db481ac1c5756e57744d4cc34e4f64656b9130ec9ad5f049a321b88f46341ae39bacdd316e86b4369ad0684aa3198de67fce44ac0ca305208e96345ad168add336a233b4a8bfa5a24a6f48a30d8db64ab0a83f1770d15277943131884f6c0af8d8ba2fce3bbc1f82b2d788c9b85167406074f0800b3abb23353aaa31f3f181058d28c1d149e54ca30b8dae583546327239d0ca22b5a5d11d7124ab89045aac4b236c26badebdf0b5180d43a4a3a7527b619594c53bd6d5a34e9146091a25f16dea7e048be928059aad3870cb0e3e4affc572261c4719ac8ca3358db234cad1284fa382fed1f5c54e55f848e345179be1cf4f29bd0f465804c732df31f1650dc5ebb53b627054a251d94945d3932a55a79f3cca9f626a9dd4ff6408d668f443a33a8d1a346ae2cc154d2ac416863dac2076466dbb8d8c9e580dc14bd074c04b387627d8881d56b54f7477169f2e564904d713e12911d19601f4f04b3332df0593f8c8312b3eb58fc6a3be7d3b8b3f89137ce6a2223272997d7dbb9f98bf797c1f5f0037fa1583784d9dc725e45ab132c406a0845b48876c24ecd16b1a8cb56f097fb9216c431f7d14360423348aea748b6934c9512f8e093b667cf145661fe6df100b2896bf8986e103bd91a550f161a2093ed997a5d66887dd663c325895e3137f5502b2f274d9a5f118535556035952013d8166b16e0eb5fd80ae8913f38619c717df124bad6c6823e9c9046f1fe4502df343d0488899798d5fa389d918b487a18b9e310b26eef057dcd2e1f194c6330c7e3cb75cc60ba7ccd518f6947a088e971ed61167472d25385ed1784d63b9c056a32f86281b8f68bc93b54ca0205e10773b7c202b1359c639deeb22980482914e6ac13a1c71a865282bbe10b6145931856f0ce014e2136f4da024687c007d99ecf5beaead6a1794c27db84323dea98dede24ee3a31e4a2278221a6e7465f0e164da2a01ba718be9df9462d18ce0f342612710c7271a9f697c010ba16688409f6bbaf4108ca8beb0458e94f377c41d4743f04a72db2172a5078d9f2232dd64efd76bbf1059b2518e138a432c38d63894099514e2513693f141c75f46ac0911e188884b2b563fb2a3b862927b93c40e2327243c5dbc10a7129221798695404b63e918c61135f04c7c71449b4365374627491b09e84783f82da4dce7fc882f0f4a6f251ab234ce39524b8d98e51fd95fc6b7e5e6c9aebe4b2186609ec6051a17352da994692c38aa34ae6117166402ce4499ecb382ccf0c2d3480ad18ad91a50bb9c167d98dab200c9a4167ce600146eb987bfb4066c425f16d4a18f8ff8251459a47a45f3478538b5c92a4c3d5d857dbaedf4be4212db0561499522b9cd723bb1a4f8b4ab69e9ad1cef7539921bfc43e3ba0e5046d7708a0cb0a9836daa25af4a4995964ac9658b1e114bdb63b4d00cc10e8dbb9a5e55f14a8fc67d1a0f68ec93cee92f265474e59238f563620a17598fc42e43127d1cd0e818008a778d1b07b023e336dcf46859842e04073dd9b8691ca471083b3578153466d3987dadb89e257b5888e5c660fff5ecddf109ba146f801ae6b27452269accc1288d63348e0b73dc323bba9b1de364a8c3bcd26464153bea779141d151074d61d7466c958e7386a7129c8c6932a1c91429fc2656b1fa5495194de63459d064899094a70eb9c966cd92b5529645d6255277708090a54ab00a028914612a76091079f2c368b131e98e7cc3f31f0ede095d79d3808b954e4e705bc49d14c96200d6279cfb84c2644593b5e713a51e4d3634d9d26447933d4d0e203839d2e4a4e99926179a5c35020634b9a9dc69f2a0c993262f9a246892d466533449d3244393ec279e2c8df187e927d4ba0e912598537c2279072ea7ecf296a6b15b453a5da049d1ae868a52a34f4e3c6973b4768721fd0626086694e0461f0f121a2cd8dcb11420acd8229e94c07752c67e2521dc2e2145dd246e95ae86828f261595aaa4e63d0d4d6a34f9a1499d260d9a3469d2a2499b2302482848b7a5c37d9a0c74803e9af86912a0499026219a846922c4a334f9fa349126711b4f36b0a69f60324c3c71a604a7ec78e534cdc302634ed3bc4dbfec44d3214d47341d63c0b20c4d273845cb0682ed1be7129dc5639a4e693aa3a93ed5cb549d2e4497594cd32570e3a0ae514021e8d3159ccde143b669d9b5fdbab461221fe590a0cf3f21a5b6c60d1b7eff8e941ce0a76b9a4a67b634ddb941e5ddc873b6f3ef096747b4a7e981a6479a9e686aff3699a6179a5e9df39bddd4b17a479579bb35bda9dc551edffaf3db2ee94b5363144b82a649bc359aa6689ac68610d3770a666f91239ed92e863e9a66b04a4a58c9d4c6da9fc1994e0e9fd876cb1f0ab2d54eb3a88eb73e4fece07846c4db33ec1b53a13053d67939b5e0bdce54ce0c437d0eb971bd4b538158a26999a615d7c9bbebf0cdd3ed77faf00ce7e974194e4d39fe388787a7b59bcbc2df10acd3b4a1c2aabfb30d1b74d3a61adf8ad1df3e6f638ba66d9a761095b2b1c8d1a451c4a9100ba55f7795903e174b0fba7a44dfea5eb105353c9674f16991f0d26d1a8f3dd31eb60b093ad9a66541c49d48e0682d8bc054f6373f9bcf9de5864d07787a99ca7df26b97bc230a38dd1803ceee1d72c3332e5314a469c8c563d83352371deda40cbc0946682afd88a912f15cb2ae46ef358c73fdbb5be213b775678c77d5b321cd4640d9ca616c4373029fe8d38e948e119523fddb596c1a493cf9615b7fea6b85bdee307b1cc571782c63abc55cd62d1ecf48ba4aa88f348e1d6c36a1d9946633d779d3eda827fb4b229e22ef601baec864ed275f349b7b46fdc54109ce167abdd8a760b64476b68258ac753546d4befe18adc578463c55c47f83a89c6d69b6a3d9debe6ec0a930e4d64a3dcae9e111a0758d831d9f76d661177c32f1711e6ca9e00d9b3eeaa61195f5bec18753c1ec607b62d9c53cb73fe28983baede4572844beb0ce8edaf995e5353bd1ecac102f34bbbaa277c58621b802c45fe99bcb579157f1faac3ca50b47d3e872ed3bcd1e347bd2ec859dda1f3728f11e415631d958f18e7a073b1eae4f28157c723094c3764bd750d9a631759f58f2e4016ea473568e8d72669e256896a4594ac7e6e9f9fbd65a2e9e6e4b28fceeb627567e59ec28d22e18339f7ba0a9219855c9d12cef94ec1f8ad10b2a6fa5e0ec79550adf0e459a956856a6598566559ad568f64333b9b0dcd82650b6f5314e42c96c17f8f04af6a59e028ae13d020e8c32dff5990f6faa6f78820ee15b253493e86ed3ac43b3aeeb64e1bb876f63cfa37b4b0b7f54fc335bf048df41fc7233040734f3d1ccafb2708a5f8d03273e270b97fa5d2d9fa7d6c05357d200cd82340b69188655229a466926b7374e73b61fccc8562b3b29de3026f45c39d1e79cad2e8e097dd190c62eaf820f04e7439a8f683ea6f9c47560e0e265e1faa31659a0e753cfa0169ec17abbea46349fb9f12e3e53ca78ceed2b619a2fdc15fd86a0dfd2992f69beb20a2a2c55d66a5959a3e5e8ff3085ddd4dd587fe38cec16831482f31dd8cdf7343f605ecf8f343fd1fc4cf30bcdaf3417cb5d7f373d879763e3113e759916ec3e2b16bc314bd3fc41f327cd5f344f689b499aa790e226ddbe717819ad40105d5a79e2c0ff19e0c7df1b281e99af1c5ce9434609665d5d9f217873622aac5db1b1dc104a6f9adef4cb7fad68d6162874c197a3795e4915685e842ebbd0bc44f3b2fadcb5e8ac45159a57695ea3f90f76707c14837710c02a4fe2f33acd1b346fba400e29c196de86131403140d0ad3b65e7df9b9bb661a9911a19f7ea7bfeffdd2e92b1dc2da45d27b38ef40e9d0bcab73d9305d1a82016daee741695a0f587c1f7be08fd4559cf72de8b711044f183018c900e47a7e2cc373710bd25cc61c76ac473af288ba45691ea3799c164c0ba2c51041ba1869231177275416630b54082e260a34a54a5e1b1c21d2175344a82872a1c5cc8d74f935d2bfb4d8d1f9fe2070a3c55c095a51828b052d96b458a9f296b5ca527529da38a3a45bb5acb474a3b273451b28b28158b73d2d0e2a3298132dce58d7c74d5a5c54ae2aa2dcb4ca9d160f5a3cb596f8bf68915025498b942a92a65531ba919366335a5724fbade46891a7458116453790924a5965e319ef4a47b17043db387da17d5b7fb20b3c8fd3a26a3c952056a523661c82487a53d3d96744b3b0189fc9c7f2367e4ab511642708498982c50fc24ad2455d950696a445534502a7edf48e86e454d7aca536d2a5450fb550571bb1edf455ea2afd4ffb88cd0152d1252aa52ee254e26ea041bad3f094ac1f62d7a59e1b48c06625b5639fa82587696446673c4d302e82b408d1226cec5e82928f78f4e847f1eadea2bf74360a7a30b2e337239739b888d1220e5e16dcb72c195fa78132548e47705c8eb4e2d8de064bf097a87d39b6d9e58496539df211bd0dba8080a95aa474ae28cdcd16599ad91db01160e2e61d3d16ab67a44b9dc54250ab78082e17b45cda1544748b63a417d3524367b972fe2b5aaed573848ac6d9ac3e62971e2c379fb141b6da5a1ce106583ba416dc1e58a11c207090464eb43cc37f79d12bfa6879a5e5cd928272b78abdc443e5fe4129d0617fe2d2165c4f51fab05ccae623730237b561bbfd2b5cec403c464be00582cb84a1a404c16e65058c0d9a95dad76a5980234afd1f673323a02f6d6a20c26181705e26b5f7065f8a96692dcad0320b64cb9c0663c765dfb2830564f75a748082b95fd306f3b42c68943d1dd0a2b67f57fd9d1daba294c5cd4c76a9625683654983b1845045afb6d885ccd82da3a55eaeace132b2343ea5155a562d8745d410aca9fca8d49df24baffd8dfdef447c1ab46caab420b2eac3dea665e7bf2f329d7b5a5744224e284848cafd0ba8b49cf27712b47d80124297ccee8416fcd8b89661edad0f22dbce32a25d1d681a757a4c157c538756ac038498bdb88b2ff381a828435a8d905d8d61912cec0d88b5e837ff246b22519c8dbe9a683ad64626ea36d59b7ca5d58c5673dcf395c6e06a8949ba5aa992555d954f764dab0d1c6c76852ce6b5e85bb5671023e87301221373b5b31792605fedf572461139d04a2a9e6875e6c00fad2eb4124fa170a7d583564f5abd6895d0ae6a6f11dd256d93dca09288b8554a21a4956006453a7043b0a17b9fc1440a71f841698a0c3583cffa90456fb9bbebd976b22028035be56895a75501fd5b15b1b481484931ad40c4b083be52461b2d5201b5ac55e060ec5b4dcb7a3344afd0aa6af71c99bcb8564def598156c2ab4e2be94c93562d5ab569d5a195f456e8f46935a0958f567e5a056815a455885661ed64c441fcc10497ec2a8ac8c000638a2fee59f4cc5bfe0fb221adf9b7f20f45bf1459a7defa9a74a1b95a7c20580241134448b7d82bde3ab2e76f7dfdc9be6b89dddc03ab38e7f550a37284abaf4718f97a4ceb09ada7b49ed17a4eeb05ad97b45ed17a4deb0dadc56147eb3dad0f16e2fa48eb13adcf885974dba522eb0b6ecf1a5fd4a3f54d518ede5894e0fa4eeb07ad9f6ef08cf12365b53b2356f1bc3ab3c7936d91376b8751a2f50becd60908085631e07592d629cfe09d2ef6379775da19335f646149fdce8aa09da46b304beb1cada5ab72e922ada51b655a57685da5758dd63fb4aed3ba41eb26ad5b08c3759bd61d84e1ba4beb1ef70b7ad7f30087d540e7f5baaff8069a1db9d0816266711eb2f639c56ff575002bebda88df531ab0a5eb7769c0fa9852384befa54f215a87691da175144bf83a86ad601da70dd386a08b825de26d646b148185acfeb688f3c78760795784b391216d46b41983dd66429b296d66b499d366419b256d56b459d366439b2d6d76b4d9d346c37073a4cd893667da5c6873a5cd0d22fddfdc69833ffca6cd93362fda2430ae4d12643629da986f604af4c97abcc968183e3500c9937d7e748935e8231bb0ef22a96ef5916d41f44d963639dae49d141083125c9b226d4a2aa2941141a27cecc58f03e22b6b4bad9ba69b8a065adad6425ab191b8a9d2a6469b1fdad469d3a04d93362dda08f18e66e506f468d3a7cd80363eac861b61175082c24578856913a14d943631dac469cbb425da0e693ba2ed98b613889de0792cf16bf33d6a19ed764adb990e3be351e656f1ca76f15b797b8a45ea4a2a10b74bcc82ed8ab66b4b70bba1ed96b63b0f41c71146a3ec1dc15f3e250fdfd26fd0efa2ed81b647da9e687ba6ad5cfd4adb1b6defb47dd056baf4a26d82b649daa6689ba66d86cb9266699ba3ad74af405b69a144db326d2bb4add2b646db1fc557a76d83b64d3790a6ea524b1601f369e7b68d91cbf436ec2c8899da97a0038be81d55161f6a56161f3b7c4cc52e6d7b7ab1beca80b63eec2460e4a0886ec46bf94be597db6f1fbfa601da06691b528261da461499108cd236a604e3b463da11ed86b41bd16e4cbb0908eea6b49bd16e4ebb05ed96b45bd16e4dbb0dedb6b4dbd16e4fbb03e2c02bbba3e5b833dfc004a699a60b97ce94c5d2815b6a3a7796b923db71fe1d8b12b7c154e920e0e58eedceb4bba872a5ddcd0e7877877815c16194371a64f7d6c1642d4aff07fdbb084d3d68f7a4dd8b7609da256997c2f2b74b6316ef324089acf0cad12eff21b82bd0ae483b69a44cbb0aedaab4ab29c11fdad569d7a09d0681a4bb16c6025d9436206aaa04771d95ee3f4a4fd3ffd2eded2c22171bd0ce473bbf2a01da056917f248d8a3183df26d8f384bc853fa2bfbae1ba55d8c7671da33ed89f643da8f683fd6b97c4500ee27b49fd27e46fb39ed17b45fd27e45fb35ed37b4dfd27e47fb3ded0fb43fd2fe0482fb33ed2fb4bfba21f89ca2fafea6e9ddc5e0fe6153891484954f452cbaa2ed5f6a5c3ae30b6ea8e273f6252cb2758805a9f82474c9182000f749daa7d498b63125b2cf689aa57d0efa3eef2c394df33635466f15ab9b5a2205e75ca47d89f665da57685fa57d8df642a14efb06ed9bb46fd1be4dfb0eedbbb4efd1beafce03da0b053fed03b40fd23e841804c130ed23b48fd23e46fb388660e4c09fd489d949b23aecae4eb4ab52eb428494b11b2e22629152518ca71419877715e3863f0c1ad2614487311d267498d2618652793c02b28ca6059b1ee6aae45d510696c342d3b9bae52c3eeb93d56cc1d1cfa95b9e0e4b3aace8b0a6c3860e5b3aece8b0a7c3810e473a9ce870a6830cfe4a871b1dee7478d0e14987171d127448d2214587341de4d2d2f91cb61199c2076953ba57a4430973f650567c53c751940a1daa2606bbd8282d2cd5adf2df14d302403fb08d08355c66a2d79bc128040d1443e72d1668e1cb62f5c51f9e5947d6eb2fba3c93f479205ba780f8a1832068d0a14987161dda74e8d0a14b07e9559f0e03b81d7c74f0d321806de410a443880e613a44e810054199c287181de27464fc211bc2a5a73151d198f8c89b60978e43c82f2832198d5d04fa0846892fa31823b263a4b6ca838e13203b4e41f068388eb0d51cdd808f0b95e557f6a3abfd5d2a73df0bf1b8b2456217fd635f23a68e1b3a6eb14b1c7774dcd3f140c7231d4f743cd3f142c72b1d6f74bcc30dced2d5271d4591a125e998a2a3b499a163968e393ae6e958a06311179227b163095310832ddbe090a11df557e5e9587552f3e8bfb23527554ffa2b6b3c7fe858a76303226bedb1a9698b8e6d3a76e8d855e97d2b3d8fc56bec7ecb2f9f5f0e7dc4d47180fde1e8c34671946c808e413a86e818a663848e513ac6d4214e27c65f1f9a87e2d3904e233a8db10b9f26084021789ad26946a7391a3f2dacc8104e4b0cf6b4a293386f94a0703d6d6d7ada7de497054bdbd0d9bd3ebb2f91f03cede974a0d3914e273a9d91cad1fa74a1d315f7f37483bc957756a2cf6b39ddbf9c7f89d7687c249a4e0fe522ca8b1b493a25e824698a4ee293a153964ec2254fa7029d8a742ad1a9acf82a74aad2a98673cc7b0f39fdd0a94ea7069d9a9fcbbdfb260bfda945a7369dcc77583f98de8a50effd4663ed5be7d6f5d4f2b6d0578203c5e7b3044f7e3a495f832aa61f41ed53884e616709bbd4f8843c766f91376b443d259a00314227197f8c4e713a33fe96f53ca4f388ce633a4f54a6749ed1794ee7857d1c3e2fe9bca2f3da1e034d009e3774ded27947e73d1a3f1f6c57cf47cd9eb0b160686743b00b399f955a8fce174d357bbe020a2c5b2dfdd691bd7a8aae28953511f7e7087ce79b423c6a5327c4e00741d8017572be6b2f4d3644e7874b1d383804bf11073fa5c262a54fb8ab079d9f747ed13941e7249d53744e3bc9d0394be71cd63ef33ee69ca77381ce4504e07b0b362be0b944e7329d2b7a5d7375bd6de72ad6fa738dce12a7e63b0b323c996516dce5a360eaedadc56b07affd572daf1b50d6e9dcb004cf4d103cb7b0129fdbb8bc4041ea114b508b8c82b4037f28dd8ff12fb89b462402a46f7d85a81ccf033a4b07fc4a2da0125491bb2214228a2f4ae7189de37461fd6beba1c57719d1654c97095da674997dae62bb1140c0c9a68c1834042f73ba2c6c2a4b3e7491a553e64e7967dffee2b3a2cbda65d75a7d43972d5d7674d93b39d0e54897135dce2a174daf74b9692ad9bbb31ba3d12faa3f9cfe54b9bbeac6727159b1bff082ef92b0c17849d2254597345d3274c9d22547174153a04b11abdba5047c97325d2a74a9d2a546971fbad4e9d270049b7491b1b4e9d2713d3172c283194035cce84c0c8ad6d5b012a5f725d6d8b7bad7fe71eb7e3c611fd04597bf8b9f2e01a4b20e5e34948c5c4274093b3d02dd88dcde8fdeb516ab743f55feb4d8ac1089d1254e57c6af1a5c8778a9771dd1754cd7095da7749dd1754ed7055d97745dc1f9baa6eb86ae5bbaeee8baa7eb81ae47ba9e40f07aa6eb85ae57ba4a23f7afab5f1f986432b1ae4f1113835d98ae2f80782be0a2684cf6576a04c85a1f94b6a22809ba2695a09fae29cce56b1ae064293480ae19d5431f9a563981e93b7bcd5ae5232118c54d5a30cadb41a6d83547d73c5d0bf63b6ad7225d4b742dd3b542d72a5d6b74fda1ab0cb041d7265d5b746dd3b5435781227deed37540571f5dfd4a3040576930e4e983bbd972dabd86814f16a8b3fe7299c5f1c60789204536ea2c510fa008e05a4bd703b7eb9c6388be6b1cf86eacf118b404a543460c2063315cde8a14dde8db39e4e115fad4b5b72484f79bb721dd4696dd6d4cb70917b658e66e5234a3db9c6e0bba2de9b6a2db9a6e1bba69e8dd44f6743bd0ed48b713ddce74bbd0ed4a3769e4eeeebaeb1e36c30bf6d8dbc386c8cdbce537bc64ea19c5a609a7fcd2df3e09a7bcab3bbb5c40ee0f08c6e9f6a4db0b31283db8253e50de7dfa65119f5f6e26fb367a4b653cb024e926b74a3f87bc65e826961c00ddf22025cbdcad40b722dd4a742bd3ad42b72ac049f4597635bafd202a6f75ba35e8264a0bf3f7d606bb777f8c2257c48ae7a35b47e3c3cce25b57a5e7a48fad4014a4dea2b7deb75938f43d96b732a09b5cc3ef24809de416a45bc8a561a788449c3de8311a87b0961a25ec8a82ce227a946e1265f6f72ae8cef84597fb5001ed747aaadc47741fd37d42f729dd67749f831da66d1b7cef0b7c4a775fd27d45f735dd3774dfd27de7e95bc8d387200678dfd3fd40f7a38812bc9f54ce5f82105331faefd2f0b7f1f4ed7641e8ddaf2a32b03bdd1f747fe21e4a7a7f7d89b9b7d013cec7b83dbf9c6f5ea3b127e99ea2bb86de3d43f7ac56344de5e89ed7d56d6be55ea07b91ee25ba9775feb63542a5db15ba0bc41add7fe85ea77b83ee4d441f1a79ba8ebdec15916de900afefd1198252a1e3062f77acf74da7fb87ded6b4679dadbdeda9d54784839db94cdf12bc0fe8ee53c5a47eba07beb9bc8bde887dcef20667d220dddd5fccdcc3748ffce11305a67bcc499c1e8c1f1c7a0c755e9f306de5f423a1f718d1634c8f093da6f49829269fa733ef2baaf131d7215fede81e0b43b0e744893c9696082c6d7aac9c6e4ad7d6d9dadb9eba1a8c8f0d82eeb1a5c7ce129465f1b1577c010771e0a1397069c043d0cbdaabf8e871a0c7911ef8dfc6e971a6c7851ed74fadc7cdb52f9ed20db9b40cfba569821e497c9ef948d123edd865e89145e83d72f4c8d3a3a0ed04dce5061e458db2a063ec0b8c0ea921282c80a3f7951ae5cb5efcb0b6455dabbcb398cb317a94f4feec14e20d93da127422e3c450071fa08ff2b7716075afc5daed8f4ed3a34a8fda5723d6e1e753511e721e757a08a0263e0e7eb4e82131d1a187f45c46d1a787780a6b3f3d025f153fec3cf71b3d0c6a40e8d01e21490dc1b04a44d3283d622a713c4b58bbb1a883ec12f009d3932162872566e549c8ca42fb1cd273a4e918fef2c4f29ca84ce939a3a764179a5d6aba72a5334de75697fde763149f353d3716df738b0f73ad7da9b272cdaedc55b44d34b2a3a774e9404fd14ff43cd3f342cf2b3da59d3b3d1fae3313d7c8ca73d195c7687c9ef47ce9d012f44c9a597c41583d539880924259a9f1622d98986f7d8554b2c6d3b8991664828b3cd3f6fe3c33f4cc623ac33947cf3c3d0bb88dcf223d4bf42cd3b342cf2a8c28ca5b050e354d8da5a6a9911f87af4ecf86fab82aa696719389f62efa2d354f370acea76943efe3d6b4edd89e34ad8296f758d69f2d7ab6cd00df04ff469e9d8f62e44f878f4f5741cb0def69da52e92bf481ebb18f9e7eaeeff0c35975098a003d836a14e2e16f5e5e7c32aa88c317fdf6316e318f7fed8fea46627fa5884ffc8f160a7fd59ab9a3392598a51763742f73a27e11bd8618fc6b44afb185823fc5eac062ec6f529fa2099c8dbf0dd8158a84dd6baaadcfe835a7d7825e4b7aadb48b317aadf1db30f5367e97a3dee57a0f7fe8855410fbe9b5a1d7965e3bf5dca3c7af83ea477ae9d6f13ad3ebf219a46cf1e2603cc54db20876a3c4ac110e87dfe05e57ebf6ff15f71dcbadecca96f3fe8cce398392488a8c1ed17b5f749ad1c96c39ca511223debf77ae95401125699f7bde7de7ee1791814864c1e5c24202455385babe6468ff3a494dd7e6618fbb91c3bb73f0338a115c7ba18ef3c7c221eb705c38e09c3d288c74c55407f4c9a60f94227a3a94b0c31ccaf4a42287aa7f3a309f3388c7bc35f1b762a039f35076e5a0935c77f0e9c239b8f799ca21004505970ca03a9c8f11445af7e05231b0ac41b3207df4e59ba86ed9187d3779ac6b4634d292439b7e193fecfbe243e79b7493d91ed33eedfd9fca0f5866c80223398cbd289a1339e81c288873392c52e31d9fe8f6e41e788cff1bbeba97f2e121e04d3c8e9e80cae1420e693928314fe56147f8cee490a1cc93e9dcebd9201bda432597bc94f97d95ccb732e772504c0b70ad98c25fce8bf6fbc1e24a8a462581627a7143fb96faa5b76c8e255d79336ea5780586e2aab1af28c56b2c67ad5bbc91e22f4c6ff1968fccca25de6c183f710c8f7d2a00dc28e5a0e4f3fda57827c57b293e48911c29eea4f824c56728c8be3044d47d76078be3e02fa77c91d81e178e1bf92228b00b1a7fc53a2bbe3907e96380a0c3ab042c902558f07fe5d3b58312654ca782f492b2a751517b077c40d09ae2e22a7e4af180658b87b7d5f102a2a8f9f5f1c9f65423a42dff3c321233eaa4a2ae1475c4da57598a1529561919f6f0dc5030457b71ca0baf961d3ae87de786a1764d1d46b4bb741740f6e94aa2851dabe8a51a43594d8a758f60dd56f13550805c438a0d6771b85cc212eb28b00ef4cb4036ac68081a884d444670102eb987cc03a0f0a5c682bfbf8750860fad1de71350aa4c9644b325c5b6143b52ec3a449cf41c7c862624d47f9244f5b8f0ce23b8f7c8aabd2fc5011dbc8ec53838a4182223a7ab628086305901671979cbc0175364c79c99c883d894e2845ee998a6787cb23d777bd2fee989c81dfc67fba7c711fa2797bdf2196fbbd4a407403505943ad33329cea5b848e2d80b14958b6fd8f502254de5f53728fbd6b0844fe8a079772a457baa7c3123c5ac1473523cf762d99c573294736fb1029940ce7db1bc140b524ae111c19a425f4a6925a5b594f01455f75ee3df3d531a2fc9b8c66353878bbf05a5e2883fbe4ff15091d2564a9752ba92d2b5946ed8a3c94d32bb0eb23741819b6f57d7df6afd92d26de0e09d0a112cdd8377962a8954293d1c8db1a22c8bb3ca3be88f4119b3ecc8ed53d0b0f404a5f4cc55acddbf10413ef678faf75ee1a4404f7fcf4adb853432d81a5799f6144d29bd4ae94d4a7b29bdb3ebd7203536bdba214109f4d207ae963ebf9561455cdd48e920a5225c2b95b8d4ec3ce850bb778aa626a5f2d1ee2c41b1d01e5b4a15d0bb54f57dbc734732046b78668c21385bfe375e59305ba5666b3c02e9af58799e9a6df934d6bde3e644b95f9752434a4d8fc547a098bc06c6f09207aed4f259a6ca86529be4e848a94bc57e37535280fb1000a1fa8059e3631f598751ef98da25a483a3055943b044194969cc9dbd0629456e230682ffd6bbb5675af1dd3d63f4b7ac24946065d6b829a5899494983329cd3d4035a4a505415904187d04054234635d9bba203f46745059f2142338a0a4a99f784c77df904dd3789a000ee50d7455ce383f25df47464a598f600e8f8fb6e7d0fe5b6f2049c4ca790a6f04f80b28e74b0f255939d5f19f4b292fa582945347b0f0e849a606a5a62ab131861b7a8d208c3c3f1c4b886079e965e552dd106223f4b5b3980e590612673752de4af952ca57946b2933fa96556ea57ce7dfa5f8cfbd8a72de48cd9b787acf5fc7ca90950a65f95eca0f527e94f28e637be2f0763eb5d1defa4bf1f87fd153f3eb39f6d138b8fb41ca2f4c5fbdf2f2c3d5af85df48ba9294f7527ee77465c0fcb2cee1a7940fee3d76ba75fe53081ea1cca7e6053c19fdaf62e59b7ba5075f8225e5a2944b7c8a672910f966092ec1c77727ea1d15e3600c5319810c40ec5c1616c3b1c2b4eab355a4286c15cd5e43e02bd7a5dc907253ca2d29b7a5dc91729708f63c828fff3c82b12c6ef1e4bdf1f3cf382eeefd4b0f0a4a4c29f709cd80e927c7a996a1b78c682cf9b4441fc71ec40653db8b1532489930bd0569c5194ba65799bef8abafde58a65175a5db54ca336d57ca73296b40b990729add9f48f9d4dd0e2ffef66b6ffe4750d670e7f305caf0e52fe53322a59065885a8c94cdf788f64f5eea3bdd71704f1c15c1ac2a8660e507d13de10740ff4214d01c5bdf13be393888bd7fc2119cbb67e5aff9bcb73f80602cb3f7444cf44fede72a3668fadf64f4d3a53c1619fc8a889df968ff8e2d17b00354525e04163e4d96b2f416d353fe924fb17b68f59554d652d948654bb994ca156b5d4be5462abff8f9151f647ef1fe4711bcf808107c73afda1abf4ae5562a7752b997ca03d32f7213a414bdb92a6fbd775befa9fd764bd75a65e70430d740c0ca13d7e045f2aaeacf3456500c4616abbc602d5774586f9899ca1e4ae51dc52a1f52f994ca816ffef9df7835f94570838827d5bbd74648a5289512c75626bff252a9806bb0a8542915dad5d3ba541a52694aa5e5d9676eb6bf216820c678d9a5d8f2458e103f49a523952e1bed49a5cf74400487184765747c3579faf737c5ff09495f1f11b45793db9b002b63a213717811a54ab02ac0f46834652295a954665299931ce6e042532298c04561bef08a4a3ab07f31a60363874a97adf77c7a426487ecfef4f8a9aadea5fd5104cb89556c2f2fba5020749d653c469300af092546d0e0cb4a25478fcee9dd9bf7f188a0a296f7005d109d341595022f5d049762e5c2cb13d26a0aef68d276ab4ba9aea4bac64e5ddd48752bd54b779419ff37dfe3f70f20187cf218bf012a7d035caa571ea0c8031761b4474069c7f8afe163f546aabf8e08563592be11c1ea9d54efa5fa407994eaceebb131ceee58e0917a2c77d861aadac1b3545fa4facaf40d1b4b752fd577a97e48f5d371f01fbc21f99b327e0910f4af431d35382a95834f8b5eccae4a8962c6b2542b525542d4e89da675a6f6bf3a47342591b6dba45e8062ba1a5db6e52eb9f25ea932c456db52ed48b52bd51ed35ba9f6a53a90ea907338729f0c9e74ff3482e17930e6e0a846728d39b6a438d27dd123acd4ea84aec5a23eae8c832d87570c53984de8fde4d5a6b3e832075e42f86e1d8e283995ea4caa73a92edc61f0a4f01f87ec7708ea3d5ffce688ea057119fb09de7a34d3b49c303b66f684f6533a6808ea823ba39251670dc12c2f9bc47ad3291a3e9d25f7cdd2f7389e4b354f040b524bb18302cad704e3a82d8fc7e9d3fd1f852f7cb9bbbdfc253e4e1b7cb59503cb296a5913c4b1175af4b806af6f03023a1089606d03017659afe4000af42fc866b95abdee0a64b9490da4b695daa5d4ae2897e020863595da35c77dfebf704392be4a2018bffdae7623b55f446ae871f429d6cdd08d3cbe5abbc5f1b67607bf143b7510a9eab617d7ee03794866bfc8e3ef4beeb087d49ea4f64c51e5456aaf9437f7e6481ca7ffdee7fbff949c3512b774f1db93873aaf7b8eeddd0ff2d5673f023db67f721b7909bcb3f4e039887dfac6298e9281052b34b0ffac14a556925a596a15a955393f4ad21a852f7e3637cefe6c1c0c8fd3f1bb14f53c38594aadc1b1358f82e562969a17f1ca2dce6a585b2def60857219aee2bc47adedc5d0e948adeb70acf5a4d6a7b14f7b1b96238203366dadeb721efac18d8ec7e94cf98f22b8a8268e327835280e83f855496decd1d1114654349d484d719c791ce3742eb585474d1dbca092564c0dc13eb07044eb13a9be43ca74a4ed84251467392182a7523ba364a496f543c9b9a38cded5fdbb2f19ff3725132510341a6614268df279426632a31428317c3377a99ec27b5cc189aa73b0be2488aadb338fea2b40505f3b442cabb8848ae9f1d550ea1b2a0bf451dfb2832db2f54b767f25f56bc7c1f1bff505d3ff44c6fb0482f6d196de90d46f1c6a18de15955f2e8512636af42c48fd96a43b2370eae01de55ea134041fa4fee8e581b263fa94bca4c6675fe6c55b764eb16da4fe2af537a9ef59e65dea1f52ff94fac11d6586933f8d60f813275bc2fc9d98d48b522f49bdcc119638c8925762fdc32b2a15ba56a577358a2a75f5d4106c509a4c956e2d6f6990622d1a1bdebef696b89865db52ef48bd0b517ad77b52ef738607521f3a04f516f50f2398f5ab789c27824f380cd647b8c7c0c0c64c7590969d487d4a89824b0364818332744e5990865d2e357b3f8942a051cc2162fa05d386575aee6a582c4e1dca694487ba1638a5681f19a967a59e93fab9e342eecf7e3238095fac9d8f3928f53c7189111c7b651064c749101b84cc5c234b00a53abbf00882419a16a491720ad20b7fe9c21540746b1d0b00d02608d810692cc1414cce421a2bb6de91c65a1a1bfb6e8c08deff51f8720f89c3a0fb74fa4d1a5b695c626a918e8f3836ae12f035aebcfd120836aea571e310748afa383704db5e2e08cd173db45c0480b63dc42d69fc72f46edc22d5d6ad8fc69d34fcd7636bbe3aec4f2278564822e86fe91a0f0045018278c5006d3c02b5d862d2d8c1d9c6139c6a3c33bd037c0ddd0cec97478dd740de98ee03cbfe9b25947754d1ada3f1c158bb777ae393729046919f88f08624f7677792dc34719cd6537d6ea6c7696994a451fe492a5ea926ed357a7aa07cfab44e37ede9798da6345a1421d84d4731589a4eccee0aa874fcd52e49da71ac6ef420ca474c545f1a3a9fc3e34df11ffe86e47c1b20f8c2d748330e3646d2185322cfb2e898b54b47026a76c2303595c68ce99c6b8b0ed66d2701161d9f76826c3300cb10ec7c5316940be295a65c3055344f693c3b7e43b2b8fdb30896be7e43c2fb626964a491252e398a616420e67829e7957369e4796ba0550a24842138a77e122348e09a29af8887f28b90a771b1d8d85c4a7325cdb543d0e953caa934377c15b8fd3afacf7e407d1ebc27dec387e37473ebc132969d7bc822afe488e90420362fa579451faf3d7096f6cdc724824e9690d812e2d5bce1551a5d995fb4dc92718ad71dd37b3f5d53693ef81f1cd5ff287c2af9e02787b68dd8b774cd4769ee0050f3094af3d9e3154a0e5751e6459aaf08538a60f38d2905aedd7b049b7b2fefd2fc08f4383545e53369d4c207a64506d70f17689b256996a559a15275df31457ff6732d20e8bf6b8f6a0ebef9123724cd9a3415c706a5e9f5386d0657557491b5a5a90876a5d993669f8acac07c340487e491a53754be4b2ab874e32d9a8ea43926ef22a4d84cfad09b13d050d3e6143f1b5cf30dcd7f1a41ff0b623d4e7b0e4a7326cd3965417e190d357b11e8264f2c9366f852074fa4794a029e51710ec6086628374ce36ce61b6ab19ef1fa08ba0b7f6acc12c1378a76a36be1dc71303ffba3f0859fefe7e7c76f489a79691688ce9c082e3c94f3a4bc78945fe9d7bd07cea03c2139b0a889602b252d7162d0b44849b53b1c89a95d8dd31639d85a21d5fd175532305a1c6cadd1416b8397d517362e1416b6a9c2257eaaff07109c7df9c916bfa52b5c496b0b685a9704a8e095b9cb3a89b37320d8ba22823176268e25c64143445bbff6180d3d52cba3d114e8574ccd7ee3b33a0dbfa4750b32b6eea445105b0ff8d928ffdc0522c42ee90d7fe13d55f84f7e5658f83c76376d1f39d87ac4c254e05a3b8881d57a723a002d386421cfd27ac13ea9f0b5b4ae72622fad77697d383eb6ec6929ad83b48a4c4bd22a333529fa4bb1e5e053bb540e4a32d54dc6d9756f6948ab922a0cf147a469979fcdd9ef4713af5b4e1546ff112895e9e10f8eecde5c0f83adaab46ad2aafbb441a50645370d976d04659ad81b5b2d4a5b5a1d9f76b8990c0cc16b6975a5d5a362692812e83d52b51764bf97374951fa58c5a316ffd35507827a36b4bfc6e2bf5ec1aff20bb354619e2a2cfe390e5e7cfda9026fcfa53590d690a21c1c496b4ce52930aa443eab5719efc0bea9a7a129ef94598ce03c4064ee9585d735cca57f02ceca2c82eab17241e84ff0d3e5d9066f87c56e5873bf6446547a8a6ff59350e65285f35421ff3f46b09040d0fe50aa7b71ebd4437316c0340ef458c930cd12a91c513339f7087e686a08ce3d1079ea2a05a27007a59df2385ab110e29eb7f45c450d190ed03c8c6d91f652da2bfc8e5e6f09f458e3fe9edd70f0c55f3fc2c94262758f9f2575fd6f7faf22a99b2482cfee8399f65ada1b696f0910916a5f1e71849ef1f8662829695f49fb1a206a6a02043f607708b66f0856de39ef20ebc2ae7afb97b46fa57d8754cba070de15434903ba0723e09b7be91d416fdf4bfb41da8fc06ed2420a283d88f6dd055637175ae1eacb5f66f93ae31749fd377ff435f27f9188183a6caaa697d2de6161b69fa4fd2ced17a2f6ea85f069aaba4373cced51b153e8f7d27e0701a17c0044206b3b49fb20ed22539592cf969896a55d917655da351cc1dbf5a080956f04d9a6379a5e0ab25aa025edb6b43bd2ee12af867b50804bb9c68d8ff81ce5cdfd733b64e5bc25a9bffd2b76fb13698ca0fbe9aa62a12ba38f7daf3d90f650da23ca90a2a8458131c296d256b8a7d29e497bce7441e522de4f3c0741b1b4b44f483192a87dcaf4068712d055fb3e9376069484e517e5c631b19d95b61638770c85dd244ffefaacbb54904e4a3a229da5f1021ec6f1d1003528f526cc2819d592ac1c4a6af42f6265e230e87fbf9f1a4b67251d3d66cddcf8355e7736d2d94ae712940413e394a257956e9d2b504f5353100a9d1882b7d2b946a32a1dbadaf9c576b92a3b77d2b9f7e153db7a209a19e93c4a67279d27e93c6bc9d45c71d1feb4c09b74f6c44edb7947cbaa4379f7536580d281ce87743ea573f00bdcdfff2ba68e8faffe310205499d7d81129f1dfcee8fb6218258c22ff6b341bc10b953944e897094a553e162547fab5cda86daa5746a5eafc3e54e83e59bd2697115ef515131e9d87d71a78d9d05d09ca3b94e076e2b3a70f20c780178f5b38b2c8a294c3de9f4a53390ce503a23e1fbaf45d6b8ebc09bda157d9ded483a137c016064343421efc011c8debac9eb4ca5a393a7b3b5c0eac3d98d3bb5ffe78287324e93ac5cdce335c772f71b04dfdc2a56466b1c94fbd444e97f41f8d204e5848bec936beb164b0a043a257c6724a961dd62e10cd004820a6b5653e3e099e3a4c2a4e214ada6d89d13fe0766ef403d00af7014a49b123c4bedd31e588191e9fac21f97cbb4f03dd885ad289edda574579c8f3c69cbe9c10ce549490604b377d77a2784b5961af3abb55c6251ebc1d881483e8e1a48434a62002dddbef504700c82f61d937150411cee806077235d1ddba574af084d83d09894b110957abae1a860a6f7c4212e70e529a92096896057877e43f98560d9bd95ee1d957be93e501e71a9bb93ee93749f5152e6220b910b9134dec20ede9d889c22424991d933282705914c6aa6237e91eeab74dfa4bb97eefb0fa25b16940fb079b994e54a966b7e2e9f8ba35870ee7995e5063fe6d443929e3471a2fce9cf897af3637fa7f3b774dcebdf65b995e5a52caf528baa743fbd8fa13cd25983e590bc74cbb428dd927475cc65cfc16e45bada5c4dba75475170ed0190771ba06bb729dd16805fdec9f21e1fa0abe80800dc016f0f57bcf21ba478a7fd035e23be7ce4abb08b78b2871eaa75a12d75586de976a4db956e8f91f43a101d77df5169a9a2ae7e00206c323c2dda0f00dd4e9d479bc348969fbcf57ec49e33f327ca45caadf418c1f9d2ddd52d0ffc68a3a308ca5281184877e8c8d51d49778c147ae42cce3ef265262460394e3d821ad770ec3e77a1b03b059a089639e92a19e7d097cdd4a92e93b52c5b54d27a52c30d2f603a78044bea123055cf9589cbb62abac0154d597652b9a92cf5285344ddee42ba17d255e544baa75cc22789f5b81cc9722c4bc56822cb29ef6a6a8e7dc1f66210cb52276c2ecb05622250cb1e9f61130653d50b5aec2235d3e949a7f28aa3f67ee61666d730ca92340616a104820d8f69c36367c8e68238681b932a8a1d22eb39e1d36c5e96b954fa5a967ab355c0ca5daaa58083ee2a857f8629b95243bc6d1d31b102bb7c22ab5b8bd270c668a897564be0be5ac96a8d5fb2ced6980c6dad5b905e4a7a22bde5f79588c8b0ba0688ab1b59fd92d52d976d8e2bb4c567a950992f657527ab7b22d8e2e3025e79d51f658c83f8c6a689afad175af8019f0fa9d25b912ee70c886517f214afdefa0828b21b583455cb91b3c641d42f53b2d2db3af6f52ea57725bd6b448d957aae07da94ae5f59bd83471a4d9468f999acb09930de1df0b318d210e9ea93a81d10253578e76778c8821e8957455995f06bea450ec17455069a510170eb0ebeaafc10ce14c755159171752bab9aaceab26ac8aac93f5dbfbaa58a32da78cb73337b7c94527c3042105ceb7ac7c2d7188a8fd7dec1c1de0de3d539f7d62cb6e6de2f8757878c037014f0313aae688a21f8c80079cbdd63870da4772b3d9da591acc638739d97086204b7975d70673571dbc8ea13d11078293453e0a538ce36d8883dacb46fb83b6b9919a224c8f5097a2a23266d59cdf1a4195def0a9396590a4e45766bbc5ab84f67f1973885cf3a553991d5a9ee666e3fb1ff3cc6c717807b9ee0203ea66ea00bed2bdf81287c3df5f4417a8f1e813b486f27bd27cab3db3d54e9bd509e9ce28c103b0f2a4b736e156312cad27be572cb934d7ad42b60c1ae53f8e18bae3eacbf654a3984f0b7210d3fb01c3414123e2c34854ff765adb57ac06eb35e19acc4f113ff2a01b295546126eb3596aa46030da900bd88661137976cff943171e33e61d6e34bfa06a15637b4958e64834f1ff450adeb43a1518ad9bac6d368f28e83ee30f4ca3366d3f3ee4d7a7be929881f2ec041ce8305fb497b0316646931256662efa059439087a05e517a25e99581664f5771557a35b22f0f96ad57b27ed058a6a0802fe0dd03be90d585ac7eae1f19044b8060c545adb02e57a94c642813be0cb6148d988a6f1ec011c44f7c6a02a528eb1dd0d7c53e5c30b6d2ae502aeecb0734122e6d6c17efb27ee2a124873ba2e51d23431a27d3a80dd0ad589eff2945d0d470d1915e5d7a0a4a537a2de9b5a5d7e19a5574ba1e2c438ac66ec3c53e67fc740a101c5bd6102c3bec7a3dd629db59517a7de90da43794de48979beefd98c0f501ccd28d725d241c6ac1b1c64359a4e0d118d84cd63bfadf01d71411c5118cab10d613645705c2a47353c20ea32724dc5de0f160a06426525ac9ba82d0b12c80e628594ce0883697c46e8d410a1b39e55783781652fd787e1ceb1a54b7956213e94d099fc9cc43d3f6caa7e3a06dcaa1314610a9b6666f80eecd8f04444a5d99d8350eab6521bd0b4299c62eac902970c632dd67d74587973de741d98ad57a4abb9e16d358da1a8074512b7c7600ca46eee64f172f085be4870543e8eb273c0945c3fcbc657f2ac4a94da3b0cc1985d3dc76e6094a62bb108454bda4d3acd389906243ade868f5788f70d4d3c57b2abd33ef5ae411548cb224639692f3686edcf1f0889d1acf494fdb6ada9e83bdbcf40ad24f495fa4bf94fe4afa6be96f68d94aff52fa57de722dfd1be9ff92fead0e8e4f4ce832727dcafa040b5371d178a4767549f5f529d9710150c218b73ec58e8c69d8f368d982ae085eccf170d6f599ac33d8a9815753ecdff48b3b3c370167c93902b14e0cf6df60ef2e6c30a4c208a8612d5fc83a2beb9caccf659d97fe9df4efa5ff20fd47faab961d9d527992feb39717e9bf4aff8dfade177861f63559e685629fb0f63f38276370b0ff29fd039503d957f274d5868ab497a8ab52917e55fa355052ef3a74922d6669acd4b0986288e40e0e20345429ac0a8132453155bb1244effce02d3626eec87bdcffe1e05d64e4ad005c443a3dc1dd83777a498301b07ec6b94f11dcfc92cd6df08dd25c3677b2b997cd836c1e65b303829b27d9a8db75e937a4df947e4bfa6de977a4df957e4ffa7de90fbcfb6a1f9292c6cab68b7d30762871dccc79dd3eddea8f7cd13142a1a6daa2e2d58f1c76b69c5d5855024eb8e18c81667f2afd99f4e72e1a124ab24f4f3c153b5afbc3107f810904ab44f08eb7074592059b3b4201689572106fdac077d3c17ea5149eb491a26e0953c568a8f0c9a64be9696a9fd3c8a62f9b816c86b219c9662c9b48fa0be95f483f2dfd13e99f4aff4cfa194a56fa391abb0865d842370ec7feb9872c47bdeded430fee2fcbda2a2e838620d70c4d0017eaa600d61200b58902b81f34ced8ca087a5f174501500ef88b290d43db0d4ed1ba8160fbc6b984ab782ddbad6c2f65cbbb7a5daadb6bd5f155fff60670e3a05ee26931037dfb0b85972758c2ba4debae7dc2d08685fca48704deff6488da2d266c997c8e941ee0b7b7b2bd9381c86089710e56325813c48c0c36c4ee047c54e3604b4a0e88c6d89f60728e95834b27d0af80a9daa91807279422b1187b28679c849903b1cfe50ca54899b802b08c8ee507d732b891c12f19dccae00e1b429e9f29d8dea2473cdb2e9669d95611259556bab411fbab38d3e9e113db6ee788826eb5db1aaae3539f4fece0b847c4a767d837b67585985837f4d482cf75b67a6658f23e648f3f2e0dee65f020834719ecb836370008386e09591f02f8d6806ff0e42d2bac3fc8d8e340e06c8183929a7d36c5107cf29b86b6fbc2f41596c11b654f79478a92dc61061fb804e593650e3228e2aaa5a60c4a32d0e156c04add58f468326ae154884079c25d258325ac0b763be311fd9e7bc53d50c36dc90cdf16295edca671dbb39d63bb50d2e936ad01113351c4d15a83c076a16dbaef9d75c2b617b87b1954655093419dd2a0ec39b026bcd0cd73d092415b063af15dea5daf50b480db6037f4b129831e9b7af70adab455cc2d7ca0d80f48f521d6e960248331b9a99688743b97c144065319cc90829e23563402e63c61cfa1686baa6bc5c15c060b19a83f694019d5e1dbd24ee01bdeed885caec1ca15ff3b8b4da3843b3f6ceb9ffc58e1913bcc238ee2383c76b0d5622d738bc73d12a304cb68e3d8c10627323895c199a30f28632b31cb941b05c63622dd0632c82185a8f19c963c2526a32dbb1cfd9d120a4b0b86a04e42c1f7346136f24b7b22c31431258e7a5517138a655d6154ccb14011a8b911770871d6210ef44b325cca7025c3b50c3732dcba8f1b702accf858c9a31c0f8f009a310e767cdb39845de1d3858ff36044c1276cbcd5ad8095c385c18753c1f0926c88647885510daf314ec097259431a6a48ed26578e3a01cfe725b28aa17e1bbc537cb825843c73320a371d0de6c0068a6687478cb9e4ca6c4513dbfb3a22469dfedeb21e2c37b193e38948d7de06c1c3e083a5a8be156c71e45cf7dc327ecd4270583129f236814d38d159f513fc08e9beb675c55f8f460a887ed883154b7692cdd4f843cbd815b71cdeab1717590e1b30c5f64f82ac33744b4e11e9c529fd1e9ad07d1e3680adce913eb210aab2f806c08891174b01a3d576c9369bf68086ad17736113957871ff0d6ba843ee108ae5866e04a92c3def24910076e107119b45670d8411ffb4b7dc03d5487759e7592ca8072c2db38a5926d17f8f2aaa8b18f00e5f139020e8cbade79cf874faaf7b883cee0572532acc8b02ac31a7e2189019c03415d9bc33ab608e823c47e836fd8f8a6dcba5d115e9c7b5f92a23e42d1ab4dc0376cc9b0adba21d89561c76d2008b4451f71df192c15dc2e2cc31e8d1f10ec15dc5850a5e5a2f2b00f459b721b91c2aa1d0f21a8f5ea63f3c6ed51daa35651fb7024431dbd4ed2047b0e3ef5a96027c5278c459e2b37bccfb967702cf283860a76798a0ca7826df7e3286ec7db7260afec51c73f179d1ef5058ac9850cd3342eb833d0a3e1891be7f034296732ccb836358b54a1b7bd18a00e003ca89473abd518a40b106b508b9e53f2945bcfaca99b1637ed0f9e8c5c023aed43927494929190114dc7d3d1921d0d1d85ad776d61b492d15a461b9c84f0dcf43a3e1c5baff0adcbb6e9f659b5e013b38a8cb632ba9491b67fed7a1cdd20e658c81bfdf25e4cfcf81b32ba45aae3d7ece84e46f7cea88a668d8cead4c806f3080a8f76327a92d1b38c5ea8a7e8e603148e9c08c24395578fc5004371f2e60359bca8f39ef9a64c80c530e578ae8db876888b75830239eae7bc3a703802dcbd0331ee1d43d4c2ef32fa90913678c00e8eaf62f0190460d53bf15151462519955de3d6321a5952f644a182d084344f8cee200e38d31b044e2f558f0546162b0bd87c463519d5b15481a0166e8a9ec6466d276eb4afdf10040a6de706025fcefbdfc16814af51977398677f3d474cbd84f9a73323325153e59db9746c84bda07b828b4bbe0b1b935a9438dac5a88fc6e1989654728d28631945d86747936345db04d0518ac1cee6c6064c06a0356bf036903baf28d6338fec6d329dcb68c169b890519a343cc132820b4ac653888b8318c7c04ffe92cea71c2f9cb7afb4bfb90101b2b953dc0cf7bdae509e79501e501184b7367dcbb894e1a2f359d76fc64dcfc866a87b6c1c10e8c2ccd19f078797cdb1cd1c5ad89338d6c20d5bcbf896cfe92357f4281e732c7de2a84a41c62967344553149e71001576dd068e6301a0639d6fbbab1baf64bcfe266adcc878cb54e592e91524de1f746f195fcbf846c6bf8254e59697ee5012b5ac416be7deb5a016dd46b459a4f7686dfc20e3478a0e7dc75eb4d8139b7da6fc6277bb630bd61ae4813ddefa315c337bc532db600c7147b7ec281ef00b3696a30bafecee35509e61d736d1ef9b8cf75eec591f634e6c4c40cdc67abc00c71f5895e34f4cfef8e0d6a0d26d5c241fe79cc9998c4b082e3a7590328d73140379f77e2187ebdafab5e55641f847da711d416e6851872be445817a95cd565c2dd0a4ef688b1eef71d58c235b161547d2718dbed4d1ecb871ac3b6efa311bf534db22259b94367b64d0442d05b40361d03704bb0e3507d6fb0fca98a16ddcf383783f8ac3e20668ea801444edcff5dd64af744faf8e070ec7f11043190f8f4da91d2d0c8f408f1991b53b8038874be35120daf898cd4610f452a25e72bac3a5e5d629cae81c4cd8171bb7aed1e980edb0b01b762ab1cc5197ab584b8e876ed68d76e34f1f0743105dbbefdf90ed1e2173573f29eff013b574094c211613e10fb73973dee81307384c78d1c544c0e4b93f9eb9de61efd232f08d288e0bea65c74a73cff56508a63c645502dd729c854cc1594cde8413b6e4e03f38556f1c4f3c3755b650f60c8d38dfef8e4921d5c6ef31073d3ad68153de5d300eafc2b14950a5c6d5d1c3d2809ef1f61967ac8a7120d5715c70707def4f9a4c59c8f8c457e906cdb20bb436643b5356f4d541c9327dee73a9f68f041cf71dac6e299cba0100e529bb2bb2f11ae58334efd25ef123acb27a99e98072e2c94bdf634cb8680c410d677a2d4b25ebf50cc485f38c379a3d77bc0a8b05e9736e3e26d69416d3711798e6254a49245e96ccae9c1105ee7ccb2bd6b5215da1a9688d46506be32aea26106d25baa4f192c6a56fead1eb29767ac59663c94874cd96cfb0c36013bb63e35ae5c6d54223b712fd92e8d63912dd49741fb89ff12d68e3764f123d70aa879cffe14fd295e811cab1e497c2bd201b13b6962c76422a55c90e9316999826b35a8e47d18e25879e7dc5608546befaa9afd2f75cab9035256f895c3c714dd582b175fd601abee5965b16d113b2d1b3efa8182c8bb8e2e48befc6c11308d0e906189d2440347b7cd529273f654f5c04b0e018bdf8548bbd26e1d0e1bec1e7688f1514bd731db5689cd243221e7df82a4413d9b42fef9d3f4a1f3b0c4a3624faf42379e71c5b3a64b3251f582e8246382a431063687ca594ba99f014b01a070f01401e05eddeeca6c4d58ead7c01f7706cdd95f1e5954aae4cd1958cd1c1e82b1295884819504615ef1559165589549a2e1943239005d90ba069ba43792a518d2d17fd505f30917a7f0d6f07acaed3d67073805e6cc22aae595b1c51935eb4920b71401f0f1e968379ea1174deeab536217b704561fca4f1e1881d2e99f1e08d8d44ad23820daf0f3c23860c0827e063d491a84b6fa76ee1001143b3072815bba80f81b7695e7da67bc6948a43d056aea2731c403c720ed5ed459c303458f1bc2b25e203f01db31daedf68800938d2a5e15b3e0911330487941165e8520db150c608e4ceb8f6e9351444e58805a26375572b1058d641f5a11354576522911267e6cbcf255a70875110d3141deea94467d433b45ff86269067edd6a72bee529779e73cad8f79ea5ac7cdd1b565cf80d67c9d6743bcaa30a4635a58c392a1bed35b343d766ec0b1ab7774360968c449fc7794bc88194f9f433fcbb623fb5603316668f847df0573d7391dd515e99da6ab5b5a62c2b909b7d72b3e285349ca4c09a891cd70aba7896c99215ad64898bbdca556fd224a9e31e1f8f143bca67d2e5af468fa0c9642593b5cfbeba1496d7c0c89a938dafb209aa6f7cfa1a18d76ce10bdc8764750e6bb2850f3a0643737229932bfa59a67cc8e49a78553c283d99dcc8e497830628c44e1a76e500686b44b1bef56d3e1d27f22b4c9f09178e040a9cf2ba21185e7e3da200075ebdd8d5ce6f2f1d81b3ab617f1b677178bd7e1bd08690ddb940e6e6ccb030821859b8631816937be0327920257b1ed627cf5c423c79e455c3977501eb13d36776f1c0be1ebe9220e1da6b8240213f08428c605cbae3ca39b75f3db30c82ddb175b558362e9680e93340d3371877e4a66117d0363944a4c1929918341f4e26cf4c5f64f24a51e6be511e895ac933ae1c20feec39b8e7b01ffc6c059e9a9b935d40a64ec29158626427f60bccc93be2a8a6b112a64e3e186be362236619568f65582c917d3f361b574974373a5ae2f69d65fcadf1a00a0a67b921ccb93f6464f209d13d6772e0fe6397b8cf605445364e6552c2b610fa1b3ae59c1d7d1dff1747fc25cf41e0baf353b173594793dd71cdba19082764e7ca9b6e85e32a933224da0584adb88579ac18675f8f8d446153d69aa72402e5a76f7c4f32be8262baae3550aa6e2475529549cd47923b06fa60d851d851ccbe70615d253d8a07b9895b300e86c32dfb6cd9ebde127ae88c5f10bc0aaa04c01dd3b87ad8426864c84b64e3c9b0c2f5c0b7dad73986b2a734dc54d90a455fdfb048781df4eee626c986442fc1729e38042b411f217c5781fe05e27252f9827e25095339b8f4657a2a5e0f4b86852bc1c4c4ce97bd034d1fc8561eac5b17e91c53ae82c154929cf8d2d7d5ef87fa450fe1b2a7291fdb3269056db529bb64811f5dfd7e296e6a971c7a3b59e04b535f7a09d9faa57c27e9760cd92e39fe2f0db683be5adf8ced64a75fe43b028e835d86c6ae0bcfaa20dc16a9e899abcfab4527a65b792859147075f3be563168a1c87b86a005b323c017bfd98b7e002a83c052fcd6669efd1683c10cfd1631f483e97fab625d5b83bd63ef47a7ac7cff9b174136e9a621d8f65266e8ad5219252d26e194c6bad9c73289826c5c260ab86cf6e85b5fe5645d13bb3409faaa26cb841d45de58498eeacbf2aa2647554dba53f59776be40d84e95e135f41d850dc12a63479be9d80f65ea4b8f3d40f140a36fd044810f3694d8526553fb009451e0c09859d347013afb6447d6480cfd34e9588cd4c8f71bb18c0d7b1cc0118f2dee629c84329ee3aa1f58e4ab87bec725473182532f319b223fa6100e6b681c94d97b65e41d687bdce3d6da01d6d3a0cdaa57aceb71308672d0ecde4f6714ac8c7612e22898bc76807be43b35bb0d72eaafc64489c713b7bc0f26789a743f9ca47288606c8d27701ab81737340e8c7195911f655cb89d2cd00e1a8f2d21e8e12cc660450101bf548982f9885bde07ed5793d5dbc190f6c194ef0380a2a0cac87b1adbf7c1eceee3293704678c8b33ca20a9583aa732f856661ee8ff52e2928bdf14587cebfa8bd2fd4d83a65cfc74e92f6ac5dd5dd078f14d1f78e9fac23f8cdc108c273fedc5b2275e390dcafc28a7be7ad854ccd3b0583a596cfaadafb84ad8c2e94f2d4fff95f1c7817d97e85bd6e4af6b393104cdab2fa38c5d0d07115bd2bfc7e247c74e9396336fcc507e74321d2867bfa9feaf3dfcfd38b3c90259cadf412d1d809e3504337e4c390eebdc037ae6ede9a0bf336673de9ef3809e06a084de8675adfaa92ff665b8f125832c9b743efd0deb2f1d659365d2c168a7416b21ee59eff5f7d1da60b249efd2bedf8c2f664f7044e6dc6397f185ce83719cfba6733e6badc785ad8573dfdfb947e12c70f82cee3550d2beee1776c743cff16ad6bb143b90f3acc9f802e781cf53ef763640249becfa3418793c8c6c72e6628f3201be393f302886a01eb20b324d5144a64b88ee12c82e112f9d3267c9190ba47c315a5cf515aabb32e25b48e16adcbe5e75a9249bb2ae5741ad9933ba2dabc0f653becc8ab5c49584c58fd046e50a2f5d8fc7eec477b772d5cd684342e3790fc8d20d15cd7200ae59b35b8ff66f08206d537de699781e4cec992754688c954c30f967c194e6fc0c9ffac219dfcb7930e1e1b4c75dc77dc5a30a7bc926a34dd6f715377eead766c637125789fb8a0b678262e9a0d3a91f734cdb786c31f171f5fffed7fffb3fff1f690145e4 + + + + diff --git a/libvncserver/main.c b/libvncserver/main.c index 3f4580d..81c3c65 100644 --- a/libvncserver/main.c +++ b/libvncserver/main.c @@ -242,7 +242,7 @@ clientOutput(void *data) UNLOCK(cl->updateMutex); /* we really needn't lock now. */ } } - + /* OK, now, to save bandwidth, wait a little while for more updates to come along. */ usleep(cl->screen->rfbDeferUpdateTime * 1000); @@ -301,8 +301,14 @@ listenerRun(void *data) len = sizeof(peer); + if (rfbScreen->inetdSock != -1) { + cl = rfbNewClient(rfbScreen, rfbScreen->inetdSock); + rfbStartOnHoldClient(cl); + return; + } + /* TODO: this thread wont die by restarting the server */ - while ((client_fd = accept(rfbScreen->rfbListenSock, + while ((client_fd = accept(rfbScreen->rfbListenSock, (struct sockaddr*)&peer, &len)) >= 0) { cl = rfbNewClient(rfbScreen,client_fd); len = sizeof(peer); @@ -489,7 +495,7 @@ rfbScreenInfoPtr rfbGetScreen(int* argc,char** argv, rfbScreen->rfbNeverShared = FALSE; rfbScreen->rfbDontDisconnect = FALSE; rfbScreen->rfbAuthPasswdData = 0; - + rfbScreen->width = width; rfbScreen->height = height; rfbScreen->bitsPerPixel = rfbScreen->depth = 8*bytesPerPixel;