From 764544601a689eec271908f30416fa27b127d57e Mon Sep 17 00:00:00 2001 From: tpearson Date: Sat, 9 Jul 2011 02:23:29 +0000 Subject: [PATCH] Remove the tq in front of these incorrectly TQt4-converted methods/data members: tqrepaint[...] tqinvalidate[...] tqparent[...] tqmask[...] tqlayout[...] tqalignment[...] git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kmyfirewall@1240522 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- KMFSysTray/details_designer.ui | 2 +- KMFSysTray/mainwidget_designer.ui | 2 +- kmyfirewall/compilers/pf/kmfpfcompiler.cpp | 12 +++++----- kmyfirewall/core/ipaddress.h | 4 ++-- kmyfirewall/core/kmfnethost.h | 2 +- kmyfirewall/core/kmfnetzone.cpp | 22 +++++++++---------- kmyfirewall/core/kmfnetzone.h | 8 +++---- kmyfirewall/core/kmfnetzonelist.cpp | 4 ++-- kmyfirewall/core/netfilterobject.h | 2 +- .../kmfgenericinterface_part.cpp | 8 +++---- .../kmfgenericinterface_part.h | 4 ++-- .../kmfgenericinterfaceprotocol.cpp | 4 ++-- .../kmyfirewallgenericinterfacehostwidget.ui | 2 +- .../kmyfirewallgenericinterfaceicmp.ui | 2 +- .../kmyfirewallgenericinterfacelogging.ui | 2 +- .../kmyfirewallgenericinterfacenatwidget.ui | 2 +- ...yfirewallgenericinterfaceprotocolwidget.ui | 2 +- kmyfirewall/ipteditor/kmfipteditorpart.cpp | 10 ++++----- kmyfirewall/ipteditor/kmfipteditorpart.h | 4 ++-- .../ipteditor/kmyfirewallchaineditor.ui | 2 +- .../kmyfirewallchaineditornewchain.ui | 2 +- .../ipteditor/kmyfirewallruleeditor.ui | 2 +- kmyfirewall/kmfwidgets/kmflistviewitem.cpp | 2 +- kmyfirewall/kmfwidgets/kmfmynetworkwidget.cpp | 4 ++-- .../kmfwidgets/kmfnethostpropertieswidget.cpp | 12 +++++----- kmyfirewall/kmfwidgets/kmfnetworkwidget.cpp | 2 +- .../kmfwidgets/kmfprotocollistview.cpp | 8 +++---- .../kmfwidgets/kmyfirewalldocumentinfo.ui | 2 +- ...ewallgenericinterfaceeditprotocolwidget.ui | 2 +- .../kmfwidgets/kmyfirewallhostwidget.ui | 2 +- .../kmfwidgets/kmyfirewallinterfacewidget.ui | 2 +- .../kmfwidgets/kmyfirewalliptdocoptions.ui | 2 +- .../kmyfirewallipv4adddresswidget.ui | 2 +- .../kmfwidgets/kmyfirewallmultiportwidget.ui | 2 +- .../kmfwidgets/kmyfirewallmynetworkwidget.ui | 2 +- .../kmyfirewallnethostproperties.ui | 2 +- .../kmfwidgets/kmyfirewallnetworkwidget.ui | 2 +- .../kmfwidgets/kmyfirewallnewdocument.ui | 2 +- .../kmfwidgets/kmyfirewallobjectinfo.ui | 2 +- .../kmfwidgets/kmyfirewallportwidget.ui | 2 +- .../kmfwidgets/kmyfirewallprotocollistview.ui | 2 +- .../kmyfirewallprotocolpropertieswidget.ui | 2 +- .../kmyfirewallselectactivetarget.ui | 2 +- .../kmfwidgets/kmyfirewallselectinterface.ui | 2 +- .../kmyfirewallsystemsettingslinux.ui | 2 +- .../kmfwidgets/kmyfirewalltemplatechooser.ui | 2 +- .../kmfwidgets/kmyfirewalltransactionlog.ui | 2 +- .../kmyfirewallruleeditorcustomrule.ui | 2 +- .../kmfruleeditorinterface.cpp | 2 +- .../kmyfirewallruleeditorinterface.ui | 2 +- .../ip_option/kmyfirewallruleeditorip.ui | 2 +- .../kmyfirewallruleeditorlimit.ui | 2 +- .../kmyfirewallruleeditortargetlog.ui | 2 +- .../mac_option/kmyfirewallruleeditormac.ui | 2 +- .../kmyfirewallruleeditortargetmark.ui | 2 +- .../kmyfirewallruleeditortargetnat.ui | 2 +- .../protocol_option/kmfruleeditorprotocol.cpp | 20 ++++++++--------- .../kmyfirewallruleeditorprotocol.ui | 10 ++++----- .../kmyfirewallruleeditorstate.ui | 2 +- .../tos_option/kmyfirewallruleeditortos.ui | 2 +- .../kmyfirewallruleeditortos.ui | 2 +- 61 files changed, 113 insertions(+), 113 deletions(-) diff --git a/KMFSysTray/details_designer.ui b/KMFSysTray/details_designer.ui index 55bd3b8..a221336 100644 --- a/KMFSysTray/details_designer.ui +++ b/KMFSysTray/details_designer.ui @@ -475,7 +475,7 @@ raiseWidget(int) - + kpushbutton.h kpushbutton.h diff --git a/KMFSysTray/mainwidget_designer.ui b/KMFSysTray/mainwidget_designer.ui index c275006..06cd24c 100644 --- a/KMFSysTray/mainwidget_designer.ui +++ b/KMFSysTray/mainwidget_designer.ui @@ -80,7 +80,7 @@ - + kled.h kpushbutton.h diff --git a/kmyfirewall/compilers/pf/kmfpfcompiler.cpp b/kmyfirewall/compilers/pf/kmfpfcompiler.cpp index 1796705..527908b 100644 --- a/kmyfirewall/compilers/pf/kmfpfcompiler.cpp +++ b/kmyfirewall/compilers/pf/kmfpfcompiler.cpp @@ -239,7 +239,7 @@ void KMFPFCompiler::createIncommingACCESSRules( KMFNetZone* zone, KMFGenericDoc* } } - m_compiledScript.append( TQString("\n# Settup rules for zone %1 [%2/%3]\n").tqarg( zone->guiName() ).tqarg( zone->address()->toString() ).tqarg( zone->tqmaskLength() ) ); + m_compiledScript.append( TQString("\n# Settup rules for zone %1 [%2/%3]\n").tqarg( zone->guiName() ).tqarg( zone->address()->toString() ).tqarg( zone->maskLength() ) ); TQPtrList& zoneProts = zone->protocols(); TQPtrListIterator itZoneProtocols ( zoneProts ); while ( itZoneProtocols.current() ) { @@ -255,7 +255,7 @@ void KMFPFCompiler::createIncommingACCESSRules( KMFNetZone* zone, KMFGenericDoc* m_compiledScript.append( " quick inet proto tcp from " ); m_compiledScript.append( zone->address()->toString() ); m_compiledScript.append( "/" ); - m_compiledScript.append( TQString::number( zone->tqmaskLength() ) ); + m_compiledScript.append( TQString::number( zone->maskLength() ) ); m_compiledScript.append( " to any " ); m_compiledScript.append( " port " ); m_compiledScript.append( getPortList( prot->protocol()->tcpPorts() ) ); @@ -269,7 +269,7 @@ void KMFPFCompiler::createIncommingACCESSRules( KMFNetZone* zone, KMFGenericDoc* m_compiledScript.append( " quick inet proto udp from " ); m_compiledScript.append( zone->address()->toString() ); m_compiledScript.append( "/" ); - m_compiledScript.append( TQString::number( zone->tqmaskLength() ) ); + m_compiledScript.append( TQString::number( zone->maskLength() ) ); m_compiledScript.append( " to any " ); m_compiledScript.append( " port " ); m_compiledScript.append( getPortList( prot->protocol()->udpPorts() ) ); @@ -344,7 +344,7 @@ void KMFPFCompiler::createOutgoingACCESSRules( KMFNetZone* zone, KMFGenericDoc* } } - m_compiledScript.append( TQString("\n# Settup rules for zone %1 [%2/%3]\n").tqarg( zone->guiName() ).tqarg( zone->address()->toString() ).tqarg( zone->tqmaskLength() ) ); + m_compiledScript.append( TQString("\n# Settup rules for zone %1 [%2/%3]\n").tqarg( zone->guiName() ).tqarg( zone->address()->toString() ).tqarg( zone->maskLength() ) ); TQPtrList& zoneProts = zone->protocols(); TQPtrListIterator itZoneProtocols ( zoneProts ); while ( itZoneProtocols.current() ) { @@ -360,7 +360,7 @@ void KMFPFCompiler::createOutgoingACCESSRules( KMFNetZone* zone, KMFGenericDoc* m_compiledScript.append( " quick inet proto tcp from " ); m_compiledScript.append( zone->address()->toString() ); m_compiledScript.append( "/" ); - m_compiledScript.append( TQString::number( zone->tqmaskLength() ) ); + m_compiledScript.append( TQString::number( zone->maskLength() ) ); m_compiledScript.append( " to any " ); m_compiledScript.append( " port " ); m_compiledScript.append( getPortList( prot->protocol()->tcpPorts() ) ); @@ -374,7 +374,7 @@ void KMFPFCompiler::createOutgoingACCESSRules( KMFNetZone* zone, KMFGenericDoc* m_compiledScript.append( " quick inet proto udp from " ); m_compiledScript.append( zone->address()->toString() ); m_compiledScript.append( "/" ); - m_compiledScript.append( TQString::number( zone->tqmaskLength() ) ); + m_compiledScript.append( TQString::number( zone->maskLength() ) ); m_compiledScript.append( " to any " ); m_compiledScript.append( " port " ); m_compiledScript.append( getPortList( prot->protocol()->udpPorts() ) ); diff --git a/kmyfirewall/core/ipaddress.h b/kmyfirewall/core/ipaddress.h index 9bf8b2c..d80cd44 100644 --- a/kmyfirewall/core/ipaddress.h +++ b/kmyfirewall/core/ipaddress.h @@ -81,7 +81,7 @@ private: public: /** Calculates the nettqmask from the tqmask length e.g. 255.255.255.0 -> 24 */ - static IPAddress& calcNetworkMaskFromLength( int tqmaskLen ); + static IPAddress& calcNetworkMaskFromLength( int maskLen ); /** Calculates the given nettqmask length to the net tqmask. e.g. 24 -> 255.255.255.0 */ @@ -94,7 +94,7 @@ public: static bool isValidAddress( IPAddress& ); /** Checks if the the addresses are on the same network. */ - static bool hostsOnSameNetwork( IPAddress&, IPAddress&, int tqmaskLen ); + static bool hostsOnSameNetwork( IPAddress&, IPAddress&, int maskLen ); /** Checks if the the addresses are on the same network. */ static bool hostsOnSameNetwork( IPAddress&, IPAddress&, IPAddress& tqmask ); diff --git a/kmyfirewall/core/kmfnethost.h b/kmyfirewall/core/kmfnethost.h index 44c2dad..dd30f4a 100644 --- a/kmyfirewall/core/kmfnethost.h +++ b/kmyfirewall/core/kmfnethost.h @@ -95,7 +95,7 @@ protected slots: void slotOnProtocolUsageDeleted( TQObject* protocol ); private: // Data -// int m_tqmaskLen; +// int m_maskLen; TQPtrList m_protocols; bool m_logIncoming, m_logOutgoing; TQString m_limitScale; diff --git a/kmyfirewall/core/kmfnetzone.cpp b/kmyfirewall/core/kmfnetzone.cpp index 6beeb06..9b9934b 100644 --- a/kmyfirewall/core/kmfnetzone.cpp +++ b/kmyfirewall/core/kmfnetzone.cpp @@ -70,7 +70,7 @@ KMFNetZone::KMFNetZone( NetfilterObject *tqparent, const char* name, const TQStr if ( KMFNetZone * zone = dynamic_cast ( tqparent ) ) { m_zoneType = NODE; m_zone = zone; - setZone( *m_zone->address(), m_zone->tqmaskLength() /* , *m_zone->tqmask() */ ); + setZone( *m_zone->address(), m_zone->maskLength() /* , *m_zone->tqmask() */ ); } else if ( KMFGenericDoc * doc = dynamic_cast ( tqparent ) ) { m_zoneType = ROOT; m_doc = doc; @@ -223,13 +223,13 @@ void KMFNetZone::setMaskLength( int len ){ // kdDebug() << "void KMFNetZone::setMaskLength( int len )" << endl; if ( len < 0 || len > 32 ) { kdDebug() << "ERROR: Mask Lengh invalid: " << len << endl; - m_tqmaskLen = -1; + m_maskLen = -1; return; } - if ( m_tqmaskLen == len ) { + if ( m_maskLen == len ) { return; } - m_tqmaskLen = len; + m_maskLen = len; changed(); } @@ -391,9 +391,9 @@ bool KMFNetZone::protocolInherited( const TQUuid& uuid ) const { return m_zone->protocolInherited( uuid ); } -void KMFNetZone::setZone( const IPAddress& from, int tqmaskLen ) { +void KMFNetZone::setZone( const IPAddress& from, int maskLen ) { m_address->setAddress( from.toString() ); - setMaskLength( tqmaskLen ); + setMaskLength( maskLen ); changed(); } @@ -532,7 +532,7 @@ TQString KMFNetZone::toString() { "Zone: " + address()->toString() + "/%1" + " name: " + NetfilterObject::name() + - " GUIName: " + guiName() ).tqarg(tqmaskLength()) ; + " GUIName: " + guiName() ).tqarg(maskLength()) ; return ret; } @@ -601,12 +601,12 @@ void KMFNetZone::refreshNetworkTree() { KMFNetZone *thisTry = allZones->at(j); if ( thisTry != currZone && ! ( ( thisTry->address() == currZone->address() ) == IPAddress::ETQUAL && - thisTry->tqmaskLength() == currZone->tqmaskLength() + thisTry->maskLength() == currZone->maskLength() ) && - IPAddress::hostsOnSameNetwork( *thisTry->address(), *currZone->address(), thisTry->tqmaskLength() ) ) { + IPAddress::hostsOnSameNetwork( *thisTry->address(), *currZone->address(), thisTry->maskLength() ) ) { thisTry->placeZoneInZone( currZone ); // allZones->remove( thisTry ); // kdDebug() << "Add Zone: " << currZone->toString() << endl; @@ -646,7 +646,7 @@ void KMFNetZone::refreshNetworkTree() { KMFTarget *currHost = allHosts->at(i); for( int j = allZones->count() - 1; allZones->count() > 0 && j >= 0; j-- ) { KMFNetZone *currZone = allZones->at(j); - if ( IPAddress::hostsOnSameNetwork( *currZone->address(), *currHost->address(), currZone->tqmaskLength() ) ) { + if ( IPAddress::hostsOnSameNetwork( *currZone->address(), *currHost->address(), currZone->maskLength() ) ) { currZone->placeHostInZone( currHost ); /* kdDebug() << "Add Host: " << currHost->toString() << endl; kdDebug() << "to Zone : " << currZone->toString() << endl;*/ @@ -799,7 +799,7 @@ const TQDomDocument& KMFNetZone::getDOMTree() { TQDomElement tqmask = doc.createElement( XML::NetMask_Element ); root.appendChild( tqmask ); - tqmask.setAttribute( XML::Address_Attribute, tqmaskLength() ); + tqmask.setAttribute( XML::Address_Attribute, maskLength() ); TQPtrListIterator it ( m_zones ); while ( it.current() ) { diff --git a/kmyfirewall/core/kmfnetzone.h b/kmyfirewall/core/kmfnetzone.h index 064bd3c..919fcf4 100644 --- a/kmyfirewall/core/kmfnetzone.h +++ b/kmyfirewall/core/kmfnetzone.h @@ -70,12 +70,12 @@ public: IPAddress* tqmask() const { IPAddress *addr = new IPAddress(); - addr->setAddress( IPAddress::calcNetworkMaskFromLength( m_tqmaskLen ).toString() ); + addr->setAddress( IPAddress::calcNetworkMaskFromLength( m_maskLen ).toString() ); return addr; }; - int tqmaskLength() const { - return m_tqmaskLen; + int maskLength() const { + return m_maskLen; } KMFGenericDoc* doc() const; @@ -175,7 +175,7 @@ private: // Data TQPtrList m_hosts; KMFError *m_err; int m_zoneType; - int m_tqmaskLen; + int m_maskLen; // bool m_deadEnd; TQString m_guiName; bool m_readOnly; diff --git a/kmyfirewall/core/kmfnetzonelist.cpp b/kmyfirewall/core/kmfnetzonelist.cpp index 50cf68b..128bffa 100644 --- a/kmyfirewall/core/kmfnetzonelist.cpp +++ b/kmyfirewall/core/kmfnetzonelist.cpp @@ -24,9 +24,9 @@ int KMFNetZoneList::compareItems( TQPtrCollection::Item item1, TQPtrCollection:: KMFNetZone* z2 = (KMFNetZone*) item2; // KMFNetZone* z2 = static_cast( *item2 ); - if ( z1->tqmaskLength() > z2->tqmaskLength() ) { + if ( z1->maskLength() > z2->maskLength() ) { return 1; - } else if ( z1->tqmaskLength() == z2->tqmaskLength() ){ + } else if ( z1->maskLength() == z2->maskLength() ){ return 0; } else { return -1; diff --git a/kmyfirewall/core/netfilterobject.h b/kmyfirewall/core/netfilterobject.h index 9d08f69..39e6057 100644 --- a/kmyfirewall/core/netfilterobject.h +++ b/kmyfirewall/core/netfilterobject.h @@ -145,7 +145,7 @@ public: void changed(); /** Get the Parent object */ - NetfilterObject* tqparentObj() const { + NetfilterObject* parentObj() const { return m_parent; } diff --git a/kmyfirewall/genericinterface/kmfgenericinterface_part.cpp b/kmyfirewall/genericinterface/kmfgenericinterface_part.cpp index 3208203..9381143 100644 --- a/kmyfirewall/genericinterface/kmfgenericinterface_part.cpp +++ b/kmyfirewall/genericinterface/kmfgenericinterface_part.cpp @@ -34,13 +34,13 @@ Author: Christian Hubinger , (C) 2001 #include "../kmfwidgets/kmfmainwindow.h" namespace KMF { -KMFGenericInterfacePart::KMFGenericInterfacePart( TQWidget *tqparentWidget, const char * widgetName , +KMFGenericInterfacePart::KMFGenericInterfacePart( TQWidget *parentWidget, const char * widgetName , TQObject *tqparent, const char *name, const TQStringList & /*args*/ ) : KParts::ReadWritePart( tqparent, name ) { setInstance( KMFGenericInterfacePartFactory::instance() ); - m_genericinterface = new KMFGenericInterface( tqparentWidget, widgetName ); + m_genericinterface = new KMFGenericInterface( parentWidget, widgetName ); m_app = dynamic_cast( tqparent ); @@ -225,11 +225,11 @@ KMFGenericInterfacePartFactory::~KMFGenericInterfacePartFactory() { s_instance = 0L; } -KParts::Part* KMFGenericInterfacePartFactory::createPartObject( TQWidget *tqparentWidget, const char *widgetName, +KParts::Part* KMFGenericInterfacePartFactory::createPartObject( TQWidget *parentWidget, const char *widgetName, TQObject *tqparent, const char *name, const char *classname, const TQStringList& args) { // Create an instance of our Part - KMFGenericInterfacePart * obj = new KMFGenericInterfacePart( tqparentWidget, widgetName, tqparent, name ,args ); + KMFGenericInterfacePart * obj = new KMFGenericInterfacePart( parentWidget, widgetName, tqparent, name ,args ); // See if we are to be read-write or not if ( TQCString( classname ) == "KParts::ReadOnlyPart" ) diff --git a/kmyfirewall/genericinterface/kmfgenericinterface_part.h b/kmyfirewall/genericinterface/kmfgenericinterface_part.h index dfed5f1..70eb328 100644 --- a/kmyfirewall/genericinterface/kmfgenericinterface_part.h +++ b/kmyfirewall/genericinterface/kmfgenericinterface_part.h @@ -32,7 +32,7 @@ class KMFGenericInterfacePart: public KParts::ReadWritePart { Q_OBJECT TQ_OBJECT public: - KMFGenericInterfacePart( TQWidget *tqparent, const char *name, TQObject *tqparentObject, const + KMFGenericInterfacePart( TQWidget *tqparent, const char *name, TQObject *parentObject, const char *nameOb, const TQStringList & /*args*/ ); virtual ~KMFGenericInterfacePart(); @@ -98,7 +98,7 @@ class KMFGenericInterfacePartFactory : public KParts::Factory public: KMFGenericInterfacePartFactory(); virtual ~KMFGenericInterfacePartFactory(); - virtual KParts::Part* createPartObject( TQWidget *tqparentWidget, const char *widgetName, + virtual KParts::Part* createPartObject( TQWidget *parentWidget, const char *widgetName, TQObject *tqparent, const char *name, const char *classname, const TQStringList &args ); static KInstance* instance(); diff --git a/kmyfirewall/genericinterface/kmfgenericinterfaceprotocol.cpp b/kmyfirewall/genericinterface/kmfgenericinterfaceprotocol.cpp index c171324..8fd78dd 100644 --- a/kmyfirewall/genericinterface/kmfgenericinterfaceprotocol.cpp +++ b/kmyfirewall/genericinterface/kmfgenericinterfaceprotocol.cpp @@ -223,7 +223,7 @@ void KMFGenericInterfaceProtocol::slotNewItemSelected( TQListViewItem* item ) { if ( m_zone ) { kdDebug() << "kmfitem->zone() pointer is valid" << endl; kmfitem->setText( 0,m_zone->guiName() ); - kmfitem->setText( 1, "[" + m_zone->address()->toString() + i18n("/%1]").tqarg( m_zone->tqmaskLength() ) ); + kmfitem->setText( 1, "[" + m_zone->address()->toString() + i18n("/%1]").tqarg( m_zone->maskLength() ) ); m_protocolLIstView->setZone( m_zone ); m_protocolLIstView->setEnabled( true ); m_network_widget->loadZone( m_zone ); @@ -539,7 +539,7 @@ void KMFGenericInterfaceProtocol::slotZoneChanged( KMFNetZone* z ) { kdDebug() << "void KMFGenericInterfaceProtocol::slotZoneChanged( KMFNetZone* z )" << endl; if ( KMFListViewItem *item = findItem( z->uuid() ) ) { kdDebug() << "Updating item" << endl; - item->setText( 1, "[" + z->address()->toString() + i18n("/%1]").tqarg( z->tqmaskLength() ) ); + item->setText( 1, "[" + z->address()->toString() + i18n("/%1]").tqarg( z->maskLength() ) ); } m_doc->currentDocAsGenericDoc()->incomingZone()->refreshNetworkTree(); m_doc->currentDocAsGenericDoc()->outgoingZone()->refreshNetworkTree(); diff --git a/kmyfirewall/genericinterface/kmyfirewallgenericinterfacehostwidget.ui b/kmyfirewall/genericinterface/kmyfirewallgenericinterfacehostwidget.ui index e417399..2c244ad 100644 --- a/kmyfirewall/genericinterface/kmyfirewallgenericinterfacehostwidget.ui +++ b/kmyfirewall/genericinterface/kmyfirewallgenericinterfacehostwidget.ui @@ -293,7 +293,7 @@ - + knuminput.h knuminput.h diff --git a/kmyfirewall/genericinterface/kmyfirewallgenericinterfaceicmp.ui b/kmyfirewall/genericinterface/kmyfirewallgenericinterfaceicmp.ui index 0b29840..5906c0e 100644 --- a/kmyfirewall/genericinterface/kmyfirewallgenericinterfaceicmp.ui +++ b/kmyfirewall/genericinterface/kmyfirewallgenericinterfaceicmp.ui @@ -174,5 +174,5 @@ However, there are a lot of network programs that use ping requests to find and setEnabled(bool) - + diff --git a/kmyfirewall/genericinterface/kmyfirewallgenericinterfacelogging.ui b/kmyfirewall/genericinterface/kmyfirewallgenericinterfacelogging.ui index 66ee392..d73f627 100644 --- a/kmyfirewall/genericinterface/kmyfirewallgenericinterfacelogging.ui +++ b/kmyfirewall/genericinterface/kmyfirewallgenericinterfacelogging.ui @@ -187,7 +187,7 @@ The entries are written to the system's main log file setEnabled(bool) - + krestrictedline.h diff --git a/kmyfirewall/genericinterface/kmyfirewallgenericinterfacenatwidget.ui b/kmyfirewall/genericinterface/kmyfirewallgenericinterfacenatwidget.ui index 7d0e958..6bc0e8b 100644 --- a/kmyfirewall/genericinterface/kmyfirewallgenericinterfacenatwidget.ui +++ b/kmyfirewall/genericinterface/kmyfirewallgenericinterfacenatwidget.ui @@ -282,7 +282,7 @@ are using your computer a their default gateway.</p> setDisabled(bool) - + knuminput.h knuminput.h diff --git a/kmyfirewall/genericinterface/kmyfirewallgenericinterfaceprotocolwidget.ui b/kmyfirewall/genericinterface/kmyfirewallgenericinterfaceprotocolwidget.ui index 7ccc049..0d53e72 100644 --- a/kmyfirewall/genericinterface/kmyfirewallgenericinterfaceprotocolwidget.ui +++ b/kmyfirewall/genericinterface/kmyfirewallgenericinterfaceprotocolwidget.ui @@ -208,7 +208,7 @@ - + klistview.h diff --git a/kmyfirewall/ipteditor/kmfipteditorpart.cpp b/kmyfirewall/ipteditor/kmfipteditorpart.cpp index 02d8d12..0cf4773 100644 --- a/kmyfirewall/ipteditor/kmfipteditorpart.cpp +++ b/kmyfirewall/ipteditor/kmfipteditorpart.cpp @@ -41,7 +41,7 @@ Author: Christian Hubinger , (C) 2001 #include "../core/kmfdoc.h" #include "../core/kmfiptdoc.h" namespace KMF { -KMFIPTEditorPart::KMFIPTEditorPart( TQWidget *tqparentWidget, const char *widgetName, +KMFIPTEditorPart::KMFIPTEditorPart( TQWidget *parentWidget, const char *widgetName, TQObject *tqparent, const char *name ) : KParts::ReadWritePart( tqparent, name ) { KMFMainWindow *app = 0; @@ -55,11 +55,11 @@ KMFIPTEditorPart::KMFIPTEditorPart( TQWidget *tqparentWidget, const char *widget } // this should be your custom internal widget - m_ruleedit = new KMFRuleEdit( tqparentWidget, widgetName ); + m_ruleedit = new KMFRuleEdit( parentWidget, widgetName ); m_ruleedit->setKMFMainWindow( app ); m_ruleedit->setFocusPolicy( TQ_ClickFocus ); - m_editdoc = new KMFIPTDocOptions( tqparentWidget , "m_editdoc" ); + m_editdoc = new KMFIPTDocOptions( parentWidget , "m_editdoc" ); m_editdoc->hide(); m_ruleedit->loadDoc( app->network() ); @@ -275,11 +275,11 @@ KMFIPTEditorPartFactory::~KMFIPTEditorPartFactory() { s_instance = 0L; } -KParts::Part* KMFIPTEditorPartFactory::createPartObject( TQWidget *tqparentWidget, const char *widgetName, +KParts::Part* KMFIPTEditorPartFactory::createPartObject( TQWidget *parentWidget, const char *widgetName, TQObject *tqparent, const char *name, const char *classname, const TQStringList& ) { // Create an instance of our Part - KMFIPTEditorPart * obj = new KMFIPTEditorPart( tqparentWidget, widgetName, tqparent, name ); + KMFIPTEditorPart * obj = new KMFIPTEditorPart( parentWidget, widgetName, tqparent, name ); // See if we are to be read-write or not if ( TQCString( classname ) == "KParts::ReadOnlyPart" ) diff --git a/kmyfirewall/ipteditor/kmfipteditorpart.h b/kmyfirewall/ipteditor/kmfipteditorpart.h index 754968d..21e0a41 100644 --- a/kmyfirewall/ipteditor/kmfipteditorpart.h +++ b/kmyfirewall/ipteditor/kmfipteditorpart.h @@ -46,7 +46,7 @@ public: /** * Default constructor */ - KMFIPTEditorPart(TQWidget *tqparentWidget, const char *widgetName, + KMFIPTEditorPart(TQWidget *parentWidget, const char *widgetName, TQObject *tqparent, const char *name); /** @@ -112,7 +112,7 @@ class KMFIPTEditorPartFactory : public KParts::Factory public: KMFIPTEditorPartFactory(); virtual ~KMFIPTEditorPartFactory(); - virtual KParts::Part* createPartObject( TQWidget *tqparentWidget, const char *widgetName, + virtual KParts::Part* createPartObject( TQWidget *parentWidget, const char *widgetName, TQObject *tqparent, const char *name, const char *classname, const TQStringList &args ); static KInstance* instance(); diff --git a/kmyfirewall/ipteditor/kmyfirewallchaineditor.ui b/kmyfirewall/ipteditor/kmyfirewallchaineditor.ui index 93c5b2d..2f5f011 100644 --- a/kmyfirewall/ipteditor/kmyfirewallchaineditor.ui +++ b/kmyfirewall/ipteditor/kmyfirewallchaineditor.ui @@ -886,7 +886,7 @@ accept() reject() - + kpushbutton.h diff --git a/kmyfirewall/ipteditor/kmyfirewallchaineditornewchain.ui b/kmyfirewall/ipteditor/kmyfirewallchaineditornewchain.ui index 640c6d5..5c6cf0d 100644 --- a/kmyfirewall/ipteditor/kmyfirewallchaineditornewchain.ui +++ b/kmyfirewall/ipteditor/kmyfirewallchaineditornewchain.ui @@ -259,5 +259,5 @@ slotOk() - + diff --git a/kmyfirewall/ipteditor/kmyfirewallruleeditor.ui b/kmyfirewall/ipteditor/kmyfirewallruleeditor.ui index 4860c6b..05b62f9 100644 --- a/kmyfirewall/ipteditor/kmyfirewallruleeditor.ui +++ b/kmyfirewall/ipteditor/kmyfirewallruleeditor.ui @@ -743,7 +743,7 @@ accept() reject() - + kled.h kled.h diff --git a/kmyfirewall/kmfwidgets/kmflistviewitem.cpp b/kmyfirewall/kmfwidgets/kmflistviewitem.cpp index 580e28d..3b4599f 100644 --- a/kmyfirewall/kmfwidgets/kmflistviewitem.cpp +++ b/kmyfirewall/kmfwidgets/kmflistviewitem.cpp @@ -250,7 +250,7 @@ void KMFListViewItem::setupZoneView() { } // if ( m_zone->name().startsWith("incoming_world") || m_zone->name().startsWith("outgoing_world") ) - setText( 1, "[" + m_zone->address()->toString() + i18n("/%1]").tqarg( m_zone->tqmaskLength() ) ); + setText( 1, "[" + m_zone->address()->toString() + i18n("/%1]").tqarg( m_zone->maskLength() ) ); /* setText( 2,"" + i18n("%1 -> Localhost").tqarg( m_zone->guiName() ) );*/ setText( 4,"" + m_zone->description() ); diff --git a/kmyfirewall/kmfwidgets/kmfmynetworkwidget.cpp b/kmyfirewall/kmfwidgets/kmfmynetworkwidget.cpp index 16d325c..d57c434 100644 --- a/kmyfirewall/kmfwidgets/kmfmynetworkwidget.cpp +++ b/kmyfirewall/kmfwidgets/kmfmynetworkwidget.cpp @@ -164,7 +164,7 @@ void KMFMyNetworkWidget::slotNewItemSelected( TQListViewItem* item ) { if ( m_zone ) { // kdDebug() << "kmfitem->zone() pointer is valid" << endl; kmfitem->setText( 0,m_zone->guiName() ); - kmfitem->setText( 1, "[" + m_zone->address()->toString() + i18n("/%1]").tqarg( m_zone->tqmaskLength() ) ); + kmfitem->setText( 1, "[" + m_zone->address()->toString() + i18n("/%1]").tqarg( m_zone->maskLength() ) ); m_network_widget->loadZone( m_zone ); if ( m_zone->readOnly() ) { @@ -206,7 +206,7 @@ void KMFMyNetworkWidget::slotZoneChanged( KMFNetZone* z ) { kdDebug() << "void KMFMyNetworkWidget::slotZoneChanged( KMFNetZone* z )" << endl; if ( KMFListViewItem *item = findItem( z->uuid() ) ) { kdDebug() << "Updating item" << endl; - item->setText( 1, "[" + z->address()->toString() + i18n("/%1]").tqarg( z->tqmaskLength() ) ); + item->setText( 1, "[" + z->address()->toString() + i18n("/%1]").tqarg( z->maskLength() ) ); item->setText( 4, z->description() ); } diff --git a/kmyfirewall/kmfwidgets/kmfnethostpropertieswidget.cpp b/kmyfirewall/kmfwidgets/kmfnethostpropertieswidget.cpp index afc87d4..50c4dbe 100644 --- a/kmyfirewall/kmfwidgets/kmfnethostpropertieswidget.cpp +++ b/kmyfirewall/kmfwidgets/kmfnethostpropertieswidget.cpp @@ -134,10 +134,10 @@ void KMFNetHostPropertiesWidget::loadHost( KMFNetHost* host ) { m_cb_limit_host_interval->setEnabled( false ); } - KMFNetZone* tqparentZone = m_host->zone()->rootZone(); - if ( tqparentZone->name() == "incoming_world" ) { + KMFNetZone* parentZone = m_host->zone()->rootZone(); + if ( parentZone->name() == "incoming_world" ) { m_cb_host_log->setChecked( m_host->logIncoming() ); - } else if ( tqparentZone->name() == "outgoing_world" ) { + } else if ( parentZone->name() == "outgoing_world" ) { m_cb_host_log->setChecked( m_host->logOutgoing() ); } @@ -176,8 +176,8 @@ void KMFNetHostPropertiesWidget::slotHostLogToggled( bool ) { return; kdDebug() << "Changing host: " << m_host->guiName() << endl; - KMFNetZone* tqparentZone = m_host->zone()->rootZone(); - if ( tqparentZone->name() == "incoming_world" ) { + KMFNetZone* parentZone = m_host->zone()->rootZone(); + if ( parentZone->name() == "incoming_world" ) { if ( m_host->logIncoming() == m_cb_host_log->isChecked() ) { return; } @@ -187,7 +187,7 @@ void KMFNetHostPropertiesWidget::slotHostLogToggled( bool ) { ); m_host->setLogIncoming( m_cb_host_log->isChecked() ); KMFUndoEngine::instance()->endTransaction(); - } else if ( tqparentZone->name() == "outgoing_world" ) { + } else if ( parentZone->name() == "outgoing_world" ) { if ( m_host->logOutgoing() == m_cb_host_log->isChecked() ) { return; } diff --git a/kmyfirewall/kmfwidgets/kmfnetworkwidget.cpp b/kmyfirewall/kmfwidgets/kmfnetworkwidget.cpp index 70c25db..21cecc1 100644 --- a/kmyfirewall/kmfwidgets/kmfnetworkwidget.cpp +++ b/kmyfirewall/kmfwidgets/kmfnetworkwidget.cpp @@ -114,7 +114,7 @@ void KMFNetworkWidget::slotShortMaskChanged( int len ) { IPAddress addr = IPAddress::calcNetworkMaskFromLength( len ); blockAllSignals( true ); lbl_tqmask->setText( addr.toString() ); - if ( m_allowEdit && m_zone->tqmaskLength() != len ) { + if ( m_allowEdit && m_zone->maskLength() != len ) { KMFUndoEngine::instance()->startTransaction( m_zone->rootZone(), i18n( "Change tqmask length of Zone: %1" ).tqarg( m_zone->guiName() ) diff --git a/kmyfirewall/kmfwidgets/kmfprotocollistview.cpp b/kmyfirewall/kmfwidgets/kmfprotocollistview.cpp index 4323663..69cdca4 100644 --- a/kmyfirewall/kmfwidgets/kmfprotocollistview.cpp +++ b/kmyfirewall/kmfwidgets/kmfprotocollistview.cpp @@ -158,17 +158,17 @@ void KMFProtocolListView::loadProtocols() { TQString cat = prot->category()->name(); - TQListViewItem *tqparentItem = m_lv_protocols->tqfindItem( cat, 0 ); + TQListViewItem *parentItem = m_lv_protocols->tqfindItem( cat, 0 ); - if ( ! tqparentItem ) { + if ( ! parentItem ) { KMFListViewItem *newParentItem = new KMFListViewItem( m_lv_protocols, 0, prot->category() ); newParentItem->setText( 0, cat ); newParentItem->loadNetfilterObject( prot->category() ); newParentItem->setOpen( true ); - tqparentItem = newParentItem; + parentItem = newParentItem; } - KMFCheckListItem *item = new KMFCheckListItem( tqparentItem, 0 , prot->name() , TQCheckListItem::CheckBox, protUsage ); + KMFCheckListItem *item = new KMFCheckListItem( parentItem, 0 , prot->name() , TQCheckListItem::CheckBox, protUsage ); item->setText( 0, prot->name() ); // item->setText( 1, prot->uuid().toString() ); } diff --git a/kmyfirewall/kmfwidgets/kmyfirewalldocumentinfo.ui b/kmyfirewall/kmfwidgets/kmyfirewalldocumentinfo.ui index 273bb07..d4c54da 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewalldocumentinfo.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewalldocumentinfo.ui @@ -180,5 +180,5 @@ reject() - + diff --git a/kmyfirewall/kmfwidgets/kmyfirewallgenericinterfaceeditprotocolwidget.ui b/kmyfirewall/kmfwidgets/kmyfirewallgenericinterfaceeditprotocolwidget.ui index 0decc80..3e6f069 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewallgenericinterfaceeditprotocolwidget.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewallgenericinterfaceeditprotocolwidget.ui @@ -338,7 +338,7 @@ This required if you like to use a protocol not directely suppotred by KMyFirewa - + klistview.h kpushbutton.h diff --git a/kmyfirewall/kmfwidgets/kmyfirewallhostwidget.ui b/kmyfirewall/kmfwidgets/kmyfirewallhostwidget.ui index 911806f..9cf1608 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewallhostwidget.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewallhostwidget.ui @@ -423,7 +423,7 @@ - + knuminput.h knuminput.h diff --git a/kmyfirewall/kmfwidgets/kmyfirewallinterfacewidget.ui b/kmyfirewall/kmfwidgets/kmyfirewallinterfacewidget.ui index ed7a371..274413d 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewallinterfacewidget.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewallinterfacewidget.ui @@ -143,7 +143,7 @@ - + kcombobox.h klineedit.h diff --git a/kmyfirewall/kmfwidgets/kmyfirewalliptdocoptions.ui b/kmyfirewall/kmfwidgets/kmyfirewalliptdocoptions.ui index b1335bb..b1454cf 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewalliptdocoptions.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewalliptdocoptions.ui @@ -398,5 +398,5 @@ slotHelp() - + diff --git a/kmyfirewall/kmfwidgets/kmyfirewallipv4adddresswidget.ui b/kmyfirewall/kmfwidgets/kmyfirewallipv4adddresswidget.ui index 3c48e4a..2413e25 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewallipv4adddresswidget.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewallipv4adddresswidget.ui @@ -151,7 +151,7 @@ - + knuminput.h knuminput.h diff --git a/kmyfirewall/kmfwidgets/kmyfirewallmultiportwidget.ui b/kmyfirewall/kmfwidgets/kmyfirewallmultiportwidget.ui index 4093ef3..f6e42bc 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewallmultiportwidget.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewallmultiportwidget.ui @@ -222,7 +222,7 @@ Use this to avoid too large (slow) rulesets. sigMultiPortChanged(bool) - + tqwidget.h diff --git a/kmyfirewall/kmfwidgets/kmyfirewallmynetworkwidget.ui b/kmyfirewall/kmfwidgets/kmyfirewallmynetworkwidget.ui index 9b6f06f..41d4a1c 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewallmynetworkwidget.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewallmynetworkwidget.ui @@ -180,7 +180,7 @@ m_lv_zones_itemRenamed( TQListViewItem *, int, const QString & ) - + klistview.h ktabwidget.h diff --git a/kmyfirewall/kmfwidgets/kmyfirewallnethostproperties.ui b/kmyfirewall/kmfwidgets/kmyfirewallnethostproperties.ui index ff0d977..fff8137 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewallnethostproperties.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewallnethostproperties.ui @@ -230,5 +230,5 @@ setEnabled(bool) - + diff --git a/kmyfirewall/kmfwidgets/kmyfirewallnetworkwidget.ui b/kmyfirewall/kmfwidgets/kmyfirewallnetworkwidget.ui index 8491039..3b0aaa4 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewallnetworkwidget.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewallnetworkwidget.ui @@ -319,7 +319,7 @@ - + knuminput.h knuminput.h diff --git a/kmyfirewall/kmfwidgets/kmyfirewallnewdocument.ui b/kmyfirewall/kmfwidgets/kmyfirewallnewdocument.ui index 6d8c8d6..0797cf9 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewallnewdocument.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewallnewdocument.ui @@ -405,5 +405,5 @@ 789cecbd47931cb9b2b6b9bfbfe2d8c5eeda587ca9c5621625b25496cad25563b300104068953a73fefc20f07a80d54d9eee668bc34bb20c46b21e028140b83b1c0e1151ffe77ffef5727bf5affff93fffb558f26524ff25433effd7fff8ab2cdbfd3fffeffffdfffdd77f77069d7f755bbd7fb587e3cebf3afffd7ffdd77f6fefff25ffc5e4b0d5e9b66a5e4e2c8f5aad8eaa79b774ac6df96be24eb75b73501177713d1f3a6edbeba5e5b1b95ed6ecbd38b6f57b278e51ff53c3b85e4c89dbc8f79e1bc6fdf663c7f679762be26eb757f3e68cb887fa9273c778fea6fe3e9e27b9211e75873567b165deb45f8e1ca3fd9ff2d1bea46192e7b1637b7fcf776cef2f9afc76c7b7f9dab1ad8f2962d20f678e6d7dfaceb16dbf7743dc47fd6cedd8e66fcf890790cfaae578609f3f271ea2fec594788cfc8d472cc07b9417e6f985bddf89633c0f730cf98886f13cdeab63e8e3c1b16d9f1711b7497e99633ccf237107fae1678ea19fa061dc4f0c88c93e79e9d8de7fd9736cefbf7e26eea1fdcb4be23e9e5fde120fd01e5938b6d78b8478d8eddbfe72ead8dad7aeb9ff08f7cf0f1de3faa63e8efb89a5637bfd2a743cb6f52d8825f2e5d4f1a866857ce9ecf7d4b17dbed9b261b2afc8319eef86b84dd7870d933e73e20ed9f7ad633ccf3d7197ecfbae61dc4f4a62ea9fcc776cefbfe28ead3c9743e23ef58f27e2019e7f7be3d8ca67d9251ea27ece1dc3de668e6dfdfe23f108f25f0e1c5b796e5f88c7e43f0e1ddbeb852016289f4e1d73eb5f18b1ecdafe239be7f5d1de0cfe4db6db5d6bdf7edfb1953fd3c4ddae95a7b8b0ecbbfec71da3ffa50d435eace7d8cac35b13933fddae1c5bf92c8f883b545f733df9a355ec18f63724ee92fe4e1d5bf9c890b847f673e518fadf1093ff6213c7b63d32716cf5b33d211e90fd5e120f21ffd59b632b7fddd43f42fdfcdeb16d1ffbc4b67e56108f697c908eadbeb6b7c49cec69e518feb3d107f54771e9d85e2f94636b0f614eec43ff79233f85f2e5ab63fb3cf99e58e37aaf036e77bad61e02d25fbb0756f43ced410ffde18e78d8b3fa5090976afc4572e118fa970d93fe94632bffb0706cebf7a78e315e2d8869fc5a9e38867d30628a2fbc37c7b6be95766ce5c932e21ef99b23c756fe79d3de3ef99bc0b1bdbf6eea23ffcdb863f4e73bc756ffeb7362f227cb267f44f670e1d8ea43cc88c7a85fef1ddbf685c2b1ad9f37f2e2783eefd2b1d5b7d72216689fd7756caf0f1b7d903fd1678eedf572ec18f159d31e05fb5831c7f02f43628deb79db31c6ff0370bb85fae427b6f69347c46d942f97c45de47bd70dc3fe9207e23eeebf6b37dcb3faf32be261cfea2f5f118f7b886fe8f9da1ce5b790bf76e35fd530d9d7dcb12d1f3c3946bc71e718f57bc414aff9470d53bc72e018f6714adcc4175dc788a746c414af46178eedfd3743c7569f4a10f7693c3c730cff941337f1deb363abbf2424a6f18e3f3bb6ed89c78e31de35f9e42f9309f118f5ad1f1d5bfd474b628a5724770cffb72216789ee4d5b1b58fb4797ef2972b9f98fc9d908e6df9e5c631fc5bf3fc9aec0bf6a38d3d62bc7d736cdbab9afc36ae9713c7b0ff3e7107e5454cdc43be1f340c7bcb7ac47ddcdf27fb33fe16e3af746ced432e8847b05f4ef669ecd9e687642fc69e31ff0a1c5bfdad5f88650ff1a926563df847d28f09c7303ed8f1ca0cff64efdb81638cff878e31fee5c414dfe51bc7e87f5b628acff627c47de86bd927a6f9c626756cdbb71c13933d7a67c434fe46478ead3d2d478eadfde48298fc6bf44acca1eff99098ec4df58825dae74bc756bfbb6bc7567f9b3db14ff1fb8163d8ef9258e3fa79e2d85e1fb4c0c6deacbdec0b628aef58df31e237aacfd89bbd5ef186613ff915719fc66bed18faa1f635e3b978716cf5cdba8e311e93be8dbd61be32706c9f77bf778c7885f4d7d8a32c8905ecd79b38c6f8dbb44fe3fa5c813bed9e7d7e5d11f7c009c9afc3fb789e9de57663afeb1e31c597db4b629a5f6507c4643fdb98b8195f2f1dc31fb51d5b7bd85e1173d8e3362716148f6f897d8ab74ac7d05f414cfe6a49f7370db6f95c3bb6f6c04f89dba4af8898f41f86c414efaba786a14f79e9d8ca637748dc23ff37261e90fe4f1d23fe9a120fa12fe1138f604f22708cf8a8a99fa37cba718cf926c9dfd9439f58c2bef8deb1d5c7e29858a13e35746ceb93b0b776a7d583ff1f39c67843f230f664cbf3257107fece27fd18fbb2f2cbe9f93a7de4abb563ab9facc91ff4ad3e3637c4a33ed693489e1d01f6d1be4e331fe70362097d472362b297f48458c19ec2c8b1d597e81037f115fc5ba7b10fb925ee50ff6bf2bb905f7c46dc43797eecd8ea73f3e018fef28a7848e351ee18f1f40df108fada35f7a7f129b8748cf9d4b963ab6f352516b8dedf11933da8e6fe3eb5ff135b7dc6af8eadfed98a58417f3226d6a89f7f62f82bf8bb8e79605b3e5939b6fa5924c41d940f67c45db2b7ad63f8a737e23eeca3aa88073df8fb8c7844f6d6f018fe2cde137394f76dbce3771b7d899098e2ddb8e718fe7ae3d8ca6fb7271e927c8f8947a48f1131a7fecb1c5b79eb01b184bcf3d031c6c7e6fea49f684bac20aff49158433ec533d8f44ff45fe518f30f8fb883f232720cf9913c1af9eb07e21ef5d79163ab3f963ab6f22e24f100fd337b718cf91ec9a73344791e108fa09ff496780cfd464dfd1cf5c999635b5fc5897d62d85fd728c83eff9aeaef0efbf6f938c6879ee91f569ec19c58507f38710c7dae887dc83b5b38867f98116bc88b53be91b7958fe81193fd8b317117f9fa9998e41b5d12f7a11f71ee18f1c87dc3904f7c4d3c84fc78877884f27cd730caab47e231e495d3f39afe60f5113f350c79e74d7b04ea0f4ac7984f37f529f07ce4d8ca77d1c843f7ad3c4bd85bafdbea637eff4adc417e1239c67cbe4bdcef5bf9c4d077bf991f2c113ff48dbc6d79ffc931ca33c7d0075d6ff461e5233362ea0f814fdc437eee110f201f6fd430e4b33d261e23bfec378c7c7e40cc219ffc8858401f61c7b1956f71472ca9bf5c39b6f22ad6c41a2c5b8e215f7a7e235f6bff61e2d8da6749cf63fa07e2c333e22eca07b163ac6f4d887b285f96c47de827f51c63bc1f13eb01d62fe14ffabdde00f30bb46fd0c87f9d1277c85f33629a2fe9a963abbf7d42dc837fab02e221e4992e1c5b796615f118f22f3bc414dffa2d6201796677c424ff7244ece3fa6ceed8caa3c0f30d8c7cc153c798ff95c46dc8aba0fb35f69e1f13f790afee1c637e7deed83e7f48f232f2b6f25b1c110fa0af4a3a863d6f8987b83eed3ab6f2d6d7c423dc6fdeb497237fd7b4970fb03e52100bd417e4c47280f1b329af07582fc4f831e88d07d80f803d0f3b5df2471b62ea6fe18498e2bdfc9a98e43fcf8815f455cd1d239e85be8646de96d983637b7fd6e47720afa8efd8ca6bd922ee429f72e018e3f398b88febf5c4b1bd3e65c403c86fbe241e92ff3a778cf948423c823ee5a661c873a189c7a83fd9130be46f468e315fbb2396a82f29887db427520d439fcb43c7f03788afccec155c45c46df4e7f0dc31d627ce1cc39ea7c41db427bc24eea2ff2f85635b7ef34cdc877d6c489ebd01f2d7f43cbde1c0ca7b754fccc14bc44b23e3ff6c7bfc07c7d8ff41ff1819fda23f1e1377a18f458f78000eb863cc4742c7567ee1887808f9af72e211f4a3268e115fbe128fc91e7c628efaf30eb1843e9213c756fef31b62d2dfb229af70ffe2c631fc59db31c667e87b64f4097fdf25267d66197107fac973c756fed1a363ac17ed887ba8af62c403e863231d5b79166fc4435cbf4b8847d07774e3d896df917e8cbf407f5e128b8195d7e68258e2fabc2256032b9f0dfc85f11ee012f63936fe18e355424cfa5f6e897bd4ff2531f56ffe424cf1e3aea96f047ded7bc463e853bd3ac6fdc7c41cfa5a4f1d63bcef13fbe0dddcb1d54fd1dc5fc31efc9163ec9751fb9bfe570862d2a7ba20ee425f7ee818ebbb4be21eee1755c47dd4173e3bc6f8754b3c84be962f8eb1fe9613937e977be231ec233d708cf5be805882a343c78877493e46bf98cf6bc78817e8f9fa9d21f61376c4a321d67331def0ee98e47b4fcca1cff4a1611abf0e8905e977edd8ca3f7e2156e005e4c94dff823e4f1ddbfbab1631f59fa24b4cfad0e7c43dd2df89632bbfd58163acf753fb8d3ee04f3f31fa5b877880fbf9d78eb1ffed118f20ef7d9b788cf2d5d8b12d3f97c41cf5e703c788c74ac7e81f97c402cf5336f2f1513e4b1d239e6e9e5f0de1ffe6c41af549c7d0ef1afd8ff75b28bfbf25a6febe7824ee0ead7ef60f8e317ed1f3f787432bff1de251d1e85bc0be44a3cf4d46dc853eaa1631e98b3f10f749bf03c7567e3bdf31e67f3be201f4bfca1cc3ff34f50da97ecfb1bd7f30766cebcbdac463c8d7bb23267df10b6281fa45eed8ca37db3bb6f24b9be757c8d74d7b15e4bf518e21ff39b11e5a7995983f98d90dea2b560da37cf446dc46f9fdc4b1d5d77aed18ebe187c4d4bfcb7be21ee9f3847880eb179fd85e5f0ae2d110ebe99963cc6f305f9046dfb6fce28eb803fd6cde88a9ffad12c7188f5e89fb28bf78718cf1f2807800fd2dee1d5bfdec0f8949dfeb63e211aecfcf1d23bed78ead3e170531f5bfb2691fe95b758925da5b3d3ab6fa49bc8621df4544eca37d8b9858a3bc281b863e7dc85336fa1413e20ef4b15939b6fa5a28e22ed9c390b88ff2e9c031e663c231d6bfa8bd46bf9097768cf97f933fc4fd22e618fbbd3ef16868e5513e138f8756de8b8e63f477d27f5f80c59a58e2fab0c9f78758df84bff5cdf880f5258cd77e13ff6e1b267b488e8829bedd6e1c5bfdc57de231f421ef1cc3ff56c4d47fd71362d2f77c4dec43bf399ed737fd11ebd333c7f077747fa34fccb73ce20ef4959e3ab6fa0ab7c4e45f37c78eedf36eae887ba87fb1231ea07cda778cf585ca31e2cf7be221f4b364c423d4bfa81c63beb724e6d057de3c9f40febcb99f44ff4fcf1d637ef648acc00bf8377fd01adafeb5bc216e43ffdb367187f2af1de37c2dc63bd5f88fbd20e634febe3ac67ea74fdcf4c74b621ff9fb0531f9df70e818fac378a81a7fca2a62d20f7b22ee417ef13331f53fbe251e425efea163f48f73e211e41bbf1153ff29dbc402f255678ee1ef481ea6bf60bd7fe518fd67e018fb93a7c41abc0c1ce3bc00f4ad8c3e20ef56c323accf917c1bfdec22e2ee08eba54df901788bfeaf8d7d235ecc88bbb0cff4d231ce071d13933cd33131f9abc5b563cc770f89c9fee75be211ca7b53c7d8cf6bee37863c8b3931d977b02726fbd5078eadbc364d7d8dbc8f8815ea2bef1c237ed78e31bed1fd8cfd23be7c726cf30bed18f17a53be33c2fcb424ee423f7392efa087fcfcdeb1d5d786e43118421f79db31f64b3de2d1c8ca6fc71dc3df5e11f311c6ffa63d7284f5fb01b11ec11fd8eb55abd15770464cfe273e25a6f120e93ab6f28be7c464eff37362b2dff9b3638cbf1e31d96fb5758cf59a17b0b167cc4f5a8e114f6d88bb90d74212f7503e7b6c18f25d1c12f7513ef21dc3de2be211e58f1dc3bf6bc7988fee89c790afbc770cfbee1073d4bfd78eedf5494c2ca02fdeb4cf1f61fdac699f1a59fbdf33f0b033b2f6b71e1077c7f6f9b654ff7030b2f25cb78947232baf9520e6638c3f767c54edc6bef3377063bfaba963ccdf5f88c99ffb9b8621dff91d710fcfbbe81393bcbd2d31f9177fef18e7054e894724bfe6fa31caeb9163c8ffc831fc779798439ebaef18fee39658a03c3f2196b89f6aead3e81f3ee50f5bd0c74e3bc67c6045dc1e597b0fe97ec32ecaafce88fbd0c7bee518f1669b7888fa3605b118637fcfce5754a7e90f21ecbb336891bdbe11b721ff3422ee923e2ac7181f036292ff2e26267f922c1ce37cf3a163ac970c88c99f646bc7c87f21169067d8b0447ede23f691cffb8ead7e929d63ecafef8935e4b9a5eb8dfce18f2e1c231ebd768ceba9bd463f884f268eb15e724bdc41f968e6d8f6af6a49dcc3f5d5b563ec0f660d435fbb31711fedcd6f88a93fce778ee1dfb60da3ff0643e221ea5b0862eabf7e42cc919f29c7982fb61c5bfd24642f4389fe1ea1bf761bfbf17d621a6f5627c4640fe28198fcddfede31e2cd3362d277794c2ca1cf558798fc17578eadbee4ab632bef15fa77d7e80ffee889b88dfc441377203fe61177912f98632bff7241dc47f960d730e4bd3e728cf70f1a267dedaf1a867c25c9a7e9affeb963e8e7ae61e86739271ea1fe153dff708cf2cb55c3e4bf97c47c8cfdca925890fe4e1de3fcee9858e27e15b57fd422fd93be469c63bd02e361cff863bc0f31271e429f69c363e8cb17c402fd63be21267fc9e68e6df9f91931e93b888835ae973bc7563f199eaf67f48b78f4a161c8a3f0883b281f1f117721bf6dd4309e7f1310f770bfed27b6d7574f8eb13e7d4d3c407d55bb61d4a7d78eb19ee21393fed7ab86a10fd521a6fe2a160de379a2a9639c1f58128f51ffe6de31d6ab1931f5f7a8b99f44f9f2c631d6bfcf89d518fb11747f630f982f52fb476de4f3b1632b8ff880b833c6fa7642dc1fe37ce1a3635b7e97120fc7d027fc69dff45f9c07591077208f7d9798fae7fcc531cecf5c11f720af521353ff8dce8987c89fdf3ac67876e2d8ea238e89491ffb3762ea6ffebd632bdf62e618f3bf9c98a3be4a10537fac7c629feed7728cf595e6f914ea4bce8835f455dc3bc67806ff69a225c87f991077905f0d88bb63acd7cd897bd06fbe261e20dfd78e11bfbc128fa0bf34241e8fad7c2b7ade9184bf504d7b14873f83bc07a6ff623c85fd0c8cff44fe9a98fa130b8847d43f0f1c633fef9498f491c7c464ef3c728cf9cf8b632befe09858409ed19c98fac7624bac903f178eb15ef6e0d8ca7b0e790c4c7fc1facbca31c62fbadee803fbad297197e44ff5197d60fd4438467f1911f7a97f15c443e4473bc7b0d725f108fa081b267d2d9e8839cab30eb10ff66f1b26fde58ead7c32c477c3a63f6d12629267f54c2cc99e778e218f0931d97fb521d6c8df9c3b86ff477b87469ef00f17c46de8237a718cf9e9037117e5d7078e71de6241dc877d8b37c7563ec59898fa83bc261ea17cbc756ccbc7ab8621efed9a780c792d3c628efbfb13c7d82f382616b87e31768cf56092a7e94f38afb9776cf3e733c7b0ef461e9a431fc4e316dac3a8be7107f9d9d231ce1f14c43d0e7b267d8f47dcca7383f174d4f4cfd531b10f7d2c3531f51f0ef98c8cfee08f66c4d41fc21e710ff29d9f10f7c91f5d120f20bfc58563acd74ae221f45d36f58f911fac8939e4b57a728cfdfda63e92bfbc2296b07f76eb18f6df27a6fe520c8935f2ab07c7185fa14f339a439e21e58fdbb8ff9c9ebfded0b6cf7be518eb85b78eb15e3225ee435f11271ea2fc1afe6cdc8cb765403c84bd46cfc464cf724f4cf11e4b8805d9cb1131c92368f27dc893cf1d63fe87f9a3f1cee045ee18e7bba83de6f9e14faf1c23be5f137770ff60e318f3f588b887eb8b9d63ace7a5c403dc2f7f748cf9fca163ac071e10937d8ba63ce7789f70e718e7b9487e632130df62c49a63be70dbb0c0fc1af1eab8fe00817dbe63e236ea4b113f72236f5bdf7c404cf21519b1823ccaad632b8f10f18419fd90efcf1d63fc3a728cfe971277208fe0de31ce6b34e5bb64ef8563d8e79ab88febc303c758af568e11dfcd8887d08f5e3ac67af605f108f28bee88c7a49f9e639cdf0a8805caaf160d431f1ec96fec43befeb061e4cfe97e461f98ff1c13b78595b77a768cf3e97d622eb0de80e717c6bf5bfdea7b621ff2ce4b620dfb0f29dfc817f69f1277210f1510933d0721f100f229ae89479047b5728cfd8f88788ce7cd6e8839aecf53c7382fb7219628bf7c6c18f2582a621fe583e67e0af6cc305e1a6f29b03f48ed37f242fc77ea18f12ed5c73bb0ff72ea18eb019cb88bfb6f48bebc87fa572bc7905f4c3c12785f85e4630cc0ca2f85bdc946fe29f2a5f13fb8df8ab80779a677c47de867b9748cf7ab9e88c790c72e27e678def5a963ac97c5c402fa29a563c40b3b621fd7eb8c58215fbf106be847cd1a46fdbba163f44ff863d9d86b7546dc4179ffd9b12daf06c45dc8b7ba728cefa96c887bd0df7ee018e34be118f37b922fef937e5b8e71bea6700cffd3b47708fd6db78e31bed1f319fd229e581053ffe329b144f9f2c431d64f23621fe5638f5809cc3f48fea285f23ef467665fe88feb8898437f6b4edcf8fb36b1843d94a78eb1debd235628af3cc738ff74e318fde78198f4bd837ff24dff827d1c39b6fa58ef1cc3be03e20ef4b7ce88bb289f078eb17f3925ee51ff7b758cefb3ac89499ff3827880fac3b9639c77ea128fa00fd9f098e4dfd4c705be0f714d2c70bf403846fcfe46eca3bc7c768cfdb4e6f915d90fe9876bdc7fcb1c63fda6e318e305c95f7425fc4d49dc97f0577de2a1c47e3cf46b667ff017912016d07f7ae518e75b33621ffdd93f20d6d0470cfb518d7e2b2a6ffa2fec23778cfdff057117f25a9f10f7a8ff0f1da3ffef88fb640f33e201e49305c443d4b7281d633cda138f21ffadef18fd6149cc71bd5c3946fcd52716282f1f1d63bde89258d278da738cf589576285ebf92786fe36c4a4efd5a46189780be3ad19ad703f79e618e7e5485ea28df23be118fe95117770bfa443dc43f9f2c031fae385639c973b26ee93fd54c403d45f70c7d8bf22fb112389f5d49858903d623eac1b7f12623ea14d7fc77c66e018f176403c20ff5939c679e113e211ec23fec478dfaded18f19722e6d047d09417c8e7b7c412f2de4bc7589f5d13fbb87fba778cf95a9758e37a3d730c7f88fe6aa269945fbe350c792e39711bf7f39bf2a45f3d24eea03cbb26eea2feea82b88ffcbce518ebddd231d6cf499e467f565fab57e221f4b5c91d637c2d89c712fe13fa36d62a719edbf68ffaf312e8bf3a27a678466c1c63bd69e518feb44d4cfd6bcd8825e9bbe518f25e13fb90d7e6c431f67b0b6205fdfa6f8e313f8fc0461f582f796d18f28e5c3ee439bf226ee3fae494b883fbb1e67ad24f7c47dc25796ac7983ff589a93feea8bd463ff08fc231cefff68807a84f3d38c6fcffc931be4771433c84be364d7d23dc3fed38c6fb77cdf371dc7fbe778cf3aca45fd39fb11ef0422c915fe68e319e2d881598d3f5b22d719e6a48dc97d80fb6f1906e37f3cbd596d887fe36036245fd2924d6b087c59b63ec571e808dbe70dee4be61e84754c41df25f77c45df2cffd86a19f7ce418dfc71a1293bfdccc1ce33ccaad63ccdf97c47db427dc348cf6f85de221ea53378eb1bedbd437827e524e3cc6fd58cb31de57ea100be8479c39c6f7ea368e713e784dec23bfba748c78f68158e1fe624eac51bf668e114f1f828dbe713e92f26547e2bc2ab5577625f693ca867d9c47f48907b00f3f271efa18dfa03f331b207f9613f720cf543a463c72484cfe6f1538c67ee101f100face9e1de3fcc50df188fcdf9a788ce7cf3831477dde8563c487e7c4d43fe2c231e2bdbd63ac3774897d5ccf2e8915c937758cf5873e31e963b7738cf9980736fe1adf3f281ce3fb2754dee807e72d48be463f38dfb520ee215f3e38467fec100f7cd82f3dafd117e20dee18e7c5ef88473ef6d76dbca0bb8d7f9c4f88299e5da4c4e4df36978e111f36d70fa1ffc58c9843de598758a07c31728cf5a38298ecddef38c6fb6007c41a1ce58e715e09f665bc05ee270e1c433ed386f1fce90d711bd7abc431e663197117d7cf9f887b641fd78eb1ded423267f5a3e360cf9ab17e201ea4f14f188fa176b18ed8b278ef13ecb31f118facd9af670e4a74b6281fce2cc31fc21e9434ad4ef93bea4f2a1cf31d86ff9382f79e518ef83f7893b3ed6df30def78cfef0fee59658a2bff84bc7f0771eb1c6f34ac8abd7d8ff5e11b751df86ae37fd01fe31748cf7c7f78eadfcb782b88bfbe95be21ee45f35d7937e424e3c407e913b867feb128f209ff89e780c79cb17c758af98107392f79b639c4f6813937eb2a63e89fab7678e71feac918f22791f126be887bf3946bc42f235fa42bcd8738cf58d6be236da1357c45de4e7dc31e65b47c43ddc3f69110b1ff283fdf51bfd0b8fd8477f5e613ce99bfe067fde22a6fe150d1c23de8e88bbb0876ae218fe70e018fb254df93ef49527c403944f470de3fee12b31f9bfe4d831d6a7668e313eed8939ca2f6e1c43df578e6d799f130be873bd708cefb10e8925ee97dc12fbd0e78aea6bfa9b3c778cf767491e467f984f937c4d7fc47ad68d63ec7f9c12f7507e593a467cffea18fbbd8fc47dd843f1403c803dacae89476076e318f1de2131477d8b35b152e80fa43f5f2bcc9fd01fcce801795437c4a49f4c1393ff5b468e313e3d120be42f0e1ce3bcf11bb1a4fe22897de4a78a58917ea463cc2fd11f8df5407e3e956ffa4f36728cf8ba4bdc817ca26bc758af6dca77a97ce618eb29afc47d5cbfc81c233e6bee3f207d3e110fe97eb163cc9f0f1c63fc0a88470afef094788cfa83a6fd02f9d1b1639c6f792196a86f5535ace0bf3c621ffaad0a628dfc3dec7f507f50d33eef86b803fb88d1ff864d7f5efbc402f2ae6e89499ff339b10ffd852d6245f98c98fc63de778cfda68563acffe0f94cb404fbc822e236e4bb691353ff4a32c758cf3b23ee42fef363e21ef9dfbd63c42f21f100e5fd33c7e88f2b62ea5f51d731f4f5d030f455d2f3fa63c83f11c4d41f75492c919fee1c63be7744eca3be55f3bc0ae5a303c7e8aff78e719e1cfe6b68f48b78f092b80bfd2753e2a182bc1f8985c2793ae86764f4077926c41acf9fc37e46463f56fefb1bc7e89f0be22ec93723ee415ede3d31f5aff0827888fc64d4309e7f774e4cf2f71e88c7906799360cf9a81531877c02e918eb775d621a3f59dc30eea75bc43e5def3946ff081c637f85116be82f7c748cf51fd8d748b515cec752fb4d7f837fdc107715f66342c7b0d71e710ff75b34d7f715bebf7c443c52f81e15c9438d15ce4b1f107394cf9af252e1fcd0a0618ddf6740f2560af650c15ec68d7f9d2f88a9bf2443e211e4194b624ef29c3bc67acd9658405e8122a6fe50dd112be4a7c231fc5b46ac51df863986bca83e63ff580fea3886be2ae20ee42d4e88bbc8cf1aee91bcce1c637e1912f7a1cf70473c407dd995639c3f0f1de37dad67e231f2e3d431c69b0d315738afd0e40bdc7ff94aec233ff11da3ffce1bd6985f92fe9486bee7b007def4b734251e439ee12db1803e828e639c7f3a259690ef6ae618ef5bf8c4d47ff697c41ae5a3b6637c5f513a46fc047be7cdf8b47f768cfd8809711bf6103c3bc6f9c9057117e593269ffa8faa88fb907f76ea18e7c114f110d7c7b78ef13da0a9638cef241fa33f8cc74d798ef2d9ca31f6dfdf8805f411270d6bc457244fd33ff1be5f40acd03fcbc231e2ad3db1d68887d17fb96e41ff9b27e236cac7a163c483478e61ff3be21e5835dcd7587f85bf16a63f63fe5a1093ff0cef8825f43fef12fbd0d7bc454cfdbb82ff3057437ff337e20ef4550e1ca37f5d12f7a0bff0d431d6b31f88fb547e4a3c803e76ca31f4171093beb7470d43de5b7a3ee35fd19f23c758efa81c231e68eec7717db4708cf7759af60a5c1f5c3bc6fcea8c58c29ea275c3d0e736718cf8bb9107f983f59e5869cc977d628debe3a5638c57d45e632f583fdc3a46fc7048dcc6f304778ef13e4287b883fa54e818f32f6aafeee2fe45535f1ff96ae918ef5f8d8987b87fba758cf97b933fd6787f18f62d1bff12c03f9a6818fa2e18f110f25e751dc31f36e549bf7187788ceb839963ec57b71ce33ce20db1c0f3ad0e8925ca877bc7781fe094d8873c933bc790e7de31f441cf67c663e8f7da31d6e7a1fffa03e3583f693b863f3f748cf7137ce236e9e7cd31d6d39f893b789ea8748cf3eb240fa34fc8fbd131c6d7d231de573c22eea13de98a7880f27ae118eb15778ee19f2f88871ae3ef867884f696178e719e7a42cc51be5a139b64ef87f1c537fa863e5f88693cde868ef13ed2393187fd14978eb1de281b86fcd3a63e9ffcfba061d24f53bf827cab91638c779e639c579b106bd8cf06fec7d486e75f6f88dba82f79748cef97a58ee10f347187faf7d031d6cb493e467ff87e89ef18e7df6e887ba82f683bc6f8bb710c7d90fc8cfe70beb3728cf19c118fa09ff489788cf6a8d831ce77e5c482f4d9e44be4af868e711e3323f6610fc5d631ce7bbc126bd4579d38c67a26c60bd5e87ff14c4cfa2b7c624de371d731e61bb067531acfb3ee1377507eae1ce3fccfda31fac72b7117f2dbc4c43df2dfc78ea10f4ddcc7f541cf31c6c363c7f09f9c7880fb9797c42394d763c7287fed18ebef5be231e4a9e9f94dffc37a29770cf92f8925954f88493fcb8c58a1fee4c931dee73e778cf9b424d66085ebcd6c00fa598f8835f93bf8775dff42062bcf9098e49bf68829fe89268ea1bf5be23ee4a50bc7d84fa1fb1b79a23f948e315f3e730cfff44a4ce39b6e3b86bd0f89c7b83eb9740c7fb8758cf3894dfb38e967e218fb5f8258a0fe843bc6faff29b144fde5d031d65362629ffaeb9b639c1fb82226fda9d231f4131193be66cb8ff491903eece123bd4f1ff6f091dea70f7bf848efd3873d7ca4f7e9c31e3ed2fbf4610f1fe97dfab0878ff43e7dd8c3477a9f3eece123bd4fbf650f1ef3b827ec4fd2f3cddfc2244579c2d3e67f559d6ffe0dcc1f69fe2ff0185d199abcc88bed3591f963fec7fcbfb9da4bcc1f6ed8d465feaeafad4bb3af6d795d33b509ff26688dfd3935b50ad46aef9f9a9fb9f99b7999977b85577af9179eb64961fd349fe5872605e6a9439bbebabddf47faf7f660f5a68c0c1323a1cafcdbc85a7cb20c2bbb5aaff3ba14646a7399b7f096decac88fdb1a542d43d803d512d0ffa726ad6bcbfbda96db7624f6a7d4d4636cc1dc4bc2b66cab22d3aad8fcbfb5519baf4c89c8db785b6fe7edbf5867dd1e7ac2cff298b55e69ebb7d6fd23a6dfb00765f4554bb591b168acc1e5e37f9a72ccfccb6dbf54de8177e81d79c7dec4fcc4a8f7864d79f4595bc789f51d69ed2fbeb6e5b69ec85a434aed39a5bbfbd696eb5e9e5bdbe464ddf5939c79e7de8537f52e3fabaff1348949d1bfbd6bfda4d197ece5c748bf610fc2e8921be94aefcabbf66e20af4f3eda784e8c0581776bbdb1b4ba096cfeccbbf3eebd07efd17b325733abf3d0f64e617b6a5d4b60fbdb33d5a2bfbeedf6cadabf4456872fc6cfbc9adadfbc96d7f63a5ed7eb91b52a3b6224d657f4bd8137f446dec1e7b591a7497f4bd7f67eeaa7b40769c7dbbadf8f8d8364755fb3ff6fb5606380d04b18678249e69b72a1d5b4e9954c31cd0216b288c52c61a9d110b3f99c7c85bd9e652cb79e1716f6a7fc2fe926b175302f608577c84a56b1395bb0255bb1b5b55a655b1b788a6dd896edd89e1d7c7ebf77d103fbf2f805cf616d4cfd84f6a0eb78affe971db22376cc26e4a3d1c31376e2bdb15376c6ced90593d63aa8ef1b691eb229bb6457ec9addb05b366377f67fa5fd63ed81ddb307f6c8b8bd8eff19f9dabba5b006dbabdf4c3b9fd8337b61afec8db5589b7558d7d6ff6c470fc67aaccf066cc846ccff427da14b751cfd993dd8c882ece1a7f40fa119ddd1af0fd9d874edfb77f61073c6b937e2824bee73c5b58de5226b0fb9c779c0431ef198273ce519cf79c14bdbf3ea31dd460abce273d6e10b1b9f5074f2b5c96a884620b6e64bbee26bbee15bbee37b7ec00ff911abed4f9b72075693313fe6137ec24fcdd8a2be505f133f4475ad5fc845f45bdf33f9d67afba7d26fc60faf753ccdcff8b9b1870b3ead476192cb9a5ff22b7ecd6ff82d9ff13b7667c7174402a7fc9e3ff047b6e54ffc99bff057fec65bbc6db51e581f61467cdee15ddee37d3e30fad2cdbcf66b12b5a68e0a241ff2111f9bdb33c185b09e2a1752f86c62f2d1e6b08e6d84125a04c662e517f49df292b745fd15aab07ed62f4984f92232f9b1f809edc18ea8757f09452a32918bc28d073d6f294a5189b958f04090ac6aef508fd3b3a55889b5d8886d1d81b042ecc45e1c884371248e6d39e9293e151371224ec59938af3d477d2f7151ebccce134231ad6317eb01223b6e7da9bf66762ca8733371c92a7125aec58db86d669c9f954f4c64732766750943af4ddce245e2ceb4e7de44a387e2413c8a27f1cc9ec44b338bb09e4fd74fc79fc42b8f4c8937d1126d1b2fbd5a0f9a8b8ee88a9ee88b81a7c4ad188a91189b21f45832f32491e462643a9690d2461eba96a9f465fd01452d03db3f427b3765738c3f96918c25e2dfd48edcf50c29e4461f6c235399c95c16ff697bf0d0cfccb82f4b59c9b9e933d23c1d67777221977225d77223b71c737266e3b6b59d5526ac2f7772cfcf6b59cd96f2401eca2379ccd25a5a884be4449ec8537926cfe5859c5acfb29697a22fa59d7724769e50d18a4168e7069faf0f2116d1b5eec58bbc92d752d9f9653dfee49f7b74c4bbf2c6d4ddcc50ed5a9abc95337967e6c71d792f1fe4a37c92cff245beca371a3f989d33a53290f51776eaaf76d45f1a18c8a1cdedc9911cfb9ecfeacfcfc9034ff9d2f7e50b8bebe3d9bed1a7b8f3433ff2633f11917d7a3327f6533ff373bf6043bf346d8dc88679fd9c7ee5cffd85bff457f6ff11a3733b9332d2e3b169c1a93f67a7dfc01e98edf5c63ff86b7fe36fe5c8b4eccadff97bffc03fe47b56aff531ffc83e23b76b4ea2b664ffd89ff82766c6677bb5f1c2b17fea9ff9e7fe85c99bd69a62d2bff4affc6bffc6bff567a6874e45ecdff9f7fe83ff68f4794033dac87a07c4aa9fad4fd8354e1317d6adf29ff8ab77c79fbd1ebcda17eda7b62b615aebdb5ecaedf3bd9a98e28c1ff8cffe8bffeabfb123bf255efcb6dff1bb7e8f64001fa4fcfafdf9a13f12f57ba266aaa2b88d254ccb94f0eb77217da55877b6545a052a54918a55c217c62349ff45a52af3cf55eea5e6fee66954e15f99f2a5aad45cac38530bfb34b57d2b7628576aa956aaee5d92ec81d939b5b17db5515bb5537b6ff20decc1aee398d61fa84375c4fae6e72ba9e44e1dab8989070e783d2feb59cd619d505bfd25ea449daa3371697d9db16319f8af2a51e7eac2cc276a6d3035554a5daa2b75ad6e78c78e116d75cb866aa6ee8c95d959a82959cf3ee6f59cd668fab3f1bc5921ad230975af1ed4a399c530bb8250dbd1e7f6204dfbd7c67a6a4b50626adb6b57a9d413bb923df5ac5ed4abbc556fe252b5e452b5c957534d22541dd5553d7f2a56aaaf066ae8a2d950d5ef0a8f8d8bec7a89186b663f5d27ebf3cd5a1b4b9fe84087c65e9feaf23af27afc40bee858273ad5193bacdbe5d672381fe95c17bad4157c24e646d6328d6761a99eeb85198dd36f600f217a083bd44bbd323ebe10e762a1d7fe83de7c5aaf746bc5b51ddba8dd1be9addee9bd9d7184b5d713521fe8437d24785da718e863ff861dfb8f7aa24ff4a93e3333c13b11eb73bed1177aeadd58395b49cf96fa525fe96b3efd621b131b8bc66aad6f7860ec4123ae859d7c660fb5df60eacdc835b66becccabcc08a8a45477fa96857ac6665eaaef4cd77f563d13d7a476f492368a11460af7fac18c79267ed28ffa493f5beb13b577e3957ed1af2c960376afdfeaf72aeb77a1eaf72d78bb3ee5af5f7dae8f75642512894b3d62911e075ec0d84dc0cdc8a3b11286d97d20f422309d08ebeb33da0d428cc6d240053a10ec1fda3ff9ddf1c2f4e62008c220127e100749900699d6b4ce0fbb4eac358434f20bc6833c2882d250642ddb3c695005f360c1bbc1d29ff9472251ad6025e37a6409d6c12608bcda272856045bff2ad8a9a9d1acb2fd3931d18a6217c1defb2c7eb27b4ba9bd8354a3e02038345e047b28b585069f3f0f5372a8b477859534371aa5fc2c380a8e834970625a52d908446275dd78937a54b77d511fab1b3f0c4e3da5f2e02c380f2eac3fb43116eb07cb60aa2af6145c0657c1757013dc06b3e02eb8f7c6ea3178081e65db9b044f36ceeaf1bd3e5261f01cbc04afc19b58042d1b81d5ebc126daf40e4d3bda41478d4c1b6de442eb78f6dfc00fba412fe807836f600f218d9f13bd0c86c1487655128c8d6f48cdb8ab6daf61b44f441ecdc65d3cf442a646e6e767f3043d783c396423751372390f85bf3541b4ef1f7b66980d8d71e989e921f5bd24bb0f387b0e83b05ea9a8472b1146fa348cc3447eaedf10b354af947998f29b30f35b616ea2f2032f0a8b2fcc47e61e0f2ec3d2f8800831bdf519f57370b661c76115cebd89dd67ab9f25a35892fc209bb06db80897fe93d886ab701d6e74ed29b4991599f1c43cf336dc85fbb0d4c7e14178a85be151c8c363f5104ec293f0343c0b4b33fef8b59db12c3c0f2fc2a93c0e2fc32b9d861bc1edda7dbd27f86c6470185e8737e1adb1878856fa2524cb143b0967e19db116e11dfec7ed21b21ad1e60918df84f7e143f8183e85cfa17922f207c2ee1f09ac175be9999f783b7c095fc598223e663567a4aecfc2b7b015b6c34ed80d7b615f9808896df4241cf80331ac7b06333ec1445717fa251cea33a357cd36e1281c479e577ebebf61bd522a2e2316994960b88f6420223f52669e3b3656f1f97eb6192bc456df44dabbc4fccd485f21def784f0f93c0a646962dd9eddd70e69459e6196a1daea9a4551182ea3288aa324ec9b5e9dd4f31566bd51944659f02836917140fa35caa342cda252ada22a9a478be035dc46b6cd3ae23a5a45ebe035da44db6817eda383e8303a727b43524debf1223a1663fb846b4f34b3e77aadc5afeb9cc8d537b00769c7336315bcf206d149742a7bd199b88aced59d6a471774c2012b4c18196dec65f2a6ac1d7dbe7fd88bae8265741d24d14d741bcde45bad93686bb478a70ec8d744667c3888eea387e831145e1e3d45cfd18b89dc22efb3f8c99e4448a3d7e82d6af93c6a4765d4d161d48d7a721ff5d917e36f358a06d150f2663471fb7351348ac6b117333be60534ea088a6252ce621e8b58c67eacd84d38e75b81f32009f6d64d4c94ca55ace5b99ac7411cc6517419c77112a77116e7ca37d7748cc7a9ec1e4b1a17711957c1969fc7f378112fe395774d6735541dadc5ebd8cc228c3d987e54cfc7bccaae97d452566a5d8f177265a2cec8fa65ec13fc89fde1afb68766ef49b2d3781befe2bd188b3c3e880ff5303e0a6233dfca29fe0d3eed601a5ac6c7f1a41e2f7e9dc42ddfc527ba151c44ddf8d4cc3f8ce5c767c607b3f8bc1e31663865732082f8229e065b3de0fdf832d8da9599cfe34365f72ed7fa2cbe8aaf4d507913dfc6b3f82ebe8f1fe247affcacbc994bc44f6c173ff3292255670fa61efe1cbf989860ebbd19bf1d34bbf3339cad31f9b2885fe337b5e799dcc948d8ebedba08f4919aa76e05d3f02c6e9b3f9db81bf7e2be0ee3413c8c4751c986f11574168feba028e18908976610dc24bef959f13a82aae325a1de824bb9d245d055236b6bafe46703ebabe6fa41fb41dbcc480ff8196217dbc6f597d6dfff667b0869a788cb49a293c0f4619584e2258992383e61afc12e498c64035ab56c4e4a097590a449f6b93d18ffff9ae449211f9232a992392bea7e17aa649164fe5d62d70f6985e92a5925eb64936ca33cd99979ae30f381cfe387d49eafe2582f0a45b24f0e9285384f567c21a27a05fd57e54572981c25c7be974cf4bbfd756a7fa48f830313cd9cd1fe1a471ee5d7250271999c24a7c959b44dce930b672d767f8e4ff569324d2e932b15eb32b94e6e4c4b6ef5abf790cc92bbe43e79a857544d3bc3f02179d43c9cc60b1daa2a68274fc973f292bcd2ea2c63ccae3f6c93b7662cb673636e7768c3c04f5a414fed83809dd0f9018155cc7fdc1e523a2115cab1bfe7b7666e5d4be7d4686ba91e9376d2895a4937be62138abc229c589365d24bfa9fdb8389d5d7c945b24c06c9301925882f84f7961a0388a7f5aa147615ad4fcd5296f2d43861d3f319b7e7b33e6b5f8fa293147a132ffe39afa312667c2cfb82fd48de4efd54a59a3febe8d3fe65b30aafa6699086acebe1440d4ebda4b3e69445ed9b5395a7511af3be1fbcb3955a67a91ca6499aa6599a27976921ba6220d2b48cb5e62a4aab746eecccf8505ea68b7499aea203f6aaf3e0446cf4537297aebd41ba3172ae63f024ddc4eb749beef415bf8c96a6c7758dad5de2b481893fa6ba0c7ae95e8df854f2fa4fb4f4ce8c457cf6bc7fbb3d289a7306b2480fd2c3f4480ea957c4de3a0c55cb1b887d7a1cc4ecde5ac21c32aaed3bfdc27851fb435dcfbe7d759df4646ce77546d6e9497aaa5ad2b7a320e2ecd88bfc59bc4acfd2f3f4a28e1dd897e68f8cd60ee123c2749a5ea65766767ac77ad0e4afca0bd64dafd39bf4d6eebee37cd6bbb37fe2259da577a2d674ddcec4f985a4d1bbf93737b3c6617a9f3e30ffdd692f1b4fa78fea217d32da7f8e236f6cfaf98129f992bea66fbae58f8c519f784cf5d256bc10a7693b19ab03d3c70fa37eda49b7519c7679e9adedfa03139bb417dffa2f69dfa4413a604faacff77258b7586c63990ed391b7353963f654e7675ef627ce1b7ead3d50ffb52b28e96dc6339149336669ec18ce96fc29f33395e92cc8426311a1f11c56cab53d64d117ec21c46aa0d15757dd795d2fcae2da8332c52f33ec95d7da9ddb5327077e2f4be29d4cedffd45ee3f3f308d2136e8c379e341499e9de5996e56680565f928f08b222abe77d36ee7d7f1ab7fe89df67556666c376ed41d1692fd5acbddafbd5b692d7a72cb285187cb2245a9d1d67cb7a0d3a5b656bdef6d2249477d94645d936bd919e1d7d0f8241b0ca76e163b6cf0e687438c80eb3a370efdfc949bd32cf5410f0343bce26719a9d64a7d999aab2137d2872ef4c4cbd6796aa6d769e5d6453f3ff97f6efabec5a8cd053ff497ba0f54956afe50597d94d761bb4664b5ab37fb1f3e13b59f27e709ecd642eea7e8c08d4cc8678579c7f561fb311426d63666a68bdf1ad9509c64d496b1df5aa6d65a2b7177699bc18af7160774dc417ec41e3ec5a3307f0c2ec2ebbcf1e3c3b27fa3cbe3273974cdc18a9affd23cc1e7e690fa6674eecfe78e84e050b27099c0fac6c0479c5a7a61c6bce83d21f1309658fd953741c56c9de9bd9ddf56ef6cc62339348ec6868468bec453d64afd99b8970eee9d4f995bacb5a71154722b096c85937d8c4955aa955786bfede069de838ea656d332ac87a3f2beb042add2933a244c7ba34f92aeba68f7fe6bce157da83b212afd72279d60b8eb3be5c60c785f456cf2972a5b9970dfc00eb49b51c459a0db3d117fc833d63cd993d0b2febfd66ab957ad6f86a679baf763e66f720b331dbcbe7dcb3a53956033eab0f6799b85d2de0753d39cb79d06787b6d59fef6f4adc6f462b6d9f228777166b773f1a1b98d12928ec2cda318437e7f8b13249b6a0ecb3e4f24d2afd2c552e708a944df4a0def7f6c6b9acc73071c1ee79aca722b57b34a19d1f85de8cad64c447ccb7fb9b420e652ea3dc0f7c35ca7dfd105cb03457e985ae473921031eabb532f215e3c0176335d2d35c9bfafeed09e0bfcd1e129a37304ff381b7cd83bce939763d9f63353b0a4d04508fa6465ef6447d1e4553ee4bef6b5b427bdbf664b408f4451eab27acc434a3f7ef5c1f1a292679cacf8daf7afebbe65f3f5bfacdf102c978b14c865efc9067788b827cb5987d3a538811d4f69824ccf3bc509f9d5ffebde4fc4ebde27198977965cf9ce0fd9e3f707aca537291cffdbd3cc0baeab796ecf7997e339e844fada3f759bec897c95e3527a434ed1aa1046665497261cfa304667c3d659baf6f8bf5c5f52c85e5ab7c1d5fe71bda0f137fc81ea27ccb6b6b58dbf77b3edbeffe487f24fdde79393b5a9ad1d00fc484ce1f45362e74b1776d172ec616760f4b627fe3eb9287d304f3daa2148fe7fcd4da5d68a3c6e00f8c17754b7bb685b597fa9be2ed9f2dfdcefe262ca23eb9b38e5e4d9410d2089f7e8ab85c54657566f4a9e4c844f05f1ddfb8f774cc3df28d5f99bb3571be6c568f7ff37a6ddfbac1a9fe1ff6bceb3f9d7ec73f346fe732bb5ba53d7af316eba8bf98ad89e64c22f5eaaf3f2fcddc5b3eda7a9c146fd5d2298adfad8fd6caf0d66de07de10d8b8ff4fbe977cec330775e2bb22b8775ffd3765df5935fa877179ab3ca12b3927cf7f53d94def4833d24f5db54b47e1d591dff81f985fd1b3bd9bc8e433ed2d7a7df3e3f496753998d17423a7d1ee0a4f227fff0694dc6fa8f97e65ce3d7250f2708ed2e9e3dcb96d0789536b39adfb93eb4d61ad2153fe8fbf8ff74faf81ec8477a9f3eece123bd4f1ff6f091dea70f7bf848efd3873d7ca4f7e9c31e3ed2fbf4610f1fe97dfab0878ff43e7dd8c3477a9f3eece123bd4f1ff6f091dea70f7bf848efd3873d7ca4f7e9c31e3ed2fbf4610f1fe97dfab0878ff43efd3cf6604f5945ee4dcce6eb58782bdd7d9ff48f9de5fe71d34f650fcc9d0166cdf929bcc78d77727ffd1b1d7ec6f4b3d903fd54a7b51cb28c4d985fbf39fdfefcdfcf9c7e227b60f6dd1e9cf10cbd37ce59212ec5a5b7e2f7ded5fb777b7f662ff113d983b0df30acbd444f0ea3a37c2f5ebcbed7cf0fbc767e2806f8d68a2bfb610f3f78a2d3e17514b960f7acafaef2a3fc389fe427b2cc4fe56dfd45ba776f937cd8c34f90f0857596f1b61ae667f97978925fe4d3fc32bf0a851c365fd1ff79ade167b2077af330afc70ad6cdaff94518e437f96d3ecbef78accc18f2fe37427debd67eabf413d903879ed9c4df8a9e7ecbeff387fc513ce74f599bef549b719a79e00b613fe9fb3c3f913de05db3dc9b856176973fe72f7c93bf269b7c1ebfb1d21bfb8f262ff09a2fc7fda4df13f989eca18e24233934b3cc544df2373ef76f4296b7f2226fe79df84aacf005b7f76f27ff7ce9e7b2873a9614973ccebb79cf1b0407793fbbf69f835de6e963d667f5d7a2c30f7bf8d66df8cf24bc8f5ccf2dc4793e100bd9f5398bf3613e8ab7f13c1ff3bdf4d984ddc122be756bbf55fa89ecc1ae562ba1daf1939f71919cf22ca9b49f5d07abc2cbda61879d4ace32fb55d09f7686f173d98397f36711cb56c4fc89bef11eb255c1b2d782f379de2e4421f9b158b1496d113f6bfa89ecc1fe564e762f5ed8283d97155feb56bc2cfca4f279a1c45bf292657c275ec4257cc4cf997e1c7bf8c59745c5bf49b57f785177852e02d90b9e951fb48b307c2ca2222e12355717612732330d6f51ff9661bbf7a5e81bba3fc97ac48f640fef7f7ebf13f1eee7da3ff87a92b68a346449153caab8c874a0fd228f4ffccbec515da4b7fe2c1466d4089b6f657dd8c3f79d3e7dc7e897a71a1a7b08b8bf090fb26b134dbe26f5af18df8ad3f0319e14aa288a52bfa911eb7b33fb7b52f10dad9f68c6f1e3d9c32f47884ffff3c91ef4a4b687b0823da46f695e54e23415c9717cc245318fcfe32b7d663c444ea726d8cf33dff8d1ece1df460e9fe207e31fd43c3c281666bc68a779f2943c15cba28afdc0cbaef551745eac8ab5f0f9540eed37ee3eece1bb4dbf7de6adb687e828b88ccf8b8d3accaee3857e2db6c993962aaa2d223c8bbae2aad8157b7521c6f24d16f57ae5a728e267483f8e3dfcfa04a419fd73333ef8ccafff3554af33e5a150073c89fce240df5a7b58a66f2a5291f112bc388c6fb3919e050bb60c62ef5008fb7b413fece1bb4cbfb60736619cdd87c2cc15eecd4ff5ef7ccdd944acd455de298ef8a638ceae825eb1853d6899be1593a8d41de33776e2ba38116376606719acf9ed293f43fa81ec41599f80c871edcdc4a59cb0ae4845ca4ea5b10363151bb6513da98a53aed4697156b0b8d449ed1bea114395c622ce8337ef9e5de76bbe2d2ebc7128c4e0d36f35a4fbb0e6abcd3f62fa71eca14ef68be6f52c221397de587ad93c3fcec7c5541feb81b71497ac906f62abcfe3a32ce06fc5a51e1757b577404a9ed23c780c9eb3ebe2da1f14373c36b38c4db356f9eeb7e1a4f8a6ff8f987e1c7ba0b9a5d1931c9a7e1d8bf364af776c19aed24171ab27e25cf822caaf822c1f14b342f12c3c5371f244d650d67fd75165b6e237818856a98e9fc2d09bc11ee837b5c053b8df00f3e3a51fc81ef02d7e630fcc1797fe2e1fb327bde222dec6c7e2da9b16a2b88bb6d1563f9af9e4bd7f533c885315237a207b302386e6e1a12e8b4791154ff1b99a9a7126aba3517657ff9e956ffd8cff7cfaf1ecc15b9ba85116cfc58bb74d8fd9b4780dfa791abd149be2ad6865776a12bf15857af01e8ab6e64d34893fb58708dad9557caf4ef3dba223ce4d4c796f7fefdeac4ef5db5cf84df13f6a7cf903d943d8ac2bb349b29459d1e5fda2c75a3ecfee358b87f1366f9b91a25f0c8ab21816a3c0537ef2993d98d8722c4ea390bd16e3b45f7ac2573db1125244ea4971f9c6a7c62afce664fe8f977e287be076d619b1ccce225eb275d1ab7f77bcee94ace472152ee36e29d852b0528683e039784cf34ff6d0c494092ffd52f1309b85ba78115b762a021ea7b7fc80efa4e71daadccc60b36ffdb4ff54fa81ec8135f62087a6174fd444cdfd2bbe6671303349853c3ed117eabad4652057c9adaaf4a258fe329eac533deb8cd3e4363ef1efcbb08cc4d8d8425274cab84c8ad3d293a91fd46bd9dffa79ff99f4e3d8c3bb1961ceeebd312be3377f121f96697856b4c3333d2fb342e9a57fa54ecb3c0acb428f5d34f92ed53165ec972cdcf893c4cc3acbd2fca9ca79342d1779dbcf7862bcc4323ab2ef7335bf35ea87997ffe38f6f0ee77f5448c974bf5e867e5aa5ccbd3f02c68ebd7e03a1121570fec5576f85bb951bee6ce3b44cd4fc953bddf59faf52a8478e44a9445873d155eb9d547e52e2fcb453a5613a98464dcee7faa4ff7fe11d20f6a0f137610f8715f2cb2409e076f45a5b99937ac748b67a92af7ba234e8baa587eee1dec1c635b9c0733735d9f0b3537b391bdbe08fada0b5979501e063b3f63253b149776355be237d3fe28e947b2076713517daa5e7afa5cb03cc8eee3b4a8d2dc58444f07e55176924dc569d04bde79875f2633c73023462c8b915e8a0557718b6fd8a5771fcb6c94768a5d799c9fc74ffe8c1566cc0870ef1fc5267e247b70e75f7296e9b35ce75d75a466e524bead2347d3eb972a56cb6416de18df30f977de01ab10fa35bbf479d02f86f9031b9727e6e7e7609654fc4d9e85cbe42552a227dfea31a37e63fcc7797fe787b207f2dcb57f1097d1b678e1fd78571cc7b74555c705aa34f3096ea2065eef72ffda3b7c9a73da98722c4ebd07ed654179caa6e22a0a83eba853b483e778c2a6d13cdc9667fc5cf27a2dc2ae607fd8c3ffb2d4d843fd85b0da3fd87dccbe9ad5f6604687a75afff5df9f5b824b6ece59af42243355f11b7619dfb156711c3e96e7e585b1ab3bb5e26b7fcd4ff479f226eb75cbfcc31efe7726fa926062fd83145d75913f95d3ec9e4571d9ac3bfd7abda1662dc937949fbc44fa565e16a10e79565e25b751379b86c7f5d9db6812a7e5b5ff963dd4e72cd5545cda5375a25efbf811d2f76b0f9f9d8db4a756ec79a69e7d4b735cdcfa77e19cbf65abf4e94b2b0dbf9dcc98b212a7e244b7c2c7ec2a5ea64ff528a3b94e7527acbc41d8cf077c677740f31fe7bcccf76e0fef984e31d5a75558c60ef82e4bcb1b3367ccc2b366dfea6b52adfb40177eb837e930e895b7b53dd467b1b355b967afe5acbcd313be371ea268be62f9fda7efd71e9ae4fc4348f610ce9626ee5f1677e57df6c05ea36eec1793afb7877af73bcd55ac17667652d973f96f766d621275ca87f231de4533ff5a9cab767d46e247390ff1e3d9433ddfe4cfdeb87c2a9ffd096ba5bba2ddec5b7d9d3de024beb9d6a44fe76eeb3333c135cffc9bfc21edb332ba0ac58f7332e2fbb587cfc60b670f7228b93a5093f225d80407ba13eb3f650f346a9828b344f48958d3cc4f2e93c7a8ad3dbdac7740a52a5fcdac33f8d6f2f87bd2f76e0fefced7874d4ebdfaa086fec87f296591672741afe9dd5f9fccfca3fc340fad7faa4f59ea058bcab72c0896591a3f954be38f3eece11ba75ff80613cf7dd2089bf0b61a15b7e5a26c25b776b5fa4f5ac3e76308f98c38f6bd0775a32fcab6baf30e25f77adf5a1e7f4ffadeedc14472b9fd2e79e65dd53fdb3f336f5976a2b7725576b357716afcfbbf5b81fa5dddfffaffea31c3cc3c44e997bdecba9471d71fc954c81fe584ccf7630fef7f1b01ed5bf5ea776e241797bccda7ec5e06c626ecf7464510c4c9203d662d3d0fa7f53b9a7f937fa0547b887a0754ae782ef2b22f226383d1bb13d8efde2effd4faef217dcff6507f3b50bec93cbee2316379fd4ef63df3ed3b58c3bce3efb35938280741bb1cda28e06fb507cd8b3011eaa19cd55faf143e2b9aef5fd3fe56f84b7bf85ed2f7680fce1aee559bc7e528d8966375173fa9a97cb3efe7f5d5883f08a606c92d8bec3987f2efb687348fb50e79a897919fecf99e4fbd45d3cefae49e271d7d5716f1fdda83f503d3f2291897cf95c7b7156365b4657d7de68d2bee67c57dfe5a9f8dfa336b93bf9f8a65d08b6f7dee3f47337d2e334410f69d417c43847d6af7f7e427be1f7ba853335ad46b4ede8cf5c5792192974a048bb855d46f6395f1953f8bb6950cf62cf12e7459b471a6fefd6ef6dfe321541c9e95fb745ff97a173f794bec74523b034fbf8f1d3eece19f49bfb487fa3bd47a572ef4320b2ac592b85be96c2eba5550886c9da7559854b1b6a3c53f600fc5a4689b39e743bc8ddf8a0bf1627f63c2dace6f727ac7ef239efc87d37b7b60f7f9557191f6b9905d76a93db52f8ab45545c60426c52a585649bdb3f9f7ad3dfc728e529f9088752ad86595aab9aaf7b556de8c3f87a29ee99859cf90be3ff5610fff6072b38ba8feb2477ec54ab63411fe5df9968dd8aeca7864fa6a27ee179b2a67c37a27cbad3dfcadf1a4f50fcba252553c0956bc5f9c8a6d18ca376f995f095fc4c9d25805be3f25decf8bfef7a7efc71edef9863a6acba3236fcc46655b5eb156f65a15e5be2ad561b9904b35cf54bc930f3a4c66e52dbef5f1f75a439d8aa55e04b35485f3649bb5f9811ec45755a5afaab99c89aea8bf15c079e97ee74ef8d79efe3f95be1f7b40c2db2ff8f28ff0d55d79570c83f340c5b78971dcc5ab0aa297e8451db2619215976eb4f89bbd03ec41c5e2d4bbd7b36a116ef524ec944f79d7c4b495c8f30edf8900df3ea63734be93ef877cbff66066fc87f179fd4e9ef674273c3333cb4e393163478b4dcddf93e0392addb9877fc01eec9a543b96eac69f18ab147927f3d25669663ad5b26633e718d727f26985ea3b394ff73dd9c3a755e07a354aacf83eef248b6a552cb293a80cdae1592ae479f95866a90a3c331bbca8d6ffc44841a92c96a51f3ed6116571244a33d379a936e2291b96327aa9b6c58dd8be3f91ffada5f7c7d2f76b0ff509eabc5b9fa8972ff16d78a3c77a214e55153e065ebc08cf829eddb7f8073c03527d32462dcb4df9c837d5325c252ffe7d29f54d9989fa0dd19bb41fc4f5897cfcdebe0f7bf8fbd3fb130ff5373fa4e75fc7476c9aaa6c1597092f264555fac19d99553cea85f1e6cb7f66a4f8640f412f9b9657d52e3e36730cafda5707fcad3ae499ec04a1ffe287629c2cad87f86edef6fd3eeda17e4353bee9e32ce5399d981dd7e71b4dcc5fbf6f73995cda37f9ff315bb0a9feba50bbb8cc46c56bf8501d1545755c4d742b4eebb7b8f86d7c9c8962ca64283eece19f49efbf3bcc78bd3a196eb960af511cfbc61b6cab137b9aed09a7a1d2d75f6aefefb607fb2e47ac83ea3438afcefc75755e5d54d358991873a0cbead2cc74fcbca386e292f9f55b21df5a7a7f2c7d3ff6d0cce33d5dff5655ffd11bcb015bcaabaad465f298e6ffa82ff837f69070e597039fa71dfe9ab7b2a78419cb5c8437aa2a27d555755ddc5695892927dfcffb19df973dd8bd435d47937c5a9f9855f3224d6f82e7d2ffcfdb439dd23ce805d76a9baaeaa6ba6571b60ab419b1c6e13e7b2d5eab19abca9188bdd9b796dd1f4fdf8f3d20e1b7a2b1cccc36e3e226eef28dcf54559f98fd16f650c72be14d70adc3ea2ea982eb645647b19a0777d5bd19451e2aaf9222adbf2ec4eebeb5e4fe58faeeec816617fa4c8c8b4eb564d3e4b6deb5fa36f650c72ab545c4be380da7e94a77ebf3f9e530d0d949d4cbd36c5ddc445b33331e7e2fef6f7d3ff6f06eff62cdb86a5741f518b7f82d6617ff797b68be4f68bf2130ae53fdd64e3daba9bf48c6a2ec5e0daa277d2e3d13417c37a76dbf277b707bc7eb7aaf3b9bb3a7a26043efa19e5dfc83eb907fc04b18abd8d6f35d3303b5bf4b237d0af7e59edf56cfd563f3bbe2bf8ff4fdd8c3a7355f33db2c82cb7a2fab7a09ce032feafcf9f7af7e9d6a9dfe95d3d8741e9fc77ed48deff287709bcdfd80dd7f2f6ff47d5ff6d0bc8f272ef520d97bdb6c564d924a2ddf7d47f22ff5f3628984af877c552af13b13605349fd558092b5f44531670faccbee3fe2c9bf9a3eade0d04c13df23565ec47c7dc6977e28aefde7e22cbe3573bce4eff00fc5b68e04d2a7f4c98c3f7963139ff4fcc7ed2ae1c1a3eea445b6944b3de1e77c5adbc3fbb331ff5bd723fef7dac3bbd350bffc6d79b9125ce75ed68ecec5261b05d7d5ebdfe11fec3cb1973c16ede451bfd6112a56bc610f5f73fe327932338c765295995ee6ed725c7f25dfee7b7fd8c35f4abffafe4b84df86250bc9f9717117bdb10bff260afff4fb78bf4ae5d0cc5adb665e70a2aae03ad676cee2fcc2d79dc7adcf4e6557f225def92f453fbeaabf2af4610f7f2dd56f38d97fe9fc0bcb94088558e933d657d3b2acdeeaaf3be8322aeb33717f35d9afc1b48359ba93a7d96be0056fe14dc23fe57f9d3d981967c5229feb23de2f5ea2ed873dfcf5f48b775a7236e153f9e68dfd1d8f452fec5491bfcf8ae020b94a66eff5f617ec615c7f4d30ef9759384855f8284ecb3fed776a7b88d3da1ed451716a7fef52f6610f7f2d35bf29b94ecce753118b6eb18ecff34ed1af5a69bf6a97bb228a17f5b997bfc31eeabdca4464d7f15df11a9cf34c55e1f19f7d13b8b10735abfd83b1e0cb0f7bf8abc97e29ceda03bd8bd55313390ff6f97de4278beaa9da571d791eccfe96b5eafaecdb45f0264f59ab52e569d50d2bb52dc23fbbce85f8219ef04ddcb5f1c3473cf99753630fdebadecd14ff7f7befd5dc38ae858bbe9fbf817796952ca9ce9365cbb692956ccbd21b0022308351a1eafef7bb0052dd6a77983d3d3d7bdba758abba258b09043eac8c0549af8862b7b24d63b1a771b0a43066c8250fd598fdb3fc0655aec7543bbc0d323767037b1eb7cb3ac77f9f437c6f5fe089b5abf1f04fa9d4202c870a92875cf5d59b7b88bdb883aed0157954d891c14434fe44e442d70062999b7a77f626be164795aba33f8f576265f644f80fb1f61539d101ec93a6b811fbd8e2436b80a2f3eaef8f4e1f1a0fd254517028656dd20a02df0e7d11e1408e9d9647f85584bc973f13b9d0785076dc651e3ce118aef1bd3db4ba38a8d6fbfd8778f85adbd60fe54058d698ce508694f64f7e96fd743e071e08d5f5a0d8537c54332ea3a97ce4428de49cb9bf5f29ec5b3c78d87bf1092e04487cf41a252a158b58aa6b977bff31e2bed8a4cac371cf7a46dd73fce272edf7c7a68f8b872f1e6abdbb49071f492895e804bd20977751cc5ce69ee3cbdf8cc5ef118ca0a3fc2399d199f7168ee27ea4fcbb60633d475263ee3fbf4fc91f38d6b50054e15ef1a3ea583ac7bace7ff88764f0808cef01134736fd07f7ce9e3b6015f27eb963c13f8b445e52199114cfea46a4511275543fb1a40a4482825c8dff06073aeff26b7664439338c316eb990cca1a0fff90ca3a2b251ea48c560916a9ce76881a3a9bfebb31fa47f685f63e900775c2db84f80f613f1af351d896aec4c17d34f81b364685079d1f25b1ae3ea7bd0f757ed49fa00b3cac198f0abd5b5eac84057cfd5fa817a76b10d3914cd85342550f1f133bb6688ca68a29fbe73b2b7d4f65d675c27c2246ea90703e14535d5baad61ffe399de585b5645cbdb2477b81de7ce228a3e1a96a3efe917515ba9683bb5033b6140e1b83aed2f66ff1813ef94dd1d2bb3aff4d3c4cc94322d0d6256a1d15c4d5d930357ff8a7f465b5a6a90483946a44dd78ea939fced75f23c31c2dab0f5f64bb54a8d2bb767b713c0c96f6296c9216768395182432711ca96b8af8bbc42dd7fa987d977eaebdaaaa36e553d8d1fbb95a2b324abc6a870cef2266ff61d7737e0e3ce8dd55651e7513df69fc6778d023f7ed59e5ca2dd5555d9d0175d63fcaec063fe4beb068333ea9155be19335c0473cc68eb8d7d9ba669d78a077e8bbac74ff333c685fb5bba06fea88590486b24dcbfdbe2f57237f5cfac87838472fd01ab5d82ab622e147bca9e3d0bfe6df7a0e97796f5f7d49ba468cce785163bd9b05c7e751d5fc5d57ac77afe5186de36bf49a04c4b6fa30af439526915e2b2cda70dd1446992b9ba75a9bfdd5b3755d29b1f1e7d1d1b113c5baa62a4858ca8b8f5f7bf033e041123c7247492c6fd0d18bff120f0a78c082f761d4fb95a6517a0542de67920bf2009665a35afd5d490bbdff6a92c447f61434f41e48c42507b0305e4361e308c1f836a2469007d3602a1f5dcedc9f3f5fefdd2907c8455774264e61dfeab03623a5b7fa7d45fe8f481f1b0f1a11666ddec43b45b7a11f856e2af8afe7277081becb5d9b0b66eb5d57cb3c78b019a7de0b72781334906b7912fcac95eaec576fa9a34f66fdcc1b65a8c31ae4105f85af81a7862c7633f9e8c54e2be8a9937c114f5565899ff107e035498ab6da939164d4721f599b0383f9160f1f15131f1a0fa8c403c94de50fa6f7560d267efe133c987d4b74552747053997bcc962bd2b735915c454ff7a422edec13d7abcc9858e93eb512d7d51f1c06ffa77e5ee0584a20ee98bbe779049b0567b8da2b0cb2dbf890bbc833bfb3f8d9a80aeaaa6e229e885db78294e1189ae580fc7b8a12318ef2b9e7f44faf878d0d9d4a4a5f75ed6f5a8c5321afd5c9f2bb3de90e3529fa95d92baa98e7895fbe2394d2ed58ecc50578ce8c84d9959c55356f5408ecf921c8749219b202b722bc3c7f845dc890edc87693458e3a08bf7f1114d9d56596de2c7cf07d913e81d19c3ad12c93e3990309ac7d83eda8772fff73adefdbb74f647956b35eda7e4984478279ed4f4c76351ad84e947d23fd2b7e484aed48b78164f9a0f80c478250f722ca224b2ae65124f931ba770f57ebd20ef1de53492419cbbade881b4d00d99dacb2440afe1b33d0f3bc053026b2c72996192dcdaf3a06772700e3fc743902777c9d05925f7c943f2988ca25db4b2face6db597ef9775871f913e381ecab5dc945aa21f37dc7b9d5dfff3b59a5ab7e75b16e31d7bf6851b863d1b07f73a42191d340fd07b6f4742a4f189366ca4ebcf99bd9b63f164a7f451b6ad09bd2636c9c9148ff830e1f6c25d790bc060948c9d377587ef3171bbc13a99f0f4c72bc2b4a6a2a6c9d4a5d84e66c913de075142d42a99531737ce3952264a57e3e16fd27b3c240bbdda429e7e8e076d374652308ed00e2d92a59af891b0b47fd10fc58b1747a1bd89d6ec561c23115ee9ec86e0085664a6583cc47bf204988b590345fcd19d79a76445e3644d4eb41974e36bc7f6af55c35edb1b350b0c1e7eec03010ed57254f29ca4c94bf2ea0f682798c7594245803aa61a658d87dfa4eff140733cff397f3096458a1c3ac25bb4881bce04f5dd55b0958f6aca5bcaf690b89137e409b4fe8d33718fcce34aecbc55708f77f62e7c8e123e44035d855a6d756d09c7a6b3245205bf956dc78e5f224254f2c696f44de3e17d8cebfc97ceac8946919d6c935d72653d278d60878975a77a529aca62e54ec21fd6e6fc3c787026b4a5f1f0d37c04ed77b0bd59005cda99b0c44b310104edc45270ff15b8844257f12969263468c48730a12d778ddca4e5057e3369bb5a631d1147d722676d77666fbd6b278fba51178dd45bdc8f690cd745167bd0fbc3ebaca91ff187cabb85a391b774946b23c77175bd52bd8a339ca1b5c103fbc8b56affdfc143292d9c167ba633fb8462774752900f777a7da7de9bdda5eec03d249d68ce8670b77e72ed9ffc792cd99cbca8942865113fe9a221b229462dd50b1ae14edd45b7ee2e6a45e3d04a7a204f5ed9b58dbfee0fff1e0d251eb456e987493f8a5dbbf4828b93e758fdaf78f8a8dce133e101e445eba7f242d7e0386869013a63cbbdc2073e0a7cdc097dfaecc57c1bc571cf23a86b4fad893b524dd4c363fb2db55294e2a49d12bf23b073c00dcdd169176fd00d65a817b692908ddd113e02bf38baaf81153792c85b00c2da605fbc8b9f81a542abb5bfaaf46b989c2b2246f1493590fa8207bf9617bf437fc3be507a3eea6ad2bc193c7902336b656ff92859c9359afac47b896239102dbfe91eac095b91160da22be5a534b559932d529672d2067d6f6dcd4cb59100450cbb33d6f31764e4ce80d3dfd84bf81e3a9354689b455b26efe35aefe587ceaaf596a0cff6ec85ceaafd222f6a3cfc16bdc7833806828e7e848772df75ef052ccd20bca2b38847736579302bf9185d21d7d4001c709bccf8d84dc2477c0a67ce41f552993aa94b8ef43af5ac4c9ac754f58886146b2f257b65217fa4184fb4872a688823bf0d9e908b1cedcdfa59de54153335fc81e5a92f330725a6cedc173c7cd8faa41f170f653e8c258d7fb21db508d2b5c3b42fa8d2e5d4d79ed7fa228bad35d7fade920c85cbef500fbdba77f4310d3c5b704729b04369acd743a001dda10ef1f92658452bb0316fe0ef48ef68f3e5c97a8f578c30480e0c1ac59078b8410e11896ed3902fbd3bc098afca2a453fcdba3051533b7e705758e7e04dadb272b1acb2be6afef0b7a9cc8fd2fbe881fdf7863b3a7e51ae99ba9c8966b5c3dcf54193f7dc2ecc45db96fe82327c9346c0df95cf5c5fce1d95ec646c17c10bf6d8843fa2884c512704596065ac8d3756bbda37f31c5f70f43e5866d7a350d71920b93b8ba983ec953dc3db2864b97cd4b1919ffbcecb3ca960cb97d19a1ffd056be8acda1a0fbf4f251ecef14d2fade29bef5664e99dcd409e4bfa16313ec6f7f14b347167c466bd88e07bbc8f422f56b69c0753ef4ed1e8e4305d8f41cf7a6b09d6e51a78c010adf4eedfefb3972ef7fa94c47de477d13c8de3d7d847dbb0a36bea7f5d49fcbde4d07890271c88fb98e83c297cc683acfd51bf4365bebdce8f2af31fecbdce7f50d77a142e7b5f67b944921dd094bcc6af641853caa4640dd6c55e9a445d6bac57793acd6012aced4df8cac6a40dbac1b0dc070ff842db8cd10ff31b2fea650f599b087c8c3aee4edcb16b77a851f6b525df67d081bdd1d791ce40b0276c510bf010d478f87d2af31fca7c391a0a37e1a89ff8bca9eb3d5ce2a1dc3b9927b18a9f935544e258472881033ca81e19466bbc087a11d2955ff03c6e45cba04146604be0ea1914e8cbf8bccf57f95a9b062384f9231e81bed10f16d6b57ae1f2020f3fa827a473b6831cefd0447674154a5d03a292171f782fad8f8b87b236f1399f56bd46099d818560ebfceaf7d6056893073253878863cf9dc1b86d00433bd26763ed83c0325e8b9d586a59ae72bc94cd4ab7732a4de19bbc84f7fbe17dd527c05eccc8888f84e31ebd3b5d1fe25799393a8ecee2e8ced48078a0acaa1153e3e1b7a9d4bbcaf538fcc5ef47117b76a98e4fbdc783a3e40bb7ec59b8d6da22c951005a2841033e8c1291f2a5ce7708ee1da93d52f890a6e10c34c8f09b2a65ef2ad05be52edcb8dc7b5913b9466b86fd459ab12799780bd7d755b34b7df247766794e93c4a2cd33c59556bfe538371cdf56a7bf33708387951aecfb232c7b703b35e4fba3673cf7d5eee7851ae878a42bcc7f7ba5a93dee910d9f68b958596fd8419cf70116c53f8e737d1ad6a089708e7166c07ed0b60e739fb9e3f949640357ef03fa514d3102907c936da46cf55568cfa291e8620a35c3ee763d5081f898d22f336e5fdfc5a7ff8bb548d8c672a89856444427b2d4819c1d0b3f26b3e3d202248f77897aa641134425d2f1ad32e7088a93510ae7f0dfadf0398261d6fc19e010fabb08f6327bbacd8f223fdcef0068d1852ad2a0ebc8cb4a2b7e8c4336e7988c9cb753aa547a4f2583be56e8ce2090778e15ed94138ada29b5f76d2aaf1f077e9cb4c8591b04ea08f8d42134d02dd30fed633e8bdfa5d2e747de0e0d9bfa657e8c1eca59de20d8c603b6c7ad7ae464413bd796db5d47820b63ee32ff020cfedd0d204f01591b7a467076aeede7b0b75ab7375bfe70b673ce80a316eaab0c885a3b549fffe4bb4bbc6c36fd1c558a564eacea2b9e4a1af022fd61e884b7d5ee745690dc209633f5cab3ebfd6f59ad00a018f262ebf0b5b114f0fd1912ded2226e931bad2bbaf5feea6fc433cf8df56d4a73b6a8134b223419b2c4f4fde4ff2f6ca9c6db0796c9683cd738ab83b6237ba45678f57bd3eeb77a8ac3f598d4644444cf55ebcb459aee87dafbbf97930496f421167310f2d5d511ead40031c8216d7c7c7e8cddd61161392a683b82f9b656ce91b7fe4cff1e0e8780699b21b7a8d5edd2bb76b63bd03cb4f5781a873668ecfe2969adb41b422ae37387bc33ff60a8c8f8d876aac0ab4963248508cc9b9226d1953fe6a63e8f5fa603f6ca3c8dd21457c42acd48c6440f270c67a4926faf2805ee37e7aab5758584ba3ddfd45febb392ab47792b8f8889fd59dbcc1857367f66ffba9ad097818329b5f718b0da2dbe8a1f47f5dac40acf1f01b0478f0be7807b1d95dd1b257dad27b9f8fa26587ded98c37fd799c0745d8a2969781d6119ac854a4a393e91d3e2a8b5ec35c6db98f6091dae619bfe20fa2fc34f9101d6a85cd741845780bb6eb42347e5ef3d2d83b6de4a827ba71effceb68e2ccf4aeac97feef1a0f7f9f2a6f946f747b13d30a9b92f32c19f0e6b73520ca3d48ca6c18d189d6641815565f926acc4d860b7fb4321c23446c2b0334e04b69f1133c942b2e436b891bd88d697a1f9398a917ded415497e5c8fe4bcfb4564a70fe28667e96310e8fa30c08d2a7f788d87dfa5caded3fe0161ead3da48a5a374ecae1ce95efbddf751ce6828075ce1223a4a1ebd9116a1e5be76c647bc437b98e511a06a924ed01074bbe2aff060ae05cd416dd1009e3c25287ac28578d671cd1fd4183be34179583482593aa3799ca64fa5ec2a575e983bd678f80774114f0a4c468aa552769dce592ce7679bb3cc5a8cef5557afb3f7193bb95764a87a4418abb3e2fa96b00aa0d450f1437e408ddfc9ffeaa1d639106a6b0d8224bc5677e9823d8760edf2ad5ecf71c911befaa3cc7a9c583e3aad74e93ad16dba227d7453ea2a9f833e3e1e4a9fb55ec5a9b39eed3d8d75c4920ba3d1a9af75623487706de446bd2072fa9a4368bfd417ad9e7f7fdf77cf42a5be72c68a9632c06306d12a5d47b7c9b53df759faec726e5608ff280fa6dc6d4f67edf145e04995bea8579ae20970870feb9f7e4f9f030fc66bbd0e67a00daa9804425b7c555ecc190fa51ed760b1dad196f7a8d6d1151e9575a3b5ed7879c79fc806ff1227c01bd684b249d28b16f6297d0d766a283662a5b3bb7fbeb69b6365eb163857368f2def4459b59ffb87f54fbfa78f8c876f638ea00134a81fcdf195d85b63e593079d497951e745af8deac73d76c0855dd86f5193df818cd9545e627979cf1ff2876a0e97562ac53a8302a47f18ddd2935bb8c3a4956e785f752f76517a6757e8d58260579c5097c66296bee94a1267cba2c6c33fa5ef62d03b49ac3e7fb1031ca65bfae6c555b562c5be5487f243d021fca097eeeca96a888373d0963f56a03d88efeffbddf33c13fb367b6d10975a317576e429eaaa82bef944eb91d1e147f92f3aaa66f6cc6a4753f14c9b714e50e047054d751ed66742c3c7c6c337d14662ac4e4a59d86449b20cafe8835846836fed4eb3de7fc59bb1640fec891f55cfeaeb19aad393fe6a4c4acf97d621591b3d8496eaa3d7388b7cb4b5b17c017de572cda67a173fd13918a047b2437a15df890cbdf2a13bd3164e65d7d6f2e21fd3a537cf7c377ec27016acd24876d286b8910bcf7e17db52aaeb2a79725ab18a04d89d84f5ccba8ae21ccffe8be7cdf00637d040a88878d738242f6c4e475eecda958df9557ffd060d6a21daf2c455f0a4aedc3bd5507d1ab006de1859c14c76c527d1283f301e8c0e788107b4cc18d16baff9306d264426de9d7c495bd54e7817525c34b4dd293aee9dfb90b6dd995e7755faa6bebde3bbe785c8960475d2bb681c586927be8e035ca8138b4b2df2d2db71c683d65eca1a24e93572d36e20c267ff2a7a8b63294d06bfd0b90ecbecabfef2d1e9e3e2e17b02d9de06332e23604deabd30fc537a23366e065a6451ee94fca55a9c1d47e82872718cf2b4671f09c5ba5ecf57ff825e43e957dff51a8f151c5d92dc5e522bec13a5eed2be5b60e9b490e328defa5a8deecc13ce1aac5e09245ec4d27a8e874924d248452d7c442d9d1d77cec8336dafe5c51f26adef698e4e08e37419a3ccb217f63c5873e9da6a7cd6fbcf355ac4138ce5151398b15674e5cee8ae8c6856fcc1bfe03b0e05398f27a82312f7359a6748a54c6458cdb82d1fe55c67bd9cd7ff7cab419a95dcb11ce895404e180af7866619612fe84167ec9535063f7abec37bfa7478284c2c63142474953ed2d89edbb8ac0ef6d587aced0c3957b7410f6d698c3bfc285cecb20648035309d2dcc73b8f94f634a82dcce87e46139a34333b637e533d71c9857fa8f654f8aefa6de97b62997c141b9fb139de673c13614b750c1a866585e28f9ffff29e3e111eaa55f266ff038a4f99541ebe8f4f789b39fe513cf1edb9ee3d8cd54157697153b543db48384bff810fa30dea7cc98a62157f28b48e9ab9ee4cf5c296bb939da84bf3e02a49830958b3fd725785af354d4b249c3903b35d9fe5f4cd9ebb8ebd7277e48adf9137e034dac2fd060d351efe3c9d2d46d0d16608e3063e456312ba2d3e4e72d0159edd45d4387309d0263cbd9fa617879df02aba51a93c847dad597edda906f00577f224ddb159f888c7d621f3ac6bf66c63618927617655f8ea6df88a05bd96dc9bca3bb027240ed0144d6466bf45b93b220729351abe64f27f93b5ffbfeebfff8c3e111ecefc41e727cf4c46c47534091af649a481870b3c57cfe441579e3d572065aed279f63dbf29a4c77d4eaf4a0f519917013c22d4d932c457bd84b2051f07c29f07dbe05eaf07f7f0b7f5af4d8ec5abae81cc7134200f6eeab80a03f769ab39cd445fbd629738462239e738fd67a4cf84878a039739f0055a7b993b034458d1de7913399bab9dd390a7b2266da9573297fbc114cfdd55fceca5e8c0d6b68019bcd66bb711b65f74a54972089b6a95f9492463a7a5f76853dfefb7a2be78a4fb8e428e5cd898ccd0849ec257bf13cddd5734c00de7d69a7dcdcafc9cf499f050497d6d353aba4e29c5baceb438d841fa184581678d839eb63fb5d4d035698d1ed1f75e827b35a30d34b626d8630511e10cae03b297c48e36ca723bf69bd8bb2bbc537bd78e46dcf3b7df72064d590032088356e2233773d40dde63e2a5fcc886ac07779c626cedcab536c60385befad23e133a3e0f1e2ec948e7b6593fd7c79eb3735bf192bc445befcea5417eb611cbeab3ba42a95ce0227a22c8ba8bdec2c7681c155191a6d1846c531e3555c3f68239baf282e0fe5ccff6fbe86574d03aa4abb3f21858b20f51843b76005a43df7d049e139c5bf6f93070499f090f5f7313ca35f83a674af5b0e53b38a431035d90be2542dd3a4a738868566a11808d65f2ec337b8efa71c3b1938ebb4b6377870fd6244ad4cae9b3a72c545789af4ec1bdd649a3a1d624df93f13c3540d3b4d41075458e89e441835ea1017fa4d1b7d9d3351efe7dfa26b645b41f023728537dd57092f085b6407f08e8881d90e3daf28e37d49437781fb8c3c8698aa54bd50bdee23deadb437b2a52fd4fff6f0fa32ecfb2087523c7915eec5e2b5bb4799fb9def45b8a748efd8b58a60f80ad2c5538095f892ab32c905dedcdf0a9b1a0e973e2a1f44ba18e5e6d1d9de8ccbdb7c67c11ac33c5722e8359908b9da7bd8b9a4eae1fdcf3c467fe1c38c863c4dcfb400482b6340912ec80735cd1b61ad287781ddc23473c5557be23f1e42eb864391d054fbc4b5ed4dcdd25997dd4fea7cfcf194afabc78b09674c77ad17d74425e16a7be13aac0bb53336f01e3d5039b22c601d01cb4821e688ab3281591df8cb0bb425bb4f51ed093fe445bf8bb0b16e9c88fd44b748777e6eae07bf280e8c8d33b21056486b7a18f871a0ff864f883f3ff021a3e2b1e4a79a1b321bc53bccb92f8d9bab6374994aa54cffb9ce682b885b8d79ffaaf2c8d3d75150af6908c452e72eb5affef1e4b1279320ebc98a14912d1967bafaff89eca3bb9f7f1915dbbc72c13a9baf3b9b2888d275f2a957f72347c263cfc509f14c12a08f0c14b9da54a53425267445286ec3543e5f72c2769f9bf3dca0ac5551abfc619d0abf97c726f15d79fe2a8d2ac604ffa2a7dddf794e50ce9bbb2a7e4283bea8e2578a9faac27a5ce73286de16fdbfa19e933e1e12b9519b6d632dbeb9df0b243d4c98ed80a80621ef7e37e38127dfd3db0b25338d2fb710756b4d0e53d9250f4a385fe9edd94df44df7e127dfd3d5dc7dcbfd1d7ff88cafb6073d7248c5ad9003d933e7933d12bf16dbecde7e5149f130f25e99c6bfe485c34c02e69c1d8fcab44ad6f89cdc4f462add727f54fbfa7cf8b079891ba6ae810ad416ee4800bfa5fa6299ee8784595d1ff816bd6ff1dfac478282bef143a660db808a8f877c99a7d4b7acd5fb9eecab444fcd3f7f918f489f1f025bfa9a4ff592baa1a53ffebfef833f4d9f1709971f2dfa6324fd6a001d5f2e27f4d9768d031c5af9501ff3b649e5bd59eabf9c3c723ebbd01f06f132e33b63e763da8bf4b9f170fd53c25157760bfcbf5ffa1bcf846667d7efabc78a8e9dfa01a0f355d528d879a2ea9c6434d9754e3a1a64baaf150d325d578a8e9926a3cd47449351e6abaa41a0f355d528d879a2ea9c6434d9754e3a1a64baaf150d325d578a8e9926a3cd47449351e6abaa41a0f355d528d879a2ea9c6434d9754e3a1a64baaf150d325d578a8e9926a3cd47449351e6abaa41a0f355d528d879a2ea9c6434d9754e3a1a64baaf150d325d578a8e9926a3cd47449351e6abaa41a0f355d528d879a2ea9c6434d9754e3a1a64baaf150d325d578a8e9926a3cd47449351e6abaa41a0f355d528d879a2ea9c6434d9754e3a1a64baaf150d325d578a8e9926a3cd47449351e6abaa41a0f355d528d879a2ea9c6434d9754e3a1a64baaf150d325d578a8e9926a3cd47449351e6abaa41a0f355d528d879a2ea9c6434d9754e3a1a64baaf150d325d578a8e9926a3cd474493fc78325e11fb13c0b5914be7956603e1df8cdb7843d815fa8b5b57c7d2690f7df6e39b40271c74264624fbcb1692b39ff6f8e3374cf756b856923f9c7cfc3f0ee18ded903da5ae82fcf67d0739a24b4a1f8fe7cf85ddfad3c03fad8b4d47c9ab7a0df9d0fc7586ace35f4eff4ea2ff080a17da2ec49f81e5b948ca19d88cef548c037fdbe655f338b5bf8df69df2ffadb83bea1d00209eda1553b2b34e84fd4ce6e4debb069e93fc703601e7a8158d2d3fdf097efabdb004fd6ff4bcbd5b3ebdd718d03417bf00e6ff08dc35b9457a0f2e88fcf87f3c4ff060fa6c791990f7a16dee91619ae607801b4ca336f212cb79c0bff4efb7ed9dfbc9a59ba87d8790cce9f7c85eecbdfadcdf7b3ed379ee7433f08d3176378aef397e773cbc9eecc751ab7dfe3e1ccc734067c208d9dc0e0ce07be267e7047b73cf3f2ea3f4d3fc7036a1b649f671e32dc8058c9791e9af6333303371a11ff4efb7ed1dfd2b4a2e44fa4ecefafd2c2fcaae5d8067ebbd173ef0f3c51f3c544e3507fffcbb385e929695af883d9625aed55f2b74403323c489abfbec3c397ded647dd7fab577f212f84e14fc860d28cbf4145292768a95f00669c72eefd0ff843a9dfb4a1357e8907d3ca2f1c02e45a29e930f0e4bf9ccdffc1f33c23f1cfb361f397e7b32fda01c13f9057e7796ef9faa86e219d439b9db38cf9c1fdcef8d16df897f4b55fe0819632d27089526b80b1cf86c007dbc8d61a9225000fa063649a2f7fd7fe7f9bcc5cd1989d19d9452e79a8ee5f6b576a71b46be4da3fc62b5a01c6bc4a5fc17f2d81b47e08cf4ef51c92d1f7fcd3a0c070ff9207c378877076a9afca1fe0877ce110dfbceb9fa55fe0019e08fa824fae2d943d04144528b25f18c18fe4e0de92bec500235b4bd2149db2c7ff017f00be8956d908c5800872eea38a3b782820281bc3f109cfb3e99fc0ab25b35964911160cbcc90bf6e1feddafbec09e68eb4ec1fd80b1586e133d4df5040b36c8e02f3dbdb0feee719943be62af7df92cfbfd427351e25dbd1285b644b7927ef2229eeb355b6968fd9b315187b6ee68edd05bac3eadf69df2ffa1bc6443c642fd92b9f6a9df2ab85a1fbcdb9958ff6c893ec36dba09e9edbfff87961f6966da3054828fd9cbfd627255adbf36ce7f641af25e8fe87bd0b3c1705d915562035b03db7e764a579596975be3b1f3803b1b30620424b98877fa7577f8907667406df0a499fb582d780c72f7c48bb81e5a8f8c59a32c27616f08dac49811f92055af3131a6a196bb82ac3af9c672d49a880f7731046d89364a1bd06682f09c2591b9e80b1ca3a9eb496d013308bd110adb36b9831c25af213e7dec8e8853bb4262b49b22e9f66d7703fcda5c65a86b21bd5b342749f3d642b6f400520d4876b71d693936849bb4ee6dd677d3d1a34c21b69e434b2d1daca916ea74436dee08d3740437b42eed0caed03271cea3eb766f0bc55105a9e8c724b3c58d3345276388256834e02b3b5b0f2ec1ed9ce2d052d817625e15cb7d86833f0379fe6c81db82b6b69e11c7b03bc4601f05b1e526b995da300de16380d59e5449e5803de7199539fe6ba3daad2879601252bc0b2633892b49478ca19596a3b87dcf2a9270defc1688d867c8a56cb2ceb0521bccb9a523886b1b60068ceed172bd73ce8d243f3b3f9f16b79a1f5443db7ac30a0b97007b9a45d728d2d9ee60ebf0a0bb4cedddccbfd3ca0dd3cc4d26d268446e5b5702ccad25ce5719ed008ade3669eda38cfb042833c8fa67991b60169eb949313deb9dd7ceff6c5437ec88ff929bfb1f6fc361f60193460b4b1c7e9333cfd36bfcb87fc2abfa75d8d567b923fe48ff908186d97f7e8281fe7134ab54eb6ccf8299fba2e5e3b713ec8d6c89644a4f92c7f420f80b722ec082b2c00bd7b8282a77cce6df20c2859610f1df385f708fdcbe3061fe4cb28b21e2d9e4d92483eca225fe56bc081c6d10aee3cca9fc351fe92df20ecc4f2317f15739be760d1a06166e56f3613ad7c9beff22b92e25dde500246ce7696b9f01ef2a695923bab88af22db7bcd5b7a16e46deb39eff001dd83eec3dcd7fc5aec685bf52d47cb6dbca19bbcebf2bc8782bc6f4f053444721404b440054e1aec8a907c91bd70bb204e225a5e534c2d8778054c9fc2463dabf8aa715fda61ff311eb0d166352e41af4458ddc83d863915eeb1150db0433672e0234ac36b65c3a992df16ace085007e6af421b47607859479e190076b8870e1165e3a2e7cb42e02dbf11f924111128ff3222a94ffa0a037d2095915b15f14098f3927cf9957a4f9d2014ecd9acaf6ed0033294e45e634bc81b11f10b28b9cd930ae6b963b5745c1ef2c01b382228627cc7626c4f36fbc65cc31ce8ab8c73bd9337e8d79b177efe87d71f03bc423a9bcf38eb2e0cdac8786c5d191e8551c909d84c5a9b8c98a6210107e2a6e23197167c5b2ec595b55c0b917c59d9c1443b7c364dc47c037f8968fc946acdc915588a9d3885bfcc665b900f9fae6daf1d25ea951fa64bfd8a37c55dc3b312efd4efde241ce59cb0af13a174e503c060fbe28467c5a8c3d968eac316d03e784b98e51318906a11f5ad6cc191553fb54cc8a273c821e9c7b2ff4898c50542cd83379f2f362191fbc97e21638d1c8b3e36b7f642dbff7e0fe4d3cd0cabad7de14443cb90f7b9eb19d024bd9f10bc80ebf58a121b69c6638a20b6ba54e62e84c342724637b8231edf84d2b92ddc22bd678a26e72416d0b7ad729e20d6e14cfd9b67891a478c5432f0391d8b596ce6d84e18da6c5a678a3cfc5961de43c9d84d45e173bd429aebc97cc954a0ef004dab58591d9178da209fdd04a1ed473a69c75d1d69e543a97c495c0a87aa25f74e2be37cc87d6183750e08c8beb68e8aaa22befe25749a0677be8a6e81787bd0592b081e77b142dadc738f3b07f50b668206b8fe92330924efce217715f6b2aa011ccf6d4510edfdb5a86502f0999bd67f18bd3147dd0239f94cd8fd97e4ff63c407be17779cab77b3033d209bccb0137cc6cc5f6040d19da3baccd1dbcf141a4b110755117f0bb929360b87783317990daf3a6add72b47edbdbd0fb366ec6179171ce5601f90cc6bee436f6b39fc2407527959d4d84774e7a86441453820afc500db7268f8da176fdd6ff007aff43299380570abbdda73d02c6fad59123a4d67a03cee3b7346e23ef45a9f46d1b55acb8673e7dc9231cc51c4a7fb3898ee9338f709c5f835a7ee0a458074bc4ff7d93ec7725f0057e1ce35b6f7fbe09ebf5acbbd1f5ec93df0cefbbcc7fdfd617f947318cb0724a0b74ffb1b66d3be03331fe42135f64d3b5aba929f6004acfdc0011e059a8cb1deb2155c01f323e64e335a10cf755d9b77f8086136746df76e7f977440f253923acd6c9f25c53eeb59edfd501ef6f71ec153d973edcc970794811631152997fc61ff20dad969ff68fc30c0e8c46a3fc24e3488166828fafe663f0e4e8e8a16f983358864e8ef27c5740f521e7be989beee676e82d754b02797830cda1abdc8b3667196307f4441fbf49aee8a3fc6639fe2753808057d0b5ef64f0af005f609581714bb997cdacfd1de5e898decec17240461b024f17e89d6f81145fb5596d07edadaaf259313f82ef6cf6cba7fd9bf4696955e7288bf8f872fd2a6b48b96f99e3e6ad998ddef37fbb7c0ca4ed966bf45fbfd6e7f15dde38dcac564dfd837d15e6b897015c8c97d0be65b7bdfd1fae0fe3a8ff65d8b926bbfa5aef211bbc6a0fd91eb7d6fdfc7f260c563ad171dd001f32958e7e2400ef4601f9824e4f6c0dda64de327b1a4fd833848498cef01858783839c838b5fc9e3c1639ebdd55a951580603df176fe985dcb4dbe38f8568163d73904ca67a071d17b2cc51c4dc5186137709b8750a5870866e1dc79134f077588914d17bc60de2139a47c0212104647b043964cf7c121d7f202faa12f5238bb9027b9a18bf42dc80ffbb81fe4fbc00a431add7a0b7775381c8e0c58ab389a7b9d588182f8f570634db515417b8701468e1f760eb79ef4e67c196ed5366ec620bbb873b8b3378ab10358f35d3d232dd0d1480a4f191eee89ed1cf9e0f020161c64a12a5c0b3464c04b84e20cd4f7e5c151db202788f3f0eef0a8a27d8150c91ffecacefa057ff02b4454366fd63f8caa58c10ee6f90c2bb01140f7052d6c62cde0edc40146d4190316807759a027ef797895eded97c344eb13e101346da43577da051b0b3477b8bf0d76499fb4f99d1707cf30b725689e3a8e862dcaa7640942330264312b756e2d277fc06be0d5c0554a6f8ff694665de756c4968730cce39e89406adb867027eb655de020bb6c45a9b15c026d9b809e8d299ced807ece1db074023cd1dc1f2421b26fc92dc59c837de173075ab93e4c8ddc85e761b01082103891c886a03de8370ad030a06041adccdb77c12e59596d4055a8bde4cef8300359bac13a9a0682c05ac29b2cc9daf2911ddce84890897048102181b670ac2dc88e3dbc7b4cb44dc32d7a786204eeb6b4e62001b760898ce13ed4b90574c8430ef239776e0f73cdabc006c1c64a25560b9e440e0b786366ac0f90ee60f7ece12ee25b69f11bf2421a3b879a9851e943c55594003e0dbff3bfc4fca8f94ddb375b63297907e060e1166f813fef403b2eed2769a8e41ea645305eb3601180b616afd88b194d1d95d8ea780e9c9354d162f33fcca69541670cc702dd3b70b60d1ab4fea6650731914ca7f25b6ae44933933ded3b3256a07fe17fd7def67b7315aa3cc1c2f4a8968edcb495014e7ccb2e3d1da8ad7d89587f6a74612333b8b9da336f6fda6e4f0e6b6facf5a7c3b391b77ee53ff2ab6becaacf988e0c0377bc33d732edcb29910c9f9ef1a5488b8335ef579123c7b4acec7556459585b9d2f4a9f670680c55d19c327aee194fbee9bf4af25fd816bf232ffe1e95c88191a4a68ddace87b9a6637665a456cf07da33d8219577f1def43a967e4c2936f385550894065d76153111e68db87d6b7c38c67a319fd88c85d6771d7dc661591d9355ee81f1539b6b89f18ad825daa09f6589890a37be19ab077336337d4e4d6f1233f6655c9f94311a33ca041b1d425b81704d51a1e38c3e52e6282c3398fb129e5522507bfc3df32e1a43d88c9f3e22cf11816a4e99734c9e03d79a107eacda4f4d5601aa720da4e92b597dffa1ffeaf7e80fe281ebf7d7fdc84baeed1b4983a8841ea3a6af1e6044f538f98717e0d3caa018c12ced028fa57a66c0ecd358e755f48878633a87df0c2fd2c74086f6ccb3b6067f1446d8f87f50bb8a0f42af1c5ee99ca586c380d4d012a91c4bed3bd36d82df1e8c4c91a66f752b35263077cca8eabfb9f94dbf4b01baa189f29a6b0beb1efe692ec3c46b356ba91e37969a77d0c802790452ecdedae9a8780e7c832c0eafda776646d0379c441a0fb646a36e09018b4c98fbd806a5257f323c4d7bd7400ae112b7cb4cf31e5ce2907ec1aba3a5c99fca3ff993fcc1e041639fb19de160800cd974966108d614d29204b4b0d2db3b931d36b642c3dd44c913e06a613216bc2af217134f7b3cf909fa18f4f0c3f8b0d11135bcb6607e538a22aafbb59dadc8b54191f642c1588206b3248dc39b3503393f663bc38b841965ac51577225f85b73001d2d2867b7a8629755b682f6bad0ee617bd81a4fa29991600e4ef9c9935480fe204a8fb3f65c5b5ef670d8c199fb32ae0e5af1d5a101327c76681e5a56db604993679e12821e20b56fb344149cdd26b69103411977d39eb632a255493a5ccaa24aa7f34a09aaf98df9ed019ec0ff543ce30fe201e61c4babf67a2653cdc79343c706c30f0d35b2ad0d8ce1b5f658932579c80ad0db98b5317d5a6655181bec706db9d0836d845c47a66e76e8f26730d1632ef0dcba426bb18c9f002723d0b47bc83ef8d9266a6a5b4a4b603a071dab7fb454c4d57e8f6c782a459afbfb557c9699b944e0a9894185aff9963736d840206f086206c9941b797744a0486e8c2605765dd2966047aaa723c84118315c4921907ca0a776d116b4368d2517ad8fe4087a9c731b3df30001de8e95442b3373ace2688b251f695e42d6313db22307ed15f81f191becdd00def4273ebc542895959ea2bfb74d2f23830a83034004fd53f1ef3f88073d03b56f7fa7e30454bfc1ec28c02abfb3f2ca9f323d4adaa17de07993b4c5903f262be813841f31c26b6d4d800c396758b49241d8755b313f3ab96bb59d396fc4dba39bede50009fc1af7997d043b41c752b293e1ff5a431f1e7d4ffb9356c780f53412906dbfe0b5f6ab8234029bc7b9456b2acaf8a4b62dc403707a9dc9d4437be03cfe21c7afceadfd02a8d51ed6157b3656118c0d9fbaabcc51ee315491980247d22ec37b720bdc688cd761ef18695b4a7bd28f4aee8f7176cd1dfb0a9fe09d64768b5fa14fb4971db46facd2b5f69a1a1ee358e93139a6463e15f8956beb125b376e5f92801ae926c10ed7f610371209e73824560eed4b00371ebc1d0890e31fcb3ff98378d05c99528f77f67d4ce30659d92f62128c9c42f48eb985b5e75eb4997b2cdc3e89dcfd714f4779e778802b7774753c8a793c3b9e405ade5b31edaa386ac084888e37640a12c011fd28e60a07c7c1f1364bf0e678e76fb0954d93d051d0b3a999391ca1e390219015396bc3c8df5bcbe3fd81f2ab02aec81e0892717895df1e1f608c045d7afb201737c747720d739926cbe3285bd9cbe3f8901c27c72958d26b02e78365af257d0ca3d23dcec46d7c881a6ce5f631584fc7a7707b9cc3f7d7e3e2b8f41ee4e2e802ae36c5f8b8d2d13bbedc5f8b072b3cc29ddc66de433a6bc4c1ca99177b676e624c124fc53279a3022b7b1bf6c4f2f84c3dc73fbec8478e8eaf68055c667adc1cdff20e1e693fd071eb93e38e5e63e5beaa2b3177c2e395d66a3e1a1e340fc3ca47c593b8c3a16b8b3e8ac2b762116f8e8d320b53758ecd63cbdec268e4c7f6b193379da638c22c8d8fd7c7aee4f9d3b107d21a742414b02766f347e7d65d70ffd83f8cb293b26360042774c2c120bb8efbc51efeb58a3b47614beb0e20097631929313f127271ac97467e579a0bd8c87be58d983ace34cfc1cdf07d8690037c0e8c91d9e6cda3cb170e0dcc2346edb234ab3871377ded4305e010e96daa70afca13096c0326f9f44318f7b329604aff77cbfa4fdf04a9fe1dceec393e43727279258c0dddcbddafbd6321e93186f08e12abc226151e5b2a055dcf7378087b691581193ce0878d7246fc4e3a338799a2fb94336b5c6fe9c4fad5ccefd26dd7a4aa5d0c12a1f84c9c9cfafa03d1db93d05d6184bb23a851f0d0f1aebb41b67de0b6b9ca2e290bc114f798e3a29cd9f752695739bb7e3319e584412391099741ce54c2c90a4c138defa8568273390c48ef622850db13ac5787d4afcdc19e1b5f63b9fd25376ca61362df0c606bc3803b466ade2e08ed0aab469dd57261972b2536123feea6de38cf74f7b6547030212497bbd5968af99b45a2872e5e9e02d05270fde10c6c43e1db30e56a7532c8bad607ccb4f3a8607b3526760ea98c5ba884f37457e1a58ad32da80bab91d5e853d9d2514613ec70d7e3cddeeb7013dddb9c01dd15a7bdff929bf719472ada5e64a46df28a205b32ded272b74d4c1515a02ee0368c3f0748f56a6350fa7dbd3e36924c9e12d6d856fe886d924a51ec6a771dae28bf01e458ef2f0b10d674db2d59fc818fec378008d06242307ce00fc21926c98758f1ef7e3beb6b08c06b42471c1347fc05339c9994dbd1767029c72e213bc40afa98b8fda9ad79a38bb394d0327e9d801206a86d75a2eb81d7eaddaa7a72c4101c5a739ea9e16fb25de515c8e18f095b5f7c02549c5e0b4745721c9c3e310137960c069d0305a729fd02ce7bece7e90fdd32a59d941083a8c73ab7b1bd968e8dec2f3d678e1c26d603c7bb4037c427bd0909eb5f1d8db9af8bf44c3a09ba4a7e7d3cb5eeb3d1bfeaaf6c9e8343ebd52accfdc738cddbef9dc5883d3863de331f2cb0c3e8ce23edf9ede4edb48a31f034fdba1a1987a33f69c46a18dd6beb051da3925de497b81c50a90d0e77ece80ed4994a50309f886e74ce4365911a5fa6586d507c383f6a85234d4790378c79ed010ade426c89db86c2d1cbfb607f15a7440038af2857b4bfb6279baca1fc8f5a9c1bb8724589f9e33eda783b94eaed936143e210f45acde108eee4fcda889d659523c9d5ab48b5562a3ad784293531b46c82fed6fb41253bbc0f3644a9f3181f1c5f6ea6889dda943fa681f3fa57bfea8f8a9099a63e0bec6330fb143ded3b92c41eede86d462fe024b9fc52db1b35a74c197dac36ade0ef447be84bf5fab1cfe30e5fbb6cf0a3843ebabf6cebd8753765e0af87e0db7e136bb265eb83dc02c40c3e42063b18cd66051698f58981d23e9bdc881ba95c4930e8d5fb50f3f8d258aa6c533c2fe42bf7bfa40c1da054ed68457a1f9227e650420957271ba263e5a61e1ed4f5d60394f20653f1c1e8c2fc18591bcb51e81667aed94350349bd32b62835de9b19cc3a6df3a3c306f47a8137a79ee1f421dee87965b58de7adcc400fb5566d3dc2d8cd40fba3fc049f1c64cf23d5be1bc71b59cb6cc5f50a1093bb567912db6808d288e08d898f389462ac73b1cab849d6b16fad19de94b103fc8a3787a9f6f2a355a6a3882643914f81d3636d6b680cb0d29b68ec3d4682b05a7da26dc730eb588f30c2cb65c64187c8fa688d37f0b7a7a32926a25030c28ce702f421827464061b8f172bdb4831bc1387a3e60d2d026ddd642b1ac12f2b34d49e173434ed3477057d56fbaddada7ad31885b616547803381afcb96cca3fc81f4a4bd92be7b7f1c2959663b95ec1e462ea2844151df0cac84275b4f4331baf6135b6654ebf5fad563adf497ba9cb9537a57fa77c2635ab2248e5ada1a5bf7af9757500ab7cf8674ff739b2432b8b1e559ea872ecf54896791fb88ada88ea6d64e9ebac5a54c62d4ab4d0ea89cc2a57e1913283d7f403374785b9de645eea27e87b68efbdfe048cfa95f7995577d856eb08fccaf7ae331359e5b9965fa234c878e01c4bfc27f9bdff753c94bef732b685ab3954be43e9a32fbdc3b4f413979a76d567bee96fdf7805a9b947b9f28a5cdc551f753506aab1f0ab0886f1899b3b94b9eba5af9c182e63627aa697bdca7f2ecd9dceb9d8f8bcfaace2304e19ef3091d3739481991693cafb745e05563ec9e8b02cadc6de8cb1f14096d83923925bb1b1c5cb989e6feec3ab1e2bf3094accf36ade08e3874725faaaf7708c3f8d635445a99c924b01a729574dc93fb5dee14fea0f55dc656b56f1698c238b6b6fa489c4d0121db89cb3b88c08590ee01e9bbe76ccc8e0b2afca1eafe25060fb9b3ee6663ee30a3565343ed0337459ae55311ae5976859197160e63ac73cf31ca3e555cc099ffa5fda6cd65354ebe10283b67295458996725d0d3133b17c1aae305afeeac3bb7a2592cd51ffcb3cd6d75333a6e5318c58b5e2c6af3040abd819af625bb6e985b641825856ab60acf36a385efd45aa99212b64fd21ef03e0e1fffbbfffe7ff07835e35f2 - + diff --git a/kmyfirewall/kmfwidgets/kmyfirewallobjectinfo.ui b/kmyfirewall/kmfwidgets/kmyfirewallobjectinfo.ui index dc76d30..5bae513 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewallobjectinfo.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewallobjectinfo.ui @@ -162,5 +162,5 @@ accept() slotHelp() - + diff --git a/kmyfirewall/kmfwidgets/kmyfirewallportwidget.ui b/kmyfirewall/kmfwidgets/kmyfirewallportwidget.ui index 440e31a..6807c67 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewallportwidget.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewallportwidget.ui @@ -173,5 +173,5 @@ setEnabled(bool) - + diff --git a/kmyfirewall/kmfwidgets/kmyfirewallprotocollistview.ui b/kmyfirewall/kmfwidgets/kmyfirewallprotocollistview.ui index 17e2a05..f2f2f60 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewallprotocollistview.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewallprotocollistview.ui @@ -63,7 +63,7 @@ - + klistview.h diff --git a/kmyfirewall/kmfwidgets/kmyfirewallprotocolpropertieswidget.ui b/kmyfirewall/kmfwidgets/kmyfirewallprotocolpropertieswidget.ui index 00eecb3..8083d06 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewallprotocolpropertieswidget.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewallprotocolpropertieswidget.ui @@ -169,5 +169,5 @@ setEnabled(bool) - + diff --git a/kmyfirewall/kmfwidgets/kmyfirewallselectactivetarget.ui b/kmyfirewall/kmfwidgets/kmyfirewallselectactivetarget.ui index ba4d937..5e97ca8 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewallselectactivetarget.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewallselectactivetarget.ui @@ -172,7 +172,7 @@ - + kpushbutton.h kpushbutton.h diff --git a/kmyfirewall/kmfwidgets/kmyfirewallselectinterface.ui b/kmyfirewall/kmfwidgets/kmyfirewallselectinterface.ui index f39f45a..4bee50a 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewallselectinterface.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewallselectinterface.ui @@ -384,7 +384,7 @@ 789cccbd47b7eb38b2ef397f9fa2d6e5ecae5e7cf266d0035266cb6da7ed77af1ed07b2f1aa9bf7c83883f704c56d5cd7c75bb5f95d6c9ca5f8a22114044202200f0fccffffcdbe7d3fddffef37ffe8fea625c02eb6f966f947ffb4fbb4e92ebfff57fff9fffcffff88fe160f0b7fecf68389bfe6df41fffc7fff80febf96fd6df9401ff5fcff64232ffde36244f7a762ac953fefd56f29cf35cf2a267f3072ff9f733c906e7836493f35eb2c59fd74ab6797b1f243bfcfb46b2cb7fef0a1e72799c5af2907f7f94cce5732cc963fefd483297cf3a8387d43f992999ffde0c25f3dfb79a64de5f662099dfcfe924cf386f24f3fe4a44ff0fd17e5b327f9e772799dfcfb8078fa87d662499cbebbb9249de6fc9bcbd9d2f99dab795ccc7b31a48e6e3b71a4ae6e315ed25f3f1b04f82a93f0dc1636a9ff32999daf32599f757a54ae6fde17e48e6fae23892b97e78a2bd63ea1f438cef849e97e892f9f7652b99b76f3d91cce53763f0947e6f08fd9c1137b664de5e43c83fc7f53bf0022cf475499c8be719c4f113d824de5cc01671fd0eb6895dbaff50d8ab174ae6f2ad3ac9a47f63c924df4832d73f732a99f777f324998fb73993ccfb5f7f96ccc7df3a49e6e3514592b9bd3aa664ae1fd6bd646eaf9a2b98f4ddf52573fdb58e60d89f6d49e6df9b13c97c3c1d45326fbf634826ffb2934cfee40086fdf88164de7ff65232d9eb9b646e1fa607867e9bbe641a8f816092cf14f2423f4d070c7d8b9f25f3e7bbaf60e89fb791ccfb3b15df43ffe22f30f42f13f240ffea1b18fab716bf877ee967b043dc92bf1f0ea16fdd9af3a8f740bc3dbe64f2f70bc9bcbfcd2fc9bcbfbd4432f90b4730f5cff55e3297bfc9c0187f732899f4772099c6e35b321f7f6b0fc6f8daa6649aff7692f9f3724d32d7f7cb4932ef6ffb4e32e9b302c6f86723c9dcdefc50326f9ff32e99f7975382a10fd75c32d7e795906742fdd3bd49e6df67a2bdd09ff20886beb89164fefcd54932ef9ffa2c98fca72bda0b7d6a9f25f3feb0c4f842bf9a07b0d02fd13fd0afe2090cffd6c660e85b24ae87be05a40f63e1df8277c9bc7debab643e5e575732efef6e2799cb1bfcf89ecbdbed2573fd5cfd781e1fcf952d98fa3b91cf277f74cd24f3fe0f3ec08807ba8d64ae9fc54232e98f27993faff9f13df787ae680ff4d57995cce57103c95c7fac3bc97c7c7c5f308d67b8028bf9f72299cbd3dc49e6f2981f92797fd69664de5f7e2499dbb33b92ccdb6f2dc1d067772099fca72e99b7ff6a49a6f946f437f4b9bd48267934b0d0ef77c9bc7dad68df9cee9fee25f3fe69447fcc31df88f1843eaf6e92f9f3da89649a0fee25f3f1cb85be41ff0331bed07f5f8ca7f0a7d43f13a1df9d2a99f777f32899dfffea80111faeae92b93cee41f090f7effa0c463ce77f48a6f9ee51321fafeb4930f547bb01433fecb164fe7cff5b321f2f2f92ccfb3f93d793bd745b30f421ae2593bfd94be6fd1b2692b93cde4e32b79fda164ced8ddec1d017e74332f9dbb564de5e772899e299140c7dcaa692b93db8df92797fe61d18fe3117e303fd59b792e979b164de3f8918ff05f5cf46f40ff4c715e301fdb9bd80e13f57f792797fad4a30fce906bf17f3f51ae331c4fc19a13d43f89780e693a9f0a7ed028cebfd4e321fafe6198c7cc00b2473f9bc77c95cdf4a4ff0908fc75a5c8f78bfb52553fcf02999ebbfdf08a6f10e5ec1c2bfdc49a6f97c2b99e6ff27c9642f3fbee7fab416f2407fc299643efe912f99ec692099cbd3b492b9bc9ab8ff94c63711fd0bfdb2a792c93e2ac9140f689229df5125f3feed5660e85ffd2a99fce34432efdfee00867e5e14c9941f8ec0d0bfcc904cf9572a99b7a76e25f3fe73c760a1afaa646ebf99e85fe86f2ec61bfaea0b79e11f0ba12f2eda8bfb4b7d267b98897c64dd81a1cfeb503297afbd934cf1d45e30fc93f81ef363b896ccefbf3a4a26793dc1149fae7d30f247ff2a99ea1d3fbee7fed68b05a31eb1924cf9c2083ca5f6076bc9542fd948e6fa900e2473fdbbbc09463d630246be1a6692f9f84481643edef95532b73f5df01cfd7993ccdb7be92453beb5924cf3c14432efbf5cfc7e01fffa2999e6bfb1646e5f9b022ce2cba364de3e37114cfec132c0d047f74d32f9e37b30f26b2f05431f5763c9bc7f42c1d04797e6cf99d0c71be41fc21fa52a18fe24207d9f0bfd5a1d04d3f8570fe009d573dca3642e7fbb054f697ca237c1246f3a944cf53a5b32c5a72f60f81bd796ccaf4f2bc994af2d2593be6f2453bea682e7345eed4e32d5ff14c9bcbf2f57c95cff7dd15ef8a35097ccdb93cd25537e2bfa6b3124fffd055ec2bfcc24537c548045fe518331decda7647ebd2eda6ba37fc478c01f6d44ffb8d43e1ded17e3af3960cc97f5022cf481e257a6dd149fd96bf08cc6ffe64aa6f92604c35eec4032b7efab2799e2375b30e94b2aae5f50ff58aa642e6fe148a67ce1065e927fb80d2553bd2494cc9fdf3e49a6fc45c863c07e1dc97cfcd3a3606a5f7d05633e887682497faf4bb08df8e2030cfb2bc9de17a2ff4bf49f886762f4cf10f666bd80618f3e8dff92f5177f5e914be6ed2f36e005c91b5f24533cf22598ecafeec04be467ae64f28757b041bfaf5f040f29fe68c0268d9726da63917e14a2bdd0c7f424998f5f44fdb314fd91bf83a18f8105467fdc4660e86783e789fee94a30e215e3118c78a3a0f9dc60fd45fa34072f491fc329d8a0f685a964aae7dfc0265d5f2f05537f568f60d86bb091ccfbe36248e6fad988dfbba85f8e24533e48f66f88fe892b30fa67634ba6f97508467f6d1cb0a827435ed11f35fa6388f9c9a7f8c814f157fd065e92fe5f6e6083e42f5cb0897ac417d8227dca3fc036f55fb305431fba77c1747f3b02bba4df3ad9ab29e42f669229df46fb647fe460d8d3aa0243fecd2758d4bbefc0a21eb403a33f2a8a772c263f6fff35055ba827d1f85aa2bf2f1a58f4f70a8cfb252a18febdf1c0f02701f58f2dda7f5d48a6fe9b8071fff21d2cfc83603caf51c1b87fb106433f4b1a1f87fd17eebf1b17ec903efbd43e46b0f71a0c79cb2d58c4e72d18cf2f1bb078be0dc6f3339abf5cd11f8906c6f5de1a8cf846e3f6c1cbe724df068cf6548964ae3f1b130c7f9096608c7f7603a3bde90e8ce7bb2f60b4d77e00c39f075c9f98f639e47fa34832d7e7f84c2c9eb7ba80216ffb08c6f3cc042cd64f1a30e42f9760d88fe382d19e1ced19c11e42aebf0cf17cd306435ecb04a33d610e16f20b16f1470a16ed3981457cf9443c82bdae2660e19f79bc341c8be7d70e18cfd71ec022df8ac178feaa05e379d72bf108e3df70ff369cc8fe1d8345bc9c81d1fe60452cfaeb7a03c3be74ba7e2adbd382f1fbcb3b18e3910dc1689f4df24e657fd4603cafb2c168bffb0cc6f32b1ebf0c67e2fe01e9d34cdcef1283e12faa6f30ee67f860e1ffe660a1efdc7f0ee7e2fed58c58b6e70cc6ef8d002cd6173db0a83f2dc0d0b78edbf77021e5bd078bf6aec1f87d41fabd14f2155bb0f8fd108cdfeb2330da93de83f1fc8ac6d310f2ac1a309ed772ff3734c5fdb48d64ee0fb72e58d4e75ec0f87d7202a33f0d713df4a5237bb7e4782a60b11ee681d15eed112cee1782a1cf158f4f86b6b8bf6581c5fa2af5a733823f762d30eed7d2efdd11f2efcd1d18d76bdc5e468311f2a3c007e379f5082cea75f760e8fbfa8d782cf49dfba3d150fcbebc030b7bdc83a17f099faf472371ffe64c2ceed73460e883cefb6b3416f7ab4fc463e10f2c30e46b8927e279b94b2cee6f6cc1d087ec092cec4930c6f342f24f85fc46442caef75660e8cf85fb93d18cfd9ec783f1162ceaa37cfe19cdc5fd3ceabfb990d79d80d13eeb152cd64fe9fa85f8de7c05a33df9188cf66cbec0d0c7f50d0c7df3b8ff1f2d85bcce002ce227078ceb1d0f2cfca54e3c41fb6f74bd21ef5780f17c5d058bf53beeaf46e618ebd77a2299c77f5bba9f25c6b7f4c1c2bfbd80d19eeb07f104fda1933cb678de2603e37eba01c6ef6f57b0a8ff71ff3d72c6a8b7e8d47faee88fb507c6effd188cdf3bdc1ec67d38c739e2e3c5a63393e21723269e60fde4f22c99d677b93e307577285eb7b8fd8f27ecfe9cf50e0c7d8a79ff8ca7ec7bfefb6b412cc627db81c57e823730ead9eb1158d43fb8bce399b8fe7a0716eb5d7330c663c3fb733c67eda1fa484d2cc6c39a83a11fed193ca57a651282b13e16f3f96ebc9860bdc8d880c5fe810c2cf21bae8fe3e544d4cb23c93c5ed30a30ea071b170cff92d0f81813d443d71730eaed9a07c6f53eb7b7b1c9bee7fa117c49a6f5024b30c5b3760cb6b19ec9e3adb13331e8face93ccfbaf3883f13c23013ba8a72e05d3fd0d1b8c7c734df23b53d8df86facf9da03e7e1b80f1fc82f7e76430813e6d63e229fa3be5e333194e4cd40b52b04ded31b8fe4e4653110ff2fa0a73a736f28d9a788afd67fa180cfd6a1db0588fe3fe7f32610accfb77c3f59721f2c77c493cc5fe0aaf00e37eb731788afa4e059ed1f8361f60d48f6dde1f93d914ebc7460a46bd2fe4fd37994fc7940f6cbec1e89f98cf5f93a578def5013c433d86da6f4c51bf09b9bd4dcce982f2b39cebcbc49a22fff6b83e4dec29ea15d95932adb704c433acffebf43c776ad1fd039d7886f5d315bf3f5356f09acf77d3d1d4a5fa65734f3cc3fe035d134cf7372c30ec355b824dc413dc3fb0e9906574dcdf79c4e2f74501c6fa5b74104cdfb73c3e9d4ea6d6887f7fdb10b3e791bef1f9940ddf1ceb078fe005f5b7c5e7e3e96c86f58f8d0246fd3a76c1f311f9b377b043e31bf07c693a9fa1de19df816dec07f804bb584fa3fe5accc47a86069e517b82002cd6f775b043f39bc6e3dde9923d8eeb7332035bd47f3705ec60ff824d3cc7fecf84ebefd498c19e2faf609bfa2be6f9f0d49c2d51cff5c016e5fb2b176c8f78fb8b15d8a5fa99c9e7d7a93543fdab1b831dfafde6287844f5d10e8cf1af49bfac39c63bff024f499e98ee6fb3fb937f7d023bd4fed407bb435aafb124d37e2d5d30b53f03cf87d43eeb0d8cf5dd7803c67cb7e1f63d75587f707df1e9fece7c30a2fd5d7b30f6b3469f9269fdc792cce5594dc1587fba52ffb84c1edebecd5e326f7f41faebceb19f2cda8271bfa6133ca2e727e0118d4fb2164cfa9c2892f978af4c30eca1f1c19321d7bf2bff7e3660e34ff5e53bb043cfaf5dc174bf6c0076a97fdb929805acfcfb6d0446bdbee4ed9f0d857eddd660f89b6e2298da5f05c4ac3f687e6bc0c311ad87e07a263f9f0fda77f094da537f8067245fc5f569369a1963d29f2b31eb5fdabfe20ba6e7a777e0d188ff3eb9815906c29fa78227d04f053ca3f6b65c3f6663260fd553a93d2cfca4fec91bc95cfeea041e517f5fb8fece2662fcdd023c86ff33c1d31167cd06cf21cf5c308d679d8017d41f0df72fb3e9cc1ef3ebab14ec8c69bfc05432ed47d38885fe5d4cc9b4fe37028fc8fecb37c9649f25784cf6ebbf82e7f47dbc042fe87e05f5cf4ce8936b82e7f4fb36113ca6f17a002fe8f986b8de80fe8bef4dd28fc292cce52fa68269fc4d1effb0db2f49decd0c0c7fdc92fe2ce6131a3f6d2d98fcb7bf02cf49bf370330d68fea5a30fdde38831dfabea3fe59b2fea178b0009bd41e4f03db23aeff37713decb5f00593fc2df5a7c1ee47eb6f2330eadd17156c8ea87ff7609bfc45590b267f78d5c02e714bfa6ab2f1207ff80136c87ef22918f34dfe06c67cd186c48b018dafcee3cd99c5ee47faa48217647f99609bf4c7a0f1b2160392afa3f6da6cfc68bcd69279ff949f6093daef4ec1f067f5817831a4e76de8f70ebb9ece177c806d6abfb3235ec0dfba2bc9b4df9bc6d7ed1376ae5f5c3fe703263f6f4f520a1e53fc99102f66d4be8cf7cf7cc8e4e3d7673e784c7cdd82a7d4de5a03c3fe751e9f3265c2fca09be009d94fc2e397394b87c99f186bf08cfa4fe3fd3b9fb0e7717dacc792e97c0b8f5f58f8bb20d6793d613e5f2cc7b49fc5005bd49e35b56fb1c4fcecf1fe9e2fd9f7743dfdde582ca83f8267b049ed59f3f9686eb2eb69fd782699d62fa83de67244f67de1fa3eb79643b237ef2698f4ab9e8347d4feb0008fc99e1c6a8fbd70d05f4762261e6f9f46e3e730a6f3160618fdbbe6f9c6dc5d0ea8bd0df5bf6b88f89aebdfa25f00a5f8ff4e32edd749c0636aff66019ee17939780e7de2f92a73f643e8bb031e537b7c133c237bf5dec073ba7f44f71f1a225ea3e78f447f79dfe011ddcfe3f22dc68c29feff06e379ba0e9ed2ef0b1effb1747d44f3b1fd0d5ed2f78d0236c65cdf367c7e5fb0009858bf07cfd15f7bf082f4a3492473f96f19d8257b6df8f82e66cb05f55fbe223630ff6f797cbc98b3f67079527afe82319d17e1f6b7581a03fafdc693ccc7d7a0fb194b97da7bbb111b63f2af1bae9f0bd31810eb7cbd61612d1dd2bf94da671943c8cfe7af856d8c69be6e0563be594f2573fdd7b8bd2c1c763ded0f53c01392c7bb4ae6fdd3717d5db8c684fa4bbb134cdfa767f094e28180fba3e5c080fff15fc0b309f5ef9764d24ff13dfc43cae7a3e5d0807d6cf8782d47acbdfcfeed0b783ea1fad50ebca0ef6f3ed82079a32f30f2c5644f6c627f5acce7df655fd0e1e3930460a662dc3f1cc14beaaf40133ca178a8069bf47cdf90ccc74ff3c10e8de78dfa676c8afd09b564daff5982b1ff36a6f64c58ffd2fed40b7836a1fac504bc9c50fd6101c6fc97abc426e2b3700fc67911f3018cf33ac99d643e1edd198cf3176e07463da4fa0063bf8826be47bd53e7fe773965e345fded806db217eb1d8c78f29612b3f6923ea9603cbffb0663bf4949d7b38083c663b3022f68fceb7bb043f6118682a9ff8c02ec92bfcbe9fe7dba49f5c30d18fb636c9e2f2ce7ecf7144f2a6097e4bbe5c4ecf7140fcdc0b0b734018bfde03a784af3c53504cfb15f47dc0ffb0bbb8160ecbffc002fa95e58edc1d8bf1a4dc1163d2f36c1a8575495609c5f1a4aa6f3a134febd83e2ed2f376093faafa3e72fcc01f1f50b3c217ddd5660ac37ad63f00cfe5407cf69beef5230ea35c6026c60bfe55532e55b39d8a4eb6f73b0d8df20ee6f637fe04a32cdff03b043fd757b904cf9d9168c7ae7ed2299ce7b3692697fc898d8c2f99ddb128cf3b317f49f85fa6348f75f1a06d9afb604c37ff817b04dfa1c0ec10ee9bb4ef22ecd015d7fdd8047345eb5079e907e598e60d2d7b40363ffe3762598e2d5750e16e703d692297ffc128cf35768af897afb36108cfaee5c32d56b0f9269fe2e24f3f61731d880ff5125d37ed80558ac974c25d37ec09d64de7fe64132f73fea27d8a2f15732c9b4bea008a6f655a23fb1dfb28c24d3fe470d8c7ae1ed5132e95b2099cf8fa6e82fd4e3c32fc9b4bee3125b38ef7723ff641816d99b7d03dbe48fc22bd8a1f9f95a825d9adf4af28706eb1ede5eaf060fe97aaf133ca1fc5605237e6d8ee009e5bbd5198cf58b4efc1efb6fb71730f67bae66e025c5df8a09c6fecae020998fafd248a6f3ba909fd93b6f4f71025bb0af52329ddf9849e6cf533fc036e993924ba6f96726993f2fcec00ef57ff12e99e2c34a32ed7f0cc1f017d5bb649aef7cc9bc3f22f13c97fa4fc3f859388f5a6d25f3f69443c1d86f3b06e37c4be54ae6edd354c9bc7dd791643aefdc4aa67acf2b18e7f134f13dced325a4ef26d3379affc95f9826e2cb952a99c6f7153ca57835fd0463ff691108267fb579028b78c2001b34dee14532bf7f62814df88b4832d52f2ab085f59d0118eba3752899ecff2699eae307c9b43fb405431f9454329d2fbb97ccdb938cc02ee95b2adaebd2f8b590dfc279e448974ce3f12998e67b4d30ce074713c934ff403e0be72d2dba9fc5e607defeca014fc85f5413f094e2313b954cfea0114cfe467901233fd41792a99e6a49a6f527c198afd71bc9549fb9822dea8fba944cf9502799dad782b17e6d7592c9be6782495fea42321fdff8c7f77cbcb477b043fa1deb9229ff4904e37cc697641a7f0decd27828aa647abfc45032ade7b982495f13b25fcbc2fb0c944032d9cb93606abf5949a6f314cf60bc4fc00a24f3f6b79960d29f5a914cf11dfa53d87bf82999d6df303e16ceb755a4cf369b3fc8ff7660ec3f57de04933ff0f760ac5f665bc114df2b67c1a44f57156c507f5f1cc9b49ff3198cfdc69bab60aac7ac4f601be7fd22c1781fc95132ddaf95ccdbabd492b93e794f60e883229e87fd9ef959326fbf3a964cf9e00318fe5d9d4be6fda192fed916ce83a92f92a93dbe64ca8fd11f229e4c6f92f9f3938164ca1f4f82b1fe994ae6df871f60acf79a6bc9bc7f62f49785f3b1b75230d95775914cf30bfacfc279b22df90f47c413a621995f9f7be011f99b6d2b98e2136d021e4f683d63059e4cb83e7ae2fa19dd4f3b83e734df943118f581f22099cba33c8397549f592dc026d69b8f9279fb6f9f60e453d6156c537f5a63c9644f8160aa47695330fc8dee0aa6e7c5b964f28791648a6fe692297e580aa6fa6628da8bf8c3bc974cf9642118fa38954cf58f89649acf1692e93c27e9936361ffbdd149e6df2b9e609c1f7d96ccf549ad24d37974e887d0676721998f8fba924cf1fa9364b247713df687754f92e9fc672399ea45a23d581f35af92f9f7b9f81eef13885ac1181f4b32d5dfa10f16f6a3044bc974dee9158cfd3f892399fcbb2d993fff26fa6786fd3ba23f711ef146d7bbcc7e283f7b944ce7995ec0639aafab25784af671db0a9e52feb200cfc9fe320f2cec650f5e52beae7d49a6f319e2fe4bd457766083f453bf80b11fa878154cf6b2adc1585f37c4fde0af235530f251717fc45b9e90d7c17ca848a67add5530ad1f74a160aa8f76e279c8e7c34630f97f3b174cf2379a645abf247fe35a781f90ff2818f3c1443297571d49a67cfd4930cd87da1b58e8ff5630ece74b32cd1fa564aaef7982697dc87900633f73694ae6faa0be4aa6fd789a648aa724637fd25a32ed3f79924ceb3d3330f6f325ad64de1fd98364927f2598facbd42553fd3594ccafcf311e16cecbdf22c95c5e652a99de7f267e8ff3c9e1bb641a6f4732bf3efb008bfd812f92297eb32473794b31bec87fa30a2ccea3ee0493ff30f79269bfe23718f53e6b2099ea0377609c7f34be2453fc7b914cf91c1f2f63c0e6478a0fb6e019d58be207c1538aff8fe039e503712b99e6eb5c3297a750c04b1afff22618fb1922c1347fc73bc9b47f4630f2f9eda360b2efab2e98fcd1ea158cfd83452598f47f6b48e6cf8feec1a8b7a40bc1f05f3bc9bcffb61918f596f85d32d5e3447fbaa48ff94030f6ffdc24737bf267c416f6a7ac3f2453fe580bc67e99122cceeb9c24533d6b2299f4ad108cfce30773fd500cc9341f7792a9fe6b0ba6f5da6b2399ce372ec1d85f1d9d25f3efd59b60f89f3bc9bc3fd4a364f22f6f60ec97543792797fa8a960d8c74d32f9932918f61ed49269ff832d99e44d24f3f61a23c1d43f96fc1ef1fe1c8cf763448e645a3f16cfc3fe3d632899e2955832cdafd01f0be7d5ad4a32ad9f3792b9fcc64030ced3d792b93e9723c9b41feb02c6fe67732b99f68b7c4aa6faa3180f9c17f6499ffa032dc46bf098ec5d8f24d3fe08133ca1f530ed049e527eb7f50593ffb83c48a6fd570a7846f7d36b30e6fff25b32d5ab73c1145f28ef82299ed1e660d473b64f92a9def92698fcdd5a3cdf46fd24914cfbcd74c9b43e21e445fda611f7437cb1fe124cf65edcc02edd3f7225d3fb001e05d3fc5ebd108b7879bb93ccfbc72f05937e66a9605abf538e92493f56e021d99f6249a6fa5b2b98fc9f72914cedc3785a789f52f12698e42943c964ef17c9e40fe792697e1849e6f2648e60ac470660bc9f243b4aa6fd3fa1647ebda20826f9d24c32ef0ff55e32d5d7447f60fe2f9f25933f5a4aa6f8e62c18f9502299f40ffa61e1fd4b4a2899f6279492495ed19e29e297028cf795048d64dedef05530e29137c9e47fe4efb19f740cc6fed152134ced0f55c9fcfb488c17dedf74b9934cf64dfa3c326754ffab0cc1643f510ac67a78ba04633e77466083ecb309c026cdffa921998f476582b19fa7ba0aa6f93e5e0ba6fca6188051bf4b447bb1bf4aff00237ff60f92e9fd41f792e9bc7d2599e6f717c1d8cf247e8f7a5d160ba6fecf23c1b4bf21a0f86264e13c72f82499f2fd57c1f06727c954bfcec098df755b30d9ef7a2e98ecdf78974cf54cb447d47b3d5330e2cb0fc9b4df47dc0ffbd12ea9647a9fec1e2cde07f92e99f60b1c05239e3e4ba6f9df974cf9d74932ed9ffff17b2e5f70014f90ef288261df8664b25f5332bd6f0ae36be1fc4ef92499f22d4b3297ff593c0fefb7525dc9e4df3c30de5fa53a9229feb12553bc2ec66f46f2565f92c97f37609ca7b4df25d37e825a32adff89fba39eaafb92293fea24f3ebb7627cb13ebbfd944cfbadbf2453fe37154cf287a664d257d15e715e80fa6fcce673f2af117846f94076075e503d2188c1d88f9a9b82c91f2457c954cf38832df2279ba9647adfe70a8cfaecf62098e2ef6e2699ce27ed04533cb2d5c0d8efaa3c09a6fa46f12199ec5d3c0feba51dcd9f63517f5dbd0886bd3f4be6d76f7f30d59b62c164afde5432d5271f2453bdf0118c7abd77124ced4f1ac914afae2553bd5edc0ff3b9f32498ec6d1308a6f66c55c9341fdd83313f9ba23da8ef46a564dabf664aa6fd21f27b8a37e291643abfe249a6f9ce174cfb13a2028cf78b25b9647a1fd4a364f20fdf92c97f0c25d37a512599d607a03f22bf375ac994ffa49229ff78944cf94a2618fe48fe1ef59e4632bd3f270163becf2ac994bf8beb71fe4b0d2453bd27964cf552d13fa807da2f9269ff612499e627d13ed40f424330b55f13d763bfc6ed4332c50f37c1f0f78a64daff3d964cfb43c578637daf7a138cfd39429f719e6745fa30314df21f590ec6fedd32134cfbb10c5d30f98bcb8b64da2f3c01dbd87fbc174cf5c92001e37c4d25eee760fff1b7605a0fc8b792e9fc81b8bf43f149740263ff68fe2a989eb722fb9c8878201849a6f75f9e25d3f37cc974fee15532bdaf752898ecdd0904d37a475080512faf7e30e9432e18e7f56e82914f5482c91e0bf13ce4ff7e2698c627fb924cebcfe2f7d8ff1b3e80719eaa934cfaee3992491e717ff80f6f2699f22ff13dcecfa753c9e4bf0e92293f394aa6fd139660b2cfc8904cf9df4230e68b4a32add78bf1c0feda740ec6fbebcab3648a8f2792c95fd492299e1848a67ccd164cf25b2d58f887ab64f2379d64de3fea4132bd6f4efc7e8e7827944cfb7f1e2553bd4f134cfa6c799269ffb6781eea8df14432b57f2718ebe591645a2f8b05231f15bfc77e0f652699e229f13cbc7faa9a4ba6f361427fb03f5013fa8cf5e2c495ccbfd73dc924af180fec0fd33e24737922f17c9c6f6cc91ea626f69b5e13f082fccfe64d32d547bfc0385f565ec0886fba1cecd07a663394ccfb237b05633d627b144cf6779949a6f75fd682c93f06349f4dc5fa433d154cfaace982697d721b4aa6f3c11918f585742299fce5bd64aa67958229be5ac560ac27ac12c178bfd79b64da0ff1e37b7adf95fc3dcef70592a95ebb174cfe3a10cf47fda01c08c67e1b5f32bdcfb0134cfde12a92493ed17f585fc81f25d378dc49a6f8e253308d57249e3f417c7a904cfbcd7e30c5d382b11e982592797f24df82b1de954ba67aa6907f4af69baec138af6c8d24533d692f99ea733bc1e4ff3c0b2cde37be944cfe712499f2b1b964b2675732c52bd0670bfb45d54832e58fba64da0fb301e3fd8d4a2499d67f857ee0fc72f82d99be5f81713e3e194aa6fd49e27e588fb89ec1884fae13c9d4ffa27fb0bff0229e67537fae481f66e612fb2d776083ec3debc026eaa53618f18a3b0323fe580f04d3f5c98b64da7f63825df217852e99ce77907c33113f6c4dc134df6f1f24d37c9982b17ee04f05537b9a77c9148f88dfa3deb07a92ccfb7f73168cf365778229be48bf25537d19f28bf501e55e309d4fc94f92c97fcec158cf2b12c1e41fbb4fc9b43e3d104cf3f7f6158cf87ebb170cffe448267942c1e47fba05187f1f455049a6f5614330f4ff0d8cf3b88ab83fde3770d94ba6fafc12bca0f6a557c1c80f6dc9644fb964aa7f1492a99eb1934cf3f718bc44fd632199f2ab67c914bfd782518f16e389f78346a23dd8bfa58c25d379ba4030c95b5f2453fc5c824deacfec2299f6eb6c25d37ae74630e2b94632ad170bf9b13fb87b964cf514713df61bd4aa643a9f0f7bb31cecbf10fa28f6e3f89269bd83e2adb9399f52bd33032fa6fcfef9086cd07e8d95f81eeb1b97a964b2bf0dd8a2f958ff02dbb41fbbbb825d9a3f2eb5608a3fe28560caafb6141fcd45fdb11a83b11e180f05d37e5c5f114cfe669d8051ef6f3dc1a40fab108cf3d9e55a30ce3b1a60d4d78bab649a5fe5f7645f978364dededbb360f247452899ea616730d6e7d6779269fdfb4330f9bbd4148cf8e7058cf5b8e44932bdffe25e30f6835c24d3f9d1b964b27f713decdd16ed9b937fd2f792a99ed2082679a247b0380f33964cf3ab18af05c52f57d1df381f5baf2453bcff0046fcacfe60daaf6a4aa6f9ed4b30ce7fce25d3fedd1918f65f8af1c37e6d4f954cf9cf5a32c927fa17fbede254326faf22aec77c1bd582a9fd971d58ecef3524d3fe5ea1bfd84f97d1f82ec47a83be124cf5c8ca07dba4efbab8de9df2dffba44f0b51afeb5cc1747d32154cf61eecc043ccf74f9269ffd3098cf7495c1e25d3f9c14a30ad9f281f92693de2001ee3bcf34430e94f71114cfe259883f17ef6b52599de2f36144cfaa23c4aa6fafd188cfa79d60a267de832c1345f1786649a3f7e30cd97a2bdc86ff55232c54fb9648a6fc4f367e44fbaa1649a5f669269ffb7f87e4ef6915f2453beaf4ba6f9443c1feb655a2c99e47b944cfb532493ff6bef25d3f86ec1e2bc532318ef1712fa82f3cdc55e32b5ff1b0c7b5acd25d3df9fa04ba67ac25e32bd0f44b4cfc0f95ad13f787f759c08c6fb8f34c9141f6e2453fee80b46fe22fac7c2fbafef24933f17fa8efdf9590dc6fb8d4a8a079626ceb3d513b04bfa5a527cb664f645eb65067848f359fd8369bfec063cc27ae45532d5e31f25f3f15c3d83315f5d12c9544f740553fe1e6592a93f3dc158bfb88127145ffb9560b2873a96cce5d75f25537ce90ba6fa62f283a95e2ae49bd2f82b0f82c93ef385645a6f17ed453d39984aa6fac04c32fdfd5607c1a42ff14a30cdb7b74232e5a76f60e483fe5132cdafb960c4fb5f60c4aba52218ebaf7b30d69fb6e27b9c1f0ceec1d82f962b92c95f1d24537da7148cf93d05239f534f92e9bc8bb81fcefb1547c9544fabc1383fe68af1c67e92f807d3fe43213ff6af7662fcb19fdaa37cc410f5ebfc5e30cd1f6b07ecd2f85a347e06332faa8f1cc0d0efdb17784cf6e91a82499ff44ff004eb318f92693fdebd649adf5f05937efa67c1347fe91618e7bb6e7782112faa60ac8736a1601a8fac00a31ee98c05e37d155bc1347ff8aa647a1fc009bca0f1f21682c99f9ae2fe0b6acf360763fd62bb168cfcb0148cf7790879f1be9ad4954cf53cd17fd8bfe49f24533db1164cfdbd7d07e33cd346fc1efb17b789643a4f300423bf303760bcdfec42f669b27885ee47f38169e1bc977e124cf18d3706e3fd11fa163c22fdda9482a7b43e7805c3ff058660ba9f2b9e87f364d14632d5fb4792e9ef37fe02e33cd926028bf364efe039c9b712f747fdd9ad24d3f58231fee58b601affdb9b648a6f7230dedfe12d25d3fa760a467d3817f218145fd99f9269bda1924cefdf93df23fe7e009b349f98623c2c1a5ffb2298ee97d8609c3f32e6609c3f8b2cc9646f0bc914cf3f4aa6786607c6fe958ee20f8bcdafb43f81e20b165e93fe5c3e25d37e30f13dea3ddd093cc27ede2d18f5983804e3fd1d9a25989ed7168269ff61fa089e223f9e8167d47f862699d6f39e25d3fe68152ce2b70318e7c9ec67c9f4fe12138cf70f252918f1932b9e67507caf08f9f1be9938069b648fc15e308dbf32108cf7df88e7637f627c150cff7a0163ff42f000c6f99c88ec9b4d37a867d1fc62b3f1a3fd3c743f5b8c5ff102463cb2da82117fb4df9269bde12498ec510f25d3fef01c8cfcb8b425d37eaa5232bd5f2506235ed85a9269bda4154ce31d89f6cef17ea8037841f76b447b17d84fb6012fa9fd6b211fea49978b608a4f0c156c423f3bc9b49f3602c31e6f7bc1d0bf4a32c50fe44f6c1bfb3be22918e7e93a6287d907adb70ec063eacfd51b784afdb3d1c0c85f8a5232cd97afe0398ddf652d99fcf75130e5879d09c67c961482c97eae7bb049f74b3ac9349e86649a4f2692b93cb978be8df749b88229be509660eca7f39f24d3f922713dd6afaedf8269bcd690c7c6f9d755001e52bc5b533ceb5a63d29fab2199ce63edc1139a9f82083c25f9f5068cf745dd2cf082c6238d25d3fb1d378229bf503ec178dfce6a0946fce9bd0aa6fe5ccf04e37d0af27aca77ac1bd8a2e747df9229fe2dc136f98ffc4530e9f34a934cf9f10fa6e78be739387f48fde9daa8f7273c3e310716f67b260f9269ffde1318efefb91e24537dcd06e3fd79f6156ca0deb1904cf6a080d1fe6a2199e67b5f303d4fbb801dd8fb0a8cf8f9a611db78ff5dac8211df745f60d413133e7e2c389be17ccc183c27ff97459279ffac4b30de27947e0826f94c4532bd7f5d032fa9fd6d2a784af58e21d8a0f9e1aa48a6f53f5b30d58ffd6730de5f94ad89ed01d9ef86eb2b0b2eb0feac6fc04b92af7525d3fbcd8f6093fccde64532d9cb4d30c57fe1128cfd33eb77c1a41feb028cf7355a1f82e9f9ee1cec62ffea9b60f227892918e785f0bd8dfdafe9b3601a4f270463fda81980f17ea59adbbf3966fd41ef472dc14bf2075b1b6c60fdec4132d50f0bc9944f1cc126c693dad7bf5e9ff2075c6f63bd6b45fd33b1e6549fb8adc0580fdc7682c97fdd5ab035a5f74309c67961e50bec523c1de2f736eaf7f11c3ca4feaba8bfa6d664467fffdc080c7f53b492a97e6f08a6f686776013fab4964cf69982717ed224ff30b5b15fe81608c6fbd3ce60c48b2d8dd78cdd8ff2eb5430c5839b5730f2dff60086be74a4af33d6ff148fdd8391ff6a74bf390b30693de808b6917f64c436ce8fdf1230f6bfb7345e0b6b3a27fbe9c0f319bdaf8bfcc782a5f7e43f0f60cc4705f99f256b3fedf71c826d92ef3625b627349f68dcdf9b2c9f9b927f237d3458ffd1fc5b8327f007241f530f1aaf6b00467cad51ffb2f8674efd41fed5b6711ed0e4fac192cf39b57733022fe97ecf977feda32abf7d8c9f3e26ffa7827fa74fcf0afb9da5daaac3fe58ff6a0be8f3df21cb2f72b9ecf3bb5c0afe9b90afff77f7df5116d62247f5d81ffad87ddba87590cbfd87bfb3f1f9779605f20899fa6be8cfffb79fff167b71e9f393743ffadc1663f4e33aa96fbdedf8eccf3f18b9ffff65e16dfbc90e6009240d1fa9bf2b3bc9439ee0df4d1661eb3f64f9313a3f24f3e4e717cbfa7791e5379fecfefa91d758f05a8e94457a8a7f2b590235542335561335553335570b364ea55aa917b5669f86e951ab76ec7365b2de544dd5d99f15ff9dc67eb1fe379365a3aed827652391a85bf6b963d2ecd43dfbec982c07464726dd91fdfb4e3da9f74cce7bf5817d0c76e53ff4daff5b6479e43dfdc446e699fddb597d515fb94ebda9efea87faa906ec9a9449f8c524f85607ea501da96375a24ed5993a67d2fc1bc9c25a7a5637ec9f91ba607f02d8fd92c9f2cafe6929aafaa4284cc7be15431d2ba662b18fad380af31a8aa7f8ff3d92fcf7cc954aa0844aa4c44aa2a44aa6e44ccf5ca63d2dfbf4b6622a059b45064aa954ca45a9954669954eb92a3745537465a5acffe8b5ff37cab251b6ca9db253cf8aa2ec95036bf1513929f7ca83f2a83c29cfca5979515e9537e55df9503e952ff6dfbf9581325446ca589928d37f23596c65a6cc9505d3b393b26413cd83f261288661b044c0b00dc7700dcff08dc0088dc8888dc4488dccc88dc2288dcab8a87746fddf23c99f9345b58ca6ff23a390df6677a3353ae36adc0ccdd08d95b13636c6d6b83376c69efd391847e364dcb3cf897d8e8c1fd8e7d178329e8db3f162bc1a6fc6bbf1c1b4b0cf02685e757f9b797f9aadfe999ff8af6561527c1a5feccfb7313086c6c818315fd4186363624c8d194b9916c6b2370ad3304dd3326de3683aa68b8fc73ebe19b04f684666c465eaa53a9a31936a6726666a66666e16666956e6c5accdc66ccdcebc9a375333757365aecdcd2f33b1f2eb1cfcd764311a736bde3169becd9db9e7b21ccc8379344fe6bdf9603e9a4fe6b379365fcc57f3cd7c373fcc4ff38b7dbecd8139c467648ed967c23e63736aceccb9b960992a3334e3de322cd3b22cdb722cd7f22cdf0aacd08aacd84aacd4caacdc2aac12b9dc2f91c5ffaa2c56655dac4b3f2e566d0cad5a3d5b8dd55a9d75b56e9666e9d6ca5a5b1bd6d3f7ccd96ead3bd6522689b5b3f61677bfd6019f2393666a9dac7beb817d1ead27ebd93ab351da592fd6abf566bd5b1fd6274b98bf5884b0601e3d61b3e9c0faeea3cf1fd1d1bfa2634cb31a8bfe82f001fff74a89aca135b2c6d6c49a5a336b6e2d7acdb196cc74fa4a9ed18f85b5b34d48f2439643bf4c614e6ddb766cd77ab03ddbb7033bb42326cfc178b4633bb1533bb37336abda766197ea935dd997de92fecce74fc932307756cdc6646055aa67d77663b776675fed9badd9ba71303fec95bdb6376c249ef9676fed9924625414662bcc5e602bf766681bf6d6beb377f6de3eb0cfde3eda27fb9e8debde7eb01fed27fbd93eb319d7b35fec57656fbfb1d1b07efffcafc9f27cb16a66274cb78cc6f8b4df992c1ff6a7fd657fdb037bc8faf3c47a7864bbe6dc1edb137b6a2db924bb7e64fab161ff9cb1f6ce85fd9b91bdb0972c485698ddcc1dc3311d662c8eed384cd2bde33a9ee33b8113b218f5dd89545df17fcdecfe155954d7183ab113333bb1edda499cd4c9ec2f27778a5e0ea7640ff0ed3d6b55653d3b17361acf4cc706cc6216dc6ed8ff3b356b6be3b44ca6b9d3998173756e8e66f7938feeac9cb5b3b1b7ecf78eb365d21c8d9d73e7ec9cbd73708ecec9b9771e7ec9107ecb7a7eb6a03f234b2f09f3c683fe7ecea3f3e43c3b67e7c58cadb33db1ced6b33d6656cc3ece2b6b5dc5dab5c0a7f765ec63cfe9e374f8bc39efbd24f6d20e9d0f66fd47e7d3f9ea7fe954ce379366dffff5f6cec8e9ff5acca933b3eb9fe4f8576599ab9db3b05f9c25fba1e21a6ce2b08c23f34accd3bab6ebb8aebd702a73e17ab66b1f5d9ff9a8931b981fccdacfaca5f76ec86c2ae673e6d18ddcd84d98bde0e3746e6a7acc73b02b594fbcd93336be67377373b7704bb7722f6e6d176e63356e6b358ae67656f3afe8987a70afaaeddeecd6d55cdd5db96b3626cfeec6dd9a43f7ceddb97b3622dbde86dd837bb4576e6031ed331df7e4debb0feea3fbe43e1b817b765fdc472195fbeabeb9efec5707f7c3f9703fdd2ff7db1db84377c474f1c0fe7dec4edca93b73e7eec25daabd2f6091b8a7aa81f70fbdda9f91c533d8f46d79b6e778ae937b9e71b2179eef055ec8e4601fdbf0222ff612e6030eb6d1eb8c977a99977b85577a9577f16aaff15aaff3aedecdd33cdd5b796b36e7c7c6c9db785befce7a70471ebb0b1b5d9dfd3ff36fde8e59cec1db7b07efe89dbc7bb5f01e58467af31ebcc71f5af5bb1ff853b23c79cfded97bf15ebd37a730637362dbde3bd32f2e099368cbe6f229b39ae7de76bd0fefd3fbf2bebd8137f446ded89b78536fe6cdbd85b76441d7a3aff8866ffa966ffb8e71f45ddfb31e7c9ff9e8ad6df8811ff663e547ee8069e4831ffb899ffa198bd6be51bffd523c9189fe75599e2f7eee177ee957fec5af0d6603e6d46f7a49fc967d3aff6acead27ffd6cf77bee6ebfeca5ffb1b7febdff93b7fef1ffca37f62f966a2bef8f78aea3ff88ffe93ffec9ffd17ffd57ff3df8da3bdf03ffc4fff8bf9f485bd30c74ee57ffb037fe88f8cbd3ff627fed49ff9737fa1382c27fd6679f70f597ea97dfc99d8d25f066aa004060b112da65f6aff97c0f7fae5b7811d38fe3570cd0fe31478811f04411844411c24411a64411e14411954c14509839a7d1afb3d68838ee59af3e06a3f07b7400bf460c5fc48ef0d9560ddeb99ad30d906f6c27a0e36ecaedbe02ed8057ba50e0e4a191c8353708f0af54f35ab3f2d8b1d3c048fc153f01c9ccdd829ad73f012bcf6da15bc05ef81137c049fccf38c83afe03b1804c360148c8309fb330d66c19c49b47016c1325443253442d3188416fbc39c71e8865ee88741188651c86cc73a8709f3cb4698f29881c50f61d6fbfc300f8bb00cabf012d661e32fd421d3b41fb2387f94e5e77af6cf63d25f1db661175ec39b19875aa8b3bbafac636f27e13a5c33795e8c7b2f0d37e136bc0b77e13e3c84c7f014de870fe163f8143e8767f52d7c095fc337ab08dfc38ff033fc62d2982c22f6d97ff90e07e1301c8563e3184ed82cb40dd6e1943d63e6ee99fd7c9b53f6dfe7e1225c466aa428456444e68fcacdaf5a46b288ff862c28f1d4c8525fd5d7c88e1c7f19b9e673e41987c8376751c02375a61351c8e2f7cf88e524511c25511a65c62dca8347ab65f369cafe3c4645f01895aa1255d125aaa3266a5910d345d7e8166966678ccc75d4467ab48ad6d126da4677c629da452c82f0039ef778d68ecdb40bf6bc7d74888ed129ba77d2e8217aecefcdabed866af4d1eeaff6f2932c068fb043b77516ca2e7a8a9ea373f4629ea357f6a437e6750d16a79ca37773c2e6e8aad7eae823fa8cbea2ef68a0ce153f1a2aea8f2a2c7f9e1b8da27134096d2b8ca6d1cc8aa379b48896b11a2b56111b319bac629b85166eccbc3d9f73962c7f93b29843e33ef6e3200ea3fb388ae3f081f554cadbcafc5a1f25fe2c0b7ff68f7131d4f8f9e22cd4f73889d3388bf3b888cbb86277bcb0f87111d7d6dedd5b4f7c2639b959dcc46ddcc557ff515dfdb4f662cb3bbaca5875e25bacc5ba3f8b57f13adec4dbf82edec57ba5890fea323ec6a7f83e7e881fe327e3143fb3d866c9bc7380b86e689de373fc120ce2d76011bfc5effd88736b3055a38fdeff992c0ad34726cb6b9cb8adba8a3f4c23fe649db7641ec6b09ee3da665ed3fc0c33f6dcaff83b1ec4c378a456eaca7e51ee94713c862c3c1eecff9dfdb7493c55f57816cfe345bc4c54e3c17e4894c448ccc44aecc449dcc44bfc24484263efde9b3e8bd8d887e7a42c3b65f3d6d17c4da2244e92244db2a84872b1baf07765b1c886f8155b36bbb2fe65914fa2b8499194e69b71f26fd69e8dc9d9b998dff6c13ad953e39054c925a99326d6d5f7beea9db4ccca52f40d55c1d97d95bb385332bb4abae49adc12cd38252ceb4956c93ad924dbe42eba26bb641f1c9243724cd82c657a8ec272014364d94c9b4b2f4dee9387e4d158264f09b34ab146d2e722ff4c96e499f5e198e50e2bf6efe7e4257935dfad3e3f3f276f56ff8afa7df26ece8dfb709c7c249fc957f29d0c143d192a8b64c4abe3bdc7b4fbac8dc9c264b2df93713231de9269324be6c63159d8c76469c6a99a2aa9919aa995daa9e3dfa76eeaa5bef1603a2cbfe1b2f45910cb54b769601cd3308dd2384dd294cbc2d76dfa7cc4180aaff6932c96b0fe3453466e6b97cc8e9d344f8bb4343fd22a4c98f75a5afdfe8687f4621becee75daa46ddaa5d7d451f4a04b6fa996ea91c9fd3f978549c3644957e93adda4dbf42eddb15fedd3837d4c8fe9c9d8a7f7e943fa18fae953642b7a344c9fd373fa92bed2c8902c2ca7db4681719fbea5efe947fa997ef5feb197a56f7f9f5bfd2acb8f91e17a78607dbb5412ff2139a7dfce9069eb673ae86da5f7c54ee5fa696f8f553a4ac7e9249da6b3a4b50b65c3f42c5177fe23ef31361a7d0edad724d379ba4897999a29c63163f971b4efb3e3ccecb3e2649559999d39ea57ea0475e6665ee66781e9fa81a3a06ab0eb675096e1c5599845599c25ce23b3172e8b6af5b9d52fb2889a9add3f99d14efd4a064ccf952c553eb2cc74cc2fe61b077dcecbf477613d982316e37efaeb2ccf8aaccc2a61e7e45b98b34db24b56678d5dc763f53b6bb32ebb662c62f343d6df6ff6c2fd66de9c652c99661ce3a74ccf56d93adb306bd3b36d76e74efa5999c53363a603cf76bfcd8445369691edb23d93e5901db313d31d85db7491ddff268bf28b2ca67a973d3032b24743c99eb82ccc37f67d642ebcc4661146f69c9db397ec357bcbde852c1855577d4bdaec23fb8c9e93419a655fd97736c8d8e866a36cec8eb24936355da7cc66d9bcf7ebacbf17d93257734509552b377233b7723b77d8377d3d6dc29edad74398b7cedddccbfdec900779a828ff4496be024a7dabf8bd36f63edacc23c330ee982cbd97efed70c024619219f7799c27fe364ff32c3c30597eac4172bf95e779919779a556f925aff3266f8d63dee5d75eb7dc613f1ef9cdfdeeb3e25cb316f153aee7ab7cad9eed32dfe4dbfcced67396c1b09879c8729a4bafd9feb7719f29f93e3fe4c73cc88e4c9b1392c52afe812cbd0f559209d332db2ed5263f1926f32baed05ca6678eed5877ecbfbce6f7fe5dfe104cf347a3fd690d92d97afe943f671725cecff94bfe9abfe5ef7dd4937ff49909af719cddaf6cca73628dcd8871fe997fe5dff9404d9cc833f3613ecac7f1579ff1997dbc4c51b4cfee30c9a7f92cc9988e1d59a699f47e377c0bdffe200bb75792259fab7b854d65ea77be302c63cfd2fb1dd5bc481673943bf9b2500b8545f5b3e8814547b6dcabc0575793b1fa919f0ba33059b7d9ac557d2cbfe8f312ebaeb7e4c2e96b1785cb62ad53e1157e111461112923d52ee22229d22233f67d5ec365611ac6aecdd98cb92f8aa22caa3c2459faf6b398f5f597f9e5375958c6b34f6fcc62be8b0b7be4ce74a97227646177ae8ba6688b2e288a6b714bf25f7684303d53fc645268855eac8ab5710835e7b597a5d8b06cabaf6a7ef4d5be60cd243916dbe2aed815fbe2a0d8c5317b284ec57df1503c16cc3efa1a279764614e0b268f7128cec54bf15abcfd248b1aaa7f57164fcab22bde59fe742a3ed894b5efa33c5420875c9645f1597c15dfc5a01806398ba2c90bffd8555114a3625c4c8a692f4931ebd72c989ea8c5bc8f467b5b6677e03163b12cd5ecbb544287c540d7d250c2d22cadd22e9dd2354ebc22c2ae36c7f6a1f498cdc6a55f06e1ae64290dd731f7efc822d654c40cf3adb665c472b053191b2ecbef852cfb5e16f3cb3a9749999659996749745f163f564a7824669465599597b22e9b5e92b2cd34661b565f3b6371dc985bb4e10ffaaca7ecca6b79b3be4acd0a4a9d8d67c4a45995eb72536e992cbabdeda326368e5bebbecf64cabb7257ee7b591425cd7a6d28b552fb45961fd13ef773ea8dcd103b75c56439183e1bebc81c5b7d3d2cb0674e63cfcb63792aefcb87f2b17c6271ce86e527a398c594ca9d5d97cfe5b97c295fcbb7f29d79d12eef32adafee9bb3bebec13f337b5f7eb079bc2c3fcbaff2bb1c985d392c47e5b89c94d3c42d67e5bc5c944be3c45c7d156a7c4c0f665f1939564a655466d06746a7e0d4ef2ab2aadf62fedefb3059d8b7663f36c8d834bbaa2c26cbbd19b2deec97483a264b6b06c6a1b22bc79bc5e3a00996e5c4dc562e538ba86236cfa29545e5574115329fca66bb3ea736471513d73a313946fd9a4515dbdb2aa9d22aabf2aaa84a2bacaaea52d55553b5556745c1b1ba062b362e5ba7a355b57ebda3aff254b74aabf42467b21c83a36ad9f51f641151a5cf6571d488e9e246bd315559556b264bc4662c268b193269f64c96a37bf65a6fae2e2387e9eb5bb5a9b6d55db5abf6cab53a54c7ea54f575e17be6c717d681c5d5233e26a3fe2ebd3d570f4c96c7eaa97af646d5b97ab1aaead5dc556fd57bf5517d565ff128afabef5e966ac07ac2e5f5cf678bddb11a56a36a9ce4ce23c6c5339adf627e4bca6270efba60d1ee539ac5a36a524db98e912c51af654c965335f33a8f656bca3c34ccae9a87af9eaac6ac3f17d5f2a26637f7f5a25cb81fb615f38349d17f26b406c3ee7570377d7e75312fd6c5be38e1cbc5bd78179f8d897f092e6134b8449798c9d2b91fccbadefb159cde673059946a7449823e47f6d9c7fea32ca859283c96225912f549bdbfa4ec9e593fc6fdfa9c6df523d4af3d18a774e75d2fb9925e8ad0c8eefbbcfd525eaacbe5525f9a4b6b9c2edde56a6fcdd1e5165f98bd93244764f10773e445d68e5da55df4cbeab2b6c2cbe6b2bddc5d7655a7b697fde57039ba2fbd2c173633b1d8cde27fd5d684fde2fef27079e4b2a0adfd5add3f95256071f24d29c2faf27479eeb585d61bfb95a07ecd81e9d8a377f35545b3df7975c88ca6feec72bebc5c5ecdc4383afae58daf136d8235f75dbd7e8db92c7c3d96f5f196c5dd5333bebc5f3e2e9f97afcb777cbcf06a13d388e16578195dc66c869ddb6c66cd466c967db5ee7adbbf4c2ed3cb8ccba2f0bcc2fe5d16392f4096545373b5cdcf97f9657159f6eb90bdcdb2d8b85fd50accc08d8c83a7298f8a1fb4c620fca8d55a49b6b5519bc98ac9f9565bb56def1cc38bfaf99ecd8d336ef74cc7b8341e9b3146e6dcdef82cdeac9ddaadbddaaf83484b46e9ad0eeba88eeb84e5ca9fcce3796c6e9db008f4c9dd32590e755a67756e325990875bfd0aeaeff9cbcfb2287eaa2b6e5dd4a5f25557c68149c0bc0fb3dfa8978569716cc69eee2b6aa9cc422bfc8caa9a4590ec7f0d6b5beb7eb84347cdaf2c63af9cd73063f67faa22f6ebdeaff7d27875c746f9cbfc626d5cd6d7fa566bb55eafea35d36ca77c8af27a536fcdd8b9b23cdceb6318d6239bdec2eabb7a57efcb3d932515759e3fe695d8112074cc55efd44370523ae5b13e184cb3597e7f6fdbbc12cfda581f599b4ff57dfde0b6a1556d13b77eac9fea67e3549feb17a65b8bfab59f159cd728b02d1691ceeb37bfb1b7fe376fd994b220ca89acbdfb5abfd71ff56738a8bfeaef7a500fcba01e992ed3c27db17077aec3f29881cb324b63578feb493de5b2507ef20f7264f6a797a59ffb13f6ff0d9bfda7f5ac9ed70b9657b2fc8bc52e5b7b592f9d779bcdc98dda288de13f5a35f3ca1f8dd958c64363db47f6d9374e3f438693be6ed3fbb2c665ff34a2d0def09a9af1cb1ae0d074eb5be3357e1334a1f3d4444ddc244dcafae291e54977eeaec9ac2dfb158b429bbc299ab2a9b8bdd09ca8f42b763fcb42732397c5e4b364aa8cd2cc99c77a7369eaa6316377c3eefb7039352d0b8359d6e186c6aee99a6b738badd0b48a466b74fbc18c9b557aecc7c57c6fd64cdfc76c2c3efa5cbdd9345bebdcdcb9dbbe8283d53fac9c9b5ebfb3a4d935fbe6604d9a63736aee9b0726c363f3d43c3799bbeb6be64c2fe3e6dcbc34afcd9b948559c51f65a1d95ecaa2f1959bb5faa138cd7bf3c1a22ac7ff609e89d973bfa6686f9b4fe3e0dbcd57f31dbae167ad3483669828d60b7bde283359ae356bc66c961b46611f41369366dacc9ab971b296eeb6e1e3815566167d9b9ed3354b63efad5bb5555aa3355bcbe8ebd581396efb15c45d9f2b87ba71689dd66dbdd6ef63181e7719aadfaf09ff365752a5cfa4bdc2fdfa937a8bc76de03dc65d1b1afd4afdb658703fbbed6dba8d8c531bb7499b865ef5de666d9e9fdaa22ddbcad8370fed85595585fce4beaddba66ddbaebd5e5876dfded8bcf3ddd70ee4eabfefed5aaddf1de36baddeaeda755bb35f6dda6df0dede056f5ec89eb7734a63d7eedb437b6c4f52163f38fd41161bd97abff39945bc2c951e313ddbe5b9a2b7f7ed43fbc8b4f7686ffa9d05b5d53ef55adf326fdf9edb97f6d518861f4e5c44ed5bb269df59ccb3cf3b7bc9645ef5f949fbd17eb65fed773b6887eda865b3068b697aed123b19f67e906bf6b69db0acf8d44edb593b6751cb397875ed76d12e3bb59fdbeace38754a67746667c571922779af472c8e39fe4116e75759d84c99a94967770e93e6dab99d67192cd770d89cb063be56ef7c7b5b9f7d3753baa00bbba8da767197746997b1b0b8e8ca7e6dc8db75157bfea5abbbc6df756dd775d7eed6699ddeadfaac8e723b5ec95b326b687b8fe2fb4e65dce75db7ee36eeaedb76776c02d875fbe6397aef0eddb13b75f7dd43f7f8ab2cbfc563b40fdae2fbb87b59fabdb76ef7d43de7cfddb97be95e6bc738b9ae7de8ff1a4166c38eb3eddeba77964f9cba8feeb3fbeabe9d85fad80dba6137eac6d19d195b0b33f6b56ed24dbb5937ef16ddf2aa5e95ab71358d9dfbca7763f9bd1ce6d00ffa99fd6ad97bc7bada4cbe73b7bb322bb18ee1cadd5d5deffdea3109dfaffe35b886d7280fa302b66ffe1d1d13eb0b72bf196a7fdcef5de36b52b2d65d53ebe19ab119ef6c9dddcf7eb5f79ab3ff5a5ccb6bc5e29897ebe55a5bfeb5b9b6d7ee7acd27d7db55bb321d5533b30bdf8da69c5c57d7f57573dde6937efe655aa8f4750ce623a2be06c6f7638dd87c74ecfd38d515ade7de5aaa8171bcde5d77d7bdda3847b5edab2c5993353c07367f9c07f8afd7f89ca7ebe17a8cd953afa7eb3d3dddbf998b6641d1eef5e1fa787dba3e5fcfd797eb6bad3069deaeefd78febe7f5ebfa5d75d74139bc0eafa3eb987d26d7e975769d7b6bd60b8bcccccceb92dba2f5f327f2dd7d73c7fc1c27ebcc52c3a79b7263f955348c4c36f3b9aa6dbf33591cbebef31764b99937eb66df1cd6379ecb66877edf8bad140b2fb9b139d0b8f7b51b0b346f8152ddc25b748bd5db2db9a5b7ec96df8a68d025e15755df4a7377ab6e97f0e3c626c65b5bac6e9db1ef772df0fd16d6af1f5eafb0d86cc4246aee7236b3dcaeb7db4d4bc6d133cb2d44fefb87ddf3ffb52ce6e34dbfad6eeb86c5860d1b0d663515f3f8ecff6d8fc5eecc9fe593dbe6b6bdddd5a5fa62d7cae2b65386b7fdeda0d4ea58dd869f55773bde4eb7fbcbddede1f6787bba3ddfce51623f180fb71733643e7af24759983454afa4fbbfdede54f7f67efb48068a226ac97f7d7d3f2a6e9fb7afdbf76dc02b565f2cb35c58776c86d89a73162f6d6e43e3741bddc6b7c96d9abab759eadce6f1241ef77bf56f8bc80a5fa2eab6d4d4a8d394a85202f5ac199aa9599aadb1b16e5acdedade4e78fbbef3396c82759cc58f3345f0bb4508bf242d1d20ce3f287d3597fc25e1eb5584bb454cbfad981dd7b617e7a119385f624cdedad96f733a75668a5566917ad564325615ed0b65fe289b25322add15aadd3aedacdf84c1dd573979aa6e9da4a5b6b1b7ba16da99af0ebc8b03f2a8bb1ad7667dada9db653bba0b9bddbef2c7f37642dcfa1f8f22fc8926a7beda01db59376af3db008efce9cfa1f2c3bda71eb6451633568f92e43ed517bd29eb5b3f6a2bd46b935d2de8c85f61e4fb40f36269f2c216e94246ccb2767e999da97f6ad0d3436a6edeeefd98bf5dcee2c35f2b59136d6260a8bd955d72eed525db37111f562ef2fcbf2a84db59936d716da52578d7da8318f79673d9993b86e6fecb363518056b6bac26c79a71bbad92a9dab5bc64db77527327457c97596ee844e7fe622ce597e32d4033dd4233dd6133dedc7e0d74f98f5b2447e2f95bbd7333dcfebb2d20bf6fbfe0c84266b797c86ff2b3a16157aa957fa45aff5466ff5aedf11c3f2de39af8f322fa45ffb798faffbfaa6ebbe66817ed3355dd757fa5adfe85bfdcef850bff59dbe77c6d5413fe847fda4dfeb0ffaa3fe14bd07aece722db28dde4ef86e0bf3e78fe9e8e764adbfe8af4aa36ead86cdca34abf4f6eff075c43fbd8724c9f537fdbdb8ea1ffaa7fea57febcc07588affed6ed3ca56a3f7beea637afd3a561f4733895c33d687fa888dd0589fe8537da6cff585be5ca92b6565accc95e5eddd3c7ded778d38d5ca5e39b6e1eec90f0b0ff68b2cae7170dc95bbf2567e3c535f56415f310a4e2cdeea57df6a5a7bfb73b2048fab701505b355bc4a56e92a5be5ed78555807166b6efa5ccb3afe248bc9b28265dee5ceed8565b4b755b9aa5697555dcd568d3e5ab5b1c7f7c23129dcddaaeb76abab395e752c5bbbe3f66e626ef955166f7533e3b261f9d270a5b1f178e335567efeafaf2afd9571311f57fa6ab55a6bb362b8daacb6abbbcbc76ad75767d2a05f79b0b67d0ecf64796372ec983c0adfc570cff7819ef85efea3d8cf6bdcbbdf76e87ff8cd6abf3aac8ead1d7cb84edffa7e9e679aa6b63b6627bfcae2af4eab7b9643ad570fcdfbea919fce727f3a052c4f69fca971795a3dafceab176db67ad5ebd5dbea7df5b1fa8cbff26ef595f615a31fbbddf98749f7c177bc0f9d57f6795b7daf06d17e35147b2cfbbdbccd9339ee7739b58bd5a8d72e173b9358e3acdf65b1ceab717d67ec5693d574355bcd51c3b7708ec1fdf3314c92af16abe55a5d2b6b439badcdb5b5b6d7ceda5d7bc69e45cffb1f7bdefb489eaffb32097a7b62b3105fc7e3fba9f9beea7e36627e6318266b7f1dacc3c0091cbecb91452c6431bd17f85d967e7473dbd8d7efeb681dab77e20c2d9745f9b16be9cff8b1f03198af933c5d5bc1789daeb375be2ed6e5ba5a5fd6b5b5b437741601fbf7fbd5b30fbe57a25f6bb15a16fc34ceba757416dfb3e83e9ce9d77ecd807df6ebceefd6cc62bc50c8d2eeb411f366bfd90bd7d26374b7beadb53573e4b2fee5fed5793f628aba5eaf37ebedfa6ebd5befd787f5717d5adfaf1fd68feba790c5fdd69eef5ac1b8b04fbf9ef76a7e704b3e584bbedb9f5950bffba8f7e2eb7e97fcb1df83b63eaf5f02d736cc28effa73246c8e1feb193f73d2e7373edfafe4b23c69bb7e5dbf35cafa7dfdc1e617c8f2f7f78ffdf38ff3283f69566595d196e7f5e7fa6bfdbd1eac87eb11d335bea38c568b980e4db0afbf8fa6c6acc7cffc04c6b2dfadd7cbe90f7a7bea77569a43967505d5e0a69a713e6171d79d36d1f3f5b8f776eb49bfa3b61f93cb389f38de7aba9eade7eabdd8d32b674be7afc8f2d3d9621ecf798f6a11dcaf179774bdcc5f36ea46d9181bb37faead164ebf368979c230a77db5439cb4602336661ab91436d3dc39174ba1fd0a2caa7f6511e4ae0f0b36569fdfacc6cce59f8ce3c6c9271b77e36dfc4d607da94f56f35b9bfed2b8fc7eb6381a2a9ee2da55972acd26dc449b78936cd24db6c9f9aa0bcb6eac27ffdbf68bbc782effdf76ae6549552488eee733a6f615fdba7dbb6356a899203e5a6db51f3b4444f0c14b1489987f9faa8202a4bd37b457331113b9d010943a661645669d93b6d9e37b5a6207f5ce54d90a7b630ee6244ed8f3c2d4532060d9afca32ad349d280e4d481246103617866ae8b10a11c3b2b36c86248e1fe983506f36cb7bd7f59cde1344592e9dd23decc91c0e90c0115250a0014d680104cf80a691efb672cf7c667bc1191af13a6a6c8d2ed758790ea8a041fba8a546ca6681e23a2c67047dffd9b4a1130fb9e20cbad0833e2ce34747a706bc2c0e85fef98baee722bfd4f4404187dc51957668dcd0c2d0b660004318c12b8c61025378f3347fb13bb0acbe5df0f8ab3a31cdd0e01d3ee0136ee036e9c2ddb1ed7437f7e95459c13d7169c0bcfd003fe0117eb2bb700a4ff08c94def1b9eef5e9337dca1557dfc052a8ea8aefae6ed98c216b9d45ef4ffa485524aebeeaa181333471eeaa5edbb7f71bff47100423b4421517519a70a1686ff7106f632dbe471b97ebe0a027b3a4874ec8a276354cdffc603e255ca59dee228325a4b8c2354b719e8d29bbca113774bcb961e319c8f15c1f6327bd3884873ca043ee1bdcda7dce35430f7d0c30740718e10e636fed2f7ddd7f0cc2861b3aa1161991827b3cecfa8d66ec6112bce2115354f693204dfadb96d559cd6ccab25f967cd21655d61b3627a2d61336b0892d72a03dc20e53978ef868d8fa229f5faee75a7fe935c07eb745b764495b08ec7d0311d5f514356ca3bffd70224ff774bfb3f1822818bb5ad8461d3bd8c5de6e837df6fe0507fb088787258ef015c7d68bd0fa1a7cc79ef3f0a8623d21573237714a0f6bb636061dba66de58d0211dac1b76bfe293ef6039b59ad281736c393795d713791dceebf80ee712f96e3009ddd07544a5d179e13613e6e4967d435ca3ec245389a0cad56bfd58aad7bf7aee9fc122ff178e852391e3f3ba9c7d9399eff23a234758aeb7d96b869def6fe7fb0f468e60216ac18678a2378b9890bd31a42ee18c42f1d27b720dcf09969c1fb0909d7904e76ec356026184f0baafc89d66956e3da5fecbf6f6f369d67545d6b5c5d924df135a7ec542cb5e26e49a7cbfc201afa191da8093df3604f79408ae9ab0ad576031ca9ca3caca1635c83935653d22cfb448ce3bcf6adc752c32e62a9eb9443352aa19aaaae7e288acea1ab4729f2cb50e052bf5d4871cf952b02732ae47d9db635ea9689b453c57bc2062244752ad5f5e84c592fcc3e1ee4c949995795bc152fdbea830d827ffc84c20e9088f91d2fb395e4b665b520152c3422492ebf27dce3a1163b10a2cc60916c11710bad85b6ed69a7320cdc09db863ceee0a1533e20c1ccef6c814cd995eb334f9fc9ecf4b7ebda988b5c23b67b1108e04dff03d63da7fc32f8b9a5f4caeec2fc7c9c7e6f5bc5e154b795ce2e596e3679fca7dd222b624e3bc58134fe3a1e0bbcd199677fcb81c4b3d6a7ea7d6aeb0fb7e71ceb9a3f5738b7cbeda2ba7de3ba79caf57e52fff15fb1fcbbfd3fefcfbaf3ffe0193cc32fd - + kcombobox.h kpushbutton.h diff --git a/kmyfirewall/kmfwidgets/kmyfirewallsystemsettingslinux.ui b/kmyfirewall/kmfwidgets/kmyfirewallsystemsettingslinux.ui index 83071d8..399fc82 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewallsystemsettingslinux.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewallsystemsettingslinux.ui @@ -183,7 +183,7 @@ - + kcombobox.h kurlrequester.h diff --git a/kmyfirewall/kmfwidgets/kmyfirewalltemplatechooser.ui b/kmyfirewall/kmfwidgets/kmyfirewalltemplatechooser.ui index 7347beb..54660bd 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewalltemplatechooser.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewalltemplatechooser.ui @@ -470,5 +470,5 @@ reject() - + diff --git a/kmyfirewall/kmfwidgets/kmyfirewalltransactionlog.ui b/kmyfirewall/kmfwidgets/kmyfirewalltransactionlog.ui index 81b8a18..6180bf8 100644 --- a/kmyfirewall/kmfwidgets/kmyfirewalltransactionlog.ui +++ b/kmyfirewall/kmfwidgets/kmyfirewalltransactionlog.ui @@ -333,7 +333,7 @@ kmyfirewalltransactionlog.ui.h - + klistview.h klistview.h diff --git a/kmyfirewall/ruleoptionplugins/custom_option/kmyfirewallruleeditorcustomrule.ui b/kmyfirewall/ruleoptionplugins/custom_option/kmyfirewallruleeditorcustomrule.ui index 396b319..dd225ea 100644 --- a/kmyfirewall/ruleoptionplugins/custom_option/kmyfirewallruleeditorcustomrule.ui +++ b/kmyfirewall/ruleoptionplugins/custom_option/kmyfirewallruleeditorcustomrule.ui @@ -365,7 +365,7 @@ reject() accept() - + tqwidget.h diff --git a/kmyfirewall/ruleoptionplugins/interface_option/kmfruleeditorinterface.cpp b/kmyfirewall/ruleoptionplugins/interface_option/kmfruleeditorinterface.cpp index 0c808c8..c3242c4 100644 --- a/kmyfirewall/ruleoptionplugins/interface_option/kmfruleeditorinterface.cpp +++ b/kmyfirewall/ruleoptionplugins/interface_option/kmfruleeditorinterface.cpp @@ -93,7 +93,7 @@ void KMFRuleEditorInterface::loadRule( IPTRule * rule ) { /** No descriptions */ void KMFRuleEditorInterface::slotOk() { - // KMyFirewallRuleEditor* ed = (KMyFirewallRuleEditor*)tqparentWidget(); + // KMyFirewallRuleEditor* ed = (KMyFirewallRuleEditor*)parentWidget(); KMFUndoEngine::instance()->startTransaction( m_rule, i18n("Edit Rule: %1 Interface Option").tqarg( m_rule->name() ) diff --git a/kmyfirewall/ruleoptionplugins/interface_option/kmyfirewallruleeditorinterface.ui b/kmyfirewall/ruleoptionplugins/interface_option/kmyfirewallruleeditorinterface.ui index a099765..1270ef6 100644 --- a/kmyfirewall/ruleoptionplugins/interface_option/kmyfirewallruleeditorinterface.ui +++ b/kmyfirewall/ruleoptionplugins/interface_option/kmyfirewallruleeditorinterface.ui @@ -432,7 +432,7 @@ accept() reject() - + kpushbutton.h diff --git a/kmyfirewall/ruleoptionplugins/ip_option/kmyfirewallruleeditorip.ui b/kmyfirewall/ruleoptionplugins/ip_option/kmyfirewallruleeditorip.ui index b158b31..49096b8 100644 --- a/kmyfirewall/ruleoptionplugins/ip_option/kmyfirewallruleeditorip.ui +++ b/kmyfirewall/ruleoptionplugins/ip_option/kmyfirewallruleeditorip.ui @@ -296,7 +296,7 @@ accept() reject() - + kpushbutton.h diff --git a/kmyfirewall/ruleoptionplugins/limit_option/kmyfirewallruleeditorlimit.ui b/kmyfirewall/ruleoptionplugins/limit_option/kmyfirewallruleeditorlimit.ui index 3312e20..20cf8c2 100644 --- a/kmyfirewall/ruleoptionplugins/limit_option/kmyfirewallruleeditorlimit.ui +++ b/kmyfirewall/ruleoptionplugins/limit_option/kmyfirewallruleeditorlimit.ui @@ -435,7 +435,7 @@ slotOk() reject() - + tqwidget.h kpushbutton.h diff --git a/kmyfirewall/ruleoptionplugins/log_target_option/kmyfirewallruleeditortargetlog.ui b/kmyfirewall/ruleoptionplugins/log_target_option/kmyfirewallruleeditortargetlog.ui index 594edcf..c4c961b 100644 --- a/kmyfirewall/ruleoptionplugins/log_target_option/kmyfirewallruleeditortargetlog.ui +++ b/kmyfirewall/ruleoptionplugins/log_target_option/kmyfirewallruleeditortargetlog.ui @@ -263,5 +263,5 @@ reject() accept() - + diff --git a/kmyfirewall/ruleoptionplugins/mac_option/kmyfirewallruleeditormac.ui b/kmyfirewall/ruleoptionplugins/mac_option/kmyfirewallruleeditormac.ui index 0c5c301..e54139a 100644 --- a/kmyfirewall/ruleoptionplugins/mac_option/kmyfirewallruleeditormac.ui +++ b/kmyfirewall/ruleoptionplugins/mac_option/kmyfirewallruleeditormac.ui @@ -495,7 +495,7 @@ accept() reject() - + kpushbutton.h diff --git a/kmyfirewall/ruleoptionplugins/mark_target_option/kmyfirewallruleeditortargetmark.ui b/kmyfirewall/ruleoptionplugins/mark_target_option/kmyfirewallruleeditortargetmark.ui index 6d0775d..324a4c2 100644 --- a/kmyfirewall/ruleoptionplugins/mark_target_option/kmyfirewallruleeditortargetmark.ui +++ b/kmyfirewall/ruleoptionplugins/mark_target_option/kmyfirewallruleeditortargetmark.ui @@ -138,5 +138,5 @@ accept() reject() - + diff --git a/kmyfirewall/ruleoptionplugins/nat_target_option/kmyfirewallruleeditortargetnat.ui b/kmyfirewall/ruleoptionplugins/nat_target_option/kmyfirewallruleeditortargetnat.ui index 97ecad3..4b0656d 100644 --- a/kmyfirewall/ruleoptionplugins/nat_target_option/kmyfirewallruleeditortargetnat.ui +++ b/kmyfirewall/ruleoptionplugins/nat_target_option/kmyfirewallruleeditortargetnat.ui @@ -335,5 +335,5 @@ accept() reject() - + diff --git a/kmyfirewall/ruleoptionplugins/protocol_option/kmfruleeditorprotocol.cpp b/kmyfirewall/ruleoptionplugins/protocol_option/kmfruleeditorprotocol.cpp index 316e544..ffab444 100644 --- a/kmyfirewall/ruleoptionplugins/protocol_option/kmfruleeditorprotocol.cpp +++ b/kmyfirewall/ruleoptionplugins/protocol_option/kmfruleeditorprotocol.cpp @@ -330,26 +330,26 @@ void KMFRuleEditorProtocol::loadRule( IPTRule* rule ) { } delim = flags.tqfind( " " ); kdDebug() << "found Whitespace at " << delim << endl; - TQString tqmask_lst = flags.left( delim ); - kdDebug() << "Flags for Mask: " << tqmask_lst << endl; + TQString mask_lst = flags.left( delim ); + kdDebug() << "Flags for Mask: " << mask_lst << endl; TQString comp_lst = flags.right( flags.length() - delim ); kdDebug() << "Flags for Comp: " << comp_lst << endl; - if ( tqmask_lst.tqcontains( "SYN" ) > 0 ) + if ( mask_lst.tqcontains( "SYN" ) > 0 ) c_syn_tqmask->setChecked( true ); - if ( tqmask_lst.tqcontains( "ACK" ) > 0 ) + if ( mask_lst.tqcontains( "ACK" ) > 0 ) c_ack_tqmask->setChecked( true ); - if ( tqmask_lst.tqcontains( "FIN" ) > 0 ) + if ( mask_lst.tqcontains( "FIN" ) > 0 ) c_fin_tqmask->setChecked( true ); - if ( tqmask_lst.tqcontains( "RST" ) > 0 ) + if ( mask_lst.tqcontains( "RST" ) > 0 ) c_rst_tqmask->setChecked( true ); - if ( tqmask_lst.tqcontains( "URG" ) > 0 ) + if ( mask_lst.tqcontains( "URG" ) > 0 ) c_urg_tqmask->setChecked( true ); - if ( tqmask_lst.tqcontains( "PSH" ) > 0 ) + if ( mask_lst.tqcontains( "PSH" ) > 0 ) c_psh_tqmask->setChecked( true ); - if ( tqmask_lst.tqcontains( "NONE" ) > 0 ) + if ( mask_lst.tqcontains( "NONE" ) > 0 ) c_none_tqmask->setChecked( true ); - if ( tqmask_lst.tqcontains( "ALL" ) > 0 ) + if ( mask_lst.tqcontains( "ALL" ) > 0 ) c_all_tqmask->setChecked( true ); if ( comp_lst.tqcontains( "SYN" ) > 0 ) diff --git a/kmyfirewall/ruleoptionplugins/protocol_option/kmyfirewallruleeditorprotocol.ui b/kmyfirewall/ruleoptionplugins/protocol_option/kmyfirewallruleeditorprotocol.ui index 2c8abb8..9945c82 100644 --- a/kmyfirewall/ruleoptionplugins/protocol_option/kmyfirewallruleeditorprotocol.ui +++ b/kmyfirewall/ruleoptionplugins/protocol_option/kmyfirewallruleeditorprotocol.ui @@ -322,9 +322,9 @@ You may use a portnumber an inclusive portrange or a service name from <i> Mask - + - + @@ -466,9 +466,9 @@ You may use a portnumber an inclusive portrange or a service name from <i> Comp - + - + @@ -1185,5 +1185,5 @@ A misuse of this functionality may result in a hard to detect bug in the firewal accept() reject() - + diff --git a/kmyfirewall/ruleoptionplugins/state_option/kmyfirewallruleeditorstate.ui b/kmyfirewall/ruleoptionplugins/state_option/kmyfirewallruleeditorstate.ui index bb20cdc..ec6adf3 100644 --- a/kmyfirewall/ruleoptionplugins/state_option/kmyfirewallruleeditorstate.ui +++ b/kmyfirewall/ruleoptionplugins/state_option/kmyfirewallruleeditorstate.ui @@ -434,5 +434,5 @@ slotOk() reject() - + diff --git a/kmyfirewall/ruleoptionplugins/tos_option/kmyfirewallruleeditortos.ui b/kmyfirewall/ruleoptionplugins/tos_option/kmyfirewallruleeditortos.ui index c070a02..756998a 100644 --- a/kmyfirewall/ruleoptionplugins/tos_option/kmyfirewallruleeditortos.ui +++ b/kmyfirewall/ruleoptionplugins/tos_option/kmyfirewallruleeditortos.ui @@ -169,5 +169,5 @@ accept() reject() - + diff --git a/kmyfirewall/ruleoptionplugins/tos_target_option/kmyfirewallruleeditortos.ui b/kmyfirewall/ruleoptionplugins/tos_target_option/kmyfirewallruleeditortos.ui index c070a02..756998a 100644 --- a/kmyfirewall/ruleoptionplugins/tos_target_option/kmyfirewallruleeditortos.ui +++ b/kmyfirewall/ruleoptionplugins/tos_target_option/kmyfirewallruleeditortos.ui @@ -169,5 +169,5 @@ accept() reject() - +