dlt-viewer-2.18.0+dfsg/0000775000175000017500000000000013001357026014220 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/BuildDltParser.pro0000664000175000017500000000012113001357026017614 0ustar potyrapotyra# CXXFLAGS +=-Wunused TEMPLATE = subdirs CONFIG += ordered SUBDIRS += parser dlt-viewer-2.18.0+dfsg/plugin/0000775000175000017500000000000013001357026015516 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/plugin/dummycontrolplugin/0000775000175000017500000000000013001357026021471 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/plugin/dummycontrolplugin/dummycontrolplugin.cpp0000664000175000017500000000573713001357026026164 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file dummycontrolplugin.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "dummycontrolplugin.h" DummyControlPlugin::DummyControlPlugin() { form = NULL; counterMessages = 0; counterNonVerboseMessages = 0; counterVerboseMessages = 0; dltFile = 0; dltControl = 0; ecuList = 0; } DummyControlPlugin::~DummyControlPlugin() { } QString DummyControlPlugin::name() { return QString("Dummy Control Plugin"); } QString DummyControlPlugin::pluginVersion(){ return DUMMY_CONTROL_PLUGIN_VERSION; } QString DummyControlPlugin::pluginInterfaceVersion(){ return PLUGIN_INTERFACE_VERSION; } QString DummyControlPlugin::description() { return QString(); } QString DummyControlPlugin::error() { return QString(); } bool DummyControlPlugin::loadConfig(QString /* filename */) { return true; } bool DummyControlPlugin::saveConfig(QString /* filename */) { return true; } QStringList DummyControlPlugin::infoConfig() { return QStringList(); } QWidget* DummyControlPlugin::initViewer() { form = new Form(this); return form; } bool DummyControlPlugin::initControl(QDltControl *control) { dltControl = control; return true; } bool DummyControlPlugin::initConnections(QStringList list) { ecuList = new QStringList(list); form->setConnections(list); return false; } bool DummyControlPlugin::controlMsg(int , QDltMsg &) { return false; } void DummyControlPlugin::updateCounters(int ,int ) { } bool DummyControlPlugin::stateChanged(int index, QDltConnection::QDltConnectionState connectionState,QString hostname){ qDebug() << ecuList->at(index) << "ConnectionState:" << connectionState << "Hostname:" << hostname << endl; return true; } bool DummyControlPlugin::autoscrollStateChanged(bool enabled) { form->autoscrollStateChanged(enabled); return true; } void DummyControlPlugin::selectedIdxMsg(int , QDltMsg &) { } void DummyControlPlugin::selectedIdxMsgDecoded(int , QDltMsg &){ } void DummyControlPlugin::initFileStart(QDltFile *file){ dltFile = file; } void DummyControlPlugin::initMsg(int , QDltMsg &){ } void DummyControlPlugin::initMsgDecoded(int , QDltMsg &){ } void DummyControlPlugin::initFileFinish(){ } void DummyControlPlugin::updateFileStart(){ } void DummyControlPlugin::updateMsg(int , QDltMsg &){ } void DummyControlPlugin::updateMsgDecoded(int , QDltMsg &){ } void DummyControlPlugin::updateFileFinish(){ } #ifndef QT5 Q_EXPORT_PLUGIN2(dummycontrolplugin, DummyControlPlugin); #endif dlt-viewer-2.18.0+dfsg/plugin/dummycontrolplugin/form.h0000664000175000017500000000262313001357026022610 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file form.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef FORM_H #define FORM_H #include class DummyControlPlugin; namespace Ui { class Form; } class Form : public QWidget { Q_OBJECT public: explicit Form(DummyControlPlugin *_plugin, QWidget *parent = 0); ~Form(); void setConnections(QStringList list); void autoscrollStateChanged(bool enabled); private: Ui::Form *ui; DummyControlPlugin *plugin; private slots: void on_pushButton_clicked(); void on_pushButtonJumpTo_clicked(); void on_pushButtonClearFile_clicked(); void on_pushButtonNewFile_clicked(); void on_pushButtonQuit_clicked(); void on_pushButtonOpenFile_clicked(); void on_pushButtonSaveAsFile_clicked(); void on_pushButtonMarker_clicked(); void on_pushButtonConnect_clicked(); void on_pushButtonDisconnect_clicked(); void on_pushButtonReopenFile_clicked(); }; #endif // FORM_H dlt-viewer-2.18.0+dfsg/plugin/dummycontrolplugin/form.cpp0000664000175000017500000000705713001357026023151 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file form.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "form.h" #include "ui_form.h" #include "dummycontrolplugin.h" #include Form::Form(DummyControlPlugin *_plugin,QWidget *parent) : QWidget(parent), ui(new Ui::Form) { ui->setupUi(this); plugin = _plugin; } Form::~Form() { delete ui; } void Form::setConnections(QStringList list) { ui->comboBoxConnections->clear(); ui->comboBoxConnections->insertItems(0,list); } void Form::autoscrollStateChanged(bool enabled) { ui->checkBoxAutoscroll->setChecked(enabled); } void Form::on_pushButton_clicked() { if(plugin->dltControl) plugin->dltControl->sendInjection(ui->comboBoxConnections->currentIndex(),ui->lineEditApplicationId->text(),ui->lineEditContextId->text(),ui->lineEditServiceId->text().toInt(),ui->lineEditData->text().toLatin1()); } void Form::on_pushButtonJumpTo_clicked() { if(plugin->dltControl) plugin->dltControl->jumpToMsg(ui->lineEditJumpTo->text().toUInt()); } void Form::on_pushButtonClearFile_clicked() { if(plugin->dltControl) plugin->dltControl->clearFile(); } void Form::on_pushButtonNewFile_clicked() { QString fileName = QFileDialog::getSaveFileName(this, tr("New DLT Log file"), tr(""), tr("DLT Files (*.dlt);;All files (*.*)")); if(fileName.isEmpty()) { return; } if(plugin->dltControl) plugin->dltControl->newFile(fileName); } void Form::on_pushButtonQuit_clicked() { if(plugin->dltControl) plugin->dltControl->quitDltViewer(); } void Form::on_pushButtonOpenFile_clicked() { QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Open one or more DLT Log files"), tr(""), tr("DLT Files (*.dlt);;All files (*.*)")); if(fileNames.isEmpty()) return; if(plugin->dltControl) plugin->dltControl->openFile(fileNames); } void Form::on_pushButtonSaveAsFile_clicked() { QFileDialog dialog(this); QStringList filters; filters << "DLT Files (*.dlt)" <<"All files (*.*)"; dialog.setAcceptMode(QFileDialog::AcceptSave); dialog.setDefaultSuffix("dlt"); dialog.setNameFilters(filters); dialog.setWindowTitle("Save DLT Log file"); dialog.exec(); if(dialog.result() != QFileDialog::Accepted || dialog.selectedFiles().count() < 1) { return; } QString fileName = dialog.selectedFiles()[0]; if(fileName.isEmpty() || dialog.result() == QDialog::Rejected) { return; } if(plugin->dltControl) plugin->dltControl->saveAsFile(fileName); } void Form::on_pushButtonMarker_clicked() { if(plugin->dltControl) plugin->dltControl->marker(); } void Form::on_pushButtonConnect_clicked() { if(plugin->dltControl) plugin->dltControl->connectEcu(ui->comboBoxConnections->currentIndex()); } void Form::on_pushButtonDisconnect_clicked() { if(plugin->dltControl) plugin->dltControl->disconnectEcu(ui->comboBoxConnections->currentIndex()); } void Form::on_pushButtonReopenFile_clicked() { if(plugin->dltControl) plugin->dltControl->reopenFile(); } dlt-viewer-2.18.0+dfsg/plugin/dummycontrolplugin/CMakeLists.txt0000664000175000017500000000143013001357026024227 0ustar potyrapotyra# # Copyright (C) 2016, Jack S. Smith # # This file is part of GENIVI DLT-Viewer project. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # # For further information see http://www.genivi.org/. # # List of changes: # 01.Oct.2016, Jack Smith , Original Author # set (CMAKE_AUTOUIC ON) #cmake 2.8.12 doesn't have AUTOUIC ?? QT5_WRAP_UI( UI_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/form.ui ) add_library(dummycontrolplugin MODULE dummycontrolplugin.cpp form.cpp ${UI_HEADERS}) target_link_libraries(dummycontrolplugin qdlt Qt5::Widgets ) install(TARGETS dummycontrolplugin DESTINATION deploy/plugins) dlt-viewer-2.18.0+dfsg/plugin/dummycontrolplugin/dummycontrolplugin.pro0000664000175000017500000000073313001357026026171 0ustar potyrapotyra# include global settings for all DLT Viewer Plugins include( ../plugin.pri ) # Put intermediate files in the build directory MOC_DIR = build/moc OBJECTS_DIR = build/obj RCC_DIR = build/rcc UI_DIR = build/ui # target name TARGET = $$qtLibraryTarget(dummycontrolplugin) # plugin header files HEADERS += \ dummycontrolplugin.h \ form.h # plugin source files SOURCES += \ dummycontrolplugin.cpp \ form.cpp # plugin forms FORMS += \ form.ui dlt-viewer-2.18.0+dfsg/plugin/dummycontrolplugin/dummycontrolplugin.h0000664000175000017500000000502513001357026025617 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file dummycontrolplugin.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef DUMMYCONTROLPLUGIN_H #define DUMMYCONTROLPLUGIN_H #include #include "plugininterface.h" #include "form.h" #define DUMMY_CONTROL_PLUGIN_VERSION "1.0.0" class DummyControlPlugin : public QObject, QDLTPluginInterface, QDltPluginViewerInterface, QDltPluginControlInterface { Q_OBJECT Q_INTERFACES(QDLTPluginInterface) Q_INTERFACES(QDltPluginViewerInterface) Q_INTERFACES(QDltPluginControlInterface) #ifdef QT5 Q_PLUGIN_METADATA(IID "org.genivi.DLT.DummyControlPlugin") #endif public: DummyControlPlugin(); ~DummyControlPlugin(); /* QDLTPluginInterface interface */ QString name(); QString pluginVersion(); QString pluginInterfaceVersion(); QString description(); QString error(); bool loadConfig(QString filename); bool saveConfig(QString filename); QStringList infoConfig(); /* QDltPluginViewerInterface */ QWidget* initViewer(); void initFileStart(QDltFile *file); void initFileFinish(); void initMsg(int index, QDltMsg &msg); void initMsgDecoded(int index, QDltMsg &msg); void updateFileStart(); void updateMsg(int index, QDltMsg &msg); void updateMsgDecoded(int index, QDltMsg &msg); void updateFileFinish(); void selectedIdxMsg(int index, QDltMsg &msg); void selectedIdxMsgDecoded(int index, QDltMsg &msg); /* QDltPluginControlInterface */ bool initControl(QDltControl *control); bool initConnections(QStringList list); bool controlMsg(int index, QDltMsg &msg); bool stateChanged(int index, QDltConnection::QDltConnectionState connectionState,QString hostname); bool autoscrollStateChanged(bool enabled); /* internal variables */ Form *form; int counterMessages; int counterNonVerboseMessages; int counterVerboseMessages; void show(bool value); void updateCounters(int start,int end); QDltControl *dltControl; private: QDltFile *dltFile; QString errorText; QStringList *ecuList; }; #endif // DUMMYCONTROLPLUGIN_H dlt-viewer-2.18.0+dfsg/plugin/dummycontrolplugin/form.ui0000664000175000017500000001120213001357026022767 0ustar potyrapotyra Form 0 0 309 372 Form Hello world Data: Send Injection 4095 Marker Quit LOG OpenFile... ClearFile TEST Connect false Autoscroll Disconnect ContextId: SaveAsFile... ApplicationId: ServiceId: NewFile Jump To Msg with Index Jump to ReopenFile dlt-viewer-2.18.0+dfsg/plugin/nonverboseplugin/0000775000175000017500000000000013001357026021115 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/plugin/nonverboseplugin/nonverboseplugin.pro0000664000175000017500000000075513001357026025245 0ustar potyrapotyra# include global settings for all DLT Viewer Plugins include( ../plugin.pri ) # Put intermediate files in the build directory MOC_DIR = build/moc OBJECTS_DIR = build/obj RCC_DIR = build/rcc UI_DIR = build/ui # target name TARGET = $$qtLibraryTarget(nonverboseplugin) # plugin header files HEADERS += \ nonverboseplugin.h # plugin source files SOURCES += \ nonverboseplugin.cpp # plugin forms FORMS += # other files OTHER_FILES += \ dlt-example-non-verbose-1.xml dlt-viewer-2.18.0+dfsg/plugin/nonverboseplugin/nonverboseplugin.h0000664000175000017500000000623313001357026024671 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file nonverboseplugin.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef NONVERBOSEPLUGIN_H #define NONVERBOSEPLUGIN_H #include #include #include "plugininterface.h" #if defined(_MSC_VER) #include #else #include #endif #define NON_VERBOSE_PLUGIN_VERSION "1.0.0" class DltFibexKey { public: DltFibexKey(QString id,QString appid,QString ctid) { this->id = id; this->appid = appid; this->ctid = ctid; } friend bool operator==(const DltFibexKey &e1, const DltFibexKey &e2); friend uint qHash(const DltFibexKey &key); QString id; QString appid; QString ctid; }; inline bool operator==(const DltFibexKey &e1, const DltFibexKey &e2) { return (e1.id == e2.id) && (e1.appid == e2.appid) && (e1.ctid == e2.ctid); } inline uint qHash(const DltFibexKey &key) { return qHash(key.id) ^ qHash(key.appid) ^ qHash(key.ctid); } /** * The structure of a Fibex PDU information. */ class DltFibexPdu { public: DltFibexPdu() { byteLength=0;typeInfo=0; } QString id; QString description; int32_t byteLength; uint32_t typeInfo; }; class DltFibexPduRef { public: DltFibexPduRef() { ref = 0; } QString id; DltFibexPdu *ref; }; /** * The structure of a Fibex Frame information. */ class DltFibexFrame { public: DltFibexFrame() { byteLength=0;messageType=0;messageInfo=0;pduRefCounter=0; } QString id; int32_t byteLength; uint8_t messageType; int8_t messageInfo; QString appid; QString ctid; QList pdureflist; uint32_t pduRefCounter; }; class NonverbosePlugin : public QObject, QDLTPluginInterface, QDLTPluginDecoderInterface { Q_OBJECT Q_INTERFACES(QDLTPluginInterface) Q_INTERFACES(QDLTPluginDecoderInterface) #ifdef QT5 Q_PLUGIN_METADATA(IID "org.genivi.DLT.NonVerbosePlugin") #endif public: /* QDLTPluginInterface interface */ QString name(); QString pluginVersion(); QString pluginInterfaceVersion(); QString description(); QString error(); bool loadConfig(QString filename); bool saveConfig(QString filename); QStringList infoConfig(); /* QDltPluginDecoderInterface */ bool isMsg(QDltMsg &msg, int triggeredByUser); bool decodeMsg(QDltMsg &msg, int triggeredByUser); /* Faster lookup */ //is it necessary that this is public? QHash pdumap; QHash framemap; QHash framemapwithkey; private: bool parseFile(QString filename); void clear(); QString m_error_string; }; #endif // NONVERBOSEPLUGIN_H dlt-viewer-2.18.0+dfsg/plugin/nonverboseplugin/CMakeLists.txt0000664000175000017500000000134313001357026023656 0ustar potyrapotyra# # Copyright (C) 2016, Jack S. Smith # # This file is part of GENIVI DLT-Viewer project. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # # For further information see http://www.genivi.org/. # # List of changes: # 01.Oct.2016, Jack Smith , Original Author # #set (CMAKE_AUTOUIC ON) # cmake 2.8.12 doesn't have AUTOUIC ?? add_library(nonverboseplugin MODULE nonverboseplugin.cpp ${UI_HEADERS}) target_link_libraries(nonverboseplugin qdlt Qt5::Widgets ) install(TARGETS nonverboseplugin DESTINATION deploy/plugins) dlt-viewer-2.18.0+dfsg/plugin/nonverboseplugin/nonverboseplugin.cpp0000775000175000017500000004742713001357026025241 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file nonverboseplugin.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include #include "nonverboseplugin.h" #include "dlt_protocol.h" #include "dlt_user.h" extern char *message_type[]; extern const char *log_info[]; extern const char *trace_type[]; extern const char *nw_trace_type[]; extern const char *control_type[]; extern const char *service_id[]; extern const char *return_type[]; QString NonverbosePlugin::name() { return QString("Non Verbose Mode Plugin"); } QString NonverbosePlugin::pluginVersion(){ return NON_VERBOSE_PLUGIN_VERSION; } QString NonverbosePlugin::pluginInterfaceVersion(){ return PLUGIN_INTERFACE_VERSION; } QString NonverbosePlugin::description() { return QString(); } QString NonverbosePlugin::error() { return m_error_string; } bool NonverbosePlugin::loadConfig(QString filename) { /* remove all stored items */ m_error_string.clear(); clear(); if ( filename.isEmpty() ) // empty filename is valid, only clear plugin data return true; QDir dir(filename); if(dir.exists()) { // this is a directory, load all files in directory dir.setFilter(QDir::Files); QStringList filters; filters << "*.xml" << "*.XML"; dir.setNameFilters(filters); QFileInfoList list = dir.entryInfoList(); for (int i = 0; i < list.size(); ++i) { QFileInfo fileInfo = list.at(i); if(!parseFile(fileInfo.filePath())) { m_error_string = fileInfo.fileName()+":\n"+m_error_string; return false; } } return true; } else { return parseFile(filename); } } void NonverbosePlugin::clear() { foreach(DltFibexPdu *pdu, pdumap) delete pdu; pdumap.clear(); foreach(DltFibexFrame *frame, framemapwithkey) delete frame; framemapwithkey.clear(); framemap.clear(); } bool NonverbosePlugin::parseFile(QString filename) { bool ret = true; QFile file(filename); if (!file.open(QFile::ReadOnly | QFile::Text)) { m_error_string = "Could not open File: "; m_error_string.append(filename).append(" for configuration."); return false; } QString warning_text; DltFibexPdu *pdu = 0; DltFibexFrame *frame = 0; QXmlStreamReader xml(&file); while (!xml.atEnd()) { xml.readNext(); if(xml.isStartElement()) { if(xml.name() == QString("PDU")) { if(!pdu) { pdu = new DltFibexPdu(); pdu->id = xml.attributes().value(QString("ID")).toString(); } } if(xml.name() == QString("DESC")) { if(pdu) pdu->description = xml.readElementText(); } if(xml.name() == QString("BYTE-LENGTH")) { if(frame) frame->byteLength = xml.readElementText().toInt(); if(pdu) pdu->byteLength = xml.readElementText().toInt(); } if(xml.name() == QString("SIGNAL-INSTANCE")) { // nothing todo } if(xml.name() == QString("SIGNAL-REF")) { if(pdu) { QString text = xml.attributes().value("ID-REF").toString(); if (text == "S_BOOL") { //pdu->typeInfo = DLT_TYPE_INFO_BOOL; pdu->typeInfo = QDltArgument::DltTypeInfoBool; } else if (text == "S_SINT8") { //pdu->typeInfo = DLT_TYPE_INFO_SINT | DLT_TYLE_8BIT; pdu->typeInfo = QDltArgument::DltTypeInfoSInt; } else if (text == "S_UINT8") { //pdu->typeInfo = DLT_TYPE_INFO_UINT | DLT_TYLE_8BIT; pdu->typeInfo = QDltArgument::DltTypeInfoUInt; } else if (text == "S_SINT16") { //pdu->typeInfo = DLT_TYPE_INFO_SINT | DLT_TYLE_16BIT; pdu->typeInfo = QDltArgument::DltTypeInfoSInt; } else if (text == "S_UINT16") { //pdu->typeInfo = DLT_TYPE_INFO_UINT | DLT_TYLE_16BIT; pdu->typeInfo = QDltArgument::DltTypeInfoUInt; } else if (text == "S_SINT32") { //pdu->typeInfo = DLT_TYPE_INFO_SINT | DLT_TYLE_32BIT; pdu->typeInfo = QDltArgument::DltTypeInfoSInt; } else if (text == "S_UINT32") { //pdu->typeInfo = DLT_TYPE_INFO_UINT | DLT_TYLE_32BIT; pdu->typeInfo = QDltArgument::DltTypeInfoUInt; } else if (text == "S_SINT64") { //pdu->typeInfo = DLT_TYPE_INFO_SINT | DLT_TYLE_64BIT; pdu->typeInfo = QDltArgument::DltTypeInfoSInt; } else if (text == "S_UINT64") { //pdu->typeInfo = DLT_TYPE_INFO_UINT | DLT_TYLE_64BIT; pdu->typeInfo = QDltArgument::DltTypeInfoUInt; } else if (text == "S_FLOA16") { //pdu->typeInfo = DLT_TYPE_INFO_FLOA | DLT_TYLE_16BIT; pdu->typeInfo = QDltArgument::DltTypeInfoFloa; } else if (text == "S_FLOA32") { //pdu->typeInfo = DLT_TYPE_INFO_FLOA | DLT_TYLE_32BIT; pdu->typeInfo = QDltArgument::DltTypeInfoFloa; } else if (text == "S_FLOA64") { //pdu->typeInfo = DLT_TYPE_INFO_FLOA | DLT_TYLE_64BIT; pdu->typeInfo = QDltArgument::DltTypeInfoFloa; } else if (text == "S_STRG_ASCII") { //pdu->typeInfo = DLT_TYPE_INFO_STRG | DLT_SCOD_ASCII; pdu->typeInfo = QDltArgument::DltTypeInfoStrg; } else if (text == "S_STRG_UTF8") { //pdu->typeInfo = DLT_TYPE_INFO_STRG | DLT_SCOD_UTF8; pdu->typeInfo = QDltArgument::DltTypeInfoUtf8; } else if (text == "S_RAWD" || text == "S_RAW") { //pdu->typeInfo = DLT_TYPE_INFO_RAWD; pdu->typeInfo = QDltArgument::DltTypeInfoRawd; } else { pdu->typeInfo = 0; } } } if(xml.name() == QString("FRAME")) { if(!frame) { frame = new DltFibexFrame(); frame->id = xml.attributes().value(QString("ID")).toString(); } } if(xml.name() == QString("MANUFACTURER-EXTENSION")) { // nothing todo } if(xml.name() == QString("MESSAGE_TYPE")) { if(frame) { QString text = xml.readElementText(); if (text == QString("DLT_TYPE_LOG")) { frame->messageType = DLT_TYPE_LOG; } else if (text == QString("DLT_TYPE_APP_TRACE")) { frame->messageType = DLT_TYPE_APP_TRACE; } else if (text == QString("DLT_TYPE_NW_TRACE")) { frame->messageType = DLT_TYPE_NW_TRACE; } else if (text == QString("DLT_TYPE_CONTROL")) { frame->messageType = DLT_TYPE_CONTROL; } else { frame->messageType = 0; } } } if(xml.name() == QString("MESSAGE_INFO")) { if(frame) { QString text = xml.readElementText(); if (text == QString("DLT_LOG_DEFAULT")) { frame->messageInfo = DLT_LOG_DEFAULT; } else if (text == QString("DLT_LOG_OFF")) { frame->messageInfo = DLT_LOG_OFF; } else if (text == QString("DLT_LOG_FATAL")) { frame->messageInfo = DLT_LOG_FATAL; } else if (text == QString("DLT_LOG_ERROR")) { frame->messageInfo = DLT_LOG_ERROR; } else if (text == QString("DLT_LOG_WARN")) { frame->messageInfo = DLT_LOG_WARN; } else if (text == QString("DLT_LOG_INFO")) { frame->messageInfo = DLT_LOG_INFO; } else if (text == QString("DLT_LOG_DEBUG")) { frame->messageInfo = DLT_LOG_DEBUG; } else if (text == QString("DLT_LOG_VERBOSE")) { frame->messageInfo = DLT_LOG_VERBOSE; } else { frame->messageInfo = 0; } } } if(xml.name() == QString("APPLICATION_ID")) { if(frame) { frame->appid = xml.readElementText(); } } if(xml.name() == QString("CONTEXT_ID")) { if(frame) { frame->ctid = xml.readElementText(); } } if(xml.name() == QString("PDU-INSTANCE")) { } if(xml.name() == QString("PDU-REF")) { if(frame) { DltFibexPduRef *ref = new DltFibexPduRef(); ref->id = xml.attributes().value(QString("ID-REF")).toString(); frame->pdureflist.append(ref); frame->pduRefCounter++; } } } if(xml.isEndElement()) { if(xml.name() == QString("PDU")) { if(pdu) { pdumap[pdu->id] = pdu; pdu = 0; } } if(xml.name() == QString("DESC")) { } if(xml.name() == QString("BYTE-LENGTH")) { } if(xml.name() == QString("SIGNAL-INSTANCE")) { } if(xml.name() == QString("SIGNAL-REF")) { } if(xml.name() == QString("FRAME")) { if(frame) { if (framemap.contains(frame->id)) { if( framemapwithkey.contains(DltFibexKey(frame->id,frame->appid,frame->ctid))) { // do not add frame, if Id, appid and ctid already exist // show warning instead warning_text+=frame->id + ", "; delete frame; frame=0; } else { framemapwithkey[DltFibexKey(frame->id,frame->appid,frame->ctid)] = frame; } } else { framemapwithkey[DltFibexKey(frame->id,frame->appid,frame->ctid)] = frame; framemap[frame->id] = frame; } frame = 0; } } if(xml.name() == QString("MANUFACTURER-EXTENSION")) { } if(xml.name() == QString("MESSAGE_TYPE")) { } if(xml.name() == QString("MESSAGE_INFO")) { } if(xml.name() == QString("APPLICATION_ID")) { } if(xml.name() == QString("CONTEXT_ID")) { } if(xml.name() == QString("PDU-INSTANCE")) { } if(xml.name() == QString("PDU-REF")) { } } } if (xml.hasError()) { m_error_string.append("\nXML Parser error: ").append(xml.errorString()).append("\n"); ret = false; } file.close(); if (warning_text.length()){ warning_text.chop(2); // remove last ", " m_error_string.append("Duplicated FRAMES ignored: \n").append(warning_text); ret = true;//it is not breaking the plugin functionality, but could cause wrong decoding. } /* create PDU Ref links */ foreach(DltFibexFrame *frame, framemap) { foreach(DltFibexPduRef *ref, frame->pdureflist) { foreach(DltFibexPdu *pdu, pdumap) { if(pdu->id == ref->id) { ref->ref = pdu; break; } } } } return ret; } bool NonverbosePlugin::saveConfig(QString /*filename*/) { return true; } QStringList NonverbosePlugin::infoConfig() { QStringList list; foreach(DltFibexFrame *frame, framemap) { QString text; text += frame->id + QString(" AppI:%1 CtI:%2 Len:%3 MT:%4 MI:%5").arg(frame->appid).arg(frame->ctid).arg(frame->byteLength).arg(frame->messageType).arg(frame->messageInfo); int c = 0; foreach(DltFibexPduRef *ref, frame->pdureflist) { if(c == 0) text += " ("; text += ref->id; if(ref->ref) text += QString(" Des:%1 TI:%2 Len:%3").arg(ref->ref->description).arg(ref->ref->typeInfo).arg(ref->ref->byteLength); if(c == (frame->pdureflist.size()-1)) text += ")"; else text += ", "; } list.append(text); } return list; } bool NonverbosePlugin::isMsg(QDltMsg &msg, int triggeredByUser) { Q_UNUSED(triggeredByUser) if((msg.getMode() != QDltMsg::DltModeNonVerbose)) { /* message is not a non-verbose message */ return false; } if((msg.getType() == QDltMsg::DltTypeControl)) { /* message is a control message */ return false; } QString idtext = QString("ID_%1").arg(msg.getMessageId()); if(!msg.getApid().isEmpty() && !msg.getCtid().isEmpty()) // search in full key, if msg already contains AppId and CtId return framemapwithkey.contains(DltFibexKey(idtext,msg.getApid(),msg.getCtid())); else // search only for id return framemap.contains(idtext); } bool NonverbosePlugin::decodeMsg(QDltMsg &msg, int triggeredByUser) { Q_UNUSED(triggeredByUser) int offset = 4; if((msg.getMode() != QDltMsg::DltModeNonVerbose)) { /* message is not a non-verbose message */ return false; } if((msg.getType() == QDltMsg::DltTypeControl)) { /* message is a control message */ return false; } QString idtext = QString("ID_%1").arg(msg.getMessageId()); DltFibexFrame *frame; if(!msg.getApid().isEmpty() && !msg.getCtid().isEmpty()) { // search in full key, if msg already contains AppId and CtId frame = framemapwithkey[DltFibexKey(idtext,msg.getApid(),msg.getCtid())]; } else { // search only for id frame = framemap[idtext]; } if(!frame) return false; /* set message data */ // set ApId only if it is empty if(msg.getApid().isEmpty()) msg.setApid(frame->appid); // set Context Id only if it is empty if(msg.getCtid().isEmpty()) msg.setCtid(frame->ctid); msg.setNumberOfArguments(frame->pdureflist.size()); msg.setType((QDltMsg::DltTypeDef)(frame->messageType)); msg.setSubtype(frame->messageInfo); QByteArray payload = msg.getPayload(); /* Look for all PDUs for this message */ for (int i=0;i < frame->pdureflist.size();i++) { QDltArgument argument; QByteArray data; unsigned short length; DltFibexPdu *pdu = frame->pdureflist[i]->ref; if(pdu) { if(!pdu->description.isEmpty()) { argument.setTypeInfo(QDltArgument::DltTypeInfoStrg); argument.setEndianness(msg.getEndianness()); argument.setOffsetPayload(offset); data.append(pdu->description); argument.setData(data); } else { argument.setTypeInfo((QDltArgument::DltTypeInfoDef)(pdu->typeInfo)); argument.setEndianness(msg.getEndianness()); argument.setOffsetPayload(offset); if( (pdu->typeInfo == QDltArgument::DltTypeInfoStrg) || (pdu->typeInfo == QDltArgument::DltTypeInfoRawd) || (pdu->typeInfo == QDltArgument::DltTypeInfoUtf8)) { if((unsigned int)payload.size()<(offset+sizeof(unsigned short))) break; if(argument.getEndianness() == QDltMsg::DltEndiannessLittleEndian) length = *((unsigned short*) (payload.constData()+offset)); else length = DLT_SWAP_16(*((unsigned short*) (payload.constData()+offset))); offset += sizeof(unsigned short); argument.setData(payload.mid(offset,length)); offset += length; } else { argument.setData(payload.mid(offset,pdu->byteLength)); offset += pdu->byteLength; } } msg.addArgument(argument); } } return true; } #ifndef QT5 Q_EXPORT_PLUGIN2(nonverboseplugin, NonverbosePlugin); #endif dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/0000775000175000017500000000000013001357026021421 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/textviewdialog.h0000664000175000017500000000175013001357026024634 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file textviewdialog.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef TEXTVIEWDIALOG_H #define TEXTVIEWDIALOG_H #include #include #include namespace Ui { class TextviewDialog; } class TextviewDialog : public QDialog { Q_OBJECT public: explicit TextviewDialog(QString file, QByteArray *data, QWidget *parent = 0); ~TextviewDialog(); public slots: void print(); private: Ui::TextviewDialog *ui; QPrinter printer; }; #endif // TEXTVIEWDIALOG_H dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/textviewdialog.cpp0000664000175000017500000000220413001357026025162 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file testviewdialog.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "textviewdialog.h" #include "ui_textviewdialog.h" #include TextviewDialog::TextviewDialog(QString file, QByteArray *data,QWidget *parent) : QDialog(parent), ui(new Ui::TextviewDialog) { ui->setupUi(this); setWindowTitle("Preview of "+file); ui->textBrowser->setText(*data); connect(ui->printButton, SIGNAL(clicked()),this, SLOT(print())); } TextviewDialog::~TextviewDialog() { delete ui; } void TextviewDialog::print(){ QPrintDialog dialog(&printer, this); if (dialog.exec()) { ui->textBrowser->print(&printer); } } dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/imagepreviewdialog.ui0000664000175000017500000000434013001357026025625 0ustar potyrapotyra ImagePreviewDialog true 0 0 800 600 0 0 Qt::DefaultContextMenu Dialog false false Qt::Horizontal QDialogButtonBox::Close false Print buttonBox accepted() ImagePreviewDialog accept() 248 254 157 274 buttonBox rejected() ImagePreviewDialog reject() 316 260 286 274 dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/filetransferplugin.cpp0000664000175000017500000003054313001357026026035 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file filetransferplugin.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include #include "filetransferplugin.h" #include "file.h" #include FiletransferPlugin::FiletransferPlugin() { form = NULL; dltFile = NULL; } FiletransferPlugin::~FiletransferPlugin() { } QString FiletransferPlugin::name() { return QString("Filetransfer Plugin"); } QString FiletransferPlugin::pluginVersion() { return FILETRANSFER_PLUGIN_VERSION; } QString FiletransferPlugin::pluginInterfaceVersion() { return PLUGIN_INTERFACE_VERSION; } QString FiletransferPlugin::description() { QString description("This plugin enables the user to get a list of embedded files in a dlt log and save these files to disk. "); description += ("For more informations about this plugin please have a look on the dlt filetransfer documentation (generate it with doxygen)."); return description; } QString FiletransferPlugin::error() { return errorText; } bool FiletransferPlugin::loadConfig(QString filename) { if ( filename.length() <= 0 ) { // no configuration file provided, return to default configuration config.setDefault(); // return no error errorText = ""; return true; } QFile file(filename); if (!file.open(QFile::ReadOnly | QFile::Text)) { errorText = "Can not load configuration File: "; errorText.append(filename); return false; } QXmlStreamReader xml(&file); while (!xml.atEnd()) { xml.readNext(); if(xml.isStartElement()) { if(xml.name() == QString("TAG_FLST")) { config.setFlstTag( xml.readElementText() ); } if(xml.name() == QString("TAG_FLDA")) { config.setFldaTag( xml.readElementText() ); } if(xml.name() == QString("TAG_FLFI")) { config.setFlfiTag( xml.readElementText() ); } if(xml.name() == QString("TAG_FLER")) { config.setFlerTag( xml.readElementText() ); } if(xml.name() == QString("TAG_FLAPPID")) { config.setFlAppIdTag( xml.readElementText() ); } if(xml.name() == QString("TAG_FLCTID")) { config.setFlCtIdTag( xml.readElementText() ); } } } if (xml.hasError()) { QMessageBox::warning(0, QString("XML Parser error"), xml.errorString()); } file.close(); return true; } bool FiletransferPlugin::saveConfig(QString /*filename*/) { return true; } QStringList FiletransferPlugin::infoConfig() { QStringList list; list.append("TAG_FLAPPID: "+ config.getFlAppIdTag()); list.append("TAG_FLCTID: "+ config.getFlCtIdTag()); list.append("TAG_FLST: "+ config.getFlstTag()); list.append("TAG_FLDA: "+ config.getFldaTag()); list.append("TAG_FLFI: "+ config.getFlfiTag()); list.append("TAG_FLER: "+ config.getFlerTag()); return list; } QWidget* FiletransferPlugin::initViewer() { form = new Form(); return form; } void FiletransferPlugin::selectedIdxMsg(int , QDltMsg &) { //empty. Implemented because derived plugin interface functions are virtual. } void FiletransferPlugin::selectedIdxMsgDecoded(int , QDltMsg &){ //empty. Implemented because derived plugin interface functions are virtual. } void FiletransferPlugin::initFileStart(QDltFile *file){ dltFile = file; form->getTreeWidget()->clear(); form->clearSelectedFiles(); } void FiletransferPlugin::initMsg(int index, QDltMsg &msg){ updateFiletransfer(index,msg); } void FiletransferPlugin::initMsgDecoded(int , QDltMsg &){ //empty. Implemented because derived plugin interface functions are virtual. } void FiletransferPlugin::initFileFinish(){ //empty. Implemented because derived plugin interface functions are virtual. } void FiletransferPlugin::updateFileStart(){ //empty. Implemented because derived plugin interface functions are virtual. } void FiletransferPlugin::updateMsg(int index, QDltMsg &msg){ updateFiletransfer(index,msg); } void FiletransferPlugin::updateMsgDecoded(int , QDltMsg &){ //empty. Implemented because derived plugin interface functions are virtual. } void FiletransferPlugin::updateFileFinish(){ } void FiletransferPlugin::updateFiletransfer(int index, QDltMsg &msg) { QDltArgument msgFirstArgument; QDltArgument msgLastArgument; if(!dltFile) return; if(msg.getType() != QDltMsg::DltTypeLog) return; if(config.getFlAppIdTag().compare(msg.getApid()) != 0 || config.getFlCtIdTag().compare(msg.getCtid()) != 0) return; if(!msg.getArgument(PROTOCOL_ALL_STARTFLAG,msgFirstArgument)) return; if(msgFirstArgument.toString().compare(config.getFlstTag()) == 0 ) { msg.getArgument(PROTOCOL_FLST_ENDFLAG,msgLastArgument); if(msgLastArgument.toString().compare(config.getFlstTag()) == 0) { doFLST(&msg); } return; } if(msgFirstArgument.toString().compare(config.getFldaTag()) == 0 ) { msg.getArgument(PROTOCOL_FLDA_ENDFLAG,msgLastArgument); if(msgLastArgument.toString().compare(config.getFldaTag()) == 0) { doFLDA(index,&msg); } return; } if(msgFirstArgument.toString().compare(config.getFlfiTag()) == 0 ) { msg.getArgument(PROTOCOL_FLFI_ENDFLAG,msgLastArgument); if(msgLastArgument.toString().compare(config.getFlfiTag()) == 0) { doFLFI(&msg); } return; } if(msgFirstArgument.toString().compare(config.getFlfiTag()) == 0 ) { msg.getArgument(PROTOCOL_FLIF_ENDFLAG,msgLastArgument); if(msgLastArgument.toString().compare(config.getFlfiTag()) == 0) { doFLIF(&msg); } return; } if (msgFirstArgument.toString().compare(config.getFlerTag()) == 0 ) { msg.getArgument(PROTOCOL_FLER_ENDFLAG,msgLastArgument); if(msgLastArgument.toString().compare(config.getFlerTag()) == 0) { doFLER(&msg); } return; } } void FiletransferPlugin::doFLST(QDltMsg *msg){ QDltArgument argument; msg->getArgument(PROTOCOL_FLST_FILEID,argument); File *file = new File(dltFile,0); file->setFlags( Qt::ItemIsUserCheckable | Qt::ItemIsSelectable | Qt::ItemIsEnabled ); file->setCheckState(COLUMN_CHECK, Qt::Unchecked); msg->getArgument(PROTOCOL_FLST_FILEID,argument); file->setFileSerialNumber(argument.toString()); msg->getArgument(PROTOCOL_FLST_FILENAME,argument); file->setFilename(argument.toString()); msg->getArgument(PROTOCOL_FLST_FILEDATE,argument); file->setFileCreationDate(argument.toString()); msg->getArgument(PROTOCOL_FLST_SIZE,argument); file->setSizeInBytes(argument.toString()); msg->getArgument(PROTOCOL_FLST_PACKAGES,argument); file->setPackages(argument.toString()); msg->getArgument(PROTOCOL_FLST_BUFFERSIZE,argument); file->setBuffersize(argument.toString()); QList result = form->getTreeWidget()->findItems(file->getFileSerialNumber(),Qt::MatchExactly | Qt::MatchRecursive,COLUMN_FILEID); if(result.isEmpty()){ form->getTreeWidget()->addTopLevelItem(file); } else { int index = form->getTreeWidget()->indexOfTopLevelItem(result.at(0)); form->getTreeWidget()->takeTopLevelItem(index); form->getTreeWidget()->addTopLevelItem(file); } } void FiletransferPlugin::doFLDA(int index,QDltMsg *msg){ QDltArgument argument; msg->getArgument(PROTOCOL_FLDA_FILEID,argument); QList result = form->getTreeWidget()->findItems(argument.toString(),Qt::MatchExactly | Qt::MatchRecursive,COLUMN_FILEID); if(result.isEmpty()) { //Transfer for this file started before sending FLST } else { File *file = (File*)result.at(0); if(!file->isComplete()) { QDltArgument packageNumber; msg->getArgument(PROTOCOL_FLDA_PACKAGENR,packageNumber); file->setQFileIndexForPackage(packageNumber.toString(),index); } } } void FiletransferPlugin::doFLFI(QDltMsg *msg){ QDltArgument argument; msg->getArgument(PROTOCOL_FLFI_FILEID,argument); QList result = form->getTreeWidget()->findItems(argument.toString(),Qt::MatchExactly | Qt::MatchRecursive,COLUMN_FILEID); if(result.isEmpty()) { //Transfer for this file started before sending FLST } else { File *file = (File*)result.at(0); if(file->isComplete()) { file->setComplete(); } } } void FiletransferPlugin::doFLIF(QDltMsg *msg){ Q_UNUSED(msg); //empty. //not implemented yet. Would handle extended file information: file serialnumber, name ,size, creation date, number of packages } void FiletransferPlugin::doFLER(QDltMsg *msg){ QDltArgument filename; msg->getArgument(PROTOCOL_FLER_FILENAME,filename); QDltArgument errorCode1; msg->getArgument(PROTOCOL_FLER_ERRCODE1,errorCode1); QDltArgument errorCode2; msg->getArgument(PROTOCOL_FLER_ERRCODE2,errorCode2); File *file= new File(0); QList result = form->getTreeWidget()->findItems(filename.toString(),Qt::MatchExactly | Qt::MatchRecursive,COLUMN_FILENAME); if(result.isEmpty()){ form->getTreeWidget()->addTopLevelItem(file); } else { file = (File*)result.at(0); int index = form->getTreeWidget()->indexOfTopLevelItem(result.at(0)); form->getTreeWidget()->takeTopLevelItem(index); form->getTreeWidget()->addTopLevelItem(file); } file->errorHappens(filename.toString(),errorCode1.toString(),errorCode2.toString(),msg->getTimeString()); file->setFlags(Qt::NoItemFlags ); } bool FiletransferPlugin::command(QString command, QList params) { if(command.compare("export", Qt::CaseInsensitive) == 0) { if(params.length() != 1) { errorText = "Need one parameter, path to save to."; return false; } QString exp_path = params.at(0); QChar backslash('\"'); if ( exp_path.at(exp_path.length()-1) == backslash ) { exp_path.chop(1);//remove the last \", which would cause problems under windows } QDir extract_dir(QDir::fromNativeSeparators ( exp_path )); if(!extract_dir.exists()) { if (!extract_dir.mkpath(".")) { errorText = "Failed to create directory " + params.at(0); return false; } } return exportAll(extract_dir); } errorText = "Unknown command " + command; return false; } bool FiletransferPlugin::exportAll(QDir extract_dir) { QTreeWidgetItemIterator it(form->getTreeWidget(),QTreeWidgetItemIterator::NoChildren ); errorText = "Failed to save files"; bool ret = true; if(!*it) { errorText = "No filetransfer files in the loaded DLT file."; return false; } while (*it) { File *tmp = dynamic_cast(*it); if (tmp != NULL && tmp->isComplete()) { QString absolutePath = extract_dir.filePath(tmp->getFilename()); if(!tmp->saveFile(absolutePath) ){ ret = false; errorText += ", " + tmp->getFilenameOnTarget(); } else { qDebug() << "Exported: " << absolutePath; } } ++it; QApplication::processEvents(); } return ret; } #ifndef QT5 Q_EXPORT_PLUGIN2(filetransferplugin, FiletransferPlugin) #endif dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/form.h0000664000175000017500000000245013001357026022536 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file form.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef FORM_H #define FORM_H #include #include #include "file.h" namespace Ui { class Form; } class Form : public QWidget { Q_OBJECT public: explicit Form(QWidget *parent = 0); ~Form(); QTreeWidget* getTreeWidget(); void clearSelectedFiles(); private: Ui::Form *ui; int selectedFiles; public slots: void itemChanged(QTreeWidgetItem* item,int); void itemDoubleClicked ( QTreeWidgetItem * item, int column ); private slots: void sectionInTableDoubleClicked(int logicalIndex); void on_treeWidget_customContextMenuRequested(QPoint pos); void on_actionSave_triggered(); void on_saveButton_clicked(); void on_selectButton_clicked(); void on_deselectButton_clicked(); }; #endif // FORM_H dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/imagepreviewdialog.cpp0000664000175000017500000000365413001357026026001 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file imagepreviewdialog.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "imagepreviewdialog.h" #include "ui_imagepreviewdialog.h" ImagePreviewDialog::ImagePreviewDialog(QString file, QByteArray *imageData, QWidget *parent) : QDialog(parent), ui(new Ui::ImagePreviewDialog) { ui->setupUi(this); if(pixmap.loadFromData(*imageData)) { scene = new QGraphicsScene(ui->graphicsView); scene->setBackgroundBrush(Qt::lightGray); setWindowTitle("Preview of "+file); pixmapItem = scene->addPixmap(pixmap); pixmapItem->setPixmap(pixmap); ui->graphicsView->setScene(scene); ui->graphicsView->centerOn(pixmapItem); fileSupported = true; connect(ui->printButton, SIGNAL(clicked()),this, SLOT(print())); } else { fileSupported = false; } } ImagePreviewDialog::~ImagePreviewDialog() { delete ui; } bool ImagePreviewDialog::isFileSupported(){ return fileSupported; } void ImagePreviewDialog::print(){ QPrintDialog dialog(&printer, this); if (dialog.exec()) { QPainter painter(&printer); QRect rect = painter.viewport(); QSize size = pixmap.size(); size.scale(rect.size(), Qt::KeepAspectRatio); painter.setViewport(rect.x(), rect.y(), size.width(), size.height()); painter.setWindow(pixmap.rect()); painter.drawPixmap(0, 0, pixmap); } } dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/form.cpp0000664000175000017500000001503113001357026023070 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file form.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "form.h" #include "ui_form.h" #include #include #include #include "imagepreviewdialog.h" #include "textviewdialog.h" #include Form::Form(QWidget *parent) : QWidget(parent), ui(new Ui::Form) { selectedFiles=0; ui->setupUi(this); ui->treeWidget->sortByColumn(COLUMN_FILEDATE, Qt::AscendingOrder); // column/order to sort by ui->treeWidget->setSortingEnabled(true); // should cause sort on add ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu); connect(ui->treeWidget, SIGNAL(itemChanged(QTreeWidgetItem*,int)),this, SLOT(itemChanged(QTreeWidgetItem*,int))); connect(ui->treeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),this, SLOT(itemDoubleClicked(QTreeWidgetItem*,int))); connect(ui->treeWidget->header(), SIGNAL(sectionDoubleClicked(int)), this, SLOT(sectionInTableDoubleClicked(int))); } Form::~Form() { delete ui; } QTreeWidget* Form::getTreeWidget(){ return ui->treeWidget; } void Form::sectionInTableDoubleClicked(int logicalIndex){ ui->treeWidget->resizeColumnToContents(logicalIndex); } void Form::on_selectButton_clicked(){ QTreeWidgetItemIterator it(ui->treeWidget,QTreeWidgetItemIterator::NotChecked|QTreeWidgetItemIterator::NoChildren); while (*it) { File *tmp = dynamic_cast(*it); if (tmp != NULL) { if(tmp->isComplete()) { tmp->setCheckState(COLUMN_CHECK, Qt::Checked); } } ++it; } } void Form::on_deselectButton_clicked(){ QTreeWidgetItemIterator it(ui->treeWidget,QTreeWidgetItemIterator::NoChildren );//| QTreeWidgetItemIterator::Checked); while (*it) { File *tmp = dynamic_cast(*it); if (tmp != NULL) { if(tmp->isComplete()) { tmp->setCheckState(COLUMN_CHECK, Qt::Unchecked); } } ++it; } } void Form::itemChanged(QTreeWidgetItem* item,int i){ if(i == COLUMN_CHECK){ File *tmp = dynamic_cast(item); if (tmp != NULL) { if(tmp->isComplete() && (tmp->checkState(COLUMN_CHECK) == Qt::Checked) ) { selectedFiles++; } else{ tmp->setCheckState(COLUMN_CHECK, Qt::Unchecked); selectedFiles--; } } } } void Form::clearSelectedFiles(){ selectedFiles = 0; } void Form::on_saveButton_clicked(){ if(selectedFiles <= 0){ QMessageBox msgBox; msgBox.setIcon(QMessageBox::Information); msgBox.setText("No files are selected."); msgBox.setWindowTitle("Filtransfer Plugin"); msgBox.setStandardButtons(QMessageBox::Ok); msgBox.setDefaultButton(QMessageBox::Ok); msgBox.exec(); return; } QString path = QFileDialog::getExistingDirectory(this, tr("Save file to directory"), QDir::currentPath(),QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); if(path != NULL){ QTreeWidgetItemIterator it(ui->treeWidget,QTreeWidgetItemIterator::NoChildren );//| QTreeWidgetItemIterator::Checked); QString text; QString infoText; QString detailedText; QMessageBox msgBox; msgBox.setWindowTitle("Filetransfer Plugin"); bool errorOccured = false; while (*it) { File *tmp = dynamic_cast(*it); if (tmp != NULL && tmp->isComplete() && (tmp->checkState(COLUMN_CHECK) == Qt::Checked)) { QString absolutePath = path+"//"+tmp->getFilename(); if(!tmp->saveFile(absolutePath) ){ errorOccured = true; text = ("Save incomplete."); infoText ="The selected files were not saved to "+path+".\n"; detailedText += tmp->getFilenameOnTarget() + "\n"; msgBox.setIcon(QMessageBox::Critical); } } ++it; } if(!errorOccured) { msgBox.setIcon(QMessageBox::Information); text += ("Save successful."); infoText += ("All selected files were saved to "+path+".\n"); } msgBox.setText(text); msgBox.setInformativeText(infoText); msgBox.setDetailedText(detailedText); msgBox.setStandardButtons(QMessageBox::Ok); msgBox.setDefaultButton(QMessageBox::Ok); msgBox.exec(); } } void Form::itemDoubleClicked ( QTreeWidgetItem * item, int){ File *tmp = dynamic_cast(item); if (tmp != NULL && tmp->isComplete()) { ImagePreviewDialog img(tmp->getFilenameOnTarget(),tmp->getFileData(),this); if(img.isFileSupported()) { img.exec(); } else { TextviewDialog text(tmp->getFilenameOnTarget(),tmp->getFileData(),this); text.exec(); //QMessageBox::information(this,"Image Preview","Could not open file for preview. File format not supported."); } tmp->freeFile(); } } void Form::on_treeWidget_customContextMenuRequested(QPoint pos) { /* show custom pop menu for configuration */ QPoint globalPos = ui->treeWidget->mapToGlobal(pos); QMenu menu(ui->treeWidget); QAction *action; QList list = ui->treeWidget->selectedItems(); if(list.count() == 1) { action = new QAction("&Save selected file", this); connect(action, SIGNAL(triggered()), this, SLOT(on_actionSave_triggered())); menu.addAction(action); /* show popup menu */ menu.exec(globalPos); } } void Form::on_actionSave_triggered(){ QList list = ui->treeWidget->selectedItems(); if((list.count() == 1)) { on_deselectButton_clicked(); File* tmpFile = (File*)list.at(0); itemChanged(tmpFile,COLUMN_CHECK); on_saveButton_clicked(); itemChanged(tmpFile,COLUMN_CHECK); } } dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/CMakeLists.txt0000664000175000017500000000205113001357026024157 0ustar potyrapotyra# Copyright (C) 2016, Jack S. Smith # # This file is part of GENIVI DLT-Viewer project. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # # For further information see http://www.genivi.org/. # # List of changes: # 01.Oct.2016, Jack Smith , Original Author # find_package(Qt5PrintSupport ${QT_VERSION_REQ} REQUIRED) set (CMAKE_AUTOUIC ON) # cmake 2.8.12 doesn't have AUTOUIC ?? QT5_WRAP_UI( UI_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/form.ui ${CMAKE_CURRENT_SOURCE_DIR}/imagepreviewdialog.ui ${CMAKE_CURRENT_SOURCE_DIR}/textviewdialog.ui ) add_library(filetransferplugin MODULE filetransferplugin.cpp form.cpp file.cpp imagepreviewdialog.cpp textviewdialog.cpp configuration.cpp ${UI_HEADERS}) target_link_libraries(filetransferplugin qdlt Qt5::Widgets Qt5::PrintSupport ) install(TARGETS filetransferplugin DESTINATION deploy/plugins) dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/filetransferplugin.pro0000664000175000017500000000141113001357026026043 0ustar potyrapotyra# include global settings for all DLT Viewer Plugins include( ../plugin.pri ) greaterThan(QT_VER_MAJ, 4) { QT += printsupport } # Put intermediate files in the build directory MOC_DIR = build/moc OBJECTS_DIR = build/obj RCC_DIR = build/rcc UI_DIR = build/ui # target name TARGET = $$qtLibraryTarget(filetransferplugin) # plugin header files HEADERS += \ filetransferplugin.h \ form.h \ file.h \ imagepreviewdialog.h \ textviewdialog.h \ globals.h \ configuration.h # plugin source files SOURCES += \ filetransferplugin.cpp \ form.cpp \ file.cpp \ imagepreviewdialog.cpp \ textviewdialog.cpp \ configuration.cpp # plugin forms FORMS += \ form.ui \ imagepreviewdialog.ui \ textviewdialog.ui dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/configuration.cpp0000664000175000017500000000230413001357026024773 0ustar potyrapotyra#include "configuration.h" using namespace std; Configuration::Configuration() { setDefault(); } Configuration::~Configuration() { } QString Configuration::getFlstTag() {return tagFLST;} QString Configuration::getFldaTag() {return tagFLDA;} QString Configuration::getFlfiTag() {return tagFLFI;} QString Configuration::getFlerTag() {return tagFLER;} QString Configuration::getFlifTag() {return tagFLIF;} QString Configuration::getFlAppIdTag() {return tagFLAppId;} QString Configuration::getFlCtIdTag() {return tagFLCtId;} void Configuration::setFlstTag(QString newTag) { tagFLST = newTag; } void Configuration::setFldaTag(QString newTag) { tagFLDA = newTag; } void Configuration::setFlfiTag(QString newTag) { tagFLFI = newTag; } void Configuration::setFlerTag(QString newTag) { tagFLER = newTag; } void Configuration::setFlifTag(QString newTag) { tagFLIF = newTag; } void Configuration::setFlAppIdTag(QString newTag) { tagFLAppId = newTag; } void Configuration::setFlCtIdTag(QString newTag) { tagFLCtId = newTag; } void Configuration::setDefault() { tagFLST = "FLST"; tagFLDA = "FLDA"; tagFLFI = "FLFI"; tagFLER = "FLER"; tagFLIF = "FLIF"; tagFLAppId = "SYS"; tagFLCtId = "FILE"; } dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/file.h0000664000175000017500000000371713001357026022521 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file file.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef FILE_H #define FILE_H #include #include #include #include #include "globals.h" #include "qdlt.h" class File : public QTreeWidgetItem { public: File(); File(QDltFile *qfile,QTreeWidgetItem *parent=0); ~File(); QString getFilename(); QString getFilenameOnTarget(); QString getFileSerialNumber(); QString getFileCreationDate(); unsigned int getPackages(); unsigned int getReceivedPackages(); unsigned int getSizeInBytes(); unsigned int getBufferSize(); void setFilename(QString f); void setFileCreationDate(QString f); void setFileSerialNumber(QString s); void setPackages(QString p); void increaseReceivedPackages(); void setSizeInBytes(QString s); void setBuffersize(QString b); void setComplete(); void freeFile(); void errorHappens(QString filename, QString errorCode1, QString errorCode2, QString time); bool isComplete(); void setQFileIndexForPackage(QString packageNumber, int index); bool saveFile(QString newFile); QByteArray* getFileData(); private: QString filenameWithPath; QString fileCreationDate; unsigned int fileSerialNumber; unsigned int packages; unsigned int receivedPackages; unsigned int sizeInBytes; unsigned int buffer; QList *dltFileIndex; QDltFile *dltFile; QByteArray *fileData; }; #endif // FILE_H dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/file.cpp0000664000175000017500000001147313001357026023052 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file file.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "file.h" #include #include #include using namespace std; File::File():QTreeWidgetItem() { fileSerialNumber = 0; packages = 0; receivedPackages = 0; sizeInBytes = 0; buffer = 0; dltFileIndex = NULL; dltFile = NULL; fileData = NULL; } File::File(QDltFile *qfile,QTreeWidgetItem *parent):QTreeWidgetItem(parent) { receivedPackages = 0; fileSerialNumber = 0; packages = 0; receivedPackages = 0; sizeInBytes = 0; buffer = 0; dltFileIndex = NULL; dltFile = qfile; fileData = NULL; this->setText(COLUMN_STATUS, "Incomplete"); this->setTextColor(COLUMN_STATUS,Qt::white); this->setBackgroundColor(COLUMN_STATUS,Qt::red); this->setText(COLUMN_RECPACKAGES, "0"); } File::~File() { } QString File::getFilename(){ QStringList pathList = filenameWithPath.split("/"); return pathList.last(); } QString File::getFileCreationDate(){ return fileCreationDate; } QString File::getFilenameOnTarget(){ return filenameWithPath; } QString File::getFileSerialNumber(){ QString str; str.append(QString("%1").arg(fileSerialNumber)); return str; } unsigned int File:: getPackages(){ return packages; } unsigned int File::getReceivedPackages(){ return receivedPackages; } unsigned int File::getSizeInBytes(){ return sizeInBytes; } unsigned int File::getBufferSize(){ return buffer; } void File::setFilename(QString f){ filenameWithPath = f; this->setText(COLUMN_FILENAME, filenameWithPath); } void File::setFileCreationDate(QString f){ fileCreationDate = f; this->setText(COLUMN_FILEDATE, fileCreationDate); } void File::setFileSerialNumber(QString s){ fileSerialNumber = s.toInt(); this->setText(COLUMN_FILEID, s); } void File::setPackages(QString p){ packages = p.toInt(); dltFileIndex = new QList[packages]; this->setText(COLUMN_PACKAGES, p); } void File::increaseReceivedPackages(){ receivedPackages++; QString str; str.append(QString("%1").arg(receivedPackages)); this->setText(COLUMN_RECPACKAGES, str); } void File::setSizeInBytes(QString s){ sizeInBytes = s.toInt(); this->setText(COLUMN_SIZE, s); } void File::setBuffersize(QString b){ buffer = b.toInt(); this->setText(COLUMN_BUFFERSIZE, b); } void File::setComplete(){ this->setText(COLUMN_STATUS, "Complete"); this->setBackgroundColor(COLUMN_STATUS,Qt::green); this->setTextColor(COLUMN_STATUS,Qt::black); } void File::errorHappens(QString filename, QString errorCode1, QString errorCode2, QString time){ setFilename(filename); fileSerialNumber = 1; packages = 2; receivedPackages = 3; sizeInBytes = 4; buffer = 5; QString str = errorCode1+", "+errorCode2; this->setText(COLUMN_FILEID,str); this->setText(COLUMN_FILEDATE,time); this->setText(COLUMN_STATUS, "ERROR"); this->setTextColor(COLUMN_STATUS,Qt::white); this->setBackgroundColor(COLUMN_STATUS,Qt::red); } bool File::isComplete(){ return receivedPackages == packages; } void File::setQFileIndexForPackage(QString packageNumber, int index){ int i = packageNumber.toInt(); dltFileIndex->insert(i-1,index); increaseReceivedPackages(); } bool File::saveFile(QString newFile){ //QString newFile = directory.append("/").append(getFilename()); if(QFile::exists(newFile)){ if(!QFile::remove(newFile)){ return false; } } QByteArray *completeFileData = getFileData(); QFile file(newFile); if (!file.open(QIODevice::WriteOnly)){ freeFile(); return false; } QDataStream stream( &file ); int writtenBytes = stream.writeRawData(*completeFileData,completeFileData->size()); file.close(); freeFile(); if((unsigned int)writtenBytes != sizeInBytes){ return false; } return true; } void File::freeFile(){ delete fileData; } QByteArray* File::getFileData(){ QDltMsg msg; QByteArray msgBuffer; QDltArgument data; fileData = new QByteArray(); for(unsigned int i=0; ivalue(i); msgBuffer = dltFile->getMsg(qfileIdx); msg.setMsg(msgBuffer); msg.getArgument(PROTOCOL_FLDA_DATA,data); fileData->append(data.getData()); } return fileData; } dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/filetransferplugin.h0000664000175000017500000000462713001357026025506 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file filetransferplugin.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef DLTVIEWERPLUGIN_H #define DLTVIEWERPLUGIN_H #include #include "plugininterface.h" #include "form.h" #include "globals.h" #include "configuration.h" #define FILETRANSFER_PLUGIN_VERSION "1.0.0" class FiletransferPlugin : public QObject, QDLTPluginInterface, QDltPluginViewerInterface, QDltPluginCommandInterface { Q_OBJECT Q_INTERFACES(QDLTPluginInterface) Q_INTERFACES(QDltPluginViewerInterface) Q_INTERFACES(QDltPluginCommandInterface) #ifdef QT5 Q_PLUGIN_METADATA(IID "org.genivi.DLT.FileTransferPlugin") #endif public: FiletransferPlugin(); ~FiletransferPlugin(); /* QDLTPluginInterface interface */ QString name(); QString pluginVersion(); QString pluginInterfaceVersion(); QString description(); QString error(); bool loadConfig(QString filename); bool saveConfig(QString filename); QStringList infoConfig(); /* QDltPluginViewerInterface */ QWidget* initViewer(); void initFileStart(QDltFile *file); void initFileFinish(); void initMsg(int index, QDltMsg &msg); void initMsgDecoded(int index, QDltMsg &msg); void updateFileStart(); void updateMsg(int index, QDltMsg &msg); void updateMsgDecoded(int index, QDltMsg &msg); void updateFileFinish(); void selectedIdxMsg(int index, QDltMsg &msg); void selectedIdxMsgDecoded(int index, QDltMsg &msg); void updateFiletransfer(int index, QDltMsg &msg); void show(bool value); /* QDltPluginCommandInterface */ bool command(QString command, QList params); bool exportAll(QDir extract_dir); private: Form *form; QDltFile *dltFile; QString errorText; void doFLST(QDltMsg *msg); void doFLDA(int index, QDltMsg *msg); void doFLFI(QDltMsg *msg); void doFLIF(QDltMsg *msg); void doFLER(QDltMsg *msg); Configuration config; }; #endif // DLTVIEWERPLUGIN_H dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/globals.h0000664000175000017500000000312313001357026023214 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file globals.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef GLOBALS_H #define GLOBALS_H #define COLUMN_FILEID 0 #define COLUMN_FILENAME 1 #define COLUMN_FILEDATE 2 #define COLUMN_STATUS 3 #define COLUMN_CHECK 4 #define COLUMN_SIZE 5 #define COLUMN_PACKAGES 6 #define COLUMN_RECPACKAGES 7 #define COLUMN_BUFFERSIZE 8 #define PROTOCOL_FLST_STARTFLAG 0 #define PROTOCOL_FLST_FILEID 1 #define PROTOCOL_FLST_FILENAME 2 #define PROTOCOL_FLST_FILEDATE 4 #define PROTOCOL_FLST_SIZE 3 #define PROTOCOL_FLST_PACKAGES 5 #define PROTOCOL_FLST_BUFFERSIZE 6 #define PROTOCOL_FLST_ENDFLAG 7 #define PROTOCOL_FLDA_STARTFLAG 0 #define PROTOCOL_FLDA_FILEID 1 #define PROTOCOL_FLDA_PACKAGENR 2 #define PROTOCOL_FLDA_DATA 3 #define PROTOCOL_FLDA_ENDFLAG 4 #define PROTOCOL_FLFI_STARTFLAG 0 #define PROTOCOL_FLFI_FILEID 1 #define PROTOCOL_FLFI_ENDFLAG 2 #define PROTOCOL_FLER_STARTFLAG 0 #define PROTOCOL_FLER_ERRCODE1 1 #define PROTOCOL_FLER_ERRCODE2 2 #define PROTOCOL_FLER_FILENAME 3 #define PROTOCOL_FLER_ENDFLAG 4 #define PROTOCOL_FLIF_STARTFLAG 0 #define PROTOCOL_FLIF_ENDFLAG 11 #define PROTOCOL_ALL_STARTFLAG 0 #endif // GLOBALS_H dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/configuration.h0000664000175000017500000000145413001357026024445 0ustar potyrapotyra#ifndef CONFIGURATION_H #define CONFIGURATION_H #include class Configuration { public: Configuration(); ~Configuration(); QString getFlstTag(); QString getFldaTag(); QString getFlfiTag(); QString getFlerTag(); QString getFlifTag(); QString getFlAppIdTag(); QString getFlCtIdTag(); void setFlstTag(QString newTag); void setFldaTag(QString newTag); void setFlfiTag(QString newTag); void setFlerTag(QString newTag); void setFlifTag(QString newTag); void setFlAppIdTag(QString newTag); void setFlCtIdTag(QString newTag); void setDefault(); private: QString tagFLST; QString tagFLDA; QString tagFLFI; QString tagFLER; QString tagFLIF; QString tagFLAppId; QString tagFLCtId; }; #endif // CONFIGURATION_H dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/textviewdialog.ui0000664000175000017500000000366313001357026025027 0ustar potyrapotyra TextviewDialog 0 0 800 600 Dialog Qt::Horizontal QDialogButtonBox::Close Courier New 16777215 27 Print buttonBox accepted() TextviewDialog accept() 248 254 157 274 buttonBox rejected() TextviewDialog reject() 316 260 286 274 dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/imagepreviewdialog.h0000664000175000017500000000245013001357026025437 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file imagepreviewdialog.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef IMAGEPREVIEWDIALOG_H #define IMAGEPREVIEWDIALOG_H #include #include #include #include #include #include #include #include #include namespace Ui { class ImagePreviewDialog; } class ImagePreviewDialog : public QDialog { Q_OBJECT public: ImagePreviewDialog(QString file, QByteArray *imageData, QWidget *parent = 0); ~ImagePreviewDialog(); bool isFileSupported(); public slots: void print(); private: Ui::ImagePreviewDialog *ui; QGraphicsScene *scene; QPixmap pixmap; QGraphicsPixmapItem *pixmapItem; QPrinter printer; bool fileSupported; }; #endif // IMAGEPREVIEWDIALOG_H dlt-viewer-2.18.0+dfsg/plugin/filetransferplugin/form.ui0000664000175000017500000000662213001357026022731 0ustar potyrapotyra Form 0 0 729 415 Form 3 0 6 Id Filename Creation Date Status Save Size in Bytes Packages (Size/Buffersize) Received Packages Buffersize 0 0 Save all selected files 22 22 Deselect all complete files 22 22 Select all complete files 22 22 save delete dlt-viewer-2.18.0+dfsg/plugin/dummyviewerplugin/0000775000175000017500000000000013001357026021312 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/plugin/dummyviewerplugin/form.h0000775000175000017500000000166313001357026022437 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file form.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef FORM_H #define FORM_H #include namespace Ui { class Form; } class Form : public QWidget { Q_OBJECT public: explicit Form(QWidget *parent = 0); ~Form(); void setMessages(int message); void setSelectedMessage(int message); void setVerboseMessages(int message); void setNonVerboseMessages(int message); private: Ui::Form *ui; }; #endif // FORM_H dlt-viewer-2.18.0+dfsg/plugin/dummyviewerplugin/dummyviewerplugin.cpp0000775000175000017500000000672613001357026025630 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file dummyviewerplugin.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "dummyviewerplugin.h" DummyViewerPlugin::DummyViewerPlugin() { form = NULL; dltFile = NULL; counterMessages = 0; counterNonVerboseMessages = 0; counterVerboseMessages = 0; } DummyViewerPlugin::~DummyViewerPlugin() { } QString DummyViewerPlugin::name() { return QString("Dummy Viewer Plugin"); } QString DummyViewerPlugin::pluginVersion(){ return DUMMY_VIEWER_PLUGIN_VERSION; } QString DummyViewerPlugin::pluginInterfaceVersion(){ return PLUGIN_INTERFACE_VERSION; } QString DummyViewerPlugin::description() { return QString(); } QString DummyViewerPlugin::error() { return QString(); } bool DummyViewerPlugin::loadConfig(QString /* filename */) { return true; } bool DummyViewerPlugin::saveConfig(QString /* filename */) { return true; } QStringList DummyViewerPlugin::infoConfig() { return QStringList(); } QWidget* DummyViewerPlugin::initViewer() { form = new Form(); return form; } void DummyViewerPlugin::updateCounters(int , QDltMsg &msg) { if(!dltFile) return; if(msg.getMode() == QDltMsg::DltModeVerbose) { counterVerboseMessages++; } if(msg.getMode() == QDltMsg::DltModeNonVerbose) { counterNonVerboseMessages++; } } void DummyViewerPlugin::selectedIdxMsg(int index, QDltMsg &/*msg*/) { if(!dltFile) return; //qDebug() << "undecoded: " << msg.toStringPayload(); form->setSelectedMessage(index); } void DummyViewerPlugin::selectedIdxMsgDecoded(int , QDltMsg &/*msg*/){ //qDebug() << "decoded: " << msg.toStringPayload(); } void DummyViewerPlugin::initFileStart(QDltFile *file){ dltFile = file; form->setMessages(dltFile->size()); counterMessages = dltFile->size(); counterNonVerboseMessages = 0; counterVerboseMessages = 0; } void DummyViewerPlugin::initMsg(int index, QDltMsg &msg){ updateCounters(index, msg); } void DummyViewerPlugin::initMsgDecoded(int , QDltMsg &){ //empty. Implemented because derived plugin interface functions are virtual. } void DummyViewerPlugin::initFileFinish(){ form->setMessages(dltFile->size()); form->setVerboseMessages(counterVerboseMessages); form->setNonVerboseMessages(counterNonVerboseMessages); } void DummyViewerPlugin::updateFileStart(){ } void DummyViewerPlugin::updateMsg(int index, QDltMsg &msg){ if(!dltFile) return; updateCounters(index,msg); counterMessages = dltFile->size(); } void DummyViewerPlugin::updateMsgDecoded(int , QDltMsg &){ //empty. Implemented because derived plugin interface functions are virtual. } void DummyViewerPlugin::updateFileFinish(){ form->setMessages(dltFile->size()); form->setVerboseMessages(counterVerboseMessages); form->setNonVerboseMessages(counterNonVerboseMessages); } #ifndef QT5 Q_EXPORT_PLUGIN2(dummyviewerplugin, DummyViewerPlugin); #endif dlt-viewer-2.18.0+dfsg/plugin/dummyviewerplugin/form.cpp0000775000175000017500000000227513001357026022772 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file form.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "form.h" #include "ui_form.h" #include "dummyviewerplugin.h" Form::Form(QWidget *parent) : QWidget(parent), ui(new Ui::Form) { ui->setupUi(this); } Form::~Form() { delete ui; } void Form::setMessages(int message) { ui->lineEditMessages->setText(QString("%1").arg(message)); } void Form::setSelectedMessage(int message) { ui->lineEditSelectedMessage->setText(QString("%1").arg(message)); } void Form::setVerboseMessages(int message) { ui->lineEditVerboseMessages->setText(QString("%1").arg(message)); } void Form::setNonVerboseMessages(int message) { ui->lineEditNonVerboseMessages->setText(QString("%1").arg(message)); } dlt-viewer-2.18.0+dfsg/plugin/dummyviewerplugin/dummyviewerplugin.pro0000775000175000017500000000073013001357026025633 0ustar potyrapotyra# include global settings for all DLT Viewer Plugins include( ../plugin.pri ) # Put intermediate files in the build directory MOC_DIR = build/moc OBJECTS_DIR = build/obj RCC_DIR = build/rcc UI_DIR = build/ui # target name TARGET = $$qtLibraryTarget(dummyviewerplugin) # plugin header files HEADERS += \ dummyviewerplugin.h \ form.h # plugin source files SOURCES += \ dummyviewerplugin.cpp \ form.cpp # plugin forms FORMS += \ form.ui dlt-viewer-2.18.0+dfsg/plugin/dummyviewerplugin/CMakeLists.txt0000664000175000017500000000146313001357026024056 0ustar potyrapotyra# Copyright (C) 2016, Jack S. Smith # # This file is part of GENIVI DLT-Viewer project. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # # For further information see http://www.genivi.org/. # # List of changes: # 01.Oct.2016, Jack Smith , Original Author # set (CMAKE_AUTOUIC ON) # cmake 2.8.12 doesn't have AUTOUIC ?? QT5_WRAP_UI( UI_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/form.ui ) add_library(dummyviewerplugin MODULE dummyviewerplugin.cpp form.cpp ${UI_HEADERS}) target_link_libraries(dummyviewerplugin qdlt Qt5::Widgets ) install(TARGETS dummyviewerplugin DESTINATION deploy/plugins) dlt-viewer-2.18.0+dfsg/plugin/dummyviewerplugin/dummyviewerplugin.h0000775000175000017500000000411613001357026025264 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file dummyviewerplugin.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef DUMMYVIEWERPLUGIN_H #define DUMMYVIEWERPLUGIN_H #include #include "plugininterface.h" #include "form.h" #define DUMMY_VIEWER_PLUGIN_VERSION "1.0.0" class DummyViewerPlugin : public QObject, QDLTPluginInterface, QDltPluginViewerInterface { Q_OBJECT Q_INTERFACES(QDLTPluginInterface) Q_INTERFACES(QDltPluginViewerInterface) #ifdef QT5 Q_PLUGIN_METADATA(IID "org.genivi.DLT.DummyViewerPlugin") #endif public: DummyViewerPlugin(); ~DummyViewerPlugin(); /* QDLTPluginInterface interface */ QString name(); QString pluginVersion(); QString pluginInterfaceVersion(); QString description(); QString error(); bool loadConfig(QString filename); bool saveConfig(QString filename); QStringList infoConfig(); /* QDltPluginViewerInterface */ QWidget* initViewer(); void initFileStart(QDltFile *file); void initFileFinish(); void initMsg(int index, QDltMsg &msg); void initMsgDecoded(int index, QDltMsg &msg); void updateFileStart(); void updateMsg(int index, QDltMsg &msg); void updateMsgDecoded(int index, QDltMsg &msg); void updateFileFinish(); void selectedIdxMsg(int index, QDltMsg &msg); void selectedIdxMsgDecoded(int index, QDltMsg &msg); /* internal variables */ Form *form; int counterMessages; int counterNonVerboseMessages; int counterVerboseMessages; void show(bool value); void updateCounters(int index, QDltMsg &msg); private: QDltFile *dltFile; QString errorText; }; #endif // DUMMYVIEWERPLUGIN_H dlt-viewer-2.18.0+dfsg/plugin/dummyviewerplugin/form.ui0000775000175000017500000000304013001357026022614 0ustar potyrapotyra Form 0 0 309 119 Form Messages: Selected Message: Verbose Messages: Non-Verbose Messages: dlt-viewer-2.18.0+dfsg/plugin/CMakeLists.txt0000664000175000017500000000157413001357026020265 0ustar potyrapotyra# Copyright (C) 2016, Jack S. Smith # # This file is part of GENIVI DLT-Viewer project. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # # For further information see http://www.genivi.org/. # # List of changes: # 01.Oct.2016, Jack Smith , Original Author # cmake_minimum_required (VERSION 2.8.12) set (CMAKE_VERBOSE_MAKEFILE FALSE) add_subdirectory(dltviewerplugin) add_subdirectory(nonverboseplugin) add_subdirectory(filetransferplugin) add_subdirectory(dltsystemviewerplugin) add_subdirectory(dummycontrolplugin) add_subdirectory(dummyviewerplugin) add_subdirectory(dummycommandplugin) add_subdirectory(dummydecoderplugin) add_subdirectory(dltdbusplugin) add_subdirectory(dltlogstorageplugin) dlt-viewer-2.18.0+dfsg/plugin/plugin.pri0000664000175000017500000000316613001357026017536 0ustar potyrapotyra# Common project definitions for a DLT Viewer plugin # Helpers to detect QT version QT_VERSION = $$[QT_VERSION] QT_VERSION = $$split(QT_VERSION, ".") QT_VER_MAJ = $$member(QT_VERSION, 0) QT_VER_MIN = $$member(QT_VERSION, 1) *-gcc* { QMAKE_CFLAGS += -std=gnu99 QMAKE_CFLAGS += -Wall QMAKE_CFLAGS += -Wextra # Limit symbol visibility to avoid symbol clashes between different # plugins QMAKE_CXXFLAGS += -fvisibility=hidden #QMAKE_CFLAGS += -pedantic } *-g++* { QMAKE_CXXFLAGS += -std=gnu++0x QMAKE_CXXFLAGS += -Wall QMAKE_CXXFLAGS += -Wextra # Limit symbol visibility to avoid symbol clashes between different # plugins QMAKE_CXXFLAGS += -fvisibility=hidden #QMAKE_CXXFLAGS += -pedantic } # Uncomment to add debug symbols to Release build #QMAKE_CXXFLAGS_RELEASE += -g #QMAKE_CFLAGS_RELEASE += -g #QMAKE_LFLAGS_RELEASE = # Defines DEFINES += QT_VIEWER # This is a library TEMPLATE = lib # ...of type plugin CONFIG += plugin # Used QT features QT += core gui # Detect QT5 and comply to new Widget hierarchy greaterThan(QT_VER_MAJ, 4) { QT += widgets INCLUDEPATH += QtWidgets DEFINES += QT5 } # Include path INCLUDEPATH += ../../src \ ../../qdlt # Library path CONFIG(debug, debug|release) { QMAKE_LIBDIR += ../../debug } else { QMAKE_LIBDIR += ../../release } # Libraries CONFIG(debug, debug|release) { LIBS += -lqdltd } else { LIBS += -lqdlt } # Destination CONFIG(debug, debug|release) { DESTDIR = ../../debug/plugins } else { DESTDIR = ../../release/plugins } target.path = $$PREFIX/usr/share/dlt-viewer/plugins INSTALLS += target dlt-viewer-2.18.0+dfsg/plugin/plugin.pro0000775000175000017500000000035613001357026017545 0ustar potyrapotyra# TEMPLATE = subdirs CONFIG += ordered SUBDIRS += dltviewerplugin nonverboseplugin filetransferplugin dltsystemviewerplugin dummycontrolplugin dummyviewerplugin dummycommandplugin dummydecoderplugin dltdbusplugin dltlogstorageplugin dlt-viewer-2.18.0+dfsg/plugin/dltdbusplugin/0000775000175000017500000000000013001357026020376 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/plugin/dltdbusplugin/dbus.cpp0000664000175000017500000010102413001357026022035 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file dbus.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include "qdlt.h" #include "dbus.h" const char *dbus_message_type[]={"INVALID","METHOD_CALL","METHOD_RETURN","ERROR","SIGNAL"}; const char *dbus_message_type_short[]={"INVALID","C","R","ERROR","S"}; const char *dbus_field_code[]={"INVALID","PATH","INTERFACE","MEMBER","NAME","REPLY_SERIAL","DESTINATION","SENDER","SIGNATURE","UNIX_FDS"}; const char *dbus_type_string[]={"INVALID","BYTE","BOOLEAN","INT16","UINT16","INT32","UINT32","INT64","UINT64","DOUBLE","STRING","OBJECT_PATH","SIGNATURE","ARRAY","STRUCT","STRUCT_BEGIN","STRUCT_END","VARIANT","DICT_ENTRY","DICT_ENTRY_BEGIN","DICT_ENTRY_END","UNIX_FD"}; QString DltDBusParameter::getTypeString() { if(type<=DBUS_TYPE_MAX) { return QString(dbus_type_string[(int)type]); } else { return QString("invalid"); } } DltDBusDecoder::DltDBusDecoder() { endianess = 0; messageType = 0; flags = 0; version = 0; payloadLength = 0; serial = 0; arrayLength = 0; replySerial = 0; unixFds = 0; } DltDBusDecoder::~DltDBusDecoder() { } QString DltDBusDecoder::getEndianessString() { if(endianess==DBUS_ENDIANESS_LITTLE) return QString("Little Endianess"); else if(endianess==DBUS_ENDIANESS_BIG) return QString("Big Endianess"); else return QString("unknown"); } QString DltDBusDecoder::getMessageTypeString() { if(messageType<=DBUS_MESSAGE_TYPE_MAX) { return QString(dbus_message_type[messageType]); } else { return QString("invalid"); } } QString DltDBusDecoder::getMessageTypeStringShort() { if(messageType<=DBUS_MESSAGE_TYPE_MAX) { return QString(dbus_message_type_short[messageType]); } else { return QString("invalid"); } } QString DltDBusDecoder::getFlagsString() { QString text; if(flags&DBUS_FLAG_NO_REPLY_EXPECTED) text += "no reply expected "; if(flags&DBUS_FLAG_NO_AUTO_START) { if(!text.isEmpty()) text += "|"; text += "no auto start"; } return text; } QString DltDBusDecoder::getFieldCodeString(unsigned char fieldCode) { if(fieldCode<=DBUS_FIELD_CODE_MAX) { return QString(dbus_field_code[fieldCode]); } else { return QString("invalid"); } } int DltDBusDecoder::padding(uint32_t pos,int alignement) { if((pos % alignement)==0) return 0; return alignement-(pos % alignement); } bool DltDBusDecoder::decode(QByteArray &data,bool headerOnly) { if(!decodeHeader(data)) return false; if(headerOnly) return true; return decodePayload(); } bool DltDBusDecoder::decodeHeader(QByteArray &data) { int offset = 0; char* dataPtr = data.data(); // check header length if(data.size()static_cast(data.size())) { error = QString("decodeHeader: size error: message too short!"); return false; } // calculate offsets and sizes int arrayOffset = DBUS_HEADER_MAX+4; int payloadOffset = data.size()-payloadLength; int arraySize = data.size()-payloadLength-arrayOffset; // get payload payload = QByteArray((data.data())+payloadOffset,payloadLength); // move to header array dataPtr = data.data() + DBUS_HEADER_MAX + 4; offset = 0; // read all header array field parameters while(offset<(int)arrayLength) { // padding for structure element offset+=padding(offset,8); // read field code unsigned char fieldCode = 0; if(!readByte(fieldCode,dataPtr,offset,arraySize)) return false; // read variant signature QByteArray variantSignature; if(!readSignature(variantSignature,dataPtr,offset,arraySize)) return false; // check variant signature size if(variantSignature.size()!=1) { error = QString("decodeHeader: wrong variant signature size"); return false; } //qDebug() << "Field: " << offset << fieldCode << variantSignature.size() << (char)variantSignature[0]; switch (fieldCode) { case DBUS_FIELD_CODE_PATH: // 1 // OBJECT_PATH METHOD_CALL, SIGNAL The object to send a call to, or the object a signal is emitted from. The special path /org/freedesktop/DBus/Local is reserved; implementations should not send messages with this path, and the reference implementation of the bus daemon will disconnect any application that attempts to do so. // read path if(!readString(path,dataPtr,offset,arraySize)) return false; break; case DBUS_FIELD_CODE_INTERFACE: // 2 // STRING SIGNAL The interface to invoke a method call on, or that a signal is emitted from. Optional for method calls, required for signals. The special interface org.freedesktop.DBus.Local is reserved; implementations should not send messages with this interface, and the reference implementation of the bus daemon will disconnect any application that attempts to do so. // read interface name if(!readString(interfaceName,dataPtr,offset,arraySize)) return false; break; case DBUS_FIELD_CODE_MEMBER: // 3 // STRING METHOD_CALL, SIGNAL The member, either the method name or signal name. // read member if(!readString(member,dataPtr,offset,arraySize)) return false; break; case DBUS_FIELD_CODE_ERROR_NAME: // 4 // STRING ERROR The name of the error that occurred, for errors // read error name if(!readString(errorName,dataPtr,offset,arraySize)) return false; break; case DBUS_FIELD_CODE_REPLY_SERIAL: // 5 // UINT32 ERROR, METHOD_RETURN The serial number of the message this message is a reply to. (The serial number is the second UINT32 in the header.) // read reply serial if(!readUint32(replySerial,dataPtr,offset,arraySize)) return false; break; case DBUS_FIELD_CODE_DESTINATION: // 6 // STRING optional The name of the connection this message is intended for. Only used in combination with the message bus, see the section called "Message Bus Specification". // read destination if(!readString(destination,dataPtr,offset,arraySize)) return false; break; case DBUS_FIELD_CODE_SENDER: // 7 // STRING optional Unique name of the sending connection. The message bus fills in this field so it is reliable; the field is only meaningful in combination with the message bus. // read sender if(!readString(sender,dataPtr,offset,arraySize)) return false; break; case DBUS_FIELD_CODE_SIGNATURE: // 8 // SIGNATURE optional The signature of the message body. If omitted, it is assumed to be the empty signature "" (i.e. the body must be 0-length). // read signature if(!readSignature(signature,dataPtr,offset,arraySize)) return false; break; case DBUS_FIELD_CODE_UNIX_FDS: // 9 // UINT32 optional The number of Unix file descriptors that accompany the message. If omitted, it is assumed that no Unix file descriptors accompany the message. The actual file descriptors need to be transferred via platform specific mechanism out-of-band. They must be sent at the same time as part of the message itself. They may not be sent before the first byte of the message itself is transferred or after the last byte of the message itself. // read unix fds if(!readUint32(unixFds,dataPtr,offset,arraySize)) return false; break; default: error = QString("unsupported field code: %1").arg((int)fieldCode); return false; break; } offset+=padding(offset,8); } return true; } int DltDBusDecoder::indexOfCascaded(QByteArray signature,char ch, char cascade, int from) { int level = 1; // qDebug() << "indexOfCascaded: " << QString(signature.mid(from)) << ch << cascade; for(int num=from;num=payload.size()) { error = QString("decodePayloadSignature: Payload length error!"); return false; } isArray = false; if(signature[num]==(char)DBUS_TYPE_CHAR_ARRAY) { // we are in an array isArray = true; if(!readUint32(lengthArray,dataPtr,offset,maxSize)) return false; if(num >= (signature.size()-1)) { error = QString("decodePayloadSignature: Array length error!"); return false; } num++; if(num>=signature.size()) // end already reached break; // check if two dimensional array if(signature[num]==(char)DBUS_TYPE_CHAR_ARRAY) { // we are in an array int lastOffset = offset; isArray = true; if(!readUint32(lengthArray2,dataPtr,offset,maxSize)) return false; if(num >= (signature.size()-1)) { error = QString("decodePayloadSignature: Array length error!"); return false; } //qDebug() << "lengthArray:" << lengthArray << lengthArray2; lengthArray = lengthArray - (offset-lastOffset); num++; if(num>=signature.size()) // end already reached break; } } // qDebug() << "Type:" << num << lengthArray << signature[num] << offset ; if(signature[num]==(char)DBUS_TYPE_CHAR_DICT_ENTRY_BEGIN || signature[num]==(char)DBUS_TYPE_CHAR_STRUCT_BEGIN) { // first find end of dictonary int posFoundEnd; if(signature[num]==(char)DBUS_TYPE_CHAR_DICT_ENTRY_BEGIN) posFoundEnd=indexOfCascaded(signature,DBUS_TYPE_CHAR_DICT_ENTRY_END,DBUS_TYPE_CHAR_DICT_ENTRY_BEGIN,num+1); else posFoundEnd=indexOfCascaded(signature,DBUS_TYPE_CHAR_STRUCT_END,DBUS_TYPE_CHAR_STRUCT_BEGIN,num+1); if(posFoundEnd==-1) { if(signature[num]==(char)DBUS_TYPE_CHAR_DICT_ENTRY_BEGIN) error = QString("decodePayloadSignature: Dictonary end not found!"); else error = QString("decodePayloadSignature: Struct end not found!"); return false; } if(!isArray) { // this is no array offset+=padding(offset,8); if(signature[num]==(char)DBUS_TYPE_CHAR_DICT_ENTRY_BEGIN) { parameter.setType(DBUS_TYPE_DICT_ENTRY); parameter.setValue(QVariant(QString('{'))); } else { parameter.setType(DBUS_TYPE_STRUCT); parameter.setValue(QVariant(QString('('))); } parameters.append(parameter); if(!decodePayloadSignature(signature.mid(num+1,posFoundEnd-num-1),dataPtr,offset,maxSize)) return false; if(signature[num]==(char)DBUS_TYPE_CHAR_DICT_ENTRY_BEGIN) { parameter.setType(DBUS_TYPE_DICT_ENTRY); parameter.setValue(QVariant(QString('}'))); } else { parameter.setType(DBUS_TYPE_STRUCT); parameter.setValue(QVariant(QString(')'))); } parameters.append(parameter); } else { // this is an array int lastOffset = offset; offset+=padding(offset,8); parameter.setType(DBUS_TYPE_ARRAY); parameter.setValue(QVariant(QString('['))); parameters.append(parameter); while(offset < static_cast(lastOffset+lengthArray)) { offset+=padding(offset,8); if(signature[num]==(char)DBUS_TYPE_CHAR_DICT_ENTRY_BEGIN) { parameter.setType(DBUS_TYPE_DICT_ENTRY); parameter.setValue(QVariant(QString('{'))); } else { parameter.setType(DBUS_TYPE_STRUCT); parameter.setValue(QVariant(QString('('))); } parameters.append(parameter); if(!decodePayloadSignature(signature.mid(num+1,posFoundEnd-num-1),dataPtr,offset,maxSize)) return false; if(signature[num]==(char)DBUS_TYPE_CHAR_DICT_ENTRY_BEGIN) { parameter.setType(DBUS_TYPE_DICT_ENTRY); parameter.setValue(QVariant(QString('}'))); } else { parameter.setType(DBUS_TYPE_STRUCT); parameter.setValue(QVariant(QString(')'))); } parameters.append(parameter); } parameter.setType(DBUS_TYPE_ARRAY); parameter.setValue(QVariant(QString(']'))); parameters.append(parameter); } num+=posFoundEnd-num+1; } else { // this is no structure or dictionary if(!isArray) { // this no array if(!decodePayloadParameter(signature[num],dataPtr,offset,payload.size())) return false; } else { // this is an array int lastOffset = offset; parameter.setType(DBUS_TYPE_ARRAY); parameter.setValue(QVariant(QString('['))); parameters.append(parameter); while(offset < static_cast(lastOffset+lengthArray)) { if(!decodePayloadParameter(signature[num],dataPtr,offset,payload.size())) return false; } parameter.setType(DBUS_TYPE_ARRAY); parameter.setValue(QVariant(QString(']'))); parameters.append(parameter); } num++; } } return true; } bool DltDBusDecoder::decodePayloadParameter(char type,char *dataPtr,int &offset,int maxSize) { DltDBusParameter parameter; switch(type) { case DBUS_TYPE_CHAR_INVALID: // 0 // (ASCII NUL) Not a valid type code, used to terminate signatures error = QString("Invalid argument!"); return false; break; case DBUS_TYPE_CHAR_BYTE: // 121 // (ASCII 'y') 8-bit unsigned integer { unsigned char data = 0; // read parameter if(!readByte(data,dataPtr,offset,maxSize)) return false; // add parameter parameter.setType(DBUS_TYPE_BYTE); parameter.setValue(QVariant(data)); parameters.append(parameter); break; } case DBUS_TYPE_CHAR_BOOLEAN: // 98 // (ASCII 'b') Boolean value, 0 is FALSE and 1 is TRUE. Everything else is invalid. { bool data; // read parameter if(!readBoolean(data,dataPtr,offset,maxSize)) return false; // add parameter parameter.setType(DBUS_TYPE_BOOLEAN); parameter.setValue(QVariant(data)); parameters.append(parameter); break; } case DBUS_TYPE_CHAR_INT16: // 110 // (ASCII 'n') 16-bit signed integer { int16_t data; // read parameter if(!readInt16(data,dataPtr,offset,maxSize)) return false; // add parameter parameter.setType(DBUS_TYPE_INT16); parameter.setValue(QVariant(data)); parameters.append(parameter); break; } case DBUS_TYPE_CHAR_UINT16: // 113 // (ASCII 'q') 16-bit unsigned integer { uint16_t data; // read parameter if(!readUint16(data,dataPtr,offset,maxSize)) return false; // add parameter parameter.setType(DBUS_TYPE_UINT16); parameter.setValue(QVariant(data)); parameters.append(parameter); break; } case DBUS_TYPE_CHAR_INT32: // 105 // (ASCII 'i') 32-bit signed integer { int32_t data; // read parameter if(!readInt32(data,dataPtr,offset,maxSize)) return false; // add parameter parameter.setType(DBUS_TYPE_INT32); parameter.setValue(QVariant(data)); parameters.append(parameter); break; } case DBUS_TYPE_CHAR_UINT32: // 117 // (ASCII 'u') 32-bit unsigned integer { uint32_t data; // read parameter if(!readUint32(data,dataPtr,offset,maxSize)) return false; // add parameter parameter.setType(DBUS_TYPE_UINT32); parameter.setValue(QVariant(data)); parameters.append(parameter); break; } case DBUS_TYPE_CHAR_INT64: // 120 // (ASCII 'x') 64-bit signed integer { int64_t data; // read parameter if(!readInt64(data,dataPtr,offset,maxSize)) return false; // add parameter parameter.setType(DBUS_TYPE_INT64); parameter.setValue(QVariant((qint64)data)); parameters.append(parameter); break; } case DBUS_TYPE_CHAR_UINT64: // 116 // (ASCII 't') 64-bit unsigned integer { uint64_t data; // read parameter if(!readUint64(data,dataPtr,offset,maxSize)) return false; // add parameter parameter.setType(DBUS_TYPE_UINT64); parameter.setValue(QVariant((quint64)data)); parameters.append(parameter); break; } case DBUS_TYPE_CHAR_DOUBLE: // 100 // (ASCII 'd') IEEE 754 double { double data; // read parameter if(!readDouble(data,dataPtr,offset,maxSize)) return false; // add parameter parameter.setType(DBUS_TYPE_DOUBLE); parameter.setValue(QVariant(data)); parameters.append(parameter); break; } case DBUS_TYPE_CHAR_STRING: // 115 // (ASCII 's') UTF-8 string (must be valid UTF-8). Must be nul terminated and contain no other nul bytes. { QString data; // read parameter if(!readString(data,dataPtr,offset,maxSize)) return false; // add parameter parameter.setType(DBUS_TYPE_STRING); parameter.setValue(QVariant(data)); parameters.append(parameter); break; } case DBUS_TYPE_CHAR_OBJECT_PATH: // 111 // (ASCII 'o') Name of an object instance { QString data; // read parameter if(!readString(data,dataPtr,offset,maxSize)) return false; // add parameter parameter.setType(DBUS_TYPE_OBJECT_PATH); parameter.setValue(QVariant(data)); parameters.append(parameter); break; } case DBUS_TYPE_CHAR_SIGNATURE: // 103 // (ASCII 'g') A type signature { QByteArray data; // read parameter if(!readSignature(data,dataPtr,offset,maxSize)) return false; // add parameter parameter.setType(DBUS_TYPE_SIGNATURE); parameter.setValue(QVariant(QString(data))); parameters.append(parameter); break; } case DBUS_TYPE_CHAR_ARRAY: // 97 // (ASCII 'a') Array error = QString("Multi dimension array not supported yet!"); return false; break; case DBUS_TYPE_CHAR_STRUCT: // 114 // (ASCII 'r'), error = QString("Struct type r invalid!"); return false; break; case DBUS_TYPE_CHAR_STRUCT_BEGIN: // 40 // (ASCII '('), error = QString("Struct not supported yet!"); return false; break; case DBUS_TYPE_CHAR_STRUCT_END: // 41 // (ASCII ')') Struct; type code 114 'r' is reserved for use in bindings and implementations to represent the general concept of a struct, and must not appear in signatures used on D-Bus. error = QString("Struct not supported yet!"); return false; break; case DBUS_TYPE_CHAR_VARIANT: // 118 // (ASCII 'v') Variant type (the type of the value is part of the value itself) { QByteArray data; // read parameter if(!readSignature(data,dataPtr,offset,maxSize)) return false; // add parameter parameter.setType(DBUS_TYPE_VARIANT); parameter.setValue(QVariant(QString(data))); parameters.append(parameter); if(!decodePayloadSignature(data,dataPtr,offset,maxSize)) return false; break; } case DBUS_TYPE_CHAR_DICT_ENTRY: // 101 // (ASCII 'e'), error = QString("Dictonary entry type e invalid!"); return false; break; case DBUS_TYPE_CHAR_DICT_ENTRY_BEGIN: // 123 // (ASCII '{'), error = QString("Dictonary not supported yet!"); return false; break; case DBUS_TYPE_CHAR_DICT_ENTRY_END: // 125 // (ASCII '}') Entry in a dict or map (array of key-value pairs). Type code 101 'e' is reserved for use in bindings and implementations to represent the general concept of a dict or dict-entry, and must not appear in signatures used on D-Bus. error = QString("Dictonary not supported yet!"); return false; break; case DBUS_TYPE_CHAR_UNIX_FD: // 104 // (ASCII 'h') Unix file descriptor { uint32_t data; // read parameter if(!readUint32(data,dataPtr,offset,maxSize)) return false; // add parameter parameter.setType(DBUS_TYPE_UNIX_FD); parameter.setValue(QVariant(data)); parameters.append(parameter); break; } default: break; } return true; } bool DltDBusDecoder::readString(QString &data,char *dataPtr,int &offset,int maxSize) { // calculate padding bytes int paddingBytes = padding(offset,4); // check if padding bytes fits size if((offset+paddingBytes) > maxSize) { error = QString("readString: length check error"); return false; } // increase offset by padding bytes offset += paddingBytes; // check if length fits size if((offset+4) > maxSize) { error = QString("readString: length check error"); return false; } // read length of string uint32_t length = (*((uint32_t*)(dataPtr+offset))); // increase offset by length offset += 4; // check if length fits size, including termination byte zero if(static_cast(offset+length+1) > maxSize) { error = QString("readString: length check error"); return false; } // read string //data = QString::fromLatin1(dataPtr+offset,length); data= QString::fromUtf8(QByteArray(dataPtr+offset,length)); // increase offset by size plus termination byte zero offset+=length+1; // everything worked fine return true; } bool DltDBusDecoder::readSignature(QByteArray &data,char *dataPtr,int &offset,int maxSize) { // check if length fits size if((offset+1) > maxSize) { error = QString("readSignature: length check error"); return false; } // read length of string unsigned char length = (*((unsigned char*)(dataPtr+offset))); // increase offset by length offset += 1; // check if length fits size, including termination byte zero if((offset+length+1) > maxSize) { error = QString("readSignature: length check error"); return false; } // read string data = QByteArray(dataPtr+offset,length); // increase offset by size plus termination byte zero offset+=length+1; // everything worked fine return true; } bool DltDBusDecoder::readByte(unsigned char &data,char *dataPtr,int &offset,int maxSize) { // check if length fits size if((offset+1) > maxSize) { error = QString("readByte: length check error"); return false; } // read byte data = (*((unsigned char*)(dataPtr+offset))); // increase offset by size offset+=1; // everything worked fine return true; } bool DltDBusDecoder::readBoolean(bool &data,char *dataPtr,int &offset,int maxSize) { // calculate padding bytes int paddingBytes = padding(offset,4); // check if padding bytes fits size if((offset+paddingBytes) > maxSize) { error = QString("readString: length check error"); return false; } // increase offset by padding bytes offset += paddingBytes; // check if length fits size if((offset+4) > maxSize) { error = QString("readByte: length check error"); return false; } // read uint32, convert to bool data = (bool)(*((uint32_t*)(dataPtr+offset))); // increase offset by size offset+=4; // everything worked fine return true; } bool DltDBusDecoder::readInt16(int16_t &data,char *dataPtr,int &offset,int maxSize) { // calculate padding bytes int paddingBytes = padding(offset,2); // check if padding bytes fits size if((offset+paddingBytes) > maxSize) { error = QString("readString: length check error"); return false; } // increase offset by padding bytes offset += paddingBytes; // check if length fits size if((offset+2) > maxSize) { error = QString("readByte: length check error"); return false; } // read int16 data = (*((int16_t*)(dataPtr+offset))); // increase offset by size offset+=2; // everything worked fine return true; } bool DltDBusDecoder::readUint16(uint16_t &data,char *dataPtr,int &offset,int maxSize) { // calculate padding bytes int paddingBytes = padding(offset,2); // check if padding bytes fits size if((offset+paddingBytes) > maxSize) { error = QString("readString: length check error"); return false; } // increase offset by padding bytes offset += paddingBytes; // check if length fits size if((offset+2) > maxSize) { error = QString("readByte: length check error"); return false; } // read uint16 data = (*((uint16_t*)(dataPtr+offset))); // increase offset by size offset+=2; // everything worked fine return true; } bool DltDBusDecoder::readInt32(int32_t &data,char *dataPtr,int &offset,int maxSize) { // calculate padding bytes int paddingBytes = padding(offset,4); // check if padding bytes fits size if((offset+paddingBytes) > maxSize) { error = QString("readString: length check error"); return false; } // increase offset by padding bytes offset += paddingBytes; // check if length fits size if((offset+4) > maxSize) { error = QString("readByte: length check error"); return false; } // read int32 data = (*((int32_t*)(dataPtr+offset))); // increase offset by size offset+=4; // everything worked fine return true; } bool DltDBusDecoder::readUint32(uint32_t &data,char *dataPtr,int &offset,int maxSize) { // calculate padding bytes int paddingBytes = padding(offset,4); // check if padding bytes fits size if((offset+paddingBytes) > maxSize) { error = QString("readString: length check error"); return false; } // increase offset by padding bytes offset += paddingBytes; // check if length fits size if((offset+4) > maxSize) { error = QString("readByte: length check error"); return false; } // read uint32 data = (*((uint32_t*)(dataPtr+offset))); // increase offset by size offset+=4; // everything worked fine return true; } bool DltDBusDecoder::readInt64(int64_t &data,char *dataPtr,int &offset,int maxSize) { // calculate padding bytes int paddingBytes = padding(offset,8); // check if padding bytes fits size if((offset+paddingBytes) > maxSize) { error = QString("readString: length check error"); return false; } // increase offset by padding bytes offset += paddingBytes; // check if length fits size if((offset+8) > maxSize) { error = QString("readByte: length check error"); return false; } // read int64 data = (*((int64_t*)(dataPtr+offset))); // increase offset by size offset+=8; // everything worked fine return true; } bool DltDBusDecoder::readUint64(uint64_t &data,char *dataPtr,int &offset,int maxSize) { // calculate padding bytes int paddingBytes = padding(offset,8); // check if padding bytes fits size if((offset+paddingBytes) > maxSize) { error = QString("readString: length check error"); return false; } // increase offset by padding bytes offset += paddingBytes; // check if length fits size if((offset+8) > maxSize) { error = QString("readByte: length check error"); return false; } // read uint64 data = (*((uint64_t*)(dataPtr+offset))); // increase offset by size offset+=8; // everything worked fine return true; } bool DltDBusDecoder::readDouble(double &data,char *dataPtr,int &offset,int maxSize) { // calculate padding bytes int paddingBytes = padding(offset,8); // check if padding bytes fits size if((offset+paddingBytes) > maxSize) { error = QString("readString: length check error"); return false; } // increase offset by padding bytes offset += paddingBytes; // check if length fits size if((offset+8) > maxSize) { error = QString("readByte: length check error"); return false; } // read double data = (*((double*)(dataPtr+offset))); // increase offset by size offset+=8; // everything worked fine return true; } dlt-viewer-2.18.0+dfsg/plugin/dltdbusplugin/dltdbusplugin.pro0000664000175000017500000000053013001357026023776 0ustar potyrapotyra# include global settings for all DLT Viewer Plugins include( ../plugin.pri ) # target name TARGET = $$qtLibraryTarget(dltdbusplugin) # plugin header files HEADERS += \ dltdbusplugin.h \ form.h \ dbus.h # plugin source files SOURCES += \ dltdbusplugin.cpp \ form.cpp \ dbus.cpp # plugin forms FORMS += \ form.ui dlt-viewer-2.18.0+dfsg/plugin/dltdbusplugin/form.h0000664000175000017500000000170513001357026021515 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file form.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef FORM_H #define FORM_H #include namespace Ui { class Form; } class Form : public QWidget { Q_OBJECT public: explicit Form(QWidget *parent = 0); ~Form(); void setTextBrowserDBus(QString text); void setTextBrowserHeader(QString text); void setTextBrowserPayload(QString text); void setTextBrowserPayloadHex(QString text); private: Ui::Form *ui; }; #endif // FORM_H dlt-viewer-2.18.0+dfsg/plugin/dltdbusplugin/dltdbusplugin.cpp0000664000175000017500000005317213001357026023772 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file dltdbusplugin.cpp * For further information see http://www.genivi.org/. * @licence end@ */ /* Change log * 12.04.2016 Gernot Wirschal added checking of APID in function checkIfDBusMsg * to avoid overwriting of SomeIP messages * 21.09.2016 Gernot Wirschal change loadConfig to parse xml file containing * APID/CTID pairs which are supposed to be decoded * as DBUS messages. */ #include #include #include "dltdbusplugin.h" #include "dbus.h" #include #include int check_logid( QString &tocheck, int index ) { if ( tocheck.size() > LOGIDMAXCHAR ) { QMessageBox::warning(0, QString("XML file - LOGID error"), QString("%1 with index %2 exceeds maximum of %3 characters !\nExit parsing file ...") .arg(tocheck).arg(index).arg(LOGIDMAXCHAR)); return 1; } else { return 0; } } DltDBusPlugin::DltDBusPlugin() { dltFile = 0; } DltDBusPlugin::~DltDBusPlugin() { } QString DltDBusPlugin::name() { return QString("DLT DBus Plugin"); } QString DltDBusPlugin::pluginVersion(){ return DLT_DBUS_PLUGIN_VERSION; } QString DltDBusPlugin::pluginInterfaceVersion(){ return PLUGIN_INTERFACE_VERSION; } QString DltDBusPlugin::description() { return QString(); } QString DltDBusPlugin::error() { return errorText; } bool DltDBusPlugin::loadConfig(QString filename) { QFile file(filename); QXmlStreamReader xml(&file); QString temp1; config_is_loaded=false; int i=-1, j=0, xmlcontentinvalid=0; dbus_mesg_identifiers.clear(); //qDebug()<< "Enter DBus Plugin loadConfig"; if ( filename.length() <= 0 ) { // set the default config according to GENIVI APID/CTID // as given in dlt-dbus.conf on the logging device //qDebug()<< "Set default configuration"; logid[0].apid=QString("DBUS"); logid[0].ctid=QString("ALL"); dbus_mesg_identifiers << logid[0].apid << logid[0].ctid; numberof_valid_logids = 1; config_is_loaded = true; return true; } if (!file.open(QFile::ReadOnly | QFile::Text)) { errorText = "Can not load configuration File: "; errorText.append(filename); return true; } while (!xml.atEnd()) { xml.readNext(); if(xml.isStartElement()) { if(xml.name() == QString("logid")) { i++; } else if(xml.name() == QString("APID")) { if ( i>= 0) { temp1 = xml.readElementText(); if ( check_logid( temp1, i ) == 0 ) { logid[i].apid = temp1; } else // logid is not correct { //qDebug()<< "Something wrong with APID"; xmlcontentinvalid=1; break; } } } // is APID else if(xml.name() == QString("CTID")) { if ( i>= 0) { temp1 = xml.readElementText(); if ( check_logid( temp1, i ) == 0 ) { logid[i].ctid = temp1; } else // logid is not correct { //qDebug()<< "Something wrong with CTID"; xmlcontentinvalid=1; break; } } } if (xml.hasError()) { QMessageBox::warning(0, QString("XML Parser error"), QString("%1 %2").arg(xml.errorString()).arg(xml.lineNumber())); xmlcontentinvalid=1; } } if (i >= MAX_LOGIDS) { i--; QMessageBox::warning(0, QString("Warning"), QString ( "Maximum number of logids exceeded in xml file !\nLimiting logid list to %1 entries").arg(MAX_LOGIDS)); break; // so we stop loop if maxcount is reached } } // while file.close(); if (xml.hasError()) { QMessageBox::warning(0, QString("XML Parser error"), QString("%1 %2").arg(xml.errorString()).arg(xml.lineNumber())); xmlcontentinvalid=1; } if ( xmlcontentinvalid == 0 ) { for (j=0;j<=i;j++) { dbus_mesg_identifiers << logid[j].apid << logid[j].ctid; numberof_valid_logids = j; } } else { //qDebug()<< "DBus Plugin loadConfig FAIL"; return false; } config_is_loaded = true; //qDebug()<< "DBus Plugin loadConfig SUCCESS"; return true; } bool DltDBusPlugin::saveConfig(QString /*filename*/) { return true; } QStringList DltDBusPlugin::infoConfig() { //qDebug()<< "return dbus_mesg_identifiers"; return dbus_mesg_identifiers; } QWidget* DltDBusPlugin::initViewer() { form = new Form(); return form; } void DltDBusPlugin::selectedIdxMsgDecoded(int , QDltMsg &/*msg*/){ /* Show Decoded output */ } void DltDBusPlugin::selectedIdxMsg(int /*index*/, QDltMsg &msg) { QString text; QDltArgument argument; if(!checkIfDBusMsg(msg)) { form->setTextBrowserDBus("no DBus message!"); form->setTextBrowserHeader("no DBus message!"); form->setTextBrowserPayload("no DBus message!"); form->setTextBrowserPayloadHex("no DBus message!"); return; } /* decode DBus message */ msg.getArgument(1,argument); QByteArray data = argument.getData(); DltDBusDecoder dbusMsg; if(!dbusMsg.decodeHeader(data)) { form->setTextBrowserDBus(QString("Decoder error: ") + dbusMsg.getLastError()); form->setTextBrowserHeader(QString("Decoder error: ") + dbusMsg.getLastError()); form->setTextBrowserPayload(QString("Decoder error: ") + dbusMsg.getLastError()); form->setTextBrowserPayloadHex(QString("Decoder error: ") + dbusMsg.getLastError()); return; } /* DBus message header */ text += QString(""); text += QString(""); text += QString("").arg(dbusMsg.getEndianessString()); text += QString("").arg(dbusMsg.getMessageTypeString()); text += QString("").arg(dbusMsg.getFlagsString()); text += QString("").arg(dbusMsg.getVersion()); text += QString("").arg(dbusMsg.getPayloadLength()); text += QString("").arg(dbusMsg.getSerial()); text += QString("").arg(dbusMsg.getArrayLength()); text += QString("").arg(dbusMsg.getPath()); text += QString("").arg(dbusMsg.getInterface()); text += QString("").arg(dbusMsg.getMember()); text += QString("").arg(dbusMsg.getErrorName()); text += QString("").arg(dbusMsg.getReplySerial()); text += QString("").arg(dbusMsg.getDestination()); text += QString("").arg(dbusMsg.getSender()); QByteArray signature = dbusMsg.getSignature(); text += QString("").arg(msg.toAsciiTable(signature,false,false,true,256,256,false)); text += QString("").arg(dbusMsg.getUnixFds()); text += QString("
HeaderValue
Endianess%1
Message Type%1
Flags%1
Version%1
Length%1
Serial%1
ArrayLength%1
Path%1
Interface%1
Member%1
ErrorName%1
ReplySerial%1
Destination%1
Sender%1
Signature%1
UnixFds%1
"); form->setTextBrowserHeader(text); /* DBus message payload Hex*/ QByteArray payload = dbusMsg.getPayload(); text = QString("

Size: %1

").arg(payload.size()); text += msg.toAsciiTable(payload,true,true,false); form->setTextBrowserPayloadHex(text); /* decode DBus payload */ if(!dbusMsg.decodePayload()) { form->setTextBrowserDBus(QString("Decoder error: ") + dbusMsg.getLastError()); form->setTextBrowserPayload(QString("Decoder error: ") + dbusMsg.getLastError()); return; } /* DBus message payload */ text = QString(""); text += QString(""); QList parameters = dbusMsg.getParameters(); for(int num=0;num").arg(parameter.getTypeString()).arg(parameter.getValue().toString()); } text += QString("
TypeValue
%1%2
"); form->setTextBrowserPayload(text); /* DBus message overview */ text = decodeMessageToString(dbusMsg); form->setTextBrowserDBus(text); } void DltDBusPlugin::initFileStart(QDltFile *file){ dltFile = file; methods.clear(); // clear old map QMapIterator i(segmentedMessages); while (i.hasNext()) { i.next(); delete i.value(); } segmentedMessages.clear(); } void DltDBusPlugin::methodsAddMsg(QDltMsg &msg) { QDltArgument argument1,argument2; msg.getArgument(0,argument1); msg.getArgument(1,argument2); // check if single network message if(msg.getNumberOfArguments()!=2 || argument1.getTypeInfo()!=QDltArgument::DltTypeInfoRawd || argument2.getTypeInfo()!=QDltArgument::DltTypeInfoRawd) return; /* Show DBus message Decoding */ QByteArray data = argument1.getData()+argument2.getData(); DltDBusDecoder dbusMsg; QString text; if(dbusMsg.decode(data)) { if(dbusMsg.getMessageType()==DBUS_MESSAGE_TYPE_METHOD_CALL) { methods[DltDbusMethodKey(dbusMsg.getSender(),dbusMsg.getSerial())] = dbusMsg.getInterface() + "." + dbusMsg.getMember(); } } else { } } void DltDBusPlugin::segmentedMsg(QDltMsg &msg) { QDltArgument argument1,argument2; uint32_t handle; msg.getArgument(0,argument1); msg.getArgument(1,argument2); // get handle if(argument2.getTypeInfo()!=QDltArgument::DltTypeInfoUInt) { return; } handle = argument2.getValue().toUInt(); // check if this is a segmented network message if(argument1.getTypeInfo()!=QDltArgument::DltTypeInfoStrg) { return; } if(argument1.getValue().toString()=="NWST") { if(segmentedMessages.contains(handle)) { // message already exists, this should not happen return; } // add new segmented message QDltSegmentedMsg *seg = new QDltSegmentedMsg(); segmentedMessages[handle] = seg; if(seg->add(msg)) { // something went wrong qDebug() << seg->getError(); return; } } // NWST else if(argument1.getValue().toString()=="NWCH") { if(segmentedMessages.contains(handle)) { if(segmentedMessages[handle]->add(msg)) { // something went wrong qDebug() << segmentedMessages[handle]->getError(); return; } } } // NWCH else if(argument1.getValue().toString()=="NWEN") { if(segmentedMessages.contains(handle)) { if(segmentedMessages[handle]->add(msg)) { // something went wrong qDebug() << segmentedMessages[handle]->getError(); return; } if(segmentedMessages[handle]->complete()) { if(argument2.getTypeInfo()==QDltArgument::DltTypeInfoUInt) { // decode message and add method call to list uint32_t handle = argument2.getValue().toUInt(); if(segmentedMessages.contains(handle)) { if(segmentedMessages[handle]->complete()) { QByteArray data = segmentedMessages[handle]->getHeader() + segmentedMessages[handle]->getPayload() ; DltDBusDecoder dbusMsg; if(dbusMsg.decode(data)) { if(dbusMsg.getMessageType()==DBUS_MESSAGE_TYPE_METHOD_CALL) { methods[DltDbusMethodKey(dbusMsg.getSender(),dbusMsg.getSerial())] = dbusMsg.getInterface() + "." + dbusMsg.getMember(); } } } } } //qDebug() << "Complete segemented message" << segmentedMessages[handle]->getPayload().size(); } else { qDebug() << "Incomplete segemented message" << handle; } } } // NWCN } void DltDBusPlugin::initMsg(int /*index*/, QDltMsg &msg){ if(!checkIfDBusMsg(msg)) return; // add method call methodsAddMsg(msg); // add segment segmentedMsg(msg); } void DltDBusPlugin::initMsgDecoded(int , QDltMsg &){ //empty. Implemented because derived plugin interface functions are virtual. } void DltDBusPlugin::initFileFinish(){ } void DltDBusPlugin::updateFileStart(){ //empty. Implemented because derived plugin interface functions are virtual. } void DltDBusPlugin::updateMsg(int /*index*/, QDltMsg &msg){ if(!checkIfDBusMsg(msg)) return; // add method call methodsAddMsg(msg); // add segment segmentedMsg(msg); } void DltDBusPlugin::updateMsgDecoded(int , QDltMsg &){ //empty. Implemented because derived plugin interface functions are virtual. } void DltDBusPlugin::updateFileFinish(){ } bool DltDBusPlugin::isMsg(QDltMsg & msg, int triggeredByUser) { Q_UNUSED(triggeredByUser); return checkIfDBusMsg(msg); } bool DltDBusPlugin::decodeMsg(QDltMsg &msg, int triggeredByUser) { QDltArgument argument1,argument2,argument; QString text; Q_UNUSED(triggeredByUser); if(!checkIfDBusMsg(msg)) return false; msg.getArgument(0,argument1); msg.getArgument(1,argument2); // check if it is a common network message if(msg.getNumberOfArguments()==2 && argument1.getTypeInfo()==QDltArgument::DltTypeInfoRawd && argument2.getTypeInfo()==QDltArgument::DltTypeInfoRawd) { // this is a single network message QByteArray data = argument1.getData() + argument2.getData(); DltDBusDecoder dbusMsg; if(dbusMsg.decode(data)) { text += decodeMessageToString(dbusMsg); } else { text += "DBus Decoder error: " + dbusMsg.getLastError(); } msg.removeArgument(1); msg.removeArgument(0); } else if(argument1.getTypeInfo()==QDltArgument::DltTypeInfoStrg && argument1.getValue().toString()=="NWTR") { // this is a truncated network message // decode header only // this is a single network message QByteArray data = argument1.getData() + argument2.getData(); DltDBusDecoder dbusMsg; if(dbusMsg.decode(data,true)) { text += decodeMessageToString(dbusMsg,true); } else { text += "DBus Decoder error: " + dbusMsg.getLastError(); } msg.removeArgument(1); msg.removeArgument(0); } else if(argument1.getTypeInfo()==QDltArgument::DltTypeInfoStrg && argument1.getValue().toString()=="NWEN") { // this is the end of a segmented message // decode now the whole message // get handle if(argument2.getTypeInfo()==QDltArgument::DltTypeInfoUInt) { uint32_t handle = argument2.getValue().toUInt(); if(segmentedMessages.contains(handle)) { if(segmentedMessages[handle]->complete()) { // show decoded message QByteArray data = segmentedMessages[handle]->getHeader() + segmentedMessages[handle]->getPayload() ; DltDBusDecoder dbusMsg; if(dbusMsg.decode(data)) { text += decodeMessageToString(dbusMsg); } else { text += "DBus Decoder error: " + dbusMsg.getLastError(); } } else { text += "Incomplete segmented message " + QString("%1").arg(handle); } } else { text += "Unknown segmented message " + QString("%1").arg(handle); } } else { text += "Type error in segmented message"; } msg.removeArgument(1); msg.removeArgument(0); } else { // nothing to do return true; } /* Add decoded parameter*/ argument.setTypeInfo(QDltArgument::DltTypeInfoStrg); argument.setEndianness(msg.getEndianness()); argument.setOffsetPayload(0); QByteArray dataText; dataText.append(text); argument.setData(dataText); msg.addArgument(argument); return true; } QString DltDBusPlugin::stringToHtml(QString str) { str = str.replace("<","<"); str = str.replace(">",">"); return str; } bool DltDBusPlugin::checkIfDBusMsg(QDltMsg &msg) { QDltArgument argument1,argument2; int hit=0, i=0; if ( config_is_loaded == false ) { return false; } // going through the list of APID/CTID pairs to determine "DBUS messages" while ( i <= numberof_valid_logids ) { if ((msg.getApid() == logid[i].apid) && (msg.getCtid() == logid[i].ctid) ) { hit = 1; break; } i++; } if ( hit == 0) return false; // at least two arguments in network message if(msg.getType()!=QDltMsg::DltTypeNwTrace || msg.getSubtype()!=QDltMsg::DltNetworkTraceIpc || msg.getNumberOfArguments()<2) return false; msg.getArgument(0,argument1); msg.getArgument(1,argument2); // check if this is a segmented network message if(argument1.getTypeInfo()==QDltArgument::DltTypeInfoStrg && ( argument1.getValue().toString()=="NWCH" || argument1.getValue().toString()=="NWST" || argument1.getValue().toString()=="NWEN" || argument1.getValue().toString()=="NWTR")) return true; // check if it is a common network message if(msg.getNumberOfArguments()==2 && argument1.getTypeInfo()==QDltArgument::DltTypeInfoRawd && argument2.getTypeInfo()==QDltArgument::DltTypeInfoRawd) return true; // no known network message return false; } QString DltDBusPlugin::decodeMessageToString(DltDBusDecoder &dbusMsg,bool headerOnly) { QList parameters = dbusMsg.getParameters(); QString text; QString method; switch(dbusMsg.getMessageType()) { case DBUS_MESSAGE_TYPE_METHOD_CALL: text = QString("C [%1,%2] ").arg(dbusMsg.getSender()).arg(dbusMsg.getSerial()) + " " + dbusMsg.getPath() + " " + dbusMsg.getInterface()+"."+dbusMsg.getMember()+" "; break; case DBUS_MESSAGE_TYPE_METHOD_RETURN: method = methods[DltDbusMethodKey(dbusMsg.getDestination(),dbusMsg.getReplySerial())]; text = QString("R [%1,%2] ").arg(dbusMsg.getDestination()).arg(dbusMsg.getReplySerial()) + method + " "; break; case DBUS_MESSAGE_TYPE_SIGNAL: text = QString("S [%1] ").arg(dbusMsg.getSender()) + " " + dbusMsg.getPath() + " " + dbusMsg.getInterface() + "." + dbusMsg.getMember() + " "; break; default: text = dbusMsg.getMessageTypeStringShort() + " " + dbusMsg.getInterface() + "." + dbusMsg.getMember(); } if(headerOnly) { return text; } text += " ("; bool start = true; char lastType = 0; for(int num=0;numsetupUi(this); } Form::~Form() { delete ui; } void Form::setTextBrowserDBus(QString text) { ui->textBrowserDBus->setText(text); } void Form::setTextBrowserHeader(QString text) { ui->textBrowserHeader->setText(text); } void Form::setTextBrowserPayload(QString text) { ui->textBrowserPayload->setText(text); } void Form::setTextBrowserPayloadHex(QString text) { ui->textBrowserPayloadHex->setText(text); } dlt-viewer-2.18.0+dfsg/plugin/dltdbusplugin/CMakeLists.txt0000664000175000017500000000143113001357026023135 0ustar potyrapotyra# Copyright (C) 2016, Jack S. Smith # # This file is part of GENIVI DLT-Viewer project. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # # For further information see http://www.genivi.org/. # # List of changes: # 01.Oct.2016, Jack Smith , Original Author # set (CMAKE_AUTOUIC ON) # cmake 2.8.12 doesn't have AUTOUIC ?? QT5_WRAP_UI( UI_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/form.ui ) add_library(dltdbusplugin MODULE dltdbusplugin.cpp form.cpp dbus.cpp ${UI_HEADERS}) target_link_libraries(dltdbusplugin qdlt Qt5::Widgets ) install(TARGETS dltdbusplugin DESTINATION deploy/plugins) dlt-viewer-2.18.0+dfsg/plugin/dltdbusplugin/dltdbusplugin.h0000664000175000017500000000722113001357026023431 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file dltdbusplugin.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef DLTDBUSPLUGIN_H #define DLTDBUSPLUGIN_H #include #include #include #include "dbus.h" #include "plugininterface.h" #include "qdltsegmentedmsg.h" #include "form.h" #define DLT_DBUS_PLUGIN_VERSION "2.0.0" // we restrict the maximum number of APID/CTID pairs because of performance issues #define MAX_LOGIDS 10 // maximum allowed number of characters for APID/ CTID #define LOGIDMAXCHAR 4 typedef struct { QString apid; QString ctid; } s_logid; class DltDbusMethodKey { public: DltDbusMethodKey() { serial = 0; } DltDbusMethodKey(const QString &sender, const uint32_t &serial) { this->sender = sender; this->serial=serial; } QString getSender() const { return sender; } uint32_t getSerial() const { return serial; } private: QString sender; uint32_t serial; }; inline bool operator==(const DltDbusMethodKey &e1, const DltDbusMethodKey &e2) { return e1.getSender() == e2.getSender() && e1.getSerial() == e2.getSerial(); } inline uint qHash(const DltDbusMethodKey &key) { return qHash(key.getSender()) ^ key.getSerial(); } class DltDBusPlugin : public QObject, QDLTPluginInterface, QDltPluginViewerInterface, QDLTPluginDecoderInterface { Q_OBJECT Q_INTERFACES(QDLTPluginInterface) Q_INTERFACES(QDltPluginViewerInterface) Q_INTERFACES(QDLTPluginDecoderInterface) #ifdef QT5 Q_PLUGIN_METADATA(IID "org.genivi.DLT.DltDbusPlugin") #endif public: DltDBusPlugin(); ~DltDBusPlugin(); /* QDLTPluginInterface interface */ QString name(); QString pluginVersion(); QString pluginInterfaceVersion(); QString description(); QString error(); bool loadConfig(QString filename); bool saveConfig(QString filename); QStringList infoConfig(); /* QDltPluginViewerInterface */ QWidget* initViewer(); void initFileStart(QDltFile *file); void initFileFinish(); void initMsg(int index, QDltMsg &msg); void initMsgDecoded(int index, QDltMsg &msg); void updateFileStart(); void updateMsg(int index, QDltMsg &msg); void updateMsgDecoded(int index, QDltMsg &msg); void updateFileFinish(); void selectedIdxMsg(int index, QDltMsg &msg); void selectedIdxMsgDecoded(int index, QDltMsg &msg); /* QDltPluginDecoderInterface */ bool isMsg(QDltMsg &msg, int triggeredByUser); bool decodeMsg(QDltMsg &msg, int triggeredByUser); /* internal variables */ Form *form; private: void methodsAddMsg(QDltMsg &msg); void segmentedMsg(QDltMsg &msg); QString stringToHtml(QString str); bool checkIfDBusMsg(QDltMsg &msg); QString decodeMessageToString(DltDBusDecoder &dbusMsg, bool headerOnly = false); QDltFile *dltFile; QString errorText; // subsequent stringlist is used to store the APID/CTID combination // which is used to detect/select payload to be decoded QStringList dbus_mesg_identifiers; s_logid logid[MAX_LOGIDS]; int numberof_valid_logids; int countread=0; bool config_is_loaded=false; QHash methods; QMap segmentedMessages; }; #endif // DLTDBUSPLUGIN_H dlt-viewer-2.18.0+dfsg/plugin/dltdbusplugin/dbus.h0000664000175000017500000003110413001357026021503 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file dbus.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef DLT_DBUS_DECODER_H #define DLT_DBUS_DECODER_H #include #include #include #if defined(_MSC_VER) #include #else #include #endif #include "qdlt.h" #define DBUS_HEADER_ENDIANESS 0 #define DBUS_HEADER_MESSAGE_TYPE 1 #define DBUS_HEADER_FLAGS 2 #define DBUS_HEADER_VERSION 3 #define DBUS_HEADER_LENGTH 4 #define DBUS_HEADER_SERIAL 8 #define DBUS_HEADER_MAX 12 #define DBUS_ENDIANESS_LITTLE 'l' #define DBUS_ENDIANESS_BIG 'B' #define DBUS_MESSAGE_TYPE_INVALID 0 // This is an invalid type. #define DBUS_MESSAGE_TYPE_METHOD_CALL 1 // Method call. #define DBUS_MESSAGE_TYPE_METHOD_RETURN 2 // Method reply with returned data. #define DBUS_MESSAGE_TYPE_ERROR 3 // Error reply. If the first argument exists and is a string, it is an error message. #define DBUS_MESSAGE_TYPE_SIGNAL 4 // Signal emission. #define DBUS_MESSAGE_TYPE_MAX 4 #define DBUS_FLAG_NO_REPLY_EXPECTED 1 #define DBUS_FLAG_NO_AUTO_START 2 #define DBUS_FIELD_CODE_INVALID 0 // N/A not allowed Not a valid field name (error if it appears in a message) #define DBUS_FIELD_CODE_PATH 1 // OBJECT_PATH METHOD_CALL, SIGNAL The object to send a call to, or the object a signal is emitted from. The special path /org/freedesktop/DBus/Local is reserved; implementations should not send messages with this path, and the reference implementation of the bus daemon will disconnect any application that attempts to do so. #define DBUS_FIELD_CODE_INTERFACE 2 // STRING SIGNAL The interface to invoke a method call on, or that a signal is emitted from. Optional for method calls, required for signals. The special interface org.freedesktop.DBus.Local is reserved; implementations should not send messages with this interface, and the reference implementation of the bus daemon will disconnect any application that attempts to do so. #define DBUS_FIELD_CODE_MEMBER 3 // STRING METHOD_CALL, SIGNAL The member, either the method name or signal name. #define DBUS_FIELD_CODE_ERROR_NAME 4 // STRING ERROR The name of the error that occurred, for errors #define DBUS_FIELD_CODE_REPLY_SERIAL 5 // UINT32 ERROR, METHOD_RETURN The serial number of the message this message is a reply to. (The serial number is the second UINT32 in the header.) #define DBUS_FIELD_CODE_DESTINATION 6 // STRING optional The name of the connection this message is intended for. Only used in combination with the message bus, see the section called “Message Bus Specificationâ€. #define DBUS_FIELD_CODE_SENDER 7 // STRING optional Unique name of the sending connection. The message bus fills in this field so it is reliable; the field is only meaningful in combination with the message bus. #define DBUS_FIELD_CODE_SIGNATURE 8 // SIGNATURE optional The signature of the message body. If omitted, it is assumed to be the empty signature "" (i.e. the body must be 0-length). #define DBUS_FIELD_CODE_UNIX_FDS 9 // UINT32 optional The number of Unix file descriptors that accompany the message. If omitted, it is assumed that no Unix file descriptors accompany the message. The actual file descriptors need to be transferred via platform specific mechanism out-of-band. They must be sent at the same time as part of the message itself. They may not be sent before the first byte of the message itself is transferred or after the last byte of the message itself. #define DBUS_FIELD_CODE_MAX 9 #define DBUS_TYPE_CHAR_INVALID 0 // (ASCII NUL) Not a valid type code, used to terminate signatures #define DBUS_TYPE_CHAR_BYTE 121 // (ASCII 'y') 8-bit unsigned integer #define DBUS_TYPE_CHAR_BOOLEAN 98 // (ASCII 'b') Boolean value, 0 is FALSE and 1 is TRUE. Everything else is invalid. #define DBUS_TYPE_CHAR_INT16 110 // (ASCII 'n') 16-bit signed integer #define DBUS_TYPE_CHAR_UINT16 113 // (ASCII 'q') 16-bit unsigned integer #define DBUS_TYPE_CHAR_INT32 105 // (ASCII 'i') 32-bit signed integer #define DBUS_TYPE_CHAR_UINT32 117 // (ASCII 'u') 32-bit unsigned integer #define DBUS_TYPE_CHAR_INT64 120 // (ASCII 'x') 64-bit signed integer #define DBUS_TYPE_CHAR_UINT64 116 // (ASCII 't') 64-bit unsigned integer #define DBUS_TYPE_CHAR_DOUBLE 100 // (ASCII 'd') IEEE 754 double #define DBUS_TYPE_CHAR_STRING 115 // (ASCII 's') UTF-8 string (must be valid UTF-8). Must be nul terminated and contain no other nul bytes. #define DBUS_TYPE_CHAR_OBJECT_PATH 111 // (ASCII 'o') Name of an object instance #define DBUS_TYPE_CHAR_SIGNATURE 103 // (ASCII 'g') A type signature #define DBUS_TYPE_CHAR_ARRAY 97 // (ASCII 'a') Array #define DBUS_TYPE_CHAR_STRUCT 114 // (ASCII 'r'), #define DBUS_TYPE_CHAR_STRUCT_BEGIN 40 // (ASCII '('), #define DBUS_TYPE_CHAR_STRUCT_END 41 // (ASCII ')') Struct; type code 114 'r' is reserved for use in bindings and implementations to represent the general concept of a struct, and must not appear in signatures used on D-Bus. #define DBUS_TYPE_CHAR_VARIANT 118 // (ASCII 'v') Variant type (the type of the value is part of the value itself) #define DBUS_TYPE_CHAR_DICT_ENTRY 101 // (ASCII 'e'), #define DBUS_TYPE_CHAR_DICT_ENTRY_BEGIN 123 // (ASCII '{'), #define DBUS_TYPE_CHAR_DICT_ENTRY_END 125 // (ASCII '}') Entry in a dict or map (array of key-value pairs). Type code 101 'e' is reserved for use in bindings and implementations to represent the general concept of a dict or dict-entry, and must not appear in signatures used on D-Bus. #define DBUS_TYPE_CHAR_UNIX_FD 104 // (ASCII 'h') Unix file descriptor #define DBUS_TYPE_INVALID 0 // (ASCII NUL) Not a valid type code, used to terminate signatures #define DBUS_TYPE_BYTE 1 // (ASCII 'y') 8-bit unsigned integer #define DBUS_TYPE_BOOLEAN 2 // (ASCII 'b') Boolean value, 0 is FALSE and 1 is TRUE. Everything else is invalid. #define DBUS_TYPE_INT16 3 // (ASCII 'n') 16-bit signed integer #define DBUS_TYPE_UINT16 4 // (ASCII 'q') 16-bit unsigned integer #define DBUS_TYPE_INT32 5 // (ASCII 'i') 32-bit signed integer #define DBUS_TYPE_UINT32 6 // (ASCII 'u') 32-bit unsigned integer #define DBUS_TYPE_INT64 7 // (ASCII 'x') 64-bit signed integer #define DBUS_TYPE_UINT64 8 // (ASCII 't') 64-bit unsigned integer #define DBUS_TYPE_DOUBLE 9 // (ASCII 'd') IEEE 754 double #define DBUS_TYPE_STRING 10 // (ASCII 's') UTF-8 string (must be valid UTF-8). Must be nul terminated and contain no other nul bytes. #define DBUS_TYPE_OBJECT_PATH 11 // (ASCII 'o') Name of an object instance #define DBUS_TYPE_SIGNATURE 12 // (ASCII 'g') A type signature #define DBUS_TYPE_ARRAY 13 // (ASCII 'a') Array #define DBUS_TYPE_STRUCT 14 // (ASCII 'r'), #define DBUS_TYPE_STRUCT_BEGIN 15 // (ASCII '('), #define DBUS_TYPE_STRUCT_END 16 // (ASCII ')') Struct; type code 114 'r' is reserved for use in bindings and implementations to represent the general concept of a struct, and must not appear in signatures used on D-Bus. #define DBUS_TYPE_VARIANT 17 // (ASCII 'v') Variant type (the type of the value is part of the value itself) #define DBUS_TYPE_DICT_ENTRY 18 // (ASCII 'e'), #define DBUS_TYPE_DICT_ENTRY_BEGIN 19 // (ASCII '{'), #define DBUS_TYPE_DICT_ENTRY_END 20 // (ASCII '}') Entry in a dict or map (array of key-value pairs). Type code 101 'e' is reserved for use in bindings and implementations to represent the general concept of a dict or dict-entry, and must not appear in signatures used on D-Bus. #define DBUS_TYPE_UNIX_FD 21 // (ASCII 'h') Unix file descriptor #define DBUS_TYPE_MAX 21 extern const char *dbus_message_type[]; extern const char *dbus_message_type_short[]; extern const char *dbus_field_code[]; extern const char *dbus_type_string[]; class DltDBusParameter { public: DltDBusParameter() {} ~DltDBusParameter() {} char getType() { return type; } QString getTypeString(); void setType(char type) { this->type = type; } QVariant getValue() { return value; } void setValue(QVariant value) { this->value = value; } private: char type; QVariant value; }; class DltDBusDecoder { public: DltDBusDecoder(); ~DltDBusDecoder(); bool decode(QByteArray &data, bool headerOnly = false); bool decodeHeader(QByteArray &data); bool decodePayload(); unsigned char getEndianess() { return endianess; } unsigned char getMessageType() { return messageType; } unsigned char getFlags() { return flags; } unsigned char getVersion() { return version; } uint32_t getPayloadLength() { return payloadLength; } uint32_t getSerial() { return serial; } uint32_t getArrayLength() { return arrayLength; } QString getEndianessString(); QString getMessageTypeString(); QString getMessageTypeStringShort(); QString getFlagsString(); QString getFieldCodeString(unsigned char fieldCode); QString getPath() { return path; } QString getInterface() { return interfaceName; } QString getMember() { return member; } QString getErrorName() { return errorName; } uint32_t getReplySerial() { return replySerial; } QString getDestination() { return destination; } QString getSender() { return sender; } QByteArray getSignature() { return signature; } uint32_t getUnixFds() { return unixFds; } QByteArray getPayload() { return payload; } QString getLastError() { return error; } QList getParameters() { return parameters; } protected: int padding(uint32_t pos,int alignement); int indexOfCascaded(QByteArray signature,char ch, char cascade, int from = 0); bool decodePayloadSignature(QByteArray signature,char *dataPtr,int &offset,int maxSize); bool decodePayloadParameter(char type,char *dataPtr,int &offset,int maxSize); bool readString(QString &data,char *dataPtr,int &offset,int maxSize); bool readSignature(QByteArray &data,char *dataPtr,int &offset,int maxSize); bool readByte(unsigned char &data,char *dataPtr,int &offset,int maxSize); bool readBoolean(bool &data,char *dataPtr,int &offset,int maxSize); bool readInt16(int16_t &data,char *dataPtr,int &offset,int maxSize); bool readUint16(uint16_t &data,char *dataPtr,int &offset,int maxSize); bool readInt32(int32_t &data,char *dataPtr,int &offset,int maxSize); bool readUint32(uint32_t &data,char *dataPtr,int &offset,int maxSize); bool readInt64(int64_t &data,char *dataPtr,int &offset,int maxSize); bool readUint64(uint64_t &data,char *dataPtr,int &offset,int maxSize); bool readDouble(double &data,char *dataPtr,int &offset,int maxSize); private: unsigned char endianess; unsigned char messageType; unsigned char flags; unsigned char version; uint32_t payloadLength; uint32_t serial; uint32_t arrayLength; QString path; QString interfaceName; QString member; QString errorName; uint32_t replySerial; QString destination; QString sender; QByteArray signature; uint32_t unixFds; QByteArray payload; QString error; QList parameters; }; /* Gesamtlaenge: 170 Fixed Header: 12 Array Length: 4 Header+HeaderArray: 157 Payload: 10 FIXED HEADER: Endianess: 6c Message Type: 04 Flags: 01 Version: 01 Length: 0a 00 00 00 Serial: 02 00 00 00 HEADER Array: Array Length: 8d 00 00 00 (141) Byte: 01 Variant Signature: 01 6f 00 String Length: 15 00 00 00 String: 2f 6f 72 67 2f 66 72 65 65 64 65 73 6b 74 6f 70 2f 44 42 75 73 00 (/org/freedesktop/DBus) 00 00 Byte: 02 Variant Signature: 01 73 00 String Length: 14 00 00 00 String: 6f 72 67 2e 66 72 65 65 64 65 73 6b 74 6f 70 2e 44 42 75 73 00 (org.freedesktop.DBus) 00 00 00 Byte: 03 Variant Signature: 01 73 00 String Length: 0c 00 00 00 String: 4e 61 6d 65 41 63 71 75 69 72 65 64 00 NameAcquired 00 00 00 Byte: 06 Variant Signature: 01 73 00 String Length: 05 00 00 00 String: 3a 31 2e 34 33 00 :1.43 00 00 Byte: 08 Variant Signature: 01 67 00 Signature: 01 73 s 00 00 Byte: 07 Variant Signature: 01 73 00 String Length: 14 00 00 00 String: 6f 72 67 2e 66 72 65 65 64 65 73 6b 74 6f 70 2e 44 42 75 73 00 org.freedesktop.DBus 00 00 00 PAYLOAD: String Length: 05 00 00 00 String: 3a 31 2e 34 33 00 :1.43 ------dbus message-------l-----------------o-----/org/freedeskto p/DBus-----s-----org.freedesktop.DBus------s-----NameAcquired--- ---s-----:1.43-----g--s----s-----org.freedesktop.DBus--------:1. 43- **/ #endif // DLT_DBUS_DECODER_H dlt-viewer-2.18.0+dfsg/plugin/dltdbusplugin/form.ui0000664000175000017500000000651113001357026021703 0ustar potyrapotyra Form 0 0 470 224 Form QTabWidget::Rounded 0 DBus 3 3 3 3 Header 6 3 3 3 3 Payload 6 3 3 3 3 Payload Hex 3 3 3 3 dlt-viewer-2.18.0+dfsg/plugin/dltviewerplugin/0000775000175000017500000000000013001357026020742 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/plugin/dltviewerplugin/dltviewerplugin.pro0000775000175000017500000000072213001357026024714 0ustar potyrapotyra# include global settings for all DLT Viewer Plugins include( ../plugin.pri ) # Put intermediate files in the build directory MOC_DIR = build/moc OBJECTS_DIR = build/obj RCC_DIR = build/rcc UI_DIR = build/ui # target name TARGET = $$qtLibraryTarget(dltviewerplugin) # plugin header files HEADERS += \ dltviewerplugin.h \ form.h # plugin source files SOURCES += \ dltviewerplugin.cpp \ form.cpp # plugin forms FORMS += \ form.ui dlt-viewer-2.18.0+dfsg/plugin/dltviewerplugin/form.h0000775000175000017500000000203513001357026022061 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file form.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef FORM_H #define FORM_H #include namespace Ui { class Form; } class Form : public QWidget { Q_OBJECT public: explicit Form(QWidget *parent = 0); ~Form(); void setTextBrowserDetails(QString text); void setTextBrowserMessage(QString text); void setTextBrowserAscii(QString text); void setTextBrowserBinary(QString text); void setTextBrowserMixed(QString text); void setTextBrowserUncoded(QString text); private: Ui::Form *ui; }; #endif // FORM_H dlt-viewer-2.18.0+dfsg/plugin/dltviewerplugin/form.cpp0000775000175000017500000000237613001357026022424 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file form.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "form.h" #include "ui_form.h" Form::Form(QWidget *parent) : QWidget(parent), ui(new Ui::Form) { ui->setupUi(this); } Form::~Form() { delete ui; } void Form::setTextBrowserDetails(QString text) { ui->textBrowserDetails->setText(text); } void Form::setTextBrowserMessage(QString text) { ui->textBrowserMessage->setText(text); } void Form::setTextBrowserAscii(QString text) { ui->textBrowserAscii->setText(text); } void Form::setTextBrowserBinary(QString text) { ui->textBrowserBinary->setText(text); } void Form::setTextBrowserMixed(QString text) { ui->textBrowserMixed->setText(text); } void Form::setTextBrowserUncoded(QString text) { ui->textBrowserUncoded->setText(text); } dlt-viewer-2.18.0+dfsg/plugin/dltviewerplugin/CMakeLists.txt0000664000175000017500000000155413001357026023507 0ustar potyrapotyra# Copyright (C) 2016, Jack S. Smith # # This file is part of GENIVI DLT-Viewer project. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # # For further information see http://www.genivi.org/. # # List of changes: # 01.Oct.2016, Jack Smith , Original Author # set (CMAKE_AUTOUIC ON) set (CMAKE_AUTOMOC ON) # cmake 2.8.12 doesn't have AUTOUIC ?? QT5_WRAP_UI( UI_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/form.ui ) #message( STATUS "UI_HEADERS=[${UI_HEADERS}]") add_library(dltviewerplugin MODULE dltviewerplugin.cpp form.cpp ${UI_HEADERS}) target_link_libraries(dltviewerplugin qdlt Qt5::Widgets ) install(TARGETS dltviewerplugin DESTINATION deploy/plugins) dlt-viewer-2.18.0+dfsg/plugin/dltviewerplugin/dltviewerplugin.h0000775000175000017500000000367413001357026024354 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file dltviewerplugin.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef DLTVIEWERPLUGIN_H #define DLTVIEWERPLUGIN_H #include #include "plugininterface.h" #include "form.h" #define DLT_VIEWER_PLUGIN_VERSION "1.0.0" class DltViewerPlugin : public QObject, QDLTPluginInterface, QDltPluginViewerInterface { Q_OBJECT Q_INTERFACES(QDLTPluginInterface) Q_INTERFACES(QDltPluginViewerInterface) #ifdef QT5 Q_PLUGIN_METADATA(IID "org.genivi.DLT.DltViewerPlugin") #endif public: DltViewerPlugin(); ~DltViewerPlugin(); /* QDLTPluginInterface interface */ QString name(); QString pluginVersion(); QString pluginInterfaceVersion(); QString description(); QString error(); bool loadConfig(QString filename); bool saveConfig(QString filename); QStringList infoConfig(); /* QDltPluginViewerInterface */ QWidget* initViewer(); void initFileStart(QDltFile *file); void initFileFinish(); void initMsg(int index, QDltMsg &msg); void initMsgDecoded(int index, QDltMsg &msg); void updateFileStart(); void updateMsg(int index, QDltMsg &msg); void updateMsgDecoded(int index, QDltMsg &msg); void updateFileFinish(); void selectedIdxMsg(int index, QDltMsg &msg); void selectedIdxMsgDecoded(int index, QDltMsg &msg); /* internal variables */ Form *form; private: QString stringToHtml(QString str); QDltFile *dltFile; QString errorText; }; #endif // DLTVIEWERPLUGIN_H dlt-viewer-2.18.0+dfsg/plugin/dltviewerplugin/form.ui0000775000175000017500000001107413001357026022252 0ustar potyrapotyra Form 0 0 470 224 Form QTabWidget::Rounded 0 Message 6 3 3 3 3 Uncoded 6 3 3 3 3 Ascii 3 3 3 3 Binary 3 3 3 3 Mixed 3 3 3 3 Details 3 3 3 3 dlt-viewer-2.18.0+dfsg/plugin/dltviewerplugin/dltviewerplugin.cpp0000775000175000017500000001554013001357026024702 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file dltviewerplugin.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "dltviewerplugin.h" DltViewerPlugin::DltViewerPlugin() { form = NULL; dltFile = 0; } DltViewerPlugin::~DltViewerPlugin() { } QString DltViewerPlugin::name() { return QString("DLT Viewer Plugin"); } QString DltViewerPlugin::pluginVersion(){ return DLT_VIEWER_PLUGIN_VERSION; } QString DltViewerPlugin::pluginInterfaceVersion(){ return PLUGIN_INTERFACE_VERSION; } QString DltViewerPlugin::description() { return QString(); } QString DltViewerPlugin::error() { return QString(); } bool DltViewerPlugin::loadConfig(QString /*filename*/) { return true; } bool DltViewerPlugin::saveConfig(QString /*filename*/) { return true; } QStringList DltViewerPlugin::infoConfig() { return QStringList(); } QWidget* DltViewerPlugin::initViewer() { form = new Form(); return form; } void DltViewerPlugin::selectedIdxMsgDecoded(int , QDltMsg &msg){ /* Show Decoded output */ form->setTextBrowserMessage(msg.toStringHeader()+"

"+stringToHtml(msg.toStringPayload())); } void DltViewerPlugin::selectedIdxMsg(int index, QDltMsg &msg) { QString text; QDltArgument argument; //if(!dltFile) // return; /* Show Payload*/ form->setTextBrowserUncoded(msg.toStringHeader()+"

"+stringToHtml(msg.toStringPayload())); /* Show details */ text = QString(""); text += QString("

Header

"); text += QString(""); qDebug() << text; text += QString(""); text += QString(""); //text += QString("").arg(dltFile->getMsgFilterPos(index)); text += QString("").arg(index); text += QString("").arg(msg.getTimeString()).arg(msg.getMicroseconds(),6,10,QLatin1Char('0')); text += QString("").arg(msg.getTimestamp()/10000).arg(msg.getTimestamp()%10000,4,10,QLatin1Char('0')); text += QString("").arg(msg.getMessageCounter()); text += QString("").arg(msg.getEcuid()); text += QString("").arg(msg.getApid()); text += QString("").arg(msg.getCtid()); text += QString("").arg(msg.getSessionid()); text += QString("").arg(msg.getTypeString()); text += QString("").arg(msg.getSubtypeString()); text += QString("").arg(msg.getModeString()); text += QString("").arg(msg.getEndiannessString()); text += QString("").arg(msg.getNumberOfArguments()); text += QString("
IndexTimeTimestampCountEcuidApidCtidSessionIdTypeSubtypeModeEndianness#Args
%1
%1%1.%2%1.%2%1%1%1%1%1%1%1%1%1%1
"); if(msg.getType()==QDltMsg::DltTypeControl) { text += QString("

Control Message

"); text += QString(""); text += QString(""); text += QString(""); text += QString("").arg(msg.getMessageId()); text += QString("").arg(msg.getCtrlServiceIdString()); text += QString("").arg(msg.getCtrlReturnTypeString()); text += QString("
MessageIdCtrlServiceIdCtrlReturnType
%1%1%1
"); } else { text += QString("

Payload

"); text += QString(""); text += QString(""); for(int num=0;num"); if(msg.getArgument(num,argument)) { text += QString("").arg(num+1); text += QString("").arg(argument.getOffsetPayload()); text += QString("").arg(argument.getDataSize()); text += QString("").arg(argument.getTypeInfoString()); text += QString("").arg(argument.getName()); text += QString("").arg(argument.getUnit()); text += QString(""); text += QString(""); } text += QString(""); } text += QString("
IndexOffestSizeTypeInfoNameUnitTextBinary
%1%1%1%1%1%1"); // Necessary to display < and > as characters in a HTML context. // Otherwise < and > would be handled as HTML tags and not the complete payload would be displayed. text += stringToHtml(argument.toString()); text += QString(""); text += argument.toString(true); /* Binary output */ text += QString("
"); } text += QString(""); form->setTextBrowserDetails(text); /* get binary payload */ QByteArray bytes_header = msg.getHeader(); QByteArray bytes_payload = msg.getPayload(); /* Show Ascii output */ form->setTextBrowserAscii(msg.toAsciiTable(bytes_header,false,false,true,8,64)+msg.toAsciiTable(bytes_payload,false,false,true,8,64)); /* Show Binary output */ form->setTextBrowserBinary(msg.toAsciiTable(bytes_header,true,true,false)+msg.toAsciiTable(bytes_payload,true,true,false)); /* Show Mixed output */ form->setTextBrowserMixed(msg.toAsciiTable(bytes_header,true,true,true)+msg.toAsciiTable(bytes_payload,true,true,true)); } void DltViewerPlugin::initFileStart(QDltFile *file){ dltFile = file; } void DltViewerPlugin::initMsg(int /*index*/, QDltMsg & /*msg*/){ } void DltViewerPlugin::initMsgDecoded(int , QDltMsg &){ //empty. Implemented because derived plugin interface functions are virtual. } void DltViewerPlugin::initFileFinish(){ } void DltViewerPlugin::updateFileStart(){ //empty. Implemented because derived plugin interface functions are virtual. } void DltViewerPlugin::updateMsg(int /*index*/, QDltMsg &/*msg*/){ } void DltViewerPlugin::updateMsgDecoded(int , QDltMsg &){ //empty. Implemented because derived plugin interface functions are virtual. } void DltViewerPlugin::updateFileFinish(){ } QString DltViewerPlugin::stringToHtml(QString str) { str = str.replace("<","<"); str = str.replace(">",">"); return str; } #ifndef QT5 Q_EXPORT_PLUGIN2(dltviewerplugin, DltViewerPlugin); #endif dlt-viewer-2.18.0+dfsg/plugin/library.pri0000664000175000017500000000077513001357026017707 0ustar potyrapotyra# Common project definitions for a library # Defines QT -= gui TEMPLATE = lib # Include path INCLUDEPATH += # Library path CONFIG(debug, debug|release) { QMAKE_LIBDIR += ../../debug } else { QMAKE_LIBDIR += ../../release } # Libraries CONFIG(debug, debug|release) { LIBS += } else { LIBS += } # Destination CONFIG(debug, debug|release) { DESTDIR = ../../debug } else { DESTDIR = ../../release } target.path = $$PREFIX/usr/lib INSTALLS += target dlt-viewer-2.18.0+dfsg/plugin/dummycommandplugin/0000775000175000017500000000000013001357026021427 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/plugin/dummycommandplugin/dummycommandplugin.pro0000775000175000017500000000066213001357026026071 0ustar potyrapotyra# include global settings for all DLT Viewer Plugins include( ../plugin.pri ) # Put intermediate files in the build directory MOC_DIR = build/moc OBJECTS_DIR = build/obj RCC_DIR = build/rcc UI_DIR = build/ui # target name TARGET = $$qtLibraryTarget(dummycommandplugin) # plugin header files HEADERS += \ dummycommandplugin.h # plugin source files SOURCES += \ dummycommandplugin.cpp # plugin forms FORMS += dlt-viewer-2.18.0+dfsg/plugin/dummycommandplugin/dummycommandplugin.cpp0000775000175000017500000000441013001357026026046 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file dummycontrolplugin.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include "dummycommandplugin.h" DummyCommandPlugin::DummyCommandPlugin() { } DummyCommandPlugin::~DummyCommandPlugin() { } QString DummyCommandPlugin::name() { return QString("Dummy Command Plugin"); } QString DummyCommandPlugin::pluginVersion(){ return DUMMY_COMMAND_PLUGIN_VERSION; } QString DummyCommandPlugin::pluginInterfaceVersion(){ return PLUGIN_INTERFACE_VERSION; } QString DummyCommandPlugin::description() { return QString("Description of Dummy Command Plugin"); } QString DummyCommandPlugin::error() { return QString("Error from Dummy Command Plugin"); } bool DummyCommandPlugin::loadConfig(QString /* filename */) { return true; } bool DummyCommandPlugin::saveConfig(QString /* filename */) { return true; } QStringList DummyCommandPlugin::infoConfig() { return QStringList("Config info from Dummy Command Plugin"); } bool DummyCommandPlugin::command(QString command, QList params) { QFile dst("DummyCommandPlugin.txt"); QDataStream sout; if(command == "append") { if(!dst.open(QIODevice::WriteOnly|QIODevice::Append)) { return false; } } else if(command == "overwrite") { if(!dst.open(QIODevice::WriteOnly|QIODevice::Truncate)) { return false; } } sout.setDevice(&dst); for(int i=0;i < params.size();i++) { QString line(params[i] + QString("\n")); sout << line; } for(int i=0;i<100;i++) { qDebug() << "Doing nothing: " << i << "%"; QApplication::processEvents(); } dst.close(); return true; } #ifndef QT5 Q_EXPORT_PLUGIN2(dummycommandplugin, DummyCommandPlugin) #endif dlt-viewer-2.18.0+dfsg/plugin/dummycommandplugin/CMakeLists.txt0000664000175000017500000000153413001357026024172 0ustar potyrapotyra# # Copyright (C) 2016, Jack S. Smith # # This file is part of GENIVI DLT-Viewer project. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # # For further information see http://www.genivi.org/. # # List of changes: # 01.Oct.2016, Jack Smith , Original Author # # # set (CMAKE_AUTOUIC ON) # cmake 2.8.12 doesn't have AUTOUIC ?? # QT5_WRAP_UI( UI_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/form.ui ) #message( STATUS "UI_HEADERS=[${UI_HEADERS}]") add_library(dummycommandplugin MODULE dummycommandplugin.cpp ${UI_HEADERS}) target_link_libraries(dummycommandplugin qdlt Qt5::Widgets ) install(TARGETS dummycommandplugin DESTINATION deploy/plugins) dlt-viewer-2.18.0+dfsg/plugin/dummycommandplugin/dummycommandplugin.h0000775000175000017500000000266113001357026025521 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file dummycontrolplugin.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef DUMMYCONTROLPLUGIN_H #define DUMMYCONTROLPLUGIN_H #include #include "plugininterface.h" #define DUMMY_COMMAND_PLUGIN_VERSION "1.0.0" class DummyCommandPlugin : public QObject, QDLTPluginInterface, QDltPluginCommandInterface { Q_OBJECT Q_INTERFACES(QDLTPluginInterface) Q_INTERFACES(QDltPluginCommandInterface) #ifdef QT5 Q_PLUGIN_METADATA(IID "org.genivi.DLT.DummyCommandPlugin") #endif public: DummyCommandPlugin(); ~DummyCommandPlugin(); /* QDLTPluginInterface interface */ QString name(); QString pluginVersion(); QString pluginInterfaceVersion(); QString description(); QString error(); bool loadConfig(QString filename); bool saveConfig(QString filename); QStringList infoConfig(); /* QDltPluginCommandInterface */ bool command(QString command, QList params); }; #endif // DUMMYCONTROLPLUGIN_H dlt-viewer-2.18.0+dfsg/plugin/dummydecoderplugin/0000775000175000017500000000000013001357026021416 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/plugin/dummydecoderplugin/CMakeLists.txt0000664000175000017500000000144713001357026024164 0ustar potyrapotyra# Copyright (C) 2016, Jack S. Smith # # This file is part of GENIVI DLT-Viewer project. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # # For further information see http://www.genivi.org/. # # List of changes: # 01.Oct.2016, Jack Smith , Original Author # # set (CMAKE_AUTOUIC ON) # cmake 2.8.12 doesn't have AUTOUIC ?? # QT5_WRAP_UI( UI_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/form.ui ) add_library(dummydecoderplugin MODULE dummydecoderplugin.cpp ${UI_HEADERS}) target_link_libraries(dummydecoderplugin qdlt Qt5::Widgets ) install(TARGETS dummydecoderplugin DESTINATION deploy/plugins) dlt-viewer-2.18.0+dfsg/plugin/dummydecoderplugin/dummydecoderplugin.pro0000775000175000017500000000066113001357026026046 0ustar potyrapotyra# include global settings for all DLT Viewer Plugins include( ../plugin.pri ) # Put intermediate files in the build directory MOC_DIR = build/moc OBJECTS_DIR = build/obj RCC_DIR = build/rcc UI_DIR = build/ui # target name TARGET = $$qtLibraryTarget(dummydecoderplugin) # plugin header files HEADERS += \ dummydecoderplugin.h # plugin source files SOURCES += \ dummydecoderplugin.cpp # plugin forms FORMS += dlt-viewer-2.18.0+dfsg/plugin/dummydecoderplugin/dummydecoderplugin.h0000775000175000017500000000300213001357026025465 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file dummydecoderplugin.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef DUMMYDECODERPLUGIN_H #define DUMMYDECODERPLUGIN_H #include #include "plugininterface.h" #define DUMMY_DECODER_PLUGIN_VERSION "1.0.0" class DummyDecoderPlugin : public QObject, QDLTPluginInterface, QDLTPluginDecoderInterface { Q_OBJECT Q_INTERFACES(QDLTPluginInterface) Q_INTERFACES(QDLTPluginDecoderInterface) #ifdef QT5 Q_PLUGIN_METADATA(IID "org.genivi.DLT.DummyDecoderPlugin") #endif public: DummyDecoderPlugin(); ~DummyDecoderPlugin(); /* QDLTPluginInterface interface */ QString name(); QString pluginVersion(); QString pluginInterfaceVersion(); QString description(); QString error(); bool loadConfig(QString filename); bool saveConfig(QString filename); QStringList infoConfig(); /* QDltPluginDecoderInterface */ bool isMsg(QDltMsg &msg, int triggeredByUser); bool decodeMsg(QDltMsg &msg, int triggeredByUser); private: QString errorText; }; #endif // DUMMYDECODERPLUGIN_H dlt-viewer-2.18.0+dfsg/plugin/dummydecoderplugin/dummydecoderplugin.cpp0000775000175000017500000000325213001357026026027 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file dummydecoderplugin.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "dummydecoderplugin.h" DummyDecoderPlugin::DummyDecoderPlugin() { } DummyDecoderPlugin::~DummyDecoderPlugin() { } QString DummyDecoderPlugin::name() { return QString("Dummy Decoder Plugin"); } QString DummyDecoderPlugin::pluginVersion(){ return DUMMY_DECODER_PLUGIN_VERSION; } QString DummyDecoderPlugin::pluginInterfaceVersion(){ return PLUGIN_INTERFACE_VERSION; } QString DummyDecoderPlugin::description() { return QString(); } QString DummyDecoderPlugin::error() { return QString(); } bool DummyDecoderPlugin::loadConfig(QString /* filename */ ) { return true; } bool DummyDecoderPlugin::saveConfig(QString /* filename */) { return true; } QStringList DummyDecoderPlugin::infoConfig() { return QStringList(); } bool DummyDecoderPlugin::isMsg(QDltMsg & msg, int triggeredByUser) { Q_UNUSED(msg); Q_UNUSED(triggeredByUser); return false; } bool DummyDecoderPlugin::decodeMsg(QDltMsg &msg, int triggeredByUser) { Q_UNUSED(msg); Q_UNUSED(triggeredByUser); return false; } #ifndef QT5 Q_EXPORT_PLUGIN2(dummydecoderplugin, DummyDecoderPlugin); #endif dlt-viewer-2.18.0+dfsg/plugin/dltlogstorageplugin/0000775000175000017500000000000013001357026021607 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/plugin/dltlogstorageplugin/dltlogstorageplugin.pro0000664000175000017500000000116513001357026026425 0ustar potyrapotyra# include global settings for all DLT Viewer Plugins include( ../plugin.pri ) # Put intermediate files in the build directory MOC_DIR = build/moc OBJECTS_DIR = build/obj RCC_DIR = build/rcc UI_DIR = build/ui # target name TARGET = $$qtLibraryTarget(dltlogstorageplugin) # plugin header files HEADERS += \ dltlogstorageconfigcreatorplugin.h \ logstorageconfigcreatorform.h \ logstoragefilter.h # plugin source files SOURCES += \ dltlogstorageconfigcreatorplugin.cpp \ logstorageconfigcreatorform.cpp \ logstoragefilter.cpp # plugin forms FORMS += \ logstorageconfigcreatorform.ui dlt-viewer-2.18.0+dfsg/plugin/dltlogstorageplugin/CMakeLists.txt0000664000175000017500000000156413001357026024355 0ustar potyrapotyra# Copyright (C) 2016, Jack S. Smith # # This file is part of GENIVI DLT-Viewer project. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # # For further information see http://www.genivi.org/. # # List of changes: # 01.Oct.2016, Jack Smith , Original Author # set (CMAKE_AUTOUIC ON) # cmake 2.8.12 doesn't have AUTOUIC ?? QT5_WRAP_UI( UI_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/logstorageconfigcreatorform.ui ) add_library(dltlogstorageplugin MODULE dltlogstorageconfigcreatorplugin.cpp logstorageconfigcreatorform.cpp logstoragefilter.cpp ${UI_HEADERS}) target_link_libraries(dltlogstorageplugin qdlt Qt5::Widgets ) install(TARGETS dltlogstorageplugin DESTINATION deploy/plugins) dlt-viewer-2.18.0+dfsg/plugin/dltlogstorageplugin/logstoragefilter.cpp0000664000175000017500000000262313001357026025672 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2015 Advanced Driver Information Technology * * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * * This file is part of GENIVI Project Dlt Viewer. * * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Christoph Lipka ADIT 2015 * * \file logstoragefilter.c * For further information see http://www.genivi.org/. * @licence end@ */ #include "logstoragefilter.h" LogstorageFilter::LogstorageFilter() { } LogstorageFilter::LogstorageFilter(QString apid, QString ctid, QString logLevel, QString fileName, unsigned int fileSize, unsigned int noFiles) : m_apid(apid), m_ctid(ctid), m_logLevel(logLevel), m_fileName(fileName), m_fileSize(fileSize), m_noFiles(noFiles) { } QString LogstorageFilter::toText() { return QString("LogAppName=" + m_apid + "\n" + "ContextName=" + m_ctid + "\n" + "LogLevel=" + m_logLevel + "\n" + "File=" + m_fileName + "\n" + "FileSize=" + QString::number(m_fileSize) + "\n" + "NOFiles=" + QString::number(m_noFiles) + "\n"); } dlt-viewer-2.18.0+dfsg/plugin/dltlogstorageplugin/dltlogstorageconfigcreatorplugin.cpp0000664000175000017500000000625213001357026031157 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2015 Advanced Driver Information Technology * * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * * This file is part of GENIVI Project Dlt Viewer. * * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Christoph Lipka ADIT 2015 * * \file dltlogstorageconfigcreatorplugin.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "dltlogstorageconfigcreatorplugin.h" DltLogstorageConfigCreatorPlugin::DltLogstorageConfigCreatorPlugin() { } DltLogstorageConfigCreatorPlugin::~DltLogstorageConfigCreatorPlugin() { } /* Dlt Viewer plugin interface */ QString DltLogstorageConfigCreatorPlugin::name() { return QString("DLT Logstorage Config Creator Plugin"); } QString DltLogstorageConfigCreatorPlugin::pluginVersion(){ return DLT_LOGSTORAGE_CONFIG_CREATOR_PLUGIN_VERSION; } QString DltLogstorageConfigCreatorPlugin::pluginInterfaceVersion() { return PLUGIN_INTERFACE_VERSION; } QString DltLogstorageConfigCreatorPlugin::description() { return QString("DLT Viewer plugin to create and modify DLT Offline Logstorage configuration files"); } QString DltLogstorageConfigCreatorPlugin::error() { return QString(); } bool DltLogstorageConfigCreatorPlugin::loadConfig(QString /*filename*/) { return true; } bool DltLogstorageConfigCreatorPlugin::saveConfig(QString /*filename*/) { return true; } QStringList DltLogstorageConfigCreatorPlugin::infoConfig() { return QStringList(); } QWidget* DltLogstorageConfigCreatorPlugin::initViewer() { ui = new LogstorageConfigCreatorForm(); return ui; } void DltLogstorageConfigCreatorPlugin::initFileStart(QDltFile *file) { file = file; } void DltLogstorageConfigCreatorPlugin::initFileFinish() { } void DltLogstorageConfigCreatorPlugin::initMsg(int index, QDltMsg &msg) { index = index; /* not used */ msg = msg; /* not used */ } void DltLogstorageConfigCreatorPlugin::initMsgDecoded(int index, QDltMsg &msg) { index = index; /* not used */ msg = msg; /* not used */ } void DltLogstorageConfigCreatorPlugin::updateFileStart() { } void DltLogstorageConfigCreatorPlugin::updateMsg(int index, QDltMsg &msg) { index = index; /* not used */ msg = msg; /* not used */ } void DltLogstorageConfigCreatorPlugin::updateMsgDecoded(int index, QDltMsg &msg) { index = index; /* not used */ msg = msg; /* not used */ } void DltLogstorageConfigCreatorPlugin::updateFileFinish() { } void DltLogstorageConfigCreatorPlugin::selectedIdxMsg(int index, QDltMsg &msg) { index = index; /* not used */ msg = msg; /* not used */ } void DltLogstorageConfigCreatorPlugin::selectedIdxMsgDecoded(int index, QDltMsg &msg) { index = index; /* not used */ msg = msg; /* not used */ } #ifndef QT5 Q_EXPORT_PLUGIN2(dltlogstorageconfigcreatorplugin, DltLogstorageConfigCreatorPlugin); #endif // DLTLOGSTORAGECONFIGCREATORPLUGIN_H dlt-viewer-2.18.0+dfsg/plugin/dltlogstorageplugin/logstorageconfigcreatorform.h0000664000175000017500000000404613001357026027564 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2015 Advanced Driver Information Technology * * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * * This file is part of GENIVI Project Dlt Viewer. * * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Christoph Lipka ADIT 2015 * * \file dltlogstorageconfigcreatorplugin.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef LOGSTORAGECONFIGCREATORFORM_H #define LOGSTORAGECONFIGCREATORFORM_H #include #include #include #include #include #include #include #include "logstoragefilter.h" namespace Ui { class LogstorageConfigCreatorForm; } class LogstorageConfigCreatorForm : public QWidget { Q_OBJECT public: explicit LogstorageConfigCreatorForm(QWidget *parent = 0); ~LogstorageConfigCreatorForm(); protected: /* set default filter configuration */ void setFilterDefaults(); /* validate a certain filter configuration, will be called before added to filters list */ bool validateFilter(); /* remove a filter */ void remove_filter(bool update); private slots: void on_pushButton_New_clicked(); void on_pushButton_Add_clicked(); void on_pushButton_Delete_clicked(); void on_pushButton_SaveFile_clicked(); void on_pushButton_LoadFile_clicked(); void set_button_text_Add_to_Update(int idx); void set_button_text_Update_to_Add(); void load_filter(int idx); private: Ui::LogstorageConfigCreatorForm *ui; QString filterToText(QString filter) { return QString("[" + filter + "]"); } /* handle to store filter configurations */ QHash *filters; int currentFilter; }; #endif // LOGSTORAGECONFIGCREATORFORM_H dlt-viewer-2.18.0+dfsg/plugin/dltlogstorageplugin/logstoragefilter.h0000664000175000017500000000363513001357026025343 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2015 Advanced Driver Information Technology * * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * * This file is part of GENIVI Project Dlt Viewer. * * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Christoph Lipka ADIT 2015 * * \file logstoragefilter.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef LOGSTORAGEFILTER_H #define LOGSTORAGEFILTER_H #include /** * LogstorageFilter class * * Describes a certain filter configuration. */ class LogstorageFilter { public: LogstorageFilter(); LogstorageFilter(QString apid, QString ctid, QString logLevel, QString fileName, unsigned int fileSize, unsigned int noFiles); QString getApid() const { return m_apid; } void setApid(const QString &value) { m_apid = value; } QString getCtid() const { return m_ctid; } void setCtid(const QString &value) { m_ctid = value; } QString getLogLevel() const { return m_logLevel; } void setLogLevel(const QString &value) { m_logLevel = value; } QString getFileName() const { return m_fileName; } void setFileName(const QString &value) { m_fileName = value; } unsigned int getFileSize() const { return m_fileSize; } void setFileSize(unsigned int value) { m_fileSize = value; } unsigned int getNoFiles() const { return m_noFiles; } void setNoFiles(unsigned int value) { m_noFiles = value; } QString toText(); private: QString m_apid; QString m_ctid; QString m_logLevel; QString m_fileName; unsigned int m_fileSize; unsigned int m_noFiles; }; #endif // LOGSTORAGEFILTER_H dlt-viewer-2.18.0+dfsg/plugin/dltlogstorageplugin/logstorageconfigcreatorform.ui0000664000175000017500000002141013001357026027744 0ustar potyrapotyra LogstorageConfigCreatorForm 0 0 742 340 742 340 742 340 Form 12 10 721 323 461 51 461 51 File 10 20 441 29 Load a configuration file Load Qt::Horizontal 258 20 Save 461 215 16777215 16777215 Filter Configurator New filter configuration New 100 0 Shows currently edited filter Qt::Horizontal 40 20 Add filter to configuration Add Delete filter from configuration Delete Application Identifier Apid: Context Identifier Ctid: Log Level: Logfile name File Name: 30 in Bytes File Size: 50000 No of Files: 5 32762 250 321 250 321 true dlt-viewer-2.18.0+dfsg/plugin/dltlogstorageplugin/logstorageconfigcreatorform.cpp0000664000175000017500000003370713001357026030125 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2015 Advanced Driver Information Technology * * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * * This file is part of GENIVI Project Dlt Viewer. * * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Christoph Lipka ADIT 2015 * * \file logstorageconfigcreatorform.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "logstorageconfigcreatorform.h" #include "ui_logstorageconfigcreatorform.h" LogstorageConfigCreatorForm::LogstorageConfigCreatorForm(QWidget *parent) : QWidget(parent), ui(new Ui::LogstorageConfigCreatorForm), currentFilter(0) { ui->setupUi(this); // predefine FILTER0 as 1st entry of filter combobox ui->comboBox_filter->addItem("FILTER" + QString::number(currentFilter)); // fill combo box with log levels QString log_levels = "DLT_LOG_VERBOSE,DLT_LOG_DEBUG,DLT_LOG_INFO,DLT_LOG_WARN,DLT_LOG_ERROR,DLT_LOG_FATAL"; QStringList list = log_levels.split(","); foreach(QString item, list) ui->comboBox_level->addItem(item); // define some basic lineEdit validators ui->lineEdit_apid->setValidator(new QRegExpValidator( QRegExp("[a-zA-Z0-9_,]{0,20}$|[.]{1}[*]{1}"), 0)); ui->lineEdit_ctid->setValidator(new QRegExpValidator( QRegExp("[a-zA-Z0-9_,]{0,20}$|[.]{1}[*]{1}"), 0)); ui->lineEdit_fname->setValidator(new QRegExpValidator( QRegExp("[a-zA-Z0-9_-]\\S{0,20}$"), 0)); ui->lineEdit_fsize->setValidator( new QRegExpValidator( QRegExp("[1-9]\\d{0,7}$"), 0)); ui->lineEdit_nofiles->setValidator( new QRegExpValidator( QRegExp("[1-9]\\d{0,2}$"), 0)); setFilterDefaults(); // create list of filters filters = new QHash(); // connect some ui actions with functionality connect(ui->pushButton_New,SIGNAL(clicked()), SLOT(set_button_text_Update_to_Add())); connect(ui->comboBox_filter,SIGNAL(currentIndexChanged(int)), SLOT(set_button_text_Add_to_Update(int))); connect(ui->comboBox_filter, SIGNAL(currentIndexChanged(int)),SLOT(load_filter(int))); } LogstorageConfigCreatorForm::~LogstorageConfigCreatorForm() { // delete filters list if (filters != 0) { filters->clear(); delete filters; } delete ui; } void LogstorageConfigCreatorForm::set_button_text_Add_to_Update(int idx) { idx = idx; /* not used */ ui->pushButton_Add->setText(QString("Update")); } void LogstorageConfigCreatorForm::set_button_text_Update_to_Add() { ui->pushButton_Add->setText(QString("Add")); } // private QFiles void LogstorageConfigCreatorForm::on_pushButton_New_clicked() { if (validateFilter()) { currentFilter++; QString s; s.append("FILTER"); s.append(QString::number(currentFilter)); ui->comboBox_filter->addItem(s); int index = ui->comboBox_filter->findText(s); if ( index != -1 ) // -1 for not found ui->comboBox_filter->setCurrentIndex(index); setFilterDefaults(); } } void LogstorageConfigCreatorForm::remove_filter(bool update) { // remove filter config from text view / storage file ui->textEdit->moveCursor(QTextCursor::Start); ui->textEdit->find(ui->comboBox_filter->currentText()); ui->textEdit->moveCursor(QTextCursor::StartOfLine, QTextCursor::MoveAnchor); ui->textEdit->moveCursor(QTextCursor::Down, QTextCursor::KeepAnchor); ui->textEdit->moveCursor(QTextCursor::Down, QTextCursor::KeepAnchor); ui->textEdit->moveCursor(QTextCursor::Down, QTextCursor::KeepAnchor); ui->textEdit->moveCursor(QTextCursor::Down, QTextCursor::KeepAnchor); ui->textEdit->moveCursor(QTextCursor::Down, QTextCursor::KeepAnchor); ui->textEdit->moveCursor(QTextCursor::Down, QTextCursor::KeepAnchor); ui->textEdit->moveCursor(QTextCursor::Down, QTextCursor::KeepAnchor); // delete text ui->textEdit->textCursor().removeSelectedText(); // delete first empty line if (ui->comboBox_filter->itemText(0) == ui->comboBox_filter->currentText() && !update) { /* store current position in textedit */ ui->textEdit->setFocus(); QTextCursor storeCursorPos = ui->textEdit->textCursor(); ui->textEdit->moveCursor(QTextCursor::StartOfLine, QTextCursor::MoveAnchor); ui->textEdit->moveCursor(QTextCursor::Down, QTextCursor::KeepAnchor); ui->textEdit->textCursor().removeSelectedText(); ui->textEdit->textCursor().deletePreviousChar(); /* reset courser */ ui->textEdit->setTextCursor(storeCursorPos); } filters->remove(ui->comboBox_filter->currentText()); if (!update) { ui->comboBox_filter->removeItem(ui->comboBox_filter->currentIndex()); ui->textEdit->textCursor().deletePreviousChar(); } } void LogstorageConfigCreatorForm::on_pushButton_Add_clicked() { if (validateFilter()) { LogstorageFilter filter; if(filters->contains(ui->comboBox_filter->currentText())) /* remove filter */ { /* store current position in textedit */ ui->textEdit->setFocus(); QTextCursor storeCursorPos = ui->textEdit->textCursor(); remove_filter(true); filter.setApid(ui->lineEdit_apid->text()); filter.setCtid(ui->lineEdit_ctid->text()); filter.setLogLevel(ui->comboBox_level->currentText()); filter.setFileName(ui->lineEdit_fname->text()); filter.setFileSize(ui->lineEdit_fsize->text().toInt()); filter.setNoFiles(ui->lineEdit_nofiles->text().toInt()); filters->insert(ui->comboBox_filter->currentText(), filter); ui->textEdit->textCursor().insertText(filterToText(ui->comboBox_filter->currentText())); ui->textEdit->textCursor().insertText(QString("\n")); ui->textEdit->textCursor().insertText(filter.toText()); /* reset courser */ ui->textEdit->setTextCursor(storeCursorPos); } else /* add a new at the end */ { ui->textEdit->moveCursor(QTextCursor::End); filter.setApid(ui->lineEdit_apid->text()); filter.setCtid(ui->lineEdit_ctid->text()); filter.setLogLevel(ui->comboBox_level->currentText()); filter.setFileName(ui->lineEdit_fname->text()); filter.setFileSize(ui->lineEdit_fsize->text().toInt()); filter.setNoFiles(ui->lineEdit_nofiles->text().toInt()); filters->insert(ui->comboBox_filter->currentText(), filter); ui->textEdit->textCursor().insertText(filterToText(ui->comboBox_filter->currentText())); ui->textEdit->textCursor().insertText(QString("\n")); ui->textEdit->textCursor().insertText(filter.toText()); ui->textEdit->textCursor().insertText(QString("\n")); } // update "Add" to "Update" text of Add button set_button_text_Add_to_Update(0); } } void LogstorageConfigCreatorForm::on_pushButton_Delete_clicked() { remove_filter(false); // make index 0 active ui->comboBox_filter->setCurrentIndex(0); load_filter(0); } void LogstorageConfigCreatorForm::on_pushButton_SaveFile_clicked() { QString fn = QFileDialog::getSaveFileName(this, tr("Save as... (ONLY dlt_logstorage.conf is accepted by DLT Daemon)"), QString("dlt_logstorage.conf"), tr("Logstorage Conf files (*.conf)")); QFile file(fn); QFileInfo fi(file); if (!file.open(QFile::WriteOnly | QFile::Text)) { // error handling here QMessageBox msgBox; msgBox.setText("Cannot open file.(" + file.errorString() + ")"); msgBox.exec(); return; } QTextStream out(&file); out << ui->textEdit->toPlainText(); if(!file.flush()) { // error handling here QMessageBox msgBox; msgBox.setText("Flush Error.(" + file.errorString() + ")"); msgBox.exec(); } QMessageBox msgBox; msgBox.setText("File successfully saved: " + fi.absoluteFilePath()); msgBox.exec(); file.close(); } void LogstorageConfigCreatorForm::on_pushButton_LoadFile_clicked() { /* cleanup current filters */ ui->comboBox_filter->clear(); setFilterDefaults(); filters->clear(); ui->textEdit->clear(); /* Load a filter configuration from a specified file */ QString fn = QFileDialog::getOpenFileName(this, tr("Load a dlt_logstorage.conf file")); QFile file(fn); QFileInfo fi(file); if (!file.open(QFile::ReadOnly | QFile::Text)) { // error handling here QMessageBox msgBox; msgBox.setText("Cannot open file.(" + file.errorString() + ")"); msgBox.exec(); return; } QSettings settings(fi.absoluteFilePath(), QSettings::IniFormat); QStringList groups = settings.childGroups(); foreach (QString g, groups) /* get filter configurations */ { settings.beginGroup(g); ui->comboBox_filter->addItem(g); int index = ui->comboBox_filter->findText(g); if ( index != -1 ) // -1 for not found ui->comboBox_filter->setCurrentIndex(index); QString num = g; g.replace("FILTER",""); currentFilter = g.toInt(); QStringList keys = settings.childKeys(); foreach (QString k, keys) { if (k.compare("LogAppName") == 0) { ui->lineEdit_apid->setText(settings.value(k).toString()); //filter.setApid(settings.value(k).toString().toLatin1()); } else if (k.compare("ContextName") == 0) { ui->lineEdit_ctid->setText(settings.value(k).toString()); //filter.setCtid(settings.value(k).toString().toLatin1()); } else if (k.compare("LogLevel") == 0) { int index = ui->comboBox_level->findText(settings.value(k).toString()); if ( index != -1 ) // -1 for not found ui->comboBox_level->setCurrentIndex(index); else ui->comboBox_level->setCurrentIndex(3); } else if (k.compare("File") == 0) { ui->lineEdit_fname->setText(settings.value(k).toString()); } else if (k.compare("FileSize") == 0) { ui->lineEdit_fsize->setText(settings.value(k).toString()); } else if (k.compare("NOFiles") == 0) { ui->lineEdit_nofiles->setText(settings.value(k).toString()); } } on_pushButton_Add_clicked(); settings.endGroup(); } file.close(); } void LogstorageConfigCreatorForm::load_filter(int idx) { LogstorageFilter filter = filters->value(ui->comboBox_filter->currentText()); ui->lineEdit_apid->setText(filter.getApid()); ui->lineEdit_ctid->setText(filter.getCtid()); idx = ui->comboBox_level->findText(filter.getLogLevel()); if ( idx != -1 ) // -1 for not found ui->comboBox_level->setCurrentIndex(idx); ui->lineEdit_fname->setText(filter.getFileName()); ui->lineEdit_fsize->setText(QString::number(filter.getFileSize())); ui->lineEdit_nofiles->setText(QString::number(filter.getNoFiles())); } void LogstorageConfigCreatorForm::setFilterDefaults() { ui->lineEdit_apid->setText(QString("")); ui->lineEdit_ctid->setText(QString("")); int index = ui->comboBox_level->findText(QString("DLT_LOG_INFO")); if ( index != -1 ) // -1 for not found ui->comboBox_level->setCurrentIndex(index); ui->lineEdit_fname->setText(QString("")); ui->lineEdit_fsize->setText(QString("50000")); ui->lineEdit_nofiles->setText(QString("5")); } bool LogstorageConfigCreatorForm::validateFilter() { /* check for wildcards */ if(ui->lineEdit_apid->text().contains(QString(".*")) && ui->lineEdit_ctid->text().contains(".*")) { QMessageBox msgBox; msgBox.setText("Wildcard for apid and ctid is prohibited."); msgBox.exec(); ui->lineEdit_apid->setFocus(); return false; } /* check if length bigger 2 and ".*" inside */ if(ui->lineEdit_apid->text().length() > 2 && ui->lineEdit_apid->text().indexOf(QString(".")) != -1) { QMessageBox msgBox; msgBox.setText("Application Id is incorrect. Possibly . or .* within other apids."); msgBox.exec(); ui->lineEdit_apid->setFocus(); return false; } QStringList apids = ui->lineEdit_apid->text().split(QString(",")); foreach(QString s, apids) { if(s.length() < 1 || s.length() > 4) { QMessageBox msgBox; msgBox.setText("One or more Application Ids have an invalid length."); msgBox.exec(); ui->lineEdit_apid->setFocus(); return false; } } /* check if length bigger 2 and ".*" inside */ if(ui->lineEdit_ctid->text().length() > 2 && ui->lineEdit_ctid->text().indexOf(QString(".")) != -1) { QMessageBox msgBox; msgBox.setText("Context Id is incorrect. Possibly . or .* within other apids."); msgBox.exec(); ui->lineEdit_ctid->setFocus(); return false; } QStringList ctids = ui->lineEdit_ctid->text().split(QString(",")); foreach(QString s, ctids) { if(s.length() < 1 || s.length() > 4) { QMessageBox msgBox; msgBox.setText("One or more Context Ids have an invalid length."); msgBox.exec(); ui->lineEdit_ctid->setFocus(); return false; } } /* check for filename */ if(ui->lineEdit_fname->text().length() < 3) { QMessageBox msgBox; QString fn("Filename not long enough: "); fn.append(ui->lineEdit_fname->text()); msgBox.setText(fn); msgBox.exec(); ui->lineEdit_fname->setFocus(); return false; } return true; } dlt-viewer-2.18.0+dfsg/plugin/dltlogstorageplugin/dltlogstorageconfigcreatorplugin.h0000664000175000017500000000423213001357026030620 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2015 Advanced Driver Information Technology * * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * * This file is part of GENIVI Project Dlt Viewer. * * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Christoph Lipka ADIT 2015 * * \file dltlogstorageconfigcreator.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef DLTLOGSTORAGECONFIGCREATORPLUGIN_H #define DLTLOGSTORAGECONFIGCREATORPLUGIN_H #include #include "plugininterface.h" #include "logstorageconfigcreatorform.h" #define DLT_LOGSTORAGE_CONFIG_CREATOR_PLUGIN_VERSION "0.0.1" class DltLogstorageConfigCreatorPlugin : public QObject, QDLTPluginInterface, QDltPluginViewerInterface { Q_OBJECT Q_INTERFACES(QDLTPluginInterface) Q_INTERFACES(QDltPluginViewerInterface) #ifdef QT5 Q_PLUGIN_METADATA(IID "org.genivi.DLT.DltLogstorageConfigCreatorPlugin") #endif public: DltLogstorageConfigCreatorPlugin(); ~DltLogstorageConfigCreatorPlugin(); /* QDLTPluginInterface interface */ QString name(); QString pluginVersion(); QString pluginInterfaceVersion(); QString description(); QString error(); bool loadConfig(QString filename); bool saveConfig(QString filename); QStringList infoConfig(); /* QDltPluginViewerInterface */ QWidget* initViewer(); void initFileStart(QDltFile *file); void initFileFinish(); void initMsg(int index, QDltMsg &msg); void initMsgDecoded(int index, QDltMsg &msg); void updateFileStart(); void updateMsg(int index, QDltMsg &msg); void updateMsgDecoded(int index, QDltMsg &msg); void updateFileFinish(); void selectedIdxMsg(int index, QDltMsg &msg); void selectedIdxMsgDecoded(int index, QDltMsg &msg); /* internal variables */ LogstorageConfigCreatorForm *ui; }; #endif // DLTLOGSTORAGECONFIGCREATORPLUGIN_H dlt-viewer-2.18.0+dfsg/plugin/examples/0000775000175000017500000000000013001357026017334 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/plugin/examples/dbusplugin_configuration.xml0000664000175000017500000000030613001357026025160 0ustar potyrapotyra DBSY DBSY DBCN DBCN dlt-viewer-2.18.0+dfsg/plugin/examples/filetransferplugin_configuration.xml0000664000175000017500000000046613001357026026716 0ustar potyrapotyra FLST FLDA FLFI FLER SYS FILE dlt-viewer-2.18.0+dfsg/plugin/examples/nonverboseplugin_configuration.xml0000664000175000017500000005215513001357026026414 0ustar potyrapotyra projectTCB TCB 001.004.062 APP1 Application 1 CON1 Context 1 TEST Test Application CON1 Context 1 LAT Log And Trace NV NV test PDU_10_0 DLT non verbose test message. 0 OTHER PDU_11_0 Buffer near limit. Free size: 0 OTHER PDU_11_1 2 OTHER 0 PDU_12_0 Buffer size exceeded. 0 OTHER PDU_12_1 4 OTHER 0 PDU_12_2 4 OTHER 0 PDU_12_3 Process terminated. 0 OTHER PDU_13_0 Temperature measurement 0 OTHER PDU_13_1 1 OTHER 0 measurement_point PDU_13_2 4 OTHER 0 reading Kelvin PDU_14_0 Build ID: 0 OTHER PDU_14_1 0 OTHER 0 ID_10 0 OTHER 0 DLT_TYPE_LOG DLT_LOG_INFO TEST CON1 dlt_test.c 411 ID_1001 2 OTHER 0 1 DLT_TYPE_LOG DLT_LOG_WARN APP1 CON1 application_file.c 955 ID_1002 2 OTHER 0 1 2 3 DLT_TYPE_LOG DLT_LOG_ERROR APP1 CON1 application_file.c 1058 ID_1003 5 OTHER 0 1 2 DLT_TYPE_LOG DLT_LOG_INFO APP1 CON1 temp_meas.c 42 ID_14 0 OTHER 0 1 DLT_TYPE_LOG DLT_LOG_INFO LAT NV latsTask.c 421 S_BOOL S_SINT8 S_UINT8 S_SINT16 S_UINT16 S_SINT32 S_UINT32 S_SINT64 S_UINT64 S_FLOA16 S_FLOA32 S_FLOA64 S_STRG_ASCII S_STRG_UTF8 BOOL Coding for boolean values. 8 SINT8 Coding for signel 8bit values. 8 UINT8 Coding for unsignel 8bit values. 8 SINT16 Coding for signel 16bit values. 16 UINT16 Coding for unsignel 16bit values. 16 SINT32 Coding for signel 32bit values. 32 UINT32 Coding for unsignel 32bit values. 32 SINT64 Coding for signel 64bit values. 64 UINT64 Coding for unsignel 64bit values. 64 FLOA16 Coding for float 16bit values. 16 FLOA32 Coding for float 32bit values. 32 FLOA64 Coding for float 64bit values. 64 STRG_ASCII Coding for ASCII string. 0 255 STRG_UTF8 Coding for UTF8 string. 0 255 dlt-viewer-2.18.0+dfsg/plugin/dltsystemviewerplugin/0000775000175000017500000000000013001357026022207 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/plugin/dltsystemviewerplugin/dltsystemviewerplugin.pro0000664000175000017500000000074413001357026027427 0ustar potyrapotyra# include global settings for all DLT Viewer Plugins include( ../plugin.pri ) # Put intermediate files in the build directory MOC_DIR = build/moc OBJECTS_DIR = build/obj RCC_DIR = build/rcc UI_DIR = build/ui # target name TARGET = $$qtLibraryTarget(dltsystemviewerplugin) # plugin header files HEADERS += \ dltsystemviewerplugin.h \ form.h # plugin source files SOURCES += \ dltsystemviewerplugin.cpp \ form.cpp # plugin forms FORMS += \ form.ui dlt-viewer-2.18.0+dfsg/plugin/dltsystemviewerplugin/form.h0000664000175000017500000000233313001357026023324 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file form.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef FORM_H #define FORM_H #include #include #include "plugininterface.h" namespace Ui { class Form; } class ProcessItem : public QTreeWidgetItem { public: ProcessItem(QTreeWidgetItem *parent = 0); ~ProcessItem(); unsigned int lastTimestamp; }; class Form : public QWidget { Q_OBJECT public: explicit Form(QWidget *parent = 0); ~Form(); void addProcesses(int pid, QString data,QDltMsg &msg); void setUser(QString text); void setNice(QString text); void setSystem(QString text); void deleteAllProccesses(); private slots: void on_pushButtonClear_clicked(); private: Ui::Form *ui; }; #endif // FORM_H dlt-viewer-2.18.0+dfsg/plugin/dltsystemviewerplugin/form.cpp0000664000175000017500000000476713001357026023674 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file form.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "form.h" #include "ui_form.h" #include "dltsystemviewerplugin.h" ProcessItem::ProcessItem(QTreeWidgetItem *parent) : QTreeWidgetItem(parent) { lastTimestamp = 0; } ProcessItem::~ProcessItem() { } Form::Form(QWidget *parent) : QWidget(parent), ui(new Ui::Form) { ui->setupUi(this); } Form::~Form() { delete ui; } void Form::addProcesses(int pid, QString data,QDltMsg &msg) { QStringList datalist; ProcessItem *widget; int found = 0; int procent = 0; datalist = data.split(" "); for(int num=0;numtreeWidget->topLevelItemCount();num++) { widget = (ProcessItem*) ui->treeWidget->topLevelItem(num); if(widget->text(0).toInt()==pid) { found = 1; //procent = datalist.at(13).toInt()-widget->text(2).toInt()+datalist.at(14).toInt()-widget->text(3).toInt(); procent = ((datalist.at(13).toInt())-widget->text(2).toInt()+datalist.at(14).toInt()-widget->text(3).toInt())*10000/(msg.getTimestamp()-widget->lastTimestamp);///4; widget->setText(2,datalist.at(13)); widget->setText(3,datalist.at(14)); widget->setText(4,QString("%1").arg(procent)); widget->lastTimestamp = msg.getTimestamp(); break; } } if(!found) { widget = new ProcessItem(); widget->setText(0,QString("%1").arg(pid)); widget->setText(1,datalist.at(1)); widget->setText(2,datalist.at(13)); widget->setText(3,datalist.at(14)); widget->setText(4,QString("%1").arg(procent)); ui->treeWidget->insertTopLevelItem(0, widget); } } void Form::deleteAllProccesses() { ui->treeWidget->clear(); } void Form::on_pushButtonClear_clicked() { ui->treeWidget->clear(); } void Form::setUser(QString text) { ui->lineEditUser->setText(text); } void Form::setNice(QString text) { ui->lineEditNice->setText(text); } void Form::setSystem(QString text) { ui->lineEditSystem->setText(text); } dlt-viewer-2.18.0+dfsg/plugin/dltsystemviewerplugin/dltsystemviewerplugin.h0000664000175000017500000000433413001357026027055 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file dltsystemviewerplugin.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef DLTSYSTEMVIEWERPLUGIN_H #define DLTSYSTEMVIEWERPLUGIN_H #include #include "plugininterface.h" #include "form.h" #define DLT_SYSTEM_VIEWER_PLUGIN_VERSION "1.0.0" class DltSystemViewerPlugin : public QObject, QDLTPluginInterface, QDltPluginViewerInterface { Q_OBJECT Q_INTERFACES(QDLTPluginInterface) Q_INTERFACES(QDltPluginViewerInterface) #ifdef QT5 Q_PLUGIN_METADATA(IID "org.genivi.DLT.DltSystemViewerPlugin") #endif public: DltSystemViewerPlugin(); ~DltSystemViewerPlugin(); /* QDLTPluginInterface interface */ QString name(); QString pluginVersion(); QString pluginInterfaceVersion(); QString description(); QString error(); bool loadConfig(QString filename); bool saveConfig(QString filename); QStringList infoConfig(); /* QDltPluginViewerInterface */ QWidget* initViewer(); void initFileStart(QDltFile *file); void initFileFinish(); void initMsg(int index, QDltMsg &msg); void initMsgDecoded(int index, QDltMsg &msg); void updateFileStart(); void updateMsg(int index, QDltMsg &msg); void updateMsgDecoded(int index, QDltMsg &msg); void updateFileFinish(); void selectedIdxMsg(int index, QDltMsg &msg); void selectedIdxMsgDecoded(int index, QDltMsg &msg); /* internal variables */ Form *form; int counterMessages; int counterNonVerboseMessages; int counterVerboseMessages; int lastValueUser; int lastValueNice; int lastValueKernel; unsigned int lastTimeStamp; void show(bool value); void updateProcesses(int index, QDltMsg &msg); private: QDltFile *dltFile; QString errorText; }; #endif // DLTSYSTEMVIEWERPLUGIN_H dlt-viewer-2.18.0+dfsg/plugin/dltsystemviewerplugin/CMakeLists.txt0000664000175000017500000000150313001357026024746 0ustar potyrapotyra# Copyright (C) 2016, Jack S. Smith # # This file is part of GENIVI DLT-Viewer project. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # # For further information see http://www.genivi.org/. # # List of changes: # 01.Oct.2016, Jack Smith , Original Author # set (CMAKE_AUTOUIC ON) # cmake 2.8.12 doesn't have AUTOUIC ?? QT5_WRAP_UI( UI_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/form.ui ) add_library(dltsystemviewerplugin MODULE dltsystemviewerplugin.cpp form.cpp ${UI_HEADERS}) target_link_libraries(dltsystemviewerplugin qdlt Qt5::Widgets ) install(TARGETS dltsystemviewerplugin DESTINATION deploy/plugins) dlt-viewer-2.18.0+dfsg/plugin/dltsystemviewerplugin/form.ui0000664000175000017500000001105313001357026023511 0ustar potyrapotyra Form 0 0 309 288 Form 3 0 Processes 3 true 0 false true true true true true true PID Name UTime KTime CPU Clear CPU 10 30 110 20 10 60 111 16 Nice (%) 10 80 110 20 10 110 111 16 System (%) 10 130 110 20 9 9 111 16 User (%) dlt-viewer-2.18.0+dfsg/plugin/dltsystemviewerplugin/dltsystemviewerplugin.cpp0000664000175000017500000001122113001357026027401 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file dltsystemviewerplugin.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "dltsystemviewerplugin.h" #define PROC_STAT_NODE_1 1 #define PROC_STAT_NODE_UNDEFINE -1 DltSystemViewerPlugin::DltSystemViewerPlugin() { form = NULL; counterMessages = 0; counterNonVerboseMessages = 0; counterVerboseMessages = 0; lastValueUser = 0; lastValueNice = 0; lastValueKernel = 0; lastTimeStamp = 0; dltFile = NULL; } DltSystemViewerPlugin::~DltSystemViewerPlugin() { } QString DltSystemViewerPlugin::name() { return QString("DLT System Viewer Plugin"); } QString DltSystemViewerPlugin::pluginVersion(){ return DLT_SYSTEM_VIEWER_PLUGIN_VERSION; } QString DltSystemViewerPlugin::pluginInterfaceVersion(){ return PLUGIN_INTERFACE_VERSION; } QString DltSystemViewerPlugin::description() { return QString(); } QString DltSystemViewerPlugin::error() { return QString(); } bool DltSystemViewerPlugin::loadConfig(QString /* filename */) { return true; } bool DltSystemViewerPlugin::saveConfig(QString /* filename */) { return true; } QStringList DltSystemViewerPlugin::infoConfig() { return QStringList(); } QWidget* DltSystemViewerPlugin::initViewer() { form = new Form(); return form; } void DltSystemViewerPlugin::selectedIdxMsg(int , QDltMsg &) { //empty. Implemented because derived plugin interface functions are virtual. } void DltSystemViewerPlugin::selectedIdxMsgDecoded(int , QDltMsg &){ //empty. Implemented because derived plugin interface functions are virtual. } void DltSystemViewerPlugin::initFileStart(QDltFile *file){ dltFile = file; counterMessages = dltFile->size(); form->deleteAllProccesses(); } void DltSystemViewerPlugin::initMsg(int index, QDltMsg &msg){ updateProcesses(index, msg); } void DltSystemViewerPlugin::initMsgDecoded(int , QDltMsg &){ //empty. Implemented because derived plugin interface functions are virtual. } void DltSystemViewerPlugin::initFileFinish(){ } void DltSystemViewerPlugin::updateFileStart(){ } void DltSystemViewerPlugin::updateMsg(int index, QDltMsg &msg){ if(!dltFile) return; updateProcesses(index, msg); counterMessages = dltFile->size(); } void DltSystemViewerPlugin::updateMsgDecoded(int , QDltMsg &){ //empty. Implemented because derived plugin interface functions are virtual. } void DltSystemViewerPlugin::updateFileFinish(){ } void DltSystemViewerPlugin::updateProcesses(int , QDltMsg &msg) { QStringList datalist; QDltArgument arg; int pid,seq; if(!dltFile) return; if(msg.getMode() == QDltMsg::DltModeVerbose) { counterVerboseMessages++; } if(msg.getMode() == QDltMsg::DltModeNonVerbose) { counterNonVerboseMessages++; } if(msg.getApid()=="SYS" && msg.getCtid()=="PROC") { msg.getArgument(0,arg); pid = arg.toString().toInt(); msg.getArgument(1,arg); if(arg.toString()=="stat") { msg.getArgument(2,arg); form->addProcesses(pid,arg.toString(),msg); } } if(msg.getApid()=="SYS" && msg.getCtid()=="STAT") { msg.getArgument(0,arg); seq = arg.toString().toInt(); if( seq == PROC_STAT_NODE_1 || seq == PROC_STAT_NODE_UNDEFINE ) { msg.getArgument(1,arg); datalist = arg.toString().split(" "); form->setUser(QString("%1").arg(((datalist.at(2).toInt())-lastValueUser)*10000/(msg.getTimestamp()-lastTimeStamp))); form->setNice(QString("%1").arg(((datalist.at(3).toInt())-lastValueNice)*10000/(msg.getTimestamp()-lastTimeStamp))); form->setSystem(QString("%1").arg(((datalist.at(4).toInt())-lastValueKernel)*10000/(msg.getTimestamp()-lastTimeStamp))); lastValueUser = datalist.at(2).toInt(); lastValueNice = datalist.at(3).toInt();; lastValueKernel = datalist.at(4).toInt();; lastTimeStamp = msg.getTimestamp(); } } } #ifndef QT5 Q_EXPORT_PLUGIN2(dltsystemviewerplugin, DltSystemViewerPlugin); #endif dlt-viewer-2.18.0+dfsg/AUTHORS0000664000175000017500000000054713001357026015276 0ustar potyrapotyraAlexander Wenzel Christian Muck Wolfram Manthey Matthias Behr Mikko Rapeli Jeremiah C. Foster Lassi Marttala Simon Brandner Lutz Helwing Sven Hassler dlt-viewer-2.18.0+dfsg/build_sdk_windows_qt5_MSVC.bat0000664000175000017500000002221013001357026022040 0ustar potyrapotyra@echo off echo ************************************ echo *** DLT Viewer SDK *** echo ************************************ echo ************************************ echo *** Configuration *** echo ************************************ setlocal EnableDelayedExpansion rem parameter of this batch script can be either x86 or x86_amd64 if "%ARCHITECTURE%"=="" ( if "%PROCESSOR_ARCHITECTURE%"=="AMD64" ( set ARCHITECTURE=x86_amd64 ) else ( set ARCHITECTURE=x86 ) set USE_ARCH_PARAM=false if "%1" NEQ "" ( if "%1"=="x86" set USE_ARCH_PARAM=true if "%1"=="x86_amd64" set USE_ARCH_PARAM=true ) if "!USE_ARCH_PARAM!"=="true" set ARCHITECTURE=%1 ) echo Target architecture is !ARCHITECTURE! echo *** Setting up environment *** if "%QTDIR%"=="" ( if "%ARCHITECTURE%"=="x86_amd64" ( set QTDIR=C:\Qt\Qt5.5.1\5.5\msvc2013_64 ) else (set QTDIR=C:\Qt\Qt5.5.1\5.5\msvc2013) ) if "%MSVC_DIR%"=="" set MSVC_DIR=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC set PATH=%QTDIR%\bin;%MSVC_DIR%;%MSVC_DIR%\bin;%PATH% set QTSDK=%QTDIR% if '%WORKSPACE%'=='' ( if '%DLT_VIEWER_SDK_DIR%'=='' ( set DLT_VIEWER_SDK_DIR=%USERPROFILE%\DltViewerSDK ) set SOURCE_DIR=%CD% set BUILD_DIR=%CD%\build\release ) else ( if '%DLT_VIEWER_SDK_DIR%'=='' ( set DLT_VIEWER_SDK_DIR=%WORKSPACE%\..\GENIUS2_dlt_viewer_windows\DltViewerSDK ) set SOURCE_DIR=%WORKSPACE% set BUILD_DIR=%WORKSPACE%\build\release ) echo ************************************ echo * QTDIR = %QTDIR% echo * QTSDK = %QTSDK% echo * MSVC_DIR = %MSVC_DIR% echo * PATH = %PATH% echo * DLT_VIEWER_SDK_DIR = %DLT_VIEWER_SDK_DIR% echo * SOURCE_DIR = %SOURCE_DIR% echo * BUILD_DIR = %BUILD_DIR% echo ************************************ if exist build ( echo ************************************ echo *** Delete old build Directory *** echo ************************************ rmdir /s/q build if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER rmdir build if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER ) echo ************************************ echo *** Configure MSVC environment *** echo ************************************ call vcvarsall.bat %ARCHITECTURE% if %ERRORLEVEL% NEQ 0 goto error echo configuring was successful if exist %DLT_VIEWER_SDK_DIR% ( echo ************************************ echo *** Delete old SDK Directory *** echo ************************************ rmdir /s/q %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER ) echo ************************************ echo *** Build DLT Viewer *** echo ************************************ mkdir build if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER cd build if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER qmake ../BuildDltViewer.pro if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER nmake if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER echo ************************************ echo *** Create SDK *** echo ************************************ echo *** Create directories *** mkdir %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\plugins if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\plugins\examples if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\sdk if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\sdk\include if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\sdk\lib if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\sdk\src if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\sdk\src\dummydecoderplugin if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\sdk\src\dummyviewerplugin if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\sdk\src\dummycontrolplugin if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\filters if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\platforms if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\doc if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\cache if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER echo *** Copy files *** rem icu dll not longer needed with QT5 rem copy %QTDIR%\bin\icuin54.dll %DLT_VIEWER_SDK_DIR% rem if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER rem copy %QTDIR%\bin\icuuc54.dll %DLT_VIEWER_SDK_DIR% rem if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER rem copy %QTDIR%\bin\icudt54.dll %DLT_VIEWER_SDK_DIR% rem if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Core.dll %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Gui.dll %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Network.dll %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Sql.dll %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Svg.dll %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Widgets.dll %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5PrintSupport.dll %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Xml.dll %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5OpenGL.dll %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\plugins\platforms\qwindows.dll %DLT_VIEWER_SDK_DIR%\platforms if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\dlt_viewer.exe %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\qextserialport.dll %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\qdlt.dll %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\plugins\dltviewerplugin.dll %DLT_VIEWER_SDK_DIR%\plugins if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\plugins\nonverboseplugin.dll %DLT_VIEWER_SDK_DIR%\plugins if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\plugins\filetransferplugin.dll %DLT_VIEWER_SDK_DIR%\plugins if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\plugins\dltsystemviewerplugin.dll %DLT_VIEWER_SDK_DIR%\plugins if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\plugins\dltdbusplugin.dll %DLT_VIEWER_SDK_DIR%\plugins if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\plugins\dltlogstorageplugin.dll %DLT_VIEWER_SDK_DIR%\plugins if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\doc\*.txt %DLT_VIEWER_SDK_DIR%\doc if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\ReleaseNotes_Viewer.txt %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\README.txt %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\LICENSE.txt %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\MPL.txt %DLT_VIEWER_SDK_DIR% if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\qdlt\*.h %DLT_VIEWER_SDK_DIR%\sdk\include if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\qdlt.dll %DLT_VIEWER_SDK_DIR%\sdk\lib if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\qdlt.lib %DLT_VIEWER_SDK_DIR%\sdk\lib if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\qextserialport.dll %DLT_VIEWER_SDK_DIR%\sdk\lib if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\qextserialport.lib %DLT_VIEWER_SDK_DIR%\sdk\lib if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\plugin\dummyviewerplugin %DLT_VIEWER_SDK_DIR%\sdk\src\dummyviewerplugin if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\plugin\dummydecoderplugin %DLT_VIEWER_SDK_DIR%\sdk\src\dummydecoderplugin if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\plugin\dummycontrolplugin %DLT_VIEWER_SDK_DIR%\sdk\src\dummycontrolplugin if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\sdk\BuildPlugins.pro %DLT_VIEWER_SDK_DIR%\sdk\src if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\sdk\dummydecoderplugin.pro %DLT_VIEWER_SDK_DIR%\sdk\src\dummydecoderplugin if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\sdk\dummyviewerplugin.pro %DLT_VIEWER_SDK_DIR%\sdk\src\dummyviewerplugin if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\sdk\dummycontrolplugin.pro %DLT_VIEWER_SDK_DIR%\sdk\src\dummycontrolplugin if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\plugin\examples\nonverboseplugin_configuration.xml %DLT_VIEWER_SDK_DIR%\plugins\examples if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\plugin\examples\filetransferplugin_configuration.xml %DLT_VIEWER_SDK_DIR%\plugins\examples if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\filters\* %DLT_VIEWER_SDK_DIR%\filters if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\cache\* %DLT_VIEWER_SDK_DIR%\cache if %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER GOTO QUIT :ERROR_HANDLER echo #################################### echo ### ERROR occured ### echo #################################### if '%WORKSPACE%'=='' ( pause ) exit 1 :QUIT echo ************************************ echo *** SUCCESS finish *** echo ************************************ echo SDK installed in: %DLT_VIEWER_SDK_DIR% if '%WORKSPACE%'=='' ( pause ) exit 0 dlt-viewer-2.18.0+dfsg/build_sdk_windows_qt5.bat0000664000175000017500000002055713001357026021224 0ustar potyrapotyra@echo off echo ************************************ echo *** DLT Viewer SDK *** echo ************************************ echo ************************************ echo *** Configuration *** echo ************************************ echo *** Setting up environment *** IF "%QTDIR%"=="" ( set QTDIR=C:\Qt\Qt5.5.1\5.5\mingw492_32 ) IF "%MINGW_DIR%"=="" ( set MINGW_DIR=C:\Qt\Qt5.5.1\Tools\mingw492_32 ) set PATH=%QTDIR%\bin;%MINGW_DIR%\bin;%PATH% set QTSDK=%QTDIR% IF '%WORKSPACE%'=='' ( IF '%DLT_VIEWER_SDK_DIR%'=='' ( set DLT_VIEWER_SDK_DIR=%USERPROFILE%\DltViewerSDK ) set SOURCE_DIR=%CD% set BUILD_DIR=%CD%\build\release ) ELSE ( IF '%DLT_VIEWER_SDK_DIR%'=='' ( set DLT_VIEWER_SDK_DIR=%WORKSPACE%\..\GENIUS2_dlt_viewer_windows\DltViewerSDK ) set SOURCE_DIR=%WORKSPACE% set BUILD_DIR=%WORKSPACE%\build\release ) echo ************************************ echo * QTDIR = %QTDIR% echo * QTSDK = %QTSDK% echo * MINGW_DIR = %MINGW_DIR% echo * PATH = %PATH% echo * DLT_VIEWER_SDK_DIR = %DLT_VIEWER_SDK_DIR% echo * SOURCE_DIR = %SOURCE_DIR% echo * BUILD_DIR = %BUILD_DIR% echo ************************************ IF exist build ( echo ************************************ echo *** Delete old build Directory *** echo ************************************ rmdir /s/q build IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER rmdir build IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER ) IF exist %DLT_VIEWER_SDK_DIR% ( echo ************************************ echo *** Delete old SDK Directory *** echo ************************************ rmdir /s/q %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER ) echo ************************************ echo *** Build DLT Viewer *** echo ************************************ mkdir build IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER cd build IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER qmake ../BuildDltViewer.pro IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mingw32-make.exe -j 4 release IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER echo ************************************ echo *** Create SDK *** echo ************************************ echo *** Create directories *** mkdir %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\plugins IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\plugins\examples IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\sdk IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\sdk\include IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\sdk\lib IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\sdk\src IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\sdk\src\dummydecoderplugin IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\sdk\src\dummyviewerplugin IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\sdk\src\dummycontrolplugin IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\filters IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\platforms IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\doc IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_VIEWER_SDK_DIR%\cache IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER echo *** Copy files *** copy %QTDIR%\bin\icuin54.dll %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\icuuc54.dll %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\icudt54.dll %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\libwinpthread-1.dll %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\libgcc_s_dw2-1.dll %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy "%QTDIR%\bin\libstdc++-6.dll" %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Core.dll %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Gui.dll %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Network.dll %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Sql.dll %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Svg.dll %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Widgets.dll %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5PrintSupport.dll %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Xml.dll %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5OpenGL.dll %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\plugins\platforms\qwindows.dll %DLT_VIEWER_SDK_DIR%\platforms IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\dlt_viewer.exe %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\qextserialport.dll %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\qdlt.dll %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\plugins\dltviewerplugin.dll %DLT_VIEWER_SDK_DIR%\plugins IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\plugins\nonverboseplugin.dll %DLT_VIEWER_SDK_DIR%\plugins IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\plugins\filetransferplugin.dll %DLT_VIEWER_SDK_DIR%\plugins IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\plugins\dltsystemviewerplugin.dll %DLT_VIEWER_SDK_DIR%\plugins IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\plugins\dltdbusplugin.dll %DLT_VIEWER_SDK_DIR%\plugins IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\plugins\dltlogstorageplugin.dll %DLT_VIEWER_SDK_DIR%\plugins IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\doc\*.txt %DLT_VIEWER_SDK_DIR%\doc IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\ReleaseNotes_Viewer.txt %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\README.txt %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\LICENSE.txt %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\MPL.txt %DLT_VIEWER_SDK_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\qdlt\*.h %DLT_VIEWER_SDK_DIR%\sdk\include IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\libqdlt.a %DLT_VIEWER_SDK_DIR%\sdk\lib IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\libqextserialport.a %DLT_VIEWER_SDK_DIR%\sdk\lib IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\plugin\dummyviewerplugin %DLT_VIEWER_SDK_DIR%\sdk\src\dummyviewerplugin IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\plugin\dummydecoderplugin %DLT_VIEWER_SDK_DIR%\sdk\src\dummydecoderplugin IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\plugin\dummycontrolplugin %DLT_VIEWER_SDK_DIR%\sdk\src\dummycontrolplugin IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\sdk\BuildPlugins.pro %DLT_VIEWER_SDK_DIR%\sdk\src IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\sdk\dummydecoderplugin.pro %DLT_VIEWER_SDK_DIR%\sdk\src\dummydecoderplugin IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\sdk\dummyviewerplugin.pro %DLT_VIEWER_SDK_DIR%\sdk\src\dummyviewerplugin IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\sdk\dummycontrolplugin.pro %DLT_VIEWER_SDK_DIR%\sdk\src\dummycontrolplugin IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\plugin\examples\nonverboseplugin_configuration.xml %DLT_VIEWER_SDK_DIR%\plugins\examples IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\plugin\examples\filetransferplugin_configuration.xml %DLT_VIEWER_SDK_DIR%\plugins\examples IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\filters\* %DLT_VIEWER_SDK_DIR%\filters IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\cache\* %DLT_VIEWER_SDK_DIR%\cache IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER GOTO QUIT :ERROR_HANDLER echo #################################### echo ### ERROR occured ### echo #################################### IF '%WORKSPACE%'=='' ( pause ) exit 1 :QUIT echo ************************************ echo *** SUCCESS finish *** echo ************************************ echo SDK installed in: %DLT_VIEWER_SDK_DIR% IF '%WORKSPACE%'=='' ( pause ) exit 0 dlt-viewer-2.18.0+dfsg/src/0000775000175000017500000000000013001357026015007 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/src/exporterdialog.ui0000664000175000017500000000724313001357026020404 0ustar potyrapotyra ExporterDialog 0 0 331 153 DLT Exporter Format DLT false DLT Decoded UTF8 ASCII true CSV Selection All false Filtered true Marked Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok buttonBox accepted() ExporterDialog accept() 248 254 157 274 buttonBox rejected() ExporterDialog reject() 316 260 286 274 dlt-viewer-2.18.0+dfsg/src/mainwindow.ui0000775000175000017500000014624013001357026017534 0ustar potyrapotyra MainWindow 0 0 1001 658 Qt::NoFocus MainWindow :/icons/png/face-glasses.png:/icons/png/face-glasses.png QTabWidget::Rounded 2 2 2 2 Courier 10 Pitch 8 Qt::CustomContextMenu false true QAbstractItemView::ExtendedSelection QAbstractItemView::SelectRows 200 true false 15 0 0 1001 27 &File Recent files &Project Recent projects &Config F&ilter Recent Filter... P&lugin &Help &DLT &Search History &View TopToolBarArea false toolBar TopToolBarArea false Qt::NoFocus QDockWidget::AllDockWidgetFeatures Project 1 Qt::NoFocus 2 2 2 2 QFrame::NoFrame QFrame::Plain Filters Enabled true Plugins Enabled true Sorted by Time true false Apply Configuration :/toolbar/png/weather-storm.png :/toolbar/png/weather-clear.png:/toolbar/png/weather-storm.png true Qt::TabFocus QTabWidget::South QTabWidget::Rounded 0 Qt::ElideNone false Qt::NoFocus Config 2 2 2 2 Qt::TabFocus Qt::CustomContextMenu true QAbstractItemView::ExtendedSelection QAbstractItemView::SelectRows true true true false false Id Description LogLevel TraceStatus Plugin 2 2 2 2 Qt::CustomContextMenu true true true true true 5 false Name Interface Status Info File Filter 3 3 3 3 3 Multifilter List false 30 0 0 50 16777215 Refresh Multifilter Index Refresh 0 0 Qt::CustomContextMenu true true QAbstractItemView::InternalMove Qt::MoveAction false false true false false false 26 26 Active AlignLeft|AlignVCenter Configuration Search Results 8 0 16 50 50 Qt::CustomContextMenu false Open... Ctrl+O Save As... Ctrl+S Clear Ctrl+K Settings Quit Ctrl+Q Open... Ctrl+Shift+O true Save As... Ctrl+Shift+S true New Ctrl+Shift+N true ECU Add... false ECU Delete false ECU Edit... false Application Add... false Application Edit... false Application Delete false Context Add... false Context Edit... false Context Delete Filter Add... false Filter Edit... false Filter Delete false Plugin Edit... &Info... F1 false ECU Connect false ECU Disconnect false Get Default Log Level false Set Default Log Level false Get Log Info false Set Log Level false Set All Log Levels false Store Config false Reset to Factory Default false Get Software Version false Send Injection New... Ctrl+N false ECU Delete All Contexts Import DLT Stream... Ctrl+I true Export ASCII... Ctrl+E true Find... Ctrl+F false Filter Clear all Filter Delete All Append DLT File... Ctrl+P Export Selection... Ctrl+L Import DLT Stream with Serial Header... Ctrl+J false Plugin Show false Plugin Hide Export Selection ASCII... true Save Filter... Load Filter... false Filter Duplicate Command Line Options... false Collapse All ECUs Collapse All_ECUs Ctrl+- false Expand All ECUs Expand All ECUs Ctrl++ false ECU Edit All Log Levels ECU Edit All Log Levels false Plugin Disable Plugin Disable Copy to clipboard Copy to clipboard Append Filter... Append Filter File Export CSV... Export Selection CSV... Jump To... Ctrl+G Support... :/toolbar/png/document-new.png:/toolbar/png/document-new.png New Create a new DLT file :/toolbar/png/document-open.png:/toolbar/png/document-open.png Open Open existing DLT file :/toolbar/png/edit-clear.png:/toolbar/png/edit-clear.png ClearDltFile Create a new temporary DLT file and clear the screen. :/toolbar/png/document-save-as.png:/toolbar/png/document-save-as.png Save logfile Save current log as DLT file. :/toolbar/png/document-save-as2.png:/toolbar/png/document-save-as2.png Save project Save current project as DLP file. :/toolbar/png/network-transmit-receive.png:/toolbar/png/network-transmit-receive.png Connect all ECU's Connect all ECU's or create a new one. :/toolbar/png/network-offline.png:/toolbar/png/network-offline.png Disconnect all ECU's Disconnect all connected ECU's :/toolbar/png/preferences-desktop.png:/toolbar/png/preferences-desktop.png Settings true :/toolbar/png/go-bottom.png:/toolbar/png/go-bottom.png Auto Scroll Scroll automatically to the end of the log, when receiving data. :/toolbar/png/system-search.png:/toolbar/png/system-search.png Find Search for a DLT message. true :/toolbar/png/action-regexp.png:/toolbar/png/action-regexp.png RegExp Use regular expressions when searching. :/toolbar/png/go-previous.png:/toolbar/png/go-previous.png Find Previous Search for previous occurance. :/toolbar/png/go-next.png:/toolbar/png/go-next.png Find Next Search for next occurance. true :/toolbar/png/action-searchlist.png:/toolbar/png/action-searchlist.png SearchList Put all search results to a list true false Search Results true true Project Reload Multifilter List true Refresh Multifilter Index Export... true :/toolbar/png/bookmark-new.png:/toolbar/png/bookmark-new.png Marker Write Marker into DLT File false Get Local Time :/toolbar/png/weather-clear.png :/toolbar/png/weather-storm.png :/toolbar/png/weather-clear.png:/toolbar/png/weather-clear.png Apply Configuration Apply Configuration true :/toolbar/png/view-filter_32_off.png :/toolbar/png/view-filter_32_on.png:/toolbar/png/view-filter_32_off.png Enable Filters Toggle Filters Enabled/Disabled true :/toolbar/png/x-kde-nsplugin-generated_gray.png :/toolbar/png/x-kde-nsplugin-generated.png:/toolbar/png/x-kde-nsplugin-generated_gray.png Enable Plugins Toggle Plugins Enabled /Disabled true :/toolbar/png/document-open-recent-2_gray.png :/toolbar/png/document-open-recent-2.png:/toolbar/png/document-open-recent-2_gray.png Sort By Time Toggle Sorted By Time FilterTreeWidget QTreeWidget
filtertreewidget.h
PluginTreeWidget QTreeWidget
plugintreewidget.h
DltTableView QTableView
dlttableview.h
PulseButton QPushButton
pulsebutton.h
tableView applyConfig pluginsEnabled filtersEnabled checkBoxSortByTime pluginWidget tabWidget configWidget comboBoxFilterSelection pushButtonDefaultFilterUpdateCache filterWidget tableView_SearchIndex filterWidget itemDoubleClicked(QTreeWidgetItem*,int) action_menuFilter_Edit trigger() 133 220 -1 -1 pluginWidget itemDoubleClicked(QTreeWidgetItem*,int) action_menuPlugin_Edit trigger() 133 220 -1 -1 configWidget itemDoubleClicked(QTreeWidgetItem*,int) action_menuConfig_ECU_Edit trigger() 133 220 -1 -1 configWidget itemDoubleClicked(QTreeWidgetItem*,int) action_menuConfig_Application_Edit trigger() 133 220 -1 -1 configWidget itemDoubleClicked(QTreeWidgetItem*,int) action_menuConfig_Context_Edit trigger() 133 220 -1 -1 actionNewDltFile triggered() action_menuFile_New trigger() -1 -1 -1 -1 actionOpenDltFile triggered() action_menuFile_Open trigger() -1 -1 -1 -1 actionClear triggered() action_menuFile_Clear trigger() -1 -1 -1 -1 actionSaveDltFile triggered() action_menuFile_SaveAs trigger() -1 -1 -1 -1 actionSaveProjectFile triggered() action_menuProject_Save trigger() -1 -1 -1 -1 actionSettings triggered() action_menuFile_Settings trigger() -1 -1 -1 -1 actionFind triggered(bool) action_menuSearch_Find trigger() -1 -1 -1 -1 actionSearch_Results triggered(bool) dockWidgetSearchIndex setVisible(bool) -1 -1 500 521 dockWidgetSearchIndex visibilityChanged(bool) actionSearch_Results setChecked(bool) 500 521 -1 -1 actionProject triggered(bool) dockWidgetProject setVisible(bool) -1 -1 134 229 dockWidgetProject visibilityChanged(bool) actionProject setChecked(bool) 134 229 -1 -1
dlt-viewer-2.18.0+dfsg/src/multiplecontextdialog.ui0000664000175000017500000000726013001357026021773 0ustar potyrapotyra MultipleContextDialog 0 0 325 139 Multiple Context Configuration :/icons/png/face-glasses.png:/icons/png/face-glasses.png Log Level: Trace Status: default off fatal error warn info debug verbose default off on Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok Update data in DLT if online true buttonBox accepted() MultipleContextDialog accept() 248 254 157 274 buttonBox rejected() MultipleContextDialog reject() 316 260 286 274 dlt-viewer-2.18.0+dfsg/src/project.cpp0000775000175000017500000010746713001357026017203 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file project.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include #include #include #include "project.h" #include "dltsettingsmanager.h" #include "dltuiutils.h" #include "dlt_user.h" const char *loginfo[] = {"default","off","fatal","error","warn","info","debug","verbose","","","","","","","","",""}; const char *traceinfo[] = {"default","off","on"}; EcuItem::EcuItem(QTreeWidgetItem *parent) : QTreeWidgetItem(parent,ecu_type) , socket(0) { /* initialise receive buffer and message*/ id = "ECU"; description = "A new ECU"; interfacetype = INTERFACETYPE_TCP; /* default TCP */ hostname = "localhost"; ipport = DLT_DAEMON_TCP_PORT; baudrate = BAUD115200; /* default 115200 */ loglevel = DLT_LOG_INFO; tracestatus = DLT_TRACE_STATUS_OFF; verbosemode = 1; sendSerialHeaderIp = false; sendSerialHeaderSerial = true; syncSerialHeaderIp = false; syncSerialHeaderSerial = true; timingPackets = false; sendGetLogInfo = false; sendDefaultLogLevel = true; sendGetSoftwareVersion = true; updateDataIfOnline = true; autoReconnect = true; autoReconnectTimeout = 5; totalBytesRcvd = 0; totalBytesRcvdLastTimeout = 0; tryToConnect = 0; connected = 0; status = EcuItem::unknown; m_serialport = 0; /* Limit size of socket receiption buffer to limit application buffer size */ /* qt sets buffer normally to unlimited */ //socket.setReadBufferSize(64000); autoReconnectTimestamp = QDateTime::currentDateTime(); } EcuItem::~EcuItem() { } void EcuItem::update() { if(tryToConnect & connected) { setData(0,Qt::DisplayRole,id + " online"); setBackground(0,QBrush(QColor(Qt::green))); } else if(tryToConnect & !connected) { if(connectError.isEmpty()) { setData(0,Qt::DisplayRole,id + " connect"); setBackground(0,QBrush(QColor(Qt::yellow))); } else { setData(0,Qt::DisplayRole,id + " connect ["+connectError+"]"); setBackground(0,QBrush(QColor(Qt::red))); } } else { setData(0,Qt::DisplayRole,id + " offline"); setBackground(0,QBrush(QColor(Qt::white))); } switch(interfacetype) { case EcuItem::INTERFACETYPE_TCP: setData(1,Qt::DisplayRole,QString("%1 [%2:%3]").arg(description).arg(hostname).arg(ipport)); socket = & tcpsocket; break; case EcuItem::INTERFACETYPE_UDP: setData(1,Qt::DisplayRole,QString("%1 [%2:%3]").arg(description).arg(hostname).arg(ipport)); socket = & udpsocket; break; case EcuItem::INTERFACETYPE_SERIAL: setData(1,Qt::DisplayRole,QString("%1 [%2]").arg(description).arg(port)); socket = 0; break; } setData(2,Qt::DisplayRole,QString("Default: %1").arg(loginfo[loglevel+1])); setData(3,Qt::DisplayRole,QString("Default: %1").arg(traceinfo[tracestatus+1])); if(status == EcuItem::invalid) { setBackground(2,QBrush(QColor(Qt::red))); setBackground(3,QBrush(QColor(Qt::red))); } else if(status == EcuItem::unknown) { setBackground(2,QBrush(QColor(Qt::yellow))); setBackground(3,QBrush(QColor(Qt::yellow))); } else if(status == EcuItem::valid) { setBackground(2,QBrush(QColor(Qt::green))); setBackground(3,QBrush(QColor(Qt::green))); } } void EcuItem::InvalidAll() { status = EcuItem::unknown; update(); for(int numapp = 0; numapp < childCount(); numapp++) { ApplicationItem * appitem = (ApplicationItem *) child(numapp); for(int numcontext = 0; numcontext < appitem->childCount(); numcontext++) { ContextItem * conitem = (ContextItem *) appitem->child(numcontext); conitem->status = ContextItem::unknown; conitem->update(); } } } bool EcuItem::operator< ( const QTreeWidgetItem & other ) const { int column = treeWidget()->header()->sortIndicatorSection(); int fieldWidth = 0; if(column==0){ fieldWidth=4; } QString currentItem = QString("%1").arg(text(column),fieldWidth,QLatin1Char('0')); QString otherItem = QString("%1").arg(other.text(column),fieldWidth,QLatin1Char('0')); // qDebug()<<"currentItemEcu: "<header()->sortIndicatorSection(); int fieldWidth = 0; if(column==0){ fieldWidth=4; } QString currentItem = QString("%1").arg(text(column),fieldWidth,QLatin1Char('0')); QString otherItem = QString("%1").arg(other.text(column),fieldWidth,QLatin1Char('0')); // qDebug()<<"currentItemApp: "<header()->sortIndicatorSection(); int fieldWidth = 0; if(column==0){ fieldWidth=4; } QString currentItem = QString("%1").arg(text(column),fieldWidth,QLatin1Char('0')); QString otherItem = QString("%1").arg(other.text(column),fieldWidth,QLatin1Char('0')); // qDebug()<<"currentItemCt: "<pluginitem = i; QDockWidget(this->pluginitem->getName(),parent); this->setWindowTitle(this->pluginitem->getName()); } MyPluginDockWidget::~MyPluginDockWidget(){ } void MyPluginDockWidget::closeEvent(QCloseEvent *event) { pluginitem->setMode(QDltPlugin::ModeDisable); pluginitem->update(); pluginitem->savePluginModeToSettings(); QDockWidget::closeEvent(event); } PluginItem::PluginItem(QTreeWidgetItem *parent, QDltPlugin *_plugin) : QTreeWidgetItem(parent,plugin_type) { widget = 0; dockWidget = 0; loader = 0; mode = QDltPlugin::ModeShow; type = 0; plugin = _plugin; } PluginItem::~PluginItem() { if(loader != NULL) { loader->unload(); delete loader; } } void PluginItem::update() { QStringList types; QStringList list = plugin->infoConfig(); if(plugin->isViewer()) types << "View"; if(plugin->isDecoder()) types << "Decode"; if(plugin->isControl()) types << "Ctrl"; if(plugin->isCommand()) types << "Command"; QString *modeString; switch(plugin->getMode()){ case 0: modeString = new QString("Disabled"); break; case 1: modeString = new QString("Enabled&Not visible"); break; case 2: modeString = new QString("Enabled&Visible"); break; default: modeString = new QString(""); break; } //setData(0,0,QString("%1 (%2:%3|%4 %5)").arg(this->getName()).arg(types.join("")).arg(*modeString).arg(list.size()).arg(this->getFilename())); setData(0,0,QString("%1").arg(plugin->getName())); setData(1,0,QString("%1").arg(types.join(""))); setData(2,0,QString("%1").arg(*modeString)); setData(3,0,QString("%1").arg(list.size())); setData(4,0,QString("%1").arg(this->getFilename())); delete modeString; } QString PluginItem::getName(){ return plugin->getName(); } QString PluginItem::getPluginVersion(){ return plugin->getPluginVersion(); } QString PluginItem::getPluginInterfaceVersion(){ return plugin->getPluginInterfaceVersion(); } QString PluginItem::getFilename(){ return filename; } void PluginItem::setFilename(QString f){ filename = f; } int PluginItem::getType(){ return type; } void PluginItem::setType(int t){ type = t; } int PluginItem::getMode(){ return plugin->getMode(); } void PluginItem::setMode(int t) { plugin->setMode((QDltPlugin::Mode)t); } void PluginItem::savePluginModeToSettings(){ DltSettingsManager::getInstance()->setValue("plugin/pluginmodefor"+this->getName(),QVariant(plugin->getMode())); } void PluginItem::loadPluginModeFromSettings(){ plugin->setMode((QDltPlugin::Mode)DltSettingsManager::getInstance()->value("plugin/pluginmodefor"+this->getName(),QVariant(QDltPlugin::ModeDisable)).toInt()); } Project::Project() { ecu = NULL; filter = NULL; plugin = NULL; settings = NULL; } Project::~Project() { } void Project::Clear() { ecu->clear(); filter->clear(); } bool Project::Load(QString filename) { QFile file(filename); if (!file.open(QFile::ReadOnly | QFile::Text)) return false; EcuItem *ecuitem = 0; ApplicationItem *applicationitem = 0; ContextItem *contextitem = 0; FilterItem *filteritem = 0; PluginItem *pluginitem = 0; PluginItem *pluginitemexist = 0; ecu->clear(); filter->clear(); //plugin->clear(); QXmlStreamReader xml(&file); while (!xml.atEnd()) { xml.readNext(); if(xml.isStartElement()) { /* Project settings */ if(xml.name() == QString("autoConnect")) { settings->autoConnect = xml.readElementText().toInt(); } if(xml.name() == QString("autoScroll")) { settings->autoScroll = xml.readElementText().toInt(); } if(xml.name() == QString("autoMarkFatalError")) { settings->autoMarkFatalError = xml.readElementText().toInt(); } if(xml.name() == QString("autoMarkWarn")) { settings->autoMarkWarn = xml.readElementText().toInt(); } if(xml.name() == QString("autoMarkMarker")) { settings->autoMarkMarker = xml.readElementText().toInt(); } if(xml.name() == QString("fontSize")) { settings->fontSize = xml.readElementText().toInt(); } if(xml.name() == QString("automaticTimeSettings")) { settings->automaticTimeSettings = xml.readElementText().toInt(); } if(xml.name() == QString("utcOffset")) { settings->utcOffset = xml.readElementText().toLongLong(); } if(xml.name() == QString("utcOffset")) { settings->dst = xml.readElementText().toInt(); } if(xml.name() == QString("showIndex")) { settings->showIndex = xml.readElementText().toInt(); } if(xml.name() == QString("showTime")) { settings->showTime = xml.readElementText().toInt(); } if(xml.name() == QString("showTimestamp")) { settings->showTimestamp = xml.readElementText().toInt(); } if(xml.name() == QString("showCount")) { settings->showCount = xml.readElementText().toInt(); } if(xml.name() == QString("showEcuId")) { settings->showEcuId = xml.readElementText().toInt(); } if(xml.name() == QString("showApId")) { settings->showApId = xml.readElementText().toInt(); } if(xml.name() == QString("showApIdDesc")) { settings->showApIdDesc = xml.readElementText().toInt(); } if(xml.name() == QString("showCtId")) { settings->showCtId = xml.readElementText().toInt(); } if(xml.name() == QString("showCtIdDesc")) { settings->showCtIdDesc = xml.readElementText().toInt(); } if(xml.name() == QString("showSessionId")) { settings->showSessionId = xml.readElementText().toInt(); } if(xml.name() == QString("showSessionName")) { settings->showSessionName = xml.readElementText().toInt(); } if(xml.name() == QString("showType")) { settings->showType = xml.readElementText().toInt(); } if(xml.name() == QString("showSubtype")) { settings->showSubtype = xml.readElementText().toInt(); } if(xml.name() == QString("showMode")) { settings->showMode = xml.readElementText().toInt(); } if(xml.name() == QString("showNoar")) { settings->showNoar = xml.readElementText().toInt(); } if(xml.name() == QString("showPayload")) { settings->showPayload = xml.readElementText().toInt(); } if(xml.name() == QString("loggingOnlyMode")) { settings->loggingOnlyMode = xml.readElementText().toInt(); } /* Connection, plugin and filter */ if(xml.name() == QString("ecu")) { ecuitem = new EcuItem(); } if(xml.name() == QString("application")) { applicationitem = new ApplicationItem(); } if(xml.name() == QString("context")) { contextitem = new ContextItem(); } if(xml.name() == QString("pfilter")) // this should be filter, but to be compatible keep it { filteritem = new FilterItem(); } if(xml.name() == QString("plugin")) { pluginitem = new PluginItem(0,0); } if(xml.name() == QString("id")) { if(contextitem) contextitem->id = xml.readElementText(); else if(applicationitem) applicationitem->id = xml.readElementText(); else if(ecuitem) ecuitem->id = xml.readElementText(); } if(xml.name() == QString("description")) { if(contextitem) contextitem->description = xml.readElementText(); else if(applicationitem) applicationitem->description = xml.readElementText(); else if(ecuitem) ecuitem->description = xml.readElementText(); } if(xml.name() == QString("loglevel")) { if(contextitem) contextitem->loglevel = xml.readElementText().toInt(); else if(ecuitem) ecuitem->loglevel = xml.readElementText().toInt(); } if(xml.name() == QString("tracestatus")) { if(contextitem) contextitem->tracestatus = xml.readElementText().toInt(); else if(ecuitem) ecuitem->tracestatus = xml.readElementText().toInt(); } if(xml.name() == QString("verbosemode")) { if(ecuitem) ecuitem->verbosemode = xml.readElementText().toInt(); } if(xml.name() == QString("timingpackets")) { if(ecuitem) ecuitem->timingPackets = xml.readElementText().toInt(); } if(xml.name() == QString("sendgetloginfo")) { if(ecuitem) ecuitem->sendGetLogInfo = xml.readElementText().toInt(); } if(xml.name() == QString("sendDefaultLogLevel")) { if(ecuitem) ecuitem->sendDefaultLogLevel = xml.readElementText().toInt(); } if(xml.name() == QString("sendGetSoftwareVersion")) { if(ecuitem) ecuitem->sendGetSoftwareVersion = xml.readElementText().toInt(); } if(xml.name() == QString("updatedata")) { if(ecuitem) ecuitem->updateDataIfOnline = xml.readElementText().toInt(); } if(xml.name() == QString("interface")) { if(ecuitem) ecuitem->interfacetype = xml.readElementText().toInt(); } if(xml.name() == QString("hostname")) { if(ecuitem) ecuitem->setHostname(xml.readElementText()); } if(xml.name() == QString("ipport")) { if(ecuitem) ecuitem->setIpport(xml.readElementText().toInt()); } if(xml.name() == QString("port")) { if(ecuitem) ecuitem->setPort(xml.readElementText()); } if(xml.name() == QString("baudrate")) { //TODO (BaudRateType)? if(ecuitem) ecuitem->setBaudrate((BaudRateType)xml.readElementText().toInt()); } if(xml.name() == QString("sendserialheadertcp")) { if(ecuitem) ecuitem->setSendSerialHeaderIp(xml.readElementText().toInt()); } if(xml.name() == QString("sendserialheaderserial")) { if(ecuitem) ecuitem->setSendSerialHeaderSerial(xml.readElementText().toInt()); } if(xml.name() == QString("synctoserialheadertcp")) { if(ecuitem) ecuitem->setSyncSerialHeaderIp(xml.readElementText().toInt()); } if(xml.name() == QString("synctoserialheaderserial")) { if(ecuitem) ecuitem->setSyncSerialHeaderSerial(xml.readElementText().toInt()); } if(xml.name() == QString("autoReconnect")) { if(ecuitem) ecuitem->autoReconnect = xml.readElementText().toInt(); } if(xml.name() == QString("autoReconnectTimeout")) { if(ecuitem) ecuitem->autoReconnectTimeout = xml.readElementText().toInt(); } if(filteritem) filteritem->filter.LoadFilterItem(xml); if(xml.name() == QString("name")) { if(pluginitem) { QString name = xml.readElementText(); for(int num = 0; num < plugin->topLevelItemCount (); num++) { PluginItem *item = (PluginItem*)plugin->topLevelItem(num); if(item->getName() == name) { pluginitemexist = item; } } } } if(xml.name() == QString("filename")) { if(pluginitemexist) pluginitemexist->setFilename( xml.readElementText() ); } if(xml.name() == QString("mode")) { if(pluginitemexist) pluginitemexist->setMode( xml.readElementText().toInt() ); } if(xml.name() == QString("type")) { if(pluginitemexist) pluginitemexist->setType(xml.readElementText().toInt() ); } } if(xml.isEndElement()) { if(xml.name() == QString("ecu")) { if(ecu && ecuitem) { ecu->addTopLevelItem(ecuitem); ecuitem->update(); } ecuitem = 0; } if(xml.name() == QString("application")) { if(ecuitem) { ecuitem->addChild(applicationitem); applicationitem->update(); } applicationitem = 0; } if(xml.name() == QString("context")) { if(applicationitem) { applicationitem->addChild(contextitem); contextitem->update(); } contextitem = 0; } if(xml.name() == QString("pfilter")) // this should be filter, but to be compatible keep it { if(filter && filteritem) { filter->addTopLevelItem(filteritem); filteritem->update(); } filteritem = 0; } if(xml.name() == QString("plugin")) { if(plugin) { delete pluginitem; if(pluginitemexist) pluginitemexist->update(); } pluginitem = 0; pluginitemexist = 0; } } } if (xml.hasError()) { QMessageBox::warning(0, QString("XML Parser error"), xml.errorString()); } file.close(); return true; } bool Project::Save(QString filename) { QFile file(filename); if (!file.open(QFile::WriteOnly | QFile::Truncate | QFile::Text)) { QMessageBox::critical(0, QString("DLT Viewer"), QString("Cannot read project file %1:\n%2.") .arg(filename) .arg(file.errorString())); return false; } QXmlStreamWriter xml(&file); xml.setAutoFormatting(true); xml.writeStartDocument(); xml.writeStartElement("dltproject"); /* Write project settings */ xml.writeStartElement("settings"); xml.writeStartElement("table"); xml.writeTextElement("fontSize",QString("%1").arg(settings->fontSize)); xml.writeTextElement("automaticTimeSettings",QString("%1").arg(settings->automaticTimeSettings)); xml.writeTextElement("utcOffset",QString("%1").arg(settings->utcOffset)); xml.writeTextElement("dst",QString("%1").arg(settings->dst)); xml.writeTextElement("showIndex",QString("%1").arg(settings->showIndex)); xml.writeTextElement("showTime",QString("%1").arg(settings->showTime)); xml.writeTextElement("showTimestamp",QString("%1").arg(settings->showTimestamp)); xml.writeTextElement("showCount",QString("%1").arg(settings->showCount)); xml.writeTextElement("showEcuId",QString("%1").arg(settings->showEcuId)); xml.writeTextElement("showApId",QString("%1").arg(settings->showApId)); xml.writeTextElement("showApIdDesc",QString("%1").arg(settings->showApIdDesc)); xml.writeTextElement("showCtId",QString("%1").arg(settings->showCtId)); xml.writeTextElement("showCtIdDesc",QString("%1").arg(settings->showCtIdDesc)); xml.writeTextElement("showType",QString("%1").arg(settings->showType)); xml.writeTextElement("showSubtype",QString("%1").arg(settings->showSubtype)); xml.writeTextElement("showMode",QString("%1").arg(settings->showMode)); xml.writeTextElement("showNoar",QString("%1").arg(settings->showNoar)); xml.writeTextElement("showPayload",QString("%1").arg(settings->showPayload)); xml.writeEndElement(); // table xml.writeStartElement("other"); xml.writeTextElement("autoConnect",QString("%1").arg(settings->autoConnect)); xml.writeTextElement("autoScroll",QString("%1").arg(settings->autoScroll)); xml.writeTextElement("autoMarkFatalError",QString("%1").arg(settings->autoMarkFatalError)); xml.writeTextElement("autoMarkWarn",QString("%1").arg(settings->autoMarkWarn)); xml.writeTextElement("autoMarkMarker",QString("%1").arg(settings->autoMarkMarker)); xml.writeTextElement("writeControl",QString("%1").arg(settings->writeControl)); xml.writeTextElement("updateContextLoadingFile",QString("%1").arg(settings->updateContextLoadingFile)); xml.writeTextElement("loggingOnlyMode",QString("%1").arg(settings->loggingOnlyMode)); xml.writeEndElement(); // other xml.writeEndElement(); // settings /* Write Configuration */ for(int num = 0; num < ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)ecu->topLevelItem(num); xml.writeStartElement("ecu"); xml.writeTextElement("id",ecuitem->id); xml.writeTextElement("description",ecuitem->description); xml.writeTextElement("interface",QString("%1").arg(ecuitem->interfacetype)); xml.writeTextElement("hostname",ecuitem->getHostname()); xml.writeTextElement("ipport",QString("%1").arg(ecuitem->getIpport())); xml.writeTextElement("port",ecuitem->getPort()); xml.writeTextElement("baudrate",QString("%1").arg(ecuitem->getBaudrate())); xml.writeTextElement("sendserialheadertcp",QString("%1").arg(ecuitem->getSendSerialHeaderIp())); xml.writeTextElement("sendserialheaderserial",QString("%1").arg(ecuitem->getSendSerialHeaderSerial())); xml.writeTextElement("synctoserialheadertcp",QString("%1").arg(ecuitem->getSyncSerialHeaderIp())); xml.writeTextElement("synctoserialheaderserial",QString("%1").arg(ecuitem->getSyncSerialHeaderSerial())); xml.writeTextElement("loglevel",QString("%1").arg(ecuitem->loglevel)); xml.writeTextElement("tracestatus",QString("%1").arg(ecuitem->tracestatus)); xml.writeTextElement("verbosemode",QString("%1").arg(ecuitem->verbosemode)); xml.writeTextElement("timingpackets",QString("%1").arg(ecuitem->timingPackets)); xml.writeTextElement("sendgetloginfo",QString("%1").arg(ecuitem->sendGetLogInfo)); xml.writeTextElement("sendDefaultLogLevel",QString("%1").arg(ecuitem->sendDefaultLogLevel)); xml.writeTextElement("sendGetSoftwareVersion",QString("%1").arg(ecuitem->sendGetSoftwareVersion)); xml.writeTextElement("updatedata",QString("%1").arg(ecuitem->updateDataIfOnline)); xml.writeTextElement("autoReconnect",QString("%1").arg(ecuitem->autoReconnect)); xml.writeTextElement("autoReconnectTimeout",QString("%1").arg(ecuitem->autoReconnectTimeout)); for(int numapp = 0; numapp < ecuitem->childCount(); numapp++) { ApplicationItem * appitem = (ApplicationItem *) ecuitem->child(numapp); xml.writeStartElement("application"); xml.writeTextElement("id",appitem->id); xml.writeTextElement("description",appitem->description); for(int numcontext = 0; numcontext < appitem->childCount(); numcontext++) { ContextItem * conitem = (ContextItem *) appitem->child(numcontext); xml.writeStartElement("context"); xml.writeTextElement("id",conitem->id); xml.writeTextElement("description",conitem->description); xml.writeTextElement("loglevel",QString("%1").arg(conitem->loglevel)); xml.writeTextElement("tracestatus",QString("%1").arg(conitem->tracestatus)); xml.writeEndElement(); // context } xml.writeEndElement(); // application } xml.writeEndElement(); // ecu } /* Write Filter */ for(int num = 0; num < filter->topLevelItemCount (); num++) { FilterItem *item = (FilterItem*)filter->topLevelItem(num); xml.writeStartElement("pfilter"); // this should be filter, but to be compatible keep it item->filter.SaveFilterItem(xml); xml.writeEndElement(); // filter } /* Write Plugin */ for(int num = 0; num < plugin->topLevelItemCount (); num++) { PluginItem *item = (PluginItem*)plugin->topLevelItem(num); xml.writeStartElement("plugin"); xml.writeTextElement("name",item->getName()); xml.writeTextElement("filename",item->getFilename()); xml.writeTextElement("mode",QString("%1").arg(item->getMode())); xml.writeTextElement("type",QString("%1").arg(item->getType())); xml.writeEndElement(); // plugin } xml.writeEndElement(); // dltproject xml.writeEndDocument(); file.close(); return true; } bool Project::SaveFilter(QString filename) { QDltFilterList filterList; for(int num = 0; num < filter->topLevelItemCount (); num++) { FilterItem *item = (FilterItem*)filter->topLevelItem(num); QDltFilter *filter = new QDltFilter(); *filter = item->filter; filterList.filters.append(filter); } return filterList.SaveFilter(filename); } bool Project::LoadFilter(QString filename, bool replace){ QDltFilterList filterList; filterList.LoadFilter(filename,replace); if(replace) filter->clear(); for(int num=0;numfilter = *(filterList.filters[num]); filter->addTopLevelItem(filteritem); filteritem->update(); } return true; } dlt-viewer-2.18.0+dfsg/src/svg/0000775000175000017500000000000013001357026015606 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/src/svg/action_regexp.svg0000664000175000017500000002365113001357026021165 0ustar potyrapotyra image/svg+xml dlt-viewer-2.18.0+dfsg/src/plugintreewidget.h0000664000175000017500000000056413001357026020547 0ustar potyrapotyra#ifndef PLUGINTREEWIDGET_H #define PLUGINTREEWIDGET_H #include class PluginTreeWidget : public QTreeWidget { Q_OBJECT public: explicit PluginTreeWidget(QObject *parent = 0); void dragMoveEvent(QDragMoveEvent *event); void dropEvent(QDropEvent *event); signals: void filterItemDropped(); public slots: }; #endif // PLUGINTREEWIDGET_H dlt-viewer-2.18.0+dfsg/src/exporterdialog.cpp0000664000175000017500000000412113001357026020541 0ustar potyrapotyra#include "exporterdialog.h" #include "ui_exporterdialog.h" ExporterDialog::ExporterDialog(QWidget *parent) : QDialog(parent), ui(new Ui::ExporterDialog) { ui->setupUi(this); } ExporterDialog::~ExporterDialog() { delete ui; } void ExporterDialog::setFormat(DltExporter::DltExportFormat exportFormat) { if(exportFormat == DltExporter::FormatDlt) ui->radioButtonDlt->setChecked(true); else if(exportFormat == DltExporter::FormatAscii) ui->radioButtonAscii->setChecked(true); else if (exportFormat == DltExporter::FormatUTF8) ui->radioButtonUTF8->setChecked(true); else if(exportFormat == DltExporter::FormatCsv) ui->radioButtonCsv->setChecked(true); else if(exportFormat == DltExporter::FormatDltDecoded) ui->radioButtonDltDecoded->setChecked(true); } DltExporter::DltExportFormat ExporterDialog::getFormat() { if(ui->radioButtonDlt->isChecked()) return DltExporter::FormatDlt; if(ui->radioButtonAscii->isChecked()) return DltExporter::FormatAscii; if(ui->radioButtonUTF8->isChecked()) return DltExporter::FormatUTF8; if(ui->radioButtonCsv->isChecked()) return DltExporter::FormatCsv; if(ui->radioButtonDltDecoded->isChecked()) return DltExporter::FormatDltDecoded; return DltExporter::FormatDlt; } void ExporterDialog::setSelection(DltExporter::DltExportSelection exportSelection) { if(exportSelection == DltExporter::SelectionAll) ui->radioButtonAll->setChecked(true); else if(exportSelection == DltExporter::SelectionFiltered) ui->radioButtonFiltered->setChecked(true); else if(exportSelection == DltExporter::SelectionSelected) ui->radioButtonSelection->setChecked(true); } DltExporter::DltExportSelection ExporterDialog::getSelection() { if(ui->radioButtonAll->isChecked()) return DltExporter::SelectionAll; if(ui->radioButtonFiltered->isChecked()) return DltExporter::SelectionFiltered; if(ui->radioButtonSelection->isChecked()) return DltExporter::SelectionSelected; return DltExporter::SelectionAll; } dlt-viewer-2.18.0+dfsg/src/dlttableview.h0000664000175000017500000000113013001357026017641 0ustar potyrapotyra#ifndef DLTTABLEVIEW_H #define DLTTABLEVIEW_H #include #include /** * @brief QTableView to wrap the paintEvent * There was heap corruption from paintEvent, when * enabling filters. Root cause was not yet found. * This is a workaround to disable painting while updating filters. */ class DltTableView : public QTableView { Q_OBJECT public: explicit DltTableView(QWidget *parent = 0); void lock(); void unlock(); private: QMutex paintMutex; protected: void paintEvent(QPaintEvent *e); signals: public slots: }; #endif // DLTTABLEVIEW_H dlt-viewer-2.18.0+dfsg/src/plugintreewidget.cpp0000664000175000017500000000152113001357026021074 0ustar potyrapotyra#include "plugintreewidget.h" #include #include #include PluginTreeWidget::PluginTreeWidget(QObject *parent) : QTreeWidget(qobject_cast(parent)) { } void PluginTreeWidget::dragMoveEvent(QDragMoveEvent *event) { event->accept(); } void PluginTreeWidget::dropEvent(QDropEvent *event) { QStringList types = event->mimeData()->formats(); for(int i=0;i < types.size(); i++) { /* QT advertises our filteritems with this MIME identifier. * We use this to identify when a filter item was dropped, * instead of some other random data. */ if(types[i] == "application/x-qabstractitemmodeldatalist") { QTreeWidget::dropEvent(event); emit filterItemDropped(); event->accept(); break; } } } dlt-viewer-2.18.0+dfsg/src/injectiondialog.h0000775000175000017500000000250613001357026020330 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file injectiondialog.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef INJECTIONDIALOG_H #define INJECTIONDIALOG_H #include namespace Ui { class InjectionDialog; } #define INJECTION_MAX_HISTORY 10 class InjectionDialog : public QDialog { Q_OBJECT public: InjectionDialog(QString appid,QString conid,QWidget *parent = 0); ~InjectionDialog(); void setApplicationId(QString text); void setContextId(QString text); void setServiceId(QString text); void setData(QString text); void setDataBinary(bool mode); QString getApplicationId(); QString getContextId(); QString getServiceId(); QString getData(); bool getDataBinary(); void updateHistory(); void storeHistory(); protected: void changeEvent(QEvent *e); private: Ui::InjectionDialog *ui; }; #endif // INJECTIONDIALOG_H dlt-viewer-2.18.0+dfsg/src/png/0000775000175000017500000000000013001357026015573 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/src/png/document-open.png0000664000175000017500000000301613001357026021056 0ustar potyrapotyra‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<‹IDATX…Å–ÍGÆõ1Ý3»ãñîÅ• L>€8É:båàD!=ôÅ‚+þ$ÿ$ BIÍ-²¸$$2N80HÈâ° Á!ëh³3;»³3ÓÕUÅag{gzfŒÅFÊ#•ê³ßç©÷}««DE|–з³(Ë»¥”.¨T^Ob³AïКͦøáêSüæù¨×ë3×y¿§±ÝnË_zá±wÿþî;Y’}'‚øP.^¼(®ÿ󬯯OzïqÎáœ#ÏsŒ1ÄqÌ·Nß#Žßyü¿{ãµ·ækóõû}3˾ü_®_¿./¥d¿!R¢”BkRŠJ¥BT«U¤”<þø<ú½s÷÷ãÞY–©[z`yyYgYvÅZû@y÷žÿù@(¥ 7¼ý‡·qÎŽ­ÓZsß½÷“eaòý'ŸÞû³—¯\þíòW–ŸX[[sS$IòåjµzïùóçuÇ‘sk-¿zþ9¤”cdgWÎíÑqçFƒK—.ð…_§¿yú±kýËOµ ~>U@–ei­Vó7oÞ¤ÕjñõÞc­ERŠ$IÀ?]ý#ÖŽo(¨T8sæA”Rœ:u c yžs÷]w«÷ÿµö³ç~ñëg¢(òŒ1Iš¦biik-ι RJ^{ýUYy„¥¥c<üÐÀ˜ð‚”’ PJa­ÅCt:Û .„ƘdB¦iªZ­6­V«°ï=J)žþÁjaøÍ·ÞË2¼÷AÀß=ƒÖ?ª²,àØ±cI§ÓQ‹‹ cÆcŠì߇RŠsž#+“¶µÖ³¬­­eFCnmmŠó½O:jü÷W.c­› EP©°²r¶øvÄþ]0??oVWWõææ&×>t\}ß„û!8 ¬µ d¾·ñòW»¯þFþ„Þ{Ón·u»ÝæF«ÎŸü6_;±ÈÁü°¾Ëo”Fôz«Ç/_¹ö`10¢ÐÔëó5c æß’#µ€>é³3È?Ì÷¦–&ÄAU5Yf‚Öþt‘YÖZÓélÓn·égŽz- w!@ †&JÅÏ*þ ¸½âœ'Î,IšƒðÞ§ÕjÈÂÂi.˜ 5Þ¥h9¹M?³3Û5½$g»“ãœ/n¶B@žçY·»K§³±Ÿ§j<5pÛ‚Òbïa71d¹#Ô’81ÎÚüæ„kmjGiÌx@"nç[ð¿±ÞÓK Öy´TE?N3!Äæ„ç\º»Ûcc;ãèü&w(%¦XŸ¹Ù1¤Æ1H-xQ„1P’Ý~š ’pÔ‰Ö†Ô©ÐO-Ö–Ì‹±j˜c¾¨­ó8Yî&N¤ªÝÞM]îý¤ç\Üëõhmkj ½Øæ1ÜenÆzLîÈí^†{1AQjÄÆ²Ó‹•jj!2¬£u…nlØ qf1Æí¹Z”íNI’—FÑOsú‰ÑÌÁ`0è³Õ­ÖàÆæ€ÁÁSnÖþÄŒ$-;GÝAF–ÛÊߎ¿·u×ZI€sn§çH­£;0dÆY˜u gDbl\JÁæN‚r<ÍÆr Žcº±åø!sUM5øÿÈÆ– ]$… NR¤;£ó£úÆW¨WózâýX›…òühßyO§“"¼ØšÐl6ƒ••Ûdl<mlŸßSYn›t´ï=llìØÌ þÜl6uE9ìyNŸ;yòäÓ'î[}69úu5å÷(xpÈÓþG¾óòOZï]½ ìDQäö¯¶ð%†wT«G”Nøaàœ3ÖZŸ#œtºÀÇÀ:GQäEE4›M €âà¾ý´á‡ÅyEFždŸþ ˸$(²»R/IEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/network-offline.png0000664000175000017500000000262113001357026021413 0ustar potyrapotyra‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÖ1(•E†ZIDATXÃÅ—KlTUÇçœ;}L™¶ Öh%µ­”T”4$²Ð’¸²5>MÀ ÚhŒEƒ‘0!DÑ톤‚Ä‹è¢e¡+•‡¡˜Ð‰!R¥-­}PBK;Σ½ÇÅí\g¦3…vH<«{¿óøþçÿ}ÿïœÿs‹üλo¿êö¸¿ÏÄa08ÝyèÓ/^Žý‹™ìö¸¿oØþ&ããKržï*?ÑþõKñ6c±‹„Ñỿ;ì[Ä´öö#ÛëýßLrÇ¢! `_ÍægÐZ£Ñ˜Z£MÐhËfZ6€™úÑ‘ •åÊ€”€± 5ÀúD 0-0S¥¥Oà›ôG€ÜŒhÓTs@ЦÅ„˜&!ÐhÆîNá †ˆFgèëëÅPŽœŒ@ m‰˜Œ„ ‡Æ †#(CþÇ€Ï?dgšÊ åZë¹Hh@z‡î033‹TÊ6ܸñ'yNWvZTãß´·9ëžË†èóúnO‚ÉJ¤Š‘$lk×V Lë´2Õ¸2œttœd0 Z[ i C’‚ÒçÀR4žëÊãØ¡WŸðY@”´ó­ÑqÅV*)°D3:2œ8ú«?e!ŠD#õJ̯üÆÃÒøäÄwo¡¬¬¥TüÒõ>ß®¼ü…d¨qª*«ìÌ×Ú’ \+¹=dBLÆ©d˜Æ'&îY\ŸjO›/‘pDîY(2Ñ8[k¶ …‡ÃD".u_úQ)U'„8 ”r¯YSòÆgŸ|M±óãö^N ­´ˆ¹Xß 0éŸÆ´29¥Æý¾gΞITInnÝÜçþÁ­yyÎN§ssNN΀') - $-ÿŒÞ#Š¢ÁÚyGGF(9ò%Y·ÇЦ™2Åp6ÕYgÞða(O€‚žÁ;s»³b íŒÖi5ÞÿÁ‡¬ó¬â±êRÞï@c^¯§Çëý6€RJíC=}õZˆ6?[A$Á÷û5Ö740ÞÖ†ŽF>Oжm“{½ÕI9Ç¿^_X°Ü¶Íš³ôôܰÿShŸo mš–|£Q„a·iþ®®„q®šü]]Ö)Ñ ¸ øæ#+EJ)R**‹ªuë©Z÷U•Ud;²1¤ ‰AkE‚#gu5k/\ ¤¹Ù¶•47óä¹sänغ]½ríyàç…¨ËÎÉNÛ·:~#ÝÝŒµ´PÔÔdÛŠšški!xùrj§éì8­yàà'ÑÚšZ —“›ë`z:H(4VãÀþø…wí²Œµ´Ø¶yEkk«ãý]ïmòxÜ¿\üíâýOÂ8/õ`´¶¶:v¼Õ°Åãqÿ´Ê]B~‹âÕ«éï¿•îVD ¤¢¢‚p8Äõë×ç)in¶ig"™`ï¾=Û\®eG‹W=NYyÁ@€›7ûìwSò!ZZZJoo/·(//'¿ ñ”snÜh;wXÔÔÄø©Sº»¸\ËŽîÜшßçC*9kR^n—WsÅÊ¢•Ö%C(j=nÎÅõO_½JOm-¾óçrb¢£ƒ ×;ŸÓ4Ïûªµ&“7_±V-p8ÐÑh‚óX‹ÕápXca6¶A d9s qó’ëªL²IÀlƒÎÊêê EÕÕòJ1c^¯Ùëõ^<¤vÖ8­ái ê>OòY×4¼ø/&ÁlO£’cIEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/document-open-recent-2_gray.png0000664000175000017500000000252613001357026023522 0ustar potyrapotyra‰PNG  IHDR Ùs²bKGDÿ‡Ì¿ pHYs  šœtIMEß (:É}ÁçIDATHÇ}•YlTeÇçn³t:mi ¥”¥lÃR¡…`@–DBb /Æ`bD ÅãÑc4& ‚ ‰hL0>–ªZÊ*R(HM¡-´”Zf¦³Ü¹÷~>Ì‚Þr¿/÷~çÎùÎ&<âÙ¤GVÏK³šæUâhiýšsÄ;pâÌIõðYù÷‡-UÖ{¼0‘ÆH¥„ áa3Ê€{e4îxf?Ý“ù‚yr‹öþ‚`³ 2äq“¥ØœÎ\u_Ûyà?^ •üP÷ôò0 gH!HPUQ)UŒ'ÇÁôݽ#Û¿v"Ø\>>wæâÀMéV&J QJqH3ÌMn« ¤†*Z3=ÇFÖ)ô²K=üÄüfë]ª›zy\l,ªyƒÔ0‘©L•aéB)]æ™éÚt]ûÏÌú aâàO ªQVI‚ë,¦?²’r4,"LfçÉ)Kf›ýMÍC'Îh[šÂ¯. _gY%íÌgÍ8ôw101Ð 1ƒu2$}*ÆšˆþÑæ²1‚𮥥Ã\Uëù˜/ØÈ\G9èèèŒg…\%Nž–Ò’w}‚­ £-µ§›)„øŠ:¿ÒG 9ß‚¢¸†ÆDæËe•¤É46m/5G‡P"µ$HáñçYG”÷ÐÑ|ŠÙäÔrÌ hë .<7E H˜.ŠLt ù.hh‚†Î ­×Ë1-h¼Ú¶úhÄ`”¬*L‚Ìd;b¸í Âc hÕ¨Eo™†šZîæH¢aº¹Hh&G ‹;¾îû3/Œ¨Œ8Ds· j"zO~¡—*êxŠ2‚„1éÇ&‰ÇÃERyÉVZµAEÀtÈSÃz„0|(:¹NyÞaQÔ°pð°%†d²ŽfHb¡£ð|¸|G-Ëh§“„hd3˜Œ PäHô'·”' ͇j.ÒF)):èà !$M·×àϘ¡SN'yt<<„B¡mä$ý(Ö3ƒB ÄÃc˜€„qɨÓýÆÎ¡í½‰¦ô1»oEψQ1æTשWÈÚá“J÷Û>;À4¹äÝ;äàààRþνïßU5K\z’ö~ÐÀÛו6¨F“kc¢äï{h<:iPa²ÜÈÚ‡@‡ŽÄ’IÖ‚J½\~W“$€ »É%õŒ–ál*þö½Ry¢,â¨ÁÅ!ïÃñ÷E;nÑ®V‹CŒÞXâ˱Žt"»¸g`M½U&ŽQ&%~ºÜÓ^ÐßÍYÖJ„8­Éܳ{úïµ4éèžW>2o’9Njå½”cÝç„‹ËÇ•+« ã·TìÍÏ¢] °œ9ÑX?Ø0Á,£‘ º ]*))F¹Ë 󇲥EæcsƒÖL쓽û…W$00”qªuZúÖË(‘*idº”"#JE¨c±4bq‡ ÎélÏëû¿‹i±+jö|gäxvN)¦‰I¥LÉÔÊ8 KŽ8—U[®ïøÙ͇Oaûw¬î ÁòanXY÷²±°"_] Ež”w+Ðì¶žÝÏ’']¨ò‡«Yhu‘¥Ë£‹‚MRŽçg/ŽtjKåü|²qÿg:9Tl‚àŒGŒ÷­½F?Ì''ÜIEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/document-save-as2.png0000664000175000017500000000376113001357026021545 0ustar potyrapotyra‰PNG  IHDR szzôsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÛ  (Æ~¿LqIDATXÃÅ—{pTWÇ?çÜ{7›lÈ»$C€„†"5‘R£¡-H”ç¨ò¨EÚÂŒ3N©ŽµõÊŒí”AýCigt¬8¶V*B[§i¦¶u°Ú”W€„$Èc³{wïÞ{Îñ$KÂæӪgæ·{îÝßžß÷~Ïùý~ß ÿç!>ÈaÚ矬ÓFlÂÌB0JˆçÛ~ë­ÿ€ÉKwÙvú÷‘œ¬»fWWF¦–Ê‚¼l‚@ÑÞÕ§kKEûâGþºöýßéøX”/r²#MsmMElάªB!ÅTǶ°$XR"¥@8ö~‡:Ø|,îæsí=ö±¨^»-g½>¯¶ªÄä‹Ñ2˱ó¦–åÍšY.-)ñÒ m 9Y6]—bìÞÿvT§ýÙç^~¼ó𮾑S¹äáâÂÈÜÎhlæÉöhs_¿»½o ñB[GOvëéÎiÓ+KÛ±ðÒŠxʧ(?‡ ‘pö™ö¾›ûOþõùÄÀäµ;³­¸×hY¢Æ7zÅ…¿ûìºÆÆÆÃÀSÿ€çëósª. Š^1gÉ’%üùõwùúΗ¯¡Í¶%BÒ¾Bkƒ6†,Ç"‘Js뚟ñ½÷î<¼v9›€¹!€è«w‡ Vß_Ï=E–eQwk)ßÝ4gö½Ë¢¹Ÿ";Â’Û’ ík´1hm0ݲ)ÆÀÛ-géìêá«_˜E~~>ÕÕÕ3„‹öìÙóê  MË–-#ãû>Kë*‰öºìÿÛ?Yxg5Ñþ$n*À`0fh[\/à…¦S¸^@íŒR‚tŠcïµñ‹G¡U@"‘`ñâÅœ8qb+ðê ëÀêÕ«ož8qâOÖ­['z{{±mÛ¶¹}F)§.\æHk3o.ãò Ç@£Ð#Úç2HC²›bu;ωcÿ`ùm9D;ÏÑí¦|R9ååå455ÝRQQñtkkk⺠!6¯Y³F¸®;rÖC¹þõu<öË&Þ{ká(“íªrº(ËNÒÕÝÅÅ΋4¾ÖHSóë4jF ÉÖ-[ÙûÇ=ÔÕÕlÙ¶m›¼†¢¢¢óæÍ›ä8©TŠH$‚çyCÁ•B©¡§Ý¾ù¾öÓ&::ÃÜ[WBaa!o¾u™P(„1†p8Œ@@–¡¬¬Œ¦¦f¦WMçô™SÔÔÔLkiiY¼4†!ÄW–.]J, Œ1¤ÓéÌ\kc~°±–“gÚq]—þþ~úúúH¥Rôôô åPŠJ)Rr¶í,¡Cuu ­­­ÌŸ?˲¶ŒÙ‚•+WN*))Y6eʉJ)âñ8ÙÙÙ™b4ÂD^¶äû܆çy(` OõÌéäR\KQ~.Åù¹”æ1±¸€ò²¤ñ©ªª"//¯aíÚµå™-°mû¡U«VÙ®ë"„ÈX2™Ä¶m"‘Aày©T ˲˜Táô¿|Î\2ô†?Á„êyú0Žã =ž¹Rñû÷#„óòÍßgÙܹö6?´‡é__[[Ëo¼AKK AŒ«‘äädsÙÓÜ}çÚzÜLcW© 3|ϱ$Édœºº:^yå•2€[&L˜À‘#G¸ï¾ûÈÊʀݻG<¥ˆ„rBF\uLŸ1h^<ÆM7U£µž>: ²Òé4Zk hjj¥ŽBAÈ–7ôóMÜ (ÍÏ&íÒÕÕ…ÖzlŽÐ‰D°m{œÝÜàd…Hø(m”ÁW:Ó ´¥‡JöÈH$éîî¾¶Œ ÊÍͽrˆ>HLD˜Ó݃\Žy£D†£4Äð‡cKüt*k €Ñ"bÜrJ •Í¥˜‡R†+q͘À# .zdYdŠÚ5 H)q]—†††q8Þòž’H•*(f¨Œ[‚! / ô§ÈqÔõPJQQQÁÎ;Ç•†AðÞ™Nb=¥>è¨ „À² s«B#ëë cLÛ¹sç*ëëë3%w¤ ŽÌ¯gJ©Ì÷èùõ|FÖ¸xñ"ZëV l¸®ûí;v<%¥œü¿x!UJµG£Ñ¡‘ Å@!„çcŽ›@) ô=â*‰¶ðõÞš>â†-ćño~È\¹vÁIEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/network-transmit-receive_disconnected.png0000664000175000017500000000244113001357026025774 0ustar potyrapotyra‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEß 4N¨Å·®IDATXÃÍ—MlTUÇ÷Þ7e:-ý$tÚ‚-¥Å’Wš°1]i¢›&ŒXŒÑ`À„²@4,‰±ÁHÄ"Zƨ ¢¦jŒãH"FÀBi í›ï7÷¸xÓÒ)L™vHôÎfÞ¼¹÷üÏ9ÿß}÷Á<ÔBþ¼mëög[Â-ÃåL&ãŸì?°ï™ékg!“[Â-ÛžßÄÔä䢂×ÔUß:|ìéÙ¿9 ]$›M_ëy¯¡Á(uŽëš£m¿öÅ# oî½ PJ9 Þ@kÓKˆd-ä<X¬ˆE´`­õ'H îÇ©ÐKË`´r”'¾Ä_E”B+Á £rˆ™ôí¸q7T–% gÅhÁ¯€Í!9PF¡t­AtäÃì¼ç½eÕ—èݘ%g hƒA|Yèî^C<—¢Êf¼†Þÿ mOcµƒc=Ð ˜‚æõÀb¯ÒK Õ|OÌ÷ƒØZÀ:HFa”½L;j^‹aüFt˜Éñq”“àŠœ…ì¬EÅ߈Â^ŸÕw'à<(Æ'£~ëb·?¥³k5ÆÜ)}ërú"n”PmÕüÊd€5tÏzÂYD ¡fYׯް€.Þ‚2Ÿššà㡊ú%M뉉k¯Ïçr gãzRé$étšL&ÃÏ?ýü…1¦W)õ†1&¼reÛæ7÷xN)õÂÎÝ;~™+@h (AÚïuô26}(Îx4à›‘‘‚¬+++{ó_÷\¹òÏÆP¨úƒP(ôD0üh.4¡2¾ ƒIåPY!9… DÑ*‡¶NQƵö[»úáUÓÉOÄèêê"Êp¤m$•Jœ°Vj]×} ¨( Ê7aæúˆï~O¡«ÀqOe<`¾í$Àª¶.^ú›ÑÑQ:WwQ[]G]]îÍÈS'ø±høÈ×@MaŒQ®kŽŽÖžë›a9;÷DRȸC/^ÆcšñÇ[ç rMM~5¡yÃÄæ°‘HlaÖfÎÖ¨Y±üd_mCÍ9áÏóf®ç20›ñãÇŽßw÷¼yãÖA $ DãQÛØT¯E,ˆŸ’5–µv#€µÜ—ñ»w¬È³® 2ƒé~y@H©§Ïüö$ðÕ|ʃÁR+çX®½wÏþlφêëë …ü ‰DŠd"5/ãJ©õ@bšñ’ô÷÷«ÁÁÁÀ+Û_]·|·˜ÇqžñLžñ—w ¼Ö\Ê<`pp0°uó‹=ápË—Í-§¶ºŽæÖVFG/;•Ä8¹ï!``מ-ápËñÖö0]k¥Ÿ¸ È=?ímíD£\×¥9ÜLÌQÛ¸G9g~?³ïíwžÈ¯Ÿ(©ÕÕ5‡¶nÛB$C+ƒ—ËÖ=Je¼äXk¿=ôÎáõâes6ã ¡@ç{Ì‹ Ì!ã.RJa¼Hÿ_ã_*‡£µ±ê÷IEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/edit-clear.png0000664000175000017500000000322213001357026020311 0ustar potyrapotyra‰PNG  IHDR szzôsBIT|dˆIIDATX…µÕ}l]uÇñ÷9÷ÜÇöÞÛvm×­víº•‡µ…Ù±±=°̈‰“±dVS6jâ1èbDÑ F  Ø2Ê@cÚ1”ÛD]]ÙDÙCWº§’>ÜÇÞ¶÷áÜÇóèÞâ”tvë7ùæäwrrÎë÷9¿s~õÜ}Ø)³¼dÂ}˜hf7ªñíGºˆ0G%žß!ý¤æ†[m¹çkö\&oà˜vöøë#ºª7=ÚEf.Ò•óK·ÜÙf?rà»(ªFIE´°¾qaàÃþVÐ3±p`¦Wޱ¸Êxð©‹ÈÑ1ê×;îÙsåµsÞMÇ|¦¡¤9øX39*k›ð”Vz=-÷ÏÀR8¸·Ùü 4|¡õî[]F· н•¶°ÿòÒ7Ïš/Ì)à­>‚Ÿi2„ ÿùÕM[­©PÙ襋–3|ùƒÒ»nÖºŸ#t={¯Ñã§“¡‘sNÒJ¯CS2ÈÁTUÙœáïþÖþüß;0;;¯Ä϶„éNþ|;5‹¥¿åön33N:ÂV!b+™`AÃz%2ò‹‘N.¹cÃsøåƒ–¬ëK7ߺ°È^Ä=¯†ú­@¯´_¹p8–PU³}üaN½¯°4# Ç‹¼Þʆ•_À[±Œ¯öðÆž£Ô9‹X`ˆ d j÷Ct¶iº“=|Ë0ÄgÞt£^¹è6‚}aöï~ )aÒÞ²¯(âóùp„ÃbZ×[€?Ï0mǰQ48"ÕÆûš}äÄ8knVÖ/¡´ªŠ÷~þ8ÐGÍm¦¾êaLÃøÎº6º¯àÄ«xºÚ Õçp.ÓÁSR‚ìõò·Dë|Áܶ¯]X¼¢ŽXdás¯§³òÐA¯ƒ‡·¡\À#0´jÝÀY‡È¸ ¶üx ëw¶cæz!÷>ŠnE1 öf'}ÇÎä4îÝÔF캾Ÿµ t VœŸÞZÌögŸlvÓˆ£eǰãèº9‘°­!O«¡ÎQ }ÃÚ/ã¿f@Ѱõ<Ѹéþíó««@ £SJ&•ÄîPѳ~-A,Åæ^‡(.1†ÏüjÂÌ¥6¬mãüL÷Ÿq‡û5\*šGR3T5F %ÄnHŒ‡AÐrv‡—X MëW=V.9ËOöàök`àW3qCUAÓdtuAHbh9²©4JVÇÔ3yë™y›l¢G¨_ý¸§ÈÝðÎñ—ùâ5 Ó‰HVÓ줒 2¤AJÊ‹‰‚¸<^’1 „îŠf&†uR·r·«¤zó ½x±·ç¬ü+#‡uCð’†B":ŽER(*qõáòT#GR˜Ú(e5k‰úþÉØà~Þô€£úÖo¶ŠZñÈñ¶Î pÇZN45ENµ¡ä’(JŽdé8ࣦ »Û¸ñs…îêÆ®l2…Õ–6&}§Ôl:B`Ì|£ë(_;Â0 Z¾Õÿé)€:ã^OÁZÐҾﱹy Oê&F<Á‰Ó9üô‹ô¥TÌ©hó­O)å®ÿywòm)h‘ÿ.°B€‘ï)ÄÔQÉ÷Œk`º² ÄüXàãŸt!bjÖS‰\1³k­ÂÕ]˜@!âëß4ÁÛ9“)IEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/colorize-2.png0000664000175000017500000000524013001357026020267 0ustar potyrapotyra‰PNG  IHDR szzôgAMA¯È7ŠébKGDùC» pHYsHHFÉk> vpAg ‡úœ˜IDATXÃÍ—klÕÇwfvö½¶×öƱ'8Ä!IC€B i j-©ÒJ­Ôª ŠZU¢J‘ ÑJ5jEúøôå¡R>@J $€HRƒ'ø½Nl¯w½Þ÷kvæÎí‡Ý¼*PB[©=ÒÑî½çÏùÿÏÜÿ±‰ÿdñ½ °%8€ ¨æ¦ 7Çgÿ[îo§Ž¾Î;9)VC«Q m ª·®A^ƒTæÃ†æHÇÅþôïøùR( V[bÚŠÅ\k˜Ú3¨¯µy:CmF›éWa¡IÝ•N½Vrró³Ú|.ãÔ¥»GÀ!µ‡«/À -ð‡äæ+Q¥ø‚é·µvµlé^ÕÖ×sUk°«Ï/÷˜ C“pkØÕ ³q§ëjèP*5~*û‚íª§,!&BJñü¥<Ø åyP†Á-‘Xà;]ý]7­ºéŠXÿõ]tu›˜, , RáJI±êe$³ˆx9†Ï”¬ Ïà+Mòö+ãÎûoMïÍ—ìvéOÍÀƒ1pª€Ïµ¸5Ò¸¯oÚ×l½.Ò·¶ Dž‰t‚r¾H^®h ! E©"xmêFnä´ÝGÕŒàñ(Ú´Û¼»Ùºä o×þ2º¯\ªß'aäÅ&QÏ™Rð·GÁqh3 ~Ú»~Å£[~üÍë6ßµÉÛÛíRÎMódb˜'å$¯–'8˜œÆÊ8\ Ow°ëÌ=œñ]æ bú Ì»µ•j²À–öAV|®UÌÍ–—ÏLІÀ¹@~+‚-æÎk·Ýú£¯=|OÛª«#xó#È\š'¦ãü¹³„°¨»yBUþaåYž0YÝ`dÂf¬Üm´Ãà8ŠuÙ½ÜÔ3Š/`hÕµáã ½…‚½ÿÌç$ÖÒbq¤ÍûÛ ßýÆ›¾¿Ýˆ¸'!Âc"2uê*Ûj¡ª6J)‚ÃÄbß¼Ÿ¯Œðvb5îv2¢knÅZW©èYdÙªHûütåz”:bìŠ@ âùɵÛn»óºm·µ‘7°Ê3øB!„¡aøMîíï§õ˜âØ©$B´³Èëç_'×õ‚¦ÑÑir{G‰/eßãÈèq&=tjól¼2 qVŸW'ºØôh†XŠ­oÛû!;Ì–îUËî¾jÃJÃ/`öΣr~d¾ƒRB#ÔÓÉn¹žr¾Š+%>SÇôk(e³ïyD nÙ`±¹~ ¡k€ ¶ÛȤ¦0}B  ?6 sLjttûî^¿ukÌ«ghí™Cx!¨CH‡²\Â"7[$‹Š…Àm•\Bk4bM'Ÿ,‘<2‡š¯àk1 ­]FŽccÕ\…5h04V/ZÑ»iå–¯R8úŽ­Ð]\ \A)Y$1éй¶ Íð€#Ï‹XSÀMÍ ¥~fß`Šîº$¨k$ú"Tw\Ã’uQª…*…ÛÁVsçxý¬]²®?í‘=˜¢z«dW³Õ—48_ ç”3aâñÔñ¼à1A7J€7†. ¨L7H§¹ ŽqÎ5WnZJKW€äsØÉ2QkÖFñv”ø0ÍìÇ…£J©=²q}hpm&r§'ëNÍ1 O 8iµjDVj¨D0ÒfñÁå¡À™¹Tmü<еJD®[ï< ÀÊ=$°äì>Öœ#ö{/êÌU¶@òKàÏÁ×8Ÿ|1à½U˜§Xó#u¬Ô»²„˜Åè[^csgÀßÁî© Íû©Ãz¢ëb‘&Fš ã 3ˆyöÃÎÆ‚˜— åzUFdoK±qaˆs/@Rh¢B»™¼×båjÀ9—ª<1¤€j¥€úKÄÔ£JpÝ_£þ/ÐÓܪ—n° â’æ7­A™F™ÅSÇúW‘ÝrØY?Æ]ý¸WàÀ×8i½1i›››±qÍså^ßÅùEœ/‚Û÷¤Ó¶9&P?‘ °2Å‹ßùô÷Åæ–H”©è—arfqL£ã9Bô$7 üòë÷ÈäÅ“Þ=‡®‚,å7K/@© Z‰¦ Ê—” ×¬òLU½i&@ÿ­×•Ûž i·g"@†±J³€âúehÄ)Î:FH<ˆ6660f0q†4ÆdæÆÀîa^Çjee%õbJRœä¡8I AÿÕœæ‰ø3![RC0ŒÒ¬µ,˜Ø*H*ÃQÀºÇz’Œä»”[ÝY2ŠçFè­Œ,UMë(cNUµ\.—‰ÞAüë¼ÈçógÀ

K¡ßÛ¸¾¯¶¦–OpêôIiÿë¿.™ÎÖØøÕº²ŠŠ–9³ç¤ü*EUÌö¶¶3¿úå¾5÷¨­©å­{Ä«éZJ×:ûRÓ#\5Ÿ_’]YQ™ÒÃ!8ðÑ•+Þ©5}·ƒ¦kPÔhjŒOUUÓÆó\rÉûFúÉ=HMÓÐÓÓ›¤“d)íñ ø’Ö6ŽCQqÑýèééEë[w.ÜÑZ¡Tþ–E¾wöôÙU‰:§ÛùãMMß_p_€°p¡¥åП>ÍZ[['$ùnظ¾)]LH4Fx÷‚á(»sÓf=½³„!©Y–9ró//¼*YéòK,š\C˜„Ÿ—å}WO4ONÙz#øÇEV,+Ÿž@ñªî,›CT,U ÔŽI$KQ‡Ý.GU(,½5ðœ'÷r$£¾áí ‚Í£j†fɦÒgv?»¼ØúÚ% (óŸŒÁŠæÍ›ŠßB¶+`)š¡AR$¤¨èVç}37Ç]NQ䄪é?Ÿ¶Œ6íhùì¼ÕÑáÈr;P8#“™Sœ;“"ÉíAÏ,ÿ¸Ó´@t‹„lr¥+w& Ië š¦Á2x–BÍÜl\é‘@ñâ£%Ù¼,)Á[Ûzönð¹«_n*Èküc¾[ƒ£›»ûü½·Yn;D—4Ä 45΃ƒ³`Y`ÅL´'P°ú%I’Y<Ç Cà`cz¿—{”ºiŠ„ë¢e!é‰-Y¾»<Óm>‰Ž…ÇÔš®#›÷²4y’c(ˆ<*Šórrs²Ùe sPUæAaŽ.Ž@UÖÈ'×ÿüÜhœÔ$:oc ØXØl-j)Kßú"Š *¨Ô‘ØbA,m5´¤š¤M°iš­Ô$¦i’6M³›ìGfwv>vî½>lšÍ¤ö Ü{~sÎ=çþ‡ÐÞ\ÒÚX[^QP:G³ê&2·²KYÕJ™)-™VÓ1÷õóÓp0²gkÓ;%õ UÛLbÈÓB qÄGlùŽ'µ_Ÿêfü‡›úz€ÜòÁëó4 å…Û•yߤûž2_-°* þ˜?˜­æ;–Ь7þB|*ùËQ|–Pdpðk¥—š'ªK\E0Ǽ’€Ê•EZÙ{OïU(eù%HUiÏËá]ÇÊ4)†‡ˆ@Ï[Ä•Lc¢mVšªìïÉÄòöò'{‹5 “UY·" jBƒdKYjÐ MMW×ögÇfþ‡È+öÈÍÝíÅêþéýji]Uµ"yc–i¤´ÈÜ+²¼¡± æ±>#? ÀéÞ+Sàààñ% J$*Ë’"(–¯pUMâ¢kÁ¡‘º~‰ƒƒs¦ê.š+PBÉ…/Ú®¿1vš £úåÎ9<ª !ryBr€¬ëQ©XºFvSÐ}ïêÝ× Õb‚ƒCA8@AgËýñß'Æ#p4éñíé V÷‚ä忇ƒ1f›Z" C¥\»p£kø00Zë«}Þr€0Û¶ M]fš\8Ó<èÚYYÝäò¹$nÛ–žN'4©ðëNà)@Oï¾ÅÏyf1KO¥´á‘ß¾ˆð'äü©ýù¸¿ÑßF„`¦=ñèܧaÛ),¸G¾D&²ÇB·i¾«WO*´Ð“R¢,Öœ¿ëúîPÙ«/ =I7:… Â‡á ÎáÁ×*ëÈ3䈗¼íˆ  Ä”ä/Û·$ cØdžÅܱp±`}i 8L YìC' @@@‰ƒ7¸Eúø o~ü©³“!u3@œK ïïöȈa\_ml#¶’ÁãÞ<,}.ÎÙ!;X&Øç‰bÎgìwCÖÊaÚÈeKºÅõý¡òGä`™ôQ“l‚â>"÷qÖi0ŽœÏðºÐê ´ Ý¡»”èÖíc!± ×ÌîÎÔÜIl—·–Ø\ƒ„¹v#Ô³NÖ(øÚ6Ú‡'û®fd¤à"ÅR À-ÓîÈ”µ–…Àj ¡4{eñ›Ë "0–µ/†n? @¥•.„ø©Æ[}™è¸k³÷6HÚZ[šŽ©KšÓ‹ÑÑÕ·ßþh¿N̰qCœ =XûcYUøà…:2Ða ŽÊðZóÜ‚ 5šIEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/x-kde-nsplugin-generated_gray.png0000664000175000017500000000202113001357026024117 0ustar potyrapotyra‰PNG  IHDR Ùs²bKGDÿ‡Ì¿ pHYsIÒIÒ¨EŠøtIMEß &'ž¸L¢IDATHÇ•Mh\UÇÿçÜ7ïÍ›yÉLÆÎŒIm´%Ai,Šj)]T)•¢n]*ˆ‹‚ºÑVAPA\tç®R?6Š(¥ CŠmmTÚŠiA1tœ&™dfÞÇ}÷¸ÈKšI2±ñnÞ×9¿{Ïÿ|<†ë8PÐð¡qb ÞÈý(N`Ϋo¯ ×ïn¸;Öµ±6ëÝ;žÏìRž®×¿½z•MÒÃå·Êû` ,¸Û[ðÕ&ö}k„^ˆÁf5ˆç\HTýÆ?w[¼\(³Ó­?³[-8¨žûç£ÁÊ‹Xøˆp¼€”.7òA¡Ý$8ˆõÜ/1ý=²lS£ â.€ÈÍ¿T<œZ$(ûN!ÅåƒÅ1Z²@õËÆ»XèÐ*300"0É!D`îëGÿ-Ñš“³jƒ,ˆ´(^ñ&Xq¯à˦‘@«ž-XõÅZ*Ú Rá#L¸sWhlgSÜAO£˜ô¬-º¶§vF@C+!FåúçÁoö¶Ü“ù°£x Ž`ªðHÏÍ©ó'õ4„A`Hr–t4sêÊ›ãõýéâioßÓ:Ÿ ;gl}¡/ïfGR§M™Vœ`„Atéãúëb·ó?]¾Ðë8F€LÚÝååpjp,ÿ&¦N©,[•+ÒnJ¬‘˜F ÏcD«šÄ±{ö6qeȽ£{­ûÚ?§Ð^ÃpFǶ¥¡@k’(7ïǹ' ð »W?™ÿ¢p6,ÿP}¶t¿b¿Ý¼É^1'0 Äˆá¤‡ž ö§F ¦3„,&þzen¿åù—ç¿ãÅÂÓL’TAh0¹.#‰¬®ÄqŒ…_÷è¶êížLé9J\m´¯?ŽãàiŒ¤ l4j•ɨŽ]ÎІb`¹>ÖôÂÛÉõµåR\Ÿ˜~5ž!eõæž>ZÈ/†%s·fb0H¨a×ìYûZóûöÜbXt;3q1jÆ–Ý}‡ÚÎû8§d{KÊ’®ˆÉ(–îzÙ{, •=’Í1 &£jª+ ¢}ÄÄdwªƒd]CÆÖ00Ðð1Ÿ½”í:PTXûqÊ&@ZÚ×JäÊÂÅ_?å$1UÏúÁ­pWÿ©éÞpÛLB0¤¤×šÛPwo¸%‚$øcá¢érÕrZ `04 T+ÝZÊ€A¼vßÿ¿þøíVÆ?\ŒIEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/go-bottom.png0000664000175000017500000000235713001357026020217 0ustar potyrapotyra‰PNG  IHDR szzôsBIT|dˆ¦IDATX…í—]ˆUUÇ{Ÿsï\?‚RqPûì‡˯ÊJKȇÆ@£Dƒ ƒ ‚B{éaÂzP{ìÁ #$•ˆPȯÁ™4t*1§Ô1umrR›fî×9g¯Õù÷:ãÜ›÷C/mج}ö9ç¿~gí}Ö:þoÿq3Õ\4oµÕZ…[7HUÚ~µ‚ï­ú'A”Åi„“¸‹Fñ±‹-6íÜd«Ò­ tyŽ]ØOî ¡ä %Oär„. (Ø|”aÑ=/U+ €­öBU%’§!‘D. t¡ËÆyÂ(‡“pxªi‚Ô|O ñ>Tlã3ñØI4œ *(:âÚXáP•Ø!Jü̘Pàr¥H €ª EaœDäÃtÍΡÌkX1é¨"âP¬`P¬Q\˜##—ñ’ j0ÞHBùä44Xó̤±“7¿Ò¸6e­EÔžØÅŽ­`! /è!ëz± °XT!™H±jéš8Bâ4¹cïÇaÏÕ‹¯–{®²éòá·ìÚiw>øæÓ¾8âû®=¤Ã^”gBy®d»è þ«` &¨¢ "JÂŒdAà ZÛög;:ü¨e½¼^ΗWn²³UŒ¸·k޵~ÃôÉø—Ò8i–‹ý'Éé_Ø„Áó Ö3X?¶Æ3 ¾ç3tœ=?}øð„_ty{{ùZij&¥Ïîûngǹ‹ínjý\”ˆîô)œÍá% ~Âà%-~Òâ'ŠÖà',÷Mz‚¾Þ´~{l_wFµqÛ6\?•ß‚¶&2.EÛ›7ý™Ï:nô­„&‹ç›¸ ü"DÒâ%-SÆÍb´©gwóŽþÈȶuôVòQq Š­ë0}·Íq{Oþz|Åýw?”/ ßõ`}‹Wêñk?ª©7Íçó/?Éf³¹ÆoÖËÑÒ¿!@ç!~ÿ@xú|×™§›±$Ñëº èÃKX¼„‰­oÃ̱Kعkk¦çòïo·¾ï¶ÜH»*€®m¯Ÿ›M^ºÜ={ÁôÆÄ¥üÄæK¨K¦˜=vÍ­ûsçÚѲNÖT£[5@g‹6ß<ãê¬(’†Yw=îwç~+xÖ2cL#§ÎF‡ŽØòNÙÈ”ˆ$dß…xÖÃXÅúK±Ã©Ã‰ .Š‹•D‚HäP ê´T–L[]ÖyE€|”a^ýÊk¦ƒ)FØÒS,FñqxNE)­‰ úl* °qÛ»‰ÿe³ÄØ%¢J/HzìÀ^+ * €»®Gƃ¶è~ŸLÁÑ@;`¾xMQT ã¢ã¨0Wñ{½ªÿ·*ï­ý‹ø§6„»\ô <IEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/go-next.png0000664000175000017500000000230313001357026017660 0ustar potyrapotyra‰PNG  IHDR szzôsBIT|dˆzIDATX…í–hUeÇ?ï{ÎqÞdê¦Î3S Š~—.ç(*- ËúCŠ2#( B7#  ¢Èþ‘D#,„夅e¬i³6Ür*æ¯ÐÍ™S7›Ú¶»»{~¼ïÛ÷œywÝæœà_{à¹ÏË=çy¾ßó}žó¾mÐhE¶™Ql=w½uäõ$O{çÆÂb{% ZÃhâ-r凯}kÇ“­0µnzÞl½íÜoø×ZçºR0¿pñн1'–pöå¿Ë„JÀS.G›«¸gj¾óú¼÷ofe,(¶gÜ0Z$ƒ8G›*9b¸|û…rF [^°ÌZÔß=OA‘mtö™iˆ}úÖwh,ÃS.ÆhÆdOdLl›ËÖ$ë›=¾A-ݺ5 ,^‹e9H$B¢fJaóç©ñµ‹Ö ƒ&;k4SF?HyMi²úèÎ=I̯ýŒÖÞؽS3ì>± )¬.B¤‘¹,…Öm Ú(Z:NÓž¼À£Í:*gláÏU›ÿÊ_.Ÿ¬þÜ=ÞL¯3 ŒÂW¾ö´‡¯]|•Zx( —¸ßÂÅd#ç;Nr®­ŽÝÇ7áYqñê¼w²sFäm›¹ÜYÚïh­´‡@"¥ÄVН”aÿÊtx—hK¶ðÛÑJ¡•Ishþ»;ò¦óòÜ%±m%S||Våªà™«ðµKÂkÃ’6Žãhƒ FÆÅÕq<•Àƒ´ gR?c FC =<í¢M €)ýR áµÓÔV`9ËX¶@Úi ¤é¤Þ ƒÀhƒŽÀ…#Àîÿy±ÉlÙ±®³µýâêÊUÁŠ«è6ÒH+Œ¶À £”Þi )`ƒ-b<<éYü¸6ß—mèLtt¾Y½ZmL_DúB¦ö{)çŽÀ»T!ƒÑá“Ü\¦Ýü<õ'낊š²¶ÖF³àÐfUKêðSé$2 Èt^|`EP¤‚)ù…Lõ»ìÌ—ø‹V©šcb¹7÷i*÷îö©­;õG°ðL gúá$_Þ{jX»å“.u·â%+°‡ïÖìû˜Ëgû/¥É†Ó ;lTËÚ[ˆ§×%c÷Í$`]õE08¡§¯À),¶+dY–@‹»F>NÌGIé÷ß.®©ýF­ü°fºw;2 èЄl#ï"ØUD†fÝÄý¹³¸t¶Ó”ü´>qîXré±Ô®0?r•¶îsI¾B™´B€-†0-g!û÷ï výþkKã>ýÊÉru"ÜO‹W|1õDÀ^á½Ñ Œò¡¬¢Ü=pdïÁúþ¢¦Ãü—A4Š.ô|,÷çcÒ¾dA‘}!/wœßtþlÉ¡õê½xœ€Ë-ŒHû½÷¥@¦ERF³Ðõª677-ß³Z}E÷‹T´Aë—ýÌ)ÉŠX‰IEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/document-save-as3.png0000664000175000017500000000362713001357026021547 0ustar potyrapotyra‰PNG  IHDR szzôsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÛ  1 ÙÀWŠIDATXÃÅ—ilT×Ç÷¾÷ƳxÁÆØƒí„½¦”fZ“ʳ)¶l)"©PÒT ªAꇒ¤»PÓ()‘Ò…FêÔª‰ˆ¢´´4T¸JZª$l¥ÆRc 6Ážaf<óÞ»÷öƒ=“–DÚéHç½wuÏÿþÏvüŸE|Ô‚{z¾Y±^ 3DAÊ(}#^ëÚó­¿ý׌]¼½Ê¶Ý_GÂ%ÌhjŒÔ®”#ÊCø¾¢§¯_¿s¢+ëOUxkzvûÂÇ  néóciD§5$fN_)¤¨wl K‚%%R „€Ôž'’Yß|¾ç[N|,šV?L–ìŸß bìÅX|´åØåõ£«Ê§O©“–”d]…6†p‰Mß•¿Ú}8¦]oƹ·ží½SÖõ/‹žY™ÕKL9Ý;Ð?ÞÚO½Ñuár¨ãlï=k۱ȺŠdÆ£ª"LY$z¿§ÿÞÓzí®»z{ÈJf[-KLóŒ^vþ÷Ï,üÞ¸äÇTUG~ñØÃ”ö_Ëâ+1†Úª¿|ý`âJ|pö†BÑq-3ÃÓíkõ¥ëtýqËo®^ümgWLÙ–Äó5YO“ôøô'#fÃ]1аlëJmÄ”ûK¾jŒù¹ã8ó,Ë*÷Â Ž¸–9Qú®&ñÕP.’Wßü3Ÿ)ïÀ“_¯”Ržç½žN§Û³gOözváƒÖV·Ôþ{Zë—ׯ_¿`ùòåH)ócH¦³Ìò¤××hm¸6èQ[U´ÃìØ±cL¡Z;wî\ÓÚÚúðÂõt÷Ìñ築«bæ¢E‹øÝþãlÞþÖ ´Ù¶Dë)´6hc(q,R—©«^,Zû…¹“xjõRZ[[Ÿ¶æ–bûž½±òË |°Ê²,š§ÖòÇgóÊ›ÇY0ë“„‚,)°-‰\O£Akƒ°åÉ¥H)0û½}—ÙôÅéTTTÐÔÔ4I±`×®]ûn `X_²d ÉdÏóXÜÜHìjšÝoÿ“ùŸk"60H:ãc03–tÖç¶3¤³>ÑIµøn†§ºøÉ7 •O*•¢¥¥…“'O~ ØwË*X¹rå½555 êêêH¥RضmÛlxh:÷Mªæ¯G:¨© ¡Œa ™¥ïƒï_Œsár’d–ñc*ÚpèÝžÛ8‡ªŠ0RJ2™8“'×0rdÉÃ+V¬¨½e¬ZµêG7n|:DZm;Ÿ|¾Ò<óÓ6ú>S&ÔsôtŒ¬§ØÜRÆÔñuù¤ó<ß÷QÊÇu³„G(‹œÂ±èOþqêâÏ6mzoã !˜7ož-„øJ4%™LbÛ6Æ´Öh­QJñÝ 3Ùüâ~Îv]à³SÇñ÷ö>&Ô×PVVF Àƒ”C ‚€ÕAi°›`àÏó†&d8ŒeY¹Ö @iÈfj}9‘444 ¦€Q1AÀB)Áé³AìÐâ‰ZÙÙÙoooo³‡é_F9tèÇŽÃ÷ýÛ&5³f¡µÆ²¬¢älͲf˜$';ߦë ÍÍÍìÝ»÷Qà‡¹*˜XVVÆ‘#GX»v-%%%·  ½½=ï0wúBCR¢¥,Ž?ά!Ð ˰Äu]´ÖŒ1‚¶¶¶Ûr>wî\|ß/rVÈB.,¹æJº¯¯­uqÈщDò è£$‰ ”¢¿¿ŸQ£F}Ø^‡çÂ’sž“K—.Ý8 r JKKqç¶”––âû>•••EyQÈDñØ×7(¼D܉ä*¥ ŸÜŽœ]pI¹9RJÒé4Ë—/¿mJ©¢ KN Ÿ m)åÍPJÑÐÐÀöíÛo» •RX–…ã8cŠNy3F»»» ƒ¹ýu€1¦ëܹs .,@…öÍtppx<žïž×ÏuO­5Bêëë ‡Ãôöö¢µî‚6@:~zÛ¶m/H)Çþ/~H•R=±Xì9 ã,Œ*‡ºÀù˜ýºÃ­?$€ËÀeqÝå$2¬Á›ý5Ý¥øÃš’Àø7Ö›“ÏãɸIEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/edit-cut.png0000664000175000017500000000404713001357026020024 0ustar potyrapotyra‰PNG  IHDR szzôsBIT|dˆÞIDATX…­—{lÇÇ¿3;·w·wç;ã·Müˆ ˜bŒ±40¦U¢¶Ô$-U°*”ª"l7D—@©CM›¦ûTJ“64QˆÔª"`¡@Š0X6Ä¿°ÏØßí=vwfú‡9dvl¥?é§]íüæûûìÌþff &°ŸïÙµÝ0b/GæÇï÷‡&н×v××Ö›¦õc•9µM›6EÆ‹£ã5ÔÖÖfrÁ7¥¥¦Å<^ç«SI^SóÚ\€V¤¤¤Æ¬'ŠÀ¦Òw–,TW­\mÈwîÚY8™äRJ¢Ú{/úª}õʯÙJ·NÔ÷55;ÛTÛ‚3™”‹.²;lêÛ“¨Û]³ÞãñäçdçP!$JKK5'Sk§JçeeNW8çR"7÷aêp8æÔîúÙ3%ß¹sg ¥tWÙò•nÃ0!¥Dzz&•R–L @ç?o¿¢HH€iZXU¶Ò¥ú†ÿ—þ„ñÄœšúÆœ¯©ŒÙ ¥¥gÎ6E8ç'§P½¥ú8@êOœ8¦”BJ ‡CCAAÃÃ]5êS³kÇRBÉSs‹Šíœs€®ÑÙÙ¥ë¡èº)€Œ¼ÖÕÝ oÎJ-uRŠuuu?-ÛÐÐ`SûŸË–­ÐLÓ¨ª GunZë'*áqü~ØâƆÆÃ‡tURÃ0ñØâ¥Ŧ¾-¥$ñØPh¸25-5Ùç›!!¸|¹ÍŠÑS[·Vï/Ç„P¹ùå Ãhj»ÜjB %‘‘E=nOA]]Í:¨«ÛžŠÊ¥-w†)%… él“aDø&ÒÿBˆE­çNŸi2cR"‹aEÙ*7eäõõ~³9ÿXZ²H5ÍѯÞn·ã“Õ©DMUUÕÕ/ PUUÕ.¥Øsüıp|*¡˜=»HåRû@uØKrsòX|è‡o ! ºÝ¾~¬S€ÐHt{wOg0 ,˼¹óŠB——,(uE"H)¡iiÔ-Ãü^EE…ùðûýQÓ²žkËÎ%Ó3Ñ÷Á^xS0Ý“PàXgkXp9k}Ý_à ”nd”®åBL'*e +ÊÉS\N'Îô] éÁ™B¾5?ñ!MµÛѧ[Ã7nÙ#° TQº,ËúâWåÀФÞ¾C(ýCŠÏDzRS^— @ÿÐÚ»»áHtF¢úa÷ÿvÐCÞKw{¿žÆ_R‚¢ !„h êzÔëñÀ´¬Üû@ˆn§S!@ñ @ÂïµEiÏHN~dNAóä¹sú°i $HŽ{9@nòâgmmúÌìlG²Ï÷ˆ›ÒŽ`í3@¡t[Ól”RàÎr}§ ßcìÙ99ßœæõ’SÍͺŹ’àv›…¹¹‡ªâäùóáëœ7¼`Yoݧ¸»Œ%±‡± Y”VÌŸ5K‹š&Ú{z‚A]WcbÅÂ…Îá‘yº¥åÀÓ†ñ$`µÀŒlEù´07×ýPz:µ1†‘P½½Ñî@€·Héß.ÄÇlÝCâ®`´$­¸WSº²Ø–™šªäef:’|>@O¿øokk°Í²h`Ž}Z§1¶£2”PÚ7Äùþ÷…Ø{ÞNw2ÆåçøÀSNé³ÉŒ=Î3 ¥g»Ló¥­À¹Û°r¼½ .LïIJàÀèœÊ1W~û>>2bLÛ]ö?K?{Å4HW©IEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/weather-clear.png0000664000175000017500000000334213001357026021026 0ustar potyrapotyra‰PNG  IHDR szzôsBIT|dˆ™IDATX…Å—{ŒVGÀgæÞïûv—Ês¥¢}]C¹•¨O#z#HÜr‹áVçìæÖ‰0ê‹ø½/'ɱ—¾Ÿ¹gûþëpë§ÿLª©ïìÈŧv. ­R[²Ü ›”–Š1¡dú€„àÛÑÜiôÔÛ‘ÝÅË7“Ba§I§–F—iKÓ>{wã÷®¶ÎU´¡nœ nYšdÏ|'L ´û€Úñ÷¥1Šf›!>I+ˆ‡T¤t4xÁ¿¹&Ï…óËbâ•Á/l`“Ù[vÿÇ…ÕSÇX1£¤Oå ó‰2šÝ…㈤P¸<øbH )¾QŸó­ç¿äbw(=®Öè2¤ÊËŽJÊ>cªæe´ýmÈ[ЦzBб¥`BÀ‚Ñ>´m2vz "¿OÍwzî× àr¹û嶪2Œ‡lˆ)jPa9jSorG;@ö0øvdÀÀ|Áµ>”ôñÇM4p¹2:­ç^…Ѐ•ZT¯{ˆ é{þèaÕ³§¾ÌùëïºZ£Ëkh{POË;ç5‰ 5 ®¨±çŠ.=D¾ÀC¦=zöLÖfJVv5ÿ5¢sÑHŸèB¿çÕ¼”WBjPñŒ òç]p÷PÐbJî^‰îÝíqºˆBûˆÖ׌·, Œ9,¹üÜë;"IõBzUAÐb&!½‘Þw@¦/þï¯9¢ümÚívÎ>¡ u㺸¢ ¹$bÌ—MåDâ“;—ú|ôXàü¿kÇsÚ§Ó{€•^•`CÄ9´íþØ!õgÏäÅ»ùIâš›ZJ¹ÅçüW«>FèÆêá®bÆ0F}–ÐgKÝɦ§œsKRAv°ká^öô"&^Só¨Ÿü`e‡½§ñ§WxrCõ0ïíbu:6ŽùvÉüÆ#×ô@ÆýÿÌÙv¢3bO²Þ”WTÙª¡iÿÖ|rñ½ îî®í‡GµaÊ /¶¸à†DI6ÎzÞ·7ÿ9Ù8ëùô¿àzDõqn »ŸÅǹ-—§×ÿ:€wºÙŸ~ ïtóÎqÓâÖL¿jµ{½rÃ0‰üæfþ ”}%:â•ÏàIEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/bookmark-new.png0000664000175000017500000000277413001357026020707 0ustar potyrapotyra‰PNG  IHDR szzôsBIT|dˆ³IDATX…­—Ml\WÇçÞûÞ›o;Nã&ìÄ-­cDZƒ V€* µ#Ø€`Z¥(aÃ!6,@Ýñ±ƒMØ¡n Ø Š@  €Š*Ò–:rRÇ®¿&vÓ©íØ{fìwßeñfÜñ¼§!=ÒÓ›7÷Ü{÷Î=÷=á»ð…üÌxꛞQ™ví»a…Qô¿÷£o6Îaf:5||â{í»2WXõHÁÃíÉé|[€æ08,Î…‰pΰ¸¸Èâb†žî]¹2¹lˆ‹"BiDúÖMË^ÀZ»?yxXa´Æ3&‘Æhúûûxä!…§º0*–4JÑÌ€½]÷®rç*G µ7awq7å8Ûš!böA*Ä»àúõ[ø^\ÒA–tê(©À§·ªñ Ì-\cðÑÚ°ûÙê$´©„ÖZœsïmCÀó<|ßK/î>88ÈÙ³gch†Ñ2‹’”Ü%t´tsköOÚ­NŠ`;´šÒ ­5F„|6`³\%r­â$,‹LNN6)à™ÒiÃ#§zA|"u‚ÿ¼ög$·ýúEthVÀ(Eà{tÒT¶+ôͳ¾YAëø,bdd$ÄËtàȰSQ‰ö÷ æ¡î,¯¼rÿ¾>Ãùó§ý(ª~ÍÏÏ'j€1†ááa .ñ"wO€ÖÁ¬µ¼ô÷Wq»UžûöS¼ðÛküks›O?1À™3gØÞ/`‰Â•„Lh†aÂéÅßÿ“ž¬á»W>ËÐà)~òý¯Ñ•Rüñ/q=Ø?¼:\ÀûW ±ŠFÇOŽöóÕ/}‚¥¥%Êå-¾òùAþôÒ4KÅ333¬®®¨Zë¹q_ ûΕ'ùÜgÆpÎ1<<¼¦”âܹs\¿Éù±“d2™D –½ôÂðà¡sñÂi”RDQÄ7°Ö˜¨+ ÓÓÓÆØß=ÆtÜ÷T 9ûÐÐP"¶J©D¬[ø¿ÚÙÔÔÔ¾í&kýOkÍèè胅 Ù ´®ºð^ü[“óP€QÀó<ÆÆÆ:ö`€{) "÷Œù4¬õ•­S{ã÷ýä@A)µéœ+ Dk-Ƙû^YÚÃåûþpXj­yàX±Xüñ¥K—ž©Q|pV]XXø)pÐÀ 5k½ÀQ »þ¬?¨É‰» ¬K@Ú|œÖ'NÕï÷Ïý™öˆe¯Ñôžþ?:uTf!åœIEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/network-transmit-receive_connected.png0000664000175000017500000000244213001357026025275 0ustar potyrapotyra‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEß 5*ïQù¯IDATXÃÍ—]lUÇ÷ÞÙíö“]@Øn-JôÉD^ £ñ¡¾h¢/M 6b5  ÁD¨„ðHb6Hø²$jŒ>ĪH†FDT>JËG[¶ûÑÙÙ{}ØiéRºl»$:“LæÎ̹÷Ï9¿{ÏÀ|ˆ©|¼vÍ»¯GÂáX%¦G2_mÛ¹ãµÑ¶5ãH8{³«‹¡¡Ái ^l<´wß«ãŸYSíÄÎ97_êkߣgº[ʵ‘ uðDó/™á¤ûà») BXz¦»e]Ó:Œ1Xh .6i Æ\cÐ&_llëìë»…ô[õ ª`ã¦AÂà`„cÊ`Ðctú˜¿p‰tʪ+ ó()Á Áhü@^å‚© ;q;߇-F¸zù Êç T£%€`4!Ð( .> ð›s†{zøMÕ˜’é¤ TUšª 4ÐF€‚óé“d„M•Rh$ À¥‹R]_[5©Êeü‹}jÞg=öCÞ 4ÞÀíÈá× Á»°xéÒ#3©€JWAÉ×{¿äº<‹6 ©ò¸€4ªˆ ’90ÆçÔÖó:Î@ª < -r|^×FÜŸ´%¥()`ZŒß‰Ñ—¾…ë/ t,~á¡ ‘²;‘SÎz\Œ%‡8|7Fk[+JÝw=³éL&’ÔΘQZ@…Œ°tÙÓ@Á„¡î‰·¯÷걬|h*`üÞ½¡‚ì/±ääÍþ›Kå@%Œ°rÕ ŒØYlÛÆqNŸ:õRªCñ‰R*ÜÒܲzç§ÛßB¼½aóÆ_ ,!0–ÆÑc ý¹+ܶ{qÕäŒ'Ó)zz~(šuuuu‡w»õÚõøªºšÚý555ÏoÆ"Êã4/Êäñ ÍÅÜH!dž€´&e\Ê‚˜KN†T&E[[NÖæ÷?.мžL6sÔh3#‘HìüEŒ‚³N9Àäø”¬B{Æ}^Öç=D¶,àŸ+—‰Çã´µ¶¬«' 2|wðå“'Ntï‹>4{@)!êà±ø…Îr¢W¬\Çf”ñåÏ>WðˆO0wÖ¬Qu4ÎmG›µ¶…’KC¡=æT(--ä Í©”¶CO!§|è)!¥SRb×v¥=Ä$¶e¯¥•´’vµ³£* i-?Ô:ð3šÙÑÿ}ó?fþþç&œwa:ãœ/QJoBÒŒ±qÎyR'„¨6c<Êçóå7F@–e™ò€¹D"ÁÓét ™LB’$H’„jµŠJ¥‚b±ˆ­­­†ªª.Îùo>Ïçó…M •Jy(¥?øôòåËžk×®Û¶Q­VÑl6aš&8ç „ÀëõÂï÷C’$B°²²Â×××M÷ ÃøìåË—ÖHdYŽø5‘Hd¯_¿î€W¯^Á²Žëᜌ½^/&&&@Áòò²¡ªê€÷óù¼z.²,G¼Èf³ÉÅÅEº³³]×Om·ÛLJB!LNNâáÇl{{{Ÿs>­(JŹÎå0»K„•t:-/,,ÐB¡Ã0À9G»ÝîÉI ý­Õj¡\.ãêÕ«DÓ4©TšF£÷ËåòÀIÿ€Rúm,Ë---ÑB¡ÐósÐIâ¬fYEÁ‚;‹ÍPJ¿9Ñ©Tj‚RºyóæÍðþþ>êõú¹Ns‡mÛEñx÷îÝÓ8ç™|>_J¥R¢¦iCA»ÊÒÇ奔R‚Ð Ö.h¿tuT«ULMM‰nô\ßÉëÌÄÄ Ã¹sçξlnݺÕ;1MÓD<€¬3ãããã`Œ 05mÛ>¼‚ ôÜcY"‘ÄÄp8 Î9\.WOÎlÛ68ç=pÎ{qá<38ç$ BNz½^‡Ûíi×Î#yØ=±±±MÓ (¥PUj1à T*…)¥o¸¿†B¡ŸÏ‡‹/vÓôÐI`kggGžžžF½^!ÿæöíÛ=awwÍfóÌ]ûÝh4`ªÕ*üé$ð`{{{>—ˉý¾7 årÅb¦iž 8lÜßb±òù| Àg>ªV«®ýý}lmm¡ÝnÃ4M´Z­‘vyÚÚ@ J) à¡¢(BÈ/kkk,™L¢V«ïFºS†û~éÒ%<þœXîXað2bŒ}¹»»«H’4 „1vnÐa- Áëõâàà@ðÕÐz@Q”=BÈÏOžVE"‘ÆØ’¦iÉ™™×ÑÑQï鯊Nòµó»ÏçC.—ÃÚÚZK×õ?lÛþÄY « #Öc±XâÊ•+îÍÍM8/©Ó‚¯;F‘ÉdðìÙ3KÓ´=ÎùÛÃj“ªâ€Ç>Ÿï­ÙÙY¿aPFã̬ESSSðz½X]]m¶Z­œóEEQŽFzLNNº=Ï]' o.—#–eáððº®Ã4M0Æ@)…Ûí†$I¥LUU‹s~_UÕ/*•Jc”w@ F"‘L4ýšRúŽÏç³ãñ¸?Âï÷# ¢^¯£V«AÓ4¨ªÚlµZ.ÆØÓR©ôC¥Rù € ÞןI Ð!êïÝn÷…p8< ߥ”^ B<œs‹s®Û¶}Øh4~×4í)c¬Ø¬õõ5eöy\ õY"Ðéýñðt²¨ÝQj044ú¤ \s‚Ÿçq*pwý|`Ogž`}Z̰љ³Oø^‘–#9„ÎIEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/preferences-desktop.png0000664000175000017500000000151613001357026022254 0ustar potyrapotyra‰PNG  IHDR szzôsBIT|dˆIDATX…í–?HQÇ¿ï¼\’ë¥QtQд®]\¡S¡4`A¡JKœË ºÔÉUKÁD´S騫‚[7th šÄ4—»÷:è½Ü]îÿÄŠ_8¸|ß{¿ïç~ïñð ýcëeii‰ýíðññq"Úááa”Ëå{ÖuÀÚÚÚ½‡»Eì?4M0×××÷æ>Â...¤£££-Ó4ŸÎÎÎþ\8==ýÞÒÒ-‹ÏeYÎ5àüüü€VxÀüü|YÓ´íR©ô! µ6À0Œcì½ÝÝ“(¥_ …‹žžäóyär•F¨ª EQêy­“eª _jogggØÜÜDoo/úûû Q*•°··‡ýýýº~ë$IÂÌÌLÖ>—xXXX`ñx™L'''ÜïììD4½\H*K ! ”c8<<Äññ1ïèèÀÀÀÖ××111áȬê€%J)ºººÐÝÝ]ècŒB‹Å‹ÅÀãã~ò°ŠBÍf¡ëºÃ÷‚’$ ííí(;Ü­ ­­Ã¸Ã½ŠÛCcü¹@$aüÊ´·3¸Ü&Æ(¥ ”Â0 ˜¦é˜kuÁO¾’$AE‚€ÑÑÊŘJ¥ …ÓÓÓ.»L&9ÔÔÔ‡™œœô ¯ `öó !ÈloWÍmjjÂÎî.÷UUE¡P¸@*•vø‚ €YQž%»¯( Âá0DÑ;ª.ÀÐÐÞ¾Kp/ýùïÀu,¿¹¹ùv„„] !XYYÁëW/+`é4ÆÆÆ°¼¼ìðWWW122â»×ÚYUžå»§õµnÿN÷€»Õv?à:þ#üTzÈnãcRã­·xN/ߥV&€ß~AëâˆD"¾U‰Ä|€_f2©€ÁÛZ\\ô­tK麾@P´<¿ÓñÀad[µó~]AÔ°ÆDB9×½zÌÔúÏôP3,4\­]dIEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/action-searchlist.png0000664000175000017500000000403613001357026021720 0ustar potyrapotyra‰PNG  IHDR szzôsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÝ (!W* žIDATXí—_lSçÆßùg'¶ì»aNJk¶¬!2Q•REª¨ÄE‘¦^–I»éݤÝô¢7Õ¶›¢] I]фԛfÝÔ±¤ÁÆ’¡ˆPþŘĎqìcûŸïûv‘Ù …’°õ“^s>?ÏyÞç{¾÷“““š'Z/ß.„àÛÖj7H))  îß¿a­ùD"A<§«« ˲¾]J)²Ù,år™íÛ·3::J$Á4M”Rø¾ÏÂÂ333LOO“J¥èééyb ¢™‚‘‘‘Öd<çðáüþúëlÚ´‰J¥‚ëº4 ¤”†mÛD"b±år™Ó§OsñâEÞ}÷]ûÑÉÉɇhNzžÇÌÌ ‡²,n߾ͷ üe:Çç·\+>`ˆZ ~'ÊË?|Šáïõ±oß>’É$áp˜¡¡!ÚÚÚžŒ&íŸ}ö‡àÞ|ž£ºÊ?®.±9ç©õQ¢í6•jƒ¹|…/nÙ±¥“·^f}Wœ³gÏrþüy†‡‡1MóÉd³Y¶lÙB?wïæøùï/Q—;ŸO³¹7Now”HØÆk(Šå:7î-‘+T8w9G»¥ùõO~„ãØœ}ß÷‘R®šó7Þ8Ò¼ˆD"ÌÍÍQ.—Éd2ŒïÜÄç×süñŸY¤8–m4ÍÂ’ÏÅ/—8y~ž[ÓüòÇ;(.…B¬[·ŽR©Ä™3gèëë{¬ª"‘o¾ù&»wïæ…^ såfž§.sößó,ºMWÔad¨—×ö|—õ‘e' ‡Ã\¿~ .H$¨T*|ðÁLMM=`J+5 U6 ®^½J{{;ƒƒƒlذH$‚mÛ˜¦‰”’ ¨V«¸®Ë½{÷˜œœä¥—^âÆxžG.—#£µfbb‚ññq¿½øœŸŸçÎ;tuu‘N§‰Çã„Ãajµù|ž[·n±°°@½^§»»›gŸ}–R©„ad³Y"‘Žã011ÁŽ;^€•EJ©T¢X,R©Tð<¯e\±XŒÎÎN‰J)>þøclÛfçÎT«Ur¹ŽãÐÞÞΩS§H¥RŒŽŽ¶ŠÛGÖ„ÿÏxæ™gã•W^Á÷}|ß§TZÞ :::˜žž¦^¯³ÿ~lÛ~4J)”Rh­[Ѽ^Ù4-:…@ÁåË—™žžæÀ!p]ÏóˆÇã rôèQÂá0{÷îýÊ´ÖA@£Ñx šaš&$“I2™ ýýýd2R©X–E½^§^¯300À®]»xÿý÷©ÕjÄb1‰[·nÅ0 ^}õU.]ºô•i­‘R¶þ\JÙŠ PJaš&áp¸õ²žžº»»‰Åb„B!‚ À÷ýðîînÆÇÇùðÃÉçód2,˲¬–H•RËV¬µfÏž=«W°Bà8¡P˲Zìø¾ÿÍ›eqíÚ5<ÈØØ…BcÇŽ144´œ²¦š,4óÝÌùʹ•zøºšž/„À0ŒŽZk¦¦¦˜™™AÁ¶mÛØ¾}ûƒ%Âf¸RŒÍx€æ¹a­X hÕÞ°ùP“ÂoRþ£:å•@¾•îø}ñZÇ€%-¬/IEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/network-transmit-receive.png0000664000175000017500000000241513001357026023253 0ustar potyrapotyra‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÖ 馫ìšIDATXÃÍ—KlTUÇçœÚNéðÌð.L‚,4QŒÑXš˜˜ÈJ]Ø…"h#1Ä B*š Š¸pcÔñAŒP%¨q£ ¢B4&$€‰ÚÚF Ô”VéÃéçmïù\ܙҖ¶L;$z“Éœ{î½çüÏ÷ýß=þãCÍæægw>óh,;^É„ÙlîË×_{cké<0›‡cñØñmO<ÅàÐàœ&„£ƒGÚ>zd|_`¶ƒ î•í­?VȾrŸ/ÓÖöfSs:ãŒN¾6kJ©€ Dö=¾u#"‚EðDD Ö bk-®k9qòBs_o/3/\¹­¢Q¾<%(  5" aÀÉP_¿'•všŠˆµ¦(Ä_-”Rx(e„î>‡þá…‚‰‹»˜`uÅ@¡ÇR‚B¡QXå Áƒß. 1œ T×"à¤GªJ=`¬ò§¶"×`Öš_;¯âº4()f èèøÚP¸jÚ”ËøÑ¶Cß Ã]×](„ñÔ˜à˜a@üæÚµëÈfr2­€JÌ óÅçG¸*mÁj ´šHÐŒ˜ ãá…µ¼³çv†RiÀ€Œ?±2®Øj£ÕŒæÈ8}½½XëÕqîÒ”…Èq›º¾ònã©¡a^Ù¹˜5kcÆÝì8Äk#3 ¨q6¬ÛPò"¾fê èý«ÇB ã©0¬€ñ¡¡h;Ö6­_Ü‚«¯\éÛ;“*a€¦Æ&òù<…B×u9söÌׯ˜-J©ýƘØÊ•ËŸÉ„>§Z4VYÄ(:.§ÈdF±Ja‚jZƵö³—X}[i1d2Y(òœ?ž+8•ËåOˆØºT*u˜7Q~ Îý1P\øÆš¢9dZÆMÀw} Ñúúzºººèî¾L"‘ R!ÏPjà¡Ó§O·|rôØw@d‚cŒ/ÓÖqöbs¹…è¾»Ꮈ”ß´éîb4 ‹/ò££ ›ã1žw Øb{(Y ?&à—ŸÛ¾IyUuU9Œ÷T²-×€Þàå‘Í›‰FçSS —Ë’Ïçfd\)ÕdKŒ—- ¥¥E%“Éà®çŸ»'ý0—×q‘q·Èø®½/¼/ë5L&ƒÛŸÞö@<ûfIl9‘º0Ë–.åÒ¥ËÓíŠÊbpo$À´îÛ»-}¶lÉ  ´Rôôô"ø•ñÿK¿U«Vá8äR)âñ8NÚ!Z·ЉöööWß}û½¥¡²"ßòþŽí-¤mÖ³$¥24ÕÖ¼<ÆËNµöû>L6ÞŒÍñŒÏ†]ÌYuQTpבRããúÿ¿Ç¿§ªqΟíÀIEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/weather-storm.png0000664000175000017500000000375013001357026021107 0ustar potyrapotyra‰PNG  IHDR szzôsBIT|dˆŸIDATX…Å—YlU×…×Îx|ì€Á 0Ô˜9C˜$’1ÔÔÆihªTD­:(‘©¨ymûÐJ‘ñЦ©2€Ã *RT1&Ž0˜cla—k|íëë3ì3î>\ƒÊh;¨êz9gmýkûßúÏþÏ"ßfÑæ¦ÍÏ0‰_I` € €k„¦ýùƒ>(üOü`KýÏ3%™?,Z¸ˆUTT‚sŽ\.‡ Ïãz{û¥8"ëš››;ž8@ýËõ“xD·K)—H.AÚ(È•ÊÊÊßmÚPO¢(ã ¾ïÃvlDa„ή.´ž8~¦$Uºx``ÀÌd2ÎÎ;ƒ1hlܼ‰«êßW<»"YS3 œsôôtãÄÉV¬^µœs¨ª!\×…ã8p\”Pœk;‡l6; iZÆuÝ ‚ƒˆéŽæææÖQØüÒæÙ Í8¹ý'¯ë†i ŸÏ#Ž#xB@QUPÆÁ…çyp\®cŸ®Ïó)Ê¢0€ë ôöfqõÚÕ ðü­»wïùèþzüD;ž[û¼®›ó8×v§OŸ‚eÙ0M3¦×`áÂ…BR‚R ð<¦i¢¢²QÂó<¨ª)cpΕ¶óm©ÿa}ËÞ÷vŽ`U]Ý\ô÷÷¡¥¥ƒ…AlilB"‘@6›Å±/¢µõ8–.]ß÷@cŠ¢¢d\QBxBx¾B TMCyy¹žÍf_ðÖ# ±±~åìŸeee4Ž$„'°íÕmp]Æ(|߇ë:hþ䤒)DqˆT:©Sª‘J§q½ã:º:»à8 CǤ‰U(-ÍÀ÷}ä ho¿öEó®=Ï=4@Ó˯—¤Çý~ÆMFyy9nݺÏ(--c AÀ¶m!ÐÝÝ0 ¡krý9\oï@*B:ÆêU«ïÒ:zì(¢(ÂĉOC /õFˆWïùhÏù{45m¬2™¶7Þx3ëëƒ7¼SÝ0@pÎEòù<òù<Òé4‰$Â0@_.‡l¶g¿9‡­[ΕhqÆ  ª* ƒ…<‘Þì?þ¬çn„’mZºt™>4T€ç{°mRJ(¼Ø"qÃóŠç©tÃ@øB@á ªª!3~<._¾„ºº¹‚®ëBóçÍ¿‡–c9%Q(wX´ˆtXLSêXz1˜6 L«Óf!j޽}Ræ*ÒxØz-yh›‡n/Òê·=.ÐC D_ˆ|õzpä!䧯‰ryáj˜ØFY¥åt”â«àÓe1ý«òý£¿+­»r¿¨}×éùt/½b»ýø~Zþç Î.OÚÿþ™ýïÊÀ>"ãð¶ôþ!ýÏŸ»W&ÇDàžÖ›Âìš‹+à=çßÓXÕûÿý~¬´Æ,gÿ³Uƒ§ªº 'jZäÞ%Oä­‡‰ŽdËnL‘Ðu+ÜNê[zç•Ö›0éôX\é9ñžÎÊÞœt·–P"©¬¼úÍH^7ï›ý3âÜÙ¯µ|úm²îso¤5#*w¯ŒÖ[ørò²ü©dÎ?ô¹O\øŽn_Bj´ÞþÓê›…Ó‰­R~»ŸÞ'ÖXhÝÑN¦8u²š>’IEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/weather-overcast.png0000664000175000017500000000310013001357026021556 0ustar potyrapotyra‰PNG  IHDR szzôsBIT|dˆ÷IDATX…í–ÍoTׯ÷{f|ÇžñŒƒp€DEJSMÒ DBB¤F^µjÔ*eÑt ÔB»ð"lí†þí&R¥V­ÔªYDŠ*°Q«DJìÆ`››±=çÜsï=÷ta× ‘R«U¥ŠgsVGÏ£÷÷œWþDzVséôéÓ,[Ïà `]1ÆüRÉäüàà ø¯8uöÔŽ¼üñÑG¿\y g¾ç1wgޱñË\»6ý—,µž8qbî?`hè䋯2¯Ú¶³Í˜¬‰1Êç ‡:ܶ´†!ZkjµRE\þðoŒ]~ÓBÿœnÛŽÇŽ¬®*ÀЙ7†+íÇöîÙǺînT195‰É2úú¤½½BEѤ)š!0™áâè<Ï#Ë2æçïh¥Ô›FÛ¯?~|þ >y¨½Rùý·¿õ22’Ã"q³X[]$IB³¹l¾|šLS®T°Œ…ŒFƒ‰‰ ®|ýÇòž8vìXóÓ^î½²ìßw€ééIF/P«’Ïزy ë×÷P(äÑ:Ã÷= @š&!èß¼ ‹(’8®Xô÷?„Œä¶jµúðú `Yö6ÇuyçÏïðô®Ý´µ•X\\`dô‘’<Ô¿¥",Ë"—ËQ*—B`Û6Q$‰¤$Ib † l Z­Ü+À ‚sçÎåµQÃXÖ€ÉÌš,ˬ—¾9@¥½B±ØŠ”‚[·oó›ßþ×õè^·ŽÛwâ¸J)âXQ [‰TDI¤”è4%I5£—.ÖÊmGŽIîàìφÞúÊc;vmlG`0ܺyƒr¹L±ØŠÖJEÌ/Ì333C©­„Îb&§¦™™ý˜ý{Ÿ!Õ¥"jõ:ý}ŒZ½Fäè^×MW×Z®\½Âí[7þð`ßæô]††Þس±oÓïØx®G’$´„!--E|? Ibb¥Øºe+aXDJëøDRryìCúú6277ÇÕÉ«ìÝó Jm%æ½@–ú7õ#…xvêÚG?~þ¯Àƒû¿ûÔ“_ß¶„–1†Z­FWçÚ•ç$D“H)<ÏGÅBt–!¥dâÊSS“ÌÌÎpø…é¨tP*•ÉåóT*F/03;K’&Ø–ýµ]vÿêí·Þ®­L@§Ù)e¦”rR’Ïç±m›$IR ¥$I\×eqq,ƒR1R êõ`óýW^áÖÍ[‹­äóâ8F§)–åðÕORj+‘¤ S““áÔµ«—76Ü“gO>Rn-=×»¡× Ò”|¾@EH)‘R¦ÉòØ%Æd±*MS¢("ð}ÆÇÇéYßCØKØâ$&‰ã»°ùž‡P¢Ý˜ÙŸ?¶}Û=ýü¡Ã-¾ÐÞÞN4E“F³A£Y§Ñlƒ!š)bÉ\©ˆÞÞ^~äaFF.ÐÕµ–\.G–e4š â8&ŸÏõzF£ëy”Kåì—\ƒùR¡Ð‚çy,,.pgþJ)Z „\zJ®ë’ËåVph½Tâ È­49Õš8V8ŽûYlµ…彡riC£×¸6Öû7nÌöutT¬z½Á¹9â$&Š$ZgıZ¹œ¦ Y–}fq)á¹.`ÑhÔ—ÌÓ”b"¥\.² Š–±I‰ïΙ3Cßsv?³çÝëÓÓ/wvv­­m‹EÂ0Ä÷}<×Åó}\×!Ë4Y–aŒY16Æ šM&®L°}ûã„a¸„I\ÇFk”be’Z/a+—+tv®ñgoÞxÊ8}öõ]®ãŸ×iºÕsÏõ|/Y–Ek±•›úéYßC¡PX.î2¶ ‡ŒîÆöI]¹¨Võ#:{nøwÏ|îùJGÍzjµJœ,î“Ø|?ø\lQ¤x÷½¿Î;« °{ÿž÷þqmú;]]AÛ§°¹®»|~>¶¦h2>~¹¡ymU>ù´ã:çS­·ü›ØŒã83:ËNýèèñ_¬Öÿ¾îë¾îëÿGÿÞ¼T¥¶4û(IEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/colorize-2_g.png0000664000175000017500000000426513001357026020603 0ustar potyrapotyra‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  šœtIMEß Å«©TBIDATXÃÕWml[W~ιÇöµ}mljݴN¶,c¶~l”±uAíZÕ Ó†4‰ @û1„“º!m ¤i¢Ø“Ðø1H“BµBZYiQ§­M-m”ÆqÒש}mÇŸ¹ßç~4¾¤¡ƒ&!ŽôêÊWÇçyÎû>ï}ßø/òßüù[!€{€Ë€ ×¥”õç¯>.Ï$Ï<P5oFzI:îBt !’bRJ€CiBtÎyùþù9{A¿üOüà`­ XkÀèÝŸ !¶QJ÷(Šòcìžp8œVU5I)I)ιã8NÝ4Ͳišãžçp~÷Ô”õ}wß,gÓ·p,‚·ûvuK)ïgŒ=”H$F¶lÙr{:Ž&“I’H$@žçÁ¶m˜¦‰R©$õ•••78ç¯mŸšZÔ¤ÄoþçÒÀZ»ï¾¥ô ¦i_Ûºuëgî¸ãŽ-H$ „€s!€sÎ9lۆ뺠”" Ýnãƒ>ðfffÞ2 ãÙ©©©Kêç¶ž œÛ5¬J)?«iÚSCCCûöìÙÏd2°, ù|ív‰D½½½Çq`š&8ç ”úÖñH(Â… ä¹sçNY–õÔŽÉÉìo7ø®¼·ko’1vd``à›Ì Áu]”J%\¼x†a V«Á4M¤Ói Ãó<†MÓ|P­VÇ'OžäÓÓÓ¯I)ŸŸœœ4•/£÷ ªªztxxøÛ?þx2“É ^¯£Ýnctt”R(ŠÓ4AA³Ù„eYÈd2Ðu–eAQ„B!ƒA!P¯×¡iTUE(¢ù|þVÃ0Îèº^`~Š%€÷îÜ»-¿rèСG>Ìt]0ÆÐn·!„c ¶mCJ Çq@)E,C?ªÕ* …º»»ÇÑjµ ¥c RJôôô ···§Ñh|À€#1àüŽáˆ >½oß¾G÷ïßÏæææÐjµ‰D|18pï¼óVVV „€ªªØ¹s'vïÞ Bb±¢Ñ(,ËB¥RAµZ¤R)?@š¦!·€ž!ÀHÿCCClzz¶mû·¦”‚sŽ®®.<òÈ#0 œsƒAÿfBB@)E$A?8çþ;)¥jEQ!$ì8Aï‹Ç#‘'|ðÁ-®ëÂó<¨ª Æc~*5›MhšMÓ|P)%¤” äšž;º(•Jp¡P‰D]]]Ïóàyž`aýS Jé]}}}û÷îÝ Çq „¥„BÐjµP«ÕFÁóßoÜÓ±b±ˆññqär9T«U¬®®"›ÍB×uB`š& Ãð¤”Eߌ±ƒƒƒñT*…v» Û¶ý×ÖÖ „ÀÀÀzzz ¥ô]ºÑíBض™™xž‡d2 UU!¥„eY˜ŸŸG8F­VC³Ù49çs>Jé­©T*ÈömÛ°´´„z½J)¢Ñ(n»í6ÄãqßåBœâ‡@J ÏóF‡áº.LÓ„iš¨×ëÈçó—„}„0cŒJ)‘J¥ÐÕÕå§N0ôo¼YLสªØ¾};r¹ Àçy°, Žã ¶m\¹rÅ5Mów„„@}mmÍ#„0EQ:J…¢(>h4…¢(h6›×o¶ÁÁAÄb1‹E´Ûm¨ªŠT*!r¹*•Ê)åñ;§¦ÄT‡€”r±X,:žç±P(Ã0@eYÐuW¯^E2™ÄÈÈEA¥Rñ¿yQJ‘N§ÑÓÓã×Ó41;;‹|>ß¶,ëçÁ`0÷ûõýl½ŠMçóùJ¡P¸5™L¢Ýn£P( ›ÍbeeÅug1ƉĎ{ï½—¬®®úðF«&J)ÇÁòò2._¾,kµÚ¤”Çî~ÿ}9Ö!¼þ\¨T*o!cii gÏžÅÜÜ\nmm퇔҇¥”?.—ËîFÁmÔÃfðNÎ///#—Ë¡T*q]÷è®ññÆë={'Þ3=Ï;6::Z=vìÆÆÆx¹\>É9RJùÊ×Í_/rÎÁ£›A:D6“é€/,, T*M:ŽóÂÓç³ÑØõ„üÄFFèÙb±øÆéÓ§pœRúòW\bà‘/³ w&“IÖ9¼“ЛɀeYX\\ì€O˜¦ù½O¾ûîùWo.zMLÀì™–â¨mÛ_ñ<ï…/•N,9xìO€çyBHFÓ4¿ëÙxóhµZ˜ÅÜÜJ¥Ò¨eYG¤”§¢Ý7Ö‹_Ž_,GÕÓz@ON_çNÂ9W8çp] è˜årÙl…B7?;ŽóÂçfÏL8 xiõÆèÆ ž™þ'a¹–e­èºî7$IX–………LLL`yy¹Ùh4^w]÷;Ÿ_>=ÁCÀKW>¼ñ½®#:U½f›×ÓÝYq)ô‰ã8‡ûúúÂPÇqpõêUÌÌÌ`~~•Jå’iš/rÎ_=tùTéùà¯Ýò³›šH@1¶´´tîøñãg2ضZ­]×Ñn·[¶mŸàœÿŒs>zøÊ_$~Ì£ÙOïÞÚúÐ? wQJ)ç¼Â9ŸB¼)¥|ë {»ÅàÙ™›Ÿ¶ØÍnTàºîYEQ¾aÛöí)eÀâKgÂåàô£äÙðå€àYŸB%½v‚ŽŒãÿsýͬʑ:!õ˜IEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/face-glasses.png0000664000175000017500000000532613001357026020644 0ustar potyrapotyra‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î< SIDATX…—Yl×yÇçÌ̹÷òòrEеP¢¬Õ%W¶l+vSN€ø!1Z;iš"Fj£@€íC¢~+œ‡)Ú¦­‹"¨ë¶±¸nR©€l9l*•­j±É¢¸ˆ«xIÞýÎr–>ðR,ÃÎægpþ¿óÿÎòáóžãÇ @ÀÎåÿ™›¼9±C$lTF÷ºV(Ç÷çŒïÌxêñËÝÝ[#Ö€=vì˜ý¼±Åç?~Bœú§ïøs×gÓóì·qý#Ýݪ}]¯hÉ·¹ÆXªå¢Z¹5O¹¸¬µJŽcùÑ7þä§?ûu >àÁOÈ-õGÛsÄË7mÊî8ðP¦}Ëaœl7Öj„ Òá¢Ê“,Ý8cϾÛ(,ÌOÍ‹ÿr>x糜ÁÁÁOíxfW¹£[¼ÏÈï}üñöÁGžó‚´‡ áà¸`clRDXE¶­GlÝÿ%¯Ý[îžžœúÆÎÎúæÖAñ_ÓÓ®ùµhqVžõ„xe%ò‚¥ªûºØ½¹g¾öEvÝ?ŒôÛÁI#¤B€5XCRáò…ù·ÿ8ÉG× Üœž#Ÿ6ï©B¡¡¿•Nwý÷g:p5Š·Vûûrâ¾´íþ£ÞÞ#O‰Ã¡£w€•Äç•WߢR­2|`'Ò• 1*©óƒ¾Ê÷ø:¶`Çžƒ<øÅcô î‘ð33ÓsÏ–kµÞ)Ov¹®ZÓtï¤éh„ÓÖ³þ¹/|CÒ÷Iiе³K%¶ï}€“oþˆð¯þ‘-8õî9ÇáÑGö3>9Ëèùi¾ùâ³s`ëÛsø®d¥Xdö¾!±¾Pœ~û§ß4‹ .¾ÿ{÷80»´ôT*å¿ôäW¿î}õÉ/É =yZs-8ŽÀsZ³i¬4töoçÍG~ëÙÇØ½g€wÞù€S§/ñôïü>Göí` §ƒ–L)ÁsùŒO6“‘‰›s'¯_Ù^¬–Ïç2™ërÄ÷¼çwí?ìï½ÏÉú˜£c„Žqq ql•l‹Ëð£ÑÖ™áС->¶6K£š¥Í×΃½Wƒ÷ç†ÂU¬=º½Ã0vå¶·í&.\£5P¤ì¯ÿb÷Þ›£`+33K æ²|tîOMcëS %Ã;%¯Ÿ<˾=}œ;7Ë¥+ó¡vÍóý¾M‘X‹ˆJ\»:Á†•ÔÊÙaà´ÐZo=²Y:•¥®ŽÏD ¢jc4O>¼• ôvÀÐFŸÑÓ— )òôCS›ÁVfxúˆÁS‹œ?ó!;ÛRÑDìHc¬ÀXÁ…ñ%V ó<°QÆÓ{nÊ–_XŸ÷¶?Ô¾Äkg‹”k!ý=y<ò-.#GúÙ³5ÍONüŠó—çxùyhÍ$ "lRG$ †·iþáÇ3T‹ž96Ä#;D“(‡JèðÖ/½VàÏŽ *‘Ó%5º¤ò£.€6¤•Öl êüõ ^™ÚÂË?.°®UÒOq«”°X1|e_ÌŸ¾`hiq0 Ž\=Š¥/§yõ{š¼5ÁŸÿÅ4]­=m‹Åˆù’áh_‰¿=©xñˆb|n.ZÖ§B6¥ë¸QˆiÄD¸,×£P3w@iy£*úž¬kÈ+ç)¶·ÔJ'HßC Wcæ9fÁjƒU›h<£Ø’KØâ+lc F¬2„8,×”6‰E¬sv¹N-jrU­Ê`u%zÂrÉÒ»Nà ´c BIÄ*fUÀ&š›óB)z‚æ8j5”q¨kÉ­râk‡ÿÃ4üTåíj-ãU”ƒƒOEE´*I$))1±æ÷«lëM±ok@6çNK®LEüêfÄævÁÁ­:²õTc e´Ò×gåŽÅÛ)xn(Ü“üŸéeõDí¥p†Œcp¥Æ A_Vð@¿äõ ^{¿NGΡ¿ÓE:‚DÃÅ©˜©EE{FðõƒÃý6R˜x5l¢ 4²\šŒÂH‹^»…n߆m©òÇ•†|n]Oš©c2Ò!,ù´dÏ@+®ëññ|Èø‚âú\Âä­­-Ã[[øîýê—Ø°ŽMÔª±FÇšRÐÃTÍå½ ÚÄ|«‘êïº ®Õ6nOŸº:ßÙ×Ûé¬Ô긱¡ƒEZAÖ¯ó•áA;ÒÃJ5¢T ÉdÓt´·‘O»$³gQÕ"$z VØX³b*²•S×ë5eÜ—ŠÙûVî©:¨œ®ÄÎóŽ ýtàcâ:R@`Mó͍Æ22.ÒÚÑGwÏÚ;×AqŒÆäT½ŒP¢UÛu¬)$‚jºÓ¡[v'+³©ßµúS^;>ZÞ½¹í—ÅÈ&›Öžçy(a,xÖ ¬ÅbQqD}iŠêÜjÓKó¥p”F$ )ÂØ°¬\*Á:.`ô¦S)—ãGN\¹¹266Æšîm€'N@ž¿±2³}C¾P¨y¹®ö²¹6”ÒÄ&ÁÚ‚±hmQÚbµEƒ«5n¢ˆ"M9’l¡¬ãì¼4§'¨-”£gO]¼u­¹iíÄ]5!«’÷¯§Æ_xwO%™¿\¬5R_ØÔ#•ˆ¨×ç Kàa°¤c,ÊZV4ÄÂ%º(‹<ï^‹ôBRº8^zab¡zÝ s×"duG‹&„üÅG ç®Îß?4ØþíÉ¢îÛÓç¸;û÷bR–(©! 6ª¬î¦Tä0^ Upq¦aÎݨعåÆÕscÅ7ÂX-Nsì5> `›TŠÕZ»´X Gvv®Üß•ýÂr¥åá&—ú²zS§ç­kïíù!„ãP,×(ÌTÍÄ­P—k%–ÊÑøÅ‰Òéb->V€¨9îíÙ€fGÒl/W€åéBíút¡öó”+{6õd÷^N§z³A­-ã͵j„nD¦R‹ti©MÍܪ]5«‚‹À\ó]j@Ä€Y­îü3j.ĵ4¸Í€ k¾Ó@ª^óû5×âæLë@õ¢ªfMü€Owäι#$wçÔ4­µw´Õm³fûâÿ2$ut4ó{¬IEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/document-save-as.png0000664000175000017500000000345513001357026021463 0ustar potyrapotyra‰PNG  IHDR szzôsBIT|dˆäIDATX…Å—mlÇÇ3»w¾Ÿec°§–©]JsI0‚ë°i)"DJ•~I¥¦‚6}¡RYê‡V Ô¨U‰ˆ¢´´4T8 I¤P° `H Û˜ìãn}·»3ÓØWÛbš þ¥ÑÎì=zæwÏÌü5 ÿg‰;T®x±^±N Ó"ˆ e”>Œ¯vïÛòî=([ÒVhÛœ9³j+¢Ó§ÈIya|_q©ïº~ÿdwºÿzò„Â{âÒÞ_þB¦.{±, Í¡x]ybö̪!Åô€maI°¤DJpòìeµïÐÉdÆ7ó.ýuëÉ/ ¶u[0™Ìy{n¼ªDYOÿà+`çMŸR˜7³fª´¤$ã*´1Drlú>Iðû½ïõk×›uáÍç{ïÀÿ"R±øÙÉцÞþDM×¥þCלí×S¯w_¾>s¾·òŠ’€°È¸ŠdÚ£0?B, xéúý]õsU ¬µ-l%3í–%ê<£—ü—ý{ÅÒ_>YXýíú•sr¯ßÈà+1†’Â(¿{ípâ“Á¡¹w»rôÀº‘že„¹èkõøøÉºÿ¶õ×® ýélw¿²-‰çk2ž&5äñµ/WD-̆»™ÆU |ùöUÚˆš‡sOì6ƼX–5rЋ04éA5Æé»–ÄW7÷B((ÙýÆ[|=ï Æ˜l¼RJyž÷šã8ë÷íÛ—`hm]”Úÿ§Öú×ëÖ­[ØÜÜŒ”2›ÐCÒÉðèæW\_£µáÆGIa>ÒŽ°sçNŒ1£›µk×®'ÚÛÛß^ú¯O_œ]õñ qMÌ^¼x1~»“ïµ½yKÙl["„ÀõZ´1ä,Ri—«5&öó«y¶uíí훀€“kô ÿÀóW‚“V}«é±Ç -Ë¢~F ?Ù8—WÞèdaÃW‡‚XR`[¸žFƒÖ#`ëæeH)0ÞëøˆÞ¾«|÷›3ÉÏϧ¶¶¶Z±pÏž=>`X—.]J2™Äó<–ÔWÐÍaïÑñè#µô á¤} cn.‹“ñyýà9œŒO¼ºßMsòt7¿ùþB´òI¥R,Z´ˆS§N}0fƒ­Zµêþâââ…S§N%•JaÛ6¶m³aÅL¬.âãg(.£Œa ™¡ïÓö rùj’d†ªÒ|B69v†ži¤0?‚”’¡¡!ª««ÉÍÍ]ÙÒÒRò™BˆM«W¯ŽãŒŒÑZ£”â¹µõLÉÏáãç(Œ…¸‘!á¸(}sIK‹r©¼/G?àkãTÞ—‡1!Æ<Ï£©©)6Ü`Á‚¶âéx0úq¯¥”ÊöÇT`Ä2›››ÿ§dw’ã8H)ÇT  ”¢¼¼œ¶¶¶»:†w#Û¶™t²¾ÎD²-d71–¬ªÂuÀŠKZ(-¡® -’ÜÖ¤ !ÿ”¶9L m¡.…¶Õ¦ccÉ–m¬œƒt–LcK:¹¶¤žõÑZ:Ý­tÚÛ½ýœ™þá•{õ‡|òƒÇ,;;3¿yóÞ›·JäðáÃm¡Phkkks]]]}UUUM2™Ä¶m{0Æ!1fÙ¶½fÛ¶bYVÁ4Í‚¦iyUUUU3#çÏŸ_€2íÛ·ï…½{÷þ( ílii©>xð`ã¶mÛZLÓD†a÷ïß—LÓ´ ÙÍ<Òfóù¼váÂ…3™ŒO×u3›Í~|ëÖ-}#¡½½ýçGŽIaŒe ²,3ŸÏ·uuuUJ¥RÞÙÙÙŠ¹¹9)•JdY®²,«Þçóåü~Æï÷§«««Ãá0Û±cÇZ °Ž=úÈÎÏÏçÏž=ûCøÍ†’$ À€]¿~½æÒ¥Km‰D" …Ä@ †a@6›…T*%Ù¶½>®á±‰A«­­ý¬££ãÔñãLJ$IÂcú¬# ªÇãy-ïîíí}uzzºVÓ4’Éd`ii Òé4(ŠŒ± 'bŒIÅb±5—ËZ\\$óóó ±X,Z,3ú'Nœ8ÖÑÑÌårM‰D¢evv¶qii©Ú¶í I’Î96Mt]J)BBˆ160ÆEŒq!,444ŒíܹóF,³§§§ÿ}÷îÝà8·öìÙs8 *]]] ]]]JMMÍöÆÆÆ°$IÄãñ J)µ,Ë4 £ iZ:™LÞ±,+ýˆsfúúúªÛÚÚ¦‡‡‡g-€N:54888¿î À²ÙìB0Æà¶ˆ‚A!ç»ãj<oljjÊõ÷÷‹+++e…"^øûÄÄDv€1FEÑEQÄ¥G†Â!Ì9G¥‹¯¬¬øÇoß¾ 7oÞŒ—›N>55¥_½zµ7™Lšë²,+ü缕ض-.//×pÎ×FFFâ`oàòåËs×®];­ëºLÓ4CQ‹RÊcÀ¹Q/..Öùýþì•+W333iØ„G_Œ/Ô××ÓíÛ·‰RÉóøý~c èqLÓÔr¹œ †¢(˜1¦õõõ}>00p6)äI/GGG§š››½ÍÍÍ_´,K U€(¥Žã8–aš¢(«œsSUU4888zúôéx!O뺹k×®†p8¼WE¯(Š„1æ8Žc麮ªªšÓ4Äb±'Ožì…ç²Qg4êììÜ _ª¬¬”(¥¥ÔÒu½P(´±±±‰‹/þ.N³çžÑÏΜ9sÜï÷·úýþCœŸSÓ4D"±|îܹ_Çãq§Üź{ªö‰‚p !”°lû½hDÄÏ444¤ …)I’°Ïçó I–e*ËrzllLÛÌn%QüóÛo¼[û¯|ÿÿ–À¯~ü—3sÎ1ÆÜëõB(â^¯—»÷lb÷_ß¶µ¹u÷‹/£á&ôãoP Þ-ܼŽÖS0Bmbq" Âï¿yèȹ0"ñ@ìöU“QÖ[cŒ—\,ë°l„Ð^jn«Ù¬Êm0MÃñO-‡Ò_” ðÐë!\æî·„|ôæoy“¹IغeôœÑJ?ŒFTe³PP–Æ=»x‘çä¬ “³7ÎùÊ C ”>fGàðÏ|o „ü–s~Îvœcшêt÷TÕLÞ?ØÖíYÊLB8Ø_þKÑqèO¢Õzì2* Ô¥fn—„Š¿~ïwê¾Ð´çmQF»{ªjB~¹ÿåWÓÎA•poi–VþŸ<ñ6ܹWti ð@„O¾öå7+Eц×:»½Û_má!ÂwÛZÚ%Y™¯X—F/è¶ã¼¨¼ÜLXjõ,…X—{ÿZœnª ¨Hf`GcXT}#ä8&+Ë â-p{n‚ôüçш}j=°v-ðÄ0´ç­©…»Ãçcç‹~òZ $ÑB5j’×R€¸±Éë¦íÐc$OÛ¶ÿ¯$zì¢Uu(}=•ÿxö³þ¢eX¶ ÉÕ» ¢JOÄm‡Úýш:ù¼ÈuÂRˆÿ‹‚hDeW¥¼_4‹ï\¼1XLg3P!ú h˜pg~Êq(ýé3K²§ÉÚÚÚB&“Q àù|Þ\XXX•eyêIß~úQáoŽC»Gÿ9ž›¹?G'îÝ18çŠFÔûOû1yRàqµÂÕØ~×4÷?` 0]5\¥Ý=UaBðeÀÊE#j¾R @¥«^W+]«Y »Zt[Ã}6 ìá¿»æO7UïIEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/view-filter_32_off.png0000664000175000017500000000377013001357026021703 0ustar potyrapotyra‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYsvv}Õ‚ÌtIMEß .™hÊ¥…IDATX×_lÉÇ¿;ûÇk78!±ƒŽ¹p­(Â5ÜK¹\>´*ÕI­P‹xécOj%ªªBâ õíh+ê•§>T)´R¹€B )$•E!¦$ŽcÇözãõîììÎôÁ6¸Ð ?é§YÏzf>úý•P#û÷ïßFßëîîîlkkkohhhI&“„1¦B’$)œs—1V`Œ™®ë®RJW-Ë2ŠÅ¢Y,³@àö… ¨S¤Ý»w}ÇŽ¿ŠF£[»ººš÷íÛ߸qc¥TrGyöì™F)udäj4ûÒ˜3 útéÒ[Ùl¶Ñ¶mšËåþzïÞ={-e×®]¿;tèPŠ’à§ÓiÞØØØº²²¢¥R©ÐÜÜ\àÉ“'Z*•ФÓé×uÛóáp8‡—›››:::ø–-[ ‘HÄ=|øð¹ùùyãܹs¿ðÇ54MSpüÖ­[-—/_Þ9;;ÛFÕH$ÇqËåJ¥4ÆXu]ì•ÅÚ°aÞžžÓGŽÑ4Bü×¹@ŽÇãE]×?œššz§¿¿¿offfƒeYr6›Åââ"–——aš&8çknÄ9×J¥Rw>ŸaaAžŸŸŽŽ—J¥ìš1@9qâÄ/{zzšòùü¦ÙÙÙ®¹¹¹øââb3c, iš"„ ”Rض ß÷!˲'Ë2#„8„!d5‰$b±Øý­[·ŽŽŽ²™™™§=z @¬éÞäää½íÛ·ïojj2{{{½½½fKKËæx<Þ¡iš¬ëºäû¾ïº.ugÕ²¬åd2ùo×u—_ ÎìÀÀ@óÎ;gnÞ¼é¼îp púôé‘¡¡¡ùj,à¹\® I!¨Œ’,ËDQE–eMA*ëŸëÔÔT|Ó¦Mù‹/ª™L¦®T$Õ‡ÁÁÁLNN檜sß4M[UURë2I’ˆ$ID!ÕžÉd=ÏS>|ˆ»wïNÕ[žo>==m_»v­?™LÒ*D:6EY „¨…jcêÒÒR‹¢pûöí)lÝpåÊ•'ׯ_?cÛ¶€[–嘦éú¾/8çàœ£$U²‚ máp8wõêÕÙÇ/c"¿<111‘hoo÷7oÞümY–ƒœs=ëœsøeñ(¥V>ŸOpLÓ$œsk``àËÁÁÁq¬Säÿ79666ÝÙÙêììÜ㺮‰DH¾ï{žç¹ŽãX¦i®!h±X”†††ÆÎœ93ˆ7ù«^ŒŒŒÜݶm[¬££c‡ªª!UUeιçyžkÛv±X,æ-Ë’GGGÇO:Õ7e­—ÇŽ;~òäɶ`0x(¨•ìàŒ1ßó<íÁƒÃÃÃI„D"š"Iuê«*x>ï¶‹\yÍùÙ³g„Ãáîp8ü~9ø…O)õfgg—Ο?ÿ‡«ÓÓ\=qâs#‘8À+½¢¶úˆšßÕgY׎Ç/¦Žýèu±<8­iÚÁ`P_XX ™LÆO§ÓË÷ïß·].ŽPûúê6»àÉ;â„”z!!D„B!D£QaY–¨ôP!dkez¡€÷öÛ ¥ÔÅE°x &“ ±D(un2Û²@…IU JÕ,Ie‡3ß—\Ç5 H[¶`ëÞ½x«§Ô0ÐÕׇ®¾>PÃÀ¦={°¹·¢³Ô0à1æûR]œóZWV+ ®ÄuPJ{÷](Š‚ä…ÏÁ ! „€ , @UU´íÙê8`ŒÁ‚Ô ðÜUI*ÃS!s]h­­è:ìÄ<Š3¡PŒ¹`® …°fÀyš€®ëP[[Á¥òÚõ  lΉ½jBℸ+)¨®Í5à¹.£Ð…]ñàå3e¬PÀÓ7àr^€ïû¯X êV——±ts¤Ü¶#M`ÓãswáçÓà¹4؃a˜Ãÿ†@Anr>÷á’²N€Z ¼R… ÿ¯Qð’…p÷7¡ìýB÷.À?þ «`ßû"ßøxÉ‚qç W»áR¥E×Þ^¨°‹˜ÿìBÐyôS”~ú[ÑòÍí0òktüæ÷ „àégŸNñ9Àz,PMÉZˆJA' Xìÿ3š:ZÑü³ûñǰðsPJÑàk¡²û‹§OHX7©Xà•4!Kàxö§ãðÆÐôÃCÐÞz§Àÿ™A~ðïHÝŸçQP?c âÅ•è\ BnÂÉäázuüà xsеòê«vyt=€ùÑÔrøÔ ½ÔWžÀÔ¢¾ œ}¸ ¶d »€äUÓð$À LüfàÊ̺ …B"›Íš¡PH7 ƒ&‰•t:= ߨõÛ“ßÐ(jsíÀü`ÒW\RôŠ*ð€p%¬ÊwÀ­¨SQÿM/$Re®ªZ„ø@°b~€]ó+–ÔìQ·üIY‰mîšØIEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/x-kde-nsplugin-generated.png0000664000175000017500000000422713001357026023107 0ustar potyrapotyra‰PNG  IHDR szzôbKGDùC» pHYsIÒIÒ¨EŠø vpAg ‡úœàIDATXý–Ml\WÇÿçÜûî{o¾=3{ìÔùj’â BÓ ‰F-%B(‰Ò]Â’´¨ $ʪØ!UB,h+ºA€„ …"J j+E"¡¥!iq”Ð(‰Ó6‰ÇöØ3ž™÷ýîe1cÇIœÆnUžôÞæÞwÎïžó?çÂÇx< ¸*‡¬*@ q u'þô¨^— þ¨Î÷?yÔ`¦ÕÍÍuf¶Ì/Íìšï4&æ;ž»{óÁuÛ‘ 5ü¬tÏg7ïþfÁ-ß%„ÈEIØnvf^9óþkÏh|¢Y;³k¢ºëcÃûRöej"TDY'¿¥´OáËŸ(€cewW‹õ»}ž“sþ4ˆ£îN‘1F¯OøHÓ¸“ê(00iÔ0d’‹¯,Lÿ¹vޝ×Î-#pè§JºÈ9EH¶`€+­‹çº~û½J~h\I9Š¹Ù™ã4/üdg}gcäW@¤1zaQâãåÃéÆ˜XÄi8²Ð-xà† ˽ Ó«¡×ÊÃ$"™m_úO’‚Î5.Löÿ6ƒ¯ZLÜÒtCa’¸Õ|íÛã•í_UÒ^1ªŽ•,iñxuë¡zeb/­üÝß%!.7§¿Ðmþ@wCQlDÁ­ŒMŒn› y‰ŽW­&h§ iy‰óÕlõ«î I(]GÇk¿1³8'6¬ "Ã7óñ4Å:@ýD N",¥ `\ºº‹*´Ý0³YËöúË ˆ&ZÖÁ* ÄÉP“„6 "ô×ÈÀ`Mÿ×xȺØÒEûè…K¢eóDbZÓbE1Dv’&iÈ‚©ØŠ¨©-¢«Ô7¸ÿÓñêÉ#9%:Õ81­‡>÷ÖÞüårå˜@šZeËLŒ’‡·¨Ìžþy§ËÙ\.Ô •†vÄÆ¨(‰Àü!÷>=óZ}Gýöï”rÃ_èx­w^?õâsI‚s 1À`&\Ml‘"¿×˜zþÄÙóß?þÚ{¾ç¶ê¥ ÍÒýÌb[ÏïüÛ±D´"”ë¼¼Õ-ïß\ßñ­R¹PŠüúž|¦8i˳/¤:¡Ÿ‚ë#ÁI’†aœ>þ$Ú_~ƶ”_-Ôßú×Ù 'ªØ®Z Þ “sŠwåò™â¢9á(kÓmc{‡ŠåÏ$‰&†Œîëà:u†¤,aÕ*Ch­&›0ÕÜM¸€ ÌÌ61"F¨»ˆ¨‡ÌP)g“Nz€ßHM¤Cª˜+?p÷®‹¿}å(þ{ǶDÞ>ÞÜ~ߞᤔwx~÷dùÏð×"Da\Ncf²E¤(vÁƒ-Ä´ÜÚoˆ€6 bÙÆX}üÞT'OÕ+ aæ|¹XÝ_¾S°å¾;=õóÖÌÅo ðÏ ÚT[ø[c~æë£\ÿ”eŽz‰¿Ôë. ¢ÜÐÈh1>R“^SýËL¾i!“cgëÖ-£pÓ>"°å’mdŽ\XBÁ¬qI_-ÃÐî-;ùôwç[/I!s^Ø;Óî.¼;RÞt¸XÝý0KA+W=¢¯ hhx¦ ¡–HÚÊ5º:i‚ e Ì-:á/g¯ýæ¥Ö«÷ímý]0ä|þP™±*?2`"h,dD"q ÓAQ°FÊÓBdz+%Êd­!ܵüñpŒƒÏ0á~hxp`X3²\E° ZWf§ßˆã¸Á̶­ì‘R±AùÏóضmBþÌ{1ö§C‡þ§Gu†ñ¼ßïmûöí…BP<σR Ã0Éd066†ÑÑQ˜¦ùr¥Ry#‰¨ÿ5À‘#GBŒ±³½½½+ÚÛÛ¡ª*4Mƒiš°mÇAE(Š·ÛR©„¡¡!Œ— !/¾øbì?8|øpP–åä 2™ .'çJvµÐM«àà”¸Üú +û죫ÖÜ¿>ä”eŸ|ò Μ9˲ּôÒKÑe¼ùæ›uÕj5zðàÁ ¤g³øé;ã/&J¡æ&oâ®OÚ¥84P5]™Í›RéüÝ]mžk¯~sëºÆ†‡‡1<<ÝÝÝÙÙY¼þÞÄ¥´J…]áuã_ßZoÐÓâ‘EYà8^à9^vðÒª¥Þ£Hœ%HW’éBãÄT6ÿØCí~EQ011±+ÿl``Àø<€›ýlYÖã›7o†ªª¸–U«ÿˆîºChìñ-+×ùIá9ÂK/ð8ù¹%X“'O–~øácº®OÅãñ®L&ã-•JPUÅbù|étñx###¾Íf§5M[ÙÒÒÃ0àõz‘Íf!Š":;;ÉdòÙ`0˜‰Åb/™Z‰D"‚,Ëݾ àÆØŠ~3”ÒÁR©ô~__ßÀÓO?-ø}GGÇSápåòõ‘T*I’ Ë2N:…d2ùºÛí~áøñãöÜ» ‹úîÙ³ç'k×®=´oß>†Ã0P(`Û6<>ýôS\¸pá}]ןÐo[\oO×*€to7‹ÅN»Ýî©D"ѳqãF^EB@A}}=z{{qíÚµuÙlVˆF£­Ý¹”«X°¹cÇŽ­Ú´iS›×ë]ít:›!²mÛ†®ëÙ¹¹¹äèèhüÀq ‡ÃÛÀïöïßïU”Rttt@’$ÌÌÌà•W^¹ÚßßßÊÝ|A…»»»Ý---­n·{ËåºÏårí¨¯¯ßëñxUe‹¢(ku]÷€:ugÏžýçäääÞ·ß~ûJ6›E(‚ …B,ÜBjwÍ/bsN§SèììtƒAg]]˜ÉdìÉÉI3¸~õ.¨½ð¼çž{ vpAg ‡úœIDATXÃÅ—[lWÇçÌìÕëuvݵâ¤j‚;Ð*iE¡H ÂKï©UUå'*<ð€„ÄB\Ô‡òˆzAEJeRñP!¨€¦Q[Û‰“(4‰\ÙÙØk{×;»³;sÎáag63»vl#}:;ÿ9úþÿï2çÛÿó%v»ñÛðTÒ¶_@ÊÃZ©a¥õ€%¥cI¹j´^ð”:#`æiXÿŸ 8 ¶eýZÃ×J££zïçŽds{ÇHŠ$‡iWk¸kk8Ë·X¾x©±R.[˜?{Ƽ< ×þk¯C2'寀SŸ}èXòþÇ“–ïÁê8´Úà{`' •€. l›ͼ£?™kaÌéE­¿÷ðþ#3PBˆwî™zð¥ÓIåÃõ›ÐtûöšÞßÙ Ü7NÛ’|ü»ß»k+«µ1?«»ð6„s¦¦F?wÂæÊبݕÔÓ‡³gàê›ôo.\¹åóù“Píå³zÒn¥…x÷àääġߴ™›‡z£?Ê€TGï#«ŒÛÂTÖþê—¤Y­dÜÊÚñi8ýFN½ÉKù³Òpñ‰ç¾e›¹K'¡Scbf"d¡©<ÜßtQ³—9pâ‰ÂpñhNÊŸn[‚?ÀÞœ” Ç_þî\\‚Úf_j£k/f¥o1ÏaÆGùûo~»ÑÒzrÊ}ÈJù‹CG¦r²í¡«µn”z £4AFTPÁÃ2éZáûìŸ<”KJùó¾¼CÚ˜é{ŸyÂR7·%î+EôYXšW=BÔ%î}âë¶2æÙÈÇdà©ábA ¥Ð­vœ8¥Þ"Ê..DÇ"é1%%ªí!„d(?¨=x,& !Äó£sª²‰8Ñ¡)1RvšÓ–…±,Œ”˜®‚ý] p½Æðý9[ˆBvÐ0“ÙýûÐF×BÀk¯õu쮇Gp5Ožì4³èf‹Ìgö">º8 ¡”)aÊ•Žâ rÆ´ÖÝßB¤”Ñ‘úОObxJ±hcr‰b­T'µAêvº´Ö(¥ºŠPJáû>ZëN¯„½` ‰¡Ú˜Á˜)D½í8èDòN½w ”êF~7 ð*•N¯$¸å„›±¸Ý\YH'Ñ­ÖŽNw"Ž m4ðççÙ,‰ûÇq‡€•˜àrýÚõ‰cG1›N§÷Ô©NjÁ/—ñnÜÀ8N÷„ {%vúENÏî8X®C£VGÃ¥˜ß˜3åùKÇK_8–‹5M½ŽZYÁ_Zê¼!Ûµ½X¯Àð™+R½r}Ss&&À…™ÚfÝj/~‚÷ÁÆ€nµ0®»e”»‰>&Èd6…IH·eçbMxªBˆ·–ÿ9ëËûÆðªU”ëv§[xò…¦¸sÔöÍ!®Âùà‰Cû(¿¿àKÃÓ°àjýƒå¥rÝ䳈BþYdÐô‘rg «Qᲃl’Êíµº?Œ6iWÀ XFˆW¯½û~#õð$&Ü1zµÍŒˆ>3™™‡&Xüë¬#…x%:ŠcêZÿØiº³ŸþíC/ýè˜Lª/µ[EËV$z²)¾x˜¥÷æÚn«ýQ]ëŸô¾¦}Gû[°Ç†ùb©02þ•c çÂeüÕj¼á¶èð(`—†8zå÷æ½ÍJu¹ nõŸpËÙrîp.“IÙüáŒi¸4/Þ@9Ím_ÃЬÁ,™ÉqD&ɧù¸é¹í¹6<ù,T¶âÚv¸½ ‰1xE ñba´˜yäˆÄmѺµ†¿á ÝÚS°éÖP–ÄX™´¸}þª_½½îµáôiøþYhlÇ#¶ÁrÀû6LNÃòðH:“Rù±b&=œÇÌb¤ñœ&­jƒöZ[ëMÏmYpþMøåÛp¨NdÝQ@60]÷ÁØ“ðèQørÆR³!éƒçB}V>„ü Î/u:½Nç}×M:ߌj7%ÈÒùßf"¬™ÀR@’Îw… œz€ 4é¤<´x³—ü®=yž3@: N¸ øm »¦îFðoçšEæ¹^]%tEXtcreate-date2009-11-10T19:38:24-07:00t2©â%tEXtdate:create2010-02-20T23:26:24-07:00.ÃPÖ%tEXtdate:modify2010-01-11T08:57:35-07:00«¹ªO2tEXtLicensehttp://en.wikipedia.org/wiki/Public_domain?ýêÏ%tEXtmodify-date2009-11-10T19:38:24-07:00+ƒßÖtEXtSourceTango Icon LibraryTÏí‚:tEXtSource_URLhttp://tango.freedesktop.org/Tango_Icon_Library¼È­ÖIEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/document-open-recent-2.png0000664000175000017500000000567413001357026022507 0ustar potyrapotyra‰PNG  IHDR szzôbKGDùC» pHYsHHFÉk> vpAg ‡úœ ôIDATX×{p\W}Ç?çÞsïÞ}iµzZ²dDzd;Å–£¸äéP'¥€š„˜ÂÀ ÐÓ)™6¶´3e&Ð)$“241 É&.©!‰íØ–KV[VlÉZE¯]­û¼súÇ®äµû í¹ósϽ{Î÷û{Üs~+x‡í™»07Øì–y·¢Wi}…‚F¾0EA˜æ¨öƒýJ©gß½—ãô;YWü¾ôï¡É ™£áãÑŽ7÷ÅBÍk…Œ&0#u ª¼„Ÿ›'Ÿ:Ì Ë—fS¾ ô?K꟮}–âÿK€1ð ãó†iþ}ãÞâ4÷ý±mê"já<ä'Ñ^¼<`€EØ1ˆw`$Öá—=¦>_œ{ãp^ûÁçÞ½—gÿOÝE83Ÿ‹­½ò¦Ž÷}"b’GM ;™Õ‹Y7Wº\Cb„ÄÂ!l oN»µ cÕ{pKçúDÁËN=q&ïùîg ~¯€þ»HX1ùJãU»zV]wkHÿʼn3¤NOëRÁ#wÅNáw^É5Pßn ‘›FeÆþŽHꨮkŒÑ¶q•°W÷BëÆ÷=U\<;ðòpÞÿÀå"ÌKÜþ5Œ™’|¡ýÆnké»ÑV#¿`jpPO¼9Cæ] ;£ºr¸‘ú–xð!>²çn’mk ¯Þ=7QØx›Xœ›K¯¿Š­³:l.Šú«?lù¹¹öØÂdÇ÷Nèçk9eí`à‚ü‡† Ûû{¯·žùÅ~¶çNé/JñÞ±)²ƒ§ØyÃN“¸¾ @.—§®.ŽiJ,Ë"Qºõ/Y¸òý¨_ýniHµm´ïº'\ÌLß;pß…c[Ÿ ¾¿ÌiÔdû&;šøìê[çöñJ¦‹än¥;¿'^zõÛ·öñà_bkï6|ß'5>Àâ–´°, )-¤) ;aš7^Eé£OŠÉ©@ÌŸÓzºŸuw|6&¤õþ»HüvÔúNÇÍwÆuz€³ÃSúŽÝÎ#ßzŠ'þå)ö|ä^¶lÙ‚ÖŠ¼ÈÀÀºú•/,V,“K)‘¦Ä4%õ­¸·?*RoNPžÃð2´Ýð'q+.¿v‰€þ±=Tß²#ÚÑ#Ôì'F|:׬%óƒï?IGG'ZÃßàÂø(WïØA¹ä®x –Ü4%¦ib&†a_ÝMîúEêä9­ÆHn¹Á2¤óÉ“{h] ¥ySßÕ©¹ÓdSi=êmíí,.ΓË-¢TÀððOpÛ­·‘ˆ×‘Ëå˜Íd.ñ€iVˆ ÓÄ0 à ¶íä\© é)(eIn»&Hv¯pglÝ¡çß"=‘¹ºõD‚ @)…Ö;¢X,`I SJ–rXR2;3S%7W,7 CTaLÓ¤¼ùO¹sãŠÒõÝÛ,y€1ðqÖÉúÖ˜´Lü\¯PÒÑD# ±,Ç #¥dCÏv½÷ùêW2é vH23›Æ4eÅj£bµ0*ÄÂBB›oa~bÒÐ^§uhÑ×ÿ,©4k†Ö@—²òdëzho_iJ²Ù,### "“ÎÐÛÛK¹\b6Ʊmææ²+®J@…òb/*0¢hai¿P¶—#”h*ûӓ륬²ã w ¿ì1e¶ˆß¼øïŒÒÜÔD{Çj®½îêõ8N˜H8ŒeÙŒ§&ð\ŸÅ¥ÂJ˜*ŸÆ2jŽÃå›h½ö]WX^«Ó"=Ù,Ñ$ DZð n@ws˜?¿çó„Ba'Œ”V5É$–”h4'‡Þ`tl”†d‚’çñÐ_=Ìø3‰Zk”Öh]¥µfù¡8€r1CŽ¢RŠª¸äcX¶åX˜¹4¦mcšfe¥PU*@?üÑéhoaçõ×sèÕütð‡%³iãÞµùèîîbMg;B°"Ä(Î##uø…% Í’Ô‚Ty~ÎÇ´‘NcjZûJ‰bC¡T€R‚ ¨Äµ¥¹™So qäèÊ®‡iêâ1r¹‡ãð‘c+ÛûÓ{_1Â,d…ŒÆA¸ YË ¸ MÍ`qúm‰t7$¯ŸD¹”¯ZÄÊá¹çž;9rô(çSS ·ïþ =Ýë‰DÄÃa'„ãØ8N¨²†VèôydÈ2Ú€òü¢¾úǤäÖ½Ì Ü_¸PžÏn²¢D(;L°iB]J¬­ŽcóØw¿M:¡!Y)åJ˜” ‚?ð Ÿ :fø =›4:ùÔ90Å ´ ƒàéÅó§]#Ô@Kw»°ûŸRË+¨,æûžïãù•q2™@£ñ|ß÷ð?ð/’Wçk¯„=ôSÝ´õ&AP&;rj)(ù?¼¸úê_Ó'´• ÚÚFD„þm…tþ2*džçáùUxnõyõ}•ܯz€c?¢eÃ&mFãøÅ¨GîÛàÕ—çÒ[ë×tZ¡¦6Q×Ù%J‡Ÿƒ‘WðšºQN¼"¢F€ª« €·qö=¬“îŒXÇýØafˆs/ìÏͦó_ºæ'z?\,Lk«bÅÀÙw¯ùí†Æäî®÷îŒÈd'È8‹ã£zzð5Q..érç{D\ƒŽ$A+D>ƒÌœÇ?¦Ã«®­WÝHtuä.PJà­ß(NÍ¿ù¾gÔ£€ ”ïr¡ZüÛnãþ®fû+«û¶;õ]W ïÃ+•(μ­Ý\Žr¡( ÓÔv4†“Hâ´®Ò ¡ËYôÜ0é¡×üÉ“CîëÞŸÚϯr ܢ5l ôw×±íæuòëñD|ýªÞ+#ukº1b-i3f¨²=eð‹Pš%Xœ`áÜi=9ðfy!_>ôÜ™àëß9ÎH é²u¹€å±}¬ÇnfWo›ü´c²=ÒØèÕ­jˆÚш0m&p˸‹yµðöl¡´0oä=qðà¸ÿÏ_y™×ª®öªäËе„ÿS“€U…̭ľp;Ûbô9ŽÜd êBùÎ.•Ô‹êÈÃ/sp¢HðkàÖ&Þå¿Óf\Q3_ÕôªJöŽþžÿ'9wgÝMóP%tEXtcreate-date2009-11-15T23:04:31-07:00Už¿%tEXtdate:create2010-01-11T09:11:20-07:00$'çŠ%tEXtdate:modify2010-01-11T09:11:20-07:00Uz_64tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj¨%tEXtmodify-date2009-11-15T23:04:31-07:00 ¨è‹tEXtSourceGNOME Icon ThemeÁù&i tEXtSource_URLhttp://art.gnome.org/2ä‘yIEND®B`‚dlt-viewer-2.18.0+dfsg/src/png/go-previous.png0000664000175000017500000000226013001357026020560 0ustar potyrapotyra‰PNG  IHDR szzôsBIT|dˆgIDATX…í–mhÕUÇ?çœÿ»ÎÌŠ¤"ôY³Ý©eV›ÙƒJ SM{‘Øæ^Æ ¤^¨AAÐÌ7EMÊ0ðEJ–èE‰êeê|ÚuÞ=Þ»{ïyèÅÿ¿Û½×­ö@ïö…¿?çÏùý¾ç÷tLa “ÄâFU_Ý้ð-¢;¼ ï•NØÈ„<ÝÈôš&ïÀâûV¼õú oG<åO˜€7Þ UMÌMâZ³tÓüE÷.ó•TvãŒ@u£÷ØtïÖ¶7V¿³ðáÊ%~{×I¬Ó“"0æDÔúY3g´õÅæ2å+:ºN’1i Àüš‘Ѥ·»rÎC[6Ôíˆôeâœïþc5ÎYpj,p|·ã"mbƒÞþšꪟ‹nˆ\êi'‘ºŠuk Æi¤4¿ö ÖYël(jc ï¶¼94®ÔlÌwÂ^»lãœE•Oø]'Hfúp¸œaë ±¿¾ÅX±jc³h›Íéå÷¼:ê!G$PÓè=^âûß­«Û1cöóDÛåÉštø×á° ƒÅà¤Æ¢q.ÐÃä¬38,Ξ›Dü-wÌ,ß³®vû4éCÛå#A®…@+ ' ä¥'¿,Fì×Ñ&ÿ«ŠòÊçׯlŒ\ê;Kg÷Y!RZBœ KÊô“Ìô2¤“h“Ƈp é|%amXpŒ8­ Xk«…ƒ™}C×Ñ&Εƒ™ú3qú³×ÉØTÐ œkV;¬qíðˆÖ©±¥`îySq޳»>Þ¿só³K_*SÒç̵¥%>ÒC-Ò R „xRààÖ‚0a†ç ›MåPÍŒ‚IØÚŠ9¶KoïíKlÝ÷ÃÞ¤oÊÜ£u¤í Ùn2 "”Eyå‰@|ç‹Ö”@z©RT­ïST #bÛc¾î¿’©ýþ§}‰+W¯ê'®ç¶²Y¡ÑÀò$Ê(_¢|‰ôCÇ9çAê‚Ú)ˆxAÔGjC ÈS-ºmÞ–³‡[o$ºî^ZõJéo݉§ÿDå9YYÑŽ°‚4ÚauXÆØÅŽF ‡ G‰÷vèUº¾mOO_¢vÕSk#C¿r~𗀄ÔÁ{4ÿ›™|Œi»lï5†N|h¶e7vnþb ¥aͪúÈíååœî?„P&—ãã»uСdó$“÷móìçBR S$Ч>ןvžîÙôå7-ƒqçªÊë™æß ¦I`H9ÕybµF{M¸¾]üŒ» /§Î¬ˆ¨²²G<£JT)GcG¸³ï¸˜D6$WІ£Õ€ Ø<Ñ€wîgÝ>p‰åÎý¬«;^µº¶>’áðGp˜ÐM—½§†›p³t2Aêb̶–.¸1½ãö“CÞŘÝYtòtžLîÙT÷ñ6õrøñõÜu5…)ŒcF¦Œ˜IEND®B`‚dlt-viewer-2.18.0+dfsg/src/dltmsgqueue.cpp0000664000175000017500000000314413001357026020054 0ustar potyrapotyra#include "dltmsgqueue.h" #include DltMsgQueue::DltMsgQueue(int size) : bufferSize(size), readPosition(0), writePosition(0), stopRequested(false), writeSleepTime(0), readSleepTime(0), buffer(new QPair, int> [size]) {} DltMsgQueue::~DltMsgQueue() { if(buffer != nullptr) delete[] buffer; } void DltMsgQueue::enqueueMsg(const QSharedPointer &msg, int index) { int nextWritePosition = (writePosition.load() + 1) % bufferSize; while(nextWritePosition == readPosition.load()) // buffer full? { if(writeSleepTime > 0) QThread::currentThread()->usleep(writeSleepTime); writeSleepTime = qMin(writeSleepTime + sleepTimeSteps, maxSleepTime); } writeSleepTime = qMax(writeSleepTime - sleepTimeSteps, 0); buffer[writePosition.load()].first = msg; buffer[writePosition.load()].second = index; writePosition.store(nextWritePosition); } bool DltMsgQueue::dequeue(QPair, int> &dequeuedData) { while(readPosition.load() == writePosition.load()) // buffer empty? { if(stopRequested) return false; if(readSleepTime > 0) QThread::currentThread()->usleep(readSleepTime); readSleepTime = qMin(readSleepTime + sleepTimeSteps, maxSleepTime); } readSleepTime = qMax(readSleepTime - sleepTimeSteps, 0); dequeuedData = buffer[readPosition.load()]; readPosition.store((readPosition.load() + 1) % bufferSize); return true; } void DltMsgQueue::enqueueStopRequest() { stopRequested = true; } dlt-viewer-2.18.0+dfsg/src/dltfileindexer.cpp0000664000175000017500000004201013001357026020512 0ustar potyrapotyra#include "dltfileindexer.h" #include "optmanager.h" #include "dltfileindexerthread.h" #include "dltfileindexerdefaultfilterthread.h" #include #include #include #include #include extern "C" { #include "dlt_common.h" #include "dlt_user.h" } DltFileIndexerKey::DltFileIndexerKey(time_t time,unsigned int microseconds) { this->time = time; this->microseconds = microseconds; } DltFileIndexer::DltFileIndexer(QObject *parent) : QThread(parent) { mode = modeIndexAndFilter; this->dltFile = NULL; this->pluginManager = NULL; defaultFilter = NULL; stopFlag = 0; pluginsEnabled = true; filtersEnabled = true; multithreaded = true; sortByTimeEnabled = false; maxRun = 0; currentRun = 0; msecsIndexCounter = 0; msecsFilterCounter = 0; msecsDefaultFilterCounter = 0; } DltFileIndexer::DltFileIndexer(QDltFile *dltFile, QDltPluginManager *pluginManager, QDltDefaultFilter *defaultFilter, QMainWindow *parent) : QThread(parent) { mode = modeIndexAndFilter; this->dltFile = dltFile; this->pluginManager = pluginManager; this->defaultFilter = defaultFilter; stopFlag = 0; pluginsEnabled = true; filtersEnabled = true; multithreaded = true; sortByTimeEnabled = 0; maxRun = 0; currentRun = 0; msecsIndexCounter = 0; msecsFilterCounter = 0; msecsDefaultFilterCounter = 0; } DltFileIndexer::~DltFileIndexer() { } bool DltFileIndexer::index(int num) { QTime time; // start performance counter time.start(); // load filter index if enabled if(!filterCache.isEmpty() && loadIndexCache(dltFile->getFileName(num))) { // loading index from filter is succesful qDebug() << "Loaded index cache for file" << dltFile->getFileName(num); msecsIndexCounter = time.elapsed(); return true; } // prepare indexing //dltFile->clearIndex(); QFile f(dltFile->getFileName(num)); // open file if(!f.open(QIODevice::ReadOnly)) { qWarning() << "Cannot open file in DltFileIndexer " << f.errorString(); return false; } // check if file is empty if(f.size() == 0) { // No need to do anything here. f.close(); return true; } // Initialise progress bar emit(progressText(QString("%1/%2").arg(currentRun).arg(maxRun))); emit(progressMax(f.size())); // clear old index indexAllList.clear(); // Go through the segments and create new index char lastFound = 0; qint64 length; qint64 pos; char *data = new char[DLT_FILE_INDEXER_SEG_SIZE]; do { pos = f.pos(); length = f.read(data,DLT_FILE_INDEXER_SEG_SIZE); for(int num=0;num < length;num++) { if(data[num] == 'D') { lastFound = 'D'; } else if(lastFound == 'D' && data[num] == 'L') { lastFound = 'L'; } else if(lastFound == 'L' && data[num] == 'T') { lastFound = 'T'; } else if(lastFound == 'T' && data[num] == 0x01) { indexAllList.append(pos+num-3); lastFound = 0; } else { lastFound = 0; } /* stop if requested */ if(stopFlag) { delete[] data; f.close(); return false; } } emit(progress(pos)); } while(length>0); // delete buffer delete[] data; // close file f.close(); qDebug() << "Created index for file" << dltFile->getFileName(num); // update performance counter msecsIndexCounter = time.elapsed(); // write index if enabled if(!filterCache.isEmpty()) { saveIndexCache(dltFile->getFileName(num)); qDebug() << "Saved index cache for file" << dltFile->getFileName(num); } return true; } bool DltFileIndexer::indexFilter(QStringList filenames) { QSharedPointer msg; QDltFilterList filterList; QTime time; // start performance counter time.start(); // get filter list filterList = dltFile->getFilterList(); // load filter index, if enabled and not an initial loading of file if(!filterCache.isEmpty() && mode != modeIndexAndFilter && loadFilterIndexCache(filterList,indexFilterList,filenames)) { // loading filter index from filter is succesful qDebug() << "Loaded filter index cache for files" << filenames; msecsFilterCounter = time.elapsed(); return true; } // Initialise progress bar emit(progressText(QString("%1/%2").arg(currentRun).arg(maxRun))); emit(progressMax(dltFile->size())); // clear index filter indexFilterList.clear(); indexFilterListSorted.clear(); getLogInfoList.clear(); // get silent mode bool silentMode = !OptManager::getInstance()->issilentMode(); bool hasPlugins = (activeDecoderPlugins.size() + activeViewerPlugins.size()) > 0; bool hasFilters = filterList.filters.size() > 0; bool useIndexerThread = hasPlugins || hasFilters; DltFileIndexerThread indexerThread ( this, &filterList, sortByTimeEnabled, &indexFilterList, &indexFilterListSorted, pluginManager, &activeViewerPlugins, silentMode ); if(useIndexerThread) indexerThread.start(); // thread starts reading its queue // Start reading messages for(int ix=0;ixsize();ix++) { msg = QSharedPointer::create(); // create new instance to be filled by getMsg(), otherwise shared pointer would be empty or pointing to last message if(!dltFile->getMsg(ix, *msg)) continue; // Skip broken messages if(useIndexerThread) indexerThread.enqueueMessage(msg, ix); else indexerThread.processMessage(msg, ix); // Update progress if(ix % 1000 == 0) emit(progress(ix)); // stop if requested if(stopFlag) { if(useIndexerThread) indexerThread.terminate(); return false; } } // destroy threads if(useIndexerThread) { indexerThread.requestStop(); indexerThread.wait(); } qDebug() << "Created filter index for files" << filenames; // update performance counter msecsFilterCounter = time.elapsed(); // use sorted values if sort by time enabled if(sortByTimeEnabled) indexFilterList = QVector::fromList(indexFilterListSorted.values()); // write filter index if enabled if(!filterCache.isEmpty()) { saveFilterIndexCache(filterList, indexFilterList, filenames); qDebug() << "Saved filter index cache for files" << filenames; } return true; } bool DltFileIndexer::indexDefaultFilter() { QSharedPointer msg; QTime time; // start performance counter time.start(); // Initialise progress bar emit(progressText(QString("%1/%2").arg(currentRun).arg(maxRun))); emit(progressMax(dltFile->size())); // clear all default filter cache index defaultFilter->clearFilterIndex(); // get silent mode bool silentMode = !OptManager::getInstance()->issilentMode(); bool useDefaultFilterThread = defaultFilter->defaultFilterList.size() > 0; DltFileIndexerDefaultFilterThread defaultFilterThread ( defaultFilter, pluginManager, silentMode ); if(useDefaultFilterThread) defaultFilterThread.start(); /* run through the whole open file */ for(int ix = 0; ix < dltFile->size(); ix++) { msg = QSharedPointer::create(); /* Fill message from file */ if(!dltFile->getMsg(ix, *msg)) { /* Skip broken messages */ continue; } if(useDefaultFilterThread) defaultFilterThread.enqueueMessage(msg, ix); else defaultFilterThread.processMessage(msg, ix); /* Update progress */ if(ix % 1000 == 0) emit(progress(ix)); /* stop if requested */ if(stopFlag) { if(useDefaultFilterThread) defaultFilterThread.terminate(); return false; } } if(useDefaultFilterThread) { defaultFilterThread.requestStop(); defaultFilterThread.wait(); } /* update plausibility checks of filter index cache, filename and filesize */ for(int num=0; num < defaultFilter->defaultFilterIndex.size(); num++) { QDltFilterIndex *filterIndex; QDltFilterList *filterList; filterIndex = defaultFilter->defaultFilterIndex[num]; filterList = defaultFilter->defaultFilterList[num]; filterIndex->setDltFileName(dltFile->getFileName()); filterIndex->setAllIndexSize(dltFile->size()); // write filter index if enabled if(!filterCache.isEmpty()) saveFilterIndexCache(*filterList, filterIndex->indexFilter, QStringList(dltFile->getFileName())); } // update performance counter msecsDefaultFilterCounter = time.elapsed(); return true; } void DltFileIndexer::lock() { indexLock.lock(); } void DltFileIndexer::unlock() { indexLock.unlock(); } bool DltFileIndexer::tryLock() { return indexLock.tryLock(); } void DltFileIndexer::appendToGetLogInfoList(int value) { getLogInfoList.append(value); } void DltFileIndexer::run() { // initialise stop flag stopFlag = false; // clear performance counter msecsIndexCounter = 0; msecsFilterCounter = 0; msecsDefaultFilterCounter = 0; // get all active plugins activeViewerPlugins = pluginManager->getViewerPlugins(); activeDecoderPlugins = pluginManager->getDecoderPlugins(); // calculate runs if(mode == modeIndexAndFilter) maxRun = dltFile->getNumberOfFiles()+1; else maxRun = 1; currentRun = 1; // index if(mode == modeIndexAndFilter) { for(int num=0;numgetNumberOfFiles();num++) { if(!index(num)) { // error return; } dltFile->setDltIndex(indexAllList,num); currentRun++; } emit(finishIndex()); } else if(mode == modeNone) { // only update view emit(finishIndex()); } // indexFilter if(mode == modeIndexAndFilter || mode == modeFilter) { QStringList filenames; for(int num=0;numgetNumberOfFiles();num++) filenames.append(QFileInfo(dltFile->getFileName(num)).fileName()); if((mode != modeNone) && !indexFilter(filenames)) { // error return; } dltFile->setIndexFilter(indexFilterList); emit(finishFilter()); } // indexDefaultFilter if(mode == modeDefaultFilter) { if(!indexDefaultFilter()) { // error return; } emit(finishDefaultFilter()); } // print performance counter QTime time; time = QTime(0,0);time = time.addMSecs(msecsIndexCounter); qDebug() << "Duration Indexing:" << time.toString("hh:mm:ss.zzz") << "msecs"; time = QTime(0,0);time = time.addMSecs(msecsFilterCounter); qDebug() << "Duration Filter Indexing:" << time.toString("hh:mm:ss.zzz") << "msecs"; time = QTime(0,0);time = time.addMSecs(msecsDefaultFilterCounter); qDebug() << "Duration Default Filter Indexing:" << time.toString("hh:mm:ss.zzz") << "msecs"; } void DltFileIndexer::stop() { // stop the thread stopFlag = true; while(isRunning()) { // wait until task is not running anymore usleep(100000); } } // load/safe index from/to file bool DltFileIndexer::loadIndexCache(QString filename) { QString filenameCache; // check if caching is enabled if(filterCache.isEmpty()) return false; // get the filename for the cache file filenameCache = filenameIndexCache(filename); // load the cache file if(!loadIndex(filterCache + "/" +filenameCache,indexAllList)) { // loading cache file failed return false; } return true; } bool DltFileIndexer::saveIndexCache(QString filename) { QString filenameCache; // check if caching is enabled if(filterCache.isEmpty()) return false; // get the filename for the cache file filenameCache = filenameIndexCache(filename); // save the cache file if(!saveIndex(filterCache + "/" +filenameCache,indexAllList)) { // saving cache file failed return false; } return true; } QString DltFileIndexer::filenameIndexCache(QString filename) { QString hashString; QByteArray hashByteArray; QByteArray md5; QString filenameCache; // create string to be hashed hashString = QFileInfo(filename).fileName(); hashString += "_" + QString("%1").arg(dltFile->fileSize()); // create byte array from hash string hashByteArray = hashString.toLatin1(); // create MD5 from byte array md5 = QCryptographicHash::hash(hashByteArray, QCryptographicHash::Md5); // create filename filenameCache = QString(md5.toHex())+".dix"; qDebug() << filename << ">>" << filenameCache; return filenameCache; } // read/write index cache bool DltFileIndexer::loadFilterIndexCache(QDltFilterList &filterList, QVector &index, QStringList filenames) { QString filenameCache; // check if caching is enabled if(filterCache.isEmpty()) return false; // get the filename for the cache file filenameCache = filenameFilterIndexCache(filterList,filenames); // load the cache file if(!loadIndex(filterCache + "/" +filenameCache,index)) { // loading of cache file failed return false; } return true; } bool DltFileIndexer::saveFilterIndexCache(QDltFilterList &filterList, QVector index, QStringList filenames) { QString filename; // check if caching is enabled if(filterCache.isEmpty()) return false; // get the filename for the cache file filename = filenameFilterIndexCache(filterList,filenames); // save the cache file if(!saveIndex(filterCache + "/" +filename,index)) { // saving of cache file failed return false; } return true; } QString DltFileIndexer::filenameFilterIndexCache(QDltFilterList &filterList,QStringList filenames) { QString hashString; QByteArray hashByteArray; QByteArray md5; QByteArray md5FilterList; QString filename; // get filter list md5FilterList = filterList.createMD5(); // create string to be hashed if(sortByTimeEnabled) filenames.sort(); hashString = filenames.join(QString("_")); hashString += "_" + QString("%1").arg(dltFile->fileSize()); // create byte array from hash string hashByteArray = hashString.toLatin1(); // create MD5 from byte array md5 = QCryptographicHash::hash(hashByteArray, QCryptographicHash::Md5); // create filename if(sortByTimeEnabled) filename = QString(md5.toHex())+"_"+QString(md5FilterList.toHex())+"_S.dix"; else filename = QString(md5.toHex())+"_"+QString(md5FilterList.toHex())+".dix"; qDebug() << filenames << ">>" << filename; return filename; } bool DltFileIndexer::saveIndex(QString filename, const QVector &index) { quint32 version = DLT_FILE_INDEXER_FILE_VERSION; qint64 value; QFile file(filename); // open cache file if(!file.open(QFile::WriteOnly)) { // open file failed return false; } // write version file.write((char*)&version,sizeof(version)); // write complete index for(int num=0;num &index) { quint32 version; qint64 value; int length; QFile file(filename); index.clear(); // open cache file if(!file.open(QFile::ReadOnly)) { // open file failed return false; } index.reserve(static_cast((file.size() - sizeof(version)) / sizeof(value))); // prevent memory issues through reallocation // read version length = file.read((char*)&version,sizeof(version)); // compare version if valid if((length != sizeof(version)) || version != DLT_FILE_INDEXER_FILE_VERSION) { // wrong version number file.close(); return false; } // read complete index do { length = file.read((char*)&value,sizeof(value)); if(length==sizeof(value)) index.append(value); } while(length==sizeof(value)); // close cache file file.close(); return true; } dlt-viewer-2.18.0+dfsg/src/dltuiutils.cpp0000664000175000017500000000073513001357026017722 0ustar potyrapotyra#include "dltuiutils.h" DltUiUtils::DltUiUtils() { } QColor DltUiUtils::optimalTextColor(QColor forColor) { int d = 0; // Counting the perceptive luminance - human eye favors green color... double a = 1 - ( 0.299 * forColor.redF() + 0.587 * forColor.green() + 0.114 * forColor.blue())/255; if (a < 0.5) { d = 0; // bright colors - black font } else { d = 255; // dark colors - white font } return QColor(d,d,d); } dlt-viewer-2.18.0+dfsg/src/jumptodialog.cpp0000664000175000017500000000243213001357026020212 0ustar potyrapotyra#include #include "jumptodialog.h" #include "ui_jumptodialog.h" JumpToDialog::JumpToDialog(QWidget *parent) : QDialog(parent), ui(new Ui::JumpToDialog) { ui->setupUi(this); Qt::WindowFlags flags = windowFlags(); Qt::WindowFlags disableFlag = Qt::WindowContextHelpButtonHint; flags = flags & (~disableFlag); setWindowFlags(flags); } JumpToDialog::~JumpToDialog() { delete ui; } void JumpToDialog::setLimits(int min, int max) { searchMin = min; searchMax = max; } int JumpToDialog::getIndex() { QString it = ui->lineEditIndex->text(); bool ok; int ret = it.toInt(&ok); if(ok) { return ret; } else { return -1; } } void JumpToDialog::validate() { if(getIndex() < 0) { QString err = "Invalid search index. Could not parse to valid number."; QMessageBox::warning(this, "Warning", err); return; } if(getIndex() < searchMin || getIndex() > searchMax) { QString err = "Invalid search index. The index must be between %1 and %2."; err = err.arg(searchMin).arg(searchMax); QMessageBox::warning(this, "Warning", err); return; } emit accept(); } void JumpToDialog::showEvent(QShowEvent *) { ui->lineEditIndex->setFocus(); } dlt-viewer-2.18.0+dfsg/src/dltfileindexerthread.cpp0000664000175000017500000001237013001357026021710 0ustar potyrapotyra#include "dltfileindexerthread.h" #include "dlt_protocol.h" #include "dlt_common.h" DltFileIndexerThread::DltFileIndexerThread ( DltFileIndexer *indexer, QDltFilterList *filterList, bool sortByTimeEnabled, QVector *indexFilterList, QMultiMap *indexFilterListSorted, QDltPluginManager *pluginManager, QList *activeViewerPlugins, bool silentMode ) :indexer(indexer), filterList(filterList), sortByTimeEnabled(sortByTimeEnabled), indexFilterList(indexFilterList), indexFilterListSorted(indexFilterListSorted), pluginManager(pluginManager), activeViewerPlugins(activeViewerPlugins), silentMode(silentMode), msgQueue(1024) {} DltFileIndexerThread::~DltFileIndexerThread() {} void DltFileIndexerThread::enqueueMessage(const QSharedPointer &msg, int index) { msgQueue.enqueueMsg(msg, index); } void DltFileIndexerThread::requestStop() { msgQueue.enqueueStopRequest(); } void DltFileIndexerThread::run() { QPair, int> msgPair; while(msgQueue.dequeue(msgPair)) processMessage(msgPair.first, msgPair.second); } void DltFileIndexerThread::processMessage(QSharedPointer &msg, int index) { DltFileIndexer::IndexingMode mode = indexer->getMode(); bool pluginsEnabled = indexer->getPluginsEnabled(); QDltPlugin *item; /* check if it is a version messages and version string not already parsed */ if((mode == DltFileIndexer::modeIndexAndFilter) && msg->getType() == QDltMsg::DltTypeControl && msg->getSubtype() == QDltMsg::DltControlResponse && msg->getCtrlServiceId() == DLT_SERVICE_ID_GET_SOFTWARE_VERSION) { QByteArray payload = msg->getPayload(); QByteArray data = payload.mid(9, (payload.size() > 262) ? 256 : (payload.size() - 9)); QString version = msg->toAscii(data,true); version = version.trimmed(); // remove all white spaces at beginning and end indexer->versionString(msg->getEcuid(),version); } /* check if it is a timezone message */ if((mode == DltFileIndexer::modeIndexAndFilter) && msg->getType() == QDltMsg::DltTypeControl && msg->getSubtype() == QDltMsg::DltControlResponse && msg->getCtrlServiceId() == DLT_SERVICE_ID_TIMEZONE) { QByteArray payload = msg->getPayload(); if(payload.size() == sizeof(DltServiceTimezone)) { DltServiceTimezone *service; service = (DltServiceTimezone*) payload.constData(); if(msg->getEndianness() == QDltMsg::DltEndiannessLittleEndian) indexer->timezone(service->timezone, service->isdst); else indexer->timezone(DLT_SWAP_32(service->timezone), service->isdst); } } /* check if it is a timezone message */ if((mode == DltFileIndexer::modeIndexAndFilter) && msg->getType()==QDltMsg::DltTypeControl && msg->getSubtype()==QDltMsg::DltControlResponse && msg->getCtrlServiceId() == DLT_SERVICE_ID_UNREGISTER_CONTEXT) { QByteArray payload = msg->getPayload(); if(payload.size() == sizeof(DltServiceUnregisterContext)) { DltServiceUnregisterContext *service; service = (DltServiceUnregisterContext *) payload.constData(); indexer->unregisterContext(msg->getEcuid(), QString(QByteArray(service->apid, 4)), QString(QByteArray(service->ctid, 4))); } } /* Process all viewer plugins */ if((mode == DltFileIndexer::modeIndexAndFilter) && pluginsEnabled) { for(int ivp = 0; ivp < activeViewerPlugins->size(); ivp++) { item = (QDltPlugin *) activeViewerPlugins->at(ivp); item->initMsg(index, *msg); } } /* Process all decoderplugins */ pluginManager->decodeMsg(*msg, silentMode); /* Add to filterindex if matching */ if(filterList->checkFilter(*msg)) { if(sortByTimeEnabled) indexFilterListSorted->insert(DltFileIndexerKey(msg->getTime(), msg->getMicroseconds()), index); else indexFilterList->append(index); } /* Offer messages again to viewer plugins after decode */ if((mode == DltFileIndexer::modeIndexAndFilter) && pluginsEnabled) { for(int ivp = 0; ivp < activeViewerPlugins->size(); ivp++) { item = (QDltPlugin *) activeViewerPlugins->at(ivp); item->initMsgDecoded(index, *msg); } } /* update context configuration when loading file */ if((mode == DltFileIndexer::modeIndexAndFilter) && msg->getType() == QDltMsg::DltTypeControl && msg->getSubtype() == QDltMsg::DltControlResponse) { const char *ptr; int32_t length; uint32_t service_id=0, service_id_tmp=0; QByteArray payload = msg->getPayload(); ptr = payload.constData(); length = payload.size(); DLT_MSG_READ_VALUE(service_id_tmp,ptr, length, uint32_t); service_id=DLT_ENDIAN_GET_32(((msg->getEndianness() == QDltMsg::DltEndiannessBigEndian) ? DLT_HTYP_MSBF:0), service_id_tmp); if(service_id == DLT_SERVICE_ID_GET_LOG_INFO) { indexer->appendToGetLogInfoList(index); } } } dlt-viewer-2.18.0+dfsg/src/settingsdialog.h0000775000175000017500000000702413001357026020206 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file settingsdialog.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef SETTINGSDIALOG_H #define SETTINGSDIALOG_H #include #include #include "qdlt.h" #define DEFAULT_REFRESH_RATE 20 namespace Ui { class SettingsDialog; } class SettingsDialog : public QDialog { Q_OBJECT public: SettingsDialog(QDltFile *_qFile, QWidget *parent = 0); SettingsDialog(QWidget *parent = 0); ~SettingsDialog(); int tempUseSystem; QString tempSystemPath; int tempUseOwn; QString tempOwnPath; int tempCloseWithoutAsking; int tempSaveOnClear; int defaultLogFile; QString defaultLogFileName; int defaultProjectFile; QString defaultProjectFileName; int pluginsPath; QString pluginsPathName; int defaultFilterPath; QString defaultFilterPathName; int pluginsAutoloadPath; QString pluginsAutoloadPathName; int filterCache; int filterCacheDays; QString filterCacheName; int autoConnect; int autoScroll; int autoMarkFatalError; int autoMarkWarn; int autoMarkMarker; int writeControl; int updateContextLoadingFile; int updateContextsUnregister; int loggingOnlyMode; int maxFileSizeMB; int appendDateTime; int fontSize; int showIndex; int showTime; int showTimestamp; int showCount; int showEcuId; int showApId; int showApIdDesc; int showCtId; int showCtIdDesc; int showSessionId; int showSessionName; int showType; int showSubtype; int showMode; int showNoar; int showPayload; int showArguments; int automaticTimeSettings; int automaticTimezoneFromDlt; qlonglong utcOffset; int dst; QString workingDirectory; void assertSettingsVersion(); void writeDlg(); void readDlg(); void writeSettings(QMainWindow *mainwindow); void readSettings(); void resetSettings(); QStringList getRecentFiles(); QStringList getRecentProjects(); QStringList getRecentFilters(); QString getWorkingDirectory(); // this function checks if old cache files should be deleted // This function should be called during initialisation of dlt viewer void clearIndexCacheAfterDays(); protected: void changeEvent(QEvent *e); private: QDltFile *qFile; Ui::SettingsDialog *ui; private slots: void on_groupBoxAppId_clicked(bool checked); void on_groupBoxConId_clicked(bool checked); void on_groupBoxAutomaticTimeSettings_clicked(bool checked); void on_tooButtonPluginsPath_clicked(); void on_toolButtonDefaultProjectFile_clicked(); void on_toolButtonDefaultLogFile_clicked(); void on_toolButtonTempPath_clicked(); void on_toolButtonDefaultFilterPath_clicked(); void on_toolButtonPluginsAutoload_clicked(); void on_toolButtonFilterCache_clicked(); void on_pushButtonClearIndexCache_clicked(); void on_groupBoxSessionId_clicked(bool checked); void on_groupBoxArguments_clicked(bool checked); void on_spinBox_showArguments_valueChanged(int i); }; #endif // SETTINGSDIALOG_H dlt-viewer-2.18.0+dfsg/src/jumptodialog.ui0000664000175000017500000000365213001357026020052 0ustar potyrapotyra JumpToDialog 0 0 203 81 Jump to Index (nearest) 10 10 171 61 Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok Qt::ImhDigitsOnly|Qt::ImhPreferNumbers buttonBox accepted() JumpToDialog validate() 166 65 157 274 buttonBox rejected() JumpToDialog reject() 166 65 286 274 validate() dlt-viewer-2.18.0+dfsg/src/pulsebutton.cpp0000664000175000017500000000512613001357026020103 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2013 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file pulsebutton.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "pulsebutton.h" PulseButton::PulseButton(QWidget *parent) : QPushButton(parent), animationTimeline(1000, parent) { /* Set number of frames to 100. * Shape to curve that gives pleasant pulsing behaviour. * Loop forever */ animationTimeline.setFrameRange(0, 100); animationTimeline.setCurveShape(QTimeLine::SineCurve); animationTimeline.setLoopCount(0); connect(&animationTimeline, SIGNAL(frameChanged(int)), this, SLOT(frameChanged(int))); connect(&animationTimeline, SIGNAL(stateChanged(QTimeLine::State)), this, SLOT(animationStateChanged(QTimeLine::State))); /* Store the original background color */ baseColor = this->palette().background().color(); /* Let QT draw background whenever needed */ setAutoFillBackground(true); } void PulseButton::startPulsing(QColor color) { targetColor = color; animationTimeline.start(); } void PulseButton::stopPulsing() { animationTimeline.stop(); } void PulseButton::frameChanged(int frame) { /* Quantize integer to float 0..1 */ float scale = (float)(frame)/100.0f; /* Get difference between the color components */ int deltaR = targetColor.red() - baseColor.red(); int deltaG = targetColor.green() - baseColor.green() ; int deltaB = targetColor.blue() - baseColor.blue(); /* Scale the difference to 0..DeltaMax */ deltaR *= scale; deltaG *= scale; deltaB *= scale; /* Sum the base color with the scaled difference */ QColor newColor( baseColor.red() + deltaR, baseColor.green() + deltaG, baseColor.blue() + deltaB ); /* Create new palette based on current, and replace the old one */ QPalette newPalette(palette()); newPalette.setColor(QPalette::Button, newColor); setPalette(newPalette); } void PulseButton::animationStateChanged(QTimeLine::State state) { if(state == QTimeLine::NotRunning) { QPalette newPalette(palette()); newPalette.setColor(QPalette::Button, baseColor); setPalette(newPalette); } } dlt-viewer-2.18.0+dfsg/src/exporterdialog.h0000664000175000017500000000111113001357026020202 0ustar potyrapotyra#ifndef EXPORTERDIALOG_H #define EXPORTERDIALOG_H #include #include "dltexporter.h" namespace Ui { class ExporterDialog; } class ExporterDialog : public QDialog { Q_OBJECT public: explicit ExporterDialog(QWidget *parent = 0); ~ExporterDialog(); void setFormat(DltExporter::DltExportFormat exportFormat); DltExporter::DltExportFormat getFormat(); void setSelection(DltExporter::DltExportSelection exportSelection); DltExporter::DltExportSelection getSelection(); private: Ui::ExporterDialog *ui; }; #endif // EXPORTERDIALOG_H dlt-viewer-2.18.0+dfsg/src/ecudialog.ui0000775000175000017500000003216613001357026017315 0ustar potyrapotyra EcuDialog 0 0 390 477 ECU Configuration :/icons/png/face-glasses.png:/icons/png/face-glasses.png Update data in DLT if online true Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok 0 ECU TCP UDP Serial Default Trace Status: Timing pakets from ECU off fatal error warn info debug verbose Qt::Vertical 20 40 Id: Default Log Level: off on Interface Type: Verbose Mode: Send "Get Log Info" if online 4 Description: Send "Default Log Level,Trace Status and Verbose Mode" if online Non-Verbose Mode Verbose Mode Send "Get SW Version" if online IP Hostname: Qt::Vertical 20 40 true Send Serial Header IP Port: Sync to Serial Header when receiving Automatic reconnect after specified timeout if no data from ECU was received. Auto reconnect timeout in seconds true Automatic reconnect after specified timeout if no data from ECU was received. false QAbstractSpinBox::UpDownArrows 1 5 Serial Baudrate: -1 Qt::Vertical 20 40 Port: true -1 COM0 COM1 /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyS0 /dev/ttyS1 Send Serial Header true Sync to Serial Header when receiving true buttonBox accepted() EcuDialog accept() 248 254 157 274 buttonBox rejected() EcuDialog reject() 316 260 286 274 dlt-viewer-2.18.0+dfsg/src/applicationdialog.ui0000775000175000017500000000446013001357026021040 0ustar potyrapotyra ApplicationDialog 0 0 400 111 Application Configuration :/icons/png/face-glasses.png:/icons/png/face-glasses.png Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok 4 Id: Description: buttonBox accepted() ApplicationDialog accept() 248 254 157 274 buttonBox rejected() ApplicationDialog reject() 316 260 286 274 dlt-viewer-2.18.0+dfsg/src/searchdialog.ui0000775000175000017500000002636113001357026020006 0ustar potyrapotyra SearchDialog 0 0 563 431 Search :/toolbar/png/system-search.png:/toolbar/png/system-search.png Qt::RightToLeft Search options: Previous (F2) F2 Regular Expression Highlight color: Next (F3) F3 true 22 22 22 22 12 12 Payload true Qt::LeftToRight Search from: Qt::LeftToRight The beginning true Current position Qt::RightToLeft Search in: Qt::LeftToRight Qt::Horizontal QDialogButtonBox::Cancel Find All Case Sensitive false Text to search: Header true Advanced 130 20 71 20 <html><head/><body><p>Enter the ApId to search text only for this ApId</p></body></html> 10 20 51 21 ApId: 220 20 51 21 CtId: 340 20 71 20 <html><head/><body><p>Enter the CtId to search text only for this CtId</p></body></html> 130 50 71 20 <html><head/><body><p>Enter the TimeStamp start after which the text would be searched</p></body></html> 10 50 111 21 TimeStamp start: 340 50 71 20 <html><head/><body><p>Enter the TimeStamp end before which this text would be searched</p></body></html> 220 50 111 21 TimeStamp end: 10 90 111 21 PayLoad start: 220 90 111 21 PayLoad end: 130 90 71 20 <html><head/><body><p>Enter the TimeStamp start after which the text would be searched</p></body></html> 340 90 71 20 <html><head/><body><p>Enter the TimeStamp end before which this text would be searched</p></body></html> lineEditText radioButtonPosBeginning radioButtonPosCurrent pushButtonColor checkBoxSearchIndex checkBoxHeader checkBoxPayload checkBoxCaseSensitive checkBoxRegExp pushButtonPrevious pushButtonNext buttonBox accepted() SearchDialog accept() 248 254 157 274 buttonBox rejected() SearchDialog reject() 316 260 286 274 dlt-viewer-2.18.0+dfsg/src/dlt_viewer.desktop0000664000175000017500000000041413001357026020545 0ustar potyrapotyra[Desktop Entry] Type=Application Name=DLT Viewer Name[xx]=Diagnostic Log and Trace Viewer GenericName=DLT Viewer - Diagnostic Log and Trace Viewer needed for devices running DLT daemon Exec=dlt_viewer %u Icon=face-glasses Terminal=false Categories=Qt;KDE;Development; dlt-viewer-2.18.0+dfsg/src/icon/0000775000175000017500000000000013001357026015737 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/src/icon/face-glasses.ico0000775000175000017500000001246613001357026021004 0ustar potyrapotyra h& ¨Ž(  @ÿÿÿÿÿÿ)33+# ÿÿÿÿÿÿÿÿÿ + i%4±9PÛ'Ppí)Qpí:PÙ!/±m5ÿÿÿÿÿÿ*:…Lqõh§ÿp¿ÿ jÄÿkÅÿpÄÿk¬ÿIló*ƒ ÿÿÿÿÿÿÿÿÿ"E`kZŒý g»ÿlÔÿuÛÿvÓÿuÒÿuÛÿnÚÿ lÈÿY‹û5I[ÿÿÿÿÿÿ&Lk5[Šûf¾ÿoÝÿ {ãÿ(ãÿH˜×ÿNŸÜÿ&ãÿ ~ãÿtáÿ nÏÿUƒñ=Vÿÿÿÿÿÿ'W{¹j¶ÿnÛÿ|ãÿr¿ÿ Isÿ Gnÿ >_ÿKrÿƒÕÿ åÿtáÿrÇÿ!Iiÿÿÿ+Zy,h˜ùiÎÿyãÿ~×ÿ€ÆÿŸêÿ#§îÿ$¨îÿšßÿÁÿŠâÿ äÿrÜÿ*b’ñ$Ia-ZI(q¯ÿpÝÿ}Úÿ†Ðÿ ¡ëÿ(¯ïÿ.·ñÿ/¸òÿ+²ðÿ$¦ìÿŠÐÿƒÛÿwâÿ0s±ù%He).^…]+u¸ÿ*SzÿMgwÿU{‹ÿFisÿ4˜¾ÿ<Éõÿ>Ëöÿ7œ¾ÿPkoÿSyˆÿFi|ÿ)V{ÿ2x»ý(Nk;3dŒC?Ynÿrˆšÿfš»ÿKY[ÿ`vvÿZyzÿ[Ìäÿ]Îäÿfxqÿ|xhÿZt}ÿJ˜ÉÿX…©ÿbÿ5Uÿ0Mÿ/Kÿ3PÿOyÿ)„Æÿ‘èÿ‡æÿ ‚åÿ{äÿuâÿnßÿuÍÿ#m­ÿA[óT^ÿ9EHÿ783ÿ1f}ÿ/°çÿ2½óÿ6Ãóÿ8Æõÿ9Çõÿ8Åõÿ5Âôÿ2µéÿ3h|ÿ784ÿ:FHÿ?V_ÿ8FJÿ672ÿ'Qqÿ tÖÿ0‰æÿ1l û(Mjyÿÿÿÿÿÿ.`‡µ9z±ÿ%o·ÿ4:>ÿJYeÿfŒ¨ÿb—¸ÿk¦Âÿs¯Åÿl¥·ÿFbhÿ8EEÿ9±Ùÿ@ÌõÿDÐ÷ÿDÑ÷ÿCÏ÷ÿ<µÚÿ9DDÿSedÿ…¨«ÿu«¼ÿ` ÀÿW™ÁÿU޵ÿAYjÿ4<>ÿ8Æÿ1l ù)Pmqÿÿÿÿÿÿ2c‹•:w«ÿ8BIÿcmwÿp¨ÿe’´ÿ_›¿ÿm®ÿDB;ÿTXQÿq­¼ÿ\}ÿ;VXÿQÔöÿVÜùÿXÜúÿTØöÿCý `€ ÿÿÿÿÿÿÿÿÿ995ÿ’‹ÿ¿ÂÄÿÃÍÔÿÃÑÚÿÃÕßÿÀÖàÿºÏÕÿ¶½ÿ‘··ÿ¥¼±ÿ ¦•ÿFMJÿ©÷üÿ«ùýÿGNIÿ¦£ŒÿÏÒÄÿÔÝ×ÿÌ×ÖÿÈÚÝÿÁÙáÿ¹Ñßÿ‚«Äÿi“°ÿŒž«ÿŽŒŒÿ873ûÿÿÿÿÿÿÿÿÿÿÿÿ;;9ñ…zÿÑÌÇÿÑÕÙÿÔÜáÿÔßäÿÒÞãÿÍÜàÿÈØÙÿ¥»²ÿ²»ªÿŸœ‡ÿQ^Yÿ»ûüÿ¼ûýÿS^Xÿ¡š„ÿÖÕÆÿßãÛÿÝäâÿÚãåÿÔàäÿÌÚàÿ¾Î×ÿ‡Ÿ®ÿª©¦ÿ‡|pý984éÿÿÿÿÿÿÿÿÿÿÿÿ994­uj_ý¼·ÿáßÞÿâååÿæééÿâæçÿÛâáÿ×ÝÚÿ½Ä·ÿº¸ ÿƒ‚rÿqІÿÅýüÿÆýüÿrІÿ„€nÿÐ˹ÿæåÞÿèêæÿéëêÿäèçÿÙàáÿÎÕÙÿ¾½¸ÿŸš“ÿrhZù75-£ÿÿÿÿÿÿÿÿÿÿÿÿ44-I=;5÷™„ýÞØÓÿççåÿììëÿèéæÿãâÞÿßÝÖÿÉÅ´ÿ¶¬•ÿBD?ÿgwvÿ¤ÈÇÿ¢ÅÄÿfuuÿBD>ÿ¸®–ÿßÜÑÿìëçÿðîëÿêêæÿàáÞÿÝÛ×ÿ޵ÿ–‡vý=:3ñ44-Iÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ872ŸPNGùž•ŒÿÒÉÁÿÙØÖÿâàÜÿÙÕÌÿʲÿ¸ª”ÿZ[Qÿuˆ‡ÿ§¨ÿ_hhÿbkkÿ‘¨©ÿw‰ˆÿ[ZPÿ»®—ÿÖÍ¿ÿãÞ×ÿåâÞÿÕÒÍÿÍÁ³ÿ™Œ}ýNJBñ75.›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@@ 887Ÿ;<7ÿxsjÿ£–…ÿ©¡”ÿš’„ÿ‚}oÿBC=ÿ}ÿ×ôùÿâûýÿæýýÿæýýÿäüýÿÜõùÿ€ŽÿCB<ÿ†~nÿ •…ÿ´¦•ÿ¦˜†ÿupeÿ;;6û660—@@ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ6JSY7KX÷>Gÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ9qœ;u£É>±ó€¾êÿÈçúÿ´áùÿ¼çúÿËîûÿÛôüÿåøýÿèùýÿâ÷ýÿ×òüÿÎíûÿÉêûÿÓìûÿw·àÿ=w¤õ8r›@€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€>v¡_?y¦ë]—Ãõ—ÉéÿÏêúÿäõýÿáôüÿßôýÿãõýÿè÷ýÿìøýÿÍêùÿ–ÈæÿW·õ?y£Õ?v¡Aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`Ÿ¿ F{¦_E€«½L„«ùa™¾õz¯ÏõоÛù‰¼Ùùy®Íõa˜¼õOˆ®óJ„««Jƒ«MÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌÿÿ€¸Õ`›¶9`–·U]”³o^“·kešºQh¡¸7ªêê Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿdlt-viewer-2.18.0+dfsg/src/icon/dlt_viewer.rc0000775000175000017500000000010213001357026020425 0ustar potyrapotyraIDI_ICON1 ICON DISCARDABLE "face-glasses.ico"dlt-viewer-2.18.0+dfsg/src/plugindialog.cpp0000775000175000017500000000531613001357026020201 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file plugindialog.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "plugindialog.h" #include "ui_plugindialog.h" PluginDialog::PluginDialog(QWidget *parent) : QDialog(parent), ui(new Ui::PluginDialog) { ui->setupUi(this); } PluginDialog::~PluginDialog() { delete ui; } void PluginDialog::setName(QString name) { ui->lineEditName->setText(name); } void PluginDialog::setPluginVersion(QString version){ ui->lineEditPluginVersion->setText(version); } void PluginDialog::setPluginInterfaceVersion(QString version){ ui->lineEditPluginInterfaceVersion->setText(version); } void PluginDialog::setMode(int mode) { ui->comboBoxMode->setCurrentIndex(mode); } void PluginDialog::removeMode(int mode) { ui->comboBoxMode->removeItem(mode); } void PluginDialog::setType(int type) { ui->comboBoxType->setCurrentIndex(type); } void PluginDialog::setFilename(QString filename) { ui->lineEditFilename->setText(filename); } int PluginDialog::getMode() { return ui->comboBoxMode->currentIndex(); } int PluginDialog::getType() { return ui->comboBoxType->currentIndex(); } QString PluginDialog::getFilename() { return ui->lineEditFilename->text(); } void PluginDialog::on_toolButton_clicked() { QString name = ui->lineEditName->text(); QString fileName; if(ui->comboBoxType->currentIndex()==0) { // filename fileName = QFileDialog::getOpenFileName(this, QString("Open ")+name+QString(" configuration file"), workingDirectory.getPluginDirectory(name), tr("Plugin configuration (*.*)")); } else { // directory fileName = QFileDialog::getExistingDirectory(this, QString("Open ")+name+QString(" configuration file"), workingDirectory.getPluginDirectory(name), QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); } if(fileName.isEmpty()) return; /* change current working directory */ workingDirectory.setPluginDirectory(name, QFileInfo(fileName).absolutePath()); ui->lineEditFilename->setText(fileName); } dlt-viewer-2.18.0+dfsg/src/ecudialog.cpp0000775000175000017500000002674113001357026017464 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file ecudialog.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "ecudialog.h" #include "ui_ecudialog.h" #include "qextserialenumerator.h" EcuDialog::EcuDialog(QWidget *parent) : QDialog(parent), ui(new Ui::EcuDialog) { ui->setupUi(this); ui->comboBoxPort->setEditable(true); #if defined(Q_OS_UNIX) || defined(qdoc) ui->comboBoxBaudrate->addItem(QLatin1String("50"), BAUD50 ); //POSIX ONLY ui->comboBoxBaudrate->addItem(QLatin1String("75"), BAUD75 ); //POSIX ONLY ui->comboBoxBaudrate->addItem(QLatin1String("134"), BAUD134 ); //POSIX ONLY ui->comboBoxBaudrate->addItem(QLatin1String("150"), BAUD150 ); //POSIX ONLY ui->comboBoxBaudrate->addItem(QLatin1String("200"), BAUD200 ); //POSIX ONLY ui->comboBoxBaudrate->addItem(QLatin1String("1800"), BAUD1800 ); //POSIX ONLY # if (defined(B230400) && defined(B4000000)) || defined(qdoc) ui->comboBoxBaudrate->addItem(QLatin1String("230400"), BAUD230400 ); //POSIX ONLY ui->comboBoxBaudrate->addItem(QLatin1String("460800"), BAUD460800 ); //POSIX ONLY ui->comboBoxBaudrate->addItem(QLatin1String("500000"), BAUD500000 ); //POSIX ONLY ui->comboBoxBaudrate->addItem(QLatin1String("576000"), BAUD576000 ); //POSIX ONLY ui->comboBoxBaudrate->addItem(QLatin1String("921600"), BAUD921600 ); //POSIX ONLY ui->comboBoxBaudrate->addItem(QLatin1String("100000"), BAUD1000000 ); //POSIX ONLY ui->comboBoxBaudrate->addItem(QLatin1String("115200"), BAUD1152000 ); //POSIX ONLY ui->comboBoxBaudrate->addItem(QLatin1String("150000"), BAUD1500000 ); //POSIX ONLY ui->comboBoxBaudrate->addItem(QLatin1String("200000"), BAUD2000000 ); //POSIX ONLY ui->comboBoxBaudrate->addItem(QLatin1String("250000"), BAUD2500000 ); //POSIX ONLY ui->comboBoxBaudrate->addItem(QLatin1String("300000"), BAUD3000000 ); //POSIX ONLY ui->comboBoxBaudrate->addItem(QLatin1String("350000"), BAUD3500000 ); //POSIX ONLY ui->comboBoxBaudrate->addItem(QLatin1String("400000"), BAUD4000000 ); //POSIX ONLY # endif #endif //Q_OS_UNIX #if defined(Q_OS_WIN) || defined(qdoc) ui->comboBoxBaudrate->addItem(QLatin1String("14400"), BAUD14400 ); //WINDOWS ONLY ui->comboBoxBaudrate->addItem(QLatin1String("56000"), BAUD56000 ); //WINDOWS ONLY ui->comboBoxBaudrate->addItem(QLatin1String("28000"), BAUD128000 ); //WINDOWS ONLY ui->comboBoxBaudrate->addItem(QLatin1String("256000"), BAUD256000 ); //WINDOWS ONLY #endif //Q_OS_WIN ui->comboBoxBaudrate->addItem(QLatin1String("110"), BAUD110 ); ui->comboBoxBaudrate->addItem(QLatin1String("300"), BAUD300 ); ui->comboBoxBaudrate->addItem(QLatin1String("600"), BAUD600 ); ui->comboBoxBaudrate->addItem(QLatin1String("1200"), BAUD1200 ); ui->comboBoxBaudrate->addItem(QLatin1String("2400"), BAUD2400 ); ui->comboBoxBaudrate->addItem(QLatin1String("4800"), BAUD4800 ); ui->comboBoxBaudrate->addItem(QLatin1String("9600"), BAUD9600 ); ui->comboBoxBaudrate->addItem(QLatin1String("19200"), BAUD19200 ); ui->comboBoxBaudrate->addItem(QLatin1String("38400"), BAUD38400 ); ui->comboBoxBaudrate->addItem(QLatin1String("57600"), BAUD57600 ); ui->comboBoxBaudrate->addItem(QLatin1String("115200"), BAUD115200 ); ui->comboBoxBaudrate->setCurrentIndex(ui->comboBoxBaudrate->count()-1); } EcuDialog::~EcuDialog() { delete ui; } void EcuDialog::setData(EcuItem &item) { ui->idLineEdit->setText(item.id); ui->descriptionLineEdit->setText(item.description); ui->comboBoxInterface->setCurrentIndex(item.interfacetype); ui->comboBoxHostname->setEditText(item.getHostname()); ui->lineEditTcpPort->setText(QString("%1").arg(item.getIpport())); ui->comboBoxPort->setEditText(item.getPort()); ui->comboBoxBaudrate->setCurrentIndex(ui->comboBoxBaudrate->count()-1); for(int i=0; icomboBoxBaudrate->count(); i++){ if(item.getBaudrate() == (BaudRateType)ui->comboBoxBaudrate->itemData(i).toInt()) ui->comboBoxBaudrate->setCurrentIndex(i); } ui->loglevelComboBox->setCurrentIndex(item.loglevel); ui->tracestatusComboBox->setCurrentIndex(item.tracestatus); ui->comboBoxVerboseMode->setCurrentIndex(item.verbosemode); ui->checkBoxSendSerialHeaderSerial->setCheckState(item.getSendSerialHeaderSerial()?Qt::Checked:Qt::Unchecked); ui->checkBoxSendSerialHeaderTcp->setCheckState(item.getSendSerialHeaderIp()?Qt::Checked:Qt::Unchecked); ui->checkBoxSyncToSerialHeaderSerial->setCheckState(item.getSyncSerialHeaderSerial()?Qt::Checked:Qt::Unchecked); ui->checkBoxSyncToSerialHeaderTcp->setCheckState(item.getSyncSerialHeaderIp()?Qt::Checked:Qt::Unchecked); ui->checkBoxTiming->setCheckState(item.timingPackets?Qt::Checked:Qt::Unchecked); ui->checkBoxGetLogInfo->setCheckState(item.sendGetLogInfo?Qt::Checked:Qt::Unchecked); ui->checkBoxDefaultLogLevel->setCheckState(item.sendDefaultLogLevel?Qt::Checked:Qt::Unchecked); ui->checkBoxGetSoftwareVersion->setCheckState(item.sendGetSoftwareVersion?Qt::Checked:Qt::Unchecked); ui->checkBoxUpdate->setCheckState(item.updateDataIfOnline?Qt::Checked:Qt::Unchecked); ui->checkBoxAutoReconnect->setCheckState(item.autoReconnect?Qt::Checked:Qt::Unchecked); ui->spinBoxAutoreconnect->setValue(item.autoReconnectTimeout); on_comboBoxInterface_currentIndexChanged(ui->comboBoxInterface->currentIndex()); } void EcuDialog::changeEvent(QEvent *e) { QDialog::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); break; default: break; } } QString EcuDialog::id() { return ui->idLineEdit->text(); } QString EcuDialog::description() { return ui->descriptionLineEdit->text(); } int EcuDialog::interfacetype() { return ui->comboBoxInterface->currentIndex(); } QString EcuDialog::hostname() { return ui->comboBoxHostname->currentText(); } unsigned int EcuDialog::tcpport() { return ui->lineEditTcpPort->text().toUInt(); } QString EcuDialog::port() { QRegExp rx("^(com|COM)\\d\\d*$"); // matches from COM0 to COM99 if(ui->comboBoxPort->currentText().contains(rx)) { QString str = "\\\\.\\"; return str.append(ui->comboBoxPort->currentText()); } else { return ui->comboBoxPort->currentText(); } } BaudRateType EcuDialog::baudrate() { return (BaudRateType)ui->comboBoxBaudrate->itemData(ui->comboBoxBaudrate->currentIndex()).toInt(); } int EcuDialog::loglevel() { return ui->loglevelComboBox->currentIndex(); } int EcuDialog::tracestatus() { return ui->tracestatusComboBox->currentIndex(); } int EcuDialog::verbosemode() { return ui->comboBoxVerboseMode->currentIndex(); } int EcuDialog::sendSerialHeaderTcp() { return (ui->checkBoxSendSerialHeaderTcp->checkState() == Qt::Checked); } int EcuDialog::sendSerialHeaderSerial() { return (ui->checkBoxSendSerialHeaderSerial->checkState() == Qt::Checked); } int EcuDialog::syncSerialHeaderTcp() { return (ui->checkBoxSyncToSerialHeaderTcp->checkState() == Qt::Checked); } int EcuDialog::syncSerialHeaderSerial() { return (ui->checkBoxSyncToSerialHeaderSerial->checkState() == Qt::Checked); } int EcuDialog::timingPackets() { return (ui->checkBoxTiming->checkState() == Qt::Checked); } int EcuDialog::sendGetLogInfo() { return (ui->checkBoxGetLogInfo->checkState() == Qt::Checked); } int EcuDialog::sendDefaultLogLevel() { return (ui->checkBoxDefaultLogLevel->checkState() == Qt::Checked); } int EcuDialog::sendGetSoftwareVersion() { return (ui->checkBoxGetSoftwareVersion->checkState() == Qt::Checked); } int EcuDialog::update() { return ui->checkBoxUpdate->isChecked(); } int EcuDialog::autoReconnect() { return ui->checkBoxAutoReconnect->isChecked(); } int EcuDialog::autoReconnectTimeout() { return ui->spinBoxAutoreconnect->value(); } QStringList EcuDialog::getHostnameList() { QStringList hostnames; hostnames.clear(); for (int i = 0; i < ui->comboBoxHostname->count(); ++i) { hostnames.append(ui->comboBoxHostname->itemText(i)); } return hostnames; } void EcuDialog::setHostnameList(QStringList hostnames) { ui->comboBoxHostname->clear(); ui->comboBoxHostname->addItems(hostnames); } QStringList EcuDialog::getPortList() { QStringList ports; ports.clear(); for (int i = 0; i < ui->comboBoxPort->count(); ++i) { ports.append(ui->comboBoxPort->itemText(i)); } return ports; } void EcuDialog::setPortList(QStringList ports) { ui->comboBoxPort->clear(); ui->comboBoxPort->addItems(ports); } void EcuDialog::setDialogToEcuItem(EcuItem *item){ item->id = this->id(); item->description = this->description(); item->interfacetype = this->interfacetype(); item->setHostname(this->hostname()); item->setIpport(this->tcpport()); item->setPort(this->port()); item->setBaudrate(this->baudrate()); item->loglevel = this->loglevel(); item->tracestatus = this->tracestatus(); item->verbosemode = this->verbosemode(); item->setSendSerialHeaderSerial(this->sendSerialHeaderSerial()); item->setSendSerialHeaderIp(this->sendSerialHeaderTcp()); item->setSyncSerialHeaderSerial(this->syncSerialHeaderSerial()); item->setSyncSerialHeaderIp(this->syncSerialHeaderTcp()); item->timingPackets = this->timingPackets(); item->sendGetLogInfo = this->sendGetLogInfo(); item->sendDefaultLogLevel = this->sendDefaultLogLevel(); item->sendGetSoftwareVersion = this->sendGetSoftwareVersion(); item->updateDataIfOnline = this->update(); item->autoReconnect = this->autoReconnect(); item->autoReconnectTimeout = this->autoReconnectTimeout(); item->updateAutoReconnectTimestamp(); /* new qdlt library */ item->ipcon.setPort(this->tcpport()); item->ipcon.setHostname(this->hostname()); item->ipcon.setSendSerialHeader(this->sendSerialHeaderTcp()); item->ipcon.setSyncSerialHeader(this->syncSerialHeaderTcp()); item->serialcon.setBaudrate(this->baudrate()); item->serialcon.setPort(this->port()); item->serialcon.setSendSerialHeader(this->sendSerialHeaderSerial()); item->serialcon.setSyncSerialHeader(this->syncSerialHeaderSerial()); } void EcuDialog::on_checkBoxAutoReconnect_toggled(bool checked) { ui->spinBoxAutoreconnect->setEnabled(checked); } void EcuDialog::on_comboBoxInterface_currentIndexChanged(int index) { switch(index) { case EcuItem::INTERFACETYPE_TCP: //we have TCP set -> disable serial, enable TCP ui->tabWidget->setTabEnabled(1,true); ui->tabWidget->setTabEnabled(2,false); break; case EcuItem::INTERFACETYPE_UDP: //we have UDP set -> disable serial, enable UDP ui->tabWidget->setTabEnabled(1,true); ui->tabWidget->setTabEnabled(2,false); break; case EcuItem::INTERFACETYPE_SERIAL: ui->tabWidget->setTabEnabled(1,false); ui->tabWidget->setTabEnabled(2,true); break; } } dlt-viewer-2.18.0+dfsg/src/injectiondialog.cpp0000775000175000017500000001035013001357026020657 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file injectiondialog.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "injectiondialog.h" #include "ui_injectiondialog.h" #include "dltsettingsmanager.h" InjectionDialog::InjectionDialog(QString appid,QString conid,QWidget *parent) : QDialog(parent), ui(new Ui::InjectionDialog) { ui->setupUi(this); ui->applicationidComboBox->setEditText(appid); ui->contextidComboBox->setEditText(conid); } InjectionDialog::~InjectionDialog() { delete ui; } void InjectionDialog::changeEvent(QEvent *e) { QDialog::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); break; default: break; } } void InjectionDialog::setApplicationId(QString text) { ui->applicationidComboBox->setEditText(text); } void InjectionDialog::setContextId(QString text) { ui->contextidComboBox->setEditText(text); } void InjectionDialog::setServiceId(QString text) { ui->serviceidComboBox->setEditText(text); } void InjectionDialog::setData(QString text) { ui->dataComboBox->setEditText(text); } void InjectionDialog::setDataBinary(bool mode) { ui->binaryRadioButton->setChecked(mode);ui->textRadioButton->setChecked(!mode); } QString InjectionDialog::getApplicationId() { return ui->applicationidComboBox->currentText(); } QString InjectionDialog::getContextId() { return ui->contextidComboBox->currentText(); } QString InjectionDialog::getServiceId() { return ui->serviceidComboBox->currentText(); } QString InjectionDialog::getData() { return ui->dataComboBox->currentText(); } bool InjectionDialog::getDataBinary() { return ui->binaryRadioButton->isChecked(); } void InjectionDialog::updateHistory() { QStringList list; list = DltSettingsManager::getInstance()->value("injection/applicationid").toStringList(); ui->applicationidComboBox->clear(); foreach(QString text,list) ui->applicationidComboBox->addItem(text); list = DltSettingsManager::getInstance()->value("injection/contextid").toStringList(); ui->contextidComboBox->clear(); foreach(QString text,list) ui->contextidComboBox->addItem(text); list = DltSettingsManager::getInstance()->value("injection/serviceid").toStringList(); ui->serviceidComboBox->clear(); foreach(QString text,list) ui->serviceidComboBox->addItem(text); list = DltSettingsManager::getInstance()->value("injection/data").toStringList(); ui->dataComboBox->clear(); foreach(QString text,list) ui->dataComboBox->addItem(text); } void InjectionDialog::storeHistory() { QStringList list; list = DltSettingsManager::getInstance()->value("injection/applicationid").toStringList(); list.removeAll(getApplicationId()); list.prepend(getApplicationId()); while (list.size() > INJECTION_MAX_HISTORY) list.removeLast(); DltSettingsManager::getInstance()->setValue("injection/applicationid",list); list = DltSettingsManager::getInstance()->value("injection/contextid").toStringList(); list.removeAll(getContextId()); list.prepend(getContextId()); while (list.size() > INJECTION_MAX_HISTORY) list.removeLast(); DltSettingsManager::getInstance()->setValue("injection/contextid",list); list = DltSettingsManager::getInstance()->value("injection/serviceid").toStringList(); list.removeAll(getServiceId()); list.prepend(getServiceId()); while (list.size() > INJECTION_MAX_HISTORY) list.removeLast(); DltSettingsManager::getInstance()->setValue("injection/serviceid",list); list = DltSettingsManager::getInstance()->value("injection/data").toStringList(); list.removeAll(getData()); list.prepend(getData()); while (list.size() > INJECTION_MAX_HISTORY) list.removeLast(); DltSettingsManager::getInstance()->setValue("injection/data",list); } dlt-viewer-2.18.0+dfsg/src/settingsdialog.ui0000775000175000017500000007737213001357026020411 0ustar potyrapotyra SettingsDialog 0 0 487 598 Settings :/toolbar/png/preferences-desktop.png:/toolbar/png/preferences-desktop.png Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok 0 Global Plugins Autoload Empty Index Cache after 24 16777215 ... 0 0 24 16777215 ... 0 0 0 0 24 16777215 Qt::TabFocus ... 0 0 24 16777215 ... Index Cache Default Filter Path 24 16777215 ... true 24 16777215 ... Qt::Vertical 20 40 Plugins Path Default Log File Default Project Empty Now! Temporary File Behaviour Use %TEMP% true ... Select: true 0 0 Close temporary file without asking Save temporary file on clear true Performance Settings Start Up Minimized QFrame::NoFrame Refresh Frequency Qt::Horizontal 40 20 days Project Table Table Show Context true Con Id true Con Id Description false Show Session/Process Id true Session Id true Session Name false Show Application false true App Id true App Id Description false Set time column automatic to local recording time true Automatically update timezone from DLT Daylight Saving Time Time zone Qt::Vertical 20 40 0 53 Show Argument Columns true 4 4 Columns 15 5 Qt::Horizontal 40 20 Show Index true Show Ecu Id true Show Subtype true Show Time true Show Mode true Show Timestamp true Show Count true Show Type true Select the columns to show in the viewer: Table font size (default is 8): Range between 1 and 20 1 20 Show Payload true Show #Arguments true Qt::Vertical 20 40 Project Other Other Maximum File Size (in MBytes) true false Write Control Messages to Log File Update Context Unregister Qt::Vertical 20 40 Auto mark fatal/error messages Auto connect to ECUs at start Append Date/Time to filename when closing DLT Viewer Update Contexts when loading log file Auto scroll Auto mark warn messages Logging only mode (Disables View and Plugins) Auto mark Marker messages tabWidget radioButtonUseTemp lineEditSystemTemp radioButtonSelectTemp lineEditOwnTemp toolButtonTempPath checkBoxCloseWithoutAsking checkBoxSaveOnClear checkBoxDefaultLogFile lineEditDefaultLogFile toolButtonDefaultLogFile checkBoxDefaultProjectFile lineEditDefaultProjectFile toolButtonDefaultProjectFile checkBoxPluginsPath lineEditPluginsPath tooButtonPluginsPath checkBoxPluginsAutoload lineEditPluginsAutoload toolButtonPluginsAutoload checkBoxDefaultFilterPath lineEditDefaultFilterPath toolButtonDefaultFilterPath checkBoxFilterCache lineEditFilterCache pushButtonClearIndexCache toolButtonFilterCache spinBoxIndexCacheDays checkBoxStartUpMinimized spinBoxFrequency spinBoxFontSize checkBoxIndex checkBoxEcuid checkBoxSubtype checkBoxTime checkBoxTimestamp checkBoxMode checkBoxCount checkBoxType checkBoxPayload checkBoxNoar groupBoxArguments spinBox_showArguments groupBoxAppId radioButtonAppId radioButtonAppIdDesc groupBoxConId radioButtonConId radioButtonConIdDesc groupBoxSessionId radioButtonSessionId radioButtonSessionName groupBoxAutomaticTimeSettings checkBoxAutomaticTimezone comboBoxUTCOffset checkBoxDST checkBoxAutoConnect checkBoxAutoScroll checkBoxAutoMarkFatalError checkBoxAutoMarkWarn checkBoxAutoMarkMarker checkBoxWriteControl checkBoxUpdateContextLoadingFile checkBoxUpdateContextUnregister checkBoxLoggingOnlyMode groupBoxMaxFileSizeMB lineEditMaxFileSizeMB checkBoxAppendDateTime buttonBox accepted() SettingsDialog accept() 227 192 157 213 buttonBox rejected() SettingsDialog reject() 295 198 286 213 dlt-viewer-2.18.0+dfsg/src/filterdialog.ui0000775000175000017500000006474613001357026020037 0ustar potyrapotyra FilterDialog 0 0 524 507 Filter Configuration :/toolbar/png/edit-cut.png:/toolbar/png/edit-cut.png Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok New Filter Name: Active true 16777215 56 Type 0 25 Positive :/icons/png/view-filter_32_on_g.png :/toolbar/png/view-filter_32_on.png:/icons/png/view-filter_32_on_g.png 20 20 true true true false buttonGroup_filterType 0 25 Negative :/icons/png/dialog-error-3_g.png :/icons/png/dialog-error-3.png:/icons/png/dialog-error-3_g.png 20 20 true true buttonGroup_filterType 0 25 Marker :/icons/png/colorize-2_g.png :/icons/png/colorize-2.png:/icons/png/colorize-2_g.png 20 20 true true false buttonGroup_filterType false 0 25 positive negative marker Enable this option, to use regular expressions for ContextId text. RegExp 40 Enable this option, to ignore case on header search expression ic Control Messages Context Id: ECU Id: Application Id: Header Text: off fatal error warn info debug verbose Log Level Max Log Level Min Payload Text: Enable this option, to ignore case on payload search expression ic Enable this option, to use regular expressions for header text. RegExp Enable this option, to use regular expressions for payload text. RegExp 4 off fatal error warn info debug verbose Qt::Horizontal 40 20 500 70 16777215 70 Marker Color true false 10 20 461 41 15 15 20 20 false 15 15 20 20 background-color: rgb(180, 255, 185); false 15 15 20 20 background-color: rgb(252, 233, 79); false 15 15 20 20 background-color: rgb(138, 226, 52); false 15 15 20 20 background-color: rgb(114, 159, 207); false 15 15 20 20 background-color: rgb(255, 255, 255); false 15 15 20 20 background-color: rgb(110, 105, 255); false 15 15 20 20 background-color: rgb(194, 194, 194); false 15 15 20 20 background-color: rgb(190, 139, 185); false 15 15 20 20 background-color: rgb(255, 43, 43); false 15 15 20 20 background-color: rgb(110, 105, 255); false 70 16777215 Pick.. :/icons/png/colorize-2.png :/icons/png/colorize-2.png:/icons/png/colorize-2.png 80 16777215 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 true selected color Qt::AlignCenter checkBoxActive lineEditName pushButton_Positive pushButton_Negative pushButton_Marker comboBoxType groupBox_marker pushButton_c0 pushButton_c1 pushButton_c2 pushButton_c3 pushButton_c4 pushButton_c5 pushButton_c6 pushButton_c7 pushButton_c8 pushButton_c9 pushButton_c10 buttonSelectColor checkBoxEcuId lineEditEcuId checkBoxApplicationId lineEditApplicationId checkBoxContextId lineEditContextId checkBoxRegexp_Context checkBoxHeaderText lineEditHeaderText checkBoxRegexp_Header checkBox_IgnoreCase_Header checkBoxPayloadText lineEditPayloadText checkBoxRegexp_Payload checkBox_IgnoreCase_Payload checkBoxLogLevelMin comboBoxLogLevelMin checkBoxLogLevelMax comboBoxLogLevelMax checkBoxCtrlMsgs buttonBox rejected() FilterDialog reject() 164 356 286 274 buttonBox accepted() FilterDialog validate() 51 368 260 359 validate() dlt-viewer-2.18.0+dfsg/src/dltsettingsmanager.h0000664000175000017500000000231313001357026021056 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Lassi Marttala * * \file dltsettingsmanager.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef DLTSETTINGSMANAGER_H #define DLTSETTINGSMANAGER_H #include class DltSettingsManager { // Singleton pattern public: static DltSettingsManager* getInstance(); static void close(); private: DltSettingsManager(); ~DltSettingsManager(); static DltSettingsManager *m_instance; QSettings *settings; // QSettings delegates public: void setValue(const QString &key, const QVariant &value); QVariant value(const QString &key, const QVariant &defaultValue = QVariant()) const; void clear(); QString fileName() const; }; #endif // DLTSETTINGSMANAGER_H dlt-viewer-2.18.0+dfsg/src/dltfileindexerdefaultfilterthread.cpp0000664000175000017500000000254313001357026024464 0ustar potyrapotyra#include "dltfileindexerdefaultfilterthread.h" DltFileIndexerDefaultFilterThread::DltFileIndexerDefaultFilterThread ( QDltDefaultFilter *defaultFilter, QDltPluginManager *pluginManager, bool silentMode ) : defaultFilter(defaultFilter), pluginManager(pluginManager), silentMode(silentMode), msgQueue(1024) {} DltFileIndexerDefaultFilterThread::~DltFileIndexerDefaultFilterThread() {} void DltFileIndexerDefaultFilterThread::enqueueMessage(const QSharedPointer &msg, int index) { msgQueue.enqueueMsg(msg, index); } void DltFileIndexerDefaultFilterThread::requestStop() { msgQueue.enqueueStopRequest(); } void DltFileIndexerDefaultFilterThread::run() { QPair, int> msgPair; while(msgQueue.dequeue(msgPair)) processMessage(msgPair.first, msgPair.second); } void DltFileIndexerDefaultFilterThread::processMessage(QSharedPointer &msg, int index) { /* Process all decoderplugins */ pluginManager->decodeMsg(*msg, silentMode); /* run through all default filter */ for(int num = 0; num < defaultFilter->defaultFilterList.size(); num++) if(defaultFilter->defaultFilterList[num]->checkFilter(*msg)) // if filter matches message... defaultFilter->defaultFilterIndex[num]->indexFilter.append(index); // ... add message to index cache } dlt-viewer-2.18.0+dfsg/src/settingsdialog.cpp0000775000175000017500000010217413001357026020543 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file settingsdialog.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include #include #include #include #include "settingsdialog.h" #include "ui_settingsdialog.h" #include "version.h" #include "dltsettingsmanager.h" SettingsDialog::SettingsDialog(QDltFile *_qFile, QWidget *parent): QDialog(parent), qFile(_qFile), ui(new Ui::SettingsDialog) { ui->setupUi(this); //See man pages - tzset(3) //It is used to access DST and other timezone related information //and sets all timezone global variables tzset(); //timezone contains the difference in seconds between UTC and the local //standard time //qDebug()<< "Difference between UTC and the local standard time: "<comboBoxUTCOffset->addItem("UTC-12:00",-12*3600); ui->comboBoxUTCOffset->addItem("UTC-11:00",-11*3600); ui->comboBoxUTCOffset->addItem("UTC-10:00",-10*3600); ui->comboBoxUTCOffset->addItem("UTC-09:30",-9*3600-30*60); ui->comboBoxUTCOffset->addItem("UTC-09:00",-9*3600); ui->comboBoxUTCOffset->addItem("UTC-08:00",-8*3600); ui->comboBoxUTCOffset->addItem("UTC-07:00",-7*3600); ui->comboBoxUTCOffset->addItem("UTC-06:00",-6*3600); ui->comboBoxUTCOffset->addItem("UTC-05:00",-5*3600); ui->comboBoxUTCOffset->addItem("UTC-04:30",-4*3600-30*60); ui->comboBoxUTCOffset->addItem("UTC-04:00",-4*3600); ui->comboBoxUTCOffset->addItem("UTC-03:30",-3*3600-30*60); ui->comboBoxUTCOffset->addItem("UTC-03:00",-3*3600); ui->comboBoxUTCOffset->addItem("UTC-02:00",-2*3600); ui->comboBoxUTCOffset->addItem("UTC-01:00",-1*3600); ui->comboBoxUTCOffset->addItem("UTC 00:00",0); ui->comboBoxUTCOffset->addItem("UTC+01:00",1*3600); ui->comboBoxUTCOffset->addItem("UTC+02:00",2*3600); ui->comboBoxUTCOffset->addItem("UTC+03:00",3*3600); ui->comboBoxUTCOffset->addItem("UTC+03:30",3*3600+30*60); ui->comboBoxUTCOffset->addItem("UTC+04:00",4*3600); ui->comboBoxUTCOffset->addItem("UTC+04:30",4*3600+30*60); ui->comboBoxUTCOffset->addItem("UTC+05:00",5*3600); ui->comboBoxUTCOffset->addItem("UTC+05:30",5*3600+30*60); ui->comboBoxUTCOffset->addItem("UTC+05:45",5*3600+45*60); ui->comboBoxUTCOffset->addItem("UTC+06:00",6*3600); ui->comboBoxUTCOffset->addItem("UTC+06:30",6*3600+30*60); ui->comboBoxUTCOffset->addItem("UTC+07:00",7*3600); ui->comboBoxUTCOffset->addItem("UTC+08:00",8*3600); ui->comboBoxUTCOffset->addItem("UTC+08:45",8*3600+45*60); ui->comboBoxUTCOffset->addItem("UTC+09:00",9*3600); ui->comboBoxUTCOffset->addItem("UTC+09:30",9*3600+30*60); ui->comboBoxUTCOffset->addItem("UTC+10:00",10*3600); ui->comboBoxUTCOffset->addItem("UTC+10:30",10*3600+30*60); ui->comboBoxUTCOffset->addItem("UTC+11:00",11*3600); ui->comboBoxUTCOffset->addItem("UTC+11:30",11*3600+30*60); ui->comboBoxUTCOffset->addItem("UTC+12:00",12*3600); ui->comboBoxUTCOffset->addItem("UTC+12:45",12*3600+45*60); ui->comboBoxUTCOffset->addItem("UTC+13:00",13*3600); ui->comboBoxUTCOffset->addItem("UTC+14:00",14*3600); maxFileSizeMB = 0; appendDateTime = 0; } SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent), ui(new Ui::SettingsDialog) { ui->setupUi(this); } SettingsDialog::~SettingsDialog() { delete ui; } void SettingsDialog::changeEvent(QEvent *e) { QDialog::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); break; default: break; } } void SettingsDialog::assertSettingsVersion() { DltSettingsManager *settings = DltSettingsManager::getInstance(); int major = settings->value("startup/versionMajor").toInt(); int minor = settings->value("startup/versionMinor").toInt(); if(major == 0 && minor == 0) return; // The settings were empty already if(major < QString(PACKAGE_MAJOR_VERSION).toInt() || minor < QString(PACKAGE_MINOR_VERSION).toInt()) { QString msg; msg.append("Application version has changed. Settings might be incompatible.\n"); msg.append("Would you like to remove all old settings and initialize new ones?\n"); msg.append("Yes - Reset settings to factory defaults.\n"); msg.append("No - Continue loading settings and risk crashing the application.\n"); msg.append("Cancel - Exit the viewer now.\n"); QMessageBox dlg("Warning", msg, QMessageBox::Warning, QMessageBox::Yes, QMessageBox::No, QMessageBox::Cancel); int btn = dlg.exec(); if(btn == QMessageBox::Yes) { resetSettings(); } else if(btn == QMessageBox::Cancel) { exit(-1); } } } void SettingsDialog::resetSettings() { DltSettingsManager *settings = DltSettingsManager::getInstance(); settings->clear(); QString fn(settings->fileName()); DltSettingsManager::close(); QFile fh(fn); if(fh.exists()) { if(!fh.open(QIODevice::ReadWrite)) return; // Could be a registry key on windows fh.close(); if(!fh.remove()) { QMessageBox err("Error", "Could not remove the settings file", QMessageBox::Critical, QMessageBox::Ok, 0, 0); err.exec(); } } } void SettingsDialog::writeDlg() { /* Temp file */ if(tempUseOwn == 1) { ui->radioButtonSelectTemp->setChecked(true); } else if(tempUseSystem == 1) { ui->radioButtonUseTemp->setChecked(true); } // ^Else, uses default set in .ui ui->lineEditSystemTemp->setText(QDir::tempPath()); ui->lineEditOwnTemp->setText(tempOwnPath); ui->checkBoxCloseWithoutAsking->setChecked(tempCloseWithoutAsking == 1 ? true : false); ui->checkBoxSaveOnClear->setChecked(tempSaveOnClear == 1 ? true : false); /* startup */ ui->checkBoxDefaultProjectFile->setCheckState(defaultProjectFile?Qt::Checked:Qt::Unchecked); ui->lineEditDefaultProjectFile->setText(defaultProjectFileName); ui->checkBoxDefaultLogFile->setCheckState(defaultLogFile?Qt::Checked:Qt::Unchecked); ui->lineEditDefaultLogFile->setText(defaultLogFileName); ui->checkBoxPluginsPath->setCheckState(pluginsPath?Qt::Checked:Qt::Unchecked); ui->lineEditPluginsPath->setText(pluginsPathName); ui->checkBoxDefaultFilterPath->setCheckState(defaultFilterPath?Qt::Checked:Qt::Unchecked); ui->lineEditDefaultFilterPath->setText(defaultFilterPathName); ui->checkBoxPluginsAutoload->setCheckState(pluginsAutoloadPath?Qt::Checked:Qt::Unchecked); ui->lineEditPluginsAutoload->setText(pluginsAutoloadPathName); ui->checkBoxFilterCache->setCheckState(filterCache?Qt::Checked:Qt::Unchecked); ui->spinBoxIndexCacheDays->setValue(filterCacheDays); ui->lineEditFilterCache->setText(filterCacheName); ui->checkBoxAutoConnect->setCheckState(autoConnect?Qt::Checked:Qt::Unchecked); ui->checkBoxAutoScroll->setCheckState(autoScroll?Qt::Checked:Qt::Unchecked); ui->checkBoxAutoMarkFatalError->setCheckState(autoMarkFatalError?Qt::Checked:Qt::Unchecked); ui->checkBoxAutoMarkWarn->setCheckState(autoMarkWarn?Qt::Checked:Qt::Unchecked); ui->checkBoxAutoMarkMarker->setCheckState(autoMarkMarker?Qt::Checked:Qt::Unchecked); ui->checkBoxLoggingOnlyMode->setCheckState(loggingOnlyMode?Qt::Checked:Qt::Unchecked); ui->groupBoxMaxFileSizeMB->setChecked(maxFileSizeMB); ui->lineEditMaxFileSizeMB->setText(QString("%1").arg(maxFileSizeMB)); ui->checkBoxAppendDateTime->setCheckState(appendDateTime?Qt::Checked:Qt::Unchecked); /* table */ ui->spinBoxFontSize->setValue(fontSize); /* Time settings */ ui->groupBoxAutomaticTimeSettings->setChecked(automaticTimeSettings?Qt::Checked:Qt::Unchecked); if(ui->groupBoxAutomaticTimeSettings->isChecked()){ ui->checkBoxDST->setEnabled(false); ui->comboBoxUTCOffset->setEnabled(false); ui->labelTimezone->setEnabled(false); ui->checkBoxAutomaticTimezone->setEnabled(false); }else{ ui->checkBoxDST->setEnabled(true); ui->comboBoxUTCOffset->setEnabled(true); ui->labelTimezone->setEnabled(true); ui->checkBoxAutomaticTimezone->setEnabled(true); } ui->checkBoxAutomaticTimezone->setChecked(automaticTimezoneFromDlt?Qt::Checked:Qt::Unchecked); ui->checkBoxDST->setCheckState(dst?Qt::Checked:Qt::Unchecked); ui->comboBoxUTCOffset->setCurrentIndex(ui->comboBoxUTCOffset->findData(QVariant(utcOffset))); ui->checkBoxIndex->setCheckState(showIndex?Qt::Checked:Qt::Unchecked); ui->checkBoxTime->setCheckState(showTime?Qt::Checked:Qt::Unchecked); ui->checkBoxTimestamp->setCheckState(showTimestamp?Qt::Checked:Qt::Unchecked); ui->checkBoxCount->setCheckState(showCount?Qt::Checked:Qt::Unchecked); ui->checkBoxEcuid->setCheckState(showEcuId?Qt::Checked:Qt::Unchecked); ui->groupBoxAppId->setChecked(showApId?Qt::Checked:Qt::Unchecked); if(ui->groupBoxAppId->isChecked()){ ui->radioButtonAppId->setEnabled(true); ui->radioButtonAppIdDesc->setEnabled(true); }else{ ui->radioButtonAppId->setEnabled(false); ui->radioButtonAppIdDesc->setEnabled(false); } switch(showApIdDesc){ case 0: ui->radioButtonAppId->setChecked(true); ui->radioButtonAppIdDesc->setChecked(false); break; case 1: ui->radioButtonAppId->setChecked(false); ui->radioButtonAppIdDesc->setChecked(true); break; default: ui->radioButtonAppId->setChecked(true); ui->radioButtonAppIdDesc->setChecked(false); break; } ui->groupBoxConId->setChecked(showCtId?Qt::Checked:Qt::Unchecked); if(ui->groupBoxConId->isChecked()){ ui->radioButtonConId->setEnabled(true); ui->radioButtonConIdDesc->setEnabled(true); }else{ ui->radioButtonConId->setEnabled(false); ui->radioButtonConIdDesc->setEnabled(false); } switch(showCtIdDesc){ case 0: ui->radioButtonConId->setChecked(true); ui->radioButtonConIdDesc->setChecked(false); break; case 1: ui->radioButtonConId->setChecked(false); ui->radioButtonConIdDesc->setChecked(true); break; default: ui->radioButtonConId->setChecked(true); ui->radioButtonConIdDesc->setChecked(false); break; } ui->groupBoxSessionId->setChecked(showSessionId?Qt::Checked:Qt::Unchecked); if(ui->groupBoxSessionId->isChecked()){ ui->radioButtonSessionId->setEnabled(true); ui->radioButtonSessionName->setEnabled(true); }else{ ui->radioButtonSessionId->setEnabled(false); ui->radioButtonSessionName->setEnabled(false); } switch(showSessionName){ case 0: ui->radioButtonSessionId->setChecked(true); ui->radioButtonSessionName->setChecked(false); break; case 1: ui->radioButtonSessionId->setChecked(false); ui->radioButtonSessionName->setChecked(true); break; default: ui->radioButtonSessionId->setChecked(true); ui->radioButtonSessionName->setChecked(false); break; } ui->checkBoxType->setCheckState(showType?Qt::Checked:Qt::Unchecked); ui->checkBoxSubtype->setCheckState(showSubtype?Qt::Checked:Qt::Unchecked); ui->checkBoxMode->setCheckState(showMode?Qt::Checked:Qt::Unchecked); ui->checkBoxNoar->setCheckState(showNoar?Qt::Checked:Qt::Unchecked); ui->checkBoxPayload->setCheckState(showPayload?Qt::Checked:Qt::Unchecked); ui->spinBox_showArguments->setValue(showArguments); /* other */ ui->checkBoxWriteControl->setCheckState(writeControl?Qt::Checked:Qt::Unchecked); ui->checkBoxUpdateContextLoadingFile->setCheckState(updateContextLoadingFile?Qt::Checked:Qt::Unchecked); ui->checkBoxUpdateContextUnregister->setCheckState(updateContextsUnregister?Qt::Checked:Qt::Unchecked); DltSettingsManager *settings = DltSettingsManager::getInstance(); int refreshrate = settings->value("RefreshRate",DEFAULT_REFRESH_RATE).toInt(); ui->spinBoxFrequency->setValue(refreshrate); bool startup_minimized = settings->value("StartUpMinimized",false).toBool(); ui->checkBoxStartUpMinimized->setChecked(startup_minimized); } void SettingsDialog::readDlg() { /* Temp file */ tempUseSystem = (ui->radioButtonUseTemp->isChecked() == true ? 1 : 0); tempSystemPath = ui->lineEditSystemTemp->text(); tempUseOwn = (ui->radioButtonSelectTemp->isChecked() == true ? 1 : 0); tempOwnPath = ui->lineEditOwnTemp->text(); tempCloseWithoutAsking = (ui->checkBoxCloseWithoutAsking->isChecked() == true ? 1 : 0); tempSaveOnClear = (ui->checkBoxSaveOnClear->isChecked() == true ? 1 : 0); /* startup */ defaultProjectFile = (ui->checkBoxDefaultProjectFile->checkState() == Qt::Checked); defaultProjectFileName = ui->lineEditDefaultProjectFile->text(); defaultLogFile = (ui->checkBoxDefaultLogFile->checkState() == Qt::Checked); defaultLogFileName = ui->lineEditDefaultLogFile->text(); pluginsPath = (ui->checkBoxPluginsPath->checkState() == Qt::Checked); pluginsPathName = ui->lineEditPluginsPath->text(); defaultFilterPath = (ui->checkBoxDefaultFilterPath->checkState() == Qt::Checked); defaultFilterPathName = ui->lineEditDefaultFilterPath->text(); pluginsAutoloadPath = (ui->checkBoxPluginsAutoload->checkState() == Qt::Checked); pluginsAutoloadPathName = ui->lineEditPluginsAutoload->text(); filterCache = (ui->checkBoxFilterCache->checkState() == Qt::Checked); filterCacheDays = ui->spinBoxIndexCacheDays->value(); filterCacheName = ui->lineEditFilterCache->text(); autoConnect = (ui->checkBoxAutoConnect->checkState() == Qt::Checked); autoScroll = (ui->checkBoxAutoScroll->checkState() == Qt::Checked); autoMarkFatalError = (ui->checkBoxAutoMarkFatalError->checkState() == Qt::Checked); autoMarkWarn = (ui->checkBoxAutoMarkWarn->checkState() == Qt::Checked); autoMarkMarker = (ui->checkBoxAutoMarkMarker->checkState() == Qt::Checked); loggingOnlyMode = (ui->checkBoxLoggingOnlyMode->checkState() == Qt::Checked); if(ui->groupBoxMaxFileSizeMB->isChecked()) maxFileSizeMB = ui->lineEditMaxFileSizeMB->text().toInt(); else maxFileSizeMB = 0; appendDateTime = (ui->checkBoxAppendDateTime->checkState() == Qt::Checked); /* table */ fontSize = ui->spinBoxFontSize->value(); /* Time settings */ automaticTimeSettings = ( ui->groupBoxAutomaticTimeSettings->isChecked() == true ? 1:0); automaticTimezoneFromDlt = ( ui->checkBoxAutomaticTimezone->isChecked() == true ? 1:0); utcOffset = ui->comboBoxUTCOffset->itemData(ui->comboBoxUTCOffset->currentIndex()).toLongLong(); dst = ( ui->checkBoxDST->isChecked()== true ? 1:0); showIndex = ( ui->checkBoxIndex->checkState() == Qt::Checked); showTime = ( ui->checkBoxTime->checkState() == Qt::Checked); showTimestamp = ( ui->checkBoxTimestamp->checkState() == Qt::Checked); showCount = ( ui->checkBoxCount->checkState() == Qt::Checked); showEcuId = ( ui->checkBoxEcuid->checkState() == Qt::Checked); showApId = ( ui->groupBoxAppId->isChecked() == true ? 1:0); showApIdDesc = ( ui->radioButtonAppIdDesc->isChecked()== true ? 1:0); showCtId = ( ui->groupBoxConId->isChecked() == true ? 1:0); showCtIdDesc = ( ui->radioButtonConIdDesc->isChecked()== true ? 1:0); showSessionId = ( ui->groupBoxSessionId->isChecked() == true ? 1:0); showSessionName = ( ui->radioButtonSessionName->isChecked()== true ? 1:0); showType = ( ui->checkBoxType->checkState() == Qt::Checked); showSubtype = ( ui->checkBoxSubtype->checkState() == Qt::Checked); showMode = ( ui->checkBoxMode->checkState() == Qt::Checked); showNoar = ( ui->checkBoxNoar->checkState() == Qt::Checked); showPayload = ( ui->checkBoxPayload->checkState() == Qt::Checked); showArguments = (ui->spinBox_showArguments->value()); /* other */ writeControl = (ui->checkBoxWriteControl->checkState() == Qt::Checked); updateContextLoadingFile = (ui->checkBoxUpdateContextLoadingFile->checkState() == Qt::Checked); updateContextsUnregister = (ui->checkBoxUpdateContextUnregister->checkState() == Qt::Checked); DltSettingsManager *settings = DltSettingsManager::getInstance(); int refreshrate = ui->spinBoxFrequency->value(); int old_refreshrate = settings->value("RefreshRate",DEFAULT_REFRESH_RATE).toInt(); if ( refreshrate != old_refreshrate && 0 != refreshrate ) settings->setValue("RefreshRate",refreshrate); bool startup_minimized = ui->checkBoxStartUpMinimized->isChecked(); settings->setValue("StartUpMinimized",startup_minimized); } void SettingsDialog::writeSettings(QMainWindow *mainwindow) { DltSettingsManager *settings = DltSettingsManager::getInstance(); settings->setValue("geometry", mainwindow->saveGeometry()); settings->setValue("windowState", mainwindow->saveState()); /* Temporary directory */ settings->setValue("tempdir/tempUseSystem", tempUseSystem); settings->setValue("tempdir/tempSystemPath", tempSystemPath); settings->setValue("tempdir/tempUseOwn", tempUseOwn); settings->setValue("tempdir/tempOwnPath", tempOwnPath); settings->setValue("tempdir/tempCloseWithoutAsking", tempCloseWithoutAsking); settings->setValue("tempdir/tempSaveOnClear", tempSaveOnClear); /* startup */ settings->setValue("startup/defaultProjectFile",defaultProjectFile); settings->setValue("startup/defaultProjectFileName",defaultProjectFileName); settings->setValue("startup/defaultLogFile",defaultLogFile); settings->setValue("startup/defaultLogFileName",defaultLogFileName); settings->setValue("startup/pluginsPath",pluginsPath); settings->setValue("startup/pluginsPathName",pluginsPathName); settings->setValue("startup/defaultFilterPath",defaultFilterPath); settings->setValue("startup/defaultFilterPathName",defaultFilterPathName); settings->setValue("startup/pluginsAutoloadPath",pluginsAutoloadPath); settings->setValue("startup/pluginsAutoloadPathName",pluginsAutoloadPathName); settings->setValue("startup/filterCache",filterCache); settings->setValue("startup/filterCacheDays",filterCacheDays); settings->setValue("startup/filterCacheName",filterCacheName); settings->setValue("startup/autoConnect",autoConnect); settings->setValue("startup/autoScroll",autoScroll); settings->setValue("startup/autoMarkFatalError",autoMarkFatalError); settings->setValue("startup/autoMarkWarn",autoMarkWarn); settings->setValue("startup/autoMarkMarker",autoMarkMarker); settings->setValue("startup/loggingOnlyMode",loggingOnlyMode); settings->setValue("startup/maxFileSizeMB",maxFileSizeMB); settings->setValue("startup/appendDateTime",appendDateTime); /* table */ settings->setValue("startup/fontSize",fontSize); settings->setValue("startup/automaticTimeSettings",automaticTimeSettings); settings->setValue("startup/automaticTimezoneFromDlt",automaticTimezoneFromDlt); settings->setValue("startup/utcOffset",utcOffset); settings->setValue("startup/dst",dst); settings->setValue("startup/showIndex",showIndex); settings->setValue("startup/showTime",showTime); settings->setValue("startup/showTimestamp",showTimestamp); settings->setValue("startup/showCount",showCount); settings->setValue("startup/showEcuId",showEcuId); settings->setValue("startup/showApId",showApId); settings->setValue("startup/showApIdDesc",showApIdDesc); settings->setValue("startup/showCtId",showCtId); settings->setValue("startup/showCtIdDesc",showCtIdDesc); settings->setValue("startup/showSessionId",showSessionId); settings->setValue("startup/showSessionName",showSessionName); settings->setValue("startup/showType",showType); settings->setValue("startup/showSubtype",showSubtype); settings->setValue("startup/showMode",showMode); settings->setValue("startup/showNoar",showNoar); settings->setValue("startup/showPayload",showPayload); settings->setValue("startup/showArguments",showArguments); /* other */ settings->setValue("startup/writeControl",writeControl); settings->setValue("startup/updateContextLoadingFile",updateContextLoadingFile); settings->setValue("startup/updateContextsUnregister",updateContextsUnregister); /* For settings integrity validation */ settings->setValue("startup/versionMajor", QString(PACKAGE_MAJOR_VERSION).toInt()); settings->setValue("startup/versionMinor", QString(PACKAGE_MINOR_VERSION).toInt()); settings->setValue("startup/versionPatch", QString(PACKAGE_PATCH_LEVEL).toInt()); } void SettingsDialog::readSettings() { DltSettingsManager *settings = DltSettingsManager::getInstance(); /* Temp file */ tempUseSystem = settings->value("tempdir/tempUseSystem", 1).toInt(); tempSystemPath = QDir::tempPath(); tempUseOwn = settings->value("tempdir/tempUseOwn", 0).toInt(); tempOwnPath = settings->value("tempdir/tempOwnPath", QString("")).toString(); tempCloseWithoutAsking = settings->value("tempdir/tempCloseWithoutAsking", 0).toInt(); tempSaveOnClear = settings->value("tempdir/tempSaveOnClear", 1).toInt(); /* startup */ defaultProjectFile = settings->value("startup/defaultProjectFile",0).toInt(); defaultProjectFileName = settings->value("startup/defaultProjectFileName",QString("")).toString(); defaultLogFile = settings->value("startup/defaultLogFile",0).toInt(); defaultLogFileName = settings->value("startup/defaultLogFileName",QString("")).toString(); pluginsPath = settings->value("startup/pluginsPath",0).toInt(); pluginsPathName = settings->value("startup/pluginsPathName",QString("")).toString(); defaultFilterPath = settings->value("startup/defaultFilterPath",1).toInt(); defaultFilterPathName = settings->value("startup/defaultFilterPathName",QDir::homePath()+"/.dlt/filters").toString(); pluginsAutoloadPath = settings->value("startup/pluginsAutoloadPath",0).toInt(); pluginsAutoloadPathName = settings->value("startup/pluginsAutoloadPathName",QString("")).toString(); filterCache = settings->value("startup/filterCache",1).toInt(); filterCacheDays = settings->value("startup/filterCacheDays",7).toInt(); filterCacheName = settings->value("startup/filterCacheName",QDir::tempPath()+"/dltviewer/cache").toString(); autoConnect = settings->value("startup/autoConnect",0).toInt(); autoScroll = settings->value("startup/autoScroll",1).toInt(); autoMarkFatalError = settings->value("startup/autoMarkFatalError",0).toInt(); autoMarkWarn = settings->value("startup/autoMarkWarn",0).toInt(); autoMarkMarker = settings->value("startup/autoMarkMarker",1).toInt(); loggingOnlyMode = settings->value("startup/loggingOnlyMode",0).toInt(); maxFileSizeMB = settings->value("startup/maxFileSizeMB",0).toInt(); appendDateTime = settings->value("startup/appendDateTime",0).toInt(); /* table */ fontSize = settings->value("startup/fontSize",8).toInt(); automaticTimeSettings = settings->value("startup/automaticTimeSettings",1).toInt(); automaticTimezoneFromDlt = settings->value("startup/automaticTimezoneFromDlt",1).toInt(); utcOffset = settings->value("startup/utcOffset",QVariant((qlonglong)timezone*-1)).toLongLong(); dst = settings->value("startup/dst",daylight == 0 ? 0 : 1).toInt(); showIndex = settings->value("startup/showIndex",1).toInt(); showTime = settings->value("startup/showTime",1).toInt(); showTimestamp = settings->value("startup/showTimestamp",1).toInt(); showCount = settings->value("startup/showCount",1).toInt(); showEcuId = settings->value("startup/showEcuId",1).toInt(); showApId = settings->value("startup/showApId",1).toInt(); showApIdDesc = settings->value("startup/showApIdDesc",0).toInt(); showCtId = settings->value("startup/showCtId",1).toInt(); showCtIdDesc = settings->value("startup/showCtIdDesc",0).toInt(); showSessionId = settings->value("startup/showSessionId",1).toInt(); showSessionName = settings->value("startup/showSessionName",0).toInt(); showType = settings->value("startup/showType",1).toInt(); showSubtype = settings->value("startup/showSubtype",1).toInt(); showMode = settings->value("startup/showMode",1).toInt(); showNoar = settings->value("startup/showNoar",1).toInt(); showPayload = settings->value("startup/showPayload",1).toInt(); showArguments = settings->value("startup/showArguments",0).toInt(); /* other */ writeControl = settings->value("startup/writeControl",1).toInt(); updateContextLoadingFile = settings->value("startup/updateContextLoadingFile",1).toInt(); updateContextsUnregister = settings->value("startup/updateContextsUnregister",0).toInt(); } QStringList SettingsDialog::getRecentFiles(){ return DltSettingsManager::getInstance()->value("other/recentFileList").toStringList(); } QStringList SettingsDialog::getRecentProjects(){ return DltSettingsManager::getInstance()->value("other/recentProjectList").toStringList(); } QStringList SettingsDialog::getRecentFilters(){ return DltSettingsManager::getInstance()->value("other/recentFiltersList").toStringList(); } QString SettingsDialog::getWorkingDirectory(){ return DltSettingsManager::getInstance()->value("work/workingDirectory",QDir::currentPath()).toString(); } void SettingsDialog::on_toolButtonDefaultLogFile_clicked() { QString fileName = QFileDialog::getOpenFileName(this, tr("Open DLT Log file"), workingDirectory, tr("DLT Files (*.dlt);;All files (*.*)")); if(fileName.isEmpty()) return; /* change current working directory */ workingDirectory = QFileInfo(fileName).absolutePath(); ui->lineEditDefaultLogFile->setText(fileName); } void SettingsDialog::on_toolButtonDefaultProjectFile_clicked() { QString fileName = QFileDialog::getOpenFileName(this, tr("Open DLT Project file"), workingDirectory, tr("DLT Project Files (*.dlp);;All files (*.*)")); if(fileName.isEmpty()) return; /* change current working directory */ workingDirectory = QFileInfo(fileName).absolutePath(); ui->lineEditDefaultProjectFile->setText(fileName); } void SettingsDialog::on_tooButtonPluginsPath_clicked() { QString fileName = QFileDialog::getExistingDirectory(this, tr("Plugins directory"), workingDirectory+"/", QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); if(fileName.isEmpty()) return; /* change current working directory */ workingDirectory = QFileInfo(fileName).absolutePath(); ui->lineEditPluginsPath->setText(fileName); QMessageBox::warning(0, QString("DLT Viewer"), QString("Plugins will only be reloaded after restart of DLT Viewer!")); } void SettingsDialog::on_toolButtonDefaultFilterPath_clicked() { QString fileName = QFileDialog::getExistingDirectory(this, tr("Default Filter directory"), workingDirectory+"/", QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); if(fileName.isEmpty()) return; /* change current working directory */ workingDirectory = QFileInfo(fileName).absolutePath(); ui->lineEditDefaultFilterPath->setText(fileName); QMessageBox::warning(0, QString("DLT Viewer"), QString("Default filters will only be reloaded when triggered in the menu!")); } void SettingsDialog::on_toolButtonTempPath_clicked() { QString fileName = QFileDialog::getExistingDirectory(this, tr("Temporary directory"), workingDirectory+"/", QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); if(fileName.isEmpty()) return; /* change current working directory */ tempOwnPath = QFileInfo(fileName).absolutePath(); ui->lineEditOwnTemp->setText(fileName); } void SettingsDialog::on_toolButtonPluginsAutoload_clicked() { QString fileName = QFileDialog::getExistingDirectory(this, tr("Plugins configuration directory"), workingDirectory+"/", QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); if(fileName.isEmpty()) return; /* change current working directory */ pluginsAutoloadPathName = QFileInfo(fileName).absolutePath(); ui->lineEditPluginsAutoload->setText(fileName); } void SettingsDialog::on_toolButtonFilterCache_clicked() { QString fileName = QFileDialog::getExistingDirectory(this, tr("Filter Cache directory"), workingDirectory+"/", QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); if(fileName.isEmpty()) return; /* change current working directory */ filterCacheName = QFileInfo(fileName).absolutePath(); ui->lineEditFilterCache->setText(fileName); } void SettingsDialog::on_groupBoxConId_clicked(bool checked) { if(checked){ ui->radioButtonConId->setEnabled(true); ui->radioButtonConIdDesc->setEnabled(true); }else{ ui->radioButtonConId->setEnabled(false); ui->radioButtonConIdDesc->setEnabled(false); } } void SettingsDialog::on_groupBoxSessionId_clicked(bool checked) { if(checked){ ui->radioButtonSessionId->setEnabled(true); ui->radioButtonSessionName->setEnabled(true); }else{ ui->radioButtonSessionId->setEnabled(false); ui->radioButtonSessionName->setEnabled(false); } } void SettingsDialog::on_groupBoxAppId_clicked(bool checked) { if(checked){ ui->radioButtonAppId->setEnabled(true); ui->radioButtonAppIdDesc->setEnabled(true); }else{ ui->radioButtonAppId->setEnabled(false); ui->radioButtonAppIdDesc->setEnabled(false); } } void SettingsDialog::on_groupBoxAutomaticTimeSettings_clicked(bool checked) { if(checked){ ui->checkBoxDST->setEnabled(false); ui->comboBoxUTCOffset->setEnabled(false); ui->labelTimezone->setEnabled(false); ui->checkBoxAutomaticTimezone->setEnabled(false); }else{ ui->checkBoxDST->setEnabled(true); ui->comboBoxUTCOffset->setEnabled(true); ui->labelTimezone->setEnabled(true); ui->checkBoxAutomaticTimezone->setEnabled(true); } } void SettingsDialog::on_pushButtonClearIndexCache_clicked() { QString path = ui->lineEditFilterCache->text(); QDir dir(path); dir.setNameFilters(QStringList() << "*.dix"); dir.setFilter(QDir::Files); foreach(QString dirFile, dir.entryList()) { dir.remove(dirFile); } } void SettingsDialog::clearIndexCacheAfterDays() { // calculate comparison date QDateTime comparisonDate(QDateTime::currentDateTime()); comparisonDate = comparisonDate.addSecs((quint64)filterCacheDays*-1*60*60*24); // check if index cache is enabled if(!filterCache) return; /* check if directory for configuration exists */ QString path = filterCacheName; QDir dir(path); if(!dir.exists()) { /* directory does not exist, make it */ if(!dir.mkpath(dir.absolutePath())) { /* creation of directory fails */ QMessageBox::critical(0, QString("DLT Viewer"), QString("Cannot create directory to store index cache files!\n\n")+dir.absolutePath(), QMessageBox::Ok, QMessageBox::Ok); } return; } // go through each file and check modification date of file dir.setNameFilters(QStringList() << "*.dix"); dir.setFilter(QDir::Files); foreach(QString dirFile, dir.entryList()) { QFileInfo info(path+"/"+dirFile); QDateTime fileDate = info.lastRead(); //qDebug() << fileDate.toString("dd.MM.yyyy hh:mm:ss.zzz") << comparisonDate.toString("dd.MM.yyyy hh:mm:ss.zzz"); if(fileDate < comparisonDate) dir.remove(dirFile); } } void SettingsDialog::on_groupBoxArguments_clicked(bool checked) { if (checked) { if (ui->spinBox_showArguments->value()<=0) ui->spinBox_showArguments->setValue(5); //set to default } else { ui->spinBox_showArguments->setValue(0); } } void SettingsDialog::on_spinBox_showArguments_valueChanged(int i) { if (i<=0) { ui->groupBoxArguments->setChecked(false); } else { if (!ui->groupBoxArguments->isChecked()) ui->groupBoxArguments->setChecked(true); } } dlt-viewer-2.18.0+dfsg/src/tablemodel.h0000775000175000017500000000411613001357026017275 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file treemodel.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef TABLEMODEL_H #define TABLEMODEL_H #include #include #include #include #include #include "project.h" #include "qdlt.h" #define DLT_VIEWER_LIST_BUFFER_SIZE 100024 #define DLT_VIEWER_COLUMN_COUNT 13 extern "C" { } class TableModel : public QAbstractTableModel { Q_OBJECT public: TableModel(const QString &data, QObject *parent = 0); ~TableModel(); QVariant data(const QModelIndex &index, int role) const; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; int rowCount(const QModelIndex &parent = QModelIndex()) const; int columnCount(const QModelIndex &parent = QModelIndex()) const; /* pointer to the current loaded file */ QDltFile *qfile; Project *project; QDltPluginManager *pluginManager; void modelChanged(); void setForceEmpty(bool emptyForceFlag) { this->emptyForceFlag = emptyForceFlag; } void setLoggingOnlyMode(bool loggingOnlyMode) { this->loggingOnlyMode = loggingOnlyMode; } void setLastSearchIndex(int idx) {this->lastSearchIndex = idx;} private: int lastSearchIndex; bool emptyForceFlag; bool loggingOnlyMode; QColor searchBackgroundColor() const; }; class HtmlDelegate : public QStyledItemDelegate { protected: void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const; QSize sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const; }; #endif // TABLEMODEL_H dlt-viewer-2.18.0+dfsg/src/filtertreewidget.cpp0000775000175000017500000000147613001357026021077 0ustar potyrapotyra#include "filtertreewidget.h" #include #include FilterTreeWidget::FilterTreeWidget(QObject *parent) : QTreeWidget(qobject_cast(parent)) { } void FilterTreeWidget::dragMoveEvent(QDragMoveEvent *event) { event->accept(); } void FilterTreeWidget::dropEvent(QDropEvent *event) { QStringList types = event->mimeData()->formats(); for(int i=0;i < types.size(); i++) { /* QT advertises our filteritems with this MIME identifier. * We use this to identify when a filter item was dropped, * instead of some other random data. */ if(types[i] == "application/x-qabstractitemmodeldatalist") { QTreeWidget::dropEvent(event); emit filterItemDropped(); event->accept(); break; } } } dlt-viewer-2.18.0+dfsg/src/dltfileindexerdefaultfilterthread.h0000664000175000017500000000141513001357026024126 0ustar potyrapotyra#ifndef DLTFILEINDEXERDEFAULTFILTERTHREAD_H #define DLTFILEINDEXERDEFAULTFILTERTHREAD_H #include "dltfileindexer.h" #include "dltmsgqueue.h" #include class DltFileIndexerDefaultFilterThread :public QThread { Q_OBJECT public: DltFileIndexerDefaultFilterThread(QDltDefaultFilter *defaultFilter, QDltPluginManager *pluginManager, bool silentMode); ~DltFileIndexerDefaultFilterThread(); void enqueueMessage(const QSharedPointer &msg, int index); void processMessage(QSharedPointer &msg, int index); void requestStop(); protected: void run(); private: QDltDefaultFilter *defaultFilter; QDltPluginManager *pluginManager; bool silentMode; DltMsgQueue msgQueue; }; #endif // DLTFILEINDEXERDEFAULTFILTERTHREAD_H dlt-viewer-2.18.0+dfsg/src/project.h0000775000175000017500000001451713001357026016641 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file project.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef PROJECT_H #define PROJECT_H #include "qdlt.h" #include #include #include #include #include #include #include #include #if defined(_MSC_VER) #include #else #include #endif #include "settingsdialog.h" extern "C" { } #include "plugininterface.h" #define DLT_VIEWER_BUFFER_SIZE 256000 #define RCVBUFSIZE 128000 /* Size of receive buffer */ enum dlt_item_type { ecu_type = QTreeWidgetItem::UserType, application_type, context_type, filter_type, plugin_type }; class EcuItem : public QTreeWidgetItem { public: enum { INTERFACETYPE_TCP, INTERFACETYPE_UDP, INTERFACETYPE_SERIAL }; EcuItem(QTreeWidgetItem *parent = 0); ~EcuItem(); void InvalidAll(); /* configuration all */ QString id; QString description; int interfacetype; int loglevel; int tracestatus; int verbosemode; bool timingPackets; bool sendGetLogInfo; bool sendDefaultLogLevel; bool sendGetSoftwareVersion; enum {invalid,unknown,valid} status; /* configuration update */ bool updateDataIfOnline; void update(); /* connection */ QTcpSocket tcpsocket; QUdpSocket udpsocket; QAbstractSocket * socket; QextSerialPort *m_serialport; /* connection status */ int tryToConnect; int connected; QString connectError; bool autoReconnect; int autoReconnectTimeout; /* current received message and buffer for receivig from the socket */ int32_t totalBytesRcvd; /* AutoReconnecct */ int32_t totalBytesRcvdLastTimeout; bool isAutoReconnectTimeoutPassed(); void updateAutoReconnectTimestamp(); private: QDateTime autoReconnectTimestamp; bool operator< ( const QTreeWidgetItem & other ) const; /* configuration TCP / UDP */ QString hostname; unsigned int ipport; bool sendSerialHeaderIp; bool syncSerialHeaderIp; public: QDltIPConnection ipcon; /* Accsesors to config */ QString getHostname() {return hostname;} unsigned int getIpport() {return ipport;} bool getSendSerialHeaderIp() {return sendSerialHeaderIp;} bool getSyncSerialHeaderIp() {return syncSerialHeaderIp;} void setHostname(QString hname) {hostname = hname; ipcon.setHostname(hostname);} void setIpport(unsigned int tp) {ipport = tp; ipcon.setPort(ipport);} void setSendSerialHeaderIp(bool b) {sendSerialHeaderIp = b; ipcon.setSendSerialHeader(sendSerialHeaderIp);} void setSyncSerialHeaderIp(bool b) {syncSerialHeaderIp = b; ipcon.setSyncSerialHeader(syncSerialHeaderIp);} private: /* Configuration serial */ QString port; BaudRateType baudrate; bool sendSerialHeaderSerial; bool syncSerialHeaderSerial; public: QDltSerialConnection serialcon; /* Accsesors to config */ QString getPort() {return port;} BaudRateType getBaudrate() {return baudrate;} bool getSendSerialHeaderSerial() {return sendSerialHeaderSerial;} bool getSyncSerialHeaderSerial() {return syncSerialHeaderSerial;} void setPort(QString tp) {port = tp; serialcon.setPort(port);} void setBaudrate(BaudRateType brt) {baudrate = brt;serialcon.setBaudrate(baudrate);} void setSendSerialHeaderSerial(bool b) {sendSerialHeaderSerial = b;serialcon.setSendSerialHeader(sendSerialHeaderSerial);} void setSyncSerialHeaderSerial(bool b) {syncSerialHeaderSerial = b;serialcon.setSyncSerialHeader(syncSerialHeaderSerial);} }; class ApplicationItem : public QTreeWidgetItem { public: ApplicationItem(QTreeWidgetItem *parent = 0); ~ApplicationItem(); QString id; QString description; void update(); private: bool operator< ( const QTreeWidgetItem & other ) const; }; class ContextItem : public QTreeWidgetItem { public: ContextItem(QTreeWidgetItem *parent = 0); ~ContextItem(); enum {invalid,unknown,valid} status; QString id; QString description; int loglevel; int tracestatus; void update(); private: bool operator< ( const QTreeWidgetItem & other ) const; }; class FilterItem : public QTreeWidgetItem { public: FilterItem(QTreeWidgetItem *parent = 0); ~FilterItem(); void operator = (FilterItem &item); QDltFilter filter; void update(); private: }; //Forward declaration class MyPluginDockWidget; class PluginItem : public QObject, public QTreeWidgetItem { Q_OBJECT public: PluginItem(QTreeWidgetItem *parent, QDltPlugin *_plugin); ~PluginItem(); enum { TypeFile, TypeDirectory }; QString getName(); QString getPluginVersion(); QString getPluginInterfaceVersion(); QString getFilename(); void setFilename(QString f); int getType(); void setType(int t); int getMode(); void setMode(int t); void update(); QDltPlugin* getPlugin() { return plugin; } void savePluginModeToSettings(); void loadPluginModeFromSettings(); QWidget *widget; MyPluginDockWidget *dockWidget; QPluginLoader *loader; private: QString name; QString pluginVersion; QString pluginInterfaceVersion; QString filename; int type; int mode; QDltPlugin *plugin; }; class MyPluginDockWidget : public QDockWidget{ public: MyPluginDockWidget(); MyPluginDockWidget(PluginItem *i, QWidget *parent=0); ~MyPluginDockWidget(); private: PluginItem *pluginitem; void closeEvent(QCloseEvent *event); }; class Project { public: Project(); ~Project(); bool Load(QString filename); bool Save(QString filename); void Clear(); bool SaveFilter(QString filename); bool LoadFilter(QString filename,bool replace); QTreeWidget *ecu; QTreeWidget *filter; QTreeWidget *plugin; SettingsDialog *settings; private: }; #endif // PROJECT_H dlt-viewer-2.18.0+dfsg/src/searchdialog.cpp0000775000175000017500000006336613001357026020161 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file searchdialog.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "searchdialog.h" #include "ui_searchdialog.h" #include "mainwindow.h" #include "dltsettingsmanager.h" #include "optmanager.h" #include #include #include SearchDialog::SearchDialog(QWidget *parent) : QDialog(parent), ui(new Ui::SearchDialog) { ui->setupUi(this); regexpCheckBox = ui->checkBoxRegExp; CheckBoxSearchtoList = ui->checkBoxSearchIndex; match = false; onceClicked = false; startLine = -1; is_PayloadStartFound = false; is_PayloadEndFound = false; is_PayLoadRangeValid = false; lineEdits = new QList(); lineEdits->append(ui->lineEditText); bool checked = DltSettingsManager::getInstance()->value("other/search/checkBoxSearchIndex", bool(true)).toBool(); ui->checkBoxSearchIndex->setChecked(checked); updateColorbutton(); } SearchDialog::~SearchDialog() { clearCacheHistory(); delete ui; } void SearchDialog::setText(QString text) { ui->lineEditText->setText(text);} void SearchDialog::selectText(){ui->lineEditText->setFocus();ui->lineEditText->selectAll();} void SearchDialog::setHeader(bool header) { ui->checkBoxHeader->setCheckState(header?Qt::Checked:Qt::Unchecked);} void SearchDialog::setPayload(bool payload) { ui->checkBoxPayload->setCheckState(payload?Qt::Checked:Qt::Unchecked);} void SearchDialog::setCaseSensitive(bool caseSensitive) { ui->checkBoxCaseSensitive->setCheckState(caseSensitive?Qt::Checked:Qt::Unchecked);} void SearchDialog::setRegExp(bool regExp) { ui->checkBoxRegExp->setCheckState(regExp?Qt::Checked:Qt::Unchecked);} void SearchDialog::setNextClicked(bool next){nextClicked = next;} void SearchDialog::setMatch(bool matched){match=matched;} void SearchDialog::setStartLine(int start){startLine=start;} void SearchDialog::setOnceClicked(bool clicked){onceClicked=clicked;} void SearchDialog::appendLineEdit(QLineEdit *lineEdit){ lineEdits->append(lineEdit);} void SearchDialog::setApIDText(QString text){ ui->apIdlineEdit->setText(text);} void SearchDialog::setCtIDText(QString text){ ui->ctIdlineEdit->setText(text);} QString SearchDialog::getText() { return ui->lineEditText->text(); } bool SearchDialog::getHeader() { return (ui->checkBoxHeader->checkState() == Qt::Checked); } bool SearchDialog::getPayload() { return (ui->checkBoxPayload->checkState() == Qt::Checked); } bool SearchDialog::getCaseSensitive() { return (ui->checkBoxCaseSensitive->checkState() == Qt::Checked); } bool SearchDialog::getRegExp() { return (ui->checkBoxRegExp->checkState() == Qt::Checked); } bool SearchDialog::getSearchFromBeginning(){return (ui->radioButtonPosBeginning->isChecked());} bool SearchDialog::getNextClicked(){return nextClicked;} bool SearchDialog::getMatch(){return match;} bool SearchDialog::getOnceClicked(){return onceClicked;} bool SearchDialog::searchtoIndex(){return (ui->checkBoxSearchIndex->checkState() ==Qt::Checked);} int SearchDialog::getStartLine( ){return startLine;} QString SearchDialog::getApIDText(){ return ui->apIdlineEdit->text();} QString SearchDialog::getCtIDText(){ return ui->ctIdlineEdit->text();} QString SearchDialog::getTimeStampStart(){return ui->timeStartlineEdit->text();} QString SearchDialog::getTimeStampEnd(){return ui->timeEndlineEdit->text();} QString SearchDialog::getPayLoadStampStart(){return ui->payloadStartlineEdit->text();} QString SearchDialog::getPayLoadStampEnd(){return ui->payloadEndlineEdit->text();} void SearchDialog::setSearchColour(QLineEdit *lineEdit,int result) { QPalette palette = lineEdit->palette(); QColor text0(255,255,255); QColor text1(0,0,0); QColor background0(255,102,102); QColor background1(255,255,255); switch(result){ case 0: palette.setColor(QPalette::Text,text0); lineEdit->setPalette(palette); palette.setColor(QPalette::Base,background0); lineEdit->setPalette(palette); break; case 1: palette.setColor(QPalette::Text,text1); lineEdit->setPalette(palette); palette.setColor(QPalette::Base,background1); lineEdit->setPalette(palette); break; } } void SearchDialog::focusRow(int searchLine) { TableModel *model = qobject_cast(table->model()); QModelIndex idx = model->index(searchLine, 0, QModelIndex()); table->scrollTo(idx, QAbstractItemView::EnsureVisible); model->setLastSearchIndex(searchLine); table->selectionModel()->clear(); model->modelChanged(); } int SearchDialog::find() { emit addActionHistory(); QRegExp searchTextRegExp; int searchLine; int searchBorder; emit searchProgressChanged(true); if(file->sizeFilter()==0) { emit searchProgressChanged(false); return 0; } if( (getMatch() || getSearchFromBeginning()==false) && false == searchtoIndex() ){ QModelIndexList list = table->selectionModel()->selection().indexes(); if(list.count() > 0) { QModelIndex index; for(int num=0; num < list.count();num++) { index = list[num]; if(index.column()==0) { break; } } setStartLine(index.row()); } } searchLine = getStartLine(); searchBorder = getStartLine();; if(searchBorder < 0 || searchtoIndex()){ if(getNextClicked() || searchtoIndex()){ searchBorder = file->sizeFilter()==0?0:file->sizeFilter()-1; }else{ searchBorder = 0; } } if(getRegExp()) { searchTextRegExp.setPattern(getText()); searchTextRegExp.setCaseSensitivity(getCaseSensitive()?Qt::CaseSensitive:Qt::CaseInsensitive); if (!searchTextRegExp.isValid()) { QMessageBox::warning(0, QString("Search"), QString("Invalid regular expression!")); emit searchProgressChanged(false); return 0; } } findProcess(searchLine,searchBorder,searchTextRegExp,getApIDText(),getCtIDText(),getTimeStampStart(), getTimeStampEnd(),getPayLoadStampStart(),getPayLoadStampEnd()); emit searchProgressChanged(false); if (searchtoIndex()) { cacheSearchHistory(); emit refreshedSearchIndex(); //if at least one element has been found -> successful search if ( 0 < m_searchtablemodel->get_SearchResultListSize()) return 1; } if(getMatch()) { return 1; } setStartLine(0); return 0; } void SearchDialog::findProcess(int searchLine, int searchBorder, QRegExp &searchTextRegExp,QString apID, QString ctID, QString tStart, QString tEnd, QString tpayloadStart, QString tpayloadEnd) { QDltMsg msg; QByteArray buf; QString text; QString headerText; int ctr = 0; Qt::CaseSensitivity is_Case_Sensitive = Qt::CaseInsensitive; if(getCaseSensitive()) { is_Case_Sensitive = Qt::CaseSensitive; } payloadStart = tpayloadStart; payloadEnd = tpayloadEnd; is_payLoadSearchSelected = false; is_TimeStampSearchSelected = false; tempPayLoad.clear(); if((false == payloadStart.isEmpty()) && ( false == payloadEnd.isEmpty())) { is_payLoadSearchSelected = true; } if((tStart.size()) && (tEnd.size())) { is_TimeStampSearchSelected = true; } is_PayloadStartFound = false; is_PayloadEndFound = false; is_PayLoadRangeValid = false; m_searchtablemodel->clear_SearchResults(); QProgressDialog fileprogress("Searching...", "Abort", 0, file->sizeFilter(), this); fileprogress.setWindowTitle("DLT Viewer"); fileprogress.setWindowModality(Qt::NonModal); fileprogress.show(); bool silentMode = !OptManager::getInstance()->issilentMode(); do { ctr++; text.clear(); if(getNextClicked() || searchtoIndex()){ searchLine++; if(searchLine >= file->sizeFilter()){ searchLine = 0; } } else { searchLine--; if(searchLine <= -1) { searchLine = file->sizeFilter()-1; } } /* Update progress every 0.5% */ if(searchLine%1000==0) { fileprogress.setValue(ctr); if(fileprogress.wasCanceled()) { break; } QApplication::processEvents(); } /* get the message with the selected item id */ buf = file->getMsgFilter(searchLine); msg.setMsg(buf); if(DltSettingsManager::getInstance()->value("startup/pluginsEnabled", true).toBool()) pluginManager->decodeMsg(msg,silentMode); bool pluginFound = false; headerText.clear(); /* search header */ if(!pluginFound || text.isEmpty()) { text += msg.toStringHeader(); tempPayLoad = msg.toStringPayload(); } headerText = text; /*Assuming that the timeStamp is the 3rd value always*/ QString timeSt = headerText.section(" ",2,2); is_TimeStampRangeValid = false; if(true == is_TimeStampSearchSelected) { if((tStart.toFloat() <= timeSt.toFloat())) { if((tEnd.toFloat() >= timeSt.toFloat())) { is_TimeStampRangeValid = true; } } } payLoadValidityCheck(); if(getHeader()) { if (getRegExp()) { if(text.contains(searchTextRegExp)) { if ( foundLine(searchLine) ) break; else continue; }else { setMatch(false); } } else { if(getText().isEmpty()) { if(apID.size()) { if(ctID.size()) { if(headerText.contains(apID,is_Case_Sensitive) && headerText.contains(ctID,is_Case_Sensitive)) { if(timeStampPayloadValidityCheck(searchLine)) break; else continue; } } else { if(headerText.contains(apID,is_Case_Sensitive)) { if(timeStampPayloadValidityCheck(searchLine)) break; else continue; } } } else if(ctID.size()) { if(headerText.contains(ctID,is_Case_Sensitive)) { if(timeStampPayloadValidityCheck(searchLine)) break; else continue; } } else if ((is_TimeStampSearchSelected) || (is_payLoadSearchSelected)) { if(timeStampPayloadValidityCheck(searchLine)) break; else continue; } else { if ( foundLine(searchLine) ) break; else continue; } } else if(headerText.contains(getText(),is_Case_Sensitive)) { if(apID.size()) { if(ctID.size()) { if(headerText.contains(apID,is_Case_Sensitive) && headerText.contains(ctID,is_Case_Sensitive)) { if(timeStampPayloadValidityCheck(searchLine)) break; else continue; } } else { if(headerText.contains(apID,is_Case_Sensitive)) { if(timeStampPayloadValidityCheck(searchLine)) break; else continue; } } } else if(ctID.size()) { if(headerText.contains(ctID,is_Case_Sensitive)) { if(timeStampPayloadValidityCheck(searchLine)) break; else continue; } } else if ((is_TimeStampSearchSelected) || (is_payLoadSearchSelected)) { if(timeStampPayloadValidityCheck(searchLine)) break; else continue; } } else { setMatch(false); } } } /* search payload */ text.clear(); if(!pluginFound || text.isEmpty()) { text += msg.toStringPayload(); } if(getPayload()) { if (getRegExp()) { if(tempPayLoad.contains(searchTextRegExp)) { if ( foundLine(searchLine) ) break; else continue; }else { setMatch(false); } } else { if(getText().isEmpty()) { if(apID.size()) { if(ctID.size()) { if(headerText.contains(apID,is_Case_Sensitive) && headerText.contains(ctID,is_Case_Sensitive)) { if(timeStampPayloadValidityCheck(searchLine)) { break; } else { continue; } } } else { if(headerText.contains(apID,is_Case_Sensitive)) { if(timeStampPayloadValidityCheck(searchLine)) { break; } else { continue; } } } } else if(ctID.size()) { if(headerText.contains(ctID,is_Case_Sensitive)) { if(timeStampPayloadValidityCheck(searchLine)) { break; } else { continue; } } } else { if(timeStampPayloadValidityCheck(searchLine)) { break; } else { continue; } } } else if(tempPayLoad.contains(getText(),is_Case_Sensitive)) { if(apID.size()) { if(ctID.size()) { if(headerText.contains(apID,is_Case_Sensitive) && headerText.contains(ctID,is_Case_Sensitive)) { if(timeStampPayloadValidityCheck(searchLine)) { break; } else { continue; } } } else { if(headerText.contains(apID,is_Case_Sensitive)) { if(timeStampPayloadValidityCheck(searchLine)) { break; } else { continue; } } } } else if(ctID.size()) { if(headerText.contains(ctID,is_Case_Sensitive)) { if(timeStampPayloadValidityCheck(searchLine)) { break; } else { continue; } } } else { if(timeStampPayloadValidityCheck(searchLine)) { break; } else { continue; } } } else { setMatch(false); } } } }while( searchBorder != searchLine ); } bool SearchDialog::payLoadValidityCheck() { // When the start payload is found, consider range as valid if((tempPayLoad.contains(payloadStart)) && (false == is_PayloadEndFound)) { is_PayLoadRangeValid = true; is_PayloadStartFound = true; } if(true == is_PayloadStartFound) { if(tempPayLoad.contains(payloadEnd)) { is_PayloadEndFound = true; is_PayLoadRangeValid = false; } } return is_PayLoadRangeValid; } bool SearchDialog::timeStampPayloadValidityCheck(int searchLine) { if(is_TimeStampSearchSelected) { if(is_TimeStampRangeValid) { if(is_payLoadSearchSelected) { if(is_PayLoadRangeValid) if(foundLine(searchLine)) return true; } else { if(foundLine(searchLine)) return true; } } } else if(is_payLoadSearchSelected) { if(is_PayLoadRangeValid) if(foundLine(searchLine)) return true; } else { if(foundLine(searchLine)) return true; } return false; } bool SearchDialog::timeStampCheck(int searchLine) { bool retVal = false; // If time stamps are given, they are considered to be of highest priority if(is_TimeStampSearchSelected) { if(is_TimeStampRangeValid) { if(is_payLoadSearchSelected) { if(payLoadValidityCheck()) { if(foundLine(searchLine)) { retVal = true; } } } else { if(foundLine(searchLine)) { retVal = true; } else { retVal = false; } } } else { retVal = false; } } else { if(is_payLoadSearchSelected) { if(payLoadValidityCheck()) { if(foundLine(searchLine)) return true; } } else if(foundLine(searchLine)) return true; else return false; } return retVal; } bool SearchDialog::foundLine(int searchLine) { setMatch(true); if (searchtoIndex()) { addToSearchIndex(searchLine); emit refreshedSearchIndex(); } else { focusRow(searchLine); setStartLine(searchLine); return true;//found single result, and breaking here } return false;//don't break search here } void SearchDialog::on_pushButtonNext_clicked() { /* For every new search, start payLoad and EndpayLoad will be different and hence member variable storing previous found * value shoudl eb reset. */ is_PayloadStartFound = false; is_PayloadEndFound = false; is_PayLoadRangeValid = false; setNextClicked(true); int result = find(); for(int i=0; isize();i++){ setSearchColour(lineEdits->at(i),result); } } void SearchDialog::on_pushButtonPrevious_clicked() { setNextClicked(false); int result = find(); for(int i=0; isize();i++){ setSearchColour(lineEdits->at(i),result); } } void SearchDialog::findNextClicked(){ setNextClicked(true); int result = find(); for(int i=0; isize();i++){ setSearchColour(lineEdits->at(i),result); } } void SearchDialog::findPreviousClicked(){ setNextClicked(false); int result = find(); for(int i=0; isize();i++){ setSearchColour(lineEdits->at(i),result); } } void SearchDialog::on_lineEditText_textEdited(QString newText) { lineEdits->at(1)->setText(newText); for(int i=0; isize();i++){ if(lineEdits->at(0)->text().isEmpty()) setSearchColour(lineEdits->at(i),1); } } void SearchDialog::textEditedFromToolbar(QString newText){ lineEdits->at(0)->setText(newText); for(int i=0; isize();i++){ if(lineEdits->at(0)->text().isEmpty()) setSearchColour(lineEdits->at(i),1); } } void SearchDialog::on_pushButtonColor_clicked() { QString color = DltSettingsManager::getInstance()->value("other/searchResultColor", QString("#00AAFF")).toString(); QColor oldColor(color); QColor newColor = QColorDialog::getColor(oldColor, this, "Pick color for Search Highlight"); if(!newColor.isValid()) { // User cancelled return; } DltSettingsManager::getInstance()->setValue("other/searchResultColor", newColor.name()); updateColorbutton(); } void SearchDialog::updateColorbutton() { QString color = DltSettingsManager::getInstance()->value("other/searchResultColor", QString("#00AAFF")).toString(); QColor hlColor(color); QPixmap px(12, 12); px.fill(hlColor); ui->pushButtonColor->setIcon(px); } void SearchDialog::addToSearchIndex(int searchLine) { m_searchtablemodel->add_SearchResultEntry(file->getMsgFilterPos(searchLine)); } void SearchDialog::registerSearchTableModel(SearchTableModel *model) { m_searchtablemodel = model; } void SearchDialog::on_checkBoxSearchIndex_toggled(bool checked) { DltSettingsManager::getInstance()->setValue("other/search/checkBoxSearchIndex", checked); } void SearchDialog::loadSearchHistory() { // getting text of the action button clicked to load search history. QAction *action = qobject_cast(sender()); QString text; if(action) { text = action->text(); } // creating a local list to store the indexes related to the key retrieved from the cache. QList tmp ; if(cachedHistoryKey.size() > 0) { tmp = cachedHistoryKey[text]; //deleting the previous search list and adding the cached search obtained to the model. m_searchtablemodel->clear_SearchResults(); for (int i = 0;i < tmp.size();i++) { m_searchtablemodel->add_SearchResultEntry(tmp.at(i)); } } emit refreshedSearchIndex(); } void SearchDialog::cacheSearchHistory() { // if it is a new search then add all the indexes of the search to a list(m_searchHistory). QString searchBoxText = getText(); m_searchHistory.append(m_searchtablemodel->m_searchResultList); cachedHistoryKey.insert(searchBoxText,m_searchHistory.last()); } void SearchDialog::clearCacheHistory() { // obtaining the list of keys stored in cache cachedHistoryKey.clear(); } dlt-viewer-2.18.0+dfsg/src/multiplecontextdialog.cpp0000664000175000017500000000237613001357026022143 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file multiplecontextdialog.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "multiplecontextdialog.h" #include "ui_multiplecontextdialog.h" MultipleContextDialog::MultipleContextDialog(int loglevel, int tracestatus, QWidget *parent) : QDialog(parent), ui(new Ui::MultipleContextDialog) { ui->setupUi(this); ui->loglevelComboBox->setCurrentIndex(loglevel); ui->tracestatusComboBox->setCurrentIndex(tracestatus); } MultipleContextDialog::~MultipleContextDialog() { delete ui; } int MultipleContextDialog::loglevel() { return ui->loglevelComboBox->currentIndex()-1; } int MultipleContextDialog::tracestatus() { return ui->tracestatusComboBox->currentIndex()-1; } int MultipleContextDialog::update() { return ui->updateCheckBox->isChecked(); } dlt-viewer-2.18.0+dfsg/src/contextdialog.ui0000775000175000017500000001030313001357026020212 0ustar potyrapotyra ContextDialog 0 0 400 213 Context Configuration :/icons/png/face-glasses.png:/icons/png/face-glasses.png Id: 4 Description: Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok Log Level: default off fatal error warn info debug verbose Trace Status: default off on Update data in DLT if online true buttonBox accepted() ContextDialog accept() 248 254 157 274 buttonBox rejected() ContextDialog reject() 316 260 286 274 dlt-viewer-2.18.0+dfsg/src/dltfileindexer.h0000664000175000017500000001230413001357026020162 0ustar potyrapotyra#ifndef DLTFILEINDEXER_H #define DLTFILEINDEXER_H #include #include #include #include #include #include #include "qdlt.h" #define DLT_FILE_INDEXER_SEG_SIZE (1024*1024) #define DLT_FILE_INDEXER_FILE_VERSION 2 class DltFileIndexerKey { public: DltFileIndexerKey(time_t time,unsigned int microseconds); friend bool operator< (const DltFileIndexerKey &key1, const DltFileIndexerKey &key2); private: time_t time; unsigned int microseconds; }; inline bool operator< (const DltFileIndexerKey &key1, const DltFileIndexerKey &key2) { if(key1.timekey2.time) return false; return (key1.microseconds &index, QStringList filenames); bool saveFilterIndexCache(QDltFilterList &filterList, QVector index, QStringList filenames); QString filenameFilterIndexCache(QDltFilterList &filterList, QStringList filenames); // load/save index from/to file bool loadIndexCache(QString filename); bool saveIndexCache(QString filename); QString filenameIndexCache(QString filename); // load/save index from/to file bool saveIndex(QString filename, const QVector &index); bool loadIndex(QString filename, QVector &index); // Accessors to mutex void lock(); void unlock(); bool tryLock(); // set/get indexing mode void setMode(IndexingMode mode) { this->mode = mode; } IndexingMode getMode() { return mode; } // enable/disable plugins void setPluginsEnabled(bool enable) { pluginsEnabled = enable; } bool getPluginsEnabled() { return pluginsEnabled; } // enable/disable filters void setFiltersEnabled(bool enable) { filtersEnabled = enable; } bool getFiltersEnabled() { return filtersEnabled; } // enable/disable sort by time void setSortByTimeEnabled(bool enable) { sortByTimeEnabled = enable; } bool setSortByTimeEnabled() { return sortByTimeEnabled; } // enable/disable multithreaded void setMultithreaded(bool enable) { multithreaded = enable; } bool getMultithreaded() { return multithreaded; } // get and set filter cache void setFilterCache(QString path) { filterCache = path; } QString getFilterCache() { return filterCache; } // get index of all messages QVector getIndexAll() { return indexAllList; } QVector getIndexFilters() { return indexFilterList; } QList getGetLogInfoList() { return getLogInfoList; } // let worker thread append to getLogInfoList void appendToGetLogInfoList(int value); // main thread routine void run(); protected: private: // the current set mode of indexing IndexingMode mode; /* Lock, to reserve exclusive indexing rights * to this component when running */ QMutex indexLock; // File to work on QDltFile *dltFile; // Plugins to be used QDltPluginManager *pluginManager; // DefaultFilter to be used QDltDefaultFilter *defaultFilter; // stop flag bool stopFlag; // active plugins QList activeViewerPlugins; QList activeDecoderPlugins; // full index QVector indexAllList; // filtered index QVector indexFilterList; QMultiMap indexFilterListSorted; // getLogInfoList QList getLogInfoList; // some flags bool pluginsEnabled; bool filtersEnabled; bool multithreaded; bool sortByTimeEnabled; // filter cache path QString filterCache; // run counter int maxRun, currentRun; // performance counter int msecsIndexCounter; int msecsFilterCounter; int msecsDefaultFilterCounter; signals: // the maximum progress value void progressMax(quint64 index); // the current progress value void progress(quint64 index); // progress text change fro different parts void progressText(QString text); // version log message parsed void versionString(QString ecuId, QString version); // control message timezone parsed void timezone(int timezone, unsigned char dst); // control message unregister context void unregisterContext(QString ecuId,QString appId,QString ctId); // index creation finished void finishIndex(); // complete index creation finished void finishFilter(); // complete index creation of default filter finished void finishDefaultFilter(); public slots: void stop(); }; #endif // DLTFILEINDEXER_H dlt-viewer-2.18.0+dfsg/src/dlttableview.cpp0000664000175000017500000000070213001357026020200 0ustar potyrapotyra#include "dlttableview.h" DltTableView::DltTableView(QWidget *parent) : QTableView(parent) { } /*! Paints the table on receipt of the given paint event \a event. */ void DltTableView::paintEvent(QPaintEvent *event) { if(paintMutex.tryLock()) { QTableView::paintEvent(event); paintMutex.unlock(); } } void DltTableView::lock() { paintMutex.lock(); } void DltTableView::unlock() { paintMutex.unlock(); } dlt-viewer-2.18.0+dfsg/src/dltsettingsmanager.cpp0000664000175000017500000000427613001357026021423 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Lassi Marttala #include #include DltSettingsManager *DltSettingsManager::m_instance = NULL; DltSettingsManager* DltSettingsManager::getInstance() { if(!m_instance) m_instance = new DltSettingsManager(); return m_instance; } void DltSettingsManager::close() { if(m_instance) delete m_instance; m_instance = NULL; } DltSettingsManager::DltSettingsManager() { /* check if directory for configuration exists */ QDir dir(QDir::homePath()+"/.dlt/config"); if(!dir.exists()) { /* directory does not exist, make it */ if(!dir.mkpath(dir.absolutePath())) { /* creation of directory fails */ QMessageBox::critical(0, QString("DLT Viewer"), QString("Cannot create directory to store configuration!\n\n")+dir.absolutePath(), QMessageBox::Ok, QMessageBox::Ok); } } settings = new QSettings(dir.absolutePath()+"/config.ini", QSettings::IniFormat); } DltSettingsManager::~DltSettingsManager() { delete settings; } void DltSettingsManager::setValue(const QString &key, const QVariant &value) { settings->setValue(key, value); } QVariant DltSettingsManager::value(const QString &key, const QVariant &defaultValue) const { return settings->value(key, defaultValue); } void DltSettingsManager::clear() { settings->clear(); } QString DltSettingsManager::fileName() const { return settings->fileName(); } dlt-viewer-2.18.0+dfsg/src/dltuiutils.h0000664000175000017500000000042613001357026017364 0ustar potyrapotyra#ifndef DLTUIUTILS_H #define DLTUIUTILS_H #include class DltUiUtils { public: DltUiUtils(); // http://stackoverflow.com/questions/1855884/determine-font-color-based-on-background-color static QColor optimalTextColor(QColor forColor); }; #endif // DLTUIUTILS_H dlt-viewer-2.18.0+dfsg/src/pulsebutton.h0000664000175000017500000000202313001357026017541 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2013 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file pulsebutton.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef PULSEBUTTON_H #define PULSEBUTTON_H #include #include class PulseButton : public QPushButton { Q_OBJECT public: explicit PulseButton(QWidget *parent = 0); signals: public slots: void startPulsing(QColor color); void stopPulsing(); void frameChanged(int frame); void animationStateChanged(QTimeLine::State state); private: QTimeLine animationTimeline; QColor baseColor; QColor targetColor; }; #endif // PULSEBUTTON_H dlt-viewer-2.18.0+dfsg/src/filterdialog.h0000775000175000017500000000732313001357026017635 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file filterdialog.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef FILTERDIALOG_H #define FILTERDIALOG_H #include #include #include #include "project.h" #include "qdlt.h" namespace Ui { class FilterDialog; } class FilterDialog : public QDialog { Q_OBJECT public: explicit FilterDialog(QWidget *parent = 0); ~FilterDialog(); void setType(int value); int getType(); void setName(QString name); QString getName(); void setActive(bool state); bool getEnableActive(); void setEnableRegexp_Context(bool state); bool getEnableRegexp_Context(); void setEnableRegexp_Header(bool state); bool getEnableRegexp_Header(); void setEnableRegexp_Payload(bool state); bool getEnableRegexp_Payload(); void setIgnoreCase_Header(bool state); bool getIgnoreCase_Header(); void setIgnoreCase_Payload(bool state); bool getIgnoreCase_Payload(); void setEcuId(QString id); QString getEcuId(); void setEnableEcuId(bool state); bool getEnableEcuId(); void setApplicationId(QString id); QString getApplicationId(); void setEnableApplicationId(bool state); bool getEnableApplicationId(); void setContextId(QString id); QString getContextId(); void setEnableContextId(bool state); bool getEnableContextId(); void setHeaderText(QString id); QString getHeaderText(); void setEnableHeaderText(bool state); bool getEnableHeaderText(); void setPayloadText(QString id); QString getPayloadText(); void setEnablePayloadText(bool state); bool getEnablePayloadText(); void setFilterColour(QColor color); QColor getFilterColour(); void setLogLevelMax(int value); int getLogLevelMax(); void setEnableLogLevelMax(bool state); bool getEnableLogLevelMax(); void setLogLevelMin(int value); int getLogLevelMin(); void setEnableLogLevelMin(bool state); bool getEnableLogLevelMin(); void setEnableCtrlMsgs(bool state); bool getEnableCtrlMsgs(); void setEnableMarker(bool state); bool getEnableMarker(); private: Ui::FilterDialog *ui; public slots: void on_buttonSelectColor_clicked(); void on_comboBoxType_currentIndexChanged(int index); void validate(); private slots: void on_lineEditApplicationId_textEdited(const QString &arg1); void on_lineEditEcuId_textEdited(const QString &arg1); void on_lineEditContextId_textEdited(const QString &arg1); void on_lineEditHeaderText_textEdited(const QString &arg1); void on_lineEditPayloadText_textEdited(const QString &arg1); void on_comboBoxLogLevelMax_currentIndexChanged(int index); void on_comboBoxLogLevelMin_currentIndexChanged(int index); void on_checkBoxMarker_clicked(); void on_pushButton_c0_clicked(); void on_pushButton_c1_clicked(); void on_pushButton_c2_clicked(); void on_pushButton_c3_clicked(); void on_pushButton_c4_clicked(); void on_pushButton_c5_clicked(); void on_pushButton_c6_clicked(); void on_pushButton_c7_clicked(); void on_pushButton_c8_clicked(); void on_pushButton_c9_clicked(); void on_pushButton_c10_clicked(); void on_buttonGroup_filterType_buttonClicked( int id ); }; #endif // FILTERDIALOG_H dlt-viewer-2.18.0+dfsg/src/injectiondialog.ui0000775000175000017500000000740313001357026020517 0ustar potyrapotyra InjectionDialog 0 0 441 168 Injection Configuration :/icons/png/face-glasses.png:/icons/png/face-glasses.png Text Data Application ID: Data: Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok Context ID: Service ID(>=4096): true true true true Binary Data (Hex, e.g. "DF 12 00 34 56") applicationidComboBox contextidComboBox serviceidComboBox textRadioButton binaryRadioButton dataComboBox buttonBox accepted() InjectionDialog accept() 248 254 157 274 buttonBox rejected() InjectionDialog reject() 316 260 286 274 dlt-viewer-2.18.0+dfsg/src/main.cpp0000775000175000017500000000156513001357026016451 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file main.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include "mainwindow.h" #include "optmanager.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); QStringList arguments = a.arguments(); OptManager *opt = OptManager::getInstance(); opt->parse(&arguments); MainWindow w; w.show(); return a.exec(); } dlt-viewer-2.18.0+dfsg/src/contextdialog.h0000775000175000017500000000200713001357026020026 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file contextdialog.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef CONTEXTDIALOG_H #define CONTEXTDIALOG_H #include namespace Ui { class ContextDialog; } class ContextDialog : public QDialog { Q_OBJECT public: explicit ContextDialog(QString id,QString description,int loglevel, int tracestatus, QWidget *parent = 0); ~ContextDialog(); QString id(); QString description(); int loglevel(); int tracestatus(); int update(); private: Ui::ContextDialog *ui; }; #endif // CONTEXTDIALOG_H dlt-viewer-2.18.0+dfsg/src/CMakeLists.txt0000664000175000017500000000375213001357026017556 0ustar potyrapotyra# Copyright (C) 2016, Jack S. Smith # # This file is part of GENIVI DLT-Viewer project. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # # For further information see http://www.genivi.org/. # # List of changes: # 01.Oct.2016, Jack Smith , Original Author # cmake_minimum_required (VERSION 2.8.12) set (CMAKE_VERBOSE_MAKEFILE FALSE) set (CMAKE_AUTOUIC ON) # cmake 2.8.12 doesn't have AUTOUIC ?? FILE(GLOB ALL_UIS ${CMAKE_CURRENT_SOURCE_DIR}/*.ui) QT5_WRAP_UI( UI_HEADERS ${ALL_UIS} ) QT5_ADD_RESOURCES(UI_RESOURCES_RCC resource.qrc) add_executable (dlt-viewer main.cpp mainwindow.cpp project.cpp ecudialog.cpp applicationdialog.cpp contextdialog.cpp filterdialog.cpp plugindialog.cpp settingsdialog.cpp injectiondialog.cpp searchdialog.cpp multiplecontextdialog.cpp optmanager.cpp dltsettingsmanager.cpp tablemodel.cpp filtertreewidget.cpp dltfileutils.cpp dltfileindexer.cpp dlttableview.cpp dltexporter.cpp fieldnames.cpp dltuiutils.cpp workingdirectory.cpp jumptodialog.cpp searchtablemodel.cpp pulsebutton.cpp plugintreewidget.cpp exporterdialog.cpp dltmsgqueue.cpp dltfileindexerthread.cpp dltfileindexerdefaultfilterthread.cpp resource.qrc ${UI_HEADERS} ${UI_RESOURCES_RCC}) message( STATUS "Qt5Widgets_LIBRARIES ${Qt5Widgets_LIBRARIES}") target_link_libraries(dlt-viewer qdlt qextserialport ${Qt5Core_LIBRARIES} ${Qt5Network_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${Qt5SerialPort_LIBRARIES}) install(TARGETS dlt-viewer DESTINATION deploy) install(DIRECTORY icon png svg DESTINATION deploy PATTERN icon/*.rc EXCLUDE ) dlt-viewer-2.18.0+dfsg/src/workingdirectory.cpp0000664000175000017500000000476213001357026021131 0ustar potyrapotyra#include "workingdirectory.h" #include "dltsettingsmanager.h" // See workingdirectory.h for documentation. WorkingDirectory::WorkingDirectory() { } QString WorkingDirectory::createKeyFor(WorkingDirectoryType type, QString extra) { QString key = "WorkingDirectory/"; switch(type) { case WorkingDirectory::LogFile: key += "LogFile"; break; case WorkingDirectory::ProjectFile: key += "ProjectFile"; break; case WorkingDirectory::FilterFile: key += "FilterFile"; break; case WorkingDirectory::ExportDir: key += "FilterDir"; break; case WorkingDirectory::PluginConfig: key += "Plugin"; key += extra; break; } return key; } // The meat of getters QString WorkingDirectory::getDirectory(WorkingDirectoryType type, QString extra) { /** * By default, empty string is returned. This should be * fine for all platforms: * Windows -- Application directory * Linux -- Home Directory * Mac -- ??? **/ QString ret = ""; QString key = createKeyFor(type, extra); if(type == WorkingDirectory::PluginConfig) { ret = DltSettingsManager::getInstance()->value(key, "plugins/").toString(); } else { ret = DltSettingsManager::getInstance()->value(key, "./").toString(); } return ret; } // The meat of setters void WorkingDirectory::setDirectory(WorkingDirectoryType type, QString dir, QString extra) { QString key = createKeyFor(type, extra); DltSettingsManager::getInstance()->setValue(key, dir); } // Getters QString WorkingDirectory::getDltDirectory() { return getDirectory(LogFile); } QString WorkingDirectory::getDlpDirectory() { return getDirectory(ProjectFile); } QString WorkingDirectory::getDlfDirectory() { return getDirectory(FilterFile); } QString WorkingDirectory::getExportDirectory() { return getDirectory(ExportDir); } QString WorkingDirectory::getPluginDirectory(QString pluginName) { return getDirectory(PluginConfig, pluginName); } // Setters void WorkingDirectory::setDltDirectory(QString dir) { setDirectory(LogFile, dir); } void WorkingDirectory::setDlpDirectory(QString dir) { setDirectory(ProjectFile, dir); } void WorkingDirectory::setDlfDirectory(QString dir) { setDirectory(FilterFile, dir); } void WorkingDirectory::setExportDirectory(QString dir) { setDirectory(ExportDir, dir); } void WorkingDirectory::setPluginDirectory(QString pluginName, QString dir) { setDirectory(PluginConfig, dir, pluginName); } dlt-viewer-2.18.0+dfsg/src/optmanager.cpp0000775000175000017500000001357013001357026017661 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file optmanager.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "optmanager.h" #include // Global static pointer used to ensure a single instance of the class. OptManager* OptManager::instance; OptManager::OptManager() { project = false; log = false; convert = false; convertUTF8 = false; filter = false; plugin = false; silent_mode = false; } OptManager* OptManager::getInstance() { if (!instance) instance = new OptManager; return instance; } OptManager::OptManager(OptManager const&) { } void OptManager::printUsage() { #if (WIN32) qDebug()<<"Usage: dlt_viewer.exe [OPTIONS]"; #else qDebug()<<"Usage: dlt_viewer [OPTIONS]"; #endif qDebug()<<"Options:"; qDebug()<<" -h \t\tPrint usage"; qDebug()<<" -p projectfile \tLoading project file on startup (must end with .dlp)"; qDebug()<<" -l logfile \tLoading logfile on startup (must end with .dlt)"; qDebug()<<" -f filterfile \tLoading filterfile on startup (must end with .dlf)"; qDebug()<<" -c logfile textfile \tConvert logfile file to textfile (logfile must end with .dlt)"; qDebug()<<" -u \rConversion will be done in UTF8 instead of Ascii"; qDebug()<<" -e \"plugin|command|param1|..|param\" \tExecute a plugin command with parameters."; qDebug()<<" -s or --silent \tEnable silent mode without warning message boxes."; } void OptManager::parse(QStringList *opt){ QString str; if(opt->size()==2) { if(opt->at(1).endsWith(".dlp") || opt->at(1).endsWith(".DLP")){ projectFile = QString("%1").arg(opt->at(1)); project = true; return; } if(opt->at(1).endsWith(".dlt") || opt->at(1).endsWith(".DLT")){ logFile = QString("%1").arg(opt->at(1)); log = true; return; } } // 0==Binary 1==First Argument for (int i = 0; i < opt->size(); ++i){ str = opt->at(i); if(str.compare("-h") == 0 || str.compare("--help") == 0){ printUsage(); exit(0); } if(str.compare("-s") == 0 || str.compare("--silent") == 0){ silent_mode = true; } if(str.compare("-p")==0) { QString p1 = opt->value(i+1); if(p1!=0 && (p1.endsWith(".dlp") || p1.endsWith(".DLP"))){ projectFile = QString("%1").arg(opt->at(i+1)); project = true; }else{ qDebug()<<"Error occured during processing of command line option \"-p\""; printUsage(); exit(-1); } } if(str.compare("-l")==0) { QString l1 = opt->value(i+1); if(l1!=0 && (l1.endsWith(".dlt")||l1.endsWith(".DLT"))){ logFile = QString("%1").arg(l1); log = true; }else{ qDebug()<<"Error occured during processing of command line option \"-l\""; printUsage(); exit(-1); } } if(str.compare("-f")==0) { QString f1 = opt->value(i+1); if(f1!=0 && (f1.endsWith(".dlf")||f1.endsWith(".DLF"))){ filterFile = QString("%1").arg(f1); filter = true; }else{ qDebug()<<"Error occured during processing of command line option \"-f\""; printUsage(); exit(-1); } } if(str.compare("-c")==0) { QString c1 = opt->value(i+1); QString c2 = opt->value(i+2); if(c1!=0 && (c1.endsWith(".dlt")||c1.endsWith(".DLT")) && c2!=0){ convertSourceFile = QString("%1").arg(c1); convertDestFile = QString("%1").arg(c2); convert = true; }else{ qDebug()<<"Error occured during processing of command line option \"-c\""; printUsage(); exit(-1); } } if(str.compare("-u")) { convertUTF8 = true; } if(str.compare("-e")==0) { QString c = opt->value(i+1); QStringList args = c.split("|");; if(c != 0 && args.size() > 1) { pluginName = args.at(0); commandName = args.at(1); args.removeAt(0); args.removeAt(0); commandParams = args; plugin = true; }else{ qDebug()<<"Error occured during processing of command line option \"-e\""; printUsage(); exit(-1); } } } } bool OptManager::isProjectFile(){ return project;} bool OptManager::isLogFile(){return log;} bool OptManager::isFilterFile(){return filter;} bool OptManager::isConvert(){return convert;} bool OptManager::isConvertUTF8(){return convertUTF8;} bool OptManager::isPlugin(){return plugin;} bool OptManager::issilentMode(){return silent_mode;} QString OptManager::getProjectFile(){return projectFile;} QString OptManager::getLogFile(){return logFile;} QString OptManager::getFilterFile(){return filterFile;} QString OptManager::getConvertSourceFile(){return convertSourceFile;} QString OptManager::getConvertDestFile(){return convertDestFile;} QString OptManager::getPluginName(){return pluginName;} QString OptManager::getCommandName(){return commandName;} QStringList OptManager::getCommandParams(){return commandParams;} dlt-viewer-2.18.0+dfsg/src/applicationdialog.h0000775000175000017500000000171713001357026020654 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file applicationdialog.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef APPLICATIONDIALOG_H #define APPLICATIONDIALOG_H #include namespace Ui { class ApplicationDialog; } class ApplicationDialog : public QDialog { Q_OBJECT public: explicit ApplicationDialog(QString id,QString description,QWidget *parent = 0); ~ApplicationDialog(); QString id(); QString description(); private: Ui::ApplicationDialog *ui; }; #endif // APPLICATIONDIALOG_H dlt-viewer-2.18.0+dfsg/src/fieldnames.h0000664000175000017500000000156713001357026017300 0ustar potyrapotyra#ifndef FIELDNAMES_H #define FIELDNAMES_H #include "settingsdialog.h" #include #include class FieldNames : public QObject { Q_OBJECT public: explicit FieldNames(QObject *parent = 0); /* Order of columns */ enum Fields { Index, Time, TimeStamp, Counter, EcuId, AppId, ContextId, SessionId, Type, Subtype, Mode, ArgCount, Payload, Arg0 //Arg0 must always be last field or tablemodels have to be changed as well }; /* Get name for one column/field. * Settings needed for App and Context Description change. * Pass null for settings to get ID only always. * Use case: Exports */ static QString getName(Fields cn, SettingsDialog *settings = NULL); signals: public slots: }; #endif // FIELDNAMES_H dlt-viewer-2.18.0+dfsg/src/fieldnames.cpp0000664000175000017500000000321613001357026017624 0ustar potyrapotyra#include "dltsettingsmanager.h" #include "fieldnames.h" FieldNames::FieldNames(QObject *parent) : QObject(parent) { } QString FieldNames::getName(Fields cn, SettingsDialog *settings) { switch(cn) { case Index: return QString("Index"); case Time: return QString("Time"); case TimeStamp: return QString("Timestamp"); case Counter: return QString("Count"); case EcuId: return QString("Ecuid"); case AppId: if(settings == NULL) { return QString("Apid"); } switch(settings->showApIdDesc){ case 0: return QString("Apid"); case 1: return QString("Apid Desc"); } case ContextId: if(settings == NULL) { return QString("Ctid"); } switch(settings->showCtIdDesc){ case 0: return QString("Ctid"); case 1: return QString("Ctid Desc"); } case SessionId: if(settings == NULL) { return QString("SessionId"); } switch(settings->showSessionName){ case 0: return QString("SessionId"); case 1: return QString("SessionName"); } case Type: return QString("Type"); case Subtype: return QString("Subtype"); case Mode: return QString("Mode"); case ArgCount: return QString("#Args"); case Payload: return QString("Payload"); default: if (cn>=Arg0) { return QString("Arg%1").arg(cn-Arg0); } else return QString(); } } dlt-viewer-2.18.0+dfsg/src/dltexporter.h0000664000175000017500000000463413001357026017543 0ustar potyrapotyra#ifndef DLTEXPORTER_H #define DLTEXPORTER_H #include #include #include #include #include "qdlt.h" class DltExporter : public QObject { Q_OBJECT public: typedef enum { FormatDlt,FormatAscii,FormatCsv,FormatClipboard,FormatDltDecoded,FormatUTF8} DltExportFormat; typedef enum { SelectionAll,SelectionFiltered,SelectionSelected } DltExportSelection; private: /* Add double quotes to a value. * Also escape any exiting double quotes with another double quote. * \param arg string to escape * \return QString which is escaped version of arg */ QString escapeCSVValue(QString arg); /* Write the first line of CSV. This is just the names of the fields * \param file outputfile to write to * \return True if writing was succesfull, false if error occured */ bool writeCSVHeader(QFile *file); /* Write the message out to an open file * \param index True index to QDltFile of the message * \param to File to write to * \param msg msg to get the data from */ void writeCSVLine(int index, QFile *to, QDltMsg msg); bool start(); bool finish(); bool getMsg(int num, QDltMsg &msg, QByteArray &buf); bool exportMsg(int num, QDltMsg &msg,QByteArray &buf); public: /* Default QT constructor. * Please pass a window as a parameter to parent dialogs correctly. */ explicit DltExporter(QObject *parent = 0); /* Export some messages from QDltFile to a CSV file. * \param from QDltFile to pull messages from * \param to Regular file to export to * \param pluginManager The treewidget representing plugins. Needed to run decoders. * \param exportFormat * \param exportSelection * \param selection Limit export to these messages. Leave to NULL to export everything, */ void exportMessages(QDltFile *from, QFile *to, QDltPluginManager *pluginManager, DltExporter::DltExportFormat exportFormat, DltExporter::DltExportSelection exportSelection, QModelIndexList *selection = 0); signals: public slots: private: int size; QDltFile *from; QFile *to; QString clipboardString; QDltPluginManager *pluginManager; QModelIndexList *selection; QList selectedRows; DltExporter::DltExportFormat exportFormat; DltExporter::DltExportSelection exportSelection; }; #endif // DLTEXPORTER_H dlt-viewer-2.18.0+dfsg/src/filtertreewidget.h0000775000175000017500000000061213001357026020533 0ustar potyrapotyra#ifndef FILTERTREEWIDGET_H #define FILTERTREEWIDGET_H #include #include class FilterTreeWidget : public QTreeWidget { Q_OBJECT public: explicit FilterTreeWidget(QObject *parent = 0); void dragMoveEvent(QDragMoveEvent *event); void dropEvent(QDropEvent *event); signals: void filterItemDropped(); public slots: }; #endif // FILTERTREEWIDGET_H dlt-viewer-2.18.0+dfsg/src/multiplecontextdialog.h0000664000175000017500000000200213001357026021572 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file multiplecontextdialog.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef MULTIPLECONTEXTDIALOG_H #define MULTIPLECONTEXTDIALOG_H #include namespace Ui { class MultipleContextDialog; } class MultipleContextDialog : public QDialog { Q_OBJECT public: explicit MultipleContextDialog(int loglevel, int tracestatus, QWidget *parent = 0); ~MultipleContextDialog(); int loglevel(); int tracestatus(); int update(); private: Ui::MultipleContextDialog *ui; }; #endif // MULTIPLECONTEXTDIALOG_H dlt-viewer-2.18.0+dfsg/src/doxygen.cfg0000775000175000017500000021006213001357026017151 0ustar potyrapotyra# Doxyfile 1.7.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "DLT Viewer Src" # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 2.8.0 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = ./doc/src # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = "The $name class" \ "The $name widget" \ "The $name file" \ is \ provides \ specifies \ contains \ represents \ a \ an \ the # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = YES # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this # tag. The format is ext=language, where ext is a file extension, and language # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = NO # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penality. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will rougly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = YES # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = YES # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = NO # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen # will list include files with double quotes in the documentation # rather than with sharp brackets. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen # will sort the (brief and detailed) documentation of class members so that # constructors and destructors are listed first. If set to NO (the default) # the constructors will appear in the respective orders defined by # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. The create the layout file # that represents doxygen's defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = ./src \ include/ # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = *.c \ *.cc \ *.cxx \ *.cpp \ *.c++ \ *.d \ *.java \ *.ii \ *.ixx \ *.ipp \ *.i++ \ *.inl \ *.h \ *.hh \ *.hxx \ *.hpp \ *.h++ # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = doc \ examples \ .git # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = * # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = doc/ # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. # Doxygen will adjust the colors in the stylesheet and background images # according to this color. Hue is specified as an angle on a colorwheel, # see http://en.wikipedia.org/wiki/Hue for more information. # For instance the value 0 represents red, 60 is yellow, 120 is green, # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below # 100 gradually make the output lighter, whereas values above 100 make # the output darker. The value divided by 100 is the actual gamma applied, # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting # this to NO can help when comparing the output of multiple runs. HTML_TIMESTAMP = YES # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = YES # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated # that can be used as input for Qt's qhelpgenerator to generate a # Qt Compressed Help (.qch) of the generated HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to # add. For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see # # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's # filter section matches. # # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files # will be generated, which together with the HTML files, form an Eclipse help # plugin. To install this plugin and make it available under the help contents # menu in Eclipse, the contents of the directory containing the HTML and XML # files needs to be copied into the plugins directory of eclipse. The name of # the directory within the plugins directory should be the same as # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have # this name. ECLIPSE_DOC_ID = org.doxygen.Project # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open # links to external symbols imported via tag files in a separate window. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are # not supported properly for IE 6.0, but are supported on all modern browsers. # Note that when changing this option you need to delete any form_*.png files # in the HTML output before the changes have effect. FORMULA_TRANSPARENT = YES # When the SEARCHENGINE tag is enabled doxygen will generate a search box # for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets # (GENERATE_DOCSET) there is already a search function so this one should # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. SEARCHENGINE = NO # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client # using Javascript. Doxygen will generate the search PHP script and index # file to put on the web server. The advantage of the server # based approach is that it scales better to large projects and allows # full text search. The disadvances is that it is more difficult to setup # and does not have live searching capabilities. SERVER_BASED_SEARCH = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. # Note that when enabling USE_PDFLATEX this option is only used for # generating bitmaps for formulas in the HTML output, but not in the # Makefile that is written to the output directory. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include # source code with syntax highlighting in the LaTeX output. # Note that which sources are shown also depends on other settings # such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = YES # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = NO #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is # allowed to run in parallel. When set to 0 (the default) doxygen will # base this on the number of processors available in the system. You can set it # explicitly to a value larger than 0 to get control over the balance # between CPU load and processing speed. DOT_NUM_THREADS = 0 # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = YES # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = YES # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = "C:/Program Files/Graphviz2.26.3/bin" # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES dlt-viewer-2.18.0+dfsg/src/plugindialog.h0000775000175000017500000000242113001357026017640 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file plugindialog.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef PLUGINDIALOG_H #define PLUGINDIALOG_H #include #include "workingdirectory.h" namespace Ui { class PluginDialog; } class PluginDialog : public QDialog { Q_OBJECT public: explicit PluginDialog(QWidget *parent = 0); ~PluginDialog(); WorkingDirectory workingDirectory; void setName(QString name); void setPluginVersion(QString version); void setPluginInterfaceVersion(QString version); void setMode(int mode); void removeMode(int mode); void setType(int type); void setFilename(QString filename); int getMode(); int getType(); QString getFilename(); private: Ui::PluginDialog *ui; private slots: void on_toolButton_clicked(); }; #endif // PLUGINDIALOG_H dlt-viewer-2.18.0+dfsg/src/dltfileutils.cpp0000664000175000017500000000416613001357026020226 0ustar potyrapotyra#include "dltfileutils.h" #include #include #include #include DltFileUtils::DltFileUtils() { } QString DltFileUtils::createTempFile(QDir path) { QString fn = QDateTime::currentDateTime().toString("yyyy-MM-dd_hh-mm-ss") .append("_dlt-viewer-tmpfile.dlt"); QFile file(path.absolutePath().append("/").append(fn)); if(file.exists()) { QMessageBox::critical(0, QString("DLT Viewer"), QString("Temporary file already exists\n%1") .arg(file.fileName())); return ""; } if(!file.open(QIODevice::ReadWrite)) { QMessageBox::critical(0, QString("DLT Viewer"), QString("Can not open temporary file!\n%1") .arg(file.fileName())); return ""; } file.close(); return file.fileName(); } QDir DltFileUtils::getTempPath(SettingsDialog *settings) { QDir temp_path; bool dir_ok = true; if(settings->tempUseSystem) { QString temp_path_string = QStandardPaths::writableLocation(QStandardPaths::CacheLocation); temp_path = QDir(temp_path_string); if (!temp_path.exists()) { if(!temp_path.mkpath(temp_path_string)) { QMessageBox::critical(0, QString("DLT Viewer"), QString("System temporary directory does not exist!\n%1") .arg(temp_path.absolutePath())); dir_ok = false; } } } else if(settings->tempUseOwn) { temp_path = QDir(settings->tempOwnPath); if(!temp_path.exists()) { if(!temp_path.mkpath(".")) { QMessageBox::critical(0, QString("DLT Viewer"), QString("Could not create temporary path!\n%1") .arg(temp_path.absolutePath())); dir_ok = false; } } } if(dir_ok) { return temp_path; } // Fallback, use current directory. return QDir(""); } dlt-viewer-2.18.0+dfsg/src/filterdialog.cpp0000775000175000017500000003375713001357026020202 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file filterdialog.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "filterdialog.h" #include "ui_filterdialog.h" #include #include #include "dltuiutils.h" FilterDialog::FilterDialog(QWidget *parent) : QDialog(parent), ui(new Ui::FilterDialog) { ui->setupUi(this); connect(ui->buttonSelectColor, SIGNAL(pressed()), this, SLOT(on_buttonSelectColor_clicked())); ui->pushButton_c0->setStyleSheet ("QPushButton {background-color: rgb(255, 0 , 0 );} QPushButton:disabled {background-color: rgb(255, 255, 255);}"); ui->pushButton_c1->setStyleSheet ("QPushButton {background-color: rgb(255, 255, 0 );} QPushButton:disabled {background-color: rgb(255, 255, 255);}"); ui->pushButton_c2->setStyleSheet ("QPushButton {background-color: rgb( 0, 255, 0 );} QPushButton:disabled {background-color: rgb(255, 255, 255);}"); ui->pushButton_c3->setStyleSheet ("QPushButton {background-color: rgb(000, 255, 255);} QPushButton:disabled {background-color: rgb(255, 255, 255);}"); ui->pushButton_c4->setStyleSheet ("QPushButton {background-color: rgb(000, 000, 255);} QPushButton:disabled {background-color: rgb(255, 255, 255);}"); ui->pushButton_c5->setStyleSheet ("QPushButton {background-color: rgb(255, 000, 255);} QPushButton:disabled {background-color: rgb(255, 255, 255);}"); ui->pushButton_c6->setStyleSheet ("QPushButton {background-color: rgb(255, 150, 150);} QPushButton:disabled {background-color: rgb(255, 255, 255);}"); ui->pushButton_c7->setStyleSheet ("QPushButton {background-color: rgb(255, 255, 192);} QPushButton:disabled {background-color: rgb(255, 255, 255);}"); ui->pushButton_c8->setStyleSheet ("QPushButton {background-color: rgb(150, 255, 150);} QPushButton:disabled {background-color: rgb(255, 255, 255);}"); ui->pushButton_c9->setStyleSheet ("QPushButton {background-color: rgb(150, 150 ,255);} QPushButton:disabled {background-color: rgb(255, 255, 255);}"); ui->pushButton_c10->setStyleSheet("QPushButton {background-color: rgb(255, 150 ,255);} QPushButton:disabled {background-color: rgb(255, 255, 255);}"); ui->comboBoxType->setVisible(false); } FilterDialog::~FilterDialog() { delete ui; } void FilterDialog::setType(int value) { ui->comboBoxType->setCurrentIndex(value); /* update ui */ on_checkBoxMarker_clicked(); } int FilterDialog::getType() { return ui->comboBoxType->currentIndex(); } void FilterDialog::setName(QString name) { ui->lineEditName->setText(name); } QString FilterDialog::getName() { return ui->lineEditName->text(); } void FilterDialog::setEnableRegexp_Context(bool state) { ui->checkBoxRegexp_Context->setChecked(state?Qt::Checked:Qt::Unchecked); } bool FilterDialog::getEnableRegexp_Context() { return (ui->checkBoxRegexp_Context->checkState() == Qt::Checked); } void FilterDialog::setEnableRegexp_Header(bool state) { ui->checkBoxRegexp_Header->setChecked(state?Qt::Checked:Qt::Unchecked); } bool FilterDialog::getEnableRegexp_Header() { return (ui->checkBoxRegexp_Header->checkState() == Qt::Checked); } void FilterDialog::setEnableRegexp_Payload(bool state) { ui->checkBoxRegexp_Payload->setChecked(state?Qt::Checked:Qt::Unchecked); } bool FilterDialog::getEnableRegexp_Payload() { return (ui->checkBoxRegexp_Payload->checkState() == Qt::Checked); } void FilterDialog::setIgnoreCase_Header(bool state) { ui->checkBox_IgnoreCase_Header->setChecked(state?Qt::Checked:Qt::Unchecked); } bool FilterDialog::getIgnoreCase_Header() { return (ui->checkBox_IgnoreCase_Header->checkState() == Qt::Checked); } void FilterDialog::setIgnoreCase_Payload(bool state) { ui->checkBox_IgnoreCase_Payload->setChecked(state?Qt::Checked:Qt::Unchecked); } bool FilterDialog::getIgnoreCase_Payload() { return (ui->checkBox_IgnoreCase_Payload->checkState() == Qt::Checked); } void FilterDialog::setEcuId(QString id) { ui->lineEditEcuId->setText(id); } QString FilterDialog::getEcuId() { return ui->lineEditEcuId->text(); } void FilterDialog::setEnableEcuId(bool state) { ui->checkBoxEcuId->setCheckState(state?Qt::Checked:Qt::Unchecked); } bool FilterDialog::getEnableEcuId() { return (ui->checkBoxEcuId->checkState() == Qt::Checked); } void FilterDialog::setApplicationId(QString id) { ui->lineEditApplicationId->setText(id); } QString FilterDialog::getApplicationId() { return ui->lineEditApplicationId->text(); } void FilterDialog::setEnableApplicationId(bool state) { ui->checkBoxApplicationId->setCheckState(state?Qt::Checked:Qt::Unchecked); } bool FilterDialog::getEnableApplicationId() { return (ui->checkBoxApplicationId->checkState() == Qt::Checked); } void FilterDialog::setContextId(QString id) { ui->lineEditContextId->setText(id); } QString FilterDialog::getContextId() { return ui->lineEditContextId->text(); } void FilterDialog::setEnableContextId(bool state) { ui->checkBoxContextId->setCheckState(state?Qt::Checked:Qt::Unchecked); } bool FilterDialog::getEnableContextId() { return (ui->checkBoxContextId->checkState() == Qt::Checked); } void FilterDialog::setHeaderText(QString id) { ui->lineEditHeaderText->setText(id); } QString FilterDialog::getHeaderText() { return ui->lineEditHeaderText->text(); } void FilterDialog::setEnableHeaderText(bool state) { ui->checkBoxHeaderText->setCheckState(state?Qt::Checked:Qt::Unchecked); } bool FilterDialog::getEnableHeaderText() { return (ui->checkBoxHeaderText->checkState() == Qt::Checked); } void FilterDialog::setPayloadText(QString id) { ui->lineEditPayloadText->setText(id); } QString FilterDialog::getPayloadText() { return ui->lineEditPayloadText->text(); } void FilterDialog::setEnablePayloadText(bool state) { ui->checkBoxPayloadText->setCheckState(state?Qt::Checked:Qt::Unchecked); } bool FilterDialog::getEnablePayloadText() { return (ui->checkBoxPayloadText->checkState() == Qt::Checked); } void FilterDialog::setFilterColour(QColor color) { QPalette palette = ui->labelSelectedColor->palette(); palette.setColor(QPalette::Active,this->backgroundRole(),color); palette.setColor(QPalette::Inactive,this->backgroundRole(),QColor(255,255,255,255)); palette.setColor(QPalette::Foreground,DltUiUtils::optimalTextColor(color)); ui->labelSelectedColor->setPalette(palette); } QColor FilterDialog::getFilterColour() { return ui->labelSelectedColor->palette().background().color(); } void FilterDialog::setLogLevelMax(int value) { ui->comboBoxLogLevelMax->setCurrentIndex(value); } int FilterDialog::getLogLevelMax() { return ui->comboBoxLogLevelMax->currentIndex(); } void FilterDialog::setEnableLogLevelMax(bool state) { ui->checkBoxLogLevelMax->setCheckState(state?Qt::Checked:Qt::Unchecked); } bool FilterDialog::getEnableLogLevelMax() { return (ui->checkBoxLogLevelMax->checkState() == Qt::Checked); } void FilterDialog::setLogLevelMin(int value) { ui->comboBoxLogLevelMin->setCurrentIndex(value); } int FilterDialog::getLogLevelMin() { return ui->comboBoxLogLevelMin->currentIndex(); } void FilterDialog::setEnableLogLevelMin(bool state) { ui->checkBoxLogLevelMin->setCheckState(state?Qt::Checked:Qt::Unchecked); } bool FilterDialog::getEnableLogLevelMin() { return (ui->checkBoxLogLevelMin->checkState() == Qt::Checked); } void FilterDialog::setEnableCtrlMsgs(bool state) { ui->checkBoxCtrlMsgs->setCheckState(state?Qt::Checked:Qt::Unchecked); } bool FilterDialog::getEnableCtrlMsgs() { return (ui->checkBoxCtrlMsgs->checkState() == Qt::Checked); } void FilterDialog::setActive(bool state){ ui->checkBoxActive->setCheckState(state?Qt::Checked:Qt::Unchecked); } bool FilterDialog::getEnableActive(){ return (ui->checkBoxActive->checkState() == Qt::Checked); } void FilterDialog::setEnableMarker(bool state){ ui->groupBox_marker->setChecked(state?Qt::Checked:Qt::Unchecked); /* update ui */ } bool FilterDialog::getEnableMarker(){ return (ui->groupBox_marker->isCheckable()&&ui->groupBox_marker->isChecked()); } void FilterDialog::on_buttonSelectColor_clicked() { QColor selectedBackgroundColor = QColorDialog::getColor(); if(selectedBackgroundColor.isValid()) { this->setFilterColour(selectedBackgroundColor); } } void FilterDialog::on_comboBoxType_currentIndexChanged(int index){ Q_UNUSED(index); on_checkBoxMarker_clicked(); } void FilterDialog::on_checkBoxMarker_clicked() { int index = ui->comboBoxType->currentIndex(); switch (index) { case 0: ui->pushButton_Positive->setChecked(true);break; case 1: ui->pushButton_Negative->setChecked(true);break; case 2: ui->pushButton_Marker->setChecked(true);break; } on_buttonGroup_filterType_buttonClicked( -1 ); } void FilterDialog::on_lineEditApplicationId_textEdited(const QString &) { if (ui->lineEditApplicationId->text().length()) ui->checkBoxApplicationId->setCheckState(Qt::Checked); else ui->checkBoxApplicationId->setCheckState(Qt::Unchecked); } void FilterDialog::on_lineEditEcuId_textEdited(const QString &) { if (ui->lineEditEcuId->text().length()) ui->checkBoxEcuId->setCheckState(Qt::Checked); else ui->checkBoxEcuId->setCheckState(Qt::Unchecked); } void FilterDialog::on_lineEditContextId_textEdited(const QString &) { if (ui->lineEditContextId->text().length()) ui->checkBoxContextId->setCheckState(Qt::Checked); else ui->checkBoxContextId->setCheckState(Qt::Unchecked); } void FilterDialog::on_lineEditHeaderText_textEdited(const QString &) { if (ui->lineEditHeaderText->text().length()) ui->checkBoxHeaderText->setCheckState(Qt::Checked); else ui->checkBoxHeaderText->setCheckState(Qt::Unchecked); } void FilterDialog::on_lineEditPayloadText_textEdited(const QString &) { if (ui->lineEditPayloadText->text().length()) ui->checkBoxPayloadText->setCheckState(Qt::Checked); else ui->checkBoxPayloadText->setCheckState(Qt::Unchecked); } void FilterDialog::on_comboBoxLogLevelMax_currentIndexChanged(int ) { ui->checkBoxLogLevelMax->setCheckState(Qt::Checked); } void FilterDialog::on_comboBoxLogLevelMin_currentIndexChanged(int ) { ui->checkBoxLogLevelMin->setCheckState(Qt::Checked); } void FilterDialog::validate() { QString error = "Could not parse %1 regular expression. \n"; error += "Please correct the error or remove the regular expression.\n"; error += "Expression: '%2' \n"; error += "Error: %3 "; if(!(getEnableRegexp_Context()||getEnableRegexp_Header()||getEnableRegexp_Payload())) { emit accept(); return; } QRegExp rx; rx.setPattern(getPayloadText()); if(!rx.isValid()) { QMessageBox::warning(this, "Warning", error.arg("PAYLOAD").arg(rx.pattern()).arg(rx.errorString())); return; } rx.setPattern(getHeaderText()); if(!rx.isValid()) { QMessageBox::warning(this, "Warning", error.arg("HEADER").arg(rx.pattern()).arg(rx.errorString())); return; } rx.setPattern(getContextId()); if(!rx.isValid()) { QMessageBox::warning(this, "Warning", error.arg("CONTEXTID").arg(rx.pattern()).arg(rx.errorString())); return; } emit accept(); } void FilterDialog::on_pushButton_c0_clicked() { setFilterColour(((QPushButton *)sender())->palette().background().color());} void FilterDialog::on_pushButton_c1_clicked() { setFilterColour(((QPushButton *)sender())->palette().background().color());} void FilterDialog::on_pushButton_c2_clicked() { setFilterColour(((QPushButton *)sender())->palette().background().color());} void FilterDialog::on_pushButton_c3_clicked() { setFilterColour(((QPushButton *)sender())->palette().background().color());} void FilterDialog::on_pushButton_c4_clicked() { setFilterColour(((QPushButton *)sender())->palette().background().color());} void FilterDialog::on_pushButton_c5_clicked() { setFilterColour(((QPushButton *)sender())->palette().background().color());} void FilterDialog::on_pushButton_c6_clicked() { setFilterColour(((QPushButton *)sender())->palette().background().color());} void FilterDialog::on_pushButton_c7_clicked() { setFilterColour(((QPushButton *)sender())->palette().background().color());} void FilterDialog::on_pushButton_c8_clicked() { setFilterColour(((QPushButton *)sender())->palette().background().color());} void FilterDialog::on_pushButton_c9_clicked() { setFilterColour(((QPushButton *)sender())->palette().background().color());} void FilterDialog::on_pushButton_c10_clicked(){ setFilterColour(((QPushButton *)sender())->palette().background().color());} void FilterDialog::on_buttonGroup_filterType_buttonClicked( int id ) { Q_UNUSED(id) int i = -1; if (ui->pushButton_Marker->isChecked()) { ui->groupBox_marker->setEnabled(true); i = ui->comboBoxType->findText("marker"); if (i != -1) ui->comboBoxType->setCurrentIndex(i); ui->groupBox_marker->setChecked(true); ui->groupBox_marker->setCheckable(false); } else { ui->groupBox_marker->setCheckable(true); } if ( ui->pushButton_Negative->isChecked()) { ui->groupBox_marker->setEnabled(false); i = ui->comboBoxType->findText("negative"); if (i != -1) ui->comboBoxType->setCurrentIndex(i); ui->groupBox_marker->setChecked(false); ui->groupBox_marker->setCheckable(false); } if (ui->pushButton_Positive->isChecked()) { ui->groupBox_marker->setEnabled(true); i = ui->comboBoxType->findText("positive"); if (i != -1) ui->comboBoxType->setCurrentIndex(i); ui->groupBox_marker->setCheckable(true); ui->groupBox_marker->setChecked(false); } } dlt-viewer-2.18.0+dfsg/src/resource.qrc0000775000175000017500000000331513001357026017352 0ustar potyrapotyra png/document-new.png png/document-open.png png/document-save-as.png png/edit-clear.png png/preferences-desktop.png png/network-transmit-receive.png png/network-offline.png png/go-bottom.png png/system-search.png png/go-previous.png png/go-next.png png/edit-cut.png png/document-save-as2.png png/document-save-as3.png png/weather-storm.png png/weather-clear.png png/weather-overcast.png png/action-regexp.png png/action-searchlist.png png/bookmark-new.png png/view-filter_32_off.png png/view-filter_32_on.png png/x-kde-nsplugin-generated.png png/x-kde-nsplugin-generated_gray.png png/document-open-recent-2.png png/document-open-recent-2_gray.png png/network-transmit-receive_connected.png png/network-transmit-receive_disconnected.png png/face-glasses.png png/bookmark-new.png png/colorize-2.png png/colorize-2_g.png png/dialog-error-3.png png/dialog-error-3_g.png png/view-filter_32_on_g.png dlt-viewer-2.18.0+dfsg/src/dltfileutils.h0000664000175000017500000000044613001357026017670 0ustar potyrapotyra#ifndef DLTFILEUTILS_H #define DLTFILEUTILS_H #include #include "settingsdialog.h" class DltFileUtils : QObject { Q_OBJECT public: DltFileUtils(); static QString createTempFile(QDir path); static QDir getTempPath(SettingsDialog *settings); }; #endif // DLTFILEUTILS_H dlt-viewer-2.18.0+dfsg/src/src.pro0000775000175000017500000001073113001357026016325 0ustar potyrapotyra# Helpers to detect QT version QT_VERSION = $$[QT_VERSION] QT_VERSION = $$split(QT_VERSION, ".") QT_VER_MAJ = $$member(QT_VERSION, 0) QT_VER_MIN = $$member(QT_VERSION, 1) *-gcc* { QMAKE_CFLAGS += -std=gnu99 QMAKE_CFLAGS += -Wall QMAKE_CFLAGS += -Wextra #QMAKE_CFLAGS += -pedantic } *-g++* { QMAKE_CXXFLAGS += -std=gnu++0x QMAKE_CXXFLAGS += -Wall QMAKE_CXXFLAGS += -Wextra #QMAKE_CXXFLAGS += -pedantic } # Uncomment to add debug symbols to Release build #QMAKE_CXXFLAGS_RELEASE += -g #QMAKE_CFLAGS_RELEASE += -g #QMAKE_LFLAGS_RELEASE = # Compile time defines unix:DEFINES += BYTE_ORDER=LITTLE_ENDIAN _TTY_POSIX_ QT_VIEWER win32:DEFINES += BYTE_ORDER=LITTLE_ENDIAN QT_VIEWER # Local includes INCLUDEPATH = . ../qextserialport/src ../qdlt # Icon for application (The smiley face) icons.path = $$PREFIX/usr/share/pixmaps icons.files = icon/face-glasses.ico INSTALLS += icons # desktop file to show the application in start menu on Linux # This should work on both KDE and Gnome desktop.path = $$PREFIX/usr/share/applications desktop.files = dlt_viewer.desktop INSTALLS += desktop # Unix header exports headers.path = $$PREFIX/usr/include/dlt-viewer headers.files = plugininterface.h INSTALLS += headers # Unix executable install path target.path = $$PREFIX/usr/bin INSTALLS += target # Building an app bundle for macx is not so easy, hence disable it # for development build macx:CONFIG -= app_bundle # Library definitions for debug and release builds CONFIG(debug, debug|release) { DESTDIR = ../debug QMAKE_LIBDIR += ../debug LIBS += -lqextserialportd -lqdltd } else { DESTDIR = ../release QMAKE_LIBDIR += ../release LIBS += -lqextserialport -lqdlt QMAKE_RPATHDIR += ../build/release } # QT Features to be linked in QT += core gui network # Detect QT5 and comply to new Widgets hierarchy greaterThan(QT_VER_MAJ, 4) { QT += widgets INCLUDEPATH += QtWidgets DEFINES += QT5 } # Put intermediate files in the build directory MOC_DIR = build/moc OBJECTS_DIR = build/obj RCC_DIR = build/rcc UI_DIR = build/ui # Executable name TARGET = dlt_viewer # This is an application TEMPLATE = app # Compile these sources SOURCES += main.cpp \ mainwindow.cpp \ project.cpp \ ecudialog.cpp \ applicationdialog.cpp \ contextdialog.cpp \ filterdialog.cpp \ plugindialog.cpp \ settingsdialog.cpp \ injectiondialog.cpp \ searchdialog.cpp \ multiplecontextdialog.cpp \ optmanager.cpp \ dltsettingsmanager.cpp \ tablemodel.cpp \ filtertreewidget.cpp \ dltfileutils.cpp \ dltfileindexer.cpp \ dlttableview.cpp \ dltexporter.cpp \ fieldnames.cpp \ dltuiutils.cpp \ workingdirectory.cpp \ jumptodialog.cpp\ searchtablemodel.cpp \ pulsebutton.cpp \ plugintreewidget.cpp \ exporterdialog.cpp \ dltmsgqueue.cpp \ dltfileindexerthread.cpp \ dltfileindexerdefaultfilterthread.cpp # Show these headers in the project HEADERS += mainwindow.h \ project.h \ ecudialog.h \ applicationdialog.h \ contextdialog.h \ filterdialog.h \ plugindialog.h \ settingsdialog.h \ injectiondialog.h \ searchdialog.h \ version.h \ multiplecontextdialog.h \ optmanager.h \ dltsettingsmanager.h \ tablemodel.h \ filtertreewidget.h \ dltfileutils.h \ dltfileindexer.h \ dlttableview.h \ dltexporter.h \ fieldnames.h \ workingdirectory.h \ dltuiutils.h \ jumptodialog.h \ pulsebutton.h \ searchtablemodel.h \ plugintreewidget.h \ exporterdialog.h \ dltmsgqueue.h \ dltfileindexerthread.h \ dltfileindexerdefaultfilterthread.h # Compile these UI files FORMS += mainwindow.ui \ ecudialog.ui \ applicationdialog.ui \ contextdialog.ui \ filterdialog.ui \ plugindialog.ui \ settingsdialog.ui \ injectiondialog.ui \ searchdialog.ui \ multiplecontextdialog.ui \ jumptodialog.ui \ exporterdialog.ui # Related files OTHER_FILES += ../ReleaseNotes_Viewer.txt \ ../README.txt \ ../MPL.txt \ ../LICENSE.txt \ ../INSTALL.txt \ ../build_windows_installer.bat \ ../build_sdk_windows.bat \ ../build_sdk_msvc_windows64.bat \ ../build_sdk_msvc_windows.bat \ ../installer/UninstallLog.nsh \ ../installer/dlt_installer.nsi \ ../build_sdk_windows_qt5.bat \ ../AUTHORS # This contains all the button graphics for toolbar RESOURCES += resource.qrc # Instructions to compile the icon. RC_FILE = icon/dlt_viewer.rc dlt-viewer-2.18.0+dfsg/src/workingdirectory.h0000664000175000017500000000442613001357026020573 0ustar potyrapotyra#ifndef WORKINGDIRERCTORY_H #define WORKINGDIRERCTORY_H #include #include /*! * \brief The WorkingDirerctory class * This is a convenience class to access the different working directories * stored in the config.ini of the viewer. The config.ini is accessed through * DltSettingsManager. *\sa DltSettingsManager */ class WorkingDirectory : public QObject { Q_OBJECT public: enum WorkingDirectoryType { LogFile, ProjectFile, FilterFile, ExportDir, PluginConfig }; public: WorkingDirectory(); /*! * \brief getDirectory * Get working directory for specific type of operation. * \param type Type of operation defined in WorkingDirectoryType * \param extra Optional parameter. Used for getting settings for a plugin * \return Current working directory for the operation * \sa WorkingDirectoryType */ QString getDirectory(WorkingDirectoryType type, QString extra = QString()); //! Get working directory for DLT files QString getDltDirectory(); //! Get working directory for Project files QString getDlpDirectory(); //! Get working directory for Filter files QString getDlfDirectory(); //! Get working directory for export files QString getExportDirectory(); //! Get working directory for plugin configuration QString getPluginDirectory(QString pluginName); /*! * \brief setDirectory * Set directory for specific type of operation. * \param type The type defined by WorkingDirectoryType. * \param extra Possible plugin name. * \sa WorkingDirectoryType */ void setDirectory(WorkingDirectoryType type, QString dir, QString extra = QString()); //! Set working directory for DLT files void setDltDirectory(QString dir); //! Set working directory for Project files void setDlpDirectory(QString dir); //! Set working directory for Filter files void setDlfDirectory(QString dir); //! Set working directory for export files void setExportDirectory(QString dir); //! Set working directory for plugin configuration void setPluginDirectory(QString pluginName, QString dir); // Helpers private: QString createKeyFor(WorkingDirectoryType type, QString extra); }; #endif // WORKINGDIRERCTORY_H dlt-viewer-2.18.0+dfsg/src/jumptodialog.h0000664000175000017500000000073213001357026017660 0ustar potyrapotyra#ifndef JUMPTODIALOG_H #define JUMPTODIALOG_H #include namespace Ui { class JumpToDialog; } class JumpToDialog : public QDialog { Q_OBJECT public: explicit JumpToDialog(QWidget *parent = 0); ~JumpToDialog(); void setLimits(int min, int max); int getIndex(); void showEvent(QShowEvent * event); private: Ui::JumpToDialog *ui; int searchMin; int searchMax; private slots: void validate(); }; #endif // JUMPTODIALOG_H dlt-viewer-2.18.0+dfsg/src/applicationdialog.cpp0000775000175000017500000000211413001357026021177 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file applicationdialog.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "applicationdialog.h" #include "ui_applicationdialog.h" ApplicationDialog::ApplicationDialog(QString id,QString description,QWidget *parent) : QDialog(parent), ui(new Ui::ApplicationDialog) { ui->setupUi(this); ui->idLineEdit->setText(id); ui->descriptionLineEdit->setText(description); } ApplicationDialog::~ApplicationDialog() { delete ui; } QString ApplicationDialog::id() { return ui->idLineEdit->text(); } QString ApplicationDialog::description() { return ui->descriptionLineEdit->text(); } dlt-viewer-2.18.0+dfsg/src/optmanager.h0000775000175000017500000000312213001357026017316 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file optmanager.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef OPTMANAGER_H #define OPTMANAGER_H #include class OptManager { public: static OptManager* getInstance(); void printUsage(); void parse(QStringList *opt); bool isProjectFile(); bool isLogFile(); bool isFilterFile(); bool isConvert(); bool isConvertUTF8(); bool isPlugin(); bool issilentMode(); QString getProjectFile(); QString getLogFile(); QString getFilterFile(); QString getConvertSourceFile(); QString getConvertDestFile(); QString getPluginName(); QString getCommandName(); QStringList getCommandParams(); private: OptManager(); OptManager(OptManager const&); static OptManager *instance; bool project; bool log; bool filter; bool convert; bool convertUTF8; bool plugin; bool silent_mode; QString projectFile; QString logFile; QString filterFile; QString convertSourceFile; QString convertDestFile; QString pluginName; QString commandName; QStringList commandParams; }; #endif // OPTMANAGER_H dlt-viewer-2.18.0+dfsg/src/tablemodel.cpp0000775000175000017500000003331113001357026017627 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file treemodel.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include #include "tablemodel.h" #include "fieldnames.h" #include "dltsettingsmanager.h" #include "dltuiutils.h" #include "optmanager.h" #include "dlt_protocol.h" char buffer[DLT_VIEWER_LIST_BUFFER_SIZE]; TableModel::TableModel(const QString & /*data*/, QObject *parent) : QAbstractTableModel(parent) { qfile = NULL; project = NULL; pluginManager = NULL; lastSearchIndex = -1; emptyForceFlag = false; loggingOnlyMode = false; } TableModel::~TableModel() { } int TableModel::columnCount(const QModelIndex & /*parent*/) const { return DLT_VIEWER_COLUMN_COUNT+project->settings->showArguments; } QVariant TableModel::data(const QModelIndex &index, int role) const { QDltMsg msg; QByteArray buf; if (!index.isValid()) return QVariant(); if (index.row() >= qfile->sizeFilter() && index.row()<0) return QVariant(); if (role == Qt::DisplayRole) { /* get the message with the selected item id */ if(loggingOnlyMode) { msg = QDltMsg(); } else if(!qfile->getMsg(qfile->getMsgFilterPos(index.row()), msg)) { if(index.column() == FieldNames::Index) { return QString("%1").arg(qfile->getMsgFilterPos(index.row())); } else if(index.column() == FieldNames::Payload) { return QString("!!CORRUPTED MESSAGE!!"); } return QVariant(); } if((DltSettingsManager::getInstance()->value("startup/pluginsEnabled", true).toBool())) { pluginManager->decodeMsg(msg,!OptManager::getInstance()->issilentMode()); } switch(index.column()) { case FieldNames::Index: /* display index */ return QString("%1").arg(qfile->getMsgFilterPos(index.row())); case FieldNames::Time: if( project->settings->automaticTimeSettings == 0 ) return QString("%1.%2").arg(msg.getGmTimeWithOffsetString(project->settings->utcOffset,project->settings->dst)).arg(msg.getMicroseconds(),6,10,QLatin1Char('0')); else return QString("%1.%2").arg(msg.getTimeString()).arg(msg.getMicroseconds(),6,10,QLatin1Char('0')); case FieldNames::TimeStamp: return QString("%1.%2").arg(msg.getTimestamp()/10000).arg(msg.getTimestamp()%10000,4,10,QLatin1Char('0')); case FieldNames::Counter: return QString("%1").arg(msg.getMessageCounter()); case FieldNames::EcuId: return msg.getEcuid(); case FieldNames::AppId: switch(project->settings->showApIdDesc){ case 0: return msg.getApid(); break; case 1: for(int num = 0; num < project->ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project->ecu->topLevelItem(num); for(int numapp = 0; numapp < ecuitem->childCount(); numapp++) { ApplicationItem * appitem = (ApplicationItem *) ecuitem->child(numapp); if(appitem->id == msg.getApid() && !appitem->description.isEmpty()) { return appitem->description; } } } return QString("Apid: %1 (No description)").arg(msg.getApid()); break; default: return msg.getApid(); } case FieldNames::ContextId: switch(project->settings->showCtIdDesc){ case 0: return msg.getCtid(); break; case 1: for(int num = 0; num < project->ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project->ecu->topLevelItem(num); for(int numapp = 0; numapp < ecuitem->childCount(); numapp++) { ApplicationItem * appitem = (ApplicationItem *) ecuitem->child(numapp); for(int numcontext = 0; numcontext < appitem->childCount(); numcontext++) { ContextItem * conitem = (ContextItem *) appitem->child(numcontext); if(appitem->id == msg.getApid() && conitem->id == msg.getCtid() && !conitem->description.isEmpty()) { return conitem->description; } } } } return QString("Ctid: %1 (No description)").arg(msg.getCtid()); break; default: return msg.getCtid(); } case FieldNames::SessionId: switch(project->settings->showSessionName){ case 0: return QString("%1").arg(msg.getSessionid()); break; case 1: if(!msg.getSessionName().isEmpty()) return msg.getSessionName(); else return QString("%1").arg(msg.getSessionid()); break; default: return QString("%1").arg(msg.getSessionid()); } case FieldNames::Type: return msg.getTypeString(); case FieldNames::Subtype: return msg.getSubtypeString(); case FieldNames::Mode: return msg.getModeString(); case FieldNames::ArgCount: return QString("%1").arg(msg.getNumberOfArguments()); case FieldNames::Payload: if(loggingOnlyMode) return QString("Logging only Mode! Disable in Project Settings!"); /* display payload */ return msg.toStringPayload(); default: if (index.column()>=FieldNames::Arg0) { int col=index.column()-FieldNames::Arg0; //arguments a zero based QDltArgument arg; if (msg.getArgument(col,arg)) { return arg.toString(); } else return QString(" - "); } } } if ( role == Qt::ForegroundRole ) { int currentIdx = qfile->getMsgFilterPos(index.row()); qfile->getMsg(currentIdx, msg); // Color the last search row if(lastSearchIndex != -1 && currentIdx == qfile->getMsgFilterPos(lastSearchIndex)) { return QVariant(QBrush(DltUiUtils::optimalTextColor(searchBackgroundColor()))); } else if (qfile->checkMarker(msg).isValid()) { QColor color = qfile->checkMarker(msg); //return QVariant(QBrush(color)); return QVariant(QBrush(DltUiUtils::optimalTextColor(color))); } else if(project->settings->autoMarkFatalError && !qfile->checkMarker(msg).isValid() && ( msg.getSubtypeString() == "error" || msg.getSubtypeString() == "fatal") ){ return QVariant(QBrush(QColor(255,255,255))); } else { return QVariant(QBrush(QColor(0,0,0))); } } if ( role == Qt::BackgroundRole ) { int currentIdx = qfile->getMsgFilterPos(index.row()); qfile->getMsg(currentIdx, msg); if((DltSettingsManager::getInstance()->value("startup/pluginsEnabled", true).toBool())) { pluginManager->decodeMsg(msg,!OptManager::getInstance()->issilentMode()); } QColor color = qfile->checkMarker(msg); if(color.isValid()) { return QVariant(QBrush(color)); } else { if(project->settings->autoMarkFatalError && ( msg.getSubtypeString() == "error" || msg.getSubtypeString() == "fatal") ){ return QVariant(QBrush(QColor(255,0,0))); } if(project->settings->autoMarkWarn && msg.getSubtypeString() == "warn"){ return QVariant(QBrush(QColor(255,255,0))); } if(project->settings->autoMarkMarker && msg.getType()==QDltMsg::DltTypeControl && msg.getSubtype()==QDltMsg::DltControlResponse && msg.getCtrlServiceId() == DLT_SERVICE_ID_MARKER){ return QVariant(QBrush(QColor(0,255,0))); } return QVariant(QBrush(QColor(255,255,255))); } } if ( role == Qt::TextAlignmentRole ) { switch(index.column()) { case FieldNames::Index: return QVariant(Qt::AlignRight | Qt::AlignVCenter); case FieldNames::Time: return QVariant(Qt::AlignCenter | Qt::AlignVCenter); case FieldNames::TimeStamp: return QVariant(Qt::AlignRight | Qt::AlignVCenter); case FieldNames::Counter: return QVariant(Qt::AlignCenter | Qt::AlignVCenter); case FieldNames::EcuId: return QVariant(Qt::AlignCenter | Qt::AlignVCenter); case FieldNames::AppId: switch(project->settings->showApIdDesc){ case 0: return QVariant(Qt::AlignCenter | Qt::AlignVCenter); break; case 1: return QVariant(Qt::AlignLeft | Qt::AlignVCenter); break; default: return QVariant(Qt::AlignLeft | Qt::AlignVCenter); break; } case FieldNames::ContextId: switch(project->settings->showCtIdDesc){ case 0: return QVariant(Qt::AlignCenter | Qt::AlignVCenter); break; case 1: return QVariant(Qt::AlignLeft | Qt::AlignVCenter); break; default: return QVariant(Qt::AlignLeft | Qt::AlignVCenter); break; } case FieldNames::Type: return QVariant(Qt::AlignCenter | Qt::AlignVCenter); case FieldNames::Subtype: return QVariant(Qt::AlignCenter | Qt::AlignVCenter); case FieldNames::Mode: return QVariant(Qt::AlignCenter | Qt::AlignVCenter); case FieldNames::ArgCount: return QVariant(Qt::AlignRight | Qt::AlignVCenter); case FieldNames::Payload: return QVariant(Qt::AlignLeft | Qt::AlignVCenter); } } return QVariant(); } QVariant TableModel::headerData(int section, Qt::Orientation orientation, int role) const { if (role != Qt::DisplayRole) return QVariant(); if (orientation == Qt::Horizontal) { return FieldNames::getName((FieldNames::Fields)section, project->settings); } return QVariant(); } int TableModel::rowCount(const QModelIndex & /*parent*/) const { if(emptyForceFlag) return 0; else if(loggingOnlyMode) return 1; else return qfile->sizeFilter(); } void TableModel::modelChanged() { if(emptyForceFlag) { index(0, 1); index(qfile->sizeFilter()-1, 0); index(qfile->sizeFilter()-1, columnCount() - 1); }else { index(0, 1); index(0, 0); index(0, columnCount() - 1); } emit(layoutChanged()); } QColor TableModel::searchBackgroundColor() const { QString color = DltSettingsManager::getInstance()->value("other/searchResultColor", QString("#00AAFF")).toString(); QColor hlColor(color); return hlColor; } void HtmlDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { QStyleOptionViewItemV4 optionV4 = option; initStyleOption(&optionV4, index); QStyle *style = optionV4.widget? optionV4.widget->style() : QApplication::style(); QTextDocument doc; doc.setHtml(optionV4.text); /// Painting item without text optionV4.text = QString(); style->drawControl(QStyle::CE_ItemViewItem, &optionV4, painter); QAbstractTextDocumentLayout::PaintContext ctx; // Highlighting text if item is selected if (optionV4.state & QStyle::State_Selected) ctx.palette.setColor(QPalette::Text, optionV4.palette.color(QPalette::Active, QPalette::HighlightedText)); QRect textRect = style->subElementRect(QStyle::SE_ItemViewItemText, &optionV4); painter->save(); painter->translate(textRect.topLeft()); painter->setClipRect(textRect.translated(-textRect.topLeft())); doc.documentLayout()->draw(painter, ctx); painter->restore(); } QSize HtmlDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const { QStyleOptionViewItemV4 optionV4 = option; initStyleOption(&optionV4, index); QTextDocument doc; doc.setHtml(optionV4.text); doc.setTextWidth(optionV4.rect.width()); return QSize(doc.idealWidth(), doc.size().height()); } dlt-viewer-2.18.0+dfsg/src/plugindialog.ui0000775000175000017500000001157113001357026020034 0ustar potyrapotyra PluginDialog 0 0 400 234 Plugin Configuration :/icons/png/face-glasses.png:/icons/png/face-glasses.png Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok false Name: Configuration Type: file directory Filename: ... Mode: disable enable enable and show Plugin Version: false Interface Version: false lineEditName lineEditPluginVersion lineEditPluginInterfaceVersion comboBoxMode comboBoxType lineEditFilename toolButton buttonBox accepted() PluginDialog accept() 248 254 157 274 buttonBox rejected() PluginDialog reject() 316 260 286 274 dlt-viewer-2.18.0+dfsg/src/dltmsgqueue.h0000664000175000017500000000144013001357026017516 0ustar potyrapotyra#ifndef DLTMSGQUEUE_H #define DLTMSGQUEUE_H #include #include #include "qdlt.h" class DltMsgQueue { public: DltMsgQueue(int bufferSize); ~DltMsgQueue(); void enqueueMsg(const QSharedPointer &msg, int index); bool dequeue(QPair, int> &dequeuedData); void enqueueStopRequest(); private: int bufferSize; QPair, int> *buffer; QAtomicInt readPosition, writePosition; volatile bool stopRequested; int writeSleepTime; // Microseconds to sleep if buffer is full during a write attempt int readSleepTime; // Microseconds to sleep if buffer is empty during a read attempt const int maxSleepTime = 1000 * 10; const int sleepTimeSteps = 10; }; #endif // DLTMSGQUEUE_H dlt-viewer-2.18.0+dfsg/src/ecudialog.h0000775000175000017500000000342513001357026017123 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file ecudialog.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef ECUDIALOG_H #define ECUDIALOG_H #include #include "project.h" namespace Ui { class EcuDialog; } class EcuDialog : public QDialog { Q_OBJECT public: EcuDialog(QWidget *parent = 0); ~EcuDialog(); void setData(EcuItem &item); QString id(); QString description(); int interfacetype(); QString hostname(); unsigned int tcpport(); QString port(); BaudRateType baudrate(); int loglevel(); int tracestatus(); int verbosemode(); int sendSerialHeaderTcp(); int sendSerialHeaderSerial(); int syncSerialHeaderTcp(); int syncSerialHeaderSerial(); int timingPackets(); int sendGetLogInfo(); int sendDefaultLogLevel(); int sendGetSoftwareVersion(); int update(); int autoReconnect(); int autoReconnectTimeout(); QStringList getHostnameList(); void setHostnameList(QStringList hostnames); QStringList getPortList(); void setPortList(QStringList ports); void setDialogToEcuItem(EcuItem *item); protected: void changeEvent(QEvent *e); private slots: void on_checkBoxAutoReconnect_toggled(bool checked); void on_comboBoxInterface_currentIndexChanged(int index); private: Ui::EcuDialog *ui; }; #endif // ECUDIALOG_H dlt-viewer-2.18.0+dfsg/src/searchdialog.h0000775000175000017500000000771513001357026017622 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file searchdialog.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef SEARCHDIALOG_H #define SEARCHDIALOG_H #include #include "qdlt.h" #include #include #include #include #include "searchtablemodel.h" namespace Ui { class SearchDialog; } class SearchDialog : public QDialog { Q_OBJECT private: Ui::SearchDialog *ui; SearchTableModel *m_searchtablemodel; int startLine; bool nextClicked; bool match; bool onceClicked; bool is_PayloadStartFound; bool is_PayloadEndFound; bool is_PayLoadRangeValid; QString payloadStart; QString payloadEnd; QString tempPayLoad; bool is_payLoadSearchSelected; bool is_TimeStampSearchSelected; bool is_TimeStampRangeValid; QHash> cachedHistoryKey; public: explicit SearchDialog(QWidget *parent = 0); ~SearchDialog(); bool payLoadValidityCheck(); void setText(QString text); void selectText(); void setHeader(bool header); void setPayload(bool payload); void setCaseSensitive(bool caseSensitive); void setRegExp(bool regExp); void setMatch(bool matched); void setStartLine(int start); void setNextClicked(bool next); void setSearchColour(QLineEdit *lineEdit,int result); void setEnabledPrevious(bool enabled); void setSearchPosition(bool beginning); void setOnceClicked(bool clicked); void appendLineEdit(QLineEdit *lineEdit); void setApIDText(QString); void setCtIDText(QString); void cacheSearchHistory(); void clearCacheHistory(); QList < QList > m_searchHistory; QString getText(); bool getHeader(); bool getPayload(); bool getCaseSensitive(); bool getRegExp(); bool getSearchFromBeginning(); bool getNextClicked(); bool getMatch(); bool getClicked(); bool getOnceClicked(); bool searchtoIndex(); int getStartLine(); QString getApIDText(); QString getCtIDText(); QString getTimeStampStart(); QString getTimeStampEnd(); int find(); void findProcess(int searchLine, int searchBorder, QRegExp &searchTextRegExp,QString apID, QString ctID, QString tStart, QString tEnd, QString payloadStart, QString payloadEnd); bool timeStampCheck(int searchLine ); void registerSearchTableModel(SearchTableModel *model); /** * @brief foundLine * @param searchLine * @return true, if search can be breaked here, false if it should continue */ bool foundLine(int searchLine); void addToSearchIndex(int searchLine); QDltFile *file; QTableView *table; QDltPluginManager *pluginManager; QList *lineEdits; QCheckBox *regexpCheckBox; QCheckBox *CheckBoxSearchtoList; QString getPayLoadStampStart(); QString getPayLoadStampEnd(); bool timeStampPayloadValidityCheck(int searchLine); private: void updateColorbutton(); void focusRow(int searchLine); private slots: void on_lineEditText_textEdited(QString newText); void on_pushButtonPrevious_clicked(); void on_pushButtonNext_clicked(); void on_pushButtonColor_clicked(); void on_checkBoxSearchIndex_toggled(bool checked); public slots: void textEditedFromToolbar(QString newText); void findNextClicked(); void findPreviousClicked(); void loadSearchHistory(); signals: void refreshedSearchIndex(); void addActionHistory(); void searchProgressChanged(bool isInProgress); }; #endif // SEARCHDIALOG_H dlt-viewer-2.18.0+dfsg/src/mainwindow.cpp0000664000175000017500000063156113001357026017703 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file mainwindow.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /** * From QDlt. * Must be a "C" include to interpret the imports correctly * for MSVC compilers. **/ #include "dlt_common.h" extern "C" { #include "dlt_user.h" } #if defined(_MSC_VER) #include #include #include #else #include /* for read(), close() */ #include /* for gettimeofday() */ #endif #include "mainwindow.h" #include "ecudialog.h" #include "applicationdialog.h" #include "contextdialog.h" #include "multiplecontextdialog.h" #include "plugindialog.h" #include "settingsdialog.h" #include "injectiondialog.h" #include "qextserialenumerator.h" #include "version.h" #include "dltfileutils.h" #include "dltuiutils.h" #include "dltexporter.h" #include "jumptodialog.h" #include "fieldnames.h" #include "tablemodel.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), timer(this), qcontrol(this), pulseButtonColor(255, 40, 40), isSearchOngoing(false) { ui->setupUi(this); ui->enableConfigFrame->setVisible(false); setAcceptDrops(true); initState(); /* Apply loaded settings */ initSearchTable(); initView(); applySettings(); initSignalConnections(); initFileHandling(); // check and clear index cache if needed settings->clearIndexCacheAfterDays(); /* Command plugin */ if(OptManager::getInstance()->isPlugin()) { commandLineExecutePlugin(OptManager::getInstance()->getPluginName(), OptManager::getInstance()->getCommandName(), OptManager::getInstance()->getCommandParams()); } /* auto connect */ if(settings->autoConnect) { connectAll(); } /* start timer for autoconnect */ connect(&timer, SIGNAL(timeout()), this, SLOT(timeout())); timer.start(1000); restoreGeometry(DltSettingsManager::getInstance()->value("geometry").toByteArray()); restoreState(DltSettingsManager::getInstance()->value("windowState").toByteArray()); /*sync checkboxes with action toolbar*/ ui->actionToggle_FiltersEnabled->setChecked(ui->filtersEnabled->isChecked()); ui->actionToggle_PluginsEnabled->setChecked(ui->pluginsEnabled->isChecked()); ui->actionToggle_SortByTimeEnabled->setChecked(ui->checkBoxSortByTime->isChecked()); newCompleter = new QCompleter(&m_CompleterModel,this); } MainWindow::~MainWindow() { DltSettingsManager::close(); /** * All plugin dockwidgets must be removed from the layout manually and * then deleted. This has to be done here, because they contain * UI components owned by the plugins. The plugins will destroy their * own UI components. If the dockwidget is not manually removed, the * parent destructor of MainWindow will try to automatically delete * the dockWidgets subcomponents, which are already destroyed * when unloading plugins. **/ for(int i=0;itopLevelItemCount();i++) { PluginItem *item = (PluginItem *) project.plugin->topLevelItem(i); if(item->dockWidget != NULL) { removeDockWidget(item->dockWidget); delete item->dockWidget; } } // rename output filename if flag set in settings if(settings->appendDateTime) { // get new filename QFileInfo info(outputfile.fileName()); QString newFilename = info.baseName()+ (startLoggingDateTime.toString("__yyyyMMdd_hhmmss"))+ (QDateTime::currentDateTime().toString("__yyyyMMdd_hhmmss"))+ QString(".dlt"); QFileInfo infoNew(info.absolutePath(),newFilename); // rename old file outputfile.rename(infoNew.absoluteFilePath()); } // deleting search history for (int i= 0; i < MaxSearchHistory; i++) { if (NULL != searchHistoryActs[i]) { delete searchHistoryActs[i]; } } delete ui; delete tableModel; delete searchDlg; delete dltIndexer; delete m_shortcut_searchnext; delete m_shortcut_searchprev; delete newCompleter; } void MainWindow::initState() { /* Settings */ settings = new SettingsDialog(&qfile,this); settings->assertSettingsVersion(); settings->readSettings(); recentFiles = settings->getRecentFiles(); recentProjects = settings->getRecentProjects(); recentFilters = settings->getRecentFilters(); /* Initialize recent files */ for (int i = 0; i < MaxRecentFiles; ++i) { recentFileActs[i] = new QAction(this); recentFileActs[i]->setVisible(false); connect(recentFileActs[i], SIGNAL(triggered()), this, SLOT(openRecentFile())); ui->menuRecent_files->addAction(recentFileActs[i]); } /* Initialize recent projects */ for (int i = 0; i < MaxRecentProjects; ++i) { recentProjectActs[i] = new QAction(this); recentProjectActs[i]->setVisible(false); connect(recentProjectActs[i], SIGNAL(triggered()), this, SLOT(openRecentProject())); ui->menuRecent_projects->addAction(recentProjectActs[i]); } /* Initialize recent filters */ for (int i = 0; i < MaxRecentFilters; ++i) { recentFiltersActs[i] = new QAction(this); recentFiltersActs[i]->setVisible(false); connect(recentFiltersActs[i], SIGNAL(triggered()), this, SLOT(openRecentFilters())); ui->menuRecent_Filters->addAction(recentFiltersActs[i]); } /* Update recent file and project actions */ updateRecentFileActions(); updateRecentProjectActions(); updateRecentFiltersActions(); /* initialise DLT file handling */ tableModel = new TableModel("Hello Tree"); tableModel->qfile = &qfile; tableModel->project = &project; tableModel->pluginManager = &pluginManager; /* initialise project configuration */ project.ecu = ui->configWidget; project.filter = ui->filterWidget; project.plugin = ui->pluginWidget; project.settings = settings; /* Load Plugins before loading default project */ loadPlugins(); pluginManager.autoscrollStateChanged(settings->autoScroll); /* initialize injection */ injectionAplicationId.clear(); injectionContextId.clear(); injectionServiceId.clear(); injectionData.clear(); injectionDataBinary = false; } void MainWindow::initView() { /* make focus on elements visible */ project.ecu->setStyleSheet("QTreeWidget:focus { border-color:lightgray; border-style:solid; border-width:1px; }"); ui->tableView->setStyleSheet("QTableView:focus { border-color:lightgray; border-style:solid; border-width:1px; }"); ui->tableView_SearchIndex->setStyleSheet("QTableView:focus { border-color:lightgray; border-style:solid; border-width:1px; }"); /* update default filter selection */ ui->comboBoxFilterSelection->addItem(""); on_actionDefault_Filter_Reload_triggered(); /* set table size and en */ ui->tableView->setModel(tableModel); /* For future use enable HTML View in Table */ //HtmlDelegate* delegate = new HtmlDelegate(); //ui->tableView->setItemDelegate(delegate); //ui->tableView->setItemDelegateForColumn(FieldNames::Payload,delegate); ui->tableView->setColumnWidth(0,50); ui->tableView->setColumnWidth(1,150); ui->tableView->setColumnWidth(2,70); ui->tableView->setColumnWidth(3,40); ui->tableView->setColumnWidth(4,40); ui->tableView->setColumnWidth(5,40); ui->tableView->setColumnWidth(6,40); ui->tableView->setColumnWidth(7,50); ui->tableView->setColumnWidth(8,50); ui->tableView->setColumnWidth(9,50); ui->tableView->setColumnWidth(10,40); ui->tableView->setColumnWidth(11,40); ui->tableView->setColumnWidth(12,400); /* Enable column sorting of config widget */ ui->configWidget->sortByColumn(0, Qt::AscendingOrder); // column/order to sort by ui->configWidget->setSortingEnabled(true); // should cause sort on add ui->configWidget->setHeaderHidden(false); ui->filterWidget->setHeaderHidden(false); ui->pluginWidget->setHeaderHidden(false); /* Start pulsing the apply changes button, when filters draged&dropped */ connect(ui->filterWidget, SIGNAL(filterItemDropped()), this, SLOT(filterOrderChanged())); /* initialise statusbar */ totalBytesRcvd = 0; totalByteErrorsRcvd = 0; totalSyncFoundRcvd = 0; statusFilename = new QLabel("no log file loaded"); statusFileVersion = new QLabel("Version: "); statusBytesReceived = new QLabel("Recv: 0"); statusByteErrorsReceived = new QLabel("Recv Errors: 0"); statusSyncFoundReceived = new QLabel("Sync found: 0"); statusProgressBar = new QProgressBar(); statusBar()->addWidget(statusFilename); statusBar()->addWidget(statusFileVersion); statusBar()->addWidget(statusBytesReceived); statusBar()->addWidget(statusByteErrorsReceived); statusBar()->addWidget(statusSyncFoundReceived); statusBar()->addWidget(statusProgressBar); /* Create search text box */ searchTextbox = new QLineEdit(); searchDlg->appendLineEdit(searchTextbox); connect(searchTextbox, SIGNAL(textChanged(QString)),searchDlg,SLOT(textEditedFromToolbar(QString))); connect(searchTextbox, SIGNAL(returnPressed()), this, SLOT(on_action_FindNext())); connect(searchTextbox, SIGNAL(returnPressed()),searchDlg,SLOT(findNextClicked())); connect(searchDlg, SIGNAL(searchProgressChanged(bool)), this, SLOT(onSearchProgressChanged(bool))); /* Initialize toolbars. Most of the construction and connection is done via the * UI file. See mainwindow.ui, ActionEditor and Signal & Slots editor */ QList mainActions = ui->mainToolBar->actions(); m_searchActions = ui->searchToolbar->actions(); /* Point scroll toggle button to right place */ scrollButton = mainActions.at(ToolbarPosition::AutoScroll); /* Update the scrollbutton status */ updateScrollButton(); } void MainWindow::initSignalConnections() { /* Initialize Search History */ for (int i= 0; i < MaxSearchHistory; i++) { searchHistoryActs[i] = new QAction(this); searchHistoryActs[i]->setVisible(false); connect(searchHistoryActs[i], SIGNAL(triggered()), searchDlg, SLOT(loadSearchHistory())); ui->menuHistory->addAction(searchHistoryActs[i]); } /* Connect RegExp settings from and to search dialog */ connect(m_searchActions.at(ToolbarPosition::Regexp), SIGNAL(toggled(bool)), searchDlg->regexpCheckBox, SLOT(setChecked(bool))); connect(searchDlg->regexpCheckBox, SIGNAL(toggled(bool)), m_searchActions.at(ToolbarPosition::Regexp), SLOT(setChecked(bool))); /* Connect previous and next buttons to search dialog slots */ connect(m_searchActions.at(ToolbarPosition::FindPrevious), SIGNAL(triggered()), searchDlg, SLOT(findPreviousClicked())); connect(m_searchActions.at(ToolbarPosition::FindNext), SIGNAL(triggered()), searchDlg, SLOT(findNextClicked())); connect(m_searchActions.at(ToolbarPosition::FindNext), SIGNAL(triggered()), this, SLOT(on_action_FindNext())); connect(searchDlg->CheckBoxSearchtoList,SIGNAL(toggled(bool)),ui->actionSearchList,SLOT(setChecked(bool))); connect(ui->actionSearchList,SIGNAL(toggled(bool)),searchDlg->CheckBoxSearchtoList,SLOT(setChecked(bool))); ui->actionSearchList->setChecked(searchDlg->searchtoIndex()); /* Connect Search dialog find to action History */ connect(searchDlg,SIGNAL(addActionHistory()),this,SLOT(onAddActionToHistory())); /* Insert search text box to search toolbar, before previous button */ QAction *before = m_searchActions.at(ToolbarPosition::FindPrevious); ui->searchToolbar->insertWidget(before, searchTextbox); /* adding shortcuts - regard: in the search window, the signal is caught by another way, this here only catches the keys when main window is active */ m_shortcut_searchnext = new QShortcut(QKeySequence("F3"), this); connect(m_shortcut_searchnext, SIGNAL(activated()), searchDlg, SLOT( on_pushButtonNext_clicked() ) ); m_shortcut_searchprev = new QShortcut(QKeySequence("F2"), this); connect(m_shortcut_searchprev, SIGNAL(activated()), searchDlg, SLOT( on_pushButtonPrevious_clicked() ) ); connect((QObject*)(ui->tableView->verticalScrollBar()), SIGNAL(valueChanged(int)), this, SLOT(tableViewValueChanged(int))); connect(ui->tableView->horizontalHeader(), SIGNAL(sectionDoubleClicked(int)), this, SLOT(sectionInTableDoubleClicked(int))); //for search result table connect(searchDlg, SIGNAL(refreshedSearchIndex()), this, SLOT(searchTableRenewed())); connect( m_searchresultsTable, SIGNAL( doubleClicked (QModelIndex) ), this, SLOT( searchtable_cellSelected( QModelIndex ) ) ); // connect tableView selection model change to handler in mainwindow connect(ui->tableView->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), SLOT(on_tableView_selectionChanged(const QItemSelection &, const QItemSelection &))); } void MainWindow::initSearchTable() { //init search Dialog searchDlg = new SearchDialog(this); searchDlg->file = &qfile; searchDlg->table = ui->tableView; searchDlg->pluginManager = &pluginManager; /* initialise DLT Search handling */ m_searchtableModel = new SearchTableModel("Search Index Mainwindow"); m_searchtableModel->qfile = &qfile; m_searchtableModel->project = &project; m_searchtableModel->pluginManager = &pluginManager; searchDlg->registerSearchTableModel(m_searchtableModel); m_searchresultsTable = ui->tableView_SearchIndex; m_searchresultsTable->setModel(m_searchtableModel); m_searchresultsTable->setSelectionBehavior(QAbstractItemView::SelectRows); m_searchresultsTable->verticalHeader()->setVisible(false); m_searchresultsTable->setEditTriggers(QAbstractItemView::NoEditTriggers); //Removing lines which are unlinkely to be necessary for a search. Maybe make configurable. //Ideally possible with right-click m_searchresultsTable->setColumnHidden(FieldNames::Counter, true); m_searchresultsTable->setColumnHidden(FieldNames::Type, true); m_searchresultsTable->setColumnHidden(FieldNames::Subtype, true); m_searchresultsTable->setColumnHidden(FieldNames::Mode, true); m_searchresultsTable->setColumnHidden(FieldNames::ArgCount, true); m_searchresultsTable->setColumnHidden(FieldNames::SessionId, true); QFont searchtableViewFont = m_searchresultsTable->font(); searchtableViewFont.setPointSize(settings->fontSize); m_searchresultsTable->setFont(searchtableViewFont); // Rescale the height of a row to choosen font size + 8 pixels m_searchresultsTable->verticalHeader()->setDefaultSectionSize(settings->fontSize+8); /* set table size and en */ m_searchresultsTable->setColumnWidth(FieldNames::Index,50); m_searchresultsTable->setColumnWidth(FieldNames::Time,150); m_searchresultsTable->setColumnWidth(FieldNames::TimeStamp,70); m_searchresultsTable->setColumnWidth(FieldNames::Counter,40); m_searchresultsTable->setColumnWidth(FieldNames::EcuId,40); m_searchresultsTable->setColumnWidth(FieldNames::AppId,40); m_searchresultsTable->setColumnWidth(FieldNames::ContextId,40); m_searchresultsTable->setColumnWidth(FieldNames::SessionId,50); m_searchresultsTable->setColumnWidth(FieldNames::Type,50); m_searchresultsTable->setColumnWidth(FieldNames::Subtype,50); m_searchresultsTable->setColumnWidth(FieldNames::Mode,40); m_searchresultsTable->setColumnWidth(FieldNames::ArgCount,40); m_searchresultsTable->setColumnWidth(FieldNames::Payload,1000); } void MainWindow::initFileHandling() { /* Initialize dlt-file indexer */ dltIndexer = new DltFileIndexer(&qfile,&pluginManager,&defaultFilter, this); /* connect signals */ connect(dltIndexer, SIGNAL(progressMax(quint64)), this, SLOT(reloadLogFileProgressMax(quint64))); connect(dltIndexer, SIGNAL(progress(quint64)), this, SLOT(reloadLogFileProgress(quint64))); connect(dltIndexer, SIGNAL(progressText(QString)), this, SLOT(reloadLogFileProgressText(QString))); connect(dltIndexer, SIGNAL(versionString(QString,QString)), this, SLOT(reloadLogFileVersionString(QString,QString))); connect(dltIndexer, SIGNAL(finishIndex()), this, SLOT(reloadLogFileFinishIndex())); connect(dltIndexer, SIGNAL(finishFilter()), this, SLOT(reloadLogFileFinishFilter())); connect(dltIndexer, SIGNAL(finishDefaultFilter()), this, SLOT(reloadLogFileFinishDefaultFilter())); connect(dltIndexer, SIGNAL(timezone(int,unsigned char)), this, SLOT(controlMessage_Timezone(int,unsigned char))); connect(dltIndexer, SIGNAL(unregisterContext(QString,QString,QString)), this, SLOT(controlMessage_UnregisterContext(QString,QString,QString))); /* Plugins/Filters enabled checkboxes */ ui->pluginsEnabled->setChecked(DltSettingsManager::getInstance()->value("startup/pluginsEnabled", true).toBool()); ui->filtersEnabled->setChecked(DltSettingsManager::getInstance()->value("startup/filtersEnabled", true).toBool()); ui->checkBoxSortByTime->setEnabled(ui->filtersEnabled->isChecked()); ui->checkBoxSortByTime->setChecked(DltSettingsManager::getInstance()->value("startup/sortByTimeEnabled", false).toBool()); /* Process Project */ if(OptManager::getInstance()->isProjectFile()) { openDlpFile(OptManager::getInstance()->getProjectFile()); } else { /* Load default project file */ this->setWindowTitle(QString("DLT Viewer - unnamed project - Version : %1 %2").arg(PACKAGE_VERSION).arg(PACKAGE_VERSION_STATE)); if(settings->defaultProjectFile) { if(!openDlpFile(settings->defaultProjectFileName)){ QMessageBox::critical(0, QString("DLT Viewer"), QString("Cannot load default project \"%1\"") .arg(settings->defaultProjectFileName)); } } } /* Process Logfile */ outputfileIsFromCLI = false; outputfileIsTemporary = false; if(OptManager::getInstance()->isLogFile()) { openDltFile(QStringList(OptManager::getInstance()->getLogFile())); /* Command line file is treated as temp file */ outputfileIsTemporary = true; outputfileIsFromCLI = true; } else { /* load default log file */ statusFilename->setText("no log file loaded"); if(settings->defaultLogFile) { openDltFile(QStringList(settings->defaultLogFileName)); outputfileIsFromCLI = false; outputfileIsTemporary = false; } else { /* Create temp file */ QString fn = DltFileUtils::createTempFile(DltFileUtils::getTempPath(settings)); outputfile.setFileName(fn); outputfileIsTemporary = true; outputfileIsFromCLI = false; if(outputfile.open(QIODevice::WriteOnly|QIODevice::Truncate)) { openFileNames = QStringList(fn); reloadLogFile(); } else QMessageBox::critical(0, QString("DLT Viewer"), QString("Cannot load temporary log file \"%1\"\n%2") .arg(outputfile.fileName()) .arg(outputfile.errorString())); } } if(OptManager::getInstance()->isFilterFile()){ if(project.LoadFilter(OptManager::getInstance()->getFilterFile(),false)) { filterUpdate(); setCurrentFilters(OptManager::getInstance()->getFilterFile()); } } if(OptManager::getInstance()->isConvert()) { if (OptManager::getInstance()->isConvertUTF8()) { commandLineConvertToUTF8(); } else { commandLineConvertToASCII(); } exit(0); } draw_timer.setSingleShot (true); connect(&draw_timer, SIGNAL(timeout()), this, SLOT(draw_timeout())); DltSettingsManager *settingsmanager = DltSettingsManager::getInstance(); bool startup_minimized = settingsmanager->value("StartUpMinimized",false).toBool(); if (startup_minimized) this->setWindowState(Qt::WindowMinimized); } void MainWindow::commandLineConvertToASCII() { qfile.enableFilter(true); openDltFile(QStringList(OptManager::getInstance()->getConvertSourceFile())); outputfileIsFromCLI = false; outputfileIsTemporary = false; QFile asciiFile(OptManager::getInstance()->getConvertDestFile()); /* start exporter */ DltExporter exporter; exporter.exportMessages(&qfile,&asciiFile,&pluginManager,DltExporter::FormatAscii,DltExporter::SelectionFiltered); } void MainWindow::commandLineConvertToUTF8() { qfile.enableFilter(true); openDltFile(QStringList(OptManager::getInstance()->getConvertSourceFile())); outputfileIsFromCLI = false; outputfileIsTemporary = false; QFile asciiFile(OptManager::getInstance()->getConvertDestFile()); /* start exporter */ DltExporter exporter; exporter.exportMessages(&qfile,&asciiFile,&pluginManager,DltExporter::FormatUTF8,DltExporter::SelectionFiltered); } void MainWindow::ErrorMessage(QMessageBox::Icon level, QString title, QString message){ if (OptManager::getInstance()->issilentMode()) { qDebug()<isCommand()) { QString msg("Error: "); msg = msg+name+" is not a command plugin."; ErrorMessage(QMessageBox::Critical, name, msg); exit(-1); } if(!plugin->command(cmd, params)) { QString msg("Error: "); msg.append(name); msg.append(plugin->error()); ErrorMessage(QMessageBox::Warning,name, msg); exit(-1); } else { exit(0); } } void MainWindow::deleteactualFile(){ if(outputfileIsTemporary && !outputfileIsFromCLI) { // Delete created temp file qfile.close(); outputfile.close(); if(outputfile.exists() && !outputfile.remove()) { QMessageBox::critical(0, QString("DLT Viewer"), QString("Cannot delete temporary log file \"%1\"\n%2") .arg(outputfile.fileName()) .arg(outputfile.errorString())); } } } void MainWindow::closeEvent(QCloseEvent *event) { settings->writeSettings(this); if(true == isSearchOngoing) { event->ignore(); } else if(settings->tempCloseWithoutAsking || outputfile.size() == 0) { deleteactualFile(); QMainWindow::closeEvent(event); } else if(outputfileIsTemporary && !outputfileIsFromCLI) { if(QMessageBox::information(this, "DLT Viewer", "You still have an unsaved temporary file open. Exit anyway?", QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) { deleteactualFile(); QMainWindow::closeEvent(event); } else { event->ignore(); } } else { QMainWindow::closeEvent(event); } } void MainWindow::on_action_menuFile_New_triggered() { QString fileName = QFileDialog::getSaveFileName(this, tr("New DLT Log file"), workingDirectory.getDltDirectory(), tr("DLT Files (*.dlt);;All files (*.*)")); if(fileName.isEmpty()) { return; } on_New_triggered(fileName); } void MainWindow::on_New_triggered(QString fileName) { /* change DLT file working directory */ workingDirectory.setDltDirectory(QFileInfo(fileName).absolutePath()); /* close existing file */ if(outputfile.isOpen()) { if (outputfile.size() == 0) { deleteactualFile(); } else { outputfile.close(); } } /* create new file; truncate if already exist */ outputfile.setFileName(fileName); outputfileIsTemporary = false; outputfileIsFromCLI = false; setCurrentFile(fileName); if(outputfile.open(QIODevice::WriteOnly|QIODevice::Truncate)) { openFileNames = QStringList(fileName); reloadLogFile(); } else QMessageBox::critical(0, QString("DLT Viewer"), QString("Cannot create new log file \"%1\"\n%2") .arg(fileName) .arg(outputfile.errorString())); } void MainWindow::on_action_menuFile_Open_triggered() { QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Open one or more DLT Log files"), workingDirectory.getDltDirectory(), tr("DLT Files (*.dlt);;All files (*.*)")); if(fileNames.isEmpty()) return; on_Open_triggered(fileNames); } void MainWindow::on_Open_triggered(QStringList filenames) { /* change DLT file working directory */ workingDirectory.setDltDirectory(QFileInfo(filenames[0]).absolutePath()); openDltFile(filenames); outputfileIsFromCLI = false; outputfileIsTemporary = false; searchDlg->setMatch(false); searchDlg->setOnceClicked(false); searchDlg->setStartLine(-1); } void MainWindow::openRecentFile() { QAction *action = qobject_cast(sender()); QString fileName; if (action) { fileName = action->data().toString(); if(fileName.isEmpty()) { removeCurrentFile(fileName); return; } workingDirectory.setDltDirectory(QFileInfo(fileName).absolutePath()); /* open existing file and append new data */ if (true == openDltFile(QStringList(fileName))) { outputfileIsTemporary = false; outputfileIsFromCLI = false; } else { removeCurrentFile(fileName); } } } bool MainWindow::openDltFile(QStringList fileNames) { /* close existing file */ bool ret = false; if(fileNames.size()==0) return false; //clear search history list searchHistory.clear(); //clear all the action buttons from history for (int i = 0; i < MaxSearchHistory; i++) { searchHistoryActs[i]->setVisible(false); } // clear the cache stored for the history searchDlg->clearCacheHistory(); if(outputfile.isOpen()) { if (outputfile.size() == 0) { deleteactualFile(); } else { outputfile.close(); } } /* open existing file and append new data */ outputfile.setFileName(fileNames.last()); setCurrentFile(fileNames.last()); if(outputfile.open(QIODevice::WriteOnly|QIODevice::Append)) { openFileNames = fileNames; if(OptManager::getInstance()->isConvert() || OptManager::getInstance()->isPlugin()) // if dlt viewer started as converter or with plugin option load file non multithreaded reloadLogFile(false,false); else // normally load log file mutithreaded reloadLogFile(); ret = true; } else { QMessageBox::critical(0, QString("DLT Viewer"), QString("Cannot open log file \"%1\"\n%2") .arg(fileNames.last()) .arg(outputfile.errorString())); ret = false; } return ret; } void MainWindow::on_action_menuFile_Import_DLT_Stream_triggered() { QString fileName = QFileDialog::getOpenFileName(this, tr("Import DLT Stream"), workingDirectory.getDltDirectory(), tr("DLT Stream file (*.*)")); if(fileName.isEmpty()) return; /* change DLT file working directory */ workingDirectory.setDltDirectory(QFileInfo(fileName).absolutePath()); if(!outputfile.isOpen()) return; DltFile importfile; dlt_file_init(&importfile,0); /* open DLT stream file */ dlt_file_open(&importfile,fileName.toLatin1(),0); /* parse and build index of complete log file and show progress */ while (dlt_file_read_raw(&importfile,false,0)>=0) { // https://bugreports.qt-project.org/browse/QTBUG-26069 outputfile.seek(outputfile.size()); outputfile.write((char*)importfile.msg.headerbuffer,importfile.msg.headersize); outputfile.write((char*)importfile.msg.databuffer,importfile.msg.datasize); outputfile.flush(); } dlt_file_free(&importfile,0); if(importfile.error_messages>0) { QMessageBox::warning(this, QString("DLT Stream import"), QString("At least %1 corrupted messages during import found!").arg(importfile.error_messages)); } reloadLogFile(); } void MainWindow::on_action_menuFile_Import_DLT_Stream_with_Serial_Header_triggered() { QString fileName = QFileDialog::getOpenFileName(this, tr("Import DLT Stream with serial header"), workingDirectory.getDltDirectory(), tr("DLT Stream file (*.*)")); if(fileName.isEmpty()) return; /* change DLT file working directory */ workingDirectory.setDltDirectory(QFileInfo(fileName).absolutePath()); if(!outputfile.isOpen()) return; DltFile importfile; dlt_file_init(&importfile,0); /* open DLT stream file */ dlt_file_open(&importfile,fileName.toLatin1(),0); /* parse and build index of complete log file and show progress */ while (dlt_file_read_raw(&importfile,true,0)>=0) { // https://bugreports.qt-project.org/browse/QTBUG-26069 outputfile.seek(outputfile.size()); outputfile.write((char*)importfile.msg.headerbuffer,importfile.msg.headersize); outputfile.write((char*)importfile.msg.databuffer,importfile.msg.datasize); outputfile.flush(); } dlt_file_free(&importfile,0); if(importfile.error_messages>0) { QMessageBox::warning(this, QString("Import DLT Stream with serial header"), QString("%1 corrupted messages during import found!").arg(importfile.error_messages)); } reloadLogFile(); } void MainWindow::on_action_menuFile_Append_DLT_File_triggered() { QString fileName = QFileDialog::getOpenFileName(this, tr("Append DLT File"), workingDirectory.getDltDirectory(), tr("DLT File (*.dlt)")); if(fileName.isEmpty()) return; /* change DLT file working directory */ workingDirectory.setDltDirectory(QFileInfo(fileName).absolutePath()); if(!outputfile.isOpen()) return; DltFile importfile; dlt_file_init(&importfile,0); QProgressDialog progress("Append log file", "Cancel Loading", 0, 100, this); progress.setModal(true); int num = 0; /* open DLT log file with same filename as output file */ if (dlt_file_open(&importfile,fileName.toLatin1() ,0)<0) { return; } if (importfile.file_length <= 0) // This can happen { dlt_file_free(&importfile, 0); return; } /* get number of files in DLT log file */ while (dlt_file_read(&importfile,0)>=0) { num++; if ( 0 == (num%1000)) progress.setValue(importfile.file_position*100/importfile.file_length); if (progress.wasCanceled()) { dlt_file_free(&importfile,0); return; } } /* read DLT messages and append to current output file */ for(int pos = 0 ; postableView->selectionModel()->selection().indexes(); DltExporter exporter; exporter.exportMessages(&qfile,0,&pluginManager,DltExporter::FormatClipboard,DltExporter::SelectionSelected,&list); } void MainWindow::exportSelection_searchTable() { QModelIndexList list = ui->tableView_SearchIndex->selectionModel()->selection().indexes(); // Clear the selection from main table. ui->tableView->selectionModel()->clear(); // Convert the index from search table to main table entry... foreach(QModelIndex index,list) { int position = index.row(); unsigned long entry; if (! m_searchtableModel->get_SearchResultEntry(position, entry) ) return; //jump_to_line int row = nearest_line(entry); if (0 > row) return; QModelIndex newIndex = tableModel->index(row, 0, QModelIndex()); // Select the row in main table mapping to the search table row ui->tableView->blockSignals(true); ui->tableView->selectionModel()->select(newIndex, QItemSelectionModel::Select|QItemSelectionModel::Rows); ui->tableView->blockSignals(false); } QModelIndexList finallist = ui->tableView->selectionModel()->selection().indexes(); DltExporter exporter; exporter.exportMessages(&qfile,0,&pluginManager,DltExporter::FormatClipboard,DltExporter::SelectionSelected,&finallist); } void MainWindow::on_actionExport_triggered() { /* export dialog */ exporterDialog.exec(); if(exporterDialog.result() != QDialog::Accepted) return; DltExporter::DltExportFormat exportFormat = exporterDialog.getFormat(); DltExporter::DltExportSelection exportSelection = exporterDialog.getSelection(); QModelIndexList list = ui->tableView->selectionModel()->selection().indexes(); /* check plausibility */ if(exportSelection == DltExporter::SelectionAll) { qDebug() << "DLT Export of all" << qfile.size() << "messages"; if(qfile.size() <= 0) { QMessageBox::critical(this, QString("DLT Viewer"), QString("Nothing to export. Make sure you have a DLT file open.")); return; } } else if(exportSelection == DltExporter::SelectionFiltered) { qDebug() << "DLT Export of filterd" << qfile.sizeFilter() << "messages"; if(qfile.sizeFilter() <= 0) { QMessageBox::critical(this, QString("DLT Viewer"), QString("Nothing to export. Make sure you have a DLT file open and that not everything is filtered.")); return; } } else if(exportSelection == DltExporter::SelectionSelected) { qDebug() << "DLT Export of selected" << list.count() << "messages"; if(list.count() <= 0) { QMessageBox::critical(this, QString("DLT Viewer"), QString("No messages selected. Select something from the main view.")); return; } } /* ask for filename */ QFileDialog dialog(this); QStringList filters; if((exportFormat == DltExporter::FormatDlt)||(exportFormat == DltExporter::FormatDltDecoded)) { filters << "DLT Files (*.dlt)" <<"All files (*.*)"; dialog.setDefaultSuffix("dlt"); dialog.setWindowTitle("Export to DLT file"); qDebug() << "DLT Export to Dlt"; } else if(exportFormat == DltExporter::FormatAscii) { filters << "Ascii Files (*.txt)" <<"All files (*.*)"; dialog.setDefaultSuffix("txt"); dialog.setWindowTitle("Export to Ascii file"); qDebug() << "DLT Export to Ascii"; } else if(exportFormat == DltExporter::FormatUTF8) { filters << "UTF8 Text Files (*.txt)" <<"All files (*.*)"; dialog.setDefaultSuffix("txt"); dialog.setWindowTitle("Export to UTF8 file"); qDebug() << "DLT Export to UTF8"; } else if(exportFormat == DltExporter::FormatCsv) { filters << "CSV Files (*.csv)" <<"All files (*.*)"; dialog.setDefaultSuffix("csv"); dialog.setWindowTitle("Export to CSV file"); qDebug() << "DLT Export to CSV"; } dialog.setAcceptMode(QFileDialog::AcceptSave); dialog.setDirectory(workingDirectory.getExportDirectory()); dialog.setNameFilters(filters); dialog.exec(); if(dialog.result() != QFileDialog::Accepted || dialog.selectedFiles().count() < 1) { return; } QString fileName = dialog.selectedFiles()[0]; if(fileName.isEmpty()) return; /* change last export directory */ workingDirectory.setExportDirectory(QFileInfo(fileName).absolutePath()); DltExporter exporter(this); QFile outfile(fileName); if(exportSelection == DltExporter::SelectionSelected) exporter.exportMessages(&qfile, &outfile, &pluginManager,exportFormat,exportSelection,&list); else exporter.exportMessages(&qfile, &outfile, &pluginManager,exportFormat,exportSelection); } void MainWindow::on_action_menuFile_SaveAs_triggered() { QFileDialog dialog(this); QStringList filters; filters << "DLT Files (*.dlt)" <<"All files (*.*)"; dialog.setAcceptMode(QFileDialog::AcceptSave); dialog.setDefaultSuffix("dlt"); dialog.setDirectory(workingDirectory.getDltDirectory()); dialog.setNameFilters(filters); dialog.setWindowTitle("Save DLT Log file"); dialog.exec(); if(dialog.result() != QFileDialog::Accepted || dialog.selectedFiles().count() < 1) { return; } QString fileName = dialog.selectedFiles()[0]; if(fileName.isEmpty() || dialog.result() == QDialog::Rejected) { return; } on_SaveAs_triggered(fileName); } void MainWindow::on_SaveAs_triggered(QString fileName) { /* check if filename is the same as already open */ if(outputfile.fileName()==fileName) { QMessageBox::critical(0, QString("DLT Viewer"), QString("File is already open:\n")+fileName); return; } /* check if file is writable */ QFileInfo fileinfo(QFileInfo(fileName).absolutePath()); if(!fileinfo.isDir() || !fileinfo.isWritable()) { QMessageBox::critical(0, QString("DLT Viewer"), QString("Cannot write new file:\n")+fileName); return; } /* change DLT file working directory */ workingDirectory.setDltDirectory(QFileInfo(fileName).absolutePath()); qfile.close(); outputfile.close(); QFile sourceFile( outputfile.fileName() ); QFile destFile( fileName ); /* Dialog will ask if you want to replace */ if(destFile.exists()) { if(!destFile.remove()) { QMessageBox::critical(0, QString("DLT Viewer"), QString("Save as failed! Could not delete old file.")); return; } } if(!sourceFile.copy(destFile.fileName())) { QMessageBox::critical(0, QString("DLT Viewer"), QString("Save as failed! Could not move to new destination.")); return; } outputfile.setFileName(fileName); outputfileIsTemporary = false; outputfileIsFromCLI = false; setCurrentFile(fileName); if(outputfile.open(QIODevice::WriteOnly|QIODevice::Append)) { openFileNames = QStringList(fileName); reloadLogFile(); } else QMessageBox::critical(0, QString("DLT Viewer"), QString("Cannot rename log file \"%1\"\n%2") .arg(fileName) .arg(outputfile.errorString())); } void MainWindow::on_action_menuFile_Clear_triggered() { QString fn = DltFileUtils::createTempFile(DltFileUtils::getTempPath(settings)); if(!fn.length()) { /* Something went horribly wrong with file name creation * There's nothing we can do at this point */ return; } //clear search history list searchHistory.clear(); //clear all the action buttons from history for (int i = 0; i < MaxSearchHistory; i++) { searchHistoryActs[i]->setVisible(false); } // clear the cache stored for the history searchDlg->clearCacheHistory(); QString oldfn = outputfile.fileName(); if(outputfile.isOpen()) { if (outputfile.size() == 0) { deleteactualFile(); } else { outputfile.close(); } } outputfile.setFileName(fn); if(outputfile.open(QIODevice::WriteOnly|QIODevice::Truncate)) { openFileNames = QStringList(fn); reloadLogFile(); } else { QMessageBox::critical(0, QString("DLT Viewer"), QString("Cannot open log file \"%1\"\n%2") .arg(fn) .arg(outputfile.errorString())); } if(outputfileIsTemporary && !settings->tempSaveOnClear && !outputfileIsFromCLI) { QFile dfile(oldfn); if(!dfile.remove()) { QMessageBox::critical(0, QString("DLT Viewer"), QString("Cannot delete log file \"%1\"\n%2") .arg(oldfn) .arg(dfile.errorString())); } } outputfileIsTemporary = true; outputfileIsFromCLI = false; return; } void MainWindow::contextLoadingFile(QDltMsg &msg) { /* analyse message, check if DLT control message response */ if ( (msg.getType()==QDltMsg::DltTypeControl) && (msg.getSubtype()==QDltMsg::DltControlResponse)) { /* find ecu item */ EcuItem *ecuitemFound = 0; for(int num = 0; num < project.ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project.ecu->topLevelItem(num); if(ecuitem->id == msg.getEcuid()) { ecuitemFound = ecuitem; break; } } if(!ecuitemFound) { /* no Ecuitem found, create a new one */ ecuitemFound = new EcuItem(0); /* update ECU item */ ecuitemFound->id = msg.getEcuid(); ecuitemFound->update(); /* add ECU to configuration */ project.ecu->addTopLevelItem(ecuitemFound); /* Update the ECU list in control plugins */ updatePluginsECUList(); pluginManager.stateChanged(project.ecu->indexOfTopLevelItem(ecuitemFound), QDltConnection::QDltConnectionOffline,ecuitemFound->getHostname()); } controlMessage_ReceiveControlMessage(ecuitemFound,msg); } } void MainWindow::reloadLogFileStop() { } void MainWindow::reloadLogFileProgressMax(quint64 num) { statusProgressBar->setRange(0,num); } void MainWindow::reloadLogFileProgress(quint64 num) { statusProgressBar->setValue(num); } void MainWindow::reloadLogFileProgressText(QString text) { statusProgressBar->setFormat(QString("%1 %p%").arg(text)); } void MainWindow::reloadLogFileVersionString(QString ecuId, QString version) { // version message found in loading file if(!autoloadPluginsVersionEcus.contains(ecuId)) { autoloadPluginsVersionStrings.append(version); autoloadPluginsVersionEcus.append(ecuId); statusFileVersion->setText("Version: "+autoloadPluginsVersionStrings.join(" ")); if(settings->pluginsAutoloadPath) { pluginsAutoload(version); } } } void MainWindow::reloadLogFileFinishIndex() { // show already unfiltered messages tableModel->setForceEmpty(false); tableModel->modelChanged(); this->update(); // force update restoreSelection(); } void MainWindow::reloadLogFileFinishFilter() { // unlock table view //ui->tableView->unlock(); // run through all viewer plugins // must be run in the UI thread, if some gui actions are performed if((dltIndexer->getMode() == DltFileIndexer::modeIndexAndFilter) && dltIndexer->getPluginsEnabled()) { QList activeViewerPlugins; activeViewerPlugins = pluginManager.getViewerPlugins(); for(int i = 0; i < activeViewerPlugins.size(); i++){ QDltPlugin *item = (QDltPlugin*)activeViewerPlugins.at(i); item->initFileFinish(); } } // enable filter if requested qfile.enableFilter(DltSettingsManager::getInstance()->value("startup/filtersEnabled", true).toBool()); qfile.enableSortByTime(DltSettingsManager::getInstance()->value("startup/sortByTimeEnabled", false).toBool()); // updateIndex, if messages are received in between updateIndex(); // update table tableModel->setForceEmpty(false); tableModel->modelChanged(); this->update(); // force update restoreSelection(); m_searchtableModel->modelChanged(); // process getLogInfoMessages if(( dltIndexer->getMode() == DltFileIndexer::modeIndexAndFilter) && settings->updateContextLoadingFile) { QList list = dltIndexer->getGetLogInfoList(); QDltMsg msg; for(int num=0;numreset(); statusProgressBar->hide(); } void MainWindow::reloadLogFileFinishDefaultFilter() { // hide progress bar when finished statusProgressBar->reset(); statusProgressBar->hide(); } void MainWindow::reloadLogFile(bool update, bool multithreaded) { /* check if in logging only mode, then do not create index */ tableModel->setLoggingOnlyMode(settings->loggingOnlyMode); tableModel->modelChanged(); if(settings->loggingOnlyMode) { return; } /* clear autoload plugins ecu list */ if(!update) { autoloadPluginsVersionEcus.clear(); autoloadPluginsVersionStrings.clear(); statusFileVersion->setText("Version: "); } // update indexFilter only if index already generated if(update) { if(DltSettingsManager::getInstance()->value("startup/filtersEnabled", true).toBool()) dltIndexer->setMode(DltFileIndexer::modeFilter); else dltIndexer->setMode(DltFileIndexer::modeNone); saveSelection(); } else { dltIndexer->setMode(DltFileIndexer::modeIndexAndFilter); clearSelection(); } // prevent further receiving any new messages saveAndDisconnectCurrentlyConnectedSerialECUs(); // clear all tables ui->tableView->selectionModel()->clear(); m_searchtableModel->clear_SearchResults(); // force empty table tableModel->setForceEmpty(true); tableModel->modelChanged(); // stop last indexing process, if any dltIndexer->stop(); // open qfile if(!update) { for(int num=0;numvalue("startup/filtersEnabled", true).toBool()); qfile.enableFilter(false); // lock table view //ui->tableView->lock(); // initialise progress bar statusProgressBar->reset(); statusProgressBar->show(); // set name of opened log file in status bar statusFilename->setText(outputfile.fileName()); // enable plugins dltIndexer->setPluginsEnabled(DltSettingsManager::getInstance()->value("startup/pluginsEnabled", true).toBool()); dltIndexer->setFiltersEnabled(DltSettingsManager::getInstance()->value("startup/filtersEnabled", true).toBool()); dltIndexer->setSortByTimeEnabled(DltSettingsManager::getInstance()->value("startup/sortByTimeEnabled", false).toBool()); dltIndexer->setMultithreaded(multithreaded); if(settings->filterCache) dltIndexer->setFilterCache(settings->filterCacheName); else dltIndexer->setFilterCache(QString("")); // run through all viewer plugins // must be run in the UI thread, if some gui actions are performed if( (dltIndexer->getMode() == DltFileIndexer::modeIndexAndFilter) && dltIndexer->getPluginsEnabled()) { QList activeViewerPlugins; activeViewerPlugins = pluginManager.getViewerPlugins(); for(int i = 0; i < activeViewerPlugins.size(); i++){ QDltPlugin *item = (QDltPlugin*)activeViewerPlugins.at(i); item->initFileStart(&qfile); } } // start indexing if(multithreaded) dltIndexer->start(); else dltIndexer->run(); } void MainWindow::reloadLogFileDefaultFilter() { // stop last indexing process, if any dltIndexer->stop(); // set indexing mode dltIndexer->setMode(DltFileIndexer::modeDefaultFilter); // initialise progress bar statusProgressBar->reset(); statusProgressBar->show(); // enable plugins dltIndexer->setPluginsEnabled(DltSettingsManager::getInstance()->value("startup/pluginsEnabled", true).toBool()); dltIndexer->setFiltersEnabled(DltSettingsManager::getInstance()->value("startup/filtersEnabled", true).toBool()); dltIndexer->setSortByTimeEnabled(DltSettingsManager::getInstance()->value("startup/sortByTimeEnabled", false).toBool()); // start indexing dltIndexer->start(); } void MainWindow::applySettings() { QFont tableViewFont = ui->tableView->font(); tableViewFont.setPointSize(settings->fontSize); ui->tableView->setFont(tableViewFont); // Rescale the height of a row to choosen font size + 8 pixels ui->tableView->verticalHeader()->setDefaultSectionSize(settings->fontSize+8); settings->showIndex?ui->tableView->showColumn(0):ui->tableView->hideColumn(0); settings->showTime?ui->tableView->showColumn(1):ui->tableView->hideColumn(1); settings->showTimestamp?ui->tableView->showColumn(2):ui->tableView->hideColumn(2); settings->showCount?ui->tableView->showColumn(3):ui->tableView->hideColumn(3); settings->showEcuId?ui->tableView->showColumn(4):ui->tableView->hideColumn(4); settings->showApId?ui->tableView->showColumn(5):ui->tableView->hideColumn(5); settings->showCtId?ui->tableView->showColumn(6):ui->tableView->hideColumn(6); settings->showSessionId?ui->tableView->showColumn(7):ui->tableView->hideColumn(7); settings->showType?ui->tableView->showColumn(8):ui->tableView->hideColumn(8); settings->showSubtype?ui->tableView->showColumn(9):ui->tableView->hideColumn(9); settings->showMode?ui->tableView->showColumn(10):ui->tableView->hideColumn(10); settings->showNoar?ui->tableView->showColumn(11):ui->tableView->hideColumn(11); settings->showPayload?ui->tableView->showColumn(12):ui->tableView->hideColumn(12); DltSettingsManager *settingsmanager = DltSettingsManager::getInstance(); int refreshRate = settingsmanager->value("RefreshRate",DEFAULT_REFRESH_RATE).toInt(); if ( refreshRate ) draw_interval = 1000 / refreshRate; else draw_interval = 1000 / DEFAULT_REFRESH_RATE; } void MainWindow::on_action_menuFile_Settings_triggered() { /* show settings dialog */ settings->writeDlg(); /* store old values */ int defaultFilterPath = settings->defaultFilterPath; QString defaultFilterPathName = settings->defaultFilterPathName; int loggingOnlyMode=settings->loggingOnlyMode; if(settings->exec()==1) { /* change settings and store settings persistently */ settings->readDlg(); settings->writeSettings(this); /* Apply settings to table */ applySettings(); /* reload multifilter list if changed */ if((defaultFilterPath != settings->defaultFilterPath)||(settings->defaultFilterPath && defaultFilterPathName != settings->defaultFilterPathName)) { on_actionDefault_Filter_Reload_triggered(); } updateScrollButton(); if(loggingOnlyMode!=settings->loggingOnlyMode) { tableModel->setLoggingOnlyMode(settings->loggingOnlyMode); tableModel->modelChanged(); if(!settings->loggingOnlyMode) QMessageBox::information(0, QString("DLT Viewer"), QString("Logging only mode disabled! Please reload DLT file to view file!")); } // update table, perhaps settings changed table, e.g. number of columns tableModel->modelChanged(); } } void MainWindow::on_action_menuFile_Quit_triggered() { /* TODO: Add quit code here */ this->close(); } void MainWindow::on_action_FindNext() { if(!searchTextbox->text().isEmpty() && !list.contains(searchTextbox->text())) { list.append(searchTextbox->text()); } m_CompleterModel.setStringList(list); searchTextbox->setCompleter(newCompleter); newCompleter->setCaseSensitivity(Qt::CaseInsensitive); } void MainWindow::on_action_menuProject_New_triggered() { /* TODO: Ask for saving project if changed */ /* create new project */ this->setWindowTitle(QString("DLT Viewer - unnamed project - Version : %1 %2").arg(PACKAGE_VERSION).arg(PACKAGE_VERSION_STATE)); project.Clear(); /* Update the ECU list in control plugins */ updatePluginsECUList(); } void MainWindow::on_action_menuProject_Open_triggered() { /* TODO: Ask for saving project if changed */ QString fileName = QFileDialog::getOpenFileName(this, tr("Open DLT Project file"), workingDirectory.getDlpDirectory(), tr("DLT Project Files (*.dlp);;All files (*.*)")); /* open existing project */ if(!fileName.isEmpty()) { openDlpFile(fileName); } } bool MainWindow::anyPluginsEnabled() { if(!(DltSettingsManager::getInstance()->value("startup/pluginsEnabled", true).toBool())) { return false; } return (pluginManager.sizeEnabled()>0); } bool MainWindow::anyFiltersEnabled() { if(!(DltSettingsManager::getInstance()->value("startup/filtersEnabled", true).toBool())) { return false; } bool foundEnabledFilter = false; for(int num = 0; num < project.filter->topLevelItemCount (); num++) { FilterItem *item = (FilterItem*)project.filter->topLevelItem(num); if(item->checkState(0) == Qt::Checked) { foundEnabledFilter = true; break; } } return foundEnabledFilter; } bool MainWindow::openDlfFile(QString fileName,bool replace) { if(!fileName.isEmpty() && project.LoadFilter(fileName,replace)) { workingDirectory.setDlfDirectory(QFileInfo(fileName).absolutePath()); setCurrentFilters(fileName); applyConfigEnabled(true); on_filterWidget_itemSelectionChanged(); ui->tabWidget->setCurrentWidget(ui->tabPFilter); } return true; } bool MainWindow::openDlpFile(QString fileName) { /* Open existing project */ if(project.Load(fileName)) { /* Applies project settings and save it to registry */ applySettings(); /* change Project file working directory */ workingDirectory.setDlpDirectory(QFileInfo(fileName).absolutePath()); this->setWindowTitle(QString("DLT Viewer - "+fileName+" - Version : %1 %2").arg(PACKAGE_VERSION).arg(PACKAGE_VERSION_STATE)); /* Load the plugins description files after loading project */ updatePlugins(); setCurrentProject(fileName); /* Update the ECU list in control plugins */ updatePluginsECUList(); /* After loading the project file update the filters */ filterUpdate(); /* Finally, enable the 'Apply' button, if needed */ if(anyPluginsEnabled() || anyFiltersEnabled()) { applyConfigEnabled(true); } // Reload logile to enable filters from project file if(OptManager::getInstance()->isConvert() || OptManager::getInstance()->isPlugin()) // if dlt viewer started as converter or with plugin option load file non multithreaded reloadLogFile(false,false); else // normally load log file mutithreaded reloadLogFile(); return true; } else { return false; } } void MainWindow::on_action_menuProject_Save_triggered() { QFileDialog dialog(this); QStringList filters; filters << "DLT Project Files (*.dlp)" <<"All files (*.*)"; dialog.setAcceptMode(QFileDialog::AcceptSave); dialog.setDefaultSuffix("dlp"); dialog.setDirectory(workingDirectory.getDlpDirectory()); dialog.setNameFilters(filters); dialog.setWindowTitle("Save DLT Project file"); dialog.exec(); if(dialog.result() != QFileDialog::Accepted || dialog.selectedFiles().count() < 1) { return; } QString fileName = dialog.selectedFiles()[0]; /* save project */ if(fileName.isEmpty() || dialog.result() == QDialog::Rejected) { //return; } else if( project.Save(fileName)) { /* change Project file working directory */ workingDirectory.setDlpDirectory(QFileInfo(fileName).absolutePath()); this->setWindowTitle(QString("DLT Viewer - "+fileName+" - Version : %1 %2").arg(PACKAGE_VERSION).arg(PACKAGE_VERSION_STATE)); setCurrentProject(fileName); } } QStringList MainWindow::getSerialPortsWithQextEnumerator(){ QList ports = QextSerialEnumerator::getPorts(); QStringList portList; #ifdef Q_OS_WIN for (int i = 0; i < ports.size(); i++) { portList << ports.at(i).portName; } #else for (int i = 0; i < ports.size(); i++) { portList << ports.at(i).physName; } #endif return portList; } void MainWindow::on_action_menuConfig_ECU_Add_triggered() { QStringList hostnameListPreset; hostnameListPreset << "localhost"; QStringList portListPreset = getSerialPortsWithQextEnumerator(); /* show ECU configuration dialog */ EcuDialog dlg; EcuItem initItem; dlg.setData(initItem); /* Read settings for recent hostnames and ports */ recentHostnames = DltSettingsManager::getInstance()->value("other/recentHostnameList",hostnameListPreset).toStringList(); recentPorts = DltSettingsManager::getInstance()->value("other/recentPortList",portListPreset).toStringList(); dlg.setHostnameList(recentHostnames); dlg.setPortList(recentPorts); if(dlg.exec()==1) { /* add new ECU to configuration */ EcuItem* ecuitem = new EcuItem(0); dlg.setDialogToEcuItem(ecuitem); /* update ECU item */ ecuitem->update(); /* add ECU to configuration */ project.ecu->addTopLevelItem(ecuitem); /* Update settings for recent hostnames and ports */ setCurrentHostname(ecuitem->getHostname()); setCurrentPort(ecuitem->getPort()); /* Update the ECU list in control plugins */ updatePluginsECUList(); pluginManager.stateChanged(project.ecu->indexOfTopLevelItem(ecuitem), QDltConnection::QDltConnectionOffline,ecuitem->getHostname()); } } void MainWindow::on_action_menuConfig_ECU_Edit_triggered() { /* find selected ECU in configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == ecu_type)) { QStringList hostnameListPreset; hostnameListPreset << "localhost"; QStringList portListPreset = getSerialPortsWithQextEnumerator(); EcuItem* ecuitem = (EcuItem*) list.at(0); /* show ECU configuration dialog */ EcuDialog dlg; dlg.setData(*ecuitem); /* Read settings for recent hostnames and ports */ recentHostnames = DltSettingsManager::getInstance()->value("other/recentHostnameList",hostnameListPreset).toStringList(); recentPorts = DltSettingsManager::getInstance()->value("other/recentPortList",portListPreset).toStringList(); setCurrentHostname(ecuitem->getHostname()); //serial Port setCurrentPort(ecuitem->getPort()); dlg.setHostnameList(recentHostnames); dlg.setPortList(recentPorts); if(dlg.exec()) { bool interfaceChanged = false; if((ecuitem->interfacetype != dlg.interfacetype() || ecuitem->getHostname() != dlg.hostname() || ecuitem->getIpport() != dlg.tcpport() || ecuitem->getPort() != dlg.port() || ecuitem->getBaudrate() != dlg.baudrate()) && ecuitem->tryToConnect) { interfaceChanged = true; disconnectECU(ecuitem); } dlg.setDialogToEcuItem(ecuitem); /* update ECU item */ ecuitem->update(); /* if interface settings changed, reconnect */ if(interfaceChanged) { connectECU(ecuitem); } /* send new default log level to ECU, if connected and if selected in dlg */ if(ecuitem->connected && ecuitem->updateDataIfOnline) { sendUpdates(ecuitem); } /* Update settings for recent hostnames and ports */ setCurrentHostname(ecuitem->getHostname()); setCurrentPort(ecuitem->getPort()); /* Update the ECU list in control plugins */ updatePluginsECUList(); } } } void MainWindow::on_action_menuConfig_ECU_Delete_triggered() { /* find selected ECU in configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == ecu_type)) { /* disconnect, if connected */ disconnectECU((EcuItem*)list.at(0)); /* delete ECU from configuration */ delete project.ecu->takeTopLevelItem(project.ecu->indexOfTopLevelItem(list.at(0))); /* Update the ECU list in control plugins */ updatePluginsECUList(); } } void MainWindow::on_action_menuConfig_Delete_All_Contexts_triggered() { /* find selected ECU in configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == ecu_type)) { /* delete all applications from ECU from configuration */ EcuItem* ecuitem = (EcuItem*) list.at(0); (ecuitem->takeChildren()).clear(); } } void MainWindow::on_action_menuConfig_Application_Add_triggered() { /* find selected ECU in configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == ecu_type)) { /* show Application configuration dialog */ ApplicationDialog dlg("APP","A new Application"); EcuItem* ecuitem = (EcuItem*)list.at(0); if(dlg.exec()==1) { /* change settings of application configuration */ ApplicationItem* appitem = new ApplicationItem(ecuitem); appitem->id = dlg.id(); appitem->description = dlg.description(); /* update application item */ appitem->update(); /* add new application to ECU */ ecuitem->addChild(appitem); } } } void MainWindow::on_action_menuConfig_Application_Edit_triggered() { /* find selected application in configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == application_type)) { ApplicationItem* appitem = (ApplicationItem*) list.at(0); /* show Application configuration dialog */ ApplicationDialog dlg(appitem->id,appitem->description); if(dlg.exec()) { appitem->id = dlg.id(); appitem->description = dlg.description(); /* update application item */ appitem->update(); } } } void MainWindow::on_action_menuConfig_Application_Delete_triggered() { /* find selected application in configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == application_type)) { ApplicationItem* appitem = (ApplicationItem*) list.at(0); /* remove application */ delete appitem->parent()->takeChild(appitem->parent()->indexOfChild(appitem)); } } void MainWindow::on_action_menuConfig_Context_Add_triggered() { /* find selected application in configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == application_type)) { /* show Context configuration dialog */ ContextDialog dlg("CON","A new Context",-1,-1); ApplicationItem* appitem = (ApplicationItem*)list.at(0); if(dlg.exec()==1) { ContextItem* conitem = new ContextItem(appitem); conitem->id = dlg.id(); conitem->description = dlg.description(); conitem->loglevel = dlg.loglevel(); conitem->tracestatus = dlg.tracestatus(); /* update context item */ conitem->update(); /* add new context to application */ appitem->addChild(conitem); /* send new default log level to ECU, if connected and if selected in dlg */ if(dlg.update()) { EcuItem* ecuitem = (EcuItem*) appitem->parent(); controlMessage_SetLogLevel(ecuitem,appitem->id,conitem->id,conitem->loglevel); controlMessage_SetTraceStatus(ecuitem,appitem->id,conitem->id,conitem->tracestatus); /* update status */ conitem->status = ContextItem::valid; conitem->update(); } } } } void MainWindow::on_action_menuConfig_Context_Edit_triggered() { /* find selected context in configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == context_type)) { ContextItem* conitem = (ContextItem*) list.at(0); /* show Context configuration dialog */ ContextDialog dlg(conitem->id,conitem->description,conitem->loglevel,conitem->tracestatus); if(dlg.exec()) { conitem->id = dlg.id(); conitem->description = dlg.description(); conitem->loglevel = dlg.loglevel(); conitem->tracestatus = dlg.tracestatus(); /* update context item */ conitem->update(); /* send new log level to ECU, if connected and if selected in dlg */ if(dlg.update()) { ApplicationItem* appitem = (ApplicationItem*) conitem->parent(); EcuItem* ecuitem = (EcuItem*) appitem->parent(); if(ecuitem->connected) { controlMessage_SetLogLevel(ecuitem,appitem->id,conitem->id,conitem->loglevel); controlMessage_SetTraceStatus(ecuitem,appitem->id,conitem->id,conitem->tracestatus); /* update status */ conitem->status = ContextItem::valid; conitem->update(); } } } } } void MainWindow::on_action_menuDLT_Edit_All_Log_Levels_triggered() { MultipleContextDialog dlg(0,0); if(dlg.exec()) { QList list = project.ecu->selectedItems(); if(list.at(0)->type() == context_type){ //Nothing to do } if(list.at(0)->type() == application_type){ //qDebug()<<"Application selected"; ApplicationItem *applicationItem; for(int i=0; ichildCount();j++){ contextItem = (ContextItem*)applicationItem->child(j); contextItem->setSelected(true); } applicationItem->setSelected(false); } } if(list.at(0)->type() == ecu_type){ //qDebug()<<"ECU selected"; EcuItem *ecuItem; for(int i=0; ichildCount(); j++){ applicationItem = (ApplicationItem*) ecuItem->child(j); ContextItem *contextItem; for(int k=0; kchildCount();k++){ contextItem = (ContextItem*)applicationItem->child(k); contextItem->setSelected(true); } } ecuItem->setSelected(false); } } list = project.ecu->selectedItems(); if((list.count() >= 1)) { ContextItem *conitem; for(int i=0; itype() == context_type){ conitem = (ContextItem*) list.at(i); conitem->loglevel = dlg.loglevel(); conitem->tracestatus = dlg.tracestatus(); /* update context item */ conitem->update(); /* send new log level to ECU, if connected and if selected in dlg */ if(dlg.update()) { ApplicationItem* appitem = (ApplicationItem*) conitem->parent(); EcuItem* ecuitem = (EcuItem*) appitem->parent(); if(ecuitem->connected) { controlMessage_SetLogLevel(ecuitem,appitem->id,conitem->id,conitem->loglevel); controlMessage_SetTraceStatus(ecuitem,appitem->id,conitem->id,conitem->tracestatus); /* update status */ conitem->status = ContextItem::valid; conitem->update(); } } conitem->setSelected(false); } } } } } void MainWindow::on_action_menuConfig_Context_Delete_triggered() { /* find selected context in configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == context_type)) { ContextItem* conitem = (ContextItem*) list.at(0); /* delete context from application */ delete conitem->parent()->takeChild(conitem->parent()->indexOfChild(conitem)); } } void MainWindow::on_configWidget_customContextMenuRequested(QPoint pos) { /* show custom pop menu for configuration */ QPoint globalPos = ui->configWidget->mapToGlobal(pos); QMenu menu(project.ecu); QAction *action; QList list = project.ecu->selectedItems(); if(list.count() > 1 && (list.at(0)->type() == context_type)) { action = new QAction("&Edit All Log Levels...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuDLT_Edit_All_Log_Levels_triggered())); menu.addAction(action); menu.addSeparator(); action = new QAction("DLT &Set Log Levels...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuDLT_Set_Log_Level_triggered())); menu.addAction(action); } else if((list.count() > 1) && (list.at(0)->type() == ecu_type)) { action = new QAction("&Edit All Log Levels...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuDLT_Edit_All_Log_Levels_triggered())); menu.addAction(action); } else if((list.count() == 1) && (list.at(0)->type() == ecu_type)) { /* ECU is selected */ action = new QAction("ECU Add...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuConfig_ECU_Add_triggered())); menu.addAction(action); action = new QAction("ECU Edit...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuConfig_ECU_Edit_triggered())); menu.addAction(action); action = new QAction("ECU Delete", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuConfig_ECU_Delete_triggered())); menu.addAction(action); action = new QAction("&ECU Edit All Log Levels...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuDLT_Edit_All_Log_Levels_triggered())); menu.addAction(action); action = new QAction("ECU Delete All Contexts", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuConfig_Delete_All_Contexts_triggered())); menu.addAction(action); menu.addSeparator(); action = new QAction("Application Add...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuConfig_Application_Add_triggered())); menu.addAction(action); menu.addSeparator(); action = new QAction("ECU Connect", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuConfig_Connect_triggered())); menu.addAction(action); action = new QAction("ECU Disconnect", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuConfig_Disconnect_triggered())); menu.addAction(action); menu.addSeparator(); action = new QAction("Expand All ECUs", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuConfig_Expand_All_ECUs_triggered())); menu.addAction(action); action = new QAction("Collapse All ECUs", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuConfig_Collapse_All_ECUs_triggered())); menu.addAction(action); menu.addSeparator(); action = new QAction("DLT Get Log Info", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuDLT_Get_Log_Info_triggered())); menu.addAction(action); action = new QAction("DLT Set All Log Levels", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuDLT_Set_All_Log_Levels_triggered())); menu.addAction(action); action = new QAction("DLT Get Default Log Level", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuDLT_Get_Default_Log_Level_triggered())); menu.addAction(action); action = new QAction("DLT Set Default Log Level", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuDLT_Set_Default_Log_Level_triggered())); menu.addAction(action); menu.addSeparator(); action = new QAction("Store Config", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuDLT_Store_Config_triggered())); menu.addAction(action); action = new QAction("Reset to Factory Default", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuDLT_Reset_to_Factory_Default_triggered())); menu.addAction(action); menu.addSeparator(); action = new QAction("Send Injection...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuDLT_Send_Injection_triggered())); menu.addAction(action); action = new QAction("Get Software Version", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuDLT_Get_Software_Version_triggered())); menu.addAction(action); action = new QAction("Get Local Time", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuDLT_Get_Local_Time_2_triggered())); menu.addAction(action); menu.addSeparator(); action = new QAction("&Filter Add", this); connect(action, SIGNAL(triggered()), this, SLOT(filterAdd())); menu.addAction(action); } else if((list.count() > 1) && (list.at(0)->type() == application_type)) { action = new QAction("&Edit All Log Levels...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuDLT_Edit_All_Log_Levels_triggered())); menu.addAction(action); } else if((list.count() == 1) && (list.at(0)->type() == application_type)) { /* Application is selected */ action = new QAction("&Application Edit...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuConfig_Application_Edit_triggered())); menu.addAction(action); action = new QAction("A&pplication Delete...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuConfig_Application_Delete_triggered())); menu.addAction(action); menu.addSeparator(); action = new QAction("&Context Add...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuConfig_Context_Add_triggered())); menu.addAction(action); action = new QAction("&Edit All Log Levels...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuDLT_Edit_All_Log_Levels_triggered())); menu.addAction(action); menu.addSeparator(); action = new QAction("&Filter Add", this); connect(action, SIGNAL(triggered()), this, SLOT(filterAdd())); menu.addAction(action); } else if((list.count() == 1) && (list.at(0)->type() == context_type)) { /* Context is selected */ action = new QAction("&Context Edit...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuConfig_Context_Edit_triggered())); menu.addAction(action); action = new QAction("C&ontext Delete...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuConfig_Context_Delete_triggered())); menu.addAction(action); menu.addSeparator(); action = new QAction("DLT &Set Log Level...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuDLT_Set_Log_Level_triggered())); menu.addAction(action); menu.addSeparator(); action = new QAction("&Filter Add", this); connect(action, SIGNAL(triggered()), this, SLOT(filterAdd())); menu.addAction(action); menu.addSeparator(); action = new QAction("Send Injection...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuDLT_Send_Injection_triggered())); menu.addAction(action); } else { /* nothing is selected */ action = new QAction("ECU Add...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuConfig_ECU_Add_triggered())); menu.addAction(action); } /* show popup menu */ menu.exec(globalPos); } void MainWindow::on_filterWidget_customContextMenuRequested(QPoint pos) { /* show custom pop menu for filter configuration */ QPoint globalPos = ui->filterWidget->mapToGlobal(pos); QMenu menu(project.ecu); QAction *action; QList list = project.filter->selectedItems(); action = new QAction("Save Filter...", this); if(project.filter->topLevelItemCount() <= 0) action->setEnabled(false); else connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuFilter_Save_As_triggered())); menu.addAction(action); action = new QAction("Load Filter...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuFilter_Load_triggered())); menu.addAction(action); action = new QAction("Append Filter...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuFilter_Append_Filters_triggered())); menu.addAction(action); menu.addSeparator(); action = new QAction("Filter Add...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuFilter_Add_triggered())); menu.addAction(action); action = new QAction("Filter Edit...", this); if(list.size() != 1) action->setEnabled(false); else connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuFilter_Edit_triggered())); menu.addAction(action); action = new QAction("Filter Duplicate...", this); if(list.size() != 1) action->setEnabled(false); else connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuFilter_Duplicate_triggered())); menu.addAction(action); action = new QAction("Filter Delete", this); if(list.size() != 1) action->setEnabled(false); else connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuFilter_Delete_triggered())); menu.addAction(action); /* show popup menu */ menu.exec(globalPos); } void MainWindow::on_pluginWidget_customContextMenuRequested(QPoint pos) { /* show custom pop menu for plugin configuration */ QPoint globalPos = ui->pluginWidget->mapToGlobal(pos); QMenu menu(project.ecu); QAction *action; QList list = project.plugin->selectedItems(); if((list.count() == 1) ) { PluginItem* item = (PluginItem*) list.at(0); action = new QAction("Plugin Edit...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuPlugin_Edit_triggered())); menu.addAction(action); menu.addSeparator(); if(item->getPlugin()->isViewer()) { /* If a viewer plugin is disabled, or enabled but not shown, * add 'show' action. Else add 'hide' action */ if(item->getPlugin()->getMode() != QDltPlugin::ModeShow) { action = new QAction("Plugin Show", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuPlugin_Show_triggered())); menu.addAction(action); } else { action = new QAction("Plugin Hide", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuPlugin_Hide_triggered())); menu.addAction(action); } } /* If the plugin is shown or enabled, present the 'disable' option. * Else, present the 'enable' option */ if(item->getMode() != QDltPlugin::ModeDisable) { action = new QAction("Plugin Disable", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuPlugin_Disable_triggered())); menu.addAction(action); } else { action = new QAction("Plugin Enable", this); connect(action, SIGNAL(triggered()), this, SLOT(action_menuPlugin_Enable_triggered())); menu.addAction(action); } /* show popup menu */ menu.exec(globalPos); } } void MainWindow::saveAndDisconnectCurrentlyConnectedSerialECUs() { m_previouslyConnectedSerialECUs.clear(); for(int num = 0; num < project.ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project.ecu->topLevelItem(num); if(ecuitem && ecuitem->connected && ecuitem->interfacetype == EcuItem::INTERFACETYPE_SERIAL) { m_previouslyConnectedSerialECUs.append(num); disconnectECU(ecuitem); } } } void MainWindow::connectPreviouslyConnectedECUs() { for(int i=0;itopLevelItem(m_previouslyConnectedSerialECUs.at(i)); connectECU(ecuitem); } } void MainWindow::connectAll() { if(project.ecu->topLevelItemCount() == 0) { on_action_menuConfig_ECU_Add_triggered(); } for(int num = 0; num < project.ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project.ecu->topLevelItem(num); connectECU(ecuitem); } } void MainWindow::disconnectAll() { for(int num = 0; num < project.ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project.ecu->topLevelItem(num); disconnectECU(ecuitem); } checkConnectionState(); } void MainWindow::disconnectECU(EcuItem *ecuitem) { if(ecuitem->tryToConnect != 0) { /* disconnect from host */ ecuitem->tryToConnect = false; ecuitem->connected = false; ecuitem->connectError.clear(); ecuitem->update(); on_configWidget_itemSelectionChanged(); /* update conenction state */ if(ecuitem->interfacetype == EcuItem::INTERFACETYPE_TCP || ecuitem->interfacetype == EcuItem::INTERFACETYPE_UDP) { /* TCP or UDP */ if (ecuitem->socket->state()!=QAbstractSocket::UnconnectedState) ecuitem->socket->disconnectFromHost(); } else { /* Serial */ ecuitem->m_serialport->close(); } ecuitem->InvalidAll(); } checkConnectionState(); } void MainWindow::on_action_menuConfig_Connect_triggered() { /* get selected ECU from configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == ecu_type)) { EcuItem* ecuitem = (EcuItem*) list.at(0); /* connect to host */ connectECU(ecuitem); } else QMessageBox::warning(0, QString("DLT Viewer"), QString("No ECU selected in configuration!")); } void MainWindow::on_action_menuConfig_Disconnect_triggered() { /* get selected ECU from configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == ecu_type)) { EcuItem* ecuitem = (EcuItem*) list.at(0); disconnectECU(ecuitem); } else QMessageBox::warning(0, QString("DLT Viewer"), QString("No ECU selected in configuration!")); } void MainWindow::connectECU(EcuItem* ecuitem,bool force) { if(ecuitem->tryToConnect == false || force) { ecuitem->tryToConnect = true; ecuitem->connected = false; //ecuitem->connectError.clear(); ecuitem->update(); on_configWidget_itemSelectionChanged(); /* reset receive buffer */ ecuitem->totalBytesRcvd = 0; ecuitem->totalBytesRcvdLastTimeout = 0; ecuitem->ipcon.clear(); ecuitem->serialcon.clear(); /* start socket connection to host */ if(ecuitem->interfacetype == EcuItem::INTERFACETYPE_TCP || ecuitem->interfacetype == EcuItem::INTERFACETYPE_UDP) { /* TCP or UDP */ /* connect socket signals with window slots */ if (ecuitem->socket->state()==QAbstractSocket::UnconnectedState) { disconnect(ecuitem->socket,0,0,0); connect(ecuitem->socket,SIGNAL(connected()),this,SLOT(connected())); connect(ecuitem->socket,SIGNAL(disconnected()),this,SLOT(disconnected())); connect(ecuitem->socket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(error(QAbstractSocket::SocketError))); connect(ecuitem->socket,SIGNAL(readyRead()),this,SLOT(readyRead())); connect(ecuitem->socket,SIGNAL(stateChanged(QAbstractSocket::SocketState)),this,SLOT(stateChangedTCP(QAbstractSocket::SocketState))); //disconnect(ecuitem->socket,0,0,0); ecuitem->socket->connectToHost(ecuitem->getHostname(),ecuitem->getIpport()); } } else { /* Serial */ if(!ecuitem->m_serialport) { PortSettings settings = {ecuitem->getBaudrate(), DATA_8, PAR_NONE, STOP_1, FLOW_OFF, 10}; //Before timeout was 1 ecuitem->m_serialport = new QextSerialPort(ecuitem->getPort(),settings); connect(ecuitem->m_serialport, SIGNAL(readyRead()), this, SLOT(readyRead())); connect(ecuitem->m_serialport,SIGNAL(dsrChanged(bool)),this,SLOT(stateChangedSerial(bool))); } else{ //to keep things consistent: delete old member, create new one //alternatively we could just close the port, and set the new settings. ecuitem->m_serialport->close(); //delete(ecuitem->m_serialport); ecuitem->m_serialport->setBaudRate(ecuitem->getBaudrate()); //ecuitem->m_serialport->setDataBits(settings.DataBits); //ecuitem->m_serialport->setFlowControl(settings.FlowControl); //ecuitem->m_serialport->setStopBits(settings.StopBits); //ecuitem->m_serialport->setParity(settings.Parity); //ecuitem->m_serialport->setTimeout(settings.Timeout_Millisec); ecuitem->m_serialport->setPortName(ecuitem->getPort()); } if(ecuitem->m_serialport->isOpen()) { ecuitem->m_serialport->close(); ecuitem->m_serialport->setBaudRate(ecuitem->getBaudrate()); } ecuitem->m_serialport->open(QIODevice::ReadWrite); if(ecuitem->m_serialport->isOpen()) { ecuitem->connected = true; ecuitem->update(); on_configWidget_itemSelectionChanged(); /* send new default log level to ECU, if selected in dlg */ if (ecuitem->updateDataIfOnline) { sendUpdates(ecuitem); } } } if( (settings->showCtId && settings->showCtIdDesc) || (settings->showApId && settings->showApIdDesc) ){ controlMessage_GetLogInfo(ecuitem); } } checkConnectionState(); } void MainWindow::connected() { /* signal emited when connected to host */ /* find socket which emited signal */ for(int num = 0; num < project.ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project.ecu->topLevelItem(num); if( ecuitem->socket == sender()) { /* update connection state */ ecuitem->connected = true; ecuitem->connectError.clear(); ecuitem->update(); on_configWidget_itemSelectionChanged(); /* reset receive buffer */ ecuitem->totalBytesRcvd = 0; ecuitem->totalBytesRcvdLastTimeout = 0; ecuitem->ipcon.clear(); ecuitem->serialcon.clear(); } } checkConnectionState(); } void MainWindow::checkConnectionState() { bool oneConnected=false; bool oneTryConnect=false; /* find socket which emited signal */ for(int num = 0; num < project.ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project.ecu->topLevelItem(num); if (ecuitem->connected) oneConnected=true; if (ecuitem->tryToConnect) oneTryConnect=true; } qDebug()<<"Connect:at least one ECU connected"<ui->actionConnectAll->setIcon(QIcon(":/toolbar/png/network-transmit-receive_connected.png")); } else { if (oneTryConnect) { this->ui->actionConnectAll->setIcon(QIcon(":/toolbar/png/network-transmit-receive_disconnected.png")); } else { this->ui->actionConnectAll->setIcon(QIcon(":/toolbar/png/network-transmit-receive.png")); } } } void MainWindow::disconnected() { /* signal emited when disconnected to host */ /* find socket which emited signal */ for(int num = 0; num < project.ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project.ecu->topLevelItem(num); if( ecuitem && ecuitem->socket == sender()) { /* update connection state */ ecuitem->connected = false; ecuitem->connectError.clear(); ecuitem->InvalidAll(); ecuitem->update(); on_configWidget_itemSelectionChanged(); /* disconnect socket signals from window slots */ disconnect(ecuitem->socket,0,0,0); } } checkConnectionState(); } void MainWindow::timeout() { for(int num = 0; num < project.ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project.ecu->topLevelItem(num); /* Try to reconnect if the ecuitem has not received * new data for long enough time. * If the indexer is busy indexing, * do not disconnect yet. Wait for future timeouts until * indexer is free. */ if(ecuitem->isAutoReconnectTimeoutPassed() && dltIndexer->tryLock()) { if((ecuitem->interfacetype == EcuItem::INTERFACETYPE_TCP || ecuitem->interfacetype == EcuItem::INTERFACETYPE_UDP) && ecuitem->autoReconnect && ecuitem->connected != 0 && ecuitem->totalBytesRcvd == ecuitem->totalBytesRcvdLastTimeout) { disconnectECU(ecuitem); ecuitem->tryToConnect = true; } ecuitem->totalBytesRcvdLastTimeout = ecuitem->totalBytesRcvd; dltIndexer->unlock(); } if( ecuitem->tryToConnect && !ecuitem->connected) { connectECU(ecuitem,true); } } } void MainWindow::error(QAbstractSocket::SocketError /* socketError */) { /* signal emited when connection to host is not possible */ /* find socket which emited signal */ for(int num = 0; num < project.ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project.ecu->topLevelItem(num); if( ecuitem && ecuitem->socket == sender()) { /* save error */ ecuitem->connectError = ecuitem->socket->errorString(); if(ecuitem->interfacetype == EcuItem::INTERFACETYPE_TCP || ecuitem->interfacetype == EcuItem::INTERFACETYPE_UDP) { /* disconnect socket */ ecuitem->socket->disconnectFromHost(); } /* update connection state */ ecuitem->connected = false; ecuitem->update(); on_configWidget_itemSelectionChanged(); } } } void MainWindow::readyRead() { /* signal emited when socket received data */ /* Delay reading, if indexer is working on the dlt file */ if(dltIndexer->tryLock()) { /* find socket which emited signal */ for(int num = 0; num < project.ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project.ecu->topLevelItem(num); if( ecuitem && (ecuitem->socket == sender() || ecuitem->m_serialport == sender())) { read(ecuitem); } } dltIndexer->unlock(); } } void MainWindow::read(EcuItem* ecuitem) { int32_t bytesRcvd = 0; QDltMsg qmsg; if (!ecuitem) return; QByteArray data; if(ecuitem->interfacetype == EcuItem::INTERFACETYPE_TCP || ecuitem->interfacetype == EcuItem::INTERFACETYPE_UDP) { /* TCP or UDP */ // bytesRcvd = ecuitem->socket->bytesAvailable(); data = ecuitem->socket->readAll(); bytesRcvd = data.size(); ecuitem->ipcon.add(data); } else if(ecuitem->m_serialport) { /* serial */ // bytesRcvd = ecuitem->m_serialport->bytesAvailable(); data = ecuitem->m_serialport->readAll(); bytesRcvd = data.size(); ecuitem->serialcon.add(data); } /* reading data; new data is added to the current buffer */ if (bytesRcvd>0) { ecuitem->totalBytesRcvd += bytesRcvd; while(((ecuitem->interfacetype == EcuItem::INTERFACETYPE_TCP || ecuitem->interfacetype == EcuItem::INTERFACETYPE_UDP) && ecuitem->ipcon.parse(qmsg)) || (ecuitem->interfacetype == EcuItem::INTERFACETYPE_SERIAL && ecuitem->serialcon.parse(qmsg))) { DltStorageHeader str; str.pattern[0]='D'; str.pattern[1]='L'; str.pattern[2]='T'; str.pattern[3]=0x01; /* get time of day */ #if defined(_MSC_VER) time_t today; time(&today); str.seconds = (time_t)today; str.microseconds = 0; #else struct timeval tv; gettimeofday(&tv, NULL); str.seconds = (time_t)tv.tv_sec; /* value is long */ str.microseconds = (int32_t)tv.tv_usec; /* value is long */ #endif QDateTime time = QDateTime::currentDateTime(); str.ecu[0]=0; str.ecu[1]=0; str.ecu[2]=0; str.ecu[3]=0; /* prepare storage header */ if (!qmsg.getEcuid().isEmpty()) dlt_set_id(str.ecu,qmsg.getEcuid().toLatin1()); else dlt_set_id(str.ecu,ecuitem->id.toLatin1()); /* check if message is matching the filter */ if (outputfile.isOpen()) { if ((settings->writeControl && (qmsg.getType()==QDltMsg::DltTypeControl)) || (!(qmsg.getType()==QDltMsg::DltTypeControl))) { // https://bugreports.qt-project.org/browse/QTBUG-26069 outputfile.seek(outputfile.size()); QByteArray bufferHeader = qmsg.getHeader(); QByteArray bufferPayload = qmsg.getPayload(); // set start time when writing first data if(startLoggingDateTime.isNull()) startLoggingDateTime = QDateTime::currentDateTime(); // check if files size limit reached if(settings->maxFileSizeMB && ((outputfile.size()+sizeof(DltStorageHeader)+bufferHeader.size()+bufferPayload.size())>(((size_t)settings->maxFileSizeMB)*1000*1000))) { // get new filename QFileInfo info(outputfile.fileName()); QString newFilename = info.baseName()+ (startLoggingDateTime.toString("__yyyyMMdd_hhmmss"))+ (QDateTime::currentDateTime().toString("__yyyyMMdd_hhmmss"))+ QString(".dlt"); QFileInfo infoNew(info.absolutePath(),newFilename); // rename old file outputfile.copy(outputfile.fileName(),infoNew.absoluteFilePath()); // set new start time startLoggingDateTime = QDateTime::currentDateTime(); // create new file on_New_triggered(info.absoluteFilePath()); } // write datat into file outputfile.write((char*)&str,sizeof(DltStorageHeader)); outputfile.write(bufferHeader); outputfile.write(bufferPayload); outputfile.flush(); /* in Logging only mode send all message to plugins */ if(settings->loggingOnlyMode) { QList activeViewerPlugins; activeViewerPlugins = pluginManager.getViewerPlugins(); for(int i = 0; i < activeViewerPlugins.size(); i++){ QDltPlugin *item = (QDltPlugin*)activeViewerPlugins.at(i); item->updateMsg(-1,qmsg); pluginManager.decodeMsg(qmsg,!OptManager::getInstance()->issilentMode()); item->updateMsgDecoded(-1,qmsg); } } } } /* analyse received message, check if DLT control message response */ if ( (qmsg.getType()==QDltMsg::DltTypeControl) && (qmsg.getSubtype()==QDltMsg::DltControlResponse)) { controlMessage_ReceiveControlMessage(ecuitem,qmsg); } } if(ecuitem->interfacetype == EcuItem::INTERFACETYPE_TCP || ecuitem->interfacetype == EcuItem::INTERFACETYPE_UDP) { /* TCP or UDP */ totalByteErrorsRcvd+=ecuitem->ipcon.bytesError; ecuitem->ipcon.bytesError = 0; totalBytesRcvd+=ecuitem->ipcon.bytesReceived; ecuitem->ipcon.bytesReceived = 0; totalSyncFoundRcvd+=ecuitem->ipcon.syncFound; ecuitem->ipcon.syncFound = 0; } else if(ecuitem->m_serialport) { /* serial */ totalByteErrorsRcvd+=ecuitem->serialcon.bytesError; ecuitem->serialcon.bytesError = 0; totalBytesRcvd+=ecuitem->serialcon.bytesReceived; ecuitem->serialcon.bytesReceived = 0; totalSyncFoundRcvd+=ecuitem->serialcon.syncFound; ecuitem->serialcon.syncFound = 0; } if (outputfile.isOpen() ) { if(!dltIndexer->isRunning()) updateIndex(); } } } void MainWindow::updateIndex() { QList activeViewerPlugins; QList activeDecoderPlugins; QDltPlugin *item = 0; QDltMsg qmsg; activeDecoderPlugins = pluginManager.getDecoderPlugins(); activeViewerPlugins = pluginManager.getViewerPlugins(); /* read received messages in DLT file parser and update DLT message list view */ /* update indexes and table view */ int oldsize = qfile.size(); qfile.updateIndex(); bool silentMode = !OptManager::getInstance()->issilentMode(); if(oldsize!=qfile.size()) { // only run through viewer plugins, if new messages are added for(int i = 0; i < activeViewerPlugins.size(); i++) { item = activeViewerPlugins[i]; item->updateFileStart(); } } for(int num=oldsize;numupdateMsg(num,qmsg); } pluginManager.decodeMsg(qmsg,silentMode); if(qfile.checkFilter(qmsg)) { qfile.addFilterIndex(num); } for(int i = 0; i < activeViewerPlugins.size(); i++){ item = activeViewerPlugins[i]; item->updateMsgDecoded(num,qmsg); } } if (!draw_timer.isActive()) draw_timer.start(draw_interval); if(oldsize!=qfile.size()) { // only run through viewer plugins, if new messages are added for(int i = 0; i < activeViewerPlugins.size(); i++){ item = activeViewerPlugins.at(i); item->updateFileFinish(); } } } void MainWindow::draw_timeout() { drawUpdatedView(); } void MainWindow::drawUpdatedView() { statusByteErrorsReceived->setText(QString("Recv Errors: %1").arg(totalByteErrorsRcvd)); statusBytesReceived->setText(QString("Recv: %1").arg(totalBytesRcvd)); statusSyncFoundReceived->setText(QString("Sync found: %1").arg(totalSyncFoundRcvd)); tableModel->modelChanged(); //Line below would resize the payload column automatically so that the whole content is readable //ui->tableView->resizeColumnToContents(11); //Column 11 is the payload column if(settings->autoScroll) { ui->tableView->scrollToBottom(); } } void MainWindow::on_tableView_selectionChanged(const QItemSelection & selected, const QItemSelection & deselected) { Q_UNUSED(deselected); if(selected.size()>0) { /* With Autoscroll= false the tableview doesn't jump to the right edge, for example, if the payload column is stretched to full size */ if (settings->autoScroll != Qt::Unchecked) { on_actionAutoScroll_triggered(false); scrollButton->setChecked(false); ui->tableView->setAutoScroll(false); } QModelIndex index = selected[0].topLeft(); QDltPlugin *item = 0; QList activeViewerPlugins; QList activeDecoderPlugins; QDltMsg msg; int msgIndex; //scroll manually because autoscroll is off ui->tableView->scrollTo(index); msgIndex = qfile.getMsgFilterPos(index.row()); msg.setMsg(qfile.getMsgFilter(index.row())); activeViewerPlugins = pluginManager.getViewerPlugins(); activeDecoderPlugins = pluginManager.getDecoderPlugins(); qDebug() << "Message at row" << index.row() << "at index" << msgIndex << "selected."; qDebug() << "Viewer plugins" << activeViewerPlugins.size() << "decoder plugins" << activeDecoderPlugins.size() ; if(activeViewerPlugins.isEmpty() && activeDecoderPlugins.isEmpty()) { return; } // Update plugins for(int i = 0; i < activeViewerPlugins.size() ; i++) { item = (QDltPlugin*)activeViewerPlugins.at(i); item->selectedIdxMsg(msgIndex,msg); } pluginManager.decodeMsg(msg,!OptManager::getInstance()->issilentMode()); for(int i = 0; i < activeViewerPlugins.size(); i++){ item = (QDltPlugin*)activeViewerPlugins.at(i); item->selectedIdxMsgDecoded(msgIndex,msg); } } } void MainWindow::controlMessage_ReceiveControlMessage(EcuItem *ecuitem, QDltMsg &msg) { const char *ptr; int32_t length; QByteArray payload = msg.getPayload(); ptr = payload.constData(); length = payload.size(); /* control message was received */ uint32_t service_id=0, service_id_tmp=0; DLT_MSG_READ_VALUE(service_id_tmp,ptr,length,uint32_t); service_id=DLT_ENDIAN_GET_32( ((msg.getEndianness()==QDltMsg::DltEndiannessBigEndian)?DLT_HTYP_MSBF:0), service_id_tmp); /* check if plugin autoload enabled and * it is a version message and version string not already parsed */ if(service_id == 0x13 && !autoloadPluginsVersionEcus.contains(msg.getEcuid())) { versionString(msg); autoloadPluginsVersionEcus.append(msg.getEcuid()); } switch (service_id) { case DLT_SERVICE_ID_GET_LOG_INFO: { /* Only status 1,2,6,7,8 is supported yet! */ uint8_t status=0; DLT_MSG_READ_VALUE(status,ptr,length,uint8_t); /* No endian conversion necessary */ /* Support for status=8 */ if (status==8) { ecuitem->InvalidAll(); } /* Support for status=6 and status=7 */ if ((status==6) || (status==7)) { uint16_t count_app_ids=0,count_app_ids_tmp=0; DLT_MSG_READ_VALUE(count_app_ids_tmp,ptr,length,uint16_t); count_app_ids=DLT_ENDIAN_GET_16(((msg.getEndianness()==QDltMsg::DltEndiannessBigEndian)?DLT_HTYP_MSBF:0), count_app_ids_tmp); for (int32_t num=0;numloglevel = loglevel; ecuitem->status = EcuItem::valid; } break; case 1: /* NOT_SUPPORTED */ { ecuitem->status = EcuItem::unknown; } break; case 2: /* ERROR */ { ecuitem->status = EcuItem::invalid; } break; } /* update status */ ecuitem->update(); break; } case DLT_SERVICE_ID_SET_LOG_LEVEL: { uint8_t status=0; DLT_MSG_READ_VALUE(status,ptr,length,uint8_t); /* No endian conversion necessary */ switch (status) { case 0: /* OK */ { //conitem->status = EcuItem::valid; } break; case 1: /* NOT_SUPPORTED */ { //conitem->status = EcuItem::unknown; } break; case 2: /* ERROR */ { //conitem->status = EcuItem::invalid; } break; } /* update status*/ //conitem->update(); break; } case DLT_SERVICE_ID_TIMEZONE: { if(payload.size() == sizeof(DltServiceTimezone)) { DltServiceTimezone *service; service = (DltServiceTimezone*) payload.constData(); if(msg.getEndianness() == QDltMsg::DltEndiannessLittleEndian) controlMessage_Timezone(service->timezone, service->isdst); else controlMessage_Timezone(DLT_SWAP_32(service->timezone), service->isdst); } break; } case DLT_SERVICE_ID_UNREGISTER_CONTEXT: { if(payload.size() == sizeof(DltServiceUnregisterContext)) { DltServiceUnregisterContext *service; service = (DltServiceUnregisterContext*) payload.constData(); controlMessage_UnregisterContext(msg.getEcuid(),QString(QByteArray(service->apid,4)),QString(QByteArray(service->ctid,4))); } break; } } // switch } void MainWindow::controlMessage_SendControlMessage(EcuItem* ecuitem,DltMessage &msg, QString appid, QString contid) { QByteArray data; QDltMsg qmsg; /* prepare storage header */ msg.storageheader = (DltStorageHeader*)msg.headerbuffer; dlt_set_storageheader(msg.storageheader,ecuitem->id.toLatin1()); /* prepare standard header */ msg.standardheader = (DltStandardHeader*)(msg.headerbuffer + sizeof(DltStorageHeader)); msg.standardheader->htyp = DLT_HTYP_WEID | DLT_HTYP_WTMS | DLT_HTYP_UEH | DLT_HTYP_PROTOCOL_VERSION1 ; #if (BYTE_ORDER==BIG_ENDIAN) msg.standardheader->htyp = (msg.standardheader->htyp | DLT_HTYP_MSBF); #endif msg.standardheader->mcnt = 0; /* Set header extra parameters */ dlt_set_id(msg.headerextra.ecu,ecuitem->id.toLatin1()); msg.headerextra.tmsp = dlt_uptime(); /* Copy header extra parameters to headerbuffer */ dlt_message_set_extraparameters(&msg,0); /* prepare extended header */ msg.extendedheader = (DltExtendedHeader*)(msg.headerbuffer + sizeof(DltStorageHeader) + sizeof(DltStandardHeader) + DLT_STANDARD_HEADER_EXTRA_SIZE(msg.standardheader->htyp) ); msg.extendedheader->msin = DLT_MSIN_CONTROL_REQUEST; msg.extendedheader->noar = 1; /* number of arguments */ if (appid.isEmpty()) { dlt_set_id(msg.extendedheader->apid,"APP"); /* application id */ } else { dlt_set_id(msg.extendedheader->apid, appid.toLatin1()); } if (contid.isEmpty()) { dlt_set_id(msg.extendedheader->ctid,"CON"); /* context id */ } else { dlt_set_id(msg.extendedheader->ctid, contid.toLatin1()); } /* prepare length information */ msg.headersize = sizeof(DltStorageHeader) + sizeof(DltStandardHeader) + sizeof(DltExtendedHeader) + DLT_STANDARD_HEADER_EXTRA_SIZE(msg.standardheader->htyp); msg.standardheader->len = DLT_HTOBE_16(msg.headersize - sizeof(DltStorageHeader) + msg.datasize); /* send message to daemon */ if ((ecuitem->interfacetype == EcuItem::INTERFACETYPE_TCP || ecuitem->interfacetype == EcuItem::INTERFACETYPE_UDP) && ecuitem->socket->isOpen()) { QByteArray tmpBuf; /* Optional: Send serial header, if requested */ if (ecuitem->getSendSerialHeaderIp()) tmpBuf.append((const char*)dltSerialHeader, sizeof(dltSerialHeader)); /* Send data */ tmpBuf.append((const char*)msg.headerbuffer+sizeof(DltStorageHeader),msg.headersize-sizeof(DltStorageHeader)); tmpBuf.append((const char*)msg.databuffer,msg.datasize); ecuitem->socket->write(tmpBuf); } else if (ecuitem->interfacetype == EcuItem::INTERFACETYPE_SERIAL && ecuitem->m_serialport && ecuitem->m_serialport->isOpen()) { /* Optional: Send serial header, if requested */ if (ecuitem->getSendSerialHeaderSerial()) ecuitem->m_serialport->write((const char*)dltSerialHeader,sizeof(dltSerialHeader)); /* Send data */ ecuitem->m_serialport->write((const char*)msg.headerbuffer+sizeof(DltStorageHeader),msg.headersize-sizeof(DltStorageHeader)); ecuitem->m_serialport->write((const char*)msg.databuffer,msg.datasize); } else { /* ECU is not connected */ return; } /* Skip the file handling, if indexer is working on the file */ if(dltIndexer->tryLock()) { /* store ctrl message in log file */ if (outputfile.isOpen()) { if (settings->writeControl) { // https://bugreports.qt-project.org/browse/QTBUG-26069 outputfile.seek(outputfile.size()); outputfile.write((const char*)msg.headerbuffer,msg.headersize); outputfile.write((const char*)msg.databuffer,msg.datasize); outputfile.flush(); } } /* read received messages in DLT file parser and update DLT message list view */ /* update indexes and table view */ if(!dltIndexer->isRunning()) updateIndex(); dltIndexer->unlock(); } } void MainWindow::controlMessage_WriteControlMessage(DltMessage &msg, QString appid, QString contid) { QByteArray data; QDltMsg qmsg; /* prepare storage header */ msg.storageheader = (DltStorageHeader*)msg.headerbuffer; dlt_set_storageheader(msg.storageheader,"DLTV"); /* prepare standard header */ msg.standardheader = (DltStandardHeader*)(msg.headerbuffer + sizeof(DltStorageHeader)); msg.standardheader->htyp = DLT_HTYP_WEID | DLT_HTYP_WTMS | DLT_HTYP_UEH | DLT_HTYP_PROTOCOL_VERSION1 ; #if (BYTE_ORDER==BIG_ENDIAN) msg.standardheader->htyp = (msg.standardheader->htyp | DLT_HTYP_MSBF); #endif msg.standardheader->mcnt = 0; /* Set header extra parameters */ dlt_set_id(msg.headerextra.ecu,"DLTV"); msg.headerextra.tmsp = dlt_uptime(); /* Copy header extra parameters to headerbuffer */ dlt_message_set_extraparameters(&msg,0); /* prepare extended header */ msg.extendedheader = (DltExtendedHeader*)(msg.headerbuffer + sizeof(DltStorageHeader) + sizeof(DltStandardHeader) + DLT_STANDARD_HEADER_EXTRA_SIZE(msg.standardheader->htyp) ); msg.extendedheader->msin = DLT_MSIN_CONTROL_RESPONSE; msg.extendedheader->noar = 1; /* number of arguments */ if (appid.isEmpty()) { dlt_set_id(msg.extendedheader->apid,"DLTV"); /* application id */ } else { dlt_set_id(msg.extendedheader->apid, appid.toLatin1()); } if (contid.isEmpty()) { dlt_set_id(msg.extendedheader->ctid,"DLTV"); /* context id */ } else { dlt_set_id(msg.extendedheader->ctid, contid.toLatin1()); } /* prepare length information */ msg.headersize = sizeof(DltStorageHeader) + sizeof(DltStandardHeader) + sizeof(DltExtendedHeader) + DLT_STANDARD_HEADER_EXTRA_SIZE(msg.standardheader->htyp); msg.standardheader->len = DLT_HTOBE_16(msg.headersize - sizeof(DltStorageHeader) + msg.datasize); /* Skip the file handling, if indexer is working on the file */ if(dltIndexer->tryLock()) { /* store ctrl message in log file */ if (outputfile.isOpen()) { if (settings->writeControl) { // https://bugreports.qt-project.org/browse/QTBUG-26069 outputfile.seek(outputfile.size()); outputfile.write((const char*)msg.headerbuffer,msg.headersize); outputfile.write((const char*)msg.databuffer,msg.datasize); outputfile.flush(); } } /* read received messages in DLT file parser and update DLT message list view */ /* update indexes and table view */ if(!dltIndexer->isRunning()) updateIndex(); dltIndexer->unlock(); } } void MainWindow::on_action_menuDLT_Get_Default_Log_Level_triggered() { /* get selected ECU in configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == ecu_type)) { EcuItem* ecuitem = (EcuItem*) list.at(0); /* send get default log level request */ ControlServiceRequest(ecuitem,DLT_SERVICE_ID_GET_DEFAULT_LOG_LEVEL); } else QMessageBox::warning(0, QString("DLT Viewer"), QString("No ECU selected in configuration!")); } void MainWindow::on_action_menuDLT_Set_Default_Log_Level_triggered() { /* get selected ECU in configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == ecu_type)) { EcuItem* ecuitem = (EcuItem*) list.at(0); /* send set default log level request */ controlMessage_SetDefaultLogLevel(ecuitem,ecuitem->loglevel); controlMessage_SetDefaultTraceStatus(ecuitem,ecuitem->tracestatus); /* update status */ ecuitem->status = EcuItem::valid; ecuitem->update(); } else QMessageBox::warning(0, QString("DLT Viewer"), QString("No ECU selected in configuration!")); } void MainWindow::on_action_menuDLT_Set_Log_Level_triggered() { /* get selected context in configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == context_type)) { ContextItem* conitem = (ContextItem*) list.at(0); ApplicationItem* appitem = (ApplicationItem*) conitem->parent(); EcuItem* ecuitem = (EcuItem*) appitem->parent(); /* send set log level and trace status request */ controlMessage_SetLogLevel(ecuitem,appitem->id,conitem->id,conitem->loglevel); controlMessage_SetTraceStatus(ecuitem,appitem->id,conitem->id,conitem->tracestatus); /* update status */ conitem->status = ContextItem::valid; conitem->update(); }else if( (list.count() > 1) && (list.at(0)->type() == context_type) ){ ContextItem* conitem; for(int i=0; itype() == context_type){ conitem = (ContextItem*) list.at(i); ApplicationItem* appitem = (ApplicationItem*) conitem->parent(); EcuItem* ecuitem = (EcuItem*) appitem->parent(); /* send set log level and trace status request */ controlMessage_SetLogLevel(ecuitem,appitem->id,conitem->id,conitem->loglevel); controlMessage_SetTraceStatus(ecuitem,appitem->id,conitem->id,conitem->tracestatus); /* update status */ conitem->status = ContextItem::valid; conitem->update(); } } } else QMessageBox::warning(0, QString("DLT Viewer"), QString("No Context selected in configuration!")); } void MainWindow::on_action_menuDLT_Set_All_Log_Levels_triggered() { /* get selected ECU in configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == ecu_type)) { EcuItem* ecuitem = (EcuItem*) list.at(0); /* iterate through all applications */ for(int numapp = 0; numapp < ecuitem->childCount(); numapp++) { ApplicationItem * appitem = (ApplicationItem *) ecuitem->child(numapp); /* iterate through all contexts */ for(int numcontext = 0; numcontext < appitem->childCount(); numcontext++) { ContextItem * conitem = (ContextItem *) appitem->child(numcontext); /* set log level and trace status of this context */ controlMessage_SetLogLevel(ecuitem,appitem->id,conitem->id,conitem->loglevel); controlMessage_SetTraceStatus(ecuitem,appitem->id,conitem->id,conitem->tracestatus); /* update status */ conitem->status = ContextItem::valid; conitem->update(); } } } else QMessageBox::warning(0, QString("DLT Viewer"), QString("No ECU selected in configuration!")); } void MainWindow::on_action_menuDLT_Get_Log_Info_triggered() { /* get selected ECU in configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == ecu_type)) { EcuItem* ecuitem = (EcuItem*) list.at(0); controlMessage_GetLogInfo(ecuitem); } else QMessageBox::warning(0, QString("DLT Viewer"), QString("No ECU selected in configuration!")); } void MainWindow::controlMessage_SetLogLevel(EcuItem* ecuitem, QString app, QString con,int log_level) { DltMessage msg; /* initialise new message */ dlt_message_init(&msg,0); /* prepare payload */ msg.datasize = sizeof(DltServiceSetLogLevel); if (msg.databuffer) free(msg.databuffer); msg.databuffer = (uint8_t *) malloc(msg.datasize); DltServiceSetLogLevel *req; req = (DltServiceSetLogLevel*) msg.databuffer; req->service_id = DLT_SERVICE_ID_SET_LOG_LEVEL; dlt_set_id(req->apid,app.toLatin1()); dlt_set_id(req->ctid,con.toLatin1()); req->log_level = log_level; dlt_set_id(req->com,"remo"); /* send message */ controlMessage_SendControlMessage(ecuitem,msg,QString(""),QString("")); /* free message */ dlt_message_free(&msg,0); } void MainWindow::controlMessage_SetDefaultLogLevel(EcuItem* ecuitem, int status) { DltMessage msg; /* initialise new message */ dlt_message_init(&msg,0); /* prepare payload */ msg.datasize = sizeof(DltServiceSetDefaultLogLevel); if (msg.databuffer) free(msg.databuffer); msg.databuffer = (uint8_t *) malloc(msg.datasize); DltServiceSetDefaultLogLevel *req; req = (DltServiceSetDefaultLogLevel*) msg.databuffer; req->service_id = DLT_SERVICE_ID_SET_DEFAULT_LOG_LEVEL; req->log_level = status; dlt_set_id(req->com,"remo"); /* send message */ controlMessage_SendControlMessage(ecuitem,msg,QString(""),QString("")); /* free message */ dlt_message_free(&msg,0); } void MainWindow::controlMessage_SetTraceStatus(EcuItem* ecuitem,QString app, QString con,int status) { DltMessage msg; /* initialise new message */ dlt_message_init(&msg,0); /* prepare payload */ msg.datasize = sizeof(DltServiceSetLogLevel); if (msg.databuffer) free(msg.databuffer); msg.databuffer = (uint8_t *) malloc(msg.datasize); DltServiceSetLogLevel *req; req = (DltServiceSetLogLevel*) msg.databuffer; req->service_id = DLT_SERVICE_ID_SET_TRACE_STATUS; dlt_set_id(req->apid,app.toLatin1()); dlt_set_id(req->ctid,con.toLatin1()); req->log_level = status; dlt_set_id(req->com,"remo"); /* send message */ controlMessage_SendControlMessage(ecuitem,msg,QString(""),QString("")); /* free message */ dlt_message_free(&msg,0); } void MainWindow::controlMessage_SetDefaultTraceStatus(EcuItem* ecuitem, int status) { DltMessage msg; /* initialise new message */ dlt_message_init(&msg,0); /* prepare payload */ msg.datasize = sizeof(DltServiceSetDefaultLogLevel); if (msg.databuffer) free(msg.databuffer); msg.databuffer = (uint8_t *) malloc(msg.datasize); DltServiceSetDefaultLogLevel *req; req = (DltServiceSetDefaultLogLevel*) msg.databuffer; req->service_id = DLT_SERVICE_ID_SET_DEFAULT_TRACE_STATUS; req->log_level = status; dlt_set_id(req->com,"remo"); /* send message */ controlMessage_SendControlMessage(ecuitem,msg,QString(""),QString("")); /* free message */ dlt_message_free(&msg,0); } void MainWindow::controlMessage_SetVerboseMode(EcuItem* ecuitem, int verbosemode) { DltMessage msg; /* initialise new message */ dlt_message_init(&msg,0); /* prepare payload */ msg.datasize = sizeof(DltServiceSetVerboseMode); if (msg.databuffer) free(msg.databuffer); msg.databuffer = (uint8_t *) malloc(msg.datasize); DltServiceSetVerboseMode *req; req = (DltServiceSetVerboseMode*) msg.databuffer; req->service_id = DLT_SERVICE_ID_SET_VERBOSE_MODE; req->new_status = verbosemode; //dlt_set_id(req->com,"remo"); /* send message */ controlMessage_SendControlMessage(ecuitem,msg,QString(""),QString("")); /* free message */ dlt_message_free(&msg,0); } void MainWindow::controlMessage_SetTimingPackets(EcuItem* ecuitem, bool enable) { DltMessage msg; uint8_t new_status=(enable?1:0); /* initialise new message */ dlt_message_init(&msg,0); /* prepare payload of data */ msg.datasize = sizeof(DltServiceSetVerboseMode); if (msg.databuffer) free(msg.databuffer); msg.databuffer = (uint8_t *) malloc(msg.datasize); DltServiceSetVerboseMode *req; req = (DltServiceSetVerboseMode*) msg.databuffer; req->service_id = DLT_SERVICE_ID_SET_TIMING_PACKETS; req->new_status = new_status; /* send message */ controlMessage_SendControlMessage(ecuitem,msg,QString(""),QString("")); /* free message */ dlt_message_free(&msg,0); } void MainWindow::controlMessage_GetLogInfo(EcuItem* ecuitem) { DltMessage msg; /* initialise new message */ dlt_message_init(&msg,0); /* prepare payload */ msg.datasize = sizeof(DltServiceGetLogInfoRequest); if (msg.databuffer) free(msg.databuffer); msg.databuffer = (uint8_t *) malloc(msg.datasize); DltServiceGetLogInfoRequest *req; req = (DltServiceGetLogInfoRequest*) msg.databuffer; req->service_id = DLT_SERVICE_ID_GET_LOG_INFO; req->options = 7; dlt_set_id(req->apid, ""); dlt_set_id(req->ctid, ""); dlt_set_id(req->com,"remo"); /* send message */ controlMessage_SendControlMessage(ecuitem,msg,QString(""),QString("")); /* free message */ dlt_message_free(&msg,0); } void MainWindow::controlMessage_GetSoftwareVersion(EcuItem* ecuitem) { DltMessage msg; /* initialise new message */ dlt_message_init(&msg,0); /* prepare payload */ msg.datasize = sizeof(DltServiceGetSoftwareVersion); if (msg.databuffer) free(msg.databuffer); msg.databuffer = (uint8_t *) malloc(msg.datasize); DltServiceGetSoftwareVersion *req; req = (DltServiceGetSoftwareVersion*) msg.databuffer; req->service_id = DLT_SERVICE_ID_GET_SOFTWARE_VERSION; /* send message */ controlMessage_SendControlMessage(ecuitem,msg,QString(""),QString("")); /* free message */ dlt_message_free(&msg,0); } void MainWindow::ControlServiceRequest(EcuItem* ecuitem, int service_id ) { DltMessage msg; /* initialise new message */ dlt_message_init(&msg,0); /* prepare payload of data */ msg.datasize = sizeof(uint32_t); if (msg.databuffer) free(msg.databuffer); msg.databuffer = (uint8_t *) malloc(msg.datasize); uint32_t sid = service_id; memcpy(msg.databuffer,&sid,sizeof(sid)); /* send message */ controlMessage_SendControlMessage(ecuitem,msg,QString(""),QString("")); /* free message */ dlt_message_free(&msg,0); } void MainWindow::controlMessage_Marker() { DltMessage msg; /* initialise new message */ dlt_message_init(&msg,0); /* prepare payload */ msg.datasize = sizeof(DltServiceMarker); if (msg.databuffer) free(msg.databuffer); msg.databuffer = (uint8_t *) malloc(msg.datasize); DltServiceMarker *resp; resp = (DltServiceMarker*) msg.databuffer; resp->service_id = DLT_SERVICE_ID_MARKER; resp->status = DLT_SERVICE_RESPONSE_OK; /* send message */ controlMessage_WriteControlMessage(msg,QString(""),QString("")); /* free message */ dlt_message_free(&msg,0); } void MainWindow::SendInjection(EcuItem* ecuitem) { unsigned int serviceID; unsigned int size; bool ok; if (injectionAplicationId.isEmpty() || injectionContextId.isEmpty() || injectionServiceId.isEmpty() ) return; serviceID = (unsigned int)injectionServiceId.toInt(&ok, 0); if ((DLT_SERVICE_ID_CALLSW_CINJECTION<= serviceID) && (serviceID!=0)) { DltMessage msg; QByteArray hexData; /* initialise new message */ dlt_message_init(&msg,0); // Request parameter: // data_length uint32 // data uint8[] /* prepare payload of data */ if(injectionDataBinary) { hexData = QByteArray::fromHex(injectionData.toLatin1()); size = hexData.size(); } else { size = (injectionData.length() + 1); } msg.datasize = 4 + 4 + size; if (msg.databuffer) free(msg.databuffer); msg.databuffer = (uint8_t *) malloc(msg.datasize); memcpy(msg.databuffer , &serviceID,sizeof(serviceID)); memcpy(msg.databuffer+4, &size, sizeof(size)); if(injectionDataBinary) { memcpy(msg.databuffer+8,hexData.data(),hexData.size()); } else { memcpy(msg.databuffer+8, injectionData.toUtf8(), size); } /* send message */ controlMessage_SendControlMessage(ecuitem,msg,injectionAplicationId,injectionContextId); /* free message */ dlt_message_free(&msg,0); } } void MainWindow::on_action_menuDLT_Store_Config_triggered() { /* get selected ECU from configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == ecu_type)) { EcuItem* ecuitem = (EcuItem*) list.at(0); ControlServiceRequest(ecuitem,DLT_SERVICE_ID_STORE_CONFIG); } else QMessageBox::warning(0, QString("DLT Viewer"), QString("No ECU selected in configuration!")); } void MainWindow::on_action_menuDLT_Reset_to_Factory_Default_triggered() { /* get selected ECU from configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == ecu_type)) { EcuItem* ecuitem = (EcuItem*) list.at(0); ControlServiceRequest(ecuitem,DLT_SERVICE_ID_RESET_TO_FACTORY_DEFAULT); } else QMessageBox::warning(0, QString("DLT Viewer"), QString("No ECU selected in configuration!")); } void MainWindow::on_action_menuDLT_Get_Software_Version_triggered() { /* get selected ECU from configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == ecu_type)) { EcuItem* ecuitem = (EcuItem*) list.at(0); ControlServiceRequest(ecuitem,DLT_SERVICE_ID_GET_SOFTWARE_VERSION); } else QMessageBox::warning(0, QString("DLT Viewer"), QString("No ECU selected in configuration!")); } void MainWindow::on_action_menuDLT_Get_Local_Time_2_triggered() { /* get selected ECU from configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == ecu_type)) { EcuItem* ecuitem = (EcuItem*) list.at(0); ControlServiceRequest(ecuitem,DLT_SERVICE_ID_GET_LOCAL_TIME); } else QMessageBox::warning(0, QString("DLT Viewer"), QString("No ECU selected in configuration!")); } void MainWindow::getSelectedItems(EcuItem **ecuitem,ApplicationItem** appitem,ContextItem** conitem) { *ecuitem = 0; *appitem = 0; *conitem = 0; QList list = project.ecu->selectedItems(); if(list.count() != 1) { return; } if(list.at(0)->type() == ecu_type) { *ecuitem = (EcuItem*) list.at(0); } if(list.at(0)->type() == application_type) { *appitem = (ApplicationItem*) list.at(0); *ecuitem = (EcuItem*) (*appitem)->parent(); } if(list.at(0)->type() == context_type) { *conitem = (ContextItem*) list.at(0); *appitem = (ApplicationItem*) (*conitem)->parent(); *ecuitem = (EcuItem*) (*appitem)->parent(); } } void MainWindow::connectEcuSignal(int index) { EcuItem* ecuitem = (EcuItem*) project.ecu->topLevelItem(index); if(ecuitem) { connectECU(ecuitem); } } void MainWindow:: disconnectEcuSignal(int index) { EcuItem* ecuitem = (EcuItem*) project.ecu->topLevelItem(index); if(ecuitem) { disconnectECU(ecuitem); } } void MainWindow::sendInjection(int index,QString applicationId,QString contextId,int serviceId,QByteArray data) { EcuItem* ecuitem = (EcuItem*) project.ecu->topLevelItem(index); injectionAplicationId = applicationId; injectionContextId = contextId; if(ecuitem) { unsigned int serviceID; unsigned int size; serviceID = serviceId; if ((DLT_SERVICE_ID_CALLSW_CINJECTION<= serviceID) && (serviceID!=0)) { DltMessage msg; /* initialise new message */ dlt_message_init(&msg,0); // Request parameter: // data_length uint32 // data uint8[] /* prepare payload of data */ size = (data.size()); msg.datasize = 4 + 4 + size; if (msg.databuffer) free(msg.databuffer); msg.databuffer = (uint8_t *) malloc(msg.datasize); memcpy(msg.databuffer , &serviceID,sizeof(serviceID)); memcpy(msg.databuffer+4, &size, sizeof(size)); memcpy(msg.databuffer+8, data.constData(), data.size()); /* send message */ controlMessage_SendControlMessage(ecuitem,msg,injectionAplicationId,injectionContextId); /* free message */ dlt_message_free(&msg,0); } } } void MainWindow::on_action_menuDLT_Send_Injection_triggered() { /* get selected ECU from configuration */ EcuItem* ecuitem = 0; ApplicationItem* appitem = 0; ContextItem* conitem = 0; getSelectedItems(&ecuitem,&appitem,&conitem); if(!ecuitem) { QMessageBox::warning(0, QString("DLT Viewer"), QString("Nothing selected in configuration!")); return; } else { /* show Injection dialog */ InjectionDialog dlg("",""); dlg.updateHistory(); if(conitem) { dlg.setApplicationId(appitem->id); dlg.setContextId(conitem->id); } else if(appitem) { dlg.setApplicationId(appitem->id); dlg.setContextId(injectionContextId); } else { dlg.setApplicationId(injectionAplicationId); dlg.setContextId(injectionContextId); } dlg.setServiceId(injectionServiceId); dlg.setData(injectionData); dlg.setDataBinary(injectionDataBinary); if(dlg.exec()) { injectionAplicationId = dlg.getApplicationId(); injectionContextId = dlg.getContextId(); injectionServiceId = dlg.getServiceId(); injectionData = dlg.getData(); injectionDataBinary = dlg.getDataBinary(); dlg.storeHistory(); SendInjection(ecuitem); } } //else // QMessageBox::warning(0, QString("DLT Viewer"), // QString("No ECU selected in configuration!")); } void MainWindow::controlMessage_SetApplication(EcuItem *ecuitem, QString apid, QString appdescription) { /* Try to find App */ for(int numapp = 0; numapp < ecuitem->childCount(); numapp++) { ApplicationItem * appitem = (ApplicationItem *) ecuitem->child(numapp); if(appitem->id == apid) { appitem->description = appdescription; appitem->update(); return; } } /* No app and no con found */ ApplicationItem* appitem = new ApplicationItem(ecuitem); appitem->id = apid; appitem->description = appdescription; appitem->update(); ecuitem->addChild(appitem); } void MainWindow::controlMessage_SetContext(EcuItem *ecuitem, QString apid, QString ctid,QString ctdescription,int log_level,int trace_status) { /* First try to find existing context */ for(int numapp = 0; numapp < ecuitem->childCount(); numapp++) { ApplicationItem * appitem = (ApplicationItem *) ecuitem->child(numapp); for(int numcontext = 0; numcontext < appitem->childCount(); numcontext++) { ContextItem * conitem = (ContextItem *) appitem->child(numcontext); if(appitem->id == apid && conitem->id == ctid) { /* set new log level and trace status */ conitem->loglevel = log_level; conitem->tracestatus = trace_status; conitem->description = ctdescription; conitem->status = ContextItem::valid; conitem->update(); return; } } } /* Try to find App */ for(int numapp = 0; numapp < ecuitem->childCount(); numapp++) { ApplicationItem * appitem = (ApplicationItem *) ecuitem->child(numapp); if(appitem->id == apid) { /* Add new context */ ContextItem* conitem = new ContextItem(appitem); conitem->id = ctid; conitem->loglevel = log_level; conitem->tracestatus = trace_status; conitem->description = ctdescription; conitem->status = ContextItem::valid; conitem->update(); appitem->addChild(conitem); return; } } /* No app and no con found */ ApplicationItem* appitem = new ApplicationItem(ecuitem); appitem->id = apid; appitem->description = QString(""); appitem->update(); ecuitem->addChild(appitem); ContextItem* conitem = new ContextItem(appitem); conitem->id = ctid; conitem->loglevel = log_level; conitem->tracestatus = trace_status; conitem->description = ctdescription; conitem->status = ContextItem::valid; conitem->update(); appitem->addChild(conitem); } void MainWindow::controlMessage_Timezone(int timezone, unsigned char dst) { if(!project.settings->automaticTimeSettings && project.settings->automaticTimezoneFromDlt) { project.settings->utcOffset = timezone; project.settings->dst = dst; } } void MainWindow::controlMessage_UnregisterContext(QString ecuId,QString appId,QString ctId) { if(!project.settings->updateContextsUnregister) return; /* find ecu item */ EcuItem *ecuitemFound = 0; for(int num = 0; num < project.ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project.ecu->topLevelItem(num); if(ecuitem->id == ecuId) { ecuitemFound = ecuitem; break; } } if(!ecuitemFound) return; /* First try to find existing context */ for(int numapp = 0; numapp < ecuitemFound->childCount(); numapp++) { ApplicationItem * appitem = (ApplicationItem *) ecuitemFound->child(numapp); for(int numcontext = 0; numcontext < appitem->childCount(); numcontext++) { ContextItem * conitem = (ContextItem *) appitem->child(numcontext); if(appitem->id == appId && conitem->id == ctId) { /* remove context */ delete conitem->parent()->takeChild(conitem->parent()->indexOfChild(conitem)); return; } } } } void MainWindow::on_action_menuHelp_Support_triggered() { QMessageBox msgBox(this); msgBox.setWindowTitle("Mail-Support DLT"); msgBox.setTextFormat(Qt::RichText); //this is what makes the links clickable QString text = "

Mailto ").append(DLT_SUPPORT_NAME).append(" DLT-Viewer-Support:
"); text.append(DLT_SUPPORT_MAIL_ADDRESS).append("
"); msgBox.setText(text); msgBox.setStandardButtons(QMessageBox::Ok); msgBox.exec(); } void MainWindow::on_action_menuHelp_Info_triggered() { QMessageBox::information(0, QString("DLT Viewer"), QString("Package Version : %1 %2\n").arg(PACKAGE_VERSION).arg(PACKAGE_VERSION_STATE)+ QString("Package Revision: %1\n\n").arg(PACKAGE_REVISION)+ QString("Build Date: %1\n").arg(__DATE__)+ QString("Build Time: %1\n").arg(__TIME__)+ QString("Qt Version: %1\n").arg(QT_VERSION_STR)+ #if defined(Q_OS_WIN) && !defined(Q_CC_GNU) QString("Compiler: msvc\n")+ #else QString("Compiler: gcc\n")+ #endif QString("Compiler Version: %1\n\n").arg( #if defined(_MSC_VER) _MSC_VER #else __VERSION__ #endif )+ QString("Architecture: %1 Bit\n").arg(QSysInfo::WordSize)+ #if (BYTE_ORDER==BIG_ENDIAN) QString("Architecture: Big Endian\n\n")+ #else QString("Architecture: Little Endian\n\n")+ #endif QString("(C) 2016 BMW AG\n")); } void MainWindow::on_action_menuHelp_Command_Line_triggered() { // Please copy changes to OptManager::getInstance().cpp - printUsage() QMessageBox::information(0, QString("DLT Viewer - Command line usage"), #if (WIN32) QString("Usage: dlt_viewer.exe [OPTIONS]\n\n")+ QString("Options:\n")+ #else QString("Usage: dlt_viewer [OPTIONS]\n\n")+ QString("Options:\n")+ QString(" -h \t\tPrint usage\n")+ #endif QString(" -s or --silent \t\tEnable silent mode without warning message boxes\n")+ QString(" -p projectfile \t\tLoading project file on startup (must end with .dlp)\n")+ QString(" -l logfile \t\tLoading logfile on startup (must end with .dlt)\n")+ QString(" -u \t\t\tExport file UTF8 encoded\n")+ QString(" -f filterfile \t\tLoading filterfile on startup (must end with .dlf)\n")+ QString(" -c logfile textfile \tConvert logfile file to textfile (logfile must end with .dlt)\n")+ QString(" -e \"plugin|command|param1|..|param\" \tExecute a command plugin with parameters.") ); } void MainWindow::on_pluginWidget_itemSelectionChanged() { QList list = project.plugin->selectedItems(); if((list.count() >= 1) ) { ui->action_menuPlugin_Edit->setEnabled(true); ui->action_menuPlugin_Hide->setEnabled(true); ui->action_menuPlugin_Show->setEnabled(true); ui->action_menuPlugin_Disable->setEnabled(true); } } void MainWindow::on_filterWidget_itemSelectionChanged() { ui->action_menuFilter_Load->setEnabled(true); if( project.filter->topLevelItemCount() > 0 ){ //ui->action_menuFilter_Save_As->setEnabled(true); ui->action_menuFilter_Clear_all->setEnabled(true); }else{ //ui->action_menuFilter_Save_As->setEnabled(false); ui->action_menuFilter_Clear_all->setEnabled(false); } if((project.filter->selectedItems().count() >= 1) ) { ui->action_menuFilter_Delete->setEnabled(true); ui->action_menuFilter_Edit->setEnabled(true); ui->action_menuFilter_Duplicate->setEnabled(true); }else{ ui->action_menuFilter_Delete->setEnabled(false); ui->action_menuFilter_Edit->setEnabled(false); ui->action_menuFilter_Duplicate->setEnabled(false); } } void MainWindow::on_configWidget_itemSelectionChanged() { /* get selected ECU from configuration */ EcuItem* ecuitem = 0; ApplicationItem* appitem = 0; ContextItem* conitem = 0; getSelectedItems(&ecuitem,&appitem,&conitem); ui->action_menuDLT_Get_Default_Log_Level->setEnabled(ecuitem && ecuitem->connected && !appitem); ui->action_menuDLT_Set_Default_Log_Level->setEnabled(ecuitem && ecuitem->connected && !appitem); ui->action_menuDLT_Get_Local_Time_2->setEnabled(ecuitem && ecuitem->connected && !appitem); ui->action_menuDLT_Get_Software_Version->setEnabled(ecuitem && ecuitem->connected && !appitem); ui->action_menuDLT_Store_Config->setEnabled(ecuitem && ecuitem->connected && !appitem); ui->action_menuDLT_Get_Log_Info->setEnabled(ecuitem && ecuitem->connected && !appitem); ui->action_menuDLT_Set_Log_Level->setEnabled(conitem && ecuitem->connected); ui->action_menuDLT_Set_All_Log_Levels->setEnabled(ecuitem && ecuitem->connected && !appitem); ui->action_menuDLT_Reset_to_Factory_Default->setEnabled(ecuitem && ecuitem->connected && !appitem); ui->action_menuDLT_Send_Injection->setEnabled(ecuitem && ecuitem->connected && !appitem); ui->action_menuDLT_Edit_All_Log_Levels->setEnabled(ecuitem); ui->action_menuConfig_Application_Add->setEnabled(ecuitem && !appitem); ui->action_menuConfig_Application_Edit->setEnabled(appitem && !conitem); ui->action_menuConfig_Application_Delete->setEnabled(appitem && !conitem); ui->action_menuConfig_Context_Add->setEnabled(appitem && !conitem); ui->action_menuConfig_Context_Edit->setEnabled(conitem); ui->action_menuConfig_Context_Delete->setEnabled(conitem); ui->action_menuConfig_ECU_Add->setEnabled(true); ui->action_menuConfig_ECU_Edit->setEnabled(ecuitem && !appitem); ui->action_menuConfig_ECU_Delete->setEnabled(ecuitem && !appitem); ui->action_menuConfig_Delete_All_Contexts->setEnabled(ecuitem && !appitem); ui->action_menuConfig_Connect->setEnabled(ecuitem && !appitem && !ecuitem->tryToConnect); ui->action_menuConfig_Disconnect->setEnabled(ecuitem && !appitem && ecuitem->tryToConnect); ui->action_menuConfig_Expand_All_ECUs->setEnabled(ecuitem && !appitem ); ui->action_menuConfig_Collapse_All_ECUs->setEnabled(ecuitem && !appitem ); } void MainWindow::updateScrollButton() { // Mapping: variable to button scrollButton->setChecked(settings->autoScroll); // inform plugins about changed autoscroll status pluginManager.autoscrollStateChanged(settings->autoScroll); } void MainWindow::updateRecentFileActions() { int numRecentFiles = qMin(recentFiles.size(), (int)MaxRecentFiles); for (int i = 0; i < numRecentFiles; ++i) { QString text = tr("&%1 %2").arg(i + 1).arg(recentFiles[i]); recentFileActs[i]->setText(text); recentFileActs[i]->setData(recentFiles[i]); recentFileActs[i]->setVisible(true); } for (int j = numRecentFiles; j < MaxRecentFiles; ++j) recentFileActs[j]->setVisible(false); ui->menuRecent_files->setEnabled(recentFiles.size()>0); } void MainWindow::setCurrentFile(const QString &fileName) { recentFiles.removeAll(fileName); recentFiles.prepend(fileName); while (recentFiles.size() > MaxRecentFiles) recentFiles.removeLast(); updateRecentFileActions(); // write settings DltSettingsManager::getInstance()->setValue("other/recentFileList",recentFiles); } void MainWindow::removeCurrentFile(const QString &fileName) { recentFiles.removeAll(fileName); updateRecentFileActions(); // write settings DltSettingsManager::getInstance()->setValue("other/recentFileList",recentFiles); } void MainWindow::openRecentProject() { QAction *action = qobject_cast(sender()); QString projectName; if (action) { projectName = action->data().toString(); /* Open existing project */ if(!projectName.isEmpty() && openDlpFile(projectName)) { //thats it. } else { removeCurrentProject(projectName); return; } } } void MainWindow::updateRecentProjectActions() { int numRecentProjects = qMin(recentProjects.size(), (int)MaxRecentProjects); for (int i = 0; i < numRecentProjects; ++i) { QString text = tr("&%1 %2").arg(i + 1).arg(recentProjects[i]); recentProjectActs[i]->setText(text); recentProjectActs[i]->setData(recentProjects[i]); recentProjectActs[i]->setVisible(true); } for (int j = numRecentProjects; j < MaxRecentProjects; ++j) recentProjectActs[j]->setVisible(false); ui->menuRecent_projects->setEnabled(recentProjects.size()>0); } void MainWindow::setCurrentProject(const QString &projectName) { recentProjects.removeAll(projectName); recentProjects.prepend(projectName); while (recentProjects.size() > MaxRecentProjects) recentProjects.removeLast(); updateRecentProjectActions(); // write settings DltSettingsManager::getInstance()->setValue("other/recentProjectList",recentProjects); } void MainWindow::removeCurrentProject(const QString &projectName) { recentProjects.removeAll(projectName); updateRecentProjectActions(); // write settings DltSettingsManager::getInstance()->setValue("other/recentProjectList",recentProjects); } void MainWindow::openRecentFilters() { QAction *action = qobject_cast(sender()); QString fileName; if (action) { fileName = action->data().toString(); openDlfFile(fileName,true); } } void MainWindow::updateRecentFiltersActions() { int numRecentFilters = qMin(recentFilters.size(), (int)MaxRecentFilters); for (int i = 0; i < numRecentFilters; ++i) { QString text = tr("&%1 %2").arg(i + 1).arg(recentFilters[i]); recentFiltersActs[i]->setText(text); recentFiltersActs[i]->setData(recentFilters[i]); recentFiltersActs[i]->setVisible(true); } for (int j = numRecentFilters; j < MaxRecentFilters; ++j) { recentFiltersActs[j]->setVisible(false); } ui->menuRecent_Filters->setEnabled(recentFilters.size()>0); } void MainWindow::setCurrentFilters(const QString &filtersName) { recentFilters.removeAll(filtersName); recentFilters.prepend(filtersName); while (recentFilters.size() > MaxRecentFilters) recentFilters.removeLast(); updateRecentFiltersActions(); // write settings DltSettingsManager::getInstance()->setValue("other/recentFiltersList",recentFilters); } void MainWindow::removeCurrentFilters(const QString &filtersName) { recentFilters.removeAll(filtersName); updateRecentFiltersActions(); // write settings DltSettingsManager::getInstance()->setValue("other/recentFiltersList",filtersName); } void MainWindow::setCurrentHostname(const QString &hostName) { recentHostnames.removeAll(hostName); recentHostnames.prepend(hostName); while (recentHostnames.size() > MaxRecentHostnames) recentHostnames.removeLast(); /* Write settings for recent hostnames*/ DltSettingsManager::getInstance()->setValue("other/recentHostnameList",recentHostnames); } void MainWindow::setCurrentPort(const QString &portName) { recentPorts.removeAll(portName); recentPorts.prepend(portName); while (recentPorts.size() > MaxRecentPorts) recentPorts.removeLast(); /* Write settings for recent ports */ DltSettingsManager::getInstance()->setValue("other/recentPortList",recentPorts); } void MainWindow::tableViewValueChanged(int value) { int maximum = ((QAbstractSlider *)(ui->tableView->verticalScrollBar()))->maximum(); if (value==maximum) { /* Only enable, if disabled */ if (settings->autoScroll==Qt::Unchecked) { /* do not automatically enable scrolling when scrolling to bottom */ //on_actionAutoScroll_triggered(Qt::Checked); //updateScrollButton(); } } else { /* Only disable, if enabled */ if (settings->autoScroll==Qt::Checked) { /* disable scrolling */ on_actionAutoScroll_triggered(Qt::Unchecked); updateScrollButton(); } } } void MainWindow::sendUpdates(EcuItem* ecuitem) { /* update default log level, trace status and timing packets */ if (ecuitem->sendGetSoftwareVersion) { controlMessage_GetSoftwareVersion(ecuitem); } if (ecuitem->sendDefaultLogLevel) { controlMessage_SetDefaultLogLevel(ecuitem,ecuitem->loglevel); controlMessage_SetDefaultTraceStatus(ecuitem,ecuitem->tracestatus); controlMessage_SetVerboseMode(ecuitem,ecuitem->verbosemode); } controlMessage_SetTimingPackets(ecuitem,ecuitem->timingPackets); if (ecuitem->sendGetLogInfo) controlMessage_GetLogInfo(ecuitem); /* update status */ ecuitem->status = EcuItem::valid; ecuitem->update(); } void MainWindow::stateChangedSerial(bool dsrChanged){ /* signal emited when connection state changed */ /* find socket which emited signal */ for(int num = 0; num < project.ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project.ecu->topLevelItem(num); if( ecuitem->m_serialport == sender()) { /* update ECU item */ ecuitem->update(); if(dsrChanged) { /* send new default log level to ECU, if selected in dlg */ if (ecuitem->updateDataIfOnline) { sendUpdates(ecuitem); } } if(dsrChanged) { pluginManager.stateChanged(num,QDltConnection::QDltConnectionOnline,ecuitem->getHostname()); } else { pluginManager.stateChanged(num,QDltConnection::QDltConnectionOffline,ecuitem->getHostname()); } } } } void MainWindow::stateChangedTCP(QAbstractSocket::SocketState socketState) { /* signal emited when connection state changed */ /* find socket which emited signal */ for(int num = 0; num < project.ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project.ecu->topLevelItem(num); if( ecuitem && ecuitem->socket == sender()) { /* update ECU item */ ecuitem->update(); if (socketState==QAbstractSocket::ConnectedState) { /* send new default log level to ECU, if selected in dlg */ if (ecuitem->updateDataIfOnline) { sendUpdates(ecuitem); } } switch(socketState){ case QAbstractSocket::UnconnectedState: pluginManager.stateChanged(num,QDltConnection::QDltConnectionOffline,ecuitem->getHostname()); break; case QAbstractSocket::ConnectingState: pluginManager.stateChanged(num,QDltConnection::QDltConnectionConnecting,ecuitem->getHostname()); break; case QAbstractSocket::ConnectedState: pluginManager.stateChanged(num,QDltConnection::QDltConnectionOnline,ecuitem->getHostname()); break; case QAbstractSocket::ClosingState: pluginManager.stateChanged(num,QDltConnection::QDltConnectionOffline,ecuitem->getHostname()); break; default: pluginManager.stateChanged(num,QDltConnection::QDltConnectionOffline,ecuitem->getHostname()); break; } } } } //---------------------------------------------------------------------------- // Search functionalities //---------------------------------------------------------------------------- void MainWindow::on_action_menuSearch_Find_triggered() { searchDlg->open(); searchDlg->selectText(); } //---------------------------------------------------------------------------- // Plugin functionalities //---------------------------------------------------------------------------- void MainWindow::loadPlugins() { /* load plugins from subdirectory plugins, from directory if set in settings and from /usr/share/dlt-viewer/plugins in Linux */ if(settings->pluginsPath) pluginManager.loadPlugins(settings->pluginsPathName); else pluginManager.loadPlugins(QString()); /* update plugin widgets */ QList plugins = pluginManager.getPlugins(); for (int idx = 0; idx < plugins.size();idx++ ) { QDltPlugin* plugin = plugins[idx]; PluginItem* item = new PluginItem(0,plugin); plugin->setMode((QDltPlugin::Mode) DltSettingsManager::getInstance()->value("plugin/pluginmodefor"+plugin->getName(),QVariant(QDltPlugin::ModeDisable)).toInt()); if(plugin->isViewer()) { item->widget = plugin->initViewer(); item->dockWidget = new MyPluginDockWidget(item,this); item->dockWidget->setAllowedAreas(Qt::AllDockWidgetAreas); item->dockWidget->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable); item->dockWidget->setWidget(item->widget); item->dockWidget->setObjectName(plugin->getName()); addDockWidget(Qt::LeftDockWidgetArea, item->dockWidget); if(plugin->getMode() != QDltPlugin::ModeShow) { item->dockWidget->hide(); } } item->update(); project.plugin->addTopLevelItem(item); } /* initialise control interface */ pluginManager.initControl(&qcontrol); } void MainWindow::updatePluginsECUList() { QStringList list; for(int num = 0; num < project.ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project.ecu->topLevelItem(num); list.append(ecuitem->id + " (" + ecuitem->description + ")"); } pluginManager.initConnections(list); } void MainWindow::updatePlugins() { for(int num = 0; num < project.plugin->topLevelItemCount (); num++) { PluginItem *item = (PluginItem*)project.plugin->topLevelItem(num); updatePlugin(item); } } void MainWindow::updatePlugin(PluginItem *item) { item->takeChildren(); bool ret = item->getPlugin()->loadConfig(item->getFilename()); QString err_text = item->getPlugin()->error(); //We should not need error handling when disabling the plugins. But why is loadConfig called then anyway? if (item->getMode() != QDltPlugin::ModeDisable) { if ( false == ret ) { QString err_header = "Plugin Error: "; err_header.append(item->getName()); QString err_body = err_header; err_body.append(" returned error:\n"); err_body.append(err_text); err_body.append("\nin loadConfig!"); ErrorMessage(QMessageBox::Critical,err_header,err_body); //item->setMode(QDltPlugin::ModeDisable); } else if ( 0 < err_text.length() ) { //we have no error, but the plugin complains about something QString err_header = "Plugin Warning: "; err_header.append(item->getName()); QString err_body = err_header; err_body.append(" returned message:\n"); err_body.append(err_text); err_body.append("\nin loadConfig. "); ErrorMessage(QMessageBox::Warning,err_header,err_body); } } QStringList list = item->getPlugin()->infoConfig(); for(int num=0;numaddChild(new QTreeWidgetItem(QStringList(list.at(num)))); } item->update(); if(item->dockWidget) { if(item->getMode() == QDltPlugin::ModeShow) { item->dockWidget->show(); } else { item->dockWidget->hide(); } } } void MainWindow::versionString(QDltMsg &msg) { // get the version string from the version message // Skip the ServiceID, Status and Length bytes and start from the String containing the ECU Software Version QByteArray payload = msg.getPayload(); QByteArray data = payload.mid(9,(payload.size()>262)?256:(payload.size()-9)); QString version = msg.toAscii(data,true); version = version.trimmed(); // remove all white spaces at beginning and end qDebug() << "AutoloadPlugins Version:" << version; autoloadPluginsVersionStrings.append(version); statusFileVersion->setText("Version: "+autoloadPluginsVersionStrings.join(" ")); if(settings->pluginsAutoloadPath) { pluginsAutoload(version); } } void MainWindow::pluginsAutoload(QString version) { // Iterate through all enabled decoder plugins for(int num = 0; num < project.plugin->topLevelItemCount(); num++) { PluginItem *item = (PluginItem*)project.plugin->topLevelItem(num); if(item->getMode() != QDltPlugin::ModeDisable && item->getPlugin()->isDecoder()) { QString searchPath = settings->pluginsAutoloadPathName+ "/" + item->getName(); qDebug() << "AutoloadPlugins Search:" << searchPath; // search for files in plugin directory which contains version string QStringList nameFilter("*"+version+"*"); QDir directory(searchPath); QStringList txtFilesAndDirectories = directory.entryList(nameFilter); if(txtFilesAndDirectories.size()>1) txtFilesAndDirectories.sort(); // sort if several files are found if(!txtFilesAndDirectories.isEmpty() ) { // file with version string found QString filename = searchPath + "/" + txtFilesAndDirectories[0]; // check if filename already loaded if(item->getFilename()!=filename) { qDebug() << "AutoloadPlugins Load:" << filename; // load new configuration item->setFilename(filename); item->getPlugin()->loadConfig(filename); item->update(); } else { qDebug() << "AutoloadPlugins already loaded:" << filename; } } } } } void MainWindow::on_action_menuPlugin_Edit_triggered() { /* get selected plugin */ bool callInitFile = false; QList list = project.plugin->selectedItems(); if((list.count() == 1) ) { QTreeWidgetItem *treeitem = list.at(0); if(treeitem->parent()) { /* This is not a plugin item */ return; } PluginItem* item = (PluginItem*) treeitem; /* show plugin dialog */ PluginDialog dlg; dlg.setName(item->getName()); dlg.setPluginVersion(item->getPluginVersion()); dlg.setPluginInterfaceVersion(item->getPluginInterfaceVersion()); dlg.setFilename(item->getFilename()); dlg.setMode(item->getMode()); if(!item->getPlugin()->isViewer()) dlg.removeMode(2); // remove show mode, if no viewer plugin dlg.setType(item->getType()); if(dlg.exec()) { /* Check if there was a change that requires a refresh */ if(item->getMode() != dlg.getMode()) callInitFile = true; if(item->getMode() == QDltPlugin::ModeShow && dlg.getMode() != QDltPlugin::ModeDisable) callInitFile = false; if(dlg.getMode() == QDltPlugin::ModeShow && item->getMode() != QDltPlugin::ModeDisable) callInitFile = false; if(item->getFilename() != dlg.getFilename()) callInitFile = true; item->setFilename( dlg.getFilename() ); item->setMode( dlg.getMode() ); item->setType( dlg.getType() ); /* update plugin item */ updatePlugin(item); item->savePluginModeToSettings(); } if(callInitFile) { applyConfigEnabled(true); } } else { ErrorMessage(QMessageBox::Warning,QString("DLT Viewer"),QString("No Plugin selected!")); } } void MainWindow::on_action_menuPlugin_Show_triggered() { /* get selected plugin */ QList list = project.plugin->selectedItems(); if((list.count() == 1) ) { PluginItem* item = (PluginItem*) list.at(0); if(item->getMode() != QDltPlugin::ModeShow){ int oldMode = item->getMode(); item->setMode( QDltPlugin::ModeShow ); item->savePluginModeToSettings(); updatePlugin(item); if(oldMode == QDltPlugin::ModeDisable){ applyConfigEnabled(true); } }else{ ErrorMessage(QMessageBox::Warning,QString("DLT Viewer"),QString("The selected Plugin is already active.")); } } else { ErrorMessage(QMessageBox::Warning,QString("DLT Viewer"),QString("No Plugin selected!")); } } void MainWindow::on_action_menuPlugin_Hide_triggered() { /* get selected plugin */ QList list = project.plugin->selectedItems(); if((list.count() == 1) ) { PluginItem* item = (PluginItem*) list.at(0); if(item->getMode() == QDltPlugin::ModeShow){ item->setMode( QDltPlugin::ModeEnable ); item->savePluginModeToSettings(); updatePlugin(item); }else{ ErrorMessage(QMessageBox::Warning,QString("DLT Viewer"),QString("No Plugin selected!")); QMessageBox::warning(0, QString("DLT Viewer"), QString("The selected Plugin is already hidden or deactivated.")); } } else { QMessageBox::warning(0, QString("DLT Viewer"), QString("No Plugin selected!")); } } void MainWindow::action_menuPlugin_Enable_triggered() { /* get selected plugin */ QList list = project.plugin->selectedItems(); if((list.count() == 1) ) { PluginItem* item = (PluginItem*) list.at(0); if(item->getMode() == QDltPlugin::ModeDisable){ item->setMode( QDltPlugin::ModeEnable ); item->savePluginModeToSettings(); updatePlugin(item); applyConfigEnabled(true); }else{ QMessageBox::warning(0, QString("DLT Viewer"), QString("The selected Plugin is already deactivated.")); } } else QMessageBox::warning(0, QString("DLT Viewer"), QString("No Plugin selected!")); } void MainWindow::on_action_menuPlugin_Disable_triggered() { /* get selected plugin */ QList list = project.plugin->selectedItems(); if((list.count() == 1) ) { PluginItem* item = (PluginItem*) list.at(0); if(item->getMode() != QDltPlugin::ModeDisable){ item->setMode( QDltPlugin::ModeDisable ); item->savePluginModeToSettings(); updatePlugin(item); applyConfigEnabled(true); }else{ QMessageBox::warning(0, QString("DLT Viewer"), QString("The selected Plugin is already deactivated.")); } } else QMessageBox::warning(0, QString("DLT Viewer"), QString("No Plugin selected!")); } //---------------------------------------------------------------------------- // Filter functionalities //---------------------------------------------------------------------------- void MainWindow::filterAddTable() { QModelIndexList list = ui->tableView->selectionModel()->selection().indexes(); QDltMsg msg; QByteArray data; if(list.count()<=0) { QMessageBox::critical(0, QString("DLT Viewer"), QString("No message selected")); return; } QModelIndex index; for(int num=0; num < list.count();num++) { index = list[num]; if(index.column()==0) { break; } } data = qfile.getMsgFilter(index.row()); msg.setMsg(data); /* decode message if necessary */ iterateDecodersForMsg(msg,!OptManager::getInstance()->issilentMode()); /* show filter dialog */ FilterDialog dlg; dlg.setEnableEcuId(!msg.getEcuid().isEmpty()); dlg.setEcuId(msg.getEcuid()); dlg.setEnableApplicationId(!msg.getApid().isEmpty()); dlg.setApplicationId(msg.getApid()); dlg.setEnableContextId(!msg.getCtid().isEmpty()); dlg.setContextId(msg.getCtid()); dlg.setHeaderText(msg.toStringHeader()); dlg.setPayloadText(msg.toStringPayload()); if(dlg.exec()==1) { FilterItem* item = new FilterItem(0); project.filter->addTopLevelItem(item); filterDialogRead(dlg,item); } } void MainWindow::filterAdd() { EcuItem* ecuitem = 0; ContextItem* conitem = 0; ApplicationItem* appitem = 0; /* add filter triggered from popupmenu in Context list */ /* get selected context from configuration */ QList list = project.ecu->selectedItems(); if((list.count() == 1) && (list.at(0)->type() == ecu_type)) { ecuitem = (EcuItem*) list.at(0); } if((list.count() == 1) && (list.at(0)->type() == application_type)) { appitem = (ApplicationItem*) list.at(0); ecuitem = (EcuItem*) appitem->parent(); } if((list.count() == 1) && (list.at(0)->type() == context_type)) { conitem = (ContextItem*) list.at(0); appitem = (ApplicationItem*) conitem->parent(); ecuitem = (EcuItem*) appitem->parent(); } /* show filter dialog */ FilterDialog dlg; if(ecuitem) { dlg.setEnableEcuId(true); dlg.setEcuId(ecuitem->id); } if(appitem) { dlg.setEnableApplicationId(true); dlg.setApplicationId(appitem->id); } if(conitem) { dlg.setEnableContextId(true); dlg.setContextId(conitem->id); } if(dlg.exec()==1) { FilterItem* item = new FilterItem(0); project.filter->addTopLevelItem(item); filterDialogRead(dlg,item); } } void MainWindow::on_action_menuFilter_Save_As_triggered() { QString fileName = QFileDialog::getSaveFileName(this, tr("Save DLT Filters"), workingDirectory.getDlfDirectory(), tr("DLT Filter File (*.dlf);;All files (*.*)")); if(!fileName.isEmpty()) { workingDirectory.setDlfDirectory(QFileInfo(fileName).absolutePath()); project.SaveFilter(fileName); setCurrentFilters(fileName); } } void MainWindow::on_action_menuFilter_Load_triggered() { QString fileName = QFileDialog::getOpenFileName(this, tr("Load DLT Filter file"), workingDirectory.getDlfDirectory(), tr("DLT Filter Files (*.dlf);;All files (*.*)")); openDlfFile(fileName,true); } void MainWindow::on_action_menuFilter_Add_triggered() { /* show filter dialog */ FilterDialog dlg; if(dlg.exec()==1) { FilterItem* item = new FilterItem(0); project.filter->addTopLevelItem(item); filterDialogRead(dlg,item); } } void MainWindow::filterDialogWrite(FilterDialog &dlg,FilterItem* item) { dlg.setType((int)(item->filter.type)); dlg.setName(item->filter.name); dlg.setEcuId(item->filter.ecuid); dlg.setApplicationId(item->filter.apid); dlg.setContextId(item->filter.ctid); dlg.setHeaderText(item->filter.header); dlg.setPayloadText(item->filter.payload); dlg.setEnableRegexp_Context(item->filter.enableRegexp_Context); dlg.setEnableRegexp_Header (item->filter.enableRegexp_Header); dlg.setEnableRegexp_Payload(item->filter.enableRegexp_Payload); dlg.setIgnoreCase_Header(item->filter.ignoreCase_Header); dlg.setIgnoreCase_Payload(item->filter.ignoreCase_Payload); dlg.setActive(item->filter.enableFilter); dlg.setEnableEcuId(item->filter.enableEcuid); dlg.setEnableApplicationId(item->filter.enableApid); dlg.setEnableContextId(item->filter.enableCtid); dlg.setEnableHeaderText(item->filter.enableHeader); dlg.setEnablePayloadText(item->filter.enablePayload); dlg.setEnableCtrlMsgs(item->filter.enableCtrlMsgs); dlg.setEnableLogLevelMax(item->filter.enableLogLevelMax); dlg.setEnableLogLevelMin(item->filter.enableLogLevelMin); dlg.setEnableMarker(item->filter.enableMarker); dlg.setFilterColour(item->filter.filterColour); dlg.setLogLevelMax(item->filter.logLevelMax); dlg.setLogLevelMin(item->filter.logLevelMin); } void MainWindow::filterDialogRead(FilterDialog &dlg,FilterItem* item) { item->filter.type = (QDltFilter::FilterType)(dlg.getType()); item->filter.name = dlg.getName(); item->filter.ecuid = dlg.getEcuId(); item->filter.apid = dlg.getApplicationId(); item->filter.ctid = dlg.getContextId(); item->filter.header = dlg.getHeaderText(); item->filter.payload = dlg.getPayloadText(); item->filter.enableRegexp_Context = dlg.getEnableRegexp_Context(); item->filter.enableRegexp_Header = dlg.getEnableRegexp_Header(); item->filter.enableRegexp_Payload = dlg.getEnableRegexp_Payload(); item->filter.ignoreCase_Header = dlg.getIgnoreCase_Header(); item->filter.ignoreCase_Payload = dlg.getIgnoreCase_Payload(); item->filter.enableFilter = dlg.getEnableActive(); item->filter.enableEcuid = dlg.getEnableEcuId(); item->filter.enableApid = dlg.getEnableApplicationId(); item->filter.enableCtid = dlg.getEnableContextId(); item->filter.enableHeader = dlg.getEnableHeaderText(); item->filter.enablePayload = dlg.getEnablePayloadText(); item->filter.enableCtrlMsgs = dlg.getEnableCtrlMsgs(); item->filter.enableLogLevelMax = dlg.getEnableLogLevelMax(); item->filter.enableLogLevelMin = dlg.getEnableLogLevelMin(); item->filter.enableMarker = dlg.getEnableMarker(); item->filter.filterColour = dlg.getFilterColour(); item->filter.logLevelMax = dlg.getLogLevelMax(); item->filter.logLevelMin = dlg.getLogLevelMin(); /* update filter item */ item->update(); on_filterWidget_itemSelectionChanged(); /* Update filters in qfile and either update * view or pulse the button depending on if it is a filter or * marker. */ filterUpdate(); if(item->filter.isPositive() || item->filter.isNegative()) { applyConfigEnabled(true); } if(item->filter.isMarker()) { tableModel->modelChanged(); } } void MainWindow::on_action_menuFilter_Duplicate_triggered() { QTreeWidget *widget; /* get currently visible filter list in user interface */ if(ui->tabPFilter->isVisible()) { widget = project.filter; } else return; /* get selected filter form list */ QList list = widget->selectedItems(); if((list.count() == 1) ) { FilterItem* item = (FilterItem*) list.at(0); /* show filter dialog */ FilterDialog dlg; filterDialogWrite(dlg,item); if(dlg.exec()) { FilterItem* newitem = new FilterItem(0); project.filter->addTopLevelItem(newitem); filterDialogRead(dlg,newitem); } } else { QMessageBox::warning(0, QString("DLT Viewer"), QString("No Filter selected!")); } } void MainWindow::on_action_menuFilter_Edit_triggered() { QTreeWidget *widget; /* get currently visible filter list in user interface */ if(ui->tabPFilter->isVisible()) { widget = project.filter; } else return; /* get selected filter form list */ QList list = widget->selectedItems(); if((list.count() == 1) ) { FilterItem* item = (FilterItem*) list.at(0); /* show filter dialog */ FilterDialog dlg; filterDialogWrite(dlg,item); if(dlg.exec()) { filterDialogRead(dlg,item); } } else { QMessageBox::warning(0, QString("DLT Viewer"), QString("No Filter selected!")); } } void MainWindow::on_action_menuFilter_Delete_triggered() { QTreeWidget *widget; /* get currently visible filter list in user interface */ if(ui->tabPFilter->isVisible()) { widget = project.filter; } else return; /* get selected filter from list */ QList list = widget->selectedItems(); if((list.count() == 1) ) { /* delete filter */ FilterItem *item = (FilterItem *)widget->takeTopLevelItem(widget->indexOfTopLevelItem(list.at(0))); filterUpdate(); if(item->filter.isMarker()) { tableModel->modelChanged(); } else { applyConfigEnabled(true); } delete widget->takeTopLevelItem(widget->indexOfTopLevelItem(list.at(0))); } else { QMessageBox::warning(0, QString("DLT Viewer"), QString("No Filter selected!")); } on_filterWidget_itemSelectionChanged(); } void MainWindow::on_action_menuFilter_Clear_all_triggered() { /* delete complete filter list */ project.filter->clear(); applyConfigEnabled(true); } void MainWindow::filterUpdate() { QDltFilter *filter; /* update all filters from filter configuration to DLT filter list */ /* clear old filter list */ qfile.clearFilter(); /* iterate through all filters */ for(int num = 0; num < project.filter->topLevelItemCount (); num++) { FilterItem *item = (FilterItem*)project.filter->topLevelItem(num); filter = new QDltFilter(); *filter = item->filter; if(item->filter.isMarker()) { item->setBackground(0,item->filter.filterColour); item->setBackground(1,item->filter.filterColour); item->setForeground(0,DltUiUtils::optimalTextColor(item->filter.filterColour)); item->setForeground(1,DltUiUtils::optimalTextColor(item->filter.filterColour)); } else { item->setBackground(0,QColor(0xff,0xff,0xff)); item->setBackground(1,QColor(0xff,0xff,0xff)); item->setForeground(0,DltUiUtils::optimalTextColor(QColor(0xff,0xff,0xff))); item->setForeground(1,DltUiUtils::optimalTextColor(QColor(0xff,0xff,0xff))); } if(filter->enableRegexp_Context || filter->enableRegexp_Header || filter->enableRegexp_Payload) { if(!filter->compileRegexps()) { // This is also validated in the UI part qDebug() << "Error compiling a regexp" << endl; } } qfile.addFilter(filter); } qfile.updateSortedFilter(); } void MainWindow::on_tableView_customContextMenuRequested(QPoint pos) { /* show custom pop menu for configuration */ QPoint globalPos = ui->tableView->mapToGlobal(pos); QMenu menu(ui->tableView); QAction *action; QModelIndexList list = ui->tableView->selectionModel()->selection().indexes(); action = new QAction("&Copy Selection to Clipboard", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuConfig_Copy_to_clipboard_triggered())); menu.addAction(action); menu.addSeparator(); action = new QAction("&Export...", this); if(qfile.sizeFilter() <= 0) action->setEnabled(false); else connect(action, SIGNAL(triggered()), this, SLOT(on_actionExport_triggered())); menu.addAction(action); menu.addSeparator(); action = new QAction("&Filter Add", this); connect(action, SIGNAL(triggered()), this, SLOT(filterAddTable())); menu.addAction(action); menu.addSeparator(); action = new QAction("Load Filter(s)...", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuFilter_Load_triggered())); menu.addAction(action); /* show popup menu */ menu.exec(globalPos); } void MainWindow::on_tableView_SearchIndex_customContextMenuRequested(QPoint pos) { /* show custom pop menu for search table */ QPoint globalPos = ui->tableView_SearchIndex->mapToGlobal(pos); QMenu menu(ui->tableView_SearchIndex); QAction *action; action = new QAction("&Copy Selection to Clipboard", this); connect(action, SIGNAL(triggered()), this, SLOT(on_action_menuConfig_SearchTable_Copy_to_clipboard_triggered())); menu.addAction(action); menu.addSeparator(); /* show popup menu */ menu.exec(globalPos); } void MainWindow::on_action_menuConfig_SearchTable_Copy_to_clipboard_triggered() { exportSelection_searchTable(); } void MainWindow::keyPressEvent ( QKeyEvent * event ) { if(event->matches(QKeySequence::Copy)) { if(ui->tableView->hasFocus()) { exportSelection(true,false); } if(ui->tableView_SearchIndex->hasFocus()) { exportSelection_searchTable(); } } if(event->matches(QKeySequence::Paste)) { QMessageBox::warning(this, QString("Paste"), QString("pressed")); } if(event->matches(QKeySequence::Cut)) { QMessageBox::warning(this, QString("Cut"), QString("pressed")); } // Access menu bar if(event->key() == Qt::Key_F10) { if(ui->menuBar->activeAction() != NULL) { ui->menuBar->setActiveAction(NULL); this->setFocus(); } else { ui->menuBar->setFocus(); if(ui->menuBar->children().length() > 1) { QMenu *firstMenu = (QMenu *) ui->menuBar->children()[1]; if(firstMenu->actions().length() > 0) { ui->menuBar->setActiveAction(firstMenu->actions()[0]); QKeyEvent rightPress(QEvent::KeyPress, Qt::Key_Right, Qt::NoModifier); qApp->sendEvent(ui->menuBar, &rightPress); } } } } QMainWindow::keyPressEvent(event); } void MainWindow::dragEnterEvent(QDragEnterEvent *event) { if (event->mimeData()->hasUrls()) event->acceptProposedAction(); } void MainWindow::dropEvent(QDropEvent *event) { QString filename; QStringList filenames; if (event->mimeData()->hasUrls()) { for(int num = 0;nummimeData()->urls().size();num++) { QUrl url = event->mimeData()->urls()[num]; filename = url.toLocalFile(); if(filename.endsWith(".dlt", Qt::CaseInsensitive)) { filenames.append(filename); workingDirectory.setDltDirectory(QFileInfo(filename).absolutePath()); } else if(filename.endsWith(".dlp", Qt::CaseInsensitive)) { /* Project file dropped */ openDlpFile(filename); } else if(filename.endsWith(".dlf", Qt::CaseInsensitive)) { /* Filter file dropped */ openDlfFile(filename,true); } else { /* ask for active decoder plugin to load configuration */ QStringList items; QList list = pluginManager.getDecoderPlugins(); for(int num=0;numgetName(); } /* check if decoder plugin list is empty */ if(list.size()==0) { /* show warning */ QMessageBox::warning(this, QString("Drag&Drop"), QString("No decoder plugin active to load configuration of file:\n")+filename); return; } QString item=""; bool ok; if(list.size()!=1) { item = QInputDialog::getItem(this, tr("DLT Viewer"), tr("Select Plugin to load configuration:"), items, 0, false, &ok); } else { item=items.at(0); ok=true; } if (ok && !item.isEmpty()) { QDltPlugin* plugin = pluginManager.findPlugin(item); if(plugin) { plugin->loadConfig(filename); for(int num = 0; num < project.plugin->topLevelItemCount (); num++) { PluginItem *pluginitem = (PluginItem*)project.plugin->topLevelItem(num); if(pluginitem->getPlugin() == plugin) { /* update plugin */ pluginitem->setFilename( filename ); /* update plugin item */ updatePlugin(pluginitem); applyConfigEnabled(true); ui->tabWidget->setCurrentWidget(ui->tabPlugin); break; } } } } } } if(!filenames.isEmpty()) { /* DLT log file dropped */ openDltFile(filenames); outputfileIsTemporary = false; outputfileIsFromCLI = false; } } else { QMessageBox::warning(this, QString("Drag&Drop"), QString("No dlt file or project file or other file dropped!\n")+filename); } } void MainWindow::sectionInTableDoubleClicked(int logicalIndex){ ui->tableView->resizeColumnToContents(logicalIndex); } void MainWindow::on_pluginWidget_itemExpanded(QTreeWidgetItem* item) { PluginItem *plugin = (PluginItem*)item; plugin->takeChildren(); QStringList list = plugin->getPlugin()->infoConfig(); for(int num=0;numaddChild(new QTreeWidgetItem(QStringList(list.at(num)))); } } void MainWindow::on_filterWidget_itemClicked(QTreeWidgetItem *item, int column) { on_filterWidget_itemSelectionChanged(); if(column == 0) { FilterItem *tmp = (FilterItem*)item; if(tmp->checkState(column) == Qt::Unchecked) { tmp->filter.enableFilter = false; } else { tmp->filter.enableFilter = true; } applyConfigEnabled(true); } } void MainWindow::iterateDecodersForMsg(QDltMsg &msg, int triggeredByUser) { pluginManager.decodeMsg(msg,triggeredByUser); } void MainWindow::on_action_menuConfig_Collapse_All_ECUs_triggered() { ui->configWidget->collapseAll(); } void MainWindow::on_action_menuConfig_Expand_All_ECUs_triggered() { ui->configWidget->expandAll(); } void MainWindow::on_action_menuConfig_Copy_to_clipboard_triggered() { exportSelection(true,false); } void MainWindow::on_action_menuFilter_Append_Filters_triggered() { QString fileName = QFileDialog::getOpenFileName(this, tr("Load DLT Filter file"), workingDirectory.getDlfDirectory(), tr("DLT Filter Files (*.dlf);;All files (*.*)")); openDlfFile(fileName,false); } int MainWindow::nearest_line(int line){ if (line < 0 || line > qfile.size()-1){ return -1; } // If filters are off, just go directly to the row // If filters are enabled and no search result are matched, jump to beginning int row = 0; if(!qfile.isFilter()) { row = line; } else { /* Iterate through filter index, trying to find * matching index. If it cannot be found, just settle * for the last one that we saw before going over */ int lastFound = 0; for(int i=0;i line */ { // Calculate, if we are nearer to the line from last found. // If yes, use current line in search if((qfile.getMsgFilterPos(i)-line)<(line-qfile.getMsgFilterPos(lastFound))) lastFound = i; break; } } row = lastFound; } return row; } void MainWindow::jumpToMsgSignal(int index) { jump_to_line(index); } void MainWindow::markerSignal() { controlMessage_Marker(); } void MainWindow::reopenFileSignal() { applyConfigEnabled(false); filterUpdate(); // force always reparsing of log file reloadLogFile(false); } bool MainWindow::jump_to_line(int line) { int row = nearest_line(line); int column = -1; if (0 > row) return false; ui->tableView->selectionModel()->clear(); // maybe a more elegant way exists... anyway this works if(project.settings->showIndex == 1) column = FieldNames::Index; else if(project.settings->showTime == 1) column = FieldNames::Time; else if(project.settings->showTimestamp == 1) column = FieldNames::TimeStamp; else if(project.settings->showCount == 1) column = FieldNames::Counter; else if(project.settings->showEcuId == 1) column = FieldNames::EcuId; else if(project.settings->showApId == 1) column = FieldNames::AppId; else if(project.settings->showCtId == 1) column = FieldNames::ContextId; else if(project.settings->showSessionId == 1) column = FieldNames::SessionId; else if(project.settings->showArguments == 1) column = FieldNames::ArgCount; else if(project.settings->showPayload == 1) column = FieldNames::Payload; QModelIndex idx = tableModel->index(row, column, QModelIndex()); ui->tableView->scrollTo(idx, QAbstractItemView::PositionAtTop); ui->tableView->selectionModel()->select(idx, QItemSelectionModel::Select|QItemSelectionModel::Rows); ui->tableView->setFocus(); return true; } void MainWindow::on_actionJump_To_triggered() { JumpToDialog dlg(this); int min = 0; int max = qfile.size()-1; dlg.setLimits(min, max); int result = dlg.exec(); if(result != QDialog::Accepted) { return; } jump_to_line(dlg.getIndex()); } void MainWindow::on_actionApply_Configuration_triggered(bool checked) { Q_UNUSED(checked) this->on_applyConfig_clicked(); } void MainWindow::on_actionToggle_PluginsEnabled_triggered(bool checked) { ui->pluginsEnabled->setChecked(checked); ui->applyConfig->setFocus(); // have to set different focus first, so that scrollTo() works on_applyConfig_clicked(); } void MainWindow::on_actionToggle_FiltersEnabled_triggered(bool checked) { ui->filtersEnabled->setChecked(checked); ui->applyConfig->setFocus(); // have to set different focus first, so that scrollTo() works on_applyConfig_clicked(); } void MainWindow::on_actionToggle_SortByTimeEnabled_triggered(bool checked) { ui->checkBoxSortByTime->setChecked(checked); ui->applyConfig->setFocus(); // have to set different focus first, so that scrollTo() works on_applyConfig_clicked(); } void MainWindow::on_actionAutoScroll_triggered(bool checked) { int autoScrollOld = settings->autoScroll; // Mapping: button to variable settings->autoScroll = (checked?Qt::Checked:Qt::Unchecked); if (autoScrollOld!=settings->autoScroll) settings->writeSettings(this); // inform plugins about changed autoscroll status pluginManager.autoscrollStateChanged(settings->autoScroll); } void MainWindow::on_actionConnectAll_triggered() { connectAll(); } void MainWindow::on_actionDisconnectAll_triggered() { disconnectAll(); } void MainWindow::on_pluginsEnabled_toggled(bool checked) { DltSettingsManager::getInstance()->setValue("startup/pluginsEnabled", checked); applyConfigEnabled(true); } void MainWindow::on_filtersEnabled_toggled(bool checked) { DltSettingsManager::getInstance()->setValue("startup/filtersEnabled", checked); ui->checkBoxSortByTime->setEnabled(checked); applyConfigEnabled(true); } void MainWindow::on_checkBoxSortByTime_toggled(bool checked) { DltSettingsManager::getInstance()->setValue("startup/sortByTimeEnabled", checked); applyConfigEnabled(true); } void MainWindow::on_applyConfig_clicked() { ui->actionToggle_SortByTimeEnabled->setChecked(ui->checkBoxSortByTime->isChecked()); if (ui->checkBoxSortByTime->isChecked()) { ui->actionToggle_SortByTimeEnabled->setText("Stop sorting by Time"); } else { ui->actionToggle_SortByTimeEnabled->setText("Sort by Time"); } ui->actionToggle_PluginsEnabled->setChecked(ui->pluginsEnabled->isChecked()); if (ui->pluginsEnabled->isChecked()) { ui->actionToggle_PluginsEnabled->setText("Disable Plugins"); } else { ui->actionToggle_PluginsEnabled->setText("Enable Plugins"); } ui->actionToggle_FiltersEnabled->setChecked(ui->filtersEnabled->isChecked()); if (ui->filtersEnabled->isChecked()) { ui->actionToggle_FiltersEnabled->setText("Disable Filters"); } else { ui->actionToggle_FiltersEnabled->setText("Enable Filters"); } applyConfigEnabled(false); filterUpdate(); reloadLogFile(true); } void MainWindow::clearSelection() { previousSelection.clear(); ui->tableView->selectionModel()->clear(); } void MainWindow::saveSelection() { previousSelection.clear(); /* Store old selections */ QModelIndexList rows = ui->tableView->selectionModel()->selectedRows(); for(int i=0;iindex(0, 0); QItemSelection newSelection; // clear current selection model ui->tableView->selectionModel()->clear(); // check if anything was selected if(previousSelection.count()==0) return; // restore all selected lines for(int j=0;jindex(nearestIndex, 0); newSelection.select(idx, idx); } // set all selections ui->tableView->selectionModel()->select(newSelection, QItemSelectionModel::Select|QItemSelectionModel::Rows); // scroll to first selected row ui->tableView->setFocus(); // focus must be set before scrollto is possible QModelIndex idx = tableModel->index(firstIndex, 0, QModelIndex()); ui->tableView->scrollTo(idx, QAbstractItemView::PositionAtTop); } void MainWindow::on_tabWidget_currentChanged(int index) { if(index > 0) { ui->enableConfigFrame->setVisible(true); } else { ui->enableConfigFrame->setVisible(false); } } void MainWindow::filterOrderChanged() { filterUpdate(); tableModel->modelChanged(); } void MainWindow::searchTableRenewed() { if ( 0 < m_searchtableModel->get_SearchResultListSize()) ui->dockWidgetSearchIndex->show(); m_searchtableModel->modelChanged(); } void MainWindow::searchtable_cellSelected( QModelIndex index) { int position = index.row(); printf("POSITION:%i\n", position); unsigned long entry; if (! m_searchtableModel->get_SearchResultEntry(position, entry) ) return; tableModel->setLastSearchIndex(entry); jump_to_line(entry); } void MainWindow::on_comboBoxFilterSelection_activated(const QString &arg1) { /* check if not "no default filter" item selected */ if(ui->comboBoxFilterSelection->currentIndex()==0) { /* reset all default filter index */ defaultFilter.clearFilterIndex(); return; } /* load current selected filter */ if(!arg1.isEmpty() && project.LoadFilter(arg1,true)) { workingDirectory.setDlfDirectory(QFileInfo(arg1).absolutePath()); setCurrentFilters(arg1); /* if filter index already stored default filter cache, use index from cache */ QDltFilterIndex *index = defaultFilter.defaultFilterIndex[ui->comboBoxFilterSelection->currentIndex()-1]; /* check if filename and qfile size is matching cache entry */ if(index->allIndexSize == qfile.size() && index->dltFileName == qfile.getFileName()) { /* save selection */ saveSelection(); /* filter index cache found */ /* copy index into file */ qfile.setIndexFilter(index->indexFilter); /* update ui */ applyConfigEnabled(false); filterUpdate(); tableModel->modelChanged(); m_searchtableModel->modelChanged(); restoreSelection(); } else { /* filter index cache not found */ /* Activate filter and create index there as usual */ on_applyConfig_clicked(); /* Now store the created index in the default filter cache */ QDltFilterIndex *index = defaultFilter.defaultFilterIndex[ui->comboBoxFilterSelection->currentIndex()-1]; index->setIndexFilter(qfile.getIndexFilter()); index->setDltFileName(qfile.getFileName()); index->setAllIndexSize(qfile.size()); } ui->tabWidget->setCurrentWidget(ui->tabPFilter); on_filterWidget_itemSelectionChanged(); } } void MainWindow::on_actionDefault_Filter_Reload_triggered() { QDir dir; /* clear combobox default filter */ ui->comboBoxFilterSelection->clear(); /* add "no default filter" entry */ ui->comboBoxFilterSelection->addItem(""); /* clear default filter list */ defaultFilter.clear(); // check if default filter enabled if(!settings->defaultFilterPath) { return; } /* get the filter path */ dir.setPath(settings->defaultFilterPathName); /* update tooltip */ ui->comboBoxFilterSelection->setToolTip(QString("Multifilterlist in folder %1").arg(dir.absolutePath())); /* check if directory for configuration exists */ if(!dir.exists()) { /* directory does not exist, make it */ if(!dir.mkpath(dir.absolutePath())) { /* creation of directory fails */ QMessageBox::critical(0, QString("DLT Viewer"), QString("Cannot create directory to store cache files!\n\n")+dir.absolutePath(), QMessageBox::Ok, QMessageBox::Ok); return; } } /* load the default filter list */ defaultFilter.load(dir.absolutePath()); /* default filter list update combobox */ QDltFilterList *filterList; foreach(filterList,defaultFilter.defaultFilterList) ui->comboBoxFilterSelection->addItem(filterList->getFilename()); } void MainWindow::on_actionDefault_Filter_Create_Index_triggered() { /* reset default filter list and reload from directory all default filter */ reloadLogFileDefaultFilter(); } void MainWindow::applyConfigEnabled(bool enabled) { if(enabled) { /* show apply config button */ ui->applyConfig->startPulsing(pulseButtonColor); ui->actionApply_Configuration->setCheckable(true); ui->actionApply_Configuration->setChecked(true); ui->applyConfig->setEnabled(true); /* reset default filter selection and default filter index */ resetDefaultFilter(); } else { /* hide apply config button */ ui->applyConfig->stopPulsing(); ui->actionApply_Configuration->setCheckable(false); ui->applyConfig->setEnabled(false); } } void MainWindow::resetDefaultFilter() { /* reset all default filter index */ defaultFilter.clearFilterIndex(); /* select "no default filter" entry */ ui->comboBoxFilterSelection->setCurrentIndex(0); //no default filter anymore } void MainWindow::on_pushButtonDefaultFilterUpdateCache_clicked() { on_actionDefault_Filter_Create_Index_triggered(); } void MainWindow::on_actionMarker_triggered() { controlMessage_Marker(); } void MainWindow::onAddActionToHistory() { QString searchText = searchDlg->getText(); if((!searchHistory.contains(searchText,Qt::CaseInsensitive)) && !searchText.isEmpty()) { searchHistory.prepend(searchText); } int searchHistorySize = searchHistory.size(); for (int i = 0;i < searchHistorySize && i < MaxSearchHistory; i++) { searchHistoryActs[i]->setText(searchHistory[i]); searchHistoryActs[i]->setVisible(true); } } void MainWindow::onSearchProgressChanged(bool isInProgress) { isSearchOngoing = isInProgress; ui->menuBar->setEnabled(!isInProgress); ui->mainToolBar->setEnabled(!isInProgress); ui->searchToolbar->setEnabled(!isInProgress); ui->dockWidgetProject->setEnabled(!isInProgress); } dlt-viewer-2.18.0+dfsg/src/searchtablemodel.cpp0000664000175000017500000002406213001357026021015 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file searchdialog.h * For further information see http://www.genivi.org/. * @licence end@ */ #include "searchtablemodel.h" #include "fieldnames.h" #include "dltsettingsmanager.h" #include "dltuiutils.h" #include "optmanager.h" SearchTableModel::SearchTableModel(const QString &,QObject *parent) : QAbstractTableModel(parent) { qfile = NULL; project = NULL; pluginManager = NULL; } SearchTableModel::~SearchTableModel() { } QVariant SearchTableModel::data(const QModelIndex &index, int role) const { QDltMsg msg; QByteArray buf; if (!index.isValid()) return QVariant(); if (index.row() >= m_searchResultList.size() && index.row()<0) return QVariant(); if (role == Qt::DisplayRole) { /* get the message with the selected item id */ if(!qfile->getMsg(m_searchResultList.at(index.row()), msg)) { if(index.column() == FieldNames::Index) { return QString("%1").arg((m_searchResultList.at(index.row()))); } else if(index.column() == FieldNames::Payload) { return QString("!!CORRUPTED MESSAGE!!"); } return QVariant(); } if(DltSettingsManager::getInstance()->value("startup/pluginsEnabled", true).toBool()) pluginManager->decodeMsg(msg,!OptManager::getInstance()->issilentMode()); switch(index.column()) { case FieldNames::Index: /* display index */ return QString("%1").arg((m_searchResultList.at(index.row()))); case FieldNames::Time: if( project->settings->automaticTimeSettings == 0 ) return QString("%1.%2").arg(msg.getGmTimeWithOffsetString(project->settings->utcOffset,project->settings->dst)).arg(msg.getMicroseconds(),6,10,QLatin1Char('0')); else return QString("%1.%2").arg(msg.getTimeString()).arg(msg.getMicroseconds(),6,10,QLatin1Char('0')); case FieldNames::TimeStamp: return QString("%1.%2").arg(msg.getTimestamp()/10000).arg(msg.getTimestamp()%10000,4,10,QLatin1Char('0')); case FieldNames::Counter: return QString("%1").arg(msg.getMessageCounter()); case FieldNames::EcuId: return msg.getEcuid(); case FieldNames::AppId: switch(project->settings->showApIdDesc){ case 0: return msg.getApid(); break; case 1: for(int num = 0; num < project->ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project->ecu->topLevelItem(num); for(int numapp = 0; numapp < ecuitem->childCount(); numapp++) { ApplicationItem * appitem = (ApplicationItem *) ecuitem->child(numapp); if(appitem->id == msg.getApid() && !appitem->description.isEmpty()) { return appitem->description; } } } return QString("Apid: %1 (No description)").arg(msg.getApid()); break; default: return msg.getApid(); } case FieldNames::ContextId: switch(project->settings->showCtIdDesc){ case 0: return msg.getCtid(); break; case 1: for(int num = 0; num < project->ecu->topLevelItemCount (); num++) { EcuItem *ecuitem = (EcuItem*)project->ecu->topLevelItem(num); for(int numapp = 0; numapp < ecuitem->childCount(); numapp++) { ApplicationItem * appitem = (ApplicationItem *) ecuitem->child(numapp); for(int numcontext = 0; numcontext < appitem->childCount(); numcontext++) { ContextItem * conitem = (ContextItem *) appitem->child(numcontext); if(appitem->id == msg.getApid() && conitem->id == msg.getCtid() && !conitem->description.isEmpty()) { return conitem->description; } } } } return QString("Ctid: %1 (No description)").arg(msg.getCtid()); break; default: return msg.getCtid(); } case FieldNames::SessionId: switch(project->settings->showSessionName){ case 0: return QString("%1").arg(msg.getSessionid()); break; case 1: if(!msg.getSessionName().isEmpty()) return msg.getSessionName(); else return QString("%1").arg(msg.getSessionid()); break; default: return QString("%1").arg(msg.getSessionid()); } case FieldNames::Type: return msg.getTypeString(); case FieldNames::Subtype: return msg.getSubtypeString(); case FieldNames::Mode: return msg.getModeString(); case FieldNames::ArgCount: return QString("%1").arg(msg.getNumberOfArguments()); case FieldNames::Payload: /* display payload */ return msg.toStringPayload(); default: if (index.column()>=FieldNames::Arg0) { int col=index.column()-FieldNames::Arg0; //arguments a zero based QDltArgument arg; if (msg.getArgument(col,arg)) { return arg.toString(); } else return QString(" - "); } } } if ( role == Qt::ForegroundRole ) { //always white return QVariant(QBrush(QColor(0,0,0))); } if ( role == Qt::BackgroundRole ) { //always black return QVariant(QBrush(QColor(255,255,255))); } if ( role == Qt::TextAlignmentRole ) { switch(index.column()) { case FieldNames::Index: return QVariant(Qt::AlignRight | Qt::AlignVCenter); case FieldNames::Time: return QVariant(Qt::AlignCenter | Qt::AlignVCenter); case FieldNames::TimeStamp: return QVariant(Qt::AlignRight | Qt::AlignVCenter); case FieldNames::Counter: return QVariant(Qt::AlignCenter | Qt::AlignVCenter);//don't show that in the search field case FieldNames::EcuId: return QVariant(Qt::AlignCenter | Qt::AlignVCenter); case FieldNames::AppId: return QVariant(Qt::AlignCenter | Qt::AlignVCenter); switch(project->settings->showApIdDesc){ case 0: return QVariant(Qt::AlignCenter | Qt::AlignVCenter); break; case 1: return QVariant(Qt::AlignLeft | Qt::AlignVCenter); break; default: return QVariant(Qt::AlignLeft | Qt::AlignVCenter); break; } case FieldNames::ContextId: switch(project->settings->showCtIdDesc){ case 0: return QVariant(Qt::AlignCenter | Qt::AlignVCenter); break; case 1: return QVariant(Qt::AlignLeft | Qt::AlignVCenter); break; default: return QVariant(Qt::AlignLeft | Qt::AlignVCenter); break; } case FieldNames::Type: return QVariant(Qt::AlignCenter | Qt::AlignVCenter); case FieldNames::Subtype: return QVariant(Qt::AlignCenter | Qt::AlignVCenter); case FieldNames::Mode: return QVariant(Qt::AlignCenter | Qt::AlignVCenter); case FieldNames::ArgCount: return QVariant(Qt::AlignRight | Qt::AlignVCenter); case FieldNames::Payload: return QVariant(Qt::AlignLeft | Qt::AlignVCenter); } } return QVariant(); } QVariant SearchTableModel::headerData(int section, Qt::Orientation orientation, int role) const { if (role != Qt::DisplayRole) return QVariant(); if (orientation == Qt::Horizontal) { return FieldNames::getName((FieldNames::Fields)section, project->settings); } return QVariant(); } int SearchTableModel::rowCount(const QModelIndex & /*parent*/) const { return get_SearchResultListSize(); } void SearchTableModel::modelChanged() { index(0, 1); index(m_searchResultList.size()-1, 0); index(m_searchResultList.size()-1, columnCount() - 1); emit(layoutChanged()); } int SearchTableModel::columnCount(const QModelIndex & /*parent*/) const { return DLT_VIEWER_SEARCHCOLUMN_COUNT+project->settings->showArguments; } void SearchTableModel::clear_SearchResults() { m_searchResultList.clear(); } void SearchTableModel::add_SearchResultEntry(unsigned long entry) { m_searchResultList.append(entry); } bool SearchTableModel::get_SearchResultEntry(int position, unsigned long &entry) { if (position > m_searchResultList.size() || 0 > position ) { return false; } entry = m_searchResultList.at(position); return true; } int SearchTableModel::get_SearchResultListSize() const { return m_searchResultList.size(); } dlt-viewer-2.18.0+dfsg/src/contextdialog.cpp0000775000175000017500000000267213001357026020371 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file contextdialog.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "contextdialog.h" #include "ui_contextdialog.h" ContextDialog::ContextDialog(QString id,QString description,int loglevel, int tracestatus, QWidget *parent) : QDialog(parent), ui(new Ui::ContextDialog) { ui->setupUi(this); ui->idLineEdit->setText(id); ui->descriptionLineEdit->setText(description); ui->loglevelComboBox->setCurrentIndex(loglevel+1); ui->tracestatusComboBox->setCurrentIndex(tracestatus+1); } ContextDialog::~ContextDialog() { delete ui; } QString ContextDialog::id() { return ui->idLineEdit->text(); } QString ContextDialog::description() { return ui->descriptionLineEdit->text(); } int ContextDialog::loglevel() { return ui->loglevelComboBox->currentIndex()-1; } int ContextDialog::tracestatus() { return ui->tracestatusComboBox->currentIndex()-1; } int ContextDialog::update() { return ui->checkBoxUpdate->isChecked(); } dlt-viewer-2.18.0+dfsg/src/mainwindow.h0000775000175000017500000004204413001357026017343 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file mainwindow.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include "tablemodel.h" #include "project.h" #include "settingsdialog.h" #include "searchdialog.h" #include "optmanager.h" #include "qdlt.h" #include "dltsettingsmanager.h" #include "filterdialog.h" #include "dltfileindexer.h" #include "workingdirectory.h" #include "exporterdialog.h" #include #include "searchtablemodel.h" #include "ui_mainwindow.h" #include /** * When ecu items buffer size exceeds this while using * serial connection, it will be considered corrupted. **/ #define DLT_BUFFER_CORRUPT_TRESHOLD 4* 1024 /** * @brief Namespace to contain the toolbar positions. * You should always remember to update these enums if you * add, remove or re-arrange actions in the toolbars! * If you add separators, please add "Separator" lines similar * to those below, to make it obvious why the numbering scheme is * leaping over some numbers. */ namespace ToolbarPosition { /** * @brief Main Toolbar button positions. * These are static thorough the program run time. */ enum MainToolbarPosition { NewDltFile = 0, OpenDltFile = 1, Clear = 2, SaveDltFile = 3, SaveProjectFile = 4, // Separator = 5, ConnectAll = 6, DisconnectAll = 7, // Separator = 8, Settings = 9, // Separator = 10, AutoScroll = 11 }; /** * @brief Search Toolbar button positions * Please note! Find Previos/Next will be shifted * right by one position after constructor, because * the textbox is added! So, if you want to use this * enum to identify these actions later, you need to use * SearchToolbarPosition::FindXXX + 1. */ enum SearchToolbarPosition { Search = 0, Regexp = 1, SearchList = 2, // Separator = 3, FindPrevious = 4, FindNext = 5 }; } extern "C" { #include "dlt_common.h" } namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); QCompleter *newCompleter; private: Ui::MainWindow *ui; /* Timer for connecting to ECUs */ QTimer timer; /* Timer for draw Event */ QTimer draw_timer; int draw_interval; QDltControl qcontrol; QFile outputfile; bool outputfileIsTemporary; bool outputfileIsFromCLI; TableModel *tableModel; SearchTableModel *m_searchtableModel; WorkingDirectory workingDirectory; /* Status line items */ QLabel *statusFilename; QLabel *statusFileVersion; QLabel *statusBytesReceived; QLabel *statusByteErrorsReceived; QLabel *statusSyncFoundReceived; QProgressBar *statusProgressBar; unsigned long totalBytesRcvd; unsigned long totalByteErrorsRcvd; unsigned long totalSyncFoundRcvd; /* Search */ SearchDialog *searchDlg; QShortcut *m_shortcut_searchnext; QShortcut *m_shortcut_searchprev; /* Export */ ExporterDialog exporterDialog; /* Settings dialog containing also the settings parameter itself */ SettingsDialog *settings; QLineEdit *searchTextbox; /* injections */ QString injectionAplicationId; QString injectionContextId; QString injectionServiceId; QString injectionData; bool injectionDataBinary; /* Toggle buttons */ QAction *scrollButton; QList m_searchActions; QTableView *m_searchresultsTable; /* Autoload plugins configuration */ QStringList autoloadPluginsVersionEcus; QStringList autoloadPluginsVersionStrings; /* String List Containing Search History */ enum { MaxSearchHistory = 20 }; QAction *searchHistoryActs[MaxSearchHistory]; QStringList searchHistory; /* Recent files */ enum { MaxRecentFiles = 5 }; QAction *recentFileActs[MaxRecentFiles]; QStringList recentFiles; /* Recent projects */ enum { MaxRecentProjects = 5 }; QAction *recentProjectActs[MaxRecentProjects]; QStringList recentProjects; /* Recent filters */ enum { MaxRecentFilters = 5 }; QAction *recentFiltersActs[MaxRecentFilters]; QStringList recentFilters; /* Recent hostnames and ports */ enum { MaxRecentHostnames = 10 }; QStringList recentHostnames; enum { MaxRecentPorts = 10 }; QStringList recentPorts; /* dlt-file Indexer with cancel cabability */ DltFileIndexer *dltIndexer; /* Color for blinking 'Apply changes'-button */ QColor pulseButtonColor; bool isSearchOngoing; /* functions called in constructor */ void initState(); void initView(); void initSignalConnections(); void initFileHandling(); void initSearchTable(); /* general functions */ void getSelectedItems(EcuItem **ecuitem,ApplicationItem** appitem,ContextItem** conitem); /** * @brief Reload the complete log file * @param update if this parameter is false, the file is loaded the first time, if true the reload is performed because of a changed configuration * */ void reloadLogFileStop(); void reloadLogFile(bool update=false, bool multithreaded = true); void reloadLogFileDefaultFilter(); void exportSelection(bool ascii,bool file); void exportSelection_searchTable(); void ControlServiceRequest(EcuItem* ecuitem, int service_id ); void SendInjection(EcuItem* ecuitem); void controlMessage_SendControlMessage(EcuItem* ecuitem,DltMessage &msg, QString appid, QString contid); void controlMessage_WriteControlMessage(DltMessage &msg, QString appid, QString contid); void controlMessage_SetLogLevel(EcuItem* ecuitem, QString app, QString con,int log_level); void controlMessage_SetDefaultLogLevel(EcuItem* ecuitem, int status); void controlMessage_SetTraceStatus(EcuItem* ecuitem,QString app, QString con,int status); void controlMessage_SetDefaultTraceStatus(EcuItem* ecuitem, int status); void controlMessage_SetVerboseMode(EcuItem* ecuitem, int mode); void controlMessage_SetTimingPackets(EcuItem* ecuitem, bool enable); void controlMessage_GetSoftwareVersion(EcuItem* ecuitem); void controlMessage_GetLogInfo(EcuItem* ecuitem); void controlMessage_ReceiveControlMessage(EcuItem *ecuitem,QDltMsg &msg); void controlMessage_SetContext(EcuItem *ecuitem, QString apid, QString ctid,QString ctdescription,int log_level,int trace_status); void controlMessage_SetApplication(EcuItem *ecuitem, QString apid, QString appdescription); void controlMessage_Marker(); void filterDialogRead(FilterDialog &dlg,FilterItem* item); void filterDialogWrite(FilterDialog &dlg,FilterItem* item); void filterUpdate(); void loadPlugins(); void updatePluginsECUList(); void updatePlugins(); void updatePlugin(PluginItem *item); void contextLoadingFile(QDltMsg &msg); void versionString(QDltMsg &msg); void pluginsAutoload(QString version); void connectECU(EcuItem *ecuitem,bool force = false); void disconnectECU(EcuItem *ecuitem); void checkConnectionState(); void read(EcuItem *ecuitem); void updateIndex(); void drawUpdatedView(); void updateRecentFileActions(); void setCurrentFile(const QString &fileName); void removeCurrentFile(const QString &fileName); void updateRecentProjectActions(); void setCurrentProject(const QString &projectName); void removeCurrentProject(const QString &projectName); void updateRecentFiltersActions(); void setCurrentFilters(const QString &filtersName); void removeCurrentFilters(const QString &filtersName); void setCurrentHostname(const QString &hostName); void setCurrentPort(const QString &portName); void sendUpdates(EcuItem* ecuitem); bool anyPluginsEnabled(); bool anyFiltersEnabled(); bool openDltFile(QStringList fileName); bool openDlpFile(QString filename); bool openDlfFile(QString filename, bool replace); void commandLineConvertToASCII(); void commandLineConvertToUTF8(); void commandLineExecutePlugin(QString name, QString cmd, QStringList params); void iterateDecodersForMsg(QDltMsg &, int triggeredByUser); QStringList getSerialPortsWithQextEnumerator(); void deleteactualFile(); int nearest_line(int line); bool jump_to_line(int line); /** * @brief ErrorMessage * @param String which is shown as MessageBox, if we are not in silent mode. * In Silent Mode, it is printed on the console, which only works in Windows DEbug or under Linux Shells * */ void ErrorMessage(QMessageBox::Icon level, QString title, QString message); void clearSelection(); void saveSelection(); void restoreSelection(); QList previousSelection; /* Disconnect and Reconnect serial connections */ QList m_previouslyConnectedSerialECUs; void saveAndDisconnectCurrentlyConnectedSerialECUs(); void connectPreviouslyConnectedECUs(); /* default filters */ void resetDefaultFilter(); QStringListModel m_CompleterModel; protected: void keyPressEvent ( QKeyEvent * event ); void dragEnterEvent(QDragEnterEvent *event); void dropEvent(QDropEvent *event); void closeEvent(QCloseEvent *event); private slots: void reloadLogFileProgressMax(quint64 num); void reloadLogFileProgress(quint64 num); void reloadLogFileProgressText(QString text); void reloadLogFileVersionString(QString ecuId, QString version); void reloadLogFileFinishIndex(); void reloadLogFileFinishFilter(); void reloadLogFileFinishDefaultFilter(); void on_tableView_selectionChanged(const QItemSelection & selected, const QItemSelection & deselected); void on_tableView_customContextMenuRequested(QPoint pos); void on_tableView_SearchIndex_customContextMenuRequested(QPoint pos); void on_pluginWidget_customContextMenuRequested(QPoint pos); void on_filterWidget_customContextMenuRequested(QPoint pos); void on_configWidget_customContextMenuRequested(QPoint pos); void on_configWidget_itemSelectionChanged(); void on_pluginWidget_itemSelectionChanged(); void on_filterWidget_itemSelectionChanged(); void on_filterWidget_itemClicked(QTreeWidgetItem *item, int column); void on_pluginWidget_itemExpanded(QTreeWidgetItem* item); // File methods private slots: void on_action_menuFile_New_triggered(); void on_action_menuFile_SaveAs_triggered(); void on_action_menuFile_Import_DLT_Stream_with_Serial_Header_triggered(); void on_action_menuFile_Append_DLT_File_triggered(); void on_action_menuFile_Import_DLT_Stream_triggered(); void on_action_menuFile_Settings_triggered(); void on_action_menuFile_Open_triggered(); void on_actionExport_triggered(); public slots: void on_New_triggered(QString fileName); void on_Open_triggered(QStringList filenames); void on_SaveAs_triggered(QString fileName); void on_action_menuFile_Clear_triggered(); void on_action_menuFile_Quit_triggered(); void on_action_FindNext(); private slots: // Search methods void on_action_menuSearch_Find_triggered(); void searchTableRenewed(); void searchtable_cellSelected(QModelIndex index); // Project methods void on_action_menuProject_Save_triggered(); void on_action_menuProject_Open_triggered(); void on_action_menuProject_New_triggered(); // Help methods void on_action_menuHelp_Support_triggered(); void on_action_menuHelp_Info_triggered(); void on_action_menuHelp_Command_Line_triggered(); // Config methods void on_action_menuConfig_Context_Delete_triggered(); void on_action_menuConfig_Context_Edit_triggered(); void on_action_menuConfig_Context_Add_triggered(); void on_action_menuConfig_Application_Delete_triggered(); void on_action_menuConfig_Application_Edit_triggered(); void on_action_menuConfig_Application_Add_triggered(); void on_action_menuConfig_ECU_Edit_triggered(); void on_action_menuConfig_ECU_Delete_triggered(); void on_action_menuConfig_ECU_Add_triggered(); void on_action_menuConfig_Collapse_All_ECUs_triggered(); void on_action_menuConfig_Expand_All_ECUs_triggered(); void on_action_menuConfig_Disconnect_triggered(); void on_action_menuConfig_Connect_triggered(); void on_action_menuConfig_Delete_All_Contexts_triggered(); void on_action_menuConfig_Copy_to_clipboard_triggered(); void on_action_menuConfig_SearchTable_Copy_to_clipboard_triggered(); // DLT methods void on_action_menuDLT_Send_Injection_triggered(); void on_action_menuDLT_Get_Local_Time_2_triggered(); void on_action_menuDLT_Get_Software_Version_triggered(); void on_action_menuDLT_Reset_to_Factory_Default_triggered(); void on_action_menuDLT_Store_Config_triggered(); void on_action_menuDLT_Set_All_Log_Levels_triggered(); void on_action_menuDLT_Set_Log_Level_triggered(); void on_action_menuDLT_Set_Default_Log_Level_triggered(); void on_action_menuDLT_Get_Default_Log_Level_triggered(); void on_action_menuDLT_Get_Log_Info_triggered(); void on_action_menuDLT_Edit_All_Log_Levels_triggered(); // Filter methods void on_action_menuFilter_Load_triggered(); void on_action_menuFilter_Save_As_triggered(); void on_action_menuFilter_Delete_triggered(); void on_action_menuFilter_Edit_triggered(); void on_action_menuFilter_Add_triggered(); void on_action_menuFilter_Clear_all_triggered(); void on_action_menuFilter_Duplicate_triggered(); void on_action_menuFilter_Append_Filters_triggered(); // Plugin methods void on_action_menuPlugin_Hide_triggered(); void on_action_menuPlugin_Show_triggered(); void on_action_menuPlugin_Edit_triggered(); void action_menuPlugin_Enable_triggered(); void on_action_menuPlugin_Disable_triggered(); //Rename void filterAdd(); void filterAddTable(); void connected(); void disconnected(); void error(QAbstractSocket::SocketError); void readyRead(); void timeout(); void draw_timeout(); void connectAll(); void disconnectAll(); void applySettings(); void updateScrollButton(); void openRecentFile(); void openRecentProject(); void openRecentFilters(); void applyConfigEnabled(bool enabled); void tableViewValueChanged(int value); void stateChangedTCP(QAbstractSocket::SocketState socketState); void stateChangedSerial(bool dsrChanged); void sectionInTableDoubleClicked(int logicalIndex); void on_actionJump_To_triggered(); void on_actionAutoScroll_triggered(bool checked); void on_actionConnectAll_triggered(); void on_actionDisconnectAll_triggered(); // Config Items void on_pluginsEnabled_toggled(bool checked); void on_filtersEnabled_toggled(bool checked); void on_applyConfig_clicked(); void on_tabWidget_currentChanged(int index); void on_comboBoxFilterSelection_activated(const QString &arg1); void on_actionDefault_Filter_Reload_triggered(); void on_actionDefault_Filter_Create_Index_triggered(); void on_pushButtonDefaultFilterUpdateCache_clicked(); void on_checkBoxSortByTime_toggled(bool checked); void on_actionMarker_triggered(); void on_actionApply_Configuration_triggered(bool checked); void on_actionToggle_PluginsEnabled_triggered(bool checked); void on_actionToggle_FiltersEnabled_triggered(bool checked); void on_actionToggle_SortByTimeEnabled_triggered(bool checked); public slots: void sendInjection(int index,QString applicationId,QString contextId,int serviceId,QByteArray data); void filterOrderChanged(); void jumpToMsgSignal(int index); void markerSignal(); void connectEcuSignal(int index); void disconnectEcuSignal(int index); void reopenFileSignal(); void controlMessage_Timezone(int timezone, unsigned char dst); void controlMessage_UnregisterContext(QString ecuId,QString appId,QString ctId); //History Slots void onAddActionToHistory(); void onSearchProgressChanged(bool isInProgress); public: /* Project configuration containing ECU/APP/Context/Filter/Plugin configuration */ Project project; /* DLT file handling */ QDltFile qfile; /* Loading and handling all plugins */ QDltPluginManager pluginManager; QDltDefaultFilter defaultFilter; QStringList openFileNames; QStringList list; /* store startLoggingDateTime when logging first data */ QDateTime startLoggingDateTime; }; #endif // MAINWINDOW_H dlt-viewer-2.18.0+dfsg/src/searchtablemodel.h0000664000175000017500000000320713001357026020460 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file searchdialog.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef SEARCHTABLEMODEL_H #define SEARCHTABLEMODEL_H #include #include "project.h" #include "qdlt.h" #define DLT_VIEWER_SEARCHCOLUMN_COUNT 13 class SearchTableModel : public QAbstractTableModel { Q_OBJECT public: explicit SearchTableModel(const QString &data, QObject *parent = 0); ~SearchTableModel(); QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; QVariant data(const QModelIndex &index, int role) const; int rowCount(const QModelIndex & /*parent*/) const; int columnCount(const QModelIndex &parent = QModelIndex()) const; void modelChanged(); void clear_SearchResults(); void add_SearchResultEntry(unsigned long entry); int get_SearchResultListSize() const; bool get_SearchResultEntry(int position, unsigned long &entry); /* pointer to the current loaded file */ QDltFile *qfile; Project *project; QDltPluginManager *pluginManager; signals: public slots: public: QList m_searchResultList; }; #endif // SEARCHTABLEMODEL_H dlt-viewer-2.18.0+dfsg/src/version.h0000664000175000017500000000162213001357026016646 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file version.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef __VERSION_H_ #define __VERSION_H_ #define PACKAGE_VERSION_STATE "STABLE" #define PACKAGE_MAJOR_VERSION "2" #define PACKAGE_MINOR_VERSION "18" #define PACKAGE_PATCH_LEVEL "0" #define PACKAGE_VERSION "2.18.0" #define PACKAGE_REVISION "" #define DLT_SUPPORT_MAIL_ADDRESS "genivi-diagnostic-log-and-trace@lists.genivi.org" #define DLT_SUPPORT_NAME "GENIVI" #endif dlt-viewer-2.18.0+dfsg/src/dltfileindexerthread.h0000664000175000017500000000207113001357026021352 0ustar potyrapotyra#ifndef DLTFILEINDEXERTHREAD_H #define DLTFILEINDEXERTHREAD_H #include "dltfileindexer.h" #include "dltmsgqueue.h" #include class DltFileIndexerThread :public QThread { Q_OBJECT public: DltFileIndexerThread(DltFileIndexer *indexer, QDltFilterList *filterList, bool sortByTimeEnabled, QVector *indexFilterList, QMultiMap *indexFilterListSorted, QDltPluginManager *pluginManager, QList *activeViewerPlugins, bool silentMode); ~DltFileIndexerThread(); void enqueueMessage(const QSharedPointer &msg, int index); void processMessage(QSharedPointer &msg, int index); void requestStop(); protected: void run(); private: DltFileIndexer *indexer; QDltFilterList *filterList; bool sortByTimeEnabled; QVector *indexFilterList; QMultiMap *indexFilterListSorted; QDltPluginManager *pluginManager; QList *activeViewerPlugins; bool silentMode; DltMsgQueue msgQueue; }; #endif // DLTFILEINDEXERTHREAD_H dlt-viewer-2.18.0+dfsg/src/dltexporter.cpp0000664000175000017500000002464013001357026020075 0ustar potyrapotyra#include #include #include #include #include "dltexporter.h" #include "fieldnames.h" #include "project.h" #include "optmanager.h" DltExporter::DltExporter(QObject *parent) : QObject(parent) { size = 0; from = NULL; to = NULL; pluginManager = NULL; selection = NULL; exportFormat = FormatDlt; exportSelection = SelectionAll; } QString DltExporter::escapeCSVValue(QString arg) { QString retval = arg.replace(QChar('\"'), QString("\"\"")); retval = QString("\"%1\"").arg(retval); return retval; } bool DltExporter::writeCSVHeader(QFile *file) { QString header("\"%1\",\"%2\",\"%3\",\"%4\",\"%5\",\"%6\",\"%7\",\"%8\",\"%9\",\"%10\",\"%11\",\"%12\",\"%13\"\n"); header = header.arg(FieldNames::getName(FieldNames::Index)) .arg(FieldNames::getName(FieldNames::Time)) .arg(FieldNames::getName(FieldNames::TimeStamp)) .arg(FieldNames::getName(FieldNames::Counter)) .arg(FieldNames::getName(FieldNames::EcuId)) .arg(FieldNames::getName(FieldNames::AppId)) .arg(FieldNames::getName(FieldNames::ContextId)) .arg(FieldNames::getName(FieldNames::SessionId)) .arg(FieldNames::getName(FieldNames::Type)) .arg(FieldNames::getName(FieldNames::Subtype)) .arg(FieldNames::getName(FieldNames::Mode)) .arg(FieldNames::getName(FieldNames::ArgCount)) .arg(FieldNames::getName(FieldNames::Payload)); return file->write(header.toLatin1().constData()) < 0 ? false : true; } void DltExporter::writeCSVLine(int index, QFile *to, QDltMsg msg) { QString text(""); text += escapeCSVValue(QString("%1").arg(index)).append(","); text += escapeCSVValue(QString("%1.%2").arg(msg.getTimeString()).arg(msg.getMicroseconds(),6,10,QLatin1Char('0'))).append(","); text += escapeCSVValue(QString("%1.%2").arg(msg.getTimestamp()/10000).arg(msg.getTimestamp()%10000,4,10,QLatin1Char('0'))).append(","); text += escapeCSVValue(QString("%1").arg(msg.getMessageCounter())).append(","); text += escapeCSVValue(QString("%1").arg(msg.getEcuid())).append(","); text += escapeCSVValue(QString("%1").arg(msg.getApid())).append(","); text += escapeCSVValue(QString("%1").arg(msg.getCtid())).append(","); text += escapeCSVValue(QString("%1").arg(msg.getSessionid())).append(","); text += escapeCSVValue(QString("%1").arg(msg.getTypeString())).append(","); text += escapeCSVValue(QString("%1").arg(msg.getSubtypeString())).append(","); text += escapeCSVValue(QString("%1").arg(msg.getModeString())).append(","); text += escapeCSVValue(QString("%1").arg(msg.getNumberOfArguments())).append(","); text += escapeCSVValue(msg.toStringPayload().simplified()); text += "\n"; to->write(text.toLatin1().constData()); } bool DltExporter::start() { /* Sort the selection list and create Row list */ if(exportSelection == DltExporter::SelectionSelected && selection != NULL) { qSort(selection->begin(), selection->end()); selectedRows.clear(); for(int num=0;numcount();num++) { QModelIndex index = selection->at(num); if(index.column() == 0) selectedRows.append(index.row()); } } /* open the export file */ if(exportFormat == DltExporter::FormatAscii || exportFormat == DltExporter::FormatUTF8 || exportFormat == DltExporter::FormatCsv) { if(!to->open(QIODevice::WriteOnly | QIODevice::Text)) { QMessageBox::critical(qobject_cast(parent()), QString("DLT Viewer"), QString("Cannot open the export file.")); return false; } } else if((exportFormat == DltExporter::FormatDlt)||(exportFormat == DltExporter::FormatDltDecoded)) { if(!to->open(QIODevice::WriteOnly)) { QMessageBox::critical(qobject_cast(parent()), QString("DLT Viewer"), QString("Cannot open the export file.")); return false; } } /* write CSV header if CSV export */ if(exportFormat == DltExporter::FormatCsv) { /* Write the first line of CSV file */ if(!writeCSVHeader(to)) { QMessageBox::critical(qobject_cast(parent()), QString("DLT Viewer"), QString("Cannot write to export file.")); return false; } } /* calculate size */ if(exportSelection == DltExporter::SelectionAll) size = from->size(); else if(exportSelection == DltExporter::SelectionFiltered) size = from->sizeFilter(); else if(exportSelection == DltExporter::SelectionSelected) size = selectedRows.size(); else return false; /* success */ return true; } bool DltExporter::finish() { if(exportFormat == DltExporter::FormatAscii || exportFormat == DltExporter::FormatUTF8 || exportFormat == DltExporter::FormatCsv || exportFormat == DltExporter::FormatDlt || exportFormat == DltExporter::FormatDltDecoded) { /* close outpur file */ to->close(); } else if (exportFormat == DltExporter::FormatClipboard) { /* export to clipboard */ QClipboard *clipboard = QApplication::clipboard(); clipboard->setText(clipboardString); } return true; } bool DltExporter::getMsg(int num,QDltMsg &msg,QByteArray &buf) { buf.clear(); if(exportSelection == DltExporter::SelectionAll) buf = from->getMsg(num); else if(exportSelection == DltExporter::SelectionFiltered) buf = from->getMsgFilter(num); else if(exportSelection == DltExporter::SelectionSelected) buf = from->getMsgFilter(selectedRows[num]); else return false; if(buf.isEmpty()) return false; return msg.setMsg(buf); } bool DltExporter::exportMsg(int num, QDltMsg &msg, QByteArray &buf) { if((exportFormat == DltExporter::FormatDlt)||(exportFormat == DltExporter::FormatDltDecoded)) to->write(buf); else if(exportFormat == DltExporter::FormatAscii || exportFormat == DltExporter::FormatUTF8 || exportFormat == DltExporter::FormatClipboard) { QString text; /* get message ASCII text */ if(exportSelection == DltExporter::SelectionAll) text += QString("%1 ").arg(num); else if(exportSelection == DltExporter::SelectionFiltered) text += QString("%1 ").arg(from->getMsgFilterPos(num)); else if(exportSelection == DltExporter::SelectionSelected) text += QString("%1 ").arg(from->getMsgFilterPos(selectedRows[num])); else return false; text += msg.toStringHeader(); text += " "; text += msg.toStringPayload().simplified(); text += "\n"; try { if(exportFormat == DltExporter::FormatAscii) /* write to file */ to->write(text.toLatin1().constData()); else if (exportFormat == DltExporter::FormatUTF8) to->write(text.toUtf8().constData()); else if(exportFormat == DltExporter::FormatClipboard) clipboardString += text; }catch (...) { } } else if(exportFormat == DltExporter::FormatCsv) { if(exportSelection == DltExporter::SelectionAll) writeCSVLine(num, to, msg); else if(exportSelection == DltExporter::SelectionFiltered) writeCSVLine(from->getMsgFilterPos(num), to, msg); else if(exportSelection == DltExporter::SelectionSelected) writeCSVLine(from->getMsgFilterPos(selectedRows[num]), to, msg); else return false; } return true; } void DltExporter::exportMessages(QDltFile *from, QFile *to, QDltPluginManager *pluginManager, DltExporter::DltExportFormat exportFormat, DltExporter::DltExportSelection exportSelection, QModelIndexList *selection) { QDltMsg msg; QByteArray buf; /* initialise values */ int readErrors=0; int exportErrors=0; int exportCounter=0; int startFinishError=0; this->size = 0; this->from = from; this->to = to; clipboardString.clear(); this->pluginManager = pluginManager; this->selection = selection; this->exportFormat = exportFormat; this->exportSelection = exportSelection; /* start export */ if(!start()) { qDebug() << "DLT Export start() failed"; startFinishError++; return; } qDebug() << "DLT Export" << size << "messages"; /* init fileprogress */ QProgressDialog fileprogress("Export...", "Cancel", 0, this->size, qobject_cast(parent())); fileprogress.setWindowTitle("DLT Viewer"); fileprogress.setWindowModality(Qt::WindowModal); fileprogress.show(); bool silentMode = !OptManager::getInstance()->issilentMode(); for(int num = 0;numdecodeMsg(msg,silentMode); if (exportFormat == DltExporter::FormatDltDecoded) { msg.setNumberOfArguments(msg.sizeArguments()); msg.getMsg(buf,true); } } /* export message */ if(!exportMsg(num,msg,buf)) { // finish(); qDebug() << "DLT Export exportMsg() failed"; exportErrors++; continue; // return; } else exportCounter++; } if (!finish()) startFinishError++; if (startFinishError>0||readErrors>0||exportErrors>0) { QMessageBox::warning(NULL,"Export Errors!",QString("Exported successful: %1 / %2\n\nReadErrors:%3\nWriteErrors:%4\nStart/Finish errors:%5").arg(exportCounter).arg(size).arg(readErrors).arg(exportErrors).arg(startFinishError)); qDebug() << "DLT Export finish() failed"; return; } } dlt-viewer-2.18.0+dfsg/cache/0000775000175000017500000000000013001357026015263 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/cache/empty0000664000175000017500000000000513001357026016337 0ustar potyrapotyraemptydlt-viewer-2.18.0+dfsg/LICENSE.txt0000775000175000017500000000056413001357026016053 0ustar potyrapotyraCopyright (C) 2016, BMW AG - Alexander Wenzel Contributions are licensed to the GENIVI Alliance under one or more Contribution License Agreements. This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. dlt-viewer-2.18.0+dfsg/INSTALL.txt0000664000175000017500000001012213001357026016063 0ustar potyrapotyraDLT Viewer - Installation ========================= Alexander Wenzel Instructions for installing DLT Viewer (GUI) -------------------------------------------- * Install Qt5 SDK including Qt Creator and MinGW (or MSVC 2013 for 32bit and 64bit Windows builds) * Tested with QT 5.5.1, QT 5.5.0 * Open project BuildDltViewer.pro in Qt Creator. * Ensure that build options point to correct QT and MinGW / MSVC. * Build Release in Qt Creator. * Optional Linux: set the library path in Qt Creator: Add variable to Projects/Build Settings/Build Environment: LD_LIBRARY_PATH = . Instructions for installing DLT Viewer (Linux commandline) ---------------------------------------------------------- * mkdir build * cd build * qmake-qt5 ../BuildDltViewer.pro * make * sudo make install * sudo ldconfig * Optional: set the library path: LD_LIBRARY_PATH = . Create SDK (Windows) -------------------- MinGW (32bit only): * Install Qt5 SDK inclduing MinGW for Windows. * If your Qt installation does not match "C:\Qt\Qt5.5.1\5.5\mingw492_32", you can set the correct path as environment variable "QTDIR" in your system properties. * Adjust and run build_sdk_windows_qt5.bat batch file Microsoft Visual C++ 2013 (32bit and 64bit): * Install Qt5 SDK and MSVC 2013 (you can use the free "express" version). * If your Qt installation does not match "C:\Qt\Qt5.5.1\5.5\msvc2013" (for 32 bit) or "C:\Qt\Qt5.5.1\5.5\msvc2013_64" (for 64 bit), you can set the correct path as environment variable "QTDIR" in your system properties. * Adjust and run build_sdk_windows_qt5_MSVC.bat with optional parameter x86 or x86_amd64 (the current system's architecture is used by default). The SDK will be installed to C:\Users\%USERNAME%\DltViewerSDK\ Optional: Prepare Installation Qwt (Windows) -------------------------------------------- Some DLT Viewer plugins will use the Qwt library for displaying graphs. The Qwt library must be compiled and installed before it can be used. (Tested with Qwt 6.1.2) MinGW (32bit only): * Install Qt5 SDK inclduing MinGW for Windows. * Extract Qwt Zip package * Start Qt commandline from Start->Qt_5.x.x * Change into Qwt directory * Execute qmake qwt.pro * Execute mingw32-make * Execute mingw32-make install Microsoft Visual C++ 2013 (32bit and 64bit): * Install Qt5 SDK for Visual C++ 2013 (you can use the free "express" version) * Extract Qwt Zip package * If you like, you can adjust the installation path by changing the variable "QWT_INSTALL_PREFIX" in qwtconfig.pri * Start Qt commandline from Start->Qt_5.x.x * Change into Qwt directory * Execute "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86 for 32bit, or "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64 for 64bit. * Execute qmake qwt.pro * Execute "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe" * Execute "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe" install Create SDK (Linux) ------------------ * Compile DLT Viewer as described in "Build DLT-viewer Linux" * Call "sudo make install" to install dlt_viewer including libraries and headers for SDK Create SDK Documentation (Windows) ---------------------------------- * Install doxygen and graphviz * Change into project directory * doxygen sdk\doxygen_dlt_viewer_plugininterface.cfg * (Optional) doxygen sdk\doxygen_dlt_viewer.cfg * (Optional) doxygen sdk\doxygen_dlt_viewer_qdlt.cfg * You will find the documentation in the doc directory Create SDK Documentation (Linux) -------------------------------- * Install doxygen and graphviz * Change into project directory * doxygen sdk/doxygen_dlt_viewer_plugininterface.cfg * (Optional) doxygen sdk/doxygen_dlt_viewer.cfg * (Optional) doxygen sdk/doxygen_dlt_viewer_qdlt.cfg * You will find the documentation in the doc directory Create manuals documentation ---------------------------- The manuals are generated with asciidoc. Call asciidoc dlt_viewer_user_manual.txt asciidoc dlt_viewer_plugins_programming_guide.txt to generate html output. To generate pdfs, call sh convert.sh from within the doc directory dlt-viewer-2.18.0+dfsg/README.txt0000775000175000017500000000437313001357026015730 0ustar potyrapotyraDiagnostic Log and Trace - Readme ================================== Alexander Wenzel Overview -------- The DLT Viewer can send control messages to the DLT daemon, e.g. to set individual log levels of applications and contexts or get the list of applications and contexts registered in the DLT daemon. More features are listed on the Homepage. Documentation ------------- - DLT Release Notes: ReleaseNotes.txt - DLT Installation: INSTALL.txt Command line usage ------------------ Usage windows: dlt_viewer.exe [OPTIONS] Usage Linux: dlt_viewer [OPTIONS] Options: -h Print usage (only in Linux) -p projectfile Loading project file on startup (must end with .dlp) -l logfile Loading logfile on startup (must end with .dlt) -f filterfile Loading filterfile on startup (must end with .dlf) -c logfile textfile Convert logfile file to textfile (logfile must end with .dlt) -e "name of plugin|command in plugin|param1|param2|paramn..." Execute command in a command interface plugin. -s Enable silent mode without warning message boxes API Documentation ----------------- See INSTALL.txt regarding doxygen API documentation generation. Software/Hardware ----------------- * Developed with QT 5 (http://qt-project.org/) * Tested with Windows 7 + Qt 5.5.1 + MinGW 4.9.1 * Tested with Windows 7 + Qt 5.5.1 + MSVC 2013 Express * Tested with Ubuntu Linux 14.04 + Qt 5.5.1 Dynamically linked open source software --------------------------------------- * Qt 5.5.1 (LGPLv3 - Qt) * GCC (GPL) * qextserialport (MIT License - Version 1.2 BETA) * (Optional) Mingw (GPL + BSD Variante + Public Domain) * Open Icon Library (http://openiconlibrary.sourceforge.net,Multiple LIcenses) License ------- Full information on the license for this software is available in the "LICENSE.txt" file. Source Code ----------- git://git.projects.genivi.org/dlt-viewer.git + http://git.projects.genivi.org/dlt-viewer.git Homepage -------- http://projects.genivi.org/diagnostic-log-trace Mailinglist ----------- https://lists.genivi.org/mailman/listinfo/genivi-diagnostic-log-and-trace Contact ------- Alexander Wenzel + Lutz Helwind dlt-viewer-2.18.0+dfsg/BuildDltViewer.pro0000775000175000017500000000014413001357026017631 0ustar potyrapotyra# TEMPLATE = subdirs CONFIG += ordered SUBDIRS += qextserialport qdlt src plugin CONFIG += c++11 dlt-viewer-2.18.0+dfsg/build_parser_windows_qt5.bat0000664000175000017500000001046313001357026021732 0ustar potyrapotyra@echo off echo ************************************ echo *** DLT Parser *** echo ************************************ echo . echo ************************************ echo *** Configuration *** echo ************************************ echo *** Setting up environment *** IF "%QTDIR%"=="" ( set QTDIR=C:\Qt\Qt5.5.1\5.5\mingw492_32 ) IF "%MINGW_DIR%"=="" ( set MINGW_DIR=C:\Qt\Qt5.5.1\Tools\mingw492_32 ) set PATH=%QTDIR%\bin;%MINGW_DIR%\bin;%PATH% set QTSDK=%QTDIR% IF "%DLT_PARSER_DIR%"=="" ( set DLT_PARSER_DIR=c:\DltParser ) set SOURCE_DIR=%CD% set BUILD_DIR=%CD%\build\release echo ************************************ echo * QTDIR = %QTDIR% echo * QTSDK = %QTSDK% echo * MINGW_DIR = %MINGW_DIR% echo * PATH = %PATH% echo * DLT_PARSER_DIR = %DLT_PARSER_DIR% echo * SOURCE_DIR = %SOURCE_DIR% echo * BUILD_DIR = %BUILD_DIR% echo ************************************ IF exist build ( echo ************************************ echo *** Delete old build Directory *** echo ************************************ rmdir /s/q build IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER ) IF exist %DLT_PARSER_DIR% ( echo ************************************ echo *** Delete old SDK Directory *** echo ************************************ rmdir /s/q %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER ) echo ************************************ echo *** Build DLT Parser *** echo ************************************ mkdir build IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER cd build IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER qmake ../BuildDltParser.pro IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mingw32-make.exe release IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER echo ************************************ echo *** Install Parser *** echo ************************************ echo *** Create directories *** mkdir %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_PARSER_DIR%\examples IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER echo *** Copy files *** copy %QTDIR%\bin\icuin54.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\icuuc54.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\icudt54.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\libwinpthread-1.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\libgcc_s_dw2-1.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy "%QTDIR%\bin\libstdc++-6.dll" %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Core.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Gui.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Network.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Sql.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Svg.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Widgets.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5PrintSupport.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Xml.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5OpenGL.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\dlt_parser.exe %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\ReleaseNotes_Parser.txt %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\README_Parser.txt %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\LICENSE.txt %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\MPL.txt %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER xcopy %SOURCE_DIR%\parser\examples %DLT_PARSER_DIR%\examples /E IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER GOTO QUIT :ERROR_HANDLER echo #################################### echo ### ERROR occured ### echo #################################### set /p name= Continue exit 1 :QUIT echo ************************************ echo *** SUCCESS finish *** echo ************************************ echo SDK installed in: %DLT_PARSER_DIR% set /p name= Continue exit 0 dlt-viewer-2.18.0+dfsg/qdlt/0000775000175000017500000000000013001357026015164 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/qdlt/qdltdefaultfilter.cpp0000664000175000017500000000416113001357026021411 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdltdefaultfilter.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include #include "qdlt.h" extern "C" { #include "dlt_common.h" } QDltDefaultFilter::QDltDefaultFilter() { } QDltDefaultFilter::~QDltDefaultFilter() { clear(); } void QDltDefaultFilter::clear() { /* delete all filter list entries */ QDltFilterList *t; foreach(t,defaultFilterList) delete t; defaultFilterList.clear(); /* delete all filter index entries */ QDltFilterIndex *t2; foreach(t2,defaultFilterIndex) delete t2; defaultFilterIndex.clear(); } void QDltDefaultFilter::load(QString path) { /* delete old filter list */ clear(); QDir dir(path); /* set filter for default filter files */ QStringList filters; filters << "*.dlf"; dir.setNameFilters(filters); /* iterate through all filter in directory path */ foreach (QString fileName, dir.entryList(QDir::Files)) { /* create filter list for every filter file and load the filter file */ QDltFilterList *filterList = new QDltFilterList(); filterList->LoadFilter(dir.absolutePath()+"/"+fileName,true); defaultFilterList.append(filterList); /* add empty index for every filter list */ QDltFilterIndex *filterIndex = new QDltFilterIndex(); defaultFilterIndex.append(filterIndex); } } void QDltDefaultFilter::clearFilterIndex() { /* clear all default filter index cache */ QDltFilterIndex *t2; foreach(t2,defaultFilterIndex) *t2 = QDltFilterIndex(); } dlt-viewer-2.18.0+dfsg/qdlt/qdltipconnection.h0000664000175000017500000000237113001357026020715 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2015-2016 Harman Becker Automotive Systems GmbH * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Olaf Dreyer * * \file qdltipconnection.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef QDLT_IP_CONNECTION_H #define QDLT_IP_CONNECTION_H #include #include #include #include #include #include #include #include "export_rules.h" class QDLT_EXPORT QDltIPConnection : public QDltConnection { public: QDltIPConnection(); virtual ~QDltIPConnection(); void setHostname(QString _hostname); QString getHostname() const; void setPort(unsigned int _ipport); virtual void setDefaultPort() { port = 3490; } unsigned int getPort() const; protected: QString hostname; unsigned int port; }; #endif // QDLT_IP_CONNECTION_H dlt-viewer-2.18.0+dfsg/qdlt/plugininterface.h0000775000175000017500000003425513001357026020530 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file plugininterface.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef PLUGININTERFACE_H #define PLUGININTERFACE_H #include #include "qdlt.h" #define PLUGIN_INTERFACE_VERSION "1.0.0" //! Standard DLT Viewer Plugin Interface. /*! This is the standard DLT Viewer Plugin Interface. This interface must be inherited by each DLT Viewer plugin. */ class QDLTPluginInterface { public: //! The name and identifier of the plugin. /*! The plugin must provide the name of the plugin. This name is used for identifie the plugin in the project configuration. \return The name of the plugin */ virtual QString name() = 0; //! The description of the plugin. /*! The plugin can provide a more detailed description of the plugin. \return The description of the plugin */ virtual QString description() = 0; //! The version number of the plugin. /*! The plugin has to return a version number with formt X.Y.Z. X counts up in case of real heavy changes (API changes or purpose changes) Y counts up when the module is reworked internally, functions are added etc Z counts up whenever a bug is fixed Recommondation: define _PLUGIN_VERSION "X.Y.Z" in your plugin header file. \return The version number of the plugin */ virtual QString pluginVersion() = 0; //! The used plugin interface version number of the plugin. /*! The plugin has to return a version number of the used plugin interface. The plugin interface provides for this purpose the PLUGIN_INTERFACE_VERSION definition. \return The version number of the used plugin interface - PLUGIN_INTERFACE_VERSION in plugininterface.h */ virtual QString pluginInterfaceVersion() = 0; //! The error message of the last plugin interface call. /*! The plugin can provide a error message of the last failed function call. \return Error message. */ virtual QString error() = 0; //! Loading the configuration of the plugin. /*! The plugin can use a configuration stored in a file. The configuration can be a single file or a directory containing several files. Example of a configuration is an XML description file of the DLT non-verbose mode. Errors should be reported by providing error message. \sa error() \param filename This can be a filename or a directory name. \return True if the configuration is loaded successful. False if there was any error or function was not supported. */ virtual bool loadConfig(QString filename) = 0; //! Storing the configuration of the plugin. /*! The plugin can use a configuration stored in a file. The configuration can be a single file or a directory containing several files. Example of a configuration is an XML description file of the DLT non-verbose mode. Errors should be reported by providing error message. \sa error() \param filename This can be a filename or a directory name. \return True if the configuration is stored successful. False if there was any error or function was not supported. */ virtual bool saveConfig(QString filename) = 0; //! Providing detaild information about the loaded configuration. /*! The plugin can provide a detailed list of the loaded configuration. This is very useful to check, if the configuration is loaded successfully. \return The detailed information about the loaded configuration. One string per configuration element should be used. */ virtual QStringList infoConfig() = 0; }; Q_DECLARE_INTERFACE(QDLTPluginInterface, "org.genivi.DLT.Plugin.DLTPluginInterface/1.0"); //! Extended DLT Viewer Plugin Interface used by decoder plugins. /*! This is an extended DLT Plugin Interface. This interface must be used by decoder plugins. DLT messages which are displayed are checked by the plugin, if they are valid and then decoded by the plugin. */ class QDLTPluginDecoderInterface { public: //! Check if the DLT message is handled by the plugin. /*! The plugin checks, if the DLT message is handled by the plugin. Errors should be reported by providing an error message. \sa QDLTPluginInterface::error() \param msg The current DLT message. \param triggeredByUser Reason for this method call was a user interaction with the GUI, e.g. clicked on "Export to ASCII" in the menu. 0 = not triggered by user, 1 = triggered by user \return True if the message is handled by the plugin. False if the message is not handled by the plugin. */ virtual bool isMsg(QDltMsg &msg, int triggeredByUser) = 0; //! Decode the message and provide back the decoded message. /*! The plugin converts the DLT message. Errors should be reported by providing an error message. \sa QDLTPluginInterface::error() \param msg The current DLT message and the decoded message information. \param triggeredByUser Reason for this method call was a user interaction with the GUI, e.g. clicked on "Export to ASCII" in the menu. 0 = not triggered by user, 1 = triggered by user \return True if the message is converted by the plugin. False if the conversion fails. */ virtual bool decodeMsg(QDltMsg &msg, int triggeredByUser) = 0; }; Q_DECLARE_INTERFACE(QDLTPluginDecoderInterface, "org.genivi.DLT.Plugin.DLTViewerPluginDecoderInterface/1.0"); //! Extended DLT Viewer Plugin Interface used by viewer plugins. /*! This is an extended DLT Plugin Interface. This interface must be used by viewer plugins. The viewer plugin gets full access to the loaded DLT file. */ class QDltPluginViewerInterface { public: //! Initialise the viewer window. /*! The plugin manager provides the handle of the parent window. Errors should be reported by providing an error message. \sa QDLTPluginInterface::error() \return The form of the plugin. */ virtual QWidget* initViewer() = 0; //! A new log file is opened by the DLT Viewer. /*! This function is called by the the viewer every time a new log file is opened by the viewer or a new log file is created and before all messages were processed with initMsg and initMsgDecoded. Errors should be reported by providing an error message. \sa QDLTPluginInterface::error() \param file The DLT log file handle. */ virtual void initFileStart(QDltFile *file) = 0; //! A new undecoded DLT message is processed after a new log file is opened by the DLT Viewer /*! After a new log file is opened this function is called by the viewer every time a new undecoded message is processed. \sa QDLTPluginInterface::error() \param index The current DLT message index \param msg The current undecoded DLT message */ virtual void initMsg(int index, QDltMsg &msg ) = 0; //! A new decoded DLT message is processed after a new log file is opened by the DLT Viewer /*! After a new log file is opened this function is called by the viewer every time a new decoded message is processed. \sa QDLTPluginInterface::error() \param index The current DLT message index \param msg The current decoded DLT message */ virtual void initMsgDecoded(int index, QDltMsg &msg ) = 0; //! A new log file was opened by the DLT Viewer. /*! This function is called by the the viewer every time a new log file was opened by the viewer or a new log file is created and all messages were processed with initMsg and initMsgDecoded. Errors should be reported by providing an error message. \sa QDLTPluginInterface::error() */ virtual void initFileFinish() = 0; //! A new message was received before updateMsg and updateMsgDecoded. /*! This function is called by the viewer every time a new message was received before processing the message with updateMsg and updateMsgDecoded. Errors should be reported by providing an error message. \sa QDLTPluginInterface::error() */ virtual void updateFileStart( ) = 0; //! New message were added to the log file. /*! This function is called when new log entries are added to the log file. Errors should be reported by providing an error message. \sa QDLTPluginInterface::error() \param index The current DLT message index \param msg The current undecoded DLT message */ virtual void updateMsg(int index, QDltMsg &msg ) = 0; //! New message were added to the log file. /*! This function is called when new log entries are added to the log file. Errors should be reported by providing an error message. \sa QDLTPluginInterface::error() \param index The current DLT message index \param msg The current decoded DLT message */ virtual void updateMsgDecoded(int index, QDltMsg &msg ) = 0; //! A new message was received after updateMsg and updateMsgDecoded. /*! This function is called by the viewer every time a new message was received after processing the message with updateMsg and updateMsgDecoded. Errors should be reported by providing an error message. \sa QDLTPluginInterface::error() */ virtual void updateFileFinish( ) = 0; //! An undecoded log message was selected to show more detailed information. /*! An undecoded log message was selected. The viewer plugin can show more detailed information about this plugin. \param index The current DLT message index \param msg The current undecoded DLT message */ virtual void selectedIdxMsg(int index, QDltMsg &msg) = 0; //! A decoded log message was selected to show more detailed information. /*! A decoded log message was selected. The viewer plugin can show more detailed information about this plugin. \param index The current DLT message index \param msg The current decoded DLT message */ virtual void selectedIdxMsgDecoded(int index, QDltMsg &msg) = 0; }; Q_DECLARE_INTERFACE(QDltPluginViewerInterface, "org.genivi.DLT.Plugin.DLTViewerPluginViewerInterface/1.2"); //! Extended DLT Control Plugin Interface used by control plugins. /*! This is an extended DLT Plugin Interface. This interface must be used by control plugins. The control plugin interface can send control requests to the DLT daemon and receives control responses from the DLT daemon. The plugin gets informed about the available connections to DLT daemons. */ class QDltPluginControlInterface { public: //! A control interface is provided to the plugin. /*! This function is called once during initialisation of the plugin. Errors should be reported by providing an error message. \sa QDLTPluginInterface::error() \param control The control interface. \return True if everything went ok. False if there was an error. */ virtual bool initControl(QDltControl *control) = 0; //! The connection table is initialised or changed. /*! This function is called by the the user changes the connection table to available targets. Errors should be reported by providing an error message. \sa QDLTPluginInterface::error() \param list The DLT log file handle. \return True if everything went ok. False if there was an error. */ virtual bool initConnections(QStringList list) = 0; //! control message received. /*! A control message was received. Errors should be reported by providing an error message. \sa QDLTPluginInterface::error() \param index The connection where the ctrl message was received. \param msg The received control DLT message response. \return True if everything went ok. False if there was an error. */ virtual bool controlMsg(int index, QDltMsg &msg) = 0; //! TCP connection state changed /*! The TCP connection state changed for a specific ECU item. \param ecuItem The ecuItem changed the connection state \param connectionState The new connection state of the ecuItem \param hostname The hostname of the connected ECU, if it is a TCP connection, else empty \return True if everything went ok. False if there was an error. */ virtual bool stateChanged(int index, QDltConnection::QDltConnectionState connectionState,QString hostname) = 0; //! Autoscroll state changed /*! The Autoscroll feature of the viewer was enabled or disabled \param enabled True if Autoscroll is enabled, false if not \return True if everything went ok. False if there was an error. */ virtual bool autoscrollStateChanged(bool enabled) = 0; }; Q_DECLARE_INTERFACE(QDltPluginControlInterface, "org.genivi.DLT.Plugin.DLTViewerPluginControlInterface/1.1"); //! DLT Command Plugin Interface /*! This interface can be used to create plugins which execute from the command line of DLT-viewer. The API is very simple: Implement command() function, and return either success or failure. You can return further information about the error with error() */ class QDltPluginCommandInterface { public: //! A command is executed in the plugin /*! This function is called from DLT-viewer, when the -e command line parameter is used with this plugin. \sa QDLTPluginInterface::error() \param command The requested command. First parameter from command line \param params List of parameters to the command. Rest of the command line parameters. \return True if everything went ok. False if there was an error. */ virtual bool command(QString command, QList params) = 0; }; Q_DECLARE_INTERFACE(QDltPluginCommandInterface, "org.genivi.DLT.Plugin.DLTViewerPluginCommandInterface/1.1"); #endif // PLUGININTERFACE_H dlt-viewer-2.18.0+dfsg/qdlt/qdltbase.cpp0000664000175000017500000002055013001357026017471 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "qdlt.h" extern "C" { #include "dlt_common.h" } const char *qDltMessageType[] = {"log","app_trace","nw_trace","control","","","",""}; const char *qDltLogInfo[] = {"","fatal","error","warn","info","debug","verbose","","","","","","","","",""}; const char *qDltTraceType[] = {"","variable","func_in","func_out","state","vfb","","","","","","","","","",""}; const char *qDltNwTraceType[] = {"","ipc","can","flexray","most","vfb","","","","","","","","","",""}; const char *qDltControlType[] = {"","request","response","time","","","","","","","","","","","",""}; const char *qDltMode[] = {"non-verbose","verbose"}; const char *qDltEndianness[] = {"little-endian","big-endian"}; const char *qDltTypeInfo[] = {"String","Bool","SignedInteger","UnsignedInteger","Float","RawData","TraceInfo","Utf8String"}; const char *qDltCtrlServiceId[] = {"","set_log_level","set_trace_status","get_log_info","get_default_log_level","store_config","reset_to_factory_default", "set_com_interface_status","set_com_interface_max_bandwidth","set_verbose_mode","set_message_filtering","set_timing_packets", "get_local_time","use_ecu_id","use_session_id","use_timestamp","use_extended_header","set_default_log_level","set_default_trace_status", "get_software_version","message_buffer_overflow"}; const char *qDltCtrlReturnType [] = {"ok","not_supported","error","3","4","5","6","7","no_matching_context_id"}; QDlt::QDlt() { } QDlt::~QDlt() { } bool QDlt::swap(QByteArray &bytes,int size, int offset) { char tmp; if( (offset < 0) || (offset >= bytes.size()) ) return false; if(size == -1) size = bytes.size()-offset; if((size+offset) > bytes.size()) return false; for(int num = 0;num<(size/2);num++) { tmp = bytes[offset+num]; bytes[offset+num] = bytes[offset+size-1-num]; bytes[offset+size-1-num] = tmp; } return true; } QString QDlt::toAsciiTable(const QByteArray &bytes, bool withLineNumber, bool withBinary, bool withAscii, int blocksize, int linesize, bool toHtml) const { QString text; text.reserve(1024+bytes.size()); /* create HTML text to show */ if(toHtml) text+=QString(""); if(toHtml) text += QString("
");

    int lines = (bytes.size()+linesize-1)/linesize;
    for(int line=0;line= bytes.size())
                    break;
                char ch = (bytes.constData())[bufpos];
                if(num==blocksize)
                    text += QString("  ");
                else if(num!=0)
                    text += QString(" ");
                if((line*linesize+num) < bytes.size())
                    text += QString("%1").arg((unsigned char)ch,2,linesize,QLatin1Char('0'));
                else
                    text += QString("--");
            }
        }
        if(withAscii)
        {
            text += QString(" ");
            for(int num=0;num= bytes.size())
                    break;
                char ch = (bytes.constData())[bufpos];
                if((ch >= ' ') && (ch <= '~') )
                {
                    // Necessary to display < and > as characters in a HTML context.
                    // Otherwise < and > would be handled as HTML tags and not the complete payload would be displayed.
                    if(toHtml && ch == '<')
                    {
                        text += "<";
                    }else if(toHtml && ch == '>'){
                        text += ">";
                    }else{
                        text += QString(QChar(ch));
                    }
                }
                else
                {
                    text += QString("-");
                }
            }
        }
        if(line!=lines-1)
        {
            if(toHtml)
                text += QString("
"); else text += QString("\n"); } } if(toHtml) text += QString("
"); /* finish HTML text */ if(toHtml) text+=QString(""); return text; } QString QDlt::toAscii(const QByteArray &bytes, int type,int size_bytes) const { static const char hexmap[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}; if (type==1) { // ascii // Could also use QString::QString ( const QByteArray & ba ) return QString::fromLatin1(bytes.data(), bytes.size() ); } else if (type==2) { // binary int size = bytes.size(); if (!size) { //Let's return an empty string. return QString(""); } if (1 == size_bytes) { uint8_t toEncode = bytes.data()[0]; QString encoded = QString("0b%1").arg(toEncode, 8, 2, QChar('0')); return encoded.insert(6, ' '); // insert a space after 0bxxxx } else // has to be: (2 == size_bytes) { uint16_t toEncode = (uint8_t)(bytes.data()[0]) | (((uint8_t)(bytes.data()[1])) << 8); QString encoded = QString("0b%1").arg(toEncode, 16, 2, QChar('0')); encoded.insert(14, ' '); // insert spaces encoded.insert(10, ' '); encoded.insert(6, ' '); return encoded; } return QString(""); } else { // hex int size = bytes.size(); if (!size) { //Let's return an empty string. return QString(""); } if (1 == size_bytes) { uint8_t toEncode = bytes.data()[0]; return QString("0x%1").arg(toEncode, 2, 16, QChar('0')); } if (2 == size_bytes) { uint16_t toEncode = (uint8_t)(bytes.data()[0]) | (((uint8_t)(bytes.data()[1])) << 8); return QString("0x%1").arg(toEncode, 4, 16, QChar('0')); } if (4 == size_bytes) { uint32_t toEncode = (uint8_t)(bytes.data()[0]) | (((uint8_t)(bytes.data()[1])) << 8) | (((uint8_t)(bytes.data()[2])) << 16) | (((uint8_t)(bytes.data()[3])) << 24); return QString("0x%1").arg(toEncode, 8, 16, QChar('0')); } if (8 == size_bytes) { uint32_t toEncodeLo = (uint8_t)(bytes.data()[0]) | (((uint8_t)(bytes.data()[1])) << 8) | (((uint8_t)(bytes.data()[2])) << 16) | (((uint8_t)(bytes.data()[3])) << 24); uint32_t toEncodeHi = (uint8_t)(bytes.data()[4]) | (((uint8_t)(bytes.data()[5])) << 8) | (((uint8_t)(bytes.data()[6])) << 16) | (((uint8_t)(bytes.data()[7])) << 24); return QString("0x%1").arg(toEncodeHi, 8, 16, QChar('0')) + QString("%1").arg(toEncodeLo, 8, 16, QChar('0')); } if (0xff == size_bytes) { std::vector str( size*3, ' ' ); char* strData = &str[0]; const char* byteData = bytes.data(); for(int num=0;num> 4 ]; ++strData; *strData = hexmap[ *byteData & 0x0F ]; if((((num+1)%1)==0) && (num!=size-1)) strData += 2; else strData += 1; ++byteData; } // add termination if (size>0) { *(strData) = 0; } return QString( &str[0] ); } } return QString(""); } dlt-viewer-2.18.0+dfsg/qdlt/qdlttcpconnection.cpp0000664000175000017500000000174113001357026021426 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include "qdlt.h" extern "C" { #include "dlt_common.h" } QDltTCPConnection::QDltTCPConnection() : QDltIPConnection() , socket(0) { hostname = "localhost"; port = DLT_DAEMON_TCP_PORT; } QDltTCPConnection::~QDltTCPConnection() { delete socket; } void QDltTCPConnection::setDefaultPort() { port = DLT_DAEMON_TCP_PORT; } dlt-viewer-2.18.0+dfsg/qdlt/dlt_protocol.h0000775000175000017500000002471613001357026020056 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file dlt_protocol.h * For further information see http://www.genivi.org/. * @licence end@ */ /******************************************************************************* ** ** ** SRC-MODULE: dlt_protocol.h ** ** ** ** TARGET : linux ** ** ** ** PROJECT : DLT ** ** ** ** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** ** Markus Klein ** ** ** ** PURPOSE : ** ** ** ** REMARKS : ** ** ** ** PLATFORM DEPENDANT [yes/no]: yes ** ** ** ** TO BE CHANGED BY USER [yes/no]: no ** ** ** *******************************************************************************/ /******************************************************************************* ** Author Identity ** ******************************************************************************** ** ** ** Initials Name Company ** ** -------- ------------------------- ---------------------------------- ** ** aw Alexander Wenzel BMW ** ** mk Markus Klein Fraunhofer ESK ** *******************************************************************************/ /******************************************************************************* ** Revision Control History ** *******************************************************************************/ /* * $LastChangedRevision$ * $LastChangedDate$ * $LastChangedBy$ Initials Date Comment aw 13.01.2010 initial */ #ifndef DLT_PROTOCOL_H #define DLT_PROTOCOL_H /** \defgroup protocolapi DLT Protocol API \addtogroup protocolapi \{ */ /* * Definitions of the htyp parameter in standard header. */ #define DLT_HTYP_UEH 0x01 /**< use extended header */ #define DLT_HTYP_MSBF 0x02 /**< MSB first */ #define DLT_HTYP_WEID 0x04 /**< with ECU ID */ #define DLT_HTYP_WSID 0x08 /**< with session ID */ #define DLT_HTYP_WTMS 0x10 /**< with timestamp */ #define DLT_HTYP_VERS 0xe0 /**< version number, 0x1 */ #define DLT_IS_HTYP_UEH(htyp) ((htyp) & DLT_HTYP_UEH) #define DLT_IS_HTYP_MSBF(htyp) ((htyp) & DLT_HTYP_MSBF) #define DLT_IS_HTYP_WEID(htyp) ((htyp) & DLT_HTYP_WEID) #define DLT_IS_HTYP_WSID(htyp) ((htyp) & DLT_HTYP_WSID) #define DLT_IS_HTYP_WTMS(htyp) ((htyp) & DLT_HTYP_WTMS) #define DLT_HTYP_PROTOCOL_VERSION1 (1<<5) /* * Definitions of msin parameter in extended header. */ #define DLT_MSIN_VERB 0x01 /**< verbose */ #define DLT_MSIN_MSTP 0x0e /**< message type */ #define DLT_MSIN_MTIN 0xf0 /**< message type info */ #define DLT_MSIN_MSTP_SHIFT 1 /**< shift right offset to get mstp value */ #define DLT_MSIN_MTIN_SHIFT 4 /**< shift right offset to get mtin value */ #define DLT_IS_MSIN_VERB(msin) ((msin) & DLT_MSIN_VERB) #define DLT_GET_MSIN_MSTP(msin) (((msin) & DLT_MSIN_MSTP) >> DLT_MSIN_MSTP_SHIFT) #define DLT_GET_MSIN_MTIN(msin) (((msin) & DLT_MSIN_MTIN) >> DLT_MSIN_MTIN_SHIFT) /* * Definitions of mstp parameter in extended header. */ #define DLT_TYPE_LOG 0x00 /**< Log message type */ #define DLT_TYPE_APP_TRACE 0x01 /**< Application trace message type */ #define DLT_TYPE_NW_TRACE 0x02 /**< Network trace message type */ #define DLT_TYPE_CONTROL 0x03 /**< Control message type */ /* * Definitions of msti parameter in extended header. */ #define DLT_TRACE_VARIABLE 0x01 /**< tracing of a variable */ #define DLT_TRACE_FUNCTION_IN 0x02 /**< tracing of function calls */ #define DLT_TRACE_FUNCTION_OUT 0x03 /**< tracing of function return values */ #define DLT_TRACE_STATE 0x04 /**< tracing of states of a state machine */ #define DLT_TRACE_VFB 0x05 /**< tracing of virtual function bus */ /* * Definitions of msbi parameter in extended header. */ /* see file dlt_user.h */ /* * Definitions of msci parameter in extended header. */ #define DLT_CONTROL_REQUEST 0x01 /**< Request message */ #define DLT_CONTROL_RESPONSE 0x02 /**< Response to request message */ #define DLT_CONTROL_TIME 0x03 /**< keep-alive message */ #define DLT_MSIN_CONTROL_REQUEST ((DLT_TYPE_CONTROL << DLT_MSIN_MSTP_SHIFT) | (DLT_CONTROL_REQUEST << DLT_MSIN_MTIN_SHIFT)) #define DLT_MSIN_CONTROL_RESPONSE ((DLT_TYPE_CONTROL << DLT_MSIN_MSTP_SHIFT) | (DLT_CONTROL_RESPONSE << DLT_MSIN_MTIN_SHIFT)) #define DLT_MSIN_CONTROL_TIME ((DLT_TYPE_CONTROL << DLT_MSIN_MSTP_SHIFT) | (DLT_CONTROL_TIME << DLT_MSIN_MTIN_SHIFT)) /* * Definitions of types of arguments in payload. */ #define DLT_TYPE_INFO_TYLE 0x0000000f /**< Length of standard data: 1 = 8bit, 2 = 16bit, 3 = 32 bit, 4 = 64 bit, 5 = 128 bit */ #define DLT_TYPE_INFO_BOOL 0x00000010 /**< Boolean data */ #define DLT_TYPE_INFO_SINT 0x00000020 /**< Signed integer data */ #define DLT_TYPE_INFO_UINT 0x00000040 /**< Unsigned integer data */ #define DLT_TYPE_INFO_FLOA 0x00000080 /**< Float data */ #define DLT_TYPE_INFO_ARAY 0x00000100 /**< Array of standard types */ #define DLT_TYPE_INFO_STRG 0x00000200 /**< String */ #define DLT_TYPE_INFO_RAWD 0x00000400 /**< Raw data */ #define DLT_TYPE_INFO_VARI 0x00000800 /**< Set, if additional information to a variable is available */ #define DLT_TYPE_INFO_FIXP 0x00001000 /**< Set, if quantization and offset are added */ #define DLT_TYPE_INFO_TRAI 0x00002000 /**< Set, if additional trace information is added */ #define DLT_TYPE_INFO_STRU 0x00004000 /**< Struct */ #define DLT_TYPE_INFO_SCOD 0x00038000 /**< coding of the type string: 0 = ASCII, 1 = UTF-8 */ #define DLT_TYLE_8BIT 0x00000001 #define DLT_TYLE_16BIT 0x00000002 #define DLT_TYLE_32BIT 0x00000003 #define DLT_TYLE_64BIT 0x00000004 #define DLT_TYLE_128BIT 0x00000005 #define DLT_SCOD_ASCII 0x00000000 #define DLT_SCOD_UTF8 0x00008000 #define DLT_SCOD_HEX 0x00010000 #define DLT_SCOD_BIN 0x00018000 /* * Definitions of DLT services. */ #define DLT_SERVICE_ID_SET_LOG_LEVEL 0x01 /**< Service ID: Set log level */ #define DLT_SERVICE_ID_SET_TRACE_STATUS 0x02 /**< Service ID: Set trace status */ #define DLT_SERVICE_ID_GET_LOG_INFO 0x03 /**< Service ID: Get log info */ #define DLT_SERVICE_ID_GET_DEFAULT_LOG_LEVEL 0x04 /**< Service ID: Get dafault log level */ #define DLT_SERVICE_ID_STORE_CONFIG 0x05 /**< Service ID: Store configuration */ #define DLT_SERVICE_ID_RESET_TO_FACTORY_DEFAULT 0x06 /**< Service ID: Reset to factory defaults */ #define DLT_SERVICE_ID_SET_COM_INTERFACE_STATUS 0x07 /**< Service ID: Set communication interface status */ #define DLT_SERVICE_ID_SET_COM_INTERFACE_MAX_BANDWIDTH 0x08 /**< Service ID: Set communication interface maximum bandwidth */ #define DLT_SERVICE_ID_SET_VERBOSE_MODE 0x09 /**< Service ID: Set verbose mode */ #define DLT_SERVICE_ID_SET_MESSAGE_FILTERING 0x0A /**< Service ID: Set message filtering */ #define DLT_SERVICE_ID_SET_TIMING_PACKETS 0x0B /**< Service ID: Set timing packets */ #define DLT_SERVICE_ID_GET_LOCAL_TIME 0x0C /**< Service ID: Get local time */ #define DLT_SERVICE_ID_USE_ECU_ID 0x0D /**< Service ID: Use ECU id */ #define DLT_SERVICE_ID_USE_SESSION_ID 0x0E /**< Service ID: Use session id */ #define DLT_SERVICE_ID_USE_TIMESTAMP 0x0F /**< Service ID: Use timestamp */ #define DLT_SERVICE_ID_USE_EXTENDED_HEADER 0x10 /**< Service ID: Use extended header */ #define DLT_SERVICE_ID_SET_DEFAULT_LOG_LEVEL 0x11 /**< Service ID: Set default log level */ #define DLT_SERVICE_ID_SET_DEFAULT_TRACE_STATUS 0x12 /**< Service ID: Set default trace status */ #define DLT_SERVICE_ID_GET_SOFTWARE_VERSION 0x13 /**< Service ID: Get software version */ #define DLT_SERVICE_ID_MESSAGE_BUFFER_OVERFLOW 0x14 /**< Service ID: Message buffer overflow */ #define DLT_SERVICE_ID_UNREGISTER_CONTEXT 0xf01 /**< Service ID: Message unregister context */ #define DLT_SERVICE_ID_CONNECTION_INFO 0xf02 /**< Service ID: Message connection info */ #define DLT_SERVICE_ID_TIMEZONE 0xf03 /**< Service ID: Timezone */ #define DLT_SERVICE_ID_MARKER 0xf04 /**< Service ID: Timezone */ #define DLT_SERVICE_ID_CALLSW_CINJECTION 0xFFF /**< Service ID: Message Injection (minimal ID) */ /* * Definitions of DLT service response status */ #define DLT_SERVICE_RESPONSE_OK 0x00 /**< Control message response: OK */ #define DLT_SERVICE_RESPONSE_NOT_SUPPORTED 0x01 /**< Control message response: Not supported */ #define DLT_SERVICE_RESPONSE_ERROR 0x02 /**< Control message response: Error */ /* * Definitions of DLT service connection state */ #define DLT_CONNECTION_STATUS_DISCONNECTED 0x01 /**< Client is disconnected */ #define DLT_CONNECTION_STATUS_CONNECTED 0x02 /**< Client is connected */ /** \} */ #endif /* DLT_PROTOCOL_H */ dlt-viewer-2.18.0+dfsg/qdlt/dlt_types.h0000775000175000017500000000624513001357026017356 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file dlt_types.h * For further information see http://www.genivi.org/. * @licence end@ */ /******************************************************************************* ** ** ** SRC-MODULE: dlt_types.h ** ** ** ** TARGET : linux ** ** ** ** PROJECT : DLT ** ** ** ** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** ** Markus Klein ** ** ** ** PURPOSE : ** ** ** ** REMARKS : ** ** ** ** PLATFORM DEPENDANT [yes/no]: yes ** ** ** ** TO BE CHANGED BY USER [yes/no]: no ** ** ** *******************************************************************************/ /******************************************************************************* ** Author Identity ** ******************************************************************************** ** ** ** Initials Name Company ** ** -------- ------------------------- ---------------------------------- ** ** aw Alexander Wenzel BMW ** ** mk Markus Klein Fraunhofer ESK ** *******************************************************************************/ #ifndef DLT_TYPES_H #define DLT_TYPES_H #include #include typedef int pid_t; #ifdef TARGET_OS_MAC typedef unsigned long speed_t; #else typedef unsigned int speed_t; #endif typedef float float32_t; typedef double float64_t; #endif /* DLT_TYPES_H */ dlt-viewer-2.18.0+dfsg/qdlt/dlt_common.c0000664000175000017500000025374213001357026017500 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file dlt_common.c * For further information see http://www.genivi.org/. * @licence end@ */ /******************************************************************************* ** ** ** SRC-MODULE: dlt_common.c ** ** ** ** TARGET : linux ** ** ** ** PROJECT : DLT ** ** ** ** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** ** Markus Klein ** ** ** ** PURPOSE : ** ** ** ** REMARKS : ** ** ** ** PLATFORM DEPENDANT [yes/no]: yes ** ** ** ** TO BE CHANGED BY USER [yes/no]: no ** ** ** *******************************************************************************/ /******************************************************************************* ** Author Identity ** ******************************************************************************** ** ** ** Initials Name Company ** ** -------- ------------------------- ---------------------------------- ** ** aw Alexander Wenzel BMW ** ** mk Markus Klein Fraunhofer ESK ** ** Mikko Rapeli BMW ** *******************************************************************************/ /******************************************************************************* ** Revision Control History ** *******************************************************************************/ /* * $LastChangedRevision: 1613 $ * $LastChangedDate: 2011-02-28 14:54:27 +0100 (Mo, 28. Feb 2011) $ * $LastChangedBy$ Initials Date Comment aw 13.01.2010 initial */ #include #include /* for malloc(), free() */ #include /* for strlen(), memcmp(), memmove() */ #include /* for localtime(), strftime() */ #include "dlt_common.h" #include "dlt_common_cfg.h" #include "version.h" #if defined (__WIN32__) || defined (_MSC_VER) #include /* for socket(), connect(), send(), and recv() */ #include #else #include /* for socket(), connect(), send(), and recv() */ #include #include /* for clock_gettime() */ #endif #include /* for PRIu64 and PRId64 */ #if defined (__APPLE__) #include #endif #if defined (_MSC_VER) #include #else #include /* for read(), close() */ #include /* for gettimeofday() */ #endif #if defined (__MSDOS__) || defined (_MSC_VER) #pragma warning(disable : 4996) /* Switch off C4996 warnings */ #include #include #endif static char str[DLT_COMMON_BUFFER_LENGTH]; const char dltSerialHeader[] = { 'D','L','S',1 }; char dltSerialHeaderChar[] = { 'D','L','S',1 }; static int log_as_daemon = 0; char *message_type[] = {"log","app_trace","nw_trace","control","","","",""}; char *log_info[] = {"","fatal","error","warn","info","debug","verbose","","","","","","","","",""}; char *trace_type[] = {"","variable","func_in","func_out","state","vfb","","","","","","","","","",""}; char *nw_trace_type[] = {"","ipc","can","flexray","most","vfb","","","","","","","","","",""}; char *control_type[] = {"","request","response","time","","","","","","","","","","","",""}; static char *service_id[] = {"","set_log_level","set_trace_status","get_log_info","get_default_log_level","store_config","reset_to_factory_default", "set_com_interface_status","set_com_interface_max_bandwidth","set_verbose_mode","set_message_filtering","set_timing_packets", "get_local_time","use_ecu_id","use_session_id","use_timestamp","use_extended_header","set_default_log_level","set_default_trace_status", "get_software_version","message_buffer_overflow" }; static char *return_type[] = {"ok","not_supported","error","","","","","","no_matching_context_id"}; void dlt_print_hex(uint8_t *ptr,int size) { int num; if (ptr==0) { return; } for (num=0;num0) { printf(" "); } printf("%.2x",((uint8_t*)ptr)[num]); } } int dlt_print_hex_string(char *text,int textlength,uint8_t *ptr,int size) { int num; if ((ptr==0) || (text==0) || (textlength<=0) || (size<0)) { return -1; } /* Length 3: AB_ , A is first digit of hex number, B is second digit of hex number, _ is space */ if (textlength<(size*3)) { dlt_log(LOG_ERR, "String does not fit binary data!\n"); return -1; } for (num=0;num0) { sprintf(text," "); text++; } sprintf(text,"%.2x",((uint8_t*)ptr)[num]); text+=2; /* 2 chars */ } return 0; } int dlt_print_mixed_string(char *text,int textlength,uint8_t *ptr,int size,int html) { int required_size = 0; int lines, rest, i; if ((ptr==0) || (text==0) || (textlength<=0) || (size<0)) { return -1; } /* Check maximum required size and do a length check */ if (html==0) { required_size=(DLT_COMMON_HEX_LINELEN+(2*DLT_COMMON_HEX_CHARS+(DLT_COMMON_HEX_CHARS-1))+DLT_COMMON_CHARLEN+DLT_COMMON_HEX_CHARS+DLT_COMMON_CHARLEN) * ((size/DLT_COMMON_HEX_CHARS) + 1); /* Example: (8 chars line number + (2*16 chars + 15 spaces) + space + 16 ascii chars + CR) * ((size/16) lines + extra line for the rest) */ } else { required_size=(DLT_COMMON_HEX_LINELEN+(2*DLT_COMMON_HEX_CHARS+(DLT_COMMON_HEX_CHARS-1))+DLT_COMMON_CHARLEN+DLT_COMMON_HEX_CHARS+4*DLT_COMMON_CHARLEN) * ((size/DLT_COMMON_HEX_CHARS) + 1); /* Example: (8 chars line number + (2*16 chars + 15 spaces) + space + 16 ascii chars + 4 [HTML CR:
]) * ((size/16) lines + extra line for the rest) */ } if (textlength"); text+=(4*DLT_COMMON_CHARLEN); } } /* print partial line */ rest = size % DLT_COMMON_HEX_CHARS; if (rest>0) { /* Line number */ sprintf(text,"%.6x: ", (size / DLT_COMMON_HEX_CHARS) * DLT_COMMON_HEX_CHARS); text+=DLT_COMMON_HEX_LINELEN; /* 'XXXXXX: ' */ /* Hex-Output */ /* It is not required to decrement textlength, as it was already checked, that there is enough space for the complete output */ dlt_print_hex_string(text,textlength,(uint8_t*)(ptr+ ((size / DLT_COMMON_HEX_CHARS) * DLT_COMMON_HEX_CHARS)),rest); text+=2*rest+(rest-1); for (i=0;i<(DLT_COMMON_HEX_CHARS-rest);i++) { sprintf(text," xx"); text+=(3*DLT_COMMON_CHARLEN); } sprintf(text," "); text+=DLT_COMMON_CHARLEN; /* Char-Output */ /* It is not required to decrement textlength, as it was already checked, that there is enough space for the complete output */ dlt_print_char_string(&text,textlength,(uint8_t*)(ptr+ ((size / DLT_COMMON_HEX_CHARS) * DLT_COMMON_HEX_CHARS)),rest); } return 0; } int dlt_print_char_string(char **text,int textlength,uint8_t *ptr,int size) { int num; if (text==0) { return -1; } if ((ptr==0) || (*text==0) || (textlength<=0) || (size<0)) { return -1; } if (textlength< size) { dlt_log(LOG_ERR, "String does not fit character data!\n"); return -1; } for (num=0;numDLT_COMMON_ASCII_CHAR_TILDE) ) { sprintf(*text,"."); } else { /* replace < with . */ if (((char*)ptr)[num]!=DLT_COMMON_ASCII_CHAR_LT) { sprintf(*text,"%c",((char *)ptr)[num]); } else { sprintf(*text,"."); } } (*text)++; } return 0; } void dlt_print_id(char *text,const char *id) { size_t i, len; if (text==0) { return; } /* Initialize text */ for (i=0; icounter = 0; return 0; } int dlt_filter_free(DltFilter *filter,int verbose) { PRINT_FUNCTION_VERBOSE(verbose); if (filter==0) { return -1; } return 0; } int dlt_filter_load(DltFilter *filter,const char *filename,int verbose) { FILE *handle; char str1[DLT_COMMON_BUFFER_LENGTH]; char apid[DLT_ID_SIZE],ctid[DLT_ID_SIZE]; PRINT_FUNCTION_VERBOSE(verbose); if (filter==0) { return -1; } handle = fopen(filename,"r"); if (handle == 0) { sprintf(str,"Filter file %s cannot be opened!\n",filename); dlt_log(LOG_ERR, str); return -1; } /* Reset filters */ filter->counter=0; while (!feof(handle)) { str1[0]=0; /* 254 == DLT_COMMON_BUFFER_LENGTH - 1 */ if (fscanf(handle,"%254s",str1)!=1) { break; } if (str1[0]==0) { break; } printf(" %s",str1); if (strcmp(str1,"----")==0) { dlt_set_id(apid,""); } else { dlt_set_id(apid,str1); } str1[0]=0; /* 254 == DLT_COMMON_BUFFER_LENGTH - 1 */ if (fscanf(handle,"%254s",str1)!=1) { break; } if (str1[0]==0) { break; } printf(" %s\r\n",str1); if (strcmp(str1,"----")==0) { dlt_set_id(ctid,""); } else { dlt_set_id(ctid,str1); } if (filter->countercounter;num++) { if (filter->apid[num][0]==0) { fprintf(handle,"---- "); } else { dlt_print_id(buf,filter->apid[num]); fprintf(handle,"%s ",buf); } if (filter->ctid[num][0]==0) { fprintf(handle,"---- "); } else { dlt_print_id(buf,filter->ctid[num]); fprintf(handle,"%s ",buf); } } fclose(handle); return 0; } int dlt_filter_find(DltFilter *filter,const char *apid,const char *ctid, int verbose) { int num; PRINT_FUNCTION_VERBOSE(verbose); if ((filter==0) || (apid==0)) { return -1; } for (num=0; numcounter; num++) { if (memcmp(filter->apid[num],apid,DLT_ID_SIZE)==0) { /* apid matches, now check for ctid */ if (ctid==0) { /* check if empty ctid matches */ if (memcmp(filter->ctid[num],"",DLT_ID_SIZE)==0) { return num; } } else { if (memcmp(filter->ctid[num],ctid,DLT_ID_SIZE)==0) { return num; } } } } return -1; /* Not found */ } int dlt_filter_add(DltFilter *filter,const char *apid,const char *ctid, int verbose) { PRINT_FUNCTION_VERBOSE(verbose); if ((filter==0) || (apid==0)) { return -1; } if (filter->counter >= DLT_FILTER_MAX) { dlt_log(LOG_ERR, "Maximum numbers of allowed filters reached!\n"); return -1; } /* add each filter (apid, ctid) only once to filter array */ if (dlt_filter_find(filter,apid,ctid,verbose)<0) { /* filter not found, so add it to filter array */ if (filter->counterapid[filter->counter],apid); dlt_set_id(filter->ctid[filter->counter],(ctid?ctid:"")); filter->counter++; return 0; } } return -1; } int dlt_filter_delete(DltFilter *filter,const char *apid,const char *ctid, int verbose) { int j,k; int found=0; PRINT_FUNCTION_VERBOSE(verbose); if ((filter==0) || (apid==0)) { return -1; } if (filter->counter>0) { /* Get first occurence of apid and ctid in filter array */ for (j=0; jcounter; j++) { if ((memcmp(filter->apid[j],apid,DLT_ID_SIZE)==0) && (memcmp(filter->ctid[j],ctid,DLT_ID_SIZE)==0) ) { found=1; break; } } if (found) { /* j is index */ /* Copy from j+1 til end to j til end-1 */ dlt_set_id(filter->apid[j],""); dlt_set_id(filter->ctid[j],""); for (k=j; k<(filter->counter-1); k++) { dlt_set_id(filter->apid[k],filter->apid[k+1]); dlt_set_id(filter->ctid[k],filter->ctid[k+1]); } filter->counter--; return 0; } } return -1; } int dlt_message_init(DltMessage *msg,int verbose) { PRINT_FUNCTION_VERBOSE(verbose); if (msg==0) { return -1; } /* initalise structure parameters */ msg->headersize = 0; msg->datasize = 0; msg->databuffer = 0; msg->storageheader = 0; msg->standardheader = 0; msg->extendedheader = 0; msg->found_serialheader = 0; return 0; } int dlt_message_free(DltMessage *msg,int verbose) { PRINT_FUNCTION_VERBOSE(verbose); if (msg==0) { return -1; } /* delete databuffer if exists */ if (msg->databuffer) { free(msg->databuffer); } msg->databuffer = 0; return 0; } int dlt_message_header(DltMessage *msg,char *text,int textlength,int verbose) { return dlt_message_header_flags(msg,text,textlength,DLT_HEADER_SHOW_ALL,verbose); } int dlt_message_header_flags(DltMessage *msg,char *text,int textlength,int flags, int verbose) { struct tm * timeinfo; char buffer [DLT_COMMON_BUFFER_LENGTH]; PRINT_FUNCTION_VERBOSE(verbose); if ((msg==0) || (text==0) || (textlength<=0)) { return -1; } if ((flagsDLT_HEADER_SHOW_ALL)) { return -1; } text[0] = 0; if ((flags & DLT_HEADER_SHOW_TIME) == DLT_HEADER_SHOW_TIME) { /* print received time */ timeinfo = localtime ((const time_t*)(&(msg->storageheader->seconds))); if (timeinfo!=0) { strftime (buffer,sizeof(buffer),"%Y/%m/%d %H:%M:%S",timeinfo); sprintf(text,"%s.%.6d ",buffer,msg->storageheader->microseconds); } } if ((flags & DLT_HEADER_SHOW_TMSTP) == DLT_HEADER_SHOW_TMSTP) { /* print timestamp if available */ if ( DLT_IS_HTYP_WTMS(msg->standardheader->htyp) ) { sprintf(text+strlen(text),"%10u ",msg->headerextra.tmsp); } else { sprintf(text+strlen(text),"---------- "); } } if ((flags & DLT_HEADER_SHOW_MSGCNT) == DLT_HEADER_SHOW_MSGCNT) { /* print message counter */ sprintf(text+strlen(text),"%.3d ",msg->standardheader->mcnt); } if ((flags & DLT_HEADER_SHOW_ECUID) == DLT_HEADER_SHOW_ECUID) { /* print ecu id, use header extra if available, else storage header value */ if ( DLT_IS_HTYP_WEID(msg->standardheader->htyp) ) { dlt_print_id(text+strlen(text),msg->headerextra.ecu); } else { dlt_print_id(text+strlen(text),msg->storageheader->ecu); } } /* print app id and context id if extended header available, else '----' */# if ((flags & DLT_HEADER_SHOW_APID) == DLT_HEADER_SHOW_APID) { sprintf(text+strlen(text)," "); if ((DLT_IS_HTYP_UEH(msg->standardheader->htyp)) && (msg->extendedheader->apid[0]!=0)) { dlt_print_id(text+strlen(text),msg->extendedheader->apid); } else { sprintf(text+strlen(text),"----"); } sprintf(text+strlen(text)," "); } if ((flags & DLT_HEADER_SHOW_CTID) == DLT_HEADER_SHOW_CTID) { if ((DLT_IS_HTYP_UEH(msg->standardheader->htyp)) && (msg->extendedheader->ctid[0]!=0)) { dlt_print_id(text+strlen(text),msg->extendedheader->ctid); } else { sprintf(text+strlen(text),"----"); } sprintf(text+strlen(text)," "); } /* print info about message type and length */ if (DLT_IS_HTYP_UEH(msg->standardheader->htyp)) { if ((flags & DLT_HEADER_SHOW_MSGTYPE) == DLT_HEADER_SHOW_MSGTYPE) { sprintf(text+strlen(text),"%s",message_type[DLT_GET_MSIN_MSTP(msg->extendedheader->msin)]); sprintf(text+strlen(text)," "); } if ((flags & DLT_HEADER_SHOW_MSGSUBTYPE) == DLT_HEADER_SHOW_MSGSUBTYPE) { if ((DLT_GET_MSIN_MSTP(msg->extendedheader->msin))==DLT_TYPE_LOG) { sprintf(text+strlen(text),"%s",log_info[DLT_GET_MSIN_MTIN(msg->extendedheader->msin)]); } if ((DLT_GET_MSIN_MSTP(msg->extendedheader->msin))==DLT_TYPE_APP_TRACE) { sprintf(text+strlen(text),"%s",trace_type[DLT_GET_MSIN_MTIN(msg->extendedheader->msin)]); } if ((DLT_GET_MSIN_MSTP(msg->extendedheader->msin))==DLT_TYPE_NW_TRACE) { sprintf(text+strlen(text),"%s",nw_trace_type[DLT_GET_MSIN_MTIN(msg->extendedheader->msin)]); } if ((DLT_GET_MSIN_MSTP(msg->extendedheader->msin))==DLT_TYPE_CONTROL) { sprintf(text+strlen(text),"%s",control_type[DLT_GET_MSIN_MTIN(msg->extendedheader->msin)]); } sprintf(text+strlen(text)," "); } if ((flags & DLT_HEADER_SHOW_VNVSTATUS) == DLT_HEADER_SHOW_VNVSTATUS) { /* print verbose status pf message */ if (DLT_IS_MSIN_VERB(msg->extendedheader->msin)) { sprintf(text+strlen(text),"V"); } else { sprintf(text+strlen(text),"N"); } sprintf(text+strlen(text)," "); } if ((flags & DLT_HEADER_SHOW_NOARG) == DLT_HEADER_SHOW_NOARG) { /* print number of arguments */ sprintf(text+strlen(text),"%d", msg->extendedheader->noar); } } else { if ((flags & DLT_HEADER_SHOW_MSGTYPE) == DLT_HEADER_SHOW_MSGTYPE) { sprintf(text+strlen(text),"--- "); } if ((flags & DLT_HEADER_SHOW_MSGSUBTYPE) == DLT_HEADER_SHOW_MSGSUBTYPE) { sprintf(text+strlen(text),"--- "); } if ((flags & DLT_HEADER_SHOW_VNVSTATUS) == DLT_HEADER_SHOW_VNVSTATUS) { sprintf(text+strlen(text),"N "); } if ((flags & DLT_HEADER_SHOW_NOARG) == DLT_HEADER_SHOW_NOARG) { sprintf(text+strlen(text),"-"); } } return 0; } int dlt_message_payload(DltMessage *msg,char *text,int textlength,int type,int verbose) { uint32_t id=0,id_tmp=0; uint8_t retval=0; uint8_t *ptr; int32_t datalength; /* Pointer to ptr and datalength */ uint8_t **pptr; int32_t *pdatalength; int ret=0; int num; uint32_t type_info=0,type_info_tmp=0; PRINT_FUNCTION_VERBOSE(verbose); if ((msg==0) || (text==0)) { return -1; } if (textlength<=0) { dlt_log(LOG_ERR, "String does not fit binary data!\n"); return -1; } /* start with empty string */ text[0] = 0; /* print payload only as hex */ if (type==DLT_OUTPUT_HEX) { return dlt_print_hex_string(text,textlength,msg->databuffer,msg->datasize); } /* print payload as mixed */ if (type==DLT_OUTPUT_MIXED_FOR_PLAIN) { return dlt_print_mixed_string(text,textlength,msg->databuffer,msg->datasize,0); } if (type==DLT_OUTPUT_MIXED_FOR_HTML) { return dlt_print_mixed_string(text,textlength,msg->databuffer,msg->datasize,1); } ptr = msg->databuffer; datalength = msg->datasize; /* Pointer to ptr and datalength */ pptr = &ptr; pdatalength = &datalength; /* non-verbose mode */ /* print payload as hex */ if (DLT_MSG_IS_NONVERBOSE(msg)) { DLT_MSG_READ_VALUE(id_tmp,ptr,datalength,uint32_t); id=DLT_ENDIAN_GET_32(msg->standardheader->htyp, id_tmp); if (textlength<((datalength*3)+20)) { dlt_log(LOG_ERR, "String does not fit binary data!\n"); return -1; } /* process message id / service id */ if (DLT_MSG_IS_CONTROL(msg)) { if (id > 0 && id <= DLT_SERVICE_ID_MESSAGE_BUFFER_OVERFLOW) { sprintf(text+strlen(text),"%s",service_id[id]); /* service id */ } else { if (!(DLT_MSG_IS_CONTROL_TIME(msg))) { sprintf(text+strlen(text),"service(%u)",id); /* service id */ } } if (datalength>0) { sprintf(text+strlen(text),", "); } } else { sprintf(text+strlen(text),"%u, ",id); /* message id */ } /* process return value */ if (DLT_MSG_IS_CONTROL_RESPONSE(msg)) { if (datalength>0) { DLT_MSG_READ_VALUE(retval,ptr,datalength,uint8_t); /* No endian conversion necessary */ if ( (retval<3) || (retval==8)) { sprintf(text+strlen(text),"%s",return_type[retval]); } else { sprintf(text+strlen(text),"%.2x",retval); } if (datalength>=1) { sprintf(text+strlen(text),", "); } } } if (type==DLT_OUTPUT_ASCII_LIMITED) { ret=dlt_print_hex_string(text+strlen(text),(int)(textlength-strlen(text)),ptr, (datalength>DLT_COMMON_ASCII_LIMIT_MAX_CHARS?DLT_COMMON_ASCII_LIMIT_MAX_CHARS:datalength)); if ((datalength>DLT_COMMON_ASCII_LIMIT_MAX_CHARS) && ((textlength-strlen(text))>4)) { sprintf(text+strlen(text)," ..."); } } else { ret=dlt_print_hex_string(text+strlen(text),(int)(textlength-strlen(text)),ptr,datalength); } return ret; } /* At this point, it is ensured that a extended header is available */ /* verbose mode */ // type_info=0; type_info_tmp=0; for (num=0;num<(int)(msg->extendedheader->noar);num++) { if (num!=0) { sprintf(text+strlen(text)," "); } /* first read the type info of the argument */ DLT_MSG_READ_VALUE(type_info_tmp,ptr,datalength,uint32_t); type_info=DLT_ENDIAN_GET_32(msg->standardheader->htyp, type_info_tmp); /* print out argument */ if (dlt_message_argument_print(msg, type_info, pptr, pdatalength, text, textlength, -1, 0)==-1) { return -1; } } return 0; } int dlt_message_filter_check(DltMessage *msg,DltFilter *filter,int verbose) { /* check the filters if message is used */ int num; int found = 0; PRINT_FUNCTION_VERBOSE(verbose); if ((msg==0) || (filter==0)) { return -1; } if ((filter->counter==0) || (!(DLT_IS_HTYP_UEH(msg->standardheader->htyp)))) { /* no filter is set, or no extended header is available, so do as filter is matching */ return 1; } for (num=0;numcounter;num++) { /* check each filter if it matches */ if ((DLT_IS_HTYP_UEH(msg->standardheader->htyp)) && (filter->apid[num][0]==0 || memcmp(filter->apid[num],msg->extendedheader->apid,DLT_ID_SIZE)==0) && (filter->ctid[num][0]==0 || memcmp(filter->ctid[num],msg->extendedheader->ctid,DLT_ID_SIZE)==0) ) { found = 1; break; } } return found; } int dlt_message_read(DltMessage *msg,uint8_t *buffer,unsigned int length,int resync, int verbose) { int extra_size = 0; PRINT_FUNCTION_VERBOSE(verbose); if ((msg==0) || (buffer==0) || (length<=0)) { return -1; } /* initialize resync_offset */ msg->resync_offset=0; /* check if message contains serial header, smaller than standard header */ if (lengthfound_serialheader = 1; buffer += sizeof(dltSerialHeader); length -= sizeof(dltSerialHeader); } else { /* serial header not found */ msg->found_serialheader = 0; if (resync) { /* resync if necessary */ msg->resync_offset=0; do { if (memcmp(buffer+msg->resync_offset,dltSerialHeader,sizeof(dltSerialHeader)) == 0) { /* serial header found */ msg->found_serialheader = 1; buffer += sizeof(dltSerialHeader); length -= sizeof(dltSerialHeader); break; } msg->resync_offset++; } while ((sizeof(dltSerialHeader)+msg->resync_offset)<=length); /* Set new start offset */ if (msg->resync_offset>0) { /* Resyncing connection */ buffer+=msg->resync_offset; length-=msg->resync_offset; } } } /* check that standard header fits buffer */ if (lengthheaderbuffer+sizeof(DltStorageHeader),buffer,sizeof(DltStandardHeader)); /* set ptrs to structures */ msg->storageheader = (DltStorageHeader*) msg->headerbuffer; msg->standardheader = (DltStandardHeader*) (msg->headerbuffer + sizeof(DltStorageHeader)); /* calculate complete size of headers */ extra_size = DLT_STANDARD_HEADER_EXTRA_SIZE(msg->standardheader->htyp)+(DLT_IS_HTYP_UEH(msg->standardheader->htyp) ? sizeof(DltExtendedHeader) : 0); msg->headersize = sizeof(DltStorageHeader) + sizeof(DltStandardHeader) + extra_size; msg->datasize = DLT_BETOH_16(msg->standardheader->len) - (msg->headersize - sizeof(DltStorageHeader)); if (verbose) { sprintf(str,"Buffer length: %d\n",length); dlt_log(LOG_INFO, str); } if (verbose) { sprintf(str,"Header Size: %d\n",msg->headersize); dlt_log(LOG_INFO, str); } if (verbose) { sprintf(str,"Data Size: %d\n",msg->datasize); dlt_log(LOG_INFO, str); } /* check data size */ if (msg->datasize < 0) { sprintf(str,"Plausibility check failed. Complete message size too short (%d)!\n",msg->datasize); dlt_log(LOG_ERR, str); return -1; } /* load standard header extra parameters and Extended header if used */ if (extra_size>0) { if (length < (msg->headersize - sizeof(DltStorageHeader))) { return -1; } memcpy(msg->headerbuffer+sizeof(DltStorageHeader)+sizeof(DltStandardHeader),buffer+sizeof(DltStandardHeader),extra_size); /* set extended header ptr and get standard header extra parameters */ if (DLT_IS_HTYP_UEH(msg->standardheader->htyp)) { msg->extendedheader = (DltExtendedHeader*) (msg->headerbuffer + sizeof(DltStorageHeader) + sizeof(DltStandardHeader) + DLT_STANDARD_HEADER_EXTRA_SIZE(msg->standardheader->htyp)); } else { msg->extendedheader = 0; } dlt_message_get_extraparameters(msg,verbose); } /* check if payload fits length */ if (length < (msg->headersize - sizeof(DltStorageHeader) + msg->datasize)) { /* dlt_log(LOG_ERR,"length does not fit!\n"); */ return -1; } /* free last used memory for buffer */ if (msg->databuffer) { free(msg->databuffer); } /* get new memory for buffer */ msg->databuffer = (uint8_t *)malloc(msg->datasize); if (msg->databuffer == 0) { sprintf(str,"Cannot allocate memory for payload buffer of size %d!\n",msg->datasize); dlt_log(LOG_ERR, str); return -1; } /* load payload data from buffer */ memcpy(msg->databuffer,buffer+(msg->headersize-sizeof(DltStorageHeader)),msg->datasize); return 0; } int dlt_message_get_extraparameters(DltMessage *msg,int verbose) { PRINT_FUNCTION_VERBOSE(verbose); if (msg==0) { return -1; } if (DLT_IS_HTYP_WEID(msg->standardheader->htyp)) { memcpy(msg->headerextra.ecu,msg->headerbuffer + sizeof(DltStorageHeader) + sizeof(DltStandardHeader),DLT_ID_SIZE); } if (DLT_IS_HTYP_WSID(msg->standardheader->htyp)) { memcpy(&(msg->headerextra.seid),msg->headerbuffer + sizeof(DltStorageHeader) + sizeof(DltStandardHeader) + (DLT_IS_HTYP_WEID(msg->standardheader->htyp) ? DLT_SIZE_WEID : 0), DLT_SIZE_WSID); msg->headerextra.seid = DLT_BETOH_32(msg->headerextra.seid); } if (DLT_IS_HTYP_WTMS(msg->standardheader->htyp)) { memcpy(&(msg->headerextra.tmsp),msg->headerbuffer + sizeof(DltStorageHeader) + sizeof(DltStandardHeader) + (DLT_IS_HTYP_WEID(msg->standardheader->htyp) ? DLT_SIZE_WEID : 0) + (DLT_IS_HTYP_WSID(msg->standardheader->htyp) ? DLT_SIZE_WSID : 0),DLT_SIZE_WTMS); msg->headerextra.tmsp = DLT_BETOH_32(msg->headerextra.tmsp); } return 0; } int dlt_message_set_extraparameters(DltMessage *msg,int verbose) { PRINT_FUNCTION_VERBOSE(verbose); if (msg==0) { return -1; } if (DLT_IS_HTYP_WEID(msg->standardheader->htyp)) { memcpy(msg->headerbuffer + sizeof(DltStorageHeader) + sizeof(DltStandardHeader),msg->headerextra.ecu,DLT_ID_SIZE); } if (DLT_IS_HTYP_WSID(msg->standardheader->htyp)) { msg->headerextra.seid = DLT_HTOBE_32(msg->headerextra.seid); memcpy(msg->headerbuffer + sizeof(DltStorageHeader) + sizeof(DltStandardHeader) + (DLT_IS_HTYP_WEID(msg->standardheader->htyp) ? DLT_SIZE_WEID : 0), &(msg->headerextra.seid),DLT_SIZE_WSID); } if (DLT_IS_HTYP_WTMS(msg->standardheader->htyp)) { msg->headerextra.tmsp = DLT_HTOBE_32(msg->headerextra.tmsp); memcpy(msg->headerbuffer + sizeof(DltStorageHeader) + sizeof(DltStandardHeader) + (DLT_IS_HTYP_WEID(msg->standardheader->htyp) ? DLT_SIZE_WEID : 0) + (DLT_IS_HTYP_WSID(msg->standardheader->htyp) ? DLT_SIZE_WSID : 0), &(msg->headerextra.tmsp),DLT_SIZE_WTMS); } return 0; } int dlt_file_init(DltFile *file,int verbose) { PRINT_FUNCTION_VERBOSE(verbose); if (file==0) { return -1; } /* initalise structure parameters */ file->handle = 0; file->counter = 0; file->counter_total = 0; file->index = 0; file->filter = 0; file->filter_counter = 0; file->file_position = 0; file->position = 0; file->error_messages = 0; return dlt_message_init(&(file->msg),verbose); } int dlt_file_set_filter(DltFile *file,DltFilter *filter,int verbose) { PRINT_FUNCTION_VERBOSE(verbose); if (file==0) { return -1; } /* set filter */ file->filter = filter; return 0; } int dlt_file_read_header(DltFile *file,int verbose) { PRINT_FUNCTION_VERBOSE(verbose); if (file==0) { return -1; } /* load header from file */ if (fread(file->msg.headerbuffer,sizeof(DltStorageHeader)+sizeof(DltStandardHeader),1,file->handle)!=1) { if (!feof(file->handle)) { dlt_log(LOG_ERR, "Cannot read header from file!\n"); } return -1; } /* set ptrs to structures */ file->msg.storageheader = (DltStorageHeader*) file->msg.headerbuffer; file->msg.standardheader = (DltStandardHeader*) (file->msg.headerbuffer + sizeof(DltStorageHeader)); /* check id of storage header */ if (dlt_check_storageheader(file->msg.storageheader)==0) { dlt_log(LOG_ERR, "DLT storage header pattern not found!\n"); return -1; } /* calculate complete size of headers */ file->msg.headersize = sizeof(DltStorageHeader) + sizeof(DltStandardHeader) + DLT_STANDARD_HEADER_EXTRA_SIZE(file->msg.standardheader->htyp) + (DLT_IS_HTYP_UEH(file->msg.standardheader->htyp) ? sizeof(DltExtendedHeader) : 0); file->msg.datasize = DLT_BETOH_16(file->msg.standardheader->len) + sizeof(DltStorageHeader) - file->msg.headersize; if (verbose) { sprintf(str,"Header Size: %d\n",file->msg.headersize); dlt_log(LOG_INFO, str); } if (verbose) { sprintf(str,"Data Size: %d\n",file->msg.datasize); dlt_log(LOG_INFO, str); } /* check data size */ if (file->msg.datasize < 0) { sprintf(str,"Plausibility check failed. Complete message size too short! (%d)\n", file->msg.datasize); dlt_log(LOG_ERR, str); return -1; } return 0; } int dlt_file_read_header_raw(DltFile *file,int resync,int verbose) { char dltSerialHeaderBuffer[DLT_ID_SIZE]; PRINT_FUNCTION_VERBOSE(verbose); if (file==0) { return -1; } /* check if serial header exists, ignore if found */ if (fread(dltSerialHeaderBuffer,sizeof(dltSerialHeaderBuffer),1,file->handle)!=1) { /* cannot read serial header, not enough data available in file */ if (!feof(file->handle)) { dlt_log(LOG_ERR, "Cannot read header from file!\n"); } return -1; } if (memcmp(dltSerialHeaderBuffer,dltSerialHeader,sizeof(dltSerialHeader)) == 0) { /* serial header found */ /* nothing to do continue reading */ } else { /* serial header not found */ if(resync) { /* increase error counter */ file->error_messages++; /* resync to serial header */ do { memmove(dltSerialHeaderBuffer,dltSerialHeaderBuffer+1,sizeof(dltSerialHeader)-1); if (fread(dltSerialHeaderBuffer+3,1,1,file->handle)!=1) { /* cannot read any data, perhaps end of file reached */ return -1; } if (memcmp(dltSerialHeaderBuffer,dltSerialHeader,sizeof(dltSerialHeader)) == 0) { /* serial header synchronised */ break; } } while(1); } else { /* go back to last file position */ fseek(file->handle,file->file_position,SEEK_SET); } } /* load header from file */ if (fread(file->msg.headerbuffer+sizeof(DltStorageHeader),sizeof(DltStandardHeader),1,file->handle)!=1) { if (!feof(file->handle)) { dlt_log(LOG_ERR, "Cannot read header from file!\n"); } return -1; } /* set ptrs to structures */ file->msg.storageheader = (DltStorageHeader*) file->msg.headerbuffer; // this points now to a empty storage header (filled with '0') file->msg.standardheader = (DltStandardHeader*) (file->msg.headerbuffer + sizeof(DltStorageHeader)); /* Skip storage header field, fill this field with '0' */ memset(file->msg.storageheader,0,sizeof(DltStorageHeader)); /* Set storage header */ dlt_set_storageheader(file->msg.storageheader,DLT_COMMON_DUMMY_ECUID); /* no check for storage header id*/ /* calculate complete size of headers */ file->msg.headersize = sizeof(DltStorageHeader) + sizeof(DltStandardHeader) + DLT_STANDARD_HEADER_EXTRA_SIZE(file->msg.standardheader->htyp) + (DLT_IS_HTYP_UEH(file->msg.standardheader->htyp) ? sizeof(DltExtendedHeader) : 0); file->msg.datasize = DLT_BETOH_16(file->msg.standardheader->len) + sizeof(DltStorageHeader) - file->msg.headersize; if (verbose) { sprintf(str,"Header Size: %d\n",file->msg.headersize); dlt_log(LOG_INFO, str); } if (verbose) { sprintf(str,"Data Size: %d\n",file->msg.datasize); dlt_log(LOG_INFO, str); } /* check data size */ if (file->msg.datasize < 0) { sprintf(str,"Plausibility check failed. Complete message size too short! (%d)\n", file->msg.datasize); dlt_log(LOG_ERR, str); return -1; } return 0; } int dlt_file_read_header_extended(DltFile *file, int verbose) { PRINT_FUNCTION_VERBOSE(verbose); if (file==0) { return -1; } /* load standard header extra parameters if used */ if (DLT_STANDARD_HEADER_EXTRA_SIZE(file->msg.standardheader->htyp)) { if (fread(file->msg.headerbuffer+sizeof(DltStorageHeader)+sizeof(DltStandardHeader), DLT_STANDARD_HEADER_EXTRA_SIZE(file->msg.standardheader->htyp), 1,file->handle)!=1) { dlt_log(LOG_ERR, "Cannot read standard header extra parameters from file!\n"); return -1; } dlt_message_get_extraparameters(&(file->msg),verbose); } /* load Extended header if used */ if (DLT_IS_HTYP_UEH(file->msg.standardheader->htyp)==0) { /* there is nothing to be loaded */ return 0; } if (fread(file->msg.headerbuffer+sizeof(DltStorageHeader)+sizeof(DltStandardHeader)+DLT_STANDARD_HEADER_EXTRA_SIZE(file->msg.standardheader->htyp), (DLT_IS_HTYP_UEH(file->msg.standardheader->htyp) ? sizeof(DltExtendedHeader) : 0), 1,file->handle)!=1) { dlt_log(LOG_ERR, "Cannot read extended header from file!\n"); return -1; } /* set extended header ptr */ if (DLT_IS_HTYP_UEH(file->msg.standardheader->htyp)) { file->msg.extendedheader = (DltExtendedHeader*) (file->msg.headerbuffer + sizeof(DltStorageHeader) + sizeof(DltStandardHeader) + DLT_STANDARD_HEADER_EXTRA_SIZE(file->msg.standardheader->htyp)); } else { file->msg.extendedheader = 0; } return 0; } int dlt_file_read_data(DltFile *file, int verbose) { PRINT_FUNCTION_VERBOSE(verbose); if (file==0) { return -1; } /* free last used memory for buffer */ if (file->msg.databuffer) { free(file->msg.databuffer); } /* get new memory for buffer */ file->msg.databuffer = (uint8_t *)malloc(file->msg.datasize); if (file->msg.databuffer == 0) { sprintf(str,"Cannot allocate memory for payload buffer of size %d!\n",file->msg.datasize); dlt_log(LOG_ERR, str); return -1; } /* load payload data from file */ if (fread(file->msg.databuffer,file->msg.datasize,1,file->handle)!=1) { if (file->msg.datasize!=0) { sprintf(str,"Cannot read payload data from file of size %d!\n",file->msg.datasize); dlt_log(LOG_ERR, str); return -1; } } return 0; } int dlt_file_open(DltFile *file,const char *filename,int verbose) { PRINT_FUNCTION_VERBOSE(verbose); if (file==0) { return -1; } /* reset counters */ file->counter = 0; file->counter_total = 0; file->position = 0; file->file_position = 0; file->file_length = 0; file->error_messages = 0; if (file->handle) { fclose(file->handle); } /* open dlt file */ file->handle = fopen(filename,"rb"); if (file->handle == 0) { sprintf(str,"File %s cannot be opened!\n",filename); dlt_log(LOG_ERR, str); return -1; } fseek(file->handle,0,SEEK_END); file->file_length = ftell(file->handle); fseek(file->handle,0,SEEK_SET); if (verbose) { /* print file length */ sprintf(str,"File is %lu bytes long\n",file->file_length); dlt_log(LOG_INFO, str); } return 0; } int dlt_file_read(DltFile *file,int verbose) { long *ptr; int found = 0; if (verbose) { sprintf(str,"%s: Message %d:\n",__func__, file->counter_total); dlt_log(LOG_INFO, str); } if (file==0) { return -1; } /* allocate new memory for index if number of messages exceeds a multiple of DLT_COMMON_INDEX_ALLOC (e.g.: 1000) */ if (file->counter % DLT_COMMON_INDEX_ALLOC == 0) { ptr = (long *) malloc(((file->counter/DLT_COMMON_INDEX_ALLOC) + 1) * DLT_COMMON_INDEX_ALLOC * sizeof(long)); if (ptr==0) { return -1; } if (file->index) { memcpy(ptr,file->index,file->counter * sizeof(long)); free(file->index); } file->index = ptr; } /* set to end of last succesful read message, because of conflicting calls to dlt_file_read and dlt_file_message */ fseek(file->handle,file->file_position,SEEK_SET); /* get file position at start of DLT message */ if (verbose) { sprintf(str,"Position in file: %ld\n",file->file_position); dlt_log(LOG_INFO, str); } /* read header */ if (dlt_file_read_header(file,verbose)<0) { /* go back to last position in file */ fseek(file->handle,file->file_position,SEEK_SET); return -1; } if (file->filter) { /* read the extended header if filter is enabled and extended header exists */ if (dlt_file_read_header_extended(file, verbose)<0) { /* go back to last position in file */ fseek(file->handle,file->file_position,SEEK_SET); return-1; } /* check the filters if message is used */ if (dlt_message_filter_check(&(file->msg),file->filter,verbose) == 1) { /* filter matched, consequently store current message */ /* store index pointer to message position in DLT file */ file->index[file->counter] = file->file_position; file->counter++; file->position = file->counter - 1; found = 1; } /* skip payload data */ if (fseek(file->handle,file->msg.datasize,SEEK_CUR)!=0) { /* go back to last position in file */ fseek(file->handle,file->file_position,SEEK_SET); sprintf(str,"Seek failed to skip payload data of size %d!\n",file->msg.datasize); dlt_log(LOG_ERR, str); return -1; } } else { /* filter is disabled */ /* skip additional header parameters and payload data */ if (fseek(file->handle,file->msg.headersize - sizeof(DltStorageHeader) - sizeof(DltStandardHeader) + file->msg.datasize,SEEK_CUR)) { /* go back to last position in file */ fseek(file->handle,file->file_position,SEEK_SET); sprintf(str,"Seek failed to skip extra header and payload data from file of size %lu!\n", file->msg.headersize - sizeof(DltStorageHeader) - sizeof(DltStandardHeader) + file->msg.datasize); dlt_log(LOG_ERR, str); return -1; } /* store index pointer to message position in DLT file */ file->index[file->counter] = file->file_position; file->counter++; file->position = file->counter - 1; found = 1; } /* increase total message counter */ file->counter_total++; /* store position to next message */ file->file_position = ftell(file->handle); return found; } int dlt_file_read_raw(DltFile *file,int resync, int verbose) { int found = 0; long *ptr; if (verbose) { sprintf(str,"%s: Message %d:\n",__func__, file->counter_total); dlt_log(LOG_INFO, str); } if (file==0) return -1; /* allocate new memory for index if number of messages exceeds a multiple of DLT_COMMON_INDEX_ALLOC (e.g.: 1000) */ if (file->counter % DLT_COMMON_INDEX_ALLOC == 0) { ptr = (long *) malloc(((file->counter/DLT_COMMON_INDEX_ALLOC) + 1) * DLT_COMMON_INDEX_ALLOC * sizeof(long)); if (ptr==0) { return -1; } if (file->index) { memcpy(ptr,file->index,file->counter * sizeof(long)); free(file->index); } file->index = ptr; } /* set to end of last succesful read message, because of conflicting calls to dlt_file_read and dlt_file_message */ fseek(file->handle,file->file_position,SEEK_SET); /* get file position at start of DLT message */ if (verbose) { sprintf(str,"Position in file: %ld\n",file->file_position); dlt_log(LOG_INFO, str); } /* read header */ if (dlt_file_read_header_raw(file,resync,verbose)<0) { /* go back to last position in file */ fseek(file->handle,file->file_position,SEEK_SET); return -1; } /* read the extended header if filter is enabled and extended header exists */ if (dlt_file_read_header_extended(file, verbose)<0) { /* go back to last position in file */ fseek(file->handle,file->file_position,SEEK_SET); return-1; } if (dlt_file_read_data(file,verbose)<0) { /* go back to last position in file */ fseek(file->handle,file->file_position,SEEK_SET); return-1; } /* store index pointer to message position in DLT file */ file->index[file->counter] = file->file_position; file->counter++; file->position = file->counter - 1; found = 1; /* increase total message counter */ file->counter_total++; /* store position to next message */ file->file_position = ftell(file->handle); return found; } int dlt_file_close(DltFile *file,int verbose) { PRINT_FUNCTION_VERBOSE(verbose); if (file==0) { return -1; } if (file->handle) { fclose(file->handle); } file->handle = 0; return 0; } int dlt_file_message(DltFile *file,int index,int verbose) { PRINT_FUNCTION_VERBOSE(verbose); if (file==0) { return -1; } /* check if message is in range */ if (index >= file->counter) { sprintf(str,"Message %d out of range!\r\n",index); dlt_log(LOG_ERR, str); return -1; } /* seek to position in file */ if (fseek(file->handle,file->index[index],SEEK_SET)!=0) { sprintf(str,"Seek to message %d to position %ld failed!\r\n",index,file->index[index]); dlt_log(LOG_ERR, str); return -1; } /* read all header and payload */ if (dlt_file_read_header(file,verbose)<0) { return -1; } if (dlt_file_read_header_extended(file,verbose)<0) { return -1; } if (dlt_file_read_data(file,verbose)<0) { return -1; } /* set current position in file */ file->position = index; return 0; } int dlt_file_free(DltFile *file,int verbose) { PRINT_FUNCTION_VERBOSE(verbose); if (file==0) { return -1; } /* delete index lost if exists */ if (file->index) { free(file->index); } file->index = 0; /* close file */ if (file->handle) { fclose(file->handle); } file->handle = 0; return dlt_message_free(&(file->msg),verbose); } void dlt_log_init(int mode) { log_as_daemon = mode; } void dlt_log_free(void) { /* Nothing to be done yet */ } int dlt_log(int prio, char *s) { char logfmtstring[DLT_COMMON_BUFFER_LENGTH]; if (s==0) { return -1; } switch (prio) { case LOG_EMERG: { strcpy(logfmtstring,"DLT| EMERGENCY: %s"); break; } case LOG_ALERT: { strcpy(logfmtstring,"DLT| ALERT: %s"); break; } case LOG_CRIT: { strcpy(logfmtstring,"DLT| CRITICAL: %s"); break; } case LOG_ERR: { strcpy(logfmtstring,"DLT| ERROR: %s"); break; } case LOG_WARNING: { strcpy(logfmtstring,"DLT| WARNING: %s"); break; } case LOG_NOTICE: { strcpy(logfmtstring,"DLT| NOTICE: %s"); break; } case LOG_INFO: { strcpy(logfmtstring,"DLT| INFO: %s"); break; } case LOG_DEBUG: { strcpy(logfmtstring,"DLT| DEBUG: %s"); break; } default: { strcpy(logfmtstring,"DLT| %s"); break; } } #if !defined (__WIN32__) && !defined(_MSC_VER) if (log_as_daemon) { openlog("DLT",LOG_PID,LOG_DAEMON); syslog(prio, logfmtstring, s); closelog(); } else #endif { printf(logfmtstring, s); } return 0; } int dlt_receiver_init(DltReceiver *receiver,int fd, int buffersize) { if (receiver==0) { return -1; } receiver->lastBytesRcvd = 0; receiver->bytesRcvd = 0; receiver->totalBytesRcvd = 0; receiver->buffersize = buffersize; receiver->fd = fd; receiver->buffer = (char*)malloc(receiver->buffersize); if (receiver->buffer == 0) { receiver->buf = 0; return -1; } else { receiver->buf = receiver->buffer; } return 0; } int dlt_receiver_free(DltReceiver *receiver) { if (receiver==0) { return -1; } if (receiver->buffer) { free(receiver->buffer); } receiver->buffer = 0; receiver->buf = 0; return 0; } #ifndef QT_VIEWER int dlt_receiver_receive_socket(DltReceiver *receiver) { if (receiver==0) { return -1; } if (receiver->buffer==0) { return -1; } receiver->buf = (char *)receiver->buffer; receiver->lastBytesRcvd = receiver->bytesRcvd; /* wait for data from socket */ if ((receiver->bytesRcvd = recv(receiver->fd, receiver->buf + receiver->lastBytesRcvd, receiver->buffersize - receiver->lastBytesRcvd , 0)) <= 0) { receiver->bytesRcvd = 0; return receiver->bytesRcvd; } /* if */ receiver->totalBytesRcvd += receiver->bytesRcvd; receiver->bytesRcvd += receiver->lastBytesRcvd; return receiver->bytesRcvd; } #endif int dlt_receiver_receive_fd(DltReceiver *receiver) { if (receiver==0) { return -1; } if (receiver->buffer==0) { return -1; } receiver->buf = (char *)receiver->buffer; receiver->lastBytesRcvd = receiver->bytesRcvd; /* wait for data from fd */ if ((receiver->bytesRcvd = read(receiver->fd, receiver->buf + receiver->lastBytesRcvd, receiver->buffersize - receiver->lastBytesRcvd)) <= 0) { receiver->bytesRcvd = 0; return receiver->bytesRcvd; } /* if */ receiver->totalBytesRcvd += receiver->bytesRcvd; receiver->bytesRcvd += receiver->lastBytesRcvd; return receiver->bytesRcvd; } int dlt_receiver_remove(DltReceiver *receiver,int size) { if (receiver==0) { return -1; } if (receiver->buf==0) { return -1; } receiver->bytesRcvd = receiver->bytesRcvd - size; receiver->buf = receiver->buf + size; return 0; } int dlt_receiver_move_to_begin(DltReceiver *receiver) { if (receiver==0) { return -1; } if ((receiver->buffer==0) || (receiver->buf==0)) { return -1; } if ((receiver->buffer!=receiver->buf) && (receiver->bytesRcvd!=0)) { memmove(receiver->buffer,receiver->buf,receiver->bytesRcvd); } return 0; } int dlt_set_storageheader(DltStorageHeader *storageheader, const char *ecu) { #if !defined(_MSC_VER) struct timeval tv; #endif if (storageheader==0) { return -1; } /* get time of day */ #if defined(_MSC_VER) time((time_t*)&(storageheader->seconds)); #else gettimeofday(&tv, NULL); #endif /* prepare storage header */ storageheader->pattern[0] = 'D'; storageheader->pattern[1] = 'L'; storageheader->pattern[2] = 'T'; storageheader->pattern[3] = 0x01; dlt_set_id(storageheader->ecu,ecu); /* Set current time */ #if defined(_MSC_VER) storageheader->microseconds = 0; #else storageheader->seconds = (time_t)tv.tv_sec; /* value is long */ storageheader->microseconds = (int32_t)tv.tv_usec; /* value is long */ #endif return 0; } int dlt_check_storageheader(DltStorageHeader *storageheader) { if (storageheader==0) { return -1; } return ((storageheader->pattern[0] == 'D') && (storageheader->pattern[1] == 'L') && (storageheader->pattern[2] == 'T') && (storageheader->pattern[3] == 1)); } int dlt_ringbuffer_init(DltRingBuffer *dltbuf, uint32_t size) { if (dltbuf==0) { return -1; } if (size<=sizeof(uint32_t)) { return -1; } dltbuf->buffer=(char*)malloc(size); if (dltbuf->buffer==0) { return -1; } dltbuf->size=size; dltbuf->pos_write=0; dltbuf->pos_read=0; dltbuf->count=0; return 0; } int dlt_ringbuffer_free(DltRingBuffer *dltbuf) { if (dltbuf==0) { return -1; } if (dltbuf->buffer) { free(dltbuf->buffer); } dltbuf->buffer=0; dltbuf->size=0; dltbuf->pos_write=0; dltbuf->pos_read=0; dltbuf->count=0; return 0; } int dlt_ringbuffer_put(DltRingBuffer *dltbuf, void *data, uint32_t size) { uint32_t sui, part1, part2; if (dltbuf==0) { return -1; } if (dltbuf->buffer==0) { return -1; } if (data==0) { return -1; } sui = sizeof(uint32_t); if ((size+sui)>dltbuf->size) { return -1; } dlt_ringbuffer_checkandfreespace(dltbuf, (size+sui)); if (dltbuf->pos_write >= dltbuf->size) { dltbuf->pos_write = 0; } /* Not enough space for one uint available before end of linear buffer */ /* Start at begin of linear buffer */ if ((dltbuf->size - dltbuf->pos_write) < sui) { dltbuf->pos_write = 0; } /* Write length of following data to buffer */ memcpy(&(dltbuf->buffer[dltbuf->pos_write]), &size, sui); dltbuf->pos_write+=sui; if (dltbuf->pos_write >= dltbuf->size) { dltbuf->pos_write = 0; } if ((dltbuf->size - dltbuf->pos_write) < size) { /* Not enough space til end of linear buffer, */ /* split up write call */ part1 = dltbuf->size - dltbuf->pos_write; part2 = size - part1; memcpy(dltbuf->buffer + dltbuf->pos_write, data, part1); memcpy(dltbuf->buffer, ((char*)data) + part1, part2); dltbuf->pos_write = part2; } else { /* Enough space til end of linear buffer */ memcpy(&(dltbuf->buffer[dltbuf->pos_write]), data, size); dltbuf->pos_write+=size; } dltbuf->count++; return 0; } int dlt_ringbuffer_put3(DltRingBuffer *dltbuf, void *data1, uint32_t size1, void *data2, uint32_t size2, void *data3, uint32_t size3) { uint32_t sui, part1, part2; uint32_t total_size; if (dltbuf==0) { return -1; } if (dltbuf->buffer==0) { return -1; } sui = sizeof(uint32_t); total_size = size1+size2+size3; if ((total_size+sui)>dltbuf->size) { return -1; } dlt_ringbuffer_checkandfreespace(dltbuf, (total_size+sui)); if (dltbuf->pos_write >= dltbuf->size) { dltbuf->pos_write = 0; } /* Not enough space for one uint available before end of linear buffer */ /* Start at begin of linear buffer */ if ((dltbuf->size - dltbuf->pos_write) < sui) { dltbuf->pos_write = 0; } /* Write length of following data to buffer */ memcpy(&(dltbuf->buffer[dltbuf->pos_write]), &total_size, sui); dltbuf->pos_write+=sui; if (dltbuf->pos_write >= dltbuf->size) { dltbuf->pos_write = 0; } /* First chunk of data (data1, size1) */ if ((dltbuf->size - dltbuf->pos_write) < size1) { /* Not enough space til end of linear buffer, */ /* split up write call */ part1 = dltbuf->size - dltbuf->pos_write; part2 = size1 - part1; memcpy(dltbuf->buffer + dltbuf->pos_write, data1, part1); memcpy(dltbuf->buffer, ((char*)data1) + part1, part2); dltbuf->pos_write = part2; } else { /* Enough space til end of linear buffer */ memcpy(&(dltbuf->buffer[dltbuf->pos_write]), data1, size1); dltbuf->pos_write+=size1; } if (dltbuf->pos_write >= dltbuf->size) { dltbuf->pos_write = 0; } /* Second chunk of data (data2, size2) */ if ((dltbuf->size - dltbuf->pos_write) < size2) { /* Not enough space til end of linear buffer, */ /* split up write call */ part1 = dltbuf->size - dltbuf->pos_write; part2 = size2 - part1; memcpy(dltbuf->buffer + dltbuf->pos_write, data2, part1); memcpy(dltbuf->buffer, ((char*)data2) + part1, part2); dltbuf->pos_write = part2; } else { /* Enough space til end of linear buffer */ memcpy(&(dltbuf->buffer[dltbuf->pos_write]), data2, size2); dltbuf->pos_write+=size2; } if (dltbuf->pos_write >= dltbuf->size) { dltbuf->pos_write = 0; } /* Third chunk of data (data3, size3) */ if ((dltbuf->size - dltbuf->pos_write) < size3) { /* Not enough space til end of linear buffer, */ /* split up write call */ part1 = dltbuf->size - dltbuf->pos_write; part2 = size3 - part1; memcpy(dltbuf->buffer + dltbuf->pos_write, data3, part1); memcpy(dltbuf->buffer, ((char*)data3) + part1, part2); dltbuf->pos_write = part2; } else { /* Enough space til end of linear buffer */ memcpy(dltbuf->buffer + dltbuf->pos_write, data3, size3); dltbuf->pos_write+=size3; } dltbuf->count++; return 0; } int dlt_ringbuffer_get(DltRingBuffer *dltbuf, void *data, size_t *size) { uint32_t tmpsize=0; uint32_t sui; uint32_t part1, part2; if (dltbuf==0) { return -1; } if (dltbuf->buffer==0) { return -1; } if (dltbuf->count==0) { return -1; } sui = sizeof(uint32_t); if (dltbuf->pos_read >= dltbuf->size) { dltbuf->pos_read = 0; } if ((dltbuf->size - dltbuf->pos_read) < sui) { dltbuf->pos_read = 0; } /* printf("Reading at offset: %d\n", dltbuf->pos_read); */ memcpy(&tmpsize,&(dltbuf->buffer[dltbuf->pos_read]), sui); dltbuf->pos_read += sui; if (dltbuf->pos_read >= dltbuf->size) { dltbuf->pos_read = 0; } if ((tmpsize>0) && ((tmpsize+sizeof(uint32_t))<=dltbuf->size)) { if ((dltbuf->size - dltbuf->pos_read) < tmpsize) { /* Not enough space til end of linear buffer, */ /* split up read call */ part1 = dltbuf->size - dltbuf->pos_read; part2 = tmpsize - part1; memcpy(data, dltbuf->buffer + dltbuf->pos_read, part1); memcpy(((char*)data)+part1, dltbuf->buffer, part2); dltbuf->pos_read = part2; } else { /* Enough space til end of linear buffer */ /* no split up read call */ memcpy(data, &(dltbuf->buffer[dltbuf->pos_read]), tmpsize); dltbuf->pos_read+=tmpsize; } *size = tmpsize; } else { data=0; *size=0; } dltbuf->count--; return 0; } int dlt_ringbuffer_get_skip(DltRingBuffer *dltbuf) { uint32_t tmpsize=0; uint32_t sui; uint32_t part1, part2; if (dltbuf==0) { return -1; } if (dltbuf->buffer==0) { return -1; } if (dltbuf->count==0) { return -1; } sui = sizeof(uint32_t); if (dltbuf->pos_read >= dltbuf->size) { dltbuf->pos_read = 0; } if ((dltbuf->size - dltbuf->pos_read) < sui) { dltbuf->pos_read = 0; } memcpy(&tmpsize,&(dltbuf->buffer[dltbuf->pos_read]), sui); dltbuf->pos_read += sui; if (dltbuf->pos_read >= dltbuf->size) { dltbuf->pos_read = 0; } if ((tmpsize>0) && ((tmpsize+sui)<=dltbuf->size)) { if ((dltbuf->size - dltbuf->pos_read) < tmpsize) { /* Not enough space til end of linear buffer */ part1 = dltbuf->size - dltbuf->pos_read; part2 = tmpsize - part1; dltbuf->pos_read = part2; } else { /* Enough space til end of linear buffer */ dltbuf->pos_read+=tmpsize; } } dltbuf->count--; return 0; } int dlt_ringbuffer_freespacewrite(DltRingBuffer *dltbuf, uint32_t *freespace) { if ((dltbuf==0) || (freespace==0)) { return -1; } *freespace=0; /* Space til pos_read */ if (dltbuf->pos_read > dltbuf->pos_write) { *freespace=(dltbuf->pos_read - dltbuf->pos_write); return 0; } else if (dltbuf->pos_read < dltbuf->pos_write) { *freespace=(dltbuf->size - dltbuf->pos_write + dltbuf->pos_read ); return 0; } else { if (dltbuf->count) { return 0; } else { *freespace=dltbuf->size; return 0; } } return 0; } int dlt_ringbuffer_checkandfreespace(DltRingBuffer *dltbuf, uint32_t reqspace) { uint32_t space_left; if (dltbuf==0) { return -1; } if (dlt_ringbuffer_freespacewrite(dltbuf,&space_left) == -1) { return -1; } /* printf("Now reading at: %d, space_left = %d, req = %d, r=%d, w=%d, count=%d \n", dltbuf->pos_read,space_left, reqspace, dltbuf->pos_read, dltbuf->pos_write, dltbuf->count); */ while (space_leftpos_read,space_left, reqspace, dltbuf->pos_read, dltbuf->pos_write, dltbuf->count); */ } return 0; } #if !defined (__WIN32__) int dlt_setup_serial(int fd, speed_t speed) { #if !defined (__WIN32__) && !defined(_MSC_VER) struct termios config; if (isatty(fd)==0) { return -1; } if (tcgetattr(fd, &config) < 0) { return -1; } /* Input flags - Turn off input processing convert break to null byte, no CR to NL translation, no NL to CR translation, don't mark parity errors or breaks no input parity check, don't strip high bit off, no XON/XOFF software flow control */ config.c_iflag &= ~(IGNBRK | BRKINT | ICRNL | INLCR | PARMRK | INPCK | ISTRIP | IXON); /* Output flags - Turn off output processing no CR to NL translation, no NL to CR-NL translation, no NL to CR translation, no column 0 CR suppression, no Ctrl-D suppression, no fill characters, no case mapping, no local output processing config.c_oflag &= ~(OCRNL | ONLCR | ONLRET | ONOCR | ONOEOT| OFILL | OLCUC | OPOST); */ config.c_oflag = 0; /* No line processing: echo off, echo newline off, canonical mode off, extended input processing off, signal chars off */ config.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN | ISIG); /* Turn off character processing clear current char size mask, no parity checking, no output processing, force 8 bit input */ config.c_cflag &= ~(CSIZE | PARENB); config.c_cflag |= CS8; /* One input byte is enough to return from read() Inter-character timer off */ config.c_cc[VMIN] = 1; config.c_cc[VTIME] = 0; /* Communication speed (simple version, using the predefined constants) */ if (cfsetispeed(&config, speed) < 0 || cfsetospeed(&config, speed) < 0) { return -1; } /* Finally, apply the configuration */ if (tcsetattr(fd, TCSAFLUSH, &config) < 0) { return -1; } return 0; #else return -1; #endif } speed_t dlt_convert_serial_speed(int baudrate) { #if !defined (__WIN32__) && !defined(_MSC_VER) && !defined(__APPLE__) speed_t ret; switch (baudrate) { case 50: { ret = B50; break; } case 75: { ret = B75; break; } case 110: { ret = B110; break; } case 134: { ret = B134; break; } case 150: { ret = B150; break; } case 200: { ret = B200; break; } case 300: { ret = B300; break; } case 600: { ret = B600; break; } case 1200: { ret = B1200; break; } case 1800: { ret = B1800; break; } case 2400: { ret = B2400; break; } case 4800: { ret = B4800; break; } case 9600: { ret = B9600; break; } case 19200: { ret = B19200; break; } case 38400: { ret = B38400; break; } case 57600: { ret = B57600; break; } case 115200: { ret = B115200; break; } case 230400: { ret = B230400; break; } case 460800: { ret = B460800; break; } case 500000: { ret = B500000; break; } case 576000: { ret = B576000; break; } case 921600: { ret = B921600; break; } case 1000000: { ret = B1000000; break; } case 1152000: { ret = B1152000; break; } case 1500000: { ret = B1500000; break; } case 2000000: { ret = B2000000; break; } case 2500000: { ret = B2500000; break; } case 3000000: { ret = B3000000; break; } case 3500000: { ret = B3500000; break; } case 4000000: { ret = B4000000; break; } default: { ret = B115200; break; } } return ret; #else return 0; #endif } #endif void dlt_get_version(char *buf) { sprintf(buf,"DLT Package Version: %s %s, Package Revision: %s, build on %s %s\n", PACKAGE_VERSION, PACKAGE_VERSION_STATE, PACKAGE_REVISION, __DATE__ , __TIME__ ); } uint32_t dlt_uptime(void) { #if defined (__WIN32__) || defined(_MSC_VER) return (uint32_t)(GetTickCount()*10); /* GetTickCount() return DWORD */ #elif defined (__APPLE__) static mach_timebase_info_data_t sTimebaseInfo = { .numer = 0, .denom = 0 }; if (0 == sTimebaseInfo.denom) { mach_timebase_info(&sTimebaseInfo); } uint64_t now = mach_absolute_time(); uint64_t nano = now * sTimebaseInfo.numer / sTimebaseInfo.denom; return (uint32_t)(nano/100000); #else struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC,&ts)==0) { return (uint32_t)((((ts.tv_sec*1000000)+(ts.tv_nsec/1000)))/100); // in 0.1 ms = 100 us } else { return 0; } #endif } int dlt_message_print_header(DltMessage *message, char *text, uint32_t size, int verbose) { if ((message==0) || (text==0)) { return -1; } dlt_message_header(message,text,size,verbose); printf("%s\n",text); return 0; } int dlt_message_print_hex(DltMessage *message, char *text, uint32_t size, int verbose) { if ((message==0) || (text==0)) { return -1; } dlt_message_header(message,text,size,verbose); printf("%s ",text); dlt_message_payload(message,text,size,DLT_OUTPUT_HEX,verbose); printf("[%s]\n",text); return 0; } int dlt_message_print_ascii(DltMessage *message, char *text, uint32_t size, int verbose) { if ((message==0) || (text==0)) { return -1; } dlt_message_header(message,text,size,verbose); printf("%s ",text); dlt_message_payload(message,text,size,DLT_OUTPUT_ASCII,verbose); printf("[%s]\n",text); return 0; } int dlt_message_print_mixed_plain(DltMessage *message, char *text, uint32_t size, int verbose) { if ((message==0) || (text==0)) { return -1; } dlt_message_header(message,text,size,verbose); printf("%s \n",text); dlt_message_payload(message,text,size,DLT_OUTPUT_MIXED_FOR_PLAIN,verbose); printf("[%s]\n",text); return 0; } int dlt_message_print_mixed_html(DltMessage *message, char *text, uint32_t size, int verbose) { if ((message==0) || (text==0)) { return -1; } dlt_message_header(message,text,size,verbose); printf("%s \n",text); dlt_message_payload(message,text,size,DLT_OUTPUT_MIXED_FOR_HTML,verbose); printf("[%s]\n",text); return 0; } int dlt_message_argument_print(DltMessage *msg,uint32_t type_info,uint8_t **ptr,int32_t *datalength,char *text,int textlength,int byteLength,int verbose) { verbose = verbose; // unused int16_t length=0,length_tmp=0; /* the macro can set this variable to -1 */ uint16_t length2=0,length2_tmp=0,length3=0,length3_tmp=0; uint8_t value8u=0; uint16_t value16u=0,value16u_tmp=0; uint32_t value32u=0,value32u_tmp=0; uint64_t value64u=0,value64u_tmp=0; int8_t value8i=0; int16_t value16i=0,value16i_tmp=0; int32_t value32i=0,value32i_tmp=0; int64_t value64i=0,value64i_tmp=0; float32_t value32f=0,value32f_tmp=0; int32_t value32f_tmp_int32i=0,value32f_tmp_int32i_swaped=0; float64_t value64f=0,value64f_tmp=0; int64_t value64f_tmp_int64i=0,value64f_tmp_int64i_swaped=0; if (type_info & DLT_TYPE_INFO_STRG) { /* string type */ if (byteLength<0) { DLT_MSG_READ_VALUE(length_tmp,*ptr,*datalength,uint16_t); if((*datalength)<0) return -1; length=DLT_ENDIAN_GET_16(msg->standardheader->htyp, length_tmp); } else { length=(int16_t)byteLength; } if (type_info & DLT_TYPE_INFO_VARI) { DLT_MSG_READ_VALUE(length2_tmp,*ptr,*datalength,uint16_t); if((*datalength)<0) return -1; length2=DLT_ENDIAN_GET_16(msg->standardheader->htyp, length2_tmp); if((*datalength)standardheader->htyp, length2_tmp); if((*datalength)standardheader->htyp, length2_tmp); DLT_MSG_READ_VALUE(length3_tmp,*ptr,*datalength,uint16_t); if((*datalength)<0) return -1; length3=DLT_ENDIAN_GET_16(msg->standardheader->htyp, length3_tmp); if((*datalength)standardheader->htyp, value16i_tmp); sprintf(text+strlen(text),"%hd",value16i); } else { // value16u=0; value16u_tmp=0; DLT_MSG_READ_VALUE(value16u_tmp,*ptr,*datalength,uint16_t); if((*datalength)<0) return -1; value16u=DLT_ENDIAN_GET_16(msg->standardheader->htyp, value16u_tmp); sprintf(text+strlen(text),"%hu",value16u); } break; } case DLT_TYLE_32BIT: { if (type_info & DLT_TYPE_INFO_SINT) { // value32i=0; value32i_tmp=0; DLT_MSG_READ_VALUE(value32i_tmp,*ptr,*datalength,int32_t); if((*datalength)<0) return -1; value32i=DLT_ENDIAN_GET_32(msg->standardheader->htyp, (uint32_t)value32i_tmp); sprintf(text+strlen(text),"%d",value32i); } else { // value32u=0; value32u_tmp=0; DLT_MSG_READ_VALUE(value32u_tmp,*ptr,*datalength,uint32_t); if((*datalength)<0) return -1; value32u=DLT_ENDIAN_GET_32(msg->standardheader->htyp, value32u_tmp); sprintf(text+strlen(text),"%u",value32u); } break; } case DLT_TYLE_64BIT: { if (type_info & DLT_TYPE_INFO_SINT) { // value64i=0; value64i_tmp=0; DLT_MSG_READ_VALUE(value64i_tmp,*ptr,*datalength,int64_t); if((*datalength)<0) return -1; value64i=DLT_ENDIAN_GET_64(msg->standardheader->htyp, (uint64_t)value64i_tmp); #if defined (__WIN32__) && !defined(_MSC_VER) sprintf(text+strlen(text),"%I64d",value64i); #else sprintf(text+strlen(text),"%" PRId64,value64i); #endif } else { // value64u=0; value64u_tmp=0; DLT_MSG_READ_VALUE(value64u_tmp,*ptr,*datalength,uint64_t); if((*datalength)<0) return -1; value64u=DLT_ENDIAN_GET_64(msg->standardheader->htyp, value64u_tmp); #if defined (__WIN32__) && !defined(_MSC_VER) sprintf(text+strlen(text),"%I64u",value64u); #else sprintf(text+strlen(text),"%" PRIu64,value64u); #endif } break; } case DLT_TYLE_128BIT: { if (*datalength>=16) dlt_print_hex_string(text+strlen(text),textlength,*ptr,16); if((*datalength)<16) return -1; *ptr += 16; *datalength-=16; break; } default: { return -1; } } } else if (type_info & DLT_TYPE_INFO_FLOA) { /* float data argument */ if (type_info & DLT_TYPE_INFO_VARI) { DLT_MSG_READ_VALUE(length2_tmp,*ptr,*datalength,uint16_t); if((*datalength)<0) return -1; length2=DLT_ENDIAN_GET_16(msg->standardheader->htyp, length2_tmp); DLT_MSG_READ_VALUE(length3_tmp,*ptr,*datalength,uint16_t); if((*datalength)<0) return -1; length3=DLT_ENDIAN_GET_16(msg->standardheader->htyp, length3_tmp); if((*datalength)=1) dlt_print_hex_string(text+strlen(text),textlength,*ptr,1); if((*datalength)<1) return -1; *ptr += 1; *datalength-=1; break; } case DLT_TYLE_16BIT: { if (*datalength>=2) dlt_print_hex_string(text+strlen(text),textlength,*ptr,2); if((*datalength)<2) return -1; *ptr += 2; *datalength-=2; break; } case DLT_TYLE_32BIT: { if (sizeof(float32_t)==4) { value32f=0; value32f_tmp=0; value32f_tmp_int32i=0; value32f_tmp_int32i_swaped=0; DLT_MSG_READ_VALUE(value32f_tmp,*ptr,*datalength,float32_t); if((*datalength)<0) return -1; memcpy(&value32f_tmp_int32i,&value32f_tmp,sizeof(float32_t)); value32f_tmp_int32i_swaped=DLT_ENDIAN_GET_32(msg->standardheader->htyp, (uint32_t)value32f_tmp_int32i); memcpy(&value32f,&value32f_tmp_int32i_swaped,sizeof(float32_t)); sprintf(text+strlen(text),"%g",value32f); } else { dlt_log(LOG_ERR, "Invalid size of float32_t\n"); return -1; } break; } case DLT_TYLE_64BIT: { if (sizeof(float64_t)==8) { value64f=0; value64f_tmp=0; value64f_tmp_int64i=0; value64f_tmp_int64i_swaped=0; DLT_MSG_READ_VALUE(value64f_tmp,*ptr,*datalength,float64_t); if((*datalength)<0) return -1; memcpy(&value64f_tmp_int64i,&value64f_tmp,sizeof(float64_t)); value64f_tmp_int64i_swaped=DLT_ENDIAN_GET_64(msg->standardheader->htyp, (uint64_t)value64f_tmp_int64i); memcpy(&value64f,&value64f_tmp_int64i_swaped,sizeof(float64_t)); sprintf(text+strlen(text),"%g",value64f); } else { dlt_log(LOG_ERR, "Invalid size of float64_t\n"); return -1; } break; } case DLT_TYLE_128BIT: { if (*datalength>=16) dlt_print_hex_string(text+strlen(text),textlength,*ptr,16); if((*datalength)<16) return -1; *ptr += 16; *datalength-=16; break; } default: { return -1; } } } else if (type_info & DLT_TYPE_INFO_RAWD) { /* raw data argument */ DLT_MSG_READ_VALUE(length_tmp,*ptr,*datalength,uint16_t); if((*datalength)<0) return -1; length=DLT_ENDIAN_GET_16(msg->standardheader->htyp, length_tmp); if (type_info & DLT_TYPE_INFO_VARI) { DLT_MSG_READ_VALUE(length2_tmp,*ptr,*datalength,uint16_t); if((*datalength)<0) return -1; length2=DLT_ENDIAN_GET_16(msg->standardheader->htyp, length2_tmp); if((*datalength)standardheader->htyp, length_tmp); DLT_MSG_READ_STRING((text+strlen(text)),*ptr,*datalength,length); if((*datalength)<0) return -1; } else { return -1; } if (*datalength<0) { dlt_log(LOG_ERR, "Payload of DLT message corrupted\n"); return -1; } return 0; } dlt-viewer-2.18.0+dfsg/qdlt/qdltpluginmanager.h0000664000175000017500000000461113001357026021055 0ustar potyrapotyra#ifndef QDLTPLUGINMANAGER_H #define QDLTPLUGINMANAGER_H #include "plugininterface.h" #include #include "export_rules.h" //! Manage all DLT Plugins /*! This class loads all DLT Viewer Plugins and provides access to them. */ class QDltPlugin; class QDLT_EXPORT QDltPluginManager { public: //! Constructor QDltPluginManager(); //! The number of plugins /*! \return the number of loaded plugins. */ int size() const; //! The number of plugins that are enabled /*! \return the number of loaded plugins and enabled. */ int sizeEnabled() const; //! Loads all plugins from three directories.current working sub directory /plugin /*! The three directories: - ./plugin - settingsPluginPath - /usr/share/dlt-viewer/plugins \param settingsPluginPath Full path name. */ void loadPlugins(const QString &settingsPluginPath); //! Loads the configuration of the plugin with the pluginName /*! \param pluginName The name of the plugin to load the configuration. \param filename The file to be loaded. */ void loadConfig(QString pluginName,QString filename); //! Decode message by decoding through all loaded an activated decoder plugins /*! \param msg The message to be decoded. */ void decodeMsg(QDltMsg &msg,int triggeredByUser); //! Get the list of pointers to all loaded plugins QList getPlugins() { return plugins; } //! Get the list of pointers to all enabled decoder plugins QList getDecoderPlugins(); //! Get the list of pointers to all enabled viewer plugins QList getViewerPlugins(); //! Find a plugin with the specific name /*! \param name The name of the plugin to be searched for. \return pinter to plugin or zero if no plugin with the name is found */ QDltPlugin* findPlugin(QString &name); //control plugin interface bool stateChanged(int index, QDltConnection::QDltConnectionState connectionState, QString hostname); bool autoscrollStateChanged(bool enabled); bool initControl(QDltControl *control); bool initConnections(QStringList list); private: //! The list of pointers to all loaded plugins QList plugins; //! Loads all plugins from a special directory void loadPluginsPath(QDir &dir); }; #endif // QDLTPLUGINMANAGER_H dlt-viewer-2.18.0+dfsg/qdlt/qdlt.h0000775000175000017500000000211313001357026016301 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef QDLT_H #define QDLT_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #endif // QDLT_H dlt-viewer-2.18.0+dfsg/qdlt/qdltfilterlist.cpp0000664000175000017500000001547713001357026020754 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdltfilterlist.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include #include "qdlt.h" extern "C" { #include "dlt_common.h" } QDltFilterList::QDltFilterList() { } QDltFilterList::QDltFilterList(const QDltFilterList &other) { *this = other; } QDltFilterList::~QDltFilterList() { clearFilter(); } QDltFilterList& QDltFilterList::operator= (QDltFilterList const& _filterList) { QDltFilter *filter_source,*filter_copy; clearFilter(); for(int numfilter=0;numfilter<_filterList.filters.size();numfilter++) { filter_copy = new QDltFilter(); filter_source = _filterList.filters[numfilter]; *filter_copy = *filter_source; filters.append(filter_copy); } updateSortedFilter(); return *this; } void QDltFilterList::clearFilter() { QDltFilter *filter; for(int numfilter=0;numfilterapid << _filter->ctid; } QColor QDltFilterList::checkMarker(QDltMsg &msg) { QDltFilter *filter; QColor color; for(int numfilter=0;numfiltermatch(msg)) { color = filter->filterColour; break; } } return color; } bool QDltFilterList::checkFilter(QDltMsg &msg) { QDltFilter *filter; bool found = false; bool filterActivated = false; /* If there are no positive filters, or all positive filters * are disabled, the default case is to show all messages. Only * negative filters will be applied */ if(pfilters.size()) filterActivated = true; if(filterActivated==false) found = true; else found = false; for(int numfilter=0;numfiltermatch(msg); if (found) break; } if (found || filterActivated==false ){ //we need only to check for negative filters, if the message would be shown! If discarded anyway, there is no need to apply it. //if positive filter applied -> check for negative filters //if no positive filters are active or no one exists, we need also to filter negatively // if the message has been discarded by all positive filters before, we do not need to filter it away a second time for(int numfilter=0;numfiltermatch(msg)) { // a negative filter has matched -> found = false found = false; break; } } } return found; } bool QDltFilterList::SaveFilter(QString _filename) { QFile file(_filename); if (!file.open(QFile::WriteOnly | QFile::Truncate | QFile::Text)) { QMessageBox::critical(0, QString("DLT Viewer"),QString("Save DLT Filter file failed!")); return false; } filename = _filename; QXmlStreamWriter xml(&file); xml.setAutoFormatting(true); xml.writeStartDocument(); xml.writeStartElement("dltfilter"); /* Write Filter */ for(int num = 0; num < filters.size(); num++) { QDltFilter *filter = filters[num]; xml.writeStartElement("filter"); filter->SaveFilterItem(xml); xml.writeEndElement(); // filter } xml.writeEndElement(); // dltfilter xml.writeEndDocument(); file.close(); return true; } QByteArray QDltFilterList::createMD5() { QByteArray data; QXmlStreamWriter xml(&data); xml.setAutoFormatting(true); xml.writeStartDocument(); xml.writeStartElement("dltfilter"); /* Write Filter */ for(int num = 0; num < filters.size(); num++) { QDltFilter *filter = filters[num]; xml.writeStartElement("filter"); filter->SaveFilterItem(xml); xml.writeEndElement(); // filter } xml.writeEndElement(); // dltfilter xml.writeEndDocument(); return QCryptographicHash::hash(data, QCryptographicHash::Md5); } bool QDltFilterList::LoadFilter(QString _filename, bool replace){ QFile file(_filename); if (!file.open(QFile::ReadOnly | QFile::Text)) { QMessageBox::critical(0, QString("DLT Viewer"),QString("Loading DLT Filter file failed!")); return false; } filename = _filename; QDltFilter filter; if(replace) filters.clear(); QXmlStreamReader xml(&file); while (!xml.atEnd()) { xml.readNext(); if(xml.isStartElement()) { if(xml.name() == QString("filter")) { filter.clear(); } filter.LoadFilterItem(xml); } if(xml.isEndElement()) { if(xml.name() == QString("filter")) { QDltFilter *filter_new = new QDltFilter(); *filter_new = filter; filters.append(filter_new); } } } if (xml.hasError()) { QMessageBox::warning(0, QString("XML Parser error"), xml.errorString()); } file.close(); /* update sorted filter list immediately after loading new filter */ updateSortedFilter(); return true; } void QDltFilterList::updateSortedFilter() { mfilters.clear(); pfilters.clear(); nfilters.clear(); QDltFilter *filter; for(int numfilter=0;numfilterisMarker() && filter->enableFilter) { /* add to marker list */ mfilters.append(filter); } if(filter->isPositive() && filter->enableFilter) { /* add to positive list */ pfilters.append(filter); } if(filter->isNegative() && filter->enableFilter) { /* add to negative list */ nfilters.append(filter); } } } dlt-viewer-2.18.0+dfsg/qdlt/qdltconnection.h0000664000175000017500000000305613001357026020365 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef QDLT_CONNECTION_H #define QDLT_CONNECTION_H #include #include #include #include #include #include #include #include "export_rules.h" class QDLT_EXPORT QDltConnection { public: //! The possible DLT connection states of an ECU enum QDltConnectionState{QDltConnectionOffline=0, QDltConnectionConnecting, QDltConnectionOnline, QDltConnectionError}; QDltConnection(); ~QDltConnection(); void setSendSerialHeader(bool _sendSerialHeader); bool getSendSerialHeader() const; void setSyncSerialHeader(bool _syncSerialHeader); bool getSyncSerialHeader() const; bool parse(QDltMsg &msg); void clear(); void add(const QByteArray &bytes); QByteArray data; unsigned long bytesReceived; unsigned long bytesError; unsigned long syncFound; protected: bool sendSerialHeader; bool syncSerialHeader; }; #endif // QDLT_CONNECTION_H dlt-viewer-2.18.0+dfsg/qdlt/qdltsegmentedmsg.h0000664000175000017500000000577513001357026020722 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdltsegmentedmsg.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef QDLTSEGMENTEDMSG_H #define QDLTSEGMENTEDMSG_H #include "export_rules.h" #include #include //! Combine segmented network messages /*! This class combines several segmented network message to a single message */ class QDLT_EXPORT QDltSegmentedMsg { public: //! Constructor. /*! Initialise all parameters. */ QDltSegmentedMsg(); //! Current state of reassemble typedef enum { DltSegStart, DltSegChunk, DltSegError, DltSegFinish } DltSegState; //! Add message to segmented message. The handle must match the segmented message. /*! \param msg A segment of the segmented network message. The handle must match. \return unequal zero if there was an error */ int add(QDltMsg &msg); //! Get handle of network message /*! \return handle of network message */ uint32_t getHandle() { return handle; } //! Check if the message is now complete. /*! \return true if message is complete */ uint32_t getSize() { return size; } //! Get the number of chunks. /*! \return number of chunks */ uint32_t getChunks() { return chunks; } //! Get size of a single chunk /*! \return size in bytes */ uint32_t getChunksSize() { return chunkSize; } //! Get the header of the complete message. /*! \return header data */ QByteArray getHeader() { return header; } //! Get the payload of the complete message /*! \return payload data */ QByteArray getPayload() { return payload; } //! Check if the message is now complete. /*! \return true if message is complete */ bool complete() { return (state == DltSegFinish); } //! Get error string of last failed function call /*! \return error message */ QString getError() { return error; } private: //! The handle of the network message uint32_t handle; //! The complete size uint32_t size; /* complete size of the message */ //! The number of chunks uint32_t chunks; //! The chunk size uint32_t chunkSize; //! The header data QByteArray header; //! The payload data QByteArray payload; //! The number of already received chunks uint32_t chunksAdded; //! The current state. DltSegState state; //! The last error string. QString error; }; #endif // QDLTSEGMENTEDMSG_H dlt-viewer-2.18.0+dfsg/qdlt/qdltmsg.h0000664000175000017500000004035513001357026017017 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef QDLT_MSG_H #define QDLT_MSG_H #include #include #include #include #include #include #include #include "export_rules.h" //! Access to a DLT message. /*! This class provide access to a single DLT message from a DLT log file. This class is currently not thread safe. */ class QDLT_EXPORT QDltMsg : public QDlt { public: //! Constructor. /*! This call clears all variables of the argument. */ QDltMsg(); //! Destructor. /*! */ ~QDltMsg(); //! The type of the DLT message. typedef enum { DltTypeUnknown = -2, DltTypeLog = 0,DltTypeAppTrace,DltTypeNwTrace,DltTypeControl } DltTypeDef; //! The subtype of the DLT message, if type is DltTypeLog. typedef enum { DltLogUnknown = -2, DltLogDefault = -1, DltLogOff = 0, DltLogFatal, DltLogError, DltLogWarn, DltLogInfo, DltLogDebug, DltLogVerbose } DltLogDef; //! The subtype of the DLT message, if type is DltTypeAppTrace. typedef enum { DltTraceUnknown = -2, DltTraceVariable = 1, DltTraceFunctionIn, DltTraceFunctionOut, DltTraceState, DltTraceVfb } DltTraceDef; //! The subtype of the DLT message, if type is DltTypeNwTrace. typedef enum { DltNetworkTraceUnknown = -2, DltNetworkTraceIpc = 1, DltNetworkTraceCan, DltNetworkTraceFlexray, DltNetworkTraceMost } DltNetworkTraceDef; //! The subtype of the DLT message, if type is DltTypeControl. typedef enum { DltControlUnknwon = -2, DltControlRequest = 1, DltControlResponse, DltControlTime } DltControlDef; //! The verbose mode of the message. typedef enum { DltModeUnknown = -2, DltModeNonVerbose = 0, DltModeVerbose = 1 } DltModeDef; //! Get the time of the DLT message, when the DLT message is logged. /*! \return The time when the DLT message is logged. */ time_t getTime() const { return time; } //! Set the time of the DLT message, when the DLT message is logged. /*! \param _time The time when the DLT message is logged. */ void setTime(unsigned int _time) { time = _time; } //! Get the time of the message as a formatted string. /*! \return QString representing the time of the message. */ QString getTimeString() const; //! Get the time of the message based on the gmtime with offset as string. /*! \param utcOffsetInSeconds Offset in seconds added to gmtime. \param dst Daylight saving time - if true, adding automatically 3600 seconds on top. \return QString representing the the time of the message for specific time zone. */ QString getGmTimeWithOffsetString(qlonglong utcOffsetInSeconds, bool dst); //! Get the time, microseconds part, of the DLT message, when the DLT message is logged. /*! \return The microseconds when the DLT message is logged. */ unsigned int getMicroseconds() const { return microseconds; } //! Set the time, microseconds part, of the DLT message, when the DLT message is logged. /*! \param _microseconds The microseconds when the DLT message is logged. */ void setMicroseconds(unsigned int _microseconds) { microseconds = _microseconds; } //! Get the uptime of the DLT message, when the DLT message is generated. /*! \return The uptime when the DLT message is generated. */ unsigned int getTimestamp() const { return timestamp; } //! Get the uptime of the DLT message, when the DLT message is generated. /*! \param _timestamp The uptime when the DLT message is generated. */ void setTimestamp(unsigned int _timestamp) { timestamp = _timestamp; } //! Get the session id of the DLT message. /*! \return The session id of the DLT message. */ unsigned int getSessionid() const { return sessionid; } //! Set the session id of the DLT message. /*! \param _sessionid The session id of the DLT message. */ void setSessionid(unsigned int _sessionid) { sessionid = _sessionid; } //! Get the session name of the DLT message. /*! \return The session name of the DLT message. */ QString getSessionName() const { return sessionName; } //! Set the session name of the DLT message. /*! \param sessionName The session name of the DLT message. */ void setSessionName(QString sessionName) { this->sessionName = sessionName; } //! Get the message counter of the DLT message. /*! The message counter is increased by one for each message of a context. \return The message counter. */ unsigned char getMessageCounter() const { return messageCounter; } //! Set the message counter of the DLT message. /*! The message counter is increased by one for each message of a context. \param _messageCounter The message counter. */ void setMessageCounter(unsigned char _messageCounter) { messageCounter = _messageCounter; } //! Get the ecu id of the DLT message. /*! \return The ecu id of the DLT message. */ QString getEcuid() const { return ecuid; } //! Set the ecu id of the DLT message. /*! \param _ecuid The ecu id of the DLT message. */ void setEcuid(QString _ecuid) { ecuid = _ecuid; } //! Get the application id of the DLT message. /*! \return The application id. */ QString getApid() const { return apid; } //! Set the application id of the DLT message. /*! \param id The application id. */ void setApid(QString id) { apid = id; } //! Get the context id of the DLT message. /*! \return The contex id. */ QString getCtid() const { return ctid; } //! Set the context id of the DLT message. /*! \param id The context id. */ void setCtid(QString id) { ctid = id; } //! Get the type of the DLT message. /*! Depending on the type the subtype has different values. \sa DltTypeDef \return The type of the DLT message. */ DltTypeDef getType() const { return type; } //! Set the type of the DLT message. /*! Depending on the type the subtype has different values. \sa DltTypeDef \param _type The type of the DLT message. */ void setType(DltTypeDef _type) { type = _type; } //! Get the text of the type of the DLT message. /*! \return The text of the type. */ QString getTypeString() const; //! Get the endianness of the DLT message. /*! \sa DltEndiannessDef \return The endianness of the DLT message. */ DltEndiannessDef getEndianness() const { return endianness; } //! Set the endianness of the DLT message. /*! \sa DltEndiannessDef \param _endianness The endianness of the DLT message. */ void setEndianness(DltEndiannessDef _endianness) { endianness = _endianness; } //! Get the text of the endianness of the DLT message. /*! \return The text of endianness of the DLT message. */ QString getEndiannessString() const; //! Get the subtype of the DLT message. /*! The subtype depends on the type. \sa DltLogDef \sa DltTraceDef \sa DltNetworkTraceDef \sa DltControlDef \return The subtype of the DLT message. */ int getSubtype() const { return subtype; } //! Set the subtype of the DLT message. /*! The subtype depends on the type. \param _subtype The subtype of the DLT message. */ void setSubtype(unsigned char _subtype) { subtype = _subtype; } //! Get the text of the subtype. /*! \return The text of the subtype. */ QString getSubtypeString() const; //! Get the mode (verbose or non-verbose) of the DLT message. /*! Non-verbose messages contains not all valid variables. DLT Ctrl messages are also in non-verbose mode. \return The mode of the DLT message. */ DltModeDef getMode() const { return mode; } //! Set the mode (verbose or non-verbose) of the DLT message. /*! Non-verbose messages contains not all valid variables. DLT Ctrl messages are also in non-verbose mode. \param _mode The mode of the DLT message. */ void setMode(DltModeDef _mode) { mode = _mode; } //! Get the text of the mode (verbose or non-verbose). /*! \return The text of the mode. */ QString getModeString() const; //! Get the number of arguments of the DLT message. /*! This is the number of arguments from the DLT message header. This is not the number of arguments in the argument list. In verbose mode both values should be the same, if the extraction of the arguments from the payload was succesfull. In non-verbose mode this value can be invalid. \return The number of arguments. */ unsigned char getNumberOfArguments() const { return numberOfArguments; } //! Set the number of arguments in the payload. /*! The number of arguments and the size of the argument list must not be the same. E.g. if a non-verbose message is decoded these two parameters are different. \param noargs The number of arguments in the payload. */ void setNumberOfArguments(unsigned char noargs) { numberOfArguments = noargs; } //! Get the complete header of the DLT message. /*! \return Byte Array containing the complete header of the DLT message. */ QByteArray getHeader() const { return header; } //! Get the size of the header. /*! This value is even set, if the data was to small, but the header was read. \return Byte Array containing the complete payload of the DLT message. */ int getHeaderSize() const { return headerSize; } //! Get the complete payload of the DLT message. /*! \return Byte Array containing the complete payload of the DLT message. */ QByteArray getPayload() const { return payload; } //! Get the size of the payload. /*! This value is even set, if the data was to small, but the header was read. \return Byte Array containing the complete payload of the DLT message. */ int getPayloadSize() const { return payloadSize; } //! Get the the message id of non-verbose DLT message. /*! This value is only useful, if the DLT message is a non-verbose message and non DLT control message. \return The message id of non-verbose message. */ unsigned int getMessageId() const { return messageId; } //! Get the the service id of ctrl DLT message. /*! This value is only useful, if the DLT message is a ctrl message. \return The service id of a ctrl message. */ unsigned int getCtrlServiceId() const; //! Get the the service id string of ctrl DLT message. /*! This value is only useful, if the DLT message is a ctrl message. \return The service id string of a ctrl message. */ QString getCtrlServiceIdString() const; //! Get the the ctrl return type of ctrl DLT response message. /*! This value is only useful, if the DLT message is a ctrl response message. \return The return type of a ctrl message. */ unsigned char getCtrlReturnType() const; //! Get the the return type string of ctrl DLT response message. /*! This value is only useful, if the DLT message is a ctrl response message. \return The return type string of a ctrl message. */ QString getCtrlReturnTypeString() const; //! Get argument size. /*! Get the number of arguments in the argument list. This could be a different size of number of arguments, especially in the non verbose mode. \return number of arguments in the argument list. */ int sizeArguments() const; //! Clear the list of arguments. /*! Clear the list of arguments. The number of arguments value is not changed. */ void clearArguments(); //! Get one of the arguments from the DLT message. /*! This is only possible if DLT message is in verbose mode or the DLT message is converted into verbose mode. \param Index the number of the argument starting by zero. \return True if the operation was successful, false if there was an error. */ bool getArgument(int index,QDltArgument &argument) const; //! Add an argument to the argument list. /*! \param argument the argument to be added. \param index position where argument is added, -1 if added to end of list. */ void addArgument(QDltArgument argument, int index = -1); //! Remove an argument. /*! \param index position where argument is removed. */ void removeArgument(int index); //! Set the message provided by a byte array containing the DLT message. /*! The message must start at the beginning of the byte array, but the byte array can be bigger than the message itself. On success the header and the payload is copied to the corresponding buffers. If it fails, but at least the header can be read, the payload size can be retrieved, which is perhaps wrong. This function returns false, if an error in the decoded message was found. \param buf the buffer containing the DLT messages. \param withSH message to be parsed contains storage header, default true. \return True if the operation was successful, false if there was an error. */ bool setMsg(QByteArray buf,bool withStorageHeader = true); //! Get the message written into a byte array containing the DLT message. /*! This function returns false, if an error in the data was found. \param buf the buffer containing the DLT messages. \param withStorageHeader message contains storage header, default true. \return True if the operation was successful, false if there was an error. */ bool getMsg(QByteArray &buf,bool withStorageHeader = true); //! Clears all variables of the message. void clear(); //! Print Header into a string. /*! \return The header string. */ QString toStringHeader() const; //! Print Payload content into a string. /*! \return The payload string. */ QString toStringPayload() const; protected: private: //! The header parameter ECU Id. QString ecuid; //! The header parameter application Id. QString apid; //! The header parameter context Id. QString ctid; //! The header parameter type of the message. DltTypeDef type; //! The header parameter subtype of the message, depends on type. int subtype; /* depends on type */ //! The verbose or non-verbose mode of the message. DltModeDef mode; //! The endianness of the payload of the message. DltEndiannessDef endianness; //! The time, seconds part, of the message generated by the logger. time_t time; //! The time, microseconds part, of the message generated by the logger. unsigned int microseconds; //! The timestamp generated by the ECU. unsigned int timestamp; //! The session id of the DLT message. unsigned int sessionid; //! The session name of the DLT message. QString sessionName; //! The message counter of a context. unsigned char messageCounter; //! The number of arguments of the DLT message. unsigned char numberOfArguments; //! The complete header of the DLT message. QByteArray header; int headerSize; //! The complete payload of the DLT message. QByteArray payload; int payloadSize; //! The message id if this is a non-verbose message and no control message. unsigned int messageId; //! The service id if the message is a ctrl message. unsigned int ctrlServiceId; //! The return type if the message is a ctrl response message. unsigned char ctrlReturnType; //! List of arguments of the DLT message. QList arguments; }; #endif // QDLT_MSG_H dlt-viewer-2.18.0+dfsg/qdlt/qdltfilterindex.h0000664000175000017500000000275613001357026020551 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdltfilterindex.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef QDLT_FILTER_INDEX_H #define QDLT_FILTER_INDEX_H #include #include #include #include #include #include #include #include "export_rules.h" class QDLT_EXPORT QDltFilterIndex { public: QString dltFileName; int allIndexSize; QDltFilterList filterList; //! Index of all DLT messages matching filter. /*! Index contains positions of DLT messages in indexAll. */ QVector indexFilter; //! Set the filter index cache. /*! */ void setIndexFilter(QVector _indexFilter); //! Set filename for plausibility check. /*! */ void setDltFileName(QString _dltFileName); //! Set the dlt file messages size for plausibility check. /*! */ void setAllIndexSize(int _allIndexSize); protected: private: }; #endif // QDLT_FILTER_INDEX_H dlt-viewer-2.18.0+dfsg/qdlt/qdltcontrol.h0000664000175000017500000000357213001357026017711 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef QDLT_CONTROL_H #define QDLT_CONTROL_H #include #include #include #include #include #include #include #include "export_rules.h" class QDLT_EXPORT QDltControl : public QObject { Q_OBJECT public: QDltControl(QObject *server); ~QDltControl(); void sendInjection(int index,QString applicationId,QString contextId,int serviceId,QByteArray data); void jumpToMsg(int index); void newFile(QString filename); void openFile(QStringList filenames); void saveAsFile(QString filename); void reopenFile(); void clearFile(); void quitDltViewer(); void marker(); void connectEcu(int index); void disconnectEcu(int index); signals: void sendInjectionSignal(int index,QString applicationId,QString contextId,int serviceId,QByteArray data); void jumpToMsgSignal(int index); void newFileSignal(QString filename); void openFileSignal(QStringList filenames); void saveAsFileSignal(QString filename); void clearFileSignal(); void quitDltViewerSignal(); void markerSignal(); void connectEcuSignal(int index); void disconnectEcuSignal(int index); void reopenFileSignal(); protected: private: QObject *server; }; #endif // QDLT_CONTROL_H dlt-viewer-2.18.0+dfsg/qdlt/qdltfilter.cpp0000664000175000017500000002330413001357026020044 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "qdlt.h" extern "C" { #include "dlt_common.h" } QDltFilter::QDltFilter() { clear(); } QDltFilter::~QDltFilter() { } QDltFilter& QDltFilter::operator= (QDltFilter const& _filter) { type = _filter.type; name = _filter.name; ecuid = _filter.ecuid; apid = _filter.apid; ctid = _filter.ctid; header = _filter.header; payload = _filter.payload; enableRegexp_Context = _filter.enableRegexp_Context; enableRegexp_Header = _filter.enableRegexp_Header; enableRegexp_Payload = _filter.enableRegexp_Payload; ignoreCase_Header = _filter.ignoreCase_Header; ignoreCase_Payload = _filter.ignoreCase_Payload; enableFilter = _filter.enableFilter; enableEcuid = _filter.enableEcuid; enableApid = _filter.enableApid; enableCtid = _filter.enableCtid; enableHeader = _filter.enableHeader; enablePayload = _filter.enablePayload; enableCtrlMsgs = _filter.enableCtrlMsgs; enableLogLevelMax = _filter.enableLogLevelMax; enableLogLevelMin = _filter.enableLogLevelMin; enableMarker = _filter.enableMarker; filterColour = _filter.filterColour; logLevelMax = _filter.logLevelMax; logLevelMin = _filter.logLevelMin; // generated from header and payload string headerRegexp = _filter.headerRegexp; payloadRegexp = _filter.payloadRegexp; contextRegexp = _filter.contextRegexp; return *this; } void QDltFilter::clear() { type = QDltFilter::positive; name = "New Filter"; ecuid.clear(); apid.clear(); ctid.clear(); header.clear(); payload.clear(); enableRegexp_Context = false; enableRegexp_Header = false; enableRegexp_Payload = false; ignoreCase_Header = false; ignoreCase_Payload = false; enableFilter = false; enableEcuid = false; enableApid = false; enableCtid = false; enableHeader = false; enablePayload = false; enableCtrlMsgs = false; enableLogLevelMax = false; enableLogLevelMin = false; enableMarker = false; filterColour = QColor(); logLevelMax = 6; logLevelMin = 0; } bool QDltFilter::isMarker() const { return ( type == QDltFilter::marker || enableMarker ); } bool QDltFilter::isPositive() const { return ( type == QDltFilter::positive ); } bool QDltFilter::isNegative() const { return ( type == QDltFilter::negative ); } bool QDltFilter::compileRegexps() { headerRegexp.setPattern(header); payloadRegexp.setPattern(payload); contextRegexp.setPattern(ctid); headerRegexp.setCaseSensitivity(ignoreCase_Header?Qt::CaseInsensitive:Qt::CaseSensitive); payloadRegexp.setCaseSensitivity(ignoreCase_Payload?Qt::CaseInsensitive:Qt::CaseSensitive); return (headerRegexp.isValid() && payloadRegexp.isValid() && contextRegexp.isValid()); } bool QDltFilter::match(QDltMsg &msg) const { if(enableEcuid && (msg.getEcuid() != ecuid)) { return false; } if(enableApid && (msg.getApid() != apid)) { return false; } if(enableRegexp_Context) { if(enableCtid && contextRegexp.indexIn(msg.getCtid()) < 0) { return false; } } else { if(enableCtid && !(msg.getCtid().contains(ctid))) { return false; } } if(enableRegexp_Header) { if(enableHeader && headerRegexp.indexIn(msg.toStringHeader()) < 0) { return false; } } else { if(enableHeader && !(msg.toStringHeader().contains(header,ignoreCase_Header?Qt::CaseInsensitive:Qt::CaseSensitive))) { return false; } } if(enableRegexp_Payload) { if(enablePayload && payloadRegexp.indexIn(msg.toStringPayload()) < 0) { return false; } } else { if(enablePayload && !(msg.toStringPayload().contains(payload,ignoreCase_Payload?Qt::CaseInsensitive:Qt::CaseSensitive))) { return false; } } if(enableCtrlMsgs && !((msg.getType() == QDltMsg::DltTypeControl))) { return false; } if(enableLogLevelMax && !((msg.getType() == QDltMsg::DltTypeLog) && (msg.getSubtype() <= logLevelMax))) { return false; } if(enableLogLevelMin && !((msg.getType() == QDltMsg::DltTypeLog) && (msg.getSubtype() >= logLevelMin))) { return false; } return true; } void QDltFilter::LoadFilterItem(QXmlStreamReader &xml) { if(xml.name() == QString("type")) { type = (QDltFilter::FilterType)(xml.readElementText().toInt()); } if(xml.name() == QString("name")) { name = xml.readElementText(); } if(xml.name() == QString("ecuid")) { ecuid = xml.readElementText(); } if(xml.name() == QString("applicationid")) { apid = xml.readElementText(); } if(xml.name() == QString("contextid")) { ctid = xml.readElementText(); } if(xml.name() == QString("headertext")) { header = xml.readElementText(); } if(xml.name() == QString("payloadtext")) { payload = xml.readElementText(); } if(xml.name() == QString("enableregexp")) //legacy { enableRegexp_Context = xml.readElementText().toInt(); enableRegexp_Header = xml.readElementText().toInt(); } if(xml.name() == QString("enableregexp_Context")) { enableRegexp_Context = xml.readElementText().toInt(); } if(xml.name() == QString("enableregexp_Header")) { enableRegexp_Header = xml.readElementText().toInt(); } if(xml.name() == QString("enableregexp_Payload")) { enableRegexp_Payload = xml.readElementText().toInt(); } if(xml.name() == QString("ignoreCase_Header")) { ignoreCase_Header = xml.readElementText().toInt(); } if(xml.name() == QString("ignoreCase_Payload")) { ignoreCase_Payload = xml.readElementText().toInt(); } if(xml.name() == QString("enablefilter")) { enableFilter = xml.readElementText().toInt(); } if(xml.name() == QString("enableecuid")) { enableEcuid = xml.readElementText().toInt(); } if(xml.name() == QString("enableapplicationid")) { enableApid = xml.readElementText().toInt();; } if(xml.name() == QString("enablecontextid")) { enableCtid = xml.readElementText().toInt();; } if(xml.name() == QString("enableheadertext")) { enableHeader = xml.readElementText().toInt();; } if(xml.name() == QString("enablepayloadtext")) { enablePayload = xml.readElementText().toInt();; } if(xml.name() == QString("enablectrlmsgs")) { enableCtrlMsgs = xml.readElementText().toInt();; } if(xml.name() == QString("enableLogLevelMax")) { enableLogLevelMax = xml.readElementText().toInt();; } if(xml.name() == QString("enableLogLevelMin")) { enableLogLevelMin = xml.readElementText().toInt();; } if(xml.name() == QString("enableMarker")) { enableMarker = xml.readElementText().toInt();; } if(xml.name() == QString("filterColour")) { filterColour = QColor(xml.readElementText()); } if(xml.name() == QString("logLevelMax")) { logLevelMax = xml.readElementText().toInt();; } if(xml.name() == QString("logLevelMin")) { logLevelMin = xml.readElementText().toInt();; } } void QDltFilter::SaveFilterItem(QXmlStreamWriter &xml) { xml.writeTextElement("type",QString("%1").arg((int)(type))); xml.writeTextElement("name",name); xml.writeTextElement("ecuid",ecuid); xml.writeTextElement("applicationid",apid); xml.writeTextElement("contextid",ctid); xml.writeTextElement("headertext",header); xml.writeTextElement("payloadtext",payload); xml.writeTextElement("enableregexp_Context",QString("%1").arg(enableRegexp_Context)); xml.writeTextElement("enableregexp_Header",QString("%1").arg(enableRegexp_Header)); xml.writeTextElement("enableregexp_Payload",QString("%1").arg(enableRegexp_Payload)); xml.writeTextElement("ignoreCase_Header",QString("%1").arg(ignoreCase_Header)); xml.writeTextElement("ignoreCase_Payload",QString("%1").arg(ignoreCase_Payload)); xml.writeTextElement("enablefilter",QString("%1").arg(enableFilter)); xml.writeTextElement("enableecuid",QString("%1").arg(enableEcuid)); xml.writeTextElement("enableapplicationid",QString("%1").arg(enableApid)); xml.writeTextElement("enablecontextid",QString("%1").arg(enableCtid)); xml.writeTextElement("enableheadertext",QString("%1").arg(enableHeader)); xml.writeTextElement("enablepayloadtext",QString("%1").arg(enablePayload)); xml.writeTextElement("enablectrlmsgs",QString("%1").arg(enableCtrlMsgs)); xml.writeTextElement("enableLogLevelMin",QString("%1").arg(enableLogLevelMin)); xml.writeTextElement("enableLogLevelMax",QString("%1").arg(enableLogLevelMax)); xml.writeTextElement("enableMarker",QString("%1").arg(enableMarker)); xml.writeTextElement("filterColour",filterColour.name()); xml.writeTextElement("logLevelMax",QString("%1").arg(logLevelMax)); xml.writeTextElement("logLevelMin",QString("%1").arg(logLevelMin)); } dlt-viewer-2.18.0+dfsg/qdlt/dlt_common_cfg.h0000664000175000017500000001150713001357026020313 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file dlt_common_cfg.h * For further information see http://www.genivi.org/. * @licence end@ */ /******************************************************************************* ** ** ** SRC-MODULE: dlt_common_cfg.h ** ** ** ** TARGET : linux ** ** ** ** PROJECT : DLT ** ** ** ** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** ** Markus Klein ** ** ** ** PURPOSE : ** ** ** ** REMARKS : ** ** ** ** PLATFORM DEPENDANT [yes/no]: yes ** ** ** ** TO BE CHANGED BY USER [yes/no]: no ** ** ** *******************************************************************************/ /******************************************************************************* ** Author Identity ** ******************************************************************************** ** ** ** Initials Name Company ** ** -------- ------------------------- ---------------------------------- ** ** aw Alexander Wenzel BMW ** ** mk Markus Klein Fraunhofer ESK ** *******************************************************************************/ /******************************************************************************* ** Author Identity ** ******************************************************************************** ** ** ** Initials Name Company ** ** -------- ------------------------- ---------------------------------- ** ** aw Alexander Wenzel BMW ** ** mk Markus Klein Fraunhofer ESK ** *******************************************************************************/ #ifndef DLT_COMMON_CFG_H #define DLT_COMMON_CFG_H /*************/ /* Changable */ /*************/ /* Buffer length for temporary buffer */ #define DLT_COMMON_BUFFER_LENGTH 255 /* Number of ASCII chars to be printed in one line as HEX and as ASCII */ /* e.g. XX XX XX XX ABCD is DLT_COMMON_HEX_CHARS = 4 */ #define DLT_COMMON_HEX_CHARS 16 /* Length of line number */ #define DLT_COMMON_HEX_LINELEN 8 /* Length of one char */ #define DLT_COMMON_CHARLEN 1 /* Number of indices to be allocated at one, if no more indices are left */ #define DLT_COMMON_INDEX_ALLOC 1000 /* If limited output is called, this is the maximum number of characters to be printed out */ #define DLT_COMMON_ASCII_LIMIT_MAX_CHARS 20 /* This defines the dummy ECU ID set in storage header during import of a message from a DLT file in RAW format (without storage header) */ #define DLT_COMMON_DUMMY_ECUID "ECU" /************************/ /* Don't change please! */ /************************/ /* ASCII value for space */ #define DLT_COMMON_ASCII_CHAR_SPACE 32 /* ASCII value for tilde */ #define DLT_COMMON_ASCII_CHAR_TILDE 126 /* ASCII value for lesser than */ #define DLT_COMMON_ASCII_CHAR_LT 60 #endif /* DLT_COMMON_CFG_H */ dlt-viewer-2.18.0+dfsg/qdlt/qdltconnection.cpp0000664000175000017500000001032013001357026020710 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "qdlt.h" extern "C" { #include "dlt_common.h" } QDltConnection::QDltConnection() { sendSerialHeader = false; syncSerialHeader = false; clear(); } QDltConnection::~QDltConnection() { } void QDltConnection::setSendSerialHeader(bool _sendSerialHeader) { sendSerialHeader = _sendSerialHeader; } bool QDltConnection::getSendSerialHeader() const { return sendSerialHeader; } void QDltConnection::setSyncSerialHeader(bool _syncSerialHeader) { syncSerialHeader = _syncSerialHeader; } bool QDltConnection::getSyncSerialHeader() const { return syncSerialHeader; } void QDltConnection::clear() { data.clear(); bytesReceived = 0; bytesError = 0; syncFound = 0; } void QDltConnection::add(const QByteArray &bytes) { bytesReceived += bytes.size(); data += bytes; } bool QDltConnection::parse(QDltMsg &msg) { /* if sync to serial header search for header */ int found = 0; int firstPos = 0; int secondPos = 0; char lastFound = 0; /* Use primitive buffer for faster access */ int cbuf_sz = data.size(); const char *cbuf = data.constData(); /* find marker in buffer */ for(int num=0;num4) /* errors found */ bytesError += firstPos-4; return true; } } if(firstPos>4) /* errors found */ bytesError += firstPos-4; /* try to read msg */ if(!msg.setMsg(data.mid(firstPos),false)) { /* no complete msg found */ /* perhaps not completely received */ /* check valid size */ if(data.size()>DLT_MAX_MESSAGE_LEN) { /* size exceeds max DLT message size */ /* clear buffer */ /* errors found */ bytesError += data.size(); data.clear(); } return false; } /* msg read successful */ data.remove(0,firstPos+msg.getHeaderSize()+msg.getPayloadSize()); return true; } dlt-viewer-2.18.0+dfsg/qdlt/qdltcontrol.cpp0000664000175000017500000000557613001357026020252 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "qdlt.h" extern "C" { #include "dlt_common.h" } QDltControl::QDltControl(QObject *_server) { server = _server; connect(this, SIGNAL(sendInjectionSignal(int,QString,QString,int,QByteArray)), server, SLOT(sendInjection(int,QString,QString,int,QByteArray))); connect(this, SIGNAL(jumpToMsgSignal(int)), server, SLOT(jumpToMsgSignal(int))); connect(this, SIGNAL(markerSignal()), server, SLOT(markerSignal())); connect(this, SIGNAL(connectEcuSignal(int)), server, SLOT(connectEcuSignal(int))); connect(this, SIGNAL(disconnectEcuSignal(int)), server, SLOT(disconnectEcuSignal(int))); connect(this, SIGNAL(openFileSignal(QStringList)), server, SLOT(on_Open_triggered(QStringList))); connect(this, SIGNAL(newFileSignal(QString)), server, SLOT(on_New_triggered(QString))); connect(this, SIGNAL(saveAsFileSignal(QString)), server, SLOT(on_SaveAs_triggered(QString))); connect(this, SIGNAL(clearFileSignal()), server, SLOT(on_action_menuFile_Clear_triggered())); connect(this, SIGNAL(quitDltViewerSignal()), server, SLOT(on_action_menuFile_Quit_triggered())); connect(this, SIGNAL(reopenFileSignal()), server, SLOT(reopenFileSignal())); } QDltControl::~QDltControl() { } void QDltControl::sendInjection(int index,QString applicationId,QString contextId,int serviceId,QByteArray data) { emit sendInjectionSignal(index,applicationId,contextId,serviceId,data); } void QDltControl::jumpToMsg(int index) { emit jumpToMsgSignal(index); } void QDltControl::newFile(QString filename) { emit newFileSignal(filename); } void QDltControl::openFile(QStringList filenames) { emit openFileSignal(filenames); } void QDltControl::saveAsFile(QString filename) { emit saveAsFileSignal(filename); } void QDltControl::clearFile() { emit clearFileSignal(); } void QDltControl::quitDltViewer() { emit quitDltViewerSignal(); } void QDltControl::marker() { emit markerSignal(); } void QDltControl::connectEcu(int index) { emit connectEcuSignal(index); } void QDltControl::disconnectEcu(int index) { emit disconnectEcuSignal(index); } void QDltControl::reopenFile() { emit reopenFileSignal(); } dlt-viewer-2.18.0+dfsg/qdlt/qdltfile.h0000664000175000017500000001741313001357026017147 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef QDLT_FILE_H #define QDLT_FILE_H #include #include #include #include #include #include #include #include "export_rules.h" class QDLT_EXPORT QDltFileItem { public: //! DLT log file. QFile infile; //! Index of all DLT messages. /*! Index contains positions of beginning of DLT messages in DLT log file. */ QVector indexAll; }; //! Access to a DLT log file. /*! This class provide access to DLT log file. This class is currently not thread safe. */ class QDLT_EXPORT QDltFile : public QDlt { public: //! The constructor. /*! */ QDltFile(); //! The destructor. /*! \return The name of the plugin */ ~QDltFile(); void clear(); int getNumberOfFiles() const; //! Get the number of DLT message in the DLT log file. /*! \return the number of all DLT messages in the currently opened DLT file. */ int size() const; //! Get the file size of the DLT log file. /*! \return the size of the DLT file. */ qint64 fileSize() const; //! Get the number of filtered DLT message in the DLT log file. /*! \return the number of filtered DLT messages in the currently opened DLT file. */ int sizeFilter() const; //! Open a DLT log file. /*! The DLT log file is parsed and a index of all DLT log messages is created. \param filename The DLT filename. \return true if the file is successfully opened with no error, false if an error occured. */ bool open(QString _filename,bool append = false); //! Close teh currently opened DLT log file. /*! */ void close(); //! Sets the internal index of all DLT messages. /*! \param New index list of all DLT messages */ void setDltIndex(QVector &_indexAll, int num = 0); //! Clears the internal index of all DLT messages. /*! */ void clearIndex(); //! Create an internal index of all DLT messages of the currently opened DLT log file. /*! \return true if the operation was successful, false if an error occurred. */ bool createIndex(); //! Update the index of the currently opened DLT log file by checking if new DLT messages were added to the file. /*! \return true if the operation was successful, false if an error occurred. */ bool updateIndex(); //! Create an internal index of all filtered DLT messages of the currently opened DLT log file. /*! \return true if the operation was successful, false if an error occurred. */ bool createIndexFilter(); //! Update the filtered index of the currently opened DLT log file by checking if new DLT messages were added to the file. /*! \return true if the operation was successful, false if an error occurred. */ bool updateIndexFilter(); //! Get one message of the DLT log file. /*! This function retrieves on DLT message of the log file \param index The number of the DLT message in the DLT file starting from zero. \param msg The message which contains the DLT message after the function returns. \return true if the message is valid, false if an error occurred. */ bool getMsg(int index,QDltMsg &msg) const; //! Get one DLT message of the DLT log file selected by index /*! \param index position of the DLT message in the log file up to the number DLT messages in the file \return Byte array containing the complete DLT message. */ QByteArray getMsg(int index) const; //! Get one DLT message of the filtered DLT log file selected by index /*! \param index position of the DLT message in the log file up to the number of DLT messages in the file \return Byte array containing the complete DLT message. */ QByteArray getMsgFilter(int index) const; //! Get the position in the log file of the filtered DLT log file selected by index /*! \param index position of the DLT message in the log file up to the number of DLT messages in the file \return real position in log file, -1 if invalid. */ int getMsgFilterPos(int index) const; //! Delete all filters and markers. /*! This includes all positive and negative filters and markers. */ void clearFilter(); //! Get current filter list /*! \return filter list. */ QDltFilterList getFilterList() const; //! Set current filter list /*! \param filter list. */ void setFilterList(QDltFilterList &_filterList); //! Add a filter to the filter list. /*! \param filter the filter configuration */ void addFilter(QDltFilter *filter); //! Update presorted filter list. /*! */ void updateSortedFilter(); //! Get the status of the filter. /*! \return true if filtering is enabled, false if filtering is disabled */ bool isFilter() const; //! Enable or disable filtering. /*! \return state true if filtering is enabled, false if filtering is disabled */ void enableFilter(bool state); //! Enable or disable sort by time. /*! \return state true if sort by time, false if sort by time is disabled */ void enableSortByTime(bool state); //! Check if message matches the filter. /*! \param msg The message to be checked \return true if message wil be displayed, false if message will be filtered out */ bool checkFilter(QDltMsg &msg); //! Clear the filter index. /*! */ void clearFilterIndex(); //! Add filter to the filter index. /*! \param index The position of the message in the allIndex to be added */ void addFilterIndex (int index); //! Check if message will be marked. /*! Colours used are: 1 = green 2 = red 3 = yellow 4 = blue 5 = light grey 6 = dark grey \param msg The messages to be marked \return 0 if message will not be marked, colour if message will be marked */ QColor checkMarker(QDltMsg &msg); //! Get file name of the underlying file object /*! * \return File name **/ QString getFileName(int num = 0); //! Get Index of all DLT messages matching filter /*! * \return List of file positions **/ QVector getIndexFilter() const; //! Set Index of all DLT messages matching filter /*! * \param _indexFilter List of file positions **/ void setIndexFilter(QVector _indexFilter); protected: private: //! Mutex to lock critical path for infile mutable QMutex mutexQDlt; //!all files including indexes QList files; //! Index of all DLT messages matching filter. /*! Index contains positions of DLT messages in indexAll. */ QVector indexFilter; //! This contains the list of filters. QDltFilterList filterList; //! Enabling filter. /*! true filtering is enabled. false filtering is disabled. */ bool filterFlag; //! Enabling sortByTime. /*! true sorting is enabled. false sorting is disabled. */ bool sortByTimeFlag; }; #endif // QDLT_FILE_H dlt-viewer-2.18.0+dfsg/qdlt/CMakeLists.txt0000664000175000017500000000274713001357026017736 0ustar potyrapotyra# Copyright (C) 2016, Jack S. Smith # # This file is part of GENIVI DLT-Viewer project. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # # For further information see http://www.genivi.org/. # # List of changes: # 01.Oct.2016, Jack Smith , Original Author # add_library (qdlt dlt_common.c qdltipconnection.cpp qdlttcpconnection.cpp qdltudpconnection.cpp qdltserialconnection.cpp qdltmsg.cpp qdltfilter.cpp qdltfile.cpp qdltcontrol.cpp qdltconnection.cpp qdltbase.cpp qdltargument.cpp qdltfilterlist.cpp qdltfilterindex.cpp qdltdefaultfilter.cpp qdltpluginmanager.cpp qdltplugin.cpp qdltsegmentedmsg.cpp) target_include_directories (qdlt PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../qextserialport/src ${CMAKE_CURRENT_SOURCE_DIR}/../src) target_link_libraries(qdlt Qt5::Core Qt5::Widgets Qt5::Gui Qt5::Network) #target_link_libraries(qdlt Qt5::Core Qt5::Network) install(TARGETS qdlt DESTINATION deploy) dlt-viewer-2.18.0+dfsg/qdlt/export_rules.h0000664000175000017500000000067613001357026020101 0ustar potyrapotyra#include #ifndef EXPORT_RULES_H #define EXPORT_RULES_H #if defined(QDLT_LIBRARY) # define QDLT_EXPORT Q_DECL_EXPORT # ifdef Q_OS_WIN # define QDLT_C_EXPORT __declspec(dllexport) # else # define QDLT_C_EXPORT __attribute__((visibility("default"))) # endif #else # define QDLT_EXPORT Q_DECL_IMPORT # ifdef Q_OS_WIN # define QDLT_C_EXPORT __declspec(dllimport) # else # define QDLT_C_EXPORT # endif #endif #endif // EXPORT_RULES_H dlt-viewer-2.18.0+dfsg/qdlt/qdltbase.h0000664000175000017500000000651313001357026017141 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef QDLT_BASE_H #define QDLT_BASE_H #include #include #include #include #include #include #include #include "export_rules.h" extern "C" { QDLT_C_EXPORT extern const char *qDltMessageType[]; QDLT_C_EXPORT extern const char *qDltLogInfo[]; QDLT_C_EXPORT extern const char *qDltTraceType[]; QDLT_C_EXPORT extern const char *qDltNwTraceType[]; QDLT_C_EXPORT extern const char *qDltControlType[]; QDLT_C_EXPORT extern const char *qDltMode[]; QDLT_C_EXPORT extern const char *qDltEndianness[]; QDLT_C_EXPORT extern const char *qDltTypeInfo[]; QDLT_C_EXPORT extern const char *qDltCtrlServiceId[]; QDLT_C_EXPORT extern const char *qDltCtrlReturnType[]; } #define DLT_MAX_MESSAGE_LEN 1024*64 struct sDltFile; struct sDltMessage; class QextSerialPort; class QTcpSocket; class QUdpSocket; //! Base class for all DLT classes. /*! This class contains helper functions needed for all DLT operations and classes. */ class QDLT_EXPORT QDlt { public: //! Constructor. /*! */ QDlt(); //! Destructor. /*! */ ~QDlt(); //! Byte swap some bytes. /*! \param bytes The data to be swapped \param size The number of bytes to be swapped, -1 if all bytes of teh byte array \param offset Offset in the byte array where to begin to byte swap */ bool swap(QByteArray &bytes,int size = -1, int offset = 0); //! Convert byte array to text or HTML output. /*! \param bytes The data to be converted \param withLineNumber Line numbers are added to each line \param withBinary data is output in hex format \param withAscii data is output in ASCII if possible \param blocksize Binary output in one line is grouped in blocks of bytes \param linesize Number of bytes written in one line \param toHtml true output is don in HTML, false output in text only \return The string with ASCII or html output. */ QString toAsciiTable(const QByteArray &bytes, bool withLineNumber, bool withBinary, bool withAscii, int blocksize = 8, int linesize = 16, bool toHtml = true) const; //! Convert byte array to text output. /*! \param bytes The data to be converted \param type 1 output in ASCII, 0 output in hex, 2 output in binary \param size_bytes grouping of bytes together (0xff for raw format) \return The string with ASCII output. */ QString toAscii(const QByteArray &bytes, int type = false, int size_bytes = 0xff) const; //! The endianness of the message. typedef enum { DltEndiannessUnknown = -2, DltEndiannessLittleEndian = 0, DltEndiannessBigEndian = 1 } DltEndiannessDef; protected: private: }; #endif // QDLT_BASE_H dlt-viewer-2.18.0+dfsg/qdlt/qdltsegmentedmsg.cpp0000664000175000017500000001263413001357026021245 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdltsegmentedmsg.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "qdlt.h" #include "qdltsegmentedmsg.h" QDltSegmentedMsg::QDltSegmentedMsg() { handle = 0; size = 0; chunks = 0; chunkSize = 0; chunksAdded = 0; state = DltSegStart; } int QDltSegmentedMsg::add(QDltMsg &msg) { QDltArgument argument; if(msg.getNumberOfArguments()<1) { error = "Invalid number of arguments in start segment message"; return -1; } msg.getArgument(0,argument); if(argument.getTypeInfo()!=QDltArgument::DltTypeInfoStrg) { error = "Invalid Type in start segment message"; return -1; } QString str = argument.getValue().toString(); if(str=="NWST") { // start of segmented message if(msg.getNumberOfArguments()!=6) { error = "Invalid number of arguments in start segment message"; return -1; } msg.getArgument(1,argument); // get handle if(argument.getTypeInfo()!=QDltArgument::DltTypeInfoUInt) { error = "Invalid Type in start segment message"; return -1; } handle = argument.getValue().toUInt(); msg.getArgument(2,argument); // get header if(argument.getTypeInfo()!=QDltArgument::DltTypeInfoRawd) { error = "Invalid Type in start segment message"; return -1; } header = argument.getData(); msg.getArgument(3,argument); // get size if(argument.getTypeInfo()!=QDltArgument::DltTypeInfoUInt) { error = "Invalid Type in start segment message"; return -1; } size = argument.getValue().toUInt(); msg.getArgument(4,argument); // get chunks if(argument.getTypeInfo()!=QDltArgument::DltTypeInfoUInt) { error = "Invalid Type in start segment message"; return -1; } chunks = argument.getValue().toUInt(); msg.getArgument(5,argument); // get chunk size if(argument.getTypeInfo()!=QDltArgument::DltTypeInfoUInt) { error = "Invalid Type in start segment message"; return -1; } chunkSize = argument.getValue().toUInt(); if(state != DltSegStart) { error = "Start segment received several times"; return -1; } state = DltSegChunk; payload.resize(size); } else if(str=="NWCH") { // chunk of segmented message if(msg.getNumberOfArguments()!=4) { error = "Invalid number of arguments in chunk segment message"; return -1; } msg.getArgument(1,argument); // get handle if(argument.getTypeInfo()!=QDltArgument::DltTypeInfoUInt) { error = "Invalid Type in chunk segment message"; return -1; } if(handle != argument.getValue()) { error = "Handle unequal in chunk message"; return -1; } msg.getArgument(2,argument); // get sequence if(argument.getTypeInfo()!=QDltArgument::DltTypeInfoUInt) { error = "Invalid Type in chunk segment message"; return -1; } uint32_t sequence = argument.getValue().toUInt(); if(sequence>=chunks) { error = QString("Sequence bigger than number of chunks: Sequence = %1, Chunks = %2").arg(sequence).arg(chunks); return -1; } msg.getArgument(3,argument); // get chunk if(argument.getTypeInfo()!=QDltArgument::DltTypeInfoRawd) { error = "Invalid Type in chunk segment message"; return -1; } payload.replace(sequence*chunkSize,chunkSize,argument.getData()); chunksAdded += 1; } else if(str=="NWEN") { // end of segmented message if(msg.getNumberOfArguments()!=2) { error = "Invalid number of arguments in end segment message"; return -1; } msg.getArgument(1,argument); // get handle if(argument.getTypeInfo()!=QDltArgument::DltTypeInfoUInt) { error = "Invalid Type in end segment message"; return -1; } if(handle != argument.getValue()) { error = "Invalid handle in end chunk"; return -1; } if(state != DltSegChunk) { error = "End chunk received without start chunk"; return -1; } if(chunksAdded!=chunks) { error = QString("Number of chunks mismatch: Received = %1, Total = %2").arg(chunksAdded).arg(chunks); return -1; } state = DltSegFinish; } else { error = "Invalid segmented message string"; return -1; } return 0; } dlt-viewer-2.18.0+dfsg/qdlt/qdltserialconnection.h0000664000175000017500000000233413001357026021563 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef QDLT_SERIAL_CONNECTION_H #define QDLT_SERIAL_CONNECTION_H #include #include #include #include #include #include #include #include "export_rules.h" class QextSerialPort; class QDLT_EXPORT QDltSerialConnection : public QDltConnection { public: QDltSerialConnection(); ~QDltSerialConnection(); void setPort(QString _port); QString getPort(); void setBaudrate(int _baudrate); unsigned int getBaudrate(); private: QString port; int baudrate; QextSerialPort *m_qdltserialport; }; #endif // QDLT_SERIAL_CONNECTION_H dlt-viewer-2.18.0+dfsg/qdlt/qdltfilterlist.h0000664000175000017500000000561213001357026020407 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef QDLT_FILTER_LIST_H #define QDLT_FILTER_LIST_H #include #include #include #include #include #include #include #include #include #include "export_rules.h" class QDLT_EXPORT QDltFilterList { public: //! List of filters. QList filters; //! The constructor. /*! */ QDltFilterList(); QDltFilterList(const QDltFilterList &other); //! The destructor. /*! */ ~QDltFilterList(); //! Copy operator. QDltFilterList& operator= (QDltFilterList const& _filterList); //! Delete all filters and markers. /*! This includes all positive and negative filters and markers. */ void clearFilter(); //! Add a filter to the filter list. /*! \param filter the filter configuration */ void addFilter(QDltFilter *_filter); //! Check if message will be marked. /*! Colours used are: 1 = green 2 = red 3 = yellow 4 = blue 5 = light grey 6 = dark grey \param msg The messages to be marked \return 0 if message will not be marked, colour if message will be marked */ QColor checkMarker(QDltMsg &msg); //! Check if message matches the filter. /*! \param msg The message to be checked \return true if message will be displayed, false if message will be filtered out */ bool checkFilter(QDltMsg &msg); //! Save the filter. /*! */ bool SaveFilter(QString _filename); //! Load the filter list. /*! */ bool LoadFilter(QString _filename,bool replace); //! Save the filter in a byte array and create a MD5 checksum over the byte array. /*! */ QByteArray createMD5(); //! Return the filename. /*! */ QString getFilename() const { return filename; } //! Update the presorted list for performance improvement. /*! */ void updateSortedFilter(); protected: private: //! The filename of the filter list including complete path. QString filename; //! List of mfilters. QList mfilters; //! List of pfilters. QList pfilters; //! List of nfilters. QList nfilters; }; #endif // QDLT_FILTER_LIST_H dlt-viewer-2.18.0+dfsg/qdlt/qdltfilter.h0000664000175000017500000000525113001357026017512 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef QDLT_FILTER_H #define QDLT_FILTER_H #include #include #include #include #include #include #include #include #include #include "export_rules.h" class QDLT_EXPORT QDltFilter { public: typedef enum { positive = 0, negative, marker } FilterType; FilterType type; QString name; QString ecuid; QString apid; QString ctid; QString header; QString payload; bool enableRegexp_Context; bool enableRegexp_Header; bool enableRegexp_Payload; bool ignoreCase_Header; bool ignoreCase_Payload; bool enableFilter; bool enableEcuid; bool enableApid; bool enableCtid; bool enableHeader; bool enablePayload; bool enableCtrlMsgs; bool enableLogLevelMax; bool enableLogLevelMin; bool enableMarker; QColor filterColour; int logLevelMax; int logLevelMin; // generated from header and payload string QRegExp headerRegexp; QRegExp payloadRegexp; QRegExp contextRegexp; //! Constructor. /*! */ QDltFilter(); //! Destructor. /*! */ ~QDltFilter(); //! Reset all values to default values /*! */ void clear(); //! Check if this is a marker. /*! */ bool isMarker() const; //! Check if this is a positive filter. /*! */ bool isPositive() const; //! Check if this is a negative filter. /*! */ bool isNegative() const; //! Copy operator. /*! */ QDltFilter& operator= (QDltFilter const& _filter); //! Create regular expressions. /*! */ bool compileRegexps(); //! Check if filter matches. /*! \return true if filter matches the message, else false */ bool match(QDltMsg &msg) const; //! Save filter parameters in XML file. /*! */ void SaveFilterItem(QXmlStreamWriter &xml); //! Load filter parameters from XML file. /*! */ void LoadFilterItem(QXmlStreamReader &xml); protected: private: }; #endif // QDLT_FILTER_H dlt-viewer-2.18.0+dfsg/qdlt/dlt_common.h0000775000175000017500000013443013001357026017500 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file dlt_common.h * For further information see http://www.genivi.org/. * @licence end@ */ /******************************************************************************* ** ** ** SRC-MODULE: dlt_common.h ** ** ** ** TARGET : linux ** ** ** ** PROJECT : DLT ** ** ** ** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** ** Markus Klein ** ** ** ** PURPOSE : ** ** ** ** REMARKS : ** ** ** ** PLATFORM DEPENDANT [yes/no]: yes ** ** ** ** TO BE CHANGED BY USER [yes/no]: no ** ** ** *******************************************************************************/ /******************************************************************************* ** Author Identity ** ******************************************************************************** ** ** ** Initials Name Company ** ** -------- ------------------------- ---------------------------------- ** ** aw Alexander Wenzel BMW ** ** mk Markus Klein Fraunhofer ESK ** *******************************************************************************/ /******************************************************************************* ** Revision Control History ** *******************************************************************************/ /* * $LastChangedRevision: 1613 $ * $LastChangedDate: 2011-02-28 14:54:27 +0100 (Mo, 28. Feb 2011) $ * $LastChangedBy$ Initials Date Comment aw 13.01.2010 initial */ #ifndef DLT_COMMON_H #define DLT_COMMON_H #include "export_rules.h" /** \defgroup commonapi DLT Common API \addtogroup commonapi \{ */ #include #if !defined(_MSC_VER) #include #include #endif #if !defined (__WIN32__) && !defined(_MSC_VER) #include #endif #include "dlt_types.h" #include "dlt_protocol.h" #if !defined (PACKED) #define PACKED __attribute__((aligned(1),packed)) #endif #if defined (__MSDOS__) || defined (_MSC_VER) /* set instead /Zp8 flag in Visual C++ configuration */ #undef PACKED #define PACKED #endif /* * Macros to swap the byte order. */ #define DLT_SWAP_64(value) ((((uint64_t)DLT_SWAP_32((value)&0xffffffffull))<<32) | (DLT_SWAP_32((value)>>32))) #define DLT_SWAP_16(value) ((((value) >> 8)&0xff) | (((value) << 8)&0xff00)) #define DLT_SWAP_32(value) ((((value) >> 24)&0xff) | (((value) << 8)&0xff0000) | (((value) >> 8)&0xff00) | (((value) << 24)&0xff000000)) /* Set Big Endian and Little Endian to a initial value, if not defined */ #ifndef LITTLE_ENDIAN #define LITTLE_ENDIAN 1234 #endif #ifndef BIG_ENDIAN #define BIG_ENDIAN 4321 #endif /* If byte order is not defined, default to little endian */ #ifndef BYTE_ORDER #define BYTE_ORDER LITTLE_ENDIAN #endif /* Check for byte-order */ #if (BYTE_ORDER==BIG_ENDIAN) /* #warning "Big Endian Architecture!" */ #define DLT_HTOBE_16(x) ((x)) #define DLT_HTOLE_16(x) DLT_SWAP_16((x)) #define DLT_BETOH_16(x) ((x)) #define DLT_LETOH_16(x) DLT_SWAP_16((x)) #define DLT_HTOBE_32(x) ((x)) #define DLT_HTOLE_32(x) DLT_SWAP_32((x)) #define DLT_BETOH_32(x) ((x)) #define DLT_LETOH_32(x) DLT_SWAP_32((x)) #define DLT_HTOBE_64(x) ((x)) #define DLT_HTOLE_64(x) DLT_SWAP_64((x)) #define DLT_BETOH_64(x) ((x)) #define DLT_LETOH_64(x) DLT_SWAP_64((x)) #else /* #warning "Litte Endian Architecture!" */ #define DLT_HTOBE_16(x) DLT_SWAP_16((x)) #define DLT_HTOLE_16(x) ((x)) #define DLT_BETOH_16(x) DLT_SWAP_16((x)) #define DLT_LETOH_16(x) ((x)) #define DLT_HTOBE_32(x) DLT_SWAP_32((x)) #define DLT_HTOLE_32(x) ((x)) #define DLT_BETOH_32(x) DLT_SWAP_32((x)) #define DLT_LETOH_32(x) ((x)) #define DLT_HTOBE_64(x) DLT_SWAP_64((x)) #define DLT_HTOLE_64(x) ((x)) #define DLT_BETOH_64(x) DLT_SWAP_64((x)) #define DLT_LETOH_64(x) ((x)) #endif #define DLT_ENDIAN_GET_16(htyp,x) ((((htyp) & DLT_HTYP_MSBF)>0)?DLT_BETOH_16(x):DLT_LETOH_16(x)) #define DLT_ENDIAN_GET_32(htyp,x) ((((htyp) & DLT_HTYP_MSBF)>0)?DLT_BETOH_32(x):DLT_LETOH_32(x)) #define DLT_ENDIAN_GET_64(htyp,x) ((((htyp) & DLT_HTYP_MSBF)>0)?DLT_BETOH_64(x):DLT_LETOH_64(x)) #if defined (__WIN32__) || defined (_MSC_VER) #define LOG_EMERG 0 #define LOG_ALERT 1 #define LOG_CRIT 2 #define LOG_ERR 3 #define LOG_WARNING 4 #define LOG_NOTICE 5 #define LOG_INFO 6 #define LOG_DEBUG 7 #define LOG_PID 0x01 #define LOG_DAEMON (3<<3) #endif /** * The standard TCP Port used for DLT daemon */ #define DLT_DAEMON_TCP_PORT 3490 #define DLT_DAEMON_UDP_PORT 3490 /** * The size of a DLT ID */ #define DLT_ID_SIZE 4 #define DLT_SIZE_WEID DLT_ID_SIZE #define DLT_SIZE_WSID (sizeof(uint32_t)) #define DLT_SIZE_WTMS (sizeof(uint32_t)) /** * Get the size of extra header parameters, depends on htyp. */ #define DLT_STANDARD_HEADER_EXTRA_SIZE(htyp) ( (DLT_IS_HTYP_WEID(htyp) ? DLT_SIZE_WEID : 0) + (DLT_IS_HTYP_WSID(htyp) ? DLT_SIZE_WSID : 0) + (DLT_IS_HTYP_WTMS(htyp) ? DLT_SIZE_WTMS : 0) ) #if defined (__MSDOS__) || defined (_MSC_VER) #define __func__ __FUNCTION__ #endif #define PRINT_FUNCTION_VERBOSE(_verbose) \ { \ static char _strbuf[255]; \ \ if(_verbose) \ { \ sprintf(_strbuf, "%s()\n",__func__); \ dlt_log(LOG_INFO, _strbuf); \ } \ } #ifndef NULL #define NULL (char*)0 #endif #define DLT_MSG_IS_CONTROL(MSG) ((DLT_IS_HTYP_UEH((MSG)->standardheader->htyp)) && \ (DLT_GET_MSIN_MSTP((MSG)->extendedheader->msin)==DLT_TYPE_CONTROL)) #define DLT_MSG_IS_CONTROL_REQUEST(MSG) ((DLT_IS_HTYP_UEH((MSG)->standardheader->htyp)) && \ (DLT_GET_MSIN_MSTP((MSG)->extendedheader->msin)==DLT_TYPE_CONTROL) && \ (DLT_GET_MSIN_MTIN((MSG)->extendedheader->msin)==DLT_CONTROL_REQUEST)) #define DLT_MSG_IS_CONTROL_RESPONSE(MSG) ((DLT_IS_HTYP_UEH((MSG)->standardheader->htyp)) && \ (DLT_GET_MSIN_MSTP((MSG)->extendedheader->msin)==DLT_TYPE_CONTROL) && \ (DLT_GET_MSIN_MTIN((MSG)->extendedheader->msin)==DLT_CONTROL_RESPONSE)) #define DLT_MSG_IS_CONTROL_TIME(MSG) ((DLT_IS_HTYP_UEH((MSG)->standardheader->htyp)) && \ (DLT_GET_MSIN_MSTP((MSG)->extendedheader->msin)==DLT_TYPE_CONTROL) && \ (DLT_GET_MSIN_MTIN((MSG)->extendedheader->msin)==DLT_CONTROL_TIME)) #define DLT_MSG_IS_NW_TRACE(MSG) ((DLT_IS_HTYP_UEH((MSG)->standardheader->htyp)) && \ (DLT_GET_MSIN_MSTP((MSG)->extendedheader->msin)==DLT_TYPE_NW_TRACE)) #define DLT_MSG_IS_TRACE_MOST(MSG) ((DLT_IS_HTYP_UEH((MSG)->standardheader->htyp)) && \ (DLT_GET_MSIN_MSTP((MSG)->extendedheader->msin)==DLT_TYPE_NW_TRACE) && \ (DLT_GET_MSIN_MTIN((MSG)->extendedheader->msin)==DLT_NW_TRACE_MOST)) #define DLT_MSG_IS_NONVERBOSE(MSG) (!(DLT_IS_HTYP_UEH((MSG)->standardheader->htyp)) || \ ((DLT_IS_HTYP_UEH((MSG)->standardheader->htyp)) && (!(DLT_IS_MSIN_VERB((MSG)->extendedheader->msin))))) /* * Definitions of DLT message buffer overflow */ #define DLT_MESSAGE_BUFFER_NO_OVERFLOW 0x00 /**< Buffer overflow has not occured */ #define DLT_MESSAGE_BUFFER_OVERFLOW 0x01 /**< Buffer overflow has occured */ /* * Definition of DLT output variants */ #define DLT_OUTPUT_HEX 1 #define DLT_OUTPUT_ASCII 2 #define DLT_OUTPUT_MIXED_FOR_PLAIN 3 #define DLT_OUTPUT_MIXED_FOR_HTML 4 #define DLT_OUTPUT_ASCII_LIMITED 5 #define DLT_FILTER_MAX 30 /**< Maximum number of filters */ #define DLT_MSG_READ_VALUE(dst,src,length,type) \ { \ if((length<0) || ((length)<((int32_t)sizeof(type)))) \ { length = -1; } \ else \ { dst = *((type*)src);src+=sizeof(type);length-=sizeof(type); } \ } #define DLT_MSG_READ_ID(dst,src,length) \ { \ if((length<0) || ((length) * * \file qdltipconnection.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "qdlt.h" extern "C" { #include "dlt_common.h" } QDltIPConnection::QDltIPConnection() : QDltConnection() , hostname("localhost") , port(DLT_DAEMON_TCP_PORT) { } QDltIPConnection::~QDltIPConnection() { } void QDltIPConnection::setHostname(QString _hostname) { hostname = _hostname; } QString QDltIPConnection::getHostname() const { return hostname; } void QDltIPConnection::setPort(unsigned int _ipport) { port = _ipport; } unsigned int QDltIPConnection::getPort() const { return port; } dlt-viewer-2.18.0+dfsg/qdlt/qdlttcpconnection.h0000664000175000017500000000207013001357026021067 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef QDLT_TCP_CONNECTION_H #define QDLT_TCP_CONNECTION_H #include #include #include #include #include #include #include #include "export_rules.h" class QTcpSocket; class QDLT_EXPORT QDltTCPConnection : public QDltIPConnection { public: QDltTCPConnection(); ~QDltTCPConnection(); virtual void setDefaultPort(); private: QTcpSocket *socket; }; #endif // QDLT_TCP_CONNECTION_H dlt-viewer-2.18.0+dfsg/qdlt/dlt_user.h0000775000175000017500000005540013001357026017165 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file dlt_user.h * For further information see http://www.genivi.org/. * @licence end@ */ /******************************************************************************* ** ** ** SRC-MODULE: dlt_user.h ** ** ** ** TARGET : linux ** ** ** ** PROJECT : DLT ** ** ** ** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** ** Markus Klein ** ** ** ** PURPOSE : ** ** ** ** REMARKS : ** ** ** ** PLATFORM DEPENDANT [yes/no]: yes ** ** ** ** TO BE CHANGED BY USER [yes/no]: no ** ** ** *******************************************************************************/ /******************************************************************************* ** Author Identity ** ******************************************************************************** ** ** ** Initials Name Company ** ** -------- ------------------------- ---------------------------------- ** ** aw Alexander Wenzel BMW ** ** mk Markus Klein Fraunhofer ESK ** *******************************************************************************/ /******************************************************************************* ** Revision Control History ** *******************************************************************************/ /* * $LastChangedRevision: 1533 $ * $LastChangedDate: 2010-12-14 16:30:35 +0100 (Di, 14. Dez 2010) $ * $LastChangedBy$ Initials Date Comment aw 13.01.2010 initial */ #ifndef DLT_USER_H #define DLT_USER_H /** \defgroup userapi DLT User API \addtogroup userapi \{ */ #include "dlt_types.h" #include "dlt_common.h" #ifdef __cplusplus extern "C" { #endif /** * Definitions of DLT log level */ typedef enum { DLT_LOG_DEFAULT = -1, /**< Default log level */ DLT_LOG_OFF = 0x00, /**< Log level off */ DLT_LOG_FATAL = 0x01, /**< fatal system error */ DLT_LOG_ERROR = 0x02, /**< error with impact to correct functionality */ DLT_LOG_WARN = 0x03, /**< warning, correct behaviour could not be ensured */ DLT_LOG_INFO = 0x04, /**< informational */ DLT_LOG_DEBUG = 0x05, /**< debug */ DLT_LOG_VERBOSE = 0x06 /**< highest grade of information */ } DltLogLevelType; /** * Definitions of DLT Format */ typedef enum { DLT_FORMAT_DEFAULT = 0x00, /**< no sepecial format */ DLT_FORMAT_HEX8 = 0x01, /**< Hex 8 */ DLT_FORMAT_HEX16 = 0x02, /**< Hex 16 */ DLT_FORMAT_HEX32 = 0x03, /**< Hex 32 */ DLT_FORMAT_HEX64 = 0x04, /**< Hex 64 */ DLT_FORMAT_BIN8 = 0x05, /**< Binary 8 */ DLT_FORMAT_BIN16 = 0x06 /**< Binary 16 */ } DltFormatType; /** * Definitions of DLT trace status */ typedef enum { DLT_TRACE_STATUS_DEFAULT = -1, /**< Default trace status */ DLT_TRACE_STATUS_OFF = 0x00, /**< Trace status: Off */ DLT_TRACE_STATUS_ON = 0x01 /**< Trace status: On */ } DltTraceStatusType; /** * Definitions for dlt_user_trace_network/DLT_TRACE_NETWORK() * as defined in the DLT protocol */ typedef enum { DLT_NW_TRACE_IPC = 0x01, /**< Interprocess communication */ DLT_NW_TRACE_CAN = 0x02, /**< Controller Area Network Bus */ DLT_NW_TRACE_FLEXRAY = 0x03, /**< Flexray Bus */ DLT_NW_TRACE_MOST = 0x04, /**< Media Oriented System Transport Bus */ DLT_NW_TRACE_RESERVED0 = 0x05, DLT_NW_TRACE_RESERVED1 = 0x06, DLT_NW_TRACE_RESERVED2 = 0x07, DLT_NW_TRACE_USER_DEFINED0 = 0x08, DLT_NW_TRACE_USER_DEFINED1 = 0x09, DLT_NW_TRACE_USER_DEFINED2 = 0x0A, DLT_NW_TRACE_USER_DEFINED3 = 0x0B, DLT_NW_TRACE_USER_DEFINED4 = 0x0C, DLT_NW_TRACE_USER_DEFINED5 = 0x0D, DLT_NW_TRACE_USER_DEFINED6 = 0x0E, DLT_NW_TRACE_USER_DEFINED7 = 0x0F } DltNetworkTraceType; #define DLT_USER_BUF_MAX_SIZE 2048 /**< maximum size of each user buffer, also used for injection buffer */ /* Use a semaphore or mutex from your OS to prevent concurrent access to the DLT buffer. */ #define DLT_SEM_LOCK() { sem_wait(&dlt_mutex); } #define DLT_SEM_FREE() { sem_post(&dlt_mutex); } /** * This structure is used for every context used in an application. */ typedef struct { char contextID[4]; /**< context id */ int32_t log_level_pos; /**< offset in user-application context field */ } DltContext; /** * This structure is used for context data used in an application. */ typedef struct { DltContext *handle; /**< pointer to DltContext */ unsigned char buffer[DLT_USER_BUF_MAX_SIZE]; /**< buffer for building log message*/ int32_t size; /**< payload size */ int32_t log_level; /**< log level */ int32_t trace_status; /**< trace status */ int32_t args_num; /**< number of arguments for extended header*/ uint8_t mcnt; /**< message counter */ char* context_description; /**< description of context */ } DltContextData; typedef struct { uint32_t service_id; int (*injection_callback)(uint32_t service_id, void *data, uint32_t length); } DltUserInjectionCallback; /** * This structure is used in a table managing all contexts and the corresponding log levels in an application. */ typedef struct { char contextID[DLT_ID_SIZE]; /**< Context ID */ int8_t log_level; /**< Log level */ int8_t trace_status; /**< Trace status */ char *context_description; /**< description of context */ DltUserInjectionCallback *injection_table; /**< Table with pointer to injection functions and service ids */ uint32_t nrcallbacks; } dlt_ll_ts_type; /** * This structure is used once for one application. */ typedef struct { char ecuID[DLT_ID_SIZE]; /**< ECU ID */ char appID[DLT_ID_SIZE]; /**< Application ID */ int dlt_log_handle; /**< Handle to fifo of dlt daemon */ int dlt_user_handle; /**< Handle to own fifo */ int8_t dlt_is_file; /**< Target of logging: 1 to file, 0 to daemon */ dlt_ll_ts_type *dlt_ll_ts; //[MAX_DLT_LL_TS_ENTRIES]; /**< Internal management struct for all contexts */ uint32_t dlt_ll_ts_max_num_entries; /**< Maximum number of contexts */ uint32_t dlt_ll_ts_num_entries; /**< Number of used contexts */ int8_t overflow; /**< Overflow marker, set to 1 on overflow, 0 otherwise */ char *application_description; /**< description of application */ DltReceiver receiver; /**< Receiver for internal user-defined messages from daemon */ int8_t verbose_mode; /**< Verbose mode enabled: 1 enabled, 0 disabled */ int8_t enable_local_print; /**< Local printing of log messages: 1 enabled, 0 disabled */ int8_t local_print_mode; /**< Local print mode, controlled by environment variable */ DltRingBuffer rbuf; /**< Ring-buffer for buffering messages during startup and missing connection */ } DltUser; /************************************************************************************************** * The folowing API functions define a low level function interface for DLT **************************************************************************************************/ /** * Initialise the generation of a DLT log message (intended for usage in non-verbose mode) * This function has to be called first, when an application wants to send a new log messages. * @param handle pointer to an object containing information about one special logging context * @param log pointer to an object containing information about logging context data * @param loglevel this is the current log level of the log message to be sent * @return negative value if there was an error */ int dlt_user_log_write_start(DltContext *handle, DltContextData *log, DltLogLevelType loglevel); /** * Initialise the generation of a DLT log message (intended for usage in verbose mode) * This function has to be called first, when an application wants to send a new log messages. * @param handle pointer to an object containing information about one special logging context * @param log pointer to an object containing information about logging context data * @param loglevel this is the current log level of the log message to be sent * @param messageid message id of message * @return negative value if there was an error */ int dlt_user_log_write_start_id(DltContext *handle, DltContextData *log, DltLogLevelType loglevel, uint32_t messageid); /** * Finishing the generation of a DLT log message and sending it to the DLT daemon. * This function has to be called after writing all the log attributes of a log message. * @param log pointer to an object containing information about logging context data * @return negative value if there was an error */ int dlt_user_log_write_finish(DltContextData *log); /** * Write a boolean parameter into a DLT log message. * dlt_user_log_write_start has to be called before adding any attributes to the log message. * Finish sending log message by calling dlt_user_log_write_finish. * @param log pointer to an object containing information about logging context data * @param data boolean parameter written into log message (mapped to uint8) * @return negative value if there was an error */ int dlt_user_log_write_bool(DltContextData *log, uint8_t data); /** * Write a float parameter into a DLT log message. * dlt_user_log_write_start has to be called before adding any attributes to the log message. * Finish sending log message by calling dlt_user_log_write_finish. * @param log pointer to an object containing information about logging context data * @param data float32_t parameter written into log message. * @return negative value if there was an error */ int dlt_user_log_write_float32(DltContextData *log, float32_t data); /** * Write a double parameter into a DLT log message. * dlt_user_log_write_start has to be called before adding any attributes to the log message. * Finish sending log message by calling dlt_user_log_write_finish. * @param log pointer to an object containing information about logging context data * @param data float64_t parameter written into log message. * @return negative value if there was an error */ int dlt_user_log_write_float64(DltContextData *log, double data); /** * Write a uint parameter into a DLT log message. * dlt_user_log_write_start has to be called before adding any attributes to the log message. * Finish sending log message by calling dlt_user_log_write_finish. * @param log pointer to an object containing information about logging context data * @param data unsigned int parameter written into log message. * @return negative value if there was an error */ int dlt_user_log_write_uint(DltContextData *log, unsigned int data); int dlt_user_log_write_uint8(DltContextData *log, uint8_t data); int dlt_user_log_write_uint16(DltContextData *log, uint16_t data); int dlt_user_log_write_uint32(DltContextData *log, uint32_t data); int dlt_user_log_write_uint64(DltContextData *log, uint64_t data); /** * Write a int parameter into a DLT log message. * dlt_user_log_write_start has to be called before adding any attributes to the log message. * Finish sending log message by calling dlt_user_log_write_finish. * @param log pointer to an object containing information about logging context data * @param data int parameter written into log message. * @return negative value if there was an error */ int dlt_user_log_write_int(DltContextData *log, int data); int dlt_user_log_write_int8(DltContextData *log, int8_t data); int dlt_user_log_write_int16(DltContextData *log, int16_t data); int dlt_user_log_write_int32(DltContextData *log, int32_t data); int dlt_user_log_write_int64(DltContextData *log, int64_t data); /** * Write a null terminated ASCII string into a DLT log message. * dlt_user_log_write_start has to be called before adding any attributes to the log message. * Finish sending log message by calling dlt_user_log_write_finish. * @param log pointer to an object containing information about logging context data * @param text pointer to the parameter written into log message containing null termination. * @return negative value if there was an error */ int dlt_user_log_write_string( DltContextData *log, const char *text); /** * Write a binary memory block into a DLT log message. * dlt_user_log_write_start has to be called before adding any attributes to the log message. * Finish sending log message by calling dlt_user_log_write_finish. * @param log pointer to an object containing information about logging context data * @param data pointer to the parameter written into log message. * @param length length in bytes of the parameter written into log message. * @return negative value if there was an error */ int dlt_user_log_write_raw(DltContextData *log,void *data,uint16_t length); /** * Trace network message * @param handle pointer to an object containing information about one special logging context * @param nw_trace_type type of network trace (DLT_NW_TRACE_IPC, DLT_NW_TRACE_CAN, DLT_NW_TRACE_FLEXRAY, or DLT_NW_TRACE_MOST) * @param header_len length of network message header * @param header pointer to network message header * @param payload_len length of network message payload * @param payload pointer to network message payload * @return negative value if there was an error */ int dlt_user_trace_network(DltContext *handle, DltNetworkTraceType nw_trace_type, uint16_t header_len, void *header, uint16_t payload_len, void *payload); /************************************************************************************************** * The folowing API functions define a high level function interface for DLT **************************************************************************************************/ /** * Initialise the user lib communication with daemon. * This function has to be called first, before using any DLT user lib functions. * @return negative value if there was an error */ int dlt_init(); /** * Initialise the user lib writing only to file. * This function has to be called first, before using any DLT user lib functions. * @param name name of an optional log file * @return negative value if there was an error */ int dlt_init_file(const char *name); /** * Terminate the user lib. * This function has to be called when finishing using the DLT user lib. * @return negative value if there was an error */ int dlt_free(); /** * Register an application in the daemon. * @param appid four byte long character array with the application id * @param description long name of the application * @return negative value if there was an error */ int dlt_register_app(const char *appid, const char * description); /** * Unregister an application in the daemon. * This function has to be called when finishing using an application. * @return negative value if there was an error */ int dlt_unregister_app(void); /** * Register a context in the daemon. * This function has to be called before first usage of the context. * @param handle pointer to an object containing information about one special logging context * @param contextid four byte long character array with the context id * @param description long name of the context * @return negative value if there was an error */ int dlt_register_context(DltContext *handle, const char *contextid, const char * description); /** * Register a context in the daemon with pre-defined log level and pre-defined trace status. * This function has to be called before first usage of the context. * @param handle pointer to an object containing information about one special logging context * @param contextid four byte long character array with the context id * @param description long name of the context * @param loglevel This is the log level to be pre-set for this context (DLT_LOG_DEFAULT is not allowed here) * @param tracestatus This is the trace status to be pre-set for this context (DLT_TRACE_STATUS_DEFAULT is not allowed here) * @return negative value if there was an error */ int dlt_register_context_ll_ts(DltContext *handle, const char *contextid, const char * description, int loglevel, int tracestatus); /** * Unregister a context in the DLT daemon. * This function has to be called when finishing using a context. * @param handle pointer to an object containing information about one special logging context * @return negative value if there was an error */ int dlt_unregister_context(DltContext *handle); /** * Register callback function called when injection message was received * @param handle pointer to an object containing information about one special logging context * @param service_id the service id to be waited for * @param (*dlt_injection_callback) function pointer to callback function * @return negative value if there was an error */ int dlt_register_injection_callback(DltContext *handle, uint32_t service_id, int (*dlt_injection_callback)(uint32_t service_id, void *data, uint32_t length)); /** * Switch to verbose mode * */ int dlt_verbose_mode(void); /** * Switch to non-verbose mode * */ int dlt_nonverbose_mode(void); /** * Set maximum logged log level and trace status of application * * @param loglevel This is the log level to be set for the whole application * @param tracestatus This is the trace status to be set for the whole application * @return negative value if there was an error */ int dlt_set_application_ll_ts_limit(DltLogLevelType loglevel, DltTraceStatusType tracestatus); /** * Enable local printing of messages * */ int dlt_enable_local_print(void); /** * Disable local printing of messages * */ int dlt_disable_local_print(void); /** * Write a null terminated ASCII string into a DLT log message. * @param handle pointer to an object containing information about one special logging context * @param loglevel this is the current log level of the log message to be sent * @param text pointer to the ASCII string written into log message containing null termination. * @return negative value if there was an error */ int dlt_log_string(DltContext *handle,DltLogLevelType loglevel, const char *text); /** * Write a null terminated ASCII string and an integer value into a DLT log message. * @param handle pointer to an object containing information about one special logging context * @param loglevel this is the current log level of the log message to be sent * @param text pointer to the ASCII string written into log message containing null termination. * @param data integer value written into the log message * @return negative value if there was an error */ int dlt_log_string_int(DltContext *handle,DltLogLevelType loglevel, const char *text, int data); /** * Write a null terminated ASCII string and an unsigned integer value into a DLT log message. * @param handle pointer to an object containing information about one special logging context * @param loglevel this is the current log level of the log message to be sent * @param text pointer to the ASCII string written into log message containing null termination. * @param data unsigned integer value written into the log message * @return negative value if there was an error */ int dlt_log_string_uint(DltContext *handle,DltLogLevelType loglevel, const char *text, unsigned int data); /** * Write an integer value into a DLT log message. * @param handle pointer to an object containing information about one special logging context * @param loglevel this is the current log level of the log message to be sent * @param data integer value written into the log message * @return negative value if there was an error */ int dlt_log_int(DltContext *handle,DltLogLevelType loglevel, int data); /** * Write an unsigned integer value into a DLT log message. * @param handle pointer to an object containing information about one special logging context * @param loglevel this is the current log level of the log message to be sent * @param data unsigned integer value written into the log message * @return negative value if there was an error */ int dlt_log_uint(DltContext *handle,DltLogLevelType loglevel, unsigned int data); /** * Write an unsigned integer value into a DLT log message. * @param handle pointer to an object containing information about one special logging context * @param loglevel this is the current log level of the log message to be sent * @param data pointer to the parameter written into log message. * @param length length in bytes of the parameter written into log message. * @return negative value if there was an error */ int dlt_log_raw(DltContext *handle,DltLogLevelType loglevel, void *data,uint16_t length); /** * Forward a complete DLT message to the DLT daemon * @param msgdata Message data of DLT message * @param size Size of DLT message * @return negative value if there was an error */ int dlt_forward_msg(void *msgdata,size_t size); #ifdef __cplusplus } #endif /** \} */ #endif /* DLT_USER_H */ dlt-viewer-2.18.0+dfsg/qdlt/qdltfile.cpp0000664000175000017500000002410013001357026017471 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include "qdlt.h" extern "C" { #include "dlt_common.h" } QDltFile::QDltFile() { filterFlag = false; sortByTimeFlag = false; } QDltFile::~QDltFile() { clear(); } void QDltFile::clear() { for(int num=0;numinfile.isOpen()) { files[num]->infile.close(); } delete(files[num]); } files.clear(); } int QDltFile::getNumberOfFiles() const { return files.size(); } void QDltFile::setDltIndex(QVector &_indexAll, int num){ if(num<0 || num>=files.size()) return; files[num]->indexAll = _indexAll; } int QDltFile::size() const { int size=0; for(int num=0;numindexAll.size(); } return size; } qint64 QDltFile::fileSize() const { qint64 size=0; for(int num=0;numinfile.size(); } return size; } int QDltFile::sizeFilter() const { if(filterFlag) return indexFilter.size(); else return size(); } bool QDltFile::open(QString _filename, bool append) { qDebug() << "Open file" << _filename << "started"; /* check if file is already opened */ if(!append) clear(); /* create new file item */ QDltFileItem *item = new QDltFileItem(); files.append(item); /* set new filename */ item->infile.setFileName(_filename); /* open the log file read only */ if(item->infile.open(QIODevice::ReadOnly)==false) { /* open file failed */ qWarning() << "open of file" << _filename << "failed"; return false; } qDebug() << "Open file" << _filename << "finished"; return true; } void QDltFile::clearIndex() { for(int num=0;numindexAll.clear(); } } bool QDltFile::createIndex() { bool ret = false; qDebug() << "Create index started"; clearIndex(); /* Example to use QtConcurrent to call updateIndex in separate Thread*/ //QFuture f = QtConcurrent::run(this, &QDltFile::updateIndex); //f.waitForFinished(); ret = updateIndex(); qDebug() << "Create index finished - "<< size() << "messages found"; return ret; } bool QDltFile::updateIndex() { QByteArray buf; qint64 pos = 0; mutexQDlt.lock(); for(int numFile=0;numFileinfile.isOpen()) { qDebug() << "updateIndex: Infile is not open"; mutexQDlt.unlock(); return false; } /* start at last found position */ if(files[numFile]->indexAll.size()) { /* move behind last found position */ const QVector* const_indexAll = &(files[numFile]->indexAll); pos = (*const_indexAll)[files[numFile]->indexAll.size()-1] + 4; files[numFile]->infile.seek(pos); } else { /* the file was empty the last call */ files[numFile]->infile.seek(0); } /* Align kbytes, 1MB read at a time */ static const int READ_BUF_SZ = 1024 * 1024; /* walk through the whole file and find all DLT0x01 markers */ /* store the found positions in the indexAll */ char lastFound = 0; while(true) { /* read buffer from file */ buf = files[numFile]->infile.read(READ_BUF_SZ); if(buf.isEmpty()) break; // EOF /* Use primitive buffer for faster access */ int cbuf_sz = buf.size(); const char *cbuf = buf.constData(); /* find marker in buffer */ for(int num=0;numindexAll.append(pos+num-3); lastFound = 0; } else { lastFound = 0; } } pos += cbuf_sz; } } mutexQDlt.unlock(); /* success */ return true; } bool QDltFile::createIndexFilter() { /* clear old index */ indexFilter.clear(); return updateIndexFilter(); } bool QDltFile::updateIndexFilter() { QDltMsg msg; QByteArray buf; int index; /* update index filter by starting from last found index in list */ /* get lattest found index in filter list */ if(indexFilter.size()>0) { index = indexFilter[indexFilter.size()-1] + 1; } else { index = 0; } for(int num=index;num=files.size()) return QString(); return files[num]->infile.fileName(); } void QDltFile::close() { /* close file */ clear(); } QByteArray QDltFile::getMsg(int index) const { QByteArray buf; int num; /* check if index is in range */ if(index<0 ) { qDebug() << "getMsg: Index is out of range"; /* return empty data buffer */ return QByteArray(); } for(num=0;numindexAll.size()) break; else index -= files[num]->indexAll.size(); } if(num>=files.size()) { qDebug() << "getMsg: Index is out of range"; /* return empty data buffer */ return QByteArray(); } /* check if file is already opened */ if(!files[num]->infile.isOpen()) { /* return empty buffer */ qDebug() << "getMsg: Infile is not open"; /* return empty data buffer */ return QByteArray(); } mutexQDlt.lock(); QDltFileItem* file = files[num]; const QDltFileItem* const_file = file; qint64 positionForIndex = const_file->indexAll[index]; /* move to file position selected by index */ file->infile.seek(positionForIndex); /* read DLT message from file */ if(index == (file->indexAll.size()-1)) /* last message in file */ buf = file->infile.read(file->infile.size() - positionForIndex); else /* any other file position */ buf = file->infile.read(const_file->indexAll[index+1] - positionForIndex); mutexQDlt.unlock(); /* return DLT message buffer */ return buf; } bool QDltFile::getMsg(int index,QDltMsg &msg) const { QByteArray data = getMsg(index); if(data.isEmpty()) return false; return msg.setMsg(data); } QByteArray QDltFile::getMsgFilter(int index) const { if(filterFlag) { /* check if index is in range */ if(index<0 || index>=indexFilter.size()) { qDebug() << "getMsgFilter: Index is out of range"; /* return empty data buffer */ return QByteArray(); } return getMsg(indexFilter[index]); } else { /* check if index is in range */ if(index<0 || index>=size()) { qDebug() << "getMsgFilter: Index is out of range"; /* return empty data buffer */ return QByteArray(); } return getMsg(index); } } int QDltFile::getMsgFilterPos(int index) const { if(filterFlag) { /* check if index is in range */ if(index<0 || index>=indexFilter.size()) { qDebug() << "getMsgFilter: Index is out of range"; /* return invalid */ return -1; } return indexFilter[index]; } else { /* check if index is in range */ if(index<0 || index>=size()) { qDebug() << "getMsgFilter: Index is out of range"; /* return invalid */ return -1; } return index; } } void QDltFile::clearFilter() { filterList.clearFilter(); } void QDltFile::addFilter(QDltFilter *_filter) { filterList.addFilter(_filter); } void QDltFile::updateSortedFilter() { filterList.updateSortedFilter(); } bool QDltFile::isFilter() const { return filterFlag; } void QDltFile::enableFilter(bool state) { filterFlag = state; } void QDltFile::enableSortByTime(bool state) { sortByTimeFlag = state; } QVector QDltFile::getIndexFilter() const { return indexFilter; } void QDltFile::setIndexFilter(QVector _indexFilter) { indexFilter = _indexFilter; } dlt-viewer-2.18.0+dfsg/qdlt/qdltudpconnection.cpp0000664000175000017500000000177213001357026021434 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2015-2016 Harman Becker Automotive Systems GmbH * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Olaf Dreyer * * \file qdltudpconnection.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include "qdlt.h" extern "C" { #include "dlt_common.h" } QDltUDPConnection::QDltUDPConnection() : QDltIPConnection() , socket(0) { hostname = "localhost"; port = DLT_DAEMON_UDP_PORT; } QDltUDPConnection::~QDltUDPConnection() { delete socket; } void QDltUDPConnection::setDefaultPort() { port = DLT_DAEMON_UDP_PORT; } dlt-viewer-2.18.0+dfsg/qdlt/qdlt.pro0000775000175000017500000000464213001357026016663 0ustar potyrapotyra PROJECT = qdlt TEMPLATE = lib CONFIG += c++11 DEFINES += QDLT_LIBRARY *-gcc* { QMAKE_CFLAGS += -std=gnu99 QMAKE_CFLAGS += -Wall QMAKE_CFLAGS += -Wextra #QMAKE_CFLAGS += -pedantic } *-g++* { QMAKE_CXXFLAGS += -std=gnu++0x QMAKE_CXXFLAGS += -Wall QMAKE_CXXFLAGS += -Wextra #QMAKE_CXXFLAGS += -pedantic } # Uncomment to add debug symbols to Release build #QMAKE_CXXFLAGS_RELEASE += -g #QMAKE_CFLAGS_RELEASE += -g #QMAKE_LFLAGS_RELEASE = unix:DEFINES += BYTE_ORDER=LITTLE_ENDIAN _TTY_POSIX_ QT_VIEWER win32:DEFINES += BYTE_ORDER=LITTLE_ENDIAN QT_VIEWER headers.path = $$PREFIX/usr/include/qdlt headers.files = *.h INSTALLS += headers target.path = $$PREFIX/$$[QT_INSTALL_LIBS] INSTALLS += target CONFIG += warn_on qt QT += network QT += gui # Detect QT5 and comply to new Widgets hierarchy greaterThan(QT_VERSION, 4.8.4) { QT += widgets INCLUDEPATH += QtWidgets DEFINES += QT5 } # Put intermediate files in the build directory MOC_DIR = build/moc OBJECTS_DIR = build/obj RCC_DIR = build/rcc UI_DIR = build/ui INCLUDEPATH = . ../qextserialport/src ../src SOURCES += \ dlt_common.c \ qdltipconnection.cpp \ qdlttcpconnection.cpp \ qdltudpconnection.cpp \ qdltserialconnection.cpp \ qdltmsg.cpp \ qdltfilter.cpp \ qdltfile.cpp \ qdltcontrol.cpp \ qdltconnection.cpp \ qdltbase.cpp \ qdltargument.cpp \ qdltfilterlist.cpp \ qdltfilterindex.cpp \ qdltdefaultfilter.cpp \ qdltpluginmanager.cpp \ qdltplugin.cpp \ qdltsegmentedmsg.cpp HEADERS += qdlt.h \ export_rules.h \ dlt_common.h \ dlt_user.h \ qdltipconnection.h \ qdlttcpconnection.h \ qdltudpconnection.h \ qdltserialconnection.h \ qdltmsg.h \ qdltfilter.h \ qdltfile.h \ qdltcontrol.h \ qdltconnection.h \ qdltbase.h \ qdltargument.h \ qdltfilterlist.h \ qdltfilterindex.h \ qdltdefaultfilter.h \ plugininterface.h \ qdltpluginmanager.h \ qdltplugin.h \ dlt_types.h \ dlt_protocol.h \ qdltsegmentedmsg.h unix:VERSION = 1.0.0 CONFIG(debug, debug|release) { DESTDIR = ../debug TARGET = qdltd QMAKE_LIBDIR += ../debug LIBS += -lqextserialportd } else { DESTDIR = ../release TARGET = qdlt QMAKE_LIBDIR += ../release LIBS += -lqextserialport } dlt-viewer-2.18.0+dfsg/qdlt/qdltpluginmanager.cpp0000664000175000017500000001260413001357026021411 0ustar potyrapotyra#include "qdltplugin.h" #include #include #include #include #include QDltPluginManager::QDltPluginManager() { } int QDltPluginManager::size() const { return plugins.size(); } int QDltPluginManager::sizeEnabled() const { int count = 0; for(int num=0;numgetMode()>=QDltPlugin::ModeEnable) count++; } return count; } void QDltPluginManager::loadPlugins(const QString &settingsPluginPath) { QDir pluginsDir; /* The viewer looks in the relativ to the executable in the ./plugins directory */ pluginsDir.setPath(QCoreApplication::applicationDirPath()); if(pluginsDir.cd("plugins")) { loadPluginsPath(pluginsDir); } /* load plugins form settings path if set */ if(!settingsPluginPath.isEmpty()) { pluginsDir.setPath(settingsPluginPath); if(pluginsDir.exists() && pluginsDir.isReadable()) { loadPluginsPath(pluginsDir); } } /* Load plugins from system directory in linux */ pluginsDir.setPath("/usr/share/dlt-viewer/plugins"); if(pluginsDir.exists() && pluginsDir.isReadable()) { loadPluginsPath(pluginsDir); } } void QDltPluginManager::loadPluginsPath(QDir &dir) { /* set filter for plugin files */ QStringList filters; filters << "*.dll" << "*.so" << "*.dylib"; dir.setNameFilters(filters); /* iterate through all plugins */ foreach (QString fileName, dir.entryList(QDir::Files)) { QPluginLoader pluginLoader(dir.absoluteFilePath(fileName)); QObject *plugin = pluginLoader.instance(); if (plugin) { QDLTPluginInterface *plugininterface = qobject_cast(plugin); if (plugininterface) { if(QString::compare( plugininterface->pluginInterfaceVersion(),PLUGIN_INTERFACE_VERSION, Qt::CaseSensitive) == 0){ QDltPlugin* item = new QDltPlugin(); item->loadPlugin(plugin); plugins.append(item); //project.plugin->addTopLevelItem(item); } else { QMessageBox::warning(0, QString("DLT Viewer"),QString("Error: Plugin could not be loaded!\nMismatch with plugin interface version of DLT Viewer.\n\nPlugin name: %1\nPlugin version: %2\nPlugin interface version: %3\nPlugin path: %4\n\nDLT Viewer - Plugin interface version: %5").arg(plugininterface->name()).arg(plugininterface->pluginVersion()).arg(plugininterface->pluginInterfaceVersion()).arg(dir.absolutePath()).arg(PLUGIN_INTERFACE_VERSION)); } } } else { QMessageBox::warning(0, QString("DLT Viewer"),QString("The plugin %1 cannot be loaded.\n\nError: %2").arg(dir.absoluteFilePath(fileName)).arg(pluginLoader.errorString())); } } } void QDltPluginManager::loadConfig(QString pluginName,QString filename) { for(int num=0;numgetName()==pluginName) plugin->setFilename(filename); } } void QDltPluginManager::decodeMsg(QDltMsg &msg, int triggeredByUser) { for(int num=0;numdecodeMsg(msg,triggeredByUser)) break; } } QDltPlugin* QDltPluginManager::findPlugin(QString &name) { for(int num=0;numgetName()==name) return plugin; } return 0; } QList QDltPluginManager::getDecoderPlugins() { QList list; for(int num=0;numisDecoder() && plugin->getMode()>=QDltPlugin::ModeEnable) list.append(plugin); } return list; } QList QDltPluginManager::getViewerPlugins() { QList list; for(int num=0;numisViewer() && plugin->getMode()>=QDltPlugin::ModeEnable) list.append(plugin); } return list; } bool QDltPluginManager::stateChanged(int index, QDltConnection::QDltConnectionState connectionState,QString hostname) { for(int num=0;numisControl() ) plugin->stateChanged(index,connectionState,hostname); } return true; } bool QDltPluginManager::autoscrollStateChanged(bool enabled) { for(int num=0;numisControl() ) plugin->autoscrollStateChanged(enabled); } return true; } bool QDltPluginManager::initControl(QDltControl *control) { for(int num=0;numisControl() ) plugin->initControl(control); } return true; } bool QDltPluginManager::initConnections(QStringList list) { for(int num=0;numisControl() ) plugin->initConnections(list); } return true; } dlt-viewer-2.18.0+dfsg/qdlt/qdltserialconnection.cpp0000664000175000017500000000243713001357026022122 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include "qdlt.h" extern "C" { #include "dlt_common.h" } QDltSerialConnection::QDltSerialConnection() : QDltConnection() { port = ""; baudrate = 0; m_qdltserialport = 0; } QDltSerialConnection::~QDltSerialConnection() { if(m_qdltserialport != NULL) { delete m_qdltserialport; m_qdltserialport = NULL; } } void QDltSerialConnection::setPort(QString _port) { port = _port; } QString QDltSerialConnection::getPort() { return port; } void QDltSerialConnection::setBaudrate(int _baudrate) { baudrate = _baudrate; } unsigned int QDltSerialConnection::getBaudrate() { return baudrate; } dlt-viewer-2.18.0+dfsg/qdlt/qdltudpconnection.h0000664000175000017500000000213113001357026021067 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2015-2016 Harman Becker Automotive Systems GmbH * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Olaf Dreyer * * \file qdltudpconnection.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef QDLT_UDP_CONNECTION_H #define QDLT_UDP_CONNECTION_H #include #include #include #include #include #include #include #include "export_rules.h" class QUdpSocket; class QDLT_EXPORT QDltUDPConnection : public QDltIPConnection { public: QDltUDPConnection(); virtual ~QDltUDPConnection(); virtual void setDefaultPort(); private: QUdpSocket *socket; }; #endif // QDLT_UDP_CONNECTION_H dlt-viewer-2.18.0+dfsg/qdlt/qdltdefaultfilter.h0000664000175000017500000000321413001357026021054 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdltdefaultfilter.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef QDLT_DEFAULT_FILTER_H #define QDLT_DEFAULT_FILTER_H #include #include #include #include #include #include #include #include #include #include "export_rules.h" class QDLT_EXPORT QDltDefaultFilter { public: //! The constructor. /*! */ QDltDefaultFilter(); //! The destructor. /*! */ ~QDltDefaultFilter(); //! Delete all filters and markers. /*! This includes all positive and negative filters and markers. */ void clear(); //! Load the filter list. /*! The old filter list is deleted. */ void load(QString path); //! Clear the default filter index cache. /*! The filter index are cleared. */ void clearFilterIndex(); /* Default Filter List */ QList defaultFilterList; /* Default Filter Index */ QList defaultFilterIndex; protected: private: }; #endif // QDLT_DEFAULT_FILTER_H dlt-viewer-2.18.0+dfsg/qdlt/qdltplugin.h0000664000175000017500000000735613001357026017533 0ustar potyrapotyra#ifndef QDLTPLUGIN_H #define QDLTPLUGIN_H #include "plugininterface.h" #include #include "export_rules.h" class QDLTPluginInterface; class QDLTPluginDecoderInterface; class QDltPluginViewerInterface; class QDltPluginControlInterface; class QDltPluginCommandInterface; //! Access class to a DLT Plugin to decode, view and control DLT messages /*! This class loads a DLT Viewer Plugin library and provides functions to access the plugin. */ class QDLT_EXPORT QDltPlugin { public: //! Constructor QDltPlugin(); //! Status of the plugin typedef enum { ModeDisable=0, ModeEnable, ModeShow } Mode; //! Plugin configuration type, file or directory enum { TypeFile, TypeDirectory }; //! Load the plugin by attaching the interfaces void loadPlugin(QObject *plugin); //! Get the name of the plugin QString getName(); //! Get the plugin version string QString getPluginVersion(); //! Get the plugin interface version string QString getPluginInterfaceVersion(); //! Get the running status of the plugin /*! Plugin can be disabled, enabled and viewed. */ int getMode(); //! Set the running status of the plugin /*! Plugin can be disabled, enabled and viewed. */ void setMode(QDltPlugin::Mode _mode); //! Get the complete filename of the plugin including path QString getFilename(); //! Set the complete filename of the plugin including path and load the plugin configuration void setFilename(QString _filename); //! Decode plugin if enabled and messages matches the decoder /*! \return True if decoded, false if not decoded */ bool decodeMsg(QDltMsg &msg, int triggeredByUser); //! Check if this is a decoder plugin /*! \return True if it is a decoder plugin */ bool isDecoder(); //! Check if this is a viewer plugin /*! \return True if it is a viewer plugin */ bool isViewer(); //! Check if this is a control plugin /*! \return True if it is a control plugin */ bool isControl(); //! Check if this is a command plugin /*! \return True if it is a command plugin */ bool isCommand(); // generic plugin interfaces QStringList infoConfig(); QString error(); bool loadConfig(QString filename); // viewer plugin interfaces QWidget* initViewer(); void initFileStart(QDltFile *file); void initFileFinish(); void initMsg(int index, QDltMsg &msg); void initMsgDecoded(int index, QDltMsg &msg); void updateFileStart(); void updateMsg(int index, QDltMsg &msg); void updateMsgDecoded(int index, QDltMsg &msg); void updateFileFinish(); void selectedIdxMsg(int index, QDltMsg &msg); void selectedIdxMsgDecoded(int index, QDltMsg &msg); // control plugin interfaces bool initControl(QDltControl *control); bool initConnections(QStringList list); bool controlMsg(int index, QDltMsg &msg); bool stateChanged(int index, QDltConnection::QDltConnectionState connectionState, QString hostname); bool autoscrollStateChanged(bool enabled); // command plugin interfaces bool command(QString cmd,QStringList params); private: //! The complete filename of the plugin including path QString filename; //! The running status of the plugin Mode mode; //! Link to all the plugin interfaces, when plugin loaded /*! Pointers are zero, if plugin does not support the interface. */ QDLTPluginInterface *plugininterface; QDLTPluginDecoderInterface *plugindecoderinterface; QDltPluginViewerInterface *pluginviewerinterface; QDltPluginControlInterface *plugincontrolinterface; QDltPluginCommandInterface *plugincommandinterface; }; #endif // QDLTPLUGIN_H dlt-viewer-2.18.0+dfsg/qdlt/qdltmsg.cpp0000664000175000017500000004502613001357026017352 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "qdlt.h" extern "C" { #include "dlt_common.h" } QDltMsg::QDltMsg() { clear(); } QDltMsg::~QDltMsg() { } QString QDltMsg::getTypeString() const { return QString((type>=0 && type<=7)?qDltMessageType[type]:""); } QString QDltMsg::getSubtypeString() const { switch(type) { case DltTypeLog: return QString((subtype>=0 && subtype<=7)?qDltLogInfo[subtype]:""); break; case DltTypeAppTrace: return QString((subtype>=0 && subtype<=7)?qDltTraceType[subtype]:""); break; case DltTypeNwTrace: return QString((subtype>=0 && subtype<=7)?qDltNwTraceType[subtype]:""); break; case DltTypeControl: return QString((subtype>=0 && subtype<=7)?qDltControlType[subtype]:""); break; default: return QString(""); } } QString QDltMsg::getModeString() const { return QString((mode>=0 && mode<=1)?qDltMode[mode]:""); } QString QDltMsg::getEndiannessString() const { return QString((endianness>=0 && endianness<=1)?qDltEndianness[endianness]:""); } unsigned int QDltMsg::getCtrlServiceId() const { return ctrlServiceId; } QString QDltMsg::getCtrlServiceIdString() const { if(ctrlServiceId == DLT_SERVICE_ID_UNREGISTER_CONTEXT) return QString("unregister_context"); else if(ctrlServiceId == DLT_SERVICE_ID_CONNECTION_INFO) return QString("connection_info"); else if(ctrlServiceId == DLT_SERVICE_ID_TIMEZONE) return QString("timezone"); else if(ctrlServiceId == DLT_SERVICE_ID_MARKER) return QString("marker"); else return QString(( ctrlServiceId<=20 )?qDltCtrlServiceId[ctrlServiceId]:""); } unsigned char QDltMsg::getCtrlReturnType() const { return ctrlReturnType; } QString QDltMsg::getCtrlReturnTypeString() const { return QString(( ctrlReturnType<=8 )?qDltCtrlReturnType[ctrlReturnType]:""); } QString QDltMsg::getTimeString() const { char strtime[256]; struct tm *time_tm; time_tm = localtime(&time); if(time_tm) strftime(strtime, 256, "%Y/%m/%d %H:%M:%S", time_tm); return QString(strtime); } QString QDltMsg::getGmTimeWithOffsetString(qlonglong offset, bool dst) { struct tm *time_tm; time_tm = gmtime(&time); /*Reason for adding: tm_mon months since January 0-11 tm_year years since 1900 */ QDate date(time_tm->tm_year+1900,time_tm->tm_mon+1,time_tm->tm_mday); QTime time(time_tm->tm_hour,time_tm->tm_min,time_tm->tm_sec); if(!date.isValid() || !time.isValid()) return QString("Invalid date"); QDateTime gmDateTime(date,time,Qt::UTC); gmDateTime = gmDateTime.addSecs(offset); if(dst) gmDateTime = gmDateTime.addSecs(3600); return gmDateTime.toString("yyyy/MM/dd hh:mm:ss"); } bool QDltMsg::setMsg(QByteArray buf, bool withStorageHeader) { unsigned int offset; QDltArgument argument; const DltStorageHeader *storageheader = 0; const DltStandardHeader *standardheader = 0; const DltExtendedHeader *extendedheader = 0; DltStandardHeaderExtra headerextra; unsigned int extra_size,headersize,datasize; int sizeStorageHeader = 0; /* set offset of storage header */ if(withStorageHeader) { sizeStorageHeader = sizeof(DltStorageHeader); } /* empty message */ clear(); if(buf.size() < (int)(sizeStorageHeader+sizeof(DltStandardHeader))) { return false; } if(withStorageHeader) { storageheader = (DltStorageHeader*) buf.constData(); } standardheader = (DltStandardHeader*) (buf.constData() + sizeStorageHeader); /* calculate complete size of headers */ extra_size = DLT_STANDARD_HEADER_EXTRA_SIZE(standardheader->htyp)+(DLT_IS_HTYP_UEH(standardheader->htyp) ? sizeof(DltExtendedHeader) : 0); headersize = sizeStorageHeader + sizeof(DltStandardHeader) + extra_size; if(DLT_SWAP_16(standardheader->len)<(static_cast(headersize) - sizeStorageHeader)) { // there is something wrong with the header, at least size of header // at the momment no error, distinguish different errors needed datasize = 0; } else { datasize = DLT_SWAP_16(standardheader->len) - (headersize - sizeStorageHeader); } /* check header length */ if (buf.size() < (int)(headersize)) { return false; } /* store payload size */ payloadSize = datasize; /* store header size */ headerSize = headersize; /* copy header */ header = buf.mid(0,headersize); /* load standard header extra parameters and Extended header if used */ if (extra_size>0) { /* set extended header ptr and get standard header extra parameters */ if (DLT_IS_HTYP_UEH(standardheader->htyp)) { extendedheader = (DltExtendedHeader*) (buf.constData() + sizeStorageHeader + sizeof(DltStandardHeader) + DLT_STANDARD_HEADER_EXTRA_SIZE(standardheader->htyp)); } else { extendedheader = 0; } if (DLT_IS_HTYP_WEID(standardheader->htyp)) { memcpy(headerextra.ecu,buf.constData() + sizeStorageHeader + sizeof(DltStandardHeader),DLT_ID_SIZE); } if (DLT_IS_HTYP_WSID(standardheader->htyp)) { memcpy(&(headerextra.seid),buf.constData() + sizeStorageHeader + sizeof(DltStandardHeader) + (DLT_IS_HTYP_WEID(standardheader->htyp) ? DLT_SIZE_WEID : 0), DLT_SIZE_WSID); headerextra.seid = DLT_BETOH_32(headerextra.seid); } if (DLT_IS_HTYP_WTMS(standardheader->htyp)) { memcpy(&(headerextra.tmsp),buf.constData() + sizeStorageHeader + sizeof(DltStandardHeader) + (DLT_IS_HTYP_WEID(standardheader->htyp) ? DLT_SIZE_WEID : 0) + (DLT_IS_HTYP_WSID(standardheader->htyp) ? DLT_SIZE_WSID : 0),DLT_SIZE_WTMS); headerextra.tmsp = DLT_BETOH_32(headerextra.tmsp); } } /* extract ecu id */ if ( DLT_IS_HTYP_WEID(standardheader->htyp) ) { ecuid = QString(QByteArray(headerextra.ecu,4)); } else { if(storageheader) ecuid = QString(QByteArray(storageheader->ecu,4)); } /* extract application id */ if ((DLT_IS_HTYP_UEH(standardheader->htyp)) && (extendedheader->apid[0]!=0)) { apid = QString(QByteArray(extendedheader->apid,4)); } /* extract context id */ if ((DLT_IS_HTYP_UEH(standardheader->htyp)) && (extendedheader->ctid[0]!=0)) { ctid = QString(QByteArray(extendedheader->ctid,4)); } /* extract type */ if (DLT_IS_HTYP_UEH(standardheader->htyp)) { type = (DltTypeDef) DLT_GET_MSIN_MSTP(extendedheader->msin); } /* extract subtype */ if (DLT_IS_HTYP_UEH(standardheader->htyp)) { subtype = DLT_GET_MSIN_MTIN(extendedheader->msin); } /* extract mode */ if (DLT_IS_HTYP_UEH(standardheader->htyp)) { if(DLT_IS_MSIN_VERB(extendedheader->msin)) { mode = DltModeVerbose; } else { mode = DltModeNonVerbose; } } else { mode = DltModeNonVerbose; } /* extract endianness */ if(DLT_IS_HTYP_MSBF(standardheader->htyp)) { endianness = DltEndiannessBigEndian; } else { endianness = DltEndiannessLittleEndian; } /* extract time */ if(storageheader) { time = storageheader->seconds; microseconds = storageheader->microseconds; } /* extract timestamp */ if ( DLT_IS_HTYP_WTMS(standardheader->htyp) ) { timestamp = headerextra.tmsp; /* big endian to host little endian conversion already done */ } /* extract session id */ if (DLT_IS_HTYP_WSID(standardheader->htyp)) { sessionid = headerextra.seid; } /* extract message counter */ messageCounter = standardheader->mcnt; /* extract number of arguments */ if (DLT_IS_HTYP_UEH(standardheader->htyp) && (mode == DltModeVerbose)) { numberOfArguments = extendedheader->noar; } /* check complete length */ if (buf.size() < (int)(headersize+payloadSize)) { return false; } /* copy payload */ if(payloadSize>0) payload = buf.mid(headersize,payloadSize); /* set messageid if non verbose */ if((mode == DltModeNonVerbose) && payload.size()>=4) { /* message id is always in big endian format */ if(endianness == DltEndiannessLittleEndian) { messageId = (*((unsigned int*) payload.constData())); } else { messageId = DLT_SWAP_32((*((unsigned int*) payload.constData()))); } } /* set service id if message of type control */ if((type == DltTypeControl) && payload.size()>=4) { if(endianness == DltEndiannessLittleEndian) ctrlServiceId = *((unsigned int*) payload.constData()); else ctrlServiceId = DLT_SWAP_32(*((unsigned int*) payload.constData())); } /* set return type if message of type control response */ if((type == QDltMsg::DltTypeControl) && (subtype == QDltMsg::DltControlResponse) && payload.size()>=6) { ctrlReturnType = *((unsigned char*) &(payload.constData()[4])); } /* get the arguments of the payload */ if(mode==DltModeVerbose) { offset = 0; arguments.clear(); for(int num=0;num3?4:ecuid.size()+1); storageheader.microseconds = microseconds; storageheader.seconds = time; buf += QByteArray((const char *)&storageheader,sizeof(DltStorageHeader)); } /* write standardheader */ standardheader.htyp = 0x01 << 5; /* intialise with version number 0x1 */ if(endianness == DltEndiannessBigEndian) { standardheader.htyp |= DLT_HTYP_MSBF; } if(mode == DltModeVerbose) { standardheader.htyp |= DLT_HTYP_UEH; standardheader.htyp |= DLT_HTYP_WEID; standardheader.htyp |= DLT_HTYP_WSID; standardheader.htyp |= DLT_HTYP_WTMS; standardheader.len = DLT_SWAP_16(sizeof(DltStandardHeader) + sizeof(headerextra.ecu) + sizeof(headerextra.seid) + sizeof(headerextra.tmsp) + sizeof(DltExtendedHeader) + payload.size()); } else { standardheader.len = DLT_SWAP_16(sizeof(DltStandardHeader) + payload.size()); } standardheader.mcnt = messageCounter; buf += QByteArray((const char *)&standardheader,sizeof(DltStandardHeader)); /* write standard header extra */ if(mode == DltModeVerbose) { strncpy(headerextra.ecu,ecuid.toLatin1().constData(),ecuid.size()>3?4:ecuid.size()+1); buf += QByteArray((const char *)&(headerextra.ecu),sizeof(headerextra.ecu)); headerextra.seid = DLT_SWAP_32(sessionid); buf += QByteArray((const char *)&(headerextra.seid),sizeof(headerextra.seid)); headerextra.tmsp = DLT_SWAP_32(timestamp); buf += QByteArray((const char *)&(headerextra.tmsp),sizeof(headerextra.tmsp)); } /* write extendedheader */ if(mode == DltModeVerbose) { strncpy(extendedheader.apid,apid.toLatin1().constData(),apid.size()>3?4:apid.size()+1); strncpy(extendedheader.ctid,ctid.toLatin1().constData(),ctid.size()>3?4:ctid.size()+1); extendedheader.msin = 0; if(mode == DltModeVerbose) { extendedheader.msin |= DLT_MSIN_VERB; } extendedheader.msin |= (((unsigned char)type) << 1) & DLT_MSIN_MSTP; extendedheader.msin |= (((unsigned char)subtype) << 4) & DLT_MSIN_MTIN; extendedheader.noar = numberOfArguments; buf += QByteArray((const char *)&extendedheader,sizeof(DltExtendedHeader)); } /* write payload */ buf += payload; return true; } void QDltMsg::clear() { ecuid.clear(); apid.clear(); ctid.clear(); type = DltTypeUnknown; subtype = DltLogUnknown; mode = DltModeUnknown; endianness = DltEndiannessUnknown; time = 0; microseconds = 0; timestamp = 0; sessionid = 0; sessionName.clear(); numberOfArguments = 0; messageId = 0; ctrlServiceId = 0; ctrlReturnType = 0; arguments.clear(); payload.clear(); payloadSize = 0; header.clear(); headerSize = 0; } void QDltMsg::clearArguments() { arguments.clear(); } int QDltMsg::sizeArguments() const { return arguments.size(); } bool QDltMsg::getArgument(int index,QDltArgument &argument) const { if(index<0 || index>=arguments.size()) return false; argument = arguments.at(index); return true; } void QDltMsg::addArgument(QDltArgument argument, int index) { if(index == -1) arguments.append(argument); else arguments.insert(index,argument); } void QDltMsg::removeArgument(int index) { arguments.removeAt(index); } QString QDltMsg::toStringHeader() const { QString text; text.reserve(1024); text += QString("%1.%2").arg(getTimeString()).arg(getMicroseconds(),6,10,QLatin1Char('0')); text += QString(" %1.%2").arg(getTimestamp()/10000).arg(getTimestamp()%10000,4,10,QLatin1Char('0')); text += QString(" %1").arg(getMessageCounter()); text += QString(" %1").arg(getEcuid()); text += QString(" %1").arg(getApid()); text += QString(" %1").arg(getCtid()); text += QString(" %1").arg(getSessionid()); text += QString(" %2").arg(getTypeString()); text += QString(" %2").arg(getSubtypeString()); text += QString(" %2").arg(getModeString()); text += QString(" %1").arg(getNumberOfArguments()); return text; } QString QDltMsg::toStringPayload() const { QString text; QDltArgument argument; QByteArray data; text.reserve(1024); if((getMode()==QDltMsg::DltModeNonVerbose) && (getType()!=QDltMsg::DltTypeControl) && (getNumberOfArguments() == 0)) { text += QString("[%1] ").arg(getMessageId()); data = payload.mid(4,(payload.size()>260)?256:(payload.size()-4)); if(!data.isEmpty()) { text += toAsciiTable(data,false,false,true,1024,1024,false); text += "|"; text += toAscii(data, false); } return text; } if( getType()==QDltMsg::DltTypeControl && getSubtype()==QDltMsg::DltControlResponse) { if(getCtrlServiceId() == DLT_SERVICE_ID_MARKER) { return "MARKER"; } text += QString("[%1 %2] ").arg(getCtrlServiceIdString()).arg(getCtrlReturnTypeString()); // ServiceID of Get ECU Software Version if(getCtrlServiceId() == DLT_SERVICE_ID_GET_SOFTWARE_VERSION) { // Skip the ServiceID, Status and Lenght bytes and start from the String containing the ECU Software Version data = payload.mid(9,(payload.size()>262)?256:(payload.size()-9)); text += toAscii(data,true); } else if(getCtrlServiceId() == DLT_SERVICE_ID_CONNECTION_INFO) { if(payload.size() == sizeof(DltServiceConnectionInfo)) { DltServiceConnectionInfo *service; service = (DltServiceConnectionInfo*) payload.constData(); switch(service->state) { case DLT_CONNECTION_STATUS_DISCONNECTED: text += "disconnected"; break; case DLT_CONNECTION_STATUS_CONNECTED: text += "connected"; break; default: text += "unknown"; } text += " " + QString(QByteArray(service->comid,4)); } else { data = payload.mid(5,(payload.size()>262)?256:(payload.size()-6)); text += toAscii(data); } } else if(getCtrlServiceId() == DLT_SERVICE_ID_TIMEZONE) { if(payload.size() == sizeof(DltServiceTimezone)) { DltServiceTimezone *service; service = (DltServiceTimezone*) payload.constData(); if(endianness == DltEndiannessLittleEndian) text += QString("%1 s").arg(service->timezone); else text += QString("%1 s").arg(DLT_SWAP_32(service->timezone)); text += QString(" %1").arg(service->isdst?"DST":""); } else { data = payload.mid(5,(payload.size()>262)?256:(payload.size()-6)); text += toAscii(data); } } else { data = payload.mid(5,(payload.size()>262)?256:(payload.size()-6)); text += toAscii(data); } return text; } if( getType()==QDltMsg::DltTypeControl) { text += QString("[%1] ").arg(getCtrlServiceIdString()); data = payload.mid(4,(payload.size()>260)?256:(payload.size()-4)); text += toAscii(data); return text; } for(int num=0;num #include #include QDltPlugin::QDltPlugin() { plugininterface = 0; pluginviewerinterface = 0; plugindecoderinterface = 0; plugincontrolinterface = 0; plugincommandinterface = 0; mode = ModeDisable; } QString QDltPlugin::getName() { if(plugininterface) return plugininterface->name(); else return QString(); } QString QDltPlugin::getPluginVersion() { if(plugininterface) return plugininterface->pluginVersion(); else return QString(); } QString QDltPlugin::getPluginInterfaceVersion() { if(plugininterface) return plugininterface->pluginInterfaceVersion(); else return QString(); } int QDltPlugin::getMode() { //return QDltSettingsManager::getInstance()->value("plugin/pluginmodefor"+getName(),QVariant(QDltPlugin::ModeDisable)).toInt(); return mode; } void QDltPlugin::setMode(QDltPlugin::Mode _mode) { //return QDltSettingsManager::getInstance()->value("plugin/pluginmodefor"+getName(),QVariant(QDltPlugin::ModeDisable)).toInt(); mode = _mode; } void QDltPlugin::setFilename(QString _filename) { filename = _filename; if(plugininterface) plugininterface->loadConfig(_filename); setMode(ModeEnable); } QString QDltPlugin::getFilename() { return filename; } void QDltPlugin::loadPlugin(QObject *plugin) { plugininterface = qobject_cast(plugin); pluginviewerinterface = qobject_cast(plugin); if(pluginviewerinterface) { /*widget = pluginviewerinterface->initViewer(); if(widget) { dockWidget = new QDockWidget(getName(),this); dockWidget = new MyPluginDockWidget(item,this); dockWidget->setAllowedAreas(Qt::AllDockWidgetAreas); dockWidget->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable); dockWidget->setWidget(widget); dockWidget->setObjectName(getName()); addDockWidget(Qt::LeftDockWidgetArea, dockWidget); if(getMode() != PluginItem::ModeShow) { dockWidget->hide(); } }*/ } plugindecoderinterface = qobject_cast(plugin); plugincontrolinterface = qobject_cast(plugin); plugincommandinterface = qobject_cast(plugin); //item->update(); } bool QDltPlugin::decodeMsg(QDltMsg &msg, int triggeredByUser) { if(mode != ModeDisable && plugindecoderinterface && plugindecoderinterface->isMsg(msg,triggeredByUser)) { plugindecoderinterface->decodeMsg(msg,triggeredByUser); return true; } return false; } bool QDltPlugin::isDecoder() { return (plugindecoderinterface?true:false); } bool QDltPlugin::isViewer() { return (pluginviewerinterface?true:false); } bool QDltPlugin::isControl() { return (plugincontrolinterface?true:false); } bool QDltPlugin::isCommand() { return (plugincommandinterface?true:false); } QStringList QDltPlugin::infoConfig() { if(plugininterface) return plugininterface->infoConfig(); else return QStringList(); } bool QDltPlugin::loadConfig(QString filename) { if(plugininterface) return plugininterface->loadConfig(filename); else return false; } QString QDltPlugin::error() { if(plugininterface) return plugininterface->error(); else return QString(); } bool QDltPlugin::command(QString cmd,QStringList params) { if(plugincommandinterface) return plugincommandinterface->command(cmd,params); else return false; } // viewer plugin interfaces QWidget* QDltPlugin::initViewer() { if(pluginviewerinterface) return pluginviewerinterface->initViewer(); else return 0; } void QDltPlugin::initFileStart(QDltFile *file) { if(pluginviewerinterface) pluginviewerinterface->initFileStart(file); } void QDltPlugin::initFileFinish() { if(pluginviewerinterface) pluginviewerinterface->initFileFinish(); } void QDltPlugin::initMsg(int index, QDltMsg &msg) { if(pluginviewerinterface) pluginviewerinterface->initMsg(index,msg); } void QDltPlugin::initMsgDecoded(int index, QDltMsg &msg) { if(pluginviewerinterface) pluginviewerinterface->initMsgDecoded(index,msg); } void QDltPlugin::updateFileStart() { if(pluginviewerinterface) pluginviewerinterface->updateFileStart(); } void QDltPlugin::updateMsg(int index, QDltMsg &msg) { if(pluginviewerinterface) pluginviewerinterface->updateMsg(index,msg); } void QDltPlugin::updateMsgDecoded(int index, QDltMsg &msg) { if(pluginviewerinterface) pluginviewerinterface->updateMsgDecoded(index,msg); } void QDltPlugin::updateFileFinish() { if(pluginviewerinterface) pluginviewerinterface->updateFileFinish(); } void QDltPlugin::selectedIdxMsg(int index, QDltMsg &msg) { if(pluginviewerinterface) pluginviewerinterface->selectedIdxMsg(index,msg); } void QDltPlugin::selectedIdxMsgDecoded(int index, QDltMsg &msg) { if(pluginviewerinterface) pluginviewerinterface->selectedIdxMsgDecoded(index,msg); } // control plugin interface bool QDltPlugin::initControl(QDltControl *control) { if(plugincontrolinterface) return plugincontrolinterface->initControl(control); else return false; } bool QDltPlugin::initConnections(QStringList list) { if(plugincontrolinterface) return plugincontrolinterface->initConnections(list); else return false; } bool QDltPlugin::controlMsg(int index, QDltMsg &msg) { if(plugincontrolinterface) return plugincontrolinterface->controlMsg(index,msg); else return false; } bool QDltPlugin::stateChanged(int index, QDltConnection::QDltConnectionState connectionState,QString hostname) { if(plugincontrolinterface) return plugincontrolinterface->stateChanged(index,connectionState,hostname); else return false; } bool QDltPlugin::autoscrollStateChanged(bool enabled) { if(plugincontrolinterface) return plugincontrolinterface->autoscrollStateChanged(enabled); else return false; } dlt-viewer-2.18.0+dfsg/qdlt/qdltfilterindex.cpp0000664000175000017500000000174713001357026021103 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdltfilterindex.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "qdlt.h" extern "C" { #include "dlt_common.h" } void QDltFilterIndex::setIndexFilter(QVector _indexFilter) { indexFilter = _indexFilter; } void QDltFilterIndex::setDltFileName(QString _dltFileName) { dltFileName = _dltFileName; } void QDltFilterIndex::setAllIndexSize(int _allIndexSize) { allIndexSize = _allIndexSize; } dlt-viewer-2.18.0+dfsg/qdlt/qdltargument.cpp0000664000175000017500000005075513001357026020413 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "qdlt.h" extern "C" { #include "dlt_common.h" } QDltArgument::QDltArgument() { // clear content of argument clear(); } QDltArgument::~QDltArgument() { } int QDltArgument::getOffsetPayload() const { return offsetPayload; } QByteArray QDltArgument::getData() const { return data; } QString QDltArgument::getName() const { return name; } QString QDltArgument::getUnit() const { return unit; } int QDltArgument::getDataSize() const { return data.size(); } QDltArgument::DltTypeInfoDef QDltArgument::getTypeInfo() const { return typeInfo; } QString QDltArgument::getTypeInfoString() const { if(typeInfo<0) return QString(""); return QString(qDltTypeInfo[typeInfo]); } bool QDltArgument::setArgument(QByteArray &payload,unsigned int &offset,DltEndiannessDef _endianess) { unsigned short length=0,length2=0,length3=0; /* clear old data */ clear(); /* store offset */ offsetPayload = offset; /* store new endianness */ endianness = _endianess; /* get type info */ if((unsigned int)payload.size()<(offset+sizeof(unsigned int))) return false; if(endianness == DltEndiannessLittleEndian) dltType = *((unsigned int*) (payload.constData()+offset)); else dltType = DLT_SWAP_32((*((unsigned int*) (payload.constData()+offset)))); offset += sizeof(unsigned int); if (dltType& DLT_TYPE_INFO_STRG) { if ((dltType & DLT_TYPE_INFO_SCOD)==DLT_SCOD_UTF8) { typeInfo = DltTypeInfoUtf8; } else { typeInfo = DltTypeInfoStrg; } } else if (dltType & DLT_TYPE_INFO_BOOL) { typeInfo = DltTypeInfoBool; } else if (dltType & DLT_TYPE_INFO_SINT) { typeInfo = DltTypeInfoSInt; } else if (dltType & DLT_TYPE_INFO_UINT) { typeInfo = DltTypeInfoUInt; } else if (dltType & DLT_TYPE_INFO_FLOA) { typeInfo = DltTypeInfoFloa; } else if (dltType & DLT_TYPE_INFO_RAWD) { typeInfo = DltTypeInfoRawd; } else if (dltType & DLT_TYPE_INFO_TRAI) { typeInfo = DltTypeInfoTrai; } else { typeInfo = DltTypeInfoUnknown; return false; } /* get length of string, raw data or trace info */ if(typeInfo == DltTypeInfoStrg || typeInfo == DltTypeInfoRawd || typeInfo == DltTypeInfoTrai || typeInfo == DltTypeInfoUtf8) { if((unsigned int)payload.size()<(offset+sizeof(unsigned short))) return false; if(endianness == DltEndiannessLittleEndian) length = *((unsigned short*) (payload.constData()+offset)); else length = DLT_SWAP_16((*((unsigned short*) (payload.constData()+offset)))); offset += sizeof(unsigned short); } /* get variable info */ if(dltType & DLT_TYPE_INFO_VARI) { if((unsigned int)payload.size()<(offset+sizeof(unsigned short))) return false; if(endianness == DltEndiannessLittleEndian) length2 = *((unsigned short*) (payload.constData()+offset)); else length2 = DLT_SWAP_16((*((unsigned short*) (payload.constData()+offset)))); offset += sizeof(unsigned short); if(typeInfo == DltTypeInfoSInt || typeInfo == DltTypeInfoUInt || typeInfo == DltTypeInfoFloa) { if((unsigned int)payload.size()<(offset+sizeof(unsigned short))) return false; if(endianness == DltEndiannessLittleEndian) length3 = *((unsigned short*) (payload.constData()+offset)); else length3 = DLT_SWAP_16((*((unsigned short*) (payload.constData()+offset)))); offset += sizeof(unsigned short); } name = QString(payload.mid(offset,length2)); offset += length2; if(typeInfo == DltTypeInfoSInt || typeInfo == DltTypeInfoUInt || typeInfo == DltTypeInfoFloa) { unit = QString(payload.mid(offset,length3)); offset += length3; } } /* get fix point quantisation and offset */ if(dltType & DLT_TYPE_INFO_FIXP) { /* not supported yet */ return false; } /* get data */ if(typeInfo == DltTypeInfoStrg || typeInfo == DltTypeInfoRawd || typeInfo == DltTypeInfoTrai || typeInfo == DltTypeInfoUtf8) { if((unsigned int)payload.size()<(offset+length)) return false; data = payload.mid(offset,length); offset += length; } else if(typeInfo == DltTypeInfoBool) { data = payload.mid(offset,1); offset += 1; } else if(typeInfo == DltTypeInfoSInt || typeInfo == DltTypeInfoUInt) { switch (dltType & DLT_TYPE_INFO_TYLE) { case DLT_TYLE_8BIT: { data = payload.mid(offset,1); offset += 1; break; } case DLT_TYLE_16BIT: { data = payload.mid(offset,2); offset += 2; break; } case DLT_TYLE_32BIT: { data = payload.mid(offset,4); offset += 4; break; } case DLT_TYLE_64BIT: { data = payload.mid(offset,8); offset += 8; break; } case DLT_TYLE_128BIT: { data = payload.mid(offset,16); offset += 16; break; } default: { return false; } } } else if(typeInfo == DltTypeInfoFloa) { switch(dltType & DLT_TYPE_INFO_TYLE) { case DLT_TYLE_8BIT: { data = payload.mid(offset,1); offset += 1; break; } case DLT_TYLE_16BIT: { data = payload.mid(offset,2); offset += 2; break; } case DLT_TYLE_32BIT: { data = payload.mid(offset,4); offset += 4; break; } case DLT_TYLE_64BIT: { data = payload.mid(offset,8); offset += 8; break; } case DLT_TYLE_128BIT: { data = payload.mid(offset,16); offset += 16; break; } default: { return false; } } } return true; } bool QDltArgument::getArgument(QByteArray &payload, bool verboseMode) const { unsigned int dltType = 0; bool appendSize = false; /* add the type info in verbose mode */ if(verboseMode) { switch(typeInfo) { case DltTypeInfoUnknown: return false; case DltTypeInfoStrg: dltType |= DLT_TYPE_INFO_STRG; dltType |= DLT_SCOD_ASCII; appendSize = true; break; case DltTypeInfoUtf8: dltType |= DLT_TYPE_INFO_STRG; dltType |= DLT_SCOD_UTF8; appendSize = true; break; case DltTypeInfoBool: dltType |= DLT_TYPE_INFO_BOOL; break; case DltTypeInfoSInt: dltType |= DLT_TYPE_INFO_SINT; break; case DltTypeInfoUInt: dltType |= DLT_TYPE_INFO_UINT; break; case DltTypeInfoFloa: dltType |= DLT_TYPE_INFO_FLOA; break; case DltTypeInfoRawd: dltType |= DLT_TYPE_INFO_RAWD; appendSize = true; break; case DltTypeInfoTrai: // dltType |= DLT_TYPE_INFO_TRAI; return false; default: return false; } if((typeInfo == DltTypeInfoSInt) || (typeInfo == DltTypeInfoUInt) || (typeInfo == DltTypeInfoFloa)) { switch(data.size()) { case 1: dltType |= DLT_TYLE_8BIT; break; case 2: dltType |= DLT_TYLE_16BIT; break; case 4: dltType |= DLT_TYLE_32BIT; break; case 8: dltType |= DLT_TYLE_64BIT; break; case 16: dltType |= DLT_TYLE_128BIT; break; default: return false; } } payload += QByteArray((const char*)&dltType,sizeof(unsigned int)); } /* add the string or raw data size to the payload */ if(appendSize) { ushort size = data.size(); payload += QByteArray((const char*)&size, sizeof(ushort)); } /* add the value to the payload */ payload += data; return true; } void QDltArgument::clear() { typeInfo = QDltArgument::DltTypeInfoUnknown; offsetPayload = 0; data.clear(); name.clear(); unit.clear(); endianness = QDltArgument::DltEndiannessUnknown; dltType = 0; } QString QDltArgument::toString(bool binary) const { QString text; text.reserve(1024); if(binary) { return toAscii(data); } switch(getTypeInfo()) { case DltTypeInfoUnknown: text += QString("?"); break; case DltTypeInfoStrg: if(data.size()) { text += QString("%1").arg(QString(getData())); } break; case DltTypeInfoUtf8: if(data.size()) { text += QString::fromUtf8(data.data()); } break; case DltTypeInfoBool: if(data.size()) { if(data.constData()[0]) text += QString("true"); else text += QString("false"); } else text += QString("?"); break; case DltTypeInfoSInt: switch(data.size()) { case 1: text += QString("%1").arg((short)(*(char*)(data.constData()))); break; case 2: if(endianness == DltEndiannessLittleEndian) text += QString("%1").arg((short)(*(short*)(data.constData()))); else text += QString("%1").arg((short)DLT_SWAP_16((short)(*(short*)(data.constData())))); break; case 4: if(endianness == DltEndiannessLittleEndian) text += QString("%1").arg((int)(*(int*)(data.constData()))); else text += QString("%1").arg((int)DLT_SWAP_32((int)(*(int*)(data.constData())))); break; case 8: if(endianness == DltEndiannessLittleEndian) text += QString("%1").arg((long long)(*(long long*)(data.constData()))); else text += QString("%1").arg((long long)DLT_SWAP_64((long long)(*(long long*)(data.constData())))); break; default: text += QString("?"); } break; case DltTypeInfoUInt: if ((dltType & DLT_TYPE_INFO_SCOD)==DLT_SCOD_BIN) { if((dltType & DLT_TYPE_INFO_TYLE)==DLT_TYLE_8BIT) text += toAscii(data,2,1); // show binary else if((dltType & DLT_TYPE_INFO_TYLE)==DLT_TYLE_16BIT) text += toAscii(data,2,2); // show binary } else if ((dltType & DLT_TYPE_INFO_SCOD)==DLT_SCOD_HEX) { if((dltType & DLT_TYPE_INFO_TYLE)==DLT_TYLE_8BIT) text += toAscii(data,0,1); // show 8 bit hex else if((dltType & DLT_TYPE_INFO_TYLE)==DLT_TYLE_16BIT) text += toAscii(data,0,2); // show 16 bit hex else if((dltType & DLT_TYPE_INFO_TYLE)==DLT_TYLE_32BIT) text += toAscii(data,0,4); // show 32 bit hex else if((dltType & DLT_TYPE_INFO_TYLE)==DLT_TYLE_64BIT) text += toAscii(data,0,8); // show 64 bit hex } else { switch(data.size()) { case 1: text += QString("%1").arg((unsigned short)(*(unsigned char*)(data.constData()))); break; case 2: if(endianness == DltEndiannessLittleEndian) text += QString("%1").arg((unsigned short)(*(unsigned short*)(data.constData()))); else text += QString("%1").arg((unsigned short)DLT_SWAP_16((unsigned short)(*(unsigned short*)(data.constData())))); break; case 4: if(endianness == DltEndiannessLittleEndian) text += QString("%1").arg((unsigned int)(*(unsigned int*)(data.constData()))); else text += QString("%1").arg((unsigned int)DLT_SWAP_32((unsigned int)(*(unsigned int*)(data.constData())))); break; case 8: if(endianness == DltEndiannessLittleEndian) text += QString("%1").arg((unsigned long long)(*(unsigned long long*)(data.constData()))); else text += QString("%1").arg((unsigned long long)DLT_SWAP_64((unsigned long long)(*(unsigned long long*)(data.constData())))); break; default: text += QString("?"); } } break; case DltTypeInfoFloa: switch(data.size()) { case 4: if(endianness == DltEndiannessLittleEndian) text += QString("%1").arg((double)(*(float*)(data.constData()))); else { unsigned int tmp; tmp = DLT_SWAP_32((unsigned int)(*(unsigned int*)(data.constData()))); void *buf = (void *) &tmp; text += QString("%1").arg((double)(*((float*)buf))); } break; case 8: if(endianness == DltEndiannessLittleEndian) text += QString("%1").arg((double)(*(double*)(data.constData()))); else { unsigned int tmp; tmp = DLT_SWAP_64((unsigned long long)(*(unsigned long long*)(data.constData()))); void *buf = (void *) &tmp; text += QString("%1").arg((double)(*((double*)buf))); } break; default: text += QString("?"); } break; case DltTypeInfoRawd: text += toAscii(data,0); // show raw format (no leading 0x) break; case DltTypeInfoTrai: text += QString("?"); break; default: text += QString("?"); } return text; } QVariant QDltArgument::getValue() const { switch(typeInfo) { case DltTypeInfoUnknown: break; case DltTypeInfoStrg: if(data.size()) { return QVariant(QString(getData())); } break; case DltTypeInfoUtf8: if(data.size()) { return QVariant(QString::fromUtf8(data.data())); } break; case DltTypeInfoBool: if(data.size()) { return QVariant((bool)(data.constData()[0])); } break; case DltTypeInfoSInt: switch(data.size()) { case 1: return QVariant((short)(*(char*)(data.constData()))); case 2: if(endianness == DltEndiannessLittleEndian) return QVariant((short)(*(short*)(data.constData()))); else return QVariant(DLT_SWAP_16((short)(*(short*)(data.constData())))); case 4: if(endianness == DltEndiannessLittleEndian) return QVariant((int)(*(int*)(data.constData()))); else return QVariant(DLT_SWAP_32((int)(*(int*)(data.constData())))); case 8: if(endianness == DltEndiannessLittleEndian) return QVariant((long long)(*(long long*)(data.constData()))); else return QVariant(DLT_SWAP_64((long long)(*(long long*)(data.constData())))); default: break; } break; case DltTypeInfoUInt: switch(data.size()) { case 1: return QVariant((unsigned short)(*(unsigned char*)(data.constData()))); case 2: if(endianness == DltEndiannessLittleEndian) return QVariant((unsigned short)(*(unsigned short*)(data.constData()))); else return QVariant(DLT_SWAP_16((unsigned short)(*(unsigned short*)(data.constData())))); case 4: if(endianness == DltEndiannessLittleEndian) return QVariant((unsigned int)(*(unsigned int*)(data.constData()))); else return QVariant(DLT_SWAP_32((unsigned int)(*(unsigned int*)(data.constData())))); case 8: if(endianness == DltEndiannessLittleEndian) return QVariant((unsigned long long)(*(unsigned long long*)(data.constData()))); else return QVariant(DLT_SWAP_64((unsigned long long)(*(unsigned long long*)(data.constData())))); default: break; } break; case DltTypeInfoFloa: switch(data.size()) { case 4: if(endianness == DltEndiannessLittleEndian) return QVariant((double)(*(float*)(data.constData()))); else { unsigned int tmp; tmp = DLT_SWAP_32((unsigned int)(*(unsigned int*)(data.constData()))); void *buf = (void*) &tmp; return QVariant((double)(*((float*)buf))); } case 8: if(endianness == DltEndiannessLittleEndian) return QVariant((double)(*(double*)(data.constData()))); else { unsigned int tmp; tmp = DLT_SWAP_64((unsigned long long)(*(unsigned long long*)(data.constData()))); void *buf = (void*) &tmp; return QVariant((double)(*((double*)buf))); } default: break; } break; case DltTypeInfoRawd: return QVariant(data); break; case DltTypeInfoTrai: break; default: break; } return QVariant(); } bool QDltArgument::setValue(QVariant value, bool verboseMode) { Q_UNUSED(verboseMode); endianness = QDltArgument::DltEndiannessLittleEndian; switch(value.type()) { case QVariant::ByteArray: data = value.toByteArray(); typeInfo = QDltArgument::DltTypeInfoRawd; return true; case QVariant::String: data = value.toByteArray(); typeInfo = QDltArgument::DltTypeInfoStrg; return true; case QVariant::Bool: { bool bvalue = value.toBool(); unsigned char cvalue = bvalue; data = QByteArray((const char*)&cvalue,sizeof(unsigned char)); typeInfo = QDltArgument::DltTypeInfoSInt; return true; } break; case QVariant::Int: { int bvalue = value.toInt(); data = QByteArray((const char*)&bvalue,sizeof(int)); typeInfo = QDltArgument::DltTypeInfoSInt; return true; } case QVariant::LongLong: { long long bvalue = value.toLongLong(); data = QByteArray((const char*)&bvalue,sizeof(long long)); typeInfo = QDltArgument::DltTypeInfoSInt; return true; } case QVariant::UInt: { unsigned int bvalue = value.toUInt(); data = QByteArray((const char*)&bvalue,sizeof(int)); typeInfo = QDltArgument::DltTypeInfoUInt; return true; } case QVariant::ULongLong: { unsigned long long bvalue = value.toULongLong(); data = QByteArray((const char*)&bvalue,sizeof(unsigned long long)); typeInfo = QDltArgument::DltTypeInfoUInt; return true; } case QVariant::Double: { double bvalue = value.toInt(); data = QByteArray((const char*)&bvalue,sizeof(double)); typeInfo = QDltArgument::DltTypeInfoFloa; return true; } break; default: break; } return false; } dlt-viewer-2.18.0+dfsg/qdlt/qdltargument.h0000664000175000017500000001422513001357026020050 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Alexander Wenzel 2011-2012 * * \file qdlt.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef QDLT_ARGUMENT_H #define QDLT_ARGUMENT_H #include #include #include #include #include #include #include #include #include "export_rules.h" //! One argument of a DLT message. /*! This class contains one argument of a DLT message. A QDltMessage contains several Arguments. */ class QDLT_EXPORT QDltArgument : public QDlt { public: //! Constructor. /*! This call clears all variables of the argument. */ QDltArgument(); //! Destructor. /*! */ ~QDltArgument(); //! The type definition of a DLT message argument. typedef enum { DltTypeInfoUnknown = -2, DltTypeInfoStrg = 0,DltTypeInfoBool,DltTypeInfoSInt,DltTypeInfoUInt, DltTypeInfoFloa, DltTypeInfoRawd, DltTypeInfoTrai, DltTypeInfoUtf8 } DltTypeInfoDef; //! Get the byte offset of the parameter starting in the payload. /*! \return The offset in bytes. */ int getOffsetPayload() const; //! Set the byte offset of the parameter starting in the payload. /*! \param _offsetPayload The offset in bytes. */ void setOffsetPayload(int _offsetPayload) { offsetPayload = _offsetPayload; } //! The size of the parameter data in bytes. /*! \return The size of the parameter in bytes. */ int getDataSize() const; //! Get the type of the argument. /*! \sa DltTypeInfoDef \return The type of the argument. */ DltTypeInfoDef getTypeInfo() const; //! Set the type of the argument. /*! \sa DltTypeInfoDef \param _typeInfo The type of the argument. */ void setTypeInfo(DltTypeInfoDef _typeInfo) { typeInfo = _typeInfo; } //! The type of the argument as text output. /*! \return The text of the type. */ QString getTypeInfoString() const; //! Get the endianness of the Argument. /*! \sa DltEndiannessDef \return The endianness of the DLT message. */ DltEndiannessDef getEndianness() const { return endianness; } //! Set the endianness of the Argument. /*! \sa DltEndiannessDef \param _endianess The endianness of the argument. */ void setEndianness(DltEndiannessDef _endianess) { endianness = (QDlt::DltEndiannessDef)_endianess; } //! Get the byte data of the parameter. /*! The endianness of the parameter is as set in the endianness parameter. \return The complete data of the parameter as byte array. */ QByteArray getData() const; //! Set the data of the parameter. /*! \param _data The new data of the parameter. */ void setData(QByteArray _data) { data = _data; } //! Get the name of the DLT parameter. /*! The name of the DLT parameter is optional. This value is empty if it is not used. \return The name of the parameter. */ QString getName() const; //! Set the name of the DLT parameter. /*! The name of the DLT parameter is optional. This value is empty if it is not used. \param _name The name of the parameter. */ void setName(QString _name) { name = _name; } //! Get the name of the unit of the DLT parameter. /*! The unit name of the parameter is optional. The unit name is only used in integer and float arguments. \return The name of the unit of the variable. */ QString getUnit() const; //! Set the name of the unit of the DLT parameter. /*! The unit name of the parameter is optional. The unit name is only used in integer and float arguments. \return The name of the unit of the variable. */ void setUnit(QString _unit) { unit = _unit; } //! Parse the payload of DLT message and extract argument. /*! Parses an argument of the DLT message payload and stores all parsed values in the corresponding variables. All variables are cleared before starting parsing. \sa clear() \param payload This can be a filename or a directory name. \param offset Offset where to start parsing in the payload. \param _endianess The new endianness of the argument \return The name of the unit of the variable. */ bool setArgument(QByteArray &payload,unsigned int &offset,DltEndiannessDef _endianess); //! Get argument as byte array and appends it to data. /*! \param data byte array to be appended \param verboseMode data should be returned in verboseMode \return true if operation was successful, false if there was an error. */ bool getArgument(QByteArray &data, bool verboseMode = true) const; //! Print argument content into a string. /*! \param binary if true write parameter as Hex, if false translate into text \return The payload string. */ QString toString(bool binary = false) const; //! Clears all variables of the class. void clear(); QVariant getValue() const; bool setValue(QVariant value, bool verboseMode = true); protected: private: //! The endianness of the argument. DltEndiannessDef endianness; //! This type of the argument linked in the DLT message header unsigned int dltType; //! This type of the argument. DltTypeInfoDef typeInfo; //! The offset of the argument in the payload. int offsetPayload; //! This data of the argument. QByteArray data; //! This name of the argument. /*! This is an optional parameter. */ QString name; //! The unit name of the argument. /*! This is an optional parameter. */ QString unit; }; #endif // QDLT_ARGUMENT_H dlt-viewer-2.18.0+dfsg/MPL.txt0000775000175000017500000004052713001357026015424 0ustar potyrapotyraMozilla Public License Version 2.0 ================================== 1. Definitions -------------- 1.1. "Contributor" means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. 1.2. "Contributor Version" means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor's Contribution. 1.3. "Contribution" means Covered Software of a particular Contributor. 1.4. "Covered Software" means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. 1.5. "Incompatible With Secondary Licenses" means (a) that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or (b) that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License. 1.6. "Executable Form" means any form of the work other than Source Code Form. 1.7. "Larger Work" means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. 1.8. "License" means this document. 1.9. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. 1.10. "Modifications" means any of the following: (a) any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or (b) any new file in Source Code Form that contains any Covered Software. 1.11. "Patent Claims" of a Contributor means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. 1.12. "Secondary License" means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. 1.13. "Source Code Form" means the form of the work preferred for making modifications. 1.14. "You" (or "Your") means an individual or a legal entity exercising rights under this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. 2. License Grants and Conditions -------------------------------- 2.1. Grants Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: (a) under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and (b) under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version. 2.2. Effective Date The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution. 2.3. Limitations on Grant Scope The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor: (a) for any code that a Contributor has removed from Covered Software; or (b) for infringements caused by: (i) Your and any other third party's modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or (c) under Patent Claims infringed by Covered Software in the absence of its Contributions. This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4). 2.4. Subsequent Licenses No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3). 2.5. Representation Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License. 2.6. Fair Use This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents. 2.7. Conditions Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1. 3. Responsibilities ------------------- 3.1. Distribution of Source Form All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients' rights in the Source Code Form. 3.2. Distribution of Executable Form If You distribute Covered Software in Executable Form then: (a) such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and (b) You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients' rights in the Source Code Form under this License. 3.3. Distribution of a Larger Work You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s). 3.4. Notices You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies. 3.5. Application of Additional Terms You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction. 4. Inability to Comply Due to Statute or Regulation --------------------------------------------------- If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. 5. Termination -------------- 5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice. 5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate. 5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination. ************************************************************************ * * * 6. Disclaimer of Warranty * * ------------------------- * * * * Covered Software is provided under this License on an "as is" * * basis, without warranty of any kind, either expressed, implied, or * * statutory, including, without limitation, warranties that the * * Covered Software is free of defects, merchantable, fit for a * * particular purpose or non-infringing. The entire risk as to the * * quality and performance of the Covered Software is with You. * * Should any Covered Software prove defective in any respect, You * * (not any Contributor) assume the cost of any necessary servicing, * * repair, or correction. This disclaimer of warranty constitutes an * * essential part of this License. No use of any Covered Software is * * authorized under this License except under this disclaimer. * * * ************************************************************************ ************************************************************************ * * * 7. Limitation of Liability * * -------------------------- * * * * Under no circumstances and under no legal theory, whether tort * * (including negligence), contract, or otherwise, shall any * * Contributor, or anyone who distributes Covered Software as * * permitted above, be liable to You for any direct, indirect, * * special, incidental, or consequential damages of any character * * including, without limitation, damages for lost profits, loss of * * goodwill, work stoppage, computer failure or malfunction, or any * * and all other commercial damages or losses, even if such party * * shall have been informed of the possibility of such damages. This * * limitation of liability shall not apply to liability for death or * * personal injury resulting from such party's negligence to the * * extent applicable law prohibits such limitation. Some * * jurisdictions do not allow the exclusion or limitation of * * incidental or consequential damages, so this exclusion and * * limitation may not apply to You. * * * ************************************************************************ 8. Litigation ------------- Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party's ability to bring cross-claims or counter-claims. 9. Miscellaneous ---------------- This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor. 10. Versions of the License --------------------------- 10.1. New Versions Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number. 10.2. Effect of New Versions You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward. 10.3. Modified Versions If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License). 10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached. Exhibit A - Source Code Form License Notice ------------------------------------------- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice. You may add additional accurate notices of copyright ownership. Exhibit B - "Incompatible With Secondary Licenses" Notice --------------------------------------------------------- This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0. dlt-viewer-2.18.0+dfsg/ReleaseNotes_Viewer.txt0000664000175000017500000006645013001357026020706 0ustar potyrapotyraDLT Viewer - Release Notes =========================== Alexander Wenzel Version ------- Version 2.18.0 RELEASE Known issues ------------ * none Changes ------- 2.18.0 * Bugfixes: Fixed: SaveAs showing corrupted messages or crash of dlt-viewer. Rollback of QDltFile map feature, which is unstable. Fixed: Jump to line not working when filter enabled Fixed: Restore of windows geometry Fixed: The reconnect timeout is not working for UDP Fix check box in file transfer plugin view Fix for search prediction crash issue Limit symbol visibility in plugins * Performance improvement: Multithreaded DLT file parser * Make dlt-viewer show up as an option in file managers. * DBus plugin: Check if messages has Apid "DBUS" as valid dbus message * Enable build for MAC * Mark the next button in the search dialog as default * DBUS plugin: read configuration file to define APID/CTID to enable DBus message decoding * Add cmake build support 2.17.0 * Updated and improved documentation * Added the option to use UDP as transport protocol * Drag&Drop Plugin Config files: dont ask which plugin if only 1 plugin active * Implemented advanced Search with Payload Boundaries * Default directory usage for WIN and LINUX: Config/Filters/Cache -> homePath/tempPath * Fixed some warnings concerning datatypes * Fixed manual tableview scrolling with keyboard arrows and PageUp/Down * Show connection state in toolbar button icon * Enabled interaction with search results while a search is ongoing * Fixed issue with not closing search dialog when main window is closed * Implemented UTF8 export * Enabled C++11 support * Increased scrolling performance with large files by using memory mapped file access * Search history feature added * Search text prediction feature added 2.16.0 * Initialize member variable. Fixes possible decoding problems in non-verbose mode because dltType is evaluated in toString() * QT version set to 5.5.1 * Made MSVC 32bit and 64bit builds possible * Enable DLT-Viewer to export Decoded DLT Traces as .dlt file * Splitting functionality fixed for Windows 2.15.0 * Using QStandardPaths::CacheLocation instead of '/tmp' for temporary files * Added -std=gnu99, -std=gnu++11, -Wall and -Wextra compiler flags, pedantic commented out yet * Added possibility to copy search table selections to clipboard using the context menu or Ctrl+C * Unified Windows build script for local build and Jenkins job * Made menu bar accessible by [ALT+...] combinations and the [F10] key * Improved the [TAB] key focus behavior and focus visualization of some elements * Added more stability for loading large files under 32bit Windows * Preventing possible division by zero when using the "Append DLT File" menu option * Added preparations for 64bit Windows builds * Replaced some icons and deleted an unused icon due to licence issues * Removed executable bits from all .png files 2.14.1 * Copy new plugin to SDK. * DLT Logstorage Configuration File Creator * Added 4708PREFIX to install paths to be able to install to custom location given on command line * Update qt to version 5.5.0 * Added .cproject Eclipse file to gitignore * Bug fix tableview jump to the right edge * Bug Fixed After disabling index row in table settings it doesn't jump anymore to correct entry in main view after searching for a term * Fix path to dlt.h. pkg-config returns include path with dlt present. Remove it from #include<> * Fix call to dlt_get_version() to pass length. * Fixed: Filter is not automatically activated on open of a dlp file 2.14.0 * Set Line Endings to LF. Add also .gitattributes, to change all further commits in LF. For more info look at http://git-scm.com/docs/gitattributes * Improved const-correctness inside qdlt library. Note: plugin interfaces left untouched * Enable the QMAKE_RPATHDIR to avoid exporting of LD_LIBRARY_PATH when using the tool without installing * Fix decoded/ encoded search entries * Fix Inconsintent handling of pluginEnabled checkbox. Now it decode the search results equal to the main window items * In case of errors during export, exportMsg function just logs to qDebug() but does not give user information if export is ok or has failed Function even will stop on first error, instead of skipping invalid messages * Fix "search result does not jump to correct message when "sort by time" is checked" Now jump to correct order after a double click an a search entry while "sort by time" is enabled or disabled * Rearrange TabStop-order in dialog forms * Fix for compiling DLT viewer for QT4 and 5. Replacing QT5-only method QComboBox::setCurrentText(...) as suggested here: http://doc.qt.io/qt-5/qcombobox.html#currentText-prop "The setter setCurrentText() simply calls setEditText() if the combo box is editable. Otherwise, if there is a matching text in the list, currentIndex is set to the corresponding index" * Update qt to version 5.4.1 * Fix Linux build * Adding support for new macros to the daemon. new macros: DLT_HEX8(VAR) 8bits variable displayed in hexadecimal with "0x" prefix DLT_HEX16(VAR) 16bits displayed in hexadecimal with "0x" prefix DLT_HEX32(VAR) 32bits displayed in hexadecimal with "0x" prefix DLT_HEX64(VAR) 64bits displayed in hexadecimal with "0x" prefix DLT_BIN8(VAR) 8bits variable displayed in binary with "0b" prefix DLT_BIN16(VAR) 16bits variable displayed in binary with "0b" prefix * Export SessionID/ProcessID to Clipboard and CSV Export * Fixed typos and rephrased some sentences * Cleanup: renamed file qdltserialconenction.cpp into qdltserialconnection.cpp * Filter (separate regex settings and ignorecase) and Filterdialog redesign replaced icons with open icon library, corrected tooltips * Allow to show Payload as multiple Argument columns, default set to 0 argument columns * Added ActionToggleButtons to Main toolbar to Control Plugins/Filters/SortByTime Enabled checkboxes. Replaced icons with open icon library, changed action button syncronisation 2.13.0 * Updated qt to version 5.4.0 * Fix installation path for x86_64 linux * Fix Ubuntu 64bit build * Fix linux home path for cache and filters * Some changes for MSVC * Optional send "Get ECU SW Version" when online * write settings: autoMarkWarn added * DLT embedded fix for non-verbose DLT_CSTRING * Added check if directory is writable when file save as. * allow compilation using i686-w64-mingw32-qmake-qt4 under cygwin * Fixed absolute home path for settings file in Linux * Remove all white spaces (Carriage return, linefeed, tabs) from payload before export * Output info about used compiler in Info Dialog. * Added missing license headers. * fix qdlt qdltargument size * Fixes Bug 240: DLT Viewer is now able to handle large DLT files * Added new plugin control interface reopenFile. * Added hostname parameter to plugin interface stateChanged * First import of DBus catalog. * Send updateMsg and updateMsgDecoded also in logging only mode. * Fixed false creation of filter index cache file * Fixed showing corrupted message when index cache file is empty. * Fixed not keeping selected DLT message when filter is changed. * Fixed dbus plugin segmented messages * Changed build script for dlt parser to Qt 5.3.1 * Command line parameters also allow big letters as file ending * Changed configuration, cache and filters path. Create if not exist. * Fixed directory paths in Linux * Fixed missing payload in search view * Update readme and install text * Updated qt to version 5.3.1 * Fixed wrong sequence of plugin updateMsgXXX API 2.12.0 * Fixed positive filter with marker not saved correctly * Fixed wrongly displayed negative values in big endianess * Format of Hex and Bit fields in DLT Viewer. * Plugin interface for connect and disconnect * Multi configuration file load in non-verbose plugin * Mutlticore build script. * Support of segmented network messages in dbus plugin. * Adapted DBus Plugin to Network API. * Added DBus plugin * Added marker support. * Removed unsupported platforms build scripts. * Removed dlt statistic plugin, which will not be supported anymore. * Added Header output to DLT Viewer plugin. * Fixed: Crash when receiving corrupted messages. * Fix: DLT Viewer shows messages sorted by time, even if the option is not enabled at startup * Updated build script to Qt 5.3. * Fixed use of non verbose mode with extended header. * Extended non verbose plugin to differentiate messages by appid and ctid. * Add session id to table view. * Show Session/Process Id in DLT Viewer Plugin. * Parser: Added Linux installation path * Parser: Added DLT Embedded Example and further fix. * Fixed missing refresh on some PCs. * Parser: Initial version of reference DLT parser. 2.11.0 * Completed .gitignore with more files to ensure clean statuses on Linux machines * Moved intermediate compile time files to a build sub-directory for all project parts * Split log files when reaching maximum size and attach date and time to filename. * Fixed llvm static analyser problems findings. * Fixed all warnings. * cppcheck fixes for all errors and warnings. * Fixed: Hang of dlt viewer when loading files with a lot of getLogInfo messages * Added update button to statistic plugin. * New Plugin Interfaces in QDltControl: New, Open, SaveAs, Clear and Quit * Fixed: do not automatically enable scrolling when scrolling to bottom * Fixed: Plugin interface initControl only called when updating ECU list * Update Qt SDK to version 5.2.1. 2.10.1 * Fixed crash when open big DLT Files at startup with autoconnect at startup. * Added Logging only mode. * Fixed reception time from milliseconds to microseconds. * Fixed extraction of session id. * Sort multiple log files by time. * Open and display multiple DLT files at once. * Optional automatic timezone settings. * Added new control messages connection state, timezone and context unregister. * Remove installer script from OSS repository. * First implementation of dlt statistic plugin. * Statistic features removed from dlt viewer plugin. * Fixed warnings with windows mingw32 compiler. * Plugin API parameter triggeredByUser is wrongly set. 2.10.0 * Plugin interface to know about "Autoscroll button" enabled or disabled. * DLT Viewer Plugin Interface to scroll to a specific index * Fix: Filetransfer Plugin not works with default configuration. * Do not disable plugins, if configuration cannot be loaded. * Implementation of background Indexer and index cache. * Fixed Qt5 build missing platform plugin windows. * Fixed: Missing return value in exporterdialog.cpp. * Fixed: QVariant not declared in QDltArgument. * Added performance counter for indexing. * Removed file mapping based indexing. * Enable default filter and index cache by default. * Added Windows Batch file to build with Qt5.1.1 2.9.1 * New centralized export functionality for DLT, ASCII and CSV. * Implementation of autoloading plugins configuration. * Fix: DLT Trace can't be copy pasted (non Verbose). * Added sqldriver directory for installation. Needed for plugins using sqldriver. * Bug 86 - DLT Viever 2.10.0 RC DLT_13265. * Bug 84 - Adding utf8 support to dlt-daemon, dlt-viewer. * DLT viewer should only send optional configuration when connecting to target * Added context registration information to ECU structure also when loading DLT files. * Enhancement of Send Injection Dialog * Add support for Drag and Drop to plugin configuration. * Drag and Drop now supports dlf filter files * Fixed: DLT Viewer plugin will not update decoded views, if plugin enabled after loading log file * Bug-11: DLT-viewer, plugin API: selectedIdxMsg() only triggered on mouse click * Bug-4: DLT-Viewer - Message incomplete in DLT-Viewer-Plugin * Plugin support moved to qdlt library * Multifilter support for fast indexing of multiple filters * Added icons for apply config again * Split up qdlt library for filters and filter index * Performance improvement in filter handling * Created a Windows installer for DLT-viewer. Included in build scripts. * Optional suppressing of plugin message box error when started via commandline parameter -s * Greyed out non relevant tab in "ECU ADD/config" menu * Highlight color of found line configurable * Usage of "optimalTextColor" for markers * Unified the progress dialog updates * Multiple working directories for dlt viewer use cases * DLTViewer: performance improvement of Qdlt::toAScii function which is heavily used in filtering * Default button of search window is "next" * Search Previous/Next without search window * Added -Wunused to project file. Removed most warnings. * Added description of not yet implemented FLIF in file transfer plugin. * Move maintoolbar creation to designer. Separate main and search toolbar. * Added description for commandline based extraction of File Transfers. * Added QT5 Combatibility * Add build scripts for QT5, MSVC compilers. * Split up constructor in sub-functions to get better overview. * Search to List implemented. * Added Refresh Rate Setting for updating view after incoming messages. * Change filter button to checkboxes and a "Apply changes"-button * Fixed Disable Plugins not working in all use cases * Fixed Changing filters not shows last selected message again * Fixed lost selection of messages after disabling filter * Fixed Empty Tmp files not deleted * Fixed Plugin destructors are not called * Fixed Export and CopyToClipboard not using index order - instead using selection order * Fixed dlt-viewer: changed serial interface settings not working after connection attempt * Fixed Scroll button and Regexp button are using the toolbar incorrectly * Fixed Dlt Viewer crash on Linux, when aborting a "Save as..." dialog * Fixed Possible filterIndex corruption when enabling filters * Fixed Filters are now applied when conversion is called from commandline. * Fixed Selection persists now also when going from unfiltered to filtered view, like before in the other direction. * Fixed Filetransfer file dump from commandline now also takes normal Windows paths. 2.9.0 * Make rest of the warning dialogs modal, to prevent user from touching the UI. * Remove rest of threading. * Implement indexing using memory map. * Add locks to prevent index corruption. * Add locks to avoid crashes when doing file operations, while receiving. * Workaround for QTBUG-26069 * Improve logic when plugins and filters are applied. * User manual converted to asciidoc * MOSTPlugin incorrect decoding fixed. * MOSTDecoder crash fixed. * Save File and Save Project Dialog now append a file extension if none is given by user now also under Linux. * Add possibility to export message to a CSV file. * Added Filter checkboxes are automatically checked when the user typing in the filter the first time * Added Regular Expressions in Filter configuration * Added "Jump to" function * Added an option to mainwindow search bar to use Regular Expressions instead of simple match * Added a mailto dlt-support@bmw.com in DLT Viewer help dialog * Fixed DLT Viewer shows unexpected behaviour when loading file with filters enabled * Fixed "Filter Add ..." is disactivated * Fixed Export from command line with filters not working * Fixed DLT Viewer shows unexpected behaviour when loading file with filters enabled * Fixed Using the search function it is not possible to cancel the search * Fixed Working directory is not set correctly using "Open file" * Fixed Export as CSV with enabled filter does not work correct 2.8.0 * [GDLT-128] Improvement of temporary file handling. * Ensure connection properties are propagated to connection objects. * Added OS X compatibility * [GDLT-108] Command line option to execute command plugins 2.7.1 * [GSWD-123][BZ-5][BZ-12]: Fix connection handling when loading a project file. * [BZ-7]: Remove threading. * Fix compiler warnings 2.7.0 * Show decoded messages in DLt viewer plugin * [GDLT-106] DLT-viewer hangs in serial receiving * Added example files of plugins configuration to SDK * Added warning to user when plugin loading failed * Cleaned up filter menu * [GDLT-143] Multithreading implementation: process messages with plugins * [GDLT-143] Multithreading implementation: creating filter index * [GDLT-143] Multithreading implementation: creating dlt index * !!! *** Important: API change of plugininterface * Modified methods reloadlogfile and read to use new plugininterface methods and updated all plugins * Moved duplicate Filter Dialog read and write operation into new function * [GDLT-125] DLT Viewer often cannot reconnect TCP connection automatically when power supply is interrupted * Added build and SDK generation script for windows. * [GDLT-124] Filetransfer plugin performance enhanced * [GDLT-135] Version control message is not displayed as ASCII * [GDLT-111]: Change to Case Insensitive to ignore case in extension * [GDLT-122] Time parameter is always local time fixed * [GDLT-107] Plugin interface extension for sending commands to plugins * [GDLT-39]q Enable drag&drop ordering of filters * [GENDLT-37] MOST plugin should be able to decode messages segmented over several log messages * [GDLT-130] Save As DLT file with same file name deletes file * Changed MinGW Path for generating SDK with batch file. * Release test fix: Moved deletion of serialport to ecuitem destructor. Remove automatic reconnect for serial connections. * Added dlt viewer plugin programming guide. * Added example filetransferplugin configuration file * Release test fix: Increase max accepted message size to account for dlt_get_log_info * Release fix: Also accept S_RAW in lieu of S_RAWD in nonverboseplugin 2.6.0 * !!! *** IMPORTANT: In this release, all plugins are deactivated by default. You can enable your plugins in the "plugins"-tab. *** !!! * !!! *** IMPORTANT: API changed for Decoderinterace - see GDLT-80 *** !!! * [GDLT-87] Added new version of QextSerialPort v1.2 BETA - MIT License * [GDLT-80] Decoderinterface extended - plugins get the information if the action for isMsg or decodeMsg was triggered by the user * [GDLT-78] Extended API of the decoderinterface. Plugins gets a notification if the state of the ECU connection changed * [GDLT-58] Merging/Append filter files is possible * [GDLT-61] ApId and CtId description should be left aligned fixed * [GDLT-59] Added Copy to clipboard in context menu of the tablewidget * Reworked the filterUpdate calls * Increased max cost of cache to 5000 and fixed bug in filetransferplugin * [GDLT-60] Cancel button doesn't react fixed * [GDLT-96] Added a QCache to speedup getMsg. treeview using optimized getMsg methods * [GDLT-98] Added message box with warning if FRAMES are ignored due to duplicated id in the xml * [GDLT-97] Use constData() instead of data() when buffer is just read * [GDLT-66] Plugin is deactivated but after restarting the DLT Viewer the plugin will be called to handle/parse messages fixed * [GDLT-77] Open a .dlt file with double click creates a config.ini file fixed * Added some statistics as a single tab to the dlt-viewer plugin * Removed unneeded signal for modelChanged and clearing the selection model * Fixed bug in statisticstab of dltviewerplugin and extended with more statistics * Fixed bug in window title of plugins 2.5.1 * Change to the Mozilla Public License Version 2.0 2.5.0 * [GDLT-32] Store DLT Viewer configuration in an ini file instead of using the registry * [GDLT-34] Save the DLT-viewr version to config/registry and delete specific values when a new minor version of the viewer is started * [GDLT-7 + GDLT-6] DLT Viewer and plugin performance enhanced * [GDLT-33] Checkbox in the project settings to hide file transfer messages * [GDLT-45] Improve detection of filetransferMessages (Related to GDLT-33) * [GENDLT-14] DLT Viewer tested with Qt SDK version 1.2 * [GDLT-31] Tracefile content stored different under Ubuntu 64 bit version compared to Ubuntu/Win 32 Bit version * [GDLT-43] Filter on/off toggle button is broken when "Hide file transfer messages" is selected in settings 2.4.3: * Fixed an issue where the plugins could not modify the message passed to them. 2.4.2: * [GSW-134] Expand and collapse all context menu in the configWidget (shortcut ctrl+- and ctrl++) * [GSW-112] Possibility to enable/disable filters with a check-box in the filter widget * [GSW-111] Checkbox in project settings for automatically color errors and wanrings in the viewer * [GSW-131] The viewer looks in relativ to the executable in the ./plugins directory * [GSW-129] Double klick on .dlt or .dlp opens dlt_viewer and loads automatically logfile or projectfile when dlt_viewer is defined as the standard program for .dlt or .dlp files in Windows * Plugininformation is called when the Pluginitem is expanded and not only when the Plugin is loaded * [GSW-107] Check if the plugins are really deactivated when they are hidden * [GENDLT-11] Wrong HTML format for < and > of the viewer plugin * [GSW-118] When changing filters a popup with an abort button appears this button seems to do nothing * [GSW-130] The filer and marker won't be activated after loading a project file * [GSW-144] No second iteration to search and return the correct application and context description is possible * [GENDLT-12] DLT Viewer Crashes fixed 2.4.1: * Deleted unnecessary widget of mainwindow * Added Linux Desktop Icon and Description * [GSW-103] Prove if the plugins directory in the dlt-viewer directory exists and is readable before loading plugins * [GSW-70] Button for save project in the toolbar * Fixed Bug in Filetransferplugin - Clear list button * Fixed initialisation of injection plugin interface. * [GSW-109] Printing of dlt-viewer usage not visibile in windows. Command line usage for windows added to the help menu of the dlt viewer. * [GSW-104] Overload operator< for detailed sorting of appIds and ctIds in the configWidget of the viewer * [GSW-102] The dlt viewer plugin snips a part of the payload if < is in the payload 2.4.0: * [GSW-68] Command line parameter for test automation. Start the "dlt_viewer -h" from command line to print usage. * [GSW-88] Set log level/trace status for multiple contexts at once (multiple selection with "Shift" or "Crtl"). * [GSW-90] Configurable font size of the table content fixed. The table font size is configurable in the settings dialog - tab table. * [GSW-84] User hast to confirm to clear the log table * [GSW-85] Change button icon of Enable filter to a filter symbol and enable filter by default * [GSW-89] Resize payload column of DLT message view. Double click on table header resizes the column. * [GSW-67] Store and restore global settings in project files. 2.3.0: * [GSW-20] Table View should also display description of context for each displayed DLT message - choose id or description within settings * [GSW-63] Load and Save Filter configurations * [GSW-17] Sorting of Contexts and Applications by id or descriptions. * [GSW-64] Select Filter from last used filter configuration. * [GSW-8] Version and interface check of plugins * [GSW-21] Enhance search function: Start from current position / start from beginning * [GSW-14] Doxygen based documentation of DLT Viewer * [GSW-65] Using RGB colors via color picker for filter marker. * [GSW-36] Search dialog marks search text when opening search dialog. * [GSW-58] Drag and Drop of DLT Files and project files Implemented. * Start of application with DLT or project file improved. * Export of selected messages improved, including export to Clipboard. * Filter copy functionality added. * Batch file for creating SDK added. * [GSW-26] First implementation of injection interface in control plugin interface. * [GSW-37] Filters can be added by context menu in ECU configuration or DLT log messages view. * Filters and Markers aggregated to one configuration. * [GSW-18][GSW-34]Filter parameters added. * [GSW-6] Marker functionaliy added. * Plugins are loaded now from three directories: Directory from settings, plugins directory and /usr/share/dlt-viewer directory. * Linux: Plugins are loaded also from /usr/share/dlt-viewer directory * Fixed crash when double clicking on child item below plugin item. * All directory and file search dialog now use the same working directory. * [GSW-35] Filtered messages have other message ids then unfiltered messages fixed. * Fixed Endianess failures of non verbose plugin. * [GSW-30] Byte order of payload is not diplayed correctly fixed. * [GSW-24] Timestamp in ASCII Export is not correctly displayed fixed. * [GSW-22] Plugin Non Verbose: Zero arguments displays "[Id]|" fixed. 2.2.0: * Added version to window title * Filtering of decoded messages by decode plugins now possible * Negative filters and markers functionality added * Moved to completely new decode plugin concept * Rows in message table can now be selected with arrow keys * Verbose mode configuration in ECU added * New Plugin interface with Decoder and Viewer support * Join and split DLT files * Append DLT file functionality added * Start DLT viewer with a DLT Viewer Project as argument. * Colour marking of contexts, if synchronized with dlt daemon * Import DLT Stream with serial header functionality addded incl. resync to serial header and error counter * Fixed bug when using COM ports bigger than 9 * Fixies big endian target * DLT header parameter Timestaps was handled in the wrong endianes format, big endian is correct now * Crashes when payload contains strings with corrupted length * Corrected non verbose plugin "S_RAWD" signal type * Non verbose plugin does not decode verbose messages any more * Fixed bug in search with regular expressions, case sensitive/insensitive is used now in this combination * ECU Configuration did not save sync to serial header option (TCP and Serial) 2.1.0: * New Qt based implementation of viewer * Indiviual columns for header fields * Export to ASCII file * Import of Raw DLT Stream files (Without DLT Storage Header) * Search function added to find ASCII Text in Header and Payload * Project based management of configurations * Decoder Plugin support added as dynamic loaded libraries * Optional syncing to serial header added * Filter->Clear all added * The application now has its own icon * Scroll on/off button added * Description additionally shows the TCP port number * Search: Regular expressions can now be used * History for open files/projects/TCP Hostnames * Enable/Disable timing messages per ECU is now possible * Extended scrolling functionality (enable/disable scrolling by scrolling in list) * Changed serial library because of sporadic crashes of teh application * Only one filter with same name can be added now * Corrected initialization of resync mode * Bug in Filter handling fixed (concerned Linux only) * Bug in structure alignment fixed (concerned Windows only) * Automatic sending of default log level, display status and request for timing packets fixed * Displaying connection status fixed dlt-viewer-2.18.0+dfsg/.gitignore0000664000175000017500000000014213001357026016205 0ustar potyrapotyra.gitconfig *.pro.user build/ .project Makefile buildlib/ release/ .cproject *.pro.user* .settings dlt-viewer-2.18.0+dfsg/.gitattributes0000664000175000017500000000001413001357026017106 0ustar potyrapotyra* text=auto dlt-viewer-2.18.0+dfsg/CMakeLists.txt0000664000175000017500000000204213001357026016756 0ustar potyrapotyra# # Copyright (C) 2016, Jack S. Smith # # This file is part of GENIVI DLT-Viewer project. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # # For further information see http://www.genivi.org/. # # List of changes: # 01.Oct.2016, Jack Smith , Original Author # cmake_minimum_required (VERSION 2.8.12) project (DLT-Viewer) set(QT_VERSION_REQ "5") find_package(Qt5Core ${QT_VERSION_REQ} REQUIRED) find_package(Qt5Quick ${QT_VERSION_REQ} REQUIRED) find_package(Qt5Widgets ${QT_VERSION_REQ} REQUIRED) find_package(Qt5SerialPort ${QT_VERSION_REQ} REQUIRED) set (CMAKE_VERBOSE_MAKEFILE FALSE) set (CMAKE_AUTOMOC ON) set (CMAKE_AUTOUIC ON) set (CMAKE_INCLUDE_CURRENT_DIR ON) add_definitions(-DQT5) add_subdirectory(parser) add_subdirectory(qdlt) add_subdirectory(qextserialport) add_subdirectory(src) add_subdirectory(plugin) #add_subdirectory(dlt-console-viewer) dlt-viewer-2.18.0+dfsg/filters/0000775000175000017500000000000013001357026015670 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/filters/error_fatal_messages.dlf0000664000175000017500000000164413001357026022553 0ustar potyrapotyra 0 Error/Fatal Messages 0 1 0 0 0 0 0 0 1 1 0 #f0f0f0 2 1 dlt-viewer-2.18.0+dfsg/filters/control_messages.dlf0000664000175000017500000000164013001357026021727 0ustar potyrapotyra 0 Control Messages 0 1 0 0 0 0 0 1 0 0 0 #f0f0f0 0 0 dlt-viewer-2.18.0+dfsg/filters/software_version.dlf0000664000175000017500000000167013001357026021762 0ustar potyrapotyra 0 Get Software Version get_software_version 0 1 0 0 0 0 1 1 0 0 0 #f0f0f0 0 0 dlt-viewer-2.18.0+dfsg/filters/message_buffer_overflow.dlf0000664000175000017500000000202313001357026023254 0ustar potyrapotyra 0 Message Buffer overflow 2013/05/31 20:34:10.092828 3381.3386 0 ENAT DA1 DC1 control response non-verbose 1 message_buffer_overflow ok 0 1 0 0 0 0 1 1 0 0 0 #f0f0f0 0 0 dlt-viewer-2.18.0+dfsg/doc/0000775000175000017500000000000013452367153015001 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/doc/convert.sh0000664000175000017500000000202513001357026017000 0ustar potyrapotyra#generate a pdf out of the dlt_viewer_user_manual.txt sed '/image/ s/width=\"100%\"/max-width=\"100%\"/' dlt_viewer_user_manual.txt > dlt_viewer_user_manual_4pdf.txt; cp dlt_viewer_user_manual-docinfo.xml dlt_viewer_user_manual_4pdf-docinfo.xml; asciidoc -a docinfo -a lang=en -v -b docbook -d book dlt_viewer_user_manual_4pdf.txt ; dblatex -V -T db2latex dlt_viewer_user_manual_4pdf.xml sed '/image/ s/width=\"100%\"/max-width=\"100%\"/' dlt_viewer_plugins_programming_guide.txt > dlt_viewer_plugins_programming_guide_4pdf.txt;asciidoc -a lang=en -v -b docbook -d book dlt_viewer_plugins_programming_guide_4pdf.txt ; dblatex -V -T db2latex dlt_viewer_plugins_programming_guide_4pdf.xml rm dlt_viewer_user_manual_4pdf.txt dlt_viewer_user_manual_4pdf.xml dlt_viewer_plugins_programming_guide_4pdf.txt dlt_viewer_plugins_programming_guide_4pdf.xml dlt_viewer_user_manual_4pdf-docinfo.xml mv dlt_viewer_user_manual_4pdf.pdf dlt_viewer_user_manual.pdf mv dlt_viewer_plugins_programming_guide_4pdf.pdf dlt_viewer_plugins_programming_guide.pdf dlt-viewer-2.18.0+dfsg/doc/images/0000775000175000017500000000000013001357026016232 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/doc/images/project_widget.png0000664000175000017500000002472013001357026021756 0ustar potyrapotyra‰PNG  IHDR¦ÎúÃ1×sRGB®ÎégAMA± üa pHYsÃÃÇo¨d)eIDATx^íë¯G}ÇÏ_‚Ä j@EEPÛÍ‹J}!^R%E"â8œ¨¨RU”"ÑVá…íØ‡ê 5Ah!$HäK«Áv 7×¹øž›s±ßs±}||·›þvggæ7·}fv÷ÙÛó]=²Ÿ³Ïì\¾;¿Ïþfvç·s«×ÿïðþ=ø@(fA9BÞþôGø@(F¦€—àòþ°s( Àh |»ÈûîÆ% ¬‡P`„ ‘wéZ6° ÚÑ( )äð:†ž  @Hä݆—‡~ @ç Ì9[*‘·r-GÞ£ ŸÖåݵ9ænrÇÂ/›M“Ò@(0Fâ‘'Rr º{"§øµñ®¹H–EêÇÈ ‘ @Ñ)àR¬ÄËãŒsyW6—§½<¹¾4w׿œSßü"å–;}Ú Ìÿ$,Ò&Ñ?ýÉ7Sf”C±}iã¿yGñýÓßøqOÇB(0J¼þE@·áü(÷×°—wUl%ò~ù?ÉX–ƒìK5ÂÄ÷ì×/>Pøn9ŧؓ1NÈ÷ã€PÀ£@5äs¼þÀ_yòT±ÊwS~™f(”~Ÿ$#«qás|ØŽn 2J_êJïÄÜ´¼<JFÞÙð\Þñ‹×ågÇßÌ­ý—}êOñÅ»ÓJ3ò? y7oÞºzí†üü×ú¹µ[ŽÈ?|oÍÜ}Ûõ¯*Y³_ÌB§^\³•ïQn·nÝ>}ælÙ MÓ¶©óR1_s„Ú3dýœµ÷Í­ýÞaC™òü-ýÚtä­ïØ»x]~2ºýó¾üÏ}‹ŸË]âÏm\Ô;uJuÈL|!äݸyëÊÕëò³c~níæÃêÏ#›×ÌÍoÏÿ<¼¸¦óÞ·=KŸý$¶"½'Ëj~=Í)Pz•mþe{‘Õš-G®d?ÉmýŽüOY]¢*"ÿuË}â€üpUU|¹NŒ8yêté µN¥VŸß5[å)°:ƒÛ X÷ ±ý¾¹5‹‡<]Å—Oĉó5Gœež!ïf×·¯ç}I$v:ªÝ“³Èú’Õ!­<ÃÝU×Ê5²ÎÙ$òÞ¾pM~vÜCÈ{‰þ¤/s÷<–íß½‘¬QìœÝO4òX'Û~_Ö?¨g„2àh2ˆ÷$Ž<ê_Ê0Ýì,wrÚª”sE¹T ¦ V yÙya—1-¬ØyhKfÎyqXãtÂMžƒÓUŒó›p¾¢‘ç^üT2ú8ÝR^SEåÅÛËhó²]¸¾®k›Æ„&Oy/-~î ‹» Æ)y%^^Þ?˜Ã•]F vùÝ™²?-…@¦½H‘(ó03,K êInß¾}âä© ^žWXÚ)®C†åX¾Û ²ó%ÎûŽyÛÅË.ËsO9Y¾æø½<=.É.„bSýÖì–ž&ÈΟÿdS[x¯¾”f‰ÛæÃ)Í*±¶¨FÍÊ—[·o¿{âTÙ uNe!,©½fñ`¡¤÷dåúºõ5›ˆiÌN}¾|ͧÒÛµxõ¨kåÝØ­p '‹n“õçùFþ:½Ì3Tº±Ÿ™Æ¤ö6‰¼7Ï_“ŸÌ¡û§éÏ|`ûëlÿ® ™ŸïœÝO)òÄHu²¹¢O;ÔË÷ç#ÑémËá}4íÚ¶‚£,]w»@_ŸÔ«f„ƒQÈË,Ó+l±3¿Œ‰Ëž‹*vú”æ.×ϯÉ/JzBÂå'y4àÎ:Œh‚·[šÕÛ¾(¯ñ*1k¸'OïeûÚål‘¹ 9@½&cõÆ&‘÷ƇWóÏáï|!wL¿°e'ýùëb†óÏ6l¹{nÍw^ifôCÈ£û«—¯ÊÏv}3an̓Õþ««·ÈۙŬnÓÅ[‹Ãõ±óÛè@úSå ¾g_æç‹œòdÙg«(•²åGéÝ|¬üY=u[fn'M~çDø„’©Î÷{UÐ5›·ÈÇ;ƒ{¬8_$òáó¡îEVW1zBÂIñ5GîíZ²&Ù-B0ï3Ÿ´èožêÉ‘«lëyëÌ<Ù¯Z·¹ùõ…nÓ(kuäÝtß}!ÖØ=ŸrH¥k×o\Z½ÒÖgû׈ƒZ+n¶ "F;þnÝz ›oØÚ^—ž£fšÓƒ†”W2òN_ "ïõ÷¯àS®×ëÛ€o#ŒÈ\˜5›÷÷€4§ÿç·Iä½öáU|ÊÈwíÆÊ¥Ëm}¶‘—·ikÅÍVA·nÝzûØ;•NèÁMlÚâñöúCÙ ªÑœ!÷F‘÷þ•×ð)U€wõÚõ‹+«øŒ@›·n½õöñќБ5'ÔÁšDÞ«ï_Á§\ o¤SM#FÖœ6GöŒÏDŽ`ƒP ;’½¼SÛ}yÑ›úÝÄ6"nЃÈ#ÚFÖï™éòæ>š›OoØ‹Š4£ÀìtÝq´Èk›¶ÍØréãÁì´ÈòzaVdv`1Ž–¦#ï‚ÿQä:ÝuRF¶¢ŽP8¶‡ Džw$ë‰ýCž\~—ý¿Ì\°uòú"æþh;ÊX&ÍŠcéS'“¸]£ÍÀO=þ»ñVZ–»ØŠˆôVÜm7 ·ÈJƯÏþâoDPºMÒe¿±Âe%‡«&˜¡óye´¸NYyr±éš¹Y¦3Õ°dÞ{—JÔ·3S1³Ù>ÜysB6ÅÕKT²UäíÞ½{Ó¦Mn§²; µYœE…?úS|oyq̪y±²›O–¸naa]3ïQ ¬ï9´ýû_DàEž8H¿À_p£^lÀßpPÔjy©x‘b¼“¨äp]ùMíñ¼³È-Ë_z²{o×0Ñx—ŽìxªÃǰ/2Ïòd¼ ^5‡«—¨d2òNVØîܹóŽ;îøä'?™Œ<²+îî©“4 äeÄ[:*þM÷0âpÉåRž]Œ—Ç=8žžåÊža§)9œ)T|¥rU5JÞãEv&vSo‘ "O\ªCL©€­n‘׫æX,¶œ¤RŽ'#北ïy#©”ŸàÝÝwߌ¼¡'"O+6Mú¾$wÒkŒÌ{•›ŒgXõ*j %-ÙϼÜ*—Š÷>j&šC4fúÌŠ)1²t <ˆ¤:Èãdž‘¢«"Wzxá*‘#/ÌWWXML­m!U% –QÔÕÚê9ª[ЍÞ쩼B¯I‹j£ÄÔ«Ý¡q˜Fr¹“æ¸VÌÕ³”Œ°ÊdäýÇÖ?¦"Oñîž{î‰Bžj†Õ†æ;&"O‘ŽOpÐNѱÄ@ òJ’ѱ —*s«0§ Ò˼|ªI˜£²tÎ…å…Â]‘iÖÑ–ÃÃÉNÍZɃŽeMäMô¼—'7U•5Ÿ{^¢¿[w9Cȳ’ À —/Ðz<8× ̓=©¸/fFÙ±¾ìÃãOQ½’ía¬9óW–™ÊB^õ©ÔÉsyÞž£ºÿUué"OÕ³Íæ$Yqœ Ny1WÍ wlÅ5нc›=!‘—=çáL«£¸p‘)”l)å©ß9ЂØr ×ëõd ´ 4CÒÒMTÇ‚}c66n7`õ8?‚b?mR‚<ý*zÓ+˳ U“ÔQÎáÌ?³uÊþfõ ”å”nLˆ‹JãÖ#Lë²;¶Ö 2廙©ù8>pS³f¢ó[®Ÿ{¬›³K¨ ×lË ºjØZ3Q–GA½^"O9ùŠ/|PÉ'/܇õx›ùQÞ‘Igò"Ïš<ŽÐ×½a§áwz|lëÌkåÔq}ãôÝ áex¼…}œv ½ª>ù5íúµœj@únò€¼–1¶âº5`”žªäA-·'Õä¾[z¼–ûhŠ»ãOÿœª‡®@úꤗ$W3‰…cº8C<ƒ@ÞÏê  @E€¼ŠÂÕ9 ÞAõús,ÎcÎE|MÆ…<ýtjö„®ý¬¯zžÌL/VÓ)›7‰GV­0S5ÇZ½QÈ“?à‹GXšî,ȯ!ƒ¼PxQ­>^¬2ž˜—ë7Ýd IŸô¬Åj‰­weV`¹V•æ„W~Å·!K™å#×¹©#gè©=xyiý¥©‡¼’ð¢ZÆÀ*R_HEaê‹ bÖXÃ+yUðUå_wÍò±:g®ô“Ü~ŽZ@B ¯<¼(;“™aÓ¬ðí¸/äKÖnðyyTUÉäåÁÞX«½áBôjÖ…e6PfáÜõÂS1¬¦ Tr—³•;t"â“ < äÖõwÆÜùONÐSÏÐ\¯µ¥Ô²}¼ÒÍ$æ¶ðêo—×®Ý4SZß‘71¼¨)CaVœò;œš'Y3r¦åb¡­ò Væ õóâ‚НJ’r>ÕADŸÊZ@†}e1J-䱋 Œ‹lµ'ÏÑzjgÈ¢²™AUûâ²§z¤îL^#/&¼¨G¹ÜJ¬·XyÞ f%kñ„½¨3Á§Ãˆ†Bûyk(C!UÊ‘æàÖ!Tä‚’lw(„T~ˆT g`ù%¬äÌC ä©!GžÂ fæ8Ô†,ºYøóþšŠ°Ôô#k§»nÐ9“¼`q—Ìs®§Ã7Îbfë‰ßé©ç$äñµ[Š–ëyL_nžÂ^ž[Cs¤·ÚÖèh+ ÜÌ¿ËÙÙlnQžFùDüŽ„€wñ2ýä‰[b^a‰—Âe*ËbÒ¬9²Éðò&ÏååÓù¹é¸Q0­IãZïMy¦GSy“ïËŒCÈ+q¬LÄ·†<]¢Z òº‚Æ5F|²4“ÜÀ(äYˆQP@¿Ru†‚¼!6ÈóÌøspï`²‘»%j™Y’ ¹^ž;°µ"¸ÃFƘ¬†ÞHœ0žð¢!Ÿ1›ÓmÂÄ­û4Ì$GÕÂOd –/½³Clå¹7\ÀIh ý5°ãYw K.žp ûòh¸Ÿ+@‹ƒÞAqŒ×V!Mh`;Ðæ``kwb>‚ÓÏå)+¢ŸÝ(˜9‹-~H«ï°ƒŸP±ƒµó*é×ùÙ;ØÛ‹jùƒ€ªv³Êë¼\j˜¯È0ˆúÆæ,Vk‘«n…/sPÒ‰[™©¾£8D¶Rß¾Ðí®ïä}d°LR –+'Nš;°¯’ËÞN"é¦2}ËBžØÙÎí‹‘5È«z]ÇqP@+öx]W ‡4ª@ò\Þ³ûÞ>¼}\|Hvž ¬ Ì”@Þ°HGÞ~ o¦, À° µò`ÒP –€È°òjuw †eð¨-›…µD†¥W«»ã`(0,ƒGm<Ø,¨¥ 2,* ïØRáO;kØöÓÆž§—«ÙOxÕjµüú{”÷ée^݉ úÕ¶ Á—,“@ˆÐ6טõyÂ~ìuczá˜^ÅEÉÌÕTæ_Ë uåw‘׈å7’I*bÊ X¥‰ R뙾b¹U§rÅ?dë.È?¶‘”%Ts€<y<`¨³JÞXÍž´¢¶Üð€<¥OEôD‚-œ¬b¹‘7œ˜šEË‘7œæy>ä© ÉžÈ%r)zZД€¡©u¢YdKÀ]ý*rÐé…e³…ÁòN&üGåÛ–Åé,ªM¡=³Ð2y]d -¶è×­¹Uj^ÑpRÈÓXÛ«]hh\^»‘<—Ñ #˜hHðÉ 57²˜š#kNµ5¶Ïîë\Ÿ¦“4ñ„Úðü¤mP° vËÌŒ-ü·‚ øœÆžŸ‹õþÆð:¸Ò>/,·ó˜0œª\ J›§ÅìŽôVa…Ú!=Y¼­›QðЦ÷Ç¢°Öz‚‰¦†ÈÊŠ¤"œ „u‡ç­OêÁË yy2À¤=x yyéÃ"ƒ§q[ƃ¼ÞE’CFðKV+~§% ÅAa˜@tùɪfA‘‹ ¬öÚCrBWy|a_¡^)/6«²_4‰<·8o&“c·Ä^µ ä,¦æÈšS9^ÞLxy%vú'‹q­ n•{H˜±œQ73z³÷FÑÈ+H#ÂÀçZU¤¡çÅãA@Ýxy //áòÚdRËø™kÇFWÖûqr²¸ôâ«•>°eÞL1ËÐc¿‚M̳ɡ«ñzsä¼q|ʘf&¥™ä '¦fò†Ó O#oé(_»%–5H ÒÉôò’F‚%ÄcƒÝ„¨–ú(:ˆ9¥Yî.Âx:ãw»,=T÷Ä ('ê¬n5ùe„ä49¨Öév*5 Êvb„-z–ψd}~ÃZÎNb’G‰w_ø:xaœšyÅB.†< mžY|L6——úê‹àZ16®4“HZéß>¦òTDÓSmòún¡²\xç-‰'ª£Ñq乕7&: •ÚòÔˆ•ìß»!D¨«Ië“zðò¸—g]2âÍÙ™3þª0H bî—ÄòÒíä·VÔ­˜SžîÊÆ'—ÅÁ4! ã¿8¯tøo ?n`kßWbXW!›B¥6„¼‘ÅÔYs"ÔìæÊÒrû+ÿ 'Î {™éÙŸ¾À?À¼ÉòÕÊ›Y›ÈÓPJxÕsœÍ ÈËOž€|¡R§.>¤:Ï¥ÉÞ„¼ @ïhÄ‘Ik y½7)T°ß ´f«(¨€¼~Ûj×{±CdÒšéÈ;0Ê-{È8»ù÷D~PÜtHñPž¸¢ñ6jz”E?q ϶jJQÎî|V­v×Çmµd)B„¶¾ÎL& OXŒ—kÞÕµÞÄÕÌ®„k1È‹I_1¶Ê-þ ¤´œyW•¹«…\ñO&»1Hâm$e ¤Õ È )žE)PÅË«àãôy#úÜh¶Öˆ®dY{SîUœk©×ÀòűlPœíβ¢Uõbœ­+ŽÈ ²#tò|õ… v¡Fþ’y¶‚†:±B ë¥ÇlÕ-_¬Ã¨VGñi ‰ ä‰è´ÑÂ{)µ“öˆ™*MÏcjެ9ÕÖØŽyº+‘ò&Ì奯å6gÌå eX,ª¬ð$î,§¶¡Ó^’jå¦Ã&¨ˆÎ,_^ÿä ¡å±Buvá ¡ÔõšÕJ³4§†xyŠ}êúªÞzãt l{5°u\KoàÏÂ“ÅæNGÊ£°eíSK5Üú§"/5}´b½LXy*àJ|Pî¥ ,Ô šäåfä3R½»x¶—Tü+ÔY `,Ô{o’ ‚èÆZ~.©mLMßK’EWª"ò†S3 yÃi'º¶ï!ÿ‚(n²:æÝP¡ž%Y>·4hÃ,1º^gL!=‹ìa½¸VÈ(¡ödñ._ŽÜ£¸žÑ@›œÐ@ÞÈbjެ9UרŽõQäÂÄ­Ðà K¹ ¤{¾•¬òе‚¢oZ¡÷LRýÄ#%v¬ÓðŒôä^~`Id-ù£Oû¢ä—•þÄõœL²èvˆš§#ÓBˆPïH|˜!BÇŠ<5©ÇF‚¹Wã™ýÊ1`Æ1Ž67¡ÎMyœ)…&xy@sÎb>¨§Ý™ãÛ)s;sæÌ¹sç>øàƒ .¬¬¬gèÏÆw:zSµ¢â~øáË—/_º”!oeE.^\¡߃ïP TaÎô¹páâ‡Ùvþ‡?ü!™ýí=ßö¾ÜvT˜à¦aä57jŒØAE^¼˜µÓJ@R…~ðƒ¬®ò.Qª¶q+@N7}¼_ÆÝv´Ž Ø;G@úà‘G!óo|#ÎoŽþÍÈzþ<Jliy‚w_þò—éßò¾9ûÏ“øŒ["Ý_¬[·ðõ¯[_¾ûÀ´gÜmGëHâÝé3gÉšòˆwŸýìgõÚFžàÝÇ?þñûï¿¿y—><!—ã=|Æ­]n×ÏÏÿì§?µ¾lß¶öŒ»íh)@¸;yêô´‘÷‰O|‚Ü,A½ö¼<Á»}ìcwÝu×O~ò“äÑåFÜ™gÎâ3n¨ÿýãý÷ïØ±Ãú²k×.Ú3î¶£u¤À©S§Oœ8I¾©zy„¼{ï½÷[ßúV~Ÿ ›4kc`Ke|æ3Ÿùüç?ÿío{ëÖ­%È;{öܱcÇ_ý—_~Ÿq+@Ý] ÏúBÈ£=ãn;ZG >üò¾ý_{ýõ©"ïSŸúaçW¿úÕã?NÔk yÂËûÊW¾²¸¸ø›ßü¦yÄþ7ß|û•W^;xð>ãVàøñwò¬/„<Ú3î¶£u¤Àþý‡^xá%2ö©"ïÎ;龜`^xá…V½<® êmذa÷îÝ%È;}ú ¹x‡½üÒKð·o½uìûKK;wî´¾<÷Üs´gÜmGëHç_Ø·gÏó/¿üÊT‘·°°@Ìi{.O<¤"¨·¼¼\‚<Þ¿òÊëûöÜ»÷E|Æ­Ào¼Ew*öîÝk}9pàíwÛÑ:R€x÷ôÓÏÑðvªÈ£‘e7wl#ŸË{çÝ„ÿgžù_ÒŸq+@¶W_=Jï—q·­#þøÇgwï~êà¡ÃÓC^ÇÏå¹Ïâñ=âQdº¼?ùäÓ»výá÷;ŸÄ @Ñ*ðû'Ÿxb÷ï~·ëÀƒÓC^¾º£Ø¦û\žZä1ñ‹Z"Bzì±Çöî}ž&5_|q?Íkâ ÀèxöÙ=>ú(™ÿ´7þP^ó Î8\ÅRkû'Uhß¾}ôË¿cƒP`føùÏþÛßþ¶‘xt“ |Oä Þ5¼Æ¶þ aä ÀL)P>ñók¹*DRyçðþ=ôypñ!Ê”rÁ @(0¸ÄÓÜ5gnÏAòZ ㌢ €Í(ä5£#rP` yƒ8M¨$€Í(ä5£#rP` ŒyÔ*| €^šGuû‚ÚIOÿõj£§„„úô¥ÛЉš ₌JBé)P‚¼ÿQFÔ÷_ÞùIEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/ecu_dialog.png0000664000175000017500000005250213001357026021037 0ustar potyrapotyra‰PNG  IHDRÈ1F¶¿ñsRGB®ÎégAMA± üa pHYsÃÃÇo¨dT×IDATx^í `ÕÙþ'Ü—ñJ€»(˜VEÑ/$¡-´Ÿ$öó‚m5i•6A‹´kÕ@ )’¯$Õ¬~åÒJ¼`À¯ %Š\D"fˆ@å– ¹ìÿ=3³»³÷ÙÌÌfvö9ÝÆÙÙsÞóžßž}÷ÌåÈæ¸RN,7ß|³mÿE૯¾êììg/t´Åê8ÆoCTMgO[j6ŸUù´ù ÁƒÍã¯K<”º³ž<öîêâ㟩üsüêq×¥ý<7â²aç´ùšá¯üбúVkSý§Ê¯Ÿ0!qÌ„ÈØÁ‘ÑÝ—Î}U»wÿÞ½g®ü~䀫qÜ€€€|ÿÞöν߻s¬y´ü&rjÖZÿã­“§ÝC•_ü¡Ç•zÛrʯSõÁÇ/þ±ô‡/¾â_XÿöîçÞìÒûß{óÂ×–¾q¯Ðõã8bô5\DäÑ#õyuó×ç".]83ðêk'LΈˆˆïj‚„3wß~ãw¿þyã©u!$%Æÿî«Ó¾;‹Ì®»/£ìÝõ­‡>U·‹~×~{vÚ}s×—{4{Òœô÷ÿ²E¬¯ý«Ö[ß»wlž?+czDŸÈÏ¿ÞúÆß¯9€*öå…ÝÿȈˆœ:söõ··oïºeJ†º€5£ØþÖÏ.üÙQºëÝm{wýÛáæI“'¥MóÁ„Äê¹¥k¦~ ë_3Ó7WþoË¡OÄ=…ú/í្±`ßvŽ #¬œ•µ²FÐmÿ¬P•ßèwíõ?˜þß?ÞXáÑ££‡ýóÞ;#…Ï(ØôVÎ?œ6ù;ñѱ­‰ýZÍ7Lm2ÚÝ\}”½e¯½lkÒ!6ŒtvvñF|hfg7óNÖȈH/®³=Š»ÔÞÔØzòðÇûwøhû èsm玶]hìyéhccãŸýì­¸3ûc»Î‘¶;¡‘]:¸§~ýNöª:ÉwŸøÝ;GúBܹ¾&"ùrÚϳàì>¸¼õÑг۞Æ2ðöñŽÖÔ¯ß{ö|ëÙòG«[å·õ[sàíw޼>ž¯¦¾q¿½£„?Zf´Zé¯×Éè†ÿ]uoVŽð¢‡HÑ[Ú鳓VAXpÚÕÅ‹#{uÑÆ%þÅ¿Ý^÷]¯i»ì`£Ëž.jÂ×_Ô¼³ÃÚÑA6™tzÑÌK|Të'bí8}d`Ë¡êÝï~±÷Ÿ7m:r¤Ñòñ®[Çœ¸uôWŸ~XùÚæò7_­û›=íMÇ£Î7´7Ÿpþ²dßG4DI‰ùöuƒÏ}v¸ê”mßųÕlÛ¥¦ü†ò¿Éæ¥óåר¦»Ã5GeGL[Ù¯p¯¯›R'gý÷cô—^¤VôÌS*üoy¯M¤?¿YÄJæ%&©¼ªR¼Éoó"{÷ÈÁ$ÖÝ|Ùø÷Õï9M…·´Ÿ>µòJJ/[+ Zy;¼Þ&¬ÓIX#I=¼:Z¿ÉH:}dïÖíûOÜ0º_×ùãi#kº¾ÒõÅ÷Æ|s¾ºTû[Ÿt~úɧsÆ´v\lv1"H·cç€ø¤~-§=täRS~ȃӧŒÎâ_“.,ÇOš’ô­ä+„éÉÑüž+’¸èñ7Ùß&}k_ÙÖ<=y0kÅvòÍ…OÛlç¤ë’²¦\12’yØcÖuñRã¶·®Æ}ú晼ÇéÀN0 ¦lõ’´Õëë¶´éóžyž”j_Õ¿×¾¼¼££ãþ‡~9!u²ÏVüÚ&/;B颟ÿü¯xkÓD~ƒý92ᮃ2ôs „©üýÕ•Âí¡ýÉ ¬²°€ ¾HU;­LUí]¸OÇ%~íV¼Žõ»<.[œûbß½ùß²~Þ=`@k\ÿaâûŒŒ¢X›ä¿óB{cã¥øö 1Îïïºþlêû_>Rb'þ¶Iök½Zvï:y4>áž±Ü7síŒj&œ;pì x†Ðå-Çùjx÷yÃô YªsC|#3Â÷{úä?µp‰—Ý{ Ǻæ¤6íÛ¬¦Ð|àˆaÓ‡sŸ‰ÍíÎ8ÕxôØ;_v8P¨éǸ?ß<²ÇN02­e¯?úã¬u_ùä¶×Jÿ¼æTíÑŸý:ùºëÍ7Üê£É ¦+ÿü× 3fÿ꬙¶jɼ#þâ£þGýF~7lÕŸ^ê<ö‹g®¿xì–Ö/|4•õ“Ç­üYÙ»ë¼ybÕßåg) ß¦¯ÚcšÛ¹¸Î‹Ñm,GZ:šZ»Î¶v6µœýêÂÁÏÏ æZâ:Û.uD=×Ý?1Ée)€ã:>;ðÅ?«èuªQøÅß/z‡Zü°}âòÖ{Ãøè\kãi¾]ksÍé¨ý„5ëŽÏ޶²§[qÑã…ì‹Ä¶¨ÍoSó‹ÔŠí;´é˜XÁSMÞfãéNÑÃË.¿wRò½â׆wãr} ÇŸs˜ Q‘‘‘}dªy‰/´qíM©¾[Ðڣ˿ó>Ñ1‘11}bÄ¿´Ñ'&¶Ot,mì8šTuÅóÛm…¶iíg¨!ÿbõY“áå&ON3Ù!] ð¶ô?¸9~ü׃ÛZ:t_jk¾´tã™ß­ûjþªãzã|bŸî¾ÛºZÚOrƒ›†~§OT”‹áôœcg[뱋ý†_æ¾êÛyþ¢¤&“ËŽóm2òri?eƘïNÚ¯}ÛÃN¾¹ã”™Í[?Íã¦å>úðËÍž8dsÛ›q™¾…Þ©oK÷ØòпRÖ¨¾}ý¾Lßžðø/K/Úð[¹OdÞ2Ó&}úôíß7NüK}ãâúöë÷Q|ò¨+—.yJPíù¿*6híÿ¨ÿHÖõëÇ^´Á¿È¦T7\þñv8_ÀN2y|]õÿçÜ€/Û¢.o3÷kÏžôóÜþÌÃió§&ìlí<ßvæRô¿¾4êö¹îÍEÕsXîüüØÅ«Í#nM´õŸ0žmw^¸uíØ fÉÈðნ¹H'Â$½4lë<ÏõK¬Å'Œrñø¶-í×¾ía'54Žo>hø º{Œé`©|¹Ìfb¼m§Äf|ô€‹XñÃâ„&žz Ä7oð±ŒJ€Å@}"£d”ºO÷þá×ô¢ ¿Õ)f–ùý“§3*¾ßøôŠêߟ¶ù×ú»?bhÁsóiÝ–ÊÂEËnî{žþ oi?}ʪ Mè/Û`­è%­ÞæÅIX½ˆ*k;hظ¨›ŸüøÂe‡ÛâššÛÚ×wÞÑòÙ¶¶ã ›.žh‹Ý~21ú¶ñƒ¯t3B#‹ºæ[ÃgÝÊ^wfΜy³úü“¸s–)âÄÖËñº¯k¹wó5oŽ;¿£®ÍÕšç†m{íÖ¾ÕïDõ™ãÂU|äÊ¿ìÛw¶í­»x5ïÌĈ¶b«.¦þ‚‡C8ÛNIó3çDWMQØeÔKÛ‰3üHÍlÑÁÖ»|ߌúoãïX4Ù'*&Êï‹TÌ~=€ßÊ}úP¤*þógÂÕ@4ÿŠŠHÛü‹mÜמÿì áEÛw'X]öðbÊ7a’Ê«*k8lò« ž‡&œÛO^½µ÷¸°pà^º»»Z.œß·õ•˦›¯¸xe\GÔ¥ ìV…¨ø¯:ú¿w,®k̬ wÝ;hHb´mõÁ›)]ïpçuQ–½gø•Vm lùç¦_>6×râ¼ßnö¿ÿîÁ> j×ÝrÛ„ÛÓ|×7]5àO«ÖÍü¯9T­8ýöuk—~³ó¿]È« Þzuù÷Ì}xanÅû[½7àðÃw‹Âúö>GFl—Út o{ÛÅ“_«ù¸êLÝG}.½"ÞÊEöù¦¥o[ôCFÝ<6e•ÃFôë?€V3äù§ÇZW¾jBÜù÷^p»bAÞÂ'u$¬¹ó~\₺sU|ñʵ‚°͘üÚ†?}ó^%»ª‹WEÛM­,?µp;+…ˆìöVûýªÂí®’ªü=­¬Øîhå.¿cúýY¿ÈÛê¸ÑV:„¿ÆôÿòÇ6aݲ߫°ò]Ó…_íí[/œo»ØzéR»µ»›âÓèØØøþcbãú²ÓVlA7ÔJßkÆ_fbq=•¶÷Ÿõ·‡ÚÀà/èœÀ»[¶|oÆíÆ'©ëç±£om}?mæL2ûÒ?œ7ÿ§7¤˜Õíâ@µe劗yõufK£úÿ‰MXË?ö5™ºÎÁ€@88sêÔþ?hkkSBllì„ïÜ6$1‘ÌÿdÿÛ¿ÿÝ…3§Õí¢ÿ¡ßýÍ﮾~‚G³/öéÿÍOï—¶øZݾa @Â@QD¿ÓØ"Öw>ù& `È   .?Zãšµ kå§'Õµk  †–vÇž#a¥‘Ó¹)waf=†P0dOàX„kj™%]±;' ´=F¾%ÔðIŠ@T&aU(Ì€„Ç€¨Lª2P˜+ŽP™„Ue 0 V   2«Ê@a@ ¬8@@@e=¿¥uËö}*ûÒSs3§ÞÔÓ¦h ='àí–VEÂúÔ“õÜ#•Z.[¾ ªK˜Œ€‘…50†®ïCO/§;FÖ'órz…÷ò¢ê··zw2ùaí•#†-#?ݪµ7ŠôHêþ]û Û#ÀU:œ¸ ÚŒ ¬ô î^)ÂÌ÷J×; í#Þƒ€h)¬uÅ“"¤eRqO®"DZ7§‚£j¶Oا.oe°îi“ú êWM›¶ªÞ{O28¡ €@h)¬4„Ô"‹C v嚘lFdpå¶å\Y…â‘zW›úUÓ\ÊtA*óûó*­Né½ÿ€°JŒ‹½û0O•½Tò+¦ ªÐXX]ý¬Û²‘+²”¤Ûö§—8¶{<¦n¯%9§â4+{Oœ¸x/¿Y‘“LÚ58ÓºKeƒu SR[zŸIÒæÝ¨ð µ°/ø¬[™wÓæYBß§7Œû¼Îar™\t¯$h±÷ÆvzŒ AÔ" ±°Vå™í?ûé÷>éjUÊX“Z΋vü‡—Ý$‚V¦…¬Ôo-ã >Zžfk–¶|yš´BZúC{>¯óg4€ˆ•7&Y0Ǻâ]X=c¨Pf¬¦šÞÎX½z>½¿ßö‰U„:NCðàœÊLa@@…UºÀVhq`¼Y»›úÓ@1˜³éjå{Æ™F¹4b†EÝ]³ü•‰c]?wëC¶°¦e<ôÊ}‰‰‰Ol·ÙØþÄ-µOžäËîYo<¾¦ždO~m½'Ý=•S.T9¹~\þJjëðÐãxÕ† { =' +ÝÙ*}õÜžï–¦±)U·§°Ô+çü––ö®®ö¡mOy¹KÚ¹'ÿÖËX¹õõÿ·þG‰þlvvv #  ßu'>[ÏÊo0ë¿|óÜVs¯ÜÇ÷uÙ­ù{ö¬f.=óðD›{‚«ÿùŸ{„:÷½ÂUütžú³û£WXðOÀ£xj±ºz•¾ ˆË3Ó¥b©ÈÉ©pVÛ¬ø[íîîêæ8ú×á#ÇîßòîaçFTaÂÓÛ,|ÙðÐpÿÉ £È¨ÞÝ=åy‹å¥ûþ¾í_Ò¾XÏO‘º'lþËœ»·¤ m{zí‘ÖñÔŸÿùG `° «F!«t5‚]TeÊÝe)ªÎ°-¼fp³Ó¹ôKæFÛZ¬yc¦ää–, -X§üäinñ´ü¶f;ói›u$ÃŽ£ŠÔ3_ ¬Í²wuäHí„1#FŽ2ï_ü’½{ÖXÚ»°ÍqÒïÉ>;²£b¿°Ç§‡²H¡€€ê<‰§–+‰¨“䋬L[»…‹¤»ÄZŒÞÀ(ôg«7âÁÿ}gQí#cÅò—6Ù¹‚ƒò¯ 1e†½«éå3~ÿàˆîÉÏI»ÏZ{DÚ»°=âÁŸ™Oç\Xg¾ÑÎ Wp\ *ôñ±ÛþsÒ9ã†YûvŠžÇª—Çθ#øü’““_\³Žú}ügs‚ï€K‚?xK¯O+ô–&¢Ž²¸3vç„ZF¬Á,'ÀT½ŽtpªïÁ`ÁF? þ ÷ªÿþô¤F@k£*V|UÑ BS=a‡6 Êø¾*@£³WÊ\–׺ñò&ˆXåMj@8p½ZU\cÝþŸSNJaµ†Ðk8ÌÆ L ¤ƒŸìöÝ)­±F:/²tÆÐ«MX«…µ;d„5˜¬Ñ€@8 Lzk¤ÓÙ«‚&¬ÖXÃÆ ª{ç•óŪt #  FŒp¹UM†   Œp¹U(p† Æ$às) „¯¶2ælaT ¡A ØÏ  *ð@T&€¥•€@X0ìWa5‹,€€ÎxV[ÄÁ±Ûì/9w@@@Ÿ夿ÂK(N—[AWõ9sð @@ÏܯýÇ«žç ¾è€>.·ª+žÄR´ €€€!ø¾ÜJõ%ÖIbb+Gê@CPÄ @@ÀAÀWĪÅó(k`jj‘Å*¤µBp!`¿*À–7•ÿ¯ú£§¡s^•`íÁ¢€ú¤a@ ˜œ¤Ó&žÁyKEŽ9/¥œÏžå?×$™ t5‚]TEIZ-EÕ¶u× nv:Á²dn´­Åš7fJNn)<Úƒ€€d¬±Ú× ÔíŸeº–a‘•O€m/ÂEÒ]b-u]5P•€¯5V¤¿V5Œ„ ÿO·rœÞ $&€(# ž³²ÿŒ‰'¯„€Õ~i€²Ž­é¹³j™‚ðM —Gz~J9Ùª<5KKKÛÙ–6  4ƒãcããcvPQ—õcq©M?ýªÛ‘š… «¤ùFaU864^!˜°^ÞOêä£'˜°j›š¥W  SŸ—[Í t F'”ç±"Æ ¶A l§*ûåVA퀀 8]ÇÊS«§"† Æ<œ¾…ÕvË>'l„1# @ àô›xŠÂÚÑe•¾°Šª  Æ<Ч(¬M­öWsk‡*”&IrÁ8¼ÚcÓ>’¶Ú?Bb×ãECð(ž¢°^¸Øy¡M|oëì‘}·Föt,üƒW•j+=QÐïƒåÔQgl° Œ€Gñ ÊUÂC­ èñÖŸöZ(ìqמvTäØBÝœ—‹'M*.fïs*„h”ýÍɱ™àź®xn^ÿ íIùù¬Ž“Q±ŠÍ3-J<óDô€¨H (ÂJþ²´+5®"Ç\“/,öR²€¹L(çæ¥”ó;ÊS¨©]'¼·ZKîส¼šÙlÓž(›«ª¿Nh]šA"iÊ]W”ÊGÇ»¾ŒGC½ˆFY¬,è¨h‡o%H< €hC XÂ*x_W[Í•ŠéXÌfÖXHpÙ&~é%%é”èŠ+ZàQJæêü–Œ¤fÎòf§ÏÎæªkÝ5’z±µ2ÍÌL--cÊj·cŸ*8òø]\І:¬‚š@°„•‰ŸïZš›Å¡é%,øœ]&ùnhà€€ñ GXùßæù¹&¶ WhOÍÊbØâö»œäÕR”Z]ËÍÌäœ+ø˜‚вR{ôÊÖlEÒ KõšMi =¬±ÿðÆA wh)¬ŽÌ¬ã-Â*)åa•¤f¥SG¦±”›?YEYYבôÒ‚©=wkÎNOPìfi1Vø)oÊͧåV:yµö¤°F`ï…­µJ–g{‡1z3bmŸž”¦½¦Û”gЄ$…™s¹uXÕ.Œ‚0=èši¨˜…µ]ÜëxÐ5p‚€¨E@Ë¥µ|”ÚÁ-ZP…MU „š°ª:x-@Xµ  › aMÂÖÓÁƒhAªUØkÖ°ž~ @@ ^ÇÚðÅѺú†¦¦f-ü†Mp!0È4&9yäp…d”_Ǫ¡°m<}ùÐA ‰æ  ‡À7§›Ïo5%_%§²:Ê…UÛ¥¨ªÂ Fsùô#8Ú «|"¨  †!a5ÌTb z!aÕËLÀÀ°f*1½¦°òy5JßçÈQ蔩Ò_9’pSþ—üØH—­—ã~€€¡QXY>«ìlnã2ù9%}aOlebëÈLh-çøäW(   1à +ÓÕ̳Sª\••ù×.¹©%±§=´db)¤]¥-1µD|bB‹#KV¨1M˜"4aåuu¦‰2«º)«{nj·,Ùbölެ¤d ‘§¥†ã³Ú‹# ¿àÀÒ]¥Œò¹¢€€@ KXE]åsV»+«Knj÷,Ù¬Ëtm©I™½`|5)+Õq‘MéR€»EÈ ‹ Á%$aeá£Qf”rbV×Q»fÉæÌã¹KEYõx³if&)+“XŸ¿ìY«Ùznp' ½„à+Ÿ…ºÜ*–rO«RlîY²)+%Æ.(¨¦Õ~³¬Ìe!À{ú‚"ÊëX‡­ÈÉ©pV[¬„ÖÁ oA TEXùÓH ìñ¥çuV)1·,Ùô!%Ê®b«´Âfiõx~SR¤k¬üU]”Kšl;ƒ£—,gnòmó·%'·BeÊà'€€Þ hût«áI—éü0º†Æº•æ C¹‚² ×Ô#ÐVXé¹³F€„1€„ýކk¬--mg[ÚBa:à#€€A ŽU8å4V…cCsèÊ…UÛ¥€^‚NA@ w @X{—?z0 «'Cè]ÖÞåÞA HÂjÀIÅ@z—„µwù£w€°pR1$Þ%"ÂjË è;Kï¢Dï  ÐPX)%«4‹•+ñ2¤VädTYØÓ\{šµÊ5‰+9¦QºXX   ¡°ÒÃPSY"€žŠ¡}rX¦…Ù«èѬüS¶E—ئ½@T' ¡°:|õ‡µ®xnž¬…EŽŽ€’#õé§?%Ì«âJ3ø s;%i‹=â´-Dðé[]LyæH÷ÊQ‚éI99.a¶»5¶Á®êÇ! ‚€¡EX‰XU^Íl>f,Ï.-àŸî¿Nˆg)r´ä˜kò…´-ôxÿ¹LZmõ)ÚeÙ„šTuªy’”¼BAG38[Ò—’t·ô®^'Ë”›Ÿ]ʧ{å*ÊJ³ós“©ÓêñëlNfšî昡fƒЄ@°„Õ%«t,r²R‚UI*§Ê¶•rRÚV—¤/MyãFbxeeº*ä%L2¿ð©dÉúvZ‚à#e–Å…âë }İРɱ£ `ÁVßÀÜr²z®Ná)KSe[-õXI¦)Q>IYºêÁ^Ö sH` J ôª°Š1 婿ÖË)¶ ’%Xeñ#%l•´õ”ÞÕ‡UÊãZA8òŠ•Il©£©žÃ«œiBo ë$öó™NOy¹ö”_ä¤Ú“ŠÍ´ŠZ-þäöy5Ia绨̭IIe3ÇÖjíms*<¥wõ1Á¤Ë©ößÿlaWÌßJ˶ìç~€ÖÂûHÂèAìÂûA×t9@Áx‹°dJ¡è\n–Oñžt­è.À嬊 ¢1€€ —ôO;½Dr÷îG¸ªÿ9ƒ‡  ÂZXCa‚à#€@耰†ÞœÁc€°ê|‚à€@耰†ÞœÁc€°ê|‚à€@èÐö:Ö•+W666¶··‡x  Rbbb’’’æÍ›§Ükå×±j(¬Ë ccb²²²•@@ÀS§Nmذ¡­½ý© ‚Òµ°>õ pABBB[[›Âq¢9€ø&ÛÔÔTXX¸lÙ2…¬” «†k¬C† ª*œc4C€¤†‡dGNe­ëh(¬äºðôj­S¦}m…Úœƒ ½€™ª„jÁÖUÓi¡Õ©L_UÏŽƒÊ<ÇÞ¼Jk½´"½GA1ev¡­°’îîӬì]±3fÎÅK[VÙÖSÖR޾ ø–>ÇÐ$ 2€€±h›A@¿¬èÄ~Ùì@®›ÕïPà€€ºð ëÀxÚîðŠˆÈàø@Ô' åR€úÞ*µ˜^bOÄ YU íA¼/aÅq A a dt ^ ¬á5ß-€@@Xƒ]€„kxÍ7F  Ú^ǺråÊÆÆÆööö Œ]€„3˜˜˜¤¤¤yóæ)‡ ü:V …uYaalLLVVVbb¢ò¡Â€ø pêÔ© 6´µ·?µ`BPºÖ§ž¢.HHHhkkS8N4ßbcc›šš —-[¦•raÕpµ££cÈ!PU…sŒæ rÔàìÈ©¬u …•\·ßç„ ­S¦}m…U–¶VæâKne°£ ézA¨a­_5}úªzϳY™7§fɾ³TVL5ì|c` A Ŕم¶ÂJ(»©$çTTä$³-·Ro9Èãù3 °@< Á‘)|ZWÓVXÅ¥€úÕ3f¬®çÿ®ž?T(ó·„móo~z·.‹Þ ¤á ]€„Qœÿ#u_k¹”o?(ÂÊ‹°ï’=ùµ'YYÿÐ+Ë×Ô[Ó–ï.˜8±`7í)7­¼%Üzöáî‚Ïî{b{èL7<i£=úV o˜?þ’%KŽ;Æ5¬ÍZÈ-]Ê-¤¿N&6ÂÚvß>Vÿ˜å…;äA &€@x0›YVR*‹k–çaÆ-Z´hÅŠ Ièú:Valü÷‰-bu\€åò‘½ŽðõÃÚáZ­`ÄèB@mm- ýuw\¡žªØ\Û¥ñä•€°è,ì‘nŒiÞ¿øåìÃ#;Ê÷g¥MÆ=€x"pèÐ!`ÄMEì©)m…•¼dTUÙ_›°ŠÛŽ“ŸÝú›Úìk©Ü³Ä\ò,tÿ¤@#ÐST¿¶k¬ ê{ ‹  àF 999???,ÖXûÆAmè)ý|×h»jËâð@ ´ èD[5Ö¨¨(ºQ•.€èé×Ú€€\$5$8$;zÐV ×XéÁˆ4È9sæÐVô0Tø ``ÍÍÍ›6m¢ÇÒc Sùu¬ +méÒ¥§OŸÖɲFs= 0Žnv]H·!).zVÅ„6åªák°a ?Ы>æ^€ˆ„Õ@“‰¡€胄Uó/@ DÂj ÉÄP@ôAªy€ "a5Ðdb( ú  a­È‰àKN…?*uÅ“&×ù«…ÏA@  h(¬“±ô¯˜9ÕEö臒tÙ(\–ÞKúã7US`‰mѦo}‡úËžFTCÐPX¹TA-­VKQu†÷h´®¶šKkRˆ×”»Kì+ÕÖï®\¥FyŸ*rÌ3Å‘”§Ô¸¦ÙQè7šƒ€–Âj§E¢GÚZÀÿ„wDBðG²•WÅ•fðævGØÉ* ýœÂÀºâ¹yUUyfa)_¿˜­1°÷ “u- ¨]“ε]÷ÓKXPíÔ»›eɧùùŽ… ›ÿ®ý°÷ªÅÖÆ;@1"EAVc›REÁÉhM¾ÆfnœKâ™^b)cÌ]¹SŰÓj-OÉ+ô±àjÊ]'¶ò–VåÕÌl­Ý2éYW.>z²$ÝÝ1ûl¦ÏÎæuß±ìÔ»›eɧ_æzL0ÕMºEôŠÿ`à3È!,a|a¿úy‘¢B*“Zçbç2J¹êZ¥'©R‹Øm],×mÙÈI?õåXz /„³Ë<Ÿ_ Ègú‚a˜H Ñ/Ç„Y¥E 9Ž: Ú–°’¤¦ŽgéÀí ¯î'«H¡ì«™ƪ8x9–}8&xÂôµ<»´Ì)–cÙi ‚J{iÇ S ½F 8ÂÊRSòsMlAÀçOüÔÌ™ü ' («&¶¨Ö±ÇÎÊ=àõÑŲif&'ñćc$öEû׃Ä1ÎÝgé§.þ×ç°Åc’Wúêàcr¬±öÚÁŽA@+Z +r‰/ã-Â¥TlE•®‹Ë9Sn~ŠØdnM ‹XÙr¥X]Ücç@•ù¥OYç}Ü-KM³åSÛ=¦€z©½÷-3]}vþÔÕÓXN¢Ý–VS » ½E@Û ½5*ô  =&€]÷‚€€V´\ ÐÊgØ]€°êzzà€@(€°†â¬Ág]€°êzzà€@(€°†â¬Ág]€°êzzà€@(Ðö:Ö•+W666¶··‡"ø  Bbbb’’’æÍ›§Ügå×±j(¬Ë ccb²²²•@@ÀS§Nmذ¡­½ý© ‚Òµ°>õ pABBB[[›Âq¢9€ø&ÛÔÔTXX¸lÙ2…¬” «†k¬C† ª*œc4C€¤†‡dGNe­ëh(¬äºøiü@‚B@kÅ”i_[aõ£­•¹ƒø’[iµJ·ƒ2è@À`dª^ªõ¢°VæÍ©Y²ï,•S¥Û›k @ H‚ ˜2»ÐVX g··Ro9È“Ì,ÝöÚ€€€/$82…OëjÚ «c) ~õŒ¡B™¿}{m›óÓ{¸uY´cÆüGÛ«ëƒô݆n@BŒ€(!Îÿ‘ŽAk¹”o?8ºý‰[òÇ­?IewÁg÷=±ÝjM[¾»`âĂݴ«|y©c;gTˆÍ5ÜR i£=úV o˜?þ’%KŽ;Æ5¬ÍZÈ-Ýðp2Q¡íiõY^¸Ãe§½‚ü/Ô?f3ËJJÅbqÍò±oÛV~¯ËN\›¤¯}t!M ¶¶–´ƒþºB¡žªØ\Û¥ñäÕˆ‘æý‹_ÞÁVì(ߟ•6™¶*ÂJ´t«ó  à“À¡C‡<~F'¯øñO~vëoj³¯¥rÏsɳLWILY8kVÇ6)èCN…¦´]c-((hhhPè"šƒ€€ÉÉÉùùùa±ÆÚ£/4€ ÈßàÔÑ|5¤—Éá<€@hŽnúíECaŠŠ¢ÛU鈀¿wÐ@$@RC‚C²ãWõ‚PAÃ5Vz0" rΜ9ô˜• Œ]€„3æææM›6Ñcé1Ð 9(¿ŽUCa¥±-]ºôôéÓ:yB¢BÖh  gÆÑÍ® .Tî¤Þ…Uùa@‚L@¹°j¸Ædè@tBª“‰€ Æ!a5Î\b$ :!aÕÉDÀ 〰g.1€°êd"à€€q@X3— €€NèCXëŠ'M*®ë]$zð¡w  w•h(¬­ ®hQo9vD9½.Ü*MÌ€蟀†ÂšÉmÜ"D¡u[6r™3MA¤‘š]] ÆÀuÅÕ©©Aì]„9 …u¦]Y-5LW…@’>z䣨bŠ%ÅØ²¦PüØ[:ê‹Á§‹fAjÐi&Ç϶õ^Q˜—’™)~èfÓaÄœW%Tr7Ëö â ó)>@@Ca5M©ªai+ÊJSÆZrÌ5ù“-™çòÑdU^Ílz_’ζ«Ç¯ã?,âòا9æ¼”raOuIk]ñ\q‡µ<…ìR7ƒ’›sóSò +X¸Z´`¦ð›MÉê†jý˜ -ª‚„+ …•KŸ]ZFŠX[=Û\[Í•f&ņ‚â¦-`šÊ—Tq­À433•>¥F¶OÙ²C:Í,°è5½¤$*¸tšEÖ}©s~®¸ánS²ÇÒz2kÊÝeÝe³®G Æ  ›€–ÂÊ”µº¶bËÆ”ÙL?S‹,Žg‘óQj`%½„5Ÿ]Æ´™_ðg0}¡Ù|ßf±…º áH@Sa%eMÉËÈcºÊÖè—¹Ät¢«ŠÄPR_ÜSWœÃÖH^éG{u-'à ‹4% în“íϰ±^È;~bÕÿ¼¡€€ƒ€¶ÂÊbV1fL/ak¥âÉ&§‚ªòÌÂ:ÁÆL CG}¶ÖJ{Lc9G•u¹&=̲›Mê¥õ pABBB[[›Âq¢9€ø&ÛÔÔTXX¸lÙ2…¬” «†k¬C† ª*œc4C€¤†‡dGNe­ëh(¬äºã1Øí h­˜2ík+¬=ÑÖúUÓ¦­ª×~|õ z—z$ Sõ‚P-(ÂZ¿jút»V:½ñ8wjFºÔ­òæUÚ;ªÌKHp8ãõØQÓ‡<@á2„" (¦Ì.´Vš›n*ÉÓgY7o­g›Ýõ[7[gMOæ·=a>½Ø'djâܹ W‰½¯*<8q¢_ûêú˜Ç¨  ÐCôW¦ði]M[aµ-$O›Å•måß×}ÎÍš–\¿zÆP¡ÌXM»éíŒÕ«çÓÛùÛº Íçÿ#~ÌJÅQþ6—Bƒöo[fÍœnë}Ûÿ<=nÖ,ŠF»=Ùt¹ùé=®ulž„â÷8|C5Ãù?Ò‘i-—òíGX­£LãöÔ&ÛË_g:üÄ-µOžäËîYo<¾¦žÔoO~m½_žÆ¶?»’ÿ°€ËgŸnâ–üqë…=ŸÝ÷ÄvkýšÇÅ'×#»TÁÅ 6C1*çÉqù+·×¯YþYÁãÓØrÄÕ¦du3Q¬ãͬ!ŽS BŠ)€‹´Ñ} «†7ÌŸ?É’%ÇŽãYì|Ƽ}ªå§G²^µt̪i‹÷;Ý÷Ò¶1«rK7<œL;ÖfI·§Õ?æò)í±LÝn~d=wßK–öK¬}ñŒ­ÁHÞþRn¡ï^„:ÞÌÊÿæBMU ˜ÍfÁžÅÂr=K˰aÃ-Z´bÅ …êú:Val¶ï“)S³jìÜQaž:…bÒ OWÖÚËól£¦Ë¶•sý”öLyžµžº›ówz0è±Ò›)?yz—E} ‹0¶¿B5¶Ã­¾Ž«Ÿ!õýgAÀˆè_>ý‹¥¿îƒS¨§*6×v)€Fn_…žœf^üÈbsÚäî#Íû¿¼C²>-vH¶ì(ߟ•6YR_Üsdí3ktwO~îÐ;‹n¤¥7ƒvÛvk#üßCÏM¶Ûw·Éö”ï «Ýݬjèîg—ÔÑ @@M‡òvæ[EqTbJ[a%ÏãŸ|w&—y7Ó¶ÉÏnýMmöµbùѺ:„•ûxÉ=üg÷TÌØú,5pÔ¿g‰¹„ö iuTùýÃÝ J„ÕaÙ&Üü7›´§Ä,XýuùFç:l/ù©æ±[ *P"…ê¶Õvµ   ¡¡A]a @<HNNÎÏÏ‹5V•¿’`@¼ÐÏ÷¶KF\:ǘ@ôK@'Úª¡°FEE={–.€À÷+€hM€¤†‡dGÚªá+=‘9gΜAƒéa¨ð@ÀÀš››7mÚD ¤Ç@+¦òëX5VÛÒ¥KOŸ>­“'$*dæ z&@aÝìºîüQ\ô.¬Š  lÊ…UÃ5Ö`Ã@   V}̼0«&CЫ>æ^€ˆ„Õ@“‰¡€胄Uó/@ DÂj ÉÄP@ôAªy€ "a5Ðdb( ú aÕÇ<À €°h21}€°êcà€€@X 4™ €€>@Xõ1ð@À@ ¬šL @@ ¬ú˜x ` VM&†  V}̼0«&CЫ>æ^€ˆ„Õ@“‰¡€胄Uó/@ DÂj ÉÄP@ôAªy€ "a5Ðdb( ú aÕÇ<À €°h21}€°êcà€€@X 4™ €€>@Xõ1ð@À@ ¬šL @@ ¬ú˜x ` VM&†  V}̼0«&CЫ>æ^€ˆ„Õ@“‰¡€胄Uó/@ DÂj ÉÄP@ôAªy€ "a5Ðdb( ú aÕÇ<À €°h21}€°êcà€€@X 4™ €€>@Xõ1ð@À@ ¬šL @@ ¬ú˜x ` VM&†  V}̼0«&CЫ>æ^€ˆ„Õ@“‰¡€胄Uó/@ DÂj ÉÄP@ôAªy€ "a5Ðdb( ú aÕÇ<À €°h21}€°êcà€€@X 4™ €€>@Xõ1ð@À@ ¬šL @@ ¬ú˜x ` VM&†  V}̼0«&CЫ>æ^€ˆ„Õ@“‰¡€胄Uó/@ DÂj ÉÄP@ôAªy€ "a5Ðdb( ú aÕÇ<À €°h21}€°êcà€€@X 4™ €€>@Xõ1ð@À@ ¬šL @@ ¬ú˜x ` VM&†  V}̼0«&CЫ>æ^€ˆ„Õ@“‰¡€胄Uó/@ DÂj ÉÄP@ôAªy€ "a5Ðdb( ú aÕÇ<À €°h21}€°êcà€€@X 4™ €€>@Xõ1ð@À@ ¬šL @@ ¬ú˜x ` VM&†  V}̼0«&CЫ>æ^€ˆ„Õ@“‰¡€胄Uó/@ D ‚ÆbµZ·}z’c›b±Z¹aÖþ‡¹eû¾§ž|ÌGEEr@ÍÏË“S u@@ 8–-_%ˆÛÁOvûîñXÄh&œñ\Ü»sÂ@m…5ûÑG}»Uúç?CXƒs¬ ™” «æK•ÿÚåòÚ¶£jÇ®Ý|´Oæ {¡Z]ñ¤IÅuªt\‘Á—œ UÌÁ€@Ð\X‰Áð¤$ûktòȱ¦ÑטFGGõuÃCz&¨£LÊÏ÷¥q**` “%«ëŠœŒê" ­µXKÒí@RߌMõmª-*·‹K²žÍ©ã7öãÚñiq±ø›Ûö£[åI×KLÙ¡Kê:/°ßã¨!T¨+ž›WU•gæ?výPXEŽ9¯Š+Í nnúáM“ù%GÛ[£ó¨nËF®È∃ÓKÅIJæ•@äÐ\XûöíCJÚ/6º¿Øñqñýâbcb¢¢(t“ç¡­VUõøu˜e—fÌå„É2hU^Íl!rö3QKÂ9Š]zL •3˜´ÙBeÚ“’Wh‹üHþXHHá!Y«É"CKæÆ¹dß”»N «wÍÜ2×ÖUyJÅÑWz‰=ôÞpG¬è!ÉŸÃ7KQ5ß?Çù«ÀD\,LË·l¬R)lP@À?Í…5ZÖ¸è~q1T¢)RåKll¬ï¤5R3gÒojóøTû†Ó§E „ELªÀBÂÚêTÛ÷n TÒggsÕµÒ€4£TØÁ„Œ‰)²_ô|àI…‚Ð*©z’*MaŸ2ô6Úý‘øfš™™ZÊÿ„÷=:VA\±­ОñæÀ¢6€@h.¬±Òÿ(ú_hY@øK‹ÑRS%ßzCñ$óÆLaM×Þ¦•ÛÃI]s=•^ÂZÎ. æÉRóª[Ô¹pA>)ÔE@saeË©$«¼°’žR!ýaÂÚWKa¥PTŽîT”•R¨˜l )6¥_Ø6næÜ]å\[Re*æX!ppB׺â¶&AòJª,„»>‹Äë.{v®H_PÄå™qUääT8«-V üÍ>­h.¬±1Ñ'Ož:sælSsó¹óç/´´´´¶ÒÿûôÑRXIæhµTX•dgœ‹}½’–PiÕ”›o«;·&Eº +X™Tl¦ÕÒjq-@<›E«¬ù´BKï¶ô'…zÚ˜¹Îû vØÚ«`­Ë<ç$]cåϧѺ°Ô© Žš,gn´­Å²(\¦q­Ž.Ø0%w^Ñ™ý²ÙŽŸïtJŠÎ~éù"­0=1lÐ ½ßyEw¬ú~iÒqí<…¥Ü´ Ë n4ŒXA@B‘€Þ#ÖPd ŸA@@!ÍO^)ôÍA@ ä@XCnÊà0€€Þ @Xõ>Cð@ ä@XCnÊà0€€Þ @Xõ>Cð@ ä@XCnÊà0€€Þ @Xõ>Cð@ ä@XCnÊà0€€Þ hxçÒ_ë}òက'Êï¼ÒVX‘þÇ-€@ÈP.¬š/;ýµ[jR–_*§‚žÉ¢VBkMŽïY²ýøßƒôÚÈÞªÉÂ(8h.¬Ô•ìô×¼[^ûõpÚXæ>c‹"Ê[ŽA'ëîÒ£DŒ\Rz‡¯,Ù.þ‹ˆÄo 鵕Œ¨‡Sf .‚!¬K鯩%Ú³eI¡Ä~ÎÉ¥z<'öìP$&ó”°&(ÉMøGRó ½½<¾Ð_–l×ìVö¤ßþú"¦óÌá=žl4†°˜þÚž|Ô–šÏ%»4jyMvíž/ ½„ϰ«$½¢0+r<ãß”[Â?ïßgjk¯sä‡Ê †=8/É’í”JÛ–vÅá¿Í1ØtnhwÔCnm7\¨żâ>2‡ëzùDÿ|àx& ¹°˜þš’UñùP¥Éœ\SO³ª$»v(¥nµåguÐð™ÚÚk¢÷Ö>nKá»:/É’½kl¡-k·#3¶×CWÚÐî¨ÇÜÚ.¸œ-z€é’ëÿx@# ¹°šþZHyêÈyê1õ´=•´œd׀؂:²ùLmí ¦{ kß ·¥v\œ—~ä13v@ê9·¶snpƒî0}äúÈTp% ¹°ö0ý5Ó×òìÒ² š¶:i/ ²¬8’˜Ò€S¦kì”p[çG›ZÀu>L¸šÐ\XKM¡¤}€_ãÍÞROK‰HÒ>KóW»AãSFÏe¹ªÅwjkoÜÝSXËL¸í{"•gÆVÕ‚fG ƒ€Á h.¬¥¿6ÍÌ´§™“I;’E³„ўϦ8’]»ä¯v™=v~ÞžڜDZWOöí©­¥"ìH@MÚïžÂÚ{Âmv-B^kîX9örXõ(3¶“-5-xnð($€;¯ôÔÜ%á¶=À$€€v”ßy¥­°Êùü¼<9Õô_‡ä4£Tp3»ÜÛ%«ú<°' ka ûÙ$ \X5_c I®p@€°*€‡¦  à‰„Ç€¨Lª2P˜+ŽP™„Ue 0 V   2«Ê@a@ ¬8@@@eV•€@Xq €€€Ê ¬*…9Pôt+àCxêÉÇh\?Ùí{tÇ"F3 eÿËâÎØö\X¯»þVCÅ @@@ Ð Â ô  æ¼E¬Xc óÃPŸ„U}¦° æ ¬a~`ø ꀰªÏAœ„5Ì @@}Võ™Â"€@˜€°†ù€áƒ¨O ç7Tþë9îL¿ë69ÕP@BŽ€úw^‘°f?ú¨;ˆ¾}ûFDDtuuuww—þùÏÖ;Và0€€LZÝ Pù¯]Ò×ÁCu¯mþð·Ëß<þõ’W™Îùªöå†Þ𥠆8NESªøãÍÈ¿—¦Üðz=÷oÙÝ„ÊÐdA ¤ ¨°Æ:<)Ix>Ü4zTåûõûªOÔ7œò ¬.ÿþÊÂæÒy“cÊoªÀ ¢“,:Z5þíaǧB^k½pTûà¹yu ßü°úÀ‡ÏNðÐòëa€öP@ gTV¡ãÈȈÄ! ï}tøLS˨áC¿}í•´Ð3ŸtÚjDÖ«k³Føvî†ùå˜&V¿9ß2Ï%äLzp­øÑ ¶j¯ÞŸ$Ú³ÿòK gJöÓ'äx¨S¸p  E@aí×/6qhBlLôÁ7¿óidddÖwo¼ÐrA.'g-}Î͉¿íÑß÷Wà }ùÚ£¶`ðÑ¿±¥Æ¿ývÅ+2„¸Ï- ŸJJ€¦Ü:²™âAþïß œÃR÷¡’Æ‘¶¾${C 6?xŽwóÏ)ž•.€8F·ô}ÆÂ‹><ôÁGî<¡€€\J…õŠË/´rÿÞ{ôÊˇ|¸ÿ‹“§[†_=xòÄÑ—Ú/Éuê¨ý<Í­üÁ¦y¤L_Ì+mñohÄýfXÓÒWè‚„¤ŸŸ/„~¯Þô¹ï7䈡âÔw~+•³@M%¹uä6Ž+ßióÖ‡tŽa>ÐðE¨êmϾ)ªÚ;†P¾ îçüž}pý”,x㘨  ‡€Ra½êŠÄ×Êö½úúÞ/_øg…«ÿ•~-ÄÄÆÊé^¬sÃÔ;„¿“§Ìáêvi¹aþ]Ví1×¼Í\Ý—NQ)ûùÌGyô¢ˆO*gôQ@¦„xP0åÞ‘à®ÝàˆädO«J†0âö©7üã=´úöÁåS|zêÚø  TXÏžmÊûÉtžjQáÛ_5]>tÀ]©fÖ¨¨¾jr'±ûþö{øS:´|éAÎì‹›,n]x»¾}›òÛ‘üQ1AL)¿¾¦5åóÑÔ ð  TXÛÛÛûÇǤMÁ‘ºFÌšþ­ÎJˬQ}= +ûu¼}§-ÚüòýíL#œÎÓüû½M½Þê¨Æêˆq¢Õ:öÐ~!8efWüÕãÅI’e™bÁ §Ž>øßïø;Ù%Ǭdtl÷NñõµáÑ >r@ (Ö¾}"›Îœ¼7ýÛw§Ž™:Ù|wªùü… --­}úxŒXi qê;ßÏüdl›ZžÏß—ÅŸƒâ}s«ÙÚâmÏÒB*_mÑ‹OGdå˜Ä:âaç½là׆ÓÒ$…Ïn9]÷ ©÷'yèH>Sû@nøËè7m×K9vò§ž.láU]F¡iµ@,°â°À©u]p`> 6„E·´Úï¼¢X•n¸²Z­tÃýµó“uçýúþ-·Äï•La4)*€@hÐä–V9C÷K+„UGÔÐõ…Uc„G  TZ=+ ¨ƒ@g   ”ž¼ …1ÂG*kPq£3p a ‡YÆA‚JÂTÜè @ @XÃa–1F €°7:Öp˜eŒ@ ¨z~KkPÝDg "¶×µ¾w¸õ›–®ñ×›—Ç÷™2ºßTS?õÊßù×é3Mô<&c 9&&f脌{î’3Üy%‡ꀀ"Û,-¿ŠŠ¸åú¨ñŠ é¦qÇùëGŸd^Ù1ÍìyD›ß®8`PVVVbb¢n¼VäÈ©S§6lØpî|ó¾;ݯ!«_D¨J <]yêÔS®›3¸C©-}´/9õÉé¶Äï-žîY7×½öÏ $$$´µµéÃe¥^ÄÆÆ655νÿ¿üÚÂ-­~¡(%pº¥«oÿ~9 #¢8c¼h,4"—74C† 1ŒªÒ0i,4"—’£'¯”ÐC[ð@€ž›IÏ4H‘1éó0dŒÛW«B€h®ø¡¤­Æx9¯ìc¦ ¦­Êi«r†°¢ÄCTm‘·ß Ö—°Ö¯š>}U½ŸüŽ×o«_D¨è¶Z»»U~Õ½˜–8h€ðJ±ŽÙ¯{1}mñ½óKÚÿÄ;*wÊ,K‚x£@ FùC{X*óÛK^e¸4$U-i”ÀæÞVÂÚ3nhž Ѐê+¬‡WOýNÙ><Óü5{ýãÚE7Î\Í2ZËe}Õ¿83óà {› §*Ò¼4eö©¥gׯž14˺ž®oâËzë–m=3äÒª›‘¡¯„Ãõÿ9„Õ?#ÔˆK«=þGíÞ°òÅEÜó«~ž,~2µpïï­›·a§È8îðª™7oþÞÞÊGG©Ø£ÔSo¿¥G}×W¾Áì^žfkœ¶œmׯI§Kbù’¾†¾>è}úš5Oˆ»žØ.ÔÞnÛ‘Èö8ÚðMx‡{ä’ØÈïxýVÀW~¡È%ð³Í_wýpú ý›®î+CdZmøóýOp¿ýQI¢øÿûÝÈ­i;Íkžx‹ÛÇÍØùæƒÉ2m\íxgÄ3ú¼^¹æWxlüÒÚõK–,9qâDÀ¦¿X;çîºÇë îôÖrGþ˜íSëm˜s÷ ×¼Ì×£=/šþoÓ]ÿrj)ÔãíÍ_qü#÷+ú»éá‘û$6¸êª«-ZôÈÃ÷ù5€ëXý"BP…Kü➚˻$Ù¦=Ö}Üôß^ûû'JTíι/9«¬Â,]ÝÜ„Ñ#ÜþËœ1|ùéß¹ÏfÕžþɾވѸî®Ãïnál{hçáßsÿ©Ðäîöï·°&T-@w¤Õ•X PÎ@À‰ÓV:w¢ÖkäÓ¾·w4H 6Ô[&˜†SŸ¾{ûÃx;ãíŒEÿ§ZwÎnË8wÕÓßÝ#G™÷Wì8âü“ýÈÚ¬i镵¬T>=AXîpü®¶]z$O -øòü,@X!  &>ºT·ÜñP¾uÙ“/5ˆVß}þ®ßqw'QXÆâÖÿoÁç>ô—Ãêöj·æ÷äUOÏÀOþÉ"ëâéÏì°õ´ã™gv­gLáãØ#;Ê÷ÛUW¨#¼1e†uñËöf#Fš÷KÞÚ«)À!.Ó*8. ¬ à¡)¸`á*ýµªøöÐëeéo}ß4âöšÛýÒ/?4²«ËÚÍ/tu¼oýÚÑSúë;LÑÿ䜼Ꙉ ൭¿©Í¾V,ÙÖ»'àgæ%÷ð;~]g¾‘?Å‚T›°òÛÃø½£ÙowN~VjåGë¤Mzä™òã'¯”3„ ÐÉ«K³¦>sòÊ>ê¼êUº_uE¼Ð~YôÛ}œ¼*((hhhèU7Uî<999??'¯TÆ s  „€7¨{6,kòY{ê·‘’ÙÚb)@9CXöÛ•¿aÉ/á:{߬äŠQݶUxLc)@!@4zkãmß1õï“yÚ\6t­»Ð•ôÁ‡>žÇú‹_ü¢_¿~G5ƇÞÚÚú§?ýIÉóX!¬Æ80 ]  ë÷é¸)%2.V)v¢ûb[Ô¾êû®îò–A ì­ÊøþæÌ™3hРŽéÂ@ssó¦M›Z.œŸý=dÐÅŒÀ à¶Ö¶¼wøâ™‹Éy5$Žr^ÅÍë+ÓÌëo¾sþü…O†ÖÏ¡5`@ÿ~ÿ9.!5‹J¨ À-­ÀBUPBW(¡‡¶  à„‡€¨Lª2P˜+ŽP™„Ue 0 V   2«Ê@a@ ¬8@@@eV•€@Xq €€€Êħ[U~zReÃ0 áG ·ûÒ¡“±†ßÌcÄ €°j æA„5üæ#И„UcÀ0 ~ ¬á7ç1€€ÆØU×~ܨq/0 áB€® —¡bœ  4ÿÄàÿ+k;¼IEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/ecu_dialog_tcp.png0000664000175000017500000004275013001357026021711 0ustar potyrapotyra‰PNG  IHDRÈ1F¶¿ñsRGB®ÎégAMA± üa pHYsÃÃÇo¨dE}IDATx^í |TÕÙÿ'ûFX#¸ˆPE¬H]jÀ‹7jìk[l_%n-±­µÿ–Ví‹}_ký µ.`±úVq­ü»•¸!¢TAE …²üϹ÷Î>™¹“¹÷™ó½Ÿ+ÎÜ9çyÎó}f~9sî½ó¤uuuy¼ÛÉ'Ÿì{Ì@°CàóÏ?oooß±c‡¯qš)¬BRûöí{óÍ7=zèСvlÑ€ŽŽŽÍ»Îú´}°zç_ˆ#RX…ª^qÅ—]vÙsk¿ ô€@ù„¯}¸ý‹ëÏ:EhkÚL§þœs~øá¥kwõÀ] @À$pLyé3gn}â‘´“N:éöÛoßÒ~8h @ A‡4òºJ¥°.^¼¸úƒ= š£; ôÿÆÈŸ~ãkRX_{íµG^®‡ $H `ìÑÿ÷³¤°¾ýöÛ{a]‚æè@™_/¹ç"¯°þ}9ÂÊ[€@¢:Ç”®ÿ€AÂ]×ÎÏ^¼Þöþ:~ä±ÇM¼vVÚaGEÌéÞ¯?|‰wÆSX»6ùjÙ ãÆ—ž; -=»óÀ¾Ï7¬^³zõîÃ/J/<’÷  ûþ½â…K/³ü´ít´ß¦æõwïýã‚Kî}8¶°þãÅ»³+nÍZóê³M_ÔeæõRØñÃï_2lÄ×úÒ†î|¿ùòÒ⢂‹§LJËHÿxÛÏ?óÏc†ŠÆ~ÚôÝ+®vØÀ¯vïyú¹m§œ1ÅÙ°¤*•ÿzæ–›¯ÙKXW½¸bõªû œ4~Âø‰ßŠÂDˆÕmw­bñòÿmþè=kÊçý½)ñqÄüù)94Ï Óº<]²WWš¸íßcv”Oåÿó9áÛ“þ㇋ª#c눣žºô¬tó51ÙìnÛ½}ÓÄ ß,ÈnÏMk)Êo);nDéÀeƒÆvVña}²<-ý2›Ç” ørÛÆ0 }O?{ÔÞýô!¾×sN8Å{ü”¢þò°hYrB_ƒ§Q:FxØKCŽƒû]ä.#1Ûºj<¦w@ YH™Šñ×TÕ'ŸïÛÅSq0а ›Â¨É@4ëìhïjoïii¿£ý¿ÎÂæÆýöÛÇÕ2|Àqu§1t$ µU~ ïvÿFù„éÿqøWìB­ÄožŠMÊe÷]¿~Ë«˜`’j¨ª˜o ‘=gø!ÖÆ¶èŸ÷¿¸y—ø×|*Ž‹W» %»·—˜´vŒ1t—°ö aM a?Øò唡»6¯~~åšcGäw4nŸ8|CÿŽOv|ráÈ÷rkûdµýë½ö÷ß{ÿ²‘-÷ï 1bJ·ÿ`aÁÐüæm»"8 ii¿cZည3FL7öñƒMËãÏz|Éó`EI¶qdÈPOöèoøž=¾Ðhìí^Q2@ö’îæ«þÇòàøã†N?cÈðtÏðã,Ó+4î}j<êØ"“˜B eH}”«—B[»ÝO›8é†ßüN(Õ;5ÿ~è¯wÞòºø!YÑflÁ6iÄð»kç“5{Š»ôkéÚhÓ÷X¶4»÷vÔ¤bχVwß`‚ZöÝúÙ Ÿ ÐlÃx¬±EdÏA¤2ç—<}õ§¯­ÿyê%¢ÍS'Þ÷û6?þ·(íßÊþ^ÞQ÷Ýó_f›ë~ü›övJË'Qº=ýG×ýêÏ×,y1b›×ÕüÇÙ1–ò‡”~Þ–³·Í“×¾?»µ©nsóÁ†–Ž=-í Í{>oZ÷ñ¾žæ¼öÖÓ·îëìS44d)Àã9øáÚOžªûWÛÌoüùÙý"Ì¡­¿ÞWBžvß± »¯§eÛ.£_ËÞõ»²úæ›kÖ?ÜÚ"îjù̓ݷÀ<(ÿxµÇ¢û~ÑKkÜÚð™Õ RKÃæ¶]íÖ|éø’K­?Ý·;6¿³æÄ'*===ÃÆ&Z06ñà˜o”Gï!ÖC>çÙ9é999Ö¿âAFNnFv®xðvßBUïþãì6ï&‹#â¸l :»l/»ä˜{˜<eò`àR@wKß9öŒþ"m@kóÁÂέ{ܱh÷­ ?¿ñ¾í÷<ÓX”Ñ™¹¿µ£¹m§g@àofde…Ø1OÏù¶¶|¶?¿ø°ðUßöÆý-¥\llµÑÑKß)3)À†»@¿¾ÇÝý§Ì¼£Ñ½ ÿ¤Qž·Þøtñ;>ò»;ã6Ç–|§º[ºç8ìŸR!¬Y™™1÷Ò¯»þ'¿»x³qFz†aYꀇŒŒÌü‚¬¼‚Ì<ë_ñ 3//3?ÿ­‚’µY‡ßñû_˜ª}ãÏç˜Äqü­>ÃeGcÏÌË—»x`ìÂf n„|x_ O2EÜøæ?ØWøikÖÆÖ²ü¶Y“†^ûíÓsåÄÏ-êÛÞÒÞØºû@öK_ô;úôáÝ-Õó[nÿø³ýG– ;µÈë« ÿhù¸½iÖ1£ú‹É¬0R\ܯp÷~q",À`7[Û=ùCMký¸ûnù8Яïq„ƒ¢{^¿cîýŠû‰»Ç¤¦ •Ï“\i³¨À{0ÀfAváþö&é±à¨<³K$ñŒ­;ø‡@ªs Œô,[ýûkîüŸ_Š]<ˆÙ\Ì¥ecy1ÁÌ*è“YP(ö¬>}Äcc/ÿ®I4ç¶ź­ØnþÕNÊlÿšOÅqñªlfvÿʲ—ØÍIkwy ÖnDUöíwÔ±Y'ýìݦÃ6µæ5ìmmÛ¾±}ÓËÍ®hݾeÃþ­¹+weŸvSÁ€ÃÃŒˆÈ²¾v|ñŧÊýœâlÙ`÷îgk K­ƒ—¦íØ-½l¯ÿbƒ§ï9FË“ò_®o µ¹cëjŸµãówÔîÞn^…`Ì\Ý÷8âÁÖÕõû4srZë«W‡Ts„=ÞƒÝwﳆZšÕ$/3^Zwì6"-“‹^ïöÇ–ªŸâ‚@÷äl2#+'+æ.TÌw=@ÌÆb¦j}ü¥°ææfõ)Ì6ö¬‚¾â±±Ë§æµÍ¾ånsÏéßrÄS£‹”TCUeǾ¦±Ú94óÜ–uòê_«·› á[ggGsSã;Ï?œV÷ÄICöžw0ë@“¼U!«àóƒ}^ý,¯cäÅãξ´ßÀ¢lïêCw¦zõñ¼Â³ŽËª[½ÛXieƒÜ%°ô©'~rÝŒº1ݬyíÅuo½.šwÊiãNŸ½}é…÷Ü·ðüï\&šÍ«8}áCw|ùÊ 1]Øk`Ýz5øÌóf\yó¬ê×"öz$¯pÓ•çXÂúÜ;þŠØ!­Å%¼m­ûw~þÙúwkv׿•±ë‚.OzÆ—Í™­ÙC}Ò¨1ã?jX~ŸB±šao|½±Õ‘#Ž—×øêº¦°+zãh’€ÖY7üpãŽ&gyDÁ¼??d ëÜÉ}üž/_].¯ê2TÑ{S«¬OmÞÎ*¦ˆòöVßýªæí®M{Zåæ½£Õ3øÌIWLÿqÕóþmCø{NŸOèÖ¥kºVõ¸ð«½­mKScëþ–Úº:;Åü4;7· OߜܼLyÚJ.è&Û–ùµÑ‡•Êy½ØZß]³§Ûy{²Æx!ÐË ¼¸té…“O?ªx¨³ãülë¶=ÿÚÄóÏfÿò½Kn¸ñ?ÇŽ)sÖÅÚÚº?ßý׫y:¢ÙY}¶ÿÈ+¬ËÞ}5™³ƒÃ  3Ý_}µæ×[[[…››;î›§ ,*f·¿·æ¹ÿ¾µi÷.g]ô8è‚ÿsë‘'Œ‹höÞŒ>_þçÙÖRÀók¿pÖ7Ö hH`nZþ®«¼3ÖÞûRC„ @ÀYìÊk¸Ú+¬Ëßßé¬u¬AÐÀ¹û„°ŠÈŹ©pa=ªk“†P€€}Ÿ¥…––ù}Gî+ãúzƾ%ZB€@T+o@@XŠ9@+ï@@XŠ9@+ï@@XŠ9@+ï@@XŠ9@+ï@HÖ[Z—®|Ça ˜;ÿÜo$Л®€@²èî–Ö$Ö_üìºÞ?ÜuÂÚÁ  ž€[Âzg޽GXÕ§³;H|ïÉ#Ñ€‹Âú³ªJõïš;¿÷ë!!Î\0AXÕ¿ñ¨3wݪEùÖ«r©<ú{Í pU€æo‡œ'à€°ŠßÉV¿9O"‹êÃè1è 8IÀaÃQ¯,öÔÏŸ²ŸW/ûVWúWV{‚Šçñm*Âßxß·¾u߯î=Å7bZCnpSX7Þ7©à6ɆåUþ£UË»D3ï+R7Bžv#%ö˜”ÎZeô¯›[^>·Îx¸jV©TÑ)že^ËË !O#›îL€LýÒEž¹uó+¼&*æûËcSgÖ¬¯‹ÇA7c4/¯úÆâ‹- ûq}ÔÆ%•Õ’SØ ‹x=ž!Óp‘€ÂÚíR@§ø¨wuMÌ6>¿Ä3ç­»&zN¼ë®‰!Í"ôŠ0·ë9¡«5cF•vk ~Þœå£Ëâqc)Àsìȳ‰ ט•ß?y¹M¾_|½O'ßÿâé+ŒÇæ1«‰Ù&–xÆK[@À]n «ÐÕ·gŸRäÝ*ظqù3o[ztˆÉ…<¬Z Q‰¨›5UeƲkÙ¢iub½ Q…uâ”<|¹`ðÓ•Þf+zʆŸí4¶7/~æú6 6LÏ…îZá]¹Ìl²ó±cgÿYô%žñÒp—€%¬âÎÖÀ=.Ÿíííû"nÍmã~óÿ6z·Ç¾[$ ÒXìhkö yÙô¾¸FÔ¸tÔ˜šEK3XA›o5NUFº£uøä[ g>s˜Ø~òì¾ÖÕz¾\>9ì°Sg¿ýöºZÔ•'í}áð§óÌ6—?ì©]÷A,," =gBO@ §"Ч33ÖÈë†b%´³#ðµâá£Ö,}qSpófá½"Yï)ѯ⦹žª2ÿ©ÿêʸ/ñcÙÔ|ùŒßÕÕýåò®xI8î×+ê|ÛïÎ Ù|¼éo—³´Âl´â×ãÄ‘XXBW@Àa^aMdÊÚíéêðo¯güèמۿ5ûï·âWfÏ~eøÑekª_ÞlÚürõ𲣇ÇX¶LèD¸V nníïõVS²s (ó±Ç3®âLƒ‚b‰zY@ÏFN/@ Q‘ÄÓkà)ý ¹›xaÍí“Fù¶émîöýÿ}áW®ò»Ê3qBç„Û^˜¼ÌÛnÒ²É/Ü6!æ0>BJƒ¿à{¯Ã2$Q\Ö .ûÑF;ìŒÉ¾pElÿýýa2Þ‚Š)̦óñ°ï_Sf¡»¹¾ìDŸrwïÉ’ç¸ÆMc@ÀÖÏ®ø`g }1?:ªk“â×­®¿fÆ–-[ì4v°ÍÒç_é=?Ârþä3 ­g¦JJJî}`!?ÂÒ3zô‚@ψaI“"êßnoÏ}e\_f¬ÂdÌ ¦ã zFÁ¥^ŽG׃.…†Y@ ¸* Ör¨+¯÷ T÷º¸aüFÝ Ë€@w¢_ÐÙ«̰ìÒ«Òœ`,ŽtïU@ 4#zµªµÆºòƒ¯AˆS(1×Xaís¨½gU³÷áB õ ˜ò²î½7£‡*ÖXÓƒYç´çˆ5V¯°Ö k§-aí%Ò–úI&B@@!QÈ.aM:{5ç Ök¬ Ç+@ÉMÀîWÁ$wÌŒ€€zÎ\n¥~Üx„ Ðk 8p¹U¯Ap›@Ô¥€„®¶r{䨇 Ð[ ¸ô[½5\Æ@àÐ`)àÐpÇ+ \¼ó*5 ø DVïŒ5Í#oðíñÛ¦  ˜Ê)þ5ws ºÜ ]ÕðmAÈ€@‚¯ýg5A¤t‡´&ÀåVZ§Ÿà!WD¿ÜÊñ%Öñãçùk¡ÖÏ z%>û-]„Q@qˆ6cå÷âIS@Q ø® ðÖ,5þï"41!µ\YE§ýä ·~ÞŒªššª²´´ñ³g‹Iî¼Ê ÖþÆiÆ|XNo++ ‹•ÕÖ‹íʈäë³h£Ä4   éôЧ›?Âb裵•UÕHÌÕ•eUc–ɪ#²µ@)¤æ®ecÖ׉r© ç–—Ï­ëêZuåažšªõSÍ×f.˜#…Ô_]uÙ˜ª;«¥ÉšÚÑ Sfx̲¥p´~¶YݤnÚ¢‹šd›0!CGÀÍ« }´¶º¹årθ¡¶|îM2ÜÒó§•/XR]:jŒgÁ1Ýôx*æ‹:ÔÁ›·±§l´ìnÍ: ­ž²ÀS»A®á–O;¿Ô#ø˜Ž¤Ycš^#$ÛTåà*؇Ž;ž!Ô Ð;¯ ¨˜/¥wêóÛ|tÒâ»|Ù¢i¦Z›Je ”õ®0ÉN” pÈ D¹*@Ñ[‰ùiõ ¾~颚™S+êçUʯéB^…RšSPñíÞ˜`FÜÌi©˜’ŠîQ€8ò·bõ¿RŽ@Ô«nÉróÜUÅ|¹¶j~A³LÌ#KGy¬•X1]8Kˆfé¬Ùb½Tœ¼zhgh ÄKc¬Ö3Ö‰:cõ;’Î8e•rïf‚@/!à»™5ð–V«˜`͆=£ljm·S¥•b‚½$µ p@\ÅûäfºþUsfäb‚n^lå`옂 pè ô†¥€CO@p@Ä¥7¯cup옂 <”ßy•Ù¦~¾7]\ÇjÝ ðÎæ ùÛÕ耰nݶ3'/{ð ~Ú§€@o!ð宽û[JKŽpJX ëϤ°ºùëVªÚ[ÞMŒ08.Jœ¼â@ÀaQO^ùËbËf{Æ %üV–xúnRÖ%@X€&À-­Å ˆÉŒ5F¡R@ YD_c• «¾Ý½ŒJªSܳe@* D¿*@QùkYЯn®Ê°ñhE äWQ̧îàGXÜc‹e@ ·µFC†~ÄÁ±öÎ*­ˆ)@’@ ’ºªªÒY´*­ŠŠ ’u@*˜z꺪 ]5Ä3ÝXoð-9øni :µ¥"n|@p“€U5&¬ÖMU¾â`ðo7]¹¸ÌëñÈ«ʪ܄‰m@êØXcõ­¸6*yU@ØÒ²kÞ0 @ÀeÑÖXƒW`]æ!¤Ø¿n¥âI€$뜕÷ü¿ ÅWþZÊ®ïÒ§€‰ß”uÊv $NÀQ²ÄÓûµßP[ñŸXô¬û¼ÙpQíæ-‰—finnÝÓÜš8,@pÀ€‚Ü‚‚Ü(ã*ÍrôaùRG½úyõçþÒ,RX¶Í_: ¬‚À eâÖÁù»z‡VwK³(#@‡„@ÔË­Ɉp @  ’ßcMEÄhI€ Z¦ !å|—[)÷ŒC@)J è:V#F·- EA  )§¯,a—²›¼¦•{ù5}{6 ?¯xz5Ô°` ëÁŽ®À=~ãô€  #ˆâi kCËAß¾·å #xBJÁŒŸW/ÍVWúWV?#èÛÄó€-ÊKÝOt±Ü8F Ä Q<-amÚßÞÔjí­íް”3㺹ååsëŒ9òªY¥R*§x–y§ÎË÷&cÆ[zþ´òÖJ‚y$t“µ XÞ"˜€â% PXKG©Y´Ô8ƒ´ùRÃe0ÊKñJ{@ª(VOÅMs=UeþSÿÕ•Á—ÄŒYJsÕÆ€\W˜95ÂTÕ·JËkLž4€Ü! RXÅ"è*¹6ê½¼jŠ'’2F‹³b¾·¿\k >õe,Ìš=s°ÏI+wÞ-X…l°*¬xg`Ùkq Vâlù§ ^F ®º–*ÿ³¶ÛÛsý?tÝËâb8€’˜€Ò¥€$æÄÐ!Ø&€°ÚFEC@ö ¬ö8Ñ €€m«mT4„ `Âj­ Ø&€°ÚFEC@ö¸xë–O¶ÖoÜÒа×ÞHh@Àuýû÷+YR2¼8ЧĝcuQX·nÛ™“—=xP?×Qက=_îÚ»¯±¥´äW…ÕÝ¥TÕ^®i(" F”ÜVE¨p@ 7@X{S6  Ö”H#A@½‰ÂÚ›²ÁX ”  LXÊ^ÿ¼µ|!´4¶¯…¯Wœ?‰¹!@ I ¨Öê%Þ²×⧪çˆ"ªæ&„sŽgf¹|(~ñß[Û[»ºÒ:â/˜¤˜6  UÂê/u]·Þ[«UHéœÑu«nmǽµV¬b×ÕKXGdéÀÚ áå²tʱBIC@•°ZsRQ•eÉTYªZNPgx×ôigÙè•Õ®Ö×% U hM@¥°Ê‚Ô]]S—È%UY Ð*n]V%ßpSÝ´Ef!ì4qh̨R­Cð€@òP)¬&%ó{¾)²ÆV7·\”¹sWß1ydtY Ôú µ!G’9#‡R€"a­ŸWé=a%VN£kdý¼Užiç—J ^°ÄWìš)lª¿‰)C@‘°–ŽòTY_óʼnþà•UKëÚª²EÓäüUNnç‹ëÌ¥HÅ®S& ¤EÂ*4ÒûÍß8u¸‰¯Žšmt××-´Sjeh ”" JXS Á@ˆFaåý@Àaî «øMY‡Ç‹9@ P#J.VhnnÝÓÜšºBpžÀ€‚Ü‚‚Ü(v{uiçy`€€ûVw—Ü'€@½ŽÂÚëR€ d'€°&{? Ðë ¬½.% Hvk²gñC½ŽÂÚëR€ d'€°&{? Ðë¸xƒÀÝsçÚ ÷ƪ*;Íh@@ įcuWXg^}ut |aUó^Á  `“@âÂêúRÀò—V…ì+^®yyÕ›¯¿õŽÍ ãk&jiYÅ´ã룵fݰéhЃzFÀuaÃ*:Ô·(>ªtÄ×JGdgeF±³ðUš¬Õ³¨‚zÅeЦ؅4³ÙË`0$ÂjbHOOËÉÎÊÍÍÎÍɲ23"á©®”̼^6ÆÂ¬qôýêväŽ!B½”€ aMOO:*Ä4/7+/'K«˜®fgguƒÄWܪb¾Y7À?å4¦°Æôp^¥5«­4ŠbùÛˆ¯¡ví¬¬öÎ=ãšæú† 5pì¾ù·¯o¨Ýh×Kß; 膀ëš™™!”4?7»O~naA^A~^nNNV–˜ºæE’, (Ë\ù%EL9×϶ê¹N[4ÃX¨©Z?ÕœÔÎ\0GmDU,oÍ× »qô€ñW‘]6¦êNS¼ƒ7«x··\·|1ÂPÃì„5J€¤áƒ ¤$ະf›Âš—Ÿ—#¶l1S5¶ÜÜÈ¿‡hU¹šºD*–WQøÚcH­QS°FTΜËçÞdÎ*].§«¢8¶÷HXâ3èëî›ENYà©Ýa­W”ìö•ñõºÍa„5ÄNøP£˜”o* Ý ¸.¬bÆ*¾øg‰ÿ›X0ÿ‹ÑØK9ÓQ£úu „…•"´›À¸ 5ô-õš¢is ªM;Žhs„4ƒÜ'ະÊåT!«†° =›˜zJaÍŒ$¬B‰|‹rr7º¬tÔ˜šÈßÅýpd›EKYeýÒEAk¬=3(Õ|Úù²w˜Á()‰8Ô;áCµ ûï<@p]Xss²wîüj÷î= {÷îklljnnniÿedDÖÒó§ÕZßûÓÄœqá¬RQ8»n®ïX7W`UÌ+¡erµ`Æú1AÌž,5Û²f0ú4;d¨ì„ÕN€fS€€ë¸óÊuÄ8€’‹@âw^¹+¬vhrK«J´”èÕªŒŽ 8H qau}ÕÁh1@ ) ¬I‘& $„5™²ÅX!¤ €°&Eš$ LÖdÊc…’‚šib€@2@X“)[ŒH kR¤‰ABÉDaM¦l1V@ )pKkR¤‰ABê$~ç•»ÂJùkuï5–öDAíñóÊ|e´ËªÆ,«…¾-•Jd—ŽòÔxLPâá‚ÚÑÆÃð­Ç5·Ã;†ÀfY’^à™-ŠšGÛüÂÓʪ˜½ºôÉǬ«’äÎ+qyÎèºU1>‘®’Âø! ò¾djàéÈC0\êG ñ;¯ÜV;±SþšÏ—’)ÓF¤{Ê3š™ËÕ”ÉkòÒ«…5y02R@~‰ «ëk¬¤ €€nVÝ2N¼€€ëV×ãЪ[ƉpÂê:b@º@XuË8ñB®@X]GŒ@@7.Þ  JâUC`Ë'[ë7nihØ«Æ^RŒ@ÿþýJG–” /ŽWâ×±"¬)ö¶Iýp¶nÛY<ô°Ô“]#P¿eGiÉ«k€1œ„Ö$LšëC~òéçlú¸ô’ ’[Xïž;×N¨v~+ÀŽÚhBaÕ$Ñq…)„õÛW´´´D镟Ÿ¿ø™j5ÂêîÉ«™W_¾_wíµ×_wÝ5••⥸ØÑ€@w¬ÒLQÿ§Œž»Â*ÂXþÒªÀ}ÝGõ.~ã·w=»ý‹Ý¢Rœ²8qtè PïúÐç ÅGа}ïêÿ|*« ÞuaÁjîÊ‹KG½üµïÔîØ¸å«î…Õ¨ó½ºxÐ×9¼Û¿!²>ÝÌ™žEKEYæ”ßJg­RóÞÊ)M™¿òv¬?ÅJ‡…3õ„n¶ÛœùŸ 2ÆÜÅcó ØRMXóós‹õ5Zè»ø…÷ÓÓÓ§_pbSsSw襮N»iêoå£À©–õ¸~ÞŒªššª2óÃä/dT–E?ož¬yo©w/Ýû?–²Eˆð’÷áGb› ªsÀÁٳŠë¥åÊJ1O—cµÆa>ìHã´þEäc:5_Š‚7¡®'ÈÇ[g%‚Õ„>…âǰÍMͨ„ÆJg÷8pà cûážÀÝ<(6ÑÀ=ï!–]Ÿ±\ÔÔâù÷ê­‡øÆšOvîj.>rÀ„“Ghë.HCWÏ/ZSNÖY*7ª®šUW)‹XÉV(|,­Þšõ¢ÄUx½{ñŸâñ~(çWˆavBKÞ{¼»º–Í\0GˆzL³CõÕz 8x¥÷’ÌšÚÑ ³SfxÌ‘íGgèû%¢So£ð ¼Ê;ÃеlŒ¨À34;ÄümDzÊ ö¢ì­Ž£Ô'0"ê¦2~×…õˆ!E.yç‘§Wº½é©j1]MûNÅX±“›9NKW:ôvªuŠBöÞÂô²äàQ`9`óÕ¬¯w/Ô·h'¤ä½0r$¦YûÉ4‹%–¶ª&ŠR†6Ôzd1D¹‰Ÿ¨8=^;îƒ2{‰«Ò—üÓT1~EÌÐì hc -Ä‹Çhcñqc¥ÚÑaBç—¿sW5ëºgOCÕβð«;ŸÛöyÃàA…g—— aÍÊÊŒ¤¬Mm|ÇO“uì(«mVÝÕ»·m rC—Ìúœ¹mßUÅ|9Ä\0þŠˆïÞ-°°m"ȼ$bLü °Æ·lLÕ ñ ‚M[â:Ö˜»28® k[[[Ÿ‚œ‰F¥yäçõâIǧyºÄ2kVfDa•ºê[3_‡-e35‰|ÙÇÆ<PÈÞè<5 °uÆðz÷b~멺Ó7¿µi'$31Íší½ãêñ`lû£ÆÔXÃöÇ…ý·Rý¼J©LBªÄ—öÚ ¿#ËFˆI>ÖIH+w!^“Bs†Ï¦/ñ¶ÙØ~~ǺÀÝ<(¶”:y•™‘Þ°{ç¥_?§|ä¹ÊÎ)/kljjnnÉȈ$¬!_ÏÍÕXP­5¿ÏX?Æúø”Κ-V#åÉ«²ùrmÕü®´3êG!Ü~Ø8âˆÄǶt•Žò˜_ÒÊM[8«4fhvˆUÌSIê5¶P/‰ Au¥÷Ÿø£:f”o;1«ôNRæ…«·\7lϵæ.û®fU”‹?Â"niõÝ[%>W™™™æ…f7<ø ·´ªÌw ø º¥Uœ€ô^l@¥ìHnC·´N½hrcc£ÏÂŒkþ°ð_,,,\òìójniuWXí`BXíP¢¿À›!œ€Ö‹.˜´gÏž(p ðìsË“^XI?Ü €°ºA5Ùm a<鬘QˆËÔ«ë'¯b†J@‰ˆy­•h¸›\\ °9šA .ÌXãÂEãpÉý{¬dnhnnÝÓÜê†eljB`@AnAA77((Í¢É;0!uVÖXÕe O€€&VMM˜€€:«:Öx‚4!€°j’h„Ô@XÕ±Æ   „U“D&  ŽÂªŽ5ž M ¬š$š0!uVu¬ñhBaÕ$Ñ„ ¨#€°ªc'@@«&‰&L@@„Ukþ½+ÿÔCƒ¦OwFþ}ǘ±ßûmÿ¶í&YB³ !ÔXc-:Ô܇—Ž8zùkߩݱqËW„5äóŸ $Ø=0ovLÅl#‚$‹þ^Ûþq¥ÿU³Í÷ÝfÂßìõÛn¨¿ùÙ7j×¾qË„8ßZ1G§=šC=#à€°šŽÓÓÓŠöõ­M»š.ôõcK=S/í5lú#M}pco\¶Vjbí³7ÖÝ2åúý‡¬—Æz›=rÅPËžÏø§ŸÖyJKb¸éfvFØKá2,¤„5??·hPÿÜœìú.~áýôôôéœØÔÜd—“œgÝq›w6g}ÿõÍþ.º{­aèÓG¯öN¯þ‡\ØößÞ½víÝSÌyŸ¶h¾°Åi*̑ה94þýÇœàiix¨Bã„¶þÅö"†5Ù|ý6ïâkÅ|6pÄݯIÝŒ!Ê£ð±›'ÚAv $*¬C5µxþ½zëჾ±æ“»š‹0áäÚØ‚h·¶~ÄïŒÙÜŸ¿ýÄ B;¤¾”ýÙ;¿3 »âAÙ@¶)½ãaqAÂÐïÿîFsê÷È[o»hK¥5U<÷…ßÊY¼¦††9 ‹cíÝ›ÎòŽ6ŠtV¶vË'qPMO»åY+¨ZÿìØ²›ê¯c\Œ} ¡¯ Ýñ‰o|´†ìHTXRôè’wyzõ§Û›žªÓÕ´ïTŒ‹9¹¹vÜ[mÆž{¦ùåw—yê·¼ùiÝØ²Âè›sݰØSÿiЬT~}6fyb3¾@9/ÅeÊœš¦Â™ÃõV26Ž {Ú4 „a§Ÿ;öÉWå¤5úB^§§ƒ¢ …@¢ÂºgOCÕÎç©~uçsÛ>o<¨ðìò2!¬YY™NrbwÑÊóŒS:bù2‚œù7å¼õæÓ£øŽn*¦#ûQIA,n¿½«-íóqu‡€Ö¶¶¶>9'ŒJóuM»xÒñiž.±Ìš•IXå·ã•¯xg›Ÿ¾¶rmé° ó4ÿ~õ 1{=ÕßL¶±æ‰Ö¬ÖD7'§ÒìÝxqR€G[¦äd0’£¸ß Æ÷÷«bì²c6 :Â¥gDû³Ñ`>v@@ N‰ kfFzÃî—V|ýœò‘çN(;§¼¬±©©¹¹%##âŒU¬!žûÂEÖ™Ÿ)+Î]6Û¸/Ë8e|ûöÜ/×O»E,¤Í~µ¹TÎO‡M¯,µÚXG̃—Ê€ï=Z,–&ÅYxëìVÐu¯qšzm|Gö™úû·Ïz¯—ò4N=ŽɅW3º)w–Þo‹oó[ˆœº.8¾1ÐHè–VßWb®*n¸E Å Wâ_?[w^‰oß¿õü>æ•L%…P!ä àÊ-­vB}K+Âj‡#m ÞGÀyaí}12"@J ¸õ[JƒÀ d èÉ«dˆ‘1BPJaUŠg€€V²LŒ€€R«RÜ8ƒt €°êeb„”@X•âÆ  „U‡,#  ”@ÏoiU:LœA I¬¬oyuSË—ÍI2ÞÃ\qƈüsKó£´[öÂK»v7ˆßcJsrr ì?å¼³í„ÃWv(Ñ XQ×üðö¬¶SNÌ+,HÈP¯é¼¿±9ç­wpäÁo•EŽhñsËûö›>}zQQQ¯uBùꫯüñ}{¿}Á¤˜†Ö˜ˆhD üzùWõgœuæÜÓòü?E”¨ÑCÚÿõýi¯|ÑZúêË·OЬ› }ꦛnêß¿kkë!©cÎsssî¼óÎW|'¦Q„5&"@ Q×,þbÿeÎÔQÑ7E„µz_Ú¼]yOüëo‰Hç/=öÇ?þ±¥¥%Qv½©~~þÏþó«®¼<æ ø­€˜ˆhLjßÎLÝñK¡©·Ù FãOA†du²t´Vkâ ±?öŽÎ†ÖöÏ[œÛ×}ôþISÇ`ððÃÞZ¿fÇÎ'¯;ñÉ3kV\øªƒ®[ÚE,"¢è nooß׃íƒçž~»ôˆ¢ÐžEß}l£¹ýµtöÜg÷5·u¼={Ý™æ‘ï>ü‡?}°ïƒ?wùÁ¿Z­n9ùÙŸœºîóÙÿ›üôµú@téhkîÁ¼]DD ¾§ÖÒÁÓUãtg§Xâsj—öƒ­2!w«=çÞzì]?¹÷Ç|…ŽÙZˆ•䞬g ½7bXxÏM»l¤±ýç?=oÚ$›ýúGgí†çéìØôâR÷ˆ8¸iÓÇžþ§ÙåœÿZ³¦NvÍz2&«O¬pc¿Ž°ÆfD ÄE@,ñu8¸—”\½øµM67ÕÕtÌQBÁOúvùUzò‚Å—üb…“/—+ml=ùÞ=üè²5Õ/oîºù¡éߪ®X¾AnË=Nþ ü^o>ù¦ïÊkö0¶ßÁR€”ÑÉD@žRêÓ¥.çös§ßÚywÕ½[,›/üþô›=L:˜L¶wvñ£ûg}tÉÕ©wΣð"–˜ÒÚÓ3ð~ô«®Û'ýæeïÔòåßüæeaëÄÉgóØÍ//[ãS]³ùtØ“»nÿ«¯Û°áekžúš%0cµwÆŽ5Ödú`2Öä&`«ƒª*My办ÿôåÃúŽ—û¥]ß{ï•#Äq©¬RmG|ç©'Kn=±ò/×V©e6Ò3+þÞ£ÏÿŸ 3±¶™]çL(þÞ5e¿?Ï8ðËú²Í ,d˜–°‹¿÷ßþn¿}eÂ-V¾»pK`—ÌFÄ1šð³‰3Ä,â·vOrEîþòœùÙÀš¶ŒG[ó.Yå·æÌ™³eË–Tz”””Ìž=›ß H¥œKr0¯.uüCfÐZÒŒ‘”Í {o§Äß‚œ¼Jœ! HÀüzž"»±Äc1 'g®z}ŸßÓ,$îð¿Çºî´ÓOè—}|FŠüœþ9ïí=pÜë¯Eù=ÖÿøÇâwö¶nÝšo…ââbñ+ˆ÷Üs¿Çš %Ф'`VhüÆØÌüܤÆ ½¥µðµQ*,ù×ò‚>…—]vY¿~ýR#ä½{÷>ñÄÍMS/¤‚@j¤”(’ŸÀóš_Ý´÷þ9y50OԼʛ<*Z¥™§Ÿ}¡±±éàÁƒÉŸ=AVVVaaŸK.:ÏN8T°C‰6€â @8`Ñ€@"¸* zô… ÂÊÛ€€ÃV‡b€ÂÊ{€€ÃV‡b€ÂÊ{€€ÃV‡b€ÂÊ{€€ÃV‡b€ÂÊ{€€Ã¬Ÿ \þþN‡ c€€~fuøèÄ¡ÌXõË<C.@X]Œy@@?«~9'b@Àe«Ë€1èGaÕ/çD ¸L@^pÌ»Û\ö‚y@ºWè*qBPFàÿ$=ÒQÞYâÓIEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/Mark5.png0000664000175000017500000000536213001357026017725 0ustar potyrapotyra‰PNG  IHDRhhµ¡sRGB@À}Å pHYsgŸÒRtEXtSoftwareMicrosoft Officeí5q rIDATxÚí{lUÆ/mi·¥¥-my”>(-¥…Ê›–Z(å]ÞPE jˆ(ÁDM|Ä¢©˜¨±ÑøHLÔ ã«‘D£$ˆ i0Fk¢†ˆb"DùùÃzó]¹ ³;Ïݹ³{7ùh—eçþî9ç;wfî°ÞÞ^¦¥®ô h@Z¤¥iE ³Q–Iqß«%ˆø«¹6s=Êõ×'6z–k×âx5 oPh˸z0È\Cè;®]€<^uXªÉ ь?'À¶sÕ˰4 +Átp½—"(ñDQz#W¶*°Â“™6+PKdPÈ1U\ÏIƒò¯b†0q¦T(ј\;¹Î*d(΄م •ò´—*8Y˜…×pý®8˜x¢ u_ªÓ^ªàäpÝQ0f½ÎU”ªhJ…  ƒÙŸ&p„>çªNEmJ6œjL:Á¢TÝŠì´”—Ì”ÖázãTç¹nN&¤dÁÙ„/ŸÎpd=–,HÉ€Ó™ap„à4¤ áÔf@ZK¤AC N × GôJMAB ­œ<®73ŽÐ ט j’_@d¥s¹Ö`.ÓG˜´9~û$¿p(”oÐ@,×ð^¤ì”’êÁ)å:­¡ÄU;ÆÉ3$¯€(tc\Ok uˆ+ßiðSwê3´ßq«Í˜Ì9IdJm\¯èÁw¤¯¹ 1©]G‘—è¡Â7_¼+ÝŠTwÑzÈ=tFô€tW"#U(re¼ƒ5&;©åLÛ½D‘›èÉE.=¬Ûs¹íÜFOc˜¹{÷î¡“'OzÖàà`Ø6Á`9Ž"7µ‡¢gG˜Hƒì÷Õ××& wÜF‘SçFÑSÂuLò%êÇIµÈ7 Ù¹Í ;ûtþüyjÑ7}‘Ss0’ëÕEÔ,¼Œls’朦7Z ýÒ©4ô33n«qdìÒ[>¨¬£9ršs Ȕފ¶×iè6®b'nÎɺ}ÐZ (P=Á5ʉ›³”êՀլ̀KÎr È\öh@ê8×X”„vÛ®ÿ¡BFW¨Õ€Õ)®J´/ ë“þ‡:ß (PýÁŒÂlû!;ƒP‚:¥" ³gÏZ®ÐÏé½ýýýC[·nUR úË|¯€DƒJô‹Š€œ¾èßíØ±C5@а&tr‰N/Wu@âµwï^•ÕÁ€øT†R °|nçàÁƒ—éÈ‘#G‹¢€4Ñ/ Õ¹…iU£ž"u©ÞI/d¨¤¿Œªc:}úô(ÒBþ^i@E‹‚ç…~åjà HßZ200p¤]݉ "H6 OEõCŠúþPTàùõmQD0´Ë¯‹ªèƒk@ê!d¦2¿€h%6£¸Šë諸I±t=2“í9!''ëh-޶äú4ª€¨©UÈÅÑDŸÆ.­ÅyZ,5¯fÓËϤ‹Íù Ó˜ðUÌÁio§çƒ&1c«ÈP:¨F5äú³~ÀÓ ;«^hVXuˆ®É¦õ3NAÑû¬à(p}ö:Lø1€á^É×$Ô"o¾«B‘§§ŸQ$˜Ekp暣РÂqf\¡ëÈb;½ª§„[%OáºK•FÓí‹N8'ÔG\øªG¾.Ž.p kãh‹±ß¨?ñΞ:yQjTÀ°üÃŒ›ßš1ám ‚“+KÅ…ó¢Qx>ÖAŠô•è|œÎÜÔ¬ˆn|›cª?Þ®,µ¨C¢amáZÄõgØLéŠjŽù¤ýLÁÓÛ=빦³K§ºmëÓ»ò`)ÍMæšËôÞ R-ZÀµOƒ°Ô·\ Q{`­]E×FÈTJŽŽNæÐ@.mZqœÛ‹ÚÜN#qöê)‡Ÿ§e‹¸½±Ÿ!Jù÷"»Ì@Í–[ð{õX¬Ï‰¾hBx!êÑ9 ˆ=‰fž²Kjv ó¸gœ×ýâÄ*w C+RÝÎ …"L]ž¶Æ€V]j‘mþ¿´*i€,v\†A¤ºv|¹×2Ò1XêùHmõ0¶7i%cÏRѼŽÄ—¨‡«›/ùq†EÎÌxxU'zžF©Ù¤œêJðeD=¢âH[ä÷g¤¯˜±‹UêN3Rÿ()µ¥n×_‹}³ ¤zDEqLC7µ i ‡&á*Ôß64¤¢îxrmÉÚyž¾Lü~3fR =Èu& ­tŸgLÁXj±åX8;Ï›žÝ ¬wfN š³¹R$ÝÎõSšÀ9ƒI·vzLRd b,ìg7ô^ùô“ U Ì›‘î:Q“¨ˆŠ8zpÆLº.¤µ N±_S( H5¨I³àî–1ãœüãL‘»Æ]FÍKÌØg9&Ý\dŠ &8êc)`­Â@ `¡ôWBךþÞ#ÁØ k¿ѲάMŠ˜¤ã1¨¡…’KKjJK9 8BN{2¨:äú V+ìy'r)ún¤ÃUì5ÐZéÏ«¡Uxÿ YŒHPf£&6a¢TI`D:ËMeÔ„È¢6‰´'ƒ*GªÆ`MÆät d+RP F'"m‘…ºb`´È¤Ô@i@ñ¯ÄD*˜P9%jT)`ÅŒž€zЈTØ‚¾j:{–…fâwÓðþ)Þ€H­”Ñ0/ÅH½1 LJÓ™2€â€’kT ƒU„È*Ãì‹A­ÂRR-{¢…ê¶0Æ#:GãóJ1D´äáÿ*%%•ƒÁ‘•/ h¥˜ùeˆ6³ÊðûR¼¿ÿ¾‘3AÉ3•) ÈÔ0i›åIQ–XHü.&ÁÈ5¹ ŠJ`”äX¶ÎNÙ&Y¦ÏUJdÙó¬Hs”¾l&J‚¤åGÿyÖ‘5865IEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/Mark6.png0000664000175000017500000000555213001357026017727 0ustar potyrapotyra‰PNG  IHDRhhµ¡sRGB@À}Å pHYsgŸÒRtEXtSoftwareMicrosoft Officeí5q êIDATxÚíylUEƇ¶´¯¥¥­mYJJ+´XA¶–Z(e/ûâÔ—(ÁDM\b ÑTLÔØh\5FB€¸I4J¢‘c5D\ˆ‰õôŸs¼ßèt¸÷Ýõ½™×w_òEò¸w~sÎùf¹sY?‹e®âFˆÅŠÅ€bÅ€be7 þá¢Ð H]nð»öïG(êèÓ¤¹¸@“¥êl6=¹ü„N@v.ÌORwi\O:€_Ç<,{{]ºYGEU‡¼îI zePýÙŽ?hÁÎn,4Sw²kh·H ƒv–’Ö¢ÃEŒ HޓЈ¼ù†iQ$œÒ\ôé÷vËô÷5šƒãÌÚ¡ëÉb{ÝÕSÁ¬£’§rݪ]-Ê¢¥†8âÁ®y_mp ½qtÄØ&@ò»qހź?™õð[:¼«Að²³TlœuˆÂóiÝ€˜4êŠÀ²ÜM¾ÍVêO°¥6uH XÛ¹rýb $1¥:2Bôÿ4o’W£g×töÿR·kýñútCì ¥¹)\sX|6_½Ê5WIoážnpHsMèthß×qÃ{ÒÌzA Sh{ ‹âù ‡'ì& t2ë 逻žeÖ+u.B™¨d>a§>£Z³p ¢èÃ@JQ­^Æ5‹Y+¨òvßðϨÚ<å­FÑÍ\±øÌ„Tãž.D:ö ÿ”·Ã9 5R-šÏµ'a«/¸ ö´ÀZûŠž '©•-æˆ Zq%œÛT›ÚÝI#gõTÃÏÓ´E7\J|°Ÿ%Jùw »\‚š-;·èÏê±™Ÿ㢠 Pþˆ±G1˜§ìÒŠš]Ážô¼81Ë]ÃÐT·=G¡“DÛÓ–ÀЬK#²Í[«ÒÈæÄEaDªëÂŽ”£ŽÁRÏCjk†1p}H+g–ŠÁëh\D3\Ý<\ä{99ß0ëåU=óL†‘ªA&É©®#êG:"Ž@ú”Y§Xõ¢î´!õ_ ¥¶Ìúksnv‰T¨(ΆièÃ@í¯a ‡:áJÔßN HEÝ äÚÒuò<]Lü~zR/ ÝÃõë0´Òœ¹0a©Å‘czNžWÞÝ ¬wzNgs¤Hº‰ëÛaçWtº°Ósa’š$S`ºßÝÐþÛO€Tƒ0oCºëAM¢"z(ËáЋ36£Óõ"­µKpÊÚ‚H¹@j@Mš w·”Ykò3ž5Ï1ëHœeèts)&*pÌy$9ÝÕÁrÒ¸€ÖD#5¬cÖÞÓkÍŒìK[…qÞ¢ãsfYMǪ=€ïÛ³²©v‰f&À4£ÖÔ jF©)e㻼]R^n´7>A5©¯ãŒ%€µ )€m€6b|%t¹òûŒõ²ðû- áÌ:¥ˆiA:‹Z*¹´´¦´Œr0rÚ“A5!×·£±:`Ï{ÐK0éC:\‰Æ^ ­‘~½ Z‰Ÿ_ ‹)Ê,ÔÄVt”: ŒHg…™Œ-€lj“H{2¨jÔ¨z4ÖL@NGCv uÃ`ô ÒÚ¨ æF€ÌFJm”ÿZt1ZÁh䔨Q•€5=z"êÁd¤ÂvŒ«¦£±gÚhþl~~*€· Rëe ÌK9RoB“Ñtf PrJ ±ÊYUèÝãШu˜JjDcO²QÀ6ÆDç|_%:ƒˆ–"üû"b´‚1P Ph,YŰрV‰ž_…hSU…?¯ÄÏ—ãï—"R ”|©Ìh@6 FH½XV$EY1Tb#ñg F¡d“À Ȱ| œ›òyÊ÷%k¹ ¬¬ºçlºØ\TÜ1 XaôÖÿ:…º¬aIEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/filter_context_menu.png0000664000175000017500000000570113001357026023020 0ustar potyrapotyra‰PNG  IHDR•©­xèÎsRGB®ÎégAMA± üa pHYsÃÃÇo¨d VIDATx^íœMlGÇ‹½š±÷f9{²“µˆµƒ„b,0Ù€YV9DX²Å…U¢pàâCd)ŠÖr„,|ABQ"ˆL|@¶D­Va1,‰m¯vƒœàYl;7pcqƒ¼ªþ˜ééžñt»»ºÞôkÍaº”Óð•þ¦jõõu¹ùÁ=ÍΧü ^W__ž $²íW…ÁôßM²æ#ߤ¿<Þ\h¹jA¾|ùR2¿åtêõ?è±m>r|o übmD.¿½ûúÒ£ŸÂ,WpLŸÑ§ÓÝo¹ÍØÊ¥vYy “í—ùÈgÅ gÝ¢lƒ?û'Øüðûº}§)Þ~èÌGÍç²/&¹üXç`zòÐõ^ eAêúLŸýFû&/\Ê&Ø3qKš±é[Wú><Ò +ÙûS‡ôIòûÂŽŸélÝ<ø|aÄÑ>&æØÏ:ù¢èbj~qÛàOé.ÙÁ`<ÉüÀãäñ¯añë_~ñzËÇp? Gss+»â˜6}9SÖÂé|ãk,)äòÛÛüÀX«z‡[FùíþÞ£lô=X½þ¾ÜjäÛsˆ]™hÙg.HƒWûÙ_5ÍÛO±éÜßkÝ¿lÒ”§qe4¦çG2¢ìÖó£/^ÈÍ¿`σ¬1Füp_ÄøáŽnï)ÿˆîàöžòøáŽnï)ÿˆîàöžòøáŽnï%ç_ R"§‘øªÐ$ó ïb© ­jø…we(mY~ymY^€d¥‰šÍŽW¢É‹ -r~ m=§+zAÔd(¦í¢4 —ov–MJ'[bÄT…5?.ëÙ¯ëÆš|Ü;ÿ@Ï®"Q4K -´:ú·>—)-¦*´¨ù¹...¢´À¡*Q¡EÍOÂnê‚ëìå/&E.:EiÐ,=zQ4]¡Ûüép©ÐäóË/T|»(²…–— ˸2Zˆ ]Diƒçz&D³OY·Ûü¹!¿êT¡‘þlCðÊ5 ý™rH|;$þôí*ut‰ñÃ}Y?â‡;¸½§ü#~¸#€Û{Ê?â‡;¸½§ü#~¸#€Û{Ê?âç=\¡WÓ‘qT³^-Šüƒç|™ž¾ Të‘A¯ÄU¢W‹€_vzŠ…Š*„üho]*4c[¥8VXÀ,.z5Eôgp«yaûUgÝjç‡O)Uß‚ôgÕƒXêüY=aSæLáUª‹&Oˆë‡ÊDN Gá§F0zAüB+p™ø?ÜÀí=åñÃÜÞSþ?ÜÀí}¸ÿÿ|øð!îð¨çýó§ ÿÿ.?õN½G÷îÎÉメ˜z'@ÏÔcâ×#ºÿô95ú?58øõ‚øùœýˆŸüzAüüFN~ÄO ~½Ì/ÜBãe·¥¹–N¤žºßØÑO2?p9´[JlK ‚‰òùyñÎKÛxnK‹œ_P…Æ]·¥•ØEæ­º—‹Hz[ùüÂ)4î¾-ÍuÙ†[ˤCØÄ€òù…RhÜ}[šë.²·–m"œÒ»Êççõ+Ù¸Uɶ4¯ãâh¯6¿ w‹•ږ溋Ì}k™µ ;ß( RA~ž —ޖ溋ló[Ë"îówz~jz~FT£±©àüM ŽJü‚3Ü&~Äwp{OùGüpG·÷”Äwp{OùGüpG·÷”ÄÏCžÌ}ûݤùšúei¦¾]ÐÀ|¥¿ñqØÌÎåŠ,˜–ócùBÑ.òó/±ãÀ_{óW÷›5,±½ûðž¶DatüÌ›íh(ëüXþ†P¡|~*F¯O‘ó+Jøó˜vïÆw“wžð°òIOŸrï®ò¿yû¹;³æŸ¥#ovä³´qèc9†ÀK1ùüıPA ë;ïlbb2ÜUÏiÝÈ5êóm[0HhZ"Õ{øO¶¸[fMÌ7î':xÇ·Yî‘­eјéEÁ¯‚…Ê ©¶®é¹¼çrOµçâ›Dãk5ލ[fWèX÷F›XkßliÂͨœ÷òóÏk,:ÅÍñŒ¤Ãµù%j,gN›^ÈAÇg÷ĉµ_2öù³È޵;ßx1¢¶ ò«O&­û—úŽo°…iã'£~Gã~ä—UqÃRßÑÑðhŽO¼ÿe Žù³pˆˆа¤? (ÍþLb°CJÁù3ä3®.óÄ7OâGüpG·÷”Äwp{OùGüpG·÷”Äwp{OùGükh…xá‘»+” Pu¶w•ÊùAâ©|~žÜƒÆÞõg<ô[kmšüRƒ®¯U¾ãÁsLˆáºvÔ¹ôîª×`8Ú«ÍÏþ $¿ ÜÕÕ½[këÌôÊ=.HmõW!ÊI–tÝ/!Q›ôí¹ö´.Á¯ ÞËHWe(Ûä·IýY¦ö€±\1VÓöGC…6¹Ê Th‰„–æ3až´3jÚÞ?E,©xCËvÿßðç-aäŸ?W7tb¨?ƒ´ÆE›ž‚Œiض,ýÙ?þyMÁü ûô«Çþ_ì#~¸qÆünCøy?66F¿ÐcßòêÕ+ô'ãø Ä<¨«IEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/connect_button.png0000664000175000017500000000217413001357026021770 0ustar potyrapotyra‰PNG  IHDR!`bAKsRGB®ÎégAMA± üa pHYsÃÃÇo¨dIDATHKµ–ùOÛfÇûÏMÚ[×Iƒ­@ÛuÚʺµkKµƒ‘Ò I IìØNì$Îå„Ü—sNìø„cˆ)­öì ‘P–"’ Uúʲ_¿~?¯Þç£÷õ½mþcçÆÇÀøƒ2d¡RfS}ÃsÅ'=(ƒöRë1Æô]‘H4dw ÿŸ &Iiþ±´>ñ$ôaüÉDÓ[ ˆñZŒxNþ~&cðÈ+nIë5T}ÑÁ«‰ÚÂÊ 6‹ C0µ"f¯Ï÷„ñù(‡å*¹þ Ø>¹üÉP2p“‹ãê ÈÝn[TFëìÅ,€?•J2L®ÉdÂA:P›ÙO;+Åt†¬ˆ³ÚŒ™xþú¡ÒQB…¹ãÓ#n…©ˆ’ ˆ¼ž…?wÔé‘o–—φLáy.9Â.aÏs7ò¼¾û¤qVûbª¶5ßµ¢Q§!oå‚w:MŠEO£<L£¾I‚Ëj¹W €R ïG^ώɘÅ;kÎ;t}2!eù†^Ê`%;t>-é1¢u¬&4…eOÜçÖˆôxñDo@V>|~ FTLïøŠý»tÞ¹ëèE¾žzóDœhv êy«²ÜI9'3£oM@é»wਥ]=¹c¤VúüND…Z/ý’ÁõªÂ婇ưàñ—zk•µÆè…lÂþ´–¬×/èCÞõ¯¯¶1\áu´•7e„ùy-ûì³§Nº… @(ÐY.ÂW ò<þýYÆÜÜ­ôs€P ! ²\)?N‘øûwô†ŒÝ„P D ¸R~|,‘w7oÞ¼„ @(Ð(\yw€P Q äàÝôé‰iû÷Ü©ØlP ]Ý«-Zµ›ÿͯU·ù3köVøú#¼hÑ#¯_¸Pz‹™]B†)Pwôäﶦ+°ëç ÕZe ¾«üÑPýT/ÿ›¿öüùsæôd{íáNاb=Ì?䬙®¬xÖçßQ1úqdlMV`ÃÒΧvð6,]º¡ü±ìxj!µÀÿæ¯=þœ9Ýl”ÒÎYOþ! g](λ3Øš­ñnés¢máSŸ9|ÖyTþ8S˜Glžâ”…RÍŒvÖgßÓõ!Ú–n0O»™Eo좧q%;þîÙC§’ä±6ûÚ·¶÷ywíÚµl W`ýƒ!;\ï ÓÕÿú(N˜ÙòÄ‚OlñŠÀ¹8ƒ•>ª&×?H™œ £ünC¢$7×ìfÌí§N1zèë‰ÑÕ†_otf†ÀU$ž¥bÓØ†CuÔ{`]0š÷_ ¨Î‚Çߣ:žZ÷@øYfˆ‹)!¬âô‘ ñ¿±V²=_…º”î 7d×–åšÝ^ÉÌéu=C3»:—»Ý£(λC؆GuK:KÖ½K°[ðø»á¨è8:¤£%ë­[ÂãtgðnqÎì/B-Ò6ªÚŒjL*•”ÓÛ+™9³`Z?©vÕÕá¹ÜíIAÞ]½zõ¶F+ðÎOîZòR4:¾ë'ïð¿avÄñ’%KÔ§—ˆSºœ!€[Ü©–«^7Bµ:Fõ¸ 2šŽÜÌ”uYŽÅ/3¸§'fW}½Ñù@W‘x–ŠíÇÖlþøØ]:b¼ë±?ƒyñþ(å®ûï¿+JÛ¿?Èxÿ‹z°žrÑ9»8å¤JøßX+«%[êünC"…;Äuõ¸™U;ÆX¸² ÙC»§«Í¾âèýþ‚¼›ŸŸŸÂ h”®"þÛ‹ @(Ð( òîÊ•+Ø €R€ÀÕµG? uìØ1úõ86( @C d¸²~ÿÎù{²§~¶ò™gž™%XbƒP 4BB‹ð•úûÆï(÷Ê•O&›ò»õè'€P€EàÊZ¿ÂÇ;¬Û >:ôãwÖïß ß 1"( @ø{îàÝž¶,¾ ‹‡-W¼ì h‹½Ó§io9õ1|(Ú x×–;[¬c„ïgáßÁD h‰¶·rõ(v( @£H·‡wß`˧­iž/#r}CZ=ð«Ë_Ýž© ‹Ñ \¿~ýøñã'Ož¤¥Ðä*´..}”«ãÒÊàdfsssDjð®|ïòkZ[Þýçeÿ3@}ÎÞI»ïòϲjs‚wùõ­'ï¾³ôÜÿë÷—þâ·}&Zzsà]¥¼›Û;=§Ý?róqËs’ÿÜròŸ´ª[<ûÿëž[µý̳;Ͼ4öQ}ÞwùgVÿr‚wùµ®ïþËÃÿmõ¦Þ=6ÿÿf.x|~lj«Ì^­ òÀ;ð.ÿÌê_Nð.¿Öuã]MÐæíxÞåŸYýËIï†ú×XÃ["­êÏÖyà]ÞÑOòÑê<ô¯~E›óýlÊó»éÑÅáŠV‹G§ù66â$5|>é¾Ã;’%ÞÍýX»¶+–À»¿¸G)vϯÆ{ü¶Ê¾_-êÜó‹}žòòo?×nÑÚ¤¡‡w±eŒ1Õ—ñ¾Ÿ¥×_»;î¸C"¯wÞ%MÔ¶Ï^6úúiG)²´]1ÒÊöïÞóÓñ°‰¸`@հݠ柮Žtþöê}qgôY.ìû~☎S[ôôЬV Ù3XÿYʱ«Ø0BK0lÃ4ë¬0<6¡`.ï[Ã3¹Ó!C“½ŽÇïm÷Ýwߊ+Ö¯_ÿæ›o¾ýöÛ[·n£ôryèÈê„3MA¼3î ñC P+—wÂþ6þ0DUh  µ4‚îý&Ìv÷ÚÉ(›šq·æº˜¯æÝç¯Gû'k¿½híVý1>Øô`§C0 ³Ññ=?ý$,òûå*‘kЧD#±óàïÜÔPTIPsç‘M\)þ£uY xÕeKoÑí¡©gŒ§ÞÅ„Rx’󚊞ž>Þ‘ÍD7ѺXH s½þÑÍÚÊöïȹãɦ} vúÚºýõ׳_œèÚ¿S>rÄÅÀì¼w`fol» Ùtº§æº\ÖŠ¦±Á;›8ÈUb‹QÉ¢ÐÇ» `Œ3rÐBryɨÑãò.F­¾v‹Þv¸X–°¬wq€eÞGÃôB¦‡õžÂ¥ÿ=™ý~öÆ›W¯]W{8Í&¯_ x·7JW‰q6¿-·¾þúøì ¿V®zׄŒåoºI1Ýlz„ú낲éEjw X+ƒwÊË;Ó ‹AFþó¨Þé†Ò[4Ája«ðÇ€wÆŒ/èÞ5÷t–m2 €&fdQ¹M%4¿ ª b«µø}ï‚9©*Å“°½{AÞ…2Þ½fŸçŽ"AFdøîXs>Þyj®ËÕѼ›¹p=Þ_žP>øºJÙ½ö‰à8à×»91ˆ@¬ÚgY´v Ú½vA”ÍÊÏeƒ‚QÍAÎåë£ÚdÍúX·e´§Nf´höP°è±Í»kÕ\ ž»…Æ#nx¦‰ <ç3¦-MdÓëb0,•óŽ–Î_ý2ܧ~©ÞPLÐÇ·¢Gèw¯yzYçî_îå<-Ýé™ÔÑc³B+Òa£#‹N§ö>­7³”Φ•_¾ìn–ZVžpl×\—KÃZÑ4>|þKcßõô°.zzspvã»ÿi—Ê&3<¼ñðù©¢ï°Ð¶hù‹¢lëS‚³¢l\P×&k6[‰ÚÕ]ÈhñËÃvÍZãÍ÷‘„rìJõ-0˜à²¾Éï,‚®©È³ñ´í,[Ù§šÈôóÍÚÏßÊywý«Wæ¯aOW€æð‘£Ç¡U;a­hO_ø{¦$ìJÛUÙ¼;<·÷°ñû(Ð:ÿ†Vùµ¢i|èì5ì™ €wÒ¨ªçÝõ—¯\Åž®À­[·>?rì:´Êa*¬Mãƒç¿Äž©@À;Ø•²+âÝÎ;ßxãÍí¥—^¢úWo¯¿þú'Ÿ|’õûÆŽ÷åõ¯.]žÇž®ÀÍ[·>ûü(´Êc'¬UÀ»³×°g*@BÁ®´]ïv³³³×ÔÆß¼£Ÿw?sæÜÜܙӧçNœ8yäÈÑ={öþáï*a7x—‡tœGóîÀÙkØ3ï¤iï^xáfaîòå+/]¢…+ŽÿâÈ‘c3Ÿ9thfbïÔn›œÜ÷ÜóÏuÍ»}Ø @ Ð4ÆžS äoj•Ì;öéÂ_ºtþü…³gÏÍÌ9xððþONNîßþñ®?ýé#òïŠðî&¶| Ü o…b˧iÕàß$ê{×ó‰ÚŠ\šwóóó´Ãîôé3Þ·ïÀÄÄÔîÝÛ¶í|ÿýÇÇ'Šð®ï B(`(Ðù¦ƒï07 À+ØiÀ»!·u  €wàfh‹àx×[Ç8¡xÞa@¶(Þwm±uŒ €wàfh‹àx×[Ç8¡xÞa@¶(Þwm±uŒ €wUñnòðíS{¶ó¾rõ(¬ @Á*Þ5wc#z9€‘12ñ98±xtÚH óÐ6=º8*—â«'.UÔ¤3MùJõÕ¢©ხ†ró&öµ{}m̺Âe2úeÔÔmaUwŠÉ)”ÝÚMymóÛS  ‘=¼Só¢C¥ÿu-]ƒé ª-£Ÿ%ÿ=YEþÝô´šÓÁU7íFÏ}7ÏØhÄ]ÊMÑf£ê !b6‘B]ª óë=«Ûê`úÑûHÊ«ÁR € ²HH ²˜i›œ¶&ǬB¶ŒD·®øío5m d‰hHDÛ˜â}ÔÇe%h+…wƒFa3x'.(¢a>»¶ó„7Gë†m§ÄŸÃL™:fU–qæ9Ÿ=œ<µ WžryǾsàY÷OQ‹¿B³Û¹uÍ;ãJ¼#È–8 ”à]YS+‹<6CIîìavqLÁeÂS£Q@í÷-ËžÉu+×ÑyØÑ·i+ÔÑc Æ¢˜žz®G‹á†_ºê”nN[=¡ ¹œ[š1v5^˃K¿Z¨â«¡¯Špáð"KoQY—~"aÛžçN ‰¦Â1ïØ¹óúq|Š7 D>Ö‰£ê˜¸™A&r<+ëäÌ‘Š¾³ey—©õ4Å¿S†`Ýq»cBž„5ÓKäxc,äaC=CåúáÝIxE³-ì˜ä5mŒ"qFý (À#B `lÄœýq&ÑO£®ý‹JøfWêúwB$w¼Ù.¿‹«RÊ+.•ZyÍÅoCÊöä%J2ïlu Þ%=°Ó˜cH1°hãüL=&kÞq«”.ÎT„Ëêšå±>[=òšÂ;uQãihÍWË5Š©d–ðP˹ÉZ!‰´HãæZ-îb§M½šˆdzpÚ Ü÷l ‡Í|\eø¿Æ@ëI;¿—WÍqÉ|%«R–‹%L®Kÿ.¶âdãr :‹xÙþå÷Ñ ‘][M²-N·x§§D•¸‹{)f]%¼KxD•Ä»ºÒ®|ÞéKφŒÇ±¨BG?%ÓmÏK²® /ûù])¼ÓO‚ÞØYó1%²®’z ôïÔ´O *¼þ÷®ž´¸_ê`jÆ_tÑñŸz‚“ÒdÝtSÏë!ÄÍxÌtW.éÞ KYC7Nñ Íð¹—Gø=I’UØ¢€wì9úêú]*éD¹Y“/¾Ã¢lª‡ž¯¾ÄMºp3l#¼Ym¼ãhÔ}?kų:\Õß,ñúz:È•ü’á0‡±z·*±ÎVI:îC#x'# ãqÂ7—Ä< /.o#cVdÂè²lWäñ<Õ×IÕâ.þæàâ‘ýª%˜Á漯PAz8HáédòN~CÑ*áK7§Ú:a}í/‹GUŸÏÃ;ñ-6ë‹ BBÏð<‹!î‰Æ—ÍTÌÌœõÙ^4,ßp1—hÛ/(d,©çÉÄtÆYñ¬þj¬|Ëᾯàx–3ó±l‘SªßÁ»ª§JsëïKx™õ¸ª¹òµ¤çrDúkÕÓª÷€wM¶ù®Ÿä¬'ò+R Ê LÞ1‘Xx‡¿Ÿí‡]GñMÑ¿zÊî¢÷Bv1䨡àVþ] í]‚e*P!ïšÃÊáƒweê‚5T¼«Î¿;3yø ~ª†F.µVð¼k­ñcà­S¼ïZgôpkïÀ»Ö?Þ:À;ð®uF·Vð¼k­ñcà­S¼ïZgôpkïÀ»Ö?Þ:À»Êx7sfrß¿k݌€ë¬xÞÕÙ>Ñ7(P¦àxW¦=¡.(PgÀ;ð®Îö‰¾A2ï¼¼›Ÿ¿Jû•+W.]º|òäéÙÙÇŽÍ~þù±ÉÉýï¿ÿáøøÄsÏ?777·rõ¨þYë Cïðü®LSE]P gÀ;/ï®]ûòo/^¾lÙ?®XÁû³££ßzkzú3ð®g£CP`@ €wI¼ùÑ~ûò˛Զyóæ;v€w²S4 ÊP¼C<[†¡(ÐÀ;ijM°Sô ”¡x‡x¶ ;BP  €wM‹gÅÒ§árŸÆR¨bYl½Ô,›a¼èŒZ$ÔMÑUk˪%k•9Û‹tézú¶þ´Z‹¬ê•o›0e-SP ½Xº­”õuSLÎg*–]ÉU’¬µ˜ì)ÐÅuòðŽ–3®`Õ×/Z&ׯ¨ïûÙéiµT±\÷¯¸æ€›gl4ZâX—rRâi¡ì<¡ šË3g-èÞ…-æÎZ`ç®{2¦¬·sxÖòä¼y—›c`ɦⱫðío5m dõÑà¯r­×Ʀú¸¬ÅwRx7hZ¼[ùä“ô”-jÛ¶mÛÄÄD­ÞÏÚ+Lû0à®Bíæâ²/u‡Â©Ó7YYƒ°Êþ­E Þ¥OëryDZAàéNjSµø+4»«Ñ®Y7xG7ïÒg²!¼kÀ÷{ðPÀc3.ËtJäú¹~chñqLaÝü½̺Ïvs>_¢IûŸ!©#×Ö à`ÊNp£-Õ'ufñè(×/C«ž&~7£î!¯wck®"\ ȸ nÒªÁº«YO8’•ä #ãI2 ‹öUˆÑX]Vw{9bÞ±sçõãøoˆ|¬GÕ1p%2ƒL¤Ú謬“3G*úΖå]¦ÖSözŒUý}…2/ëŽk˜hBÏZ"1éIœ…MËpu?ªv»\Ì%ùªahoè#rŽ Kô b܇rÈGG]{=0«—¢.ïÔ8âÁ¥Ó'‰wŽŒ¡E¥.u®Gªç5¿ýp¬=©ŽZJ2ïlÑ ÞQÅ^"hÌ1¤X´q~¦5ï8ƒUJç*ÂeuÍòXŸ­y%ónŠ~ ªÒ߃2ý0¿±8y¬û¡8/ –Qªßþx%Ãöîñïì<« -œ>Ì¢¹’èÉ&2{–õ9‡Ï¿‹žúú¤‹õLpµ´{ï—1-Ô¦Ô¥—èl 1MCÍ£r¶gù}#ÊÅóâI¢Jf°JI玲ÑYYÐ{¼s.g¦1€Ûš)òöOzODlL_Ö<&˜‘'®V·åLZOž( ¬‹|ƒ„¾ñü5ækïšâÛyâS¯tãßiõ²lȺ”föLSñß²Åí͵”¤"‰6•ýü®Þé'ƒ Aoì¬ù˜YWI½úwâƒ?¨ðÞÎÙlSñ¹z‰NcÁ¤Ì…`'ûGNΨt‚]©IŒÎv‰ ÚyŒ(\À&Ñι´^´Yî¼ûùXVß\Å“|DqÓI¸û$‡(–[ï6áZaBï8ußÏZñ¬W9 M Eu+ù%Ãacõn9ŒÖÙ*IÇ}hïdD¡ýËæÜÅé}ª‹GF¢—&.Å<ÁÄäÍýºa˜fg“MÒï+â¼T_UÃìA!»hžxV|qÓü‚‘º*ý¬{ ÐÕÚk<"ÑÖд4ë‘ý>Ì7ŠñÎz çÉ3qV<«N¾åpßWp<Ë™ùX¶È)Õïà]‰³Ue)à#dÃùú*P!G¤¿V=­zxW_3HÏcàô–¡@ï˜H¬¼«öýl—u8 xŸ@§!Q¼Ó À¿›Æ0 @’ò® 1¬>x‡i†\ðþÝ›8†´àx‡éÚ¢xÞµÅÖ1N(Þw˜P - €wà][lã„àx‡YÚ¢xÞµÅÖ1N(Þw˜P - €wà][lã„àx‡YÚ¢xÞµÅÖ1N(Þw˜P - €wà][lã„àx‡YÚ¢xWïÎN͜ڳ÷•«GÛbS'¨«àxWWÛD¿ @Ù €w•ñî³³S´Ã¿+ÛdQ(¬xÞ6„ S¼k&³â%fÔb«zIPµx§XBU/[¯ÁårJɵk¬Õf£…]¥YÕâ¬N=ýž]/;_ByÐ]Öºª;Ô(eÅ]×,uJlƒ±òÖrpÛ3¯R¡åã<¼£egyÓëÏ–¸E-+{ýŠ ãÙéQZzZÏ­±ÑÑéÐ ,)6pu4=Í9â<ájÚÆìÔ¥â3î¬N[†½†õ¹­—@“ì*ä¬.0óHÍ¡¤ï±šrЧ¬·³KÌxÕòœåCK³ÍÒ][Õ²ÍZö;cñ_s äî–Á;^åZ¯MõqYÈKáÝ QØÞ,ñøl¦d) dâP™å1™ƒPßu5&É}·âœ^\¦·žÛ0»Î8pÞ Ôµ3ä*—wß„·Æ$3Ès´YªZüšÝNo4q dôÇàA¶tÀY ïòHj22>Ÿ £Qy§CYQXœ˜n¡-G ›V¹â˜Â™Ì6IE’[/6ö8¸Š&ÑyåSª¨DÃ|,pTLgΞDÿÏ ÁDT%žÄÒY­2©²úæ$C´ž’¡£w†|¹ug]9¬¡ž¤†Ö" Éé\d*™7$—wQœ‡/ñC•„)ea1ïØ¹óúq|Š7 D>Ö‰£ê˜¸™A&RmtVÖÉ™#É|gËò.Sëiˆ—äŸwa÷A‰JÈX<pNEÁ"¾ #oèo„¹ysn¾†­º­g™a®óº Ñ¿éNÆsCg<—h- bŸWº$qQª¿u.Ÿ å$Lh?—y2¹¼“OVù:ãqW ‡äŠfõP›Šµ÷†ã¿ Ŷ'¯¿7DÉ¡Á»¤vs )mœŸ©ÇDãcÍ;Î`•ÒÅù€ŠpY]³<Ög«G^#x']8;œôD ñ¤S¶;_º¸ãÍŒÆq<óãæ¼µŠZuÄÍ—Ã"=YB¾±Å)†¹¾IÒ¶gI0Õ¹´å—¸”ã*G8½uuG03>ôæÐå]~¹4¬¥u)«3ÔðèŠföO˜@—þ]\5œÄ)C™o²ý;Ëï#ÓcÏ‹'™.3X¥¤s¸f…Þ³àöÔä×óß²:y#µÃNuc—6ääñqœßgá–)ëéì¶žÇ&ͳÔjÚX33gEŠWxË-Æ;ë5‚~œ'L~è–3žÕÏ]ä[÷}dzœ™e‹œRýÞ,ÞU1O†¿ÎþøW>DZâGvÃéÊa…‘þZõ´ê} à]9&UßZÊxœX`tžx±@-(R†½c"±†ÆòîÊ•+/^:{öÜÜÜ™S§Núé¡ÉÉýãã{wîü䣿|¼eëŸÇÇ'ž{þ¹¹¹9ú‘'ýƒÖAgßggiÇï”a¥½×ÁñQÒ“»Þëwkð>C¨¢!ÔÙ…àV€ý»ùùy†ÝéÓs'Ožþâ‹“““ûp;w}²mÛŽ?ð—Í[þÞuaaÈ ê£@…¼kB +‡O¼Û°aÃììì¥K—Ο¿pöìÙ3gÎ’‹73óÙ¡C‡š>pààþý¦¦öüñÎW_}þ]}Ì=¹ï¤·mÛ6BŪé;Áî½÷ÞïrY2Aú(ÞIÞ?~üäÉ“çλ ¶‹/Ò'úWoä^¾|¼«£'P —àx—ËP àx7fŒ!@\ €wà].CA&(0 €wàݘ1†r)Þw¹ ™ À(ÞwC`ÆÈ¥xÞå2d‚C xÞ cP —àx—ËP àx7fŒ!@\ €wà].CA&(0 €wàݘ1†r)Þw¹ ™ À(ÞwC`ÆÈ¥xÞå2d‚C xÞ cP —à]3yg¬y/ £VýÓk‹ªjÄҧΪ¡bµm£œ±\j¸Ø›™Óš'%—561“³¬ôàa]µ@Q–²R®k–:Å·:¥µŒ›\ïÈ»ÎR¡eß<¼ r 7½þl‰+QÔxÑ2Z¿¢)¿o<=:²x±^mkl”(VÜ1—›V¦>=Í9˜Má’ÜNJ¸Æq ^î”Ñ)n©”zÇ‚ZNçEšôЗ\E­.衵¢¹^~o=‹©6Pd,©çÉD~è–3žÕÖ&ßr¸ï+øgvßWpJõ{³x×3{𠤆~ƒï^;zP!G¤¿V=­zHé¼;·ïóse?¿k‡Uã(ÝPpGY÷1õމÄÀ;ð®îæ_yÿd¤ÖËWv+ïhKï´ðïZbóf{¨wMˆaåðÁ»öNŒ¼% €wðïZbê&ø¼ï0  @[ïÀ»¶Ø:Æ À»ªx·ÿós´ãû(˜cP > €wà]}¬=Õ*ÞwÕZj‡õQ¼ïêcè ¨Vð¼«ÖÂP;¨àxWkDO @µ €wà]µ†Ú¡@}ïÀ»úX#zªU¼蝹0Ôê£xÞÕÇÑ(P­àxW­…¡v(PÀ;ð®>Öˆž@jïÀ»j- µCú(Þwõ±Fô T«xÞUka¨ ÔGð®™¼3V»Š…ëŸò"¡ö*¨bT§”X5^ZF'Êe@ºÝÖCó‚õ¸xì•,[ Œ•mãËï.±žÙz)k了¡S|KY#W:ò^‚Bæá]´t0]è V}­ñ¢e%¯_QåïßMÒÒÓ1ËFib…˜À’Œ•¢C[™žæŒ¡ÐÚÆìRžhÒ-z2…4Ò" OÑl][eIñ`ì½¹5ËIà4çz³fŠ¢”×õp¦ŸágkE;ùü6AæèòðŽGN¢òMÆ2C]aÞnHRùyç 'q ä¡^¶gù}Þ°‹çÅ“L—¬RÒ¹£ltVôžï”í gXÝYý³8Š5COl™ [žE7oŠŠg‰@R`ƒP Çrl•ó.Gì,_|ñÍöÙÙY~ˆØÎD!H lP äQà„¹Ñ—Š)h=wî¿%˜ÐÇÊyw2÷¦{KÝzþùçÃï:¼£×Äz§/̈́ߛ1‡ã#vúSú~Ðùó^|ñÅüO ´MúÚ°»U‘Žÿˆ‚߯ö‰w§Í. 'ðWþè_+}¤Ž¾ð óóÑ_íê?û¨ú€d¡Fi÷Tݺ®ŸH77Gíܯýk’€y ˜°GÿþÂ… úÏÂÌ;†ý,ý›Ä;"rèé\ ™ßŸ0÷·‹üèGÖÁÊ'Ÿ¤”þôZ!ØP+ĺ/Nœï0¡@W 0ïè—ìÈ‘bä Þ¿cØÝvÛm÷Þ{ïúõëSxG.!;˜ÿ§N÷g'uþqÅŠM›6Y[¶l¡”þôZ9qâäììäö¿ëÊÜ‘¹å hÞÑÙÑï;ÉŸ±XÿôÓƒ{÷îëÏ~ôèqæu@¼£”þôZÙ³gr×®Ohàà]WæŽÌ-W€yG¿ÉN_äÒ¿Ü9`ÞÑc)FÞªU«è§“Sxwòä)rî&'÷òÉDöÏ>;òìèèæÍ›­ƒmÛ¶QJú@­ìÜ5¾}ûÎýû?ïZ>1ü®`ÞÑ–º<¿ãï£0òÆÆÆRxG±>ýôÐøøÞ;v÷g?|ø3z5±cÇë`bb‚RúÓj…`÷á‡Û(ªïº2wdn¹Ì; ëõ~6ç÷%gç£>¦ÉߟØzàÀ4íÞƒþôZùóŸÿ²uë{'§À»–O` ¿+êûý;÷;w2…Iß7&—êý÷?ܲåOÿ±ùýíÿñþ{ïm}÷Ý-{Á»®Ì™[®@øWIñ6˜ïßé?ïÈ<ÐBýýï¿cÇNzr¿{÷zxßÂý/ÙþÊ+¯Ø ( €üò]ÿÞϺеRÜÔÑññqú¶Êÿnñö»ßýîwÞéÛ±¡!(Ð8ä‚;Þcý;Æüsžýø½€¶ý séãMýq ´Vs­À/µv÷ûw”;€P ¹ $ýŠTÇú}ãnm ù¡€MQ¼ÛÞ”K…~B(Уàx @[ïÚr¥{¼1¢8þ?ÇòiAࢿœIEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/ecu_context_menu.png0000664000175000017500000002223413001357026022307 0ustar potyrapotyra‰PNG  IHDRÂû×·sRGB®ÎégAMA± üa pHYsÃÃÇo¨d$1IDATx^íAnä8Ò…}¡|Y°â…áÅ¢¾D¯j1g¨e/æ®ÔbÖýK¤HÉ DQ!¥|F¡Ñ••’¨ÇOÌ4_ÄÓÿðŽ)ðõõõtì 8 ü/`ôß?Hýùõë×ß?þóÏ?R'Äy†UÀ>CÀHìáv¦O0@ #O}Ð/qr`ŒF"^"`œ:HŒ~{ ?oßüDþñùì^~ÿÏü™qzçoŸßý’¿¾^Ÿž^/(ÅU<Õ©rßõäZQ8 ßß'„Rßß?g¼ê0šŽ}~y{Îι|yŒN¸ƒ`4Ç!–Já‡!ÿùøíùãû_îqF‚ÑŠ^¾˜o>k¢Ñ„ ‰CsL²©0„·)G>¼‡Ìhb^ú¢Ü7®wÍY›÷¥üÚÈГæµ£p¬ãiYT-ámŠROËk^“Ù˜G^<ýIÝœƒ¼A £xs Ñ\6ÃaÚ—ŽEöE„" ÆÀèÏÒÚˆ» Or_ô¡Ï„¸<¼£Ó#î ýøï·— ì“Úù“¼[ñ0Ÿê§£èz(àÈæ¯Ò‹64úŠïvc§…QøÞ(|¼rë_³ö‹åüˤèë¢äÓYÈk†Ët5ͼ˜ÓŒ®ÑîQÞ`zï[P‰FÀèn £»Í¨JØFÀH@`$ ¢Jê¢À (ŒD*0¨ #€‘€ˆ*`¨‹#`$ 0q¨À 2`ŒF"ª€¡.ª‚‘ 3¤t* Ùi9L€Ž°ZI9CÖ7uäÿŠM ÂÙ 8FÍÎ`t {3æµïÅæ0bìöm$½‘CÌÊÞYT¿FRκ6²Û´+wÊI´0’r†dш·`Ÿµ$4yð£CΌȰû¬Ï¥Çó4F­ÎÔä¿+©21È´0’q†Ø•ÿY\"köãXš~æ%60º6Fb£Wÿ„‚(~oŒî¦€JR»›ˆˆIÀL (ŒDD4FÀH@`$ "¢0F #€0P ˆˆhŒ€‘€ÀH@DD#ŒÎr†ªô[P°™ÿÄF £3œ!†Î} h@˜ [ƒ`$ä )ZÖ£ÕQ˜ÆÀHÌBp å‘ýV£Êì"éG%~„•“F‚Κ=F$À|{1k&nWúOqÐZþm+ …ÑIÎÒ͈l®¶ÌÒ"îénÚ¥­[8v¶ºŽ"c`$å ñÉ‘ï.âúe1Gh¾c[rm?‘¼J÷8F"Î`t´[ýãÏÿ4©•þÉ&µä_жZá É¥»Jä‰3—I[Ä.Âüë#‡™Ê{WÁh›îÊÑãmƒ(ŒÀ´€ÀH@ÄAB‚â0€0P ˆ¨¹40F # ŠÃFÀH@`$ ¢bäÒÀ (ŒD$$(#€‘€ˆŠa`K«`t–3äí[Âľž!óïù£}j+eE¶o‹œd}›y§‡D £3œ!¹d{z†Ìµ_ÞžéÀ€Q-…ƒ`$ä Iw|îÀè?¿MÛÜì]¦F×ÂHÌbn»¥gÙĽVÝ˺֫dÚ,Ò+3˜Ê“L{yã§k*ÔlÇV4½Ìï·?Y~¯¢m±¥!ñ©Úz†„ާÈh[ÕÈÞyšmrd˜¬`”Z&tÜrmZº8ʦòæ6šÒÂè$gˆyR÷7{ ¹lú7s{’ZP—)çSƈw­8Ÿ]в:ñæðUúY1i Œ¤œ!6àïÆ(úäh&'qHVD#1ŒR_Jºh[1½˜¥áü©™ tIñi>½ÏÂÙrö³.›GVâŠ1¥ò¦sæžÉ ŒHþ2k—•®\ëI- 'ËGH׊ée9³ ®ù]K}ÅF5­ht†3ÄM@mÏE‹‰Î$¸¼¶žÔ²[)‰<$Ì`(F+'ñ_b™…3ýB‹æ>jzq×*GÓ[atV†n^!ö8p­LÅåQˆFÔmÿ¿Ç,Ö™ˆÏ ÍÎç]EëÌ iݪÆuÃ9.Ñ\>ð°2£{Îkçg#€‘€ˆý/Œ€‘€ÀH@ÄÃCç!#`$ 0±ó£?àå€0P ˆ8`xè<$`ŒPÁè,gHŸž!{ $v†È¯D¢)ó×9ê”.§…ÑÎCçÙ=CöH–}Óù>ªêéßµµc×›%!#!gÈù=CvHJ÷U?…»ÈØõæú1l¿s ŒÄœ!g÷ Ùi YÁšl=s±Ê@ð1ï~\ƒ Z“9ñ„Ì7»äñyçË¿üœ9$wu‰ha$è éØ3d¯$ÚNŸé¢dIÊó>Ƭcï ™Þ6-{s_—ˆF'9CÎí²Û@RŠFìþÿ¨q ·—ñ$Ý HRëë#)gˆŸžûĺ³bcu•ìÜÜ4ÖFíeýL"+Dº6êæ£+ô i1”î+Ij+ù‹’ÁzB IÍmŽíäÛ‹åêÑ©´0:ÃrnÏ&‰Ñš&#ÿ½c#IˆYn§ÜÏäß~‰=GsæðæÔ%r@;ŒÎ½¥¶ç GQi€‘€ˆGžã{ Œ€‘€ÀH@Ä{D”#wŒ€‘€ÀH@Ä#Ïñ=ŽFÀH@`$ â="Ê‘»FÀH@`$ â‘çøÇ#`$ @ŒþÂÏ­èô«Ùðsk:atô»XQ GRÃÜ^`$°À¼=%›7Œ€‘€ÀH@Ä͇õöoFÀH@`$ âíƒÍæ #`$ €&F\G¢Ê[r^œÐ¯ò@÷¶æIÓˆÕñ³UÔJ5l†“ƒoÐÈ©ðRBÛ|´UÕÆø‘P—–_¿~ýýóçôk–t®ÂË•0Ú?0êQ¹ÂË·¹Ó¥«Ì2eæƒ}qiæêͲi)–ÅBºÔÎ"%Þh²ØÕZ®“ ÎŽŸí–\xQHäƒÉHêp¥¤V¬ðâz9†µ‹™þÐfÕ·Nþ‡û)¶QgÝÍõ5bIåñ[M †š®Åõxèwê`´Uáe–Œiô̼H×Ú|µ Úæ\›âÙŽâa"ùñGÕŒÈÀ˜Þ·C3Ñ¢T0ŠJˆšiÎKjä _'éË]`ó‚2áß‹F-ÆŒ¾¾ž,P $–).±×*¼¸*tavI5–èÅ­¤æ¯åG¿¢u¨\«dæü$nù\¹:þº¤–WÁýÙ}á¥Ö+¼¼½Îý¿§ºÚe_üL—Ø!H˜cÝŠûùåí9/ò’&#¹/A'àòø—jFæóÁûüÉ`!û"0ª&}ý?ÃëC²`àW?•B4*ß30ºêÒ]uæÔ#ÀPaF¯ª0ºêÌ!aæî¦¢ÑÝfT%J#`$ 0Q% uQ`ŒF"TŒ€‘€=0ºuUÜÜ_SüëÑ­«²àææ½ö=0RÉÖ¸hO€‘ÀÊ ç„y-`ŒF"Ž!zŽ #€‘€ˆ=Ÿû1¯Œ€‘€ÀH@Ä1#DÏQ©`Ù‘ˆX‚¼ÛÚø­MgþS2s÷þbÓ®¶¯ôÔúÆ×ÒÂ(nvîê1¤¾¿Î^³ ŒL'òìÀ1æÚEY¦ÁÈ»ª“éßĨt 0ê @¸Äå|>‹e x`(“p??^¬+÷ùã(Óéá¾Â-|“”¹é:g²DälZÙ©tE ¢" tJ¶¢ÑÚÔ™jÄ<ÍŬ!Úןxâ^ Öi\^øIíöÑhGR™ºŒ {Àh4ŒBÅ™$;øš2æuf. k#ŒâjIÀhõïVRË>©ÍY†ùÀ5Þse¦øÊ¯üI µ¼~R^Óƒ~0$ÕpùÔÖÖZ…”ᖺѢ˜|ýSñùÌ¿üøÒfῦQB ÷zN»œš¿}X~ì÷ KmÉå_z•­‚ÑC+.òÉh´“#0- 0q´ØÐ<À (ŒDìÿôvE`ŒF"Žú#€‘€ˆýŸþÑ®Œ€‘€ÀH@ÄÑbCÿñ#`$ 0±ÿÓ?ÚU0t†D§Š7 d{Q`9M-Œ¤œ!ÉÞE·ö4½šÂÀý÷I‚Q³3$ž¡•þš`£ê—aÕ<¶¶ô§F¶¼ýcÚÇ8ôYó›-ɵՖÅf0ðpHhE#!gÈ&FÓÛhw"»’£Ÿ3´0Š×FÍ>5£¸y¨‰4ñÒ{m¯>×'yu×6Ýk;=ê!£vgHim½nÚ™›³ÖÙxÙ^mòç:b_Ü:ájé£1 i½ÊEÁhiÈš[ñ·œ!é'µhqjHüp-Ï7“<$-œia$å ¡ßqµGŒý(Øs9ƒ‡ Qö’†¦ ¨‚QãXljáI¢0Ó #œ€0P ˆˆhŒ€‘€ÀH@DD#`ŒF""#`$ 0Ñ#z`„®¾÷V Ó¯fÑÕ÷Þ tÂK‡Û+Ð#©Ý^DÜ 0X`#`ŒF""#`$ 0Ñ#T0*¦¸Ÿ80k0dÍXk¬`ñå„Zõ)>TÀhî ùòöÌöÔÎáNÂ÷IÞ,\1ʬ‹gáGÄÈ:hÖ‡œØüêfä5—ÑFû+ÔT¦!†èÉä:7D33÷m1³úBKÿ2[qaI7k•bž?Þçó ¶9ÊuŒŒúÔ®'µƒ…+òâ8wãI+Å…ifn&ó¼ý¯[ŽØ{súHP SÎv^ ͘ \Y·¥uí@Z¹62ÃÛÛ`9-Žs7†´~5Ë­6¢^ŸÑ\±˜¥\1Ûsu?øfŽæ²™3Øæ¸U±6Ú[F')޳?®‹/eÄO¨Ö{ÍÒ¹t ‘0y>Š4`}ì"%"ö$µ¦2:¡80ÚEqõÚÈÆ€4©-K"Oϲl¢i®T…¨œÔüIH#⸠QE4šŽmj°/êo•Ú´¢-LóŸÏKA´ù‘uKì·×¹¶i‡íªá³:‹QÈ}ù{Ê¡òš!ÉåµÊµQR¸-ë“lUÚ<™)Žs+†´ÖF›"¿6Üñæn ¨D#`´©ÀÅÞŒ.6aÝÌ® ‰¦öb £‹MØ® ÑíÍÀ (ŒDìöÐ{!`ŒF"$º #€‘€ˆÝúa/Œ€‘€ÀH@ÄaƒD·)bÄý2œÙ‹³ò»wa`iÆN #ÞYÁbÑ #ØEì§SÁ¨ä¬ÐÄv‘æP¤´ßh¥?u©{p¼Kš·ˆ¤N’ÌN÷ …]ä@²ðiD£5gÛ=xÓAfvX'N’ÔA¶Â}{Iö@³ì"-+N%Œ#Q<â8Je݃#ÜNU†°å@¦Yqع·Ãö-Dé¶Zê©Ø ýØv ŒJΊJŒ6,"ÑÂk­Yqä‹%„Íÿ›tœ­Àè±í"*•œsnZzV²Oj¼EÄm¶Ï¢‚ócÌ'Os™% v‘K®ì iûÅÆJ_Ì»{žx‹Hê$ÉýôŠ‹Ëq ì"G>£é-±³ŸÝ6œ$-ëâãôø3(%5a’€0@ #Œ”EÌ=Õ=’0RV)OÀEÃO2l`ŒF"Þ#¢¹ `ŒF"yŽïq,0F #ïQŽÜEŒîݰw×i÷ã½öâî:at$ZâØK(Ð#©]B òˆÀKl€‘€ˆGžã{ Œ€‘€ÀH@Ä{D”#wŒ€‘€ÀH@Ä#Ïñ=ŽUÁ(êFE¼ciµÄƒÈ¸ÌX—RÕ®ÜãÛ·½ÏÉ´dÿX““·OU ì’XkaDmhqÓÏ´§gy¾ãÆ_¯y;%ìŽcT:³ç€¸7ï ¢O-žBÆ KŸÈÒ|×W·QĨOƒoý¦& <{滪ºmõç~ˆS–QLYœ`äå ÇÆð“‹w¸.é/¸Œd1˜ß(D]#·æ°õ\wâ¼M%I_«d¥2ňmžånRžànQjŒJŒÊë4¹¥‹î¥ÕzFl=“ÈY™Šh)F®ËKÑOFRŸÀ¨qm”ÀA1JÖÚÀèt^Õ1¢gêæÛ-)L.óÄDù%þj ò´IRó%Ž*“ÚJ Sóš;§Ï®T°Ù<F~ÝKW ì÷I«ŸÌCõ™B3a³¬^jE¦KlÚ6ùY©ɨÜ%²%6ýÞˆ’Ít…“ße•­‚Ñ5ŸÂ•φw¡a3ê”ÞŒj™žCÚ|ÝF0ZLj´`Ëž>|Rü»6´=8ª¿ˆF`Z@`$ bÿ§´+#`$ 0q´ØÐ<À (ŒDìÿôvE`ŒF"Žú#T0b“ŸîP -ÝoâSgHÞ\fϯ&v6(>¾_QÄD°é#`¢!˜iatØBßþýýó+_yæŽ7(ÞƒlÙ Ò0ëR86\ºxˆ:Fv#NÒ· ZÚmF‡7ÌÔôK§áFƨÍbö2-c— ¸â ™´p eù­ÖùäFraƒÛ•›.Ú¶n*ôdîŽ Zêµ:C¾½.nÿ9µ¹hŸ¬–8Œd±‘ФÆ-ïž_Þž©ãeã¦\OæGLjÇ!äË'oùÈšçž±Åûl$öûž/Н‡a|ÔÄ’ÞY…Ïš MaI%)ßsÃr÷!f#F§0ýh6`$ˆÑãÚH€‘ F{*`ô¸s¿{ÁWþN#€‘€ˆ‚õEOŒ€‘€ÀH@Ä‹†Áa#`$ 0Qð±¾è©€0P ˆxÑ"8lŒ„œ!QµÆ½¥ÐJcà¨ÚÝúc}»´Èfj‘“Ø}ÇM/:¿áO nª÷ 1HEF)LtGTeèò7XÚ7w|æd¦ÿ6µ:CÂîÍ©­˜Ëµ} ŒäöbþúõëïŸ?§6õYN&f„ž!Ä•¹5Bî³»žƒ s‰^Id¥í¸u¥ŽJú>“ͧqí Zk#Õ[1’ìÂ!qbDoò+á-¾¾«] Ý’ëTµ#ßå39>ÁH½gq®ÑýþsȉQŽï|Ì­‰rIµÏäò5:C’ÝýuËJá2l|¸?jýðð¯Þà¶’ÔJŸƒ²%†QÚ˜p¯Ï¤ù+õhD?U¦€%ŒËõ IÆPvbDNVÈ¢jTIˆª¼#2€è¡ªiWB“š€Ï¤$-ŒŽ;CŒ|2=Câß%'Æö}ŸÉ"Ëͼ¾¸ï`=ç´+±qNÔgrÁ¤vèCAÛãrí£†÷™¨D#`´Oñ}&ÀhߌvŒjWò™£a1ºÒÀ€Ñ•f«c,Ü' 0Ú§×°©;0`ŒF"êF‚®Œ€‘€ÀH@Äâî€0P ˆ¨ F¸:0F ¨`Äýv:Û]zZÏÒÕ95á ©ûÍ¿FŠ=CJ¾”#xBj•:F­Îöž!…}ÌcOÈ…0jlö0‡Š¦ž!%_ ­óµ'ds?@4jÄ(ìEÜÙ3¤ÂÞOHÝ’Èã5Fû!þ>w÷ É12Wßl9OÈ`µK«“Ê ðiÂÞß3„l¾†'dgàaœz4ju†4÷ ‰|gð„Ô.¢×—GZw†pÖæŠž!±§ž c$3ôÍwxÃðž+²J4Fµ Œï FµsÙ=ª]ÉŒ†ÅèzCR»ÞœuŽÛ£mœ¶Ñ†Œ€‘€ÀH@ÄÑbCÿñ#`$ 0±ÿÓ?Ú0P ˆ8Zlè?žý…Ÿ[+ÐéwjS…uüÜXNõ±¸bgz$µÎ·„ËõWa‰- 0±ÿÓ?Ú0P ˆ8Zlè?`ŒF"öúG»¢FÁšön’ˆìev­ûvœÖ£™]Ç›Â>¦QÓÌ÷÷Ïo“Ð µ; Óã½ØÖ ºœ¿~.ŠÑÔŸü¶ïÔÀˆ©)#…énÖè)–Ém‰aãºF¦©)“ù_™þ½óì¾½þöôd’`ÔU˜LØŠ9°pÎÏ©—ÞücÆFâþê’š;üùã]¤qýŽ$Ûø¾Mîc™ŠœÅÙ¡°6F'gF Œøš2QQQ’ÔØ\“•ëó2™ë.WúOjIR[Ï_t$¾~×J÷஫1UÑv»viò稵oH[ùŒ†lè/gúÒ¬ç“ÑÆ9é2ˆ»¨û¢ Kìq>©]ùñ½H¥˜ÎAK%]£«TŠFBv½J1Àh@Œ0¤ Ô€ˆ€ÀH@ÄÎdÀË#`$ 0qÀðÐyHÀ (ŒDìüèx9`ŒF": #T0"»f馎“÷Ädh4Œ´QäéƒÙsuáÎÉÜ$bjaä6c„Ý« ÷ÖØÍIа±áÒ}%Û,Ÿ–í¼|Ë[²ƒªŠovßKƒÂµ‡hctÈZtŒhßæ|æØ}4Œ¨Ù(õ{„ß«“Ív³ZÔR˜<Ç5&?Oéô,[ç¦Ó»ÍtÞz`vTÖœœ:X⽩­*¹:ys¤CbVqûû ¹ÍãËÙ ¸*’ÕF š×´¢‘kË&,ó{Lº‡·cWµ¶‡ä&Š‘ïH³†É<µñš)ÍD«c8!Û;ÃÖÞy:Ke:ð{}»æCE£Ø>;¹DÂϤ¾y(Ã,n¶^µâæç(F#c3²?¾‰qâ ßåuëœÜoÖ¿AЊFË{r†, 6§_˜ ̶ÖF¼!¤€Qxó„¤0š­/Ó †Û i%|×ÎɷÈÄö9±ŸºÝäoØÂ(MjåÐb6`室–»MÌlÍÌ—7Ëe´4)äÇÔRœfsvKºœ£iÒŠ¾ayÞ™r4š”ãM˜?²fÊ«ŽTu$Þ4™”’š[ÑG³V©vªö9X¼é%ZäÙõobÃMo“¢À Ò õúâŒááhÀ÷Zb·ðÞùÛ}ÁËek²Þ¾J4º¡ŽEìŠen%0:o:mzˆºÀè<ŒèÌÀè&[pÁ7¯f1swSÑèn3z^ÈY930F #UÀPFÀH@`$ âPAe0À (У[÷ëÅÍý5Å¿ݸ[/nmR F*Ùí©@hÔó~p-€‘ÀSe憺(0F #‡ *ƒFÀH@`$ ¢Jê¢À ( „‘@ËbƼlº4¯Yþ'¸ÏvªÖ|àinž¡âŒF±çÚ´,nø“ù­}‚§j¸µë¢Ó²¸A8`Ô ÚY‡h`Äø‹ó.Ć’¨Ÿ°‘`­up\F#=6©âà ÜXeiâgÝ®ì¾Iaœ-ñõ¬9n öû£‚Q˜6¦eq(:ãê Eý„Wº,RŒØcûìÛ7U6½úiGâó7Ì¥}÷ÍA‡i>ûZ…Ð⪅ÄUi¢¢>ŽÈº’Ô’* 1=y›Z%äê¤2Ó÷På¸k“§Š‘oY\?‘k¨ã¤¶TðÈ^̯Uu`THÖñ-‹×ëšÕ´®ÃˆY™µ%µš¾Çì®xØü¨ײدçÜ–,li²(¶ö[¦ïV“Y§»kMóºR€†]b³½”sh€ÑáÏ¿~ýúûçO»;n€?ÓŒ&e²FÕMÆ 4´“ù²JcäC<„7þ-Í¢@ŒVÔŒ®ð4kM¿Ôuò”€ÀH@D©gúºçFÀH@`$ âu£ˆÔÈ0P ˆ(õL_÷<À (ŒD¼n‘90F èaD·•ì¥/ +%»;ý6 :ma‹z/¥ ·N{}ó‰F±p_¯¥ß½sZcɼ÷ƒÙ¤{ÆïFbn¡×L’ U0Š›°®Í+‡QíïêÙ]G[¡ ²hÿä#îHÑÀ¨ÐÈ‘?ÊM‰—-fi?’"M ÛО?þ=ﺷ?¯¿“PïG3Ûò³®Åó{Þ^§“&^FÍ„)‘äÁð‘)}3=UÒùòæ%ŒÜbÈöÍzzψˆä¬¼5q!ùižl!ÏK‹Ò¬‰gd2qÈ’.–’@’?³ÕŸx]–S»1“DòþÌ'JE©õbÅ’å#ó¸çmh7<Î^òõúÛç·©ƒç´éÖ5—µ­Bi×â‚Iì¾u£ZNKûÔ–ïÅŒœÔË›O40J8¼ˆfWŠFËäÍÁlé‘é[Ö;Ó¿¿-½|yßRȶ¬$ݬlÃ5‡,\V5XݘýmÆé~ëFÎYç5­U02ýeC@b3ˆÕˆ]b¿»ö¿ÞÑ‘ä‚ÏÆ|Ú9‘tööjMl×â$3òM•íNjɀ+^—ð˜÷G ,™: Õñ³BCJ¥ ìXCú rW5%ËçÅ®-~YÏFÞjؽ-úê!osœ /úÜ›|ý“¾9ZZ¹„—ŽZ7Ÿ ŠT1j_êû{œGP¤&x8Õ £±²ÃL4Œ#€‘€ˆ ïÍFÀH@`$ âÍBKÃí#`$ 0±áñ½Ù!À (ŒD¼Yhi¸`ŒF"6<¾7;D£vgÈÆ&¤=3”ž*l¢u¿‚Ÿ7r\ß¹±G“–çJ £#έ½l{$+)Hjˬ칅!ί‚Ñ1g0oFάcê ±ÏhbÀàn/%}¬“hDw'š²&åMÛ%Ýy÷@…o•0:ä É3k¨È‹¦{Pb,–zþ•¹–mf÷fØ}»ì ^s\.UÕX £CÎ #v'<óVŒQ¦XFi ²gœ~nð-iÆËAõ|T¾S££ÎVŒÖb=P.ó©`tÌÂ,±YgH–Ô¼k;r²õ²[£Û*Ѩ2¦±oÛhö â ñ«ÆPasÍòc\;[Æ0ßÍQƒ¶ë³ŒNÄèÄ=¢ÞµŽÕIj×Ò£ÝT ñ-ðæ< þ`ŒF"*: #€‘€ˆ÷Á/Œ€‘€ÀH@ÄÁCE‡á#`$ 0±Ãã>ø%€0P FáçÖ L‘²FÿàçÖ tÂhð¼ŽáW G4:>Jœap€‘Àsð9î0<`ŒF"vxÜ¿0F #†Œ€‘€*‘Þ1Ö!´mÛq«sqÓª‘ûÖ Aýò²ÂjaÄš ‰‹¹¹lÈÜíåmŽÂQŸ mÖ™5ýô‚"ÂÖ %%>²Žikí©.¤G§+Z2?Rîðç÷©ñ¨ØaÂlR@ £Ð‡Õ5ª¶³Ë–ŒÉ«½Ìœ¥Í¯-. =¤}¬±`Û–‰¦‘¿Pþâ)Oj}j¸î;µ0JÖ.9=¦Ú ¿(¦¹liC±E0 ÀQvQ£WÁ(©öRZâfÓóÿš£Xb€QSò*ÅË+`ÄT{á0òug|…I$µÆSŸd‡Å(o2ì"ÍüƒÑôuQ²Z yÍÁ‰–Øì‹¢Ïhý4\ý*þp\}V.7~Œ’õËô×Ë©†' (`„9¸ŸÀV@`$ âý¢ËÞ;FÀH@`$ âÞg÷~ïO1²ÇhPàëëë©á0¨Fÿ“ÆK|©IEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/genivi_chrome_1_transparent.png0000775000175000017500000077740613001357026024447 0ustar potyrapotyra‰PNG  IHDRºCƒ™c¼ pHYs  šœ cHRMz%€ƒùÿ€éu0ê`:˜o’_ÅFþŒIDATxÚìýw¼¥çYßûîò´Uw›=}4Ò¨­jÙ–nØÆv( Î “rœ@H8„@ŽiœL/ Lè%WŒ»%w˲­f•)šÙ3{Ï®«=í.¿?ÖX@ 'lÉ]o½ô‡¶ÖìyÖu?¯YóÝ×s_·Š1"„B!„Büm¡¥B!„B!$è !„B!„t…B!„B ºB!„B!„]!„B!„t…B!„B ºB!„B!„]!„B!„B‚®B!„B!AW!„B!„]!„B!„B‚®B!„B!AW!„B!„ +„B!„BHÐB!„B!AW!„B!„ +„B!„BHÐB!„B!$è !„B!„t…B!„BHÐB!„B!$è !„B!„t…B!„B ºB!„B!„]!„B!„»Y)BˆÏºž»µÇoß.ΪøÜñþýßòÎë>ó(µ³hkɺT– ”b8,8yÍU?ë7ýÊ ×_û3+ R=!„BüTŒQª „âs¦®f_ôö·ßñÚ?zãÛ®?sq‹¢·Ìnñdtº}FµÆt¯¢( º ÜÑ+WY:}û3Nþ‹g]Ýý]©¢B!$è !„ø¼PÎö¾õW~å×~òøXÒ_Ø39e£p¦‹‹)ÎGB2 Œ« ;–}˃®¡Ÿy¬v8¶ð]/xÚUÿNª)„BˆO“G—…B|n¸Ñ?xç¯ÿûŸ]ûÈÔs®z*ÖØN²”y‡që™ÌÆT.`&hÅÔ‚k éuèî_$[íQ§þGîߘ•ׯv~\Š*„B ºB!>7||úþäO~úìÙ³êE/z{£ˆ1+,,_ÅŽï³VÖIJ&à1>2kÐ k iš¢µ&„@Q;œÑ³ü‡©ç“]ÃÛ¥¸B!„ +„â‰H7O}ä'ßù®ßê~Ã7|KKK}ú4>tou͉ãÿI*,„B£ ¦BñÄZô¾Wÿæ/ÿ׿îªã,..RUÖ6˜´¬³ÈCçÖð1¥Á’e:BhÃáÔhœs>t€óçÏóÐC2›Íþí/üâÏýk©®B!¤£+„â ·ÿð៾õÖ[Ÿýá÷ÝñÕGŽÁ9Ѱ±±Í*>Ìî¨fcw‚sŽ^ž£”âŠãGIÓ”+Žæþิq‘ÍÍMÆãÑ[¾ù›¿ùû¥²B!„ +„âsCüsžÿ¢o½ûîOt<}îK³,c:©0Y‡ª©É²‚‡ä½>iš’j5ïìÆÀl<â}ï? *°yéUU}èÅ_øÂ¯Ñ‹¿ – !„äÑe!„ŸKÕV÷·õWòýïÿ×§IÁ¸lÀ$ì?zIÞáÆ[žÎÑ£Gy÷Û߯C=D§Óa<St2F£;[[¿õwÿîßýÇ_ý5oKŠ)„B ºB!>o¼ë_ÿÕozÓ›¾w{wt2xÅ´nHÓY§ Ïs¦ã Nk-³ÙŒ¶mìt:ÿá'êµ?ÿÄ_m8êÑÏ]ÛØ½íÌ…k·÷ªaˆE(ŠþÅý«>qèÈSÞ?€™¬¬B!AW!Ä“Y3é¾éÍüwîxïûÿîÙµ ϻϤIÏ{OžfS`S)u׉'~û–[nyý˾èÅ£'ôúÚ𬵠¾úïy÷+îüà‡/lìQG‹)Úôét$6£Óépò)G?õ¼g?íW®¹öÈϯ$zCW!„ +„âInog·»¶¶vèÑG=”¦©Ê²l­×ë­ÝxóM“'úZêºîù–úÝßùýôÆ·½#Ù­<Ƶ¦Š)Ewe»8ç ìÛ·­J žk®?qæö§ßø¯_|…úUYU!„B‚®Bñ9W–å± .üækþÍ<+·)!íâ’ÞôhuA ‹'#I’$ÁZËp`Ù·4¤èe$ºå'W~ô¦k®þ½œ UB!2uY!„øËDwŹS¼ù»¾ë»®ï8pè0]&û(2=ª£RË´®ˆ€×Ìb΄y¶Ÿ¥ûØÜýíž>“ßzýÿX +„BHÐB!žpÞU½õók¿ù?ð×/--±°´Ì`0 _:UÆ®K›,qi¯eTN)Š‚ªª€øXg×9GÛ¶h ÇŽc&ÿhkâN/÷ìÿ#B!$è !„O(£ýk^ûï^sû«C^ùÊW²¹³ÁöhÓÍн>IUPÒaÚ”$V1«¦Xï!:¬Ž$Ñ`C@{-t{={ ‰áû›È;SÅ¥ÊB!„]!„â‰ë§ýÚ/ýÒ«766ø®ïü—\Ë-|ü#ï§ØÞbd‹Ë$~ÀnÝ¡R9MÓv=ÆF‚ohÛ¥Y6ß·xïIL‚‚L+þC„)ðRl!„B‚®Bñ¸›\ºðï|Ë¥·Ýp=ƒ4Ðlœå¦§ßBá^d»ò$¡!OR–’„Ýš¾Kip­¡5–$KɲSDTAG çãäF½ÔÀ›¥ÚB!„]!„âñÕŽ¼ýíoÿâÛn»ý+K”eÉt:%m’… ³L©¬ïiôÌãB+Ãx<¦QÌ;¹Yе­5y®pÎ.裾 ºB!„]!„âñÿTŒ/¾ûCwžûì§³Ü)(lÀƺ‹ÔtQO–× W;”RôX"¤αU €É &K0ýÕƒ #€ <ß{¿lL²%EB!>û´”@!„˜on>WkM–e\¼x‘#gÏž%ºg¡¿@/QX KK–¥%C§£èt:,--±°°@§Ó¡( †Ã!ÃaA–Á`0@_º—ÒÝoŒyªT\!„x|HGW!„øtн°uü†C†ñ^V&,%½t·èÄ’ŽW`)¬a«ô„¬ÇfϱGÃ(©(“ç¨À¾å„4µ,u ÒJq‚VP'aðn©ºB!AW!„x|´¤;;;û:ÞO¸æškØÛ›2\X„$å£çèõè/.bŒ¡ß/¸4jY_ß`4m™5޲jPJ Xk)Š «ˆ}C` eP v¤èB!„]!„âñýLTM'ïw°YEP²L줙…Á¹€Õ†fÚðð}ŸâÒNEÙ@UÝ’eJG¦ìa| xdé&ŽýtrGb`sc#®¬¥êB!„]!„âq’0Î[k¯;tèÅ`@qp\Š‚$™±¾¾ÎæCç©}Ê´M8·¾C>ØOšŒ2  ÝncÕå‰Ë9ó=¿‚#„@b åÔ©S¬¬^#uB!2ŒJ!„¸lauycÚ–d½!,,C‘C®¡MÞ`mÆbo ƒ!S–Õ¥e¨+:ºFÓK £èYK#Iðø¦¥©gLÇcF»ÛÄ hªö¬T\!„x|HGW!„¸ìðÑ£w½óë¯2æ ˆÆcp-;³óTU`ZM¨ÛŒºŽ”Ç_þ-Ë’ hCY–8gñÞñ(¥èÔëKòŽgww—K›kuÓ4ŸŠ !„t…BˆÇ—é¾ÍÛ¡¿¸£Ì ž1ì˜M+άOñ±ÃÎÞˆñÌãuƤ L›€Í´´Jèôú4U…k.ÔcØ™éO’d¸rÌ÷òc7ÜpÃ))¸B!AW!„x|%ÉÇNž<ù‘;îxï3CÓòÜg?‡"ïá}ÊÅ‹4®¥v†iSÑxKÕFš™ƒ$'±9i^P–%JE´Ö´­&IRãÏ&”Õ6*´<òÈ#¿ÿ•¯ú'B!²GW!„ø4ÓóWŸ|ÞOœ¹ 9{93åÀ•·R VØžÌ8}î<7·MÆÌª’¦.©f{à§tsÅdt £\3Æ·|;£ší1ÝÛe6›°½½Í™3g.í_=øËRl!„B‚®Bñ„XN9KP–þâ iR°¹½EštPfþ TwÐg:²··­§š\¢žŽ>qÍá—üÓWÿóÓR]!„B‚®Bñ9ñ‰¼óþý¿ÿ÷?Ÿ÷¬µ.8¼ƒþÂk®>ɾÕL§“ªÄ9Ç3Ÿù,œsüñ[ßJUUdYFÛ¶ìínÞõ•Ǿü;¿ó_Ü/UB!²GW!„øŸ¸ñöþÒÿð¹µöL]×Ìf3ªªâÂ… œ;wŽÑhÄÅ‹ñÞsã7rÝu×±¾¾ÎÎÎý~ŸÍÍMvww_ÿ”§<å%r…Bˆ'Žtt…Bˆÿ…éöÅCÿý÷þðÛþäOþ䀛¥loÐÖ°ºïy·C–e¬­­al‚ÖúãNçG¿ú«¿úuÏ~ÎÓƒTQ!„ +„B|Þ¹pêáãozÓ›¾ôýúà+ëÊ_ßz·6me Ngc¼à½ÿàñ+¯úƒ¼àoyåßyéLª&„BHÐB!þF8þüÂúúúÉd’ŽÇãØívÇû÷ï_;yòd#ÕB!$è !„B!„Ÿ52ŒJ!„B!Äß*VJ „âsÄD(|ð hS»Z)‹B!$è !„ø!âTÀÞÜ4¼ôÔ£n{øÔÚu[;£aUº%¯teÙVoÐ=wâĉ_}ÍàíÞ;€‘TN!„U²GW!ÄãpCî|óÕwÝu×7ßñ¾=ë¾{ÑÛ£)Ó20™ÕyŸÊy–––ˆ*¦)Ã…‚§ÞpýÃO{Ú-¿uë'þË‘J !„B‚®BˆÏ¹ÑÖ…—={ö_÷kòŒ‹›;Œ§SFÓ²5“ªäÈñ«°i‚"¡¬YÖe<©8xà½î½^oëk¾äÿÏ‘•ÎkWúÈDc!„BHÐBñ¹ÐªK?ðÆ7¾þ_½á oÐ6?Fí!ïtÏ*œQeÑiÂsžÿB——ØÞ‘dŽ9Î?tÛ[{Ä`X\\¤pçxÎÓn|û3žyë·X0ÒÝB!„]!„O 0ÉÜîÖ/üÐýÐ×îíô÷Q¦]fÞÐz‹·ªÐaTi”îÒ_XfqyÞ{”ö <ÓrBY–$”……> ¦ÅÖSì>ôÊ—<ÿï]TwI¡…B!AW!Är[ã&[¿üs?õã_{öìY–X^:Ä–S„¤‹)S—ÒУ 9ÓYdV;ç(‡MRм_0tYJò¾÷þÃD7ÜxËq†«)ÁmA ®™0Ü¿ÊUW]M¯7 I2ƒ>ƒÅYG‘÷ +]²S_ô®w½ëŠç=÷¹9!MÑixlQ0ôXYI0•§Tfe 4c$öz4Ú`µ"ƈR ¥°k- ,¤ªªÈ“ ˜ÿ¨6M¾x½,ƒB!$è !„ø¬ØÙÞùÒdýan3 Ù½÷ÞûìcÇŽQUmÛ’¤)Ý?GŽ$/ ‹‹¾€i Z+Œ1,-´»‘¢°@AUF¬M!@l@y²\‘ç K‹}ŠÌÑëùÇöÜóØþ›ÕH¼ÔË‚!„B‚®BˆÏŒrW|êž¼õX‡zºCÞ- “±7p,év`4ƒ8!`éW0ÖPºŒ|9cÛ´LÒÈÌz*ÛàñDYnèõ\¹Î+8´²̇QáÖ\Žº*Ü Z‚®B!$è !„ø i}xkk«³|õ2m[³²²Î1I‹¢ïQJa0´–—yàüy†+KŒ[HSEæ!†ˆV–QGŒ…N7¥ÛMÙw|@á!ÆyW(5ÿ‚RWËb!„B‚®BˆÏœ ±œ°¼Ôcss‡þ`“j‚39¨j‹ÙÎ6u5aaan‚–[¯²ç[f»#f¶\Li8çPò<§ñ9Ô¶«ƒ4àÄ´À œÃ7zÑt–d=„B!AW!Äg¬ !`í¼ÛÍs²,êÇ^°³³C‘[T¯Þµ¥U-{{ŸøÄ'©ê„²e» ¼÷¨Zkü,PÕ[ ¹ë®ÜdÄuW­püà6:°–O|än{Ëí/ÕB!„]!„Ÿ¡èÉs ºb¸˜Ñ[ê’CV–ú 5°KšVìnêÙãºdm{LÚ[âüÖ? tò‚6Ô˜VŽ€Æ{ÐMÄ0ÆÐ) ª*Ê)ÄX°±7%´#:~“#Çsÿ½÷´t…B!AW!Ägìß)épÃ!„ÀÊê*ñòÞÜ……ºy—í­)ƒÁ€½²F)E–eŒ§SV.! PJá(¥Hó„<ÏIØe6›Ñí¬PU§N=Äá§]á…Cœ}äf³Ùx´Ðä$·6³ææK;»'öö¦Wnmïv¼÷Bèt:»K˃‡—––ì:³Ú~\‘ìÊ­"„BHÐBñ76§òÅ•ÑÞtw0ûò|øã·?ððC+Ÿzø4£é…¥ kr¦³š¥¥U”ÑÒ)zÜrË-gŸròÈÛ¯¾ráw–üÉðÏ>×-„B ºB!>ÏÄøèp8|doïÌ-CïÁâd‚,ÓìíbU`ccƒYRµ-“rƤ Ì|¤i5ÞGÚ¦¤n# ‹Ö¥èyg7j€ “ù½ƒy÷¸i.\`²¶É¥K—?ú¸¼=8PUÍ?zçûïùÆ7¼þÍG6w·(g ãrFãaRÎèvؼ M4I’°³³ƒ~owÞy籨úú}Kݯ¿é†§|äϾíǯ¦¿•IàB!$è !„ø<¤èäMï|ðƒwÞrìÚ ƒÊ ('¤MÃùµ‹$ù6ÖLÛ–I=cTVÌjOµ‹T• MS¬µÄ ñÓ0k¼÷´m‹µ–~t3a:Úb´±N™4çOùîËæmr !„t…B|ž9qâÄïßÿúoÛÚÜdëᇸö†›ðââ¥-¦eªaä4[#ϬnæáörÐm<4'„€RópBÀ‡ù÷n#´mKŒ‘Á`€1m ËËËœyà“<¼qŠétúæ/|ÉË÷>‹÷ÀöÖÖOüðÿðW>üðÃXkñn•n·K·Ûe\Y^^æÖg<Áò"³¦f}šÍÍM€7þпû‘|VÞHhŸÿÞw¿û·ìÇ~lu2qà 7c¤m[+‡¸éiÏà…/~ï|Ïll¿“N·ËÝwßM’q*ÅÅ”²q¨˜ã‚Æš.JÿéǬsçÀv2† íILMžð²8ý&wtÿ—[,ÎË%„BHÐBñùða²rÕ¯^}íí_·qê_è' ;Õyz½k å ÙÚ%É¢·Ìf3\íQ!!5 :͉³ŠY˜‡Á&(\Ôè$'I;XkI¦k MI³ya{—¡šqÿéGÊ+žúÜóÙ¸~_Ïž}ï½÷þþ/ü—ÿ¼ØÔ‡¬RÍ&:°ŸN§ÃÓžÿtoøÀ»ßÆù‡79~à:B }ÀÓeV+ÒÔc…J * 8WÑø)&1Œ§†žJIBBr:fî0Ãæ€v¬×»·“ø{¦Ã+glË%„B|fTŒQª „â3W®ßôËßÿïÝ¿˜õ——:ôz=6ëÃlNöˆFS zLÊÀ¹ ÛlfÔ΀2¨$#+2*ðÞƒÍH‹þýá Ýn—òÂýôôŒ^ºÍ¹áwß‹kÌ÷ü··½÷‡>ó '¸ç“ïü‘ù‘#;Û[,//“§–N§Ã±#‡é÷û¹þz.^±µ=Ç>u(ØÝƒ¤»ÝqÀ‘±;&Å´a-½„¦iȲýc°‰¢ß/XÝ¿Ì}}–WV‡`˜º¦—ø?:´ýÿ†‰iå†B!þúÌk^ó©‚BˆÏ\Ò[ïºòìï½ýƒ_1K÷qa’2 -[£E™#Ço`â*Ó¥Ò=¦m`qõ:IY^PwXêçœkN<å–_ý{ïï­þÎoýú:¸²Ê…‹{$IB§;ãܹs\Ú›âHHÓ”C‡Q×5Æ:‡fuß2ý~ŸhR²NŸïyÏ{ðÎ1iš†ÑhôÞ¯úª¯ú†/þâ/vŸ…KþîŸú©ŸzÞt:åú«¯áéO{Vi¢¶ŒF#´_C§Ó!O†¸h™¶ Î[rR¢Žã©›­5Q+œ›_–"ìül`­5ÖZ¬±M–nš†¶Õ“`´&Á`òˆ÷þ»JÂÛ ´„]!„B‚®BˆÏ·}ÁË~Ô‡àþóÏüìZY^°Y¹ïûXnÓ[ÙÇɧ>d¸D–e¼ï}ïcooz¶ ¾ek£¢žõHóŸzø{¥£ª*LÔuÍt:ýƒW¼âßøMßôM»ŸéuFÜÍ¿ñë¿úwÞñn®¹æßöíÿ„ƒ«×ðÞ÷¾— [-×<õ£‘£iStgý$ZJMSb’á׎`,ÑX‚b~œPô؈1 # 6Ó$ZalÄh«5¾V¤Æ=VgXvð£že¡”;J!„ +„âóÀ3_ðòŸÈmrúþËÏý§«CTŒöjظDÕj®ºáf®¿þz²,cmmsÕ˜N–§çQ¢¶¤½Eš¦a¶³åÇãñ¿õ«_ýš¿øÅõgãÇ“ñ÷ÿú¯ÿz±¸¸Èw|Çwpôê«9uÏ£Üzë­:tˆ{ï=Íhœ1S ”"MS ΀iSbãP8´Ö\¥‡÷žÀ|ª4DŒ1mH’„4ËÐZ_>?b„ÿabÆM‘ø ~Jî&!„â¯N†Q !„xÜìmœ]ýùŸþÙsê῾mÛîÄ)”Íi±dYFU—ä&ÁšHf¡HççΚ4¥* PUÕGŽú¾ïû¾ï{ëgíÂâìÙÿí齿þ뿪ŸýìgóµÿÛ«°ÖÒÌ ›››\uSÆÊò mkxàžKœÚëãótšáÉ(½aVô 4M`6›Q×5u9Ã× mÛÎk…ˆÖš*­ét:tõ>:Å CšìS\,ãxѸGþÈÆr' !„t…B|žùØ{ÞzÃwÜñµïÿØ=_6«ýuIg ëºÆ&†N’aM$O*¬µ`ÌöÎöø]‡¯¼ò—_þò—¿þùÏžÿl^ÏîÖ¹ÿú-ßð_·²²Ä|ÁpìŠÃ,ô²²²Âþ«‘ˆ¦oz|ø‘†RwðJÓ†„™ÓLÊÀ¤ö8ÇcA·šMqUýç‚®RŠ&oI’„®ÞG¯×{,è®,zޝfô¡--/Ï'<{?o‡èõzó½³(Tš±yé1IÒùy·5a xc€ @ôà¹vQT˜ïÙÙ|?®µc J©ù^Ý4¢uÀ{æAWý…Ë}.ÑGÙÓr÷!„t…Bˆ¿ÔææîK/>ôqn¿ývêvÆáýÇH C'Sì¬_ íräi×àd ÐqÄÊ@Ó¨ˆ1 kÁ›6,v Z× ƒ÷-jAb¥Fù@[7Ø$Á¤ 1FRmIKÞ5è´D%N'Áë”4m­@›¬||¶HÐB!$è !„Q $÷Ýwß3Ú¶e00*kf³&KFLv"Ãáý¡Åh@’$T1¢b6«¨½ÆÚ”Á `g ½^ŠŸAQ ŠB‡Hk,1F´1¤iJ7ÉÈ2‹IÁ‡Öó©ÌÎÕ`“Ç®Sý™Î®6ê…À/Ëê !„t…Bˆ¿táèÃj”J@%h­QÌ;È1FbŒ„ @ï#VÁt:¥Û‰TuEª[´ꚪªölÇ–²zB!„]!„â/ áB‘¨íÝåÐ#ë¥=vê1.Ò¸”qÓд㳌Ʒ0 „Œ–ˆŠç!W™ˆŽ‘!xp*cMˆ¢'*RŠ<‰(Ìüø |úÑ}d¹i’I6—Õh<Öqõã1³ÙŒ‹“Ø¥5 ï,­‹ŸÐKZhƒ"ñ œšÿúˆEAk´Ö8ççß×{B(Ai¬‰ãh¨ uÍl˜NSmÑnÆ¥K—¸xñâ½²pB!„]!„âò©Wø“Oî‡>þ±·Ü¶3öe褚vÚPú„6`­å£>H]× ròT³9­ñ­§õnt£†ÍƒmиæÇéùo£ðhQŒ2¸ÖA´DçñN¡TDëˆS¥!4Xå˜í–lkuF[í±½¹‹Õé»eá„B ºB!ÄÿÔƒßÜ4Í?ÃáóçÏcduÿ1&“ S•\‚ ïZ†è=^C z>ŒJ)¢wpžïÍ%Ú¶EéË^wy0t¤QÚ×tsEÕVŒFžP+F;9ÿ裣ÕÕÕ÷ʪ !„t…Bˆÿ©:é¿kåÚçžÿЙW¡æÌ™5N\w˜#W]ÉH÷Ø(5mï8ãñ5ɘL**㈱ÆÇ8?FMðϼ£´À8ƒÍ22kкÁ9‡sŽVçBp(¥°D¼Ž84Þ·¨Ð¢c$U‘é´d6jع´ÇÙs—Þóíß÷¯•UB!þj´”@!Ä“I–³ûâ¿ø7Çã1.\`:²¶¶Æ±cÇXXX`<ÓétÇœ;wŽétÊt:¥,K꺦iÚ¶¥m[š¦¡iªª¢ªªùºÎ=ö{}ú\ÝO¿¾mÛ? ¿ækÞ{¦Ó)MÓ0ÙÞÞf41NEVL!„ +„Bü/8~ó/í;rKujÓÓ˜}ìŽ+&{—8qòO¹ñz’nAÖ[bVk¶÷fLv÷hff£=|=¡mà«]B=¦žlãgÛdÑ‘ë@®ítãKzÖÓ³k-³ÙŒ¦­ÀµŒ'#BpÄ™Íf´mMÓ8Æ³Š­ »Ó–O:ïSŸöœ?’ÕB!$è !„ÿKY®?ù¼ç=ïWš¦à®»îÂÇì߀^¯‡s޲,©ªŠétJ]×”e‰R çÓéï=Þϧ*gYFQ´mËÎÎãñ€ñxLŒ¥MÓà½ÇÃ… Èóœ²,ñÞ³³³ƒsŽÓ§O£”ú_þ5ß0“ÕB!$è !„ÿŸÜtëÓ¿ÿ±ë·6wÇì[êóàýŸàÝoü-ýÄ{XéDÚ½5:ªâàBC$³†nn˜Ž¶˜·qõ„¶ÓTc¬V”³ £í]ö¶v˜MÆ×R7%;»[4õ”àkºYFh[ŽÚÏÒ K7Kïn1+§TÕŒ¶mY[[cýÒÖ·ÞþÜÿ&«$„Büõ˜×¼æ5R!„O>ÖîõöîûÄǾøÒÚ£ÄÙíq~}ƒÍñŒm޹­-N)Œ1 †}¦Ó)³²¤ªZï±6¥n1*Œ¶TUÅîÞZk|pÌf3: «\{íµ#‡äÐá$FñèÙ³×RU3Êé˜édÌöÖfÕï÷^õϾýÛd•B!AW!„ø«Y9|裻M¸îÞ»>~C¿¿ˆŠŠzR²±½E=­èô ^ø‚¢æÂú:¨È`0`qi cMpm`Zµ8A[\ˆ4ÁÓ Iò”¼Óaea™z:áÐL¬¹xþ ÷~ü#XåñÕ¦“]F{[ŒÆ£ïùéŸùéß’ÕB!þúäx!!„ObY|ÙË^öÏ~ø}×?üÀ}·\qìMÓP[CžåÜsÏ=$¦ÇMO§=ËÆæ:Zk’,EkM¿ß'CËd\Ñ4 yžÓét(Š‚43,--¡uï=‡f6Úå£ý0 擜§cPÖ/®ýòïþîïþ;Y!„â3£bŒR!„Oj{›»×üô¿ýá×o^ï9Ïüšôêo›ÊŠ!„t…BˆÏܨ¼æ_ýÓoùÃÍÍÍë‡Wb\ͰYŸ²lPd(¥˜Uc®¾újn¸éFºÃk·O;{SÚF£MF¯×cyu™Á`ÀúÆ£¤i uÃ¥ ëÔm…UˆøzFˆŽÙx­­K¿ÿ²—½ìû_ÿur…B ºB!Äg1ënmûîïþî×moo¿ ßï£m[œNqΑÇ}K<óiO£( >uêI1DçC&e évX\\äÀ¾}ÜzãSøØ‡îàŽ;î`VÕÄI’„$IhÛ–º®™NÇìììüÄßÿûÿ_~ÅW|E-+ „B|vÈ0*!„ⲬÓÝ{É‹_øÛçÎ+Î;w»wNÍ?-“ùy¹M‰w Ý¢ „ÀÚú:Û»c0)ceÿ~®¹æžyÛI:EÂïy/<ð>´Ö¬¬¬PUeY²¹¹¹¡ÿôu¯{Ý¿=yò¤—ê !„Ÿ=ÒÑB!þ÷}ü®—üøÿø8çžµ5š¢µÆÆ–r¼K‘Xƒ&ËY^=Š.º,¯eß¡Côû}v/]â¾O~ŒKkgé÷ûTÎÓétpÎÅ‹×~ç©O}ê÷|ï÷~理ÒB!„]!„â ³·¹^¼ímoûÚ?~Ç»¿i<?KûšÐ”ĶÁ{Oíi±YÁ´Š$yž›ƒcÿÒ€ñxL4–,Ëê¦iÞ’$ÉÿÌÏüÔÛ¤ºB!„]!„£2ØWÅá‹@À+ØUp8=ë]Ón`Òh<ÕïxÇ;^ð¾w¿ãK×Ξ~ џȲ¬¨ÇÞ´›a³­Äéu Újʰ›ï†>Múæë®»îþÕ¿ú¿>.w›B!AW!Äã$ÂþºåùÓiùòO=òðmçϯ_óÈ™ÓÍÍvG3êÊalNQ,-,2 šãÇ=ríu'>väè¾·ô ÞžÂÙ'[ݶΟMîùäǯ{ä‘GžrqýÒ±õ­eÊÆ§»£ñ,ÏóÍ+Žy$³ê‘믾òž¯ýº¯?-w›B!AW!Äã›poÛØž}ËG>ö‰/ýà‡?tðÔ£k4®eR6”U #Á;ˆ*Áè”4/ÐZ“ê@ž‡×_slëÙ·?í-7ßpåÏw,ï’ !„B‚®Bˆ':à^¿±±ý¯ÿà^ÿª÷¾ÿvZµD»“Cˆ KÐZ%D5ÿoe,ÆŠDQ¤‘Äxò$0èe,ô;¼äEÏÓ-·ÜðƒÃ^v§Z!„t…B<¾ù6F¥ðßþÆ?üÃïù¥×ýÆ¢Is0³Æ‘F³¯S¼²„`qB´(”É1Æ0Ðç8tèŽ6eR—̦ ‹Kû!°´°HW'Í«þÞß}íuÇí÷u`&•B!„]!„‡[[[?÷䇾ôìÙ³äÝEjHòmTìŒJ²î€:è¿t‰–¨R”Rìò­ßú­ýŸ¼ÿSl÷ØÚÜcskï=Y’R`(RÅÍ'OÜùw^úŒoí¦Ü#åB!„]!„Ÿ=ÍìäúÙG~뵯}í ë›—èú ö3­À›U« ie:Œª†@ŽCÓFM!hbÐÄYê6<ó™Ïdyÿ*u]ƒVÌf3ʲ¤×ëñà}÷2ìöH jŽÞ¿þò—>çU«}Þ) !„B ºB!>s±¾yóì¹?øÑÿøï®X__gqe™«®¹šÍ1&0m5·¤ƒ%vö*b’áBJ  ŠÚE¼Wx!t»AQ9~EQÐzG¯×c82éf)w}èÃäúC¦‹ƒlö¢<ÿ«¯Ø×Ë‚!„B‚®Bˆ¿>?¹öâƒ÷üño¾î—¯Ø¸x–ÕÕUöZÇþCW¢mAC‡Y““!³ÖPÓÁkÃ,ꦥr‘Ú\i}3¼mŽs£&z– †Ý­­® ´Ç×3ÒÌÐïãéõrZ×L_òÂç~éÑ”·ËÂ!„B‚®Bˆ¿†rqtþüÛâµÿÏ-ÍxÄÑÃû¨ëš|i› XXÚϨÒݧô•OÉIÝ0qвª)Û@埥a—ÅÅEZßaæ3œ³ô(Û„¥¥!e,ˆ‰eR·8 QAP¼A+OT ”‚Öa­…ˆQã•¥Èó­5;;;Ü[NYôÓ.Óé”zPpààÃÂÖú9eYþßý~ÿ»d¥„B!AW!Äÿ’§Ý÷ÁO¾çGÊSwsxYsÛm'è©©‡–Ž]ˉÓX¿0akÜÒ(G²Ð#„¢ËPiG: T‡D×ÐÌPÔVEÆÉAœs(WapØPJ•ÅhC0‘YP\yÆÍWróU+4›s\M V vÀîÎäŸmm^øí啃‘B!„]!„ÿ¯¦åô;ßúÖ·ñcG9qâi§C#Ãþ#GÈ’zcÄî,ÅNç2¦{‘¢(À¢V(¥0: ðh­©}ŠÖ”GGÐÌ·½Dc1Æ R1K¤,K–—s²Þqj! Ñt:Ü·î5À—ÈŠ !„B‚®Bˆÿ7Ç>ðž7~ËæÃ÷ó”+¯åøá㤋 ¥Ø˜¡(À˜d{©b}¯¡­öHÒ!ÝB“b±BƒÕšZ'(<Š ¥ƒÆãðÄÐ!¢˜a¯#ÑŒÖX£0v¶·q–:]ð7bSMžë_1›LŸÛéuïeB!„]!„©º®¿þÿø‡7Üp7^uÇŽ­‚Ö#Zi ‚÷ô‹‡Ó@­öU 6Ï1£²£æ{o/‹1cD)…Òж-QGt0=1FŒI‰VXkIH™L&<òÈyzÇ÷ѧ!„@$¢mŒÑ:¼ +„B ºB!þ1÷Üý±¯aò/ºéy"Í «€ˆŽÄ.èBb$$ŠþRŠñ)¥²¸¦%Ñ—€µ k,Æ )к!³%‰…ÖF”OøôÄ~¯-Ñj”Öh­IÓ ›E:»ÉÊBŸÃæ裰h4È;Ù+ªYy4ïÊ !„B‚®BˆÿÑ3ÞñŽw\wõÕWÓívFloospuUä ,  FPж©™LZ”Jéõ ¢‡IëHÓdhbЄè‰Á¼A)EО Z+”!èk !¦Ðë%4Íu]£T—$IˆDárÔe¼øyY>!„BHÐBñçLw6^ñèý÷ò^q€®qÿ©ŸÞ§Þܦ“,Ë„d §5M’á’:É ÝBÇZÆuÄ$ m * :"QEbÒÚ„Øv¡mð!€º<Œêr'£0J¡î¥m™ê#Û¡¯!çÓ¬æ¿.Íôß‘ +„B ºB!þ¼0RgÏž}¶÷žååe:[[qìØ1ŠÁ‡>úlŒœ|ÊQB 5MãH’„¬g(Ø@–Aƒ"(È¢ÁÅy˜ÐZãM ‡7zÞÍýtÐ5ft5$IB¢’D1ì 1Æ` |zׯBïÆš[«r<È‹þHR!„t…BÌC¦fáî¾ÿ)Wîë³ÐUl^x˜…aCW†Òšˆ2 Ò kæ½TgIr KÈ…KÛô»=reI5$!Rê„qȺ†RfÆRMp ï=*ÎRV¡µ&1š@®5û† +=‹¡&×9æ78”sØ&êJànYI!„BHÐB€BßÛÛ[‡dYÆÞÞiÚc0›ÿ!o-Ĉk[L2?óÖØ­-pD¬µl\ºDo°,+@ƒŸÂâ¢a:¢Å`‰‚‹8爾Ÿ·›šù´e‰Žt,ôzšáP1ÈŠy ÿ3×B ± !´Ú{ÿk%è !„B‚®BˆË"Éѽ æ¦ã}”ŠÌftÑÅ.f´“ “Ñí-*±ÌÀOI¦Û˜¬Àv»€e,.hŠº¤™­‘›%Zr©f E,¡ÛåÂέ5چǎJÒ@fE‘«éf0H‹IÊbfÈ Dïˆ*b´aÞÛmˆmE–e‡d…B!AW!Äc\pK»»» ‡1ÆPUi7…\=ŸmlŒȲ ­Kœs Ô§_ÿØ#Ç—¿|ˆ˜lÞ¾paÉdÂdÒ$\¨ªjþk´Âƒ çÜcÞ4Mhš†ZªÊRŽ'ÌF»Dß⦻¬ ŽZ¥)gdƒÛ—.Q–¥,¢B!$è !„øSiÒ/;(° Ípß~ºû‡@MÑís(v÷Ìålð¶O«ÇlìÕìV©kšIÙ¢lÎÎhÆætJÔ&-h¼¥jJœ«œsTuC$-yÖ#ë¤IBž§dÅ#&)^eØ~ï=³Ì>?aoëãñG‹Ãìlm1ÞÛS²ŠB!„ +„â1Y¦j¸<ÊZŽ=JçÈ‘y°í÷Ñý‚a–A æ{jûý>®whëÚã‚booJíöpÑcd<ãuFã-ƒÁãyžÓ7†¨-Á( Ró#‡ò<§©Zš¦èI’ï=»»» ö/1\ì0ôˆ—¿æ½_“UB!„]!„)g®8|­un|V‘X¤LÇ4d,¥pS0óG”Ó^B¿5øØa2ÒßF2P1R6ÛTôl$*‹ÑÊXbÐŒ]KT ­¹|nn*P~ºCtSŒòhSÐT޲´m¤šè¦ìmή,SŽKvÇ›î»ð7­æ ô# ¬¶›ÌO]R!ÐÍzðŒsÃDîN!„B‚®Bˆ¿ŽÀ£išîF£¥¶í“CCCNA7íR»™÷ó¯NðÓ;;{ Þ@Š1†4µÌ¦S¼Ä8?õ6Æùy¹¾u¯f¾8„Ëè|ÜcA7¸ù¹!‚W¸¦æçöZk)Ë’¢‚Ù´f<£úÔç{‰=óg6nöÜÍÍͧ®on]yÏ'ØBX“«sçÖèt:EB£#‡\:xpõôþÕ•:¼ú>M|¿!9/7«B!AW!Äÿ ÅÇï_»tÏsòdÊ„AQI ´`=``6ÓÅM=¦e5ÁEšºdÒÊFá£'ø.£Âã >àb xò9JE T@)󧃮LÄC[—4Ó)ÆÂB/'ª€ò /^doo<“qÉ… Öoxê->–µjY¶ _¶µ=ùòô£Ï¹çž–>ùÀªª"É3f³£é €¬Û¡œ5¤ÝB¯òΙ…Äæ×E÷¥ýÞ"ÇŽ»tóÍ7¿ç–:¿ßOyöåÆB!$è !„øŸÿ Nž<ùþ·žúÀsövvꪻDÊrLQÕhÄl¶‹'CkKˆ‘¦i˜Í"ei¼¥‰žÚçpQãPÄ  ˆ ïݼ“«â¼ë«ç_Ô¼ š–T¦Ó)8OСßïðŒwvÙØØ ÆÈÙ³gÙݳ¶¶v×?zõwn}žUôªÚó|ô£ûª7¼éWœ9s´¦m#¥ëP–%›;ÛÄ.-3N)‚'xEýÞ"›››(,‹‹ËŒöfL§Ó}=ôÐWüÉ›«¯¸æªÃgžóÌgüÊõWíûÙ¤Ë+„BHÐBñ—Y9yíÛ¶ßÔùçëF†…G7`y™"‹Ým¦ç6¨U›fXcÏ&Ìf‘¦†-ŠŒ¦­hÛ@mÔøË!G­Ð*Å…ÑAó!T—_G 8U£ë ©Ž,XËrV£t¤ï+¶&°³³Ë¬®ØÚÜ£uá?oŠøà_ý'o}ç·ÿá›Þ°|ñÂ%Šþ€Öi6çC³èŒÎÐMS–º)!ÉR–÷_Íùõ‹ä½!˜„$Òé-€.8{nKëcܬ&j8múì®é+>þûïûž+-óKŸ÷ôŸ¸æHö}Ë],„BHÐBñgEç½+++g}ôÑ+J9}æ>®¹æÒc'ˆÛ›´Û»ó½¶Ú㪠ma<.)Cã ¥k©ÚšÖ*œ‹¸p¹£ë=Î9‚£#6ÉçÛð.â.ïåuÞã½Ç÷ Ñ{Šn—4M©ëcY–‘$ çÎÃÅÀd\ÕW^yå?/ â |ðÁÿø³?ÿsO[;¿S‘^¯Ïx6£œ5$I‚Öš¥¥%VWW¹ñæ˜6uÛ0šM9yò$ÓÚ1X\fVCã ?\âE_ør\cùÍßþmªÒá²ù#Ï~ÆÆÆÆßû½ßû¡§ßtýW>ÿö›¿c©Ðï;Y!„øì2¯yÍk¤ Bñ7–­KôÁOÞu×sª lm£*ÞÙc´~|$ë.rigÆdâæmRâb õªih‡èh›†àÑÕø¶"º‹'Õkk”šáCMÛNh]I 眫pÍ„¶ãÝÝÔ‘'%;#T¨g›¬­mpöì›Û[xÏ›¿ü+¾â'W÷úÜ•-6*¶õ¿yÛ[ßôŸÿÝÿà‘Ý-Š,%M3ꦅh1iŽI;äEkOγ(½caÿ!v«]ôÙ­N™8ͨÑ,¼‚ö™:Å•× Ø)-{3j3d°pe Ò¼O>Xáìù̓>÷ª¬·¤m‘¿»+?zB!>{C’!Äßl7ÝtÓ/ßÿ®×ÿŸ§OŸî_Òìììàñb­e:s´Á3V8ÕPµšÒ)‚ÊQ‰¡i<µó´Áãb@)…µ–$IhÛ ¥WÔµ£õ ­#>‚÷žè[¬ŠÄ¨ëHÉ󜶪ÙÝÝåôéÓ(¥ØÜÜd8Xþ™§Þt[üÜU, Çãñ/þò/üâW¼ùÍod8Òí0:E%9º DRVáøÕ×±´´Ä½xÎ9®¸â T’£¬aV·Lš–IYS;GÑé³µµ…Iû(“òÀN:EQ˜î­çg§6cËÒÒYÒfúЇ¾¯¼þŠëŠë®úÖ^f¦rG !„t…âI¯›öï=vÃí¿ñÈ]øFµ6æÄÁvöaJÃH;¦ÑÒ†HöF{Ô­&è„Y ³Æ‘w—™NæÇçi«Š<ϰÖÒÏ4m=Áû–¼×eVV´•Ã+CëQéyÐ ¨€«§LBÅnÒrx¹GU•¬¯_äÌ£ëxïñA¿çï}ÕßËç¬X±>\ínýöOýèxö'îúÃ4rÍ‘}(cq1esoÌñ#WsäÊk8zü::ÝÛ{½ý¥LÊš÷¯mRÎ&Ê.QV-•‹TÇ•#!Tøs§ˆñ´6½ª¦ßïSä]’$Ád 2‹O"–’û.N¾f]~úMÇÿ÷eÍ%¹«…B ºBñ¤÷üç?ÿß~òŽw|y£›Ek-;;;tꚺ×awVÑ„”¶mÇTB§i±@Ùzvvv0—÷àVuƒµïççã6MCš¦LšŠ .f=@Q–%iÒ¡¬J>ÌýËlo\`´Í¥§NâÒÆ£<üðÃ$I—‹/†ÃG|ïK¾è‹ýç(äZ?þ~ù~þÖ|p>:̧I§iJ¢ ®Þ·Ÿg>ûET-œ;wŽóë›<º»K`<ÒÔ ›ìábJU;š P&Åc€Öš¨Zk¬µXkév;4MCâ²ù¹»ÝŒ„Ÿû•_û­ŸúÜ„Ür°qæ‘?ú•ÿú‹Ï8ûȧÀ—t³„"µô»K‹‹t;=:ÆSnº•²lŽf¬]ÚfsgF ‰`m«û(ÓA…BAªzRL°¤Ê’ H”&Õ[Ea 9 Ú@Ж´SõdENÑK)Ãá<¹5GËÑÞMÃáà÷­¦•;[!„øë‘Ž®Bü-qýÉ“?qýõ׿ì‘O|ôeêðªªÐ‡V˜º@YÍÍjB“$ UU£š?z¡,Kʺ&ÆˆŠ‘¶m±:`Œ!Ò´Ž¨J%;vUÙ¢µæìÙ³ì[^àî~çÏïÚkãMÚfF]×L§ÓO}ù—ù¿þ•FÏvwéu¯{ݳî¿ÿ~Úr¡ƒË(Y^^ Ë20)£Ñˆ~ðƒ\ܚШŒhRz½ÑˆªmQ(BëÑZ“$¢™-P¥èˆÒk5Æ”RÄqÎQ–%IYR)ÖB§ƒ:ý!=ºš¾òìÙGìÚ+~‹ÜÕB!„]!„xr3ióÅ_û¿é¿çÿz÷lgvåþ Òõñ|ˆÔl\÷ïãàÑà ÷ígýÒˆ½Ú3©ù0egk†Ž):-(:9³rDÖÉÈóœµG×0&ãØÑÃL&Lí®±ººÊbO“iÇÞh ZOˆ-m›P7)ž0½úêýßøÍÿðŸlŽ*óÝ¿ù›¿ùùÈGÈSÍM7œdaØe6“¦)J)êªd°²ÓÒMi?UÌi#x—R¨MPMÒcÑ‚ׯË?ÐĨÐ:A)VZY´Nð6Þ$¡öžªšÑº £s `¡}=ÿ7¦ ‹…oÞØ\ÿÈêÊþŸ•[!„øküµH]Bˆ¿=tžŽn¸êª;ßöÇøÎ7çÝ<˜šŒÉdB½AŸ´èpis—ÚGP {ãZ%¤iŽÖš¢ÈIRC¿ßE)E–flllcäĉ CÚ¶%IžñŒg¦ wßuOpž=ÄHU•1÷õ¿øË¿ô¹:7÷yôGô‹ð{¿e¬Vì[YâÙ·?“k¯½šÉhŒÖš4MÉŠ.i1@§9.Z:ýE‚NÑÖ’ ® „ÑÊ ´F+KT ïÚX´žwoµÖh ÆŒ5XkÑÌ÷Û,Ã$mYžÐëdô2è0°à} ›XÒÄÒétž_ÕÍ&ÖÊp*!„B‚®B<¹uVö­½áäݯûÛ^©\,Ò˜0•4UKÓ:–h[ÏÙµu.¬o³3*™”’$Ñ$TÞS{׆&z†YDѰo¥Ïpý„Ķ,-dlo>Êï~+»;Il$Äšr6ÂdžñdïÕ¿÷ßû?uˆ1çÏŸÿýÑ=\Nv9zä0×^s Gdks£W¥èt»›m.äýe’Þ2Ñöh¢“I‰1` ¤©ž?­[TâAWD[£Œ'Út$j@”1(A–A’bŠ›¦I“†ÅB³ÜÕ,åš4” l¤­&¤Ö PYãõýkäÎB!$è !Ä“ÚÊò‡\¸ãïz×Kc놮ñxï¹´½…2šÍíÆeNrö8LÞ‚JˆhVVVh]Ãx¼‡1šÃ‡ò•_òJÞÿþ÷ÓétPJ‘çëëëœ9s†{î¹ïæÓ‹›¦Á9Çl6›´mû ¿û»Ÿ›  ”zõk_ûÚ¯衇Xvé÷º<÷9Ïfq8ÀµeYòìg?›ñxŒM2‚ÎÐi‡¼»@‹%Éû`,Ææ,1FŒwl[ïç{™í¼“ë‚Gñ§^­ öò^è4ÉIól>…9µ¤iбØÀB/gyÓÏ…‰åÉmŠó"6ɯj]{6Ñæ.¹«…Bˆ¿ÂßbŒR!„ø[êî»ï¾æÇüÇ^·Ó6MCžupΑ9KKK.‡âèñ+0:#Í Œ1ìîíqþüy.^Ü`:ÒÖ !ÌÌɲŒ#“É„ˆ§×ëá½§m[vvvˆ1>h­þÆ_ø…_xïçê}{ØÿÖ7¿ñî_zí÷î7ÆÐÝ·ŸoûŽïæ©7>ƒÍKî¾ûSìîîòÒ/†L[¹w ç¦(½z »t˜Æ.°Õv©ªm([GS{*ç©kOÓ4´m‹«+ڶŇ˃’µ ^D5ÈzóýÀݶÈÐ…&Í"û—s®Z)8q a€£¯ü|xFTÌÇhhbäatxšBäŽB!þ¿‘aTBñ·ØÍ7ßüàþà¾âæÇþÍC=ô“É$12žM™N§ôú‹ \sõIžrÃ$‰áþäܹslmm±··‡F¡/‡7cÌ|sØDcüôdeöööþÛóŸÿüïüöoÿg>—ï»iÝ·¼ë]ïÚ_Uä‹¿ì˸îºëØÛÛc6›Ñétèä`Ñ\{íµt²ëŽÉ,RUtI’ ”¥q FG‚nQx‚vÀüib¥:”R¸Ë'‡Ë_ÿtÐýôë”RíÝ5&B m[BH0ÆÌ#úÿ@)Nø¾Ö(ý3rG !„t…B¬þõ÷ÿÈw¿ùþû½éMoú¿Ïž=ûEyÑ¡nZ¶Î<Êd2ãS?B¯÷N—ɲŒé´dgg‡ª®çÕLz9ˆ1dWGkðÞ3ØÞÞþX·Û}Íÿï¿ûŸó7é?ðÉ»¾é“z/Ç檫®âéO» ›Z\=Á·{, 5ƒA‹"¦ÓcÿñÃŒõ.õ8Å' •åd!ÅGˆNÍ'®Á§†Ð|íñFá[ƒ³àZƒk 1ÆyCˆ—‡TÅè Æ£­kHlFbtô4 ¸¢Q2Bph"¨@D£è¨þ‰÷í/“ÔrG !„t…B\öò/ùò÷½üK¾üåð;¿ñŠ7½ù-ߺ¹¹ùÒ<Ï»{{{èÄ2™LØÜÚÁZKŒ çJëyW3ÎY6Æàœ›?¦ë½óÞ¿ø…¯üʯüݯüʯ(?OÞêßyÃÞp<ÆÈ­·ÞÊÊÊ I’°µ±Îx£ØÒÐAµÌƒ®I‰N˜w]óÉÒ1Ì»´ŠyGW_>O7/wtçA׆y'5ïŒ[kI’kJÍÃ.ùüâChsùÑçJRê©Zëo–;Y!„ +„âðe_ùª7}ÙW¾êMïyÇÛOþÉ;ÞþòóçÏ¿¤®ë›C‰Zk¥Á(ìå³_­µ„!:šªZŸL&cþäꫯ~ãk^óo>òùöþöÖýêûß÷®?²Ä¾Å:YJYΡd:*ÑZ³´/g¸ØâÚ!$9- .3Ý¥*¦ÅÔ)…ÕBb4IT˜ Žå#†yµÑââü‘næAm±Ö¢ô”hQ«yG\)Œk,‰µ´ÍbLÀkÐF&IRšAw­5Z¥$Ym=QƒÂf C ¦A'–©st‹ŒTkšr—4MÉ2ƒU˜BÙûÓ¶•¬¶B!AW!ēú÷¾ÖZgÞ{ÒnÊõ×_ÏÒÁƒÐëƒ1 ‡Cjiêš4kð(&åˆ^¯‡9µ·xg‰ÊP>´ónm´$IŠ6)Uå˜Õ5®v$iNžç”R ççæ*“<6…™hAk´Ö1F£Tøsþé}¼kÐZSU©±¨4’X m Lhšf–çù¶,µB!AW!Ä“Ãf§ÓÙ©vÍqÙÒï¦,<è«˜Ž¦t{ª2Úš±¢"I?Cï•,¨£"$•±LkOðk-ª(€H †ÖyÀbRƒV)$­jßc €ˆbrcT„Ф G0$DZBøðÊb¦­+ÚjAp¥BMp ä)DÍÆ¥F“é¥ÁâK²ÔB!„]!„O’ {Ýu×=ú±ó÷(Ëè΢-K.N/²µµÅêÊ"½^ï=kkk¬TÄh±Ö²~i—*LH{Kh“¹ÜemÁ\hZXÒ4Åšœ:8ªª«‰1b$„€R€ç‡àúàÐ>¢tí º!4ZAl+¢«)££,Sݤ‘K—.±¹¹yúÈ׎e©…B ºB!ž Ä믻ñÞ÷¾ñwžqa§æŠ£ʲ%M-nvÈó%ÖëHir”J¨ª)ù(²»{‰²QTã­ÎQ&¥5Žš”ÖhêÊTƒR”!xp¾¤5mdlÃüÑåOŸûhPXŒ²h­‰u@…¥"ÞÔÄx¹£KM­[\S“O–ÊÉ„:­™Uš¡Ê‰>2mj¶÷*Ö/m~òú[žeµ…B ºB!ž$úÇ:§ËËËìm_`ô¡5ßô☣GÒjµpα¸¸HQŒF#ʲ¤,KŠ¢`:R–%BŠ¢ ®kªª¢®ë½GUU{f÷×Þ{´n²·UUa­¥ª>>×û& ø B¦Ó)Ãá3gÎ`ŒÙíýÛ!È ‚ ‚¿™Ñ ‚ x*<‡¤àvŸ·±QÜ8l\µµµu`m=_(j• Þ÷—Ú³¬oöú­ GzìÀ’þ˜„*Ç£©dVŠ¢Øÿ¯þéwÜ_Œ§×%­6Y”!„@#ÀŒ-ðÞ°´´D’uXVVVpµagg‡Ëk›DQ‹o½K×pB’&êyçdö$‹ÖŠr:ãÆ›®e0P•S.]ºÄÙ³g±Öb¬ekkkëÈñ«¾øµÿåuoŠ ‚ nÁg«çn¦ßó®ûßûµïz߯\Þ 4%cJS³3ž±á$ZµÄh/(«a>D‘ ,¦!hg ¤iJEdYÆ‘£¹ù–ë?ôE/ºë5iÌaûÙºÈ~ø]_òÃ?ò£ÐËZ½^ŒÅ–3t$Ðî¹ç* Ý[åÜÚuØ—ÄiŸa±û]Ó¡qh-Iµï¨êE1£ÝnsäÈ<ÈÅË—ØÜÜdyß* ÜZã/ÿümôšLn¤šFV³É˜õõuœ7”eImÌàðáÃçU¿ü_þ<¼-‚ ‚ ºAŸuœ37•eù¯ã7~ç›ßõ¾¿Öeap2BŠˆI^1›–ï0(f­.‚”ñ¨ UnF=+0~@’(:í´éþë#â8FkMœ(ú m³„ç?÷®'¿ô >ÿ§;)ÿ-†üÙ¸æï}Ç[þÿø‹¯z]ÇÝHH0%:X[rçw²°o³¹gkgÆÌH¬qQ—,ˈM+R€£œŽ¨Ê‚ªž‘¦1÷Üs­V k-[;Ûh­9tô÷Ü}3¿úŸ~™G?ö0R ¤”Ôå´™Ó;Ñn·±®fccc¨£èÿð-‚Ü ‚ nÁg›2ñÞ}ÿÛþâÿò¿üê¯uM R'Ô.Â:Iå4eå0^"eŒW’Y=%Ë2¤UÈÒ \Á¾~Æ­7åêcû1¶ Ïs†£Š­ƒYͬ*(MNÆé>ºÝ.«YÌ<ÿî÷¿ðî›þÅJÆ;Ÿ«ÿá÷¿÷E?öc?öú¥nÿ¨³Ê„t,//³¸´Âöh‚ˆ;”F±²zÂGlÍ<ív­ËýNFO™Nä“!`¸áškɲûöíccs ¥+++¼÷½ïåä£O ”¢* Š¢ ÛN(ЉgmmÚ”gWVV¾õ7ÞðÆ÷„÷GA„@7‚ೊµÓÛ¶··ÿÓ«_ýêû>ú‘‡‰ÒxÔ ÆÇTµ§r©„N°VP˜¯eY‹„Ä ¤/¹óæëxÁóo!Ñ–8‘lnn²3(ÈK(œbœOŒGx%¹l2²,Ãw¸öÈ~V»Qýe/¹ïǯ>ºÿ§ØgÛqxꉓ×þìO¾âuƒÍº*ÇØ€v§:&n/Òéïceõ %1´–è÷ûHá÷Ý|Y¶€C‘¤=’´M”t‘QŠW1N¼Ní>D]¤ì`EŠ Ý¥U]u‚þÊ&µ`f#l´€ÈV‘é"•Hq*¥½´Ÿ+˘|†ŠZX•22J=|zý¥Iwñžv/{GK1~6Š…å•íÁK~ëÜ…ózk{û¹J+eœ§v)#¬è8FG Y'æè‘W]äÐþ7œ8ĉ«öÑŽb´½ÁöæEž3Þ²±¶N9­)gÒG§ÈË)Q¤ÉÚ)Î;ƒʪš‚ÿñ¯úê¯úG?ô£?¶Þ AAÝ ‚Ï.fçŸýÕÛÞö+¯~õ«³Ù4guÿ~®:~ïBÅÄi†Ž[ B%è¸yÄIBÖé’C·ÛGzIÅt²”ñp›í+à*¤¤©ùœU Ç3f³‚ÚZt¤éô{ôû}î¸ã.\¼LEÄIÌB·Ç“?|)«/;vüÀ_iX6’8Mëû>ÿ þb±›½ûá‡?v­÷þ˜sŽ¢¨ÈËši^"¤¦Ýë’u2Ž;ÆUW]ÅUGÑi·ÙÙÞáܹsœ?wŽÑ¨™Ÿë¥Ö8êºFÙtxŽQ1 ÙÚÚÂÔÕŸ­®®~ÇûßøÍ»ï}® o ‚ øÔ [—ƒ žö ·ü±wýñoþÈ»ßýn.\ºŒ@³ÿð1z‹ 'ݦFa|L‰ÀŠ#Ee µÓ u gZ8+ñNb­ÅZ‹P3”†CWét:$ºÓXΓ¦)R9¼™rõ¼à/àƒ{Œ'ΜE%I’ÐJiäXêÈ‹_òùwÕ¢âY9ÒfçòýðßöŽw¼ãÿÍfwy)MKŒ‡4MYZŒXYYayy•8Ž)òŠñxÌt<¦Èk”Šˆ£ ÄH¡µFÉëUUÌ L&“÷FQôÊßþíßüðÆ‚ ‚èA|vÊg?òæßÿ½ûÈßÎh4"ieh•´{ô—⼤vÑ^ [ ‰!¡ò‚ÚKjk1>bG&Ø:ÅÔ` ÍÌUcðb‚kŠ&p{DQDÅ´Ûm²vL+ö,‰!`cT0šÄY—8Žñ¶äÀjÈOÑ&¿pßónûêÅ´õ¬ßzéÉ'Ò·¾õ­_úî÷½ïÿMË— õŠ¢ÀšJ)¤ÔÍ7Oš mEh• uŒ’ 2Òóßkðš¢*)Šb»¶£?sÎýÚË^ö²¿øÖoýæ:¼1‚ ‚ ºAŸìäþÉßðêÞóN´¢”"k÷‘QgôöCÜa8®ðQ›Z$ÔhJS:Ae5Ö;j/)ªŠºvTeLi¥õTÖP¹OsçÚK¥‰¥$’ž¬£èe)û÷uÙ·´BY–L&’VÂÒÒV‚”’v7 ½v|úÎë~Áªâ³ýð½ã/ßvõ;ßuÿç?ôÐC_ØÒ{Œ1G­µ!šAŽæ{hÖí ¥DGιÉp<:S–å+ûüÕñãÇÿâà_œoˆ ‚ nÁgy›¿ô}ï|û[þàoHÚÚsh%¡×ëa]“Áõ"BÇ]Ú‹ûA¶—žŠ˜M%*/)¢25•ÌŠ‚ª²”EDe5•ƒÒÔT.Ǻ)E³eÙx"!QÞ#½!N=4æÀþŸÿ‚ûPJ±µµÅx:&IVîÇ{Š$ ƃ Ú˜wÞzÍ‘/ïÇ"²ñw¿;Y__?xþüùk766ŽŒF£Ã³Ù,®Lzï§:‰Ë~¿¾Óí^îõzg®¹îÚK_ù_U…• ‚ ‚èA|npæÀ“|ð}¯ÿ/¯>.}Á¾å·Ýz„ååeÖÖ·Ùä(ݦ¶-âlÝ^af4…oQSÒ¢ò’©•ÌÊŠ²,©ëšªª(Š&£k¶¦²“y½n÷ïÚ Ž‰ˆ ±òxï¹ëö[Y^ê±ÐÉHlïlÐéf,-õhw2„°ô³˜ñæ%–[ñÏ_}äÀ?3‚ ‚ÏF:,AÁ§Ö`}ýÞüæ7ŸN§;¼Âí·ßÄm·![X Ý¹ˆ<¿Ž'¡¬j¯ñÞÓétоEå#”O‘ê*ë°Ö"¥Ds^*jãP8j7ºF÷ i=Bâ…ÅZC»ÝæäÉ“ì[]äı#ÜpÍUD±dg°…µ–,KHShǰ¯Œ‹—¿o2¾µÓíÿy8¢Áÿ®Â“8‡V 8 N Ô&A!Ð ‚ øläªúkÿäÍøÍë—Ïs`µÇUG÷qÛ­W‘¶gЮ8tÕ"º±±1ecdˆ¤&j·q2Eˆ A cbDåðÞ!â- ¶ž¢…&A!+–5ÒCä-GášÂù„FÊ©B'a‘JPÇÄÄœ^›RG[ôÚ)ZFT³ j&8ØïÓQï‹G–åÅ‹W~>JzŸ—ÄbŽlð?SAÇy®‚;ŒåöñÔ›NÊý£éda2ΓÚ8¥”ªãÔO;Îf¿ß½ÜoGÇ*8Ù°ŠAAtƒ žÉAnMûìÙ³?ùÁ~Å~ÊÒRo¼‘¬ÓÅ´IÑv»ìëì§Óã/î0˜@m I;BªDŠ©#JW9O‚ ŽcªÂ4Y]RøyöÖ#T‚µhªªÂ˜¦Û¯ŠÝ¦IZK¼¯I’dþ5†‹ÂbV9º¿Íööe:º`¡-è,vRbáÀ·î Çß“,÷~.Ý`ï<Çïóˆ—VµûªÇNŸ¾÷ñÇž¼îÌÙslo ÙðN’8+p^ ”Y"¥D)A+ŠY\ìqõ±ã£ë¯?ñбC‡ÿ|ÿjïOüuXÝ ‚àS%ÔèA|ª”ü“×ýô?ø¥íõ VsõÕWsó×tèõzhyg#dœàI•d´UñÔÙ5ŒM脨³'ÛLFŽÉÌàLÄ˸¶”¶¦®eYRUÍlÖݺ]k-Î5¬ñ–æº.š@WE(¥hQ “>Þ{²–fy¡Åí×­°¯ã¹áÐ*v8dui¥¹ê D5[ÓK—¼÷w¬t®Ý øÙÍÀó*Ãw>ø±'¿ú=ïÿЇOž¢ª³ÊâTÖS[‹µçÞ©&¸•1u” EŒŽ#¢("Šq“&‰<°l?ï®[þúŽ[—½óÛ]Ø+Aüm„ŒnÁ§€…Îc~øûžzê)®>zŒv«Í5×\C«5BG1 ‘2Â`pFGz+=V’õÒKÊ²Ä … ­V [kjo0ÚC-‘ DS»û0Æ`Ló9œØ t„”H)‰T4Ïïfz›`ÄZ˾}h·5‚>Èù ’¼'MÓCUUý}à§ÂQ~–žÛŽçÍ*óüæ?ýÚ÷¼ïjk0ÆÉ˜íác¡r‚ÚY,Ͷy)›ÀVk¤hš¡!Ø;çÄ|W‚Àlnnª?ú£?zÁÛÿ\¼àî[oø—/zþ¯>´Üz oAÝ ‚Ïåê¯{÷Û÷šXL¹ëÎkIâ郘5—Z£@gxB'@QÂÊ¡ÃØ(g:ž24šÚ tù_ ¬ƒÈ€“»®oÁÏ·(S"…™¯¹×}yè¢H„êƒ÷¥QJádI-J&å”^_㸠TSºù{\L¦£TùgÓ᫲vŽô³G]ùÃ^ðCoÛ;¿óW^÷«‰Aâ §Îi¬Ð(QPB)”Òh•â•BŠ%(‚RH!•BI"£±HJ¾tÒý˜Xðî;þ‘Ç.þÔ·^÷]wß}û¿½a™_ G#‚ nÁ§; ÀŠóO<ñ>ú(Ÿÿœ›9vìöAP ¢h‚OAÓ Y÷` "j³°0”_+ «¤X«ÁCdA ð^!pMë,O½Î³»ÒÏ·0K¼÷8G“Eór^Ùl#%Rͯ•CJËt:ÅÌŸI̳À8B€hþŽ$Nާ£/ÉÚüN8ÚÏßvöìÙŸ|ÅÏüô±“>Awq‰iYc­GD)RFTU…0–¤Ýknލ¡#”ŒqR"ÐMfWJT#E„Šš-b¾¥>Š›óQ ×|^x–––H¥ç‘G¹öÒ¥K¿zù¶ë¿ö¹·ŸøgYÄSá°A!Ð ‚ ø4‰\uÓÇîÿãûÚb›®»†HŒØÞ¬ˆzmª¦ ²ˆº@†Å I‘"ÆëˆäcêH%  1•ÂÖ‰@ µBÏ<^: …E£p¼eÀh„µ`Í^F×{ðMC*¯4ÄR „òDQ›DÇeÍ¥+–Þ…TlÁUÍ·ÑÂÏcÞ8Qß!Ðý\窼#µþ…ß~ÿû§_ñÿ‘´RTÒbs:¯ñHR¡QqB?‰pB"ãÖƒ—B&ˆ(Aãd„W1V&DH¤HðBHJ#uŠ×hMœ%䦤–SƒŽ ûQ'ï|tðug7ÞÿÜ/¼ï¹ßs¤Ã›ÃQ ‚ B Aðé`íË|ðÁèÈ‘#,..’¦)úðcdË œè-³pü*L>C·2""üü? ¨Jf³¢Ý&I´Œm’Á±TÔˆx…µÎI„S{½„o2¶R|R +iæïZ!›m£Z‚°D‘&ŽÂ.]ºÄ±¥£D‘E‰ÿ.ðq»‰éè…ãñÆnwõJ8àŸ£LyuY–¿ñòüÁç¿íïB©ˆº®‘qŠ‚$IçÍÍb¬s¤­”ÆIM+IqBãEó8NF!EŒ)$ÌçAïž·»ªªX^^D+t5­,Fºšº®é÷û8·qø-où“?xÉK_üϯ[É~1¬ ‚ ºAO³K?ú…õöyn¸ý6ÚYŒ©sù€É°â„½f1WÎ^aa‹öÒ2ãIp>"/ â4C´ZøX`=6­¤Ê´p8'±¾ÙI,HáA‚P1B0UK°ïæ]—m³ÍYˆfë(*GJGEÄqŒÔm2µÄdhÙØ‚x)h†B ¤?A«”˳ÙäEÝîêÂÿ\Tß¹µ½ùÆ—¿üåW=òðcLÇVfiu…­AN”¦¤is.,-íãλîåÅŸÿ…lníðö¿zW6w¨½ öàEŠà‰šàV2ß/ð2Â"À ¤8¬Ã`\“µR:>è¨ùùj1ʳ¼¼OÝÿÀ#¯ßxÍþ»Ž/þëpÌ‚ ‚èAi{‰\p ‡âùÏ¿cÇOEeY²¼¼Ì8¯(­G9)^ÆØy +„À»¦ÜÃ|ÇMM¹ivÌf3²,ÛËö&IB’j¢(¢“F´•AûGessó?ô½7ÿáàA!Ð ‚ xˆXÝòÐÇ>²ÜÕSVˆãkkC\·ÇÊãàºl_òô’bVЉ2„XëÐJá+ƒN™€Â0†ÑÖˆ¬½@"bd;Æ’8ÚÛ¦ss¤A9Jkˆ1ž*7¨dþÜBQUq’ =(©pÎ¥¢iþãX¡¥¡ÝïPÙœÜF`K²8£ª â¸ó]°ì[Y|N•o‹¸µ°Î¹ÕÍÏžûýŸù™WìôÑG©ªŠ4MY\=ÀW|Õ×òù_ð&EÍ#§Ï2™ä,/­ÒjµØXßâñÓçyòÌ9F³¥’H£D„Ec½Fx‰qª lÕîØ+R"D³õ^ xð†ºÊ™Ù\B–@;[¤E´"P­ÚI—È[ºÝ6õdó;uvzõÇ,Ä ‚ ºAŸb¦,oÜÙÙ7¯¬4³o­mæÖFËËË@“¹ò@»¥R±Û1¹iôÔd°¦eN”$t£”î”<öË‹‡ “$’Y£ì¬´ÛJõ©ëz>^H"%cÀ6]lµŽqµ!MÓy÷Ûy€á4I’ÐjIRív›$áR¬·ÔuM%ÌÇŸ‚·H­¯›ìì,.µ–ÂlÓÏΙ}ÓÉøw^ñŠW>}ú f³ZknºõV~ü'š•ý‡Jðä¹+\ØØÁ˜¦Ü9Çl6a{{@Y–dY†uƒÂˆˆÚÉ&ÐulÓÜzƒs»s ›-Ì?g?¹n×9GQÌf3âDÓŽ#²LÓN51Ð@´2¿|4\èõ^ŽfAÝ ‚O¡íáÖõ“јC×/ÐRŠ|b©i#㈥ýK0jKšÄ,´Ø¤DÉP³ÔOP±$žÊMÞ£”âšå„§Î<„X\àÐU'ЊT¢ZP{³a ÚRRF8o°VR–5Q!„‡bŸÇ1:ö€!RÐÍ ºí˜¶r$©Å‹”Tw’DOæA. à§“ÑÁ¥UB ûY®6¹2yùÚ_þϯºåá}„ª*h·ÛÜtËm|Ó7}+Dh6·¶™Ž¶qUM>•ì fä…¥²tçͪ"áš8Þ ´8<Îyœ7o”&†ãÁj–ÆôÛ-´ðH‘$-\&@¸|L/ñ$Ò Z@äi"’­+øªiuèêƒÀê² ˜gÏ¿ãZþú¡qÓm÷rqs‡ ZÇ «7.ˆEJ$,¹µLóëÞ9â$Áב¨Pªé\«‰Pµ ªJt'!m)´¨ˆ” M‡ $T ²„ºïX»xÑ`§Žúg;wï{Þýîþ“·¼gkT”pìèn¸îZö­¬0žL‘Ãˈq1$Rš~+%'G¨ˆvÖÁŠ KB")„X[Õa J¤°˜J/±¾ÉìB¬ ï4)U³…Yi¤Ž‘ÂɈ¢†InޝZ¨¬¹Ñ³;+IS¬1×9ïøîplƒ ‚èAü-•8¹µµµ¨µ&Ë2Ð!L“Ec˜×ºj­©ëzÞ:Ygj†Ã!ÊAš¦Ló íV_•´z=°–;o»“?É ×ßĹ)gÏžåâ•Ã2ê uŒ—£Éd¯>¸Õj5™a¥æY2E'í¢ŒFC²IL7×—“¶<Ýê|Ê9K½>‡÷ i§Mö Zƒ)¹té“Éôy, nup=pýdÆ¡ápåy~Ø{樂W’$1Ýn÷l§#O)Á£À#1¬=Ë‚Ühggç~í×~-ˆ¢ˆÅÅEŽ9B–e{ÙÔédBÚîá|S?[Q§2ʨ}Šñ1MQK’(AX3¢™™û‰u·€u®™çlmóÏðþ“2ºJ©Ozh­‘Rb­e6+кùqÅPÑÞS (­Î}—÷öw„P®LAAtƒ þvá•ìl¤BC+–ÍÕ{LYщ0#‘#r›ã¢ˆÚ”Dà-žÖ(¡hwz@E–8¨ˆ(j .FkÇן`cs­ÇÏRNf¬ªŒ……¥Q”uMm ZK ¢B)‰”­%ÎÕ¸üQ’àª!ÓZ` I]LAæã¨f9ÊÁ­×ÝJKVÔÓáÌŠs;~‚Ù`ÌæÚ:…yæ4\6pˬ²_Yö+zô±[Ÿ:saéä§X_Û¢¬  ñB|üëAâèv»<°Â5×^µyà ×}øª#ÿ¬Ý‰ßÚ‹xèsþ”õþïýá›Þô ÎS9+«‹,//Óítˆ£ˆ¢˜1-,Ž^EQC”ÅT¦FXC–µH[1N§h‘à£Z*f45"cp•DŠ)AÀ!…Á׋§iËÞ7ÇÅ ‰ DI— NhœJÐqŒ•)¥‹©«-: KÈùáT€³©šhWH‰Çÿ”Á¿3B”áÚA„@7‚ào3à}Qv7…Ö@MUUhÝ¡‘Q„sÓ½ìTô‰³o½§(›î²‹¾‹QÓ'ÏÁiÍœÒíá“=ÉæÆëŽšiáAe¥1^âDóüNÀt:%Ib´n:+WUE^ X^^þ¤ Q„5U™Ðëõ8tèãñ˜Í+ëì[‰M9sùòe677‘që3ºæ–:õ—ÖÖ¾ýÁ?ôÅïàä©3@EÔ•§¨ Ö@QÖäyMmíÞköÞ£e“Å,Æ$®…ëuÑí”$1”DfŠÒ Õ¤`ý©)u%)¬`jSSRŠœÒ[ʲd8ÈxijÆÆ£ #Pƒ§,k¬SØÒÑ’ŠˆˆV;£Ý_`q¡ƒ‰ÃÈ”YÑF銼š"ºxøÂÒŽ8ØÓìlosíÁãl_Øacm‹Ú dm?s7<ßøÔÙÍüƒ7ÿÑxàC8©„²TŒ'UÓ(i>8W£#Hãš-è÷ûLg5† % Ç3òŸͻÞõ¡ø¯xäK—÷½íK_ò’—|ðó^x×ψùÏ¥óÕÀ·½ów^w"^¦¯ i‹«â.G“¦ª‹•}Ri(†OqÍÁ”C3Ôâ qÕâòS%U1†Y5"ëwˆˆ€_Id¥¨‰Q6¦r¹/p±¢”gŠeueç ©æc…üÁß~Ñ‹^ô~Þ½7ý`Ïþ-ÍâõõÙÿý®w½‹º®yî}Ïc0pdÿ8€:zx~“ &k–——‰[-Œ÷Üpà dj“µË\=C§-Ò4Eøá›±BÕ$U}3#ÚJ‡·‚Z6µ¹Þx@àØ t…Ì›1#çà]»çå'~Î9Gí ˆèãï#Øûõüko‚¯~7\‚ B Aü -ïßw.j¥ä•‘,d(|œQ¹Š$’¼Q5?•×5XO+‰1Z!HQ%µÄ[ðµ[YHlE)ZäR0LË‚$Îè÷ûD­¥µL§%Y’~ò¶Ï½ ¡Ù2jmÝlY–åÎy¼u{[F½—8/ðR‘e Q`UÎɳWØV¬­o3›LêÕ}/|Ú×åá¿÷=ïxÇËÿÛ¯þz4šÎk“=“É&QÚg©›RÔ¥€Bª&Š{¤iÄêêÕô»ª|“V·O7>„žUͺMJ$žåV‡¸7Å{OUçÄqÌÆå+üÅ[ÿô+ýØG_øÍßðüë½èÕŸÍç©°õKþìO^{½³Á×/óœ;úXÛ!­:s3+ÅêR~¿O÷Ða@¢ª çºázÆñ½É·ÑY[yð '%N{d%‘„Thã*HðH/©Å—k=Þ7°b÷œuMM¯r*èX¢"‰ÔEä:fê ]‘þäX×3Û(øû!Ð ‚ B Að· ”:µ±±Až¯6m`•‚8Fìf¸L Bà…Â;ƒT„­h·ÛLgFT»µ¤MM£pͯwƒW€,ËÈ¢6JÆ8ÿñšÈ$IöêsÍc^‡Û4jºÝ !Îàx×l!µÖ6óJoºîáœ#¯r”µäyÎDO ŒF£Q«ÕºüiYXo–â?ýÊkþóßù£?ú#’(Eë„8Ž‘‘Ä+Š[:|Ý…ý?q3'O>ÁG>ú««« ++‹h­‰ã˜cG®ÃÃúæ6SWàœCkM«•²´´Êªœ>}šÃ‡3‰Ú-¢(b{{{ñ·~ë·^ußç=ÿÎ;n¹îŸE’égãy*„ø»÷ß?Ký>7ÝtB(Ö›ó ¥8räÎç={µAÄ)–f–mš¦,Å.nSúí R(œ!›ì¬sÎI¼h¶$×ó9ºž¨9Ýî•OØað 5½2’{u¹ŸX§«µhêsÁ©¦Û2ÿ]_4±—Úå påMÈäÑp… ‚ nAð7ÐÝ·üX{¡Ç`\ *ÔÑI‡R[4A3Ò)Ðpa+f£!•"Z=Já(•ÀÌË`¥óh#ðV1Å#¤BJ…÷‚¢®pÖ€8+ðóy÷!`=Þ4ñ€pÍ“Z Þyœ3TU…­+L]SÔ†v–Òë. ë)ÃéŒË—ÀLhg LóŠ­ÁùÃG¯Ú|º×ÔŽGWO¦;¿õ_^óêç~àƒïe_+åðáx§•9Z(Ž_{GŽ]ÇÍÏy>Yg™ãW/¶Ljn¿ý.ta­åÉ3§ØyJÕ¢Ûí"— Ô7›`Ê’Y9e¸>$I5×Þt;E9!k/päð~Šñ”Íuâ´ÇGNžþâ¼öÞ;oý{=ÍÅϦsÔ[·ôÄcQµ³Á¾lËš¢­yä¡B•qèÐ!žwËqÒŽ"Yíná|—1 …¬3›L˜C’µÐJ£½ ³§Á pÔ¼x% –(“xƒ@P#]„—ÍM?Ÿ$”Ùl_ŽbŠ4(—M)¥^”ÞQâ©„@}bJ9œHbDý2nAtƒ ‚¿‘v¿òøñã“Kk-JÄ Î;´€E ð4D[Õ(_RކŒ%y^£â.EQ—žÜ3em0µÇ‹©!J2òYEYÌBã¤@ÉëeiÐqô?ý÷Éy–Ëã›ÀÂ[¬±ÔuI]×T¦Æ9G¿ß§ßï#…c¸9d2™0Iµa<ï>>rË]Ï7Ok[LoÇoøõ×ÿ·›>úÑ’eÞX–––ØÞÑëõ¸ö†›8qã-ä%L&¶vf<|ò,Ož½BUUœ9s†áhÄd2a2‘$ ýqŸååeVV–š9ã”jš% e5c2™°²º@;IqÎò-ßü%üÙ_|µµ5²,ãòåË/ý˜Öoº÷ο&æ³'ØR>ÿmo{Ûc 'Nœ ÕjQ Á… ÈôJ3^¨Ûåä©'8Rz«‘­EÐ ÎVHÝ£ªª½ìª@iHÑ EÝü0¡=DœU€@Z‡·ÍŽ‚X4™\‰ØÛIм_vgè6£H4Ýù èf[sskÝd‰­· ôÞÝÝó[|âffï¿ÁÏ…+TAtƒ ‚¿ª˜žK:ÝǶ/¸»'SA¿ƒ×$:Çc18b ñ£u9¥(ݤjeL'3ŒñT¬uÔÆãj´ a<3;ÃYA$u³Ý¸²XQ¡£„,‘Ô¶Ù’lìöEÞ­×mÆ»4[—½sØ2§(r|mÂ+ùˆL´1uEJI»ß&.úŒ¶×yüäcL§‹KûÞõô®f}lkíòïý‡Wþ7ìl¬¡]‰®ûöíÃæ9½n›{Ÿû|V_b̨ ¶0**ήm3ªj¬L¸<ÈñDèî~Úé£áŒé@qns“n¯E«•"UŠqï"²Å%0%¹MX颕%L,¼ø‹îá-o}„¸ËË}ê:¿û>ù‡wÝvã—·4ëŸ ç¨-ò/|ì¡GÉhqë‰EZ~‡<±Š´GЇßÂ`0ⱇO²y¹Å¾CŠã/è‹ áV@tQIA¬í8bwšvP‡mI¼s%)´%¥kb@T)Z¥xáð¢Fz4a ’fÔ–Žæ;"Š"ši]JG ©öôbA,%ÒºOúéew:¯`>¦øçÔåæÁ(Y¹®RA!Ð ‚ þ7Å­{Ë-·¼ý=gº{:Ҟ̷g‹€EÒl#vÆ +Ë•+Wˆ| åZÄq¯ÃáÒ8ŠÂQø¦ s]y| Ò*¬«%uõ‰Í£>^{[UŽÝmËê“êu­mÂ^‡oj1½¥®kʲc‰cRŠ~¿K«Õb}4¤( ¤+)Š‚ÉdÂöÖiš×^{íýOc»8÷ßý»wƒ)¦”³ ½½,ÝË$¶û ÜvÛmT"a}0¤×ë±31¬­­1™”@D¯×CÆÃ!eYáœmÆ Í·Ê–eÉèâ6JIú m’X#ÁKO·ÓjµØÞÞæ@² X_°´´DÔ²H)éöûÄÎÞõÔSOýÚ±C¾¦¥Ïèy»E>ãíÁÝW®\áÈÂ"qÓét˜œž4ݹ£ˆë¯¿ž­­‡F¨$æzq CE 6Fx¡µ&ŠÀ¹&“Z!­Tµ¤–K ëÀù%$U ÌP9çðr·ë²oꨓùÖcÍüïÄqðJ Q$HÐh¤Ÿôý'ëî¾?€Eïý@tƒ B AüM\íôÖ?xãœ<¹Îjg?Ÿù(WO’¬®/w ³šáÙKd•BII>Íɺ&eIU:¦³Dx0eŽ1kÀ•gE)÷‚km3{T)ͨ! ÝéPÕå<°•8kQQÜlQvŽ$I¨«’ª(ÐRb|«K´6Tƒ1&*ˆ§Ûìl^ •ž¨œ2[¿„›ÍØšäøæo{áãO×–EñK?úÃ?rïh4À×%Gí§›¥”Óý~©c”jñ±GN³|ø*#Ç¥í5¶sÇ´ŽˆÚÞjtìÉ+ìôP‘Řk¢²Ha1¶FFÍÖòQ‰”eh fôz=Æ¥¢ÛíRmlL.’$-:iŸVG³° éÆ‚¶‚j²ý¥“ñð§ÛYú}Ïäs3m% '/¿1Ö–£"d¤©e}Ûbõ>Të 냄ӧµT‡}®ÆÌÏ¡æ'EË["SÑŽœƒ¢˜¡‹œÂYân¥,¥Ú™Ñmµ(¼'÷g@á±Â‘ ‰Ä¡•G hªJ`m÷–(–xïÑZ’¤ž8RHYGi Ú”ôMD?´%Ä{±­C!i&ðúfœ–s !N[wo W¨ ‚èAªÕúÀ¾}ûÞÙÙ¹e{{›¢(8wîÇ#MÜquÍι+˜Â EÆd2AÒ¢,KòÚ3™Õ¥Èóœ™óx§pNaŒÃ™&Ðõ*Ú«k´¶iæ#„@ª¥N· Ëc RÇMfW˜¦ã²”L§Sâ¨édëLÍl6ce©×ÔPÆ1ëëë`*Œ1ŒËÃímò<Ç9GÇo|î}÷ù§cý<õ?úýßÿýo;yò$½,áðþý<ïyÏe2Üa¸µŽ‚´Ý`ss“Qå™U‚Âk’¤K/ÒV k‰«,R °MG`À›¦FÙ{‰Gâ= ä^Wjï}óZMÅd2aœèv»,/¯’Å RJÒTÐJ ÐR}(fß›Ï&ïne7)›‚ÛÃÕ)‚ ºAÁßT¼RÜõâ/ÿ·ÿáþÄãg¶X‰ûØÍ-.Mž µ¾ÓŒª½î*n1œpÊ1®r&µaZxl¬°•Ex‹uÖIœ±Ò7õºUµäzïQ¾©iŒ•'’ÂLÀÅàr¤—HQƒWXc±Æ`EóÃ1­0å AE \9¦®B¨¦ë¯Œ^)j©€á„ÉH¨’63g0€–MàœD )fãÁ+µô÷Gi÷Ê3ñÔÞ]uêÉSR±ÆêòA*ˆ­QE´RÒYéÐY8Ôt£Î<{ÕÒ])‘´Iˆ±z„Žg¤NÒ1_–RM4ß.|ážyŠéùŽ^{3‘Ó”©bb=¹Rúm¨ŠÕ´dS“ë¥Â˜f´•s0¤iJ¤òD‘"NšQC±d¾¤í2Ý"“µ{ËE45ºb7ûìH²Ìè„ëSÁ³” KAð·wÓ­·¾>ŽãË—/S–Ívز, !X\\¤ÝnϨ‡ÙlÆl6£(š™®ÓécšìkY–äy¾”eIUUÔuÝlC®ª½9°J)œsŒÇcò<ß›»»û<»Ï( Œ1ôz=â8æðáÔeÉl6cccc>W¶™;  TUE–eoø'ßÿ//|ª×̺RÔ¦þé׿þõ Qá½çøñã>|!‡Â{Ï5×\C¯×#˲ùLUM»Ý¦ÓéÐjµhµZóºÎˆ8Ž?鑦éÞ#I’$ù¾&Š¢½:àÝ?ÇñÞVqçš,bQ€åãã[çÿ–CÀ>c¿ÉGÑþ¢(ˆ¢ˆv»½—¹^YY!I†Ã!ÖZVVVˆ¢fÖmÔjQÙj¯¹“÷žÉ¤™¥\‘ŽpÞQ›š^Öcÿþý>|xo&3@¿/è÷d¤i²·¦»7l„DQDš¦óŽËÑÞú·Z IÑj  ÕJˆ"B|¼"×ïÆºóÎâž·aFP—y÷ô¹+q¸:A<;…ŒnÁ§B´pvß­÷üêå¿÷ûž8¿ÅñNÍ 7Ü@á û{Aé“Ú"»‹ìäCj瘖Þ™y@Ub­EZ’Î8f^PVfÞéV"L Ö¢UJª#¤h,ei %=Fxjk°¦™¡ë¼'JêÙ“ç=v˜•….ƒ,/t8wjB¬ Ók±¾v [ŒF#66”BSŠVuËõ·¿úéX2%ä¿îµ¯ýº‹O#ŠîxÎÝ|ý7~ÎÕœyê4O^Þ N4_üyŸÇㄦe‰ &I2nal„"BÇ©l„’YWæÁ”T”Þ7åÌÒãœÀ{½×¸HAÇÍVZ-2 0ÎR™š¢*qLaf~XâÁ;²¬ðE1û¯iš½ÿ™wbºC¶,È¢œÄǸh£rVö/±ººÊxG±9Ü!^^aˆ'ò#ˆk’ª¡™n¬oákìt8xÝÕPo!#…Ô’í­‹\³¸Ê…+먺æÄêa.íÌäWB];ò<'U–PTØÚc}sÃÇùfý“4B+ƒrí$ÒA1ª¨•¤µ°ˆÉ…ÄÜ<ÆÝ}Xo‰„Æ[À›€œ²³y~1í.Àõp ‚ nAð7ô%_ò%¯ü¥wþé·g‘YœÉŠÁ`Àꑃ\¹|™VÖ¦³ºÕÕ%To…Qý$ë[f³Þ5õ‘»ÙZ­SDQU¹qH5u·R"æµQEÍìܽBÆ`„LJõ`-”u 4Ýh¯»î:ÚÏ• gé÷ûh­(Ë’þò“ÉSHg  ‡C†Ã!Rªÿú#¯ø™êWˈóçÏÿàþáâœã†nàÛ¿ýÛY]YbmíI’`­¥Ýâ†nàòåËœ¿<&7ÍëQR¢PH+IÓé«Âáxg>Þ¥ÚÆ»ÝxçÛ¿›låîúíf„µn:+ýñc2™Lð~±™áê Æ´M=($Þ›¾ææÖugkk‹®t¤iŠ÷ž$I8vìXS/>ðMó­ªjºjN÷{3”S6ç›Ò ,»3†Úí6Bi:Äc§Î“dKóŒ­ãܹ‹¬¦ÄqŒ)Êù \^áhº‚»ùqÒ“e­$¦ÝIÉÚ1EQžTG †ЬE‘Dôâ”Øº&ܵÛMˆ&ò•ðlnnŠÒÇ"\™‚ B Aü-´’ìì}_ú•?û¡¿øÃŸOJt”ñäOÑ[Z@¶ýNZ}ÈÚ´¤­‡l›f+©ÈgôÛL¤™M+ê|Je=µõ$q_—8!P’&ûè-¶Ì›@ÍY†ëT¤Š¨x!q"ÂyБ¢ßmsìà Ö–Œ†º)±Ö(“<ãØÙÙf0Í©UŒl-n?ÿ…÷ýÔÓ²XÆ~Á[þèÍ_PæGã[¿õïrôª¬­]bs0aVö­R PY‡¬ WµöãTÂù+3ʪ Šj¢¤M'n#k‹²€)Þ!á[œqv/°•R œØ«—´Öññ,oEè¨ù89¼’Q׃Tr/ÈE”Ö‘‡¿Ϭ@J)¤”Ìf3â^‡cÇŽáWWÙX›ÒϨªŠ…´K–eD¦h²µ(0†¢0Ôu ¾é¾µÔu…Š›.à“á&½lWL©+É¥µ›››”^SׂQ‘cjHUŠ`¾%Ü8*kÈmŸ4™XG8ç¨ë¼é¢ÜkïeÚ¥”XçBEí,Õ¬d<³±Q2ŠåńԨ2GD75ð&‰j®JA!Ð ‚ þ¶²…ÙWçÿóáç~â/½0Ko¸f±éÙHjº[S&UEîº5¦1SÓVÆ™­-.?Y°ººJÿæ«im¬‘¯m0Ý\‡DaŒÇZŠ"ªáPª©3MdBe‹ù!P*aay?•õ½êÖ××YSba9~âgΜaëâÓé”"3™L¾ÙækˆlÀË·|Çw|ûkžŽ%*(ÿõýöUÓ+ÜyÛsé'1zÿïS×5#}‚´³ÄBi‘Êsô`›H䏸Öe˜HS¦ "Q8ßÂø ˜¤†D&Há‘^á•ÁGM‹ÒV(Q£iºW;oÞ#Ün.X!Z⣧4NE8)©œdTƬ嚨Óü]Ûµä@'¦iàj‰T|}á×~q3­,ÙRŸ«Ë’¬Û%ÊpÆ!RMá ²lñpŒ‹—xj£$lb¼Â¢) œbŒ¢0ŽY^bZ‡J¡„ ™Í¨«œ„$‘h¥±±…ªé–lŒÁC?ícLõñÆaóUN4c³´ˆHMD”Œ(óJj$Öö‰z=jQ2(.°Ò7`,fæÑfÑ·ê%.JA!Ð ‚ >ŽßxÛû¾á¾á_½ñ7_ÿÊ3gΰ²²ÂHo!’Ñê‘ï ™q ¡2ØÜØ¡( Æã1ýn»édë K½ò<ÇZËx:E©&[–%Ngon]׌ÇcZÝ–——¹¼¾Éã?NE´¢¦ÑUš¦œ={–º,öžÃZK)vvvØÜÜD)uþöÛoÿ¿¿ä˾Ô=MKô¥õWÕOÓ”N§³×åYA•V´ÛmºÝŒ¥å>I2ÅZƒR cW¶®0›9âþ2i±=c¡Û…"oÎ6럋ó†X5™Cɼ믓8çó1M~žVZÌç»î>šúg¥yÓiÎÖÖ&/ ¸ã¶ýBH€cyž¿8íð¦gʹØét¶:D±~¥™¥PU `m{ˆ‚étD«ÕbåÀ²Õ¢ð%BVVVȧ‚QÕ¬WžçTV`¼¢¨=yí©½ ®%ImUåp°×ͺ×ë1ªå^Çl­52Nöj¦™-4åµÍñ˜o+—M³ªV+ÃW†²,i¥)¶žQUÍÌ㥥%âØ£T~ÞSUQmÔu= W¤ ‚èAŸ"÷}Ù7üâßÿÛNŸ~⻜š²±=¥Ýn³zø(v¼Cgi•vœqêÜTÜBÆ1ÝT2™ lL(G)Y"Ù·Q½Dšvš¶QDm /^dÿ¡ÄZòä“O6ͪ’”­áhE¤ʲd’ï°ººÊÛÿâÏÙÙÚ$‰çœa8ÌI’„,˦KKKÿçÏüÜÏž{ºÖf{xùË>òþ÷°²Ø#IR¬u”¹'Ib¤©¡*‰ZŠn ZGTÞ4ÿNí(« qš¦‘BË•´TÂxR¡bM,,&¶T•§Œ El¨SOkjI°á0Æb­Ç¹ÝmÊ?ï¬dS­…!–-›Nu]1Ú±t$hSfm |ì!î¸íöæ…9P˜/†gN +„Øl^W„°%íXRm\ ÞwÝØ³á œuŒg°#|ƒQ¤® ã¤M¢$ËË‹Ô.jÆ^yK$d¤ÐNa¼¤š¼yQamIYãQJ ELoaå“›‰¦z÷&4 Æœ3Mm´oú[ Át´AKÇu×u!Ș–³*¡ÛNÈâ\E>ØâÂù5fùdø’¯ya®FAÏNaŽnÁÓä{¿÷{ÿqš¦òøã#„`0°½½MQÔuM’$,--íÍ)m2W­½¹¸“É„étÊÙ³gFŒF#ªªÂ˜f›q]×Í8")¹páÝn—k®¹†#GŽÌ»*k¶¶¶°ÖrõÕWóâ¿k-‹‹‹ó¹°Å^€¡”b08!ÄßÍk^ýΧkM*ê·>ô¡{ªªâÀ(¥˜ÍfÔu”r¯Û²µ–+W®à½C …Åbœ!Žã½9ÀÖzÒ4A)æ3q?Þ=9Š¢ÿanîîïw?·ûu»ó[w?¿›uÜ­«µ¦×ëá½gss!Y–±¼¼Ìd2™pm´Ûíî SÏ”sÐZ{JJi„lmmaæ7HÈó¦î6Žc²,#MÓ¦7Ï›ÉÖâç[‹w×á×íÔ×?7˜WWW9xð `ß¾}$I²÷õ»fwîn]×{3¤›`·™û¼ûÿvß/»n:RÓé”®\Ùäüùu¬5 u]³³³ÃÚÚÚÙp ‚ xö Ý ‚§‰è*ÿõ¿ý™oúWßÿ¿ý±ÇO}ùòò2#sŽCÒ_^¤*Ǭ.¤d8ea©¤¡žL©«zÞ¬*¦®&Ø‚ÍшÊ6[lÛí6ÕtÊ4™ÑÏ:îÂâb‹ÕÕ%ªªbm}¢s´#¸þúãÜsëM<ùä“ÔňíímÒ8ÁYË,¯ñα±~…º®ÿñ[Þòæß|:×$Â\÷èG>p|¥­9´˜AST:—$ôuÓp+SW.ŸåÐw!Pße¸3ÄÛ˜T¥HAiˆ#ÍÚöK«Kä%ͶUï›Ll ¢Œq¢"&¡®<˜?æ•9ßÚì1 ^ œÖ¸H#”B0%“9Õ´bùк=¨gX]á#|;î|8‹Òöº|²uõbŸSÏ„sP)uñÆo\;5xüðd’ÓNúL†W(7Ïa t_W”.g±Û&–éöZñ-Õ4øŠ½fks„J²fæp”€LqÆA]ãœC©cAJ^à…ÀY¨êcjœjfçBk¬PŸ”áÅ53…l>çÀK‰ójK’Xf³¼ ~+PqŸñl†Všlª1Ó:Òq¤g jÆ£‚K¯<®BA!Ð ‚ ž‹ûŽŒäG~ä›~ô‡þå¯M§Ó¯­åäɓ̪‚ç½ðóYÝ¿Ÿnwõ­M¬<òØI˜Ìrʲäî»ïf0pîì…¦žAUUM}©”ÔuME:¸#GŽ$ ¬¬¬´{̪Š,ËøÐ‡>Äý÷ß¿[»@]×äù cLÞjµþÑ›Þôû¯û4,É/^”»>E!H’¦fs7Ó—çMPÓŸ%$eY§ QáeÓ%ÙGMçöö(é‘eKÜ ò”‚4‰©ÖhWUu-<3]`tã7žzâ½o:<™Lˆãï=kkkTÑ"2[`6›¡ª±WèùkÒu¯*&9EQ1®ªj[¡@–Ô^POíeUbP8ßÔH[‚sŽåþ1ʲdPN1Œ7H#¤þ¤@×yÓüÞ~/Ðõ4uÑÖ57`Tï¿Æ>qøƒ1c*¬µómæb¯IUžçôû}²,ChÅx 6ßÒét~éwßø{÷&_³"rQÒ&‘†}‹m6·¶˜Œ§,.\E]ìpîÒSW$-Ád¼Eg9C&Ã5ªÉ Ç´Ó ¼!.ÝFššD§\µÿ*Tm]Üd¼5!‹N,íc}4@Ê!‘hêE¥lêBQ’V«­ãM…q–b6%Ïs %AÆùˆº®Ñf‰¸ÓgíÊ€LJ:ÆëÔõZ’KÖP¾ûŒ;×nyÎó~ë­o~ûw]œ¬QoÌh·÷1MieÛl<9¡¥N0Ë® «««¤KW³µµÅ87ll_`–´°F`±H NT˜Úc…D©ãÞJ¼ðx_áx§ðó5VÔ(4­¤ˆ‘‘£š–ÔÖ`ИÝ9Æx´xçæÛÔËfô«ñÞ»’ÔNˆ¥cT\$mKŠb‚2;ä““Íu]¿ï¾¿ä¡gº{W]oŒùáw¼ç£ßòö·½S]¸t‘$n3œÍ˜•!c&E…T-, /4V*P/T¤AÆTJ"“6•Ѝ‰ˆD‚N4•”T•$‰%ÂG|ø‰áGμëû¯?±ÿÛï½ë–_8z${åäájAtƒ ‚O«ÃW]3û¡—ÿÛ×<ø÷ýê{ßûÞ/üÐ~sU¹—¦izØ9™7KšÍfÍä¨éV¬ó޵çÝn[VÅŒápHQÖÎ{ÿÑ$k¿©ÝnÿÖk~åU'Ÿ ¯·®k©µž×Á â8FÍG)ºúz9Ép8$Š"Š¢ #õp¸—yF¤YÖžZ#kÐqÄÎÚ2nóÀƒïãâæˆ²–$–+šL#¢i~TÍgïvýuó ¸5RJLÝt¶öR~ïß»;ßu6›!µÆè¦æ·ª*Ê­-666°ÖúgÚyµ¢w^}õÕ>öøƒÏÉóœÅh‘^¯Çææ&N‡+W®pó]w@ºÚdØ[-ʲds8£ß[j¶{[ ”ÔÎR•'I"0ø&#‰ï°Þá%QJ‘´š7š:sƒÒM½µqï2jêÎݼ¦w·û²›”RRUª“2 ÐÊç9³²d20N1UEžç¯ùÖïúû™]q#­1ÿï… þÍ«^õªåGÏl°¼´ï=[[[¨4ÝËT·²Ö5 ½NhPº¹! Uóù¸™õ ïš›»3Ÿ#!‰4ÔuE5µÏgÏž]ݸrö'o½åúoxþ½·ÿóå˜w„«m!Ð ‚ >ížsïóËçÜûü·oùË·½}å¸çÌ™3/5÷¤it]GUÁ¤VX鬠¶M€6ŸÿZ׳ñ¨ÎËó¦®N£è}G®>ôî[n¹åc_÷-×<“^§Éë:%Mc0ý¸$ëÖL×N;ÄÂB¥ËmM–¥PæDÒÙˆbUm8ùø%„n‘׎8kS•„b6+©Ì³©Gªú‹ Ô•es0¢PM„Pç%5ËȬ,ˆúË“3x‘2-,¦/ Šš‘JÖ€à!š.ÖÌkm½¯Q‘F‘IÑÌÀ•x§ˆ|F4ïÆ,•"/ó½ Öœ›oÁ7ófT‰ÄáÀÔøÑ-rÚ³FÔlo¬1Zßa2É1¥:sóM·¿é3{’—ÇPê?ýîoýöË~ý×,ËX\8Îtš7ïYQ*nÑëu˜• â)RœŒ@h )b¼’MWkð)R)tœ"ã§•”ÇÈDE# ¥„¨%±>|¦¼ë£O¾ïO¿è…×þø½'V~"\iƒ nAðó’/|éæK¾ð¥oÞ ðîûßÓ>÷؃û«ªZ™ÅÑ|Vɲ¶^)%£XM¢(:·Ðko\Ý¿ýÅ_û Õ3ùµYkÏïÎŽ¢ˆÕÕÕf®¯î5£ûG¹ñÆQãSdÝ.Ô5àX\\¤?.ñ²_3‘q‹ÉdBUZò¢B R#¥¢(K“uâ(%Žc½[ó¨""ÓM†V =ŸÕk‰ã˜ª*Á”{ãnŒwó^M]ÄqS#½¹¹ÉþÅ„n·ËÆÅ5®9~¦Î7‘ÏÈf@ûøí«¯¾ú_<þèÉVE†s’ãÇSÎ9Ξ=˾ÛϹûnÞÿþ¿&Ë2^}5·Ýv›÷˜ñ(g4³;7Ò)N ¬­pÞ75¹ð ‡G Õl[Vj¯k¶·)åÞšVUÝÔ÷Öõ^vÝZ»W«kê²É¬ ‰sŠÑhÄârŸ,Í0¦Äֆ˗/“ç9£ÑˆDeÿþ‡þÝ?c‹ìÍ};;;¿öc/ùÕ—.]¢Ýn#¥d2™ ãæ\T("*É*!J‰ŸºNh¼hºV;)Bãe³ bw=Õ¼‘šÔš4MÓdy£˜TK´v(åiµzY?òÈ#ÿ®ž¹õ¦›O|Ï¢f®²A„@7‚ øŒ{á‹^0}á‹^ð$ð$ðþÏæ×²´´´Q[Íp:&V5‹mÊZìlN(F¹îS›%&yÎBU ZÊõ-’¨ Ú’µ3¬Ö8kQ6¶vØXô#fÓŠ$Ël!бEIi’‘zw’3ot$橤³Ôåá ‘Ô[¡ j,5i’ÐŽS¶òg›®69½þ~Ξ=K1ÄQzîúú5ßø­?ù3?û“¿ZÍ,ÇV—ˆª!U>Å뜧žØ¡zÏ{yîsŸK’µ©¬ã©'egëYï:<ã,Ó锺²xW"µÆûzÞm„’"©k"©I´ÇÕS¢(¢r5J ªY…ŒRªb‚5'TU§Ø­Ég3„ð¤iŠŒ-ÆH[“¸?ã†C†[ /¯áè LúðÝÏÿâ_ùŒ­¯³_öÉÓ¯{Å+^ÑY»t™ªª¸úøqŒ1ä"E§Ù¼&S×ÿøÑã¿~ï½÷þ_¿ã¯_²¶¶ÆÕ­…¦«7µºÄ»ßýn677I³ÖZ²,#MSvæ5âKKKÄqÌt’7Í¢ÊÝŒkÓÁZx‰MS*)åüC]×!šÚfa˜æ­NŸ²,‘"f6#¥¤¿°ÀÂÂùlÂ… xïY]\ÀÓÌÎóœ‹çN3N¹¸vç“Ù碗ÿÀý?“ÏÈÂz÷-ÎûÕŸø‰Ÿˆ.]ºD]”dYF–eÍØÖ¼ž9Aèë¡ÕJÉ¢/[$^áH°bÞÍ…w‡¯Áêfl˜·˜ùléÝuL&ĶÙièk-J¥ô:m¢("Ñ ¤âúë¯ÇØúE'Ož{óuWùÊ¥– Án!Ð ‚ ‚OÉ7Nöè­W]ë?,I©½CZ ǯC¿‹…Q3õ¨)|NIÇ ³|D ÅÆ¥uT¶€ àÑ:f2qx+(‹ áA9‰sç%Âk&¾iün&£!Þ;.^¼H>›PU³Ù„Ñhtþæ›oþ¦/ýò—>ýA®»÷•³o|åϾ¢}þÌÌdFUU¤Y‡VÖ¡ŽKËÈZ=zýUzý>ûFê˜VÖÃRÇÄQÒÌVM€ŠÔx4^4ù/ì<‹ÛÔ¨#šJ©yí® Š"„á-Rx¢(¢ÕJiµ펤ßXHR–Ú ‰ðÇ­µ'œPoL"íÃ…)‚ÏE!£A|ú¨trÃí÷<ðÎÇ?pâÂæŒCqƸª ²àJÈ+ª|Hš¦llÈëœ'Îo¡ÓeÒv‹¸Õiö`°u5'4Æ55¸v¾ÕÓ ‰w‹À{ÓŒRàLínýôÌ·zÊoç#m8[â«k*¼÷DqL>«Ôlm H˜y‡µ–Ñh„pimÒ©w¿ä˾Ö<ÓÃ}_ôe?÷ÐG>zï‡xßן»¼A§“ÑjµLs¤,AGl\^£ª*²vç¿àÅ 7¯à½àÊŧÐq tÂp2!kõH":íþ¼¡Wµ7‡¸D0ª%*=ÀtfYÙŒ(Šèôš&M>ò1Ê鍸ðþ 厯åô™SϸêêkHíƒá&¾¶Œ'£ùšo0ŒL»Ýþ?ÿïÿã…Oû":VfÓ׿î5¿Ò?}êÕÔÐI÷5ë¶È² «<ÂÔÜ|Óq¹†Ú)£’µ­²n-àeDe-ÂI„óxãÑF`pHj,8ïqÒÍ›¨)¤ÙŒ{Ò´… ª=Ó¢$Î ÚµAúˆHC§i-èD1Iܧªªoª\ù¤?.LA„@7‚às)Wb)@ôœ•ÚkQCï8Çz¬Ø õô¸ñÆÿøÍãñ7^¼x‘~ÿ§N¢sÜüÿìýw˜eéYž‹ß_Xiç]¹sOOOši$2’Aàƒ}Àc ƒ ‡l“ Æ  ˜d D 6$$ VI(ç0A“gº§sWÚy¯ô…ßkwKö9—#¤­{®ºª«»«¦k½{µŸõ¾ï󺘯CJÉx\u‡Ó!¥>ZW;ŠY–‘–9…PX’[‹ëù¡[ \¼Âø*7­(Ë’¢¨L©µ^ä¶š*·Õâ/æê:Þ•øE‡Ò{O1›Q–%½Fƒ´˜á½§Ýn“çÕîêt:Ńqþí—Ddd¿ûû¾ï»~òß?|ôìÉSOh4bf³q#a6›aEÎòò2£é„;3é¼D {÷îe4Mi´ºdÆÓJSv¶G)ØÜÜDA»ÝÆÃt:¥×érøða¬lpòÄz½^5â,=Íf“¥¥%Šù„»îº‹~»Á ×_S‰ëÅnk†¼æ5¯¡,KòYŠÒ’<Ïj?UJù“uû_¿õ‹tû•¯|åøÀÖÐmµXê,±wÏâF³Êù5à¿ñùÌýÇøÄ§?CVZ­Ív›Ü€—ª,QVP‹hjjjj¡[SSSó¥.nóy EøÕÿ/?òá?ïcŸxhikk‹Áv•Ù) ³e%„d€S )B”ÔpHs¨4ŸyÅe‡ôòË/?÷Ô§_ûÖþRóOº‚w×W÷ÿŒ°œyîsŸûÖ×ýÉï}ËcYºÝ.[[[b&ÓOsðÀeÌfʲ¤ÓépnkADèÀy…u ­ Æ.vn©ön­_U'0Þa¨\•MžÇ1:ˆªZãȲ ¿ös±`,¥ÍÎ#·ëëëÄHI«ÙCëJì*©H’„2ÏøÌg>CžAžçœ9w– XYY®þ®—EÁúÊ ˜œsçÎQsŽ?Î`0`:›aŒ! ;4 ²,c:æ•/xÁ ~ô‹$r×N<ùK¯|å+±Ö’ç9×=áj^ô¢qäê'rþü6JxNާÌçsâ8æ®»îÂkI¯’ƒT¾reLæ•“2Öc±à=VU1ð¤”Xë÷Ïvp/ìê^ºŸ›]l­¥,Ak0Œ_Ë{¨~}ÔÁO?RŸN555'Ä…q˜ššššÇÖ–Ò9ùÍ£ñøGÞð†7Ýò¶w¼ƒ¨Ñ']fYAž§NPzAé%^†è(©¶áÊ%/xìÑûP.Ç›fÂ|>çÜæy»¾¶÷¶ÿøóÿåc—b=yøþ›þãÿÄ«…àªP(<%¡T¶ D\så!VWW9³;f0ÊXÙˆÇNm¡-Ò¢z> !Ða@§Ó¡Ón mÕ Æ1«4¢PXkI’&ÍÑ¢%˜|B¿ÝåÜ©SAÀ|ž¢µ¦,ªññI1EÁp´K–e¿ó‚ç?ïèG~ø‹² mŒû_zÉüw{ß{°&åÈ‘#üðüyö_q 3àÁGl;E¶}Ž`vk-™±$IwFï F÷g!™Ô æyõ¸ËÊ¢2÷2¦×.ªˆ«²\Ä_¹JèúEg¥‘R†!A ƒ€(Šˆ¢ê†N£Óét8tØspUÒõ°@DyA´F·j¸»>jjj/Ô®Ë555#Ü“Ò4}ÕŸþéÿ±_ÿõ_ßsâÄ)tå–ÑÌP x„Ò•€ B„ÔXWíeA@<¶H1y†-sʲ / ;qŒO|ücGN?ñ/šíÞµkký»e=Òüw"l4íœ9þŒñîù#³Ñ€ÙxH¿ß§ßïÓjuã&^D½^Ÿápˆwë<…±Xç°^àï‡)¥1Æb¬Å8(mÕ©]î¶R’æyµ‰/AÈ‹]9»0£2¦Š&’R¢ƒ0 Ég#òtÊerêÄ1¼)Xæ³)£Ñ·ÿâ¯ÿί]ªõXZZ9÷ôÛžò–÷¼ç=7áüaç ÞZ<ž|ž2ïâ½g8³;˜0ÍrÖÖ÷Ñêõ‘:"J‹Žy@ÄQH 4Æ”U¦l3b8â|µ `Kƒ”‚ùt†ÄröôúÝnu=Uö.’Ùl†ŽétêŒ)êöÛßü·=í¶/Š«µ…Ë?zì¿ûò—†6Ïh·|û·;O¸õi8©IÝÝ”Áî6ÅtÌÞ¥ˆ••JkQA¸¸±ÖÝ i-ãu€± U€¢ŠúœN­§úØûÅ^®‹½Üê=‹î-@E„aˆR ­u5‹ë=äðzƒŽå„¨\²¥Æ 4°$áuõéTSSS Ýšššš/l!°ÅO|ôÃzÕÏÿÜÏ_uç'ïbieè˜tnÑQ¥AŠ@+´Š"F‰R5e“(h„M|ž‘ÓP%«-¸âP‡å†¤+ü|Œ49ã->õÉO]7οåÀ‘+GP|¢.Âßžõ=ÎÜþ×oQ3i ]ÉÞµU" Ø#C’v—voW:²tN>ÏXY]^t¶Ù,­F/…G)A:Ÿcm‰’<›#E“Ûˆ>#•@N’g=³4ÅXKQäxï°Ö0ŸÏPJ"‚€v§‘ŠádJ"rö¯.ñ¿á¼çÝï¦È¦˜²`2™2Ž\³×û7_õ5_òR®G»Û>ã™Ï|í©Sg–7··ŸTäëRxò²ds{ã%aÒ ËJJchtZ,÷»¬.u9°wXyzqÀÁµÐSŽìYm‘Mv‘6#o ´t` ´·YF#ŒÈó¼Ú¡Ó4ÇzAšOÎæÓõ–·¼é¾˜×Șüg_þ›¿öŒ­s'¼áI7ßÄóŸû\¢V§C Ç;ÌçÛÄaÎŽ®qùå(­d^JJàU‚Õ :iÆr' Ð%²ŠªnàH¼—¡ªú=ç|%„•¨§‹h!¥ª÷:Ô„Q€:PÅo³á‰´`)V„B /løZ ¡,Wáý›…çêÓ©¦¦¦º5555_l¼Y²eùß^ùGô¯{Ý낼(Ù·ï¥ã4Úcålxó]ŸøÈÕû×ú„ZRA;…bžù_‰5ŽñdLYZ®¼ú*šíÖƒ”š|1æ™Eµ¿äY‰ë@HM«Õ"­5“yFa,i^RZuUžn–emk˜Ò2œLpÎqhc‰Õ~‡Ã‡óÎ;ÞÎöæ9â0¨xžÿ÷ßý£?û¯‹š4[åÓŸõ¬Ûgãá#'Žªó¶Î¦@Õ/Œ£´¥#’F‹ i uH«Ý¦ßïsøð!®8z”k¯¹Šë®¹šÁî!ÿË¥•Î7¿úÕö‘/æµIK·ñØñG~ç^ñû,ðŒ§>…+Ž^Îþýû™•pâÜ&Sã™Ífhåé6B®:²¤dum^†dÐ hö:Áz êb÷Âþ³[[<>Åç8-K¤ÒÉ•R)ÑZ,:ë:¼q\ÐŽ¡ÛH¨Ïùú jáæ|{}:ÕÔÔÔB·¦¦¦æ‹‰K/?ñæWýÞËŸ÷©}ˆ2pýµ×¢¤&7Ð_Z'nt™…è´a¶º‹»ø ƒW=„n ƒ&–/À{ØÏÁ˯" ,ká”ýkMŠù.E>f–îÅ'=wßs÷M¨àéx›†i]˜ÏŸåµõOðCw}Û|w'ê-uØÞÝ¡·¼B¡¦iÁx8â–'ÝÊl´Ë,KÙÞ—©#:ý¦YN^B^:¬k%Y^Ðh¶€³%ÙhïãiF^”ä¥%+J¬5XSÒHҖĤiÖ–zªD…·˜éy6–ºÜs÷]¨@à¥G—8!q( /$Nxêâ› !ZK‚@!@->Ž¢( ÑQ€ $qìA/Ñ4$‹ŽîAÍbdÂó*óútª©©©…nMMMÍ“nžëË^ú›×Ÿ9uš X^^fmc/EÔìÅ-ŠÒÑ]^Ã’0l„aÐ@ :H*FkXDÌà iÁeÄôû]–;1 rÖÝ ¢˜V·K–— ¥fgw÷piܳ×ìûëHˆI] ÏF«³­¬)Ö8„’è0¤Ýn£•ÄÚ’$¦`%»»»L泟{ÚÓžö¿òË¿ú¥² æóì×~ç·~ã59O¾å&†Ã!+«kôz+ˆ¨Áp:&l'xïÙ·wHA£™@ž‘Û€¢TX2h ã2x)°¼¬º·~±;îÕ'äÙ¹Ÿ§B´V;¸J)”V•×Àbd9C‚@ÐH Ò–^ÐÖ «¥ßêk;@^ºM¼¿!î¬O§šššZèÖÔÔÔüCãg{vN=rûüί]3Ù=Íj7¡× DA',¯m ‚¡Tµ–pá2"\B† Ûˆ°S VjJbT€U… paL)"F… —M¢Ö ÓÉ.[SCÒ[a^zZý–VÖ8¿¹IjZÍ„­½wÛú¾}¯ y]¨Ï½‡¯þÄîù³W?râÄõ©)Ð6ã±HïÙÝÞf}ï^šíÛ;¬ ‰Z=lØd0+ا4»+„.Þ íÞ2ãiFÒì'Mq) “ÙœM7YÙ³c ý^—V¬9ýè¬4®:¼Îj'¦˜nÓVQÎ(Ç[4!Çyˆ³çNáŒe6›0™Lþè·¿õçïõ¹îÆ›N~ý7ü߯ÝNß¾µ=païÓJ·ò,Å™%`<Þa8Øf¸½Íp°ËÎöçÎÃZó[¢¨AÒlÖ`Œ!Ïɲ9Ežûápç#ãÉè篿áú÷Ò—ýî{Ÿþ´g~É<‡œ-¯üð»ßù’÷ýÍ_é•VÌþU¢@DË´ºkLò-±Ñ‹HdÎr A´A‡[†ÓQ§ƒŠJÀ ð „vá@Zðàdµ£kQx!°¼P€¨Ä°»¹JWû¸JK‚P†©%*¨~†’°á bA7T45•!$ÎUbkRÿE}2ÕÔÔ\êÔ9º555—¶ˆËtößþðÿðúÉdÂÞ½{‰UÕÍ‚€ é´ZäÒÓ {^1˜C'îEiròR"JEPZ‹ôá?âÿÏ_ô¢ï½÷ž\^äƒ'M&|ì0ÒÜpÃõ71N9w÷Ýx°µ=B'R_í'N&)gÏž% Cº­6ív›F£ÁÆÆZk¤‡bê˜N§xWu~ã8®â†œc{{›pÑa´ÖVeÀZËùóç)Š‚ís{褂|–2ÜÝzßWõWÿÛ/§:}Ç¿ù×ùŽó¯?òžwÿÍO¿ímo{Þ‰'^(¥|šµö€¤ÞÜÜDG1Y–-Vˆµ–0 i$-¼‡étZ¹)‡ïý$M?•å³wîY_}ûm·ÝúÑñ¯þµûRüÞ¥RÏþЇ>+¥¸üòËÉ󜵵5â8f8bˆn·KEL§S–—7Àp€ q‹Û(Šˆã˜ÐH¾à«X, g*Ÿ nÌRJ$b‘§+ªœcá¹¹•û²$A •úœLÝêsƒ R³.ðb)áBƒ×ãÁû§úr¾,ƒFí(_SSS Ýšššš0Dù ¯ø½ßzîÖÖc\¾›®¹œ(ŠØÚÚ¢,'³†@9Th„gês¬Hí(½À»¥4&‡ãgSf®Å¡Ã7°59KS9”ÌÙ™:’x3ZOÃÁÑÇ:óÍ;î§—7V~¹.ØçIm÷'~æ—¿ù%/ùñ·nMçGÛQ@ij6g4؆|Îxfè®ìa4Ëï¦Ì­$n-µV(­cn-ù4g’CŽFMd ‘Σâ&A£ÍtZP8˜¥sZ6í$¤o!LJà4L2¶Çc´Öh!ˆÓs̆S¶Çs‚ ÀÙœl>½ïÀÿü'_ü³_–ûØÏþŠçl>û+žóçÀŸüÃj}êSŸºúرc7R]UZ•snY‡Á¥ÎC‘šé$ƒM!õÉÒ÷+oïÝ¿wã3?ýS¿þØ%r‡íYgΟ“3”ò` (G5ðóꞈ1†Åqü€y‘$A (< KÕaµ€ó …¬”*€¨j•—ép¼÷„a°èÚ~VèV{»)A)A¤A±èÚ.Þ ªÏ¿°¯ €”ämµÐ­©©©…nMMMÍ?Îç­óûÍ;ßñN±Ü=ÐàÚë—Ð…IÙh†GÚ¤§'h)‘…‚3Q‘´°¹¢£›”ÁQäø4%ðžVR9Ò{d+ÂZ‹u|Ĭô˜sszý6. °NÒé4ÉÌ„½7ÐnJL‰–ÖW{tûËÑùÁÉ_ÝÓ:ò•ª¨+øù±ïÚgÞ÷C?±úÂý±zµ-ÝÍ©†$I˜žÒëP+qÈÆr›^LZäŒÇ;„ÌhF]„”¤èrB§¹Ät4BŠ’¢ð„R!̈́ٹ)±Ù%ŒPd~ºËpZÒëõøÌ£§ÉóœélÌÖÖEn(L‰±eÙ‡¯ºêšoýÝßýÝGëJýïyæ3Ÿ™=޾ÕÑèìÍ€kz!Ýb‡µ0AØ"öŒíK®Äf–"Zâüùó|ý³;mla­ÀJƒËrºÝ6¡,q¹£ßˆxl0¦C»³„ 3Qmáæ> ºåÜΩ‘¥Çj‹sk-‡H!ªX¡P†­Zyta¡‚%u޵¢OCkb¡ðB#ìB×"‘¸Ê•JEA6¯«Å555µÐ­©©©ù ,Ëï}Ýë^w”’••e®»îZÚí6…4‚Í•6±m3;9¹÷4 :Ív¦°V† ‡Ç+Ò äg]`ËâB>eÕ™QÎbŒ©„.àJƒð‚<Ï1y޵iKÒí6˜Ïç¬÷"¯8|ø0ºÑ ò‚0±ÏšL'ß²Ôêýq]ÁÏŸƒW^ýàoüÆo|õ/ÿÂþƒù|úõ»»»íƒÁ€þò2a’ç9½^}{ñ^% YfØÙÝ¥×[&Žc»UnE”YŠ1†0¬~ìmnn²³³ƒ3†ùxB Æã1Ïîî.BVy¨X‹‚ÙlúçGŽùÞßýÝßÖú²ãÀ}÷Ý×òÞsàÀšÍ&NÀ0µÄaXå0ÛŒ••:?Â{OÒëàó u(Š‚nw‰vÜdVä„:D X^^æ‘ã'É $½%d¨h6e£= fQ) ¬ Š¢Ê6¶ Ÿ ÌJA¢¢"qW.Ì4 €ª±ë©æË?ÛÑUJá½?: ôÒÒ’©Ë_SSS Ýšššš/ùêñ;?þC§ïþ×]sˆ½‚H@Ù!–@¬Ð\×Äá<>Çp8¦ ÇÐ!Œ4Îå,B „q8©²²õ^ <à% ŠÒU9Ÿv1l)u5[Ú‚ÔX¤Vì JV{k0f¬v›(Ý/A8’XcÓÙ¿÷”¯u.åß‚}G®Þü™_üÅoøí—ýןxä‘G~r>7‹¢`2š0M¸âÊ+9°w{×÷²gÏVVWÁKîàA&ã9“Á.Ãí-\ž“9G³™,n\”H)1EIfR”qT"y¹ß¥Ûï1›L ƒ˜q6ÇãŸ}Ç;ÿæ×ëª|ùÞ{Ù¬Þ‚>Ö8Tà––Hâñæ”<@)d ñ…Ep¥%Cb… YeY @k„ÒcÖ"•Á-öØ)Z „¨/Îb…äÔ gÿ¾&Ýî2^*vÇ–F'2¼±-Áße­ýs¥”¯ ú·çkÿñ?ûØo}ê ^ùÊW¾è“Ÿüä7›Í¼÷<úÈ#{ôQ¼÷3à%Íf“¬ÈQ2ÂÚE,Kh“‚ ¨ ¥Ê…јÖ)AkI«Õ¡,-^(f³Ùû·vvýmïx{-pkúYZ EDK d–²½³ÅÙó›éÂe×\C)#677ÑÌñfcŽ¢ÃGÉé3’íZqƒå%´,ÁM ”“Ó”S:5¦»§ÏF¼ÌæpN9(oÏ™¤sd¤°Öâ¼ Ï™ZGš¦x¡pΑ4"Ê$¡E4š!Dš²,ÑZ¢——qÊÐ\kIÀWSËꢿ•,‡PŒ&çƒñ`3¨K_SSS Ýšššš/J=íŽ;î¸vß¾}¬¯¯Ãá¥D@¯ "ë@ .ô(¤”´ÛmDÔÆxÈsp(`…%²PÕ˜1U‡Cˆj„Y)…1¥ÔE¡k\Q¹™ŠêÏ$ŠvÒÀdF£X0²%IÐkA „ªŸWy®Ò4EA†ÄqŒµ–¢(pΑeY1Þ¦³W<ÿùÏã¿ý¡gë«^³`¹×ë1Ét:´ÖÄqÌt:åìÙ³4——i-7ɲ c*'ð /± W0ŸÏ)sO Ýn·:pÕ‰étû€gmm µphNœx˜Ò%L§9ãÙ#l5à«®«sž8Ž ¢„ Èòyu^9GY–Há˜Ïç8gB`ò1®X'Ô m‘òô1Ý^ƒ@Ê…ÿòg³u'“‰šÏçI]úšššZèÖÔÔÔ|˜ ¶ÿñ™‡îã+žÜ!fÀ‰cÎÏç\Û^¡×^ªZ:€²€`™Én ;YRÑo¬ÑìHȵ@”¡$J(”TÕ˜²P B ¬E•¦2"rï=‘¨º"ñe 8d#¦Õ •%{BMÏ*í^„S ¹xáh²E¡óãµÐý?äšožÿÔ7¿ xÕ+_ñ»·~ô£ýZ¥õ ¼÷×(¥úÎA–O }e¾£”Æ9CÒŒñÞcŒ©²pÓ’ù|¾3ÎïB¼kmcý¯_ñ‡¿ÿ©ú ×üC‡ó9ÚÍ¡ðd鉚ÑW._Ói0…Lí„6!*/ Œˆí˜ØÌI I®$Ö;Ð l€+K¤PØ¢@Åšn£ÍpVðð£sú‘c„ñ :ˆhNšH0Ï3¼ðÌò -5vnªx4#BR8ƒI>SÊÒ3v­vH>·¾Àæ%ZfñãzôÚQèq>G À9ŠùÄû2¯'Pjjjj¡[SSSóÁá=÷Üólk-G¥ÑhpúÁcQḊCF£1{_ º:ÎPU#Šb)ÉÄ1„T8…—xGÕ!±•,•R"Õˆ \Œ .„®ÖUffÇÄqLYV™¼ËËËøÉÆì¦´„A%tuPMÿ5›Í¯~©.êßßþßý±oÿÎïþð³¯þo|xkkëÚÇ;yÕ|>¿&¢%çÜ>)´tÎQ…ÕZŸ*Ër«(Š{»Ýîƒ×^{í}ÿö‡þ]‡[óÿÓZk¢(BkM·Û%އXW¶¦æ’â±F£á²‰…K(…§KˆJˆf³˜=ëËdYÆî¤#‰»M0QäôÛ d* HZ E ëÞh„8£µÁ ³å2] µ&uµR¡$ÖJkª84Y"•¢Zª]L(uÑLÊ ñé%Â9Œ)«X-[RZWÒc˧,g„½6ds&ƒm;»ç7ö^Vwtkjjj¡[SSSó…`<0ư¶¶vÑA7ê¶iv:Ìæs¢(" C(KÐDå¨R<‹l\­Y[[ã±í9wîë{÷ÒnK‚d £4…‚rá\* wÓEG×k´ÖXéÊ#¤A(A’hz-ES[Â2$5)N.fó–¦$ÐÁ…ï犺ª55—§®¾úêÍm>°1›Í°v _–-™FœÛ¢ ´ÖEA>›0m²ÿòËqÎaŒ!Ë,–¡#‚jÔØy°®:§Ê²¡RJšq­5žÊEÙyƒ5{1ךּçót/^ï=BTùàRJ„uØ…+t7I‰P–¢§^x|šâãܹsœ?þ¡ôϾÛÕ¥¯©©©…nMMMÍ€Ñhkm©Ði+D# ¥¤ÅGˆá€f(ˆj NCР ÉóœFKÑj¶@|žÓ“‚g\ÖagT Ò½¤ËnîQ¥£ÙPLÒ‚GA‰qáüBäV#ËZ»Ê´e!ZŽD…,똆&Žf+b²u†þž5”²àòÊ ÆL‘~Êl¼Õ©«ZSsÉ1¼ìò«þ›wès¸L6ñ6¥áCŽÏFiÈrÒ$+<ª±D°ºÉ‰{˜ÏÓ r')&)¾ŒPZà…@–‹ ´PzCn,^h‹‰²Ä–åÅ›m€_ü9Þ"¤D ¤3\ÕÑõ)< B`¬EÆš¼˜aŒã¾@ø‚Tg´|L«ÅxŒ÷–ñö.Û[Ã{ê²×ÔÔÔB·¦¦¦æ õêr8l5ÅîYåZªµ!(Šââ-a>ïÙÜÜÄ9GÜXB.DªCžP‚”¦zñg Ãá„ÍÁŒÝQFá<¦c좣[uY¤¬FÛ­j Y†Q•½ê ­8€2@–mf¸l—k¨^‡š¡?Ûe9wæ,›››A]ÕššK·ººúQà»»»UN­1L'ÒÔÇ {­DétJ1™pòäIr[pòÜ|ûh•Ó½žy™R:ƒõ'¼øÅ•°ýlŒ³¿8<• ¼§êäj]OÞû‹Ó'U§wñ÷‘ZEäp‹.°tཥ0ÓiFS9"%H§C¦Ó1“ÉïýGê²×ÔÔÔB·¦¦¦æ DQÌ•rq$Éý#ÇÄ0óˆB AªÎ?"›PÎ2šÍ&ýæ2à1v ­B°–%V:ØÒqï£2:;¢4]¬ñ'Qxðª= %ÒN(ŠY$dó‚tžaã„BI&Òøf¶Í­W]I1Ùa8Üai¹ƒÔÆlž?Ípw°·®jMÍ¥ÇýGÞ½²vô‡·O=À¹Í”5íw´6X[ÚO»³Âù‡NRfÍfïðÉF·’¤GDHdÁZ‡-3Œu8¥ ’Âu€×H­hï$ˆ¼,F–•‡ *!ÂÙJà.Œªœ)1…!ÕÙÂŒJ!¬Cy‹ð“–dÊ0É2&“ [»[Œ‡£Ó÷ï¯3¿kjjj¡[SSSó…BJéœs‹ŒÈ’v»M·Û…  ÑhÐõ–œ¼k ¨œH§Ó)“É„V;®ºÀÂÀ4ƒ ÀÍfÜûði=³Kj#&% ”¥Ã{…àÇZ‹]¸¦*¥(½¥( ÂHâ\µûÇ1‘cɳœN³É™3g~Âööy†£möì[£ •Œ÷§ëªÖÔ\’|d}}}Óœ}xmgg‡Ò§Üÿý$·⺫V)f%J)Fó9 çþ§N«÷ž,ËÈÊ‚Ìx„ÒacÖ Δx'¤¨ú±¤ø_Ü–«Îî…_‹Å¯ââØó…É!ÖƒÍ „-AY W¦à™2WÝÜétúþÿç?ü°.yMMM-tkjjj¾@4q5˜†åàõ—“´<$ÁÞ>qÒŽV@5@~BCeXsêáM’$!Í3œ Ë´ÈÉóœy™ëâe€óÂP˜’(ŒñÜJu•…ë½GšXí%-QT6 ¦œ"Ä Hœv”¢Í®u|ú±7]¹‡ ™Ósùy¤Lu—¤±^ÖU­©¹jë¹Ïzæ;_uïG¿¥8;å¨\åÔp‰}ÇO²þ¼±wiÒ$ßbŒaÖÞCžL³šaÄDG ‡C¤³D:€"C”3¤Š°¥Å©/4…x¯xoÎ#GæfUGV Œñô:]Œ18+À+D¢UĸH‰¢ˆg>Ÿ“ç9ƒÁ€ápÈh4"Ë2:ÄÎÎiš2l·Û}¸®jMÍ¥I¨ìÖ[oýí¢(R2)Ë’cÇŽ±óððp…ïõz¤iJY–Ìf³‹Ó!¦IÒ4½¸C[–%Y–]šRÌ!c Šyi˜eÅÂtJ’¦†"/p¶À–%Y1Çä9ÆTÝ lògrœÉ®Ä™“Ïñ¶À¸WZÊ´Ú³¥¥˜§—ÑŠûÖ–Ú’Ñö1f£MÚIÀîÖÑ e6ƒ ñÒg=ûy«‹ZSsi“tzwO§³g?}ú²ÁdŠR­%yž²½uåçw¶1Þ‘Yh6ìv+©8aii´t„q›Yn™§pÞã­Ã;¢2’WJï Þ9Òùœ²(I󜢴dE‰Ô!¥uÄqL³Ùd6›aó9p’ʈʕ8kðe+rL™c‹œÙtÊp4$ÍÓ_|éïýÁ›ëêÖÔÔ<ž¨;º555_Ò\vÙeo|×Û²ÞÚÚb<ÓZZâ²+®BEKPdÃ![[;*$:h­™ŒRv&)!ÖZ [` …¥´xEé ÖJÖ‚¥À,2/Ã0¼¸ç&¥$+³j7å4P¹¢ªPÑh4hµZ´…[]e:Üass“³'NQÌS¤æûíÿu5kj¨À~Ó7}Ó}ôýïzÿx˜sbó¶´ÌSÏ™3'ßùÛ?û >Þke¡é!vž€Ê#§ÒÒú‘üK ÏeBppÄÁeƱo6/²,×…°‘1fKëpÔí¶fRðˆ„Œ vÞýß :kŸüæïýÑŸþý—þÚ¯>6sd‘'Ö1¡MÈf¤ãÍ2¥·´‡îÒ2Û»3T˜púü6*Š)ì;p²,YŸ¹÷Þ{/Ž'—©E$泒ܨ…+¼EaJÒn$¬ïÛÏÞƒ—‘f9Î9Î;Ã|2¦,s"`­Çä3„¨¼òb¥ÅØ’ùdÂÙóg¦À÷¼ø%¿8¯«ZSSS ÝššššHdTÞrË-¯øÌ»þíù|N†E:0óËËˬ¯¯#¦ÓÊIt8d47äF¡Uc ÓIF®ÞŒ+1Æãðx/1¶iÖQxÑyÙ{ѡԋ*{·(+çÁ`@¬Cº½.ýv“Éè4eYrîÜ9L>&›ŽÙÞÞf{{›tT2̹öÚëïqX™ƒÞóD·d™¹rkg÷Àd2Ù˜gyìœÓ…qÞZkÚínº¼¼|¶Ý‰n7ã$Ü |RÃùúÁý÷~£a¿‡çÏÙÚšÜvìÑŽ?ÑÞÜÜd0°»»KQV÷ŠbNAÕiÜ»w?­V‹õÕ5{ðàÁÓ‡ï»occãoQð>ÓÕM‹šÏáI·Þök>ÿùOyÃëþ⛚¡ƒ8Á”‚(Šð¥ °žÝ“' ã.WÝøi³¹½Í}÷=ÄÖ`H––¬ïÙàÊ+¯äÔé”f³Iš¦\qÅHpìÑ“8p€f³ÉîÎ9Úí6JlmmÁÂm9Š"œsìììpöìYvww ¤"Cò<Õ%„ù|^¹/—./)MÎÖæ&FãG^þû¿÷‰ºš555µÐ­©©©ù"pÍÍOþï{×;üôfzp¹•°§Ý «"’°.ÁŒ-íÆ2ÃlÌn6ǹ,ËpÖB.|Œ1ÖŠ‹ÑEi«QA!®¤ßîáœe<"„ б†ÜTqé,!I" ]ÉGöqòø˜l—ñî^Ü¡ßj0xôáI3Ëpš4Û¼ñ©·¾íñP‡®öð óŒ¯ùô]÷Þt×]÷vÎlžg8˜0Ϫ\PYZâ„A/EQ\Ž+ž±¾´ÂúÞ n¸æÚí£G|äòÃÍÛÉí 8Q?Êÿnh9Ç×ÎK¾õî»î}Ö'ﺻwìØI6·¶(K‡Ðï3¿´1¥¬FWmˆô­3¢¨ÁàÁ¤ ƒó*î?(tp°ÝnÕÕ×^Å7ÞxçS¯^SðêXro}Õ?Ë×üÓ}×Ãg6~ò£~ÊžÕÝVƒ,wxŸ­8àøƒ÷°;Où×ßñ½\ý5d³‚yš3›MxôÁ]ÊtB»Ó‰5nq;¡0%£4coÒaf=¢Ñ§µº5Û# %Ív‡ÑxÀC?@š—ÌçsŒ)AHé$‡ðïI(‡DQÀÜåìîl2~ó/ÿ䵿_W±¦¦æñŠðÞ×W¡¦¦æKžO¿óuß÷ñwÞþ[ý79Èz»AÔj³R0 §‡SN§#p1ÓY >g¦‰Ä˜*o²(ªšÞ{‚(F)…Ô­V ãªÜÉ<+IÓ”´È+AaûxïévÛì][f0:ÇÖ¹ÇØ³ÚDú”•žfwóãݶ¶¶(­$›{:ݵ¯ýå—½ô’ÝÏuÎI)åWsþ͇>øÑ¯yïûßÛO,ôœãÛ7·w¿çío{×üØGfΣT„±çY™1d”ÁY:B¸’f3›œ,›£µ¦ÓêVî¼aÒÀ9‡N‡Õ çÆoœ?ýO{ËáÃk/àu*Ξ;yðç^üSï0ÙìÊP z­6ÎU7Ô’$!MKò¨CuÙw`?QØdk0d:R–UnJò<©ˆ[]Jã™ež}G°Ö’e3:a ØwúÐK~þçþb¸µó­<ýv‡²HQJ1sš<³„q„a $%­FB·×dÏÆ ý~Ÿinèô7Ì,³Ì3Ìeµ†!ª{Ê—( p[2n1ŽI’äb¯RŠP+!±eQc6e41íþΟøÄüñÿ1S?£jjjïÔ9º555— +.;yfû”¿çá{žkBUšÜj ¡˜¦–ñdÊ|žaÊœÉ,gw8ÁÉDèÆA”†<7è0¡Ésƒ1&8$ÓYN··D§»„R!»»¦³‚­nDÒRX žüä'’Ä÷Üy/“Ñœñ Å•J5ÙÞž!âä»ÿÿào.ÁËü­ÇŽ{õoüÆo<óMozI’±3h— C7ޏòðAžñÔ'óÏþÉ?æGþÝ÷ãò‚2KÉ&S:­&­(€²dme™'>᧸b_›¯ÜG'v,÷ÚMEI„‚•ÈHóÀ±‡ÃOßwßÓƒNëkV÷ì¹?<öe/pY1.é>øÁ_ùñŸükŸüäݬ®ía6·”£¡"P1Ψ¸AÒê`½$+«œUcaÒîÄ\vd×]{9­–f>ÛE G’äÅ„ è-÷H:-âv“ ã”$lï£Õ[e’…¥Ý[b8š„;öŒé¼øúå=ûîohŽ}9שÑꌞýŒç¼þλ?sÄ8wÝd<£4ç%XC+ 1…e6¡°¸2#àú+Ž lÆÞµeÊ2g4ž³;ž0NK†©a~ü8ý~¿úA¡ZH–——¹ê꫹é¦[¸îúëéõ—AH’f›,/qÚ{öí§ÑhP† Šé÷ûìo¦h­‰M¦ó”f§O'è(&ˆb‚0¢( ÚíÖZNž|lcëÜÖ·tVWçKÍÆ‡¾ŒEîÓ­µ¯ÿÅÿüó_õŠW¼‚Íím´Š™Ï3¤Š(KK5«è ! ¢ˆv§M¿ßçšk¯æ+¿ò+^0 QÒqÙáý,÷ÚxW…Šn»Ã`0@JI”41Öc¬ïÙËÒò2yQ‚lÑh4è÷»J0M” IB†»;kgÏžù–N©ì·_Ö»»AeÏûНxÝ™Ó'‹íó›OWRè,ËpÎU;¸BTÙ¶BÐé´é¶[lnž`–åœ9¿Ë$-˜ÌKÓ|ašq³¼Ô¥ßnqåÑËXê´)ò9§Nœ¤, ¼÷h¥ªÕQu‚§“ ³ÙìáÉlü/_óš×üIý¤¦¦¦º5555_¢È ã¯¾æÉo}ÃßõœÜ&û3+1> p–Ò:&³Œ´€¢ô8/™es¶¶N3>w/ÙðÛç£o ' f£Ô³5œ#‚[ÃQ•›§ø2C+C'‘t„e£Û¡Ø9uŠﺋl<–3¢Hb|Î43-¦¯ÿ†oú¿¾ë¦›žpétMŠt ;þóÛÿâ÷_ô—oy³Ùiz݈ý+kôL‡O¼é—Zgß¾½´ú«X1.§s>yß >»Ë¬ éï9ÌeWÜÈÚþ+ˆZkXÑ -ƒO¢±÷jv¥f"úÑ—þÊ/¿$|àŽf´:=ö8BÑ_^åÈ‘#=zyÕñs–k®ºŠë®»– d6ŸqöÜO?xŽ4­2t'“ çÏc0 ¤`ii‰F#AJ‰YìtJZWbZJICjöìÙCWŽÚßøOÿ wæ!¸Twyy™3§¾ÑwÛÚFïmrúå|N9räÔ-·ÜògÛÛÛç¶6·®õÞ÷o,y‘¡x»»»DQÄd2á䩓̦sÒ# Ë/&[íÆ"¤$¶··ÿôyÏ{ÞwÿÀ|ߥãdêf«ÌÓ7ÿþK_ö”ãÏ)Aˆ€ÒT#›­¤Á¾µ Ö6š4šÆf̆cŠ<%VqhhDàâ½'Žc²,£Û=D³Ù¤ÏØ¿±÷Oo¸îšïáqn¤3û¥¾ÿ½?þæ7¼‘÷¿÷ã`iºE¯×㺛žÄÓŸõ•|Ã7ÿsv†)wß{?Ÿøøx)X]Ù¨\}m@fÍÎ*£é„Í)çw2¤”LÆcæó9QU£äaÀòò2K½J°Ú…K¯1BtP¹w•¥4QSÒétxÁ×>­]xãßI»ÝFHO»Ýf©'Ø=ûG®Þùì§<åb8^ŸTpÏ=÷¬Ý~ûíÿòÎOòÛ¤õ7[ÅýØ¢º±à½§Óé ƒ€n·K–—DQD³ÛcuuGìÝ»g ÇŽc{s‹4M)ó¢2“’ ²­­­;¼÷¿õ†¿zãÛê«^SSS ÝZèÖÔÔ\œ}ðÎÆÏÿÌÏþF³™|WY–è(Æ qžÒ ŠÒ†!/üŠ[ɲŒ=0ž9¹ÉpR0ÌJÆ£ÆyœsDQ@¯Õ ÓN0Ùœ3§c>ž ¥ÀZK’$4›Mæé­5ÓéÔM&“—|Ý×}ÝÏ}Çwü«K¦Û˜fã0îM¿óË¿òUÇy”l6§ÙlÒXéW¹ž±b}c…Žì§Ûí’Òè6ŬìÎ [㌳;#†ãƒ"d…ÆZòÜ⼨\¬ç)Ú Ú]ÉòJ(Vã´¤ÆHæ4cA»ë‘R"„`ïÞ½?>¤Ñhp`oD™æ>|ø¥—íYÿ·ßGtþ‹w¼ýöÿðÖ·þ>ñ‘¢D“2Í Ã‚[n¹…~Ã7rýžL{uOÞy?:Ãgîy€îRŸ~o…(‰ñ²Á,/™çpnk“óÛf¹^äCgo$EA‘¥$I‚–•ûx#‰15¶ÚÙÂ0¤á2¤òèØ³¼¼Œ #ºK+Üu×1qÒn·ÑrÂRSPÌwèÅÍO<íæ'~uŠíú¤ªxø¡ï{×ß|Õ‡>üoÊóüÙ¡R{G£Î9Ò4%+KyaÃFU·7Ón·ÉÓk-Z*¬µJ;)å§soÖZ¿îµ¯Ý=õU®©©©©…nMMÍ㈟ÿéÿ¶ãÇÿgkíž (­Gµk-7]§ÝnsøŠ«Ø¦Ü÷У4;«äƱ3œRXCEìÛ·‡=kË´›ÞäŸ!=t›+\~ùå\{ã• vÔÀ‰˜y!)œf0ž±¹3Å É<çY) -²Rb…$Ï-R6HÓ!J©Åx²ÁZK–eJW»JK B¤)%¡° ,QâªÜioÙ·oB4i6›tº Ö—ûè0Eš9ëý„v3ŸLοêæk{}Býïy×Ûþºñ؉Sk›››ýÁè@Qb:O}–e2JÂÙÆÆÆ©$Šw———w¾ç{¾§¶5555µÐ­©©ùrãå/ÿ­§~ôƒøkí×Og“ÈC“çKË«È0f6/A„ #Ú­>^—ååeöìYÇÛœ¸>Œ$ãñ-Çñx<¿±Ýnÿúþá+.ISïýáGxð#/ùO?µ¦LÊj?â)Oº[o½€‡Ž=Êùó;xÑ" :Da‹8XcW£Ë^T"7wši)˜eóÂb½ KKòEÌIi«ÝÜ|Ñ9teµÏì½@«g5EQ ¥¤ŘrB¿«éwV:š•~‹¦,·»,/÷Øs°C»Ý¦†YÎ`gëÓöîâÒïZ;9òر?ðò—¾lãì©óó”v«‰”’C‡÷pôèQâµËXZ=€µ–É™jjjjjj¡[SSSó÷À‡Þû®ð£øÐ-<ðÀSO?÷ä0h\©½6§Ë™)Ã$I”qÖDQ”[Sl{ï·¢PÞçœûØÁ}{?xë­·Þù¢ïøN{©_ïùê׿æOþÇ_¾ö¿!\Éå‡sù‘«xÆSoCÈ Z|øãÜtÓM<øÐ Æ“Á °‚_êbu/%…ÕŒ ˜ežÜ8ŒW̲Œ²,/îæ ¡›—¶r•uSœs8[/{ïÕ˜´pa„/seyÊMG¹í‰×ÒidóI3bmi-Òƒ\YN¬-Ÿ$û/a©û#¯û³Wþê;ßúFf£1ýv—$iñœg?—zK]’$Áw"D€ºÝ%J'yìÔ“¼ 7 Tˆ%ÂH‰wë+ó´ ×zâ}u#¢¬n<˜ÒaŒ¡\ÔÇ9÷?ý}/ªs)+×eg«±}dháÊIM§Ýgmi™þR‹H[ÖVB6–ön´hM#”(¶œqþüùìÛ·ï9JFY}*ÕÔÔÔÔ|¡Ñõ%¨©©y¼sÛ³ž[Üö¬ç~øð…ßûïü'KƒÝÉêx> ³,ÓI³a¢(Ê-7à¾oôx»Þž8qþ%·ß~;Þ{ºÝn—§?ýé\~ÝõlŸ¸Ÿ“§FkÍÊú:AØæ±sÎ-QJã”"ˆc„ÖˆB pB JKZT{›RV‰žB¼´Õû…{¯³A%t%ÿ/¡+С°Æ’D±v ‡C’DÓjiV–¤ù¹h3 xAÐÂÿð¯/Åš¸’+îºë?uÇwPä9N‡FÒà©O½õõu´Ö,­ô™N§X)ñºÝ.AðØ±“loˆÚ’$A1Ƈ”B€WÇBÈV»¸”Uj«XìÞ ·p·®êsaLùº:º^(¥`ñu¤¬jQ–%óùœn¯A–eìîNq™@ø6W8„XÔ+ C–––ž²»»ûƒ«+{~¥>•jjjjjj¡[SSSóà[¿íE»Àî—Ë÷+_óþw¼õIãí{8´w?&<ç97qôƧÃy­ÁKË!È%º{VÙn“2d8O)lH$çÚk¯ï™ v1ư´´ÄáÃ+•’”Š¥Õ5®«óž{îùæ‡zˆ~¿O§á鯒›o¾™$IFR–%ív›îR“ÉdÂý÷ßµ–8ŽQ²Á¹sçXÞs9E!E‚ð`\€ðÕØ±_Ä9åy‰ ¯ÀbWà½XüÚ-Þû‹‘CÞû…󲼘mŒRh)ѺIFTÉóœp©E¯—päÈ*¡H)Š ¼sˆÅç÷{ýþöÎöOß]?+kjjjjj¡[SSSSóÂ>ðŽ7>¯<ÀÑ£GÙ¿ÜÁøP`æœÙ:‹hDô;M–VäBK:+ z.Â6%9 ¬\^Q¨Âø Êk•牕/^„(ã@:„/@Ð%N@)-q£‰1àÃ'çf9Ÿñ\±OŽYÉc‡@€’„qôÍÃÁÖÏ÷ú«—F‡ÞÎ…)ç?yÇí¯×‰›Úœå°ÉúRÂU‡–C‹ "s-œ’´zMŒ²÷Ð>´ùØGîb^(R+ñ*¡ôaÔA RäFá Æˆ)-…T€T¥…EHƒ§@Â!¤E*U˜/ÞXŒ8#ª?JT_Cj¼H ‚ƒd’鬵‡f# -¼Â;œ‘Bžv»õ­›[g~ymuï±ú©YSSSSS Ýššššš¿Ƙúö·¿=\]]eÿþý VÖ7ÈóœQ¾C–eÈPÐív‘ê€pÕE÷žN§ÃÌ„Æ"]‹èšÀK„8<øÏvt­0‹]O¼x%QÒuB*¼xYu•RAHD`J§OŸæ²õiV†Éÿ4}¥ö_üù%Q¥nùÈû?òü‡zˆ~qÕÑÃÄd\vÙBÂ("ño" ¯0ÆÐê·ˆ›Mˆn»í6>þé{p3Ïx^@Pu`¥”„AˆÐ ¡ªÝ¢¨Ü”=•“ò…‘䪵ÎçäW]çø ]!ÎW»ºRë‹]^!Jª‹¹¼“IA«uΗž$N HAë…È' Ö1æû©Ÿ55555µÐ­©©©©ù»ÜsÏ=/œ â较¬5W˜N§´D‡ñvƹüaâv“’1Q[BØXÝ&J­0/B¬‘X-Q‘Bk)A8P)@@àCPzPiðBâdÒ`U†÷U¶Æ!?…f8)’êc´!Peˆ ›L²”qƒ–a£J*9{öìÿµÔ_{Eý,­©©©©©…nMMMMÍß )Êg>òéë=~›ë÷ˆhŠ C&ôpS)«‘àìžãèPz µæÄ¦t–Ä:´–Ì2ñž¨1™g8«‚B T)p©"±GH@¿Êi ^Ë…/HÙ&T - ZdDBÐŒÂJLÉ’‘ Ø)5ÓyÆÚRL„D9°…G…xC¨ÍÝ­[ÚÍÞ{¾¤o<~Õû?ô×ë}[puoƒ[:›tÈøÄd/yžóä« t4E®îgI'ÏAKÚ.¼ ºEFÈX4É´Ä ‰Ä9w%Þ |¥ˆ±:&09H‰ K„¤üì›08™•H ÖZp©åÅç¦.ÂâÅ¢“k5RIdX ]©¨ˆÑ¬àÔ9Ïå{$†‰4ÈH¡‹ ¨å’ÊHL_¶ïŸµÐ­©©©©©…nMMMMÍߎísçnÚÝÝåÈÆQ1Î2¼—4 ”Rˆ MSÜ|N/Ä'…¢Ä•&m æ&Å90ÆÑë5É£H†)ÄqŒ3`\„³é: ñBQä¡\%t;¼ˆ Øj÷3P):„ ’¸r^¢ê(–eA/i‘fTfË@.º’Æà´Þû›/i¡[–å?ùøÇ?N,W\qQ´ JñðÃÓh4¸ÿþ3\óÍø²D$-(J€D(D2-ª [¡b’X“/µÂ œ¥¹¾ª]@ „ðX/`á¦,.ÞlcQJáÌ­ùsvy½÷‹ÏñB!„¥ÑZ#´ZìVK¢@!­áÌ™3¬tö²Ö•a˜÷ /7”ª¾7 ÞûÛÎo?º¾zøáú™ZSSSSS ÝšššššÏ›S§N]_–%K½e”Ð G%³´¤•=Šqm̼Çt:¥YŽè­îņ]4! ³ñ”(T„aˆ±Ë:Ámo²5Ïèv—™”Ð æ@W£­Öhl¥÷xá0²Ú§µÖ~Îø,x h—)(…áPIDk´–H óÂ’IÃpw@/Q„²¥Ú‰Ææ¦/ébØ|ùÞ;ï~Æt¸ËF3æèá&›2™xNßbii ;+¸ö¦>“AžÏY[K ˆ)…G’ƒ÷HŠÑ.Af a tzR™7’H+tæ(sYíR#‰\µ{+}„ôÂi¬°H¯pÂa|‰¿¸!!}5Êle´Ç !%^iœªv¶‘#­PHÍp^0N-ËMM‰F:…Veš$ÆÏ%J¨†sî¹@-tkjjjjj¡[SSSSóyâËîÉ“'÷‡aÈòr¥³Ù,sÌf3Ö»kœÍ™ÏçtÅÒÒZj‡e6›Ñn,EàUȤHi† —í]ã£÷<ÄdfèïYÇIèõ ƒ4UóÎÙª‘†!q ˜ÿYè^»:¨—ÁÑŒ5ÿ?öþ;Þ²ô¬ïD¿oXiÇ“*WuUuT«»…ÔR I @2Ñ"ãqÆÏg|/œ06žá†p™Á€=`„‰’P0(`Y& „‘„jåÕ]ùT¸ó oº¬}v…®85U­õíÏîSgç³Â»Þçý=ÏïñÁ£qD‘&ŠiZw;Lj‘E I§Ó'‘ž<ÏÉ:ñ" zggçö£·ÝÄûÃû¼ï}ï;Ðjµ8tðZkÒ4å‰'žàСCôz=Zñ˜sçÎqjs‚‚Ëë}î»ï>¢¨Mm 5ßµ!ÐjµY†J^ Pùï(…JÖ+œ-!xð^ã‡!\é• õ¾©§®ºÂן(¥Xºrè*U«¹RJ´öD‘&‹%±(©ª ã5G[i Z(ÈÁûECäN§óJà盓µ¡¡¡¡¡ tþ¢,Ÿ>}zIÁ¾Õ>ËöÐâ½G…Ë<çä] ?2Á‡‘A{5Å“ H‰CFdv‘bAFf%ý¸Eå&D*å o?ħyœd"hµú”V#¤¤ß¸c…cUU±/®ê–5nðÎMŽb] v ! T Ö©´¶ïtvøÈ‰üæ\x(^rî‰Gɧ9Ï9ì a±tŒu»Ë¥ÛY>|€¤+È•"ò#œs\¾´Áþ}ô#‰ñDpA¡ 1hÎ"€V,É-Ìåá$B2wZ–¥%ÀÆ`c„÷(W‚sàë–Eø½ó+éε¹Ø¼ÝDB’f’$UQi˜%>´(L M#Tè4®k~ƒD`hg­³¥¥Ãysº644444nCCCCßsk;;;‰RŠ$©SOg³RJÊÒÑn·)ŠKH)QJÐjµ°Á¡Ævvf¤iÊÊê>x"á¼jçaY‘Å1ya‰"…T0‡,I  zíyÿÕ¹ó¯$Ôm¢:5ÚÙr^‹kæßG¡#E»]Çdgóœ4HºÝ.Æä(*Œ1õI‰›ÍFé`0Èᦠš¦ãñ‹···‘R²²²BÇìîî²ÿ~ÖöÝÍÔã z½½^ÑhD«ÝãÀ¡CS!t„’<ϱ֢dsu\iE9›2µ–8k“$ u‡\…ðk¨»ýú1_O¤dÞC׃ s3ª+n4×ôÏeî’½è*H’ ¤± ±‚Ò Æ“1™†$M {m{©û5K©ŽonnžXZ:ü™æ„½–ÊÆE³%š@·¡¡¡¡áj”Z¢4MIRK’ZJ[×U&¢D˜)²0ÄYŠg@h• J|È»òíJ= Ý·DtÁä@@‹˜%aXêÇ<òø9NYc„áòpÈÖ g4œ1žT¨¸‹Š3²rÊøòî<]Y\õõ!ŽIB§!¦žr2BÅ ÚN쨅fà ­µ5: dHbrd˜¬C»ÍÙÇÏQŒ†Q>Êã›3j™ÅÎ]8‘O ÙO7­hE9§lãÏy9±o³}æ ÛUFçÀaÂlÄ,ã✠=ÂwÀö!Œªœ"Kh·3"­‰… Wy:ÄŒ‹Šb°CÑêÐëôQmÁØ‚Š>2H%j·äH!#‰¬ÀP‘@xw é"„¯ÓÏ¥! 2Ô½w¥G)T ƒÒЊ™–,e’˜z1$K /=%Š…ƒz! Vu“éxpø¼ t'–žV’‚žÜ9žù;wÇÃcAÉóívû±¥DŸ’’ϧ\H`Ò p M ÛÐÐÐðùНqkcï=ƒÁ€n·K’$‹zYc TJ)@á¼g:1N¡mYZZºâœ[•×}v {î}..^ ½´Æîî.›#ÆU`8*(í¡ëÏÉózPyM ì^gžç€e8âÒSæÌf3B°Ìf3ZˇI’„Ò‚Æ`«Á9¶‡;¬¶Û|æ3Ÿa4­L&“ýÀ¥›pÑaßúúúÑxÞ'8Š"¼÷9r„'N097@A¯×`{{›8ŽÉ² ‘µÀH𞪴L&to•8Ž‘¼­UØ^·EÖjñÈ#sqwÈòшh­E$ –u-­)ê b9w¯Vœ“x/ñ®>ND ‡léàQˆEMîž[¶T‚Hx’TÇ‚,©•|i &@K(z½.Øùfàª6Èu檪ž ¼ûóéÄÌḀ// ¾n4šÞÿä§Ž¬¯¯'ΞáòåË\ÞÚdw<ÄKq_»ÝþŠÛöàÀ=¶¯ûªápxÇ¥‹ë·~òüÒ… ÅåË— Á£µÆ˽÷ÞkOœÔÏØÜÜ$‹b&“ 7±ÒÑ8 ( Ο?1†$IÆRÊÁ͹ÊV···uu-kŽ8®³¬¥ŒF#²,ÃÇzñ7K)ɲ¼gÞÀ˜©«k™§Ó)Óé”Õ~n§ƒ€µ0íñãÇ9»=¤ßï°]ˆ¨VÐcaJKð’åå„¢„‘ „P».·ÒdþêšÜb:«x Yœˆ‰¤Féúû%IL¢LU—Ek­È2Hd»h±¸àpÔÞ”£. Õ,gww÷ð³}ªà.çù¾O~ú‘ÿù-où }iý2ÖZª¢d2Òm§,--¡µ¬û#ëZYWqL’$dÝŒn·‹1ea™N§ ‡CF“ÑêÃ?üÍ«W¾éK¿ì‹_÷Ü»nû‘VÓ®©¡¡¡¡ tžÕ¼ø»øÀ^þÉO~rù#þ ãñë$¦ Ä­yå A"" ‘âãg߯gùév»G²¬ýŠç=ïyßñÜû8û‚ÜõÛû3^ þìÛ‹¢˜•eÙ²6FëˆcÇVX^^f‚ç±õ’£ÇŸƒRŠƒ+hwV! ÀˆN_Ðîdø0 6¦˜ ñÂc¼ 4ïÖJªÊcMŠ5 C*&H‰ˆ èi”tHcˆÒ˜"¤Ô$IB×)¼È€Pu»!'!‘#<Þ[:q„¹tÞ²’.p ßãÔãgé÷ûÌfÈ,´²ÔÝ”q®Ñ¹Í",û2ƒô)š”@„Ç¢£@¯Ÿ¡ÒÀR7æbË1Û½Œ´‡@I‚á⃋ØÑ~˜¢”¢Û:N»-CUMˆ“>ùî¾û °…Eížãù«Gxr<ÀT’(N‰§%ƒqIÚºU`%MØí" Ét:EQ›“é¼ Õj1) Gð)eY"²ˆ8kÑIc’P!] *%>”È$"ÓHÅ(<ƒ’°àÆ”“Ìl°ü¬…Ü´ÿhóÉÑwÿʯüÊÒ§ù½^?`Ê)YñÜãÅÚ SyD”¢’ã™cué ûŸógÆ;lmmÑËÚ¼ðÅ÷§ O>qŽ­Á©Ãç‘xë|ÿß>yâü×½úK¿è'õù—m#«†††&Ðmhhhxá_dùßßðÆ7}ý;Þñ:Ý>ÓéSÄqÌÒò~¼“$í.ãYEU9Њ %Î9Ž9BY–L&~øa>ù©ÏÜöž÷ìû__|ï¿õŠ—~ÑÏ>¼ïÿ°~kl ?’R–EQ´Ê2¦Ýn³´´D«ÕÂɓɄ8ŽY^^&RµjHL5´ÖÄi‡™SXé…[9¬µ8£”¢*+œ Õ yâ8#R1HZá…]ÔwFQ„jQ«ëœƒP× +¥B#E¸ÒÊfþc ÛÛÛdË©„Ç{ŒétŠÖšÙlFiŠ^¯wS¦. !VF£QÑn·‰¢Zaoê€qîz\U†étJQc˜Ífà=N9 »»» "Ùfyy™$IÀY¼+ˆ[îºë.@päÈQþôƒAÉö­òØéuÃ1—‡ìŽ f%DIB¯»ÂúÆåº&›ºýS$“É„ª(ëýÖMjÇnáÑÒT³»»K’jl·‡÷–V¬ T_aó!Y¤Xíeœ8q‚V+«ë±…Àç2¬esskmò¬ŠBy/Þ¿îõ¯{ÝCÿá7ÿ¤®u§ÎNHÒˆN§Ã _ô|T° vwHÓ)"&cC厺~þÌ™3ø¥6‡¦OÙÞÞæ¾îç[¿åU¼ó?~˜÷è#äyN¿ßg8.ÿÆo¼ó‡^ôÀ=_òЇžóí1œk® M ÛÐÐÐpKO*Íðƒü‡ôo~ó›Û[»ºƒÁI’ðÊç¥ÕjA”1WeäU›©ux‘BS¥5Ü~ç öï?ÈåË—9ûäiÆø€N³žùý¿ÿÒ¿à›¾äe÷üh*øù¸›z›H¹sèСÍí ç–Ë"e:ÑdbLÜÙÇöÌSèÛ¦¤Ê§œ -ð3ˆ%‘)­6*Nw-‘1t%ë0΋@AðãEnqUN'ÄB dŒˆ5•³”Þ¢$´¤ÁxA¢½#„+†T0UNe}íú[–¨j‚«*dÚe<ÓS¶v¦¤Ò l‹‘£Ýo3.,;ÃâÌí|ÁÍ©èâW¶d)Ú¥­g¤bg{‡N1ÆŒÇ̦»XkÑÆ0ؽÈh÷<ýLÛ¥%$¡ÀL†¨¼$KR–T‚ŽZà"ŠÉ,”h¡ÑX„|áC/“ri+çÂ#çQJa*ËJ«/‡T³1ÛyREõ‚B»Û&ÖÆ¢vV¯^c U•#•FpeEa*&(¦³ ZkDðSO†WÑÊ ›±¼dYÊR–;=ŠÁËGÛ Åt‡N‹gÝxdG¯vyñ+?û3ÿúÈG>òÚº‹ÏwYi§*fZMxñK^Âd²Ë±cÇX;°K—.a¬"dU.0 T»‹R-ŒHñ2£»KÖ‡#~ïýðʯyúèE¼êSÅ-¦2a©×å3çw^5s§~çeÝñ7Wm. M ÛÐÐÐpk¹÷Mƒ×ýʯüÊ ÿ󟼀N‰¢(ȲŒ»ï¾›ŸY–±¾5@'3J¯‘”Ó“üJOÖcǎᜣßïó­ßúµ¼íß¿›}èC Ž9ÂÇ>ö±£Ï>ù³_þÅ/ùÒ“G—þ^;7ívQyûí·?ú‰ýéݣш8ŽétöqìäIò'OQë¿{00dˆÎK–:¡ÁûZU¬¶²E¡¡@€T„ ð>à]À¹Z‰¬Õ¨¸ViÑx)ÀÕNËÎ9‚¨­v÷”ËêØ&„º_«µk- ÆámAUUäENQìn8Ø_akk‹Û¸b4cskkñýçûïfnQs¶Þ6bî>-(Š‚Á`PgäyÝ;8ÖXk)Ë’©L&)V W;ãœÃ9W«½Æ@á}…Tõ6v8p ¬@‡Àæå]Îl‡(¥˜–†¶×ìÕ ;4Ö;„L&“yŸcAUU,÷–!`­¥( f³ .ŠqVRUBÔý;ÝÞ{œ©sÕ>à(Š‚étÊþ}’$©“ʪˆr8dww·þýÙD9üÍf“ŸúW?ñ“ɧ?ù0Y–qûñ»ÙÙÙ¡0u*øòþ%¬µ;vŒªªØ·¼L»Ý‘’T‚8´FF y%Pq»vÙ–Q¤©ªŠïÿàY¢(Bgm´Öôû}Ò(f¹µ‚sæ9ögö[÷ßuçÿv ß}{s¡hhhh݆†††[ —Õ¥óçùõ¯ýÁ}èC:rç °†å¥U*k¸ï¾û˜åë,-÷ˆã˜ÞJ›­qAQ:B¡Ò³YJ¢(a×(Þó¡Sºûʇ? +·³^JV» ›¹ç?ýч¿åEÏ»çÄCû›)ºW¢Ô”Î…MZ‡Ž‘wy^abÉLθ¯•Ü‘xpS„pUÄ¡Õ6£aκfÌLL!æÁ³l•|‚ExéÁN1³ A(ªñ˜ $I'Y½O¥„P§?'ËQ½@á=ÒÕ.Ë" xŒG$fë⇘*;ÿ,˜l éõÿö•›äìcÂòJ ß Üw=ç…()ØÞ3šxòbÁ®ícÚ]¦^²9€bcBéÀ¸SÕfTÎ9 –Ú§(™àRM$"’4"ˆÆANðiÝKZ}8ª Rº{¤Bx}UU¯ˆãøRsýhhhh݆†††› _øÑþékßñŽwО••´\B‰¾Ý¦ÓíIGYX\ð´[ŠÝ¢¢,vÙÚà]D^ŠJWó¾®ZQ–%Ε,¯ôX^îEëëëììì`]IQt–ºµiœs¤i -ÍÊG?úñ_}ùCÏûÒlÝLÛJ±}ÿý÷¿ÿÏžüÄ7ž9sg§¼ÿýïçðÝ÷°²²ÂöFíª+â˜áæ&a¶C§Ó¡,K*¡˜Ú)B´÷‹ZMc•“/pAãDÂ\–3¬¯ëp‘u-®¸ª67„€Ÿ×—Jêǽ­k£­É‰cEUUÌf3²,#ÏsÆ£1w¼¦t:ƒ¶î™Ëx<Æ9³—.ý_ôÒ—ßÌæ`QM:N4QŠ^¿Ïú&“ Ãj†ˆ4ƒéezK‹ ²9­vÁA’RUiÚB)EÇ(ÕŠ¨v —/!&à¬ÀAp1Ö×í›L^×ýæyN–8͈ÓÕ‹•³èù°pÈB Dó¾®6¸ºÆZ†Å>uÞ¬¹36Àl6[¤±'IB¯ÓƒPÒétíî"mAQÔ·Ñht‹^ƒUcÂë~í×~mm0plí÷=H’Â8̸ç¾çrÛÉ/@Fò¢ (`<®ó$IØ×í0šU”6 ‹* F@¸rî0¯mWN¡¤Bh¾êéhžQoÓªJpN!cI¬#T] 'ðïB_'„(›+ICCCè6444ÜD8[9îÜßõ¶7tzDZý+<÷žçpöô6ÎHBV¡Û’ŽŽÉÛ ¶RLmŒ^RÌJ˜9³‰Ç*—Ž BDïZ`ƒcs0c4=¿hÓï÷YZîqÏmw²³}™Áx‹•^‹•¥etT²ÜmQäû/^ØøùÇökKbo¦möâ¿øßÿÁ»ßò§.í²/óœ;w‘ >Á±ƒÇ¸,åtB»ÛÁ.õæ—˜U–VnXJ4LK*cȽ©¤„ÄY÷ ïÎ *H3à‚_HÎ{¤„(ŠHµ‚JSY¼ÔW‚¤ð8Jã©Ê/$›[;õëZm¬§6¤ÚÝe4 ‚EI‡0BØ#ÇOüæM}àJ³y÷s—Ïä}¿È§Ù&„œþŠæÌÖ:k·cTB'ŠiË.¦hS™7ôWWˆ¢„¢’¶z ·j¡5Þjƒ/77ƒZM! TD»›Ò_KÑ*¥1^Ry‹³ ¼BÔò{\ù@ðŽà-^Ïž‘X@‡”Ü"-¨œ€“é¨NóŽŽ*°UŽ69Ò.^¼HG6PyðRúÖ^yëÿÄÛ_ÿ+/¸øøcZ=æxè•we]¼ÄÑwÐêdx#¨”Æ{Ëtšã} kw1¢EKdã°Rã…EP"ƒC…A½ #ˆJƒÒ(!ç·(É@*ŒueEa5…•ñ"Xž—|…âŸÿ¢¹š4444nCCCÃMBp^VUõóozÓ›îðÞsçÝwò%_xÝV%.²³U0vš(IHÛmbŸbJ‰²1x‡#`½Ã%'<‹ÅÔn±ÎÕ†KQ«vï=ãñ˜étJ’Þ6w=•x_×™–eI’Ò4eßÚ2›ëç¿a0~_k¥ÿC7Óv;qâÄ:vìØ¹Ýó§YëøØÇ>Fë¥=Ò´Åh{À´ÈIÓ´våNkc¨ So„G)µt­÷8Î Œõ¸àÔi”ÆÔÛ Žë€6Š"jÑÏQUŽ jeи:%3`ÐZ“çùÂöÒ¥KdYFõKµ²žf1Âyvw·XîööÒkÿðU¯zÕ'oî£7*?þä{kzßdREGðÞ³¼¼ÌNÉÜiÙqìØXkoŽHRÍöîhÅJ¤©ÄB¶¶¶°² íôj—l®¶Þ¼g®žïõ)®Ÿá½§´%Æ”–ºŽ:(‚TWγ@øy\ŸÖÎ×nDjóóÆŒE ÀÖj½) œsÄq\»:;Çx<¦+=Óiݶ¥ŒF#Æã±mµZ§nÙ1)„—|æá‡ÿÖ?øAº±`ee…W¼â¬Ì@)XÝGU(¼sìîî2Ì £BR–%­V‹¸Ûb\Jü¬ÄK‡%@°óÅŒz1ÁZK˜×´ #e„+îZkâ8®UÝ(B)µpå¤äšcc®ØÿC!Ä›€Ï6W•†††&Ðmhhh¸ Èo}×[ßúÕÕΓÙ_pÿö_)¹+9É_&l‰‡L%Ih3Ó= Ã´Ê‰e  St¨Ð‘ÇkGj,Ê„-©ªŠÊÖ&HZ*¢4BKI‹#òâ“9²Êƒ÷݇–9»—ÎÉe"i¥çžãÇ9sæÌ÷Ñ¿Ö_iß4“w)åðe¯þ«¯{ýñÿˆ‹!Ê žüħ¸ãÀ!úGë³ _ˆå5ˆs¦Ó)£í]Ú혼0¨N†ó Ö€¤ˆñ¤ XëR‚·xk‘ª^ˆ„S`ÇS¼“Pð e†b‘*[C^–DJqüà!Bp´’˜Áî&ÒVt»]6½¯yæís*ã(*C–e¿ô’W|y¸Ùßµµµi|íî00+-­V ç¶9~,eVYnµ8pòf`¹¼QÒïìCáØØžÒ^^¥*§/ža6óLKAœ¥µsY%ñÂPÊ8°Nâ8>xâ¤UÍ B%‘"F! Aàœ~~ÜêÖP¹­A-<2XŽXç±ç<ÁÊiAI:‘ '- /cÜ“Å\Z¿Àh2¥4–Í)ƒ‰9÷½÷ݲ®áû~÷?½Mu„áèjÆá}9ö{H,hŠ¥ Ï¥ól&èö>ÒÎZu™M> (¡u ‘ H‹ÒJ9”,1Æ`ü:$õ„V¥:AE)AŨ$CÆ1&H ë±Ô¾¢½Œšná{…ßÞ\UžÍÈf444ÜÚëçÖ¿ÿ}ï{I’pÇwpûí·CA“íÛÇwÞÉm·ÝFE8çiÇQEq“eív›v»M«Õ"Iâ¸îÿº—ªÜn·QªV¸ö”k-“É„ÍÍM:ív›ååeƒ£Ñˆ~¿O’HÖÖÖ:ƒÁà{n¶Í÷¢½ègÓ4ÝžN§äyÝ›vccƒÑhD’$t:ò<¯'ÕÆ0›Íh·Û;v ï=“Éd¡nïõr5ÆPÅâuuŸÕeY"„ I’ºõLUQUÕB\Ôv:‡µvñ^Þ{î¼óNVWW¹téÒ¢ç®RŠ—¾ô¥‹}b­¥Óéì)îŸúš¯ùšß¼á#GŽüi§ÓÁ9Ç`0 ÏsªªBkÍòò2KKK˜Ñˆ(Ë H)™L&<þøãœ?žÓ§OcŒ!MSÚí6Þ×*éxðWO:EÇ,//óüç?¿~0Ë íRŒF$ ½^V«µxýžB Ë2²,£ÕjÑjµ¿§iJš¦ÄqLÇ‹±L)U+¼B,RÙ÷êuCósüU=)墬@ñ?yïh., ÏfÔüÀ4[¡¡¡á¦ÇNv¾ýoúÅ¿“Ú1·nñÀýX=y[mÔi]tw?íV‹²Lm€t ›ìgä5VEH t‚Ð)èˆ "œ)‰[)> „©ˆâ¥œDIJÖë3 ±ÆaM…BqùüYÜḻCËD@»“`Ëñ½A„ÿÇéÆÍ²ý’8›lËþú¿"T+ý6:Òä•%Èz+( ªÂÜA9âÄwsç]wlŒf§0Nâ‘x4Æ:ÊÂPUU&k-Δ”´âˆDk‚­°UI’&()ñ>Ôu„Æ2å”UNð–HIVWº:°ÆÅóOrhm‰r¢4Y‘#”¦2%Á Ü^Ú²¯+wCx°! •B‰s–²(±¦DHI+œ1xgñÖ¼CðÎ⬅¨•xS"œï1Ö‘W†Ò Pš ¼§Ÿ z‘§ V[‚~+fýâE.œ¿HYz†£)›»#ª _û¥¯úª[®åÍ´rÚ‰é¿ûõ_þÁã]1ãϽ4|Á î‚åUˆÛÀ>LÙ'Ò$ ý~™ôž‰· I µpZàu‚W/#¼R€¡@iœ’!ˆ*AÄ:ªoR*Ò¨E'ˆ,FÇ QêÉRI?S´d­è^GBè !ÞÖ\]š@·¡¡¡á/ ¿tñìé÷–7þêÊ×|Å«¸ýŽ#ÜqïQð²tþœ ã„VÜ¡t0œBé3¢v´FJ½¬÷„P»k­±óºÛ8ªÜjWÙ8ŠQJEŠª*èu26ÖÏÓmEŒv·ˆ¥g2Øakã"÷Þû\V§onn®ôzK¿~3mÅÛî¸ýãÿçßÿ롘ö{YR«lÓ§"DÚ%IFãq]G;W˲B …ÊÚ¡Êl5WKkq­­km•V$I²péõ®VqÇÓEQ‘ç%yYQ' Ýn—£GžS?ÆÑ#‡‰”¢Ì œ·$:âÿøPò<'‰4¦*ñÞ¿÷›¿ù›¿çÞûŸn‘y¶»¹ñ²õS?‡ÙiNœ8Áßü$çÏŸG)èt:¸¤ƒ [—w°Örúâž|òIzÝn­„ËëB%ø Og¸ÖY¼ç=Æy¬ ç©*KUÕ힌1Ts—qïç)Ê¡ÞwbÞÏxO½ÝSÓ÷̧ Wÿ[¸ ¼EÎÓœKc™æ%EUïÿ²ÈÉ´¦—)z©&‘žCû—q¦à3ŸùÌ\ÅuL¦SŠÊTqÖþ¾/þÒ¿²q«HRÉ?ðÁ?ù¡¿÷Ýâ®ã'yÉCqÇwàü;c³QÔ'Šû{cD±n¡’I{ ¡3 ¡3„R #A­Ô*rÏDJÍYJE¨$ž÷T®•ÝT×=–£VB–eĉ#‹Ë©¦ ôÕÎsBw‡àÞ*„Üi®1 M ÛÐÐÐð—Bøš_ú‰ü÷î8ÔæÅÏ¿›k:¢NT)ˆ} Ö°®2#î죈Dw…2ëã•F(²þ)(Eˆ:à " ¤$R1R*!$ACÖî"UŒ¤ÅdlXjõˆ#ÍÉ#YêGl_z”ƒG—ÀOèõ²““éø×â¸3¸Y¶bE³V–nÿá½çª`IB ¨ÁKTdQÂl8Féˆ"/yâìYd+F%ûˆÓƤŽqV0ÏIYÕ-‡¤Špâ8£4žé¬Bé”Ѹ`Z”Æ0­,q’„B xÎÝw¡Tå gè%’Ãk}ú-‰49å`“‹gØÙÝb:¢”À”†²Ì«Ã‡üõüÏþ÷[ªëÊÚÁä=ïyï×û0¡¿z”3ç Fðãœ^¶ÆÁ¹‹!8|û=<±¾ƒ)xAeqk‰ ’á$§r®ÎO`ŒÃz^à¼C‰¼,°Î£•ÂÙ’²ÈQB EÀ›’`+$o ¼3d‰Æ™ %Á;Cðǘ2ÇSdðȰÆàm@«˜@ ÌghééĈ’–rìkG“óÙÏ~†K—.³¹µË¬²Œs‹ч_øâ—ÿØ=÷ÞnµÉ{÷¿üæoþê«ìé?æU_ú"ºýT6FÊ%‚ØÏÅi›¢Tt;BG€hᢈÝ ³FEX­ñ‘ÂGŠE8%ð 'äBÝõ„Ô(™¢¢ˆG¨("J4iG i–uR’T¡#ÇÒJF?rô#E„¸.ÈuH)´áã ?Ú\cž4fT 7=ë/~õùóçù‚/ÿbZ­§N=Fw5áØƒ/ç@­# îÕB ŽcZZ£ HS÷ŸD*š ,P’ªªRÌëÞæ.µ®v{Y£ºmŽVC$kEóØÇ8¸¤ñfåOmwªÚãñàK:ƒ§o¦mùÐC½á%/yÉ×~øýð-ZkºKEQ°¹¹Iž>B–elílÏ'ÄÇœîŠàÈ‘# ‡Cn»í6Ò#-._¾Ì`0`2™\S¯[UÕU˜N§ˆho’­êšÃ¬Ë`0`sssîª|†¥n‹n·KQ(jEx8ræÌ¬¨÷§1%®ª ?òïßñ>x«ËÝn÷?:th³Ú|rß§?ýiª*BkÍl6ãŸøû_ø<*§q¾âÌ™3¬®®RU;7ɲ ?£Á¬Ê±!Æp „„ pœ5˜‚Tø ñÁQ!ÔçÆ^mm¡näI’e­E=nY–µá”µøP?'RŠ¢˜a©´ËÒ›â¸>4ÈVDš¦Q×çN†%»»»lllàƒFÌJóö×|ã·ø[qLÇ_yêÔ)îÞ¿Ÿn·‹RŠý‡ŽÂÒìÎ8µ¹‹cÚÄI†õ¢Úl–×ï±$Š"º™„¼/Àú˜à%ÂÛúç¼Só Šy}»Ð{u¹(M,ãEÍ®”r>–IÀñç4—þ*à›«LCCCè6444<Ó¸ªóȧ?õe‡ÛžïŠ|›Çù,‡OçXM :Ë/3”nã¡u8Ý"MSú¦D² 8íRâ#…P)N("‚ÒhcP•®Üy§˜§x:éæAAŒV),c详Õ1 Ö/Òë¤`'%àfìno½úС»^w3mNÙ^óßømÿëw}úüÙ\ÚØºS.G[ÁtÌæ`„™LX[=@;k1ʧ v‡Í-fã Ý¥>iœ0™Žèõ;´Zµ›ï¬È) ËæÎ6QT~ Nµ™å»L&ʲ¢ÝîpàÀl9åòÅÓHoéÄUN)Ç%V•ŒF–SŸ}”3§Ÿ¨Ý~Ó6ãñS¿ÿªWÅÝŠ‡sœF¼ø…ïúÃßúèß)g†^ë)³sIˆ/åDûVY>p‚­uY^]a¼›ã¥$i­2š•äÖ£uÀ˜ ¥4¦°h•‚ðH¯ˆµ„à±Î …Æ9Ci-znHäͬžÈ:õ5N3H´g0¨.œ«S˱„Ç–%R+Dëm¶Z±bw´M Ú±"3b‚3ìNf¸rÆÅËf%¤Y‹K›;xôhíÀ7ß’Cœ|â±Ï<8>»Áó¿è6ö MµzVž"†¬"Ògie˽ 8R3)§è(!j%uk..‚P‚Ð $¥ JàU„׎`4q%ÐÆâtí¬-e½@Å‚Xi2©‰"´†8QDHåpA³×cù¼,`ÖÑVs±ihhx¶Ñ¤.744ÜÔØªxÙ»ßýî¿¿"/ó¼ç=õKõ|ìÁ‡^„Ô’Ï>~šṉ̃¼z )<‡Ð F8 òµ§‹Á+‚€Æ„+n¤r®ìj­ëÚܹë2ªv`Ž£„V’’ÆaJ¬¶HUÅJ/BQòØ£ŸâðÑ# S–úk}ô/k¥Ê›i›vúkÓµåôÃûèŸýµ<Ïã,IÁKÒ$£,+f³'A(IQ•ìt»FL¦SΜ9Cœ$¤iÊl–#„@GAQ•H©É² ­5BÖý>/_¾°të»bîX[Y¦,s´TUÎÖÆ%Ο=ÃÆ¥ËXS«Ã†º†´,Š'úýþ7ýä¿þ×·l]áR·{ùCïÿ­¿ƒuÒ”Šb2e-©{«æZ°ÿ¶c•²µ=Q»ìjQrâÄ ^ü’—rúìy¶Cœ s'ëZmõʪÄÙ€Ô ïëß+ëq~^‹ sE·ZÔ /ö`¬e6+¨ª !Ô¢/ki网C@K…5µ»²±–ñxŒõŽv'£•ÆÄ2F ,“Á.»Û[\¾¼Nš¦H¥ÙÞàCøýÚ_øå[qÿø¦wýæ;¾y{ý_ù¢´Z-z÷¼DlêTäÕÕU”Ú.6(f³IÚA§^ÀÖîŒ8«ûO!Ô&b !HBPs·dQ×늨«´œ;Â+’(&‹jWfE¤)$©¢ßƒ®ô´•&».ν’Å:!„?B=Ú\mžm4ŠnCCÃMÍd:þâÓ?Îw|ñ½´dàü¹ ¢N—xõëç.¢CÄR–Öƒ™¯Íu„PD‰D‘)‰'n_¥A ÁDý¸ ):8¼ŠÑ*!Ã;ƒôæfJ!Ô)AÇÄ:•súâY"ÙG¶KI›ªP :à ŠÓãOž9ó“'îzÏͶ]_ü²×¼ÿÔ©ïø­w½ó “‰Ò¤Ä &EŽŸYZZ"k·˜Ç`ëN‡Ò ;|vt!"ö:HeTÞb 쎧"¦e’ ÌÓ(ÓLãÄjIL šî’HÍp°Áàâã¤iL© Ãd0d<EI·OQ–TÕ ¥Ôn©¿þ†_{ã™[ù˜^Þwàƒ÷<ÿ‹þè£ï{ß—‰0 …'ÏǬ®®2ôZ$¬:F«ln˜L¦N±5Ì9i‹(í²²Û[ÃyÝeÝö'È_öòíks)‹’2DøÀÝ&Ó1Þ{Šñ­RT¤éD1ïÂQ•³ZAt3²$a4.)¼D©ˆ^™v;ãüÙ'‰¤£¦¤ÚQJiʉas0aëòÜJ|(g9Af¶Õëÿô-»ø†½ï3ŸýGÚ]Fm²Â²U@áœG ÉBF ¼ H¥1´pÞ/W(ƒÍóÜÖ¹ !BÖièv~«"j+k„é5Á9!RbqÓZ"£ZÑÕ* ¤@*÷4Z®Ÿížü˼«¹Ú4444nCCCÃ3Èt:]F´ÛûýY‰¢EØ4MAJð˜÷ à|Ôµ‰]¤¥@)‰”Ì—õ}ž¹K°œ×–Ö=[÷~ú ê~ºÆÍ{îj¢V‹3k ¥…ú»„JC€K—.í;yâ®›rÛþõoû»oMµXy×;Þù³J ¡”Béh^[h¸té*Ò¤Ý6ÃåË—ªÞ>ÃÁ€ýûã½g{{›ÞÊÞ;”R˜Ê1™Lðn²®E ÎÖ}@…ªk‚·.ÓM[¨DÏë;·Ûáh'uïн¾¬ó^±C)å·üæ»n½ºÜ§ ñ¯zÕ«~ôSùÈ+Ë<—ív›¸,9|ø0ùÌ0 xÑñ㜼}‰Ç=ÅOn·ÛX[±±±ÁÖÖyž#•dww—átAýæ/¼îu¸UwŸ & ê¶ëm¨ÆY"•¢•¦,ëÚg`Þû¹Þ¾ÎÍëmC x÷õãÖZD!O¹Õû¨vÁRd˜»bûEÝ=“©úßW«µóûþœ¿'„Ðn®4 M ÛÐÐÐð SEK)E$S‚DQ¢º•õ’ÄYZÊ@ÈÁKbÝ¢på%:b–)—CD‚×µ«i¨ •ñ¼”µ‰ðx©kÃ!P«_€z>Ùô„¨€HãE‰Áà”EL¬VÀwNRæùM=Î~ÃßøŽŸîNf¿õÛïü·­V+M;-¼ÄqJ¤¦ƒ†Ðš‘ç9a>m>yü·;F^Tì[í³²vádF>3Œó’Ia0U17Æ1!¡0–$TÒcó1ù8Ǻ’Vš ¥ ɬ*ës‘`\ ²îb·ßû[ozÓ›Þól9®×Ýÿû÷=øÐÛßóïü¦È_âÁcKL'3+2Êõ„|äÏxèÅ/æ®ûQùÌ£Ž¤ÝÇŽ¦ì vIL‡‡ uÌúú:£Ý!®4ó{ƒ3¦®3ÇS•ï2hêŽZ‚4у«ˆ´&Õï ÞfÓ ÖT˜Êãx'pv„µ–ÃGî䨑;ñ2b:rþüy†Ûd‰¥%=-mpùÍÍMΟ¿È`R‚ˆPÞQXOnÜì®;ïþ?oéÅ·jª¼-i+MêJpŠ™ªˆ™ ðŒü–dàû‹¨ÕÐ*Aú€ç*ŽÜÇp¼Cgu‡D ‹ %%Z ¤ HY³N‚ÔŠ @QKõã (±ˆ©" ƒù‚ÝÓº¡¹Ò444<‘Í&hhh¸™©ªª­µ¦Õj]ã uͬ1Ç‹ç×sʺ¨VŠV«6¥ªëB¹JÕe¡êÖ7ù´7¥ÔâgÕ5“{ÊL<ÿlïý¼OiUc@)”RÙ;ÿöwþý_}Õ«^õ-ιõÑh„‚Ù¬l¥¬kc«ªš+zý~Ÿµµ5„Ü{ï½,--1ÙÝÝeww—Á`ÀÎÎÃáÑhÄp8$„@’$ ůÕjÕu¥ÞÓjµ(ŠbÞT/Tª²,)Šâá8Ž¿òÙäîñµ_ûµÿ"I’qžç\ºt‰ÑhDQŒF#>ùÉOòäO€µ¬®®²ÿ~ʲDkÍÎÎÓét^Ÿ GŽá¶Ûn£×ë-Ôø½Çööß< Y¨ŠÑ¼&wï÷ªª˜L&L§S†Ãá5=t§Óébÿ?~œ•••º§ïUí©ÃEQ°¾¾ÎÙ³gF‹c'Ïs”R´Ûíû?õ/¾•÷[Y–+{.ÕH Æ ‘øy:ðÞqmª 7<`ŒYl7¥ê1ãÀR½snO]ßÛ–µ¢+’kÔ۫Ǧ«]–ë€øŠ¬È¿Ø4/k®4 ÏFE·¡¡á¦f:ÙÉ–õ}oÀJœØ!ë®B4cœi·ú Ö¢‡‹#JVÚÊŒEʈ~–¡Î–O¶Ø© ×O rC*4*lPä2Åz‹‘¼Gé0ï¤p> …By‰°–¥¬ËöÎ:.Ï¡¥ÑJ%) @+–@én…íüw¿ûŸ¿ëàmoÿ²ßøõ·þÜp\~I¢#A 8³@ŒÄ•3ŠÑ&q”CKšõ'FŠˆK› "ÜÄPNfà<Ö¼€,ËXJ++)B´˜MKÊYÉN¹ HðšååÕzà Ò8asó2Ƙ7Þu÷ßý“?uëO}.:+·ê«¿âoþßïzÇÛ~èO††h ÇŽ ³K§øàï ½‡'NЉ QG¢4[—.S•ŽƒG[D2¡½Ú&îîc<š²¾¾Îl:¥Îh·Ûx!ƒÃ›‚(RÈPRæ%V)‚mÅ´4HÝÆpócÜ ‰ÒŠÎj“Oèt{³)¢3¤Ø}‚³~–D+–b‰F!ƒdãr]_=šZ†“œN§ƒ f³ò‰ç=ïy?z«ï7U„l©ÅKœOWÈóœ“ÛgÐ+ÇÀµèå)aºA1ºHëÄ*–œŒ ³rBÙí¢´B›«1DZ³ ¦ L#ÁLiŒ]b@13¤ÂJ‹“¶î „ ±2«/ÁiQ $C^Iˆ3¢:A¥¾Íó˜ƒ×uP,7QÒHh5›†††&Ðmhhhx&1ÆdBˆºîÕû…ªºWˆ&¥„¹:u¯Êº.Î.”Ž$Q3Á˜+ï[×¹Õ£v¯n®?ÿ®()Þ{„`þq¬®ô‹uÿ]¥Ôü»ÕßÙ{ß¹U¶õ×~ý7|öÁ|Á«_ûÚ×~ï©Gûgqwª²6ŒöÎÑn·&äyÎÅ‹)Ë’8ÍÈg“ºÎPÔÊwš¦ÄRŠˆÒ„N§Ã±5ÁÉ“'yùË¿˜·¼ù×9}ú4BªªÞ)Þ{’$a:2›ÍÎ¥iúCo{ÇÛáÙ~|åk^óŸþøÇ¾úÑÏ~ú¥i#¥dss“ååe¶··ùøÇ?Î¥K—hí¿}¡ÄF‘G–[[[”γÿa¤V$q‹v»Í=÷ÜÃG>üaŽ;ÆÎÎEQ ‚CHOUy&SƒRu-n”f$Q¥<Î{t¬ú¼ÈZÇŽàÑO‚8Ž)Ë’~ô£\^?G;I’„ªœ’çœ_¤3÷z=Ò4]ôUžSEÑwýÀüÀ-߯¦,Ë®¨¬ÖZœsèÀ¹yÿíÚ, @ À;¦Ó)ªÓ©Ý’E­´ ZkªªB¥á®(²à'{ãОB/÷úé.”Þ+Ù,{u½õÏ« Õ–Û×ñÖc¬J’æZÓÐÐк Ï(ÅlšFJ€’àZ Zi > @Ë…!‹s­4Ò„”€ Nclq[¬¡5(57u‘"…w‚07ÜÁíÍ %‰öQ]—+<Â×µp±„$V$Äq¼H uÎéz‚ŠL…áø­´½¿ÝüÐýøü§ß|ûo¾éMoú Õ7 !˜L&È(Â8O9œqq}ƒ4ëàœ>{šÁ¨ ¿º(ná=´²6«««d½J)žûÜ#ÜÿýTUÅÃ?̹sçDôzKE±à•Bˆ_^YYù±_ø¥Ÿ?ûùqîæ¯ù¦oùŽõS?ùÇÃÉpUîìÒou˜–Qi™Nr6·vXV´û+Ä‘DIO;ÑX[°³q™Ù¬àÈm'¨ªI’1ÚÞ!HÅÒÁ¬<ˆ5Á¼eÐp´Íl6ÃE+%¥ˆ0²Mûà*/lЊû;vŒ\ºt‰i%ðÞ°oe•õs§Y¿ ˆ%tÛºYÂl:ÆW%!xò!>‡ßòU®1F5›†††&Ðmhhhxf‰¦ãQšÆ1D’ª4ˆc Î"UÝÈÁ!­Eãë`–ºg¨Å#}ŽŸŽ‰»+Ä\™Nz‚¯ñ"àÊ‚öuúŸÇ"¤CKPÊ’JV‚Nª‘ÎàƒÅ ‰“|¬)¨f³[zùOþù÷ÿ.ð»?õÿäKJ+ÿ§Étðµ>˜;|QØ€+s¦¹AêIÜ"JÎx¦ã—•ÂxW»5W#¤”L§µÒ—$™O³øá­­·8pà-¿öæ7>öù| ¿ø•_ý–Çž8{ׯ¿õM?¤T›$Õ€@IÁ´4 <çÏ ãˆ(ë ÓÆK’Hƒ ŒÆD€Ñx‡"·õ±N¥åtLL>2ì0 E’Ö¦`i‘F ”=€7c¶OŠ3Ÿ"]@iIÚ[¢œ 0.`l ¶Â˜’í ¬­æTkkkLóÖ;ªIþ™£GþÏ?üÃ?\>ö“ÀéªÈÓ€Gé½,GYPVTUÝ»8X‹³%"X¼ˆiŒV)ÆR! ´‰Øž¡JH£º”¶T;œðuë4Ï¢”ÂãC@ÉZÅ•ó¤-@ã‰$R¯ê…ºë WÞBè6444nCCCÃ3=FÍf³lOÁÝ«¢æn±u=n]'D]ï ¥‚¹ú|XÔÁyﯳ¢Nc®SçõpAÎçu$,e@H¤Th%PÒEI¢ ÕÂͪ…+­R–½Â8¥eY>+\^þá÷þ£øýßþ­ïÿÓ¾ï¡Oò_ZÅ+:ÎíƒÁàPeÎóœÁhBQX‚ôz=¢4¡,K2íÊ¢(Î-//?VUÕβöï?ôÐCùûÿàÙæ0¯ù›ßþ÷~øÂ¹Óû?ñgû®ÔDD]‰ˆUU¡£c<ÒYrã1Ã1*n¡âŒÊÖ=U§Ó)Ö;¤ˆ9sæ ëëët:¬µØwï=£É˜Ùl6?æ³ÙŒsçΑ¦í…²ø|g ± ¸P!¬'Icf³vZ!©LA1¡µÄÍëR;q³³³ƒPkí!Ä7üʯüÒ¥gÓâ[!UJ-×÷œ®ëíP×Άº>®ÊÖ÷µÛí¹ã²Â”–×zïžsYd-²K¢(•sEW°Pi¥¼â¥¼WŸ{­‹üžÊ+^ÝzÜÌNŸú´8qÇs›6C M ÛÐÐÐðŒˆÊb–¥±ÆK¨D Ž""­ÁTHu<ëx4š,ªÕ^”ç@% «í˜™+‰ðÄBKÃ$-ÐêZ;é,„€ž×+!A"鈔#‰4i2ÒL¬Áiˆ HBÅ[ÚgÕäñË¿â+Ç_þ_ùÀüú[Þ°zêÔ©ÃÛ[;G.\¸¼?/Ë£­V‹²,ÇAzÎÚ·´µßêÙ#GŽ\ø‡ÿè{ÇÍýô|ï¿ø±ïþ¾ïùnyéâùïÜç$ZÐjµ˜æU½ˆã=Ål†±:D9£È-*N(æí‡„Öt£@»‘Æ%º¥)¦[DQJ»­ˆtI‘ãœ@H…w%ÓI‰c2m‰D òS¼)¶ IŠÉŒÜWˆà™UR8´RàÍ"½z8Çš$‰Œ†—„ßúŽw¼ý‘gÓþˆ(Š¢4Öiœ „@K¹hédMÀ;G˜§/×­mN’,Æ”Q’P¹ ïJ@ÐÊbZb³ Yo™Rw•h0©%BÕÙÆÂ³Wõ‹ðõâ\$JÊZÑ•©º¸&Ôiðˆ­‹ôeMÛÐÐк Ï,‘µ6ÝSm÷\gµÖõd2„«æmA­¢Z[©ÎZ¤J:&·‹ÚZéö\L¯Ôçî©/RJ‚¯ wNÌJ¨•ß+õyµ®bŒ¡~ѧïÍz­µÑ³y}ó_û[ÛÀ6ð‰æpýïÃÿï_þ?ÿŸÿãŸ|W~æÔ“ß“FEQÄiHU%AÅHY«±Ž@µêzX)Éóœååe–––8~ü8ÛÛ›ìÛ·¬³JYZf¦ È I>Ø@å˜;fתb¿ß[²¥7x yžÅ=Æã1Ñü˜×q]«]äiš2›MêÚSk™L&j­¿ñ×ý×?õlœ7)¥5º{½†Ë²¤ª*ÊRÖã1cðÁ×ãÈÜ]y2ÉëÐs®Ìj¡XYYA¯0ÆîÕèZ+À_å¨Gyî:´b¸Cì!UJ‰ò)P”ÈPJK" ©rèPÒN Âa‰…#S%‘Ÿ©‚LXÒ\YâlE1 •«Õd ¸±fG6ü—òÃ?þÓÿäe_üeÿhs0© '—†qi0D$Ó¢ÀšéÅt;ÛÁå»ttÅ=GV9²¤èÊ)_ôÀq2»ÃÔ– e8«Ø- S+Tݲbh,¥–„("´'íwX9¸Õ9±¦I‡’%=ÁY´‹]€ªª¸¼¹ñÇI–þ•gi‹€èÒÅõt/Ȭ]¦((ò)!8Bp ÁW8[¨ê~ÔÆ°i‰Ép‡åN%<ÆNÑ*Ð"ÚÎWž–„Xƒ­rZċס#ÐHaÑÊ£•CDžHA¤A O¤ë¹Â5“<ÀËÚÄ uå/òÞ/ÇãNsÖ5444nCCCÃ3GBHöênsõ¤z>¹^Ôè*U+'@Y–L&BQÔÊ*µÚ+¥d6›Íû^ºE]›{¬ªÛEÑBmÙk¤µ^('J)´Ö‹Úà4MIÓtÑf¤Û½Ò@¤œN±Ö6ãlÃïü£Ÿú¶oû¶×XkÏÌf3¼÷TUEQ‹ãÐZ‹÷ž,«•_k-q\÷ã]__gkk«v¸ÞÙa41ØÞÞæÒ¥Klmm1Ni·EQ „àÈ‘#?~œ^¯‡”rQÛEÑ¢uï\ˆ¢ˆÙlÆp8$I’Ÿ{îsŸûÕo|ãÏ<[÷I!FÉÞø#¥$˲…ó2°Pyc‡£,Kò<¯kƒE ˆtóñ©Õj-²D’$©_½§Ü2ïÕ]¿÷^fË•^º××çʧ¸.×ÖWœêkCª€"Xk}sÆ544<ÛhR—næie _É8Qx)©¼Ÿ·ëë‰s»Q<ÕdˆÉKZ"E©6ÃÐŽawg—N¿G^2¥Ð²rEpo¨ª1I[eídªÀqpxoH¨ˆEAâ§h£I¢„DiRÎWt—V ՘膹ƒ 1¾æ›ÿúoºíö/ù…_ø…íœûº<ϱÆ"¬ŸTŽTGìnmÓJ4±‚õ󧈵$–7ë2¦Û%Ik™~¦IФBaŒéÑÚ³o9%kE;´#Ö(‹Ÿ­“†ŠY5†¨ƒÀÑëÖmŠF£“éc ƒÁκÔâŸþê^÷úgýˆ„˦ӱRB’èê\c “É„n§‹-+BY¢"‹õ­®*É'»„²Äæ9Â' êÌ“¢ÌÑö' ;EN–dTÚ“)I¨À:pÞ#0HêÞ¼AÕ‹Ε$BIfn‚'êš]ͼ‡î¼ÅÚ"î½&Ð!„ªª*n憆†gÒÐÐÐpó"DÛ#¢(ZÔÃI)a®ž.T‹¢î›ç9Ƙúyó @eUUÑétµ¹WÜLåÞ„o¡ÆW>:ݯžXº+“Þjo·ÛEk]÷ø3w]ÍšÙð߃/þÂ3¯ý…_üú»ï¾ûÛ½÷g÷Ô>)%išRív›¢(ØÞÞf8²²²Â¡C‡pÎqñâÅEбµk-Q±¶¶Æí·ßν÷ÞË8yò$>ø /ý—ràÀvwwF‹ÌçÓétñãñïýë=úÒßøßxýçþBv1²V[ëqh0`Œ¡ªªk—ã8F)µp]žN§L§Ó…Ú»×c·(jï,Kç}Œëì•8ÞëÎ5 ñÞ¸·×¯Wë+~õ} ã÷Å}áj«©½_ÄâêÙî%ÐÐÐðùI£è644ÜÄ„¶)§Dj”Æø€ ta‚Úsm )Àx‡) ZR#=¯Ýu‘á*ºQÌ Lq&Æ1ˉ¬û€Š€‘Î!æNªÝ(Á{ƒ·®Ìq~ˆˆ@Vš8JQÎáY^êãCuT<×8f54ü7ð=ÿìû~åOþø?ÿÇ·½ímßsñâÅÿMé¸W%EU⸋žóëòâQVWWɲ˜ÝÝ Ór›V«Gœdh•ÐkuYÒý¨"‚ý«+ÜwßI–úšÿÉïñ;¿ó;<ñÈ#hWOBœ!y>f2›üžsîÇßø¦7üÎçÙnÈÜ<]|¯|ass“lùø@e Ê*ÇçSzÝ•…ã±ÆãgS¬vôû}$A"ÁÖ:}dUÒVšqY’´ÖCj2l(ê…3[/Ä­TXa‰ƒ!Bsø²¬ |U„ʃöŠpÕlÏ{Tj ë‚hÆ©†††&ÐmhhhxFiåy¾èk­EÅ¡®ÉO4å\š „…êZOôêIèžj²¨ëOôªª"ÏkGY%“E­ã4ŸR–eí¼Y§vq.ËœélBH¦È&±"ëjÆåxQÇ‹×äyN'kX8EG“ÓgeçÄmM \Ã3/{ÅË7^öŠ—ïo¾ã¿ôðß¹µ±ñ­Q°¶b¼3@H °±±ÁåË—IÓˆN§ƒNkµ°2­ ^hÒ4%šÕ)°ƒämo{gÏœbûÒÆ"+B* (Œ÷E᪪ú½²,þíï|ÇÛ>OwAºW˼W =NéEõv6ÆP–%ÅxÌêÚ>¸ypY×7ã%I’ÔãÕ<¥XJI'ë°qi@çð¶#d§CžW/Æ:c ¶(çY%W”]c ðÞPR"T…"¦RÉܹêsý9ç\'„°8לa M ÛÐÐÐðLP™V™¤QŒ’ÒyRWËΆ¹ãi=YóX”Ö<Á¹¹³À‡Ú5Þ#½'”ŽPTèT9C™O¡Ê™íîd ÕjQj…ò`‹nZ`̘2 ŒDÅR¤É‡o,®2H Ö¼³H­ñÞEÑÁBØmvhÃ/^óõ_÷Èk¾þë¾û÷÷ô]ïz×·ìììü5±/{H âñxÌh< MSÊÂ0È'=CÉ„(JH“6Ñ.nŒ Áá|IQNq®DªzA)‰R¤ˆ)rC–EQüVYù7üúo¼ýƒŸç›~m:+M'ˆð¶n[Öï÷ÙÚÉç¦QŽ(ó6@žj6E8‹V Ý,X*WÒŒv;q€¶T òœPzªAí |Ž(gP”³å8Ç1I’à«ê4gCŽp]LC>h‰ñ)ųå«BDιÆu¹¡¡¡ tž1ŒQÆ¢(Z(¬!„…:{…ú~-Ôb’‰÷ u]7Wu÷R ÷ú墎vẼ׋t/Ð5Æ æ“ȽçW•a6«UáÉd¶èŸ%jñ=ë¯o”÷¾1¤jø—¿ú•—¾üÕ¯üià§ÿÍOÿÜó>õñ‡¿LñåY+yAš¦w··TUUx)æj£a2Î2ž÷©<:xoIt„÷~˜çùg¤pGÙïÝyçò#?öƒãfkƒw.›Íf´U=Ö”e97äªët§Ó)UUíû@ÀOQõ¤Kk¢4%ÌM¥\põc}¹xM¯×æâ`¥Ú ¦C’$©{òÎǼ¢(ØžŽIÓ”~¿OÅäUÝ ¹.X‚–ö¸¤…Òõëk·øëݘc_“qÒÐÐк Ï%EÛYbY¢d‚·‚qšC B(¤MQ6£•!‡ ÀGDh‰ •w$x:•'ÞVõDÔ»Å-‡TÐö=­P­.¥w(±ª>CÅ)D “ ™ÆàMIé äÄÒkw@f R‘Q%. Õ„~³;þóßõ÷>|øWo}ë[û>úè=çÎewîììÜ彿ÛZÛ !ìWJµæ BÁ{wQ1ƒpä“Á«GOž¸ëÑŸù™Ÿ9Ýlѧ"…‘ˆÝ.2•T2f3Ï9*ÊíM ˆ@;d TH!"Á Gé§  …D¢¼ õ•²Œ³ t,tM¬°ø¸¤%Ž@a*uk´ØYÂlJk©¦ÄÈ:ˆVÞA,ë2°¤`{\²o)Fæ¥P‹ÍiA„f£¡¡¡ tž1Bújwñï+/û¯xïßwöº§¢ì9© ®|«ou/KqÅʹ¡á/‘oýÖoœß®áÝï~·rÎBà5¯yk¶ÖÑÀAY–´½¼ë ‘ñxL/ω¢6UUá\Ý7—@ˆÅx³§¦.¼®ºïʘ³7¶qñî†c âiÇ´pÕÏ¿èXØÐÐÐк ÿÙKùó‰â¢õÏuAæ_$Ð7>¯œï/æ)ÊÁ‚ð8_›òx>${Ï8ë1Î#‚ Èy=ÞuŸ³€n¾ú«¿º nÿk‚ªª®)ƒ(Ë’Ùl½+c P/|!êl‘ëTæ­Îä5ïe­¿G€ðœ_Œ×[W·A›0„ºŒÂ‡??˜m‚݆††&ÐmhhhxfQP×Ö†ÿΊî<¾fÂxýr¯ÞWÜ xÝ{½÷¹7±UÌXŠ?7Ènhh¸5Ý=—õëÏë<Ï I¹>ëžÚâ)cÍSßR\£ðîÕê^=&]à^­_?f]¼îõÕý\lä644<[‘Í&hhh¸Y !¨=Åc1© ú©©Á7 $…üüçS•ÖÅÑ$ 8ÞÕª­ó(ÞºZU™¿¾6²ÒÎ œ µºk,.xáš› MÛÐðì vÝS‚Î=³(¥ÔÂØNkM°¸n‘îcÑâßÔŠ® üµ ®¯#VD‰¸fܺÑB €ëöåÿ9sõY5;¶¡¡¡ tž¹@W.‚Ë«'‡×+ÿ•ŠéݽϻZÑ}Ê]˜võãB(|°ÔµÀT]λ0ÀªÕ!ÜüÕ„" óz8ïàà‘ä[穊±÷ÐéIU+ÄÏCÓÖòœWfßðØcÅ—ŒF“ûØÇôöö6£Ñˆóë) ‡ÔŠ$nQ˜Ïž4æwO®íß÷ÅGåСÇ;vìÌíÇ÷ÿ¶üx_¬°Í‘Þp+Í›êTã½:|um°y•;û5£Îuýo:]9\»&¡v\¾ÊÞ[7w„HY»-KQßöúë^ôªz|‚ºaP}5M}nCCCè6444<óîSúè>½¢{]kÅämO ¹â¤|½¢»çœütŠîÕ“Á=¥&„@˜¿Æ9Ç¡C‡¸8Ù¢ª*"$Â_1¢ºÅ—çXk¿û±'G_÷¡}èðÇ?þqΟ?Ö1!ªªª'òªÒ“d)UU1MQJ±»»ËåË—ISGÉ^š¦ô;Ù_ðÀýßóÒ‡üÈ'o{K°áçt,ÆÍßp pèpQŸ£s=ø§¨¾WºÞ_kZ·_æ·«žA<Å…~¯ŒãÚ`·¡¡¡¡¡ tnæ@WîMü{·ù°ÄÂEùú¨tO‰Ý›“/ž2Ü l=oìWÓ¹â+(êž•ø€Ò/jXU÷Î;›ZˆT‚ŽQ$±•)0Æ oÍ^ºûïzüñÇ¿ûµ¯}mïÒú2S”3”1äÓ:]ê÷ɲŒÒZ¢4ÉŠÂ8âT ãŒHƒh'TÁP•[‚Ìø½<ÌGYá^ø¼ç=ïo¿ì‹îüÑexcsÔ7ÜÜxðOÉøX,”]5=m ¡«Ç««êc¯yŽ­ëp¯VtE˜«½âÊû>\›áDyâk}x€?µW 4ŠnCCCè6444ü¥º‹Z·§I ×+·OÇu*îÕ©„ÖÚÖé^ÿ9{ŠðõŠ‹÷ž@ý>Æ8¥¯2}‘·ÚDR{ccãŸÿÚ¯ýÚí¿ó;¿ÃþýûB°»»KYåôz=î»ï>BdYÆh4"‚v«Ï`2%ëÄì?x˜á´`ks›N§Ã¾Ãûé÷VY߸̙Ó牲„¢(xòÉ')Ëò¹§ô ¯|ùKÿ—{n_þÞ×ý 7)òº1j¡¨ÞplºAMÿ^®¤6ÖSJ!æu¼W5W+ºWM×s×û \£ÿh݆††&Ðmhhhxæ]}u°ø¹'dá†LB `€˜¹|qm ë<îê·6j¾’F@!® ´…_ßg=ƒñˆÑxLOb©ˆC¸ƒÜcÀ/¼å-oùŠw¾ócX^^f6›‘›Š¸•qèð>î½û²HQ“É„•}+äeE¿×£‚íá˜átŒê­àã„b2åðþ¼ä _Æ?ù§ðÿô§ñQâÂ,f78¶þàï¾ãÑ}¯|ÙóŸóãǦßîb놆¿”… «Ç¢§”&<%Õ˜§,²]eÞPѽú}sê~Þ‹ñÉqu}°DÌûë^Ë:¯EÜÈàês·ohhhx6ÐøÉ744ÜôcÔŸ«PüWÌØ®ŸHÞ¨Gå"hþ¿ï½æâÅ‹ŒÇã+-kí­äºü’ßý™Ÿù™¯xó›ßÌt:EʺJÇ$I‚ÖšcÇŽ!¥dÿþý,//³¼¼ŒRŠV«ÅÎÎ!öíÛ·hsÒéthµZdYÆÖÖgΜáÉs†½èEEAE UÝ{Ïùóç£÷¾÷½ÿü‘GϾ…à—›S á&CÜh,Yüœ;­ïÕýÎqƒ+´7_šºÛ††††ÿrE·¡¡á¦¥*f*Õ=Ýc×÷꾑ÀÓ] M ÛÐÐp#„{é³{®÷¤¤ªª+½§©— Äõ÷{-‡ì5nýz\5qÝû.ÔnËHEDílÎyfÓ‚å~ S˜º­¥ÖXïjçSyÓöÑýï|óëÿÏ}àØÝÚ$ QÇf´{)_öü/á5_û­¤qÆ[ßò;õë»w¡¢¨rfeD«Û¡SY‘S‘㨼Ø@9W›fóMà¥ÄÍ*Œé ITŠíå.±ôdi„ÆâŒ¥Õj1™Mýñ>ýö—=÷ð«—ûKkΊ†¿TB4!¤Ô”UIb±h†ó–[ï-ÌÇ“ ®¸%_ JŸj*%¨;„_o>uýïW÷¿a`+áF_ýi«?šà¸¡¡¡ tž¹Jk¥µFk½˜Œ]膠®±×«ˆE ÜS&“W™½ìºW;) !PJ]£?›éb‚‹ Õj!JG·Ûfõ|sO…¾ùø+ûØÇþ¯?ú£?b´{‰¥n†++:Ý.±Ôt:î¿ÿ~îý+…n'ãÂùmŒ1H) TΓ—–Òl¸ŒC2--³ÜQ90Þc T~¾M)B ÓS]ÙÎI¡Z UUáqtÚ=²,#ŽiËÕŽÉ{ýç]Ÿº¼÷<¥T=ÑÜS"$AH<„" `çi¼¥w´ºp¬«_WÙ›¬Fךçl\8óï^÷s?Ûü<ýTÒÍZ´V2{²^|>drñÛÎ\2ÌdŸÖÚLò’AÐT œŽ™Æz*çÈ…Å G§a¾}KÝÃ9Gâ%ÖÍHbI)Ž>ÈÇâª1&Ÿ`lA9)é¬-!B)=‡í‡áðÓ§Ÿø…{î¾÷›DãÆÜð—çöG£$D«hî€,H˜ÍêìѼŸvÝk÷*ã©«Ç)AŠzaîªÔcïÝ5-ÐBpóÏ™/ºÉ+.{®ÍAÔ${âmb®âʧºs‰W|.W膆††&ÐmhhhøïOA]­ºî©€‹v{¿ß Níª¨õÚ‰àUêíÕ¼«Ÿ#¥DkMžç Ôçt=½úûUU…-ŠZq™;.?mjá_¦ZƘ7üøÿø¡Ú-Éêò*/ùsîì:í‘ãÁd­ŸÔª¶L§S.^Ü"„@«Õ"ÎÚ6WŽÊ+*Aá„|ŠÛôÕ5Ö{‹RÖ‹yžS‰– Ýûúµ½^4M‰¢ˆµC‡˜L&_¿µ½õƒûV×¾¿9;þËqIج Ø6²Ù2ÿEÄeYBR/’íÝöƳgÎe³« íl‰Ð§C®R_oÔG÷êû¯–¥T׌c×}7v‡ß[×»4nCCCè6444<Ã\ÓÍ{ž×» Q× -Ô«‚Ök&mR€ÚK¶ B$ ü\ö „¼¢¨H%ðÁ!„žAµ’‹P8 ç%J'/ð•c8š²ÒKp6`'Šn"GÓÿÈý‹|áÎ… º-Éʒ毾æ•$É Ik™Ë›Ý•ƒ,÷Æ&“ —.MHº+)JS¢EŠ0 |剢®2¸ªB—%X ¦@”¡æmV\›H+”„Hkb-påŒó—6˜Ífœ8zSL¹çŽ£Úß'T¢j@GG¬*I¿»Âr‰õõõÿ}6›|°Õêü‡æôxÚ€V8îžcwmnåwž»pþø`0è äteeåÜmGŽ<¾ÜðiàQàp1iTó§’B§H9#AUY”Š d@ÝZL)EõH±¸:êÚܥטIÍ3Xj%Öá…‡à %J^I™¾>UY A@Ï?MÔõÁþs.*6»¶¡¡¡ tž±)¥”²VÿäµÊë\tîZ%öú ›¨+àê×óTWÒë'‡µ:̵ÏWq£^¾{JÎ^ï\çÃá•ãm¬µ‹ ïÍÀŒê¡OþþÿÝ'žx‚I’ð‚܋֚8ŽYZJ˜æ3vwwé Å#<‚˺„t )%Y–µ ••+PâX\½ßÂ×F]ótsç’zŸ™ržn¡“ksF£§NM8¸¯GÇt»]V{û>Çæ#z½{ÇÁÑ£GÅ#<òÃ÷ÜsÏoƒ¬š³d/¸õ ä Cà[¦S÷å—·ŽŸ;wnåܹsìììðä…ó ‡Cò²î],´Z !,eqü@§›rìèaVVú=vxç¶Ûn;³¶oß{ÚIûmþ´¶ÙÂWȲl\:çˆãxÑoÚû颖])…ŒR°îéɽºÿëR—÷Æ–ÏÕ×{Oùý‹dŒ\Y䆆TM ÛÐÐк Ï EQ¨ªª®¤è9_×§õ̓]ïëÇ1€Àã‘Á#”B¹H#Þ Ž÷ZƒQI „‹Ôåz"9¯ ‚@ˆÚ}Ùê Š8ÉP²î¦ª•/jeçf™D[ý³w½ã ‘-/‘õÛì?Øeÿþ“8p;ÓYÊpwƒ™Ý%w‚GOo#SA^)Òö2ív†mt”0É=J&di ªÅ´°TÆ£D…1#.ä8;¯‹ž»Ð2J¼ˆ$¦‚ÊV„Aΰ€n§O$r®dÌ6¶;çþÿìý{°uÙzÖ‡ýÞ1Æœs]öÞߥ¯§»OŸûÑåè #Y "’ErHŒ«\1ESE°IìÄqʼn • …Sårâ•à v™‹ &NaRn±‘å 0GHHHêst¤Ó÷ï¶ok­yc¼ùcÌ9×\k¯ýu·@ýõþÎxºVïýí½öºŒ9çXãÏû>òâg$©Ï~îÓ¿æáÇ¿ãîÝgÿì7ú5Ò¨~ÚŠüËMËoûñÿ±oÿéŸþû3?ó3„ÎÓµ X.//.<†•¢”87ã\Þz÷’¯ýòe±àèÖ×î[TÇßñê§?ûo~ï÷ß—?ùIþÊ3†?WÁ?úFïØ5Ü{÷>Ÿ{!Í%eYâ;°ryy‰éòŠ¢ m[(ˆÁÇ€JOTMêç qªEAd×;`ð°êŽþß*:a5!PUÕHº­µ;k!(Ú?nÓ4˜ªBcDÌ–hå×™èfddd|xC ê•lܽ’å¿é{x•­ò1Ý©“òÖu™½osßyøùÖ}5ì˜[yﯾž'OüÞýÑýío¾ù&‹Å‚ùbÁÇ?þq>÷¹ÏqûömÎÎÏyôè‹Å‚ïøŽïàìŸåÍ7ß$º9ôï±(Rü¤ ´ÁÄÓEƒ˜¡Z *ˆ D"Þô†_¡$„°3æÉT'ý;OÛnxøð!›Í†gžÑ¶—ÛMŽ^†j»–²(¹uëÖŒÑÿcÜú’àÆúÄ™ÙÿìþýûÿÚŸûOÿŸ/|ùË_f¹\ry™†£­=¼àÎg¹sçÎV¬×kš Ì«Ø!b ³Ù’myçw(‹9Ç·”¯~õ«¼öµ¯éÎ;_úµŸ/þÀoþ¾ïÿ¿,Ê.áì|RºÒW{tt”ưmSoÿ´’ãÀõ?}Œýª”é\·?ÿL+[Þï¼¢ïч«=ÙÎÈÈÈÈD7###ãCœ£†ÝNÛ¾Sòãˆîd1gŒ5Ó/"éÆEã°(U Ãèh:$]-[6hŸ¥k‹ W΀ ]ð´!ܦi»Àü° ª.\®þðõŸÿUkÌ›|ñÛþ…Èí¯ãùOþF½ûwNr|ûã,nŸòÂË/<÷:»F}ŽwÏ:ÊPaŠW:*±ão „ºõm8£-[ŒÌiµEiØ2·5!(>FÀD-j“¹˜­*ê¶äkïžñ³_}'Ïr×ÕÜvI!«7fó9eQ`­|ëåÅÅï<:¾ó§¾‘.ˆcø=ÚÙÿõŸü¿ÿÉoùý•¿AUUX+œŸ^°º|c•Â>ÿùç°Æ°([š³KNŽJ:SÐxG, æ³#"B]×ÜyæN*i6ŽõªákoßÃSCuD1ƒðš»óåŸûÏþ÷ÿïûÞßùÏ|éÓäËŸûFž˜¦aªŠ÷‘ÕjCY.±¶ÀGI!€™]™Œ1iófpxß#ÁS¢›6Þ`êÞì\šÇD#ˆM®ðbRÞ76õåö­ioPK„¯#Û™èfdddüê4sd À+$ X´ hÜ1®2½‰KRc¶NÀcF¥µc)à`|(›r(ù+Ë’²,¡Ýཧm[è]˜§y˜O "òé/ý¥xýõ×ùïùv¾é›¾‰“W>οýÛ©/.xíµ×€ärük¾óÓÔíŠY9ã _úÝ—”Ç%g±Ã•%¦p`Ñ8Ä[¢XcPiÇE³ˆà¥WžD‰´ß401¢j1¨%ö› Æ*¦0l6éõÌâ#¾õ•Û,–‘º®9{ã >óÙÏîÿ¢(þmþ?ãο1X.ß­ªÿî_ý«ÿŸïÿ“êOÑ4 ËãgG‡ëËËKÊ¢à;¾ó×P8Ãz½F(h׿ó9wïÞ¥3Nk¼«¸}û6áþýû\^^òüóÏóñW?ÉsϾˆ]Þâ/ÿè_cå…õzM·nøÄË/òc?öcßüs?óÓÿé?ûýïùÔ«Ïÿ¡¥ãï£ÝaÎæ†ÍfCqûvr[îKˆcŒ{µ—vèËM›6‰èêž{üTѵý†ßð|C¶ø{«µì8CÚü(ÌQ™èfdd|C!„`öKü¬1Ðëãï&e„* vO@·*­)¦±@2š[i_⼿ØP£XI¿Fƒ´'o}Oo¬S_nh;ú&^ˆŠyÂ-ºMÓüö¿ý—þ¯Üö|þ³¯¢aÃwþÆnñÚopÚÀÉÉœ^=Á:Á2OZñ±Ï¼Ê»«ñjŠ4f!¶&}m¾Ì'ùÉf\zmfôðÊûŠHËÈÈÈxÚkU222>ÊD×Nˆ£‘Ôd‘8U'¦9”û ¹áoÓÂq7ÿvª¶LÕëzt‡÷zt!9²ÆGÕñ#P8ÿ¹Ÿû¹xð௾ú*"ÂK/½i›†ËËK–Ë%/¼ðÏ=÷BR²cÓ€+¸¼\cŒáèhÁlVP–%EQPUU5|}ï[QEúûªªF|øÙl6ÝŸ«ªb³ÙpzzÊjµÂZËl6ë¶{´›Íæ¿ûô_Ýÿîgò'ÿÜÿðŸüüÏÿ<ëõzìÑ<;;£ª*NNNøä'?‰÷ž{÷î±\.ÙlR…ÁÝ»w“i’÷t]7ž¯]×á½Ç9Çlj1â½çøø˜¿ñ_þÿ¸¨á×ýº_7æ"jbY–<ÿüó¼ùæ›·ÿ‹ÿâ¯ýgo=¬ÿÍo”9iZ52½¾ïÜI¥ß[;{ô‡9hòQÍEug>;ô\‰ ÛqÎÆç™ÎU‡æ¾ý9íËÍ¥ËO-²¢›‘‘ñ‘…÷ÞLKóF¢»¿˜ÛË¡ͦ˜fU*b j×ß7 *(žÝ΂4- }r[&©-É'õ€1¤nY`Ê’[nN{Ñ@ÿ8oÆ|Þ'Uýâßü›óó·Ê·xõåoÃ1㛾ëûñíó¼óð”µÖeÁƼÎѨř[˜jI¨AgkšXc'Hç,!(Ecð&PXÁ»@0g#ÑBi±­%v ][¦M†Ð`ÕccÛ+èýBQôýׂ,Mkx{mY<÷"ó™áجˆ}lË €iŒÜºuë7£EŠðÒªÛ§§§ÿׯýë¿ûÏý©ÿ3¾K[ßçsŸù8‹Å1o|ýŸ|éÔuªÒ]Ö|ê¥sqZbêÀËϽÈ3³[¼óÖ)rûdY`Ú¼C¤¢ìÉš‘ÙÂÒåbãø{_~Àí^æ—ä§yã’jñEâbÉr¹Äk`c…î²áÖì.'w–ö¯üõÿêßÿ¾ïýîÏ=w÷èqkfê§yN\ØEì8“ÌØ‚Wb#Ž )‡z “ìoI3Ó0?IOtÇ 7ݦÿ Æ{¨Rˆ9hFuÑÝñ4ØÛ´ÛÙìc>*h™èfdd|C ÆhöIåÎ=H<¯Ãt¡8Ul-÷ûåeè9(‘±,9)—œnŒDwªê<¡Í‚ßú?ñæùå’W^yÄ‚µ¸Þxã îÞ½Ë[oý<¿ü•_äÿÙߊÁ‚÷œž^BßËÙPDKç@: A…hh b‰`ÍVE±I)6Apl´#Ñð"Éù5Z ‡+R,Ór¹DuͳÏ>‹™:ÃöÇd6Ÿë[o¾ùÍ{éÕ§,ú&~ìâââÏÿ¿ów¾çoÿí¿Íú쌋‹ nß¾Íb±À{ÏK/½Äêç[¾å[(Š‚ÙlÆ·~óçxtÿo½õ6ŸøÄ'pºÀ^FÂù9*†ÈVMÆi3[P×5ÇÇs6kpöãSyþIõFJlq›P3[(_?;ý­o\þÃ?ý_øÜ¿x‹¹ç¤uÝ©ã˜J;Šª9§î˜»ÏY5,ï*æÁë”±6D)Ö`:‹Ì5аJjj1CcI©ž O E ‹„STWx-Ñh’K¹­ïpe&yxM>¢c bÔÔ“+‚ö½ïÄ€FÐ..·Ô¨íLƒhÈ8™èfddd|h>æèùçÁÀééé¨p}°ÇÇÇ0éžÍf´ÑöÙÂB`½^Ss̱£, ›.ýÎ9ˆ\§‚kÁ¹4…é{¢Ç^ÁÁ­¶/Å´}V¯8f3Ce"• }oz31’rw­e|Qb9;;ûŽ?Eç}ÚÿÓŸý3æ_{í5XˆIµ1µˆnݺÅs/¾À§>õ)‹ªJh:ÖëKÞzç”{çž:.(ŠëqmÚH½é¨Û@ B§ƒ¡‹ÉÝÚõƒ]”U¥, nݺÅóÏ—<û쳨>|ÈÅÅÏ=û1îÞy޳³3Žo-9^Þ!ªÿçßxó?|ë¥Ïþ¡§tZª¦óÇ`5ŸÏû¾ÙcÌè„­èè þ.U†D&}ºi‚I¦SÆ`í¶4yîØ÷Ø÷ØWƒ“b¯×Ïýsd3ªŒŒŒLt3222>DÄݰØ{?DwgýÖ/"½²øÛöáÆï‡…ä-4%¹CL¾§”ˆŽ˜EQ½O7 ©T±"|Ó>©4?ÿ³?Ca,¬›5T..N1F©JKðŠgy4ˆ'Eah}*.¶ ¥Ã7—¸[·q¤ó8ëðÄ€˜¤ q5%N:œ]oÆãûÅ|Ÿ ZX¬U )pN°6R”k%ñYH‘Dj¦#}o¶ááƒÓÙS³¹›ßÿ‹_}û_ÿ™¿ÿ3”m Œ+NnŸ°ÒŠÙ‚ÅÉ^xéã¼ú‰Ï±n=ßý=¿³Óÿà'ÿ[j¯¬7-g—µà¥ ¥ó‘°nPµ4]GÛšà‰Á4*ÑX¼8D\"fâ#ˆ+ðꘟ¼‚Ø´ãÅ—O躆zµ¦îîóâó'Xç9šUÌŠ—xðî×ÿà[ßúG»û±§.kWDÊ}BY–%‹ùΕ`ZlQÑönì}:!„+CÃü%"c)>0ÞýM¾}BšLïLÚšâa˜ëúÇ”˜®óSbž‘‘‘‘‰nFFFƇï½l‰î®£²êĵ¥_(>VÑüÝT‰1"ÄEvê˜:`MÉÈä1¦ ÓÑ$…'ô޶mÛÒ4Í“¹ˆªJUUé}LÞçà¦Û¶mR]'Ò©ö1>Æ”X›þ¬ª*îÞ½Ëé£ f Ñ*#ô¥•Ãx%.*“Ø&† ‡a>ÆC±·@ßþ1Úo:€¦T©‘8LÑuÝKOËå7å+_ù£âOü‰ÞàÈðÌ3ÏðÅ/~‘GMËígžãÿÿ”sÞùú;ü½/ÿCÞ~ûmN]rvvF핦 „àX,8)©¢Ã{X_DBœ*ª†h„ 1mC` ‹ÅkíxîcðÞóöÛoóÂíáö11¶”•åù知rMÓp|¼‰T•ÁŠç“Ÿü¤¼ýú/üGÕü玗·Ÿªœ]í'"™(°‹Åb«¤‚—Ôý&XTÑ]GxI­é:ØnÞ ×¥È®ÑÔ°ù6%½ÀHž§úßÀtn»†¼g¢›‘‘‘‰nFFFƇ‰‚”¯1eÙ_Ô„ 9¨øN î´ôo_ÑõÞʈµ–ˆ¦Œ^“œS·€HY:â: ™ÏJ,’zIû,Ý'ƒHˆ rVq|ëºÍ…‹ßQºŠu×ÌŒ%1T«ºYS-g”ºnͬ,X”3î½ñóø V¡t–®c#Æ Æ*FCHj¬#"ª±=QŽ©RXÁÅ:¡°JéÀÙDk»ÖD|ì°Fæ=M°ÅLnú¹îcx±iš?ñÿ±ÿhÞžo8*6<{lùÁßôm|üã¯ðË›;|á×~7X¡[oøÊ×¾‚--ˆå_)îP•3ÌÂbƒ#ø]@µWØgñ`L‡‘ úˆšHÐHÄ¢bQ—œ­Å9T…ºŸýê»<·áÖ­cfEËg '·yûí{Ü{ø5>ó‰W0yöÄÑn೟ü–Û§Þù33÷î÷Õó÷ž2²»%‘*”³›Úã»5Þƒs%ƈ)P’j~(úlÃf˜ëöç¸#M}·QÇ —©º;üll©Áì¼Ö>L¼Ÿ¶?>Wv¥ÊÈÈxêƒÓ222>ÊD×È^Ù~¼Ð¸p|>4”/_×ç6¨™ÃãRt÷ËŸ§}xÖZB¯–>aܾwï^9¨tÖZwß}—®ëpÎ1›ÍèúØžp"Bˆº®wÆY†º®ÇüUç„â•Áý2ÊAý:t³Ö޽Îι±¼,Ë1ö¤è·e­±;Ê01`Œ1o½~ïF“]ùƒüÿñO ¹¸Ï>û,_úÒ—øÜç>GY¦þØnµb}zÊÅÅóùœ¦iøò—¿Ìl6c6›™Åóùœ££#–Ë%³ÙŒ¢(X,ãýöï?üµÉ {ø™µ–ªªR¯vÛòõ¯‡Ò¶-÷îÝKýÚeÉåå%÷ïßçèÈÑy˜ÏÓá¹{÷î·>zôèßxʦ%7\ÿ!„ñ:躎‹‹‹y#mè˜ëàP¿¾öCÓˆŸivø@v§_¯«:yÜ`Šövÿºæù'##ãiCVt322>òDwX¤ ÅÇ-üLèË"|à~ƒ’;UQ¦$- )š‡íï•(ÒD<÷Ú?þÉßû ?õ_sKà•£È Kå›?u‹ ž=Ä>÷2>¬hêš6zªydSŸST'ˆq,NîÒø ,Ä'g[\³ÁÇš’ФÁOáŽ(FSµÒíô¨‹8gñUUAUñh9_]òÖýsŒ1|úSÏÒ^¼Ëjý.ÍjÉñÉ1Cl´1³åÑ¿õì?2rë—ž†9I¤g®}eG@)ª’¢Z5%Q“2î#X%L6’èÔEWzî)WâÏv îº@‚ ªBŒà}L•&€X3vÁ6ÛëˆÑ&…³%»ÛM¨—ó'NFFÆÓ†¬èfdd|d¡)‡fg8%º×¹êãX¼^K|÷oû È©YÖðýÐ÷:(½O°*Pžyæ™1çóââbÇ@˹dÌ!ÈcÔ\™NvãßLoSÒ»ï?ôè¦MsíæŸ¾‡ÁãæÒŒŒŒŒLt3222~PU•ì/˲„Þôe§¬¸/Ž}¬×ÞPGú(šþç]×Ñ4 GGGcîtQ9s¼á¥Û+¾íÛžEx€[.hgwXÞ`)j–KÇ‹/ÜâhQ±˜W¶,°ó [-°åœr±dyr—åò„ÂáÊ’¢ª(«Š¢,qeI9›QT%¶p£•1Ž¢L%í"®©1(¶2Dpå-¤ºÅ&ñÖ=áÞÃÀ3ûÿøÇxù•g8¿¸5F"1vÀŒããç÷ƒûoÓÓ0'ù¦µb 1š®fqt­;·™/Oh=Üyæ| —J‘Cl!l‰©1˜ÔA»ã#cÄ9Çz½7Ú†¶‚®MŽl"kÝÎFÚtÎÛ*èÍÉ}À(”HHE)Dm­·ŒŒŒŒ§¹t9##ã#‹Ífcß÷÷úv· Å|\ÑûšDtJ¤‡ûXk šYu]"]Cïëz½XŸ‰Šl6›dLc Ï=÷@ÊK­gåd>ÄPÖÝgƒFð½Pj'F9Î9Ô{š&b­!ømünRº‰[ò;ݬ0Æ`T'÷ݪQnT™SôPY¤ݦé¨Wg,Ýécž „ð‚÷þ6ðÎM;ÇÛ†ûG~äGJUåÛ¿ýÛùÜÛ¨\2;:‚ùœÓ·OéÌëósŽn3_, ªøøÇ?ŽÊ1ïÜ¿¤¾ˆ´m‹µÉñW¬#z¤ÚYœ…Ú$¤ÒW„~“È$~8F#íØ$õLK™ˆ”ŽWUÎѰæí·ß擯,xfYbœãäø|:ç¬"…+–eYþ[Àï»ésRÁ„Ʊ¢(˜÷*zY¶xtTvÓ”ÆyPŇM9íç )ÑÝoÓ8„}3½«óÝö~Óvô7Ùo*###ÝŒŒŒŒ.//í• ÝÇ]y’æÄý"ÊÖ0FáJfå`,5ºcQŒqľ‘‘¨XQD#ÑwXBÛ`E8»¸H†1>¹²À^^_®¸»,èTp³EÊ  ƒÅð]Ca\ŸM›rnËYET3Cúmí08æE‰i:šË5Õ³GÔ]"SÁ(ÎFBLÄ8š>ûÖ€3B!a­1X#Xk06R¡0Bi'Š“He¡0ëÕábÅçŸCÕ÷C‘Ô Ú¡´âÃæÆÕ^VßüS?ù³¿ý—ú'ùÔ+g|×ç_æ…ÛϤÞïj‹G¯|†GñÒ‹w(ŽÀX-ÅüˆW^9wÆì¶áÁºCf%R4ŠÎ¢C:IÇ!ZpV‰VÐÎ Ö¡E¬ÇøˆéUGØî¥ò\ƒ”é:4R¢Æà B]ðÖ£G¼ñö†çŸ=aîúœånͼZ%Jyg³êwŸÝÿ÷Nn=ûó7|Z$ 6‚SªEÅ­çîàÊÆ­c)Ü<]ÿtã8îç‰öª®ŒTwjºw¥UÂHºIÊÆ!ÝTÀ‡ˆµÑtYXM$:ÆØÇ…Eb$9ŸݺҥÐ9^(###ÝŒŒŒŒ u]ï*xRËdq¸ïª|°G·ÿ}*ï ; ÉýhŽèE1ö‰ÆvÈð¡¸)º®K ŸÑ Þ/7› Åí¤Þ^^^©÷ò´mÇüϦi˜»iý1…)… Åilb+Ìf3ôâ’õzÍ9J9»Œ™ö/¦‡¾†Q5·˜¨£c?¯±‚³×gÎÊ}ön×uÄÞ5º®/©mÁ¼ZN·xïoÑ5˜üëý¯»ÅbÁç?ÿù¾\X8;;Ç,eiXܺÅâè\þ….5,[¡š/8>ŽP9ÌRhXPKÀR‡í¨ú^Q•Ý>ÓD” ÁD¥2ëÝŒè(>e1Ël$ó٠QËo¼Á7æ„Pú#b*Q/Šb¾Z­~¸ÑDWDÌp~CRtONN0Îí\çι~ŽˆXìXº£l òÑ(~ƒm8ûNï²ç?¶[ô}ñïGö>c+ºo¼LNÊÈÈÈD7###ãC„ªêþ‚ï=î¿]NrteèN{Ò†^¸i)à` 5"¥;êö& ш¾C4bGˆ…s4©s¼FIJ懶Þï[Êb†XC|OfÆt”¥ÒÖX”Ò À(ª)WUDÑ삎dÍX.*D#¾kS’­Iî³ÖÄÔŸiLRlE°b{Õ¼?.ûrå˜n QœÕ~î“’kÁi tŽFA š6°®kJ[2Ÿ D7@ìf!4å#M~õϽù³ÿ w áÛ?õ||Ä/¿³àëonxÑÜánqŒ?¿ÏËŸù pѿה'ÀŒº¶¬½¡‰P-ðQ‘Ø!>bƒ…­Eеçlr´6užh#ÖvÄ®C]H%ëC©vã&µ<•ÑY+‹¾/ز,ŸçÑå}Þx»ã¹“Û"³Ò%UZÖ:b £”•û!àßä9)j°C_kD¡š-Y…- L+ WÚ¾V1€÷~gŽ9¸ñ1!ºûÄvì¡WC4†€â5Ž¥åûÄv:¦¼_ß“íë´Ÿcß÷›¨2222ÑÍÈÈÈøP±¯æ>¶,ù@îÁ…jŒ “¸›ž OL‡ç§äw0»úr‡¬÷ž®ë°}ïëíÛ·ßW)õ¯&ÖëõBDF'ØÅbª}n1†‹‹‹íûT[õzMU.Æ…²snÜ,\}E„. ‹ô]7Úí{ß=vbL*¯4[µÐß £8—JšÝ*cÖÚÑ€gìuL¯Ž¶mñÞß0Ijóòßû»÷{º®ãä™gY,EÁåå%¯¾ú*¤¼ãù­‚¯ÿâWøØ«·pv–J—‹‹5ª©'TcÖÿÎz¨hœKêj‘HDƸE{u×¹Ïý¹ÊÎÆ+Üx ‹ÅhÎ6Ÿ—ø¶Lªî«·Y¦S†¦MñUV¶„«ªªßøàÁÏ?óÌËïÞàÍ·‘ücSÎçP–”eIÑÊØÇžÎNM£>-I6É*YFõsVÿ»)Ñ})žöçªz^ç§6ôã§yN0r5K7####ÝŒŒŒŒ ƒÂq×°\»8œ”ð!q$cÂpP[¦ Ǫ¦~: Šz»%·!z ™+©†ñçG·féõD1ÖOd¹^¯ÅY‹5UÏlVˆGÄbŒR•!`‚  %p~ñ»wb’Di ÀS•çÀÌ!Œ±0Q±."!"FRVh²ZN=º@d º†Ò¤·3IÍ-¬¡tŠ5Iá-X‰¬W+îßÂHŠqÑÐ;Ū->Ô¶mÖ7KÑíâoú‰¿õ×nÝfÅ·ëgÀl˜/ ^üÄ÷òâg>Åko~•ûï¼ÎÉݾúó?ÇJ¾øÅ/RÙ#œ™£RÑzãp³‚¸H}ä‚b‚bÁôFTâé7 V*,‘èJ¢”¶@ZM}º! ±íÉQïlnzB+‹ä \µ¸Ê#¬5DkXÜú›úœwïN^JnÝi³®CLì¯'óìùùùw?óÌËù]—*"lÚ¬),çÐP9·÷£ƒr:™Ó†ÝíàEtKt‡9ïà\6iÓ˜ÎWÓ³+9º}™sÐá±cÙt&ºOó:2AFFÆGSs–÷±½²Ð¿é Yt‡ÐNo‡\L§f0ÀNDÈÐ#7”8—e9º×NË1FBgÖÚÍ“¿¦i>¹_Öˆ1,‹ñuß½{—cŠm2v|ŸçççÔuÍf³a½^o{ U1Öâ\Š ÑÞAy?+÷º‰©ûòôkRžÍN¿á°ÑqqqÁr¹d6›q||¼}ÐmÎè¼ëºnaúï?xð€W^yeÌÂ}ñ‹_„¢`>Ÿ³X,xðàªÊÙÙËb‰3!xB`TU‹ÂRôÛÖ¾Þ* ˜Ïa6ƒ¢€ªn–ª*¨ªj¼ »Ãm>Ÿ3ŸÏwþ=ïå2•ŒÙ±ƒÂ{ttÄéé)ƒØ^U:—bØq5_­V?t“ç¤Âý6Êzw8ÇühLj£Ø#­C[…¡ïgžÌw‡6ì—{]†îÙ}yº™èfddd|xd ïíìûE5£‡‰CèÒXº.€5ˆµøÔÅ@:@™»ŠvSS>¤2v1;E° …D¡*Jœ8¼v4Ôç‰ÆÑ5†RÚ¶8 §uœžÖÌ[Zî¿جfU÷ðÅOjý$Æo³¾¬l{É-Û°Ù´€…öœ£²`.‚4 §ïþ ·â¨Z¦ß› …m(ºŽ¸:eýÎ×8‘š.v‰×Žó‹<ë<ßtâéñèñ1ãUú'yæ™gF5—þõ‡ìÍ97q1FWUURÒû1e¢¾çbY–ãWŒé N÷ÏSˆQñÞsëÖ-êºîÛ­£µáñö Wö÷Rݯ»¥üãäV>¼Æ1¾¦î¡išÛ7–èÆãTÍ•Á–<]oXkÇ~ýá>ªþÊ<”¶çôÐãïªÅ‡ÎŸIËÅu÷y?ý½èÕ ßŒŒŒŒLt3222nó½’1¨©u(å›.L÷Kp§åÍÛÒÂä<±Ó‡0ýôììl²¨|‚¼1‹$ &7u]Ó¶íHNU…’9kRµ„qã͆bB!éºèšŽ”Ÿkð>&§îd?ÜoÃz½¹É3ÉÃD‡*“í^Ea ½S9"X'Äèw6Ç®¡ÐˆèXz¾¿Ù65—šöã*[žF ]׎vg‚ÊD7###ÝŒŒŒŒ*ö\—E÷j²ßÃ{sX8^·€œ."‡þÈA5뺎¶miÛ–ÕjEÓ4´mûD‡$„°ãº|ttÄÑÑóù||Ÿ;}̓ªØÿ®ëºíBÙÚ´IÐ;ôÎçs.//™Ïªž8ë(÷-Ê;*øåååN”Ó „ýÌëõšÕj5ºÿ7¨Ê£rÕuÐ~¡¶i†Çº1‡!p÷ÁƒÏYÍ#Ñœ¯{23œ‡û®×Ãù7Œ§H2õ²ÖrrRE!Lc¦§ îVὺ¹³¯ä^§èN3“‡×´^o«ôÓ1Úk EQØ£½©ÓŒµ6 ¤}¼n&=å®ÏÓL§Rî{‘ÈíßDw_­žo¸†û Ï7­>î·¯ïöÏëþ¦Xþ ÉÈÈxê]—322ž"®»U'ôd!徦\܈ú­Ô¸ô‹Hµ"ÛÇ—þŸÑ¬„@Y±º÷¶«‰Ú¶£m»':ëõzÖ/Î1ÆŒ%ÈmÛ²®–Ë%F“ƒô@°’LíÑÔ7gmOVdìÖ®eQ8šË *ÀÆH"-¬6H#T½ OëÚt´‰~Z‹m[ » 03448µ¬ÖĶ&TÐø€Ì*ˆÂzÝbÜ cܸ3›&)Т„Ð¥›„›£èÌé£3£ÞSCµ@¯îªp –¨‚Ц÷kÀbˆbU:£8cqF³b+ö¬ÎÏ8:^pÙWx«Ä("$÷ùýµ³£üIR}ÓmRt-(‚˜1ER‡%Ò6!½—6¨UD·yÖMÓÜmÛö.)øÆ¡( ™VwH¯Ü")Ww ¨Î¹4· ;$Rèc¸ûX!&$x({w¥ÍBcDú9ÈZKƒ¢FFó+ÔúÉæÆ8)Wß–V§—Ógó¦qDäÍü ’‘‘‘‰nFFFÆM C฼Ôjº­{e‚;ª§ì:˜nUÆ8öPžvuž³ëº¤Lò¤„Fo=zT è¡çvóèMÓŒ÷Þ»j\ØçÛÞ]I¹­ýÀèÞ<<Î|>§ &Àf³Áw–²L=¼MÓÐ5ÍèÞMrV6EZtGß"AR_i×°Ù8Öþ’Ù,õ¯®V+D¤'XKl[li3:]G_½)ç¦5¸ÍfSŒ„®ô@çßP90Ü!°&FèK‡4›ÍP ª*Õ5G yŇÝ«?KJa¯ ý¶Wúu·ÄÉÈV%tÎaŠb'lì;¯¸ÿ¾ !ÜXùpz¼v²n{E{Øh3Æ !5îd ?NÝ5Æà¯q™Ÿª³Ãk0ýµthÃowŽê_“ s_¼rcÌ:jdddd¢›‘‘‘ñÅc£3DQŒMýŠÖš~ÑžúíaÝF|8I¥*6Ñf #)Ä&…¬0£¤RÚ¶àiÛ¸S6ؼßx¤ê0Õ£G+cÀ9ƒ5mãie•̧ŠdrÔµ‰H•eÙ«º:Y§±Óè‘ô^½Sð¸}´ä­‡—/øÍ é±c½Æ¯/u‹é6\\\e±Xà+C§Õ€+,ݺÅj m#«ÕšY±¶åòbµ%mÛw X”ÕúŒ£“Û”¥ÝfµÞŒMl»iÅŒ½·bf ¥SP1ˆu4]ƒ‘@QZ @è°R¢Fq6ùöZº†yµ$ÆÀlžµcíq ‡5I¨—Îý‘üšÔ>+lÍÛŒöe±“ëȘ­¢«Æ¦Ç“òâlGiµõ½òH jSÉûXV gçTUucB§DÕCØûÝ6"(Ý ¦žóÑàÚÉ«ßò¤çl{q‡Òe‰Š›Ä‰µDIׯt£NCDú>÷AP>hƧ½Y67éfddVL5µˆ1\\\$2PUµóÆÀ6M#ÃXŒcÚ+åÓógè“.Š"1Ó¾ÜÕ9×gïZDØÉnŽ]]×£÷øÕ^Ýë”ÞÃÎËûÕû}»ÃkTͨ[WìT+=nF9çÜüo¦éôúß'¾ƒ‹ø0Ó áÉäpí¼5='¦×ßôºÚ)…~ŒB|%Oü‚su3222ÑÍÈÈÈx„uQ'ÃÊ|º€n0ö¬EÒÂЊMNÂý„眡¬Ü•Å叨¡nŠÅ,3úè–¤|xßaDAÖ%R–%———lVk,BÓt€¡,gOl~"wTÓë/ŠßEß©²œÑ4Í–(ö}…1F4tXQ ë@!¨HÒšÝOkSÞí¨‹Òv ‰á$eÉ"HTfEIô Q…Œ£nÁ‹u Úà¨;Ck*ÖÑ¢¶ÄDú^È–46@‹ÚöæT^*¼Û®4Aq6R8…à@’ª~¹958[2ÁÚ†j^@»J}˜"\®6´¾¥”AÑÝPÐQ¸È­“~µBš†°Æj¯â&·pÓ{Ž9›~oœ‘¤üšTý`­ŒUÎ(V"ŊÚ€µžÂ4¦ÁÙk"]Û¦ëL fÅ m>¤>Óãã#.//nô¼4ÌIñ@µ†j@5prr¤¨¥©áÛ˜ ŽösS{ß|Ó1+K4D !C·SŠc¤,Kʲ$zXƒ×ˆ8‹×H`k°7l’8—ÊÒU¦¿€íäýäå`FFF&ºUVü¾©WŒ^¦&V×Äq ¿r]‡\XçÜhö4(:EQìöï=¡Ñ¡áªÕÓ÷BÕÂ+êöÞûHïëð{›ö1O]°Å”ì÷?O7¶9¼Û¿›ö‚Þ¸SÌjµ{»cŒIùŸ˜íAa›³Û»Q§ð„!¦H–Ë%EQ°^¯é|Ú¿J–§ý¹Ã¡MOûþòt÷UÝémèßn~Ø+眈XU]>óÏþœqèœß½õJ–í¡¿½îúÙÏú>t=]—»óßM¾ž2222®CîÑÍÈȸaëÉ«uZy- VF)¬`zO·‘ÃÂqxLkŠÞy9©V$õ-ƈˆ1bÄŠ`ûÜÒãûr^©Ÿ$ÑÆ c£‚e§”8ú@o·‹• ™éÙ(ŠbI]‡ãb›¡ýPûž@ÄõarÌ’j4¸YðO¿‹1)Q!¢Z‚‚ªÃ«( $/_Ô ÁºÑÄ£tIÕ¼!0ÄÙêâKAYHê1NÚ+Ñà1¢Q$lÐЭöÆN^Ù„Ž#ÒùX`ð¡EHª{UBZšóK¤W&Å6Z°&Œ`%õvz£IÁíxMßÇ»·µ³ qÖàL¤4Š“ŽÂFœT®€ \6í@ápEï<âÓO%º»=}3“ö½Ïûi}æ®’æŠqK6¥w꽞$‡ˆé«U†kÊôÍÖS—ìiü™ªbDÒóJì«-ö‰®E£B._ÎÈÈxúÝŒŒŒGp.ßãçÓÞÆë2*‡þºA­.§¤pß±yPC¦å…Ã÷!„'æF¥ªfgQ¼÷~‡÷4ô×NÅ—Ø=uWU¯¨¼‡ús§?»NѪ¸ÓûN6dîN{È¥ÿ½ÈòÒqÃ{ˆÑññq瘎…s.™…õå§ãñëûx‡ßcÖ¶-š/ê+¶Y¹û™¹L^9˜§{5/÷úÛ×<(ºÚošì’ªQ=¼É¬Jßkž:T5²3:Wûc¼?ï 3íÝ/ðI.î¾¢;݉êk&NÚÓMÀ¬æfdd<­ÈŠnFFÆ!º2­·üQ?CQ8èU,Õ¤rhïp:]4–E‘Ô’^ÁŒ#X¤AEc($…F‰>BOH&ÕÃ2¢ÄèE é=ªŒ¯%„0Nþ!‹èé;ö™ÁýÏMDMê'Œ *ôzvj1 ±ÿ¹¦ŸE!„3qcL÷×A=<&F„á–Z«5th°[­ ˆÑ#&©„‚î©UmøØÌo-hÎ –@a”Ùâ“»µtR"Á£~Å¢uh ´`•ùÑ1¶´¨$ÀÜDˆb-ÌœÅÐÊ k<Ö€!K4àz±]5e¾bÒxFeT Ek"°DJ1Xñ&P°¡Ä`%RYƒh—rbûèe¤MO@rôŽ¡Áw››¼öð{×Y_ÒÐÏSFS¥Èpc—ðš¡ê_®ræèN7¥¦?ñЉÁtΚ–»‡~Ó-ýN'~ô•*)öiŒËÈÈÈxÊÝŒŒŒ§… ï.  /“ÜÉC%ÐÃï†\Ðá>ƒ:2¨‹SuwèÉ=Ô_zhÑúaAQ3ôè9´S%×3šhí˜|p–fOºB©ãá>Ûéã\!ºîçºÌî÷O6~?8Ãç_á¦Í'Š¢Ïéû“‰J78V/—Ët?¶Šùññ1EQŒ*Ýb±HYÇ1`0, ¬µ¬VõxØvÕÙ©ëòn9ìû½MïÓŒÙýÓd7k¶ëºÙÓ=É{oÖ˜¿¬µãíP_î”èêž;úþý÷+P¹73éÿ¾a™èfdd|£qÝëkÂàþ;Y§re8%ºÓÅfRr å ñ !Ð4 ¡óHT¢zbP¼O*qßYúD†CUÍØƒÛÄÀ;çFçÖ‘¬ìÐ=êØ ízëeI?«`¢Ž*m ¢`%)ÁBL}§DŒF$DF#†tí ¶<FÀšÔ7LÆMŸú®CGÊ@¾9g¼œŸŸ†¢T»‰X?.ÃXE% Ö¤>Zk!ŒµDMÎßm½FŠÔß›$ÃÀrVqk¹ ´ÁRú©ÛïQeðÝÝ’×D„ #F°p&â ‹âLÀ˜#g#©U}¯ûUFʓт§ëÚø´Î?W7ÐBÿþyÌf‘ìl°MË÷Iíu›FÓûîÝéfÞÕ“ûs3222ÑÍÈÈÈø(-"ß›Ü|Ç¢}eë:c˜áµÄÞýöòò’®ëvúRÇÒ'E¦tWÑæéN¿T¸)©½âÖ:}";_‡€ý~æiÏíÔäëТ|ß-vßqx[~ ôÊôØWÜ?ÏM"º!„Ń!ŒÝÃ8çΰ¡ª4M³3~~³¡ë:Ú¶¥m[V«U’Õ­ eYrûöí1Ûy·wßyY¯œ÷ËÌ}Ü-¿ÝkE‰ãyÕ»ÛOóµCRÑ+Ê×ÍM‡²y÷Ï>ù=hÎwx>¸¥6¹îE%edddd¢›‘‘‘ñ«GÖ& ¿ÁµWÓ·q‰jŸCijÐÖ”ZÐÉkÔ  E³øÐaÊÁ uí)¥$tàŒÅXÁX§HÑ"ŠFÛ߯8ºðÀ)˜‚xïXo::ið¦AY`d¶UtŸPI âŒ—ÊœH5B » ‹51®)mJ["*”•-˜@ÐHTGÛ‘h‰Z‚ˆžy©xãh K€‰-Ä€oÈ­·Äõ £lššXB1‚Ç¢´Í#Š(4Þ€³ Ž`) ÆàCÀ‡@”S<çÀ&߀Ö4Mƒ1†vstcÎkêM=îH1ýœî™ŒÇÔŠ[yŒlˆá‚‡çYÕ U©éXSœÝc±>¥~÷¨L:‰%è*'„bÃi÷5¾pTqòî#3'”6RH@èÒµ! ­¿ÀÇ® ˆlÙP8ºÁ˜–¢XwI´ç8íXe¡¥ßp,”ú'gÀ#l)Ô~H±6XñëS·À< ’qÝ'_¼©s’Ë<:ºX¥›%A6ž±4Šë…ÖßEŠIé6ÆÒu[x  PZ$;lm(Ëc7žÂ-ñ>"6¢m“²n-ÞCT‹u³”;-õ'«íZ4v¨¢¢)0Rcò °¶L ðÆ@èRuDFFFF&ºm<ŽXN•Ø©‚±ï¦|HÉ*û9”<Ä|ê¾üÇAöÝé÷‡úù8!|e<¯ÉÝWcGÅuïù‡19ä¶|èçûyºS%y_áº1D×ûå¾RZˆâÞ¶E±3Žý  ªt]7fé–e‰v]oð麎ªªˆ12›Ñ»/›±—zê*><÷Ї>Í^ß4wz]LÏáhÛ–º®‰Ãáëõz¼O¯èÞd›_=x¾MÆ"ÆHÛ¶W*ÞãQ–'ïÏ]ãâm¢¸OÿÊõzà•QÒ«%²¢›‘‘ñô!».gddÜ”Õå"µ#ºÞû±l®c4û$~j´OR·°–!ësïXL qbŒ(;¤·Ù.öSŸ¦1n—Ì¢Dô`”ÓH¾è¾zþ½¤ûv7æ\nÛöe¬Mã¢hƒÙnœ8#×$‡jCÓ4Ä)«À|>O<Ë$òÒ®j–³Š·š ¥ßÔÉ ‡5¼Æ#^³¡W¦×b›¦Æ•KfWŽ€ ЉuêvžB•ÂXf+ÁÛ 3pt-±kÓ±·ï|¨Ë<¡&Ç$öêhì ¤âCKÝ\&òhúÞi®i¿F ´éàˆš~p¨wø™sk-ñÀ¨š®)‹`Œö.ðÐgXGRï0Û¸0b›?e2222ÑÍÈÈÈxò¬wWµxŸjÞ°Pú§ Ãëòs÷³,÷UÞi/åà^:ôYö„ìIɺ&„ cbú¾Ü-A5»9»c.Ìõ› ûl?£wš}»O ­µ;y¹S•üûò€asbÚ£;í¹¾IŠnÓ4:=oF5-FÄ9Ú¶Eæ›Íf÷ôj\Œ‘¦iðÞcM}¸ÖAÕu''3š¦ ( 6M `0FÒ¾ÁDmÎ ï=¢©oxøýð»©ëxÓD#jú×nÒs†¸UâÇsÂæó9ƒórŸï;¿é›n×o¥÷8(º`ÆM˜ÇF¤iUV4-Ö)Ñ-zÓ*= ÚN+)†kòq}¼P—?X2222ÑÍÈÈÈxB‹Ëë×ûŰÐkš¤ˆ*S–=ò¤QRoä^\‘Ä€Fú”›ÝrÁÁìÉZûèIŒ— 2%ºS¢9ÄÚ$ì¶dµwU¾R¢½7Îq¸M~l¬¤þéÞuy¸Å¸»10¦ÝWj}¦ç¡ãœ6’Ó²†#ŠÆ”QšbKnP h½Ù̬DLáÆ÷7Ÿ•©™È7´uC+ýf@ˆ½óv,ÚàÇè!ƒI¿ ~<:Æ78JJ£…gïÜâ+§1ÅœY1c³iˆ§dŽ‘Îw„ÕºüÀüÖ-bL$™Ö§ÍŸÐB0!еžJ!XKˆr–íåÙ]ÓÚ3!KAiب5J{ƒK—SÕ‚ª'ÕxxЖÔsÛGçŸržewÓhwÎꉬØkÌZKäÞnÄ1t˜EM b FµBDt# ý55õ¼'+ƒ¾U#¤+6½ÏþÅÒ+Ä9_(###ÝŒŒŒŒ'…Cjȵ™•ý“åÜøÝ@t¯’©Ý¹ëúÝ’“lOÊ$‘Ä¡ípPr'ýï>¡á2ƒš<%ôÑI½˜}VyU±: \U÷º\Ü©ãë bÚÀ8¢[ÅéÊ÷Ó×p“r@ëº6CoìþFK]×”eI'°X,’Bªq §Õ¨ciüNNó@†'=ϋłËË–ãã֢ܶ´­§tÕk;*õfÕ+ÆʲÄid6›á}‡¶ñ¿i°"8ãèÂ"G'Ç\\\l] ¡Ïõœqç¤B{eÑó±<Å+oc»Œ• û„öKòÞ×Ñ œO÷éæÙpk?Wúܧ\ƒ;ùÁ¾â‰jŸ‘‘‘‘‰nFFFÆÀ!¹¿h;´ˆT`Vt»ÐO;ƒ )Ý)ï3tª Ci¯²[B(¢XF”ÂBèоÿ-ƈs³'Vºc4Óïþkg²HÞé‡ÜwÌåìoÆhÊa•Їã1úröù¡1B X#)×™ƒ¥Ê‚¢‚";BÀŠ{a‹þyÕo#Œn Ñ Ñ´m{„œ3`•(¶['b¨‚íû»S¾n$¢QëÆÒ{ï=EQ$UXéÝÇ Ðˆ†äì{ûxÉù£w9>z…ÛvFÓ)±mÑÕ :ÅTi6Ø®CÚ5¥ÂùÜžŸáµãÖ­[0«ˆêñ¾0Aèê5©ØH`]7ïèbÁ½—4!r¶Z'Rë=Ø%——çÜáU15Ö„»7x* @ŸùúÜçŒGÎûäî>n³ùžÃö&Pý•¤(BÑÏKšú«còˆ>bDÍ6 j¸ŽÅZTc)m9ÍM>*N!ùÏÅñ<ˆÚ"WZ.†‹<ŽóUFFFF&º| o²ÐÈÓ´„o_=¹Úóf®íú-‡ÌÒiùóTJ$Æ(³!çst>ŽqT¦vÆãš2æ}6=Ž\[f>ŒËàð;çCÓ~ß¡ïÙ{qº“¡{£]‘*„ðÂÔ|(é†ÔO{qqK§§§´m‹+7DvUÃÑñ»ë;Û*ò!°\.yô`=¾º®i»Èz½¦ÃQ¸­YXÓ4Ì‹rëš,ÉäªIñ-+°ÑôÇÁÒu2ö_\\ððáCœQ×u"â"à\r”f›·lŒyº,~û "UÆ’òí¯boÅãÝ ®;§‡vƒûëHw7¤öM⦛ZfÌN–í5ÊR®8Ÿgddd<-ÈñB7†ÌŽ:Êûè À@0C ’ü’¥²/ÓmÛ–ËÕŠÅÑZÓ“Á%>*m()ËR,1$1„D|×R:;:›Þ>> hè°Xæóù“޽±ÆSª:æÍ:çF5p ƒ9UÏ´’R?žÖÚÞ(‡¤©öæBÛã1,ʧÿž¾ïTÎq.•^Ç)„€ŠàcDÄšm 9Bôz7ë¢p©ÇP“:ìœ#ÆHçŒå-Ô•EUj5+pErÀ5ŠÂ‚”ÔKŒ4› ]Û2+«t^«1ýñ³t]“ÆÄö§¶o¡( F(£­7X×vØ:à×k*ð±mðõíLÛà|Ç\”J Ò(Ñ·=¡¦¢‹Ö{Ô]„j~—ÖÔMA« /´1⪒(‚ÃKV—ïbm±Ãàoô|¤ª”e>Ó¸‹¢Á}±ïÝep9–ƒ‘L»›p}ººàñ^ûcnP c_®3&¹Æù)hÄÇ\â5ޱS]Û⌉òh'öJœXFFFÆÓ†¬èfdd<¸†TÊ6»ƒ¡OwÑy¨œw[RË•^Óqa¸—7kŒ{á†h¡øË½÷2Àißà 9ç5;ïg:>“Õ}êxîͪ·(ž*µûêñ4÷óºô©Š>(—Ƙ§S NÁé±Lßo|ÓéûçÌ~Îñ îÅιñ8ÀáÞñ¡‡÷àñã°£õ0·Îÿýãù^Çûºs€–qüA7ß>ÈïÞ/…uÿ¼Ø?w®Tn¼ÇqxÚŽQFFFF&ºOÅârJt*'7%zƇÈ6Hú Ê#Á€¨T‘½rÂÁ ‰üžÙLRs’2údˆnÔhº®‰îë;”mdj ;Ó>Þ+ãÞ›V™$ë"Æ‘~¼Å§œÛ^™RhŒXcó:%b`moL%ŠbPT¥W¾ÌÎÂ;-ø=16ëK¢³#4C./’œ‰oP}RŸ[Ú+‚ýxiMªjÀô†[Å–Œ½äIõ“Ôç<üÞ…HråµÑ`úÒt£L6ºt¤XlÿZ"f íŸ(qtX/ž–']ïK0ûצiq¹Ñóejl'¤>~ˆˆFˆM÷ÓÔwŽ$wpØõ '»ÞÌ©; bw® UMqBÆL| h¯£ý”±'x<–ÛŸA8˜‘‘‘ñ´ —.gddÜ(èžaÒþï.ØöÔiÖçtQ¸Oþ¦_÷Ý…§ý•!„¤8Nî;ub~Ró{Áì+«ûî¬É”kKh9 ^o¾FWœ+¤k:þÃ8 eÓÃmp|ÞW‡qÝ?Óc6äfL±'m“ÜP½!'ðAWj ™Qõe䃊;¨Ú×çS•þ¢û^Šë˜Iü˜ãy]ÿçô~ƒ"<¦:äö+[g¦›ºá¦W6Ýö*Cþ H®ðCûÀôš˜:Ã:çúÊ{>ç0§edddÏtLöUò)©ªÂ‡î7¼Óï0L²E7„)í¢a¢,Ë”“ëýøÞ‡M’Ç–•OŽåî÷råøŒù}(][çÜÎ"yx/#ù}?ýz:tú~ŒSæ¾Û²ˆPÅ8®ªÝ)‡4¾¹Ú‹¸GÂ$*„¸ë¶}3ŽœUfBdhÜTURëgćvŸSUÕµÄwJvwÆäõjñ½ÿï1ãuO ׯaò}Ž‡È¯öÇà ÷BÀÝUuWέþ6œKÖZʲÜ‹Ç;ë¾L•òé÷׿\ýoM¯¾¶}Ã7\= —Q=ÓsZ®5!{¼›ò{9o ºy=˜‘‘‘‰nFFFƇ…hű©‡±ˆ]£Ú!¶ƒÝ RcÅAK‹°ÁÙ´A±´ÌRêmðÌU™ûš™Ö½¾¤Ô@í kP–5Ø Ì‚`´P:Po0…´Em…× 5sZoiÙ F!*wŒñë'ð*D«íZ&RiGi”_s±öoÁwÌÖ—( C[à,XM¤Š …ßàË‚è *C/s„BFÓ˜DŒ@×®±&&ç`â h¥;ÃûäôK¯ðÖ j’3†h ¢)êð] F(„Ôç t”´FkÄÌhæñ)›ò©kù¥×ßÖ™Un‹Ã‡‚²º—@‡÷%­øÕ ñ¡¡,˾G<ÝœZ\0¸`úcÅxÐL‹1-‘‰žRRŸteÖ8Q3¼,0~F¬á™Õ žh„Œ4¸X³ÄQ´‘(‘OƒZ‡Ú’N %¡Óˆ) ê.¢Æq4ð5Æ,u­cc…Uoìœ$Vb‡ÐÆt]Ú€?{‹¦X¢xÔ·T.€o¶‘Pb““5H½Î&D‹ bKk º:0Ÿ9Jm±¤2æ€Ãcˆâð¦$hAˆ†¨}5„ï(Œ}‡“¤Ôq”f†oW˜múŠ=GãYc™ŸæOœŒŒŒLt3222>Jx?Š“‘ä²lÄ\É }/%÷º^Æéï»®ÞáñeîI­É‡ÞÜý÷7usÝÿ»Ã6ïÈ•1su¹ªæ^×·»¯Œï;B_=´zíxRƒo |߇;ôFv]7:^·m;ºv㳯Xë{”˜_§ô^w<ÞKÕ}¿ã«©¸ÉÇëC™ÆØuuγçp¾ý쿼]›ãñÞþÍZU䣑‘ñ´!».gddÜ…`’œJS?¡`H‰£x"‡£@I½´iÅç1Ò%1tôÔkŠÞqTÒºO5µóJ ö*¦j øft»E"¥CÕ¢Qð¾%„5Ûž¹²2HU>‘ñŠ1ÊÐ㹓ÿ'&9 î=Žö¿î›)* ßA™öî—Î^K|4 ‘˜(ÀA³_AéîG…è}Æ"’ Áú(žº®ÇMçÜä½Mb{ÆÝŒ]×_Ð+äh8VS5=!°æÚ2ô2¾ã1B´§¿Â€+¿“Ô«£ÜÑ¥ÏÓ ×n¼í“Þé±Þ™´"ÈÈœ‘‘‘ñt!Ol7`ùO® ‚Á5ŒÉSÕdšGºQ´¯x nÅSgæCù¯EQ$7Ý'3ff¹\ޤgª,c(Š‚¢(FUñPtÓŽ2ÄU¢»Ÿ¿9]xO?½ÏTõ>´P/Rp¥¯õ¦]å “w z"'Üiõ¡qÞ9nGðé}·{»Ž××ÿ{©®W6?Gh§Çë)4=ú  ãÏlÔL¯©iµ¹&³zßÝzº‘´_±2=W™WåÝŒŒŒLt3222>2Ó–|UQM¯ü:b¯ðÒß BKŒ-ªë\r™5†A°˜ H”1ò2-b=J—ú„eKÖ¦DWÌ$NH•H$¤LÞ'Tº,"Ìf³+¹¿‡ˆùuùÄ;&QHRéúÛC„gºØ×T¹ð>cÊsUWˆÑ¤:*Qž.ê•›ß f¤ "J:Æ\¥D 3–»OÛ4 ;1Xƒëòx ‡Ø¬ýx!Ržª†˜nº}U‡Í%$ÕXUé¯7ƒ`ûkðêÄ~|Í”¤Ýô²eMxì{¼BrG§r¹Z0É»eÙ¡0Ãõ@,Sz:Î=Û}¢;ݼ›^ŸˆŒ›™èfddd¢›‘‘‘ñÛÕæµ}ŠIÏÞcc’ÁÏÞc쓨CÙ“Ã}erx¼)a›*gOvúúB3”<î;î^§èŠÃ©õ°¢«ŽÉðû©‚4ô§ÏqÂ÷87Ù©¢«ï'é£Å”®¡é8NË[¼ŸK+»¥Ë®}EwzŽîŸã©žn€L‰öAâö˜ãu¨WôqÌ7qJzdøñ??0gIoZuÝy±OF¯ëÑ*ºûîÚSEWz’‹êõ7###ãiAîÑÍÈÈøÈ“Ü¤Z Òç}¢[åÏA#à1€€U$?Ø~q- Äa±É¹9¨blÅl>§‹c‡ú^iÔäôŒD‚‰Ÿ-•”³5厊›D¢†¤º˜äRP¬‘'µ¡h†…®1[}ì–]5„ºJvU¶¡6z Þæjé²\œ‹ A¡õãX’{Õ¬+96oð£ñàFÄ”ß$ j\"”®oÏFÁ+â"Ε}ÔL;=¬Dõ€í³‰{…]†¬húcS/ùäX ;ÄÔ&glQú!ÆÁAú …-³š”4¼Â;š•‰Ù!ºO©2¿’;žÝW”àˆA ªýqÑ€˜þ€hÄ`“ëyï bFu]Lªl™’h»§Üš ;׿û#ÊÈÈȸéÈŠnFFÆGþ}ßs_%Aþ~J–bŒEÁÑÑÑõ¥—׬ëˆÖ@(ULD=©}‚i qQ#¹”÷QNú~Èã{ÝçPç´ärêþü^ÊüufTrÓTÂ~ bOö­µÛÜÔ¾$y8לsã{›:__û^÷˘÷ŽÅ~fòu®×Ã1ù ›‡rª¿AväÞ÷¼ô˜ù@ô½\˧%ÍÓM­+×ÖÓn–‘‘‘‰nFFFÆG/¼ðÂfUo°$%w9_ >IŒ³rÆñÑ b±Ã™Hìj¬ ]a©!®Aפ–‚.ˆ£ËézƒZK4I!Ñ(#ëËK¼÷´m»u0E@,Î”å ¡ª*¬µ, šÎÓ…ÈÙÅ%>(ÑÙןÐð¹i‰öêò’YYá½ÇCÓ4Xk)Ër$ÁÉÎ:"Ö0èƒEQ ý‰l¥>]EG’6”Åv]7’¤éÏC¨$%½m[œst]7ï}â5-µÜ_¤D,ƤÖ7Ms³z ûq²6åÄ¿(*Ð4>ÖÚñÜÆQHIòHD{s1¼c˜ÍféˆMˆPQXڶƃ÷~ÛYQ¦Êˆ˜ˆµ÷žªªpÆ}H¿SúçM_q ½òÉ%x[2ë½g>Ÿ„¢Ø¾ŽžÈþ&bZֽߧ;=W‡J ÄíõÊN Ž»^ Ïîya Јƒ•´!§Ñ‚Xº ã1ˆ¬í¯Ýá¹ çˆ! šÜé§„WD°E‘œ¾#­2222ž6äÒ匌Œ0'0õtÑøì³Ïr|| ½ÑÒÐÃhÊ2•3}ˆÞ#”h ˆØ´˜4†Ðu4M2’ji‰Ô4Ñ%:ç; õInÉuÝÒuÝuqèÓmÛ–¦ip=AÝöÇÕuMõ„6UÕìGúÄ{"šˆÒ@NõÉ~5ï ZtàO§}Á»fX‡sŸL\çè{ðwqªpÎÕ¦W$ì¢â…W>Æìî18¥œ;"›vÚA Dßaˆ„®BºX°ZÎÏ;6¾`ÝDÎjϪö\lÖ˜2Åíxï麎‹³sÚº¡iš1ò¥(fW‚q=6Ĩ„Gn0[Š*´]@Übõ„ˆ”ÔÀàxï1}î°sn§Œ¸ÿ«÷ÿøJiÇLÖ½EÿTÑŠQÓúZRè¡Eyr hôi!Î{ÇyïoÊiý,pg|ßjˆs­DF!v@Ä‹ú>ÜýRÔÔ×iŒšs÷"iÂùQüŽº7ž¢ŠA°b£é9÷Ø¡§Ç#UEìox(±½É%ͪ¯¸ï9›Ç`j0õ>¹¿®4åGãû ð´)1D¶J²Æ«±`ÓפlÝËMÔT‹!ì’ó§ä˜dddd\»ŽÌC‘‘ñQEY–õè ÚIé:èKí¼÷8ÕT‚ײ ¥™®'…*«‹ –Å-Öë5——Í)ó<†ÕjE®ëhÛ–‹ÕŠ££#|ìãZD)æsJ«X IuçEQ°é:LÔurz%ÿTUõ¤¤F×4 Õ”ä å”ýBÜ{°ÏïqÑCƒ „°KhzŒŠ­‘+ ÓNîðžÕ{öãx®©¢;d#ß„ÓZUËýlá©â9T ãµ£Ð^á“ê^úx¡Ý¨§­ëînvî”M{º§Ç=ƈy̾øãzÛEwÿxÝtìlÎL\ÄÝ÷K"wÔ×Ã$ôq~ã1ÝSï·ÇçÊ›ûÜŸ¶|㌌ŒŒLt322>òD×JŠÇÌbêÇ”9…[bªÔëf«2åyºµ%`¨KÑ:6uê#¼<‹”G3ÖuÉŦCݱ44F..ÏpΡ!`€¨0P¸TÆlKKe<¡Y#bû[Šc©}  J%x%¨§†¢ª>‰± !Èjµ¢˜¥þ”ùkHÊ®ˆ`öœq§‹í `»6×cœý“qá/Ž ’Ú˜4Þ*½êwï¶Ì9`bxO¢;U’?â )±N6å}úcTbôcN3ô*º„+YÈSÒÂHŒ·=ÎbR£öJá¾â ¡‰î¸i!ªÓž\ðË1¹ÇÇ Å”Ãû”ÝýRïëˆî¸Y úK¶S¤—IÇÌÈ.YU•”Ó-#‡#¾v¯¡÷6 ËD7###ÝŒŒŒŒEQ4#ùq­ë´p·–år‰³$#(M™Cþm[V«u]ãlŠh¹¸¸ išô3ç;Ãk¤­“9Ól6ëUânT:­µkÆ~VçD?ªm1ÆQ“óù<™?­Öt]GQOÄuYDlÓ4[3-CoþäG¨¢(RäÌ•=¤ènst“Ýíb9Ž3*•\Íœ©ß‹<êÿÝWoyÚ3ˆæ@нï]b"£ú{…èö/Æ\ééœn@LÇsJ°§Šîø·ÂNîñT¡Ý-]Ž;Õ#…ž|¶ô?U¢;ŽÑ´dxr-l­yŸ§†îôÑ"¤ãX‹Á9xݪ¶Hþ{çR?o^©ÈÈÈÈÈD7###ãWƘZƒ¡Ó–°©iÄ#qM¥kŠã ;sÈ|jS?®­PZoiÎ:š¢SÖë’s¿âüÂs¹ „X`æsè<ž€Ëå‚¶miÛ†®ë@¢`ËçŠžÌ ]h[ß玂4uGa¡¨fø¨\®k «r©OhììTÉíBGÑ/¸"S–eïèk®¨N;‹ùä9ýXR:%ƈ[•Uör=‡û\ç¾{ˆè.‹½¤éÑMÒ^!ŒÓÛ–D¦Í¤¿èûÑ5€µý¿¯fk%ô=µ[3²)ÑÝW—“Ó>Ÿzè>Î,‰=•ÿ&â zý…4EC}°ócÿú6v^»äZĦcÛÝi´ÀN¿ðxílI±cbþÄÉÈÈÈD7###ãC‚ˆÔCùÝÑÉ ‹ª€ÅʦîÛ!€I½²âÒâ}µ^³Z5xcY]Ö4¶¡n…õzM×1ö®ªcÓ4;Ù¦CŸÛ <‹Æèýø7‰ $ç²(èš´ØïºŽe9몪jžÔð ½²ÀÖ$kâ°:DÔĨòr˜ì„—Çd}R»®ë±²§\½g.Ü<×彨š$jJt¯ë‹ ËPÒÌ6GzÿØì–Àî–?ï“P}ÅüqÇú:¢«7¼|ù Ú~ÀŒjß-ùÎ{ï9Ž×±çë\ÊõºÞîtv"RçOœŒŒŒLt3222>¬ J›Æ´Bf0n—@I@ bÑù Xgßr«Tî늦¶D3©¸g1åäÖQYaЪ m;Ú®A%âÜœh -*»p,ç‹Å‚ºYšŽBjh,¶2¬C¤i='·–t ·gŽèK\÷€2¬9*"«”ó“'egjŽŽ`ó6Q;¤¬ˆfÉÉõ`z™c±%¢+láh%âb&m(Xµ`æ Š£aæÚ¶¦˜ å1Ó®°Õ-–D·@CÑS˜§è=`±Å±>FŒuØÞËH@|ƒ¨G} 06¹n÷lS ±QŽ¢@¸ 5:«ÍÍ Oj «ÐR¡0B#žF<6(­t4KØt8«„Îã0dkæbÄÍJR#gÊAŽÆbÓUBŸ×˸±¡ÄÔû‹`,´Á#ÎÒE‹sŽ66¨-ãè|ÄVäù”ÕŒ#bb@ *àcH}ÄaÑ'Ú;¡÷™ËQDAÔ`ìÍ-“µÖRÇÇ,ÒÖiüµ!6±-.Î tØvó-#A=bçŒ ø (*RIú’Në˜ ïž®iÍ-–w_`syޝk´i˜C!ñ‘ x ÔA‘¢Â[Ëiݱ]}÷7 ¦dvº14uë ! ÖmŸK?n š®CØíõíKç¥?mnz鲫ª×g³mÛŒ”>ÃyÈѶ֣ж-Χßû€„ˆ_ÕIé6†ÔCQ¥ãj-±M½ që7¬kEL‰›•”Ãq‘ä^îz£¼®ëèÆcÁiÄGáJ gq©ƒ§4%U*±¿Þ «ËÍ©1'—ù'##ãiCVt322>²(˲ž.ÀûÕäu«øÅb WÃß‹÷áæ½ ‘vŒcD¨ªjTe¦êí>1Ú æ†FU·'z±ªª'bòctMÓ\!Xƒº3¼ÞCæ@×etîTM³x÷Çd—C;ÜC¿;”zºËĸ馑§+ï¥?‡‡1¼¢Œ>î‰üŠŸܯ{m×¹òNß}õ÷Ɔ=—'''´m»£¢î›HÅ9??§g­ãxÔuˆo×Ñ5 „€_¯A•¶m9;;£išq“¡ë:...ƹå²Ûuu]ã{Â=\_ÓëljgÄN' 6›ÍÅw|×oÚäOœŒŒŒLt3222>$ˆ-j±–ÎGS©€bÁ AF³Y¼XZ˜¸Y•JEp!:OôTñmGlL Ì Ç¼p”F˜9;~­¬Áj¤PUˆŠ†ÆëX†XˆÅIĆ UiÑÐPTsš.1DB7+cû$Æ.x/]³J¦Z€ˆ"¢eŠ2ÆÐ¶í¸8Þß0¸Î$j<6JêÙô=ãhàµOt÷Iò¦Ç§ñïc:DÅl³s0 NLrÞ¾iç÷4Šç€’º³Áó«D´÷sW‚=-iNçB:®{¬¡] ¥¹qŸÔE‰ FAn6÷5·oßëB=‘MÕ EQá}DCd}¹Jåõ!Pà°Ñ ]@ÛˆÖJ³øËŽ{÷VÔkØ4‘Óó ›&ÒµJŒ)¨Såôü‚MÓÒtM×±Úl8»¸àr½ârÕà}ÄÚ‚Ùl­*¬-zÓ¹äO8µ”¦H“eì¯Gi[ÏOÿôßË¥ËOrérFFÆGwEim]–)×éÄøP eOŒR>¬#ð]@bÄ9(­ºHUU\¬:±®©fGˆ v,7îKp±;¥œÓ’ÎañŸJ”·½½¡w92+s±ªª'µ¬·Cµ1'fÌÎu^w”ç‘t¢£:˜È cÉìN¨êàÖ:*º‡HÜPº<Ä ã6Uš¹(ïö†òž=º7IÑUU™¾Öq,&ï9„tÞªÊX‘ðO‹ÜN¿R·¯S¥ÿP®òþñšþýp<¼÷É€j8>soÖ³Ùl‹ÔuÚtéK÷wJ·û ‹éxw]GT?ª±ëõšEÓ£Ýöú‡tÿA…=Û¬Çç3Ƥr宣š/P…ª,™Ïç,3Œ¸I²ÆˆöåÌýQßLŸ¾þ®oû.ÍŸ8™èfddd|h3Tµ)Ç´Á1#H”± R¨­ÁF’«+Œ`œÅÌs›ë™Á‹V5P¹‚ÊYº‚bì$ÃVÄŽ à¤ýDÌ–èn/m2ôù¬ ˆÑ¢+"¬¦Íˆ©*;5Ã:+t¨?w‡t‰GÕõÙ±&)„>Lî{cˆî|øìÆbßølœâĨjJ>%Dw\§„vªâNûwßK݇mfòÉ|Š0BÝN–¬èM/%“X¯kŠ~¹¾×vØìj;Œ‚1ÂíÛ·!@ô j ¼·œŸ{ß$âjKšPqY[oY57¿EY:|­ø6¢Èh×uŒ!FA,E³ÙŒù|NU•Hˆõˆö—KT#V Ä€ú¡>à}¤iº¬æfddd¢›‘‘‘ñ¡ÂÚ¦ªªƒ}¤Vñ{‹øTÏœÜG-ÖŒ ”eÙ“!UU°Z×c)¢ªb {…|MKiC˜^uˆ‡sŽ‹‹‹Qy±ÖúåÝ—ž“^~úe42â ©Ú'QW‰îÁ縒Ó:™½lÑ)™›šVMçÐ ôú<Ð !»ILI÷ÊÃ1 ÉXm8^ÆZœ³#qÎñ_©7î¾*þ8Wë)¾Îqy“bèyg,aŽ£QÖ¾sú Wtõââ‚yŸ§ífÛe”ôJëpŽŸœœŒóÒP-â½çììŒËÍ%eYD躎óós6­pyy‰s%åüˆ -u»I9ÝU¹“ç=uhTßa3)}ó’ÙSÚÓ1µ€ s?Ødddd¢›‘‘‘ñ¡R»q³[ÔQ9!.OqGÏ-—á’#{e…H Ã)Ü.æ´QÊÒ…ÀY]£Õ¯‚+ÎN“Ê$‘“å-bHn¥b A#eYâ½§ ž¢*SyoÓáb 81ch6kn/`.Óu˜è¨\E ë&¢¦bÓ]„'5t¾imYX£ g XTX8‡ˆ!úô~3|ô†^1FŒs©ÿÐŒnË1ŽåÌÎØ±W×·ÝX}Àa¯ÿ·(Š‘˜› CyæPêczÛòðôZ4D¤ïÉõm·óXÖ–@¸§ôPî:îå¤rU¬%x?’˜ª(ˆÑ.Þ îʱW¸uÝ4à±Æ1¨ÛNÜ•çÞ/5zk§dxû¦t£Á0º ‡(ŠBðº-UWÁˆÛ!·é9hÚô7oð¤d~¹XT¬/š~¶ç¸ï:–Ë%<À‹1ÄÔ·E·@Ê÷N×D1\áÞê Eê–M +ïê°VÐj´¶îpb “Rö!Ή~³Î9×Û€„$âÛ@QU̪äPob*c6…¯g¡mÛwó‡MFFF&º.+øå¢(¬V«gÚö„ê™;Äî\ÅÂ.¨©±8 - ¬° «‹ ]kè´@U˜Ïç¬ê´€Hí[·À9 7§Sð^G'æ±Gr/gtXøÇiš†ÅbA]?àvUqçÎ Î …3ãß·­ÇZûóOjèT“;ÓP+QIe·dvÇ9vBˆöíZÒ6ý~PŒv½kî·÷Z–1_÷|ÖZüÄ=û&)ºªjCrÅ ÊZÙQW§Y©C_ô¾*úAÔÑë”Üéï¢û~Ê–÷cè­ëš¦iÆó­Ъ‹Œ¦,Ëqsfè¯fÒw>œ—éçÛoò ›ÆÔˆ¥ëMè§4Ðu !ÐuÛó{P…#9Ñtìg³YÓzõ$xÄ(`ûëÜuKûˆmè_gÓ4¹t9###ÝŒŒŒŒÅ;‹}ò¿yçþ×~Ûw¶/A¬0Æ÷.Ë©G í ¾ÄŸEÎÞyHio£sCƒ‹õŠà Mð¾í{R•¶^³éÚƒ)’Ô)ÝÆ©*Q}Z´Ö¨*›¦c³ÙpkQP Ì­çÖ̰(çççÜ{xÆ£µç²ö¼ô±WÿßOjä¢àl"à.X+6õ;7–;c&}“Å.!Ý'9AL¯(*VF£CR‡Ù33O'†aû?ˆÒ´yJ²„ˆA @Y–4½:å».õÇ›áº,"²u2žUkS?çD]í|7*ÞýwzuwIðû'»iŒ`1r%vêýôè¦þ¤o6Öëš*(:8ü†> Jõ¦».ë¬Zû2b õèîmæ„Χ*@ìÌ¡ÎÒ©¢!uË-M€Ú+‚£ p6õôªÇ3˜\YD,…«0(l‰s);ÆHh,Š) VÀÁCak"èÚ  h‘\ÊûR꺮×ù³&###ÝŒŒŒŒŸûÜçþÚßùë?ñÛÖ—/Ãå%‹W^„Å M³¦¹˜µ!t3ªª¢´gu̓ӆffé:ÁwBŒ}îmÛÒ…H×F‚€H̦4îôÀEMå¤Ô5ªÊÅ嚣£#¬…ããcf³ääBË/ýÒ/qïÞ=<–õºyóK_úÒ=±Õ¸ªÛQn±#"#©tT{(¬#{k ÞQw±nÉ£õç— â=W4 MQM}í¦£öàcP6Ä^qRHq! ÞcRÕ$lhÛbdVˆbh(%¶]<äë_ûEê6R«¡öÅùßûíÿâÃ'Ë©Á"„ì QþçÉWP$¹.OÈËVÑUT’ÓrìÿbCd1†Ñg$´ ] ¨HŠ]êÉð4ZhxŽÇ)ºû ˆ†í_MOœüùÜíºÎLßû4^hZн£üî•‹‘h¨Frûàé½ UÅš-ÑFAmŒÉuû*ÑMïPݪ÷£‘[ßâ\—o2¯22+«]×%]׌‹©áœm[Ÿ²m»HЈs±)Ó6t[b]P|P¼É(Ê4HTœD<`MAðÉünæ ¬í]áûMkg…Ê Τj‹:„ôµpŠ+ú²j Îºá¸æOšŒŒŒLt3222>dTÇÇ?û /üäk¯½ök_ýÄ˼óÎ;PXNž½Ëåå%Il­±f‘zoí‚·¾ÃÅÅ­ŽhÛŽM©[%„äpÚµ‘®/½õ½r;[,Ç{×u£¢Ûù&ðĆårÉâ¨dµZQšŽe¥Ìf3îÝ»ÇÙ£wyô誎‡òÜ‹ŸøÑ'=v;D%¦þ@W‡sT÷IÑûyü©Ò:8ÿžö7;*˜{DwÚ:%Ù£ÊÕ»ÉÇg¤Æà½Þ$'_ò‹wTï¡¢ 7ªš:2äÙQN?Ñ}ÜqÕ½ˆioðTѽ.óxÿqö“acäæ÷碪]Qªª2ôÅÆwztU•¦IóF¥nç\5Ʀ*ßgtk‰ã˜§h&OÚ™J&`FÜèf=ôéZ›Îí^çÌèÊB$ˆŒ"¤Í!Ó_w"‚ïYR”–¶«© ÇÝÛ·˜YËùÙ)o¼ñ¬7-—ëæ¾û×ï_z¢Ã¦ô‹Ût“Ø/ Å+öT¶ùª‡WüÛ}c¤)qÝÏÌÝWt§„éqDlú8ƒ¡ÏPÆy]ÎGõŒö{nÔSÅöPòÔ¥ùÊqù¾ïÇ™‚í«êבéCåêÛ Ð(Ä ãRcÿ~7”èžE±Þç袽7^S⪪8 #SÕÌR–%΀ÐèqVpVÑØáÛ Äg#sV„Ò9æÕ ã¶NØN IŽç !xBè¾&†[œIš†®k°¢hhiš Ι\ºœ‘‘‘‰nFFFÆ“À§¿ð…??›Í~â«_ý*”eÉl6ãää„¢(˜Ïç\\\ÀÅœŸSU/¿ü2'''XkY¯×t]GÓ44MCÛ¶ÔuÍz½&ÆÈb±Þ¶í¨Æ ÄlX¼ÖuÍ›o¾‰Hrs.Š‚‡R×5ï¾û.l6‹Å¿÷{ÿåß}ö„äãÂ{ˆ Óc Çcçu„iJœe?ÎÕyßmù−<4MÕÆDtí¾›ñãˆî~Ñ?éùpˆäîÿîÐk¸îoô@Fë°Q2*Ñ×<×Üwéœsí–Ð÷*üDwÎíŒ×þæ„sŽªª˜ÍfãFÍôZI®í-ƒò?æ/t¯ü†ßúü±ý‘9zqɪùŨt4ë€o ~ìïüžÿĨíÊgˆ·pÕ# ±;gÓ$³œ SØÅ1vq„ïbZx¶ÊQ]×±(fÔo¾Åå;¯¡§ïp,ʫϿÂɆÓ#B'%›w)+ƒød^åÊs:¿¦©×XS0‹wXºŠ <ÆD$v0T8úrC„¨é  -*R9J'tO#óªc ëSdÝacDB zKó‡LFFF&ºOßùýßÿ—ÿþßú«ÿßû÷ïßq)”ºd³Ù€qˆ]`ÌœîñÎùOñ±Ï~ù­Ëå’¯¿ù·oßæî3ÏQ×5ç«KÖë5›&e}ú ‰Ð.Xk9;½`6Kýºóùœà•årÉù™Ò¶-ŸÿæÏs4_pvö ‘_üÅ_äÁƒt]Çùù9óùüßý}ÿêÿô#çŒ4ŸÏ“4(p%ô:'ß}ehK¦¦FEû ¥övÚ·8üîPìT•ÚWýößZKô9À>õßUÊ ïa¸ N¸;¹¹ìõ4?N±¾&^h(G–÷Ç|ÿ¿Ÿž£‡2wåZ¥8©“['i337My¿n)8çÆ&ñËËËtŽKAh»ñZR•ÈF(Ë2)±µ%jrj®£Á¢ýXFu£ª;œ³ÙŒG—«4¦“ã’”]Ù¹~Ä nÞq§¯] Wˆ EQ¤þÜM2Ø›Íf—ù&##ãiD.]ÎÈȸpwãý®ß÷¯ÿ£_zøàË_y›¯Ý»äÞZywÕ±ŽÂºm±¦àòâoýÒ×øúWþ1Ýù=ôâ;)ÑJ•·9®îp{ñ,Ïž¼È£çY–·©äÚ’P tB)ÚÂæbM·n™Ï >ÿùÏBàõ×_§m[þñ?þÇœ>:§kMÓ`ŒùÓ¿ówþοøQ¶\TU‘¦ü )س7Ž2Æõi#I-½²ÿ¹G¼v>@&'‡J[Óã'×f!F°5B<)·ÜÏo¾'fÌ_µÖ¦Òò¢ (ª!-%Þ„ÓXDvJ—Gb9ékN?OǪz%Žéñ¸ºQ^wH´‰»fQ‘w»ïˆm]r&p%ÿöPùò‚Þ,Œ€ÝnŒÜXÈÑ­¹)] ´ž…3ØÐЉŽ+Y‰£–LE‰Å´Ñ5G³Š[GK*™C´818 ê D¼ÚàèbAZJ ÞTtRÒáèp±±½ºn ªh˜Dõê1BŒ QÇM.çˆE1´>"ƽ™?`222žÊ¥c‚ŒŒŒ›‚á×ýÔw}×wýþŸû©¿÷çßyY­V<ÿâ ¼þúëœwÜ "†×_ÊŠzãÇ^4{÷wýðû¿­>‚¼jG9TÕ]¢†¦îöÌ‚R‰ìŽ‚+ׯ­µXçP!©ÄjPísw5 G¢4ºÏ:‡Š 2¨Ê‰’©¤¾âcJö_SDDÇ–!RePAGÒlìM9…MKD5ŽÙ¹ìDc :”·NÈçû1sšáid@aCÊc=´U "çJÀ0• D »UÆfgób8nö¦«¹iX6Ìâé¾íôì>¡>âh¹Äœµp» 8E— ÊÛÏòKï~O?·Ä˜‚Ðqöà‚ nykg4] F+ft¾%Ä€RP3ÄXk©» u¨ :Kç>”hÒµ¢¸"¢z$¤c…ÐE‚ tg½*(fJ'‘õzãóË7‹ã×ò'KFFF&ºü?ðþ?ò¿ý_}³¯WÿR³Y±\. ›–@ÅÆGæGÏ Þnç§§¼Ó|…ÂÍX,,æ'g‰AÀ¤>¸§0ÆTáòòrÌ¥´ÖòÆošбo®ë:V«Õª(Šßó§ÿìÿãkU’»U^{¨ïù¤ëþ®g4# ²\SïçVÑÝ/]öyŽŠ [GZÏnoî@®’¢ VÌEwP‰U|zήŸçƒäÉ>aØÁõvªTs GÙö*Ü!×⃪ûÞ¿eÒ¿9UöE•lóâ‹_víáßyçÃ×&\»vó{žswÜOf7°2Ã8Gqæv§5gΜ¡Š;X—@<³idRìÈL`V•dÅ2p¢EbŠ,clžA,©sÌ—BÆ­¥éŠ¿5$lj[“"•3˜ª!º€ñ‰½Ø !£ïòøã—ÙŸÔÿ^QEy¶¢Å¨E9•\úØ—7ÿô‡_ûõyží•+Wšýý}nܸÁ|>goo¡ª*æó9Þ{ªªZ„Pö¹mƒÁ€,ËH)±½½½x Xä¯eY´N×h4âÌ™3ììì`­}³÷þ³žÉ"w¥ZñRÓîÉ•ÜÍfý·ü‘Y«Ê|’C¹îfÞª‡kŒcLÛ&j­Rñ3»^Yz¹WjÜ®¾×éòóOu¼–óg׋M=Ù˜Þ¼¾îå×-rŒ»Üø>/¸äÏG×1¼þGþÈù­#>ø =öïz׻ؿ~ç[[[‹ý6™L¸óÒ%^úÒ—¶‘#7o2N‰12›ÍÚ<^`>Ÿ3N™N§Ìf3ʲ\Üf³1¶ùõý±Ñçv7M³è¹Û÷_î¾|K)1›ÍØÙÙáúõëŒÇã1ðëúk¢(Š ]EQ”g ßú½¯þþû?þ¿èêÎäÑIØŸWÌcbZ&eC‰e¯¬if‰jÊQ`‚£n¿·Î#E¨ºÜÜÖVÅ긮SNûwÎh4ú™OüÄO|_Q¼óï$Ïs>ððþ÷¿Ÿ²,9þ<ÖZ666ø7ÿæß°··Çý÷ßÏ‹_übî¸ãö÷÷‡‹ï¦ãâ{ÉZ»peg³ÙbÒ§:988 ª*¦Ó)ÖZ¶¶¶¸÷Þ{yÞóžGJ‰ÍÍÍÅw[ß㻯AP×5=öÖÚïÓ_EQTè*Š¢<Ãù¼/üÒkßû/â>ûOþéÏÏË_˜VepùˆY©Lg{ÌËÊrùl—ºÞ#¥ )iš=æÓ«Ì§W™N¯SWcœ©É}$ó gÃC>øÀß*Šì3Þð†×ÿÂiÜ?" “ÙMBœSVcB¨H©A$r[-h»œÌö‡BÔ$C…Äj%_cLë¾Z‡q]®¦³+¹žGúæš°þÆ‹í[.ld£AÄ`m[dKÒiq Å6¡:ÒÚ‡µ¼è6?¹ÿü²"ô×'ŽNGÊÆ¶yÚ®­Ë»x<„°š£Û‡šãp6±ÜÑÝn{ƒ!à­ÅKî–Ë~Šbˆ1®«Æ-‹õ[kïxÿï¾=;Íß7»=þÃê/~çaƒ}w†XG6<ôîßeç‰÷SOØl“ŠmÎ_ºŸ+»szô{“9w_zŸüŸÆx<ææõ=†Å&±ù¤¢ªÆÄ0£©'j,ž­3 ó‚ñÞ>{» ¬¥00tSWPÍù²?ÿ™ü &5ÞððÞG=3;ØÅÄ„Øßß§*K~ô2\¹þëw\zÁ/ë/‡¢(Ïf´•¢(Ï*¾ú«¿úí_ýÕ_ý%ßüÍßüÉ¿ÿž¾h¸±ñ…!„—2C]ׄ04˜Êâ]sXýÖ±¨›Rb>ŸïWõô7B¨AD~ùõ¯ý•Ó¼_¬µL&“¶Ò²mÈxÍí;†]¿Vƒi{îZ‹µf¥…ÌrÈq*k­ÅÊaÏÝ^X­»‚'mÇrq,³Öþh©PÕi™¸u+•ˆéZúHz¼È£M«­yºq¢È=Ò[—Cç}y¯÷.^ºËÿ®»ÎGò©W*^Û•É !ÏsªÉRîõaŽî&Íi>§^ü¢¿á%/yÉ×=þ»¿óŠ‹/2™Çœ‡zˆ q“ÁðƒÖZÞùÎwrß}÷±}înî¼óNfuà%/y _y‚Ùl¶¨ bÚ¼]ãȲŒ<ÏȲŒÝ}.\¸@桚ΘNˆ1²¹¹Éý#‚+WJb0ŒF#{ì1®_¿Ž‰‰ápÈx<æla¨«Š²Ü¥,K™Ífßþ7þ·oŒú‹¡(Š ]EQ”SÆ?úGÿèw€ßùù_ø·ÿøíoû']»òà'/˲ìEEQ¼DŒ¹« ãµ.æy¾W–Õƒ"ò@áÂïnmŽ~ëŸýóï}èôï &D¨ê ˜†áÈãr&`L›' ­x¨•ÖrumÛÇö-k8l;cX„A/ÚåôïÞ·ÈIkÚŸœ¶.·(¸Áfº¼±s›sKShýeWòyÉ0Æ\=%bœsÓ¢%Œ÷² ûØÆIKû9©"ö-ÞhIèZ ]¡Þîµfáè¶Ž²t¹ìJžôr‹¡‘»$tq‹íë…ürë©nÁ~½)ÚÓ¾œCùEá/}û7üöïüÌàÝpéÒ%0–êê šx™ Ï+o¹pá³rÎûßÿæÏ2¸„spæÂyÊhÉö§\ºt‰²,™–s|ðAòÑÉfX¿ÁîÜqÇó_LY–Xg1ƒŒñÞwœ;Ç]wßÉÎÁ.@–e\»üW~K2,ÍdLa>®"“é”Ý_|õköWôWBQºŠ¢(§˜/ùâ/¬¾ä‹¿ð¿ÿ½ì'_÷ê­Ç/?q÷ÞÞÞ‹Œ±7†Ãáƒ/yÉ‹÷ÿÊWýµðlݽ;àÏœŸ·•}Ý“èΉ[Ü_<Ö ÎŠ“»,xzÔ;„ë-…޾¥¹9ç©Z{ÍR]cÌiéj‡Ã!Ô¬¸Þ­”ÅX#¾Á}%ðcÝ®¢vû\Û¯X:ç}y®ÿkÚ~S„ª¤#²o5.H;1ÒçáöŸEDZñÞ‡™/åè®§çÝý¼_øôOÿô7^ù÷?ÿùóùœÆÎŽ >ðýˆ­óg©ÊÀÆÆ“qÉÏüÌÏðÙò °®àêÕ«ììN¹xá.ªªÂ{¿8wîºë.\6Àç[ÔuÍd2f4‘9!Y8{ö,Óé˜+W® "¼à/à‘Gá÷ÿ÷ñb±ÆùœétÊÖpD]–4aÎÍ›7§{{{ߦ¿ Š¢¨ÐUEyò•_õ¿Ž1ð¾gý‡ FpB(÷¹àÓ…¬Zá°‡îí‹e1µÜg]+`Rë;»"˜zñ½:{\»¡~Ùº®IÆbºeú°ÛNhšÐåÍÍMÂÁa>ó²øKË.i:¾(ÔíŠÄõÐeh{ágÚÛý䇵–H\iånQ9‰`“à’1xï¨ëzUèv}{·—ÛhGuÚpØæÏÿÅ/ÿ«¯ÿßø¯×æ»qf›Ç®îráÂÇñþw¿‹ wœåŽ{MV Èãœÿø+¿ÄË>ñ“8{þ;‚/¶©BÄã¹¶û“$¤bD#9©R7Ž’HLž­"g0Ü•ãÛuøO¿ú«ÌÇ66†T³1›yFSŽÙXÆ;WHÑ0N)ËúoýôÏýÂÿÐ_EQž h1*EQ”ç.Ëhš†ÝÝ]¨kèÂ~„—>™¸=æþräã–ï…ÖR>í1»þºõ[_5ºÆ,‰´ãÜÇg0f8®T¬nÈ-œÑe‡´iæóùዟ†P\Þ¿ëy½Ë Ë¢zýþIã³¼ÿ{Ѿœ«½R{-¿úÙ .Üuåë¾îë¾b:ޝ]»FÓ4ìíí‘RâñÇçï|'?ü0!˜Ïç¼óïäÍo~3EQ°···ˆŠØÝÝÚ>ÞEQç9[[[”eɹsçÈóœ[[[Xk¹qãï{ßûhš†,Ëyø}Õæ7nà½g6›qãÆïú‰Ÿ|ýëôÛPQ”ç êè*Š¢< 1FH)ಀ$Kª3¼ÛÂyÍ`]Û>iXl x ØD%ÖbªiçC=H…ñ9HJdÎ5Éms8˜ uˆŒ2˜šHUeä8JbŽ‚ºŒ; wnÝK¡N1H (rbH4M,M‰CO™¶Éò10e`fnD¤`ZyŒ/p]Xó3›5 iŸZ‹‰¤F²&µá«Éf7dÆ"M ¦ Ïa`Lƒ1M÷¸€É¬qȶs 3ÁÉMp®-FVK'lS1“j2Û`R€˜(ìgDjpš!ðé+l’©©½ÁcIÞâòŒ,–l0''09ØGòŒqÊØÊ H`²aFƳËÙÝ|åý­?ó·þ¯¯ù¡þþ×½`x†ùxÏð‘ñü²ƒÆÃSîÜ$¥]Þ»w…Í3£ ‡™OØn‘Mnpa{›²¾‰÷žƒê̵ I{{{ŒöÈÌæó9™o'$ÌÉòŒr6%Æ„ˆeo2cgríßm_Üø&ýfTE…®¢(ŠòÜÆæáuÛdMD¯º‚)¥Ã]kV¾þyã̱nnÏ÷Uç°Í!¬5H:l‹BÀÙ„ØSãºc]Ù¥Ï~Ò>º¥~^*$ÖŽ¥ÁØvúêÚǶ"êª5÷Ï-å<;ÖËÿöÏÌŠk¿ewGC§Ÿêç:M¼êó>ï'ßû¾wßûß~íMß¶¹QàG䃜ù|Žl´MYS F#ª*RUƒ"PÇ Š œsTUÅC=@”¶ròt™`x*®ç¢Âr'rûPfkió²I$ëiyÿ.µZ/ëÛe³ˆ9z|¤Ôµ%ÊÎf+m>o·‹`I ‰¦¯ŒŸµö†µ¶|6ŸŸûg¿èMw\¼û³_óÚÿ±Ë7nü1?ræÌ¬õTUƒ˜ ‘ÁváڊיbbE*Œ™â]Ži{<®;blˆ!´NºMX—06")2Ÿo^»~ùÿÙŸý™ŸÔoBEQžË¨£«(Šò½·z~]Ȭ<.²ÈÃ\ZêPxv¡Î½ó´,²—{éç ®»ƒÇUg6ÇTëͲŒÙl°pÁN—®]ûlÝç=)Où)­»ûcÚtºk¡Ëë“ Ë9Õ½›»\-º_W_Mx9<Û3¹ÿ>1=ÛÏ»OúCŸñ¾oüÆoüœ—½ìes0<º³³Ãd2!¥Äþþ>!´ýuëºÍ¯í ´…·>""¥DY–”e¹hËU–å¢Ú²ˆ0 â•+W^÷ÄOü!¹Š¢(êè*Š¢<§XM‡9˜‚ÅÜR¾ö°ì‘3“Ú[o,…õ+á±MŒÄ®ç®íúª‚=Vüö¢©¯+%"„ øBÜ¢.Vž·E~¬µÄ”pΙS=káÚæ¤V<&t+YuÎ{G¼ï‡l0`Ày‹s†˜‘£áÈÖÆÞ‚‘à k|çɶ·h"Nú>¼GÃÍ18 ÆœŒM$Ix“ÈœG$Àa*ó\9ßžÿ±/nþþ·}ûÿû_~ã/þú¯ÿúÿñè£þuŸçÖBYÎ'‹bƒµ–º®aßÎ9bjHKçSŒgs$$UÔ4õœªž¿ñÊ•+ßö?ñê7ë·œ¢(Êá/£¢(ŠòäØ>©ëwᬧMŽæ’.÷]î¥z«~¹ËbnÝÑíÝ«õíÎóœc[ð¨]þtT”]s²ËÉ=2 qŽ® ÇŽOï¶Þî±°¾M'±ZwŸ×ó‰{Q]‘ª¥Ï~´ÐÙ³ŸÏû‚Ï¿üÿô;ÿÎ|Á|j]×ßcü]aggYôˆŽ±mùU–%³ÙŒétJY–L§Ó…ãÛçòOÔuý†ëׯaáO©ÈUEYE]EQ”g!Ò²"Lúâ5˶ÌbÛ¼ÎÖ%ÌC+:ñœËI’°bhi‘Hˆ5B"¦°]®c¤( š¦íÅ+ÖÑD!JÂzǼjÁ¤ÉLÛ.eŽlÆ®ŠBá°:ðh4âænƒsÅü”Ì.„¾èS\ä[FXš$X®º|FœV&–Cž‘.T¹»)%œ5EѶJö0<¥D$b|;aÝ¡ "YVàòŒº©É—Äm/\sDYïèÞ[*"ÞY pýÚ^téNÊrŠó©mS×lll R>gÏË/ÿË_ñ®/ÿË_ñþóúÕoûÍßüÍO¿|ùòçZË'ÖuõbcäNB}6„€s£Ñï=uU”M=¿iŒy¬®ë·Çû¿: þó÷|ß÷ÞÔo;EQºŠ¢(Ï)N=~ò×="Vë¯9©Âï1¢üØÊËËÎßzÎî²(|ºÛûÑšƒ8v›O(Bu»9º¦ûOº"amè²YôÐ}*c»¼}Ëýuí1Û·<ÆÎ9ˆ,Ëù¤uUëÓV!ûÃÁ«>û³ªW}ög½ xÀÏþÌ¿òW¯^}þã?þ²,_£¼RDÀ;›¦y¯1æ‘;î¸ãáoùÇß| ßlŠ¢(*tEQŽ)ætŒ¨ê«ôò…£ŒÐöÀ•£"I $Lƒ$³È-íûçYO½8ëÞù¾Mƒ÷OÛ?W¤ÿ·­.|Jc%<{e –Â?˜>³Öt¹ºÆà3‹µmÿâ$ÍZH´Œc¤uÏÍ¡»k‚AºúÉGªA‹`ìr»¢„÷žçäÎQÏgL'ÄfFÛ¡—ÅrÊQ¾ìþ‹x¨»ýšîEQºŠ¢(Ê âvýï•üȵœK`á.;¥‹×s{.àúßËù›ë‚nùþ²Ó·ÜÓuyûPß>O±­ö|üç= Çåà×bèvstÛÞûc+:Ÿ4Vënùq¤”:q|ü„H?V³Ù gÙZ…nutEQ”ZŒJQå¹ xŸ¤]Í¢˜ÑS!G I {íª§î"ÒõqµôÅwE“¿dË®»›f©UŽ1†º®W–¹‚KÏD¡ûtÚý·«"C"iQª/dƒ;2nËíœs‡®zßwׯœ,Æ­1HLÓV vÎQ×sŒió¸—?¯ ]EQE…®¢(Šò¡»KŽ®œzDÆÊQñ{;ùý¿ËÕ“«°¼,š–Eíò6® ØÞlšf¥åÊiOm±¹¥~Jëê'.ú¼Ù%¡{ܾ_ºÇåç.&#–&KúÈ€“¯s‹bgËïù\¬¸¬(Š¢¨ÐUEQ>ÔwMÝ®hZ,»Nžã_)´;qfcåˆ:)|Y–ZÎô"¶Q¶¶­Àlmë /;À)µ•|14MÓU&>ªöi:¸‡U•Úbc±hDŒµL»¿Ò±ï½ì”/®mó«;vNjÕŠÚˆs!â¼ÁÐöÏí'LÔÑUEQTè*Š¢(JÕ{KQûtñíŠìÛÖ@—w›©`Ëy£ýãyž/œÃÓ&žŽìßc¶ÿØ>ÇOq›n`¹Ÿñú6˜µYǹ¹'9ÁëU—SjÃ¥cŒ‹ÖU·A (Š¢(*tEQ”[’¤4Ä8Óº|Ö9RW·/:µö+´U­1xc1Î.˜!¨Á6 0g‘Ô0p‘ÂL-äâɨð6!Q$i+%;×:±&$¬µ„ˆ¶­ˆÔu‰1B¬J6Š!” Ö;ʺ&ÇbC¢OÉC”&RúÓòsf¥6`Å`ÅR9(­@²˜À[¢,ÓDðŽ`„¶‡n›K En!6@¢ífkñ®@ºFCXÁÖì¥MæqD°–d*rJ )°dÑãaíb d-1XŒ&¢q ÏØ%‹ï|~‘ˆ±–bÛ¯×åˆqÂ1ò!dB„yTí*Š¢(*tEQ” «E¢NvÙnßu[í§zÒkÍm¸Éë=[×Ãd—«÷––+øžfG÷ƒv9oã³ÇÛ …µJÖËctR¥åÛªú¼äò®¯§m#•Ú–Díã3=EQºŠ¢(ʇB宊¥âOÇVa>1|y5W´_®Ï‘më*9°¦spåXÑ{\ÞnÿüzÿÜV8 B$ƸR`éP Ÿ’"G'ä)Ÿ$Öo?ŒüÖË4MCÓ4‹âåmX) f\;~Kï}\ØóIí«Öó}×…²÷cŒV¤REQTè*Š¢(µ^Á÷ƒ)à´.¾zñ´ìê­/·î¾žT˜j¹U/Žúõö…§úÊË3cÌ•Ó4ápRÚ[ßÓZ¦{¦i¨ëz‘C{Üxö¹Ïëãv’Ð^ïÅ»<öË mq«6 >Ë2=EQºŠ¢(ʇNè.DKçè. ]âIêÓ ¥µÞ!æÐ!4táÅb³Ô.Ó¦Ž ‹åWD¯âŠ3Ø 3ïýJ¸rJ‰d,ƺd­­OËP+pלÝÛÃ}Û¨•Õp¼ØMõ¡£Û¹ª‹ýnŒ! `,bM{KmίÚÈOrL¬O¢™ô莵>/\QEQTè*Š¢(2uœÐ=)tùö5ôjt/R{1º,|Ö…Ðúû- ¦~ý¿ÃáðÄåÌ)KÒ=²¹Oa‚ሾ ±Û‡.Ÿäèöã´|L,‡.¯ǹóë!çýúËt7„ '£¢(Š¢BWQEù‹«BˆoùZRw;^œ-¯kEÜôâ7µ·ÅòÒÞŽü(õù£Ö€;t­1lGíV’qð§v\–û'h?>Ö ¡ªI!âŒ=V´.[BÚ[„éz§cEz/l{§v=$~¹uÔºó«(Š¢(*tEQ”Få® ”µüØã„Éáã·×ÇuYô.‹Û-¨dÖ f­ ª>¿³Ïáí{î.‡3ŸÒò>9Éå^Ïý …nl yõO6rœ£{âÄ ‡ýO»ãÆXQEQTè*Š¢(O•°îö÷%Èó…8±Ö®„»†Ö\9YÉáYÊ ÀIcÅ¢F¬isj¿xï¾TŸo mèqÿXï=Y–µ§ˆq‘ˆH$Ë2blÿµÖ‚±Ÿ*¡Ûïßu!ÙÿÛ¾1lìñ"ó¤BQk“)FRŒXaQà¬Åuë4ÆP…›å$1„(ˆ@ XDÌ¢ÂuÌôû¿Ï)%œs gw9ÚZ ÛÛOR(Š¢(Š ]EQåépDMç¦=ݾ©·½·Ù/ö8Q¾î,7M³Ëι…0–µÂZÏìQ9 ñ] _µO&ÚŸôyn]Àê¸}%'´=:îvÜø>é1Óí)sßEQºŠ¢(Êià8'ð–ÂÃöϵ9º˜ÔièÎÅÁ®©kã,ƶ{c—ëy;ÛÕ‹°ãžSJÌçsRŠˆ¤ÅreY¶.²w§Nè®ú[ô©mïË-×ù¤o& NÚêÕÖ ÆpÄdH"‹ñ "f‘«{œ¨]/Du\¿Ýe¡Û»ù§fRBQEQ¡«(Š¢œ‘». V\TÖ H=Ixì²]¯º¼^½÷©lßqî.@UU+ë³ÖR×51ÆÓ#žÖDüò>^ÞÇ}þc',ÖÄäInîòºûªËë9¶ËBvY´.ß?.‡ø8Ç÷ȲÎA®­BWQEQ¡«(Š¢|Ø„îI‚éxazëÂTÆ8¥*É6ïÖe‰ÃÉÕ–—·¯¯þ{Dð¥fEP÷íVÛõL¦ã=ÉQ?i‚àx|ëÏo…Eµê¾¨×òþ"}>nk0wÂ5ÑÞŽ ]>®pÕq"×Ó üÃ÷ÓkEQE…®¢(Šòáº+b’£ÎâB@Ý‘]8‡B×i%sRžçÊÒ’È=Nö¯1BèÝÆSÕF·]^ÉW]ð'MFÜÊå½ëŽîºs|’£{;ãvR~o¿¶¹K½›Çz6*Š¢(n¼îEQ”ç Ð]wÜÖ„ËÓSTÅ`»"Á}ø²½­mkrëþcHÝÛG+·U{CÔuÝ Çˆ§eBÈ’ì…îúîþàÆ¡›¤èïuŽ®}t9œTt´hØq“Çåçwüœ$t»ÉŠGõlTEQ>ܨ£«(ŠòºO‡Ø%ñ³ÞGw¥¢ðSá'‰nÁ9wÄ-îÂÆNÅ ˆ¤Þ‰^ùŒk9¯Žq\üð[{âún5n·rtoµM¦¹Ò9Ø)%-»¬(Š¢¨ÐUEQžÞŽ!™®prƒ÷ kñ ,ë=6óÝϱ8@H¤„8€œˆ#Ð 4‰H ‹Þ©Ö˜6Ç“D2 \ e ŒIÄ$ª0Ãf.b|¢U—¿™bFdˆØA2$e—aà,1ËiDh$QŒ6ˆ¬õÜéiYce°Æ#Ék=t¡Ø½˜7ɼŚԺ±R@ÊÀV»Ô‹Ö Úlj@s(.ÉLvŽ ŽÂY¬-Iibк㘶wn$”MM †”x BSbm )@êÆÜ@’@ž{R X©!Öx"NžvR˜¶ª3Ù² ’ߤÈ=4s=9EQºŠ¢(ÊÓør·V`Émëò0û'ôS]¥e—Cên›ËÛ…[KŒq¥/lï¶Æišf¥àRßZ¦ï} m«›¾8R¿½'9‡u]/\ÜY–­¬÷Tp‹ö;ëNøzhóò2ý~~²÷º'9è'õÊ]íqE§Ž+"¶þ~ÚGWQEùH 9ºŠ¢(ÏN¡[Yk‰©Ë´Âùí-²í³ø,£aAf]ë"ö}rmW¤hQY0Ff]xmëò‚€ñÔŽ„§ †z 8$RôX3D’!Æš” £Ñˆ²,1²Èæ%ta¼­g¥el+¦Æ8𦯦ËÕ666€ €õÞŸõtl!k»ÂÄÇ÷êÅîrèv?q»ï¹~¹Ù¢º2ò$ë°€A1´‹`LZñåIã¤Uè*Š¢(*tEQ”§+tgyž¯Tö½ûî»]¸Šbd0™V”.œZsXù¸­¼Û;¹­¨‘ÔpØF¨ë¶åO[*ÑTŽ|s“<Ï1b>Ÿ“R"ƶµ÷ïýâ=ªªZ€ög³w‡S2$IäyÎÖÖp•<Ï÷ó<Ÿ¶1ºÖBæçýˆ3úó Wþ昜è¥÷–cDò±-ªä¨«»娰UEQTè*Š¢(Uæ£-B’I8ƒ'Ûô@‚ÎE•Ø ÉÒ:µ5àZg—ÔªÛÔ‰#™ƒó‰,"ФŒýñ”ytÌ+¨RF• eùˆÉr6†¦ @b …# ‘HŒ F„Ø4xÛætZ1k=ÑXD”À¬j]à”MhÈóœ<Ï !`L±›eÙä´ŒL[|*a¬´NºÄ…¸´Ò’°´Öá\© ]¦u·Åf‰€[ÿÃ¥¯¶lp˜Î©7c±ÒV· i+d¯„L‡Åûˆ´f{â0´=!¤eñ,–„Ř„8‹u`’ëì_C’ö¦(Š¢(*tEQ”§Ã|ss‘I+¬¼§®k|Y↠ò¶ˆT]×äÙ€#Î&XjtXðÈ@Ú^¯1bœ'%a>Ÿ³··G]×Ìç\›kcd:b2O1j{¶JJ4MÃÞÞÞ¢âpY– ÷o8’R¹ö}Ã"¯÷°/«µï ©‘Å{Ìçs&Ucól]^!b0±$$yR¬¦ ¡©\>``:MìN" j+Ž$ñ–:5ÄY nHÓ4xïH¡a:e8Òt¢¹( ²,£È2š¦Á𨹴‡ ñ„&aC$Ï7 õœù¬â`¿5qçóyyïó_xJúè±&YŒ´ É}uëeq¹.l÷;±º(Fõ¤©Z'ÕXÁ˜Ã°cÛåHGlWýy9wøØã Ä#àq6—°Òt"×·±]ëþãÛ$¤Û|ÕÉ3ƒ3†Ù¼Y¿º®Û°ÚÞç×O•Ò­̲l’ mu–;|fI±!5éprÂty®ÖxRj'ˆ±‘}¹jA¤Kº5® 7Á 8c±ÆB\„$»Ì%ÄXš‰ÈJøqº ,ŠˆÙ®µÔ¢ï¯w`-âZAë³ “¤Sk!‚8±–ì…™+Š¢(§utEQž4ƘFDr<çÂ… ΃Ád[[[øàa0èı`ú"UÒæÁÎçsªª¢œÍpÎ1o‰‚é´d>4M %ÁzKž;ò<c+¤œs$MÓc›£BX¦^$õ•|ûÞ»MÓ Zç‚_<çœ#ÆH5Ÿ“u¡Î]ßýÓ40ëUŠ­µ"Ù‘¶nŸ#l3±H¥UÉ-zl­úNè&ÄŒmÃÔ‹Æa $k¡Íˆ멚DDé*Š¢(*tEQ”§G]E³*^LçÖüò׿1$bÛ?UXV!šÌB\ÛþǺêÀH—+Ûæ÷.Ä™¬i…N”@žç‹ÜÝ~›Z7SÈr‡MpHE¤¾S_ý¹/ŽTUÃá€Á`ðè©·ÖbÅ.Ï,Ë:±ºZU8Ì=¦òò È în_€ê°ˆTF öØþ¶Ç Þþ¸8ß6ÜÚ¹¥Ðe±Ýºe%„¹ßþ>ÿZQEQTè*Š¢(O‡&˲& „(´¬!X‹!a0D"¹5`„Ô ¤,µÅe9¤êHŠ™Ô$ŒsÔ)`ºÊ¿AIÀփÊk×'9Öf2bñ‚óV Í xïñÞ"b°Œ†¶­‘¤€‘ˆu´¡»JË[MÓ­*Š¢ ³NO!A,‡N§÷c|+`»_穸‡“®N^D2oÙq>'Å‚ªnØ,.0JS†š&›å4IH©$ÏšÓSŒÊ&F&#v½l‡©ý.7 w°=Ú Â¸ &‡ä"V2’ÀÖX,›€m++Ó†'“°úzOÆyš²Dü„(›X; „—™vu¦1QH[‹Ä€T„& ZçÖLq4x"uJHqÉŸãœ'†)ÎYlæ! ÖæävЖ¡¶†Ð cEQEQ¡«(Š¢<5=… ›››ÍÔÚ#øV¯‚´pa½+0Ñe!BJ Lç¼ "m~gˆ˜)ñÅ uh»zCyž/œ\çŽÎõµÄÕ-ë“¡ÍM­Êjáä¶Îoj+w­x²,Ã{Ožç§Ê&\é/Kë÷Ÿ¿uHY8ºËŽi÷â•u<å Á»ÔªèÉ·÷¸m_íÅ»ú|ÿ9XÊçEÝ\EQE…®¢(ŠòÁröìÙúŠ5„dÈCÄHjÅ¥4m¥eÚ:º ƒ ¨#yò¤ºÆ ¼ÄYüÀÓXƒI Ö™·0ó6Œ8¤†Ü{òlDÓ”rY÷K ob†„$!ŠàŒA‚ER"6M›?j#–ŠaV`bEæ Î Þ ± mUgçAy6|â4K4Kfb JëÂ’qœ#m?c±à݉ÂsIÁ.Md˜Ô-×õßfßis¢ELÖV×–6OZ$µ0í¢‹Ì]Yj+tDäÒU6ÎbLê:´mzWï×s†EQE…®¢(Šò”ØÚÚª¡u ý-J2HWŠ.g·w¢ª«Äœež" XlfÈpˆ­iê9Ð,zèE&REYTú ! "c0½ëÞ#†€éPïÚnll„n½n±mMÓÛöø ï}yÚÆf¹ÐTŒ·´ŸÁ.r­µ˜Þ•_vs—ËEÉIå£ZáÛïç”b@RÂféÜÖ“ÄgÿØqºwš{±kMWe{¥‡îSË!VEQºŠ¢(Ê“’F3cs’8Š`[+Ñ4à*¦Ëç!¶B¥¬Ã§ÄVæH ¼s”êd8’Í Îz ¡/"e1IȽGŒ!Ôo MLHjÔµ¢u ‘ˆ‰ëÉD¬ñˆL¬!5œÝÞbo‡Üçd™ ±"!ÄÒDêˆdÙ0¶±ñÆâŒ%YC4,ª‹ëœ]kH´.©xË-墉‡"¸Ïµ^Á­ÐMˆ@4R‡EHnµÕq­†–Åù"dÚ:°cé 3ÄÄ “kÛ˜ÍÊUEQ>ÒhÕeEQ”g/óÞ±;‰#=Wm›»¹œ[ ¬TDî¾åŠË!„EÛ>ç´'¥´p/û×/;‰}¿Ü~™Î¥¥( L·-yž3 ¨ªj±Î®'k*Š¢:Mƒ²ÜCx½:q¿¿ûüÜÞÙ]ý‘1½Å/W°îv³ä?Y8ñzNñ²ÓkÖr†×óy—þX^Nm^EQåÃŽ:ºŠ¢(ÏRÊ*Ôu‚ym¸4ò4Àµ}Fg+”D  í¨²Ì3+#t½Qct@\„Ί´FªsŽaQ°µµÙŠ´Ô`1ø¦Á:‡‹5&ƒ$Dï É´ ñ1Ô±A$ãìÙ!Ö8gÈmb0t 9×®ib„hIÑ“ÇùÑ)Jú”­`Cç²z k«Wk±™£&‘;‹sÉGVìP‘ˆ`nvr–6|ÙÀ)%¢tcm…”Úò˜ÌŠp–>Ú´ÛÆŠNu\{̈Y™ðˆÆáÚ„Þ64H]Î.Æaœšå0æ¨g§¢(ŠòáF]EQ”g«Ð-ËG›¦Y¸ ·"ÅN45m¡ª¾÷íríº(êÅŽ÷ž³gÏrá¶··É²ìXrÙ^§ïËc+¤Ïž=Û¶!r!ÏsœsL§Sš¦i‹_…@JiÇóøiŸå¢NÝ#˜®·-Kýt{—ýiKë%Çö¸ÂP'åççÜ>Õ϶þžèÙ©(Š¢¨ÐUEQžî~Á¯îÍ 7vgÄÆAã¡$‘ÑÈ1„yÅdÜŠ©ådŸýé_}‚ñlJ2@L± Ħ¡nJB9ÇHÃÖ¨À©fcB5c>9 ž`RE=ÛERC"CUUclCisxçM`Þ|Îûã¯ÛÞ0,FÌæA,Ó²¡J†qÅÁ¬~ǹ‹w_;MãÒHb+´ß@@Ú~Ä©i–kæ isYôïé„£m×¾<2@J$ $Æ´aäX׆x‹ñeÝ€ó$1Ä!´•–{C¿k¶b1)’g$bRŸ‹k-y> FÁ×Ur¬É08l—¿m\)´Å´ÄB„""b=;EQ”7º¬(Šò,åcî¿ÿ7_ð‚\½råÊ]!Ü…«kȇØjÛøL+„b‚,ƒék-MÓ°{0aãÜE®\¹‚õ#p#’´®l"!´Õ”% !„CW6¢$Y"‚XKtˆéŒã¦spWÞ‹/ÒÌ'¼íí0N!5œ?eYróæMnÞ¼¹Ø¾ñxL]×o|ŧ|Ú©ëW³ì”;çÚî”0¶«¼œÃÂÍr/ä[åÓƒ1¬VdFnz/ˆE¤Í­–¸ØŽ~ëŽý²ßç/¿[¡Û`ÁHZä/B›ëâ™[‘ÜåkŽ®¢(Š¢BWQEyš¿{æÒÇü·Gßû–/Þ¿.4—/s᮳ ^x™˜N È9»u7lX(Û@³P2Ø.¸¸±ÁÞ~Åh4b/™×%!1žh  eY.riSJmI$ë‰bŠˆ‰m¸l×Ǻ޾ޓàlo3›Í88ØãÎs¨B`>Ÿ/ÄÖl6c<3›Í¨ëÄx<&`ßñÊW¾ò§ulz‡ÔZ 1’HXºÆ õÞ÷г­òt’›Û I:+ý¿KU°NmJ˜”HɬäM/Æo-·v]ø.çg¯;Áýºz§Ú¾½&k]é¶s¦'¦¢(Š¢BWQEyú\ºÿe¿:®mSNÙÖÀ’Íå#7ÁacÎüæŒñÞœâÜ9R%¸óg 43666¹÷nËg<—§%WoŒ¹¹»C9-™Í§D<Ög$Ói¹‰EjlžaLF4ï#Y´Hд՗ãïŒò ã2b˜1Êaûî‹<ñÈ£”³]6œ%ŒÇL|B¬ðÄÕ&FìÎnP–å¯|þŸþ¢ú4G’ÄY<†ÜºVœfB"³¦­Gm,‹Km_Ý…Ð]³­{.m±ªE¸rê—Ö „Fˆb@ ¡ ±±í‹¼Ô2j¹•ÛþÊ’0).ZGõoêÄt”„•DŒì‰Ò X¬ÏÀ¸C¡l,Ä@JI]EQE…®¢(ŠòÁa7·ßÿ¼ç=ïß<ñÄᎳ–‹ç7˜Íf<ôàƒˆ!œ9MÓðŽw¼ƒWn~ fë±  ›YVpîÜ9¶Îl3o;»ìÌOgL&“•PÖ#)´ýo³,#˲EoJLlÈlÛ+·ižÑö&ÖZ&“É"÷æÞqèØŸî°»»Û®§,™L&ó;î¸ãu§pH*ïý"—Zg75 &gQuÚwýnSB]ÓvP:tVýŠSZ«ÊÜ;¾m˜p mã^‹1’mH]>pžç‹\áÞýíÿî+B{ï !¬ôú= k¬³X±‹Ï3f­-©ÍÓÅ+€k{!EQE…®¢(ŠòÁñ9Ÿóg¾ýgäŸ}á´®‹-ë٠¦ɹxç]m‘LÎNpÁðÖ·üþÀÿô)¸ÑW½Š‹–ƒÝ}fÛç ’÷8£-‡%;˜P6­èFcÄ9œ-Àgmxn9&GQ€ÈÀ êBƒIÛ[gxô¡'˜Îv1å”0åÊÃû¤ÐP×–*Æ;clVüô÷}ÿ¿Üh{!EQ”g9Û/|éÛ_ô¢ýL/ZΟ?ÏÆÆ#±ª(Ë6÷¶( ._¾ÌoüÆoðÐ0ÇdY¶K®ªŠétJ]×0 ìììRÂ{Ïh4b8.rKëºf6›æ¢vâÉtŽå|>g>Ÿã½çÊ•+ܼy“”u]ã½çòåËm^pÓcd:2›Í¦/^üÎS:e–e±w¿Eú<\ïûêf+ˬU:îÝEøòÒcm¡¯¸ÃUUQ×õ¢ÿpY–Ìf3ʲ\„÷ÎlŒqá¾÷÷›¦A¤ªýò}Q©,kÛå>ËY–aûGí3ÔuM]׈ˆV]VEQTè*Š¢(<Ÿöç¾ì;HÙìýcÇcÍïÛ™óÈ^Ãõùœ2–”åŒùxÊ™â"ןò{oy€éAI¤ÁdsŒÏ•’3c‘P’ê’ÉþNªºnD-s *”RLÙ) Èó³$¿É4ÀÍùŒ+;;ìî¡º¾Ëcïz€¢‚lžÈLF‚+Ø·ÂÜ&&Ò0 5óªü‘ïýß÷¾Ó8’L¹µq&ÍPZƒe*æi ÕyYã›CÇÌE ›ã¦\ vJh0°l—2h,LçØy…0¹v ±6LÆ ó:cê nT‰i°ØÁ6ä9MHܸvØ4ÄPÑÔs ‰ùlÂÍ›7¨«ÀÎÁ˜2DÊFðÅâ,gÏžÅ{‹C°!bc”3Îâ,¤ ”MÀÚA'Ò#2S˜,8Š+zF*Š¢(*tEQ”š;^øž—½ìe¯ÙÛÛãÝï~7{{{ §ïÆÌf3bŒdY†s޽½=|ðAüqÆã1óù|QY¹ÏÓ !pýúuB­ƒgWRzÇ/˲…û8 pÎqpp°XgŒ‘‡~˜Éd²p†ƒÁÂìéÜä<Ï¿ëÔþèZ;÷ÞÇ~_B›—;™LÚ|Û” Fô±íóo—ûÜ#„ÐÞºüÚétJ]–Ìçó… ß½÷ÂIï×™R¢ªª…ƒ»ìâ.÷FÎóœápHQ‹q^véÛ0j9Òžè i-¶=fY6Ñ3RQEùp£9ºŠ¢(Ï^õù_ô­¿óÛoýœfgúâ‹ïäá›cîºãÆ©’eR Mh¨ìLÌË}òý9e娏çƒbƒ8Ÿ‚8rZVÜ`ûÜE¶ ‹ñ‰:B "ˆ'!kä†Ü £!&n0ƒKàŒ0Þ߃”ØÞ’Rb:’`‰™£©K겤i‹ýßû¹Ÿ;µŽ JoMòÖ:©a^ Ö°B4 ƒ³CFÎ08¿AÛ‹ÖDR4¤äˆÑÓ” ï-ãY+F£qLg0-aVÊÆ3-3¼€µTMC#‰k XKH‰„”Ú[ ‚øHìZYkÉrÇ`˜“{‡Ç ŒK#¤Ô bgé:ç¶¹Æ9©­Ÿ%mû¤N@Ë`äEÏFEQE…®¢(Šò!a㎹úE_ôE_ñÿüüOÿêåË—·ÎnmðX5gss31™Gæb(«>´uC€ƒ«î¾ëç/ž'ÏrBhØÛÛc>ŸsîŽ¶Š°u%Ç’@–Î÷ÞR×5© s^G£[¹‡ÑhñâåÞµ}βsŽýñ£Ñq­ÃZUe˜Í«…ãîmÖ Ûª­jí3‹÷ï=±sΗ{ê‹çû<^c Þù¶½P—Ó›blóvÍj?^ë»ÊÒ]ÿßu]ÇÍm¯Å¨EQºŠ¢(ʇŽW¾êÏýöå_ó+¿ü‹¯{ñ FÜqñ ×®É7-G²eHÔMB’!F!¦Š|hyä}ïàò£E>âÌùs4e`»&;ŒÜ]x Á #kh$ÑÔUS“¢¡êŠ!ÕÍiJ¼¬iER‘YŒ$¦]Ѫ<³ÔuCh*²œ±ìîÞüõ»îºëëNûþ$æy^Å ¡#˜"ãÂÖ&QfT!ÃC~¦À‹Ãs(H@†1â1ÆÓ¤ŒƒiÀZÃþ$P&!¤†2Ùì†ñA¢ ÉEœ‘c¨¢Aêˆ`Áz°ë=)Ä¢REÁšVÓD‚IdÆS2Ý8‹'QdŽˆ¤’R.Ï0’@ÚªÌ"BÓ4dY¦'¢¢(Š¢BWQEùÐòùá+ò¡÷½óyß{¿a6s×]w1±Ùq‰&AŒ Ä,ªíÖUÅlZ³íÎ’âœòjÍlÖV^N)±³³ƒ÷Ñ@J–FU™W%’,’ÆšPbSC^8$BäYɬTwnš¦ËåÝåÆ 3ÿ•?ôC?Tžz¡+777Ë}8¬¦<°±¹Åd¿Í•µÖB^0(2èÚóÀaž­1]Eë¬Í©N™•%Éú6ô¼‰LÆmEíÆÔ¾­˜¼\e9¥´¨rÝçç¶n¬_,Û:ΞÔDš*´N<!’‹à|û¼ÃPW}åfƒˆÓ}Î._x×9·«g¡¢(Š¢BWQEùóÅ_ùÕßômÿ›îÍÏ͘|8À…@ `È0΂$HBl¶ÏCb šîáýq+޳mUÝ+=@ž ±Þµ¯÷Ž 6µa­MHdYFž¬X¬`-M„jš²¶)F$Eˆ)ÖìíÜØ-2÷—_ÿú×?úlØïƸxöìùjÒ‰MR~¦$™Š„'Ïr`Ej B2`œƒÌaÉHÑQ†Ö1’ÑÔ´NT!âŠÄt.”Á1‹K®µbQIÀBLÝM ‹‡Ë ²|@^dy¾(Û„3‚Œ$$FB!y¬0ºÖGMÓÔιJÏ@EQåÃV]VEyrç½/jþîßý»É{ÿƒ»»»L&¦Ó)eWô©ïµÚ4 ÖÚE¯[a4QƒÁc UU1 È;Q´Üÿµï·Ú÷ÕVÛ¢(H)1êòPûÞ®eY²»»ûþÑhô§ÞðúŸú/Ï–ýn0acc£ì{Ϧ®R2YÆÆÆ 66Úh·âÛW^îŠCõ®lïÈö=t1‹JÕýß}ï[éòdûžÄ}>®1†Á`À`0`8.îçy¾¨ªÜ÷ÐíéÇ.ÏóÅ{´BÞ,Þ{Ñãwñ‰ËÇ‚¢(Š¢¨ÐUEQ>¤<ïã_Yû¿ækÛgÿÎÞd'eÉ|V1Ž©Ë9)b Ôu`6+)Ëã¶ïëÚç‰öU}«ªbŸº®bccã ^÷º×<ô,Üݱiš²®ëEïYb[¬ hÐ¥ªÇ Õ˜E?Z»äê®,ÓÑWtîÇ©,ƸXï¢brçêö÷—{äöcj­]©¾Ü/³œO]×õâuýØ.¶-µ"»{s¤Ï®¢(Š¢|Ðø!EQ…¿û¿ëÿïŸú‰‡þÃùŸŽ§“Ï)Š‚Ð”œ9s†²®¨¬àR÷ê@YÖ FC†ƒMªªÁd ‡HƒˆÁX‹éŠ(ÑL‰"8cðÎB+¬œµm¡¢P³sóú!Ôßþc?þê|¶îgƒ•&˜rÞªI, Lã@*0®Ím%à óÝ´täxë|ȨC$‹$!&Ó¶ý1R$JB„¶×mˆXã++,‹Mc 1ò®"²÷–”Â"|Ú‡w¬z=1š Ä1ÈŽ)€8DB·‡NH§”žpÎ5zÆ)Š¢(nÔÑUEQøÒ¯ø«o{õ~þsÏ;÷e¿ë½§wxCW!¹w{‡¯iö÷÷Ûª¿‹Øßïݾªª0Æ0ŸÏëÙÛÛc2™P×5ûûûó|à?PUÕ§?›Eî’°¬ú¼ÚÞ][0€#†Ð:¢K¹®½«Úß¼÷‹ýÚ;´=ýûôÏ÷z–e+¯ïï÷yÖι•¼ÛåþºËyÁË=}{Ç·wzyºÝdF÷úÙ¥}¹èÙ¦(Š¢|¸QGWQEYá;¾÷_þÜÏÿìO½ñ—þÝ¿ÿ›Ö_?nš»S• (ËÖz†Ã!Y–µ!®Mݹ†]x-Ñ.DPCÍ È‚×;‹÷>M§ã}íÚµüã¯yõï=Wöoæ‹*YG„d-bCk˜‚1` Œ+\t°áÁYÀâœGRÀZs–¡Ïh#„Û¼ÝI É´%•SBbCì OyïøŒhü"´<ï„oî<ƒ³Ž$¡Ín·Œ”F1Aˆ&!)à€¦© ™ÖÁ— $02@C—Uä*Š¢(*tEQ”_òe_1þ’/ûŠïü±ùÑ×¾éMoús£Ñè‹&“É5Æ G£Þ[ʲ¤®kòW÷i–eÆÑÄDÀ`¬C0mõbI ¶uEÅ“æ©ý¥6° Þø¶ÂµÍˆ! Öá'Ë`"‰DƒX0®eÙ¿—XŸƒu­y,‚s~!ˆ½÷¤Øà!¦V²¦”ˆ´íŠ2/±_ËÆ0G¤Db u[ô*œíŠR-µ3J)iÊ”¢(Š¢BWQEyæðõÿÇ7¼x/ðý?ð=ß{ÏÕ«Wï»zõêý£ÑèƘ—ç"òÞãïÅßg­}Ì9÷è·ÿÓïR'¯Ã9Wö¢Z·´ï·#"‡ÞîRä¾â2]Þ¬µ#íó)¥¶‘1äyÎ Þcš„K‚³BÓDD§]Z¯,¹Ä½Ðmů#¦¸À)µ=•Åe]5æöý677±&2ïSW}n®Å¸v™Þ…în—õPEQTè*Š¢(ÏX¾æë¿î2pøMÝ·ÏÙÁ]óiåÉà˜c›H$Ç2ÂØMHš¢°yï]d››­ËÛDHª gŠŒPO‰Ô˜bÀ¬’sÔäL“¥ÂÓxKˆP6%„›xSiæ››ˆMLÊš,Ëpʲ$s¾­¢ŒX#­Óœ<1Âù3LgäyÄªÔ ÎsáÎçq#9BHç<)Íñ&«ˆ‹ã›SHñ@EQå#†)Š¢(ÊG,ËæÎ¹E_[“çX,‘H¤ÍÛÅÈ2Ã!8×:¹Öf3ƒ¤”Èó|ÑǸ¿A[™¹¯¦ ‡}tûebŒ‹^¼}¿ÜåœêåÊͽã›eÓét¦nŒa8.ÖBXy¿Þî«=wïõPEQ>¨£«(Š¢(Aì /ç B™ÒÀÀãqDIÞaMç[kÀ€">!D!ù c |Óðd¥P™„“@0!ªšXNI8\6 là‹ÑBÐfÎ,„èñH'v#Y–Ó„/®íÓ[UœÙabÂH¤š›€#‡P·}t·ó6Ÿ×8ÄxR2s=EQºŠ¢(Šò,ckk0…ÖuͲ¬Ë½ˆ±Xc0XÚ’ÉI‰ù|Îhë,4 Y–qp0Ãà9sæ ×wÚ^ÄÑbR’®å®Y´*Š©æ ‡C¶Î]DlƬ ,úç.÷Äm]áö~/ˆçóùb{›¦"Ëa0pÏ=[¤ª*QUYaîmLŒÁZKÕœs4M£í…EQºŠ¢(ŠòlÃe¼ÅÑåØ0„ÚCíð‚¯1XjÉI ³É>£í3çÌ$g÷ú k ³RðÅ6UˆÆ`MÄ9‹K‘€M ž€ ñÙl0$@RˆDiØ1­8•VðJ÷¦ …©]ÖŠ!4‰Î>ÿ,àr(r‹O‰XU„’1`"Ô©»ûæÁ!οUEQE…®¢(Š¢<Ëá-—.]z°ªn¼ðàà€³ù¹ÖÕõYû<‚·ƒ#IÛ¨œO œ¿óNÊÉU.?±ƒq#ÄZš˜hCDK‘¦i7ç2bŒŒÇcB#Ô1!V¨S\TîsmÛö@­Ð+Cc¨ª’QQSâî»ï>òÙf³cÈÈÈ Ã|oýý}ž¸r½½½ï¸ãŽßÑ#@QEQ¡«(Š¢(Ï2¬eòŠOýŒÿú¶ÿúÿ¼ðʃg7=ÍÃ×Èw`r ÆÅÄohª)ؼ-R•_äü…³H*¸9®¸vs‚-6˜U‘Yh \5©ýWŒÁxOÕ@ ©fmN®58WQ‡ˆ³µ$b€(­³›¤Á4kÚHã`,ULXcñƒ[ùÖ8ª¹…>ð8³Ù ñ¸Æ¦ †ŽƒfÊx<æñ+{\½¹ûk_ñ7þÞDEQE…®¢(Š¢< yÑ‹^ôÆ_ûÿí~僞wï&=þû|<àÖf`c›§ëÙÖ>¶¡ËÆ3¹~G½Î¹3—¸páïúnìOawF=ž0›Í(›z‘wc$$Á/þ†Ö¹mb”UEŠoú¾¼q‚t¹º>k_ë3Ï|>'wCÞõ®÷pöÌ&Ò”<ôð`>gcਥá ÎqÁSMv˜ÏçŒÇcÆãñ¿×‘WEQTè*Š¢(ʳ”»ï}Á;{Ï}ã+ã[¿wT6<þŽG¸3eŒ>vª³Ì³«W1w§•<øà#Üû1/çe¯x9»WÆÌb¢j›œ/¶Ù¼3QU‘ýƒ&“ =ôÎ9bÄXál+tmW¨ÊÅÄ|º¸œd‚ÅyOŠÒES·Wœ¥ ›[ÛäVO¦ø­ Æ3.?ú0u=!·àCÂf–PUL&lݰ·7áêñÍí³wý7yEQE…®¢(Š¢ò|ÜøŒùÈNb,#.?>¦©!/…ý‡®ðØ;dÿáøJ¸gû"“ë{ÿÃ0«ÀfÓñ>óé”ýý]¦³1órFJm+c çÏc4RVS&Ó}¦ÓšÙ>©< •Är©Ko,"ƒuÖÄdˆÉpíêcìß ž±Q°)q°»ÃÞ›"& {û먛Èþ¤aw\qewÎî,qcþã:⊢(ÊGutEQå£ÀÇ|ÌÇü›»ï¾û7Çã+Ÿ±‘ÍL Û£3 ‡CŠm¶¶¶5‘½Ý]Š¢àÆÞ˜÷¼å-¼ä¥ŸŒÉ6™Í eY2©#ÁåD*²¼ÀšŒ²ª¸~ý:ÎZΜ9CƒˆP—$agEAÚþ·KVä`Ú>¸Ö:œ±˜<§( vÆ;<þøãÄ‹úœ«“}öwnR"¤&ëšAÞΟïííÑ”bYqí򵧿˜½ÿuÄEQ”$î[¾å[t/(Š¢(ÊGïótöž{.ÿ—_{ó—³ÄÅ çxþ¥{ØnR‡ŒMëÜG)I._Ùeó¾Š vövA³ÙŒÝÝ]¤ ˜®•Ð|>gVψÕ)%æP›ò‚º®)b$Ï Æ¬m]àù|Î|~@3žµU—Å€Þ9,Ò9ÆM›Ë»³Cî<ãñ˜ÝÝÝŸÿéŸÿ¹ßÐVEQ>hÕeEQEù(óíï~Íré]¿7»ÈûË‹<11ìϳ19{eý}ʘW%ÖѺ²Õ f~û×~•‡ÞñvÎç9¦*™OÇø¬ ¶0‰5y9cØTΦªûóÈþ<2¯¡œ&×ñ“'¸“].Ê5ÎÇk³G?ö»Ìvd¾;¡ÏÉð€¥i*’j#T¡!$hª€DËxR²·¿ó.“ۯבUEQ>Zѽ (Š¢(eÞúæ_û¤×¼ú‡íŽíÍ3Ï¿ç<Ö2*ÚjÉM±ES US¨c¤j„h,øë ª(œ¿x'÷ÜKÙ8s†ñÁœ›{7™Ï&»”eÉÁdÌt:¥¬"‚±]®.†Á`ÀÅ;ï k¥Ëx:ÁZKæ &$¼oÁbhûëB"w0Žñ$ÊjÆÕ«W÷$ÕŸõÓ?ó³ÿCGUQEùh¡U—EQåÀ=÷¾ðÊtçáßû½w|ñh8¢jœÏ™V€§,ê˜1 UH„ØVenÿµŒ'<ðàC\½z¢2nb ¥€ˆ1BCŠCÂ:ƒ÷–Á ÀYðêjFÓTro11Rä’blp&D$Ö”e‰·Âx2a|°ðW~ê oøO:¢Š¢(ÊGÍÑUEQ”g_ò•ýgv®]ù„÷üÞ[ÿÞ¥».²—¬µXqÄɈ%!"ˆ)FB L«)>°±}ŽÙlÆ[ßúVŠÁ€3gÎpîìYú.k=UU’R¢( –#¼¬µ­“›eXk‘n¹#ÆbŒÄÛ礭° PUÕ·¾á ¯ÿYIEQ壆.+Š¢(Ê3)ü7þ¯M5Åù³ÛŒF#Œi‹R‰1ÄhH"ã R4øaA94Þ` † ¬iWêε­ƒŒ1ô%:ŒõXkišÁZOêâ–sÔ!P¸¶À•Ï,yž3=اª*òÂ#"ìÞ¼ÉîîîëŸïóþÊw÷?Õ*ËŠ¢(Š ]EQEQVyä=oµoxÝk¾í`oçÿŠ1²±±A–e`-1ȲÉ:B#øaAhŸ‘ùÆYœ-HMÓ€K —ÚÜ”‚]Teis‚ûªË½ãëº®É OÓ4T}ßÙ˜ýý}Hé;sÿÕ?þ/ƒŽž¢(Š¢BWQEQ”ù'ßò÷þ—W®~?Ò ½÷8Ÿ/Dhæ‡` ’,Ay>"Ësb„:´áÈù  I¶­xmÝ\dXýýooJi!tE˜²¡-^å½cooo±Ì•«OÌDäë^󚵎–¢(Š¢BWQEQ”ÛâǾïŸ}ö[~ç¿¿ÖZ{Éùœ<ÏñÞcMŽqk2Œw„Î{Šb„qY¦ìÚZë{ãc@슘…Öím+)³ÈÇhš†<3”e‰s–ƒƒRJìîî><žìÿ/?÷sÿêWu”EQ”gÚGWQEQžÁüµ¯ý;ÿés¾à ?»!ûÏ“²¡ŠpsJ•"˜TeÝÄÔuEl*R¨11à Ž!4‰Á3#–„Ìyšª&6#`BÝê†A^`Mbsc€5BŠ »;×~e:Ù{•Š\EQ噊:ºŠ¢(Šr xûïüwûÚ×¾öËÇãñßG/ÝßßçŽ;ïÄڼͣu²,ÃH[9¹( ò<§Œ‰<Ï®­‘¶¨”sŽ”MÓe)%ªªBDȲŒ#eYbLÅÆÆ<òÈ{¦ÓéwlooþÔ÷|ß÷FEQE…®¢(Š¢(4ÿúþï³ÿþÿñkœsÿ{ŒñÜÁÁw^¸³«šÜ¶ Fm•fbŒä£M¼÷ !Ü·êsm³,#„€Ä´x]]׋BÆÖ7þùÁÁÁýØ¿zOGAQEQ¡«(Š¢(ʇœ×½æµ÷½éMoúÚííí/<Ø=¸?Ë2Š¢À9‡µçyž“e,¢ZÄí²–º®)Šo!êº&„À|>x>ŸÿëñäÆ÷¼ö'_÷ˆîuEQE…®¢(Š¢(v^óã?qæíoû !üùÂ禔ž—9‡÷~!d…œÁ`€s­ÅEQm±©áhDUU$ ˆÈã“ÉäWæóù¿9þüýŽïøö]ÝËŠ¢(Š ]EQEQ>*¼úGìÜûßÿþWΧӗ8ç^¼<¥ôcÏkšfdŒ¡( ’Dêº{ï/F£GCŒïN)½{^Nß9÷?¾ïû¾GÅ­¢(Š¢BWQEQ”g&?ú#?<ºvuçÞË—/¿`ÿåÞûr0ÈßUÅ.\xì~Ë7—º—EQºŠ¢(Š¢(Š¢(Šò Fûè*Š¢(Š¢(Š¢(*tEQEQEQE…®¢(Š¢(Š¢(Š¢¨ÐUEQEQEQºŠ¢(Š¢(Š¢(Š ]EQEQEQEQ¡«(Š¢(Š¢(Š¢(*tEQEQEQE…®¢(Š¢(Š¢(Š¢¨ÐUEQEQEQTè*Š¢(Š¢(Š¢(Š ]EQEQEQEQ¡«(Š¢(Š¢(Š¢(*tEQEQEQE…®¢(Š¢(Š¢(Š¢BWQEQEQEQTè*Š¢(Š¢(Š¢(Š ]EQEQEQEQ¡«(Š¢(Š¢(Š¢(*tEQEQEQºŠ¢(Š¢(Š¢(Š¢BWQEQEQEQTè*Š¢(Š¢(Š¢(Š ]EQEQEQEQ¡«(Š¢(Š¢(Š¢¨ÐUEQEQEQºŠ¢(Š¢(Š¢(Š¢BWQEQEQEQTè*Š¢(Š¢(Š¢(Š ]EQEQEQE…®¢(Š¢(Š¢(Š¢¨ÐUEQEQEQºŠ¢(Š¢(Š¢(Šò´ñº >ôˆD d˜”>‘2ÉLxkÉŒ%r` EÚ›µ ¡†Ýs`º›3‚ëÞÂ.éîÛåeƒ´÷EÚçŒE€ `@ƒtÿöŸp¿6í}»ú|0í¿3ƒL ( ¦4Ý} éQ¡(Š¢(Š¢(ÊG #"ºž„lÛ¶Ù³mÚ¿/¸ p¸\hÎÌk6›šÒ½}^RÛ¿M )燆ح ýûLÑeÃÁ›››lll1(Ša+¼mÆ™3gî¼û®Ý;î¸ãúööÖC8A&`Ì`°Ãg…®á\ Ÿ`ˆ›Ôí‹CHHôgšÅð. tĘåZ>(ô;ÿÈsrÌsËÏ÷hV ’¥ÛxíúvЭ+!r«mJýùB{¼É‘÷9þ°_߆“ŸëNÌ-Ÿç˜í?ü'="éèzÍRrH´'¾v;ù³(Š¢(Š¢(*tפlë¶Þ‘"÷ Ü-/’Ľ³†{ö÷¸ïúÙ;ÓÑÍ7žWìíÙ9˜0™Ïhj!Ñ Eß ÈU(Ƶ¢Ö¶BuáÂ:Û9 ­#›ªˆ­øMKB F9"0{ P?ˆÇˆÕc—£XÃqU÷Ÿ§ÉFVsVä+Ï/>g·ž<ÏW…vL+¯¯üÅÅu¾I ¤B…Ä&58*R=§® T¹áâÙm.Þyç·7¸ÿcÎÇ»/Ü1½çù—®ÞqîÌãYÆc^xÔZÞå„·bxÀ´¡Ò§CäÖå÷=r£üóŒ‹K{{{ììb“`ã¼oë0dH7¼Ù1çêÒñ!kû_–ÇÔ#ÑÜBÒƒÁà–ÂѸúV¢’Ñh´xþ˜ïÉ•%¹¸¾@ìÏ“î&ý}iTñ™½¥¨ï„²ôç\·¾…øvÎ ÐvÇD -?²´OÅZ{ÝÝÏWÝBÔK–­n“1kÛך~š€îT^Œßê~°–h I“Úå“÷m^Bh?b÷YA,²¤£%$âÀ¶;xr œÝ6'|3\}*Çe€—7ð÷ËÎÁ¢24‹| YÊ¡8qREÖ>«H»–æ "¤û<ÖÜz²FXœ ýzW–—ÃéˆxÜ6™Ãûá6&zŽLÖÌ!E1á–woÁ¯ê%Ä“‘†1Ô/tÎä Èó±î¸Î@ˆ×~u'L.ˆï'¼ÀTÝ÷F–Ž™[ùYü8·ÿ ‡g©6ØþE²:•b޽þ!øÀ©†ˆXÁRI«nöj´6‘e» ¾ÃÃ9²zœÚÔf!ÙîÕÝó†n_(Š¢(Ï1¡;@xI€WHâUä%ãq¼týÆ»¦w_»º—f\Û½ÁÁþ”y¨IÑ“pžh‚%Yß Q2­X³.[ºýÅu”ö*ãVcDÂÀ÷W¥Ò^Ћ5ËBÓ æ“n6_·ãì®\·ö~²òwaU`cVå²®º‹q»º\·ž¦iVEº¬Šð)gïk%`‰˜Xc¤ÄJ Öcr+8×à‰ 5„š( ›$ìB©c€ÉsÏ]ç/òü{ŸÇ]ç/ÆOý´Oþý{î¸ëwG›ù!ñV„wà™<3¯ÿ¦æÊµýG¿û‡~òÒã³u]3Ê l\*Bñ' ÝÕ±4+aîÇ âxÂ|ÈáDK|’K¸êÖ)¥[ƒ1ÜÞ—ÒÒçZ^OLÍm¿~yýëC¨o9A´üù××Ñn‡¹åÄÒúç__O–â“î¿%qß~gxÏp8¤( ²âMÓP–%eYRÅªÛæöuƒ"#”H`˜YŒ$ùÚ¿ù·^òŠ—¿à}OåЗÍ_xÍëßð³ïz߃̛„lã½ÇÆ›xZá $¬´wíDÂr UU àÌáÄL?©±Æëãºþ÷ÜmÔM,å.ý‰?ú_õ ÷ÝÿSzqË£ú¿çÝïüõr2µó½G%ÏsB~)ÖÆ.¦m³Ôˆ‰5C[·&kr0k­x[¶ß_d ahŽF}eY\šã[LzõgUnxºRKB7!œ=·ñÈÖ0ÿÏ›Ãtl^~šø“o^yä§œs®ŠBc6â^<ƒˆpÇæX\ê´°VRêf}€ó̡݄Ží”R+t}&ËÇ}â0òFDdùw9­MàµWv„¤n2íð}ö1ü†·%áÿµ–Ëí ÔÖÿÝ`_YWó¬ ƒp8»síTM}®Ÿm€dpam¢Sx*“O²ø^g²Rj_kSÕÌòœwxÀÂ<<¢çà3p’ŸænKú8‹Ø @R¦€y¨Þ¤¶ØL¢äl®ÍÇ®/ýÜþÒ$éʱV÷ßõÐ^õ·ÏµÏXÃJD[ê&P#€©)b$îŽpÓ£?Nõ€6‹s€“„ÓÆGšÐ‹.TRüb·;Æ3Lê>OF›¥È3ÓMª‡¥Ï{øÜá¹rÜ¥ßòä±Ií^2cÜsj¢ÌŸî“¼"Áç6O½|µúƒO\Ý{þ~¬xø±ëìîO©šÖ"p>uÂŒ`Í&6³¤îÂ2†Î©D@ÀàbÐà‰µYœ;ƘŅœIDR·?B¶}ÞÁ9Û®7;|A{\Æ^Ä®ÚEF,¶[ÿâÌR½îÈ®ÙýÝIbÃeaåµËÂHDtŠ­K+˜´$´;rÝExçHK¯)I0xZ%î—"<íÊÉ·‘ž8¼€‡äh€($2Ç‘Åóxx!¶1+Y˜smg—ß~t‡zþ›¿ö/»óÂæË>îE÷üÅOúÄ—¤Wþìc_ø¼· ²ü·,üf˜§wކÅÍgÄÁk-s™þíÿùsùÑ×ü¦£;y$ÜEå„è#ÆF©u@j3DRŽKö–âOVC]žÄø·ù­WåIÞÀÝz²Åºð¤BæV“7YŸt·®ŸËë4Å­·ß9wd"éVÛ³¾ÿZK–í<å·\Oþ®D…3ï±Xšz—”ÑžG!Çš k=ÖZæÍŒí-ˆÍ˜Y½Çg¿êS'óÁð)ÿ  ¤û<6a^ Ó7<ÏÄÞ øC‘(‡×NYˆH½mÛÅoIÇŠÌåï£Ûž¡=f=1Æ[ŠUÁyíq*ë¯ëﻦb )6fn_ù)ç¿7ðÿžó¼W/]§*K÷#?ôÃîÍo~3/ûÌÏ5³t*ØT ¨2!%‹5Þ{$\Ç%ð2ÀÈqíïMÊÚ—Xßz2⸉º•‰‘Ðe»È‰y{M*kj3Dv/]ºgø_öÅŸÿ»Ÿö’ÍŸ{:Ÿ·™l¾ú‡¾ã%ïxÇ;˜TÂǾìÓ¹ycF—Ø©·‰¦›¸¿8?,LÀv×f‘áÛßAòn¢orâ¤ÌúDÛqÏϘáœc˜m±5±‘e ¼a8ˆz»ˆ¼ìãïùî?÷ªOù†ö’?Oxß»&ßü÷þþŸhêiƒìy/!Ø °±C’+ s×M´Êœ^¨·¿ñE{KÃn›ŽŽÉҤד™.Y7ÑÚ爈m¯Ë0ÆŠ¢ „ÀöFƽ—.rÇùÁî+^vÿO¿üy£¯Ñ3ñ™… Ùë~ý×ÿÛç6³RÎ3677‰ÆÊ¼‚w!¿KÆÉе–&í²¹¹)Ãzų8’:ä½?i¢D2߇¤ä‰$q ±Ò_’y'©ŸHiSýDÚ!S¹,yïfwãÚÈñøö à±éAzË™­üù;Wnü“ƒƒcsK–eLË$ˆ£’ËÔe"Ö#Ƶk®›øu .‘RJØäºßØÅû"¶@œ¸•h·®^ŽÓOþu—y«‘Q¡ÿ*ö“¶–œeÏæ\ö–+®Z¸êàñ¦–Îäæ=*tŸ÷¥ÀŸÎŸ}è¡Ç>íïþ}ÿÈÃO0+’Œ§I"íÁ ÝA‘¤ÂZKBô!ıL}ˆòêPJ I`L¶òE-¦½8²¶¡ÍlïÈÆöGÇräbî¸bkW/ûíV O­åù1»Õ…¢ˆëúˆc¶,Žo%œ1ÌCݽ֮(«v"Àu›×DǪ7‹ÏG·ãCeý£’RZ訅Ãm-£Ñˆ­‘ñ3wPÍvyä‘Gxཿg_÷Ú ²ô‚{É‹¾è|Â+øÔW|úµ¼à¿uþüÙŸ~ÙÀÎGñ06Þ{ò<ç«¾ê«ø×ýÒb_œäÞêÂ|‘ßzÌqq»QO¶Ü“…È7óT"FÖ…æÑõ‡ÛÞþuñØ:é–¯ !Ù‡·:?N:ÿN:ç͇?æB}ÝŒ1Ò4 ’ÅÅsÆy’x$bŒ„pÖ0ŸÏÈ=¼êU¯âüù|%Êâ¶=8[[[¼â¯à-ÿã¼pP6˜A¾øjÏï…–¿Í¹{ì$ÂzêÄmoçÚ÷ÝúDÃQQdoy¼?™«; õ˜<óÜuñ.^ð‚³gEøá‰ð9›F+ËGžçc$Ïs>ë³>‹w}`Ì$Jc(Š·ô(Š¢º¤|1AM'„|‘Ýr"bù;ð¸ï¤"uÇíRXlkÞ€÷‰ûî{÷qwǧûy³á0•eI]×\¸p7ŸñŸÁ[~÷ nÎ2¶G…®ˆ,„n_Óâ$¡Û§N=Ù÷òIß¡?@Dð Ú‰·ùœy¨˜f5U°/¿´2wÿÇ}Ü÷ž;wî¯>þØ•KÕ|ÂËš!Mêè©ÅŒÐ_[ãׄ®ooÉwÃx|‘þï'›èŠ‹T«þz­¿loßo<söìY}ôQvo>•é¹ñ þú~t ~WÏÆg1𪷽íŸû-ßò-¤ª1gò)u]ƒÏÌ7ýƒoã—ÞôK”ösÛ¥ÊÙ1"Âfüà®_:+CbIèbW’ ÜámWÓ¦?¾+·EáüFæž/åüžÝp¦0\ºûÜ7}å_ü¢›ßøßx×£>J# £Ñˆ²1lŒ¶¹tïóÙØ¾ƒ±qˆõ¤EÄSW#Ç´Û!"KB× ½!ÖGÒnùûtÒD×á5Ma*žÌÉG›lll°1;ؽϻðæÏÿãŸù™·Ú_ð—þÖÓúû»Ûÿ´öøºÛ[žîŠù§ðÙ#tKáT_{õjüÓo{ÛÛxôáÖiE˜§mjI6£‘6,ªIèÛÕ`ð©û¡‹ëLݤ5+p A'íQ]쬜4 g’„$Û:⺋ÁŒE¨Í"Gõ¤Ð<»r¡vX|jõÂÌúæXÁsÜìõòÁß»C&m®äצ5Ǫ é–›y®½oWÍYjDÞ–Sç¤ßÑ݆ g»$CYœèí¾m#3’¡+f%±]Î~Ñ8 ‰qâiÅ’Ò‘ÖéöÖ6î…QÄÃi¨ªŠ·^žð›îó#?ýÃwžº?ó’—¾ôÏ|é~þ#Ÿú_ô‹žWÃï}ä­sƒ­t™­üqþþ—_äŸÿ«·ðÄô"óâeLëlcL¤ 2 Uþ´Áâø‘§&^\@qëPù~‚ˆeuI¸Kªo¹}áI~¨l7η'Ú—çr9ñBøÈüÑZŸ,Ox±.È̉BîØø5G·=Çîï´òÔîwcÁšö\¶¦œˆMûlæ-^,1Ì9¿™ó‰Ÿðq<ÿŽ B¸ÁÈ„§|œäRYßðü3ù+^Ì{Þý(åÁ>©b܈:ê:1Ú:GY–‡Û1Xi¿L[€KQ0îI¦~Ì-CïŸìB¦‘pbhrû]Ò²¸^^‡å¿ç²˜œ:ìðÇ>ïÏ CØ/yÕvÆ7lÂwê%ìÉß#1F>æÎs\ºë>ÂÞƒ\ïQ65Rxö«óø,#ÛèÁ8ÂØ‚%Z.ïš;~`äøó{åwÒÀŽo'jM*(œg:žp&2ȳé„Ïü”󩯼ŸFšÔvö{¤Š S2HSаÇ'ìœõþã›ßËÌÏ ‰bh’|H2Ž:²,#¦'KÅ ¥í"(]Ê.¼óI¿¯Ošhl2³9¡n°u`{P@5ÆûŸþÇ?ã'kWFÙÍ¿òUùûÿÑ7}ëwäÎñè{ßÈþœWq0͹¼g@¶¹v3±uñe#Ó 6 12,>k'0ƒÙº¥@1îI~×äüâw¬­!b1Ö,&°Ò a·˜]¤fÎK_x/÷>Ûgð·ÿž‰Ïìì~øG¾¢'³žzVR -÷¼þÄÜGqééO}:7vg\Ow2Ÿ_ ËÎQ7„hɆ’?  ó6•ÏLØîRÖºë7éôýà&Ù£iÅy$åÄ©à'k&d²Oá÷Ù>sáC­ ?øÒîßûŸdÙ]à?u·ýPnÄ麉ϋ1}í{Þ?ý¼|àæÊ•+L§SŒ3Xc)«‘Ö‘g»ä0×­—]ë9¨‹´ÎIªªj%ï«_¶,t{ß͈ä9™à¼Åà±.ûÿ³÷ßñ’\õ7þ>¡B‡›&K3 3£ !¢I6Ù8€ˆ§u{vmïšÝ}öÙð<ûü¯í]Ûk[¬×86&Ø`pŒ 0"ÅQ–F“çÆNUuÂïªêÛÝ·»oß0#@s^¯óº·CUWÕ9ç{¾Ÿoø|‹PB‰”!J}åy|”÷)Êù¨ « ô+Árà1´Çz…J8¨Àu9*ã±WjÆZÇ´Y 1´Öbm^ɸç¤U|fȲŒ,KȲ ë²\Aï†Þú® )¸s®›ãìñkr½÷˜ä³Xå9Âi÷™ZkÞ†!»vå$XºeY8ñ·ß~;wßö…KgëñϾê;_úÆ›oþöß›ªW~!ï?osZ)I»-—––¨Vcêõ:¯ýëù­w}šDäó¥ÕjQ©„aXxìâ­Y4GÔIÉÌÆxKÿó6+9Þ£¶PæÐ݈Çt½óʱíαužÝ8¯gÝH…t¢1µ¶gDë0—]ÎÐiw˜©qÕU—pÉ%{ȲeZ­&bw}ÈDª••ŒƒÝ»÷‘¥!™<É}Kg»Ï`ÇŽ,7“îÜÌe1&“ͯõ"R†y×{Ÿ±êM½:Åšòl½Q-ë‡ó“e<éIWpÑE$ È,ÿiQðw³’Ï_Ðbi|5Æ0½sš½èEüýg?ãK'i4TëH’D¾W;ç…Yɯóµ6^]}Ñ;ÖÎ9¤÷´ÛmªÕ*>sÌÏÏóÂç>ë®»œZMÐjµS3›»áßRJqàÀžóœ|äö4VR¸ 2ÈSvŠ5m­ÍA%ÙTiHëY?›ˆ¨é}m­%MÚDAH†4 vOWxásŸ”¡ÑOÖ³~÷Ê+¯ü™£Gî_\\䨱cì½øZ.™ÚÉcg {u•ÅvJ’:d”s˜”å éEW_ cXë{ä|¿³»Æs¹¡´"Ë:Äaˆ’)ßû½/%`=ßcoUp÷…ùx{«Ï»ãÞ»nzä‘GHS¨QrÞäçþߎëŸv=ÿtÛ2‹·çi…¹Õc×™ëG¤©¾u4à&êF+ö´s#Yá€r–¥¥%jqÀΙ*»g"LóÌï|ÛK¯_Æ!{#²rcj~æééiæví硇2ÒTuå‚ó‚$Ið.Åy‹T=‘=©Œ£ÖõÆ·u‘Ô¬Åd)A¡˜ÌiÉu×]ÇÜÜôvE&½ø¥ Àmo›+@ñk·ß^ào` ›¦ûâÿ[\XøáO}êS4’ˆÄ(âP`¬b¥ÙÆ ƒP1qÑi´ 2)Y>_”“•K«ó Óx— G)Ð*F‡Z†Ôë´ŠPa€V1*Ðh­óϵ¦Õ×(q½“P”¼Ÿ]Oð@h£êt!ëª)ÚRú8å:•E” ‡'œ—9>ω-=E¢w‘àr¸_Á‹¢¡—Ý´%D¡|Η™Öâ¹xÑ=~X\b]±éeøÌe)Y'Á¤\’±¸4K &IqiŽ{î7«×»ašÖZ2›“q*!QR!‚œË: Ö#d€_ï{Øý¤ÃÓáìc±,rË»>ð¯?ñ/_ù/ùž×¾æ¿Fò—é':8GVM)Ž%ÓâÞ†g7MvKÍeSÇù7¯ÙÉÿ|ÏG©D—r*¸œ•¶¡]Fš¦xß+Ø×#óqŒš~8ð6zÑé?¶½+Eò М¢Æù±y]Û€[÷nõ%9Ö0Ü#é'¶(‡Aºa#Dÿj)ÂúÞŒYÂ¥m‚¦gáú§\Åþ]’À"mž%´ ÊnbsôPS)mwœŠXá’½;f<ö œY¦„t–Ú#Ä Ö{‚ ÀÙBE/-æ"WÚ]aè‹;ã ë\,cn¯§}˜g×8Dâ­ï3˜õ<ǵ¹@<ç¸þ9ßD8 ™­RZ®]Aè[–‰Ÿ?=Œ¨äBËŸohðæ$ïªó’gäÓ·áá³'i-ïFÇäkT(‡÷ x¤,CUÓ ¯›Þÿ¥ À M¦"EÚ9M5¶<ç)xñó.%ÒMÂ4É…7 t%´9NÂlú´"ºªN–h¾x×–[§høÎ’‰:NGù¾XT—S½Uؼŋ2’ËN ô‡­³˜ +,²³L5ŒˆgàÙ×`G5ç+à†,ªg_û}oøÿö_ÿŸ·ÌaXúÒ\=s6vÔ¦šN/gœ]†Ì$Y„OsÎ_:H±Îƒ Æ^ßz!ØÀt®òàE©¿äÏEK‰mœ]âéO»ŠÕœéZvNUDüzî'/¬ÂÇ·eºú‹oÿýß—gW‰§"Òζ\|ÑO¾á Eù»ùÞW_Êcþ5g{h-ìFÕªXe7dˆ_'Š ¤«}K±JöéUÏyŠH,žg ÎgÔÃ%ªËιYf*Â-œ¼òê]¿“/>ã¼hÈð%pkš ûw]Ì7‰·!so)RäÊWt§§kDQD¥^£V«W+„Ah¤Xé4$=l·%ps™©œåÓ½øÕ÷WH¶'œsØ9¼³#•ÿ^Òzá}ü\B¬ M8¤z%ëì°kìÍ5.s—so”ÒE~´FÅE®uà Â8º ŒÃ‹Ï iš’¶;´Z-Ò4å¡¥¥>åTÊÕûÍÁo†'_)…sk-Zå¹¼ÖæŒµdmæææ˜ªÌÑœ¯pæøýüùŸÿùοûÄßüÿé?ÿ‡o¾ä’ý?ò¾síìȽâ–F£ 픋öîcvv–ÿñçs÷¬pokA@Nä§P´ÇZï×cM^Žˆëå9ÑëAèýýaç’ˆ‘Þ†õ »*w'[¡HØ»»B¥–kmFä5œ°x—ˆèç„à£;ào.¨µkÁH„dºB͵ñi‡k‡œ9ù(Õ‹^H;–˜úªœ’ÖQCEÅÔžaÏ2T1DXG²Æ)v]uˆ>û©Äª…è,Q'Ág)tÂ-]ñ³8_A 'Z(¿È”šçWk ˾Ʋ«³ä¦1QnÐÌŠý]` ¯nI†S<Ë–äg%m2W XX8Ë“®ºŒ¹z²+¸t‰,k ?Pɳ¯ýþï¹åmÿï¯ü¥GŽå™—ÀÙÓDj%4Ó³;¨K+Žfª1¢NâRÎ ôz©)CÖbï{5Â’î£k èVÉ 0þ¥+Üô²vÃÞë:‚Ä€ÖSH~†<_÷B{šÃýüo½ý75iˆ7äó¤C{~{õìlÖÉù(¬­b$ kk1×\æúªcîÏ}ä±EGÃV±n–€Æ”¡ÕH»•¤]-W:ÞÀ7þùg˜<B·v…(hòäk.åð~ˆä#ˆt…Hl:˜ñÀ-CÞ{Rǘ>ÞóÝ9VÞ{sùúM_ÿ@×gSÀ;Ž=úê{ï½—PÌÎÎÒiå1 C”1¨ ðR±cÇ^öí?D\›ÁÙ/rç·¦9¨Ì² Æx½û¥”­xñ–ùî÷ËsPÓ4ÅÃ|sŒÅ˜üufÚ¤ikR¬Kº¬ÆRIårlj/ðv±DJ?P£XÈn0–´ …°cûQ@§<fšCëF–žkgGxÚŠÏÛao~›.YUÔ@H¤Z¡U„ÖaHiewîa 4A ƒ(Ó8DIIVæ+å7ç–yظ‚v{íó<ƒ¹¹ sss¸›\âX<;ÏâÙyæçÏb“”4Í.Ÿ7A°èS¢(¢Ó^+©F ¨ŠƒÒ\‡a¡£:ÍÆ þ¯ÿôïÀ&x›!£ Ig‘(Î"7ÝtgZóh­ig[ «5.ׯËrw]RY=Ä[´(iPX¼iâMB  T§ÈÒI’à²ì–ï{Å«õLØ.GNMè î ÑÃ!“Q«ÕØ»·Î醠-»jûHÅU2?œ,KúÑ@w#†Ú¦Ì×iX*rgV¸ä’K˜H§¨*…ð›2&¹/@éF#(XÍÍý¥¢÷þ›»_;@×'»lÚþÀ=·ßù‚•æ2µ8kqi AJ(q€N»EšZjS»8p`•ÙݤR`4 +{žì-‘ÒâE‚Õå ±9ƒpYNj”uÈ’íÆ•Òvƒ¤¹„7 Þ¦HŸ!¼Ë'|Q.h> ûp§ ehnQ‡T¤'ÂËÕx}4Nê~%¬¬·.òÍ5ìÖëèßD¹AˆÐ-1^Ql‘ê÷huCa1Ò%à°Éâ˜MÙ³¥«JcjŠß·ô{µLqHd¹¢*ž€T@¢B¤ AG„Q• ®3]Ÿ#®M£Ã JF¹ÇÙÇÌË9´Ž*¯¿kŠk¶a€"sG ©$»µGwŽqx.âd"HÃk":2·o“Sâ¨5×ïÅÆÉúú>k¤™¢ÑNɤõÔg+,ž9A¨4ÖèÑgPá©ï|Í‹û–[nù/­å6Üy'ûwì%–ŠÈI`%,»ŽEB †9š¦Ž‘ÞVQ"ì§q2{Øõ+ƒ“éÊtý¨Ç…UE£³È]GOsåP¤†(í £Â#ô/aažß–¦é¿~ïüaX3×Z" CZ+Kìß·½àÛ°.íP¢x­¦@ÖpÇ=3}0diQQ‰/ÝÒþ¸Âp&×êCÊó–È["iˆÉpéicž4["´ š501¢-O]¶ÿðoõ¼åD€ó&¯&¢,ƒõ§pªN€FKEµÚAÖŽ1S«3³ÿI¬˜=¤n÷jš°O2A9®V\¯{¯ëÝMø„^¤ª[4—d:š‡NJÅ;*N¡\´Ñ¡}Éûv6éy¼o.€ò-`÷6Xåàkè&ðn)å :œýO!º+Ë2¢(ggÛ½»FmvšéÙ½8­hYH3Pj5,Ù39MRVçY\\$m­àObÓ6íN—uÐR‡…Eù|šååe´€ ˆ*9 v’´™©× ¥ev×.×¢yúîºë®à­oyËïýÒ/üÌcTg?u.<eWJQ©T¨ÖB¢(‚v*¹±'Ž9‚÷Ëcáz‚άÖ;ÞãÖe^t=jKIçõšÐàqµ{ß3nüïöz‡1G¯-/´þôüÆ6‘Áse•˜4M‰ÅUsÕ „Ãr£ÑX¡(@ÒÉ2”ô›+EesÉœa^•ŠJnЫTP.$Ij±æŠ+®à7Þþ‡8ùä«@×Jú€®¶–c›+ùÒ=9»ƒ hÕyXËìõz+f±~Чߏ»õ©TÎ0›yŒ?¸ð7Ó‚w_Pqi•ϼV«Ñn·‰ ÖA!{NŸ>M+,¶³.ÐÕïs [x23­&’§ƒ²µ|=S«âœ£V«‘$˸(dff†¤µDàòZ¿IšGpmÉsd RJÂ0DJ‰q«¾Ú$IØ»÷rVÎ(¬Tdí «+Ù¯7 ŸÇlñºÀ[K§Óaª†ž¥¥³Ôk5–OŸÂ¥ÉØã¿å[¾å–÷½ï}?™tNí[YYáôéÓìßwív›z½Þ­Èe>I02ÉïM tà­©ŸLbø[+×ûkÇ·Z-¦¦ëØÄðéOßÏË_p87„}Ö~8qaižŸÖn·¯Y\\üžüãy _ÁzZ©TøÙŸýYt&þÃw¿ï÷~ðG~äyHyr»æ¼Nh™ éaYU»V<-R¬Œ! pÒ"d@°¸À^ߦÃé¡ã‚_xM*¼äØóx1jþ®WžEö/¸ž÷Ç, à¯!´˜:Æ“A¹!djÞûnhþê1rÝ’Iãîwä÷¼˜z_µó(ŠN8Kr¶Btå%¹'CyLÒ@IC+ÉsÿET¥´ºaZÛñ©_Á‹Þ‘FI+˜WÁª*‘tÀ öfwœ|€–Ͱkuh˺áyèfœåïµµ5“=Îû”bE!xpá5ì~ÑóyèËW+¬‚… S™€”_•ºó™ºŠ~"+¹Þ9§u2Wot˜6$UO˶Ùa§yðŽc|îȯçÊHÚìddTzê[zî¶VùâÊç|3‡¯¼g%N„(aI:M*b‘Ìe4mî5µf õ*UFͯ ÅƬ²Ä~™‘¬O\ ÓÅ–•Å72NØÝ(_í–1éêE2ªpÕŽJý˜´\YœÇ9Gb—ˆíNè(„i7:' ÖÁ *˜;ù}¯ÿ¡ß~ÛÛÞö_2i¸û;ÙuÑnD¬XÊR¢ ‚«` ]:ÃÎXã“6ñ(²R¹<Áè%íBôÉïr·XͯÖD­â>¥Á)—ës¥Çß+ª^,ç\)Z„Üu_‹'_Qe™ 5 âAÂnàMþËz~Z¥üì/ÿòoT:b…°Ò1»H›m.¾,å/{:$ D”Gst2 A&SüÓçÛ´³}ì ,®} Ïì¦ üe‹²A é$ (•GâA€Érî •Y´ôH–b…NrÒ6*ÏëÓó´Z+̓WìûÇëDŒµ&g÷÷—A@ˆw!ÙtIÂîªbo0…^vìÍ:v‰ek!”à#œÏ¹n¤©åYe}þ0†ºÎzË’ 7äQé±r4ÛÔãtZCËé2‘­!]§½‘þòAo¹“šæX%«V?· ƒ¾eì¾ôëèzø· ~,óË]ÁUOy ÷|ù>2—MOc*’é}ûˆêš³g!Šó0Í,íP#Î,ÏsÇ]wrⱇi&A™ - â%ï&²‰ ëÔmÖ¢´åãñ[ÌÑþ{“^—@l9i3¿ßÝhUî­rΑu:´: gZxu 'bª3»‰¦w1µãbd%ê*™³9û£„K/½”ƒ.åþ;n'Å5wsW©Tèt:ÌÍM1»§Ž\9Íâ±ûùüç?ø’K.ùo¹é[_Ðî\®‡X%£F³&‹MÏ‘¾ólp¼6k™÷™8×°Ý×>,Çv’56é=Å£¼ÜlrعŘߜd>oU>~-Œ·‚|û÷M_Å™33ìÜ+1Þ »^D°×9÷¿Ú*{y…ÀñnkóØ7PRê\饑˹.ó±µù{VÚsò›J)’$¡ªVsÅ¿úÕ¯rÇ|®àFÎÝÞòmÃÖÕzÏtN-ràÀ„ºµ¯sh)sFÖ nûÆoüƒK.¹äçÏž=;süøq–––¨ÏLG1ÖZ”sÂN!sï}TïîÃgΜáÞ{ïåô™“y5«ŸÖæû³ýd‡Nô–ºSLÙh-Ð%'hp@‘¡HuÂýÏ?A$s#YUtUï7âùMg/ÀÐsÛL–:sæÔ÷úÓŸF)•3§¥xãߘHAÚP ¦YÁðéÏ|š#G¦ hš* iÛÅñöÙu"~‚¤’{,u°ØÂàÒi ž|åÕ¤F¹¤,ΤÝy™¥å!ÍR¼÷ï|Ý+¿ûž!%VuÁ÷ð‚äÌê)EwíAÀT<Å¢Á{14œR9 GJ’$@Rè½9!£õ]Ö#¼*ÀfÙ`ó¬Èsä!Ð/)ÀóKY[;÷íô³2—ß}û×Ð5O·~þ¿J±D yMvïb÷S§yäÁ£øx]u˜†´Ë̬cˆ”äÌéÓ|éÓ_aéôišógQ>#” $HéqÂâð¤EÌmL°eopÇ~œðÆÉ†úÏ/&¾®á×âŠG0¼LÍêõÉ Ýߤ Y™fžG,‚x“à2‰A!ì2˧îeIDLïØÅî}—²oçî\˜e’¶ŽS3WåðÓnàÔ‰ðæ¦$æYj•*Õ™*q%Æ—]ó4N{˜ùùþìÏþìæ«®¾âµû/?üžíÒ{Ê%{lr^€@Pxoºµj‡=§ÉÉ<ÜÀ?~~\¸Q`s’ßgÍ>¯[7|~øâzW ¼÷>‹µuf‹ÍEȉ¨"I¢ÌM#C7F‡»q?Œdkð³a½— g3—;I¹^âžqkxÒõ}® …[mm;—§üòWÜü‡¿þë¿þ3Jjî¾ûNžñìguKûU‚',VH’Æ2Q¢”/¸f¦‰¯-±pçWsn“ žòâ‡÷¤4è©Ä]¿Pùó *dI†ÁQ 5'æñžÿ£yÓÿ p„e)Ò‹ñü(ð¶ PôÜ6?ýÎ?üƒ©å…e¢(&Ö 'ÚLWj¼ä%¯ÛÑ‚°RÌ|G²òŽ[ÞCÛ̲’Buv–ååeæ‚æº†ÞqÍŠ:N mkÐq´#Ø·ï .Ù›;:ð%;$i“4Í«¬XëQR±Íüê;òè0KnöÎá…ÌSf„Gfg©†PA2¥—°¡fsúÔ1>÷ÉÏÐÀ:ÏÏ÷ QT¹ðÒ€°èu€ì(rÅòoìɹvf«¼t/q”‡WkáóDQïòpšÉÚ` ·§›i7’{n_7ä³7üîk¿ö®Gg~Õ Q”ixÐ1¶“±ã¢‹¸*¨ÒòS) MæUΤk _ýòW¹ïö¯âZ HS¦Â-5Ê[ç²îÄ/É0zcß6£y_.bkž¹”dz-ëÔYÝÌýmä>ºí>k—D šf»Š*¥Y\\äô|ƒêô,_|1;÷\’GC'íP©T8xð Óa…‡ÜÆŽ;*9´+Xl#)yÞóžÇÿê½<öX“øÃÿùM?ñFGÍíлF=£ƒÍ†ço|LÇy”‡c½ón$Â`¯ß€Ú{̰û–ã¹Ñß܈Gx=;V©´÷‚ÜÁò9’uÃ@ɱíe– T¾1š”c 333,,,ðÙÏ~–ç¾ô[¸ûÈW]5‡÷«cgÃç¤9ÿmY¸¿Ÿ–ò«OP¤»Z¦n€}{ ÷¹´Y ‚ÝUfî.Ùâ9ñÀ;çºÊh³Ù$®ç{Z+¼“ø’#ƒ W¼ÓëÑr'ñè„aˆR*÷¾*Õõ4Ù4%œð™Û·}Ûÿxï{ßû/Μ93}òäIæççÙ½ë"(êóæyÉcrvø¸ZézóöïßÏwÜÑÍ´ÖEQ·Öp¯øè•ñC#ŠzRNðžV«E¬‚n¾îìì,_üâi&¯f&ªN‚ŸÂ»·#Õâ8z®š;pêäÉúð‡?ÌÔÔN«ØG2B9õ½†å¼ü¨XD¥ÌsØóŠ«²çرc˜8ÜÐíeµݱ˜å¬öÉÅ»8|ùE«|.¯ç½A®Í^6ä&œÃ<¾¥'wDßÈÚÜòwÞØsì°ï} ]Ñx“VÁ2Þ, tHUÒx'-êt¦jèXqöl^âbGÐbyþ ŸøÄ'8õÈcÔ¢a2âHJOÖÎã˽²H!@¹Ué]—$©Wšn¨m`]§nîx¿æò®oü¸ "?ÔÆÿËu,òåw'UCËÏ]ƒ÷)ƒ)ª Á©DÞ¥8·ˆ³¹wT/Ÿ!IâÌÑ*û®{6í`]Ý‹S‚f 3—_ıÏË,ÄyXôJæQ*šz½Â®ÃOå¡;o哟úô5ßô¼¼é)7<ýW·Am:¥´Ý9+½,ÆTæy°büÄ´ˆ˵‘ƒU7|ÎŽZ+¢TÐäHÅuü¼‘Y©¢ž³õ“ÍŸµõT}‘ ##ÊAêzÞØI¿3îýq$.ÎyDp{ûf'çÈœäî{¢ëÑí%¶Û¬q³†ºók› Ñ&k£ª+g>ËÑ»ª„þ;X a×¥/5†©"ÿËb¼šÒNÞÀ‹+’Îëö—‡Â¯‚•`k3ûåVAî Ð͗ésin­Eh 8¼·oˆ¤A¹<ŒXXƒô |Y¥ÈQ.x+2Qï»îÁç¦FOÜ|oQ5ml¦@+œÉrò,!ðBNd¡AüÀë^÷º?xë[Þò3»víâþ#÷²w×n¤qYJ…yh²„´¹B@IZYÂÜL']}˜/}éKhâ­Ax‰ðf•Ls„²®K’K\^‚Å—Aà:À;‡–ŠŽøŽÇð÷|Œïý¾×©òQ8„äRœûAP¿~ž+)ÿå;ßùÎ9´›-´PD* ¨žåå¯~X~ïV* I2Œ­ó÷»™Ù½¬d DBÐ^ ƒéÆsâÈuø(êâÂ5•ÀÑj¥\vñA.Û?KÒ<•“àèfk,K¤G8Ûn·÷î˜ûõÖwïºt/<‡s!Òk´o!ŒÆ§2µÌ„sQD+3€ÍZTÉ-òmÃP{AolàṫÒ"MSB§¨Ê6ÊI„‰ 5ÈáP“F/¿„þ·oŸpF¼uÄ{7’“MÍ üÆ0Û tÇ}oˆ†{ž›1éŽÌfÿ>M;€Fè Ó‚Ä&t\‡Œ¼d£;w ”‚cÇŽñá˜'NtYþ‚ Ï7iµZymV­QJu½¸¥¥ÓÓÇÄ8Ìs6ìóôíP&=ÿf~{#×<é=nä6rOþß+HrV;Ý×˺¡RÊî\ðÞ“$ Fƒ;ï¼³{®NÇP¯çzûž={ؽ{w‘¿a†9ûñÂÂÏ}îsó:ÊóóüÕ_ýÕO{gªÛ¡ÿmD±õÜ63W¶cNmfNŒ;ïfæâ$çÚHHí†Ë-¹÷q÷<és™ôzF…/o!çU còÃcÁôvÉů½­',¼”9·Þz+§OŸæÄ hµZ…õX÷Ô†4å¹ÿá‚æ»:'ʽYÔ6Þ̾¸ÑýyXø²÷cL·Ÿ‹VzR³,ëÎc Y–u=>ãú8¹6É:+=¨e½ÏòZÊ=s#í…/|áÿ¸üòË—Úí6'OžäìÙ³}Ï6glפiJ§ÓÁCE¤iÊUW]ÕͧÔZwu³õZo¤Jy½¯}Á&Ûét˜ššêÞï?üÃ?äcÌ@Tž?‹7µ «òèø{Ïž™ÿ±}ìc}Õ@Úí6¯ýësO®Ö` Bi@EïyÏ{¨Õòåå:Œã¸ð†®²æ—²£·¯×ò:ð¾{¬÷žë®».÷™¯eEš¦xïÿä{ßðš;Ö›Ÿ»Š¹^²•úé8o#ø 7ªkp½ôÊ€ò»“>¿žvãÀë÷nqºÜº°|+ýµy_2±[é|7­³ï½ûöÞäŽÏá—΀ ¡™AV'Tû¹ëÑ9ÝFV RH=Æ­ï}ñÂ)¦ÛK„íyd²Lš.Õ$ªÐÑ ™7X›AfÑ™£b5¯ÖÝ@'A&ãºblÒo­™à›â¿PBt{Y”]â8”ðyG í¹§°¿ áGöÁïdºFªªU#“U“ú–ƒŽñDqæÙ8Öup¶ƒ÷M J4Ësÿç?J°ô 3zŸy"‰Ôö@Oí õ‚Z­F%PÌ/.3»ï õK9pãKÉPÜú¥¯¼óŽ»oÚÏK‘¥]äÞñÞ0­ÜR_ c²…%v Ǒϼ›öÉ{xèh•ùt€T„(/‘βâá üÒ‚Ë^øD·ù\ɽ¹ãrtÏç<éæèö¥-ˆ†Ë+ïðHœ®Òq1©¨“©˜”‚ ¯H{;šMâóžêxdOTÔ÷ÿ°®$(—ä{†ðxoñÞ‚p8·1C_ejö×½îuï´Öâ¬åþûîô¤Ëp6¯óbÉ0­Ö$¤²ÊR"•9.»úi´e¥è5=E[ÖhËYÉ»ˆId…ŽIdD&ê9…•u¬œÂ‰:^Náe/+8VçÈ|ÌJR=v³œÕùã?ÿ$ƃõ¢ð™IFð}`éö7kÌ?ôçØÝ\^¢ÓjQ‰Â¥ÌÌE|ÿ¿d ï: ,0Åb;%uS|è#Ÿ%éh=K `* Èšg }FGÚnO”ë{]¾7®ÛN²)’FŒií`ÿîëØ·ãI˜4"ÐS(Bš+ $‚À¼MжJ탗Ìýê:V,y O‡Çz‡ñ.¯! Þ`–DLÓ´1ó-ABî@è9d4CFˆ–¢Ë¼`eˆÑ~¢n°k^k“PŽªòh‰Gd3FQÇž x£ŸmÇùÏ%`}¼~{ÈüY*ú†ê\0 ¯'Çy¦'¹žõŽßjwÎQ¯×i6›ÝÚ¡½Ñ"Çgy9¯WݦÀ9‚4M»eÌìUùíÍ!ö÷\®~À½–´­ôjsÑŸ«û‡ñ‰‚kÍÐþk0• Ðt;-Hìpνé]ïzÞ{fffºË׿þõÅw2D€Ò´:+ÌVfyÏ{ÞÓõÞ–9äI’P©TºQ[ÙcÓ4ízoÃ0ä)OyJw~–QŸFƒ º| EÔ蟼òåßvû: sè<í]›iš—ŒŠ:½ë¢\½$’âª&݇헽‘Y–õ•÷Ú G··¤Ðv€ÜéG†¼¤Ð¤ øÐz?pÞst+±~Å]·ßödaÚL1¾•qô¾ÓÊÔþ«xX.ÇÓÔ¦ sc$*‚އÓ+âÉLëÿ_~ò‰¤÷V*¬µ]ÅQù¼2˜î¼—R‚[­ë.äjο¬ÉßèÞ¹jtpˆ‚ë!7ŠêîšÊ׎ßrèr©¨–çí^§óJc³ŒPk¼õàÞz´ º{–-nÓê™ …%°[Kñ6¥|Ãå2Î{|©hÆÁnX›¾çÕ7¿ò¿û»ÿûM6˸ã«_á/xAžïk3¬³hTBæÏœàâËêçÉŒ%Žj<íšCÜyçxÛÉ÷ZÛ¯') A-òz¹‰¨22%rE”ô„-ä«&Iž ç=í´Œ!ÃðÞ|ˆïyÍË)Ùdþ÷šN»õÚ¸2ý‡êö´ÌØùÀ{ÿt¿5ð†,mÄš îð†üv}šÓ§OcŒ! Þ<õÜsÜh4Ð:¯lÐét¸ì²ËºùÇÖÚ‰®}+óíŸøD׿ñk0YF\©ü¼ÉZሺõÖh´¦•R?õ¾÷½4Mû<£¯zÕ«Q!#:Y“Ží Pïû³÷“½¶·•Qž+++Üxã(¥ºN„r-´Ûm¤”„aHš¦$Iò‘þÑüçmÃ?z_7zÛÁ/rÚ[†ôAûV†“VmMÙ>¯·é²Ý‹ GŸß\8ŽÎ,²#ðNcì ™˜Åø(*Ä™§æ$Ù™“4î»›él™X´ikI[K2)±B¢PDFRÉèë¡Ë³„ކv(h‡bdîh_~㘾•üØICÆn´ENáz]H¿æµ~dŽåÄ}ä=æÔޤ“¤a€,ö¾’’¡}Šöéêÿؾ.I ɨÓ`ºóéc_F¯enò$ÊåÐÜãçÙ=¯_ÍßDNŒê“n<“Üë¸0̵å~6®CŒä"/vRaÎ妹Ýáò[FYŒ„jª©¦'2ÉK…ôôç¹ïŸ>Œ^Ò;Y$X’Äylš°â"Nµ#ޝøß8í¸è‰§çÙB¨žè¢ÍñfRg†•ë‚ØBíé¡ W— #ô)5Ó&¶m*®CÕtˆ\›Ð'D¤D.Aûí3´ÏP˜¢Û‰öÿõ8>””ÏÐ:Û.÷–oØ•NÏÞóª›_ùNoíf‹‡xaÀ˜%sái¼# BZKg±5‰•`¦qÕ¡ƒ˜,AÉøÁĺXàU‚W –ë+]fa+[êí E;Z`ê¢).>´‡T¶q¢CšGH’ㄲ‰¤¶CÖnÛ‹v훸ֲG湸]5&š(9l"g }‚2ylVÌÑŒÐ9´shï ,HÊI”“H/òh(m©ÛØ Rá/Ïió@n3¼Ñ×Ð…žòÈ#D‘¤Hè²CV«U¤”Ôëu¤”T*víÚ…1†‡zè¹>ëlÅ ,•R¢/Ķ×kÛ c] ^&eæ›dNmdü&§“ÌÍÌ«Qc;nÌ'ñêLÊøº‘5<ÉZÜŒÅuÔïo3ë²ùL½ÇSžÛoJ~<Þ€÷\µJ¥Â=÷ÜÃ<@³™ðÈ#)ZÃÒÒB’Ĕެóóö WÖdx½ÜÉöì혣¼)ÛM@5©—t#ÞÞs5÷¿©‡ð]ßõ]¿:;;Û‚€£GÒh4º äeø¶ÖyýÒr-”9‹W_}5qwó‡'1ümD>ö¾ÖZó·û·Öó¶³H!1½Ð6?¡¨e©ù¹ßÿýßïrè¤iе–›o¾™ ª uäaç‰ÃñÁ¿ü`_ŽöF÷ÉIy2J£Öõ×_ßM-(qH«ÕêcD.rv?üúï}Åg¶²®¯s'Á¤óy»÷×-ÈŸÞÙC8îÍEz\ÞIÚ¡1×ó5tmûå 'R“i B+Œw¬xKR©r¢Õ$ÅJIsyžå'ˆ„ÊÁ¼îú_˺¢‰—jí¤¹ExGà}׆±U—f>ü¦º ¥F…”ºûo_ïý’ݶìJȾ>øù`_/lzÔg«‹ËèƒŠË ƒòÆ £aé±ëeÜí}]zÜVÝR®¯K/A(<9Ó¤t+¬¿éä32Á5tÎb³6¡áR†YÙ¤fÉD‹^M;×läc<¼ýÇL:~ Ìõõ€ÌÚëÛhɱŸ• \7O{”cüèÖx¸‡_FElˆndCÞ Ø·Aöz©¶3 sÔo [)ßöµÚ„Ï™ÅZÆ©e¬Ý‹3{Ad(Ñ 2ššµÜõ…?cåÔW8ùÈK'¦h˜–×t€–¯qbŽæ¾E~ì‰t½÷x—ïãB¨1 Ø3Ž~;æñ0Ò!&KTuúAE¶ë5ŒÊËw{VöËO„Ayƒ$ï‚ A†$E’’m©ÀcsŽѳx·›¯,jS÷¼â7ÿ¹÷žf³ÉƒÝ¿ª£¹Õ2**ˆ8uvUi%"ˆÐQË_IbVÆÝnDDVô´`¢íîå"Ÿ;VDXáDœwå/"¤ .@ÙíbÒD¹€¿ùè§p@îÄ–(àϾëZÝŠ€toøà‡Þe+i…Ф³ŒI›8ßæ§æ'z¶Ýc5Iš|øŸDº:xw‘=‘þP‰QéÈnu6òýn0³s.=„Q¢d­y´o3lg‰HÖíÙ5÷ß7æ3”]yÕG˜*<"ÆÚ ÎxâÆ; >@Ùá„ ^!½F¸âµQ>z_ãžÉ`wÒá¤Ã‹¼ƒCú I†å-j² Ž[7 t˰ägoøì—žÃ;¬Í¹žÇèNµWV^´²²Ò­á&¥ìæèæ5sÝÚnGŽéZ{kZMjÉZ¼ÖãÍ;®\Ç$–åql ƒLm“*¸ã¾¿Þy¶Ë;8΂µOÙ8V×’ñ²¬±ëœëæ>}š¥¥%Õj•V«…÷ž4M»ç>xð Þ{–——£‡~ø’­l ÖZÑkE\ó¼¼ù©Ÿ»‘ç¼`t#LæŽëÝÛV¢8¶f7Ã=I^ùFγٵ;ɾ0ô·{Ï9Áù7#+7 h¶ÊÚ¼ÕVæò§iʾð²,ãĉA ºË¹Ók!IŽ_xÛ±®úFWÇÍÉĶ:?ÉáÆìÏ›ž,Ñ2_yUÎuÕ‡ª6Ú¾ã;¾ã7vìØ‘)¥¸ï¾ûH’¤Ëd[2Û–´f³Ù­–¦)‡¦R©¬+G·ÊÑÇ1Þ{>øÁ®š>]0ùEp‚ m3-²Æü«w¿ûÝt:.kr¥Rá5¯y B)i’ŽP…Tƒ*Ÿúô§ºµkÇéyÛaàrÎñä'?¹[£ÓÉIÐ’$!MÓ.+q–edYöÑúþWz+òeÔz+õõm®¸X¾d𜤽µaÊÃrv‡µ×näÂùe]~æ±ÇŽ^&ðHïЌ˰|-¤XL Y¦C¶¼Â‰cPQç=VG “Sð;•O +ÀpªÜ,ò÷•w(åºé@½9˜5;vϤwŽ­‚ĵJiýžl–kÎ=È`;n±^Ù‡ü¸~¶Üa¿œÛ­ý0 ×sžü»bûo&㉀¯*ØrÅ@þ(ÒãTpR¢œGŠŒ³ÝÎܾ¡œBMê: QÖP ‘[ &sLï½ÅdΉ“§Î\¼Ã?6Kð&Cè¸gNØž”çêŠçFÎßµ,ÉýsÌO¤(þÞz$ «Ÿ»¾ù=êØn˜wñ\ý·òÌg\ÇL-\éHy>pð7pë†aäk>üá_{ìØ1¦¦êtšK8ßÁ;Ïýè€wØÄVv‚7xïHÅ{þ௠˜©N‘d'Àa‹o \¥ VÖsk{æ.ãðg!Í,˜Ò”,³øŽ@0¾C5ˆh5–ýÞ]»7Hˆ´6LZ8Ûå÷HH½£- eQÚc¤'S¯ÈYšq(çð²0¨œmY¯Y¿Þý§2'sÒ D’3‹ D’!¼GM&ún<ß¾‰IóVÖ².¿…Üã;ª"/GT¶Ol¹?Oí»Ž?N!º–okm·ÖYY7«Óét™øÊ|ݲŽÖVëXn„-y£ŒÃëYXËšu%ó`ù7 CÂ0ì2–=‚¡½ü~ÙG}oX«{²Âä¹¥ˆÕ\ åAÆâ}‚lQGÕèˆÌ9Î(%q6ÿŽÖB)⸞ç¤8Ù­Ãê½GŠÛgMíñ„vmBnp¯\³QZ‹»–£ &²µk¿Ûûº æóÞãuŠä­ëæ†æ뢞©Ì Q›4[ò6Ë7Ÿ?-BC¼M‰µÀÙ k-aæÇ!t¥«ph-‘ÎcMŠR áÓµ Dïø!‹×¯Î§*o#”K€ChÈN>ŒŠ."1E®oPCT˜$AjI–4óègZ<ôèÑý›t Z¢ ”-êäzƒV–$¶è"ïXH…sä¹Ú¨nâ¡V<1ð ÖT©Í×”ð \¹ô‘g±+IufŠV»8Tˆ°Ÿæ^†ÑÞÑq‚³W‘–½ÿË+çÿ0€·:¿íØ"›{‰„w 2R]\'¡¬‘t ÕJ¤½ÈŸÿÏ{ÞóðÙæÀU³ZÑÎQg Ïñã+ÿ·©ñ‰ëæøü7 ,J2É–XÀé †D4œÂ„5|ûq`Té± ó<µr­ˆ¤=Þ£²fónP~x”Ïóþ=9?‚ðr;¼1Å1×G¤q˜@â•ÄcQ^»|.jŸ¡m†v† ç?Í ‘¹RÈ)]ÌkUÖߢžëEî½u‚œ³Ã[$$obk.ãxvÇ?çË¿ãƒïÿû_ž#w~…nx&Õ Â$ VA\ hÉüü.Ú€v–Žz½Ê5×\ÍwÜR*7J·Û„aˆ(=ã.ê—›ûÉÚ0'Î˧F†q X­i¤þö¾À·¼àHöF€½Xà¾äß]°nÞ|÷Ç>ö±Ž?š“}ÆŠ´Õ@Iø—?ý“— Àu@@$‹ø­wü¢vgWRâjˆõedC¢E¯ºFås9`E€ºçšæÞÉ@HÚí&•J…ÔAêBj‚x†Ë®z.¡P´‰êpvþaŒ8C5p¤Í6DÅñ/o¹"p(¡16C‰+¢Îœ 0£ӄ‡oA`B"¡"Ezƒòk+Å}ó·ðÀâó}ÎbÇ›`£uC ðyD‰r|>Àx û‘‚ ‰×È=¸o,^—^Ùobú<@Âü–ž÷~ x/kÉ©æ@ðÅ÷¾F€®—...^U*¢¾ (rÞ„Aîa˵y„,--a­Ek’ ïò¢æ¥ž:©¥t£9vÖڜꪰüú"wÀ–¬pˆU§’˜Œ‚‘·N«Óézm½ýuäd@»Ù°j÷‡ [gú«a×·žÅzp‚÷æx?<¬´K–áFôxïª$?’]’ R!WJ1U¯æ cl…Ï=òÞå,uŽf³I«±ê/ó¤”h©Ö”}B®ÉÏÞ¬Ew ÀègØCÈ ç%Bé5ùeÈRŠjµÊB–±¸¸xxÓK¢—¬û<¼žÉï…Qá¹z„‹z½I’tëËy Õ0Š|ÑÁÈù1êù÷²E—ÖûqVÎQ×=.Œ¾"8¦„—÷-Çÿ~éÁµ>F?M„‹:tœÖ{–«C](¬®Ð+:A È#œË6k±Õƒ!ž¥a±ÿ|Ë67Ö{}¤åøz žÕ\'¡RAþL|.OœÏK†•Q0¥å¾¬ëA.«¥*x ¶•b2Óë+++Üÿý\õä*íÅssUZÍ|Ÿh6[t:¦*TxàÄ-‡nØ÷¼ª¤õ¨ ÷ÉÓÂx<6á›nºémñqsšZ}äÈ®¹æ:ª* 3.ëòc˜Ì±²²BuzŽÄZ<žýû÷óàƒbŒéFò•û ”»…aÉ ñ¹—±ÙXÂg)ýèGyÑóŸA–Yª¡ê… ¿\ºì3)…üÅw½ë]ݽ¨ÌÏ}Ö³n¤Z­¢âÂà* —ÙwÝuY–ÑheÔj;ºÇÓ{62ÆY–155E«ÕB†1’g<å)O!Žã\¿‘¹‘³Œ8€”0 ±IÊÒÊÒg¿ë»¿ý“[]Ë¥<ë#à+* ä…Ÿ ë†ô¿M¶^  뇯w®_b5×w®8ßë¾×ûò¸Éšó²WŸ=y2p…åÃz‡ã µ"dÔ˜ g=i§Cky™<]Ï /ß—Ã7ìúñ“Eú°PØ,9«íæX%ȤQÍÙß@@¹”ÖZ’Ì¢\®`¥©¥ÑèP©Uq.r€,=Þ‰”@—ÀÎàÇ•‹ ÈYn¤Çc\³Æ²Ã.ûÅòJ'÷!HÛ)§–—®¿õþÚÿó‚+§~áänÄÀ3ú;“§sldNJ µÝ ¶+ÏÏ3æÝ,×Ǹ¶sߥÿü’—|ÛG>øÁ¾Âd÷ßw7×_w= d ±…áÉd)‹‹‹T§çºk~çÎ\tÑE<øàƒÝŠy¤…Ä:Ÿ{ž·º’&mœÍò”¯8à‘Çã3ÿt+Ïÿ¦ ¬ŒáÛç ø§ Pv½I$¿ãSŸúÔsîºãn´€©é*íÖBZ~éÍ?Š%`°I‹Ì8âÚnïxǻȌ'ˆê4›í"u¬Ó¾ii{¤l®»"*-'ß)<ºÆs&×u3+*$®T¸âš'ƒÏc×%iµÚ˜´…“tPJ ¤`ÇÜÌ/_{Õ!»kj¨|kBå'¬Bl¯üë[C~ˆÂ<¾ÝJîM-C‰Ëã·nâŠãz½º¯¥ßKüÖzs¿Æ€.\µ°°€`5—L¨œ`jj §c¼ôt²œra(\î±”½í±`ŒòK!quÖ£”& T@ÍvÒWr'MÓüµÐÝðÛ’M°ÏQ.Ù¢0½µ¦¯n˜T¢k*—ôz¥a›ò°ÐÎaJé¨Új=ôüZõoÌ…§ÖØÖý{lW/—ãW]uQÑ,d¿÷–4Ms}[xdYh³ìsßô¼ç|h“C¯Yóø!åËVS¬6B²8Hâ7©¬:Wà¸ho¦Ÿuù-¬†5¼tçz+kómz@ôŸùí… ι]é“’v‹H5Û å¾Ç옞Á«zEÑèd|ñäIB¡œÍùפkòS-}J’å­ s¥ÉµÒæuº+$©XÓvŠŽ“à#Bƒ¬áPHç‰cK£ÑÀ9C† 3¥lA²ÐA»UˆÏÃë¬sÎH)SŒmà}S8×T°"ðMh '2!„Wʻ„UP–•Çœ-ôhŸïLp>ŸÁp&g¥€öÞK@yï5 ½÷ZÉ@ŠþϤ÷¾(LŒ´ùw…"”RFBˆX1[c#ç\,œ¥RÌ5s%¼Â!lš­2Àö(5¥bl’¸:ëp™£FìÛµ“j%¤³ÿ"Ž}„³gÏ’dÍ¢.nž3å(½Z–A»Ó0ïÚ°÷Ë:²ª`·,Yjsæ9>éÖiÍ=Õ¹}W‰¼®±/Â!qÌÌÌ”„V3gϞݽû¢}›ºJ!«LÊ«5W™£ñ¾PVçõ(OÄz¬Ù=.¯[ÈβޱwÆ1Z‡ÔëÓ˜,¡½Ü Õ\!Žã¶ÒÚ ©»Ò{/„ø¯©ËãåÅÞ}³ˆ( S }.¾#|O<¾/K5­ÊÑͱaüú@t˜Uv54Z÷ ÿ§/M`ís7v¼çÈ ¿^¹é‰/^¢ñÞJp‚ªRÒb³” ΤJn— [Oãò¯…«ù’1µ‡¼*ÿ®[ß«5ð{½c?7»;M6)’HFÇ’+ (æen¤RB2;[%Ø1E¤ÍÖt:¢(ÂZC’æÆ6ÄdfÕÐÐe‘0¤ˆîên(!OçpÖh‰ð G%,Ÿ9Á±Û?ÇSn|§O{öîÝK–eøÌ!P´\¶‘òo¾xúw¦^zɳö+Î|#ÜQ¥°F鉉 ceåµþÎGñ Þ²¿¹‘T­>ë Ãëµ¹=}æe7}ÛGþäOþøåÊ:¸çv>ó™8äéB­ÉÇââ"û*¤Èõ§];wr饗òÀt RÆ”Ö Fºóî»Â9jqÌâÒ<©Ês7ŸYä3·ÞÎsn¼®Ðò:Êór'üq+Ú˲xñ—nýò7ß}÷Ýh8ÃÜTãšüÛ_ü9¤)#ðm ?ƒuþøOþN“42¤O‘2 Iºâ·G_óÞç5_½*4ÂÒáV‚ýjDd–e„q…F'CATåŠkŸIÇx™¨€ÆâYsé Rzª‘$m·©U‚·ÝðÔ«Íæ—ßú¬ïJBZa·k½O xý:Æå‹¢†xbo)þ¾çìûþÀÇèY~/ææžW ›6›O.먕‚ÞV­5VHÂ0¤"4­V Q0ó |®Ü ßûߊçnìÆ'Êœ/ ]° çÖyƒtï³®çÓZ‹±J©ç܉f³yW«;¤”Çq´EÑr¥7Â0\ÑZ/i­Û3Õzª”ÊÂ0Ìâ8N¯¿î ÿZ–c_úê}"MSmŒQÎ99¯Ó4U&Iµ1&̲¬’¦i%˲ØZ;·¸8‰ À~à!Äïý´s®FÕœ]Ï‚‚}ÚÞß0 ¹ä’KRròô©¼v­ÖH©‡€I7ûµÞ·~¯rwY7ñH¥@­²d3+Y¯×sàbÌôÉ“'÷^sݵ÷oLˆ5 ¤”Æ™C]á'ÎWõC”ÄaÄ]"OéõÞÇ1sssøÔpâч¹ôÒKèÉ×^ûÉžç ú‘s÷ºDÑKE®4ªøbýËÅR÷Ü‹è‚Óä–2ªX‡b„ê> [ü_^_ñù*–èç^À,¢Ç;)z¯«ÕijF[æ›—Çòb¾”F5TŠâ31lt(½÷ʉrl}þa)Q‰*: CáMEZéúÝW^qyº¥Ô÷¬úÜ ~Ë›ö¨Ï¤Ì£šÍ&-“[ã…Íר,¹J/mÁà\n˜œšfß¾}\Þhr×]wÑétˆã˜(Ê=‰ÖØ®,ÚJSJamÎ'…U’,¿Î¸Z%MGenïQ¦/»••¢("I„O0Æ`½¥ÝnüÂܯìöeÿâM/¶ÖöxP‡GMlf_ßÊþßO)¶-zx ¿…˜,¢EôÊéACÑ6‚ísÝ^õªW½í£ý›ïl,-«x€k®¹9;‡(ô,­5±,¬äQC•J½ë¹½úê«yøá‡»×™¦)µZ »Áõ9¸O–ž¾’- óT¶}èC<ë†ë²°ç"Nƒÿ„øÞ ˆvdûÅw½ë]¹1"I µDJ¸úʫٳgOî«Édá«ñ<øàƒ?~œÔÔë³b½ê¦ô wXLÎ×QF]…aÈr«ÅO¹žZ­VTÙÈ#›Ífwü½Éeo’$_xÖ3žýÛmlZk¸^õè››Y››ñðnc{+yÉŸ7€ÝCÅg [8÷/±6/÷VÖ25 ]Óž^Zw"_HBºÜU²bmHÇj:Nƒªq®ÜeÚ¤áðAi çýCña$?µÿþû>tôEÏ~¦ûF“b7<å Ÿ›âÈ6süwÞ+–——çVVVö¶Ûí‹æ—Ú—µÛ­—¦iö!9¨” ŠB¤0`Ræªzß,)'Î,ÚŒÜÌ—+Ñ7$„cÐ 2Y÷½¼’°yqeYIX‡÷y¸µ$&è’b¨‰ 3-$µZ­ÈÁ–œ:sfS’CPü¦±¸"²@x#Ësšå*sr¹nF…»Œ«9;ès*VBOô©Ã …‡n(¨RyhY5ªÒŠBΜ9Á7>íôë^õ²“öö'D]c‹«1oh]Œª¬õFÕ*™sdiе)‡t¹ATJ‰Ë ØœY\‘=YÒ¤­ VáàÁý,.œåøÉ QQnÌyu€7®Ïö l«Àc­léÛT½Gù Ã;ƒp‘R¤¦Í#·ާÍí¤-«¨Ù9RíLŠÌeQ•/9öƒ.:ð77^ªÞý 1™Æ¤:llßZÞŽ;o5ók:÷€~ÂóoÛ}×wíùÌ·~Ë‹?òçïÏË­ƒ=Ìþ©9'‰ ­%‘”,/-‡1"P˜,czzšpôèÑ‚”4ÀZ×÷˜6ú,„Tâ<<6Œ*¤Iëót…‡9Á—ï|˜§\wYîÑõE¨¯ò¸§„ȯ^Ø'.Ïûçþ盾ðÙÏWt®Ë‹Œ³ó'ùƒ?üMD(À¥9ÈÍ• 3üÎÿùM¬ªáÐ$:­„ ®àýèH™Ü®k±¬rØäÞ\×W÷ÕáÐ*¢ "ê3³¾òÉt2”!Ê­4—!k`…#3;gê¿òì§_—mUÎMò^ ÆG÷üæí$©Aç¨ô` <ß8R_[€ÝÖØ-óq_2ðþ­äáÐÏçè:wy³ÙÜÙkÑUR"DÎ ªµÆØª¦iï\î}¯ô¸æLɲzY¾_æ—µlÃ0ìr4›M¦wÎqÅWÐê´YXX ,Œ™Z]¶ñ­´Þ¨¥,ËJçe¹L^˜+–——ùÊW¾ÂuÏ~KKK¨ ¾ž-óˆ¦Ý• ŸúÔ§~í²ïzþgvÍCYPºáè ÏÏðç&—¶{þ|<‡Ç§ô¤õnKÛù¯{Ýë~퓟øèË—çÏòå/™‹¯~JÁ¸½ªsEQÄbc…;,B Â0&Ë2®¼òJŽ?Ž1†jµšsEèÍ=ç^Y¢µ&Iêõ:ËÍFÁ¼óÇüÇ\÷ßÞ³ÀW¾ú0W\qÕ $\–QƒïIá­SpÏ…¡´†øg¹çžïüì?~šHi¤Ê‹±~ñ~Ȱ&CE! ÈRCÖùí[ÞNTÝÉrc'4:Ðt²Ü™¥µçv5ÂÁ•uÔ ™ê{ô!òšÓ½YXÖKZÆ•©:W^}5ÆSDùZ‹g¦ƒ"A ƒÂ€0h)ÿûóžsCºeY×ãx(Óà±H÷³žï“­Y{½\C•u£¢ýÊÿ˲]¥<×ݳ¥Ø’ xyží-ô‡b5 ¹­½€õ%ëœ÷ÍlŽÍyUöŸ‡uqm’$«l²ÅÆR²\–õ «Õ*F£k´æo–Yw±Ì %9Š"¦§§Ù»wo‘»•[á;Ÿÿüç¹í¶ÛH’ä'/€Üío/þ¶ïþË×¼æ577c§N¢Ñh°cÇâ8檫®*<.º»8{Çnðï°\¯qÄMå±eŸššb÷îÝìÝ»—ÙÙÙœµðì–s·÷˜Âs³Ùp/UôsysyÈÛe‘ìe/ÿ¿ÐžXmÝyµAí­~·´„'IB†\sÍ5Ÿÿ¡|ÕßýÈþÀÇà_ÿñý‘üàÞð†ŸÑZû(Šh4k‹f³É¥—^ʾ}ûÖ0ÍŸsÐç󱩩)î¼óNÒ4¥ÓétëúZki6›]`¿°°ð§çÝÏ|½Ï¡rl{YË{åÉ$Þ…ICãÇõÇð¯SEá²ÅUó²—½ìmõz¥?ü0+++]r¹’õ<Š"šÍ&ív›(ŠHÓ¼®éUW]ÕÕ{kœŸ+Ùö|€©J® •8 1Yµ“u~öÂnÐtû…[n¹EGQD–eEþ«àСC\ý¤'a;-T\‘ƒ¨ ¬pòÄcœ:uŠ•••®!hPwÛìšèh‹ã<"àšk®é²Ú—²&MÓ®*u|¥ÔmW^yåûÏóóÛrtâvðœ#ùó^àð:ÀôÆܾdûñ Îõ5t}ry§½Þ¢DQVÀ@µ£Ã¯,G'm³ÔXÀ¸¡^öDPä\­3@£jXuÿ÷)‚ +$ 1-¦èÈwQ©ïdïŽ]ì™ÛÉ\¬ q‚;þùïq3¤É™?ýÈßþÝÛ/ˆ¸sÓö|Ê­/ÍkþãR«ÁÉ“'1iFµpÍÕWjEštpÖ¬’ 9·æ¯`¼fà°h,‡Æz…ñ9ß%G‡ÄQ@ %gñ6EËœé/»%¤ ¥;Üôfëç‘8dQ%NS°·nƒàeÁïµÍ‚à [xxe^£T*¤Ì§µÌëN+éÄ…™ú„iÚÆ‰~ áÖíBø¡¯…ð¨(¦25O;iŃ¿wðòyÆÓŸúI«ÍÔt,³d™ÏËI˜6iÖ"ÒŠk¯¹­@+ÉÚ¨>Kvùûnqe=*ïå=Kß×1Ôê1å“fïügB¿@ÖžGØaÚ@XBÓ¡ÂéŽàs÷ùOžúuŒt»Ï£ô½ry0Œo»æÝF@ç¹,/4N/y<ÀîÐH·sx-s.ù«o~é·ýCÇzÏžâÑï“"].E O5Ôh, '£¤GKÍÚìÙ=Çþ‹/&¯=:ΰQ®Ó®óE/¼YGåË·?B¤ZÀrêqAüó¹Wê ß<î©=úÈ+?ÿÙañ¢ƒTÖµø×¿ð *ŽqY‹4Í€)ÚÉ-ÿçC4Z`¼#ËR“Âà½JDÕ0/ÁËnU ‰CúÕ= °J“¡°R#ku]u Aƒ5>Ŷ—1É .m7´ðÔ"ýöç?û†ì|­»èžOð8ÔȽ°;Š¿lðØ·÷¥<öqºÖîH’¤[ ±ö;vì`ÇŽLOO£už›ÔétúˆHÊAÚ*+cï&SZÊÉìÊÞ{–––òi)ùìg?ËÒÒgÏž¿úê«ÿÝwnÛÅþÉÁƒï²Örß}÷qÿý÷sêÔ©>FâõÆ}‹þzŸ•WÔÖÔZ¯ñhvsÆ… I’Êfål­|áú@v´B3îý!=Bœº0KŸ0MŒSˆžß·%%t’–¦i×P«ÕR=ÑK^ò’ÑE}¹Óétëc—2¿Õja­%Žcžô¤'Ñét¨T*Cëo·GPkÝõjj­Y\\ä Ò4Å!㽑N>úèÔwÞw‹èëÖj2°çv 6¯gÙiµ™g½€·O—߯\ÕÖ³ßê~0é8¸¶Ï™2,#ûò—¿ümSSSh­¹ÿþûi4Ý=Ô{O­V£Óé°´´”ó£s£ôÌM¢ÿm%* Œì{ÿûßO–A™®¦V2óS¶þõïýÞïE%¿H­V#MSöîÝËS®¿Ÿ¦€GAWßït:Üwß}(¥òº¹Ej@o”Üz9«“®5c ‡¢V«uk¥[k»r¿Êw?ÀU×Â:ð aÀ£¤áøÕºä±'ê¾à1×<üÈÃßó·ŸøZKl–â$T"ÉÏÿâO‚Lq€7„®dMÈþчh¶BˆB„ye ïq¯ÖAú8|×ûn…+æ¾E:Ÿk€=[“`Ñ Qu–+®¾'B8´$iÚ‹h‘´Û JK‚8ü/|Þ3Vη,,÷}mU|Â’dçJ&Žjùîÿµ™Ã`•}ù­ç{îžsn»Ý®—–ÞØüJ¥’+CJ!â˜jµÚçQëµoÔ›;è½ö¾”²Ã_zíÒ4¯{ø±}ŒååešÍ¦¹þúëÿ‚ê{~Úî½{ïí­µÇqײ[2©öæy÷þ?Iï½Eý^c išöýF™\F!ÄqÜeZ.…JGWoaí‰aJŸÀc¶9mëY"{±’tŸHMcDFö¶Ñ95Nñ^ÏÃTÖR‚`Ý9~é%ûÿñ[¾å[þK’$¤iŠsŽ4MQJusî“$áºë®Û2Ûò¤­Ì5̲¬»ß(¥8räH׃[®)s¼(ŠhµZÜvÛmÿv¥Ñyá׫í¤¯RnŽõ(ñ2jnl”«á{®Ã—Ï·b:noÝç¨D¢v¯xÅ+~­V«á½çÈ‘#Ý5 t׳”²ËRF>c¸âŠ+Ö¬Q±M ¿oC–’0 ùË¿üKŒç dà‚ÙvÛýË'ò¦™ìçÞñŽwT¬µT«U*• Fƒýû÷sýõ×wÁ¨(Ör5®±²²Âç?ÿy¦§§×pîŒãþX/joÔg`çÎݹ¤”¢Ñhtõº4MKæíû¯¸âŠ?Üîuµ^ÙÇrNo‡aj3ûíµ[åÕ&Q«Ý¨‡Â[ƒp]äBi­s ŽËkš6Óvî¹’=¹"ÏzÂùªá bTxNÙC ŒD¸¥+U¡í©]Q„±çÖ/þ#Ò7ˆãFw½ì»^ùÙ Óä<µ¸vOÏ T 2"ДŒð)ÄQÖPa T»]èJßëQ]…5‚ ŽÖ5TPAꡃܛ‹Ä#9yæ4 Hl5Tk ÈYʳ…×®'¥dΊx¡]h4¬luî•ãifðÂ8%Wã«G´g=ëéÿýСCŸAF ÍVƒ0T,--á½'Š">œ^ׇªôFµ:1Øe__{x¾¹`Š•TR b³„_zŒ¥ïÀ8ð"Äù©*›á" §¹ó4ÁwÜù;ÍV6óu65¬"íÏ^9Z ¿…PøQF“õBÏG…Ÿ+;.ø|ßQá‹çZQ>pùñÍ/|þç*QÀÂÙyî»÷n$á3$­JBhVæÉLŠ`lÊž=»Ø»w÷–ïÛÝË‚aÖ»¾î±dY‘ûîç¾ûÁIH ´,œZj±ÜlþØÙ–Ýóñ‡Îž=û}ŸùÌgVˤY‹©é ?ò£?HPp¦X¬7@„Aó{ð'x1ÅJk5T½ÔŸ¤ç Þfoø~ùYäææª’Dà‹îpÂuå®VHªÓs\ù¤k°Þ‘‡ü8:í¦ÕBˆ ç Æ¤(%¨×«ÿ뛟{ÃyR+S8ÎÕZÛjøþ »¹VKÓ´^Ré÷ õ @ë¼{ÇòòrŸGk˜ww£ƒ9®>U TJËb†„aÈÝwßÝõè)¥>÷ŠW¿Æp¡ŸfÌéË.»Œýû÷³sçNvìØÁUW]ÅÎ;‰¢ˆz½>¶W«Õn¯T*k^‡aHEÄqÜý¼V«155ÅÔÔT^Ã9Ëh4´Z-Ò4í2D³D¬ËÁv(A½¯ÇytÇÝs‘ÛÑËJ}¡]¯[9פÞQ-Š¢®g¶ðîŽ=¡d7ß|óƒ ˜o·ÛÝ5Ûétˆ¢ˆv»µ–ƒ²cÇŽóòLƒ è2Í–÷E<ð@—q¹Ìá*YMËÈ£Ûo¿ýI‹‹‹oùzº@ ôEä “ƒ›oÛ1OχwØ{O/ŒsóÍ7¿-Žc´ÖÜu×]Ý0ÎN§ƒRŠZ­†‚ùùùn¤]¹uå•WžYU®»|ä#,,´ISC³™—ÖkµZ{Ò4ý‰'èvð3ôG4µ¼¼L]ùÇ1/zéK!ËAo²¢\cžû¥/}©¨U¬ÖDâ•$ «en¶¶æggg¹üòË»ìÊZë¾|ðÒ¦éÃ|Çù4ööÙ;GQmç~¼öù'&Юb’dÊe’x-Ȱ¤Â"ê5œ5 CŒW4Iˆ¶¡ ¬“!„ÇžLš¾’'Bt9.»=§tîñˆ9_¾…ð`t€bR‘É—9*a…)<5Óáì#GHšËȨFÇ ®¾îú¿» îžÇ¦}–žf Q;wr6 yàd#÷€ÚIÇÕé¸:m[£eª4³ 4f%‰XI"Z¦Ú×›Y¥¿ÛM[cÙh–¦aæhڴݩ G–¬ }Š0mDÇ!OÚh m‡À·Ù a$±(ZFÒñÁæÂ½œµE¨ Btp®IÚÎ0 "Â{Jâ}L@¤cF3ÓŠž:h)ž"1ŠÔj¨?“w|úÌO<Ôâæ¯£É„ÖZXkQyD—L°²C様Þq9F´ñ:ÍeP(zÚ/ãµÅÈiê;.eï˱^`'”mS",±òµ‘Ââ…Ès6XŸËmó.Éd(Ÿû.ª¯{' tŒO=Ç:Å]_z€ö)^‰ÑËUöòØéÊ›ÎXv>‘öƒ,í\ræôÉúÈ_¼j,H¡&-~ú_þÐÊ‘„ѽGˆÅðûïúRî"3;ñ¶ Ò‚\ÍOUh¢dˆw2÷× ‡/ BZåÊ;¼©BLæ ƒ iæ² „xžþÌobe¥Ùáæ¦Ó PiÛĶM„%ôéÿüÖç?cqûMz%rîüê>Vîi±O™Š©ëà¤ÁIo!ð msž£|Þ»û'h—sDt™Â×éƒØH1$‚C’Ë‚bOÿF–çx“«:çêC7¥/QYq”…c³ŠÁðåÒ‚¤”"Š¢®—¯´6=ðÀdYFµZeffÆ>å)O¹÷‚Ú{þšI“¤^¯ÛJ¥ÂÂÂÇŽcaav»M’$ÝšmƬµkrt1c{™—[Ûû×ZÛ=–eÝ|íòÿÒó¯µfii‰jµÊÔÔFcs¡„¢??LJI¥Réæ‹çsw5'ø\PÒ¯ Ý[ºéñÌ)»ÐÎ;ÐY¢kÔw{åìfòQ ú˜c&Êß·oßÿyÖ³žõ2W«Z­Òl6»5ÛKêµ×^Û «+÷„r݈†$I¸ï¾ûº2 ¬õXÊ2¿øŸÿù ¿Ù1öâ¯Çy5l|×çsbƒŸKç7ÞÉçð9õ1Œç\xœf@”½â¯xÛÌÌ KKK9r)%N‡0 »ë¬Œ¶(=½åþsÉ%— µ&Š¢.ßK¹~Ëã7lüèùN¹¾‚ ÀZËg?ûYòHAš:K§“^|üxãGžHûA†?ùÎw¾s¶ô¾ïÙ³§+“nzÙËz!IÚÂ`°äϯÃÍ®çÞïAÐëV«EµZíò¬>|˜éééîœ(õ·‚G¥Eš$ÉÃW_}õ;¾^Çb»Ò€Î—œ}b]¨cÂÁDJ e/Z£±”³âõy«6¯0 §Ð÷H Q%dzªÆÌtJ„yaëS'O2;3ÃìÜ4»÷ì\¾á†N\P{Ï_Óa5Ó:’óó <ôà#œ={ç B:—¬`;ËØÎ2.Y¬ YŸ6ú^o¤û´O5‘¶0-„i!m»¯ ÓbeiPK"%ð&¡Õ\ÁÛìÑMšÿ”sN9çðÖ ñÔê”(T1ÿ Â;¼·¹‡`R–‘¯Ež?ªüPßšïÞ;œ·8op.½tŸ@mÔ¦×5¶tåöð:¨›eu]/Dz·ͪ¹hý6]ŸòÏzÖ³~znnîÑ8ŽYZZêà4<ÿ·(‘qèÐ!:NWÙM³VÎ0j³ ‘Ý0ååÝDeål/PN …eþìcœ>õ•Ð’u–!pŽÐ>ÁgKÜûH{ÿ?ß³ø?¿žæS™›6ªŒÓF !ç„o×¹u?qÛvöI Ûð'm‡®|Ò‡n|Îs¾Õë,ÏÏóð÷ MŠÊ¬·ˆ(B…1™ƒ¥3óÄÂãÌJ$ìݽ‹;wårÈk¬8/q<+dwŸ[GÓ(öEß×½wÄZãL†³'{”‡ï?ÂÂü”t4“”¥4áÔüÊO-yfž{wfïâ™Ó?þ×ù0Šˆze–c§îÄŠS¼é'~ÂD2¢04ïz×_á}(®Ñî,#¤Ùú~ä,’Ü¡‘—jóˆ ¥yòuO%òH8á¡ÓnÐi5òü_Ó!Ô9¶ÐZþî‹_ôM‹çZÖú¬7t{” ØÊo\h£Vü¹m³e¼ÁM€…¼T8ð=”Ù”y;ëç+–ßŲ EîE‹üÌÄå–&áE7÷kÏž=¨@EQsß¾}K¦ÈymËËËËÿôØcMŸ9sÖ; )|ɨ„ö¢'‡»K\xeUYŸmˆœsO¬VóHöa –áÒ:(”RRJI†œ9s†];g‰¢è«ÓÓÓ¿và 7||“ÊÃ0÷âÊœ4Šã.C žnžî¸¼®ÞܶA‹ýú¯×ž³ôà !¼¹OÔ¦ú6UJtç_§Âg·\Êy>\ æk’Ýèçff¿ä%/ù¹?ÿó?¥R­V‹éÙ²,cee…©©):daa³g»y]J)Ò4=ç^]­5Öã>J<½‹ ª‘¡ëz0BMÎDŸ¶ùÊW¾òš»žýc÷Ö~÷kåöÉ–qF‘aré\pε’ØëmôÞ#È\¿£ÒãdØ:÷|$"6ßþíßþ;Ÿýìg7Y^áË_þ27]zužksrT«UÎ,.2³7Aȼ .¿üræOÊ×f¡·i­ó=sHžg¯þ¸^Ìâ8Æž@)%·Ýv•éiïrã—×þ²ãÇ—~pæâ™ßø†7zJùÆ÷¿ÿý»B®zÜëõ:/¿ùfðŸ&­±8„ëùä'?‰”»h7ÛÔªsyÞàÛèuÖu fqÓlwÐQÈؽ{7ÍBF—º|’$h\‘ï­ÈšÙÙÇ¿ã<¬£±†¦õö³IåàfJ =½¹çèîHÓ4Wv[í±ëžúMÏ»î©ß´æ“Ï|îvȬ¬¬ok­pΉE´wõJ@ö„A «Ñl6ËóŠ ›B(!.¬Ä BüÄ÷½úìVõ¿ézvî Ôy©«v'·ZÒ­òà@®æ5Ž®£ÛßG\äªa'†€°äYq®°6¦x—â…Â;ƒµº`A|´RÉ•ôñêÐ:ºL¦È •§ GBž×\yéŸ=ýé×ÿÖm·ÝöSJ ’v‹Z­ÆâòJN,×ÉCÁõ×?•¿ÿ»À{B¬I ´ÄnµøŠÌŠe-ÁëÕ¼S‘ï_Î'8ÓÁ‹”ãÜÉåW> ‘Átm/àѾƒ 5g[uVRÇÇ¿rô—¿ûEWr_Ľ_ëó©L7¾kï 2è·inO6ç6gÀ¤/ÊÁ¹wG·îu«ÕµV®8y²ý†™‹*ÿûuÂðGÿèþè¢f³Yø¼ÍŸõÞð†|uÚˆ8Êç=ç#ùP%â8æÔüiêõúX£ê$ë tdXk2À9Ë%_Ìþýûi&Y7Ýdee›$}ÑHI’œ¹êêCÿë|ÜÕ¿bľº‰*Û$‡§u~cÞs‹å|ÝÓ_šEè0Êë\!€ t’V7—áÒçÛ+®tß+uŽ>VÁ‚ s•™¶_¸—¬Í%Ð-§ð–Vc…@ItQkÇìÎG¹Ð.´s§]I‘WŒÃÚ cR¤E ×® ìD¹¸Bø>¯Çz9¼«Â®`o.B&\îߥÀº8+½Á7/ ÚèÊÉHÈ&£sÃ7Wnh£9º}Ê›dñeßvÓC­’¸‘™o ÞÒ¬…÷ž¥ù<ÈÞ½»ñÞ¢µÄ93ѵŽÍ›YÑ]±õ*@!¼@xA(=qà\‹ˆóÝOóÌQÌÒY*ÊGuR A¥ŽW!™¨ó…#Ç^üåû—ñky>­îϢ˼=9ô½ÞÏ$ÛO¾wnîu­qÒ<äí|Ö“d6£toW»ìê«Þuýu×Þ#¬¡³pŠå£ãÈRb…ÂxÁTTC;Gãôc(¿˜×Bµ†]s;ØwÑEX'ð¨"Owu¿T¢¨ïó:«ƒõâGݯžPK|–"c*ÖhŸrìáûX>s†³Ëghe ­L’1ÃC6ÿÕé•oÌ]ÀM/üÿÙûï8É®ë¾ýîpΩÔiº'c‘H‚`AÌ$Ä$ʲ,Ù’,9HÖ•ík[zïÞgû^¿ççÏõ•lI–,[–-Ù¢(*“²DR)‘"Å HÌ &‡ÎNØ{ß?N¨SÕUÕÕ==ƒ`Î|ê3ÝUÕUçì³÷Úk­ßZ¿ßùsÿèÿ÷»LN4ÀYœÑ þö÷}øÙ¼©ø`#Œ #Ëýÿ*a{'žÞA;n±ÚYab¢Ž“È|ô<´(%0”öñªÜúÒW—úõš«ËÄ&¶ñˆðˆ¶ÍDÍÿo÷½å §¶KyXrørö辘ûz/7¢ë b‹-ÕÕ…8ŽQ‰æFÊm6’‘BöcÈ"#Øl6QJáyN‡C‡f®Q];.³ÿ—F³eÇ£@\,ŒÈrŽê9êGÆÖû]±Æ('øÎ¹…ä ¥þÍqm;Ðd3ìr—8¾Àp~3ѵ×|iS‡·æ³ð,‚ó[´‹"Ð4džÌÍö^ Úø‡U/lÅþµß®/¼êU¯ú·ŸûâþOß÷1‰Á÷}°¼¼Ìää$Æ^ò’—°¸¸H’$)Z`Ç 6{¤}l¡4J*@rôèQªÕ9Nž<Éν»‰a¥Ý)ÎɹŸÿüçÿ÷}ûŸOWÅWÑÛŽ]ʼn¢¡âºlî1ù[6önHeÆ•3ÎõÖ÷|Ï÷üû'žxâWæ—x衇xý ‡ ü Q£¤DX‘öê^¸À̾Ýs®KRíësçÎ#„(´©7kåóû“÷á§=¿2ÓëN‘Þo|ã\ÔѺ‚¯|´–,,,ÜvölðÝ;L|à…æœ$qüñqxee“ļ֚ïÿþïÏZ¬˜(© |Ÿ?üÃ?DÊ]DQD­V#Žã®O3¤"f=ÿ¤|ÄqL¥:A³²çº½ìß¿Ÿ¥v›jµŠµ–V«U€YÒI”PHÉ®¹ÿùù²o£‚ÜÞ ‹¦=|áºRzQ¡µ†Äf®YZ¦IƒïãlÚ+¨D®•×í™°2Gb]¯Á§ŒD‰5ÚsÝÞ4XÈKX /¨£ý€ŽçÆX<¥X]]E)EÇxAÀÌÌäÉkÓãÚq9-bŠY´—öȦkCc\’éBkÀ`¬åzæÿ ²RQ" Jr "Cì„<0‹ ‚@íÈ£ý?úø§ÿå}£¨Š(kZJ@›MIF,Oz KTåä-= ¥ÏÉdå þïpôKPô¿¯Ìl€9“=çÔï8æ’4ùíB¸r¿k~~ýŸ±^™a÷;Òñ ¢ˆÛ!JC 4ˆ|ç};ÿh+¦fÍ2³Æ œKû 3-Pq™-——óÞfx;d)t#öòÏåï'KæÎ¨pò’Jê_ûÚWÿÛcÇŽ½åäÉ“oJgNœ®HzÖ*/éí|ík_£Ýn㔇Öé{s¢ªœ%Š¢ì\Gg|†Ûƒ#!КØÅc‘Z`›‹œ|æ!ŽÜpË«³Ô*;ˆÃSàCرÙàä*•}áøyßÛÝ;‘&•¶SÔW”æ=ºýeèùÝ:$,£PÝu"ÅúM¢ì•=Û¢wóRÛ4œc]̯/OZ®!«ÊÆ`½HíR[”mÉF)¥Hlz‰1iå>¾ä%zå¯þ©¾ðÅ›–æOsüÙ'¹íÖ—YGâZø¾IΡ6[AùšDY¦¦¦Ø½w?§OŸÆZƒçy(÷•$ÛKÉ”|¿+ò½{WÀ8‡$Á"S¿4‰9wú8s7Þ@Û¯Lí$1§+|ëØü_wpâ·§U&Pÿ8¬MêÒñcÿý×~)@A`z–ïøÎûpx@ƒöq.!q‚~ìK;K' RΑèÕj•N ¤TkæoOp»&2@êP(Œ³§H°¼ü•¯Âˆ®‰ÃQsª/°Ñ*AUáÙâèWßõη¿R ®‚]Ù¹5•¥¹äQîä¶`pðiAõ¦’s/ÐøZ_æ;ïÛpÊÙÄ.§@Pî±ííµ]èŠ Ûkþ.ÿ!#ÄJ’„ØÆ$6Ýt:I‡ååe’ŒuOJÉäää)®׎Ëê&I"â8ÎúÔahú.Ó]/C ápâ1U¹'¡÷¹$I°µÆdª=Üé ¥,tGüñn¹¿#™q•´Æq¼Æ@êäÍZ–'ô]å@z˜ÑwCX¬=?èç~i”þk/¿BöoDe2ž~ÙœüüGõ¨Z[Áó<¢¸EÒ‰˜šn@bÐî¸ãŽÿú_ýó-ÊOJ/ßô\‰00e·ÝHDŒOªÑÑŽµ9¯GNÄ% õRÐy÷»ßý?ð|!6vª' !EW¥„ÉÉIvïÞͱcÇzz¤Œ1EЛßëÑí[‡ýý“ÙÃC«Õâüùó4‚)>L«u> ²¤”T*žzê©W|ýºà_¿öæ=?± szCŸ´ž¶ŠMôR<—­pz7Ÿþô§iµbªµÙÔ–¤—)JnâdèØŽ7G»váàÁƒÌÌÌÇ1Õj•$IhµZh­i·W™©Õp¶°pøðá_Ü.öoP…ë0ûÕß7»H|ùrºžsU¦wp BO:gÒ̇0H祽9å !åâJ!@"K~‚(!qëÝ@­ÒXU!²%`Î8šíB*• Ú÷™=ϵãÚqùÖqÓn·‰â4p´¢‚P©8CŽd¡4Ù'¬ÉÐð–,!\ßïºoe‡P8Ê× |‚ê4Íf“Åå uö¸9Eê;†z@ŒH2¸ƒúòç „û7‹qÈ,†±!–Ùqäþ×ʈí q(ÿ¨$Á°ïѾN3À΢Eèh,ÓSu»÷Î-ÛÁry-ëDrîzéjû‚ÿµ¥–nsß=p÷¤_Ú%ONT¿þ¦7½éûÄ'>ñŸ=]ÁæÉ cˆBT“““8°ŸÕÕeÎÍ/H|ž´ÐZ†áš¹3pþ9] ø"+DŠæI'Ór;›iZ»å[!KgŸAMÎqñÌ)®›«ñÜsÏ1YŸ¦Ùq¬Fðç~íŸíÜ=÷‰ë§õýÛ(Ê]£ƒÜk“†Wb¬'£v©NÜÏq\&™õZPÖ-]¾ ‘ð°¤ã•:n~Í=¿~ÛË_öÏ~øá/?ÊÙ£O³ÿú[ Iˆ(åSÓ,¯6Y¾x–És`%–ÙÙYæææXXXHOR‚HÂuKAÂå ÝbÛs8§²æ]°Å>Ù;o‹€X‚³–ùSϱoç^V½ õzØ€ôª<ñì¹÷<<ý‘©+!ÏtùÃÜÀÅÑ}àÿƒ$I¨V«`:­UÞðæÛðêÛ)}ðÓ@ÌŠ _øâW9qª…çíÄâã(õ'2][gì†ìýÀõ#$2hYxé+^Y…À’DÚ«KȸIMÈñg rtjuu•sçÎqñâÅ‚•¶^¯÷ ©ƒÕ¼”³\úZF;•RÅ£¿:/+… —ÿ^k]<ÊŸ9êó×£öÏ¿¿|þƒÎ©ƒè'¸6þƒ‚öòÑÞåëUJ祔"Ò²¾ÙÙYöìÙS å[¶1”JÆ{Î7S›yy³6}Ðß‘º¤ãe/½å—_úÒ—~¸“U/ä×jŒ!Žã”…¿ÑàСCø¾_èvæûH~oƹތ}y¿rÎÑn·9þ|±&ggg ¤%Š"&''™ŸŸ—ŸÿüçÿS'‰ç¶—©:ý÷qÔX]ŽDGÿ:¼ÄL£Öüz‰¿+y®,ëréð‚•oÿöoÿùÜïzâ‰'°Ö¦,è¾_ø†œ?¾H2EQD¥RáСC#HYw> šÃæ\Çœ;wŽv»]$·”R¬¬¬Üuü¹•w¿@ðßó§ú§/=uêõz½PC©×ëüÃø±qŒ¬TSÍâ¬êÄSüà & ÃŒµZ®iW¸”y˜WÜìÚµ‹Ý»wcŒAJYùX©Tò ¤öž={þÛóióúíz¹j¨ß.l”sh#ÄUñ_ˆÇå/]¶ƒº‚ˆ ‘"º¤sHg‹¾¬¼·¶¸A¶/Ë)m_WÖÓë²×…íñÇb+°ø¸X&Ž„8ugÕj5Äö<|­¯iª\;.ãÚB{U‚Z‚ç¥ËP[/5Ü&Õz&ë£5V‚\?ãÖì®g ]k'I¤ÄIc=Vš4;]™AZG”ÄÒ¯¯›µì×^í%[-/â„ÅØ,¬ëʱ¬‡þ ¬‘ÌÀŒÓŸg‡ fè'Iw󢔦 Ó}ÎI~m$1!-•Š$ìtF0»cŠ©‰JI´¿•fÛ !DÐYpY“U 2´¤œ ìÚàþÝñlpÃÝ’ýëÞ{ïý±'Nܵ²²zV ¤—9$ŽvkY¯3»cšƒrôèQâ8.œ¸<ñ0N¨³ÙMIö(1‘º”|ÊY¯;–Æ!X Ä­³O`–ù³3ìÞ€JÅÒ #ª5Mµ¨Ôvñäs«G>÷µó?ûö;öýàv tË­åäöFE‡¶ôŠw\ZÀ{ù4eÇ!ZÑÝzç{«G›9n~Ý=¿qø%7ýXëá‡n\>yœóÇžeÏá›èH°Z"ÚT&Ñ­ó4/œ¦29‡ç5@ vÍÍ199ÉÊÊ )s©$+c¶©BæsÏöU¹Bu·˜S½’7’º´\xî[\·g'«„õƒt¢LòÄSÞ¿oïÄGg5W¯ßèŒßét~üƒ¿õ!jÕ*a»‰iÒï5¯y çpqÊŽ¨»ˆG~–vk‚ØJ¬l4~ì&IðýTyÅšñÑÛAˆdä4Í­/{abñ‚*QbI’˜heß…LøåÚÔ|Es¥ù;ïü¶ïþÆvÞan¿ÏÒ]‡ë¯ü â/ä@vݱ¿Ì®7(KZº°†Œâr¢¹y/Gî ä™Á²Ã’$ €‘R¶®Ec׎Ëéÿõ;=•ë]ÊæÜäk¡ÝnÙ]ò} Õ j‰Ahêšk’mô<ÏóÖ µ9‚; ÑÍ_ËÿÞ÷ýâçòcœhšZþÎþçó¿É¿· òlô sõ=ýï«T*c¨V«ìرƒ‰‰‰¢O4³[[ç”CO?v>?\’ôöéÂXæfæë°yz)òBƒŽzÍîo|ã?+Ùÿ‚-4I’”ˆÊ9>ÌÔÔT±_•K˜7“]_o òÀ°<Ž;ÆÊÊ ‹‹‹ìÞ½»˜er“‡~øž<Ýþ¾íè®gÓÆE'¶"ÐUe±ÕÁîV•]oe°;NÉåå=©`ù½ï}ï/äó÷±Ç+ˆAËûŽïûœ?¾°Iaâû>×_ýþƒq®w#?çó7Š"Ξ= Àüü|ñÚòòòΞí¼ýêöHÄû>ÿùÏßyêÔ)â8.Æß9Ç_ÿë=%Ç”iû R‚K«^~åW~¥àqÎ?ç¤}ù½ÜLb¥¿¢g÷îÝìß¿¿‡Ð©Ùlfœ ²x.ŽãÎîÝ»ÿýö^QO•K—Ç ú7:VM$¿ÐàË./´6®–kɨ\ è¹Q}X欖ÂöQõß,)r¶eÙkȵ“ŠØ)«­që“ùoé¤ëghÝž8νk¿!ö „í ”ú×sž¾†ÏîÿåçÓ‹H¥RÊ,ÃvòÑYëBëÎdïÍ(ê{ÎEåùö8ÎE]$M ÿÞQçµ^Æ?ϰ¥ˆœ@C¢#gœíýÕn‡OÔªÁ_n&ÌítZ¬®4 ‚4¸‹Lœ2a*™ùð¦ÝÐç6ùèK.õ÷ì®aóÍ>[)…Q>àWS£¬=Ò5‚ ×éõ²!—'iÖú®-µEô2°´W¨‘ßAZ§å×}4³èzˆn9¾¶9¥„M®¯÷0/s\®8ˆ•¹÷3ÎAl Q;wÎ0;=KB´JY饺<(TÎ"+¥$4í±gƒ%Dw¼õ9Úï™÷[|­7ÝxøÃ'^úÒÿöØcýp¹¥ÅZK¶‘ª““Æ Ý2×Å({7Îx×5‰E^ø(ï!£rtË‚zœó¾Ãa¨Ö =¹AÎv÷}Ã%›k• W”@+Alß»ï¨?´¸°ð}_ýêW_û¥/|A=ùä“=‹HQÈ1“^ØÄj½ÌO¿RFÞûѺQŽJþ³’A:Îd2Âôü½”gÓdH.Pþ?×YæLä¨Ý09 G;5ý¨dqQ:E:•W¼V­V?õCÿï¾m£·0îtÄéÓ§9sòR¦¤6{ö.?0Xg‡Žå({P?c¿qí¹E‘mlGmb› UÚk#ƒ q1??¾íY§ƒ©ÁìÏeÒ¹ásnüPï=–—hŽF÷à­·éZ›¬ØåkDkïûEv;ý_ÍT;¿B¾ÇZ<í±k×.ævL’„-””8—²òÎNMlé¾ÚÔ9S‰¬ 'É.²71Ñ×br©œ9CÙR×Þ»-­HzÃ^ÿSÇŽ{ýÒJóÖ<Ñ™³û¾ÏÊÊ {÷î¥ÝnóÌ3ÏôT=äˆÂXEžÜeöóTçÝ×%F³¢‡é9íÅÝÁ…¥%Μ9Æz½Îìì,óóó(Õ`jjŠfk‘3gÎìúÒ—ú¥÷¼þ•ïÕÏ«h„L„AèÄz¶cÍœ3!rÉ»ëe¯A¶÷ùÖËìÛ[ž?2%=qþï|ç/ík_ûWÄ-{ì1Þ|ÓÍ´Z-vu„qÔëuŒ1œ>}š[v쥢Ú±Ay‡æë_[XÃTÛsn8»u¿ôÞ û’ïy­V‹Ó§O³ÿúÛXYYabb!§Nzû±…ëÞthFæ*ŒÞù¥/}éîgŸ}¶hSi·SÝÜ¿ý·ÿ6Ä12P$IŒÖ¤‡°Ž_üÅ_drò:æ—›8%±J uæf²b6IyÚÍfù199ɾ}ûÒTa†/,,í‡öç&Ñr4;;ûóÛq‡%ÓùÏ£LÃf˜¯±._–»Úò Ò*kÂâ\‚ïk° (‹#hELÆŽ¶N:TÖ‹ÛÑéÆPMÒ ›Qb€c•fê ×ͬeO+!ˆÁØ'‰ˆÃ6²îÛmLÕååKZëùízÓí?yòìü¿ôŸXZ‰œÀMÂ(“t`5a#DVŽg¥×“ ¤¤ëÝt ½Â>–Û°“k¨A;’°o×Ia¢•JÆ‚²ò•”¤ÀIÊr*XXnÑ ;(àš8²´£6I’ lv3Eg’žó)ÎwŒì@œ•¶TlŠLu„Oâ|¡qÎ1!Z¸(I¥B#QÕtþØ0 ~+©³¢–.Òn.°gnGõ‡þþßÝð=ôªJ9YE¨q Iä8yô^`!‰@{H€3³„V®·Ý]¤:ДåiD¿CÕk ½ÌÈ:Î*Œ¡pyR§'Ò)¬íà ˆÂ#-ª¢qÊëñ­s%·Ð!= ­òɦs2XÇÉ̾Zü>TÂ%Ó£T²è¹´yê’×û9½Hª-ÅO= ë}Ú- D¥ïÏ®O¤=KNÈ´‚!Sas&AHƒ¡ÖšŽ8QAë9<Ïãeêxzì2¾E$‰¡ÔØJ¹›Ð’)/‚Ö$ÖRñjY²1I{†ñh‡F­‚©"²TI{PQétPf 25ªÏzP@‡g=P'·¶óF+ïû¶7ýã?ü£þéêjÇ˥愬Рu5n:r€æÒEÎ;‡Ä#‰B*^ØšÞ̽ì&£¬µ(–.H«öŽ»K²¢“"é"[è6H{ÈeB+\aÊs¬ÿÓS¯aáäsìÙ?‡©,ˆ*K««TT íþêñåwï¿Îþ“W’¿ð|îWžç cÒÊ)‹MzgÓ*…$Ý"„Pˆ¢2gX¤¨FˆyïåÐÛV‘X Qf?Óyl Òÿ³$륎$9R+¬S <¬s¸LåÁ )u ‰ÎÒ"Ý^RÖ•×ÚØü–Š$Š©ÕjEe\…\—Àa‹"9籕HOQQÐ>wœxnSdÕ¯¥jÁœøêC§ßèm®®@× ¼ÿ7?ø_°f_)çð¨qðÐAîºûµà­+håHb…övðµ§Nr¡9‡ªj"í£uæ9Ú8­Ê’§‘R#ì í(ÒŠ°Dx¡1yø!,Ò8¤‹©ùqØIýEÀ$ }V/¿ë­,¹ SÚÃ3dg™Jç<"\B K­REØ+ä¼çÝ÷=råñ§$olOq%N!Ðx¬@ÜA;E'±Të Bc œˆÓܧ P&ó3² 6!M‡ÀzAëPµl_â0} d F ×ãû\ t7b[¥D •eúì«}w¦„ævá{!ÊÆÙó?¢ÏPõë†v'€”‰$¶kAP©–fÒɃ„ÎvîÑÕZ‹jµjî¾ûnõøϰÆ8Y% %ý.²DHãgý‘í `s¤Tº¾1sƒË#-ºŽeafz’{w§÷9n§$KY ›7â+¥~€’>Ql¸°¸ÂÂÊ ÖH*µ*M; Y]]%Ê$Ÿò²Láì`¹„2cÎ]€ŠM n¤*’ )nÐL n6=CÒ±TÄÙ˜ú´Z-šíElÒi-E‘\\^Ó“Sv¤Lõå¤(IÒÉ2 :$Ó@¶` ^“ #~[KNÕÓÚ8Y™˜˜À…q ƒÂ"ÀiŒ´à4V®¨ F2‹:7ÚaË_ö÷†Èå%iÙ}·Ã•Á’A®'Ûj‘ß+ì¥ùqîWe·YƒË¤j¤@i2u–øÍ‘#G˜šš¢nÎ#ˆqX0 ’u[¢¯7N&X ‚4—¹‚ER¥§ü4KÀ°±òªõJ³lì[žžÞ·gÿ§ï¼óÎÿëË_~ðÿ°Öâ,x¾OEÓëÒÒ7Ýt­V‹¥¥ÕLc2aPm~OYî%Þ"/sØ£(ÂÓO?ý4wÜq/^d×®]œ9µBµZE´B\’Ç1=ôпÙ=ýÊϘ’<_ûÕ(ÄvÐþ¾^ë°–«­ØÈ9_êõ¹í>þÄÙw¿ûÝ¿üÌ3Ïü« .ðÐCqß»÷ãyqãy&©ÕjÌÏÏ35uüjÁ~~øðažzä,µZÚWï(¥£(mEK¢QãÚÏ2é\E\¸pݧ ŽçËËËï:Òܽs¿úÒU4 ßöÙÏ|éÇŽ£Ùl²cz†V«E;þÎßù;ÈJ%k³ Úó£ÿõ¿þׂ:e¤OF¢ëiÆ DÑËkŒAhR’0 Ù·ï³³³YÏpB†tšM¢(BkM-Ðyâ&š™™ù™í:Уl[·ŒxXE“ëóÖ«y1¢º—5еÆxy6;ð…µY¦_â²°üf潸Rå½¶€è `eîÈè=,—îÒ0c0Ö ´GµZ%â~ù¡µÞÆ¥ËVjwÜ~qÏž8År3A{ƒG’e¾… Ä$DÖ—ds¡ñÊ{UlÑŒìe+ì.Úb9 +tðð=C’h‰ÀâdŠôDÂCU”¯ñt…¤6iÐîx´¢ˆÀTÓl³/qn…Ø­fɉ,£ê:½÷×­ {ç>d/rY¦Ì¤t,¬Ð¡Ó ‚H£<…T°BÓÊ<­À· áÒ3D­⨃t6ÍùºÄ·6QlXCO !Jyx™\‰ë$Hí2@2¿8/—û` òy/&&ºì‘ʤâì¯$NÆ @;…Á!Æ ²À‡³2FSäÌÒš0£¹¥Oë·çw+z“5FZ xKß‘†WÙ¿rµÍݼµR>Î9¡p®«õk×$Dº½ZÖZÌ˜Ò c;ªònJˆ£‹„‘'" €x’ýS711!ˆ:Ó©Ûfj?KçfÌ–’}ªõmaSD$Çð’k<éžÀwƒïº Æé½¹,û×]¯¹ëß?~ê§OŸ~@‡H‘–Ëu:”ò˜œ˜àÈ‘xôÑG3Ή!4Ýêä,PN⮓(YwN%¨€e+A%ø­“\øVDpäõTÂ*‡§ ‹‹‹,y>±®àÇgxîøBãË7þóÔ›oyË$„Ï·“7ŒŒj”ÔNaÏû8Ø»í~¤c` ]Éö¢'q¿õ=ºƒ’ÀÏwùtùxõë^ÿËûþðÿáÂÒÒîãG²pñ³»÷†!ZWH”ƯOrἕ LÌViÅ+ø¾Ï¾×qìèÓ„é_Y:Q‚’~O@»^ÛMþ»µ­$I1þs»÷j ƒçûtb©¾ú­gÞÿŽý7ý«%pðþßý½ßÍf“ÉÉI:%®Éa^wÏ]˜ðÊîlÔ&­w½ùú,oVyï§ÖšV«UØÊ~öÚ­vTÝèæ ¡鸌¸³çãP½ùÍoþ_êõú²Öº@ œsÄqŒÖš••vîÜÉŠçÍaÕ%›—ü¾ç\žçqæÌVVV¸páõzjµZôùç=âßøÆ7^÷ͧVÿåvòÆ‘¸µþ‡Ù®Î—þõÓwÜV^óà*·¡µ°UíØ®9*³ïyÏ{þK­VCkÍÖÄniª$õüîä˜ÁÕà^\C_ NéE€)‚ëÞÌeŽk“")]ç³ùMÙËA~ïë æÒ¹ Ñv2ë™'-[–‚­\È:é°„”DÆR—–vdpN§Ùp)‹*Y‹É‚d¹Õ¶{0BÖSf, »,]w=º¼ò¦4ϲ…9rÌF•29Ç˶Kïž~ìu¯{Ý?ÿó?ÿó_¬T|â8$­ÀP„a;uvµàÆodii9“ 2Ùž&{Zf¶*ƒ®U°T–‘R²ÔîPkì¡õÜcÌx/åäÉÞ½ûX ¿ž2ÎuŒ6´;’Oüå£?µcæžOÞ0ÇóÒ?˜VwØlÎdû<!R¸ŒxO +a¢l—ÉIsl¸:gÜ];­äæûZÁ¶]Ê)‰‚[áRû‡{íÙ( ¯çóxý›ßü+ôGýÇqüôì©cO³rá“3˜ R`¼ ÞÄ4­…â¥SìØ±›v¢i‹ ³×A>{ŒVØB’ l„VÁØòk£ú-&-Zr% –ÅsÇ©OL#˜&ì$­ñDÝ{ðÉ?¾oÿÍ?°í‘.ÅOþæ‡~]8:xžÏêj“z°“é¹iÞð†7 T„ V2¿¼† }Nž]àØsg¨Ô¦ª‘úC¹8|YKP椅IÏž¢H9*|ß'Œ¬ÔX<a9ø’Û j ŒÊ+£as™8jQõ=O#LLGvÛm·=´Ç9ÝOI¥;¿ð7-k6 —‰y`"nÛ77lÏ@7I/׫M3E%ÖUc@)@ä =4ûB ü¿gXÓ«;Úx§A¬¢T˜˜˜ Ê3CaXô_ä“eÝÍçrHõgR鋘‰‰ úX¿ÆjÛÒŠ Vø%±¦«-&úütAo¦Y8SJ8”” aÒr ÚWDNÀùóç3t#-m4&†Än'qH¯‚Á`HY³RY)%Ö‰L¿2“ÊîÈÎ?L¢"¡1,[&„@•*ʘq)kn`Ûi‰ôB ø5•jÈÆ2¢±c»wï¦ÑhPó5Oåâ·&Ž"ŒKÈ%H.AÒB”ÏTCÐâD¾it%“ºýÇb :’—‰5ÏþY @YrÖÊA¬Ã!1Ô÷þ.ÆDzFÈW öÇ)‡]÷zÜhGúRKE®©ÛS’Ø¥÷7&¡Ü/l’+º½íÆuL)6›ƒî2í åŠ^¡¾µ,S º=ºƒäâÖ+Ÿ§l9»™—Õ3¿õ–›~騱cßö­§ž~oºÖEJj“͹8ŽiÔë\ýõ<ñÄHò>o·†3 œ0º”#E§ZäˆWº„œ={–ºJ»Ýfvv– .c©”buuÕÿÊWþê—÷½óÕwWKW餣;ª:£?ò\ÏÑÛl¶XG•.÷ÚÆ­AsúíÛv rÓIÞ8ùÞ÷¾÷W~á~á—RòàƒòÖ·¼£¨pñJe.\ນ]Å5ä¨î7¾ö(ª4ï”RkÖì5ëU ²ÿ9*§”byy™éfß›$/ý•R2??ÿ]'Ï´ÿíþ=Õ¯m[?ÒñšG¾úè{zè¡Ì1h­Y^^æ‡~è‡RŸ1×ÄC´¬ ´æCúPZÝ’ÄHÓìÄLOO†íÒþ@oÒã¸heé·sssìÛ·/µ«Ih†DQÔcc­1nffæ§Üëžïõ<êµBG—ÁÁfnzÆËmì{Ƶo/¦ÒåËÛ£k­W.ËÂ%Òâºr BZp •÷èf1DÞ³[R¹^.}dT²K,“"½*}Ý"•@*& (œ1`“I 8´ÚÆ.F HK˜¬ ¢e¦ü{&$G/°tæ<±õPÕ*ÎJÂ$ÆIB½È,÷:YÆØæÈº[c•mK!ò€þEk óá ’ïwÇÃ)ÈØŠ&eX”1Æb)‘zж«§óß„×J{‹Ëç¿õ»½1¦7ÁåÈ]Çr ›WJÐß;?dÞlD'ðŠäÁ½åoúGóç/¼jyyy¯q™ÌSF ¥µO«¹ÂÎs,.îáܹóikL^žæA_kú¦ƒ.kSB dÓẖ¸¸Èl}’Ι¯ÎÌpî´åÈi\5àt;ÕŠeL}jŠGž=uËÎÇÏÿßo{Ùν²yYUö ŠÎ¢² …ÔîäëÐô$4‹çÅåsضp¾ 5ÂÒu«FÒ˦>Q&{XèN÷% ÿæ3%®/¡éÖ‚ÛÒyÃ;ÞþKýØþè7ûÚÌ3ßü¯}åË©ûqx$ÂCø‚Fu™••eÚ '˜˜ÞMKÕ eîÀAª'Ïà–N¤¦È” ФñðDloð»æÿܧÈ),U“Ð{öìáìÊ©_nœëäæûb™¿LÍbaa‰¹U†ååefg&étڜϬ1 ýŽÄ@t“!=¼N®Ü”{f{Wº¬ËùyzI€Tö÷±¶‰¶òë3…#>X¦J–çú(Ç9c…&;Ãîû2[›jñÉ´,²!Ö… bÈœ \ÊÐmâŒA+…3I‘)Þ*ÓÝÍúöUn:KJP.ƒ;dᬋþ9¿ñ£lVr‘”ÁX ÖËülÑqÓ‡ûü«î|ÛüÕ+Y%ÉH©‚ `ee‰©éH ·Þz <ò"“‡’Ù¨…ÊJÖF#þƒËí»¯kÙBùŽV2 ~zÒBÁŠ_ Ñz ya‘sêø5Å¡»9súFÇTŸv+*]_yïs%ÞG·æ¹2È­3…t§;¦–08Î?÷,7Ííaµ³¸*™šš¢Ýk<üÄ?ùŽ·Þñ¿nC'ò'þó/ÿR ´ÅYGØn#…fzzŽwÜ÷fü@‡ñ‹p5@qö|Ä“GÏᨠd “dÁYt÷#‘ùf’z7¦ì×Ë’^tî‰ ª„V#yå¯Ä¯5Xm†(åA’,Ï#Â&õj@#PÄíUH¢O}×wß§·Ã –ƒV—ò6–œP- S®ç Jf¾”°(-2àÄ•zóú]ì_Ïëë¨ÐGzY‹$Î6³[æÐ\öˆl³º~V3ØzZºÃ2¥åÿ1[[ξœö„šbsÚlƒø•Îw’!‚ýc[f°îGÃF9›au—5w`öz–Õ±ûf60ƽÎòøåŽXEØ2Ÿ»ÒkoÔ=\o=bÞȺ\ïï×cO‡y#»ÕŒí—ò¹—Ê?Î\ßN,ªã2[of÷ȸÒódKûVÏ›QkoØþÞw.Ž-*áµF‡õÉ^iÖåaäTÛâǾû»¿û×ó½øsŸû\Ñæ†i5CµZ-PÕ¼Ò"ÒJ¬ë¯¿¾+ ÔÇŠ~)ó«<ÇÊcxþüy‚  ÓéÐn·s´ù.œ_9¼Íp’[¾ù'¿çË_þ2qe:Ãqó¾÷½¯[ATˆãÜïQ|øÃ.l^,åýÏýª›Ó|*¥˜œœäºë®£ÕJùŒ1DQD§Ó)Øäóû=77·-us×ó‰¶ÂoØŒ²-×úÕŒènzbl˶‡uÙˆ®®n‘ñt]²¿tYÑ÷y8°¹†Å&7@r\9ˆç/=!¤)rêœ }"Fd! ÂEHb +,‰ðr(6»NÛSBÒG¯Åª*¦·WÊÚ¼O €‘E *ïÙèí B¤l¸yÂÚ•ID†Ü Éï§ Š{™²ÄÙü9Ö™ÃQEis^—–*‹ŒR3­"p2=¯ Ï( A‚&Öub]'r©4‘4ޤÝ.²riH©7ÅÐ)Öļù Šm:Ç ör[ÒÈ-“‡¹BWºœÆeȵh÷Ìq›1íåȼ“¢@Œ³oM×Bv²:ñ Oºtð:Æ ØÏÂ<Áíï9¶™Zd‚sãìŸÍe&òç\Ÿ#çÚÙßÑSþl3„UÄf >¯vrMÉóp;!Ö¾7¿™:üÒ¥Ú³¢@Œ³û"F¦£Ï „ÍúD¹'öò{ôøäÀY›Úg—•/ëÚ•5•Ç+½Z`¨?ÈuÎ]±þ’‰Fmþž{^ÿ¿üñÿñŸ !t»ÝFû>««ËÌÍí¢ÕZezf–ÙÙö,íbqq‘\šÈ÷Si%Äð,ð÷ 7¬*«Ì0©]víцÄX–O>Á/`ÙIö9È|¸BƨÀ§W蘘‡¾~ôoÌíÙÿï»eî¿]É@7OÄ îÖpÖ‰(C¸õæm猪«`¹åþûË‘<žˆ²”ÛƒräW ‰,]~¾žÄ˜9ÑqXW%жm  ¼î oþù?üÃü½gŸ}vâÔsGi-œer×AÂ0d9±Ô‚J­°ººJuñ$¹}tœ‡cv8Ìs§Î³²´€ïû]Ž‹à­Ç>ò½îødè¼ð±Â!­É¸Ã|Û¤}á8sÓ bÐj5©MÕXhµ'~úÌ?yÇΉŸÜ.c…á}èC¬Z›'! IFìܹ—7¿ùÍÔ&$õi‡µ ™¬Ó4gÏÌóÐWŸE“„Ö¦{·TH RZ’$NÉEéVd¸žJ‹*ó Ò”*Îà41 ]©ÑìÄÜrÇíTª´¥ÐÅ8ÑY¾€0-j•*1Ê%Hg>uÃõ?¹Ý☑iÎÄ9ò 'd¡f"ÊÛ¨“#÷ÉѺ©?÷bìϽ$TiÌcÝz:Áæt(7«£ÛÓcQÚhÊhYów{sÄ€¬pYç­g]&dkäe\änb8ês‡!#ãΡa¨Tî”å•åù‘g=/¥Gw<#é6t ë­•ac=ê¹jÓnäù­@36óë­‡ÜF”uuýÝf×Õftx‡¡|—ÁIU£Înì—ÛÞ\©ãºý»>s÷Ýwÿl§Ó)ô¶}ß§Ùl¢”"Š"¤”>|¸ÐýÌ5GÙÉK¿üý¹¼ZÇœ:uŠ$I8{ö,sssh­ ¤9ד衇~úô¢»ùJ9~ñ­º§—:¶*Èt¿‡éé^Î}yܪ©’=ÚvÙ}Õ˜yöÛ¾íÛ>ª–/ùË@Êù’#‹“““(¥XXX Š¢¢ÕGk;}ûÖŒóFçʸÈnEÌÏÏiq˜©y;vìï¾ïÛãGÍëÏŸ?ÿ}ŸýìgÑ:mƒÉ5pßö¶·Q©T2_'­xLyP|>üᣵ¦Z­RMùc6Œ˜š÷ùçMLLôè!ç3­V‹ º2’RÚJ¥òÓ·Ür˶rÖGÙ™Q6ðR‘Úþ9¹Þß]Ct·0‰;¸—ž†›´Ñ!„tZ—‹ ÉoŠÌ{te§×è)úvúttó¬²ÈúȬKp˜4SœÕÇ‹L̰K—S©ëR&;ƒÎ`žL‚Di„68kÓŒ[¦ÿ&mè¡tîkW¥ìñ{2=ù‘¢W:Ï4ä¶ K‘ªôþ%‚*Ýè xÐf=´ùM4nX`›!b¥yÑ»Qeç)£¬2€ùLÿRÕX©q. ã œL0Öá”DÄ‘„§°Ba%I,Ö€›]Bù\“¥ ¿Mû§3½ÅB³4ëžµ}Ù»5òBbˆÃ•û/Võô—вž.[ô‡•¥dºŸ©ˆ‡¢–k3‹½y´\:iýù6xn–umÓâ4ó™ëëâä´¦ì\êD§óŸþÞÛL'·_:ËeýDk®g-+ù°{Ü‹ãÈÜ*¯*@:¿në"¤ÐiÂAl%ûúD2zí\æ ±VZÈILή$d}‰9R.G3žnâ®ønýŠWÜþÿ;vìØ›Ÿ}öÙ»*Õ*RÊ”ùxv–0jS­VñŸÃ‡óͧ¾…Öšv»MÝû¾R®ž÷‹JÊVJ€¦j „`Ò¤$X-= ž¡aVÍ'9±Ê„™eÇŽ;'ëœ=×FjE(|œ7ÍÉ¥dæãŸýêþï»óÛ¦zö z…ÈæeVe;ÙÝyAÒ[ìö+ôÎH³E-ÚŠ\/‚“ï[ªÐ —c!ÈC½1EÊJñ¥” Ûð¸÷íïúÿócòw“8®ŸxúI–Î<ÇÔìN¬Wçâê*ÓõijÎêļÇä΃„Ô­fçuG8}ò9:N1úç_?`0ˆ P6½wIΚ¯,Ò8´ë€Hf‰æÅc4vL£…b¥í0µŽ›yä›'ÿÑÞ{ÿ‹ç{,=ßÿ§¿û{¿='!&n¥É8]Ã÷}Þþö·Óh4˜ž A,šv´DÜšãë¶0ÔèÄÔð|ŸN˜ªW$6¡Q©¦¼¤~hŸûÐ3s2ª. ¸ÆH…ÍN̯yÚψKM„01ñÊ ÂÆÔü-S¥g“/¿ä¦?±]âÛõ‚Ü<ÞH/^ &æ+ ±µdTb)›/lÝËŠèŽ›ÕØh¦mê7N©?È+£w9Šëœ œszß7£ÎýŽb~ ùæÙ«O|å3Çã"¹ÃPÅQ(ãz¨â8bÿïýH¸µ]ÆåÂ`eÚÐYïÝf­ƒZ×É£‡m£ãÑ¿.GÝ«qz:ÆEyŸ9¸Ñ¬rµ•½TTw#Y×aYØþŸŸO"™¬ÿK¹_±+n£4ï½÷Þ™ššjÆqL†ÔëuÂ0ìá€ÈõsT§L¶[¹Þú.ÿ^&uò<“'Ob­åÌ™3Ôj5vìØAŽFçÕMÇË_=|ò§¶¢{¥Íaö×]B´»¦=c 4çù@uË?—mÝv<ª“;žz×»Þõ›B‚ ࡇJ¬¬G3Š"jµZÑ£žÏ5)%•J…Ý»w´S[Õ· )ÌÅ‹ ¶v»ïû<ûì³ÿ`qqy×óŒç^wþܹüð‡?\؈8Žét:¼ño¤^¯cŒ!ðR±ÍˆÀøƒ?øƒbžä ȹ”Û’27Ìf÷AçFƒë®»®x-ïÍm·ÛEuLî·û¾ÿo»í¶m ²7¥*À5 À0„ûrs„\Ct·æp빤½9©DLŠ[ ™¢k‚YvüÓ]]ص/%8²¾Vz{…¬µ8Y8Rêù@ Æ>,‚Dá…u+‚ìiEd"ç“8A"¤À¦<µ$ÊâœíAÈz/S®ùšžÉb»=eÄÖ‰>G!Cb…K»*Mö{`íà$H©o«·—é +JA;]Y¤¼‡›‚½Vgù+›þ½uá¼Ù•yŸ¶U(­Àù(à[Œn¹ïqviÿ¦D…Ö~óR2€«û]o?šÊº´ÜÐŒóZ}Òò{Š9.rö°ß‘±œ”9«²ëg…5#ØQy´œýx#ï_›kØ’S½_×í9¦W·§A™‘„wßÛÏŽ]×qF:` £UN¬ÆdúÕReÉ+a0"eÆKH¼8uL²¾^‡[“Ùby!¹nâÒ¹’  ÇQ–zÅ3ù)׎ÏǠߟÏznvò‘{î¹ç_|üþûÎó¼‚äIË´|ÙÓè˜ëöíeiažN”’РܣA¥¯Úy)·JÙ¹«n!ErÅ,B&â•Ô™š¬³Ø ™ö—X9ó l|«õ;f&XZ^@© E»m•|ñ«Oü˽{vüÙm{«\¦!kç Âr0><‰Ö+<,K [꜔ª>J_è£åj\Dw=”¸Ë%’Lt»ùs¶¨d³—vý¦_̱]Þ®ÇÛßñ®ŸûÄÿüðžR°*Çq\T‚äìÖqe•ßhi:t€$IŠsÌíDÞ—¡¹?sç+^nÇ w=»Pö ú¿Rêãžó 帬ˆ®Ö:ÓAK h”ôèKÃË:j“[ñˆ…Ã3Ð$:Cp›¤êIíæÌ½e_Wʉ¢G ×YŒDˆ®K¦AÛ^–ÍíHHtDKD4D‚t ³²õ¤$©cB”¶@+-‹ žÄá*žWE¸œ, eà•tu½"öƒ6y-JèMšb.¼àôý®Ç+V*eÄe¥ÓBö"Š2)首/+S‰ÑZúB¦;ΦÎö;wyïZŠËñu}±¢-2çB@¬#„ˆÖÇ·YW¸ƒP{t‚‰¬Câð”‡0–3O"ÛÚf‘J˜aõJ}“Þ'„Ð(å#•Åg7¶Nàd”çILf<‹þ®nÿ#e Àâ³eïï9'u1(1S ·‰šŽLY•(­R!ùÄâå­[Ù†W8Gbtf|=„n«çïr½Ýòõ–®St[†8¯rÍ箇¼Œê)íždÆÚž¸¼rÁx¯pÐŒ14”d²îÁ…'˜›ÝMKÕ³y«… r’¸…Ö­k[f^rÔÍÚíi¬5¥J™îà K‡øJbƒ’^–±N+G6½Y2GÄ{s8½z•ãì'¥qœ Ä‘yÞL°ïaßtïkÿÑñgžù²ÅíŠ#‹ö&NˆÉœ´&;vL³k÷,çÏÍ£2¶÷ÜÖZ§ŽqVد…ìÈ×g6T‰‹ÀilÆ Hý½¤R#4OH!1Q‚o-zå <9ÅsÇjÜpËKˆÜ·h6›˜°ŠÓ+§9vºóŠ?ÿòãÿú=¯}éoyRÀ¸€88!I(­‰Á)SMºw(×Å‚ò%d²t¼rv,û2´GN¦Õžh—ž‹Eb´BZ‡À¢ŒA^¢Wäd‚“ 0u±ËÖ“s§3t…3–@{9´Té÷KRu²ŠŽ’hTïõ÷SG ;„E9{^yÕ”¹^(´„ÈÄžÒH’L‘bû÷Þ÷íÿîw~ÿþ­0 +Ç¿öw¾únf¦wvb”ªQñêT&óϲsvþD…ªçÓŒûÜÌ©sg±QŒçiâNHÅóI’ãÀI¤@l³ $—ÎGeÓ* Hå* ­žt u^—BøQ‹èüIæ®;€µ«M73Ãy»oÿœýûo}ý‘wåG/ù‘ßøàï͵Ú/ƒµxªJl<ÞømïÅøub¯I}r8“òª¬¼Œ¯ü¥OÓß‘úOÉ*6‰Ñ¥½Våû²X“×겇çn-`T ­Ú«M*• ÚZHBn¸ýNŒÐÄÞž‰ˆVÏPkžfªQEØtUÒ=|ëÍ·þþöš5"‹?dZ!j-ˆG„5¾'‰2ÀÍgÒe'2mhålJå zF°Ç ÷¥äH?+)zt³ó³ œÆ‰‹DJË 5äÕ—ÿî÷oD®·ThŽV™ò-)À8(î(D7ïgääŽrR·Ù¡ ä¶Tb£µ&€èæÙ Ä$ë:ãd{!ŸƒÆ}M@©¬qÀ¸çÁBê,KdÆœhmÚ÷&ûèÑóëR}º·kçEöýÖ­duü¼DÙfìƒCr›/ã‚ã ®½ã-ß«u¦µ1­¼‚IQàðeÊàÇqOéà ë^o,F¡“ëIˤW¥FŽWþýÚ<¶™ó'PÏÙ ‡}¿k¸òg'±éa€ÏçbE\¼x1‘¡7L”fÒ}ßGÊdäݪ}aÔýBôL¯¼Ý çw±ÖÞl„ŒªÇß&ºZ­}ßûÞ÷ãúíßú͉Æ4í(Ä÷}Ú”ù5Z­‡¦¹Ú¡¹´Z0ÅæÚí¹}Ψˆá&cM‚¢l/ò=5Š"VVVð§bŽ?Îþëw²´´T Ì«ó‹LùU}ôÑvû‡þôðìÄýÏ">ÏGo³¨Ê°9UN nÂ1®?Q&É¥ë”"OXŠžq6¤ì+åÐ..W‚Yk·µããOÎ|í;¾ã;~ï·óü@§ÓᡇâMoyg¡©š³û¾Ï™3g˜™ØS<ïœcïÞ½œ9q²@ s„Ò[Œÿ 3¨ÊpPIsÙÿˆã8Er+ç«««T#¦ÊãJ%øù›_r$ÞnósPlâF$Ö{Ö~á㉡­êx†½o˜Oµæ;·É~z5ºÅðËL/2Ïšâl‘µP¡2MUœ+ØeH3þ:ëÙ¥´‘úØs¨œlFg(Ÿ+šè/WÓå1\“8Œ³Êéã\Ú Û cš¡¡G$&Uµ&u ­c£‚©Á¿»5 5×ÃÍS]e¯©n)†]¤NÚ¾ÄD¾(³à]äš¹i¿‚uÙæ”õóâLöþ¾ÍÞ•u@6Cp¥“©V,¹p¯ÂX…@¥Ú¾"$" Cò$ÛÅa¥äV­½®á±Y–ÔQî.PÅF¼¾ö³+véîý5"Ê^K O ë ‘Ä&N "UH•¬TıÃZþš¤Eù;דä*J£ÖÙfgzý5ƒS£çô:ßiûìOÿÑi'#7š®Þô`äX©8›ßK…±·h/#£´¼«x8›¤ìæ¸ ™W[m²×>©t:³¾e ‰“ !¼BY ÒùW(²g.b7•TáT<ï„{öÎ}èÎ;ïü¶¯ýë?˜–‡x¾¦¶ 'Ñ“’n<Ì“_ûV‘ÈKKœKu¿sE`Ó]ò¢‹š@Á¯0²<ŽtΡH%p&&lâ…¯¡½C¬ži°£~åÖJŠ,T;Ä2&lNŠ?ùÄ7~é{¾ë5wÏúœßª1’X¤³™>µI~HU¤KíuÖ¡¦ÜÚÄÓ‘§•cØþ×OXy·ïÞk*ä('Rs‘Ã:ÌDÇ鮯5vOŠ‘eÓÎ¥å¶Û=и÷ïýÙ?ùèGþf»ÝöO~ã«D¯zÞô^p†ŽžÂUAK ç™]=‹¨L« ‚Ýûrñâíæ*¾ˆÃZi0 2CÝ]¹,W2è[,)‚)²Š¨œ¤5RŠ8éÐY]Ek­*Dí"ÕàôÂòáÇ¿uìÞtÇ¡_º‚Ø}ä#ÙÛ\Y&Š"êõ¡q!xÏ{Þ…í¤~A£±BUÕ°fŽÕÕU¾ð•Ç0r:Eý=•©ºo>$œ‡T>ZÄX“ 5dìáqÝÁ›¨NM‡g:ch¯žC$M*µZDY…‹{üàÁƒ¿»]çgOKŠMyjr%‚úÏ^þ’Cÿc¦Jóò˜ZY^þÇ¿÷{¿G­V#ŽcVVVBð†7ÜËÌÌ •J%óÑ2Ý\U᳟ýxê`ð*ÕL&ÎlxŽ÷™–w$qjû*• Nú:tˆ(аÂÊÔã?Û•PXg‚àß¿âŽÛ:ÛyŽ«À;gxõžsb¨M+[‚Á¯u÷ïk:º[}ÃI‘!‡›–˜‚Ab3cžæ/õǾìàØ¼wDÉAÖ¨¬GM)L"ˆâ6aÔʲÊ)sžs"kQI¿#1Ûy-匲Š868ááœDª VÆT;‘Â'qœJï‚”=$¹ƒŒÒâââØ†kPŸ´±¶&Ëd#ÒI„¨QëÏLå(‡‡HJ r­`!=âD¤:x¢‹ØæA@—à”NÖ6gµs=׎Í6²¤‹'N%Ñ1>ˆjÖ÷iÂ'í5_ÒåèªÁóÔ⦗GÖë¨ÐȲ&­Ùe‰ U\ÏÚû#{Â5šÕù–—õø*k²^­Ô8'±(¬I{u•òè$g|©P„’EÏØÚy‘2rË-HÒAeeCç«°n0Àõ]ipan$½÷uø¡Tʯ­ò …5%1a¢ˆN+Aùjõ*R9Œusö– üÀ¤"‹J…s&ý~!Ò^7çòV¥úkk/‡Ži¹ÌY ¸Û{ò4î¹çžýã}üOeâ_{EÉ_ÅóYY\b×®YZ­⸃1QvÏó¶#½¿Ê <…“-6c'•¤”ÃQM–N<Æž=÷²zþ•©[—X‘`“,~R¥Ï{Rõ”0ç-Ò ®Õ©C¨DJ‚b2ç¦[üéÙç'Š¢‘Áçy›îDÿØ•ËèGµ ÑÑÄa_¿á™¼EÕ¯R­5X^^&Šc”›!¹‰VCפL‰£ŽqJ—GUs¬×Ç;¬fT%ÿaß=,3;nÙ ;è¼Ö¹¤÷>gÖºÝn·: U_åvà²{©åèÔ©I{ûâ8Æ¥-€DÒ•Epv¤Í7°`“¶ÍÖ|ÝþÝŸ|å+_ù³_üâJJ] ;9ªkŒ¡Ô˜%I±ÖR©Tèt:E÷zów=}ú~MÔnÕ CZ­ÖWØ Ô'ê¬4SæDÈËg>ó™ŸÛ»çÞÏï¯ï:z9Á5!ƒ[CÊžØÒóŒò^.ç7%cŽhK)Öeª+}òKll1Modþl÷£±ûÀCo{ÛÛþè7ý¿W†<þøã¼òuoÅeþP$^HË9æçç©Öö¦°Æ2==ÍŽ;¸xæX“ù|9’›®)äÀ\1t^fþM®—-ZiŒÍÖµW!¨8çXYYa¶QãÑGý±;n;üÁŸËˆ¨ØÆÂüü?ýð‡?Œçy$IB»ÝÆ*Á½÷ÞË®]»¨Wj´—æ©T«àbªõ>úñ”™YVjø¾_°Ê a‡gãÍ¥|Ë+—¤ò±>ÜÓcÝétˆÂÉJ@]û(çÂâkýK/Ù-ííèS)ƒ?kª¡òÊ×KâZ^øBŒ–_rtB8o/øãò"ºN:édÔÀFXip‚Ø*b«‰³õDvõ£RÃÓÃû3CÞ¾ìH;¤²X±´|¡fffð}gÒKËÎ<-*ÎFÛ÷¶ ‘¶ÉyX"„ èD1««m–› †*8M’±¥›nJù#‘1ë¹áóž5C Ó²c],re£¬LO÷”eŒ…™Ü…©QŒ£N¶cŒq´cÓw^ý¿»»ré!ÓçµL‰–.ë‰0xäÁ²G[KöLù`JJ„‰ˆÃ‹) ²¥§ßµÈ8¨M÷Fªâ¼E·Œ¿‡Ä‰Å’8ˆ­L¦Tìz¥¿i j³ uqßJë,¤BHEPoÐ X j7‰ZË™˜§rçJ‡ s¾Gsé!*µˆV¦ñ½h=G’tuh®,Ró.®¶v~òÓÇÿÓw¿w×{ë£ZÆI8‡,K ÈFº6é®#‘3†‹¾œ±LÙQ GõÒ+S%ÃrÌaAiwº¥Ì*+ŲCÎËõ|ëémε‚­µ$$ƒí’»úÖÚÛ¾ýoþô§>qÿ_;~ü¸zökÅk^þR"} M–˪šPo/³ºx‘`úU¥ˆE œd÷ž}¬.­f½º c;()‘6g]¶]çߪbÜ%¶wü”(Ȥí¶T!^šÙ'IÚ˜ð5NOÐ1†¶Ó4—näëÏ~÷›_qä7.c û·þüÏ?yã3Ï<“úm”¶„¶Î;ßó7ˆ­$Š,7\€~VZó©OETfhº!ChûiëR܃µû•ßeœµÌíñÙ}èzjŽN§ƒRFMh_ j©Åé4(”7V¢9¬sœà¤qÍÑò|Œóì]îüXki6›XkÑZE«+Kö …åÅ:*(êfÏÒÿÃ8LÏÕª„!Îçšðh)×ãæì„ëW›µrP –³àe2áXk» ­ëdèœ[ç>‰õÆ(ŠPJ1;;‹r–ÓË‹¬¬¬œ ‚à'ª$»‡RJ©òygŒÖZ‘ÍE—yªäƒ 2íçì9Ýã¿fPêÖ9Z—kýìVùï¥s=¬S]²~¡ ²×]öÙ²¯ÇX•=aQjšÎÎ_¸"ûü5ß]z¯ê›¯åï*^Ïì—Èï}Zl•sNJTÎÆ,Â0”ÕÚÜ“o˽¶4¦]g};ÖÙÑ.îο5îÆz¬× ˆ×;Ïçm3U´ßð†7üÈïýÁ‡?㜫K©²cʺZ­V©×ëLNN¶®Óé’Ilû.j{ú{’³9÷ؾF™²×û.^¼È”W§ÝnãM¤{`‡T*lÜÆó<Ž;ö®¯>ºûŸ¾þå~þò¥l3;ÞÃ09ÛÌgŒöûì[‰ðŒ{~å@w½„þèÏ¥g_Íûþè«ZqãŸëv;*Ó;xÝë^÷±0 ßwòìyyänxý><ÏÃFiï'A@»Ýfyy¯¾á§ 333T«UÂvªo›tÚmS·…nt"N¨Xê“åñHÊ #Š{€ß÷9þ<{g<òÈ#?ñš—ùº$º An%ìt~ü·~ë· 1ŠR®×¼æ5ìÝ»-S{P­VA8Dðgÿ8N‡0rtDêsUœ" CœJÆš+Ã*ž¬ç§¾*µGQ»Í7ÞX°_[›Äa1vaئÕjQ©Màûþ/¼ôe·,l÷y9ªjbP" +‡9ëòúˆî¨{3ȯ¿Æº¼E÷]ˆ4ÛåœÃe2 ‰S Øà‘ÍŽ‰_­`pt:)›j·/¹Û.¤òâ[ÖiïM%I1Z¾«\ÑáœÃPRè’‰â.•Ùdkyæ¦] öÝœTQªô~ •ŸŸD…Rqd:»ïE27ka)J{^;„LÒ–G›Ä$ ‰5=‰È%=U#劜lnÅW“zç÷þ½Ÿþ£?ùä{wOÕ䱯?À-¯|ÂN ð&¡ÚF¶Zϰ³ ¦=*ÊÃŇàôÉSt:žTDq„,t㱑œÅfÂÊ]¿C­É,¤qn\ìÂÎňÄá)a æ"º¾ƒN§çD‰àüBç=qê}wß¾oË5a­1ãþûï¿íĉ”+3 C¼ÀÇÃ{Þýà|LRóA5Ò¹ÝÄý?IÇLÑŠcRÆc2„r`vTÐkb‹ïUXí´ÑZrøú›ðëSDcµ¯,ÉÊ<[Å3-eh…-Z«öØ /{Ù¯mïÙ(qÆ¢…$!çKÐ)˼5HR¾ÏóèƒÔ²GÒrjÉÚ1\àJíµOã'½¦=ÊÚ”ù^òf/Ld÷²: y*¥D‹n¹£R*#5k QÑl6Q^€@ÑÓcf$B…JÅØ}ûrùˆ…£RŸDW«««•–dø^²ö%ÝͰÝn×¶ëMKâXçèè™3'8~ü(¯èJ˰LW·ÓÙ±2¶ù"–8G>&OY'²»ø ¦ ”êÞßÔŒñ3¶Ò XZZÂó¯~õ«iµ›=Æ`½’õuQ¡ŒÝ³`¡ËþÕj5”R$¥lx§Ó)~Îљܵ‰AJÙÙ´e\“͙ӧpÂa1$$´Z-VW;tÌzþ×:F*Û°û݉šêôÌÚ¾çôwùðc_÷î|Ùm1׎[Ð[*é‚hô‘ÒuƒÜuȨÆÌŽû}»–[ÝqÇí?{þüùw<òØã÷Õj5ŒéÚååevìØÖšpôèÑ¢?ךÞDn4å¶u½1•ðí·›9WE³ÙÄy-œ’LOOsáÂ|ßÇ´#lѨTj÷ßÿ¿ò=ßùæ7M«Íõë +û%E—¬OµË‘ž“(æ:èe´rXà;®Tà•D2»ÊçŸ$ ±ˆST_¬¯“ÜÀ—‘IzÆÆâ®*’©™ÝŸÿÞïýÞÿöÿå÷&I“O>ÉM·¿šj£J«Õ¢h­ “Ô¿”ÓiÂ.ŽcªÕ*»wïæÄ‰„IŒö®¨(r'ŒÀÃd­'º%è½ë*MœKazç©"¦°kÀ„aQ9Øét¨Н~õ«ï¿õ%û>2å±el‚&‰Ó.®Õj8ç¸þúë ŸÑ÷}’p%K„©L[<¢Z­bUíîzÍ‹WÅ^9Æ~6¨7÷çqª@n׸ë—.’Q³ClÁ ˆê²ºÖ%I‡âJ½Œ±íd¹hP>ÂóAUˆLÚ»ö°»:¢ÌpÂŽÜ ›F„(ÏÇO:¬®,à”O£Ñ@ M½R§½²‚pk–—nÛ›æÚZxúég9qâÖ‚ÃX—fuû ®ÀdÿËuÕ²CA_2Á$ëÐË÷ ÂŒÍØ‚SgÙÙ‰0¼žŒTbbâ8&j§e»uO'ÜxäõŠ`ª1&FfzÊb *1ÌéË2äÊ)´ ÒÍJE"ÖU­Ä8‡RÆ„¬alÒÇ8ã'$abÚ›3Š©\š½Ù¹tƒ´]Î’A’5ýÀr§­¯Ìä=_[ÚœŒ”$êÂÏ*)Ò‡¤ƒR žLðDr-ê{‘ý$O= EiRÒç"uù´„H–t&eN»œ“Э¿QC~7Àiß–Û³ûÚ×¾ö8qâKQhæ„H%Ê¼Š—­díSSSìØ±ƒçNœB:‡Éúýr‡E ]°1kíe‰ÃáA¤ë–² 18YÐ,|<§ˆÃŒí°Þnb]c¦1K»’x ›8bOòµ£çïú܃Çÿå{ï:øÏ7åxK‹‘©Ms.ÓMw%fñL]ZGÒ(@—ÑÒ&IO8­eÚ4dÿr²ð5.ÃZ:Çcc㈶i§=”R ˆlágTÆ­`{ƒüòÿª vª»zºW:¸¿ÜÇëÞñÞwÿGÿàÝËËËò›õYn>r„HÚʲR7m–Οfnn?JL¥zNsøú#{î8í$ÁÎÆY8#ø,˜Ò}7&Ìü N@‚t™þ³‹{÷r8“+4¾>ÍÜìž´ÅFi–;ÑÉå×>þͳïzýKwt«ÆDiýýã?¾ó©§žÊÈîRE­k¼ç=ßMUYl¸JB‹»ª…šÂýþ m;…ÒPYÅiU‚3råíÚœõ翵&­b°Š=û2½7%¡Rq›@U°Í LТæb¬rˆ”Tôäu®ûõí¿i–†&£\‘ŽžêÂ2äúün¥TOn¯MÏ+Åhò/¹v¿´¥„ q½’¤X˜•O_ t7yH­ïûø™>jŽðV[ºk°EHM/1s­þ¦Þq3+y6/Ip1Iœ: IÕOéèWºÉÊÊÊÔ6öD^YYù±Ó§OËV«…ÔYm6ñ‚º¶éDј±€åÂæè|Õô¼ÞK ˆ’ÃPH!¥ôÄ”ÅíÎ{#óþBçœ(JSJ&2uX,B‘¾±‰K’Dwš-111Q={îäwÞu×]ÁÌÔdOiU™}sT +‡½&ºì‰¢äˆçµééi|ß§“dhnÔaee¿4’¤— ×ó<±Uk¯(¥+J¤Rȼ¯Ù®)]\?Ðíq´ì`d§?³8Ñ£lýÚñ:ä8gY_2•µÉkLÓòÌBŽC¬èö£ƒP‚µ}tnÛæ¡''ªO¿å-oùÉ?ùø'~=Gq íÑk6›ª±{÷n––W¹xñ"¾_É$‰R{íéniÛàëÌèÙ¯³6E¢ÝFTÚ( ÓÓ³(•–Þ*`âF£Á<ðÿºyßì'nº®þ™KA:¡°q#mè–ÊHr]!;8]O>l½ täw3î(â™”$2倓°hÉÉ]!I–˜Eø?šµ^ ÐŽïÿîž±z 8Ó;÷|æ­o}ëŸ}ìc»¯³¸ÂÑ£G9ø²}i™¨N•$l' Ùl²°°ÀŽu¡Fƒ={öpôøñ5÷*EÄÓ 7§Os™jE躞@×9P²w ¦’Èéß ËËËÌLï,öÒ$IÐA‡zè§î¼õ]«©-ˆ6¬SH~òCú¾ï³¼¼ŒÖ)Øpèúë¹í¶Û DÛ÷S-a‰Çg?ÿÌÏÏãûuâ¬r-ß÷]†ºŽòµÇBt¥V¯±ºÚâÖ[o-¿mŽ¢ˆ™z¶‘Z㥥¶¿ôú{î¾x5ÌE1D&ÿ¹§b² õV¨®elî&Ôšµ_Nt•9Zʉ°âçÌÌ{ö¥ÊÔI¤L-‹å{\Ö@×™ccÂ$DÇ-³ÞÍ$ƒT()Ñ^ªyš—¿ z‘+)»ÈÓ DJ$äFfÈäS2½áR9œ´ØÄÑé´°±LûÌlJ‚0´;«³ÛwE©c¯½ûžÿðÚ»ïyÁMÈÓ§OËÓ§ŽŸ:{öìngS¤·R¯2QóXŠ£Â_îÞV‡\SÊìzò"ÅüÈuu­ÌÝl^)A‚¢å*L&Ý ›sIÚ§ïyضa±N¢ýJÚOž–½ŸÚÔÚ(5Cä†J©>6ãpP8¡X»—ô;;räëN¤W=¥1B¤=”B§e3è4“+$ …‡&ÀC ͵ãÅu”‰‚ÒÙ•²ÖJ—bcå@VJY8„]I¬èŽ"¨&rµ‡íÿÀK_vÛ·=øàƒßW«Õã8ëÕµ…3]­VÙ»w/ Ë´:ašÙÏtf£0*\mâ…Ë¡*ÿ\þ=RÙþgRžAˆNÚ$íMvÕn¥=¿Dur’v»M",V+lR#²Zü/üå¿ý=o¼{ÖgiC¾·ÂŠnOn s; ‘Y«J¨e"²ÿ³ëÖÃt$YŸÑ¼;'SÖåAR?¥àtK'ZõJÎíËí|âlš4²&‹åMÆœ'¨3fîòµ‰µº›ÅÿCH¦úe§^(Èî=ïþ›?ý'Ÿþâ}s³‚o>òEn½í¥¬Ä`DíÕ0~U³´Î`×d ëÕñUÀrØáú—ÜÌ©óó„aˆ’AÆ‚ž ­C’V˜ÜþeÉ*“!ºåi–afh'Ù °Nà„Ä ‡/n³xþ$û\ÏêJ›ª?AÛXÎ\h¾ñÑ'.¼ýî—Î}r R”ïú³O~òî'Ÿ|k“BË[kÍ;ßù}XÛ î·ÉY®;T#‰l°ƒ}âI}G…øžÆ HmqÎ GTŽ3¯|-qÌîƒ72³çz–šm|? J‹på, ZLJ•&x”$¶æä¾ý×ýÊU»wJ"ÕÆ–˜W¯}ï7Ƥ¥QCq=þ`9Xªl±vðóùçXz™øû¥Ï/\öåË Ó8ç\ŽF•¢Þ¯—…–íªýMÙã°Š Ûôs4.×ÍÍÏ'I’öbk-a¸æê^ùcïÞ½•¹¹9S«ÕhµZÌÌÌ„ÃæÇ G¹?|Ü¿I™ÿºNhÞ;—WÄqœ±Bkèt:T*•ÕÍÚÂ~£•ëË9—nŒÙãĕˊË×þç×{½ÿù2bÛ?f×ÝßÑÇZ=ÈÐöØäaël#ko½µ<ˆtp;’QõwÝu×ïß¿ÿX»Ý.öš4ØM÷¢V«ÅÜ܇"I’‚° R´5 Âï I’B¡ üˆ¢¨øØ# Ãâÿü‘¿–£].\(œ ²½0ÆP­V9þü-ŸýìÃ?½ §¯Ï•üÚÊ{y~ù5æˆCµÉ Ÿ`Øž?ì¹1äÀ.O s i);¼eûZ¶Ëƒž”Ääõ'FõH¿Ž{÷~êÞ{ïý”µ–ÕÕU{ì1&''‹ùV«¥z°q3??Ot:<Ïcbb‚}ûöô/ʾĨGOt I+Ï”bee…V«EEÿ¬‚¯|å+?ué#a…5æýøÀRç¨T*DQÄÁƒ¹ãŽ;²ÞWC†Ô'¦ðNù}Êý«ìñŸ^{÷½¯–y8Êöä>ä Ê¨\¹ lÏsÝétŠG«Õ¢ÕjÑn·‹GÙž—?£¬Ö0NLõBíãÏË[º\«·÷ìÚM çPq lÚÃP©ú¤M Ø”É3‰£4û†@ ›å/ópXɱˆ!› ³ª`046DÈ*J \ì‚ ˜tYPSãÚqåk¬ÄÅQ§Íd­Jsi‘É©FJI?ä¾öÿ,]Yä½L†.fÏeiïœÜL¥K¡ZŸ@(“¤T«/ùÌÔ'P⤃±©ñ9zô(QÔ1µzuSMÂeY`ë@`zzó¬_wî;úJöF8-å× '3'ui»& [Ö˜² ¼43‡ÂG O׿æ‹ç=k*¯µ¶ X¬K2Ä¡éÎ/) SpJK´ ¤I¬4¯„”˜ÔÝš^âíx¾8÷†×ßû?þñ4±FF™ó†a!›çU{¯ÛÇüògÏž%Œ£´·N¦c/´—:IfÐØt™æËÌíy¼Ö«îÊ…h'™IBˆáìsOQ«Uh·:¨£‚&4xµ€N'¤Þ˜âK?ñ#GnºñO_qhâÃc›t8aiS&ïô¶åq¦4æX‘õ©õÎ ‘S2;[š £çR9jÙׯ•«è¯Pè–ü§åƒ—Jýfì¶9ër®§›ë¤»!—+‹ÂžL¢Îõ&£†ésö ×Uh­<÷Æ÷~ïO?øÅϾUÁ7ý"/»í%¨Ê,Æ$]‹©Å«,_8Á®½{0±‡_›$Ž`ÿCœ>{ž$j‘2™8dA€&zZ4z*J8‘r€ôPEÕU1(!ÑBà„!–Õ‹çÙµ÷0¡¥+„FpòÌÅ·=ðÄ™7ÞuëžÏnÞu2oÿìg?ûÆgžy¦°­V‹‰‰ Þýîw“$‚ ñiöì­‹$v•û?ö,‘ÝK¢ÛÄÊR‘ x.@aq:ÁY›jÚŽì­­~ÿlÿu{˜šÝÍjÛTj)x­Ò°ÃO£Ï÷0Æ,ìÞðׯ¶©8޼(ä#»nš¬LÀil{²ËTSÊ\¤kæ¢sHÙ_ Û+Ç*ûtt_L‡¼Ì–}Å÷}*• A019I½^/²E)…$Ïz™…AY¢~>Š”"ÿŽ™+gYjµZOÖÕs°¹ðܾk>ï•·RJçû~‘ ð@VG=Fe°‡¡LåßsÌr&¶Z­HŠRŠjµJ»ÝƳ\«ÕÎoòJUiJ9sšRRYŒ3=}Ê££Ð´õþ¶l‡e´¯/Ò¨wŒÞ¬­¬®–À¼Zçàž½³rÛm·ý‡\v&GM’$Á÷ýM¹é¦›h4…CT¶9¿ÅFÍrÆ>ÏðçNWÿþÇ1§OŸ& SÝòYÌmo»Ý¦Ñhð‰O|âO/™}˜?¢oîßÓ•R#Ñõ*¹63¯ÖKªl¹³U²£ÃzàG÷86¼ î_wë\ãU ë8°÷wÞyçgSò%xì±ÇŠ1ÃÉÉI‚ ŽcÎ;G­V£Ùl¢µfrr’;vŒ5žÃÐöA¬èƒîqÎ󱺺Z Ía"¥”_úÒ—Þ‰óëýüàEæ›ERJöïßÏí·ßN¥RIIñ<¹¹9¢h…cÇŽqñâÅbŽxž‡Öºður?,÷—‡ù£ªpÊ[o½µÐó¥èU«Õþê³ÿ~çwž|¡ì›ÃöµöõŒ?(¯jéG[ûǵÿçAï´O÷ÛÌþŠ‘kî†êŠ®Ôñ’sxº¡CHFE–X HÙkšÎûëY„4¡¤AIƒõÖÈŒÉL!zZÈ¡òû“Øi 0>*…ˆ*ŠU¡ê &+;˜©ïœ?¿üòkn‘2h·/ÖæçOpúìQΞ;Éù³«tšBȬ¿4ïMêý¹Û‹KÆtØû³ož±„ "-pJá”"pššqø^ 6é–¶ÇVÔhª€¿BRb%èÄ‚Ø:°qg÷Ιæf¯T8ƒ‰Mû%‰#$†TÙ×"…ÃYð<….íû`¨ÒÿɃK­´0haP¸â³„p©¤µ§VZÐ#¬4tLáC"®) ½XcŒHe®RmÀt™e„JNƒu©E©eõ<)»‰(‰@ ƒ)¸$q(Aª×—)Ëåb–ÃÞÓÝô%RhDÞl~w¿îUÿb÷®Ù‡±žB8ƒu ­ö*ZZ–/0UÓÜxh/¾@„!. S&Ó¿•™ OÞó%…C` ;Ñ?ލì‘Ý_(<$§|á£A **¡®Z4Ï?‰½ð4ªu† éPõFh¬_¡]Ÿd¡:Åñf°ï£Ÿ}òǽvm¢¤CHIœ$­HœÍ*lr_ú…Ù¢v¹ÝÅQ@åLà¾Àônƒf•u`ËÉÉI8@Þšg¯NŸ>ýÊknï?&—––‚v»]d¹VWWYZZ™½ßHfXæª?ã^f2%–¼(Šò÷›Z­m~o•ìeG^oÞ¯÷û Àw#ˆÇ5D÷ÚÑ•"<7Ʊ͛Y³/Œsëž{îùÑÉÉÉ0ïIÓZAÑc»¸¸È®]»Ø·o_Q9†a‘x+W¿33螌;ÞùEõz³gÏ}aeGÏóŠ÷|ó›ßüëŸyìØŒåfv³Ü{;ˆa{#ûüfû¿¡m}È[*ø¾Y‡—áå‹™’7Pu3ìúÇõ—Ö«¸Ú™Ý»?þÚ×¾ö žçÑn·9zôhÁ­!¥$‚ @Jɹsçð<¯Ðp ‚€½{÷,óÎyf6ꇎªŒÊ}!DJКVl©¿üË¿Ü,ªûþ_ù•_‘å>ÛJ¥ÂÎ;yÙË^Vœ§ÓaÏž=H$<ö«««ø¾ßsÝ›]k@ñYÖZ<Ï#Îø”RÊq~ßX‚h}›9̧ÙHдDqTî …uu÷¡C}å+_ù•¼÷õ[ßú•J…$I5psf_€ùùù‚…Ø9Çôô4ssskXÇû–õîèÞ<±aŒ¡ÓéŠy ¤”ò¿ô¥/ýäF®Ù~ò7~ã7´çy…o °sçNî¹çÚívqëõ:AðÔÓOqìØ±‚¾ŸUyÔ|åWäטn¥R)ÐÜÜÊ™œ“$abb¢°oÙßÿÆ ·ÜþìÕä‹_†Ù…M´£öÒAšõ×ÝÝõ¥‚U0Ë c]’yú„C A½ZE¸^ ¸5N¸°å¾”òsýï«z Yguu•HB'ðQÓ{p•݈Ú^f÷¿„Dií¼mˆÐ;ñÌcßwÍï½’‡¶e-$±E M6±.+(MÔ’e&‘EOaúšBеŒ‚y¶ëp&Ó’SÐ Ws£^Â…ê‘Q0®‡ey³ezã”®¥ˆIZõàœÁ‘VYà ¤5Bˆkˆî‹-:014"Ød³/%hy!Z‘¼îu¯ûÑÉÉÉ-5O!‰Ð&DÙí"–/žáàÞÜxø$µŠÆ%¦‹´H!, ¡JYņ:ë¡^‹ØöV@åH!(‡ˆ¤C#P\Suø+.#㡬ë:5*:¦3ÿAó,5ÛI{šu•Ý×ÁyU¬H+œR4<íÞHÒxàøK…Ô¾–H#¢Ul{iBi ´GGø<öôÙ¿ñõçVoË[êtîxêüµ/á³Ø(BƒF¢#Åû¾íÛñO*5ªDâ4;v×rŠ?ûÓÇÑz‰© |ƒ DH2ÞêË!m·ë]Ú”©]( í¼ì¡ÐN!Iðt‚£ƒU鬯0³ó s7†>RWÀ6Ñîs6{ Sj*@¸ÊÊÌÔžŸ»j7Í!h©p)ÿ Ö œD Jºà’ô÷5s«¯²õRʘ!ºƒ¤Ž®º›;VûûºzÝÌq¤Ùäö Ž£›×¯ãÕétXZZ*²iËËËDQDµZåàÁƒEÆiaaÕÕU¾þõ¯ÿˆmF7\ó}¯ÐáÜÕj•F£QôÔäz¶ã³Ã²æ£2éý=ëeå:”ÔÄ÷ý […š­¼ãÌ­çŽó™ƒ ç\䜳×&ç‹ïUÑ_V¿U7£æè€5rUîÒ3Óõ§^óš×¼?g7-gÔs}Ûv»Í‘#GرcQmXG|3=\¹Ög޼Xk9sæ ÖZràœ¹µÑhÐétRòè£þ‹‡ŸíÜ=Ô·vd2r#ÁÂfÝ2š;Lbc+P çFËd +kÜ'ÉfÆj˜2Eßa^6k×t×]w=œÏÙ'Ÿ|’ Š=~bb¢`º]XX(£‰ìر£``Î×AŽP®‡žƒ°õëÖ纩ùëYåCå‹_üâåÀûþOüê¯þªŸsšäý¾333¼æ5¯)¾#¯ ™™åØÑ£<ùä“=×Õoo7“XŠïÏ+â8.üêµÎÇ~nnÏó fgß÷?pÃ-/újß+û÷Ë~ÆûqÒ­Fu¯•._¶;Ï’ËSb/Òbm\B®R¶¯Š¤,€Ù3jd £ž/ÿîL‡jEàùúó̱“,4ªv€å°®_ÏÄôN]\æ¹çžãÄsßâ¹ãOMõ+ù¯¯¹¼WæˆVVÞÚiv¨úUvÍîdçîÝD&¡ãÂ-q¢…3JãdyãQ‰RŠd1g,q˜ °ÔªÁ™­X{kƒ‰Á=º—þè2嬢BfÊnÖ@&k”éwv„“×ÝQ|;4©¸dÌ8AìF>gœdÑÕrÜtã¡_»åæ›G ƒ&Aºmcâæ2 gP"á%7`ÂWh‘t«.„MÙ3ó1)(ªÓ½¶èöê¦"ÀìçÂ@ HÒžÁ¸Å„'é,#Z:ƒm^ÀÅÒåMBe†UãÑRõÊ'þòK¿|"¤1èZ«ÂáÛ$Å.R"€”ÿÀš”‘[’ö£²‡—>r‡-gßÞ@/Ú ÷޲íåx”KèÑÖÛƒ¢d•kë9¹…rDÞ‹»ENïz ¬«ß«­FïzÏ{~fb¢ÆìÔGŸü:Ñêáa¤O£^ÁKÚ4h‘,G„ øI°H Á«V‘Z!”DI‡ÀŒ5ÏFöXK/­¶Èâ@9¼pÙY@ C‚B5b‚G¾uò{?¶|ÓH_É,ßúÔѯ}ÏÇÿìO°Z¢t ëªø4xóëßÊ„0ékt²„N–˜Ú»%>õƒÝ…¦P²†S!‹K>/cÀOŠžy!Lú©Ú°D£ jÐ p R;¤†ÁÜžëhÌ&6^Š`&Ï,1×0ì¬5ñ’|kð­hÎNíúW{0%œCä•p™Ú@9ÙWÞÏœt…†Æ¡”@)–é£\>?Îc\®‹õ‚¯º?Ú"]½§sÝôgvä§qѧõÞ7è÷2óòòòrO¶Ë9GEìÚµ‹3gÎpöìYNœ8Áòò2Ÿÿüç¿7n¶êšÿ{™c§[­ÖI’Y°8ŽiµZ==jã:Ö£zxû_¥5ØzäçÁæK—ë›a¬ËãÌõq’BãôpeN›x¡÷p\;6ŸÅÞÈœç³6«zµwß}÷ÍÍÍÏ÷¤œ©4×Á\]]ennŽŒ•ÜÝȘzOYö&ëÁ¥V«qöìYœs´Z-|ß/삵–©©)Â0äÂ… w<øàÂý}aÃÅqû7‹ê–¿ûJÌ­qz·’mu³m-/Dgwßõ×ÿÁwÞùÈêê*arâĉ‚é¼<Ï£(¢Ùl{zEìÙ³‡jµZ £XÁ7ŠÈ—5is„9ïÎÑÐ(аÖÖ¿ò•¯üÓQ×è)ïŸýê¯þjE)EÇ:\©Txë[ß ¤"333$IÂîÝ»9wî<ò¾ï=ùÃúÿÇáN诊ËýéÜŽÝpà kT+víÚÕCÐäûþÿÜ}øÐSWû¼ÄA0ÌŸÜj°½ú×ÝÍ9óå-㉔Čàûi2^r>‘ÉÆ$ÂIlâN¢¥‡t@Ö9¨}dÓAEÕF‰ˆ°Ó$^m¡¥buɶ4­v•Úäõ4vßÎŦe©c0ºJ0áñ{¿ÿ¡Ÿn­†ÿ‡3T¯¹·—Ëkn¿ciéÜî¼Í V'a¥ÕÆ©.bQ~t+Æx@‘ý2ÆýnÆ:´`œÀ‰t>JëN œIµu…ÃaPJ°Ú\LË€ff–/eí•ËHrÒ‹t³³™Þ£À–æýfKúº¿gˆn?ùéZGŠé I¢(Á$ŽÄ:‚jíÚü|­Äò&˜;fÃút‡!Xƒµž×/÷U²œ™dÏé«y«ÕàÌßòÆÿUkß áО$1JZ”Ih-ž£³r‘Ãûw²×qܤV pIŒ.éçìÅÜo-A÷¨äû¡L"ï±-eŠ.H‹GLE&œ=ñ$žYdiñ"“µÝ8WG“DB¯1Jð¥¾ñOÿê[Íw­1tVB¢ £T‹4 mA>)•%<Œ‰×ΉÎÔTvÍã>úß_žGÃæly~]jâgº«%–{—²%ghL?»òV”*jÏÉÏ'—¹ÊϵÜtÕª½û½ßñ³©I–'¾þ8RX¬I¥¼”3·˜¨(æŸ{šºhQu‘˜ˆC×߀) ‹M<5TícòÇÀ÷¦^/žç¥÷Â&ãÙÑÊ<Ò…øRàuÚTyðëOÿà3ç¢Ãƒ./ž8zôûÿèO?Iˆ¤&”U]ç-ïþBiH*¡^„‰E¤_å#û8•Ú^çÓIž®粊$R(¤P¨Ì;/®E‚T"íé—¢{½ŠñE¢+ ‡dv×^¦vÌÑI,F(õ©_Z ÙÕcÚ­Mr]àñ Ãçõz8ŽGª.l%Šy©¶r3~Çó…Ú®‡â÷Ï™š“{Ý7þîÍ7ßüx£Ñ Ùlrüøq<Ï#I’"À¢­5+++=[©T˜šš*8Êc5®\Ú8ìÅy@”ŸOO‹•µ“>øà?ryÿä·~ë·ùµäZÀ•J…W¼âÔjµ" ˜››ã̹3\¸pf³‰ïûÔj5Œ1´ÛíždË(½æõæW®K,„`ïÞ½=‰#kÓ×ÌÌLñyÕjàÃs7Þðð *S<ä~—« .Ù½”ä×‹í¸¬®…0B·#$‘xµ‰Ò%Ak‡ ÕjÓju²Þœî‚ÉD´ c°Ñ f',FX<騚·rwñ,t©Š­%OŸYáô²Ï»Y³|óLÄý_xøQ>÷WŸçÇÿ÷Ÿ¸ã§þg~÷øÙãw$ïq$û!¼ô^Ê‘,„ö/>þèWnH¢L±¼Ú¤©3 Ī‚SþÈyvÍ®ž³*XIÓçSÖån¾×‡Îõe…g"ÂVˆÄ±cºq ¥Ëë—±ëˆm$˜\º–¢½+ÍUªõ~P!L¬“¬D +äZî‹èpΩþ¹5°ì±)´qÞÓ†|ÛË_þÏ÷<ôØr³…Îì\·°I ÏÆ\<õ vOqóáƒøX¤Mð%£$[±èQ-ìDeÈ@¦RPdø…ÂI…Íl]þyRÄx$h|­œ¤³ø:NaHµVÁÚ/Ð8]Á«OrqÉù£ñ£mïøÀ¯väô;—£ V[‚ØTÀo`œÄf l‰‹ð(aÊìÝ` ӈݨ|Úz¬Ã—#Á8¬åeT’a\Ìõtr×ôd÷=Ê Ûq÷Ì«úPÕÎ;ßó¾ŸUATxúÑ/#Ûó´ÛMüZëJû®Etñ8Õðm!qT|Ù]{qÊÓ ]ïÜTˆ¢‡z܇"íÉ´RáT—ÜJ¹?Z%Hš(Òçy´­æ3_øêß⹕½ŽìêÞóO=øw>û‘t.¢Ú‹ÈÖ2fu‰·¿þnöÎî@Ä. ©{>­•yöïÜÇgþò–—«øÁ Æ b!µÀ4Ú!—±-k'Ó‡Ì*AÒ’ P:}è*¨P­ï`vv'à2AÈ?<Ëþ†aºb‘¤=ûFÈÈ«6~æªlR±\D¨¤@á ÅŽýN—Ëë0íá\É¡²ÇVUx¼Ë]«Ò–R6¥ç¡”K™•$ˆcNx– ‰Ó´Û힆íqÛaX¿ƒ–O&ç\Iî(}„QÄ /0þ<Ó^ÊÌç Ç­V‹$I¨5êø¾Ï§?ýiyä‘w¾áž×½óöÛo_ö²¦ågÙO–eÑ–=,Ù–(R"eŠ"ŸeIà“ ¤H-â‚$$ h€èîBÏÝÕÝ5dUVNwˆáœ³ß7nܸCfV¬Š]+WVÞ!n܈3콿½¿Ï÷•¾u]h«Œ1‡¥ðZÐ8…÷ƒõwš(z÷µË¯­\¾|NI’€°{í^{íµSX•瀣ǧ#RBˆ¹”“YyWÊæÈív»w€”Ÿ±Úœèg¿ QyÎÌ›CUºnA Iìîî"PšÍ&Â0„ïûw]xé•ræì ž‰¢Y Ì ,B†ÊW—ÀZ/ƒYgöp=ªPÿ²8%K g}?›Ý'Œú§ÇÆGV¹w ‘¼ÊàròqüXœ?Ê`XN‘Ö\¦ {ÖÂX)@Ìöq¢æ¥ý8ë£ÞJ;‰R9Ú²‘Ã. OIÊdkñêòú^ñ¾›b×öƒöÎw|ÇwüùW/¼ôy%T#Ñ&Ïü‡CH`{{'OžÄµk[xõâÅœÓÂ÷|DqRYn;m¬RÅý¨zåøúéÖ‹ÍÍM4›§0 à­´Ýo»žÞØõ9>ýôÓüõ¿þ[\xé›Xjµñê+W±¶¶–WŠÄqŒ =Ý(Šày^Šb‹ÒÔ'çÛK‚o/ë(;ªdÀ7&¢ƒ°s¹OoÞXÎ}‘ô›RéûæweŽOTõgUapþžü\oº„æ]<ðÏï¹çž¿úÍo~ó¾õÍM¼òÊ+X kåc@J!Žc ˆn'îðáÃØ:|ýÍËÎw$±¯ÄH¹?ÕÒ¸?j™À–Ñëõ,yÓl6ÁýøðO<ñé»O¼ïÊ <ì¿ë³ŸýìJ¯×s=Ç~¶ªüãÐZio>|×7ðÄOPhµZèõzÐÖ86j?AEsm4žÒÇ„(üŽWJÛÇÒç³òøãÇ»ÿ D›Í\YY1C(%`bkí/¼ó®›Í-ͧ©‰âñ 7MΑÀ‚óËìÈy3VìyÓs1¾†*=qÕî¾LP‰vû ¼•ûk(@J`¸xí:€-];‰gž~ Ì€`7,k°e0¥Î–•‹9MÙmÊå¨@’fËm!8†×ÁÃ𮇄¡õA ‹Ó{K8~ønœ=ôV{xþùg°ÝÛÆæ–†>v¯ ðÜ¿ø,|ñ++ˇ:ï[îtß÷Îü ÇŽÃÑ£Gm«Õêû¾o[­VÜétuW–:ËV3"¥`…Àe}‚ €A¯C2ã"36à.À¤y¶"E^ËÆ©µLD”¸pa2jëU\£ÂkŽ¡SŒ³ý?ݼ}!©9åʳµD¸ƒR’91zA+‰õYËñÊ`08ñüs¯,E½AûÕ /à…çžÄ>üî:w;Μ9ŠõõuXîÂ÷–ñÜ…W±ÙÐZYBl4Ôâ(î´@xL* €I‚”BÆpÚ#æØ@‰ m5š~€0새L»Ý}í@ó#ÏʉR K˜Güy‘o™²K›ô3,¹(3± Õ€´±ÛïcØ‹`I"Œpä¿üËõÏ™Ì#/–蔳ˆEg|šPUê3ïþVõ˜_—•xÎÚfZ *%"¦%Ùf}·iì±ÓÆ*(Î%‘OZ×k©Òñ`\)h<€b‚ç =zôOøÑü³=zêäd.Òñ"ªfÆ4Û4¸%Ìe¹­z¾ê:ÞìÄ'ÏÞý¥÷ôüÏýêgÿ×Õåe$ÃÂÚ”…ÓbwýU­Üsç„Ã-lnî@IÉí*RJëržãÉ!éß`²c*¼îH’Ü&í¿Mk@¼áÖ·Ñ9|É@£Ý=„0ŒI …0ÚùKˆ‹W{+¸öÒ5´šk¸výÞuö‰D`=‚ëô%¤'À‰€È,ÒuŠNò÷Ðî3qx€¯;kO:ãé¼×N#»Zä¸7-Ò#›ƒ|Ï÷þ'Ÿzú§5{xåɯâmïülc,u:ˆ}R Zd v^C³ ç7¡€ßêâðÉS^¿ÁÐþÆSäJ¤JÀ¦óJAÙ, „ #–Á$Ðë…®‡Z´ð«_xü»Ï?õÌwÓ®“I²øì¿ý´º Q¤”àêãý ºÝ6Œ¢å7Ð ·úxàáñAöˆbA(‚ôˆQb - dìp¶o§ûiš÷ì¥k€"Xrº» L>üæ9 cdû` ܵ£«†0¬!­Dß4Z½i‚)Δ P¹§• ÍF:æ$ˆ)Å Fúº’°‡Ö‚ÅÖÂYê4u »oþI(õ ”Mv"€ÖÆ¢˜áû>”R9û]±/,φñdft–èqù¹¢.ZªW–Ë4dMáNÛÐ鮯(Õ#‡Ñn?„×.¿†^¯‡^ &ŠxP$°³³ƒkWÖñâsÏÁ÷}H)…µ¶;"q`ælœ3žõSd?¾¯ÆœçŒµÎ÷}w]àåååxÿ©?¨2¢Ky@7?ÐÝK&yÑ,6G´Öh·ÛÐ=^¯‡Á`€_zÍ ÈW\«bάž¯Yzš³°ªѪûœªó̇©' Úí6ŒqˆÈÆÆn;y·ß~;z½§`(EG´.T*îÒøõâ1”´ŒèŽ¿7»_ãy?£ßC40 Ðét0 "w¾á.¬µ8{ö,Nœ8‚»ï¾Ì/^Ä‘C÷À÷W¢Ç1Z~¬MŠ—æ Mßë 䦆´ðë´`QGs¢Ü¢»ß³*³ÀVÉ,ÝÌïÛÞþöúö·¿ý¿}ö[_½k}}ÝW_űcÇ`­ÅÒÒL¸‹F£(UyÈöI„••ìt»è÷ûûc¥â(—®»Çò>ÝյʹZ-Xk]E•là™gžÁîkÿÞF^NÝ¥ìîÐKÏí#ùˆÛChÔ–ày677ñÔSOA6—\@ÊŽ ÂÀX À÷}°-ŒÀ¢KD ;¾Ž“¯ø°Ìð<GuÇ#äURJ9rıB·Äq "úÅÛÎÜù•›qÌe¾c%£,·^Œöµb KÔ<óOf'|÷æOÝJöºº ú}laÃÂó šm°õ¡`˜`YÀÝyFõ.e•ö˜rCiFÐ;úÛÀ‡±@‡ |(AÒlàà –}\¿ª±µmÒ…OÂ'‰Ð„èt–Ðì6Ð^X5 l"I"ÄÃ>ŒMÐT>´ †!¾+uVé€ÒÚÂh ¦Dš&1Ðì¦×ÈN d÷½ÍØFåCç‹p1 ÍžÏM!„Ê®]ƬèØß¦;šåk]tàó׋ñ뜿7M@d$_ÄŽÌaee+++èt:ðýÞó®÷àÞ{ïÅR÷Z^£‡èïnbùPÂ0 N\ÓO_˯^@¢-„ßF÷á7[@Ü_Å]U«BWËß»è`1;½Ù8ŒGÈèµµµË™¯W ;õõ<Ã" ×buõ6 ôwz0ƒ!ŽŸ<ƒ³'N@J‰îN”ãƒËb 9q-¼å÷›FH¶º‘‘ûTáÅÒbêüXäxeIJüÞyÁ1›ôïT+ÕBŒý-…[âxhc#>ô®½ƒ 9ŠŽ™×jº^¨ ŽxF«À4G|ÖcU§zsmÇ^üÝßóÇþü?|é'×8ä)F<Øu(ш= zÛ8vt½³gðÊ¥×`âJ4`Ù8jÔ´€‡ˆ 8ÍÒÑøW¼GÅ5|FdÇ$jÓ…#0”4e„aïÈŽ$&,:!æ¤àFáØ2Âê¤áçÏ¿ˆf«ƒ»ï¸ * hk`3]`Áî3§$Œ¬Ø{¢l?áA]žiR"óÈÀÒò-º±n¹t¶èßôޝjõÿðwýÑ¿{ýù¯ýŸÉŽÅË^Ãé3·Ã ¿Ý¢MxH°½ ˆî áC‚NŸ:‰çŸÆ¬§Yd÷@(°µ`Z´lCÃpÊkú¡Æî Æ¡–BÒ\Eô¶?…8T`+ÑTKˆcƒ.I´ô.–ZCì´oG£káËlS §C;z_ü½/^q¸ìZd†FÂC$xÊKg=6Ê¡·ykŒLõ_ÊËdaE¶b(ëaeé(> ›0„'6Ä8|¤‰®·…áp kûK‡~äff#­ùts"†' BI(!(§ NŠÁ’ Ò}v¬¢†YL0Œùèóª¢to5{Ý]‚xB0 H4)˲C}߬­9Ewy¯®"Ïí%k6 ñ•R"Žc69Šk­Ê³ÕJ¾ï^§“ÝF :ÚÉÚ¼ÿ¡Ñh <´W;Yˆa&õ¾F™Ó‘Œq¯’ Z›d„0²zÜN†cÁköS$î*;Ýcå¤$'²»‹hf’Å8ú™_Wi/j­Ñð³^»Ýο£;v l`Š¿³³ƒS¢ ¤Œ|QáÂ… è÷ûð¼%ôÂíva¢%iÏÍ^J·ÜµáJ¢’ì;ÄÃ!’$°úÙ•••ë™ÓØ9Y´öø–çI¹´4›™&ߵ˗óJŠ0 !šËcãbzriñàfÚc³‚¾òýYD¯²êý{C˜¦ï󘉧¡:‹’â0;ÙµLÆÍG‘÷H¹uuccœhœ9{îºë®½o J‘ïûy`ÁsÇUÕp-÷‚.šØOç¦ uÝoâŸøk¿üo~ñ§Û-ÍvƒAÏõë‘ïPÝ3§qÇwàòµux§{’˜Ú]]ªV tiþœÍªu„pûÈõë×qøø*vw"æyDýÂ0µk×ììì`éÈvv7áû>^yå$z€Nó}hµŽÁ®Ü~Á£®œù ËèfÕ™œÛ~ƒ˜ikØ"dTcˆ.Ýø@w—ÉA·?HvïƒþìñãÇÿ›8Žoß¼assÇŽ®awwÇRöaR®ZKY (hãü·ãÇãå—_%s‘s’sly¬åeBÙÁZ(åÃÀ!¡Ì„n·‹h°‰F£-Í®Ðk!î»j_(áâÛßþ6š÷ŸÀ©- Ã>° |ë[ß‚Ö*çàÐqˆFÓƒ§¼1RÉ O|äߣð]òªžìñ|ÜRŽL¯¬¬8(Š@p>¡E‚#GŽÀ 6Ðl6±Ç*øõS'OåfsÅö«´ÒÒµt)†!.Tða,ÐÅŒ@w^´µP ~ Ú œ¦_4âжÁ`Å7=@€1P8¶ÚÁk¯n@@BŠZ[Û, ´ ô;P~âS¹ÈˆrnŠ£¥b†G„X1öÜ×Z£MK0X[&ìx1¶wclíFè ·°´¼ ÑlC ‹†lŽD¾™+…„n¹x‘*ž¼‘'m§rÀjò1ö{åRÑLœyúl§E\¶Òᤠd`•“d–1wX¤¥Ì Ù^†hûàDÒ•]F¢K+ Ï€C'!š²‹+Ããh·Ûxùå—ðµ¯=‰+×¶Ñhv SýZÅ1\k²œé\ÐØóÙw=s J)vË%!ˆÀA[ha¹s”H£±$ Â-P[‚H!b†¡·Ðß]Ç`0€/øÙ÷½÷Ñ}{âV‚|š1µ I¢ §ÕoÔƒ„€V ,ÿä÷y¡ÑYFöÑW¯ °vÛíxç{Æo=öUÄ–>„M@ÆÂO‰±0¤ Òû9Ä”¦I¸Èoæö/B¾ÎNhCxNs·¡>6ÀëçÑ]^EÃ;ŒØBupuwÌM°°h¶;‡ ý8„·r Cƒó+_Æ÷ý‰ïÁ½çnC<ôÑ𬉲îp¥,aÒùª¬=Pé²£m+®!bÄÕ ÒñIÄ–öß7²/ /Á ‚¡¬B¢Ø0TàAªB°•`ëÃ* œk¦Ë4ñ1tçm¼ªeªê‹V¯%Ù [(hò@yt” Yâ&&×—ý©¿øã?þ7þç¿{¢ÙÇú3ßÀ¹#‚ô= ȇ¶Ëáx#‚Ùy Iã8Ð:öšX|œ¸ï<ùø—°Òébwwžç9„3le® aòÑe ¡sÿŠÑ‚à™´ã)]KµT€ 4$(ÀW„@­B/i£?0þ’Û‡éi0XPƒ-ðÊ…Mœ9v‡—ƒ¥AÐ8ŒßùÒ0X‚•»\O<‘ù-³bØq€‰ÕhŽ™|ßÇ®P² &B’$hzÊU 6:r[q‚v§ î a†¸ýD ‡z—0møÒ‡ ´ÖÿçÍ4¼˜€„ž°Öî~(¥†!§ìÓ JbRÂ’„ÐB1¬H2àˆ¥kSJ÷K“•ˆ ;æïLOÓ4G$$[ÐÖs=Š`ÂSd¼¼ê³t÷n¯¥?+y´EBJ´ÛmH¹!<€]6è¥/åÈd’$i6Äõ Ê)Êi¨Ò´Læ´½1Š"h¢ÝnÃo,£ÑÖ¸¾"Šc\ºt @æý³YŸ¬Ó C^™9öå~Af†ïAê<«,èÂwš†*ÍÚèíSÿªž’Q¸àisAd=`¢€úJ•R. `5<ÏC£Ñ€Ö/¼ðvvvðÜsÏb8 üܡͲa{)[<®ë‹T •ö'Ë1‡ºŠH`{{ZkÜ~û™ó;PÞ³‘RÊûÒ'‘“ ¥ìº)ÚO$÷.Œ@PŽä!Š"DÆæÚ|RzàŠŒâ"=¨UãlÖxŸ(N;<‹9× K$¥×uJ ;šObüó²û± #8ý:ˆ=½¯üw’öð6å>&XrbI’`{sAàôéÛpòä´‰÷5&²ñ&Æ*8Œ1È"Ø*½sË¥sŸÅøº—’ûéãê¦MO?úè£ÿÕÆµõ÷v¶NYkÑò}HNÉàšM 4Û‡ñÐCáë¿ÿäÄ^WùHdÚ¼â`’eU{©ÖÚiâŠ!%„Ç^; }/ß/´ÖDð<…­­4»~åW~úƒæç;ñ™D“^d÷š(îÖZ°pýì¨nrK4½—wÞhŸ×û^<Ÿ2ê”Nñ›Zâܹsÿøíoû_¾øÌ~ý:®]»†µµ5¨´ZO 3¡F@©„!°¶¶†ÞÖv®OK,FþÑ•+ù,ÝWA‚]e†µl5´ù\Î[ƒ`!rÂ6€áHŸtáñÇǹ3'¤ì½O>ù$š /׿^d^L{]±Â3æ›?~ÜUî)W™­±;Ü…:½„Ç—1عŽíímHßûÍsçÎýÚÍ6¾&H% Éß"ø•ù´BeÜ<%n”*;Êã³™œg8J¸Uí tW,Aó#@xh·»°F‚©£=´Z‡a™Až£û5Iº±›6„ÑcM†U¬ÊÕÁnÁË&,g›ªýê¤ Ö.«í ´•‡®0ØêïBÇ›WÃ|@ú¾n· Ñí"(¸ÒÏ*2žÑÆ£¼ ¸ÙÁ¼4uS›I<”öÐÚ)ôäv"è šŒ‚ óÌäîBL  I©JŽ>]2ÀìúpEz®Ãpˆ­­-ôÛ¸ví†ßlÀ÷ýœ€EcIbà§½$ù}æ)ÈW¾”‘êÈI䋈„ÕMtüeÇ0+,H04' e©R„#íwÖ1®­_$‹»î¸óüAçž§- A:‰Ð 'cɇ±¬ê¢kQK¢Ðƒl@‚GChm „’2÷}|© L³Ä,¶Ž,å  MhZÀjç„;bÆ{1bsšxfã9c5–Á™·'‡zb#RÉn_3p¥å` £-ÂÈ 6,ù‡ áö»îÀm§N@‘Œ…{÷]­µä’=JI0;Rk­k=‘…dàú´xoƼ¤Æ´rf*8”7si³¿|ôµ?ôÁý¥_þ7ÿöHXúy© F2ØE¸ïì ¬_º€«ë®48N b‚KªZ·ÇxJŽ­×{%óC€.ùFÖÖÀè!’Áš6Ù-šv ‡A3Oújí’›ý~§+$Ã-€€¯üîç±Ô  £ge·i³à‘£wP‰¡\JèuÌ‘”Ûƒªá¢¼Ï tç½…^Ýâ±³=ŸŒïüœjÚþèǾëïýÃçŸþÙZÆ ^Ɖ'ÐðDZù@°6BKo#ÉCàŽÝv ׯoÁó—4Ž{ÅUE¹=||Wa0$(s¤²Š*ÉÐå·‡¡¬†!†…e †ïÅhAÀçdl£yÅÓ¥ž¬Å7¾þ%¼ó·ák矀j7±;ØM™ùj3÷3éACÀ— ›ÎR)$Æ hu±rä( $ÖŽ5r½µ(ŠEQž)ËD¾«dG²ÁÕ] &“…6æô·˜ò]«„óÍ´Hk>%£Ÿ‰Éc2n óë•릿‘"¡iO_ÆÎÌìúS‹ ‡}ôû} ú;ÐZ#hÈ=tÈÃ`0pß#Í`c‰Â†ÌEQˆ1‚N§R®”—™Áš¡*ÊÀ­µ¸|ù2„½{ï½÷©ƒL'9ëœÀLŸ5s:¬µiö–æ:1³þ©‰ª~­R „ðaÒdŒcúÀ±?w~U‘›ådi<œ¹È.Rݰ˜²ðµ(¿>#Á±$¦ÌE5óøÅy_]†<»Ïu^à†¡CË’>¬µˆ½&X7f¼ývœ9sÊèïl‚$ïë:‘ÈÖÇè®rÏBV±r®Í*¿æ½#sæ4»×)ÜÄvìÌ=ÿúá‡þéÇ¿ñµ?Ÿ­ & „çØèU°Œ{ï½áðI—ì(¼.ªÒÞZÂÁäÙòå?C-9Ã~„Ý>|¯‰F£F£áªAJeçÝnž´PX†'-’¡“"oµZ°Ièh¢r,KИt-\^^ÆÒÒ’K6Vv ê"7Ô&Ø@Jþ$•‚g=¿3ò´˜s€°¬›:B¯×Ãc=††/¡“ÍfÓõñ‹ƒº’+¥BJ Àí «««ŽŒÔp®°³³ƒ8 ñôÓOcý…«œ;wî·ï¼óî_»ÇV‘œ3°”Ê+²ß’Ó6Ãir‚¨îÕ¯Z÷èÞŠö†8 „Æ· €L†[W2Òï h+a@8²v /üZª–’»bDnÆ¿IÉÏu ÚžŽ¬Ý†«×.AÀ²†”{4³/—yÎ&G&ßÉ»]WMè2O%XÖNQŒuŠǸ,Àн޺>% 8ù )$ý|DI!@BB¨Ñæ] ,Ç»âk«7¬^%"œÊÊŽ×á§ÕÙù€VsÏ16Lœ'¥dM¶Lî“9âÖBØ‚ŒÈBC ±A‡ŽtÉW¹|R’$ù" ¥Dœ˜œ¹ZJÊ{K²|ü¼Ë,sv¦DÒ؆}0j£Û>f i Ç’“†òZÒ•Ø«Ô »øÒ3°:êý‘~âW:'¤j©Óv×®áØ =í>¬ μ‘tÙÛʾةâ¸SÆM,ˆ.ѬaÙš‘ä†û| a-$›lú,æ W"Fv¡÷ÏpÅÌq\ÎäÌ’ÙøfªtHF-¢0šŠÇ‰§·U,Áœ•{zÿÄqTıK8é¬#HAhøždDá.Ê1jjAI‚Ù{=$qÊÊVnÈ ¦ÒÍœ!\uŒ`¡\‰ÒoÒà·å½ pÙØœ9n2;tôÔc÷=ðÐÿþÜùoü°H" &B€Énˆ P¸ÿžsHοŒÞ•Mt½a6Jh4ƒ6¢dv0;ïÿ"#óé\¶Eþ" €­'=r‰` 61VYWk=¦‘[ÕóXF|‹Žr^î ŒõmÍBÞ¦iþ•ûާ½/g“›Ò«èû~~=³¾kÏóàû~N䕱 feØYqžtÒ^³í™îo»ÝcÊÎηø]²çŸyæxž÷åûÑyáÀ #µ™‡Ãaž½M£r'ØŽãí¿÷"ÁFQ÷­X%ày^¥dÕýÏ®[ùgšÃZgÅÿféRV×i/ú3ïýe­éYZ™ÅÀqÞû§=6ê‘’9ƒy¶ffºäqçÏïîîN¬Ÿ{+Ú“éÿˆ|&ç’˜Vö=c½Ù3ÔVZÓn¥Íúþw¼ã;tèÐ3¢¾f³‰$•YRJakk ÇŽÉ'Ðét†!¢(ÊûeÃ0\8©°Hð[µž×Ë ÅÍH³±¹²²fFÇ9©£ÈX¡œßå½jÖÞõf°çlq=¶Ž-úù~Ó¾s^>%!GD· -ëûÞ÷?µ¼¼¼îy¶¶¶°½½=V}Wô©Š÷ÏZ‹C‡å~Þ"þÓ~î_6nŠëï"û^6µÖŽï¦ßGEh6›7äüŠýÿ™ÿÔívó}Fk‹Ž|¾t øGyä³7ó˜*ïOÅ1‘q Š-BEÄwÑõë cl¯¾aè.Š`Qëßþ_¬½.¥¸îàyÞLˆ{îZÆ3Ïì N|øí&Ž9…C‡¶põêˈb ¯A'#ÕE¥uÊ7PؤðœXðÌ3¦ »ƒ¥ a“5’ 3YúH•ò2Óåa5Ô”ÿIcýæe"Az”sÆ‚Œ“<ÊÞŠ ù1€«¢‡®¬ÑšÓŒ}[ü¾Æ ˜8t™)!kuÚŸMº4Ð'À×+J2#9I1cQ 7*}¿ü|ÒLwF~’¼  áÃZ M>„jâè‘SH Ã÷\ÍŠTúHú¾@…–á)@ÄÏ<}JÒ§oвH‡x+áÎQ Iäšàؤ½Õ†ÈIà Iž9ò?…@&C>%–qåYEÖ媹gçÚˆÅȨŠb5:Á³óteVKT"Tÿ…{“.Ž¥R4ÓšŠÈNûÿ8Y[<6Ÿ)—T•¡åÒoD±#:IKÍHû$¥”à$†ï‚Y£Ñðõ{ûÞ°‹Ž\Fªf@J§ß˜õž¥dX™ “cw—9YJ™Œj¿AG…ä×­Qk ¤â÷~à#á±_ÿÕ/éaÒ¢RX2P¤a㢭«xç½gÐßÙÆ‹¯ô‘˜BH$Q Ïó`xï(îØ<ÎÇê8kp6µÍ7{˜”LP!N— &ðT#Ý>% íû”²wFʨ4~‘Í:Çy=ßãUT¸`"i³Ÿ$QÑyõ<§M)…§„OÁŸI“Vy©÷ÜÒåųxK²¤‚û¿STð•aã–Lþâø®Ï÷þ‰Ÿù¹ø“}Ùoà©§ŸÅ‡n;•öµS ¾Ai‡‘ÄŒ†ïáôÉÛðôsÏBú‚—E¡ª±¡¿ÅŒhÓZçŽE«å‚–N§“÷P(¥°³³99VÃ.\ÀÕ«WŸø3æÏü˲Ñz’dU:Ó£L’¤P{;™­Ý¯óu#^ózŒ……Ø^ßBsi–¦ç^À_ïù¶ß¯YÜñª’ŠYP\¿ßïÖñÌÃOÞÿý?¤”ʵ=3çªÙlÂZÇjÿŽw¼ËËËÇÌAõ=\à~ÜÈq¼_dò Æ›)©1‹»`VÅÔ\§ª®Ý´äâ­VÎøÐCýƒãÇoø¾íím\½z­V+GßšÍf^m–]+ÏsÉôN§ƒn·›û«J©σþ,Rõ4í5åÇ«^W”|”Ræ~{¶Gxž‡k×®A)…8Žó ¾0 Ÿxï{ßû‹7ûxªRB)'šrïnÄúW³.¿îæEÇ~:‰õ„¯!d˜_ƒŒ‡8ÚIÐÓ¶†Íî2ZÍôïàüùoÁšíVóLºbF¢²_×ò(ƒ"G²fð¬§Â–zù•u0mé·(ýÀˆåv& ;9sJ¯÷J¯Ÿòäk,Ä„-¥h!*À¤‰s¢¸òŒ%ÆÑ+ËS2Ž¥‰Æ$«,1yŽ3 ÎzȲï‘f­ìxÿ#‰%D–à·ãȉ³²Ú á‘E<è’q†±z¨ =è£CO\xçÎù?~è‡~(¼1«"(ÓŽ/1;ÂřԅM¯ãɸ{ª)§£{@#`›Î51G¦ýÆ”Þ0’…#WK†0PIÔ2yV3gNéa1Û/ߪ~ž³&eÉ4åšÊÿgŒÿõ=QŸ*Ôzúó6ï›vßi´Ž¹Ç9½§)«¹à¼ÿëFlÚ<å2áPŠ*]Ðò¸]”y¹¶j;qÇ]sgûc¯½üâoµÚ0ÚBBBBC';h @’À#÷ŸÃ¿òuxa<€Á¾‘Ü| ÌÚœ®'‚Æ×—tý5¥J!b““팯 ßÙã#¤±ÕNKŠÝˆdíAËw9-ƒ*Ê«"„¢º Õ1–¿OiÝÚÃw©"ë¤rK3„õ ºµæ¢h~í£ßõ½?ósÿäg~(ãÙ/àöÛoGà  H@0`“Kð}ÄÑ6bjCƒ |…ãkGñòË/;iBx`èÜ $ŒY…#—Éó8î!‰ÉË/Æv>CÓüË‘';¶í²ó¡ŠÓg?’ž”HLÒ—h:…*=oÝ­ Øá$Xc…øžB«áýè~÷¹á­0¦Š«d¸þ[b,„t}úNœ $  ’R²è“SÕý8¸¼Ð„Ou‹Q½Ñ¥_¿DDl’&»W¯bww«««ŽI2òžˆ;ï¼ÇÏË}&¯Úõ¯MÓÊ+÷µ¾YÖùÙ{%í8hVw?™õE{°æe­³^šb­|¬¬”ìäÉ“X^^ÆòòrÞ[ ½^RJ„aˆ8Žó3Ïóðì³Ï~ýF¡¹$Zµ˜ÇõŽE¾Xû¸ }Ý~ŸƒŽÁE6ÔEP‰×ÑÙOftZ?î¬Lê¬c,êÀ¿Î"eŸ[ì1¬J…-"i°×ù¿‡ûw ê$´ø¾ûîû---]Ìúµ3.‹Œ¹~8âÈ‘#¸çž{Ü[ $~óÆë¬ÿ/úܢǙ†~,rœyókÖgdÍšgÖÚübçmú;ëÍ+"¸EäDtÊýõŽóV²w>úèß?vìØVX__Ç•+WœOAUƒˆÐjµr¶ó¬luu5í^ïß~¼½rUì糫¸"²Ÿâ:Òétr;+‡¿víZ~ݲ×cž¸ÿþû?s«Œ§òZSÜ?³¾Ürµáýs+šzc?®¹«¼ã/Ù dgó:Ðð©N"0÷!í.––ïÀõ0A$$Œhâ¾ß„¾ŽK¯¼Œ.Ù‰Á´H0B1ýb“ƒžf”ã¶;–?Ézù,X("²\±¡V!˜c¯+±£:påÒósY)iÉ.·\æI‚ŒÞž§ä'œ^Qù÷„ÜX™ý¶€”#ƒãkt_Kz¨<®šÓÁÊ‘3讃¶š#4—›’>®]éÁck $|¡`‹nàÙoü6šHþÇO}ê?‹o\†É:¤D¤TÖ@¬"ÓBƒ 0ÐÈÄã'CÒµ¯Rî);yªâò}´£+>>®¦üžö˜Wf(§v“ãv¯qŽØÓËçÒ}ÉqÝi¿§=F©\”Œ@±-ü¢E—䪈w»Ÿ4ÕçXmÊòׯeÄžÝx®v€²³bdòlî3!F=óeD·\/p7Û[r×µWï|à]ÿÕ“ßø÷ÿÒƒ…ŽûðCqB IÀöðà]§quý2®ö¢Táü`=ºv‚ËÁæ:íÎRU®® 0ZIn|м—±zÍàB%ˆ;ÞlÖöEÙ—g9©M“–EW¦|BZNûŽÙæ3|fn†¤ïq­êY6ä$ËÕJ8 !nÁéäu_ýðý“ÿ÷/|æÓ9àM<÷ì³8}r ŠdÐBƒ'hbÇÚ«ˆÂ(]!| Hk¡{Ût !=é¨m¼’Í}üï oµaåî…€'…£àæ4©D™ä˜ÓqŒ Öe¢I_ŒöÀº\•€¾•ƒÝ7ƒÌ㧘ùÉLvwwqñâE#T-Ëu:Üwß}8{ölžI˶J½ºˆî›æ¾AhÌÌl?ÎÀFÄEkAª6öªÞm"‰'päÈ‘œá3ëÇÐZÃó¼Ü¡·Ö"lmmáË_þòßû¥ÏþÛªÿ&¥Å _1˜à<¨^œnóø9öuF_Ï^’‰ŠìõµóúE‚ýi¥Gû½S7… æétÌNdæõøÕÙå×ÇVOœýW§OŸþ¿’$Éê…ð—lé/9÷~ÌšÏl›×nüòL”×"™Dr+PÜi¯aróÖZ°`àTÓömdDDTå€K)1ê+~. ºœ(ñÜè@üÍÝ¿Þ:væ®ûÿêînï<ܹX£)-¢¨Àóõˆe…µ#+¸ã®;ñÌÓÏÃêÙJó’*:½õ’J‰¸t¾ä¬+K‘¿_8©P¨W€Cƒ•ÛoX¸õ†2"[*ì‹$Äö3¶:Šó}ý»¿ôý%“¼ô‹8yüHxFÖ< k5fˆCÍ&âÐ"Ô Œü¦‡å•ÃNR'í‰ÍÛéRçÈ °„`•ûSîÖ˜Ô/4•þ!—ð(ÏŒou£J»q?mT Dcûšä½'Ž•áZ‚ïVV‘@ÁJÚZ„ƒ’Ád9"*c èt—ì£|wïVGL®'WQƯB©OêÐ]"™¯—B8ëb§Èz°Ó¾Ù1ýú±ùO3Yæ§=OtcÖ¸?ˆöæÈ3tOþéyÿd}}—/_†µÍfaƒ˗/c8"I(¥Ðëõî»ï>œ:u Ýnw¬_`²1Å}³ÑÝE?/ç¹_6͹áÏÊ߈ó«zM±;ûÝl6±¶¶†3gÎä×Ñ÷}„a!ƒÁ„þY†¬¯¯¿zåÊ•Oýÿûß¾÷]³¥Y¿KžÙÆdgŠHÁ[a<¾Þ™ÐiŽø›Ù›²—1¹‚œ5nÐ&bšvpFÊ<­m¢ê~ígþïá\oYSöæ}÷Ý÷µÖZ)•ËÖdkØ`0@’$¸ë®»°¶¶6Ù[dÜì…e¼ê5oÛòÇœ^8s½Çù—Ï¡Šj‰½\Ÿ½ìµ{Ùoå ‹G}ôǃ è¥| Rxž—ë>A£º™"È‘#Gެ˯7{s¦BÑl6EQÎÄœñŒxž‡(в ’§zè¡z+¡bŸvy~Ï’>«Y—߀½òMûä#·ý¥^÷ì;†zù,†Ã!zƒŒ‚cì¾úÖNžd ‚ ’¡‡+fêØ!œZ½ [W7ðÚÅW0ØÙÀÐ`H6`«!¬†€O$\ 0Aß{ó ú$J,§#3ÕCú;Ó§³TíèzVUo*\™“™x­Iu8§9#–Ö*¦6€Mc¬W”cÇÙ’MéÄDþÞñLbή)Ä$Ëý_¥:ƶp¬"›«µÙß©aÆ\)²Þ`“~®ck6`×£(ä±!h0‚ …•ÇpäÈø¾-- ÄRú =C 4#­iŸ!C†gwÑ€é}ñ+ŸÿO?ý~æÅ×cø[‘jLjЇ±€¶žv=»”C<„Nb^†%Š}8ÓÊô§=VÔ;ž¦ÿ:­ÿp¬‹ó‚ÑYŽ—Éz¼§‘Ä1'`”•ç6½W¥Äiy¦S—±tÏüN…9PFdm½ºJ«3"U˜ò<–•/†le⼸Üål³uí[ºðý÷¢3ˆ`bSèå¿u-8tò·ÎÝÿ®¿ùÌ·~ÿh ¢Ð Ê iC˜!Ž--á#¬á³[ëˆBÀ°…’ X¡0 °´ÔE2 ¡¤ÈäûžCë•c{e4ÎQú>~E5kºW1¿ì´ÀYÕè³÷É}Ùnÿk‚‰ê¹µm‡aZ‚„Ab JàÉ¥}ß¶•´«œf©J,ÚƒQV-5@0þql¡ã· íQh!•&†‘ãß×(“®¿³+R²dèø—.NǬP¤á›Ê!±Âë /Ú·ì<òš­ýî?õO~ù~þ¿ð}ƒ¯|ó9|øÑ%´Æ@z ˼Žf| aç,.‡- ­„’ ¾/pøÐ®^½ ÃŒB(ŠaÓÍú‡aŒAÛèòŽšz£ÎŸ‘<;ˆbªæœ(hÁŽZTÉæ”­L„Töã§­y;3v¼#h­ …˜p^ÔÇîæ54=šXN(R%çÿ¡ûû·Êø‘p}îÎÐ`XHE€|ßw­qªc d Í'Ö@ÙM!áÇC%Sn"é\qJu”µXÂÂ5Î5Í‹c„&†‡ó2e ©|1'[ðølA$@Æ‚¤øæì^oÚ'ûË;÷?ðÀ§|ß¿¾µµ•ëäfÙ¡~¿o}ë[ØØØ€çyÃI’ I’œ9÷ÁÄý÷ßµµ5çH¥½IJ)ø¾Ÿ÷aFQ”£bE–æi—y ¡ÅÅ“Ÿ×´Þ¶i½ÄåŸ"Ãnñ\ˬŒSoæ -´òyûBË%àU™¼L¶Jv$O“‡ì|2¶¹¬5û)3gÖâë²ãj­óû[/Žcôz=ôû}Xkáû>|ßÏÏE)uåñÇÿãŸþG?ó¹×¸,Þóìš¶º]pš0 ú»èt:ˆ¢(mqœ,2¦eõœ‡ÄTÏªŠ‰Yç^¢ ÁúÒ痯ØSPšSe'°*¯ê•G313;;-PÍ~ŠÇ/ÿžç¬—µ¡Ë,óÓZ8öƒÐ !Èó…ççcÐl6Çñyæå b¬ºÉÀÒÒÒ߸í¶Û¾œ¡*žça8B‘W¯xž‡xq£Ùl"I’¼â%ÛSËûWyXôþT9Ò{é+ßËØµoÍzmy¿-¯7 Ñ-îÙ﬷Țý= Ù]Å¥×[…"‹B‚úV¶÷¼ç=?qøðá~ǸpáBŽêy><σR Ngl_èt:¹Ænæ-Ú[¼¯§Îj•ßV%÷VÞ«²½±Û펱… !°½½ ¥Tî›5›Môûý×nÅÞÜ*Ÿ¿x­Ê׳è3÷õY?³¸3Ÿ¹ª/¸È¬^ô±Ë±Fè¾Ö\ûæÝoèO^ßéýüÆõëËNœ»…Íí-(éáp;À`ó2v¯½†ÃG£Ñ9†$‰Àᆀ#‡aue ÑÙ3¸zõ*®^½Š­Í 03~"°V#  ‘’…Že<lú[Lq†3vÑ(­¥ÏtEãähp»`}ZfNËŲÑ9C^AW4MíNE˜ŠÿÏutK³Ç]B¹G—óLþXª0Õ¦õÀÕ„8±ü9ù&M*¤iÕK7™k¬S º,sM.³ïΟAäP^k-¬vý‰‚óØoQ¸ž™N%®§¯íLÄvks¬5¬ðÀ0PÄ.9(Fd)–ã”Å›(YÅ{˪³$R –"€`k TÚZ$& ‡6Œó¨ãÏ]·À† -•§–V{8MHzSó´o%ó»kÓ§ùÏmooüNÔïu})!aÀPœ ‰5žÛOÁî½·ã™çž‡ï5óÖ &Bl ¤p=± —K° bø¥Ù™ŒÇŒêvîþ·3ì"=ÆUÅ9:U^ Œs©,¥µô€ ëzñˆá€8†—ì€T…ž,ø¤¡5ÒKUÓÇ(§;œÎ'»¸3Zå¸FBÀÒÞ~²ÖµpZítWoaSÝÕg¾ãúg¿öÙ_ø³¡Nðõoü>>ö¡Ga à ÆDðIáh|žÀê‘]F+ Iô·5ÂÐ@…„ËrÛ†.˜™ÖM…žjšÑ†7ô€°§ùP•P.À€B"èv!¥„Ö $†á½Þ|%¡µ± MüSûèw\¿•Ýb@›‚'©Í©˜®€€†‚dž»ÿ™º iSÄ ñ”j¶Œ[%©' XÁRA[Ã–Ü ‚P ¾ISÇo:™G÷èéßxç;ßù>þøã?ýúõ¶:¿ÃÁ¤\¹íÕ«WáG žç¡Ùj ‚¥‘Òe,NŸ>S§NA'vvvpõÊ:666`ŒqˆIÆ2EFÄŒåyÌQ›´Té(Wõ†V-.Ìffy5ªrv圀ʅ¬tüirœ–vÏZXgIªLËÆåï]šT o0Ê¢¯I†Ê*¥´Úh´Úh·–Ðjwáû- €Lpˆé÷>X›±l[†„ Ñ@õk6?øçÿó?{áY)'ãrl…~£áj¸%Ð ZH óÞŽ3SMT¸/¢ZcxÚxŸd±¶Søò8˜…PN£¾/ŸsY9›Ÿ³Þ3kNØ9YËrßÿD l¦ªÓɱù» :5jA¿¦Fƺu0wNؽB6ÛÑüÓ{˜E4<[—„HɨH!Iørüšù¾ÄØÊ<°@I8CÊK×¼ŽtSóVŽ~ëÌ™3ýÅóOý¸Ö­V ƒ(L™åÂ0„F„|—®¬£7LFN˜çåkk–0uû@Ú¡8…ÒãrT¹º j ˜ç¨W­EóöžyýÄózã—!å$B¯3iv\¥ % <i(é*ŒÎÈܦ´ÐâŸ3ïyk-( äËU.5 :ðÞ÷¾÷ǾòÅßøA3Øn¾ôÒKè?ü w›Hâ¡k3$ܽl4CÍF#_“3¢TVÞ8‘ŸÖ %ù¦U?ìeýܺAÖçï|j™ÿßó<4›M €X+¡°µµ•ûQ±+!Š¢‹<ðÀOßêãȵÜaLW8ŒMNLç㉂\B17ÈAo iUªû[T®Çc÷šUWå€FlÙ7më­p«gîýü»ýÎ'ë·~ó wzwk­Áœ Ûh IúL d€Ý«1„ð¡ÛmÐÒüF%hbèØBùÖ¬ °|äVŽÅ¹$Áææ6¶··azW¡µF’$¹DQb-b“êÞyþ„35V6ÂQið "ÊZ}'È’ÔìòDÃs>#&‘4Œ,³´L³@Ed™âÒë²ÿÙwÇ1bTef×{K+CÎ¥±’¶ôøF•ÎJÖ{buÖ“K€PPÒËK¾ˆKK§Ó’ ÊË*ó :L’@›"\B3@E®ôWï¢éùð<¸ $(aÁ0ÐqôóG®þçÿá'>ºõFŒyi tð’"D`3<!ÑMÅ`BÈ ¾ÒT¶ +ó@×ç2ÁíŸ}XdH.¥ó3•¾vÚפ„1±ðaYAzÒH×ûôtæÉÜΛ?VxЮ2K°5`6.µ AÉ-_¿,—V¿ýðû>øÏ¿ø¹÷) _}ü÷ñÑ÷? %}‡Ò[ #hêØ`ñ]ÐoÔx·vTÒm­…e EH®\ÁÒ‘³ðà`ìÆ4›M:táöÆLùšyN¶‹9FÓ—’nH©á^ªŠË%‰¦•óœ©hW9"Uý·‹dÖ‹é¼äÄTDXJG$T®šÒRJç|Ÿ")%ù¾À©Ž¤u%WDˆm_®€¡ ¤—¯A@›²s‹lÈËÂkª´›·øìí·ÿaoó=[ëÇO¡ÈÆÌB ßïãèѸãŽ;ðì‹—BŽ8Ø©óÄ[%iBòñ+»Ïåý5çÕXpþÏ:^6v,g½¹“Ç+WVíÑ<(ÈQOnƨoÉ-üé÷ÒZ£ÓéÀ§& ûHLyH+ÌÒÔ‘ÄÁ*"Ú6’$à‚I£ž=‚¨çSjïÿûô_~ì?·vƒ—^z ×ßv;N¼ I4§÷/ó7¡„ÔÆÊC£Ñ@ËJÄFØ­Ñʸ¾l¡ü=Ý¿Év¹ðû«öOÆl2·¬:'óÏ2ÿ9(¥¥ß[*‡æçfº¿]¹çž{þ¿õJÉ7­»~ÃáБ⦮Í$‘ùÄNÿÜðÞŽ? ÅÀ)r²L;•ÇZy§ßR:„«'N_úÎï>òÇ¿öï¿òW¾ý­'ÿŠ1ÉZCI„ÃÝ4H@±EËsý°É`×ýÞuxªfw ߆ßj@Äâ8†e‚C“–û-()ÑPi©lJJqÊ÷a­EbtN~¤µFb]Àk┨g%¶Ì “èÜQ˜pR $_ÊðøHžôYE!#ŽI¶Ëñ~ÉÉß°±Œ{±'2Äݯëò˜óÒõ "P ùÖÖŽÝ D&Yãûª,5Ó“Ê\7Ù¾×ËòÙ:aXCðÓû«a’D&ݰa âd-<Ò`áJ“… Äƒ‘ìô\MNÂ+†øáÿäOýÑ7¼Ô† ’!ÈôÀ؆ÖJÍ&`Úˆ¬é)<ö¥/ãžûïÅ o±ºvjn€;só¬pàʺ³Jç•¶4™÷~±¡T9P,þ({c±*Çd#´™³“ÌBä™\Žf@©Tªï˜éŽzR‚g2˜æ.ïÕye@’€/”—  f%ÛÐÆD ®o…ètƒÄ2„ß„™¢cœõfÕœ“ü™}ƒ”/!Á—ÁÚÆ­³öòê©ÛÿëAôs†cxd‘Ä‘K ê!#ܾ‚{ï:ƒ­Ý>:@G6‘°Í!ìWsl´²B,ÄbóoÊÿó·WðJTØóMìÍ])¿ß—à ‡YIH"Áù>™íû^×Ù’€ãñPÂý0¥Î¥¿ ÃM˜F [;͵Ûáy°h‚„7~Míøü9¨õ¢!¶¶¶`u%  ¾$xÒÍUÁºž?d÷è¼ë;þÕWç×þ´Œg/¼†öòHÙ‚'Èìhó.V>z½6¨£šˆ—:ð—Ô„e7–Úéºï#936–iþþ;+yìzí§'‹Ê­AŽÓq _J ú»‡Ûð%µ‘…£µÒùŸøØûÖoåà¶êúƉS ð…ÙF”@"ÒCÁÒQ0XJ,$Ò °럨$áœê×oíû ‰Í|q26]€oÎòeõV;!¯Ù²~ð£ëÎ3çþÕW¾ú;m{ãú§<Ïó„°Ú¤¦éå´?ÍšƒxÖlB5|´[KPAZŠœf+3D |+³,G6ѳ¾Ý,®Ó쯢Nž®bõäôË)P„©ˆ\‚SFv¬ +ß[^°¦–…eò.Ó^ŸÉ·¤Y~Í㌶¹Ò Ïó&Øå²Rè"Êš!âÙg¨r'‹Ò1äø÷&Œeœ“$IólAvŒ×l ,Ç`XN\ K%EŽHc`cNµï0Ûÿßm·ÝöÃô¿ï…7cœc€¬²€5¢(ÂòÒ2‚Ó§4ñòk¿öïÐ×>Ø[Îg9s³EÄç÷¨Viõ.Ê:ëóçÉ•¿Ë´×‹²š³Ž%Íìþ¿Yßu‘Þây×*¡Åƒþª×ÈtcÒ áç½è"“*E^Ù*0 Ø:o¿Vþ>Zk4KÐVãâ•kø½ß{2ÕUl!Ô L¬vŒ„(‚w DH’ö‚™8Œ·‚9}Ïg;[ßµ±þÚ§Pà£È”’$AÐT¸ãŽ;°±kA^œ'8§º:E|¦­sï‡ÕS÷ªÅæíiþ”m`3ŸÁŒõ½¹ýÅ•Å4ЭrzGû¸I‰~ØGœx¸~}„Š ! Ë9Â~cÊ —––0 ™8'’2ST¨Ý¢}ô£ýÛO<þÅØ^¿è?÷\ˆûï{¤l:Ÿ01Ð7 È¡†°"EËŠO¹¿ª­c$¶Rο³ö&¼§5»ª²bZµQ1P.+m$I‚8ŽaŒA£ÑÀ¥Ë[c(°IH)×Oœ8ñê‘S½(¥N«D! <ÂH ¤Óé@ú]hpè r’SÂØ $Ò+ÝëIîY¾«Ì/OJ~÷Íߤު'¶vöö>yöö?÷ì·¾ùžzêɾråÊwYÖ®&íûHi ¬ !¥‚a„†CPäç©dVAJÊܰ„DVÒEc½¢Æ2ØZ°1`kó‚Nkäó |ëz]RHð”Þ\Ç wL®Ö¦%AóÉ$dsn1«çÉf›;‹éçI.m­…ÈÊ·Óç[j˜™«³ÃˆÂ〠‹TÂÁ2È K¥aãzŒFÛ¼_¦“ÖZmSä\ Üg›—ˆ9´>+ ܧ'H8MZ¤H~ èõv¾Ùj5ÿ‡ÿèû¿÷³oî)C×Å[bõè*ÿÐëàâ@âñ§¾‰þnnxqrùV3£þfGØ•]~k€…dv$†aÒ¸¾ÙS逡(0õöK9锸VL%+{Qv# —¼ @‘ó+8ST¹I»ôßò+ÛݾãKw?øŽï~êë¿÷±/üîWÿŸlñI‡ÜÀ²åJ)0´Ö rH§ÙlÇšªGŽW¦ƒ–"$UèM2›eš¼n ÓDÆ6kÒŸ—¡ÛK_âı,›º¥¼˜ÒëQ¥%\ÌUõ8VeËŸŸ- ŠÔØû¬5cZ†AЄ1ÆÉ¨´O³Ä•ÖNIäiÜBb󬙉šÛj8¶î(ŠÇ1Ñ`øß{ï½ÿâýï½ðfkÙn‹­v‘$ =”öX2.<ó žÜ¸ˆÝpÏó°†0VB© G´çÝû©lÌ =Ÿy¯ßKi3æp¼ˆ9¥Õeù‹½Ÿÿþ6¯‘-æèOeŽõÕÔóÞϽ°iÕî½Aà¡ÙlA‰6âAQ!ìç"¹‘Û°³äÙgžÁÕ+\½¾«=4MDQ„„+ÏùN6]¯ç9çeä!Ó*·õ‘¹±v@˜›ÙË÷ÜsÏ_üÚW~÷WZA m2„”qðLH¬ÓŠXë|¸¶˜éÍ „æ·6ì}}ÙËú1Ï´Ön\ö7Çõ XX£!„ÐBˆ}P&Ù$dFpéA¤•a:E®]ë¹1-x^q’@fLê.*-œ\˜Váã'(©Ðn·Zg(×O–àZLwÌÞóž÷üí¯|ásßßôÛê¹çžÃ=wÝ…åN -ÏË}ÁŒ ¿ÕLbkrO)«4©\—À≢iI”ƒ¼Þ{¦UT}ëííëŽaØG³Ñ€MB(¥6î½ûÎ[ÍÍ÷/ŒXÖs~­á ÊåI³õHk¤åÄ>´M9h|M¤$ËþUv^®23]—À)póò^üIá½ýÝüúÛßýȯŸ?ÿô™óO>õý/^üÓ6Öï&’2Í $1V¾ï£áH™Âõl“ö€ª´7"%/JÙætVºë7c¬‚GþLAn=¡Yè Åì;/£Z̺ï'е"É3ÅcšÇI¬8m’7lÇxİTÚZÐ Í~ÏÊ)…ɤœ¥½¾`F…i`,á ‘f¹GßUùŽLŒ5‰(EðXÀD |°H†Xk6”RÿúøÚê?þÎ?ú;o¥ñœô·à/Itƒc%xúü«¸|1Áz¤!e¾oÐ`8ÑP Ép>í{Cuï7rtåõxŸaÑ"’'Õ™ ñ9(‡bá¤Ae ‘U&uW"clf·Áö6CxÉüÀƒ"À‚*“o³wCEBùd­j(øí.¢aëëëxê… úNý:|èÄB'ÖÉV‘…±i"&×aµcä|’z‹B9Yf ÈôC‰v»F3€ð„´5¤;üC§?wîž~ô…çÎÿU_ð! CXåÇá`ˆ$$È@A‡ dFF“"ò6gUtLð¢ ã½H¢j¢ÄÐÝ8 ¢“kGÊÓH”’ a¡-C :Ž®ô|êCt›>Hy€òÐÐ]>‚¤·‹­Í¶¯ïàÚå«`Ñ@d†ðmP¨aÓÒ‘&ôliA±˜ßz1‹G F*Ϩ>4È÷ph© Ï@& ßÔ³fdÁÚ_{ää—>ÿùÏ}_K*¼ôêËxäí÷¤÷(°ŽÄt%8‚%%Ð ‚„†o4šÖåÓwäa—çÔÉEëQ ê$OC[QŒ(ìƒãmŸ “ ¢ŸûäÇÞ¹1£ëç¸|R NXAÌ@[D‚`D ÃH`³ßÇn_@4Ú'b|e Òý³?Ûo¢Ùë$›ñòfÅ©Î7Ø%aŒ5ëò[ÂÞö¶{/¼ím÷þØúå«?ñÌ3ϼï•W^ùØîîî™ùáf£Ñ Ž/r–™s–RG*• ¤¢+¥„Ñ£ fR[T¤ê<ü3%ÓÏÙs ñL7žãH0äLG¢èhTÊËÌ t³÷g¥Ü¦Ô£+5W°Ó2‚å>¬ÌÉ(£¿ÙcY*3&t<‰»»»‘îäh<Ò\k ¤€žÙ¯ú¾ÿ««G>ÿ½ë•·¤ÚhÐN#ÄqŒ—^|/¿¸Á«‚UGŠ–„ùwãÛ=‘QMª¥q»wæf±¯sz$¸·@@ •ïMï1ÞCë²y$!ûÍÂS&텬̟1!$¡Ýj¡ ýíëûù Ri2p0à⫯à…^@„eø~+Õ]%ÄQ O5!”C …ʤd ÂeD ÎʺhO߱Ȇ­”ÂN/B¿ß±ÁR«¥ju¡yvüܹ¾~íÒwî\¿öÏc(¥¡?`0‘h†b0#í1º tE³ã Yˆ3ƒìç ÓÉŒH’ˆÐl6Ðð$˜%‚ 8P ëy:„­kWÜqŒAwi »[[îîàâÅu\Ýêa0ˆ šƒÈí«,ÁÆŽ$e:J¦Ùß¹*!W\ǸrTI½^/r½T›$PªSO˜’}ð#ù‘Çûí?Ñð=yþüyÜ}ò(š‡n«™&ûaˆkר¦/i æ®»Ç¿–'3¬:Y3ó³fõïÈ{D™¾ ê )wO:õãõH]·Ì7µdó˜Ck X†”><%ѱ~m€ë×# ¢ÈHl&ãTY¢X ¶NZÊy‡Nk-ýîw=ÐË`飵t±1xñµ!ž}iˆÀ?m}Äb¡ÛwN¾î€‰ (™ Î*a©z}YG·,åQ||ô‹Ëìk“˜ˆZ0h-É)¤®{;™=¿*ç`Ähެ<°"`¥…Ž/³¤5y‰”;U‚‘„އèï$€i£ÝFƒ=¡4‰a àµ;ˆ¢/^Ä•K[m~³á Fœ—gC°qD;(%–“cÀp©5H3»_8Ë6—Ç+¥?GW–Ñï÷õw!Ace©Ftç™h‡÷>ðî?÷µ¯~ù±a¸Óöý&´ö1„0Ö­³&ѤtUOÅ@7‹sÓÞã½!ª“|ñëëdb^¢L‚µc)w}î&4ÐÂÀˆ¦«k4p€]ô‡‘ߤ®`á#Jll÷qñÒu\¿a7L`EkÊs< ’ÎÑe$wFž°¢z SäE<éÈo[ÄqÑô`-Ðl¶!;K@8š´öѯ¼çýùå/üæoü±åVÏ_ÛÅ;άb'h4š0¢ ×lì$èx&'!|pw®™"tÒF tç§‘yf^yìyžýùe-XçŸME„ ÑñÙOÿ‰ïùèsõ@Iéd¦’ÈÝg¸d±b‚! ´ËðÚKè'^X¿ˆ ·¡!ô°WX'ûybË%ŠÝø!NõŒæ ·ûàÈÝSbFd†Ø½ Ûn¢ÛíÂHä>{è¾EíÎ;ï|åÎ;ïü €Ï\¾xI^»víÔÎÖÖÝ;;;wíìì<Øëõîo(:MD·1sàäm² —rö1çHV{½ÅæüâÏ|déʃ÷ŸJþ W«õ’/^Ä‹¯l€H9„œ÷g=eÖ˜‰­j¼-Ên<¯Äy:":ûxݨç–n Zè{MCOyŽ£>·ôr˜©s0Ó3é‹\»¼·=g½Ëæ–c%·–ó>À­­-7xiiéµ=å_¤$²$wwwqñâe\ºt I£Ùèb˜Ê‡e×J¥-DNkÑØx<³Í”V‹dÜ{»¾e¢”8¯ÌÑØÝ݉Z^h¡{Ú:üø¹sçþ?/?ûä:q‹0 AÔ€IbS¦Xš0Éæ›?•U o¶'š–’!™I’ÀܼYZꤲw¸ÖRþ"3ÿà`0hfL/¿ü2vwb\¹r°A~.I’Ào´h›öÂW³,sÅúH{ÐÎæ™I僊lº[[[ðüTº/¨É¨ªì}ï{ßÿô­o|ýÃKgΟ?wœù`^°»;ÄÕ«1¤\ªPÐØ›à¼ÜÁ¾hò¶òqr,ÓÃaŽ#ìž>}úïÔ#ÄÝ>¢´çÝs÷É’“ ív»xmc¯]½‚«;=X+!TŠþÚb\1R?qÿ¼ÿY ›2ƒ wžÃ8Âúú:¢nFB¼>c¬t_';~ò„9~òÄË^ð¹ìñç_¸°4 nÛÞÞ>¼³³s" £“q’œ´Ç,Û5’ÞšµvÕ23¸éèÎ ³=ZxiIo&Ù`3–b÷ŠlLë󭘙}›çèÏˈϕŸÑ²Òå $ŠzºÌ “žk" ŸSÈøå,‘B”Ýü'ãkâ<±àTRL `›„Ø”Rninذ!„x¾Ý ¾Ýív_[YY¹üÈ»¼~3Q¶ê_<ñä«._¾œ„þ1!(ŠÕhxA"M°»lº@ÃÀ±6TQºÿùXM_CãcAN<_JŽÈô˜œ¾† ¯gr+°˜vüô91Í·M- ¾^ÃBŠìùâXÎÁRYzަ]ƒ|x§¯÷³Ê²Òó¥Ä¨ªðò‹×lúû§\ƒl¦ò,"ý“×ÀM“ü”?Ã3C‚´$"ʘMÚ‘ëÀ¤”q# ÃëgÏÞ¶¹—q)¤GqšKW¯'—Ö¯#ÒRujPÈ=×II2ä‰> †È‘(b"°ٔő=€xÄA@•k HùZš&} ÄQ¾ïÃó|Ä}ƒhЯ!¨íè™;þΰ¿ûñW_}õ»zý‰u¤‹$%4ØhÈ<¢Ç-ÇÀ `åld3£Ä=tPV±P¢iê»mE޽–¬K¤[X XHh´~S§¹»[^=ùËÿñþàðóŸùŸ1Œ•ËëW±»µ‹ç_½ŽÈ.Ax ha.1 |ë”"Œ|O@2`I—¦E¶Á·•îì¬ÝÀè<¡¯ˆE ^{åUll\…1wÞuVœ;u¢ž,%뮞úúG>öÉ÷|þ±Ïÿ÷/\_ÿ‹ç_x9¸ûî»±c|<¿cpA¯AÉ ß$3 jÀ§¥¤†ýÙãs¢n,}ž®oM•ÁkÕX©:–` ‚dß`¶?÷‰ïþðóõümc~P›øDéZìˆûÀ·/nãÊõH¿4ÛÖ‡µÂ©Ø’ $ Òùž¶R²[Y¨~œ–ðš?( &WMé“„fŽ†Ø±®úG­€<ï¦LßR)¼;ï8³`gÚó/¿º!“$i…ø†a3 £NÇÝ8Ž—Œ1­“n’$8Ž—’$é0ó2u…)k­—^S/ýQÅ¿™Y~gAtæ ríØc¥YáHWµDyJq´h峡Š6ÇVHœ00kf6©d„NC$’ÓBŒ1€@LD…̼`£Ùlnzž·Ñh46‚ ¸4¼­ †­V+ô}?¼ëöã· ë£l‰O?üG>ñéz˜mÏ¿|-2ÇbúVçy=3çn`g¿¿¼S•³˜VtÌüü4°¦ª9ž/ ðTB¢©ê˜.Qf0Ò‚™Y“3“5 f )›ˆ¢ˆÚí¶ˆ¢IÒ×wÜqÇú3üý~¿ÿ=Dä=zF’¢("\%FID4¼”9"¥e,ÐÄ$™¥,˜­È]Š] gk_9ØO×&"IDÒZËZk¸‡ˆ [H)™„•¶›xZÇõ Y4FlðÙ³gÿì¥K—>å <@f$ˆi‚ Aez&”Ik­˜á?•¢,"RÅ$MF¢jNÒ(«{/ê’_#ÇŸŸ˜;cI#ræ6;ká$¨¥Ì¼ÛÛÛ¢Óé¬'‰M2%†ýØwÿÀŸýÕÕåCì ýö¿òÊ+Ý+×·h¸þhc …€'´Ö*c]e›¤üŽcõƒŠÇÿ.^ωkÈç1³ "“¤Yp›ë‚ÀÙFŒ¥Õ‹Ï›B@a…‰"&¢Øó)&¢D‘H)c¥”½ûî»m}gk«­¶Új«íÆÚsϽ0ÏG+'Õ¨Ød­-$Þl•Gœ'Î=®®®Öûùvþüù‡766ý$I˜ˆ„Bd*[Ê“Y²5K*ËròBÏìžß_ï/UN$<Œ1å÷Œ%T¬µ³ž—–cáyúý>u»ÝKŸüä'?[„éö³?û³oÿíßþí?ù?ðwïîîê0¸5+1§0­âM™V¬U%åY¸2(UJräÇ—Ž™@fëäÏçÍtêÔ©ç>ø?ôŸÕnmµÕV[mµÕV[mµÕV[mµ½…­îqª­¶Új«­¶Új«­¶Új«­tk«­¶Új«­¶Új«­¶Új«­tk«­¶Új«­¶Új«­¶Új«­tk«­¶Új«­¶Új«­¶Új«­tk«­¶Új«­¶Új«­¶Új«ÝÚj«­¶Új«­¶Új«­¶Új«ÝÚj«­¶Új«­¶Új«­¶Új«ÝÚj«­¶Új«­¶Új«­¶Új«ÝÚj«­¶Új«­¶Új«­¶Új«ÝÚj«­¶Új«­¶Új«­¶Úê@·¶Új«­¶Új«­¶Új«­¶Úê@·¶Új«­¶Új«­¶Új«­¶Úê@·¶Új«­¶Új«­¶Új«­¶Úê@·¶Új«­¶Új«­¶Új«­¶Úê@·¶Új«­¶Új«­¶Új«­¶:Э­¶Új«­¶Új«­¶Új«­¶:Э­¶Új«­¶Új«­¶Új«­¶:Э­¶Új«­¶Új«­¶Új«­¶:Э­¶Új«­¶Új«­¶Új«­¶©öÿ‹c"ë>DAIEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/Mark3.png0000664000175000017500000000550713001357026017724 0ustar potyrapotyra‰PNG  IHDRhhµ¡sRGB@À}Å pHYsgŸÒRtEXtSoftwareMicrosoft Officeí5q ÇIDATxÚíylUÆ/mi_KK[º¥ ¥¥´PY ´ÔB){Ù¡ŠÔ—(ÁDM\b ÑTLÔØh\5FBÀ¸I4J¢‘c´&jˆ¸!Ê•?¬÷0ß…Ë0ófyóÞÜ黓| Òò|s÷œó;3wXoo/ÓRWz4 - HÒÒ€´¢ ˆ#”a’íïj@É"þj®Í\q}Èõ©ƒžãÚÆµØ ä b W¹Ÿk(}ϵ'¨K504šñGâØÃ\u2, èJ0\ï§Š(JoäÊTVØ`21sÃcj‰ *-™"¦’ëyiPþS Ò&Î4€ %šÂ3Šk×Y ÙL˜˜P)O{©‚“Yx ׊ƒ±M¨ûRöR'‹ëþˆ‚1ë ®‚TES*L̾aGè ®ªTÔ¦déÂÉ '8B”ª[‘’–ò’™ÒZ#\oÜjëædBJœMøòÃŽ¬Ç“)p:Ó ŽÐ\#ƒ†4œš4Hkñ´"hHAÂ)âú2áˆ^©1HHA¸5‚“ÃõVšÃàTMJYél®G4˜Ëô1&mV¢}R¢p(”oÐ@,×ð^¤Ì”’êÁ)æ:­¡Øªãä’_@º1®g4„¸:Ä•›ˆiH¤îÔ¥i¿ãU›1™³’ È”Úò¸^ÕƒïJßpåcR{Ž"?ÑC…o¾xOº©î‚õ)zèŠè=èžDFª QäÉ0ø1kLvRËöE^¢'¹ô°j'ß××w…¢¯½‘×èiPád·nÝ:´ÿþ¡Ó§OÅ;èç{öìQ Ò&,×Qä¥öPôlû$92äõ PŠz×k¹un=E\ÇÂ(Cô 3«qeœÒ[>¨©ÞƒRŸ¢inŽœæ<2¥·Uìµ™Š*¾×m\…nÜœ›u7ú µP z’kŒ7ç(Ô;\‘ÙPà{íÆÚÜ(¸ä ¯€Ìõgwá¡0T—ønǹơ|ĵÛNý2ºCåh™û!rŠ|·S\h_âÖ!7ýu¾ýQƒcÕ)`±…þdÆaŽý“A(Š j`­úE쵬jô—¹~‰•>èWÕú*ö²ŠÝ"ÆÀ¬‰hXã:¹x—„ƒ«Q ÛƒÀ(°´c§Z°¼D•àƒ" HÑkBB“”§* Ï—(ýmß¾]%@unz!'@¥ ýUTLÕ'»•l²ÙŠ@ú;m Qí±ºÀ§H/ôW=WyP€"ûh‰$\݉ "H6 OGõE FÑG ¼D‘_ßU@VK> \YÝ™¨‹ªèƒGÕÊBÈ÷Î=„ÌT’( ZI Í(®âúG L×#39^rs±ŽÖâhK®Ï†“QñûÐDŸÎ.­ÅùZ,5¯fÓ“ËÏFÕÅî‘;€ _É\\öv{=h23¶Š m©ùôSØ­Ò[È6{&üx€¯ vV½PKXuH¾2ê”Õ’{&üXÀH¿€ä{j7ß œ¦(ÌO5ÐRÝmJ ¬ŽN3ã]WÛí]=EÌØ*y*×]aœ­Ÿq(°ªÝG\͸«G¾/Žnp {ãh‹±ßÃ89º\mnV²¸Yä_f<üÖ„ ïhÜÜY*nœuˆÂó…0O”¢ÀíåÅ®уosLõÇߥuH4¬Í\‹¸þReÈ—¾)Ò|ÂŽ¢g=× véR·cýqûtCì ¥¹)\s™Þ›Ç«ÞæšgJo‰=Ý`“æj1 hÓ¾õÀ»Ò9f¼ „ÚZÁ.gA<dó„ÝÌ‚6fì!­8ë%f¼RgÊD1 ð ;ó3ªe0 3EŸkqEµz9×lf\A•o÷MüU‹§¼ÍQt×y¦÷Lˆ×÷´#z̽OâOyÛì“P&Õ¢\{5K}ǵµ§ÖÚSôøÝi„H…äèèbÞ ä2Ѧ×Á¹Mµ¨=Áí4b³WO)ü<-[tÀ¥èý QÊ¿Ùe&j¶ì܂߫Çb}NôE“ QÎi@ì)4ó”]Q³‹˜Ï=ãüî'V¹+aZ‘êv¤)a’èö´¥0´êRƒlsñÖª¤²ØqQ‘êÚñå^OSHÇ`©ç#µÕÁ8>¤•Œ=KEó:_¢®n>¾ä'i9?1ãåUèy`¤ŠdcJ@rª+—õˆŠ#m‘¿?M }ÍŒ]¬ºPwšúÇH©-u»þZì›'Õ#*Šs`ºÑ¨Æph®BýmCC*êŽ/×–¬çéË”Àï7a&uÒƒ\g†¡•î“à̃)˜K-¶ gçyÓ»„õ.ÀÌ©Fs6WŠ¤Û¹~&pÎ`Ò­„ž“T+™‚ ûÝ ½W¾ý$Heó&¤»NÔ$*¢‡"‡^œ±“® i­Y‚S˜¨)¤jÔ¤¸»e̸&ÿ‹ÐSãRԼ̌-q–cÒÍE¦˜h‚£Îûƒl Éé®–“úº&²©a=3îmP½6ÑÊÈ^¸´ÕèóæcÒ5"S”IiM½7pÅ”wG¼yº ui¢‰NüME—ˆ>àºQÓzÓŽ~¯“¯“1ÆT~‡$áî¨(ƺ]-R5rp?Ý€›¸ÞQÄ’ÓkEïdÆ +5 ҚєW`òåKnMí·@Ú¸;ÑÌ"T¡¡Žõ»€•EKôôÞT¿jjâkÌØÂìó2D{¢f RÚX4çyRŸ÷¨Z@+1)åGamDmjCÑ•AmÀ`¬ÃI¨U©Ç‘^ïæÚh†ÒÙ,Dý$DM RZ®¼BÀ¢ô&â8u)³n4rwN¼Éj jÔj ÁêÁ@°}ÜA5©¯}ÆRÀZ…À6B=评®5ýwc€¬ünDË"8³6)bꑎǢ†æK.-©)-å€l „œödPµÈõͬVØóN äRô!ÝH‡«0Øk µÒŸWC«ðû+d1"E@™šØˆ‰R)é,;•Q ‹Ú$Òž ª5ª ƒ5 30­HA0ˆ´Eêˆ€Ñ sR›¥Å¿EDL¨`B䔨QÅ€53z"êARa3úªì ÍÂϦã÷§x="µ PÊa^ ‘zc˜”¦3eÙ€’kT ƒU€È*Áì‡A­ÄRR {’…j¶0& :ËñyŘ "Zrðÿ*%Å•…Á‘•+ hŘù%ˆ6³Jðóbü~!þ}>"5f‚’f*S¨Ò,6Ë‘¢,ʳøYL‚‘mr•À( ȰL œ“2M02LŸ«”Èræ[‘:ç(}Ùt” H+ýc—£eêmÉRIEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/viewer_plugin.png0000664000175000017500000002230613001357026021622 0ustar potyrapotyra‰PNG  IHDR¤²‚Ö,PsRGB®ÎégAMA± üa pHYsÃÃÇo¨d$[IDATx^í][¯Å•>¿‰‡‘¢$HÉ@±A€h dZ@`üÙÍÌ E€@@v ; zÀؑݛ“ßÿÞä[¸à€@÷˜¨¤ÑxvĬ¥'V¤Ü_PÉë¿øž+È÷þz&J‰q(çwñÛÑpPIÈ/–$ŒMV Åî†&¦²íG@Ov&'רzÄïÙq.H9%á»*AÈ”‘Ü›?ÆØg€±Ç[_±`‚|:PØ0¢h%Uþ 4g·*ÓQAÙYIKvSoýü»™£·bAòÅ,|±” KÇS×l eî£eÄ^äüÅB:d²U™ôÙ'蔩Ðaj³°ån Í“æL«MRæÀ¶²ãÛ?CB 0,DŸÎá¾j[¼Tõ¬šì¶0*á\àó¤ÈÏZø,µ÷âB”x*;BäøÄÂ)×<ûDÂM•œÖ»ô´N5ž@vTaÎeœyµÆ7Ó 0× FvD8¢Ogˆodd—±sÓŒ3UR"!¾&ŽÛ‹ S§ŒøÑþurЬê8k¢êóõ>à\÷ô°¦GÔ:Š€xn¶<»*5 ÉÒU¹„ÅV¤üXoI¼O¬0Þ\ÊŒ+RÿN¹^öe«zvÜks<;ëÍázX´ZWë ¡ëš]¾TrÁ‹øÅY9&î^åºØ›“O|/»À÷ÖÏÐb6½³QÉéó윅§%²|½œ-o“ Ë÷Làٵì;êz@ì‘"P—ìß-’Œ&ŠƒÑG=ªWè*w ’ñÆhÈñ¿l[¾Û¬~òM8.Mß_¸ {ò.%ß,•oPd×éàÙþ€@;¯Ù5¤×±{¨XÓUùÍ“†Ø¡8B GdG÷…óÄ^Ñ#ò Ð}zDvš‚ *CGd7‚}ÝŸ‡ng¨Ì9^²³¥P ïûÀóP @L €@Ùáåj@ô]/º¹ó6ta@v ; zȮ݌9È^ ²ëE7cV@d²@ €ìzÑ͘ÕÙì€è »^tsfõV¾Ò‰Oú¢:‚ì@vc‚1Ý·­O$d;‰`¤Rmxÿý÷ÿgÓ{ÿý¿â‡NQ.À‹/¬Xºté¿x¢ '»NÌ–t…ìúÖS/ýnÍöŸÝ¹{÷ÿ<‰NQÊfYöËg^~ùå+W®øòÓ)Ê@ÙêÎ*²óµÚþã¾öË–°%Z´D V]!»–[ãÐ{y㟧îÞ½÷÷¿ÿý¾'Ñ)Ê@Ù 2O?ýôÌÌÌßþö·»žD§(e£Ìµü;-ÙùnóqÂÂö\›å ËÖ-Z"F«®]›Mq½LKWªÖÇtæ8e lZ¼ÒÏè  l”d—5Šž›}Km‰-d7R E/ûÈîß~ûË€Ù‘¯w'Mô&óÅI”aTdgÛníAÛxv•ßÛ-Z"FÀØæÆ³;µjþüU§Ô7FHÈÖŽ—›HvÄtô!ظgg!#c»&óÚ,ó'Cv”yøžm»Új›ðñ9Ûrî_ñøã+ö‡[Õä¹}{.µ`ò·DŒ¢Z²#z¢49e jjrb‚«&meÅk–"!gÉuÖU%ë KÎ*Ù¦«’iÑÝ­4Ù—šŸ6²£Ì#!;§±ìççË'q~úŽ=ûÎO'&_þ¹œ{¶òñj›´à2;?“ZS‰&Ï­[Z-x—(»À0\1ŒIä)1 ]ýƒÁÌKÕ »ù““ÖKØŠR ï¬äÆÕ'»ˆ):èùrP­Ó­U±déÖÑ™¹yDrÈÎ2]•ìÌ0$£[×ÓÄߟmŽ˜D(I8|²£ªoˆißoæÍ[²dÞ¼ßìKO'?)e¿ä"³x”Ä6=ç•ß“ˆÍdv~&°¦Mž7´Zº°Lx©”V ®”NÁaÉX‡ìVMå«Orë&W¥?2ÚÊü¼„Ñ0eAã &)'ÅâHqL³–%!Cú:èML,yÛ“=Šm4C“^¾ñö’ ;fÞ^b¤ô´ÈÉŽ3]•ìÌ04dw-Mœìè»9Hɵ9²ã´Z|ßóü¼yϯOþ졃럚xêùüÊ$5'¯;¼?'²ü¬ÀDv¬R§,£Kv¡œ©©Œi2?Ó¿Ï?•éðÔzsŽTdG yòóÅ¿ÌÕ€'C"•·ÀÜKJç°ó’E¬Ev§¾MXnÊÿ›q­r­Ï–æ4LÆ1;Tß³«mŠÕÁSL"ŒÆ€ ¨åj_ÛËéXÏ:§6E;\$½ggÊ‹=xðàtš8Ù™#&QÊF-„ì,§–¾ìNÝ}-ÕÜ|çGLV{œò¤Ö?•fæ?y¥ieI®‰<‡¯NY¦â(ï¹PÞ¬þÙžÓ¿üÁ~ù?eÐëe$yÖý™”–p~¿°xqVg‘%+s­SÊ%±ÍÐ+¿ÍZ­™«&)µxÍ &Oò+I¹Ì…Õš«y‚zhµpû‚š!¤]œ9†‹ŸO»¯Ú‰’<5Ä(¼ËS¿„§.ƒKD'\*°–ì4œ4²<$d¨·¹µ˜b’dù=ÞÇ%3ä*0có EQ$=Ù™â†ì“!;Reød%Ú0 7=»zÑÄ¢ÕTBb²›cùi‰s#uý£K§tv…ìtÚÌM®Qô²žìŒÎÄb÷îÝ;L”²%¹ÖP¦ %Ú0 vöÕYáG¯Tï¹*hE¡–h1'b èû¾+d× «ò1Š^ÖG=1BQ8“sçÎÑc%<‰NQÊF™‡OvQ¢ Óð\%±g×Qù n-Ñ¢%bl©+d7WÃAÓî(zù­w7R¸º{÷’Ð&b¢S”² ýë_¿ôÒK.\ aÄD§(e£Ì#!;˶ù8ï¹6Ë–­%Z´DŒV]!»6›âˆzyÝ;ï‘ç‹TL§(‡å¹çž#ÇÍ©˜NQ“hdgÜ"|€@WÙ}…¡UÜ$Û/§é’a’ÝÐ: †„€õâAvCBÕ ÐJ@v­ì€À°Ù QÔ€@+9Ù}}æÜæ-¿ûÞŸñ@ÌD;§¾¾ÄYwädwîüL+YB Ð%þú׿ž?þòåË}“ÇC¦0ëô“‡ƒ§·LÐ †èʼn ».u0d@À ²ƒ% Ð @v½èf( €È6€@/Ùõ¢›¡$ ;ؽ@ÀGv†€bÄÒ_{Cwc{aPŒ+"ÙÑ#&Ät<òç»v‘]þöàÒ IÔ÷±¾!±N¡xþnz¡JTŒá·þí·bJáÙ›âï€i(<‰”6W~M!åDE±xóp±N}C•œÅÛ£‚Ï&Æ@·¶x•ì Ó=ôÐCóæÍ{òÉ'-ßµˆìŠWÊUß#L`t0jU6ƒ¾u±N©x!qñþ(@#h½x-3‡N-|RÜåžÑŸÔšTn0¡†8Ë‘„âúž÷äëÔ7TÉi¬AjCc!ªÊÀd㨖1´¶¸Cv†é~øá ,[¶låʕ˗/7|×"²cv05™»B æ.C|ØèòxF– ዜSSÙKà=#k­‹uê…ד]Cáí<Ɖ@ߺXÜ8Šö]JÖfàd”Páߤ&a‰Å“êeyžÈ@ðó´_ÎÙ5ìÍÙ/îñÚ¢E‹–.]ºvíÚ7nÚ´iÛ¶m4þèx[É._¸”°«P?¿ëŠóEõ½ ±uØ(ZëÔ _}áŸ̆ÂÛÑW&»Iz­`FWéûV}I*Î}èðÑŸì%Ï®Ed§ö Ðf¨vy­ •âCx¬+}¶=ßÏY<§>J¢D¼Ù)‚=„È®þ!9ȇ Í”¸n¡Øy¿—ã;Õ)Þijó…Ù×@^²Ëû]²%àû»{uùöRý^z…%‡È®Åõ_æ$ꉹf×¥elÝ9AéÙéW²6§­¹ö˜)sb­âMÈ.cì]D=;O†z¶P2°òUÙðR¡®%·ß³«ñe¢žtìêÆKpÈNäC2y)È ¼AËDgWÊU³x²«Òtz1yl]”¯ÙUÃÕÔÙRóÓ°I/ä?‚ŽÞ¼GѺ``àFÑzX÷N.cõqGä‹Yb¬ˆA¢žk`g:]·scë‹—4*⸕¢¦ÄÜ’@äQ7 ³Ñêâõ¯h°w_ð˜)ÜORi5 Cv‡ÂL#Øä¬ëÞM²‹fœ@8€ì`@ôKvæ‰bzÈŽ¶ˆ]¹rõøñizœøÀÃ{÷îÿô³Ý[·}Ü¢çìzÑ3P¡"`ÈŽnŦ£°—/_½xñ2m#vÛ»oÿÎ{>ÞñÙ–­ì† <*@`v ²[¿~= —‡¥Û'®_»vœ»Ó§¿šžþòäô©'N;vâèÑc»wï]·nöÆÎnÿ 5 †„‘ÝÎ;‰ïh+XøCL·yófÝ€G5@Ì.Þ9»x£5 æ®’6^‚}€­üœ§>®ƒØ/¾âÊ`µê,gŽMIOòó¢5?¹xÈͯ6T'ŠÌðÁ×ú¬âö›þœiIIÎâñ·ØÓ¢iöÁÏ,w}+­¶õP¿û†a'ÉN/¡Ø×Ο”‹kG{úìqö´¥³m^ìÁÇtrnîxДàûFe@ÔºËÅÍQÝ{N=Ðé$Š’×- ¯ø"É(·>k€DDŠ¡*ÊYìíqÌ[¨-aœò“ǘ5uëþ~÷ÃN’Ý ; íNûd.6åQW*£žxŠgÝóÅœ$Íœq ËŒŽoãÓa\S„ÅÇSMænñl†—•¡cOÒON}ãª>kÄ/áºÛfÔÈ‹‚U[×t„ HØBxóENË9 0ï*“‘sj’í vipd&¼h´úÖmMe1Bðûd§ öt~Ñob¸…Ø,Xœ‹Û‘7qO€eÜ‘ÂOá¯yο—V•Ê€Ä§ÛØ›’£;âŠ;ÓLVó¹uW< ¹;ð¼ÚW„¯‰¼X±Ðú €°y(ÜΦæÌJ&À¶={ñ8>mD¥ÉÉlTtw–IR’ íölÚå×^úÍòáaØ}²+ö‡üµÒÈôyvJ¾óø•lwjl>´Y…͇ÌBò°aàL°Ñ1V¥¾—3¶Ò„6Ú.©#@WÃËðÒÑtˆN•È{¹Îõ¡$_aÈ$"»u<¯:,–Â(Ö5fk$²—vè»fÎòm!L¬õ ‰r¿‡c®t’ìôñÄëµú°ž‹©Â挘xzÁÏí'gŠVlH/u1¥±UDÉC´ëßš±-!_{õ(6¤á:YwuÄ— £,̢®dxv‡¥X=„¯L0lÏjïxŒ¶Fë©”¾~Áï$Ùi£žp…{Úì"³©¼f'·nϧØÈ ²êÖóÞÝEStr>-,|!†<€óØU<ÅkÄI‘/7_þ†kXŸ1ÔC^µ†mˆ¶;Ê> ¹°z[ó¥W”’‹rrœ¢Way& ø@–`¶Vë†ë*u{‡a7ÉN¹àD6 €@ŽÈ¶€@/Ùõ¢›¡$ ;ؽ@d׋n†’@€ì`@ô]/ºJ ÐU²ÓF=)¢28›(Ì£nщ|Òôé,7VDMKtR/OÒjTÝX¦yðÄl¶$Ñ“7¤}5€O}ÝK•Ímñšý^Í®NÙ! ? c ©¬)Ö©®î$»ôÉítw{ü^<(Æ´sÖ²:åVOf›M|‡¶W¤ôésþŒ¸:VD©ÊÒSæ•:ÅÖ›C—tYIxÅóÀÁ¾Lw[åܯeuÕÌz›—jŠüŒ!+7Å"  {'Éγ;UÞ›áÉhÑ·7V¹ƒ"ú.Úpè™(kxŠ™&e²«©"Û¾19UhÝá‹Òåðªðu¢t°ö-È5âd4,.†„¼¾7ÅœÅÁˆŸÙåÙ‰çA^-¼Üº²o⬘b c@÷î“],êIþТž˜…XÙ SwÅøj±Õ +")ÂÆLð}òÖ€]¿,3œ ݰ ‰|+×)Yh•S}›_ZO÷rz@ÖΆÅnzyϾ_NO\i Ë&xvM¦jó2Q³ 9òzáư‘MQo å :Ý»Ov±¨'…g§Ì©XZ¸dWgYk±¦‘l9îl† ®qŸÊXŽ˜¶T8VÇC˜N› ¯ŽÒáY©{u‚Ê»@ë‹v!´®Ä“³ðb—;âÞMhâ”× ß,†ÇÕÆàJYï¶ã:IvÚ¨'Î4•Óè'ÏN{gÀD:6IÂŽ(˜6ËÂ=;m¬6“N€®©ðÉð²ØÅ<;d­îüú.CY]\1'?‹å"w‡6Ž‹„¼^xk½¥ñY9 ʦ¨7†|ìðÖ=ã½Ûd§zBZŠkvYa€¨'%?ˆGÐÔF´+‰Ÿ³^Qw8ת Í¢x4*O.¦Å­SÜtÜQÜà.5”ú¹Ú(¬7‹[é¼õÈ„Sv[LæÅ%DÄâz@ÄœŽwRJ´dݺއ¼^xyJ ‹¶ÄÊL±ž1Ô×½“žÞýAN €€AdK@ €ìzÑÍPl^ ²ëE7CI @v° zÈ®Ý %è*ÙÕ x>‘3ܨ'ή0õÃE‰ÅÙÌêçuv:h$•ZÂsù›…3()¥{6¬x´j0è¼È ëL¶W=AÝ,œ àÚ§3¸q°dJnNži4Íðôª©^0†ˆ%w’ìÒǼUQO2ƒ(Ç‹ëø$Ï•>ÿí݉Å3æê§Í²¥ÏcI…íÑñlÉâ(²(ä-gQÖÙ8BI>ã•o«Òâ¯T'àjKR¦%Sâ½_C·õ$„Wup‰=ê±d%žM…—Œ!bÉ$»:QO2LK›«Š]ü¥½xfªPP†P§µ†¨ñVÚY™ïäMá­ÛœÑF c ΚÑzäˆ/º™Øz©¢ó­ðú·¬ÊNŠÖã(ؾ´ìkTe-sÛÝûBœˆ@![ú–ÕƒåÔãiC¤ÉÑnb“±hɃà9ðáh7¢Ý'»`ÔÛ^²«¿S¬³pù¢KÒ¦'C­éôª š"ç"©ˆƒ#¡ó@„U41׌"ur9¼jjGˆÈªê!|ó Ô´Ð…É&¬ Z¾ã*úè?¤é;ßùÎøÃÉÉÉ•+WÒñ‘6ê ë(îÙ5z’ÓŠ;õéè"‹¹D±C¡ˆ'gzÒä*´«Ú)ËV=©^ðì´C«¦Ö¾'íØË1\#¥æ’¼í:%tžA/Eg¬'ÔJµ²òÊ£˜ºÂ\ã‹c®ÄÓV^¾œÂHD·î φÂÂÕø Aôì-Z´dÉ’eË–­[·nÛ¶mÄtíòìjD=Iú3÷=ì˜,œ’kc+®ÙIuš†Þ/ÅJ$¦ šRö¤ø˜µá;#„ûAe@%¼ñÅ_gEIx9ŠŒ¤oˆG­dÈ…F§Œ<|¢è¾’\eÍ ËaÇ£KA×>}uŠSÓܶ®Ç3­²2:ÄkRw4ÂÓ£¦^xÑ2<ýX½fgV²O?ýôÛo¿½oß>Ãt·oßn‘g§t­‘  `0dwåÊ•›7o£™DìF·aÃËt ;Ø ÝFÀݵk×nݺE¾›M÷ïßðàýµGÈã#lÅ ŠnCé˜  Ù‘[gV©DL²›‹.B›@ Cv´JuhŽx͸rN‚g7 ÔQ³Ž€!»*¯Ñ–hŽþ: d7ë]„†ìª¤æ;²ê¨YGÀQ˜>ÍÁ ’  ÐØuÈî+u:§³gÏîØ±ƒžŠþ]š^a©z„ŸÅw 0WË´‰¬—l˜,)ŠÀ9EêÙ)q³\¼x‘låÂ… æê#èdÓdÃdÉHQ.•=9LkÕ7n˜{¯Dô³dwY¬Ê¤Û«¯¾š>ÝY¶zÈ&}Φt?Àœ#`,“>´a‰»yóÖk¯½¦¿ÀÔ«œôlp5]ÏÑœÙ&aî½v‰ì®–uª9`ž¤¿NúIÚ®^½úþýl[¯Ý‚/M Ë!Hé#~iR3ÊrˆæffhàÞøýïO–ŒE€HÀxpô7™%nݲ»¾Æì ÓQÐúë#;âôt’¼EvƒOsˆãþqþüÉŸýÌùòܳÏÒ‘æõ£ƒ1Ýå+WiRÙEiÎd 6 ¦£M†ïÆŠì Ó=üðÃK—. ’ݽ›·n§Ös ŸæÐ ëŸÿéŸþó7œ/ÿõþût¤yý¨Á @DwñÒe’é,ÙQd:ò~ ߉gg˜î¡‡Z°`ÁÚµkdGî‘~b=W®âÓ2 ]ºôOú“óeëÖ­t¤yý¨Á péÒå .Òzž’ïŒgGdGÁé(dK×íe,Ñö#<2oÞ< ¹·qãÆÙ]½:sæÌÙéé/;Osh²s¾ÙÑ‘æõ£ƒÀÑ£Ç<|rzdW‹ì(à0q§3!›Ì†ÿn“ñìž|òIŠ¡¼iÓ¦ÙÑ$yúô×ÇŸ<|ø |š#pöìyCvÎ";:Ò¼~Ô`8xðȾ}ûÉnAvµÈŽB«ÓÃ:6 ç8]Ë0|·|ùrФ »Ë—¯[wäȱýûáÓ¯¾:óòªU[¶lq¾ìܹ“Ž4¯5öî;°k×ÞcÇŽƒìj‘½D‚a¬®Ù™GO ßÑ»¥dG×>ŽŸ>pàðž=ŸãÓ/¿üŠîEìÙ³ÇùrèÐ!:Ò¼~Ô` ¦ûä“´˜ÙÕ";ZêáÝXåsvçÎ_ yòÓOw“éàÓš6Nœ8EñKóúQƒAàã?Û¶mÇá#GAvz²ççìªÏÖñ#æ¡br7¶oÿdëÖþ²e;>@ üeûæÍÛ>üpë¡C‡Avz²K÷œd©ÃÏÙÙ] Ñ/v iûî»ïîÙ³—®õ~þùAºÜ‹èŸ}¶ëÍ7ß$KFª‹È®cwc9g›½ ΑêOÒöÀô`Ê¿#n"ðÇ?þñƒ>ÀF:þÆñ»Hlbsv&@¯v8CY à ¾bÓϳIݨ'W¯ßžíxvÔÞù«·ð@Ì2³Mvuùù£@à…•¯˜jÜ¥ÿL²ÚG!.ê@ †Èn0ÜP Ž!²ëX‡A\ Cd7n(€@Ç ÙQ¥ø Ú†ÀoPtŒí!.=C@+–r†îÆÖª™mFdWã96w$d@ ŒÈd€@/Ùõ¢›1ç ²Ù Ð @v½èfÌê@€ì@v@ô]/º³: ;½@d׋nƬ€Èd€@/Ùõ¢›1« ²Ù Ð @v½èfÌê@Lüá5ø Æ *¹'d÷Ñ–)|€cƒÑÈ´€Àø#²ÿ>›™Š&ˆd÷ÿ  ôD%cIEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/Mark1.png0000664000175000017500000000524513001357026017721 0ustar potyrapotyra‰PNG  IHDRhhµ¡sRGB@À}Å pHYsgŸÒRtEXtSoftwareMicrosoft Officeí5q %IDATxÚíylELJ¶´¯¥¥-m9JJ ´PA®–Z¨\B¹E jŒG”h¢&1„h*&j4DÁD‘0^D’h ‚F¤ÁD ñ$&BÔ?Ð?¬óc¿#Ãv÷í5ïíl߼䛨¼ç²;Ÿß9;;Ëúúú˜‘¾2ƒ`@‘d”l@ü3ÌCy6¹þÖÊ 1ðqmæz€ë®<ô$×-\‹Ý@á Ð VqmÄ ÷s (ÐW\;y¼î°t“‡A#‹?¢ˆ`[¹šeXÐ`0Ý\oe Š›ÈK¯âÊ×VÜ`òa¹qƒqµD•€lSÇõ”4(ÿji†3  bñ¦8ÀŒàÚÎuZC .³•õ°—-8y°ÂK¹~ÕŒ›È îÌvØËœ®» Æ®—¹Ê²åMÙ(èbö8BsÕg#7eN=.f(Á¢PÝè±—ÉÖ‘à|ãWg¸®É$¤LÁÙ„“Êpd=˜)H™€Ó“cp„îæ®’j89ÖÒi¹jH*áTp}’ÃpD¯Ôª’Šjàq½šãp„¾æ£*'ED¥t!×}ÌyzF[µOŠ ‡\ùJÄqï@ÊÏ* )ïœJ®“Š«º0N¡!…D®›âzÜ@H«ƒ\ÅQІ(y§9Gû Ú c.È( [h+ázÁ ¾/}ÎU £ìEa¼‡ß|3ðt=BÝÙÒ[9 ›÷ÐÑýfЉ ©xQ ‚!La°ÚVNùÓÖ0^Ä{ K™ÁíEeA{£ Þ3YçAèïï?ô·fç¸ –o/ ’{È{¶éfçÎgΜ°Nœ8¡Û¹¾Ô‹üVnä=\Guºà-[¶œ…àöÑõã¤\\¹ÍÔéb÷íÛçè5š"]¤/ò[Œäº]‡ ܶmÛÀÉ“'Á Xv`šzÑ(å'Ìù o4)ûÒ)Ê5NŸÃ‡ŸýÞî4ô³«ñU,x…·¨Žõâ80y”ø>!€Hsä0-¼•éR^ @ÊvïÞ=èûº«ÜO5çgÞ´F—üCÅÛ÷ ô0×(?Õœ b¨/ Ýz‚íÂÜÜTÉyAÙóÏ.H©ŽqEúH[n{õ?”Èh…ÊH©~äªEû’6ùé¨óí7€”ê7f=æÙy8Ðr5 ¿, H4¨t Ÿ 嚀†5m%—îö‚¨à  Œ¨ XI@U8¤^£*1€2ªf?½ jþÔRª? ½ýÌÕÂ5Z Dh±¤T÷"2UED3 ´Å\@Êt"“ç=!?7ëh.޶äúÐR"2ôéìÜ\\¨ÉRûl6=¹ü„¤DûaðuÌÇmo¿÷ƒ&1k«H(º¶ÃàÇÁBݰsê…f鞇h- ~ `xX@òš„FÄÍ7ã¾@ZÙã¦Ó§OŸˆþvûmLçŒY+t}•Ø~WõT0k«ä©\·Æ ‡–Z©úÄé1TÄ LÁªy]-p µq´ÅØ/qzO‚ýͬ‡ßÚ`𞂟•¥bá¼ÈCäžOLjÖÅ©úÐ2â,Ÿ?=ø6Ç–­,uÈC¢amçZÄõ{f4yÏ:®ìÜ­nÏüã÷é†"”ƒæ¦pÍefož zkž-¼E{ºÁ%Ì5Á hÓ¾oÍÀûÒ_ÌzAµ)4ƒ=š©x>Èå »ñ°‚Nfí!mxëYf½RgÒD%Sø„ýÕ ‹>2ÒŠrõ2®Ù̺ƒ*/÷þŒªÃSÞv/º‰ëföLH×÷tÁ{ì½Oô§¼]öI¨‘rÑ®=„£¾äº¹§¥u ï »ÓU µREG7óŽ ç‰6­¸•ÛT‡Ü£n§—½zªQÏÓ´E7ª³±Ÿ% ùw º\ˆœ-Wnê÷êq˜Ÿ}Ñ$¸ðÅÈG@ì4ó]Z‘³+XÈ=ãÂî'f¹ëP0t ÔmÏQ(¢H¢åiKQЬK#¢ÍÿK«2ÈaÇEQ0ˆP×…“{)G!EI=¡­…çCZ™Ø³T4¯#qͨêæã$ßÏ1ÏùŽY/¯êAÏ3…T…\dê*p2"Qr¤-ò÷å¤Ï˜µ‹ÕBä6„þQRhËÞ®¿ûf—Hùˆ’â ½hÔþÂpÈW"ÿv¢!y'TÕ–©çédªPï·Á’Ò=\§†`)ý˜gŠ‚ (©Å–cñì^5¡¯}ÆRÀZ‰À6@Ñ_ ]fû{£c=€¬ü^xË"Tf’Ç´ A-•ª´Œ†´¬r) ä°'ƒjB¬oÇ`u <ïÁ@.EÒ‹p¸ƒ½Z#ý÷*h%~¿@ÃS”Ùȉ­0”: Œg…ÙôšX9ä&ödPÕÈQõ¬)˜€œì@êFÑO[ä …±0ºdBj; ´ ù×ÂP„ÇÄ &@>@‰U XcaÑ&#¶£¯šÁžå ™øn:~?À[à©õ€2ÅK9BoJ“Õp¦ PrŽJa°ÊàYU°î±Ô:L%5b°':¨ `c<¼s4ŽW cÞR„_xL¬`´”TKxV±l$ UÂò«àmvUáûJü¾ÿ)<5eƒ’g(Ó¨a’ÛI^V •8H|—’`Ú€œE'0Z ,_ç¥|Œ<Ûqµƒ’@ÀB+Qל¤“ÍE™A0€Œ¢è?úO쌩ì’.IEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/plugin_widget.png0000664000175000017500000002547713001357026021620 0ustar potyrapotyra‰PNG  IHDRœ%_æÃÓsRGB®ÎégAMA± üa pHYsÃÃÇo¨d*ÔIDATx^íéïÅ™Çç/‰”‘¢ŒÌoózW(ÊK+›Ì‹Hy‘CQb’ÀbœÕ¬È&ˆ%œ½« " ˜„|rÄ¿p|ƒo|îluWWÕSG÷<}LOWÏwÔ‚vÏÓUO}ž§¾]ÕÓ]¿Á®m›±€@o ~wϯ±€@o z#Ïh€©a   Ð+ƒ¿<5Æ ý &Ñ5h:€@@ÔúË~\fÑ ¨I¢QèˆZ¯ÂYó‡ÓA`.Þ§Ž‰¨}Æ”xÍ:Î÷?óéáÍZrJƒ €@ ðEMZRÉ󤢦êÖkLµb’å˳@˜ôŽ€¯S#5ªb¾¢‰mQ{jí׬K•èÛ_öéÀMü3ÒôŸBøÄGjŸùêSß¾WÎãD Ùç‹·ÞýíOgûŸùÖÝuÆ“8@ —‚c4Gãü†Ó³üo-Q{à[ŸJÔ*•ª/ÞjDJî'ß~amRD6þJP^4²#‰Š©éqÜ·j¢&4'8F“gßSÓã/= ¥óÇDìÔØMiñ)âY÷Ú0ýìÝL¡—ã4j^‚7Èš©e s„Œ œ#jÎ 8_ j5|¥î¦I*{OÍŸ3&÷Èò§Ÿödó©ÐôSOQZ° ”µò¿~Z7ÈÔØù¡ÀÜA£?ø?dz·.ùÁa€ æ5¼G½ Ðeü‡9ø­¨ôðmãO~àò  (+jò‰ ý~Ðn(+jÝòž?"…%€À‚€¨A¦AzE µÞ,Lކ€€@"jXÔ@úD¢†¿ Ð+µ^…³O×[´ª€¨AÔ@zE`pÛú;°€@Ô&éGŽìQ“ÿÆ@b$ E ¢cøà3€€K¢†œè"Q»ùÖ6ˆ‚€æ)¢Ö+ŸecNž<9Ëâ{U6Xñà VLVBv!jLV\3$—ÔdV`Å'À´„¨1A•0CGåÃ+°â`ZBÔ˜ J˜8q¢„õb›‚?þ`ÅdQc‚*a†äãÃ+°â`ZBÔ˜ J˜¡£òaXñ 0-!jLP%ÌŽ?^Âz±MÁаb²ª,jã¡ø›Ã1©FY-3ëí³™|Ë£¥ô/ã4Â&¥ÞLQ݈@ £Ê6&+½ºáï<½(W½Ë&ý:¢¶´´Dó¢–1?vì˜M¿˜ Ÿ[’¤=ëè.«ä š¸<%ͦè1{DwÍÊçUß²…›¢váÂÅΞWÛÿ¬\}ûÆŸ¯¼ú绲ƒé‘WµÁ‚î\¼xéÀÁCV¹døÜø–qÀ°ÚxãÀd”lEq«ûÆ„t1+ˆ³Ì«8²%Œ¼„¨¿pñÃΩmãêÁÕëvÛ°f°òöWÓƒÙ±/fŸ5ÍWÖ¯L®ÞpnçíWKuî¹weß7n0µèê¢ÙÉ·oÿ « Ñí7’¶ h6+—CBuõëßþUJhdèÕuq 9!ßmª9¬HV$Ieñ±[í|k2d£Ç$Î쪜WY3™ r#ND‚r5¡®¨‘ì¡)%ëÓGÒä[¹~§8¸!éÒèd_J9wÃFé"ä>-ù)ôÁ¶8$èüˆu‘Šf£ë:Õ+#Í™.S&Þ5ÕÊËRµ]pή¬Ñ\ƒý¶v^Ñë\2á¨C¤6õE-íŸIÞX]H]^%¾à%”'—‘äƳðÒ¥K{÷í/©eùD_%Y€CºìòrNOOε¹§b¥:[ê|ªköÅ2½(šVóR+êˤT–ÚyerCŒvÕ£ŸÒVFÔÎ_8óáYµ¥©¶Sþ3#¬Þ Žì鏿ñ츴¡Æ¡}sŠ.?Ö‹—.½·wÿù0« r0À!Ù?·óTC¬LÜw¬»z°z£•<R+ÍØ¤¨D"cM*Ñ„óêñÕq£ *h#¢vöL’méAHXr›mý‘LÉAž¨%ª7X¹îÕ©îvß Vò8äˆZr:ý´vj€Õ†õôJ™6‡˜’Zòâš&zrïM_t3]‹:ÁêçUF¦ó—ºú}¼„¨;áô™Ô¶aõ`åm;ô??ڞܣ–GvÝ&oW¯\³z¥:{îÄÉÓØŠ \¸xñ­·÷€'OÀŠCIÚ€ŸD­a™Fòñ“¬ÀŠO€oYBÔ^Å@:O „¨]À‡Gà¼xô°âqJ¬ÀŠÉª„¨1×ýš]¼ôg–ïøÅ{Äú蛽ÿïâ´´~4ÁŠÏ¬8¬Z5¡bx僽G/œ<;éý&š¹ -­J°â3+&«–Dm݆·Žœ¹täÃÉgú¿‰f.HKëG¬ø ÁŠÉª%Q#µg'ïŸÆ ³%Ð’¨‰™ðñ&‡N‰m|½^öo0XqÛrzP_úÉ6¹?yðÄ(Ý%–É·ôŸ‡¾1>´m´‚” ŠÍ œ×?#ru^ˆH½Vn\ÿ?vVò3*¿uÖ¹›o“QbdT–™YB–H9“Šu+nþòO²—¥‡?;D~ÔfeÙ’¨‰‘ÚÑ'ûOŠm|Ý`iíV½Ÿdw\~ë냓ý&*¦l&÷}cpÝ£äÛìÜn‰ÈÕùs£¹Q*|Á™¥³­£+Ãû‚‰W1Žu+"ðÜ¿/É. wtwÀNK¢&FjGÎLöÛøÚÁÒ_‘û“½¯$iô;ÿ¸üÖ1ÎÒ³¤,¡“›i`ç]?@;7Jø<‘Y1ÁºjôlRïò¯J³T©Ç:Žä³popí#Nêdþ—bcþ·$jb¤&n¨í9&¶ñWK?zYî‹mùGW ¾ú{ÿxÐØ?k²ç÷ÃÁ×ÇnÉ/>—Í"†÷›ÜóuY…]‹°‘'ÚÆÒï~]LC’s•Ÿ•wt›pµ*7¤…ÜPñº%û£yŸ»eY†C4ûÐÐÿ> º2#¥¹!6AÿÜ-#šªd•¢âÄ«F±5Ç$Êòc'sêC)ÇX!¦ |h-DªÓU´$jb¤&fûoÛø+ƒ¥n‘ûb[þáŠÁWöõY“M?[ºâgË¢„ßÞ O§%*&f7ŒñÏÙ‰ªÏ8ñp odkÎÕfüi¤Q³)$!¯>Ãßf1èØ‰ËLzPo:vé‰+F›ÄW[FWd F¿U)'ó! ±Lñ‡T³„y’ì§¥©„ÉvRËÜ”Ó –ùVÙ1fˆEù…Ó¡˜%ôÙ¬%Q#µ'&Ëï‹müåÁÒþ.÷ŶüƒòŸÎñ ±>k²ü÷Ñ+F2§“ÄWôg†¯•ñäî¯-ýà!ûDß8ì ©:óœ}¤)WËÖŸ½ŸôÙHÿÁã@òÜýµÁ—b僕I& ïVÐD!WütY•ÆzZ…½ÊjíªÕ¢éŽqC–ƒ…{:;uã,°%Q#5qÏëCbi°ôýÍròÆæÑåƒá¯ýãò[Ç8;(¿ZþþŠ¥ï?8º|ÅèIÇØ”©j‘Æ›Ç_JŒÅþð×ÂFž0¶=´*Õ–ÚiÈÕ<)åvûÆ>yzDí›É°:y"¾ô 9è‡XGŸæØƒC1ÖS¹$l0¸~œ%jqÊ¥¡yò'É/§VÕV3ã†X7<˜Àí®[5¶$jb¤öޱɫÅ6^5Xúîf½?Xõ€\qŒõÁlg|s’C—ß¼ì‹*èñÄ^_~å’4û«®ª}cꡪ4íÿ%\òw2W]÷”WYíM¸ZT­.Ú}Ÿ¼“-iæ<0\9g±¹D‚¨d2-â,ñÒ,2…¨lLkI>iÐÕ–Ÿr&'Ó¼Òn—uŒâÄ“ëÇ2™å6M %Q#µ=G';ˆ- ³ú,Ýô¼<è\¶vY¤6Ú8Ýy~tÙÀ)Aý3ùJ}®»ÆÎ‰®q’‘Ä1]×ðάR{'óßöÍ9Ø”«œº"¶¡¹!s€ÆBï/ßteÜ+‡«®”‘J¾Zu]öˆÙªûuFåçÃýÙö²µ#nš WŽþp`ò‡µi™é~Qʩ҄&IbÜ.ï7|‚ò{ba¢ö¢–DMŒÔÞ9:Ù¾€Ì–@K¢öÿûÎ/îÜ?Ù¶¯ÿ›hæ‚´´~4ÁŠÏ¬˜¬Z51RÛðÒ‘å×Þ>:éý&š¹ -­J°â3+&«–DíÜ…KB×ÄZ½_IM®÷´8-å¬oUlV|†`ÅaÕ’¨ÕY`ç‚€ŸDÏ – €¨E$¸ À'Q㳂%€@šµçž{îôéÓ¼æŽõk{â©Æ¥Ñòdy´”þ2_ÉÙ¤³¯Ím’ø÷pLš\¡¥ ¯ì3{ÿKúW3‚VnNìO°^¦3–™kW_.ŽSRšéØ´ÖkZKƒižÏøûfDíx衇>øà†·­ö£N×$I‡2}¦Bê©bá•/6ís¦¼åѨDÏ/_]é3jv×ʧ7$j ^I×+°bë8VHßèfé õþ„ÆDíðáÃwÝu×Þ½{§!«¦\•Ó=èN³¥MM>­BvϘFÊûÞô¹Ò§¶tBM°•O¯£ä\8õ¨=}ÄbÏcÇŠbV™TK‰0×j5Ñ 1RF»wï.l‘}ÄN¯lŠ%ÌJ}H̆ÃlÈb¾Ë¤#-d”ÍqÕÀœÎ*Ì&M]ÙUZ—_;:¤7˜¾×Ò¤mJm›lÒš3¾$SRëôq6UÍÎN›©˜¤åîEl'élZ–,¸×™ åä†ÍÇT[¬Ê»þ¬2Çg•$qH– HR…SÒ¥c%œ•ä-Í9XŽu¨IQ :pàÀÚµk=šß8¢PÙLÊ5’ÜãašT4Ý“¼®C Q3´Ä0¸{euJ3½@ÕU«k:m×û`y-ÕF¢áâ“ÞbÌJ0ã§ÝNÙ¹ô J…)Ež5ÒØ’£a]K!ÛTad¿J{vMQÓëèi MÓzÛ1 ˽EL§ÏYf¥8týJ3Šâ˜›`„làF›ïS’Å)±&ÁgžÜ{³&EíÈ‘#ÍŒÔȸ#]ý%©ßìë¹Iÿ×eéö6R”ºšH€€&YŽ™UKä€*SÖt•ý’’Ê›}ÚÇUÿÊnsy˜j ;Œü²5:f‡¦4<ÿôÜËO¾cú6rê 53ƒyÔ«iq$rNÕÖ¢£®±: &øeîòR,Ý¿)Q:jžÐ˜¨½ÿþûUï©ySNrKzÕidu)_VVe£ gü^³gúI}ËJ~îHéW²!r€*ö‡c3@ËI߉“­5~¬‰Ž'jSÓ_çCúìVžæ‹•ùqT‘ó,¨>Ñgvg§Ø:£cf1™5&j5~ýô/kÉÁTþ;wÒA´CEÄ ƒLñÅu‘3e‚ë.Sæ)õ4çJîNØ'ÉÄs(nïéç\Ò¡“÷ëgr4;h¼š:›f ¿OÊÌ©5<ýtúgÈɰc c€@0Äþô“`̦ul5¿Æ1Ë/ÁHÕ,ǸÚa|µ½æžßk»fD­äsjy‰K2XÊ€ü¨ÁUh*ªì’_ò;^ª¦,ç{·®ÐpÃײ2¢æ=˜VÔRËØ •W{î¥{›™':‚Ô¯i¢fîÿ²5ý¿‘ Ìt,t/Õ\ÁÒ¶ZŽ¥¿íè|± xé¤gÖÖÔŒNuºáP s,1(çWn´¯¦¹Èš5n ` 3&Q›1` Ð.ˆZ»¼Q€ÀŒ @Ôf Ń´K¢Ö.oÔ 0cµFñ 퀨µËµ̘DmÆ€Q<€@»Ú5óœ"y^ÛyR>c>_˜<[(¾¶%³ηÞe™RTV4ñÂzxÑ}вn4ÜyeKüGjYõXèš~æ2ôÈ1Ë«rXW°̦1Ílo¢ô÷X¤ÃÅ8QSýÑ~qD½¤]”)®,×±ÓR—Z¯ñ%’Ô,*Jš˜w]H¡/ 4µþ¢§Ç5rÐy Ù….»Ð¥ë7pQD­ÒÛzu44¦sç*jöŠú3˜ï=Jõ!Ò%v‡£äEï°¦©ÕÖÜñ—.Ê_ìB'È,úµõ6•­p¥óÄö¯Ô{ZÓëšEã§×j[Ôoà‚ˆ‰}ÃiP6d]´Ÿ«¨™>.s‘öy)c:GµªéãÞzWF ‹ $.ÜÂ5.RŸÛ^%Ëä½T‚€ôÏDÈõ—ä •¾Çn¿øè¯‹H^l¤¯ÄÖw4–5†•Uð9’ä_m\ÏÌ|•®ÚXjQFUdí.«4¸ê9ζé[UÝêÈys5ûUu5g´îe:c‚§z»^4Ò›–Z¢FnÃ9EyóU{¡²,ÇìÍT2U±º]$;eË´ªù‹Dº ç‡F˜2§6X¨ê—ÿƒ‹U¨N’•ÖZ®NµÜ‘.å©n-ù´›\b¤5JòŠÎÐ. ±Ûlûôºæ"jôžš½´†#atõiGõ…4 ]ªÌÒ=û¢‘šâ•*[cº–yI¥ÎØËÞ"‘Q£KI…Hü6ÚG2о|—¦gQS¾¨yéá¬Ie†jþ-UW‹lª53,#µ"¸s53²§™f=E{ –vss3-¹µæ¼§åõø€Ìå®2[)QSñh`‘H»Ïk·§IXâs9QkLÏKâÊi ­ær,¸hEGÃÖ:AÞJ³vÓ‚²^Òéy˜¿CÙ;—:Tç\E-0AÈ–6óûgJr–×h¿ûY:õ멱“R­Ñ»^¿¤VcTžùÂQ)‡d?´ŸC1@G˜“„ /é\ŸéŸhqVšœ:ýÔw$Ãk%Îé&MA-²>M¯_ä/3d¦&RÖäÔnZ’E’E£9µ»¼ \ÑÊÖ·3æ"jzÂ¥sˆf³ˆWø~ÓSM>ZAaEVßwž€³W“lHÔZ$Ò̵Üî'UÓú©À“Eq¥…­®Ù!ò‡ ¥µ“÷y T1uÛ¤m|µÈvš[«Ýö–þüw-gÛ=¹}Qk·}¨ @`Á@Ô,àh.ôD­ïFû@`Á@Ô,àh.ôD­ïFû@`Á@Ô,àh.ôD­ïFû@`Á@Ô,àh.ô@û¢–>@é.ëXñIn÷]^õfh~ÔÜ3f_ú@iãO¬·ßœ™³X•yW+È Ç23Ï»Õ7™·¢ÿê°ö´ 'náqÛÍEÔÄK@ù+Ù–âi«ØtMsß /UY5c÷ÕŸæ^”þ0ûm5ÏÛ?«rsµÀ›UBRE™¼­Üv¼&U€i>¢~»›MÛÈz“¡isP;¹+½:Ú¥g… ñO©,͉šyqT­€’I«®Jn_å¶pp‘4j8£8µwÝfN¢–®xk¼uh-=&^LtßZ”dIHµ¦¹Sˆ¤*±¬n:éU©é”¨7"R.¦Nr;éØƒ•Ëá(´ö… =âEßLS›^R•LVÇ¢¢ÆÍ[2¶ä4ÿÊÚZMûœáÅ»7 F®SEÍMÔÈÔIG(IòöµYÇ";J¾×³̺y–ZªÕ¬:²˜Û¡z9Ã>V$óDÍ÷sêÒˆ·°„_˹Ž- !Ͼ•9¡°z‹¬é5Fƒ‹s$õ‹SR7Ü••i]N±yyëi I*µ[YÔ°HdnòÎQÔ´©¸ÚéPÔC©š7ºÂD–š¹—µ¬Š`½­Dã‹ZÏVvlPsFjâT$K¸Õš$Í­ 饔7o±â yKoÌ)±´€%!b¤Vl®¢–M뉚ü£,úfGàC^(Ó°˜ªÉmÝ%píŽZpƒ×÷]r5é›Â¿áØ Ð8÷Ô¢Nw[ÔLs­ã&¦Æ€Ž†k¯YIfÚ=‰ Ús/uízÔ¥ÚZµñH­ÿ¤§fž Èäͧä÷trªä.$i†>fÜfÍVÈôÓ_–Ry¤SÇßa„SöÃаÑoK*dâ97õ’YéìŠþ)ôçã^ŽÔÈÐZfÖg&ƒÏ€&3'ãé›I¥4œ›·-Wܺ¨©EíõóÒÎjnô¯ØÖ×Ö<"éâ¡^í™×óÍ”¤py¿z¢æ=i•3¿6wwèêƒö >:‡"7ÏÏØGj*ÐÖÝ@Õ(7¦ŠEã«E¶Ü «T§ÛŽE"]|í‹Z•â`€¨1AÁ @ µ8â/A˜ jLP0ˆƒD-Ž8ÁK&ˆÌ@â Q‹#Nð@€I¢Æ38ÌCÔÜG(Ù¤üWüS96îYÆ!òØ3/Nº¥È÷K«8©&Oßb‘È@(}(ÌP2ÍØé:[CÍ,&3[gÛ-½uQ£¯ªMYãP’à¤Ǧ€«9¨MÍ2UuRÅÂÿ*ê4“ _“¢e6Ô„ònV=Ã}=‹Dæ‘ÄkR9Öº¨:ZqßãôLŽ KÔˆ†Ö,SUg½ol+\鮟÷îrž« 5¡´Ÿ•Oð_+; 6™ÉiV¹u žH2/´{\[5÷ut2õS‹i·@ouÚ™)Øpœg#ÚJÍüÒñ“ÿ>|S)N’Îh)Üö‘ÈžmƒE"³•å¬E!Mì±HdƒšyQ틚u.¾º:Sµ(¤u Ùø7®rÇI³œ~ê%±Häô®âd‚¾¨ãÓ#˜ªœ^ZÓ, j¯Ë–ÞÕÐË‹b‘È鑉Êb.¢–2·‡ìT6_/õý5w™˜¨ùÃòÜÅeÈXÏÜÅij¤\¸VN—Ü‹ ‰#YoÃ"‘ŠEnܱH$ó¦sTšTÛÙù‰šùÃÎ\L_8óEͨ"wH Jʈ}«¦ÎNÒΙ-c+í©¨9·dOÆ"‘ô¯X24×-OþÔeÓ[ùÖ[pÔZqªÉeÜ9™QÕF··ÚŸ§©Zm$çµ.jE"IÊZ7ͦˆší©I„S,÷¹ ’¶ÄX1ót§ÆN²b‘ÈiÂqëk{ÕÉ"ÎÅÙHž¶K†ä¶n%G"œ~¦óœÔoüNà'Uë¢Z$2›þ%ARó1³ìŸ:.º?œ³JbðWgpT8RóÓ§B¹ë Ný%0±H$rOÍúÀÏ–Ä2ý;dtÒBÚ*—Ò?GËHÍܘŽÉåi×´¦¾o_Ôšò倀@€D i Ð+µ^…€¨!@zE¢Ö«p¢1 5ä€@¯@ÔzN4@¢†è¶E¾f)Ÿ¤¯د/Y¶þƒàê‰ÕüçT¹‘¢ùo&pK Ú¹ÏõŠ×]$²–?Ý>9'â¹ï†ø­©óÆ[soû¶AY¿6\vu¦6œ›om‹šj­—@É›/âQðÐsäBæô ŸK:XZC).UŒ49˜ŸñîkRX$2^“*ÐÍ®ˆš|›Ï~+³@Vœì¯ùvK°´†DÍz§ÊV¸ù^κX»Í¼Âëháu’™¡dšuAS…Rš0C:"jJÍ,U++jÚ>Ý«bØÓ[wÉHCu–¢Fß86š|1{»5°ÌœÀ²<'⺿êãzΕáÌ|‹DÎP%"+º¢f´Œªšu‡%o± 2ý¤¢V°R ^ N ³±^¨´ºÕM"ã4[“5]•WÚH,>$>£l½×šcѺmhéüi¢–;Òe†ž”E"[Šéªé„¨Q%#£é⑚ú °¬£ubÖÌ5ÞZÀ!“]X—‰œCz´\¥/jöòSi-}7>¡ªd.ê­§f"M—äTi˵£ÙÛ/-GyæÕuAÔ¬‘æôÓpÑ•HÝzVÔà–T´X$ræÙ0ï læ&dÖqyyRëT,)êÍ^ýàÞî˜7·~â7î©yÁ逨¹êáßIñSªX†•$óI™÷ä [^aiþïLåÓHöÉìZçjØg‚E"sùúYÙp(b.nþ¢æ+Š X­‘š·R ýÛRÎzÞ35ïÀ鼨¬ÁZÿỳ’ŽÙ±HdqUÞÄ2cn1ç%j3mbƒ3Ç™ú‰ÂAš'Qkž)J˜#ˆÚá£jæ ôRԚDŽAb!Q‹%Rð@€E¢ÆÂ#X@Ôb‰ü`€¨±0Á@ µX"?AX j,L0ˆ…D-–HÁOˆ Œ@b!Q‹%Rð@€E¢ÆÂ#X@Ôb‰ü`€¨±0Á@ µX"?AX j,L0ˆ…D-–HÁOˆ Œ@b!Q‹%Rð@€E¢ÆÂ#X@Ôb‰ü`€¨±0Á@ µX"?AX j,L0ˆ…D-–HÁOˆ Œ@b!Q‹%Rð@€E¢ÆÂ#X@Ôb‰ü`€¨±0Á@ µX"?AX j,L0ˆ…D-–HÁOˆ Œ@b!Q‹%Rð@€E¢ÆÂ#X@Ôb‰ü`€¨±0Á@ µX"?AX j,L0ˆ…D-–HÁOˆ Œ@b!Q‹%Rð@€E¢ÆÂ#X@Ôb‰ü`€¨±0Á@ µX"?AX j,L0ˆ…D-–HÁOˆ Œ@b!Q‹%Rð@€E¢ÆÂ#X@Ôb‰ü`€¨±0Á@ µX"?AX j,L0ˆ…D-–HÁOˆ Œ@b!Q‹%Rð@€E¢ÆÂ#X@Ôb‰ü`€¨±0Á@ µX"?AX j,L0ˆ…D-–HÁOˆ Œ@b!Q‹%Rð@€E¢ÆÂ#X@Ôb‰ü`€¨±0Á@ µX"?AX j,L0ˆ…D-–HÁOˆ Œ@b!Q‹%Rð@€E¢ÆÂ#X@Ôb‰ü`€¨±0Á@ µX"?AX j,L0ˆ…D-–HÁOˆ Œ@b!Q‹%Rð@€E¢ÆÂ#X@Ôb‰ü`€¨±0Á@ µX"?AX j,L0ˆ…D-–HÁOˆ Œ@b!Q‹%Rð@€E¢ÆÂ#X@Ôb‰ü`€¨±0Á@ µX"?AX j,L0ˆ…D-–HÁOˆ Œ@b!PBÔÎâ 'PBÔÞbÞTŸ={ö<ûì³÷ßÿ/ÒÏäã¡ßb@Àï/²×ˆèS¢g‰þµhŸwŸ¢Æ(Í5Ù·oŸ ¿wïÞÓ§OŸÂ@ !¢§‰ž%ú×¢}öÛŸƒ>|øÈ‘#Ç?yò¤ÐñÏ¢v€ýÑõŠ î¼óÎ3gΜ:•ˆÚÉ“f;qâ¤ØèìƒäýElÇŸ8š|ŽýêW¿ý«÷Ÿ÷CŸÔGÈ™`!M(LiQ;dMy@zâDÚ1ÿUþò—¿<}ZˆÚ)a#êÆ§SD&ˆèˆ-¸Ó)WáŒ$ äìðaѧÜu×]¢-ÚG茑‰ÿ&Ò~ì˜`"´¥IQ“жjÕ*ñß!RRך©IEûØÇ>vÍ5×üæ7¿)5qÍ3ß$aë‘ß½é¦7:;O?ý´8Ò)WáŒ$°ÿ½{÷‰YÑ"Ô„¨Ýpà ßùÎwÒûõÉ­­f¦Ÿ¢”Ï~ö³+V¬øÞ÷¾÷ØcˆÚ¡C‡ßygÏîÝÿ|íµ7°uŠ€èRÔœ!jâH§\…3’À®]¯mݶã»w/²¨}ò“Ÿ²óðÃ?úè£B×59R»öÚkׯ_ÿÄOˆš¸¼¼ùæÛ¯¿þ;^ÅÖ){ö¼'EÍÙ¢&ŽtÊU8# lÛ¶sË–WDoZdQûüç?/žhÙ²eKÃ#51«—ºvË-·lÚ´©@Ô8(†i;w¾öÊ+Û±uŠÀ[o½óŸ£ÑSO=åì¼ð âH§\…3’ÀK[¶nÞüÒk¯½¾È¢6…æ4OM>Ò!um<ˆš¸ ðúë»·nÝñâ‹/cëþó-ñ›À‹/¾èìlß¾]锫pFŠö·¿½ &¡‹,jbv8«_?™Ï©½ûÞ^q…y‹``ëq¥yãe±w:å*œ‘þú×ç7mzvÇÎ] +j3NÍ6‘ߊkþ3Ïüíé§ÿòç§žÁ PÀŸŸùÓŸ6ýñOoß¾caE-}¡"ûÔ}NM¿š0uG¿Ø ª|ä‘G^|ñ%qwóå—·‰œØ@êxþùÍ÷Þ{¯è_ þ¡©UyMŠ ¤|AÁ9âÿST¹uëVñÀÇoñhŽÀ}÷Ý÷ä“O.«câf}ñG>¡&­ô»Ÿ½u èßÿéÁ·"Rb•aŠ @ºO@/Ò{Ûú;äþ®m›Å6ÐÿŽe_ø  ”D ù Ð+µ^…€¨!@zE jâP—·îãï2=ø‹@Àú¡@þC4[<"7ëÚ'Šß1„“óå&b¨î_ŸàaÔ䯟ÿÁ§UF.¤ IEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/ecu_add.png0000664000175000017500000000112013001357026020316 0ustar potyrapotyra‰PNG  IHDRvvb}qsRGB®ÎégAMA± üa pHYsÃÃÇo¨dåIDAThCíšÏŠƒ0ÆóB…¼ŠPăø[¾BO"}†÷°¯Û'PØónþhÍ3„m'H¡¡ð7_¾mØ/ dLÇoh °ˆh ‰#Ä\â¯ÏG¬kÇïçS¸P¬€ÿ+ŽæLˆ£éÉO?!F„«qbB¯$¤rpRñ‹«ø’3;ò«¹Û[Å—y^Ü¥Å/OUg~°ùj15gÆÎ—€`ÁUÁP±TŸVÅÐíu…ÀkqwE%ÑïC,Öò,çn2\‘b©V©_GÎ!ÙÂÒ»—'^Þô'¤AB,K g Pâö¨X¤GéWjYÛ‹ºÔ¶ƒ—…up§´&7 ãŊ솎½çˆíÚ…õlâó¶êf³¡Ë ÷Š3‰U÷’#^ûæ»þ Á颷ÊÙ’'pGÂÉ=|s y±+LÐOV͉Úþ¶ ÄZG×Làñ:ЇìƇ:3±Êõ_[6AOMê-e§ŸKn¶/¶mÀR‹T‘2…Ëo–Wí𦋰^¡r¶-wÀ¤OöcU˜XO Qâ¤U1!ŽTdé•<½’ÇÝLd¸|“÷Åè·¥^ B*FOs1î_ÞïÎQ ç|…íÀÑ»žOmNÎMÓ4 Cß÷mÛÖuýAã?gX¼áõ:RIEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/filter_widget.png0000664000175000017500000003101313001357026021566 0ustar potyrapotyra‰PNG  IHDRsHús pHYs  šœtIMEà "=´sñ IDATxÚíy\SÇÚÇŸ@¨µEÀ.*!AEì[©E ^p ´ïU[@omåu·lÅ¥B­[­b¯P—‹ÝÜjÕÞBÔb{E«-¶ÞH•$€­Ú­‘Õœyÿ8'ÉIr²a@–çûIû9™Ì<3ó̜ߙ’G^aa! ‚Ø‘#Gò@(¢/± •••à€Ž@Äî ² ‚Ê‚ Hg€.@nŽX,6H‘Ëå¸fA¤ý4È@†ŒS¸”¥:/N¬%í”5UUçÅÅåUÛ7'‚ 틜…ùlì5}ÁYÄh7¸¢x¼7œJÇå1×fðŽß¿ÇA:÷>H{aq$—ËÙëSùMï†Â&L-S^­Î‹‹ËËKÓ,at‹š´S´úˆÅbz%¢ûH»2¡?¦sWç-]WV¶.œõ1‚ tcQ†ø¦÷.Û÷Jf@Ù:å|¹| œJ _ç·S¾? ªóâÂÓNÉ׬‘ûÆ-¥?RΗËÃh‰Yš7fÿ˜’¸Ù°“N¯Ò¥°Áâ"A‡!fM̬tL‰‹‘²”­ ¯Óm‹ªó pÅ,Zª«*Wlð# \wüÔš0F7ª«*`ß>ñ>•©W«A LfA:£Ð˜‘í‹)q1}Îb+«ó¶ã(!H×ÂàÈV{æb,.¶üÕÙÛǯlÝ®SÕ%Ò²©¸>Ò¤Œ‘€~ ”)¯âà H -Ö¬h DÄÔŸ“lú¦\ØšâqátýSwÊÃL|Ĭ_â7èR¦î”¯ ‹Ÿ?U<[¼¯Õ«"AÚyïÓjx………ô[çSiâí¾(‚ÐTVVŽ9òA¾ƒ{*M,Ï®X±eAÖ6Gô£AŒ•…ŽÔ‚ b/x*• ½€ ˆ}Áß:#‚Ê‚ * ‚ ¨,‚ ¨,‚ ² ‚Ê‚ ‚Ê‚ * ‚ ¨,‚ ¨,‚ ² ‚Ê‚ ‚Ê‚ ÈÃÀÚÈO¼ü2: Aº9uŸnge¡Ù>hÐõGijjB#H7ÁÙÙ¹]Ýü+WÚd͸øø,Š‹óðð@w#H7áæÍ›û÷ïÿ@ xK&ke¹)¤L›æêêZ__îFn‚››Û´iÓÒÓÓÛjÍÒÒÒâææ†²Ò¦466žÿþ\cCãðá¸6D:Èœtsskiii+eB!}mw~ûý7…BîáÑ÷ìwg|¼}ùûì0!Bè#äóùèäáÒŠ»žßu æ9w›5žžž••Ч‡=­Vß¿uëV·>ÇO7Ô×?ú裱1S}ôQtÒ‰@eyøTVWz xö»3ðûøâèèàâìP[{çßÿ8|ä‹×^ŽBº¬²B(ŠB¯Ù‘Ò3§››šþ+“=ÔÔÔtùòÏß|û EQ...·þúëÎ;|>¿®®®±±ÑÉÉÉõUeOœYÇæú´QŽ¿é·fì¿õÏ 8¼Ýw7äЊ:{QSSÓÐÐà?ÄÿéaÃ!---O>ùÔÈ ‘zò‡?3üÙÀgïÖÖBíÞ½“Ë€2k¢»ûÄ,¥õUR€P³/rײ¨ØjëÅ‹âÊמ»yóÜÚòM¶´Ê ʬ‰tµH»ƒ»¡Î¶ªRöêÕë¶ê/¾uuu --Íwëî666^¿qÒÐÐð·¿…Ö××_¸PVSScø×¢Ê¢£ðÚkp´H™˜(´rü43­Ê‰™:d_MÍx8ñÖ[ÇÉøñVõGñ3 ‰ò! ì4W´ ö±ŸM¤£í†îß¿_[[‹^³×®]¾b‘ß@/¯G{ x½{÷vpplnn~ì1× ?•é—¾úu>Dõ3aZYþ×Wé´²+¢MJ¥R©Ü5mï¬ÔίøÓö/(9¾wÚ¬\ý:¿l·—AKKRÇ­´K©T*O¦]aÌ”­QLÐXÞ–wƬ=™˜vR©Tné¬_Jy2-Д;kÇxÅTÒì´fG €Wü&ÆæÁ—ܬn ÒÙÖ,€'¸vd@ÏK?—;:òÿü³ÆÙÙYà$¸Ww¯®îî½ú{<žÃ ÑN'W×>®¹þYóç•+Wôœ_}"$<)ÊsüÔYÛOT¾JB=)Š?¶Wþ"äHPS:~ê¬â¯W‡BñÞ©Vë,«)4æêÊ++6„Rž¡’À5Å_Ïô…À3C)Š( JMQ”šbŒÓ•ºR@§¨É¬­¨Î‹ _§Yã+©PoÓ6͵çV§SÜçÚ‘!Cü‡ ñ·›÷âÏ«¾tþÇë×û »ÙÃÃIà$»$»ÿ~ÝÝ»u÷ꃟÍv~u‰´¬¬,\¼Ž¹ Kªf„é¡£Sý”Ð q³‹OM€}qá«Y†½|ÄeÛKªfÌð6q:Cÿg˜Ú“>ÝÅUEˆôó—b¥Tï™!•Uìó¨Þ3u—M+[‚s«s) þÕ¹MÆà¾Ê‰úáþõ?ÂÉCy?º;Gòï«úÃÇüþ“/¾Û{dí£F Æ«%eq¹—W…À7+g•T…!ÀŒÐ7Åû‡O,ìG L§Œžùö¶ÈÙðvá*½A=óím‘i^:Û+aÕxqY®’WW…ÒÏMª·i-ÂÔkp1z|Ü쬒ªW_óÒä!@Ê”Õ5î‘0‰Z;Ã'†¤(Jó)mŠ.B[èmUKpVÙ•öø.ŽšÝivxôšÛ¦^¥}~ûò‡P„×ûnÉ}—ßàÎÎÃ"oþÂu§üR"…åëGk>=.6!»äÚD¸°>rð{›S>Ýó—9R@sïy†N.f³¤Ãsú§ÇÈ+fÞÇæ”S£G[®IŠÍ)MýR¥³C/(Š2¼½2縿¦z¾œx¾º^cfxlìp͌մgú\1“ù”¢(ÏéscýàF¨Ñ+­i Ϊ‡ O¥RY“ï‘—_^°víÚêêjôZ[àÚ’ÓÈ näÓ<&¨¼m÷šßv ·ÖÄ/OÞûäÕfRØ|»* GX`êSûòíª€“ãd+ÿ†ÝñööNMMÝ$“µUä'\³´ Žƒ`(hÜëHÝiP×üÅŸK¬w8Eè¢Ì¤°øÏ‰ƒ/'\Ж#úŸÕOÏg¦âËÛ/†àäÁs“Û-<k+eæ4’V‡_oÂB Àz‡{¾²gþžØ8…EHÚO!m|"’öÓOi°YGºÃ9‹@ ¸}ûvÿþýýõWôuÛ@±„f½'B§ OOÏÛ·o ‚¶R–¾Í͇Љ‰‰Dèné&ܹsçСC}››m*eà .l:ô–““­Ñ¥é¼÷ææÅ—.AÛÅî§­#‚ØgÍ‚ b=ø‹DAPYAeA•A•ATAPYAZµß”Ûý¯Y“mæÿýú´ {Ñ·ÝTY aÎŽò|>ÇS«ÕEåîØm5èÞvö-ôíÃT(úú4ûmÿ§žÉUU5s¦=ÿÔã},—¯ÌŠ˜ ÙEó„¤÷Æí±¦…mÖ‹uoGprs©)ßÇü烞}hþéhw„ý°ùœÅsÀú5ÐÓS$ô)úVùƒì7eõMÇáDW-ÉŶ@DV¥Mù]ÙØT¸ÑZ÷ººº&8ÍVvQ—ûÖsÀ¡·—ŸH8H$tð-vߪž? ·mWW׈µk#:ê°ð[)H<÷>®ßœ«üKuÏÇÓýéÁOr‡ Z_Fëqq²kDVY¶ÕçÙØ&m]]@ïmu¯†ð"€Ê,»µ£ ¹”í[ŸïäÄðéW®âäÀÓËTEôÜMV£Ÿ675[šóéyAƒ|M~^œ¸Üÿ J¥R©ÊÖ±?9·üJ´J¥R©Æç¥gUVfÍÕd<译*MÎ@ƒ•»AYZöULáåœ+”MW Ëçj_œx%…ÎY6ùðܬJ3-´6»—ÝeÃý¦p^öú  õe*UÑ<¥Qw´ÎÉïÒ.Õ-ÎùŽ.΂ž.NôtéÝ«G¯ž=\œ‹KO¼=§êZ[¶¾<†N×úЂ·ÍöÔÐ]Ây)ñyùÅÅùyñ)V-Nh#ãóbæB¶vtŠ9ƽczÂ#ã_ß]Qþà×ïô¢ƒï%É3E9»¸˜žúËuëjS õJEyÐúìpîùtºï  ŠüayŒ+Te„gd˜[ºWf–¥%\ûÐT A“#…ÂÈÉA˯(aÓÈËsÍÓØŠWV‚ÉÚ›ÝkÔåtSî5è Ò9§K»T‹ßÑÅYàìÄw£#³ r1áÛð •* 8ÙÕ5âªÞÐMQaää åùÅo°|hÞÛæ{jè.†GÇÇäg„C~^|t†uûVÚÈ   AÌ÷¸·ß¦Î¶5ËíÛªä™a<ïíô¯®ý®zܽ÷Ø`1EQSÇ`AëËhÉ4¿-T^±z1ž¡R©TÑù­;<<¹Ìº‡¤¶å*ú¡ÔØì^›NLLv§+»”½fqð|¾££££££ƒƒý ¾ ÏP©j–vñ¶U“<:>/¿¸8?/>:¼íƽ#)KSSÓ#½œÇöãÇãý=bˆƒƒƒ€oãÔל¹T>ÇœÂ.¬´j*'gU„g¨ÊÖ•+l]ÞižL½lÃ…‡ÏiÇQ(ò?Ç,íA—´и¬½°›{ ülÜnãRÝšEÀwðù|>-(<Ϥo+³"´[©(äËj¿^¿¬ñ¶u=e› c}yLL9×’È–3_³ãÞ¡vC|GÕ_5/KžæáóÇ‹ïÖÕŠ8:ÚbG8/{}D «+ÅÇцƒù®ÌÆ h½g{ƒ%äÚyÑl\oŠ?S‰¦^ƒýZ8T*˜GU™¦‰šM¶…º²v »¸—Ýßx××¼ õeEÝÉî..ÕââìTSsÓÙÙYà$prr¢¿‚¸}+Œœ\®×V!«ýñUÚ~Yámó=5p—¶A‡!ò÷.>o·ÝµÑ*wÿë_Ú/2òx<>ŸOQ«Õìˆ$wÇ;|Eº8Ù5?ºÝË™öso÷ƒí[St8ß'»¦êÔò·áaئ߀.NvaNšâªÂ»á €_0Gßên‡ü¼øU§þ&FØFÄþ`APYAeA•A•ATAPYAPYAeA•A•ATAPYAPYAeA•A•ATA:/LÜœŸ¢/i5KÞšwîÜÑSí‚ ¶²ñƒí¸B¤ÍAeA•ATAº'&ÿÄ­[·^»v­©© }„ 퉳³ó€.\ØoISm³VY6¦§»8;/Z´ÈÃÃGAÚ“›7oîß¿czú’””ŽvKr¶Íe¹YS“’’âêêZ__# 퉛›Û´iÓÒÓÓ;à-ÉÙ6N¸ÏYZZZÜÜÜq˜¤illtsskii逷$gÛlX³!„‚ÃŒ íç­×AnI+ÛÀp‚t¨»º#à`¾v¦(ÙÕÕÕÕÕ5¹ˆåöˆˆíJÒØÝrÛ5A¸°ç-ɾéì1á­Ts»!Š¢L–«Êž8b¬ûþØ\æí<ÈbÞ˜âø›±—Ö}k.dOœ·]™„¡(ʪ²6 ;mÙbN+«¶Þ ‚´ånˆ™ƒUÙG¬8Ï$?§½ ÍÝt>`õ 6;áÛn7tüM‰bá6€ç^rd^V¸t®€"@™¯³R^C$Þ„@¢T P™Í±¦¬MXoÐÊœºl•Ù’­"é?'àÜGοß¼yÓZÅ¡<·öœt®*³%#ùÞ41'µ7i›;ÈN»!e¶ÄÃã ª ч€ß‚·†¤n=®]"é²xxxx¼y\¯ìñ7ƒRÏÃGS=<<ƾ6V’­dŠ(³¤ž?Ÿäá!ÉV²ŠK²•„(³%’ìì7 ­ä2zoÜ:rüMmûÌVÍ.”zžñ†ObATÛ‚ØNMMÁ½VSScËnˆuí#¢}c8‡ o:Ý­d4ÛõŠÞ侓t7tÿþ}•J¥}{*M<{_àŠb¹Ü@¥RÕ6¨ÕPûlÚÎ#â×Ê×x5¨ÕP«:úúÈTßòÏ :/.üõ£ò5aϦ¯-… û㽫óâ–6ÔÖ‚Z µ*·¸÷V|A§Ã©×ŲD¹ü3¨Î‹›—1r¨Ï¯“%ÊåiÚÖTçÍc*SiiÿUÝ<Ò¨ÓýôýcJâ¦6ï”˵2Sõ~Ÿ]š¾Ý`¦ϦÉåiÕyq}û–MÝÉê ‚Ø€\.‹ÅÚkö½½zõâ¼%kkkî5©Õp~Srô£@Q|mm-”¤Ž¼4W©ÜWóbæ}|0~åÉ4ÙbØt0Þëj^̸ÔKs•Ê•µ_¾as,NíRîP’š*»'RŸ_Ãd.IõÝøaüsñ^fÛÖºÝÐ7i~³agEÅjVšF5Cg®Ø¾,¯ê}RUU¸âýPBx…IןZª3§ZúÂà-!ÕU°oŸxŸ¦@ÜU"‚À3Cõ…ÒËG ëf‹ÉΊ5¡«WCÕžíÆ¥èÆ¤W˜æ6©š#³¶/ºlº6ÌØW1¾I‹‹wV¬ Å±ŠŠ ??¿ŠŠ ëÌчš‚²uã|×®(Þÿš'EQÕ•W`ï^ß½š¼S+)ÊSM€š¢(5+f†R`œÓs‚¬™åKvÊׄ­^ ÕyÛ´™ RÛ~ÈhÍ îèU—/³ÒÏoöð· ÷¾æ¥Æ3ðÕõ§í*‘Ì‹.F Ø Ò¡/´™Ù鬮~´ã$iôªË—WÁ7+ýüfC\n¡/w)–­YYµñÖÕ¦E¾w!.÷òåPÀ“]¤µ\¾|™sú˜ÒÍs pEѾÞÕ{¦F(®âÅNÔŸÞ†ÏoîœZQ±¾I‹gCÜÎ"‘^fƒÇꃟ³P,F¯,//_O– <øSE@EQå9}.yï½ @ˆ§—øÂ{»NQEU—H/ÄŽÍ6¡-B_°ß^PTSÅ*nX„MõžwöTSÔè•åÇ–¯¨"&J[ó F9MUíé%¾ -©ÖôE׌Sï ì蜥oß¾‡Љ‰‰D8ÒҞܹsçСC}ûöí€{Sªg­²¤¤¤lذ!33Óš@ ‚Ø@àîî¾téÒø°çT=” :† ÈC¤ƒ<ì9UÏ6eA¤Cѹöø¯‚ ‚Ê‚ * ‚ Ýîs–5ïg¢k1CÚ²$›•Åb1DËÝ»w{÷î~@ºÕœÏضwC‚´7¨,‚ ²t<ðw›ÎyTApÍ‚ * ® ç|k”EšÈã%J­Í­È á…d*º§ó™!<†Vø@šÈlSvëB:ΚE‘¹V– [kv.Jµ“U”tšœNêê^8ô[‘—§jþé§=/µÉ¤41*7¡€ÓI"ûû°Û òPÖ,fþ%3õ}µ^h<åÑýÔ”]oÀ¬ÙGN\hj>ÞWiinilê.ð›šõ}¥ØúZò£Í™ã4NðœŸèi“Cî«áùÁ^mäÃî5@HÍùÖ¯Yˆá¿¾*/ø¦LôN| >/P°Ò·ŒqêáâÔÃÅiÁ1é—ÿÝgR†:õX %DºÀ%l‹B¾eŒÓ‚cšìÇæ÷ó¡‚¢øp¬ ]p~a§ýg4€¢(=_) ™ýbWn]—µ‘.p Û²e>8v‹œ5oö(ôŠÝò¡&‘õ©îZºÀ%lÁ‚0Ú±… ˜5#b<@Ö· A˜9o¿ÝRú¼$ñð•LCR¥æù<³äò‹õ MõGfŸMÙ\:žÔ[êŠï€C¾Y gÊï¬oرµ©¾¡©¾áèÌ]ïoUrõmC{Ÿ³(¥‡haI^‚%›1rsvö²…–vê‘/ÎÜõï"€c_^Ú´(@)/‡3Kœ{öpî9içÙËUYx<®=çÙËJÊËaöÿF€ïëËfÑtúù‹&2^‚KJS /µiQ$€ïÂe3-´ëù)Í .èÙùg¿›£lÒàžóÖŸ³€^ ðÂÍ)gÎÂО)Ú¿,ÜA ó±Ê²¯#“7¾Ÿ°E!„÷˧ì2ŸÎ:\¿-–3¡Žx”EÿKOl%SF-þ²pkx„QVV>BX6tW¢QšÉœìDåÖñ“ÈáúÆPn7Û¬q[Ú†tçã[Í?Ên5KÑ—»GmºXßxy]Ú8j׿‹|%SFíÚ°Õò³ÌWò|ñÏŒ/ü—.ôðûƒU;!¾ –ÍÚ=ÉåuíæA¹u[ÓezåÊ­vÏz1Â&«bÿ³‹3ŠèÒïk ¢Á£Î0 ¤¢/9V%ÊŸÏŽâˬ.Ͷ!HëNp ¿Ü5jÊD¡îG9eÔî/"œâˆÿ’¡½zºôêéòz!!$â…™g– séµð!,‰“a×nÿÙ÷^LMA:s§<Í"F'¸„ð­uÓË'¹0½›C"Ù.3‰Ã>Ÿ|qk8!z.b]s%F|xxÖîI.½zº$À”™L¢pþR&±×—0Ó¸xø¢ °øéž.½æüì?бÃ5@6´ éî'¸Äª\î}uÍû™KÞœßÒr¥×<=\œ¯]¿ñä“O´«¯”[Ãÿçò’º­á8ÈCšó}vˆÂÉø__Åo÷w>Š3—œ5XˆŽ@:0fNpñ1VgÑëö÷•r{øÓ˘³’™Ÿß] ÄáAâœoµ²üK€5>ÖHKÛûJ8¯¨n{pÑûÈÛó³ánAvÜ U*ñ7°Ö‚¾Bk•ÅÏϽc妓Çã¡n5çŠ[©,|>þ“Ï‚´ÁÁ²¨D©= fh¹Nq¯mÕTTdÎ8+Ï‘°«g@ò Ö=%ÓT-= fêPd†DA“ì_!%.H€àŒ=I³rèÔ‚ÁÓItŸNJ(-—ë}$7a’Ä ƒLs@ÂaMđ߰=f êuŸ+¨3—¸ÛIŽ<öÀŒÎ®-6Ÿà:8ð<Ü\¿9Wù—êž§ûÓƒŸ´æ‡ÝŠØÔ aÈqsמIDAT;ŠümpÉ’RJä+è;/7¡@{KŠ’öd@rºäå¥ÁþbMr’Äê*ÅþÁ¹G¤ÆÂò€´ª=Šü›’ toÁ¤,$¶ ¢¤ÔÚÙÝBYzötñpwuqvrëóèá‹q/ ¯»W‡Rbt %¥p=ÞtÿR³h×,mX‹Efˆ…Á EšÈ‹Ê…Òd±fm¯_ ?11DéÏ),úw^©þ/ŠŽ –U($“J[õðEÇj¥Å~ÂÒªö0ÝE›–VlVÙÞ•k·€ î±g%„dVp«°¬BÑ”å‰Ç=êêá?ßÿúäãngË®ÖܺçÙ¯Ïèç„ÍVDñî†Hr Œ´Eš(>K/ã `m¦B2)¹Ï¤GdÁÌ WäÍXCi²˜cö²6 šeŽÄ¸Ú‚ÌþVC^^àǵEÈ ÖN°a;èÝŒ$‡Ècˆy¶üÛSúâd ,ÚZiÏ ¿ííÑêª iÑóƒÙDÝÎ+W»L-M^ {ô¶OŠÌí¨Ðà M'ÐÿfÌ\Wù°·Ž]XYžzÂãÓ#?|òÅ÷¿Ü¨;$½èàÀ{Iò EQÎ..¨#&µ…½ UTÈ´·DTni¹\û\’‘ŦÒ3œs)Á} aâž1ª ØÜò„u¯Š“t Ž™ÍÚuœ&Dž!‹²M\47²¢BÆÖ-ms¬[Åç·­=,/‹¢c5L\~àN4X´Då²›·'I¤Ù>•Ë™`*»¨¢Bœ‘"Ñl²ºâ¢ÅZe¹}[•<3ŒÇã½þÕµßU»÷,¦(J À¯êšÒ–” ã܄md®‰æ>“‘ÅFK¢c¡\nibúµ´î^eï\tû#ýeŽ(iO†A&ë¤Ej—nrœNX×izr©vÙ#N.]N3-|ºÃcyF0·Ì?ÀéÇ¢² *KSSÓ#½œÇöãÇãý=bˆƒƒƒ`v¦Ë¢4O3‘_äê슢cáÀŒµ²Øhˆ¢ceGÒËôŽã¨…û(ÈÒ#Q””š«Fi¢8觬4Sc^‘ ”cÏdIZ’£’í),¶¶Gz$W· ¤EÁ6yÔ»ýéúùJu @f¥=«EÇëŠÈ/ ”Y*)2׿rŠ’ží¬ÊÂwtPýUó²äéqÁ¾F‹Ç‹ïÖÕÝ»WïèˆÊbá)ªÛÉ3@ÿÈD ¥Ì]&ŠŽ•åÊZuÇI&%hOp9j1·/1»Ÿ#ÅŠ‚Íßn%~åÚç}@Áé$È ‰ÊS‡¨ ƒOEѱÁ†»3ÝA’u<×ÏoØ‘eaÑ«Þxyf˲”öõŒòÝš%8 |†¦99ÌŽçtA€Þá$§ !7ŠÇãñf@lB\²¨T*•JµaÓ6vÝÕë3´×ÿܼ¹Ný{÷šššïÝ»WÇ⟛7cäáN†<#XïÑàØØ["!ZQi°jÅ_Þïšë©Øq¢ŸÕg1H;Áüݨs¯X¬øÝþÔ°ëjËi yÙ‘ät…P¤EATAPYéž`ä'A†²F~B¤vCùÉ::Kä'£ŸÞ¬ ¢ÄÝ›t†¹ÂH±LIí&ÊœóL:Éœ»Fø¥N ,€‘Ÿ¬¥3D~’æÃÍot«ÊtwŒ~*©÷›^RÀúM£Q¤%‰]ÃDq‹CTnBgÜ'ËtðKCY˜ùÉ ò“$‰¹Û$“ÀðD¿‹´º;ŠÌz_¯—äèî}ó‘–8°O˜¨ùíMW¿Ô9”#?YK'ˆü¤mR…Ì0ĂѮMuÇДQ°(#›6DZjE˜(½ŽëÜ¢ ²Éì´2õÈ¥‰¥n<üR'PŒüdãZºƒG~b­2R 6 ?†ãêpDlÒ,w«¥HK¦¤Å–0QkÝr:Id:Ò’&JSAB©ñú¤ó‡_êÊ‚‘ŸZ£-;ò}·Y÷³!£îè5LcCSŸ(é4! « ƒHK¤Å†0QÜg/Í8#-i¢4qí qÑÒÊ‚‘Ÿl×–ù‰ ZdýÏ9ºcô„ÎûÐL¤%+¤Å†0Q­yež.Ë Ã+ F~jÍ`‡üDo¸o?Sjýîpk$‹Ä§õ‘–l e¾ã#-™ZvòðK@Y0òSkµ¥F~Rd®ÍeÞä2}¢×0ŽØ$J:Í%ËØ“$²)ÒÒƒ„‰2ßqK‘–pÉbw0òÒ½‚BÉ3‚Ùû& …‘Ÿö[juÝ PÒôäÒà ‹{œ®~é!‚‘ŸNmébA¡™!âäRíA¯åoåvðKZY¤kHeº¡#(‹#EF]ºí{½îÑ{÷ÑMf¨íÅôÒMf»²ÿ#g‡öy·ÕÊ2æÂÍ—üFöëÕ×5æ¸WÐKH7™íÕw\.ÜlýšEt­nX¸—Šçp1˪ÈOºéqŒ³ TjœuH·˜íÃõù±øjë•EpŸ8::4Þ°.òS·=ïjă>¤;ÍvG¾ƒà¾åIoî›r„¥±`1òEð‘æ<‹y]ªŸò•âÁ j^+¶)(Eæ ÆàX.JÔÚÌ)âÈpc[HÌëR®îh>Õ¯ºìuã^óŒª`7XñÕž® ½œœe ^Н&hòLȼÁÕ¯Û¶Š ³Ü㢫\Ôš—n¬ÍŽ£…¦Úùe圲PÔ,+æ#?© ¾@M€@°ß¥¨ÜBv ãÉV|õù¬–|VKÞ'R “Þ­=)d[–æöùJaƒÍë>)´ÁÏ>O8>%ñƒ ŠÌm‡bÿ™)Ñtg­¾qé—KKÝ)Eæ¡K ãõ³éšÍªBëŠÞŸ™$ÿLS…¶ƒ3'˜,Ën^ZoñµÅL‘ϲà{ÚÛ…‰qSdSò‘‡ÄiÛ6 ·Y“¾ÕZ°ÊE­{±Æšë%Í’;þsòYQRßvœáÔƒ+ !`ÔÉTä'ŠÂP€ ”Œ_6fþÆJ¡=Ùjƒ¦Šk?²µŠÇ}DÌõ„Iãˆþ§¿;@&G?®©b€?œ=¦Ðe(a«ÆßŽ “S¢&ëeÓ5i¤q »¡Ð%þ¶-d#)xg®ÈT9Ëj^Š‚ÄäÉÿMФø$ENŠRlÌwðt¤.ŠÌÎ ËÒ/X;(¦Ìšô-Ûù]Ôf“-ø)a»Ïp»¯YÌG~ÂÕŠöQF„Iÿ럜½]¡K¡?Uf®råMwåMwM¼@àB2oWóðÙå"Ujò$K ê?©´™ !Ò]®Q'¡ô“@Þtº ~-tþ]É!š·z¯ÛמŒŸ —¨(; A"míO½ž:`yº¦¬Bš.{åõI¬V1ù="bápþ ãf9û´&ñXâ[‡c7n–˜î wYæ¥Ìÿî\Âð Fž7N÷‰ ’ÝPZsf |«çI­K.RH#èáÐ ·f€VmÏÔ ¥Qñ–îr ‘nOœÎT°Û¶Šî”nÜ Œ€¥Yan†´Éš…" Ö¬Y,F~RSø5E`èýÞžqL©KQSÒÝÏñ=Ù}‹ìÞG·+†J¾Î—ª)Pùõ9øî˜BM?ÿÅb}ƒ¥Ÿ>˛ч7£owÛ }!yõVAOûžìþ@b\ máWñžÝ·r†êÌ*ŽEðfôá-¹’ºû‰~ä×Î<îÍîŽä™¹ßšµ2ÿ;;Ì[×mŠÚ;z9pAiÔìüI»¥IÚÄ·sÃÞbÞu0ñGÓe™òœ_cÏs¥S¤ôšÂü ˜7kà[=OŒ‚I¥:¤`÷-²ûyu<= ’ûí'»o‘YäÀ×Üy §ã“+“vß"»÷'ÈßNÿ‘Õ¶å‰"¶ÙÝßgürLɶcaVpÍÓ3ÜÊBé”Åbä'ÔúE(5¨)Éô}{?”êRסtïÞLwÞ̸\ŹÚÛ_T^qƒ‚óeϾ GòoPŠ GàÙ "}ƒÁqß‘5dG ™>Ž]ÇG-6°©¦Dã ÈŽ²Crd¦;s?³»`Ðÿù×7eÞ àÇ“û½•äΪñƱð÷hw Ô”hèßî²®Ùßeˆöù‘Ý—}×ãB œÌñ7]–y©Ηß0ö9¡I©Ê<~B›žxQsBñɨdX2Äü X6«×<Îk ."tGN¿»:øº\¡ööëw>¹è¨ üž³ö[Î_˜ù'+Ñ}Îéyƒ“ß}N,ý|ÓžM9 Seu-›³¥4ãú?4]XCÇjÒ?…ítâ“QäS²H¿µ\ƒbÑ,Û·zvŒFÛEÔ‰DÚà»ïDÎQD÷iÂþÁ[ð$o‰ áÎcf¬M%Jâ´u`xiν1µ0+t×\p$š¯¶i_ÖÀS©T³óÓ%oÍצ®y?óñ‹QㄊFPïÏÐ~—Çãñù|BˆZ­&,íÊݱÃ1ƒ-tª23’`ú—I芶ösHyäœ!ªÕ"(8Yù„üßiËt¿ßøÁvZ@îܹcáÛý ÎŽÍÍjgp¬·.òS·ýv¿ ¯Ë}Çß;é/„¬Yâ—±A‚·ÛQž•\5"ÃéT³½¹YÝàìØúß )û÷úå×;Þ^®Ž3p1bõ} ù]©S¢7N…CÛ&(ŽNï8G_'¼ûWÒˆÎ6Û«¯Þ©ì×Ó[ÖZe)æÆÿñ–oéUk~}Ôiáó½„X‡ƒÓåÍ›š“•ÒÎ6Û•ý9ý´û¸¢Ö*K3ßFô…}q. bÀ‹ Š>BÄþk3t‚ ¨,‚ ² ‚Ê‚ ‚Ê‚ * ‚ ¨,‚ ¨,‚ ² ‚Ê‚ ‚Ê‚ * ‚ ¨,‚ ¨,‚ ² ‚Ê‚ ‚Ê‚ * ‚ ¨,‚ ¨,‚ ² ‚Ê‚ * ‚ * ‚ ¨,‚ ² ‚ ² ‚Ê‚ * ‚ * ‚ ¨,‚ ² ‚ ² ‚Ê‚ * ‚ * ‚ ¨,‚ ² ‚ ² ‚Ê‚ * ‚ * ‚ ¨,‚ ² ‚Ê‚ ‚Ê‚ * ‚ ¨,‚ ¨,‚ ² ‚Ê‚ ‚Ê‚ * ‚ ]–ÿjÏŸ[öQ\„IEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/Mark4.png0000664000175000017500000000526213001357026017723 0ustar potyrapotyra‰PNG  IHDRhhµ¡sRGB@À}Å pHYsgŸÒRtEXtSoftwareMicrosoft Officeí5q 2IDATxÚíilUÇ/mÒ…R e)]e_[¶R ] l*•˜(ÁH4jÔ¸¦†` .á‹KDë5M0¢‰JQ\pI´q‹`\Hp© LÐà=Ìÿ’ÛaæÍòf¹Ów_òà{¼¼¹¿{Îùß33wØŽ;˜–ºÒƒ ii@–¤¥i@aÿXÆ8(Ç$ÛÏj@á¡Aε”k ×½\ïp½ç ‡¹nÁ¿kPò…±‚ë ®¸~á:€~çzkU†¥"å:®Oâ¤ï}`i@‚YÆõFDPìÔƒÈÊU– `h æ*Æ ÔÅ2¨¬dŠ˜ZÔ•À˜õ>WS\ â3ŽëÅÁ˜E>=ê´%œÌÂë¹N' ެ‡¢Œ¦(£¦ˆ«;Á`Ìio$@…MQ™€J®Oû !Z“Í;š¢Hió\`ª&JÕWrå…)L8yøñI®7nõhX„s_€‘µŸ«XÔ%åIp"r² Îü÷)`€Ӓ%iÍÒí‡@Ò]Ðim2×YǬ‹‚‚$œa\_i8çt‚«.HA­ss½©ÁôÑ1®Q™º»LœA\;5KÂäõÝq¤²Ô¸Õe˜Ä¹‘2Õ!\oiŽ©n¸ßz”Ij£ÐmÒ\éN®|Lêð™R[!×çzð]©—k„ŸTçPfÃf=ðž´›«@¸ºÀIÑ3³á¨tÏ« 0wëÏ(Šº"?kêØþ Û—Nbñê:ŠÜ’mõ •aÛ¶mg;vÖü:räˆ*¿ñ9Šœ y­==Oª È ŽxíÚµK…ßxk¨Û(òêÜJ¹þTNww÷Ùt/E‘¦ 9::¯ëž6•£çĉçaœ>}Ze@7" rJs^º–ÛU…sàÀ>0ÌW ЫÌ8=“ï”æ¼Xkê'½«ª1_IôÿtkIGËíÆ½‰ôFêýc@µHq@¤enҜ۵¥·%*¡A—_K¼§8 ›Ý¤97€òñE[U7ô¢t—@s•InΠ<äIú¢“` ä÷D×Ñ•£|ØÖ!/õg¿jÆ@¶ÒÂ$Ðw\£êÛî}‘R¿SëÆÊ$ÐqfÜ‹[’®«àfýC_@·®ÿ˜c @tú¡Ý™|¿€„A /úUUcÐÕÕ•D@¤j¬/m‚@D¸J@ûöíë3臶ýl¥œœœÛB*€dc@N÷Ù/u|*éØõôôôð={ö$P-²mËÇíˆÅzݵ[cP@…™PŒõ«ÞÞ^WÆ A€~ãšà´Xõè *Æ€R›§8 Ÿ(ã)îÙ$ƒú8ˆ'L¹¸;â8s¿¢‡ÚÌ/ŠDùý˜½„I6›T—Æq é.Éôó•>;3µÙæ…ê¼þÈ Q[‘™|/TåVm~D Õ€2Ýlü/ׂ Z=âbj–NeÆ6’‘ÙiªC~d~Qý’ßwcÕCÒ\3˜ÑãÆ|6Kͧ&qݦØB/©.îiLxšø%Ìëé›vä8ZžPfÚ‚ ïï„]«=›%h×*EÑŽÃsݬ¼^4R‰¼¹]ÊH/a¢;¯—]aÆN"K’’æt9×4fœîNk¼^¸XްœÃµOò¥fìŸçªþø¹ô—Âr&3ö¢Q>ŠÌÐÇh«esPÇŒÞf —þZ]âjDzǼxÞl·©Tϵœë¯$­‹bÔ¨=äÞèFâQ,ˆÛOlnà‡Y@³a·|WÚËŒM?fZ¸7ÿ7pÙtÈ,L€Yha ]/§¨NqmbF³yÜpp·@ZÜD\Š5‘ˆ"±.:£aXê Sô”± o"¶¹ _XnªEÍÌ8;¨a\(ªÑ+ýFO&YˆZ4Žn=3ö£ÑPúƒ›¸¡SeŽž0·‚)‚£K¡m±˜' Ni0çõjôÔìÑ^£'Ó͔ĺh2B¸•ë æœ^cÆ-Ž ¨Õâ"yWÎ-ÈíÈʺt¶u!W;3öŽÎfÓp˜»±1˜…,Sެã¸î zC?aÆ#Õ5áǽ¥p~bF¬©m"ŒA ‹bC?›-1Kð#&âGQ·{××Y‡LÒUHõÔ#UêÅV‡±©l~D…TZàìõs(g¤È¡FèR©îPêRݦ²6k#¹MÅ ¢™´šë™~é®0 a©kú‹YÛ2Ûll.¬w5L]VÔH÷sýÓáÐä[80TGÁR‹ºýÆæõH6 5$IôìºãýÄáÑz¯‹«iMÀ©Åz§D¶Ô,ŽGØ@ÊÇÌ‘!ÍGM¢–µÜ¿I8œã˜l«‘!¢Ï&à œø®áR5jÒ<¸;²àk™ñÄ*e÷K5/2ãá·+1é`¦¤È)`*=ž& ¤bÔ¤J¸»z¬“–!5\Âõ\ÚCÔS£‡lF½YŽÉ6“¯“±Dеð”¦&ÁÝU`4 )¡³p|/B58r]‹Åç*Ô›E˜l“1ùFJ† °È  ¤B¬“ÆÀáLGÊ[ŒhZ PW3uö££:y+Àt …ÕŒ”6ÍÏ L¾"§ú´€$ÖIHåX+MBk¨ÞnE×F}'ÕÄ×¹nÀ"»é¬Q_‡î@ êM)&_hpBd±N(Õ¥2DS 9¼ÎÔ®m¨SŸ…T«¾eÆö”wa±)"fÒp#ÚWÓýè E½‚d=èÖ!å‰h‰Põ¨e¨Qk0h«iç1 ê—¢ì8`P„<ÏŒÓô€²Îr&H‹f:ÒY%¢˜5çë K⣢Ӥ<ME8`3¨:äú&ÌâvÀêÀ@ `¡NX_¡M¦¿wJ06È:À_…4ֆ𨀉"ƒ…tV$þñ°u›”'×&+P)8¤¬pNÍÈv¤ UH‡ìµÐ:éÏk |~%€,E¤(sá0§`¢È`Š¥t–EÔÄÈTž¨¨Q•¬É˜Ñ³1 ‚š°iF¤µY¨ –F#€ÌC¤Î” XÏŒÅD±“%˜Ø¹Uˆ"\ŠÁ"Ç4î©p*w&ÀÕ¡f˜U÷fáóÓ|"µP¨¾ Gm,´“5˜Ø¥I}Q„¬bDV™l, Uaæ§mf¥¶ 0*åø¾RL†"@Å_¤²ØÀ(( ¨< –ˆ¬!°¡€VŠ™_†ÔhVÞ/ÅçKðï‹à&óMPr£®1‰dj€4‹ÍÀKQ6*°x/_‚1ȤUÀ( Ȱ\ œ“rM0rLß«”Dræ[‰9Þ¤Ê6éAЀ´2Ñÿ"Õ H¦Òæ˜IEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/app_context_menu.png0000664000175000017500000000430613001357026022313 0ustar potyrapotyra‰PNG  IHDR¥„~¹|sRGB®ÎégAMA± üa pHYsÃÃÇo¨d[IDATx^í]=ŽÛ:ö…ø¯4°{-[äÛ,àK¤Ú"gH™"^N°Eê )JäðW¢<æHÔg<ä%²DŠüæ›ÙßxNñ:Ì\¯×Óa‹…þuxÿúùƒë¿ÿÿüùüüäãܾÆØ7›•ßÉ]GÞGAÚ˜ðÞL!ñû®žyÝàà7øÝŠßׇÓéáu•¾>ž¾¼¼ÿøõþt6©½çÕê‰ÔìîõøÌ~ó½Õ®¥æ|9~«?_Ï«ÐÒ;¾âÂuWÅÆT'~—kÞz³ŽLA ïïÏ_ÎÏßÌŸÕìÞ5œ¦Û+…÷·ÃlÍò§ïãÝÙÁ ctÔÞÁ9ngñ¼´µ§œ?-o¿+üyì䛲_ ~+ŸÚÉ¥ë•?>¨ø§_Ósmö ¿½ÇâáÚ)}#O}c—Í×bkÊ`О×2ÅŽ(_#™£7¯LtÀ;ï?’–ÞÔü¹|ÛfÇÀ{Ê¡Âÿ©Ù´eÀ›3¥Àüdÿ¦ðæ4dÁ=ÝòÔÀûXF¼÷ÚÏâ?½Ã;ø ~ƒßL;~‹LÀx ïâ·0}ðÞLÙÊìóXúÔ¢þnsþËñ»}êðÝhVU]À[ÆÄðîGŸê+düx ¼Ç`Ñ“>ÕêsŒÌÒ¼"Œ÷QLß^x¯¬Bˆß»×§Òj‡”Ôîí2Äõ”ˆ%|Ë—ÐŒïö…w_úT⫨†ƒª—ˆÄ]Ÿ’ÀOïv…w_úT¿¼ —&¡½”0/áϻҧºJ£côÏ<læ­Q™¿0ϯ7¼ûÒ§úe‹Ôoœö£±,Í×oÏ,cÀúµÆŸ¡n¡^0á‘’ºÕŒhu½CÜë-L ~Ët6…÷±¶^„îÀûXF¼w«ïCEÚÁ'¿Áoð›i6èKÀoð›ÉºgõL4ÿîo ü¿¹ùý¯mì€ò^-ø­Z൅h„w÷AqG lÁïmG÷· ¼‘¯qçkÝ“fG ¿Áoð›i6È{ðüf²n|ž ~S2¹vþÏ%7%\±&¹ÃßsòçƒNÛuöyz »ü”Q¯*¦ÍŸ6¿ þxõ½×ëõÔ÷ ±:º ï½4MRÉÔË IEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/ctx_context_menu.png0000664000175000017500000000453013001357026022330 0ustar potyrapotyra‰PNG  IHDR¡ŽÖÉÿsRGB®ÎégAMA± üa pHYsÃÃÇo¨díIDATx^í]KrÛ8Õ…\¥kd©*û ^¸¼˜Cdã*]"+/r/³ðR“x1ë Aü¢ž*“II$@õë× RýЧëõú^ǵÀ„ï _ñÍ<Œ?}´úóõõõïŸ?ÿþm5 ÆÙ`é»À¸™[oÀ ÷)ÀøÈèJïÆÀ¸.7#÷ŽÃ%ãƒÇàq_ÿx=ŸÔëüü³n®öùþ¤'Ÿþÿô€=}úðúþñùþ|–ÿØûòšÍÈÇca;Dzïϯ¡•ó_RcPdzòàüñ§«fl†P½oqa,Qg•]VYï,H|¹’œù-_Ú f„^.òÍóËÏ_N˜}ü.<Ýž5 +h>ìãóír:_¾™˜,V(àõ8ç—g«Å\S¬Žf,Š«¼¶×ÁL<žLI'`aJ­M„³}%<fÊ9\„œ¿]´L`OïKOJñØ€oS³ÿ|y8©4lÎ]9z¶!tóaLòØç÷õQZœ„ÓyÓ¡¾Ízƒ ÂuS„™çy1´À˜Š]éûãD>ÞŽqùã1ïs.‘Pçuu«ãHKFNq–JÀ6×–Äêà¦Èξ«o‰åL±Z"áÆX“ží›:õN‘ÜFfw¨ÇÌšK@5ìlýÀÞ Û5šZÙk.qÁÎ ÀXÇm<ËܰDj~ çKÞ?›= ˆßºÃéçŽ<<î÷}0rl`||*c`\÷Tëêrx ƒÇuÏ!` Œ÷°òñVæe30Æu+Ž¥{§ê2ýŸ&5šuÖàb3ǪËtʉ 3 7PÂ…ñxu™™2BºLr§´©#Öe:nçUyú@zåËCGÉôL<¥.Ó­õ1“UžòÈÌGä§CÀ̇ñpu™ÆFüâT.ˆ*O -QºT:À2 ã¹ÌÐI0Öeš©‰<âb€'„¬Hsa,«ác½W]¦3ï\UyšXúH•¦OŒ¢ý^ÀóamE‹öø0sà°@>F>n”{¸'Æ,´x ƒÇu(¤Z×ÃÀcð¸Î‹ñœ«+A Áã^/| ‚ÙR+Ëߌ±ÚÜöº ’÷͹5—Å4` e¥ÅÝBˆ^%J$=7‡3-D\Œ£–#Ñìr©a²²¦²>ÑݤÀÞ76²raÜ2>Ò«:,·ëÏèßå†1Ž…¬U(fãžxâ¶|/>(Ø7Œq?DõÈÎ6€ëž•Ž60 Ž ŒqÙê<å}øý¸/׎ ƒÇàqÖr®Çñà1x\çÅÈÇ=x¹vLð<ë,°–s=Žß‰ÇLÂLLû{?Ý"‹,“NØã!cZ`§X]x58¬‡€1ÖÕu«JÜ÷àåÚ1Ácð<®³ÀZÎõ8<ë¼ù¸/׎ÉÅã¨ÆV>6ëŽ#JìL5nè¦ýTnƒ†FŒ))¢À£ººX•­/ŽŸ¯ª°µ$f|ΕQÔbÊOÀã™È×ëõ4ý'I½ÁSÖ×s‘j7VG²RJÒùôøí à´Mt+¢õéžâ|³n ÒÐz­†bŒÕ¶~ÖÆô öб×J:#q‘)h5Ø*þ«¾ŽÊÔê¬(é)bu™³§×Õ‹<ö7Q(–tZ…  Ë•©2]žcŒÓ K=aq ‘™ÏÆCæcŸÇ¹^¦áÂBÜí «‡[s äÊZ’ZŒ§ãƒÍl¸Ö»ÞÃʼlÆÀ¸nÅaî å²À~õ\‰rY`?ŒyÒÏŽ|Œ|Ü(ß9“x¿>x ƒÇuàe°œ<뼿-‚ÇÇçÐ}c¼±åiFl¨[¤?XùëJßÚ|b]låLù¸¨åé"AÍ⹋´é­Ô §šq˜0.jyº††À4jñ‹ô=€ cBÛ´<ÕZ˜ÕÅÚ r‚R_üžëÀ*]§él˜§·@Kž¨Ä5Jq_çš÷ÞIÙTwšŽÎ~ „‡"y¯ê—:7ÚŽB)]M7?C)Rë´ ô6·ˆ¯³/5W…n.k”¶<Õ/íešBhÆ8Vº.´ºtfw=íné>ìÌxsclTÂåV¶Ë泫¤¡Rå°Kå%d{U׳8Æ«[žº‰6V™Æ6Ëcb5°-V›ôaö—Éì†À?Æ2×ÊW²åir¯y^ÔËÔ½?Îcì‡kuö’äÁQÆ’k®W*fÔoST½vã˜%EMP…=¨W-^nôà{¸ÍM9‹wVMz«…tjW¶* ŽOîûÀ¸:¥dæ ñÁIÌûœëøÆ„ýàññ]ÀX¾…×Á,àí‰z°ï†¯ãñx‚¯[à@U2XqT,IEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/Mark2.png0000664000175000017500000000526513001357026017724 0ustar potyrapotyra‰PNG  IHDRhhµ¡sRGB@À}Å pHYsgŸÒRtEXtSoftwareMicrosoft Officeí5q 5IDATxÚíilUÇ/t¡t¡”–è¥l …²•JËN)TѨÄD ÆF£FkjÆà¾¸D÷¨Áh‚±š¨$Å—D·ˆÆ¥ .僩“êê=ÿ%·ÃÌ{3óf¹Ów_ò’¶/3÷wÏ9ÿ{fæÛ»w/ÓRWz4 - HÒÒ€´4 (èƒelD4Éöw5 `€Ð ãZ͵‹ë®·¹ÞM¢‡¸nÆßM²¨yƒBƒXÎu9×ó\¿p ø ß¹^ä•a©F@¹–ëcŸ€$ÓwˆÆ!°4 óÁ¬áz=$(vêFde¨K04 €±u‘ *-™"¦µE%0f½ÇÕ¨¨ÀTp=¬8³(Âç„ö„3³ð:®þ˜Á‘õ`˜ÑfÔäsŒ1sÚPFSX& ’ë“aGˆÖd‹ƒŽ¦0RÚb˜ª‰Rõ\™AA N&>ÎõÆ© RpîM0²Žpˆº¤ N"'àœÅŸÄùû)8-i’Öì ݆qð%ÝùÖfrý‘†p̺Ð/H~ÂËõ¥†3¨>®z? ùµÎÅõ†3D=\e©º»Tœl®}ˆ¥Žcòzî8øa ªÓÔ8Õ¥˜Ä¡2ÕÑ\ojISÝ8¯õ(•ÔF¡Û¤8Ò\9˜ÔÁ2¥¶<®Ïôà;R/W‰—TçP&fÃN=ð®t€+W¸:ßIÑ“Ùð½t×ï鲫 0wéO)вœF‘—5ulPéÄ÷ïßžô¯Ž£È) ÙV¯Wád»ººzzz}Nž<©"¬«å(JÉmí¡èy"Ê”âèß¶¦Á”"5éf\žÉI–æÜXkê'½ÕI:thp€»»»ÿU­¢hSÄÍ•8±ÜNÜ›Hot£ÞßQžXgg§'¨ŠÖ¢5NҜӵ¥·q\Z}9¶›œ¤9'€rðE»5 _õW±äæ<ÊDž¤/z@òUt])ʇmrSŽ @ -Z¿åš¬9íÐÅîæw²Ô ¯…N1ãYÜÂD]'ëúztýǸ"Kmþ³SäøèòC%º39^ ƒ@_ôkÜõõõ©Z„&c}ikœ"ÂUqdµr³È IÕÉœœÓ”¸2GuìZCjªÔQ𠨤cȪöPïNÁc­C¶mù8] XÜwmåÜ»Ô`(/@%ÅXÜben*šÚH¿qMK¶Xuè˜êp¬.1Dló¾°ÜT‹š™quPÃ8_T£7xžT6²µ¨Žn 3ö£ÑP†ƒ¹–£SeŽž ·‚ɇ£«FÛâf\€:£ÁœÓý¨Ñ Q³'¸žT7S뢙á•\wk0ƒz•8.E­7É;rn~nGVŒÐ¥«­Ë¸Ö2cïèt6 '˜± ƒyÈ2¥È:I×=~oè' ÃT¤º&Ü[i ç'´Áš‘ڦò06ô³Ù³1EÝîv®¯Ò ™¤+‘ê©!: FªÈ­bSÙ\D¹TZàìŽs(g¥È¡Fèj©îPê/A)oSY›µ‘\j1ƒh&mäzz˜CzŸkLÁ2Xê)Hý,Šm™m66Ö{2LÝV´ îãúg¡ɷ pa ¨—ÁR‹ºþÆæõH6 S$H"’èÝu§†‰Ã£õ^'WÒš€SƒõN¡l©Y¯°”ƒ™#CZŒšD-j¹s8§0Ù6"C,CŸMÀ 8Ñ¿\äɨI‹àîÈ‚ofÆ«NÇ0j^`ÆËo7`Ò-Á$¬–"'—©ôzš P“*áî`´©áb®gcТž½8d'êÍ:L¶L¾É˜Œ…Rä¨õ‚§5)î®ë¤yH +1 Ûqâ‡1ªÁù€ë,>[Qo–c²ÍÄä/ß"'@6ò°Nš‡3)ïDÓF€ºŠE¸IT'o˜6´°š‘ÒêÐü,ÇäËÇyªÿ’A Hb”‹PŠµÒ ´†–âÄך@ÑÆµa?IA5ñ5®ë±ÈnC:kAÔ×£;0õ¦“/08²X'eIu©ÑT^oj+WêÔ§Õªo˜±=åXlŠˆY4܈öÕlD9ºcPoD‡ ^/ºM’òD4Ç O¨¨5¨Q›0hk;ÒΣÔ/\DÙ)À yŽ—é·Ê8ËVL ̤³JDÿX)jÎÕÇWE'Hy"šòqÂfPõÈõM˜Åk« )€mƒ¶Ãú í0ý{»c+€´~+ÒØ*ÔÄ¥˜(2˜2¤³|É —­Û¤<¹6Yª†Cš‹ÁZçÔŒ\‹ÔŠt؆ÁÞ µKÿ¿ jÃïoÕˆ¥s&Š ¦@Jg™aDM$€l@eZ€*AªÄ`ÍÄŒž\‚Ô„õH3"m•…VÄ ÀhEˆÔ¹€2 ë™I˜(V`2  òP„‹0Xä˜*àžjàk1¸uWšaÖül~6€OC¤V Õ—q¨y`F† &r@ R_а€U€È*–€M´*ÌüjD›YÕ[åˆÎR|_&C> ˆâ/RYd`””T&KDÖh Ø@+ÂÌ/Fj4«?/Âïâïóá&sLP2®1±dj„4‹ÍÀFIQ6ʵøYŽ#ÛdUÀ( Ȱ \2e˜`Œ4}¯RPb( 0ÏŠÍùÆ PºI‚¤•ŠþÜtšÓ&ßèIEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/main_window_annotated.png0000664000175000017500000517707713001357026023340 0ustar potyrapotyra‰PNG  IHDR€8èÓÁCbKGDÿÿÿ ½§“ pHYsÃÃÇo¨dtIMEà  \«¤ù IDATxÚì½wœ×uçû½UÕqržA€‚ 0BÌ¢¨`Q¢eeɲVÏA^Û»¶Ÿýž½û±×»ŸgËrÚ-­w%{e¯mÙ’([")J(1ƒ$H3@"‡`rèTá¾?ª«§¦ÐÝÓ=3ïçÓÓ=U·rÕ­{ÎïžsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA¨‹å@>ÿùÏëYV)”R¥ßÁ·a(¥0M³ôt^xÙ¹¢µžW™ð¼Jåj)Sižçye×-ü]>þJÏWðÑZãº.®ëây^éÛqœ傲•ž‘³užúšËû-\¿Ï6¯Üïð÷lÓ¢ËW[_¹ýª¶Ÿó9gçê:Ïuçj}s)¶öãl]›o–¹'Ë=Õž‘zËÔólÌ·&œÎ×ý,Çyvö}>uÝ\§U³oæ:¯–i ñ¾A¸¨µ-5×rµÚa 1m!Úˆ•–›O{}.>½zß… i›œ«s:ßõŸ­õž-[c1Ø-ç¢#m¥Å{Nj½‡ƒã™í}P‹_ÎW0ÛÿµúðÂZOx^TŠ.,L‹jFáßáuÿG·ÝFtÙróƒ}ð<ßû½ßãÓŸþ4÷ß?¯¿þúŒíÌvŽj}Çj­I§ÓLNNrìØ1n¹åÞ~ûmLÓ¬ùÞ¨¥ŒçytõöòöÎï±|ùrš•žÇ0Fqq“@¼ÔXÁõ(~ÀÃ(ÎW³½×ƒù‘iðŠk ~ßþoUš¦5¸®GëšµüÑ_þ%ŸýíÿÄßÿÃ?`Û6_ûÚ×.èJßúIkèFî@ô5Ms†lš&†aœñÀVz°æÛøªÔ¸ ¶UO´Òögk0Î&b–pË•-'¨–aÃÂnxZ´ÜloµõUZ®Ò~V~«£ÙÎÿl¢î¹lØŸ-áã|4†Î‡9W£/¸?Ãâ¯ã88ŽSúíº.¶m—Dà°ìºîŒ†G%x±4ë9ßáeâÞ«Ô8 Ï×»J©ßÁ²á}‰Î‹.[­Œpö®u¥s}¶Îÿ|îóÅf°–»·Ë}WzŽ*•„‹¡‹>û-WÎaPÎí¨þæ…m—° ý„— –‹:+¢ŸÙêçÙ:g–ëØþ¿\ç·`ZÐf ¦ËÓ´Ö¥²AÛ>X&Ø~І Ö]®_©]5Ûûâ'¥ÞAXh;¿–6z¥wϹh3Öb—Ô²Ñe«Ù”åÖ_Éæ<_×k!—›Í.¿PîÑ…òk]ˆ¶Žø%Îßy_ ç¼Þg4jÓWòÕÓ~®¥-õÓG÷!°i‚ö~`¶@Øæq]wÆü ¼çy¥ráe´Ö%›.\&*ûbÆÛ|¼ÑõóÃû ‹ê厽Üïje£×¦œ.ïyÏs)w‰ü}§dsV¼wº¾rç´RC=ºÞÙŒ…ZËÍæh›oô\•;ûy®öq¡zþ†aÑ7øÂo,+ý6 £T6¸?ƒ{´œ¼NÈZ¤jõֆj9«ÒôZD¯jë<_Æ\­N‹¹Ü3s]~>†f¹{n®ë«Õ©4×{¼ÒóQËss¾ŒñjÆ@5¢Ú³2Ûù©f”TºN"/>'ÇOªs)lè–ëEþ~ƒyQá7*òV~£å*ut ‹ÑAÏîjû_Éf ±a±7Ú.,ðZ–Uê” l”ÀA´…‚ï`šëºX–Uj_í£p;É4M\×-kxagLµÎu‹ÅQ'‚p6ì¤zÊ-¤èU-5×6b-ËÕÓ®«½Pk[©š}Q© }±¼¿ªwµrs½kÝÞÅÔV_(?Ú¹Z·œós÷ìÕ[W«—ªÕ»õv¸©T7FEÚJBo%4*Ȇ—~Âó¶U°°]¬7؇¨ø^O9¡¸m¦š½.³‰ÀÑ€¤èµŠÅ,v?ÿ*‡÷ãy•®¬^ÕÇ5Û6cÛΙëÁU=ÏÅqmì|S)_¨5|A×Åö”¿ #˜¦¦×¢WCÞõð4  f(’¦íi²n±0 â†"˜¢OÏŒþÕ¨éiÚŸ¯ÇsѶƒö4‹§>»(`Ƹǒ6ƒ¾®ÚÚÛÈf³œ<5ÁÉQ‰¼Ã:Ãa¿áO0?ì4©ÔèZˆÔ¸Õ*²ÙDÃÙ„¨ðzfÛ~µu›ð¾DÅØrR=q¥y•¶U©GÿlÂp¹õWKË3ŸTqõ¤”«÷Ï÷^œïºÎõöÓ1†˜ÑhßrÓ4) %ǬmÛ³>Ÿs1ë5ncôK=½g‹â­E®eÙói\œ-ÇE=†M%GËBD…Ï'‚¸Ú9ª&:ÏõÞ¯u_ÏFTô\žÙ"Úk}«ÛJÆà…",|}ð“ìü©Uü­EЭ6Ͳ¬Nˆàÿð'ÝŸjQÀÕÚÜÕ¢ƒiš3ÚF­n+……Ü𾄅á@Ð ;k¢N‹¨Ã%¸£¶C¸Œ8'A¸Ø9ÛBpÔΪuŸ2êòlD­žm[m¾ï Z¢ïá|Ûr/.ÎwF-)œËù½g$+½;*m«Üö¢‚otZ%!¸\™r©—Ë ÌáÈÞèò¹•„ÞJâoÔ&)lÛ6ÙlvFZæZSe×â·3M³ T(Èår%m Àq\<­yiï>¾ø…ÿLwwç×-³°m—Ï~î?²uËz û [­/à9´cãØ9¼BÎWý `¾Ðü¶ðEY ¥Ð1{‡sühL‘1âh ­ö^ÞÀ®)^÷ÒxÊ@Kq>µ¦eFÊç Â7ü_T.¥ƒÖà¹.Žcã:΢z†/:¸PÈÓ‘ÈríÊ$×Þz'}›®…X+à2vä5ž~ø>ž}µŸa»Ëj(9HñwZ¶°b1â1+Ôk¾xW(?ÐÜ0ü ž«Ñh”21 uf¤¹çâ=!”B)C‡¦J 4Zƒ¡Úóðê¶\%Z®®ô¢cµùÕæE#Š«EÞF÷c6¡·ÚzªÿöÓø$e·Qn¿*íëç^J£=]õZÕ#ÚÍVN)Ed{J¡P ½éÔun¥0”¿OÏ¿aPq3ÓSk[^ùþ2J™ÊÃõôÇoþò:º¯0Š/M¨ü )…Yê9¥Ñ^ð\žq x:¸wÊP]gq]ÁøÎÎé´¼â½ä8®§ñÜPÔ¯] _°Éår3³QC-šê<š’d±5 :bs!°õDW3ZÊ5þªuÞ9W†…r$,ÔùŸížXh¡è|uT¸˜ ÜJQ¿•޹Öç§ZT± ,VÇVà,ˆÖiµˆ¿åR>WzÃm‡@D ½Ñ2aÑ·RÆ£°¡Öñ›jIŽüN Ž5p’½Àkšf©]8’7ÚîF-G£«ÕAÑžùõv2’N‚ Õíz³½Ô³l-Û=×6n½«u.®ç]³Ðï …Ökµ+/d`>6ŠØ7çß6¦¨7cB=õú\Q*i#•Dßp¹J© gK¶+Ê}›"œö¹RGÛhªç¨ˆÉÑ ¸\.G&“™‘½©š\ÏøÊÁ~Jù|¾´-¥–eòÚ‡˱jå ¾ø§íÛP3ìCÍøÄ$ó•?AŠÌÔ…H°çyäòyÜ|mðr9œlfÚ¯¯| Në¢ ØPXc¤ƒÖ˜†âÐéq®}çûùôÇîà|õëÜûø#L$šøò—þñXŒ±ñI~áç';UÔ|á×%ˆþU3ÆöT1:¸ìy.^![(°ˆ€/.8›ËájM¢wÏg~ì0·zíôô-a|l‚Ý{öñæ©^¼¶N¦NÅñ2´·µ–à™B°"{ê‡'}¡O)‹tc/kÖ÷óðòœ˜ o¤éíIa`àLâЉ12+f Ï¡z/asgʯD¼c'Þf¨ùÖ5ÇpµìÑA&'lÌ“‘Ñ©Î%t5Æ ‘·–†V-Ñ«•*ÏZ"b"txÚ|—G) 7Kÿ©<‰¦4Mi«t.«EAG#­+žeàN娩KÛHYªŒ3¬ÒKÉwNé)fmôh—ìø F饯5Vêþâ寙ÌÙX 4XÌÚq ÌŠqóSŒœÇëê¥7mTç#b+¥É 3<6ÐÒÍ’Ö4q®3}_aü0ý…N–´'Qºxïã‘8Íñ¡,ÄÒ4·uÐÞ`–VäOp:“ÃAѱd9±3&^aœ#'†“Dª…®®™ÑÓ Û˜¦QÜX+Ýͤc ‡Ñ“§p[»hKY¡uMpâÔ¨?^Ét'Ý= ° LŒe)¨mmIp\Üx{ê§Ç&˜ÊÇÿµiN%H¹\®lµpúÄpÃ`!S4ŸOql®Û\ˆžÌ³¥<©7¥mt¿f¼jmD/Ô¹>Ûi½â>ª7}Ù|Ó­ÍwúBœ—Å$×õ[<Û¸Àâ4áÎ\Ññ¡‚ù³‰¿åR6bn8SQxèš°Øžkê&ÜÛ½ÚXÀå:p–KýìyÞŒtÍA$oà Äßð1"p GÏSÐÖŽŠÁN±GvmÌn#¼\µÞðs©·%âJ„ÅÒ¶«¥}µPí°z²½TjCÏÅ–šO$òB33›øQËXsy×,”Íq¶EÐzìãzÖWÍ>›Ë=<—u-–,F¥{~Îy-÷î…䘭ý\ÉfXèq‚kyÖËeU…™© ËEÿ–K]n,ÛhèpàN¹TЕ2-EuƒrÁ%Á'›Í266vF©rv[¥iåìÔðù²m»$4cY¾?ܲLÞzë_üÂï³råÒŠ×äŸúÐþyÇqÜ3²ÉNe¦Èg38…ùL†ÂäFQ6 _Ü5‰ò+lÞ@úVø ñ–fƒoþó?áäs|ê“?Í/}îcüÉä¿ÿ¹Å8tä¿ùk¿Ã]=1쩉¢¨ëX….D"‹© u1BØu°ó9_F/šºò¢€µÖŒNfùø'–›oØFÎ.ðÔ‹¯òwßþ–'99ìлj¿ø}Ó³yä©çøÞ÷ÓP(N§ËôªŸ`ß?‘ÿ9¸ŠKšM\bVïøøÝܲe#mùc|ã[Op°á*þã¯n&Yˆ‘ÜÅÎïíåø`žcNÓ°d)­ ðÞýËü=~4 ;Îë÷ÿ_^õEþõƒ}dò–•å­'vòÄ‹¶`%/<×Ïò›îfIGíÔ=ZëÀÕÊÌuàèz*«;[ôo­óÊ­ @+“´s€¾y€U·^Í-Wub9^q,è¢{gkä™ ¦Ž?ÏÓ÷qÓÏtД²Pº–—µÂÐyNŸÃ5ÐÕ™Dyº6ɱ9úÆ}üóÉ{øíO­ÂÊy(Ëcðõ—ØshŠU·ÝÍÆ¸‡íi0T^¯BîÈ ûŸ~…ü­ïauKœ¼[û`泽ܔaAö‡÷>ÃK‡²`Nq<¹†Üþ.íiDá¡Q…QÞxëC¯ÝË£ÞGù¬!nk4.SƒoñÜ“»xã´Gªu›¶Ý@oG?Ô[göóô#Os8ï’Ïž åŠÏðžë{H…Þcº0Ρ̯fèH˜¤Z×sõŽ5ØG÷òÄ+Cx£ƒd¼8 íÍÐq9·í¸œ–ÆVæMþç{»é“|æš>bÊÁäú_ã[ßz‰îe­¨¬ÆŒ­eÇ'ndƒ5Êîç^嘱†Þ½ŠXÎÁ%FáÐ7yè©Q,ÕL\98Wpý¦v,Ó#‹Íp’†¦–eÍø! гe\¨Ϲô2¯vj ®6ÿ\GÏ·7åBÝ3g3ºw>Ãl÷ðÙ¼·kY÷ùê¨Q-Z·Ö1±+[§š \LX|NŽ‹ÉÉTnÜܰ \«ø[I¸UÂ&ü%18Y€£N„è1•{Ž+u\+צ Æíu]·ô ‚oTø ¾ì”I½^°•Dà u¸w0í| › ‚p!:óë)w¾Çžmßæ²¾óÑî¯V¶RÛ¸Ò8›gÃ[(´Ö{éBŠôþIl«K{GXˆzz6ÿB=u^­veµˆàJuåli¡Ã>Œ¨o$û)i‚£ÑÇaû«œm8°y …–e•v‹Q³ `:ã¥*f´.”?3ey)œµ)t–0 ƒÉ©)^}m…‚òs–²åòäryPàºþrŽãà83;ßzž‡ë¸hÏE{ÚqýÔÊÊz=ÃæÕ-îµ캚>Šàˆl`‰ ^ÙÈ7¾ý-,Ãàƒ÷¼‡ßüŸ`ÿ[‡øýÿ÷¿rW·Éõ .¶¤y.jELÿKí«‹‘ÁZùüãñω[ H[ uäE#+ ©¥-ë–‘;ÉðØ0IÙ|åz’´,颣{NfÜø úb§iJ(Ãô{ÌpzÊ ÞhpÓGÿ¿}UŽ=Åþ§¾Ê—¾ùUrM_äS«-©©¤…© ps4mø¿õ_’4x¯ó'¿—M¿ýynZß‚UÈ0Qpü”Äñ.Öß|=ÿv€Á{VÐby¨©C¼•ËÓ¿á.®¾i7ߨ)ä&É4f"NÌ(F—:rŽÆJ&Ðù® ‹DL“Ï9he`š8<ÃÄŠY~‚r?ݬ6ˆÇÚ31 cpÝÊCVϨ\”n´SÀñ@™1L|§6,L<öÓµÉÛ.žVÄR °mLËòSöÚ ®F™¦e`hÐx¸¶íh̸ž‡é×B¥òf,†Æ)äq<0 #faâ§úuívq„ðÀéw¤’qb–‰i:TÙ[qLÏËBiÖ.Ží¢Q(eb*Ï0P®íX–‰ <ÛÁu 4­û ÿ~‹Cf2ï‹®f Ëð«;í9Ønq[†IÌ2§‰üiv>ñã›øé÷µbd ¥ÜòUÿfš¾Õ·²ä™}ŒëKé±lp‡81bá$6³ª-†Òš¤iúé<ÛuÑZaÆ ´ ¦iàÚÕzÂÂo¥ÐZëÒ8¿Ñ1€ËEÛ¶=#ú·ÒØ¿ÑtiáÈ^(/‡³«„Ç®S4:x¡³C‚ ,fgþ|ÛbµØcõL«uß.T;«Ö6o5{¦Vøl¼ÃÎöy½3-¦c:ÛíI ý“{/×2\ZµŒµÜGQD¹Ôеøæ¢Bp¹”ÍátÑaû/*GÓ>‡çG×¶y¶Öàà ‡&‹aYVT ×õP†*‰¥þȉ33·pœÜÇßÚêgÌghhˆ£G–¶ešŠ|>O6›E{.ôÇ_âäÉcþvŒ÷þË_“Íæ@ÃäÔŽãpôèÑYPƒc³Ri²ÃCØ]اúÉ ôc†ék€‰‡Xª¬ŠÓµŸZá :q¹½±‰¯}õïX¶r)Û¶^F"çÿþ?d«šàʱaÆÇTé|€å¤€vðÅspµ?ÝÓªì:6Í+ןC/¢Ðl‘'éä8úænšb“<´çV¡»;IGóS£S¼ôJ‚o{¬Ô¯¢2c$s#¨dâ ‡‡RÅñ>µÆÉM15ià(‹ÕÛ?ɧ³ßá›>ËÝÿ~™/R¢PEljçåÉf]ps8Ú!ŸÍ05ea©âØ­ 0,Úû¶rÝà¿°wøVnï€áÈŽ`óÖ?ù" ähïÞĺ‹Gçù㧘ô<¸âvÞ¿ÎäàwwbÜxËÙÓ{ùñË]ìxWÖø §½†^{;CûÙýøóQ –nàê-›XgðäS­­oðÖ“uÛ·³¼-^ vW3"c§+ ¥4ù‘£8M|ùV–7ÂÄ‘½µé]¶uàiNÆ;Èí;Äñ© ,¿Ž›7·ÓÝùs‚ƒ¯íå­~‹Þ–ã9í ™Êðge`X.cûv1زûõ7é׊xrW^»†DaœS§_çx¾“Æã§)¬ÛÂÆ†Sìý ŽM‚öšY»eK;›`üMߟfýÊv“q¦Þx‚=ýƒøÒ«¸vmåzäG󸋇0Œ½4%86t;›aÏ›š K—ÐdÕ:^™4tuseï÷yaà}|`©ÅÔÀ£j”øÆ´&-òÇßä•ÇÊjhßÀU—öÐlMòösƒ4-µysÿ«®¼‰%Þë<úÂ)TU¯} ·ô>ÀáÚ¥ñÌdš†ÖŽœaåòmmKhkÓ \ec‘ާ ½b‹ ¯ì¶¹îž{0ïý'_MoO‚ Ç“ÿ¼€v=âY“å­(#çwl˜˜–…ijÀôëå/  ?‘…r¾Vú„ÇÅ‹öD«Ôà™°µÐѾõîW½þ¹,Wkº¨Z®JTŠn¼PDà…4äΆQXOäç¹\ß|u¡£}ÏVOþJûQmììùvš¨tßW{V.vçÐO“óg¶ÈßrBkT¤­$âF£|c±Ø"qX Ž®¯\úçhÔï‰'eppcÇŽÍèñ]îºôööÒÙÙIWWË—/ŸQ6,Bl8òײ¬Ró¨ð£ÑÀa:p¶D⨃¡\toXü ×IѲsM¿)NMA.vÇ¥ú®Öeç›2ù\îóB·mj~ç“Éh1Dq.dûý|Ø‹å^\líhi/-¾wA¥{x¶¶rµhßZêüz|ŸåƦ‡EÙè6+¥…®4¶p`—„mŒh”p¥qƒ£ãödXüõ<°{÷nâñxiûÁp“Ét×_+—^º¶LƤ™i¦øÞCŒ 8ãœtvvÒÑÑÁÐÐä…^(mKk3ÞcÛd²YÒé4–šBá‘jl'—Ë‘ÏçÐh ù<ù\ž={öœiìº.y‡mmaêÍ×™:vÃ40ñ^MÌSi,¼¢Æ1틚ÓÑÀ¦öŒ%y±a%W\wím-¸žËT&Ã{çîý¯œ>ÊÒ©Ó¸†Y:á´Ï6àzà¢p1p48 ¸…KW0Þß®3Cçù䢀ãÞ$kco³kg–Æ–‡Ofhn4Œ…‡ IDATÙÔ:ÅÕËX¹<µë oæâŒ¶ aæó,õƘr[ð¼¬ñ侈£ü(Q#F‹ÙÍŠ#±Wú¢RI06Š¢ÓË+‚Š \š$Úúذc’ï¼8Ì»ÞçÄÁIlågV·yù ¾³{˜«nÚĪ©‡Ùõ›œ6ÒÄÒ¼úÿÄ¥¿òQ†ù ûWßÄÏ] Ç~üüÏo]ÆŠ[‹¥ýyê뻹ä×/eøÙxñHŠTËÑLj‘³æÊ,÷ÿó ¬Îsiâ2–oõü‡O{€A¬!ILk_øÎgÉý&ÊTä^fÏc»iþ©«XÛ¡8ñúxll·,YEêÅoóõW:XÞÞM,6ÀS;Ó÷Ÿ~ËÚFxéþ—×€æž~~‰Ž4±å3[ÀΓž`²ÙcxÏ› œ.кî N=òïÂÞØIÃØ³O¿aÑfå‰'Z°tžl>ƒ‹ÅøTÃ(¦ÍS&‰D¬XyyØy›puOuÒ¾e?~î$w¯éaüÄ(z8ÁÆ›;P¯²çÀ^NÆIǃ/?Ê+-wrÃ’I^üî} mYK‹å°dì0<ú…6‹ØT Ç9ÉÛ»"ûå,ËìãÕÇwó¶Û@k3Œ<Ê7pçÕ«™zýIß/ý «ŠC+(äOóö“ÿÊàí[Y۬ȗ^..ÚÓ¨x#æð“<—ë`YW/1¿“AÐÿ¦P(`Û^)êÜt5vn‚W<æCYš™âí#‡qÚ¸qS¦20ó9†H±4naš <‹ÔÒcNÃP¥NÉîõ¼gÇ~üþ½.[ÏÖí;èTS¸˜¦ëg0”ŸÀ4A%ðNÿ˜ÝÖ•¼?ÙNÛm üàÀÛ—¤°<ϤϿ£ ¡'ÇÉ'vðîÕ ¸¹! ü4Sc`Z±“ûØ31LR94®ÚÄŠ³¢SXE²„žµDÐÍÖ šïòs-{¶#‚k5pk§·šñ]Këp0¸nÑqÃã…Ÿë(ÇzÅȳ‘¢¸Ö}¨5%ó\#cg‹v®f Ÿ‹hßs9¶W=NŽJ‘ µDýF Ű˜­çÊ9È$:X¸¨”&¹\´otz5ñ7,öF#Ãó±7,—ûDEß|>Ï‘#G8t褿¿¿îc?tèЃիW³råJV­ZE:.Eÿ†‡·ˆ¦c"‚±7,þÚ¶=ãü… ÄÞJi¡Ãå¢Î•pM¹6ŸwŠ85AXÌŽü…jK-tjæz–½;Ö"jW[¦Öåχí0ßë8Û=7—”ÐõFó½Wæ+æ^èY%%ôù=ç‹á¼ÏöìÕrÍ– º!¸Z›JÙË.3›WNè ÛŽåÄßhDpxú™Ù–¢þëjn¸a÷|à®Y¯Û·»éôÑÁ'rW†~)×Åqlr¹<¶G¡Q¹<Žã`ÛNÉÆ ö¯œßÓ— ŠQÊA e É[TAA5½jæn)­™Š7ðdzúº;øäg>ÂêKxð‡OpõÖM|äžwƒaòð7¾ÉmÆ«,É FV6ìAyÁ>(¦ÿS½P¹h`ÏóØØ:ÎØéG°˹ä’4 ©,»5ÎP‚5I—o‚c§8SyÔäIÚ›x)¦É•­h§s¥—œ4Ú%SpéuÒÔh­‚Û2ò0T» f¬…Þõ;È{7\ÊáìNlû8+y¦T‚TÌçîÞL³[Àöü±WQüô¥oó´3çÒw}„»-l׿”a‹'1U±r1Ä-?Å´²â^Âuÿ8W÷N°äÿùU^<þ .k3°€ÔÊ­|þ³«È¼ò0_ý³‡Ø÷¡ë¹¢¯‹¥[MNì7‰Å˜8ÊÐÄåÄ1N'»ù™»ïaK|_øïrdómüÌ'ï¡§?ͯþÍ›Œléb׿íâµµ·r©°¦F8ýÚ£ì^ŸÆ>xŠŽk>ˇoë$÷ê940#Å@p Œ˜…Õ´‚»™nkŠÃÿoþûÞæÖ_îÅ2 uÉfÞñ‘ÛQ{¿Í÷÷å¹ôÝŸã–ÕIȽνúC¼µŒÎž©¸…ËrøÞ²'s7­6üÎ<Çû®çcÞNž3oä÷>} I]Àv!ž?Ɖ}0Þ¹‘;¯[ŠšÊ—ÒyÇsÇøÞ_"“Í£u×ݹžT¨‚'éjßÌŠ‡ŸåÄ{ïd`<ÇPz3·µ¹ =ö"Ïî>Lré&.I$_eç—±¥³•XÜ qé5|ø–åXCo²?Õ±~;ßÞSã 70ãILqàÕò×p×gßÉêäÞx€¿xø–öÑK`¤z¸êýw±®eŒ®?ý¯ž¾›5‰ÒËÇLv²úš÷ÐÛNäÜ«XÆØ üè©—É_~ ëVw743Š…jx£øæ±óL¥Û¹åŸäÝ#<}ß}¼ú†/½‹Þ˜[Ï ø¡B£ÌxÉšiú¶½Ÿ÷Z󱃼úê[¯cE¬ø„*vP˜q›£=OËöOÑÕœ¤µé]ô=ð(Ç®ü0«Óª$ZkÏÀJ5â6gØwd”«—L¿ J/zT±ÓHif \PÅPˆ¦‰N›oêçsíŒ<Û«Õ@‰ö¬Öðœ-8<¿\:—°c9p:×+BŸKgÄ|ÊÕ²|¥ãÍ(¯w,åzÇ¿ªG®Åñr¡Ž‹]í¹œKê¿z¢kqÖ…£ñ*¥¡­'ÊAáÅëøX N¦J©Ÿ+E´GÇÝ­UüFû†?QA¸’ðkš&SSSìÛ·^xcÇŽ-øùdppÝ»w¾ ¼uëV6oÞLsss)ØOQf͈DÚð'œ:‚£ç0LT Ãaq·\‡”pN]­îǨ #õ¶¥fÀj™_kÆžZ;ÿÕºOçº8[´o-PgLf³-k½Vs½gæ[ë½&íûó×>?íÅbG ÔmóÏ¥.©'!ºžrþ¹¨-_®Ói­BpØæ‹~‚u‡mžàw¥²á@ émNc:s…i˜d³Yl;ï§b®€e™E»Õ í»ÈhÅ`%Ã,þ6Kb®ÖÓ—2™,wÞq#¹üv /†ÔuÈå |ç¾bYàj«ÌXÃþ¶1 ´abX&*n¡ŠCRªÖªÐÓ¿KºA0î$XžÃ }Än}?ÿØXÖ×ÅC<ÃCÿøuö¿±~ôý|ä嵐!ÅÃ_ÿ;ü0ž2ü¡@tñºééU^38f­QZcXÄ‹¤~ºhà‚J3˜S\×2B¬!Ë8iRt¨³I¹š%fŽ–dŽ´Ê‘dœçÆ–O&QÊ(Óƒ"øxhOƒi  §Gžf`ùgi1ÝâE.fü.Ž®L«\‰ùieÛz.a»ú¼šÄÜwŒk>µ’XÞÁC£•Â(ŒpèøR.éh£¯½ÃIsåg~–žU š“·ûËgØÖÇ×ÞÃïÜñþÜÖwï¢á7 ûQ(\Ζ­ÄóyVßùÓ´¬ÝJglœ³‘[Vu‘Ðl×+î©FkƒdG'ZcZ1ÒF0ŽxžÆóüóâgÆVX¦©üóåÚ.}×^FOÊ#ãÄX²Üâ•B¶è`Q\yÇjŒ‰)Üxë¬!&3£¼ñúc|× ½[/¡½·‘|£B»Ží²áÚe´'=\ÕN·±’ニN#G eÈeÆé_ÅÖå-Äì­+6Ówu'í…SOi–\’¦0’%Ý»Št›3£‡LPÃx®Çòw\N»—%›W´­¾óûät:ÕLjõVºÔ0oögirZXÑ#71ŽjìãÒ¦fÆ)Øþ¹SÆ8§Þ´ØzËÒq«oþz#ûÓxùÏÑP˜`ÌÖ  °×Á±óä 6ñàvÑZÅhnn&ž°Ñº+ò¾ÑX4t´³æ’‡yüÕKY™?IÓe·Ð ¦8v¼Àr«“tw 1·@÷Õwqë²e¤¬ \¯—mÚQùnÓÞ÷^‹ûû>_~ÅdùŽwr“éמF!Ë`.Ý²Š®Xž‰ h컄ƑLMä(x.Ý[×Ósȹqzúì<(í£™ì`ÅUïÄÌ“qC³[iŒ±=üøéÝ 4ÞÀkWÐbj\m’J* 9§4Øzi u@+…ke¥•fC›fÒKÐÝÒÌér^œ¸i£b):Èb<ˆ»äŽÛ´nH2s€{“„JÒ»ýnÞ³þÏÞÿ$<¶œÞµŒ8‹:È⯈åúyî ÇðàNî}-iåÞÇΣü⥠hm`%®àÖ»¯§ml€—<~’-Ÿhé¼ÅzEi´ëàô]ƶË/£ÍrÈe2drùºB3îçjT×*–Íf.dºç…êñ¸PÂlb^xþlÑ•ÒCÿ¤²³u`¨víg»Wçš:zýærÏUJÿ3×cï³Uï1,dÏ÷èqW‹˜¯Õè/'ª×ºÏ’bmq׋ŸªuÜß lXœ­$þ¢oøÿrÂp¹èà`Ý–e¡”âĉ<ñļñÆçô¼ ²sçNvîÜIoo/;vì`Ó¦MgŒËNýÍ|vlض]uÌ0ð£}ÃéÜ¢Nœð]agM¸ó‰ÖzF*èZ;Ô“Zœš‚ ,&g~­m©ÙìšJQ]‹=-ô|ë÷¹¼gªý;×K ñžZlC³\¶¸t`-ì’=eaýcÂsUϱԓñ ZÝ|£íúrõUÔV¨TÇU‚ÃÓ¢)ÃÁ!Ñ}ªõ[V+–ÀŠÅfnWkbñÏïÙËÈÈXÕìH†¡p]+–/ù—‹a˜&¦abš1b±$Vl:´‡iú)§ï|çŽç(ŸÏs-òù<>ø=b1…AÒÏš;}áP†…‹eAÌÂH¥0Ò¾M\Ô ü|š`ºPå*†Õ7Ö.V"†ã8Üÿð.úëgK_7—ßÙÆß|e _›ÀÉ6³©ù ÿb|ˆ_iQ¤×lbóº—ù§ßý%v­nÄÍ´sí{ïáWj²™|Q¤öZÚ'7ëPˆ¤BÓZ£]M¢s-+^ä_ÿü7ùµË×Ò<^ ¹º@Áv‰å²ä 6Žëú"oÎ!Wpp‡íøÓÛ¦™ÄMöpÙºK9þèñ›OÅ9r½ñfnð<œ\Ž\>ã:¸Ú&ŸËa;.Žã`Ú~„¦ëdËíyúï¾À<ÚŒrât/ÛÆ|-ŽòãGÿœÿúL’åI²,¡`Û¸®®ŸæW®6hwöò×þ8I\²[øÄ– r 9ò¶‹SpI­¸‚Ë.;Å?üïüé®fÔ¸Kdžw°~M戋ÖNÞ`Ù»ÞOïý _þ“‡HF,Îü k.¹…‡îåËþÇ´Ç“ô­ÙÆmï\˦•/ò£]_áﻸýêËéNi]r®]½ác&èl\IÇä# ´¿‡Þ¤C>¯iÙ|-k^zˆÇÿæOy¼;Îå¸üÎqýr‚]ÀvƒiÆH¨Þuãȡϒ·,ß²‘Mýñð_ýÏ4Œ»­\ºã&ÖtÆÊeÉÛ6®ë úN^“w\<×õ÷_áä›»꽓­­žãxþžxä tç/ü'Ÿ§û†Ÿâ½KxþÅ1ÖÞºš®ÌË|é_waOžÀ›8Î_©æÞÏ'V-eÝÆ¾ûÕ?ã›$[ÖqíWû/q1:6³ã¦í<÷í'øúËáfM–½ó=,oTxE'"±š÷ýþtg#ÚQÄÓk¸óƒ}Y'æâòò6®«Qæ8oýx«×ÞͶí—ÒóûyÙ$'Ÿ~€7׳ÑÍáävñwñF¬ä*ÞùÓ½Ùa<}Œ×žy¯kÄËçYsí»Y§Mxýqîã%¦‹c¯cûí+HÏÈ@ KÉðxyA$K-ÀóÎGÃz.Âé\ ŒZ—«ÅiP)º·Ò´ZÑJ=«ògÛ ;Ûã:Ïgìàz;;Ì5zx.ËU·¸d¶r¢\K´AµH…jÑò•޶¿µ¤â=_.õsð»Räo8²5kÃboøwt™p4q&“áÉ'Ÿd×®]Üõìïïçk_û6làŽ;î ­­mF*´°³$zÑÀñx¼bÏüJõ§ã83Äã NÚZáÈäàš…{ßWr¶Ï¥ž84A˜W[­RÙÙ:„žË¶`=)Lëv«µý}6ìë³q=çºl=åj¹þó‰Æ]èN©ÒÉUÚLSݾ÷r-¿•l´ l¹:c¶ö}4ʷܸÁAàNØž‰N– ¢vGxz ›¦IKkMM-8ŽS´Ÿ¦‡ †G´fˆ¾Åõó*"¬a(b±ôw2™ÂŠÅ1­ñx‚T2]´»(®Ëàí·÷ûûµX&ŠHgžkp]x< ñ$f,A¼©'3U²±-#ˆSiL£(+¥À ¥„6€&4-Z£ðí8ÂU­t éÐåîaá©Öi­NƒŒE¬ <ð#µÂÕ¾lxàj¥LÌævR©$‹©:¾hÞ¿ø‹¿¨ñ’㯲-ù*—5NÑšÕÔLÖH×6±ì(vÞaÿTš'¦6ï¹ÆÖN¬Hº4ßá¢É:ÂñqeFœtÓ*ÖolA\ð ös|`ÔóÕui_º†¾ÎVâ*ÃÉýä–÷Д4+œd=9±#˜ËV±*màbàe81ånê¥;åqúàaúÇ&±h·‘åëWК4q3'Ø$Åš-XNž±“‡Œ¯ä’îJ{äF9~ä$“(<7FGßR–´+ŽÉÐØÕLKƒExàÕ° ýìÈ'Žd*ÙJ{Zc&Ò45·¢FŽ2l¶ÑÞØ€e¸dû2Ú°œž´ÇèÛGaÙ%´Ä=œü$cLJˆ­XMƒ=Êà‰#œÊš˜$Z:èêlÁ8I.ÑBcs–ÎrúÈ©¾NR–BÙã<¡Y²²ËÎpêÐ1Æ4(mH·Ñ»´3?ÊÐ@?ÃYEk[3v!ACKŠæ†˜i‰BY|ëÙ³êã\Ùä¡•Õ²ŒÕ]qœBŽ©ÉSLÄúXš6ñ”ÂË2tú4cy:IG_­MèòçOvðáw]Ʋfƒ©CG9eû¢ºRËVÓsÉOžâXÿ$(‹TC;]}­˜Ù!O ’KuÑÝÞB²˜º 6Üü£ã¸íÝt7YhO£L…=4Èé‘1r(´çÑÒ»‚Ž´føø©ÞvR–…1ò„V KWubæ'™Ãkê£-¡ÉŒsúôy€d;½Ý­4& 7t‚‰Xm馡Écªa Isº3›'3:„Ó¼„¶8xZ¡pÈŒŒ226‰ö#ϵG¢c ½ šþ~‡¶¾&Rî20•/Ô[KYÙdRÈN2xüSÄhlé »»²ƒœÎiÒé6ZâšÑ“ý g²84Ò·¢‹”qfBv{ì G‡A#ÕÐMß’$ÚñP†&?Ÿ§P(”¾ƒß¶mûã(8NI ®\«t6#o®ó.IJsYn¶i4=i­ÓÊ R©\¥u/ã¯Ös7—ûílÝ“µ þµL?Û¸PžÅ…prU»og{FfûžËóQë4añ9ÎáhßèÿQ‘·Üx¿è¿7:-|£ßÑO°>ÏóJÂo>Ÿ_×sûöíÜtÓM¤ÓiÇ)µw …®ë–¦ …Òï mŒ Læã ‡¿ƒNuá¶T¸MˆÀÑ!d¢™XÊÛKó¯³Å±)Âb¤ÖöT­öÕ\Ûpó]~¡Ú‰õFŸÍÅ)—Þ´–ygæYèûälÝ_úúÏõº{Û\ÚLÇ9Xˆ(µÔýõÔù•|Ñé³M lðžWNü­,÷»¿û»üÁü·ß~=½Ëy饽äò~ÀÜŒòEÁWÁþ%Á2º?a¸xgÑÞÞFKs#lÛv <ú8‰Dœ`ŒàrÇ=—a1ZÍøãGy®ËºMñž|ÍWl±a2ƒ˜†B¡1˜†ÂÄ_MÌ 8]cÅaB‘Àu??øÀZx<ÚO)4 Gƒçùâ°§†§eÉ †ZzØùÍæçÿì/ù_û·Ø¶Íßÿýß_ÐŽ¥‹JÖZ“›Ç~­M'¹²×¥Å,€Á0cØf¯ Åxr  §ýrºúVJ¥‰Å¬²½èÍXœ¸5¢Í”ÒhÓA‹R”Šëàà ÓàªÖ_JažëLk±ÊÀ´vñ´Â0Rw¢ý±dM\ÇOk¬ ×Ó¥ÁÀ•1½œ¡©0 Ð^1°L1øþºŠ«¡Xqh¯8&vÜx IDATpÑ9âó]/ØÃDyÅc2 ´c‡ŽO¡=×<»ø@ûZ`1ÂÑ0P¥õ{Û#•µÓ×-£¡Baù×ó÷•a ÐÅ3ŹP!ËæÐ·ÿŒç7þZßRùxLA¥¨=Ü`àoì«_=hb$Rƒ|‰/]Ëçvl¤-l7T‘xþµAÅJÉßOÏó HÏ ué:Ô÷²›¾ÚjÙ†Ú(öæ)íCñ<Ê˺¸¬1½C¥±š•2üó8.U¸LpÎM”.:ÄŠ÷Ò3ï%Š)#”vÃ} @ÍÜ7‚ó^¼/ƒ{ÉŒ¤ËÀ+^ 5½ßZ{xnñ<(ð‚hdŸgVíÑëáQ<üb—ž`¼ƒâ³nÅã _ÿ¹ÔAJqCÍ<¯8Žwx<9­qm?u¶ë¹~4|¡€ãØär¾¸›Ëåf¾å„ßÀÉŽž!¹Ð†Þ|÷ãl–›ërÕ‰µOõXµˆÁ•Vš‘1Ÿ2ó¹öõ:âr}gó¼œgk¡µ>#µñÉO²wïËX–5?eyº´©–VþÝ_±å¦[him¡0:âGýMmíû× ÿX,å•ÒBûǧç%nêÒÇOõŒöÙ<íï€G1õ³cÒSá»ßøÞý³ÿ;çé§ŸÁó<€ÏÿûÎ;µWL—šÍf(dÆH’£1îÑ4(80–ƒŒ— –l¦±©™DÂ,Û,:f ÓÄ=p3¾‹ÂR4—{ô¦©P—â†ßáÎuœÒ·kÛþÇqp‹"°kÛx¶cÛxŽã·›‚²Žƒç8¥uxÅvU°>`zZÑ–Ñðê;éÆý\èö™88AX,í»³¹¾Zì°Û~ê[=éˆç]¦Â;¨›ä|d:WCÕP°¶bóß¡…=¾Ÿôvº´.(Ûh¡ïi½ÐÏÇ,ï]幪ÕGWvXšÀ^£ë9Ã/ 2 ϳ,‹åË—ÓÓÓÃ3O?ëy¸E›¥äI)¥i¦ªo¥¬%´ßþÐ8‰DbfÊr¯hTU_1`J)Z¦Fˆ®a‚ö¦ÓLGÁ˜CX•ŽVU®[U™)4M‡®½_ºW1XQSÔUkH˜Š†TŠ%WlcÊõ(Ù“¿ðÈ#"Ÿ Þ^½Z{µ¼ Ê8ãçSY,¶—Ø9ÌáXÎQ_±yÜþÅèÐR¥*õ=ºÂüš§ÿ„ž·Eè ‘{_gFž áb$Ü!TMwQßà£LÓŸú­LLeYþwð,†²,ºeÍü?;c>ÅßÚ4ɺ.ÿáÛßæ»/½tÑœâ+W¬ào?õ)zÓiTQ¼ ¾µm£l»ô[;Ú¶ýi®;=¿(öR\Çñ û`ºçùÃÄh]úM¸£]àìê×:†ß¸èÚ5‚ Ò^[Bî!A„ùWOó¬Ç‚,SjŽË s¿n^dh Ck.9tHàsÁá•+ŤAAáìÀÓ)•¢~K°aøÂnð¿eùQ†Q ¾(O‹¾Ea¸$›&Äb%X›&'3>óþ{޹èNsWc#_ÿ¹ŸcKOÊóPE—¢àK þÂoð;:ßu!*boù[üt÷ž‘Ù($ —þAAA~¢QÀÊÇ/hÕË$‚ ‚ ‚P‹õTFü-W&œî<,QÁáèߢ\‰A8‹ÿ‹ÁÿÏÞ›ÇÙQÕyÿïsªîÞ}{_³tö„HDYDDQ@ÅqqÇGŸÇ™qÜ~ãø¸¸ ¨ãÆ Š Ê °&$„²uÒÞ·»Ô­ªs~TÝÛ·;tÉrÞ¯tj¹ÝuO­êœÏù~¿–…¶,””¬ëìä¢o|ㄺGFxÓ·¿Í6 Ãû.·~¦L<^„y\.¼ºß& óSë‹eV,·r1¿4²7«ç ƒÁ`0 ƒÁp|a›,0 ƒÁ`0 †I2Þú7´EKàr‹àrñ·(H†ç‹"ïxA³hŒe¡CËß?lÚÄßýüçÆÅ¤=Ñ(ø>üÅ/ØÒÝÍÿ¾ð »Ck\Q£W;Á¾Rh;æŠâçZ²Ö0þMé3­÷/òJ9Öêwü±Á`0 ƒÁ`0 Ç '–,VCª«klÌÌòUøƒÁ`0 ƒÁp¨ì'öï·ÏeV¤-|‹"oÑõsQè-‹÷Kù~èº$üF£%Ë_mÛ<ÑÞ~Rˆ¿å|åþûI'|൯E ä©×!Ðe–»JŸë²såÖ½ZÊÀt±¬|´üB—Ï¢Ütq,YtmÆ–ƒÁ`0 ƒÁprP trÂÀÅA½ljBuuãr@TT;ÿ|"óæ1¡ ƒÁ`0 ƒáP/úw# ûºo \æ†)–i%2´ ¶‚c¤…°$ZH…`O_ïýò—O*ñ·È¿ýþ÷,=ÿÎ?í4,aV(V>ø ”ÆûUAŒ_ß­Ð^°ÅWèp‹R£ân1Æo¹à[zÇŸ0 ƒÁ`0 É; ‰à>ÿ<ÎÊGPÙìq—þδV£q Èd ûœs‘³ç˜Új0 ƒÁ`0ŽÀ(PìÿXˆðPŒ‰\. ûŒ—ÇŸ•û ËJk²¹×ýÓÇèêï?i³ý†ÿ Üõ{fMŸŽ”¡AB(ܪ`,8‘˜»ßcƈ½š²cÂÏKƒK#ø ƒÁ`0 ÃɆ]S‡óä“`àWþÇŒÓ5~Á Vz ƒÁ`0 ÃáRv‹ÿé@ïE€Ð„ tx.Ü/Ë\J (™A\Ú2wÃB ”Â׊~âŸyzݺ“:Û‡†‡¹ú½Í=·ÿšºêê [‹% ËƃE‘Wí+þ †'uø¯\ø-Û7°Á`0 ƒÁ`0œtø…Âq;<ñ,€'8§”F"‘VYÜ.ßÇWiKP>¾/°"íû¨£U–¶e8‘ ð]…G>„”H)P¾ÔKq„®kYX¥<ÔA^)Í¡d—–ß;‚i;Œ{’v$ßZ øÞ$ËD2,_åã+°,qôî3,g˶Ê+:~±Ìi[ }´ Û…aÙXÖ¸Ähö½`ĤÓ)°"ö蟇×TÂÂßS`YH4J©W¡ìËÓLøËFX)&ß^„G¯¬5)B‚öGC ‰-Á× -*øL¿ mhÂþFõOhµÿ>B ¬¨D»aŸkBé ƒáxAˆ²X°£§J¼P‘áó.Ø}Ø•ŒƒËÂÉj‚c-DI?Ö€V _)¾úÝoó›?þÁä=°eÛ6þæ?Âíß¿KJ,)PZùæpQØ…+x….¾$—„`tÙ¹òãÑw\ƒÁ`0 ƒÁ`0œ<ªv,qâ ÀãJB¾öÞóÛ_ÚÍ0Aœ¨hÃ<N‹³ws;bê\¦7úìy|'öÜù4%åqkøE\×Ò"šhcÑŠi$ GVÂ'ÛÛEw§GÍü6ª„âHØ>Ké3²gÛ_jg…¯4ÏžÏô–*"ZTÚ'Ûû2Ûvy´.O­ô>mZbÅ,´ë"˜8Ìò’HÔ§ýÙGØ:BXDjç±lQÖ¤„y‹ÈÈ6V=·¿b§ÎôÙº~¦Ó—Ð92e0¶œùþ=l~h´RDëg2oö ª£%2´?» Õ2Æê$–Ð!Øò›:ƒYE+j£ ´§aöiÌ©·ñ}=Év×ÏŽÕ›éò½ {£Išg-¤ÞÙÃÎÞÓOEíÜÆ —¤nz3JýåÄ`=À–Ç6±×óPHb©æž:*™g¤s/ÝÝŠÚyÓIj{Ñ o¸Í›2´œ¾˜zÛ?¢e-„Äé¡kïdÝ"ZÓ…$ât±¾Û£1-èÛÚ‰˜:‡©uA9ÿ% êa{Ûj΢Jø(ÒrØûÂ.²‰zšškˆŠ}ûÁ [Wí!¹dQñÑ`0 †ã†2ë_Qfý[TuEQ .sû\rù\ôô¬©ËÌŠ¸‹§Ü÷Xv–Ïþ‘_ÿx€‹nú?¬ˆeqûú;6Ä–•¿äæïÉCk+yã’jöüæ§<6p W~â ’ë7’©žJKsQq´WÐÐÏñ“ÿûi^˜w:-¢€“±Yöÿï_¡xùñ»¸ë.—K¾úqNZ{Úg¤c÷ýv7¯[x*Õ‰Â-k!%ùŽÜóÛŸ2´âK|üõ•dTóo¸õÑWœ;ö»ź¸žšÊ ù—\$v–öçÿÌ/oÚÃùßû gÇ ¸Ú&ëbõ÷oáåY—óöëΣÙ/ŒK„\Ïêæüè'\Õäá6b0 ÃÑy¥(ßãÜ@‹bLß²}!HÅR ´D B"´ „_-A*„eLí£ \?gó9þ÷¿ÿ›Éû ¸å'?æª+®dÙ)‹‘„y].ð†"¯Vª$Ÿ©à|y,`UÿWïký;6ÌóÞb0 ƒÁ`0 'žB§cÀÎXí#kòyŸ|!ͼsnäÿç¯X…B!G6WþËrÈ8x¹ÝX‰$ÂõÉå<„´‰Å#Þ= ¹JLR±é×|ážéü¿{þƒ#™®§xnGŽL›B ›HÔF¢ñ½…‚°£D#v Dû.Žëá+A4,[áæ\|v,NDó¾ãQðmìDíŠGQž‹ë"ääî@`+\¡‚9g½‡ËþýöÞË—¾t?>ŸÆóR• –­qó|‚ü ðœ,®Ž^| >Û"ß7À`Ö¶#D"Wpp=…F`GcضDžãaUlã7Ÿÿ&m·ü7W5æÈ¸jÒF£"¢é~àÜú[Å…ÿ|3ÑÊÃé|Œ§w9L™Q^& |Ï-à)‰µ,)‘R¢¼<Žk‘¬Þʯ¾·Þtï›çÐ;"ùÈ×ßL¾'¸OË ®'|…Ò …F¹.“» ñÈ9I¦ÍýçG8³*Çæß|‹ÿüÉ/I¦k¹ú ‘L Qär.Rj4.Ó®ø_º <ç¾ý¶_²ðóßæMUŠL.CïËd«¸ò$ y×öÛ¼©VãúŠB>‡o_Ïßž/ñm¼,¢Xvëå±ÞÆž×\ÏÕo=”ŸÃÃ"‹† /¼°n[D6Â!n~²mP 5ÄÄ2Þý™ïðæê!Ößý|óæÿáu‹®Á'B$^Î#/J+<×CiI$ÏÅóƒ:QL£v]TÄB9rÚ|ôË6ùÞA†r"1 |°m ífÛŠXe3Íõ‹ÙöºÎZF”!Ö?¾‡™Õ+¨j>‹ÿúZü‘ Y§ÀHY‹ùH$ô²”@J;*PN‰mnÂ=¥'‘>´= žM$ÅÏ{dµ‡«5¾T¨h K œ¼GÖRXÑ–O!碄À& ŽG6§1í*¬¨P Ïup•ñ m0 †cˆR¼ß¢°(‹û˨àK1„èõoñXHÁB#¤ ÎËâï[„@i_k¾ôÍoÐÓ×kò~?üë|‘_~ÿÇØ2éQŒç«T üÅ_åk´V%Ë_]ÕXË_=&^phýŽgöëÚ`0 ƒÁ`0 ',–ãÓÇç<µ}2ШKµP$U _ "±ÖßùÞ¼3X8G"H)@Fˆù/rÏf/6‰ôé\|õRR9o’nJ¢¢’TdëÖe™1'ŽUu:KÓZy î|œGXÇ€hbîg³|ÅLò›îãÁg6Ò5$`匹¤“½¬»ótË07¥9÷ݯgŠcóïÀÝ’DeK.ºœ¤e‘yön¼Ÿ_<³1ç5¼æ´e4'õ$­ì2ÌCå9d^ë–ÄïcK× y{Ž{דOõ³ñ¥$g^us£Ûyà'÷³Û+šâÔËndIzþîçX{w?ͼŽé±!Ú7>Ìck61ÄTN=÷lÍn$t>öVoÞËHÞgÖ—]s»¡ÿ×ßÅ9ã®YÞ‚;)wÅÑÂsüîÖ-œñ·sIë0ÃÃá]VÉÕ.¾òÉìyšGî}†~!©Ÿ³œå+^KK²‹Ý„Žº¼¸{=½Ã4/+,‚§~ògvŠ$}ø&wŒ\Åy³†XuëVj/½Y±ƒOòÐÝOàLm£µª•j™ ù´…T‹ÉÕ)Z–(ß!—ñpaÚ…×ðÖç¾Ë‹;^¦§0-(3¡ZˆÀo¶*Œ0R¿ÃÕŠBÆeÄÎãê°îFƒ –šRÁ$¡ÛFž}Y1ó Ó±¥…f냲¹{7OÿšŸ%}®yíš+vóÐ/`g®€’K¸äº¤ó»xú—›ð[]Ú÷¶pþÛÏ º0ùü'ëM)jÅ‚[fçˆÍIS7š§cÝStzõ´-™MM¼M÷®Ã›}*³¦6Peíä¡_ÞÇŽlú³Î§yÃ’—^È46³òw»hºôªú7³iíÜ:‡õëwP=ûtVœvSRzÒ–ø*YMCRP±y /eÏf…XϺÞªÚæÐZÓÅÚ_?ƒ7o)³Z먒۹ÿçÐîx`ŸÊ%מAfÍmŒÌy‹j3 ÷naëS½´¼áZèæå=x²9ÓÓx“hOBÈ µ"$R6ñ J«H³Ã˜Ë"J*²ƒUw=È–þ!\½ˆ‹ßýZeP*B‚_ØÁsÜFzY5›î]C®y§ž} ‹j|ß¼d ƒáXP”½U” ÁˆrK`1:î(wÿ,EðÌ,ŠÀá>Åóbìç*”÷víåG?û©ÉûðÄ3Oq÷ý÷pù.E„c„@¢ÐÈ0޲FJ…ÖH J#ä¨UpyQëò‰Â•”Ç|6 ƒÁ`0 É; Ž_¥O–V´@ÇÆ?ó‹›vSågh\ö6.>?ÊúÛï û®™Ì™Ø )±ìvÖ|ï^ŒM¥)åáí|„û·.àêé6…ɈŽZÁŒ‹yÿÅÓKf¤ )qâï•]AÏÉàGfV-4¾z™û¿ÿ%^ŠºD*›Yñæ«Il_ê;ó$/¼KX"+_©À:Ö+Þó?¹ƒ Ù*jjâØ;æO›òΩ/ñÀ¿Aî­×±¤º¹3ON¢S£¯ˆ‘Šؾõ¶ÔÏæ²JHìx†«ïãiçTª—,¢%ÑÇúÿ¹“ÌUS™1Çfí÷¿Æ½;Úh›jÓ÷ÌOùÍÏ;xóëß@+›xø÷³ââ×3¿ó1~ýÝ{±¯ºœÙ™—yì®Ý ÐÄ»/j›\ÛÓmUÓ2{ µíÏÒÞ§dÖ2Ôh3»­täeÖýêò×Î`æ,ÍÓß¿ƒ…êªc°ë!þ´ig½|7·ö½‘›Þd³{ÓïøÅœwêëy{jÏ=û ^ë[Y4K¢”?‰œ ¬€v?Îßþ2«-­22¶ Ûi™q)±d?Ïÿê.ÖuYTÔ¦HîXÅŸ^8…ëO ¯!^þîùÁwÈ_ñN3Dû3bWgšÆ÷žC(˜øÀƒÁ`8¦ÆcÆ~e M‹ï\åV¿£ûŒZøÊpá]Q–Åß ¿Gi”òùú÷¾EÁ-˜¼þëæoóÆ .BÚ6 ´.å¹Òa\f)ÐB %áþ¨¶«¥u-Äh¼à0®óC`£þ ƒÁ`0 ÃÉ3p»¨´OšÒ;–¢ª¶ž:•¤*Ç’`ÇDm+Ê p×<¼ž»ïYIîÜ‹‰82ÝxéÑËx÷ì9&!’9­¬ø›¤úîÿ汞ænúö‡®#¹} <ô4é‹SDò[y¶s„äÜ×sþ²Y<ýܺ{ð¶ïbKž³´E$ž yù»xÿ¹õ8÷ðÕŸîbÞ׿Ïum_£U[7ˆ60ïu×pýÒ Iö‡¼´ùeúÏžI“ ¯C¿ ;Z`Ïs¿ãG_ÜB|w7Þ¢ó¸òÌ™Tˆ]X‘(uK®äÆ·,¦"ó{þõyÎúÑ?ñ¶VÓý,·}æ3¬ÙsD"ÄRq¢zˆÝcåc›©;/Þ̣ϦY´ Åú_>…ÞßpÃO§6nÞÃZò66üOÓ¯ûo©Ï‘q¼Éµ¼¢5†§wÂbìlžÔ9ú^ÞÀs/Oçí?ü(çÄrÈmx„öSV0KÅ‘Ck¸ÿÁKø«#Äe=Ó.¸žÁЈƒžl~!Pz+üú§Y+]FºáŒ¾…–Ë‹¥|’رQ"X"¨ó‘Dœh$F4»»W[œû/æÒ¹Œ¼pÏü¢[Š@XNư„@H›hmK.¸÷ÍßÃÏ¿ôÖoÚLïy³i™LÛ µ¤ºy6õõ{èkßÊgˆºH u)”–D T4B4·™û~ÿ§ ^1ø=| ï<÷2¿ÛÈÐNa`ÇV*V,c÷3Ù3·wÐgÊëšPþdÚS¸m'ˆ×6Pgð‘ØÑÝñ=Hau·³êž‡ÙT;—™º–ØÈSüé ¹þ”bÝ•iuÔ.¾”¿ºd +Áú#{/ä¼z—‚Q€ ƒÁðª(Jÿî—oÅè‚IQ¶R¯8t5´¯epÉ*8¸Ž†-<÷ÂF~þëÛM¾›^z‘»þüGÞö¦· Ñ%+l­BÁ¸‚–ŠÀB"d°?*3jñ[6Ž ÿ¸îÖFû5 ƒÁ`0 †“l>àøÄ>ÊBøQgŸÃ¥u lEÁõ‘ÑK¿ B'± ÃÃdYÄ©ËçÐñÑ Nçµ³ê(xzrzlYÐÌ}ãß1gùZîøî—ùÙ£gó¤E´q1K–Î"5<…–ê™,ÖÍ?¹ò- –ÃKÃ$c …ÕÀ´¦8ù|†vÓ‘9«æI2}|!°" u„ºÆ6æÎ¬¦ÀÞ[(À IDATÕéI×Áõ@ØL*`µ€–$ªZiž¿˜ÆùUÌYq3ëå£T­I|×C ‘a)Ó3är•˜Çâ…½<7(°’A ×¥Q1u1§œ2ƒD¦•«±¨r7OõLcn[–pÈe}´°Py…›Ïâx*œÌ™LY(¨YÀû_ÙÐña–LÏ’÷'á¢Dõ~F@zõ.Ã# ê§ÔR7ØG.J¥™7½•„­©¬£-îâe|Ü\!L_×/³NV åÚX3Î`zÂÅQU´NCó J&«½ )a æ#Äu{vő󫩨Уu[ˆ nmY‹åâ1‡¿ŠE%§röÕïå²Wi´î%laeV»íð•WÈ“wbxŒ5‡…§Í¥Õ²³æñ¡¶V”Â’Li°Éå²›ÄÃê*h™w*§$!^µ˜3—5!ÝÞÑù[4(º×Ö`[DÂ2’CƒŒ´œÃ‚f'—%¾ðLêgÑŸÅ<ÔQj+[˜Ùe›ªªƒ ž˜tÛC+¬š)´VV1²ínÖØµÄªÚh¨ôË U"‡‡±ç²èô¹´ aö>8£Ý猇yª¿‘ž½‹yÃÅ éXùkk8ö\æ·Ú(×›TЕMK9ÿÚ¿fȨ -bíܽå»lõd†ÉÐÆœSÐV“DΜɧ¶aÉŒLYÄÓ8mùtt6‡¬L’N ͆såf¢Õ`0 ÇÈc_÷ÏŒyçµµø-ŠÀ¥ãâþKáào´Òø¾ÏÝüm“ï‡Àç¿òŸ\záET&+F…xY|Ó %^¥ËÜÉè@i/ŽÕÔøÁÛø  '®æÅ`0 ƒÁ`0Nì)qüjÀ' °Ø÷HB£|—B^áØ9øùPù¯7sÍð}…³ç!ÖôžÎÔ:=OÒÞ÷W,«écÝÆzfÒÜìÓ¯A©ÀT@(…B`•ò¶8‘W´°Õ‰MúøÏý‘†Îçõz//m|’­‘7r“/Òb;N*-©¯òyê¶ÛX7PÅ9§,¡FìBiA4QIe:A…ßÉ‘-(@£Ê¤7)Ä$Ü*%˜?óñ ÇÁÕi‹Ñ6U–f¤ÂwÁŽUNH¬xUÙ—®ÿ$×\6…¨ò:z6iUf,{ã;¸¼ÎÅõ}¼¬‹Ž¯«JRU#ødLÒг“ç3ÃT¢±™º­_áñ­oáºIzî¿“UBrmYSŽªÔöŠ®o¢4Ïxˆ¹‹’5̘ÑÀ3«ÎúRn¼v.µR•Í:+h¨£&·•á†ã/iÀ ó.Ý}6˦}‡?Ü™¤qîÛ¸lÊOÇžfåÎsi›³„&éâN*EI<×Ú£àhò¸ÚÛÁõý _kê¨*ì¢3ý>®¸f1UQ ¯èËì}€ Çy‰[=Þz6ìØÝÁÎÎE\ѦÑJ ƒÁ`0Ë⢯QO*¥M¹eoä¾$þŠQ+ßQÑWŽq(­Ph}òqî{øA“ï‡@O_/?ýÕ/ø»÷ü –” ƒ÷G-ZH´P£[(y•ÑeV×åznÑtð.GéC­o÷_ƒÁ`0 ƒÁ`8Ô)ãW¶O†â‘B ÜNÞEKL¸(‰´4^&‡ëƒšB6‡«Ä^Ã_ìI¾ðÉkxwK eWÒ|éÇùܳÈ:“q-`ŠË£z'?N†bÙ¼÷óÙ7Ì¢Ú=Ÿ‹^÷=n»ñJþ§Î"×ò:®¿öΛ÷·ý:î¿cõ}}̶H“ÏRÐ)$¢âÞþÉ7ñíO½ƒë[$k¦sùG?Ë,\œl!ˆójï8¤–RJ´šDåÈg²8(h¥BXHKãfrø~àæ×·—sã'ÎçËŸ~«Ó ý^ó¡OrfÊ¥ Záéjw1gl½•›nx?¬‚ìŒËøà ïàÿ|=ÿr ŸþóáR`ùûnáú³Ncñ²Oòƒ¿›{.ýg¾þŽ…8î¤Ì)ÁÔ]ø)þ%ñ#~ð©wqw lRóÞ̇>PA“{!o¸ð%n}ÏÕü8eQ;óBÞ|ýåLîem6O!4ñµ,Ma$ *ˆcê¨,®–¡ø8…IšÛÎæœó™®aá’*V¦Å4JH¤”¨I¸·•R å/¿ðs>ÿ¾ÕTú- Ïá ï»’¥ÓSØZ ØÅŸ¾öa¾5‰ô¦^ùEþéÒ6,D ¸ùY<Âöàf+>y•Ã-»že ð\œ\e T¡@ÁqðÕLææð_}˜{6ÿ_zÿy¼çß.æ _ÿ(ïû©‚çþ/¾z¥Æñ²xÅIRÿ0Ó§3ä·àá© ]J)Pž‡“sqýËÎ\Áƒ?úÿ÷úßPsÆT"•cŸÎ×ÍæCÿï½<ÓL¹èlæ‹.O>›Ç­\œŒƒ’åªW(Pp<ôa”uPm%µÓ§Rm¦Þ¯fÊŒz„VˆbæyÄi¼ç_.âóßø7Þf#„ rþ'øÆ5sh[¶ˆ®¯îà5ß›GuõVbÉ$½ëû¹è-Ó¾Ãdåu)Ú/Þ³@J‰ð%Ò?Ÿ§à88z!×üóùÏo|Ž¿ÿ=HáážõOÜô‡KÚX~”½÷~‚w|íE"ééœóŽ/² æàç%fžÕ`0 ǘb¢ÁŸ( )"JËÞà`$R&Ë2X†‹ÇŠKÑ‚¸³¾çóï}Çd÷$øÞm?â}×݈KXaԓЕˆ„*º5*®`£äóY„[îër)X—•¿;®0 ƒÁ`0 à > Žã´Ÿ lokÓZ˜·¹yãèp¼¾ý¾‘­­g$o‘nª%.‚•ÜB:ôïìAW7RöéÛÚÕ:…ª˜…¥عeY­AÚDë¦3«>>yGdéÚ´~Dï²a&sj£xÊÇîfÏî:VESK3•…n:öö’µ«IÛŠx] Õ©0S¦P '•D–½›¶ÑÀŠÄ©Ÿ:‹”×Ç@ŸOÅ”&RVá®>r$H×¥‰NÒ—ª>¹þ~†s’tS]) ó±oGÔ5R•ˆÖšzˆ][ÚÉ(V%-sf¶2t¾øw}¹soû{Nq†èí¢so?®ÐèxS𛍩Ôô¿¼“®LO+Ò­ hNGÉ÷nfw¯5әטBÆœ‹5ÀŽ—ÚÉh@ìÊ)̘šÆò} ™vïêÂ!Bª¶™¦æ:bäÜÓC!VEUuЍ•§w[746StéÝÚCdê4ª¢ Ô½Û‰Ï˜F•pÉ u°½cˆTE–|Šmî®ü_—Ó’w˜T•ŠB¶Ÿî]dÐheQÑ0…æÆj"ÊC˃í{èÉèä>±ú9L¯‡1ÑFèÙ>@¼miKöô•Öz¶õ½žð) 08é©5ø½=dýéÆ:¬‘]ttö0kaVs=©H†ö­í » FT·1·º· Ÿ1•´<¼4j2ôlí#>cúØû>ÎÐCÃPÙÒH…aïÞNz2PUMÚÑÄ©ªHu»Ù²s/*“Û¸åCk¹üÿÊr·®]#$§·súéïuIMi¦Â*0ÒÓÜs}õ¤Û^I¡ž~²$¨®¯"Š.ë誈a˜ö­»ñ‚{”5Ó™×”ÄÍõ³·Ó¡ºm*Â!3ÐÇ@Æ¢vJqÔäóV( ÙAÃ{N…V5Bº uôRˆV’®N“°FèØÖÎ`ÞE¡ÑUÓ˜×lѳµØŒ)D†âûó'æ|å™çô#“U4L™AZzø'ÒƒÊ`0 Çñˆi¼õo8 ,~&‹Â°cÙ;v?´ú•EëàQ+`¥¾R´wvðšK/8f³bíÚµ,]º´t¼nÝ:–-[v̤ï‡ÿõm.>÷"– ì"ˆÿ«4Z)´Òhn• ,|Uè1Ißîo“Å&]. Ø`0 ƒÁ`0Nì)ÍÏ#~ð-èßgª mÇŽczêú$€ÿ1gÝ!—g€ ,Rµ&eP~ø·á$MñµX‚ã¾×S¨0-5@ÑO“B"… Ž ý ÒX¼®…Ïhå£EèpW‡bL¸Ò}ü½òà:£ù8ñýja“²3lþÓM|nõ"¾òÅ+¨È8uDñÞµ &d4Á=…jZ{¡»µð\YÞnõß_™PÊÿp’¨¬¬ÊóàÀõG€R l¢ÉñŒl¾—o~ý{ ŸöI>vÝiÄò…Ãßdh=–}Y:ƒ´Ze.êZûeŸ¦O¡®dÂë…Ö/èQ‹ pví‡y>QYpÓ8QÛÙ7šQë´ Üj­v"N<–k¿u![yßûáõ4 Ï*ø}!FÓ|¤ÚÞÚàØ¶·Ÿ:-dPƤ‹Rq˜‰sϧµ<]¢ÔŸiwÉô?ÄÞËnûW¹ü°4ïƒÁ`8fFKãàÒ3Q àq.GàQwÐBÊ pQ ­‰•Ö8žË÷nû!_üúW޹l¸ù曹ᆈÅbcÎïܹ“¶¶¶c&oºø¾ó¥¯±m,i…ïxá; Þ•‹Bðñ·øYI&°~%¸lc0 ƒÁ`0 †Í߿鸀O(Ðb?gEYD§}âÆʼnPXDˆ1âÉ¡õp‹RHF]‰ií—€sîi„@ ó·áß”ïOtï‡~û¿Ny>Ž¿_í1¼éV>úñ3<õ|nøâ›©Î»xaœÜ}î]Œ“ÇG*øÖA–Iùù1Ǭ?$ŒìYÉæSÜ݃B5‹.z¸v ÇE‰Ãq  Ç–ý>ùRž‡|®õ¾ué°òr¢ë• l\Þ¦}4/Ç—ÅNãDmg\Åø|Ó°ˆ$‡xðs×ró}´¦{ »ýš]Ô…`ñïõÑh{hƒãÛÞ„u:œ´—®#—·û/û—¯ ûhŸBÎÁÓ |?¼%a, ƒÁp 0Êâý–\@Û±±Ëàñ1€KqG]A#Zk|­PÊç÷÷þù˜ºý|à|êSŸbúôéÇEqÝ÷ðCdr9ª**Ǽ‡h)@Ká¢Ä¢×’âkŠ?Û_ÐŒ— ƒÁ`0 ƒá¤›8î°OŠ¢£ÃuëQ6•óßÅ—~õv´ŒOxxê$) -¨h>“¿ö®Ó;#æû(S3Žž“âì|Ÿ3ü¢ûè(‰T´éUI²æB>zû¹È¤ƒk²Ô`0 ÇÑ@Cp"ö±¦¸[òt£QZ£|ÅÎövž{~Ã1s{wÝu—\rÉ>V¿Ç2…B}„+.¾ ) <%î¹5Z‹0&p¸DXèâºÙà·Škæ8˜ð#ÂŒ0 ƒÁ`0 ƒá$û¯Ø'^ILPBŽºy5¼:Xq’ñ£ÕrµŒKEÙgêL˜y<IT1ex”ÚÈI×7 ƒá8èo‹ÊoÑ[Å>À£±}‹qhKçËöƒËÈ04‚æÑ'Ÿ8&nùÓŸþ4ùÈGhllsÞq€c^~ü©§¸ü¢KЖU tÉò7جB¥W‚0áOù>实Ëìè²5€F6 ƒÁ`0 †{^@·£¿JÖhòùɲs®çÒµg7ްÍðÜ`0 ƒÁ`0ôO”ï~…nŸÇÇú- ¿BJdèî9ØJ„%‘ÒBZiY«8Œÿ뺬zlõ«~Û7ß|3ïÿû÷9ÿøãsöÙg³cÇŽcÞô½=ÀGß÷wÄ"‘ pÏWù ¥TnB)”¯ÆnÃØÀA¬`58Œ ì‡ãN]Ú;Æ4Þa ƒÁ`0 ƒá„"±g¾u¦ýÄŠ,U•IܲsñX”% Úˆ,X`jªÁ`0^u”R<ýÔS¬8óL“ƒÁp| 2&>žh[& ÿRŽ9Vâ¯ëydóyÖm\ÿªßêìÙ³Çïܹ“[n¹…ÏþóÇMquvíÅósÌik!jÛX–…” Ú¢˜[v<æ|™¸;f¿|[ľƒÁ`0 ƒÁpBSHx þÑÆ?Ó~b¹€ÖÏ[ J)²¹Öðpiu¶ø ºmÕfRÀ`xÕaWÍÇS»5úÃW«<Ž•¾_k] †‡‡M5mÕ`0ûӘ혾jÑWŒ|eèú9Ü )Ñá5<¥(¸.==ìîè8fnÙqî¼óN®½öÚã²ÈžY·Žé--ø‘¶e»Ë„_Š¿¥mñüx18c…^ýJ‚°Á`0 ƒÁ`0N(T6{ÜÎ!Ú'ZaöõÅ]tÝ&ÂA»ëy(ÿèêõB,˲,ÓB †W³O‚B¡€ã8(¥Žn‡jÛÄb1lÛ>æ B”Räòy<×=ªéBF‰ÅbAy¸.N>ÔËò,b±Ñhß÷ÿb÷‰DJ÷:ã¿¿äF”“[Bàû>ù|ÏóŽêwI)KuÒˆÀƒá :¨}¶¢ü³ýÀŒs=~«ÂþG[¶m;&nõÁ$“Éð–·¼å¸.²­Û·ã‡î™µÖH)GÇŠaþëðÙ£ëê{ÜC{L¼'aZƒÁ`0 ƒÁ`0ŽN8˜W°dïÞ½dKµ££ÿò™€²ëÙ¶Mee%S§N%‰dÒœö#1I-„ÄÐêU[µ.Êòï/•ÁhY™ùþ“‡|>ÏÊ•+Ù¸q#ÃÃÃGÍÂPJI}}=Ë—/géÒ¥H)¹ÍÊâ„ñ¾­?4>9rWkÍöíÛY½z5íííxžwTòFkM<göìÙ\pÁ$S)V­ZÅó6044tûAmm-§Ÿ~:Ë—/§££ƒ•+W²sçN …ÂQ»×h,ÆŒ¶6Î?ÿ|®Ü-‹X4J>ŸÇõ<¢‘ÈI'J !ÐZ³yófÖ¬YCgg'¾ïµrJ¦RÌ›;7¨“ɤé( ÃQw Jk|¥xæ¹çމ[:ž\=ˆöŽ”ïq}Ãw2>kJeWwÇŸ3 ƒÁ`0 ƒáÀ>Ño°8y,¥¤¿¿Ÿ®®.¦L™BSSÓQu5éû>›7ofç®]Ìš9ó¿K)…ÿ VɶmvšsÃ]xN!-buØ‘Ä_¼<”R¸žËE`IqTç[ŠÂ‚§thq(°-1)n"\Ï#bO®))¥PJ¤5@Zò°ë€Ö:¨ks´¢ÕÄÑȃ#çyX–…iY¬\¹’^x PQQqÔ¾W)ÅÞ½{Y¹r%Ñh”eË–‘ÏçKýÏÁÔÑá#™üø"À²Õ•)’É(ZÏ–o_¹ýËÝcáµ··³råJ„œ}öÙØG©üŠØk×®å‘G!‘H°iÓ&æÌ™C:~žû@÷óJŸ÷ööòøã3<¤E6¢±Á`0 ƒÁ`0ŽQN¼™ÎqðòØ###TTTÐØØH¡P(¹UJá8Zë1“åʼn™âuƒÓ)RäÒAìH5B$€À˜mÛÌŸ?ŸU«VÁÌ™˜3xžGggÝÝÝÄñ Mb•Ò¤**˜ÒÚ:)¡FH‹ìÐ^v>ñsúwoÀŠÄhœSN¹;ú—û‡stôŒ0”qP’1›ÚtœÆÚ‰X¥ŽìŠ”§à³·w„®ÁŽãa[’t*J]U‚ÆšTÉýÞä®/éëí¥±±ñ„Y!Ù\ŽþÞ^<ÇC"÷«Çj4> !Éd’Ææ¦Ãr;00ÀÐð@)ûoJAì3ÛŠÐÐÐ@<žØïÄYoO---¯ºÕbq¡GMM ¶m#…`ýúõ,^¼˜êêj***ŽZ¥”ÔÖÖ¢µfË–-,_¾œL&ƒ‚t:}À2ó<¾aî_ù[wu‘L%K}™R)aÅ’i¬8u®ç"…´òH h4¶DzªADÙŸ²ïû>ýýý455!¥¤»§‡l6Ë’%K¨L§‰„Ûêâ_)@cIë RD"‰kÖ¬!ŸÏ³dÉêêêH¥R¥>¸¸Æ²í ž»çí;i>ÎËÂ'-€-Ëâ‰'ž ®®Ž ’®¬PßVWWG,ãÑÕ«¹ì²ËJýXkkk)MãEjƒÁp3˜+Æ‹¼¹~.‹ý;>6°Òº“V+Å6#Qzz{' ¹P ¤T£9´.–…(>¬ÊßoŠ1ËßEʯm`ƒÁ`0 ƒÁp’£µ2C£c“ÊÔ¥hýæû~)¾ ”’îînÇó»EAB…+Ç•ïB¡Ê‹öôbÛ\4IjjKÎCë4`QpR©žç•&ÄÇL>”í{žÇÎ]»èïïc挙Áäsq1y8Ù022®ö]ärY.X6ªƒoQҊеåq$.õÓ“ì¦wë£TÔÍ nÚ©GÄ…Ý;ÍîîažÞÜÉÞ¾<å¯- b fMIsÚ¼f*“Ñ#&K)Èä\6lÝËæ] çƒ|µ„ "!³X±°™ÙSkG'u&õ=rRÓ½·‹þÞ^F¬aºÝ.||&ï¢"J«l!a§èܳ‡æ)-“€…¼¸e©TšŽÎ>²9gBC AEEœúÚJ‡!)™BïÇ*ñ•D’£åÆuÂï*+@ˆÊ‘L&I§Ó´– \¤ï·&”ö×éû!‰ÐÒÒBûîÝcîû@mUAWWÝý„„êª$sæÏ#Bííèá¥-;i¨‘%f÷ö`[C5·’†ÆåH{Z§ØŸ\ž7ž©²²’teå~]Õë·ÖšL&Cy'Rkçšêj*+«^ñkkkY½z5™l–D"AEEétš‘‘¼PÌK¦R$ FFFÄ ãõJË"bÛD""‘Ș6gÙ6©drÂ:fÙ6Ó<Õ«WS]]MeE•••Äb±ƒ®gJûäý|]@`·*°eô€÷Z__ϪU«B¡½#»ééD ÇŒ.þ¯QÔU´P›jÙ¯ ]´J‡X&{÷îeÑ)‹i¨«çk?¼‡He× ©X’üp†ú¤E}]ŠŠÔ¶Ø‹”X2‹‚ή-H,$>søA>ì,¢Ñ(ÑhtÏRJ2™ ƒCƒH)HÄlß± _)lËÂ÷}†‡‡dÎì¹ÔT× tPÕ8ÁL1&oŠåaÛ6}}}TUUáiÍðÐÃCC ±{÷núúúp‡h4J2•¢"•¢¢¢‚ššš’goo/Uéô„ý¡´,ì2wàÑh”X,vÐÀJ{ 8tû[®&r IDATðt)lj˜Est.–ˆì÷áPë’H$ÂÐÐŽãPYYùŠ‚úðð0ÝÝݤÓi¢ñ}#.ƒY(¸‚hDR•ŠP]]ÁÈP?ííí(¥¨ªªšl+Æ’éª*ÒÕi\× …%-âñø>mB)E2™$™J H1êŽ:‰í·?°,‹h,F4£à8tvv–ÒŸN§inn…ü ŠE®µÆó|††ÉŒdèèè §§gŸçx,cîܹ¥ºw ° ZÃH6ÏàÐB«Ãêw Ãñ=žûÇ ¿¢Lø-о¡g)–5f_HF Ð8®GÎqèíï7ù~éÀÉXh_á[Vq%Ê`?Xì[•ÀZ…_ˆÃ% ` áBÕrk`# ƒÁ`0 †“IuúÐ䯢1V{ï ^ž)us°åÑ•,µÖìèz€©us‘B¢´:aK礉<¦CW£B¤RÕ‘eá…–W‘HdÔ-eèº-˜ãɳ÷³waYƒ‘BZqÀö Ô&Ð(@뉳V)EGG}}}¥kç‡þþ~q]—\.XÅyš`Ez<ž ¾¾êê*žßø<¾ÒLŸ6í -+µïR?ãtvönAtW}$ìz{·0Ò×N͔ŀF+¯<³Žž!Íl$b[ Œ8ôö¨¬L’ˆEÕi^l¢º"βyÍDlqXó'–%yqk/OnÜMM:Ek] Çóé¡àz$ã1ÒI„<ôìNª“ÔU%Ëô¡"…$ãЫ»˜’l¢ÖªÂÃE¡ÑJãâá¨;]lÞÎ<½ðˆXÒJ!è¡(OÛ´¼2+¥‚òÉÓÕ;Lÿ ªÌÚo2í¯P(Ð×ß..®˜ìµÂ­çyX¶M}]ÝA»¶µ, ;´ Ý× $Wa[ïZöŒ¼He¢_P:t¾­ƒÉ@§gJv!¯û6¤ûý˲ù]×%b[á"A.çÍ^ "¶‚(¿‡¨½ƒ˜½Ëv¢ iYÔÕŽ±¶1´¨EéVJ° …ôñy£”¢³³ƒþ´â¸î-ìŶmZ±,I.—ghxˆAžß¸úºz„”ÔÕÖQSSäÃ8—ÍÅú[þV(&¯[·ŽÕ«W“ËåJ.Ò‡‡†JV¡åSWWǹçžËé§Ÿy‘È„V¶EÑE—ŽV(úÙáîw˜w}â%\‘!!k~”&1‹H$¹_kðâ½t=Кááa¶lÙB2™cý:aŸêûtttÐP_'â¬z¾ƒ¾Œ‡NnG,MKuœ¥sš°­^v…î•_I\>E¯žç122‚[p±"6¾¯ÖØ6ÆÈåò ô †-4uuµA»:ÀK•;,k/|vww3<<ÌŒ3X¶t)v,E×Pž¾¡yWµ%µ•1*IW ³g϶lÙB*•c…ŸJ¥˜9s&±X¬TŸD*YÉ´)-HiÄ_ƒá¤f?1|'ÜŽsÍ.¡ ŸŠ öxÞqÎfËù£@m] •É$Épáºz.¹tVª´_þ£ËÃçô„Û²ç¸Á`0 ÃÿÏÞ›=É•Ýw~ŸsÎ]rϬ}/ °  7v³›¢DŠ‹¶Iž‘Ƕ$;á/‡#æÉþf"~´#æmä[’%ËÄeH §Éf/do@c/Ô¾ç~·sŽnf¢ ( QPÙ÷Ójɼ™÷,7ïùžï‘‘ñy%Š5ÛÔ,…"1KÛ7ùáÍþQe7WùÇLZ~|ãoé$M¾xæ·91vÏÉaì/gÀÏMðÃßë;1äö`y‚B%ºH¹ƒM„¨º‚5”÷)èë ¶laíÖîNÔZ³¶¶F«Õ7Š"ºAw NXkév;ý²ÔÖR&ŠB­åöí› Õ¨TªOçdÓšòè ª³/ѼP,H’ú=dè°yëmü|ˆãWðŠ§±æùvöf;dq£Á+fxíÒ,Õ²ÏN½ÃÛ¯qw½E­RDŽëro­Á…“c ÅÁûê»GŸvà ‰ÖÜ[Ý£RÌñÆ•9ÎÌ¥Ù¬‹«{üÍq”C¬-žëÒ¶’k÷¶ùúë§HôƒüÚ˜GœŒÇá°É~ß’”” 5F&k0´0léuêz‡]»ÇY/‡oÝ#U$84¿rз{ùsz~,i9òF; Ñ «¤¢i_´í À›i6öC¢àqž/uÌ» Õjuô>rAé ˆêãK!\Ïgfò•r™V°GlCâ$$1!¡Ž’ÓØ¶F)õDø8%Á÷·àªÔ „AJ±1Æîaí&ÐfzsÄó?D©û»‹°›ÀôS^hÅà¼ôÏRŠåå%–WVÅ÷}vwwi·[œ>}ÇqÂ.Ýn‡8Šð}8ŽYZY" cVV–9wö³³sÎ÷~Çöþög{{›b±ÈéÓ§i·Ûƒ¾ÒûrúŽår¹Œëy4›M&§¦.ßǵ{¿ï8J¡çÐ~0h‚~IOhK""Ù Ò%3AÍŸ$ïq¤“Žœ¾#è¡~p”…|ÛË<®V«Ÿ)ÐJ¥X\\d¨VÃ*Ÿï¾·D`]Î/L0=ZÄw­ au»Í­û;t?^ç‹çG(—#¶wv( O|ÿOüÀ ž«h·cÚí.åB1uãæËò…å“kµóÓ3)ÑÚpóöM&ÆG‹–’D›'ŽUG)´1,,,pêÔ)Z­'æçéÄ‚ïþt‰íVŒ„Js­ar(ÏËç&øÒ›o2;;K¹R¡R.ÚBkM§ÓI7‘ôúß“ÚIJ2ñ7##ãgƒñÑZK&þ¬n ûŸq3222222222222~Vx®:ÒïK©HtÄ'K?beï…b7]§û{¸sÝCE—»;°×Ùàêü¯’ó hüÒµóyìfßÎn+eêúì•k–½ùý2múè!5‚!,ˆ"ˆ £v@Ü‚ °ö ‚eo±ùá|àDÇt;êõ=\×£P(à¸.€SQ!I4cc㬮­Ro4¨Tž¾¤§µ†ñÓoÔ×hm}„ˆB¤ha‚ïî.ÒŒ¦9=‹rÝç¶“ÝZØ®w87[e¢ÐåÖµ÷zÐî´,mÏE‰ïyÜYÝå?|‡ñªÂ‹6–ÉÉIfffŸZXB°× (ä=ÎOk‚{|¸}ÙsrÓÞfA®'Œ ù|޼‡¢^%ÑkS1p~~ž¡¡¡gÞqbŒ!‚“—ã(‚0 2¢cA[ŒJ¥cY•Kì˜-Bbifub“#U! ÃðÑIKHâ$!ŽB¤H°6N ĉa§†1ÚX´5Äq*¾‰c·šµ999Éêê*À3Ó~ÞéÂÂÂS‹¿ý±Ówƒ>Ú_$J¦?ï„ ö¨w·HLH”Ä: 78[«—U”’HqøEM9R©cõzóŒí;ñûnü¾ ŬŽÀ†='Q Äto“Ê ‚û!lüÔƒSì€ûçÆÏ帿¼ÄÔô4ž£¸uç6Žãày·ïÜâÄüI\'Íâu\—b±H©T! »4 VW׸}÷6CÃÃiYè¾x»Ïm¹_®Õj!˜œœäêÕ«$IB¹\&ŸOùaÐív ‚!Ä Œs¿U+•Ç:9¥”ÚCJ‰êûq}PÛd0&\åáÇ“%òô8ù³©¨ic© «Pô·£R©V©ÕjÄqüX÷¯‚ w.ÆÇ'øÁÇë´ců¾4ÃäpW ´±ä=EÑwð]‡îlp}¹Å•™ »;;t»Ý#»€{ ¬nwYÚÛ¤àF]-KÜÚМ&ŸÏaLÚ§Œ1ìµ"îï*F«9¦Ç*\»~Ý€•­6ÃÉP¹pø±zãÔq¥øôÆ Ú­¯¿övÈ_¾u‹½VÌËç™/á*E³±´QçÃ[«,­mñ¯-09>ÆÛï¼ËÒÒÒàZ[,yíµ×( 6ddddü<ÙM“ñœÏmæÌÍÈÈÈÈÈÈÈÈÈÈÈø…”ŠNØäÃŰչO±”£¤Š´öBéá:ƃ&&~bEÁÃB ¤›š|öaÐ(éP-adÄFýoÝhðò¯S)Œ¤kð¿DÛˆ?wÀûJ}çOßå)•Âh³/¿1uRJÀ|°lì2˜Ö®ƒMC xü¢ršéjüIni>a>ŸG‰çû„‹ èDÙR©Šë¸$ÉÑv$X£ñr%¦.}“;ÿá6ª ®‘«N°úQƒÍ÷ïR=Wäêþ!V??pÎs8=•ggm¿4ÂíÕ&®t¢t(µ;!žï‘÷]êí[«¶‹EP)*:wîR.W¨ÕjGè’¹±"ËÄ8l6 a” ÇóÙiup|Ÿ L¨}–6ÜXm-ž#)çb‹‹Å§Î = c këìní Âi d!I+&Ožs+/ H±Œ©wvh\Úeð…ƒ¶&uÄñt`)%Fƒµõ¢0D)±O8”‹y„iñÊ…*¾/ÐZ„ K›-‚H¢”DY…R®ë ãã—m¶Öâº.“““ìîîÒh4¨V«‡gl2Iïwçi­‰¢ˆ¡¡!ÆÆÆˆãø®p1|+-•|P¥qðŸì] Ä 9­Þø°”i)â#ö—¾àç8i>ã(”Jç ÇQé¦ Ú(´q1FcíÂÞâÀlb…Å ¯7=ý…pÿ¹ØÛÙa{k‹( i6ÌÏŸèmX‰Y^^æÃ? PÈá8iŽo«Ùdey…Äh<×%—óÙÛÝ£Ùl26:6˜§TO`¶ÐËGá¹X*Ѩ×ñ<|>ÏØØCC©xF­f“f³‰%u-A€íeº®ûX§ìµ‡Ý·ÁgYè‡ûA'®s·ñ.¡m¦íb³›n@ê·;o‘î´X+öæ˜-½€«rƒ"Gu‹Þõfkk‹(Š=T BP¯×©”Ël7:ÜÝìröÄ8cÕÛÛ,`‘Bà((†*Ö÷æ†ÓÌân·K¹R9Zÿ4–õÝ€ï¸ËNk‹+'rœ™*píú2ÛÍ„©‘2#éöc ïºÎÛŸ¬²¶Û¡è;\=3ÆÊvÄ—î±U˜ÍóõWN<²±dPª{ßùs‡J¥B©\æ{?Y"Ð_}u–…™Qò¾Ck 9—‚ïàHÁ'‹»|´ØàׯŒQ­Th *kô³ûm$38##ãçL&ûþlT}Ú÷'«ë‘‘‘‘‘‘‘‘‘‘‘ñóA Åvc•kË?¢oQ­–m´`£¾Ìûw¾GÎ+ò@8ÒaaêòNñ©…Y!Qpwý}¤ûÐ}¢auç.…Ê9"³G®˜£ÞZãí[ÃÅé×™>…ý%*ý¹Ì~c ÁîΕ޸ࠕºìÊXÆ0¶‚°;ý.Ÿ$Ú|„ÇØÑ^þ¯}ìë1&²­QL€Ž¨UŠLް·Wg7ìÐíƒEŠžl@P™›!ç+|G’÷ÂD£õÓ,! tb¢O©ŽïR𤽙çúßÖ©Ü…‰õ„k×þŠ3¿ýûk%ŒŽŸÃù‡‘jÆÎ £cãTFçùÁOÊ¡\ô)USá½h%X˜Áw$m¸½´Í?ýµ“twï³½½ýÔ°5–RÞ£åò9—'Xù`ƒ›Ûu†ªEŒo+)bm‰ƒT‚KçNä|¶ël7â·ÎO²»¹J£Ñ`l|üØ‚¸N4»;»h_óSùîÇ÷znANåEiÓ ñ oŒ×ý7Y\Qä”Kâ¦ý061ÊSä„÷TSœ‚½ú.ZköZš·×‰c=Ø!¥ÂÒA Ps3£œŸ-²Û¸ŽaÒðv×ó‰£gIúB[.—cee…•••ÔÑœ$8ŽC¡P¸íŒK­év»$ZJüÆqÌ™3gž˜úÄy@ˆGþöOÖ2(ˆý h Å˜ä‘RñÏmLOMUèœï% °xžKB„+räó8n!ê`×Aw@B®#òãÀØQŽbß/ommqïÞ]fgg‘BËçN§¥R© µA)I½^'Š"ÆÆÆ˜žž¦Óí²¾¾F§Û% C–îßgrb’\.w`à ½:!…|ž$Ži6›¸®K£Ù¤\.cŒA÷J@÷ÛòÆ ×îípw3 ç¥åóo¯µ¹±qqaœZ%×Ûì¡øäÎ&ßúñ]¬µA‚EðÖG+tåED‰æöZ‡/tÍç³~»–Ëe†††ØmvYÚI¸xjš3'&ð‰’HË@ é0=)i%õNÈÊnÀÌÌ4““ §ÆZ:íö‘猌ŒŒçÎ!á¦&&X]_ÏÎÍs¢T,>r®3222222222222þþ"­´¸´}‹÷î~×W”+%Û¢6™.O01±­ b0=3–1šÕíEj¥1 çŸZ˜BRïìðöí¿f¸:Šëä–ÁÒíøè$•â÷v‘¢…—/D{¼{÷Ût¢g_#J‚#»Žÿ!ò¹Ë½…ÿ¾è!„,—J¥GDßÀe §Ilô}„¨£”a¯.Qjšbå2ÆN „"Œ± $­HpwOë´æÊþÝÍë$:! ÃÃE]o-Ý¥^/óq½NåÆu¾tiœ““åôyŸ¢ó›x‡$hðÑŸ¶I®EL%yJ…*wIÈÍÆÛÿÇý&n~žÃnǬ­®òÆo%†—NóöõM¤rJu#ÂXSo…hc©æh5šœŸ-1Rqå9>úè#N:õTb\W±³½E±X¢Ïqõô0ëÛMšíÏ÷ º†0Nã„;Ë{$qH§èÐl6ù¹ª%Ÿ°Sdee…ÉÉÉcg[,ÂB»ÐæƒÜûœö0$«b£Åb€O:s•Wp¤ËövŒÉ$à3ļ˜?’KDë„B>ÇwÞZF[¥ütâ´käÍ騨]NÍUÖ ‚ާp$L (Îp¡@«Õbmmr¹LµZ=²ˆÕÏû‘Bâ»èeKá`¬A`ä„':IËcQÂ!ï‘":£¤ƒÙw!8®i´TPJ‘Ë—ÐÖÁ¾çˆ»š-)'ð½¾³ïGxžËú¦`rê,Ò½ŒaèXçFkÍööžŸfìÆqLUÖzígÐÚàº.óóóè$F)ÅÆæ&Åb‘ñ‰q:.Q†!…BÛwnQ*—xáÒå^9ûCÚ£ç–RR*•ˆã˜ ƒ 'tzæñ¾ <—ËQ,ÓOXØ}\ö#“ê¾oK¥ˆU‡@ïíÇiÿLè U?û—^épñày8~¥×qXXXÀó¼'–5½ÌÈ´D>ÙÛ@€ÀJ‘~­ A”öÙbÎI³³cuͱªaÂúN×qÈ{Šû[1…¼Ïp­ÂÂtbÎE Én#àß½{©Ñ_}õõïo¢qhwB„­òÅK£Ü^iÒiŒWž®¤§Ó¡V«ÒlG,oì0?î³±áàªtƒ„Öš(I¨7Ú¼ýNn™­‰" U¿øþ_–––RR­Tøú7¾A¥\´XFFFÆ?Äû—Œg§T,>¶ÊLFFFFFFFFFFFFÆß6šOW~ÄõµQ*P.4ã-cmÂFû.ÚMˆ“ÄÄ$&A›ß) ”%ÑÑ‘—^“$ÆJM(÷hë(5@¡RCž¯Xi^'6!Æh:I›œ,àú>XùÍî/̽‰çxÖþù\•€BÐ šÍ&Q J&ZC¯<¤Ö:zŽ<Æ.– ´•À8Âî Áæö=„<Á¸3Öè ·ŸÄ ¡v¨ŽN239L¢-˜}Ž(±O”°,ïý¯'¦F‘ÀÖn‹½. S•§é6‡êì7ùèÿû˜ðÛߢÒÕlú]v_/2õÆ^¹ì‚³F{íOñ*¯Qý Ö„Çnk-[››äóù´¼u·ËËç&ˆÍû·w‘nžz;¤ÝMH´a¤V Ñl33ìñÅK“ä=…çåÑZ³³³ÃÈÈÈgSJI³Õ" ÃÔ½(%Ó#%¾öê<ý£»Ä±¤ê­ˆ06(Óâ•…Tlv¦ªL;lnn"¤ ÓìÐn·ÓÌÑgX@ŠlD$»Œç†‰L€Æ`l*Æ´M›†mб@Ûˆ?ÿå|!AáP¶%t§Ÿ×û”S«°Ô›]jCU\ßÅjÓË™KpÝ ¢Å¢t˜+ó¥7. D7ÏuÈç\–µ~æuÉ~ùÕ™ÙY‚ncL*ðù>§Ndoï{I’ôò_=ÏãÌ™3G.{ÞGkM¢5z»-Yo,ògïü/äýRH\×etl”Àî‚4kHˆé ”!ï¹qï]î÷:ÖZâ8æ¿üß0V™9Ð7úŽÂ X¤ý×÷\mz‚°$qB¬R(U ÑLà;c'“eî/½Guä*÷Ä‘¦ukS-IŒ6´Ûm Å<ÝnÚóù:ÑaH‡cèÝÔ•k-Fkêõ ˆ¢J¥ÊÐð0:Ѭ¬.³²²ÂôÔ4ÃÃ#$ÊÌb}Goò_*•Ð=çw¿\x’$h­±6-_ì8ÅÞ¢nò¤”i†u¯ ´î=W¿ô?„¤eÙeú} `@<È{¤pÉ‹Ž.aÐÕEXm4I“ˆx_¦»>Ò|!{x©T"Šã'n8ñ<c!ç»xJÐìÄÔ Âéõ9 aœ¶©§  J‚ç¤ïä8¹·Ž£¨•sä=…’ 2‹S#E¦GJøžC'ˆøáG+D‰å«¯Îpr²†#Õrž‚ïR'àÒÂ3ãLs/û¾¿Oöϧƒ _,R.—ð|G‚”€58±¦¦§¦˜0’­¶&Œbâ8âüùó\¾|kmÚw …sÂ1瓌ŒŒÏÖùº~NÎÏóîOšïçÄh¯‚‰ÙvŸŒŒŒŒŒŒŒŒŒŒŒŒŸRHóáý·¸³õŠ¥» ×-3fý6ô¢Î£ QœkI>—f:FJõØÎzè×RPÈ9¸Jí<È2S—¿Ê;ÿ×÷¨çcÎþÓK,|íÕ G-;hBÂÖ[Qžü&VG×ÝöÑG¥îß(!ð\ÉËgÇhu#Þ¹µ‡ç刵¡\ôð¤¡âÁ+gG*§¢k’$\¸x‘Ÿ~ð_ÿú×?Ó«”bqq‘\.ÇÐк瘛ÎóWgø×ß¾…Ÿ/á‹.è6EÙáK/œ§Xô©×ë΃”’{÷îqéÒ¥c¹N÷7Yº¿Ä °,JH¶Íkz™®mc„‹ïz8JѾÓ&TAjN‚k£±©ÉT,}ÚIV’Zû_X‹’‚ ÂX3œÃu=’8d}}±Ÿz Â0ÄqJÅâ3»å„x®‹×Ëlm6›²°nÃj­F©Wþ·Ÿ[¯×%Ä[kS÷sÿ±Ö’óJœš|‘X´˜›¥7Il@3ID@—!-„«q”¤+¶šÊSͲ½½Ã¨œ¥œ«Çë4é; ûéîçRq°‹ l+Ü\.ͼõ|¬©!äIŒ°XYf}{‹ zœ4§Üé¼ôE¶F³N§Û¡X*aŒFJR> Iâ)¤Ôtƒ€n·Ck©×Ó¼_­5R¤®X+-ù\Žz½A³Õì•oÿìÜg§—÷º»·G£ÑÀó¼TPMºÝ.RJ*Õ*î!Žâ~SÒØ¾Ëþàq,U…°°.ÑŠ·©z`{- B¦9ÐývÉ‹*¥h–i÷E ;É"m½‰pœô÷ìÁ¾vÄÁ±6-ÇLÏÌ>ÏYK©Tbuu…ÙùQJÞ6Ûõ4g×s9Gâ¨t;œ’×Q4Úm|G0YuèÔÁ÷ý#¿>ÏQÔJ9|G01ì¡”BãPÊ»” Ž’,®7¸vo›×.N27QEJA˜Æó>Ö‚#r¾B©±÷Îõcúå¾vòz›or¾CÑw b@*7Íí6IB¬¤RŒ Ñ 5í$ ç ’Ä099ÉÐÐР/„a8ØPyÂ222ž OˆþÙC_ï¿Ï89;›ËçÈäÄăëžÿÌœ‘‘‘‘‘‘‘‘‘‘‘ñ3C èÆÞ½ýmÖš·¨Ö*tôQ·›Þ «ž!@ÛˆÀ¶ˆt€Ö V °©iG[ññ¬ÅØ„ÄÄH)P¤å…X AÜ ·ˆ’$‰0‰ÅwJŒOpw/¢um×Nƒ’¿°íðK_úÐÎ÷Ð"Ù'‚ôE_{¨øÛ¬ÓûS‘#IrH%Ÿ²Ü(ƒ’¡B8ÇS¯¢èƒ·ñÈ?#¬%N ¾§Ð‰¥˜s$:é8bþÕ/Püÿ3Qó/˜Z(/¬h0ê@Ò€d%&°¡Cs¥Cqüé¹$ôÆÆÆ \k»Ý Š"”°¼rf˜ ˆ¹³qb¢œ q‡×ÎŽ1Vq £Çq°Z3<4ĵ0dscƒÑÑÑôq.} IDATǾ_!­V‹ Ûexx¥QÇ1ZkF*ÿèõþúÇ+\™ÌŒŽ±»³…ï ””Äq„ëº8ŽC£Ñ$ŒBÆ3¹€{)• lš¯›ö:vÌ&ëv•H„(%0ÖÐévHŒ¦V.btš×¹½»ë¸ŒŒRßÞåúÇŸpâä ”ã<ñõ¤ýQ`û3©°hcÙÝëÒã^V¨$Ž"ºÝÇó(V*„AH»ÝNK¯VkH%¹qç 'OR-WÇ”‚û¯U)…1ÇI§ÇqÈçó(¥R6iH)qr¹p«èª|Ü9I…KÁ+syúË|¼ú}š]ð#v:+´’mšÉ&†éX¤(ë²Ôújn‚|RÁIr¼yñ÷z%¤íç—§a¿XHÂrçö} ääÂ,®#‰:{õ=”r“ÃÈÈ(ˆaâØÅÚã_ˆ”R¬®®R.•(rt:©Ø‹”²×>A–ÄŽc­Êåaqïî¦gf1@«Ý"Ž#¢8¦^ߣÕj=Uyú>®ëR­ViÔë4 òùâ§¶Mu‰ƒN“8ŽW(‘8Nãôä8ïÿøC¾óÝïÒíveèÿ÷Ÿ¡¡!2222þÞoQxhOç¾¹OÁÉùùì$=GNÎÍí“‘‘‘‘‘‘‘‘‘‘‘‘ñ³Gâ$`qûSÑ"ošÁ±q"Ó¡£÷uct¯â¤Å$X3ãÇÖ´ÕQv¼‡rÂX¬ÔhB ­I£­Á`IÐ$±¦jº˜D±Q_¤µ)ÿßK:Ÿ¿~—.*K)% –=ø»[8è I‚þß©k´_^³ÿ½Á¿÷ukIIcÈ)…GˆÇ›ú"ІH[JJ`Œ&ïQø±©j'OÒZ«‚ì`’-¬.¤0`t´ŒtÄÐÞ€âØ×*ÿÔaÛÖZ–––˜››£Ýn§9«RJÇæ}Å•“š v:]$†‹3F*q rC“$ÁSÓÓ,..2::úøö•’ÝÝ]„”ä ºÝîàgƤ%—§‡s|áL• ±Z@ÒÅ‘‚bÞ£sBâH¨•‹í&JJ¶¶¶˜›Ã3 ¸¿™ÀU’6!›É* ³h<倴DJR)Vh¸u¶¶¶AbJ• N—n/äÙÝÙerzŠ‚ë>Õ†)%ÊQÔ[­N@”h”” E¯ôyŽªçaßû ËßúNïû`&)W©U«´:mêoþ å/|åyÇvM(¥¨T*Ü¿c …B.^¼Èêê*õz‘ÑQÆÇÆØÛÛãÎ;8ŽÃÙ³gÍ ~Zúã½?vûOTO æ§+ß"_S ­d£b””•ÊÝÆ ªJML³³Z矼ü?PðJÏm^ê¿7 tÚK÷W91^`r|šnmÒl‡œœf~n!Ì1ûÇÚ±6'웃°K©TFë´¼µã8òEœÞ†ÇqÃRP¢ÓéÒj5i·Ûìîí' ¹|>ÍKN’˲T.sçîfgæ(–Jƒ÷¸> Ïuñ}àvo6›xž7p>ß¾íÿd~nœ;Û?`qû#¾yõ¿<ø^{ï7Í‚—4â-:jƒ¶³D(6i†Ëi±BïËöM‡„À`’G9€¤o•WÒIûÊ#W§§?^¼z)ågöõS§NqãÆ Î_¸À—.MòƒÖ˜­07QB=ÚIÂÊf‹åÍggÊœž*²xg­­mÆÇÇúNÚÀÒzƒz£ÅW^¡š]M9/©<öš!ß}ça¬¹rfœbÎEIÉ77(òtÄf«ÃäéÎ= ‹›o´Á¹³!cC¬¶>öÛIk͹sçX]]%»|éò4ÙŒ˜Ÿ¥œ“¸Â i°F°ÛÑl44—OÑmnQ(ù£?ú£Áf!®ë>1c9###ãi>G?©$ôþ{€~Öýa.`ÑßlÚ›Ÿ.œ9“ÛçÈÃðÃî_ûp›>©½?«?dddddddddddddTÄwä…ó¾h²ÿÚ«‡ÉÉIn߾ͥK—øÚ«'øö;÷©&‡|Š9E¢ Û͈–áâÉqÎÏ–¸osà ¯V«ƒçïo@\T3222Ž7ûè}Ç1ò‚ …`td„b¡@»ÓÉÎís`a~þ€È~ ÷õ1?ÇeddddddddddddNµ0Ê—Îþ?¾õ·ÜÜy›‘‘yvâ;tÍnºÖÛ[3´€5©Ž"¬Eh;H¶Lb6ú©o·…b`1=!Ï€#ŽDª´ §D MZ¯ËwJŒú§ w%U5Ç›gþ1cÕ)~Ñ3䜬 ‚6!ëëëŒôÜ¥û]fusôr¯©ø>éa… I,ºç€dZ0=ñÂbÑÖܬ…n˜PÈ99ÍÐZ¤S9Dbšèv $_,‚T„Akƒã…ÄÝeŒNÈ•.R_üßñk¿BaøM„e¬ZàÚâ#•<+]‚Hóöíˆ7nr{©ÎÂDßüâ µJž$yüût]—wß}—oûÛH¥ø½ßý]^{í5þã_?Ç{××øàÎí !çINÏ ñÍ×f-J M„är9Þÿ}®]»F³Õbxhˆ?øƒ?`xx8ûà“‘‘ñüù¬,àÁg _÷7%õ+ ½rõ*ßë­ì\>#ÅB gÏέxš{¶‡„àã|&ÉÈÈÈÈÈÈÈÈÈÈÈÈx”‚WáÍ3¿KeqŒŸ¬þ ã£çh9K´Ì:ZÆ\ù-LÇ#ŠCzæ_Œ«-÷önaz¦¥ž®®5éæÞV·ÎäÈN¸WSÁ·ç6v¤¤X+ðþî_àhIί1dhnjf WxýôoázZk„ó‹%ô¹ËB •BîÏ#í¹S'''ÓFí—w~H~RŽTZf×9 qÈÇ,4!‰â˜ÐXZAL7ÒXcI¬å@uʇc…y It"EÇø®:†¶bÒÅñ'ˆ;×&‡°uLCãǶvn™ ³E¾VA‡ºõXëwW°&B8ù'žo­5aÑîtxã7ØÚÚzdñ¥ïf»{÷.år™Ó§O?VøøÞ÷¿’ò±å;ûí–hÍÎÎóóóèt:WHÉõO>ÁXIޕĉÚj0X´`¢n—$ÎÛ`Ð ›aþÛê×ëo†n7  ¹¾ïaƒIß»µlïnïkéäryfæfñsŸõzAòÅWNòk_:ŸŠÎIB«Ý,åreàfwöØz[#°8““”¾üe‚O>!¼y“êïþ.ñâ"ÉÚÚ±]¿‡Ññ‰ ¾õ½¿ãÆÍ›|ýë_§Ýé0\ââ…‹(G†!zƒË/¼@±X`mmB¡ýÌì#r äð!ã2çæ¹2÷eÂ;]¶ÃxM±«ï!]˜Èeç~Èéêë\™ÿ2R>ÆÙ¿?Küˆôû¼’’Ù鬵ƒ2ÊýÒÅ¥‚K·xœëºÏ–g·¯$²ïû\½ò"/^})uLÛ„ÂÊŸàÌá®bnþþö'&®Ð¡Š.®’¸žK³ÕÀK·Ó¦ÝítÚí6{õ:—/_¡V«l‘fn?nSˆèÇîÝ~)ÓO¤m©„âîʇUG9.AàáØ —1èƒsö¾~`Z~œ âk¬·o§9¿nŽûñ1~-B E¯ä3†ˆq¾Ñ×7.#Hß‹#$ô6iHÃ^³ÉÆÆãããOý¸©©)Êå2ËËËÜ¿Ÿ$İ®ë’/ØÚÚ¢X,R(çõƒ>Àùóçqç©.­ÅœÃ̈âÃ[;4NLVøÆë§87?Ìn³K†¬·B–Ö¼þ ¯¿0ÍŸü͇Ô1{¦ÐnóÒ¹QÞ8?DÞ±‡^>ö»´“$áò•+\½z€z½Î{ï¿Ïôô4_ya„ßy}6¼ã„f«Éòò=Þ½¶E¹R!I”ãpòäI*• £££ÌÎÍá8Îp–™‘‘ñó¸Oy¸’P¯B‰’’—¯\ÉàçÀ¯¾ùfº“œƒ1 ˆ¼GùL™ ¿Ç£·$fâ%$Šk? 8<ƒ_ô©Ûût‚&·?ܦª¦Éyy¤R(%QRrzè5†Š£G»õÆRÎÕ8;ú:ínÓÖ$F£!IV7¸ðʾïgŒB0M{C±P~… Ó¯ Ì–â—`íðsç–Râ(5¸‰WJaì÷í#}³/ô>$öîÿùaÏ à8ΡDÊ´4o×vÚ1V$$Æì{}Áâб2øG«“ð\…ÖGÏ4´VãÏÓÙýù qgn2”qüIÒ@:#$AB¡v‰æÖZLS.™D+‘<±„«tßI*ü¾1†|>Ï7˜™MKý†á#Ï¥œ4¸ÇŸý¾Œ!Ñå8´Úm¶ž…DQˆÈ¹„=vb ¶ç¼6Æâ(EÇ4껄µác xÇq(Wª\ÿô:Z'½cËA?ýr¾¬IË“ %¹pé<ÿAÞ©ÝW’¼ÿçqB¨µ–‘á®ú ‹‹÷ÑF§›„@ J 2é¬ÛnSÞÝ£*¦ÛÅ››£øÅ///“;wŽ­õ¯°OqÞ‚’’B©D¹6„ã8ìloóÒ‹Wª±¸xŸ °ÖðGøŸKKK\¸pŸÕ”k°ä½/Î…·îìÑjË£äÜÁ¶CÕNñâü¯?Vü}x>8òñ Ã("‰ãGÚ}ÿÄP~ÎY¦*œÖ-Œ»ŒÖ9lûcDå_é{wù°¹@E¸Ý›¸ÜiLkƒXV0Þ0 Èç \™cfffÁúp?}òüôh‰F)$aÜåæê;8ŽÏÂø\éòñÊ¿çÔü‡û«K\˜ú y·HœDO+K-7MÍŸF É^°ÁšùI¯·Â·5Ü †CMDâ´‰½]"Ûí Ê´x¨ºµ8²°h­¥\.óÊ«¯byê¼kk-Åb‘³gφ!A úRZÂ;µ–ëׯsûömFFFÈårX`Äuùä“O‚€+W®|¦›ÜZPJrålED%¼üÂ)¦ÇGPJð+W瘯°´Ùdv¼ÂüD×Qü¿}…[K{\ûôc^é •¢‰Æ˜§[HO’4WÚZ‹ëº”ŠEî/.²²¼ü@Ì·–$IH’„ ØÝÝMË£÷ràkµëëë$IÂÜÜÜ`ãD&ÿfddü\°Ñ‹é;¥Lol_ímxÉx6^¹|ÕüÙ—·|à¢ö픑‘‘‘‘‘‘‘‘‘‘‘ñlˆžH÷Ö+O޽@Þ­òÞÊ_ãØF†%ÉDež'“R®ŠR×uñ<×uQŽDʧ_ɳÖPÌWùµKÿqE!qœÇ1qñÖÝ¿@Èš?…ßšfg5æÊèW™=‹çz8Žzlá/Ÿ« àÇu@£õS» ¥””o;òIwŒ…/1½lÒéxz1øßX ¨w"ò¾B 8Ž73Ž#¬šÀˆ“èä6ÈIœ\ÈÞæ6ÅáS»!ùòí½]ZÍ;Pü~íMÂÄÅ\ÏÃïes>~°¥®Èb©D>Ÿd/÷Ñ=¸\.S.•ƒúÐv2æ±îßGŽi ¾çá¹.|þ‘×(„À‘Šfäp{½5(C*4®£ 0IÌqu6)%s'æ©ÕjÜüôS‚NÀøä8RJâ(& Câ(¦4ê{ŒMN"¥à§ï½ÏÙóç=ò11”Ëe^~éUîß_äöÝ[ŒŽ‘Ï0ÆE!aÅ1N‡ rSñ'©×Ùù“?aòŸÿs†þÙ?cý_þK:?úÞÌÌ3McmÚ~Bàù>gÏžaxx˜B¡HÐí’$é$ÜÏêU=>ѧ'Øh­ Â0Í‘~Æ…9­cêÝMØ—õêH—éò9>X»ÏHþ$’ÍÍg_¤ìõ}¨äGPÊ}¶)‹ÔüpVm¥\ÆZ;¹úr¹¾ï§y¦ÏY߯8É&èf}›o£Æ¾HÕÉü2¯æ†QÁùÖ-œÑaeìê]LÔ%*Ö^Udâ&Ir,Qô` ,†kË?b­ùí°I³»…5‚B^àHÍN½Ž0Ư ­>Z#¤½”´:‚Eá :efÄkŒåOš.+Ùà]œ\üÀí-ž}¸ŸFQê\}hž|ÜùÙŸ­n­%—Ë ú‰1†0 1ÆpòäI¤”ܺ}›j¥B±–ê¾|ù2o¿ý6£££Ì÷²?ë4Uò.O–i5:(Ñn·( œ_ãâÂЉ¦ÙlRpWªÛ’‰áÚÂ8yêkå§×¯ó½ïŸ08è~ïç¹c½ XŽ“–fQJqåÊ^xá…Tð¶–©éi¶67¹{÷.'NœÈ>}gdd<_ž²ü³í_römìëWÅPJqáìÙ,ø9ð…—^J«sô*t¹œ‡rRñÕqŽ«ŽU3-mQVâXH%*a$q(tÏÒÚÐ|ùÄ?a¬: Âà8žç=ÖÜù‹ÆçÎ,ö•<íw¾ÏQú»Æ”„ìJD÷Ÿû1ÏHkGPð¢tq%‰G_ hwBʾ{¬u‹¾Hª“wè7è®ý òå)¤ìb¨ãæçØÛÜ%VÑþ%ÜÜE’$BJPJ<(£ùǽRž‡:€=ÏãÂÅ‹”ŠE:ÎcÝoOÓVƒcö25kµZš'{H èåû÷i¶Bd»±ï¼>hÏ8ȰCAÙ£g,÷ߟÖllnq÷ÖmºÝ¾ç³x­í`ÑÏ`ñ\ÚÈ0Ífju¥$­V‹áÑ‘cåLw:îܽÃêê žï³¹¹E’Äô$îžórùN©L§ÝN](žGéÍ7ÁZÚo¿Mþòeºï¿}Æ…ÈþF‹8މ£ˆ\¹Ì¯¼úJÚ¦ÖR*•ØÙÙaww\>ã8ŒŽ±½½ƒ‚‰ñq‚ ŽcºN¹üL°Š¥½Où_ÿö¿çÄÄ)´ƒM ‰1P ÎÒlï°îðo?ýßR1³—Ï ‚V«Éþ¥ÿ‰“c/`¬90•DëGÇñÀ͹ÿyÇ9t“ÄóÄ EPû5_CÄk䃿Älÿ€®÷;w‘„¸{h½†i[Tqµð$;+„É$ yÐɱ+ŸAîéVÐ`½ñ)¹­ Ã(ŠBîܹƒµ–™™r¹RÊC«.zlÒurÇõ0´Y^]Âu]Ânȹóª ‘ôúl½^çÚOÈçÒ¼ñrµœ^«Ž0•ÆqÌåË—yùå—ï·ß/ÇÁqœÿŸ½ó޳ª8ÿð3§Þ²½ ,K *Š•¢€½$ÑÄ ‰Q£i&&jbª1?{-Ö¨±'b¯X¢1ØŠô²´ÝewÙrë)óûã–½[ÙE$€óÀýì¹çž2gfΜ3ó÷}³Ï'mìº.uµµ¬[·ŽÒÒRÂá0v ÀØ]wåwÞ¡¡¡!C†lRhWš€B¡èÐ ôµ]—²]èÍ}¿ì|ŒnD`Ã0˜rà<õ ÿÓË;wn¿vùÞÓöS§NÝêiŸ0v,C*+³nµ;L¤ëìõ©“Kh©Äa…B¡P( …B¡è7}ñô—3ã–eæ&Žåó5o±¸fAJ „‚Á¬qXÆ wsu€Ìþš®c¤I #5¸zÕª ÆsàNS.Cht8¯ØABÇ}=c§2÷‘žëâû>ZÚ-[Æ5´–Þ'³®[^Òƒñ±"Wàìnp9³mÌÖd’ºú¦Ž¡^E×#I'ñ9½M,šd—]Jð|6Ùe*¦@·ŠáCHDç¡!0lZš[q2öAhÆ@L+ˆ®yhšÑa ¥×›:m±Y\PÀ¼yó²ì4ø"Ó\HÉ‚ :ˆ>¹-Ë"º !2ã4³nÝ:V®\Ù±¼2ç•’úÆfŒ$Ä¢)UBJ‘þ›ù¤„„ìTàðþWEIKs +—-C×5† «&á¸NöÚu]Ç4 ×# ÑÜÔD$ÒF0" ¦¥¾ß¦á{UÍJ60xp%H‘Š'ëËl-1Í”Häxp-?Ũ¨À®®¦å¹çˆ~ü1¥³gcAâ‹/è§vÓ%/Ì´ÕîòåË»üÖ¹!ߨÔÔá^jniÁ÷oú£ ©iŠªÙ­ IDATøvŒš–(‰V“(¥5Y‹fJº0ï{éö!Õ~lÎ$éû´µµ‹Å(++Ûä}–;@yöH)‰Çãi÷éí"qV„‚ÊÊJlÛfÙ²eÔ¦R×u» æ÷ܾ¤_ ƒ²²2<ÏCÓ5V®X…ãtŒ?F°,ƒÒ²Òô>z*ÝY—²OíYkk+MMM¬}?5/SPP€àº.­--477‹ÇÑÒ÷É‚ ¨ªªb„ ”g×íÓµú¾¤¹5F^Øæ+2¶W(Û¹m{®{žœç3Ùl/È~4„a”šÌé#‘¾D’ŽS/´ÿ¹üàƒ2eÊ”>o_XXØãösçÎÝê"ð!“@BhH¾O*TNæ!/SïZÒ—íq€¥Ÿ}ÿo_'³}ºûÛÏ÷=…B¡P( …B¡ØQ»ÊÍ­ Ýèö"kÐ!¥Ä”3¹ðH¬¥¢‰òóò Ùáö>öIŸÀ4ŒTøVÀõ\ÊŠ‘ïqÐØã± ‰ì0ö¾#ñµ²ÎK2D"Âá0ËW¬À2Í.ʦºõ†®F †BD"‚Á`¯•DJI0¦°¤Íd[g•ƒÞN.]h€ ¼P0²ÂÀqú'fo6]GX𿢕J¼)dl%Ò1p:&\@¢ëZöæÌ|6ez‡³¿ççåuÊ3ƒø~ŽˆîÓnå›;П»O È ‰Ýå­ašÚÚÚ°m;»mî±|ßG#†W1Rzøžïɬ•gj[éCn¹)%VEB×7;f¦”Û¶©ªª"‹¥¬¥ìóñ2n¡mÛÎÆ5íϹ»0S>qš›Iºí¡[Û}¯·ü¥vð}R©X£ðå…è¶¶6òòòX°`A¶nvwTÙKdÍÍÍ)KGÛîO6±r-Ž1/0>'otÜ@uêwg~dž? ÇAÊrÊ §²î¼Oލ®ë&»™DÀ ñɪ¹Ä Øày7i±ëèýñ¤Ûsû¿ÉskÏB£ã"4‡8ë[—´ H¸q ò0Ðñ}‰t¾#ºx&ÝYm¢0aÂ\ÏëÕ»Bæ^д”`¤gÍe\Bç¶—ÙX·9 † Byy9‹-"‹±ÿäÉ”—•õ)&³“tÒV¶^*žx:few56#zdÚ1ß—)«i™²ìíË3KÓ4Ö®]˻ロµRδãB4]ÇN»dɸ‡ÏÄ Î<{\Ï#™LRXXˆa´¶¶R\\ÜebPwç…t¢ ‡Æf…BñuîÍvZÈõÖ“ž•™ !":ˆ¾BÐr¾g&PjZJNïãúIÇÅqRžÆï:–вrê6ÔÿO.·¢¢b»-*Ó4Ùoï}ð|‰ã¦òU á ‘z@¦oág„à´øëËìä^ÙA–9³V;‰Â™”¬P( …B¡P(¾æýæ¢ü ®çô}—o—íz4 p¼$R~E!Óç³L‹é»ŸBÃqHé#;lÑ|­bw¶¦“Râ{ÕÕÕÔÔÔôÙ fçcæååQTXØa =×Åt®HjUC‡0°¢ ÏuÒ#ý©`‘€uM`Ã}ŠÙSÚ3îB à 8Ï“x^é»é›ÍÎ^Of;-ÇZ©”’ÂÂBFMMM ‘H$+Nô´_Oëµ´ð2dHÖjRJLÃ`È!¸žÇ†úz’ÉdÖ=jΛ¬30,!6l–eõ(<÷tÜ¢B\'I"‘Ä—^ÖjÊÖ#3¶ÔnQà¤uŸ£FRPPÐï²õ}Ÿ€ ¢|­m-¸®›vÁàwÒúÚ¿K@+)&¾r%ZII*Q8\!0D z¨•}¨¹Rbù騶›ÛHorßN¿ëzÆò°£ÛŰUÈèÒ½ñ6êhÒÂ÷=œ’¼ާå´qš¦uñ¦Ð±û„Ì<ªì½ˆ&Z ëø]R–7C˜T†v%-As3q5ò‚¥Øf ýž¦Ý5±ØD‘ÛÆY–E[[Éô¤‘ÞöÉ}–eî«Ìö™:”{¿äÎ`B`š&ûî»/BˆM ÎÛI<Ç—~öÚ¡a[vÖ}J¦šƒA4t’‰$¹Á|)ñ<Ÿ¼¼`—²ïð\I{3f cÇŽí2qHú>žï#sbÃw~gž[ñxœšš¢Ñ(#GŽ$???{¯æ Ñ~:¯²¾t Y;î  B¡ø} ÑI Î~'£ëv\ÖÒ¤H‡~I¯“ôôû…”:®c°LŽ?b·þýïÿ“Ë|õÕWûeÜK—.ݪißkÂ('`ê,ƒ€©aê`è"{?ý:ä§ßͤH¯K-ËÌÄ¿¬Åp× È~¼+ …B¡P( Å××K²9ÆRRJ’nb«¥skŸïÍoœ;Ø iii!‹…°m›¼¼]Oû¶,++zôDaa!»×!þåæ)×LÐïîò[JÙkYƒA†VWg­ dgÁ¿“+×-áb@Ayy9åå)+æn³ªãyã¥å4†Â8ÝN¢@ÙøñX¥¥)‹‰N„úXŸ¿L}í˾+ñv«CŸaƱråʬHš9NyQ%ß:༬µ·ï¥%ß÷Ò®; Àé{]×Ñt À•NvV’”’ÖÖV8p`Ö}wo÷‹¦iäåå±ÓN;}é6È4Í^' hšF ÈŠ[……˜¦I}}=¥ee=Lp`LQL×QN2‚fK†a¦ÜCCWËuÏóX²t)åå°zõjUVvˆeœ±`M:NöÞmhhÈZujšF$!àû>CÊF}‹W¾‚ç¹ì2tŸ.Ç‹D"¬[·ŽÑ£GcÛ6ë×­£¬´´Çɦi2<0¡«etÚ2|h` CŠÆtû[ß÷Y¾bEÅÅØ¶½É6"C[[K–,!ô«.tvOÒSè|½ŽãôëÞ …BŒµS·s¬*Êb[V¶­•Ò§°°ˆ1;íܵMK'ò¬³”’ÒÒRjkkinn¦¢¢3}Ìöã¦-™®÷=µ "'Âá0cÇŽMÅ"O»ÆÖ4E‹3dèÐlCÝxPÞ= E¿ßúybæM Ž~jrš&4>š¦g½z}øá<4g››·zú/¹ä.¹ä’í.ßMÓäçgž™ÍCCK¹Ö„h7ÔõÓa^üŒ¥oº2ËÙ00’Ü™’2· ;¸€Võ]¡P( …B¡P(Ú{Êm>p®UTaQ±XŒÕ55ÓpnÕÜ\ñMfÜeÎ/HÉÆ©¬¬ìvûmö6탯ó¾¦?³ad,J¿d¹öŵjƺ0 ê$ÀoÎy{;gÆÒ¹'‘YJ‰ì"äô,n©ºÑÑ[Ó4ÂUUäqôâvZ:~2Ù­"RTT´ÙBû–½ýS®t3iñ}Ÿ<×^{÷Þ{@Ì›ªÛ­({"‹pÀà8NVøÛ”5§eYýsÝÜS]ëå<š¦eóÆó<WV2|øp-ZDCCC/âq/ñZeü  ûÀk½¦oýúõLœ8‘¼¼<^{í5Þï=B9ípFv'-Çãq’É$º®SWWÇ’%K°, Ó4Ó“nLœd1Ÿ?éòž‘H&I&̘1ƒÕkÖðÅ‚´´´ôÛe~?QêjkÙu×]ÉK»¾ßÔý!}?[_ ¿ò‰›ƒ¦i„{°LΫׅCá^Ó“û›ëºŒ=š 6°`ÁÖ¯_O4ÅuÝnï9ÙÉš½»ßz´ö–’üü|jkk9`òäm®S(Ûp£§w€œßºõí“Ö ’ Ý_ÈL2ÓÓLà /âGßÿ>¹öZ•ï}dæÔ©T”•aZfÆûGnXŸœ¾D—þEû•}þM¡P( …B¡P(Šm€¯M `)%¶e1pÐ š‰F£_©«é:ƒ ¢¨¨h›|·VÞoí<ØšçÜR‚ÁÿªždEêhôž[º<¤” 6ŒC9„eË—‹F¿²@îB***=z4¥¥¥ý¶°ÜåŸkI‡™8q"………ÔÖÖâ8ÎfäT‚ëôzm¦e±Ï¾û2rÄ,ËâÐ)SXºd ÑnêœeYX–E^^^óHJ‰ã$1´”Õ¯ë¹]Ê£¤¸˜Q£F1hÐ ŠKJƒ¬]»v3¯µoåhš&{ì±£FÂ0Œ¬½í >|xÖÍñ¶Ho]¾l»àû>………ì·ß~,^¼˜ 6lrÂÆ—zù1 8ઇÏZ"+ñW¡PlFÃßUîi2™ˆÜí¥D¤'ÿi¤<8蚆e˜¦ÉA“&ñª*V¬Z¥òy„‚AN:昔· ´W&]ÓÐÒïä„[éöÙ•»¾§rV( …B¡P( …b;ãkXÓ´¬u[0 áVT°m–…•¶¤Öu=-¼K)!ãmÇ÷Û—s¼7e¿çÆíñ³/ÿ* …B¡P( …bÇf;;Ü¡` Ä“I¬œu®ç±¦¡oùrUQ …B±M<«×eÉ’%$“I•! …B±-Ói²’Èzé>%GÜB ºû›ùèzû>š†8žGÂqˆÆb$âqÆŒÁ^&ðþÇ«r肦LžL"'¦ëày8‰QÃHYg¼ˆø~ÏŸôï¹"°ÌñšÒÜ“±B¡P( …B¡P(v,Œ†ò<m{LûŽR™¡³©©Ã:-£ð½÷ ²ºÄbU( …bëS*ráBò¶‚7 …B¡Ø$®‹ŒDR!! %h©OÆRòëJ'Á7+üf<䈸Ykßô²ÐõÔw]O-ëzJü5ŒÔ²a¤¶Õu|MÃÓ÷Ñ]-‡d’ïtÏŸ«ú1ÝrÊ´i”´µ‘纄[[ [¶¦aÂ÷¾Ÿªßž‡LÿÅ÷;.{^j9#üfÄàôßl¬àŒg§ÎVÀJV( …B¡P(ŠsH@׫W#’I=„ Ú†Ù±\@K‰lllÿ ÈX Þyg«¸|V( …¢_-• …by‡ž—ŠQ›!-X~íß¡s]Òg\7g¾jZê{ú“û=+øF‡¿Â²R˦‰0M¤®£[è:¦®ãn:¬Ä)9rüxæ|ø¡ª§=`3Æ^³[× è:¦”€æ8h®›á8Èô×M À® Ž“saÒ–ÁäˆÁ¹VÁt‚UÈ…B¡P( …B¡ØqÉô·Ã¤ïp1€E§ØÀuU%U( …B¡P(úÓÁQV§)r­}3ßsbúf„r™Ó–¿è:¤­}¥ifE`éû©e×m_–Í0Ð S,Àò}là{ûîË¢õëù|Ý:UiÊòòøõá‡cy¶ØB¤Ä_ßGó}DZÜÍ|:‹¿¤—qÝlg>Sçs­€ÉXçÆÎü–YV( …B¡P( …b[ÎPY P( …B¡P(›I® ˜±íô7kY*eJlÌ,gDGÏCø>ºç¡{&`ÀÔ4.<üpÊòòT^†¦ñ‹iÓÐuì´`nd:·¾Ès3“r–e®¥oZäÍu÷œ-×îÊZ¡P( …B¡P(Ší%+ …B¡P( ŦÈsÅÝkP™{3ë3ÂcÆ…pNÜÙ¬©´`)\Í÷Ñ…À’[Ó°t ¦QpÑÌ™„,ëk_ çrãLåXB` .%šç¡ueŽKg™#Æwpïœ^/»‰ï+; Ã*æ¯B¡P( …B¡P(¶v(ÐÀ¶Ñ $)÷Ͼ®#JJ nÛ¤P( …B¡Pl'M£cÔpÑ.L}Yt Ù´ÑÜŒ&eö,Â4Ñ*+q|‰e[l‘€% }MÛs^;#Ç ´È¸‚ά˸‚N»‡ÎÄî8ó=Ç54š–r­ëMK —R"ßu™ŸÏfÌàÊ'ŸüÚÞ Çì½7SöÜ“ i2 ¦IPÓR. Íu³Ö¿™ø¿x^{Ìß´«g™ù›±þ͈ò9b½ô¼TÙæZqçò5é[úévFÛÆâËt{µí¥ ¤ÜBíÎn}ßG×¶=oMWŸë¡MÛçýíû¡!¶Ïäo³ug[N—¦il§Å­P( Å{ !ð\‘éÏ÷òtº†liA64¤úŒÛ;Œ,!{kèPX²$»NÒ:ût–ï==™P5\¡P( …B±}¼¨:ò)ÿùb,³Ýò3é$ùÑ9ç0mÚ4’‰d÷ûš©×|×qÛ;.tÃ@J‰ç¦:.2¤ì±;øÔ¿ kß¶¼œà¿¢Å‹0 ºMlƒó¾ô‰Ç„‚Á¯àè¢çïÙ‘ôöŽd{§2ýÉùÞþ›–i$žçã8.v,c´E1#Q¦¼'ë lî»ÿѯÝý°Çîã8ówç ‡Cäç…É  -,ËÄ0t4M¤s\‹Þô'w:þFG _ß÷‰'„‚Î=ίÉd„À2Ím*]Žëà{>¶mo[íŽï“H&‚ÛTº$’X4F(ÚæêX$!o—÷‡ëº¸žKÀl—éÆbl{››°°½×m5]Ñh”`(ˆP°B¡P(¾ÆD"LÓ¤ic†abšf—î½)eJ ¶M¼§>%qýmÈ·»ë5v¸¢ëwÓ!ð­~vÅfôó7g…B¡P( …¢¾aàêI4’9B.h$…Ž´ø²ë ža}̱†Áã?N"‘@Ó4–.[ÆyçÇĉùË_þB[[Ôôn_j…©ƒn l± ÀBú©ýU W=‰À¢Ó:‘^%Òƒ®93Œs…àÌ? BJ¤®ak¾&ð‘H!ñœ|òq¬^³ŽW_}óks/TWå F $‡ æ±CLÛÂ03â¯Dˆ”Ø•ÊÓ\÷Í)¡W¦ÿ Ù¾®Ô²ð=¹uçëÛÁB¦,Ý·1Xè ¼¯òþÞÌtù>Bl{é‰ðÜm0] \s›LWŸÒn„+¶ßôû©:!¶Sx[­;Ûlº¼Tº”¬P(Н3Â5Sž¸la¤–»€I ÀR½¶S—);| àÚÚZ~óëËøãÍÿ¡.h¡÷­—‹\÷4ýö9L½o¯FÂ$}—¿^þï¬Üˆ§©*…B¡P( Åæ!¥Äu]b±cÇŽå…žç±Çã…^àÐ)‡ÇzÜ×u\æÌ™ƒã8üñX–ÅÊ•+9ï¼ó˜0a<—]vmmm*“¿ºÒëú=R¶³Å©Ì±HíÔáÔu Ó4°m‹@0@($ øåygsÄÓ¿¹¹ûîã¸ôÿ~Kii1Á M(  ؘ¦a¤Ü—Št¾Én‹"WüͬW³v …B¡P( …BÑ!v }ÏØÑ ªbÐ n˜} W,šÏÝ÷çóÓoí†ã¸ݶ±tI2–À‘0„lt7N´pü£…éxø¾C<–Ä i&VÀBÏI’L¸ø€n‡1\‰K2%ž, ¤o¿±T …B¡P(ÿ»ŽFMM çž{nvÝá‡ÏàÔSOM¹ÝÄK¦ëº<þøãœxâ‰uÔQŒ7–k¯½ŽÆÆÆ¯¤3ã{‰x;`cé}›k*qIF\ôp`ËwNäW)ò¥¬L{þž».]9g}ú»„´9jj1eЦ CCJß—Y×Ð~ÚEñÙ?Nä›—tHúvÀì4“ß'K‚eaê=Ç÷ìoÜx/#îz©©Z€p°óy%¾çOøØ¡@§Éö>nÂÁ׌”…~?ÊÑ÷}b `—óõ³~ø±˜‹nƳEâÄ£$=‰ÔmBs‹YOx‰6bÙ&;ó|Ð0Al}h<ü$m±d:uÁ°Õ˵÷½œ·N®“q=蚟¾C4îbØv¯÷J×cº8˜}¬²Ç Fß÷ð¤–Sô¦¡åD;º¦ãù^vÙÇß®¯WÛñKT’æQ™?€Ñk>àáGŸàoWþŽ‹Î½„~RG¢é-n9ÿçüðôï1û»WñbcmÁƒœñýS8é·ÏÑh$¨û.<õ{œ~ú9\pñ}|Ølaøä‰›ùõìÓ˜={6Wük.Ï<þK>ý'×^ô~÷ÐÇ´&}uG) …B¡P(úMfp®¸¤˜ââ"ŠKŠB‹ÅˆF£}| –Üzë­TTTpéÿ]ÊÆ¿¢?Ÿuïþƒ_5i³~É=óÖö±›äožË%S~Á ­;Fw²ãßÎ?Én¬s?2íÆX"+[–‘²~  ƒ„BA‹©Säâ‹/¤°°`‡ªÿ†aðós˜ƒ¡áP꺃AÛ6;ˆ¿ó°;×ÎYq¸[ë_Ù‡2…Æ÷îã?˜Æá³f2mʦN›ÁŒéÓ8óžÏHÖ¿ÌEÇœÇ㫼¯(WÚ[Hl†ËñØræüö$Ž;êHŽœ5‹#ñ0«ü¯âŽJöóºWñÐNæÈ)‡1ëˆ#™qØ4®y3Þÿaïsî=ÿ÷üõ‰Ïhêrî÷¹|Ê<²úË]Û‡·œÈ”ß=L}¤8d=ï>x-úã#,îRÅ–ñ÷“ʯ­&ºEê‡O2¹š.ÿß:fGÌœÁáçÜÍ¢˜Ÿ­‡q §î{¸à´kx'Ñùu¼ô—?sÝͯ±¶Ÿ™¿xáz¾}æ],û’u´mÁƒüò›æÈæìßÌK8†)S¦2ýO²a Öé÷o:Š™³ŽäˆYÓ™:e ÓgÎâ¸Ù?äoïÅ·‰ö7òò•L?âHŽ<âhNøÆM|ÔëÖ½•³C¤±™˜·5­8+ÿs ³§|‡?½°²Ë¯­ÿ¾šoz"—¿ZÓ{¥/^¸“Ëξ•¿ì\+¯‘eü“‡ßªaáçÿæégWu¼“û%Ç_p5﬊ P(¶%þË%S¦2uÖQ1ë(NøÖE•••<ú裴¶¶xð¸í¶¿ …Ø{ï½{µæÒ4•+Wrî¹ç2xð`¢Ñ§œr ·Ýv¡P¨£¤ØÔK­ÆàI'ðÙ­ŒX7œÃ&év¦©Ì±|éý4¡cì>ÌL•ÈœÈu›š¹‹?mÅ)¿²—òî¬~{ÚF‚bÔf?Y+` D¢¥…`¦ SCJ)-¤ôÓוŠÍºÛn»pùe¿çÒË®gåÊší¾îpÁ?eܸ ¬”ð  -tÌ_]K»|öÓsÜ<ËîÅ`ÙCÌߎR‚/eǺ#%eûžÎœl`Î9W±áس9õ°a˜€d<×¼<³Ïµ¢ýÈ¢G»ñm‚÷W̼‡=^¼›ã {·7ßT-m‘ÜóšI™D"ròB `õã\xÆ­ ºði^º2Ú¸éiæ|Ã&v¼O»»w»ÞË=¥[âD^ç²™²ïÜ¿qT^ûžR¶[´vlW<\·šS¯¿‹Ó&•t8Vïéê”&}?¸áÊÒo`iRÆ…¹y&Rvþ¦Ú¨{œêŽåäÆgylÉ‘œ9¾ }¼îËŘtê…LJÕ|´œ6Sà z{[ÒeŠƒ”}hÓç®{‘¿üè:8åNæü~pjШå9žøT°ó>osåÌ¿±Ûs÷rbIûÉûu—&ò0-=gòK÷g”¥»= IDAT¾ìP/ÇŒ ñËwåƒ0j—M= zªC:ùcgsó3Ý¥­·#e~)bÖå7ðÅ~×3ââ¨èæù#Òåíû²_Ï™}~ñ*oüà¿\vУìûÚ5ªõ­mèýyJ_ŸŽ9yï§êlz?à´ß¹ãí× Ðø<Ï~ìÙsži–…i䎦Êãsnœyƒ¸—SGêýº¶ž·ëxmëŽÀG†‰·âeÞmû{çeÒ¼”ÇŸúœ‚°©¥¢·60snÝ0±ìž-h:ï%}Ù1¸ƒ”¸ÑFV.^Àü·ß¦u籬_µŠF}­ ‡<ÛD4¿Á“kwcÿ¦·ywY ; Þ…£/íiïwFn-ùê߉Š@'È^üáù›™ô˜ÿÀ¹\ð—9pý±”ô«-˜FClêžíîݰ󻛎JKJ‰TFÀ EŸïèÌûCgt-ç÷þûïçÙçžeøðáŒxsûí¿Bl¿"ð/776rdzó±Ï¼ŠM‰ñðÙ½z'ÛH¬^KmÕ‘LŸH4Üuã/ýOœ)ìsð$øuëY¥¿Ë?›¾D2€ {²¬9{ðÞŒ)ndc« ÂD$]TÀe—þŽÿz;o½õîv[çGÁçÿ„Š¥Ø¶…mÙA‚Á –maF¶ÎûžLe[ÑWÊÎVÕtq -»µθƔ8ŽƒçyêŽØV Ç!ÖÖJSBR¤y Å¨[´£jÅf”ºÅM†„hX¾Ž¤Ç ¡ÃЛ³|C;¯˜••ÙšˆQ_³–ºm8²!£QÒ‰Ö,eUséCQUþò•´jk?[Ì¢©.Ô¯^Ìú6ÍΣ|Ð* |Ö6âê‰h+["äÝ…Z=Ë×6‘ô ¿rU…&’6ê–lÄ¢qÙ:vÒÁ#7=(¢ë:Žë¡ ‰Ð<|ßǶLþñ—©¼àA~2Ù"é8©¬-8’cötH$ÒidÅâµÄаB ¨ª¦ØŒÓRßDÄ1)PB@Ó´ª'¯„’AÓÒÌ"uµMøR?xCó£,ÿ¸†6Óeõü¥,>€êÒëy¸Ž‹iúxÙ22±-_z¸±­^ aÍÇuýÔ=¤û4.û‚µÐM‹òªÑÉ&6Ô&ɯHž‘ ­®‘ˆkST&¶ºžd°ˆ¢¢0A­UKjØ÷‹àK‰ç¸8Ž$3†”rß.Iº.Ûn¬yå?h{žÉñeüáß 9yÌ„4²º¥±+ƒ©ºS6xƒÂ.ÍMM´´iT–“¯Ç¨]³–Ú Â#Ä\‰ð<’Ž©yšF‘ö&Ln¢=:¶ÙÈœkï%ðí«9sæ`p>žÉÑ{·°â£•´ ŸµŸ/dáÈA +p©[%¯º’=AKc-«WoÄìÒ÷‘¾ã‚ë»tgj: Ç!”“.!ò <¸8ŽK[C-kÖ5’ Š¡ƒ¨( ’X»‚Õ â®GÁàRjYµˆÕ-R@IÕX*-Ô-o!4b(EºC¤¥ŽU+ëIA¨hƒ $ψѰºŒÎϪ0¶ÝF—H«‹SÒÙÈòE«qí cv/}<ÏÇq\\+·öí±‘lk#!Z›@9D#Í45´`N¡å£9Ömˆ å1š#ˆA¤±‰–X‚ÀÀ‘T—Ø€Ž.YþÅ"t³œê+°]o“Ÿiè$]Ãó~ªÝ´-“†Ñ­üR¿p3wwˆ´µÐ°&F^u%ùF’Hc­“Šj‰ïƒð"¬]¼‚†ÈFÌŠTW˜´Ô¬¤ÕmáÇ|dV10Y‡_±3eA|xkkc ÒÛ£q}#Zñ *–65 ÚX³| ‘8ÅTïRIXKÝg]뎆n¹$—‚R›ˆïðùÛµì9µxgì9Ý?ZH~2I¶‘ WÓêùH¡Q>blðb ¬XZ‹_(©kñHYÆZŒú5kYßÐBR0xD%Ea‘nLà á8½táÆX÷Ú-œ~õë˜X„Bçóx[9ô3¢úœ9c4Íï|@¬b7Ž89ʃŸ­ n×jòJ-Qê5BžË†F‹ac+ 'Y¾x qË&¯¨Œ`Ô!8l v´ŽõkÖÓ”ð —fPEA=Õ˜†ãxxžßaB¡ØB¸x¸´5o; 8p“ï~…·›åps#«W/§>¢¡…‹<¸»u-RT\„­IôD#_¬ åà“zH::¸M,_¸†¨VˆÕ£(±<Ñfê×®¤!ª!òJ<°‚â F„uË×ÐЖ$oD®/ñ\—¤ã¡©‰ EŸÈ¼?ضÝñN¾ôyꉧxñ¥™>m:ƒ*QSSCÙâ2†oÇávx¸lÀþrÎY,Ù}0nËgøÒÅó<|d €Ý¶†úb˜lÞ@Sa!E鉳 ¦tä‘üè–Ÿ2FO¤:-±•¼ò¯§x?VO›³;–À•šÈˆƒ'tt]ßSw•B¡P( …b³hnnæwÞ!‹b[6+W­¤¤¸„ÖÖ6\ÇíÑ•³¡ÜtÓMŒ?žë®»Žºº:òóó¹é¦›ùÍo~ÍÃ?ÂÏ~ö³¾¹’–t´béuÓÌ6:¶UÇ+W\ÎÇFˆ5Éf¢K> ~·_sÛogPUgõó7ñ§çã–ê 9`"ÒÐиm+x÷¡¿sÏÜ¥8~>£§Í~£—ñïgZ8à¬sPÝ\ñœÏÉgÏ䪄×KÂøþ֘ߛ½gÊê7eÝ+:dª)ûÊn“ÙMdì¤Z‡î[JäN ;©Î/ùC^y$ÿxðE645n7u½°°€oœx43fNŶMlÛ&†©À¶…e™è†–ùÛ­øÛÅꗜ߻TìžKµ×MÚ:¿Ž©/à®Ó®aÐ=göˆ÷¹éû×`ÿøZ†µ:Œ>æ<Æ­€‡_[F2ÓOÿ=?VNÛ·ø×O0¯¦dSûÿþ}ìN殨æ„?ŸÂxk-Ïýñj;‹3¾còè٦鰱,úl!~ÝBZ'_ǽçë|¯¯ß…Ù—Èû—^Ų‰'3ûûûç\{ÍXëÅ©š¹?I)©ê¥òô⟃þý®ÍÄÙÅ qü‡¥³'°[PÃsßå¦ïÝ€ýã£h~üYjL›Ñ³.æâS²ø¥™3׿¸[ÎaìòWxàÆñæâT¾4ÅÙ9ëi srÒ–íÈÞMÓ5 Z0Ý^Œšeúø™€‡ž‡Ã2ž»ìa>’Í|qÓå,:î\þ¼×Bn>óm}æ*¦6ÊË·ßÅ?^«¥üÀQ„V$©¢!6q»u¶\Jx’1œ/IÔ~ÎÜ{äÉ÷W“Œ±Û)ßçÇ âÕû¯çÅ×ÐwØçœ;øÉÞë¹ýÊ?ñY³…+5»ð>Nø7Ÿö “ž¿£Äüç¾[¹ýÙZô¼fìÊÉ{Ú/9~¯:^½òj曟UG0–a¥å$çÍeñÔo³3u<1w º«­ÃñA3Ô½q7—^ý­aâëzôœÿíaä»kùøÑ¸òä+§,<€<«Ý€ØÊwyòŽòúÒz’Í%ìóËqÊ;Q”±¼ÄU)‘F˜ª#~Ç‹ŸÄ‹O5³ÿôÁ,~ëSÆ}ÅÔñþ|‡ÊQÅìtèT¼ø 5M{1´´‚þ9wv)ͺ/vâ‚ûŽÃxòjþtç2£ò(¯¬‚ N¼ïÂÿy„[ïy:Wgäa?äôoÎdT‡#ÛÓ%Qâ¯B±yt4M«]Mm^ %ˆÖ.æÕû/å¹Å‚ ú¾ñ½0yýíÜ]¿ß9éDv¨ã½u=ç>6Ž®Öþ†*›Xúìuüé¶ÅÈݰØó[7pöQå$ëðò}×ðÒRI½>š“fŸÅi‡UÓúÑn½î%¾hjcè¬I¸ —¢L[®,€Š~¼†u}jºÆÊ+Ùа³Î<‹Â¢"l˲-bññx|»½Þ^–¾O4'–ô !ñÝÔÌe¤[8œ}>Ê‹/¾Ž¬Lò½áßeM …@ÌŠjÆû7rç­Ã9¸:N’ ¥ÃF1lL)_<óÿú§ÅÎ%‚•ã7xƒ½WøpÞ+àÌžC 1uÕ+ …B¡P(úG8fذjî¾ûn„–š(¥dß}öݤ•‘ëºÜ~ûí466"„Àu]ŠŠŠ¸÷ÞûH&“D"‘- ¸£{WƒP¨¹êŠÙŒ‘Ïqêá/òv㪂ïñ×KÞeúýO0{¬zò<Îô5¦ —uŸ¿Âc×3ù/¿eRämžš¿„ºÊoòý‰ÿæ•×oáòœræ±ì;¼-Ù›…“èfi«õ@ºœ5eÁ+sR”+göé´g"°©.\JÖÒ⯆¦éhšÏ~ûŽ£ÄÌ’X#O>ôOš›[¶Ùz ™9sÇwÁP eõk[„‚Tœã M0À¶L,ËDÓº¦õ.þætè;þÞ1Ÿé´Ô¿Ø=¢›¯:3Œ¥§ºÙ6QÖOàþAÓÜK8ñ÷70ôŽGyü—õ¼tíMükî<ÖOÛ—wîyšEÞΜ𳃩^q?—Ì[Æ7½Oy*1‰‹/ÿû I¹óý=ÍûßÇî·ßÈÌÄq\fœy ƒ–-aùk¯óé¼wøô”É 'Xüaï_w1GT¾ÍÏ9Ÿ޼ŽÛﺀ¼º‡9ö¨'yûç“™4°ˆ²¸qîûç´}ü—^~3sgý•£Ë ÑK3#ÊóRVx]ð‰7¼Á=7.ç¤á„"ɪWïâ¯ÿ¸ŠÿîÁP@ÐJ‹7V(DÀÒ„ò›yA;ˆ9÷^„UsGœø/Þ=ïJ~úØo‰úo¿–é¶O<á¥&[÷xckf„Ï_z”•ï›ø‰}9gÏᔸ ¸ÿüIþáyÝÇLoÛÊÒ:‹P^=]†$4ÑXá ¶ ¨ÍçöËç2âÜÛ¸öàbó.áÀ¾›ÓNê¬|‹ ÷æô!E˜ù“9vĽ<ùQã÷+ ¢,Ý8‘{ÿu&Í<Ìå×ÞÊ+Ç^ÁЀM0&¤×ñÂC/Ð\}7]?ËÿÁ™Ï- Ú÷Ûkó%JÄ ½Ãà˜ôvçì‡~Oó¤»{ÇÍN°æ‹ÅòC´ŸÏ{™·kFsñK7³[Ó›\ñ«[©•¢OçÎl£i‚ÚºVîyi)ç}w‹_}ž×Þ79ì¿c|ý³Ü¾t)K_[ÀkÍC9ì¼?rÒÄ´óÍïçI9Ûn8›ÝJâ4ÕšBal͡棹<÷²ÍÏžz˜ƒ¬(oÝvO?óc÷šIA¸›gUáTµgŠÛúwܸœSæ<ƱåO8h½ÖÃþµ"¾¯S1löØ¿†'Þ|vŸÈ‹×R5bS÷ÃüÛøti˜_ßðW&•,åúoüЧOåÇ{¼Ç_ÿô2•¿ý ÓK’´|úw<¶‚™§‡¤×ïúà%¾õ·»tåOùÛk(=è÷œ{Ê^†I ?ã¶T ›6…ZŸ,ªàŒë.gFU-w|ï—<ýÎÁüêÆßRðÕTÜx' ä‚eÜtãËDgE2ÞÀ²U>§ÿüPŠ>žÏ†ˆÏ؉?àÏçË«Wý‘Wß~›}÷Þ…ç¯|’æ½fòÝÉ;Sºè~ûôbNøá^èfoïã&ж[1k[ßá‹ù0¦ø?,2³ÿà¡´è.qa`óלÿ<»ýí9~:Aƒ–ÿò›~ΓÍáxÞàÁ‡[øá1=¸†§¯ø=¶ #¨7ðÆCOóISÇœ{&£jæŠ÷2uL%m¼\JzÉF¼ý&®YŧŸHÈYüEÍUذÓ¶}ÆBm ;N¾]ÄÌÿà±EëØ}h!Ã$`6#&þš_B´ö_\xs §<ñÇ”´ðŸ›Ïçšð.„šWñŪì™óè÷öD<×Áñ•.¤Pl™·ûF>{m.yv+‹ßøNþ1l°+Çsô¯`§µ‹ùä¡©™·Œ²³¾Iðæù¬_W‡6°‚¹oÖðíïþœ‘Á•Y@~d·^ñG>õ4§T@ÓÇðÿ÷æî{3GØ‹cκŒ±µ‹øàï/²úã¥Ô&yö¯/RpÔEÜ{Ÿ\Ï7îu¯ŠF¡Ø"¸®Kõðj~ò㟤ŒGeÎDWÉEŸÝN¯ÍøÚ”¢ôqõªFÀ/ÍGøÉhþèÇ4þí1Þ}õCìÇ/fíŒaÛèn” N+°G_ð=î¼á)ž_b ÍbFíWÎìÃaÒú(O¼ðÏá1lÿB;”ÿ=’ûž|—÷ Ç2nP!¦®n …B¡P( E?^[¥¤¬¬Œë¯¿¾ÃìT!‰D‚x<¾Iñ¶­­-»Oß÷iiié²¾Wú1jØÙŽ(á dæ¤q€=œý #´5ø Õ²aü÷8l„C2))™z‡^ý®ãânl¡Þm䣧î೨‹?dö6J}ÜPþvÚµ,Ÿ|)gU—a9nÈzøM °_i©Ñ9Ê*"œ¶¯É œy»|oßµ‹¬kX– ¥-€…–r­’d«‰©0õf4‰§ž~†9¿@,žØ¦êùŒS9î¸Y”––`šzZüµ ƒ6`Êò×¶LLÓèƒå/9âoW1xS®Ÿ;,‹v«¾îëN§ØÁ,>Sˆؙï| /Š;l<3Š]vªJuÁK†T0lu -#Ä4I]Íû¼ôèb4ÇgÐx}§9}À#¼ôÔƒ¬ª3fÿ#Ù© B—høV‚hÍ'ëðY8HÌ­ã…;_áìÉß °Œqœòý=Ñ<*vb¥¾N£JK_llbcá^ìÊ™8U듇ƒL]•RfÓ-¸ŽÅ¿ºƒÿËÿõk.ú(ï,¾ž¾OR'4@â“H”sȬCWiƒÙ{ŸVƉÈ( é‘hO˜ø#bvã]<¾ö^÷_‡Ïâäâ6¾H„½ë$¦P@õ®AŠÖµ[ÕL$`Pûù«<¹ú-ð vÞÛho7:Õ‘ÓI/AÉè½áƒ,ûè%žf!#÷côÐ –xéP uµl°¦1uTŒXÒB„÷㘵¼¼üüÎÄ“Ù?| µÏÁLx4ŽÛ%æ{Ô­û„W[Íë ’±!òíTÜøu:Ïiâó—æðÌ'«IïLÝŠÕ¬×"ç aðè1øïÀŠe눅lâËCÄ[VóÜCopÔ¾£) ûør4wÍ'™LâÖ·Ùk6‡–€+uª8œ½__H´`0{ŽªbÙÏsóýË7nÆíTM™ò€ˆP±ŠÍ}ÇO=[ùì•§i° ŠŸÄï¾¹+V2FãÂy<öÀü;êa¯m¦r¸ ^¶G¯óAM=ë¿Í[‰oò! üö·Ñº6‡³[¸ŽÄ´‡ì÷ëë R÷Üÿ ÿ{kš©ÚÃÆ¨¯£aÈáì?®Ímü,¦ÙŸaHug+}gÉyNwóÎæ8NÒéð›©Î¹·{úÝá`!IwY|}û:|ÇñA8´zC˜õã 9F€G"^û½É²_P¸×‰}­|2?½êд?}‰›LùŒ:äd~sØw€çĉ'`Ü)ü|¯ÓÀ‰Mz¨VX¡P( …BÑÿΉ¤µµµû÷Û­&3¨¹‰Á Ã0±tOÒÉÄ}tIJAP€,,$ÕK̯;–iðÿìwxTÕÖÆû´™ô@B - ½“ÐT:‚‚ûÅŠ«^ÛU±bG½vìÝkEPl( té½RfæÔýýq&É$D¯ÞÏ«ó>OždNfά½÷Úk¯³ß½ÖÚ·è[¾WTÚ© "˜DvVgθëºUÜÛaëÌ]ä´éŒ¹{7;w—‘Õ0¶whW[T¥_+ø~ߎⰩ ËIÞ*¿c%¬þº†FEÇ_UËÓAûl¨"TEEÕ%憦H’P9ršåñï9KøfÞ78ŽóÿªÛ]ºtàÌ3G““…®k躆“öÙ'†¡¡kªªTÑ{)åAѽU‰]3æUÉ]yÊà•¬ºYPe,ý²‚€À!/Eâ96&®àú§ÊˆÕ4Èïs'ôЦ˃Ñ7t„5ïpýmwò½™vœ‹çª@¡Œ gñcyqú ¶Íz–¿4}¢MxX–íºƒ-,»ü»ƒ…‚ˆÜž·×KŽk«âìû‰å«òè~!H¯z“*Ét8ih1·¼ðõ'\Ê€&º¯™¥«X¶» Ò”Ìc‹- Ix×66l©OA–ŠjX ‡À~¶†CTKp‰˜Ñ|Þ/§¢H¤tñ\@M ÝØ„Ô•rUk‰ç98ÑY¢ªà¦6¤AÒ§|»É£]C=ú¢ªhIûü©˜ì/ÞÇ.¡øG6$àyÈÔ4Rw~È[Ñ&KÁZ÷-Ë¥¤_U@ȃ¸Ÿ*º£h¨‘y¼ñ-d&ícÚ¥lpAMhM«ïóÙÎS91\w kÖÃà6{ïZ¾_݈cr]¼åÑïKL"1´ž-[¦1Á¢Õ¬*-&òÐjy(¹*.:Ø7$À¾Èì¬+9±m²¿iZͲMižëâJ #Uøõ% é袘² +ÙIGò"ÛY¿s {Óº£ÄÔ2?äf\ùßž$-Y£}óówïEÓ’hÐbÜ}¦O,ãïﴞЊþ»¾fÚ?¯ezY îÓ‘3'wÄ]ñ2×Þu'_i½™\µŠŠš(‘Ö°h„ÍŽõaJʲHKsÙVãZ%Р¢¢è‰×Áª²Á&é„M«Š¾É*6çH׋˜?¥ÄµƒÔmÖˆºmWñÞÔÈk’D“–¹ÀFu/¶ìÅÖòͼºÔ9F…ôd½4ºOšÆØÚ•7 ™¶`è翽Bn)AAò££ÒJ2:pl—nÛ¸ ­M@òn¿4eE»Ù.ÒPPP”ýlݾ›° h[ønAiã 4áâ: z0‘`À#iʱç)\ýèç¤%}GÊÀ³<€óh IDATQ)añnvíê`Ý*›p°Éuƒh%­Ï¹Š«ŽkRq0ôì*‡,ª¯ ÒÅTRéÐ"“ߎ§ÊŽaü˜vd±׋ö@J*)Ö26î08¶©¡X°¸ FHi¨ë¾aÓ‡j˜?­d£šÔQœMºåÒIÉ.·^ŽåƬâÑ W.Ÿ‘ÔŒa“¦Qïå;Ù\0‰f0?o"ãÛö*ž[´—ÒýI[—ñíz‰šÔ˜Ö;¾ä»m£i•-¸Ø¶‹” ¤$Xÿ%«Ãƒè–à±ç‡¥¬UéEüþçpmŸ|xß•<õSãÏ9‡õðÇ­bÉ”Ä3@ÇÇ/ƒÑ‚qwNcXZÔW3¤µ“Esç²$a4/ÜQÈŠçïgæÞ0¦™@áÈ,þýá|2ÿcìn“[oT©É$:_°© Ú' œ}ëY½¶1íFì`îÛóù1ãtfLêÌ¢'¦ò™mâ&g’´ok7÷¤ Èm‹YîXtú¯=çÄÇŸi¯åg&|ô™ûÏR2áOG×´!¦D7EŽíox¥"éV8„å¿Us í£(½‹Oé@Škáb.³«~®m²cNÒ “°cFï-â¹Vâˆ#Ž8âˆ#Ž8âøãúΊò›ø«Šæ±{ýæÏÿ„OK#´ÙÖˆmaYnôËÅ* £9NzGF¶}œ©·ßÏÊÆØJ(ÁÁ N‹¶thô$_t' ZˆÔjJ‹¬"VÏÜÉQ§_IϹ¯ñò+ï!ÎB«ô â¡n•‘MþK‰ø¯;æ5¤‚&6¸|[ £ÄQͯ+£‚+"œ‚‚!ÊÓ?û¤°¦K" ªIòTLÇ&51È€þ9cÂ)Ì~þ]–nÜÎê•+ÿk=‘››Cß¾GÓ«W7232Ð4Õ' Ÿø  ‚ƒ`Ð6†®¡iJ4ݯ¨l?‡"«Õþ=(õó¡"$j Êdå»kÖ‰ W«~ýRÓc{‰ƒ)#”?AJÏÁ,3+¢Ö=Û …‰hõèq\#¾}éîºi>¹é¡Fýß&Ä›Ÿ,¡LHOêJjh@N½ïyû‘'(êy ÇÔÍ"~—©¯¡ì‡uD­‘x8¦‰©Ø‡ ­pË)?,á`9áŠÚ ’ë>}’fï¥l÷DÁ 3ùu;0¨ÿ,Þ¸î!V× Q²Ç%½ãXÚ'è8G5DùþK\F«¼"–lÜKSW"q±BaŸÜ­ ªÃØž@QëQ'{ ¯O†½Gâ´Îu|²VV¥ßbÇHz;™÷Ú£-Ì@s-²zŒå”.uá»L¿þ6J»¤¡Rè2ìÚå4¢qÞ;<}û#¬nRªÛ=$;Á´,Ì„6œØ±„;žz˜uR©•¾}2„åÕ¬J‡ÒE‡¢9ï³²N.Ÿx&ݲ´Š. /“ß[ÇI§2ÄOŸ<Áï¡dÏvÔ‚ )H ±Ú41C £>=Z'qï{/1yë"ZÖÛÍú]%¤z‡®Œb:”=”8¶ a¿óè¿ãAfþë>Ö6L% {xšÁQ}‘OCrë¯âÝé³ï˜þ_ÛÃ, aª)´oÜ€ôÞæŸ7 G£ý,Þt€”¦.Þa¥©¬·-‘(H¶†Ì)iÉù=[Rß&²¿~Ÿ{¯ÚE«‚²¬.ŒèÌŠÅ‹XWRt i£‚Û¿à¡–à*Aê¤uE«oã¹f(Œ%dÕ†Ž_bÆuóMÆ>vïÉ ÍqýhB„ÅeÌjk•¡”°äí×øÎ[ÚÑ猎 i4ƒÛo|QR{ú™Ø¶S%Ãü/]g¤t0­Hôðà9(éy4ÍÍâƒ?'½ÃßèT·|U)ýážyt%I°"g—æ©íqÒ›ç¥'w‘qà;V$ åœV™ÈËß§ÏLeGϹøØ†¤µ:™–¯ÝÛYC¸±• 'ÿ ÃœWžâ‡²ïY·­>=Fu¡N0#r˜öÊt&/É%%àb5Ì„¾ùèªR¹ÎWë{éZ˜aË‚ZÛ“öá§äd&Ò°Y-`v8‚iÙ˜Im9el*Ï=ð {«ˆýÛØÝòJNÎóìiMÏŒ7¹õ0°q[WïòLL5‡.ý›2ÿÙw˜rý2fJÊê÷dlßä¤è¸±Ñì1^€ô,K’Ú¬­3] ³-ݲýà eË°Ò rÌå×rz‡”бXUë®ÿ| £Ú€c·µÚíÔðy&ßð0ƒš˜ï9€Ð“ÑÃÅ|?ÿ]Þ_±moò›æ’äày±þFœ!Š#Ž_ãÏû~]1%%à$Ø8тߊ’@ZÝd¬E¯0õ‰ïØ7ÿÔ£à¹@“AŠ{y~k-ÎnžC’!bü0‘ÑáCÞåÍd}žIxOj‡ó(¬¯²<;²O^äž'¾a÷Ü5:·ÆLhÎq\îxë 6-Ì¡~öNvšeXn|^ÇÇ/™Í•Ëá_‡´ûÓÀ¶ms¦Ïs9pà{÷îEHïî¤íic脇Y¼]q;GqÄGqÄÇŸõ!HQI1­Ã¼Ã0òëG „ôpídšöˆ*š’n&Q÷Äa4ʬO.¶—Mï £ÑêH+ƒÞW\Ç귾Ŗ ¹ÝÏáê:[HÕ<‚uº0üb…à{ Ù'º¦àÙ™tÞœ¦MšÒ0»¾t½h:ÓšI=!ªéy$Ö/Aš¨ùµŒž$®òžòC©{MŠèÁÖêÿþHéÿ_(*Bó‰`Ò³óhS˜‘–DÀVQmÈÊkDÀÔHNÖ|üú’qìË—.æÛyËX³ncEzðßä!SÓhÕª9-[¶ K—Ô¯_UU+‰_ݯé[^ó7,øÕ1 MSý¨_¥ü@m”ØŠMùí[#Ù+«¥i¦æHÑêÛJ4nNzòºcÉt:Ž>‰Hãlø—ãæÒ÷¢1$f ¤l  £ÉHtp…¤Ì¶ ¾ ‹zšÄqävìM¿lƒLK¡þ±£9Ï™¿r+éúĆPÐt%!Ðv$'v®…gÕbÀå§á®H-‘ìÖƒ9oPˆùÅi4ï}<ùõk“i &U­K:ŽÌ¤à¬¸ùièØ8n}ú^4†äZ~”¯BŽÊÏÄù)LíVÇÒý„V¤š&fÕ®¬ì)Áµ ¥´á̉7’ûÂG¬)±üÑÉ*¤kc‰pš3ðÒˈ¼ô9;”4viOŸaÍI0Ô£úѯ€¯—mÆÌhÏèó:’Ý®6š«Ðã‚Ñ( Ppq†ôŸpi©BoÆÀËF!W{•)L+ÔààùmÉLº= mÓNÊ<‰TtTÒM¤íˆIŒÝõË<Ð4!!X»%=‡ŸÁž/Vc%5¢÷Ii’Õ€d7‘Ö'£~V.º™D»s.çÄw¿fç¾µ:aÒ„ $¥I<))/û©Dc+"«éŽp!œUÀÙ'7¡QÀ#bZxR"„NóSþÎÐ žAZægbÿ&»Í1tÚ‚$·„ìv½èŸ¡RÇ‚z}Nc¸ú%‹VíÀh6ñ—’Ü45š^²j„_ù!yÏãçí¡kJÌç”ó¯#뙬ØU‚ ¸µ éÚ¤ÌcÀcp–I@%1³-ƒ/¨M.žß‡ÎÖP¿^‹’Ó‰“ÏíMZN.)8xÒ£Æò¨dÌ8zžGbfÇœK—œNf?Fý-‰Ï¾XE±ðÐ5„‚ªé¨^1²ùPFv­GàÀtMÇ&©ý(Nêû›3ø’Ùš$1§!çi(ïÇQ—ŽCzÒ»gª·—6'#/+v­: #7€·¥1'4ÆM@cú]9‰õï,B ­"’Y97~é:£ù ¾xYÇóûÇQRÈNO%¿e€ôü®d*.Ž“I㼺’5¯#G÷¡‰¡áZ¹}éß)~n6‰®é~^)fݦ¦–ë‹”W*fi,s<Ðsé}úÉ È70Cyž<žMŸ|“Kç¡]ÈOªMº£¡õÃw²~ÿnvÙ­>¡-ÓxvÇ\:–Òûˆ(~ĽHmKØÜöd,WâyAj¥×§vn"ÖÆt?¹/½:ÔA˜-GŒç,ý–m+ÂötE‰i›Zå Š°u2›vcàX‹úxØZ]z¸ˆÎÁ$ê${Ø^]Ï<§EJ$ƒ‚ ®fߌ™¬ ;Èìœ~vw²L 7©ƒ&^®—Cj} OéGíG¦u OfŒ[‡¯—l$$] 5š [Ê*‡Î|¨ÌT¢%¦ß{0±‘Yý®‰eëDR›sÜà&Ô«À2-)ªAÃA—p¦t7‰~!©–¿ µ)®¸šÍï.AML¡A³öØkB“=?¿´P²ÛqLAšÔR°-7¦Ft¬«¬‘qÄÇÏùõ‚Æ œpµ’ÜŠõLàµÈï6ˆ1Å3YjÖ¡ÃГhÜ´!µ¤ƒ£æÐ®öVR»œFóÚi8Uý0òè;ñjJg|Â6’©Óª ýFµ"ѱhÙc£B³XîdÑeøÉäå7%)¬“=âNJùŠõ[‹Hjs2—_¸Ä, ¤‡¨8â8 ß÷ükY±? 6äåI)²Y3Ô5k*ÝîÌ ŠÏÀºŽ}*Ò!ÅGqÄGqÄGà A“Y¯Sëåç ªð¡•Üz$=y=;e˜zõàz?ÿ¤¨:†îS ¶å 5E:Ñ´…*z‚–…íIPt Ÿ,ñ\OUðÌŽTP4€VGå“®mრŽåàÆ·B * û÷ï'=£VE ÿ¿Ç¬Jr·2aQ58†ð-'zE´.iågcHàògX ž'ñ<‰ëz¸®Äõ\ÌP˜°iaFll×Á2m"áŽçáÚ¶ŸòÔõëÝzŽËæ-Ûùé§õìÙ³—5kÖRVfíÚõ?ÛÒÜÜRSSÈÏoBBBùùMhÝú(¿F±âGðjšOêjš†ahF í[Núê躎®«hšRÕ\5¹S,ùûù«ÉßšÿB  Á⤥ת9e¶TЂ:Škc—G×J#AGš&¶T 5\ÓÄ‘ „†Püמ‚ªk~ZbÓÂEE7tôòa–.aGÔ•Š¸[+bù錆Òµ ;# ¡ù-Æu%Ží è: .Žíà•Ï;ÛÆq=d…Œ–ó5Sû¿DÛ?ÆÉ~éM,3‚#+;]×4B¡B@ ¬j„J  ¡VZÂÇxSt‚F”HÇÊX¸Š?Î>_‚'üÔ©Ž Z¬}@Áêx¦‰#ša`(à¹6ËCSÇ!bš$''ã¸nÕ±IÐ1b†Ësm"¶O‚•2Ûf[ª¨ºN zÑ\×ŵ\?Ý«µa !à·©Òf™ÄYúYÇ ¸¤˜´ô4§Z­0)Qô †p±§ !*´ ¡$ô%÷ z•öïNç¤Ì˜q©®7ŸKšð呪‚W>Î5ÌSCר³w™™ØGb_HÄ,¯ª‡ €‚1q„-à0ð‰çº¸ö¡£€ƒ†Î®Ý{ȬY!—*º&ˆX^ô0„Ž®VG´%š®VÈf™&ލ\SÀÌظÑ6¸ÑµEÕtŒèÚây.–eãI-¨UŽsÅZe#uCTê6ªA‚.ð€H8‚ªª¸®C8l’’RMh™ˆ•O ¨‚ºÉŠ_âãÕ'üm yªƒØÄ«Ogg¯qŒ=µ=µ£ó¦"²_h*•&Ä&l{?»ùèì+ÚORR"B(vÓ*"E*ï%Pu£bžH)q¤‡kº(††¢*¨Ñ•ÉsmLÛ'õU=èÆõpUv}Éä[gÒÿ–Ûè’hVƳ^çí×-†]qÄ #¨´îEÃ0ü5É\ÇMEg+ÏO~å˜q êܘDáÆøaåóY'P¢5Õ%vÔïQÃð¯û÷tpOè6«bí7-ì8ßGGŒrÿ!#£EEûÐ5ÿ9´úã{y èŠÀï¯Äœ6¯¨è §ü¼ÿÐëŸ*Xš®Wy¸P•´´42k×F‰Ä8âˆ#Ž8âˆ#Ž8⨀'RR’ÖÇ>’´žc‰åÜ*/°Ã1¡®E(\ã]ðlÓ¯%X#,"G¼Ç.c²ÿ·Ÿª§®Lû,¥ˆ©1[Y¸â3öQñtSþ:†ŽȪJyŠdU‘8Ž„`EU1 Ë´1U]Wýú°¶†fÛ¸Žç“]ŠJãF ÈË«‡çÅD1UKZ)c僱ÿÛÿ»œôU„OüªªŠZõëGþ¢„¯ÐÑu?Õ³Oüª(ª‚½OEªìبßju~«§‚þõäoÌëh›äa‹G»8)¢‹U¡ãf؉é73\©ã®máÚ1sÃt©®òá8:ÇŒ{Ù ;Tß÷,óÐó®BFÄ&ì•6£D¨WS¿ÈÊ_Õç‘¬ÚÆ*=éZ„Ã5Ì Ys[CÈé®z»«&ô®^\ÖÅ »Ô,YM2ûdo¨&k‰éKYS›ªµ06uû!tdz#Djú¬!„iqˈ4.ÕôF:X‘ƒÇ¿f#.ªåØÃÃŒoÕñp+u[º8Ö¡úþ0_U‘/×—Ë•×:ü=]Ç>hm8hM©Ò·Æµ¥ú\Ž™3nµïuLBÎaò ^.Ÿ@(6ÏeÆÃÓY¨0ôŒ³È X8–‚†‡ ‡ ‡\"ª]5šZÚD½h~™ŠM •ß GjÐ+‰kEjž'Ö¡µÐÿŒ±›9wßÊ¿×$Òâ´kè”fᘠEõ:\"GFbR«û6à »‡×ó*:-ñ ˉ•Û>´M‰Š‹ôd5ÿÆ÷-"5øKž[ÓõÿÀÞÇGûž!h¬qP¥÷ó)pâˆ#Ž8âˆ#Ž8âˆã¯„ØÒp‡s¯ÿW’Ê Âÿùc;º¦J‘±ÕcÈc)£äMôóR E ,«’° U.T?úVSЭ"òÖ²ŸvÇÁ±ÇÅqœhô°ç§´õ¼ªiMkè¿Êïõë !P„ðI_Õÿ­ëjEä¯Oö†æGôéѨàèû…"ü¨ßŠþðSxWöOur·†×σ²ºÔðœx2XJdïügM“)´åô»¯$)ź­©™•c/þP)C¥¬þó£ ÝùµvG"Ôvœ>å ’’=.¿ÚúĤ¦þãhbÕ”ÙÿS³è t¿ò×÷‚Fj}:&-Ó›rT~®e#¥Ä´jsô¥çc¦å"ÿÎoÔ÷Ä”Rø]û_&“ßg# jÓ²°6Ò´RàØêu:ޱ¹.™ªõ t^âGæþu§<3Åï!—PS9ªßHÊ:)™ÍhÝ(/l#n®ÅœŠ§€Ž#ŽßåÉ Çd4éBßQ-ÈhÙ–zÉ*Òu‰Ï¸8âøcùž%üé`¡(mLhš†nèñà8âˆ#Ž8âˆ#Ž8þò€ãù)b?çK„*Rùßjc9)Iô·¢ü?öö¡^ÿ’tÐÔ˜þ¹Jà b¤B‘(ª¨ˆ¾u#à“½å¤¯]…v£$°[‘RZÆÁ5õq%ù ªªDS>«õ~ýÔÏ šCøF#‚ý÷‹˜tϱ$¹ÿwy¤´”•$÷Á¯£š*£=!*?ï_÷+(W¾YVëóªÑÚŠPPÔÊhæÿ?Ýù½‘I~¯:xŽƒ'•jé¶£}¡¨EDç‘ÀûƒØ¥ü°€ðŸÿÿ(c¤E‰Î EE(Þ¯°™ä÷<ü¸üZ{X.ãI§+üïÍ5E©ÌÊð[èa0%—¶G7éú銅?þÒK¤n›VàyQÂSùÏk¹IPTBDå¿sDh"y]úÑXH?i…n$×n@Z¶Às\<Ž\çÅQw¤Ÿ‰£B¾ßA.A*M /Ê7±]\ÓE*‡Ñ I¥ P„ßÏñýÑ8âøì€ -¯=Ý›p]\Ïóíy¼gâˆãå{þ•ð§#€÷ìÝG­˜×¡PˆE_ÍgéNPâçmâˆ#Ž8âˆ#Ž8âø £üÄk³¦ytîØžp4ÂèPBaû¶­ÿ{™µ:#‘ÐÿÓ)_Q­/«ºˆØ(àª$oÕßÔpíð¿ý MwثȆäGV¹ŽOð"]!Q‰ªRNc Pp…‹ª ¿þ²Tðj¨XIGÉR!¢iŸAQAQ$¯üŠ”®ã"PñÙlGð]ϱq ?U5ª®¸X–ƒb¨®‰åHÃ@ÃÆ²AÓ5pÂØRÃÐ5pMl tÅñM<5H@õ°, aÑ]ÓñzCqˆ˜nÕøì Ýùy=‰mYx²fÝŠŠ¦kH+‚_—Y‘6¦)Ñ‚Âsql­ó¬ Tׯç(µAU¬ÛŠ_;YÚa,©ù÷ôlLÛ%6ºY1‚è¸X¶SeÓ_ Ð<ÓQ ¶iâÕŸR™}DÒZƒ¦#PCWp¡Eç5A]Ås-,ÇChÕJsl ÷’8‘D  ¡àØÎA÷ó糬h«Å0P\¥|Ž# ‚ëFçpõqþ¥r¬;þwèàZØŽT0M-@q"Xžêg2s-,4 U`›&.*º¦ qqyÄQE‡—K"Ñ<ÇÁ†*qlדHáÙ˜®J@'Æ MC÷» Eq±,7¦6Žã’_™ˆÚD;ÆW”( \?ûJÍó½üž,OAÑ ÕÅ4]Ô€á×?ä=cí¬Œú7±mhʼn`zj¥ßàùkŠg…q•Mà:6¶+aÍ})´€ï£›V…!4M×´p]Ásm,OÃP\×Å“ FÀÛ]GqML§ü~Õm´D*š"ží tm©¢ ­öP tdÌxhªŸ0þ}xÐX‰nGÇØP$2úÃPAºØU|±X»h4~+[SóýDtŽHÀ³"ØRAÕ ß¿öìCÈöß…/cMëžDhºª xÑŒUžbÔÁ±\”¨_d:å>wT£Ï‘ÒŠ`KqˆÞOùþÈÛ—ô&¨)lzå|F=¼ŽÜ>“xöŸH±ö²âÅǸõëæÜûðêUkÖ¦giÝd6ÉN IDATÿ0…—qzÿȯåÄŽçÝK{¡,¸—iê\ÞÅ¥d÷g}-= xí2¾ûþ{êµoGÑŽ¨{Ñ5k;ßö2E½NåÄœox±¬?ÃÛe¬à³{îÅ7‰þÙJÅ“4°ìí{xì+öCÆrÞ f„×}É‚õEÔë6œü=ŸðøR…Þ4¯ŒÖP,Oõ,)úîýt; pÖðÖ£Q·vñNVÎ{v'šæ4¤s§\ôh°ÿ#±×Ïá…™‹Ù•XÈÙc{Ñ )¢ßB =®áUïsÇ’†\5®# Tîo”m˜Ëü6UxmŠfqÿüG;”ú«ng¶6’¡Ý›¢|}¬=šÇÎìÌêc™×nç¶°ê­¸×9‡ Ì~áB}ïgXpOüû+Dç Œvá¥Í9t|M?Èórë9ñ^Á{yOpñÑiìyk"gm;“™u¬G˶ٷw/99‡?üžw?ãnƒ5ãxêÁ3i•D¤Û%;–òæô¨íµôr×ðÎóïñ]òqÜ:*‹9SÿÍÞæ0¬-iD˜sÛ‰|[ð—È&¸ð~ú½˜ÇË÷œHŠoö(Þò/<:ƒÔñÿâ”Ì•¼üÌÇü”s× kAlÒѯŸË¥gqí¨žÔN¬üχú1£Á ÜÛï'î?mƒÞ8£jhcÑþýhªJJJÊÏnÕ8ßLeš~Wt±Ù·á#žþÇjÚÝ<ç‹!›Æ{w¼»’†=Ï`lÇZX‹Ÿä‚ÛŸc±~ Ýw.³’8Ò„©¥e¥˜¦IfFfÕ„¾æ®;6Ñÿ¼!tÌM­r¿moOdÜCM¸ö¥´B»v³ägØÖ¦[—Õãüó»°VòÂôŤv<š¡… °çÀ!­¡eYí/";+ûgZ°–gÇLG›ôFv¨…Á¦Lõ¸úª®|qÏV?‹ñõ·óÁ#—²²ðQƉټôr)ý¦œK;m+3?þ‰ŒŒ–tí’uDýåyÛwl§^n½C¿É\Ê÷­ ñ áô²cÔ“W]]²’PXʽ}'²ùò—™Öa.W>àú»†úÙ×¼ý¬új&3—hÓÒaÝžæœ5ºgO_5}èPNê“OÒ!¾vË–-Ô¯_¿RÖâ-Ìžv)7|”È ó¯áÆÑmÐçÇw¸ñ®û™¹¯7ßu!ƒšg¢ÅŸÜÄIw~Fiþ^xøTê!Xðоë5‹‹ZîáËçîà™ÄKyr¤Æ¬žâµýݘ|ã ˜ùôë ……CÔάý+÷h#ìZþ¼›Å5ÿèCr›¸âwÛzÞ±sµ20 ã—‰ÍlQ›s¸vÈrF|piÅ:ÿ+îr$[·l­¢;¿ºÏv½ÃÄ;áÆ{‡ÇÄýzùªëôûYúÆÇ,ÙœÅq¥&˰mÛ6²³³ýƒZ€œ7…©êÕ\ÕÕ¥d×§gÖþ˜W×åѱ}[òÓÖòìØGÑ®¼†‘21€ÅOdÃI÷1lÓ=ܧ_Éåmv¯ý€goþ‘cïMÊ_±ºÞ(†7¶YõöÓ,ròè}b?ƈQòé?9åÎOØßäžx4yªÂ‚‡ú3¿çl.i]Ä×3®á_úE<}ZÓƒtÓYý&ÿ¸óAf÷çÖ»/¤³Z(KáÒqœW˜J‚º›w®¼ yõýœXÅ]³yÑlÞŸaÈ´“iXq};3oûP·ôx5¯ª;xóò»Ð¯›Æ ™a¶ÏžÂÅßðê?Z³ð‰é<ôc;î¾{•_·•÷®ÿw`_úÝ´ŠÝóþUŒœº­ãe¼xï‰dš¥|õÐ)üØ÷]þÖpï>÷8_Õ¿‚;òçóêW+hpüßé¹ëe®ø8Ä CGÒ§YU ÷}0‰‘S Ú]Æ ÷D¶gQ4g '<”ÎÃoG3\6Ïû€/ ãø±´Úû9·>µ’&ƒG36åCžÜÖ›ã»4 ;á^w-á W¡Þ?Žu§~Âå]mŠ>ÂÉ_tâÕ›û‘XeŽ~Ë—«öáåâ˜\‹…OMcu“! Ï\À³Å8¥Kå<<ä)rÊ) }ÿzJ/žòÆçµbÒµXúô¦­hÍ”{N¤n¬®þBÝÆ+c˒׸ó‘ŸhÓ6‡ŸO;ÖñÞóßP\§#çG§VCÉ,®¾.̤©Ã~“5ˆýqÕµ¥\v÷É4ˆ¨³Ö½ÂÅS6pTŽKÇI×Ñ3¡ˆŸ?Á”§·ÓÿÄ1œzbKŒÿèKmcÈjJ‡’ŸÞà†gSùÇmƒH­îw.~žoÄÜšNî]è5¸€œõ¯pú£WÞ0ˆ·É²~¯så1Iˆy÷ÒÿÍæ¼~÷ñ‹Vòêͯ’sÝÍ›|©Âó¹wò:zŒL·Fµáwz„Ö¼Åõ7†¸ä¥Óið{šno3³^ŸÇÞ´nŒ˜÷+V C¼Ó^ÅË-"ئÇ÷ÌûEàþŸóÊ¿_þ» õ³2HP!¥SW­ÙÂöh›ë¸ŸGæÞ2À:fG±ÉùwLþÂ6–ÌvÀYÍÂYùäå¦P ½S7ü°…­ž‹èz u¨jur¶Êعqë¿K!)¯ …] éœ% jeºHQL¸Ù)Œî˜F’.‘lã§ù‰¤×‰P‰¤Ò~øeLÓuOˆ°umˆÐÞzÔIêÖ£NØ&bz¨üÈSžä‹MeMÅÐUêŒáê³{vÑ  Ô;×Îg_ÓÑôÏ×0]ÔÄ2VÏ~ŸYs׃R[ æÂ¿ ¦IÀ¯õ«k`cëUÕd¦’ZÆDkOK „íëK(ÞÚìT 9¹ä„%Vx ßÌÉ%;3 C‘$·jCÎO;ØÍR¾|«íÛB%·E+2XÉúýëX3¯+­µ²h˜\uç<æ.HİR;´–mi¼#D±;Ÿ™¯t¢mk ¨Û¥õW¬cw•9"kL{] …—ñü““(L €çŸi?X·Aº6eÅ¥x”BzJ*é¥&àa…LlGÄln`õ7´oàoÖtîÆ±_ýÀ†ª»:„Š‹Ù·®;íIY42jQçÇmì}›³€çŸo@AA>)1ä/»Þá_3ŽaÔðlË"Tlú|ÿ!j@ Vp—tPÑ,²êobÓú­l\Ü•–¹@NkÉ8Û÷àFÇsyô±ëè““¿0:AV¤¯þ›²Š^m³c_Ï,åoOúä/@BVzœq:MJöS‰ïqˆ„L,ÛÃ‚ÕÆùçä:2›iR²·69õƒÑØ.\vY7@ÐiÈi,~ämÖnø”>ëðÂTÊJ@•µÉÒré߯;ý²íãŸO“ë.súr^{pÇÈQµËIùöL|òoð%[°ªÚ[éGÙ‡C&¶!‰Æ{jéd ¢™6‡ë׫ª¤Ögàe0mâ1{J+"¯´æÃ¹åÞ[Ñ!ªŒvJé{3ï=sÍmW‚”ß0畾tëèA6oM­7±sG nj2ç^õÛ¿zø¥–xN„²20?¾;'PPp*7>±€?ðì¤3èSP@aA§=È¢}áß$Rõ×Ê.œ|ôÒ‹¼øòëÌxé¹yÞ)»Ð¢‘Ci(:‡êe“‘hb-+çö¢K§è˜tíÊÑ_®f H³´ €=,¬6Ÿ«ø‰el©¡”ÎâškÞçõ©}èÝ«;Ý{öâÁ%à…ç0yÜÝ|¾î!F;œó§}ÄÒϦ2¼|}~j 6?òÂcÿæ±[Ærò€‹ymî+\?ù1¦\ØŸ^…ܽ`;o\Ø‹î½å‘€[ÂÂ飣ýÞ‡S/zœUÀÎù³xï_S™vÃ(N™t9çLz9+Š,bÊéÃ8º €‚‚›ùÂò`Ç›\tñ[¼vWÝé3ô^Z/ l#ïß~bôÞý™pçûìô¸¦‰åhh,æÞ3.åáO6Pz˜eß‹¬ä¡‘…Œ¹j3oèÄO³^ä‡^çÃßãîkþÎgùã=áѯØËN^¿ð^>Ùð"Ü‹‚ÓŸeË®÷¸äèžtïуc>¾WGzƒ| ‹ðÏ‚ã¹äÙåG¶ }ÿ /du¤S=ü¼-/qFA…½2ò6¾±Äoã?üE ýÙX\RÊ7ÌfÑPðˆ#Ž8âˆ#Ž8âˆ#Ž¿¤„ô´TN9qÈD¢%Ìy{¯½ZÀ}€ž”ÆYÓ?ftPâyªO6h)d( ×ïboÚ>ŠŠ MŽÚæ°Âήåî}g3mLk‚{Wƒp~f;YA)߉³W³¨8“†ÙõpŒ½~+@í&4ÿþ}6{’F€¢HøD¡ÊJ¾æg>bÁ3P¯ð$®¼ázÖ¶,åÓÆµÙ ‹k(Ñ{f5&ÅL6KICU‹’=.æöe, ÃM©Jw³qÿvÖwJ}%ÚÖ÷,,Í¥UV&©*(”ñù]ðÀ¼NLze"]¨Êè Ðtt¥|£×Ãs]¼òT©Átêì[EYi¡z˜¡¶'P‰ª(A!ñIÜÈ~Zô+3G3²M„¿“ ¨º‚g›X®‡¦«è娃*xE¡Ôâ˜KñÊĉ\†@O8ŠÑ7œO22FfÏO=í‚„@uö.'t`?e.$ HdF=òV}ÎV™…cMç'вs©·b›Õ–à(þ=ôT2<Ý[v°W¨ÑºÆ@j}mXÆžP¦§¡”lmДf‹ç°~)ÐÑ}´>X·ÏxøcÆ·lÏÐñkøgÏ®&}ÎåÚÛÚ{&ÿÀËw=Å}wAÎð[y⺆(bÛvz ЄæížbÃvèZeÇ2B(¼ÝäkÔÎÕÐC;ØkCè.ðú7cÇ “8#7‹@Ì'<{îåoÐb±¯øYÎ(x#§£ox‚‹ºüÊØE÷7 ¥IéöU,O8†qY&Ÿ9~RrdG$·ïe?ùdŒhÿýV; ¤l{ƒË†?ÝŽº„×o×™¹¸ãóªÌÐ4”Ø4êUþYÓ8ÿVhEÿSoæÒáÇr]¿ÛøêæÑqKh2’á©ý¹ý‰ô¾ãVš¥Msqö^ÅðaŸqÎu×s~aæïcžUuû&Öät`ÐQ™$ǰèJãf4[ô)E“˜úäÕ!*ÓÅï\ÅׇVi‡Œþ=$ô];8b!h +5ÔW¨Â®°+Òõí6ŠABf¹«–³¢(…·§¿Ìâé/Ðô¸ ¹öò3i›öÿ½&*¨Zˆu«^åÅ'6qÞ;óþˆ[ßüŒwV¦Ðø­)¬ÎÅ¿>=žfÞ,&ݰ ÅõþÃØ—ÿ®ãàh‰È_à{íd®yöqZlŸÁˆûgñÝÑgò·§.dᵸò14 ,à®Â+h=}>Oµ.bîŒk¹âén¼qv‹ÿHŠ =‰dÕ‹£ÛÝÀWëÇ—µ…•æŠz´`åC³(iü7^›ßŒ²/¹åö/Xž•€¹p K.z‹Ùs³HØý:O/ý‰fïÌg~F ß>s×ß2‹·npøè§?T [øìÍyòMH?ú\n»âot­«ÖfWø$Û–±0Ø—ós,>r¢>ˆ‘NGc׿]ÑÊ_#ºZ¾æ­á›WòÜŒ¾<½å¨‡çseÀ1)^µˆ/÷áL{'«]ÕŸ“F&ÙAéÖ=Ñ‚ÚѨEʾå3³3§ÖKô}Šï>áÕŽåÊ*kK„’«ù>éF$ûsgëÜǸuÒ;Ô:çŸ\svW?+ÁAöAG¦ïãáUØ`ºÔý~=[銴-"Õ¬ÑöÆ®sûy÷йmn¦Í¿É_K]›H¨ñ6‹žx€¼cÏ`Òß/¢K†Nbê œôj)Idü°‰mM2Q‰^OÈ¡Ážy„öSF½*QÊBQüÂ'Ng.¼<ŸO^.`2Þ¤O™Î Ç ¢ë­ €µ¤qÌù71¬{Ãè÷†™sëiÜð^>ÿøh2Gk˘ëm`ë GAOh@£æ°á´L«f'U—ÿ}+7N^J§›&sáÀDÕÀGÑ\fyÇò÷<-¯Žg²z ÓO©CÑŠy%Liñ<Þ~ê]¾}ê]ßýë}“®›H·ò°ÿ#ÕíŠ,7£$æ[S™³þj43y=oݲ–„c¯á©­I-™Í57}ÈŠüÓ8nÒÞ. qí£§Ñ€¯¹«÷<Öa“²ìcR{ôå›u.½ÕbÊÔkß„—Ôá¦çÓcÃSœ÷Ñ',ÈÊCY6ÅCàõ9­È(}›×„‰¶ýUλÈá¾ùÐö‡—ø")ücç‡ ïçíë±ÆË6?í£åàúÇûs=Ö½Âï.g}c¹ð–Œ÷?­KâwwQøø+Œér*-Îz–yg „¹ïg?É]¯/ážÆsyí­R.yg>ƒë|Ïs|Gª²œ—¯^E֨ɼÿp3’|Äå7¾Çú+tÌw±úί˜{¥†À¡ä&©hÉ׬;hÒãr†¶ìøìwXT×ÓÇ?÷îÒ«4{ï½÷Ø{¢Æ˜hL,IÔ˜¢éU±ÄKŠKÔŸ=ÆÞ»`¯ØQ@)K]ØrËûÇ.ÄVLðÍ~}xÀÝ{Ï=÷œ93sfḬ̂ù³OyeòXRà…oçPÉEÇ9†› ºš0ÊU]̵¨¢½](ª(­ç;T<D-ÒáO83n3;Æz¢˜Dã9«è?§'ïÍ}ƒŒù^LšÖ‘Œ#s™=é ¯æÉç5ÛY~ !öÑ‹8ã=˜)k;QF³‡“¶áöå*ö¿¾¦#>bIJ½ì‹›D³Y«é?«uF,%b„€ cÏæ•ÌZǽÚЪŸJÏf¼Þ+—Ÿ&œÇK,úí&óç‚*¨ëGÑeúö¿¤`<2•ë¯Dùnñ[¦ñòÏ[èþM:¸†N ºÌÝp‚µ{ð¶Ï[ý ¦\#‚\X9™Ÿ6æ“Íùbuozr2Ç$ ³ìˆ·•Ëú0^û>’éúõŒúñ8;ÏV¡ïôaù –>zÚ~—™Þì5ü'ìç`SK gاØ=ªàDPÝ¡Ì;Ø£K¦Ð¬}}?ŸÈ¨Æ…gOI½z íÞ"TQ9Ä·/Ü`td$u”\n_Áw_o£ú—í]¿üâÿ½QChó¶Tký’òì9€EEAx¶†X/Ó;Xk[eÿL&#Z;;DÁäÿϯYI’9– 6Ø`ƒ 6<-¤¦êز}o1ê‘„lîÊ‘ÐȽðo¿9…rÔ½ks"cÌ  Ï;-Øõõ—¼Òà3ôÔç½—r9»í*7¥õ–Ī ½GjY;«÷y‰l›²ŽÔ¯Z†­Ò‰;j¦ÝÏà-I®”ÁÛÿ{…pØõÓ2vþºŠ´Ãpêe|â_’k÷ì;Ô;Þ?G·›ÙcNÒií·¸Y)ñ¤ÅGѨLjۮgãÄh«v¦J«}Ë…ï/¦…pžŸ{ŒãÖì)t ¸+ ›ª¢ª ²,[þ–%dYAµÄk ›%ÙˆA¬ÌË_W¾Ó¢ªˆ‚‚$É¢€¬¤p!â ‡“Ïp$o?â„Ù­/} ¢é=ï¨"+Š%9œQK@ù#ßWHdÓ·_±tËêö ¿mH,õ½,ý³Ü¯È2¢b© ¨ªªu4,ש¨(ù5î,5ÝdëX«ùcnýÖ:wTË‹½#rT¡èÜ(÷Òö˜7ä膞ÜZ·†+#™š¹Œ¦odížvTjãO‹±Ói1 Ž%¯LcåÖwö¿|òBš'g¡*=øéç¯þ•;0`ÄÆ4i@’ÕhÜjð»ôÌ 2dÙš24_ _Ûö·–ó˪ž¼a‰awö|Ž)‘ÏfN®fÞ¤iZô[•5“¿ƒß>ˆ¢Ë¦IxY}ãÛÓ`/¹döbúä^Ô¼Ít¿ª‡=Ý4~ˆŠC–³upf&Í›}Œ±ã4"?nŠÆÁ‘FF±á·ô®d¹Ö5¬cE26ó, &¥ÁäÊŒÿò=zVó|z,ˆÞÏ.!jqÌ9dž™?°x&àÞˆ‘_½Ç ú¥ø×­‚ŒÉèEõïóñ½ â*+>^ÅÎ?4¨þ=N£¶o€Ñ@V–šÆiï(å¨f¸HÂö]ì÷lCã:5s²Š•eH6b èH« u(ë øSÑ>Ë!(ADÔˆˆ7b¹Zã]&ÕT'ÊV­OÀä½\\rEÔgw/B*4`fä5ž¯›+vt­YŠè¿2Ñ~š™G×M©Õ³¹FòJ3w5V™P£Mý)[·9á^%ŽvTàYU{ŽgIÏñ@ [?ÿ‰ hh3îk’ÉÑíâ§7ÓuË4|.¯{„ІìÖLØù-\ì q%¯uŸÄÑȨmÈ%êØNºô}SæÚ{Ë„|…y¯þI¹7Þ£‚¯%ëÀá«èÙzì²%-nó?¹D—?_¶¦K n2Œ_ôeÏ´ÙÌ›–JŸ·Ÿ£´ø¨|NÅ„+µ^úˆ_z˜›<é:}7]9Æ7 †·v/T|…ùû^±~ïHP­!ü9ÈâøâùlŸ¿Œò_õ£í‡?ÒöC€öŸÊº£Ø"—ÛÆcÿ7ïà6'’ÈÊQÌþ?üï¿Õó¦\•ÑŒŸ7€ÒIJá›ì\²Ð7›ÑñËŸéø%À5æöœÂŸ Ë1°¡?ŽOYújpsÀ¼]£©B×ÿÁ܉«)õž瓼±=’Ÿ2fË6N4®F@EwÀ‰VŸ¬eÿ'QÌh1œäß~áƒuÚ­S@µÇ3ðe~ò(øyå»}²n‰üùÎ æ¥÷¥¿:øŠ§™Ñ{MþP1‘eÛÏpütLAUQÝ8ÓîµÇòîìå›§-gÇÂÝ„iYÀ¾¡pÚ¾Ã,Ëø–ªFHP '·ìÀÓû´,2…#üþÕ\¦}ý7ßi,õ¥†V@,D¡1-z,äò5 ¡º ÔïR‚S[öR»A.Yž`¿YMêzUkSkÖ®G+$–LßæxÚ¢ö¿¥wÏçø.òS £TÕw¯Êø}ÈÔoðÙ´‰¸]Ž"h±ç+?ÿšŸ6%  û’» IDAT©mBÑWÁàæžžZ†jªŒŠBNÔ|þÅ’‰ÆÁê]Êq)зÆ}iå˜DQƒ˜’AºÁ²÷09¿¼r{º›+!U}›AMµ÷9<ÈqÛO®ú-+Áõ?p©bgæ|1‡¤iýx{ýzÕÄèõ}Ó­-3õfK¥[Ç~ÌöUwûšö¥ÞKQï¥Ë0s¥·x±™3v"¥Ã©¦Zö¢ "b@Ÿe¦Ñmò9÷" ÇO“^ºjW#ÔÈ6#UhN£pg ˜jÕ½i""Še¨¦¨(H¤žÍëo-æ&€c0^nx¡,‡qA1þ—úÑ¥E)ñ$Ç/¤}Û ÊW/q¥v9ËZ‘%äÛ .Šbá3ç t½ÈÈU¼_?ˆ¬k w¦%ø…Uˆ»Â2)‚PÐLXk’£AÔZû§šÉMM$±rÁŠŠŒ!T¨âŠ«¨#£ØdTQ%³%‚PU‘EMV73u¤*G,»ÐÕ§ÿ>˜S€Î! ˆ²Á•/XèLÖjÑe?½)]©]c×°:#“,c=*¸èÉt­Ë«_-#2"Òò9®ý°—¥ü–·îói]–P´š¢íßÓ·¡ä¯K7¼‚Üq÷y€YN5“¾“i=6ÑpË4Ú81«"‚F¶ðCs:ÉZ )Øïo½ ä¯5‹Ì“0åEÙù7¤eµkÄ&ƒ"'p³&aÁ4²¥o&·Ô@k›—X8øg”×ÆÒ¿Y5â:‘èèZ”Í?±c$-~+?½z€fë'ÐÂÁ*;óù¶åjÚãä{‹ŒŒûó ¢Æl冔⫄¨’ ã݃ÂmïLž.–÷ešw?Çõ83†\£uüÙŒYpÄÍÛ ï`ä;e~@9'UÁ”k²Ü¿Œß¯¾Í‹µ‡Ê ™þÝOÌcMªŽbÿ  L¥x;&“nº½M+:âàT +Á¢£Èr.Yzº !Ê ²`óÜDâ|œqör/ر"ÜþKƒ(š0à‚W™ŠT/±‡í‡2HµëB]7îþ)Öp!áüYâMðwüaešu»ÂÍ3JÉÞüiYŸ;JùrA–4ײùïù°l´¼§?Õ›‘íÒÉÉ8ÍÆwÖ ”süé÷Ë!"#"ˆŒˆ`Û‚14i2š_&×DÎÑ[uø’„UôÆÏ1™4éÑhûîugÆ›†õÊSÉã8»Î‚V4¡÷lÊÛ߯½ƒïtós²¨èŠŠj•cAa/$âV jøV¢ÊÅ휗%Jשj6¡JV—$Q@òͽŠSåw™õÁ-Þùz'Šjq0«ªŠ“ƒ7Íz¤¹wKª‡0+Zœ¤ üñÍ\N{`yd$‘gЭZ v’ªò7¿°þ–b–0|ðI†î$2r?«¦>OÉÔttI \W-IÕóiL1¢÷jÃG¿m¸í½¿¢e g4ªÌƒLÔºsÇ9§¿Nù^­(¡žaó…P«Ôyg>Ÿˆ'Ùsõ¹®í™±s‡"#ˆX9š*UÃânÕUE)h=sçzΓa÷ß* –}Îíò,Ùš¬e ÔÛõOõ6Û°u,U$2..âÝ÷oðö¡H"#·1÷ãÎxen»Oý{m‰"¢lœ·Y±ÊLm^oçir÷ÍgúbG&Y÷Ÿ¿Ò½1ÿÝÀl°dnº÷UñQä!ê¬k@Óöï±)IE6)wîo¬ýË—ój’^e#&ùo}RÉë3¿œœËÁßߣe¿_0÷Ïôû8ED”¼½¬(âXc,#"ˆˆˆ$2r;Ëëÿø{·ÿ láÅ‚haØßÿ¾’ —VD\æf’îY ¶Ál°Ál°Á†P‹v÷²hÁiÒuÉÜ:µ‡C ¨]½•›îdo¤BæåKœ¾‡V ;ôY™dæÄ³õ‡¹$—ô#Øç®Ð“E–þNùZ¤ë¬Ÿ4…qþ´Ú]2™Rit¹ÆÕ+׸‘dâÚÖ\)D€5%¡lÈ E—ɔΘ‹GeÊÔßÂÊ Èé9w:‘T¡œåx†'%JáIMz^äBÔ5â“ \Ù²ƒèŠ!”Eä«‹ÚéÊ.þ†F9)¤¦e`ÈIãVb 7¼RÕ0_bù'ÓÙ¥©L³®Õ°OK%Ó i;æ³üØUn¦d’•³—};jQ&(ïÐe¾›97“ôÌlô9é¤aOÉ2Z´Î§¹ égÎpE£àäæŽ`:ʬQ_±&* ³j‰VMz22³0²ÉÌÕ[NÖT3f“¥.ª@»æÎä·‡I¶:UÙŒ”•…Á¨'+]‡Á#ˆ2 ËY{ ¬ Içs2¥¥]MÜÜ·œÉãÿä&.‡;àTâ$ç¢UÒNŸæ´ÎµiÚú2W®Æ’jäúî}D‡ùáK-š÷ÙÅÞ¤''qö@I•ªîJÙz»9x\%ãÒEÎ&Ý@*Ù˜¦²È4žáb¬BâÞ\ðqÄ][Ÿý"‰Ü—@².“³[vS-ü±Ò?«²SzF“žôÔ[d+÷ÒvDr=jÔr§Ä™¹,=.cÒçìÉ8’4U3ìeݦ­ì¼dÀœ¸›=Q%ððrÃI0’––NzÖE|6׎M(‰BÎùE¼Örg󌎹Y¤e$qzËZöŸŽ&¨NeKšÌÌ=¬ÞDÝu)åù÷&RYÀo›ŸçµžÖ ÖŠý©LÞ•MnZ ×NŸäBFeJ;>κVÉ=?׺¯ Ò’‰4Ч–¡ââ_Šªûˆ8égÏp6; m€/«qÈœa¡™t] Yf¥êš ç’™¦#5MGª.…”Ôtr•º üÀƒ__üš]9™dètÄ]¸Ä¦EËI-é…ÛùÃD&ä’•­'ñèI¢0áìëeíçíóœB¶©Õdîâƒ)ë¸z=]Z:éçÎÓ´2enÏüÃ;r Ç÷ýé Ž’“£G‰hg{œ‚ýpâŽ(˜ Ù¤¥ga¼M´!›t©Ï.ËÞuk9t9–d]:Ù;˜øÊïxvnF©€PÊGïaÇÕl²2ÒI¾ÃÙ‹È­ŠŸ$a2é1DïqIÛ¾’Ù+“¤>-)útÒ³ôäê3HËs¸¨ JF&9¹z2ÓudXéE‘ èÓ,|:-%½ÔVÏoeçŽ2nrúÈqR+Ö¦j?±qW2Šî$'ÎäbrÄûßöò©*ªƒž^"ÚKY§OsÚÞŒ{ÿ¾¼¬É@wê<çSs1¦ebŠƒØÊù¹ûìÿ[ƒ,K•k³™·#›ŒÄN8IÖó­/bóf _O=ϰws 4© ø*žãÜÎm쿦'#-…ä 3˜•»œ*ŠYOZF:©‰‰œ9vœÌ~­) ÈfúL *æÜ\rôfŒY9ŒRñ)4§;KÄöÿ±â¤)å0‡ÏȨŽ~x܇¾å« Òaå–~Kãœt&ìK„S¡þ.SÉ8ž³ÉI\- *2Rº…ggèÉ¢"m_<ÊŠ'IJÖ‘zf{bkRÞW!ûÚaŽºµ£‘x†Zc'!ýÜ9Φ§¡ B#åÛþßpµu/ÚÖö¨K!ÝÄïb»¶ M‚@!çì\^﹆ʋ'P?;]F6±—ˆøów6]ÏÅh<ϱ#²>Ÿ»¼ Šd$'-“QOzj2Ùæ´î·Ûõd$Æs:ò(ºªeqFÇáE5òÎHyô« [yNVz Ù@ê†Ypô: )é¤elaÇÖæT ÓùßÒr4›³C"×vÿÌ/‡ ˜uç8cÕC²·³rÓ.ö_ÉÅ¿‹Ýç|ñöóÀ9go´üŠ]9V fÌOüº=‹,]qÇ÷s,µê†àWi+k·&¢¤ãÔ™t²íËœ¾‘%÷‹éævvEàçë„VŤ'=-“•¶Mšº4ê¶{ÍdÆÅp&*ŠÌðúÔ¯è„kÉHN\„Ô#Lje\½=îq(¦2tÙ˜ÌÙè2Ò0QFݶñÇòë3b‰>uŽKjc„§’±†-—d¤äCDœ°÷A<ü;K÷ŸæJRÙ†ÝìØRòÁ³ž] ·óû´¥øvm™\Ü0›±ƒ— (W³sã*öÆåb4ŸæÐ~\ìB()ïäÝÖ“1½ÿíü èRSÈ0ÜvªG5a2›‘${ܼÊ\ck·$"§ŸçÌib¾Zà¡iûNÞ­XžXªN^èvm!Î?œŠr$Ûöq,6‹4] ÉéÖÚ´Z'œ/^à\J*™• †­,&©Sk‚}®*pâ¸@éòž”tH"éÐv_ƒÔCœ)W’2axJwêJª)ß3ùÙýS†Î"×ZöEÆžà–/3qN/JJ$UEUD´¡ qC0šIÚ»ŸãÉ©ä ·9,o×Aì\ñ¬×€p9“Ô¸hNìßÇßÊ— £Â™ì»eÆ”–>׈äF%ãnvm>ÌÙ™–÷Î4ƒ¢òÀ„¬¦N¸„ÎÜ“¶å!ˆòãøîœˆ3aº¹—‚ðwÂ^ÉE§Ó‘–~޹_üŠg·æxq›XHæÈ]ë9Yz ÆlÒÓ²A–óçð¹•/ßTTœð(!¢¹]>;«øÖ©@)óí2@½CþýýÎ*( 8yâ]§6!f=ºèK?|„8­°ÃA—NÊõhôLf Ù¿ Õôظõ"1)®lØÆåç[Ð@î]yz¢èéµJøš èÎžæø¹(’¬%NTÁ ‡ùæùaÌØr­ÐÀ->dÿơĎiNÏ¡pIQÈ{†z'Íåo=­ï¬ÈP¢5oþÆ‚Í)èRS8½{ ÛaÉ5•MLį k7†UöCؽi#ë{ÞWç/Q¾W¶î!ZRJ•¡òÕŸ˜³+›¬ŒTRti¤[#À%£œ,# &}.9¹fT ™z y-mÀ–Ÿ·˜A@’$~_±žÙµ«âîêÆ©˜ë¸º:ãîè`$b3fcqÿÞþÝlƒ 6Ø`CñÓ Šj ÿ“^ïõ¢×pñhÌ+>£ŠÆL`×WØ9 1ÏiËҺϛŒkêºc,œñ# ·œ'ü…¯™üJ;‚îKиâë'ß7ZGII'CNâÒ™¥Œë»³QOû÷™þÑ—T÷!ã~ù˜d¹ S·6Æ^k1{%lø„s®âî¤òöÀ-¼8u}#vL/šL(Iƒ¯òÞ›õq8ù;™^vT¶8ÖB{}KÅQï2æçhÒ•nLßÞ7Ï]D_2EC»0O»Á´yi4õt—ð¬7;@¾•B–Žsæ1~ÿ¯È¦JvÿŠïZrì»OY‘”ƒ C§‰kéàg_U°h€†4N¬žÎ·›Sp³—˜4é2¯Œ}70ï£~üHMú¿÷ •üD09P¢¤î"yG¹usø|e,N3>ÛC›7'Ò1„üï5öö89Š€ˆ“§'žn–z¼*˜/®eòÑåÊÌùò/ê›Íào^cÆ{ãxW{§ê :œ rˆwvç¤å^§2M¨{ƒ¹ï÷ä{µ/¼;”~àÐö=Ê|ú%Ÿ-ø’4©_¬¬‹TšB¯&Íùbx~ÐV§÷[£éYÓ’¶Ø|öÞýn WRLœ|c1Í?ZǸ6>8<‰CÎΓ õ0?¼³ ƒ`Y²¹<#þDŸ.ß±œ·y¾SOìì·jÊ´n÷ºÌç}Ú󕣈ѫ£>MÇ n…Îó¸ÎOvšÞ½%ý]†ñÞÈ™dK ÈUywÅ ëAÑÞoË,h|)Sʇ¿¥ÃbD“'-_{—7›…A„b6QÍáûk9/„ÐkÜ'´­è„o°|ØL^þx8SÒÍ(f‰ž³vñI5?Fÿ~ƒ‘ý:ó‹ƒ8”¤vŸ™Ú-€È±xº;Zën7æ“o1îÓ9ÌwñdDÇò¸?Y)Yñìœ÷9Ÿ¯KÁMkd\Æ%ÞÿuS72aÚ<ö^Íeçþ%9—qÏWÆnÿT}‰„Âûý—ÓyòvF½9=-Ÿ£«¶¡‡0eT H·.}˜õYWÅ–¢ÝëcÝ·ú5.ÿyˆh\)áîMXÙŽ¼4"…_kÄLMeºM×𲸠ïÀÞI3Õo*öR:¿¼œWgù_3\Ùáâæ†Y°Ã¨1ãêdgsÂÛÛ ¢3¾¾²µF|mF¯øˆÑ}ºÒSãB@Ø`¦ýZô£éé{p;JÇ{Ñ¡’p£ÁðwÐ͘δW:“¥‘Ñ—êÇÌOBñöóÀ>¯d–Ö_ÝïŒî»Eãˆ_ËY2¼ CÜñl^.ÓcZ{V­ålv=†—åàÔµä6oNÛ6åó3/ü«ð Ä>mk¾nËLTj¿ø cÛT¸ozÌijÐû§³pH'~STì=éôÁ nß‹Ï5dŽ]%:¿2Šõ-5Ç¥ó+ùxÆ2NÞ4ñÎb"ÞYÁ§/¯fà—}<0‰ZŒ[;…ªR.§ŽïÅ­í‹XÛ2ed~ÒV¥çˆÑ<_Óù|¹~z"NÄ"ɘCØÐùŒg3v­'`‰¹%ñüE2ý™ûÒsÌVd*óÂð±T˹Äû/ud •zåÁÍî‘_úÓ<ã &EáýþËè° /•kË«ÇÅÓJ­{ÒÜÞ› 5ë‘Öl2ï¿ð.:§ú¼Ö¤;C?ýŒ´ñ_óÁ ©ä †°WYð™7¾~nVYp§Äò ÉWNs:!‰jƒZᨔ ù»ãI0…¯_šMª9œÁ³¦Ó2ÐÍùy ·‚l½™ÚãÖñm{‹×h4·­|í=ëÙÂÄαà»UœºÌ¾QÉ8ü\ Ï’îØåEÜi\ðõÁª‡9£"à_³/ƒFdòQž|ù½:±ât2.ŽZ«üsÆÛÇ{ € ~~‚Åé¦u÷¤·ÖtókÇ‹íÅ;Лrõ»ÑÄSÀLIšv-˱)Ÿ1fB[kQÏ\Ž>ßO iÄW¼±âz¥+ÓwÔ‡ÔüüËÜ {W¼ü| )J c?ú´šNP¥p‚Ëv ½»iªˆ«“pƯtöîö÷×]µ¶d/¦bõÄ=”ëàE Opq‘p×:XÇ×O/7œD‹Ì÷qÅ^£¢Pak'òaï¼ð8¹`öÊŠ€BÆÍkœÜëɇVSêv¸__*¶cPò—l9ÿª×eÌÿÆóÖó]é¡Ñ€] Êtx‡Y£ks}ÿfvïu¢Ç¹²h-×\«Ò}`Û¾X‹ø|GÚ4(³ÍÄÿ›˜Òë¥K«i¾%ñJJÌ7s常‘ðÞ\[·G’‹¿SÆÁNä¯û‰Ï2Ò°QCì´vØ¡à`§AoR(í®Eó „ lŒ—ébg[eÿr ¹ØÛÙ£ÑhlƒñC’$$IÂÑÑÑ66Ø`ƒ 6 ¤¤¤°uÇ~¼Ð€˜˜\½vÖ-›b”$|VÍÃnîlÈÉÉסÅÀR¸Ìý˜$ ”-ý”Oª¨>¡°Ï ³d&))‰R¥à1Zõ³ v®ü9™mi!´êÛŸŠ.ö4ÓÍ#¬œ7÷×gÓ¥dAw ؾp½pïwwŽ¢ŠŠxojÕǵ€ûÕB®±´wçÿ­wª·_›÷\õ>Ï»ûÚ»¡<6M™L&RRR |dZxrÚ~¸1/èµH6ùw¶­ÓéÐjµ¸»»ézÒžfega4ññöyb~¡p¿ÔhÆ;ŒF#:Ž€€€Çà$zå÷¢( ñññ=D ECIÛ¿˜ØJ‡”~ÌYzòuø$ï©×ëÉÉÉÁ××—§“>…ôÌLg\£V3êJE¦ök„Ÿë“ÛZðööÆÞÞ¾föÎ1~ðÈ>ÙØ«¨ÄÅÅrßöÿ)wÝyûÐèÃÑtQkQ<¾oܸA@@Àc؉'H†[üõÉ+dŽÜÄËa…5©ZS|ׇí9Óû/Þ¬ãðˆmÔt‘Çáyº‰ð˜”Y˜N"©Ì¿ÿ½Oʦ½‚?+¬¯ ÂCÍç½­>¦OžØôIæºp^Søè«©o? ]5·-@"›rH×%‘ƒ Îñ‡ùõt6•=G× Ã!ÈŠZÌÛßæòúWðwñ'ÄËáž¾>ŒœÉûĨ‹æÜÅ(öÌßKµiShçVÐÛ?îžòÑçâÑÆûa¸÷?¡=úX<ºœ´žäú‚®kØ5¶7JºÜ¿ùGÑyr: ´4Å÷fgwÏ=‚  ªª%-¼ò†(ŒßÍFIK»g]:&¦X;ëþsÀ‚FD#Z&G–•»ÒhìTIáß*Ÿj0ËtnÓ )Êm¹ãApÑ +Ø`ƒ 6Ø`ƒ 6Ø`Ã#múžX‡~êçF {Âã?Yä8}¼~Þ‹Tt™U¨@°Ë£>ÍDF®¾Ô/Y¸QèÎ-ìl½í•¿ÍØ/C IDAT'BÁt <$eMAê}©Nå®ÂbÖ~ …\/êD¾÷½ 3›<6M=Ô[á)ÑöÃмðPGŠb- Oåðñ“·Yp¿_ˆEØWAjÌ„"+ቇ\xJóS´íÜo–ž|=-2Ï®aæÂœK1›1nn]|\‹ð ýc¼ÃÃð.á)ÓǃW»ð„O ÿo14ó>,}?Í>Ú=*qdd£MØãÐÝEâS_¥M-íc¸ö„"âÂÑP+j™ÿ{…"[I…·' v“}…]‘±¨‚ˆ½SµÝžöâ>Ç¡Šúh  6Ø`ƒ ÅT/xU ''ç™{mY–Q•\Cn~=§§3¾ÎÔØ Q‘0ésÈy$9*àÒ>0ëõäÂÃo–áŽøÞû^/Ünœzx#Þ}/Qf£R°ÓV-”6ÕG¸¶ðöŸ”Þ%³EUž>í÷´(`6›‘™œÜÜ'ç%EÖ1“Ñ„$IÅk޳Ʉ¬ÈÅŽvUAUÕbKÓÅŠ¾a¾F#²ü4ç[ŵÎP¾hðZþ'’1CÈdACn.’$={ãÅ“¦­ò¶¸éM‚h‰dÊÉÍAž²¡K¨Á˳kc~dPÃèÿsy¤\9¶ÒZ6ØP<á]_­gPÞ²•Mz½ Ø™¯–tµnØ èõ9â—R=¾em/‹Ì4åêÉɱ5ÿŸìD¨ýþB–b~&mÅ ÿ°   ;!‚å_Ïæ°GO>œ0œ/'EDì…ˬxg òRY-¶2ªO²D ‚„.f3ÇýLj½†”Ò¤‘%¹Ö`ƒ{Õ!еˆÓ+:¢öD_Ý•À O ó%ªJ2Q;b(Ѳ.vf²nžåÀ#.µŸap¸Èâ1ß¾r)/?i[WX:æ[ü-`Hù¢öÒžeÁÛ³¨¼n ýJþÿùÜøìݲ‡è,#×\B «D°—†ÒÝÊQ«´bQŸ7Åsä—ß™s=Dìµåk¤)– §³(Ù¸ >…¢Ï&zÿEÔ • õu–DÜl°Á€ìììg®ÏŠª ¨ ÙYÙ¨OÛˆ¨ÏzªZ´e;s?'¯·å¹ë{á®Ë q?@),.ù¾PïãÌÍR¾»%õ¶ÛîïܽÿœªOL;ª¢þ3´SÌa2›%¥˜¥¢’$ EUÈÊÌ*^|GQPd¥ØÑŽjýWÜÆ+_Æde=“ëC–edY~Êãª'ó)´*ª¢’““ƒ(>»†bKÓÅPoRQÑëõÿ@VÈ~‚iÉÖÛônl(ö{Ã'ãÜ)‡|Fuž²0y€ô_¬¨`’e$ICpƒÎ´i|ƒÐ æT,í‰lVÑØ‹h{ìí\Ð*&YµùŸùÛUEQ­)ØDEq"(¸+¯ý4ŽÚ@ú±…|4i ÿóòft—2 À{UEQA¼#DRAV@Ä;#'UU¸-­Š&Œ.£Fæ}U åJQ@/°üãß©·{.vNø×îÁ[µUFR4hïÚ ©ª‚¢ˆT6EQþ}È ˆÈ²Š¢(¢h5¾‰ˆ¢ˆ£è‚jþ¸Zï@ïÚ¨ –’Ù–”éͰƒ½ ö‚Ь(wÞ+Š'bÉkSÑX ½Éª`ý;G‚*hpÄÅœÔ/ûc¾…>dKúvUµüö¬Ù15û‰,0Ó¨Ox¥¡W> ÞÃ°î –­‰âiƒTUAA¼s .¯büúí|@€ì“œ¸¥fˆ`ùÄótÚXŸ‚j°¨€Âö‰sP>šÄë¾N(yk2o.òÖõÙw¯AYµÛ`ƒ 67Ù$+Ê“1gUÅÏÏï™{uY–I¼•øTk3þøˆß?NºXáÑy_Zyàø¼°ïžž³· H²DÒ­¤gœvŠiiihµZÜÜÜŠU¿ôz=£o/ïbÕ/“ÙŒ.5µØÑŽŠÊÍ7‹%/‰y&e X"—õz=¾>>ÏdÿðöñÆNk÷Lö?6.ÖFÓ€7nàëëûô#€m°Ál°¡#&6æ?õ¾ÿ ° ä˜-Ž*#Ù&zƒ‰l#ø9Üb×’ÍDŧãÛ¦’fY!WRlà'@žÝHQT̲ ˆI‘‘d#Y 8©xÖéBÿv7ÙwñÛ–¡’ã-"Önçøõ[䨕èújKÂÜEb6,ds´©Úu̓@’“9¶r’DÆšÅûHÒxR±1õkä•A@ÝV»*Øe^aCd•«S;8Ó²þR20ª5è=²‚µm dIFz†¢hu¾K’Œ¬(Ȳ•dÐâ`ŸA®,aÌÎ$Íà‰‹¨"hâ90ÿ,„çpêœ]†Ö#sËl¶]±CëîG¹fèTÎYɸv˜ÝÛ÷s9C!¸n'ZÖ­Œ¿K<»—ná\R:Fµ=ßhM°“îÚÃì¹,Ñ¿œ\ªSÁtœ•3·sÁ˜…þ×5d·hKc—«ìܹƒ‹I„2èÓ.œì½9c¸EîÚÙ¤§õâÍöîœøã$î]Ÿ£’»ŠdŠãðª+ø÷é@is ÇÖ¯æPx‡T¢qëç(çfÆlcž6Ø`ƒ ÅGÙ×h0›¥'nGEýG"FŠŠúÏÌ+úJ j±€ú¿÷hä<à;µË„Gìç“^£Ñ=E@;Å,Úõß„ªªÅ2 :/¥q±/¥¸ö˦ ?­ùæÏðôhãéj¶'˜o[š/løÿ±žùÿ€Q´ïñ´FåÙÚ ÿ3´ñ,Zþ›øûRﲈØ9çpfñ÷lŽHÀ€=YÇpJ–þNP¦Ú~û'o°ïcwTWJøÍ·È2˜¹¼z=çÓ=üðÍ8ºS©ÈÑ[™ºû&NvKz:$s"˦±ú¬G­ˆ ˆh´nžØÀ’yk9“¤ââšÉéµëØ{ì&&!c g2iæVâ *šì£,šü?Nf ùéwAD#šÉŒ?ÁÖyÛ‰ õÌ&Ö-ÙȽ+.ê ö.YÉÖÃI˜Hçø¢Ÿ˜°ì0Y&ûØíL™º¡˜_UE¼A…Ýq6þø ‡S\pÓ¸´w=«ÖD‘¦5s}Ë"Ö®?F’ä†ru s~˜ËÎèL¤ÛÞòo¡‚Am?­'ÆÁ#)×sèL4Çïc{tv‘¬¨5ìõ¾÷ò€gE«E,c”"ž­§©Û>.”'–yêSÐ%ÔûжúIJA}Ⱦõ¼9Q¬]}‚4U}DÉÇ¿J!¦[‡YDTj9|þ*ÕóÊ.ËÇX¸a7'ÜB 7yã’rˆµ››3¼F }ÏKÙ{&‚ù_üˆö³·è88†¸è+´܃ZÀè‹‹£×¢âɺzƒ‹×»Óepgêü~©×p^jè‹p{“Å ‚{'´HS®›âÎÐߢ¾' ›0ȶÓ_6Ø`ƒ ÅJõ(¾Šmâf>š±ÁÑ™Ê=ße@ 'rRO²râBNjKQ»EwžïT{Ì\Û±š5›#ˆUª3àÝ¾Ô pEàûf/f× FUE%„îï§ga:R&—öldõ†c¤ªàÛ¨ŸkD s.ÇæÿÆÆK1dª1±aw”]¸ÉÎ¥IÔï_ WŒ$D,ãÛ¥'ñ¬PŸŽ=^ ~ UPFïfÓq ýê‡rô·_Øxõ&ÙBSޘ؀ŒãÌ›²œËŠˆ½³õ½K×ëcÒ®sòèn}Ûã³{ë6Ÿ"Mÿ–/2¨mu¼Ò‰˜ùÛÓ1)*šf¯óùs¥ Üõ˜2¯qÕ­ïkýFŸÈ­’ÒƒîuJÞu’ØZò…L¯&¬m|íÌQ,ž¼’«Šˆƒ[ú½ÝƒPî®Í"‘xb.ßΡ"u§iEo´äp|Þ<6Gß$“F ÿº+¥[lüô{ö+ö¸{·gäÛqG!+ñ8«¦,æ”¶4 Úv§W»pì1qyã þÜ}”xµ6ßïMM_gD2ØûílKÏF±kŨ/:Pò±v˜\}™2kàçdgy³;hû=Ô°'óÚN~ûi3ñZOÊ×ï@ßÞõ)A6Wvn`Ãö“$¢b6– ùà×éVÕžßýÀ–ätLB3ÆLè‚ÏÏI:ÊòÉpRLƒ¶=x¾}4ñ‡YºvÇc Øi@£u€½tš¹[.c°˜ìœ=qmØ—÷šç²j⎙dÅ¿2è9ä9Â#BLÖfîÔUD£ÁÁÝŸÆGÑ!HA}€U3W¥)C‹=éÜ8;5½‹W²ûÜMô’LHÑ ktOùGÝ r Û¬åЕ[AP‘¥Rtyo$M}Dˆû‹ñ?@Ô (.>Tèð==nr Ö‡ömÊ`òMìŽÁ©tj–õF„‚çù‰ìѬœ²„“i9ȪHžïñ’Ë.¾ÜÀÕ±|u$ÉbIšôîGdž¥q&“csç³ñJ9Š‚Ðä5&v-Â-6}2ƒ=²—íý^sÜïŠ_PH8º‘•˶sU­D÷a}iQÞ ‘ Ï™Ëæÿcï¼Ã«ª–þÿÙûôôÞ{%¤J Iè½7E,(vÅÞ *öŠ€€ˆØ@Dé½w½ $!ÞËi{ïßçBÑ÷^¯÷§¾/ó<‹çá융יµÖ̬ùÎÌ*(¥IRPuºÉý#Áx™¯ÿÈYÔ8z¶ãŽIC ÅLù‰õÌ™µ–µñÙ6 W@°œá繿°óx¾]îe|ïÜ„SÌÿàŽÔ™‘Q?ö%n»¼¾ÌTÚÀ‚ÄŒ¼®H¥Øu†&çÒ’ünhg ùî3}oï€ÇŸqiÓ ÿZGÒàdÜU c¾´ƒ9_mGêy?¥º–Š\6®[MmĆuðû‹³eŒe‡X±±œÎ÷'âC9‡Ïæëmè5¶ë åLîÔš†m«X¶÷ µr ¹—ìP'TT³ñíY_gBÑtaâk½1¸úàë^ÎéU+‰Öƒ0Íoé®|ÖÎ[JNþ%ªëböÌpÚ{;Ý`®dÌ GYöárª2Iô÷ÆQóßÒ§åÚ}š:Çh²’YõË9|Ú´¡M¸û6OR)ûwìá­;­#þH_MäíßÅÁÒ ô‰FsC=_MÎ'?rBN\;žÿÓšþß’³þÏ£ÿ“?öĺZ¼Ú¨A6ʨÃSˆS©…›ËñÏ;Ð(ÍeÃlæ€}EQ!RCq‚QñÆC[GÙŸè”dÚ$ÅÝu<ÏŒFÑŸ7ŒSΛôËÎh ¦˜rc É^`1š1š$ddÙ7'wt6g’"€ Øâì¬/R³âp²JXD7¼ë©­–05˜°"anéÊÜ›ÍNèÝýqd´„ÅhÐk›°˜¬’mcüL ²“ѪFêì‘_Ê_×l"µEF„ïJ‹9A±Å§)²Œ\/!;Çâ#€¬¸ù{à[KCi#MN„x£pkEœƒ:¥El›r¥,œ"+Hµ&d} âiÕ&›¾napj+Z…ºb°æ²ýÀ:ŽZ¼ð ŠÆÉTIµFBz2‰ ­ˆíñÏ ¿*·ø¯æå¿Ï{¥¹~í_£öìƒ!¾Z,f#õ›™ùÎ^\ÓSi“˜DD€`ª£º\…£K~Z°˜Ì-@]uJ(­Ó’IJŒ#¦Ç<7 •FD±¨‰îw7÷ŒœlÃV>_{Á*aU,€¥”ƒ¿®bóž:BR³HIðÇÃE‚ ‹,c66ÒhRP‘%›\TPÔj´(È*‚RGñt_?vO†—>ýžÃUZ4Â?kÎn¶›íf»Ùþ7·æ¸ï¿ãýì…+yòñ͸fg’Þ¡ÑÞZ0–qhÍ4 CûÒ9ÎÀéKX”×@ý±ù¬Î9‹Sr_úE–0wþ:TX€rr~<ƒ.1…éi¤§Çã«ûwÖœ§¨¤KD7zöŒÅºu·—Ppp*[«ôDwèA²°–×>‚Õ^¸dã<ðÈóLÛ–oË^‘ê¹°þ{Þš{è>ÝHOˆÆÇ±¦[Jd‡x82“-µ®´JíN‚´’WµÍÆéUìsÊ$;³ ‘v¾=—Sö#*š5’ÂÍ^ªBÝ•î½"©]¾Œ 9eP´šmR­RÒHÏj¼æ¶—]“›bªåèâ׸çÉY|¼sÑvދتé^ùü´~ §*MÜ(ë·rÇ4žzö¦m=‡©¥¤±Œ]‹^cÞÖBÎ/¾&“Çv˜7ŸZÊGo?Ë[ ÷Pj–¨#göÊÃÛ‘Ú¾ ±äðîÜ£˜¯)?m,ÞÍžƒ[‘[õ!Ó÷‹7nàh5ÔúŒÍ5ŽD·ïB‚¼Š×>‚œ_ý»œ2Éè„KÉ|ÞÜV¦b®ŸÅ¥ðþt‰Vq$g)KóA>ÿ ÛÎ]À=¥iÎùbÙNJMP¶ýU6+1´KÏ"²ñg^Xqî*ÍÇñö+xù‡]”˜%7¯YÛ1Þ"Öš3l]¸±}Oz´ñ¥òÄfæm.ŒœÛv†JɇÄì,²:¶%*@äð¢—Ø` £MZ6Y.»yö«Ý×e@5Uaís¸޾ɮäXÍ7ËQ܈Iè@ÇŒ4:véC¤i=»Obq¦}û4ÒÓÓHÏì‚gÑÏl:cA6q`eþ];‘™ÞäÖ!¸ü!¡ Ÿ^ÃA×l:gµ#6 .äxy>‡¶ÿDut:‡7±mÇ 6\T $‡£ Nø%v¢k¯` ¦ÏcÃÙºÿü:S>[w•á•HjFiié¤g$âo©Þ3ƒ‰Ïì«K™¤D„bÞþ+;ŠN³÷ÀEš‹å[Ë9šs”Ü"ׯç?Ç'Q¦7çqÎ1†viéØÑ‘½«N!º… Ùû +ÊmàÉ¡µŸ“ƒ;ÖëYöÃq\R»Ó½K4¦Ê2.ž­úÓ<$¾Ñ´Oö¥òô9 ÊdäK«xõË}¨ÃIKïHfg¼4™9µˆu'Y»>c³€0R^pœÝ{Np6?Ÿ‚_ÚuéB÷4wNý´’ ‡Šÿ­ìV¹±œœùÏrç¤OXzº¢yŒRáNæ~ø>_ƉjSóç û¾æ¹gžàíeG¨±ºN-}‘}]Én ùóùpoPÍ‘…?ðåªZ÷îFZ«P< ½vD :ú7÷Õß2„Kt" "‚¨ÏßÉ*9ÍÒMÎŒœxcÆŒ!Õ,ýœPÿ~Ï‚½^‡þŸÀû߀/;Ka¡ŽV]²ÉÌlG´¿+Úß[âר$»¦|ÇÑÊRŽnúšâðþtŽ‚{—²<¯°æ­gÚ;ñäÌuœk°YBéF^š¸UJ{ÒÒÓhÝÂ3j+HHràȺyTDõ§s„™;W°¶H†²}k0à›Ð™®½B¸0srk›eqÁÑBÒ·Åáäjºu¢sV{b|kÙöáB Ê)-8IEX7ºwK'¨ê8÷ R¹Z¶5ø†Ÿ}œ7—¦Úþ,wÙóä¸u%»]+T… xoWù A ©ps>˜ÀÄ©Ë9uYæ.e ±$wÈ #3ËòÙ쬼–±VjŠò8¹ÇDD·Îde´§udÞçXôÞBvU»‘Ò¥3mÃ=ÑýNZÖÉîã‹­…Ùy–ÒÚÓìX±}joz%¸rnÿ&òCœ¨×áß…n½B(šýÎ!w5{4mhŸšAjš#^ŸÎ¾:-î¡ÉtÌH'#3›6Ñ4åýš5kÙ°q;r|?úÇ5±rÅ6Ô^F¹k“&=ÉûkNÒh`i<8ŸIo!¤gÒÛ$ê!Swz{wåá‘Ñ›>­¶®[ÏÆsF(ßÀN“/)YdwNF\ÿ-›K«Ùóõ³ìpêHfz;b¥¼°ðØUU*s—²zã.„„~ôoÕȲ¥kØrÉ¥kÙn $&%‹¬ÎI°æ¶”V°cúTÅf‘™šB¤e7S楶æ ;—íBס==(<¸‘{+@:Ë‚wboƒ'm»t¦m¸Z6ª“hŸ–Azºû_ŸÆ¾†ËŠÊLMÙIÖ¬ÜÅÞåË(PªÈ=r”£g*Ç–¹ÀÆ y(¿þþ»BGÔ 7hZ€;"Ôœ¦€§ IDAT`Íæãœ\¶€sv ¯àôæý¸‹³§J±þe¬ò¯}Tˆ.2–øXo~û>ÇÊjzÝ;ž{ŽÁêødêKϲåÛTÝðÊ¢ÿd+ÜÌÞüWéÿL0Š­ …ˆF‹V­FðõijpûŽu"1ÒãÎ%l¶Xè§ÀÍ[Ÿþs~ßp/*¢Z‹£ ˆ(œ_÷[ŽÕ‘òP&^úœäKœÕõ§× N¸_>ÃËÚ/”ÔêVh¦>Á’ýåtÏŽ%ÜåSVž¼—G[i¯FŠ"sý•o*Ôêsì9\ÊÈ>hÌ»X»%‰ô'ÅŠUÒ`pÍWàè 8:URü8erwüÅbvm1 nï‹«Îv·“åò¯HX„¿ ë;ø{RPTè5h´Øx¦¨QyjQ—o&·a ‘Ž+æ|Q Y­]¨\ÃñC!té†>w«Ê‰.gxŠèœÐë®Ë¢— ÎÆ‹ˆ±|åÍ’:—³;Y95—Ø!Y„F;€Þwóy.:Üǰ!­š…‘Ù’ÿ•ã¿Uñºÿ+—Ñó+ Q’e%s·ñ XÓµ;¿fÊ®dƒ!2µ{vsªª3Ùîö5ïæ»9Ÿ‡q ß1n>°–Í‘=éªÜÝ0˜Ë‘E–PdNN@ívç^À?–q½ùeÓnN7(€«E@kpÁE/>xž¤²^‹V ¡ƒlU$þñtOrÎ÷ÌZ}˜Ý熑ÔAÅ|S‚Þ¤›t“nÒßB/)_uzný*|ƽÌÓ==›e•ù'Ø·:„>_÷¢‹øýRrâPY-‚GCÇtÅŽÝHQÏÚz‚(ÆÐã¶´ûW^j%¥çR\½pe8EÙ TàÕ™!˜·ÛfÿHµõäË#ýÑ×¹½õÕoZNìPã3°‚ýóŒŒëÃð6þ¨Ú²äãS”ŽÇ'j$OÅGîÖ†ÃÔ­ü’Üú;‰u5SVTJå)/oog@ÝÜpÆ‚ãžW9ZSB•¡#·ÜD¨ @!çߨG­ã5‘Ôj=qYt+ÜÃYY@…ĩݨjL¡ÿ=] ¬9:ý<—Jiíz–ï§lÂ{äºD9£ áVËœ­Íî©‘S›æ²KÛ“F ZÊÙõãJÎ;'Ñ£_^‚‚Ê7‰iç9R¤³¨Ó; Ÿñ }õ@B?½y’†;ã[d¹9¿?ŸÒò$ú=ÕÐ:-§¦çR^~œÂo›ðÙ“!íѤ±ôã3T ×±ú3?÷§¯Ê|óybåŠÃtÙNß/{ÒÆŽeÞjJNæ°« ų#CFeãYÖÀÖŠ©0žbßç ­ßÂ@-Dç±dú1êúEüÛ™_*ÿ¶ôË<Ï‘"" â ×¶LUa%ò¬t|ª©Ôá¸`ëNBç0Å—än=Öûr6w>³çAÜGƒæ}E–wÝÉùqi$^qÍP[RÈ™œúÍëE2¥hg-bÿÆԴɦ]§ ûž(fîOé Ú ¯V‘ôiuÙ8?›Ÿ·cÜ[áX­E¸¸¥1¢g_ü¯q~ÿ› ê˜Q<I˜Œe{ùnÇ7ì<ì ‡céÿ^OZ›|©˜µ Ç ¡k:CG9ãåªGC#Ò¢‰ä×™gTÿÉ™J‘Q<éwÛHbZ>¨cí¢mxŒ|›‰ý‚šÏ yûØwö(jM §•  Ö¨Q‹¶] ¾jžÿ,*aÿj…vËn¥» @7Z›À×û†EóÚŒýdŒ)fÕºHnY˜ŽzÍT7$qÏÈ>¸*«P‰ÒX\ƒãI –ÙwòÎ…¬ûlæ¨ÑŒ™Š·Ћ$ÓÛ¼ðón†=¤E¯S_•›%ªÔhÕ*Ð{Ú†½âK·ÿHÕ… ŒÉ~ÿrv« s"4©3Ý.짤ÅZ<"ÉLKeo~ÓUó  É`HÖ%Î,Ö"  ÈÇX?Ã.KûÑ]0rÆýïmÌ¥)Òƒ‹Õutì)†^+¿ÿêS¤ˆ(Éùž÷?\Ì1šž£ïâö~Qè(fíô™ü²#—FQD1ˆgïO”³î¯·\OѹóÔ œ9åˆ1OáxtyèîͲ²|â R̹»î`fôÝ|:ÉÀÔ¾à¸à€oè­¼ðj7Üþ46Qzhó—»pÛ ñ¦‘s›wsªÈƒn£CÈ™;ïÖ¥JdèóÏqkTsæKDéfòõšöLxÝ T¥ü:ån6žTãîŸÅCoßIì?*[IA‘݉jßÛ{¥þKÎ^ᛤ~ÍTöœGÞA¿©=I¶„`œ»† ‡‹ <•WÝÒÛ²¯À–M$Ö¯Æù–yr@hó¾´qMÆØ”Ç™íødçèîhúÒ“xS5s6qáh!ôHcðHG<\ hiBùu"…µF¬Š j!Ÿ=¿ú“4^‡X{E·4ï介9mAvÚpîïí‡àû9—0_3]šà4eqªLkßqÖNs¥ÓÒ~ôÍœ÷(bòúÓîÈ™ KXÒ•Þ÷÷!L‚G4ÙéíÙ›oBì6‘K6£ï ÜÅ~œ{c?µÎ`½°ŽÏ>;G§Wˆîʨ}›m‹ºÝ ¨ Œeì­Cˆ×ýþÜT­“Ù5=¸½¿n”¨¯*£¸TK§§z“LL³~æô©|¤”ö ¸µîv²tU5˜¢ñØCá„9¤PóÍsä6A»Ø® µÙ&ÅÛœ9Þˆ›DÙÉ$=Ú‹PÂ(˜´’âÓ%4†¸ÐRËèóšUFÁ ›üW¬ ¹{wÓêá)<œ¦m¶OÎì½HìGï½ #ŒÓo®£úB rZßîG°« (¦pÊAϲoŽ™kÒGæ [îßEáˆxÂ[èïÂeÔ›Û2ø®^BÞ„ÕŸ.œžÎ𱄸 @ù“÷SïXOÉöBbÀ@ȧjXöé J»pé’ŠNOõ¡ åÈ_Ïçè¹JÊ4‡iç®[Ѫ¥¢ À#FîЖšožáT´s´¯r‘±m4œböŽž¼ÐQJ­F¥Ö£¥„5S§ñË®\j¬¡Œ|ýyG«Ù9ýGòÏ×òèÝ«H4§ROÆÝŸ†rv3s¾6qÛ}О=ÎáÕ$ íÀų™ñÝfŠiÃíÏÜÇÀ¤ræÿØ€4£¹÷yOج¡`>ã_;Ëð‡¢ð É sÀ~9“ÎqöÐ*Ô1}ñÔilÕZ¦ÍeÃÉZ9¡O>ɈV™û“•Í~ØTO“UþdH„Dþ²7xn~Z•¯ˆî<ôòH"hâüö|>u ¥Z5‚O*£î¾ƒ>q5,ù`ËåSg c컯Ò×%‡©ßkHvÊWë»ò̬1Šd¡ ЊN„¥ô", ‰}Åg(vtÅ«áÖ ŒÐ~}à –SìüZKÛ¹Cì-B7…•ý¶“wG[¦àv ¹V±¡Å~¶Íš a™)D­s¢Û,"ÅýÌœ-ç0“¹ëMH¢ž¡/~Á@ß=Lp:{ëU<õp!í;ä¶Äó|1ù' Ähz޹—q}Ô¬]~sùJ¶ìÑÓãþ3âxaëN™èóÂÇøüô8_Ÿ30âÅÏèçßȉ_&óúâ hUŽ„$öç¡IÐÞÍžUóØY³„cy]ñÓÇÓ³‡7~nùÌýsÖŸ»H½xñë;‰­ÜÊ'ßëHq›Ê̵*œ¼õüd:9\bÛðÙúR´‚+É}Æòàm^6p[Тá, §¬DÝk½ÛúýNU–"=÷kÌ=¸ãÑ®4œåÔy¨®Ð‘wð%·°ý„@úíÏs߀öNžÍžÚSä<:Н#ïdê Þ|3á ™t.Cyíãø `psÁÅå(SîZߨ <Þ;èwO¶ÏËY2ñ%ךPèñäWŒØÄÎä´èNXüm<ýTÖ?¸jÇMø¿þ**­™Ó«~`ÅÆ¥u¶àŸùÃïLáé™O°m¦DXÿ4|”&,’ò·v˜ýÈ~•)Šp¹êàåºÚ þÂó#â&‹øÆ¦3hÂ}¤Gi±(¡ }bgÞ™Î=ƒ>A­¶ÒØq"ßwÉgüG«1IrUknï‚Ú¥ ·>‘Ňãú3,@gx;Æ>=ƒÔ„±Ñ«b3hÌ ÍVddu0ngfq÷í¥Xj ºókº¸¦Dbã_âÍ;ƳfÔ£<!ÑTß@“Õ‰ì>}ÉÍÿ†Wû•ŠÐ¬Û¹#+riªo@²ÈvÀØŠIªÇ,)(Šð—WZTZ à—ù¯ aV1uü­,ÐZÚßû“:tcÄmÇødðpf:©ð ïÄð†Œ¿þ©ì˜>Q}?%®_*®’¬ #c5cÖ÷°H/ ˆjïþˆç:wâÎðÆ¨¬ Ðbv‹¦ó¨Çx¼k,ÑÚÅ̯®$Î#špŒYnůàÕ7_æ¶ŸdDÁйÓÓüð ™&0ÉüË±Û `YQìÙ½×>—0×7`²HÈŠ}`Ũ4`–A…>&ö“vûB\\ýˆpw¤É¬¦Ã€þd]˜ÍŒáƒøÀY¢Õ §¸dgî|u /¿ù£–E+æì§ø~Œ•Ícnå =È¢„ÔêA¦õG,-ÅIó1Þ]Ç]ãF“‘¨çãYw3xS >%åD§X°KrV)ïNÉÂì§ùöÑ,†IaèÓ·²ÍU€„HbMXLMä-ý€‡gíÇ ;Ü›žIZ$‹õf ý›t“nÒMú›©&åo'˜Ï°fá~6ãÀ,+*'OF¿óåzjpP9 ÷¤´à<ù˜0K*ûÁ¥ ™Ñ¿W݈äÕ¼2|;QE›‰³x!ówŽZWÜš;œ’¼ñðÕSÒ莣Ves „$‘rr3ùŠŒ?*‚ÛÓ+ë,‹·ÛxX_³ŸÕóV“³î,‹-feüCwÐÚÔbƒ=¼µTUy⬰ªðdRŽmå¼¢àãiwh)XªÎsÒ¹½]s)y8–ÉÝèÁíräwǤü}\pðÂF¶}4i;#óõótwhyjTZ¾¦ê"ò\“èëÒÈþ:[yM¡’Ž¢‹%T«:àß\¾ø$ûTñt÷Ó¡þO±µ§’%Á½E®Ú 'Ž"}Œ ]8¹joNOæ«Úüƒœ¦"*U>뿟Á‚-„uÇãw $ú÷ÊÄ_e“äsÚ¥-C]ëØQk×§‚T.Ô](¡’h<œˆíØ–È5'e¸Èæå‡Øf|šýó@µ g#CÉHÃÙ}¬mÕž÷¤zr|ízÀ“ÙÀù¢bªTiø]¥ZÓÙ_FέçÛ˜,–ªlã´é+M5—8ïšÂ@wÐáGÍÁù¼òþjÄì{¸çžŒë®KÐxÅ’Ú)ï¥5Ø.¡«¤ª<”˕߃bˆ8™G Tž=Ä®>¤Þׇ0@tô%*½=1ë#Êv™ãA8ulzça¦å$qï¯ÐE#c®ÎeÛ¦½Dšm°(–q(g6·Ü2‡àÄ~<0i4úGØòýn/›hl$sÂç<Ø9‡kR+6¿ÇŒ†Á¼ø@Îy?±hƒá¡©têy’YýóšÁ˜ŽC¹}X*AÀ·™‡§9 ¶¢£Ÿ•‡¯g@ã ö;¦ó°Ï•wXªòس÷”ÎÏÓβ‰Õ5—³übhµŒCMUÔ+в¢«Ö7ž¬N§ùf…­¦ƒÕr€ßmgÓÚ»Ù¢˜p‹jϸž%­g*Ê¿çƒC¸¨õ ©ßôk‚¨Ö™Ø3}Ÿ®ñaÄçOÓÓé »ŠÚàvdLãL#„7.VL4Ö{ÙÇØŠQK9ÒPI®-!º&v~6‘Ï6…0jÖ³twt£ñã;™9b#´:Ü<ýäX¢°ö?ÁWýóºÁèô¡Œ{Ô¼oæ°yá>–,ýÁØHÖÓx0+ƒkÄÚx‚}é<ÔrÉ ïÖtè`¢vÃ'‹‡^Ñ;³uN5Þy`ò8<Êw2ká&âíAë®øî«gÔC݈ð+aîm9äßßÃÞùä™Û²«Ú6\ ¯ÀˆÃ®¹¬Y~”{&W´¯¶n&ÚÅ“ü埲?m,#Ç·'Îq¢J‡kÓ&^»ï§Œ%^³ŸeŽ´êžÍ™÷°ëI'Ž•¦Ñ3Í‘Ê3‚G<ýÆN ÓªÃùì ^Ûw”Ž&N/üŒ3Ã&rÇ}ÞŽÎfÒ¬utz«>©cy1VFkªåü L]›ÏÛ™?g/c^f¼×!æ/)¦ºö8??‹9º/ Ƶ|3æm$eL-ø’ª‰oððƒ¾ ÿ¦%Õtn=»JÎãÕåyƤW°âí/ytö›ÔˆÞt÷­\jY]aF¾nâ”A—ÐÕäÖ@dóý„¶óEÙ5û¹ù‘ÙŠ$Y1›%°Vqlþ\¸ûyÆ?èˆê𞙹‘ì7’è2¦ 9kÜ?!ÎïcÁ‡»ó·š7±ðøjV…¤P½uÛuôÓŽþGYûÒüîÃËyæ©·ýð<à9—gn%ûµlB²Çñb284³ÿà>fn.çåö1D&g!êÚ0ªŽŸæž§Ìâɺɱ_7˜ÑGcÝø9Ï}×–E].rà‡¯0>ÿ“i lïO|úõ>Ò'¥Øû~^ÉRáXyœ%ÇO±l¯½FDD ”C¶£ïM·?nTüäÀ´a¼½#‰?Ícî~Ä…©Ø¿ü 'r¡bëöè{Ï+¼Þn)ïo߯–øát”Að¹@:ßÞ™¨H‘¥÷½@aÖë<œ«f1iIó…¢Òz‘Ð{ã}ŽpäЗŒ¾_ÃÇŸäÖV†Z²ö~þ09­åþözDÀËï0sxÓÀ÷˜RĞ͋™²µof{Ýô÷Ü€[ا‚ŒdðLÊýŸu¡QpÅÇÇ ÇÀq<ÔŸ&£½¯?†Ž· R¡Ü¬ýÃ`6ðñJN¤$iðïϳ3ÛS‚,«pp÷ÁßßlÆjpŒîËC¯&SQoBQ$—T®Ñ<ùL;Ñ“wVÉÐöwóÜ=¨@£wÂÇ BÛw,㻨p-˜,>tîI,¸QˆÅ¬&0s4CG9¢V$Žœla¿éq¬oÂxåî ,+Š d,+z—¡<ñÑhbªÎ°}I+æî#ävXöoÁ50žà @.*Ö+UeÐãPׄñ*»`?³\G›>"h*¹HEñ1»=ÐbœulÕ^™ôб¤èIù¯ 9ÇŠ—f þð9zú\]RYÂl•íY‚häd;ˆ£3š±˜šhÔ¤ñô7Q¨}ÜÑWÆ&[%{.«‚©1—5_ÍgAÙF¶ºËÔ×ÕQgHïûù‹t“ô¸‰-~—Åj „SDÊ6|Jí )¼”ÏO/½ÆÇîf`ŒßUG}AÀ+€­ÑŠd‘QD ©9¨Q¡ÎˆQA¶^á¤V‹¾ÎˆI¹¼vÔhdš,XEP7—FÓbh2c²*b‹ŠA¢‡†Fšþèrn~n°¶—1㉟‰ý¶ %'ÖðØ§ iœÏŒ_7²ûÂ`Úy{Ññ§ˆÞŽçøõåŸù5ò>FOíÌ»Oâ;£ E–Šž¿j]ëñ‹Ê¤ÿ-Gy¥KšÜÔ˜+ÝHu}T—Ç’Ë‚¹’Æ·#ȳE½¤†í|9#†ÛV'¢T®yf^4u‚‘â“ÛÙüîlb?¿‡xÕßá’qß<½”Ï_!¤h-9-æFkUPL–Yå,yè[œzßO¼¯óža+Y0ºu`ô]YÄ8£’dd¼Œ+¨ŠŒ'⺿·þkî!ȱý#ï2¥ÜŠ˜·Œaƒß@5|2?Ý‘€ÊÁ—^·ögçO!<Ðßv3¥[L÷|ô-·ç±ò›ûèT—Âkï¡k¸ÃŸ;(A@01:¹á¨W]ã’ÓáØÔt¥ôóuø“}Ó1Vô%K¾uDôhà;F3,3͘G«Uæº[V+’|ƒr‡V©Åg"ªf]" ª5èêk©iôÄ't}§ !²òKçaÍÊpF‰Åñ¯T‰‚–F*ŠMT… bB¿<%…ÜwVpaÕZòêÂIìÚƒ>Ù‘h%ø-*@õ—ëqQ «["mÛv§[ûXtqÙ„oËÇÒ¤Ç;1g§’ÒS ©ø…Ù à‰;’ˆÆŒé0[fm ¨ûhÿ¤ñ¸ú†‘Ð&¹;ªè—XZ„.C¸4û{¾]|V¸¡·VPx© ñ:`êÎÐî™dèàÒné@×Ì"‘²î½}<Ðæz™ñ·%gâúÝËä6#°:\dó´MlXˆÇ¨¶xþßµÙ$ÉŸ¾ExÓF¶7Û j´Fó•«,V$EA±ë¼ŠKmùîHÚ:ë/.å½GçÒfñDœÞ·šv}Æ£³,ƒfÐGFŒæ«ôÀÒG¿ÃÐu ~.¨€“k¾'eÀ¯W/Yv3﹤|ô®èUp‹îɃo‡±cÁÖ/ÐÐgt*¾ÿƒ|[ÈA­AWÛ@=.¤Ü2‘7û«ñP_-û¥ëJ :rûËL~†åÏjêót‹Å'? ÁÕÙ&+ý‡óÊ7ÙµÕ^¶Ýs ¯ ¦CßÚo_Å>÷¶GÞA×P·ÎùֳŹ›ÉùJÀd¬§Zòç‘·.2$ôqO|Ê࢙LÛ²•#%½Iô0Ømª VLümÖ$¶ìï4_Žø‰¸·>&ú ÌFéñ½ì8ЖÛ&¶"¹F"ïÔLî>‹³ŠÆK~ {«ÿ A",R oVK/ùðâëJÉݾ¥ïíÄo‚Ä¥úJ²žÿ—lq6T IDATíS˜~$‡®½2ˆpÒâ†<Å}ϰìŬ{g|˜Äsý0U/€¢ÁA×…®Rmî´Ô…Âé³x°ût,.*/ú3âÝ!ö²í:†?Ëä¶>7ø"¡>¡iäǼwŠï^~‡ŸNÜÏ€€Z Ïí$òñO\<‡i¶r°$‰à*Úõ{ô!mñ­\ϧS~f{ät rµóñ 3‡Í'ö­‰¹VU ZBc[³/Ÿm+sðvÔ¡®/'/o= 6ŸE˜ï‚ÎZFaq )wugHDÎÎ ´éÐ@蜵š3%ZBÊÜép‹;GW$¡Uu®˜. hû3¬[4ÎÆ®lyr''"¨ Ȧk·NtjíX}mîGŒÞ“ÇgN¢S°;ÖÓ9È¢3žñx™ncòÇwÏ$ü.¬¤TÑ ÇBîêoùò×4ÊÕ¹ãbF–Àî ì‘IFü;â·¥à¡:ÍW§’«0Z4øõŒç„ÞŠ5QýbqW jŸ‡ÚRróÖ±xÑETîŽh¬¥\(ΤLjd„Ð> ì•J²£Í7ZwC9TÉ¡MùTZÚ3 Ý•úœ9øÄ2æ;(šþ_<Áؽ˜0#ƒgïʬ(‚ˆRß—\A©l HxÒæFûùºƒ¡A=éÛ#ƒTo5øœÀ÷µR,x‘Šë^ORcZs¡x5x¼…~>¿ý~íHOèN÷Œ ´ §ý“HÏL'E(Áoy)iÙí‰ ;÷”,€«é03›E¾êdWZè½ðò CòH¦UTžŽh*rÙR“L÷qèçœÍ7wlà`'?4Ô» qj™jÍ)|[ŠŒˆ¹h+¿¸™RU£=\pV‰8ÊfdÚñØì÷ܽq®—ÿŸ| ž™ÍÔ*\½ÝmAÃRˆ*T¢‚ìA\j=Scp6es©NÄ5.7…Öí3HÔ¬ákkoî“J²âôûYøìjκHÔ:/¢Ò»–Òž®]÷óã¼x#¶/iÇuqJ ÛøùHÃßéH7ÛÉ@*šÏÍ`žO8¡jŽñé[(Ά7é¢ÿ;°¬ H sö%ÀÕßæd,8êb+_¡(àæ²ŒrÄøOío®¢PëÜlå~剢 ËV»ñ¥`UtxEà%´x®@l+ßfI.ÛçFhÝÚ~`Pe\½Ð»Ù2`eIƒK€‚¢¶9~d+¢sÑ1þDY¶ 8úÆçwå}¾a È’¢ÂÁ3€(¯Àfª¢HȲ°í÷á*xG9¢ÈméÛßvJ\c4>Wí IµÁ‹Èxï<—Pµn„F¸ ”®œÎ.G7Ò´¨d^Qx_Ó—Œ‚¨ó ¼µçÕï´Î>„ºØò˦¿U1àuÅ@·óß'ÊEþß¶Y‡{hÈ-niPì¿×~tx„µ¶Òš3‰e$I@çêK¸»ßUódU x‡E^™×Ëk¸UÜ%¨(X$Q­Ã#0OÁvÿ³‚Ñž] p !Òír_ ²Þ“˜V^Í})‚M¦âL¼çÐû¦Ü¼I7é&ݤ›ô¯‘Œ„‘1±ÄÖ`è°äsŽ_¸dͱ­4Q+X1xáíÄð§ß k½„“´·ß/ X¯A…÷ÐH{F©‰+©0þž&&ý0‡M…þôy¼/¡œe“YÄI´_qÑx‰ü˜z‰Âoœ)D´ú`Z„€µèOœ¤˜vX 5x~‡[¢T€B}}= å¾D_¶šëØ5u:»•díB˜áŠãÒ% "hû ÛÎ=GOŸZvà_B–EeÖ¤ нœwÒ£FOhàm» ¢scÌGß3Ä* ¶–’³i+ûªâÖ-¶EfàÕ‘Û6›Fk˜¶sM¸Áß8±ðãÏÙÔ}2]\Z¬«‚,‹¶ñÉU”zvÓ£¶ˆ¨D±™‡ç£ýé/Z±¢±be”ŠrŠã‚èmµrX¶®ÔS£‘±¸ãžWN#ö¾­e{’`PEê2‚RYLAL(AÊÚ–®YÛ©‹>fë6 ùG2áÞPÜyƒ~»w-ætÒ(b<÷"%|=gÍô­óܧ4È*ôµ«yâ »fIŠú@ÚÞ6‰Ïº5 æë—í¡ØÉ­Ù‰R¶~6'ãâf˺²Ó©_¡xä'ôu´M ¨rÆ?&À[¨æÌ¶­T™€?Š+*{ødØ|B>™Âð@…sy2’¬¶ÏM-•"‚›}Lå,}â}ÎgbTŸXÜþ TK‘‘µîGÇÒ: EE%À‹8j‰_ËÒ›*-‚¢€¨º>‹*»Rþ‹·”‚Ö5”(W dS“¢™:b5îH Eƒ›?jÑ©y>EÞÑxD2>>·É)Ê9Mmx\þD R”d¿óV‘{¡+IÁ®WîEm(!/*˜a²Œ$ª¯€¢€(ª$ &}0i£^䮑*æ½´L*Uâÿ_£HX%ûšCÂRWMyL½K(qÁøø‘•˜ÏÞºó”K±8þňª ËȲ ÑÍÏ^C‡#jjòÎrÌÙOWƒ D·J¯jKŠ‚¢uÃÙQoç·ˆ^TÙÊåJ¶À«UF#&·P»ÿ@FkpÁPUû À$G/Ââ{“±z1ë#Â0Ö'ÒÎËÄ/N œ0š¾ÝÂMˆ®ê·²E+ãîØ¢¸ár¹[£+ 5<0è/!½‹7¡.Þ@85‘{دªÃ(ÙTòoÓe›ä]F†«¹xÈŠ$Ù÷·ROµNAò÷ü 9#aµ¸žÐš8bFýõ[œ¨¼“(m9—Îw—ë)E¾Òg•Aw÷f=°ü©ÉK½…QýZ㮨#÷¨/‰½Z("ëN>»u!¡¿ÍÐÐ+©~ZGüÓHMÜÄâ‹')©NÅ×í÷õ´õ²½€kme1ø7Ü.[QÂïdØ«p ŠÂ•(ÚÆ¾Æ®sÏÓ­½AnöïŠhôîź2Bì9‹.PzÉŸà¨(Z‡„à2œná¯s±¤ÓU°'}§,"Ó¬ È&*N®dÆCÓ$vÂÄÛCqæ)ôú8¼g=çc¦ªdåsq¦Í0FHÀ³¹³\¦õûíkoq{›+¼´ÔTp`×h‡Î¦ €k}z‰£-8pŒ/§ŸÂßÁ€þ_з‚èOlP„à¬4P<ïg~ÙV;»3"0d¼…î‹Ùä>H\p*Þˆ8û…âL(i­_gýÙIôͺƒ·¿€I‘1^XÅ;s=¯³ÉDú?ò2éc­8p”i_œ&À ·ïYç€pœ §CÜd¶æ$°|מ˜M(aLøÈ•_¿x“y†l ªnáÑñ¡¸ðzÃBNî^Åþjü;DÓ:4ÇÐt¢âzÌA®¨9ÃŒ~ï£~å-îjsƒP!ÅŠLémã0í]ÏúüdG4Ræ•ʨ§ï%»C¢Y xø RºâO DÆ×ósÞ1JóÉ‹üý2ÎÄÅ⛇tî"z7w[€’Îg““É„Iç»Ý†C¶ …ÞÂøÄ­¼½ª”ãÝ1+6ßžƒƒ/ú³m¾)íôå‰è¥3,›±˜œÊx›ö8±Ò6Þ^ÊbE2xãáh¿>S¥ÆA”..áéûÖ’™ÜýB;Rã½­ ˆ®¨×ò£Á‡ß¯¶Ñ˜·ŸCe'èy/¡äòíN'¼R:“•ú“™è^þŒu'Óž|+¯LïJ“¬B]¹’§ßÓµWyªqpóÁáÚÏŠ‚bðÁÃÑæ¥D5*‘%d+f,UKý¬¨¨lhĨuÇÅQk—m2ŠÁGµ¨pprÅQ²Zƒ£ Q{þg¦<¾ƒÌçñ²óEîÜÎÎâÀÙþ d[âÉ„Éà‡‹Ê6.'\kÎQ‹/|m ¶bEVkq¤³û¾aÞÔ"MýžLÝIV,?†Ô`Ä„-ÈVB‹wðo…[µæöÏ?aÛÜÛ¸ë“.¼4ÿEÒÅË–ªNP;áàèd— "Z•ÊcQ®ƒ_E’@$:íãô¥$@ÎYÏŽ ?‚.è ZD•="îáøµú‰E‡ê)9WÆ¥z|8Ïþr\½ð$Œvwq¬°°îYËÎBJ–òD¿o‰œó9·ÅÙKSCiqºŽöÈøV~ø ë-IÜòä@bm#©Z÷5+ ì¿æ 9«Bðó½Ñ O‹A«F­Ö Â™ð( ŠË.XÈ;Ä~µ«ZËnÞû$óU`nùuQTÛä¢WŸ@ð òÃÓÃ'gO|Å‹,ÿMÞŸ½•‹r‹2Ôz ¢¨AgЀ§;®9_±ü¸ÝY*]àÀ~7<\,mþ†W&,¢w´ž9䛀‚£ìSêÀЉÎÙ{9q±rÖ°3Ø— 2Éêñ›h¸¸‡"âIt !8i%+€ÚbN”¥Ò+“¬ÄKTËg©8¶“Ý.ÿ½óŒ²xúøçyî.—Þ{%!„Nè ‘¢‚ bA»€XA±`oˆ‚ÒQD”"½' -$!=!=!½çîžçýã.䤩ðþîûO’ËsûìÎÌÎÌîìÌ*±Sô£ÿÐíDÄ ˆ@ɱœ¼‘pݘÍPÔù Ù>Gd’>jýÌáBýæsUv ™ùN8–E°ïø).Të7jÿвÀÂN(ªpððÂÛË‘SË–ÂàÞø"S•¸‘™÷-#Î ›Jµ=>^¨ ãˆOŒÃ%,Ô°‘rÍ, íÒ…nF¹—UûøfEWžÒJ¿Ù,i¨<þ5ËôáåiIÄäzá~ƒÁ_]úffŒÜHëÕ_06ȰÀÝÓ× }Ä”ù©D•çRãâ9q¬˜þ1ɽ&ò؃]ñPßÊõ¿3³F }˜8éóF.%¹î³²2Ný¸†T;s”gNÕžžÀÙêd[ÛúÌÕË|¶¸%ÚT(ù“¹ß£J¨lð°Ò‘ëí|9SO¥!­ËçÔÑ-,ß‘«ßxS[£tµëkØ ¿T•RšO¶¦=ãµ`ݚ߈+“.|›ŠÁ}psÅ5r7é ÿª­"%á4îî¸ÈJ,œqqïÏ«s:‘ðã¬8–a”éwP˜c®V¡Tª c4Ì7µ•Ò µ¹…Aë3,DQÑð9”¨ŸoÏ&η]Üì]~cw@>)ñå”jm±Qü÷V²ÚKËJª­ãP%Pp‘óªr”÷ çžÒlŠâóô›œêúÃE·Í†›Ôè°„|Å;Þ^xþõõÛ™ñ¤îA«[ÚNnnYཹT„µÇ ;+Îq1. ÉÙooo¼=mÌ”²T(YŸÁnîe?LÂО´ùõ[¡0šÓÇvp° “ ±Zj¶W?ÜÐÀ'±DÀ _|Úîä\!P’EtAån.õeÜÍÕ(•f›FŸá¿³vk†þÅg9ë‡#Tgá8én 6Nn¸‡ìá| Px‘ó%YT¹ybA<«g~BB×ñ<òH8žu ­ô»ªÒËWOlMÚ/̸w ¡«>çþ }9P9/‰S{¶r^¨"ý‚–ÊGllš`”Ú QTa®èN÷?q0Aÿ¯Œs‡¸€¥œýy!sg­%V'Ô—û773èK@ÁŽeü‘U—}“;Zà隤 L=—}Bu­cs&@™ñyd–v§÷€l¢³Ž‘X¢÷ãN·ÀÂÎ «Š=Ìù9G«5È(±qñÂËËo_¼Üì±°uÁËSGÅÁ_9^PCñÅ òKìpQ¤ðÃkŸvïw£Ê÷1çž/±ÿl!“»:ÙŠZаûØ@Æq2PIÄÜÆ /wJþÚG–BÂÓÛ£Qå=,Tˆ ý\1Sw¢]ïYsXq¬ÈHæB±~v)d>HL @)qZªE{*ÿŸ‰— >g'ÿôÆÕY@,qñöÆÛGÉɵßc>¤NT¼{ oNßDÆåÎxù¸S±›l3*¬cGJ±þ’9¹Ó·{½ÿ§× Ö5œ‹qÆÅ¯‚Šƒ[8V¢§Ciz ™¹è6 ‹séÇI.ˆçd”%VöVXV`Ø|ò9“Ã]š½Ê@¬Z…ᦄøÍëíƒgÑQâË0wõÔëo'}9mA‡öL:¹¢‚ˆo×^Tý°’¸ÞƒheåIP@ç¢tø¶qÅN“Hú¡?‰–Ô(NùÙáå劣¤EgT©HRXÑáéÅÌÌšÌË»J°V è/õ˜WY´zþRm9*wüÛ‡ÓÍ×»Š,R*‹©Ã^¦1»em)—Üú3º ®ÞžhÓN“èä‚—»#ž§O‘`fŽJ’‹;žy{9Ÿ¢ÃÖÝë²¾"‚,qõŸBbÅ“YÔÝÕ€ vyG9‘H>€"‡è¿Ô˜Ù€,¨qòôÆÛÛ†“Ë—¡Òã°PÀ™óÙhXj3J3Ì-Ô ÒpÜMò×K«JªŒí³y­[⥭«ˆ`dÏe£à²Ñg’¶’R¯»ÕÚ gGª2£I•z_/³ˆâüJ@R–Ðyúà“ò=Û¡4'v9°á‚påáDYKµ,C@?î´ÇÁRAa^¹¢RôÌPqŽEO¾ÂÒýi”_1VsœüZ0|æz–2€£öã¾É¿§°AY7˜º½î˃ldu¸´ÀïÔ§üxFrOïåüð>tÔ;áRüzž €…YýXºáS^Œ¥ZÕt`Ò±7ýùšŸOÕ03oWœ#>åçt½o—–~–œþ] ¼Ýmóm‚ÿ™;€õ³Í$ ÿÞVCÐýò¦ã‰Zª«xdÝç`¦B%èþߊ‚ll`õ¸!ú먭i9ìE>ø¬! ©ÀÌÜ ¥$!™$¼úìMƒwL0ÁLø¯ÝàÛÏõyëGR¦ #| «.¼ôãBzXU“5z8o ç\è8üæ¾à…‘,|ÿ~8˜†óÀxÿÅ{ ¶ð#áÁáô.ª@+I ッòN)ë"ç£v²ãx9»v~ФÕá2ôU¾œ=¯ßdôüTÊèÉìßú`©Ò/GÓ~|’¾8Àð{V0eá/Ü÷Äd>šNxž%!ý絃±‰ý‰\;s:ûù íž›Ï_¼ÂÝs3)§/swöÅL„ô}›9RÍ‘±½x_Ö¡ròcØSó¸«"óîc°¤´DÎÅíaë™ßضñ-$­±°ª¿ÀêF3?¯$‰¡oýɳÒB¥ÊK^ú ¯mÐo—JÉË fÒ%áÞïÛ“ ‚¸ïÍYtjiU•æ`S­?Ä… ½ùÆ}r }÷2&~ö+“ZÕ;::­V_– •ÅE+ª ›nU_òÔ›HÊÓp ÿ {o7³Ö>ÅÓ{Ñ[!¢¶ìÂô>#Œ2+Ë(¼$S xuLXâ×|Ú¿©´dô¬×èê¯Â~òŽ?>‡‘ó2(£7¯ÿÑ3Dú½õû{…®0ÃÆn,oªè>¤oßÎû¸ÑíÞç™Ý×%pÁ{¼þ1¹„1eÉX¼l!ðµ82t$½ËÊÐè†óáÑÞ7´à©:þ“ü¬sŸ/þþ~æÍÿ‘”'d{ýB¹ã7#–éÃÃyK‚û<ÊËïÁÙ,޼ñö´óTa}Á„Po,Ö0zÚjr * ™º‚¥úë7ˆ4ä–é7Okò9³þmžZ‰ePO&¿ü·W:ήþšÓa<Ù&˜ú½ðR¶ÍžGÁ¤¥ °0l¨ˆ:KíÃYØû¶á‰÷V6ÜL¹m“ºGóã9:¦oKZÔî!<ðÆ§Œ bÎàpæáMÿI3x¦§RÔVN^<Ì©ö³þ3’VGË'¾eùí±TÝDxKi†ÅÅõXŒˆ?#‡¥ðù á,*²¡óØé¼ôPÿkƒ(i©©1' ÝX&<Âkw…3 Oú<2ƒÉÝÂqõ(bÖüy ú2 óšÀ½ ñ?÷.t: ¨E«“Ð^ŽFHh5:ÃÁhšZ­>È*ôfÎêǘüp8+ œ<ÆóÑæö·¼WfNŽX8„Áa‘Ï[Ö ~ñirßþ„IÝ?¢¼'°øOj¥†›þ5§?dX¯O5=g°î£N@%)GwòÛ:‰q_'sÕFΖ¶äi!xm#U0lH+lnÇÊΞ²è•¼=ýMÊ€À3˜= #WK†mì“(|õÆÖƒYÃÃY€;ÝǽÈìžúµ¨u¼úþRŽ%U³yç—ô}íÞšµžAÓ¦Ïhu­yaýrÂuUÄþuaÀ›úC-íé~’w‡„3ß ÛSz;"ŸßÎ_yxìÀ“«øÀq;ÕýžÅ_©ÏÄKÝ·‰£y‰Ó‹·$-j¯¶L|îBã~å™9 ð8…Wf܃¿¢¡.Û3Ÿ ïíäR¹ÄèðO¹a3_“½ ,qñy7†‚œOME …fh ¥µ±¿0ïïØ[ɺ­‹èñò> R²ø‰!¼SZ¬“ñÞò‘¨Ž­  ·ˆj °² º(…¥ÓÃùðì6†súÐÍ£ Šôù|xo8É.Œœ÷)ƒƒ¡´’¼£ëGꦙ„¤ÓP]£¦Eëûxhb¯ g.V„Ýý /¿Ô« ë‰L=ȱý{Øø•ž†SVðË6æG²gÒ‰ (Ìè1ëg>é›ÎÆoVaõä&ÚÕQ©$– _½Ïg[ã°ïþ¯O’>ª+|ž‚ß_æþQU #ú~Ƀ_àéW?!éÉî„ÏTãÑj$¯~ý =-Ò°‰ûŒ×ú†S†½&Ífư`|ÒÎñÖ«37­¸kö¯¼bŽù1Ý_Ü„B­¦ë´YtŸ3È%hªÊ(,Pè•D³îËør[<ö=aÞôItv¼DÖ¾4Ž7³ËA–4o;SÖ>Á„óB…µ}f~÷1Ü/á5)žW‡„óV´:•—çô$Ô¼#bÆ<ÞNj¥+£ßüœ¡ö”îúƒƒ¹‘ü9y _‰úìÐn¯nâó‘ÎöÙiœèCyrÒ˜c©ÏU™c­t’¶†*‹. osœ/ÞOø[àߣ#re7¬d-®þv^Y‡F£EðÇ8·¾ ÿ ;+{%ÐÌšv=Ú’sä &†/C!€Î¶SÛbòûÓøâÙ÷½,ƒZ@jù$ëXQ«©;pÓ” ‘µ‡?ŸÀkÒÃ}½îŒœý<Ùs>åÁðyTáÆ½ï|Á gÌ¢¿eð ë(¯¬!ô¹ïY>Ѯإ–¨m0Ÿ R¬bùÌOÙv<•-;Ï2i[*Œ¯•uÔÖÖUbÔóWBo×ûÿÀ—Ì©³Ï¾Ê CíXw:ë˼ þ ²Dm­A6dZ ÿ‘ 6JÿðظØã6˜Ï4øÐs ûß›Â=çñÓvÀ¿²O}ó2o=þ<?Χ–¾ÌÝÕuÅ&-뺫¥'¼‚Xö(=ÂÁ9À'ÏÜ-k(ÖIhe€J/b^Ýüµ'fVÎxX9òâÚ-ŒIŽdó›[¾K‰N§Ò.uk IDATE’tõv^–Ñjuú*¬èôr#k‘èÄë_dÊ„^ô@¥ÍgºÅéÑì^[ÂS[i«•P(ÿ·qfÂ[/òÜ„ôª©EÆ-<ÌÜoãyll8K°Æ;äQÞû.(æÌÏqÁ•ævæ¯w"¯U/îkÇÏÿŒíÌñ nçykLÞ©aºÿHõó“Š\ÜpÌ˹,ЕV6¤Í\€®ç]èLåIÿ5ˆD‹Œò€ZÖDjµšâ¢b,,ÍEÒM—¥6Êê0áªP(H²ŽÊò*lílИdßL0Á„ÿÒÑÔj3RS/yò,>0€´´ ’RRп75Z-ο¬Dµb TV^¶ø¢§V+æ’G5~-ü¸Õ9G’¤»|wª¨¨Ë¸•t†R]¢€(èýI2¬D¡îYY_•¢n¼ EƒSÄ­†¼¼<¼<½.oXë+V4 ¢(诋1dJ×÷Åp­È哃‚BD4jGô÷ fïý˜Í®ôºç1Ú;Ò°ÏFm6lOßçʬsü¹á#jF}Ï„–M÷SED¡®Í¦ÇK}AõeÉ$]†ÞèŸÅËí4Õ?±QÛ2¢¡Šúw4àñw?3¢ú;x±ž.ÍõïJ¾ñÝ@ÿæe§qÛuc5–†<¨­­åÒ¥Kxzzþ71æ¦e[FÍlÄýuuWŸèù,4h·þ³º÷ÐXž í‰ ø‚Ðp\’¤Á¸½FchÔ@aa!J¥[Û¿/4ÜX~êÛkŠ7Ry抱^eåeÔÔÔàìä|E`ª^nh4w›˜Ó†þ\9×ëä°y>7…šš ñðð¸Nz˧á’^?5ÙQ4š{×¢o%²²²ðöön²²Ôœ¼57î†sÛ˜ŽzaÔ†d˜«Íð6íb~¾~ x(ËòzLh$3ÆóÅx¯GßÏú9^ÿ}®˜[×CæPQQAee%...7c /óº^&ê1 +rá FlqãÛ§‡àmóáÿììlœœœ03»Þ¶ê¯ ¸lKôöeývù÷+uM½î¾1ÈȤ§§ãëã{¥<Ë Šb½N0Ò³úwÓÀ5–u…xÙâ KúöŒå[–$dÑXO\M¦ÿ4°ÿ¢p… ÈÈÈÀÃÃ…á„+töe=Ô´=¥™9(KuIz›'ÕTpà‹DßÏ aÔÓñì€B¡àô¾üÑa³ûY6¡·ël‹>cñjã­ëóµê‡:Ùi WŒWnF/6²ÏMÚü«ø;:ùòw›Õ¾4oÓ¶´nþ5XÔ]’^{`7µ>kzÜzûÑлÒ>cÄïÆöϘ/õmÖëÊÆ´4ȱaµ]?‡¥Fë ãþë꟭ókcûŒaÍ×´ÍjÊÂêÇb|դѺ\– s§±on}Õø¹k³òW®ó|¸Æz•Æ~èÕÇœv1 OŠŠ Q)U¨Tª+¢¤‚ ˲~ž û=†šÏ— ]5ñKK»­c¬ÿÿ3€(ÓÂÙ"¢lÊ[ü—IOfF:òÿŸswÊÊJLD0ÑßL0ÁÐhjoËcŸ¢ØT]B‘+?n¼‰aô¹âzjw ͼ³nÞÄ炈Bñwíä{Ê·P|¯Þç+Û«¦ôR)g†1fÆßõS¿ÀÿÛQ6ÕgAD¸º6=Þ†ÿ¯ûÆ•Áœ¦x×Ôg "ˆÚ½i¾7ó®æÚ¾ú@¯UŠ›|gSüh¦‚ÐÄýŒM·ÛøóæøÕô&øõ̹\ÿ5+?ÍÈÆ?’ÄØœÜü=Íš‰[G£ëz§øÏ÷¡ù9òwï¼Ê|»i>ë–(®YfšÑÓ Å¿ÆË›´†—ÇÕ”LäìyŸy ·p. œWÖ¿‰ë-þÞìÝüêîM@B«=AÄÎûùÚßÙÀ¦Ú;ÇþÍ#èó”Ê(~ÑL?›Ô7®®”¦ú'\›}¦i½Ú¼O"ü½~hr,ÍéÅæhÓ”Ùœ/r´×([×£ÃûŠWñ—Äë°Q×Å—¿ñ‰iF×\ö¹š[[(´kÌû†6´i[x…^›káj:[hf7C×Fý(O9̲wg²þ<@ F¼ø÷tq6ôOü›¶©šKGÞfÐÀ¥„Mýœeã®|¦Y®!_dICìªÇ™´4Ÿá¼®hn>7³öinÜd«)™n¸2n»évêÊkÐ5Wq¾¡x5Ÿ¿•ǿ󥛤¡ÐœoÎ÷®óý͵õ÷¾gƒµªhŠGÕáÿ}X)@?'ôU"Ütù;‰C„ ×H©…‰ÿj¨ÁT¬ÙL0Áþ·!••Ègä›iÄpj\¾£Æ-e>HÿèAPW¼· -DAlpÏÚíÒ/AèÉÛIv$YºíøØTï8]ñ/Ì·³Y6p¶Ñ'2Ò-°¢ ê³Ë wáÞ‰×ÝŽ2-¢ ·›<÷KÿÙ=M3«þÌÞÛÿýš0fì$ƒlš`‚ ·¬ü{3cE3èãkï"Öm¦°!bÊ­±ÿ‚‚ÐÉ눘|¹5Ó  &˜ÐÿïÀ·rÎGËÎW݆0áFä»ìB%>7"ßÚ"’Rµøº\Á—;Ó¶ÈÈÿµ%Mvÿ_„®ä4 ¯'Ôw Õet•y$ÆeR&¨°ñ "ÄåfªUITf_ :³ kü‚½±oM?µ%9Ÿ‡™µ^Á8ßI…6å*òsÊ­ìp´ý¥C{‰˜ TUkp ìL {S®éíS¸ªª«())ÁÝíJ6m¾E`©îFæÀY`#ú ¬„>@ò ú ïd``ghçð°¸ÙÊ;1À[ÀÏÀq xæv²¾2%ÉGYøÑT÷—Ïéøt-ŽÕ“žg¿ "‚BÉÐW—1>XFW~‘cþξGˆ¯T ™»Òyø#<}¯Ç¿ùŠÓNƒxdÚ ¼€6LýõÇŸñD7gCP$íI¾šú&i=Ç3íÉø$ìdÇ®]l;ëËëëfÑÕ ÐD³sÍ2~?v‰ŠÊ œïÎËß…¿2…½?/åØ 4¹±(îYËOrKÖI“ÐK- òLEÀk§€%¹œ \oõÇ:Ù^‡>úwÊEÀÇÀÕªh%ž+¦osŲ8d ¹ 8O t7G‹ÃÏ£nÀëžünÐ5g€NÔ<¹^¬¶ý€iÀ7@$0xÐd;L0ÁL¸T$sàÄE¥§àpÚ¸ªÐTçw$Š\… î>Á´j选â´8â“2)‘]iÓ½5žV§¹&ƒc'S¨Ñj± ìNG¯«œ«¥(=‘ ‰9TË`éBhK/l”ZrÎ!©°”Z¼èØ?ûºŒ´˜JçØÔ˜­”b3²­ ¶ä"gN&Q®0ÇÑ#€V!˜£¡èb"I)¹”##i-ð ë@‹‚Œ'I®¬F‡/Ýúµ¤©#šÊ.‹"W´Ã³nÌåYÄÄ'“[ªE@àÚŠN6yœK)@£Õg *5jÏÖ„·°C.ŒcßéL”Vvx‡t$ÀáÆ6o¤êlÎE\ …ÚŸ6]ð·‘©*Î$þ¯XòEü‚Chéeƒˆ†üØhs‹¨‘edÏvô rF)ÞäêP*!õ|<E•è |’d‚Â;ám!@i"ûþJGd•%Žþ­ 1/#½Ô’?C€B.##­•®Yo‚Ï7bâ"¢É­Ö ÉN­»ÓV•Æál'zµqBD¢¦8‹„Ä*|º¡Ê‹ãlT&Õ¢€…«?!-p¸%›‘2å9 Ä%¦Sªö¦ukÜ­Í 4‰Èè,*ku ƒchÂ\HUÙĦŠ·v3l_h(+Ì'¿D½e ‰²¨DFÒšãÚ––67´ñ¤©*"?OÀÍÏÞh £ãRú%vöØ7ØÐ¬âbL .¡îè­@)ñûO’)˜aeHÇÖp)%–3IùX¸€³Å¸Y"×P³…÷×yðÉ÷`s§Øo¹’œŒ|ªŽøzÚ4cOjÉÙøsþÈÀÅLfЫ«™z›Ž'osçêøô‡G¹s ÿk)Ï»HBìEJ‘´jÜ‚C ô±oþr°&}™Úò.Dœ'O´Ã; „`?;ÄË6OCnJnNØXªôs°æ"G"SÑJöAÝiïiæhKI<´š¥çzòÎÌ@RöŸ%OtÀ'0˜ [D*ȈŽ#5¿$cÔ•Ž>õò¤¹°†ÙKZ²daW2ŽÄRˆ€RmƒOÛδ°–¨,L'þL"E‚öÞ„·Äͪ)i¬Ónè5z N’ +Û–tèèq•À¿–ü‹¨í±³V#PEFäi’«j‘Ñ·3}üm®ðkjʲH8È%dŸ@‚‚ܱ’‹‰Š##¿KßötpÁ\ÑØ£*&éh™2"fn´î‚uY&1‘1ä‹öø†h¨£ !†„Œ\*ð$¬g0Îj¥‘n¬$-º÷6Дerîd¥‚ˆÊÚ‘mÂðV‘KJ~-JAìèK‡@oìÌo ·gmáöÎBemOHGüíµe$—E•`‰w«P<íPQKι³$•£‘@ðî@¿  ’¤ƒ‘\”EÌÔþtíîÓ?dÊs’‰‹I¦Pv&¸c+|-¨"û| )åh‘$Ã;âc)BYûN^DafŽkpWZ¹ˆT—f‘p&‘_}‚ r¡*!šøŒKT"ƒ{(=ƒÝQ+j¸xü©5Z$Ñ—n}Œ|EÕ…i\H*Å¡uü¬õz17³™ž®VMëEM.Ññm<¸%¹>E{˜?¯Œ7¿{œ– ÑUdu6]‹t6ÌE©ªˆ´Ôjíƒ ö°þC:*áÕ§7¡ïDذ)L -!2¹¥B@@D¶ó¢m3šŒd³Š¨‘mêÜo;"5¤‹$­V‡¬ð£koòNüÀGk/ U·à™õŸ0¨¹s´r ©çÉ.)§ºÖ‘î­p·T5É+©:“ß~Èìã%´mËý/̦¯Û?aO«ÈË* V刷«†äøb,ÝÜp³3¿9>ÕÆ³é»#XuÊ„Á-oÀÓRœ›In¥-AþÍØy‰¢ßWñö¦XDMý_ZÍ”.ê[x˜MK~L$ñr ÝÚ¸¢Â„…)lìûÔÔ°eóââ.0þ[×ö¥QÀë>; |¼L}`ª HZ Ïl4ž *ÀêrÔÚÐþý·#‘óIK9G‘å z”îew~G»4³—r WY¨¿Ç»¹Óu"*U[¦~õ-÷9×?+Õ^âì¦ù.¢%O}±ŽyæúEynf!…2f––X˜«ŒÚS ¶µB­½Ã {Õ8&þ<ÁÅ1ütx/gÍl- Løm êö¼¼y2¡¥¿1}Ú^"»·ÅÏö^S±Ì(ü‰1Ãqäñ… 3¿´W_QX} øøô*ßùh‡>Èz£ï´2ðs3úŒÖ7®ò¼°êÚ=ehsÍÍÊÌ¿µ@F£.PºxXy•¹_ vÐ|жñ¸ÿ-¾[¼`hïFçÚr` úLäRÃïûÑx1ñ4ÁL0ázQšÈöoV°"­ /µau¢k5 G³|I>–2æ-ºñàìIô¬=ÎŽ6s$®m¥ŠC…˜2º;¾rGV­fIl.¶Z--ǵ½z¸*•¿v~Ϫ=%8:S"w`”çè¿—ÍköSQKYšŽãÖ¯óJgo”‚@yÊ!vž‰àÏm~,X1'4”_8Êwßmb_A-»3Ú%C%™¢óñ8tt„-Ë«ÑP–¢#Òn¯tðDHÜÀÇ_Åãà!£“+±Ž™ûRwlêܪ¡íÍ8»y 뎖açP@±Üƒ'ž{’»ZF°qÕ6’tÕ ¨$Õ,ßw¦ÐªÞ˺jòã÷òËþhr »ðêëwaYÃá­ßñÇ‘r*ʵ¸ŽÈsãúàcv¥ñ®L=ÆŸQGضыß=XNPWEâ¾oX¸þêî³xj§F›sº¼X"âö²ò[%Ó¾z”vöJ2w¯eå†$´ ”Àé-fõrjèŽÔ$pü÷Uüº¯”ŠJ-N£ÆóÜ#iQö;¿¬<À…Z e©z¾¼ÖÙ›’Ä¥¬X”D©+ÔØ“ôÅ›<âVÎ…ƒ_³be•æÁ½™øòDºÁŸ?ý¡øJÊó´x?û,/ ï€Uî:Ö~sšlk‰ò‘³_¼Í‹A×[RæÊ1·±·@¼B¶;ÐÆ¾ŒÓ›W°rJ…œÛ1ä©gPÌÉÕ+ùþØEÌ‚+ì€UÉN¾_r’L -Rž §­ŸçùÎÞ h®«ÉàÔö¥ü¸þ5Ö ¬{2æù ôªHãøž-D$Wb¦¶¢2á çÛÎæû¡ylý#šòj‚BEQÜQR/åðã?~µš_rªðsñ£¯}Ø €e´~ä£/“pò’ÐÊœ[?Ï«Oy·w ßm(¢RÔaÝu(OȺå;ÉPi@¨à¢E þïN»A”½†œØ]|ýÊzÊ{…`]nNÈÀ±øúÛ‘¿kßì9Mai~ƒ òvƼ‘’ugX>ã-Òz´ÃY#`ãŽmäKXñ]!UJVíðØôñtÔeÇú-O«¦,KƒßŒiÌŠ­B :=’}Ñ‡Ùø3ïþð(ž’†²sßóÑ¢t\½µÔHj‚z<ϳw+ˆ9¼•-gJ±0·¤:íçÜ&ðåëOîSïWפŸ`oÌ!6®vâíà mÖ6,]˦ÜjZ¸Ðß) )–ƒ?­ã˜r”ÕåíGñøäûéb’_¿ßJTq9‚Y%ÉŠX<Þž„UÊRV.J¤ÄM@,sç‚Ó3Lrl@“ÚÒ3ìÛ¸]‘¥hµJ†Œæ±b•Áo³?–-v6fÈoîíˆOͶ~³Š5åøXÚÑéá´rœóÛùú•Ÿ©ìŒU¹9­‡<ˆ¿1¶þÌŸQù(lªI’Úðæì'ñ¯ÜÈšÅgɳ•óì9gû϶÷ÐRä*rÎlàõy§èûò|fÜÛ3]:û¶ì¡È½“ǶiúPAÅ>ü ’×N¼5`Ñ +kµÑ–¡€&u+¯ÏØ‚Í}3XùÚp,‘É»°‹Þÿû xû±°› ¤5¯c¯IkÊ «ìðí?›EMGÖLJ ±4W£É‹"ʲS†‡#ÆçxVba Š»ŸgÖÃ]0KYÚÅQäÛÉoÏY»çyqÔ»l¼;™õ¯,F’®Ò+©˜ {×òùOç1÷ÁKíñlÒþÊTŸdÓ6O–\LëÔžfqdû^òœòÔ½æÄG%ରÁõšÀÍP]P 67ÇL%^÷… ’6Ÿä3—ШrˆÎô"Èß¡™'ϳta6¾[ÉïæûW[QDVB1ðFß/x­ÒH¾Z÷mLÉÅ7 S¸ÎÕÔ°qãFöîÛK^nÞõvã ôrÆY‰@(ú ÇëÁ~ }ñ ¸|ñW ÌбúÐ0“S‰>àœtC”ÈE_ж bXÚ€¾4­0öŸ£suñ%Òc èñÈcø¥üNÔ_9 Ö(ÛZ(#nß,½D"£’¨ª‘ðé9Š~- ‹ÛÚDvn8Fž¨ÆÞ¥3ý9Ru1p~Vµä]ˆ'¿Êߎ-°‘ó9{¡?o7ìmä0 i¨7*2O²í·jîÿ~ÕuÍ7/{ —˜ë¹fJ®¥À>”^ú’gÖ³ätºáŸ9d¤Ùàe¦Ï$¶ëÏ=.¿•œKÑ}ÝèV§·[ÐÞöfÕ€ù-b@õàÏÐëÚÏv¢?<ÐýA‚ÀÖ gá@úìöôÙ«u2¾fh§8lø[0Èb"úrĵèšmÑgLJPŸ ‘lÔè3N[£Ïfwú•†þä{ ý²FŸa›f˜+¯ÛHÁèÔÙå×{©/×ð£á§úƒ% cÙô6ðå˜aNûæµ5°}yyOCÛ[» ÿÃÀ«_ sû' ƒá÷ZmcŸ¡_0pG_QC_úžQÞÕ‡+Om‚ &˜`Âÿ4Šö}˺’Q|÷uÃiz™ÒŒ¿ˆØšÏÈŸ3$6¬ü‰ûÎbUpl»¾Ì^=Oñò¤cœëÔ§ŒïX•Òž޼6³¯UÐ"‹ IDATï<J€Jâø‡ïp&á8›6ïF9fŸ÷ñGý1ƒVždj˜'Nf ª2£8²û4Yv­ô §²BÎíßNFël|¤…ÑFèHŠRÔKIÔª?Q>8EÝ=!ê}îZ}‚gÂFckÈc_Oc°+P}’/Ç­äÀ”•)̯@{É‘–¾æðþÓ-ñ5ì›5‡óñ)tRCû×>fºóýðW9Q=…ƇɴµÄÿűÈtì;õÃHÞ{œ‹ÚP¦­}œÀü­L[Ã…¤0|Z×pb{Ö]ºâ¢ßl­É‰âè®ÓdØŸבù3¿ŸÏÁ³ýplU REêÉs\2÷¢u[o¬]I2'ÿŒ ‘È‚(àÏe'é¿ncÌ€ _3ðƒÝ<Õk<F>yÚáH’JüxîûghU¸ƒ×–Ä—Ò†Œõ»P>0‹…½|ÏÀÀUñ\gsv½»—ÐÅ¿ñˆ díšÍÔ‘Ü;EÅÉÝåÜ¿q1}µ±¬Yþ+‡$a{é0…~ƒ™7k(®ékxhI¹½¼I^°×9ë™,"EÌ£ßÒHžûxÈuJi8f±IÙ–(J?ÇéH-O®^LŠÙ»v%ì<ËègüÑI!Œ™ñ"÷ñ1´šÏmÃaÎjfµµ€ÂµŒ˜°•‘»ž½ì6‚–´³þ­’û7.¦ÙüþÍzþü>‚NÏõà‰Wzð„áÉCï>ËáNþ¸ ÃêëŸ~œœdìšÏ>«ÇùeI˜Ñʈp (­Z1ù›—èÚÂ#,yf ›;ŒE8§dâ†Åt«Œäóe9v<—°v2-'Îä~ÌÑðÛ#/]\MË›+Á*éýF2oþ7دåćŸòcÉÓ¬úú.}F¾,‘±ÿgNËj,-Œú Ô昩€¶ŸoMH(õoÅÒcó—ŒtÕ/ÔwýQŠÐöa>ô KÖ_"dH{ö–1ôà 8žZÇïIY°j<.H$Æ%£Tin‘Fñîþ3º·Çú£ìÍˉZµˆu9}x÷³Ñø)ŠÙûêS|ò};VL0ÇÚÊÌHFD*5j%²M0ƒ¦>È3ム~|f-gN†4²-¶×Úmy±q*ß>ëçeE±‡"‰.ôa 7ÚKqDì8AŠz(²”ÍîOŽÑeõÆÛjˆþu> ÖÆ0öI+ŽŠDè7õw»^߆õ? Q§Ø³÷,E‚+­»„Ó¹µ3 ʉ?z„³ÉyÔ " —v ìÚ(Ëï_†hwË\Ñ—¶8ŽŒì,rŠ‚ûŒ!Üâ~ØN,e¨×G®[OÆ TqhÃA²1ÃÆ±3C‡Þ²mÐP–Ïés:n‰ “ÒÈ+¶$¨³Oædl•²í‡¦ƒs‘§eœGˆ¸àGÿ~(ʉÚóY9ævô½§+.w”g%#I>ôÿLëb4?›—p¡‘O²hü ~í÷$ŠƒUŒÝ¸˜>µçY¾|÷_¤ëˆÈåDí ¶"JTZÁªŒ|ùå°ËôÒ¿Q¦ººˆÜ8üz¦qL桟Ó½ú_-ÝÃÑÃ9tèbGø¤Y<æï„5elzx:Ç.#ÄÃs¡„ó‡è=Þ²ByréL8CmÞA–¼°ŽÃ÷Í#,¸Ïÿ8“P%Ä­^„$²ûák¬N ãˆØIŠzˆ&9ìþè(Vna‚DÜoó˜·ú,ã^éÈ¥„sÄçYЪg++²‰=tœóÅþ Qæ[6tš÷¯ù\bÍ9DTO«:žƒ h9¬Þ*e'ÚtΤÏî®?ó»…å‘U zq!wû]ÅÊ *ì”ãøà‹g/á+ŽÛÇχµLøi1=kÎòͲ]HE•r€²ÐѼ=¯/)Ëûí²;`ëb&7†#;NrÑz´aì"®]xnÅlú:@Qôo¬þ|#§ÇÍåž§?àû¢–¿ÍêV¸95 QÖæÅplÇIÒ¬Fé}D­ŽÔ=ë8hû¿Ìowy.&ìŠ"G eîòÇðá<Îÿ“³Ñt ‘iýì|žjaT°aÌ+œ­I&Ö^Z¿•‰Î Å~Ëý³ÿ`ÄÏ©ß)®"a÷aJ‚yqíqŠ÷§ï#2(„޲ГçO£§Ñy¨ü_–±±z,?~ÝÃȧ¨@’]ë1ƒÇ?VŸÍ›w ï1ÏðÁLwlØ1u)Uqü5{;žþ̼@ w5#ý‘;§âorÁÚ“€Öà˜µÛðx •¹9j35fTwø gSò¨’é|ÏÚ:)I?zŽÊòr6}/Öó kÂ{øBA:ÝÝEAYYUx¶ó¥4ö8‡OÄSŠ]÷¤G9gÎh°ÖEr*ÁÞ½5ú°„(BÉÖÿžKh;<ÛŽ ô?¦g²S2ñ1û)´@ ¥þácÄåV#Ëöt8€ön%Dž‘qs2¡¤¤ýÐñ´u”(ŠÞÉÖS…(E%VÎÁôÚ4¥œæÀ¡XÊJ_:wïF+×jÎï;DtF!Õ²3ÝF£µy:‡O)ð2;ȱø =Ø d¤Ú*J;•+½y—^èÙ‘±c›2*(‰Ç®ËC,¼»#fºL|ê/2îµ!jöN¼>ù…7ü알˜´•Q;¦âQZNTç£U“ŸK‚Ñ|Yáǰi9[˜Ààçî§“s>Ç#ÀMu„ˆ8 :QMÇac µJåÈŠÝÄ °}ë6²}ÚÓÑ«ˆÃ;þ¢Pp¥uמtk%[ŠTMBª’^~çiQœ'.OKè°±XŸú™ãftz?­l4äœÛÉΨb¢Ž^méÓ?uV: §‰+æ÷Þ¸áël‹H1gvíçB~)Z3ì᮸T&sð´ /õŽ^PÛ8ÐeðݨJI>µ—ƒqe(K¼Û„Ó?Ìà§ "* 9»'EHB¼m®r ”¨m›ˆ¼d]0}ï ¡ƒ¥†Œô‹ffPZ’@rŽˆ×!ôu$kÛn¢k )Û¶”bß>ŒjÉMI׀ʼ#î Å mM!q‡~goB ízÓ·•Ý5ù_Òù?88É%ß²ëü‹´ 3…1Mà› þ®ß°žCáãíCIqɵ}Q…¾¬êC0e ú{=¥[|Úm°8ÚB_FÚx˜€>³ï"ú2±o6XÃéƒp' ¢Í@º!hœ >2Õ–‚i¶†ÀOW®¿Ôï5¡–â‚T.d0¾[KÊ ÜN‘?ìîFŽuG¾ú„ÈàNx:(1OÝ˲Ö¬[</²9öõ©°ÃÅRKQj5î=±:ú g*û3»G.綯bcNGžnAÇâ¬ß­äÁÑCŒÀ¢"Ÿ«sÉ^DT´cԓᨋ²È¶FGµþ™[·˜ª¢B#µh…•m!™ÉÐ[ HÖ%‘^^ƒTSìÍøi-—FL¥Ç?u¿­¥!˜`ø¹Ê 7ƒö0sµèï»– ~ÿøÚ Cï= }ÏGŸá:ÈО€¾œq‘á{yY\¼ÔDø=CÚÉðûDÃ;¢/i>Üðw9ú ô%6¡Ï Öç sÅí6VN =VAmKëѯñ®ÛFV¨E¦ŒK¹*„ ?½ËåBǪlªÊ«¡ö<«çÿ§ßàïl޹ݧòa° OÏ‘ôåsu5äDmç@¾3ƒó³›ù-Í%¹\½œn£˜ê•(c4‚ß´!ë¥4H€ Ý&ÝÅ¡Eßð•€R+1vL—FÅOŠ)È‘Êqp $L“…T~†sñ¡´£B¨Ûö¦griÄÛ»]ôAPÛÖ½èøC,1Õ>¥wÑoú* °ñAÎ=ÃÙWl=]õe }:ÐíREšsœ§»[ ˆaýèµ ‘Dôg¯g³½á˜…&e»ÇÓÖÉ›v½=‰øô[NYÖR-¹1°G  AÓ9¼q ‰ÉÞøuú?öÎ;¾ª*ëûßsûMï=7=B—^¤ˆE‘^Å.ööŒ3êXÇ2<ꨨ£8Š^¤ H¯BHï=¹In/缜ˆŽ£>ïÌû>¬Ï'ŸäžÜ{î>{¯½ÖÚë·ÊuLëßJCu )!ÊQ=d47é^¡È i¾`·ÓŽ­5E‰Ã‹&ÓCãÙ:ê‘;®xò_ã˪\f-N?o4o„ծż֫•õ/&hèIV¼½MxC'^K²þ×Abª´ Œ–]6Ø­œI‘{Û(«Ë‘MUŸºkBh¨­¥cx†HTïÿš­y­xLeT²ÿowP¨ṫøäµj"ƒ|P‰¼C˜=ÞΖ]ñ,Ý0ò)¨ˆy ­›¿àøO9Ÿà’u–~'9˜@·^¬|‰’Þ3¸g„‰±" Ó˜G}ì>“ÒiM}»Bô4D q}Í_¿ 冡WÓ³[êï^:-8¼*´ÎSl<Êô;s} bÔ‹·³aâAJf†þL€€„t>ý¦?=~>† ÔŒ¡ô¼ñ!ž ù†oN;•ûªbú2ý~#ÍÏFç••ðÉ™Áã ¤æžùŠtŽâüL C¡)}ÉÜ^Àñ†` ObõÙÄß–·ž;Š‘{¬þwëD•ÚKGÇav¼ù»œÉDyÏp¼¾ ’§’vðV}YŒ-0œP!Ÿuß6’œ›Bhø¿öÖ±ÿ»4©xÏQXç "!©hë+ÃyþZêÚpG¨p”WP.±ýõ|y.‘”-ßçQÛíqnK2þnC²7²ã³½¨G½Ä`u¾ßÊ w7éUìÿþ4µz5š¶V¯ 'f\3+_ÜLÌPÜ_ú æÇÎF`ovÓZòyÆxþ0:êÿ!ÛJ@P5prû>^0"!m0cå®ÿ.¹È&±aOŠ#UhâleèÂHõæ\mí$?”yøRÿTZ/XÙ¶î áɱ|óöÛˆ*-ýf,¢O €[Ía¶»º³”&ŠjzÉnRC$éú0ªkkèìMßÀ öNcT"ña:ÔкÏÛúð’/i×0J‘È6«gB"±þ„GôÅ·êk·¤ª=‘¾ãúu‰<òɚΣ ¤æî&dXº¢üáL”ÁÊÔ¾d®/§‰TŠ·}Æ[»"¹o@wB4ê˜þÜ´ÌHÓ³GÑz½²ÌIÇœlü„ü¦/fh ˆýÔwüå™,vq ÐFÙñ¼²¢Š¤ÈLFN‚õÄ9¬ö&Îlú2·•´±sžÄ ²H¬ž]¼³BC²&€¬IבloÃ\“K€>œ4cuMÇ8QCpv¨¬;“ú0 ~?õ.©ñï;ŸgÒC¸m™â´Qi1¦a˜ÔZÝ"’ÉDt-–¯bÍY²gõÇäsñ\ú÷™Ç»…rÛ}V$Àã.gçæ39ÁŠ·v£Lfø”ñ˜rzP¹›5¯½ƒ^kE•F¯„@ĈÁ ÃKÙΰíœ͸9Œ‹hå­ÖL²”DU÷¡LVQÀ–v*WŒÒF$›»(µ´cÇ€J:Í·¯½Â‘@# cæ39½ƒ-«O90‡ß>¾! ºqF3ÅÇvóÊ{$Æô`èðÁ$Fô¦oÔ^Ëšãu8r®e\š—«RÉítVGŽfºö ¤WtW (6‹^mlÚõæØ¡hÁBé¾½8P@³^…Ú\ÄW«Ã Ÿ—M{K+NgÕåeøÅ‹ìÖNÜ–h÷½ÇÊU&¸&ƒÔŠãû°$dê0#è1ZÅúR:³ƒ³%Z 1át‹Hnm­4´x1Öå=!š§G7ñùK½* œz(ßÍš–>¸£®ŽFê›[1x]TR›ÆÝ!‡Yó·Ï9äN")¸Šýù¸ÂBÑ)çÐñbÚ´*TæB>_ÇýWðÞÓ;ȹ.§9‡â޾¬Ѹ‡-GÊ0ö^À¤±•ì]÷ï-?„žvr!1жª4út®Kôh¦k—Sè†á¼(ÌœÛöoŸßÏ]üü6n·«Õ>'ùèÏëI¼: ¯E •{YoîÉ{‹Ý47´ãñ££´”³m-T¯=Èþ6‘Þ3o´¢Iåø§_pÚéÅ?¸?IÙm|úÒ„ö EW¹ŸoϸYCmþ>6·çòÞâxÜÔ5µãã²QZRECl s4lí-´:}iª:ÌŽ L\<ŠÔÝŸóÉF;~1>ØOýÀé¤hžOØÇÛOí¦ßM Øë]8ëòÙíêÍ7±·5RßlÇ×ZD~£ü3Ñ«´@«ž}ã½ÏrO¬?Ú˨…ªËùö´­»oÐÕ̺>•Ók>cS¾=b+ùng#ɽ£ðck±ã½£Ñ7µá pT×Pé[ÈîÿÞÄùq$ǃ¹à¥àáŒ@|BR:kß¼±™ýõÕœ9O¿Ñcé¡þÙsÖÉ ÇIw#‹W²hK÷äär% ø ü«Èb±ðÕW_qàÀ~bccQ«Õ¸Ýî_j_É'Bò#u6?g,_zHåò™Ä+‘3§*¯oU£å;2³, ‘û‰þ×%Ÿ×u‘ª:E{.Eά‹œ¤q“¸Ðx r¹Øß›œvZ+Oaí;¤ û‹ñ}ñnHé¢FoÐàŽÁƒK`tö `ØzŽ´N"–C|üÙ.ÔÓ§§m§¾þ§Žöæ¾´\¶-‚¤v¼>vì~5¥­„—ÑŸ€KÔ‹ !z®”~¾BWè ]¡+ô+¨˜Ò3aèûYpxDÜßó÷WÓ¸u¡ÆG1^õ’uj’¯O¦õÓͼòÌüý=T”4p•®’골Ã8½FÔæÃ|ðç â_ú³…)”¢~ToÛÈiK㲺áÔWà%E5ZÓ‚Yºð §Õ(ø" âtÔPS‚q˜ ­Óß}‡Õϼ ±ˆG =5–˜ªãî)VÓBëE†d)[^ýÝ5w-€XWKmÓ9‚GÎE~œÊÖ¬¡PÓIé&Àñz½x< é͘; êG­çlXln$AíU5 ò* Š/mvœV+N]3䀋¢Å‰9ÒÝ^̦·Ÿg¥êF¦•âl~•R=™}'ÐwÖl5&BU]@V;nQ’mg|‰‰)§f{$¡¦&~øz¦—— »´P©A¼ÊÉ—€.«QçÅ+Šç×%¼¦…VQ†NÀ× êfÌêD4êÎëz|< ê°áЂQyöBš:°¸@¥õàñ*ëa "´¾‰–_ál¿ø™U—áí]|øj6?žBHP%õyñè<'9ÝŽéºY€ƒî× ¦é@f©š=ï¯"4x ÃG²æÍW8í¯F¥uR!H\{ÉA/(*…¬>Çyï©—i>×D@Έ.f ™uï=eéá]ÊïzËøä¯õ ýË("{()ŠÀ8²§µƒ†£Ûù¼µw/Nå7 ùîÍÝø\3lŸ”àQÖÆ€¯SDj·áü~öz¼ 6cnóbŠø=jÅvžõܨD/^¯ÍEè²™ý£³¹ï/1hϯóïE »sÍß×b)ÙÄ‹Ú1 É݃bQg1õjgwp÷k™è€ðŒ^ ¿¡˜}çØöi³¸nÜ2BçÚº*U«st2Ñ!ÚKFþD6¶Ð"„þÄ–P¡uUsbýßx¶Î„Ÿ$àÌíÉМ˜=ÓÓkÃêè”c]ö›Ó†Óíír”é܇rotù’¦‹áwꆦ%<µ/#‡naý‘ÁéX´"ÝGÅQúÉ ¾/p“<¬;Ab;ë?ÞÀ€^=Pé¼$Ž}‚›24P÷%HŒ¸ãQzµ[žf銭ԌžýÿPO`L}û3¨YK½·žcß®Eå `òÕ‰¿@ž—²åÕ-h&,¢§ïòUnE'ðqƒÊÜMq`³áòˆH¨€2JÏ£K´âôêšòÁó™Äÿù*"*ŽmÃgêËĺö€Êsþž¾. :tÞ*ö¬ùžƒfÉ}ñõoå›wÖ0`BOÆ_?žø=6î{ü©F»âuŠ:ÔDWXÈÄ¡-嘢œ8Büh9x†† Ñ<úøuD´oå‰?žähb,’ÎKܰ{Y48 ÌëÑÕ®eùkˆî1•çæ÷ǧp%+uþDfŽ&âùûxY7œ>½n£ê‡›$Œ~©¤›ÎQÕX‰äcåÈG©è‰Fç!áêG¸9K•QLxâ0æ;2ˆé;´C›©U جœØy€«{Sìîσ¯Ì'2¾øÛ^ôîR¶~ñyº ’3ãðõmæË7W3vp:z=¤M~œI1€ä¡ãò gvŸ¡ZŠdÒØD¢ZNápšqH>äoYOëôáø‘Ê„[BøòÏ/p- £s'F)€¾³ãí*¦Ì=E·ÕbaÕ{\ûÜA:'ß»?)G·Ó`h­)¢ê‡RæÏëIÎàID‡dîøvÞ.9ŒÁ}–¯Ö6³àqæ ƒÂ7¸öÉ­”½dÄ×GCÖ 2&¬‡ßbþÊÃ8¦M$-«'ñùè0¸©,Í'/?Pä’™|×"TÙ„Ëÿ/|NM| !á Œœ>L>K{@«Ç`У$B»döÒ‰Dzð‡§PU¡cêü±¤žªdîc7Ñ͸‡ÆÃÔãšp°ìûÓŸß­ŸF0>!}˜õ‡>´íaó÷gؽj5}1zÐOè(ñ›ŠzrãCFb{. fÚ&NÞ—K/5WèWÐÿz8/ï$k×®E­VÑÖÖ†(JddüÂêî. 7?KÕÈàjìOø b/²HäLF-\têp*B««k\$%û(¿#”ï´ÿ ãAÎ*ìü^?å{[”k) ðÔSw~w±[βýݵì 2ó§3:\í9ç¥wh×§dt1.¼¸½á Í1És %[cÅÒˆíXI#7É£E)êz†õŽÃ¿©š”–}l*JFòÄ5z_ÔU»ØTâGbßX"ü.uD0rñÝÜØ @J^Úƒ£‰¶}ËI× ŒÖ]ÚÓÀˆo‘€`-Õã¨ÅHR°ªKßá_F¾éã˜>#ýÇËSB·gwõ," IDATmD§J¾åÑÕfF-z˜«"/ëµ¼Ìßÿò :AÜxä Qx³9¸ – å¡;¿ëy´ Q>§¾è øóRÅ©ð˜W-¯þEç89kd0Wêr¯Î  ÏeöJdYú>græ¯$+ó«ìÃveüNä ÍÈe®{*Ÿ :¿µ.|…ËðŒµËšû —¾”‡Êë˜KdŽåž è2·6~¿þåWè ]¡+t…þ‘ˆ—\n^z'=Úñò­+9Ú:Aìœ8ÿ(²2û6Y;Suh4åbˆÐRíJgòÝw2Ш xuòëjªdu\’Áßš«Y³­ƒž7M"ÛÏÌ1§ •J±û¤ãB•Ra—¹‡WOhìXæ-šA^Î~û[Ní¡j [OM¥úH`”ÍÔÝìb³7~÷4ûL·óf’—M@¯ÌœÅKHZòÖóþ;ß’Ïçšÿ:óÕcŸÒØc"3‡'жçÞóûÚŽÕ BôQLH5¦ÁÓX8¶?8‰-§Ò=Ô€á·8wD7΀\n¸m:½º‚£ö:Âl‡iºÁj=*Iµú‚I­Ö $Iú:NÈ{&0ãFægm'ùtã6¾°‘²Õ‹ID¢r®Æ_ Ý•GÐøÇÑÒ=ô§ƒ¢ÃßðÆ;‡8d"eB·ßV2û"_…€Z)$˜àê£Ô4¦glW7E;u‘!„Š"^upX% V©DQ¥Å)ÌÆw_w0âÞÉ ÷áÿj¡eɃû¼<ðàuØh ÁßéKlæn^4ž ìûo-8FýUcˆû7kEÁëÆí6bèÞ‹dm 1^#•Çs80™áÉr`¸EDø9æŠ<™¤%†É{ZС7`P‰`wâ]Ø<T7Ñ‘~-}}dGšx QçJ)C.^õ»Ì¡¦ŒñÚ@^T ‚-‘Q Z¶ød2á£].snI%+¢MáÃÉ÷ ¡ADˆMG.ÄïÆ7&¸†fZ.9ÿç’„„Žð´AÜ68²üyÔ”ÒâMÄçgej§M2‘¹c“ðœ8ÑEŸÚ±jA ñÿ‰c¿·#ƒ©÷ßG_Îð—ÉorØzãi£,ßÁàÉ¡8J<ˆ¢VÑóv,zü|•À'?}ŸmµñL^ÒŸ(£ðrâ`#wýB¾||ÍÙ“˜9:â¼ó#(±?×-îOїϲf¯›ðÔYdúýÜózpŸ×I"¢ÝB[L„g bL–|]Bõ3ËHÆÄ[ÉÀÊ× &°¡ß8îÍÎaâìÎÏjðèÉÄ;zPºá#¶¡ØlbÀµ“™t]744ñÙÒ9S9„̈¸‹AˆgØ¢% DËQVÜñ6'Û§!ˆeXµ*öAWíA}ÞÎiŠ $M«ùÙ–’ó$_=¿×€)\?(ä¼|v—n`‹–îW "ñ—DÅH* º!ÌY|+ @ãñu|úÁ|Ó§§KžœBhã@Þ}w yGÎ<*_´¤ŒžCÊh‘KDz¾çF¼k–OvR#dÎç¸Ô“dábÇ`hÖ0Æ£c÷Árm-§…}}ÐâKæÄdЧÓîãDKЗ9·-¥àmØË+÷}Ê1ï³ ‹ÎeÒr/»¢5ï±9?1‡•š¸×1oì~r›÷aÙ¢9X¿ØF™tÎÌßÿüe±Ù¤ÛñDÇਫ¥ÜäÁš1P.ê²áôHÚ-X¢#‰Òâ£ÃU,¹»I† ¤èQôQ쀟ØXÞ†ã+*$0{½Ô­lü¶)g wŽÎÂ3¹¯¾»=…÷3vñÌ«¶Sî#=b:):.j¹éCtÖ ¢ÿÙ~½ˆ‘#È5¹‘Ð"èý‰×ÉçE§Í‰×ãÀŠ…6«C÷>ô³[OyMÍ¡¹ô5ÉAY.bt*q>nÀHlb zuþÄkìÍûXñâjjâ³I ÔÙáÂjµ~x<.Ü.;àƒ€Êl¦-zãõòzÄeVº—R©;ÄŽ&7\8 Äk=Ô—ocÛ;hOÊ$1ÄK\‹?››  =¸01ðúñ?±‘uFFÒ`«¢Æêã2säõK$.!Y>cx5„èøª%p¸ðzœØín訧5åú‡ËŠ16ƒ„³E”t¯ÜÖVjÚÃb ÐÿdΖ˜·ƒ]eGi|ò Œê&š›KØš÷ ½z])fükè}ætRR2Ë–-céÒ;¸õÖ%,Y²„¥Koÿ¬ÌË\»¹p^—k _´b{rv^?d_r½²:e]®m„.¡Y2˜Ö ü²Ìc©‹ dPÍ¥|ÿ\eì9üþÀ™ä¤ýÜa¾c K¦"»g/úžÄ”¾áªpÖu養¸<e^Ü’ • ADÁ4à{ÕÍÌ™;yÓ&1<%šÀˆ¢][øz_9¶äkßCB¬üêd¢c£.M" ê*35~ѽ3°•Wy‹ÓîN'V ÕE”·bJtrüøÎÖ+Ó¿ûì4%‘jø'‘Fü} èÔ:ü´”QBŸQÌX´€)Ò)ÊÂâHˆ1áÛv€?}RJß9O0¿ÄùÅr×íå½g6Q%ˆ˜ówðÑò=4 6Jvmæ«Ïcþ¥ào× ‘¹] ðѵÈ}'*Àž§Ë’T)¼º˜¡ðn'E ƒ%pYkÓƒ «‘AÏOK:ÿ3º”Ï/õäj•{vÝ+›Õÿ '!÷êîÿÓŠ QæNB&™‹œÑå¹UÊÜæÝ‘3tãºÌw8Êv7ÃeÃ;;òΰ¹r×ù4(¯KFæ\¡+t…®ÐºB¿ õ Gö&¾>ª(;·™æ6ƒ£‰LÞK±Û)m-£)&=Zúá¦s/Ö+žXŸþô굇{k”{¶ÑܪGoø9³½‚_ðõ6+}n»•19A@"iùT¶¹d{îôö&Ä`êÐûQkŒø£"( ÿ¨-l«“§ÕͭLJ&Î4†ãM ¤dœ¤¬Õ#3y»Ø“G´fÅSŸa8›[^%;u°ÒÒÔDµ4€îAÍœXÿÖÑ0äî[ž„°ßÊqó…h8K“ýåÒÀT¾øûÐê¨ñ'&Ɖè[L@ÃYŽD !žxñ=¶—tеþ‘ÊÏ€FmÀP"é3q6³fÏföüYL>€^=3<ÑÍ¡/>åËͧh‘„ÎßZß-ø5Ps°’&«ì\è> é@5Mzh=µ•oÿ@+!DFˆ¨ÎÑ ÐRÈq•oozuÏ£Üì–Á§S»Ù“M=ÈÈÚJ^€†¶3{8–šAc(¡‰û)•w Åí´„ç’kª§zÙl-?ÊAš\rrö’_#;¼'vðCz©¿ÊÀ»ä™Éº˜·=m´thQ««©:Z'¯>´¬¥í8Ú 9UTŽ|¼h ¬ÑŸ@pÆ ©71gî,rÅJ‚Fõ'pÕìaų›©RŒDŸ¨ÞL]¼€›Çe*™ž¤8雨°²ž¨a¹t‹÷A8?Ú>xCd̃ƒ Tê4’2Ö³¦H9.:,´[õ¿:»Pl9À;O~…{ø<ÏéK0*BCˆ:J5€­–|W3®˜´¥G8UÓ¢d-¹±¶èÐj„9¦õòë" V_r 1`rîIþ´l+­F°(R±kÕ5É<`®¡ÈÑŽ×`¼~ž_gãïc –£|¸©X~˜ÃÌ›†â´Ÿ?byÝ.À+ǼfŠò÷±å„9j"×ôÇëpvÉjûõ³uœÔv´Ð¨ÎbâÀ6>ûü{ªÏŸ-šÙpçëTHr?~'S|þq$k ¨ Ä_Bêë™3çq^¿'›Â¯W³¶´ƒüUûâçc@«ï‰”²Òz_ô:>~Ê‘³sP« ø«Têî¤gmã´Y–M…9“œM¯@=ãö™ež³Y\¸¼šV„’V‹^gÅvt3§œÍ”h¬½sÈj® ©º]ž?_´já?ª“ zðz•J ’ˆÈ%µD„xì#¶·Êή֚STäf’ñ»ŽÄ‡HS:ƒ¼ùúhmq} @‡Þi&(¶/ÓfÎaÞœ¹Ìž=ˆ¸0_Ô^Ç…Jȼ⣀Mæ’cçf(Y¦—Ù,ÿqæB{9ÅÇ)p˜©kÀèûó5Ù$ ƒÂ?H9€«‰BK Q‘\I>>è´|ýý€lzôÙÉÚï›Áe¦Ñ¬CoWK>'­£è ¿ ‚bS `¯§ÀÞˆ-2êÙõñ‡ìiJbÒC7Ó;RéYé>ÌžæQô6‰€„ؼŸwžøï¨ù,šÝGØj¯£øäaj•a¹¬¢[‹Zs9=mD£6à§È =k§Zäµn.<Èé´d¢qPºw5}¸ƒ*QuÁ®1ø ÓðUdNÇáMë¸àèíh–m1±n7ï<ó1'*W+gwqÐ"ËÕÖFB&Y9õÔ§\’m?³Y…Z«Åà8Éßÿø-ù.|“ ¾e£â+ó6ÕSnK )) ØÃr!8gçl5´…õ&7±Šo£lÇ•bD zÝ—œ¿,ý§œ­ê{þöÌ6Œ²`j¶’W ØP†'2“ÞýBZ[øP«õø:}*¦nX«(Ñn¥Ý-á±VR}ÚŒÂÓ‰µ ˜;\4žÙG^“ã¼¾éh6 ×yU Œ™3yso¦›»œàaýˆÂEÝñm|òî>š‡ULÖf,œÇuDf„ƒ¾f;ÛÊ:­Ø* [B ïAFõ|uRÙ®6Z; %;­»9l°ÓÚèÄa CUu†‚Ê:\Š®±¶èÐlBæÏbîÜYä¸Ë9à2Ý%<@LŸ, -^{¶ˆü¬¥ŒbÎÍs™7g.³æ #Å È ]A V• „Æçô iý?8–<Œlÿ$2ý+8Yæ!¡W{µÇË6_K)g# „†…àïuâ:/»´Z#¾þ> äçö(ó)‰ˆ?R°úëgµ)†HW§þ¯¯¨ÜGôà•IÂ+‰8›N³«2›{îœÅÌ9sï¡U/Þ†v¬™Ïµˆˆaá„•­ç‡3vyìE‡8‘•AA¯«‹í'!ŠvšªŠ8ë̲Ûnæ¦9“èé¡C¨´è(gíò÷Ù”×ðc€—XÍŸÏ5}ÒIˆ±³á©xú•½XÕ~h:!E/¢§³Šƒˆxi€¤(BDayó]¥ PYŠSÐ7[ ò±Ôïfùí°|w;¦þC¹vêgEÿD…‰£6;æz†ôîKß^X0#‘-Ž"þ"½üŸœ öï¡ÿõ°yTTQQ¿¡¯ÇðrC`l¤ÂkÏu\b€e X5¹\ódð5]~.¥û{ƒnDÎÏ…Þ¼R~»€A^.d »º\·_ØYº€{PÀÀXl Üøûγ×fåäÎÕ„LýˆÇ^˜oW’›?}q’ý';Èìëþ!œ«RVFVhN¯—‚ß –Ü»›ÇæÞÌ¡D#C(é×ÝÏ££ãò Âz¢…è¥ÁEÝÇÍèÓŒÄÄü¨..÷iVܽ >*•†¬y/rÏàhúÞü0sV}È3Óâ.m(¹cobÞu2v:CNý…î›Îß}ýiîðãºûÆ‘¨¿ìLÜæ3|ùÂùêlM5Vv/µpìkéã8Êgïï Jç‚°\®ŸwWÅ ä½þ*ëÖµ’Z~šÝ€$‰Œºÿ}¦«O±im#ýž¸*޳u‘awfQ—w„ïϦ3`z/þi«`7p·Â“*ä2¿”ÿecK=Ç ÷ν]á§ÎÌÐXä†bK>ô\8‡3¸SùlD^ss!û4¹ßô3Ê^Ù…œíu»²óÇÝ…Ï=—áíÎÿÝ…Üx‹ò™1ÊXÿSNÆ‚òì[•ç¨ì1ò¿Ç˳'(Ry"2Ü®¬2'Ë?wÊ‚‘Kc‚ "{»¬‹¤üm@ξ]YóEŒ¾dœË”y\§¬áD.î.vùm¹¢S¯ÐºBWè ýZòçêÿZBáŸç±ÐåƒÆHŸûbD”/eãY~Ý|>òQ>Œ¹óR¡ã Ÿ}ø ëžCÓŸ©3‡“ìïGòC·SøâSÜúx¬:ºßó ƒ~¹j,bç×ïññA û+~À`74t)·Ï™„ö/¯²ô+m•z&¼2‡EV·åYZ±›‚25·=¸‹©KŸeü̼ýÈ 6y} ŒéÇä['V½…/=Lñè€!Ë®çä#Ïqë;vÚ+ Ly}1~júïóÎæ#DÖV²{ ) š!Sçѽ¡OÏrA“šÓlþò¾* à`É´¶6BÇ?Èñçxã‘Ïñ¸$´Ô>ò9îI¹ØØ‘œfN|õ'žZy‚æmâ nž9žnËyeÚ|ÌV5‰s’ÙÍœ|ÿÕF’ObP’ܪqû‹<üÞN«¸ýžm\wß_˜œxÞ ÇjµÐau-œÝ³ƒÃáþô“Eˆ à<µŠ?¿û9;÷[)¼y5×<ü÷<˜ÆÓK³.Tž@ú<ò è ´ä8Û6øsÕmƒH:ô²¼qã|Ìv5¦é³ÉLŽ þîÉän{ÏN{¥I¯.À—Æ>9‰?ß²ˆ…ažöXæ¾ÝŸP ý®ãí)óY¡Wœ3š‹’Hg$'_ùÿ5s­Í2–ÝEt`0)ONåå{nçƒk…?³ßð+â/}æoÿÀJf<µ„Âç»ðö0>ÍIØèý¼tÝB|‚À/¼/×Þ2“áÿør%뎙1ª+P¥Þͽi‰øUmàÁ—×ÑÜÞŒ6u2-ÊB‡ˆ­å4×4ÑçñqĹ̜ÛúO}rŸhrÇÎejÿP@¢dÍëlqÄ03;‹Î6Ñv~xáAõ\Æ»q²»E­åê{oà­?Ï`×£o#n¿óW‚2ÕÛßeÅ–<¢ê+Øù•!$‰7Ïãªþ{ysÊ|^W©‰6‰[‡D -ÚËgÿý7Î5Jø«j H¿—Û{„ û­œ*5BÅ:ž¹}~~:IÄëIdæ O1bÙcT½üó}F¤ áüp#ÏΊD:¸‚Gg~‡ÆWÀæ "câ4†õ”C4~´ÎËÞgQ_ão‹5õ Å»ãiný\BT©­:2|JÎ.‘@òº°Zݲ¹­Ö#´±é/ÏóY`X<÷™Èì¡™¿­T·ì¢£`óç|üñ*l^‡Ï¢{œ‰ŒÙ÷qË'oñÌë=*©žð¬»ylV>&.:Îk3"ù x%=þÝFrÛân4mÞŒ¥½'<âzfÖ/çÕ'£úö™=È„ß/8Ÿ‰ÖF}ù,üômvMÎYÌ]0“æÝ¼»âo|²¹ž€½_p莗¹u\ êCïðØ;ë8|ÒÍ ×sí²÷™ðð(ž½-a*R™ùz.þ­ v”OÏÜFBS¯fÚŒDþ»ñ_¯‹-SÎ0Fôø+ÏN]ˆF2‰['O¡{„…Ç>z›¾V,4R`Åuª÷AWÄítáTÃéÂéVŠ’›Õ‰G”@taµ8‘À8¥wïâéù‹ø&D@r%2ïÍa¿{¼¶14ŸÀ êöؘ¸\Þ¿£¯Bé[+Y2ó}ôF¶ÈkùÃB°ØÝx”v^‚äÁrìC–ܲ½$ …÷áÁ‡‡£ÁIMÞ>vo”ýÐU4®ÝF¡-Ž«g$ptùV}û1h`ÂoÞ‡¿ é=Tì]Å[¼¿_DOa^ŸÜóU!.G—µIfÝΰ±A¼>y>Ó© í=–£e§€§x3ÿ½âCVïlfwÞ—Œ¹ws¾“ÂW–qËG$›Ìe1@í¢öøZû-”{Ò§g‘Ûo+¦Ìã¿UÂ_Ë-#£¡ä ¾øô#Žaâð©oÀa%æ†g¹Ïo#•¹“èá+‡/Un{‡ß&º±œ_XÂR7ézBN¾Ï3Ͻ…ÉÇŒ6|×ß<ÃÅÎvø=ž|w-;¹kÁZ&,û‰\Ísó²5T…àMföò^@µ§÷±mg$Y³G§ð–ïä½ÞeÕw lÚÿ%£ï{›ÛÔ…¼xßW$PQOôØ—¹;IÄQÇÆµ‰¼k9~^Z wðâC'0¤ ü{1qÑ­ŒÏ.Fz÷^[´Žv«†ø¡ X˜‰Ê¹‡­ëõÀºëÔHž >¾u!_EH౓:ómF'y95ȇw'Ïç-­š°þ×°h ‰Ìþc8ñÂç<úõß17hÈ}ô~bBäI0ïyGÞÝʱ³"Koß̤»ÿJοñÁ–"âKØø÷vÔq½¸þ–;éWÿ ZÉš5‚$ÕåµEÛÞ¿òÈ»›9–/rÇm›˜xßÛ\sß–?7ƒù^?||S}ëÝ\c*`Íñ¿óØ´]t"!™“™5´‰µq×ÓÐb‘ÐSKhÿǹ«»Õ™OXøÊvTj7Ù³xhF*`¦¥äÛ73ð–«³–°iÕG|´í º¨l®¹q.}µÐdaçïa¥ÃÊY‚qâëô÷ Cóäb _˜ÉB·/ZÂè¿ìúhläoã…? Ø A}™|Ë8Ò…MüùÍ×8\%¤©Ã?åvn铈é·Üóò&,3ºôëydaÆE2Ëëvbµ)zZe¢Oß¡tß½‹2k<÷ÍÌÛ¯¼Áüut:7¶¨kyê‘ëé6–k3§ñè¢Ã œõöëûîU¤~ù :M#Æ(Øq:i× 1œÓùŸñðŒmH¦¹KèŸcåû/›ñˆŠÌÝXÛ;bnàŽ…xté|jæ ÅãÔã  äFž \+U.WçÚùlå2f¯ ÅdÒQÙ…Zta³9ñt¶RX-ˆËØÄÅܳx?:0††cÔ’3 ª¯3wÖ& ”YR˜™s Ó¶±üµç˜¿Ê‹FëÆ7Y±X] ü*\Ö~4mgÝ–ð½úO䪒˜2{o¾¹‚¥ÛÞF푈{ ×&Gb(ý†»^Þ„ÝÙŽ.ýY˜q!`£ÓÿŠº‹ö³(ã-aí_>ä»Í§Øy²Ž?<†Ùæâ<ž.:±XÔˆ€èuaµºð¢%1{(#z¼sA?»ž{ÆÇ°ùõ8;ÁcQÖ^IÉ…ÅâRÀS'V›}ÜH‡ÜÎm‹wbÀ'¿(^ÈÎÔ²såîmF{e&©;sîÌ+}‚…+=ØÊ LZ¾„ÕF,Vñ‚kÖãÀê#,5…DÛ“Ì]ø5‘Ámîd…¸°;]<PÃo7c0 aPÖåÊ@CDî L˵Qȉº:V¿¿‹˜x —ÉÛíÆáòž×óv»·WÉÕêÄ+z€¾ÜùPÿuÏb¶†€£!Œyï] KÃ9v|tŒ¨YӞЃìxßó.ëËZ3öïùìL?æ¼2•áÊ;Z<¬°Šï—õ§ó>¾YÞ̈ç®AÚ¿ƒý‡ Œ¾³7«¶Rå“ÌÐIYrË‚+tñ¶øÿÊ$ÖðHBê.TŠõ÷'èÏR=p<‚ôÛЊ3œa º8‘³%t‰D.‹Û&|² æ¯:n&ƒ;ZXû) úЪ.¹ rÐL@ò(÷ËVÀ¶*äLÁ&0KÊ‘³Š#•U?£Œµ=ªÜGPÆÿû¬ËÈBÉ뢥*kP ]ØÎi¦¢©_$1ūԟ­BŠŠ'"H U'jÐwO#\/€§‰ü£Å´#€Z‡\72#µt4ÔÑØ¡!:% #vêKjqù†ƒuh÷ IDATpIO+Õ'‹¨s:e!/&õ¤[˜üý¢¥šSyØÕ*DµQ¦$’Âe“ÞÑTFIE=.Ñ×DÏ1ø\røòº÷ðâȣܰçnÒÝfÊÏäSçÒ¡ÕHxDa q„z[)/©Ã†„1:î¦0ô*‘–²|ª[í8<âù~ÑÝúcÒ7PtÎMlN s=•uqÝÃpÕ×Ñb7ò£Ò_·qÇ8váÂI.”WR£çµ!g© ÈÙªÉÈ™ºj…':³€k¹ÐwÖ¤ð¤Eá)¦€³Ê=‘Ë[‘³K(6+ ä¥á>¼­AÎzÍRÆ`¹ o'v‘b…È%ÍEäÇÆÿ Õ9o²"‡‹K'KÀ.d9Ç(óX¬Ì£ <‘ò^hVï³ÊüF)ò"C™×ãÈ5µÔŠ è¬a¥Qöûåš$(ks9™Óƒ }Šó•µù__Gâ ]¡+t…þóÉhóáþµ3y†Ü¡¼¼ŠâÒ2F‚Óã!ì«÷Ñ®x l¶ó6´*&ßOЀ„Ä~ßœ#‰æ‚CµZJZn HxœÍ”;G¾„Ç$’b Dån£¼¬œêF ¾±ÝÉ0… S†ÒVz‚Â&^)€Ô¾J?Z™Ü7 ÄÆÄ*àhµÕ¥T·8åÈvÑ‹.,™ŒÔP¬g)3wà&ŠñWžÕ^w†“6´-±=‰ÒtP~æÕVÁQ&R“±ì}••ÅA ¿€>óÏPÑnÅ-DÓ£"þ€£¡€Ó5V$·Q•Î?ƒ—’í/Q?â#d‚ä0SUUAÙ‰$JH¢}T7²Â½WbuxD‰¨ì$ø^ $¸1WçSPçB«Ñø†’Ø=mc9%%Õ´BRF‘zTbeg0$&á§E8ò9QnE£QTݽ7±ç¿ÃM{K3í.?⢴4•×`Ñ#—>ÛÊ9UÚŒ[”ðº\„¦$%¤‚ÃçhAu~½Ø[¨iT›[S¥EU´DB·d¢ƒ ¨ðИŸOE»7Ñʺة8t’ZI…ÎOœ(tH¸íM”/¤Yð#".‰ä8Tˆ´USV݈•0Òz%fÐ à¦öxU.7’*–ì¾q™Ž.—‹¦¦&bb~¾øçŸ¹?)!ªËò¶ÛRCþ© ¬èŒŒ'9)Ëʨ¬3ãD",¹'I>hl5/¨ÁéôÚ—Œ0 !Ú).r›‹è¦£®˜¼²VôA$¤¤¦—™Žš"êÅ b¢#º”þôÐxî$­¡Y¤‡v=9¸¨;}„Ò >Ѥe\\в¥¥FC@À?w¥Øêòɯµ#y<ˆ’„ ó%:5ƒ()Ì+¡U &) S¤/*·™â¢ršÚH¢Hx÷~$k~±”é°tàt: ½Þ:¨*(£¾Ý~>D}Iè•I”AÀÓ|–#…m*I£'ДI÷05¶æ Ϋũõ¡$¥$å¯ýÉuNQ_v¬N§“––¢££ÿ© l/?Ea£¯þ¤öÉ T-¯¡ÇÖDY½†¤¤Ô€ÛÖDUQ!uv‚¤%Ì”Œ)&è—E‘ššââ.-vì¡£¶‚Ò²z,‚‘˜”4âÃ}åì1K' ëq¸%$¢³ûcê”îN)Á¢RJO`LÝct˜›°J~DGøÉÇguh¢SH÷½lByE9 ¦„‹ÑæÊŠÜhU^4þQ$¦&èl ¨¬ŠV›ˆäq˜Er´?ª–"Ž—¶!¨ÀãöÑ­?‰ÊäQ'èðñ7‘‘ŽðØš(?wŽz»ð„dc‚~Sÿ_«ÕŠÍf#<<üW©.k#•z’ƒp¶VPPP…¢“HˆòC…›Æšš­"þÅ+™±=¹ŽÔÃoÖĵµµ„††¢Óý«…Ä´4´ãF@%ÔÆÂ ^3eNBcÃñW›)*ñ—ŽAÀÛLþ‘BÚÑ`ð5‘Ù#â7ͽ„Dee%¦xÓEülmj¢Ñ¬!6µ³·³‹¦òÊkÍx !†¬T_ëE¢ÂðQ«ÀÝĹSe˜Ý"*ôaiôL ¼ØÛši¬‘ˆÌÇYSG‡Ç‡H“/­…uxCBõýQ´Kyúÿ¹i¯« ¤¬;—NRlèEŽþªª*¢££ÏWH¸Ô&´ÂS21i[)Tôi¤)‰¤¹«h©å\Y-§ˆèv”Ü‹´#mÅG)lñ Hj¿n„¸üðö¾°GÈ«å²ÔS’WB‹p·k=Å•u˜-ND$Ñ‹_òUߌdeÒjž€€„­î,gjíЩ[ô~Ä$$`«àtE+ áBRBÄÀxOK1'ËÌ €Çí!¢Û­Š|Ðbô3‘™Ž7 u4´k‰J¬õ•Uc¶+2'©éþä«Àá’£¢³ûï#!Ú(*´Þ#…`µ{k5…ÕXð #))?ØK)©¨£Íå‹)+ƒX-‚·…¢S²ãR©\M/¦ ÎS¬ÿÃÞyFQ}mü7»›lzoBzSA0›„騀RE”æß‚‚‚)Ò¤()‚€ô^¤Bï-!!…ôžlßy?ìEE…×}>ÎîܹåÜsžsÎ-øÚYtEâÅ[ä ®T®B•@ Ï)¸ÇíŒ<4øRóÙ¼ì-öÉ}ƒ I%Èå`6Kø×h‚wÉU®fhÌfDQDæäI¥j¡xêSI-ð®ŒÇCÔ!çn[Ë3‰ø×~ŽÊ.zÒ/Ÿ%±Äg÷+‡0Qœ•D|BZÉÿjÕ ösEaÈåÆÍd 5FDQ$ N3ª¸…Iœ¼‘ 29Þ¡©æn™ËÚ¼lÒsT õEi.!=9‘Äôbý«R³J€…ßHÅ$_½E¦Ú€Y„ õšìbÑ­Ù×Ns«ì|¨Ñ°*®˜ÐäÝ!îf\ý‚¨R±Û·’ÈÌ×"‰">5ž¥ª·™:•3×Ó1›$ÜC›PÓ«\ú]QéJ‚+{Xì¨!##ƒƒ•½2oÅ“šSŒ “cêÕÂÍN†&ãÑL¥P?Ðrú2E•qÔÛS9Ä«ŒÍÕS“FòÀ×¥ä[‰d•€³·7JÜ ”‘‘)â_Ùg…E'ÆÝ–õEŸ|’+i °WàêS'™3A•ÜÐe®Æ%çSöçÒ(º7ý›{w;yD$ÌN•hXCÉd‰Ê¡~ÖfL_û‰QËøvr+@_’IzzŽA5ñw¸W笄[¤dbœ©Ü Î u*g®¥c6ß7.¦[¬ùø;¼ÆN£µë¯çs)G¼™Lv±ƒÉ“jõÜ(È ñÁI&C6qIÁ¡ÞÈ5Ù$–ò0]~jû\•©…عyâå¦D0˜¤Ç·²/.äŸh&(Ô{}6ñ)ÁÕ½Q'žäz&Ø;(qñôÇÕÞ…€ ® ÉævB<…vÞ8(Ü ðÁÓÙ@ÊÕ›d”h1`ñ% 9Ä%YÆÅ£:‡ä,{*Wq$?þñ¹.N8;ûáã*Çh‘;zàë®'õZ&B…Jx8ð{7­ˆæÒu8û)PK88HDgü}‘IÅÜIUãäå§£šÄÛ–6;+dpóôM DÛW¢^£@”H˜ô%䦩ñ x4ÞjÊ!î6W÷ƾtÿv1wΧãP¿ÆRoêñk¹™äæ)ðõ@œ‰Vá‚o ûïò‹¤ä$*T$??;…vvv¿Ê’ ‚e7½ Xvì›·_E?ã;Äüü_%Wƒ“’žè«-üWÀ6äq`Úrnz4¤ó€þØÙB"™—·óÃÄxÚ¬ú€6q}"ð¨ àÿþHøŸÄCÀÿ²/ùè àOÿûx´dÙ“äñßÃ_Oÿ>²ŽÏcæ²í\ɱCÌ­LëéÑ¿IåDzëôÏ'€ÿ}<8ü4Éô?ûÀ×ÈèÕ1Ìh¿…–'Ñò¿“oUóÙ0…Þöÿ‚Ö6<ÁšD°ÉÙ„&å«çŒbÃuäjOê÷|“·ß ãÑ´ž‰â‹ è5pºÐz<óúçLîøçõ¸$¹µn8ƒÝ@i߀×N¥•³mŒlø};ý_JÛnN¶áÿž¤Y&W4gäúõ¨¼lccƒ 6Ø`ƒ 6üàZO_hD&üSÇTxÐ|àš*”üñxƒ ßZQ šÙ ›˜=9ò.³…KûB,ÿÇó[x¬²#{"ûëé—é'³þ‚Lóxû4îÉ!Й@Ä¿JÞõ°«§U6l)›'u¼”ÎÏ2hu}\ÿÔû!ô]=G[ò×›&ybáØ€®Ã­—ö¸yyýþµ„¥PàZ÷ ýܽLÒÝï/ê4;‚ÛfÉ Fì•.xÙ’¿6Øð€YgÃ#CD´u‚ `}ñ Âë_®†îW»Û`ƒ 6Ø`ƒ ÿ=hÑþEÇZ %%å©k·„„$IÿL݉¼¼?ûº@aJ®MXÿ‹²óô@AAÁY¯MŠMvþÈôÓ:×Jåðo­¿€ Èd GKnj Òc*Y”DÒÓÓŸÚˆM¦ÿøx§¦¦þ#ã-ÈŠS þô»E)…62bƒ O0AŽL`¤$?ƒâ?ä 2A2cÈO#9ï/.ód20JÈL)¶ Ž ä{ÿ—`KÿÔ¡ûÙo[dÃSïùséÍW6Ø`ƒ 6Ø`ÃÒ¹A@ƒ–=ùÓeHT¬Tñ©»<Æd4‘•E¥Š•%ÛBNFƒ‘ÜÜ\ÿÓ²#däæå"—ËqwwG’¤'¢^‚ PR\‚N¯Ç×Çç‰#½^OA~*Tx¢ê%Š"éié=q2’’B¥ JOŒ|ý9T«ÕhÔüüüž:]!d¤¥¥áåíõT)©)OœL ‚@rr²…7=aãššŠ€ÿß|´ 6Ø`ƒ 6<Ùø¯-òµ%€ÿaB†‹íp6ž8à`ël°Ál°þÚn!IB&“=}­–Ý;ºöŸ;Ú†ÿ3¦Œ¼ÿ×eG@@&ÈxÂŽ‚î¼û$QÙº}ZÇÛl°Álø“¶ßÖ6Ø`ƒ 6Ø`ƒ 6ØðÿÒc(A²uãè+é_x׆Ç9ˆ¶Q°Áž«ñä·M”DDI|Â[h³¾6Vdƒ 6ûñÖû±Ú†»¶æq÷†µÜ§·—ÿzÿ½v^²]ÈúX`K?11 èt:t:FQB40šÌˆegdBg´Š¾d´þ_‡^ozâ'„$™1Zë«ÓéÐ ˜¥{SÚl4b2•W¢Iþî;ú{ïÍÒ¯U‚É€önÿ™žC’Ìõ†ÔÌ ŒfÑFkm°Ál°Á†ÿXÌÂháwz=+O’$3Öò¬”ÏIˆf#z½­ÎˆÉšœ“D#z½•#ZËÑ›Äßv!Í÷ÞÑïòg ³Ñ`}n|§1Íe¸š¥­N‹Þ`¤ÅSeâgK8p- Cé·Ê–iÆP¦¾Æ²3%³ÍBf,;‹Jÿ§7™Këi2èïµù7Ú*Ib^m©¯A¯E«7`Ïk¸¿½eŸë1˜Åß}÷Áí5>Ä_yXý$̆‹ˆñnß”ñîÊŽVo©ciÛMVÙÑ1—&vELzýïÔëÑý¸òm~ˆl‹&‹_£×c0ÞSKÛïú:zŒ¢dëG¨_¹6ßoÉŒÁ /3/tèLær²_v¾ˆfCùÿ>Ìoy¤9]v¼ ¥ò-Š&k=ì÷HfzÃãògEL÷·__ÆïåúÀ`‘D3Ærr-b2›0—sÄ0Ρ®Fý½ºÌ’¥~eæŸ$š0,2ð`ýõ˜jR:ËÌ“ûtì]YF2c¸_'ŠfŒæûåLÿ—ü\I1ÿJßH˜ÍfÄ_-Ò¸_oÝÕzô†òÏÍ&ƒEåc-ÿŠÔ’qzÿ¹›§ëÖB³Ù„Éü;Rxr&aa/Òâ…øæôÜœ´µôë·šô§›T•·'åláÃð`N"I¦ØÓ2sÐtß”L¥óÞPÖ~ˆÅ$]ÌÇ_@ ˜~eDL¥üK÷ëo¥üH¿kÉD*µû:½S9Ûb}n(kãù“úáÁýZ^ç”åçb’d*?¥\NÄhÔ£ÓiÑ?4n)–i¯½ÕÜÃä9:ô÷ÍU‰ñÄ2\ÄüðºÝÏ%³Ñ‹-›²|»<'»ÇëÊö݃yÝC¹¢®,WË—©7`ú•½¿Ë­&Ûb?@WîyY{ÿ{’hÄPö{¤ï·Ÿ¹›xû­$–ý¦d /Ï×%IÄh4ÜÇuþ-˜(¾¼€.ÍšÓü¥.¼ýÓ-@D[–·Œˆ’Å^ß•#“ø/¹¶´Í›½@›ÎŸsXý{œÝZ¦î·t`*æöOÒ¼YsÚ÷ÊÖ¿íÄà²r#b2ÝÏ?ÿ$ —X2}?íOÀô§mŠé÷eæò^n׊æÍš3ö€ö1óä4V|“OØâ&¶ðßI‰EƒÁðhξĚ ýQ©T¨Tý˜µ;‰+{FññÌÕ\Ï)cfŽO!bú1DÑ@ñ®ñ¨"#‰ŽjGמ‹¸öD÷†‘”¼¯R¡ŠnMT¤Švý>â‡Øëïlõ9³–ÆYF[ÜXÞ‡Îí£ˆŽŽ@¦BÕ*š—Úuàó½å‹ÏcÇ7ƒW©P©z3nù)þÈýó’dD[¤ÁøØ@Ù×V2 ¬#Ã6ÆÿêWí™Åôoó2£¾L-lƒ 6Ø`ƒ 6ügˆ²üÝPE´¢M‡ÎŒý¥ÐsçÂbÞU…£ ëÊ»c·“ ÀöOÿ˜îaá„«ñÝÑ[”êÓyíå¶DEEÝšˆ°0¦ÿF„ٜʡ…#h¦""LE§›,7X5¸ÂU¨Â>fCzQ©ó*ê‹ÉÊÚŸÁȽ[Na"ûç %\N§¡ãØwÏ­.9c­B*g°º_w:DªP…dK®Ú¼K\É›a‘´ŠŠâ¥N¯0f[æ=Ö˜žFž®ˆàFN›1”¶aáD„©xeô\θÆâ>¯Ó.2ЍHª/v£7?ÀY7dp!v#s'B@'–~Aï°pÂÃÞbú®k>lXô%äçíaÌÛëȾï·ük»˜0´3×^Âø >m2b0Ç0å+¹^ EÌ·V3(2š¨¨Ö´o÷!Ò½âôãx#,œð°7™´é"ù\eÅÛ½è¡B6‚Yň€Y¿qa‘D´jKÇ—gs I±ó¢ '<ì5>œ¼‡;¤°{Òû¼NxØ œI¶öÉifwîD›¨H"ÂÆ²ßðçÂ÷·Y|¨l¿kÝT*Tamyë“eœS[Ú~hÚGt S‰JÕ“ÙGÒÐrŽïº½BÛVD„}ŵþÁÂbcî¶ùu†Oµ´YŠßÎø¡P©ZÝšVa*TŸlãææ/xµcë|‰&",Œðé±$­„*,’èèh¢"T¨:öbôÎ;*Pdˆ[Jï°ZEµ¢Í+¯3iOPÂÍ}3¨ '<¬£æ%óþØÑÒD¾ñ gó´=(ªeò]ˆVEMtT+"TƒX—*"ŠÉØ6UXÑ­ZÑ©ÿ[q”›‡V0nÆ1´¥e\bñ´%¬?rÛ4{Ð8?–¸ÖFuéÄK­¢‰ŠT1pebì "‡¬²ô‘XÌ­]SÔkçŠó9½l­ú«Ãð¹½mzL1sk×,ÞmNxûÑl¸d™ý»'ðÚ+m‰je‘·^Dm1$®âíÁîùÛæ<.íû¯'­gÿú1tSѺª°Î|ºð0)ú?t4Þ!öÀÏ,˜yÜ:g³ˆ(^dÉÄU:—^ДŒz4úCŒ¸Š$Q$4ù[¦BÙž×ÞXÄ¥»ed]槉W…óêˆï9–úÃerò§ìøkS {Ö¬bÙæë´œeâ»×xí1bbN0¼ÉÜA†BÎÓwyy›piãTÞS¡jÝ UXÆ­=KÎo(Õ_s’l@Kâñïlµ-MßÇ]‹ ™Í˜Å³Ìýl%'ãs­ 1 ÃÑ™D·}‰¨¨h†o¹§áEµšô¸+ø¼TŸÂ£3  '<¬;ŸÌ=D€þ<‹?êG›°"ÂTt›´Ÿôâ{Ä&ùÈ~œ:†ã·ˆžaáD¶Š¤M—LÞW¨‰Û÷-ýU*""T¨Þø’µgs~ÝF£­þã®"ÉšÈÐnçó0á‘íèÚkª͈â_ÅÑ‹™Vs™ïº½JÛVÑDG†£·ÿW‰AÐrçì2…©PµŽBÖ™á³vY8mÂNF ~ •*œ^³Qò€e‡æ#Œ S¡ŠŽ&*²-¯½9S‘”csd—³~±.XHbûWCéNxØP–^JCg3Úµ§uT4QÑQDM>Z†'fqõì&fÝO‰…ØrîÇ ô S¡j‰JÕ‰›/“'ÝOݵ«÷3¦ÿJéœ6‡«?Ž \¥¢Cï¡,¹`Rùå»é¦BÖ‘$ÉÏCÞ cx+ ßøt3…z£n?ã∌jC§Î³9õÀÁÈäÄ_Y¸¬ª?S·^¶Ú D–÷êJUQÑ­ˆ{‡uÉf0kÉÚþª°Ú¼ü:“«n½+ÛÝ1}?©†Ë,ÿl@©v°“”b } wì@ë¨(¢TX‘Pf¤%5ɦÐ5ªß·²jc?/\Â’ßÒ‹9›xgà*«óxt—®¬îÑ\]D×°V¼¶ðžd^ßɘw^æÓ¯azÔ•Ü…ÀÇrdÏF¶W°õ뮄‡EÝš¨0ª¾cÙrü kF ]˜ UX&îI H8a•í(¢#&qÈ,§v¿•œ8ð}Côü&¥7]å‡o¦B¥Á–Ô‡ô‡™’¼Ã,ž§ä›ØXvþ8NA—=M`ó’%,ÚtËâë}³Š½2 Wþ°p WÈ‘ý ~!aÆTœÎ¹ý«™±ð4§qטýÑ^›²•ØØX¾Œp|`¢QMè5ú?ÌŸSW|ΜÚóˆÙÌ;ù‹°Ýü7âĉœ>}š!C† PüFW›RÙ¿v×ý9Ž£ts×äTòH5«8›`ßj8“Êâ•™|öyKd)Ëé?ƱǩHY»Ù}ê6|rûC’”Tðmˬmch¤žÃðÏ?$gäDFD)ÛÛc'—Qj¹$‰Úo­e×[W˜Þì[ªmŸÏËw’õ¯ælNïØÆþŒ®ì‹]‚+‰\»¦%/¼ý)‰¾ä_Go¤ùþïh÷X¯y–@îŽ?Þˆ··p¤h8/º•ª2öî9GºÚL¨Rn›06Ø`ƒ 6Ø`Ã⑯iÿM??F5ë3Mæ5b6í§õÎXæ;^añâŸX±¿ÝóWpVùScgR½h;ý?ÙÆ!ÿÞ´ ÿŒÍ៕–ytl8›V}øG q¦#ã{Ì ™{ ¾œÂÙcç(Ú2üׯ°±umœŽ}Jó9Gxé˶¸Ú˸³åSz̾„ãs#ø@›ÉÉÕß³0µbàDy^š’ аN ñ '×wÛ[… 8ô1Í¿9B›qmPæ¡ZvœwjƒX|ˆÉ/ÍÎV³hë …ùfìEOjùˆ½ø3ÞžKç¶ýo<O4¥Zµ³(?]ÍÞFŽÈ(fÃïñsFzV,öÑä³ø}>üIdz=GãdÞÆeS£cbi˜´Š+s¦z‘5)Ì.Fîî³½ ÈÚõ9Ý¿9Ô`¸¥½VäÇfÃÚoIx•Æ ËÎ]az¹..ÈÝÙ ø#WÝi/ÈÈ`͘½´ßq„%î ž˜BØØ ´þþUÜÊ”qb7— ùèX,MÒ×1lùQN%Ö&h÷$òz}ÍÖèPì|BóYGi7¡5Ǿüïå'ˆ© ñë†0ø›óìySÁ‰½'è´;–EгÌ]¼…5‡ž£·v% U#ù6v.Á—gÑyíQ¢BƒÈ›3 ó¸í|NIñ®¡D?Jôذ?,ÇåÛ, Tñ}‘XBÛÄüöí˜?ùnr9Y»>§ÿÖ`&­;@}g€¶éÍ;vËYm‡RY¦¿ÉØ+ÀèZ—WÞïõ€x¿ó»‚§/`O IDATüèѾ®jŠÓøeÁ{ŒÞ$£eÿQØ•ÆHw0qÊt¶¥¶`Ô«íJƒŒ%G§ÒgâÒÞ¡?’¤ãФ©„¬‰eJˆ–“+GðÕ÷7øy€’-‹äˆÓPŽÆ>_Zî_–¹Ç3@@ˆº"ròŠ0¢ÄÙÝ7g{d˜PçP¬5 ‚½+Þ^.ØËþÅZ+‚ˆz­'`Æ Ö¢3i¬»ÁÉÃ'ƸkÄËý¨cJ!-×›/¼ô| ÈPØ»âããüw¤ˆ˜ôjŠKä¸y;!GÄ Ñb0Êqv·C[˜O‘Z;\½½q³7RPöB…g|$ %…¤«%…#^~Ø?UÌÊŒÑLôkÓé>¼%ÎòÊ}œdê«_³®úÛÈŸã•=±,N2kÉNÖì­ËGÑ1]_ÏèIs9TКzöVpz*­ÇÚ3û—CÜŽÔŒe»R÷¹;Û~ƒûcyÉp„IK³ñX#†„äP¡Ï8VS•yË_þ‚­WÒ÷y?‰[Wíiý¾?Òm#/­<Á€PP§îâÛ!Ó8Üà]*z„òæŽXZyÃÍ5ßqäÒin7jK•2áµ’ãÓysâ6R}ò¦Årsðë‰T^ˉªzήúˆ/ç\fÓ°zÔE¨ 2œ=]°L·¶1nò v¥¿ÈçÝ­:çb,Êq[8ÐP°®÷‡¬ËŒ¦»š¼\#N¾8`2ùÐèÙO˜üÝ+”jéÔ]Œþ:–~ß3µÅoØYA‹¢'Ë¿GMë#ub ›_¡ÛÞX–H1L[²ŸM1M蜽˜Ûõ_aþ¸žŸJÛõGˆ ~ª‰'q™¹Ãõ²XÓ{ëóÂèêRÈéÅðîª"êu…Ò*;}U:ôM·!MK¹íý(80Žž“‘_õ]†˜õ¤í˜Æ{;›³#vÞMÍ­_Ž“¨oÄÜØ™T×Çðå„ãì;[—þç‘ ™Ë¦g½qBËÖï³=«!†¿À뇎×ý‰É¼4àg6-ê‚Ç=ÃÎÍ«9zÇ›OÇòŒñ0Ÿ|¾—m~¼ñ¼„ÑΗÛß%ÜÛîžìíŸÀËóª°.6†ÊV‘}sÛVŸçÕ}±,vcÕ¬Ÿ™¿:ˆñÑyTè6šÆ×¤²]?¾6†½7*c÷ýš/ÞǬ àÊ ž³†vË{ágWãˆ=öǰ·îÇD»ËQ((rä€&?‡"­Eï¸ùøàj/Ã\¨F@Mö;8»¹!7+p÷p£šÂ 7_£NÄÁU‰±¤ü"5fpóöÄUi¦¨ÈŒ\*¢X焟L*µÃ‹HÏÖ¡»àS»=MRW²9¯ÝÓ¸w’ëÚ&´SJ˜1¡ÉÍ¡X/Š_éÄ"ˆ( ¸úTÀÕNÂX’KV‘r{'<}ܰGÄ )"¿@ޏ¹»ã¢4SœW€ZgÀŒ=î~>¸Ètä‚RV@¡Æ ï .€dÙ9Ø»ÓqÔ:޲ú'–±âb*7¶Ÿ¢RØ06LnŠ{ÎzºŒÞËõ$¼ÿ L>Äá&\ù†foüÈæÕ½q×éË$sE ê’ró@RÔ£ÿôÉGÔWh   @‹½¬BµÅ»øà*Ó{>Žd¥7¨ (0+qVšÈÏ-´Úg<œA]bB2«Ñèœ=0ê%d¦Ôz äÅ™\}pQˆŠsÉ.6" ÃÎÁO/Wz=½Ma©š&ôV;ä)ÊÉCc0!âŒO öf yE²| Ô2…7o_œd&4E¹ä«ÍÈPºzã­”Y¹€ 3ŹEà⊳Rñ¶×DIn ·¯pl¿3½Fö¡^I§¥H§ÇdR£5€£›.J„”Ü2yÒÔ|‡äÜJTò’QY€^Aæ‚¿+ DJÒ¯²sÁQ*Ø‹º 'ÜœíÁ@Űà;%Ÿnxö®“KvFFävNxúº?e6úß…-ü7áøñã,\¸ôŒtôÛÖÐÚëÈw—a…Úžx¹¾ÁA˜Jnqë\;^óð¦f@ML™W¹VŒ¿su|ÜÓÞpÅp†Ò •ùælæêÅg_ø<ü³^õxöù{Í>ÐßJ׸¸õYê´tµ8ãh±0‰I¤62‚ºÍáè‹?3dœåø=MA>I™Z^ø 9ñ7‘\¼ðó÷ÁQ¸Iì9üë'rãTSjµ±ÔNö\4/,J%I©Ùä]Þ±üõW¼ê»ã"È'-9‘¸[•hY©µ*ÝKÌ8{âåaÆP¿7o"Q’‘DŽ!ŽTcK"*–o¢Ìɇï.gÝsëX|HD1É·PÔ@P¥>M§Ði `8׿§Ê´Ù nî‡R€€Î38øâF2—îìÑÜ9ϱ'P¾¼’‘Ù;Ù|[=·Y5v g}:ð¿‘í–I86Ê’õõùäÃ$H€=¾¡ȼÏ-?Á—ðÊÞ÷ù*ùܹ †Ü&TV•êò Ðæðñ¦ÔjiY™)4iE‹…i¤rœ˜]i7 Àˆÿ3‘4:t…KEÞ¤^z‰®~Ôö­NRn Çñ ¬jqj7£YáuŠÄÃÞß–ç‡Yî”rmÚ†¦+o“L˜5HøèI›òm‘}åd[oå*(œñôs$ëÂRR1;V ¡««ÕåQ“uû:ç“ø¹T$È;™”øV<[Óž mEïôŸH” ¨´ó è5zt¹áÔu –oÅÉYd¥â“³%»ÒzzÜÊxþ†k3Yxä Æ|éQ&æ“Ç¥CÛ9ŸÝ“Ñ þÌâTÅsCx7cvçèsr(ˆçgÀ9˜z. æ Çì}3Øáù>£:eòÕø;²Ç\äÈ9$\¹€C 2³ˆäàK•ÀLpçËMý-É_''ö€l÷:âšV‡_Éö〾þÈ .q-«µýj3x˜å‹õ»~Ê_Mã˜è̹¬|VÇ…’lOÜÒ¸“—‹¯“7/´lj•ÂÇèÿëµÌ2ìåçYû£‘ÞC:P£4‹T•?çÜ[G¸ÝÚé¡ß0› ˜9 œÝÝÀNþ‡}2׊D ÿJÏldã-fÀ Eh>_‚ϤÓ8L¥GŠºF|ƦæMúže?˜$žäôÁ®tžl)¯RÝÔY—H|º¹í;…w™Gþ>îØÿëA‘;_6É+.¢¼iÐ¥ïІ*é‡X0nûnæ ÈòɶïÂìeCiâãôïégJdûòƒäÈ”˜5:²nÅZFµ<*ö™Çô!žì·ž[Š"¾ç4óë¼Éä—Sùú“}ä»Úãä¬âýµÃ {l ГqrS¿ÍgÀºáÔ'‡k7s&³*½ß `ïôyü|ú%Z7š ýŠ‘ªD¾ü4ÚUw³õHcTí Ö|±’#7dØÉªÐcîlz…i[ÈŒ//áé¾ý§žãã™U0 r”º~*½Wëxÿó¦8;QÿE{÷¤Ùâ W®Q§eL¢ sf K§ÏaÇådÅv4x"_†'3öÓxBƒ÷³û”}~65‡ïá›N.$ïË e 8rœ½Ÿ¡Çô1tv‰çÀÂ9Ì^wÉECŽØˆ·¾øˆ~5ÒX6~!2Ðh<ˆ=áuñÁûi´|f¶gÒÖÁ·ãŸ„-ü7àÈ‘#,]¶”Š•*RPPðû/8W¤a½ÊœY²™å›ìèØ¼~ž(ð}i(5ì 9ç{º@·FXÞiÔ–·ÅœE¡ k„_õZøØñ”YãC…ªfì².s[ÓÙŸåÖ>ToX‹Z{7³h+ÝZÔ¤R 7);§±0ó9zöéNoàì,ÞYÊ·_Öeçø1œÈ’a4CëQŸ¢ÿb9±='ázÏO™-qlùBíºŽÎäI½WÞdèÀÄNšÄW_L…iÄ_8‰S×)ôõ<ÄÂm—Ñe'¡šÇº‘q(K“D3öÁT¯VíŽ\kó6µ)æÈ‘$jWÆ·ºƒ("Ò}ˤ)ë HðèËÖ™=ðu°)4l°Ál°áÿÎpú@.1 ï³[”‰:žyk9)+ŒÖ}ޏJrÉj JÎ]ãÄiW‚ÝJ(rËBÒ™,wz –Àï¶¹ë©8fséN‰ßƒñv g üx¶JU .Ç0‰’%°ç@å¸2E‰Úwƒ¢j¢àŒ€„V}Ã;.‘p}«Õ(+½ÀëC¾ s=\;Å¥šÞÔ¯DìÚ½2¨|ó$’T¦~$e’:†›‡8¥«NXpEëH gWaÎÑô›úÁFî_D-j(Ñ‘!“‚õî9Á ÿœbÔ…%˜ÞÔnÚ?ûrë.ÅËn‹’9øÃx6úÁ8ûK쿚Df‰©Eµ©P».5]ï&¿­¨µÖ{ÖD$¼ˆú¨ã_ÉFg…ž¼ùs¿ûv Èä Ö„³à_žm£½ˆY´ÞÃæ@PÜ)2ÄPÜ•‚—7þ7O‘©ðÇN~÷¹ nFy^>%v À’èEîK`ê1ò´Av&Lwï)ô (î"iðÀ÷·YþÙÖÒè͵ŒêT“çÛº3å½w˜'7áY»=çV ñ« ;~úýûóUëÏØÏšT¯k‡ÎáQÝ{»|Ä*YäæÀ½mDrœpõ8KÌñëè=5$ä sQ¢5[«Į؆Хü<Ê8þZ¶· ¯¶S½LkJÒ‰9y‘:Ã>µîâù sˆ;rŠÔªèé“ÃNLÖ±qÅK#R\¤áö±ỉq":RàNÜ-²ó²¸z#ƒ*Ïã,üÿGn‡C~,˦@®T ˜MCû1h1ÇÓëð¢ò¾ÿ›õ–Ý+¿‡Òq~\¨Bô@_ÎÃ꺽ù¼m(ÊŠ5hàŒÜ?’×ëLdÖº—è9y0>€K­jøù-àëRy©C^z6„À x*s‚J.Cž™IzHCž¯èX^½8úR%á iBèÃÀf ¹É×8sS‰WúY.û»óB°xY³YƒZwW•™oz úr÷'Þ‡º{wù ¥ú@Ž‹> 7ˆ+ÌæèÏG¹}îÊâlœkvá­aCÿד|2™š„ó;ØzÀÏ&–és~a÷Wü÷­§¤Á`VÍ{bølxJéß¾?J†½ö gÄÔC”÷fü7øn£×¨X®¤ ¤×’!œx¯ˆ/ævÁ—#|òür:lÚE¯ "×Ö}Ȉ‰'ý¸ŽutÄ¿~+:DŽbÿy¨_9T¹ —ö¸öíR"µô *çý“öq®z vYÛQ÷ÛÂöQv±žIÅ4_´“Ï”°î¼3i#íæwÁó©áVöxVT»v3S†®D¨Ø†ÁƒÒºžû#¼[@ÂÁ£$†¼Ì@¿"6wï;uÆ]/ /̧ë¢;ÆzGª¸ÊÅcyì»8Š=2ôÙÔ豞¯zøb¯×‘sá8 ÝÞ¡¡á §e&k™.xh%² ”ŽwUìÙ]Ä:´ %WìÃÞœéùSËé…,â!½j{؈¤_Ùͼi;‘GôåÍV¡÷í|¾§îí ”£ÝÕ ä®øÄ%‘‰#^•B©[ßÝš±¾«Ó¢7Ý«šÓK?cî©F¼3³•2×J4xFƒ¯Âò 'ODÓf ÙàÝ„žC»ã“t‡ëO±yëfäE)x‡ͧƒÃ©êv¿Fu# ÆmV¼÷ËíÔn?Šþõí‘Ë5÷úP/‘—Y„Z N’•ç(|©˜œM®Þd]„SDÌ‚OYtµ9Ãfõ!è.?5”h ˆ¥ŸUâ,'sÛÏL¶‚:ñ¿¡ý¯åZî¤ YЕMk6&æ@2—’†°I§ÅÎ-èwæÓÿ…g©qóß¿?¸B=µz}DûºVj¢ãÒº¯™¹ÇŸ×'ô§ %×Èâôž 8ø‹è5¹ˆÁ9ä«áÞ`*ñð—aºv“˜“•õ(!Ç.­¤GOÁ5¬™=‰-æ\”Ï|Á·£ì9y0‹“·ße§ID&“x~àRúÖvÆÅí<1ǯ£óT“RœƒÎÙ¥oÒ\ØÃI»&ôò ¥öˆLïö5Ÿ Åd&+x}ÍF¼(ìEïLㆨ¯®fÃéAØ+íp°Odý”óhª¿Ì>K…¼ÝŒøj+çš%rÄ ~ÎT3î».xq…¹+×o’ð¾q…š¯Gsª¶: î¤lYÇ©üÆÌ<ô=Õ36ðî¼£œ¨T‡¼=F~Ǧ1 ¶ò£&Ž«ûb×öü°¥ãV²×Ñ™ÊÏwÀ¿÷x:4Bá3˜ÈJ)\Ì4ààÿ"ƒGÕ䕎Ixkÿn×uÅ)k%½7°i´#ÄO‹±›IïôÕ^›ÂŠ&wÐ ¹~|K6£Qͳ8À¸£ßò ɬŸ{ùuVŒ9…ТcGÖÁ'oŽÙȵiþ8fnÃÐa/ÛG’‰¢‡h¢”§IPiÙ„Æ~.¤Žÿž¹kæs+KGØ— VʨZ?‹{Ïâl@.RH6¹…÷í!ÃróùaœÇ §Œ­h†îaë§Àõ¹´˜´™‚¶½øxÅdÏófæä²ÏÌgÊd£ïÚçyؼ«Ž%'(©6ŒyS›ãa<Ìñ¯c©ñÍFÆ( ¢Ûb¢wocGêlZNß@Në4è;U/f`Цsäð^~Üt‹ˆÞ­ˆ|] ¡o+z·.äûI'q°¿ÁüQ«ñxcÛÛÂÉÏxaò~^asÎÝv±{$¨}ëk¶2¬YGZ ™E­Žù—Xz Ž}1nøÛÉAOª?Û;_'~½&¨˜¤³78µw*[â_àƒeÛøÀªoí”88:bW|Wþ÷õlªë2bÌN^jI÷iosâ£úNxPå9¾l>’–Ë÷0 rv¾Ç+_¢íä@ŽgÈËLÝßÛ{çñÕÈ=ÔîÔ“7ÂkâãåüÀädvz õšuÇ’þ(ÓGÜ ýÆïyV[Lê…í,š´‘–ó^-?'mx(l àdzÙ̱cÇXµjþ~þØÛÙc6?©풒 æ}ùÐg7‹&bÔ¡hz¼9Œ—¸a'Ô¤×ó³˜ñcÉnï1©¡ƒu§lMz-_Aà¸Løª˜ÐÎSx¯km<힦E”ö ´·Fºþ ${üëvåýñX:î FlÆ+ýFÑ­ãëØÏ¾ÊÔlxûräpÝû½OÔè'´ç‡Åý©~÷¸ç­_¡ ß@óUÓx 7÷-eÓV-&Mçùü¬ºt˜„ xzj9wÉŽ fÓÂù¢F°¸ÿ*VþXÒWÐîåµÞ˜Èr3KÂlt% $MÝ}\¸µCΧw båZ(ì.‘.Q‚àÎcø¨f*FÙe~賑éÝébKÛ`ƒ 6Ø`ƒ ÿßð×~@]€¬=Œè3Ø…­‘‹2ëN3FLèeÁD´k„gî\~˜>½}1ׯ×âÃw\¸»FÎxeëÞbÌ‹ôe]ÞY6.:G“—iäB’^B(hP»9Y“š¿"ˆfª„ æ‹Õ¯ã‹Žs+–²kóšÖ{ÝÕë„z´ ¢‡—MpïtNjw'KÃh…\ݳÍ;í赨1v@~nÅé´xÉ«4̦Ɋaíü‹Tiß!îÖ· ¾”°áiÌz›¤9[TKøM¾-‰€t·_õhìpVˆèe xgfƒßì+ZŠ5®HGgðÉ!ê‚÷é;nÒuÏ6ŠŽñÍ7?ñË΋<ûj½þ3_ÿP³mÐ'ˆ cØŒ~,üp󶪤\®'E± ÜI¿vx†„Óí¹L;†ÝN"9i.4~­9w#;ékÙr±>íëáUfuªþâ7¬K|› -ʤâÍÅ$ÞÈeý&„þÕ>ÈãÂöMì9ìD÷yÍq<ö3æÒ13¢WÈ9(}ñÏ:Àú…§Ù`*$%UÍŠuÕiÜ !Š?¿°Ù¤Cí×q3ºSߣLb/o.4¥É†{Á?Â=¹¬òø7æØ$ 0z £Ô ó7äo²}þ˸ʡv»ax&»iÍÆ;ø7 Ç—;éAûM¢ÿpþ÷ÁPz¶¬øk% H 9:âXœF‘Ö|_è)qvÆIén¥ï CaÌâê/ÛI¸¾‚iÕ2áÚÕôþ‡í‹ˆÙ|Wæ$D“½›#v/ê½0’ 3ÚàN{'/âü#Ô QYŽôü· €`Уӹàô«4çjš\H9zœ¾-iÑ$IJ¨DÑ,!=)¦Ü¬ÇP¡ÍkU·,±s£º£3N2³%QdÖQl’ðMK&«É»tª`Ѿ!ϲô,WiFÇT;w*ÕŒfûé“d8™p2{YË“ØÝ™œ>x’Ë×7[»»2{úêoѹ‘ ;I„:/ÒPi©Ÿw­ç©µ04xjÀNT ëËݾ€‰˜)_{ü,ujGXvM>w9‰‚ž‹Zà|q3¢$¿gOå 9*rÔ¦ƒ>ŒÏö|`Ù}g8ÂÇS9Þc aÆn\¼JûAÕФ](c瀃Җ(HÜÇŠy‰´þ.UÜ-«tbŽÄòJ—ie¾•Ãùm[ØwÌ…îsX“2*4~q«_çü‚q¬“Ç+ïv!Tù;ú¡”kJH&:7G(©Ò¦/¶±>ç·N¤p%bÔ*"Hf^ÄmãíjíùìûöÖwíñ íÈg?w nã"öìÙFŠº6]>êC§°¹l2 IDATN5‘Àœî‹8‘T“ õËÙ&™¬!W¬a •Ä0³ç\ö½Žp¯ rìP˜„rúw¶}J!YŒ?†]Nf²RÝx¾wþr˘%`å¼8ž:„Z^:¶|¹Ï ëX[ÓÌÉ9ƒ˜¸h-=ƾ†§¼¼tñx–ê5šqâÔnôŽþø”Pâ‘Mìî8sb…j85;t:Ì’µ(â%Ô¥yÇ霋ÓQ9§!Ï¿À©•{Èo#Ç\¡rS*6{ÎrH@Mê§Ý"3-•ìª=éñ¬•µJr9‡™;¹]×O%‘Q@ípq«F•&瘼Ѕ)«ûÀ¾Û‚ÜÔÃl˜·žc·ò‘+‹)6¨(6hª¿EŸFVVïæG}¥ÁÁ¹MK™³æ FW ½Y‰ÍTâ+» |!ŒF†t& en Ÿ,b6.âä^;@ÀÁ]…(˜1ÕÌ«u­þ‚ðÍkꫜ>“ŒÜ» a~pvÕ2vcÎg-(Ú>Ž÷oæR£atý¾/ßù–YjrS.·2Û²Àļ2 j·éKíß›Ïf¦y¥¡Ñb Üý©ooYȪ+Ñb6iQSBN§eì³Þ‰ä›qdµGÕ¸²åjSèó4ð6‚àEg¢iìb±?õíe˜©œX½„ï7Þ@t“P\¨Q(1õè´j@I!ÏL#£êktmäbza<{‚³b ¨3˜Wª’½‡?uí4Ú8Ž,^ƪ_n#¸É1T¡SPeŠ¢5é3aäC&r"ûfÎF×g £:;ß;Eèn‰&Lž©ÿLCëÎmG*9»á%A§ÇdÒ¡V¡0;ÏeX¨…¡xÔiI½1'9CD™Ýü ›ve´ëyöì=ÈO(xëÕ¼"DdˆÖ{ÛIÏ"Ã9‘ Ÿ}Ƴ‚!užÅ` ¨<2d¶.x|¸qãÆÿ±wÞQUÙÿ¼™ÌL2©¤BI :CH§w)*Xp±±t-ë®um? Š¢‚J¯Ò{/R @( ¤é½—Éô÷û#¡ J °Áï_yï¾sÏ=÷œsϹ÷\æÏŸ^¯§ººšÂÂB\\\øÓs¹M?ÛvÊ«swòZ§"Ö­ZÅÉâÆ¿;Å!”ÇmãÀá4LmÚä‹LoA‚ 5ÙËçò?ÎbÖ¬=dÙÉIþ bp£›a†f˜a†f´z¸ââ–©¦E•^Î h4¶Ø:åP`¬¥PSJµ·–ØÒoò?™½bó?y‚#»á§´l Ö±~Ö:ü{Ô5§o •ùÇØðsÒþ2ilrìhã\JµÖØ,Ë:CB 7>•{“ ‚D† V %2«’ r”öVØXjÑÓ@N‰ÖÖîØb£sUš¦Ý¶N‘ÐÉ?Ðp|×Fvnµà¡¹ÓèÚä×VWS®é…kc¯,;–µ³ã0îo<< =6€®ð ¶vØ:è©%g¾þ‘‹1çÅ0‚"ºÒ0Õf“p0³éä„ —®“˜±úWÏÿˆ§ìJ;/·¦ ЉÃ+b‘éJH»6Wíö¯aý¬ƒ¾?¿«z¢)9Ïo»3éñØßÉÔÖäqtÛ&ö°ááŸ&°°R °. @[B–DÆÞƒÞOñάÅ,^¸…KÿAß^Sùöãi'ÉßË‹C#zÝukcÇ®ô7ìgÞê¬kFµÓ©¶@YEÓ84 + LWvÌ_g«©º%è 8™QÙøŸ¶ãùeî{ÄœM'½éwƒ®¡1ù j¨(Í%³Xx2hê'|æ‡>·˜ê–TÍ‚:M=µ„Úd²så¦+k÷Ì[¹B{… Yq>UWE•êkK©‘ËX¶'æù¯Y¼d-??Dþ¡xÎÔšO‹TŽBnÔBÞtGeÓ|“˱°!WX6Éõ¥yhѨ§%‰3Nnç)iÚ‹_›ŸÆùÀ@åtB*™ML{' ‰®UE© ºÜ4  õ”KõHíQ”P\­mÔÓ–r¤­*Š' u †FúD#Fn ¶±Æ2ÿúÆpCu!•^$)´í؇‘UY“]Iµ¢/îzôR7OùˆÅ ³xáb-šF¨¯#r½­áÚÀŠ´I·6”çQêéößÝÐÜ‘ÐVQY^Ô4guèåV(Èþ(wO XX*QÚå5ê}¹ÆjÚº]9e¥#•Êí½ñê‹.p&!5ötó2?¬\΂/0jL¾XÕgq¡ÊtÙÏ7ºÚco늓k2'ËÿjT:ááTC¥Út{Œ¯WÿÊây2åÁ®øx¹a‹Ž¢Œ½¬ú>‰öÓ§ó@ˆ#‚éû’CèØ¦±ÂKßßapâö×ÿÞÔcIpŸNÚŸçÐÁô6rD‰£^šqYï,Xô"ámd`2b(k@/‘€ Ò6À…ìøÍ•¨q ¤6¤J#~½;!Ñ–R—Óhkë+(¶‘¡´¶ÆÒ A§oÒ³¢½ßS|ù…?Û¾œÉ™R°’(ŠÈ%ôŸøÏŽ|.vµèL(ô™lZºŸÊŽO³xåÌ›Nx{G$&Œt†¦Yc2aŒùÛøl–ž×Ö-eñ¢eÌx¦'R­SC%%~“\…T@TH%ÞLxóû¦~/bþü)t³S 56 5ý±Ë;™HZ­‰žº %™SçXˆÎ(¯‘Ó™P“EbIjBxùǹ,Z´ï^Páß?oÀt]¾¡òšù|•FPÈu˜BÞ˜3j®Ø“ãïœ<‹ØgG{l ZôúKU–£ƒ©©£®1W`2aÔenã»eJÞ]¿ŒÅ‹ñþ£Á#`ÂT§E¯kü–“ 6•çÈ*Ñ7U´Î!ßÍAh¤÷RoDÑTGÖ±¬=ÀWë–±hÑ·½È+ãC°½IRC©TRQZAƒØZcçÊ{ó±xÑb/üŽßˆ»9rë.’™-ÈL bbb¨­mt~L&½zõBjñ'w(ij©­kÀèìŠrBzcUXCEU¸Û€­¡v!HìDÄKЍ0“,·øJ—> TÙ0óBDù·n&I¤(šv ërc9r8iÄ <1pÆ$ •+P6wE­S£®®Fíâ3Cºâ˜–F^®%‘¸³~S»fìFÓëì-e áoŸÍ„´å¼þŸÏÙiêÏŒp£Ñ… X€Ì†¶¾yþëiW•ê+b£ÁˆN«mTâ‚Ã%µ§G‹´±ÌÞï`Bo!£k{O’âçócn…ô¦FLY´–˜xuóô±(àçIï7*úºóÚ¯&xT¬K3H8#Òu?Æ‹éd)éê{]™3Ì0à 3Ì0ÃŒÖ _†½jÏÌŸg# rD_tžŠN31 ¹C‹ÙöùzÎÛfq®º>ÞŒ%œ<|‚´ÂBr“ÎâÜg2í]m0‘¿ýcÖW>Á'ýn¡T]&[¿Á²óíx 0•M+#ï8„®“œØ¼+Ë3ÝÑL MÔ4œ-#ìµi»Y·ã09YrVm“Ò»[?T#6²ñ«ù”ûÈJÓऄGÝI6lñkÛkl‰˜êÈÜXšâ‚æøIœNÇI*¡6þg¦¿KÌ?^çÜ꜒Ùãßµ Bá*ý†7úÕI¬üôkvi»2º$µË÷bÙy(¡E[øá¢-þö¶(e)$ÖOelÇkgÑÐ@ÑéͬÙq”äìLÖUÒ­[ nåÛY;[J›Ò£Tº†âÙÖ4»ùñµÙøÍ˜Í‹anX PŸ±»bÉɶ`õ&Uø‚/±ÖXCMMµj-p‘=?}Ï —ѼöïÑøJ E‰Ø¿ŸŒ‹•lX¢#rL ÿÊüÏW’hBWtž²y\¡&çÈ:¾ùÅŽw·íI)ÜÄúTŸ Ä¡;®®èøTælÙIJt74 'qðNtdØt‘Ÿ¿XI]€ž‚y´èiÜœu„D¯`Û—H³Ê ±Æ’Ð!=Q_$eý!VÎ+Çêü!LAcp¶êȰ—­øqÑrVt°¢òH Þ£ÆÝ†?}}Ÿ5„˜ÂÐéö|{•l—w™Èݬ*¾ç»mõ,!;½û^ã ‰UkÈ2xhy’ýµþŒ÷òĶ&…M{“i0”z¤¨É}±Ã„:{;Ÿ¾QÆ;ñïÐÃØ@iÚQvœÎA]z‘rIFªo·­9³€É>DéÛåÓ¿Fr·|Äúš)|ÑûJš×¤+"aã\Î(ÿÎ7>w”¢üèl^ý0!¯O'qÕr¬\ñéØž.½ö²é› œ6#MtgX—ëÒ>5uÔ××R]§Á¤¸Ã{MÊϱkõ2Ò\¬L&L&GzʘwsôÃ/ùRM€ÁD}½ŽCFuÄgÇ.,PÓÎV¤.?“2Ç@th¼ðúqî?t2¡Þ²;Lç±uÁ’¼Q(eéh'#àRLÏd@£mºçVЗ²[Kè¥jX]@†à„ª{û;KØ7IKROqâdêÒ4òdíQ);3mÇæìfñâ ¼¬,‘JÒ9µS`ðô¾8º1ØûKZM£ ]} 9åÐu`¬2ŽR[]–öt{r()ŸÌgÞŒbÆO™Hoû›œ"¼N’ôõäÜÂúÝGI-»ÈÆîRúõ膻&›q»9‘”EXÒÇ pDÈgçÞXrr´¬]a@ý(C¦iYðÉ*üjÈ>[JûGzâíWBÇî{Ø2c9nu¤^P8ª3.ÿe‹(õhŒö¸ù:ã§]ÎìY6’I²pcä#ã½u ¿XËœb?< ‰\¨rÇ(ü·«„™0 è)z½ý¥S:Ñjõ˜L"ˆF´=&QÇîŒô_΂Ï×é[Oö™R¦=GKŸ ·u´£C‰»ª˜ð– £w'Kw.盲®xÙjÑÚveT÷z4:#F±é´›hD“ϪÕìõz ²Ôôüû@\0Q]p ©"|©;—A©Îž€ŽäŦcðöÆ×Çñ–äú®C[@âžmì.lOo§Ž]´¥Oh‡?<Á\›pO"wÀ;(€žÑ›ØòÕ’åé$ÖÛ6¤±Ò€©"ƒ£‡ö’”Z€ve š§ý¢;߯œÏòîH*Ò(Çx;§“Ñ~0¯ß:õÚÁæH”¤¬wbpw¨ØÉw¯Ï$¯Ë”§·°2^m·Ñ 4î"¡í@&; €‰²Ã³ùÇG§òÆtN¯ZÎqkW:¶õ¤æÔ*vºÒÛ±ó§¥xôîG[»kí´.ï»ö"+GÃÚeTcÈ‹:沚J¿zr’JðŸÔ('yÛBæìwcú’Wéi!`ªºHBìÎeSº® qÒ³tOÞÀÌ‹.·±Bn‘ÂYÍsLè ¢¹¸•Þ<ÊS»3Ö²šÜcË™“@”O.)‰õ¸†=ˈ¾ ¬ý5–Õ?—ÒÖ"iÆùº¢hØÄoeòoŸ0T)G¼¸Û¤£&ï …måÑõ]Å–8k‘J’ƘÀîô÷;Gê†ßX¹ Yz’‰¸;X"î\Åçüèëd@*)Æ¿óPÀ¤¥èÌVn;BZFëâDù)9{`;J|éáxŽ#ùŽ„õý}i¸˶½qääY½F¤oØM¹_ÿŒ¶£‚ò¬ŒÝaT¯‹l;²…Y?ÖÓÅ6‹³%ÎôŒsö*¾I0àjçHËTNW>ÆÈ $E ¬ØŸh*%ýŒšÁS{#¥Š¬¸µ|»¤ ÿÞ0m9©§N•Oqz ’€Ñµ·‡ÂM,]cÀËÍû†C$Ø âM§@º¿bì~Ä"ÈuAuÁÐM¦§ô\,;ÎäPWr‘*‹Æ¨ÚBÅ^~|k&龞¼›•§Ô8ôéÆ˜.çYýýr;)T¤‘üc®’/“QFÛT)Ã.€vP–#Ë2б]RY±m ?duÀE©CkÛ‰!ƒzàfDgãç,]aIxïÑD÷ ÅðÅ:¬g.¢¼'XJÎ[l±éàDÜÑÌùYMÛ’xŠƒ# é$åäŽl —s¢m]-Š^Óøºø)þõÑ&=`‰QoÀ€„6"x¼ ÏA«×¢¥þ]õTÛËÒu°­Œ'±À‹‘¢E£î¾Ü®ÆÁtë™ÆÑu«IÖÔRp>Jë1w÷äâîmÌXTGwYGÓ ôë9‚èà3¬Z»€²äv8XêÑ;ôdlˆÆÐ´5èÆ¶KWrŒ{Ð{>E¤#€Q!K®á§òNxšÒ8nÊC¾Ž(+’X»/½©”Ôør>Õ%bÓFKŸ¨"åšù|é§*Ò÷Æ“š’BÃJ7<ªC­3\Ifš h4&®øa&,q÷ñÁO»æŠ}Vx2.ª#i«’Й® ­¾é: cSŸ“­VŠ…s0ÁA›9°n-§JIKÉ¢Þ%pÁÓZKü‘E¬r$»B‹¿uo†„b媕Ԥ¸¡=vœ6Ï¿I pæÊ90“QFo‰­w¾®‡Ø¾~vu9TMû^më èMRà‹ßþËéóÊèìn0 Á“aöäv}ùlSa´ìŠ¥TD¯3`0èÑ]Ê}ˆ&tzF£¢VßXýÖ²cƒ±bæ r¡äè|§OÆЩ 9¹i»O«i;j ³^poZ9pÓZ Êî½1ÍÜCÊÓ}èíÂðvËùö“5DÐc‰ƒ__†öv£:û<9¹t oKå©tªå.t ¶!k_:BP{|<í¹¯ŠåÞ%Hÿ*™îàð‚€ÆÚ«ú+[á –Ñ©mÛá®Þ+Š"ÎÎÎtïÞ¾}ûÒ·o_T*íÚµ»ª¤ÜM`¨äü±íüºöii‡Y›‰[džö ÂVPBÜüß0E ¢G[ëÆÐ¥ûùåçC$§œ >þ7~Ëqbʤ±ø:´ÖrÁ&4ÕçØ¹h;iz=y‰‡9|ô²ÀpFŽï†¤†´=»‰KLçbI6g&Óà†¿»=2©ä²ï—8ì'N Äîú¦kÉ;µ¥+âIOgád,½TŒŽì„ƒ³ 'ֳꬔQãFä¦DZ|œ…«¶s¢À»:›ˆ(ú9‰$o_Ä¡*+L6méë Y ;Øø[6¥Ù'‰;¯ÆÑÏ’ò=ñ;ÒÝ¡”#¿@4„îžJ¤B.ûæÆá0q]/×/0P[œÌÑ­…øN€¿›’’³gI­²cø#‘xÈ«H\*Ÿô °älÊQ²Ó3H?ŽS.à1öABêÖñêËGèòL4Ê“Ëyï_éô™ÚÒ‹ùye5½Æ‡à`Öef˜a†f˜aÆM ×ëIM?OH— ª«k¨¬ªÂÏ·F“ eÊ)¤§N€þʉ9ÁÖù‘Ôc@@ÀÁÁá‹á5v~ƒð,ØClf%j‹Î<úÖ¼‘ÓÆÃ—ŠC;9Ûà@·ÐÑŒíå‚T]ÄÙ“ ?“CøS<5<€†‹§Rq?Wåïb &“‰úúzìlGSƒš:“Q!¡¡¸¢âbÔVî¨Â9ç,‰çÓ)³ŒáåçÂq”4ö¶.ó»Ò$u°¢¶¼÷^Qô î„1y/‡³À»ïÆ€Ó[8V+'¨{¼lÀÒ½VçO‘xñÊA¼öl(ö@}q> öÈ‹r(,­ ºÁ€ÜÞcÖ64=Ÿ¤;˜êë©—ˆ#õ%E—£±ï€ª›ù)ÉäQZ ᯿BÄõ™ ƒ†‚”#œ,¶ÄÇÔZ‘ƒé(ÑqþÄa.˜:3áÁ!ôp·DA"u" W¼íåHõŃì8' ¤¶´§Î¡øØ^ ¨ˆ¢¶NøµµG¬p¤ƒ–ŠN³çTîílÑ–cÕþFNìFÍÑC¤—U¡¶èÌco Å#&A†µK;»z ´öÄA*}"ŽLccÆ ¥·—…kO”“H¼A¹å¦?†=àоƸœ®¨Ã²í¼<® %N®^”ÚM²Æ™>£â€Ô®#vµe¤'%+íÍ““âg+úm?dgrº°µÃH^¢û5 `£ÑˆZ­ÆÖÖö—q×ô¹¥T}‡^'ÛÃñ“yàâBÎáCdT€GÏhÆŽÂJ®ÄX”GVz Y½”˜À6ÈªÒØyà4ùyÕøMú¿u¿D K/‚{û`cÒPžyœíqéH<{2òᇠqlLÀgfBpOú‡øc#»’軘‚ËCîjy9ik4T““QLÇIÑÙþ÷s¼¡¡‰D‚B¡øÓ„x}q;7dÅ9–•S¥ÖãÖ=• ¹±{IÕy=x$ƒÚ\—ä5a  AžØÊ¤·¤it:F£¥òºâÝ B}…Å”–WPQQAE™ ¯ÞÝñ÷ëItçJâögP^YAµQÀ3j"|póÔ’›@NE)åŠ ÆŽFoOå ÇÙºc.7>©l4ihhøSÙAê!…—•Q¦öaâ‹Ãñ¶hJb#"Xºè‚–ØZJ1æŸâdv9¥2:G$º—ç-'žDQ¤¶¶;»ëÓzJ39qø4 . |`vXØ´'¢ƒŽÓ iä•QV"ùÖ‡Œï¨Á‰À0'2wÆr¡²’Š üúMä1•Z½€½«'¾žvH$mèâ@õù<ŒNþøyØÞ0W]]ƒýU+Z}9ÉÇ8[a…·‹hO`Õ8|2ÁÖ™® nxÛ!ädzý´ÿ6Ô—bß9о}zÒp`;gª8ú?ÀsÃ|ÉiëáE}ÊŽeË >œaa¾wTþ]¯×£×ë±¶¾Í-ÙM$–méÝ­'íý­¸x4Ž‹: c€¿+½1Õ‘›[Š&7‘ýj& ÁÍêÎCšuuu(•J¤Òæ‡M¢gw7ÜÜ\ñôòÀÝÑ #öøzb/0Ntî쎕¤ Ñ)‹ÛOFµ[ß±LéwljӚšìí¯JSÉå27”ÞDörCއÁ´¡ŒŒäTŠ*Ê)Ö:Ð9¸-6JWƒ<°±" b¨*$¯¨”òêz”]åµ/@Gmq’5¸ws£.íK;ph?÷ÜÝ̬Á`Ý•G_ˆ»¡Ž’Œãì8œŽ…WoFM|`{0TVS¯”#1¨©.-¡´¤}ŸŒF—OzQ åÚ&Ù¾Êð‹Èm<èèïˆ Öžxøyáä@ßþ}°­Ï!=ó<Ååeëœ i‡ƒ•|sIJ(Ää݇þöˆUmÙ '‰ “…]0ÑíPzàá %óä rAŒ7˜_ôkü:xao%C@D/8Ó©“;.¡Ø&&ϧ=¼= t¹bs/ùðž]é$¥2û,gÓ‹¡]wzv£gg7,•®^òÃDŒR‚{õ&@zŒ ¥Ôè xôA¸!Ý;ãæ®'õÜE4%8V&Á/d #†õDz"“Œ Y””—Q¢w¥G7/,e®têâÑtŽ ]Ù9ö±gô$@]ee:9ÝF À[ "2œ‚º`§) #-…ì g†½2 •‹%BE2[$RR¬¦ãcñX9 “Ô¼'eÌüÂïæs£“VJÒñ ºZ|{µÇÑÚNA(¥L¤®»#Ç„`éF`  Ö¾øú[“uÉ>ÇŒdPWtží¼pu°l´#´i⡈Ap¦S°V˜0ÊÜéÚ»íLG8x²”zÑ‚v=‡æï—·3n^r4åÉäh<ðñ ¢‹ ]£z#ÍI"íâEª”ƒxmj_ìƒÔ…à`w Š6íèÙ+ûÚ£Ä)E«t" $ŠÐŽî8º6Ùç6–H$øuòNƒZã6”˜~Öä¯Å½‹v®x·sÃÉÅow[$ˆEÚùyálkQt cÖr{ÚèF]|,éeà:†×î„%&´µÕ”Ù3êÅI¨|lþ$õ{‰O-d¹U$£:¶% :ˆÒØd–WRQUÑÖ^¨É»HöE#žÁŽT$§Ü`§œœØL´î®¸:*o˜ü¬®®ÆÖÖ¦©DÚè]GÐ¥|ž 4Ö-3J1=¨ÑüΕ›Y]ýakŽýe.Íòñ*]Üp,)º¼Bkk‹ÃŸßo‚ØZφë)Ë<ξõqäI%ˆmû0vH8þ—ï,ªàäÊx$áQtõT" 9øÝJNŠ‚Ì çðÇx,ÄúöÓ´‚pm:ûï!ÃhÀ —ãΰa!M»ÊÔd>@\B墈Q¯Å±ÏC<ê‹R&…ž‡‡GÓÙæw¡ªòO³oùodYHݺ2dȺ:7NñâuOònÑþýØh|ì¢ÃÌY—€VoD"Wñè ¡8 œÍ¦sJ<úcR*ÏDziãq*083|xOlΦPâØ‘à®žX åœü5iT ]Ü­ ÄÍ?I›‡G]E£‘º²tNýV†ï¸¼-Dª²r¨Ô¸µÃŠZRw§Ö» Ý:»Rû+[NPëÚƒ>6u´ Eg’Ùº¾†>OöÃ.ÿ ûcEB'vÁ|šÄ\[ú ÂÖÛ6à 3Ì0à 3nµZÍúÍ»xlâX²³ó81‹Ñáh œ×ÎG6o6¨Õ—}h‰§ÖóÞ¡ >¾>-š¾Azâ&÷3ýÙ=làaô”””àåéÕ¢tþÞÛÖpü—Y‚1e4¾šå“×fîaÑŒ=t›ùD(î•7«|½•çÄf,-¯o¯%ƽùmü—u:eeexzz6SZ‚¾[ãùž¹Sé¹ÑûXXXÜ qØRóèöæxm]-Z­g'ç;Ö&þèn¬æqU«ÕRQQ‡‡Ç]Ô9ͧÍd2QPP@Û¶m[à»´hÙ9Ùø´ó¹ÍQºóyx'ý¬¯¯G­V7]ýuwPñûŽž¥°A,»ˆóaãx{P0öò;¯]XXˆ““r¹¼FöZÿ9gïŒ÷""¹¹¹´ón÷‡íßþW®{óZµõ‡ÞšL·´UçOå;//ÛHø7ÏÎëÔ)ÌÿÛçxÍ_ÄhÛæŽ%Ë&MÃøé"o/ofEˆëÛ¼]ý ÞJzâ¿nóï†ïÜ<^ÞøowJÓï[½{¾bKpêFºææ’w³_nÕ?nyêoºŠ‹Äÿ¶ž3¥6ÈË+)ôèʈ±ƒèãx+¶Ä@MÒ<¦¾Oð¤0û>À¤žÎ¿ãЭØQ4R¿”Ÿ·'S¬g‚¯lscžßž=¸Ûcq+Úû^xcÍçEóÛmÞ¦ÜÕ¼ðÉ| òmÎÒâO?““‡‡'••È,dÈd²&€EQ¼œ6nMFûÍlL••×>ødg·ê«¹tk€(ùC~£ÿ eWé9qøu/yùòt"¯QzM›…[%$XÚ1ìïA »‘¡•øöŽoÿá7y߃þSFßTŒ¼z3þÞ7tã.´g`ÿÎ8Û5)+÷þH$ÅÆ¹]zGÀÁ×§ñÄ®("bKÐЗ?ê>‰©á×÷!˜QO6åÕá›þݹ:·ú7à 3Ì0à 3þ¸ûá…›}áö¿,$w…έ8=zŽf­ m%7ê&K[¤Žþ„kO ¢yoÞ›½•ç„;ønKŒ{óÛø³¶%·tɦp—è»5ž w8·Ú#Aþ¼¢Õ}éöæ¸DÜ€®Ûl«Å䉤…ù%´m‚DhÁïÞË6þl”î|ÞQ%’»¾—YZaie•Œí#™6°s‹$o_6¸%Ý%ÜeùøóÙ.ÜáW„?R[­ÐO»µ¿ÞÎx7×ÎËvôšô¶·Ó¦NÞÆ»ÙÉßµy»úA¸#¹¹W6ÿnøÎÍã¥pWhîJ?…fQ{;¼º5!´  ÿ5U$±ceeƒ•BîÁŒˆ¥·ã­n$²ÀÚ;‚)S-)”Ú`¯”ßC·:æ‚ En툗o]TtUÞœçB‹Îé–ÓwÛƒZ°¥;3…Í{CâýïMÒ±ÇRѼ¦Í)’Ì:3Z«§vEéÝ¢àÞŸ9@á.Ñn"ûÐ V­ÜKqàd^öÅZ¸u¥|KÊ]h~_¯yG¸Ž¡D ÷ýÀ›a†f˜a†÷»&PRRrŸ‘,`MFJKKïj% VþnX‹&*KJhÞ—©=¾ýÔ%%Ô™¥­UÈŽÑd¼G²Óúy¡ÓëÐh4­†‚ `00šZ×]’½^ßêdGDÄ$šZ]—’å÷ã\»Wr(X6´ U{èë*)­6!¶ýåååH%ÒûR׉¢ØjeºµùM—ü¢ÒÒR$‚ä.òL@¬è8Ô]I Íç‚¿áí0•–R*ŠüïZ`3ÌhÅöOb‰ø£I= ƒNKÙ­®AâAظ ¢ˆI¯½#})BÛ(&¶MFtå%”˜Ç_¬zŒa<ºµ©wgskë†9lÆ_>]ã…S·ÞøØKÿÇzßz‹›a†f˜a†÷J¸Ãšµµõ}·P2èuz¬ml+¦Ü(wð²Â,ª­ƒCÍ=•V A@¬­EHï8mE¼hÐ44Þ½ÚÊÆH¯×c4[]F“V×*eZÝ ¾ý;tÿËÐh4èt÷’¯V2-4¿µ:-V–V¥ï3ˆ¢Hƒ¦¡õÉ´ \–éVå7 y”J%Rɽ‰Émîà–gk9f˜aÆý¹B‰üv “…²å–@R)VfÝñ„6-즨ÔÿS4'€Íø‹B‚}»n„·û_í¿| ¤R³8˜a†f˜aÆÿö²qû¯‹â}œ7 ÔÔÖ ´²2‹€Í‚N¯§®®Î,;€V£A*•¶:^˜D¢(¶:ºt: ­’_ÕUÕ­V¦•Jå};GŒFã}«+ª%R¬”Jä÷a ¼¢¼Õò¾5úM‚€µÒ‰D‚f˜a†f˜ñ¿sØ 3þ²HÍl0à 3Ì0ÃŒÿyÈÑwÔ‚ˆø_¼iê6i¾ç'‚îŒKæú-­JxÌ<ø¯Í£ûŸ®VI›Y¤ï9ü/Y»&¯w×s0¾ßt§ÙË1à ó¬ºý¸[¶çþZ ßÙ¸#ÿ›0oû2ÃŒ¿,Ì'Í0à 3Ì0à ¸_ö|Š7]X6çïÍm¿eò"m†$æÎ\ÍáŒÊfÓ%ˆ%Û±–k’1µ÷6D.¶Àͧ»ù2"ÞÓ>Ób2L‹ñ÷Þµ$ÞS¹[p>ß=™iyÝC+¥®5Q%ÞÓ±½u²´”&oೇPßG!Ô[Ó{Bör&ŒÉÐaCùñt+îPévÞyg¥f‡ñ¦:ûæ¿ÿÞ(8³‘/fÆ¡ù|ß‚¾®ØÍ;ÿÜ|ÃqiYû.Þò/ârWláÑjtçv_¼§ü4µ@Ûâùƒ·¡jï¿»‰<£©™–ï¿ #ꌕ¼4tÆOæÕ¹Í²~¿ëQOÚòˆ0ŠÉÓfqBsó„d³8aÒSqðs"""yø¹7Ø‘wwí6v}ë­a{|Æ»f/„âÍ<óø8ÅDòE¬æ&óévÑÀþwG1ì»fã|‡0'€ÿêΛx›jE¼WK«^_Þ£@ÅÝï¾x»Ï™7ÕÞå9ùWšf˜a†f˜ÑLœEdD$‡âý=5˜¨¸¸‰7T*Tayë›8ª¨åø/ïóh?*Õ«¬J.A€`8ÊGb`t$Q/±½üO”pdñ{ŒïJÿP~´’s PÆæéO1:²¡ý?æpƒþºÅë~z{—SºÆ*ήx•Jňç?`s†ár@@—G–¥®¾õlüû㌌ %4ì3ŽMÁ¡¢M¼Adt4ƒÆLdÆqýåwMÅ9deaá)áÈ/ÿäÐþ„õS1iÆ6²j@ US&2,*ŠèÈp¢¿=~SÇ¡<÷0Ë¿?B=j’V}É“**Õ‹,8œƒö9•Äœ·¶PvÝ_uEgøéßðÎêÔ.¥À³YòŸ dV7ªw2}@ Q16ö}k….îS6Íäi• •ê~ÚwJØðÒŒŒ %4ìSŽê MãrŽo¢#‰ˆÌ,#=¥©kyM¥BÕÿQÞ}ŒZj8üÝÛL U¡R½Á†Ìrô€@‹Å è¢Î"ù<ì«û,ÞH¶÷Ö  ¥èèlQ© É´Ö’…€@ñsßgrx‘1„ªfæB eŽeHtáQ_“tÃï(Moêsè#¼3;žzHßÌÏ$4<Šè˜hÆDññn26¾Ã#CtL ƒ†fìǸ¸|*ª°H¢cbˆ‰Ž&ê‘—ùloÁm¹ô¹ky!"œˆ¨(†Œ‚ïO›Г¿ˆU*TýžäÿV$6Ée1{>ÎC‘‘DÅDªzœ¹‰Uèî,Ü… =ÅìgXTtS_£ˆ–U¹M³úÄWôïAttcå’È?º–o枸Lñ|üÐ(FGÍ«›‹0ýŠ!ÿÜ‹ºin]ÄO~ýž´MŸ2^Jÿþýÿ¯_8Vdj¡`¤‘Ìm_óÂpª‰Ÿ°-µ O|Ë£cMTD/o.kçõ¼ù¯íWt¢©ŠÔØ5Ìš½Ã[>çá°p"£#Uç£ug¨¼Mš Ò±jîñ&^\šoe윿•cg‹0\³PJçç·6/6†áM¦|Jÿ¨<úü:Šš8%èòØóã4T*c^ÿžØ\Ó9íj¨©¦¸¬þ®hïC6;V,fÞúdô7iÌ{q?ƒÞù™%‹—09¸wÈPKaQÍ}5¿Gi;¿çù°0"¢#Uåý• ”þÂú½Ob@À@ÑÙULW©P…>Æû¿§áª9XĆï6s&«²É& 0rÈ@¢c¢™¾±èŠt«kÈ=‡º‹ gWð²J…ªß|²ä4uÆ4–ÿ{*#Â#ï§âÉù'©½Ê”Än /°3mr×ò|xQQ }ð)fŸÐrñÐ\þ®RŠêÙ/ØšVwÝ|¾Ôù ~ùç†ËI2‘“|ÖŸ°¨áLšºö²~¸±/eû/[8‘R‚±É,}d,C¢£‰ŽŠdÐgnð®–¢s+y=,ŒðèHÂúdú×[í~í>{u"*•Љß죨î÷é“é_ Htt4QQƒ?ù Ž› Ë’Íšÿ¼Àˆ°PTªÇø)¾ Ù,7’1‘Ä þÔkØÑ@~Ü÷<óÐsÌ?+"‚á"Û–ÿʯ»2o®+vðÖ›ëÉk©“ø¦:ŠŠjšìa£MQg,ç™ac™²æ'ÔÙq|÷¯¿ñцŒV çDŒ-:¿§øyÙÞë«eûç£ :&šQ‘ôa&RN²éãi  E¥zœ¹'JÐYM²EÌàïI“Êû‹g¿A(9TêÿÈveÞO3f@¡ª7Ù[u“±2¡®Žcá—E¼¸h+s?ÿ7QîwÏžî\ù+Ëvdgùé«%ì<]xçã$j©®¬¦F­¿M¿µŠÓ;—ðåœc7]7 dóëë»yâ3üº†ú(þ$ÑØ?TŠ \;5 ‰syzìߘy(õ¥yW·‹é1‘„……Åð·wQ'@uîFÞT©èF?•Љ¯}A|åïx©ÏûOǪP©T¨†<ÇWÛ2ïxÕu/2dBÙA>xnªÑó[vu‹íl4GøôÁøñàUãÒ’”WÁË‘°"ëOžk€Ý³@ _o“¹ŽCË… ¥  »ÙX w¨BaÚ »qøf l4oa6à 3Ì0£µâÌ,"Ÿ©â?{v°yͯ¼c‡®2—øM‹ ú)žƒK¦á%îfÞÑ" w}ÏþZ/^ZOüüÞl]´™#¥yìúh ÞoÌfõÖÝìþŸ¼¿–â?úfYF÷.LžÇá#KxDLìÞ Ž­ý€Œð©ÌÚt”5¯–ñ¯bѽ¼œ_ŸEöët¦Æ…“®œ¤åßñîž®,ŒeÝ×o1ÔÿÊ ë‚l-!Ý(Yù>é§óÓ¦8V½”Ï3ã0‰À…DœÞÝÉîíX1—z$H(cûè=gÛ7®cÞT ï}°“ë¿\un' +yø×xö~Û‹ÓÇwŸëÿMzÔ4fo>ÌêWŠøç¬8L@¬çixw';7.ç­¨¼´(jr8º{Ý~‰çÀ§°Uï`ñ õGçqÚ>ˆ76ijã#{¯ýü:H[ðyOÎfõ–Ýü49‘ç¿K¸­µÁµ}¾‰lGÛPWtŽ=òybs5¹±lœ·žîóâ‰_÷*~ºƒ|¹1 SÀ(Þþz%»¶oaÛžýÌ|̉G vÑÿbùêõlÞ¼‰Í[wðïð½ñ›4‹=;¶²eë6Výò“; ·t¼½õXN*žÿÙÃÞ]ëùå?#©üd»3Ò8}ò‘ ãÙ?÷êòw²îT- §<×›ñïýÀªí;Ùµç'&Û#¿SÝb¨¡HÉ[s–²qËf6oÞ¶í3ë-!ÝKD½fà«C»Ù¾u+kf~Êð¼ÍÒéÑÔé®ZQêQשiÐÍÆùŽW–™,˜´·Wf³zÓv¶ïxûÄ Hú¼À+V°(¨/çøÕØ<þ0N «Ù¸Í†×·!îàBíãƒ1»¥œ})í‡NgöÒ¯x0ØÁ @sú[œkäéo–°yëvvìû—OÇñʦ",L TU5\á—hB¯­§®¦–jÁÕäÿcý¾Ämǽ»Ø´7£Y|3Õä±óóñŒ›òÇ-dÈ.Å2Ò6ðîSãxoåaŠ$M:J fÏ{ ø7æTch:†?ë5¤ŸÅ²oÝLî²—7Weùìþág–äbYü!V~ô ýÚ¶†˜€ Üü¼R«Ü lÑŽ!çɱ¹éíÁÚl+|èÖ× WWWlïÙ5ÃâmDÜç5Ô ÔUØÒuð›,øm/{÷,åŸã»ãôG±„ë|õ‡Ÿ²ób§l¡÷¼x,˜ŒeÍN–mÜ¢KZÆôG&ðÙÎ3T\’ÙŒù |‘i+Ö²yóf>ázE“êÔÕtq­æÈ¡}ô_Ïþy¢/ÞɪÓj(LÁ9•WìãàÑÙôÞ¼ˆõ‰e—7ådh㇓Š×GûØ·ksÞJÙ'_q¢¤ ANØOqÄÆnåÛ%Å'k¼v\k÷~ÀÈÁO07¯âr¢çØ·¯À§Ø»þ'¦ôØË?Vœ¿ RÖñ¯'ÇóÁÚxŠ%’ÆXhâ& žü‘e¶²mÇžHšÃú¢ßi1´õ2Ü;>ÍOû÷²{÷J>}y$¾q|üêfŒo°ñà~L‹ÀÕæF:H¶vïÝÁö-ëYòËk%{`ªùñìŸ? *v²êŒžšØHôèË;ëãÙú¾‚9Ë÷STœÚHÑß—²nã&6oü‘‡f±6;‡ís·.ŽCëfñd·B¾œsÔ¨´ñeìÂCŠÛÂ畤&¥ô:^–o{ƒ˜¨§YTÙ业tTîúŠg82;>– s¿á©"yG‘\ìÅÛ;ã‰_6…úäX¶œª„ »ÉñOf®ÙÉ®«y1% ØðêsÔý{»6­böälžyowÓÆŸ+üÌ9´ˆÝÉYOüÒ¡œÛ½…I€ŽŠì¦ü¸˜õ[¶±}ÇwŒóð|àK¶oÙÌæÍ›Y¿bÓzäb¥…úÒjºüGÜ­Ì~ÀcÒFÖ/Úƒ:`,ßì{vmcÛŽ},üðaF•qxÅj;Oà»Gˆÿ)ŠíK·r®¶„íÿžJÁ3 Y·i›Þ¬bê?6S­tÆÃÕkٟ؋.<ýö£ôèõþü ünjÃÄâ|ÎéÝÞ;¬î–DtZ-:½èÂs¯=ÆànîÍH؉„æ[ÅÊ‚ýÌùÏ ÚÌ?ží‹â¦[.gKÝ èá‹·›+¶Šɵ‰ªÜ3¬úÏ"²š•QJaÉÇ¥<õø\lä-dëÿwaNÿå b4Ù`]VMUê.R¯ÙÊRÄŽ%È(,Eo¢1éZ»“—‡ýJŸv²ÿoìÛµ7íO“ˆz[çÁ|º#Ž£;ç3Á¾‚y?ýFùm“¦&ïÀ ^|~¿Ž'>þGW¿È*ÎæßNƒ:J36ðÙƒ§m®ñ<ÉŒˆçYݬcæ\´^béÒwˆñ±k¹ d©â­³x. åÝHºÚÃ×{a¢Ï?–¿ƒWÀkÃÍ ânAW:ãÍÍUu1Ìûž[?Nã¶aš:0˜@_ Ÿ ‚]uf¾›a†f˜Ñzp|÷Y¦­z—h…¥ –R=5•)œBxwP´ó§K[_,óW’Ð{ IDAT“8›å‰«}W<ÿgï=£ª·ýïÏ´d&½’NH„Ðû$J ô*(E)RTTŠ€¢H¤H¢ ]z‡dÓBïBHï™d’i{?/f! žãñÞãÿ>¬7„dÏì_]å»Z--1©:JtE–Q:¹àæhºf8Õõ†?5¼êÓ¬]oºÕ”U®âгçYNî §jhe|Ü 6†ˆÄTRmY"A}¾ãÐC 6X³O ù%¤š³ð-"P¡vÐ`÷DaJáÒ Å}×&"<oW9A±±Ô¸›ÌcQD5‘)m°×¸âæV•*azJMEdPʈŸ&ÐL¡Fãè„OhÚ¾ûá¥%˜+‚±2kï4P?w¶ÿ‹}a ¡á^x¸hpphÔ ‘ Ðкï;\Yº{Žs(® ýÛú`(R¢ÖT&ÄdÊôìÞmÓJ0¤ƒ“#j¥=jõ5¶,zHÛžÝiì‹‹£ªS6¤xïIRä äÏ×¶ÿË”¨4Ž8ËåÈ=‚Ô¨Q›ÌÿVà´Ü%WÞÿžo>y·¢§`µ2¼;_,žCŸæaØŸì.m§óÛ†ñÔÓXƒqD)žc?w"¶¥µ»7µ7ÆçNéé…XÜÜ5µ'U±C£±Gùx–9v”p{ç—tÒjÑj{óé |dÈÄ›¬?€ÖZ[}ßE\È-ùïBŸæ$öoÚȦM?³vÃn¾›:”·z[Ç÷Áæû”pŸ}¾æ‚y'ïkµh‡n&-u ƒµZ´ÚVtî»–ëêy||%㬷Ìù$lþ‰•sŽ£ã1Û>‡­­¶+s?F,8ÊäI»Ø2»QÚéœ6‹ KdåP-ZmsÚvý”úÿá@*3n2;œÐ¨ˆéTÔIBªf’šú€ûçb‰¬ ê°êÔöòCþ8`W§? —}EǺþ(ÍÖÀ¸Ëû.óÖš tòtÃÙÉUÙMè‹.“pÄ'»G$&´¦iMÐT¯Am7/HNÆØíµ4R!§:U«KHJÉV5í"G%´ŠE³ LjmÊÞÏ‚‚ )r "f¯×W"C¢$ݹÁ‡ NçØÏس~<õìm*ã8º¥#mZ©P»{S³IS|n&a¤„³ùpì*®[¬ŒAÑ“¯¾M/mv&‹õÎÕɇíýñvsÄA“OJB¾¾`¼³ŽamÇsPgÛ IŽÒÎWT88;á „Ç©Ñ;†·º5Æ×^ƒƒ½êw÷G.Wã¬Pãà쌣ÚLAúî_lƒ¶hªÖ Ž‡vY'9vÒO§ªT¯èhjeY\„Øà}&´óÂÍÅgç«ã³€ë,ч–Z-Zík,»RÙ»=v;¿Ì‰"ªÙ\.Êl\R&*GeoÓ[퓹*˜ppnEýê ̨qq"ªR %vòûÜŒkCtkw\qŽmMû3·xÈʲªeÙ\¨pŸŸ*ïjT*{4.®¨‹öóñÇ»øyN ÑÍ#‰ŒŠâ›KŽ0ã­EœÏ]M¿V]6ÿ7Ï¥k™|^y#·Y·t;K?ëG÷ØQl9½‰‰_,eöð64×j™ÿ˜_†7#²y ¾½Xt\XÒ×¶–­è3b)׌³G8´~ ßÙ^ãÇ1øã ½ž‡Œ Ìî×™h­­v Ç "¤oeÄÈ­lže]÷Öz°!QÅIìžÑÕöݱ¼;c7é¢*™õ<ª¸È¼ï±øÐt r™Üjnr¡Ð OŸ@¼Ôå4Bª]ÄcѪ§ÉäJìTÖÏÈ}Ñivþ¸Ÿ m­cï1z&§Ê<‡É—8â…geÜÍÒÓ 7ÞU¨võ!É’2  ™(IIà‚&–(@—Ib~ ‰Ñ  äÈJ¯_L_%\ —éØ7±QÚ_hzb"Ñ/Ò*T ù3ú6Ø/•Ó‹Ðåé@.a1›±”ÓAd2*e9į8‹sÛfs0` ·s§Ô(Ú¾VÄb±`©ØsL©°é³"•xý‡á$vÕ¢ÕFÑ~øyzÌèŽ[E˜rãSW" [>·€bäO«y…PízÉ’Ñb[ä¨| ºrŸd… Ù“³ãЧ¨Bù(ƒ™ü©£Ê)ЙäèK1Šò§†p`Õî“ôWó“9+_p¶Û²ìº—€útZ“M-´hµ}ùá¼’W߬gÅ¡\î°yö;Äjµt™± ”Šd§šlú[ÂêÞ#)­‚r/3PRšB†À_JÇ rËßÿeY¯6&Òßû™€ÂøÕ³ÇA[îw¥Y©œ?¿ï·ûú—m޲óm 0õ:W[ÑÔLj© |³sÇ·DBJËA'·K|?ö5Zhµôú&Ž¼Ò¿¡¾’RƒsêVÆuoc´hßZOòãã¼T•ªÏ¡ìȤgŸÿ.ªIÛ×/2§{k´S`0Ûœ°ÈQ‡ö¦‡ël¾Zq‹F³ß¥*J|Âü±äΤ{—q,˲ò²¿Ýv”@®@žöˆ{ ¨_ÝÇòˆQåPÂî‘$ãs8ÊJê Ψ-=]püw‡¢P¢RÊŸJÉ ãžqt‰PÆä*Ô¾øÝºÊµ¼ólÿ~£[[ÏÅSWs9ÿŸË)”zîßÜ̺Õ)ŒØ% ü< û‚ãì¸vƒ3ærÛ»« GfãçŠÂ"þ—s_$D‹ *¸·‘›öùtƒ€°i Nâ|z C׎¦nƒ1l:°¢2«z, Î2áôN&·ãƒ•·þF¼ÃψÄÔßÉéD (…ÆB Z8scÑtU†±UŽ~DÉáã\}\€)a&WkoåxüTš«p9‘ê3„3˜Ý5/¿¨˜…øO'öŽ©Û6‘NZ-¯|¸œ³©â¿È³M”¤\â¼&–(_F‹M&«\ñ2+P&g<-åþŒÌ»CüÁ›,ó„ßÎ-ëNa6Ppã§:µDk2a*“»**•Ê¥d“-C @ÏQC#êØœçóK÷Ö4+?N±„‚”[\whESI9½ŒaͰϣÝiñ|ÑŸ—çÓK«¥ÍÏØŸšAÆýkl˜ö)½›Y×jôWÈ6¼ø~Ì[¦ÕÒ¼]fœÔá`'©l ]ñ6È‘§d‘'W<å“.• ½ŸAf© r²l~…6òí…I4WT¡ëôW8ÔF‹VÛ‰) é6¶™Äý½3é§Åõ±têXççaE䪧ï3›OñÛ–³|ÙAû¤ôŽd%UZµ§qp_jµh#?àžg8Í¢*£ä²RŽ~ÑhíZ"vH …2éÉ©6n¨ ¨ú}’ ž}³LV@Aaùªê(2èÐc£ÛfôlG¤VË€Õ·1—¿,¥zâw¯Äiì[Ô´M"óòFƵêÉÚ¼:x•}{ák³µIËy¸vŽ¥¦‹+2s¹ ˜A!T»TAW”D,îáhÔ¥ñ£ùIt@­T vzÀ¶Ï¡Ž™ÄNA@8<’”M¿q5GMlj£¨]g,?Ç ,ZÿówIÄDÖÕÃx´”s枃²ˆb•šÄÝKÙwٗ釄Zqõüa„Å(¯-ärål?9“X/G(P¤nfè{"‹Ï,£›«ÑÁ…°V]p[0Ÿ­rÇ<Žu”êKPú·cÊŠC‚€°q×o\åaF)²„Y\XϾãÂw½ùeÅ&ÒQ>hõÙ;˜ÝOÁâ­ dÅoâ—¥¼¿[@ˆ_ÍèNõq—_cã‡Ç¨ôúWü&ÞææŠ]$›0ŸŸÉ槉;ó ù},>7á ·d„4oG‡¯ãsyµìwËx÷hG„£Jòø±­µŽ<˜°Ú÷x˜mõ?³=/ºÏY¹âù\«¿ƒc§ã‰_П¾ÿ™\M&¬MÓèi9¾i-“ùùÛD†•ÉçÂÃl9™‰ýÃõÜp|“…{¾£Oc?äqq¶ƒÓ+²gÜŒ“ÏpfNG6,ÝJ®Â™F#7[×òÈzFµ-aéÖGøDÅÒæw:q[ç ¡±‡„\}‡µC¦QÔa.{S ™0ï$¢EÂtaÉíá8›Æ6bõ²}èƒé~™ƒKóî¬í<(./á•÷ç2¹ùX¶‹WYÐ;ŠV *”|³är}ûgt´£×¸œ/Ö¿x>??ÈúïF3tæ’ Ê‹¬ ÌŠ̺?1$2’èV1,ŒÓsqI"##iÙu ‹â¬æCþ•_˜ÖßúÝ‘¾bÿ­bà«zäû£ÉÿYrs#a}¢Õ®ÿ"~X‘‘Ðâøê$ä^…ùÓ`ûEøp$ìM,°z<ÄDZŸµ²K_Þ±›JaÙh }—Àcµ42 †5‡¨fк œ*¹=aW>LëK@L‚¹ƒ¬{Ù6'X¿vãÛðívÈ·™-aíͧ¯5à«v°«¦u‡!_nÅKzI/é%½¤YÍ]Y,‚À‘åƒI=›ój5Ê ÏJüè8¤¡Æ¼ÝL‹62† ; qð"aÉ8ò?ØÄ)áS"Y¸öÄ¿øþ4öÏÛE©S(MkUÃÞTH—þÀ³!b6;\e$›AØÉ¸Ž®<@ðørU½¨ìS Q,ßWRB”—o£bF—}„%c®Ðõó8…Y©¤Þ¦UÃòåZ±}ÊN4ÕëÑ ¶­4¥3¯ÎĪÉwèúiw<ôÆg€>ëVY(ŋ޳V±O„¼z` Û®åý‡=€s :ÿÞ,Ü~Ô „ ÂÚ)äP§ ÿ N>h3ûO }ïñJë("§Ÿ´ºqììо1Ge=íÏ:…DóþZaÓ0œö¼‹¶û$¶]ÉûŸ˜ dâ ‚²ÿì®È•¨õ·Ù»t-´Z´oî¥f—> lð¿ïœùÝ{o¢´(–¯Žž¶òÚ]Ÿp罯8ˆ¥zn^8F—–0šÌÏßÎgdôm~xg7᯵£º·#r@8²^­£Ê}ÎHvÒ!ÖN¿K—ÉmmA%r‚š¿Ëò3éT°Ÿ¾ÞGÒ¿™°"Ùú†›q¢þ€‰|óÝPjÿ)æéF—ùÇ„.œÐbSªMø[üp|¯8¨ ¨?ˆå‚€ a~ÛJÜZó§3kóÆøå„¸ETúåWŽ=Ì|NîÉåÑ|f“_6¼‡|ætvæk°—W”¥<Ç$[ÉW+yÑ{IB| ´CØ”\аr!56ÄíœNé(kw?´=« jljü$,£îéuü°F ãOÏŽ‡¬¶Íó» 8óÕV.$žâj–‘ÑG¶~Úœqáv™GWCÌ”œÞæN·wY{§>ŸìêÌÁZ´QÍhÕî]6¤Ö¦škù÷¸Òðõž4 ¾À˜fZ´‘­·î>WWÒoí¯a5VÎfÓ“C`A÷¶xƒ!íËÜÙr|ë½ÁÂã;âyµ3vspçîWkÏRA`ù@wöî9DºAÿœ.ú"ù'YÌxû×&8¨>·ö"Ï^*OG¡üË¿B»¨("ÛMæXÜ5’-æ§²T’ɚѪû]î=P›AÓN<Ü‚bc En0áßòU9 i˜KRâÒª áµ–¾¸(¹vwÓ»×- h‚ Iö¸xDàSy f¢A¿Î¸—ä ì¸Ï–iC¬UÞ˜Ïc7É1è(®1’7Z¸XËý…RO&C‚îÚ újµh[u`ÈÜ“¨%qÛàŽKôk´öL€L<»€•ÀâûEä«Óˆ;{‹dS)æ:ðfó?Ñ´-I\8‘J)¯É;q'¢3Ëïû9³s×~’ó#³ë5F½Jó¨(šEöæÛ;5óI,9¼hü¯Üg‹SÄhDk¬vVåêJÏH/ äyù\bGaÂUî÷䕵 R&æðDVQC`uêµ§EP9”:ˆ˜ÈŒ[DO­mlo>^‡2?x¶Rƒ$W O}Ƚ€7èÜÊgÀµE;î>CœhFVÿ#ÞlHrì«PK 7¶NG­m‡á,_wKQ29rɈ™F|¼i)cÛ‡âüÜ6Ä3«y+®ö8sh6±#?D&O-š·¥¾ àîC˜“®’XŽïÈ!'‘;µ?``s+ج!|ÛQ®<£ïxÑhÀ\Nn‰ãŽ|ø}ÜŸë`2 9‰[âVFFEÕ,†ž£Ö“’‘KöKPå_¦—àÿ“$b1ùR¥– {ï‹ÜNJ.q¡$_ß<ìEkÀ‹Ô Ä_fŽMÙ:š­ZÓj,û UØ+ÍdgdR{-Ú_s3äMfõ«ü¯Zjöáþx¿ðé윶€¤à·Ù(Â<7Ì`ÃÅ\D”Ø©nò]J,‚Ï™y]¹0w=w¼ºðù–)t÷ëÂâ=?òå«jήÛ¹G ™J@ØØ }r&~ƒ¦òêÝG\¼ƒ¯&øì³÷™qú{zËëòñ®8Ž¿ß¨Ü8 ¤\ÙÆÚeyo¿€ ìá½Ð\¶ÌÞKÐèÏÕöUÞ·œ'w"ØUþŒâcgw›%?Ùóµ prf[6Ž{•íµBñ]ÏPŽý°G€[ÝÞ|¶^@~f’¿Ž§¯“ •-*ñªˆ\õ4X6éA`Ë(8>tu`òlèݯ€Ž¡ðÛt¸ãkã­Ïn‡ ”¼Ì&ý·hçç[ج…+(ÂZÚyFOhþ#œ<»§Âš]ðåAèî_mƒ‘ @ ­¶îÁ— àÑÈìT /w å³¼¥¦‚îj˜¹V½ñ²KÂKzI/é%½¤)QªJÑ›mRÉ¿!QáI¤¤*QÙ­å>Í:rD=%Áž¨ñ§ËäeVÀìØ<ºvhI¸n7›nôæ•:$œéüͯŒ»·–Méöî-ü‘[ŽZ^;fP˜±”EDgÝçV­`*—yÊ ™-ƒX&/±õ³ô$ z%ü³ÉC"#Ý'µ7NÈ+Ë}gÆ}n× ¡²L’‰ÂìÃ,|í QûçÑVc_õEÅDàïS6Î$vM[CJ­.¼öFC¼ÑlÀø$r».-{ÜáÑï´3‘=q¢Ê­º‚Ì_œÊC_'œÝÐ RR¤ÇP!“¬ ï’j†ŒÝbkÝ·—o§½Gßã˜Ø=KI %Ó³@qÙ‡å*ÈÞÊš»£x½1@e~»šþ—`wpÑ›¬ ‡™­û^’Æ#O \䦧k˜™Èí:ÁT–©PªŒ¶2Ò"¦ÔG$Õ ¥²$ÒvvLdÉ ˜*ûá‹d›{á#î‡xãåàˆƒÒ„©làîs»~UªüeçMyí]õÜÙnVí:WâÏpªàm:úƒ&â5ÞØ•J—÷s͈eCnx‡:ààh@§‰æË]‡8Oܶ÷©×¸•D#ú¢²RçN„Ä~dÍ.‰ßÊc;QÅÓõIÆÎm›ÈiSƒFUüŸéÝurÅ"ì'à (/‹¸ã;ñÓ‡àÿäjK¥ä¤àÛ!§i¹÷K¢å%˜!Wز= 9¤«Aæï…"&‹h›»'¾5ÔØ«ÿKH&Iˆ– =øüˆ¸¹Ÿ‰m£ÑZ>±|u(QÄ,IOÊ@?»Ï„"™Ðlc¬=’c§–ÒcÏ)âËþ,Zxš!/b¶˜0˜Dp¬ÉÀ/W2;ª Å×îÿÍÎK뺙}«žu‰ó7³Ñ•[.ÓÛÜkX*ÈÀl*Wrßú9  5è2n‚ð+›Qxï1Yõ^YkiV°eVÇQE»¹ìY¹ ʧ|B2¡ÏI'­V(•E‹T‚µ{e Õj:á¬È¥Ðòß—Š’ dr ÉXbu‰Ìr9ŠâBÒ sɶü^ÿÃâ« IDAT`ËŸd’IŸæ/ì)W 7SjÛ+‹Å„ÅÎŽ¿µ-°½'Á­éšü+Û tè ©æPL¡S#†|± !.Žø8A˜KçpoìÌ&ÄòAâSYh10Û«þßê ,Y0[L¶>·¸¸àâÅW8xF'™KŒÊ€ 9r…M&›òÉT˜0VÂý^XÖ·Z‰Je@_bë¡^© ­k?$9,æ4RS’$C®4Yï¤1—tµˆàeûÎ[¬¼F|ÈÍýq Äû z*[²’÷³ôݳ´Úõ%-íIÄü„¹Qµž=^þ[±òÅþ`Æ•FjíÑXоb;YÙ½³Þ=ÉdÀødMÒ²ëm=0¢/*±­¿ˆh1Úž³ÃÁÝ Ï@%J…“©€¼‘õ‹(Î7`¶XЕk‘a)¥Ôb½O2*á¡DŽ™Â6_c™v,¾xÉ̈ØÎnÁCî†ùࣶGn.?Î&Dw¹Îó{Ù™6ŠÞUAîÃÈñc¨—ð3ñz@,Ó缨iMú¥ÀËÊÿ£@¡(±eÊkp §¶ÇIÇ£ìH#Gìò)ë:’~ë:© ñ‰Ó¨Ñ]IM7"zwg… ÄÅsdõ;T¯€/ ™ 蟑ù3b>áäRölAG5jL-e\Ç›€:vÖ*–€hÒs|ó*<&¾I8e$Ot¨ øzoã—³xûÔŨ÷Þr&Û]çäƒ|JfÌ¢mßÞãÎ uE#îD6©F„Û%Ž]•PÈè]›3î›Ïð.•4Ö ‹5˜ ™D@¨œ[·OŸY—zÞÔºw˜f3U×E2°mgÕbÆ,—#WÈQ ò¤hÀ1ž¥“³ùhúAŒr™5°AcçI‹^chíCÝ Œ¢µéëg®æºÇ@¶™…t­ãÊ,‚$"–9?m+ÍI?1òí« ;% ÄŸfÛÜÞøäŸ•F’ÅvSž€FŠÝÛ0ù‡½Ä?™÷ç´òp@!š±üI@Aε®?¢zÏÖ¸r•}·+ãçW_ ÁØ•LV\âXb:%Ží˜ø8qqqÄmCíº!Ùpîgü"/ºÏy˜ ۼ˕c”½àÐË*Èg$dJ% ID,';xRÔšP'Jeki¦ðö:>š˜Ê‡‚€ˆU“;àQd˰¥'Ù¹2……¥CÙ%61Ù)­2S´<3W™¥€;'×°ð''f ‚°•ÏEâ¨7Ú8ƒõ ŠõÌ/ªɤø34Þ­¥å+Ÿð[ª C‰éYpY’Ärrþ¹`4 ärä¦bJMÖõµ˜L˜íUOä¼(™1æ?àÔšˆðæ>Ÿðõ𨧲¥¢Ú “[+¾(hê~ÀÞ¸8ââ℃lZÑ÷¯Ûnÿ?¤—àÿ£$ZLø×mŽ·?ÎÝàò‘CØ…yQ=¤ *‹Õ˜ÄN…êÊ=’ÌVÆØç{„¸oèˆ2-**ùvaéMÚÁѓ܇¿è¡”#7ƒtëö‹£(M¤Õ!¬VÖ@¯F¼Ñ;‡Â#D,–:ŒÐ07Š¢³ô$XL&,’ƒôJÓ9sf9c:Ä3h;Î%¢Ï ¡Ç¬@~ú™Ãß ‘“0`AÂT±ÜŠd¤4Ìɧ-õܬÊO½¨jTyLF‰ˆE´`10<Ç1-X,µùhz/Ü15jI»FD7R*ÜëDдä1é& 5že“ú¡îǬãWÉw²GYÎLúßpЩdðþ6;©>´6A²D³­o¬h•ž™:®¶=ïÓôÅ`2½¼cÿ2•Bª'D6Çüкy€# ˆT{X3^yºÎ’0Á"ñô|fÀOÓAÛ¦ý Y.Ö‚K‹ìy S)X£áwžyI/é%½¤—ô’þש>íߊã§5 de¦‘rág3›Ñ°Nujµ8ΉÓrnÞäÊã @…]~9Iìýf59>žø×¢™n3÷Ü')5›¬+»8–Ö˜ß?x­é»fÌå—GÞ4Ø uf*¹†Ê4íòÄ»÷x˜RÄ}ÇxX=?[½?sqi™”–Q¤CáAµÈÃlÛùˆ’¬ë\»’A®¢:\å¢Î 7¿@Ü ºç}n_½ORªŽ[¿#)¢2þr9æ{«Üi¡?~I“‚tÒ³r(.Î%#-‰ÇžÍ©go²áãÙTDТsMdiä wÿrÖÅÝ$15›œü}:Ø‚Ú!ÏQ&]Y¹…ë2I·h¬ã€Æí 7M¤>Ë-{.ž^È Ç™Üa(ËÎæ< -%y¤eb(- ³ }ù¤‹£Á„ÙrðóÔ™ºðГÀ’¹}v>%¥…d§¥ óŠ IærVìÊ +3•¤øCùM©íjàÁ¾e|0hq¦Z-gœ}.\3‘wŽ› öNQ´ëžÈ›Ö5¼ýÛ1„àKÚ¿yœ#»³ÉJMåâñx²ëÔ%Ì#Œð¨ãœŠ7’}ý:W2R±øGÓ¢y ÅÆ+ܼo ùÈiîx;àªlÊ+ýÏsöx2©9$ì=FJ½0¼þ Þ^~Î)ZêU8ÛÇ9—Iƒ®x^_Åz¡}æ.'$“m_›ÐÒìØ»ƒ×uè“qâ¦n.h(!+3‹¬Ü¬ú|%®¢©„ˆþÖ:†Æ~õ2б8ŸŒœÇ\Üû+§¯=$¸q„UGÌ?ʶA4®Û„€rY4bâ*V~a]Ë¥‹E¤]ÜÆÑÛƒùŸ¸c$ô×W1¬çÏT_ó rÓÉÌ5¡ñ ¸Î)âΛÈJ¸Ìµ¢Bì*!OÞÎ{N#Ü-¤èÁo¹S…_»¿Áá"s19™é¤gfž‘NzzzKCúOò`í[Ó9XCvf‰×n°{ýVòý¸þçÈÆâ²3sÑݸσÒb ,ué3&œøÝÛ9}3‘´Ìl²óö3sè¼:·À߯ NpàV>¹ÙY¤ÞKäòí{˜"ªàm6a4aÀŸî7§ðè6–lŠ#Í"ýv®ˆ© ›ì¼BŠuÙdJ0YNbÌÉCW\H^v¹+*‹ÉÏ, ÔPHVj:“–˜7ŽpxÙÉI\:{‘üš ©ä‡[ÈöJ¥4ó<®–bÖâñßöòI"¢Jƒ›‡»+›Ù~ÙDÖ…K\±3ãöF© ɽt«é:Š2ò(1[ž¶øoÛ–Å&Vh¿%•ÀE[ÿªÔ}¼‚UòÉ~œLÂùË÷!äo†7ݼÝðw»Á‰ýÙÈ£kÞ„(osãÈŽßÉ';3´ÜR0YÅgg# ÈÌÉ"=ù1 ç/£=–ª€ÙP‚.Wcq1E:""%ù:ô¥&ÄŠj•w³7±å¼Ž’´3W-ààcÍüª¨“dd— p ¥F¤Mž^½ÆÕìläÁ¾(±V 4ääQ¬/$73™|Âi;ð2¿þ|ž”Ô 2p"µá^"E.¸´'ÒÜü*RÏ&._áZ~ªà@äæ³Ìz}&w[u£u-'tidëÇG8d×–èkK‰â«+ÞûWÂ×L¥~n:¹ùä=¼ÃÙ«ÙuW‡®è gÏš‘JÂð®àMz ² 0 ÉJK¥ÐДØ~G8ò[>Ù‘ \¤ nU4ärvýWŒµ‚k6ÝG²XyNQq!¹Ùé乿}Çêø{㄃ÜßÚ·üZtdg`0™E)M‰ê~„ ïR”ÈÝ„kÜ“· *4áWö^/¥$õ$gn*P{#?·–õ'.q;%—<Ý!Œ¤Fe%2C!éé¤$ŸaÕüÍøvm……ÜÞó=¾½ÑZvY2Q\KV~2GVüH’ÒŽÊ!¾Èo­añî«ÜJÎ#ÿÖn߯E˜¿0Sxy ?Ÿ°kX%7…„_¿gëm:Ý .æQ`~…ïK\:z!±˜â¤}»ç‹·G:¾uŽø£IÍÈ&aßqRêU}¶Äxÿdþuðwô$÷øû†Q“óŽqö~.Y™é¤eë¬ÎC¥#N÷np%5<½H`Ó,k"»S5žÕ‚„‹2‚«¹á£É![ØÃ‘»&ÒOœáj¸/ÕBýp­PÖX4ãÕu1Ë=¾àÝWÐY&T¶êÏ—ßu§’¹‹$!J ìCkì¯ÆT¬'õØ .fåP"I”ž©ˆ$J¨\ñlÚˆ@}nsîä)îyûQ½Z(á×Nqô±}F6…Å%˜¼«PË|‚#{Îð Ç:ï\˜Å üödxH©ÛäYzÒ¶*@ŠË\¢Éül duÄJ6YfÝ_Ü<ÏÊg9>«ão|6®|å”§s–D9xàݨ.¾EùdܹÁ¹³çIV*;Ôùùd?¸Cra1£‹OUê•îcïëÜK×qk÷aû¶¦©\öÌxËä­ÜÝ¿Úa¸èud\JàÜõd)È$ I¦BÁYf÷ΉýŽ2ÖrŠÀ‰½CIù¤-}Flä¶E²V‹µõ+,¿…â“öA¶s"Šà^ƒF™«Y³'•Œô4Ÿ"k`;"¬J/ϬdTçÙaÿG÷|ˈÆn¨º‡×"ñà ˜$dþU©•ôKä“›Nzf&Ù…$$L¥ztù%ˆˆtE± ÏÕ¡7˜ÿ92ú¿LÊ—Kð”$ &•;u‚ȼ°œïtMèÞ¹¾ce`±8U£¾ßF®ÆgÝ. ™˜%k†°µ,´‘b4lIÂÝ<”EX[ï¿`‡ÛáV—&U?cÏñÁÔhål‹>0a4ɱ“ìP)ŠËEwAN¶u¨-ÂU&b4‰ØÂE1Ëä¶` $9J[c6³Á‡¨nÓ3©Ý3ýÅD¡ïPOTé9èE_ì Š2ä/P†eJÀTð¤ß‹¾È„Á¨ÁÞîÏLVc`¶`~•e”±ÈìPÓÙ»þYþãN5äÊŠ¹œUžFú!CnÑ“™Z‚S–"ÒSL¸{`g( 3KÄ#Ðý™^ÍX£éÉQÁ³™¤H€ÂÚ‡Ö`s dgƒ½…D‡—ô§\Ve‚"m\3V°FrL=1åÖ4?¥œâ"ÂÑ_áŠÂi¸·Ž¬UV*«à- Ì*€‚@’ ÅË­xI/é%½¤—ôÏ¡:ïl§÷„^ôS†ƒk7§¦ÜŒ_çÁKe1½F1¾¹ä^ä§Eß±îà-Bû|ά·Úâ ¼¶v}Ψ…˜ÄÚŒÿåkêý‘¦–«£HžÏƒÛÛ˜6p ¦R=^íÇ3gÂçÔ›4•©«¿ ÛÒ‰9{£P)­ŠQúþ¼½â>®‰ CÒoözœÀãûÓîëJ4í6„ñ#£JXÎ]E­ kYÝÊÝfñþ&®I$_ì¼ý‘(dr3sžÍ#z°N;÷@Z÷Mãœ;¸G¾°dä£w,â®°–‰ñ?`*-Æ·çW|Â¥9SÙ’^„d4Óí›Ct©àðKr9·qS·eâjgdâ„{Œùr<Í’1wDkfHQŒœÛ‹F (u$¨F•œ”Ot»¬C_1xéœ4Þ>@Ÿ™›è_í©R£qqÅÓlØãX™ wWìlŸ5\ZÃØo’UdfæÈ_h3íÿò%“ú¾Å€¥ 4ÎQLÜ2œ*‘ìæCp˜*À¡F{ššDÛp J†óÓ»Kòå8¾É7"™,t_r©µ¼yoU*£û÷b­½ ÉÞ‡†½&1»³gKÆÃUmµá"™<%ƒIÓV±ÞÍ‹w_©†Ë¿`GŠEéœ\7‹™»³qQîbª>‰Q¤QÎAæ-\C܃RNŸý…+×óqï”q‹¶è,D¦ ù•N3÷3jø|N¶íA_¥;UÂ3kœàG—ίñýç}ˆ}@ÛwÆñ^¯ÚÏõ¹üß%9Jµ+ÞÞ„„5fàˆ>Ó†•Šº¾;šÎ!a8 ïÀ©ÙKøxð·Ø›rÈðêÏ ¹ü¿Ø+Sáäê†E¦Â`gÂÙAeë¹ìˆw%74*Èñõ“ÙdDÞÛò)ôíÍ2'üB1olðß¿š®¸¿BÕ Ú×PÎ4öy‹°xDot zÿ>,žB%7ìË@•~Ř0ðWD¹=•ZMdýˆ „”+GØÿ‹H·ÙmIÛ±›ëº*t}7Œ¸E;)iтؘj8ý+ìu{Ø;»++€†ý&ñ~Lõ?ì¿QA'Q¹ùÓáã…¼Õ¾_ Š¡‡2‚Žo¢c+Ìu{;Ÿ-ÚÌÕ4#'ýÌ…÷72eÀVޜїC 0IõùdÛ,j™K¸tñ.±oZemš6kÇ×£[³LY‹O,7Ó0˜Iøy&·ˆ˜Kõ„¼ýãÅýصù _[ãÌ;‰”úç²þn¬²ˆØûÕàµaïSÛø€…úó-"ºcÜàhü*¤ðÇ/fØ¢xÌ’ÈÔ!¿Òᫌþ 'Ûõâu… AÕ3glesqò  Jˆ;ÛÇ-‰û˜½hBR)qç~áJþz>¯U•sÓ>â×¼$ ô\²^"¥ºJ„U¯‚›P»¢²WqiJW:+äTmÓÑoÔ¤ªcMÞx4Ÿ¯¿èÍŒÌP-œEl°¹€k™ kHé ~ô•ÉqöªÌ ¯Ç®6áÖ¢óG¶f¥²&]ÞÍkµ80‚Â,¾{§-±Lù©%ÞPÖ áäÇ£ØUbTô]±“Ά%Ã7¤3Ý•®„6èÁG³c©¬¿ÏåÇçøzÑj”#õÏàÃîuñ¨p^ ŽÏeÈ·WPÙIL´‹î³wñÎÈå$z“N+] kÐOæõ"œ|œS¿gÎ{¯°Pô§Ãû€[f 7¦ÎeÃ<,Fç G\\Î[“v¡´s$zÂN&7S‚dFíæCp¨“õ éîóÛÊE,Øv™àNï3mToÂ]-‹çòÉÒ,ôf3Ýç ‰B¤qhÓaªMûéI`•ÒÙ{YK†wg…L$¤í Æ~ЗZêæìš÷5ó‡­%Û›ßÌ¡e%9vý—p©ß†­,åk,ÝY·T tpÃÇËÑ&‡5„Çö oÁòJýh=f"ù3f1køË,”½Î¢y©çÞŽÃWñÁ;ƒ99b s;VÅ_ºKݦP”  "ÿq5‘#ï<Œ.º%ÌÖ†ÙR†Îzz™œöÔ£QÙx—Â? ‹Dí÷–£íú!³œSÅßåY}J¦ÄÁÙ gǦĆ_`ÙÜIôûNNµ6-¨ê·ZE%_#ö ¯tÆßOÄÞ¿#Ã_eTï8º9Óƒ;/ª×kB~ë LÜ“ïdz2ÔÚ¢½&O#ïÓ¯øüÝÅ”b¦4d0«¦xâçog-·_~Hr¹mŒ"Y‰×¸™GýVg®„ÑL gö×Ìú9¦};Öþ.Èo­eÄÄ_(Ö›hðÑvf¶µr`¥¢|)eÕs÷ÙÊÄn°þ»ÝÜK¼Gü„—ÔÃËß »2PU功Ÿ % W»áëcå >u_càˆ"¦–ÉçУ©š­WsžÊ?™•|ÜP+¬?ûùÛ2v•.øù«pŠ¡›Þîú#žþžTkÚ™– LT¢y—p¾žÉ„9mðÕ4$Ò\6óg9zãßzL±Ø…yš@v~þ’uÝd2ö.T ð¦rµ`Xú3°ãwÔ¥rÕöDº9’'Sáì¨ñ¯ŠÊUýÇz£¢C×§_®À¯óNS­7ÞÎ.f<Œö6ΪáÿcJ¬þ?þzî½ì=DP" (†*"©e©•¥åÎL³´rUæJË‘[sï…+î½Ù.—ËÏïÐ܉â7íwßÿqyžs>Ïù|Îgó9ÇÆÎSC)&Tªd‰¡TDKM>Øð=_E¤ÿB#óÞÌ[S Ð’ï.—OØðÍÑ?qx°èð'šÔ äÝìIì¼Ö—Z |ºfŸ÷ìF/© ô,qm7œÙŸ4 áÄ>ÿeDç M¸µj+wÌêÖÛ¨©[t ¦M#—²“%þã?³Œïâ""äØUÂ:=õÁ.¥™–_Oáž‚øÿáðÓ"nZËêŹ„,ùœ†š›,þêk6È”/Þ§žå–öœ‰âý‘ô ª†Þù_ø`\ ­¿‹¤¡T@£¾ÀÆoïºjuR6ñóÇgh½y ­ •ÜÚ½’5Ûóh2á3ÚÚ¿„èhЏwà>]t‰6}¿¡]õbTò$RJì¨áíAÞÊñl¸ëAó­p°`¶†.³ûÒÔæ:SÏÂiÝbú¸¨‡ø®õ:FͧeÆ.æߊý„ñtò0Eq|9³—ÆáÑ— 7 #ªšgñÐXZ- vÐJä#Ò¯Q1‹ƒ' õ%í=\ñp¼ï²«È¾½ƒ¥“¶ ‹œ@§›Þt¥{0{Û°kÄLnÕ‹ w?‚³üÐx6Î.¡·³ˆ²ð ßm¤Ñž¹t0WprüœFøÜÞÜݸŒCŠ: 6bç´M([`h¿Jlìþ=Š!\ÿï†DÓçÐÚe­¤G×X†ŸüÏó¿2ðÃ|ÆM½ðóþšÞVÃ;ÕKï®»"l!óÌ»Àq/¬ZçA=8·6ÅBãNPG¿Í†öÓ¡¹èÖ_gfÁê4hÓ\ÒaüdœCüàÏwa‹;|VjeöPU3ûB‹D­‡ ÷`Hž i5à£O!ÿX’ AÍÀ¥†ŒîKáý:0¹1ÔÜ &ðSW0ù:¸‹Ž:è ƒÿßPTd̦m_Ò'2€„„$n݉§mëæ(Õjl7,FoÑ|(*zàCK«`²h<é# àRÍ…×{ð¤ˆø´ÄÒ{[…}þ!¨Ô*ÒÓÓ©âX…gœéõRt>­˜S‰Ê¯FÛî‘Ô2)_o%I'Y»pÖŸ,¤ƒ}EÑù’ãýRωå-oïYí¿(}/ÓÆ?·]RRBff&ŽŽŽå–…ÿ}Ïz¦<œxÑ/ÊÎÎF&“annþ/Èß³QPX€R©ÄÖÆö•ÛÕò¼£ÑÊ7'•J%ÙÙÙ888¼„&)ï“/ÞŠV«%99''§háU%©|ô%ÜMÀÅÙå%¹ôêóðU¾S.—STT„¯ Ê‚4²r )Œ1¾¾…щu™éÉ« œ’’‚ úúúÀÙGÇøŸGöÕÆ^D$11çªÎÏmÿå{yì͇ÿü‡F_L¦+Úªóò””„ƒƒÒrï/ŸNP§²eÜû ÛA¿g ƒ¨áéš7jl0×"·2ÄÛ œ›\…—Õâ‹,Oüë6¿¼¿¿È¼-ßX>ý·gµ§Ex!~>Ñê3båÒó¥@‹ÉSè*Ÿú¸®yvŸÏúÏ‹úÇå¡ñï¾*:ºÐ* ÉʸG¡hŠQò9–^WP¯YÜ_ÄWTSpmÃ~(`ÀÄö8Z8ájkøÄh¾¨l‹hQ¤ÇréÆUŽ,;÷OÓ 2{Ú8¼¬ïY~^”k¼ïWàU¨…|]m½ª/%Š““ ÛèÈúSÏÑìùÍ—ÃFß·ÓŽääd£'ÓCOOï‰wA(»¯»ô¸pÍŽk(š6çÑ XÀ%!á^cÕUÿç ÁȺ ÕëYb!úî„¥¹-Õ-Œ¨âU¥­!ô½‡²lñfŽý‘ƒZAjHã‰óhb¤!Ϩn¾îXK ¨áטš)¹}%žÖm«­HLÜ IDAT—·±Ô˜*AcXRi-ß|3–¯ d¨MêÒ©ß{ÁÀQ¤Ï™ÇúŸÇ‘£r¡÷´‰øÛfTo\ûö@XSÃß;)˜ÙùÒ¨íRæý:yß|Úæ=úɳpù4Ž "êatà²^ݨaT‡F_UåÃõç ö'øc;¦,ŸÎÕÀ±,î[·ŒH=¬]CyçsS'dŒÄߎ}ù wmddb[»&ê*O©Àµ ºŸ'öF¥S_"³Æ­qìdRŒ,¨QÏ#kZ5óäöÜÅ|ë_ÚøÔ±@‚!Žõ=(±Ö=Gú{RI*€‘3éc È,]ñkUÄ˦^ªùƒMÙ¶×FP©ì#ôÁͬc[p­ feÌõyršY°D‘“¡™nñ·Ü†¶á@¸4–ÕûB¦`gQzÌsä"Hþ¦N¤`Þæ„€[C°hÔnÍ‚¯~ïªÐØ»ô.Ÿšá`7Mu;xÇ*—íepm• @f­{Œھi¯ã‰:è ƒåÇë¿uð=<ó¾Ã¦Hx$˜*ŒÎ'‘MÒ ÷*5©jRÞÞTä—¨Ñ7胟}EÒYQ}‘ç„Wè÷åùûòm¼@Û/tÜðïÑ÷Œg„× ÝÂk9úçÕ5ÊÓéz¹v%&ßewL 9k„Š¡M(ÏϯS_¾|žãuÍÊ—ÊEá,Z¹‡ë%%þŒ\Г ¼=÷%¾áEt—ðšåã¼€WìExöŸo`š÷Eåûåd¶¼ï$£PDÛç­ ÏšÓ1d"°¾ì%N8*H?¯$7ÿ+›_ÞßËÛÆ xåjOò²Ò&¼ŠÅþÁ¶H*À}q!T  þÓ3ÂkSYʬ8ö.ú†Í7 Ô®tüè}Ú¹¿h¶Z‚ž‰=.’ýÌv›:]G2¡]•'FóEåUEÒN,ãÇ5)TqoC¨Á³ÆáeçuùyQ®~„×ë‰Ul[¯jçËG‰Qã1|ìC¦ïmIJwë=¿ù7ÜF¿™>Â[]pÙå "ŠÂߺD,Û©ñèVª§ï {dŠXö÷3v?VÝϪîxæf˜§ñðq¸/òü‹Îccù <þÞ3ü'ÙÉ"¾`öwð³^ù§ýä:½ù¦eù§Æ3Ùýüj…ò·§ƒ:è Ã¯\,H°³µ}ë¾[£ÑŸŸµ ¢öõÝ$"AßH‰¨¦¤XMù"‰L¥¼­Îóz# V«)(,ÀÚúõÊΟ,H((ÈG"‘bblüÈÝfÿ*]‚€¢XJ¥ÂÜÜââ‘J­B.—ceeýFÑ¥µäæäbckûÆÉtfV&v¶voŒ|•G‹‹‹)))ÁÜâuÉ¡ˆ gŒ±þßQŸªXJ£E¬€ù…™©2ÙÛYò&ÊŽ ddf]ù&OÿÏ«Ûmó¶"ôWEï ÐV€_÷ºü(ísz{^‹/ø|EÛA~…?×%[+–Óòý›Ð¢L9Á’)“˜0õgŸÊ*‡õ{Ê8k5$ù•ñ¦ðËï{¸­zÖ“å”QKQÌVÆû’éó—r.ûõÜ+üº¸#hR9uø$â²*@ïˆÏ¶óòóü:ë&~õ%›¯«*à{t‹Ê¯º# uÐAtÐAtÐA‡ÿ=’·3rÆ$†ÆÔí>ŽþÞFežcͤEœ“U¥a›z…Õ·ö®cýŽcÄkÐw\/üÍÏ‘©?²3#¥ÐŠQÓÃq|^ L7£¶±në)2ûf‘ôïÐ '§ÎgÛÍ;ä‰-øtF7jH$ùIì[ž†__JÁ-&ùØJ¦¬8‹Uí&tìÖÿ*eûjã³÷²ŒžÍ\9õë<¶Æ&RH+†ÍìJ5€¼Ó,œ²š›Z úÆ6øø‚ðjeÝdÇsñüQÒ샰ßÅúíçÈÑj©ð„ø`k˱Ÿæ²ó^6J­iÛ¡LíXý©ßZ’ËÉ£u¨!*îÛÆŸk÷sK¨G÷!=hYÓ†gßø˜Ì¾¥÷ð·ú«-H"jó*Ò\{Ó»™Óc;‰E@@ —¿ÖÅàÞÑ›JÆz%—XðÕ2b´†fÞ¼7¡7neÏþÍ5÷NïbݲÄJ<é2°m<íQÄ©_ç²-6‘|Z2tfW\HaëèéÔêci×ÏÆ´À-ɧYûýœ—ºÐ$¸=Ú×@Ÿnn[ÍÆý'I¢ï~Ù_{$ärpÊìÎ)D«ȈïB©üRɧ|óSeÛ€¼¸}Ìÿy÷ô,©ãßÈHl( fßV¶î9G ZTÅ6´ô1^ú™:ãd[DžvŠÕ“ÿàœ¤*MBºÓ«½²¤,ß°ƒ3 ô$ •êƒO$Ü/°`ûuä%¥i ™‘æM{3®I?MXM‚̄ʮ­è7$ÇÇxô¢Ðd`ÁwëˆEŠ¡EeZ¼7’ЪZ²âްvÖZ®HÜ èÖ°Îè‚ò*üº‘s±)8å“Z˜ê½JzM@Pßa÷¢õK£ТU;>n-í$°™Ï<ŒTO‚ÖÄ–:¡}éfu—¿âíißέ”.MG¢î`\­>5m‘ÀÓùüJé-[¬™òçrŠÐˆuz}É“ý|uʃIý=¡"7ö8·fÑæó.ÿ“ß–%K"`ãÓžÈÎ!Ô´¬e¬åÞ©MlØ|Û-xçö4¬bñÛ˜úÇ12 Ôˆ¨Ùï[{¡Îˆfån}ºõõÁ@”“tý" p³½Ãæ5ÇÉDTJ+šöéO˜¿ Æ/AUaúM.]а;ú曂+®cèæŠ«³%’²šAÔ²Û4èë‡ ¬>“£‚9ŽÕÃøø?LËøxe×*æo¹‚O0‘]:Q×î_¬‹Õ¦^fßÊt¨Á[b¾MgŽ\"S¿&Í\žšXHåà·kIqmJc{J&oð^cÇ‘V‘Þ˜ñ¶¢˜{ö³iÅAî ¢.6Ç·{:·tÇâ K|Ü'yï «kÉK:Éک˹(­F³ÐntkçúДsvçulÖÆÙÞ!û¦ï¦H¥¥F×/ù¨‰UiÊ|âOoᯢ^´J=Á’É˸$­Aë.ÝéÜÚ}1…ÃËÖ²ïb…j Î]FðIKôË”‚³«Ù߉N9ÑÌ›¼–X$Z9Ѳÿç´¯ª"íÚA6ÌßFŒL‚èÚ’~Ý:áë ÿ;É巨ߧ6 p— #fò—`J%çN|2Ôÿ)|ÿ[ç\ŠºŽq͸Vµ@B&‡§ÎaWF!jô‡ñ]ûª½«"'1š³·pM£E£6¦fË0"ºúQYËúÅë9r1‘Jƒø(´>Ö†2HcØ2q)ÇŠJЊRÌí}è9&§Äc¬˜º’KÒê´ëND@5ôQrmÃr6þužTÑ÷¿îA}+£2­ôwŒgQv£úú '¿Ìúq 9%ÓC°ªFãðôô4$ùÌvÖþ±‹êþaO‚êÚ=ÕσTö-½KÃwý°ºïs^]͈yÇ1©âF«ŸÒÞMAÜáͬ\‚ IeZôèC§fÕ1&S¿þÆöØdäZ-B‹˜Ñ¥©l3ƒ&V!Œü² OøŠîÜÆÚ•{‰=ˆÒ“€Ú¶HÈäÄïËÙs3™B´hTN„ûŒº7ç0esRIi2K'\ú0Èß”øÃ˘¶æÖu[Þµ $e}<*Ûn²âë?¸(W"JëðÞ7P÷x•}}/«·&P«ÏФqöX Eæn4màðT?[(<Çë•tìï_f«^uÚßd׎BvõƺÌç)I>Êo Ž  ÂgM¬’Ì›ìß³“ü=éáïð/Wj)ɺÊþhCšâ¢ŸÅù ¿²èH†z$ Z—¼á‰üð¶FÇ'V¥ógÒºº2rØÿÍ ö£ÕkËèï:`jW 7g×íåVÏ`\õžá#jâÙ½x§î$“]X‹ã#iloö^i)‘_fë{P5j‹GUk¬ô_—=Mçü‰›˜Ô¢¥w;þŒ£’>5¬_Ošt.º€±-žn6/ÑV·Îç\ZU:w¨…þSG4‡“3×rÛ¬^.8šÿ“L¿H|! _cÍkÈk;œÁþ¥Ž®&#šûž:” º àÿ*~ùÿnç…ø §øß‹ÿÊ÷¾Ñ¼ÿsCtÐA^ Û:ì8ŽíCjÓšú HçÂÞy¤ÕíIdž6ܹ¼•õ· (¸¼Š=îb×<’ž òX¾z?— ¸²~<‡%õhJ¨Ã9F/8ñÔ*‘ÈM 9;Yýp"""‹>Àác©ÄŸù…c +´ ™é!&­»ˆªìàÔ¨0x ¿F'¢ÐpwïJ&/Oǧ{8~õ¨òPÖ0õV:nêÂù_9ª¬LÀ.øícŸ—JÍùͽ\®Bûà6ø{É8ýÝb®©Kß-Ì.Fª§Gýê*îe)0÷éL—nÞ¨vï`ÿétÄÄÝׯK£VÁ‡6Ápïbޤ?V¯ Ìå⺱ôúd:›of#”‰ˆ¾zÓ&½hïšÊº}‡¸š©|êešÉ F1ûx?¡-L寕£Yr,ƒ„騞Ì+¯üÉ·ã†0áÏS¤©´p|Î* ëÒ.  L.ðí‚óOT)’qòâq ÷&Ô-‹-£¸”ggò—ÒŸ€.45Žâëµ¥cx{ÇhNW !¤m3*ç­cÒá P¦p>jYõzÒÑ׌¶²åhïüɱ»éTiÙ‹ ‡kÌßzœ4%¤þŠ£†>´ jO}q3c·Þz™”Íc߬)åñ²-C•Ç‘ G1mADsWäq±ì`* $þÄ]ú®4 ¥}HK}†êa¡· ¢e=$Ñ9–|‹ó—RQßoCÅõó×¹RXÚäc|®„©DMZF¢½­‚ ®ÄÅ=1HlkbqqÛÓe£æqÉÈíµýl[Kå€.tóFZ˜Kê­ìŠJ?bîäI‹æ5PÜMâ^¦ˆ6yã^Ä̳ í‚ éX•«ã‡0ïTÒÂX¾MñQLVÒ Î‹áNR ¸ÒºSáŽÜÙ¸‹¨ )(ËAVžÁ©•#éóù,vÞÎ}@£&ñ/MÂй;¸‘§|ð»üÌïŒ>Œïw_¥ ,غ±y—ªv&´•7†ië˜ äpqí*ìWâ×½3m|jagüïWÝ úÒ?S®L¢9.µêàáfÿœª’Xvµ ëHztïýÿ*È}‰1ô040Àðmûg¢˜ÔëwÉÈ´Æ·S(!!-ñr¶Æày"þ˜Oræ‡?¸˜•ÎåCëÕ‹ŽÞF\9¿­qr@@}k³¿ý˜‘‹¢¸#/õ„ôýŒýt?¦Í[ˆ¯ÓߣXR,RUD]O.ï_I¡wo:Ö—ræÔö$j!ý,7TV¸6éHç®d.ZÎþ˜¼>ÆÝ«÷hæƒÑÍý\w ¥Shk|ª•=s-ñ…Yd$ÆQàٙΩ¥ˆãâésdiÕmEg3zÄP¾Ûy•¼2†ÞÜò:ÚʳôuL=–ñÙÐ$aáCølÞNb JJÿ¿£F¾4kD»àFèíþcO¨b5ùɉܹ,£^xGÚ·¦¡‡ •åq¬ûa=gŽ´ ëH‹Ú•1|ʵiœß“Iµ!в¹¦Y œ>´’ü½èèmÀ…3ÛÙêØ•M) zËHì/0kËI2‹4¾?qãP~9‘Ê¥Ãq¡¦øê~®V #,4¿ªú¤ÚÈ™kû9p8ÿžôjûví%*>ï ;‘|.ŸÎŒ±(D5EçV1ìûÔéF»f~¸ÛkÉ»qŠÓgîQ5¨Ý}àQq H?À)¡:õZ„оcsL¯à`Z'~Åiûv„¶ÄWÿcW_Bõ˜’uc+{ŽœÁØ¿'½jؽ}/‡‹€.m½‹±—­ƒ‚h×®1.&ÆÎhH`P mZøcž²ŽK ¹¤G­búº\v ' ¡¦e{D¶ÕHPrî×Õ¤»6¡m`0•o0iO ЖPu›ƒÏsnÇ’Ä\n_»ÎõÛ9<ÓS’9úW"²ü÷(RÆsìj—ÎæT^é󚂘G}OÊ]ð B i×÷òÇ”5\@T•`ãß‘ærn]ø‹‹Ò FÙ˜”9QH»¿C@+ôÌ¿«,ûðg¢ Ô-Æ6NDŒšÆ›Ù^  3³tÄoDk5ˆj5F5šòNÿp mã´èCï÷<‰™»–´ºmiÛªæBy”Ýë9ŠA(Iå¯uó™~@BŸÒ½‘ã[¹kB(€ï?úßAh•ç<§‚3[àÛmñôm¡Û%Rá¼`ûW ëµà©EZÈ: ƒç@ýN0¶'蕳ŸUCÀi2´´z<ŒÑAtÐA‡qQûpò Ã[[>H–eÇ_çì7ÚýÑ_ šÕÛ‰¹z‘‹EèYùÓ©{+ì°äLß#¤ç^!v­!ž3BèäbA¶´Š&~p¼žÕ©qu|Ú9ácf…D‹é¥i\Vgç•û·¥£Ÿ ú^wÙ4#–Œ.^T‘‚EPújX|´Ô×ÔäɉO¸KËá“èYóÑÀ[ —kÇô° ËàìZª|HÇÈ<î°ñÇ2"<©T«£ëUÃÙÔ…UÉÚþ·åàa¡$ã^Y7ì¨×Ç;Ç4³°À²¿&r%?\³Vôê)@׿ŒFþxÉŠÌŸ:gžàZ±€5×£“É‘ûÒaP œòÔœ}‹Ô4^V±,¿»þRÛ=À´v0}Û)™·ï!A]ÈÕý¿sܼ‘­ò¹U$`@G–nâ¶yC:tñÁN½ªMèÚ.…›ÆH9±'©¶4„`# N+'Å ìýP"AÁ3‰ddxúE ª \žCVæ%î.WSå:4tBßógÆ‘©Ïî9–4ÛÜŽ`Ȱ¾ÅˆçH©aÈå#î„üÖ’újGŠVì%-æ'ò¬›Ð¡ksl2sˆú1ìâkœ™§‡çOí u4—6οJAXrW~=úÍ"’§Ê¶–œÄl’Ôøiƒùè­[Éþ›÷  ¢h‡GË º¶u){>žE« ¨ûóód[EAÚ=nŸ¯Eûå­¨‡âï9wø&¹>-¨ßÄúÜcñrºª»+UÝï¿~o¦5â½ ÖÜ‘…çð€{69œÙu‡â®î/Q±) óx‡1ÞÕ¨jŠôJäÿµŒ“Wì/yÐ~F ê(-H^t”ôÛ¹ä$ï& ì€KE*Q‹héA`DWj?R"ϾM§pì?•$BŠ/pöÆE¤zÒ¿ýdA@¦'C*)MšÉásE!‹$øn §­9@sj×T‚%"<™¸à Íú¦²k_MzlhˆdïZ ^ oƒ%ÐÀ'©Ä¸‚h0s¬…·ƒ’ú—.`jœÀžYû<úнK#J d[ãQø…«‚ •\z2qJV6„ ÒÎïaÕV Þùº vqëÀq®ß³!¨¯ 'Ícùî‹dkè:á+z×Là·•jÌgўƌøÞ¤él˜Ü‡×eXTnŰ™¨ýVEÐ"¢Ö’ê Ò½•ß å„G|grvÍålŒšãµ™×/•=ùËö‘rõ¸ÕDZÙ‹ÐÀf\IU#¥4W”¸vý>eD°Ócy ÅE·‰=jM¥æñ\9]›Y-¨«´&}ÉaR®Þ…vMéÒÃ+sCôhJñºÏI’+ш 'Ü!z“žƒô‘öeLœ ¡(ÅŽÜ£›¹¥Š¤…7ªÛc˜_IälŠÕc ,}×ÖôÎ"a¥g»\eß{Zí$@(¡¦ySÅ@3Sb÷obï5 B‡t º[ÚµiÎ唢¿uŽu[úpÁÙàW¿:‰ÜÔ‰{ùéÇ8ZOù˜FÆ bB%׿D´h‹y-yчQ¸zðn·ÎÔ~^5¡ ÁPæEh›@ª—hê¥Ý\‰®Eû¹-ð,±%ûCdÜ:ÃÑ‹TmN‡ˆFX¦g°gfi… ìM)96ŸR[ñ~¸œÙ¿K¦î|ìíB=È»²“ås¯WC†\îMÇ>-q¦2·Fì&=.¢jø†îô .`ÆæRý/ªEbΜ¦Áð ö‘>ðOâN¦¯µ'8¬5ÕpàÊ”(ò“ÓÑ:7¡K/{ª˜K€dâ¾>E±Ù-έ°¡ù¾`Ú郲^1>8Eb//\ô\@â¥l*_:÷n‰•ˆ¶›´[PU@À…fáÝiö°gâOû2çB•xS+éÔÜ„¸ÝÉ´1žn®K+H‘mP}‡©_Ó¾Ð(“ùCbÓ¤ÌWe–Ôp¯O³[,:¦à«f2$22™ú¤²kÖÖ!OãBïï&QSƱy+¹s§€ÞÙ‚gxwÌÒì8¤ bì~_TLŸ:bw… ²©ßÍ{[cÞò¤âCß/?"¼A«Vb¯YÆš¨š š`WºØ,•ÀUôŸGÏÏjcçܘ–U®°é*Œr¼Å­‹{ЯÕk}=Ô™'Y:oû¯å¡Õ8ÑmìX"=î±xµšz‹Xq0Ÿ"µ>–ÐÍMCüÖ ŒZ¾Ì»ê|òmÜ(âöáÕü™Ã%šG0yn8•‘`le‰µíM¾ë½ƒJï gT¨óósÔ¢ˆ`Û’÷žfüú[ìy¿¥›åt9í—ƒnmç?5…iä:6|"ãÇã£.íh×ÅJrcªW­F)ç®’˜«|dW’Hñ ðø%_ŽÃg½O#» ‹PɳH½mHÛ¡_3þ‹q|Ö¿3^Uì©Ô‰°võ°¡€äk7¹›ZðXUÁÓ ¡ ý(‹>Ë™bá5)·¯cÿ_EtzwulÞ^Ec‘#ÀÏæù%†;!ø=èP_·Xøºtóxæ= ò X6êõ†÷x©DÓí3Zš"X4Néø©ƒ:è Ã›‚ö­?ÏÞYéAd¿lK—a(Ê)ʯ„€ÔœÊ߽֘Ë]E1 ¹¤lÁ¦>MÜóÈËË 3UA‰¦,ƒ&ó§uâ2žÓ­¾ÖXH¸¡²Åº’1zŘèIKý⪞Կ~—­0rô¢•_ LÕ¥ ¢‚ü3ì^º›Ec{Ö‘O§.ájQ™/š{‰}¦Ö˜Ù"ͳÄÔ@(m³š' ®Æ/¥‰V)ɹÍuS?¼-eñYIܨá‰+ú˜YX”ou›+'í-0±tÀÉ´ˆ#ÓûÓ-l%îk&`ô¨u¤zXºùÒÄÓµ(;AeQºèjáB­¬bäyrÐfpéàIâ²”î3¬ìI‹Æn˜ÝwR”ùÜØ7Ÿ–ïóEïö¸Ù Õ3ŠH¼pž‹7R(*{WbᄇŸ•dh±£ë¼$ôŠ KDwúM¼Ã;ã"Kø+).Ъ,J+¯L«âž«F™›Dr¾ ¦’RÉÙ‹×î’ f“›í„µAi<`T­µ®Ä+–PRX S™%ŽR Lï 0ÆãÒ ×ÖÏÄ2‹ÓHÏqÀÒXSÚvM/ê_¼Åí— ¦ùf)û„loM“`UÕƒÀ~lhJÇðØcIX_@D"»Êš¯ß#¤c>ýãE!Ï)¢Dý<ÙÖ Ñ’Ÿ£.óïìpwµÂF–Lºæï„fVÔLÎUó¥¥{ÕG’=±«Æ4˜ðJÕé0±ÇB:Ö¥'ßlTÑsH/»¬(X”.þ‚†â¼$n™{SǼˆ¢BÛRy6°ÇEmŒAÖyŽœ»Â¡ß§ñiDW:…và§cÙ”TÄåˆ2CLÓ63&2Œ.]»Ñ%ŒN£6“’~„ǪÓ:Ôá‘]ðÆU]0/›ïO_RyœÏUèEÓ«Ìéߎö¿œŒp®VºiÀÊ{M³‡3sù* GSô°tªDIúdB?þõ7TXYYbn¡_±Š%*4HeÅrFS›¶Mk`ý c¤G•mp¾ÌmáÙñ·ˆ‰^™ìª¸` FinŠQyäHj€uM_üê8b Ò<ˆ™c[ªùÔ§†­)Ríßõ#2ëøø×Ʀì¨O‘ò²Êt3wªß¼Â¹Ì ì[ò'³†ö sÇŒZ°ƒx¥ðÄHR™’¤»[X9ç0îƒ~fÒ»5¹ss/{ï%sõ·Ns&bØd¾ý´z©9È•ê·:U,"-1‘»ÉY¤ÿý·mhÞïfô«GÔŽý\È1£õ»­©R3„‡at_=V÷ŸHQǯ?üüL·2~oJ¡!FV˜—,åd&P’Äù¤8.[)¹ùça’¥:g6ó'µâÎÞÄ%%rsóWìÞeØÈޏI%pí2’Àq|1bm,ŽðíÜsOT!¾éé]©,žý«‡Ó!¬#ÞÌͼxå ŸÄO«B ìJ¹ô¬q’˜a˜˜F ˜T¢†¯Õ,´ ‰ÃÛ/q`Þ0ºFDÑ-’Uñey’Â[gÙëÑoœ"¹]™°ÅYkˆÞ½Tr$ÖØ›–-V_猤.u K7ÉÇ`yÝæ4‘–ú.¥…Å*ŠòîqÛÜO+з°§äÜjÆ÷èÇ6ýtØæ‰ëdÖ®4h\éýC‘sÉ˪‚UkMÝq½~‡$TäÄ_åìé8rïû5&¶Tó­« ±¬ÊÎÜgÓLéM×ðÔ[?‰™–’üÛD?CJY2S"Éàâ™o‰èÒ™w',ät¡‚¤—ˆZô #{v£Sh{¦íO@þ´RQQEžz9»u%òÝYr³#I J¹]©Ÿ£oCUÑÃä;Ü•›b(–ú9öµ©w'tµŒÜèYLMmÃèA]©ënRCL‰• 6çøu`#ÿ(!tþû¸d’›?ïTw5jE…Ùd}»Zøù×IJl^¨UgÙ¹â8~Û›®áá 5™ãùz¸µÅÛ)ƒiÁ¡t ›Bºƒ'Í|]èW¦Šy 'ç &2l!•Ž¥‰Šüââ¹iƒ*Þ4®rƒ[òGóÜ% 9ò‚û4ÖÂ×½„’¢<äÈJñ]dGÂ:…ñåÞ´G3ÑêbÎlŸIvH?üÄ3l]¼#{Þ©#Ÿý¸Š› ¡Ôr="Û´XÒeÎÇä ïE·ˆ®ôüø=¿ìÆ#ˆ"2{üÕÁþâÏ\ΰÀP*ÁÀ4™#¿F^%˜?ÿÂ܉¹øçAb $x·Âѱ5GŽ¡wS=ÒV#gÖqOHád%“p/—¸ãKÙ¼'¦Ã~æ«®ì:z˜kwÒ¸·{ { ƒðYwê™ê#‘š`Qt€¯_#h\¼ŒÔH­¨Õ¶âÏ«9ž‘ÀÕÌf´ó3¤¸¸‰­]>Ç÷ÓfþZD»Â½´4nožÀ~±'}>ž/ƒ-™ûÛ^²R¹Ù ¾ÿá;¾Ÿðáu’™³ç…W6²vÙêžÎ÷£ºãi.¡°ðQ³Ž ­×…Ñ3föxoN,;Hj~ W×ãˆùFÂí3s¡Eq9•™€]½ô‰ý¥5|ܱÃVP#,Úæ2 ³¨4eΉIcZV¿Nl.H„&(&ë±ùü*5­•Jê ¯‹69‰,u{¾þŠ‹æ =™!N3fÙ%P¤reíWœª4ž c†Ò§n ³—œ¢ÄØï°Ï™6c³Æ„c¦aû©{êI@Y\;zŠ›)…hžá<œÓ‘®½"ôœÄØ¡h\Ř¼äbo§“qe#/dQ#|:?nFìÉc¹­Á¯G ª× á½!c˜8Ć-ïIZ³áŒ5‚ÎN;¾)¾TêÙP7¨7ŸŽêF­¤…ô0‘Õ×ü³ ¨¡(n+s†-Ãá—*èIî'$ÈТζ¡Õ/Mú…~m&£2‘P”áÊÀî¶XÍ”‘=X¦P • hrüøÊîEl²œ3 6pOãI/ß:å:ÚÕdÉ‹:®TD¥Ö ZÔ%"&6Ý·°/µrb9²1šKOáü±ª³G°vôÄÙÉ‘dQó`Q 1,,Fùˆ'y†ßGá;wU€¢ô{d¥\¥~àGљϑ©ëÈ·oA{O粪YC¼ûOæÇ^1løüg„¹ ±̰k5¨Ô÷Jã~áþ—>%j4% Šôš1~}d¶6ŸhÕZIJ›RÇîßÖ³:ãQæ"EòB Œ½ÀîSúOùž}ÌÞR¬Ö”]w!" åÞö©ô™ËŒñ¬õËÏ}@g7§G|#AáÁñez”hДh%"âÃ|),¦XÊ—ïg#õ1(,F)Hü.CO B± µ²Oëc¨(A¥-âýì“Ä#…âå{ðÍ÷¤lö'uV·!õân\Æ,"R¾Š9ë£8v' k[š}üuz)Àô6G¯g£Û‡ôý5€ïGõ`ù3eÛ÷tŒü•‰Í)´Q’kM³w"½OËMÖ-3¦Á _œ¬ ¾ä±`a]zí÷DO+’xè7 ‡,dšÝ!Î\Ͷk½iå`õJ!ŽZÍ’Çi¸`Îw÷púA²O†¾FU™™Î´îÓ¿ Oì3wóÃÄ•Dÿ>€æ6&¯xç™ …UÞû žŽæHD-ZC{ì•ÛÉw÷ ÆÏk^,¡ô€ÏßO~â§ Ò[›ë0 I·ïØüžRc;#»ptmU††”:ñ5›3xö:ÞI‹cëò÷i’ëÍ䑃¨^Ñ7¡ J%JcsL %É€ÆÅÏ™+FŠ+ìþq—#±ñ%b@º6u.÷iFhÔ¨ÕÚ'­ö)Ǫæ£É[" ‘ÉÐ/Ê'_a‹£[?ÂgDà–u‘M‹/±g‡+}"ê`úošDA€’"²ÓJÈ«΀ ¬4Íð:¿“{»÷_äNƒÖmð¯¾"{“»o@%‡€D" AC‰uUoCËúÕ1pk‚ëÁ4ÅúXÕª‚©‰)µ½à’µ‘yŒìU7J°,<ËÁ…Hj×ç™ñnyé1·w¦n–Ϧcý¤³e”ª‡ŽÈW£Å6/;Í—~?õÆ×ÌIòf¾ûd >Ûߣfq17Ïî¦qð`ôUÛø{û»= PòP›d°å㘴DÝÊæHkûVÒ8tû#›GJ £Y66šFs¦S©ì7ëÚ¡ ›]‹c+޲k¥„оþO,?ªç$íß>’L†^arÌñé1œ¤XÈÕ-Ú'”¿ Þÿž™}cØ8üGÄ ªÙ‹¹ë#03+õY½º3yuJƒ.n>Ä饫1Èw¦Yg?üºûáÅÏßnâ¨[ÚV³zDGJ¤¹v ùb iÑl™4“¨Oc -|àçÈ´€RVZês‰ü5ZYÇ6mbûñmD/ÒG«Q_$ã‰,„¹EzLšŒ×ù³ìürmGtÀëîO|ÜêWŠÍ¤gT¡ûw0zš¢Qý탉¢¶=# ¤^^7ígç´£8|.r¯ —¶Sbut ¿\ŒhÂ,D}L™øˆi³¢Qx÷æýÊàVsQšIQd8ÑsZÀ™óç Ð 5¼Ä¢÷f°Íã:9IKýö¤ý¬ÛäK¯½ÕÑ\¹ŒEåž|¹ µ²¯³oÍv­9Ã{Þ¥UÚd»ôD—äÓÉè8‘š±õó¡,>•L/O÷GE =\Üká~&žc»Naol€¬ ‹øÄ¬Y‹v™)š,R3}ñ„»³#&&EÔià…n´nµ›¸Tœ3íhØÍŠ+»ÏQ×CA…1%é2Œêw ssL•­¨9ü87Üää8ئ)þu¬‘äa3“ž]Ú1öÑ4w0GVbŒMOlÕ‘Lþ©ƒ>…}ÂRE= QpbËB~Ýt¹˜G†URš:SR5˜ð@?|À¦1N³(l´—™3h61z%#œ‚ërÃXD¬Fd`5,µJ\ŽË1ÊÍàÖÝýlÚ¸,ŒÑWg‘šÕ‚ õ¡zg:5 ž1€úA&Å“£ö£³¿Ñ I¨ìÉÀ™ƒIš÷ ¿ž¹Ì;íùlqsF èÄïZ5¢ AP4åkK³ ö°}ú|~"0Ô€s(‚âm£–p8’‰ ªz8a~܆úÕÜHJˆ¦À%ŒA÷íó…Ü=v¹Ccšz¶¦UÃÊè˯!Ti@ÓÆ¾Ô•$Qek&þM½¨Uµ!Ç2Q†§øñƒ…ÄÈEk¼"¡µ5ÖöN¨¬=p«&ÇÊ8½ÌXŽ5"°gSük[#©ÜŠÅïDq®#²„·ó –TƒW±]‘¢Û{ùnÜ:Rõ5dé{Ò÷} L¥Lµ%hñåó%?‚… &O8÷gù¹ý„¯V±¸€‘•yiÌ©ÉA‚T¢Ekæ†Gãúø¸`ªôÇ-úb¡€imGLÍ4¸×÷¥žÞ^HÂø°W< ¡†¤!ëFï!®Ë`ÜXãâݧº¾žeÅâ|]³=Ÿ÷kXºùû ÞhQØÑ32ˆæî#tŒDWÅú Ð-ÿGW›‰ì‘DhEöù÷˜ègÂàHêØ Äoø”±K/’š£Eìò>kŠTZ1êMvû_ Ü fwç0m*˜9A· И1 ·>aÃ!Ø6ME» [ ãal{0‘ê¦Y9¦#°v",Ù CÀ½ïO+Œ ƒ300…›a}0ìô„ž_Àk˜5Ö]¼aÂçо&l¹æ,îßCײ(U­„ï›Áf lïõß…yÝu<ÑAtÐá߆ V8Ww¥: ªŠÿ¦Ù\OêZYéÒ£XD¾ Féh‹'ÝÆþ@ Ì4§˜25'™!æîørAs¢ÃÜ ýFûGÉ qaÅb§T%txU¹…ªD‚DRV&O!¡VBž±SKôôpµ­Œ£­- ½)¼Ëÿ±wÞáQUOÿÜí›Þ{„.m „^DAÄ6°7@AQ)EiRD¥((éB'!…žžM²íÞ÷] `ñýí—çöîÞ{眙33gæœ9i1K‡ƒ'nr “IŽüò#ʳI‹ bÀŸ:–Y½—8÷3 —"ú2=ú‚]¦³Œ_Îç¨â>ÙÍÕóO0Σkù{R&Ò×çV-E@’['Í–r}\wÑ¢D…Wß-ûKíÖœg¿ÝÀã9Js‡¶ïæpas†Þi]ÀéXÝÛ¹6QÄ¥Í|3˜1sëF¯ÏûŠ?™ÃÎ{?¦‡ëUOIAºB_!=õТ4ÉÉl (}6©y@fÁ‚Â6‰ òɉ ¦¯ÙÌ©+²SN±RÄèGJz[ÑGLyd„xÒ\+G0É‘_ög/e“Ö8”À¿K¶×|ÁÞ½*Ò.eÌ‹þ¸òo*æà¡ $´J#wÜ|iQo )fʆxoA4âÍe[PûÓzÐXæ÷®BIÛ6$ÛÁõJ%oë"›µàÙˆPªÇQÏ}?‘¼asè«0^ø™eqO1áù@|x”7Þuç·_–Ûé ÚhjÛ‡˜=ðGÂæÏä!3)çE,’gb rd¾.8œ(FNƒ¦gøû¤åèàáxÝ<övoIáJ@X=T? ›@‚âÖpªr0½«gäJIYµÀ’Ì&’ô7žR Jç@B€çYÔ*’9l!vx Ú vñA!Ó^)K.Shq÷ ÅÝ'˜šà1y9G’( ouãÀY­&2IBô ðÂo$¤w£y°ÛÕLùE.4 æQÄ"“_­R$Èdr‹‰*M(žœÊð¡r–¿³ *ÀAþÿ¼úT²`¶\ÖfŒ¥Å\Ф“ Rœià凟—'[$s´"K$NÿðüVDDQ†ÌŶÃO®ÆQPP’v³Nþx:k­ "KÝ/D¸³¾–”Î8:ªmò C-“[CH¢ˆ„„Å"A¥£S -)¢Ò8¡))C_—´8zÖ¤¶¬g[ýpªÊ[pg?9µà¡±OÑ¿W=d3’à‚Ÿâö(E\µâU ¦u´,¡Ô:£­(»­³«ÿyÈP9zXÏ y½ýW•c°ð%Å.û$³,uÒŒåŠ=-£X-a 𼉞±`6¹Ü0‚%„?LWï©Ä 'BOnJGÈ1Ÿ‘D…U¯Šeiðð°é·Kü2æ3Ò¢‡2ô¾Æ¸ËÊ8&€&÷^5D’é_>ö3õç}ÊÀj«”®x;´¦m‹ílÈJ ¯¸~n·¶ÓfQió#̘KЏÔ0@áâ‰ËÍüškûÚÙ/gBi×ü}žŸHïv®ø[ï•¡P»âWÏÅ‘@iv&yý Ž£¿ÎþÒ½ÁdróÊ1^—-^aáx®Â}SX ’ÅÖ‡RÅÉ× §Ì Ì‚Í~/’æE É…&ÖҾʌdm`ÜWrÆ¿ÝÍšè”kñhBsC©çVq^?„^ŸL›'-8XÎ0o~ŽZ45ÿ‚àC=Ÿ@‚|üQ›KÈL\ÇúQ¨ÕÞ6mÛiÈç}KêÉ“4 n72½q$­&±ãÂ8úE?ÉÌï`”$ªÒ73}‰;×ëH×Hî9…N#,8ZNñÕ×çtРB†Ò?È&K.´]O©Éª$Eb7̤êÉUtÄB–”Zxùáïå‰îžtöf%“k¾—êÙ™ ô»˜·ÿ>žšÖ˜NJ^ùn1®ï|Ŧ_Ò¯úŠ ÉŒ… :´iŒáðv¶¦¶£kƒ ò=u<ùÞËtkˆ`²\}µP " ’( ¡~ãrÖ¦ž&/µ9]†4D\¹‘¤¦‘øµlŠå|6j[n•G££ÑˆI펋ƒÍcM˜Â‡òZËÝLÞÉî—š`|‰0€}«|iÕJEf²%‰óÖq¬¤5o/}‡HË^¦Ï)Dn2cQ{⪱.ÕÉh –ìõ¼õìvÚÍ^ÍDBRNîbýŽ{1Ê Ÿ³#>Ї[bÊâ^TIr›xóc!\_aQŽÆÅÍ_gIBR{᪱!S •ɬãØ"‚$bÁ„Ù,C^Ý>Kr «*1(ÝprPÙô¥ˆ¤v@«¬ï×:£•(W ,”^XË´Q‡èñÍÏôqÎ"vßöeëW$DÖÿ FF7n—GWœK“)G­®r«¯#)”8PÆù£KY:7Ç–l ‹:žOaº² Y‚÷€›ÍùšóÌ¢oØûíƒ šÑ‰k'ÒQ~¹ß¬ÿH G´ZÛbd•L†BD $Q¡¢ƒc^Û2GK2(¿æ]•$ožÁ˜Å9t{åMÞívëĤń"òÞjþ*ßÅÞJ±£¶‚ÿ9(T’O-axt4t:žš¼’dÑU &5f)–I½£éÔ± [Æù:Lþ r3ù¿3*:š(ŽG^›ÆÁrG„Ê2Êʪ°\QÈ 4B+‡­Äoä|ÖmÝËÓ%­Ëº"¶Z·h^ûn,}\£™°` ÓúQ\”D|±DÇßcÂã ©ßêY>Y¶—}—ò|Ú!vœÈÅ‚„ñÒNÞ?ZŸÕkÖ±î­vl™²œ8,”ÞÈÚÖs8ôÇï,úô3^Ü‹'^Lÿ#˜4i$]‚/²uÒ*J"Ÿcá®CÄÌå™è1P‘·ÇçY¿þ•jgsI ŸøëÏ6æÛ-KyÌq#?YŽóÐUĬž@pâ)6K¤0ƒå?íb÷¾/yà·U¬M5ÕiÀ¡4ô¶%–…ùðe*ìÝŸÞkf€¾¼<îoïO³&÷~GLðá8°Ä…°êTÙë.Ô\î]Óà„fl‚™!pÐeXKXÌ}Zσ­¿Ãš1°øwý=ôq…7Gyž IDAT¾‚-@‚×¾‚ƒ‡`r}HÜ…€±Ê+¯::eù 7U×ðÚ¸W o-„Ùíü°Ã;ì°ãn€Ž.}ײp£u©¶,ï$ÏÕ'¢Q}´ù•£¹@y>çr’( ðE¨]<ðõõ åןÈóó ÈÓ%®Þ>øù8pðë¹Ð«3!·|o{Ìæç”~0˜f.õiß-–„ìbL€åÈvùt9ñˆ€Z­D)Q!ÃýþMÖòÓqk€2ç|Ùe¾øpc—¸»:ãääŽ7™lœ>‘æï&[® Ô*ë½xyãû ëOYýw§ª =î…«™ÌK™ðÊ2q'¼ž •÷aR«€ô3“Ê@Ó•n]ŸY‚0ÅlçP°/AD}ïZþ8c3dÝÉézMiæBHËß8ž”d—ž"¯Ntj™K‘˜L!ÀÙƒvQà"ïJ·¾¿sÖ:.:¸…£õCk± íú6+o Û§8t>”Ðf,{V±ë€‘Ò¬B2 ¼ñ*;ÈŽƒG‰«°òôÈi-ZW5r™¯ëe[¤2i5£|Ã9›lÊÕÎxûy#æœælÂ9¼Z6µlãX·Æ™¦­ÛêS}÷ïvæ-éÈ“Ï6BŽ>N8XÈæt+¤Â,Î%»ãVËä¯9ã'Fö[K“•³y$\ hñ ðÆ7bgŠüTN—e¡wíL÷¨d%Ä’­8ËÁ“n¸yÈ‘ÕÁôSd(”×°ÍÏóÁóI¶]KJ9úý2R]µ(ŽÇ^¹Nz§ªJ\\®å¯ðY['’„’m¼3÷&@့¢’ìpß+»Ú.oQ—,ùÄî_Ç7›s ¹¼5.·UZù/¡/æBi>9ÆV<>Ü‘UË7r®äòL#¯úMAß» á~¾øÞÆáˊè'%é8™þøHrÔή¸yD3æÝ6$¯^Á·ûÓkpÄÓu«P«È*ÛÙÁ¶ñ¦R¡P(Q©5¶œÖåq¨@)QËdòtèó#{ÁBú™}$†¶¢¯;rŸlM¸Èù„rJÌ®8ÿÓ‹›%Ô+©Ú»‚=zëX9£,G9à~,Ï¡01׺cJ«B~·Eñ$‰k³ÒÒŸ¿"èØ§|Ÿh½”‘p˜Ô>iT§„(ñðó%B»—ßvæ¡oÕ%nxéOpál:UÎ^øúúáçã*9‚$^Kóe»‡Œ¬3ûHêÛ‰&ÿ&תð ±ûcw@ññ& r×[/n¸Æ'±îÎôò!¤ùeqöRzŸ«É@µ ¹\i³y-èÚo3ßm̰ÑpŒ=qAzBUÖ b„^D9ƒ³—þ·q¦(HãtI6•¾þhH`ÑèOIŠÊSCÛâwy3JÉ>¶Tõ¤S¨•7ÆÔ5ŒzpÍW|ÎCaJ@Ì;Oìöõœ´Tg¢²ÀçÙi%2AZ. Ш>?òÇ9ë÷é§ö’P¯î”p|ÍçŒûq–j~J‰B~Uçlþ†_2/+¿8b6Õ'ÐLÉ«x½ÿ»ìÔ U¹¤í_ÁÚ €B2/’UE—^9œÉ:@Rñe›ï€ƒ«Žú팻o&ûª¬1@1æs¾b<ñRjptñÂÛÇ?ü¼]P©\ñtHY7—zkÛË ²I=Œ— vÃÇד¼C[É@$ (àÆ•ÔŠ+>¢JÝš–]V±ô°P–vžøâz„»§‘µw'§«¬íO‹7S¥p§âà¶$åÙ’R)ù-_/QÐâá뇟Ÿ…‹—¢îÛ Oôœß¶˜÷FþD†m\ª­4æìû,¥@@hÊ„e,:\D€1–]' ¸¼Û"{Ë~êÅð'ý%n^!xÖû™ §ŠÉH. _ï›â:ÙViÀÑßSKùå¸U4–$bŽzáåucoСa+|åÉë6“BPÑ~âÎ"xxãç뇟¯m1•`Á|"ƒ‹2!ºh*—/&±kO9Р~%§N[nê…›)™Œ½[8mRNs,Ì•à_ÜÅêU†$$™†æ/|Ã;yÏñÆæ"œT""Z"ŒeβᄉzLf=Eš@êµhC›gŠÒHÑQ)Õ½]Îý™õöàH7ܽ½¨L9J’§7Áþ^% @¥F!ÑÇŸÀ¼œHУñô±¶ÛÇAn­Þ#Þ2Ž\@ü$²Š»ÓK§\pÏßÏñƒ X Èàd¬µ« %n>¾øùªØÿõ<ä}»âGµ°péºñ\­Yj¥•Ïj•u"ð«ª$48:V\kŸ5•8DÖ'ȶk\ºÎä]áÍe/(VQÚƒû8ãâêDiÚIÒd ëﲋ(ÊÓ*’K@¡©+øí`&À³Ã½ut„?Ó+Y0 GÞ  ÷†:â(ÉÏM"Wf[0"(Qr’/GŒaþ®4ÊÿÔ\nAÜ7n=+æÜˡǣyð™5\”;¡¸ü®ëí¼t¥·ˆàFØñ™|L.ÆîäÌý]mùLä'¬ä%Ýc̾؋eë¿dTïú¨”Š¿LLJ(iòÔ §Îä¬JeOdÖ6Whï‚ÿÌ&5áóüÜ1´W0 j”²lÎXj0ÏZ0vÍ·<ìeÄ‚¼ND²(ððèÁÔ>¢·ƒJ”Êbö]¿€C.G^‘Cªé›GdL¢ˆØ_^qîµÎZÔ‚G›ƒg±¸Ø‚VÍ]Å0}â,~=š ø2ë ³¥/ 醻›#²Þ}è?q%ɗ仩Q}ÿ·^Çø(`B­Õ RjqpÄB.V&ñãœ_ùn® ™("vòbÜÃ!XÄHztn„«ëµITáãÅÀ»àìTFý&ÑôÏSÓ°‘(ÛÐ%ð0)Y”~¹¿òôÈoHÌ.êóJ/lª•üVðÊ9C@gèô¤Iàç *Ö>• 5 ÛC}ë}Cî‡MÅ`4ƒFik5‚’TÐ. "½@Ñ ú¹ƒ Â9~¾@Ày8·µN¶RÑzØò LYm _°òR¸f!Ûu­Žª ¨Ð:sÝî{;ì°Ã;ìøçÐyò¤>{ºi2´N:Þúñ :8ÈØŸÉꘅ7÷Üÿ*¼ ‡ù⣬ڛŽg¯QÌ59$.åÁ‘KÉ-ª¤ÑKKYødø-ß)fg¿ƒ-Ö³õ·™H¢ˆ×½oóÕ»ï<ò=šœFÑLØÔ­Ò:½L[õ,ƒ¾°Fáî¿Ï}õ3 O^סËw Q÷ŒŸÞ çøÕä¹ihŒ4{i ±O¾Å}ïgSAW&míŒR»7r¨ä,‡F1]Qx†rÿKïÓ]Ÿ„¶ÃÃ8búyÎ$ïæ×ã›Ù´z"’(â÷ÈG,í!gùÈL¹¨$úNÝÁȰk-¿X‘Ͼù/2vµuáä±äþŒûx<í’&1µ‹Ž 2xÊÚÖ×@eåÅ¥T˜$.WsÌ^û2Í8fmo¯ù<ýÕo<y5¢!Y,X,Ö@_Uyå£íÜ6ʃŸ3bÚO¤ä›ØÓe6}?ÚÍ?Žä¹AÐ ZGo­ý‚f”‘l¬ ´D† ðh×—VI³ù¤«Ž4ðлãÑ…+p ÿßgÆÓb&zºðþïQ"Ðeâ§ìî¨C'¨pvĬߚ•tèÓûëø_Ú?<’ ÝðæN›Ê(ÝLòhÉ ß "ȼýûï}€è’rLÒýÌ<]ïúÏmž¾‹‰“~$õ¹j²½ú zz—66‘ýt|„–†]žáíi½ñT$P°õS¦Œ>C%Ðrølžh„6é;|}Éu²-!™«(-ª°–Í4äs|Õd^šwmDGžû1ÃZ¨3'—ÌãdP+^hÖ€«±ðR~ywÅÏ~Kwµ5# rìÁØùçyî1óPá×°ãæ¯eÉS‰´Ýˆ)J ¦“%•oCOúœ‡:Dòν:&D÷oòÀ=ŽxÝ3™Gæ¿ÅÛ÷Ï"«ÊŸÁŸÎ¡‡ŸëÏ?j´«ùÀÌ2™5è(6fôš% ±…Â†é– @tô§ÙsŸ±(Ê ÿ䙼¡ÓYƒè.myú7y°•À ø¼“‰=ï,YíÚî¹O1 {6åÄF¼þÃ’+ $I´–@{èláÇ)ÑMp¦ýб¼Ù«!ª;ÖÆÅÄ®ü’O¿ÜD*®t}y2Ý#Ýqo6‘•Òžy¬+¹¥&$“EÝÉ‚» ‰ç:ëxOTÞ4}xß¼Pý«“°\>S9ô~&Îæµ÷ß`êKÓó@c\kÐgbi&[ç¾ÊÄu¹N|Œ·'¾….=ïM›Í¶¸ X?‡ö¯-äÃ'š£ØñNÛAq…ȃºÏxä«Þ?‘=tèpÀ·Þ“ÌXŒp¸/•ÏGéÐ9Ñö±1¼9¬ÿ´A”, Zê7{Œ!_àí:Þ%€.Oá¹¶íñö+fü¤èýU¾5¢ø8ÿãY` Q”eDÑZiîòu³Y´ÚIÄl¶ØBà˜°|ßÔñ<†1s]‹:§JåáŽÖ£%²}rz½î8ÒkÔk\üðS†wœA%@à`¾žˆI¬Ï0ÿ”¾Q3djÜ£ßâ‡OZ\8°…+Dͽ¬Åk8YVŸA£±ûí©ìÙƒûîÄùnp¬\=¨ˆ_ÊÔ1“4è?†w{ܺBÀŸ|`LœÏð{£×OÇGø5h4ïô´„Œ§WðÖôo‰I©bý֯贞ÅÞ’vºæLí«c²M¶_ìäxæ7NdäðÌ?øq– I©÷ü>vÛŒ¡Ûë„Ë­1¼´Ýˆ)H"¦Eu@Sžx}M“~å• ÞûÞ~£?aòkítÙŽ‰ š¶•B½È@Ý,žÃØ ²³«Z¼B†1sMcò1Uê)+ÕÚJS ˜ãâ½ç°ë\ßÿ2‡o®fFC5 žíÃÔ’*$ú²aA"ñ•”–aG-Æ’T?ªc {ˆ1¢iëÛEúD>yHGJ…7NüœÞÜ¡¤ŠÒÂrL—åÑ׋˜Á:thÝüxò³ ´÷¨À;º-SîÓ1¢‡¾Á3œñáêð!/é¦p‰{xué3x¨¯­’‹Ùz܆³üïöÐà^¿ /}4—(sÁiÖé»Oø•I5ÈÏ@÷úOÈÕjto®á«=@*Ál¨¤¬Dmõ3KβröG|¹) ·ŽO3q̳´óœÂÉþàIú¤æczMÚJ´Jd°jÒÇ0òÚÛèw jI¿Ç‡2û-ºšÞûoOè‰`:½‚7«ËöøŸ™¶rœd³ñ‹ ‡°è£êCw݇8y¹zϽ4ö3`"˜è^^ü1õyúÑá&¶¢^EcžÿfSž~ž3/a¢+“¶uCUþóUßð² ^4ªGý…O¥Ï𠼂zÓ3Å¢d;óׄ¾¤ ³Á|Óf Þ:Fÿ°™GRbXÿÁöT"‰««µS¼|”ŽˆÙ""aF¤5~~ƒçíH$”ª‡ùâö€HqÆY¶/×óZ̯4µˆ²¿òaªõ Sõàiûè±Ö„€DaʽÍ#kŸBÜò3[v80èÓ®$Ìþ‘óÎMé?¢žöpËu³ÖÿRCC%"o_<òr¯‰ÁÙ·IÓÈêÐ×ZÚé? ÎïYÃê¥%ôýf$­¯$|²X?æk2Ú>Îð¡.üøð ¤±ï3¬ƒáò>Àô¨ïhºéÖùH1Q”ö;_¿Côº©t»²|°€}_/âPisžx§1£g’Ùùží›Ç”Gþ ã¢×éè†R’¡šÀš)ÎÚœûè´þ#ºkËˆÛ´Š ¿Éèÿås4βä_0t{€gFppò¤÷y¡QeÌë1 ÷¹³ÖÈkÛ,–ç²cγL>ÊûßÌ%lß\ÖïsâOÑD:ÉüW7£øƒîmŒóšNñyç¯ðYú5Ãê«nÑæ2NoXɦ]j˜9œ¦Š\6M˜Ëù†2b™/†l£é§/ñ`C_þÙ ­¯¾ƒAúpüʧϢÁ9 ƒiQÐt ô„K)0$ôøüwÀ?A¿¯¡…ËÆByxâQpâ†@x¥¸Ø“‰5ƒ| >Ñð@”µúÒ‚AñŒ¨/÷‡aû Zf+L"@qÌ6@w \¿%ÃÈi· ‰Ðoì{.öƒ¡€›_v÷yðdcøH 7Âø¤?´Ý}ìì°Ã;ìø_DE…ë~™À°Á½¬IÍ´LÎ_H¥G·h f3^?-F¹hTT\hâ¸è=ò¨B@ 4,¡Î§ÕΩ½Áõš\½ÙLfyyyÞàŽ«Ó!á–o­~Gõï®ýuöެÏò¡Sÿ§iéQ3š/?±"û¿ÿ0ÓÀå ®÷WtÞ˜jLó_sñzújÇÓ?÷ì_?íÆôÝJîDvnE—ÑhäÒ¥KÔi›oMõ$¬f½VsNÝ,øvó·¢P(pqq¹M ¨©üÕL.¯GYyƒ/O¯¿¤âæc°f×¹±g0(,,Äßß¿Ö#¦®~}M(MÉÎÎ&((è6%éVï¬==Õ‘–žFhHh Ÿ}+|{Z½.lš^¯§¢¢ooï:¶Œ7¡îÜbúoðeþK½ r½óôNNžžž¨T*þPSÍV³'eddRGcíάß_Ëô?ßÙ™™øûû#—ËïPgßÚæY åìšÕŸsýwóZó¿Ò÷¦àØç]ø½ÍÆwÑ^Ùíu3:k"Q·Ò5µ²7öÄjöÞÚé [y w¦Õn­]kFUMtí­=¡ºôynÞ¢[ù<5³iw¦³j2‡¸#›Pc?¿Abl¸¸—éë“m;€am¼jp‡™²ø¿À>ïK-tÚŸ¯ITžaÍäeLAoçºìÓºôþʧªù\åï´¯w‹¯­t×ÔNûûPTTˆR¡D©Tþéá‚ I‚mGeS†Ïç!]7ˀд´»:Çjß9ý?ÑV—]² ‹ÙŒÉdÆd2re‰$b1[W™L&ÛJ‘ÿgX,ˆŽõˆtÛÃêã(+7b2›0[Ä?Oãóõõ¤àR>iî*OW4ÆXöŸ*¢´Â¦|nÖ&ÉŒEãC—gg3±¿'‰é¹È/¯JYõ}س-† ¹DÑŒÙ\íäȳ³8æ‹Z¬è;N±Hr„¬®›Î@j ÏõøŠŒ¤ü:—ÑO¯$­îõôe1‚½!ã,då°r4k Z{ò·æPC¸톔 Ðï…… $OˆÔÀâ•`¶€Ù fé:›S…( /àôHÍ·þ&$ J­e 9 `º‘ɰŽ{én;ì°Ã;jë®ü-SIÁöçÆ×krõfOøëwþùΛ=I¸á[ª_¹È¹ž¸ÊšâQsš­ßTQ\NÚ©ûÐÕ« BÚ|sšo¯‡jÏS¡\ºUÿ×½ìÜ’.Aø[Ú,Ü%·ÓkÂmÐz{cñN$ ¦ò÷whátpÛ×ogìÕň©«_׆’Û{çßOOM¹T­~7ÛÛêÔåîüˆçèÐétèž>ňÁñuUñïDÝꚺkÂß*Ñwk×NgßÊæ‰˜Í±Äîx”îÍkµë)8Åž_ ‹NqÃ7ÔÆÃîØ7¹™'&Ô’5yó­<†;Ój·Ö®Ôº/kÖáoðynÞ¢;·ww¦þzQ{ë|{~^ÝJLù…}|þ¬Í. øÑ¥5ÚxÕÜŸ’Œ˜Bï^y~uÊm„ê×$ÑDüâ'è~ß‹¬ÎqE+¯ë>­Kïá¯|ª;Ñèw‹ýú;=C;j { èÿ d j­š«:ÏLÜ‹ù5ngSÝiݧþ¥|7~ß! šÍ4µš…C(Ôç˜õH'f‰"J úÿޱÑu3Pe ÔŽêë„N†B­A­V  ÔjP©$ªâ‰åSHò!×”`‘̈ÎâàøNWD×Áµ-ÍZOæ½G†²íÍ÷xÃÙÖŒÜxweXËý|<ù{w£‡—Špw9 Cíä€JVí¼a'-*Q¤è÷‰ô´O";½ÆÌážäe(PklºãMïÉï3vcœG–®ï²å“PÔÎZ”7¨v}›å j­ÊV.L@©Ñ ’›1Ô˜1 žçÃ'¿ã݈ l®±–X–kprv@  În€\¥ÆÑY}[+8ÔN ²Ý q²ž? “ÚѺ3U¦–+²Ó}äO„Ñ÷B)ðÄÐ3ìùßÛCï×áÐ$x¢;D<]ÜÀSF`äFxctýƒû0Øð¨•' hßb&€n´ ‚ŽÀ(A»!°òmxô+ÀCjp¬Æc… ”jhßÞÖ¿ ·óÃ;ì°ÃŽÛuâDQü×ͺ$QºR"M”Ä¿ñE>ôxs„õ=¢ˆx;ý$©ðoÞŸ7–‚t»÷Úñ·A¯žó·ÊÎÝ>¯dHHˆ’µ¤t—TÔáÊ™jwªÓr7Ñe-ÿ?ú°¶jô.’¯Û‘CQÿÞ~•À·Ç;|ÛãêRvû¶æfã[²Žï¥ž“@’¤»NvÛ¢»Ío’ ²+r*HÂßÊ¥CWÆmïj=Êí¶·Øµ`ôÎpy‹Ý/²ÃŽ»N÷:„GóÆ¢Þ¸Æw®éxph2‚ïcF\yàéKAN䈕\}œˆhÛÔd‡v\uÿØK@ßD+#Üñy©Î¥Ú«?üšÕ®Ø•{%áÆ ÷o§1×Ñc=1ƒ:¢éºÏµ¥K’n±C¡Z èZ.a·™u,ñ·ï-X\›çÞRdì°Ã;ìøOâNK@Ëd²+ÃDIü×ÒnÇ?é»Y vÙ¹{ Êý›èº[eçnÕ‡ÿf=}·Êáíô½ ÿjúí2m÷‰ì°Ã;ì°ãvý7??ÿÿ™ÐöÀÿi×üs‡O©{º®¸pío„;x¾ ÔAc„?¨;š®û\[ºjšÉîÞÿOÄÚÝ+ÔísíÉ_;ì°Ã;n{‚$J‡ÿëè¶X,ä^̽î `;ìøk˜Ì&òóòkxðEEE( œï*ºôz=•U•79øŸƒÑd¢° ??¿»K#‘•™u‹3€ÿ9¤¥§ü¯••èõz¼½¼þ•ôçääàåí…Rñï¬ñ•ž‘~WÊÎÝ*Ó™™™Ø“ÀvØa‡vüO#-=íª½v«o‡vØa‡vØa‡vÜÒ¿ð ùÿåÒ½vÜ¡¼‹’½.÷…tw–æ½[Ç·$ŠweÙeúïã7ÿòJsÿVÙø7ú%v~Ûa‡vØa‡ÿß°'€í°Ã;ì°Ã;ì°ÃŽÿYÔm(´ŒŒ 9éMµ¸×Hq~.™9ev¦üHžt—KóßG‘=ñ¿¦í¸DŒå¹$_(Âò_lž!›£Gb8xè ©%w1Æ|ó0Ú²ŽG¾ˆ¡ì"ç/"Öæ]æK$ÄçÞ/öe vëaç‰uŒ$&^¤ê_åmIXô9œ9È#Ç8›[yÇz¦<ëûæø™4Jĺ£Ó\tžû÷sôdyUÿ¶¨'7+—ü⪿WLyœ<~˜ö“\(Öñ»$ŠsèB±Ý8ß!ì% í°Ã;ì°Ã;ì°ÃŽÿ”'±íÀ+ñiMK¿«%(úòòüÃ=#Rtþ,qIé”àO‹NÍpV!ÃHÚþƒ$é«åáDõlÈ­‹Ô¸t!¸„l*Ǧ´ŠÆYi"ûØQ.•PEúDâvÍq$e¤œ*'¨…?*,”eœbï©4^A4lÒŒ gÛºÚ¼?øfI÷=ßЄ’.•` ÔöL4TU IDATÀMìÞÓˆ2d*-Á÷DÓÈÕö}*{7ÿF’ª3C:«H:›I…ÎõZqO?äUd:BRi%f$dá:zE¸Ý8b($3]$  "¥‰œ={ž"|iÒ¾)!Ú[¬.#åd-PWŸ‚˸pšr·æ4v¾î( ëáUdÄàÞÐG…A¼HìÎSH PùsO×f¸ß pS–ÌÙ“I>D¶iJ˜·2Ld=Jba BÐõib»·œ„íûI•ähÒ¡SjDŒå9œÙ{‚\™Aõ›Ð´;r,$ž!þB¥R­:7ÅßQ‰€Ô½H®2"ÉêÓ±gk”¸¶Íþ8*dÖ~ù“lË1]àè¡DJe¼‚"hÖ4-F .$œC¹$a1;Ö¦-‘¾ Òö I_…E£cïF7”m£>‹3{N+¸Ø )͸#+Íäd|"9%fä€ W€_t®¹Ä&æc²e™dJ êàæD•sh׊eJœ<ÂhÙ¶>µ-ö,Vf»÷ …ÈPhœ iE„‹DEa:q1gÈ“yÞ¤)‚] 8•ãq)ä—_¦S ~‘tôE)»ƒ3KÄb’Ç“QXŽÙÆ'Qt¡q´ŽPGJαå`2™€¤rÀ3¢Mµ¥¤;QÏÃ:.ÄRÒ.£r÷Æ÷ÊX¹ŸïEœÝw‚ìJ’$àÕ¬3÷¨RØ•åC·–^È©*Ìà\b¡"QæÄqìD:8øGЬq}<Ôu`+ËŽ'î\EêPZ´¨O€³JÙ"½A$<[ô Ÿ±"“ÓçåD6¿¬M”]Ê%·X»C g2Ñ#a±h iÑ’F®µ <+ ÈËð¯çüÊU3ù©—»»áæªAveVpáT¾-q „¸­IG³{CÚµ ´ÑZE~òiŽ$ä¡õk@³È†x;üƒgäH âaÆJf~Ñç‹ý–ÊÉNÍ£BáI½`כؓ*²VÍåÃyøj ÇQ„¹Þ¥íÉßʤI>ûþ)þ½…ÿÍ”å¦:•bIÂbQФB=ÐÜÔ-º‘O"a(ÍâÌþ“\”¹Ñ„&õܪ5¹É—Ðø{âꨲêª ìÚŸŒY÷ÆÑ´ ÖZŸo*åü¾e,8Í”Qá$m%WæAXã&4uEFi'Ï’r±ƒEÂ-2Šö¡®\6Æøå¼¿ ‚ù³Z“²ëÈPh]mÙ."úü ÄM¤@& ¹‡ÒªICüä7°Ó•¤ž*ħE@)ñ[† '·†´odÓ7î×¼ ù(=ÝquÑ £’Ôý1$W‘$×ë@.òkªJ2‰?’@¾(!ŠJ‡Ù{®™í 4AëŠWx#šhó‰‰I¢\¦Á',’¦üÐ` ?鉩­¶Ëä@½ö:yI¤î9@’Á²p:öŒ¨æ+Z¨¼”™Äb¼š·#Üôäd`R¹äç|c½hÌåd¼™ˆ–A6[u‡(ÞÅÔÉeL\ö õå a)KçØ±tÄúmÑYÇ¢XQ@JJ÷¦4 tþ‡û³Pq~ïŽÜˆstšõzšÀˆ|$—£” ÖsëÜBiÕØcZ"‰™…TI®4ŽjC¨« U¤üq€óFó¾žø™¯W&`*à…UŸÑûfN½TLòñsd—Qið¤I—f:ªnÀ+ ±*“˜of2ñ„V‘‘ |¹ >š¿ÃžêÉÍ,À ô$ÔÏDR\!Žþþø»kïŒOÆd6¬Øcë{y¼wýZøa&в3ÈÖ»áu;oæÒÆ%|²é<*±Š.#ÛRÏC]wòU²Ï?ýœÜîSèîfÜì `;ì°Ã;ì°Ã;ì°ãÿ%çX?g)« ªhîÞž–~J$c9Yq¿óý–óH]ýzòòÃìÜð3ûΙ¨¸¤gOÅs¼9°=®Wòò³ä9Š”&9é7‰±MoqcE*'vþȲ?ôøxQhhÂÃÃ_¡GøvÖ¿Ÿd“…²” Žº¼Ã;º‚@YÒ.~=vˆ]ÛðÑÂÇðÄDYÜ^–,ÿ…Cz3áámÑ6#ȵ/:„GÛNxÿ`Ê#œ·X(;_I¬ÇÞi„ô#_,JÃ'@Â,•¡9"0~l'Üʼ"Œ2‘fÍ•œüu?ÆTâáq‰K†ž|å9zÖaíª­¤cD®Ðs^L¥Þ”¨çtuš-™«¸ÿ;«w£°¬ã&tCQq†ý›V²åˆ‘ªÒ v_Âku!Dý穼þü6Ÿ8ÀoCùø»!ø\™ßW’¸c_¬9‰c‡·™þBëë‚‚æ‹gØ{f;Ëkóõ34wÉø}9+7fƒƒ…fðºz_+Ïqè·elÚgÀPQÉ®œGxõ‰Þ„•màçïc¸`±ñÅ}ï¶ ¦$aKeS醋»H û€áþzâ÷ÌcÙ =fy¸ŽÇÇBËÒ Ù»•¸JµåqÛ9Ñì¶Mê‹R-¯½n1œfÙ¬…d:8áê¢F@B4£nÝßÂü²d=?› $*%Üëgah\Áæ£õ™0® ZÓy6ýp÷¨¾ êQËÅ3칞Ïw¬+IÛ¼šU›’Ñ«%ddQïÏ’>gYøõ \¿úˆ6òRâ~ŸÁÜ£‚$.,_ÆïiF´äk£>ÌîMë@!K”fÆsä·ïYÜ„‘GóXd6¿|¿‚-Ée(#'‹K›RyyìS´3lçÓÏ´Ì^:/K çþÎχˆjœÂ’Eçðm€¢¤õ±‹<üL?Ú:Ô¸üœdÒ“÷;«¶%aVtaôèŽh±8g·°dyý^Lï{ücÆvœÞͪåž|¸òÂd2rOÎaÉ¢K˜|% ^d„Žãq‘ü#ÛY¸v;ñz#¡ÍúàñÏ&€A®ÆÁAySÞH×,HºK V›‘FJMƒà›euO2wžžQÐSþÿI\-úL¦ÂÉQºÎ®]Nþ[PNÒ®õ|ûõ!„Ná¨Ëh« 4ÄÍMš!]ï“•3~t$é{æ±üû L*#ŠˆŽ 5“ ±0™#g¶²d©…¡ï¥SOäØ6ÿ;–e•âD‡¶WÀæ —²rˆèFÆï_±luF™Uó®<ùú`ÚbùuýïœÎ1áä˜KÞo٨ơU€uáMúáã4ôîg¿aÖ¢,üƒ--F×®â—ýE8h5sOpRÝœ§ûèP$%6ψ¢ €ÍY/1þÉv(“³bÉyŠ=%Èuà´ÇËŒé7‰ïï=ÏcçñçBªQ%–zp-³VŸÁ!¤£ÚE|7ÊP˺߂ùúwiô·š¬\nÙEžgO^|HKZRžZwüjœ¾I¯ rÔ *¥ì¶w劦‹$Æ 8”%q³ùu ¿Îãñ psúŒå¤Ÿ+"°mÚÛð“ÌœO|¯/X3$¤¶Òf‡ öð’íï[8Àµ3w:Ðþ™*IÖÅDwòÛÛyÆÝ$Bm~g×§ÿ¨ Úù`‡vØaÇ…;±Þò0KgE]IjI)qœIÈ'¤³5·ñ—<¢»`Ù?0b^Ù]Ã8úəʉ ‡X·þTGòit8Šø™ô^ËË­ƒðRÉ1\Jâäx.:7·NœÊ 8½g—Z¾É÷U „€€™¤S t–qzÉnÔƒßc–.Î|LÏ%±¼Ö:W‡HF|9šîÞ@U,_ Zľ;ñ€‹Ha^¦Ç´ÃñLì~ç]N'¥ÑV«¤ÍØy# ˜e÷¾Í1#Ô»vÆNIú9NŸNñEw4Àù]‡I77áõEOSÿÒ/Œž›@BJ+B"+9¸1çQDúh‘Æ‚dNí#שÑ5;îÒcV³)±„°V÷â¨9•œ?tŒ|MÍZãˆeY$8Eš¬=’  رä8]V®d  HœK¯é;yµëàj»€EÒöÇ’RÎËK^¤QÑÆÏK&1­)ßïBýèxfv Fvv½Çòz;5[¦î§Ùœõ ó„œíïñâ’#<úœŠ£;*yøûÏéb>Çw 7pè@2®—RÒ‡wÇõÆ;cOÌ;ËÅÎÁ$Mß︕¼!G<<‘î 0ræ½·=9¾¶Í²ʶHQúIN11bÁç´¥„]+³yû)ŽÇ"6䑯óPŸ`ÛSóX9džï-f|S-­dÀc›¸ýVãIQÚin6ðèÊ/èD.›ç¯b÷ÊÚ½ÅSoèxÊöËÝÖ.ß®2¥ëåûKXùÜyš÷tf÷¬TZñ-=Ì_0îǃ<ÑêÞZ&ÎÍy~î›tósá濺œm…“†-ÿˆv•G˜½`1û2hÙ³;/ë~åî-ãr¨ß7•â3E¢)¤ã' ¢á5ÊÀÀáf³Îø*ßÎêbÝi)Idïý™cfåUw[£ÖjP)å€å:>×[žÄšiÉèÖÏäo€|vl-EˆÌôÞ¿ðõ¹Dö½ÀŽ•ô5·#+8›z“¿Œ7"ç“RQ(êªh°ŒÀöðZûf¨>ÁMSÎÉ…sX[Ð)3ú"³êœ?&¼Ê+[±pˆ§kvÌÈ+ÕhÕ $§t1˜—7²øá•åœ>–BãÀfÔxYÅHÑ…xÎÄç⥹ª‹ª H=~š¤2L6Þ˜KÒ9½ï4™ê^Hb;>;FûE?ñ˜“‰¸“™º2ŽÇ_p"æ@,šžÿÇÞyÇGUgýÿ}§Ozo¤’F¡†Þ{iŠbëÚ]»+*ÅQQ@ÞB‡$”P’@ Ié=3ÉÔ{Lh®²«Ïãîþ8%óš¹÷ÛNýœs¾/óU÷ŸÉï?Û[—¡t7RسçU‚qº’뉂²ŽálN™ …W<ƒú¶ÆS­øóÆ-³Ã; W d^-Ä\AAqÅÕѽÆÓ5 2ÖýD&Õ(Ö®¢Ð7‰ÉÔZbI…³{"C‡GòÇS™i¸‘Iê%-‰ƒÃqÀLåµ<Êjì‰ìèNþ©dÎ\¹Nt§ýÐÁ´ó¬âdxÉ“9žB¿~"È8¿÷K ‹eØ;GÐ{tç;IPÿ!QQô§Ûø˜þxû»ÎƯŸpág6Éç“V±½×ù°/n÷¼QÂ`¬¢4Ó…À®ù¤ž’1ùëI4žãó/ræD íÚ»Óyæbf¹aŽ­SŸ ¥pѾZ4B-—޹Ñu¢#”¶æ¡eÏÐÃLåÇXñø&N…øV½X¸¾-‘r¸ºv9Gró)ëIÀÝ⤾Œ—(R÷n–Y%ì/vßÂ'‘k?ý…—×_dÒ³ T\=Of©–˜î1¸ @S%×Ï^$GçYÙÌoJ_z—Þ-*ù²ß ¤ç`ÈäСJ‡%¨Ir'ºÃBf½3øvÕ¨”±•U- Xô1üï§N•8)Fóæ{ÔüQMÖ!¾?¾ù˜ÎÆ‹¬üû>RSóPå@5œ¿¼”„kÁjÆ/¿HiB+œ=A¡èË’Ÿ$æîgZ²A¶?¯fÕºCĶñ¢)ÛŸžS1enë_粚ë\:q™›ö6{Ébåzò&ÎzÏcãQ·y1{ßeÊÄ(ž[6ƒ®ðÞkû¸œYDb+q¼Ì‚@5 cãð%\6åRöâI¢7leŠX¯~Áøçw3bË4|n¿¹‰œC§É­dášY„qžwž8̹ˆ(¢“:ñð'‹è|·áâõ8Ÿtoþ[wUÏ¿MC¨… û•,Xù1­)cÛß’r,“Á!ÞXÅhÆ.ÃŽ·€®bÖŽ>€ßû›y9(_ǰ©;µï!›Ý-~„FÉp/ÝÍ7×Z3'BR£A­R£BOÆáƒœË-£Qô ã¨!Ä{ÊÉ?r½Ndž5&"Û¶G«s kRRå5Nž°ÐaD òŠnÞÔÓ¢Mu—‘|:‹:‚è<¸;­ýHK3ãh=Ij–=û˜míÕe2¨Icݥķs¥EÜ`’„½l,Ê\ë\»’L­{o:hXœ9xœÌ’&$É•vÐΧ–“gÁKv”ÓW E%í‡N#Þ]¤êⶤV!—)pôˆ¢÷°¸c¦:7ƒ‡.Q¯P s !±[b|šHßw˜‹7ªh=è:~81ê|’S•ø«r,#’A3;b„hj¢pVzÒyÒ+tžd[ùÂ]kØVlÀ•Cû |0¸-*qÓç_ x¬3é/&à£Íü%([ǰi;½o>¾õzŒâ-­‰ò«WȺ›Ÿ‘äAô}t"g˳é÷èhÜË9~BÀG™Ì‰L3¢LEû¡SˆsÈ#yù2m›·Ð&¤‰þUÚ‘B¥àC\ç$ºÄÈɼ\‡Uw‘¬\%Ñ=‚©)µ ªJ'£ÔBܰI8¦làx…ŠÄᓈq4Qrþ'¶Ÿ¯E!SáКÞýZ£** 0+…+–r6º%áㄯ«2jHû鵘ˆeø¬Îxés8”¦$@}£jGW: I˜²ŽœÔ½Ìl@Ž–ÀÖÝè›Ðl§ 2”TrvÏ%1íˆ pºOǃ:ÎoÙÄ™j'<|¢èL”ÜLaAU7 ¨­¹JN‰ŒÐÎCèçÆ­{¹b¬ vóg”„ôbÚ'Nm8H¡TÚFLhVs×Svq(3Ðv½èíòÏCÝúƒ,?¢g›Á_ÓUv|uœr¹{—zúOÓÑ.=€ÿ+ÉDeöe®æ „÷o‹— k1Gwîçln5X-x&McrGŸfaPÊ©5©8F´£-HaÒåqæÇ'õÁ£ü<7#_±XDüúз[ኂ=#ÇÿË Œ,´?=m^MºFƒZ"Õ“W‹/€Ö—…+åU4€c³?d<ÿ:ß×ôæÉv¨¯(S¡©9ÃWï]ÇÃE‹L´bñêÁìaö dÁžîwÚì ~ÝûS¹w3çåq" ¼gŸÿ¨ÛÍBhÕNÇñ5o’Ùn‹ûѧ¿' Ðw1^/<Ç7bõÑ‹ÚÙ ¹anpf\ï´ oùÇ{”FF« ¥á{/y2~a'ün;ƒ.ôxk>? N%o²Ç}}DI’nów…½ ';í}‚¿à/i\‰ù$Ï;meëcóÝ¡2ŸF/TSÖ†Ê"ÞNu·‹Ãâ¿ØS°¨ºùý9ä]Mb„ƒ-áÖ²Ñû³8_æÆÕ ™T˶°ôR=ÞíûÑ·[kÜå¶NÉ-Ô×¥pèóÕœ¢ñ·žæûZ=²ÐÑ„ŸþŠï~,ÂêჇp…m»ë‰NŒÄÃóO€­e¤J¦Jn‡µ<ƒkeVüÂ}‘gãÓÒø.nƒ¾Þ€Õ[ƒPUC•C6?ØÆÖ›1´ja$'u¥Ñ/²0ìsV UùœØ’Œ²ßG$)KH9yˆ‹–h´ê<ÒNåRë¨BÙÉO;}ñXŦwãÓݹÑ3]ær~ –ZÙÇpÅ!ˆ7úÿ'5„deœßwŒëÂq‚[õ`P÷¶x«ïsJî±ItÔ&¯ £¨-IJwÂì|¸VRF=Á8tfòÓjŠ^¾„Ò :츂S'ß.ÍÀ*(è<õ] è‹Ó8$Fó˜TENik›P{¡ò ¨¸˜çv$Ü. ¯ Ì+˜ Oµ-FR}Múö|lBhz4KäF}#!ø{ÙãáÕmái¶ì:M‰9’΃;ÜÚäƒ6z4O¿lOþã•Ø`éò®%1Ü ÀŒkh{¢vRA8y‡7ó÷#Þ<Ñ5w…„̯=cWSòÖ9”V«Mæ÷¥72¶É|-^Óä,ÒtùKß=ì>I:ƒ@-yçò×e¹„ø¶¦ßðî4¥_¥®¦Œs[—“ij$rðlú´ú…˜¢dAo9ÈgËDB”NÄO¤¡žº’xZ¨= ×zSR‘Î¥"?\b]mÁý KORf2 X-§ùòã¿(W6ü!ßv’þ§“·Pæó(;(I‹IÝy’ÜÆp‚bú0¤[ê{×Ò±Íd^ u¤è©F$ÀbÎãЮË(;ŸdÙ'{Pû„Ó{ìP‚ÚÄRt„-ï.E®2"óŽ¡mˆ+¢§?]±’w`{3Í8Œ˜IÏZ>« ®9N)Lbˆâ[®Iàs{]šÐÕ+L>ØŽK=}’ÉÕÕÓ„™t‘Íïý•“ÎZ‚ÎeLÔ‹GÍdíþ€Ç¼ß?+•WHþëRŽØÒZ0 IDAT™1+è‘ÔÐ!rÙÿå‡\<åEP—ÉLN¬ üfKânáÁ^}§ùÙh©iÖ¾Vg¿ÚvÒ³çèFªý{¢šrŽåqöâ ì”(ê.±õG¼gÆchlÂbn¤¶ºšZý%v¾®'hÿ,T'W³iK0òa1„]æÄ:Ú»dsìËÝä:„âZµ—5 K†Èسb –0W4rGŒ¢r b?¼ö=çBÚePk½ˆî#g×W§È™ª'+ÏŽ®]0š­H &ƒƒE®ø4k“îSÍ–¶ãÖ5µ¤A¸~˜7ëXûX4¢±‰&“ µUGὬ ŒäI4¶}ñ=e­u-ää‘|?OT— ¸U‚^«@Q“Îæ­AôËaíû‰ެÁË}ì±üûÏçc×~#qlë1–x¥ '¶Ko‚u(nI­}ñîÍXÍR²à'Ü…@Ù÷ðs³Œh4`6ÐëÍ`w™oßý‘ -Q•Pp„·tíX=_@ßhGĪr ŒG(Ý~šsæHü¬§ù¾ÞˆÖ=œ‹›6qÙ$ÃÝ»ÑWØüÑq<Úùa_|’w², ª£*ó(o5u`íü ¬Æ& &Zs ™©© g–Ö‚±©‘F³Ž¦êKl9–Å๽9¼M‡%Ü1\ZË{aþ|Ð2…U¯¦ý”(¤*#†‹8eIä³IXŒM4™-Ø7äqô¤„Â% µ\A dóÃ{ËÐ>ñ!þN¿ˆcøˆ.Ûã 0¢píİ¡!\Þ¾‰=™vÄ´(`_rƒ 7•uEüúa¯7`ñT#Ô×S×x#ÛÁ¶üp"‚¡æÊjòc^ãÅX´®-é6±µ+÷“^WÊ•?: B¢âW-Y˙Ӕõ@œ“sü“ƒ\w–£¶©Ì=ŶAÌëë÷ VêHàÿJ2R’qŠ;ìû·ÅËZÊÑ5kØ#ÜOu×~øµâ"¦'ú£r`åFBúÝ€ ™ìýü =Ç÷Ay=Žã8c8¦tŽ|·:…/³ºyýÆd¡¡4}«/ÓoØŸC G>Û„{»Þĺ+V‰i¥áæÖ®üc‚3Ý¢GòËMªIûf+º- qýMÎ,BEgÓÈ.w$v`<ÿ¯$•*-(þ š[s~\ ×á—ú'ýoÑÉU „(¿_vµðãGpÎbþÅÜþ•Ðj0´RÀÕ8"ìéz@è=  Ê#?Ó—$PZ5˜+Sùêƒ8^zµ½ ´6Òh0# 2är k3àˆKµžF£„ ²`±Úª·P9ãQ^Mí?y³ÍÅ´rcßN2t¾ ЋĠ.Ä"6?gÜKj¨“îü¨7 öˆ ¥”æ{ã:P]}9Gc°1cxRÚ ô¡þøP!;ï3Kk¨‘îŽrÙýÞ>´ÃXKJ(­È½ç T·Çi&wË6rU‘ oØ àIÈUZ4v"} •õàýWÏ5¢k2#  C&„[ëgS½£^QÔ%cæ„ò.›TÔ±bK”4Õç²{Å{|Åj3Ž}›Þv8gÎ$L滌;Ž»¾ ³(5ÏÀ/×,Jê[âçZÉ™M‡ñz÷¡»æw øA°Úî¨ÃG“ÞŒ¨´bÅÛkèQ\C­(G¹ùnWìp.©¦N‚B~ës5v54bT‚ñöÙq­j@o™Ò‚åVñ¤Æ÷ò*ªÿûž9Ë~ñl¯ÿ ž€W"q²Ë£ÚÐ {ÝYΗ–0b2`$zXoêÓr©S‘¶n#^ncèµ [>y‡ ‚ÒÌM«Àˆ{Þ­ÂÕ/‚øŽXñÜ›¸¹JTçÔàžÐ÷.ÿ¬†ŸÖäã?|wµ‘³æ²þÓz|Ú w”蜯R¦ÆS™CÊÉ:öŸƒŒß ,Z¯±gé1GÎ&F{ž,Í{£ÁÞ("Õ7b›AóïWÜ rúBì”L G¦@¥Ö¢ÕjD+VyuÙÚXfüÃXˆÿ“·ÞÞç?Šé¾põ'ËÐíåÍ7+Q÷˜Î³IþÈ\bÕOË[‡\yâ[;S¨vô™\Dja!G¾}Ÿín±Œ܇OÕ+že²Ú:j}‚ñvUþÌWqÀ«ª†áWZ r”¦œÿñ¯äûc/¨Úµ¥w¿ßžT`mDo¸%Çîâ7c#F‹õ.þ°Þ’±‚â.y G®±Ã©<Ÿb½@M±'Î}T8ÖÖr~ûd Fvõúí0¯¯. Xõe—p±!§>ˆË%V½¿›ó»÷‘yµ¯nS˜96 Ç){*ÕŸ®Çe(UJ”rÈ|Ûeþäô­Èz>²ªÞtß—ÀÌz,‡isdú¶'IÒŠäï}“ç>9ÌŒOÿ¨{•x„&Ð#i/;OXIЍD¯ˆé@þú¿sðŠà.Ḋ%[·‹Ä¶±aý3®•J¿™½zŠ6@Éþ7X¸æ 7ûO³nÿdOpbzë(—Wµs'jÉ™áý[þÙ$vÃæÓÚî2Wdæf¬Ak¡VG#ØÉ1YE$d@W=qŒ’£Ô¨PU¥°î­c~„O“‘Âsqõ7üLGAf¹ýL;“–[z ‰ôe)‹èÈŽ(ҽߡ˜ð‰ 4¾Eæ,ö-;‰ÓÐÇš¶$,‚ ymµ5 p»‹ŸïÈËíÏä(d·äƒ ™Ö§’ëTãBX1Ì×$¿ë·†&L–ì¶ Wi±³“aÖS©OÀ½E/y:šH­MG»·lÇ€Ù& ©ãfÚQH8) É ;';œj2ùéó]¸¿<šöÞÚ{’jYƒåŠÁ€¡é*»?Ú £]Q)ôÍk¨Fk– ® “RB!ݲsœp«¨Gg6#È€g‡s¾¦ ¹ì}ûkB–Î Jc‹ÍVf_âÄy{z|Ø 0’Ôž¢+UòR2¶íÀNîÄžAwu¹µ–Íw ¢XHQžnƒÔz¨ºr”ïôq<2C‰BQF4]3OJµøˆœ:9¾7šh;Å•´=ùµ0Òäê@͹L*=ú±øùax6äåW/r.Ø«ZNpǘÙÙjw¢*ÞÊG/ߤeÇñ¼1)͵¯Y§tħUo¼ÞyŒT=éÔ~>1ÒÒ*´öAyºqíz>©’´(lïB-'´ßÓLˆVA‘C^:G1øµ‰ÇûÈOÜÄLEÕu ¥ŸG؉§ßNùx¯<Æ\Àám{¹€#A­|q”nr`ùúw‹Dm§&zس ö$ ¿(‡ dÍ Xòex¿ <+Σ·êÔNäìÞKé¨^ØÉðG<øöÍ7Iq3%29ãd?söp&ô~þ5ý«@­V>p1£C|†¼výÓúÈ Ž¯pçù}¸yúï|z*ž'néç÷pæ Z%þñ“˜?6­1­ÌöŸe rGffÒêÕWéRäÌзÏÒ0? ÿ¸X<Žï£\ÒS\\FþéæÌˆ%¶ó@|eè û¹þ¡=ööÄ~Š>® ?»‚Y_ŸÃ0i(ÁḤž¤ÞRG^~^-qWÈQI ŒQO=„,Îû®ÈeÇëßRIPp]Gv¶%ÒXËA©B£Q"— xFõaò¼AxYRxíµ4Jn(5µ7-Ï2ý™IDjñÌ`c¾z†þ ;ýÞÝKÕú ¸# ukøçÛÐp=…C'.sjÓn$tePRË_ì:TSWC`Ë8JRÝY¾ù~?öÓzhn¢ª8‹K3´ïþ“Ò´þLzÿ—’\¡D¥‘¡’Aéï8˜+Òkò3Œ·±UÃñ¿²è³½´]>¶NrÔ2-JÙÅ.Èhì5¶"hñìΰ‡¦K<ß\Fêés”vˆÿo ’2j;õ/W=6KjIîfÿ•–¹’$!üâä¨í4wÍõ.25RšuŒúVSªMegöHf„ß,¼E4vŒ á7GF$ª®] í’áƒÚ4›?¿PeûóçþÎÔnICçþóïÕVC£ž~ ÂñAëá?„~¾Œ{lÁØ_û¾ r2aÁ2l™·¿@¢²ûð‰PÊ@PÙu xØVÕòŸØÂü= ô€Ð‰XiÍø9ómméêÓøpÞ&ΛÚÓ[õ3Û«E@@Þl/ÕQåéDZ†dT 7gsª)óóÂýŸêc‘¢“[Ù‘ÜHÂä‘ÄÚ×pÎ(G&k~ŽXMy€n¿’4'YÕ¸úöaæÔ xaåêëÙ{õ$7™€9¯Žö1xjU r\o=ÓZCy€î·p>?<ó%eñ£™ÚßV¿Y[_‹¾LF\¨¼yær÷md×yÝft'ÂýÖ¨ë;0ÌìXЗ=9ÈIî»Ö¢Íë§£ÆÅO­ _ºŒö½¿³hçI»±OãXXjÑ×5 7ºââHd@äûý®›Q@Ã9V|­`àÛóélg¦W¤_o[É•øEĨïŸ$)š¦Ꜵx8(‘™äÈe²æ}©¡,Ðw™ ªf'V]=5ž¸Z-X¬ÊæÏ è ºÛcWÜ€åöÙ©¥ÒË™µ€hV¢PÜ fÖPîç…ÇÿÆÙnHã£9ëØq7/„2ýõy´4õg×úïÈ=¸‡Ò™ñoÛ‹±m{&f=GN‘@I“âx„ëzµ)3B¡ö÷‚/Z÷XúÍ“í½‚IÕÀÅr+¨ïÌ£éÂjN*âó]vgÙÞ×H ]Àò@%æâc¬ßéÉø÷çG5§~ø†äÈŸB𿜬›Íw‹¿¥¦Ã&wó§æx*VñÖÞ4¡ÓÈ\n{S>å„C‰òGóG´Íã={m<î‚õ 7ñlH¡¼Û:—«‘IÈåwÀN¹í-ïØž8œp&¼yP _Ú X@;tä§ïà³å8ïÑ’°!‘üa9ž‚€\ÉÝ ·¢³Ü¬4ß‚;`ŠTO‰·;¢ˆU®¼L’ ÈerØ.SãèLLK‰=ËéÖ)Œw-ÿ§wÚHÌVUó¸-X›ôÔù»ád´Ã/r“¦Ä#)+W–NY×~¿1®ñÇ“`µ`±hÑD´!@ᄯ¨åFúEκÑ3ÄÃ¢ë ˜Åÿ­sù¯ð›«S+Zú»ÛxZPá©Ò –‰ÐdÂ*šh´HPRECøl—lãè‚WN…po{Úß³†ŽnF ÂíÌ.Ò}][Ò3@Á^W¼#õuswæ/ ¡w1{=ºÐº… ‚$‚_x3ØkÆÞ7¿Š*jà?–PâÚ‘á¡‘³Ÿ¿Ë™²j¬-±¿¯<¿e“ŒbZŸ@LéçïÒ§Mè• º;ý ˆlÁdˆdøÂGh@Wþ6ò3Îê“D™ºŽpÅgAo%”4¡S àhßœÒÄùu«H®iÉÈyíñÖÈ —ÒôtŸww=ïU6=·‘ºŽc˜ÔÃã¶èÀàé äny›í)V¼[ãp¿ùZ0ßÖIVÄFuþ8îQ‰ôвér Ù}$–†È3‰¤‰ms°§ËP¢ZG3`|tóoå8xÆ2`n,×w­çPÞòki×CGE¢d(ö¾KVQb½ýï@¡]¦Í¢ `m8Ï—-çrý8Qq{ õ*¸Ù¡¾iá.;Ç×…¥€ˆ;mÇN¡-7ør׋¤×Ù`±©šÌ”ÍÔÇ>O?{%žÑIùðMΖSo Âî~gG’¡Rvfú´Ùv±qíZ¾?‡Yìļ%Cq¯îÀê/vqùìBûÄà€’é!²ç±~ìɳ f Û|‚2 ¬µ—ù)/Œ{^¤Ä5*‰“´8Ÿ+B¦¼ÉõKr\ìµ(±#rÀèæ„€6îYÄ¥šù´s“!!sð²c–°ØU¤øÜieG1ó/³ lêÍÖµ?Pp4™Š‰= êØ Ž¶µÝ}þ®«™7}*ÛŽRh”P7¥“*„ús…k5£PFжuGÓnˆ!N¡§ÚÛ.N„ø:ƒ¥ Ÿ$ÊU z#¢`Á(J ø×­œýùÅÔÞŒ§ýØÒ>ÙIÑxÂ᪷°<} ¬;G}M ž‰ÄúÛzíÈD ´^ØÕ¥sÖo*s‘ÐI’(ÇÞÁŸÖ}[ðÓ9–øS÷C *©”´½©:YƒSXþ~F¢*Àj2`òêJë¶+A倿҂Xs†Õo~OIx"­\Ñ*¬H¥%šiˆèdk·njÄd‘ÐÖéÐùúdïF·#ˆ}xâÙpÂìò|ºÓƧÙøƲ”Ÿç\Þ5\â/«dçùÈâFðpïhÌC"øtånŽ]fàŒi ÙrŒB3¨šÒIK ¥Òë¼CZ|¢ñùgü,Z½»ßÂŒ„²yÞ6ÑÔhÄj1¢GG½^…:"îŽ~6«)(-£Ú-Ž„g›f² zÓBk¶á(QªAT9à¯hª8ÁÊw¶SÝ*‘§:$IN­N8`µ˜1› € +²º:ê}:¨¶íG‹V„œ$_Š¿Ä»’ £Ú¹™²ëûØþùQLÑm ³·£ÒЄcc#‚€Z´`“Cûþ #ÛãJmMWdÄÿÉXíidó³­r\ÕZìäLX­&ššÌÐPNMH¡'-ƒ¼¸~,ë®ðc ©ß/å©3ymÇaŠ@)Ë à§yòñ‡ydÁ£<µ3ßæ2.³ååÕœÊØÏë3g³è¥$—›¨½¸ë~â`ê:ž~s='òÍÈ(aÏgoðÄüÙÌž³š :3ùìxy ÛøˆGÝȵßé+ ÀŽ—áX¹m¶<§OÀÜyðÄ˰»šò`ýpä|øœ¹i¯‡§çÜ9°ú ˜¥¬õÛ\1Ûú'¯'fÂ[û¡¶ñ.ðV‚χG'ž…Bàˇá¸V½Û³A,ƒïÀìÙ0ÿH)¶ýþäJØ› úf½¸ëU8zó.Ê kgÁ1,Þ?ôü}@è= ôï@±ÄÆïdsš¹Ù«¦¼FƒæÆ)wÀÞNƒJ­Ü ®¦Q^„àÆR]ä8¨ÛѶÍI²Jšš ‡9Dè}í¡Z2÷o`K²‘Ä…Ñ'Ö&2ö27j¶`àåcò%HÝ®PU;j‘+´8"ÃÅÉ gß=ì/¶šÑ›4ØSNF¹'ŽÎ¾¸DxÜ®W[lUZ—’9ìO0Ô¥°ò¹ ˜úÍeÞ´ö¶ :ª++¸I'¢\*9÷ã×ìJ×ÒcÑ’œP g÷r¶FlžžÚb;´Ú_òìq´× Tk‘ãH‹FD‡ljÊ39§±¢qvC#f±á­åìÏiÀ|÷Ï4(ä™Ú“øþã7n<ã&£_·öÄÆv¤k€‘3׳q×Eª$á–…íh‡R¡ÁÞI ޵”ŸÉæf-x‘ÐÓérêÔP¾ŸµŸ£7¼½EdΙTTesAÑ„`ßž„˜‹äטl ÎÅ#ö!8bâö‘^   öÊ1Î…F«õÄ#ä$yVÀ\Mv]U^íH*¥Ž ùç8í®ÆU‘@›¶Gɸ©FX.äDDÈ}Ïί[y?›3­ï=ÛÆjÊkU¨Ô¥§R)*‚œi¸®Ç\w•ôk×) ŒëevØ9ƒ w‡Žf„±´ª¿†S¯D‚‘0eÅ«»¸ÑìÊÛyÅ3lÚdÆtÅÃшwdhs¹œ]ßTâ×­-vw6“5K |¦3.HHê ÊÎäRÖàF«`Ó+©ÿÁ_±úË–üƒç3ob<ÎÈqwwÆÙ/Í6f}1™Æ* nÍ`B1?¬©§Õðö»«ÿ xÐV-ÿù]šNŒH¼Ìëí¡æÖ›¬Vòî¤H+‡¬lÊo}·æ&9†:¬Zíðóö>kÿ€q ºTVí̶ýë͘Qp²šnó¢Õl¬¶*5k-ÙWN°û|#à@p|zGy`5š°þ«uç#Å Õ”ËâÖ­Žo7áÆíT²ãá(îÕ™–®N8¤§}{:eE™ÜtvÆIîFËŽC?þYþöd<׾߯¶œz~3ø+wÀÁNƒR} $j–}j{Ô* vNÍñ‰æ8h˵8Êdòh"[ïãbµMNTd§Gg5ûƒœ¬0ÑPgÂdUþ¹Õ¿ÍS”*Ôj=i»¸`¬$W¡GèЖ6•7¨,ª³­€ƒ=J¹ðo•£-ˆ¬bs¢$"ò3€Z¼=p9÷%û«ÔT]¤ !–¨?t$vx„ÑIÜÍ–´ êÛ㈠uS%öîq =‰&0~\"¾îöÈ­F,wWõ Šfù©¤&÷,Ùíbî½RBú5Æù·Ø„ú|r2Ï‘i¨¥¸L=ÚûÉóŸÙ$n¸¸zâtšë`¬àZÃMê½½îÚíìP)5Ø;:­‰oˆmɕ͂«ŠÒJ-v0Ugp¡±7mÜAëàŠ« …M¥d5•Óèå‡#¥Z½†SºHF>3x/¥-HmJåhUÚŠ€„Xy‚eK¶!:Ÿ¹ããmÝbêJȹ­ð‡¡¬F Å/lšƒ…\ƒƒ\@ šVqû¸X ¢òÚ.‡†àC¹G·°fÕ~ ­²;vƵJƒ}³Ì©OÙÉÙznÛb5%6[L,IfÙ_¾ä‚A†`¬¦<ó0§ T—ë¨#–¸¶¥d•œ§@lŽ­VË«Th Xýò\1Y)óv7ëÕÊb®ë‚iÙÒWÿò å\Óߤν= !7¨²”cÈMá”§^Z9ÛØQØ–ª_s>´ñÁD;ßàâu mÑ6]§ø\3ßTå‘á¥ÅÃÓ '« ÓmÝlÁâ’À”—!lL·à $Ž$Œ{“·_ŸE:L’ ¹¹Œô«:œÚŒbÁ´1ŒèŠÚNÄ, š±X›wZ”©ö ó¢Y°`c'Ì G {œ52T™Wmv“ÊR†äêŒCM!v-{3qœmÞcÇ&à¥Q M˜Åûɰ&rÏd’WJ÷¡Þ@ yÜÈÓaìB±»ª§JlÄ€]Fcâ„q„ÖeáÜ»#ð3{¨žœ{øÙ¶W€¥R‹½“È…æy7ŸoIDü«F­Ö£¿[?«‘µÀÛlÄdmÖ Z±J¶çH¢¥ùo «$b¬ÎâdY[ÎØ ãèàc Z’V¬euè$@ƒ«‡ùÛ9‘Ñhûµ3\hE¬ €ÕtWG Q2PY’O®”Ä“³Ç0r\?ÂÜŒÔI2$)QqmÁÎô2šþaí}Hœ4™]Û.²çùÇxéÝcèäŽ(n%BJ"¢åVñç ’¢^^x^\˾BhÈN!+1ž¸æßèJ“ùxî,=i"¦wFŒ@b”÷¯&1zzx“})›ðrǽ$Ïã™8qÇ _0¥ÿýçÓƒ àÿjŒõÔj}ñðöµI·É oï Òó͈-ïï>ÈUFn\þŽç¦œÁ% ]úŽfAbøïÈ´« >™*£†ð©3‰ õÀÿ±1œ{ö¯Ì]¡£®È‰ÑËæb ý^ÃÛs¦3ÍM@l aÎêD´. ´ïçò¡“Y¡VáÝns{F?.¼·žÇ}Mu•–¶Ï?‰³3a/Mâì#s™©² ¿éÎì/;ý ™Ñ?Ÿó&-ÞÄ”W‘óÆ]gûÅçÖ„×À3|0t j'N-:3òáh/s쇼•Z…Z~uìÓ<ŒÃ<ñÎvªê«ÑÄLà…Ù1(‘h¬ÎäàîJ:½:˜S W÷¬äùõ©Ø{ÑiÈÆvt$r¶}ÂS &ÇÆâv{´ëÎuxŽGýlšÒµ; ¤ðÆØ©|å.CcAÿ'û/¢XEW±.ù2žeyìY׈àÞ’¾3æÒ9ñŸžÄG25-úŽaA’? ’õÍ_9l×–Ç[…àðG‰™¡àG^·{{[IˆÕÌÔÞ ï“aâGeÊ´oñ’AæˆO·É¼7Õ!í ž³ ÁA Qô¤í¨‰ôhãe‹ß³Ïß1ðÙõ<”¨ý}ÙôÞ(޾Ìì,29’^KÛ%¯Ûîo–@²šÐ7šm1,¹¹î:ûß‹¯3‰ ô'2üÛðo<ô#³€ –ã×ñ^™ƒÖ1y§óþè©XeX$ .±Y4¿¥»÷ kÐaœ’F1½ìSÞù9n>²„Ý‚pøø¢¾œ3›^ã•o3ÐÔ”è§2{îTbk’Yþ÷¬ß_Ñoé³ðŠâÌ2/ßIZ¦™Ó¶0dÉ׌X27'Oa§»¥<†éËp´¯¥G |µh _ìðŽĤ)ñú“5¢d5 kt%¨u/ú´ùo Ÿ‚ )ñí9Ї‡%«çÖü•±›Dœe5ä˜û2Bög;ã"f£ £ FÆ[‘}ÉB£ÞdVEzÑÖ„_Ó™…Ïãå©ÓøÁM†`dîIxEŠÖÃ;g7ÊO41j™­J´ßøÞ|ºž¹c¿@©5Ñè=œ·R k2c›¶% ºs«™=s jI>]xé¹îÈ0r3ýGvŠô{¡å?î'[ïO¿ÉÁœýdƉtíò»ùð!µÈ“ßñùâÐÚU  Çìö ÷íŒò6‰£/Ýg.¢{?O><‰e*5Þ‡0·¯ ö²äìæ“¿¯akr5Éç7Ð÷©µÌzþi²ß]ÄÌ/åˆM´{á:ÊŸ?F]â|[Å\D,m;å‹Á“ø›\M‹ž#y¨änâ‡-ßpÎâÇ©Ô `ÔÑbÜ»<í¼››íFc'…V³.ù že¹ìúRàΠQãñºø%¯¾ñþÚ:´-ú0nÚPÂ4÷J8}ÊJž[±ƒ”+&žº…!K¾aÔ CxsêT¦¸Ë‘Ŭå @9eY©9âM›™ýDÀzý+V¯ä›ƒ•ì8ö-}ž^ÅBõuÞ{|&JQB&U8ìcž1\ÍàÀÞTZ<3‹659Gøà©UØ»6 sïÀ¨y —‡´rÎÜJ]ƒš–æ38Ü ™ñ8ÉûRð~Ñ*¤b6ÌÆfOA´3}}‚Í\îâÈŠÁ“øL¡Æ§ë0êâO«Nƒ¸ðÖ×,ùnÕvtxõ|Ý ¯gçS³Øl'BS1~³ÖÑ 0ÕeòãËiè½”ÞÊ;g'?ùkþ¾¸­¦eè4ŠýY Y îØÇ<½b/—r$æÏÞÎðÅküäx–¾5ŠÉfG£ôè"ùg±-ýK–Œ<ˆR)Ã7a Óz´&¸d=¼ò%•õVÔ”âÝí žh¥EvyÓÞ=ˆ ·à‘8—&†µTç_äè~7’.—]ß~Éšý—ѶgÄø´R@•‘c¯?ÊWz#2c>Σ–ÓÅQ”òÓÛ/‘×ó^±ÐÝ‹!]>çí¡SP9Êp éɸýñ±KcçßÞáƒÌZ”Ò 4m_æ¹ ´×·ðð;;Ñ7Öb?•—fGÝ#³¬fã=-øÓ!±Ñ'ŽP ó穽YñÞ§LßfD¡6Ñä3Œ×^G´Ç †·Åâé§è8ý#žïƒeáFÂx…¢7Îpfâ(-νûqõkÞƒU§&lÎ#tlÝÀ‘ÍUXÄf™+šÑ×7€o;ÌKâ¹ySyuF/,F5V@í@œ;`)ÄlУ“%ЯíE¾]ûã¿w#¨¥=7ËãPˆ&Xn•ÑŠFô: ø d@ðtžžŒ“Z†£O ì•δîÎä™Ù‹÷>xžékÍèo82ú‹Gñ”íD§¿ÕòD‹½Ñϰp‚ôK?í[|Ý”4Há$y˜h2šÐX ”´]‡Ð„ö$©µ7Ú_ØϸaŒˆk¢0ЋŕüøÅ!üBÀd0b6›1ÜÊ:,451[EÌèõF¬¢Häñ—ÚñÒÂìq•0Uþ?öÎ3@ªbiÃÏ “w6ïlN°KΨ(ÂTP0§‹ ¨¨¨( **"AÁ„(bDE0ƒD‚€(9mÞesž|Â÷c6âä~âu^ÈÎÌéÓÝU]U]Õ]•Èè·ÏˆN}é¾ké·ŽbXb&§Ñšé?€®¿dKåPÎŽ<±ãÖ0ù²‘,thR(©ofÊ ]É_÷~63t\rÞû–[†\ä`ÍÔåˆçÁi=±/ÿ;É]sRSuª˜X"K‹/}¯ÝNøcOQxê¹ú?å@;—½Ïgߘø÷ôAlžö eÏäú=š¤mq±|ÂXr®˜Ãè“ö2­ß+´ûx>#TêJ¿åùk¾ç´¥3èüëÛ̶›ž ¦è“õx:^À¸{a<ê,N>Šw~ÎüGörÎûãߟË'»Ó¸uÚå$;Þ½Ÿ¯ʵ×væÛ«¦ã¾õ~®=#«°•ý_$éýW¹2yOõ•ÔÅo32Y¥|ï'Ì·ž“ÞšÉÅŽj6¼±€¯ö&rÍÓ#Èônçõç^çë-û(Ï1pþ´—7¸š—Ï|–ˆ—çpMGkã-L¿¬å2O™È3Ù¡n¾óY½&ð`ÿ >~é3J¢rÕ}°ð+/^5nÏõç´Ç^¾Œ1Qí®¢ø@ ·}º€ËBWðäwI^ð 7v2R·w%‹?ü˜¤;^ é›ùr{—>q9íØÅ‚»ž`ÉöZ¬±á˜kö±¯ë£|?#–y§ÏÂúÚ›ÜÞåX+üÜl9ü׬ÿ\Ož ‘ïÀ˜P¹žž#–BÌJø`1œÿr ÓÂû¡´Œ áÀÚg`MOsØ Aú÷Æ,˜ †SàÊ¡jÓ΃¨Ç`tg¸g(쌃HhõP:V^SGÀ€/à_@õKà™Åà:=®Ç·AÉp¸úàùÁ1Fv‚§ûA‡Ïá’0˜vœü 1ÉDAñO„Ëeå“/æšÔO¹¹ÈÎáÌAð* Ñ-Àðú\p¹ÛÐbB"¶×¡©i©ß;G:U~%§D9‚vÝR±78Â«Š²È©P£ÝAJ»D(É%¯° ¤vN!Êb@ÀOÙ®=y}hB,ZlðüŠŸÒÒR'£t_=¥ÅùWûAÓÐ4Cd*™iḲPPëÄG z%5Ô&oÙ^vz0Ê !—Ù‡\OÁÞ=» „9IOŽ¢nís¼{ œþ玢¯@¡bß> ntì•„ ð–`O± ]QI`6l²—=ßÍ lðÛÜÐto ‹ )«óNàk*ƘötŒRÈÊ=ˆË« ëÓ±7I-½ÎšŸšƒûØ_¦`U$K$)©È•äåSG8É™)8ìF­Ž‚}å“’ˆ¶nÝøÊ÷±£ÀAU‰m߸ÃïðSWUM½ßF¼C¦² —! GlF@«-`O~Š®£úÂÓ{“^Ë_³©Õ›ÒYÅSSAI…H\»hLh¸*’Ÿs:ÂHjŸ‚#Ì„ˆBÅþýÕ»ðC‡^É AB7…[wSŠˆÁ”@‡Î1Ññ{*ÉÛ‘Mµh#*.‰”x;"uE¹ä—TàÖ#IïšB„IFÀOÉÎÝût1–N=š×(õù|”——“ðû•¥Z¹iáB¼­£8KØ·§—` 4:”ähLx©Ìϧ°¼Ÿ‘©I‰² ¹KØq Ÿ_ÁžÚ“ŒH ÐÑ<äf+ÄvŽÃªû©/Ëcw^5¦°h’RR‰0ÖV}I6åj(±±ÑMn)Tdí¢&¢í"šòþrönÏ£^1ÛbHËŒǫ¬¬D–eBCCÿãªö”ígo‰]Q ÷ Vi8¨${w.5‚Øädb¬ ´9@¹Cbt8Æ£¼u\W_‡×ë%:ªEòn½žâ¬Jë< 2]·’Ô¥1&¥r?ÛrëÐeö„L2"%\U…dg•á“@“#HIO"Æfh“Îé½H o; ×륲²’øøøÿ(ë ÷SîFÕAÇNZ÷ "¤Àwª»‚ü2™ä”p$@qWq0'›R¯š¨ÄcCÿðíUMÓ(**")©e²c…úÒBòóËq bÓÒˆ´n×: Ù•]ŽGÑA×qtìMâ!æPÊÙó[.QÑ„=6ŒXµ•U¸4ŽhkÀQî-ç@V9rl*‰‘–6éäæå’š’Ú$ ꥺèÙ ² "ÛcHNMÂî/''¯˜†®ú IìDšÃ†PÃÎüZE%º}o’ìNò·ì¡L±ØÉÌŒBTwY(ó˜‰JJ!é(æ°-8N\.111ÇHuVRTi$%9_M!Ä-„àHL&ÑaCD¡²´„*7„î‹K–·ç­ Ñ>òÏoîä¸LMUAAñññHR Ç­lÙDTZG ÕdmϦF´ŸLr\" 9KÈÊ/Åé×Ñ?¡É]I6S—»ì*?:¡¤õjO¸ÏÃÚ¹ÃXsÚJ&œ –ÏYNÞî\jÄFÞœåä,¥Æé¤Ü×Tli}ñ8˜÷Ú}Æ“CCÐq—`o©é£•ØÄlÞ"öÔ 6G ©IÑ­ê«Õ¹ì*¨AÔÃòÁEÁÖÝ”"c¶%Ð!3?Ί2Êêdi¬€î*'§ ˜Ú™cOêJ;{={áñkËíz‘`èçœl'QR “T<5Åd(Á%€-2žääxl"x*óÉ-,¥Þg!¡S&q6‚ZMÎ'Q°‹º¯‚;ó¨C@2ZHìБ(YÇç¬ ow5b1‰É$9lˆhÔd“_VG¢]·d‚VCÎÎ\ªx:®SâL:šê¤$;-¾ ‰¶FÞ©-)$¿°2À;‰íIq„al¡äü•ØYàDAUu¢3z’hóQ²g;.«ÝAjFVTêË ÈÍ+Ç£›‰NK#)ʆä¯bV!un?º¦Ó¡É!@][”#ˆ"ái=H ø¥=5”TJħGaT]”æ“WZ‡%&•ô¤˜†ôÔN ÷æRîò¢êàèЛ$[@F•îÛƒ+¶i¡âayë«+fÿ¾ƒ¸1›DJbF<”åæQ\YO‡¨ô®¤D˜]Ål;P‚¢j[,Bl&»½õ•”ÖIL è;ÍMYy >c$‰áe¹Ù¬¬G@3ÅÒ!3»,â)ÝÁž"Ö¤®dF{)ÜQ‰½K*¡øqV•Rä %3Á(Ô•’[P†—p’2S‰µ{)Ì÷ê'Ä$#¨Uää©Ä§GcÂMÑo{¨w$böHLo"›|ÔVÖà"”hk¹yTÔƒ52#vâcÊÊubebvNbz¾Â­ì-Õ‘ 2¶VÁJB‚=°¦K]„”¯aÚòRzœu 7žNivÅ5.Tt4s]Ò é$¦G7Ô¯W¨Ûµˆ‰oÄ1gúYý‡³œÒÒL í‰15ö¹ŠöeSæô ÚK6¡‹ Å]IA¹¤$ Õ9ÛÉ­“͆ÙE”MįhÈ–0"í>î/Cˆ‰oØcýËD­¥4ß‹5ZÄU&“Ž_·iAÔta‰ˆ Ìì"?ßGTB$YD –¬ß²¨Õ@”ãéÔ-#:Š×IU‰›°”ŒGaí~îî y˜oGwµŠ}Û²©GÁ€%*…ŽI!¸«*©®‰IÃ]T†[²k¢b‚#ŠÈPs›ãÍÍË%>>ªªJ ²ƒÁÐ*Æ%Bc‰QÔe;ñ>7­ªªUp557÷„ޱoÿOBDD$ŋלJFJ1Ù•{)öô ½ùP®¬ÛœHŸ{$âHÊ”05©ÅEy ¥$à0ªŠ˜íqdž:„á†jæoÞʺƒ½ =“d$MAUT4¿Ù~ØQ#a¨ô¡è i"âá\µr3ÃCl„ÛŽ„ÙJLx`É-F¬€Á_Ì×3¾Ã™4œÉ/¥°ó™WpšÔ#dÐð)¿°ä©ü`ØÂ¯Ih~7ÕVz»váïƒ*‡Þš †X³•*Ñ€Ù½‘goÛLÿIrj¸‹Î#pFQ@’"HMkPo’ÅíÂíÑѵ@*¿(.ê>v0ƒOJÂì×Ðí „°]·òßY¢‚I {TÝîz5ÐÔ@mY5i¿ – ñ  6ü&ˆ?|î¯MæÑÐžÄ N`ì³ÐED0FB³*`€mŸÁŠ_áW¡þ}È <¯©ÍëËm¨ÕH˜¦*ARDAq"A ¢}¯· @ÌD&w!2¹Å±©tŽméL5Ó¹Ôí.CˆMéLlJëïLí:¶ê €)¦}Z½ „¤Î}›ÔŒ¬`ë:cD:IŽÆmVTfçV7oLÑíéÝ<øR¼íKv¬éð1 ý4…‘F[¡ÇÿC¥ZÑ@Xbú¶,Z•DǨÑNRÇæ9}ŒÑ™ô>â+ Ø#bgŠLJ9|»@ M¢s×–Á¥0Ú÷ìÕâ3 s˜ƒÔ°Æ½‹52‘Ž‘‰­¶ªQÚ¸½d!±Wïu æ(Ú÷jµ/²'¤Ó%!½ÕXb»tÿÓYvÚ3mð¶€l‹£sŸ¸–AdrFk~·ÄÒµ[l«5#š£I?”3U0âhÏIŽÖk+$¶]7je¢Úuo=Ÿ†h:ô>>Í1ôhsAÆÑ7¦ Údÿú]Bqí;w$Hd½#[nH¦kß䣢óŸ•öÄNtOlû;ÉMZY%["HîAòÁ%âH¥³£`•-‘ÎÝŽPUަcŸÖ|Chs¡GûÎGÇ_‚d""¹ -+E“Ö¡¶ÂÓèÞªó$÷îÓj¾$K©]Oâÿ;4÷{¾ƒ-šÔ†@Œ),‘.}šÏyéÚW˜õúçl+3 V¶ãêG’ùWŸì5ejk±txÒÃIk*z¥2zEü—û%ct`l.ï#ÛÑ‚•íM™ÀI»n‘mÒÇMbSccu`z fW°;RéêøãÜÝÚ&9l4Ñ·µöm±dtj­9CS»Ñóðku¼þMüøqÎ×(ÓŒ¶6ô€-š´Œ–ØÃœ÷{sÚ'æÃÏZôlóª~û†CwG†žJ·VòÁJR¯>-j°E%`k2lÁMz+™c¦S×è6õs»Ã²N–Hç>­å§92™Ž-•¾NZ—ð&öj½¢Z½Ãh‹&£ot+ MjO+%†‘Ö­Gë~J!ÄgtiÅ;¡±itMû}‹lOÏVËÄHlÇ>-ì)‰èTºF·àECÛö$z÷Jú}[Q²âHéˆ#¥µ¬OìÐ¥ZÝ&™=Z͕ў@—> ­h“Ú˜–KÇG÷îqG”ݦè@ûðGbGQÛl0;º6ág#‰]í<™Hfyfw¤Ò­Ùš6Øô¥RD9k!¡G¯#ôרD?›HëMKj§¦4—‰é í{Ñ’•ùyoö>ÜeCrFÑ÷ú›zj`};Ò;¶Ê¬‘ÞÒ ÷×»êyÎÑ…>×<ÆÌ SIJnÕçè”D·¤¹-ž=ºægÿ¢qŒ~u/VkÆ‹m¯çÀ°ß®#MÑM œ£ûÚÌÛÔÏ1ñMt±Jãy¤ˆÆvŒQ¤7LvXroÚ45-Q¤tŒjµßIÈìÒ|?Ø„. "[¢Ikh/:½ÑéGÖñ¶?n™H¡Ä5ô94¤õÆ%j«é˜·kѲ)„˜”£Íõ#Òiìƒ\pëmœçɲ;ú’Ù† aˆÆÚð±!!î° “‘t·4³Ž‚øD=E¥eätüé€eÈ@OZÃçúqÏYÉTòéM“Ù}ú½Œ ³6Ò3¶2qÚrΙ9 "›>™ÝCçÐ ?9:€ŠÏ–¾§ÑñÇwØöñtû¯£vš¸ìfcÇ“¹Ûfbx5Îõ›ÈUÎ&ZÎcÅ76äID 1Ħ`«“@à7ë'>Õ4F7iGkZ;@×ÿ­ëz öqi6<ÉÝN¥{t!ßz¯‚A_É*¬Ø žÛøHµ³Éó.È-…ƒ™pZ|]Õ/;Rá€$(€¥~¸¼%“7’ÍÖFzëDAq´þ†‰ƒDAüzS§ß>š~’ñÒ@Ê8º eÌKú‰‘B2ˆ¿‹Acéð\Bàäû?v}-ïˆ'ä|yú¿·>þÛ›«è“®gB‡Ëð©ºn&2.üˆ5óŽqA»$¨ßŽ+eL¶S¸cIŸc´kÚsÓ’)˜"A Ä [bo®|x!çûDÐ „D„Å>{×xóóKñ 2F{h\¸" IDAT䟔iÚ]øïVVÂlAúüÏÀØ…Ûžû€K‘Á¹ø“€ÿ§à¥xûb¦Üô%§\Ï„§OÜ®M>©“Ešv'ý)CÐN¾åefþ»ކÄïý~›‘£®ãÌO IFì}ïäg{.4UÁçñ7¤ÐJâ_g¥óÕü¯ùtu;FLúu[4\ß0eøclM=—ñó†aº_p gÍæÁÓûQK8ý¯›ÀÝÃzbνþb<8Š×!\0”iž@ñt4üš—CõÙ5MÁ¸o:šâÇçöàIxÛ(€ÁÝzij çmðêˆ =‚"ˆ ‚8Úµ@^~Þ߲ﺮÿ¿ôý#ºý˜Ÿ®¬¦Xù'òÎßaA ªºê„ì›Ëå òÎÿOÿ×Z`^ÿ›|(þê(-¨E?Ž}/.>”ÓÿžÖu‚‚‚ÿËA€ªüòc{Z ¿’ UD'ìî°A/i€Ÿê2UGµb‡ Ýß[@ýqè((þj<Ϊ ìøŸâ4bòª/U…ØÍ¨` àÿ¹ º‚ß«€$#äÆà¬®áWü¨ªèH3©)ùuT¿CMoA2b2žÖ4UÑ‘Œ íé*~ECdä?xzP×U¯M”0 ý lýŠH™,å†ZJºŠÏ§ é:H’ª#šŒH‚†ß« HBC»~ Éh@DGSUTM@2H úQMA6 ‹:ŠWAhxþ4¿U2bh:]CQUtQÆ ê(~EU%A×dYÑü^üªŽ.JH‚Ž(Pœ?0cØ'ôúìy†‡xð#"šöÙ‡‚ŒÑ`@´†¶"w’“A@m£ŸG‡æ5€/ÆÀmQ¿Ćë:(~Œ€¸-*8Ì;ª5pKX6‚,ÄQ/Lð+¹eÔÆùGoºÊ2˜$ðû@2è ë ø]IQIAöU @ÒÛmJcÍ>DG]_-ˆ ‚"ˆ¿?þt `A$%%ùo5fAðûÊÊ5€5] 2B˜w|^$$$ü£yGD*++‘$‰°°°f.DA¤®®×KLtô Ó/Aðz½TUVBõKUU$99ù„âiAÈËË#5%õo·ÖDA¤ÞYËéÂápü-û_TT¨l2²©ýÍŸŸÂñŽ(ˆäæå’œœ|ÂÑ»  €¸ø8$Iú[Ò;ˆ ‚"ˆ Ž—í¬Äߘ‰eŒæ6È*ˆ & †#>‰d0#µñ½(JˆMSþ ƒt”ý’0˜¥Vïe#¦¶¸P0ššüþp¿D &cóvG´DIF<ô§dÀØj@²©uþbÑÐFtAD>í Fä¶æÇ`ÂÔìs åðœ‚h47»1è³¥qH Áá–m·ÕÏ?µØ›tÂ`jÚŸÀ-ц® ¶˜É@›|ÄÑ,0h\r‹ïÌMXüH42µþ ´k‹UEÇ€Åf¢yÞŸWÃ`24lHu4¿§7PÄh2c8ôbçžžº—Ó®½€Ó3BQ} ZÓ6u?n—•@M#ÙlåpÒ>ß/ùšmÞ“¸í†žN7j³~jøÝ|š ¦ÁBÈj;躊ßc`þ4¿Ï‡ŠŒÉlÂð»þÀ|6Ž÷P£*>ŸM4c6ˆ¿û¬l’à n§A0[ÍHm9<?¯·Eÿ4üotÑð9]ø#fk€îšæÇëö "!L˜ŒMyGiÂ;B  —¿®£cÄj3rìᇖcn›·5Õ‡ÇãCC@’˜x¯±}„ÑlÆ(ÏåÁ¯kè°ÚLmöO×üxZŽYóãñúP´Àš]6c•<^•@ñÀ»ƒ «¼N7~DɈÅl8vÇKSþ$ & F 4Õ×ãAEÆ`4a4èëózñ+*:F‹£x<\>*>¿ª¢#  £#a²Z0€ê¥Þã?¼o“LfL‚Š¢Š ë¥¦>A’0Hâ‘é|úêuyPtLV,‚§"a5ɵ«*ø|‹ Añâñúä—ÓŸ*Ô‚‹/^¯U0b22Võáòú¦4ôOA÷ãñ©©LT$QÃÛÐÇ@ö.FY:¦Ó4UMŸ”f$©E@©¥PùZ4b¶ú\CñyqûDÙ„ÉdDþ+=º›’_Þç©EñL1 ûßÅ´¨ÜÆÂÙÓxñ›tºè^¼cC[þHÁãÕ1I7«Uì\ùïnÌ`ÒÄAXÿÊñ}ÈU¦½y ñc{/ k} å¥Dd£ £A:²~;‚MÒ¨Oedƒ±AŸ6®5¿OE2ÈA ÍÓí HÛCr@­#kÝû¼¼"ƒ)ž‰ÁY‡ƒÑˆÑ µÐ -X MÞ•·QSŒÌ˜aNJ3ÝÒb¼¢“©EY·£–mëxŧ"ȇdŽÖD?ƒ`°`ke‹éhš‚×ím ES½¯âõxñ«*¢lÁl’[½[Sܸ¼jã<¢ÑÔ0¯ ¥ït±±„^“ç<Š„Éd@ôÃv±4Ø9: ^§Q6b9¤kÚ´ÃŽ`óxTdsãœéª§GiFÕïm°·Å½ß\h~nՀŰoÛ²ëŽÄ犢26J"ºêÃÝDO  ›±™¼NW k(^Ek´Df³Áïka‹Y0J*—U×Ñ[ìUÐkØ÷Õ ÜùøTÇF Û (Yuœ|ÕƒÜ×¹¤q ç!Þ´-&«9¤ù#¨ø”[î«ç‘WG§Š˜ÌÍ×/`2É¿co4Ø¢„$Ör›ûª6mÙ€ãõ4®iÙ`Âh”ÿðþAÿO}ôþÆks6Ño(—ž‘ÖÈ UK{%÷¼p ,Çh£ïÿ”;&½Ææ¬JN¹çCf ÚÊØ‰Õ<8ïZÚËn˜MÂþÿe.Ã',¦¦ÎÍÅÏþÄC§Í®JŧHÝ«˜üØνã2ú§GÌ¿t|”-Añ?ë윆 ‚"ˆ ‚¢ŸœXÝQÝ”}ý çOû›5”÷¿Ç”³Ã@×P|ù¬[ñ;ö¦pý¸þXÉgÅó³xeñz èÂÕ3æÆØÍë¤Þ·–gÆsËÛבú»ï,àÇןcêëqË!']Çä{n§Ú.Þ»ã ÞßK•ÿdîùä ®HCTO5%•«yy²‡»ç_A4@å–¿5G?ø•¨^øý¾G¸ 3°­ªßò j—ž¤'òþÍcy?«j_?îÿâ .u„ ä¼ËMW. À" YìœvË|¦^p7ûŠ‹¨òÖ‘ÖËÊÚçîâ™¶à‘TBŒá黯£gÂ.ŒšÄ’Ârüøp|„•Oœµ™ßQCñ±uÓ:VÿÃ- ÆF ëÞœÍóóW’K&OšÀmçw'¢)Ò<5”×®fÎõŒ{óJMý-;¿äùÙ/QÙïž½¹g«#†ºßƒ[ÛȬqY\:m]Â-(û2öÆìELÆ®ÜüÆ‹ŒHjùÖ2~~ÿyf¿ø-Y´çüûïcìå}ˆd;ïÞöìÏ£ÚßñŸ=Áåqv4÷7˜ÇåŽZŠ–Mç²Y«±È~[=®ø´lnÊ`âý±48á<·ðS‡rù td¿WK:9˜¿Œ‡ÇÌå—Zšî!õÆx³Ó†ÎfñüQ$hõøæyž~ÓÈØù7âûpO¼¶†YÃÖ÷j¹g ÿJ?‡}U²–¿Ä¬Ù‹Ø¬Á}³î㊞ ¾žÊs¤¢NÍMòˆ—yetoÌïqëT Ͼþo¢ÔJ¶}ÿŸülãôŒß˜ñìw¸¬&T—þ7<À£“f>V èõ«ÖóÛ¶Dn? Týø´m,xzÏÂÀ> È€æuáô¯å™±EÜüÆHÒDWåg<:lkv‰—ðè·Ó ä7>˜÷,/,ÛƒcÀH&Ü=†É±›Q”‘ 'Wg5¿|³Š÷E,Ù0‚#Vº­ü‚±÷Öòðë#i'µ1>A@e Çx@à¸B0„¿ù­£:¶}ü"OÏüŒ\«\‘ ½g2wŒèK̦·²I^gê%ad¯{•©ãßc; œré­<0á\’]ñã×6óÒ¤]œzóùœ’„ŠkÕlÎ{êKðkôºw³/Š H—“ƒûwá8çª~|ŽI÷ÀN’8ýê1Œw‰Þ­,˜ð,‹×çâ}D{œÇ !)4 ò~\Iè…ÓpìÏ¿G¾E±YÄË™·Íã‘á&ö~÷*S'/"Ëþ¤37þn®>)¶¹]ãuãTÖðÌØ"nz}$é’ˆ»ê ;w:«6¢ã.æÑÅcéÛÖü¨~üê¯Ìr]/;‡Ó{Æ!ó+¯\5‰Ï«ëPðã>ãQÖL9§…Mä¡hóB&}V’+„“FÜÁø{‡“ºïK~æuVo;Hꈧ™sË âCš¯‚OîåÊ9;0Ê"º¦àÍt¼å5Þ¾:Å{€o?ß@I}'®Õ—¦¢uÇ»£óe7žyñú;60û¢'øÊïAñ bòêÇbШÊYÄã#žg½IûW3é•‘tnÃsyŸ€|o6—õÔxÖ0ýŽrîxçZœ¥l[<•Ñs×–Þ“+|‰Ñ= Y1ï9f½³žjÂ8åºû¹çæ³I?T¦LWØôò…ÜùÓ¥¼ýÖí´g9O5•&‹i-¿Ÿþmª*¿º“÷^ØBtßœ;¨þMó¸múgd—û‘D1`ó ›ÉšûkyâÌiü`6b·ŸÏãKïá”ÚB¾}å^û¸‹EFs¹ð¦ æi×µðf,û…«Å•Àu/ÍcLê*î»æ%¶{}€—ŒëßâÕ;4ê]G±$ÓÿÊxôžSÈZö&?–yñkpDC¡ôSn½`,&d@×EìŽñÀ›ñ/Ûÿú~ÔO}‚5ìOØQ¢ŒÑdD.]ÊÓà‘.ž÷=î˜Æs¯\LØ‘xGÛÆ[3#eÐ`Ÿ–‚,5¹Õ¾Ê”õ7\û&EfCH$o›Ïã„’½æ5àöZM®PN5ž»oL‚ÛßdÂ$ýÞˆêw/äž—Âyö¥‹ mS ȲŒ$‰Í禡 ç±[ 9,œö½®¹ç”òÔäMœ¬ eA‚¸åa‘Yo]Õlß÷Çñ3ïÝÆo®àÊôcè¥wo¼´‡nýD‹1˜ë¿„`8ˆ þ'˜ADAÄ!¸N8Û@]ý4—¼˜Ì¢Õ«Ikò¹VWÄÊWïã‘/dÝüV wÙ"öÅœÂô sh¿gÿ~o5Óâé“l£~ísÜ0ãk coå¶ÿôÒš:Âû^ÄSW=Ç)a.V>6-?m¦æ‹yÔŒxŒO‡t¼îaú¿¸šóŽÝ(rpÙd®}qÆ>÷œ{î6~ø*o–\ɪ ¯v¼é 3œ—%Ò£kû_›Jõ 3X68 iõN½†óž<s¥›Áï¬ftÐêdúEOóÕÐçfƒšJ£A'‡FÝ¿®gέ/ÑÕZ˗㦰jã^ÚgüŠeâ{,ïaF ŽFŽãÓ’ó¸:¡É½w%_ŸÀ=‹ÝôñààªeìTydÃzä,dô;kØÒ!•3;˜¨ýèŠ.£·¸©ãª¬À#Y ³ Þ­o0nÚ{ü&þ›  bMYÁyKWqYèg0ð‰8wÞeÍœ3Å?}˶;÷­Û@߃qÇ[ëØ”Ý™Ä¯gRuíS|qvƵrÚó«¹`êÖ<:…˜wbM&ì_2–Ûgmá›d6|û3}»ùÒ^~ý3¯:…kœ Énw6Ïox‰”/pÑkÚ1™ò9¢OYÆŠ“Œ8—ßÉ™S×rî”3ŽÞgÑlÌàAkÞÖ¨ÎßÈËÝ<¸a=§QÈÒùï°ðƒ­œ|s~OW®t'—ŸÑàÜ©ãÓÛnÀ3ác¾;Ý^ഛߧûâIi¤4•Ö²ôíÍ\ôý^ Éfñ‹‹˜ûF,SF]Àcó.ె_î™ ¬b/|ŠÏ.iìûfi'÷ÆÏ£Ç§ëy.ÞÍžÏg3éáoyó©!ÇtO¬S9çÝ5Ü” ž’oy~ôL–$\†º5Ÿë~ØÀYîU<õÆz¾Ù’F÷ußc½àA>±Ö²Eœÿà— í}'EYÿ\pUõáK½Šç]E÷°¦rOg÷+c¸yé–¬Z¹Ýlûh[ÅX¬Æ&72ƒÑ€¡Á ×ÿqþ4›QÓ¿$?z4£Ðu7?<ýþÄŒT7›NàÉWvóÑMf>_ð?…Þɺ 'ÎF ÿå²!õ? ºª(.­Á/˜°GDjBÄO]yÕN/š‚1ŒXG(¦¿*m²³„‚¬ *å(Jkj×5<^'N ˆˆ%Ô,¡UÖuÌÉÁêH!Šr «¼Ì†Pâ"ÇÏÏ«¡¸ë¨ª•ˆˆ AFÃWïÄã— ‰0â®,§²Îª‹‹#Â䣢 LB9•õvâ$…šŠ||NQ!&!ÓßÊÖSñûSòïg¹jüéL†·°If^:EnA^õ+—}·×ù™ç|Å¢åݹoh"ÊÞOxtú\VTžEÏC7ß6Îäüg¬¼ðÝJº·XS^ŸÚÒPºœ\Àº¥û¸zņø×òÌë?ðéšÞŒm_AÒuOòÞ³iÄŠ%¼{É#,ÛÙ‡ëû90 ûwš2Þž­1|áZFe€«ðkž¿ýY~ì3Žä¨ŽŒújƒ#aßsùqûfrz#­ÉA"çú9Ü4})¹‘7qn~˜:“´Eëx&ÍÇ–÷Çóø‹ÛøôŽîxë«©óˆ„F‡bÔ¬¯yfÆs,-À¤kÆ»m ¶'?ç»î"PÍâ«ïå£Òs¸2²ŽÒR/!ñÑXPÔhzõyˆs/n ¤æÉ#Ó!óæyÌ<5öˆdI¹b.ë®høÃs%OßN^§T¨ÛdzïgÚŠp.¸³o“ ³ÆæwƱ´&•ö¡I„™u~|t2òŒ•¬ì5_eè“k2©3?¾ò}>ÛÀœ¸¾^0ƒçßÀŒÎ?³½™¶–Ÿ¶§s~·æGkVMcäÌU”§Œe€ê¥ðËYÜ÷ý@¾Þ0»á`¡ÂëÉñöâÅ ³ÉðmàÑ'×ðýÆLn˜ŠˆŸ5s¯ãki]­vL…•>NäÛ?±ºä|<†ŸÙÄŠ 'µæðµÌ}v* wvãÎg#æ~wòöGwþ͆©CYÜ;…¿’Ø…?±&ö,Ë]³6óÍø> {`1Ãü¶zã;,XSL|t5ÎŒž9‘‹69¥ø[)½ž]΋Ýv0«ß“|xþÛ\Ù4J¦n;» ~<^U?¤S¼T—ÖAH¡Ín5 {Oà«W.n®}µ”–ú”z|†P¬FÜUe¨Öh"#ì?5¥åÔº}¨º‘È„8BeeU"±ŒŠºbS"1«uTâрŅ#Ì€·¾’²òzdl‘ÑD…ŠÔÕ(ˆj un>BÉDXDüTåQ«ƒ ˆØ£ãëË "»¬á÷8©¯Õ°9BPª«ñ`!4Üú;A&úÒ|Ê];Yô¢Ÿ›f^@huE5~AÄh#Ú‚âtâÓM„†ðRSíÃ`±a5©T—Rç0V–ãVM¨Ž‹xzš„/¥•µèšFAEš5ŠKsý¨æ­dÎÌé,>ЗñÃÎ èÿ›1?ôË{6ÝWÏU5>†6ز¾Šïyöšé¬6ƒvj<§zœçŸ9—ðÃ-»ÙøÎ"Š22èЭ;Ž0Œmé5ÝOmUš*_YN‚)“·ŒÒ:°†Çâ°H"xkJ(,P=2 ñMöLNJòÊñ ŠV¢“¢ÏÂ(ÞGV­L¸/—=];¡áÞ/¨GüÔUÔ! PX\„h#ÚTGQA>AÂd #:&ÅéÆãqãóúC£‰iÌœäÛ·“zIÎ}d—$ouRRåm° ­Ä$FcðÖQYã…6x;*¼7Œí‰Éû#ß}‘ j8+‹P-q„YD|TçW!%ÄþùC¢ÿ`ÀADADAÄÿ#¾ûr×>1 e×NvIbÛe)ƒšÄûÞ ¡×§,ÝëC§’¬]‘Ø"2‰È<‰~Î-ÔxÜ(Ø=ó>îß—1wUýç×Fv¥wd£³Ìƒ#y;¾èM—!ûžÅé¯d“§ktA$é²çùaÀGŒ™Hiꪪ$«ÈÉÅ#;Q°s„F“‹UØÃú_ÍÄ÷ÈeÏ/§Ðq¸ O:›¯æ“§ktì;†Ñ ޝ×Fx÷H]ª(ÌÏfoNºÐ)¡±Û†”H¢ÂU”nWsµ…û)vgQ( ⬄æ^ÑMÿ;ÞdÉI2•:ò³d¨éHk™Úƒ¾Ê‹ÕNt‚•ƒ›²É²â3%Ð; À»cóÉ#+,~â\.Š0‘Ñ—AŸç’t:êu- Ÿt{ƒƒ]Ãï!¢›ˆ¯²œÊ¬Aœn,)t³eã,©Fh—ˆ±2ß¶ÛˆóAß”ÂÇM@ABò•°góψñvMG·Ä’™RÆÊ•LþdTãE‹…î×Þß,fßšÓS+Þ>°ƒRú ¿†t¥g|Gn¹=ðÆ®—NdáãÏð£jgkõmLîB]i$vsYÅ%D†Årêé'7páq ^z]ø£´•Å‹TFŽNÆá(R7~ü0¿\¿šœslG|§€†æ÷ÒT#b E0ÈGÔí œyï¼Ýûc>ÞH…o@GÎÎÄW3¢Y IDATÒˆ˜ö3fŸÒ@ û ‰,9­cïª |¢ý̦/ãâö»žN—EYì+ŽÆ‰È¡ñdïÜŽ™HBl¦¿þú)‚¬}s³íÂM].¾Žq÷ #½`%¯M}—UYÕb¥‹yᱜmý R$ºÉÛ¶–o—}Ëo–µü6.›«ÏŒáàî5¬ÛU‹P%ÑåÞ©<|a [/#7»œ§Æ}E÷[ç3NŽ;ìÇ$˜,¸dÚƒœ|¼r˜ã¥ø—™9§œßOÊX¿ä36•fpíßÍžÇg¿æâr[é3z2œ‘Ããî£SÆ|³~“^Šçn–<¹ˆuûd¹lÎ \×þïäm7»ø9;†$S ±QX~gB+›Äˆ^WHÁ®!\lˆ§sd Y¥¥¸HÄÚåß<ýfÓ'oèÊ ¬Z¶‡+&ǰk';‰i׉S@O9+6±n{2Ã.,bÓÞ39ÍD×°Êà0„óçÜ–°tˆÂ*êGª+Y¶® 7N1ê6FÒ-já혣¤ÇGš«œÂœ}üVŠ£k;¢¤æzÚ~ƃ|xj¬¡(ÀÏüüãe\4@%¡Ûº¼™GÉìú`&¯¬rpçwÑ[Ö‘3/`Ò«éD<õ fàðÝoä&4jò÷RìÎæ <˜¡ðìXȘæúå¯sA‚Úò\~ÉÝO;!„„”8þ’KÚ€t:„¹Ø½c;!I™$„™Ž¼Ž5ykÞ`yÖ <ÙG2¹dÒëÄv[Ææz* ©nòVÍç»°[¸ï¼j¦O+D6mdý÷çÑÿ!/&ÂN9—~ïe±WUعîb.Ðùiíú’þË/ülPšÙaÕ(5µøˆÀØd.#†>ÉÒÓ—rÛÝNt@Uêøùç"®~à4*wí ÌFbz¡Ñ‘ØMYdmÍA–*‰J$=ܸٿt+ÒfòäéÛ¸kg ²¸õ«.cØô=bzŸEïo²)夷u¤”3¸kvQ/¬Áâi(çÒô'Ù/3÷‡Ëy`b=v9çMðÛk0=~È¡Œ>G¦\;øî»|ˆ½ˆSÃÌ,Ój(ص•±õÄD&“eCê1š›7n&´gáÆ?ªÈÿfæŒz iô#ÜyQ'šI«Ïaóî]8ô@™ cˆ¹ðS&>½“ä˜ì§+ýN=•º¯^`G»ë¹çþ1 ð­gá³ïðCv)§Óî}šñ½æ»ò8­ï,[wS>½žˆožcü´x#t\> ƒÆóÊ}i¬só¿þ•:ÕBæ°ÑÜ{¥EÏoBÕ7²3¯†²Übâo|‡gGv@,ÿ„çF½ÇV›ŽÁlaøø§Y8†#¿aâIõìZñ.ï}náöÎeËŒ©¬s÷c—Ò® fö–ï#§ªš ¯<ÅGYç3ë“›‰ö9ÙöÅÓÜ¿8«.aOÀ ¯€KÙä=…q7öÁèý•WŸÝLÇK.àìðŸ˜9q ÛëÜ ×R}#âÁ%ÜòL_8˜5 ?dçÜ»ž!wÌfÌɖ漓>„û^J!rÖz,Þû¡ëu\ßj_¥#$Œ9lËú|6»†c—4ÀCuq!¿äd&Ù‰%D¶pÊ­±bÊd&¿¹škoBûôŽtOh~äMõóû²c›‰I÷ýÌkî¢çþ™<¾´‹_$vàÕÜ}[wBä~ùì¾}¿’ü}pÒ„YL@ c†ä¥|í¦>û9ù€ALçÂ'¦rM'#~O…ûâl’º]WmÄuÙ¾ø;~-Ü@íÜ_ùîËv(½xvª=z\¬ä‡w?bÿGï\A¿[¦qçS¦Ì[A…h"&ãLnºg8õ«¾äëÕ¿áó‹t¸b£†u$°sÎgéœ/Ø/”÷àVÞét+SmäÑ{™d†Ï|Šáeïp×Ô¤´ä팛yø–>¬~ïWº ° d f¿Ì¾Žz,`æ%)˜´UL¾ü3†}ù"â‚^”cE0DADADAü?b3›WU³±h"«T AuÒùÊwyøÒð€#GujÉ Š$ëè‚uˆQÄUQãôà?´™©ó eLÆw`ÿÇÞyÇGYlûy·o’Mï½zß„4š€‚¨ b¿öÞõzíõ^± Š¢"‚‚RAPiÒ;„JBém³½¼ïï$4éâï»Ï?ù|6»óž™9sæÌ9óÎlm¦olv¯?pˆmwp¢!êÀ:jE‰NAQ£QðD@ÂbÞź_ (=øóMM¨Bû1úÎÿpuw%äo&?%€îqQ4Ëòqv”© !rïFª%‰”Ã4²oùjʯâv ÐXMyS)æË®$€#IKÁ ¶XÙ¾ÜÊ®9oòñÚx&¾—YñJÆ#oÆBÒ,›û=k×5"FÝÀ‹Ïö'®§‘=¿mÄ3Þ ¥²kt=MÐvy[ \ãå…OÀvÖ¬ÜE«Ÿ‰’ºZÌ^¬GED×Íøùµ·Ò-Èç¨Ä»‰Ÿ>þ‰Ø—"Õ±ˆÔ*Ö.ÛŽ+ÐNýÁjlÁZÀ¹œ,,ÖR¸rÕI£PÇ:úF‡ŸÙAs…Hâíý8øü>;â #™¯|NŒN}îÉL¹MËVf½¿eû½pŽ„[øðîfÖ×vbÀñõrÙpÎS÷óù"†¡wˆ¼2õMæ§Žã±Aq¨£Óè®C2ñ]ÿËä/ã†7†ãx¦&þ%ï=_Ë ¡—1°{<Ñ‘‘hÏs P.C^]Cu\7Ò#´Çª:˜’-T I'n1A@æ2Q[¼‹uy~Õ»È÷'+.èÌß(w™0Z:ìØQãÍfÂÖ‘ˆ9fZqµß‰ 8ÊÈQxúXRÈþ–FÖÍßDEA)ªÖZ4ñ£¸åž{˜øw'ùd2Å;–°x'Ï­ZJÓ&Þùð7–­ò"ø÷ùXzÜÃ×gàÃzž}ljIú›dÕ>’ëŸÑÐÙØ‡{Æ'·Y•Ú+¸¶Å¦ä;nþ} ¥ý“È~ôvÒ* <ÿјö¤ËKLM.Åè2S¹é{&ÍÙLßLÅyÚÀ %´Ë F ~†_·A·˜**äN|F†RøÁbJÕ™<úá“D4®àå·–³=)UÃrl·ÏcÁ3J¨žËÔ 3Óò”üð0wýw>#?ƒÿ?Æ·Rá­Á8ÿ'>zr.®àÁÜq× ëæ{mÜá“\ÃÍü ™O}lò–& Ð6ŽÍfìN Ïîõ-¬(|™U2‚µš˜Ñ³xéÆPÔ6+õ;×S6öºÚóØ(s´Ïó^øZ$êì-˜:Ê ›~f³G·GêP¶_±sât>Æ.ÔP¸j µI#é­©)ZÁ´w~AȺž‰Ù±ÇÙšöš›,íõP ”uÔOÂË—€ý¥Tãt*=zù´'êÚk5csºŽÛúcbû·¯3u[nyu<á ™w,}ú9Q¶•ëáç‰B¾…iO¬Fôíθ;ÇXZÍšù[Yúë2d-eø¤¿ÈS÷ $ÑçÄvÜÑrˆ_¬#í™gŽ$C]&LV'’ C4­ú€·W ôÏ)/( ª®žy¸dvœm ŽLäÞT (uW£Qyàu°’¦®!ÈóÃL-&¬Ç¸˜ííÑjmÿ¸œ[Ù°ª’‚ª'øÅfFîÌ€Û>áöìn$¬åógf“‘øñ3ªk Móáå]¹ñ²:ò¶í£¹Ùȶ|/„Ã>‚€à@HÑvªà¸pûóí&¬š?)µƒŸ?Z@èÓ_щRöeÈ}ü Þ·‡Žœ™Q±y+û%;}GvFF3aÝdü¶øV/¯Gй•CçPMûS­”/ZÈî˜k™à{šÃQd~$ë{!õ:Î¥’#«\Î/mD‰„$×ÔçzîÏTâïÆÝÓÞ¡vÊó¼wÀ‹©³¿ç»÷’_°„â·bïz5O=Ø™àÆ_xêÕ¼†¦þÄ+–²àIZæ‰WvrýâE\ã5Ûfóñòvý~€•ƒ¸ãÓOHjÜÆÓw±z]$bëzÌéÏ1åµT4µ³¹âé5Tuòëc_óÙR^ŽëÙBµx5?,ÝÝC¨l¬GqÝ#Ä(Í”§v¥‹<¬}=p4få•°{Í{|».Œ›?šÏ‚޳Užt½ñu>ës›­ŠµkWòÃÒ|®ðD#ÉøºO¼5EL{~.7MfÁåaàXÆ4!àé "¹öé‡Y÷®7ïNº VêJv°¯Ú‚Ú;ÈØDB<›«ÓuÜ®¹ã×UÂ¥—ê)Z±žCIWr— Qäh[ÈÔ'–!ôẛïcLF2üôü ¢ˆ/Ÿx—ÿúöçöœtzd&à×~R‡\õO=Ìæ}yçÍÁÈ1ëLÍ­ƒæÝ|±ºŒ›uø×62ä)^×Õ¾)Œ~ágv§†" ÒÞ~t+ú¯sŸèÂXòÿ}é;.›u#ªªMÌza:»½:î‘va3G1äŽ{¸ã›ÙeìN¯‰ãÉŒ^ËÓV¶/$DWWþû~?+còÇW¢®™Ï£j¸fÞ‡tm©dÓÊ5,þb5½cËpöçá×n"á5bô{·³îÑ:zo\ûËËù$©ƒè¤yËW<9k#W =‰nð[vΕ¢mÛm¾ ¸ÿÞ~} Í×DãýÛOì¹ãaÞw'Ï wØ7nܸqãÆ7™¡¼úÍ#m½ºå<5ñ6Ž~™Œ?{$DWÛᘲö…ºÙSƒ¿RÁÙ†ìÍu›˜÷ÅvÓ¯¡O¤%6 áp’ÁŒÑÇóAŒŽ…²1qwñÜ×ׄ3¦³dÑ"úu¿[~‰>™Døøç¤í –ö ‰Ñ×Çfv/úÅ+=™8¥'  ©¡–ÖCµdó=\sã¡?˜3-ŸÄQèçÝþk²þ”¬‡«™6ô6f½·˜{ÓNÚ‘D@êh? O…ˆ]èÂíou9e[9±bs¡Úþ¯n¶bh¬§Aaæ·¼¾üë–»x8Êu¼ 2W=³^ý–¤Ï~äùðVV¼ûŸO_Àèÿ\uÔ‘w’ÔvÿY[ v,jžj92§ì¨{ ,´úzâ!ˆˆu–Õ†Å× ­$á’:>wb—ä©BÕbiÛáÞ®;&/ j…€äjOŒ¸,u^x^ Ý~zâ›,OGõÒÆ.G–a=ïOþžUKwÐkLº}îcÌ,¾çiVmÈ}oÝÂô§>äË߬È\µä•dJàÑÏPâ›Ë¸šxëõ·Y£uQS¡¥Ç˜LB:çÐlåwcШ.øuI uÇ$~¬¸“×Óu@/n}§‘—žÌjÖfê˜ë¹áœ®•­gÛüùü¾Ù— 北Yû.äíãÕM¥@åicí¬…4fÝÌ'/÷¢nÑË<õËBŠºÝN×Pí¹%„œVLAWðâ;ãéê{TP½q>º`ãŸt•+$©-yyØô´ëã̱I@ØàWùx0P¹€{_}“|ÇNƒ·\"eØ=ø•èО}RwaÜ0ŽjV|ùü[ýÝÃõÙ‘çQ*AÉÓ– ZLÇ'=¬´zzâ!IHÂQwÔ 2A’€ÜÑÀ¾µË¨,û‚ÒXîzõ)†']욈ËÕ¡s¢ÓÕÇ•ÍÎýçµÉÃñÆÀoo~Ê®ÕÐ)1—¿s:@°Û°Z½ðH¿†^ž!$;½(_»ž ™döŽkÛd4ápIH§¼®¶l6 .D »æ«ËØUmB¡lF2ªi`±â­˜œ"A®¶-øš©óŠpy‚Ý)ÝB­ìüÝ»«Ðù•2”¥Û6På%âá `PŠUuìþcJE’@¦í‡Jí–p3Wvw!¡DDHˤ›ªÍN$÷%eê!ªà“–ð .ó^μp±á­×ظq;]:$ò”S‡OâÅÄ)xìZ€(e³ y¨Op¶Ô6ßÚ²ø÷wÐÀ±Ž§MbÝ o‘ëh¥hW!#î‰Ç|hžçØ@ûý§ Ò¸oßL«$÷±«‰õn{Òú5[¹zlÚQÏ«cë¼ù¬ÚæÇu“»´Ë'#´çX^˜1–Ó^á‡)\}ÿµ$«ÿÂ>ˆò# ‡«JTĽ‡¶û&œJ7u xêKPÁ”ÁwrpêÏÜ•8œ§?Þæw¡$(iOÏÀþùŸ³ì·Å”›R¸æ‘5* ùxÂT6–¦Ñ-üǸŠÔlÆšÖ{y;í¤¦ƒy(ÆÕü:{¿;›8XjáÇÅJbl kwD›£ID;NÚpá8u¨]öÃjÅ_' $Þšñ|0ãN¢êµ³™:ãk#¨n åñŸç™÷-Ï~½­»“I%’дžï¦o@p4PYeç»ÄqÔ|b³bö;sŸL,ú€¹®ã±Ü Åá>–ìV,>žG6˜ غ­FÓ?À—>7>AŸZ™wÓ¬Ù›K\H$ž‚…’5sùö;‰¦e·‰ñ/&yE*ž?Ñy*.Ä”;˜~ÌÐ*6~‹Gr*1©èD_u:¥ˆ·—?êfl[>‹¼j$tÁ™ sáJ¹ƒ«ºˆ€€£¤ŒRý]¼âˆ­´Zì`“ápÕ±·n •/ï¦m×lgúúÉ8>ŠA=Ûrž_R=ÔÕ›Ù¨½ÉqGˬÆ#¦—-⧃×`ÚÛÌàQ:@GÖw’ʼnÆM§LYú Üó@ ^GÇe(fíÜoøê—R“V»Ž”~­4Êwøþ‚ ™\ެ¦ŠêøÑŒéÞv*`´Þ„ÐQžÝbÅ)ª1Þ¦fö®šÉ˪Híϵ7Åây2#x²uU;Ìcù:&|Ø íz ÏÎn»KeÏ×ïò˪Õè7†¤ÃEG2è¶ûé]ñ~µ ï~qôRwŒ+»Å‚Ã¥Á¨kv²tÖlæm¨Aáe¥ÆÃU‰Q4‡§‘éÝ6öâ»Ó½a%Ív.Ap¨žú€:~›ô¿»™I)]±Á=ý„?ƒ¶MDtyö8ìVÌFXì¸Ä£×mRû\-Ljˆ£ª† ÏýÌùUæ;EÂé—é‰Å§]zv'î6£ §ÓбÕšfòÍàã9ùØ=@tY‰h¤F«C—ñgÝöôC%—S,ëc<‰%/²ÞpÂüB&>‘蜫än7nܸqãÆ7nÜ\¡;@}»B½èê©=òV‚F‰\îDó—ϵÑX¶_¾ÝŠ:wW CI+þÁ5ÔY]mÁÄ’ílMŽâ¶Žj ™\‰Jµ'J äÙ¯c J‰ÖG§Ú kCðŒÅ‚Ñdi‰òÀV¶¤Fs·Ø*Xÿë¯l^åŸ)׷bhi¡ÞÖ›¾Ájlbé7» ¼öVFf„¶Ý¥W¹—†€dÂ5mm™b$Ï|‚jÊÔhÔJ %rtx{»Z°´“ï§d€¯/Ô³sÅ<º÷ ÁÿÈ„2¹\‰Py§pí Ÿr-Fv.[Ȫªîü++ˆŠÛhЄ“”ŠGGX£B&S¢ÖªÁ¾”•y=¸Ó¿-X:ðþØ9vëmW1 y»‹UtɈÀËKB¦©k“ÏPJ‘·@ºO1Á«i´Šm ÖâmlM‰ân!Œ½T›9–’]äwêÍÝ2»ýJip6Qno 5*‡~Òvcl Õ°3›\u4‘as¨1(‘ù[ØÚ%™§ÏX«³F „§Û~„ø5R[žÇ®ƒ]¤ü3¸*»˜›wSbŠÅÏþ¾xaÅæ¡ÃËÇI+ÉÜú¿÷¹°¬}•{—t% %lÞl'ep ¾( è<–ÿÎ Îæ~¶„¦ÈÐö`¢“5ß®G9ä*ºDûµY¢™>XGÚ ¾{[ 3†6ÏzŸLqg}«¬d)eí/¿±}KãßK Pã¡FíµŸ ÊVK±`Ç;°ž²õÔ~mo&GŽ|+¿ŽMRCµ¨Îɾ€ˆÓáä˜×ãý»“-|ǧ³.ãå ‡ÿcØW@‹Ruõ˜:~am¥ÞaE§<*~¸Ÿµç%a%Ø*ØT¢¥_jD\ÅÇŸDñ|ÖoìzN{Û‚v@#Y¨¯«¥ÁNJx(oy‘W›fSZQ‹H¼Ï—iœ´ZM¼{Òßw5‹ϧkRVû¦+E_-¤8ór4Í(•Óm÷àÉÀÔRK‹:¹&†œ;®ãž±Qìþr: W­c[§+éå}†» äjÔ*%r…ºÝ¶·7•…B‰Z£9œàÔJd2™€Œ`‚ÂöRå‚îr0”²?YÏDµ‰=²| Åáô“©Ñù*PÊì8.YQ’ËQ(LØKó8Do"&êvdþ~xVVRÓdm«©VBv‰Lå2rŠøþË ù _ŒNóR~¶¹(.œµì ÔþÂëïYxaít׿Ͽ¸ÎïÝËr_"û0|Û7Ì)ÉÄ[«'TîÀ)"÷†[¹kÌQY4ór¾sÂvÜñ!mã]‰¹¾ŒšÈ¤¿wcÀÛ”& Ä€p‚dVlr-Z5ÊS%Oà“4i=ñðɧˆu4QæhÆÂáÛ`Õ*äíc ‹(d{>iÞ ô#,ЄÉNK rò:-ŸZlu”H&œa!øa¥,oK¾>@—?Π¸;QÈ®C¹tŽj;ÒB2—òÇÒߨ¹#˜ñ“Ç `k¥¡±UX$:À'P‰ÚiÃao÷%·‚\@ ˜ Ð½T;¥@ky>ûÓrˆE¤©¤€â5 ½ñ:~«j³9j-rÀV^D}H ª6_,*µ•"#`,fÆ&bô&L°`l8D“oQ*6—y@8aÞͪ/¦š$ÂÑàÄì¹£š-+ê‰܉yû7•°hf½ž{€ØF…³íÎØÜ›x*÷¦ö®çù§*¹í¹¾¬-xƒš%2-¸ ·²­KáÏ–ýÔqÐPWBEB&—k˨8Æ“ÑÃÏçÄ'7hÈäB›¨À7ð¶µB´äžÞzlãÀ¦ÆXM—±\ô6» kÈ{/Œj/Çõ+=hà¹÷fÁ†W¨2ž2,ûw±§s_âã¡}•©HM9’V©Q*¨Ôš£~¼–è‡'“*m댽TYÛä5—즰sF»ß#Q¹c7Nz?Ü­-ñn¬ ÜæC`€-Vl^Þxû*Q‹õìüc+æX¹rÆ£t;SW„ò×@—FB¸îØ·€%WÛºæh“ H.'Îö¿— %Q£B¸âÁ§ŸyÔ»ÑM ‘»Z±¹h;ˆF&b©<@-#Ó Q)@&CRûÓ-÷Vþ÷ð£úu+vyÃ]qI.$]QŽå´\I–Ïé<½“è6´€/¿#Í{#¼ÉHÅžý4È‚HìqLâ^"Šk&}Dõ²gyk–šNå P$1誮Å¿ðÉoÞXò±8عp ?ìs"­X-®¶¾5·Ðh6bÓ…âÕp€ƒ„Ô¢^ÔqÌà.ŽzkÛ[ßž¡dÞò™·籫Õ(JTê6ÿÁ^¹—ú­«le¬ýåW¶nôeü‡×µéËHKC&ÿÂv¬’ M€µÀNù† äW—±gýö¥ÝÄÔi½þ<Ï»8ì€HåÖå,ÚÓ•I³ßÀŸ ~ül!MvH2Eû}Ñõå”y3B©D.¤Ó¢U§qûÔçé~LÉš XþÅ÷z¨¼l 'gâÄfýÅ–iщ£ÎŽ j_B£ñä”{‰8ü…j–ÍXÌþöÓT§ð hXÆËo6ñÔúÏé Øw|ÀíÓ]HpÝþó†6fàÝÞûú#¬ wðP‚;zr®¸ÀnܸqãÆ7nܸ¹ˆÄ0üÑPÞú3’üqÔ–aè9†îê¶€ÞÁ-ó˜³dÅÍ{™ÛEMïìtËÖ1ëÃ&´p¥Ž$<¨-Ä`;¸†…¿¬ ¤Äη_™Éz3ýÂNòØÖ},~ÿfˆddì6¾ÿòWÔ)—Ó{|(û~]À—Øwl#hÈ´GØ ù‹ùîçUïWñÍ|‘¾}sɹyo~Bu¤HE‰‹°¬a„¶nc¨#>2 täÜÂg æòÅ.,[v~ù£ÈeÖOåÑ—×’sÿƒlñ%ë5¾$÷è‰üP1Íñ#IhÚÍwÿ›ÌRK'F¤¬afa3Ú®#ÉmXÂGE+ˆñöÄCQH¡ó.F'>—œ*·üÈÌŸÖ°«|³W«èÓ#ІE|ÿž Ÿú­"³‰Œòë2>}úâ&MáþÌ4‹~aÎ’•”+˜9ÇNú kéÞyt0Z1˜l@)¿Oû„-Á£xô?W+pÚ ©ûº IDATÆòß~¥hs>k%gÌpÆ÷úž/^ûš‚d GmÍéè«6S¶aïæÍó‹î$±o…‡0çïð7ì .¸/¡¡)$ÞÂ'óæ1=/ë¶„{þ˜Š)¯Ï )ÑAõö*’oìMP•î¿gÑk³Ù¥)¡ÈêMæå=è×¥„‚9«™ùIª’uȺŽ&Ð#áùñáç_ñU¼†¦E$Œ¹ǫ̈å¸:Ok!kÔÝ {4”÷ŽÖíÞ¹¶»…×û¼û†}è<è$0} )0û‡ì7‡¨ÙÎ:k'ÆE…£kÉcîÒ]XìuìÛÑÄ›ú¢CÄ\¶”7ŸiàÙÏÒÓe¦&-?m)ÁÒX‰Q“Æ(}4ÍÛ¿`aa4ƒ.ïAÈá@¸‹ƒó_båv&õò>d±–üÁÌ•ûqÙj¨nÐ1äÖNg9®%Ö}ÂãoleЃ÷³qÆ—üáB|Z<ÝzÿÆüÿ}Ç&©ˆ½Š®î—Mœ9©ËgóQYAÎì ÈÄHÏsPRýNÍ4²3ÀA’ÄúÉÈgG°ñ¥·yMÊ"ÙåÄhraÆ“‘£Rˆ[¶„O§´©“0V—ÒØ™a‰m©ðãû9sä¿ÈŠQžÛý«²–½˜±¨µ*„†b·\Ir{¤RX­í÷Ô vª WòÍ‚ ºö‰Cj©æ Ff¯øóüµQ½g36ÀÔ°ŸJU*ýu©äÞ{5[§üÆôi…„j5È…½ìYãÁˆ‡úâXÃð¤õÌøà}Eì#‡Zôš„ºp­-؈§ëMÃ(zãs¦¿]Mã­×“ç{ZÉ}ÉÞJéæù~Ézö6ò}g‘ì~½ ³`ýÊÅlÜQJ©½û¸[ÈM DVº–…ËVP|ÐÆ·_šÈz Cïƒi/Τ6ÆHya)·ô&2®†Ô¿³ø­O9h¦ø –ΣºwÌèÅGr9°8}!Ñõ MÒâÜKž<’+'Œáª%3˜²ò;Þ-&̵‡}M¸„¿óâb §ÃÝfHîÆæýóùüÛH|Z7SX‰SA׉®ŠW™ñ…Œþiñôë»›5ß~Ç•–Ê}´ŠÁH.¶Ã÷9Ÿ;ºü|Œä-oaì3±€ƒ¾]´Ìøy&oV¥îmêëÁè¾F,6.©=1 ¹°”üÁŒoLx;ÔTÚI¿0¸h®ÜϾ=64ã®Bjì~¤õñ§lE!ŽØâÎqÓÊyÂ^EÞ¯‹XRIÀ½ì( ='ù”o06ï“øÛ¥+},dÑk³Ù©.¦ÀáGîð¶“ÄúBþXñ Ûóaú¦Ó¸ð`,Íù”/c‚šŠ©î:–±:' [×±?a(®¸d:÷^Ê‚ÿ~ÇaB(Ã{Æ@ýR>xê=ÊR/C±~._¯4áÝk Ã¥_Ø5ˆ›ýÛ6ôÔ­ý˜'þ·ÁÝdžÓYãFj\¦í³YdN£—5¥ùr¢32ˆÖ;OÛËÖ±hÙ ŠZùvº‘þÃnc؃Ÿ½<“ºXù¤ÞÔh ÿ—¯™²*„GfTòBФû—(a9¸„7þ³‘[—}ÍÕ-Tnþ޶ÆÐ?º’}…"rî⊾ÛùqÖjfxˆPE»µ}ŒÊ²€ÉÏmàÆ¬×æ¡©…ß¿ÉÕƒ||TâC²4²oãþ¾•z×BbƑݳSûË€ÑˆÑØDC} CõaÊÇÓù*QIÃÆ$Ž›€*˜ì­Ìzá[ÊÂ(.3“tk’‚äìÿñ?,:öÏšc9°‚ù¿¬â`‰‹™3­èNdðíj¦MúSœ†¦Šfd}'reŸ¯ÿ™wßm!Í«Œ¢†Ò/O:v¾j1b2µÐìˆaØ£¦¼ñ5-‰.ª·W’:ñ_È0Pº~>Íðã?óo'[ÊÙ¾v«6ïųúríÍ èF믯ócý(žêFÛ‰»ñ {Dɧ¯Î )ÑNÕŽRoèŒ °Õmaåò Ø"n'·Ã¿5°ln!õb 1Š-ü!õâæÈ`ØûO>9äÛî%ô›¯Ø!É OÃ$í鸈à(dÖKûEº& ßÃ/]:±•­cæ ¾íwkµþ„†€Óî$\Nv»Øfomœên èQÀìyŸó~^~;v¿>ŒëcÁbu´]u‚€¢Ëpî üo}8“þÞ&ªËK1jŸèIþüŸxcR#©ÁV,š$÷²`u¹p¹¤ÃrY-Vì~z®ÏžÎGoEI2r.›@¯ z\‡×¼ŸðïÞ¶ ‡b|=•ÕŠÁ<úʵ}£‚Ð>_„}•IC]lŸþ?”Ô`ñT1¬Kwº$Ïcé¬oñ¶5p`ÿAZƒRˆ –ؽdïÎÚK´i7yžtÕårEêNfþ0ƒ’HüŒ;¨6éqIr¬V ¹WQ†OødžšËú §_Ô±›Î¤æƒl^³˜µ[öSÐR w£/]Ƈù+ˆ=j]5&Q iý{m|€M3¾äm »wBUø=ŸïЦ_øA ò$ ëIP—·–µ«V²CÞ{^{—˜:²2ÞqD4ÆGóDÒT‰$nfîìÙx›KX»ÇFZÿ ä†ýü1¿š†âpÌûwã;v<Ýü÷ã4púe0ºëwL}îk2’%Dh£3¸:7¿¨ÜÿéÀ뢥›Í‰S”ÚtÏæ@”dX­NDIï4Ro2õ;%ý;Å30ho¾êG¿X6y ©©AXe"§xewb³9EèºÑ/c¿ùš=.¶ÚZ\Aˆ.VÛ tÛá@îpØÁ墭IBB/‚€Éÿ¢áùE‡7o8melþ±Ž¤ }ð¨ÝOÞ&©#S±QÑ !)3þôßÒÿ?†üÿ—Š<ìëû"‚€ÕÓ ­Éxøs—ZfÀ`Z#ÜýíÆ7nܸqãæÿ‡ƒÂ½èÖ¥í²–MÍÍÄÅFãE< ¶#ß¾GÞƒtÞ¨®ÊÁ„___„óèM{Ç $²~-[ÊL8µ]˜ðè`ÂÑa¢bïnJ,>Ä„Èe>¤f!Öi¤´p7Õê>L?€$¿¶{¹ìUÛYU©©~Ø› ø¦e’Ð~?—(Š˜L&¼um!'ÑjÅ*Pzip57ÐÜÜ‚Ã+‚¾‡\µŸ½•¥´zâ¾Û2ðk?–ÒTº‰5%jº¦ù`5X ï•I¿´NÅkÙ^¥"6} £†&"íXÄæV)=2ˆðup/<+ Øw¨“Ïe8.ÆÖófú„‚h±`S+P«å8šinnÁåŸH¿n‘Ô• ®¡‘æ&ÙÜKÿÀã×àVj÷o#¿Ù›¤(NQCRæ "{¶Q©èʘk†Ð-Dƒ ÉPiBHéÕ‰HŸ¶d–¥|«¨èÒÉ«ÁLpšžh¯#‘A¦Æ'8œ˜po*o"RRIˆòG#€³>Ÿµùf¢âý[›ðŠÁð1=±ìÜL™Á|¸ŸÃA®Á',šäN¡xx†ã§RR•·… y'FºŒžaZTA=ðª,bß¡rŒÞƒyà¶ ¼ŸX=¶UíxÅŽâÞ‘ñ¨äGѲ劥Púe_Áð.>Èu‰øZ[8¸/Ÿ:µž›¯Ï%ÆK‰Gx?4…›)hhÀ4‚‡¯ïvLØåra6›Ñét§ÔãcëÜŒ.!¾½‡£ÛãBŒ"”„naÔlßJ™QITŸ\yy2•RC-ÕeÅT™Ôè'\GN’/ ÃVm.¢®ÞBâuÿáúníïTÈh½¢éÔ+ /ÑJsé.Vn/CÕ›ËÇŽ¦³€‹ºƒå(ºö"½k<^‡Q6ÊòJ»v éÑbIÄ^µ›e›‹ANÿ w“~ì¡Þ‹™L†Z­þËh§©±) æj ­XœÚ=—>±!Ôm]G 1 2Œì¸ |S»âc«¢´¬ŒS8W<4–Þ~ªÓ¶2v»—Ë…‡Çq©{™•Ý@cC£“ÑH«ANd¯nÄÅt'·³‰­›J1šLXdj¢rÇ›Ch¤‹â­ùÔš ´ztâê+†Ò3L{Â~öNÊ$)P~BY].‹å/uy(±“WÖ@³¡ƒ3žqw %B2”^a¤$¢@ƒ—V…ÐPHAU+“–Î9ÉévÚ‰'I’hmmÅÛûø”±ƒÆƒ…äm/¤T eȨ+ÈLÔ¡ðŒ¥’Da^)uM-š•ä>þ,£âU ø“Ü?²Õ[©4›0¹‚˜ø||B‰ñ=«à¤Á`ÀÇÇçÈJ%2uÞÑdõB‰Ÿø4ÊKÒhj¥Å@j§h|½CINÅK!Gd–FjøtÏ9a€c}ûì„v Át ”z“š°8j¶ÄêëOPן6®üI§/j-XMÔí+¤Ò('mø 郧ìØöÒétÈÚï¥<Þ'1Û]vÉ"=%††Ík8 †“ž{úø#Ħl*hÀ'̥݈6²}ú%Ö°íe´ŠÉŒf$qN;ËÞâPïG 2µ/þþ!4n[K ‘d¾œÁÉ:h6`÷óF+Ù0Z0´´ ‹Òã½ómö¤ÜÅUÉmãÊÜØ&§¶©šƒ‹KFhJOb<-ì-(¦¹ÉNxæp†_Ö ?áØk)U;XYè")ÅGs ~©YôîÕqóJŠÌ˜tw F)LéA`t"©)x µdkA Ú`´.šðîôH ¢¢¨ˆ†¦Z r½ ½Ÿ2%ZϺôN&@¥B@¢©`åFï“Íðaiéˆñ°SQ\Dqc—Ý=†ôP rT²P:õ‰k¿3ÔLya5ñãÇÑÍ勤·PR”OµË—@F\\G° (ü‰O $,®?êüõ45Cȹ® ZAF@\W¬V²×áAb÷QLÈ F¡ ý“Ö+ÒóO›œì‡¶±¢H S'?l-­téOŸ^éø\Í–Cà¯gô„~DúÇ"£2? £½G``·Ðc@P‘œLhœaûj Vqý`ëJ LN¼ãFqψTˆX 4;Õt¿| QÔTRUQFµIKæ-ÉŽÖâ¨oÀ‰®µžFƒ£Ù„&¶7CÚg^ÉJ]i á Iä˜JvSnVÕ-¹ ¥&„niÄz±‚ ÁÒÔfoŒ&LF6§±½»íLBœ?2AÙîoë@Ð’@·þ}Ñ™*)«¨¤Åd¤™ºuÄË#”Ô´P´‚€€Ié!”äÀa1RSu’ üë²L"#åTîɧÖd¢ÅîIdB aA¡ÄĆáï¥js=”$%EÛ³;Ö][(k1b¶ØJK'Fç ¹|?[¸úšžm§2ä*o"’’IŒ D+œp’d„õÈ áÔnl"*£/q²ílÞcÀ¡Ô×{(™ÉÉôʈEã(§pO²ÈNôî܇ itÊ §±äUUµxu»Œœ„:¥… Ñ„š‚Ö;ŠÈ böîwâ߃ÿcg©µ‚ù•È|ýñ’YP…t¦GZ(ÕöQܺÊ\_…GSu›]t‚_J_’|$j vSaˆÉÄðÁ©èd6ªv×:b4× îŒ¯ìäó¦\Id`1EÅr"ºçÒKWÀÖ‚fð #­GéÉ‘„ù‚¡¡Æ¦zŒÁƒ¸Œ_9(ýIJJ¥ó Xvl¦Ì`Âd¶âðŒ¥WjЩ7O ‚Ü›˜¸0ü½”  )9PÒRBÐjÉ.§p ]Ê\="‘š-›¨4š1YÁ38Ž”ø0‚ƒB‰ñúóæGEÉ)!xjÃHô*dS~3&« >#I\R(:¯Pã×mB"C  !::?¿âBñÖ(ŒX°^däC‰n¿ôÛ嬥pu=Aéq(›+(Ùc!´G¶²Rªd„$¡>Í)³¥¥N‡ÕjA.“·ùAÂñM'ù+€´¯׆-HV럴üÝ––—.åxÐÿ79у11‚@SPþµÕ‡wÚt:|_|Êôámwû¸qãÆ7nܸqó³Ù̼Ÿ–1ñº«(-­à@ÉA ÈÂætøÃ(?ÿÌæÃ>´,<ÏÏŸ¥+1±1ç5|‚ôÄY,MNý‡ÓAmm-áXN ›¦~Èy#þ5’áÌjcØ·œ¯&­ ×¯“©<›v8»zH§Õ£§ó=é ––Ç—w²òOW¾SéÁÉËø«V¶ÛíÔ××~töLëxzm~¢ïœí9¾ŒÆÆF Å ‡CÿNN«±›ÍF`@à¶$gV¢Íf£±±‘°°°‹2ŽOW6Q9tè‘‘‘ç½ìs-£´¬”˜è˜¿ªœðës‡çRO“É„Ùl&((è‚õrsÑr–ý±ƒJ³EYÕƒ¯åÉÁðQžûYÐUUU R©.@_ØùLB¢¼¼œè¨èS>ÿ¼Iqܵ‰§*ôôtš‹n#*** ;Äÿ™ÏóvÓ¦Ýø13¾`„ç™êN=3Æ>„ðæt&ƩΰïŽ/ólíƒÔþKá,5óüÍù]ƒ#ß8;]?}ðÜlí™Í»Ç÷Çéëßé?±ã“Ërr ÿGl¦`é§¼ðÞ^:]Ý ­Òš߶ã•~-ÿºñò 9šOòÑIÁ’I,ÝïÂáÀfÑ|ÃMÜçyÎýæj©`åôÇY;…ÉWûž@¦ góÏ´ä‹#×¹û²Ã;ƒ©ëo‘ïdTÏÃM/ðùƒ]Ñê ÇpúÒ”–•NSS#J…¥Ry°$I‡À®ÅùØ&‚ØÔtì÷€˜ÒÒK:Çê>Ú7nܸqãÆ7§äÂ/o…óþ™ »hrF¤_E€W‘™ÖFD˜Â€ë’ITžm;\È=ï çðÜ“•&'œ±ìU¶L.;:{¦u<½6ÎÓ(ú«2A8¼þR²(2AvB¹Î¿%9³™ì´×¹Ë&È„ Vö…-ãp_°qxN5”ÉÚÞØ¾€¨½üð Ãapùöâšç'ù{öºqºí'\`íNK6áB ·Ì«4Âyêï3›ç•2nyŠDϳ+³Ûÿ!⌓¿'œÁγorñçü3ñÁ„ 4’έ=³yW¸ó‘pÊÒ…¿.I¦#ªÇ0n½5Šf A%'zT1=ú*¿£ùDö\Ž. ‚ƒJ|C{sYœçyé7ÁäA·òP²ïIdºp†ñÜ<á‚Iu1¦á<þ^¸å;ò7ñBD7tg$€ûìß“áN»qãÆ7nܸqãæ +šÚšœØ’$ár¹¨­­m—ãB!CˆFrÑP[s†OÉ<‰ìÆÚ nm»4tG¼Xºs‰}ì;‚ `±X.™¶p:ˆ’xÉõ‘$J8ŽKO.Iº$Û«ƒâXp¹\ÜVÈ4 ôÉMA.‚ »¡žZéÜŸÖ1ŽêÎ1 ü÷êõ¥¦;)KÍoÛ€ ½IE@Eì€ ¬µ5˜Ïø×r¢„᪭¥÷)Žn.íY@¦Ž¦ÿˆxQ$™€ÓaÇT[Cëß$“6å*Fu–$$Mµ5ˆç§¶xD¥#k­¡Æ½`qs‘E $\ª¥¦öÂÌo³æ¥;ìÆ7nܸqãÆ›S¢óÒ]ð·œÎ7.—§Ã‰·7¢xéÕ*·ž]2ºãtÒbhùÇèÎ…B ÕЊL.ÃÓÓ“KåF%A‹Ù‚ÝaGç­ãRºéÉépÐjl½ätG]456]’:mµZ/¹~<]=´Z¬Øl¶‹Ø® ´^êóR’L&ÐÐЀ‡‡ ¥’’tIêŽ €ÅjA§ó¾¤šK&°ÕÚðòòB&“_”gª•çpöRãvFÜü#‘+”¨/i”(ÏûúB…{tº¹Xú{¡Æ’ÕZûª%Ý `7nܸqãÆ7nÜœIÂÃÃã'¶ÓåÄ`0 Q»ÃnÎ »Ã¬µÕ­;´%¸är9Zö’’Ëår!Jâ%'—].Çl6_rº#Š"ÍBó%«Ó—Z?žöô(J8ά­ 24Z-ªb˜¶7x.UÝñÐj/ÉöòÐz “ÉpãÆ7nÜüßÀ=ë»qãÆ7nܸqãæ”üÁ•.ú+AçÖJîƒ/)åq·Áß6ŽþùrInýqÒ,puλìg#ƒ{œý³l§»¿ÜüßZ9¹q·ì¹×ë|Ìtz¶ü'ÈèÆvãÆ7nܸqãÆÍ?lá{æ Eé ??ó²ç.¦NúŽ?ö6ž±\‚XÃÆŸçðù÷{NxW—t–’I{žM-ÎDnéŒË¸Ø)é¢õt‰”ñwÔý¶€t‰ÊúwŽæ–TÒEíÛÓËF]Þ¼òæjLüs®Y¬%,úð~ôz=w¾ýEáÌÛU4°ý\Þ™º ëß]÷ÚÅ<ýïEÔ¹]±“Úì³²’™ÊóxcÒ,êãÓ˜–òô NØ/çw~—Nû?Ò9¶®tÞûK:G»v!d:×oœnœ™ìçÝÖK­\õ!7çä2pìÕ ¹å:dáù/ÿ J.H˹¡y9Ï>3Ÿ é\Z÷|éÎùë3ÁQÈwÓ¾gÉæ \G>E0üÎ ÏÎã ÍqVO“Wñì}ב™‘Á«¿5 6¬à¹gæSîÏÃx*æ0aôÈaÒñ,úE@°oá½ÿÍek…á¼ÜYíæXÜ `7nܸqãÆ7nÜ\|v¾Kff†^ÎsË[Ž :(Í[Á÷Ó6cF@ÀÀÆ)Ï2^¯G¯˜ÙyÕØÌkyeÌ ÈÉ&+3‹‡Ÿ:t+H5¬ûòY®ÒëI×ë¹æ¥oÉk:æ?xWdêÑë_fÙqÜÂs?µˆÃ)]W#;g>‚^¯gØ/°p¯ó°ìök)×é‹31ÿžë–©GŸþ.$@ªšÏ½Ù™dåd3èŠ1¼¹Ñqø·bMeµe¨£å¬ú#Úåû¿E”´€@9³oÃÐìl²33Èš´é$5©+]Ã7ï­Å„€€‰³ÿËMz=zý=|¾¶ë©;†[ø§€«½j;?=Žgf˜8~ù^ÌWÏÏc‹µ­ ›—ð@n6Y9¹ ½òYþ°ž( ffÏüw¸E¯G¯¿“O~;€jæÝ;‘Ë3õèõ¯²ÎÖÑ/»˜”IÿœA\9ökJµßó°^^Ï|¸žZøãÝ'«×£×?Æûê±¥|qÍ ÌÉ${À»äeÈãø:K'Òí_ بZÿãôzôéù륹” ÐÈú©Ïr}FY9ýÑëÇðÎÊCHT2cü(ggÐ?ë-vžðùê Ôù߮Lj€´w/Ü9}ÿ,²s²Eús?cª_Áó£†3 '‹¬ÜXÒØ¦+vó^ÔëÑgŽàæ‡R{‰GÙîìŸAfv6ƒ¯žÈû[E”m˜Î=z=zý¼>s­4ñëK÷quº½þi–Ô´ž—€`ÛÆG÷Nಬl²ssÈÉ͢ƿø®¼½ôMo¢×÷';;‹Ì×ñð»¨X?‡IS7aë(ÞÏÌOfòÓ†òú~Â~>§€®õ¼|؆eóЂ*Äõo1ø‰å˜°ph탬œLôú«xiÎvÏJ&'«˜ýé&ÌÇŒ·Z–|öwWã<ês(ä“ǤB’ ѵ‰×ôzôYÃû\ªÚõZ°•±ìûÑëõŒxôÖ”‹sêQÄe7ÒÐdù<[É_ö+%ݘüÓ Þ½o ºŒÅæ¥<ùØ\JO`±[Zij¶ýýi—‰ú:Ó æ¶F —¼Ïútúçd¢×_Éó³¶PwŠÆ=±Oâ z÷lÔëÑë'ðÜÔMŽƒ‡øqòv–4ÖYaÿç <ìœlœ_}¤‡Í­Tä­ÃÞ#Ëî™Ü§×£×O䕯¶µÍ®"¾ù÷m ËÈ C¯çÆi[iµ¸fÍBj:wů|wddÐ?;‹!×ÜÄGÛE¬¯ú”»õzÒ3ôèoƒŸ [Ïe1õ‰©p‰íŸnát=éYCwë÷:¡è¨o ‹¦üÄæüZ\€@ __w%ƒs²ÉÎÊbàûÛOð[Õyßò°>Œœ,ÒõÃy`Ò¢¶y¿e¯=4½^ÏØI¿Qeü9~ IDATóø(ûþn22³ÉÉÍ!''›œ«oæñwRµr2×êõ¤§ëùðdVV€ÐžÜyîž1èõz®{o u¦¶9ëÓ‘C“Å€ÁPÐ>æ,-+xV¯GŸy%·?¹„:„úa'nØÃGΧú(_¤qÙóèõz†Œ»“O·¹¨gÃŒg¹R¯G¯¿Šgm¡þØÙâ¯Ç1ü¯8`<ÞÉÍ"3g #Æ|ÉÁSXeFVÎZÌêu¥8Äm¼sËge OÿsËœ'Ñm{[©ŽZ6}ù z½žá÷¾Î²ràÀ|ž½ýX¿)ã¹…Ô™G<ã÷‡0ôñE4Ó$.,N-ჟdæ·³X0õ#Þ¸s®F̧2è Kx|ørssÈÉÍ!;{ #ƼÈj“€›Ó™6MÔ7X‘*çrï}s©A¼.Oþg)†Súëõ,ÿjë¶VâD8éºÊUþwe¶û²£&0y‹ ¥§óÀaûzò;®Óí3'­ûæðÔsËh=©A¶ÓÚbÄdu;'Šfê8ÎÒI¨fñ¿”õ?|û8u —SÜTK]ƒ TÍç‘Çœõ¨ÿÇÞ{ÆGUmÿÿï35=B ½™zQ¤IQ)bA‘*EE‹ˆÒ,€‚(Ò‹ôÞCKO½÷–dÒ{›dÚ9ÿ“@€àõ^ýÝ{¿¯ÿ|x’„9svY{­µ×g¯µî³nâi:~ò ÛwïcL›jŒYñýV¢ÎÞ'3¿£ÅNÿþ¿€¶Ã;ì°Ã;ì°Ã;þ³¸´”ö£ YqŠÐý»™ÕÕͶÇÍ‹çÐ7xsÔ .hµ8Ñë¹äP‹)DN.ªÁ¸“Ü;fìZv:É©ˆùT™7›=iðά$dß–|°A$NÜ»Æ[D¼¸}6:eå1‘ýŸå0ó§HŒ¥»ìø-#ÑMbŸE@ `Êäʦ™}ª5›Ä8þ4ƒ^õT_‘œ`¢E‹Ò¶Îæî+ÓX*²÷“T¦-‰Æ*¯S}îiÂNfëŠw(ùra¥Q¶ü\ µ Í< Xºðñ‘8q#â£8õ’«GI¾„Or*rãï­aÇ3Çß%C? ¢ÏàïˆÕ¨qr.îåB!¼¿G$lis¢£Npîaa…C”¼sÁcÙa’lý-EIÚ öý6‰0s>%Å¥ÄËÓÛÿâØÅ ë=”Ÿoè)B‚LvÏØGàšPN=ÈÆ±þ1û(Ͼ9çÚΧåóÖN‘ðå\9wœ¸DÐïú‚»Ý'³:Tdß§éL_…8»d,¦¯Ã;²“™/G1qí]È‹G ÝK›µ"Ñ[Fãa eÃÙb bWqÅ£ _91Ï“»N“T·V!eÔ*ö‡†³îƒëŒYrîß y<ÝçÈv7 R®qbo #ˆˆÒÅó.¿l¹ H¤ùðÊG‹ÙNxئt®ÄÉÙ#y4ô'v‹"bž•qv‘þôL“—ÅžÕûyiˆxpõ­‘|»ûrýטùÓNŸ<ÎɈH–ð¡u€…³w0w#BOsò«ê̵›4¬ˆ+þû"1û—2 ÞIfíŠÿ7µ ‰w©µ ’ȰC¬Ÿ?€üy‹8vç—.ˆtÛ$µnÅ)'8x3ƒÛ›¾äŒÏ«,8""®¬ÃÏóvq9§ø¯A–Òº1kíކ†rìèqNœú™A5èwŽ£ý'2?Šœ:q‚ý+¾ãµäƒD™­˜Š-åÞm¡Ä`Äh¶‘ƒ%Íó_„À]V¿¹ŸOV±ïèINþ ÏkQ´ûˆi®_±þP˜Å™È]T~^ç·³ïH%¾8.'nâ½ÚÈ W¾¢’º½¦²rÇb·¬ŽÒª¥øÂb­‚±Ë¶zâ§£¿§ú‚|´'µl¢  i'KXÌF EEä+k2òED#ŸwX(ûOÞù—ÆMÊ×stþ½ÿç4Ô¥#f¹½—™ï äËq¤*U¥Á,üã3y¥ë»¬K/°éYâ–~‚f±HôÁU¼ßæŸnYϱe¿±9¹'ÛÄXö.C°ïÿBHL@^¼®þ÷rŠÈN/Áè@£*N89: ª¨ý‚•¢" J•âÅ:ãûþŸžá)»÷ŠrÝiÕ{&¿GD¶™o¶ÆëÆ÷ŸÄ8çŽ<Ôs1üºu"Ñ›ßǹ0” 1¶C!¦«›˜4d O\%KQúÅ·£û; |¼{?ÇŽ…òmߪ¿Þl‚¢< M½sˆ‰8M§"Që‡"e„²ýb¤Ü„.cY´;†Xñ7‚®c÷Õ,L¥ÏÇß3ѽkm„„»Ô^EtØ!ÖÌíMö¼o9›ž…Qv¢ój‘¸Øã,ëìJÆÅX,OÏkÁÉÙôêúkRs)£óâ~˜Œò{‘¨Ck­ cê¦ûÊ„åæ.¦¿=¹{DÒ• xù ©®b硜8½™‘7~eWÊsZ £Á‘šMƲ6"’ˆ°=|÷qjgGòÕ”]¾à`L›'v¦šËóëÃwÐRNž娱PîÜÀ„6©8£Æªv§ÏJ‘¸¸ÝLm`áüæãd§Ç2kòQÜúÏápL$Æãí ×~EÆÄß9zŠ•ï\fôÒ `-!nõ7T].³g!Ýkç›Ã™Hw?ç‡EÝ-xn<²}B§°1¿ô¡d"ûØ· ZâÍJ1–#—1²µLbL73ü˜}RDÜ6ã­hI*=0 poýP~ÔûáY ¥‚sKGS2ç$§ìáËW£¿êf…âj}x‚EcðÙo'HTkQc"bá.*˜ÇÖ“±ˆK›ðÓ‚í<’*ð·ç|MLn—6,çÛ3Álc9°xÝ|:}øÇòr~Ó»Þ4©áŽB°i„ËK;±¬ #~…ÅÏ‘%jG7*«qÖºãîìˆJñO´¶Õ@^wXJèÑc =ÌÎßgÐÞù}¬ÿ [ðW[q†Ecwýµj j5 ¬X«`ÙO©ŠŒ X(2H¨^ ß­÷3wäfnŒ I©´ùבòÖ³û*ná;/‚ÈÓ‡Ùøýë~õ ±’ÙàLÝv“YIdØ.æ}Ø_¥èÅk½ÿXo½ÈÆ(°`0Hhg@©T=Ó¿j'S¹ŸáJ•ºUñ®=ˆ¥K‡àáˆM…  °RXd}ÁØý ˜¸žãCƒÕñö¨Œ³ú_|^Û’ÑŸ ¡}KTV›|ÙÉÊ¿ö1µÃ;ì°Ã;ì°Ã;þ£8zvΤƒRƒÆÁÒ¶³U¸ûÑû³U,™Þ“J…fr¹yÖ­µu«€KÛ@šå›ÈÍËFj>‘O»WÅÃUƒFY€F&Ì”¾ãÕŠàîƒèÛÀ_ÿʸ{Ÿ#ò`#êùûâéU;w¥É£’%[˜ÊoȯœÞ0ÿÒìScn1iV&-y›z¨µšro=#Ô8(ïqád3Õ¯Neg¨ÞµMî'¢—$„àÏ™ÑYƒJ팋kmüê1Y HMˆ'áRU<뵦K·WéV ~uÐj 14þIÝkRÕ]ƒZ‘Nâ…šøÔxfsçäMÇI«XóÍkx˜"\µ`ÎiK#plÙ†ff¢B˜£˜Õ{+Ïe>Zø¼¾œÈß?¢žÙú8³GÊ×sæØ…¬â‹n•0XhI`×ìéÌþñúÒ:}Ìï›çRÝ 2 a6ZP9:¢urÁµ^]Ÿ!s‰¿Y‚!-¦5Á¡YKšá„ÕɉÃÍhàƒ‡3TëÒ&ÒH!Ž“[{Ó¥“³+õƒ:PëÖ5îä>䮨ƒ Æ ªU—&UýqJ‹"R¬Œ»ª þžàLóùÖXBwt$PW gu»v§áÍϬÏöY¨H¶e ‹4N€·7ÕªV¥šÑüxK®Ò:â,¨qpÔñÜ9Û‰@]e\”¨:v¡Ï™»L Ç.çê•Å Òé¹MO–÷K?Ì˾$Æà‚æïb\eúðߘ4tKmËù-›Y¹0ŒØ5û}:ëtèt}Xp"kÞ)>ÿl/[v$H7‡h‹ÜgÕH:]Ý{Áé¢ÿƒÎ•¬D©vÀ GG4e¤å‹´öS>Ij7È"-ù!÷ÏÙl‹Ê¿.M½}P'¥a4͆³tõ"ú´¨Ú"¡.½Êûë?åewWœÑ>^Tf —¹tÚ M.uå¥ú ®Û€¦•ª $ê1ûögøËmi^]jS§TréµÔçÛY‡:µ”!Ó™ÞA‰ tÅÝÝŸšþEœkШó[ n `¢ EƒÒX —gX ×ns8¼ísZ9j€XÂvö¥[H©~h££úxLäsaó|&OXŵR¥£j4ˆ¿~ÏëAuДVr¡Åx¦v¯JeW-Zu: kQ£:oo`d—)„–ò¦², P:àˆ€ÆÑ­ôçÒø® ïÓ o¥ZYáü(”Zœqt0%„vvÃ6Æ7dﶨBµžxùX¹sŸÖï¾Ê°îMñTjЪ•ÀUNlëJp°+ŽêuíFý›÷H´œçÌ¡>tn JÏj4iØïG"gîš(~ÊÓP’“÷œ=öìý=áÛ¦ÐTl^žÙÊÕ«)LÙ4(Pk5(«ÅŠ$+qpjÖÀßÅ7‹íÛ §¾d™b*sßn‡ƒAYê×uÖ¢qv¡AHGünܯ0“SY»;Ÿ.ù‘‘½›áPbd,F3 ­ÎZ ~]™%Ÿ÷·ýëIK)"Ç¢b·C@Z[jš2¿ÉÅö}­éÓ£ îN ²öŽg™÷Z~}§Á¿Æ} €åßÏ’#÷(xöY…g­޶÷:j-¤œ[LJïMãã×uô7ƒ »w1¥«ŽA³Ös5_@¯ðËøÁt,µËÏçAÖA&LØÃö…Aèp0Þ^[Z5I‡®c?>\vÈåÌÆé¼¢Ó¡Óõ`ÊÊr Wøùû½¬úêMô²}þ‹Ã”X.°((NGûÎ]X}‡Íz±æŽqïôzŒYÉ-c:GÎ`æ¢ÃÄÿ¡¡Ïdç˜ ƒÃèºbÞ¦Îÿüf©MèÀcáfq;Ö²lóÛ¾Äxeó×räRHg˜?´íu:tÝ¿â|±EÊNÆŒÛI’œÀ–Ù‹93‡—{dA¤áyÙ èŬŸ–ðN÷†8”ùMG1©Ç³û*EÈçÌè¤F¡rÆÕ­6µJJ÷jÂÓúU¥œùøe ù„N½æ™Z±á°ðûì%œ‰šÍ˽³ðàuN.|­´ÿ]½à©VœÝJ8»f"^Ö¡Óõgqt²Tª'*„ôÝ|¨³Ù©NÝ?!4ÿŸ b:Çç®äØÍ½,™0àÁ£ðÎFîå## P&³mÖ·\¹¸^»0ýp*†Ë?3P§C§ëÈ›ýÆí’,"vogîÔ‰Œð:sw^+—Åü€ ï-á¬áŸw A7b3g¶*íW_þ”Sy2_ Û³çAÚ~ûn3’±ªTh 98½óB31Zβ0h;Ó±ã¯øùö!°Ã;ì°Ã;ì°Ã;þs¸@ؾë,~Ýlhߥ;+®–š¥Aù "-Î5ðOÌ"»°¸´”o)’Â9¡|™Ž>JÔ\ç|žžÕjâí(=y“‡×ãÑK¥'íJ…í=2†Âöm ez[P¤ÿGóˆ(Ë:N¼Dx]o¿»,a ™* ^5ŠûlA€WFŸ¥ßÜרôl¼ºü/Ú*ÔÈ4`ÈΣ¨\ðð§ÞµGèe Y.¨«ùPóê•J¹´E*7<%ªÄt²Š'}töÅÿa:™†L” Š×ð£î¥Ï¬ÿÊŽº¬Ïªȶ7ŸôÙml%5WŸSòÊÛÍmSâ~ŸßŽ¢»NGŸ¯Ž* h5 $$š0[ed|©Ýü>ñ)ÏȲ`ÄhL$ÅàŒ{J—4²ŸT,äÞŽUdõnM+·z¼þÃ8r'½F]ÿ#¼2w5,Ö'3©ÐàìêÇ­DRþBxA “—xkÎ]ÐU-w0CíAƒ„œšC‘&ƒŒô|l}ðk’Djº鯲Z*G\Rv3e`÷Ò”Ý{›HÔGpâJ=êT¯(Jû¯Ìóß…Ætv‘ot#hæQ Æ2BSÖ=¾cþê»´[ô!uQQ­n äÜ ê;™Ÿ£Sþ߀ %ŠäDîû¶¢y½J8—ïrÚÔ½ô€xáFMF–$ÛAý5¢­˜½ÜqþWÛ!(P Œ¸R¨8ˆõÑ%C™žP¨qð¨Jõ[W¹–{޽¿neBW›þ2k —²ÿl¢¥ÊÀ½ÛØ´>•‹ˆ»ÆàXÎþ«×ûæ;îU›õ‘"bø|ºÔ¨ŒÒ*ý—`'Ú÷çÝicyküJ¢ËGã§²håqDQDÜ4(ñ< Ù¼òÙ8š6ŸÄ¶‘Uƒ}©5tí3QÇX9Æo7ˆ8jUO³'<w¢[ÛƒDÝ ôܲPØÉKC)¨=šÝ¢ˆxêSŠODp51ë•o¹Ñl/‘âlBÔJ¸ò† DĸS|;0y_ãÿ¬ÄÁ%…Ƚ3è«Óñò”_“¬Ng—ú$ç»TÍ„ÙZº~T•ð2+PêÓŸ”|¼.UÀmÄ·ùyxW‚mëjQ\éçÌ%ä]?OtŸNèLÌekR]ï’3É+ïïäÅqÚÔ†–¾N¨àÌIvèBÐS¶Å@®þ&7\ºð’³m­ë£eTÈ;„z´¤ß{íð¨phždÐÉ¥úÁöjZϪT½þˆ$(+Òò  áÙ1ËåÀ”ÎètGè7@$$ÛÐ<¶+jm·¯üÀ›:]F|É‘¤TRÜ`ó왼ÑÞ6Vã×]&ÃøâÙ±{x=•&½CƒòceŠçV¦•3râeÖ}1!¶ïœ¸ù†Òž$,héúå”Ë'Ó[§C×ówÚMD-¥âپħš9G°sÍA¦u³Õ )?ûL*êÝí+ÉîH¯û'0½`Ëûƒ,!ËÒ¿^ª_¨ {SP¢¸¾„×Ê|”.¼öÅ1 0¡*ðàU‡™ÏžhS·®¦“K6‘7N³}z$¾â("ÿ{kr/ß„tqwC¢ã¦ÓÒxšyﬣÓzQ<ÅÖoP½8…s‘§8sIÇjQDŒ\L³â{DE=Àxo7ªNå×C"âÆ8³÷ñr2ÛFCZ‡(ŠD…æã@:ôí̾°›`Íáaf6i½zÓPk²•&*ö.-ëA°n æ±ÄÅ|J[+mÆm·Ù„S¿3¾{ +÷^ÆA­D–å'þ„¬ÄÁåëÞÿŠâ>ßs8ND<6“ÖNZd«ŒRðgèìI´ šÅ‘£»™ÞÁ I²bµZ±JåæL¡xf.(*ÜW•ÉŽ‘ÂÄ«\vêŠN#!h²¹=Ÿ:ÝÆÌ'ô~Ù‘V_.ÛIìž.„éƒnên2 Ÿ¾¯W¥­ÃÙy)ä9´Ïú4¡Ûgûlý?¼ˆ–ÕR9êÁCƒ§²*T$f‰Žëwr9#I¡B­Že~ß›ŒEĸ(-oÉîûÈG&ãæfÛU+¨C§ÂÜ™t›5š½Ç2oýqÄ ƒ©ç©B¶ÚÆW²ú0øË)4où)#N3»ÝU–Lµ2Wcvòi/ û £ 'ŠDs£×ídÖëMyrëCÞY9ŽV/M`é(ĵoÑîÍ•ˆbbL8»§Wfþº84¦ɶs&ÇÅK”(K}AÂhô¢Ï»ƒ={“ Ä`÷€x½Š=‚ò×ëe‚‚òé•ìÚöóö8gs&v§â ª¶`^ÄדÐü""Š;]ÿ"KÖ_xqŒ¬,Ø#ØæWxFf¬e2I2’BB.OIËO‚nÏÊ]¹@ny²HR*þ¦ñó²}eÒbÎR÷í§ë>‘ˆ©š}н§ô€'}ËQD÷2üÁQvŸpáý­o“ðõ0zt&$h ‹¯t¥S·fÈu6kaqqˆqK©¼i+á™éËû@’„¤P>.›ÿx##+‘ö”†?WsV»ÓpÖÇÙúùó»m‰]°³÷#¹šaer¸ÈÞÙH¸p’+ñiܾ›Aâ¦Ïòj0Á}æsþâ wòé«AdYñçŽ[©€k¿}AêÛßqLŒfaT”­ÛÓZŸOF‰ ‹ @Ð'óH{”©!Á·ï@÷×’œšE*Þ†²<&š˜èh¢££‰ŽŽ!:f33ÞhŒ¢ÄˆU–$©´ Ϫl«Ú$!aIzÀ…üM|LPÇ×?g?éy9dzóRp7Z¸W0„ÖÒ±—$ddL÷7óž.˜ Žèýå œSRÐ;W¢rE²íæAU™§« XÌШ ožŒáœY"âø~Þ쪳‡Oþ"ì°vØa‡vØa‡vØñ„µÖ@¾©tZ½ H*+c%¥'æ¨Pª$d,¶ s~÷kzàéâ„“9–EÝ~§áž üSÕP9þÃfîºóæ˜`*aEP›°”é÷¹ÕÄZƒO‚–ÿ+ @)(„ÂÒ`Ue|êySÝ5‹\$ÒÒ`-¦ À(míSXlƒ†â=pôðÀ]eÂZÖß´{ÜjêG-AƒFk, –ʘ’ã‰o€Ÿ ‚Êh ˜sIŒ˜jùPE°`•KË6æÅs×ß /Gœ4FLÖÒ¶>ºËí–u©ýïŠóã ©Pl·$°ÞM®œ‰#:w=«¶þ@& ïK•+ǹfÉZVöد:.8;)pbξP¢bb‰Ù5‰/Õ§€µ„‚ܲ;˜ñï2•½¢ˆ³‹¹“zQÛËíñ©üÛ»¶“Û½mjWGQt„ ·†ñjSàFß%Û™p{[ÓpДØîE”Œ榓ÞПw,¤b2ޱbÌY:žK0Ř% ¥ÉÖfc&É2B5WÔåÝï7qZ‰=:‡N[Q[¥ü[‚,c5?}AõÝ9Æ‘;æ§Ã†Å%XÌåÊOKV,²„,”#ÃϳâïáŒeeÁÁÆc ‹ø…Gc7ÁR0›L85â­¯V±(¤6†kþfòRÂjµ`®æO£ìËœ½–NA¹n¼qƒ{mëã/`2a.@”¬¬X1:5¤ïÇ›ˆ÷1³ƒywâIýwו`Ó½Šgœ 6÷ŒÞÛߨQ•ɵlÆ™LrÓ:Ô’%,•êo:ãªÌ!ßú߷в‚BF.)¢¤TÍ P‘ž—Mf¡!ÿ+¦\¡FÃ]ÖÍ\ORã Eb£¾¥G]oÔ¥zÙlER(!i£Þ;ψ‘¸˜XŽü8”ªEFþÖ¡×zà×°3¯é÷°;·€S;œ 8·fÄÜmÄFÇ-"Š éݰ ‹ ëãH¸`Ëð+ýÍj6bÖjQó²³Ùd˘Â·ên¸yÛȽ/ùò>ÉB:«LXP¢P•êlS.éJ3æšUždÖ*רÑh ”ØÆÎ« ›$” VK2ÉÉm¨í 2Š'ßiÌ&EkEªáMen°îýu¨Æ}Âàê¶òñ$sÿA[jÉmKÚãü2ñ]Í¡½ªt˜Ê®•p¥N3 ÎÞäWXUxìߨQ—é,”¤'‘Ô´65Éh  °˜g®¶='Øt¿d,ÆøX/¶¤}ß»$깄‚Ü‚RÿDÂj.ûœ G÷JxÔÔ VY0š ¥™µh×¼ˆ¢|3«™Â\¦òÇ…„íØH•χðø¯éœÝ±ˆëU0w ¾˜@e¡ÄXlÓB›ç‘Ÿ ¥“Ŧ?åG÷¸Ý2€Ú²…¦ÄÖF©„üÂ,²êûS é)?Ì 'O·Š+7(žøˆj”êÂÒrÍZÜüëÑÄ#†Ób™ÊWháÕ{}ÁgÍœˆ?ê#—²ýd±11ÄœšC»¶ÓØ÷ko<µ%¥r+cÒ?âAËüJýÞ‚’çýL¥¤hvÞêJ»OT¨èüõ6¦%ïaw’òó²mEBQiùZ/jÕ÷ÀÛ)‹œÒ ¿¹c+ù=›ÑÆ×gz|µ‡Ððb¢cˆ90-¦±ç‡¾¥rûg`Æ_€ÁTÁ5e•2ÊÙQY²„²$a•mwlÿL*u`Ú¯‡Êé²9tötF)[°™9MÏms±M¾e‹“cm:¿÷1Ÿý•‘}›àVR‚¥¬ê² ²Êò1<Õ@5ÎniÖuûw$’–Л¶¾VŒ†BŠ ¦ ²£ë1æPCRFЫÛH6^Ë$'Û€+×6óÙŒ4¦‰"bÌ)Ö|Ñ÷B£-c·Ì÷·Z°HV$¥¥ÙÈã›SÌf,pÅRê3¹ûÑû‹½ˆ¢È‰uóÔ¨ôò¡´’K©•_´¯’‹ÉÔcù1t>:Ž[?­æ29ÕâäU‰Ê>e%Ü%ŒEÅ”$ŸàëA=Ðm©Ãá¨YtqT?c¯ed«Œ‚î[ÏÏ{<ùNãv1køK8LȲü¤Ò‘¹£F…ºT÷È‚ #Ùm“ÉØèSìßñ>õ1’~k;‡Ð¾kºtíB—® Á¢Ý7±:¨ÿ©o-›%$ qÁ'x'¢cˆŽEwñíìžTË7`–þÉu BúF‹àõ±ÄFǾú=j›m•^(ÛÏ 4 ë°8b"÷sòØPº¶µGOþ²Ëf;ì°Ã;ì°Ã;ì°ã?‡æ¼òÞY¶®=KJR<Ïœæ|n;¸²„);•ÔÌòs’Л]¨«S ¹r£‡'£¹çႇ{%„¬=Œiÿ=šyÓÐYôèõz2Šþ œl~À¾¯±=¾2º7Z#èãI+ªI»~z޺ͽG9\?FB#_ª+mÛ$sA* É9гHÊÍ÷&4g×îûä'_æòå4ò4 ©ÁUÎT¦Rõ¸ãC‡A¸sù÷²¹z0Œ¤ÆµðQ(0ß]Ëûý6PkÕ,š¥%¢ON#??‹ô”x’¼Bh¡Œ7Ø8u!Ç…zö¨‹YOj‘DöñU¬¼ÊíøTR3r"¬ Íë<Q”“FrZ6y)$Õø4sÁ©ÒYÎ])"!<ŽÛ*ܽ¼ŒáÌì=ŠßÎfRÆWZŠ2IH΢¤8‹äÌ4 ʧ¥X‹)11™%²ó™;€%Sy©™ç’šð\ÏÆ嬿·=z’“â¹uŒsE4u3òàÈJ>±‰G¸ÐÔ·ª"ç.HŒ:Ã-•× z ˆçε;ÜÏáÚÁpôjR•¶ôx'а½)$'<â\Ør[6§ŽG]„DYHÊ¥+\MMA®B‡ö%J.qõV÷Gó ª3xuøeΜ~@‚>•³‡"HkUÏC’Ÿê³þ9ægeûç Bhݪ2Un¯eCt>¹Iç9!‘lÇæÔ)‰`ÿ¡#½”MÞƒc„ßòÄÃË'©”ädRÒ.³ê«uxô Á ÃíMŒ~åG®—HŒ™èSqfÿ.¢¯ëñkÛ@öqvŸ¬ÅKÍÛâã 87!¸x+›÷ßåab2IçöžHóZmΩ#9¤Þ»Ë…K716õaFø? a¸¾ŠߨAÝ•Óiœ’@Rz1Ú*5¨Ý<†è¸"’Ï]äza!Zß*()!3=•Ô¬Ûl_°©ECj:9ü ä–¦|Ò“õ$$ëÑëILL£ÀÚŠá3ªðû‡_s$3•Ô$=·/]áÀæ½äûxá~W$â~&éé<ˆ¾À-…„{ÕÊ(ž›ç2‹¥¿® #˜óýn®ß¼>9…”sIèÒœºe£)Ëå‚ Ù\ŽÞÎ’5‘dfeqï·µ¸Ö®†û_nˆ„± ›ÔäT²/ßæ‘±ˆB©9oLjÄù£û‰¸z›„¤RÓ²`ܪöí€OõÚ4IŽâصtR““ˆ¿u‡‹· 5ñÇÛl¢¤¤#Õè;­=E‘{Y±9½ù_È\•%L9©¤f䟛JrQ& °š0¤g[CFJ"é¥P¤’|2’³1çœ@ޱ݆Epê`&©îs^¼La“Ö4®éƒG0§@ǹk&¬N5ñPþ—M¢$!©©ì¥ÆáÚvvŸ+"E<Ïe„Ç[ƒáPHÖ…+\LÌ"GŸI‘Ùú¸‚í ²lË&Bƒsƒ&øyYÉÉÎåQè).æäbP»âþð—âI/qÆ»mkªå¥ pƒ¸°((U(e[FÔߓլÀÝËj•ny4e‡F€uµw¹qò0'¯gšœ@|zÍX%ÊeBÉX‹³IJIBÿð!gÏ]ÅôVWêæ’Br3 ± aÌ/ ?¯ +EY¹ÌHÿ+®UÎ Îß–¸ò"ˆ»fEéR÷?ïç|’Ô¶+% ¯üÆè!{¨÷˧4JN@ŸžIfüÎî_ÃÞ›Yää\ îŒÆzTy†“Œùd%gQ\œCrB<9%/Ñmx§dØôCìeŠZÔÃ,ÎlšÏ”Vq­”ø’­F iäæç’‘œH–rŽýÌêè›ÜOL&9u§Â»Ó¼.om`ä+Ÿp,(IåaØoü|:›<ý9.\N"ÓÒWú[ЧGw.‰¼û'ˆ¸WƒªÕ*ád8ÌÄW¾!ÜPFk™É¾¸–=—Fòa‡R;Á™u‹Y²=‡6÷Á=)žÔ$^ŸÌ™Ã‘d´n@uuK‚ú‡s:4—ÔÛw¸xí6%õÛѶ¡+®Oùaàæåþa çšœEqI6I)ÉÊ/2 Š-o“|››ç®ñ@Ó‰€| Îìáà¥òãO}S…CåjåÊÆÅFÌfEÖVôx7šð½I$'<âìi‘¼Võp¦€;‡eÚ‡Ûˆ/[¥V3Åéääæ’™’@ŽÂV–ã>|™›3ȸº—S©­hXS‰ùNE²@6aìÝÿ€‚ä \¼œA[‡j* ë;OÔ!°Ukª¹U°XŠM˜-FÑþçÔ˜mw/}î`¹$‹¤dÛÞE¯×“š”‰A²Àe>@ÙÏX,˜=üh"œ!òP8gœ”@Bº¬V듃,ªÀ }tн×2ÉHL"%³³³;U*)·²í\éÉ $¤æ#±>Ó.ÉjÆêÓ™þ^›X·?‘¤$=ú¤$òL q÷¤Ië×ÐïÞˆrÌk¶Ã‚ÖG˜7ƒ‹óHªØ7¬ÿÁNG,Ã{Ý[¼9t‘¹ÅàìEÕ6ñÈÉ@ãqâ9’´N¸—ÿè6×óóI:{†+ú$ò|êÒÒp‹³ços79‹;áá\7š‘Kñ‚š»—9Ÿ—MAI )“¼2SõdZ!÷DEû*Ó5Œ´:+¿ Ij"úÔ 2qëôZVEd“Ÿ˹+¹Ô~x+é.û¾Iß)7é³.ñëžh+ðMPß½ÄùÜt |ðmâ‹6/ý9‘³7n“©R¡°ÈNOBŸËí£Q<ìÑŠÖ•œPY,H5Ò6s5+öèIN²ÉMr¶ -Ua©(ADxá1ˆâ¦l„²Ø„ÅÆ·Ú2ìWç(|•3Î÷/s>3…|÷*øß_ɯ§m~VbrÙEHÂ]]jÇeÙv OÛ¶øêÑÇß'öDwJ²ôøPïS²]æH¶LdÉZv¾=‹Ü9óIûôMZ=v—ŠÉIÎÅXMEä¤`AÆTT@^¶+v¼*ûØa‡vØa‡vØa‡ÿI4±›7g æƒÑàäȧ[ÆQ “‰Ø²„ŸŽæàª eîü &ÏIཅ,Ü—»R¦üÜ™úP“„¦¹–ÈqR²mf›Yü^_$åR¢)&%þóFíÃ\bÀ«ûæ:‡Öÿ˜Í¼ß‘%õbþþ Ô*[Ø+íäwLXý7'ørB4Cæ­fÀ[Ÿ¡ÿt$ý~®B»¾#øxLkÔÖPXYMÓš¶³¾}çÓtÚç|ùûCòä¾,:¤C!@êÝD”u¬ìÿx;$Me_: K«Œ[xèF¢¬ù˜+™H8·•9£6a.1PµÿW,íZ—[ßÏã@j!’ÙJßÅGè]õùàÜùß3ooîZsf'0~ÎÇ'.ã‡)½ùž@Æ,L+%ݨݼ>®šÇÉYaß1î×»¸8Á—ãÃôõf†Õ+ûv5.•<©*;xû×¥v¥JhKŸ5]ÙÌôe'É4XXüÉ~:Ï:ÊÔíß0kØX>\«ÀÑÕ6Ïþ¡÷ð! ¡jÀ©~Ú=LæÇ©¯²„v|0gíªƒ¦ú\šOŸÁÜ-óÉ–ú°ð` J ùÈÄöÉÈ5Z<ª¾ÅâÉ~€™—z !úÃ>¼¥®O¡cy«…FÐæÜb~™ØûRg>[ÝgP ^Ný÷>fò¦<¬ÊA,ßÓüß’ãgûÜeæ>yV¶GkÌøÍIã‹)Ù«ô¤ÅËo3y\œÐã”°œuËf‰d¡ã¤åtlà…êáv¾˜¹´¬BšMÚÆÂž• …c54s´eås¹wt c—ÇP½MOF~<›¾®ŸˆÅÚ¡mø¢dj1dÓBôï~ÅäEXhÆÔói†„åýoˆìóo««Ð°õû|õj{]gÜÓ#ø—°sÂ~—d´^uè÷Ù<ú·ïÎü ½X£jÆÀ±ãy­©¤G²rÑ*N]H àÝ¥ü0´9N§ö Žã ÖÏ=F‰ 2Vs£Vý@ÿW²…é¼=üTjÉ¥ÍG,`~Sg|ßxÀ×£†ò“ƒ“G{ÆOKz®/˜çý|ÜÞ鯦wíÌ0‰|óÅF ¬ [›ðñïïãUÄuôÀ×·4¯ô" ¦Q›æ2t¿…¹ߟĠ`ß¿áD!wޝççe¸¥¬Å€)ÓéVß%£Ø8f%£}ί¹&$³Äk+Ž0º€ãפ0ùí·ÙªUƒ¶ -Lg^¯ªœ M¢Šàd#òÛñù¬tfÍùíÞÕÙ#·?A\JEiDoYÌ’#Ù¸©BùfQ c§Ž¡uÖ)~üi#ç”pîÒn®à“ Q]ÁÄeç‰yãŽÐó냌õѯã]eeü¼Ëü)Õ€jôéõ&+¿y¾ >tû`c6yš”øCÊɃjÞÞø×nËðq9ÌžÞ‡ŠFôýp<½jùã4º'Ñß­döøUhMéè+å…⿘ ¬Æ¹’'UÔHøÑ3PÍ¿|ÉÆŸ A÷.´ôõÇKeçÎŒ¿©“Æ ŽÚȨÖ#™úÞ´ÎŽ4~y=k¸¢uv¤ZUþ.^áî‰{íWi˜éÁËõ•€+mGN!gùR~›ò6J‰bŸ×Yü™>µÊB?úެKì/(ißž.pù_p¬gb§œþHg?㓨Ý}è9õ{Þ~ùuæ}Їaê¼:|<ÃÚØXUËÝCÌ_¶“;i&®Ï=ÀõIø|èvÞYðS&äa¡Ÿìü†F–b.^ŒÀ½ë»¶EÕóRÈ+,™Ô‹uª&¼öáx^oêˆõv:Ô¸±ÿ>Ý+a)1à7b%›¢í¼j¶¼72èÁ¯ˆí a“$¡­ÖA#'ÑÄšÄ/“Þbö›Ä¤wƒ©V®˜1€áì¯L\v3óǦçÜÃŒûp)ѽ†ó®ÂZï²`Š/H9¸Vó# ^e[™YÀúà‹ÞÌåø.|·Ÿ›Åëù²I®ÌùGrŠ‘¬0`ùAzzJ”äW£aã<•€ƒ;'n|9˜7” :eüà†ÔqnÈЄ%,þö]¾O÷çíæÓµ– yP¯¡•J‚,§¾'†Æ³7à_¦ K(0äk¹Í£†b6•àöÒ>ûl # ¿eÁ¼wXY‡÷~\H{OP]ÎÅá“™¸±´¯óóŽ&€ÄKoÿƒèþƒ®®NóàøG—J@gÚÕJxÊ ò>ÿ7/úGÆý|µFfî¸Pú~³‡ÆüJâÄ÷x}“;u[öcêÂÔ'—äßø~ZVH>ôœô)}»Ô}Z•nÔ¬) ±JÔýàWb_͇kU¸{çÇÕuA.ÄÑÓ‡º \)¥À‘“ãX³b5§o£÷Þ5½qÕªJï…v÷¦ŒÊìAYß5|<£×ɨµN üzo7P¡ölD ®„võËú_ê(=ÏÓs€½¾;F/®ñëôp/èËÀš}ùhð6*ûxRï¥^Wo@È«õH]2©ýWQ'¤Õk´¦ºµ!º¹½øì³™¼*“Æý^£GM/´Z5mÄ–CÝ~ oF%Ò듟ßÎñi¿"!‚+Ö{·.änÉ f·mÈÍoæq íé}Ub\" #»' e‹UFãåOŸ¾ä­Ìù¯³GhÔûC& jŽ+άº„Ïä%¯íýÚV‰S@^﹚…ãRyù½ñè“5è7j4À׿-¼*aȽ̖ÕûÙ½ÊHIÍ¡,]Ô7u >¾¹(ÍøpÇ7Ì2–Qk…À ¬˜Þ¹âlýdžщ*Õ=pqT‚ÒŸf4¾5­h¡jF¾·†#'4y%Ÿ-Á„‘oò®FÕ±6]ö'Ч Þ%ŽûJ7jøZp$ðèÉÝ›LµA¥¢Iï×éãë†ÆÁJêȶ—wUª€³ T÷1ã¬)U„Z_´¡z`Ù¾^ÂTt‰ß§Ü¤ÇÖ÷ñ¸î_ è³´…§Opæ^e^™ÜûUÁüáJü?G~~2‚@ŽwU<ÒSŸL0ººRéËoH ì‰ Ëö·Ã;ì°Ã;ì°ãÿW0 ì9Ê[ƒû¯çþÃGtíܣł׮5¨W¯ƒá±­ð©óꙤS‚€€ßÿÇÞyFQ¼ûÙ½–Þ{!!@BfÞ!RTl`ï T,4A.-té-Ô@ ’ÞÛ%w¹»Ýß ½Š¿ï>ÿÝÝÞììÌ;ó¾ó¾3ïÖ àá&ž”‘«tùŽK™+¿˜Ì&²²²ðõñ½ëõU­çíʹ°ê vפ눂mªv7cÊ!–ý¸)?ÒÛ½ºêY]íýw®“«°´¼¹¼;•_y¨j÷.»¼¼œœœ|||îKvýîtÍ{¢jíy} yyy¨ÕjªUþ$ì]ÃÅ%ÅFÜ\Ý`©@ân©Ñª6&F#yyyx{{ßç V•+ÿ~)’$‘––†ŸŸßß(¡*cúÁç…¤ä$jÜg/=ø8|çÔëõ”––âîîþÐfkCa™¹…lb6ò~V_ o…»íƒ'(NOOÇÕÕ­V[¥ž½Úb²‚X c§êý #sùòejø×¸k™÷ßÃ7ýóú÷(ôïÉtukuî)ß)))x{{£R©Úx“!µo>ƒñµ <î§Ëî,;Û^ïEìèu<ÛXWE=q«qÿ¶ ÷i÷V¯Î¿?ù­êïÔäößÝ{®½×=«³?ª{ýq½Z* fÇRfÿ©&â…öØ e\X³‘ÇÆ |jAêbŒßj]\>K–Á•±K'°Ë{(Óºùþû÷OJNÂÛÛ‡üü<4j æ–¿ ‚€,˯GÀ²ñÆsòo|‹$%=Ò1Vå°‚‚‚‚‚‚‚‚‚‚Â]yøËÛªÞA¸ç/‚ ü­ëyàû棷4¡^ÚøÛTõn&JL2¶ö£iá^õ¬®öþ;× pß;•_y¨j÷.[…’Á‡]¿;]#TËøº©‡á¡È߃ž\½}½îo¦«M¾¯¼+²:GP=uªòµP-}\½ˆmV¿V/¥ñÛYºl+ç³EL¦–¼ô}3Ül«ñí´Âh_A¬6ÝPýZLxÀîüñtóþ]ù¾?™­¢ž²0«Ÿ§‹ÿ]í~ˆ§Ð<‰î4÷¡'nµ1ª×6ùçu¾P­ux0{ðï~woY¼×=«³?â GÔáìâŠcÑfæÍ9ƒ`­AN…CpRÿScü¦k$‰¸Í_ðÝ-jÁß¼ó¸Oµ´ƒIì]™Ø%äNã?<¿ýmKö?»:þ{µKJ]o IDATþv…‡ÞÕw‡‹E2SžºMð÷®úøÿ›s®ÕŽVPPPPPPPPPP¸ËÚN D_òŸ«¶ÅlA–dJKK‘ä‡÷–>YÖÑ`hDÙByI1%BÕ¥ÖÞÍô¦@yq1Å¢ ,]Ìf3’,=tÙyä‡>å¦rD‹ ½^Ou½©³:êe00›ÌT½L&3f‹ù‘“YªxÏÚ£Ö^WxTëuO940›žʲŒUÃѼ5}l¥n)/+C_ :YD,’…ÒR=åêÿžkðÊ;5Ù¹¢Å5»I â$SII ¢J|Èw aÄ× )/)¦X¨ZvYöeÐŒZXô¥ü÷,O…ÿkV’Cè0>Yq÷’ňA_L1ÿŽMßhÂo,~æªUBiu­/{šù¡¼˜âAY°(*7™ÈËÍ}äê%#“š’úHÊtR²þ?;ÖJËÊÐëÿ»õO/OÇÅÅZóŸ¬òåÒG²íõzý#i7¥”¥àêæŠ(ˆ((((((ü_%)9éÿÔó*Z_AAAAAAAAAAá®ü×RsÿBúÕk%%ÁÕ#$;Ii„+rY™fUß³½*3Þ¿òC—û‘«ê}Æ¿[éz¢ª—&ÿCr)WCmå‡Þ*Õ×Ïa&?BeÉ÷žÇ©¾­ &Š.båºsÿCo€,9ßò3¯¼4…ïV ¥L¨º|ËedÄäÏ­ñ”ÿÛÏ^xœ%K¢(ú?d]ݯv—«¤×ËÉO:ÊêuçnÓÇCFô§ùmáa «bÓ=Àüpï_tÞ–ª½wåœ×ª_K÷lIùémÙg73ë·yç³OxwÆç¼ýöü¾ë<ù²ðî© èOóû’#äþƒ²#ßÇ/U-M°¤r`ÇNÄç]7†„²h–ÿ~˜,“å>%Y@0İä§/xíÕ×Y­‡’h–-=BN5lx• ñõ´yû­7YsAº™¤6®9Èż2”m¸Õ’ZAAAAAAAAAAáŸ'u“§mG´¶!täû<ÕÜöêOEiç8­¦yϺè('vÓï,ÿs/ÉrsÆ¿;ŠÖþ¨ÈaçÇ3ؘS„Imøk|Õ/àÎ ˆÙ¶–¥«“#ËxtÅ„ñ·-åð³Xs‰B¹3/ÏŠ ŽJ¼ÎU™Ìæù´²%IpËHÙó+þz çúí¡+o;¿ÛÜ¿$ý ‹?˜G”ª&mûF0¶_]Ô—÷³`Å:Ž\,C£•Z‹Ôh$_°á÷i¿r¼¨ ‹*„ Ÿ=G#Œd‰cé‹_±OåJ`ƒ!{‚ã‰:ê¸]bÕ’}d 2&£3Æ=Åà¶5±¹ZgÅp2J¤eï`tWÇ[§¶Ec]§6µk:#^ý>‹­óhúdkܸIJç¿ä/•=¾ƒ™òRì+ûñÔ†E|¿ú®Íú1zø B=þÅs²™ÒÌsìÚëEøÀúèþÊ»œ´C»Ø³- ¿V]h艭ú6cQœù¿—Òx¨nÓÆ’Üähö­C·žµÑþ›¤¿@d¤D×ÑÍnÐ{ÿ-ÊH‰ÚÊ¿nç"2fƒ-"Æ1¤k0Nw˜°äÛÚ$—°ô“œPÒ¡ÿHFöB{u¬•pdý9Ü[…ài€€»·¦m¢Ôl¡öð©Ln_91ЏtìO—¦{Ú^~þp§Tuè:l$C»ÕB+§²kþR¶O¤Øb¡æ°·x©KM´•JѱßÙ˜>˜!yøöƒßˆE…µ³?Ÿ~ƒ~þ&2¢·³ü»5œW« ¨3OŒLKímôt6ÛæÇÓx|+ÜEHbù Ÿ³[´Ã'`/½Úû;êø2NFFc[¿AþNˆËö4‘Ÿ´Ÿ߬"Zs¹5!]3<¢ Þæ ,ûi»O$ãÙóy&÷o‚«õ”µë>\u µJ@@@t©IýîfŠïgG’&Џ†õ౑ƒià$€ñ‹~\ÁÁèËxõšÂ”¾a8Yå±å½ÏØRl@Ð…óÖ—ýðDÂl<Ï’)39 v'¸ÉP&=Õ›;Úa·¶¤³yn"­'´áŠú)?³ˆfíÇÞ¯G½Bÿ:eÄî\É¢åûɼèÕ‡¿V³xËa.[Z0qÚZ¸Z#ÏÖ÷?gSa)hÃykz?¼nšÃrRâ8“jG'Zb+–sqã.cbÉïXç;ÚEǘ÷å Î*]² §F<öÎxY)ËÃ{bˆcÛ¶RÚô(eÑRñ/uÂ6}¿m³a䨦·±7®È޳Eô  n7TÜ~]%åäû©¿‹ˆÎÁ‹ÞePMÙ±»ùã‡õÄÈ2ær;B{`xÿ¦¸ÿ-B¢,íËvØ1¦éím"sgŽEã¤ö&´¶Ë5{ØÀŽmy4ÔwªÊö§@1§æ®%VïE‹°""ÛM«gJغÍ@‹áÍq+<È/«"&´¾/ý'Í_Óþ ; -êi¨å$Téß‚)ŽukR©S7—} ql\š.ÖŠœW3Ê `…–KkyöÅÃÔ1”ÁýûÑÊ¿Âa'é38°p2/Í"2¹P·†ƒÉéÔìõ Cê%1oã^’J€Äõtí@Ï~C2¬ Ž[aOî]îYLF¡‡¶3n|g¢v³{o:Ïä€ìK»ã ÷ܡËNbªÜ±õÆ<ñ¿Oà `)&qËb>^RD§'Ç0¨SKœ¯-t3âs¨Ó¼–£?pP¤ãÀ1ôtÛÅ{¿ŸªØá|a;‚†1|hº·qàä§?m®øoI®µVG£€rÒ‹$<;>ÎØ': Þ¾‘í‡3’6sØ¡û eèˆî¸îœÏ®¬w‘K†Nüþ*Ã&}ÉúK…ˆ€!i‡ÎŸÅ½ÇDF„å²jûn¢³Œ·m¢ìŸóÄ„WùáèeʯûÞRœÎ_¿½ÆâCŤÇeaºcÅxfï¿6‰ÖD‘e–(bß·Ë0¶ÌÐýèê~Ž~ˆºå”[iÊ>EÁ©Û$"—°a×vNåAÑÑéì§í%Üã/þ·ô$2¿þUNcØ€p«xG&Ò‰Ú>Ÿ’6Õу„è?Y“Rü dR§Ï3 ©ÏœõÈ0BÆŽ·9äܾƒFÐÖfo¬‰»/—ÇÏl©èã›d»u 5åù±ìYy÷þO0¶WC,ÉûùuG`$ùH:²s(=F gøð^4 Ôp|é›ìµiIøÀFÔ>Ík?ì»åTiÎ "—,Dßîi&ô$ïÜVæÍ@ö¨MËNý:dCG>Aû$æ$9kõ»Òoð0†^bê·û(@æìêHh8ž‘½›£Ë\ÅŒC¹÷9¨e¤ø]$ÔŽ bX:…i‰úâW.È@A›g?ËØÿ-`f)j èÔ/ì/RӨߓô8ÉôUG(4X|n)OåÈYAm{0pÈ`Ìà!©m/’¿&ϼv’†£#6d½Z5Ãæèjöe%}.‹«w7ç{&–ÄÌŠ“üå7õsu ÎÖ÷‘о†1txç¶Ç"z†âó>ë3c!'wÌ!Æ)á\$ë—'4pcF·ÇÎ\BfBn5MÈŽ5›Þ1+‹ô<éò:Þü)V=4d(ÃG†û¿‰Ì:T€JŸÀþI\E$#yiñœ>•@RF6Å6 é÷Ø(Æ ªÍå5›Ø•†± µ‘ôYZ4…ˆg²%©¨rư$íá§O'2yöf.””_­{É៘ò |±ã<%•)έz‹˜ÑDômKþJ>ߟärü÷ßøe—@·'Ç0 ](^vÀ©[QV«ºã¸zôN„•r1£Kgž{lá|»W ™9œ *ñŽÞHAÔ ½‡ö½æ¢*·™ F§ÓaõÈ·ýÝ0’›FQ©?FE0|xoZÖõÀún{³M2m>'r29³{em&2ªƒ ±§ÿdml `ŽßÂ7ïOäµ…;I,­˜ …ŒH^yn½ú2hÐ`:^sÜ—eJò 4 ÑpjÇ2L&ñX[;NEmbs’2O§ò¡a‘<>¾%Åó[xÕÆH>›NÛþM°º°“„º#ylD?Ú79úåŠsÉM»„©õÆ<>ˆ¦rÑG£È–nœÛôG楟ç³m1WvèùÕop®Þ("úu½p%ŸîɼE†@À’¸‹Ù?ÃäŸ"‰/®¬Õ¥¿c{š)ÊH'5Þ‘Ö£#1¬í›ÖÁ[%Ÿ¬ä´\›>¢Wc_ln³óÁ®v'†ÌàÁCèÞϼµœM,¤8;s‹1ŒÛÿœ³ì^y”2ý~ýh5±Võè3ê1Âü±µ‚”­opؽý ¥•v=o¬¿²™Ók>%¹ñ<†œºšÙ'Ê ëà-vØñ Ã-z¢pÿ·Lš4…{/R ›Ð[ÌsÓ.Òjüh÷ìB¨·Dþ¹C;‘EÝ¡OðTW7¢vïd{LþÕ“~ÙÛ?bξXNì¹D " ë_åx­! Лº¦•üo[êmõ””v”ߦOdâ׫9]Pމ³‹W’æÑˆCF1:4“/go#C™,ÎìÐ1Œ¡ƒлGS¼m¬ñkΈ¡ƒ2|4ÝC­0ça×ïóØq±Œà>Oòtë~ZIŒRv¼É!×Îô4ŒÖVëycm­³ÖßFÝÖ¹};ö¥wûxÙÈwÏ.Tv‰½gmh?¸ÒF4€>½Zâw×à¯ôˆœŠ”ð4lK>ßI~ïsCÉØZ©À®}z‡` å©ʺº‰J¾Yv.dþçy~æzÎUæ#HÞÈ¡[ÖU@Üâk bØ:7±&êó…Ä"Rœ’FfªíFE0bh_Ú5ôÇI,çÔïˆJ-¸·š1¦r4*‡;v³  R«±²¶¿qó… B§Sß!€ww=Uñ[‡¢$ê÷LĸO™ú|;|ítètjA9ƒ‡2îë„hEùÙvÈŽ^O`èÁ4ö¬¢F×xѬMAÞŽèÔ""‚¬|('€þQâvì Þ«Óx¡ý ‹HÁÊ…ú3¬èi’€ Ñ;r1ëZ1``KÜóòØ1#ƒÌœb=z1~œ¾¶…ãoÀèt—›ÚÒ¼g šÛ9a/ZÐûŠhé[~ßñéÙ2]½8V|GÖ°Fø©À©Ñ&–jøy§€˜ õ$_N¥Ç›S¯Ü­\| pvŸ·A™D-Táÿt'z6öFS÷˾Š#kD(^!cy«‘?¾V`*ö$cÍ/$é¡¡£‘¬Ô ²ÏºÑpT(¡~uhoo -‘·È™’l º3fŒ'^¶—8ùú>Œ7mÕ´¶µÂèâ}œ,&.N§°¤}Ÿi‰_Q)‡¾K 3» \/ðó››ñ|j"½CœÐ¡ƒy¶Ldæ¦ëï¦b¢·ýÂ!—ÇÕ9—ØYìž»’xÇ Öw45;1vp‰¿ZQáÎ/%áX 5žïBg (•…%PJ³ëN¹•réx*9ÙMé=¡%%&Žÿp¼ÜSlÿMÀol'z6óCÇòéÉ¥#ò/ÚoèLgLC» ìÙx‚ÔºVDï !|nKÂL®ä/ÙJfÜaö'£rjMxÿ–¸æf²åëlò g9ò£¡ßv§»|¢YñC EƒëTyçûÏ,#ÞV¶%ò/žb¦ÉÛmhE$ÃvÆ¥C·dÙ•àÖ=Юfåõ™»Âž°Y]éYÃ:—±ªãQŸoO£«w.§8;ÄSõ鵸5 ˜µ†ã{ã(hÑÍ=i@2snŰ7ƒÈ¾÷1½èî4Îà»g(²Ø³{Q]ÿlKŠpS™0©µë}8_Ô ÆóVS?|tPšåLöö$—B°½-º OA jID¤˜#kK±kÑ›ðÞaØ7½Ìº/“ÉØ'+ë ɲc]:öëOÈ G™ ˆ\{œÚ“¾â™öWOÀRýˆ:wQ}]JPkÔ¨DPßÐÏÕE6Ñ{µ4y£/]ZR;ЮŒÚ”ÿýx˜öc³Ø²½«› l]¾¼!}ÚàD„!ŠÕuTHÀÞ+ˆ†hpì$v¶‰lžµ «°± é×7 -u_.âÕ‡ÈyQƒN«ºá¿¨R¡V‹ u¦Fh=Û„"P‹ìÈe”dæcÄçoŸn¬œ¨×~#Š“(_snŠžaôëNl^ªëÞcjU·Ï )åã¥Zdé4ÛçÖ Ëæöt¦ í%¾Þ—€>Ä…œ2ý_{…pï›çïÑ!‘vhÓ>[I²XÞãŸfüÀ`¬Icó·ß³|ïJEBí!L}k0Áº¡Þe¤ù“¥³—¥³aOê1Fwp!-f?Ï`6×`ôÔ÷ÖÈŽC³#!>—‰ÃWÐð‰xNþŽçÆ¡58ùvåõ/Ç¢«)Ä*—‘µ™Åk÷Iw<п}?çRÜè9>€C?ǯ›O’kñgøÔœÄ‹Ì[}ÏÏ›[óÆW® ÊdÅ#Ø£ÁÙ»/}û 騊É’#56e@ëVëDµpƒMâEÖú8WËúôœÓ’P“Ù‹¶‘u. êÖEåÓœaÒ‰Ï7^ÕyIÛvPã™—y©›÷öÊJã‰ÝãŒwû$Îm@ø¬–Ô7Ú‘º`7Y1ÉÞž!ìq´Ó¡¡9…K^!UoÄ"ƒFHàÐjNÔ ê¯é}º#9»×’hMÇ6#ð³wà íÑŽg±Ü¤¼tuzñô=Ÿ,ÑP‘Ûå Û~ö£ó–tÆHM]ÓöÆAG{.l]Å–hGúO@  DÏÆ èÛ“Øü"Ä+=·žŒç‡ßM¶§ùò¦K·/'ÓÒdlp¯Ùš~­ÚãXY—ü;BÂ7¤?Áš;÷‹3ºùWꨋ[ùkA†o„ŸÑ)ÝqQKzeeqâPê&-xrH8WŸ=‰ÈÙ4Ûƒnn*$¯³¬ü1šœðö-«E·µmhK0vd±&ê(gó2ÈÍnJ¯«vØ92S ÀËëÆz…ôcÒr>û£bþ—Íp!ê8mÞþ†§Â®Œñi™ËîôìÙ†Z¸5m%YùÈ!Χæò]B0Cû‘ž* VcÓž´[ß….:Èw<ÏöÕ1”÷ð½E†×`º÷êÃùütT€‘äSIØy’Þ\ m.ß=‘D‰,ã…ˆNB·v©}}!Ámé PÂÑØSÔõ°Í7bØŠ^ýZ⌎]C÷=þûæ8Ðxvwºyh½ÏòÇœs ºñ´¸,#™MkL”›,HW¦ Ëy~ÿdbøHú·òÃF¸fch¼šÑ·s®?ç˜wa#Ÿýquîv’½ú2°}ŽÏû‚œÖ/ñü¸^èYýÙ÷¬=–@¡9ñ3§1Øåß,TÓÔq&s"»ñþïh³w&Î&V­E´ñ¡qßI¼3¬±[çòÕwÛȽèüäžígÍæ•YèJVyäÉÙÐ÷…<ÑÔµx™%c^gIF£³¦ç”©¸mûõ˜o ÷1’zb'»7éiõzwr—/ç¤ÆÀQmðn§ß œ]ãǘŒûtv–2ήx‡·W\F«¶¡f“!¼òV²ví"ÞR=k£1]`å²x|Zu¤mÝ¿ó‘ñ9˜-ù$Ù=ŽPÃÆ0¦n9}ó3'ky|Òfº=ý9šÝx‚Tð¡wïÞ\ÈËFuÅ®péÊãûâcwݺÊQF¬?Ž·ûãc†^xA±vjËë³^Ä'i?-O@u³l·y•W#pòàyjÕ-AUhmôìúöÒÛÁð&öhÄ8–ÿ§¯ß'ÜUñ¡Ü/JXAAAAAAAAAAáäÛVàOõv j[WÆ|³€AÞ2¨´8…Ò¸vÙI` ¬T‹ZcSxq $$õFqW¥sZƒ£›?>I¡5îcd ~ø`ÆXL¬] úÙXãÜ™$[d@¾Ø+U¥{׳¡ [I+7S,Ȫ¶Æ>c ¯ ]„¨U#H&LužfÞÛZ6 dÄtÊ·òõÇ.:ê®ï“TÝÐÏÕu&0Œö}>æÓÑ]™Öõs¶¿Ü?ÿ ‡¥S£ tX5Œ¯uÃ÷¹wh†|Ê3ß#üéÓ¼úÊŒq¸ÁµZ-˜LXP¡Î‰ã8!ti]竎E ^=;ôé.Mö¿ã=eDTmÅïÆDNhÍÔp°«R hA¥Å)0”ÆuI‹•®½'ÝÊ ßwb ¿ IDATÐ\N¡’®ðQ;РiÎËŠ+ëPDq¾g¥\‹ØyQóB4Çsˆœ»œ“k÷ð­±”z_äŧúSë_Ï», R¹œ´–Õ?ì£á+syÑÉâ3[‰¼lKí_³77ŒÑïL"„íLý¹˜R£™#lOp3ÚLÃÞ°ˆÖøX©¡[8#eöþà…'iÔ‰æ}»áºQ¯÷¤¶Ÿ+®âóÌh"£5•’vd5_®>LJ~Õä’¬±q÷Ç]øŽÃYÝéï˜Ê‰´‹$x8°l7ÚN¼9o2ž9˜³æ qvñþ@Êèyûƒ j«ÿ‚èht>åÓáÅœ]7‹g5aÑäÿnjêªi$ÔêD¶ýþ‹#¨Ùm"oLB½»mŒ»Á&Ià¬m "œõì-q«Ô§.øŠv¦d’K]\mܨV?‡ ’¤ðצÓl)šÈ®oA5DÌXÅ㵋}üq¶6jÅL‹žØR׊y@犟dEbJ&ùB-Üì®Tæ,Gh@k4·“Å:©®ê¥)ÄÛ7g€hp£ìØ>›¶ ]ïxöé67¦èÔN5hдÎË ¯ÎEùWôž€­OµÎ^"…0Š’/pê¤ä+båŒ_h}œN#^ Ùûáw‹í)a(JâøÑS4¬<(,ŠÙœ<ö «úý€oX¦¼=› gˆ\¸%Kæ¡„Ž¯Ícr·ìî ô¤r=Ç6ͤ¸ïÏtЊ uÇ€ ’Êt¨½u”Äïgó²ƒü¶h6²¡”.o-åõ®zŠò=¨cmFB…X'”ÐÓÇHÀ™²Â+s£g_<÷ÅsÑÏÑdwv C^!%xaw½íDã¦A8üQñæòclZt€í‡°N*Ç©N žùðCÚwïF~Î"¾èÚƒK:ZŸDÿvHg~efl£Fö žÝ´ê"ì„ ±GN¢nÔï¦Ì9jÄs³:àÔÈÈ*kÜ[?É›]/“p$“¡ï¿†ÏÆ¥ÌßhÅKON`óÎvž÷¢æ®häмÿt.Ù»øú·]´WJÜêïÑ¿:‹©¸ák9ÎOOOG;ö¾ªŸMìñ½l»˜@Ì©TŽðá¹ß~% ÷ «·žçèa’ö,$9p½ô"~qs™ð{$Ýšv#ùӉĆÍÇ-D\<ìÉðÓòÉþt‡‹$$Æsȳ£µEœŒ‰æœÚýêzàzûI@ ñ÷ÇyùwG¼õ?>Šp% Ð,Q+ü5¾ë$b­OãðӳXç„wÃúºE]Û@fç‹ÏÍë*:ÿÊùÆ‚1ÿçí[2P'Q,¤sx×—¬èó5þ­FðâsOÒ¬Ãè5å}ÚägÑ3Cx©þd"ßê|ÃFJQåN«}¨«w`ò;½ñ³wÇ.ô¾ï«Æ.ç4K£âØtÜ‚îòE ^]ól4{fðñÂõ„=­AT¨­ÎðëÈã´ñ ÏÈúÄíÌ›¾zo¶¥4nß<óQö6•:ËŒA_‹þ¯>Ïè¡]içD@.t¨™È×ßeRd¬XgÊ’3­÷&à2n 3&/!ìÑïɵX°X®%:D¹Ðbe4c¶\I…fK›çfòt Ë&}ŽiÞÇcwp1Gæ¬&M £sÓzì•c®æjÓb¥7^—®TÆl± Ž)s98zD0uÑ8BòcÙ½|›¦æ ­0žØƒ»O5|}H•+OTxЕ)¿>p$åǧwÐrîwx¥™©ä¥EÓ4üÙëœ&…ìþt9z.4õ¯\Ð[ÓbÂ×üôD K'~‰ôãÇô¾9Õ–dÁl‘¯¦Ú@¸Ò~4åf$S¥šö|°&µ³ ÚëŠÌreˆÌ 'rî–eí`«ŒÁPJ©u÷)Løì úÕØ]ïá°X*ÓÞɈ$¯þ„’'ç3§É%~{å5æš@ÿZþ7­„Š÷ÃÊ•ËS]¹¥¢¢Œ|}¿”)—…Êàò•Õ¬M©£ ^W†JÁhÆ"€úêÕ¬ &L¹¢=®ˆ˜ Eg0T)Eí \}fáVÙŽ]ÃÌÉËù£;™Q üpcK~cæ²mì‰ëGãî´{á4kD´»È/¯fUÝçûsO¦½>”%eH*©¸-S=nðdáS§FÍáý6(qÐP^èNÇq“裺R—–/¶¥É¤fÔpÖpyÙ§d ú˜™íl˜2‰_ö%óX]A¼î„¥J…ºÔxCúïûÁ¤?ÈüWÐêç¯ñ¼®¤«ƒB@nêß²rÊåjH¹j)§ÔµÏ>וP_DIBÖ¹âe\OQÝúÝ®ÿªÔÏÕGÓ¾gÎXUìrú†¿0üK6LCeãJ·ˆö,ó!¢{EtÒ±nž³†'3cYµx<­òšðÉëÏÒ#ȶÚghÁhÄhm‡•xS€QƒµÁˆáNÕX—aÓ7ßñÇ\kpkÁȉO2¢]@ÕOWô€pë÷’t9±\7/ Š×æ@Q­F[VBq™;¾õžbÄŒaÔÎ;Éʣغ!ˆQCëßæýŸÿ ‚åzò²L”ÔÊ„N^8[Úvt#é‘ÛI,¡i—ŽtjZmiM\­.ÿ«éE;gÜ|½q/­E/Ô¤ðç_1?2š2¹˜|·R‡uÄÏÇk+j×o@M’c¿áœJÄ"ipí\Ÿœ±ÚžÅÁÍŸ°@æÊ¡X!ºµö'ó—E,\}ó {´–|r ZR¿k Œ5û3¼[Â<­ jKçæu¨‰—’–lüüÉ“[Üxzð‘ÆžúýŸcFÛq`›Æö¯6±ëϸŽiŽû½þ*åǧwÒrÁ—Ô(Ø~Í¥Bm©Ð§æ+ך-•6“QÕ’ ß¡…½ ªÔÕ|øÜ\šmž@°¡Œ Q[hÛóY4¦õp5­ ˜L×Ê$‹5—àØwõ=íQg·.¥mŸM7¤K-/:À¯o¦õÓ¹¢Ýà­¹¡ì™¿ƒ ¡ßø[ƒÀ7Îó7΂Z¦´ =4{ì5¦Va¯¾iιeò¿í<ŠÙk‡aë`…o£>_Ù ³.Ÿ«¶stÁ2t%5éÑ–6­ðÉÝΗï­foñt¯åÌ­‚-“·³òÏ6<éwÝ÷b7mäÄ 5}§‡‘öÑ9:Œ~‡öƒšà»•io/có&XTòÕ—ÕZ¬*m%áª=(" "ê2#fñV;Lo¾ƒn4K×YÈûòîÂI„gqþ¯-lþbÞ/Ë$ÐkÆo¸ìÊ×'‘2° Eûþ"rY þ4­PNI‰™áSúÓîúôÆ5ºÒ»ØdóU[B26Í"µí|òŽ;ûßÏ‚ýyª…+Ð’×W¯B/›)ÎÙϲ¾àಷi£ÈåÌÞKd—µ¤OÃ`jz÷ iÚFtz “µ@Y~(¯¿d…Z#!][-VeU°%@Ó”) f"Ø;b/ÜØ·RÍ!|4­?^’Œ,ht:Œ3pjØžNÍC9F½Ìz´hïFüi=šÔd.fìdÅs‘­Ñ˜ È-ìH׈FX‡2¸{CêÙ€)e/gœGòæàüqCÎaBi§X¹y-óÌÃZ*&7?ˆÇ_îD‘OgºvjC‹ÔÞ- ÜRi»Y}©ϾBðÕ0å­ÚQï½}Äõm@AÚZt}0Óç©t¬°¿i2H`þˆ)dŒùžŸ¸âäjmC ¢ÊßË'OþD¢N Lô¢õÐ =5¨EáÚXÕhÐfÇsÀÔ†ž}[Ò<رÀ[±´¢[T  ÃÕ×;;‚ý°/Naë×oòþª$<÷à©—Þe@]5˜-XnËw^WYŒ‡™÷â>Zý<7dœÚŽeúÊAX¬s8ôëf,Ý÷änø *}üpôñæ•9=xýÂB†áõu/ÓÁJƒbE휨ëç=.ï]Ë{ï®$Sk¦Ðª OL²Gã^›¡Íhè‹Ú½£O“ZâYÔ ¦%päÒJÎ>µ+@2–aT ùÍööæ­U0 ×M–Uèì°•õØ9{âXÀZ%ØZe^5­dYƒ³¯'66*‚kÕÅêÜ<¶ÆÌã×Qk°–Ê)Ê·%¬c/tíÚº!Ý›{Ý´¡OĶ–'6¶"!õ ¶Õ€~;>9ÓHf3šÖ É sĵaà­²}FV_†¤R!TÊdm·>´ÿì0Ñ“Zcµs1íúí¼E¾ª†VPPPPPPPPPPø± ሟ?~€É%œÖ+~äBÑhntTœtPU8‰MY¤ø¹ÐÚFW™NTÄÖÍ[|hÕì]$Ü+\Âñ_ç³'+€~¯…ãG¦rQ¬HñŒ>•KõüèuåóÍ>RY@¥u§†£+îŽ-hÒô…1ñdÒ cŠN¶®8ªÀdR¡ºR@q*‰!þ ¸º(?ÊWÝ0ï[†ûWx‰ô%%èóü¨ãsåÉ Ù7s6Ç­[2hlGüu×Ú6®^ØàE›æïð×¥éíyw”$r¥“Ý’C†§öÖhÐ`ãåvמ²rcâÂMŒµ¨Ð˜Ó9°mGrB×'„J'·=ƒ(h g?Í«³ýðLJ~šÍŠOg±½Ïtº;^sJR…“¢¢~yd¸ÙRÓÙ­ID+P%i$Õóc (aA]ž–r³H©A³™ÓRå÷R … ³¯+. ™è©ìËò,’ܵQ#˜U¨®œ¸ÉN#1$¿j‘mé&ÙîEëåß°ï/+’²ÇòZG7˜È«êÕ<¼žóMFSÏÑkGmà¢TŽ*h,èˆARaU°ç?°pó­tž4þ Â_F+_&ríRtŽWSMfFÎ'¾Qc&Ô ÂJ¿‹9‡ú2æ£ÚÔtÐò̯‹°{m«RG‚E]áMJ‹(¨í‹çƒ4ù3­¤Îü ö¹K;Y*œÏ€!¤ OZjÕ ’%d•=>þÔðµ¿N2ýð?»œ“ú„_3UidÄëQb¥<Êï  2 ¶õÄÇð˜È’U ù6<’¨ a4@kçŒZ°ºšfPTYáèâ.ÞLœæ‹û‡ÛÈ<KaP“«}þàˆ²Œäí‹_âFÎ'w&ÔßéÚI¢ .×`˜$aU×NR ¢ B°˜0XÕ¢ãø/yz´†EonC.–*Nóý“ÈfKå| ›)/Ê'§®/íMpÑÆƒŽ.¸:v u£ó+K&ÏR{Õ¿«YF–D[çŠ>Wi°ÔˆÉ‰ÄØyáfkU ’¤Gུ2²,!!¢&™5Îá´k8Ÿ¬øœ:åÛùßôlD‹d¹bó”,Cúz^³…?¬æ#÷bÒÏEòˆRŒB5 ‡­+õ{ÐiËZ"ƒ‚0”4¢‰‹•vþæS De´ v¸²‹=*;«ëR€ë¬+ƒ2j+;¬ żæŸEDkã„§àAHÐ_œ°*¥ÜÂ=Ò*\±If1ÜÇBj¶‹T9¾¥bòu×;Ì3fÌf{¼jÖ$ÀZ~ƒèìý1çs&P×*‡ôK×1Ÿ—®éy©ˆ<+\\*_»Åº)_“Òu õ ÆIPDÂ9Bú\;ž/÷1sØZêÎÿšA×鵕=NVa4k¼…u)±då·ÁËùî6¨Yº6?˜ óÈöÇmpµ½ƒ]sS[ßb{¶´ÇÝ»r|  ÒÚãîoø Š&?-•¬O|Ý| puÅÞµ/]ƒ§’žUBùmÀ’E"jý Ìã—Óúê·å\úkk7èüÙó4 •‹-N¾¸¹açÖŸnu>&=³£úêë·…Ì4’0\2c±TêY¹œ2ƒž¢ ošLdÝd‡y:ÛqÏ— È2àJ <]Ü[d“t~-ëv·ÅÊj O6òĪÑ4øñgâEÓíñX9²”r4Xåoâåi%<÷Q öŒºf×åd‘Py2ýzySˆZËQnA‡ ¡Ôõu¢Î‚åè^šÎÊä¦ «a…³¯΀Á¾˜@Ÿ(Š €ô—Ns*ó4¾½¾¡&€ksÆNɰr»ò}¼ûqV*⯷³îÇVÔáäq‡Z|}ý¸–8½”Ë­5h¬°ÖUdÓEšòR Ý;0iÚë´oâ…h–@°ÃÕ²™•Z°ÓI€€”ËqûF8Uê ‹,ƒÅŒAëGËÇ>g³ÍÐèMH‚ nâ ¦‹µUeß *´¢ Ѥ§DðÄù†ôZlCiö"«·¼‹ó™Vtz@“KePðæ~ `ô‚UœX0”‘_ùðÂ?3Ä£bÞ(‰Yλ¯§Ï¢M„Û§rlïÅ—bô®èQD%¦rL:'ìmÄk¶Ê-:I±23ˆ7&}ÏŸã,¨4:lìTwË·]Wɇø¦ïïÍŸÉ¿Š{ªu¸û;Þ×:Jn^13\¼§øaÂ{¬©1ŽÅóÿ2ø{U†+ƒý"å$í˜ÏÌEEŒ[IGm4«VŸF*1P¬Ñ¡SW>• 6&3¦ÊMo‚± cèÓüôu_Ü,•í ²ÆÙñëøtì7µ±©¬Ž Ciƒß|›×†¨d I’*ê ß4¶d„ŠÍÖfISë7™þewlKLH‚{U:Û7î§ÄÊúöADK¥M ‹·™×"ÖÐpÆ2Þñ)§øâF¦/.Ã(Ѝn'Û‚xk™²hE¯Îï°ÿ|[Ì‹:¾_£¸OØBPPPPPPPPPPPPøÇhE§¾+ùemNÅÇô8_ß+Á_•FJ%"àLH£|ôêsd˜s‡9j«ÂÙÉ…ÂÍ?±.ùÊY´3ÜP¿»yfä4vÿø-«ýü¿Ô·¢U×ã\HË£(?¼Ã~^ø‰×œ Z­AT£EÄÙ9Ÿú+Y}  ´¸LÒK¼ñ$ã¹.8ºûâB-ºâlr1Àph+‡|¨!ˆ¶†º.&xÙl†×º²˜-"+=•$ë64²ä$þüâvÊÍñJojWnµÎß:?/a †ƒjãë}»ž­V…¨R!bOP°ÁéÉ î$Q*VN®hLøhÈ ÌʽÁÉ-jÕˆ¢ªb—¾ ÁÆÑW'\q°³ÁÚÖWRXûÉ{|2{©ÒuέAT¡Ñ¨ÁÍ Ï¨Y}²bÙiUË‘SÞx;šIÙ1Ÿ·&-'gƒTè<sQ\Šæ¸\ÖéÒåç.`ªì—CþžøÒžŽ½W²û€Š”c;‰j@Çšl&*(Hã\VùníèÐ8ƒ)Ž 8s€£jÄŽtí³…CÑ"{p ǃjÞäl¬WžY«ZÞ"ÛãkXOBÚóÛ³ô$åp9ßÏ’ƒlÛ„è€s9mƒµ(bëä‚«‹š]3¿GîÑ$Êâ–ñbßÙÄ\q€ilqvu¢4ñ8§ÎÅàÞ¤AåÆˆhVÿáHÃ¦Í pl½ð‰^ÀúcIµ†öGyáМÝÿ`O •q)æ‰5kÜ÷iHsÒ<ß{%¡Ë¿e°ÿM®µZ…J-Þ4nOjñeŠŽÿÅ'¼ÔšjqPÈ‚ˆJ£¾É]Üž1‹ø ÿlb¯ø¬ 8òÛ¯$9Ù >EÜ•K/ç”±¯9¦®ösõ¤Ý ·òÖ÷{)1*+œ,Ťy_ ¾WzèdKQûW1gCj¥ãSÄäªCpªZjå{R’Ç¥âÒË3ò)–-Zǹ‚+‰+cø¶ß'zt¤¦—ÞG¶qøÊQ(C qÇIõõÁCÐÚØaãЊÉï4'~Åoü¼'©ê4•F…¨ÒTž’¯Ê‘J¥F£ÕV *¿×TÌÓ:Q@Tµ¦M¯üf’Îì#¶fš{9óÿØ;ïÀ¨Š­ÿîÖl6½÷Bè,„Þ¤(EPlE± "*VETPŸP¥w5”„@¤'¤÷¶I6»{ï÷G‚Ï‚OøÞýýGBî;sæÌ™sfÎQznbW @!é)µÔXœqø‡ƒ¿H imÐë1^Ct PœM¢Æˆfì(î¬+¢ò|ÕZõ/‡‹þi„æZïUö­ì@{74ùç8__ÓØ$Ä3¹ªê©Ĉ¶8¸¸Pw.†4¥ŠÛõj\==±=Ìö=%Ôwîˆ '<êO“~&j..®¸:kA¥@Ä+AP]º–—p˜ô}iw+™V‰ÄÙÊþ€\’“̘”Žüfìã ›Dhqu 0r'§K€Ê<’Ër1zzü Ô4ÏAF D2`Ô6¾ù9§ùwe§ˆN À× òNs\BO{ppóÆ'|gËÒª hôôAK _<ý>}`â=]ð¼8U‡ØiLŸ€æ±iÊZÇÓ£~¢ãºë×¼JˆÅéÄîÚÀi3@-Ù‰êËÝqp¸–h¨¥€@/z_ÒVrÎ&µUNT·öf>¿‚$«pÅß*•*Ôj-J |Ûg¿¶=}¡)m OŽx‰=F¡±ˆì#+ù> Œ çŠÈ«‰¢ßÐb’ ŽZѬSŸÑ£w¶CoÜÍ ·½Ï¡Fó¥bÞϬùy8“ïkY¤*’6}Æ’µõ [ô=|éÜ+ÓÙ1dW7¯ýÇÎØ¢³ïÏÀÑ[9z¦ù`SÉÑĶjEˆº3ýÈ‘LÀ\GFÚ)r|»aP_a‡Õ£vt@ý[6 Ñv¥Ó€ïX¾ß ˜©ÉN#¹:”Ö.9ÚC¼ „Ì$ V=Žö:ì]quv@ïb‡F¥ÃÑ~ýGþÀøf».ÿä^B[áJ黾╧ÖsáòUW­F¥T¢RªAéOæì>^N °œãØ W\½•óÅ·Ø&Îp<3G€ RcRÈ-Êm=/†-•ØØ9ââbOÂwßPâ…·®/GnãØÙæÀIéÑĵÆçwëGÀÇ¢‡ŸãÓ]Ô^}rGquàëªp—2¢H Z±zøà[º¸Är${g\/ê2…ðË:ˆ€¢»A'vc´J%èô8h+¨‹ÝGšÉWÜœu S¡š]z—dÅâÛÁÒ¬‰»²É:gO:öˆâä²¥4N¼§9E·˜ÃÖsxó£äŠW/N*´z-=¦®gÛž×išÝ›Þ}?$ É‚©Õ †ê°Õª©È8M¶Z…²¨’ªüªæ›ÖéÉ$äPáçO`V,‰Y H@ý‰ýÄ[,W†27Ñ”G € D«wÆÝÍ G{l..šj5J¥UË\¾ö¾J@ºðÓ†®£ýºOТ@9œ?¼ŽŸó›í‡Œ”j*,®-%iŠØ<ý>úŽÚF—yËÙ9÷.Zù:ýº|€¹‰¦Ä|ÊP!©l°iÓ‡>4–zòóÓ(VªZÊh¨N渡-‘ö¶hD) ˆÀ„ÏØšåÚ<þ..8;êP Â5tó÷íc×Ö­lÛº•m[w²wß2ž†ÒdFüMÄŠ%>—bØz;Ểè2œ]]qu±Gã¨C!J¿ïP¤¹† ¿AŒˆpÆÙÅ“†”c¤¨®Zë/—íˤ÷rD çcÓHf:‰>D%2ù°ŒŒŒŒŒŒŒŒŒŒÌ•Þ³${ÊíÞU`cgॠ ˆÕ9lûtoo*àxê¿x}ÞSt^ö*/÷6PD|2›Öî lƒÕ|1eïT7;âFp”ûÃ3#æq>õ»lb÷ö I¸Ýö"Ÿ¼þO¿ÂoæPG?foï‡NÝì†Éùîa&|œÀÈ‘_1哌{ø ÞÊ€¡TGØ )¼òî ì’×QêdC·@? ýÔwˆø#gÐÀ@ÞÚÓµ.ÜÂIc"'Gõd.j×F>>›ÆTl{Gˆ9¤dbkܶ®› ’„ç¸wY9XÚgÇ2·ØÀˆw0=ðJg‹h,åв©Ìü>€Óé·óÒû¯Ò#}o÷7p¶Üûökt±†&êê1Y¥K5€ Ö?ΜàöÁËxèÓL ¿´cG¥–Ô{V, 4š~qÀ4ûˆÉs$«ÌÌ¡‹þîÞøa:Sî2`à—qnO- F5À¹Ûp:¥-æ½A¦Óšñ¯½JÏ %ö“æà3i&£çäa¤?svõE ô³ÔØ»ÞÇ¢m@=oÄ›£ ,ÀÃøé¼ÖÇW&Óæ¹<×ëCJèÈãÿ¾?°yþ#Cïª:,ÜÁGÇ{ÿ)9þÕ7¿³Ÿ7®–í>f K-A/¥òô(ï¡£MÿɼüΜ•©Tíyy3ž¦è<ålï‡.m£§-§¸ª‘¶O¬bùÄ 'M´ IDAT æþ·š¨¯35;«L¥œþnv ]ho¦¾ü÷E¨ g–Nb@gkÚR¿/œg׿ʌ ·Óë•DÚóÜ_…Hý3/±c„vtx„÷¿ ý“³Z"çàfNÕœçÔˆžÌABãÙš»g}Ã3¡I¬œ?“¥û+¥HžÉÛ¯¾NÛW_`ò‚ר¤3ÖöÇÕáœðWÙ ÏÿžgGŠYšÓZJmyvý îŸô+˜ÌDÃÊæüv^txô#¾ìéŒwÆf T8tcÒk/2¦£óuÆyo Ò£ø+8Ç(—NdÌ ¨³´å™ïW\º]$IÖ‹)³•nø9Àú¹ã0¼ `OûgòÂPþzU»zï}²øÔÛ lç„“bkŹLœ0¢êæ ðíó£ùz€…àË _¥ñH?³4î´¿ëu¾œÂÁïÓ°^ ¬ùçíç xêÕÌ«šÇŒQa8þŽ>kòعä)æüTÀÉÔ»xq΋ô,ý‰×æ.bOJ=ü¼„Ó¾ä­u@µ÷uÆÍÝKMƒÈÇŒ_|œ^~‹½ Ðáò ¿k1fD.N7`¨²£Û„xq¢¼¬œ$b1Û1˜ûïÏæÅ¡^Ç—=Ïc]ºâæUAôì7öii³ÜúÞË8å?|—C”­MˆD0²Û6æ|8ž…3!¤ŸÛ¦Htb8Žæ±{3Ͱ‘öÏ­grÐÝŒ0|€ZgCøÐ±D ¬RóÍ­u«YíâŒÎ¥+šÃ*†>k Ø2húÓ¿ù>Sú,¤ÀgKæù7§¾ôbÖø÷Ñó}PØàÒ÷%Ö½ Ô“yd›W‹Løl$ù_­'¾6„{¦‡qàÅuÔÌÈaáÿl ñ‹8¹Ò²‚y3Þâe tôó¼6¸ãofø•Mâìǘ9Ÿóð°~¼4ÊÀ|¼ˆºç9^ÔœT¹éì*ž÷KNd6òÓ®Oé;óÞ~a#·?7žÞ‹ê°ˆ<¿á+zXHŠ=ˆrÈÜæùI÷™;ÒÀÛ-²ýDogÄÄm$–ž æƒC¬[(€$äÎEÇ™ùê<öö3`À÷€‡X¸¾-H¥XÍ4M—‚%–”yýÝOÙ¾žï6/ÁðüZ¶µåËG‡ñNÕe¶§¯Hý¹&êkš3$ëu˜kòX9ÁÀBÀ·çxž-Š®ÝQåÌbþ8™ îŒ}k·µq† µX¤‹*!‡oßúås[èzqÊUW¿‹Cqeê»$ ‡ðÖìטX5‹9£ ä6z2þÝOè©Ãî¥91h½ŒHŒaññž€•>SŸaöìiÕm*ï.ñCË:M¾ÂëþëâÑå[f0öÝ#4Y`Tï¹oÉa¦Í\LÆÃ}0¼¬Á+| ¯.{ƒ6û´…¼>È@-ô2›·w¸ržHVÑŠÕ,Òïˆ60 Bïx/‹vE‚Th6Ñ`lj Ð5k7 ÞŸÏÆ¸:øv)Û¦|ÂüEoðÙÓÏpÛ‡e˜ â±åËé§|}8}—`ãè΃‹¶Ð‘Òäh¶ŽÁò—´ç5†jñíÜ=Ð7D0vn!§Oäóki7r(!±Š `ÓêNîè8ŒïâÎ9«y¹ï•Çã¬é[™7![Œ°~)›žúš…]ìXý«}d¯ÞÌÉÚsœÙ“7‘P»·bÂ+ïsGÕ9>gà `ÀCÌ|¼/nÔsø£-('¾Áæ®a\¿äº ]뱌ˆÁ„a{¹}ÊtÚ=K”\CpóÊ•cE4>»˜yž£ywé¼ì÷aµi²˜µa:3`¥ ®ý^aݻñW¨±Ñ_Ç"”¤–lPÍöFóš+6Û˜’~÷ñàˆž<Ü{_û–×>Îaâ8‹l[1ä ôtQqýúͲ*‰ð¼‡)m{1Úð1 •’ˆÛÇÒ I¼dÓ^!ÛRóía©¥}¢UúE=ú1°ÍV…´Ži¨Žæãq‰ŒÞû4îg7³zA w­º‹šõ?p8Å•±³‡ÿº€L³žûÿò!Ù‚@¥»'.%E—äÅdoÓœyä÷ÞœÚIFFFFFFFFFæˆúúz6nÞÅ÷Œ ''Œ¬l èƒÉbÁíǯQõÔ×ÿR ÔÇýW¯SB#A·ØÖÁl1SRR‚¯ïßþ®ü½ ø9߃>£"òFê βý»XÇ­bB°,¯7MMM”••áããó?ߨT*®y­êŸ£¶®“É„›«ÛMÕ.“ÉDEEÞÞÞ7U»DQ¤  ??¿›NÆrrs ¼%ç‡Ñh¤¾¾ww÷¿íÍ e8÷5£7{±ô±!ø9jþò³ quuE£ÑÜr}/!qáÂüd™þäååáííRù÷^§²šjÙ·p4i£÷ódÄÿûØ…ýØÕc'/õÕÉi+en^Ä*’ldíÉ^z©?zL$ý¸’˜OLC«èÊ]óš!€©Œ3»–³°z,ßü+ô¯?ØTAÒæ%Ì:ߟµ¯õC#K€ÌßIüGôYâÁêe÷µºñë´··••¨UjÔjõ¯+ ’$5§%Àº5ÓGŸ!VV^ùÿ€Àœœ›ÚQ"ß–‘‘‘‘‘‘‘‘‘‘ùM„ÿ?çFÿŠI=㆓WþðU²Fª*.—|cž—{òæxYÞeddn’fß{¼±x#ñ…Q¼²~žŽ²ë]¶KnVD,–Óœ>0;^ý3–ÃÛÇÒšJa™›\ )ÑZËHܰŒA‡Qè5ˆÙfúLz™aÿÐÉÑÚÄÞ7ûòúN '0r*}zCžmª¯#'÷,wÝ7KþÊüíÄÚÆ¸É›PÊÇ€nrXFFFFFFFFFFæúV«µùôë-„h½˜æê²TS’äÎÀ“[ÞiEüCý¤Á+âvžý $«« »´o Ù­Hüý²sÓO}…€„„(‰ˆ’7KW´¤›»ùÆÈ*6'A¼ùÚeý¯èÃ?=çn&ùúr(Jï:#Iƒ^æóA/_Þ[ˆ¢øÛ5ý~ïünIÃ*Š"·RKúè›Nv„‹ëÈÍÕ§BKÎz«(þíöœZ×™»úý »FB’:ðìžH›å\Îã(só¢'dè‹lúâ5íH«øØô‚Š¡ogè[—ͪ´¿P;ù3rÆzÀŠÕ*Èg%eþÖõ½ÓÓ»étƒì9,##########óÜ’m%‘ü¼|$¹ŒŒ,;bî ÍÁ ®¶î¦é‹ËÛu3ÑÅTq7«ìÜÌ2]_pË͵‹ã-!Ý’ºB¬¢•²Ò²[ZOÝl²s1¸šŸŸSŽwqQ‘¼ÀËÈÈÈÈüO#ü`À22222222222×E%üƒüo¹v[­VŠŠ‹þ+5€eþa±Z().‘k•••¨T*ìííoªvFM¸º¸ÞTíj2›©(/ÇËËëæÒã-AÊ›µðÍØ®ßC}CF£w7·[²ý………¸¹»¡V©oÉöç^ȽieÚßÿæ³›òòòðñõA!È)5eddddþwÉÉÍùŸú^yÕ—‘‘‘‘‘‘‘‘‘‘ùM¤[0 ßÅ‚22Xv¬²ì\šû-iVoÆù}3¶KoÖvÉYþ®ñæÏp«Ê†$'–uŒŒŒŒŒŒÌDËÈÈÈÈÈÈÈÈÈÈüÏrc]¡µd§åQVgþk¢²8Ÿì¼šÿB;eþyû;²”ÈȲtk!ÒTSÀù´2¬·”x4P”Ͼ½»‰MÍ£Öògb¦®"Ÿôìʾ¾Ÿ©ˆ¤ä"šd¼Á3ßJcuçÓÊ®1Æ¿c 4—’”X€éÿ†ú{Ž-H·œ I7Õ·ÿùgX¨/ËàTt4Ñ1G‰>Ctt ɹå4ʪäïÃ\Brr! ÿß,"©–¼œ|Š+®|Ÿ¥Œ””êÿJ]yk9Iñ1ìß·Ÿóefh*#%¹úu€­©€Ç½Ÿóö™Ud¤åSÕh–-п9´ŒŒŒŒŒŒŒŒŒŒÌŸÚ¶È@P©ðê8˜®>¿¤ lª+¥¨PÀ'Ô "å©g8{.›*|éÚ¿#~ŽÚ–“¬ P›º›˜š¶ôí€Íu_ØHiz2g’/`”À>¸ÝÂqP›É;~Œ¤’  ¡Ï¨¸ ðKe jÒâj ì⇦y'NmN{bóÑyÞ¡Ž-çj‹öóåªrF>:cÒyΕVb"„¾wtÀ 1ãûNS" (5z»¤½sËkŒÙÞ¾4mîé)gs1J¡=0´õÁVÙ@ö¡£¤T7`‘$”­û02ÜùÚû|S2EüÂ=P!R•ÌÙ3©” ÞDFu"ØM÷'kI‹­& «ÚËý¦Ò“ã¨uîLç G„_¹F ‘ì³¥¸†û`§V"ˆ…ßK‰$ ÒúÐcHg~°W¤æÂ9ÎÄ£Lð&ÂI+O= Ì\ˆ9Jri%B«K}(PKò¶dHJlôáôŒ "¦Ú|Îì=I™€¶‘tlëŠ+¥)ñ$¦åR?ÝwÄG¯FA#é{£ImlBT„ÒD<Áñu¾ùš²­¤±"cS¨Vèð §SÇli¢4-‰äÔ|j$ Ñ¢£•¡7Þ*²¢p®¶‹Ðš··»fûšê.¿ç$ù-ßܹ­+ŠêbRÈ«° T€B¡BòéÀˆjÎì£ÀdA<è>¬^Êˇ¡‚Œä&"¼ø³É`Ec.1ûã)GÊÆàîýs¼L²ÊŠ©iÐâíï„âRÿ5q!©‡OtjþrE.±‚ó'È*«åbLJ²:Ò~pBôT%±ù`&‚B@Òèñ ïB›*²ªô„…º5Ï ±š¬ô Ô.žø¸Ù¶Ì•kŒó_¦œ3ûN‘WoF”<;¢»&¼ÖÕVËsHHª§U¿Ôùg9~2£BÀÎ'ŒÈˆ¶¸Û܈vHÔ\HàlR&6!téÜ?G¨Lfÿ©lêL"ˆàÑm8¢1—Óçt¸¤›¨.)¤°R‰«¾’Äøê°ZtwíF;§?%SMÆ2 À7Ô Õ%y±P”QŒÊÕ'Ýerd$=¶Ÿ®þض8ÏnŽ&KÐâèÒž¨(ÿ–¶6Pt>žcI…Øú„ѱC8^ú°œd¢üüV>\ãÍßý-±xK4¦cãkÙQd¡×ð‰¸ùúaµw±©€Ø3a]Ð_«Öžµ–¬S[XÓ†·fl·ˆ²½Ìkeá·rë&þ·PSFâé Ê% Ñ¢Å/² íBÜÐ]×,º–M"ÑXË™ý±(\$2Ôå²¹f&ÿ\1¶~8ÙišuaC;÷ŸÃ,I¸F ¦W`ËÍ5dù†/Îõçí§IÙ~‚|…­""‰qBA-™±ñ¤TÒ$J8Eô§wˆÊqiJ^É›_·ãó÷EâvÇQ†•Αn}ië(R[’N±dÊÉ5„®‘íð³W^c®'=®ŸÎ~Ø PEB‹~°wnGïÞ-úáZk¼…¢ôbÔî®8;Ú  žÌG8o4a•@Ú‡m~e×4Tçx$‰"QB²ªq iG‡ØKe$œH £ ûОô óÆVuåü¨Ë:¾ÄJ-†šBç‚GëpÚi 9~<•Øz·¦cd;<´ XK‰?q–œâjìC£ˆjë…ªô=Ñœ7YT¡ôÖ=¢µœ3[“#èq÷‰ GWoÔ׵îEi§*ñëæI®Ä’x6ÉFëèJpÇÞ„¹Z)ËJäôÙŒ‚Á»èÜÒÇÍýZŸÍÑ2? ]C°WÔ‘²-štIm}†ü†-/Rv¡ÑÆ7w= ªH:KNµ³äF×Û¢ðÓ–|Žíˆ£LP µõ§ûÀÈf;3•™qˆ/@çLD‡Nø9˜)N†s¯áÜ=(ä—€]ía¼[ÎÌeÒÖVñ'ìO‘ª½?ðùÏ ÔU§¡è<—²˜ÿn³¾žDkK§’:\µïûÖë¾àƒè\Túºö§­Ëh¥µœ”#Þgù÷§Üþì]ô qA%ý†"«™ÿ.•I|¿x[À_cC;ï~tõQ#™jÉIØÌêÙ¨ñ\¨Êšöoù™ã™¥UĘ'1cT<5 @ 6e3ß~·„•i÷±þ»‡¸nÅ_cgýÄ·Gšðö¨ d÷9Œ“ždPà.6m8I®j3vçò2³¢Q µçv²áäIE‡ñÞ—wá*5QÍW«¶sV¬Ç%¤-A®Š¤ \»õƵq/›×Ÿ%Oµ©;8íþ*³ þiëYò]1¾þ"fkÊX3_é+ÐPRE“R¢C% ;Öóãi3®¥îÊÂòÄ£ 9ƆŸR,˜Q¨¤ï»@è[OjÿËY²4P°…o÷§ÖÔ‡WÂ=PÏpdÇZöÇ 4ÕTs¤º‘iw÷'Èæ×®½º´=ü|*†Ý;Z³`彸_ü…¥ž”=‹Xüã9ì{>OÄc]®r°X âÙ¿›Õ«íxaéd"¬do]Íú]å¨ô •9!¼ÆìÁ^WlêEc 1»¾a× s} GJÇðÄÄaWm`ã§)jÓwpÚíf÷ ¤"ùSV}Wè#Q_pˆ¬7xÌÏHJôRÖý$!Ù4 žÉáîé“èÍönÞJlž@cábxŒ™wtE—÷5ëÖçR뵩»Hòƒ—"þh Ï«¿yN:„«eÛ§/]]+‰Ý°Š ñôJ#¶)äÛ<ÎÝmk9ýÝ:ÖÇ¡ðBYç„"¬ŽåXû]&ÕŽ@Á1Î:=Æ ½ƒ¯pÌXs8¹ùs6ì´¢²9žOÕÔ{d-á|ü1bsÑØè1&oåxÛxgóÓáBš4–mñàÑAh¬fJ’¶²ö`"¹=˜óΟ KXR×±tm9þVš,FtgUç¨aL‚µ ž½Wó_V‚F2^Çú}¹Xl.Pœ@÷i|÷ïÕ¸.~ŸÊZ’¶À¿ãúðl°Dú7kÙ_,¢·-§HSŒÂÆ—v7@!KÔg‘tp-kÏ·á©YÓ¹«í6¬YËÁ¼F´‚ùîÌ¡é¥Gˆ2ïã£Å:>^qnÖ²âv±á„-½Â²X¹2 ¿.~¨ªë8žPΘIwÐÝ_ò÷¶¦©Ž [X½+txnº*ÄŠLNÝÆòoÍŒ~â^n묚rޱíô~XçÉÜ5“R((Œ[Äêu àe¥¡æ$ùA/ñ€HQÌN¾ÚxL‹DP¸¿Öaÿl”ZlmÕ×éŠI7Õ$œH¦ÚfkV çºh:Å’Å5¼µò_è¯ùáJ•[Õ þ¾?Ñg vz®r~_ Þ*Ô‘½…•ËN¡î‚M-]Bhì†î:Ÿ!]m“Ä©yaFùÑËøþ' ISOtÂ&L»Ÿ(G%bÙyŽÆogÅj¾þ}Z»"3Øòé7üPeÂK‚×>—À–z3åE´àOîÎOX÷³„¨4}¾€ž¼—îæSìØº‡äRûB w•bûÊtñk>¤–sò,á¦â”¼ŒO×– b2±KÔ2óÙÖäžÚº…è},äÕÅRÙx?÷ »lšrcØ~z?ë×zðÖêÉ„(Šâ³z]=’—HCU yA/3Ñ׿Wc/VdpâÌ6–ká®gîcP/¨ÛǺb¨¶µ (dì/ ìíǾ⃉’óXùæFÌÃ"p0jhíÜIÞ´'Ò0YÌø ­éÒÚÛ«<ó ùg8x8•BÔÔ@nv,úQ2Ûk'ˬÃß·† £Ãá¡áŽœY¿ž§³°ZÌø+ÂèÞÖ kÖ—|»6Ÿzw¨KÝErÀ›¼nGNÌ"Ö|oW3MÂYÊ‚žgŒÝ9bv­¼ÌËã÷¡µîJ;±!ë [b±iƒï~û~ˆ˜s³|Ù¶*v DÜ‹01‘C¿':W¦¡‚=)ükÒXzzj†¬ýlün!ŸžÉŠ5Oâžñ)«ÖV#zƒ1ÿ ™Á³˜ôk­!Vçqæì–_G¿»îf\=•1›Ù´%‰JEÅì3:1÷Þ`Š7Ãú½Õhô"b•™Xåk¼ÒÏ‘Êø½|ùÝ.R¬ÔÊŒ{h'üì“8´{ÇÒk±q¬'ug*n/?M‡òsÄK¢±I…šòÄ]¤ ^þKl}ézÏlf?ۀܮ߰¿ÈŠõ·®0Væ£77àÜ7½H tŽðëׯ©×þ~«¿Gg–»§‚ð!mþáŸ+ßsÅ“õö8ØYP6•q>U }T0Š’C,YæÈÒe>×l‰X•Ãé3[ùzm#ÚÀÈž¶(Œ‡Ø°ñÅŠË÷UO’±Ž¥ß•á`Ål©C¯áåºS¿›•oîBŽ]†0µ7mÂ}¨KÆÒ:?‡ß>‘g.:ÈÒ;³d©ÏõŒ´66èlm¯ Ö *ôzÍ¥ƒ1¤Ï››Åß^ ÇcsùW”…mrQ`«×6׃¯9ÊÇ‹–|3ရŸŸÈ˪yxÛ†;þ™ª%/·Mˆ^‹JPÈéŠÿä°ŒŒŒŒŒŒŒŒŒŒÌ•²ýËÙ¥™À—oô¸H”D3u9då”àÝË-´ù8å.}˜1cޅ똲4™œníð t€Üý¬Øv—nãˆ,Ôþö†QÒ:ðÞx°-J‘ïÏãtN ?m<Švô4æöFuî#†}GewÜ5Jšª È<›I™}ÇæSmI‡÷Q×ãEVŒ÷¾ÌIfÒãU´êg—C7áUÞíá´€!_ÅRÓÝ'»Lùè9ú¹q|zï—­éÏ(‘ŠâšŠ\ ö@å0…·§â%˜9ðê«$fæÐÝÞÃóoÓÛ ’•C_æŒB¯ðŽY¨/Î%3£m˜-¾?–ÅØÛü[žZÄêû¢ñ˜õ%¯´ÓAÕ·Œ¿ì½OÒöÒ›-Tæ$³SdüŠ÷ˆ¢ˆíËÖrdí)zNëÅýÓºsËÿÜ7»ŒÖÃ|‰ýl;í>\Á½@É× ˜¶ŸòÑ“ñF¤¡ô™çó0úôûÝAºkx®P9uaêâÁôuKÅQ>{|='ê£&5R•“EN‘ žšK²%™*)HL'Ÿ0Då rkŠV$ÿá¼8gm®ðd™8þùgìT=Ígoõn ZIù™¸F[›Ë‚Ï‚­N‹FÕ|Ó×zÕ8ߘ–f°áý,zmZÀí®eDï­EÏÜa›X¼¦€ö#³Ø³×ÂÈÅw᳚” ˜µlnˆdeä¢RߨĹ |ºaj·0„÷㨫&î‹ÏØR;„7߉¿ †Ãs¦±dM7:=`ƒ^¯¹LG(Pªµè´*$»VôŸx7OÜÛÈgÝ“«IŠÏ¢¿{ -Ôæ•]„[wí/2i®¥ø\¹ X.»…m­/!'>"_$1=%aøü{Æëͤl~›yë’yàQ{bOœÅaØl¾ät•þþ'‘j 6û›·œ¤Lð¦SŸ~DuôDE I{÷r<µ“ DéÙ…Ñ#:ãB.Hº IDATyç¿ Õ™'9´#†ÓR6K¾W20PGeQ:õX­®DÝ9Š.¾6äì?Auu«–TÞÿ_ ÷òí‘‚[—vÜ~W”ÂJôh¦&'˜x=½Æ´Åž&JSÒ)¨´£}”™‡öpøLu’†;Ç`ð,ã`Œ„§j/Ά0ò”5œÚü9™ù¶Îá »§ïocnF$DÑ—¨ñyð™n—ÉÆõ%\¸Ê&Yzÿ¿ÙvöQ„ÃãWÌ'ÊœÌ×_n!æP.Qwƒ©šÂä ò¬ÁXUJ@mô 6›óñ»pºâ¦2 “œ èÃÉ-÷,ŸCÓi–þ{'c èÞÓޓ_`’¿3¶ùiⳜÊE„¯¡‚³Ñ®ôºßŠ»òÄâAôq¦’C,{öbî›C§ð!Lû*’P%œ[¾”ƒ9” Ãÿ²o´KÉ9“N‘Ö§Egå³ûƒº/[Ï]vVR·½Éì5 LœÙ™âäS$ØÒap$îÐTCñ¹ ò½±¨Zæ[…ž¨WçÒß ”¯½Î U&±sg aã¤Ir!¬ûã<üÖÈK.1q#;ÎÈg0ä7®š»÷y’ú´ü£*™¥¯}‚[¿P\Ô*^^Ö™v:8ÿýRv&Ÿ%Ñ]bw¦ ã^\Ð<ŽÔ²qÞaf­cR ˜ÏaØò“<5·Ñ_æ0pù7Ü®®äð÷Ÿ°~s<]CÏ_e‡¥“r¾3­;¹_Ñ.km1YñÛ¶j¶‰-V²¬'9ð ¾™zi.¦íJ¦ÄÆó?„?É,xsÉ)yôð AQ|‚ï¶îCÛ~$‘™ŽhÕEìœw’ö‹6ð€+”î›Å¤åqL}³ï5Ô‘²´ r«íhÒªQÐÀÑïOàûð<^‰pã:†=|˜’{õD¯Idàú5Œ@JXÂKSE±ÃXz¿Ì×£=~yn©’ÐqSèŽV¶=ò2etéüs:]üO嬜œJç­®šv“‘@‡™ºú&,’€ R'¶% h×È`§ËN*ÑE>ȇïÜ~…ÝÙX’ÀŽSe5IT¸t¤Kk²nÃØê6EµÇYYNÜö}œÎ*¡^t§ïýãéd›Ížc*´;ÙŸΨ©}ñi8ÏO+öP ¨PÚ8Ðq#:»R’rˆ»©R8Ò®ïPDªIˆ«CÝx’„ÌRÊkt¾ãzù«QÕœøj-qPªÔ´:»ä=¨{ÝC¸£…ê ç9ŸÐHаvO"Oð¡cV×Xç/ê‘ó[¾d¾µC$m°PxüGÖŸ*G­´Á-° ÃF´§úÜ9J%/:…»£°w²Ç6´ò0r|ãvJŒõId5uCԸѺµ€Jªàôî#”ëøâ»z:E£oàU½¹Ž’´ .Ô9cÖ4ë.*ttþmúú^µ¯rìÌ£‹ÓÏÄê–<²–S¡‚?ͤ·](5“]—ʼnջ)rêÁ„{z]™]ç’iZNüž#ÚòÅZ:÷Å»d7[ÏT£Tè é2€aÝ´¨lDòOýÌš4+•5ôž0ŽÎeKOªÈ`ó²=ä j›†=4¿ß´ÌÍ\س›Ø ™°m)EÝ un…­:·ÙzjIÜu”ª*øzy=}îa¨ç9Ö®8L¹ZgpWnÞŽš´òò³(-,Ã.rQí=Ñ5$­ÚL’µ˜ú‹ÈðȘ6Yl9\„ ¨õ¡Œ¼ e‰”?‹–‘‘‘‘‘‘‘‘‘‘ù/RÂΉh#Y² IçÀ€‡¦ÒÅ^ £§1]÷ÛÒ,HTPR䀓gs:8ïºTDSm©Ï;ÈÖy´?Ÿ‘^[9´ÍÌoî íü¼tU©Œb[wÜ}kÉÿ¹!z5@Ö“^™§ÈEÜPâj˜Ì›ö<1׊ÔV§@e·|8¿§vQ Ù_`9ËþjºØ)Ê ÅßAд"*=ŽlQ¤Sðúµ´ÀTSM¥_[94;sŠsIQ¶ç.½êKRJ‘½7^n6¨ÛÓ›&R6}ÁöT-Þ?Nÿ«Rl {B‡OãeÇøú ‰Z*ÊÔ Í©E]Ûб.†ÚFhJaíûË^؉¶ž:”8u›È¬`=¿&6×ë³4Rÿ3ѵÁŒ™|?Ò©lÉÕ¡¤”cß­æ¤Çh|;b¯Ð„ æ‘T¤ÎÈE‰8Òç©ìž¿€÷mh$÷ÜÛëª1ª¦²\XÜì8vjEdcÖÚ’3Ûä Â hãˆJ'‡42Ò£éÒˆ°kk ÓŠ’LTtjv‚¨œ Öû %P⎽[³ÓÍ·#ÝKb¨4'sî|zº›±EÑ¡/½æœ#ûƒÎö+¿Y¸¶lOšJÏ:àМ÷9`+!èü:°-ЈB‘ÍÞUpú´7AQ÷óPßZÊ üqjÙª; æn»ù¤×BÛKùa-˜›ê1V´ÜÒö"<ȇ’”BŠ€V-·¦„üTщÉáp™>Š=_|À€Z´2þÞ;qPj ü³Ý×òÞ¦¿T‹S<˜f—­HC]µþm²ðÃpÏL‘v’f2·¼CBå߇žS‘þòy”â )5è*ñÕ¼T\´¢‹÷ ÛÄŽƒþLÙÙû²‹^½ã·s=±×yœ¨¯ç° ¡]÷jö-M\·IÌBÿÁn€„ï ™ø¼ò«ÄvÔwz‘;ì5”;{ 4®fÞJ÷Ý6Š­‚®p­ÞLu˜¬ Ô IìNöâ®i¼/Eyè3ç6íðøGÀ¢UĪӠUjP6š1‹6(Ôj4¶vØ\ˆåË}Á¼}_G$«¢‹¹ ‹E…•­ÕL]ên–óãAõ»çcª*àÔ¶½ØŒøˆ~šBŽ&Al&“¸Ø¬®Ž8Ug³s[Ã+ùñãÍx ÅÖˆˆ¹‰¤”†¢h4“¾÷kÎÙóîH¿[ȶÅÄnßGjSÛ fô ®xÙü†”\e“Tª*#± ²ùçjZéÖ™»±Ø„àAôiÑÈõF#F¿Vø{ØâJ$Úì#¬Ût”EúÝaÀû*yÕ…â™™jÒž-§9,IvZ£íš×Rç.„ÿ”M)¡dÜÈòhO¦ˆÄ]%¡ðê̘'”äVœFeµ6뜀ô§‘Ä Ÿ³#Þ€©OÑÏA¤!ñŸ}tœÉ#šÀU¤ŸÜÉœ’òëÂÈq1%œ£¬°€Ãß~L¬©žð±3¼ šëÝж6’¸ýCκ>Îâ'4t¦]‹íT¡Ðã¤%/!–Ê’¬øˆcM´÷,w„e‘™Ò ƒ§ -êˆÞ楑*i(Ìì‰A  ÂÓ»AûHðÐ!\a‡eÓTUCî—¥—°‹¼›™Á6dΨG,æ ömIÀÚc7½¿­wn»ïN‚»v"$/ß¿µ´$ÏNt ‚â“l>–‚ËÐ7Ûê'wW¡²ÉLëÅ0×f}­ëIçg’M_‚®K…k[†><•ã´f3:ºNÁží_°`«„Z23lì(\q¡ÏCÙûæÞ·ÐZî¹§+M…Éœ<”@Y×X8¿×Èþ ¿- /÷tòŽ®cõ±Ô½Æ2¸­ûëVñΗء›Ê²6Úß;Á’ΦE_¢zÜÖAN¿Œ³ DÈÙÄÜ’±“@Rhpl݇ÁžÇY½$^w8Q³šcžQtSfräün>ntL;AbF%8ØãX™ÆON4"›oço'ìîHtf rØ3ÿ¶×èXCAJ"qE.tôrçĦdê}qª+ãÔ‘X<4zö­ÚD¹³+^Þî¨sv³pM;–¾d fÛ\~N À+D ¬æJã7ñ£r4K‡Ösþô~¾kÅ;#=ˆÞ°†ýÊ!xwm…ƒòòòcKXyTÀÑÑŠÅÎ]÷uÁÞÚD @£³E×TKvB4?zjh}þÇ»îŽÆ’þmñ´› ¥1ú[~8ªÅ#À»&+ ”•GY¶Làý>#­$Ñ‚¹ÉŒUúõ„ÜÛ3bÊ£TGcn™Ëþ}éû«}à2¸E/J4ÔÖRã׆`­ˆ$•“|ø'Þø0–  Çõ#H¯&¨ß L5uÔä%°áÃh*ÛÞÉk£Ûþjí´Z­H’³¹ ‹‚B‰ÆV¾¶£'bã޾6Ÿ”*%ظcLü‰ÅWÞoAR“ÇÑ{Ès×¢CÂZÇ÷C˜~g0Æ¢“lýb7Y6š–CsV,&/zÜ…¯Bà¦G§T¡ª>ÍÊ™­¿ª]`6›0Ö¥±ÿÇ£Tø:`gª§05–}z3ºô­üt¤šÐ.º\Q7XÄbÁ۽łÙbE’T6ZT’HSæn åE›|³$ƒÞWËvÚ^lµíHÙu޽5ˆJ%(Ô¨³vðÞ…N¬™Øeù~æþœÃÜ»ï](9,##########ó_$›ÜT?¼osÀÅj‡¹4ŽÕï'p®¡¹>¬µž†F3ÍûwJ¥„„µ%`‡SE=MB-§×-dÉ©@$fp¼>›¬,‘y+|x}RëÖQlvFXÉÞ¾•su^ŒŒ £Q“ƒE”Z‚ ޏUQ-ýò¦z’ B@ÄÔXBY~¾ãœñ¬6’uì[Ä & D^Fb¾øËëÿ’~¯EfDá…“¬çØúáAœÆ?÷Ë­eK MV~ñ&·¼«¾³õ†1% Qiƒ£«Î:ÑŠÕÅUevxøWm55þ—ÆùFaGßic©?QJ}Ù.Þ˜]„fÐ#¼6À…cc†;1o·;Ó…¢Ü»qÛ¤Râ/”räÛwØàØûG#ÒCscÕ³B@QUMµWΪ«n„ÛáV^E•à~)¡DcÊåäÈIõA¯´E×À¡“¸T±µúFK‹»L^L 4Y¬—iÓ‹rÔÈ¥Ÿ JTÊ‹ú@‰ÒF‡}iEu êÊýñ pųª‚ämûP«½¹³ŸšrI«‘üô"’zðìûS²$òÕ‚íœÙ±›sé5x÷½‡ÆµÇF:LÎó™ÿ`{Õ8‡v¤×¨RôÆ®òF>È­Öܳ#Ì®”)K8¿{;{NŒÞŠÿœ(>Íóva?îI"tgI,4/‘6è, T5ßptlÑÙMV KîyOÜ;9áj£A(aÕ[û þx Þ&rb÷ârçb¼š¢Aqñ™ZlÍÔÔcºôþâGYøÆùØ£ v®Ãf§WÜ–ÌÉl_t—»§Ó¦ÅF“Tv¸xºP]TNIQ%ÁAN—ÝB¼¨L—jƒÕ%{AÂÆû¢,*p¢Í  <®#HyÙß66òìw€TEÒÀorØÙœ39'AT$è.ywY² ¢¨¨(žrfÅpêîT#*Š ô0$J‰KØœóÄ7óÂ÷Ç,K0*~¾ßÌ2oúuWWUWuuû›†cϵ„ůà-?L™«+’3ëή´¶mtt«ÞŒœ)PB%»6°ZðZlÆ@qÉñ„Õnáóç>#îþÑôŽ·bSB r-Óqé‚^ÇùN*UÛ¾bë÷ Ýg¶Â·`+‚.–ؤxBë6óÙ³ŸÒâ™4ó1?Gµ‡QQK½`@¯4ƒ£Áˆ¥ªÁ†î?LÄí pœÉnöyDŽö†¢QRFÒ˜0bÜ*U‡7±ôµîÜ8 ]%jhk|»—ó}|ÃÃu,žÏüUЩu>»äBöçùxôå„"óëì!„• át>—߃/ ciêpó!j$+Q‰;Þx“Ú™¸¢e'årwÒÃKY÷Η$º‚PoÕe©$¦FßÐÈÁo¾a©L–Œƒ-‚˜/ueE”Ww%)µé¤‹À~Þœçfð‹ýùÙ'ܪ€¡-¹³o@×>›pÒ!DÅÆ¦:ö0 ‚ÎBt‹>Œ¿>‹Ã Ÿå­’&Þ>æ®Äyh _­ú/›\F’Û'â>Ä‹—3ø’˜BBé2|C@©úmKfú‡7Ð[/Qºu)/®rR°sŸ¬øŽ˜ìÄy Ù¼¦ˆˆèˆ6+-.œÂ´KÓ0ÔűöŽ#8kU½`à³7qió‘="U#†±ìùµ4\’NeÕ!ÒFÌĆ“^c§’¢K$Nòˆ•³ú©W9œØŠÔôXze $ýhJo"©]+Ì«>£ ù¥õokCz¬‹¬ož«f« »ÿé£çU3™Ð;|+Ù}KCp`=‘ôžAËá̜š‰I¬fÛ‡¯³øÛ*ÂZt'3k<ç'ê@ô"JòÜÍÓ¯«ö³üɯ }+­gÇ 1ÝB™®–‚-_óE œq㻆•v#ÆÓŽ:v®ÞDaýî»gæäÐÑܪÓGÓkØe´ÊçÆ)˜Pq‰GX½Ž2©’=.Z…‚ƒ6ýGrå°6èGE2}ÆV ND èwòî{+G÷%±zkV…2:g‰–’Ú¶Á`26ùm R ”k"õ¡Ý;Ý'¥úF w•6ëE ¥ÛðÁ$o¸áÚlLG1ãƒÿ>ñ"’|uÞ[Áb‰~½ì$vêÔ†s‚$‡ÓmbR·WsÅ-ã›t§ƒÐÏ–rHUñUfãW»pe‡{*ÙþÏJªŠ*ìŒz€’ßJ«i“‰œ¸™Â)±¯^BÈäW´êßÿ-¬¡¡¡¡¡¡¡¡¡¡ñ;"#Ó™œ)SéàìÆÓ×.f‡Ø‡ÁæC ²$ Ðt\ Tdž’ Ó‘œq÷´¯ÅÐÕKüpP¡c›ŒgˆÅ(®}O׊ôš2˜N¶j¾õètMǺ*5T¦Æuš¢$U6w SÆŽ'™ý¿Åç6PJ#NíáÄXøE=†£Ï”k©H!º9‘q˜wg½Jm¿ L\F×7Ôã®0Ò¹¥®éÍä}¶˜•?ظdÚÅ´<úV&Z^2ž–H|zã ¾88š®=Ï>WPd@14õŸ“Ú±6#Çù#ãμX´ÅÑwÒ]D»€@=B €ä‹'>>•6‰ÖzöGËÌÆ­Ì_â`ø?§r¾5ÀE­cYôñ|võø],'¶OUŽ&š©³ã0¢óëÑëtÍ}XžC”NFÂÔ´ˆUQ Ô¦Å)KH²±ésn(Ñ!ØJ‘še§žê¸pÚ™¿ƒáh0³–Ф8bΊl+?’íg®yÕ;r(ù¾=WÜwéÒ@Ú½µ”¼¯VPvåP»^LV׋?‰»î$¯™Hvèz Ý fÿvæoM å —¥é°DvbðÕ1}½¿±îbt–˜à& À³ý6š;1¶SGÒþ½úÞ6±:2;Çñ›óÙÜç^Î;Ûó{?Kþ¶×€ L¼8ê÷W/Š„?¤9“ÆÑ#æ¸4™XDlÝ*”ãeVoF§ª ×Kvê èPUõ7idðn;GëaŒi 8÷óÉÚOùèÉÏ88à:Z ±í/¾&ŒÖM2Øãé>xÝñP¸ç3^xn7ßǵ¡íÈö¿<¹z:½ jtQE›)®º”nIÓ©J¥ ÑD+ ²Þx,˜¤ÐëõÁjk½ÈÔNôí¦ðÙ úôK§}¤•ßõ>UU" ›šÚ-!{]4$Gæ·ß:ƒ‰c‡Èæ—_ä»#»¨ìÿ‡'ùYB’,˜[·# Àà ^±Pôý÷|–€´¨à87mDPÿP.ýø Ž-o-ä‹#zÛw"^è°J  Hà 2>Iç^z`)Õ]/¦s¤H}¤€§ÐI£pï´ ‰$µÃâ6|ÊöÄ(p·¢ŠŽU!Q¤tkE÷v1¨þÌê’ÆyñE¬Š:ŸN *U…øOå `‹mABU-õð'I«¨‰lÑ“¡-z ß5>ÎæªBêåV„œ±Êý˜O2ù’$Äß!ÉGí¬· ”èÐSœ°"~± îN/úÐó,ß¹2L¨§pŸBßÑáøI(ÊÑÄ„§YGHSrÑËw ^d§9“zkÑ~Øêãâk÷Qö±ä¶·ñœÄø #›ÛàHîÆeã»qxÙ£|´;µ “ãLï+P޾ŸŒâqRŸMѶ'· ÚrÝdÓLëÁ“hg\ƪCÙtêÖžA9훾«ÇÝ‘ÁS‚õºGV,ä«Ã»(¨O¥û ^ŒÈi‡‰ L7ÿ“ýÅèoûÑ}¨ª y«Ÿ&¿û=Üv¬Çë|βE‡HŸpÇ*|⌦ÇeƒÉÚ —¡›ñ${K¸}&ŒMW+ µT¦Æ­¤£ïÀñ$FP©>Á³bùé&ª“ñ|&Œ»œt jç Þ}ã –þ·+’Ú«oFD}Þxq9»6î¤WŸëù{\1uìÊóÒ±­ƒ"šôµ Ô¤Çu þttä³è]­ÆÍ`D»êÎObÞË ù¶ó¥¬~7‚¬§¦ÒÓè¥_Ë8Þÿä%Öft#!eÇæƒÄK_ç냛(%™èˆïžAnwøö¡1¬Ùs> P¶â¶u¸— ¿dJ‚KŒØSÏר~L¾"—ÈæÏ|mÚŠ)6p¼¨a ¤û£1"a1Û1yÜäÇ¥Ò¦e4­ÓÂPåVÜÞ½%ííys]@@:˜ÇîÖ—ÐE(^GÌ—2+âD™·ÅvãBË,Ýr3†ïcé5€ƒ½. Åq¾Í±‘²Ôµ' …kÙ²3ÔaGÀ ¾¢¯yù©UxÏ»˜ÎauØm%4º\¸âuÇÖdzCзhlÀ׃6I¦`·ŠÊúSòû‘ &ÁLTjgzù±Ç¤}ÆË†O·®Êãí›ß¢±ÿ&]”FGB.»¢KÐÓ]ú<«Ëó¨ t%¬ÙIj$ÇV6“éÚ-•pýñ}¡ ‰~dd(4îø˜7nÃp^ºØJpowâvã #>¬i1LŠ+$7"×7ÐØ²—vl‡UÚuå‚amˆDÁç.gÿ†M°™›u›ß.µ=Óe$IDôzÀ@VŽŸO*øý(‚ J£¥múuhޭв}8éÉfò"6)õ8y=¦“ð$¯7ê.^³„²ŽÒ)JÆ#Qº»‘z£Ë©dÛhä×Q}BQ±úAŒŽÃÚ²¨ ÃÈ]©…OþG´{•54444444444~GºÑµÇ'¼½Éß󨤤ʆíhòW‚ÝfÁd¶‘¤·¬Å­/ P¸ÍaBŒ¡¤uéÏeóÉÉÎ"+«Q1=qa‹Ó&CêØ½ò-–­•¹`Ö vp-hßeubpÁüý7¬K‹'UÐ5W¨šVô+tD„Æ–ø)«Šƒ‹kOƒ—hÃN»+c K œ4ÚuÝÆáš@0 µó+Ö¦'“Ž ˜wÛb”¬¸v|÷¦…´‹šš*ŠéC‡0€j¶.{“{ þÛ4úµp`œ[?cK­Òd¨ÎÁzª †ÎN¨Ý‚ÑlEƒäd5d?µ{Øf–±„F`‘÷°ðÿ°2¯‘Àñ_wX0è-89šNƒ²É•MVî(.éÓzÒ'ÑË·o½Æ¢wP­ M‘.ÀaÃh°`5B¨“ºM»È¯0ÒºK–¹D› IDATî5¸,P³c% žùš"‰OPÐGì¡  :z‚½7½:ïàH­?؇»¾a]Z©t£K÷ì(0а{-ÛZu¤³5–è–ë9(þòêó©‰éIÏô2ê)Å pä;6Fš7ô⼞ßðCQ°²#°}5ëÛ´ Õ¯¸ÿèO!Û¥5V,ö ʶ¤\ $[Ch8âEnØËŽ}‡( Œƒ¥6la:Dp^ƲsF‘Zþ=öAç“ŽŠ¿ä+æÝó M7wa‹éDæØ\FžŸL˜ÙCl»VMAär>}«Ž¤‹zÒ6É Û~ ¿2(Õñ=Ò¿­¡!ä˜Ì8ìŒ&{Sÿ×%˜”êu̽mƱ3¹ftçæ»žUƒ›ÕŒÅêh¾» £ÑBH¨ã,'‚ÕØãIZóä\¸‡f|JÍÑÀ—,sø‹)²êaï~*Žþßšbøê‘­¶cÉÏæq¶ž…„•€àÜÌü÷ûÆÑŽ‘ÃÎÊÜ\Y%K~@VEÉuìÿa-Ë·º©paÛ(dIB9 ½uì"¥5TÉàbÑ’/)l.›«âÃkž¢l`?ZE†áر‘ͯ£PQ´—’ðpÂôá¤õ¼”ì¬[ø÷­ÝÈ{oïçÕó‹“¿úBlŒf{“NozS³³É‚ÍŠþø7± ×[ Õ èôèÐc;j‚z¢òÀ&v·èJ÷p+RÈYW࣡VÄ'™~ñÝßgT“ ³Ù…gËrvøª8hp#ôéEÏš"ª ‚²bǨþà;‹Ž»(cÛA™¤~¹\9vCzÇ¢˜dd €o5.ƒÄ}¬.èÀÕWg1*gǹ¨@ÇÙ=}ÛJ\J+z««ø`s% -zâÀŒÙ[‰9´ —ÏftNÙ£Î#.†^öŸXÕ/›ô§‘ÚC[9лsp#Ï©&‹Ê9†€Ðp˜{¶°[¨£´T‹ë™:ùŸ¤èŒ#&}=‡e@¬æ@c1±±ÇNV±Ù0-Øv Ýûü—e««‚ TRTiÇnÍvxq^$XD¤l"ÀSÆ>ožØB(ã‹ù/³IêÂèÛrém Úq kjÓ+MT”ʵ̽íÌãoâ꜎Á£ŠJ8°mÅMÍòÔƒì5c4bÐB¬ôBôéØ};ª‚c]µo#»[µ$/¿^ÊKóW‘/ëŽ~×bÃl²` ꜆³¹¹<µ‘ª|v(¥_2÷®—ÙæÓ!ˆ5Tìþ‚õ^jÊÔ+]èÖ³Œ}¥ßQ(ÔS^¡Co1añnãÅ;Þa—_j-¡î[–,Š!ëÖ®MóÄMñæ÷y}ao¸‰‘½c€8Úv,bWáNJÔทU†ntëýßýߎÕ|Ûº5ítmhÙå ~p()ÜÉá”ît‘NðÃD a¡'ùÓG} z½™ÀdnKËαl_“ÝrÕSã1bðP²³4èw†§^§RS ªc/ Ë&'k#súۃᗠç¼+Ù^ §á‡5|׺É(ݺ‚W殡ŠãüL“‹ÉŒÕ pïÙM~qÐçŠèŽ´©žúèzj6>¨Ú·OÀ¹Ñ‹šƒ=f%«Ë‚ïï®óàQŽ|Ïîü|A!¦®Ô‚Ñ GÐê.̳3bv_¿lJ‚œÇ²§žç£­¥xN¡?O´=fŒ‚ŠªO­QIm’EF‰ÇQC|_²Fe3:'›¬Q]‰±Ô@Sµ·éi¤o_Ͼ CÃj“³ÑOˆd¤ÇÐ,rrrÈÉêKz«hÌIn:mGUPU %®ç‰ XQxb“máÉtïÆ—ó–Pá$z(lz÷ ¾¿…JõdÛNûŒL2g’1´{¿†k®{‡Btȵyl©=¦Ž`DvÝ"]TjUÎj1(ó•…©)§1.–è#»8RÙt^ËþïØ/K'ªd¿_^}Ðß79H;oÆcäÀ>´ oj•Ù†ÅdÁjÎeç–Ó¬«j×óŸÛ–¢Ï½‘kÆt ú²þrŠ~ø†-n'e~|úPBŒÁïn˜û7Þ²w«îô4Œ‰ãÎ'I¢W«|øÖ#¢Ã[SL¡±?7]>œ¡#."Õá¥AÐa¶†ßÿàv¶µK¢•Õ‚QUQãb‰*ÜŽ©oNp ³‡sÙÀ¶„¢br¤ÒcÈe\:xƒbÐàK¹,£/RÂA–Âyñí­ÁƒGB…Ägd‘3:‡œìôèÕ»Ï,KÈ?å¸öðùÁÖLžMvN.ƒÝT¨ºàõ)§’íÓ¬7 º±?ßßwÏ»–Agp^UÎeã|ΠUkhhhhhhhhhhüŽØ¸ôÁÛ98g<ž±b$ŽÞGo@u•±vÑæ,Ù/`¤°ñZ¦OÎ¥å›ÿáþQK¨jåü;o¡UòIa¯W£Ô¼9 •‡X»üM–lQY»w%&oánaö” X}œ«žo ¾,ŠÜ§j †ÛJ?»›æ¯§¸BÇÔW2nöÓŒ˜|!ÿ¹c¹žPâÚ\Âø›GU´œ|‹.é)~³§°cÖ\1×ICi4“^é‹]/Pþåk,\·“ð²<>}Ù‡–Hÿ 3èVsµÇtâJ~`õ' Y¶×š`ð43ò^hYÈfOÅë‘Ñ«•¤œËm­N µ(¾:¶¿}/w¼ùN‘r÷¦MI‡‚§ybx.•žPºÝp]Ú;À[ÂæßÐâ²ñ l T}þ3_XC~)\yÍ'Œ¹k>¹-›.ûðzܸÜ žÃ[7±5&†‹Ft'Zw.äþçßáëvå,fø½¯ñ·‡zq÷ô‰|&` Žÿ¸Ÿ>89T¸‡o¿r0ð–´ºø"Ú~‘§‡åRésÐ骫éÜ*ФYÙ6ë\9¯‘úÒ(Æ¿|vB¹tÎ$6ñ‘zðµcƽ±„:9ÿ²$æfæ2Ïl#¹ïH®˜J+†ÿثܕõ*Õua\0ç6´¹*[§Oc’Þ·<‘ëõý •“ßyÃîz©snçàƒÇÉö÷2´¥‡¸[xjè8taz¢Ò.fìÌl’m»Xóþ <¼©ƒP‚£×Ýü½mö™ùȇT××Òss®î„O]kþ[ÍEŒ$Õ_ǾϞgök›q$´ä✌ë(ä-{†/•$.ïܱ) Û“[ìÏ=÷Más‹ ><4‡ õ@ÀÃî÷îá¶×¶S×`àoWÜ|;ÇþÒþP)Zý*‹Öí&²|?>ïE™Fæõÿäò´C|òò?xbY>ªî5ö”Ïæú)CH=ò>?·Ï67°a×[düýMf^‰éÉëõpߕ˰ØLè‘-™:÷12oyˆ+Ÿy˜‰Þ"ZP a$ ¼’g.øm>·‡jðOßq“Ô#Ø 'óÐ;ßæ†¾Öÿ-aíHĶþ.¦.ñt¨n}ïz$¸AUöãö‚¡,½³§€/{ˆ7­1àVI¼x‰Ã¦Ó5-™Öíî`öÛÏðàôñ‹€RMúÀ‡xx\,!©\wóN5_ˆ€ŒèmF{Š?]ÛåFBúæªÊ¹¯…ž\rÞ§Ì_xÍ¥EûHjk: È~FvÏQÜ9a ='ÞÏèvcÆÄÕ„¢[¶ RñK~¼>鬅l­QáØÃb©úÖGî ÑdNÌ èÙE\•õ«„'.‹ÞhÆå )M…zª„kÛK\qù;˜T=º”=9Ó9 'û$„%2`úߘ‘À“CryÖh'å¢,®ËL ·œÏ•eëêøïæ7¹löB®¹ón=z—¿" xÃè7g}t"%Û×ÐÐ÷zRÚv¥gïµ¼‘ËSz;-.Ãõƒã!ï>üd [Å8¾Y÷*øÜ¤Løw„}Fi¯\:Zƒ‰¿ÂÕ¯°hÝ^"+öóÁQOʘ:°;'äp|\N.ÑÁe\ΣÓ&2>\‡ênà {.ê ÷°á›ÞÜŸ”’¼±àY^ZY†yÙ›lõ“g cÁs·3áEÅg¡çm÷qad<]æ|ÇS&°4B‡QŸÌesîep²‘ÃÙÝyù¶,õ†’ÐáR&ÌÌ ­²ŠGžý7ß ÑUÛëNföH!Dçæ›g³ëÂø[¬ñ—W«Ø¹z†VƒÐ3ñ¸¢K ïöù\9é]̨¨ªGDG.ËM!à ul@Äç“¿×OLgÜõÌ{ôq&¼íAo àMžÈÜ™".·Ø¼ÌŸÁßÇ®åêQH³+x$3 Πs¿¶Tm|ŽÙÃÆc “ð„]ÄÍW¦ã–¥àíj·Û‹hhÏ•7ôå–“X®b0YqÏ«ŒoJB—ú®ü˜ƒÓš¾ã$Ûf6Cè—Ý›ØSl8±·¸˜-Tªâ"ißPÂ{Á¤[3é6•Ë'|LTˆsTK¢éÕ/Œ=Ï>Îð±zÚ¶ £¸¼ý•N\sÕAfþ{&‹½ÚtÇèLAQeÜnP0'  oä$¦]û£¯{”«{ZO ¹h- ^žÇëŸW`Yþ:n}‘¿E•ñŸÛ®ÀëUNXWô*o­ûˆò|4?è˹òFz–¬æÑ[ŸÃÚ€9ù2.Ÿ1˜üì\¼œÒ”žŒØ^SNãçè±$_Âùa“¹âú­ 4„vÎGÈ÷*‰qùœËÇgPPPÌ¡#ù p¢$ýþ«_y<žfZ—˜„ý•{©Ä‡€@Zzg·æH¥¡`/ÅnÐéCIi—LÁ¤GCEÅõzAÁEbJåN¢hÑ){ÓÓýµGÈ+÷aЃŠèô6DÜ”>D¥h"42ž”ÄpÖÿ›E‡"è7t=cdꎡÂãC"Š–°þÚWûPeEÑŠ»?‚šA ™ÚTÑIee95®@0¤È£Òh.SX\‰' ƒ¢ÕªñÖ“ãòœ•Ô0*:k‰iIëË(.©ÂM(‰-’ˆ²TeGj1Æ'i í¯Í'¯Â‹AŠª#:½1–c |wC#nÙFl¤ú²*|‘1ÁŠNÅUÎá²z$EEH„¥v&9ÔEÁÞ"\êñã¬àwÖRU§'&5 ¾úJJ‹+qJBZ"QŽ`â®.?Ÿ ·‰HZvJlJvù(ß{ˆUÀ`Š£eë(Œ¨Hb%y…4b#"6ÄX;:\%”UÕá#œ”6I„™õ¨Î;Le@B¢iÝ!ŽãcÆ~¿ŸêêjÏœùÑ;w"9T8…l«Hžjò—ãÅHHdI‰˜ðSWVFe“–ÔŠÄ+z±šùU2ö䤇7Ýè%ÖQR$Ó:‹ÀSSJ^Y#æâ“’ 7ç–§ºˆ%„˜¨H,ÍÁ8%y…4dTBHîF˜¨ îª#©öcЩ&;q)i„7M¤ÚÚZ ¡¡¡?9«ÅÚ|W‰ Ë(ªŠÎd!"±%ñU¥ETºdtªŒ)<Ä„(¬ÞJŽ”Ö!J ²$šÜž¤pãÏJ¬:]NDQ$:ê¤ µê¡²°ŒÚæ{ UP-Ä·iI”I@n(`_‘ tèØãZ®Ã×PNaQ-c‰I DÙ §ç¤ÐS*Š"µµµ$$$ü¤t—¦¸NDRUÀNr»tÂôÁ¿Éb=e5zCѲXOEa1µ~Tañ‰$D;~öŽ~EQ(--%9ùämeÜ5唕ÕâÁLLr ±áÖ`õ‰§œƒÅµˆAÓºñGõTËá}¥xu&ìÑɤǘpÕ×ãUlDE6%ÈýuÔbˆI$þèsO¢ °€´Ôã—²Ÿúãí€=’ø¤B¤:ŠK+iô)¨ŠDH|k’¢¬ Å,s "Ë iH°{)Ý}ˆZÁ€ÅOz‹p MýXVXH­ÏLD|" 1Žÿ©*Âívãñxˆ‰ùµ!G…€·žÊz#‰ Îr *ña'*!‘ø(+:djkhô 8ò^eÔʼ~û(ZFü••…ÉôKnà¬oÄ§ØˆŽ´¢º+).«¤Ñ–ðpŒª˜„plbmGÊý˜ãÛ'åq¤JEÐ Ø"c°¨BCU]FbcC~ñ† •¢¢"RSROgoC=uN=±ÉáÍGÝÖ——RQíD@1EÓ2ÅB}JT|½¤z •á”UŒa)´M i 87PW­™N ªb&2ÎBcQ-jh(aa?–ëÉôï‚„»¦œ’²zDÀ›BbL¦ãUqq1 èõú&çDŸDЉLnI¬¡‘¢¼"°—HbLðˆXÕ[MAi Þ€‚"I8Û‘iÂU¼Ÿ¢FU°“Ò! ‡ßÇú†òm¿¯¸½wp´üžZJ—Јè&Ù¼µ”TVãôH¨MþŽ-¥ ž%XÒòÎp  â«)àHµd¥É¶X‰ŽOÂ&–s¤Ü ¨Ø¢’HJˆ<Á–ÈÅ,mÒ’BDzP?”í>D`Àl£E‹ Hxêj¨uˆJŽÂ ¨¾ZŠËªpúTY"$±-©v‡ Ê%TˆnÝ‘8³Š"ÖQ\è!¢U2‚ØXIQa>,á±$&ÆbÓX_JIy ®€…¸–éÄÚr#Ň=„·Ž#D?Õù‡ñÅ´%Ùœª,ÒPULiÿ˜ëˆ!9%cC1Eu¸VZ· Úôsª¤JRAM«ö±Ád£â¦dÏê!¡ ¤¦„¢?…í0ýÈÆIõ…(ó ×©ÈŠJdZGâmªï£ÌcÀERz,Vd<µå•ÖâÇDDb ‘¶ç‰ÜHq©LLr8fÁßä×ÁGË6Q‘ë¨nГ¼Yl ¼¬œZ¯‚ HØbZ’k êHµž²j%©CK"ô€ÚHþÞ"ÜŒa$·IÂ('ùG¨M„F'†IvQVRN­SDUÂSÚ“f ú¡…y8ÃZ‘vаRÏžo>â½ï;sÿ¬žÁ¹¿â ¾®ãÂÉÙ´6x¨,¨Eˆˆ!*Ô|LÇÉ *Ã))Íë.ƒ!„èÄPü.=ññ6¼ õ¸d±‘zêª`%Â5E…T5ï¼W̱´N1Q]©×ÔGGý ¢âZôþ¾_û. |“xoF'¼õ¥ós’H^k¨ƒK“–ID'Fbœî+©‚ èˆNoO¬ÉÉ¡ÕoòÀÚ$æ>œÝ”Ð÷ÓPQG!*6ôgÜOï¡<ßGdzbé jÁ`6b ‰Än¶Õ%E”׉XÂB1éBˆŒŽÀar‘¤ ·7€-*½d!>*Ê®ýTœe{)l0™ÜŠ„“ªoÅzJK+hð) HØâZ“êÉ/,ÇPNXW‰µ©jÒ‹¨ ‘‰©DÊ5U!"`‹Œ'1!‹ à,¯…ˆpfÃOØ,WÙ^ -DÄ%bu¢¸^Àd³`¶Da×£øê©¬q#©2Š9–V-â° —ÈÄ$G`œÍë*ƒ#‘6Éag¶Ÿª‡Ê /Öˆp&¥¥2QÑPU©›Ž Oå^òkBÛl­çÐ2|:U°…äP-D…ŸâÙIqY€èÄp,:Þª}®R°EÆb– „GªÔÕH8Y¶kÜ€¬6p5*8¢Â°™ôï0jN%¾x#ÍÁ7Td'ynÂÛÇcðÖSS&Ù2©¶—ÏHxb?×›)(, !!‘ººZŒ#F£ñGYRA^# ºñéPêê~”\M+(8§s¬ZXCCCCCCCCCãÿ1çfø·çäðoG5_=±˜¼ÈndM¿äV“(ßµ‚7-`ø’›N78uX“é3qrø7Ò6ˆîõü{èç Xó0üâïï㙋_¡íÇ04Âôÿ'h­ñÿµžýŸý‡›ZŽÔ*ƒMkW=ÆÏfö¬a¤ëÿ&)²Ÿ5Oeòðj FÌĤŽâæWÑûløÆu¬šy—~Ê­½µá×ømÙýl^M{—DzâOØÈt6íô_)¬­¡¡¡¡¡¡¡¡¡¡qF„?aN'è~§_Šâ™×ÒOoüQåÉOc$®ãf¾¨bÑÄìÜ‘wrnî A>ÎÁv›²£;7Û¦‰ôo'‡¿ñxÇö½š9'áW@UÍ„E;0Ý—Ðü;Mï ³½/³>êõ+ýš6\ûñC˜´ä¯Æ9?™Âi“qïô½©Éö«2˜í!„èÿ˜&éô&úÍ\Ê;ÓƒsÑ`´ïÌ> ˜"RÈœµˆ «6ô¿=í®ýˆ‡M¿Iò÷¯ˆ–ÖÐÐÐÐÐÐÐÐÐÐ8-‚N °¨ðOÙvUUÿ¼>?  7Z±YÍè¿ÛO’Q0c³b<á{>·ŠÉnlÚ=« ‹^½tV« ÓÑÓ]ëxì±<.œ2‚ ÒCˆÌ„„Yƒ /իу‚£Ýíèw…¬^º’ïý½™qe”72 7Ù±[èP]îæ÷Ì!„YN½œS”?˜,FTdчÇ+"aÀbÃlСþGÆç–1ÙM'îV%|^/ŠÞ†Í¬?m‹ ƒÍˆm'j IDATàjp#! Fl¡¶“ú@EöûðxšÚg·a6ê8q\šûoƒÎBˆÃŒEàuzð zÌf+VKPv>>1Ð,;&½Pð9]ˆŠ‚ŠG˜•_ æÉï|²l;°A‘}¸"² Ã`´`³™Ð5ɤÏçGPõ˜ív¬F.|?Ñ>Eöÿøe?¯¿œªÑF˜¼NUEÅ€-,Óñ£ Jˆ>³ÕøëkÃ?.ç1ù6ÙXõdz$!+:Œ&}pþº=ø¤ <ë-!„˜ g¡.MÂçö"JǶôX̺ccì=F‹ «NF”uXš_F%½“Awúq> mõ8=”`¸Ëh Å®i „ÚƒsW‘üx} æ+‚ß‹Û#¢ 3X°Ù,ÎRSd¿¯W$ 3c·™ƒóDöâtû‘›6´¬¡„˜t¨ŠWÀz¼N”$ü’€A'áóŠMò¬Ãd³a1~Uå"H¦äBÁ/Êè z zÝô–„§Á…½Áнùs¿ÏƒÛ'¡7š±Z­ÿȲÕKÅwKxøíxþùÔ0û]ý=‹æ>Ás«Ñ1ç6î¸aíCO~·nŠõd[Ò$Л±Y-˜ôÂÏðkŽÓz+öÓt”‚_”Ð M:G9Î>ŸÎSƒöÙå%€ƒÉ‚ÍjBGÛ‡? £7õïNúEÑE£Oj²áA[e°Ú°é$ÜNoÓûýO3~Ü^oSRç8›oÓ#6:Uš|(= À[ïÆ/èšt£Ýiý°Ÿç#ªõn?:½³ÍE¯ ‰><^?² Ãlù±*¢—d"ÄnFwJ¿îôr%Ðë1Îä+Ãïm@ÄFÈqþªðz}&;½„×s ¿É¦Ctº›|E0`=~¡6’·r.7?¸œÆ„( v#þƒ ôžp'¿yi§s,Õn§I=zx½€NgÄê8•¬ñ#j>dÆm.î{y1~=6»)èûŠ6Û™|X…€(ƒAñè\>պꔾ¬Ô‹._³~5Z¬X-ÆŸíߨ²¯(`=]Å],xfá}3Ƚ$ý˜×}ÂM³k¹uÞdÚþZýÀ2n~à5¶ªæüYïð¯;¸áîîzi2­ô2n/§·Õ?‡­Ï3âîe8²þ½;ûý’'IxE=Vß×<øÐa†ÌÌ¥_‹­bõ,£õ§††††††††††Æï‹ä¦|ù?ÉÌÊaÌÄÉ<±ÆÙ´:Vð»ñõŠwY03^ Y=÷.¦eeHæÌ[wûyqT6YY9ŒÃ蜻XQu¦ß,bík÷06c$Y#3wçKlÈW€X<ë:&ŽÉŒÛy·¨>˜¼$w5ŸðЬ©m<ä±jÞß’™Éä¿?ŪÃRóO8·oƒN-IO(âíW1!k$C3îâýr'  y‹k3sÈÉÉ!wâDþ ¸ù»þ²2êü.Zv·ñí3#7cY#2™pß"v–*Àn^»fã²rÈÍNÆŸá–OŽ.(øÝlZóÏ=¹e¬ãA®ÉÂÌüû³¨?MÉžZJJ—óÀïS}Òߪ~XÎ?nÇ w54OúiуÓõ5Þ²ˆ}õ>T@Ü·ˆY£F““3šqcþÎÒÂSíê®`óÛp]æ†d^Çãn§€,œy FdhÆ,-m@üîÏx$3‡ìœ1Œ?— ¸Éßô·dahÆüý_+)૞º+‡ eHæMÌßRÐÔ'ëynü$Æää02ãaVº¿JŒO~gå´²ÝÀOŸbJæpF Ãõ÷½Î–F€ZÖ<}“32™›ÍðÌkxyc9.yó'OflN6Ùÿ`y­ç;ÿ8´~>·daØ+¹ã_«ÈÔ#ŸóÔß/gĨrsÇ2*#ƒÌ{>¤l÷ûÜ7i"¹99ä »×öúŽÄÜÅìüî}ž~`uÓÜúU½ÿÀk\•‘EvN¹“¯äñOË›~BÂïÙËÇo-áÝ÷~ÀàýŽ—ïºžÜáÙdÈäŠ'VSÚ(ÿïºÅ·™'¯ºœìáYŒKîè²FÎæãÅSCþ²‡È™MnN#']Ãì·Ö°oÍ"yv¾ã‚p¯>ýËÖ}§ç³€’¿œû/ŸDnÎhFgáúEù([Ÿgø¬7(P\\ù7]ý;ªÙôúýLÌ ê¯±w¿ÈúüÀYj‰Ì‘Õó¹sb&CræðáÁÙ_ðéãL<†œœ\r²2¹î…-Ôùd¤#K¸þ¦¨kþz?¬^ÈãÿzŸ¯—ýƒÜŒL²rs‘9‰û^þ†Ï/¥ Xóù»¼Õ0™þLw²ÖóÝk)ñeóþ¦M¼vç)’¿u˹é†%ä˧©æ“QÿÇH,0ÿÊ çN~øði¦gd2<7‡™Syò£ï©9C1Õ}’RÀËáoŸgVæ†dLåŽg¾h²§ |x<˜{ï[l9TÛä+hX=—¬±¹ŒÎÍý+«Žó)Ü”ÚGüÎÔ}ó/nÌÂŒiÜ3ÿ« Ž·óê½7’;,h¦<þ9Å Ç|ª‚5_–=Øý ¸2cÙ9ÙäN¹Š§VTn¬~Ž2‡‘•5ŒÌkbé¶ŠëYŸ“ºú/xðú%4U›{j?âÁ&ý0yÚ‹|wºþ ˆx=›™ÿð"ÖýPÙ¤sv0ÊŒÍMnÎH†<òEЦhˆ(Ù¾›22:&‡‘Ã.çÞ¿¤`ïgÜËT233¹îÅuTº~¬ƒJ>¾ƒ‘£rÈKNö(2FåpÓ²ÝÔn›3‡‘•5œÌ«îeá–ZÈ_Éc·ždóï]A­s5sÇŒ'7'‡¬!ð…¨µGsgæ0†˜Äu·-f•§ñÃNêKo=UÕ+˜3ãJ~è*gû›w3dèp&̸ƒE»$ ùò¥»™0d8#2ÆqÇË_qÄw¼Éñ±q~—]µ€k$#2îãý’ú|TOå~Þ¾/ƒœû¾äxST¾ùMî¸qO¬(Æ_ò_ž˜}RÞõ ìàù!#™3šÜÑ£3ö~þ[w¼€¨ÈÖTúMœÇ†?cí¢xgÎ4zGøœ©ˆ±êC®¿l(£Fç’;z4£sÆ0eú¿Øèþ+,ý4žÒ§ý%6ÓˆÙbÆP¹‚{îù”jT¼yK¸éÖå4žn.K~|Þïxõ©E|¹¹¸IF~àÕS¬«äC¯su³/;…Ç>)üY÷27dd2lL#†Ná¡7ÖQHN>é§üW ×þÅÜ4ûSœ§µCcp£‰î$ûdúŸìS> ßÄyW¾Ä¦M/‘t`%1¸ÉZÐCÙRf\ÿþ)çüÏã{ž¸m7Ó_þ’ 7ýÂä/ îfáü÷øvw5:«  ]Qð[ Ukhhhhhhhhhhü®Öü“q Z²ôëI=îsÅYÊš÷pÏr®¼ÿÉ»ŠíߥeÞKŒ{k=—´L¥gŠ‚ÊPžøz6çÿœmtÕk4^þ4=^¾yð1vnÜJãÇ hœ0‡e—¶Ã¼ñ^ú½°ŽQ ÃaÒQþù#\=ï{tÝÿÜ•ï©`ÓÒWXTw9k7½Ô\A¬ €ÂC:ºv‰#oÁ?i¼ò >†~ýô»ŽQÿŠ¥>À¥ ¿âª6 º×òĨÇY1ä? †ºF)‚ޱàºäJž¹®­NVÌzµ›óhÓz7Ž{±ª³pòþå³ø¨b$“«ËñÕñÝ›÷qË»nÎ{'V ôëÏØ«$qï¦t.\Â5o¬g[»t·3RUT!&–pK0_µúŸ\=w ¾ö³NX(Öî[͇¼JMÊhº‚•®ªJ¼z;á‘vŒ€¸ë-nb1ÛÔ\F zÊy÷á/¾üKF;€­OrÑ?–1ü¥\ÂŽ{vÙ·«ÙÝÊì9¯ì}nzmÛw ñ³§iœün…iÃÝ\0o=Y^ÊÚû#~Ñ·|Ý /›ÉŒ§¶±ršMŸo'kõF^Öíà…ñÞ×ç3Éý-/ãÙ Ï‘¼wÞÿ±÷žñQUkßÿwï©Éd&“Þ{BBBè½7¥)"MQ‘cʽë±`ÁƒTEAAP)Ò›Ò;HH…„ôd2™^öÿňޞ[ŸsžçÿÉï d’={•k­u­ßÕ±ì ƒ[FR5ëc„7±½½óöçé7å Ã>îûoËñÍ}öTUü­l»©»|”ýÛ-¼yä ]¹Ê–KX¶â$]žˆÂiKcü{Ï3zXÂ5AeÍÄ÷±¿±†mÝ} à+º?±œ¶«%æÆLS“w˜Í?œâÞ]|«)bÕœå|³0ŒÉÝÅ{sïâ½Æ¿Ìþæ1–‡ù²iêJ:ÍÛÂôH ç ºLþ™{~O¨ÃBÖÊ÷yzIICÞøKÑ'2“À°e{™¶ŠÌzd:;}Î@Sëæ¼Ãô}AŒ~©›G¶Êkˆ}ô3–I ,þ›.và‘ŽÅÿ'à²cÇœùãHk*h¸Éžû·aõ¾)Dجœ_ó-gehšF "J¥E# w»yþë8Ïì ÛèøÝz¦%È€\~S‡Øõ¾:>€E;å­v—9°ï?þ°ËYx´%sŽ|N&Žf\À«Þþ m‘‘8ä%æ Âü©GÐËJ7¼Ã³Û™ºòRÕÅ|?ü!žõú–Ń•xÝ…" ʨä]+î}éaž¾?ÈgÑ“ËØ¾;”qÃÒþtt«ÛTÎÁ…ÿäÍõnz¿!“î¢]Ìž1ƒµyû¾‘*¦#_ñô´-ú?ÆÓHR»?û’¤Uûù<ÊÊñeoðéÜlV?¦fÃ’•dú¿@Æ‘ö7"Á÷ïÿ<-ñ8])­ÁŽ}P0z5" ååTÔþD„éñ’ýwÌ•’±”âÜJª=%•Õhd6‹£Å ’Š€Èpü¼ä8ª €âœ”áñSNQ¥A+}‰Wò÷ñ¼n&Õu2"t(pc­7b±+ð Tbª,§²ÎŒ%þªíTTKx å”tDzI 8¨)ËÇØ !SêÂëÿ)ÍÊ…ÃÃ÷ÍbÜËÝš´ý$üäó{ÿÅò”'‘ï=Ïè],ä8_,ØÌªmé¼zg$ÎK›ùtÚ×l¯ìOûk‰ŒiŒšíËœm;H»å6» C¹Ž–/s`W!îÍ` íSîaýþ<›d vÂGü43†`*ùñÞ·Ù’Ý‘ ]‚Q ..÷âŽ×ƒ EîZ¾ q`)ÝÆOÏdoÇ—ˆ Låñ­¯Ð[¹Ëæ²÷üI ; !¶ÉÒ0›Ç³Ÿo$Ï÷&`f÷'³ˆÿy?ÿŠvpzù+¼ÿåÖMjÕPEUŽ_ˆà*ÜÎŒé³Ùp¹;ñãû{î4¾¯e[+¨c帗YS1„ûý \½jE‚F—+¶ÞfÚ×÷à­1Å›ywÖ)’Ÿ˜Ï´Î¿¿wGùŠýc°–²êÓç) õÅ%gÜ–CÜE›¾gûñä>;†ç¿þì¹9²<&–C“_@ñùnv´ãÖI üä ƒßKaÿÜetÚxˆ/‚+غès¾Z–ÏÔ–ÇnÑÑq.ž»ZùÝÔ.ÃY<>c7OóRãy{å—¼} /ÛÏÂãâäÒÎ ím™“1‹x×Q>üp?»µ ®W ¢Û¾y³SÑ4/*…ÝïL!ðûƒìI‚¢µÏñÈgÇØõf§ß®òÒ Îú”%çÓ˜Ôg0r,üòê'ԟņ;£Q”. ïó+i»âq’e"Žš6Î}–“Qй\ºnt¼z|5kwnÅ>˜x—!j(ÌÊ×Nç¹³Ô?% ÙµëUÚÿÞz’<ÑÓÀ f«§tMO°P]j@ð @¯i)*¢j÷:›çÀç&¥²Ž«¥6§›Â?­se)ŸPB}Q vj¯–QÓ`Ã…Š èHüä&ʪE4båá Ax»ê¹RPŽUAT Ñæ§Äj¨¤¬Â€%º ‚õ"†‚«ƒÉ†Ýúðx5"ªó‹©•@|C"‘®"Æà«pc71ֹЄù⬩Á"x¡÷÷ùRÂXšO™é"k¸yô_wáSSLqµQQyû®ÃY_MR£÷U#HVjk¬(|tø¨T])Ã`eM&—7® áLþP@‹•«•5¸ ÊJ‰Ô†¨¹ù|t_ÞÏ׳>gEN[^6Ø“U'ë >oÿÈÖô¦÷ªáŒ3ŸöòpÔìfÆÓØu×4â]átí;™9ÿÄ Ÿ' ÇV¬¦$:†¸ÔÖ$Gø£¾ÝvëvPWY‹Û颠ü*Þ~¨­å”ÖÙãF˜ AÖšR ¯8pY”ÆDá×DnŒ”äU`DQCh\èÿ˜=Ã]r‘üz߆Kœ-kÅ/¥àÜŒ@‚àÀP^‡„@Áå"Ü~‘„¨ê).¬Â&ÈPkü Óá4š0[Lج6¾!úªåYš}–<|‰¨;ÇÅ’(¢|(­´¢Ì‡°Ø¶:*«o'Ûa„¤óÐÄVxÛ÷³}C!‚èÂXQ„Ó' o+5ÕÈ¢#ð•ÑŒÿ%š ÀÍhF3šÑŒf4£ÍhF3þƒp°cK.÷½ý §OqZ¦$<9• ˆºH¾¼€°ÖëØœcG¢†‚‹þhü=àÄŽtm8N½Å ˆà.çÜÁ£È5*ôq­ˆÿ£›¡*m®³pN„Ð ‚£.‘µ±-©}4ž4líÐó«<Š%©ˆDÞ;“ÝWóÌd'nÀ\WMþe#CÇÄ’wê‚>”¨èp<<Ã2ÎzÞ®˜K':Ñb˜Ú“¹Ã@z~]D‘ä&¥ý“ƒpÙŽHIE«Ñ­åÊ¡‹\ô.Ŭ £C ‡Ò„zг2Ùk"Ä?‘ä°Ë\ÉëM›ÄFò*n ã«–’ï¢I:A;6‹KM/R4!´ ‰¢¾°Œ ð7ÊVðÝî6Üýe+„ÒãäŸ9‰*o”ú'GxÚ<²_:-gÊJ ÿû\Y‡‰Lh”[»Ý]š¿‡$óOeì{ß´âWrLžôÀ²ØÁÜÕäYer^Zù_7 2ÖRÎ9€=L‡èráÖD’WÅî]¼·êa"¯¸*5iãþ{ëÏäüq¨~#Ût†ûc½rˆcʶtŠJâ±'=oLõ?½?…=.=gÏð^’†ú²´ÊKd_.AëAç®nGEÿ5ØLØœ" ñ«VÃøç†’¨¾öËh&üüÇ>HáÍïF¢¸q9Ή£¸wºç÷á-»“¶<Ÿœ² ŒNèÓÛ¬S'PEx{²ö? ApIEì_4“/ÖæcGKÒ°xîåa$ï`Ág+8XlD&VR,ÝÍ—‹ž¥c ÷!bÕ•óGÙµ}7g½ŽráíîïLYÎA2²ˆµðìdÞÃéu[).ªfúÛ»I|ÏI_óÆ÷y(¥*Ž¡“ß «ìï|§60möUþ±òMÚPÁ‘5ȬJä¡'Ù9g[²Š±˜Õ´šð6¯õ-äã×/’œ|ˆ]GûòöAÐpµÓÖrôˆî`îžö´ø)!«€ š)/<Å Z¢5!D…áýc,ܤ“xá›î…ØP• ¸÷ÚÙâM~yf"ñn9ŠÆ¡{ï,J§„ìޒÈW_Àuê4§”Ö„ªà6rqË—ìOšÎ‡]NóÂy 1“#ûïeè4Ï|¶ëOû-”ÓÉ£·6y¿Õ‹g§ÏA?ç^V'PJiAgR"½€‡jRl…x{!G¶, xÐ/Ì [à _ È€úœÝìÍ1Ðâ¾Ù´?½3nñf½ôêO,ÜÕ{f§àM.’û*g3#*èc[ëû'w]pœäËÇ¿BþÄ?™4"ߦKјGÆ™3I’ ¢Öú¡.ßÀ[ŸfvDóã³\|àWþÙÉHöžY¶IÃ3_ÜÁñ韲KÞßEÂm®aÖò,.U8¾d: †ñ¯Ÿ!Ðnâܯ3y{u ^’€&ª+¾1q÷&2­yá±ö(ígX0ûÉ÷ÞEŸƒÌx-Vw%~ÿ@,[ÅÓoÂÔŸúsxå.^PòÉ;'øôtžì¨¾Ivdqxyv$úéxÙœžµœúãs¯’Â'òÆýÆfS{tY™°PSZÈÁÜ(âä~DD…¡•{Ñéñ{høäC>[–Áè }ˆoI‡hýMcàr–s`åz²³T|òϳ ÷,éy3ùtK%^è:–ç&¶ÆG¬ãøæyìYcàrŽƒô—?çƒÞ’'c†ÌLÅÞ5L›÷ ¥(ˆdð»“y(MÃ\EQöeŒrÙÒ."SU\X¿‡seÇhX”Íþ1X+Ú0ãS-‚XË•),øìCt~l2c뙲äu¢¿Ø^L˜4ó¾_øeÿ9\’’äÑÏòð Î %ü:o+…B9ed³2ùq&÷Éä“%9ˆ€ÌÊ€O?âxù“ÛÈvÜc¼ùx;,?KzO/\ 9 µƒÓ_?ÁŠ´o™12•sïÛÈÝ[¾d3‹ò¿E³¸ÍhF3šÑŒf4£ÍhÆ'9µ¿UŸpÄ-Ã@⽋x{l€çrâ2a²Øq E&—py<÷…B®Öa0[q¡'©·›uóç°Ç],éU¦¾Õ ?Á×Zrr¢.˜.ñ‰Ø}öãp7ÖáR™w 7¤6’¶+nAƒ€„Åt–Œ—()Ÿ­¦ZDÿv ümF¶SÂù£d§øÓ66š:1 çµïTqé0å’DÊõTsá—}”¤Œä P]ÆåÚB,ïÆŸFÓÙ]dÚé…‡J°’µaó3bõÆ(Bm€êVÂЄÑì@@D”¢³1òAOpUæúœŠPÚ èJ` ÊC¶^{¼ÁŠ OtŸ«¾˜Ý‹?fuÀ›¼k>Äî9\6{s©¦ Qí;âÔ„áí)Pçy¸ÁŒÃ-n$ôôžØ’ÇOg»¯™Ê|%cW*¬×,oÀÁ%ÛPŽz„T}8¤sìÑùºì› IDAT|!7rù‚™a߯»•ä6a4Ùpÿ]áxîr²vdP‘|¯É§Ó„Ùæä·!uµ6rRׇ'£¼ÿ:A!*PÖŸfí‚L”^ ·gÜCÌ|¼†ŒêTú˛̀ˆëϘP¯Ïóß…(îxRΔ¥_³5q8Ov‹B߆nQZÄ ÞÜ׿3f¬ÈÃSîÀðNnAdÌ,œbàBŸÞtOO$!6š ï¿9B&"+¯ <¶ÝÂÔ7Gó¨ˆ.ÖdÎl&¬Ž¦õ¯­C+ÎÆZÅr2{cŠGrž€Âlòêk9²ñW '£®/C5”‡žzŠIÿm#Ÿ€(š(8½_úòîÎ t0cæ—;عGËé=›±·šÅ_wAÇaÞ}%•$ý—ÚêETסŒ{CIjCGž¾¿ÆÒ~ «µ£.\Åcû2)êÑ‚/™¾-¢PÖíÁÕo «ß’CÙ*(µÑíûÕ¼­€Â5/ñäÔõ _0úƶû=TÄúàØ²™ÅmÁ¡ïÍ#O<Æ ¶þÂQà†N28°šÕÂóÔ×. 3ÔQžH3³»Ó„Èâ\F ¦qTÁ\JèÐÅ|øH$^6§R:æyZÙÏ!s4žó>è-v¦k߉DíÁMœðéÉ㑞úôÖí›8ÿÀ3ºØµ}á*çwfRÕòn:(Ü”çàÇ/·ãî4šû;G¡¾Ý9m²à¼¾dä(Äký“!÷ñÅ?¯ˆ2¼ ŒoE'«/~Mõ«ù–šò&ή™Å‚S-÷ö(‚í ó§[O7á Ï;4¾xiÎóÓ‡Çpù¤2âÑÑWpdã)öؼ¾u»wx}Ò’nkT”°Jرþ(­ÞúgãrSUx”•3Öbl5ŠûÆ5é¯ÄÞE[ñ~èeÒ½d–Ûq4ztIþAD\:E™ˆB~M‡R¢Rx¡-*¡¶u²[ô0“Á„š€ÇÃh½î(æräØ rëÞgŸÕ‚ ö§Çø/™Ø7ØóûYüÉ?ɯ®%jÔ‹ o@ÍšùèTKè_Ìñ#YTטÈ8í…€£q¿üü Î=IÜbn|¿Ý„ÕîjtÜÑßÞÁɃ‡Ù]ˆÆËˆ!¬ƒÑÆÙ¥ùÔñ:Ÿ§fËþ‹ÔÖq$ó¥[æs0ì^¬É`Ó¹\*|ü)0&¨UûoC}ÿS´ð|Iìí`Ó—³Ù)Õ¢Jy©oöÂïÏØ€%@ µgdÚ["ceˆW÷²`úi”H¢š€Ž÷ñLúTžüfåß¼ÇE:¾ùi%+fo ;{ k3±´Ĥ‰©Õlçí)ë8?#uí„a›YýHõ›yõ_Y<¸e÷è¡üÄr¾ÞVÍÙÝ—ØsXÏC3>'±ö$‹ŸbßáhܦLÝßåëO’QU¬`Ø[(»ÏÉÖ7~ aþ>º®[(sŽ`Í/Ð6”Òê ÷½F´ÜÄ•Víh'‹Äç7ãbâòÉ‹œ;²€5GÃyð‹U¬ºv Pjh5îf¥aµ•søðÖnÍâ jIvC×UkЩ.²ð£õÿcŸÞ ŽíLšTƒ €Fr"¹÷õçØ?KǬéw b¡,÷(Ù¥T¾ÁÄ%&æ#€ÍSoüæCçÖ{•pã^%U’½í0e)÷ÐA€Š`r~å‡öãÔ¶eäø§Ó#=ýÞ™I?rùáí/ùJÛ‘û;w¢}¿dë¤Ë”ÑŒ|mG¾Ö3cêDÀÝu23:—!Îñýbö×á_i tàë|4&eÞ|F½û+g[†âäÈÝG˜þú1Ú-|‡Ç$¦‚-|>ùg®x¯Š¬¶”ó>^²æÄfޤߣyä™ñœ6´¦Ãƒ÷Ñ=ú o¾\r=z×í fØëO³ñ]‘™_ߪ|¯ /eÈòÏhU_±½‡Ù¼h?㯠…ôäÅ$î&1dÄŒG8ðr%/ÌKw0=:—Z—ÉxwåQî¤Àÿv²ýå&NžÍ­¥Àݦ§÷s3}r&µ#cÐíÚÀ…'^bN³ñ÷/¡ÙÜŒf4£ÍhF3šÑŒf4ã? ‰|°ø%OºÀª¼ùà,ŽŽýˆî¿!{$Ü.kÍL>jüà$œ¡“§3€bæõ}“_ëÇøˆ?~·©,ƒµ‹ÏÒsÃUäÛhRoÈ„ÑOƒF¸}«Ýn¢âçÝ÷„Ó?.â×-›(i7{ö%}{á«åœCàFЙ?4ׇN­ù™­GýxðËÖÈÚšJJ«è>X½çõÅ{ùyq.I#î#=æZòToºOúšî“*X8dËglá™–DŸ»‘Ü€t­ž” ³·Ü]H埦þáX¹Dny¾~dÖ9+uÕTÊœ¼Ø ã£÷u–ëÖ6ˆÎ ~út-)߬äý°öÍyƒ‹Ö0êŸ#Ñ7SÉ ’t­¤ ‹ZF%CtŠˆ×-Ófêý}ÐnÜÈoDkXm˜ý|ðv»qI²ÆÏØE|T(k-÷F’ǤU£– H®FÃ8€ÓŒQ§½Å0ý÷Éö[Mc[×±”m»ÂØM+è^”¯f¯àÀ¯'è0º=é#Ÿá³‘϶<ûŽ÷çÙ)ÿ êÝy¬:dAt—qòJæÝd…PàÓ‹1“ê˜9õŽ{9)+RÑjDB®pW~dSNúlM ÂÈê÷—ôÁ,N’8õÝ‹|úý2Ê&'ôo·}Urìç5ì≠驈£ê¦âÜf–-­¢ÿëc‰Ö(ÿº1ÈeÅ4˜wgÜOº¾ Y»]@ýo ™AòDW\ÿk±q½ü4²I@hߘÝ(ÝÄ‹ÿšÃYãhV}7?™D‹;&â—§¥wãbQ§2úUŒ¦œ}?ÌàÍ÷÷2ñ¹'y OÔߨ*QI£Á»®˜ºóÄ ³•z šÆˆ¥ëã%ˆ‚’€ÌYC~æª+¶p./’Ç?zƒ;ýþÃ'Œ§ëÚ>áÆí´aÕ{£´ù‘ÚýE>ž9Fv}>Ÿ³û’–Ô÷æ(ºÿ4ìv¬V¼»§€w0-œ><Ì‘€nôl㉦o0ápIHÿÍöº<l6 .\ÔœÚÄËö]mC%¯FfðÆ 9ÀbÅå¶brº r–rtõRýZZ »ÝAx¸ QøÛ"Øå>¾Dµ¼“_OâŠVÂËDÿ¾VÕrñD%³jÿŽhTnìñãšîDBŽ ¹!¥é ÏâŸÔ‘ÅW)ƒÿg À^ÄvÇ{ÝÆnŽLû„ŒÌÓ¤§÷#òýDšê$ñ>³—ûÆyj“ƒ¤QÿÆ×̳‹9qغóúÒ—èà<Ì[fqxÂ4ú:ŒäžÉcȳ±˜KN€$6εç;ñR5*ÜTžß²¥ô}e1:Ï›8ňû’›¼¯œ£+×q ;˜qSS÷‘ж£xgá(Î,üˆµ jñÜZ¨þP€›ôOÂí°aÑkP¢$fÀ8žШ;!þljéýÊ·ô¦„ùw>FÑW¿òTÒ¼:ýÎÆg& æÕ%ƒ¸´~!ÛöüBIC †?ÿ Ç'!Rļær´(•ÈÖ·I7.Qql>­Ï2#ù†nØr(¯};”œŸ§³îË« yõÒ½€âïÙ˜Û™»NFM.N§ìºsŸ`3cÔëð‘ܸ\×228qºØuÞ¨œà¾I“#W)þgƒ¤D§ÃÌ…‰Ê­`þ’ylôŽ¢ÂΫë? "kïŒã§SHR§’j=ŦŸÏ Ú«(+·±q»/‘×u| lVL~Ú?á4äÂAýÞyˆê)ß²þx"ådtå‹ÐêUmH¹²–9 ]8Må”ÖøókF0ÔAÈN/eÖq3Ue•tjÎæw"¡MÂå¥lÎíÀàû[⫉F|ö#Èãë>ïñëc½ò'yy2cßN¾mÛÝ-åÛy#š”Fppåȼ’Rˆ¦òðT:*ãñ‘»Ñúø£2˜¹PϹë¹tv+ÁÑÝQÈ\¸Z<ÊÝ©n@ÀQPLa—ÇùX¸-v°‰8\5äNR=#7D*½åä‡ßEŸ6žµ¨ö%Ù Te™dz=ͬئmVáÛŽyX_0 sNGh Ýx¬ñþ&5ѹj9¹b)EF2þ‘`’½šœÑ†<ö¯ø‘Ÿö—¡Ð:0X¼Iì`¤&HDvíN&ˆˆ2bEåq#ÝÊ“H0Ùn©!,a·XqºU4:“‚Œu,ÚY†rWî}°a¿«äÿÞ½ªŠã«V³ëT ÌLCBZ çÍ¥žtëç—ÎfÛäuEÒõ…J÷ûþAÊÕLÿ|„ÀžI¨®í#nì — ,=Á–e«Ørº¥™«Æ(â“Ô…'¡õ¬½ØtZ×ìÁàpàTW«¨¬ãм¹v¢7i­;à4A­òÔ“tUÈ®ë>N§†ðä p”á°[05ԃŎËÝT/—Ïj ¸q\-çªö2ÛgÎd»ÂèÔU‡MÛ†´Öm𔢹qS§Á†Ói¥Áèu5'×.eáæ|\p;MDèj(WkÑ&EüV¶½õ(e2ò¥›u û3îò»2 D\{‰‡ÞJh&OþªŽÔ<ÍhF3šÑŒf4£ÍhF3þs#,ü4G.»I‹A©%Ð׊Վ'Ô@¦F¥R"W(ðÃ/ÀDŽT‹ ògB|h£õAU“Åy!•4? ½?XdÒJeÁ1¶­8‹ÏÀûÞ?3¡¥”Y]ž‹Qþ ޵ˆâ1áÚ…]@å¥D”)Q#¢Tû ô9ÈiÛ} TÉQù(ðR:‘h  "Ÿ˜Ptøz™*3B%÷8Ç’cxZÀZÄþ_vrêx÷9º1âÔŠ¡Î@•­ƒ<})»˜ÁÖÙ„ÞÿÃ:yâ>l—³© jI¤ ðx3Y–ÛtSTá¥R W(‘¡EïëD2Tb¨Ëç¼^N?½ÞTp|[>í;’x#¡¨V “)PJm#Þùª‘üjàÔ¶ ì»Ú† Ý(:~”*¯HRRÃÑ\3ò©•ÈD*o838p6…G}|èýä“dŽùŽcö‘ô®ºÈ©K Z÷ŽA«u#ªË<í«/$ÛG¢»o"q!{©4»=c˜—If‹HžÂ ÏæŠ :jd˜óOr.µ OÉ•œõϧ ˆsÖRl«¢>ºݤݜÆè‰v)Ïâd¸Ž¾ª¢"VPfP úÙÇ8Þª%oý/èö›úì¥Â#ÛAÚ:ªËÎs.¿ýd€_g†uËeݱ, M±øZ@è3f¥_'Fyøãi< ˜ö~Às;Ó‰\†<2ÙH’Š ü[Žä£E#Á~žßn¡>:´‘Lt°ïÇc¨î¸‡ô¸vrè\,C¼=áÁm}‘žC¦aÏ ªQ«ÈdªFúVïOŽˆ¹€½›wr>;‚¦hLE-xFJ®B©P Wz5FÕ“w|/ÛW–Ðî½Wéñw%³7.§“¦±Køµ¥·bó¾À'’¯3ê.ž§V!By à‰Š¶ÔSé° Q4!À¯Ï³×ßb°lEº¤¡{Z „ßŬÙaü³×. ?Ài÷T´j·…Êò«Tº£H¡÷Cïò~årНVROT“Zt¢ƒ¥z]{zîeÍŽs¤'÷&TðìKç¬!¿Çp¼êP”SgêʨS'!SÇÐócyfl4YK±zç2Sî¡£þßô4ydR.W5F¸]KÛ­B!W¢R{]7àxÖ¡QTâ% ˆ„‘E©ÚÈE —³¸Ô¢©MœÏ’íL™o­¬I$à’LŽ\Þ€­à %t ÊÙ@…ÜŽ„öòÊk,žžz©ÿFÓ¿&/rd\dÍ™Èz<Çü{À´…Þ-At¸p”™±ËE¨ØÁÔ¹N><04 úàLÞÜèú{û!ó%<¾ƒ3—°*¯'zMgBd.\‚=Æ>ÌScš8<™·ó“£›Sºiïð¬wæŠBÊ£S»Í–ÿ›ÿÿ_ÁZMe½w`$!¢‹ Fí§FùGÆßÛè$u^Z4~ç¨b5Ûk0‡‡Ü¨C©V!—+Qy©£²È<_O‡4È} òµ`1ƒÓ”OnMo…¼Ò/ýYê€[RΰôX(8¹“m+.Óæ—éumÇÍâti_ÚDyÎ,ɔϞÍ;ÉÎâÁ©Ã‰°ÖSY]‹*Âã¡õW tØqØi’åÚ¾¡D¨ea‡gSb‡¶JcñyrSúƒ›ê¼säV¨HŸpãŒ÷ì9ÞÈkQU¡©Dª‚ ‹7qÉ /±5qwv!R0c¬*¡Ú/‰X¥›CDæI„®Ž’Ê<®’Düü\Ø2{ Û+‰ÜšÐkµ½òÙðãE:}ð/ü·µÚÊ Ä¨xOV_j »ð²³ëû£ø ˆ´/ „Ȯ֩½Á•ɉVi¼F™á(RqRU‘Ï•„Þ Órå&=L¤½¿î–Ú¢ãá¥@”‰Qˆ>x%Ç í ¢·½× U4TF¢T©#æ?s9ô3‘·‡6~k/<_Ï?_íĆƒïSÚøÈ°äžä\Z7‘0^¹Hv¡’Ôžñ7œô”*rJÕµHÇ8F¿õ)£GÆžÚÜšXWÏN߯Gìù?óæ·Ly®?"£ @%»Vn㲺 ÷¶ ìì^z ¯!cI‹ðõèÄ•g8§hM+= Ù°úù£×þªUœÝ›ƒ˜ÐФH]Sij?Þº¥’ˉ³ñ_‡Ë¸qKnÜ^ ¸óÉW׫‰ËRíd.#6o-98Šs)çNbE5^J9ÈE$•ž´îòÒ;C›Ìë Îî8u#Â]rã’\Hºh¢¿pÖp7}|o´N£M õÀK,\x´€±Ü­$#Åg.R)†œu“3¥D$Ã?›IùŽÉÌÚ¤ ·4 ­˜ÂcÚ"+ØÎüu~ükËDãàô†¯Y•ëÄm´`57ÞÉLuÔ˜ê±êÂñ©Ê¥¢^B*/Sáö¥©{.Ž*«ç<ׄÒmü§t‹ôªnÈŽìîUÖBönÞɹ³a<0ó^OT«ËH]U  DÊmX] ”þ^¨ä6 îçLi y§ÎQØò!æÌkóÛsÞåÀQe$JOíâ—œÖL]r?~\fõü ÔÚ] Iˆre£üSìË] 2 $/y<Ιìq»µµ—8øó.jTç˜ »%Œ÷‘ü?dŠq;q”Ûp"âëçKHXw^ýâyn¸–±méfjå}Iù»: ªw0e¶‘·Î¥`;1‹Ç¿w{n¿#Û¿uhsôf,ú«ñ ^ŽkfOþ*š ÀÍhF3šÑŒf4£ÍhF3þƒˆbðk±Ìúf bõ8«J±tC[%`«çRÆ ~Üp„BÃ9–%§KÏ4ô¿îcÉŒ2T%'¡Í=D„øÀ•ƒ,^²¸p%ªú rbÇ1ö,!õ¹l™3‹¥¹á ׳x^ êÔ»é6.šœÍ«™ÚÛéSDÞý< Wwv?lÜÉ¥%ß­´Ð­ûô¸k«¦Ìâr¨Dy©œè¾C 5œ`[KBdÞhèõdßþ¼ŒyÇôXN!fÄÈ çóÚg‡è1ñ)ö/œÏN•ž”Ž]P_ÍÃ8œD€š³¬œ6‹_Z0(f+ סi;‚õÛ˜³r'‘>Þx)rÈŸalâÍ ´ä0sùè ­9ȹ+§Xºº¶M'¼j˦Zð©>‡1±Ñ1~`ÝÆÂÎ%~ú<žë¡F-€1k?mÚIÞ%‹~4ÒãÎit\©§¾ÞH½É³wñ· Î+)áhDGÉQ¶lý•ó9µü8§Š¾÷ÝË]W³xò·œK”pT•bêý ”fŠmàëù:Þëý$‰]’¹Pº†Ÿ}®>‹š¨n„‡µ áñHæ.ÿ™oNxÆ0êžþøÏàW´|=y•ñN*ÎVþx{‚‚l´í·’MïÏqõeòÝþô»«5[’µ|/Kf"/<޲ó½ãüR_Îÿ–ù±*êŽ]"åÁûo!:ÿ»wSŸ¿ª ÷Èôj,³›È¶©ûxú¥+QúɬÕ´ ­¡¼D$¼×X’…‹,_uˆ ÆâÔ§Ét´e\tÚÚÓ,Ût“½’ VOèˆ7æËÛ˜ñA5ïIÅÏe¢ìì^Vgäa3T`÷mÃ=]4„œ© X4µ„ªÇÆÓ/ÁÕŸ‘$›‘‚Œå,]ŸA~Í9~la§o.D˜sÙ¿c=Ž‘ÛPŒiÜ h„¬`«6o'/߯âojé1l"w>§bþ;ßq%ÆDé¥zÒžè@DL-Ûïbóg_’ågåJ‰/mïM'ø¿|"J.;§/a ‰$Ë–ðŧ2]ùäzÅqÏý#ùëRæìþ‰©y„¹²¹P‹SøoZ%œv›H$¥]‡³W0·._Ë).VDã’\ M§ú=¾›ç¢{z*];ždû¢…d8m4T`r…!¹Øìο-¢Y Cïk"k‡±ïƺ´Õ±dã|r9‘P «®c»±Ø\¸¤FÀ䜷‡…ßÕ u8¨ªpÓkÒüqQ{9‡‹§%ÒîJÂxòOOdׂophÃhÕ"ëÉe¬©K %—ä$ôìI´öæsÚV°µ¿lãRž•ïçÕÐã®§ô‚šoþù¥±f®^4ÐúñV@5¶ÿȼ½!¼Ô)?¹€»ú"vmàÐñb m—1¿0}Õ’´*”b…ª—(a)ØÊ´ðH.Dz)Í\ÉatŽ,%?âú?ÃÐN§Xûã.~œYHXA޶3£ãBPZÖñÅä î—Ê o%HuœXö}^`^£áC4Wsaë|–’éè_ÉÕB‰Èv£Iö…ÚŒ¹¬/Jážq­ðW„0è•`¾š3ùñrj3 h9þ!tª@z?ìæ‡·q)¤–ËWm´œØÄ‘ìÜÕ7éa±±þ¿Ñy̹ÛY¹yùù.-ª£ûrÇ:æ>CŒõWM¨ºghÇ|6þ…ÿª$ISJ¾!”ži-n>¯ FLuÔ9¢ôªŽ¹- 2ÁEåé Z?Ö0R|d#s—úñn£Øm("sÏZvÎES\ˆ[õCÂëØ²ëU å^¨¡ßý hjï’ìÔ×164F‡^ûÜÙ¨Ó:͸ÃÑoØÏÐQé^[Ð5X°4ƒ–12ÄÚ#\JÏÞZEÇEV~òò§>à…Êë$NlùûønA-z$$I†—W ‘Qà°; —ÓÝîòì·6 NEtÌáÇu ˜v* ½ÚŽÝ¯+v³`±8#bäiCx6l S¦G7_3e¥W0ú "¡…ŽìëùhJ9IAV¬^)ÜÙÙ†ÅåÂå’®·Ëb±b×wæ¡~K˜=å[rA+i=t‚}‰o7¿õ ˜4Écìu—qèÇì“äåÔ(e7H„ |)Ýœ^ú)Šêqü¢dpûv´NZκŋÐÙë(,*ÁœJ\œÝ¸š©‹Ïc½ÈÙ+ZÒ}pwú¯øŽœ0=ö³T4tÆ%ɱXAB@®K"Ú8›ÙËuN÷è›Î¤Ú<ï^ÇÞ#ùøUaWN¢Wé.æ¬ÜA¤æ¦{UÍ¡y¼>õ(½ž|Š= çc÷¤u‡¶h.¬dÞñP:„‘{É›–CÛ ”:À‘Ç9¯ìÌ“'u[{«ˆÜ7‘¨ú9ÌZa'M“H¢þ ?,¶¡·]&#ËI«îÁˆõ9ìYULiv(æ‚\‚Ç>@kÿæzúŒé¸Šùo~KÇDp!G׋1ñ‹ìÓsúÜ^-—±Ú8ÝHN¬VnIÄbuâ–$Ð¥‘*}ÂWK$z´Ie`䦾·ˆd‡• IDATö1l²@Z¶ Ã*ºq8Ý¿#ìNlVn· tíèÚ%“=ß-à¸Ë…³&—zgn—«õ6²mw s Øíàr‚ÍêÀ%I¸à;_%xúcT¿÷<Ѳä°‘±¼œ” ]ð.¿Èéƒ6ÒF¦a;žâ*o’û$¢¥·½vüÿ¥#/êõ X5>x™®îR©P÷€12ñÿ6½f4£ÍhF3šÑŒf4ãÿ<'èpp!'Ö­<h †zjëꈋÆåvã}ÙÉLpÜðE´:”÷ôÆ„½^Ïßs¤êM´áç*Èt­;É“‚Óí4SV˜C™+ˆ¤(/dJ?Rº÷%V²QV|‰:ŸN<0º7ñ:‚obq.å&VY(C'ÝGZbÆívc2™Ði=tÛæÀ©Vâã§Ef6b¶Y|#èÐëBk.STYŽ-`O1ÂÊRzšãWu´I@²ºˆhÓ•-SQ^9É…Z Ýúr×€xܧ7r̨$¹M7"|@ÔmE>ŵU8ï䙇:¢,uõ(Bãñ3×Ò`·ãUhtzl[°·›@Çp[m8}4hµj‹ ‹ÍŠ˜@ÇôêJ®Po2a5kè5éqºÜÊϹlTgS` %N¢I]û ©Ì˦JÓ†Q#ú“¤B@Ž·6‚”v)Dè<Æ,[鎖hhÛ:Éê"¤e"¯åádroüCÈ óEéíGtJ2ñQ~¨wM.Çò]Ä·Aa·à7ˆ÷¶Åuñe6—gžŸëCnD¥†€¨X’RBðòÅ_íEõ¥óTz·bøÝh¢FÐ]U!ÅÕ8‚òôøÎè]tgÙÇ(t‚âÝL‡Ræh æó™”È#éÚ{[êùÄ£w˜)»R€Á·+ãÇö$Z£À+´šÂ³4˜… cÒ˜´›Ò/º\.Ìf3ZíÓ7÷ÙŠ>±íÚö¿Y¶ŸëG”<„¸ôj/œ§Â¡!¶s†Ý‘€Z¡E¬¯¥¦ü*5-]Ç¡G‚yC1GÏR_ï&yÌ댽&Ø2>~1¤¶‰@ã¶c(¹ÀÑ hc;1äÞá´Ô¸©¾R†W›ötNE# 5á]Û"/¾H¹ÉŒMžÂ˜×†+€$9©+>Ë…zZµÐÞD&¥ÔXXÐb± Š"*Õÿdº°ꑇơ7ÕÒ`sà•Ƨãe¤0¯£*˜è@9J} á~¾ø„û¡“K8-¬6+ÊðV´ŠÐ"û`»ÝŽËåÂÛû6VTà%Y1šÍØœ;6›Šè¶iÄD§Ó+ÍÎù38\vÜ* ±½FÐ#>ŠÐ(‘ÒóyVì~éÜ3xmBÕ·Ÿç¤.$Èn»#º\.,Ëÿ(;ˆ!Ä)JÉ­0b±Ù°Ê’ýX?Âdžµ&ˆr¼ôá$% GÖ[ÂX@A­«SGëÞ}陟«•$ £ÑˆNw«ÉØáJ¹ ©PD1ðîAt‹×"÷ަK’Œ‚ü«ÍV¬f }^|¡qJüHìLyfUN™Žäî#Ù.— $0,‚ÈPDÁ—”ô@œ•u(‚ãˆö¹m{ z_}“A´PQ˜C‰3¤h/dªbãÐÛJ9—W‹Oh~J'>é$„k*³8R('5=Áb!0¥íÚ¶‡sG(r«O½› }"P(ôD†Gã.9Cn­ßÉ€N‘·Ô ý÷ÏW‡ÃF£ùß} ˆJ4¾Q´NmM\’Õ9ÙÔ(céÕÿNzÆ m‹Æªš,¶›â30`¯¿ž¿½¡¡oood²ƒDdroCà "ÀE}ÍUJ+Lø$w§{j:­“ƒñQ‘˜här^=Šù§E1gò¬¸‘ÿ?öÎ;<ªªùãŸ{w7½R ¡÷7^•"⫼vTDTP@Ć(b¤÷"½%!YD¤‡šNH#!m“m÷þþØMUJ@ü½÷û<<<ÏæÞs眙sfÎÌ™9Ò¥^-‚ëà]-€ÚAž·åœ,,,ÄÓÓóÒ:4εðó!¼¹:4x„6Æ×©”œŒó›M”i|iÔ8ŸjþÔ¯ï«VDµ8X –”b’Eª·ÊÈ?À‚!/›Ì4ÿ&¾”¦fP`t¯¶+ŽŸÃ\­>>nWeÖ\%Ó÷Ž.ˆ&…ç’É5»Ð¬Ïƒtm„«xùx¹»»#Ú良Ò&±*j4 §}ƒÚý“sº`":÷¡Gãj¶;+ R9|¶ß?\1áÔŒÖmºS·,„¬ŒÚÆ<úfo‚Íf¶|Êù6¯Ñ%DO¼«PœðçBéÔ½7]뺡}«ãå `)-¥ÔX†Sˆ„ÛÁO8Þ`ØÖ÷²‚Btþ¡xÚu‹UãH@Ö„xXHMÊ Ô Õ›žÝâ%\žžmÉM@Ÿ¬¡qÓ¥eToNëVméI–lÜŸ§º¡S´Nø…Ö§aý\PŠÏqälž~xj-¸Ö²Évnr*ņRŒF:~†vž€Æ ÏP𵮇·ƒ¢¨¥$å4Ù&B:t¦WTw %ÄM&'#…Œ’@z¾0ö~Ž‚§š4n]›j¢B)çó¨ÿèÃ4)¿ØA‹ˆ…ôäs”• ¶ëJ¯>ͨ&ZÉMËĵm:4¬…‹]];à’tˆäºš}õpcœ©Ú Ëá}¤âAý6ý*ù¢uºÚkèz•Ž3g!>ʼn-j Œø6‘hÓ* ïÌ?8vA‹Oƒ0Ò–Àj!8‘›t–\suÚzÎÍj\~PBÐààRƒõ}©"¡;±$³‚g~Œx  hu®øצ~Ã8Š!‹“‰Ùh«ùããªàâß”†^Ž$œ!÷‚‰zßàñ6^Wš& êp­Hý:Þ•ÖÎ5kRÓ×… içqiÝ©qpÅâé )'É6”bÒդߨ!4ªl,*e䤜$áB = %IGH38Ô¢Þ-NnþÔoш êÎ—Ö Q‡ƒ\BaI&³“Ù‚"zÚ¦¡¾~„†TC£qÂÛ? 4Zjø×¥©ÔOs6Y¹y”šŒ”:Ò¼i^ž4là‡“ àE½°šd%žCMäe¥pÖ»3Ïõˆ$8È‘ÜÄD ÌÊð ¸nmjúR;Ä/WAƒÎÙ—zuƒnÙùôQ²Œ&,VÿÆí r3‘ŸrŠ}xx`k[AƒÎÅ›à ¨\Ý~7ó• °ýïß²;’w°˜ mu8É‘¤2gêµïIdôìPW%‡äÄ\CšÓ¡E;ZÖi@ÃðZeœ#?ÿ"ž-{Ñ¥A}7 ÀÍ=† |qr¯Ep@©©Þu[P§ÚåE)É$!1'_?ª;Yq hB‹Æ䥥]µ¯*-(@[¾.MX>õÛRÏ[CAòrÌNÔëØž]êã&šÈ>™O@Ÿ îÒOñú6²Æ½AþçHIw&¨e'ÚVKæxr)ZŸZ4oÓ©a-½µ”•c()Æ\³#j‡§«­“õêÖ§q—–XO%ËhÆl‘üX.7õjàêìO=Ï$Ž&–a±ÊøwèK×úÁ„Ö ÀË+€:µ¯”mWükâï@pH>>ԭ㻓¡ð$Ëãá¡'{äh/¤m½@â¾|Ú‡ +Ì"ýŒ ¿æ~XΟ'·@ƒ_]Ÿ›:hX®§ÝÝÝ)++E#jlvp¥‰&\ú_åtÖøý(eeWIùçïÞÏþ ÿ71ÑäA ß×ïìÌŠ„Fww¼¦~À¹°>¶»}T¨P¡B… *T¨ø‚Á``Õº- {ÔVÈ7%%³IÉtë…ÑbÁgÅèæ}C… -ÖÄuÞ$²)C@ ¤vw·èä­ÖSüûµf‹™ììljÖ¼ËtÐÏþ†ÚÆô}¾Á·Ø›‚Ó[ùù“Ý´ûî}"4÷ª®äÍ–ø½ùçnŽî+Û»^û·R‚øzß¾~G­Éd"77—ÀÀÀ»ÐçªèûµŸ¹E·&Y—ÚÏËËC«Õ^#px÷f÷Í ¨¸£ÑˆOuŸ;þÖß¹µF#yyyÜ“y|³´É²LFFµjÕº‡\»¹6RRS ù»À5s®ï|ÞI?KJJ0 øúúÞ5.ç'üÎÆ]’Vâˆ&­ˆÂ¾ÿa\·Fxhï¼lúùóç©^½:wÇwWŸ)(¤¥¥|ÃïW·Púædš{¾F¤§§pkÿŠv¸é¹f*9Â÷þ îoóxÀåVe'‡Ÿ~í¬y<r«÷Â_ÙæØ&ܦÝ[µ:ÿïô“rÇÖùݶóªBïÞŠüUvúÛgä‹$lšÃäÏŽS¿3œ2vÂ+êQ^5€:ÿ@Ê"[8¶îCÖpFk±b1{üÜÓ r¾c¾Y ÒÙ5ïu6ÕûOx^cŒîÞšë»Ä{AWUÌ¿»oÝíÛ îÖèfü2ˆ× ßc¸ßè —póÔ¤¤¦H~~:­NwͰ¢(`ë†ãg}‡œŸùs@HJÊ}cUK@«P¡B… *T¨P¡â†¸ûÛ[¡Ê)ñÑ)Òñaü\ªSó–{#ãP£1=žldw ÷Goþ¹ÛûîõÚ¿‰n™ö¿•xû\}¿ö3B•ͰKí ‚Pqþ^Íî›(ˆ×¤K¨rúnqäDñŽÇënŒ¬ ÿתrÄ»6輻¢w™ßΞ…6ÄÑ ` ¦S—ª þÞ¾lÜU§êµ˜PµT÷¬kwu¸=~ ·ô¬Î¹GN$ÔåvÚÔÐî…IÜrð÷ZmVµmrïu¾p‡³àŸ·óªBï ÷`fÜÆ3¢;Á­û2ò¥z\trDÐihR£AÍ[øÕ[D Õj6¦žEƒ(8àY£]ÿ6ø{s|Ó¸zÓ¨÷‹4¬çy1º{ ãY0Â]£ê^¨¡ ßîCú®Çv#˜ÐìïK: ÷Îîø7C «P¡B… *T¨P¡â+̬ÌÝŠ­kVvÊ]­$  ðÄM1“›•y‹w ˆ¢~M¡03“‹ê¾õþYÁbµÜٹߧ¾€ÙlF ¥†ûf,AÀj±"Ë2Y–û‹GЬ`±Ü‡²£€¬È÷­LÿçÚerxé‚hŠ ((˜.æYß‹ÅBnNîÿA±V”ûNvÊ€Üov“ ÈŠLvVö]÷‘ ‚†Àp/ Y™ßòÛü#|°fg’©qTqkD]mºUT°Z-ferñ¢É¡N/zÕ·e±+²… ™™ÈBUÌkÇ€ÖêÜTq÷¡ñÃÇ’EfÖ]²­„ÿ­M·V¡B… *T¨P¡BÅ qÙ{ÿX­V.æ_ÄËÓ Y‘ï‚U9»_`±X*îpüWÈÎ]‚(ˆ"jD\]]ï«p©¡“ÙtßñÈl2ST\tßÑ%[eòòòîK™ÎÎÎÆÓÓó_.--Ãh,»§ãêàèTeó;÷B.nnnhuÿN×àý(;‚ PVVvßÙM¢ ’m»X#Þ›:þCïªPñÂñ¾¢ÅÉùÿsÿT¨séöí‡ÿ%¨`*T¨P¡B… *T\Š‚³Ó¿/:i±ZDGGÕQ¡âÖ`2›…"Uv­V‹F£Á©Š‚NU6¿-¬²õ¾ã‘FÔ`0î;ºdYFîßõð~“¯›W«ŒÅlþ×®¢ âèèxwÿ³ᾕûÑngggDQD… *T¨Pñ¿Uë«P¡B… *T¨P¡â†Pø÷Õúú'2‚”è]U.<êüƒóèßN—¢Ê:?þŸk¥ÊiWnã užý»ÖN•_*þ·vN*Ô‘­Š~)Uвr—)¿ÿiT¡€U¨P¡B… *T¨PqŸn|o´!¬šÍbU¶!˜ñíŒEDŸÌ»õwåLâÖ/áûÅG«ŒÎ{»¡Vªl´o…nå–Û¸×!åžñF¹Z¹×}¯úù|·Æän¶ùÿ:åß¼ïz¥”‘st9S§ï¢„Ï}tBi"ë¾| I’x~Æ N ·Î+¹€Ó±Køä;=eÿtß³×3vÜZþ· BÞÚš}[ë£b ý¯|ðI4¥Wñø&ô@îFƾ¾úš|©Zý®Üô_”;Ý;?(¨ÜAÊ=¢éîÚ‚UÉoå–ÇàoÛVŠHÞù%Ã""éôpº<1˜¨ð¼ýc4·ué®»)ý“¿™ño­$M¹³ÑUîÊ qý2'°èûÅlÔ§c­ü{Á6&MXAR™ù¶¾¦ äídüÈÁH’Ä»[r‘/lgâ[+IµÈU0ß„´% ЇN#ù$^¾ ¾¦}|öÁö§ «b^åPÀ*T¨P¡B… *T¨¸÷8øáaátêÞ›I[ *¹M$ÞÁâöa@@ €¸o'2T’¤WXx8Sùf1ñgúõêJD¸Äˆ¥é³ÃÌ$ö§ ô•$$Iâ¡É 9’ Y¬zy½Ã$$i {JLWl<÷óÕë¨éZ.pð×W‘$‰žÏ¿ÃšS– ÚM‡bɨæEÍ:E¬ñ(=Ã%$i{M@ÉXÅȈpÂ##éÒgÓãŒïZ3ÓHÏMõ¶1ß½Îv:þh-‰ ÊoO ¢GD‘aŸÄ_§£V²’vóó¬J(âà¢&IHÒp¾N¦ô†u€/Ǭ&çŠ_òÕ›ƒ¿èøeŽ‰Ë·ïg™÷ö N”ÙÆ0o=/GEÙ‘N`Oéµb%[ù OJ’ôßl=cç{&ËG>Fïp IšJt™ÙΗC̈ ',² }Ï'0‘ul ¯H’ôã¿ÚËE.²ç³± –$$i ËNæ`’˜÷P:G†Ùñ3ߦËãš}¾R¶·"Pƹد"IHRO^˜¼„³\`ïwyT’ C’1sg éüüH?ºDJ„…Ì_×ü¾™ì„Åö>á­¯öR„€rr5ï<ß I '*2’ŽaH×Sœ½IýzÒ12œˆ¨—Øg“•â¿ØÆ>"œî<χåÛŘS–ðœ$A—ñù~s¥¶Š8¸}ëVÈ€@›ßÉI"\’&­'Ï`¹sšñ_ŽJ÷ˆ"£¢ˆŠ 'Lz–Åi6î(ñ!IaDE†öÀ#Œ^~´½K˜1{eåm˜Žóë7 X—F9E×äóÒjŽeÊ >tŠŒ$"<œQ«2÷~L—76Q €s1s3ìšL$¬|—þöu¡ß¸ïˆÏ¨*J¬œ^ÿ /ôMe]B. `ÕÊ#}»I¸$ñâÊLÛ:—²œ1cד_þºœÏñÝ‹ùì«uD¯yŸ’Dxd8’Ô)Kpáö¤‰Ôc;ùm¶Cå1#“õ³×8ÓΛrwèq¾yméŠ(ÈÖ8Þ“$¤ˆ<òìRÎÙ%Q(KaÓÑ$‰Æ|Éž´Úͨ`5•p±Ðø/rxqlë6RÛðÕï1|ûêêy\C¾ógìkKI¾®ƒYÁl4PThúçÃVóKÿåNç"6ÎâYI",2IêˤEûɹA§®¶IL˜9h!£$ IÊÛßÅc³ÐÊu^:Ëf®â¯¤¼ [@8õ==ºv"*2’WVeV´/ŠH?µ]} ‡~áEIB’cêOR„€`=Á/o=Eûºöøœ?(4^’†ÌèõäµnIõÔ%ýêúÐ0¾üÓŠ@gwÏæû»ÒÓ°6¡è ýUÞVß¾¾‚4«m0deïÛׇÁO-&ýZOà–›Ö3µ‡Í{,¤°áýA<:ü;:9áäÄÌç°KmÞú]Ïî™!¬Þ°“9 $þDŸ'Ï2rÑvî‰áë!5oüÍ ç‚Ûóâozôú¥q.ÕL«u9¿p gû¾Ío»ô¬{+‡7gÅ`U€äj}K\ô6Vüð,æ©ï²Ó-,qÒzÐܧ¹Q/Þ\¦G¯ÿ¡é±lŽN¤ìðfrŸù†Å[£‰Ž_ÅèÄYzÅñwÙÃðŸ™èqòÿ\Í #Öé‰þ¦-ñ±ÛØŸT|Í!ÊX>)ìeVZ±õ׎ÒóGY=w ÑÖ.˰\cû_7‹ÿ<ø8ߟÌÀ ˆˆä°bÒZ¢~ÝEôŽ-,~Õ…)ïüΕ_Î?¼‰ý9%<½JOìì(ŽØŠ> Ò–M ±Ï8~Þ¥gý„|&|ƒØ7s$ÖcÙ»} SØË¨¹§  …ø­kûU~éËøš·ð‹¾”¢Ø8êÛ’)›õìœáÇ‚•;9W ß¿HÖË?óû®½,|1gî»-—Çå}lîÅ+dûÝžnecûš,FnÑ£ÿ}=ü™½ð8 PœS‹¾c¾bml±ÑËy£«Û&=Oê“ß±v‡ž¸Oᥗ–‘u9§)HaÕÜu„/УÿýmšÈÑÌX‘€Òp ïÎÞ@tônöÄÆòÃð:4VX1u5 §/fóîX¢§ñþ¤äbN&ͿУ߻™¹ov%kúgì3ß–GÒ©÷YÄ#Ï}Í'Gtå\9¹š·ŸÌ{+õdé´vg–@áÖIôêò ¿\(¶­³ŠÂÞYãpþR~Ë/Œè°‹q¿%ƒ’Φ¯à·ìþ¬ÐëÙ0óe¢‚î—˜À¿Ëí_B^¦cµÚÔõÖá਻L_\ò6Z)-µ"jÅöýþè¼€ üÛ¤V Õiß*ËbãØ½š©¶ÁçFºÒ&yï}6$¦ñ×îMD.У_<ÃV~‰ÍLG~å•¡ðéöcä‹¢u'æÐí© ÞZ·™»v1ë!¿ŠæÍF08Ьz{£÷Ð}‘žø…O ^ØÂ’?KàüI4½^å‹uzôúé¸ñV¹€Ñþ~ê=»Ô†´DêÏÒ»• ¢àÃì˾€wzý¬G¯ßÁw½¼Èýk/)–ËùZ´}2}º>ÍÏ9¶KüÌ18~¡'~ëFEìá_O_[$¬`üƒù`í~²µ[®'÷¥ŸY»m7{b—12aËÏ_µŠa*u¡v³Q,ˆ#.z³Æõ#ô¦ŽÙ€¶×6éãXúZ7üÝ®fPÐÐoˆŽÞÍŽ]»Ø¼ö7^“²©æY€¢SÛX¼ô+Ž[Ûá¯X!s/ÙaO2mž8ý&¦ÑìH+cß×#¸ðú2¶îŒaþóGñù°–?÷#çèÑÿþ„nçƒõÙȧ·^e‡Åž.ºÚŒ^ÿ:"_`a‰ÉÞM6}Ì/øQ¯gÛ¢ÙŒh ©±Ñœ¼P‡÷vëÑ/…õä^6èÏÙXœšÿ(_Ÿ¯‹¿A@£Ù÷ÙÌųc=ôãå9ǯfFN:BýN¼ºX^¿„ÿdWtñ¿N yÀåö¶ èg¾„òiqÛV1©w,¯Î=a#9ï$Ë&â©×çs¬ÜÉÝɤ1¿ãÚÿ}6éãXüjgj¸.2¨ IDAT)Ê`ʦ­ìع‹m[gÑ·ú•–ˆÖÑwA‡£ÆWgG4Âß2r%µŸgÁîìܹ“»¶³vÙd:ºþ/lã™1r9wd½h´ˆX± á»ï†à‚•²2ùÚº°žÙÈ´çfòÂhÎkíöÃÑd?}ž*„ÔÓ„~O\ì6–|ñ8†i°WvD)u§QØ,Š#.z3Fv§–Æ@̬Ù|$©âáõõ¼£ñú4V¨NQƒ¶*õ¤|žÄ ø„xãôŸñõ½+l(+¥eÖ¿¥ëº0¦’PX“zM|©æáŽÓ­6äØšÇ=FÇÖh,åTT5Ô° *T¨P¡B… *îíök£W¾M"­hÛꉞ!ôð#_½ý^Å&.’°ßGksj{ƒS›0Z™(6›økËqžúáUzy{à¨Ó¡ÿf»èÓšˆîÓ¯.€?µ«áUc?±›P¿v^NP½cwZ$ŸçœlsS…<6—=¿½H{öiÙE™EVÆÌF@,w"Æ_Ñ8jÎð×®V4©WG¨Ñ¥ÍÏ‘.Ë™ÔQÑgׂ™±XŠÈLI&åP ¼ëµ¡K×>t ¤VgœœJ04}ÑÝñqÕ ržÔƒ¡Ô ºbsçâKç׿3úÃø™€Î“±ä·£a phÞ†f‘’b˜£™ôÀóÌù#—ò„›À!³‰[ö*õÍÖŠL(¹ }[5Ÿ·{xPbq$…å“ßdò[I·?èþ‹O#*ÀmEž‚à Cãè€Sí:46›¯_$ùd¥Ya4 m“V4Ç‹aÛ~oIã:~x9‚o§î´HÊ$ƒ8¶/@·(ÑÉ…úá¨sê'/&qVß ©P3”¦~¡¸fǰçêxj›ä.í"h•o¢Ðº—-Ë»ÖÎ'@í.=ir2éŠëÍáò>Û2g¯”m›DF‘A£¼¼¨QÚKÅ–\£Õ¡C@ë R8}  aí=qq!²+þç±Nõp4Z*Úôèù>[VL µ“Íe*+qìYùÝ$ÀÅ“†­%‚Î$“‘YˆRÍ›—ßîO-@Ôhî#‡˜ˆŽbŽ­œj¯þð0ãgÇÙ*OXŽ0oÌãt*Ït<‹ýyÿT¶ª3»W0oÞÖ¯}›Ë×ß|Ê›Ã{Úh“ú3cG& lžþ-GÎ#’Äó‹ÓI]ô¬ý™z œBL± š*"K1¶û{F?6ßž=x‘?û•9ÓwRH Ë'?K{6âG[R±lcü¸•ü6½áÒ»ÄZdP™û¼„$…ÓýÁñì(æ_QÔ¢4:´åAÚë=}™MR›ÚòÉ9ŸÄÙvÝT‡f¾5qÈÈÂ84‚¯~þ”þ­j¢³9°é(/ü:–nnÎ8T²çÀLIÑAìòÅÍ!•äƒÝiW„Ú hæå‡x. s­‡Ö½ MkS»‘Q«Øwÿ`Çòº„ h"'0!À7÷ ‚ê–QêZ“F‡ñH#€bòÏéÐXªáqyä÷îÓØ´b"m\PØËîé‚‹' ÚJJÅD!.øW_þž#öEGÛx0Óøœ¡up4Û³òZfl7<œµh„ R†Æ?ólç1l¶ÇME@l¼t耴ýI4Ú•ÇhA5D4škóGíºKcÅpv;;ö?ÂÝ]!ó Û÷þ¶ç,^s¥Ô`Àìÿ voO‹6]š~¼þ°ke"Ã]pЉÔéÜ“Æ'N“j>ÀÐ¥àéK£F­ðKÙGüi3e—ÙaŽ”å\Uí¥z¿Ïسb-ÍVŽÉä/ÓÔnȲŒŒ€V øâî—ÕÖZñö)|«ÏûODâå䀠‰cÇ’tí¨AãèLƒˆÎÔ9‘xu&gtéÞŸ^¡6¾V¨'ž>ûس®5MëW¶·ÏsŽ8v,@·HÑÉ…RGBN&RˆÞ ydÊ\¦¿Öb#"¾/‰–ÿíÉc=›R íe|Ñ Ñ•ÛÚ›×`ùƒO‰Ï6ž¦ðJ%(hÐitèÊÛMdìÿ‘çžxƒ1ƒ%ú¾8žùË—ñz7‰‡ßžÏ¡BÀzo_JGIB’ñÕþ‹»–—_^Áâæ³(K˜Ç£åú¢c?žûrp‘}óÇÓK’¤Œ™C~É!¾ùdß¿û°=?~}6eV€ýL C’$¢ºteVÌ)Œêƒ-Ž^Âéí?ñшï9aÌæ÷&ðöÇëI¾¡RÊfÙÈpÂ"öÐ}ö|MEìÿf¨]'tdðÈo9fÈcÏÒùjÁ![¥'ãŸ|õál<˜ =þ§/‘’„Ôë=þ,µ"f,cø K9G*‹§~Îþ¸iôéó0Ó£¯Î_×Ô{Éß~ÅS=ãTž%ÞìEÆt¿b_UKAŒœÈÄHpÂÅ-˜àåv±€ ^šÓZmMŠz­¥sޤ냰'£èšºÙbLdÑÔ/Øó.½û>ÊÇë±íã‡ìýïÊð×sÞꆫ{û|•=%$i3£³Pd»<Š„ÌH\I(ÁþxiŠØ<±7áÒ*ÚïKØu\»Êõ¢-Ž~ÔÊ*¢øb1ЍE«Ó¡@¨ÜLe2K²ˆ_>-o3¶«#%&d‹-8¬ÑjÑj®ç½—Q¨Á#sž#ñá0¤°(úŒÐÓÚ¼®ó†àèKÍ¥y…*Gíc˜~YÇD´~Ô:’DºF¼tr]ë·U‹6-ûR†€kMj'åk0b®ÜßÀêJ$åŽåZ{ÙqlIŸç²´›„þ8óþÐÐë¿-—j‰¬üt$½%‰¾ïn Ã*àè”Fj²2£‹@H‹DRÏ_.‚`ÂlIã\!€#nÕ4n9äWš§–þD~ÿ6´ö¨Çà™#¹øÚ º„IHƒ6ÒcêP. Z ÈI;K¢g'Ú8ßáPÈòSŽrÔ­;Ò 3ZLÄù$=¤¯ñùæy:û{\‘õp;lpÆ5so éEDx¸­$æÓ HKfë‘ú„Ö¸_ÖÁÆôv„φô$rÒ&Š e˜¬2 âTûaû~ÆG?ž!ìÓg Eƒ_½ZPø1C¼Ê7Ñ€‚¬Ü…2y¢1#Ä Ö´¨ç‰Kå¹BÝɤÞ0EF¶šm|)GˆsV°øzQ¥‰M7Ñí úDŽÕjàò(Ç.îgõ÷KÝö~?úö<þÊ»dA@£5pöØRþšÃ«›ôèW½Œ[ñnÖ:ÌÎgq¶ÖS,Ü«G¿g:Ý‚½ÑZÿ©bÅ.Ôë8ˆgßz‰a£~ nã§Œzy,3¾ßB¼^þ×!ìÝ÷'©yNôžð2Í[Œa™^ÏÜÿÔ"ø±ÑÇÇ£ÞÌœ‘N|ú«'Gm ¡ ¾M»Ò³ýF¢OE霰–PÒÕ‹ã³6S:œåz=úã(Û¶›ÃiÅÈGgr²åZbõSˆÔiàHMfèÑëwóÙ#¹|øî&þ]1` NnYÄ®™ÄC’D¯1ß—v“§yÊmמDø›±Tœºð¤ºYD“žÃÅ« -p’}ÛNóí{N˜$ñQ¬ýÏæ2 ýIÜ€Ît0Y.þÒzáSBƅ˃|y±ì²´£U+:ˆßÆê!] »ly)!?õ8ÇݺÒÞÕ¶Þ¤Å~ψÈgÙêÝŠOv Ú-ÉGo?üޥޭF‹V{3A¾‹¬{£+áÒ&:Ž…¤ÈÈ¢ƒ®"«ÎÁ©ÓG>çQI¢ëÓSø=-ƒÌ¤N}‡¡lkЋ?þEÎ Ò͆"önüïן¦~ÁI6¬[Ì™zcxªƒ–ÂR«Õ¤5óÇìè-}†ëô§èâ]‡ÊvlP0u&’*ÚBà6qqÂÍÙ¯ÓçÈÖÚl¨KvX †¼¢”¶Áb‰aÓŠ?x¿Ÿ­?½ÿ3œ•IZjwìI»à,¦GJHQopªZ}Â#‚)Ûõï$ufL¿–¸9*X fsåB"ÿšI$í†6üaöHu'Y©l+&sÙ…0‚ˆ¶†?5&_£M "$ž8ÆÂw&0ÄΗ—ç!× ÃÙc;;w$,Lbø¢´[U¨htš+Ê€ A<öƒÃà ³•©~hÒбàPêË3?mf\ƒÖÄYxsÙOtóÈ'öØ–Œ¦úÀilÔëÑoÁÙŸÖsºÈ‡f>~<­;øðé_é¶@^¿‹%3þCͲLöïÞNüáÌÕëÑïùŒæ¥g‰‰I”ø'Þdîïzô _`ÿš ¤Èé,~~âWñèõzbvíäµðštØu»Žƒ5Ÿä ùd÷íO#GQ‹¶}Ü6|ÝšUWS€BNÂB^’$¤ðpÂÃà ·•ÛÙº¿3’^ý^bú¯ÛÑ/xŒ†>ØÎ2*ÈÖ@}w,-Z¿ÉÆ=;™Ú៿aå=½}ìrÆ>èÀºÙ»(¼¸—s–¼øËrÞÒ ÷ŠžÕá©^¦M‡Ñüº+ýOÃè0ô{ôñqÄïÝÅò·¼˜þS<ŽfÚkɶû¶ï;D™Vky+F£}ŸÊŽ}lUöneÍ#ÃRw¸KU¡B… *T¨P¡B…Š{Ù:€¯õ6'€5q £žû„C;ÇÑòšŽI›3­â]QDÌ”wäÝͯÐÙËŠ6ðbˆÕO%òo¿ŸÆÆÏ6böëN‡Æ!ünÚR©}«æzÙm V«;µCGñÖâ'â1³°óÇM4y»ÆCzêû„\£gåÊ÷¨ÚÚ¼*5“Ÿ±Ùož`ÐÆ§q s3(È8Eç¡•SzY>eîÒZ7ñµÓäNï7Ó›ãÌ”ž&mÉž¬}£üåŠ`‰‚,Šh3M8S׆ßp¤ŒÆsرŸ)5MF¶X°º5E œÀ„É2èú^U`×´×pú>}Ë ~{y_Ìßϯ¶»Îvú4Ú«ÊìZ±j/eë•ÿM‘­ÈZ ¢B%Ú;, \^…Oƪ+2L/½ed­Mɶr¥l??“øuCÈ\½žëô|Q°ŠIŸ®aõön4éDÔ+3ˆz ‹¥OÈêíãxiÑLýÏÓ<˜]ŒŒ³e0ßTþŽ~ûðø¨^ë)1^²9ˆ®ÏŒåáòz¹%»Xº±'¶"Àö}:†Ò)ëˆ ·°á|øã.ÔÅþ°´Ã›Y>;›þKžÅéŽÆÀHNâV~~/™AkŸÁå†Ï:6ú¶Nanßqü4eÏ´÷ÁáN²€-¥ áËO¡MJ=É\ަY-¯¼®Ð\½a ù}0‡ît¦¸ÓtôïuEÔiéðŸ×Xý½'ëÚžu gô<=£ËN²húh¤Oê1nÚ8†´ª^…ÙÇB#"Z-X®òšZo°>¢'Ãq¶|ÿ5Kæ‚ìÆKgXÛ€{>¶—/{2ЬFZ…MdÚáG«&/b×ÚxBžÃûŸT‰ÆRJŠpˆú/ݪ^uhac^òe³S¹ªÍcüðÒfšŒy‹úÕ]¸kÒ}B¥÷ÊÈ<½…_?NeàªrÝ"9œ9±ûùçüðiC_ëKmÍß­—ìE‘‘5 ãJËÇÞdæcå+Ètƒýgî¤?‡™!=AòÊ… kð_ælý¯ý]'[>É·ú'#‡Ícç/‹8mmư7‡Ñwpsœ9À‡­aWD ùáx±->±Œu<Á¤©%ŸãÈ–¬™ËjAF6[°V;†6`,ÏFÑ~äl™ÎüAoóÓ”A”*—ì(A®lCUê; ²FDP*÷ØþÛM•ãÐáéò¿ìECŒ$mþ…9/¡Ö®œÌ‘­'d燼ºv;‡’ëSãlç—NbØ|A‘±Z¬<ùʺU^+ò «3¤°æÃh m_R,úËí<ñJþÉ ²V¼Žg¦´¨!ÿ™ð6Á‰?x¯ß vGúÓ¿~^Ú°—ø‹Òd–õø‰G|oR iÛòúÏm¯ñ7+ró7X?g>•ä;M¿÷á4õù³n;¢<šâ_Ý _O_s Èrü‹eï,äËiZ¬È¦> ²ÔÇÜü žŒ° ³¦ž#½ÃXÆÖd YF(3a*9ÉæØµ,Šú +sk†O£ tý£jÛt o-š9^Ä1}7[…±¼ß¾ÍGܶ¡ëw»Ø;8’ÂÔt{̦Ûû¿õý¯9g˜Ó8Ù/.aËoœ+ ¹µˆô˜¹Œ~s1çµ"²S(] %×½2ïÐhÐd$“ü8¢|m‡É,WÜ‘‹‚l•Qdûˆ‚T6}÷ï®:‡GÓî¼øæ4n¤½îºyí}•‰Ü”-Ì›z–AkŸÁŽÎúá€}s¾eÏÒ Ô?ºå‚¥“¿j'oý–žý?eâæ·è⬫˜WŠU®Ð›˜2ùså7Lžµ…<-Ènxö%o.„´¢Yƒ<¡u$m3ö’[æŽEp@HÏ Õi oEm²¾5‡‘…@ƒÆñeô#È•mZÅV B4îÃ"[±X,`•¯8$¬€lEÄ‚ŒùÜY/dcÔRDd¬ÖZt~ 7ê…Ó.²-ܯ¥lý²ZÌ(è0žZÈÈ'gsZ+€Æ‰aIwõ¢Z‹ÆW˶»7Ž —ßûm1CÃ. Ýñû^ïŽvÛz†ö{[uŸÜ!Ô `*T¨P¡B… *TÜC8àè\H¾½î°ìל ΑQX¾ßDAСÕÉ(‚­3…©œªF5W/ÜK((0Ø~woET“ ÎÿM_EIaóÌE$zwdèðp<‘˜í%ŸÉ:MBÓ‚ÄrÇ™€ Š€€ˆˆFÐ Š…äà‰üÝó(D&3ÛW§¸£E§3a–í.Æó§IhJ° €\Jî¹-|ýL,·L§‹ƒÍùTRTBaaSjù•Óy–Õ“#·íÃ<:´Þ€l,¡ÌZ¾koBø€D22¯ÑIA@A° ÚǯäI~®¸WsÇ3E.Rb¾¼<«hwˆ€“wF-ÔMLÌF¾š2šÇ†a€ú (,/ç[ñ²hû®Æò–óëé<Ü Ç?ŸËc‡æ³¾0—P_hl%ÔD“Í!b8OŠ·ÎÞ>xiXÊÇ0ó4 ÍBœpt2ØïÙR0ŸK&¹E}BAWjkÃ|‘,¡ cp-ü4f,ØK½$s:ÄgÜK1ší¤ók¬Ô뉋YδÑ}õõÂÃNVŠåvoL›PÄ’ßYpb(½›hwúÎ\ÌK'ai ‘rd¿|DŸeãép'k ™‰›˜3ú Ý7¾Kde›`'{ÀÇTJY…/„ö½3É+´P‰‚"c1_QÀ¿ÍNofÃqãe?ˆ,‚&Ó%Y¶Z0+2Š(\r˜TðYS5w“)e\,¿G±ñ¶ïžÃÀ-ñè+H0²&“±”b£ N ylê\fDÕÅp,ɾUd,3&¿Pšæfßá, åKNBÃᣜm×PQc¦Š·Ë± criH¿×~#.n=SºÔæâ‰dÎßË×°+„v9Å+‰ "Š"88ìôY0äœã\ÓzÔVd,bS5þÔi芇¦€"ë?¯A@C!¥²£ZS) rɱßK Þ?wã‰:8ÅO“p¾ùhÖêã‰Ýó =ëú¢µëTÅdÁ*jàÜF¢“ÆŒ šr}jºH¶Æ„9¨Õ+¯…ö¹Ž8:s±Àž+êÝŠ¨&éd\«9ƒŒŒvÔ© 4º2›î2^༣¹¦Í¶‘ðÓs¿âøÊ›<æ­E:g“ÚS7È.÷Öb2NobîØ£t_;… [0KíúÐÚMpóÉ¥°ðÚ뉭<¶€€Ž%ö{†­”e¥“Þ<” ÀRZDAA æÊ£&‚ˆhŸ{rY1eëb "úžå\¶Ê¹°b5(µEÏqôô¤ZŽfJËŠ) >m›•`(4cµš(È-ÂXÉ“EìZºÿ‰Ã¨ ¸×îÆøezâb£‰‰YÆäѯðò+£y6ª&³ÅžmX‹¶=s¸X" Ñ”a²ØÖO9é4§ZÕ§Ž¢E[Þw¹ŒÂ¢.4¨M-dä«ì0kWnË­cp@«+·‰u¸×£±w»þ( WèEsðëýãš»’rà,ÏÍbñ–½ÄÆÄ³c*í۽ɚÙý¨îdÀhSSZ‰­êRÛn÷\,­X'%‰õüƹº½údÜPÐ:\io×&›­h´ë.cF2)ÍëÚì¨r;YìAnL”Uð¥íšS\`Áj,¡¸"uÝ¿&Nèné´ ™¢ü‹-W—–­\n¥Øú È¶CŠlŪȔê,”yFñÆœõÄÚײ8ý:WwC#›±Ø3:•œ ΖÙy, v›ÞŠÉ9„.O}e{7&½þ[žëßÒRÌkŸŒ¢((Z\”< /#P‹«Gcš÷XËÚ%)dëO»š¶9TZTHa¥ë.õ¨>#Öíä?YÃy¨÷~=tžìì",X):úã§ä0^¯'.v;?Nè…g±Ñv¸¨|¯c1c¶X°juhM¥”™ía}“Ó•PÅl?°âƒãW¢×ëÙúã‡<ÜHk?t" Ø÷uÂöUЬäÍÌ~i?Ý~ŸŽ:[?ͦRûÜ×áâíW`y°Z¦´°ˆâ´-|ðH—ÖcÞIt­þ^Ŭ bäÌ–_™½¶ŸéõÄÅ®àaíp5˜Qd¹b~a,¥ÔQ‹ƒ=ƒ\„:ϲ8&†˜˜b¢·±jñ34ÀHöÉeŒëØ‘n½{Ñ»w/z÷îFçŽ/0så ¬ŽºÿÅdEFGwj†O`KL 11{‰‹[ÊôÉ}(4`¶Zn|õ„¨EÈ^Æ OÄ2t{,±11ìüáIÊ̶c?וí«6@º=ñq»V³}Û0º·Q½'wl²©C B… *T¨P¡B…Š{‡ô~ö0Ë~ÜKJòYNÅîä@‰D#›C¤4'´ó9äç&“\êLh˜Y„N4u IDATù‹‡ò9¹9–Dg<ÛñÀÉlYCÂéRâ7s¡=nt%¦é,kÞ›Á’dZ?ÔsÒÒ jÑ~@)Ç“p:‹ƒk÷p¾I0Û6ÉTÎÙ”JгHÊÎFölJ£ÈV-K 7y?eSäÒ„šÊaþ,ò¢š-<ñ'jh:§ÿJ áL&Öì&³ymEÓÉŸxîá_¨ùõ8¦%)5ü‚ dg¤áI -`<Î/c?f³J›Ž5)N:Cz¡•¼móøi׎I%-c5Û£{вW9@ÊrÓIÉÈ¡ ?Äÿ¸zîG¿ÿ"g¶ÇqÚÉ/ãÞ0’¹äÚÆ`.ÌäLj6†’l’ϧs±r¬Ìj ¬¬ £Ù $±ü݉Lûj{ÅÀ²±ˆ ©™å’v漚Y<Ÿï—%‘’t†c;7±ßÔ‘e$nþ±ÏýFîÔkî…§ß>â÷]äìN='µV\<$z>Çéà $œÎâ¯5{8ß,ÚÐë™}ìZžBò™ÓÄïø“â6-¨]½."÷²k{)üÅáÌl4Atìh¦ÔðÍãÄÆ’ÜðÒµ¥Ï“Çùcû)Î$¥±wm4ÚÖ¿­ ÀËúœxŠcó+d{Ê:Ѷ•7þg~áç]¹ä$ųon­¨[ͺõذ?“œÙ}ʇê¾^¸Z IKI!%ý漿¿~‘ø"c8±€—ú~ÍqÅBÙÅL’RO±wÕröžÌ¤NûF¶ —œÍ¬ÜLû–ít\›ÑѲ‚…+sòÿØ;Ë誎®?çJ\ˆA"@€à\‹[q+îZª´Å*P(-.EJq-ÅÝIp $w’{“kç|?(P Hhá{ϳkµ7GæÌìÙ³gïÙ3a‘DøÿÁÙõ©è"’±Câ3w$ž‘¡„GÇ‘žû:)†š[¿2ì£mx/œ@‰ÈP£cHË•@2 MŒ!>)…Ô„Hât"—þdÇáãøÇŸt#gªQÚÍ2ÿLµ7A]qa„D„FhX ™Æ*|4µ(ÛGÎdO\4Q^¾Êî{ÑuÁ!4€ãw㉉%øÌe‚•PÈÕ1ÏyþD;‡¨yµ3mŸ‰æ³æmãÚÍ`Â#"‰ ¸DLÓªø<òlj˜§LiÜòßÎÏ¿'>>ŽØ»—¸ka†öo¬Er2“‰‰ˆ&áò"ô9h¤ŠtW‘›Gwsâj !‘DÅîfÎø?)úa}Ü\KP)é<¯ÆIÈÍ@®G ¨X '½žÜœLt¸Ðfrtþ»Y²î:ÓËŸY+™ÈI‰!*>™ô´h¢2ä9]9dÅÆ“š‘B|TqÙy [DmñQ‰h´ÉD††’’[ƒ&}ü9¶+ލ  .Ü"·bUÊxyàäs†½{ï“~– z$;Oœ”ÿñ(Š˜T–88[`uwÛ2ˆ<{‰fàÔ«­4¤^¹ÊŰ’ÂãÉ2˜þã(°$æe\¶eÊãi—CBb!Žq--#/ønV‡ÈÛ\ !Nk‹kJ8&E|“³'ΡT¢”ò¶2/˜¤föN…p-t³‡’Q5( ¸PÒ*Œ»Çörèz,Q¡„Ä>“øøq "&M‘Ñ‘„ݻυËwû4¥8 ×f‘ÿ#"9¤§i1’•˜Æñ]1­2îréÈ&ÖŸI$%äçET6nØ¿Àëû´M‚Ñ®åêøsêDzÞxšœŽYq7€¤×’Oúƒdb#‚I4”¤Ù€ön=ǽÐÂÏíç|zmÊ:‰d…^àªc j©Á¡h1ŠWñçÌ©t"®p;#Ëâž:¾ïñAµ›SÝÓD\X(1™"Dç¸U3ê¹ €HÖ•Œè³“b¿Œ£Dd(± $…ßçÒŸkØq#Ĥ œ»("})üÔТ6„È$4šd"CBHÖúѬ¯?ÇwÆÌ…ó7ÑU)9©\Ú0›‰cW˜ô“ y:'-#™¸¨P ~x¿žºIph$Ñ;8~®%U}@´žám's8 Ð%~r‹$îÏåkq¤‰ÍhÙQ">ù4ç"H¾{˜3‘ž¸¹9`¥ÝÏ„¶ßsZûðls=)—eWàP†Õ{Æ2c¹¹¹èMÙ·ö²óÐaÎÅ‘t˜£gÊáåЄ¶Co°ÿ!ᑜß{Ž4?_\ÕU¨Ýù<Ç÷%}û—o…`(S“êål±{°w)ô·€I“BtdRž®Š$S¬A½.lY{ƒÄ¨Ûܾx›H‹&4(­Ase'»/¥’rÿg缾rrÃæñ‡is14d™*Órà%Níˆ$"ô>þG/¡©î‹YXÁ'ö  fË—sØ^„ªÍK’Bì/jwyÚÞö¢Õh>à'·Gyÿ>'¯¡­^ K@ä$Æ“BZR‘:;Ê~  >ñ4þ"I¾{3ÞõpÀ2h³wÞå~X$áçþàLR Ê8¾´:Ãeæ÷ƒ¡d=½6‰ÈˆpÂÃà *",1O·æÙÒ_ÿm4bpô¦¢ê2göãÜíh"ÂC ‰Ë£“鯅,ªÚÍé{œ×∠#*!½u!\ è/mbc@"1Q¡„D§aÈÌÅ(ñ˜"”MŒîéXd¿í %"<ŒðˆHÒu`fïHùª‰ûsÊáâ`Š`ïSùúÇDŠ³Æ‰RÿàèÉEÙ8˜þ–q:E¶Ep«^«¤X"n^â|ÀbÍ­±×éy~‡ë))D\äfL™n>T×ßãÂ…@îD&pçÄiîê ˆ<´“¥5æ¡W¹’HºöZÙ˜KVl<)é)$D…‘`€Ìc«Ÿ1¯Ð®bhÍx.œDÉÈP£ãÉLŠàÞÉ5¬8ž@JØi.ÜÌDgQ %`bÏ7£éúù}Ú¯9ˆÿŒ˜=Ã6+ÌB¯K¦eQ<ËAJN "à<R¡0f“IXb·÷Ÿ%ªe5ªÙ[¡2=ÊP3c-K¶…‘'7‘IÙˆ˜SØ·ó/\àìñœ8~‚ÇÏàa-Ÿt.ƒ2G‡AÌOó—DD1wއ+.Õö؆]# .Št›"”ˆX΃ÄE‡OzJ&áÇ !!Š’$Ê‘"~UpI ',$˜³GNªÈÏø–lKbÞ?1ïŸhÊ+§øöþЬoçüI·G;„‰¢†äÈ4t€Q—Ejl$t2IOÎÆˆÌó·€–‘‘‘‘‘‘‘‘‘‘ùW)×o=¿éÅØ `eW›ÉëGS5 øo_ƪ#X+O3ç§ŒýbuCæ²ðóî„Hõ¿ 1Þ¶ î°š¿ cÖ+ÑÊ3~ÓwTx‘=#£HÆ­cÌ{ƒN‹S“±Ìšô5Õ¦Ï`þŽ_HÛðíÎÚ¨Tyn¯äS ùdMöÖ³?¹B÷™ËéÐë3b¿ËG« ã×®?ã†TAyu55.^yÌz´ù–JŸOeÎŽydˆm™³»& Rñ*­âÐçƒÙ#J¨ÆÏÌ\§SeêWÌÝ1Ÿt© ?쪅¨0` Ç2vƒ9Nn½øi’`¤Fó^ŒìÎPuišõÎGU˜3¿+¿°òÓž„I ™²¬nV êº²C'óÅÖ˜ÔX´µâkÉñß¾ù³LxZ¶M xMOæ«)}è¯t¢Ró>ŒQKb°‰?ĺ_e¹ÉHý1 iXÚ eøfLÛFRZ6åÇlâ»…¥MQ*TµÍs¢êzl)c—àZµƒÇM¥IQ#'/£h\¿ÒE1$<é¶v1CfóÅŸLBE&l™IYQÏý¸T%´ìœ4ÍFéR£’°(%±ç“ì0I˜9£ÍØy ðcÿúÕì ÈÂB¥ D[W*õ›ÅÌò6íÁ÷ó«¹c]FNN3›ç´óÆÕ³z³LL›Fô)2y³¶‘mQ*ÏøuCó·ƒPY¹PÌÛ./ ¯tÆÇËûÍs|È ÁXˆý?¦[í¢°¢_Cè‰M,_º`¥ÇO¦i) ” bíðÕŒš;ß2 HF‘—îaˆ/€3#~gòÀì2S!Y¦J‡O˜Ñ²0WŽÄᦲÎ+—•ŸLMbú¬ìvóbP3l_¢ÒDMw.eÅÁtlUg˜÷K*Ã& £jÚi–-ÝJ`”ŽÛËŽ®_À„N¾¨®­æ“%W‘"ó'§Å´?>xþí‡2RYˆb¥û1³M íÚöä×ïGÑcM~Ìðåž Jüë(P[;ãéæB±âÕé=:Ó»³UQ†vƒGÐÚÓ«¡mñÿy%s¦lÀ\—@˜]†)þËL`3ìœ\pË5GÄ‹Vu,øyÅlÆ®„ÒMáW¼.jX5`ø˜ßùìó‰\²†a~#øtÔÌ­,(Ó¼3m- aacÄÃÍ–‚ŠÁ+ì)äÓ–ò´(¥l¨6p˱fêp(ErÝ:3g²7^%\°Ìë1s¡¸b'³ÇCTYà\2«;y9$Þ=ÏÑ?DÚÎlL‘cÜÍö¢í@.®ÞKN½z|ÐЧ`ϸ~]=°ÖáÜÙ†D՟н±Ï ·áÿ›MbïNó ³éݼ;ç†wc¨Ê—V}FðQÕBÃñÓÒ?ˆJÕ:ï!¹«ù´ûFÌíÇ—Ÿ<ÀHe&l™NC×®ŸÁþƒAyײԬ׆…“º±YUŽ K9 L÷ÒP—¶$ìð¾> bÔåàÝ craÙøG ç彑•ŒEI#NÈv“ˆ™ki:ü˜ò$ñÛçCX‰2í?æã~µq}jû_íµµ|ºì&Aäç)Çi>m7#ÿÌùöÃ¥´ÃÓ§/ßO. böî>”-W›üÛM‘'Y¼l;wcu.>B¸iS+”'hÖ÷KÏE4AÇÅ»hî(¢Ër§bå28«óB˜ÛØ6k J|ugDw_ŠYùÒ3j `qRqzÿ8“ÆžÖ q¦LEó;‚$%snß5*}³ú¯¬ÕÇÌqpq{3ì|Š‘¶cV,GÔëhôÙo´+«Â¼Übn ˜È§[s,º°hS9@į××øwëÇ0µ+kbj#{àj‹}«íýwÉypa“–bn&1wÒiÚÍØJÿaK‰›8˜~Ûíñ©Üž‰ß¶§$™ØÄ­fþ7½Y#ºÓrÌ$>lTâIYT:P¼¸s“ˆÏ€%tǸjì ÄüIÅAÊÆÚÅ‹2mò²ÂÓ4ˆ"©0oÜ ¹Zœ[Næ‡q3©úÅ7OØÛPqàbü;}̘ –8íżIÅòêöAÇ·¬dã©L¬9Å<´Œ<Šþ~æÇÃY\‚~?Í¢‘«Ø5À~þ >Ûœ‹¨0£Ûâ-ß^A©Ê·]T¨5" {ŠW.‡ÂÙêIÛFíLIÕ~œx"/&')°uªBçuðñ²C@õ˜½m޳«#e1šLø’Ìoç²ø‹ h¹^½Yò™ ÅKX=Ú­@©¨ÆÐkÑuêÇWIdë8µ¨K™ÊЭg6³g d›ZA®C}ƨk±"Ø[™åõe!¼‹ƒÚà@Ó©ßq~ÀÆoµ…%§o wi%*_jÔÌ¡v©‡ßoIŸÒ”Vºägï?£‚°¤Õìý´â+¿ÛF¹víi]¼0æ%J¨‹Ò³ãZ~÷ ãç3¢Æ“¥cüY½b3×Bs¹x”Hi_U+OèìùJÌ~b^s!ËÒ°ïÓAì%Ìœ¼i;r*Í-U~?~‚‚2­1ªSElÐré·;xŒû‰ƒÅœ_ m•X•lK÷¶kùqr:ÍúŽ ŽÙdÆõ[OѲ>xx7¡ja{4Y·Ùºqû6èÈñìÎüïa« À³X*]mþŽé}&2~#Jsjbᔆ/ƒ¶¸{¸`o¥¥=ÞÞ"–ÅKˆ˜#A‘Ö ¼–¯Æ~Nð˜ÅLY8˜ñÃ2Â\hQŒF;PËà WÝsì^U!бDplÎðºkøtÜa•’rmºÐ¡X!Ì­D¼<ž!Û…]P9¨Èq;{ðô4`cž¯Í\)Q©^5î¹.¢×Þdû—÷h¶¾?áÙ½2‹ÖóÚuö—Ci1¦!.ȼ¨'¾÷Dx{Ké.EpLJx´‚PgkK¡iß[»‚$É-.########ó?…V«eמÃôîÑ€ÈÈBÃ#hÒ¸>:£ç«Q¯Z Zí#Zá^ëUSI"ïbÞouê !½âþé„6ƒÑ@RREÝ‹¾ÄÕoöÖ m³9¡)NÓÝ)mùjoÓEû³iéï™´„ÖNU΂ªï¿®{~ɤü¿ ¯ñÞç•ãUäáUŸñÏÏÖëõ¤¤¤àîîþøöÊ÷¼k¤çNò_¿¥¥¥¡R©°³³+à^ófdeg¡Óépvr~£ï„¼LE•^§Ó‘––†››[ÕÉ‹®|ù§ˆ¢H\\/ñ„çKÒ«µúË=#2*o/ï×l¥7ï‡oò­V‹‹ËÛs9æ¤G—˜NVXæ»Ìª|ߥ&.ÖožÏ““fff¯×Ÿ%EôWo ‰èèh¼<½^øÌ×oá§î|üÿá¡/'Ó=ªóòƒ››J¥ò­õg0䯲sÊ(ŒŸþIoç]ö<Ù‘84±-¡ýw1¢²ù+.rù»ÁkÛ&¼¦Ý[°cþ³¾àŸE± l¨W-É«èÚzçS—$„·ÒC^ý;–2¸{t#‹wC—‘u±r¹÷ÇœªÓiH{J¨þ>þô5"i׉ÓX Ò= âö%Î{wcf#×7—M"6Íd‘i ¿÷}F™ÞÞæUŸüï”ëõl΂ÿöËöãe,øšx]ûÏè§õɶlþ®).OÏU‚/ÿþȨHÜÜÜIOOC­R£V«ÿv« H’”„ ˜öÝA7)bú“°€wdä;c•3€edddddddddd^ÈÛŸÞ¾úþézá g‘P`åü;è~”+嫾̀Ƥ¤s_j:d9 ª¾ÿºN(¶{úÚçÝû&Ï|óg ¡$ðí•ïy×o¡ ‚ðVzÍ?S LS) °ô]Pu"LÙ„WùY(S°(ÞZ?,x9,Xr#ΰsÛ1î¥ èõ5;¿ÎÖª‚ìL¯ß²‚¢€d@x ^ê™BAɰðÅû­õ8¡€döÕÚRÒl>¦‰Ç Úçü! ­zÍ+©_c‡ƒ¿Ûk›üûcþ?õoφzÕ’¼Š®ý§w>ëŒ÷·9&½¦=¡0Ç¡pa ³i] K3Ä8ð«ZœBª«?u$~|KüÍP)¬(êÛ•Ïú¹ˆP 8º2¢±ïsÊôöã›Í…·Vªc(ÞP¶ßîÐ%¼µºŽÒZ0~p3\žõÌç~Ôÿ›<×GËÈÈÈÈÈÈÈÈÈȼ`n'••õÞÍ©L&’(‘­ÉÎ;—èm!©ñíÐ…hDŸ•EÖ+.Q7/R™¶ ²ÈRÈâö.`4šEñíËÎ;ßõtzJ…ò«‹Ü\&£ñ+—Ñ`Ähz÷Ê%‰¢ôîÊtVvÖ{ÙGt:Æ·)‡’„Y¹Lú®w~0LD§Õ’]c² ˜DJùþU¾”w–à»&Ó¬ïšÝô0“)++ …ò-B):_ýëØ5¢;íf{cÌÖð~j™ÿ!+ »²ùzy×'EؘKNvVÞ¹¿ÿ¨Ð5«=Bôh b~! +*·ŸŠ @V– ÇÚdÞâø.áÞÉÊ–wó-ä°ŒŒŒŒŒŒŒŒŒŒÌ ÑéuïßÜQ”$ N÷ÖÃ:}Îë߬ב£•eìUvÞeA@4‰ ñNÕ… ˜LFL¢éÝ+—ÑôÎÕäí  ¼³2­×ëß»¾&Fã¿ ‡z=9Ùo§ü’(aÐë1™ÞßÕGïšL? ¿kv“ HHè ã[ot¹opoªl‡È¼/ (mö;V$Žì·ö¹9r›ËüK†a òô¸àÀ22222222222ÏG’ž:góýÀd2‘˜€“£“܆2¯„Áh 9)Y– ==•J…­­í;U.FCNnÎ;×Fzƒ´ÔÔw®\±1¹ï¤Lk4š÷¶¯isrÞëòëuzP«ÔïgýkµïdÝggg¿“vSŽ6''G‚¼ÝˆŒŒŒŒÌÿ.æê{åQ_FFFFFFFFFFæ…H¼Y¢$¾Wµ$opõÉ»(·Æ£º¤w23óßïß/+;â;Y_²L¿½ö¦ÀÚ[zodC*ð²¿Nd™~¿tÜ^2ÿ[3'¹fßü»Þõ‘îÕË÷.Øÿ‹È`™÷lâ+½ò4ð¹¿KUvAŒäÀÎÓÆd¿òw d|ù‡NGàôöm9¤×,ãßËóæé•eGzë5QÐßø²…ÿµozÕgIÿÒÛ¤(­ô–KYíÿöÜ^Ò;ô,éµõûÓ¶¯‚̨ólÞq›Ü÷è@EÁ”Ìå}Køxä~Úv†h­ðêò-i‰»{–?ÜCÿ_{æ%Ö®½Hæÿuõº£»ôJ㺎´ð¶î¸ýŒ6~ Ñ\cí¯þd¼¡­'½AIª·EÄ7nIé¥êñÍm¨7ùʪIé•Û£ lø‚·sHºµ‡y“'1yÆ×Lž=“É“f±îèÒ%áµZXe½Äø£¹ÆºßüIùûrÁÚ°ÒsÆÕN>Õû)õ!A{“ ¿û“h0½‹­s‹MëÏŸkx©ÚL©Ü8´ŒGŽdî¦cDh^§¯˜H¾w–í{ƒþ{ûá=AÞZFFFFFFFFFFæß'z#gB°´¦rŸ™ ¯aóèOqܼ®¢V_ÌÑüçïlÜ}Šp©C¦õ£¾—=¹W×2}ý%2µ"‚*K;¬ â‡N¾Ï™¢fxp;¿o;O²®û2¼ËxYk8ÿË|vÜ #]ú€O—ö¦´RñØt2’½+âi4¬6y›àæ}b_®¾ˆcùté=ˆžÊ¼KïŸâL¸%½Zh8÷Ó\¶G‘ES>[Þ€t~ùr wDæÖÎÔ9‹ž%ó_“ÁíÛ¤¸·äƾelØu‰TQ¢h«Œi_‹TN|û»£SÈ%”-?aq—’ÏüÖÜŒ»œ?n¢Nç Xb âÄv~_·ŸûBUzMîG³rÎ/˜F³gY GÔÁþ±_ÅÌHöm[C¢Ï }àõÔJb)Ï @Ç×ÝÅ·K Ü­ÍtWøeâJîˆ ,ìüõà |…¼kÿjÑçwóûÊÝ •è6¶/­ª¸¢&›s?ÍcGp$™R>]Þ›R‚€@ ÛFÏà°hŽƒK>ŸÑ L<ˆ9ÏoSWpYU‚ö¢o_ÌÉ%pûZ6 ìà‹:ê +7î$ T‹™R@©TcªÖ‡Yòûô5\ÎÔbRV`ÄOc¨j.¢×ÝfÓèŸ9£R£°÷įûX†U·ãÉVzIwLÒæ½Ž`”X*J“á_Ñ©øÃv‰ ¼I\†UêycöX¦Ÿ™Ç¼k%8¸ %¬ÕoàÊŒ!ì^´Áñè“Ñ›î³>£Y„mfèwÇQ©L6…©Ðq}#8æJ‡v¾˜‚1’cûC°.U‰še]PÀ³Ûù æ·/Wp1UƒIRP~À·Œ¶ÝÏ„³™;¢jô¤ß=Ŧ)´ø¢'–׳pÙ ’U…ý:Я{{Ê:„2‰>·‰ [sß¾)C†´§ŽW!ÙÎ7+N‘øÀ€d’(7t>ãjZaL:ï»Íè=´VžN”²ˆ¼}…+aøº„²eÝ)C®#† £[ýX½F©²îpõ²‚ÚíÊ`þ¨¿åpíàM¬|KQ²¸#ÊG¿'p`y~Ãêá"@(†}Ëq…=>]˜<¥>¶€ ¥qýÏÕü´í.5ÚÓï£.T.üæEHFr’‚8ëïJÛ.°x/o1þÇ9{< ßæ©QÚ ;õ3úbö%V¬Ï¡ÃÐúQ>£ŽEé±A\¸j¤EëÒù:á?BÂñ"-Ô|bÜ{¿È!úÒ~6¯:D`ȵ§N6V` IDATïÁtmV‡ç(,é™6‰Hzä~ÿæW.«|hܱ}Ú•ÆìQ_Ë"`×m\êT ¸«-BòA&ÎØCŽÑD©žß1±Q¾bÊÍ"üÊ>®šúÑ*æ$‹§þÊ5•/Í»÷¢G ̤ެXÇþ+ádMë1•ÉÍJ`žoRe^ÜÂáÔ®tO=ÃÜ/~#XPaéèIÓá_ÒÁÛ@üÍClœ¿»J%b©¦ ëÝ…ÚæÏ§9°â>~Cêâ¢Pál>‹‚-nÅ»0åÓØ=wŒ×reÿ-lÊûRÊ» ’9òõþLʨ[Ƃ޺×@Zøi6ÍÙÊ IBÔ[S®YWzöª‡»!ˆ KÖsìj$n­Æ1¡c5œ-Ÿì ÇfóÕÖpT ¥ƒeZõçãn€€1þ [vÃ̯]ü\Qèn³zÑFÎފƽÍd&µ¯ŒƒE*û?ÉÞ9æmøêç¸"bÔÝå·Qs8§*L™ª==ÂëgØa­«¸>e'>´ âØ»4Œº#ëópøÑ]_Ãðù§±õ,MÓ¾ŸÒÑWKÐÑ­¬Þpš$Á•ú ¡kã’X?öœä#Ó˜\—q#šá®ŠgûèÕØ9wà‹™Íqü›FIãÆŸ[ÙøçERDpk6ˆQëãn•Å™¹óØyÿeìm=‰7ö°pþbUÎTmÞ>=j∎Àm«Øt(€(cmFÍH-gKR9ðÙ,öfjÌÚðÕ/q{J‡¥ÆGœæJ›Îµ°QèÝs”øû!¤PåsºjæE–·‰r‘IR`íP•>ß ¡ª2ÿDn8'OjiÔ:‡5ëOþë¸ÓüvÐ’ÞƒjäËÙ³úr.·ŽÝDáY‚2¥Qòìy•˜r–Ÿ§®#æö®41.Å $cóÏ»D¤³¡ò‡½èÙÑ—3!D´±gÙpÄŠÞüžmS¹{í.…Ì=©\Êù¯y–.‚Ó'ÓðëêGaµòÝ wê£8{*‘Jí«ájñOÇIèI¸rŠS(Õ¼5KÃþ•N 0ð ü$¿ï—¨_#ž‹—t´iW濵Þä `™—ð }•*ƒÒ·gËs؉ÙñœY5Š®c~áH¼%  ÚŽ\*e»Nb@õÖì;Cx¦ˆe±ztéÞ›>}{ÓwÀ0j'¹“ô‚õ­é‘$iõi9’ÑcÛQøÆiNœŠ%äüO\0ó¡y¯Ñt+îÏW®b0å­½Ž?0}'ñë­DŒ¦„ï_Ëô¹´7ŠÞ­RÊñ¯)U|h*¥ýÊc8¿€Ë ´é=ŠN^gøbýµ¼UÑ÷ŽQq ƒô¢}Ó"Üžµ”›†¼{³Òt¨ÍÌ©ì©'1ÇŒmF0zl+lNìçð…Äð\)Òˆ¶=Ðp‘W ¤„§<ñ·‡ŽÝ |>n(_ï¹FŠQB “Óó7#4ïKÿÞ=içyi /þ-ËM}š W)Òq Cê9xê×S!3àü-ÊЪ÷hº;ÏÔü:¼¿s·+ d`¯ÎTTìbêáȉçÊѵšOfxo¢ƒö°ã¾„éÞüSr¨Ü}ýªD±l÷9r!þð'\*ÚŠî}ÑÂi?“·¿†?ýÍb^?%ÛK˜¡O»Ç©í—ðê5†ÑÝj¡NðgÍá@GÌ•dÌŠÖ¦Óà Ø•z¾æ\Y7‰óNйÏ`U¾ËÄ_N?•%¡M¾ÊÁß×al9‘ Ý*}ï0+â‘ÜÊÒ°uwú÷ïC¿¡ciæz—Ä1œ¿­ß‡ôì;€þ•b˜öÓ)2‘0Þ8Ì}¿a Ô‡µ<ÑÝBž×p0Iˆ!§ˆ©2ˆ¡zÒ¦¶-×XÍ H¿ÇžCé3u ç“sòùÁßÓsYqú×ýcÉÖß<ûEÇ•{J*6ïD¯¾}éÓ§/}û·¡¬½‚´3s41ZÃÑ¿_?º5iˆÃ•œIŽ!(8™G¹¦ B‚B‰JÊ;LÿT;±øl©eZѽOú ¨@èñ{(Üýð ùŠÝñ€.“kÇ–êVåíƒìÙC…¾£5¬. Éa©¤K×§SçzØd¦‘œ¡@ŒÚÁÄåÁxÐÞýú3p¨‘S‡ðÓ¹ ”šH.^ŠFÿHñèɈ'00œ¨¤LôNµé9l#ûV$q×A]Ž!÷J#j9¿f4]FÏçP\v¾, ˜"N°dÚ Æ,?È=ñÑïÙ‹9|³OßG“Ÿ¸õSîû`H–¸çìàÛS)@ —ׯcÅK:ŽEÏf~xÚ½®T… µ™ò¹ýêÝËÓžJ®c}†vnEí ÞÏvà*R¹v5A©x®7RP¨P¸Cû5êLPanfþTþ}ËÆÓ‘’B.ei;l0ƒv£a9W¬_T¹OÛ$ß®äJR·NnÀÔr2Ã[%4÷ý+ü¢×IhÒôTðUpýøV”­§0¬¹7ö³/Ü ×·ô¡VÇ¡ŒÓýÚu ÊxdcDÝI ~»ÊXÜ;ELÕ! ؃V~V\³Ž)¤%D#4ÅÈ‘}hdËK—IŸÔmš KùxÄHfŸ¼Gv~ƒÞÙ6…{Õ†3¨gk¼sw0óDÂßdLáGYðõ`Æ­‚SóBú„›ìÛò=;/kIKТ0Ýaå×; ·¯NÏaÃèTÃ[ ˆ>0‰KÞíù¨ÏšÚˤ¡ ¹±cñuÇ1¤sÌ’w±è²ÏýÍ»—û·q"ãô< þ˜Ÿ/DæétÉ€æâZ†M“1#èÛ±-~"é·ý¹r3ªýÇ2îC/nž>Α;©vËI>4•ÅþQÜñF‹‚]¸U¡?zu¥ªr_ˆù»¬¦…’ SàÑr$£Ç¶Á1à('ü“ 93› Vÿlo~·„óa\8x‹}Æòqç*hCϱ5 †È€4Q¥ûx&4Ó²bÕîh úÐ'\òlK>iæ°I;îÿ]Û¨íp+_ŸöuÒ¬vsšÖò¥°¥ôâÌäÜHBœhÙ·/}úô¡OßÞtëÒ€b/ þ¾Yöø¿£__Fc³nÖÒ_ñ=O<ÙÎks’mE:w®ˆ- 0&píFÚ#.=%»bôYVÎÌÈ…{Ê2ä9á{¹ô·yr’¨Ê2 'më9pãÛU¡@—Dzº-G aðÀî4­VG…žë¿ïæbÌ?‘BÏõéÏ_è%(U*,,mž\|!(03S>'€÷âö(Ø1ì92¨P¢6S¡^&w?‡ÄÈX×eHçVÔ©èƒÃ+Eo•X©Ê‡mÊ`a•™Ö|Yä `™•à£'©úål†×²zb’*X:S¥Y/úé.i%9Ü>™‰É¬M[WÆ%=žƒ?%˜öŸâ¥¨Y»TÞíúËø¼C¦þKmKR£E1jXÛc#TC:{ŸÛ‚?שð\—jxc^ò.æ„’Ô£*JpôëÅ$éOÌ ˆ3µDÇ&Òvê4:y?9ÁHçöY5Žã¹²Åïáõh\Ù uñ@ÖÏ !é£Ê¸–ÄgUÜq5}–1;V­…Jö¹$ÇÄ“|Û…Š½*QÉ«4õ­m°¢ ¹ž7¸¥M&éýz9SØ ” cOb*ôÔÜÌ߯½j8Å¥tPb èb2™ÙÕi÷a%Š>HçÌÂ’“sÁ)˜¥÷â:|4mË °¯ú“EKæîz졆Ü:²’‹…‡Ò¯pw˜“ȉe[¹W¨zÔ¤°ê’-Ñ[CÂ*yîü"®ÇStL=êZžá¬šA5s~h¿OJruÚ ­„Wv6‹ƒÉH»Æ‘æxõ¯Gãê˜dýa$õ5ãà2/êï¯C]•Hi‹@Nì¹NLYsÏT ùªÊT4ظቡ8¡Em_‹&-*ãäÍžSÉÐÝ"`…#•6 ¡›¾ÁÆAdvõ}å̯'¿YBñLÙɈÎ$1ÎHåÕ©NIr27q",ðF’)éטV5Ên(‡v:Qya>ð´:Yx4¸B丆üÕܲRˆº]‰VŸV¥<dÅþÁµó!dÔn€oegòòà#XþsMº|Q’ô¹ûqЄ†EòQ¨FF ¥®e{3¶ª…Õí !h[(¦×ZJ/ ª4˜Ïª»ájÚ$kân%Våì=©ß¦'á9·QŠâ#'0w6°ìž;ÍZz’˜[0«Ó%É®$uZ´¤œÍãÈàÀ7)?þ'Õø+³B—P”+·.!¨ B *• ¥B@TO´sA‘JP€%U¿hN#;€ª”ð6€£-}ºÖfêR LâÀ±ÊôØU oEk¨H¦Õq :¥Ëd¡PTª€µ‹7¾õkã{þ:ÖVaìûå ÕûÓ¡eUœ5ðù,“Iø“2V…ÙA;…R‰J©3{<ÊT¢QµŠ((Jìž-h’ ‡—ÎnUX8R±IoúëÎb¹nÕéÒµ#šTTâ_nH˲™ÐGdÚofHâ Ž®ò¡É¡šÔ!‡ÂÂ}æ„’UÁ‘4£DçOFÓ¬ðÓúû¿D˜#{~ 3gm%RQ†¶ƒF0¸sY,‰aϼl>ŒV) (ÙYS»RÆÞü?(wÑ»ù}Ñï\3·âDD}9w÷4çng`2zÓçÛoè^Åÿ…k¹/•Á7RaèrƘæ3|Õ=ÔJ3 mʧó¢V{ZÊ!áò>Öì°eÐ-)‚†{‡Ïp'Ê™VCŠá¿ôgVí»FªÉ‹³f2 l8‹Ö)c¹e{ëðù/…AÏæ©8¨ÆÁ½1“¢‚ðßKǫȑ$Úàá[™VÕj½TF”ð”M÷Çb®‡”Áè_‘Ë*S^oIüú£$ÅA_ÔõèÛ=è5Z”’ˆˆ8z‚Òã¦0¦aá'$ZÀDŽ&„ ÓmÉÝK•h±°2etj"Öž"%( Z7¦[sl­ÍPQ‘$—‰Äæè1I BðßáAÙ‘jÚÁ|^Í"æ ‰³$þØDŠýh\¯^ÖŽØbÂtö.7’ˆO $e;0®¯‘oÖäé¸ÉÑ•ÅùàpMê¢Ã]q˧Cà;‚leß­Bt˜Ô‘’JP¸× {·¢4i(žìÚŽÁ}\qµÆÜ)Œ`ˆÜËßß§ù¼ Ô¶ Kœ=«Ó¼JÍGcwú¹#¨*Ue`ç¶”|Á`bå^‰îù=.ä ‡bšóQG'ÐDqîÄ>bK  «U2z…Š„Ë7°¨U‡ÁšS쑨†sh© ÕÖ4¤“ Ññ:[–’Ü6ƒs›}iög5jS sC<»®_äVF©ÉÕiýÈ $9>ÉÝõ é·®ÔI}ÌÚ˜§ÿ%]½AãióéWö/û$$!…lщæ«QküïC›œ‰„µeüY•Ú—'i©„Jy›½K=©¿·.uÍ ¬åmí¸‹®µæOØðe©Ûº ¬m±ªbð"ˆó\cA±ñõh\éÅövÜ®eÜOöCJQP¥Y5ªáIRÒ.Bî!`ïQ“¦-ªáøv9MJÎUÎ.w¢ê²F4,¬Fr¾ÁæÅwÉêR*7 ‡Â.!™ŒèK è"âCµaºÃúi{P´îE‡:ž-ƨ W¢yݺOd‚¦ÜÝÃÌ-!¨SŽéÞŽNõ}¹²ò[’ëNbìÀ¶³cÛ¬ì¼B¦±ƒþHWç‹ÌùU…_¡y,>МéÛ‡S!ù Ÿ ^D°Ê ¥µ;U>ü˜¯»{|p9³>D¼Â•&C&òq{+ömMÄ,{/„™$ñáÔõ ©a‹JÉo='ò‡Ôæ´šø.‡f£°„ÖEs‰¹r”cû4Ôû¬I7r]Q™N}êã¦xÖø&:Ž}Ó›%wê0ô§ÁØšr¸½é&o‰Æ\iEñê]˜òe+#ÄX†N­K£Ö±uã=ŠÖþ€ze’XûÉlÜOÁhÊ$Ρ?BÖ ¶oô‰/'~\µkæô¼›æ#ç1ÜÏòI]W¸2;w"B“€RÊ·+ ·¤ßG®¸Z?>¯’PTÄgUód'7Վؽ‰Ñ)(‰5EŠÕ¤e•ššöMÅ{s™¾'3ÁšG0¾O,mÜÜ2•ƒKbˆL.Iÿ¹ßÒÃM•×ß5‚î_}´€@AÀ¶“VM¡ºòù¶@{v\'úæ1.ERuüB*^ü‰•§£i2uCªªIØÿ%#VÞE©PbåÔO¡HèaÖý™†³´Ž§U”mÒá#ûPÖ:#K±îà ²”JŸîÌi  ¦³Lëù37E µ•“Ö|NÍG‘Ç\â®ïeÍÜ5\2³âÌ‹toèNfèiN\KE4zÑsÆtú”déºP,þ`ß¿[E‘ß°,¼}¿[Mké ìh\[%gµ¾rXFFFFFFFFFFæ_$ˆ£Û¯±cgw&TÖNôýe=]Ý%Pª±õ*C¹b!ÄEŠ€ŽÜ5*µe^àÅ¡eb‚H×ä £Ð#çн ŸÑ~>ߨ¾`*¨²ÆæÑŒ=‚@ Ž®¶6X¨”y«š‹–£ÒcD‰"EQbîRšjåŠbµ/Ïñ—y‘½¿ `×e–rñjÐ' £²5v£N´q³&#ËK3!å¨x’ \mÜq@ĘvŸ[VuøÄÐ%žKPÙÆ FÖ zŸëF¼ ;`cçŒN|;ˆ¹§*0þohbþ”cZ¡ÂƳ |îróB^ýés£5j;/J%ß$;#Ä4î]¾‰¾‡>/SA3'ª–÷Àzçùz‡—pÌùc>odÅ­Ãp/ÇÈ%þÞ]îö!'ÿ^…µ Þå‹ãd€ˆDaº¯Á¢®­i%(±µ¯Fÿ9Ópx¢ÀôzÉh“笶)ŠOúmrÓãHʶÇËL‘_‡å©x’(ÉìLìUyN% ¯Ò”¼D(e1hóij{Ü”¶<ˆ‰ Zg‰‹<cIÊF!97…ôN”°È[É®(YžŠ7/T}EI~ò›•@ð³eÛ³-†²°Á|iéH¹ú]2®:ŒRÈÆé¿±h®š’ýÀü¡¶äff¢ÍÍwß+kP¯ôvî'AåÇ‚V&S6Òµy™é¸P¢¸awbI2ƒ2‹ÅC?q«|CÆ»–§ÄŠYÙ« í²rP¨|é5ç;Š‚­ö×Y:þ3ÎZä›M£)ýš=[°qË—o#¹éÛÔ¢½ €%%JSÊ=†(“˜ïÝÆòÛv´èø!ÕϱkS VVfoîÌQYb›°“IWƒ™ AÔ£/=‚ß¾4ã@€Ís~âæE\±¾!¾ðnN¸(&±¢¶€Ê¨!.`+s¶Ýf†w¹$K¬‹§¨Ù|[Ò¡P ×#óp øÆ“$Z5gÚ¦OqK9Ë/[Îl ûÐçfÎ.NqÕ ¸u«Å?ósß,níšËŒŸýX?¡æ{´µ¤•:’#›°f¿5ÞÍFòŰn”uxÁ-OØ$!ܲªÉGNZNk°0sÄkÒc’HÁgËB¸•-‰›u0‚¤¢8µÿ{Òpà‡¼EÏ»éï˜td‡\áhµZ,0j¸—S(oˆ¹FsÂcI£Ž†o U ¥»%f|œõ~õ9ªlÜ(’o3h3¢¸oSƒö…@‰Ù—Ö1cæ~,>Ϙ¡µ)ü´:±s§TùbØ+<ÒY™…ó·|°v+Žw`ÑT"+6„;Eh*=Ô9ö¸–)‰»ý-)?›ÎÚWpä›Ì¨Á”}3h¤ÉÍŽåÖµ;T1æ¿W™ÌõË+ÙÚrîUÚ3á‹ØÜ»É¾U§Y³f ähh4e ã[Çö9Q¯áÒþŸÑvüºú8üoç¾ÏFÕÌáè¦c¤Y'zçûWŸeݯ?#åhiòåf>k–Cv¦¥,Lˆ¨P”®@… Ü쇺ќBn9J„G!OØa×ÉMËDƒë.u!/ÊWðÂ&ßò0.²ÝyŽìnÇÑ€C隌˜9“†Íš‘™º–ï}@˜Yê}4šöõK`º±šy÷KÑ”¶<ŠZõkAKV¦ vfyrh^Ì—R7Cˆ 9O袶ÁöÑN¡ÜÒ»âáfE®ÞKõ?ÛÛ7,êóiÊhsoñsƒÆL±t¦bÓ~ŒP™à¯ÏóÀæa€¤ µ|w’œ–DZª3¾FDÔ(J•§ÂK„U^N­ƒ)“°ë·Qù=´ÕI%ŠÀ_èÔfJ$D¥%Eê 勿qD^M£ÛŒo(öçZÖì·eòè±ì?rãAnx»²Z_¾S §¤cü°þ(µêÿsºÉË™3Ǒ¦Ë,<Ûa¿³´|Á—Or0"ŒÀë1\ñ÷dÂÎmO½Á–}Á\¸`E̹5DúôfÐçŸâq9ý7¤yæDÎFX§%üT3o\/ähGü};¦Ÿ¥u%¡‘á\ñlL³,®ßæžÊœgØOaë{2nƒ]¦ÿÀý QÔ³*DJ~8•Õ-•XfÇápš_ܦ•.x6¯¯IÙÄÇ¤á  eïç³ *:˜O—¡°f?_.S£Ð%|OÀ(4 AŽìϵe¬ÖxØYþ½=Ìmqñ-§CÖ_‹9¬]q}Ö¼Êü¡ì˜Ð¥…s׺ÌE2qœœÃƳñ¬Ýƒñ¥fa0³«@›)ßÒ(í2+‡v`L¹qý²É •ª"ÔïÞ‘ÃF{ÆÏlƒ‡¥#VÕf°¶‹6É×Xw!”}WDÌ£B1x´dèøú˜Ÿþ‘/×þA•aH‚µÅMVu½ÆË—1V2¡ ?ÄÒNSîËúhîïbî …\¶µÊ³ ähËÐóãºd]ºŠ¶xG>oÌ´Ÿ~Ä0x$ß•ØÆàu{hQ±#n ƳÔOB%êI øé[n²¸Ä-®ºA‹YëXßê›ÝdÏÅëdÇlåT´'}gŽ¡Šê3WÈÉQ"¡ÄÌê&kz^¡ÁÂÅŒV€.ê ¿|w‚r_¯G,p+Yƒæƒ:c“Qš^êQD­D!´£—dŽÝ½||ùMµDýy„¢“§2·ÚFŒ›Æ?ò]È2F/?HÕi„… 4¨'ŸýûJÓ#¹ dddddddddddþ=²ÉÎl”ݣ¨.šÐÜÛÉœÑ먺«_Þ¹]¢ ÑôWv— äåhåM×Õ˜ŒMmC¥9ɲ•Õèu¬ìKNn²X´ƒD© M«–á´tñÑ^mj̵:t¹/L&1?Â"b4(ppëÅìƒ(—̱'8¸ÊŸâcë »z†"n•ñrw'F2!>Š™c®Õ¡,p$™.²dè ê®Yˆ+ MŒ%-þ6Õ[ŽzÌi’Á‰™[ÉqmJ•ŠùzKj^Ìo£î°®ß,t+¿§ëS`QÄd’þʲá¯úSDDc.Zuf쮂ÂΞÇw Mm–« åКÝl?ÊA }n¹V•08M`øì¹|¨S`õx4íQ¶ž„€‚ÐÍß ¹µÕÃY7v<+O¦]oïgøÉ¾S…Ú`âÿØ;ÏÀ(ª®?3[²›Þ{‡PB[½£tE_°WÄ.(¢ (VŠ DEņôÞ{'@ B Þ{Ïfwg¾ AÀ† ŸóüJ6Ù™[Î9÷Ü{î=W2ËÈ¢Œ\¿_ªk©•¤4SkÐT©ÄzÏPI ÍHuw„Ö=ÃhÆl‘­íq9ª¤Å¦Æx%íÅRïD+å¿–íg~&byr¯£É‡kx¼â{fþ¸]gÑÚàA·gߤõÃfÔXüô*V6}š¿½ƒéÏà›Š*$QDªêÆŒ«Ú6ø6éɈqó˜jèJ©ƒS¹=|šAªKe9Å⟜i÷t$.jRz‹¼»?äËnFÖ>ó(ów'3¦Ys´Ž-7{>Q'²þé¯èóéã´þ G]k+òÍ ÑD}; zriÕ35síßäç¹£W™¨ª4²ãÉ ~˜w?MlÿÂ=À#Un=yöÙ¾´öwD”dd­3^U«©hNè¯VØ¥ßÒµH7=žâc IDATl›§¿ä›Asæ'ô}aôL6?ѕޕÞ÷ŽcÏ"oîée]ñvnÒ§¿ÚÀy§Yò݃ò"yûÕñôolÓ-´P[K­záª~P£3ÖÖ³W!ªÑW`ÜOXü¥ ²{'îŸð÷t úã O ‹t—,H×ü¼~ÿˆÂ(ªÔhjª¨¨ò&¨åãŒýônšcÉçÑl]w’±£#žèú§¨­¤¸ÀLU³Q<劓¥­l wËvR¥V´ëÕ¨o´•þ8ëÒÿÕS/‚.Þî¸Tùæåކ4V¿û!ßnI¤J®¢Üë²F÷ ÀÓ NMPXþ*ŠŽ0côLN©E,² Þ}Â)h$Þ´º8¸ûѬe_ÊgXëRl~†@r¿úžïVÆ3ÿg{´–2J+ 4ïÓcðHîéA¸§²eëB¯6Ab¾g'Ö¾œ´:Òø¶ñ­h1ô>ëþ(‚][ß_îuGp×ß0¨VŸd'˜E`ád.铈J¶Ž§WRä[êþ*”æwbüüéèh‹˜¹‚)O}Iû­O^SÍÙØÍtíÿ4*ÓêmÙ@-&Ë•g’ÃòGá:üiZx9 '¶-¢û€M ð5¥ûùnÒQ¢¾ù¨nlðl5š©?·gÏ—›Yõ™¡wÅGøµ}¨ïqˆâû ¨Õhjj¨Â‘v÷½Â¬Q"vê«lÿ¯òùÚÓåù/ic9É÷L§æû÷¸£Ù8¾\zG¾­ïeæš!XtÅÄ-ÙLÌÂEh+Bé3¶]ïí„oÑ6Þ›´’}áÑ/Ä•_gQ·P“º•åë»3n«UÉ[Ù²` ›Š×³L/SSSƒ9 %M |0þmºÜ‰wáf¦¿´„ý#1«®øJ²JƒMµ£ Ômлd'ETFfñ×~X•Ùrí1ÏRÏ—¥A5„·–M uY.§vn`ã{»ð} ’KJ:%n{¦òAü!R‡¶¡øà~¶ÿòë¾x`¢ºÊÄÈg†Ò½_§F[]{Ÿ¬”}3—Qbß•!̓ȓ×K·|ûûÏð(>Ë–{‰œ½–Dzçñ᪭ì:ÑG^BÆÔOÕåejmjÊ"yõ=jtåÙâô%@Óž¾ÿ ìì¯JÅnA ½‡?Š—dÔ•I¹8Gt¡[›¦$\hCó¼f´ë䯹øR4Y¤äïfñ²¯1;êÐXÊ(­èIï{[ci4†»ú6¥‘Lé»HôÇäÁ>øâ@Mvº3Õ”egÅæÕ,84TIiyƾ؃Rß¾ôéa McoÔîí]_†¹‹Uiw1ar#B. ¦ ©cgZLÞÏÙÁ-)É:¡ß3€…A¯¾M?´Ø‹WûöøfäÓä<´€ï»âàd[OÎä¼í¼þà|’mDjÔ¾tD‰—µ \ÑUµmÞyÊÝpg[Ú„¹"{c+ZÃÍ*´8zy`kçD¨—/eélžû2Ó–¥áÞ¦?½øÛªëÙ®ú\^e®9ÄWÏì§ËwspEÆ)ê!欹YŸÏÁë8øó6|Ÿï‡¿ ÂÁÓÏ;™øí¦œ^À྇yuýËtÓÕù³¢g/OììœõôÆjR÷,áÕW—’c#QeÛŽ‡Æ; ñjB‹ˆ6´ ð@=¬aKŽ‘UéƒYÔ d]$.}9ßß·- Õ±ØÜKÚ”î4m4„©úaê š¨ÃA>μ³e„¶iE“HW©1´lB°¾-¡ëÊ1 "9–îýA@–ì»¶ ·¥¾‘£ÜÖWKa'óÉÈ<Ïic#»u¡Gk/ljpÕ×ù#¢ 1û"ñY+X8vdS 5Œ&mj/š_êQ½#®>8‰þ4örGKgÍâË5ñTRM¹×²{Pb k»f×¶!xeQíìÒŠÀÝ%˜Ö›%,Ê’Ê@ +((((((((((üƒHXd<½¼ñjûÑÙë ΕÞO#§†K #Yêî>ªÍ%ÝÏ•(;ÝåEÁÓ?N§èÁÏé§ÿ=«rb¾[Àþ¢P†¼Ü?.`2 ˆ—&Ì™$‡0P®€’ePi\ð±uÀɶ ­Ú$Q|æ"ytƘ©ÇÉÎ G•ŒÙ¬Bué¥$7`ØåIù>êý¡?}Î(?k{T–WRU@˜ï¥š—°wÖÄ;tbÄýÝð¿¼*¢wvGOw¢¢^aW2 ö¾q[K ×-²›óÉör ‘£-ÔØº»Ü°µt.­ÿãV‘D4ællÙÎá–<:8Ü0Ñ\ç‹‚ Ö1/îA^ùÂo<ÿå—¸¿ýÛϤŸÓ•åCIY®ë_K!9îv„¸Øbcź6+·öËpQBâR^ © ìÜi¶ «¬ŸKå”h,˜ý=p;ŸCE]ÒGŒ9¤¹ÑÚVƒh/‰K^&)̓ñ¿I²-5íþD¹ÏâÀ^[R bRgGx”—YÉþ£k9Ýn,áöÎxØØÞxÉÔBÐ ¦/êA­¤Æ¦h OM³ð«°¹Ö“V#_å§/£•3Ø´riZǺSM³ñ’#ÛòhX#l*v0ïè0|;?G-þð3vÏÏfMÞ<†y‚ j°w ¦qh!çB?')íqZ‡üɨÝÏœ¡Ëiöã§ »¦lʘ€ð1ïòÈZ,‚ÛÒ­Lœ‘ÃÝ“GÒè¯ë”TVÙáæé§ã•g¹xrqwsGý˜©J Ë WQb¾Èß  2 Ö»á©:gÅúÖÌ鳕˜'ÚÐ^­#*Á†KçX•'wpêÆ“ïúá=}3y1ç(iÜç›V*Q’°øú²žÓ)=ˆp¾rz·4‹ Í‚-ÉHB½À` $`1Q­¡×ÃóÄý~xyæÒÚ›˜6û÷ë¡ÙRg'd3ÆÒ" šúÓÍ,sA熭¶èÐú1Æ Š,×=÷O!È2²$ Ø:Yû\Ô`#¨3Ò8c뉻­ÕÜÊÒ-p/­usŽŒ ©¬˜ú'=‡ðÑÚOhbÜÆä÷³-«þužµŠgÆn¡Ë·›øÐ½œ¬Ä Ì_[…ñfža¶u#¨Ezm\ŦÆaTW´¡K5ËÚ2æµ'>0UY´Ãɲ½¢„­M½àš+~…Z§G[SyÕ}÷·:"nÞ€ MBw¯¯¡V‚+á%Ÿd.#½kÉÌ•¤+ãi±VÂâçv;cÆl¶ÃÍÏ[-‚×zNçl4³) ;%„°`ói ù’b)£P¸¹ÖW9¬š0›œq߀0œT%\<DÓAW’[jöñɨµ4ÿaC¼ê™p=6͉l³ž´Ì ä—tÅ熮ó¥úÉfÌ%…ä5 Ämp¶½d¡…¶µ­‹¶ô¢sÔd\„;:ÚââakÕT;\¼íwBCâÉÏÎ$¯Ð ?O|œqp@¯ð·ÈÊ«¤6ØÍÕ{ù,1k?F~l99¨¯,ÙÊ ²›Úó¬^My€G²í<ðvrÄÁéz7}›ìÜ&j.]¿-äd’ÌÝ’…–º´©r-U5”†zÓÒd"ï*?ÌÛÅá·ÓöË2‚àŒ·½3®öŽ4mIò©µ¬Ùݽn8„»`þ.“æÁùèDúÞÿ%«ÆVaB‹¾xÏN¯`Â{!¬îs´n<‘òóÈj„ßÕ62ÍûŠ#–V {´'^$a6«ÓßžË(Ÿ .8ÊÁÒq¼ÒÁ{žc¢ü GoâBø]<2c.÷Ôª°7îeòôl‚lD’,*T—t'7“”Áü!ÔààzZ㈇§7—Ý$¹Šj­ j$PkÐi4€Œ ¨P×VQêѧg½JHT& Y´Åɸå;­H“ˆ·mm½ÒD’­ï$356þîûˆ'&t@[Q‹$Úâ$Ç0óã3èlêtSP¡DDs•‚ÛUw»k°wiIdÛñ¬Ü4דè=@…ÞÁ ý5+Ìý‹6ÿõîzχ +¿a”—Õn”ŸZÌä—ã¾twØgptï.öŸ«¢Ö[@¸Ô‚ˆ(f&­#¶6â•ϯö¨êTVpô£÷Ó èô˜Q­E§SßP—¯9¯²bÖKhúÓ§ ÷±úG*­=®Þö€+C’W\I¹Þ\HŽå“q¯³2ø–þ<_ÝUþ¬,# ""FR¶}ËÇ?VòøÚ½ôМdÙòxÌ5”«´hÕuµÓêЛ̘¥ºqª¶cË'ùö“¡xš­:!ªtØc"ïÜJÞy`Gl´uÅ1Sk çºSå`GZA@£Õ£SÉ ªÑˆ4¹«y~ìFÚ}±–Þ5'­çÃEÕj{« APk°ÉÍ#ÅbÁ½±Þ:VZ®º¸¶šêæñÕ¬!x˂էTi•F–$dADKëf|AŒ®7ï­Ixí¦ÎÊGm² ithE©îþckV‹¨B+§kþÿ%]¶‚‚‚‚‚‚‚‚‚‚Â?HGzYÎW+ó¬¿fÅràl0—‚‚*5*• Qp¡Y›*Õ‰dÕ‰Gˆ±Sãd[—ºr+óìθqa¿½³UÎd×ÜY™Ȉ7FÑÌ †ÞñœÍ,Ä£wp$À‹ñÒ4I@£Q[_qvi„_Ä –(&ó\Y¾xqØB7œ<üp#ˆŽ}£9™ZЍŠÞÆ‘ ?²VðT _1Q—ÞQJ^N)¶]hcÈ)¬}w&;ÅvÜýü@BëVàŠ¶|Íêó%u Ò‰XF ßµfx*4jQ%"à@£f¢s,)•@Ò1âT&ôNnhj0mØx¾‰)hp¢AT‹uõ5:{'œ°urÄÎV‡Vç€3鬞>…éŸï$£þü_­BU¨Ujp÷Å/îs–ÆZ§ÚâD¢üðs2‘¾}“]L.„6V£ó<Ì…ràâ âår}Ozõ>©4k}«mãh ~t¥û åì:fí›ô£;H  …SÁ‘›ˆÍŠ29•w‘÷.t‹Ì¡Ä’D¾8q£NjÄnô¼…è "`3qƒñû³â|©ÎjèH²ÃÁóiìûž-Ùä_Ì'½Ôlݘãe§8|ܽ“(¢·wÄÉÑÂÖ>~ÝðG¢úÜ"ž8—Su²)ªõ889P’MüÉSx¶iaM‹.%°r¥ m;èØûpê[V±žÝÔ”'°/ÎoO‰”å³±ÔºðZ^r‘s‡áëûçšÂ”²„§® ÕòOvõ3.éµÊ˜µzìœp²×£q´E£Ñá`gsS(dÁzê³ázzWÆ=UÉ[ƒ?ãÌ¥òsøÇïIu¶Cs,æòç\<Ãqc)‚³Ó»r¹Ÿµ7%d%”naÒ§{)«¶¦¾·¯*&-ÌŸz …—±ä»9óÖ¦_ú€*WGìn¦i.+$¹¢\ckî}̉%?®!±è’uHdΠw1õïF°7>1Û‰®ªûSUçÏÅ“å$ ÒÙ Õ·cü”ö\\ú3_í¾xýSÃ×C¥F­DuÝbf]{¨Õˆ¢ÊzGóÕz(¨Ñˆ¢Ø‰.ƒ–²;kIIØORpÚù¸¢ñ^Ë–D€,’NUPnqÅñ_þ"ƒl£Ãξ†Úý?±«ÈI&A[‰Íˆ!ŒªÊ¥øLÅõ•`Ç¿ 5”;‡Þ²9MTÈOpº² £`Í>!O#Keý¿ÊÐ>ôo¤ÇÖÁžâÄC$©Ô7ys€W/wBí²e{UíZ¡Â¯ª8ÎÅž"{œprPƒJ¼*» bݸ‡LZÂ.êJøíäZ fß:¶ç$sòd-µ*çonhà“€ nAµÞB\PNb~•ÞžWîc½¤ƒhE¯aùauŠÕ.æf÷‰ Ü¡:#–Ãb_¢ìÁÑÝßæ;8žä¥p¢4£—/6œâËñp±ç8ÆŽnÇ¥@Jñ~¶Ôö¡k µ?j/þ„A«h³|Cꌤ%'‰˜-ˉ5Zý¨‹'ÌTxâèx-{¢²ú5*(ºZÆî“€`&ùøÎ7Á‰bùˆ—Ÿÿ–D‹ÐÀ¶XmŽP°a«Rªë²ÐçÀÚ¦úCmÒO<Ù"Û*„šlRö-dq2@>i§sÈ(íBÏy$fälÕ¦F³ÇÎÕ»ª-¼Øû}öV›.K¥%m%‹ÖæáÑugE z{'œìÐ9Ù£×iЈ­èØ#›c)Ñ$œààq[ìzÑkÄÄYýsl!®q#B4‘Dö]Á¾$ ¶ŒóçbIè€!DDÛÀ«Fãäxí=~A°fòÐjÛÓ¦×b”&'‘XÚŒ&î©díÝBl9@&gÍÔÈö8Úi°upÂÉAÖÁµZ‹¾=¯`wœÕWÌ8²ƒÄ°P\©âüæ¯yõÉ¥¤! Èélž=›¥Í9i(az€0:÷û=þ¶ØbçT‹iÿ/ìÊ·úðÙç‹É+sÁQ ¢ÎGG1?|GA°7>únô¼‘ƒÇeD ïÀfâ_£Ó>æXæ<ø,Ÿn¹@ùÕA«º6¬ÿ»põ¸pégÉ‚ÅÓ€ÂÄÄçb´q¨³e*CgúÝÂÁj¬A>•ˆ¬·ÃѦˆò˜­$–ëq¸ô]ÕåÔæòå—Z0û÷ Ÿ<‹bYçìI«݈ýj>ÆÆ ¥²þƒ7˜6k3iÒ¯ŠöO­aû¾é˜§EѹËLŽ£F…KXoúø©Ñ¨ ç\) ê¼bJ2‹¨8ŸÈɬTŠ I‰ådr% "z'Ç̦†›¡L&L'ÒÈ¥nΡwÀÙÉG;[´ª+º¬U¨êt¹øšó*9})Oõ]LËåŸ1Ü÷ÒáÎî[Īt€lΟ.¥È䎋 ‡µÏÝC×Á[èøáÏì~oA^¿Ö³‰Ú“ä¡­Ûf]éæ!"V•’–v–\•AÕjÔ€tt/G:‡ÓÒÑIB !äÄç¬>ãhí'Gìµhðh:š™{÷²gÛv¶oÛÎöm»Ù»ÿ[žÙ ÇêÚËY³®dÔª‹˜[ª( îCÿ¦öØ99SrògEëûåú-l1c #R¨À”˜BX¯Y¹¬—%¤ÀBOÎeÍgœ.—OwqÞz/t…SMZFÐÜYi§9SQLµ(ÜÄëV.eJ(((((((((((ü“D½¾šÔG‡`ø@ÄÆ¾¯­šC •¦²ñó ¼½Ö@;|n,o¼û4m¿|׺È¡ÍJ_[ œSߥüÑytÓþö´FÊÎäÜÅ}ìØ¿ž›>À­ßDæN}“àg^eäÛ)TЃ77÷@§±†¡Ry˜»?N`ðßðÈÜÕŒzøi>oÀ§§YŸÇxíÝ^Ø%þB³ 탭çHÃ}Øq/1hZÕôæÝЈ¾wq5'ˆdà@ãÀOL¥wUöGc XR“9›ͦØmlZüžw½Ë}õ,yñ.ÞË­àÎör_`ÃH€T™Ï¾ù3iiñIƒxeæ:&½ÉÛ½ ¤Ñ”ûf¼N‡P¨6c®­Å,qùà¬eO0bæ1k}ûÌçÏ7óXxÃ)ëœ\ÂlªÅd¹’~«úÐl|g%)&öõþ”ïîæ­U“xd„uý¼zÍ)ç‚d¦ÖdÁ ¸´H›¤$Þïkà3ê)‚E‚߯÷¡—úVUôbú¶n¨nS?f·Á€5nÿã³-€ ýû1}„ð¢ó¨˜ÒÅW¡Ù{oób—ÙäÉøc p›>eÿÀaDWbaŸŽúSrüë:ïbÚÕ²½r=*žœÄ3à |„ަ=áÕw{ã"&Q¶óÞ}éYª¶}Î-üÐ[È ß‘WZC³ ‹ønl !Kfjfkó‰ÿåMžü"}XWžœücZh3Ç.àTH$5oTwïV3ž]þ:/Bç)ÕH´à¥UßbMÛçóVoNA-yê£DÙü™ÖIÛ·‘¸Ê3Ä 4ð& ñlÌÝSàÙ°D¾óvóØsê^{f Íëø—ë/vþ¥öYËy~øÜz§÷šòܲ…Ü÷àwüÀƒŒ3¬Û{ÓòñOXÐÉ¿ä™L4(pìÀïOdx+—ëôóN¦õ¶ûk8§n (ú#úN¤Âlí£ç—/l°áòâ›ÊgåïŽÂ0ÀÃØW˜Ø§ñuáÿ~Jˆýé>øl#©8Ó{ÂÛônø:K¥üoL/rJ­·þh?ßv×þLüöõ20 @ëAĨ©,x2„½Ë’®¯}òΤlÆOžÈ»¥ïðÂÐpœG›Iel™;ž7W[—ržŤ·&Ò)¯½ó);NWÁÚy¬™°€éc[¢Þ>…»f줬Zb„a6#?=Ì˯Ì`Gwôx7zˆÙ‹! »#Y/0ÛÓaÌD&ŽíˆË¿>"JXÌv4jÑ—ÿKãå¦âG¯‡^fh›¶¸z³{êtî˜[·±Ä #U·ÀYK- j¿‘i³G1k„v¹%z©œ†ðĽŸ0¾Ójš¿°‚‡CFr§a& áýGÒF”°4\bþËh\]Ñ»·G·_Mÿçõ€ž^/dá#PÙàÖã5–½× ¨ââͬýQâžùw’ñÍRŽ—7âžç›±{âªúôáÎáÿn ñK8»Ssî>xù¦M†MdJßV8Þà+¿òI\üöæW<2°'¯ 3ð>tó“{ZÏ)Ö&üÈKï.àHr k¶Í¥ë¤eÌxq C_A—Ï*0K-™¸z,Õ$ÆîCÓ÷=ëIÄÖ mx{ˆwêdûé(g¤“8]Ç¡²ô#k™‚ýŽœ6aêý"A*HÝ·‰¸Š³Äõ70Ðú„3î¹É´LÞÂóS­_ ð$¯¾xÁWEÊw¼Á¨;(©´0Ò0‡Ÿæ•Éï±£«:<‚äã%MA.@2›¨5™/Ķ—3å½¹ì>[Åâõó0¼¸˜Yáö|÷Ä@Þ/©`ØìCŒñ•¨>c¡Öh²^ÿ¡³Ã\™Åc Ìü:âå)‰ôè€:u*ï2p¡ÚƒoÊ€0g(3cª—f[–RùåѼ´ÈôŸ©¦ŠÐ;§qOúK¼3Ü@j£?œK//ì^þŒ£½ûÓ¹²YÎçÑÀB—'^`ÛhÔþ)>˜ë‡–¾´I8ÝÀëîô«÷®aïÂd–Úå “æráÁn^Óâ>‚×¾z‘ŽÚL“f1µ¯réöø4^ôëTû2`1Kt}ã“:¿N…Ëÿøls+Ë$3µ¦ºÛs3R9—z€­Ñ›ØºúÜïœÂ—¯¿KÀ#4-óÆþ¶‹?Ã'Æ„çrxb°w°¥å §yej/<ò÷òö›³Y“çÐ7ølB¼4àõÒgìï7ˆÎeUH ã³Ãÿ°m7MÈ¿ºBB…xâ#†f]þÝɽ#c'vip%Ë•/Y¨®d컯P0~:££^¶nÜ ~˜Þw¦Á>L›î¼ôÖNúõ´ê Z"FO¥m×.˜Ï¿Ï ”¸ödâ$­ªAàY–-XL¾Ü;c" ë„A–Qëì;w'OEØâÔ¨7ƒ#Í„¶²­7~™0aFºN+ˆ* "~Œ™»-øàÉå<8ï.îÐõ¥·a:¶n.„¶DD@ÝGøsá­)ô3¼‚_dv‚»ê Ÿ‘ÃýÏ>ÀW“Ê ÔŸÆ’µÜVwC@×ø.†¶ëÇØÞÛñÖO¼Ú­á¹SËù ¼óþ,6ž¨„åóX7þ[f·sfñ‹#x/·ªÞ¼ R~ÚD\Õ)âî°úÆPîž<“!eçùj”÷ ^òÊS]q£Šý³7 yðm6E6¹ÁX FßxƒZ `Lÿ zìZä>K¸†âПa5•Å{ùøùÏxÀkÌ€·ý.$© “©#SV¿Ì#à àòXµä½8*´6ªk‰`=9jèh˲ Éo,6éÄPÃlD†ˆA#‰TY0_=2ËŒÆ@†<æÈû“ßg¨aRŸ7†¡*?͘j:0yÍ«<1¼3‹¢Ç.“Y>s¿²&’ 3èßv+oÏço@p—ŽØ˜:`ßÀ/¤à¿ôã•*‰¨©æø²•:íÉ=SÛ3} yá]5Ú‘åã–á8q ýZùývFƒÿçü¿¹19%(HF(öðÂ5/ç²0p~s™ZS;)(((((((((ü‡¨ªªbÕº­üïžá¤¦fp!9…Þ=»b4›q_ñ-šo¾€ªªË>´èë‡Ý7¯“G AÁA·ÙÔÁd6‘——‡Ÿ¯ßßþ®Œí²6Ë›nCï§åÌÇZuœ ‹f!üÑ!Š¼Þ ÔÖÖRPP€ïŸ= ûÿˆ¢¢"Ôj5ŽŽŽ·T¹Ê+Ê1¸»¹ßRå2áããsK•K’$²²²ð÷÷¿åd,5-• À ßø¯ßJÉúïPYYIUUÛ;d¬÷P ‚ˆpú;†môaÞ£½ñsÒþåggggãææ†V«åvCF&==À€ÀÛT¦ÿy222ðññA¥ú{½[Œåìœ9”¤á»ßâ?fV¶63©«^I[©pë"•pj÷*~Ûˆ÷ IDAT9̤W{á@5 Ë~äh…=Ç £Ñ¿täN’%ëxQSÀñm ™S>œ…÷Ý„ÛÌE$®ýŒ7’z³øµnh øÏ!×]C!"BÒÏŒYïÈô±ýiâasÛÕ%5-_Š‹‹Ð¨5h4š_¹™‚ ˲õ¤³– §0Îù©¸¸áÿA©©·ôB‰rXAAAAAAAAAAá†ÿöþ ä’tÒ W¯–üáË8k()Ê$ëì†)Áß[HàyWP¸ÕF¡ÿì³k&o}ºÂš’WêÆëËGàå¤,½+~É­ŠŒÅ|Œãûïeð”?óýnA j¥‡nq#¤B'qzÕ|útA´Ób¾h¢ûï0ð_Ú¹ YjÙñv7^ߤBì nó³ç7¾)Ï6VU–yŠ»ï¦ÿ£šÏŒ9ßs( ¼ôý߆Áßÿ"JXAAAAAAAAAAáúf‹ù¶[lµX,ȲŒ$KÈÒß— Hƃ^Ï?ÈH3–?ÔN¼"îäÙ¯ùßUøûdÇŒÌß/;·¼ê‹’,a‘$$Ij†íß5I²$#K·^Y$kÄ[±\ÿ„=ü³ÜJòõGäPúÛÛUƳ×$¾è5©ÞG‹ËMÐoY–1[,¨,n7äºÔ·šì\ºÑr‹µ© þsåRé»ñò¦nȯ‘iɳ[[År˵¡‚BCìîûËû¾ôë1ÍbÆbù7|zýÞ’ ¨VÆÝ¿S Týóˆ¤2Ò.¦‘]TÝð}æ\NœÈ òVÝœjÎ#ñdå¿·|r5¹cÙ´qO&SbúSEUQ:§“ ”û‡'J h…žÒ“¬ÜvA«Å7r†íå?ËsÉÊ hê ù§c‰?y‘"éÔ¿-N:D ˆÝMZ•‹àIç!Ýð»á즚Üs'ˆ;žBàШ"á¬5‘z`/ 9…ÔИž##qGàÊÍ@%œ9\Fˆ!ëL—Ò‹GØt8 [ïPZF¶'Ĺn_mö.¾[\ Çï¤âD'sЍšÐû®6¸T§²s 92¨µö„D  µkÝk*R8¸uçõ=m2q".• YÆ©Y]Zøc§ªæÂÎ=œ,©Ä,ªYO†G\;ý­Å˜Or’… o4H_L .ö4ùøÓ¶G;{ÚÞ`'p)g¢Kî„®þ|ÝXÂÙãG)sï@ûP竾/PÍ…¸<<"üqЪ,™ì_M®,¢Öùug<®1‰/IM$îðIò_ÚtmG{DL¤ìÛ͉¼bj£×ÈHÜ2Vm㜬Boß’>ý¡CÂXšNÌ–ƒ¤ n„¶hK»æî¨°wò(ñ§S(&ˆ¨;Úáo¯E¤šs›wpªÊˆ¤jF¿a-øã ޝSçkʶšê‚3ìÛy‚Ñï–´oŒ-FòÎ$p*RÀb²¥I×´ñSs~Û6N–Wc¦ ýîj…Ó5JP[žÊÑMI\ mÑŽöÍÝK’9‚ÔB¢*Qì×–a‘b·!£Æ„$z5¤ >*‹%—c+÷rQT!è lӕ޾6níª2™ý[bÉC@­s",ª/-œ¯ü½ýÙ‡™Æá¶¼%ªÎdÕ‚ì*†Îýð Äñêñ·6ƒ#q&š‚±¿Ö]{–rRc7²0º Ó§öÂö߬Rá.>øÀÂÌE÷sû&þ7Q’q–ãGÎRXL6µíH«0O®k&®é“ÈT—¤·5štÁÆ‘D†»£º¬k&Ò³± ôÂÅÁ:VUgY·í&‹„{ät©ëMSüÌ×çzñvH Ç× Cð I›¶´ sE¤”óѱœÎ,Âh‘pìGÆ.¨êÄŘø#3¾oÉ—Í-Ùp”<4zÂ:÷¦¹³DyöYâ÷%+ˆà†¡MKT×§+9{$ÿAØ P±ÛHlptmE¯žÁh¯;Æ›È:›ƒÆË7g="•$mÝEb…‹ êð> kî|µpSUœÂ±ÝÇÈ–A²hð kE›6Á8JùÄŠ%)½‡fÝèÞÂ;MCý(OÚÅ–„"Ä:½í\ñlÒŽ¨«…Ê3IHLBd …m6‡cNQl¶Žù* øµah{7’6îàT ANߡͱGF²ä»r7É¢=ž~­éÒÉÍuý°kµG9g¢‹ìtYg¥ì–í¹€‹'am{ÐÂÃL~ÒqŽÄ_¤\p$¬]GZ†ºÕµ±õ9UIÛØ“D×Na8ˆœX½•³’ }}ú7¾†ÌV“}ú8ñ'Ó¨à DµÂAc"eÏnN7ô·É'aã!.Ô˜±±  }ÿö8—œ'v[,Y¢.AD¶mOc—J.ÄÄr*¥€IµUoº7uG#åptËa2jÌȨðB'ïzò%Uvt¾‹_ÿæèldòvŸÆ«ßŒv!ªëè1Ã;Ž‘UcBd´z?Úöëøóë4e3?¬ä­y]H‹éУÚ²dâÎihÓÞÿºl!÷B68¹àán‡ÈµçURe û·ÄÔù²Ž4îÜ ùç9¶ÿ$92Èf-¾Í#iÝŸßçBH˜JS‰Oº^ÓÖÿr—ÎÝ;ôJÀ®üs>*dÒüûij+rËÝ\[y˜Ofæðì'ãhá¤ûòÉT_<º/aS¡H§ÞZ|BBpþÝN¢DMÑâO×à(æëMA̘Ñ;E+~Å´(((((((((((ü³%ðÓìEìµitƒû`Ð"ËHŽ_ÅÂ-ièÝúñRS¤’ƒìÞ¼¸t¦¼½Ä ðʨŽÈ»–³~Wf1+“ýf/ÞÝäú‹È•©œ8¸‘•‡eü} ÉÞ{ã¸ñôÜÄúõ'ÈÔT&íä¸ç$Þì‚Z(M\Ï’C1DGGð‘!ÙHqÂ.¾þi;çm´„”‰ø6mOHÝÚ_á©d<;tõ| ëמ%O£¦âìN¼'óVTBÒ ¾^[Bp„Ù\Ä¡c|_ïP_‚I-TœÜ±†µ àí‘KÆž ä'c@èAÖl>B‘Ú‚JSÁ¹ýY„OŸ@SÇ+SmÙTMæñ•|¿ý<ÕrO¦Dx£.?Æ­KÙZ‡¥t?G«j™pw/Bô¿³•ŸÞ̲ÃÑìÞÝŒYõÀ²©‚S[fóÉšd\ n´y¼íU‹æÌ6ÝÊ¢%.¼úÅC´Òš¹°öGÖî¯Bo'cÉÛI¬Ú—7ûû5XT”*N½ígvÓ#UàHi5ãÇ $¤x)kן&_­¦âÜNŽ{¿Êô.Á$|ÌâufT~2åéѤ†Mc|`%‰{æ±j›µ®œè³Ôø=Lwö²cÓVrl¨ÍÞC¬ZÍä¡Ð¥-`éº|jÝÊNïâtð4¦´öøƒB|u$B«G¸Z¶Cû`ðÈ%få"6Uá(”wž,ý“Œi^Á±¥+X‘P„c+o4•Î8DvÀåØR–­Î¦ÚM„ŒXÝìx¥G£ySU2Ñk¿dÝn-zGÇÏåRâ6†~B1)çNŸVVç@ÅÉ•ì{‰€Ô,Ö-FÖ¹…ý’7ïߌåüZ~ZŸ†c(TÔ˜‰O16~ .X©eÌg—³`m9¡!jŒeÄœ´áÅIÝp­Ê'1vß­+ q»!<삊|Ì_Äv£ˆk°3b•;.†®4s³ùk¶ÅxŠÅó—RàæŠ›“Q–°X|ñíÕ¿¼í,Y°}ÈT[´Ø¥äcinbëÑFL ÷°.:›’Ùº*—ιÛ3Kf ›®îç¿hÊIZþ k¢ó‘mEDRÙڈ΃ÓX½ð'<[Ϧ“¦ŒÄÍ3ù6¡χ œùaK48Øæ‘™XŒÎ>ψ›2¬)Î&9~‹N†‚g0a),þqG %ô¨Q i¤mOÃôÊ“ôwóù<=w¼wK©Çv²êˆžNá)üøc ÁýÑ””qüLÆar@õ{%ÉXNê±U,Ü’ŠÚ©//‡{ F@*:Ï¡˜u,\*sׄ{é戴ÉûXst«VùóÞÏb' dÍâu_ Eqd…N扬›øfÍ!²Ô*‚k øwÀ€ ²ÁÖVs]½’lHº(#1æ e¶ÃX8sàõ^ñÌÿ¢”·;…`ÍŠ ˆjluê›\¿?Ñf‚;;°¹ê9ÜzKí7 ’‹û6³øëxt½Ã°-×!û‡ÞØýuª!_å“D·ÁûåÖdíoOµeD'eQíý?º¹¨‘òN±'fß/Ñòðcéê`ƒXq–•ÿÌÆZð‚ú\›«LfåÒ´‡)[>cÍTâ§äazê> ¦X¶îØÃ¹"ÇLÒv—`?yíôˆ@jÌ šßýΉóøzmBÌÔˉ;¥çåšvl3«¶â`&ýÀI*MZÆôm^o¬¨MÙÇÚ£»Y±Â—??D¨J ;f6¿¬Ãj bÉ }•‡õ¿ê{©ðbÖ³p©À=ÏßKg=”îdù†8ª$DUIsi1}<(B-ùIûøåýµ0´NBôAD6/%aÕ ~:ž‚Œ„¿]šùaw•úó“ˆOG­Ra1U’štõ]Kˆ q@ªÌ#vãl欯 Ýè št-&åì NdÑØØSž°’MÞ¡µæKוcö(=»›3¡oñj„É?aéF 6F*̧( È]ާˆÞöS?ìÉ{ûÓÄNl0jU%í`ÕÑ}lXÊGîljڔƒ|ýÅjâlt„¸âÞðÜ“ì[»šƒyì*ó8p±Œ{ïF”®î9[X¶l._Å仟›`<÷ ¿¬­Eí/S–r”Ð7˜Ðøª±­â<ñû7³æ˜Œ¯W>Y{R±<2žn^«X³á Ú«ümN³ä­ùäêˆlÝ Y÷fÔ$l`Ù–|œƒÌä”&_cGã¨2vïØEB®€«Sé» Ð¿úQæõ|¿>wÉdÛŸ÷FTÏ–m}‰ÕŸ©Ïµ µå÷ìε`¹Ñ‘Ñ’ƒ|öÁ¼z†a/ËȈèÌ„õëxsíÚßÂÊñ{lf>‡7ÐòŽðߨôÓð= žl瀣½•¹„Œ ‘H@Upù œø¢½ÿ5J" _äHì:¾[fâ·Æ0ÈݱbÏ5æUÏÐøâ2«/,a¬-áh‚މ¯v¢0a‹?Ø8¤Žå6T;‡Ò"ŸÌ# ˜›†ätãy¦¼|õ óÚû_Ï@«Ó¡·µm¬ÔØÙi/oŒù#m~sG±ëô½¨ÁÖΕ(\ã}WRιã§É•îä»o†âø‡Ë a©)&3Û‚c;[õm5Jÿ›(`…”üß³ße,_¿y9( ÈjŠòÉÏ-Æ-@‡8¹.†"—®<÷Â`¼s–òØÜsdõöãüâ¦.à> èz?±Ÿ¢€q iï±Lט•Ä‘™3ˆÏˆfõêôƒŸæÍ.Á¨Ï~ÌÀ¯â)6á¡Ua©.%ÿb%í¬§òbNGïÅÜm_ õ¬7!IñjBzJÿþ(v#'3½£Âé™ôÿ:žÒN¸8µåñY=éâ TÇ1ï¾D—õfˆ£Dan5Yn´éƒÖéaÚ>ˆ§`bÏ”)œHNÃàìBÔ SéäPÈÂ>S8i¦ æÙjJŠÈÏ*„Æ:l€ »âÉ4EðÄ'c )ÚÀKsÏs>¥!áìúåN=zÓÚ× K)¸I±]ëzAZ©±9ME‹v½Õ ¦‚³{“£¥mÇÉTIñÅL 5n ˆ@û%õó"†k¤ù ˜±ŸÒþ÷Ô .ZH>xœÔÒ0ýüQÂJ¶1eÞ.¦§‘þÃaì†OdBçÄÓ³ðõ1J»hÙúÞ Z}±Œ1γsOþt”ÿ=ª%nÜõõ[D™ÏòÓ·k‰;r—Ü8ÊýûðâľxdýÌýŸŸ!··?g?8BÀÄ…<ÐH…û6}~ˆeâ¬×Þ‘£eˆu¯)ÛÅié$Æ›ùßïО2vÿü-›v'2¦y’Ô˜;Èðþ—„røqL4ÞÓ¾ä¡p=”.aäˆÍ¤î|º^_›(I?ÅÑm"#N§9lž¿„ÃKc‰z¦3w?Ñ–»ëÞ½íõ,‚ù?w#á³2ÆÈ_H¯§÷RtW#<´Í¸ç³Çéä–ŒÝÌãçH‡?¬Õj׎<9§Q.`*<Ä—O/åhU7`¢:?¼âJüuÚ:Ù’äŒ~å~ú5³¿yÆE’ýûñü›wÓ¤A4§†C_,`Ÿý |öš¡.h%“½¸Êluš+‹H‚  Zµõ¤ÅÕý|s›’Y3'Në>äNW«NïßSÐd8o \ËÇ?g1(™m;dÏÃÁŸIʈäµù£pC"%9õM[ÍñŽÄÑ0x'} 1_ÍŽšþL{s þ¢uÑ.zÆs|²èíÇé°³ÓÖ³"*Ù.”n÷â©1M,–>ý#gR‰Šø }jŠ ÈË-ÂɧÞ{Ì5”¥g‘grì¾r [ª-£0)ƒB]°õÌ·”Æö9çé´àFØš8³a3–âÇ9ŸˆÛ©¼ÑÍá*ûýo"" ,y«VF“/úÒ¶Gº·õFM) [7sðTFA…Ê·##‡´Ã»¾Ìþc˜(>Íî û‰•“˜ý£LŸF¶e%)£Iò Ûè´Г¼í ¥ÅÅ|3'Ÿð^Ñ—-|·'µ ÆÖ5‚a÷P 7+±f-¥ÉÇÙcG÷ÑÍq –ÜÄsdÚÓ²»çwmfw\ ¸u÷(¢¼òÙy|Ô›ØÆÐ‘¨J9¼òSÎ¥‹Ø»¶`и^øÜVž•Œ$ùÒixOî¶}=Ù¸¾„ Wù$_ŒûŠÍ'ìa¯š‘_¿EgÓ)~³£Òè68ÌÕ”¦e‘/bQ©²=?²C=Ù¯w½¬ãuáSjŒydp! K*1‡ôÜóå4ÚñÅ×;‰ÎÄÐÉ—î¾Àƒ~ÎØRÉšž#.s­üõè„BvºÑùög`üœtvÚ¼}|ùÂ*޾EÛý˜0 ‚F"œþfû.fP@sê‡W¤Ú ÏgP¨ ¬³%lu–Ž –0ÒÎBÒÆ·™öË z%’œ“GHȰ%²$"`©¡<=›|³u] ¡Ì™n“§ÑÕ —ozM㤠¡E lØCó{úÓH ²ìBÓòð”;/û¥–“+Ù‘¢aðsïÓËëú=éõ83¢ê~):Áç¯UâÝÇärNî]Ê¡RWZ¶ŒÀC®FtmǽãÛý{ïàT™ýÿ¿î½ée’iÉô>Ô¡÷&½ ˆ;ö‚«»îºö²ê®e-èÚD° E‘Þ{ï0LŸLK&“žÜûû#adýè®ßÝÏ÷÷÷s'¹yÊyÎ9Ï©\ãË~†œË¬¬nÙ}Ìì,m„±ïmçŽ'òX÷V5ÃÞ|›±ªF6.|……ßî¢Wáñ ô°ã=^O›®çÆ)Á&êNTRohÕoÂN¯ý‚Óínç­kr[xÄñ•‡qÈm¸óé9drˆ¿>º’£G+雚‡X¹‰VlÁÜi,E§âШ+YñÄ^:¿²+ vÍC\ûþn{tÐäm¥Ãè9t½.—41¦Çæ@å6–|´¸é÷sG¯sôí>YX%&i7œ¢•ŽCÇ2¢›–½ÛšPû·°ç¸ƒz·HI71([ƒ(8Ù4ÿ¶‡@¥QÓiÌåÄX†jÐUYB4ž9Ìá½~òÆáÙ²•R!“îý °“o sxñ+|WnÄœÒ“Ž„(ßô Ÿl©G%i±åöaÜ„"œ‡áSé^dGŠT³}K5ñùí)HifÓg_³§Ú ¾#œ ôEVYHK•:v|»†š*=¯¼ÛH·ÁW04÷‚¨ŠHwyµ8š(ïÂGß»¤Ú÷ªø^ÜôÜú'@ĵ•ù×ÌöÀ …d: »™«ÿ4윽 Ñ®dËûß±ÐÜ›™W "õ"Ñnr¤ŽË×PUnàå÷]tï5Œôêe,ÙíDLôÁø>:4z™²­‹xç`†&;ƒgN§§VŠ­¤c|ñ÷å” j}!ã®CÖÏjæuìÝYJCÙNTÔ“W<›ŒãËXu¬Î—ÝÆÀL×ÞÏygM%¢ ¢kÇ„Ù#0Õbó&y-ލÈ,êÃÐaýHQ»9¼ú;Öí9ƒO”Òú1£„èøDN°äåe”* ÒäQ±t†ßp;½âÐÅÓ¡x.·¨–ðí‰0 Ô:âÐYmÑËvJÝë×PÛ Ò㎉¬~û)žÔ Lš9íç³éd¶dhÔR­M&9ÍCeE9Fa@Õ¶ýNîàŒ,“„DBÏ™ü)MËÍOD·ë›¾ßMU·xj‹„¢AŒ»t8j ¸‡Õî8zÆy¨)- Ã,4íûÓïøNJd…øì! 8k‡r7R—Þžaq€â ´º”ÃÚ"¦’Qµx±k¨4¦’’¬C“Ù‘¾9øÅ+|uØHÞ-·2$þ|K‹ 1Q0âFî2|Î;ëÃ(¸ihP!ø2¢X …tn.ÅëöCè‹^x‹œÌ^tH5 `é:û2Ôœz@Ž:äÃ>Êw-fµ§S¯™CpÛ|SªG¤ž­ ?a»}Ù=s1‹ šœÁ\u¸§ °pÉ]ãYþèã<®—ЈZ®˜ué™`M8Eäæì¨áØšG‘¿Œˆû 'Î’cV´íûÑïÄ.J9É©S}(¶F ¦6½éòö‡²iªî-Ý©Š'ÇF¤z?k“0¥ÆÊ¦u¢§c3ÁÃ;Ö•>Id ˆEè{ø'ö¿ÒØ~þœ…‹Óö·ÓËžCQ9¬¹ÿ1VÔæçdôG«Ã IDAT, Øû^BúŠÏÙñO^'ªóöù·28PÔ·å/üM½nàñKó88PHú;2ï¿—wåÎzýžñF u 6DÏÛ<ø†È¬q“é—›}žiõ7AÀC "¢öäûc©L¾µ)-ÞW3}ÿt5KÆìàÔlÛ/,Ó]O…AE¼QϯÉë´VÚ¹‘ÛÔ‹ùòP0F/ ¢­ˆ±×Íá´c'špŒG¡ o;Ž›ï9pWcô‰RBéÉÞL0DÏŠ5§+í¿=ÂΚxömÚEuÓ<±ª‰´þ—2~x’¥ÿ¶L¥0 YùòìOèO~äßþFÓf2…ßfÑ †ìlR„}|ü…@Ÿ!°ÿWÀ¢(!Å›1 ñXÔ*$•c\I)Vô¥»y{Mr¯èŠJ­BUh´ZÔ*‰ÉÉh#!Üåk˜¿>‹k5âo4.‘`s-ûW}€iÂ߬­bÛöõ ³ö{ö7¢ÏÊ$ÁYʪ¥»Èëä«—–<¼3ñ ’ À™œh.B¯R±ñ}ž·æñô¥Ùÿe bÛ¿YÁ~w¹F3ydoRõ?3ƒót'õéùªëÙ_Ý1êüV'§³ªrà$kZ&ÞÇ* –\¬úú ²ÍÀ+O¬%"¨<÷>%JOÙNVi‹¸Giร6­U<åUU4™zRÔ¢TQŸO¡]Ít«]ÅÇôf¾„ìÁô‹qdO³‡¦´B²“õÄS„êÔ:>\´z}O†]Ö‡” ä´®ÍXæÞ%°ÿ®z@@á4¥§ú2ÁÕ#¬y]i÷E ÚpfÃW|°ÖNÒˆn$‹ ¢­3Å×_Åɚݨ"‘(ÏÉÄ@|ìýôe–žˆ§Íw0Ø$ã?°ž7_ÞÊ5¢`FŽoÿ–?þe7¹Y=¹tÚHBûŽP}º”ï߬g}ÐKÑå·1¾( Í?ËÐŽøÙ¿ü9¦ÝÅ6/'6|ÉnÍ@®š“ÅÁ¯–sJ¥9£’À·ó ¾òb^w™%§»Ó/9€ŒuÇô>|ŒcŠŽêÓ=é«PaOiGöªƒ°ÎÓÃNllÂKò9A• ÆŽ“¸3Sâð=Ñ¥áÐqV}½O·%üå±fôm;k½ºSZ¹’t’ã8Ì™ä´$;¨4¤’’îætY!m.Ô·QèFOd9Ï>ÝD–*ŽnÓoeT†•ÄÜîè+·ñéÇ+©PugȤ¾¤YP[Υò“$„¬ôoQ»ª)K+bBÂ/>Ž>ÍÒWßE}SmóОÝgAB8ý=±# ²¨%¾Í`FgìàÓ×3p’ªUŸ°}OúkYÿݨ3’értG+ƒ˜ÓÒIj(á«E;ÉWÆçÏ~EÛé}±hUÀi–?þ$«F¯\7•gv²Ìi§{j"Û—žDÈË"Ë]Ãþ-»IÓX»`1u‰idg¥b­_Îóu¦ðþ¾4}ùKKÚ“]¢JZ Òxø;>ÓLaþ(Çö®ãÓ=…<3¡žõ_}Êji™} 8·{”*ê6<Ï›ëD’Ótèôí™0µ3¦H·ÖL¢]…>ÐDÕñ |¾CGÛÛØêëI—";R¸”u+÷Ð~šß°x§…ÌüŒZ5¢("9·ñÖÛÐfèøsäµê§rEHjÏÈ«çPZ¿ M(v–ÓûÓÿ'÷* ~Hlß|î&ÓÛ‘¯•‘•:¬ýœûŸÚDNÁÆJ¾IMVÿÁÜ>åÇøüé5Ô¶›Â£“;üDF©Ô*DQV«E%I¨õ’Rô]ìܽcR; Îr7kÉIHE,YÎKÙxêò"’¶”uOþ@}n2É(DðéÂæMÍÇ[µ•/_ù–“zMKði(˜ÁQIìúv+µR…ºÃ¼ýÂô)²c®ÞÀ³õ í}Ъ$Ø’QËügÖðÒšBæi¿ãÝWÑof9ÎŽ5ßã±å1Ö³˜Å_—¡d’!ígáWýÛ'¡ˆ*]ëŸþÚ¬$’Qñé'Ü}EÛX€­€ JHVÆp<• •¤Á`I 9ÅŠ¾l/ï¯;D›áu|ýÂ2l£;’Tµ†§‡ ]t¨JVðô‚ž<7l7~¬â†Z³ ZÀ­hE+ZÑŠV´¢­hE+þƒ(¥ìD6y—e’‰¬ÙÁGOn$÷/båD½ø!!zY”$…HÌ `ÄÒèÁNÀ ìÆ¡Ê$7?È–ùoãìv-·ÿ¿5F„9ýÍ7õ¤0¾k{üê"²s&ÄïpâV~üFÀ@TÈüu8e“æ*ãøŽÍ|£ärí”<";7ÌÍ!#+ ‡°‹°röfâN\ç9ŽŽ±ä‘•ÄO»v@¸ª’êÚä¹UË8ƒY°˜];&µËŠáŒö\ Â^šN¢ÌÕ‰Ä ›ÃÊ>¼þ³ë'"Š€pvý Ĺ½üê.\óè<Œm-çeoH̤l:ɲù/ò^x›QRRN•x’ÌŽSpÓÍ öh–ÌÙ+¸×OXVb3ÐcV¶P£éOÛœjÖ½õ%•ƒær ç:­D„sÆgòø zÃÈj™ˆ,·¬aB—,¡"Dø¬uÍ`$®¦‘&1I<û\ƒ.‚ÛG@j䨻MXšñ„@T‡‰DbÖÆ_߀ó_0¶Ÿ?g(û m/xr3ÙO¡Uâ‹Hrhëv;Éš0PÓyÊ¥Dö•Ò¬)cç‚OY‘<1÷äóÑ3°I‚*ŒÃ§æÊóÒ“5$ft¤÷À½üýÖû0ƃ댌þãbŽ6¨eÉ;ÕäŒ+&/!Nï FÕ†¼/›^}æ×sKŒÆÃèIÎÉ%­&@ÍÑ“ÔöH‹e}þ‹ˆæëgב<ã^ Ï> ûð‡"çX ’éwýô'jð«O³yþ‡¬M¾™!ù&þ-œ"#«,¤dç’‘h@”#DP;·sÚRDÞOÆDþ%&¤–}þ­``àmÓ ìjÀï^É~_†vä\‘׆ˊí<¶ÂÎ=/æ!IízQ|ƒ‹ýån¶|øŸš:sõ”bºÚµ¿-{DWM¶L’-ª öÂHb£ §`û'GBB8ÃÖO¿ãľô+ }0 {:¿z”¾@¥¥wìÙ¦ >‚áÈ9Ü4öÜ å© ¡’ÂD¸„¤Ñcª;MµG¯©€Â¢\R²oÅViS™<8íWgÿÿ¦„ˆ‡ÊSÕ ÷åŽ?]MVø o?û-û—}ÏÑS>2/™Æ¬‰ÐÉë9Vrú¿8^–¼Nô]ƒÖÓ[¯è¸ÙûÕ¶.Cvd÷Ñ”ŽéNaHý¶‰9·L‹:#9°ð3ŽÁ]sš“aÚÐßÊ€«"9· ,çË !·¯# Rè:$“Ò÷_eùN')=s±úŽóÝŠ:zôìæ:Žº…‰…j¨^ºl†Î¾‘N@õª'¹ã5T\:‡Œÿkt+#y†3QÈ AåàК•¬RY¹¬¸Í/è-ÕIfÜNGÝnö gÏ]— /ôŒÈ(geÞñt²úf­Ó"Öm`ÁCß“÷òÒüJv¯$ù²ù؃«A Çd±CH&,Ûÿ¶€Æ¢1tI‹C ”¯øËÔùœËm”à–>·äY¿£à¬V§K$£0À™ÊÏÔ‘•iÁrQþpª}ADÔê19jhÄJÛ3¸¥³.Ö»5ö]¿Ÿ`8r!£Äœ’G>šŽ ÌÝ¢ÌQÜó`XГ†äÂ~L™§§RtRvp?, `.×cÐçѾkã6V¿²”Ô‡.§Oªñ"A52¡š],Y¤cô]ÊÖðÅë/±R5‚Òš8~¼W| ¶üÙŒj—ˆH _¼á ðÊ™äª|h¤0a9¶n†8¬µ ¸ I ÅÖB…J¥FWçÀ«2 ž§‡ñø±5ºPç ¶¬¥,WP]V@ÁUYd57PszŸ¿Ù[® #ã@“Ö‰ÐÅldP'P²à ÞX¡0÷0["å>àáW‡‘Hø<½Î\݈ëŸêð!Ž/ú’“rS:æÒ¨9~ŽÓ·€¶LþÃŽùø}'XýÌÇä=%’j+é™4—5Pqªšœü¢~]»^ú„ºüÁŒÏL8‡ÏV³ôîÑN¹‡®¿”ù*€º-Ó ƒpÁ?uIdäc•QÉnBt$å÷eêõ8ùáK,¨ÈbÚ]Cˆ¼´ïé¬ýá{65¤¦`òfåw†íˆ:.™nãof¤äÚ%ÁΣ»)때hJ§ï”›¶°ô†ÓtúëéqJâû§÷ã­Ã A‰´šT~•–ÔŠV´¢­hE+ZÑŠV´¢ÿ1DˆÐžK§]A€»=s?bO`#´ç_Êd"aX¹.œÔ¥$’ÜÊ» Uô¾eCÓ4Œ,²ñÚ¯±©ÿÃôOøç¶%«òͦ½¯E{] Ûý¢+ëi &ÛÆàâüR"âl™6a2)D8úõ‡|wlä:ÝLªÑB’NE0 ¡:ûÎp=ÕÙ6’['øø–·i1›Yƒ£ù›®&Þ-rϺECýêCVcèµ—P¶”™šœÉ!²;†ðýñitíùsæs9ȪØú5Ñ`ÀfPÉôýó}oU¦4]÷0n ˜ÕjT¾lr2sÈoq<],Q®mÌ_hcÂ3WÐC¢_~2-y•½=þüñ)òYƒE6³) ¡ÅؾÔS•cc„!Œ&v‰UPšœÔçØI ‡ GÔ±ç~<*“ÍË]„ΡGŠ•v:9¨Fu6Õ´¹žêÌT’ÿÐvœ7¾ÍªÝ)?Ø•9žNVd  rtõ7”çŒ'£c?ÆvìIÚy?ÇjF\vSã¶QîSÐùwðÒdru矵ñírÝ,tOV9Ù)— è’9Kþžo²ÍØ‘éEí1‡öó×Ït ¼g—ØD†u°ó·_eKÿ‡èkPéìt?›veøäÕ÷ÙQ=ˆŒ´u Žðám(žÃ•ý­?ó9=™=‡Ù3jü×}w7%.?ÅôOúœýBÈa‚¦¶_>î¶sJà ¶Ú TçÒ¬¤ET¤’ ¥%ˆã·F´š)w$—åÍ'ˆ·-cÑsßrlÄÍ´’ ûb\m%'Æ‹$£¢KfP„Šc+øÇKÇ8°õm'´Gÿ[ KP’I*ÝBYíp:gð£<â¤"-™dY&"©4&‰’$!ÈÂ’ {›^ ¤ðõÛåä^’A¡UÇ´Ÿª&ÑÄÂXÂD|Í8³’±µØó†q儱Ä ëÍ×ÙYrÇà´ÿº“Oˆ„ ‡uhóÚDÇ¢2a—u”íßÇNk&C2¢}M½Âòÿ)ºü¥l.L($õl}÷}¾¯Ð“Ó£i˜9±T""‡!""F„ehÚÊ«^ˆ»ï(ú&úqV ŸtÓ$ü†=-M dµKúÆoØ™ž„â)`P†À2s ù}:Ò½› BéÒ?‹^©§YiíNû”H´¬¦¢€=›hUÞ[6öºh`Ðÿ-`5ñY]‘ÕÙU÷ Û*pEÚ`þÙ¨šst’©xöl'>+g}4k@N²\¤³„ ò1g6½€nÔ]þ»Ü#H”–è=9ÿÉ0rDã±^št˜Ì1ÞåeÛk¯±QîÌäÉݰkE ÄÁaúßt®û÷Þù)¡ñ³¹¢¯µe æ´Ž ™Ø‘ì%Oñå-duÎÇò³õæÃ„ä³ó‹ñ6Ó˜•Œ°t¡_AT7Q†6µä žB¾¹uߟœFç®…\2®0ö] CB[.™mÜpÊô!kKRæÊ¢Ó ŒŸÜ Cö=ÅñŠatN5þ¤—¶¢ÀÑïÿFi¯GyÀ¥Å×?D'¯ˆª‚°ŽFkY6"мu>[ã{qm»Tì#T£Ž SÁU#+…d%tÎÞ†ýxÒˆ )Ô§‡é0›AåED­îÁ”˦Ôî[ÎÂ÷Þçóï»aWß2†ø¦N|ôú—ìß²‡ÞîàÙ•8ƒšæœ(õÑ««…“ï5ý˜ÉÜä¤!× ½@f „9±âc–íÑ0𚡨+Xë—~¢oØé>érº²go¯yƒcÞ+)0 ’Û0ð²6äý0ŸE{WaïÕÞV;ß~ƒõž¶\:½i†³‡¦š%ó^ ´Ç\;.ã—¨)Itštq ¹7S§O‰Uq‰ê®e[·£IJÁ‚%ÎNf 4#Z—{Emì´É³B¸+]åPd< I½io“£·‡ãÇ97€ ûðÖHzbh¯\g:÷I¡KÛ>µ0erÆ{t9k¶¥’4|™†èùò•®âµ§¿C8’þ–ìÇKip{hN~¼“Iª¨nánÂÜ…‚4uT“Ê?YÏp(D„0@#êHiÓ›áêft‰¤™NÊü³{ÕQ>ºù|cg3c@”ߘìzE4³÷(óù¡æ$u¡®´\ÑprxãlÒп_!ÉÒ¹L3ÀPŽ°Ý…ÙãÅc±‘ÓºÓÉh>†7‰"»špô£¸ogôa€ŒœšG2Þ¦Rv-_ÉQƒ¶…·Ùº,‰)$™T ‰XSóH7„A­Å¦Ñ¡nÜÌëNcïáôI ã­ÕâÚׄKmÆœš-/‰ ÑI¬«¡D±b˶Gù•'@X–)zgw6ánÓ‡‘};aŒ@?†NÌ;ÿ~   …C(8ÙµàVœÉêÑŸtÑÂéåjäPˆpR&v]:ìéù¤IR±«h­üü/Al]‚V´¢­hE+ZÑŠV´¢ÿ9t£Kϯøxs,÷ÃWCi óYK“dÂhСÑêróðH¥4œÙÍV³kŠHd÷.ŽUFoÉSpovÑü3F?ö-ý€/6 \2ïF€\:tÝGIƒ?jÔÙ¿†õ™)d bK†ªÖ¬GRé1#oIÁšñ5ËK£FÄæÆfš|FÌTs ÖFœ5x²i×u'êBQƒÖžÕ¬ÏI'œyáŽH3îfî䎱’ÕÍÔ×9(úÒÁà`Ûgï°ìx#çÍ¡o¶ poý†­õgT·`¼XëTш٨C­Õ#a&3+€b>J@Õavh"è, è"x÷Oϳô¨‹Ð¹_7ëPI:Ì€¨I ÝÀ±Œ;–1—Ž¡"Úv¡‡½™ ï½Á{‹wQ«´ÜÆÍÔ*Æ85X¼4mÙÁ±Ú¨%·M2Î-MøõP·s)¯=ûu$šª ÅÀà8ÆnɃ`ìK¯.»8QŒ®áÞ5¬ÏN%‹®tî¾”]*œÖ±+¿ 6’ Öq<ë8îAU+×c°ˆ„°Òyè(Š‹G“xz;úa}ÉE!Xö=/Ü·„’ØU^ŸØŽ¡Æ3²SZ© [»‚X¦xß,h&s@ ÓÔ öѼsǪ¢Ã²w²Ó´© ·ª×.bOl*J¨g¥£ñ_;Ùrí:ž»ãs sæqÝ¥mÏë‰ÊˆA¯E§7GŠ•«Y}ØA¥.·bMR!üÛÞ Pk.èÿ¦íÇ”!Gyèú¯¨=k’ ‡9±b ¥z¿æª‡ö'?ÑJÜ®Mi™N„êÒƒ”[ã±J2:fìØ[øëïºpì³E,<âäW;%&ƒµÖu|ÆrÓÐÑjtLqHçÎÀ¤C’ô˜EQêD‡îKÙUå5Ƕp0»]ãõDL+Y_ ࣱ.€/¬ùïfÿƦ h4ètÍx·~ÍŸƒãêfÄ}èS_Fýg4CÎdD- ÿ;Ê PÃÞRÌ~™9a$C;Y¨Â„€Áƒµ¸U"±®²×^5†1Åéß@"¿mõm=öŒO'é@" ‰vlyë9µu•Ñd·ýè6ШuÍF  Ýû­dÑ*GôÁJNWš0› Xw€]þaôHƒ9„ìÍœ–O‡=Õxí)˜¨`Ù˯³]êÎÔyé˜+kØÊšÆáôÊ–…ˆc ÏݱÓ5ó¸v\L¶8Ë9ºc¥±a¹ëB^íE6ͤG%é0I)êþ »ѽ®=º™ƒùyØñrlÕ'¼úò·”DD„³ßÕÐjtc<ǵq [ZJ†4RuÜ‚ÉrÅw<÷»ùìô‰:ª÷¯`+Êkê+›hu¡[¯*Wî¤$Ý£ò*I§CïÛΫó°7n!-¡a#”Τ»;"jc Eƒ‹;v £&Œ {Q:v ]‚(gÉû> †÷ Ï.]èÒû{ö–DõßîUl,̧­Ø†ü.+ØçQQº‡SÝèn ž§‡PYâ.pŸÕytH’ Ñ¶%¿Ó|~8&·šêqxth"g(ß]J=@œcLC}„„¶]0¼˜qcG3²¸ÉÉÑ<½z|ËŽ2 çþµì(È' Û¾áõçVS-$Ì®ÅïñõÃæ]Ë€<=P@Q·‹èÛ‚ðyYläµ¥s¦‘¤ñPºe'b3ò:ÃøÝfâµ ¬}ãl t`â¼)t±ÅzÏ÷ðúï^Ç5ân˜Ó§¥%‚òËÄÛFr¡lŠ£pðPFÄ”©8öÔ®¾fg‘§ÙãéÅÜ+G2²x íLN‚îº@T6Ô”pª®Š&»äSû8U«×rx;G"áóYrÐÿhctÕ&2:gâe—1f`rÎ6&ÖÐitèѳìÞòõÅïU ëyþŽ…hgÏãú í£Õ”î_ÍÖf75•¼b&5€‹Ï=À ·.$Üi—ŽÇ哺“"ïrSB~|Çñ#áwVSiÌÍ—`Øð^ØõnœŠ€€ˆV«„sl';ÛgP ×£V”;ɧ·é2.º‡Å#<03 ‹/`ÀÔ)Lš8‘Ë&N䲉“˜?Ìž…ñ‘¿0ç¥z«S¹â1k¢ÓНïçæù›©©™yã×\qÿË\:k/þ~4—6[Ho?‚™w_J♯9£7Ð9;ÐïÞ«Ù}ËŸ™ñœgu:08J IDAT³?è‡Q¨úá=>ÞºsÕ½@´¤1äÊ[éÖxºß-uX~–}ÄâCjÖlûÉç"yÂÃ<Ѷ‚—çÍ䩿0’\G›)¯ñ»üóM-²¿ îçÞ÷áó«(wMçú›'ÑñôßøË¨ Tùãé}Ç­tnk_»¾ßDnñLF´‰«ËäæW×S^#0ëê/˜úç·˜–{y$€ÏëÁã .ÎìÙÅž¤4†\þ=ïòÇ—>cã/»Ç¿Ç¸‡>âwO à¾k/g‘E@Ecž~„Þ¸9QqŒíÍŒ¼wù— ¢Ý©×xnä*ƒVzÜ8—ÎùVRïœÍÎÛaæ 8kÒ˜õ^ ˜ùðŸ9…)V !Ô™ÛôBctÓgd/ŒœÀ Z39'sËð rOêop_ñÔ¸’úø½¤YL>xÛgÏfšèÇëÈå¶…ýþsûs~—qþ’ëú3'8Ÿ¶Çæ6“:y5ŬÆV0Œ+ïšHºak¿˜Ïc*…*â<ÈïÛfc<ó7=²ˆÚÆ,o屫Ú#¡pbÓÚz†2 Zúw¿¹…¸Œv Ÿz+Ó{[™£ _`µÉ좱 ƒžÌ{j$xpSÕ!ä@"CŸ|”AêMõ™[¼€,cµÕÎÈkþvNÉ¿_…²UoóéÖÃXªó©ìCLÊaÌ­Ï2'û$K^”gŸAÞd_ÕÜ;ÎÊá·à¥# ©À6òEfÙ,¨ÿ]ö"©Jqÿ¬ÏÐêÕÑ*¡<®}õYÆÞù7½ø Ó'¿O’¤PYÉ5——fÙÐîy•{ÆN$bð ™\2ójFt‹fŸ]¸ÏÅ,âö~ú/šÞœMüÖ{™ù± Š7žÁ<-Q­€ âñ†¢ö+É€.PÁÚ'áu"‚G$kØ nÒáßÎþpsð«wùÇë+8Ð3ñ&ºæ¦“×þ~þ(ü‡®žŠ?DêiSüWžº¼Zc7Ý»GÇNÂc‰`ÄÞk*÷ßÚ–’¯Náñx†>“¹ÑñþùÊoþ×ÍÃü <—²§š<ÀŸ%Pqºþ*æÞz-]¿ç…—_åãµµèW¼É°;_ãÎËÚ Úô<·ÿý[ž3gʇLx𠮸ÿr™6‘‰V-cæ¾Õ£¶‰aCðÖmcxÃGnß)̹t¶ÿ²DT"~š=ñätŘ~Ïóøˆ‰1RP<ƒÛF¡Àîæ¾WãÒ÷˜Å&ʤb.ÿ›.`™p €ßçG¦ƒ»/åÕwf³ðïfò:Úq5´GŒÁ:ž)}йoÊtŸõ—·¹k.ÿ“FÄÞ¦-ÉÁÁpŸ?ü›ÙiuI –T¶˜>?š[7zæ8Êž_À5Å/#êBxS'óìzš}Q§‰J˜æ]ó¹rꇨ‘PçáÉ~Êv­ã‡/eÆ>2˜š…Ë8ìÉ¢øê<¶?ý-¾þý<(ãÿÕJ/Qµåsž¿ë)$}æŽs¸©oO~®eé…:‰`IcØÜ?2jTq)ÓÄ‘7ärn@èèW<óê[|µ¥‘å›ÞbÔ}ŸpóýpòÑ[˜öº•-OÝzKõ!>‘½Hö¶L˜>›´ýïó‡??Oª® K› \uíò/¨$Ó¼ùïÜõ÷oØ*ÄÕ“>äÒ‡3ãWðèôIL´jÐëzró»]u§ö±}«~7AáS+ùû«óùt}Ÿ÷Ãïû€ßÅUòìÍÓQB2‚Ò@û™oò»\ÿ‘“l\¿‚ÐÍô0‹¸J6ó·Ûçó¢Õƒ.ý®¼í†·ï ÿx‘gg|LËD—iw3¹0Ñ¿-÷Q¹<Ê” ?þ •ã_gÜÅÒpC~|u8ºà¯¬Õw`n‡ÂXà•ȰGodû¬+˜¦ á¯Ë玅ýÔ*ß4œ§&\Ƈ= C¹ñ¥¶$JzÚ֣SâO¤Eã꧸õåï9Y.sÕ•Ÿ2éÏ3ñw×óâÃc¸ÌG‚­SîÇØ”#,Ù÷î5Y¥!ÈU\7´kL‰!à¥ÙíÁ02üákxræ¦X$täÎOznšÊ±c“•Qó†BÕ1Ö-ÿOö¬Ùõ9*Ÿ‹ÄÑ÷ó§ëg£yàAf<ר¢oDP4.¾¸z Ÿ$(ˆ‚B¯[Ð[r±eÏBî~øÒõ^L¹ƒ¹â†Ûɯ^Ìkß~ʆ+«W¿àw“~åóÜÿ)ï¯ÿõÉC,}'‚"ªèrã|ÿK„+Dê9¸n RÛ‘ ïÉqPJßîW˜9õ#´((ŠD\|£¯È!äEyl(@Àd‚~~6ÓoÇKþ…i5#¨Bø²fòêaš=Á³!R¨m#¸÷ʵÌ.žB¦QÆ1yÉ-tØžúm/qïÈIHq2¾øAÜu]9L8܈×ã'(µåê;sûÜ©|§ Ò˜ðÐûÌ(4“Òi"¾"gX¬6‚ÒLÙ¾]ìR[¸dJ0dö¥¦B;["EMgøü¡åÌüýh.1Ï`êäÏHŒÓ`°·%%=^ƒ¬zî)FM€6m©©kÏàHGæÎ=ÉM»‰÷›ƒ´íž…ÖBV"x<2ÚÌá HžÎìk¶1åÖg¸±§þ¼Íˆ”®ãõ×^ä½Ut_¾Éúyop¯½–—ïžÁSžÈy÷ªò%ïðÉÖƒÄUfás>Ä„Н»“Þ•«yòΑLnŒyÅ̾u$©ØýÁ7Ô àêâ.tm›†ñ¢âYB—1”¾ñ3˜yýVFŽž@×COz•´T#A±#r èXÇË÷¼Ï›I:šU™ñû©$oÆëvz3ï‰þÜ{Õå,´€"jIè}/Ü3£)ƒ.Ã.R¯"´“H³`X%„Ï |’ƒx<B)“˜Öa*7M]NIïPHR @(Æç‹é Dù=¸„®Ü4UË3ý°JM”«Æ3VHÄë àzqÏ“ƒ¸ïº©,2+ ¨1÷˜Ëß?äœ61ÚöéÊ€n+yõÃkÿ ylÔÕuA âñ +€Äs–¾#A<Y¯"¯7‚Š G—-g×É$ŠoëÈÁ—¿¥.¿cÆšY~ï2L×c@[;Zþ߯ÿoú%—dg+ÉvÕ- dÀlÆúðTô-ëÒŠV´¢­hE+ZÑŠVü?¯×Ëâ¯W2súDΜ)çäé† H &iÑۨߚ^o‹-¦¥c|ëøÈÎÉæ·Í9RpWž Ê¢ÊLZnJ4s1¢©¾‚*WIQ°§%AC55u.˜Hɶ§U!ࣦ¤w(‚ŒÔ‚Œóœ ¡p‡ÃAzZzÌÞâÃYï ÞŠF+2ª8;)f•8<>ÂXÉ,´aˆÍ5è,£¤6ˆ$"H$¦ç/ù¨-+¥! ÂŸDšÍBㆿññ©ú½†ÉÑ˲«¼œ:ŸŸ0ñdÚÐAWe ~”p4ŠYPëÑDÙ»ì†ÀœöÑ,Ìúº:œžpË8ÕÖ4²,2•UuøC2Š¢ŸÝ†ä o³r˜æú *œ!$AA¥3cKOAÕä ª¦?&lv¬5‚âÅQæDm³cÕIÑ|-W9%Ž’2ñéy$¶üF¯»oDG’U¢ÉÑ@@eš`D ÈžZJMD#aÌ©mH1y¨8Q…W¡eŸe‚ .‘„4 dM ÔT×áÃDRº£MåÔzý±}±Ç²[Ô?C#"*MYÙVT(DMT—TÑ,è±$Ú°%ê‘ñÖÕàhh"€™Ô;f„@ˆÆÓ¥Ô‡#(BÙIçebƒAêêêHKûù:È?s!)&á"´­ñ7PVZGFK6» !š5Ôº<„ˆ³ç`·h œ®l$Ž`°ç“ëètR]%“˜€V ãk¬æŒÃƒÚhÁ–’‚Y=[¾†*œŠ«m‹1ÎGõéJšÃ2 zR 30£ {j9QMgRi$g¤c>dzÙÐЀJ¥"..î<ÕAg9¥ ˆÈÑB€*-–”,’5~ÕÔ5ˈ„ÑXì¤$ñ8ª¨oöQ,éùØ¿¼¨»ÙM  )ñ‚òŠŠúJÞ` ?SÐ’œ“I¼Z ÒTÎÉ/Š¤Æ”AFœHÀ]Gee#!U¶”dâõªºÏvÓÅ˃HMMýy ·¶”*WYQP0šŸ[{9àÂá”°Ù͈@$মªgHEE\’äã/Žè—e™ÊÊJ22.4Fð6Öâp¸âSRIŠÓEÛþ:Jªœ„ ñYç𜈓ғ5øD5†øT2TxšÜø ]t}B.**œHñv’-º‹f|ž)=CvVö9ƒ ᮫ ²EÄc³'c»¨rÔã *(rCR)ñz„æjN;<ÑUÈÄ¥b3øp/¥Z]™™$@¸qTVâ ª±$ÿº5¼<^¯—ä䵈¼LØßD]“»Í@ÈSOeE=tX“m$ÇGù˜Ûåĉ;ú&ÅK³yçÞ äÆÿûæÌªª*Ñh~MtO“§eŸ_=ÕŽzÜ]œ•¬#чN :K(­ ¢³å‘.¡´AAEt–´²„ɬÐìU“˜høÕ eeedefGÏþ&7M^‰ÄsŒÞB¸kkp8½È(Èê2Sµ45ÊÄÛâЊ"Dš¨·ûG}»Ñƒ¬1b5Bceõ? ²&‰œ45 u ‰©–shßOuµ)ØÀÞµóº÷ ÎíˆßUCU“¨‡Ýf$ì—Ñ›L´1:¬‰bEƒ‡ÊS•xdDkF>Iª&N|ÿnÈâ•Ç.‹9ôC¸ëñ z¬ð›‹ÃGmyk†…€ã8NÔjtF+žx 8kªp¸‚hÍ&Ô‚kBFµ‡òòZ¼þzkRXC²M Ö¶´8T(x'¨t«±¤da»àÜ(ÿ{g`Uµ6àgïÓ1s¦˜b‚¡[JZ”0@%•õš€€‚ ¤AD‘¤»»a€a†é>]{?Î ^ƒ‹úÝýü‚Ù{Å»ßõÆZïr“•“‹Õ%ƒìÑH¬ÑË•Œì_øUžÂ4.¸ÁWÆ–ŒÅ"’žž0„DU. aÏ)D¶cÖªÿÚ%aÏ>O†MGpD$Çe2Š4F=Z]0ƒ É]L^?’6œ„ø ØÈÌòæE°]õ«DT¦H*ÄÝzý”]ä»P›Ìé=dgyŠÆ€Œl‰ð R~2©y‚   C'© ²È«‰(gBÄ‹­ÈŽ#a k!Ånàósèº*‚±/·¥œZ‡%‚N´“žM‘$Å—i_‰/éÓj@v•M±ôÁÁ¨1&PP iA'ÛÈÈ’ˆˆµ ö‘™+ù"SlÕP.B«¨‡KEH”GV!>½ ‹EEQj!ªr!˜õš›®Ó11±ä£QkÐh4¿È’ Bà:A@ÿª“¸ÇTPð‹äjbJÊß:Ǫ$€þó÷Lÿ÷¹1üß#—ŸÍ'9¬ž»çwž&ó’qt s>½ÌÃóPK׿¿5ü¿ÀïIßIn™þ‹ùí à;Ë­À=M²ìöðçÀÿ™¬­ãùtÚRŽd«ñ[kÒgú[®ÿ ^ @‹Ébüó¥Ò¯ï„b—(2{Ñ™›ñÚª&ð~íê¼¼úC4ÁJòWáïþ1Y¨òÐë,iù ’(‚ ûA«7`Pý5MUZîyõGVôÕ†2åwÿÚ°zm²â°üÏRîî§xwjw<þ€=b 6¢U†å’VPPPPPPPPPP¸%‚(r9åÛþ;ÑöÒ€ªüG* 0¶œ§T+ú_” ùùËvÙívEv”výÿn¿p}ª³¸Hæv®éÊØÿµ+5-õNXŽ}DVK~·ðöʹ‚ÂÐÏ%]ðÇüÛì“($ÿ6úgç£XUä ¸XþÇÊ‚ üom1RÀ ·D–d¥´ÂÿJ èkäçç£R©°X,«vYmV\.7å"”п¿ßOFF†Rú6s'J@ÿ7ÉÈÈ ,, îŸw¤K)ýû¹3% þÞü¯mò•)WPPPPPPPPPPPPPP¸ßrËÊÜüÓçPA‘ …ÿÊ `…Û‚„ÇíG¥Q£úÝ÷ÈJø}~ü¨Ðª•}º ÿÿ‘‘$^¯€V§þÕÙðzܸ½~Tj:æœ.‘‘ü>|~Võ×ö]öâò€öõCá?ͱ×'¢Õý‘9öárËʼ(üåÛ‹ËåE TZZJ‘Ùÿÿ_õ‚„×ëGU¨Uâß´¿~JÓ8=.—¿¬Ça·›Õ-¦`3­ À¼Ø}>¤ëæÅ‡=¯'¢h$$Ô€ˆŒäwcË·âÔèfÌF »»3 ;A¡ftedÇ!I  3ý Çø†>ßT¶$¯“¢">´zf³‡»3 “²¤Â`±`Ö‚³°‡ÿ×e[ò»~Ùg¿ «ÍŽË+_;!« "Ü,`+°â–e@KPX0:áúïÃi+Ä#lÔü¡dŒìwQ\X*ßjôÁ!˜ÔeæÙãÅ/‹×]²k± —×Ú‚Åt;‚[^Evœ>ßµû#e5¦Ð *Àg#§ÐA…ÖdÆ,úpzÕ¯öÛ‡ÓáEÐhÑkT·žçÛÐVk·$¦ÉF°è Ï¥%,H‹€Œäua³û1„˜ÜVŠ­%úKgÄd2¢½M±3ŸÛ†ÍîÄ+è 6¡W‰à³SPìÂ/Ë ƒ&( ‹NDö»°:Ìeu¢ÇÛ'¢Qy±[]øe}P¦?´”üÜnýuò(ávz4š‡~V/ú R½åÅ–[„SP«MX,ú«mõ8¬Ù=¨tFÌ&Ú¿²®ì"ëà|>œͨ±ú§¬ßÙ‡™7i SN¦v××yýåǨ|cßÜX­Æ`7b!§6.aÎÞʼûvkŒe2óü0™Ïæô&†*%k©Í‰’ïÏ„Iÿ+ßß-lÉïÄ–oÃ-hÐM%ëéµoÐe÷ ÒkÑ”&)üNòŠìÈ2hÌ=ø¹• Ûç1eK5>|÷^äœ<\‚½É„Ù AÀ‡ÃjÃéö!j“…õwÉçðÜÇ&ÆÍè‚>¯ ˆj A!Õ2~[±€FOÙ„^%Ü|¶zÑéKd±¬~0b±~EGI¸­J <« §$!‚ÞBø/l1ÉçÂVdÇȲ€Ö`Âlң‹­È†ÓãCm ÆbÔqã~A¿«|»ïÚ˜‹j´F3fµ[áµgê fL&]IŸnœ?ŽüB² ‚‘0#j@–=ØòŠq "­‰à â-í°ßf#J+yEnDµƒ9£¦¬½}s9ô; )òê°P]µë@M%vÝMlx‡›£d 4˜ 2ê¯Úð[±Œ½]ÆþEA¡Ahð¹X­oD¥Õc6›ÑŠ» »ËsÕ3†X0jD„[É6€\̹Ÿ&1ðƒ•ØÊ—CcÒà<[ÀÝ=‡ñúÀö$Þjm‘ÝX l%öXÉ‹:Ì¡7³‘~AÞô{ÍÆðéæ²üNlÓU»äV~ 44ê€/pS¿Êï¢è¶¬ŒßëÂVlÇ[¢_uS™ïï·Ø4NìN“ùmtåëñ{iúÝ—tÍî/XÅ+¯å1tê“T5hþË›¥ºËîVa6iù®”Œõ«\¡ÉK“y«Wc¢õ¿ÙªÃëñ!;SØðã&Nù1àéŠÌß!”°‚‚‚‚‚‚‚‚‚‚ÂÅk%uÅhºO݉ÅD‹Á³Þ&$?.Û9¶lÜËù”Ê<3¨9F.²qÊD¾Y~T_%º|“[WÃìÝΗώg­½ ýx‹ÎåÌ·vü½©lŸ=ÏfÆkr¢¯Ý›aƒúѪÒQæòätòìµyqÑz'†¡¼ÖLR²¶3ãS‰¡_w')û «gçãe'ˆiОç½ÁÃUn•õÐ!¨SŸ Q—˜ß<ËR³(´Õ¥ß²éŒpq./?9Ÿl3¨ôê÷žÂÈû =™zTªo`ׄ3fÑq|:†/2âÕ§iwŒ™/ª¬|¼‚›¢†¯±þãΕõèd ·õ"{öîfï®^ÞWØõíd¦ÍÜÉE©ÞB¿Nõ¿ÉùlÙ¤åmc껆ÎîEd™Ë9ú?ÿ†â&Ÿ0îùzÜî”\VŠœ»÷z=G÷¢f¨×ɹ ye>)j­X™ž_LæÉ¤g(“½ >gÊÔ-\ ‘† f@÷»)ÇAæ¾:Žå—2(°×æ¥%òD|¾â•|ÚñsvÕè5­¶r­D;vOgÔkK9©Š¤ÞÃOóÚÛR‰ ¬?žÙkrÅS…ãßæùæ•0I[˜úäxÖ{¸Šñêúé¤ùÝb|cŸk„o”íWg3¼µÄéU“xgÔò5îîÂKÃ_¤yHÛ&~Ääå{) 1!Ù¢èþÙhú6ºÀ×ÏŒeí¯Êv!ç¶Íd̰ï9­‰¡^û¾ zû*]ÚÈÄñ_ñóI:­_A>öæCùþi/ã‡Ïã¸Ë䈡˴iô«}-åRpn+_OxýqŸ2ûÍæüþAe¼ggñüÓ‹È·ˆ¨Lš>9‰]˃ߋÓqŠÄe¨O'îB‡„ûà†NZÌÉäL*?5‰ñ}¢û“M×^Ƽð[2­ˆ:5~oU^žó9]CsH^1ž>Ó÷¢p루Õéú%]fþ¾*¼=ì îãÌš¸›Ð¦òXë$T.+…7ÎóíPƒçäƒ×gqÔîB’¬ÄôúŽYµWÐuº‘93^$ÁoåÜšñŒœÄ€/zã\0†ÏæìÇ®s¢©Ó‹7õãÞŠšÛÐ?—6ÃäÏç²Ûu/CÆ ¥û]á$¯üŒÏÞC‘]Bð[‰|x ×K¡O IDAT^jJHÆB|¤güÌ=â/àĦå,Ýg¢EåcŒ¿o¨Éj aϼüìýT6ýžËËvžm[örêlžrF@ö8±»òõè3Ôîü ÷6,…䨶3vHýf?IQÄšµ„¿b¿ÙHxd{þ=M)ís§OaÚº3ÄÝûC¼Hó¸¿öŠ ªÑéþIw²r`ÃÒ½]Y¶ç1nySzáj *føÌ¾$ݬ{‚€ Ò Õü N> ôzé~š¬˜+¦0rÌ\ B°†Ðnð[¼ôXÊÝb€åm’>SÙ=œ Û¿`ä¿—qJŒ¢A§gyí‡Id·›kS>H¦ÕKiR%•ì"wÝ$zLÞ„Êç§î+ß1æÑ¨€fq8ÈL>CìC]Éß<–÷‡ýÀi!†Æ=ŸçÕÁè:Äì÷>gù+øE+A­†3áÕ‡H 6)Û·Öu4åNMçñ§—PhP™Âiùô$†w2qnãW|òÞ\ ’±E¶dà ônr} _r’kßÎØ×ryiÖS$©Dì9Kùà‘iì3 {/H³›Ç‰Íu€é#ÏR¿Gî¹+5ùêÙOYk³âÇ‹­ÉP6|ø†ëÆØÅ•Ãsy¯ÿtΆ£v˜hôØË ~åAÊŸXÉû“æ²ëD{Œdô¿Zmº^ò2V½KŸ©'ѪDdÉ‹Í/R½ß$ÆVÜÁký¾æ|h0j»™¦½_aÀ‹mˆó:(vîaÊ{i3¨3w'…!ú61©×6É.¼ö¦¼öóûÃðW_ iâ¾8–i×ìí^±flGf3hÐ"Ò´* †šôž2žžñEœûiC?Ù‚ËìC›x/Ïö{›ÇÙXÿñp¾Øp{ˆ¿-–'&Žã™úÁX×M¢ûMd;п1æOLá½A¸´z6[²Ýxå_ùTsVÐÿÑ ¤Y›eD‚"îáµoÓÒÈÿsÜd{Ž â¯z*-:ƒuî:FŒ…7ÆvÂ|nƒ&3aZ‚oö-{]8\‡˜5þ•Úµ£mó4eæËŸþ¯2&Ëó}’, 2ÑøÉÏù°[—vÌ`İ︄ÚL³§ñÊó÷QTŒÏh¨ùµù°Ÿ]ÈàI!Lø¢óÍ7{ "m`M¼N#jôú;túWv‘}x>#æÇ0vlû6fe²zÖ.Bêý›õS›þþ kR!gvn`ËI‘Ä8#ºbå.ú;‰’VPPPPPPPPPP¸£x¶ŽâÉ者xÃÄ•úœ€lÏ`çÌy÷G¸ï©zK+¾çBd3>Û1‘ ç§ÓãÛÝ´¯gäìŸ ûž5MM2•–/,¤Á²QáV/µ:ˆhÜOžO“‹­|ʱ½(þa¶žï²¤m5´{‡ÓbÚ:è@°VEÖÆ± ˜z¹öà@Âӑ;¥3Yb{Š;[^u¦d•ßR’UÔ­ÉÙé#±?ó+îM@Üõ&Í&o§óÇ0Z%œ³ž¾•ûv>ë4šÕO¦ƒ ó½¨=¡Ôˆ±ß÷ “^n@55ƒßgÇþsT-:CèÛsXUK ØXÒk ?fwâ‰Ø2çr\žÿÃÛ¨ßõu À•M?qJJàí]£¨•º€fîâpõ$ÚVÓ’y1MT4¡Æ@°!oëxLÞ‹­ò+×9й'×±lå\ ºRK#!#Sœ™‰Cm&¬äd®çÄB†Ç>_WUd²äãÍtXñ3]ÍÀ1´üd§wÃRæÙé;6r¢8„×÷l§^ú2ÎÜÃÁ 5ˆ^5kŸXÚ¦"šÝïÐlêº~Ú–-ï!æ»ílH‚‹Ë^áűXóŒ†=kÑeã6¦‹G˜6c9Ë6ÝMOÛb.W|€ Û¦wf ]¾ÛE‡Zñd…úÃù©¾ç†ÁÜ7r;>nýûåøº> 7•m‰ÂÔ=lßàbØ®-4!“5_ÏfÑ¢C4!Ÿ§6}ÞÈc*•<µˆïŸûÿ¯Ê¶DÞù]¬ž{‚®›·ÓÞÂ÷Ÿ/àë1Œx®ï|ÞwJþç‰iϱ8.„Õcp÷+[8?™&ï-¡ëܧˆl—÷òÃüѤ%ö¡žÊÿÆä\:.ØHŸ$ðdo`Â3XÿðhÚÙϱjêŒÝÆcƒZ¾¥sKxýóî>—/+߯ˆ§ß‹7©'“fô¢ÖuÑ)‰SÑã£,ß82pÊÏíæÔòéS…cÒ—IB "ZZD¼Å<ÿyN0ù_ëi4k9£“D ™Y3Š›¼Êç‡îgæºçx«Q*Û¶¥éGsˆ94Ÿ¯÷×`ÒŽÑTÀÉþ=§ÐÛ‹€ˆÛЕÈÄä«Ïv¢´eÃyus5F-A @ßu}’AÆ/˜ÕA‹ÁXödˆ€¨Ö ×ø‚kÓùµ¾¼Ü£*p‘Ù/Îcã¦X¢©õ›ƒ…’#›Ý³?âüÜÓûõ«›M¤´­|1aK.4â­^Ú«ÁPûé¼6n5烟¦?²leóÈ/©¾t3cÊ»98ŸL9É’ç ¬œû=G¢_cÏ®ºWßWª¿ÿ:-Ÿ5‹K—sp F¢cˆ 3 ⥠ý Ù…ü†r$ƇcTý5éJ©(‹§2Éò›¹ž…V-ãrQäðƒ¬#21“wF>2E$Ÿ<ŽP¾±\á\–•.” ‰FÄÛ6ð[>Ù¹j¢*„ AÂYXŒÃ­&4J5ó ™y6|è)W!‘Hƒ‹Œlƒ˜NFž…D‹ ‚‡Ü´Óä[A¥ !®R4ÿ¬\Œ„דÈý='ðÄ«ÍÐÿ ¿Î&ÙÁè.£YPóET[ÏðØæí<$äó«ø~Ý] } ßÅŸ3n?eÝGcmI’b÷xžø2œ)«¢ú ot»ÝdS½q;¾LŸ­ÛiãÞÅè›X¹µ!ý«ÙHêûß‹§¹ÌëúkN7æé&‘è/玸ÿä=]n¤wp¥ÿ̤—'±¹ÉkTˆªÍ ë†ÐÒççÁ擇¹tw Ê|ŽC_3tÌJΘŸâ¥€Æ`ã'S¨üýV>‹órdáPÞ›x”åƒêâ(ȦÀ¡"¼|8zÀy3SÆOdÙå¦Tí[Òßã§ûx)kj²°ûküó=C HMu’Tž üþrÔkø6c§v$´´1)+>å85^øŠ1Ân9“qÝ&±¹[É_\WXôÑ`rk–ÇYIã–ï3ilûë’\žäÕ|6öK~ÎmCsu Q´yø§èÇl`m°®H»‘;yøÝêl›¶˜&«¶2)"‡Ÿg}Æ´yÉŒª±Ÿ“×Ùa»Ùs¬Ô¹¾Å»§2püF®D¿ÈÐ’õöÊš ŒØ×ŽõÛ&”èxç7ì!Å[É;&$íãƒ÷·²y_5*¶JDô[Ù<½[ m©m¶ Ó¸Ùøæh¢fog}%¸üÃ+<ýÙ^Z¿ÙøúA)¶Ùª7cžoB£“ o~ÀÁƒGÉ[0׳eíítý´KGm§ËºõtÒk×h:ŒZAÇÏ[a‰kÈ««GÐ.\æäüÏYµâG.5j‡ä­ÇóãÞ£c‹2[Zv}J¯[ÈöµÏKÆïvâ xq¸¼øäR;ÁIÎå<-Gøu'SEt þÍ_t⺽Q®B‡³0“Ô´¼‚KL±a"ù9^D)‡übn/„'T'Ê,"à!ûL2¹ˆ¢Hhù h Ò¢*ª•ðØ‹(Ì÷‚/';&Â"ƒå4§Láå3\±gõw"Ï~ÒCv2sÝ‚ ½9‚¸øP¯‹3©)$„Æe¾~}”®ìbƤ1Ì;]—¡;’ϧNbù…_Õ™^N‘Gæoà©$ðåob\ïqlè8–JR,Íîû)£(cÏ89°t9—£cI¨~5*”Ãxu+KnòÒsñy=œI½L|p9ŒÎ+\Î÷j‚ËÅoQ#ªd9)œ»hÇçÔU©"W%ND ˜”SW°*uå«ÄaþÕuÁE~žÙ›G‘ÍÓaqUˆÖà/Jå|† YA "®jfÉMAv.^œNO#ÁKDÉöy’Óíä…dp2-—jù…V\?²l$¶r"¡b1iY4¾\òÝj"“ ý ¹’™˜ÄDª7„Êw]aÛºmÈ¢ŒÓK‘UEpX(:ÑKaJ¾°H‚´J õÛŒ’VPPPPPPPPPP¸ƒ¸Y¿ê]_íIîþ½dªtÄ׺‹(­ŒG›A_ñMíe¬:ãA&Ÿ‹gÃ0…V $ +7¤‰ýÅžó\¸puJO“&ÞÏ“³¹è‡ ·ØP,‡Õ îÕX–"˙̙•õ¨ÑÆ„P¯ ÷L>Oª,QqFóS³ïé7"PžÐ^˜ÃùK…´íɉ½{Ãb©P1ž à»N‰kx™äÃwSåQ>@Û -&_$E–¨Qïyú–BœN-æZåÕä“–z‘³i ´Ž®Fhti;}ˆqᄇJHµºÓ ‰üä#¤XÓÈy¶±×GDC8M^üŠÅw-bú2V®\Ò U œæ¯MCßn\vxöóIÏiT7…þÍ#Ñ ÕáSV6]ÎKo•$e ë¥=l?rލÇgòjÚJ~HÑ å‹FŽb¹GxõÍGHeô Ÿãó¹Õxcð%ÔÈ€ž„»+qiÛ>öGÈxsCx°vùÐ2RÁ—W?pŠ,¶: äbpìd×Þ»©ÚÚ˜—úm¸gò%RÙÇþ]è0>06õZÓ`ÝIŽÙÊ‘qº--Lå¨^‰K¹{Ø}9†ÐØÄ@ ¦jcš§È¿ƒÛ éP  ÙŒ.Á­7Ü"˜u}ŸAÀó ÙN¨s!¦b*sióQôÆ,ŠU±Ü]> Œ‚PÈÅ#»XS@L¹êÔŠKãÊ…–ÿA¶=x\n\ùÍ©fˆ¦Ft/ ¶#~o>»w¦ñè³U¹°o/²)”Š5«EØ™3ßq»ê añTŽ!'VOcOµ±¼×ä0ƒŽ¢°oG:Œ ÌGD½64øñ"™4&ºìL†×¥ax>&’¨¸³œø®1u;—µ·/‘"7$¡QE.o>À0/޼0۰cIÕ~s0¡‰ÁA(àüílÒ'SZ±f6­º•lÿ–… ðâó—>Gýü» ì\=`•Rx†­û÷!ËÈ‚½%‚ ¼•¼õÉI*Æ'sÁ“Dí†ÍðoÊÑØÞ ÚŸæŽÝ,þò{ö¤çã±i©ý¯wÒèÞ£qÓ#l9ÐŽwæwGÿÃÞšv1ÂÍaÍ2õÕ ìšý vŸÅáÕתbñä]x…ã\ÊqRpñÆ3™ðLu„´Lzu5ç, Ñx`À;çàD÷5¼×ÄÊ©-ó™·ÊÌ+Û±wÂÇlRµaðûݨtav¦æd–•㋦òSÊC|2¯/á^'6MãÝåéeÐG7¢ûnh¶®fŸ«1ƒþÕ­ç3'¤Z·‡¹O·•ñ¯å‚ÛƒJÎç’ùIÄÌ¥ x>›×†=Ë×pqŸ¤í £x®þ:= ªÐšAãb »½»äŠOÐû~•ŒûO•è—[¹f! p{ù<›Ž—£‚®‰â°h 4|¦#öQ3qéíÑŒ¸ŠuhV1ôúOÙŸËž«9{Vϸ‘giÛýej_˜Ìgër1¸$‚îîB¿çêb 8ðÓ7l_içÊÕ^É{÷IŠj–2yöF²5ÑÜ7ô}úÖ5à±gqáè%ŠÔâU›P’,TŒÉ`Þ¬CXí'É,¶‘}þ†®_0öùh/`Ô¬cøý€Õ@ƒ&1¸b{\͉ÆŽºÀ£Ï¿KÏÚZÀÊéí»9tzW®œäð…\ú·ö²eûA.e¹!O¢Ò°‰|Pe=Ãú fõË=™EL·÷¨yp,k³‚¸§ÿxÚ¸W±lžwiѸ!sË—|w4ŠO=G³ÈS|ùæ·D½4˜^­ÂÉ9|ŠLoÀÿ¾êg¨£©V?þ?$½n†’VPPPPPPPPPP¸ƒáÈGmã9â—Á“O|û¯xë‰È@ ÉoÃîð ŠJ-#ã/qÉÊ(¤°ØLå^Ž­Ú‰&4êb b (*Ân½†ãÔVEÒ´be<¦­x%9 ÐF›¼ƒl j– ÜV’`B@Æe?Á¾M—É*ÃV[²¥žÆc p|/g«…Ñ01Bñ¾ÒgêÊ—¼“lY¦ÆÕärâÇ-dÔêÊ‹: 7“´‚‹xïïL(×’:ÖÃ8è­BÛ¤¸’S³.ήû†¯÷Äóè€G sÃ/jõJvŠ^dADD –:Ð!DæÚpXmø4±ÜýP+""õ×Â’l.üî˜ò_bÃÌY6„7s7³nï).9uœÉn@…&MLq˜„2£kuà•d@B&„æ}+²ù¹il qqF¢óüç®?퀀¨Aô•œ:µ^àÀU䯧óã/¹c]$å“w“%UG_i°ÛJ¹äóä¨cШ¼%?7äPåãЀºTv„p¢Òó)t%"j½ø|%‰ ÑWLúÉ]¬Ýe#$÷,ç¢hU)ê÷Ÿ¤ôÛ°9=%z¬Ìœ¹í¸J1ensâ+½OQP£Qyð:„Úd!ìÒ).q`õIr2Çb°f"Gµ£×ó/qõ¿ú:Q°séÈzÖí ãŸ&Rß¹Ÿ‰“~fã3G¶­Åßà%¾žÒ˜ vñÎsèdù/j«¸Æíéþº†jöF%'½¡0µ9mr\è./ã¥ûIiYfž¦ú…bÞÒ­¤”ìë|yš"¿‹ôƒË™¶l?Í[Þ®òÏz¢k·æá6ï°n?Ô«I¦ÆGÄñœ¶ŒsþZ<ùö³Ängä„u¬–€¶x´^ÌÂ7Ô¹²|´˜³·Ô²|/ŒYA篿-gìï :"’B~þ‰Åã7ã26¡Ï³ÏÒ¾aÄoØ(ˉ7“Y«GäpY(]gM{@,*¤ß±ÃÇ'!£NrbŸ‹=é_pD¥Bp¤Öú+F<ŸˆÑí&ûðv²L-÷v©¼%뼋S&ËS„½ô™HänYÉáà{x>.PUÄñóœéóÊÕ“—½ÎÑu{)¨Ý‘úêÀïå\ÜËÒ©ëñÕëH·z17œ@,«®­Ÿ±´*T¦`Â.¤…‰ÈÊõhæ &´¬]ãràòùoØúãàôêÌ:R…®ƒ:æUhUZµVQ^x‡92 Kø~û)}}ª+᩹X}Œ]‡ö£.º€ªÆë ØŽª!7»oWÆSx™µËQ÷Í÷ Á‹': sЖ=„[_‡{¼Lûb}‡·_¾ÖGoÉßå°Hb““)TA£.í»Æ@Ðå+Ü…ê:;̉½È ÊŒg©ÍãºZ%Äï?Âþ]\tfŸÓš`÷œÀ‹m«“pt sÆâRN‘Ò±f(yßäãÕè~ßYvn9BN®mûu@©¾ $ŒÈóÉ‚ëÀeÇÇv| ´IJÂjJÃç¿ÞÞΔÊѼO"_˜ÂÆP;¹):Ÿû¯ÀU%Ïò¤æÐ9æÆ ‰BG|à v®[ËœC98CzðÞˆ*ÛëbÏ•›Èöoùe@,GÝÖ-QÅ£¹n‚UˆÙ»˜7í Z@u„לçi‰­Í SÆ‘ùÕû|žbaÚœ…,˜¸‚3§Öpiù^¬UîåÙ'kQ°w?[Ήêqè‹w¡}x †‚\¼Š¡ã’yrõ"µ@ÖÁ…L]—ϱÍÉlÜe¤ëˆw©Tx„oçdÛî HŽ#H-ÞfòãUÑæ,ä‘7v‘ÕÓÇOo/¦ê´ù(¡´ÍN²¤.,]µ D“ž—…¾ûÓÄ©í¤ÝÕ˜Fª„’Ͱ×N\Ús‚c‡æ³æp,½ÆÎg~© 1Rëñ·ø¤b2O{÷ìæ‡ŸOÑ+„^V]'½ÁD°ö _\CLß1|z4ø~æ•ù˜L &ŽÎCú±uB0ÆÞˆ“ôS;8–ê@M¥êµˆ ÀíÀéóß°kîF¿J(ãWes|õrju¦!ŠÑ¸‰ec÷ã6Ô¢cÏy¼U *Bh5l4­HfÁûÓøöàEòê6 Éýµ(WR©C¥‰§ókýÙ5%„qŸµEüÞäƒ:éHE'˜»;…mƒ ͳÓn(=VÍÅé<þÖZŽ×ŠAÔ¨}»ÿÖ^j|1ˆ^’{ÊZ&~¸˜÷ŘwœŸ¾œÇI“¾$ÑçÇãN¢C÷à:¿f?Föm@PÁ2¶—Kŵ¹ûÞ¼g9Ež_Æwl6ìfð‡÷Ðq`N.ˆfÔˆ{®Š2Q«kÌ‹EW«›G~êÕ:Í›íÙ9<»r7¯Ra´Bó yûìDZ ÞÀSVÒmËDú­Ú@ãNfL@öâóè©öÀ£„;À•ËŹ‰3÷=H÷:åÑ‘ÊÁ…óù¹Ø^¦*‘ ± ƒ”ðBI+((((((((((ÜAddÚ0ü«WIÖüM¼Ý{ûŸøˆæ¿ÜÉH~UIÓ-HM˜· Þ’y#¦³æˆ•?½™-y4ì?¿ÝzeËæœ$ú¾n4ŠÑ’ìQ(-×f§8Ì\’Ôüe»%ÉD\Ò³¼ýEwÊáåȼ™¬]»š´FÝðœJ¦²¥%±– ŽyE®º±S„ùjÄ!ý ±áX4}ÆÕFä`Ë( i‡PÃI£ IDATà«=/¼°‰%ß] z—žÔN(-6f¤éËiúr.³éâÏÖп毅Ï%$ Å’ñsa7i1«Á#ÔàÉ5~u¬$•ŒÊ\…˜Ô|}ÁIAv&Y¢È¾‹­èÓëiZ^ ÜØÁ›Á¼‘«©õÅ|Þ‹²³}ÚÛ|3k Œp¡ì˜‚,—ί‡AƒY¯Bô‰ˆW3Ó%c(øñSæ4¡Ë…=,“$á—U%?÷âA6ëÐ8‘¹VŠÏdÀ ɧ $ƼvŠ-–ÛL¸Q¶ßé=–u-º“ñs6=—Ï¡‰u?Ó&-dçOûhøøÝÔêøv|p²¦ÿ0vjKÿž&ÿƒ¯~E¶Õ„Ä·¤Û€"&›Ç)ƒ—ô‹jj<Úš¨Ò!»ük.ÜE»Çë®.dÑˈ~w6C*Ñ9¯3êÛ¹¤o/¸URWñõBŽü RöŸÈ¦aŒùÞÏ–Åî¹ß³ã|½FÖ@¼©|øqÙ+ÓmØ«<Ú²<Ì„._°'«±I!ü©[mýnðæ›=©R&Y¸KHá/!*5B þݵKäñ¿˜d“¨{ÞaÌ=@æO¼>v&GrrY0«;a*™ÊmŸ#ô\-Jê¥ë"jÐyÈ\:“ÍŽ“xÿ“<ýò ô¾/á6¶J@”A6›0\¢À¨p-hä¤0ÈŒY–‘ËŽ— "‚, úŠH=v’5ö-9É3#†Ñ¶bÈ^b$|þR=!!yÝ8CMèÜ!Ôhö Nxˆ`¬lûÇvî NõÖ×%î8.·cãG©`(GeŸ™Ë»w³;¬)÷ÔKT2°Ùñ–&;þ*üÜNn—?>r÷ÿÈÜÅ;H¶úÐkrÑe[°Ê>pºðKnì>‰rÞ4v.œÃÜmYh‚dÜn7åË‘sÛJªƒÊB\õYwp;©ÁzO$íª³C_Ì…cÉä}Ù/R¾!ÁFð&=ÁCµ}Ȩd ª6¡–:°†„Vj@ÕËŠ ÿ”°ŒÄ¦Ýy³iw@bïØÙ}èéõZ÷«Ê¼Ô&‰¡Ï¸Fè.Ç/][O]jMú›Ü />¼®¦ ™ù* ü{x§íDv=;ŽÖ¾bλHûWq¤€«ë¼—Зn0‘È<ü#‹ÐæÕÇI ¤÷l?N§^U˼/“s—²çb<=?©Vò,‘¨ºù÷´ÎŸù!?Ì,¤SÿîTûÕSš~|Rýàqã5¡ECbëî¼Ø:ðs™_ÛŒDËASiI&_·ïË¢‰ky¹j[l[ò»“îgðŒû8¿âÖm_ËkUéߛޫ r™/ûLeJmBÊc¸ÉøfîýŠÝþŒ¯ !²Z{^ûº=§|ΚÛHnÙƒjê_Ú~~¿ ±DI n;Å¡̲„ß_z¿¨ŸäÃbÂàƒ¼ì0µN󟲖`}WFñ @öîÅ|5{?˜ɵ&0dÉûÄžþžfààáêT1Õ£žpŒÍ«Ï#x³ÈÍu³a{Q”Ê› .'öðàl2ùª-Wœ²•ïçœ%類Ô8æÊlb´SL#…¹c~¦á7óø0¼Ÿ¿Ï‚o—ÓéÀ&KOÑ1V»otKÚ·Œà®¯pWËŸy“],9š3dæ _Èv[Õo\äÕUèöz•›Ê T¥/S§•½ ÖCÚžË*W#™1Õi I¤òd EWl'5ÜÁ¹ý?s%y²,’Xµ :µ„¿r_:Ôï….6~–-€dÅêtƒ[À+’ê8ɺ¯2ý2‚º:±‘.Æ´çÞ:a¹ÖY¨j]Ö!^dÂuæ…cB=Ú¦,eYrwœ§´íj ø%=úÒô†y PĉUËH­õ]¤²þš|ú ϱiÞ<–î/@ì¥Ð®#±®‚HUéÆ/ADT©³³ÈIêÄcµŒ‹Òæ.s*4ð^Ó…OÒa‚íVÒÿÌ’M™„VmÌ£Ñ5‰»å·ò«rØ;w1[ÏÄÒû³€¯Yã†|ý'æLâç];InÞªW?”r4x¸ñÙGY¼ú0ñmj¡*Õ#‡¯_Ð\ÙÇÊyËXƆÁäàJQ UkØ(Š©JRlÉýȉµ©¿™b¯¿ CÈÌ#/ÒÎá¹ßrÔ‚ÊHƒ»cñ†ÐªÜûD/ê\½?XÆ/…R5±Ôc­iZ'&°WL%ƒ“/ÃK–1{] ’AFð#ç“„ÏåÄëwaLe-x¯Û…ät.mZÌ·Ëã—Њ9ä’+ jSjéÁM:•©*x)2GPE£¾Þ¬ö{€šÜÃZÎåcÙÑTZÔk%XB©ýHG‚=¾ëì•&0þJXAAAAAAAAAAáGùøƒìH‘¨™(‚ÚˆÅäÆí4€JN§E£Ñ"Jx¸³äãÈ>Í‘H3õŒ S‰'ÞÉ€uÃ;¼^—Ä_}¯“ìs{X»ä¡=Á#­Ê#à$2ö Wœþ€³¼Ÿ}Uây^,uØt¢J‡­!y;‡œÝyÀ ¢5¨Ñj$ÀÊÅì(LIÑAdl Ùv¹ä®Óýì©–@A×E6­XÏ©³åé=®sɱ.Š Éq7¢I€ƒ+'v°ni2qOü‹‡\]WÊ ²"k‘h%"ÎE¾û&ÝuõÔ*‚ ñ!eã(Hæx°š¶¡!ÉdïªS˜înJõÈk%Eƒ•J‹И+ñè¿Çó( Øáµ+Øšy}š„rqï.rôñÔ¬‡¹4ÉgТRiÑ›tà?À®#IÅÉä ´K#jtšeûÏ’jOÂlsdÁر©ƒ0[üX©ÈïþR¶ý…gضÕMÝŽu CMhµN¼ûe'peÁW?aKˆ) &ºÙ4ï†v¨•þì=Ãz ¹ëÉ—hüÀ(ð4æþ’àÔ•}‹˜±5‰~í*òGŠ Ëöd6ü°s©é3òáÀ=»'©õè´4:=Mtl&»Ó.’GyÂ1` òáóÜŽÄV`ãˆß燲éÞzÜk˜Ç”mù\Í«÷cœfO>N¿î83& ×oaOµ®4 ûi}•½N‹Z­/™«ke»5-:ƒñZÂôZDчQ‰!&þi¸K+R”z‚sÕî¡¯ÞÆqÕNø¢™ZƒÞ$¢¾zêí¯EV©Q«­¸“r™$ú¬dªÝˆQÑ„]L%+Ïè©Q‡ú6&Mÿœ¼¨Qq–å £iÙ)*‚u%ßMGüx3l¸Õ"dodÜ7ðÑÖITr·ãÍUÒí-a­ ¦|Åú<°‹Ï·"4¨1åTÁ4éÜ›~=j_û¿ŽŸùΛŽÛ'_§;RªÁž}‘Œ µˆ½‰ÊÿÅŸÿ&®\² íH‘‰D‹ì²]¨í¯%«nb“‚1‡%¨àÍã²'{lÔµ{l :Ôj-zƒH ®Â1ö/¢am ¨L„yp»Àg»ÀÙ‚{é ê#Æ#ä îl.ø­øc£ ÁÎù½ëÙðC6 Þz•–åK%â‡2î¥A| ©%Û“Y¿|#ÉUéóÉC ÎB²s ÐÅ'aþ½³³ªêøïœ[3wº»:åLÀ C· ˆè«ò ¢Ø­è+&!¡€A—4JIÏpén˜d˜î¸}¾?f@†’ýîïyæÏÙgÇÚ{­½Ö­‹µÞ„Ù|™F³Ó ŠFìþø Ó-4 ÊÒr"*‘,äŸØÇ±;µk„»ð×»*¥]͘SºŸ<ÿf„hÎÙbÕ¤€Òc¬ßP@d÷8‚ÄJÊs3É÷ˆ"\cBoÑ%˜ ×"2óNM=±ÇÅÉ‚Ñ"¢0f²eEa½[pînïŠ,™™Jô¨N5㬱œ’³”xÖ'Te¤Ú¤Déî€Ý9%e§A©Pa§µ¯±E‚’]¬A´Ëa»7çM<Ùpˆl fòóN’v?=Rɬc‡Aw—‹vºž³yTˆ {@­òÆÝg6ÛŠŸ!Ø =Κ³ddØQ–€# ŽêEg—ã<‘Oû‡ðF×ÚäÌkyé¥RÞ!±bó;d–Á}Î ªOìæ`£8")Ë8ÌÁÓjšv¨‡ÕäMaÕÂãx÷û=¢}€*|2.²·CyÑ´“‰ûÃyÚÀ•ÄÇa×S ÙoéKtî–-؉9¢ <Ø´&ð^žÊ©j7ü¼]ÑRI¥ÚGç‚Ã_V¶/:Êæ*¦H{×E¨ßœ†Á.íN·`®; " [̘©ùm²X+VÙŠÕ^ƒhu¦Ã“¯08á‚%KÅKQXÊ1X¨9ˆF£Àšv”³t"L´G«Q‚R q"ªÍ^ú ×6Ãnö®Ù‹áÜwÙŠE¶`u %Ô´„}%=¹ßõ¯üiÃiÖ)~ÜDSÿ‡éëÈå¤í>D®èG£–!uì™@z|üùë?cüz%9ÑÈéñh”i똶ғ/—D Fö.þž§ÌX˪ÐWškl¯Šb *KÑ»â”w”ÜRüÜ r¬®µ>'OFLyÕ5uêàMÛA#i;è"éÕhP_З éÉñnr鼪úë¯ãXZŽîY£,eçæRæU•j³•›¶¶ÿé9½a=»ÏäpæÄI²¢æ»±M/Õó#Æ<=9û7±æT FOy2X0i)ÅF È2 Uí}ѹi¤ùºÒK­F!ËÈ.Žh àñ¯>¥Mýc¢¤,ƒÝ«VsÂ^ó×`c0–n¾˜E æsmlµb•¨K7òÉø"^Zÿ’ÀïkÅÖhÄXðWýu'(Áº‡)?ž é;ŸðA-äþÊ#Öžèa1Õìè·š±XjNg’­ÖKm-AÆŒ’fݼÙóçl6ìoÃýqQ”qjË&¶”W_ðžˆÚ>–ðvuî@¿¬Ž¶q ¶° 6lذaÆ 6î ty=Š1“?eB€+æ¢|L ƒh¡ %ß2“ŸÛNFÙ<ÃþC»øæ¸­\ÇOŸg ç«*£¬¬œÒ ÉæéÓØáÝ›W›â( ˜2SX²b—òÓ×Ytxäaëð¿~ð={ÃeÌEù:=†¤ª$kç ~øÑ™ë)EqôÌBf}üe'(lG $‘O‡óýôYŒÛæLõD<”„+!t}Ý‹ñN ;ÔLþáBZ=×o=-ç³ôíɤ؟%SáK§ÞMiÝ"Ã372õ‹°oÿ0^!ty-˜±'0>HEÉîTš |™Ý7ïÝ«Sæo2Ixèu:¿ÅØ e»Ã$6U¡ñÃ7ïþ@Ÿ óíMH}á$slâ`± Aš£„SÑn~Y´ó"Ù¶R•õ'ãFò^ïf¸[*ÉÞ³–9[Ob¬,FðnC?©fIAÁ¶Xv:ˆ.}Zà­hÍ£I‹˜úÍކkP”ž¡ Ãã<|¡ÓZFYYååTÚëö¢ÈäoÈ»cvûäVL‡IëE³¤‡ˆóÌgߺ™ÌÿýªƒØ{>K\ŸhW¬bê×{p2ç’œÄnÞA!ȹ:æMÊf³»Q¶b±xÿø@º¿û {?ùŽ÷Ì-‰°X©Ò˘ýد1¹ë–0öË,|œ 2?ò 64nPspíÅíßI‘7y_±²””ÙSØ½Ö •вžz˜úµN,Ùj¢Zoªq؉f NoeÆÜ©„4 ²òÄHÛDÞ‚ào5göleæ#”epÖ¾5\ë7ìaöÿð;“ÆîÃC¥F!ž&ãP0¾Ð÷|z·ÜÆOŸN ÐMÆT­§ÈêHûžõQïßLEi1"h0¨­¾þ‘Ÿ?KþSÓ©¾'×r£ªl(ãÔÖL[¸´â]ü^IRBA•GY¿j!ué)>Ié atiáƒxr ³—­äø “Ç¥}ßátîÄÄ·'¤'7µ’–Ï·Æ/(&m6°â“¯Øçb$§À‹6ý›×O|÷ÍFªL.ø×‹¢‘æ'ÆŒ´jÍ Ý¹> ìOÔªéŒùó>9ꇯõ‡ #1 wÓËiÅl2b4€4jåÉæ}¿òÝYÜÌG8ž‚Åj§æ´q|‡ÇTÓªq­·³tÒþ4Ñ—¦SmñÃb1¡7˜oÙŽfGOg\\ ][Ê ƒÑm<øeÑ F¦†àíh@ïÒ–G;”Q¥7c‘k}Ʋ…ªk™0ñ,Nf EÅI/%↙¢ô£Þ-Ó¼_¥;÷“­÷ y;/N¯Ü12‚¨úÞÜ7› 8¼î7–s§¡û)Ž áþŽQWÝ-U²íb›ÄƒúR,m;,gÑ;“ÙªÎ&S@—Þ57Ë[r÷³úElÛs–¼‰©ä=ú&ñ#Z0qÞXÆmpG,ͦ4îZ;˜Èß¶•´=iXãh|ßj~{w2™d:FÒ»M0ä.gâÈqœ‹G¿| ûô•¸Æ>F?aûÃ:ò´kÍ‚žÜMxoì^â†<Éò ã0;ùÓ¬qæÝ3˜WBS×\r3hØ!žǺzÚpjs–¯àØ =?Œ9Kû~/Òu„ ß¿=ôy§Êi=¬)PÄñus™¼Ñ‡1pW Xóóçêlڑʼnò“”<þ2×òõœ? wR£O’íü*ƒÃeªS×òݧ:žìG¶‚ìÝ øn³-rÈÈTQ¯ó tk³Å3×0ý‹¸ …d¸ÇðP˜êêELø|ÿéÒ­äbvLÿŒmn/2)ø/¹}·yÐÂ÷ i™Ž4îÖ—Àš³—?þøí{ó(ú>•œÁïÐáÕ`&Çø`Å{2hñÔ8iÂ’qc˜&˜$o5ºb´-ðx8Ç]howÇÕÝžÇÚ/cê»ØfÁTX„œô(­y¤ÌÃ×sÍt~ÚÒqkCcéÕ Œ-«÷rºÂÅ^öi:ðŒ{S‚ÞhÊØKdûšMD0gÁèïQIH êó HÌèOýɤ 98Ë Ëö>„‡ƒÉ`d,&ƒkvd*›Ó)ö3Oâ³Þ¸hŒè=âx²}5UU¦Ú`€²aW^ù”O>›H[çjòrÎRæÖÈ.[þt†pOÕ éc¥ÚbÆ|îèpÙLu•“ó}<š4oþ7ž#á‚RE˾ÏíãBx‹x-^Šç+#jXsØ6÷g6)“x¥YNŠºU2^÷¿ÍG÷[98çkVdY¶TCè6´ˆø™Y“'áb*%+»€jŸ&D X,²‚ªj¥kaU_ñÕ¯fº¶@|XÝEgrÑ 6¯™ÏºäT\³Sùä+$ændÜœÕøkíêÌ« ·NâïvóäY9a&­7-¢ïÃåø|¾ßæNsŸLNg¸Ð¼wì›Ù±g/ÇíÛòäûO^áÄ¥KB+¾aôô*š¹Dé¼'—àfÊfç æ±>%GY3ó$©{|¨ÌÈÀà£4s?б²“K{ÅýÆ”×¾g{XQ¢ ïÀà® p hÇ¿nwu½‡£›t-µWêÈf UÕZÓ.v/&Œc'"*ý1ÊŒþÈ(Ѻ†â]0™/g›éÙ¾'m•çu¿Ñ`Di6‚E›èõù},c7»âb:Hvi+d‹šêêšoÉVUz322²Ùˆ^ 5 „Ì& ¦š+zìõ!hæfN´ó'$Ð @§7ß­] z1*‹N²sEMkõøAŽŸTѼ{8ù[öQhçKÃ6Á×õȿſ¥ #\]G"豯¬øK,4ì:t¤<0Ò¶À† 6lذaÃÆÿ;L&GŸ¢Y“š›ÔJKË(.)!,4‹ÕŠöÈ{v‚ÉôפÝÉuŸx*1# àêêÊ­ÜsäØžê#œ*±÷hÁ€gÛáÈ=…g2(RúÓ0Ì;´mO¨ÂJqnÕÑ<ܯaÎ*„ªœ<‹Ñ ¤QÿWè×°nÏjµRYY‰³SÍ:a«É‚¬uÄÝÏ{‹‹Ô´Œíˆ_E.¹å¥¾yzPk\jwXésq¤Øƒ6-}QÉ ›µ¡eÃFh Ž’VåFýغ%„`Ù»œåj4&ÀÔÍq-Í&·²Ñ¿3Ï l‰`¨Ð£ ª·¹ #"J#ÎÎÎTŸZ±åã´ñ«ÁŒàꊻ§ v#VÙŠÆ«-›† /,@o2#[Üi?ìqÚ¸]<Ñ7Qrö49V?š4pE£v¡Þ}qDh5”žI§Â­ýz%ÐÐSƒ ¨qr¦a‹ø9Õ³ŒyÇ8XàFëVþ¨¬¾ ZpÎÙ%ˆ(ÕŽxûûàコ¡ £pEXKÓ9˜­ ~“@´XñïH‡^-3NP‚»ÚvöD3>aáDÖóÂÎÞw­#•gR)smF¯hêm‡Ò­ne9äV–#ø%ñÌíqœ‚îÃ>õ 9 5> z2¤c0*Ñ7ßP̧PèJL|ë;!:„ã‘â‚l ž± îK V‰½wœsNc2£ éÎо ë€- UUU89]=¼V·ÌàÙŠæÍêÈvÿgÚ ô&¬YUé§)]‰èz•#ªêJ*K‹¨=‰ØØ0'”•gÙÙ”ZܼÈjâƒl¢"/•ƒée¸G´¥K¯îÔw©qДäãÔ¢5÷5 F«;üÚ¶Ä./ƒ‹´é?"‰à »´  Piqó $Ðå¼£ ººQÑhþ.Ä!`¨¬Æ!°>žæJL²ˆÒN‹Oxc‚´•œÉÊÁì@¸¿­‹? ÛÄÑØÑH~Aer݇ö¢™‹úšG£ÑˆÅbA«½ÈÅ#jpTY1Y,È‚€ ²!Í؈Ø&2i'ÊJ'W"Ú÷B Â7XMáé³èEÑ«9½:ßOoÍeÛÙ³^kÂÜ—Í«Åb¡ººúoeч0û²JXÁ>Šþ¯¢¦-D¥'"ÃÜQ ÁÉA‹½!³U²èAË„x¢{_óqÙ²,S^^޳³ó%Ž´òÜ,2Ós)u#©G'¤PöÜWOÃÙ¬b +XÜHþCÔ ¸!ùQ|ø4¢ˆ¨õ¤aLoz5óAVØãàO€·#"ÎÔoâXVOA^—ð—––âêrÁ1Ñ=…Ù*üháŠÆÁ›ð\LyœÈ¬Â-(o.A ósD,:Åþš·@m•ñnpÍšµBuò ¹*'Bšôdp;?”*WüBPœ$KïEË.Ith€ÝMêW“É„ƒƒÃ% ˆJ{\<‚iÒ 1aõ=)ÏH¥Ê1’øIĹáZ#Óf—òcüQÆCIMñ²WÝ´.®¨¨@«Õ¢P\‡kPQ©ðö÷Ã×Û ‘êŠbŠË̸FÅоi3š4ðÆQãId}ùÙF´ zУA'ÏXQØÙ*u§Cý`BÂýðöô'$Ðù†T”••áârAXI¥Få‚¿WR#T(p ‰ÂÇÉBiQ1fAÀjçCƒ¨P|½ˆŒðF«D5Z¥ƒÙ J ¾­0Dª¹ãP_VLa.øDybÈΣҢÅ'XKÉ©\dw<<.•ëKdúN Ö¢´Z1äR!ºÐ¬KW:´ À^¨[_NNNˆµg_l“(T|I´®ŽáÔŠÈKèL‡ú®5íS‘ͱ3&üÃq׸7¢yó",©¤–˜‘µM0¢#A&GWÉÙV¯Ð!µ3îžþÓŽSìIÂç•PÉ IDATýˆsD®4¢ðóÃËIhµVCïÃ~ÏhŽ4J¯z5㻡J6°žæ*L²ˆÂΑ€úM uÈË)Äj±'¬}g’:Dâ"ÔÝf)>Åþ³Zš7@cµâÝ -M›¶F}ê¹J‚šôäÑøT²€ÚÁ€ÈÔôÅA¹2—ãgªñ ÄK«À9¨ MøR–“‹ÉlÙƒøç¥¥  ÔâîI“fḩÕ(Tv˜r2) Ž'éþÜB qVPZ”C‘%˜NOô¢•·AÐàìLÃæÁ¸Šò³«ˆЇ(—Ú²(5(jL¹g(¨׎ õpÁZžÍÑ3fëâªp nBËæípÊ>JŽÅ‚cHwžíÝ;DÜCš"œ8H¾Æ“†mºó@koܵNuì°f¾—.3gž3­Z ²€oÃÖ4ovžÅ‡8]©Å·a4½ú¶À×5„€ÊsÎP!øÒ¶oÚ5òª»VT£uö#2Â¯à¶Ø§$WTãU¿C:… –AeïŒOXõêy¡1š‘p÷r«±áeP{Ñ&¦#>¥gÉ©,¯µ·[à€¡qM!í$e‚ ßVô"áa0a¸âl®®IÃÕІMñ¶–S^ZBµÂ‹öƒÐÖ_ƒ£O4áËvŪ'?ýG HŠöT¥ £RCP³(Üjݨ߼An´ƒ¨ÁAeFo¶ÖØ(‚µÆðV͈ðõ%4ȕڡÖÞvBm焯oQmZá.”QRV‰E@@ãF!xzúS?Ò ;A@À•ðèÊÏa§’)/Hç¸kC:ÆâHùÙ³èETîG„ìHh¨/®Z‚ BëìCDxM›£È:E  ¥ ¿¨V:)J=Lra ú¶¨Ù™.(±sò&¤a}"‚Ü/³F8ÿÛ»Iíâ(?RM@ë„k38•-cçêAý¶ˆ‹j@ÓÖ¡8«JÉ=[cxs¤mhI=)Ca!ÕUÕ¸·ìLbÃz4h€›»?õ#=±s 8°ˆ¼\ ^ u­«ÓäêNe•㈯³'ÿ(7  2?ÃEó*C¥m`}¼Ì•˜Qh´x×kI„‡†êœ,ÊE'Ä'Ò±]¢‘ÂÓøwéEßvõq¯l#+œ ,"·À‰íhãu–Ô+Zß0šµŽGjD€·=²Ù„ÙbB I䩞-qÒjÐ:ùAýøµó*AP q£i„Ç•ƒ{VÖà?Ü4‚ {'/›4¥™w©ÙfdAÀï¾$5!,Ü­«þÞEäiñ‹ˆ"ð\¡µ½+A¾x¹º⥧ ¨’*½÷fIÜߨQµmR/Ò B£»?õÂ=Q)ípõ$<"oïBCðóóÅÏËÑ”Åúí…IÑ´ ÷@Åßmä•1Wsö´ ï¦~P”OQ‰ŸH7ª2ó©V:âåïò·öqii)NNNèõÕ(DE$\l¢ ý@>‘eÛNd½þ)ÿ®´ô£{Ùô¯‰‰¦…„ÈÅ^>¸çåœ_AhprÂuä(ÎDw­¹Ûdž 6lذaÆÿGTUU±hÙjì @zz§RÓHìЃٌçÂi¨¦N„ªªó6´è€ÃÔ÷ÈC€@Hh·÷ÐÉë=·éâ{¦.ã˜7›ÈËË#À?à6ç³’m&°GݘOu'ø:KS|l¿~¹•¶?|LŒx§Î¯úûú»Þç®-ß§w¥ô¯õ»Wûö•Óø»ÜF ð÷÷¿ e¾e¿ü3WËÑJVQQJ¥ò2ÃÛ×»¯…òŠr žž7ý­«¿s}) ŠŠŠðóó»#ýøZófµZÉÎÎ&00ð¶Úµ¥‘ž‘NHpÈ ÷ókí‡7÷þ婬¬¤ªª /¯Û·¸øÐ2¯ÝNF…1K¹ÿ`^ëÐ'åÍ |öìY<<“‘ÉÌÌ$8(øªß¿e¹¸Ž# ¯M¦¹ãcDVV~~~×ð¿¾f¬ÜϤAßSÞtµ»Þôrø©ïØ›ÂÃAê뽈à¢4oÜ6©A¸Aɼu:ÿïôSÍÿn²'ÝN;ïVèÝ;§® k Gþ˜Ä{_ ¬{cìÔVrÖijÃ`žÞ‹°»°åN¶š9ðÛ‡,HyÇ**=#??Š‹‹P)U¨TªË€eY>¶¬8ŒáÛ‰X‹‹ë>„¤§ßÓ1VÛÐ6lذaÆ 6lظ*·z+Üò‰‚x‡ò©$<ñ!ܸîÒÈØû5£ëSMo¤nw‹^ûs7öÝ+¥='\wÞÿVvâm,ó­(ûåŸna;ÿž œ_§z÷µ âeó%Üòü]_Š‚(Þt}ÝŽšDá.´špÊ*Ü¡÷¯ÜÞÜæöÖz†Ñ ‰ÏjKÓ@bâoMð÷Æeãv:·J‹ ·6Â+Úmí77ÞÞ×Þ×Ôö~$x‡P»IÏŽØáà}ÝÁßË¥yã¶É­—ÌÓùÂMö‚»oçÝ ½{¯é£s†ˆ3!múòÒkM(Ó¨A%BD þ ›ã—Î[D%Þ‘mi­Q j\<çoKÚMáàA“ž/Ñ(Ôé µzûÆ›³`„Û–«;¡ n†nÊF¾]uª¨×ƒ§#½ðóSÞs]üß„-lÆ 6lذaÆ«L¨rrrþqÙ–e‹ÅBNnÜæƒ€DOìd=y9U7ð²÷úP’“ƒí¼¢{GvÌó‘{»ïƒÙd*«*喙°X-ÈV™Ó½ÕFV«õŽ;×+ÓVÙzÏÊô?QÇœ“C«å6׫èKƒ–ˆ‚ ‚sI9Ö[Ó¿Mfùyùçþ'ŽÕ÷œL ÷¨L `•­äæäÞþE*‚ˆwKGÊsr(»Œº·rÅ”›CŽÍ(²q¯›I¢'Mâ|¬2 ƒ(`5›(¾‹ý_ J }ˆ\;Fš)¸Uó A@éÑJsn²a@ᇓ S–—CéóïÜbÍ{[؆ 6lذaÆ WÅÕÍõ—g‹ÙBqI1înîX倧ÂÁ&g÷ &“‰ÒÒÒŽìÜ&DA¤´´Q!âèàX{ØäÝG@ ªª £Éˆ›«Û=ÓFF£‘²ò²{Nv¬+………÷¤LçææâæævÏÈ×õ´wµ¾½^gëÕþÖõïü‚|œœjŽ>ü’››‹›ë½%;9¹9÷œÝ$ "¹¹¹¸¸¸\ã)·í]z׆»Šý½•‡{©cÛ°qïØÿŸ°€mذaÃÆßLbo ¶¼6lذñE–±ÓØýã²mVšá&î6´ñÿQT å6Ù J¥FsOåËd6a±Zî¹6±B¼çòeµZïéñð^“¯kÖ3f3&Ñô+DAD£Öücó/Â=+;÷¢Ý$vvvÿØß6lذaư÷lU`Æ 6„«üÜîoذaÆ{ù¸ŒG–å»PO6þokI[ÿþwåˆ۫ëµõ5ÛeÃÆ?g”´a«Ù)—|åP¶µß?[؆ 6þŸr¯ama6lذq-Bù.}÷zÒŒ{ÿùL6+¼þï[sH^:›É³÷c¹eù¼³.rù–Õöõä[¾«e—oø™Û‘?ùÒ¯å»Ú7’†|æ•{º&ï¥\É÷f©d=yæòþ¨õTþ“æ‘U§Xüí3H’Ä/æs´L¸þ¶²–r|˾¿ ýÝ.PÞR^~u1y6Sì†l±+¾#W’µk>±‘ªÑùËyù¥ß.Û.·6X"ß¡‘P¾'µ´|‡eèîŒÄ·á›r9©ë¾åa)šv}{?¸1R/Þš²‰l«poäñ_ˆPü¯¿ºL듈;Ñ2‚ñ03'ÍbÙ¶¬:ó@¡t o¿1ŸÓzÓ]–¡t'cÞŒ$I Ÿ¶ý¤’æßf2eþ!Œ6q¾cØÀ6lذñÿÅPâ­Â-ü¹OÚ°aÆ1»¾B’$Ú%vâÕ%ŒûzNí]ìÉÛë8 ΰxÜ"ts1Ê´º‘#!IŸ³ëogï9l™úÝ$ I’èùÞ¯ì˯™ˆ.ö% Izõêú¶3æå¥œéš ØýËp$I"iÈ{,>f>ŸwÃþr== ¯`ÁS‘$IHÒH6j&íröBž–$¤ØÚwîç[õçßµädp¦è N¶~ÿ2]jóÙgÔbN–€@:3÷%1:šIBú"ù 5‘sj=?}½™JÊÙ3ãI’ô“6ž¦úê ÷/."ÿ¢¿ê³¶3æÕ~¼>ópmý_N‡çÇ·çs¼´º¦‹–1,.†˜Ø8îïú&ë+/§Ý+8°ð •$$éIÆ®>NÙÌf`m~ÀÆjSm»ìæ‹h )6ž®}§q0’spÏK’ÔŸ×Çl¡b6}õ ý$ IΜ#yµÎ†SüЫíc%bâ¾dïMÙW•ùÙ.C@OÖ–1< IHRG†¼?‡“²õû·xP’b%$©/_­ÏÆJ?—íÏ® Û&r+ó¼6f eÈÇóÞ$$)š˜Øâ$ éíe”ç®áîiMLìP–\”Zi3ÞéÌñ;oØ!cJ›Ã“’„MB|³ÝxA¿.cךßY²ð FÌfðÒ#‰HRLM>£%¤÷WRn°Üœ½kØÉ˜§úÓ¡¶ü1±ÑHÒÌΨikò($I"&&©K†ÏßMÆÖÙ|þ½î|J0â—q¿²89㼬_¶oÖ67læýÞiCŒ$1ì·3X“?'~ÄJʨ"kÓ ô%{ -øµãB÷W'’}«rbáø²Ñ<•(!õþ%‡óSÊ—ôïOLL Ñ’Ä3 ²0¦ÍcøËK)>÷ºµ˜CfñÕ˜%lZô1½ÏËswÞ›½“‚Ê“´ƒk™1aÛEz ›¥‘¼/ç¢qè c_šO–Ud,ædFJRtGú?1‡¬ZIªÓXùÝ‘$‰./aSæÝ¾YÆjÒSQiäŸsÛx9W¯åø™h&¬ÙƯö£¾óeä»x%#^œKšÉrŲ›ÕTV™î~ØÃ¢§¼ÌÀ?ûÆ÷r/ÿ†'Î÷¿n¼7kùW)Ô¥6‰Ù{§3L’¤¼5>…’ÚöªéƒÌ½Ý§‹Î)„£“ILhOLl Ïÿ–s>}kU™‡·#D7 zïÏ<#IHÒ@>˜ºƒ2Ëa~yý?$ÖŽkOÜN‰á/iÈÙ¼œÒûZã‘>›Ç% ):š„^ƒ³ÃŒ€ž“ë'ðTí»Òãÿcñá²+ø1î¥ùdXjõ€%…% ):‘~Í$ó*ž‡KmÏSµ¶g 1Ñí¾ÞqÙñ+{ÿt^8ßI<7z§Š73ò¹~H’Ä_®!»âÒJŸýôyÝCL÷‡¾ä0¥­i—X IêÄ‹cÖ‘G9F=_3îJÒ› 9[fŽ3¡K"íb£‰‹ÿ–µc}UÑÞ’$$©+¿²Œ„ËÚaWbß¾°³ç…È@ÞÊw$‰ý‡0i—|’z‹®R­˜®»À¦”Óú’øì4N¬À^FÇF#Ŷ§sï9yYa=Ãú‰¯Ö¦)Ñ{ä\Ž]8re«óI=$ÛÅg’„“@þ?‘ŠèÉÚó Ï]X‡ã6pòÐJÞ¿ÄnZL~¥éòe>Ÿ' zÁ…ÈÞÿcéâe¬Ÿù+߿ܱ„ê« &Ëyñþøš¶!&¦=]ú¼Ç†J›ìÚÔ¦žŠ dÏåÙ¡óÈA¦êÄ\F¼±’Ò«¾˜ÃïS³iG&®<¯²dÌeˆ$!ÅÄß½?_n3! '-åGž=/;1~-™×l²š)?6‡WÞü²«<£¯Ôc0YêêDÙ@E¹‹|gê6wï,Þ¹–ŠK—SÖ`ñ{Œéë¶òíãm𾞛,ì[3/¿ÞH©RÆ 7Ûdùb Û°aÃÆ¿œk¦^°„[ÿn (l Û°aÃÆ¿”_ýœ‰q:[Ö®â“ήXKÓYþÉ<2ôöií8w+¡ùÈÞ|tŸ-ÛE¾J84ùr‡Ná÷­:½–Ê _¤\ý›…gâyqŽn!ÏZO²uÝ’g~Hz×—™¾EǪ÷+yì& ¦ÏMúì!HÒË,WÔ|C{gŒá£Í±ÌÓéX;åcú4PžÿÄ™ Í›EpfƤöyŸ¹[u¬|§ˆ7¿Ù‚YÒŽþ­]òF–þü –Fòg­—­¬TÆNéLSJäÆÝyw¡nƒ³SX½ù4ÕûVSøÌ$®ßFŠn)¯¦þÌÜ̺Þke>¿~>|ív@ÑÎEì®VóÂJ)Û²=y;RË/[EÙó‡"I/°Å¯ÊÞÏ⩯’,$fÒ_v‡ruÊ7 ìöSNäP-(ÉgÁ;ËH˜³•”ÍòÛ«N|ôÁ .þrѾ?دç¿Ëtlû±Gv¯e[&dÌ}‡Ôžo1{‹Ž?Þ-ãÝo7ct_>‡ü­ÝÆ•Œê³á?ƒÒ4¶­^NÜ,º…/ágY˯۪(Û2…ƒ>­ùd­ŽÍ_0û·õd•áIÃ(xi6k·è˜?üþÜ~Cb\·ÌbÍr‘lêìHyöAÖ-Éç…u:t«ÇÑÕ7•I32•…!ôye"¿'ëØ–¼ˆ×îweí;O‘õÔTVnÑ¡£àù¡sÉ©ÛÒ”dlfñÔ´Ÿ£C·z$MÙÊèù‡‘ôåSV“œ¼•”ä¦ Cj,°ðÃÅ4új!nÝFòW!Œzoþy‡¬±,‡?Æ<ÈJzPÏX͹dd„3©4£C—²ùc¦ò“OÙbò÷ñËýxnäÿ>;ç²tµ7oªžë…˜•‹dõz½Á”åã,… ¶j¨Üþ%ü¤æ•©ËÙœœÂ6Ý÷D|ýÏÎ?ƒJ°`0^à ”e¬3&½žJM8‡N`C²ݦQnZÃ’ÕÇ.ãH¼2Ö²,~ÿ´?ÿ;‘½Z;TçšöØ"Þ}¬?£ï _­<ïÌ*]ó.þËÌ⪚±I–Iþú5œ¿×¡ûsÏÇnâõ© gòûø™SðKt:V};œöA÷‚Kì6Û‘+(ÊÑcp "ØY@¡T^Þ±(X1ÍpÕûf ÿ‚y§…êr/¢{Ä¢dºä|<¨ ^W«þ‹m’ÿýå'3سq5 stè<»a-¿nÎŒû§3üÁ‡øvÃaJµcá‘ txâ,ïþ±–-[¶2îßóÉ› 2U¥š¸‘¼y ]çéÐÍyeñZæî¬€³'Pu{… ¿ëÐé~áþ?~aÑþB µï§Ÿ°Ð9!²Òi~yuRÇö¬•ó½+)~i+6$“²m/û‘—D­õŽ„7}‘YÉ:tÉ«ÿF/ 6ðÁË+±ëþ kt:¾–„¿ã¥ üðd’“·²uëVÖ­˜Çë±Åx»{Q]áHT›W™›¬C—¼Šï^êˆwêŸäÆü—ÏVêÐéV3R±•õYz¶JÉ›‹X¿e3‡bè×;ÁRMòŸ<¥Æéñ'Ÿ.ÍÅr|í%vØ–ã—†© —¿Lû¸g˜£7Õ´½ÕHÁï_ðàø@~ÕéØ0 C[Cú–Í-Žä‹Í:t‹^Æz"™åÛ²jX›ößçEhP¢PŠè¾†åËmè6­æË¶óüÄC—6Fþĉ¼6_‡N·€'Ë÷±nÕŠ€ªMŸÒ'éq~9S„±¶§Œ~qŒÝÆe|Ø=…< ˆ«©×òefŸ«ÃˆhÜ.°›¦>H‹p”EË_©[æK,Qe‡=" ì°S«…¿‰ÔY TG en­²uëF~_ô1 ÿ&€)|>t7e½ˆ À‚ÅïA&Oz_dÀŒÑh½bËrr éÏÈÙ[ÉU)kæ8~§ð鋿UY d¦^­-ûÛ÷ÿAÿ¿OØjÕ€Þ•ÆÑoÔö¿?øæù$‚Ulùf*¿ï;u•Eçt£Ézu=#€( •C¸ãºÄh”/­K¹ì%__ü•(âõž4ïô¯¿ƒ]¥«ÍÑ{G±€mذaã_È5ÅXÿ&Ø{­é_O\÷oƒÂ7S6lذñ!yÍQF,|‹¶VK7¢K=ßý…ñïwÇ­â¯@£²á¾˜6–í"ИàÇÓ¦¹jü:ÓäD:ÙWû¨gKbûÒ- À ßP7Ü}w³õ¦Ô öÃY®í:Ò2#‡3Öš\… šÆ–9/Q»ûT_ZIN™Ìˆo‚å¢Ék»7©±O°wCKGzá¨öI4?Í«!ömÞŽP¢± "¸¡‹ œ³éi¤íóÁ-¢ :อ}%ÕMŸæÅ_\í2I;NpÐE“;/^ù…_¿€W¹¨àô!KIêy€Ø¸ÍÍ ªÊM`ÚÌ;]†0i{ç6Üø?8 ÝÂÔ7þÕ.–’ttkf‘ð+ïut¦Â,¢!ï½Î{ß®!«öAû˜W˜»àÚû¹ ¼øŽAADJc«|Qð¸„ôãªò$zƒÕœf‚#–ʬý£% C}pR[û$š§åM .èKb  Ò!%yü ÇŠÓ8½£ RàBcŸ0ó·°i‡.ʆø;ºu,-JL”[·²æ·ŽÄ´Ö¢!0¡MŽ¥^`½6ꖹƩ“rÙdÀÁO/‚­— £‹ÆÉ½‰níˆFDßO¿=§I«ó  }Eg;Ó& p ¢‘›!iÙä‚(¢P(@¿‘Y‹šÓ5±!.Ίš7V 8œfµÿ)ëK8¸dºûòUo7* 7ºN@÷6oE¨±ÓTߌÙx5çñϦ1rh{œ* µ2 "žËgå~^Gÿž °SßbkO®‘?,¶¬…׿FËZ™tòó%~ØPU_9èmì.jç[ƒ«%˜@% @,ï¼ ‚‚˜‡‡stÒ,Ÿ\ÏúÝ2¸;z½=¾xhBèÙ=©­Ï-; %vvû™3á,}îK _g”@Þ\ò:ÖU›É¯æôjä@ã…¯£޲õºvxŠÎt{ûg&~Ô ÷ õ@ƒ~Œš:žGâë¡1˜Ï§éÒik½C+»šÅ8V9™Í‹àþ6€½#õZDr:¬³eXÝÜyîíø^2~ß}לŠr.ø v‡Û¼9qkÍÉÆýüøÒ âÏíðë÷ ;‹ªïÒnÕ*NnúŸ~šÅò¥ïѳû댟ðo<Ó©&oRO¾X—‘*VžÀÁýcÍSs³È˜=¤ö™X:÷yŸMåÚš1î–ôó*27þÀðÓjw³sæ¯Lúl=e¤1ÿý!t$$©£V¥c.Yï.`ægñÄH±ÕlùSž’¤»½É𲏡%‚ \]ÈëÚ$Á„6.¥07Ó»;Ó6 ð£‰WšœšÓ3ÔÍcÜŒoèÝ"•¹&زë÷#<3ýUâÕª‹æê&*Ë÷²{£7Žê Òö%Ñ*Ф©«Š3™ûðHb ¢Ün¨F©–k7oçÏß" EÜ[¼  ÁÞ! úF ND%<€z5ퟥBeuÇYY·ŒN?fÕ¢÷h¥U# “̦Epÿ}€Æz-£ >™2vMÅða?pÀr9Û³vÌi1œWÜpP 5¶ØÁ‚ýÀpôgžl÷"”]~€Œé4}¨wjŒ³ÕrÅqQD ÇW±fÇ@kïþBý\ë¿!¬[ÑØ ›Œ#AøngÓâÎÄIv(DïDãã§H7ía窾$4œ<ˆŠj‰oÆt'MèëØavŠË.Ñ‹=¿eó¢7h&5æ„ÉÌ9¼6ã9`9à=ŸAðð$ÄÙ÷Z»°lÍLT¿Ë§ÿ‰ÅÅ^… HáϽIŒ”*£;PïØéÚ]çàÝ–„Ä$×ÚðaŽ8¸ÈX, ‡%¿DrÓ"Ê"° ûq4 ²#RŠ'üX*•\¤»„š>" üeT¯gÆ¢VôHj„ƒÜ{~S§Ì×¥TÍÛýð³|³òeó² Wqfç4† ~™ý%º}“©óçñJ¢D¿w¦±¯0ïa°‡juA?Æn/‚% :9ŸÇý9;‘©:øÓí{2dÌvdŠØöÓ›µ§%1bâfŠ+÷2î‹ùLþp}»Õ<ÿúÒª-5ýï3)ºæ4›‰|»å83žïÊä#_7QÏLæ¨!—•£ÞâíÏ—“v¥$ËV ‡yCcˆŽÝB—IÚŽ! IDATð2–³sÂCµ:¡=ýŸÀÊB6ÎÊØé{kN¢1ìb쨩¬ØSÆ>Ø£fwv—OØ]mA̞ǟšCÌùh,»RþG·®ðùæKC±ŠÈ|8yOvnˆ±¶/7Ê‹.šWʈ±oóv4€ 6ˆà( ó¥í[3¼ji÷J7 SÞ&©û'lÌ*¹¬=i6œfÎGcÙ±õcºõÈèå‡X÷EŸÚòßÏÓ£–qÆì€ƒ£žSGð@g IêÅè9X­µ‹mDBö|þ+Õè©„Ž/ó{ñ…6¥‹ÕŠÕjÅjµÔØNúÝLþnãÞÌC½kÚxÄüT*€¢å/Ó>.I’ˆÊâ|°TgÞ¨ñl]÷]û=ÉĆóóµ¿Ìä·?ðë7Ï’Ôï3ü<’Gûw¨-ÃL>X 9 yú©Ïøô)‰èvñ|µå$?<,×s0óŽ9¶î>ÿ6½ƒ½…CKGòù˜_Ø_pš_y‰ÉëÒ©A>_–º?¶ƒÒoØ$°aÆ ÿ®5è{qÀ÷JéÜèiÎ×óîÂ7ZF6lذq³›-ËŽ1f`,1íÚÑ!©ß_xÆ­ÕŠl½ÌôÎ*#_Xä¿.eò&òÀi2®5 ØYê…‡o0>Z Öséº~(“3Vùü‘V«µÖÑ&SU¾å³ÖðV·X$)–^ø” ç¢Îi{ØRÏ ?Ü­Ö¿Žêr&òPæ]6Pvj'{;ë”æ‘Vr†Ì­ ¼0Ÿ¥»H© %$ÀW œÕïv%NZÂ}k_F’…ËyZ°œÏÿ9aí¿5>ä–SQR,*±ÓÚ£Rœsbœ«þ¿ò)Wæ2ÿsVù¼Å+íD *ôXLFÌ€ÒNƒF£¬«“-ç&æVd¼0éIN ˆ#º]<݆êè1²'®WÐí2€Úÿü*ª‹Ë©VÀùv &âP:gdù¯² ¢ôö#à`*™JŹ¿+œq·(QeæS¬9ï²Óš–OA•³ç›Ã/˜ˆë‘‹9_f%°›ÍÉöø]"NþÍè:¤>ó’$¤¸G™º]¤ãঀ€ƒG:K¾F7I¢çÈed™Eì²H?UNe¥ƒÉ›À¦§É<[·ÆDьɒAfqÍ·íÝdÇJL=ulîÏ”öjE çú~š’ר^"ºÿ ?xK5f`ŠÃ|ÒYC~™³ÅtówrY+)J=À!ç$ÚžÛÑ"[±^Ákspú$ªK$ÚÙ‘›Ž)íqÈYÂ[u%>6ޏ¸Xbÿ;“¬Ìͬ=TPÏ‹ózÎ$Ë­v:EÑéÑCŒÔ…öï­¤¤¼’*“Ñ÷áAŸ1|>í41_=A( |ë"VŒf`ïŒß˜X1Ë·Á &*³³H nE“Hì/ìàÞAD8Mºp5[܂٨¯Ù “º‹—×½±É*_^ÈÖºzà‚qO¾ Bí¿7o|ŽäHÉ.–þ8—:×ŒßƒÞÆî‚{A' (”•œ:8Ÿ™3‹xuµÝÒá8WnféÞý¬ûì;Ò‚‡0+E‡nËhC=PZîÖaÅZ"Û?À“o>ǣç¢[ù%/<÷£'¯"E§C÷Ë’·ï"½ÈŽÎo¿@³f/³P§cÊÀ@‚Mc[r2)›~gâ³Z¾ž®C£QÞ¢*ÔâÕ8‘.Ѱå8P–Å1kú$7}³š²Ð§™¯Ó¡[ûÕk6°/«ÇñVËIÑ}HœJÓiò¥ncñÅG¿_×Îõ»{§|¶-ý~’DçIÉ0]Û«µ6Én‡.Äúš0[/Ч&ŠÌü¿rk­¶UÇØ¾î“ïL|û8âbcø|S­lšô”ÚÉ¶Þ ´5š9¿dC銧„³…uk-ØÂzSZ9 ®YMÅÒ‡‘ê /¦âˆs"÷ikl¬äÖþiÖº7§Çc÷ávÙòÕí/¹š‚µ‡7>‡Ó9ƒ•J½ª®£übÛ€V¼–HŒ´Šö›_ã>ÙŠU¡ÂÎѾvÁŒˆÚ®‚ÓÆòˆ$‘8d$+Ò³ÈI=Âì>``b,RL,ÏOÝCîUîÐ4U•±uÅL¼^L(&DmGw~Í@I¢ã3ÿcÅÑsÁ;'?CWi ŽŸ>F¼»'ê ÆD9 ˜°½§ÉDju™h‡ƒ½3®'Χ¬Y´ó—VIUqÙå¯ ¹`\6›·²ê·]|Ò+†h)–nƒžeÁI!í’hœÃñRüks­GtLú??âý´x^ìÖ­hÆl1b¨½öáœ]§ðñ'ð@*YW“×ò½l/ ÀÏ?Ååt¹ç–È"J/_¥’…{m'ö|Ë I"ñ©‘,=b¨“ô‘9?QÞ/š¶ÞîçO!º¢ñò÷ {{ÔÊ‹NˆGÆóPlqíâˆKèD¿×QÑ—!¿¬æ­¨jVl³ò悟Ir)cë¡uÌys î}G²T§C·êiNN[Êñr ⡯IMHaÛ¶·h¥ÿ“Ïþ;›¤Y5;ãç9ˆ ÃYvnüݾûøA§C·ñkšTdóæTLi¿r"ðm¦ý®C7ûö,]I†%‹™ÿ}å„mèt:¶lø“—cèð@+×K é…ÅöîC”Æ„¬Ò Q_î$ˆ»o÷÷Ýiý6|¶ä×ká©hóÜ/dlàôìñ˜¯½ÂÕªÑlÛ›?Ö]£Ã·õ Q7$D¹€B$!Gêнßç:€¨Go¤@.”£" ÉeÈsÙ¾u責 [IÈáô~ÞyÄ<¼½“QæòþîÄì=B»CÞü‘²©‹ö±ïd+ª´w£ÉÈŸh2à);Ìeÿ©ZŒø§s{¡sl’¤F¥éΊ’9¿£Ä±R{zã»0ÍD†NåÊGÇÓýY¾Ü´Ól?Z‰SkâlW}zæ!.6ÔqdRgæ­9E·ÊsûrºÓü7Q§Ek솾´óûÕxžz÷ÍI´ÿq6ýA—½1{UñäÃl>Ü€N˼°0)¥S—IZÉîü¶äKj9(_<Ù‰Qœ_b<á=)¿¯F…ž›8Ôð[EÛÎmHi8«ó?Bf¤ îWß±{•5Ÿ—Ë*kV¦£V{3JíÏÖ…ßÑ`IyÆÏϵJýŽB.G®Ë@«“^Z»u ÅËF¤gK±LI†§Ö,c÷zÐ7dÄOSøº¶ó¿.ercAõˆF2Du j5œÊ¿}†Ù;óμBÙþ°ÿ7r‚ZEzº ÆM{Ѱ.K5õ}"OŸãR‰64¬W¡}{_D‘u®½^>û°ˆ2ù«ç,eÛÅ@ÔJ=šÝy:H‡‡Lˆ­V¹–Ä{5la&2[S¾e%¢e²"‹J1±´¡´g3ö]{Ä— Ò°Ä„FÕJâ{öÛV­cÝF#ôè5­hÒË‹L¯Ñ j¬ÌJ ‰P³³½‡®5›á¹-Ë UéƒÑ­,©Üé;ÖwúHåÌÜ%x¹ŒÛ”*´“_è$ÝŽÀÖg?"Ï䯈(HYÙò_pÑd¶æ§shl$dxû9\õžE}u>·.Ò¹×4T Á¹ådö:ó‚¬{ü9ú$Õ¿ˆ‡pùôAº·›šK¶D=:ÎßK¢è²{ ¦Èpm<”zsù·ÿ±æçX¾ø®å^!Ð%é…%AÒë"æTï1Ÿ{<[A “6tZršN<`QƒÞ„ìÚBo^¬8Ú+«NŒq©Þ‡?¼ûZl]ÃéÍ[ ÔWãëI}èÔµ &ÜfA罜oâÂg^ÎçÓ·©¾Û8x«Óæd½-So +¼*n­[Á©mðœÖ¹u‡¯âèð(6t™Êº™]É”^Œ™ ×£W>Ósr´]’2dRÎKˆr‚ìuf¦Öf}Ù|f$h =¾‘•‹ÿ¡ÔwV<…ï/ySæÌOŒÝ{Š;!8‡¥·{6ý6 ’ˆV­eà¸Î´$‡¾÷L¯+ð›!ì]peåŽÔ©é\h6Š¢+K·pªÕåÞý w7­äØ–½øÍü O9z‚mGªðÑìjØ™ ï.„µ»®v¾k¨Xõ{ýÙ »çUDxoòZCªXè¹Q¾M-+ãdgŒƒÊøbÌî°sÆ–ÍWdŸ®=Ѻòh«Ž§O£¬dºˆH×ÿž‰î€¨E£×ƒJ‹6ÝWö³£ÅRDtšZ ó¨GJ¹¯ù´i™¬Ã™%JQÕ$ ãÇç8%›Àü:9h–cîY›VœåB÷¦$‡úÓºw–lï8q6ÉoÞ³æóáÄ ÝÌ‘Sv˜å< ¦K!ôüj¾Ÿ²ƒc9:ã²´ìZŽ8«œë‚¥D…âÖ‹Ïš”À@£Ëc”Ðëôˆ¢-@r'VŽcÖîHlªµeøøYt©¤(pÝÌ_¥"6è8ýF×ýQe áOï!@&7V-ãìŽÃxLþœ ϘU^—ñÛO1åá ÚwýSŽN¤…‰Ñ‹y¥Ó!Jº¬aõ®ï^Ƭ_O¬”¡µ¨Ë áö$¸Õ Š‡3–ÕQ'êñ*+t‚!ò &§™ÖêdvûÍptíÉS<*}ÉÿÎvAŸ³ûcLu·YÙ‰¶M*â`W’*ÆQ#¢ÙÆ·WòPÔgeÅ©^•Dj#éôèÅlùžKÔ#êõètô€üéæ}·”SÁqèdô¥­x,š#ÕlKcФ•§NíÔ±Ö’ìPšÊ¹³@éu`áE³§7ˆ‹ˆàbÂ%»ÄÎÚð`àŽ½ôÍsøF¹i2àµap`€|Àx[ǯðš EH¨TˆuFÈ×`“c{Rˆ·×à6À øÐ`Š©Yq™˜ ˆU¨[áQ©PÃež²Ò²å€L@dÈdrÀ“ ÔÚì{’Býð©éΰWXcD}Ç~ÝE¸c ¾Ü+£0V¡Õg;l£ýñ©âƲgßÎJ rdH29‚<‘xÀ+œÊÛã¬N$=ñ1%°ppÄ JcUÖ)h€(?|ª–¥· €>ƒ˜ÈÓ¬~VÇçÑ ÈJ“˜NJj5¼œ² úöÏÞNb½nôè^k@ÌLE¥´ÀL.•hØ1”ó1@¹¼‚Q@.Ïê+%FJ@–v7-’GsjÛZbŽ–ÄØdÖvX¿0ÊdÙéðcÛZŒØt™¤pëèÎGWãÛO+™˜€JnŠ¥•é‹M¥Ówf:@øF†,±¦ €.¸8+g+”˜RºÙXvx"8ºù(af6YF#àáÎݤµmO­rNÈҰů;ƒ†Ês>Yø7 ½¦°7é/ú­¹@¿lcs¤÷vÖ\(ÇŒ~5ÞÎ)£O%2è&>¤í™4ÌÅ—2dB_æ4ìÞ޼헃©S¦Ȍz´ZunÓ•SEª/áÀ½® «nšƒäT´‚*õ‹´}z-jI”ó¶çã¬(ýXÌ$>M†½•1xåÄéú,hp„kdE¼éu@ŸM“µZ…F4ÅÒ´"=f¬Æåçí„ú†’X«DþooGZ“'U“ÿæê†T-k‹­,ë]Ú­»Õ­Ä`™A•‘+R\«U£LјyÒñ»¾ŒøÊšcó6ãû0Èúι3¼dBöZ”7eg–|åuH 2ä2™dŒ±Iªì¾Ëˆ$²²;þ$’8àH93â¤Òô¼ˆ"û ‚LDJO"P굨d šÄ̧<ÍŽ’C&+>™dF(ñç¯Y[ˆ­ù-û—ÔÆLwŽ©“ƒQˆ" !©tèå2ˆÚΈa÷zù­ätg=³·hŠ6µ±e*5§óÎ=쌯ƒLWŸò&Ü0­Aß¹éݮ싲é'8©B÷Ü›.Àó”¼:U*sÓ,gÇQƒZ«GRšb"aîh‰•ƒ¼ðµ<—Nò#MÑ…2{~k’ˆ‘iДvzqHB.ËZdzež‰i2ññéàl6Õhäu€èxÐËù¤>U\AJ”#Wff§uMà‰R‡XÊ{@§¹ËÆÛ°3/8e<Š$0´î®YN-ô©DøŸ`ãÔG´ß7úÏÖiÁÔ %f”ñRb•@j*¼”jDÈÒãdrŒÍRŸ¯™1DV­D@›žDªZŽ…å é‘C÷”bF *c+ÌäUiØ!„«O€’iÄ=Õ`îd‡)ztš Ô KÌå`di…µ«„*ZMzF2©€ ¨U%ƒ˜Tz½Š„§*Ìœ¬1É>”$ª’9½}¥¦ ,€¤C«Q¡5²ÀL&ÇØÚÛR P‹h•zä #d¸P«u§Òe(ŒÒQi³ÖO1ØŸG5+0X2âê³µQT‘œò”§žåi,$ð$æag•æ™ð<¥µ cŒ”‰<p1·nQkÀbþ]æcÇ¥0m™·Ú–•vXšˆ`‚k¸ãè3SIÎaeoŽ QÌ¡Ÿ¶]±_õ®—Ãyšµ6>“`‚±é3 ¡Ž %¤ZyÜQ†ÊÈ3™€ÒÚ [—ÎæÛw‘Þá3ê”vÌídÊÑæ7ƒšä§iVX¼Y®Ë“m%Kß•D=YuRÖ:*J"’ CeÙˆq+Ñ¡VŽ#K ûÙ"¦¢Ór ).–àL%*ÀR&C.dß=kêF‹¾Kù~dƒtèoò¿ÛwÑ<Ëp’aCR˜c.=!IÎÏ;B¹¥ÕÛ,âÀWÊÆ|FW—,Ý1#95&XZ›æÒã$*0tßI7t£{g{z.šF['+KY¡zøSç$2Åû*uÉäቭ쿫F¯Ó¡–BI§A«Ó¡72ÇHˆJ“½'P«PKyœÍ’ˆôìúë2|2iŸLÊmcd2d2yVŒxAû*·4¢‚O²nÜ]ÚšMãìù§Ñ¨Ñ™c&S`lk…‘<›wD2’Q'yóÇK9æ5Ž3gÛæsˆRDT‹¨ <±™UKò«·7<æàÆ“$fhI—Ĭµ @•N†‰ãl}GRÈÊõåïõóèTjbö³¨Ï¯\·2Íþ®UF%¾Õc9Ò³yIB/(1MÜÇð¯ÏÓùðVØ3p~¶D%$M!Yocä\cîˆØ^ÁéæÎv€o&¦#“È:pY×z]Ö¿¥¼WeѨdž­2Ù³•{kÑvš ÖÆlê;‰íñ©èž³3Ën,Ú=ô:˜U|`Hm€ð¢P'®ªä—ž½á=ÀÂþ½ê·ùÎï÷/¥ˆ.„6 0ÀŠ;ªÒ~°{Öž#0À—‡çNqOÛ/Ë,ƒHÆ“‚#¢‰‹ !$!1Ë(¤M#14‚ØøhÂï©v£eŸîž~€_ö^$©®…ÆÂ©ƒÙ÷ãb¶™R¹½;i~>„&¸P·KaïqÏ'’k»/[ŒЬm’&! Ÿ '¤¦>Æ?*­eU*7»Êî-÷ˆ ¸ÌÛ±¤[V¥”x—Ûé6Ø”tÅ gš}CàÍûÜ÷ Ç{÷âj”£¤L†æÑZ}¹§%£q x„_P(Oã‰}J”Sª)ÕC6_È]iª6(AœŸ!‰ZN¯ã¯SÞÜö "(d§®|LíòyÚ(éɈ % 4š„¸`ü“u8U³ÁÂúW®Äàsì2AfÆØ:”õyfwÉÚ›qh²wùÚ¤|Ÿ–E`x( 93ãéÓÉÌP¡ÒèvÏÆÜe§yüÌ^™Dtàc’R¢ ò}@ŒuUšk6³j«þ¾Ü=~„Û´ †¥Š ãk˜4d !XàQÃÇë\ºãW0’0³ªOÛn1ݽÏ=ß®í¾@\µÒ8Q‹öƒnqvk ¾¹tòêº5(kçŽWo΋&ðòMîF?EQ¦1ÍZHd¦ßäú­hî¸@DI+lŒjóqÿn{ÈCÿ Îí½DJýŠoåDËÕæG÷‰Î¬J»A¹yû®¾uk9ຉ¿ŽGé+×#I³­MÍ<ÀþË<¾¿³AŽ88Øb¡O$80Àà+,Ÿ¿—O›P‘ ¿-Œê¼ ßlcTFB$~9·sWâ¨PÏ3Ës˜ÝgݨW½.æ€y5Z{ù{ç> ÄÿÜ..©ZP-ç„ÓHÏT¡V«Q½Õ¼–H»·†a}¶ã²h8¥áÊÓ D ©C Š&æq!‰©Y†ÏÇ»Øv¾mTÁÆ´¨dT „øáàŸŸ~ÂHÔV§çT7öËî° ü¹}å{¶FUÚ ûЫœ¼FHH(÷Ï\'P!Ç®¤]–ñ<×8?$*­ÒAg^å§_·qíæ}ü ¼àMTû:TxÖ›’ˆî™TŸÈƒ+»øuõqÂÂC ½{…ÆÆX»»`ýΦ'#!šÿ ¯Ü'L«!SªF×±5ñ;·ŸS×nó( ˆÀÝü<é8nŸ5ÁÙÙ‰W9äBp`>7ïrÃ/erØkÔ¨2’QS‚öß5G¼q•ëN”}úëM,OB Šˆ&.6„à„D2ô€6İb㢉zDDrÖÁ1ý)áAQ¤¦Fàûˆ˜Œº´î{Ó;¼Ÿ+—¢«YÏ2¥qð¸Ì¡½><ñ;ËU-2·ÿÜù‹(¢“›bçh†yÀ.¶!àÌUî)e8ôêÁ ËLân\çâ£p"ý#HÖèþãM$Šˆz0ÃÆË ³$Â""ytè·’³æ·±=öïqÕLJð4JÕóÂ<<¿79wæ2ar92QB¥":È+ú„5N¶\9‡qóJ€#-Ãytr?¯‡à‹Oh"¢Jƒ^Ìq€$¢O}B@P~réº?ò¾m( ¨Ó“ˆHB‹HF|>D§×¦MßœÞJàƒ\¾ø]ÝŠ(‰çÆ–ÅŒÿv>Ù§$MNÝÓ—H$\ÅêÓ·¸ïH@Ð6Îxw¤Ž;¨ýþæ›Î9™ hb =·†eGÂyìwïÛIÚñq9±qç¹pÁŸÇ÷s1 ;Ì2Žò}ç…\ÈÔfÏ5±Þ«Ùÿh(Cf{à2pf+Fåw†«wâQ[UÁ&ä;áìý0Âääåj”µûˆNÃ|¹và!¾þœÛ™Ôú•p6ªAãn×8½'’À[w¹v/*×§ve¬séarlœl^rèR¢ Œ"-õ ÄëêÒô‹ìX{ˆ€ÛܹzŸp2’y{ IDATó6´ôÌDu{».=!Êç0çýŒ±p(…EÎÊÒ3ÑhÒIÑU§ÝÀ;œÛ@€ïC.¿‰º¾'f¤ât “‡o'@í϶i ÙoO•¥Hòó!ðIÄŒx=&%õ Á¾ˆÎ¨Aû79»5ˆ@Ÿ‡\:}mýJ˜è£ 8»–eG‰ò;ËÕ;±d˜TÀI<9ÈÎsî4®YG‹‚ÚÀÓÌ7ð¶hoñ뀱ü~,ˆÔœ‹œ$¡O{BÀ3ÅÏŸ €H’õYkkÖ’$!fë’N‹ÆÖ&w¹xàgïàÿß°$$Ýó+ ÚÒ;æ,Û¼Ãõó#(2¹ %KèÑÝÚÊÆó„>Â7$uR:‰)Î%ôz-:—tuÙÅú~øáÀS(­mñªÕ•§‡¶ Ú1+£Š>ŒC g0kÉÂÅüì•úíâØÉßpÙ9Šá߬æÜ“°rÁµNYd¡øß¼ÌÅ«·ˆRšc£Ó‘|ŸëQQ^ºÊÝÈ(’+PO âê•;Ü çÞ™ ø©µˆˆèõYSAn‰ið5.FE—žÏª¬Í ),œèøh"C©‚ä3ëóÙW d>XÃ^[qþy¥áNBLg×ñç±¢âÊÝd4¦åq”ƒ˜éÃyãè='˜ÏÖæâÌüœ¿‚ÌÓk\Œ %ÑÔ•2•lQEEpñ1µ¨XÞc@¢"·íáèÉgí9ÉÉÇØ¿{(•Ñ©Sˆ ‰Gƒ„:%‰§QÉèI‹#>>=ß{˜ÿ¯Ãl€ðáUÑ»Â«Ê …×%¼òC¿–^UFÊ].¯3:oÊçü¢{…œe ˆ6D`€oTêµsû0é0·nȷ뿤, ¦Çà½ÿœJÂBqå«3<ªÕž^dÍ_ ‹×¼î"Q¸2±ËoT;‘ãÑÈ;³tKõÂmìÉ*$9~—ùsòy4ê ìZŽbηө7o+g¬&^lϼíõQȳÌ^qWV1{C(ÖfðÛŒ‡tŸµŒO{N"jÚo)A}5°:ò›kI·QâX:+O¯Kû¹Ôš>“¥‡–“,}¢õ IØU5ãܜќÐK(lKÑ´ëªÄøaWo2@Ÿ‰ÂÅ„ä[GY:ùZuާ²¨e%/ý“ùÑiˆ:‘¿ì¢cž6ª“ypt «%`¥¼ÎÒ%‰ :Š&Q1ü¾ ?kiÀà9­©é,µ^kâd«|ž7Ñ{ 3Öai ¿Ï¸ÃgÓ×ð…û3«ÄÊÁ‰Ò À—ÊUɰr|~G¨Æo?­<‡=ç_ xÒÆlžÏ¼Ó™²GÀÔª!ß®ÿWÒyìXŽju²¢«LÜ[S?4†• û³:ô›ÚºN tšE홳X~p%‰ÒÇ,Ø^P¥Ï2®õÏä=&Ø9÷`ñÄÒ€Žºmzã=fc´þb=ªÈQÒ—ú·þ`íœA„ˆÍø~YsJš¢ËoTýfó¤ 3úœßÿ®òV|üR›'ncLï<¼½®'5ÐQfv³'e¤Üžj­¿fÄà˜ð›¸SlÚ´™z=MFþB3;d¡»ùù§=ÄÆ§QeÔfæ´¶Dä–¥©Uß:+ÊW›BØÙ¿·æÎ5ÛÒÔZfGcø^º‡IëšÔ­è‚p¥Ûš…<¾˜¹ÇÓÑ ÕóψÜ'è¦6Δ-cýÖé°'aãeÄÉY£8¬Q–(ËÇ#Ò§L'wüñ[i˜ˆWY¥T0jè'¤ž½ƒm÷öÔq±ËtÓùÀ¨žváì_¶ˆí èÑkÝðÇ:µžÃfaƒ¿ÄV…€ÞÒ‰ê½gÓÝËœR=ÂX4u ›Œ4¶:v0•·(pœG52}·ƒ‡æÍéã2ž_ÿw€4­„^ªÌ˜¿†eGÙ (Ìð¨`•5òTpsÃ~çÆŒ3­-Íú~C³.Ep¢?ƒ‹»X½ê²Ò|6æ;Zy#£k†o`Ì’ÅlKÖ"êôtZ¾›ö [äÁã8¬T€±5>ûŽm¹u*šRJ‹,ºLkóݱÌ[p˜#eÊÓï#w,_£ÓÄÌ8n\Ϧ‰X*®³leƒG¢FâeÖ­ÛOÐS5.%,aLgOw73kÕm”Æ+g\¢Ýô ê¿„«]Ç2^n[ÅÞÌiï8бcOÖ-ÏÀÕ%iÕÿZ ‹W¦{}Ÿ£´t¢|i{ʺզ×ÈdæÏÈ™' åãR¥1Ò‰«K×±lönŒU‘ø™}‰ì?6ÆÚÁ™R*cD\iߨ‚ß×,eò&¨Ðª<ŽªQCš7uó;®ßìJc)žáÖÒQj|ñ==›—/4 ÿK:‰µ3mÆÎ§g»\9€ož´ë9„¯jdyUu¡§X¾æ1©ö®¸@„´ŠñÝ6Òÿ—AÌ›‚ŽêŒýgžÚLnݽ€M«!Yk»ceê5éÄòIøVîEÇCéêeŒ> ó*6øž[Ç‚3":un½ÿ`xúQÌZþ‡ì}BT2Ö^ ŽÏÉA½¥cE>ïÿ ^FÉì˜;†]’ˆç§#ø¦w}óÌçŒ{[˜õç ŒŒ%VμD›©»Òÿ®vû– 2+\+ôb~“°-]‘ê5lž¯SbDÝSQ–)ÕªòÓ¯ÌMT!êá³?¶ÓÚNDV†ÚuU8*ckL¬ìˆ\0š2îÍ»3ô‹ ¸™V gÄ þXû=kŸ–åëŸfÒÒÕ Ò¨VËûlÝS’âñ>åCí™ã^Dú™ÛcffFÈâQ|#¨Øºúxà™JòžuìØ°Q«¦ù„ut¬$Géõ;•†LdöL“.ü¾Ñ ©Ýs:Þ=‡óQIª6èÇ”¦V@Kê—Ê¥‡5(ý2ç¤ÝZÇô5¾˜šJ,Ÿ~OfþCŸÁ+ˆš0ŒoZQ¾zGÆÎî„;)˜¾žßa«äB»ßÒ©yÙܼ¨°§BEcŒ%÷>Ë(Ûs“÷aãðÿ›X¤4,œËQµ¶yÖï3‘9(I»q–å“O¢QgàÐf,SµÅÉg'?®¼Œ Y3÷"-§ìbDß?¸úåD&í6¡„KOM, R:&–„/Í7r–=Ú£–hyxñfíëQ×Ý9WôoÞ6<ãúzåÔ¹"[‡1Bñüª@fƒGÝÈœ-r;_Œ¨d¾Ÿ?¦^É:Ì#ɰ´«ÎçCR±œ5Šú¶ .ŽèŒÊÑrÌ$/üÍÝE¦ GUº'K'ØãQÑây¶¹¬&ƒ5¦ç¬‰\•I¤¨ôXµnŠgµø¢G:‹â€R@mÛ„‘CêRÊÝ;s㬣°£‚‡¥Î–VSçsuÐ ~Ø+adlÆg3ÖÓÃCŽÜÚšõ3hèñ¬ýf8{V¡²Ü3¡0«¡)íæï§¾ü5Ó›³;ÐÍýKf>г=îu?¦…£Ú{ò4b1 †ì¤\£º¸»×ÄOêÎì„÷ŒuÌÝO¥ŸÒ©¢3¦Æ=Œ“òéÑm?Où‰'£fhÝܧ Å'ר¼a/>Uø\"FQŠ)µ«ùóŸÌɽ¯Š¼‘„mecÎÌÅQ½ˆ‘½Ÿ ›B S‚Žâ™€gûþ ëRs2¹¹Õ·±K8TƾPYoæÞ‘/?ÛÌÿ¦¯â£¯‡ÒØ|S†ï¢d¥ò”vkIgkÒ3±sïrNíÖéÚÅ?6ÃRáMyd”êÊôû{>óúOgÊ䯨ÔÊ/ß5+XéLpvsÆÞ*{Œå¶¸»‹(K~Ì7-¿aêœó¨õ^ºÐÝÃ2¬+·§cËX1íWÇÌ¡gÕì!3é”3rk9•éÑâó6,bS¬H¥O>¡CEÌŒ*zJ(ÁÔS[9Q®¬++p- ö%ôhM,²¹Ã»ò h_ÃË×1EëI½ËÁ_bi¿ôsô÷®pñŠ ŸL¨OÈ‘³„[xЪ[—AüÿŸ ÔÍMBHtpÂ.6ú¹ñ_mi‰Í¬y˜ˆ¨8Ò$3ÌüÎð‹º.ó»Ö£„Ù»Çs,¼+OýûUüIÉ’%‘Ëåïm>ƒ„63’߆i{éY-wDŽŒý”ÐÁ{VMù†ÚßË:o­›ð–zoÑÊüÂ[ "’ß=ÚE¡C½%ù?{õZûªoæy/I1 ß“›YºKOçá°Ôì?ÆSÇútüåÿÆÏ[F$.ЛðTSêTÂ}ïr³ÂÌjæôÎ| ¥Gã½eËùŽƒ+äCÓûÛüiÍÿ]o§s}Û *ñº{®Âëzö$÷›·Û›ç‹û1nšÖ=zÓ©¢åÛwNnå䕽FÉ’.$&&`¤0ÂÈÈèe›¸ IBvºLý!Ô¿¬@LLÌ]p +Ö>VC°`À€ÂÓ½Žã7ß2¯ŠŠ^~I’ô² -ä–Óy·—9ïÿ-("¸ ;‚ ÑÀ`€E%‡„ÿð o·ÁÌ-Ç„"£óe$¡3®Oµ’å)cò¦_Ó’)))Qª/õ튒΢Ñå„"Ꮌe úí»Ôùîu 2á-yáß¡¯ 2B‘Í`¡HõÁ÷ÁÕùÓõv+•¬©áµúL(’ÞÞy„÷6bE=ê²÷6‹ž‹êÈëÙ}†€xmF,ª½™¢('ÓÛ¬ +"ނÄתS(*Þ#{¿·'ϾÙX ²d”%FÓÄ¥PA[À‹P´–£h[MñÚßË:FÑê&ÿ¾Ì^±.ÊÞ›õ:”oÔÎ×ÿ¦ðòïÿº.öí“™`ïìJåIí|‚`ª@ЍÕÀ[Å¿5Çó”‘D".o`· ™9.?gâ+¿¯Çz9º1¢i…hþåõíuË ïªC¼½Fù6ëšPà¡öæùá©Æ”פf9ËwëáßáŰ`@1FaQ¿oåø-,Xx 5éNc©ÀÿÉ_yÏëÎÏü:Žà\e¤üI68‚ 0ÀÞV ¤¤¤|pdëEI”HMKEߣäTèй¨G“œ‚æöœFöUh?R†&9…Ã~µ°»€N§CÅ÷Ï;Ž/dj™ {~ ¾¸Œ‘J­F§Õ«1­V‹N¯+v¼#J"¢T|y:55µØð×›Œ·Z£F§{Ÿã-aT±+£g}…\УJÏ -EýÎ{A& õ¤§¥¡V(>¸þ¶—,n¼ólO]Üô&A–µ†§¤¦ dï¹ÜùtNE´o£×HN|ücit©é¤²8P¼¥æ;2é÷Ï‘å0^é4*T©)¤üì+x}½’}³ä‡(ªÉ(¢ý… 3¡ò'i’I1lX ("Ç´JwZz´êR2 =ò¾`p`€[u²à‡¯:èôÒûÂBõ¼óÙà²ôäPPóìâ_üó oè6D`€=´:í¿tιè E$IB§Õ½wã°.Uû?Ö¢Qxìÿ*ïwˆzd Õj‹×éuˆ’XìÆH¯×ƒD±£K”Äìå¦xòtqã¯7ï÷·ºT4ïÁ(*B¯ê>ÌuNÊÞÙWÞ)nz“ HHètº÷îÚ„·ÿmZ‚A)2àÀN§EQÌhÒ&ð¾ühZÆ0轎cè…÷ƒØ 0 ¢ çï«îï}Ço¾NßB¾¯ÊõºŽUIz9õtöîýùžÑ–32øMÁ¯Š68 0ÀÞ’„½ýG¶^¯'Z£ÆÖÖÖ0†¼´:-O5‰( ,--‹]ééédª2‹Ýi´Zâã‹]ªLU±äéÔ´Tììì>Èù‘‘‘AzFÆ»V¨T*llm0R}ô§§§KÞIMK-–zÓ³þzÿ` 0À (¾HMKý?Õ^ƒØ 0 ˜áuœ¿Â«Þâø-Ìé+¼ò^à×§9ïAòìCæ¹Þç¥õùor~(ûa¡Ž`)G9hÊ/ØÚ 0àÍ!!}pÀÏ"Þ>”^’0ÜXTlø]4h /Ô0©XFþûóûuyG,–ýeàé÷7?(²ñþo¤ÀÛðÆË”¾+íoþ{ɰ›{ûñ–ÿ7š¤AË1àÿÒÎÉÀ}÷v§xÑÐb˜ÿ Ǿ 0ÀŠ„üäüÍï]ŽgYNßçÙïŸÿåø €,ÇïdBž²yÞ¿Îß«êÈûžéËAv»s½ÏÑyþ™ë7¯ìk 0ÀþóoaO¥÷RÑØî¥lÉ"ˆ¡Ü~†û©oL—@¼ÏsøLhÒù¾LäÒõqaôHïL·ô†umŸHïÐ[E>6Eæ•줉/¥" Vz¯=R´}ðþ\`R1ªëÕr@*Vcû&Ð’zÍÛî¡ú€v'‚.ï}¿1dÐ@m9Kxºðæü-¥óØç<;ú¡ù¯ÛžäÍê5WHú?¤].V˜\W|™-Ûïå3ƯÁ#i7Y½ò"‰o¢Ó½Ãúðê7ïºn‹ˆÅ?Šz _Ù“Ò‡T\.ÁüÈLbîîeÁ˜ÑŒž6™±ó¦3zÔ þ:öI(cñÿ#„´›üµæOÿŹ,½ç½Þo}gŸåš_\Ž9$ ¤ßfú‹Dkôÿ©ìÔÁì[·€aƒ²ôˆ/ o‘»Y ™‡—ÏrìR:;ÿk0D`€E&Ÿoõ[`Äo~Žbr;ó¥%oÔð[´é¹Úm¹Î œ;ê÷E±\NÛ¼QÁy"‚%é ¢ )¡ 0ÀŠ·3hÆd¦Ôê7Ÿ _¤˜MŒ¼ÇÛF4þÔ ãì³Âi\ßËꕨXÖÙó3ÄQø#†£šãP¨LJâþá­¬ßr‰§H8µêÏÈ/ÛPÖ"‹K~fÛý ’hÍ”µýð’ËrȾö-B«± “°S2éÏ«ØWkÉ—ý†Ð¢LV8äŽËæ”ë˜Îù… Ùþ(ŒÚ0m]?<.²xâZ|$¥…ÍG-¤—GögâCyè{øRöÜÙÿ;ëw^'AÔãÒaãº4ÂÉ4ŽS³²+<•^DþÉVå™o[3|¸xJGÓ/ªcŠ–àS[Ù°î ~Ô¡ïä´«êPÈF0Œ½DÐrTSlr<“CÙ¿e5O<†2¬µ[ž“ÄÏÆ(ŽùâõUJ™+Ô×X2j%%9&Võµd(•…Üg¿´„]ØÍú•»ñ•դǸt¬íŒ©œ_´¾¡$Kmùa]<l<ƒ£’[§nLŸß;ô$G\dí¤å\W¸Óâó>ôïê… *l[Ãæƒ £ #ö§‘‹%râ9ŸNÝ®}¨ëq>s1Í›åë3èúM œåùô±¨!)ÊŸ›÷D:tòDù_6)#„‹õtÜ(—Üû°IØÕü³êþ‚„.Ó†Æý†Ò£]el X°¤|u‘Äsü5u%7hÕ­/ý:{æÐÅR¸¼ã>ŽMªSÞÅ!ö £gì'C«Ã³÷ÏLl•þZ•JèÍÃÜÐ1â4¿Mú“›òŠ´ÿº½>©€RŠàØòu¸DŠNOù¯g1¥}Œ³A’÷6Τõ wÜYLø ?A©]ÚŽœE×rZ¢îbãÏ;ðQÈ+¶eDß/i\Ú$9Íåþ4ÞG™ bcÿÙœ”YàRþK¦Lk‰u2>¯îÃѰ7&­ÊŽÓXÑ­|žßj‰9˦y[¸+Iè5æTm÷½ú4£”Ƈ ¿oäÄ\:|Ï„nuq0Ë=?¢ÏcÒ?A(2»²TíÜ›A.þüùãîzµ5:õa@jDlYÅ–“w‰ED›éÌgS§ðE-ÆÍ`ª Œ;1{YW\Ѫðן8/w¢rÝž|;ª>æêa/÷D²ï÷`šnÎ3ñ£º½š‹ÎbUÆ‹¶ý ›W:>Ƕ°zãYbd.´î?”¯ZWÄ"G=±Ç¦±À§)ãGµ£”Q[‡Îà˜¨ÀÚ¾+Ó~ŒýK+J<·÷naã.oâ‘(Ùv(cº7§”Ù³qŠåÈŸ¨5 1NJü3øGŽK2d&6”û⦷,ñ¼¾˜€;ø‡˜Ó°òÐ3¬Ø¸ïà,½I®P"ÖÀŸ½ŒYýÃ*n¤©ÕùÛ8êä\ëD5 1‘„«Êói߆XÈÔì?N\HIbì Rh’¯òǬMÜMU!’$Çܶ6ýç§Ž©a{øJ¨Ã¸t9ƒÖŸf°à/¡SÚ`ñø k™Ñohƒ|ôg<’ÉÝãw‘—qÇ«’ròßW‰OÏñóä¿x„c+Zú‘¯Ü5DûçïÅ»x=ÿjvîC¯®õqz-ÅUOFÄy63§ßàú˜å«D'àwß[ó²Ôö,ñbŸ¥‰àÊ¥öh€ò÷|\JCbÐEv^´¡w¿Ú˜æšƒiøì:Œo„5ͺ~MÕJŽ˜½‰Ò.&pã*×tX™<%8ÕšVMÜ üü/Áà6À (xmço^Çm~Ï^áøÍÏé›Óá[P:éBéÍ£^½TV)¯—Y’^j“$åI½ÏAzqOpÎ;‚ŸyqŸmIòÞ lp`€Cm£ï˜û´˜;Šš’€u¹¬-¦˜ÅÅ¿g1ã°HÓÎ#h’½RëƒO°tÍŸlXé?yP1ûyê¥_øvõ‚ôÝØ8ªyáßL#^-P¶ëz†sfí%Ϋ„Æj ×,ªÒe؈—V0}S¶ô©‹R.#êð4Fm|ˆÞ±?ÍôÉÞļ}_͘Hy™5.%^îž'àY·ê ¿rݶ!݇}…öÜr¦l¨ÆŽ~µüÏÕpcjkH‰¿Í‰9pgí(j*!5AƒRiB W5O}-©úÅxUæØÒcœ(Y–žn'¹íÖ/ÛXbižÈéµk9Ñb!m_ÈWQ•È­­S™¼/ª-¿¡t ïà *ö™ÃÇOv²îÔiœ:SÛéeWCìñYŒZw‡4ë>4Ëi“HŽäÌúoÙê_ÚÊx´¸aœÇ°¢¾³©«öpùikVt«+IœY¼ã.ß0¢„žô[û˜õ«7Ç5ÈåäÈ;˵G÷(Ûkíã÷±ñü \ÊôÁÃo>ÞVué:ì+tçW0uC¶÷¯KàŽ±ø6œÊ誙øŸøv¿~] IDAT‡)Gªòg =7On@Öe6ß›xsÐç ;ý<é!ýÃÕ$‘gÒñÑVî»H¹ŸÀ™ ÜtïÃÀ/¬‰;¾‚q[«²£G¥7ÖÞr·¹.€—·Ë+Q'øsv×-*›B/Ñ3×¼Y{Ô)›òøN2VѪCe,2”ªb̵¿ÆrÕµ'}>·Çäþ~Æ-9ÃÚï[a›£ÏÓcopxã&ä]g2ÝΗ·N²ò’5£V§]7+j§êP˜ÙñäÀÖ«žpxÉutÍ{0ÈÕŽíÌZ|†MÓZaˆÚ ®®î˺€J”*ƒ–·qKH‰m<–quT<ºÉ…ù«ðZ5”*I~ìÛ0ŸŸÏXÑ}Ðh»aîE—‘Ýq ÙËìuGqÿ)^Vïè\ÕFs'Äœú]úPÉÙA’@4§Œ­Œøs?1vIm玡šVOjbïìæBMg”<­Ð§Š­ ¹³rŒs©"Ñý#9ðýFRëve€»Æò[ü}ÔÙȦT Ë|e—Äí3« /?å½CìßK½o&SÕ*ˆÓ×u$Ç]‰"¡¦DåèÕGϲ©$$ËЇlgÜÊ êvìEg Œ÷øgüÍü“ ®‘ܺmJÏçC¯!åi~L°”g (󃾨e’/G÷á¨éçt¬ïúÚÎM1=šË[f2ý –†GÒô™9Ų5+Ùò  ?Ìs§Ò39py)ß­>‰¿¦ F4ÅA¸¿ea-f1¶âSîœÙÜ3•XÜJƵùë¾-½¦M¢Œq ÊØƒ¨[™…‘¬àyUì.`ÈàIXj»Æ ïØ’ý²DîßK¡»¼€¶É@)0RµAû-úL£4RäáÑíò 5q!IH¦µùò›¦”HÛ²®˜Ö€<:Éɹ+¹öó§džû£®³ù^y™ý¾ÙéáB¯Ê–hý°xõzöÖe~Ý*”„¨ ûæ 5'¤ŽB†•Û‹Ã|•DZ¢–jõáö©˜uŸÍ÷œg÷ƒÃì¯8‚î¦w·®BËÞñ,ùˆ=s7p¤Ì÷t¬jƒîû”f«a쿸¦ß2®N&±á·¸´p=U¶GƒÙç˜è•Á½Ó—ytý:\šá(±¶¥_ýïVŸÀ7ós6 ËZMnOHó™ŒõLàþé=Ì:éÉ/mJæ±h {ìãV…nôþÌS£xN­_Åé?ñQ®¥XGZlÉñåé<ïS\SôX”r§TÚCÖÎÛEH¹ú ßû°2~y€ljta„M2™ ]z"×öÿHhJÒ ¤¥V¤Ë¬¸¤è±,厉œ¿–Šcí|Ò¤¦*#J•·&ä@n{ eHm3bŽ®dÜŽjlëV†»;æßn&ß¹†péò~ó®Ìe®½¤‡99w§‘Kn÷OÒ¹…ŒYs™Çò/© iIóÞÈð%1|6s<•DcœÊŠÄß¿Êí‡é49ÊIY{é ÇìèRµ1‡'³ìf<Á~Édøï‹oý)Œ¬¦!ðø&&¬ÌšNerwJ|0OE*~1桜\yš“öNtíè‰ÑULXuˆÛÉXÛ¯N€tg/ŽbL-‘ôÔ®_Ë͆“¨£ 娯9Ì;®ä“ž#iȪо›5uÓu(LíˆÚ?Œõ™O8´ø*úV_3¤”)²»;˜µø,Om™}4›SŒ,qô¬Hûº%#ƒ¹˜ žµGÁ­HWºOjƒƒ”µÎ(”v¸êü‘ƒ4®…­‹¯“Ü÷ëf…ÑyV{ìÞà;¹j¶²ÀL©B²®C¯Þ2¬Iÿ”û­Ÿ¯áyšêÃϳjÍ26Þñ`ü¬‘T>ÈÍ—öU‹hrèFc[GMBôMÎý¸ Ÿuƒ1}’HFF%ºNÿ˜’)z,K•ÇA®æÖúÃh[· Ai»Bõ,™.–>vëB‚€\¡@ijž[dÉ ûÂÇãÍÇJ@RÇâë/.Û_ØSð{¤Æ¶z'zwð| ]ÇœR^ ÿ{çEÙµñßÌ–$»é½ ¡$„^BïÒ©JQAi‚(J‘Ž DéH/Ò{ï5¤’žÝùþØM% ( |ïÜו‹evvæéç<ç~Î9´öåä¡D•XàЧŒ, M9¨àŸC!€(P à9â©òý>†üý3â÷q޾ő¾ËL1ß?±Nrae!·>*»@"—jpzí.§WÙRòÝPêVòBëS‡Ÿ¾ºÅ½^Uðªø6c«zàf9m¹ýë÷ÄdBm&ñwb¸wÉ•žU¨ì_Žú:=6‘Râ—²î“âÞŽ¾Ýq±¸ÅþPÔz"ZÙÜbï‹û8š*r¸zò>©kЦe9|R²gîMîßÏ׫Ìžï£}ˆ#ZÀ±f_>S¯gÚêr1'…‹;¿ç”Ï{ô÷¾ËÅ+âØ½àn8Ö¡sÏÚx )ÛŽáo›xð-–óéYD_ŠÃsXMjØ7øvR™$€Ó ?Ob|uZ¿]Žé 88ÿ)ΰû=%û…R¯š/Z¿º,AÂ[Zv|@ÃÕ©®’(©¾À®ç‰±æòÁ*4_Ržƒ†è¤=Ü ?Îáð4Ž5iÔ$çÊ Y?=‰Ù8þ½UÖ¡¶§58Öäç¹×Hî^þ©=¿ ×YF,vlK$ßI!>ÖD¥F!„àKòýûì‹LJ ËŽ”ª\‡¦•,÷‡±u£Uæ×¡®Ÿ-B$J×?Kd!Ø@Zb<ÑWªðêÇÁãNbøÎ ãA½†;`yÖÂ/kÑi| ©Ó·àدµ}À›X¾C&àˆDÄ–IlrxŸ!­ï°åìß A( ®ü6×ðÀM >¢¶üFLTp*IÓ×Þâ®tŒ`"!<UH=ê× Á¦V®ïÜ$Ë`DæÀ²„lW’šPÁ®àغé*5GÏ¡weÇD—¢ë÷ó„ ˆX!}è>û|‘bíÞ~·_FG4¿œÅÊý×HW‰]™6¡+ÁÖϡܙDÛÀÒK9£±a×­WèÓÄ»—÷sðb&cIÞœ6‰îÕl9<{ 7¯'òf›Ÿ¨8p1Ãä™ôÿî•'ŸæŒûñíÀäLbOlbñoö ˜ù*ž¤q}Û~.Þq£Í;¥9<ßÿ~†D“?=¦M¥Ðmæü` H7‡…¿×å“^ Ša嘶l½¬ÁÉ«)£¾J%ñeÊV(#Kz<+Ò4¤*VeæÑI"Ö,äbXŒÇªÐì›òTÈQ‘¸›{×cƒË¡ñoÄ€·Ò¸÷}**YBnï<@åÑ£y·Žk¡-`"3ã×ö9ãÛ0‚«'«Ò|AyÊeKÜøéÉ7"áÕ&tí¤E¯Ó¢¦ w=ös7+“ áG×øPþ= bÆ;Œ©áŽ›ÒÜÕDíÜ@4oѤ~7JêÑc cÏ9Îß4¿±uH7>~GÍ'ßk-TÈyv-)G“]U¨N®ÒUŽï¿…ÜÜžk[VñûyG:îL ê1º§OGÞî᎛ À5ö–Á ›˜<é:-玤®d¬qòªD£àÊy²;ñÐvljÖ o‡ÖªxZ®Ýæ»ï¼©¾´µœÕHv5X±ð í“9¼ºÍ6…P]ö‚Œ;l¸p’óï“_Wóô°ËÜIFö¶)4úm«ôfü@Ÿ-µD½1Àµ³—hùÅ×t/›¯ŸÜŠ¿OšäHíºÁ "àüd'¦"ãŠpzsîÖ¦O‡,J¨UØômil«A L€úÛV_'«m‰Â2áõZQ_g‹N"Íÿ,ç )dJ`܉ÑïÀ¸o­r} ÊôbX'îV@–#o˜…ƇºíûÒW>M’Ñ’[ïN`w¸É‘)¡t™@ò”M8¨O¨7PúÖCï…`dÙd$°Á€Á(!å.¦Ë,ýdª6½y­^‰üˆÊ5˜F5jðV•I¸²ÏVÞD{'ÞíéÔ°<§¿H|ÝQ|ðv;J[‡±jÂ׬=q‹Ciú/šE7·ãLýFE çÌßÜ‚IS)~+ÃßœËuQçMÕï3±G)®n]ÈÔ™ÛˆQyÑü‘¼ßQǦ_b±Nû­ÇnyO¦ýg¿òN¨1‚%‡±Þ £±¶¡õ¨/qÛ:±ßw´óÍ"úÔNvnJ§Á¸VÄ/ÿ™3bU^³^bqòͼ'Ø5®;ó/×cÈ¢A8˜2¸°bÃWFb¥ÒSªÆëŒù´5÷öìæ†!ˆ×Û”C“s…_–ÝÀ§^3űxøT¶ÞLÀhJ%έBÊ)–-8¶<{¦ÍãÌy+:÷YK‹!s\«0›.zV§{¯ÄcPK’Y¯ðjKß®®¸é î«dD»·[ͼ.f&Z±ñb²ÑáZ¢*ƒ+SP½¬Ø5uã?brR(_ÌD¥bBž˜r"Yûå|N]´¢sß´è5”Š7¾â³ 1hgB_̈7½°±3rqåX¶Ì½CD|ý¾þ’>j‹Sƒ½—±]¾æ""6öµ¹t 5U×ín²î—X¤Äì?{•ëw$^÷3ï5r#}ÏD,8ƒÁ(¡²®É˜¥ã©!Ýdý̹¾jCçwªÒqÈzWÒ¹°z%ëwlàöÁÍüº« #šg±c÷1nŤa4–cèw3h«ßǤo¢ñx¸†-Nôœ8 Õ¼î¬Ê©Îû¿¤äÃì¿*ãl§A+š¸òÇ|ÎÄ•¤A‡¶”ÖDZ}ô’;ô¡]m_ôâ“t&…)~Z(° ¼HxùûäÎBñž½#‚ÿ„ô-Jô £¹ÿÜÖçzñ%„ ’º‰.&,tÞ#Šz+$° ¼`¸Ê®µgX³¦# µÞ™7ç­¢«¯ ¢[Ÿ@Êø^#2*Ÿˆ¬ìp ðÇÃ.Aο®²ó¤T9l…Œ?­Ê]Þ¦<œKY®8{8b4ê°R©ÌF ï B®ì&J’ñ´Î¥¨PÆk“ùÀQZÊq6ý°£«1ÏE‰†Ýxä»T±î_`—« m¼ìIIÓc¥1“Gøré"dðÒ{XÂTKopÞ¦c€¬ûD<ˆáZ…¦ @$¿ 78“ãK)'lmÑ’Æ“ÞäË?*1â÷ 4ÓÍá BçH9ÿ‹œŽ“€ ÙH:s(?;?ãÏ‘–œr2·Ï]CJÍ1{* uò§BY/lr8+™‹;æ±Ûý>n¤åÂÎ \ΰrˆ¿}‹ÛîåɶüVÔ9ã]Ö'M,2t[<˜9_¡9jì«3àëÉHL³¡0DzIoÿ©÷¡tÒE²’bIÈ´§„Z4÷‹O/ï#Rö"=Õ;•Y)°ò+C™‹W#S¦ƒù´ºÆOQOÊH¢s¬Ñ`eV#œ(¹“ûY‰êˆ$—ð$'n,­zŸäýÑóFˆþÙ›ÁŒFL‚ U|ç­*Ф¦y¥Â¹A(cq[(ñØwʈˆ+sgÜæ”Ö@i}ñá;±Ôè½(ã{…[·òûFÐÚâRº^ö¤|½]eëAÉr>؉i–2¤“‘êb1Њè=Jâõçغh§Vî@›NÐkòáÀN>÷›*u6QákY½à$õ§lbbÎf¾9¶‹­z7ÍàXVm†~=Ž òÆÍÍ$ÇBŒÿ÷&PüCêÑ¢o2žÙÁôè]W•€Ðáu 6Ø_[Î[GÎÒ °) º·£äú}Ú†Ònn¸Šcù¹¡€ÆNô‘•|ùÛ&—zF&IÁ[ï2”´›É±¸Wéèt—s÷ïQÒë?ÿÁ}û6|¹qÞ û™ñóa®Û Dï˜C›³˜1ÏŸêÝpñ öß~Ë·º4.¬™Êç_å—ê<ßÐÔO'‘Ðh#Ùµj.‹7ZáÿÊ{Œ{·Û“ÃÄÑI.èBéåšÁ¾t‹<Õ:á-Ûð :žDÊáje[`IÜt×dÉÁ­X÷sO6¨ÌE÷ù[è_0e‘vó »Ck3ϘÊl{3)måŠQKøÝx’À9oq¸È)„ÖÞ6hàêüÚ½ wÏ—-"¸¡¯EGq åÄRÆOØŒ®Ó† }$ˆÊÖ’å|±S=´¬id¤ºX‹è¼üñ¿N4UH‹àÆ wÒä'èž:wÜxÈŽñ½˜y¤ãvL¤¡(‘™ÇÕK7©aIj©R%pîô÷¬jö5^U:òѧý°»qžM?ìå»oæ@f:F/eD«ì3 LÙéœÜ6—¬×—Q ™pU'-eyÓ/ñ©Õ…†½G=/-Z«3|ûþJ¦[ ”뻀oAfª¶V&$ÔˆÁT8wœ0Á™ì4KÝk=qßw›(?GÄBzØY2“’Ž—¥,âÕÁ›2e½Ñ[2w ÇÙºô;Öµb™dÀ¹\(ï~1…ÆÍ^!%q Sê5à–Æ“}Þ§}ƒR˜Î~Ïô[ÁôëÑ„@«Ý¨U)è…,óz­±èuþe(sá¼B¡¸,jú¼v ã|¶'8Š€Îß²~8¨ó×D½'n¦–À¯ÉÝ™²çc*¨4ØùPÚë)if+ŽÛ2‹«U[ÒÖ-˜’‹ßgQ§ö´LÏB­­À[³¿Âãiìa¦‡D]¾Žºvf‘\§*ÄK³éÐb" «lp¯÷Ÿ¶¼GÌÅTºMù’²ë¿ç§mŽŒ1†ÍÛn°÷ê)Âv^F[{_,‡kÂN&.ÙM½9Dm™qÌO̟éóÞš…Ë«ø©B<×NþÁ–[á\>s—SÇJóñö-”¾–•¯sü¨Ž¸£Kˆ(Ó—Áëâs!ÝVm¥e­„:€¨ž‹YTK@Dìl¹{Û•ÏEÓ®»š°¨HÎ4£ŸU*çÃÃSû‘Yœþ„@ز×ò³3ݦÍaþ <¼ìP!Q¾Ó$~i§Â:ý.‡ïåû­—hmH&!=Óâ ’IB\ nê›lõ%7K½Ë„!Ax¤oaô< bN·ÃÁ$xÒ¤wWvšìøhj|ôÅu­§R¥ðvHB”,ÜÆ·âöUÚÜuÑHvRWtµyÍJ"YŒáè¾åüÜt ¾µ»óá°AÔñ®mÇΠùƒ,Ж÷‚>`ï§Í n*'{weÏÏöŒ˜Òo+lB¿bUO-¶ñgøñÈm6Ÿ–±Š¼…¡T;†ŽiˆõþiŒüiUZ# *4Öçø¾ã9Z,[ÊHÉDÆí­Ìþb>mHÆuLë3›Sö:‹Ì2’™QžžÃ‘y~‘öíéóÉxÊD|G¯ ;hZ¥ ê¾Ï·ÕdT€ñøBú,¿Â¶·KШGWNþîÆ‡Ÿ¿Š—Mn x{*5mBÝZjÔ¤eóJ¸keê´x Y°Fwî[:m:Cë×ùûJ,ZÀÌësé;âkFMYÄðSKY°t+Ãê¦'âè `2ZR¶«®ÝÇ9Æ@iÇS¬Ôû1ÔÛ½x‹{Œbub*ƼY-bc×™/×¾My<õöHi (x^[ýG/üùû4^¿Jüþ™g0<1‡ð#ÙãîË5.?Bü’ö9×3ØìÍ[<œ&:÷znXèB¹C4”)$° w ã^4I±—¨ÙjpY•ÄîÏ#ÇûªTôµlèuÔû` ¿}xº|Fæ’¯hïUD"K¦¼6òBsÈ£“Æ(!³HW7bÒ–ê¶¶ä‘%)¿=³2n±ë§Í¬‰ÙÍVŒ!'ƒ¾9ÎÃyï«Yt̰.Ȧ™r[ÒtìÆ²qd}°†UÕo³lȾù£?mz—*FW(P>“ Ù$# 2rÁ~ÉÎÁ`Þy-©V£ÎÊÁ …ž¡’@È1" Xr„š·¾Zƒ£IA.Ô?ÚlCãÜSÀT<|tlO²Œu­¸wxÁóv1$õG¦ý¸“Ý—ZS©¶ †M¦Ú;&4¶a¬øk‚†Ðwi>Üf"‰d5eª{Á—ZáU®)ú,à“ÐÚ<Ði0exÑä­¡´QåÓ]áLÍ!UñsRqké'$ôšÍ²F9lü& v^§[€Ž]Ëw°5|?û¦ÑCŽÖŸt÷™Ò§r‘üÙ©‡Yüáq,›IžO˜lñŠÁllŠßóáe›óùÐO¹ýU¾ÜwŽ7jyót ÅŠ1›t—æŒÞ‚*¾f£½Ú—Ôu¤•ç‘Ñ'Imý0IÏ\G¬òÞb–÷Q_þ‘æMÇÁë3Ù=¸*G÷x‹}+<éÖÀ<ÁÊ6dèâ I¸ÂòïÞ$4¶ Æ áÕ2vÏ~b0`°Òa­-:P…6'‡œÇýPTc“q‘-_ÏfåB ’k]ú0îõüŸÞð$IHR1-.›Š¿.”‚¿ *5êìLÒ2½)Uy}ô lÒY~™}ˆ¿_À£k%ìž§HÈIçÁ}#Y!]é\Ó{Su*ïÛBÂŽ=D‰U©Ù¸.µÊ¹ M÷À^ý|}_lô8¸8aŸáI gG´D²nÒ4~Ø~‰ rÈôêJL·Æ”pqBk-âíïoÎ|ÿ ŸvœÁeµˆ$ØàÓ¼< eTÏ,¤©‹7eCÊóýÑ{t¬’‚µ Т–÷¾ý‰ÅëN³à'=)ôÌP‚_©EVéntoZŽ@7kˆ•¡L‡øà‹ëFuY?å"QÕ±x¾ °§Bûa,jú.*} Û'¯fßïÇqëŠûŸ ˜XÇà~´(íRŒ¼5‘µƒ5[óæN@¦Dí¾ÌÝÚÙú>G—läøÏÛðõ*­'Ì¢~¦„Æö:Kz-gchK2 YViÐdåƒy¯€(ˆ¨r ÅGõ0ƒÉT¼Ì+°þÊPi;2móPª¤ÜãòžMlœ²ï·“Òé§m¸ïÇä3‡ o[…ÇŽòÇŠØ´À`$;ËÈkïu Q½N“•S@/Šdö¹†‡vuhYÝ?ÿ€†$Qt7 ¨üèôÕrêÇç×®SI]þ1u­rõ‘âäËV.w£öGUñqPöÓ'$¾µ€å ÓY7¸/ówݤK`ð_”a€¦ý¼ltX …ûV èÅœYñ”edAD­‚”k¿ãRŸzJsþzU*ÅQ¹º3WNÜGCTò>~ùì[fë­PK¤g6¦i¯Ê˜Êô¢KÓRøY î„sÕû->iéŠV¤F:`u)‹‡qçY»c#ßš‡•œAzF9zoLŠo+Z4®Nˆ¿3j‡*®ˆ*f/cº1ìS|óæ‚cÚT}ˆ«í*’sÚ-†í>þ‚Vh°‹êö·ø¾ã»Ä½½”U\Ðë­ éÆ»›ù¨Ï7„[«ÈÑøÒ «?ÉžjTŒ‚Z&>Œ3ªf´jU‰ e5@ IDAT¥¸b-šéf•`Öïí\±¶¶ÇÏÙ û‡Ql›=œ ëîàTñœ@Çrj³^ñHG=~_eÈ8Êwï¡þò¯qìë `ÞÖ^6ñúv=Ç–ïÄwx ü½‹ z—–Œþ¹%ã/KË&'øxÛHY[s ì]œÑéðsvÅŽ "þXƨ#N+“m[“¾ƒíQ{•'$¤"ÁžŽ¨Û4£üŠsÄdxa51ᜋ]ÃÒ×6¡dƒAד;4¦\`¾ø£5¦‚†RÁé oÖ£A£ÚT)åˆÆ¥2ëcAÖ 2£ÇdŽg›M9˜jT&•²8¸¸ Ó»áëè\8Ÿ²½=vލÜ|(éꀊK,|÷ 6\‰!ǘEf€3Ñí­Ê5¤Q•øè+Sæ+ê„”";­ Þ7bTˆ¢e_j”|«R3öw²"îs͸  7ðqÓ¥éõã º=’_Pý·©þ¯C!€(P àyìó‹¹ðOÈß<ò¶‰[ñûWÃC?Záñe/æþBrºH®ßÜË÷›ÿù1DpAGá"ÞÀ…BBËÅ“½O&(P @Á¿ IÖáìì‚3`kÓŒºÞ ¹™òÿö»râ‡ÅI)CûQ¯àEF£'Syx—ð _Z‹ÅçL’eÕö¸ilйW bå+$^ zdßÕã`늽(c2Šˆ¹H‰&<¸òdé1¾jºœ²«ÒÉËÜii¤'ùSÎ;WV=`ßôE\p¬O§>õñɳ ŠXÙ9`Eê7ÅÐÞëÉm-K€lÉfH ÆÃŽ@{Vˆ¨íŸØZÖÎÕ²òÊ"c,‡·ïâhBEÞmd6 <έOÐ@ÂFœÀØA.¸âÄ o¿ÇyÂ|v¶ŸI ‡|á/Ëf¯AÀ˜H¬«žÒNz¬ öKJ4·ƒJÐQ”‘È% $L qÄT(I£‰ó²åºé!Éj?wÜnÅ’š›ÿ*;–¨®TÖiM¢ÅÄß!¼BIzÿKc»žçLŽ´%<©£kØ`GFšœ8xrWª÷&Xg‡VLÙ@p1ɧ5“k‚AVc•¸žwÆ)QôUW*v˯­Ç`%E²uí"4öy¡ c¶üHD¼]¶4Vi»øæLgúNòÁÝÞŠþ?ÿ‚nÈt6Ü_Dÿ¥ÐÓ$ 2¥pýèïür¼£ÿùkÊ>ȬëY5—vîÅÜ j¹Â†3¥(Õ¸&åÝ=¨0còè/Øv»]*8£ýg1 Ae½“+.Îöùä’ƒ%/®àäî´-8ìUj³W¯ äß+ˆ…Ršü••#NV@í!lÞY wqrp5j  ±¶E4ya\QƒÎÖlë2pªÞ·’xê&Éeª=uèò'iò‚$aòö£DÄ&.‡7"ÄÏ1š'ÅT’n’Œ$ˆ…ö ¢ ‚d KWšfoÏç½7µü4| †ÙÏEƘL*s$XÙHNJ" A~40J„iqÕXcãQƒ•Îr2'†DS%KTç¸7”A–k[³qST£Tˆ1w¸®sÇÕZk6ÞÉò ±u‘‘‘5Z"YýÉB®xubîÎEfíäã)1¨L¦ü¨N²1ëx¯ÇN¯øƒ9®‰¹¸™ùë3˜àï@犅æ4Û²­eÊ’‘V•ÊŽüfW^Ÿ æµÖePg‘EôÙ;9 Äc­-\c•·î©´VhrÒŸ@B½˜µ•G+=`K@);ê³1HüIìú|¤£[wc$¤müÑ>ÜÉÂÓ]xgš7nz ý—®D÷þL6Æ/¤ƒû_“tѦ4zœœ]ÈÏFN* h4¨@¥F«V2‚ ¢ÎÉ Åµ1ÃfBãêÞ¨ ’y-KßÄZµŒµÆ,¤Û·8§³j’,t¿d$˺uzÍäÝ¡¡hÓsÌ¿5gƬkhrS:*4‚ˆ`Ì"SpÄV]¸.zÇŠT©ñ.ë·ŒÃåR}š ±ìKô¶ 9_šþkwqfQ+ÚNöæýuKèâ`$õÊJF ¿H×ßÒF‡ûö°ÿZ9^tA@@0š0jtØX‰yóOxtZƒ%mö¾¼òÁÏ4bBTiÐhÕOœËÅí«$ã!f´þà_çåõ·Jcƒƒ‹ `G)b“3È6Bžà0bf÷±l(5ˆukÞÄ3—ü-°‰”‘l"v.fÖÏÙ Ù~”†šË¬ùõÙéY¤Šj4*K=5Öh&L–nBN6Ù³lþkxš,sBÔ #‡øëk˜ôÖN¨Õ¢ÏˆÑLÏ! ɰµÇ?7‡° ¢­Ð=ØÄG¯o¡Âì5Œ/¥Eº»–á_›^ȽgŠ–s¤˜×÷;²;ŒeÙŒ`<nâ½‰Ùæö×X¡dQD«Ñ¢A&KÑ<â]dD›ª5bÙeZǺeå扃à&KºceâÃÂÀö=˜³m0cÊSCTš@ þë­Ù£þù›Kò$sI޼ςY Ü›û½hù, E¾³üN,( eA–-aïòÿdY*ô—{]À|÷DKYŠ–ý‘r8ãOh‹\O&H=¼‹“þ>ø "Ü]Í;õ—QaýB:yç–+…ø¸h"õu©¬¤p6LžÎ^U º{…’«JÒöïX3 3rƒÊãï[ÜOD¥D±£tŒÊéá©ÀõsœUÑ9º Î9ÄøvùþÔýBFxQe–¥*ËvQk£G¯³A«×ae¥Am¥ÃŽ(ÖMÄy{ˆ.xœ>·­DÜü(qv.¿œ4?GL¸À‘K%ðs0µë;Fô[Éœ(¨ÆÚý8·R€[8'§"èÓ¬Ù)®D™ë›~t§J¸ãC=·_ËÞÓfƒ`äɽ\ ¨@°cIJU߯©h ñ.—ão“âRÕî‘lºÁ½làÜQN9ª±W5 Y»=o6íß;´ƒ³%ñþ»Ã9·ÎªâÇö¡[e Qú‘mwwëÑ}ñN?ÌŽG9— p‘£çmÑ9X£´6:ôº 6OýZÔljÌë+x·Å<.[Ʀ¨Ò¢Ó[ù0'/\Á½j°Ùg:Ϻu.TªZ‹΀m J^ýuDz‘UÒYöŸõÃÛD+=zk½k+-jµö/åŽ,†ð• j±†*ë‹!EѬ "^øÜßÃу׈5†K9툣«:ÿàÄ?R¶D•PÄØQÞC2™ÔnŽ¥ý û~"G–þD”“í¹“\ÍU[îr!ç!¢“Cþ‰ù¼~V?]QHÙÁˆ9{IN7¨Â:9žÈò~ø¶¬[ŒŠñœ:øóÖGZ Y§wq,ÝòUZ 7oœ#ÎÏwˆ5‚¦2ÇÖ |õr¾ÙöHhÈ?·T™×‘GÖvQ…(#D‹D±õÚ®fïEs[Ý>˜°’U¨îí‚Öëw¶_ˆæúå4R%gž3ù‹ ²•5z», ‡~fOÆEmÖ;Ð%óÉWï’ R=1BÓ¿©Í"õ,A!e ÔƒñÆ9®¤¥mÙ´Éç#‰ ‡¬²Íhæ¯Ak¥%þüanªÕ<Û¦WãìîFIÛ£ìØOVŠˆ¸à‘yš«'/“m…N¯Go#šõ†GBAYÆšÉDäùÄ·mHÐˤZ%^àäþìŒãâ¥rTŽO>ÜðˆNb³[IJVÙÎé»@B—¢ÈðtÏ— *•E“Š4}m;?¯0·fÜQö^,…¿dDŸæ˜º9uõààæ…OðnÎÅqá\L‰Ãàé–Ë,4ÛÍúгSE\sܤì04£~ óÉ [Áà6¨º.Ÿü5ÆÞää¶ß8‘i–«·ÎÉLôÀÁ¡øõÁ¢Q—íV³÷ å~î0·KcO2§WNãÃ÷sÙ$«{ª€û›ç³övšÅ{ù 7V ¤/äÜ\ÆÛM?bWšY±DXŠ0€8"®Æý°>MZ%p5ö0×ãÍkêÑsvØ:Û¡ÏØÎ¦°?ÓEŹ–•›;Ò¿³%ŽFZ7,ã·p€n]}@¢ÉŸ¤¬;pé€é ÏÙaçДf¶pøŒ9OsÌ¡œ-@IM5ª½²ŽC׬‡Ü¼yšhŸZÔ*-¢-¤‡e¢u°/ÞcL%ä˜ÒjkP­Ùoü´+ÈäAØ .¥ä~‡ØÛ8™ÅÕ‹F²E{ìlD¬lôèm4ˆ:+T*ÖÚ†4i¿–}§Ì:¶—+ep"ƒ›Û¾cä;¿…€ E±mÆL¶> ¢óȶZ=ÚÇfm&¸£ûеñÝ$ë"göã_"_ލ,÷æÉÓÖ¬u§Zø:ö~”¼ò«™I-µEoòqŠõÑxŠY½‡0gû-Råbô”"ëPT.ä~–$Œî>”HÜÍñ“Ѥb“¿–‰…-‰ªÚuiyj'‡ÒÍm¢d«$ROlål’&ÿ·•ÙfWè¥&Œ¾xE˜É²ã…‹líäN¥8óýB²ûvµDmŠà÷©Ÿ0~úV"q¯5ëÆÕoåÀÑ)HŸ×¡vÝéœÃ¢ë•oL#wŒ¢¯ž&B£AŸLrt"é7.s1&Š$?JGžábX* õØÎ …Wp£ÃÅHâ,ïU[Ù`«·Egm…FÌ×ãDADÍsùA±û*)jƒšýJ¥õóèó;5‚kV°6à.7¯¤ðÀà†“Æ<7¼ß•ºívRçë5œÞÝ£òÍhÄp)Š8Dd+[ì‚ëQÛɬ{ÝŽ¼Î=•Ú¬'‹*Ô€áä~NÖ)O%{=V’„\¢ç²æ¢Î܇z:  Å-¨;³æðýì?°Ÿýsøè ëR‡ÌœBžÏ2€1“´€Æ4 rD¯×‘tz?—E˾;+‡¬«ÑÄ?ip›2IóªN­_<õ*2.á¢!'¯Oä¢ï£ø3•FÀÿÕΰy§ýÝ *ëoÑkËòöúÍì9pÀRŸýì?°—훌‚¿§!)P @‚çºqþ»äoq!Ÿ { …¾+îsþó ¸Õ‚Y´¸>¤¤$såÂyîDEp'*’s§O•ýäÓüB*áëW‚ «X¶nžfï\AÈã„EÁ²í.âá[8´¥Œ–Ðмÿa ›¸àô¿â ¬8+P @Á¿‹:c7õv{B§‹XÛÕa܆YT¤”H¶ÎʤM÷8~³;£?ûZ÷Ö0zÒö]Ïà×-‹}ÿG&¾Œ¸s ¯}q€ôl‰×B¿¦Ëü㌨Yü;¥ØÂ"ޱ÷à6ömŸŽ ¸¼2’&RzÈ(^ŸAM˜´³!ÖkAä/ýè:û2ÐþÕ% X°.ý†òÕàÚ„ÞÓôÊ;Œ›Üý¥•$:YQª¤™‘-ßïKN÷ùvŸß%“æLÝÛwîä¼áZ‡2иøñêÀOi’~ÛÚ]Ѧ¨nÅždû©=lÿõSÜ;MaÙ+zVxiqfÖ¥íôCôô+ÌHé üf £~» À¹[m=ãBo}ÎÄæ¡DD¯)ŸP£”dJÈ’lŽægˆ1«òÚŒs´oö}æoçí ÂŠK®E–dä¡3Îâ­É뉸ŸÃÁfóh5e?ŸoÃÛB %¿ŸƒH%L6‡š6ŽÕ^¥ÚÍ[LmÊG”¥Ûgc©í/`Û{~ý>ⵉwH§)“÷4D Ô7—½¡¡„¢ÆÞ­ó7YÔ~¥%Ÿwe&žÔéú!ŸÔ³Ã‰}9‘ ¿&žj ]Ü_;°6ŸÃ¯v¢þ¨4Lt`Þñ:k?Zç½L(:¶×Í¢‘}:¥ÆÝbH§PfbC¹&;µ ŽÜ"uß—Lù@õA é_Áë?ÑnèÄ'g4t?õôÇìÇ!#åÆÌÌNàì/´è6e2xì º©#ç–.æz@uÞ *m1¤”cÈÚOѹ=õÆg"ÂÈ‹©õˆ=R@øÛ ¬LÔ¡\ȺÊÅ¡L4îtýtï—¹ÌÒi£X¸÷ð ®fÊè‰$LGÏzãÈÆ›7æ|C3ûn PÛ`·ž_[XÀ{¯ÃVÿDÏÞKXÁ›¼j¾lëE¥Asø¾–>á3];”µè?~$*:>¦Ÿÿ೦úFV;4¤MJ/:·Cš ˆák*pAÈ'úT®ø;iX?µ+¡Óì¨Ó{ #šümOí|$szù¾œ·•Hœhþþ$šUpÀNËji*=z4'.ÅÜ’ífaq}àÈÃè×ÔÜÏX¹S±ËgüÐÓŸ«oåïg¼ZðŘXÞ3Šii“ù°}Ž¡Í¤‡ÑìXð6˜M¹§n¾ÎÈÏGR;a=c'ÏcÏÕtØ´ˆMC~`b¯Š¨w£Ó{IÍ’è:›Îs3rôTö4%<û3{Ei $ZG3kT(¡IvÔê9’‘½káôìeIG`psÞxó#^ e¾4í7‚ö•ªà䑾O'Óv‘Y.âÛ.*ñ9Z$!´®¾ ³º2s”nTSEtrØ·eÐs\w#AÃ×Ò¿TgÚ„Î@cmMp«×©¦’1çÏg'l\j¡;¤¥Å‡6€ M>ü„ϧ2¨ÉóAï®ÌÿÂYUÀnä @Î…ŸùhêbNÜÎdÓî…Ôµš)l¢ãGi° £T‰Ñ¿OuS&—NDÛ|šùý%+Zƒ‰B™bÛÝj;"]ÚÊ´ ™>€5ÓÍe*9àG¦ÙoÇÔô#Jˆ" yx2®s±E(ŸZï`ú¼?†ŠQ»Öx&­óñðVøqsJÝ3ž×¿øƒ” ¯‡Îæµ9ÇóñWì©J(Ö¸—êÇœUeA¾,ËÈÒ¯®aÜÔºçðU̬àȲÁmøêùpLÇ9Çéæ-‘y=÷p<`­Ç˜y_z†2ð­Û…Ÿ„RÙ¥êÈÏø¢[(aîtž2—eá¡9$qQ"E±jʵ¶!Ã'î¥y®|ÖºÒå3ªÕ«1lã_ e €scFŽ®d­)@D›Ƙ ^tÿb ï´¯M¨$£¶¶¥×‚=¼bƒ}@cÚV7P1ß?Ü<îo=Dð¤Û7GéÆQ¦ ZƒÇ¢N´±nFóÐIè\œ¬ÕŽßÒ4êäGøçãh:Ÿj±C±Í ¢ã”úôÚ—ïǤÜæUÊ[HdÁìÖŠu`':ÔlNŸ¦{xíóåŒiP8D‘éÖ&O›ÅÖ‹i°v›/fV gVô:ÓîÜWAøŠœÏºÌ…V¡L4n¥éúñ Ú¥Ýfq7ó˜*Ù¬£»ÖÃ… ÍÚ†U¿©ì®ðØÀH Æ¦LGÚViIÏûhóÎpBî ¥A(8—öÇ«DKÚkµ¤'ïdîðùLðìÈôE­ð°Ý‹,d`0ÔäãßGóv»PBÁ,«}̯S[a‡ˆJUŒ§ P4¦•(0x÷ap¥ôj0ƒ *uzê*PãÜŠ†~éÞúoNü–Á5¬ Ù¨9T¡ô ]ÅGƒ¿ad ”oý ˜Ç’E« #B‡Ÿ²_[† åk¡ (ƒ³CþlQ¥~Œ×ªû·w³dd,¯¯íƒiÇZvìÖÓmz#®Íþ•0» ´ë_'ß»^Aa®áeG„¿¿Œ ðÀÍçø¸<Á™mg‡ã„/¸[»U‘“- (PðœÞ¿BþGèòøÏ…Â=ÿUâ7—ôÌá–ããb9zøûöìäèáܽõëìæîAz iÔôêÔoˆŸ©Bd0[³™«2?æs‘{ Wà”ÙcžIÁÏ>oŸ½„Ñ»¾â÷XOê·ïCŧŒÇšsŽÍ+fA×e¼î¯Œ×999Ü¿ooïu\Ë™UoÄÿ;HJJB­VcooÿBõQjZ*ÙÙÙ¸º¸>§¦xdgg“””„——× Õ^’$ƒ¯¯ï 7ß"£"ñ/áÿ7{éùΖôôt222pssûûÎd‰®B¼ò#¯m÷bAÿ¦x;hÿñ³cccqqqA«Õ¾³çéWÐ;wîP¯ÄK:¦ÿ{DGGãåå…Jõﺽ›²²û«Ž„wþƒAÁO?vN~Õ˜?êmcd=›ÿGa+ÿ¹òx=âÿ[=_HúBJæê¾u¬8V‚Æ6ÇTÎÿº‚SéÞ4íÓž€çär'™ ª38¿ûgæ¤wdI€g à$qiã\> {…_?®÷  )PÖ3àÎf>ü&œÐ.]éVÅã?›é‘Q‘xyyóàAµFóhtÈÜ4ƒƒºi˲¿^„ôàAáûÿÈÈšcU<€(P à9áY¿æõû¤œÀ¹ae̤›XýËrΞ>ñÌëšMëW³iýjËÒîµ.tíÙÛL[HÛ<¯à m^žà^¾¹•1 ãüï æþ+žÀ…R£x+P @Áãe–ð\ßþb#ž°+^8{V¤ÄS'ãÌâÁƒXî…u ½Bþ¾@^x®³JIG¡¬0 þj/ýÿï½ø³˜8o gã@26büÚN¸?ò÷eŸ=‚2s_PȘŒç¹|¼'mÆÿ±sãû:Óøõÿ³þGfð’<óYK…µœÂÍãh{|¢^‹1ÌH£#iýœN.H¦þø¢ã¶kQ zJV~‡™ žÉ³³3Ӊ޻IòWÑÉžÙ“¢¯ž#¤FuBËx(Rý_„B+P @Ás–— ûÌS¿Oðú}ñ{øÀ>;Û6ÿ§Õ»uƒÙÓ¿`öô/©DÿCèÒ³On- µ‰einŸa¡euy6$°2:(P  ˆÌ0 yòèeÉdB–e$IB’¥í=²ìJ£a½1=Ÿª™4x¿Ê{߀d4`”­ï‹£Ñh·ü/¢ "É&I2ϧDKL–æ/XýWëÎÓB2I/d¹ µÛK¦… yíù¯µ«,ãÞx$ ,Ø™MFŒÏ`~˲ŒÑdB4yÙ Ëò 9¦sw²Æ¬MEs¬Ô<ùö¯¾ËºÃ77ø[z,‡0dk%d“ÓK8.ü/A‡³ùõø‡ÅÈ\FÓóÐéEšzœæŸ(Ë3Ú_¨ì|hõþ LÊÏFÇñnñ ýŸëœù߀B+P @Á¿+|„è}\Îß?#‹ ù\ܽ‰_I–¸|ñ³¾œüŸ¿ÅáÊ¥ |4ô;ŸGŽ£eÛ–z yämn{ämU‹z?CÅ X ‹-îÝ»÷n*Á$™ˆ‰Q:QÁSI–”±yy5l IDATžÓÓÓ^¸rÉÈ/^½ÀcçEÓ±q±ÊZñ<Æ„$‘”˜øR;R¿¨m÷•É$™HHHPÂ(P @‚ÿiÿc‡®X þkASÌ…¿Kþòù¯_°$À•‰Š gÖ—“Y³jù ×.W.]àí7»Z·:‰j5k#È‚™àÎ˽@ò—¿GüyX ­@…!K2¾%|_ºr›L&âîÅý'9€üÿ‚Ñd$þ^ü¿œøåÀƒP«ÕØÙÙ½PåJOO'+; g—ª\9I‰‰xzz¾Xë82w£ïâëóbæ~ËõW‘™Izz:n®®/eùcccqusE£~9zF݉RÆôS ::oï94¹á¤‹ÞúBA+P @‚gˆ”ó¬Úr4VøÖjK}«¼¯²Æ-P2ØuÞªl úJ ZOw\mMqœØz˜Ûi9Èx×ïL#¿'…±Ì$îêYŽŸ¾Mª öåBiP¥ NZáûöp&&L¡-zÔÄ ¡ÀÁŸ\>œB@½’X›wâ$ß<ÂÆÃ轩R³ÿÇÞyÇWU¥ëÿ»Ï>ýä¤÷Þ¤ ¡†"M örm3ãŒ::êè8:£cËØë b¡‰Té=H!¤RHïý´½œFçzïýåùƒOØçì}ÖZ{­õ>ë}Öû.—ÛT»OÖvpå]óèÊÍæD] &¢™s]î½ìÝt„:I@Ô Ÿº€qç3ØvŸåÈ®m”ÒÑš{ÉÉ*§[’q=…iqA8({)ݾ‹¼Ön,²Œ"vË/žvÔÖßÀ™S!‰>¨h-Íåhf>B ãg¥åe¸ÌNàv ·:1ÝP燩¢ìÃtx¤‘árÁýçßQ§Õá•„£ZD°U³wí!ê%•.ˆ)‹'àù}my;”G½àORz 1~F˜)ß³‹Ü†úˆfÎuɸä~µ…"IÄà˜Èœ+¢Ð!ÑßQÁч8«p#"~<)qžˆX©?‘Éñ‚3´ÊÔE)Õ(è£xãVNöô#+ã˜M<Ž?Ét‘:¯o_ɤ %}…ìÞžK›Â€Ox"RÂ0ÐO}a.¹'ÏÒŽ„Íâ@túL’””lÝF^G!†+®‹óÅ|`g8òÍ!Î n„'$3!Î Ek‡³NPÑlF¢9`<Ë’UÝœAeŸYôeòUÓðe¬æsdoë*üY:Ñ6zÊÈÊí"fnê³ÇØ{°„nAÀœ@ÊØ8¼õ?‹×‘¶ò,ŽgŸ¢IÍÄ´8‚]tÐ’Ëæ¥tõÛeð™t5é*¤®3dä+IN B3àÌk«­¢ªE…§CÙ™¥t"c³ˆœ8™1¡n¨B©Ì]õTUBðhïavà\q-JO<Üô(¯wQt¸‘À‰¡8 -ÿ|%‚1Ìœ:PÖ>jò³;»‡ xR’Æàoü·yÊfÚJwðÖ*^zuÆÿÆ[¢§$ƒ~Í¡©3= ÁùBókª$#ËBÜ„0ŒŠ‹´±­‹ÊÛY™ÉÓO¦£ÿ%«ÔºŸ—_–xéóùß›øßB[U!ÙÅ4Ê’UGHRcb¼/ݶå$2}måÝ|J…‘ ã?Úqp¬™9{²‡`o\µv?DOë¶æc¶Jx%-dz„áü ¦Û˹‚lŽŸ¨¤[–qŠ™ÈÔ„PUçËÕCIf=¾É!EÐ@Î×9ÝoAFÖLrz<¶¢ì+éA- v¿’{8iiÑèNçYXN«ÊÔ%)ì\±hãVNö˜•£XpMÂð9Zê¡:g¯½p’Àù£Ð©eê÷à1}wÿêJBÄKŒ»þJmÏ¢¦×<àjR Öû“2"þ*Fð¯Ð™Ák¯tóô›©”˜83 uGG‹U$§]„oœï#6êJkœÜðôt@ÁÅ×URÏöm̤*‘Sæ“èj£«¡„¬½yÔÉ2’Uƒ\ã‚øaBÂÜQNV±š¤ÔÀ‹s"K9ÛVÁ%m.פ‡~7þºòW[øý;7¥Wü‡Slô¶”s²BǸ$TrÅ#Ûøj]&•f™ã(¢ƒ<Ћ?”ïôÑT]ʆVªKó)éKâ×·ýIüp?#ðF0‚üšŠxhd/ükñW!|_<–e‰†ºZî¼i9'rŽÿŸh££™›žÊû+¿dtÂX{ 9ÿø{ÜîŠÀç›ú²gÿ¹6¢`#ÁÏ„–>|q5ÇŒF‚•”1ö=À²©ƒ3Ç×ðÁ·58zÏãw±^(šŠÙŸ¹‘®WrýïV0ÓUÕÛøjÏ9](Å*ö¿®%üRžÎž³ÝÉ·¹*‚|›¨9V$ÝKzÀf¶ì*¥U¥¡÷Ôa |ÜxvJ(J…@{þ×|z(‹ìœ±ü}b0Z¹Ÿ¶»x糜s6" R­¢ ¼’§àÔ¶…­;*éЪé.>D¡¿;ÏNF(]ÇÊÝýD˘-ää«ñ{j6Þ@oSVQ .FAÑÁ]ì.VâçÑÀáÌÄ»îb^H›öÒ­•Pªº)>ÖLÜÓ¿&Öé;C([z©Ê^ÃG;Ï`SÍäñDÄŽlï^Gf™B{6yV÷]30Ã÷Wì]…›øìp&‡3âxeˆ,›»ÈßòÿØr·T’"\†,ØíVÔRɦ#Ûùêkû6âÕJׯö\F#Øê2ÈQûóìü€aNE[g>™»¿ä`±3ŠîNô™¹çÆù„¶|Áæ]´k5ô¦À׿N ¥)÷eÖìÑ ÷—è¨È¦*ò)~ÚGá¾wØšé‚V[H^E&ÿÛIg/»wí£¤Õë¹£œÔ©ylq Úò·Y·»<t¦$ì)žëõ£Üð:ßÊhµႾ­ŠµB_=Ç×ÅþJ=®B'‹ªh0ÜÅ £{9¹n›ŠÛqMôCÙíˆWZY«X·½›‡Eu/¹x|fÔ0AÞÜs†ŒoÞåÛLgË8]ÙB§Ûræª{h¬© ¬¦µÖμ/Ùú ¡•5ì(èE¡S ¨ÙÏÁ—® Gê>ÉšWaºz^}®Vwâ~Ù‘±–¬cå31¡6úúÛ8Y¤Å÷éxô4pòèZ>ÜÜFtêî u¥£l›·P'ëP7ò­’%á£ÿ½¹Å\Ìê7Ðé㻓ÙÖG¸E ·ô[>}/9NŽ#ÓkUQ^ÛŠ+±ëxÑ£½ìml©d÷ÆL\'Ì%Àˈµ:“¾ç›ÿwQüÅlÍëBé @!œegm4S6²ãÓUø&¾Fšº“Âí/óYÑ~­ ø“ï7àlh ²¼'§`¼ã~ÉÐÔÕFcé~>;YÆ/‚ åV}²ü.¢ Q¨dמ¬¸ŸÂ!ÞyOKôyØÖEåÉý|}LGjL«×Tšˆº£’ò^,7- 5Äñ;ŸdS'åYkøp{5:·9<<ÚÛnšK8ù +×+XöëÌvÓ¦3{X“±—[CxaB šÌ—X·×ƒŸ…ORþ(·ËÔìßÂû›³é0j Tû1Ú"óKçùD z½ê’ãJ¶!é:)Ê>M§~1¼4ûÒâ¢å$¼ßɳÃ/.l  ¥Vù3×ï'´™ Æ`àð—ï?=”Þ͆Ob˜…¾[‡.b ¶ËTC¾€“äèðýýj÷¿Ã¶L´êBò*1û®`ª« ©á$»27óÉ:=w=y“µ]E|ùÒìSkð¬‘ßŲ[ú,´Ö53Ù—òí¯±ý¨ ±€u-X}WfÍb÷cœíTââT;Ã]8=v3)z@eN!q×ÜSá¬Üc!&ÔJo_ù§ >ù¼lËìÁ-ÀLUNVt,›5jHŸ0•ïemÆ^¾ÙÄó©!8ˆ玽ÄÚ= þ:êò¨x”;C ß{÷åží»X¿çV' QìæTV ñ¾ŸHÃ0CDSéÖý}+â5cpéRbóˆ$ÅÜFöêu|uª¥ü=Æc½Hœ¹½†²3çP*H–*Š÷#.ÿ˜ÿ Ö½ºÍU 8v©üâíÖK}u¥µ&»ÍÏý‚½á%YýëvÙPøtfp:ìOü1щòƒçëÎ8xôr"«”¶Ð‡YæTð=v÷õsˆÆzK¾åËŒCìØÉË“ÂÐ#a.?È[on¦ÄÕ‰N ^c$lu'9´y ÇÛ 8õçxM¦›1ÙWgΩÍ|¹î>>1›˜´hÌù/³f·]€LÇ™,*#þÈQlËë*#/s; Tx7’‘Y7ÝÄœo„³ùúÈ.Ö~ãÇ3ßJ¤N”°þù•´-MÃ×:W=±V+Ö¦*JËÚÐku˜Îå¨9“4‡¢|N6ê0×%ß ç‰Å‰ôûkw˜QøP]ÄK<>-l˜`%ë|IX:›'3€Êè•ìk°ÙÇݥБÉ;¯lÁVFddYÎQMœâgž×þ#¸\9~ÈœÙ@ÆÆfŽÂð#~gØ“pt° Úzim°RËQ>ZéDrjÐEJ" µ–‘‘ù5¯‡…w^ÇOèÜËÆ}…ô [Wý†¨òõ¬Üc":ÔF¿©•¼BO¢­à ëÿ±Íâx»Tˆ¾±H‚LuÆ ¬±Ñ„8ë.[#kãQ>þÔ…¤ÔÀK‘ÔZ-:a8_” êÁ1?¦Í/ýé¥>±ÒsîŸ}åËø$ÿ ¾YÇ•x&ßÍS×Çþ²cÃÔ×MG—¥VƒÖ&"þæ:ÿ·0"`#Á/²Ò¿x$ðKßOë<ò;¸f¾@ü”‘‘)ÈËá®›¯¥¦ºêÿT“«®bñÜi¼ôú»,ºúZÃE`ùûN…‹‰Àçÿ/ |. ÈÃo¿œÐ;"`#Á¿†=«8áw oÿ*nP ”þµõöÒÛÕƒ*T5D(”°¶¶Ó%»")¢ïÔ1,ÿíŒ÷´/J?žû;·^FÆ™è+xâÆ0üD‰c/ÿ•µGذ!‡+ïåî‰Á(K_犷OЖŒ‡ZD¶šéoh£Ë ¶—¥³âcGg>Âó܆,ZAÀÄél%Á3,ä}’‡ñêGøU²Bñ+ÌyïiA¸¸¦pÏó“Iqúryë†÷9Þ1›+l´ÖwÐwÎøk|ÑºÜÆ¸;üñÀÊ'#¿²šv7O&?𒽚ùhú)‘!ö‚½ÔßKo{Ö@ àÌþ“Ôšã¸ó¥nÝÆCoVP^ÕEXL»>ÉÅiÆlÆúéÙfÆTßJ§Aó]ÛË*­bG½‘„äiH"(é¢hwuúp’'„Ù£geæÆV:ÕÞÙ:Z9¼:ŸÔUŸ³X ”½ËÜg3蘿—!ކŠÌ“TµGqÛË·Þ±‹'Þ<ÃÙêJª?ÉŰð!îOõGQò*óÞ=IÇT5ÛŸ/!ñ½¯Xæõ{ŸæÞ/²¸éN59{”,~ó1&ØJXõáfN/Ƶ!Ÿ¿éüê¡xÔ~Î-o”Ò8ÓŸS/äøØGÜ""çþ…YŸåb;÷ÇïBVgÅEû¶D[U EyV–¿ýIt²ÿóÙv F‡ I¡Ì¾u.‹gû<´ŽO–çâ÷ôÛÜ­ƒ®Õ,[¸“Ê™QDçV§£æÙ»Ô,Yù)Ô³ýÝÕ_—Ëä_M`Ém ,øÞ¶?Tp…?'ߨJÔßÿɵž@óJfÜ{˜¶k"qF‡§Ën~øV¼~”ïû I陯ý/Nb¼3XZŽðÞý«ÉéIgŽBÆÖÝMwo?&‘nŽ}š‹”¸Œ‡–ŽÅÈ.î]”Aé´Qxy8ü{çTIøÏà¾?-#r˜šÓGÆ+Éö|WJšŽo#»³íPJÑh5¨”öH ù‚÷üó8¨*ØòF©›žgž+@+Gu#D$ðäü¼üi%q +Ù¹KÉ•ï^‰ñÐ*ÊjÇðÈ;WáŠLue âÏæÍQà0‡ ôüí8NúVŽ¿÷!¥ù<ùÄ,ü]ñAþþE.©7i0œŸîUj´%²!˜ÔeK¹÷Ú( –5÷}FiAñ!£D”ý€è膀¡¿cÃÚÖN§ìŒUù]Œ,Y15´Ð¡D@@–*ÙõZ©­b±ÎBÉÖçøËºSÜ~—#'óKð[ú$OOÐ_0ÿ’* £l/«W¦QáOòÌÙ¤'ù¢¢Ü-[8XPM¿BD雯ò¥ãñÕ©~r[h;ÁîoöqŒ"žû°ŸYZÏsªªIò$ý†e¤ê8³í m-m¼ý|5ѳîf¾¼…ww×"ŠJ n \}s¢ðs­ªÌ´ŸÉaß1Ó¯‹Ãõ'OQÓl$aº'§wnfwV9]’'“o¸–)¾ìØ/ã§ÜÌ·ÙQ,½V±ƒŒ¯^¤¸JÄÁ5ŽE·ÏÂï•,#K>$/˜ÊM¿NRêK×A¸€“¼sÓ»lÏwD8¨a雑b)bå‡[É9\ÍÔ+CA–°4·Ó©Ð!‰ @û¾Ï9â´€—~—ŠÃ°_”è75p.Ï¿‰gÉÉtäš7þÀ8S_‡¼c5¤MdÚÍÉ„ø:¡£—·ü†¼º¥Œ УšÉÛåNÊ BÓ$îi"ãÀÔxˆ~·‘¬Öd’FÏáþ9±+ èƒ·8XQK+£†oJ¬˜ZèІ Ì%Uìü{%)­b‰ÞFÙ·ÏòäêBî|d µyäVHº" /Å%¸gé,&Õ ž÷§>M1Þ’Ë7êˆ[1Ÿp ȸ‘| ·=4°<Ö“ë8Ü cáožaŠÇ¥ß¤[Ê­<•2ðŸ–<^´“Àtú \ˆt;·>4k #Wß‘ÈÕã`Óƒe,2rð•BÿºŠ`Íz–yŸeÑÊþZ™þñ ÌÛÈXók¶ç’^z+åti Q‰äl‘¬˜ê[éЫíÂÕFùo¨óo¯œ#Jw”Ð$Epß37@1/ÿye§ë˜èŠ¢f?ŸìÊÃ}ÌãÆ7Jhš­çÀ󄾺’A´~Î5Wo§jÚ½„3Üg5õÒè°ÐÓgÁ* þ©­ÍE‘˜Æ¸·!LDt£–óÌãW ‹°ì­Íáë#õí'hrKfBŒ/e;×ÒµùécpW6‘¹~ ™¥uôÚ|˜yçŒw(cÓ^%¡º lˉgÙƒ³ìÉgÕ›©•(´n„%Íeiªõ'w²~S.m‚ ñ³2wœšœ#¨ú“sºž¦Nã¯ù5é!B^ûL‹ŒR¥aÌ•×ᘷ eúm$8[h«( ?§ŸÈEñtedpV$yRÎÂÅì›H®~…­ÕNx†§’€…ꃟòÉá&T -^áX´4‘ö‚êm¾$'x#ÚjÉû^˜Äx°uãÝ»¾ Û”N„àÎè©wrËÃÓ‡¼K+]ª&Žýs;_èS¸ùötü.²Q²6qlóNjªõ¼òAãRgP·‰5Y­ˆ #‘©sYÚ‰ÔuŒÂ35Ô¶ $-½—‘˜ ÖñîŽ ¬’Œ¨Ž`é}‹ ´Ô“µu¥Ž¼ôÏFÒ¦/cR 0qîÈÏæ\]õæù,‰6‘WPFC[?6ÉŸ+xu1ßìkñ+ƒœfG¦,_¼åU2láÌ_¶O½ƒ…¾6Õ6ªKvs®ÕÈq‰x¨»(üjc'3&Ü­p9Î4"ÿXŒÀ#ÁFðßxîïð{„KŸõ;@GÆ;õÓXŠŸƒ€ÐĤZšE…,ã0™ó>=Sg ¾£˜áHMT6TQ¬‹ç:­; ¿ó嬧Z烗‡µÿ(’1qò«WùºÐ‘ØßþŠixZ•i·rŸz-´"ÓE[«¡ßϾÓÞ5œøî³ôvöƒ¥” o®$8tq¾zDã¯â8õGÉÞÆ–>ª³×²×4†ëoK¤çÈz¶VéQÐJÖ×k9îµ°”02ªÀ‰\{·…ÜÒjH€3é/bóŸäI­häº[] ÖEG›©'À~Ý)„Ñý•X»Š(«#ØAÄh¢RH-˦7*Ï&1ÏÉîtqˆL&þƒS[B誅7€èB°Þk}!ÅÍn8ø¸Úl¾qŒk8L«¹„Ò3q¤¸šÐ£•FJqe\(¦ÿkgûð: íÛsîý)Þ¡$Ï a÷ƒO°Ñ ¢sfîüQ@7 EÛÞ{šƒ<™v;wÏ짵΃`‡· 1%®ÏRÚÑNCYæº[½ÄtobB¼©/ª¥`0}9/°µ wDÆáù‡«Ùú§yJQ¡âê[Và‚„D/mkyê™J˜tííLñ~’{E0i`LJôuwÐêC˜Á^¾1 oæúží”™mö÷Þl@#œhYཋ†6 Vþ½tp¢}Ë~Þx,' ÙŠÕw>^gåÛAܸ+i˜8à‘<ßík¹TÎ P{Ï?!Œ >­‘M/ü–½)÷ðÂ’H&Lrd|¦þŽÇæ#9ëÄG¸B§¦ÉÍ ¡û]yÃÊÍ‹—3)(àçwƒ™z1K TÝ…ì.÷gÉ}cD#ÉßHМlÎÜìyY‘^$åÍTë¸:è.’^õ2÷kœˆœu w)6ðM‘yàŒ8…{,3o¼ŽÓ59¨­Ò }ÐFÌæö{md?Ð6°,ª¤º<‰1:ûXq Š'fs1Y.œ8pŒsͯñä¦Nü'-añœñxŠ¿´MPˆ6C<² IDATZ[²ý/8ã7ÛivìÛ6r)ßgÞ~œÂÃrùtKSf'âó‹À ”*-zw\ü]ŒèPøª•ÑUçŸ{ ¿n,:=J¥wœõ""ž‡kÑH:+óæþ îT‹?[¹¬}íœ>´ §Åÿ ][Çñœ ÄÑ8.'¿¤Q£n;Ëþm9„Íë`ë[ëp›=_7GÔŠN¨ÈçìÔ$<]LÔæ|Îß]ÃyiIÈÿ"7³€BQKæ†-ä4‡”xËçNÀO™\ÀIš|Ù¨i%¯!Ö¾!HåFˆÖs]í„âìÈ·Y)8[ˆRhg÷æz]”¼ôä6$…ŠôûŸ ÝMôTe±K?šßËm”6Eâ ñ \éDum†db Cxœs1ž”и›/T)¼§!`â méíî¤Õ'Š-ÎÄ¢(ÛÃÇ_¤Í99KSñ¹ÀNkÂgqë½6²hd*©®HbŒÞÎ#œ‚‰Y[AQTÙÊ—û½ð™—„—âÜÓo©ô‘»êe6”x’ðÈL3HôWdðÏ÷ŽrëÕvXÚ(9¾‘‡ŸÎ$(8…¥×ÏÅšŠªârªÞ¨a‡¹‡¸å±8ÞÍ%&TÉÖOþÖ—)zˆ_¹(©)<°‡þt€ ð‰,\8{ ¬Ýôfý…­ÖÉ<˜(óue"©î&$4(GM`|ñ)NË:+Ç’&(ñô‰&hgEž„a<ì æ¶Nzñb/eô1 ¸ÇWâÄC}È€Õrš]ßäÒ÷9þc7:ÿÞz‘)IÔÔ}Ë'¿³Z>pããBáÜAÖ¯%øŠÇ™¸—C[ÛqÎQU‘Älû|mˆL&þ3T0…¡áàOàù4pN뉇·3@2÷XÈúmŠAm¥Û¶…¿þ¹‰µãnø-ó†$®?ÀÞ‚2œ&-Æ#ã$í²³] ñ‹'©.ƒfSuµžŒ9Ÿß×u:‹ÿFi„~˜Ïk%Ûßÿ åÝáĆ»¡tü‰åkøÃSÇ0È2’¨Æ%z&Wç°þ£2¦,ó§þàZÞ,L#ݹŸc{÷£ö ®0‹3­J|¢cѶ•±e]á jØðÊ×DÞ0owDΰåéçÈÐ]AZh'ç*ŠØ¹ßŸd?7Žo­Á7ÿ®:JŽçâ¯Õsè«õ4¹H`Ó^_u˜èÇ'оöloL"2Q…ƒÂJwùVé—ñÞœ~Jò³îT/^ÕÊ-ëÙ'Î $- gqèè¦ý/ðö^¿0W<=F±pÑh 6 ]ŽÞ„„;£7µS]•Éê£zFUd“Ùc¼­5Þ“G¬‡¾]³©À›ÐH/uu¨+ˆÙ|ò)Œš½½ƒµ7wWŒšïÛÁ5Šôn ¼þ(jËùud ã/¶®r>Ïeeú:Ûhö‰ažFB’›Èßó%ýi/A‘SX|å,ÂJü“§Ôi†Ú ÖýeµÑËy~Ùè ¢3: VpusÅA«BïêKh¤'Õœ(8†£gú¶Šû DÄáT¶ƒ7Wùà¿Ì‚QSÉÞgöÑ3:Œpd¬-¥¬þ¢„¯‹¤§6ƒu¯l¢L7°9 ³%€ó|Èÿv/u O¢F…ܸ•w¾8HØÃsñÑ{* H •fò·íãy{Ž­ƒj­7W ƒé騵:t~žxzùàëì€Ö`À' ƒ»€¦,ƒWvŽçãIù¬{qãîLÁ¹n;Ï=W%º —îãí á¬ð/`Û% qJÔ{ϲùX%3ü™éu‚÷žfVô$´B=»_ü˜C]}CÎW Ö§qË£³ñq¦ühŒÀ#ÁFð‹-ц;J.{îïÅ® žvñ÷åçþÌë/?÷ÿEÛ}üþ[œ)-áýO× ÕéŠÁvh’ÁàïþÚÞü¨TÐ{w#zðF0‚üTTs®<œQËc‘$Lµ™|ùÌÂ^šbwÚúè7Y‘a¸ÅìïÇb³]àÚ³Ÿ£¹åþUh®~íåy Y1eßlät7‹cèSU`“äy݈ss]òww˜úLÈ‚ Sm±$¦ÅãßQÉ©“ÇÙ¬ãök°eÆ‚` B6ÖÁgqiê s˜å(aÝ“Ûñ¼éq¢K}- ÅøM»Å`9M~ºŽjC Kb‚œp \‚ãHÔvÑ”›CùäXÆ]x8¬ÔOo¿ÕnËP P‚m@DÑaì2aîë¡_•ÈÏý}Œ3ê!¤Dê³`ˆI0w•²õí7ø§yg÷}JuU- b ÞÑ×1å¾_‘ x œ;ð€^VI¨mï~f’QÏžwWS?õ.nf¨h% P€0X>=†–>+’RÂ&Iß½—†:%+ÖóýB§ÇØØA—B¨°8 Ôhl tõaR‚ŠóÏ0àØÖC¯*ƒ]Ií€SK?•É ÖYÔ|¯oñÌ!‚^L@i>‰5p6Á¦ýì>qŒ +—J–]…bô9zÕÕýr5Û¼®cþ£|òÜ#ìSI(TÍ]nַոđ:í$¯Üù:èª28u3ËÖÀ†š Y¼PW#Ré!ê‰êåàëïR2þîAÕ!‘ë¿“*[/­õåìÿÇ7=»ˆ gˆÛ ØðÜ~¼oýÃw‘2Ö>ú-6PJHø~Ë(V®þ€‡vZQ$êK%©†³ÍdVµ;!1¸éQÈ’‹šŽ£TºÆ w(ØÌH?äWßóÏu¶¼6L½»xðws?ÏÍ FáÎÂ+yæ[z-à=ž…÷õQ\ÓGÖª'X¥MàÎå ë­ùy§g…€¢³‹.?Ü• w£êqkï Cð¼Ä½"êþ³Yµ¢ãžh5nøN˜Æä±þüèRÚú默0õc¶Ú†Ì¦×ûLƒ#AD)žŸDDµCK =,ý£Hœ€O[ Ù»²SëËÕÓBù~ÖE¡€`ë¡®¼‘2a"÷?|-þÖ"þùâ ¿ÝIÉYS¯bÅÂX4¶òO—ÿ‚Ž<cH,cf¤!öŒã¿–Æ]d¯Ï¥äØY¬]§8ÑëKÕü$ÆMIÅkc×Þ±Ü~®®Õ‹®•»Élt7ÕPm)¡kºø3 ¬J܃ãHKý–õ‡M¤Ç´`RÊŒHÕÊ7Ør´„ ûËØµ¯–1É àäMâì;¹2LõkÀÊôënfP¿·•ß¼}€š%!ü¯áVB'ÏåZM8mª öíf·Ú•% ¢~ÀÙÒ%¬{rî·þŽXu'„ïì©Ö Bg/ýç¿Ú×Å&!£°ó¹²"n!T§AÑ´Ÿ¯žø–ˆwæâ×oâlÎN|½‹§y7(ÎÛy : ÐÕÏw[Ö»ÉüÛçt&\A¼¯=]|õö/q»ê}†ÊJæ|6¾pßÛ!l€£)|‰IÉéZ*Jêðó1â|‘ùÁ6¤+–¡@¡Ñbh¬§'bæÜȯÇj/Ï=AÄ%$1†^Zr²(ŸEBà\y&…`ƒ½Ý<"&sÝ£N4ŠíTœÈcïZ Æs8»Œ"(% —–Lv¼¹ ÿ§¯!Õ×ïKVÖú,¾^odÞgñØð5ëõ IlãLÖqö¬wÇý–$Ü€zÖ½×JÔŠ$B”}¨E+¶ôҲΈSs‚ˆ(ZÚB‰RT¢ié¦Wi@1Œ‡™éé3c½çé;¿)$©Ž¦ÚâïEPw+õeŬ}¯„{îìÇ,7bŒLB:ù‡Î2O/S¾ác>Üb"d{¤ZŠN™yìµéøp¾¿  7`ll§ó2¾dõÊ áŠ¸°ïÒ÷™±ÉC-C ËŸº›3ý&úzNsèùÏ}‘"@/EOQk eùäPÎíË¢óõ7àÔÖI{O×<ÊÇÿŽ]ZD‰¶~7ÿPc!ªh®}òA¡þ„ >Ôû›˜€³ ² Äàã‚(hq ŸÀU7_AÙª7ùò\Ké;è¯ÈåÐÁ]h´á≡¿„o÷·3cú(TÎþ$Í¿ž 5~ÍßJ£¹sÝ $*,Ô_Ãû;º¨)(dÃæ œL£pë?DZÌB ®Iô;z=i9+ÒQ¶éøöÑjúšáóÍÌyý¦ n<4Ñ4wº×Ñ2-„æÆÓ„Ï¿5=¤Ýx‘‚>â…,ù[ÿôg£'’’æIÜŒñøžÿލÂ;À…–O×S 0QÓÜ«Cž:4ÖÁ/¡ÖêÐ÷–°õ˜Š”[oäêqnÐëFF¾½‡è´ âLüôÉ:róÒ¹hLMûò->Ü×€KD2 –ÝĤLý˜¬Ò»æ.³®’‹Øð—½xÝòB€žøt®}Ä‹f±•Òã™ì¶¹ázãX\Ñ6catR’Y@CS>ÇM/,'^mÏ.£]‰KŸLÐ)gnZ2 í§•Ô9@»Ôʉ6w܃TÎDŽ[ÀMsÃg¨É»33³}± JÄö|6lÙL·)YÂÔ~†ì3Z®¾.Š@âg¤ã>º›Í•¿JÔŽ„'/åÆ+¢Ðt:²ç‘st˜eÂB}1}¶‹B“ [c19­ùXæÏ"~Úd½¹ya:ÊÁq§Â#1ž˜¤>T±é\=ÅhäÜ‘#äŸm…Ö"ŠJsh˜  q gÚµ·PjeËûIûûý8~'6¦E«d ’YÛ˜iDnÞK{E+­UÛP¦Ì!>Ä è"(5 ÁlAÒ£DeÐÈ&3‚á,i#ÁFðß»ÆòÇ%‚}¿îïeÄ_I²±qÝWÿ߈¿çq`ßnž~ü!þúò 1(Ÿoà #~/– Z"_Lô‰ÁF0‚ÿl؈dö⥌è§éîO9Ñ?…YÚkSøæ·¯P™r=·Í¸lä }>·R±k5[ L¸c6Qš:2ûEŠ´®¶ꃼ˜v‰h Ù¦ÄÑ=•%s®ÀQúUì*9Æ9°VôâmpÂM#b6‰(Ï?ÓÒL]°³÷i>»ãCúßÁЉv/Cgg½:bƒÏ×ËLñúOØUîÆôÛ¦î|~Ù¦" e>Hlß;•=e70.érîs ÉHʈ½NZ\õxT¸“0Ýýò‹E‡@fÜóW"z@°µR”•CQo$Qa¡»«†µì÷–™Gxëë@¿°”1 I!î|¾æ-r’a¬~xùdé¼ÐÔI«“oG5¢IDT ‚ÖfêB¼˜­°aE=°ˆ•‘;ÛiñÂÍjÅbS \ï£G’§‡êv̈uo£ÑÇ…­€dV¡T”¹«…ú@_<ÿC}»ù¿>`Ov5ÅÉÜôÇEøÛÆòåZŠ÷m¡:ôJ¢“ñŠNÌ+jPÈ2ˆCÎ"•ˆØ7 þg¨Ÿý¬3Cà4æ=8ûlç«¿n¥dνD 2®¡IèUNž/¦Þ˜ WCõ{yÿÕBŠŽž!zQì¥Ï`ýÑ‹QÙÃ÷Ê *gï?$"ÛÖFŸ' $ ›¨úΙ¤P Š"‚ÍŠEéˆßè)Ìš Þ­Àqº/aNÿÍòªlÅbSlc±bëë¦=ȳ É\5g>®ÌÄ»ç]²«‹iÂÿ&l6¬V êàH»Xª4à.i©)( Ç)€i¾®v‘ºÏtÑ3Cÿ{M¸«Ù‚ÅjšÉøàŸìmt"zÚ\üð¡vƒ›d‹I!a¶JÐy˜×]yæBf»öÑz.Ÿƒ%Ýt ?ã™®ÆÎ%øÐfŽû{ wG0ɶ:ø3u Éã¼À<‘Isüç[Ê.§x"¦¥yPòyÏÀ|-Cg-¡ÞÄ»¯F@ÀBé–Ul/Ð1åöéĸ^NÒð ~þBâ[ÏIúv@Y÷ "ÀR’g pÿ‘˜)³(†pÅ'Âp%êÊë¸Á1—z‹€¦÷(¯Uxúƒ³pcÔ$·‹s÷±,\²”ïzxÕG3Q»yâH?²Ñ?7W”ØP«uhzziòŒ )Öè0g°Nfê¼â|î6†( °”–’œB”úé7[Á*bR:à5q³g†AŸ•‰3½ÖÈÊ2A^:{ÝZÜT&”]ÕT«'2Êih™5<˜àü,k3‹úD“ï0à?z þC¸ÍwãÆ‘è9Wb;¹†Í}1L¯Á>îúÎîâçv¡™³€¹N­”—ÓØÕC··ðÝšLTÚ¹EwÝn£ ñVÚÙ›E¾ ‰ŒÕbÁ&Xí™—ü㧳ة­«/ÁN—³2—ZW³òÎO±^u;×§ÚÂàŤ%Q”˜ßao}-–±¸æñn"wÇ7ÔÇ2gv>âÐ9DÂf¶ Vltd­ãÃO‹pq%ôU8d¶bìí¡ÇÑoãërñÅ·§„^›Í¾¹£“®ˆ©,šˆÞsXbÁ ‰îö2¯YK±^;8·™L!Ì¿*˜>—H¼Œö1¦PáªÑaè>Â{O}MkÒ,¦ù( ÝÚ==t!a³Xd{[*‡®ð,VlV Xl@%›Ÿÿ˜“†ÆM‹‹Å…3_[éC x‰`Öðòñ j=îJåð¸ÙŠL,ãý?ãxÿVo40îoœíã°øÛ­ìîì¬Ñ§25|Dþ PŒ4ÁF0‚ü‹üa¾–ï§~&þrñW–Åßì£<ôëÿúÿ²?ÿä#ÞóUdYŒò½˜X.ü«Ú Öø—ùôFNÁF0‚ŸŠ±Œ¿ÏÄ“ôÖP^kÄé¼V#0赨5çÓÃx»µz4j-G»“Ê’Ç»¾Më¬;¸ãÆñx‹C|.·[ÈÛ¸’õG•¤?|'“Cu@(£Çž ¢¥ßþ̼½ ô"PP F¨jŒ:D¥¸:ûá°‘-gíNâ®æNÚúŒ8QG~³F_\&vl¥MûbûÄûŒÚòÒÝŸ£½óî\5°€í¢¹©‘j!•X'€Ž|þÛ*<™ûà ÆèÎÌ d4Ÿ_·PSäŒãÅÂzŒ-*#&dc1-µ…d«mh]ÑØNòÁ#/²éT–¡·;hQŠZŒ€BíLxê ¦Ï˜Aúìé$ÇG:šD÷|ø­Í¢iè)=*¥ƒ£ œ,ôf¦°Ñî` q¤éh/V½LSÖFÞxn'M¸âç+#ºäSÐXB®ØúTÆÉ¡¬ÅdwdœØÇ¡ oKbÒf²ª”´åï'',†8ƒ^û9mLÍ”´VÐì–LRXíÔÐ P–E¦‹ '1…äÔ=äUÚÏ5çìäpxð@4Ñs·¯ÎŒ» oŸ£¼ÞˆÑ¹•¦#9TXÑ w…’–* ±3Ÿã…§©à§ªtèXq$vâ4fÎLG_xÍŒT‚‘1WïàÅß®ãìÀR^ëÁ¤¹³˜î€`kÅ3:bÀ¡~ŽMŸ÷”6–p_%¨-ôg¥°fÀ-íDó‘ú`9ùjí×ûëë¨ìôÄó'Š¿Rã^^¸gN÷<Ê­s£Îd¥½NƒFg ŧ2}V:Þõù¨ÇE¬Õþ  Q©/Ø¢Nãš™¥üñ–¯i:Ïâ,J·®§R¯„‚bêη¹ŠS}íHzÃwçó ¾gÝÏÀ„Î ^]ShŸÝ !L›B­¡%›Åî0°µRtbë3»Þ!I$„9cCþ·Ë2l¾”ú¨él¦^Žgé\«Ví¤rpr¨ç«Ÿ§qúDÂÜ\pÌ>Dñ`u¬Ôž- ÆÅ Wшoì¦O¿ƒN¤dõj¾,jýñpÐkQi g]ØZ‹þ¼‡ZDQ‹Q! ˆKÚDv£}žh(É  (ŽDW=6Çíh襥¡«æßK9þs@Y­F«í¦7s9= œVu£˜<´ÖjZ*Ûì󴃕(üÏX‡"ÐHA­Š  WrÍÜ)¤…ëèÍX æ‚F:• 0Wp¤5‘›—¥“>s> ú&Ρàç;­ÃÓ?„1Âv¾Él¢#|´è{«°áIҔ̚9‹™ÓcpqÒ!JlC£úÕ€§¢¥ô(§Óu©Áò?pS°ÐQÆ©ü#äõÛ9BU•„¤v@¹F¾€“QàêæWøJ-@§:ªéôòüNÖëQ«´Œ q·³fg½ý3S ¥ÕFÁÜT@¶i:ã\AïèŠ[ÈaÎØ€žZŠ{êéõòÁ@ ›_}›lC*ËX@ŒËÀYìýGÙ×>ƒñ ckØÃ ÷lÀù¾G¹eö€mi«¡øØ{ænjÍÅì´¥¨ÅAH >iÙõöwÝtê0Ea¡xÒKÉÎU¼þêfÊm „ó÷^À=Û­#£íüó›¨.tÆh[Í·üí7op¬O`j¦>o+ûÚísMsM;ÍæDÆ¥ÔRT›eç4QY#¢ÒjÑ÷ãõû?á„ÉúÝÞõæ|ñy0W=co“Þzjòvp¨ÃÎjzé G5@5ë?19=‰OHbêNr+ì<§7{'aaD‰ÑDŒÙʉv;‡­©ÌåŒ"ã¼m(†ñ°~DGÇ à’µˆ¢@­‰!"a« ìYÛZ¨ë1 —«¨Î)£ÀÁ uƒD[«„kø(ÆO™É¬éL•€›[4S’瓜¼…ãU"m'÷“†/fj2¿á­vS/4“µæc6™ùà­L2 ·FJ¥‡Ôørþ§|Y5PôƳ7ùàídåÇ‹(kÍôùn€7ÁQµ´Iµô”㈛¸7u:³f¦£Í?€nFÚÏŽ"¶S|ùÌ+¬É¬¡÷Â9CP^оT‚Œ,IH€,Ù°Éöþ/K’›+.­Eôëc™6m&³fÎdzzÎZ‚lØ$ D„}€"…£N  ZUêÎ^'¦3kæ,f͈Ç'еłu0ÛŽ„,[±y'3Þô›*†YïìGâ$/ö¾ñ 3®'@ªãð§ïñþG¨—/´MFB'¤1sÁÜtëxÎü宿ñSÎ""uVRhN厥S™2#Pm3 ‚ ít6 ¬Éê*8ÓTK‡·7žå'(«à½zÑ«W/zõêC¿G:ШZ"Ú@©6–@D‰Òs‚íYétëÓ†V-[ÑØlã¼ @„äõâ=a¿˜õAº–íg°7ÃJÃ÷Ó±õÝÜ™ _Q⧉%¾«(Fú1‘ýkñÎO¨Ù¡)þ-+Ø$–§Fz¹’µ±•º]»ñÐÅçéE¯^Ñ£[=â~“]–#w®DŽ–‘‘‘ùKVh—Þ‹"W“WþŽRâ/ ‰"çΜ¢ÿ#ý¿½ó÷·0ñå1T®Ræ­Ú¢P(KªN¸,XºPŸ7 º´ï.GËÈÈÈÜL´ÜóÊ«œxö~:NÑ¢Q¤Ñqêê’ó<ß.à 'Vr4÷ ~”:ù˜2k.+wÙX¶a-Ÿû˜þš/X¾}=þ_~dõ| Q‚Úýçój»øk~«”{Š_}Èò½A6}¿•ÏAlËgx±Ï#˜ÆM¢×Ìã¡—Þá¾¾-™5úÚ:b(W»-ýžé@ì™ÕœÓë©S¾, OÅ IDAT*àöÑOòÃcè>ÕFqnû¸1z%dmZÄ'ûbÈý™$?Š˜2ÜÓ{õ‹Ž#Ô*ñy˜-_/ã³Ã 6íø¥ÏN|§ L®™Çœa=™è¢” ©ùÐBFW¼|«EôÚØ·d4#&Tr¦°'ý‡ô öé)Lº§-Y¾šŒBªÑàÍåà–}8;>ŒXbèr×½Àom#·PAÏÞËé1n=ÓK><ìÇçõàö'?ÿÄ¡¸²´(±£¾0zÖ2öüâa_›÷¸würž™ÚœQý:ó‰ÔBg¼JC\Ï>É*ÝÕŒê§æ2£y[2ñ44€:•Ì$ }”}OãÁi…å¥Ñï£FDa Å+ój·Žt4©PI·1|yC4:' [WfF‹¶LÓÄ~Ow·H%N¤L|›‘­çkO¦Í”gI1ë©:n{|ˆ.’oA†¯ºãw9s—?ó»´y-O½ü*'ž»¼o·Ks‘Üã{^my/“ Z’«·¦ÏÈN¤²åÓ7?,IÈ%±ù«<_­<†Ó+xlÜ'äÙˆk>’×úVC‰„ßq†}; i à/äç/f1xÞNbÊ×¢ÍCÃxðv rtÙlQ¥Ñ·V’;‚ë1bú½Œ~©;•A$gXý«MIú~8=?ráGä±ÒzÂŒHŠj ¤p·§äte4†P6Û'µç=…>àQ’R³6I?PŸ/tÓ–W:k zsŠvûy°_$B۾ɜ¶ˆ~­g.ˆ'¹3‡p{#¢‰R×þ9t»ÿ}ԨЦwdÊ+M/û¶ðõg"&6'gùZ;ËÓ᱊왴o“&4oVÃßÁµŠR“³çS¦žˆ¤+"öÖÇظÁŬ×â*ŸÄœJËãh×:‰ÍÛ2ECÕV=Ô6’;øË*&½ù.ëö³vëùvÌdÐk9r.@ïŽïÓé•5ô}¡/wÌ}c/©äa;{˜ß'rgdó€Ð‰ Ìxë’ïÙâÙx.6iý»ò‡¤bnyôF§‰ø9ÃÞÝû©Œ ìç¾cÆ ¹L7¹1¦ÝCï!i^õ˜?“É=Ú’Ul¢AßQm/œBÒ():¹Éƒf3Ùè˜ޞGµ!‘˧²ÝX›§ª_ˆŒh1~ {{>ÀýÊþ¢jŒXÕ…JA³§Ú1éÞö,2ˆ/ߊAs«b T;4ç2?¬Á-Ö«¬EÑÆWé?{#gsD|` ]_YÁÏ<ÍcZÐÞn&.¹¾0Š6 GX}ðž¹ç^B*U[?Â-nå²KüÜN¿žãŸdâèhT Õc䊀göIöï¡=@ÖQ¶³”eD6îù•ÏŽµÍ(^~¢-‰‡ç2xÆgüxÒÇÃíߣÃ+ëãaõÃYj•RAã¡Ë¨ßÄç¾ÅÔé .ÜÒZ£WW~yeÃÛÌ&·8™v3ž§L‚ŽDﱟât;Ih9šÉ}Òoh¿p¿ìÞ‡ªv»ˆßviÒÇ»ÿMzÜ¿ IJÌ–Ú´ï]™/rø+ôã÷…‘ ÏÏ[žÃïçͱ¯óÀâbPñ•ëü‘nÏ¥´ÜêøVŒê»•‡Zw$E/á•¢©Ð|0·ÜY Û¾YŒnÞŒ"ÞØfŒx²2n1LèÂ5RÛG@‘N¿á-ødg>‹•FÏýã?¢wU#‰µ;qW¤5K-ù7çä *®d=p©)µ R%*ÇÅSÏuŠ/¬§÷‹í¹;ú:Ý·˜¸-Ñ)µIMM¥áÝŽL›Ä=íCT©–H¡­B¨&O <Å“Óç}‡Ÿj·WFï "JaÜmÙ–Ü™Ô^}vÑmÈ žjuYc„ÏnfîÜY,ù6õÊwøväû<—ZÄœ¡=™è,µ®ª$±r+öÆ0ñ K$?ŠØ4îë?’;²·òÚà7 Ú‰©J'Ü’$ü|¿ð kµd@×:Ôª˜Àµ¯]W¡+Û‚&q=y°ß.ZÝÛ…*Åchuo"©e„Õ·Òº‚@ ÷[Þ¶€wbµ¸µuyôÅžTŠÛ×åÄ/ÜΨ©Íѧ3ËL€ Årûæ<Û ƒ!™M’¯þÚ ‡°ÛK tAâu¹ðÅ?ÀCu{3¢Ëz¡bƒjÄyý„Qc®Ð„ZªÇèñøwôò*½n¹pL.ŒßçGð²)®`ös™éÖÞ "jG„%ÜîHöI àöhB~¼^‰P¼^Cø%â{|j[¾Á]§ ñÚÍ@Ùzõ¯sC¢s;X>)—vïtEܲ-;¢è0ævN½·–³ÆtZt¯W²þ‘)=%ý¿àLùò‚@Q|"±y9H¿ÑHÌË9ߨm$­‹ŒŒŒÌ_ŒZÁeð¥(Õÿžúù‚ú(‰"·‹.í›óËáCÿú:5šL¬\³‘*Õj¢P–l ’b‰ š–.ý|ñ½ ?Kkø‚¹¸pJNâò×”~-###ó7ÇãñðÙ_Ñ«GgΞÍääé3ÜswSü¡q+ ~ïmðx.ÎkŠ”T ï½H>ʧ•çæÆI¸rÏQàA©'¡l|Dȃ¸ŠrÉw†Qª(±q±D…œäã ŠW–X…ƒ<»‡PðâÍèbSI2FθCAòòòHMI½¸Éî(* ÈŽLàbetû×N¦¨åúV)䥨VˆÝw©œ*s")‘Ü‚"üÁÈŽµ)%XíUJž¢lra” …&kbJW!v|è±&[1éÔ’—Âl'*«“6rgTÈ™C¦ÍR" ̉e‰¹”ÿ¯Û/¬ÅbRà²Ùñ+ ˜ÍQ¨ˆˆÏÙ….Â’„1ħoð’{.¯‚âB;‹=NŠ] bŒ¨‘¸Š(È/‡ØD+f}D¸sæfSä ÆHrZ\I$`ÛÙ,(U’SM¨\œÏÇ£%kL D¼¶ í.D_&ŽhµöÌ,ŠÂ"fRÊY.‹ ’’òë2ÈUÏ\žxƒp¾-öÛÉɲ@E”Ñ‚5Έš .[!Ev/!À—JœQƒ"`'3·˜PHB_ޤèˆÔ(ä…‰IA#…ñ9ò9oó Ö™ˆ#Z[>{>1гÍE•ÒG~fî°èˆ/Ÿ„ 1à$7«?JM±I‰J)›6› •J…Éôß®9dÛPÒ¿•S\2M{a>Ež0"jc Ñ*Šl…¸¼4–’cn,ú×érâ÷û‰³^™ÆÜGQn!N_¨dCTICl™L*»sÈÈóEk¥ %™¤h€»ˆ¼<!$¥kBd\\¯ã ×Nê÷û±Ùl$''ÿ×9ÐkË"ߌÀtÄ•K"ÒÔbÀE¡C5΀.lùù8ƒHJ¢cãˆ5GýæJQÉÊÊ¢L™2W‰y>‡ÂB~4˜ãã±Dk#má·q>ÏIPŒ8ǦäRsNØIö¹ü :sIf—‹€¤ÅlÔ–¤ow’›ë@aŽÇ­¹fŸ=w–òåJÅU‰A\Źä;"v@eÄg%*ì$¿ ÷;›JœY‹àÎ'ÓæÔ[X˜”†Uç§àLN”ht’’Œ(Kê±0/gPMtlÖ¨Ãkáv»ñx<ÄÇÇÿÎO ûÝØÜ*âbu„‰ TaŒO!Fé&?³ÄžÆZ±š#ó³ä·“[èÀ‘Baôqe‰7ªñægï #•Ø–¨€—ísÚñÝß2ª~¤µB~'YùxÐaŠÃjÖ‚ßIA±?Y‹at‰)XÔŒåékx¹¥1’©ãJÛ¢Öb¶Ä¡ Úȶy­9k¬ñªˆ~Ñ]Ày›éŠù¡ðL”¨µ’“( ãw:pø”˜ãMa.à$¿´ïi-K‚ÎGV^Ápd“ÀœR‹&bŸóóüSâÐ "üÜb€&ÚB\\ Z® ‹xC,ÉÉÄ蔢›ü,?†T z!=oÏÉ&`.K|”Pªo“—ÉÚ¢5Yˆ‹A#Hx‹sqÅÙk*é÷ÅY‹"(bH)S"6z)8“KP£ÓÇ’˜`@q]?ìŠæÎ%³ÐBE0%•Ç¢ bÏʤЯ@e&!)M‰])(t@1.«ñ /ºÉ/KüÀ EgÏcG@©Š!9ÕŒªd,ÛÝ , FT!/EE…ؽ¥|cc< V#*_YD"6::18›œÌ|(”*,É©•a¿ »ÝÊ’„I}iÞðØ °•øŠ eã0¨þb2òì„Ã%¾˜áŠ‘.sxËç|òSMÆ ­Ñ&Ö-bKž™&½;SYå£(× ÆÌzõ¥ç»Kæ›K»IJ¥³Õ@Ы$6V‹ßíÂ[âo;í^Pë1ê%yù{ˆHH © JŠm`I0–ëA ¨üØüsÜ=øäÉ\äå; * Ä[õ„üZƒž(Aô_ÆgDƒ‡ÜŒÿ]0%•âtpâ«÷yiWEÞæ’ïrÙñ…Éb¸l¾¹6>l9ALIÑ Ï’ë¥Z…FoD§ŠÂl”päSè ¢ÑG¡Rè1™£Ñ«¼ääØðùChÍf”!5±V°‚5Áˆ í,ynƸ¬QWFߺ"v* FæK*‰ú 9y¶«ÖU×ôe­ D‹r/Ž¿XâbÍhÍ Æhôjå±Y"^Û9òÜ¢-V´Þ,ò]j­µ6£N‰pQl÷FBÔÄšdA+xÈÏcŽ7¢<×U¹$5Þð+öÓ½ÈJ¯G¯U!H ˜âŒàÈ$»8ŒèLf”!ÖøhRWá9 ¼:ÌñIXtf‚N»4Q£Ô„ÝùäÚÜBZ³ EHƒµ¤MbŒ(CNò‹ÄÅëý.ìnÐëÁçB¢“Q‹`ÛÁK3öPå¾èy{¹ßЇ$ÂA7Åy!Œ©fp»p»L zü6A¥–èßàÛ=w–ä䊊l¨UjÔjõU*©P($”lȇׯ?ómÄ¢¢«ÄÕògÏþ­5VY–‘‘‘ù“Q+¯KôÊËR+¸\†ˆá‘D‘p8Ä“}»óÍ—ëä -!µLYÖnÚEŒÅZê>`á‚oD¥RBo)¸´è[Zð•E`™*OøÏ•ðÿŽ6M^Ê©¸ºtzìNnL’ýÓ:¿vžû– ºÜ]ÿüVøßÀÀ&×€ÿZ~»üçr}ø¯ç¯Ën\þïäl™ÎĹ+8«"ä½…Çß{‘^µ’ÑÝ„Ïþ}ð߃k ÀrŸþ5®€ÿG³ ~×v¦·û––ÛÆÒð†ÿÿ03š~@͵ãimÖÈ×.Éü'!;G×ÍfÈø5¸Ë$¢2¨ð-¢Aьڎ4åŸ_$1àÛךñâ×:4D‘T©Ï/x„:7Ã7¶åËy8Ýn-CêÊÍ/ssÈZ÷"‹³kÑîþžÜûçÚé“,§€–‘‘‘ùpUôï+BéÔÏ‘È_Q 3óõ ²ø{ç33èÿpO–®Ú€R"Æé¢`!•®lIºXÇR©TÑêûBªg9í³ŒŒŒÌ…¹ñŸ·wñš…ÿ9q4ñw)”¿cq¥&©v†½/ý†Ï2ZßQÈ[Îþ8úÿS®¿eÙä.ýí‡IM3¥A‘˴‰2ènîݹÂ?³sr§þ›öYÚ覌úòŽß¹á\A_M@uT™¿×`2S¥í³|v÷p$AÙ[A­Ñ¢Qþ5ER(54{æk¾. (5èoÒgkbËÑ~Ô $yÁ"sIn3–(Q)åºø_" À2222úbõêèß kïk¥~†Ré‰E‘ܬóÌ›3S®Èk°g×v6¬YE»ûîG¡P^<©¹Û‰Ë/ø-u?pé{—¥ëd‹¸ì.àk¼/###óÿÖn)Ξ;û-ÿ?¹ì2rßù»PT\ô·,—Ûí–ûŽ\®Wù oîÇeggÉuÿ/*WFf†lÐdddddþÕ¿눑,ËÈÈÈüå†çÚ‡ò/FÉU,I¡pˆF%Èw&Ž{ž»îi…Á`ŒÜ,•D—|/D_ñãeuÏ5Þ¿ìdÕWFFæ_‚$J¤¥¥ýãÊý祀–ùÿF ¤ ?_NœúF‘S@ß8r 迎r h€sçäÐ7ÀŸ“ZFFFFFæïÍ¿í¯Bnr™?—‹'®¼_€Ë£.Å0‡~ü_­—+ñW8Ÿ™Á‡ ç#Ša$Q¼,µ6\žfûzØW¶‹œJFFæßŽ$Ÿz‘ùWux¹¿ËÈÈÈÈ~‰ŒŒŒŒŒŒŒÌ?Y–‘‘‘ù (-@^)D–þý…tÄ¢(…ûÜH¹ò~ÿ™3 Û…(Šˆ%ÑÓpE´uI¥_«þK·Ãµ^ ÿåïdddddþ­„ðyýÃâïø_‘`0€Ï–«QFFFæ_„àñÿÊ™¢‡ÃŽÝnÇûw6mR·;€(wÈ¿Wÿ–ÛEF濎çŸ7F¤°—ÝŽÝáÄø£¥—ûÛí8Ý^B7sþ y)¶ãt¹ üã&¢0¿Ÿ@è\p)€ÓéÀn/ƺٞŒDÀíÀî Écý"§€–‘‘‘ù+¸†bxñ^à’ß_HM,‰"¢fÃÚÏùéÀ÷rÝý ò™òê8ÆMœŠB9ë$(„‹=ÂwKWÜ ,”T¾tá5×Èø,§–‘‘‘ùc„œä¸AКã±è.M ‡üøýQM)“)âuùQê´¨U B¸óm8/ˆ­+IFõ¯|¡ˆßíÀîðTz1Fj…ˆÇfÃ"Jz¬É&4—ê Î↘¨’Ó³"A·|»¥VÑlF¯*ù{Ç6&¿~’»úÝGƒDno=Ö$3€°[¾€B‰>&Ó…Ì›slZ¾Žƒ¡FôïS_ž“ 2Ä`1F¡Âx m8ƒáHä“ÁJ’ñÚi;Ű¯¢ŒZHAƒÞhÂ]ú3DNŸ¯ÂcC£$¿›b÷wÌŸr’vàÎ:I¨øyOOe“Û…HÇ­CùêÕŽè¯·ê žcûâÙL_|°Áƒºjž2€féXúÜ,ÖœÉÆf¯F¿_¡o+J `ÏädÖvÞŸ¦`ô{݉CBÌ=š…³y}Ý/”©Û–Ǧ]åÈ"Ýyàª[n£|Ü)– ‹Õçó°WçÑãé]6áôö[I‘ ”Z-µ»½ÁkU@Ù98B^Òob÷[Ï3cÅQÄ('ÚÚóÒ°~4(û ‡NeC¾à§¨Î 6¼Úsé})Œ·ø8»öìaßÞ² |é d°sñæ/þ޳Á2´~n8î¯ÇµnN Ú³8“¿yãEFð ¥6ºr¬ä¹‹qß>‘OÔ½J=ŸvðÆó¹ôšö 5,Qx~ȳ#W’©P“F—Y³é—~å4‹ï–Íáù»8JážáCÔ³! ìåÃgÞdmF.Eöj<º|<}Ê[Îänï²/Z…VÙ„a«žç•‹S»þÃäQk8®‰£f›^ {±3éçËYo²ä›ÃdyÓè2} O6­Ltho?6—oC^üEu°a<]ÌÚß—¸â™«[¢P\Õ·ßç…»Cü²f6cgíæI IDATnŮ֑zë}<ñÂS4-dÛì‰Ìý|ޏhDW¼ö:½ëã½'ßd£×EÐy­xž’ŒWl¨qtËfŽYÃq]µ[÷bà ©rn ïÌšÏ7GÜh5j‚ùy8ä“>fOXÁ¿Ñ@»Ys\W·è^î8â­D4”­Ó‘¡“¥ö ïJ-äéÇVáˆPF™¨ÿÐL^éªãÐç3xéï™ü¨*´á©£¸ï–“|>iŸì;I®«ÎË£uË û£s‹o/3žžÊö|7*‘P0§Φ“)›£«fóØâýĪüÚxªÝÛ‡þ3Y¶7ž½“(ÿ!ÍÞMìmy y”žbò¯lç?< JøYÍÄ1rØëG”Ä?°…uÖÒsžš…ï -ìäø†éL^fa𜞸–NgƲýxµ>”Õ»óì§hVéfÜÝ*rnÛÌ™»˜ž»9eÝëÆptÍT^úè!l'¶å$¦?Ýkî' ™ cæÂ‘y$lãðæU|º×@ãôŸ™1s3R¼ Ñ©¥N—<õh+Ò7 š‹!<ö£lùv/ÇNU≑w^´v÷>Þ›vœ:]Ûs÷m)¨Ñ]@–};oŒ.fÐ}IS(pf-gB×…0ꉱ¶dÄGCh,H„ÎícÉ»ï0ÿÛ”oÚ‡áçŽÔ¿61ž P£ÓþöæÂÙìZ¿“l]]ìPõ:BÆ>&=–g6|Ã}–¿û]M”Nü‡§Htòóê9L™þ9ÙñÎZ y–'»ÜJÜu†Ÿt¥OÒ}6¯?ljs™úì:Ž©ã¹¥C_†>×Ê€äwRäÚÃÛÎÐ|`gnOC)zÈY÷&½çï@ sËÀEL¾7â=„=rO§L»(Ü4ƒñÏoà¸*z<°ámIóîgÑ„·Y³?›°ªÃíc˜>¢,tvûVâ»N#þȺ?¶ gŒ€ÒÃíÎ`lÇ7Ïcò¸ud[$Šã1xÐ z7J½|:qmßÎÌg‹¸°/” \¹Ë™xÿBö›¢0™ïaø²a4½Fý~ßÓGÖKyyà|N$Ä¢vë©×å)† lEâkÿöröþ’EÅn¯òú#w’d¸¼çå|ù*ýÞ9‚F¥@ ±CT~ü=>hëæ“¹³˜ýÕ1ÊÝÞ…ƒ‡Ñ¼ÜQÖN›ÍÇ;Ž‘í®@÷·^äñièÃn²ÖΦÏv %ê ú€×ÚÇâÎÿ’—:¾ÆñV¢üÒv㙉Ýp¯˜Á¤·Ö“oApZh3êEžèPK©z ;sÉ(ÚÎìçÝŒø°/eìì^:áË‘\¾÷œÎÃUϲñÝ·xçÓƒ¸C:ª÷ÄàÇÚR¥D”}Åì˜×“Ñ»:óÁ’A¤ùV3¹Û|öF«PK¶z -¯ôAgؼ`6o.?LXïFS½ÏíGãŠQˆny®ÌÏãïô¡J”Ç õÌçdk•è4UèöÆ zUp“ñÝ"&ŒXIf¬€#æú<5šMòYúúlVîÎ ¬²£oð SFu¥²q#sËVчß^—AëÆÓÙ\bs%7Ûg1pì÷Ü=þmži‘Á“¬^¸‰â¤f<ڵƵÒ­cè0?LÙ›1ì*¢¢J õÞ_Ñ÷±¥hzOá³Áw`;²ž×&σVSx½oí¿^ R™)×l"ŸMi‰Â›Éú·†ðÚÚ<¢£Ô„ù—¹‡5#°q˾;‹Ïe Ñ³“ѱÑÞ¯yóá·Ù.ø‘¼xrå³tîó.{zœdéèwþZÀkè«§¾ÆÛ¤9/~:†{SM×7EÜE;ø`™9{vRÿjOϰîÃMäY›ótW‘O l³f4«ô (Pk5¨U7nÙDÑ‹+7SÇö°íteú÷«wƒ¡?3ãÅÃ<8ç zVQ_×ß }¸Šübn¨ï˜7ž¥õçñ퀚òÞÉrrÈÈÈÈüEëLáêW¦#¾ý»dá|NŸ:!WÚh óÞzƒq§"‰ …âbð¥{}…‹BûuÛ‰Ëuß ¯¯÷¾ŒŒŒŒÌÇ¿e*O®¬ÉŠ/'tqy’;—=Neâ"ÍzÝzQd gnãÝÙo±òt}jhU‘ŽÃÇI|õÖT(æãn#ø¢°#=â¯ó¥. ºñZŸÔ1Ø:~"÷íñzÞ/±¬E4ûÆÑtÞNºŒoY£$Ë[<óÎ~‚ÕGÊâÎã»O±:Ø][RbÎWR«®•£ó§àî÷:ŸÝUÅî¸ã­<ðÚ½è]J:,Þ@¯ €g'S;Mg}Ç·h ÅEA”> Õ’”x›?Ƭ§êREëáËácÙõýqª9O÷Â"VWW.Vôº‚.<˜\*6ÎgçàÊéŒûÄAíŽ#‰27~ÅQ±ûêõHÛ‚ý|>1tªR2•hK¢½×iç?Îaæ<¹™|ÆÔ4€Ó,~ߎ¢ÁPæìoÃûëŸàÅ†çØºåg˜Äý±ö‡šÌÞ2•rxù~ßQt^\ó(ÇoVj=ˆ­[1Ênb4"çVŽeô¶LùpYyjR*Ç¢!ŒÇVŒÛ§Áš¢ÃžyŽóRÉ•+‘lð‘™%aPœå\A,•â$äžþ‰¨´±¤U+ƒáåY‰„‚åiÕs½†7*µYÿ+=ü ŸdÚýÓXZ«?Ê­'è¶u3­Ã?0çݵ¬ú².£Ú”!|f#sfÍcMÖÜ¡)ñÅvͤߢ$Þ^½†ô+¾Ñï÷R”e¦j£Lv~užÞÛ7ÓÜ·›iïnfí–ú ¬î%ý‘ ,ž^+…,íú,_mD¿ÛÐ AŽÐÓâÅ8¤³zº~ü=Ë/ûkf?ýß6IŤ:<ùÍ(áÄÒ·ùöðOœi˜JZ©¡áùq /Í\ÃϺ^ ÀɦIó©²ò[¦¤„8øÉ3Œý#M‡ÖÁc˦À©"®|<úõ=Mœ>í!6½f%„ÃñÔ­ÿ"ÓçÜG̅œ^ÃØù¿pËSó˜~kÌu[²L—™|Ó¥ä…/“e¯Ž¢°œÄ®¥±Ý0€=[/…Ò^¼„ì[º0wB+â̢Ò´¯’FåC3yäƒæ­YKå‹B’ ”Mxš1_ô+í^ÀN%î}ômê_ïºãÒ±ï=ž›µ‰sqGþ&$sÛ¼þS;6ož…¾ä;NlüŽŒP]fm™Iß3aì¶~_Êw¥¡³ñÝ¡ì‰nImS Zµ—£ß eÑ6¾¬™«‡ððÔïh9æŠh?§‡¤»z3õÉÔÔyÙ4æöî=="ž¢,ΜÍ' (41¤”K%Þ"÷ôYòìBè)S½ ñ*;g²ÌÊÈ|[ù–d@B úpæ¨2´¹˜v%·ÝîXć‡sÈØt€¤¦O³|Òmè«è6â[N´ÐrlÀ4ôS¿am-àÄ›4}| ?íG¬ËMàÂ^!ܶ| KgTÕé5i™ãŽÓjàýÔK’‘á Zy–ŒIP’œ^‹µ3›äŒVMöé“œÑÆ‘höröx $¤–£L¼@~ž)˜‡­H‰µœŸKBéË%ß%’˜^MöÏdx”¤¤×$^Æ•}‚c¹^”‚)‘´ h\Źä{ñSV#Zvo%Æ€/ÙÇÏïñ!Oz2‚6Îd)0©Îr._@¥Õ’R¹*± ?EY'9]@SBy*Æ_È’¢@œ“¹qIÄ›µ¿rØÉOî±9’‘ʼn#qtÔ‰JuýxìÅ:ø}…Ø\–ÔÊ”KˆÆwè'Bô{Ø'T£Ne5ç>‹]¥*‰*5Ð á)8ÅÆ÷6aèÞžê–TÊÅÿ–ãž[xg‰…ç?/Ã…?˜[P ÖÅ’VõŸf£ÿZdXFFFæÏæ:÷ý Bé_K%âoäîßeKý­aÚ´iW½7jÔ¨¿]U¶b)£žK´)A¡¸|¥p[:*øBêm9 ´ŒŒŒÌÿ /_¯=ƽý»rnÇvN©tT¸µ>É Á˜JóAsy·úg¬=I‹«FBU©-ÏÌ*‹~â>t¡’ÍŽ½èEˆ¼#ßsžKQJZÅÿÊ»¥µ-—¸bB<‰åNslM]ª·ÐGîϪӜ¦3‘!‰˜P’ÚñuÖ4ZÉ€WBˆ€ÛžË±S6šv6²oû6TqeI¯’†1²+ÈÎ_ô”k˜ÉéŸê“ÞICÐÜÚ‚¦³NrF©Q÷Qz•ØyŸGET$¬j€B22Nq4§<÷$V!&ñB9ˆ©qÄY@¬Ñ•îˆÝËÉâò“î¥EòåN…"*–†Ïei­åÌß@ÂIÖ95‚#x€ÔZÜډπÀ>&÷~› 3æ2°qZڽʪÛWñÔ˜0a)Œýô.¶:Kj÷wi‘±†ÏÏhÐp–åS^g_Â} {¾i Ý­òÆ¢tžv £B“ªœÜ¸ƒV‰ÍHۺ守."'S d«ÙˆLªF=Éž]ìÞWŸôºHª¿º÷pç§É`ßïîLû´ÈæŽõ–æÜºþ0] dÿrM¢â¨[‰Ó…{Øs.™˜”rD¤7¤QÑO8»ؽ£FQ¡«ßš;ææ4Í©pCýøÊgßU}»b½úÄF[(“næäW{ô)’i”_âwØ8ñýfÖÇf“”\›[ËŸ'ëtcj¦•´mÙVôq.àTÒ.®Þƒ|>|EH×$S=¹,öS9äÁ¥¨’ó‹y{ºt¯2ÿ Gwofk¢SC›ºÑ"!ÄS|ˆÍ?|GU)Š”jµ)cø="§€²n?*"ü~5úªq˜¬R[‰Éò6ÇgÈ!ã늤¦ÅGúC¦4Î;Hv0H*š?…'(Q{O³çë/)L4¢Âˆ†Š4¨acãæxÆ|Ò“¤ ò„FMÕn} lXΑëJ* ½ªoß ,$•7Rtx›Ch^¹}‰|cÕÎ/zi_‹qñR…(YV ªCì>rU™JÜV¿î“vn¿ _H†ùô }µ¡ÂÅÀøT\ú;{îàô}¦ë¶‘€ˆ ”¼ ƒ1ƒVuCQ, Cw |›÷k~ʧ/Ùe…VŒ˜™Šþõ½è.¦ø–06ÁÂú54¤0òŽx€wwæþäH’ª5¦æ÷'ù%'›ÛGݦ"{¶mEW¦ éiIè…¿Ú&  ‰@ø$;Þ{ƒù› 5)Í»òôÈŽT>¾Žo¬a^­2‹#ž6¼¹`õã ]Äjè_}¼™¥Ž°ÃFæ™#¸q“sôBëLšÊ®%ÛÈ28Y?c:_WíÌà:‡˜õÎI°(PˆÕé>ÿYYO àÐW¼õæYZú"õÈgÏç«ù¾¨2½z[ؼàc¾=‹ß£ ­ó0FÞsŽÉc’^ó0ß¼“g^3ƒý0kçÉÁ3 z Ü=á žªõÚd.2îbÝ>‰²æòT©‚Quý.\á“èk™P{²È<ڜ۵‰T‹)ÇÉÜ<Ü”ÁPµ3/Í-nìOhB߬=JëGï¦`Çòån½ƒ²‘T ¸ó÷±ýT]ÙœŸ¿’ÝY6‚.•º`Èå9ôõ6²²¼;ýGjujFƇ*Æ}Ö厷™07†Ÿ "õȾü¦&ÒÙ÷Ö|>=h'ìÒRõ‰<×ÎÃ&îBŸø3‡Ž7dÐËqˆ‚-ù\ð&c¾Ó3pPUôújÝäËÕ'Éo•ɉ#ÙÔ¹³Á°@¸ð0_._ķǽ¨‹üÄ<ø¯4?Ïôö“Ví? Ì;޾÷g¼Õ3¼=2me:@¥+G³Æñé_Íûí(&ÊTÌIG:}ŸD÷„LV¾·Šýùv‚N%UúŒadý½Œr”FM±û§–ŒYÔ÷úÑÏÎذ)UÍŽ´¬{‚Ÿ~>ÁÖ-"ñau*W"QŸÇæ“wÒ°¢( r+zÈ  Ñe|…ü¸b6ó.Žç’9Àã#ôáv‡À¹…I£¤æ­ÇØ{XB´Âüð*¦ßw’¯?ÚJ†BÏÒI…ì®{”ûX²& 5)-z2âɾž÷5çGÈ)ªFÏ©|úÎâÌç9}ôê{ÇÓäܾ9x룫y£³–Œí ™¶&—(QD_›öÏäîœÿ~;‹÷ãý@Á©²ôèߎFÂ&fMÙB¦èÇ“i¦ù»ù?öÎ;@ª"ùãŸ79ÏlÎ9r˜%çl@õ<ÓN½ûÎÓ3N18=Á’TrÎKZX6§ÙÙÙÉïýþ˜%#²ÜÍ÷Ø};¯§ºª»ªºª»ëOºïxâþBºõÞǪõ"r¯Ô{¾à¹nuìüá=¦ÿXƒÖãGÛbwÞÑ µ)‘±‰é÷¼ŽöOÏó§k30Å,Ôî[Áæ¢Z¶ÍŸËóþñ6~õßíÔ‘—ZÏŠv¡ ·qpëA(ø3{¼%_þÄa¡ˆÊw¦±,s(tÜÏŒ·÷â3ƒ§&Ž¡3Ÿct¨ cLýÆóú#¯ðc÷Á î‘KjrñÆsø?­`C÷þü5\ìì_0›7ç­¡N&G­I¢×12÷j²ÑWÁpAÄï¾4;ñ¿ œýo’$!¢ßφu«9tpÿ§{þüù´jÕŠÄÄijþýÑGeïÞ½,X° Ù$ƒìv~»€a#oFep¬° €Ô”»mJôžœþÕ¼n0áDAq °m¿xÙé}‡B¿î*"{Mç©[cšêä6àhô Ç’PMÖÑåÀu,w.ö-ý”™ÛR|ç@Ìn@}nû `ß¾œM¶Hº¤gàÖ/Ç+ì.Êb®¢R<ðrÛ]ˆ‚ —cW”Qí™ÁzG>m6ýÆ<ÎH«¶­aV(“¨“mÇw¬Muq~¢ò”'*ØòåT¶F5PUNqÍAü}‡aáDR§ný"6{3è›ßtjÖÍåŸóñ†úÝþ+ýÔ7z‘!“²@ÌDT9pÚðªâé|mo¢´'jnbƒ ?ÚeþúC,yï>³<Â_¢òíO[Ùç’³£¬©]»¡Ð%bN⮽¯("¬#cYòÀ,~ m x›‹!³þ¸Êõø292_ ጙÐZ.›ŸÚ_"‡Ä±÷Ý/ØíJㆇF[·ŠIÓ²1;UÃz½?cÖ_P6*%ºþkO(àðWs÷« þÁH"®ßJMdz8šå‹ùîÕ8m¹iÜ jqß ¶|¹ŒÊ–ù6¬ŒÃ2Ïq{jô€ÌV‡§­¸}" `'»ÖyØ\õ{ Ç!ôÖé<{_*·‹òÍ+©ñ89îMü$÷6Ùy=&—D™§4鑊¾bkH7þ¨AïX<Ÿý·ü™¬SôÂQ6»{«ëi#¼Wud3ß}´wÎZæœÞדõà û©<Þ?9r½‰ƒE”£':«=ÝaÂ…ûžòÐúôפ |‡12‚ȸe,y{*ßÈSpóu„®eë¢lÚ½•m¾”‡xôá~d…(Î2$z&ê¾æCÛz–þ»†½û­¼ûáõ„Îâkµ„¶ƒ‰šòwÞT[ O¼—á{ÙTáCÖ‘cÍ´,¶¡*YÈãk7SÔ2]Ãä=ÿÅûÿ§†CïÒó™…TŒºäkæ©ÐØ|vlúy߬Ě»•5ÓxvÁ#är˜9o¯BE!s&¯Â–[À¨3­[Ês¯Îcç?ãÑ96¢¿n.? H>êϪ‡$ü¼‰"¹‚î}Zkr³ë‡Ù|»â{öï("ã¯o£0Òº—›uÿþgŒAf£:ÚŽ£áä`*€–ÈSæó¯™2-:ûz”ýçòÑ_€Â·èùâBê‡ßÂ}ÓïæÐa¼öJ/*Ö¿ÍÄ×BxòëWöyêb¾[äGíݹ÷2i\{ŒÞ,®ÜDÞïówõ¿èwÓ|nüþ#f¿AÏW¾£zèhr†=Ê“±{p¸+Y·n5ó¿/äÚ±Ýèr½ìðÞŒéoã­ñkÑÈvóÁ¤%Äß>‘WúDÁ–è1áFý]‰¡q¡#¿à“?Cãꩌøô{û\G—‘ÆyoÃæ¬)bÕ:‘ 9‚ä¢h?°ŠDÊ3øQŶo×°mßb6U´áÎ×?$À_* Z¥kò¸.üáÙQ${áÉ¿¯gÛn #ŸËöÃÜþÂM¤«×ñT·Ùôõ%·$AÝ’Çú÷¥ Ÿ62Œqxúóþ”þ2‹©}JX« êÚŠŒ”г^/]YQJvÛÂ$’󦿼™ü7ËAÉ®¥Ì™ü5½ÞqÙè+‹`8ˆ ‚âJ,óO»þùx]`!à±jÿúý>¾ÿå¥uÉ’%téÒµú?ׯËÌÌäÑGeĈ$%%5 ^Ïûâß\7l$‚LŽ\×@Ÿ,é?çtƒyß ‚"ˆK ‰ž<ñχɨYÆÓc¦³îÖérÁmè|ÿkt¦œ÷¯ËìWq_ֹߨ/ZÉÜOvß{í¢dº@vüZ×laFôÂÙéE=ñÉ·òÔë#‰À˶O?à»%ßSlŽg÷!ÒL]ˆ1Ùê•!?ÞF¶0†ã‘‰*ÖÌüŒåû;>7põrm% e6 †›ìŽDÍÞøâ³#俉¼„cwÙjéx÷D:RÍÇ×ÝÌç/ÏŸòÎÙE@’5%Õ\4èU•à%‹ÑOŸ›Y¢\@Þš”ò¥|öM#Õe%” Z¶÷aÔˆ1t>.ÏÓOŒÊ<ÅÌœø#­§ÏäÙÈF~~÷ï|0ó3*Ÿ¾‰ÙÉ<I’7ÑçÄ¡ScÒ(ùdÈd²“äbÂ(øñsì4¡.' áFô¢ˆ_<öÜ‹G’Qƒº¦ñ8mØÍ:´ }räÇ¢šÞê-fL—ltŸ:¶Ÿó‹º¤tI£¾|¶¼3ýsÖ,\Kû‘ÉrÏ ¹pñÝŸþÊê-ý¸ï™Û©}éVºPˆÅüTQÀ ¡§.ãÍ ¹á;3¦.`¡ÖCñ~ŒA}‰<&ˆC3ùþHKúÎ'T^ç¾%þoïóX*lÿô &̜ɑÜA‚¾-·M}ƒÛ€† y÷¹Ù¬¿)Ÿî½©¾ŒŸ>œÃÚ£©Œ~>ëx2·±bógn@›?˜n,tI “¯ƒú=:ù%¸^Ùï¦1¬?1š–“Rɶ˜ µg~^®D$ÉN$žeMãQ’.£„È.åå.@ùbžžú)ëÿ]GëG.“Hëy;–ÝF šîMV…eqíƒp-UüòÅtžu·Ü}7÷Jº„ÉK™’Á€±ú5öÀÆŒA£FjÍFŒ’„xŒGMµL#H ø(Ý»›•âZ6m cìs¡gŠåw61">ÿ1} "z]4†иÍdwº›_ˆ‰–M~›­«¡Un¯S ¿ÿ¯·[®ý`ZhÂIó8¼z5kB:еeBà í^¿Ô|Ö%~Þˆ®´ËI lR’ëHÖêÑÉüÐàÂïwa÷ID=JuÛ;éà&4¾%Iomg'=¸T•ýä3ñÙY´i‡,r4î(ú¦øIë xW1Kÿ]ˆ$AlzBôàM¾‰~¹>$’™ÉQlˆ%­ ÅåTÀU\–Ð’Ða8wˆ¬ü«7o§¬M/âÏyÿ„O2f|[Ô[æáåMóǃK’^{–½uàÇë¶òÐÛÐÀ¿–gúMcõ§ÐÛggß¶Ã x0ÆâupÜÎ{p)­¦)èï§dÝ|žofÕsý½#É:§ýòãOÒž&ý€’Äù³Gไìºõl¾g/î¾WÓ»JBSúpÿ›}Ø?ÿ}ýò%õé ¾g4×]—ŒbÞ; E-I ‰;Ë&‰’Õ3X+<À´D%uë ¤¶ø·½~=!8Yû·¬_¹Á«&ü$[j·èÑÊÁï.àáÓÀ·–¿õŸÊ/˜Lsî˜Ö;€Ú øpòÖŒxŠ.oâ¯oüüüâs¬ß¶‡Ö-:}®±#)1j†òòëw“T¬žÃ»Ï`®!…G þô9b çñ›ش1›LK tÛY·²™»”Ú:7«×ÇŠü„_çlÄn>­dÀ ?³îÀ|ùé~Ò†Œ uŠé¬6ÁYĬɫèøöÇ\jcÙŒçùlÖÜðÄpB‘’Þ›û¦ôæÀü×ùâí£ˆþ‘Öz‘²Mó™=×F÷ûn"Q~Ñ«8á+ºÔ‡˜Ï,eàw£3t ;×ÊÏÛR¦L$ÑÖ€-Ôѽk±ÕnC’Òò[aÒÊÁåÂ/¹qˆ"¡B&aõþzå­éx]ëÞýŽÊëô )Èœ Ä´í@"@X*¹»¨*/¥:i(£óÔÍ”’€Ìq€EŸWÓvÚD#Ò H¢½9™ŒNeÌù´œ‰_´ÆóíndØ)Úùóg-cŸCB§ªBYf¡Ñ«Â™<’~¹y‚.”lµ÷óãdzørsZ“G£—Øð£ìOR#kß=àëzpyEÔµvQ^o_EMñz$dä´éˆNáCLË€Œ¦ŠÂ¯Ü\bÛʆ­Q'ÜFW³Ÿ?üžºÖÃÿDG+ÿÉß¾šÏúö2à¥Û¨øûG,ÛíGî-f]uwn2€Tsrc&Ò{ 'ý?ÍgÑ‹/e4r¼H(ô¡d«ï¸ìNü^'¨¶©Ñu8É>{t8È‘ØÞäÇ6Ǹ<øS[“mñF2ó»ÑB¢>œµ€Ï±—ïß›Å×;èMnjêÂÍv@‹ÏãÂírn¼ÈWUP•t=#suydZi³õg¶‹Yy+âÉ‹ËF– êk·ðíÛŸ±ìƒÑÁ‘š0ÒrœØ!¢© }ô¿2‘«Ù½tö®CÔ2òL›'úðYZ•×*0EÑ:¹.>¯‹‡l‡)k9ŽG’Š1ÃJÎÚÍlc`À>49<¦¤¶ ê®`óžB6Æ’ü+ `Éß´#»¢šªP7»¾˜ÃnŸ‚™ŽñÁÊ@dAAÄ•ÅÉL9%bÓõÏ>¿ïÌ»b´•——Ó»wïóJþžŒÄÄDÊËË›^¹œò²ĦS&’$áüq[8™q¥ë…DA\­H$>q+6-êäjô/žcG äZ45J¥¦)àØô9¥BF«G4îÛÈA÷±6Í„FzðzÏõ½NÊv-eî';‰¸v #ú&!'’¨ø#T:ü$Ǿõ¬M'ùxâQ@­U#“«Ñ!C¯3£6­c½#°”’«å(å`gEC4f"ˆŠ;H…C œžÛ³–5™‰¤8÷³xÖl,NgìøÑMuÙœØjj©t·'5 #[2÷óƒ$½“ë âÑ΃[9Ôx¢¿!¿Ö_™V‰R©FŽ‘°P/’º@í>¶›è-!è(á繋ÙZîl:•ÓôºN…\®B( © ~ä^ye<&½ÄŸÆ£ŸŒjobßÏ+ùyÓaì'WЩ‘ËUh *`3ë·Ä®ÐÑyìh2Ö­f«G¶²|ѱ`1‹ÈtG±Ø±SçGaÊ"#ö• Mr)\ÇšÌx’„$·PdPà(ÜÀ¶œl²ô{¨ð×pÈU-&—¬ÐاUJw°1ÆH¨:Ôä×®–v¬fm^in?¥Ï:富mõÕ»Ù½7–s[ú¶ÉC¾»’† ŠË*±{½`À`öÓ@2#Ÿ|ŽñÇóxÿ’z´& ð×îbñœM.ºU’1„'¦½Æ„çîfH÷x’b›‚“N–þk ú>-ÉK4‚¸… ÛÂ0+t徃V×°Ñ RÉz¶Ø›â›õ^û~v×õ$7”júÐýT¸+Ùï·áŠ‰ÆŒ=?}Åü6:>ù½S MózJ{‘Ÿ bþûð+vÕ·`ìsÃ'0u”íçØ¶ARíãTÕB?Èeª¦MFñýà è[Ñ6öf§‘ˆŠ]kY¶tU’ì„_s¾¾§m'‹g/ãW†àk þèö¹¼4º@2&‘œXÍáŠ=” B«ñK2ž"~ü| Å~ñéö½|5«˜ÎO÷ƨuzdšõlrì¿B- “,„„×Ð ÚzìèV6ÄYˆP¤“šº‰Ÿ¶Ûû"­ Ä’ ls³ù>¼–P,’ÊÒÔK]_ï×  Ñ ”ŸÍçQ!“«Ð*e4á1kXUÝ4U*tÊ JŽ–QZŠPf ¢·AEéþj¢ûÝÊßÀ„ñãyeÒ­dgŽä¹†’‘¸…"[@…Øš›N*"u·²bñž&?³‘£Û3ïÓBbGÜΰîIÇëºdð]µH›X·%–}@F=GßHÊúulvˆØíŒC@¥U¡Öù‘ù|Z7Ÿ¯æÕÐö±?Ñ/KÄŸ¼“#µz©âÎÕ¬ËK'ý,¾ %rÉ0á§öá´èPˆZ n|¬IïLà•ñ·ÐΤчçhn™ ˆËN¤xù—¬5v¦¥)ƒ¾l­ð‘Ò.…»”ê}{©°—qجÂd2¢ó¹ðx›ô¬äÅ—0Œ¿½Ò…Ýo>ÇGÀ  ļ”˜)¸iÜ:Š\­ ¤@å=Ä_oÆ›w¯¿>—ŸEn¬Dün<¾&ŽŠ"~@,_Æ›³õ<2c"&Lá/×%áe(üNGŠ'yU:T I§AîÕÒuÌߘ8~"“Æçå—†“eP#ó;q‹çÒ`"‡6lgo½ŽŽ7dûÙ{Ћ»A‡ ï6š®%Újq’ÅØç^b„ñ<Ò;†„n-I<á%_ó•Ÿ2ŸOÅ … ­^ 2ÁïÆ}ÌH"þ3 ¬¥Â‰ûdû¬t#‹ #ÔçÆã=vðûð‰Míø½x¥/}’ÇáeÌü!š'gLdü„IÜÛ/¯WDü6'n'€¢ÙŒ©|5;»´—ìabÉ‚~îc½‘$$ÑAñö•,Ùߊ—ÞœÈ+žäÆŽøæóù»ñȵÈm„}ø}ÇnZ%éT~K„X0\̦êÀñ&gÉŽd¦¿2ÝmÛÅwoÎࣹ‹Y~H¤õèqÜÚ? ý¯T³ÑDé‘r`1b‘ÇqëK˜8a"Ç?̓wu"B¼zlô•FðpAÄ•Z¤¶óM à¨Ñ´h–ü~vnÝBuuÕ¡oþüùDFFžñüðáÔ””ÐØˆBçççŸõs‘‘‘ìÙ³‡¬¬¬+ÎëåKsÓ-·#Éåry ,gì8vÒW8YHP8xR8ˆ ‚â|ÃÀ¿¶æõÏ29Ú‚X[ ýo ÔgrÕ±{ù¼={Åõ«1ÆŽdPŸn$Ø·ñÝןðãê£ìªÙAŸ'è_ºŒIŸ,!I¯@!;@MÄãŒ=WÏVÈwïLåƒáô1J®ªEÛj8}oÎfÏÿbòOzœ;w‘yK_B}²µ>aÆ—‹Ù½CÉkïWгߺ]ȧ/<Ïžõõ&r %¦f=s%é hÑÐýþf¼ÿ!¯.ÓáØ¶‹ÜÛ®!D.PûË[<=íÚÝ|+Òk¯âÕ„’ßµ'–²Ø3‡fÕÛøbÚ4¾®I¥§ÅÇŽïm¬£ê^ÆÔO¾#B£F#ßOeÈÃŒI?5J!y\ù!ÓgÿÂÞ²Ÿ™‘ÖHÏVíH(ÿŒŸ©@UswÛ$'[À¹–Y¯¼Iê«-ÉŒÔ"À¶ùsÞùò{öì’óúŒRzÝp7ÇêûíÔ×Û©w¸€b~þôcÖE\Gl«DŒ2oÑJ>Ÿÿ%[vؘñâzßz· ˜ÏûOMa]²ˆ¿¶ÿqtT88ºa!ï¿c"¾iyì)þœ™OOEc?H}noãRI½;›7Þÿ˜WWêiܱ‹ì±±È€Çã˜úÔŠ’|ÔìµQðP{B#]´é=‡y¾ÎrM%ºDÜGé;>ú‘ÏoC:²Sß1DèðX¯MŸÂäX¶-GèpïíMI¦ K|œÒç—÷Ñëæ§éÿ×ÖL;ilKî O¾]Âë¼ú—©äDÖc«3‘ÑÿfÒåûù÷œ¥lªÔ§ÚÎYnMNÀX½–w>_ƒÝUEY¹ŽáãÚ¢G¤ñè2fL¬æéÛæk xãBfþ¸ŸÇ:®ìJ»•?½Å‚É ÖšH@{n2Ÿ·&MbG¢Y}9¶ãèdðãØ²ˆ×þ½’6)l•Õ¨Úÿ‰‹óÜ$*V¾É³ol¤ã-cñO™„ÏCë‚ö4ΟƴoôÑÈ(žô9ª¬ô”ƒü믙¾u¾}»‰¹þn¢ôªß®^dRù/Ìzý?„ê$ÑE¯;Ç0àÉ›Ùòâë<áÉ'Yqº¤nÖ‚Êes™òÂAÂਮÙV@‹¬À9ˆÓåÜsô_˜ñk«løìÖ/ E¡VBMÊ?Ž%ãXLOôÒèô6]‘-Rsh5Ÿ|ò˲‘ì5Ôjrèß1ãÌÓH 'Åë—óÃ’mÔØJ)3[é’Aç»oaÇ;_óƤõ„(UÈ„”Êaô}í0…Trƒu-ï?;… xÜnêe¡ôš‰bã ìõ5¸I#}䬯½ÅÇ/M¦ò®»~^óLrÛØ»üCÞœ½ŽÃu«y+îFöíA’c‹¾ù”%?aKùv*Ç<ÄvÑÈ÷~χs¿b÷^7Ó_=D÷cÀÃáLl {ãÝT;éøp[¢ã«hÙaßþãEÖ|Ô6ÄQpck"¯°E”|n q™ù´Ð¿Çä'§ï?JYD>#nNö¢™L^ò>Ïl$JÜǶªln®t XÄëõâ</Ÿx¬3¸œü¢’§Ã(I`nÇÈsùèÿ^cm¼‡êCty¸×%¿§ÂfÂdñ±gI=7?ŸøèTÃGsfòtaa.KãúÔÓèòá›Ö~’Çžï™òúAŒ>?µ *?Ô3>ªîdûz‘6#ò¨[½‰£î0ÚôˆbÿüMx22É͉BÝ\+±†ÝKgóÅ6#™¡Ø_–Iÿ9„ã•3}’0rºöÂÚëæ<6•eªrÊ © ¾!ª÷—nä›o>cÕúrŠ_ÛMñm£Û#VÞš=™ÉKB ®GŸ1´×y©øy‡s†’ˆ©9ä·_Ì—™Êb¡„ò°†Y ôkÞzñŸìKèDýìiüân ¬ë W,dGz/þh¬®ËW¼É³on¦ã-cðM™ˆÏœ@›–-6̬’8òÍT—‡Ð¢Ow’ §ÚiWáBfÎûŠ]{\L›xˆ#gà#‘L{| ûcçW¼?÷köîõ3mêº}þ÷&0cü³”GépÖIDôÇàVøzÍ7¼ò·"’tT4fЧUNS)“&ÔÛ±7بóÄ2௠LûÛ'ù©Ù]K§‡Z ݰf†ß/ cÍ.æ¿9•ÏÇÓÛìg÷uh[ axï–˜.å“yóؾËÁ/¤ç-·r{ß¼÷—)¬Nöã­m@vÍmtPU°ó‡wy«8Ö!5ÔVkÈì4Žtç¼øÒt6‡´§nÞ Ö8í„vùIãÝ×&39^ðïwÊIE¿ÏÓÕT^›AnfÂ}?sH̘nGøxÎÛü}cWHGÆŒêF‚¥VÓãLÕFç>wqcËöxŸ™Cô;waTVaN†•›tôï¯ÇØ"•uë3ñ¹C„TÀÞöZÚ䋬ùúÀ‰’¢Æz;ŠœqücÈŸyâ©P22Ÿ[‹Ô¶\› øãñ8i$ƒö­Ý¬Xñã_'Œì*ME”Ô8üÇ~~ëHAþT>™ú&¿ »­§º5ùm(úáß<ñÒ~rÕ%lØk OëÔsΙÎó+C0¨½¸#zðÇÞÎ&æ”HÛ)h<ú‹¯A–û] ©ôëÅûóÿÅK{cK(Ké͘”´e?ñÏÙëqûj¨¨ eämQ!Ñxr|ûN™ÏM’ÊYÿùBÖ¯ÛIÑ«*L÷ˆØ]ÞÁD/" Š^ü¨‰ËÈ#_?ë„}ŽjØ>)lüh¿tÜþç¡ä;áÉœN9Êèö´NžÁûS§bë)+·á‹ö#KJ„ŸŸ—Ndºº…å ’Õ í¿‘÷>™Á‘UF\[w’õ§§IVàpžH¾Š>n3æ¤|’tŸ3}j!R%ÛÈÉë°Ï~PÈ—“f }øEǪ̀Î"†´ëþÁs×ÕòËGï²êàf/©Å¢ð¸=ø|^ÜÞcvÞÛåÁç—NôÙïené?›wþ1™mIP»£‚‚¿ÜOà²fõìEìõ™Ié:‚ûš zFÄÙÇ„ª½ã+‹Ø~og:YÚ2¢Ó<¦=ôy)">AKdþÆôI¤j×6vªh{]åË7Q­Ž£u…³7!´Ï''% AÈÿ[:ò°Åò,‚€Ko@ë8±Ö¯V£éÙ{|zð¤VAÑ, ” È„ `A8ñ;4ÕÿE|>/ó¿üŒ_V­¸"tÞu×]¤¤ªá¹ÝnV¬XÁ„ 3f ï½÷ü1ü1“&MÂh4’žžŽ^¯?¥°°0ŒF#‹-º¢<× ô0™\¸NR&œâ|J'Qþ“±“ ‚â*ƒ×ëe÷Þý´ÌÏÀf«§¶®Ž”äDü¢ˆn×&ä›ÖsòqRÁhBu}wø°X,\Ê3GúØÎ$‹E”º5cÚrø"É瑩²§.‘™˜Ì1$%ÇcôUST)—žBLˆ–°„ŽØ=Òó¢Q¹ü¢“‰×õ‚ÍfÃb>I™ù=ÔU•Ó¨M¤evfK ‰É ˜¼5UøˆNK!.TOxb.ÉQzdõG(¬µÐ®C2F¹Šè¬¶äåµE[²›>”ÔÖCiB¡0›Œ¦á(ÕÄÒ¶_º·ŽþMÉ;¯×‹×ë=c tÞäJ=aQ‰ä¤ç’’…·² 1,›½zc5£ÏJ%T¯D®Ðé*ä[{2#û´ BûÛÏs444 ÓéË/44¨@£³“@bR<‰ñÑ„™vÅ`‰"5% ƒZ‡9,–ôÔ04‚‰¤N-P”ãÑšIj9„ÑcÏ{üþêëë1›OJ+)Õ¨LI$ĦÐ!+2 ‰YD[丑k4(M1de&“@ZJ:… A®ÅlƒL…Zo ¾ý Œmøq7ÔS_+#"# _U-nAOT¼û‘Z„ðPÂBugVÏÓ¿TzT29’ÆOIÛýéÖ*p*¿ŒF#2Y`ûÊé>‰Ö`$6§=m2RKŠh Í kÏ>tO36¼8+9X)#)+…(“–ð¤lòó»‘.+¡Ô%G°-q^/»O¤¼í#ôHAe"42©ì0áÙôì݇Ήz$§ub"q¡´J%*•ŠÔ¨7¾ÌîÌ{¹6# ß}n sJ.±Çl‹ÑB|V ’ÃTÔ×9P*LdvïGÏn©˜NSÌb“~hÓ>£BEL“~Еì§NBj«!ŒêƒB’¡6†“˜MFJ$:$g5‡«ÎÃ÷45Ùç˜lò[$aQªP¨ôÈlUx4¡duêNïî)X´‰$…hpÙm8iô¿u­ÂU2aaÉä´ˆÇ,@ðP[í'oø2ŒM÷Ñ( DÇg¢w¡JŒ¡e¯^ôì…A›B˜àÇÑhCˆëΘ¬D©åh#;’*+¡Ô-GÚ’a÷ö ô¡(ëÊqkLÄåv`Àu­0+´¨!9êñi¢h7d ]ò¢N;¾ºÃì³…Ó±c2…ŠØìÖäçµ'ªñ ¥> ¹<$ŸHs"q f¼µ5x5 \×ÎY§Ù+™Sh,i)a„ÇwÀX~€:˜Ü!ÜÖ+%J…ØŒTÒRÃQ{Eä¡áÄÄEaRÈPª”˜¢ÓÉH GÝx”½ÕFZµMƬR™Þ“®Z¡,?Š[¥'4¡=CÇ´#  ІºTJ)zЫofe\ÀÀT%  T4°{ñ:´½ú“¦–£6œ:Ÿ΃Ò/Ñ©1„£Im™Arl"©he(4˜ÃãIO CÝ䇥$YÐãIΊ>aŸ{öšZJBR4¡Æ€ý3Y¢IMD¯Ö`#=5µ\ƒ%2‘¬ÜRM”Ôª0„E“[ÐnY±DE™ˆˆ³ U9ñiÓÉÏÏ#/%…´vmñÕáòûÑ% àÎòÐ˵˜#âÈH CyÌWŒI&77•huå6%æ¸4ZwìŽ5+¸„8ã£3±D&‘Ý2ƒ‹æÉ@- ­»Ð©­…ÆbˆÉM&6&žääxâ⢉Ó!Jô¦H’“£°èõ˜ÌѤ¦F Sˆ+h¶ê(.•†È¬k×' ">·?†>#ú“£;¿Ðª&žèmñ†§€a9ñ$ä#//ƣѢÑê±D§’`Â]_GƒCITjîòZ¼‘ÑjlEu(c"5Ÿ½¿6› £ÑˆËåD.“ü átM8ñ¿Ra%þÕë‘\®3BįÙlÏ5çxÐMûPR’„ PEhEÙñXn£˳/r´`` ¶OAĆN%¿rXdÇÔüý~|>n·“û︅å?þpEèüôÓO5j[¶l¡uëÖçõŽËå:#@¸zõj:uêtEyn0ùeó^4r…™\Ž È›êÿJˆ’„tÒï'~–Ž?ƒ¦¾'Õ –ŽÿsÒïADÍÌ]°ˆ[n @QQ1û¢wÏ®¸}>¿xå{oBcãq&‹CÿÞÓTàB@ )9‰Ë{é¤tŽ¥‰tQ˯ÏKEEq±q—™Î~žþ&[Ôù\ó‡A$\ ŵ»¿ç£ «éôÞ³X…‹ëëÅôC:/‰ž/=û¹_£ã|é;×w_H§ÂãñPUUEllìeäÍoéûÙ?sifÑ©m×ÔÔ P(Î’8¼²°7Øq»Ý„‡…ÿfmqîw.¬E·ÛMMM 111ÍŠ_¢(RRRB||ü%áÊ¥l£èpI‰I=~ë<ü-ýt8466qù*ÅÖl›Ëœïá]ì¨Õ-·ñH Œòß^Ñ­´´”°°0TªKq>æBuîo㽄đ#GHLH¸*vñ×o³òˆeYÛތ՛|ýùèõÛÞáö»5¨#y}Æñ@·è38tvNÉIôQ¼ô5^š³‹ú2 ·Ïz•~†³óüò­²~‹¼~¯µß•îçEÌüªEüåÿ>Bô “†g]R6."&&–ÚÚ” %J¥ò¬ àc·G"€ÿ›¸§¼¸½ìäÏIEEÍZˆÁ+ ƒ"ˆ ® N¯ÿ+IÒñÀ’ßÏúu«¯m£GfÇŽ¼ð çýÎܹs5jÔ)ÏRSS¯8ŸìvvnÛJ«¶)¦/pݶpŠ,¤ÿ «`r7ˆ ‚øßµWÂeÿ†‹ûÛ¯C&È~':Ud E’ÖBÌS,¡k͵÷·&A¸ø¾^>‰ —@~çúܯÑq!#N¸ä£Vv^‰á2Ñw>tŸý3—fÚ¶ ÇwÀ7'ÈÙYé.±ö¹Ð™¬Yò+pûÍ¥ãÊïׯžG¿Ïû¿.o.³¼ Ñ9´é¤%©Q@chßíÒ$/~l\*OA¸Ìß&\òQxY†öïì[É.zìœÿ\SéôO¯¾˜ötôxü".8ù{vãâF“pFæÅÙ|á’ιßÇ.ù.#]Âe™mÂoö …f­fTÆH2ÛõCž*ÑBZË<2õç»±D!uO¾”NµLChŠù¬:ßù"ÈXÒºrݰ6˜BÈ5ü:Ï/O‹¼®¦³™Âo¶Üôéðþü߃ 6ª"þ»ØxLDA4“åØñä/ úýîÝ£¡áŠÒx!É_$OOŸ­>ð•À®[iѺ-¢(®„3’ºM%OH:·ü‚ á ‚âÃ` ”––^udK’„ß溺¬¬iÓÏå³è2³¥ä ¢´á‚mƒ “aJ¨)- Ú•f4v|~ßï0všûÔðù| ®ŠmNð‹~$QÂëñ6+‰’ø;é‹ãYsÓW£9&oÑ/^V¾ ò0’s"Hmº-ÊWSA©(]’ùíõy©¬¨l–›ÎWW7×±ÓÜèQ)-)½üòd„äj©/-Åv>•9Ï€«¬”Æ SDÍÔ?”’R€5MBBBô5PVj?ïuŒ Óܦ-)Hˆ>¥¥u¿}:Ööç)+¥4¨;þ[F²ØV´•<—ܦ^­~ÏÅ"˜"ˆ ‚¸"Óéfí¤@‚("J"û ÷u q`ÿ>ü¢eS¢]h*,H§%9õÚ™ãÏ~%ãLDÿ  ½êhöûýÔÔÖ†$ŠA!qÞ׃ÍfûŸ;‚L†ÍfC.“a0› /AÀÑØˆ×ãÁÒ¬èr{ÜØëíÍn숒HUeU³Óeåe„……]u›-A ÑÙˆËå"4ôêÓ‚LFee&³ •RuUnv)+/#,<¼Yñ^JËJ›ß$Èd”—•a A.“ý>_ª¿BïDAÄðþ—LDA4‹º²’¢ˆ_ôsðÀ¾ _.!؇è÷’ÄE"N9þ{B,4Õ}"ˆ ‚øŸ…$Qßýj€×çETJeP†A\ _& ;r™ …BÑìxáñzðû}ÍŽ®cµÂš]¢(6k}xijÐ^;ãõâ•y¯Z]!d¨”ª«–ÿÍyL7G¿IÔ*ÕEÖ"ˆ ‚"ˆ ®J/È‚ ‚"ˆßyáõ+¿K’'ÕÞ¾eÓE>Ü,è(-98]-ŠÇºÇþ?C&ÂùËïô‡ÁÒAÄ#¤à]çɧ þ;”dóQPFAñ¿lƒ~IAÔ±Á~ü~\¹º¬Žô;}KÐ_&€ƒ"ˆ ®NÊ2»’X’$D1P;¬¾¾þªëÒ¤I“Îxær¹šmv{=¢ß< DAü/.T/ï÷ žL}qËwW_ø÷‹¥¬úê_¼ñ¯­ø›®ÞñÐ|‚ÒïFŸÔìæ„tÎgé*¢õ•ºÿEç¢bË¿yêKqü7.w÷¾KÿÞÝéÚ¥ “×7cBËçñÐCs)ŽÈK;ó%GÖÆß_^FãÅØÀŠù<ø§/Î*é*å®t‰eÓmžô»ão£JºŸ¿RãQ¨ù–??<›Ã~ñ*²ä~v}ÄíV+Öùgö¡ßvˆÂïeׇ·bµöàú±ãùÅ)\š‘çwQ¾ð¬V+CÆ>À‚#ÂUuØCðî⓳˜·ªßåû„#Ÿ3êú~X­Vž_î$Xt©y"˜"ˆ ‚¸’Fùdg¤))yì”jMMÕUן.]ºœñlãÆÍ‚¶šêªãõ•¥Óù/\àÉÝà1ß ‚"ˆßŽu°Z­téÙ—'Õ¤Zn\ĬkN aÎë_°z{Ù Ùͯ÷ ë½ŸsÎj>R)+ß}œVk`1ÿäGl®æÜ3оV+Vë“,±»NY¼Jâj&?4ã)]wë?¸«ÕJïqO1oÏ j\›¡2:œÄ´z>¿ãFz[­X­Ï°ÜåE¤£³¹ÓjÅZP@×~×ðüJçñ~ûËŽPR[JH¦šUÓ¢_×ýãKöÕ‚À!fŽ¾ŽžV+V+Ö—VýJG=-\Â{W4%êÙ0ó9n²Z±Zïàeûψ=kyõþ/©<í©óÈ&?r=ÍÜqŽ@Âfüõ3öØšUóøc§¬èÙÿq–4œí;[g¿ÌÍV+Vëm¼öý€@1ŸÝ5’>V+VëÓüèð4Ée=/[­X º1àºwÌpSºm÷Z­X­7ðØ”•Ô PͲ p½ÕŠÕúŸî*Ç@!o îK×+Ö‚ñløMù´>Ÿ1¶m8)^1…¡V+Vk/Æ=ù {Å}«¦ý…áV+Ö+VëõL\z‘C¼wÃ@ºY­X­/²öWä\¶ýXŸ‡ò蔕Ô! í™ÇSãú`µZ)(( “ÕŠõ¯ó±—~Ïÿ ìMç+Ö‚»™WÑÔŒè¡òÛ'°Z­tz+Ó׺.ÚÍñü„[›Æm·Á72iµ:¶|ñCšžxh +Žœ‚Ûχÿœm%õ—$h$¸×1ùŽat·þ?{çUµýýï”ô„HB %ô*M&$ôR¤ bCAÁ.6E¸6P:bè½ÒëF:©¤Jz2íœy^Ì$„¦Þ{½øÿä÷ NfÎì²öZk¯ªÂcȆ Q¡R=‡÷MãÛõ!_×F¥B5~&¯Œ";ä7ÖnŠ >dQ¦ç—ï÷p"´±ÑìûüߎUÄÊ©cñòð@¥R±äp.RèZ†¾~ch-9?óÚSëˆÒ¨‰?ü “Lë8ñíÍ„åýU#I=½ŽGªP=±’ Å€ mè:fL†JeߢC¹FÊË:Èkoœ¤¬þëR þûùæÛû̸×*Tª‰|¼ÿÊ}¼äÏ¡ŽŒØKìÝ~¿Êåø¦£„ÅÞº‡Åñí²ƒäHÆ6/zm0«LçmƳûi¨GT›Á™/¢R©ÿúwÝü»M•$QC­Z÷Ï2šê39»o['˜xêƒÀKl>Ÿ¿?¯|„ç#i©­ÕþÃêH8½ÁȃMçï£ýW)úÂz°N¢#/zKT*Tª™¬ø1ôÎY ‹ßÖáZÆí;Áj‰?1r¸¼zìŽ&&ÕV‘›t¥gj£v±H¥B¥šÃÊW(G†LLd÷;Ï0ÒÄ׿n §L}gnŸ¥Öóqœ³öß‘-O<Å¿2êHóÛÌ‹¦çªg?çx|ÅCfÇwË68É$1”ÏLüaúÓ¿’õ»ëz¯î™ÆÎ''2Lå‡JÅõ’Ðjòc÷òjÃ^ŒaéºÓd Cv;UKžD¥Rñä7—ȯ¾ƒ²½_B¥R1dȆx¨PM˜Í’£7‘Q@ÀO‹Q©TŒ]²†‹ £”K«_eŠJ…JõGÒKg²êoÁC¼^åt½+Ö‘wj*•г_f[´ˆŒ·½Ëx• •j+ý=¾ÅÆWs«a“ÕœùÀø¾ ùùšE„ì\aÒ·'òážpŠî1¦¤ì˜Æˆ—w’¦‘€(¾V©Py eìÛ¸ñÀ3š‹ïæ·LcT1åÓ$–6>±‰lzë uF}›[GŒ´ááÅØ©+ ªw jò ٺĸ†‹Vs. dÜÆï«åLS©P©–s0µ=2*|>dìH/<<†÷bØ(&lŠ1êH†Zr7ðô¤gø)Zg|¦OçÄî=ì9“‚îaËWzŠe¯Õ˪¿:êjµä‡DmÒnžöËSûÒô¹št¾~cJ~`éÿo¹g@µÇ‡œ¹x”Ljœúrš‘æëõÖç×âΑ• Müa&?„æSkHfóøQxz¨âµX…=žÛÁÅ“ß2ݱ„êßñvÊtql{cé~ö&G²Ë²W5åÁìÚX˪ógù–'ÜþWò4ƒÓ{÷°ëT:Çæµ»9w-ÿ¿ß'ƒˆV£E«ÿOµ‹®Û}—~|?ÒÙõf £WìárP·ú‹·9±|^¯ýuÉ&Ô£ÉÜ„&4¡   H¢ˆæÉœýwУGûžÍŸ?ÿ‘›V«ÅÐ(û·)¸ MhBþF\]j™ÄfA 4à2kÇ;¯ÛÙœùbÏ,ÝÆu+ê»꓎ðþ‚¹¬?M‰™Ù]—˜¨ïG±E=Žî:é÷·¥(;åí#‚p’Weé„ù%²ï3nN^w˜ÀåUjVýŒZg¼,g{¿ˆÇ·9of†@SBô¯?ðEØpŽ ~»×ðd7eÃOäÝÔÓ¯o'r÷¬"{ÖjŽF\\YÎCЀ›itù^@ˆáܾ×`õgøš¼•VŠfôi^‹¬ÏTV„#ó‘¶VX¥W£¶æ Â6O"Ã|‰Ì¨zàå~•êuN)ä4îX›ˉïrÅl<î¢æF‰ºðñÔÄçØ^„Z¦@N‡?>˨#áÁœ|ßžÕŸœáÞ_.9OT©–%ç„cH‰ñ%â&dyDö´•ðù´†¿ B„¯{ ùB¨ëf^eù–d¨ÈBð9ˈƒÂñwh/{ë©ÚAB«A¬õýÖÇÈ­‚øÍ¯rûÝCøG'×ÖEüGd|÷œåFCÛ}´mGU~<¾§JyÃ_@ðý™'Úf³m` ¶Ì™ïnáb„‘.ßíˆÏû/“¿ø|"„Íæ,_tàžà‰òì Ží8ÏÈÂßôS„²þPR·'Y³ÛAˆˆˆ`ÏÒN é+çÈg§èóíI‚"„ïÜY»òÅH”_\ËŒÜØ'ØË²Á–ÿ±AO–“Þ›!„㛞¡î«¯+TcíÜ™…ûá,»kˆÿ×HaËìtúìþáÂ÷´OÏAîõ_¶\Ë®X ²!ø mßx‰–‘9íÓ’¯Bá(oŒë‰2ï¯2‡)è:õ}v]ü‰g¼Ü±0˜Sñ53±fÅÞó„ º|7‹E‡rQÊ$ôúFüÖ`@’DD­†ZË.LXº…à!tn!¾œòI¡úßT™Ëù5³™¿x q¶VÔwxÕ§ç£gçðõ©k›ß‘>3nø"Tƒw aW`¿E@:ÌÃCY±/¤Îý¸Ãs9-øüð&ÃÛ= &±`d©²#O<û"¯ÌéÅC»Wd’¢iOGw ÌÍÍQ>ÒÓü¿Ý+¢®vÅkú—œŒ„ |µàq\~ÄïÑId_~Áé7‰¼ÌèC±×i¡õeo1W·åsžâûà$*”&^˜°™/–°êR ü4³åû·jÊ-éãTBhH“ ‡aQ~™ƒW«àV–SW°í¢€ ìcì¥}‹+Ecb.YiㆷßKŸÍ‚̱oçQóõ:" o#*˜êm”9Û';s;6œ¬{œ?U¾Ÿ0aÄ"¼ËkLº‹oÞÅîg!ø(ïŽå½Ý)'Ò=cÎSñÎA.†E!œäÔí¾u¿<Ôª›Ñ¥Ï›Œ_~~*îÅþ|òöy¬§­ÅO8±b­mïß öów"ááá^<ÊÃkhg¥!jÛ&~º1™“‚Àå-3ÁrÎ}GR—q|(¼Þ™ÞA”j 9½ò8·\ 4B l½k>>Êmt]Ç‚Ù/ÙÁâþ2‚H«ëͿ„“o¡KãüÕ¼û‚RJϼÅPÏ¥Ҋƽ—4Ÿÿš¹?wàWA ðøn–„¬à`R*º±>L@8ý.òôÎDä6¼/içl~.íE{½ ¥œˆuKá{!Ì—ͽÊk›ãïߌ’|ÌzçÃc‚pŒ—kâðó‰æ6P´†éc²ïV9:™·8ðéE&ŸÂ.óë«–¬þüZJvmæÛøñ.oÿ”É!÷â&Ûc}€@ÈÆVì;äOv©ûñk¹JDD8ááá|3©÷6mM[,!Y9baßÝ¥Ÿ¸¢dF;žø»Î] ½NAö¿b_ %fîCœ¸Ûxi(!%ý*WóÝé`Ð?`Ó°åJÌ3§NL[yÊHóœúîef«ê¸v0ÍàùM~{ÿßΑX}‹“o.¦ìƒÓG„­×ñÊ’£”Êͱ4W¢ø£u5ëËâµK=f ~û”™í1{?Õåä‘­p§“ 0û:ÐŒt#é5èèËk.dòÀÖü}ÚÕd^bÓgÑt¼—yðЛAÝMn,¤vv IDATT·¢Mk¬,Ì"ç%Ês¢9ðÉRþÝ¡rA7…)º‹4™Oþ49€›Ð„&4á»kþS“ÞÞÞØÛÛßõ,66ö‘£$IM}ýšÐ„&4á@˜O2oYÁ­N×`ŒÛ·gÊ'{ùiÕ«Õ Ï•=f³nÏ&æ í„…Nßàx(:ù:Û[þ–ç»#“ýÁ­¿E†ŒœÎ7œÛ;áÔ2špŸÇèêæ‚­ì¼ÆÒ?ûù’ÑLÕ~þ.½Nç:cv–º¼†‚*‰×7ð0^Ôæmh× @%ùYYd^o‰£{†ËÐV-pu·ÅÚ¦Žº¾/³l¸3v ™d$v¥Ã=ÑèrgF¼ó+û¾™K•¨&#IJAtvzô§Ÿ¨¤¶Zº >·Ÿ„’ckë9[Ž¿M7íyéË2‰ð9@Á¨_Y9Ú–j½ ²9üÑ;|ü/rL´ò6­aXk{” C®T€N‡¨×!µê@_9÷ËÉNÕQWäA׿@×Çx [¤Ú|/¤gÇXËÁ~èd’OþÇf2J(”tT¤[Z<ÉeYdDNäñ€k;z»tÄ®8” Hg”=he Êþžô/×R)…péÄ8<X¢ZOßYü'v…»ç,!{mKF+2… I ˜YâØ¢%í¨XBÔëÐ!!ŠYdÄÃc€ æ2`ÐhfÅey×/ëPר©)Ï v€=[Ó!ëÖÝòµþüz¼/FõÀÑу¨E«“зîH…=z¢£oñî¾Wé*jÑêõÿE¢ ¥×¬x@¹ekܺéÑÙ¶¤ËðÌî `Sk'Zõ °˜‡60¡›+fâ_¨Ÿ$ô:ZѸÆì‡B.)øàäÛÿup£•«„Þ |øÁ@ŽÇ¼7¸±mñ7ü Œ}ŠžN¨Õ6ØØ8c¯ m™4iƒ»þ¸³K‹8þ\ÌŒOò˜‹­ÉhÔŸ§Þ‡‹AäÈÿÀ ^ÿGesZÚÙakþ­ÌJy³¶LúxÛVO骑è6ƒ¯vofÁˆ.XjîÈûñk¸tj%,•¦»T(Á'g3º?`nMç~Cè‘MnA’£KÞ›ˆ‹^‹N”¡¬[9J*‰=´Ò”57ƒ÷6ϳ:š­¯ÏcD}¦ã“¹Zú7—YÔgpzÏöìófçî£üëý…<7Ë8¾W÷&SCÛŸû‘XýÞî…Ç"o²Ò÷°@¥B¥Îä™ÛHú+Çc¨%'`Ëçî0U…¸Í•_÷ðÓZ*ÈäÐÊ¥R¡R=Áç³Ð•]âÝ7²ï«á Q­&T/!/«P©<=é=.–ÿµ+’¤GF‡Âqí{u’ÞÕÜ.Ê$#j·Zv ·s[, ŠÐæ}ŸåÇýß1½¿f: 9y!‘Wö½‰§Ì`Ôç wäTme4QA®Ø˜å7Žþm6èãгü\´m§1d_º:´Â­‡õßÀ÷xg:¶…çû¼7ÈÈŸÌ­ZѶ«­]º ŸÏ w€B sͱ0´0òÈF°óO}Â@k dÈ0Fð‰™Œ˜Yѹ¿'íÓn¢¦‚k{¿dÙ’-ĉ¿£{ö[ÎÛÃì±DD"“줮thš¤]<ﵜó¦.^2™ƒÁ´zã ³#³é3w$sFõÀJ§E/ýAIhƒ†ò¤s\ŠšÇCÍ(ÒZ°ìó'i)jщùƵÆÙ²3.–`>h(K+)Vë” ÐëÐêôèZu ŸB†VÒŸXÌ;»ÓYÔ¢Õ‹€ ™\¢°s¤½N²ûËå6Ÿò-!§Þ§¯L†tzââŠxwϺ4zŸ\.G.3 ª'Ú5s E½Öçó [­Vñõ³žØ[™!S„ál£=¹‚Ž£è–šqOÖ9à2˜á#'1ª €®í°uQëásòäç¨m›ôO…R¤“DY«vôU@iY5·õf,ÿr&­Öð×#\p4ïJK+08”e5”j4wWºù+»Ï<Å’-5sÜÚ÷ Ócæ8› #ñÉäf˜‘ÈŽ7ž6e¯NgC`Zª8÷õOÄ_ÿ¹,Þº…%‹QŒHIÄ6^™º•T (:ˆO—¿]fª„³€õÒ‘Ä0Ö|r«'0ÒóC|KjM2Wø%*ÏW9]nE3›Žô{\KPX5úü4²bƒiïá„}þ%¾X4Ö(OT“øìL:Úr_>xç {׌eäcÕÕA" ’òËs¦Ï剧¾ ¨0þËŠ†ŒlÕØål+1†Ïfx}ÖîÕr(:ÎâEÞü¶vC¼Ö…òáÎ(1PÿJÌmÆ `^+¢ÓÍ[ÑÓÊkE&i1“¦2:dež£˜{ƒL9¸dÅ\¹ç<ß/vÍ‘WãÍeÙ¿v$C½ŒYýkÃARñÍ+?]¶‡çFLeцSç¾`r½|þY –Dv€ï>zŠéc–q8t?ï|ô-_.…—Jŧ~éxÅß\Ä*®ýô”i-‡1kñD (2?ï­l_·yï.gÁë»ð‰-u_Ì}‚¡**Õ ÎWé ÿ _ØÇ¯kŒë>bülOj²9»fºéÝ£xqõqnê¬0“2s”D²vÖ"þu1ª‡0IÔPUÅ·³FòÒ§¥Ìüléç~á›Þœ:s˜ÏÞx“ן7þî ßúQ@GÞÜ•òÓ|1s^Ïî"=Ó›EC†àá1„a#Ö›*,ÉqpëŨyf¬WMbéö+ÔÒŸ°Ë^À0ö9ÆtŽãbP}¤–âô,7ÑÞÔ—?àÒ­&ÛÊk™MhBšÐ„GãºÖ(3Õ ýó:'Lš4é®ÿk4¶lÙòˆ]‰MÎõ&'pšÐ„&ü¸Fð™T~|z8ÃGŽdü„‰ln\AOÔËJ/6\å@Éñe|Pük&¹P[£FÕTkþd—£Š8"+œiѺ=®ÖzÄz¹`ïF§¤rŒrôzƒ d¨­Žà¬·/MÊÏaÌYþ¹¦wfFÚÅ™í[Ó Þ1‚:ºÑ)!›œÆ²Ç ¡"õ*Ñöð´*ŠÈ.Ï#oä@Ú4gY$á5hߺ%2€*.¯šÂ0Õi?¿ŒÇ”B ‰èÅúñËÉ™ÉcîBë‚*ªË«0Èͱu°ÃÊÌô™ú¯7Êì3Ôvp-œßã-‘‚òZtµÑlk‹õ=ñzÑ$b% 83kó³¤ÏÉБc™º4œ ŸNÁþ^´imãkAë’ênW£Vr' ξî‰7É“@Fýøä(\ZÒ:>‹\¥Eý;v8ŠJÌrK(WÊ‘ÕÏÆª5í³J(©Õ!Ê 4øñZ¶Ãýzæ±ÿ.æ¬| moº"Ç®U_&<ß™#T¨†?ÏNÁÀè§{rls9ûÝr¦¨†0íó“ähØØç’u£ŒòÊjjêhÕ'‹Ü»<Ô2ä =’!›Ì" ½Þ€™v%T4ªe—tp/•ÓЯY'žüúEÊVÌgÒH/¼æœfø'³h© Âçd4kg Åsè0¦Î_Ä¡ä¿àˆK5”Þ¸N¢ýxÛ4z^“B\± ×î¸Õéõú?eúÓPZaSxŠžžÊ˜£=b(Ã^ñ&7'ߤ®´wº×Ø(þ9çdÃ>ÿUèÆøç’ÙüÌŒZuŽ’² ª4" ÇÜmsZmâ›ÝYxmxŽvÈiÙÕ ¥z#ó§¿ÉÙˆ¢ô?Ðgå äù¹d¶@ow»»³>Z´¥s|7¯uŠAN]C%܈!ÜV†ÁÕ›w¢ˆ^”îÿ!QDzÓä®}”#—›œ»2%æθ¦Ä“XÅéGxó‰¡xx 㙕;ˆ*zd¢ …²†ŒøÃx{W𞯀pú kC8Ã¥¯$§ÃË„°õŒéس¿ý®(C.—!SZ¡¼yœ,§Y|yT@8ñ.%‚×nµc‘÷[ôðGˆíØýôv¼ö ‚_̈aŦ¸¿p8Ö¸ôÃDO“І~®9¬¥B5úÒ»0h@›g 6*'«×‡réÄ5ÖÌ4êÓžY¡Tí¼F3À­õ£U¨F¿G²}'Tm©ó]Å'ÃX6¶ æ’NMMLÔ!GáÚŠ¶×³Èý]>†+•­iݺ Íd´±Ù Z2gó<g{â9rO­ˆeÒÊqXqê×ó¼oÒáç½ý/®TYa¡¬·V­hŸQLIö®À°€?b³òù†2㹑Ð5ëÌàþýðÌÿ‘óÉæX(XZgph¥/æ#Þåˆ \XB®÷YâJ,™üÉëôyìNÛ^@§¤t2ÐSBÛÉ–„'iИբ±±%ãäv|Ó:3³÷OæÆ5?¯×`™¾ݶp>l-cœmQˆzÔ©¿ñê§6ì ÛÊL ’µ-‡M£ùëñÎH'Cñ2“zÖ¡©S£l=ŽO¶ù! ì{†¤Äëdë0OÞDú€#F ìœÏÙݸ…‚n/ì%<$„pߣ¬™¯äç#W);Ä +}á7Þš¥ÂYϾ·üi1g5'áÜB’·ž$µVB‘ø=¹c }†‡E†“ª(¥ÓðŒž=—øƒ,®B5á[즌 ›u lí²IO®¤²²ŠªJGZöÊ"·dò»e”ÙƒÎó}lÓ eÒwdx\$$4‚ˆ-s9±ã¥–cXùë[x ÿ’ÐÀÓ|9êǶñvƒ|àoVùÇÈt~…-¾›˜ó¸–1I´z݇н/á÷áÈV‡±i6Ƕ¢TaÇÀW†pqKF×±ýP.ã÷ìk,]u„£–âÕJ‰™u Û4ûG|à¯ô|öMZƒEòÏ”N„N¼?”ƒ;ÎRcÓž'>>AXX©u<Þ¦3Ai˜›×3¬›Ùbe¦|€þ¦§¶â6>ÁÔg1Ð;‚³ûæÑZ¬C”ÉQ(ÍQ†P ïÊKÛ„‹kp(¼N@œ%³Z†jèëìº, ìÄ¡y?Ð}S8áü¶üo|UÁ7ǵ×óì±ÌáÓ&-æ_~9ü~_ôü/+˜àÙŠÁcž"ñ‚?…@]I4‡¿þ £‚ pzÇ׌kÕdßýCõ¾i šÐ„&4áÃ?08<<ü¾ìßÐÐÐGÏÜhm›Ê@7¡ MhÂß ƒ4ÍÁ!„„†âÿË«$¿ÿ51ÿÆF†šÄ´Z*­`Ö““y⥭$%ï`égïôê}(29ý´è‚ª«;fZ‰;^=:3åCŒD½Ý_çXPáÂEVôs ô—s7¯GÒµ¹nÎ-ÐK†Fl=:s%w®ÜŠÓ/²}u³?5PQr‹ÊütFôkìþMåà——pìÝŸ~=Z˜.nvŒÿò!Â3Dy}Y$Ç ¦™é×ED¥zj¬<ü 4h O­¶€„ˆ$®lœÍȉ/²úÇ=œ:¹“ïÎè™þÑç|´dmäƒ —V}€Ý®PÂCñÆÀt~ÞþБÖO¯#“Ëd £=ú†ÒnwžDÑ\‰Ò`àΊ ×¥œ»‡¦G¯Tßahìô6îù_SjÍpm§|°ŽÐÊBNø0ñ¼@øÁ÷èXÂIŸ,À Ï¥_qP0–G^˜ãË)žßÿQD2W`д ÿ•œ !B8Á‹ ‚Ï…Súw‹DÈ4jjj¬°¶€¶€KúhmPûê<ÕиÔi¥ë‹¨AÓz2£<ûÐÀÞ…îV6XË$Ðê z4zäd‘3`ó»¿Ö®Û`:\ û÷ËAþ,líiÛmÂÕDª‹ª±Åšé}Zr[ºÎ‘íïóÔèQŒœñ9ÁW3(Ñע§=ÍŒ"Ò A¿qxØeH›Ç†Ò-)û÷Pìè1ù-v Æ’Ã9—påb8Ü*¼‘N²j2µZ¤9+!É  T<„+êÑÖfmP(!!!„ž_EÞû« $M ‰Ñ¡L÷ê‹Z§oÄ1$$ P4ȃÃÖ7ylîº8Y«iøŸcÎðÇýV-¹ñðþ±ˆ™ 3§Èi빈Ÿ1½Ú‡]ëO“ù'êÛ‚ç &=BŽkúÌ}›¯7YÀOÛ/£Æ'Ûø-(„°ˆ6?÷8Qßy–èO\…ïGœùr,·¢.•tûOМ9öÖϳ?(„°ðP¶¾4„¨û K&¦XλaçÖN¤$ÖèŒ[¤å¨©8û/ϛĘg¾'öú6–¼Bucy"êÑ[(Çi—αu>XvìÍ€Ç\([dè¸ðÙ'8ï "Ô›—{$±uO0:ƒ3]{¼ÍÉ Â…s,s7#Äû9æÜ¡p½™‚Æ]) ™ÛÙíÿK&7¿Ÿ–DN.½èÐñq²ü|(1³Â¬¬Š«Dö¯Ù£G1rÖ×DÇçPlA¯Ç éÑJ3|f:7Ò ¨¬7ª‰-È÷ñ£J[GMsäRÚ@oЩ²*ȹ™Å­®‹˜íé„€Ì óŒÝ¼ôB2O¾E/$´0HØ9v£u· lÝÉã ÆcW§Å —&ž_W.æ ÏaŒ\ô#Yá7¸­®¤¦û2æ{Zy¢‹ý”J ÔQ¶‰§‡ŽfÔÔ¹,û)û¼›¤ji6|¶1ˆU«A/¼´Š*ÛëüòÙ+Ì=Š‘s6’˜–O±¨Eßç]žlø}K›Îµ°|D‹©ŒêiG7“Þ{;½‹Üð;}†ôÒ.¼rüi2>{–ONcúÔÙz£]šCC\” ýÿÌy5èz¼ÉÓžrã×\ÛÑO¡$ôZ’¨CC eåwËgµµñ dt˜ÅÏ®Fù¬Ñ¢ï1‚Ám—–ôí? /WL&ëÒzæz gÄŒXµ+ëª éÑk5€I¦@‘ŸMv‡g˜ìÙ3À\5ŽÁ>’ˆ¬ß{<Ó0è0¸¶£·B†D ×¼W1ÃÓ‹O½Å/G ®†J™¹A‹ŽÇxc÷·,ÝÛûÖ?ŠÍOÎ!uJ0>ÇWâuï¥PÒ£káÁÏ‘ô¶¬q·m†£LIÔ£Õé $Œþï²` 1Ãuàhz ºç~oGY«ñÙù2v—wðáΫ<¬s;·¹¨í»¼€Âö=›pÿ| }A2 Žo0«íÿ½ýŸŒ&pšÐ„&ü0Üwiø§£SóÄ6lØ€‡‡Ç]ÏŠŠŠ3fÌ£»ìMŽß&4¡ MøaµM)·jŒ¼XlÞ (¨Oµ‘++äÈeò»/+r92™…B†K†¿·‹#çüð÷óÇÿÌ ëûǾÎÃ¥§„^›ÆÙ GÈk3†§ÆfVµhEcù^n¥Ð«íäõÆO …éw‘£T(‘)J(2]b]Ú;ájWAz ±±rÁ3,,kÑèM.ɼdút¤ƒ «ÈO»Àö·b{î †*tTWÕPQÝ›6®Æqê4ÉýôÕs˜7³Ž€XSNMƒå¿ªÉ9>è†g\#™\Ž ÌÌ W3ªsÉp±Áα6h(É+¤Bsw¤\!C&“¡,û±ô—`üüð?Í÷Ÿ,çé§_gÅ”NÔ”SR^‹¾ñ¥Û´Vr¥”ç@ês<ÑÀ•9ë71+v?g«u9Å…Õ€fJ@¡FP“O¦“–Í]q²¬A]¿/ùÉÄ÷ê@{™5V6Ô˜Œ<Úœt2úv¡# äÕF#ª®œjP»¹ÑZ©E‡Î8¿²LR:4ÇÙÊf6•ÔêdFúJO&©_ÜÿSr®Ÿ³BñÚîÁ@÷t’£¯Q:—áN ï0…%s'Ñüº? jZcŽ–vnvØÚi¨T âãC§¹ìïßîÅôÒv€A[Ian¹éóV´õZÎA!œ o>[6–Î43 ëúá“ÔŽïIÿŽ.ÈjÎs0ùIFu–VŒÿj‹“¼9VlƒU ÆÊi ¬Zµ§K«"J4ÿáZˆ•d'žã—On0áÄJTr£²+ê² Øyœë5=™ýÞ$îª\.W4¬ß_eœ¡G§Qßýе+e_ädTõ]ô®¯(G+—ÚDƒ¢AAÞˆ5ì³ò¯13‰Õ•›R¿º¼Ä…K›yÒ?’Ȇ!h†hã(Q×UQ^#ygæ|¼õÃ;¡Nɺ¿Læ N‹ÆÕ¾Õñ„EçQ!Ýù[…pôÁ=è¨#«­¡ñ ë´j´r:ë®<ñÎ~ÏóåxwJãR¹ùŸ¨Ýr9òzž½Èår÷Ò‹\fü¬\†\f¥MÆöê"µE9äôìDG™„ÎPJ -h×É [E%Õ@CDƒL†L.!U–û%‹j”=•åE×W·P(=bvN™¤G¬/§m”ÑcnŽyu>·MfH­ºu3»?3ü÷`Ñœv݇1ýÖ ŽWR%¦ƒEµV}xfõ¯øùàHPðj&tqÁ\§F× Se¼2tuUÔÙÚ`ýOR­D êºj &~ÞÂŽfΊß¶¹K'Y'zD¹Êzyª-£@¦AëæzG·R(Lº˜°ÆÊ¶ŒÂÂãßì{¡ê^@ámµyäxЩ- S¢¨§¦”<3Rœm]»–¡Ù[+˜÷¸‹Ñ©ÅMndyй­iOÄ ²âϱ÷‹L&ûˆÁ2#ŸV×T7ÈC·Ø´(£ºêÁü“þ(ÃKë êLü¡®ð&9½Üih«nS\T¶1—oÐ=k)Õ”SÓÀ3z¢šx“[…FùWSL­A†Ì GWWIU})i;ìÛØbm©¡¦¦ÌäðèÈc=ꨫÒ#Šuçܦ¶‘BR—ã{ð8íVΣ-z ÈJLüËžÖíp´¨C£Ó!ÉLå©o§“ܹ-n5ç8’<‡±] €“ÖíæÅ„ß8^bƒµU FÕQ‰MÛvtu¸JȵjÊNW8[Á›]-ÈKK¥àAÁ ÈŒú“KÌ-‹M-4X·é@w§HB£Ê(5Œ¤»š~‡7{Xs3:ƒÖ/¬cïéüüñ¿ô)ƒ½Ë±MÓpµ© Ö´Vš›é¤÷íL@_SNqa•I6Kè5©œ\s˜’S˜;`CYéÆû$WšAñ1ÝXÈÝÚñôWx"ú 窬±P–štx{Zu´§¹U-j­±^W¼ArGg\,-L½a%.nÙC‹Uóèõ¹©¥ƒïJ/Çxü¯Õ™µí–~{¤ï†|Á$gK Hj’\2‰6¬¸ïGDEú:u§÷Í âÕ"õ]5šê £¬ÕÖQk®ÀÜÌ¥¤½Ã»$ Úîo±õ+‰µŸá¶”r£½ËRéÈÐ92­çú¸Ö •”XêRðÞp€ôÖ 9L@À·LéÕÚØ†C2–Å6ò1fe‹Yyë­,^‚ ôäðSp¨¨¦úv¹µµÆ½Qšä’LDmëÁ›?Ÿ6Í;€€€ñr´B!iÐþA0JQ\ ‰5Eôœ5®ã£Nqº½ü=oI‰„fR«Æ—§/àççߎ…ôÔ‰¶ÜÛbFDý ó|/“’½Þ´žS€ÊÝ ¹BBl,Âcüú IDATŸe"rKKÌ%úzù'D=¢dz¤7l ˆè©L>ÀʯªøH%Ð߇íïŽÆ¶Fc4 kMßèwÌ-0×S^¯ ÔTRmgƒ-€¨½£¯b±ŠÔ@o¶œræ_BGùüéXÕêL5“d(ÐQv«²Zݲ¯óž¿/C‚'2}ÞjN'PPPÍ]Q’ˆ¤¯ï-!î‘óƒQÎ×äSª–5ñšJjííŒcÆ€¤¯¢8-šK»>fÚÛG°|ú}Ö¾4‡‡äçùs«ô4-|çŸÝD¬k¾þYÈ­¬°ÒüÅúïÿ}49€›Ð„&4áƒÁ`@€Å84–-[v×ÿ5 «V­zäÆéâÚ²)ë· MhB ôbÂâtNí¼LbB1¾—¹Î0zÚ zU¹©¤däR˜ŸBJQ‰Ñ(¤©¤8-ƒ[Åy¤'Å‘Q¦¾; ªº­¦Öx14éœ\³žiætÞš’øR‹œ8£‚œ¸(®Å¤z8„²ÇÚÓRi¼&iJÒˆIÌ¥¼<›„¬,4v}è=<’û®’„SŒÚ¡mÄ8¢kplåF3\>¿”ô«ÑDŦ|8„Šþî´”ËÑ$íâå{qúòe\ãˆO¾AAi)Åù™ÜrJ_P—À¾ë8§q¥s_ò®ÇZ¬¡,`;/†p%6‰¤Ô߸9™îµCé©ÉK%)-—’‚TJÔ¸ômýUBsˆ=B†%N®ÍA̳–³+²­i-µ·3‰MÌ¡¢ü&‰i©7.M(VS[[GFdpbÍ*Öüäß]$Õ”“”Íí²Rb¢È·éÍh²í×xããˆ<{–8³Ñ\r€LlèÒ¯9Ž.‘ûç{.”4svöƒ?÷6™QÑ\‹I'äpýÚãB?&¼OàþDbcð‰Eüí:ÑcèUüOg“(w« ËžxMu$áÙ\;L~{Ìû3iaQgcˆ‰OâòÑ0j=º>¸läà®9ÇF’[Ó“ ‹î¦íxÙT\i—ÿ;Îe‘ïOÈÕ\êZ ¢³6„3§Op,0¬kGÈj‰‹³¶ºR’ILdÓ7'i7uÍ‘¨»q€×gýlìiÐQSœE\B—BÈ,§ëànÈ)ÿ4ǃÛóxŸ´²lú2Ú⿌$úz" ¾‡‰F1Э?^O]çØÖPÒ¯K¾ÅãtúTPU1ÛX²ð._*ªUe W/ígÏÅt²bϘöm±ÿ«ï½:IBJ6µ6îôöŒÄÿÌMb‹+±ílÌâ—Ôå¤fPTšÇÄ(²kÜûb¾‡.—@üåSDj†ÓËI¢2-‚ç± V‚cÛŽté•€s7Ið‹ ¡¢»ÎnPÂ× ÖÿØ:ÛÝ&ùz,©Å:Èð%°Ù†´”•QÛXúÒQ\?{ÇÄ8nd‘›qƒÈÓ;Ù–Fzº‚3yOZ:ÜÃ᪠HOºIEE.‰1±äU`ÜÂü÷§MpP"rU7Ì(!òàFÞçLñ†{tÏÌ(÷ÝÁVŸ®Å%’ô+~QÓxÜ4)¿±löøVÚb²‚w°édYñ¾„EçR¡ÏÄ™f”Þ"À/žÌÈS„ÞêHÛ6ͱ®½È»³¿!¤Îä„DÍ­Ð-œÉx…—›f8»u¡ã€+œôŽ"+>€ðëh¬Æ3iŽHeÉ5„+Ù\=Ì­vÍqì<˜ñÊ“ìõŽ$6>ë>G¹jË }ñ˜ËÑá¤'F–È-§ Œì^G]ô f“s’Àt[\Ûàpíè+rINÌ¡²2‡Ä¤DŠô67Ž£ÛÂL:Äuò&0ª‡Mìqd“sŠÀ4+ì]ÛšAõz{M5•ú^Œ_”Hào $ÄÅx1qH7¬¨âÆÅ]|´ì°1_ÂÁO¿áx‘=]7§0>†äÜÛ¨%jŠÈJΦ¼<—ä˜hòíú2Bÿ[ö'‘œMÄÍ&1|€;]å¤÷5²âˆˆ½Úr"g¨-¿F„Mäñ`n¹9ãlc‰ ¨ŽþŽ_£Ÿgñ˜dÿJÆVÆŒÙ^¸9´AÈÍæîô·M%òìYÎG¤Glê-c°‘e \òcŠ#ó¶ŽÖƒF î9LõÔ‘´´t¤uO×¢¸wt ­“†š˜³œ Í!öd)=ÜèÞ¹%¶ݲäzuÍÆ|ÅV÷¼õ½?Ù•zc;Ìh©z’k'⤯C/‰ˆKì»w£¥m$œ¾LTa)ᆪ݈ˆz¬[ÑNÕn$“Œ_€ÀM§ÖtïÙž©Ê$+.…¼’J´-ÜhGÐÉsø^M"!>ŽØ´ÛH:Ñä`ýÍ©&…+‰T™Ïf´@ú;f’à!ô+‡,é†{[;¬Ô…$&&’èË÷Ïâ>c(öd%DßsžÐQ•‘KII7⳩­Ó¢—ét ½©N½&a…“« ÍËgK Ü<ºâ¢Ö¢o#&ù‡±å\ƒSQo@a×·­3RIˆ 0"†…°ÁNSMab819TÔêеè‚Êò*—Ï„#\O'Ø;€ÛÏŽa€œ;º¡‰EI†…K;ܺÚQ‘™Nb ¡×oP¦ƒd@”™!çß¾ð6?ûfQómP½ãËùã¯PóãbÞùü1·kAf@”D“¬¿3OI’L­tŒkdDhÖ‹aÒ)öˆ#>>¿³‘è_Og@ËIößËê·7#´XÌ™ßð|›†vE÷#‡ó—s™¹æçÎ_àÂù3œøzg.“×zC-³ëX:)Iq$gܤR4PS|¯|Vc@MQj>eÿ¼&‹-ÿW&ò¦ƒÃgÈd¨ml±ª¹cú-,°9†ª¶››Є&<0WËÊdÆì¢†(nƒIÑëõhµ|/’s3û‘žKaaá}¥ŸwïÞýH:€›7gμg°°°Dif†ÜùW¿Mná&4¡ ÿW¡ÓéHNM§oïîTTTRV^NÇí% ë¤hÑ‘ »O,³k†ùôáÔ G† ‡F…wÿ{´è={¿Õl8JÌͶ,Ù¶n€T[È•“[Ù”X™@JœýÃ¥(ˆ­{Î’^ZLft¥-†ðXG',êo3ÚRnäÛ2ȳcCÆŽ$IÔÔÔÐÌΘ)•’–u„ì â.áë{™ØšŒ?«KØ{ô þ7½XýÅTZ)åÈ€â€ïùtÍ¬ó‰ ‹Á~Ø&õïÊÍŸóíñt,ûŽcá‹*,£ÎZiF·þ^¸Ù­ûÔ§÷°÷Ä‚óF°f͸Èd”Äøs¥\Cnà9.…wƒÚf±+¸DÕ€Pµ±8—”¼RÒ’‰ðÅ×ï2ñRg& ´çÒAoÎûøp9™Ç×ýÀL·»÷DÒTpýÌf~òÉE¡M%!­‚®Óе"ƒS›¿åpR+žza6ÃÜíPˆUägjpóLgc ÁÛ!›X¹÷Íl ¸‰Eÿ)ôtld4)«DkÞŠÞ]m)¿UŽy›®ôêÙh“ŽðÕî0Ô”t™ÚޝðÒÒžD}¿ÃÁáDg·aɶèŠuUÚôÚ ÇöØVpaÓz&4çɧç0²k3l;x =÷+ûŽ&0g(_|9™ ç>^ÜÜð);C"¹%ŸÁÚ×amn‹Ss{Â×~ÆÞ =<Ÿâ¹‘®XºôD™t…£»·p*µ¯½9“^Í-pè6œòÝÙåãCô퉬ÿt4mÆ¢(R[[‹ÝïÒñÝsö¥Î}“&ÍiDÛmxeÛKôµp£[o%ç7nàP`òî£Y¸hf†ûrÚû7N¥Ðýåטñxk,s}ø|ÃnΟÃöùÝ|:ÚÑèpÑ”‘—gKÿ =qÐU’á¿›6x“-ïÊ“KÞbdk=)¾g¹Ùþ1Æxö£¹hF)ýHûå'ûúÓŒ—ö,£¿BF«þ£Ñû˜õÇâ(±èϢϦÑÖ”1PWW‡\.ÿS‰Å1~\-W“pŽKÁ\IÈBtîs],×òrIô÷Ჯ±¶téÝ×üslØíÏmM a~T·›ÀÀvV¦Rß¿­V‹(ŠX[ß›£WGQl—.ùBHH0AY´1о}F2©C¾>LHXá)71µ”ƒºÒ¢YÖoålˆ?y­˜=o>ãº6{à>«;OgP[³rDQ©««ûCÚÁ¼­²²õÈE|ƒ‚Œ²á…µ énnr¢Õ–’[æÈ ÇÛb&³Æ–J²|¶²ít0þA9´ñšÌ´±]þt†¢Á` ªªŠfÍšÝku%Íÿ(;6nã@tÃæ<ÍÔÎX8õeJ‡lvï8Àß@|“Qm<ÈòV kÉ€1ÿ½³âúúøgvv7nĈ“ 1 xÐàP HñRÚB¡JB[(Å­-®ÅÝà®Á‚»lVæý#<Jø½û}²³³wΜ{îÑ+"ë™Èú#‡9|á>æû0¸© ±Ñ hð.i(/N•@‰Ó÷ðÀÔ ïV¼€iÉÉÉXZ<ºŒXNoœÅüý÷‘Ò®þ@­\ öq‡™·h 1±Ü>ˆ8«Ê–¶Fwn!Ãç‡a`Ë™½ûÑù·¦Qý \ûc(ó‡“eÙ–áÝËbhd«W—ÿÉ_ïãܸí[øažGÞ߯¾ªÕjLLÞv-«„:=ž‡ÉÅ ©S §d6M™Ä†0¨P· ­ƒÍýŸó«÷îçðE+zýÛ™ˆƒ0™k~aüºK$[Ñã§O(ëT +á&ëgÍdíþX¼»t¢uMçìKʉY [p“XNï;„X¾5ëÕBµvÖ^$Ѥ=†´ ¬CI¬wØ0sk÷GãÕ¡#mê”Ì¿â_›À»øWrÇ# :÷&Ž`Þá“ÜÓ}ʘ•0‘4¨R’IÑÚXÝ“ø‡\»s…«·®¶¡¡{¸¤q¥¼¯FáËùmÞI$Eg÷‡¢òú’}JqbÒXV:ÅÕXwúþÕ/™9N®®D­ÉÔõ·1¯ÜˆÎp´ñAvñ0kÍfK¤¾û#d¤räߥh»|M ×g¹¡C•šH\– å#Çʹ8F6&ÈÍ|iÒ<õå¬Y½†ÐCû PR¾ZiìÌ=)i¹…svs×®µý ypXEðUqU¤§%rEãK+?;,=|°ÔF²nÖt¶\¶¥uç¶Ô,«àö-¾%°55@Ð$p㮕Ýq-LÆÜÉì/^ O[ʹ<ÕM’šä„4VAÔõMãÜŽ,Z±‡(3OJÚ”¥j€9‰‰&”-!7®ªX¿%c¦2vÖAN_¾ŠX¶1‹¹Q«NÆ\`þì;|˜C䔩ԔVmƒÉ8±‘Õë7²ïÐ~öÞ0¥jåbÄE›R¾š¦BΤŽì¸K„ž3¥qÃ’(ˆ ã\ä#|ÚuÀÇ$ p òG±—5+–±ù@ Gö§¡«²ÛÛ2v>¡¡g±îõ/?›2m—÷žÃ´n< 4dÄçÏh®³iá®G_çü‰ \‚ÈJ6#°¢;ær!;ŽëL©XÍ EFw­¨PÑKÛR”pJcócû\¯jØpïNÖn®¸Ú™ è’¹uG¤LyЉ‰\¿kHùª˜dÇqã‘%UÔÂ>j"cg ìæ=ŒÊ4¤Šƒ=%K»âdŸÁµ£ Ùq]‰±•'þ^ÔhU™˜íKXµqGî×䑱ÕÄqý~N¼k$èr|ÅT'jÖñ S˜AÇÛl\¤Ö¨‰‰‰ÁÉÑéI Yt>ߎÄååã8˜åI½Žm(eP°§eÝ9ÂÒVàòó_4°,,:ß…ß/¾ïå”I¯ ã_ñÜ—Ññ¦ô½M¯o;;;›¸¸8 ( ÿ }/»GziÿöüLHH@.—¿ pø>ÆÒ›#5-•J…µÍ[¾ç›j˜‚Ñ©R©HHHÀÁÁ¡ÞþUw¾y+:Žàììü-H….zó6¢îDáæêö–½ôîãð]Þ3==ŒŒ lmmߟ äæhR%cŒ®b–P…Q-*`m,ç¶>|ˆµµ5J¥²Fo~¿ž³ïÆ{ ‰»wïâêâúÊößþ)Ïü2ïÇ×4úf2ý_hÔüWïÝ»‡ƒƒCÁ þÒ êÌ;¬4qÄzÚ¿LJ:^4¦5lùº%÷û®£—¯²€Þßó>oí›ð–~oáÚüW¿Áûõ¡ò?ùÅþï‹®½¾½×Ñ÷Ì÷’ÄË÷¾_¾XAí4o¨ÿ^öÍ›úÇéç§Ï*ìèB“OÔõ‹D«Ì0Šg{¼1•ë4 ÄíM&CiH½ô/_ýzƒêáââO%WÓç4÷›ö—„ŽÔ[ÇÙ{úg·\£Æ?¨oú¢ß¼ø6}Q ~¿DfŸ^[ïjçß„’·í§‚Ùê¨;Q888’˜˜€B®@¡P¼°,IÒ“°vëT“g KÌ¿µ¸EEé«=ôÐC=> žqd%‰'ŸAÀ³”W‘%=,,ì¹âïùóç‹lñÀÕ­D>C®‡zè¡Ç›CxïEÉW=áíN­É¯ë…B£óy¤€Y5ÜJàbPЧ©ÉŒptÿœŠ–…IgaõèÓû„B‘Žgï}ÙoߥÍwo[ o) ÿ }/»ç}ô‘ ïÉoz·6_LÓÛi*Y!Òù¦ü …OÂ;³[x}S¸:÷u½ôîãðåð=ÇÙ.p`û"ehÔåè;*°PŠ¿y^¢z÷Ýñ¾uÀë5ù;>ExùÇ"J¾©|¿™}{—¾‰é˜:C‡WÚ—|qÁnõ}åoáý=ïc®oòßÛ|¡PŸõ.ºñM½Ž7iO(Ø{ …a Ϋ‚Úé7SB!Êàëùø¾T–6=†ËW±û†è\©×ñ3j»½éN"Å<©ìy…CÛ÷R²±g¾°PÀþ€”›Ç =ƒc…š¸¾ì7o;® ÞzÎKtaaö™Pˆ-½› ‰ßoøH}Ú÷ ô`=ôÐCÿ¯•›8rus/’ô‡……ïÚùóç ,Ò|wvq{&)÷ôïgWì¾jÃé5õ«õÐCÿ9ÉÉÉÙ:VGjj*:Ýû;ùGB†{ýŠ’ur2ªF©òbÞÔíÙÉI$ë#Õ"­V‹N÷þe§è}•J…Z­ÎÝ%E*Rti4RRRŠ ]­VSädG'Iè$]‘ã×cUº^+‡ÙÙ¨³³ß#ý¢ç'ôÒ Q !+-‹”ä¬wŽ9d2Z­–´ÔÔ·XZDâjI*r²ó8¾,j~Óã•LÉÉ)ÈÞó¤A(A㡞oå×HØPïG4)i$ëwqÔC¢iÿŒ]iøåt>%@‡:+“ôää7¶K‚EeúŽ­‰LÒ¡Ue”üneð¦…È´2Ó“H’}D¥‡y /롇z‰è5Ï òÜ"¥[‰¢WþX‹¿®%Ü‘ ²çfêKO3ù?ótûg=ôÐCÿïø‹`ZVûê™=ïÎTš·ÿu¶MösVI)ï’î?’"ŽÜ‚NÒ¡ÕéŠ/t’I’Š]ºœóCŠšì<–颯¯'úZ«ý8C8‰÷+‡:U:©ª÷!Ò™ø˜wG*ª2]äü&!gTNûŠÕ·…éIoë×èÈHRë=ô(ÒŽr6êl2Þö÷Ù™¤dgæ·§ïBNF*Iù[ÓGTzèñú°zè¡Ç‡HÔ£@PkÔd«²õ²$Jr¹33³"EWzz:™Y™E®²Õj4š"G—„DfFf‘”é”Ô”ÒÆdddž‘ñÑꊬÌL,,,P*%ý©i©z™.ˆÞLKÃÊÊ Ù{/롇zè¡GÑEJjÊÿ«÷Õ[}=ôÐCéŸA@†€L&CÉð ,W$h]¾|9íÛ·Ïw-&&{{û‚×¥½ËbddŒ “!“Éž¬²~åÖÏRÁúO=ôÐãÛf}|ZïñŠ·…Kz»R„ä]§ï§¾‘T$wCùïÇ÷›ÊŽ®HòK/Óïo|ÞêSéC½ÄGé9è×w}lº@ß_zè¡UÿÅ{¼/ëðqYé?zФ—üú°zè¡Ç6ÊcîÇçÓ BNX&Šø”ÿà4~ìÅ_¿€rÈD™("äòú¹­žõ.†zè¡G T¥—|_ð€óe÷4÷-½ôš€ »ÉÆå{8'µÀí $qùØ>6‡Þ,: 70— Ø[oNôÎtKl£p“Ò;Èv¡û…T-Lºt¼þ®”K…ðæÒâNÿ¿?ÿT*BmI¯×ãEªo 5I·ö³pYYщ…o¦÷„Ø]ü0ðkúõëÇŠð"üB‰Ç˜1ó‰ÿ¼«ÂñÅ^g׳ˆ»~ˆÅËÂÈ~N¾ß@¦ždÆ_^Ø/ÑÒ;ðè]}Ïg-Ÿî~ý6Úñ¿òŒ´Ñ› IDAT_gß 0Óþ…Rö®r.½µçú¦\” }4¾BÚIfÍ™Q±dIH¥è:e8!Ö/ „Iäü¦¥Ì[vˆ Їôà› p7KåàØ?Y~ñ ºz _ÜQ–'´¼Áºi¨7 æ€@·wýÃw3ŽSÌ¿»õ£N 1'qÌ(e“Îþ?F±üêm’iȯKºQâ2æÛY\Ò‰˜ÚP{à$>/û˜¸Û„Gœ%ÁÅž³ë&3õ â´:œ?ù†ïÛT§¸Q»†ýÁê¨X²tbÓ_XØ±Ì ß5#á"wê¨Õ!#²¹¾kóçn$œ ºýÒ“F~ö¼|ÃÏÛ¬r‡ºkb•‡{º¤¬_2‹‡^_òeƒÏÌ$~ÜG±lŸ}¿NÕp4Q"Ë:Θ¾Ó¹¬0´¨ÌÀ©_RV–ÿü5·¬bîßk¸"”§Ó=ø$È%)ìÿc4+®Þ"IjÀðÅÝð–ɈbI×!l“ (fߖ߯7Æ-Iw2û»iœ—¤N«nôh냙\X6‹E›q[W“{ìd†H›þº„´ŠO5¯=®o• ÉÿÎN&Êœ7Ë'ÛPÕ„Ëëýë*îÈ‹áW§½{×Åž.®[ÂÒõG¹‡Dv¦-MJ×J ¶ÿ8ŒÕÈ3úß.”xA-åî~f~û'DOjµîFß¶eQÞÚÇß —s82¥( Š ´{0÷ #æžÉ‰ä t2úÏø‘JF9-eŸE§Ñ{1s)EƒÃiï«|«!­‰åÏïçq#+gêó'í=Ó¸¾Ógìä¶UÚЧ[[|-¢Ø*@‡VãNç‰¿ÑØA×Ñqø.ä ­YqÚö£›ÍMvF:ñY+”€ ¹Åö ˜–)G5_{Dxq?¿S*M@à ³ýű¸4´’€_ïÉ|o¾‘Þ˜þM”¨ˆ¿´‡EËâh:² ÆGç1~ÚbD°¯ú½:·Æ×º0”±Ž¨‹˜¿d á ùú«Ï¨án KùaZ(RÔHZ ߯f2¸º)šG{ùk•’ž‚1Ð¥rëüqŽ_7ÄÇ.’ÅsBy$@vV1Bú  SÝR˜¾UI÷Ïsꄜ­Êbød¼¥qrS&>Þ”)iøäú}6L½Fµµ± ‚y‡³[´ÀµT†¯ƒ èâ8µv&c–žÁ®jzví@…âp]„¤!+þgŠӺc †‰ù´÷9´ýÑ~´¬ïùÂÄ¢À]6ý¼ÓŸÑÜQ†£C~¡Ì(Ž×ѲoõØ©Êäö± ü;} €&Ë‚àn_ѹqY¬^väѳ>É7“ø¼ŒŽ„[{™óã?œ”—"¤m7º·òÎ3“9¸â5ðt4G@@ˆÞHß!ëÉPkñî:™ŸClrÚÏL%êÜ®t'3j7¿ŸÎi± »t£KS/ ¤;lŸ6‡õ'oªÖâÙy$Úza˜kO¬æ°ºÝbBùí\® rŒŠ¹ÑhÀ(Úzª¹wv ÿ\Á%¹ ]éFôïÞ®†/°ÓØ05‚ªýka/“‘Ìïô »eæ8y´cØo!X¾ÔÆ?ë{>bë#Y‚Få'¿2÷3Ïg~«&îF( [Â9IB—m‚_ãN|þE-œU—˜7e;OÞÄ铟òY%lóë ‡;~ã»%בË@,æŽO˯ø¡–1—7ýÅ𧰩Д®_t£š³ì ­‰Ç1ú˜ Ýú|Š·¥a®ºÃÚI7©ýmm¬Ñ¡ÎºÀœ®£Ø//ŽO¥N|÷MUÌPuhs¦­á2tÜ›O+8 ¾€p—u“¯SkP›ŸÌÓ3èòç>,JxÓ¨ÇpÚúdpyÛbf.ØËC™#õ{|EÇ¥sìEn;ÑÛ~bÔåü4° Ί{,ýbÛt ,lÛðûĦØ<§Oâ8³v W#V’plÔo?«ƒ³INYO@àá¦oÑ€_¾kDñÌÃŒê;ƒ«(0· fàÄž”&»Ç×3uòfîɬ›Ð½ïçTH e꜕»‘R& Êh+vej·êXåx7Vôabtgþü¦d¶K#ñÿòZº  ½Ïá]I³,K½ª./Ö‹ÉG˜2_EÇurmÕ;BuS'ÒhЫ:¶¹ö<ëÎNÆý¹u›aŒ ±²]`ÝšU$ûô¦W]×¼P‡&å.—ãJÐnpc’92 “vÅ`¢”!Ú’ Ô5ˆÔí+Y¶ÿ2‰:w:ý6˜¦e,QƯ‡²>%Iñ £çµÃÞ¯ ít—9¹ö$÷ÔŸámðQs5“þåÀµ(â’ýé1µµÍ_ÐW:²RϰjÂ)ÊtèKˆ£NæïËž>äèžó$›úÓ¸z+ç_Å©j5ªyÛ¾[?i“¹~cÃTòµ{‹¶Ò?Ê‘{îtiïò…f÷ïüЮ¡ .®¯;Nâgð½ ·9q5„“§MhÝ­"ÆúLJ /롇z|ˆXÿ…fïéêßœ­ŠE,,-)ëHØ™Sÿ9&LøŸ(þÚÚÙSÖÏQ–»X&{RüÍ)¼ó¤ œwEöËúM¿X=ôУ¹Œý¯Ðx”“Ì\r*QºÔûXü ¿lƒÚ­úS#×>jnì`ò¬™¬ /Lj±eÈ){&yPF•?¾¦œ©2Œ_œ'D‘(àÝåw”¹ÍžGÙ¿ß•Ù,N[ÑaÐph*Übe·Š(E÷7¦ïÂ+Î=©  IæúÖEü¾YI·±¿ã!˜boÿ4¤~x+‰2*“¹"§íkѵIw²÷Nað‚Öu«€y¸:?1$HCrüi¶ÿ6•3 ¿¡‚R³Q* pÌ$>Õ† /~¥zÉl›°“]NîtrÝÍ…Ò­èÖÂsãDvϜǎ:ãhäðÔ£Ðe&pzù`~\ŸA`ý¯ 2"·s2* ÿ~“hýp3÷îÅѦ%ŒžcQÌö_è3ÿ™6ݨçº&ù¡ ²êz‚LPSƒg¼š¬só<}Ç“2«]UœI"tÜ*Ì;}ǶZÒN¯aø¤c,ù¾*yŸœ~k/'®]Á»ïdZÅ­aî¡Ý8»vÅ+|§ì«Ó¹q7t¦2d¡k»W"rù®×Åà€L®m_ÈO[ü™[WËéÝÿbØy"# ±!l3«®–¡£´”é"µûÇþê\¦l8ˆg÷¦ú-a~}ø:È‚øS¸4€u¼ š²yæ«àÏʶ«Yñáì[{ž€AÐ[ gÏÑSÌÝæÉÐ&&<¼”ÿ'4mV³L‡²†œ˜ý§<»Ó·£-ÆÖ0`l(‹~ ÉS—H9ÍÖ—`Ôec‹]bÛ‰=Ì8hÁ€àò|ÒÙ†jéZFV<ØÐ‡yºh¶Ž;‰Ð¨;\LQœ_Æàq¡,Qå‰ytK»±#ðÖŠsyÛ„týÉõ†0,(‹¸{' =›+ã?AÊLÇ©ýï|éwŸ#Ëq`ÝYÜj? Æ¡2ŸôíˆWñ«¬2Ÿ­?ÒÌÇ‚w:TÍÅÖÔéÔ oGsd:’d„“µŒØ½£è?ACó‰CðWkIMLáNØz:pë–1Ú'I³TîÞº‹•m@un>?åég§ÂHøq— ß,BÜ™¯K™c žaÑÆkÈ„Pyy?ÖÞÛF›$ÎîË£²¿cpq ×&Qóû‘ø›ß`÷‰,oƵM¡Pcçߘž}”üµ"¤TíÍeôŸy‡àÏzáme†BqžE_}ÎèsùÙõ!—.’ý¤ë³I»Ïõë†X¨1öú„oÚ—Ã<ñ2›Wî`‡±M«¸bô†ÔèÒqxÉP†nÑÜ¢?µriÔÞÜÍÔYÓYy5€a£½ðνžzdýg†rCjC`îäÚó‹äAã1 -ËÙ=ëøu“ëÉ8¶p! ®ØÓgÌH\”V8ZU$2¹\öòq…PôÖºˆvÖ¨ZfúФâM\²§íÜZT)@D\‘vy&ˆ(òg ðE”÷/…ŠøÛi(¬‚éÖ¿¶©:,œ]1yÕ <ã“ìõÇ&´@µ9&]&2Bq˜µ·²ú’#]|-P‡o`ÌÌl¹]…1•ýð„{èÞ÷U@E…ˆ©³ÅSu¬‚´-~•áì¾µXvÄpö±òÊv6y¹ÓÖ$ŒûvA4íÝ‘2NWY=ô_¶¹O3?K”Àð8j6.‹òúX’ ã—  ¢oŸbÿ˜yøoŒ6>ËN¿ñ»O:çw$òô)J9Õ ¸øT·¥€™»¹¦iÍâ¯s´ÉÅ%ßq¯Ñ†xǶk5Ãw–aZC§çdó…¾çµœ÷ëLßö&ijgÖLv×O}Û¼ŒÕŸLfzY:m‰sªcû8§^`ÖÈõÜõªÅ€ß>ÇÆÒ ƒçÇ~± ù¡x:2™ Mz<ÇÖÿƸÎÜZ¿‚‰¡ô37Ñá ­ Æ3ûðe®]1%3[ƒ$†Ž¢ïœãÄw¢: e«8·r$ÉŸŽa¸Ë ÜÄÔã%ùÞê;Ž\Å»ïºk2}×v ÌZð‰—u>;‘¸w4_Î9Â#ƒŽTÔ¤_@¯ñ tó+e´ l=$bÏå\¸šŸÆà›x™Çö±ÓÑšÖ¾6<Úü‡¥r7"• #bÅ"kÿÎO*"·Ïㇾ,há–Ÿ)q7‰—Yàßõ7êxÝfÇ´ì¶q U³2X6ôgÚ5#£ÉbÙ=n-Ö_ æçb™ÄÚÄoÓN³¸¿ ™I±X·ý>8½é‡îþg%Zu±£fº¹‘÷×÷`Vº Nn,îÄ”H<@õÄPiÈÈHàJÄCŒ·.ãÖ×q'Gwî’¤r}ùŠKyW¯d ¾¬ø[Pµ(“£PŠy~"C–õ+txì]ÊÅÚƒðS¹y„¡ÑT¶NF(ß“Ž}#ò%dJLü©豤"Þ¸CÊ©Pš‘¶„µ7/²wY2NehÿS{\oodØ’”ü¹!) úø-ß! [Çײô»š„X»û òuy¨’— ~3?OQR¿K=üíÍ_bÃdIw8íÍ·M*ãöž2À9Ê&!&–x­ð¢IK;06)„þårD±à)Ì̤S¬_”Aƒþõh™,…¼Dqô’Õ†5&ä¥ÇÞëH}Á¡µ×êß»7””¼wf&*T‚„R!ÇࣶÕú°zè¡ÇBî‚ßü†*w5°L&{R° ©ß胀{öìùbUà¶²²²(]ºôásÚu‘‰rDQþdpNXx¾?ò89Å`éõE_é…ꡇzèñ \ =Jq“ùÜW‘'x™‰=•?ýЇ‰PkžèUѵ&½{e‘8÷ò'ÛœI2{|«W¢Ü›<Ô¢ •”¤’¡)Æ‚'ɸ¬<Æ®e¸õ¢RW ‚™7æ6Ñš ¸ˆ2lk|ÅÓõLX§CÔÉÜN೑¿ÒÌ|´ Äqé€ËÖ÷8½Ì /+äï€Ò¶:óÆÜàÑçåp èËÐò6SBv²‚k&s‰Î”™DßyÀ£‹¶øu,O@ 02ÂO*ºãRv<ÉŸÒ£­9V†×ØuRDþÌê?™¡%~Íúó“a(‡ê¡"òt"i)A4«ãŽcZ0îS#‰WÝU¦~¹žâý¿åS_+”€Uµ~Œ5]˨eylš*‰ó;çpÖí;ú¸Þæ\¢€Ø5m áVÕù¬sUŠ  ônÍÐoD†ü­#'•ŃðXìàoX]fú¨ûdAžBP·ÎÇ‘S‘¦½Jà’^Ï¿#HI>Í®•–¸÷¨@¥òÎ(‹WgîŸQÄbÀÎ9ÞÔÚ퇿¨ÃI{†Ïs'Àˆ+‡Ê²Ðƒ²j‰[Bytû‡oiQZQ½ºÅ|jà8.¤ì0ŽÍs¥üÌòT°7“Ê,˜Ab'o¬ (ÇùßYBöBÙÖ‘t7•ø-~Õ¼ðÂŽ˜8p70A’Ìqõ ¢†÷ãD×Ù¸ÅrÓ+PÑÙ ! š2ÕÎq;_XMj|,ƒh2Ô“’XPîZa§nX³n¥ür“Uì ¢Õï¥H· ÿ*Tp\0ýú>éȸqú2Í'L¡ç³ò\PÈËõeHÅùN·‘¸¾i ÷Eê×튛ÜS±Ù^áN½O¬]CÚ·04P âFÃdkžøÇoï`ëLœ ¨LY‹¼_$°eóu‚GL£ƒ·ù“GùÚsöÌQ.Éó¬ú@Ed²œ#Cò÷sa!‰ÛÍ ø½:A¥ùÙQ æF´mÂÏÓP»{<;öV¢Ó†2èv_D-yRÙ +¼pvÍD) ‰#«â¸–Åm÷LŒ#Ù4å$®5zи†V2†ŽN`àª£Ä QäåWîFr™rSlÝ}(ïU3ÂW®&=! u¾qÿjÈŒm jùßâb†ö‰.’¹Ó£W s"×éž\7 üœ?šòó %’î,¡‹ü¨³Ç?Ü0ͺę£7I ´&U&§ÓÐ^Ô²zWy/Ô¨a€–;fñ˯+ˆ¼iÞ·?}?óŘ;¬=%ûÃI— PªGµÇÇÂðÃÑ­æÜ¡0’µÖ”Ì›9uùa7t4üqß7Ö²ªËdÎHq„59‚Ò»?ËFðÇgã¸(3¥¸{WÆÿÓ27\,ÌäበÌ^aFï)Íp •ð­û¹p׎Oúzphê8fmo4Þ„|>‰’ë¦ÿpå†?êc¨;ÛŸl-‘B‰Ž|„äk£>_÷S“4+QÒ!®ï>Båá?Ó+¨Ø³BBFFW÷[áRë6á§*P÷wJ«²¸üà É‘w I}Ú}*ÇØð©¸ŸN„Ž®vÆû+²¬\Û¢gK7·oààHp74Øl¶æR<ÈžQÒÆ]5ИÁÓ•¹%‚sìYàGPüÈÂ"ë"ÇöÝD×Ð’«›—²1ÌŠ¶CÚRJ|‰ïéÚ†>®ÖX\aÇI¹ ¨omà·Wi4ãg‚M@’ °°÷¡JIos&öÐÌ«U¦GóF¸¿b9žm)ÊÙæøéá[Xu£)M¿7âî–tÚø™OŠÍ:@W–2ûº+õ›x’—Š IèóJ½kRŒaór–ÆáÕ„l)…¯TŒìäÛl¼xž+.tÙ©â‰3Pnç6ÒoÇ‘îeMÞ2”y¥žüilɰy¹»Þ¨!üÜUšO˜Lk§þÉõ¸DÒuæT *II´xžÞ‡&> 85)Ñuèùi:“ÿÖ"ŠçÙ2» 5wùã/×áÂi¶¬Œ ³…[~¶ò#¸‘/5 1<©TâaºÔHÇ'0)¶)_µNbÜT2!‹×âq쇯d_eá´{¤ AxÖìÎט‰^¥o±÷æCR•fx—òÃ%×oÚ{¶"­~ñÁÂD$+tU½Úþ¿M•åo23Ü=|q±a^h £B䢈Lf„’»¬9Ž¥¯ ö Çßãéì«dßø9D„'Ó±É|ü:|Žé;¾ZéʦLUÑkV[Œ®žåÄÉ8*u æöòIŒŸ³‹REzùΕ£™=3…⺙,ÚV–A“Ýs&¯‰2ˆ˜M³o#éù[%¬í¨Zò"[ÂÀÏí&7Âvbê×Q&ú ›ÆÖ‹IèÔ®t5šw˜:GEÿ™³#…ôl9í'l¦›–ë+¾¡÷¼ë(冨•lÌài}ðR‰Ø1—Qc7m û`zêO›Àx–ËêÓ7IQ—¤÷Üi´/v˜ß§‹T¶Ç´-M³åK<I§E `í⃵ @<C­qµwÆEsƒ4‹T ôÂ,°2Åw_G«»ÆéM¥¨²ª<å-àýˆRuÏrû»š”Tkrx!$riój6åϹž;ž®ØÚfQ&Ð ;Õ!Æþf“™¾5 `@Ç ëéäzñ'r\-ç‹OOP±Iz–»Æ˜þå¦àMó~ß2¨­—ß"3f»›Ðâ‡jDžÉÀ,j5[.fÐ|Â2œvá¯CºL\C‡iœ_ü-ß,ŽÂ@n‚GP~ú£#&gr`õߊŸÇþÓu°5äÓOëRÕë&³üÁÖkH×5cÂÎÆíà—éJªÙŒeÒ&s;gº›MSó{ìž;„Q¢£â§}ù©w‰œ¢Ÿ DÁæ}· E«ž´©æŒñKÍÚMõìÇV¡Ã&7"öø>NÞãV€ˆ£Çyø`{Ã$jö™À]9ôÝ?MŠd_»}üYêKV޵cZ—qœV±E¦,ï„ 2LñôÝLjŸcÝg£Z{>ñ~^:‘@{’?:æhJ6’.‹ Ï~‚MV2›&Õcæ9®ÕèûËpªû˜lõ‡þ `=ôÐCªå/> ‚ A!ÊåÈ ª×¬ƒB¡øÏé²°°xîš®®®þçååŦM›>C4A¡P ÊåÈo·ýxÆ¥ô’ó¥×÷Ùܦ‡zè¡Ç q…=kÎòïÀƄԭKÃæmYqW@@™c{WÜŠ›#êžjYAaŒ…«6&'ç "°kסNí:|¿3þÕ 122Í zop1ÓšböV˜H†(d²œ6KSörQºœg(-](UÂ]NX™–r‚Íó¶óG§zÔ®ÌçÃþæljî¬ãØóì±³ÆÒÑ“t#”òÜóæ½){é6·% Œr­ #;!‚0£êT´2c¹xŸÿJ ``d”;»9œ3*œí‹afbŽ•a¡¿µ¤^ÍeøoA]å3Á® ÃÈÖG+Z P£Î@g”“0uÁ3&Ôä4R¸såÑ©š'~ˆÂÂ/w; ³>3‰ [§jÿ=?· ÂÚT(7²‰¿ÅÝIdçÞ+3´À¶„# ö´_ð%7[Ô¥vH}šN§ßÛÉ"íÚYöT­FEM&Y*³m`£Zx?†Œ03Ìküñu4B)WBYR½&ÁB. €l2nn\™@  MI<¾€ :°Ù´-{ÕxnRÌØG÷☈¹Ç?‘Ifºeîö¡2ŒŠ»ázù&÷Б{[7£É^á{Zcm˜Ìö!M ©µž*¡#©#èPgÆp=âI¹[IˆbagFÓ¸V ZœÄá¤^;Ïú?Gðy½‚«Vaئ¤j^¡’UœÜþQ/f IDAT7ÚŽðO;ÊÚYÑ®µ‚«Óã…\QÉ |5ÿ\0!ä“vT(ç€R¡ÄÈP‰ Íì)án÷¤*IY¨2rß]0ÄÂÂÛk·¹£K#-9“R<)ë¥B¥J&MûŒ„™ÚQÂãÜq¡Ug뢣üÕ³uj×¢MŸŸØ›  dH}*ºÆòGåªT Âýâ¾Ô¨åŽöÌLþ¼áOïÍ(éU ¹h€± "3Ý“Üåi®%)yá:ÏiÑc#cŒ€HÎe9PÜÙƒ3ÓU…oº4½¤%¢¨Ä:ÌíÅ•Fµ¨U·!í½M§-1Dc ÌD€hn¥JhŠ•Æ-Oªíá¦IDT®LMg²ŒäׄöŒíY '™2QZÒ!ØøP9¨,%Ã'pò9F¢ˆÙ]vNÙп·í té§D¬ÜCx²œš][ãáÙŽ?æÎç§æ6è¶^ä6jbÏn Ó)•c CGLj6‘{g±é –N3ö°bH ÛËùÈDRæ ²/£g "ØÒ™h„iòVöx@¿Eƒ©a’`b‰WÝ('Î%4ú6WRšÐ8H ++ Ñ>˜¾¿Ïc݆íìR—ã.r7&‘„=Ã9d5ŒI3³äëæÍÚD,"î-þ`íºÕ¬]Žð¥ ¬XfKÅåq±”¹àgâºMgelÖ÷ëÄ´mWø¬ŸQÙ’‰»˜Cxè–Ø€Ï?-ßa›c‰¬äÃÌx’ÚË&òt‘zç—o$â– M;ûåI¢ÞcY—å8výo“wŸ¡®Q‘nÛ!?5¢œ‹eÎÐr,×’áSçúOz3?/_?ú-deO9Ê‹³ ©5]›Éìë_ÑЂZz°w‰ŸUËœæ%kòÍ‚½ Š»ÈÂ>§òøFüò M¼Ì _Ek4¨•†(ž-ŽŠ(Õêœ;/‚LŽQƶL™Êâ¿eèlƒéýý—t¬îZð•ÓºgõýcñÒ½äzÞk“S^@@åÈUY¤g:R²ÜWô™Ù‰ÒñgX:á»6]À¾½?æÒ$ dg” Aå׎O•˜iËá¿ç±;C¹#¯H¥ÚU©àa†"ÝEf‘Hu :5Ùv5ö¬N9c”ÅÊâµ& A#¢´µ@avŽN9Ê%§ž oX [Œ©ÀÖ©û¸Õê Ü ‰ÓbÅ)YÖ›ÙÇѪ\ †‚ŒF]ytf!óÖ᯹($YªÊ”mP‰,ÏNt¨ëŽ«µÂC ÊÔ¢–·-öXR¾F5lG]âÕrü’fø¶ÄÜýM°í×åìßtÛ®U°À<öIj­™‚ÓÃmèžØY¢$€F›g‹|]+œNjBu¾[Ü›j&Èî­æÛ¾Seß×”ÍÊ$üÌê6€ Ú'¢–!J€6O›ÜgÅ+(Þa>vfÈ€ó»—S¯Ahž¤µDFÂAæýp†ÚKÇ箪pê̸í5Ù;y+gfÒ²O-œ„Wéé©‹"¢JE&fuþŸv2 ä¯ò=sx2tÁ„1£ùO$¯˜Ä'Þ]™·»3JsCœÊuá¯]íÀ0SK6rnÞR”Y^4íÓˆÚ]ªá¿‹_®eÙî4ô´yÁ«ZT··³v{}zírDuN‰³W/º/þŸ„K¬ÿ'”½k‘dz™Ã3¶óï´‰(Ešl ;ï&2wV|Í òN¦ÌQ®O>ÉÐ¥šÔ$“ˆ1ô®<™4CÚ¬2tÓ"w²ÝóºùihP~ÊÄ݃(—òˆK»6°öÝ8~/ãzB íVìÇþÀ`~=uˆMýˆ?yŠƒK°ù/%r™M¶–ýZP7o¾E”#Ïz…!‘}®%ͼ•+ãÊÄ#\·ˆí)…ÇmÊøÝg2 ßÎFßKÌð-³ö|AýŽn¹+3 ߺ…³'EŽ®ðô,Q]Ë–:Pí§ œM2 Ýv€ý·qxš$-H«ïEVMhöd2£Npt÷£„ÝNo;Œ­™ФD¢“òï3y¢rЬìÊ}Õo s”J{Gl±¦v£õDÞSR"Þ•ŠŸZ¾ó8¤X˜¢M±Âªr BJ+1r¯ŠßúƒDze[¢5ŸÔö¥”‹$`>šMš0~ÏPª‰dƃN0ÂÂ.“‘Œ[•A?À:|=w%İmúL[sš4™µC[¢k¸“éÑ‘öuJâfg„€^ë2Ðbܾk3™¥ˆV,†Ï'¥ /fˆ²\kša¬±ÃÊô.Ê„¤îcåYL0T"êTdeסÁþhKw§}]gŠ+4O·Ò·Gœ=pMMÚ•3$nßo%úÄRëS'  %”’{eªùºb'øPÒʼnê¾8Z–¥ä¶t´@vÔ:¾þb&·2´Jg*¢%Ʀ˜[Ùae•Ž‘RŽ}ƒ0ƒ4ièK)GsdŸÔýõ~N6sAôéAûÚ6Ø`̧4nçÒ Ñ'ç1pðJÉAcZÏûY • ˜ë²ÑR‰ŸVÎ# ž³'üS±û{5’¨Èñŵi9»SJ4–T󧺻!†*oJ^ dÖæ˜aãà„]öE.Ø}Á f9ýlRÛ» ïRš2€L4ÂÜɇ:=ÆR·ùifO˧š1¤W•çÏ`O çŒeGz7uÅÙTÚÜãadû~A› SÌ%7\=Üp¸˜N6o¾ËÌÿWèW롇züÇž‰E¤g·€EäbÎ*àŽŸ÷øÏWÇÄÄj{ûöíûÏyÝ£Ï׈rr…¹("ŠbNñWâé9ÀÏôKÞퟟû^_ ÖC=ô(èÐI†ÿÇÞy‡GU5üsË–ôJH/„zOhÒ;Ò-ˆ¢Ø±¿*v}m¨Ø¬¼¢ˆ€Jé’ ¡—$”@zo$ٔݽ÷÷ÇnB¨*‚„Ÿû}žÍÞ{Ï93wfÎÌ™œ]pvqóÝzæTÙ_½„ÎÑ 'œÚв•ê?Œâ•?ï{âÊ[3ö‰ÁxS‹ÑÜ@'”eÚ&?ñ2½­T$\‘Ѻ·¢M_¼ät €ülGœõž8‹ f³xî$zi)mñ¯¯>±‹,¦Õ/sçeYÊŠJ*K‚ñ÷­{RÛg}ÍÑ&·0éÞÞøÊçÜwZ{ìu½¸epÇþ0JEUÕZ®µ¶€¬¦N8¸8 CÄÎÉ$^6˜ wïÂS¿F³cQ~æ½ç`ÜÄybLöhÐë4—ÞP (XÅ7 0m¨ .îxä»ùܾ.Ë.^ÓúÞMÆBr<°ss@oΣËé6ø‹ "Ö;1Íù¹dµ ÁÏdÆl üb.§D2c ðÀÕÔ /Tu6iAžxÚˈŠh9—Áév!ÖÒßÊ»·ûúî"nG,ÛKâöN2A}§1cêpÜö­!Ñ=N.ŽèÄ–4o!#Iµ˜½GðÞŠ5lÙMÌâ'iÖìâþc²'mǽʊ˜Xvmü‰7†¯‹3uõ[2ÿô­ oŒ¶| ß¼ šâæÔœi ~czâWüš)" ö8KzìÝü ìБ6nÇH«ºú0UÅðéØU´[ü £ë£¿•$®^ÄÆ½ }2më›weò˃ŸRzçÜ50GñÚÐQ‹ƒ“ .Nθ¸¸âê Að$äè6â/”3Ò¹ÞyçJ@‹ÿH€MÔ:áì`‡>üI6E½ÏàÅ[Øcˆ¬µGDSD½Ú€þàSÞhåIÑþdJ®éˆEAñõ'8í §Ë­æub)‹Smƒ PU”†ýÖÁòV*Fªí›3䑯Ù;‡ƒÜ©-¨¼l¶ÉuÕ1ŠU¨&jK‹È ÀǤ"ÈŽ¸ !{t¦sô¦lŠÍ7^+ *¨Š€ ³³Ð\”ÐbnÉ•U”kek–¤Ú¸¶#*–ò’ɪ ¤º që^JQUKv¹Ö±¾Ç®$ijk¯ä¹ Ø{ÜfCRV²¶¢CEgÚ»TRâÔ•©ÿý‘­ÑÛØ²%šèØÙŒké‰íùISl”4:d“ 37$Ž.NØIÍvÂΩ“òG4g.£÷~Md¹%ø{jÛ¯¬\[Ëà÷î§Sƒ¨QæÚïÉèÝ–ð`_$ì£=ýÂhqx#'0ãß¹=ŠIEÒj-rIÒ ›“³¤C[W.E©ÅØò1Þ{8™ç¾:‚XwRQq°ó¤÷¸)´VºÒ)LÅd–±3gégßÇ0æFï&vã,F…ù ›L(’l%« ! ¦Œß˜~w cVDZsë~š9 ¿üòss8£··ÝêÒÕ8ë9ˆ_þÆæm–yÇÄ~À@7{$I‡Nº²ö*?qˆ„²‰7I¬9ì‹OHa® yç'^&ŽÈ“TûçÓõغuÛÌ·{ ©QÏ¿¶n¹-=:­Q¯C#Ë3é,ãEþûÅ2.¾XU¡I!‡gósœõ£ìýì<ÖŒ`#雿åÙû‘+¡-5ØyÅs²H>Â!µÑaƒ†î#éL!U*”ïÜÊþ ¦øÒ‹þãV°}¯ÅévfO'Z´%Ì-˜®Ø“d˜ŸÊYÏ>ôíšO©é89U ÜÍW NR_†ŒÝDÜÁ 'f‡ZãsÕ>w¡Þ© Ý/àí=ìHmE‹¶Ò®ïY—PDVr.YøUƲ!z'û‹óavrÀÞŲV‡N[ƪw?EÚ? '~æá³I¬{´(£ÕÉdŽ&þP"^ÛZœSæ¬XÙ„Žºè8zâ,Ýi)ñ(æïaûÁB‚{ÐmÈoü°¡0Prê 9Aø^å1zcê"ºŒN«¿8üU Ù·h6ó6‹Œúè~:ÔM™=í2G=È]£[á&]Kcµ?Ïû¬÷k ® Ê6òügÛ(.7‚ "äp¦mC§wƒ—ҜϾ˜_™½<Õºv”¸j‘›¸pMó‹ò9]QL^MG&?êÉŠŸWq$¿Î9yˆný†ÝB°/þ·°ë¬u¤gK8yò0yþx™UQ@ÚñÀ+ÝH[±ˆo¶žÄp5ï•`¥å´EÎý¹¡~@@D¡}n]ÆöC€Ñ@ÊáœéLg_t¾¿³ñ@:Ç+¨P=p‘n°JTAÕéqt®Å´óg¶™)ÑÐOÇÕù”Ϥ°Î z3lnÏû³ þAüˆ…‡s )I{È} -¯é8dÜ›zìÏ–ÍùÔtoˆ>ÕHÚ}€Ó2Z½¦n/3n“‘ÔÃ;IÓŸÖ7“iUt„=Ñ«Ø ÌÑ£FŒ’ÎWàï‹m=nMB鼉}@Þ 3©òö:—¡*VkÚ1pÂf®L±²w²-!” &P•±ŸxÍ z9€‹—/þm·r0ÈNåhi.Fo?´$ðåCpzðT&kƒ{ÝX‹¢ÙdDŸ@P©I^ÈôQ«è¼ò³úàomöIö¬ÿ•¸J€BN2R]ä«Ë‰•Þô³œíS5)vrºE3œ(eßÏïóÌãóH0_Úö”€ÂµsXzªÜˆa1«ÚÑ,jO.àþÿaSPÙèïù9 ‡ÓI9díÀ…ÏÝÉñ‹ÎßuØ'' yªï»DU뫨O/cñú <0Þ ÐáÑ4«X½WrHN*¦¨Æ ˆKÅtDIF£•Îëi_÷C«ëJ÷!+‰9J8yâ9Á– XIƒN ‰«–rÊdÄ7ÈïÒ%CÜOÖt£ËàßøaS%PIQò ÊÛÑÎ;“œë‰/H%ᨉZÉ'նш Ó ‰"©/Ư`{¼ÅŽJ‹‹âx‹PÜ0¼þžp‰¥´’ƺY³¡¢ žI3«m,J´:ë=õ2¢ ¡mLÈÁÏX´ÀŒ)ó0ñÉ!9UsrÕ—|±ð,Ãç>N׆¶Ži?KWxÓµ[7üÜ-z^”µèt:tZ :­Œ(j.‘©m6¤#^²žŒµkÉö !øl ûvŸ$¯JƒN§C_×òBàði2­|ÑŸÚŸ~äÌA4·oJ³Ö&ŽVsÇ]=CæŽM¨Žä`3w½q7+$•(OÏǵ1}y.zÙò3cGóQO2÷ç{ð7[²yQŒÔx†Ò¢mKšéÁxò ¥ET]V·(˜Û âoÀl&óÀNN6ñ!8À‡{HPI@PÍ(Mý )ÚÄθ4JM–yë4çx抚BÍ#qw2¹gG0¤£4Á¯,–}1‡9S Ôf×AW\<´H‚€F§C§+bÅÌÏ‘GôË`Á".ù>Ÿ'ì†Ä¶³ÃÁ©cCýlW‹s‡˜L˜/<˜u)¡ ª$!·íOÀ` -agdË 9ÅçQƒˆ¨˜Q|ƒižµ„ßcr©Êb·pàÖÞô„KêX³Þ—v=éîæs*å¹’l±X-2øðÎé|±9•ò‹æ+¢µwdøÛ»Ù²ôNŽÜΈ»“)Ùýù²Áf3x4£e§,Üiy@zü6NŒ@GjÈ=ú#÷‡O曊ÛÙ¼yÏö÷m(R·[0-ŽG—n!^fìŽZgÛü®Wk!Ù`ƒ 6Øpc¶Ê—(]WªLEdIF#ËÈZ-²FËwO#*r3e¥¥¶Åû#å&ËL{ø14Zm}°$Jˆ¢ÈyÛý«(ÿlëÿkƒ 6Øð÷þâï¤?2šðìœ{óêši (ei¬Ÿûï¬Éµ¸Ö’ïä…ÿþ‡yËyñݯˆ:^Éoë¾!â™ÅÌÖ‰â{Ç30¿30qN<áWx¦’›Ã鬽DEo$fó'(ªŠçÐ|ùæÛ4âî˜yšròî–¾è5çOÚ’¸ýóD$ Æ\ÀƒsWrû´gøhz/Âóìi;ìQ^y»ö ‹(rÓÑ,ÈR8·Õ}³ð¿ï?Œ{;C˜ÕY„Ì]‘U’82‚™ªŠÆ#‘¼NÿŠ“8÷¼;Àœ‘ÆéÂCl^·­KßDQUšNxCYùÒ|”SÀ­Ÿîä΀ó·ÍJe;¾}”~ÍàPÊ(^üäu"N½Å[CÃy†¶LýàUº‡h¡ DÙ’©\çOÈ^ö(ã?:Œ$ÃøAó˜:w#†5𙈲5µY-‡ªêPµû3’´"#±C¿dø{1¼µúN8"vN½yuõÇ´¦œTAD”Ì€K§tNNaÖˆpfЊ;ß|•ˆ@p¸k&<ˤwÓ©`0ïo»èõò\¢Âà GƒKÓ©|¹& ¨!bèHÞ¾=œÏð¡ÏÏòJ/G\y€6³Þå¥þ_K7žúa*N }âKv޼~/•cb<_ÅG\_<çí¼u!o¯ú˜[ 4{í4O ç3ìi=èA^y¯?®j †˜Y¼ð³T=¦̓m}Ñ'ÿȘ'~$¯´Š¶OÿÆüÉ`͹”dëš×ppÉ[<úõ^ì[õãñW>aRk0qè§ŸHiÕ…‡Ú„XK¶â±oñâ„ñÜò_ xqíœLø‡Îôœú2Ï ½Röÿü³æ¬' w†<ó.ƒÚ:ã ¼ÌråîDDh· IDAT¼g9¥–PÇØÏâ˜×K|™± •iCÂy@ß”·½É¼ÉÄ,;…híµIÓ!Ì|)‡Ç^~…Y†wùÏ­­qýk¦œÍdÓWOðæÊö§LbÆ›3ˆ(XÅ«3ç°5©Ö~ÃïOü·ïnùgFQQkæ¶ð/˜8;ž^œEdïp±ǧåƒ|±0bìÈL>{%œð"'"¦¼ÈŒ{º_&³ñŸ‚%h Ž„† åîi™<7:œ· `ð3Ó®n^Elã}ný:×·þwr›$Þà@°`9¬,X~6<(%IÖìJD$©nçÕ“W–=ôIá„£§IÐýÌùíÚ‡We7wìšDàtRÏЮz@O¿ÿw0ãÕtpö_fN çéʦLú`C›»ÂYÕòÕiS%ßf}ãK¿ÓÁú™½gFOº‡/žëIx#Ç?Å‹õiÐfÁò^J’ˆ(X²â Ö<ÃøY{PQ™Ð÷+&Í#½Àæaá„ãBˈǘõX0”%ñËÜ÷ùlÍI\ûÜÏ;Ï?LwŸ‹%LÑïÏ2îƒxUaBï¹Üùåžzþ[RïHøZüÚMäÕïž¡«”‹Sʧ¼3"œ¸2`ú›ügT› xÑ2VŤÐ󥯬vŒ“Ç=|¹¾¨g­IÖ5ÍÊâtÞ>"wnaûÚ÷PT•&#_äó'ÇÑÜ]l @1GðòªÜ?.œp$œš àõå3i^žÆºc±ìIÊa_ŸÅ(ªŠs·;xóÍÇq[÷#§Ûödx« s%¡Ï®E' Æ`‘q8ÓqÈFfEQZäÍèW_¢è¹7™6àMªîä«ï¥«ûX¦ß=›é=×Ðáù|=&»“èÕÛÄ$ަùòœ¤A{Ûà -ø˜×†s–0¦¼÷rÙö[á¹3iV™«**½_žCLÄx™öú:~:ØQ0;wepÛÝ|öÖ=ô| ‚ú„ã@8.¢pï#H’€pwùôdDø,tNŽ„ œ@'3m#:’¿÷ ްÚS.<ÜuÌz‚éorç-Ï[2?›=À¢÷Ýeé :K!?aÛ%ô¡Ç¬2›0ìõÈ{ù=ì7“*|˜üéW tC“ð5ƒžXDE•‘Î/¬æÛ‰Þp‰®Â¾Ïðí‹_ŸÂÚÈDÞœ×E#WF’Ä4Pñï~wO+à…:ýüÐ+ÜÞߟ÷g!ÖW²\k¡¥¢£`]KYÖâ<”vþž„†¦£‹‘Züè;—Øwžd±ž4‘»Òªª%÷~ÿ&³¦<ÏÈ9¬˜¾ˆ%+‘$å|]¬sÇ¿e(-æO¦_8¸7 Â7d8£e(–$«µ%Þ•,;—N<½b'weì`Åëki=ÜYT-ï¡tŽ“DIB´Ò-s6£Ðç×¾Îc·ö&Ü zû»øj[g@¡4ãQK^‰ß@ó?¥ÐÚñô—ÝüÈ`æŒtœ8‰n²€*ˆÈ ÞCQ‘$åìù~GÎÓÏÙ8LdÁ¤åø~8AÍÃÀþ}¨1™ð\>Í÷_ƒÁp®C›¯ß¿F>ÕqãòŽÔ«Ú¶MFòóóñóõ»îcÉØü!¿çúÐwì=´sùkw¬É>Èš…Ÿ#N^ÀÄÀƶªví¯ŽFWºîjïØðêUrmmm-………øúú^‡9ÿÑø®~Ü׃3Š‹‹‘eggçF%×Ê+Ê©©©ÁÓÃóoSåÊ×üµ;ÖÔÔP\\ŒO£Z/EQÈÎÎÆßßÿºÊÝ«AZzAAW9žnœ—Bee%ƒ&Mš\?Ú™Xª…jÐ$üÀÄH?æÞ7—¿ß(''´Zíu×[R©dddHcßãé™™™øøø I×7íÝ\SÆ–YH»-’GÂþ:·ì™ÕŸ¨¾x¾—Ý_¬¹pá=o„|¸¼¬ºÞºýêf{­Çu=æy-èxýyáÆj£˜ËU³Éˆ*ëÐdEóÁ¦tšuÅíÝÿÄÕ&Ê-á…/íxmÎXû¥äü,”–Ö¨—ÅVÚl°á†NçÿRW’XÄsYÀ ²V‹V«cì„Û ±-Ü`ooÏøI“Ñêthµ:d­I²–¶–kä½Èöjø_õ¢/ù]l°Á†ÿ︱[=¡Q­ÄÅÈçôI?šØulPÆúÏ¢š’Ò< ÒÇØWU¸Î4®#Õÿ× Â?À——ŸpÃ3ûnnYu­¯ù·¸sû¼…-} bgóÌä¾ô¿¥áœàÁÛ"ðºÁß›k„í»Ùè=˜MG9¾ÿn„] ·e_ìíôï._…ÃZhòA¸a+4Š7ézÌSh$÷øÿl=ý5Òãùæ©[èÓ§áDãÖ…Ñ*økY)Q1þœÛFßͳkÒÿ–ÖW#ÉKždô¯²©ÒgÍ¡‘ð¯à›æ½Ya+mƒ 6ØðOo‰¬åžëT}} ±®•¥X‚h)g!i4hµ:L:=µµ5ÜvçÝ|òÁ;¶…¼ &Þ1/oo´ZKX£Ñ ˲¥L¥p©<›¿_þÙ ¶Áþ_C0šŒ7ݰM&ªªb6›QTå:êuú>1“шñ/íŒeš„ ç±/AùË×Úp]y‡ëÏ;¢ ¢¨ f³“ÙtéÃs7D$ (fŬ4* ‚ðÉ¿ Ŭ4ÊqÕ¿sˆ¿þ ½ëÖóº­« žýžcn¿çÓ„ÑdD¹ï·ªª˜L¦ú‘7㾺±ñt]9ìÆf7‰‚X¯ß®÷z‰úÞ<³ºÏUÙ5ªÚ–ÇÖ¶G5oJÛÓþ ÐDðÄ×ñ•´eÔ½4„Ž“bG—в_(v)9ÃÒèü[Ñ­g_Z¹[ÏÕfEñóêrÆ>2‚òͻٗ]Hms_M*Sز<†,UDÒ9ÒjÐDz4±>¦ü »·mäŒÃìj²'.…rEŽã@wÁI®äøÚì/*Ç„ŠØn÷tóºäLÍU¹œL2ÚÕ- …Ç÷²+ö0¹B½Fô¢¯ÓN—p8ª˜ýCiXgD­.æÈžʼn¡Ok÷ ®¯ëcaàø®lšv ÆU'#˜Óز8Š,4öÍt[_..Œ«P|ê;£ö“-1´íœ©åÔæõìÍ.Â@Fß×/@ ”½ W’ ÈØ;wåÖñm°G¡ª$…Ë·“*6¡uçžôê쌉ì};Ø}$™"µƒ&õ"ÄE‡H ËWq°¢Eîȸ)]p¹*ÇÈ%æ|oöšÈ€ †¼#lZ»—"É¿–]éÛ»%ŽT‘}d{¦P‚ŠÙèHÛÁÉÖ’´jÊ*1 í7µn—AMY2;–n'Uô¤Uç^ôíìXt‚è¸}œÊ7"‹ ŠÔàžÜ¡eçªR µ¨¢ƒîB€d¥@V,ó×GïÖ”°^#èê{un¥ü$›—Ç’ƒ„ÆÁ°Acèê^CAòbb’(EÀ)´3}Ã;ãcWÙÛÙ{*› UEm5˜»#ÐJ`Îãà¶8Že—Zj*ŠâI £hë"@á~Xˆ( ¨:güºö£—C!I.téèæ"’Žæ£óò'¤þ]¹ÿ¦[M —Ë·“RQ‹¢‚ßÛ¤;ÌâSLîïˆ CÎIâöž¥í˜t©»Ø²íg—Ð.ôîÞ ‡k!ŒŠ“ãÙµ'|û¶ôë×™Pw;(ØÇÊíÇ)«2ƒ~ýïbHˆåìI¢Êôì× ½E8P”•Æ™BoÇ|öìÉÎQœ›Öµ'½:6Eª·ÅjH=˜‰S3?<\ô[¬ò(¿¬-p•DÔ‚(>#ÚãëØ…aËÑX™KÊ 3¡]üèRYÇ2Ü=ñnê„H5'~_ǾÂ2j…vÜzo깺 žù«‘]hÞ{ ½ (e?ÑQ ”"Ρ=ˆð7’›¶Ÿ• i'záïÛñÒÖ¹$u«Q©Ó¢µoÃÀ±í/iã‚‘¼«ø-òUôìO§®ÊžøCT§²}·‰îZb_–Ħ8‰þÃZý}}P´ƒÙsàÓˆ ËÜË@nÒ~vîM¡\µ´/ ì1оí½Ñ›3ÙWAóΡxÚk,œ[yŠí{ |@s‹\ÏÞÉ÷ëO Ëf/ZuïI{ãq¶î:ÉYUÁhò¦Çð~tô¯åhd, ™ÅÔ¢`27¡ÏäÑ´²³Ü3rm<™5&«TÄÞ5”Þc{á§”s*~3ÛEFÁ±E8zµÃSÎe\ ÞaÁøºØYÆVJTœ™nÝöüOFuÝýì\šÓol/œsö°~ÃÊD—6„ºBÞ‰D²jtØëD£‰ÚÚ\;bd't’­_ýµ‚-lƒ 6ØðOïóëÍÎs¿Ã¹6Àçz[Ä‚¥´(ËhT-f“ÙVÌfF›DNv&Û·nþ×­e@P0O>û"z½Þ½:­­N‡$ËõÁ_.›m}!mlÙ¿6Ø`ƒ ÿ öðÍ+Hðñ ™¬ÃµÚr¤[­.ådÜb¾Ûƒ{à­<ßÞÛâìÊOdkìJ¬Ö3uÆ= ö°G¬HbÉG¿±ËÞT4ó•ŸYqšãbˆ9fG3¿Žü’Èt¬fÃŽ *ìì©JZÀÇ|0 ²(Prè7æGïçpb>ïŠZMÑþM|µx7%Þ®„Ø—aÝßZüuIiøvï‡SÁj6ÆäcpÒS™ð#{ñAÿfÉ+Xm›)ÔÔä’˜hÿ;#ð gQ$‘öa"ÇwDz;YO`Ó\þXŒV~˜QÍbYšZ­¶‚Ä…‹èÔâÚ»œ³*Tc%gâóÝæ3Ãx£«?JÉ^vE­dzSäÒõüO€'îLsé¢%:{d9?Äì!~_¾hVkÎrø÷÷™³±ˆ¦áD´voà€±.Æ´X–Çldùz_^ÿú~ÜtFN,]HT²W'sÖ>Óòþ˜ ób¦²CÄE-coŠšòMü`61ýžÑ4+XȺ˜ Žvðq ³†’·o+ãÜq T(‰=BVëÿòlË*¢¾!2ÁgýVg` z˜AD²=z©åî˜3—1ÇYÏkz¢KžÃÊ :™³GþÇG-Þàݵgë…sž†‹NF¸o2ˆ_¾Œø<7¼Ä4N¥äPàøS;Ö°j[“+ðì⇶²–fj-)qß²r‡MS!m³¼œxcxØyNüÚÊSì\ù‘‰Þx:ç°%·Œ³žw2Ú¡–³Å…äç× Õ;Rv`[‚5´HO'ꔂÎADHç9€'·B“Åç_l -  Í Æ«5~TL'VòË‘¡& ™G8~Ò‰gÃÈ:²•- v´ *áØšLª LMìÞDRË]*Iøu1­ž¤g ãß+SV{‚?oÂàïCSw=‚¢¢˜ªÊ¿3ÿÛœðkBˆªb¨-&§à,r[ض7”v½-:SQëwãÞs8Á¾N˜ÒbYv!ÿ¦(#á§%l9Y‹³„$¤»²#ƒ&”±óן èþ%·hËIØô)¿žÍ3í÷qdázŽâŽ»c.cÁÓ½>œ¯‰H6Õ¨Ì9ÀŠý9¸„„ÑL:Á Ö’bÒã,k‘„3ìx;ã+ÿa¸´›ù?êi_V*ÈLÜÁš=vD´Î`õºZõFS–ÂÆŸk1OM¯P×?í|RkÊHŽ[Ìw³pñÅŒŽ>hPò“ˆŒ]ÁOktL~æ†5qª“7³(z"[òqßPœDŒ³X½·)î~¹$ï;F^«Wx¤™BÚ¶ßù߆ÃT{:\VI­éÆ«CAÒag§¹ì{¥"Ðø\ *f£#W*+˜ÀKT‡[þÔ®øÚí/¯™ ÅÁž ‚€×k|× •œŽ‹aÃ’Dœ‡‡áXQIC-W²ŒÔ m’$G|_êF^Ô<¶%úâ¬gUn1&ß{ÐDƒ9ç b×°h3¾y/}]ôeGX0k)û\ @Wu.EÏXe¢$¯Ö½›’²é ¶óÁQÜŲÂ2¿©ôQö½çY•:<\3Ø3§ —§ì€¤M‰ü¼ ˜×ûµÂ@ÔãÒi ï¼v+ö€RSÎé=K˜·)ëp^éâgÑ¥E'ˆŽ]Á«E&<2…1M0¤ü5±gQÜt”'ÌçãЦ|Ð'²w2û£ÕœôkBhµ¯ZLydÞÂÆ£v„•rlM:•¦qß}oRý>Ô+vFPäÝÈ’#®L¸¯ù&˜ÁƵ¹´½ãYîàs d¤ryUs„¨¢Ý€–8J¦« Çeô…¨ÁÁá¿4ø®¹˜„]‘¬‰,¥uDº³'Yý]2ùS^`JØI–þ|Š;›ùáQ.‹gÞ÷ ­4§öÈ æÏçt€Å¦-Ë(ÅPYL©]kÖåЪO0ÚŒTE´·Ê¬þm3Enx7qB,=ÁÂÙö<øü@‚‹ã˜÷u$­Æ¶ÅѬ¢ªŽª7FC 'ã~eAd Z&8 …^šHFö}Lz–uËé}¿'>uàòýÌÿ¾šPÿ}I‹1mqTêîçN~æâ~\ÃÅ O§"’ ”¹{áb.¦¬0‹uq…ø´iN€»¥ÂÈ•»ÜlúùÆÃ¶Ál¸1{æËf×G‚…†ºM@%,YÀŠÙŒb6£*fEáÞ¦“•ʼnc‰ÿš%ôðlÂs/¾†““3:;;ôvöèuz´z=²d)ý,ŠâyõºåT¤ôÖeÿþQ)[@Øl°áÚ!wÛ/oùs ;_Þ ’˜j©Ñ7²ˆšêZj%=Š$"e1K9à1”wžêeq|üDwÂÝM›)ÁøH {?yCy»Y½úÎc§3½WròF}”⾡xi%QFSaÀ`¯/|b IDATEÔ³¥ß¿‡‘/ñú`×N¨æä~™ÀÁ5^x —Ûgðd7„Ÿ3â›Ã”ö ÁݳÍìI7W ê _ß3ýe#ðu1S”[Š!Ãö·ûcï>nøâ‰‰˜7^åhF¥^þ xj]¼ ø¾ßIÚ_à U±¦†*- 9&œÚŽL{o2ÁÅyáË4N§•Ó<¬”ó÷á:tÝAÒ ©4Pé 9ç"QkI‰]È–B/º÷hK­2g9ºyÙö-‰èÝ4è ÕtÖX³{yÝ-f¼HýŽ‘oÇQ6&¨ÁI#gv'’QÒŠ©ïO£yY$o|•BZæiÒLÄùÖgy2ÂñälF}}”²Z6ÍJ§Ë÷ï3Éò¢ßá±¥û˜ö ŽƒÛì;çY"Ì'X<‰û’ðÈMÂà;ˆé“à™ó ÷ÏI!¨?I'äÕï¸;DF=ô>C:HM)ó.œ³€xIÞV(IÏâÄQ“¾~Žn”½ä6ì<CP”`Ý3ŒqCê<¿,xá3ç2µ¥T,ãÎÑ[IFëëV–y‚ƒÛí¿à9zÇæocïʃôª·ÞÓž[--~!ïQ$ÎYO‹O~äN/ hƒ§ï¦xrk 1k(éùsîô¯çç+¸È®Ù»O¾AW¨-ÚÍÿžZÆ~C"zÞÎK·¶"X ‰ ¿`[êaÒº¶¥û]s§·2–MzŒšZºó7³;|ûóÈ·Óò<‚V;{Ç‚^àã§;× læ@Iú†òFÑéuhdÑbB^@çkãrJcã·yDüþÃÝJÙWЬ¯ŽZÍG NÓy\›"õŒýß(ìcq&·3Ï}=7T23²‘¥k•¹*âÕnw´ó¥tÖ^\싈ûf{åQ¼þÂ`|E€J|>ƒ— Ï}:ì­2±îzQÖ¢×ʨô?ŽÇ&·²Yúø"R“2éêŠó_¤µµTëÈ"IB[c¤FÒ¡Xicù\FWY…ÁNƒ€€ªœfËyôZøctFNl˜Å{+ñðC.$?EÈíopwýòûo Ñ%'·²dqyb áCG2$ ¥ì[½’¨#T‰²__î¹½'~uáI£ÅŽlö,Ƙ»—“gN‘š'Ò}Ⓦjo&îã_H ‹ÊwßfGÀhž¢gŬe¤b‡»Ï  ×l<µ”$ï%r·#C¦vÄ…r%’^àL—!M9¾a›âS8«x1`Ú= ðÍcý6Í*ÖŇqû½ H¥Äü<“£i"N™ôèpüo*'³Šª4¥ëˆ¾L}ª[ƒQ_~Ây6É!¾½ï¶&ºA¬ã?{–Æc,˜¿žCqé ¸5A’ÑVÕP# ¨¢Eç•DÿÆßqÌz¢Û¹Cc€€BuM.Ýðë}†q®LúäYºÔæÛyÛ8º7“>½›1hj8ÞÎØa`íýOs4¯‚.Aè…|nnB©öˆýëuKMþN¾n5ûK{ѽÃHÞŠ ÿ÷±§s)¦ýùϲŒ¶Ò€ÁN¶Ê’3lþ,‡ž >d¬‰S›>à͉L± ™v°?Íð±áx‹Ûž–,7?7î^9|Û÷’hU°e˲éxÿZé@Å•æÝïæþ§Fž7žÑw·at½~>Û68:œïšÏØþiíŸ`îý¡çË©ÚRE/eŸ1„nÜðÀˆRíJ§I0Î×Õ¬ºëu2 U˜qA8ößí*¦}ÿ±œ^!! â×÷~^ëk¹kÙ‘MüðëNÔRòZ0õýû¬vØIN*"¬ó)û’Œ¦²’J;«ü7)¤Ä®ãlïç™}»o½}’¼9™B%”‡_¿—ŽóéÛ›I=•Cÿfˆé‘ü¸=¿n#hsƾ>(q¡½}iÕ ¢1š0Š"fYƒH1sâ6ùî«··PÖ_fÓ‡tûá&:Bö¶wxê·#<óFA@2ƒjª¥F§EFáDl"bØpfŒëž(z$ìÒî4wrE9¶ŒïvÑ®ßXR—_BQ(?³ƒŸl§D0š«§ë-±õ”[Ã'‹8“¥Òeüc kç‰^*g÷ÜyD•U¡û7GB°ð™FF*Ò·±`^4ùgšwÂø‘!¤íÏ 8ï(g2Ž“œ-ÐeÜtFuöäÌúhŠ ò˜ýßS„|Šû}S •€=–J‚’* ÔÖP­×PÎd45FŒ¢EÖ b`Û‰x=8“{;¸CÒ' ûîgûQºm)éŸbî}ÍÎM»ÆÀ“xiTÍtp|É\¶œÜÇ‚¨®5Yw"P›Ìï?Âkìºyë¬t½zrÿS$Îuã±)]©8s˜µËÐ#‰N”iÖ}0cG÷¤bãzâN¢bé‡;>š§ï æð/¿s(¯ £Ð“‡^‚wÙ!–Fj µ[Iä‰pÆNmÂÑ-éPºŸ\·îôéÌ©õ‹(i=ޱÃ{Ð$w7‹åT^fŇ‘ÝM_‰ÄU‘VòÙÌTZ÷NSe¼æÂ=üðå:2EZtÁcü8pšôÓ§(*<È‘Ó"í‡ßÍÈ^ÍЧldÞï‡(ª0bVƒ˜ðôTÚŸKó¡6w«WçÓiÚhZhÏñêLÄ„^L¿­%PKòÚOù6rÝÜdtNN8;7È$wrÂÙ® (ãÀÒ夷y•Onc9lPk¤èøV¶§ˆ ì°“|ûâV’è1øõæî‡ÆÓÕGìçÍðU¤<ÓŸ`QƒSû;yëÙaçqwùÉÍüï·cø=ò.u±{(›Ï«ãÙßÜ­£¹a†®¨ÁÞ^AÀ¡Ý¼ùÜðó4Ofü"V'¶à©_ïÅÈÏÍÆ¨xàç«ÁÛ‰DLG¯àKX¦ã,úp©ª—&¹ÿáî8ÚÜ) ¶° 6Ø`Ã ÚæŸ«öl-÷ܰtýˆEK°¬ªhõzEAU”úŸ/¾ö6ßÎýŒøÝ±ÿï×/ (˜ÿÌx_¿@tvzììÐÛÙ¡ÕëÑÈZÄ ³­^õ‚òÍêÅË}.¡þ1 m°Ál¸d±iÅJ‚áµ—kÀΕ‘O¿D/t.48…©¦Õlp‘tçÎsÎ=ï=ïဪ’Œ„£ëd®NRØv¯‚¸]Ûøæ“•ìêø8·|î&¹ûp&OC®ðoä«€b{êùdX‚€¡°ýv®bŸ¦‘ÕŸÞMùW ©a”jTdk\wÎ2$ 6åÑ(ç !´3ú̽ò޵谥vaÌ„.@¢¸›ŸZÊÂ/“h[z)WPWé ×­±eRò]ìrA‡fj…PЃۙ•®N¥¨m*G¶¡°E#Mïšø\éÎÅíºú×3ùð‘Û¸`aÚE3°‡¶2÷ýuêø<YïÁ”Õ‰]@ÓO#=ĬbzEZ~wÕiEŒNÔa£0r©¡3æ”$ì©yÄ£²û“'ys±Ÿœ³f0:Ïþó%p%暯ytÖ â¬zU!Üf<7Ÿ£ðÙ79œµ°G«d|RÏbÒ>ï{{õ©€Üê>ÿR`!ÝVðþ=WòYñU<6­>Å@#mÐL nųjOz3£ :j’R a6×>êç‚©ÓÒ&ó?P;?/AUDvoaQY&]у”欣…ž×žEÎÈuì9?õ$±é·Õì7 $YM'Wý~ùæsž:ù[CÑ{£!&2䬩lÙ·]XmöƼáœs‘Ÿå3ë£ñ|‡ô —!ò¬8r:Óaþ6VW9X³p9e‡Bì|ËM›!S™2¦?i¿yVL@”CÔÔ,â³ÙoSž?†¢ð6¾Zú¦¢É,þó—h$wìD¾°–—lä”±½Èø- `µ–-«WS#YЯfs]<Ýúu£{ã'¼üî"òóŸ•„¹ž¢œ|U||달°Mf@®—ƒß½É£ò¸­»ã„òr`Õë¬òÃMå¬Þ°’-ºÎij-{Ú–ôÇæÜÍÒOÖR0ÖÍϼCâ¨¡äæ¦`÷ÃÞM.H~v€CkÞâ¡÷ xdj>â&¶ÅÃ,Ÿ3‡sÈí=‘éc’e>É*i“Ts$­=CŒul¨*$@—@[CÁò*êÈ'>¥ #Ïõ³~×VdUœ,üp3uq ÷Üòª gĵw1"Ðx®a¡½+·¨õìª-ˆHÊRȗ픕ÁeîCa³A.c·­S  è# yÓÒ @ ßâu×S›Öü$=v Ñv~É3¯-Æ6Œ±S‹É8ÆOÚcúE¾YÉ µ¦ˆ}°çv¡ðíýTÒë¾`ÎâTÚŒïGšxlìµ9}郗µ/ÝÏ{ÛÒèwÇõ ³¨ø÷­âõ—V ?;B ‚“í«çrÍ­ß›WÌÄ©“èì8jµ#þ¹'un‹µ• Ë~>›³ê‚W¹íf?’#qW]K¹†m+>b£ušÊÚ÷?c¿,!šò)4©ìýâiÞüªÌÓÎbtÇ4ÔmïóÂ#fÜB_Ó|>þ@Œ¸ˆÒóî¬X2wÑÅ ²îaMcf‹8lº¼¤´ð—æö£¹ð¢«fù·óåûë(ëô,YëÁÒ¦“.žAÇ’¾®ø˜¯¹¯A‡½`ýºæAÙ×¼½¦†Â 71"ók}èÄjˆàcãíÅ\¢£-ý§œÎîÃËÑ…5 œò²<ÒZÅÛkØO$V<Õ ÂZЃNÏîa?É5%R4ò,Îö~̪ú !DºLEå[Ÿó÷ëçe ‡žFAŠƒÀö¹¼¶Efع·PlþçÑ‚tRi¬XÊœG^â@ÎxúeÆãoDDB®]Ŧ#:õíB7×g¼>g1yùc1~uŸÕv¡};‚¨‘dŒÆKk™3ÏD§’ kŸÛcPò=µ(ÛÂÒ¥.ê¿Ï²ÃVz êF÷Æ/xsî"rÛŽ#5)ƒ1DVÛ¶dÚž…ÜÁÓ¹9¼±:UÐòxúT¶\ÇC>P@®M#è;ö£ßŽõìc«æl ªý+Üv³9>‹qW\Eo«ƒ„, 8©Ä„1-ƒdT*ZÊw0÷…×éÖg$=› àHüî÷Q”~|Ôìøœ·_ÜKÉy£é‘¾‰oW,†Œ¶ŒOIÀšÓ†¤œöt(ÒXùØ?XìëC÷Îéx¾}—;¾(àé›™ûØGôº|96‚{–óÁË»rn;Ü«?`ööŒÎгyÙb éELÏO!·}'¬m$L{–òï…[):»3öäŒ#YymI nà­w­tfÙݱ%c ýål[7—·ÚO í·oòæÊ0ýÆÓ#q1ó?YDRVƒl´ï¨â ‹èw,âÁO÷ðÊ­y½ÊWðú ßa:»% h*á€/2÷è)?¢… )¯²!:¿áÉ[×`3GªÑïAö PkWóÕš|ξ»ãѸY¯#±k’v|NUS櫤ÆÛ@‚dAD@h:8èÞÏæ¤$&E¿U¶¿Âµ·.¨j¨²•Ìž¥”fVá²䊞&š*ØÅ#è½`!®C•4Šß¯†£î|•™·.ƨjh’‰Ô^“9»O6ñNn|PáŒI3[qÔ"ùý„ÃAü>/*–cünŸÿåv–[&3(ÏÏ¡õoðàÚvÜÙ+>–RùˆÀ1ÄC ¿2š5Ñ*àãä ­n"i)­¡UÔh°¦EdV®ºî&Ú~ÐŽ·^{évþúà’+¯ÅjÃh6% Ft:¢,#Š‚(F ]í8é磓ݢú÷äo¬ú7†bˆá¿Ã”ï/¤×Œ>ä«*òe¼uû×ä?6,Bà)~0Zó©¨è¿þ!E!r¬üGöµ¡èì>8lÈ5_1çÖù´qmÿ£±óýùìò¦3±G>yŠÚ¤aÅ^ã¦Q;úŠ€/ˆ&èP êñ¹{P2ª„ìúƒlY·žç´ã³ڣ¬]‚–›O›ì,*…5„›ßÊ£¦ÆVŽdïÜú9éþ@°²œÊªmd¾˜£]Ûülzq‡¬™\”MÂI$u(fPb=—,cGßúƳýVxáˆÒ"¢j”D1bm ò{ðézrÙC·bìè@ßâ-T5šNºwñéÓOñ¢¿/;? P~¸’jy Éí¦3äê™ô"1J55ì  ¨M3mD®ýŒêŒ‰ (<—³_eÙÐ?sNËXQAP¢ã3añù¨²Š¢ª-îKnMB"Mb `4c­n Q‘ĦŸë0( ¸ýeiz3¶z/¾ˆ²‚Ò¤‹©·WWOÃOH¶·¾f!’ŒÚͳ:N¤k`!Ÿ~·’œñgzœu†^øôXþöÛ|š~ãoëÈ ÷\Ç—’Š «8ë㸠ƒ¦')»Fläá—£w@ãa•üÒÉŒhÛæ¾XGþäÓÈK°Úö%•É%”ùXüð“,.¾€K„Jª+»Òïšbò<õTìÜÄœ'×’}c¯ŸÐ¹”M¼Ï7d]öŽÖŒ(Zô9vééwiïæ*p{Û^ Е³gɶ÷) 1ÛŒô³m…°1N½‹ÈI¶ ¨ j|Ì Ë)KîÒbÿR00ઋ·ººpÕ•ÿÄ0æZ“‡—Ǹ Üýq7<‘…$vèÇi3Uºr³áÕ›yYßËÏžDï ã/kžEÑ݈;)ƒD›|̽0“àj AHýž×Jü{Yúò|6,KÂhJ'oà†õnó㫺?þù€Ÿ`ÓÊ?›Ÿt Yj²"¢Î„Ù¹j¯Ôž 9 çvV~³Œæ,¦Žhƒñ·t‰‚€öP±¿š½º!\~Íid† ?ø Û?]À®2‰¶CÆsöø" J «7íý$òDdYF'‰„L‰ŒåŒ)]1{,|}ë~ê]q”LìCÊbÏ=ƒLÏG\ùDç¿w½t eéqëS_QûÌd‘ñH$fw¢_ñ'¼·ÜÇð"'!Y£÷°lÊ^~’ùË*H8”…Í¿EË÷Ó½opäÐkÔŸÓV ®€aÓΤ#PÙ¦’kþ¹”CSóÉþÃÄVVÚ ÇŒ¸N¸t•|÷ù×,4$rÚ„¢P}¿wný‚ôËgQ¤[Íz¡éùÑc ƒÐè%І-zè©|o./ëKÙ€Põ5ïÞú1…Ï%Ë`ßÚ/h3á9C  ÙÏë1…"Ïx°ùóÝ,»÷u|=&Ò-=8ðÅ[¤N~¡ÕúPß1ïËȺìÖh¬§¡säÒ}ˆ‹m›²cc&©#:´P9?*-ÖŠ,† 7Ù½sMõØé8f3ûÈ“N{¶„Ž”N% JiàТ¥ìì“OÏܱÜv m,ûžR8”·§P#Ö³gíf¾~+™”KÒÊ?O&/ÅxŒ*§âp}.íG»€Ÿ†«x÷¾¥$]þë_|Ä:¶Îõ°ÿ@nÇÙ1¾söœî””b÷² ì˜Màõ'yvcý—,àeÏv¹åßIüý’b,©Þ±žåë2ý|',s¶£¶ŠÃBxüAÂ'ŒyBͦT­’ÚÊ._ÛŸ¶µÞ¾•9Oo%å’~¥š¤ÞÃ`Ãk,ܳ1•½ï¿Ê‹6ÒfÁ2>R«Ø¼ÓÏ ÷YxðæQ¤ 4ÇÛ'¹‚~‚aµ9&–$å˜x»–±¢ˆ`0c­ÙGcKÿRhŠü¥ÆíÔ錴P¡÷ždIf)¬{k6ϮˡxÉB^óT°k¿ÈMÿJâ¾Ëúcųl7›•\yýdr©À./ä /DHŠ#»ç(NŸÒ‹7Žoþz`Åæ}jbàmçrJfÔ³z‹g5AÒaÒ«4î[ÁûŸ„.Ü…¤€“]ÛÂÕ—Ð&>…‚Œaœ>¥7VŸå·íÂåÒè^Ü‹ä÷j9í¼3É´²ûR_0Üâ[“/ TÔè·²¬ 6'Êl8œ.8BEyGú^VL~À‹ëÀjÞùÇrÚÞS}./ý‚u[z]Ö G×*`êÃÕ¤—o>ùAÙBrûþŒ›<‰lº¡=ó)‡ö»IžÜ¼"…vã&qJ§ÝÜóJ*Ão<›ñ¬Ð·–Óf~ÁΧìXR‹rÚzBT¬ØL|~1§5ž}⿨ܗ̈́‹J ýs>ÎòZÄIhç³rÃa”†ílQÚphB:èCÊ|SÏšFJÙ[Ì‘Ád+ËjûpÙãS(¤š%¯¾È'o­ÂØ1‰¼î]™2y8ñ¡ ¶Ý½Ž†:/ºnÉx7ÍgY¹ ͹…Û×SSrÔgšóÇó—†’mþOöX‡­1H0$`Ì sß"²âˆˆÎì\ ZCåIÉ=ö¥*èýûYúæglZž@Àg&oød†k”}ò2OÜø%&›sb!þ:ž]´.ÛžOßÁÅØU0Ÿî@iPP32¢ö´IýFÙ"ìן$ìùô\ŒCQQÖ¬2ò˜xÕôpàƒÛ¹ ÇŸÎ9‹¡9ÿ¡Ó²kó·2ãÝ3èk€Š6•Ì|rÕ/M‹öûŽá‡ FÇC 1üFhÉó­¾O :Œ b¤¾D“5tšÕ!’Àã&N!)9…çŸ~ŸÏ÷?5ggžscÆŸ†Á`Äh6a4š1šÍŒ&ôz#’N‡(J Ñ9šÉñVý}[H?·¼?æÞÅC 1ÄðS¡ ÐŽacÆÑÐs8rÙËlô ãÓ}0Aý'L¢Äª:pèã°¡vmOæwCìþü >[+3ðâQê³Â/!ŠÑm¸†ò܆}O¦BSd¬‰½;ôÒQÈս΂ík)§=¡ýÒÌv Á€„ÜôžÁÊóRÙLdìàåó^ |öeL/ޤeÝ .¼U:ä4¥glyçe–¥pÊEƒig—š“™½N!øòËA,Ús}{ŸlžTTP›¤¨I´nÑ#’@§A 'ß,Úr5ó!:yA Õ²yõ¶4v¦k‡|rtÇD4Çl3]K™=¿=ÓG7}ˆÙI¼ñæS¬éw ½-­Ç§©MD“ §ÃLš]Ĩäb¨š#mÓ%*„ÑG7±š«žêüT’ÂaBŠ.ús:PRmØÖDŠ^{•ñÔ YŽŽ¹¡†#9¤þWÖv.—ý›¯Ö)ÛQÂŒ¿Ž&CíA›wÞcËâ9Øn"Ù=RÄðÍ­ìªU9òtf8ЍðƒÑÿ-´“×JÎXDo/`ðŒ °w-C•œ¬\´“€)±9ñí^ñ™fL?‡VBæ<úO¯Ô%´›Ôò¯9¨A¦ÐbÍJDMI:JvJ2R ™ÿÆ.@CÀœ5€Ò,À{{#oþí¶¹’"A#>§&ƒÌ¦!™iß{í{û©î•„ÿ‘ïØ¾j'uÂüK +*Á¯¥$“¼)û+‡Ó5«…$wØIY›TÆ+*Ф;šLE$IBPÂu ´í=šÑ£`îì]XG¦cÓÿº.F RôÑc, Š×M}n ñA= YÅŒ:‚D“àú7kÊ·Q­µ¡Ío¬ò+( á°}v{Òd ‰ªßÖ-¬·g1$Ý‘¨ÿÅ"üL¨*Š9›ôd{TB_‡C§G'ª¡jaa j]x³úQ¨‹øo“#øCTÂ/DÖxr:žJ»%±²M*Jc!2à#kºêGqŸ4„ Æ©S3è–µ…qÉKTÐÐ!h$fD*T aLÌ$¹Þ‰û•[‰Ë(¢$£PIÝ÷ «+iPŠˆ;©M=“œÓ;‰† aÂá&?ëÅ­5ÙíøU‰Å9 ž|}E€B}úë]cÉÚi¤×éV»T¥I‚ÖCƒQ€¸¸¨ír³ô‘²ÆÚŸ)“º“lÛÖIô»¢eŒ²‘/y݌˘ÚÓÚ<KJ}K HñÞÇü½k8ìê@¼ýäñcHmº>Å㦮m* €-»ˆÙG>" IDATmô÷›múŒ¢ a>ûr‹öÌ Wú Í"ä¸ÉÞ–>c"4õ^^æË-{© EßÂ?wÈÇv\¥…œ2òT:Ê jnû€Ýâ_9ãÆ)öŠÈÁÃ,[´‰Z{g:æGž ÄÂb†‚eÍi,Ú:„©g>Ìc< Õ|Ã?ß•=4# zœlZñ6AÒŸëB‘8ñhfÂgþÏm14Y×…ÑÃGÒ¨Îû‚÷_z9_öa8çœ[JÜ”Rž~Í+6PRz÷u®Â–Ð7|Ë“¯º3¼6Aø–ïÓºËÇÄÛiœŠBCô«¨îzjóÒŽ'‹D|° ]‡ÑL^„0´ /<<—Å[;ÐóŒyb¤¨YÂìw„æ9DUP‚"bV‡ˆŸVB(*šBØÜ†ôdGô`‘Œ]gÀà9Â!¹'I ZDøUmmKÃaKï L›ÒÉ£À$¹é¾þzq)ñÑÞÃ2v„B¨‚BÈB3þý”0¡PdðWSž›N ÐSFަð•§SsçÇl –0X¯R¹þCÞŸSIç?Ï ¦„Zß2)•nC~@t-[±&çGâð°Š^oÄ&Fì‹¢„…àuÒØüÔˆ‹’Cfåjʱ#&u‹ÄÈZE–ÑÅ'c#€fM =ÞŽ0:½•$uŸ<½ž ž Š'ô']YKõÛ!MpEP Š­’÷…PÚôˆ6‘°˜**©éMrJjÄ&ª"Vƒ•„ÐÞ¸c2ûR:>‰8‡ß âmqŒN²·¥Ïb_©L2“f”À’ÇÀ1齿Îó!%‰äÃ+(RZ¾Ÿ(£Êñäô<…ÒqH$QÔµˆdÝJ‚Æ\úéI·¸uÜ}{3îÈknà &÷`Ìè1-Z*ùؽl%â–-¤yÍŸá¥Öa ɬ¡$¤–­HdIñ¢ !$ucÌè1[£Û¶ç8Úö Qw8…à¿Ö±ëë-ô:¯÷ üK ¸ñfõ£ƒ!âŸM ™$•Ebð‡›‚bˆ!†_}wv´²´¥$ñ12Å-I˦¾ˆM¤¦(JH:z½ƒÑ„ÉlÆd¶`Š’¡Å%ƒøë]ÿ -=ãbÊÌf37þåÆN˜ŒÑhj®ü5Y,‘ê_Y§C’ä¨ìœ•Õ>~#¡i­·­æbÕ¿1ÄC ÿuô¦Wñû¼úMä’Ðx‡Ø›¸É‚ÅlDo°D“OÑ ‰Ñ„^gÄl1è=`!s¾:Í—`Ûþ8ì'Q“¨aÝû/òþ#¥7^HI®È£kï ì«õE6F¾fi›4²±¹BÕ`3"IF¬ˆ$82IÈžÇÇ{‚4T¹púâpPΦê$l $K§Þ«ÙUŒ$ŸÖ/dIv&¹ˆà\Ä?.zëÕ·qáÈüè†×MMU%eb1ì,{åY>?”Á¸YÓé•aB–½ÏÒª¦zŒ ö—€ýDe=¢›Ù€Î`BÂFNN-n 5‡7³VÆhOÀ |Ç¿¯»yÛê[Tá€h5"KF¬€¨³Ó¶ç  Ä€aéQT@NNêùú™Ù<óÎ*ª´‰;« Y6`‰Ó]#´òk6”G’¥Y™ÊWÐ,*U+çñøÝŸSE™YrÂFŽTngئŠ{­aw?2‡¾fIv*Ùô¦g¿Xu ’snúšõm;ÑÅ’FZá×l÷jv8÷R›Ø¾G¨×ÊðìZÅJ‡»TLqÉ6ì‹ô ¬ý‚åíÚ_úCº–×lÓxmv`Otâ\¾’]@t`WjÊt Yµi5€2¶í5aŽ“P°Ñ¾o ƒ— ¬^€¾´?¹h~Æ}W¾ÃÞèVÞàÈ£ï°!ôi#ôW“Ò±}4¡^Æü7ý´íß‹ü ᵋùî@dU'æ™(_@MêB‡žïòæ†È¥„ê*9T÷È‚ï‡Zµû.zÄëÿʌҜhbÉÍÎ…¯òò\%7_EiaDæÙ·ñ+V®=7·Ø0%ÄŸ¡ˆöS5“ºÖ dÚè=üõÜ÷¨l®$ ±ã£w9`ÑÁæ-núÛªlóÕ£š-G¥õšï³éÝ–òð[›"ÖÍœMIq6ŠY×üyªŽ$®”Z¶¬ÿ’w—7F’Ût¡°­%ÚƒóçÎV3/eîލ]™26Èk¯}Á¾fãPÎgÝGõ°ä%ÇãX³„--’LJ÷o¢,!‘DÑBJûÞ 0ƒÜØío½Í›küÀ$ V³ÁM¢Gý€Á‚AoÄlµEÓªMÏaÄNÛDQêF×~°º"’´­Ø±œ-9]é‘hAûŒÅG" Öªrž ãoÝâUMoÀhlÄ»ü}Öx*Ø©kD2€Î2œûë"ÏŠÕ‚N~W]iMAÕŽJrwlBÓ =•Ä5³™$âª÷­c_I:þ¢#1‘’™CwñK>X^ECA/̘°z÷9è\<ˆÁƒ3x@;ìq&d-Œ¢µÐ+ôQ›¥£fÇ v”ôlÝ@û¾çwrêw±uÃ2ÖûªÙ@EÑY±œÌž·ŠIò° ‘˜˜NZÁ×ì ¾*vÔ—Ñ’r´_³ÙŒ^gÄb3Ýè;øSÞþ¼"ò»À~¶í·ã°C°j3k¥ôŽ‹=‘¤¶KÙËÙÚX7% ùàÁ²!a0g^s*…Ž1†o_¹Jé—iÚ¤ù’û.žGò¬¿ò§aQEçA¶®øš}ÑaÕQ ¸ÍM'¸i–h\# ô [ßXS‰#*·-cK^ÉxØþùË<úÐìQ„¦×6ÇžqH@Ýâ·Yâ¤9Û·!‡”²O¸÷òÇXé5Ùð_9”bXqif "dÈ kñŠGßÀK·üå¬çÙuˆò1J-&rs;’¿šg梩x۫ϳ¥A&{XrvÇî#Á£qèæ¥¬IL @Ðc?ÂÚò9/-t:â3{Э ž° ügÕŸŒ4RÖ>ɇ"ÏsíîUìØ‹Î ÿü{@¬8†bˆá·Úè '–‚n"í¬µèÜT ,étè%9A€œ¼vüíîûyì¡ûع}ëvªÒÒ3¸úº›ÈÎÍCo0b41™#²Ï&“9*ý¬GlAþ Bë¾¿Ú Éc¥Ÿ¿7¦äw1ÄC 1üè(½ëö^?‘1÷ëÑËùL{ü>úšû_½p3·¾±ØzøB®œyÝ«?á¾GžbÞªZÞúx6Ãox“ëf=DÏ»g1é9Ao*ã~'ÙEj•{Yùõ[ÌY`áÊ7| $޼‰;.¸ûm÷pÖƒÔÖµãü7J°ê#othîuœÿäJ<"SÏ}sî|މ3Æðȃ(­K mÏq\tóXâ÷Í£Ìb¦{v6Ð÷ÆËYÁÍL¹¯–zg—¾;“å _eî¦Íÿ¶‘— ":²(ýÓLú¹v#ö¾Œ$@+ÛÆ’Eï0w |±èYD_)“ÿÎÃ]kxêšÓ¹ÛDRt;ïMnÎk,¨¾ZV½<‹™¯lGUvWžÉןC—½÷sïà”2~Óµtko_5ÛVlÀ75جÆWï',8Éu/·å`Ù÷çýåmªœNRN½ÿTˆˆ†â.ã»ÕµŒÔ²ùƒG¸ì©e$äugìŒë™Þרl{óq–ò8¯s‡èiþžÌzb2³nšÌ8Bh¡4Æ?ú C ¼7\ÏŽ›†rŠ3ŽäŒ¾œ{ÇÍtø‰ÁíÁ/3oÓ>¿uÏ©ä”öŒ9çBÒ–¼ÉÜõ,Ü4½¿ûKùÛ0=>s 7ïjÄ ÕP8ñInè–ÔJŽü'A’‘ö¿Ë¬©¯ ›t ©(¡v\úÂ㌿òanš}SN}‡ACùfò¯1ÉX7>ÉÌ¡# XD¼úvŒ¹ðÏŒì©-8ö>½ëc®hþyäk\m6\Í´×ðk"š/…q÷?9ˆ ¦„ðø¢}Ð¥8â”j¾½o4Ï©ñàÓÑ~Ì\>¬ãÏ–.h`ãûÏñÔìÙ4ÓyúµôÉO#»Óíü]¸¿NO£WµžîÓŸãá‰íЛÛpåí[¸yèhî¶J(bÙƒfp×ÕØþþ|Þˆ\¬¡Ç®™öùëL_v;—’íÜ_µñ‹_¼‘[^ß…¦‰l+ÿWμ”žÎÏxàÑÙÌYQ‹46ï{Y“; /}€??ò){ÊÜ9æ9&Ýû)3n9Û'b”Ý„Ý1Œk^ï‚Iô0rÄVž¾|0³ëèXzŸ6ð7¯ Ñ”oyÝÇ0nØÃÜ3p!‘.“ÏçÚÒä¦5p㣷3êY/VÉC•y"ÅßšV CE@0D0MOka|¾`¤‚J áõ"Òܺ\ÿ:®=ýT^µé1›3ëíþ¿ø¨ ‰LŽ\Ü߆pAÄúzþT?øçxÍÆ“6ǯÃ㣨ÑÚBMÁ÷Ý#Lø<22ÆSyô®€ƒkñå•q÷ §âÍÙҘ˄‹óùöîùø døÐ‚}ACXôT­™ÇƒWÞMØPOJ¿K¹z@oNÖ%ñؘD°g1êê»?ª€»†”òwCGOçêÑmm›ÃÝ?Ççë]ÌÿꟌ¼u3oy˜½·]„§Â(t&<þÅšŸë—àxm¤'oûnôîû- *åN9‰î“ÏçÚa)°ý >_òkkðÉZ ‘ÜÿæöøO©é?ö†ñ·á+ÌÛ¸“ÏoYdzŠ9½ˆ)º˜œÍo0ë–ûIÔ{Hê~&_:‰vúÖνô!.}äcvqÖ©Ï2éžÏ8ÿ¶ ¹}òhFűن0ó­®@ue»Ø´1…a‘Ó÷„w}ƒO´ˆ=oy‡¿$ÕñðÅ“ø»?Œ¨¹èyéÛÜ”­Ø^Ɔµ›éL ekxä²'xÀæÇ^0’ó®G*ÛóÏ@¸’ëwÒEQÑ0Sú·{Ø}Ã)ŒºËŒÕÒ‘³º‹î-/+Äïõâõ)ÄY=|x÷õÌÚш‘ Æ=¬é­È-è£Ñ#‚õ[˜óϧ My‰&uÚÌãâ°«èÛ%á8oQ·à.|ô+×hœ>ñ%¦Þ;Óo¼–'nÂ)µv’ÛôgÆí71*ilþ'³†Œ$(™é4öÏ\ZÚƒVg4ƒ><° ’Ø*Þžvî{̸ãiº×îgó㢟¯–-áéÙóò¢JÄ×f³èª3ëªkXeËx»f†ßq9wO:•Ñ6Fy7ΉÈå¨u{øä¹Û¸û½}Àl6–_ËågžGù3ÿdƈÙ(¹ä/œ—Òš øð4ŠG¥Ð1‘•WBiï{™>díÚ%"Y{1$Í?DjîSÆçñá gsάÉ\wõÆia44N½â,‚¾0ª¢áñèIi;Š3¦nä®Á£9‚Ö.œ1} ’¤!†”V66‚m"gÍÍc>¦ÓE/ñXßc¬´·šo_žÅ¬Wv¢ª;+Îàò®¡oÃW<öØc¼¹´ñÙ,œù³f^ÇÚK®fÒÝu4ÔvહÐceÄßîbϬRFÝe!ÎÖ™³º‡ŽžýÌ]ð:óÖñÕæÑû°ÿ‰[®?}“ºŽ„kغz’;LKݽà¾w¹fÆÃ¬ ÄsÁû8c†Ž?zÀUS B &à P)âŠÎàÖ[.`Üý^|µ¸êÃØüïâñÊG …ƒx}!44”P („ü¥Œîý6O=0™ÙõFÚ÷ÉG©ïˆ¨† é4Î0œ+Æ}AïÉc±$ çâ«×qóȑȆÕ[éÑ’­DäúÌyñ9澇ê5ÓsÒ¹œÞ(²t_âñ£ú¡ñxUÀNñ5÷rñ“·0vô¿HT|–ž6‰á†Ã¬ôÑBÁ…0ŸÀŠ•äIWsû‘™\1v ×ÜÙ÷Ú'˜4þßè´ˆ*SRN)×’ˆà—h;äL.¹ºWäˆÆïnÕâ# ±„YÂ5ÓÇð¦EF/à¦÷›üó×|ñžÊø”þ¾ýóïÂÿÊ…ìÏÉÑê’SI¨ªh^0› Ç÷r¸xtDÖ%†bˆá7†Ô¢•U«®VÑïA8æûÖÿ­lÕÐTE  ýü>|>>¯‡€ß‡ßï' ²è«/˜?çjkkþ0ód6›9uÜ$F›ˆÙbÅ`0`0š0GÉ_ƒ1ò%Ë:$Y‡(I‘sißCþBkéçc«°HõoÌ‹ÄC Dx½^æ~øÓϘÀ‡Ø³o?Ç$“4çtÏÿ ¼Þ£·32±<UøÈÉÍá—­9ÒðÖ–SQ4Ÿ–•T ãm¨ÁéUQ‘Œ6ñv ŠgHEÓT öT­:õÔyT ħ'an1ÄP8DUU™QU%€»¡žŸ‚€†ªiÈæx’âMkkpùƒ(XIδcˆ^kØSM…+ñÝ‚ˆ5) ›ÀUS;(a°Æ‘ä°P³ä!ÞÞ—Hɘóé™IŽ{jªi†P4+)™ô@ØSCµ;„­ e#‚·œÕÞOýÈ×8·4ŇÛåÂíWŽÓšHŠY¥¶®`8ÒöÁšœ…C“€¯¡†Z‚„† 7ãHŠGòÔSWç&ˆ {²«AFÐüÔW{ñXõ‘ŠgÅSC…+ˆ(DNËÛ’Ò°5ëWø|qV¯«‘ hÀf3!ZÀEU½U´¦0'foôSSî$@Ëû¬ö{p{Dl‰d4‚Þ\Θ°'9°eT¼55¸‚AÍJrfT•®ò*ÜÈrÉ)V$4Ôg¥¿ Çlsàˆ‹Tø]õÔ7z k&Òâ1É" îÊ*ÜŠŠ†”Œ8ZŠçƒAjjjÈÈ8¹’ÊqלA¼I8ÁÚÖPƒTW¹ sññdÂx]õ44ú k`ŠO%Þ¢C ¹©¨u£(*zGÉ1š÷óàtªØRlèQ6ÖQYçG6Z°'Äc–¢É5·“F͈ÍjA×ÌR¨«tâUTÀ@|FR´êFÁ]uWHDg°Ÿ×*éét:‘e™¸¸ÿÜE2ä©¡º!Ô\}!Hz,6;ºP=už0‘v%’ÉN‚UÆãváñ+ iX’2pÅleÜnI‰IÇü&HCmžÀÑžwš¦Ç‘–ŒUÕ[Cy] rÐR0Ø“I2‹½.œÎFÂ" špÄ;°¤ßçÄ â'¦N§“ôôôÿh®jœž¦žyâÓ’0‹‘ß©!/õ"Žøˆ€òâr:ñ„Ð$Ìvv›ñ÷KVU•òòr²²²Ž#ò Ô×7BÆŸˆÝ©Ž'è¢Òé!¬FhkJ&ö¦Ei¤º¢ž   !a´%’d“ð{½„4=V‹>r/55H¶ìfÝ Ió“Óbj¢~ÀÓä¬8 ê±~ …«|N*ë‘yÓ4,‰™8 AêWá$tº8’“-­æ±1$c¶;püˆ9<<^¯—äääŸì • ‡¯ŒÃa@ñ7PSã&,è±ØØ­úˆRσO•±oû7¥ó3yaæ8rã ?Û9r„ÄÄDôú+ÓÆë  ! j’΀©É¯Ô‡1ÇYÐ ~œõ*q –Hå‰ê¥ºÂIY¶“œbùYs¯¡QVVFv›ìVë9èõàñKØši(x]õ¸#UTšl%9A‡·QÃâ0£P¼ÔV¹ðGOCIæxÒF@%ðáuƒ5ÉDØí!¨ê°ØuøT“ ³éøu}ÜšþU htQçò ¶DâãL­ª~:Dzz:’$EcœÖ1‰ ʘ㓉“|8+"þÔçÀn3DÚPÝÔÖ7 khšŠÑ‘F‚EÆï¬ Î¯ E}‹1ècéìSY=x×÷>ºÎëªêð ,v«‚Ô54⪑ÊqMÔEÅóƒy·ðn/µ"¡ÆÈ8[ú›Ý>ì¢Úå ¶xv Ç áª¾:ªêýhh¨šŠ%1 ‡!Hýá*[Ù• Ç' bI°¡´‡ºú6Ç‘J’>HemaUmeµp#ÎÚæ”xL‚JÈïÆYëŽ0¦8ñqè…ïñÏšgUsj‘ŽÀ*žšrê"²l&>Õq\5×ãGX õÎzý!ÐÀœ˜N¼IjíKµ.ø3‚Ä]çD³¥E+’£qà ã°c ÅZ*êƒB¤Å–%)»>Œ»ªâ˜B%àqQWï!¬ÉXâ°[ô­ŸÕµfd„ãâm[b&ÅMƒWĵ!Z؇«Þ…'¨‚¦¢·%‘§Ç_Së˜xBÔ—WÒˆØ"VÔ®Zê}ÿ"›ì$8,]N\?Ц#.%›þ˜xDñRë‚ø„–‡¿TBžz*ë¼Èz=²ÞŒY'FDÀ%&cÔ&ºÂ˜l Rº 'Þ¨ö³Åê‡8»FCƒH|¼ -Ð@uu!ŒØâÌÈh é1uZ€zW“ÍŒA {*©v…í$9ßåÏ÷™yü©ñ˜MUð»#{ Ñ`ÁïÀ¨z©«oÀGC\ 6_u ¡0 VR2šæ±ÅZÔ™IHq WCxÝNê<-÷SI¤ÅÙð¯ûø.ÿTÆ–v'IòSWåAEwt>µ°›êÊQB”ÌØâe‚^»ÝˆÐ¼¶ XMàvM&Œz õUN¼á0jÓ[¬m±ÉŸúdv=!Ÿ¿¢'Î*âmô£é̘pã¬wãÞbAÔtÄ9ÌèE‘PcÕ :[RH‘`F»©®tDÆ`¶“oÀïñÆ€Õ¢C ˆÛDg±¢ ÕRSï'¤j¬VDE‡Ã.DªßÌj¤®.„%9¾…òˆBÀÓ@Ë‹‚†¦ÊX#ñ’æ§®>Œ%ÎŒ¾Ij9º f¤¦}j}$¦Õ$–8;‚ÔqX$Åå aŒ®›HÀêäH­Š-ÑLÀYõ‘D´$›q¤80ja¼ õxœ[yÿÕ¨&qÙÄü£ñvMÁÈMç #ÙŠ¨x©­:þýâÌ„U4„@Ähuo7E〠®z‹£|‚HQóQsÄI©ùyþiþ¹¥ŸNOÏ ®Î‰NÖ¡ÓéŽcI› ‹„h2^ùx+Gÿ…ZWw¹šsàÀïšcÀ1ÄC ¿2Ä–R -IàVÿšI_~ ¬„BQØßïÃïóF¾üBÁ>¯‡_|ÊGóÞÃëõþnçG–e†•Ždâ”3ˆ³;Ðéõ Œ&3F“S”üÕé ­*AüÞÊßcÉß&2÷ÇJ?ǼH 1Ä#€ÿ88Žþ¯¡š…÷¿Íþ¤îL¸ðÇVAøM IDAT“)ßø)¯ÝWÁ„7/ù‰•—1üÒø¡ðÿüø×Ä÷À¿-~8üëâû àß¿ YöËàçÀÿ‹äîÙï±¾RB vçÒÿÆÙÓ0üïýÓ àß'&€ckúd8–þ/YKyèÔoµä6zÿè×oæ‘oÒùÓÛ9%Nÿ¿“´Ž!†ÿ¶M<øgM{’Vg?Êœ ;þjŸ­îú;zœÏ6Àè›ãÚI‰5ýŸBÅòçxðÑgYz0•SgÝÉ•S{ô6Ðÿßà˜t 1ÄÃo²a=^þ¹I~1òÿ¨´Ö‚ë޾Phù{QDBŽÆ‚€(Š‘¯h¯`A”$ Q’3þ4-åãùïóåg‡WóÒ§_ SÏœNJj:z½Y×Dþš"°Ñ„ÁhD§3 ëõˆbäºN&û '&9 ùû}÷,†bˆáÿ+„?` N~­1'3lÖe‘P?úµz2ºŽçºW´ØÆì÷µxbsð«?Gÿ;ãú]Ž-¶¤ÿ°ë0mðLíU´ÿ£„Þ¨Cüe/â—ÿůÅÖìO‚ˆÁ:› ø‰Þ¸ú«; rÌlÅÃy¶³Ïæ•o¦¢" ȿ`,·=9’›5ÐéôÈ1ò÷i%çóÞÓ «"²N‡.f ÿPˆåbˆ!†~#h´îû{·ÚÊk?€ì1¾1ÄC ‘„‚(pàà?ìøÿÈc!¶v~/¨«¯û]ŽËãñÄÖNl\±ñÿ 9RþGˆDN2÷ÿë_€äÔ~´‚ ö‡Xe‡Êb-†bˆ!†ÿ×þŸöÀ1ÄC ¿2´c·°-~ Â$#ß·&%AˆÀBä{IB’et²Œ_Ö!ü„‚2ÁPˆä”4οø &M9ƒµ«W²ì›EìÛ»ûW›‡ÄÄ$ú—0pð02²²Ñét‘“d::½£ÑˆÞ`Do0`0Ñë È:=’$GþòÈßæ¾¿Ú‰ežcÒÏ1ÄC ßã·TÜÜÜ?ܸ= èþ× …¨©®ŽI@óû•€nô4â÷ûcÐ?1 èÿ~ èÿ&þxЭ¶Ëþ$ µ?Ìšþu$ cˆ!†bˆá÷ÿo‡|cp 1ÄÃo°Gl&x9Aå/?nÚ ¢D3, "¢(!Ë:$^O( ˆôn"‚GŒËðSFSUYÁº5«Ø¹}+;·oýÅ{·/,¢°¨#»v§]ûѱÉ’Z§G¯×£7"•¿z½¡¹×¯¬Ó!D%Ÿ›%¿¢•¿ðÉ_bäo 1ÄÃOs]ÚR:†~Ú‚yÿßÿ-ŠÝ£bøß‡pò¸äwQÁ#¿ÙÅK1ÄC 1ÄÃï18†bˆá·À/DkZôµBÓ¿"‚ÔÔL@ŒV˲Œ^§'Ô£Óüè‚AB¡pE “‘Ù†Ô´ F™€¦©<°ƒöS[]ÅÞ=»ñz“FDÀGEN²‚*„S;”?Ÿõ¢:_vl Èî òËðs(áAhPp•—RVaÇ (ª†¨hÂŒÖÜ<Ê}2 !Ä&\¾|Š×Fqn1vtYˆ°¼6ŠJÊpxÔ€æ$ šÃ¨*R’WŒCVA0Q+ “ â)Ï'·ÂƒXÙ£fKá¦ëw¨²Âœÿø–´EƪSðØË).®À+HF a Õ—l/ À¡'<"½øWÉ7å¥XÝÞj^´„ÅŬܥdXýí"i0Z"Ó¸±º´„Z*g¾k¹Ñ`ÄT5W.ÓÏ.Jrа<Ɔðx¢¤ ²mjEPÝvJJ}„Ć!ØK(*¶â@c %ü¢vü+–ˆÇ^Fiin)˜ˆ fî2r‹møªÊW‹(³ˆê³QT.Q}MtÙq¸Eô7e%6|ñI¨Y÷§Ÿ²Ï‰Ã.`¶\$*œˆzTmòRQäÆpr¹)ÉÊÆ„VJttP`=óá(/¡ Ì‰Æd!<,Ó?éS]äïûwŒcÜ'·üG€c·:ñ B‚®LìyÖ~ÊÝã6 dîúèwžiuµï¼Þy%\çsW¹¯`)Ï¿¡0vú}Ä]ÓsW·+íàÿ®U©àqTPZ\PU sXaÁ®¸L\V'Q‘=6JòJpz‚B³è/˜ƒör'³& 9ä ²sËQUЇÇ]ÉôËVNnœÅ”ÍMxïÍN¸2ó°¡'$,ŒÐ`="^¬ÅÅ”;<(ªŠ.4–èóïRNÏ“†1ñëÛ² qdKpd,Š×UAiA.A@ÕfÁ¬/;^+ŠÝ˜"*×¥YyXÑêB‰Ž ºrUÓ=ýkŽkn>å>Åï‚ ‰¡¶EwÉø=6JòKq¨"†pBM`-+Áî®&ŸM¡Ä‡›ýGy] ÊJÉÌ·"JL᱄Ï×Kõ9(+³‚)œ0“¶ZwRàЊÖUDN‰³Ê"ˆRP$q•eU}XK pi"‰ ©œÃ .» EÒb4\IÏóR^ä&(ò|›)Îb² lH:ÁáÑXô*.k)Å¥6|h  4èB’ÓgÍ#ße&:*ˆóoºXß¾|¸ì.TI‹ÁP©+æSæö\¨o_ ÃûŽ0]ð^·GÄX9KJ(·»U=¡1Q„è¥ -òl ½aÄE^¡l¾³¬š»–s^ª×ƒ9©ƒú¦p5LÉœÏÓoi™0ó.¤"…ðHóõÉJÅAQ©Œ%<­  fÏçñ“)ˆŒ%~àGÌy¸Ñel‚óíè´º@§Ã × l / ÁÄ&„×;+Ç¢Fƒ),–p#èuÚ‚s×2iÊdïpÓ÷ÕOyî®f„_¡2ª·‚ü¼r|¢ˆ$…|åv:²„×?þÇrèùÊ^½£–ÿ¹(Û),U ‹ BòY),ˆˆ¾ÚºpÈù™§FÄY÷{ÛÔe-£¤ÌŽŒ€ª*Cc1 ©NJJ}YÌç7ʘª«„Ì¢ª¤'(4Œ`ÕFQ•¦'´Ê®ò¯M®Ò<мAÄDWŸ{çûYªéÇ’«GGhˆåÅE8…`ÂÂÑU{TÙô%ƒ>Z×éäö×òBÇÿÝ}-ëC ®„¸5¨A þ1ƒÿ<¹[i^+ |á5.›Z4°(ÎÖ K$V‡O§Çãõàóxðú|ø|^|^/²Ï‡ÏçCQdEFU?  «“ÀÕ àê¿Q¬FþJHX£ÕúÉ_ÿ¼_N‡Vsžä° Jˆr_SÔoeÛU¿§ê™ ï¹Ø ¯!kPƒÔà¿ w1Çú”¡?î'ÌD‡g§1º{È^l¥iüþû^2óSyü¹Î˜Õe¥¨b;_?CÇûûѽE,νß3zÒFJí>AÂY˜KE¿IìÕî vc&[çLâ“€Ù&ùnFŽx†ìeîSø-³€ÒâdÿðÔD<%ÍÞ̬‰:F};H|9iü2s2~?E–7ñȰé[Ïï"¨Ø]‹¶Ô OgþËÓø-¯˜²¢z<0ÿ]N C8ý#ÿ«†ÆwŽçƒë#ž¼|¬>' ZØþå[|¶ø­h>Ę‘Ð>ñß¿<‘5ÅeøE‡²ì½„U÷;*>%ÇØ¸m'ö'ñì7b&“-?LæÛ÷“튥û+ÏñLÿ6\îÄJOi&'ò6ñõ‡"£¿Lt5GQÞÞùLœ:G‡±|2´Õ%ÎÅ^DnÙ>£ˆ‡& ¡q˜ÛþÙ¼öÚRò´Z¥6·ŸÈc.v”žcç‚)LûnYžXºŒƳƒ;£ngÎkSY™SHYq=†Ì}‡G’"pÿÌøf³?Dƒ–ö<óÓkôÑÛ8µu*F¯â”>œ†½1âõ»iÈqVMšÂÜõéäZkqÛÇ£xª[‚Ý¿3uØ×lQ\¸ŠSyléX†®ßÝ~QSÃŒˆíŽÏNgTw/G–~ÎØÉÛ±juÄ4»…GF?M÷Èb6OzŸ/Ù‡=.ÕMÿ÷ßç¾&‡ùvøt6ºíx+šqÿœW¹¯Vè…„¼ZÌÑõßòùÛ«8cˆ¢QÏ<5æ.R³·ðí¤oYsÔŽA§ÃŽÒN/2o°‹I-á„ǃb £çÇ“x®µ‘3Ëßç™™g0é$•B!„®Ã¦0þŽë=ÿXÅ{|&Ï>¹Gˆ† ZÝû1ï 4‘¶ôÞœ´ÕâBªÝ“GŸÎ]­CýO¹ËØ1s(/®íÄçÓFÐ&Üø×;®]L>m¥.´ç°ì«ÏÓ?厠,ÒMá™ùiDhÀ­$å¦A<žœÃ‚Ý)Œyµ+F÷afMÞNx§¾Ü{c’½ˆœ‹ûù//‚ Ž´%|øÎO¤»Ý(J9aý¾fFë<<¦}=œz²ôåã·0šŸÝCùœ‰|±0 —Á ïáåaOÒ#Eÿ·%ÙÛ~äË©3ÙXуǽÄÀ–AþåÞýé v§‚ ”ÒåM>Öƒ˜ÂŸx~¬‘‰3î#@.áÈúÅ,Úe¦sÊa&~º!΂Z¡£I¿'xâ‘›hh¹Ž“½ØJ°vÝNe6àÉ»øå€ÛJqù¾ùä4mÜN6ñh¹"Ì’M|6ÆÎÈYQW)Ïþ‘Íã°Å@phwž5’n’‚çÌ.f};ï·dØeÏ=õ(âÿYW¢ é0þ¹æä|v®ÞF®¡%÷Ýšr'ù.>x=‹—W­ävËU[àzZë‚q{a è¿°1CÐa6)\yk”úeV¯±ÜÿI ÓÊ‘¥S÷ÉR ã#+BéùÌËL²$bÍù‘Ï#Í¢'(¨+ÏþðÝ/3/Ö=»µˆEbÓG|ÆF—eÍžfÙØ»¾`¸8w`ï<;Œøhtv­<Ëã=dMý’•Õåsû‘,z÷^⫳ZŽ|Ìû„g¤M÷á“y®“)P(g7}Åûßî ÎÝïðZÿ†þùç.g÷ÃxqU ÆMMê¡é¼ðÅ\qçâ0M#›*…iËøròœJyé/vDçqPZ¶›ÙӑС·õ®w‰žç+?GFáf&½éæ¥9Q¥ì,›gÊ«¿£V&Ü9r¦d°îÛÉL_z‡WGýþOóìã·ÐÈ\©;²iÚŒÚ~ßÏ~ІzÍeôíËô‡ÛNYùnfM=NÝ®½¹õÆd4òf¿:ÕêÛ"à.9ÍáŒ-ÌjbÔ´{=XK²lÙ~ʽ-ø×íÐîfîøoXvà.›ž–Ͻˋw6'* ®zJN±lâýü;ã9–^ WgW´èõzôh‘QÑiµH¸ˆ’£QÀ™½†3L¼øzÏëÛdýQ/3jÚÃÔ× è±´}ƒ™“oÇ(²gé6lÙÍáÃÉ {­f@uÛ(-ßÅw“Nиo_út®ƒFÞÄ̧³¶¬ŒŠÂú<´p,Õ {ûæ}³ Òˆ ãÆ“ÞÁÆ‘åy}ânÔ0R\7þ5ìUF~+·NýýA2Šz]1{%ïþk{\¡¤vÊØÏú“pÙ{Ï2gòšôϧýêý z×UÒó—-ç…‘N>œýµ Ö3qª–—ßíKØ_}¥¨Ád¼ŠtRrÙöçüû»]Hqá¶|";?ÁÓC¥cèfÞ}í CÞLÛ¸`ýóóÜË ãx¨â“ìZ0…—–'J#à0Õᆻ羚²ž·>Û„‚\Eǧ†òÄàNÔŠYöÞ#Œ;Ù•Iß¿L[‹ó‡·ì,i '3ü§#DhÀ¥¦qß~ uÍ••8ÀGcNòäüßèÿŸ‘nž’³ÏÙÌŒñF͸ï²6l ®Ž¸5¨A þIü¸Ò~¼RJèê§ HEQªˆ`I Dàúôøô~Ò×ëó""eY¾ X ÀÀ¼)`„‹òW’¤Àûüi¨¥jgþú‰àÊÍ%Ä/tÑÕ+y1áû‡ä¯zõó}¯t½†ü­A jPƒÿ,\&0|yKüú^•#ETg!{çOb¯^n¸¯m•óIÉÝÎìI“X|²5Íõ~Æ|Ãó|ÃóUß¹zT_6ßrå—Ú=ÄvÀ‡w¤¹Ñ˦±ïqhïn*ÏÄ5ðuæôLA·çmºLßÊ€±·aÑImûš·¿Ú‹3e˜¿,öBv/™Í áq¶­iw‰K!ã„D“Va›>ç¿>dA×Úˆ;_§ó”­Ü÷ám˜œzú}ÿ+ƒÇ6Æß5‘ßîžÄmAPZâAt†Ó0V‡«×c|ötsê뜬zá ¶ï;Iª#‹˜1ß±°¡°²`ÀHV”ÜËàØóB_ñX9òËd>ú©”Æ·½€È^³št%‰×Ö#5gO}½“ëÓ»‘ÈÙ#ùèë$¤EÊv}ËÛ_n§¸öSÕ E•‚CËY¼jžä»IÕ©€BIf&VM(qñþèTï‰e|úùl²ßÁQB Ÿ…ã6qëÏK¹Ûìÿ”®ã—pÏ×­Ö-Ù›Ös´"’—6¬¦yþF~½‡ý§šõËt\¼ÃüIH»ß↩ÛôQOÖ½5•:³Öó~8ûËH†NÜEGµì\Nÿu«¹™CL›¾˜¥k;`°.æ\½›˜ðúÄŸ˜Ê=3wЯE¹}áÝ%,i®Á³þº~¼•ö¼îq|aý¹J.Û ¥Y;غÎÃKëVОBV|7ƒÅ?ï¥û“u}MòöHî¹¥n¥ŠŸýáÕŸXÜÎÙÓèþô:ÿòu«Þ,Srr'+çäÞu«é£ËbÑä™=mo ½™W&ÜÌ+•n™ICù¥^8+?ŸCÛÏf|îÝ‹é㶪—ɘÿ¯ïhÆG³Þ¥ —ùCâåïã™ÑOù‚¨^I«Ã ‘CšÐï…‡xú¾ÀY¾ê6lªMüíM¯Ù±­¸ŠÙÿÓŒÿÅMû{Ïo6Qrv2gÊ$oA#£¶êýŽ´ù|ðůÒÝï¨SÊX÷ïY4Y¸†ñ1öÏÅû_¦ÛFVÌ_Ê©¤—Ù26õZ\Âÿ=ƒÁ¿é¨,‹cdzq!ÄÖI¤Nl"n NŸ"»Ø†OÍñ4J‰#Hó×R ízÝ„‚BqA²3ŸÒŠr*S¿u#DŠ·ìä´d"ñèvvYêѪ¡Ä©½§(GƒÁ”@jã(®-Køƒë ã®("'OC­èq—asiˆ¬e¢,û,ÙxUq) ˆ7;Èʳx–ÌÂ0êLjHZù§]®¢5D”š€ùªeP¯PFõÊüŸ°6|¾ºô<‘ûGv¨–5âÊå.ÒI&ôŸÈÜC‘6f0pÝjúÈû˜2}¿¬hÍK}³6òÍ_±<ûºêü©XÕmŸñÔ‚¦,ZL½‹Þèö8(=g¡AÇ,¶®Èç «éáÞÁ„ikY±¡ϤzhøÈ» jR‹pJ™{ïˬNïL­Ñ7Ç÷™éùVj¦…?.g`¸sçóa“Y×õeêÇ·æ©U/ÑÁ 'ç|ɺ£‡ÈèX›ºÕªë8<Ÿ>[ÊíFPÁšfÒhÁZ>Žó‘öÓ˼1i?ÝG¶ÄV˜MUClr,¦ËèžÀÑ âߟËâ~y=·ÿ ,/½‹û‚ 8qÒFdj2a(J-Û¾Á'“o§úþ‡&ôà…*ùü8?ÅÖÇxÑеŸðʆN,]þQåoS™³Ûæ²t×A ‰7‘¬QPÉWÁ¦¹ï°MiL£ðL>¡ÝG3¿{å7úXþêíìéèï¡Òôõ,Z2‹Šúƒi¦ó‡Z”Æ’©Ÿ3{oÃzÞzÙM¶ý³yç‹5œ}Ô¯#Ê^²VLæÓ·³nÕg,->Nþ¾‹L_K>ùýSê²—±o®góîTt¯‹è.bÕw¯²ÏrÍB,Uºæ%úöåf\ÑA~ù9?¨Ïˆ¾·£v|<Ï#± [5}ûƒ[0I›§ñÎ×iȩϞ—#¶¶Îù‚ÏWjéûÈ èQØùÓFÄŽO0û£9~eÈó8Ü)‘îµ-gYòÕ+­û m 4—¬žŠs?–‹OÉãø¹R 11hT=ÞÒ3>^Œ½L&ª^3#ŒH‚—¼ƒiœóøPˆ4ùW~Sí6T%ðX³9v8§¨Ã]‡äºlV\Ž"*le”Ù!*¹IQF\góPäbÒvnǓ҆TŸ ø7³yÊH[<™q ­4ï÷Âù6(ØÇ¼ÉŸ3ÿHc^ê¯Glý` Ê3“YØ) ¶¦ãç[ôQ_k>aô¦XþÛ¸óãØ^LXƒîŒ^þ7XT͘Ȫß~#£UÜŸŸü¥ŒŒ#…““‰6UFT è’0i¶Èó_Xøt\o”òBÎ{ÐÈÙœ+‰©CRR,âé4Ò ]HùØxÔ@ûúA¦gPät#KÓ¶u0¹‹8™-bÑœ"³4–z©FŠ2­à.À¡!.2˜ò³é¸C“I®ƒÑžÇñ39”;}¨ª™Ä& ‰5k(?“‡";8¸kö:]ñŒ  ¸ò8z ›h$42‘”$3ÅØ*Êq¹ ýÙP’gAS~–ÃgŠpùdT5„ä–ˆ¬–ºQqäsê´“¨Ôº„VN0UÁÚœþ¯ ãÉ{êŬøðefÿP›ÚC4˜ƒLôÕô-³É‹€“}ߌáý“²ü·OüvUy9é[æ±Õ׌þ/<Ì“÷5öðÞ«ëXU;–»'¡ÍYËVËýܽ˜m'í´n­C|™ù ¯ìÈ¢åãüäªÛMúò™ìƒ 1 8Ëvòý·› ¾ñ=>Ò‚àªUÞGéÎ]œ@Gxú&v–ÇcÑ…¡;IFA,Ú$`vçsä@vÁ@HD" ’ƒ±•RTTŽÓQ†&¦>‘j99ù›S7Êt YY²ýkÞþj7Öä¨ß(H IDATaÔd—þs¨!€kPƒÔà1ñ/¼ðgH`AªÈË*¸Ò®¬ö¹òl`TE Dñ"XÑÈhdª"¢~e°ì'+ `Y–ýÎyEAE ¤…¾Èˆ)Ÿ…óÑ¿’$!~4’&:@ö® ‚?:¸2j¸’´®"~/Šú­ü|éµk#¯F ׿5¨A j🆃տ§÷ƒýH_·Ž#ZõÛu¢¶^EŠ§Û°Ï™ÚpËŽ»-*RRžŸîýÝè}ò%kµsß»|wôaþýïÐ+Ëß°†4©ÚÊíÄMtÂYN-mN£›Œ(-n¤ë„ãdª M‘ˆ¿í=µû™aïøP{yÇOÑö‰Ík~G“D£Æõð·fKº™¤Žç8}°5õïÒât-{Ñõ“d¨ ›?Ì @ \]j\  ˆì¬3¤Ö¥Ot}BªÂ \øâ"‰ 5õ.îE¡ m+ÇJ (I¼ƒ^±:uECmýœYç3}ƒ+9™Z„Š4E|Úx·à²{ÀsñL!é“) ëƒA€è›ÞfAÛÅ<ýšŒ  È”ÚÂÆ#ù$ žFŸŒ_ø%C‡–³,›ð!{¢û1rôíÔUô-fü7ÉŒ™0’Ò½1Ç[Ǻp¥ÔÌmm“/Je\Jþ9_Isj´˜F´RJÁ±{ÛP¿ µ¸‘®N‘Åöíºƒ[ëøŒáÍzÐzÙÙcÈKïA=@$ “9S´“]Yq„Æœø)íèXz€ry;;·õ¢ã(/ tmnâ†Éœ’¯S£»°Î à¼tl·ïDLp8u…qbéf<¦bŠÔ8:ÖèNÅß¾ŠÅ¦âZÓ>ù9íI­èÛÚ½yÀ>S^¨[åõðâv»p•´§ž –Æq ”Î'¨Sy[ÖLfîhɽƒš¡-mÁ‘Í+Yi@k×pK»ú¦ãö±wÝBûäí”?C‡ H-â¾árkÐ7Œ&4"”øè^Äæ'ÄBhpfGG7Íâ`ÝWx¥CcŽg¡ÕH=ÂCРsœbó²_ɉ6#* JH ›•±f] £ ºRÛÖjiÐîó9zEJt—Œí¿‘Ä×3‘¿o +]èÛ(‘!ùߨ ß”7Þa¥à i8oÕ1R–IÚÇúƒÇ鑨–mšÿ!ÕtÝpÛpùDtÊ-×óÀˆ›¨[5aã8ëU¶ ÜÌ™;-Wì'Åç­§J°³^w]iEs,]žú‚é²ðPu9ЋÇ¡û÷. _åá4wÁô6 yvDqÀ8ÀÁ]ý¸;@&¶a'šì:Å‘¼ŠÊm4ê`gãšÕ˜ë4¦Q½Z˜ÿñ\‚‚¨àö¥³qúÌØjEB$ªK?ž|ñ.êý•ï&­äp™Œ^<ÇÁòÞ|ñÍÓ´úÓ ú2ù}Á: %#JyYgOâÖ¸):~w˜02Ý?ï¢ ¨‚õÓ¦±¥áí<ž²Ÿ)ß碋Q}ÉÜùùËô³HWl“?¾V}ôû(;±™ï§ep÷W/Ñœbö¬^É¡Šzô¿+˜­ ~eWn)^‡JLÏñd—\¾ü÷!’erøD†Ž2!Tœ`íOÛ8™¥àµii÷ÒXmb¼j¿]Þ‚®©Ïÿ~ËS@ËÉLÛÀ’-.“i’’@°æ*å¹H'Ñ7±`på’y¢;uÑ4 MàT~6jp£¿¨æÍƒè|* «=N÷A7½n™‚HRûîÔ5¸±ìfÓÙ$ˆyœ:Ý…n@Oã XòòÎaïÞ•^UúŽ%9–˜P Q\kY|¸/„‚ú +e‹G‹¡A¡Q$Äö$¾,ƒƒÛÓ8”ERûT¢/r´u뫅 >¢Ð¿A„ýÜÕ;ãüã&ºÑ 4Ù”Iu9¾hSÖÇðÜ÷ÏÓZsÝ3u0ƒð‘wpÇK‹)¯7Eª8Ó~â•Çvò¯U3¸Ó 3óë6 IÆhRRU}¿N@>ßõïFXôÕ ]ΚßNÐgÈ=Y·YDJ»öÄIn ެes®÷Hë­¿“.è°rlílö×z–—:ä3öÌi$Í…±ì;Þeö‰ÇßÑŒ=c;÷&bàl^-ÿ™©[D¿þßž½;ã—]^üqöeh÷W™Õ¶ O´£²·m›2èÞ?‚=k×@H4©m›™X›è“‡Ø½b 9š,,щ4Œ w>ûVÎâXó Œn³›çö•  œ“{±¾}9K¬Õ‰ÇÞ‡qÒf .8IÚžv¤\¬oHè÷o–´ý‰g?òøuZ@´Ôåæç>#ÏMÊAV,\FZ®©ÀFðÃoòn¿8oØN~¾9SÓ¸W[ޝ gÜŒždÍÇø_JЙEŒñ7ðØÛ½±/]È¢Íg°ÄÚÉJ;§õÓ¼2| ÏmeÁ[)°Ê"FŒç½zj•6i?>ŸWŸ:Èc¿Oç¶ê;âTÓæo{"è;úNŽÚÊéL²;‹Ýë×PnDDD(9B9)ÈŽ£lÙU‡Q n'Áb¡Á­w“·àWöWéaFâ]*z·Ng¯Û©ÝóÜTçÆl8Æ£­:ä9ÌÚ ±¼¶ð¢*åª^Oƒ»ã\5ƒÙ;ùù+ŽfwñÈä/@!;ï$ÏPÀÆï¾ag­xÊöKôì“Ãþô޼ܦ7öÙãøhI1ú }tGy·/ò²¹Ì\‘A˜éyQ½iy;r¶õ»¼÷T/ê_”5&öÖ±üÜn!O¿å½ÂúPƒ?B \ƒÔ ÿþ, |Áƒ‘À\œºúý´ÐÁ‚ˆ*©ˆŠ„(ùÓ;k´•‘¾ç£~eYFUhÕ\ |‰Ù)œ?óW@Dò"€¥Ê”ÎþßR€Œ®ŒöEÑÁ|­ÄoeûT]ÿëäo jPƒÔà¿4Òv¨¤Ks8§¨¨Î<,éŸ2æÑÚ~BJ¶awxP¡j·¸ß;i÷諭äûÊøù‹­¤¾ýüyâë\µÖ±¯,š.))¸Mëñ*3ã5‘Äel¤H9/5ÜVŠ`F@Åe?Æ-Å”ifsÌZ„[›L÷A/2¨s0ØÁÙatJ¬C©”†¯ò;u‘ÄÙLªÒ¸ªyì·–ÒÖ÷ÒVæ“]rµ×=„Tß%ÛWr@Ná¦äBÒÌ¿²p_4Ýïí‰Ù—ª«Ø©pxQ%@¬t¨…YlÇi³áÕ%Эÿ̈́ǙªŸãdsá œ å³fðû7ï1/dχþÂ’mû8îR9p®)Ý{a4%R=õˆÕWñG«XhÓ/‚U/-bo„³ûÊé=s¨?•kÕ~•ÄpL…^æÀUáAÖËÈŠÿŒ=´‘ÄÞB’оJg·%”ÈÓéij¡•¼ëF‚¼ •Xqh4Ⱥ‡[J¹«.¢Î‹ÏIÁÄfî&Ÿë%€/®³ì»ÌØžÈë&’ÚÊǤIsX­æã kËSýk6ê´cÏò=¬ýyeê<;º'M{‹ìþy Žx#­œ168Ÿ‹NCPX$µêîeéœå¤„»É>r {DÓ@xY;c Áý!5,†°[£YÿÒ ö™mœØžIÇiÿª‰­`ÍJgÓ¶ÚŒîò×Ï!UαgÑVì­ï¡u5~Çqbû2´Ô¹³5lžÀøU*íÛfÍŠ}œ=WÂÊõMˆ¾µaÒ_ µD #ƒí«²9hÖ!(^|‰÷Ò<:‡½ö¦ÜvqªÙ…,\aSÕÏbéõT,“~ZÅ‘Så8†¢oÒ•[„!Dvb`ûñ|¼"’ÇÇu%Ч6¡QËßXôÃO4nDJƒ´jšJíà¿Ù¥#‰ˆ…EÖM¥k´îÂH )ŒÚÙä WÈç+H¾22ö®æ§È,,åç8[/Ä`ºÞrÈ6lO`«Ögn;.¯Œzñù¯6'¾ªÃ.5h%~÷§„d !<óg­VÒÖfSáÊs¸Ì¹ëÑ¡ômjü‡#€Dìœ=´‘u‡â³h4ÍÜ{ùbâJ6¬ æàö͈í†2å_m b¯¿xâo‰ûþkÑêuè5Fä¼3H©Cxmè „Ù~ãÑQ‡8‘×;Æ=Àꑼ1©?Q¬çån§¸øn‡SKÇ0jüfnÛý"’éZˆßó×ÏŸµk ²A'útÛÌú}мN!%:•Ø>±dÌ[Æ G-nt Ѷ=|=s#i ê`ðœÀØ}2Ÿ• ðW¤ -^šÈrV½Ç+ÓçΉýˆ¸¬%µ2VJ¸k!yÿN"XOLƒxB¶­aãÜCT¨M¸çÁG¸¥CÌ5DLt’V¸3ìb¥œ5챬 à°ãö)¨h€£Ý#sÌú3Ù ì§ÑŒç)»]äîßDù€WiäÞËæ*m"Ä¥’ç©À(k…Üßs8¢;OÔAXW-!óþ—¹ ¯‹œÅž%;p´¾‡–’ÿ¹’sGXÿÓœõzÒ<)ì"'wõõá¼üÔVÕOB2væ,˜‰oÒ‘žÚ¢Ä?Ò=ÝœÝö ס×}=1¹AÞ”¾·QWïGHlµêocûœïX«ÆÒùÖ'xàÖ¤ÀÜ­”ÏÒ4*ø¢9pˆƒ»eÎæåõ¢¸Ë‰ËœÀ³7e±tæWl‰J]ÓrVï<Œ56ŒM?Ì`î~…&­ÒÙ°ú §3 X½>•ø~- ׈r ¿ÜAówÇïÉcùô×øZÿ£"–0Ï~NçÙّ՘Π!NŒI¸šÎãªÒ3d9»]ä™fqÆaǧji\ðÃnM"v÷ï,øqçr30õ~Š~ B(˜?šwÔåζ³jénróm,_Ó‚!½ UúöUçŠÇŽÓ#£@ƒF㻊¾-c·º‘/ÚzˆlÃæò¢ âê´¯Íîm‹X·s#§÷Ÿ ö IÓrò‹‘ŒÍº‹çƒ–³äÈnŠ‹EVìjKÿv èp‘wbË7‡ðò’ÏiK1®â´]F.MGI¾—Qún_Éã£OWbaùû¿RëÍ“èñœÙ¬ŠAf•¢ô Ìý>Ÿ¶#¥<ƒõ«°z‰L¬˜‹.ånF ïE”c5OŽNçdNgz?6ˆ”´^t/q€šuyYjuzª‘fçe©Ó'þÔ ÕúÛÑ¿”Dv;âÐng ?éñ xmÄgŒã¥Á±UkŠãôöžˆîÝš(|œ¨¾ jéѯ/µ"uWÙ¬$ *NŒÁaôyu£¤ ~œ¼ˆ}ÛŠ¸eð½Ü“DƒÛïáÆ†Y|2à-¿8•¡ƒaïÛtý`5ƒß1äÍ á­¿e:¡Mxt§Ïx—‰éÁ|9ý{~¾€´}'¸¹_ ˆäD]æb†¯ÛIN÷!t~êœpòþÔþ„åÌeè&GÁfæÌw1lÙ ºióYùídæ{€¾aÅèêÜÀoÞGß6Ƽ¹›ô³´ly/L"ÓîC“>ç—lgôóçe¦.²7÷ 'Q÷Gë±™è"N·œ§Ù¶2‹}3¹w%B j~]¹»RVõ·|eœÝ»šŸ£²OîãHíxú¥ÖFO6ëFÒõ™u{ ÃÛ92´íK²ÏÞ„;.–eŠäRÎnß­ãíÜùhÛ€Ríx>âè;v0¿¿PÈsŸ $Áþ+CïšIø= ˜^œç0z®'Áú"ÖÌøŒy_ï¥_´†Ú­ñÚóµøòÅÉ”&?ËGO¶çéדQÒ–dKØ%cÆcs¡Æ7ÊŸD \ƒÔ ÿþ 4Ï• Õêy «}¬|AZhõ¼»¤òŒ`DIQUQ•üé«R=ŸOû¬¨ ÂeξÐï#Tý¨G ó|¡ZŠçjѾ€ ^JüV¶Eõ×]1ê÷âûªýãÎüý»LïÔ 5¨ÁK@…n¼üéH¿ƒ¦t#o=0…Ý~@—?ñmö²ÜýãZ]mUvz‹æ"±ÏÚFCº Ī´®6Ê#- W(·l&¾îýŒ7(¼¤Í›ÁoëW’Ýù^ÜégI I 6ØÌXTµQi!¤J°åëÙš—Âc"¥¥EØò*hGP@|«YÉÏ si:`kW:ÄŒ´}ôÚRÆì»°`ì*F4½u¡ (€ZYéĤ'D ^0àÕWï)DpíŽ4.ØÁò ŠÎe“'„’^Зýï«j•‹ÓâJî³Ìüdm>ÿŽ;"ìœù.ßÎþ¼×ï'VªÖ¦ ¨Uås`7é 1j}"’(¾×JY´…AFFˆ&TÁéÀB¢ +•×=¸%PC è‹(T~‡k˜“Ÿ„$Uy( ì}l«í?gÕÈYç`ðÜ)´±à»)óسbíu¢Q߇Ý÷aÀÅŠç^ewÚÍ<ýÚC”ŸÅ¾]n4r&ë‹Ú10ìB3>¤Vgî|ÆÎ7_®e›ÁÃÙ2É}n®J©®œžÅªœæÜü@3¤"~¿Žºc¦ñrYðãçÌ$£áPê@õZ9µs>§C†òä_>¿+‡ Ó°·´!ƒ‡×¯޼,™½Ÿ Ö·ÒµQ0å¥Íhµ¬´­äxr(+³rèh.ö››*ý…¨VÙ3¢ÏLó°j_±˜Š.´ªêß”Xå§ ŒGUý®‚ÕñÞé¬å©sÙù³v³‡%*$w{€Ð#Á´÷/ èÂS¸õ鯸•"vþ2•÷¿8ÀÀÇep¯º_¨ ª \x‚"«cÆy§‘ƒK!ªŠ"Jç£zQ”TdÅgO±c»öXòæKtK´ð_M´¬ÊøäÊõ@Añ¸°G†`pYhÐq(C>îKv6NüŠý»¶Óªéþ ÿ¼^Ün3¦6­i   ÙDæŽìmC·fµýä›ÍŽWVÿwlÙƒ7²3­RüéAE3uŒfL¢ 6ŠâÆêS‰:—Gi«‡¸1ÀMh­&Ô9xŒct5Â¥rµ»Äš̡ĥôÂux;Y¡ZôÞX:$³Óä£4ë,7ÉM›$ &ö£K}Uü—ëµ ¾äOiR·9I%#T#€ÕË”íòd° \©.êUê¤þÅ5ÅHí6wò|›;…Ÿ~Àö´#ä·¡öUCð+u’<øL ôÎ\ O]PƒM—ì5ó—WÆçnÇ3“Ÿ§ €²‡·ûLaûÓŸÒËgåTÚ9nz®6ެÕôN-`2h9Y[²p¥—>Ïu&!ÈO-íÚz‚Û¨Wí}çX?ígX1hD½@«ŠD5¹•ãoåÈ÷ï±l^º§î£áU9Ÿ¢ ¬kþõÁŒ- 7ÜÅÃ7ø¯«UºÃå`¦Ã“ÓBfÞ9˜Ÿ?úaºñä›ÝÏj KìÁ“ŸõàÔ/_óëΜì“Dm5ù|cBu—Ž‘ÞŒ™0œÀ—µš÷^ü’=7ý‹øÚM©U¼›*ÈÎÎÅæ9EVL íbOrúèV =¹”–—søxVo3"4"åÛþÍJß3LlªGq˺Ñ&w7¿­wQVECÏ©ì :%„\ÿ ­j 2ôãÝŸ (Üù3_ÏüŠ…–dÊìõxaæ;Äžú•¿ÛÃÞÝ©4ŠìBÈÃÝ·•ãîsX+:š‹«WC‚…ëòœUõ¥,KWÑ·ÿhí•Ðáeë¼u”6¹“÷^îˆ{û×¼ýó öwŽÂ×›Þå§Ù¼õ83±YE+¤_»t²¯CBÓæ6ZÈvÜAñâìH‹zuý›ìD æ`‚‹±_{c’}¨øÏ]U|çË)ødd[9EáVŽ-_Ê1 Ú:7 ã\N[š%$û×"ÑD‚Ñ„YTÁéBVÝØ^Tã_IŒ+ãóIˆU —•² !€D^Ÿ0œú€çÌ >õ5û¿N{ÀQ°“_fíÁØì&º· œÕÍÐ7åþ1MÿXo6ÄšBs ‚Ì¡ÄhÀ×íÂé´‚=ƒÜ¤»y¬‘ä :Ò2m;‡HEÓ`07FŠŸÞˆ))‘ÚØ(Œ®Oso]Ì‚³)Œx©Œã[ç±xÉAŠ1I¥D–Sœ.|x°!^¿V.wâi;ˆÎZ-qAµ Ùqœ“ýš“jlFmYGŒÙB”ZÀe‹X¸6^@§Ú‰(.¥¨Úæ}Bžs-ë‹›Š Q’Œ;²7/½q +Í@ÛRžzÞ–,†œ€N[m~H:4>;E™ìÜ”‡Ô’û¼“vñFÈ^ΖÜ"—΢(¾SÖjÖzŠö©,¦’KõcQƒê0ܪ'©Vþ´„èî¤IðEÒÍæÆçsa³Éàp£Ö»Ÿ>uÕ‡·Ô»õà@†& ±!‰X6¥s²q"±š´¢º-IŒ3IG-ƒ ³ Pƒ¿5p jPƒüoùįJW™‡R÷J)¡¾˜ËÁjàÕ=BÀPUUÕ–tžä•ª“½}¾œãÈÿK8ÿ݈ÞJb¸²•÷\‘{åˆß꟯)ê·Ú‡ò·5¨A þ—HbÒ'¬;9‚ÆõE5èt>|2þ JɄѠG«3"%‰è ´=“¹Z:Ñ|æ~~’Ö£_óâW…ƒsi[Xµô qw?HßvQ€—øÄ³œ±ûü†Ñ‰l¯_‹'«ˆG½É€(0!"›-,kÙiÈmÁ"‚F@’Ê9•CPr b‰«sšl{ UܱíloÄs‚Žt~›÷;™åMyhlbpRVZJ§7Dø/{6²fE ~œ–¶óä^râZSÏìw>‡ú(ô]¦š¢“Q‡Vg@"˜Èp/jEv ªä$ƒ%n ÃD6"¸KšÇ«ÚT4é$&@k®ËÍϾË͇о•¿°1·%Z™IߏޢµuÒ߲ʨêE ,CZÓ;r?ëÁ„çZVÕ³pÿ.Št"dçPþ2ÛKÈñØ1ëôç&Uýü÷D‹ ά<ÄÍmã º'o½Ĩ›É¢ŸÇ ñFÅÆ¹ì,òäz´IФ}¿çqz.ÙÅeØá¯GlŸ÷@Sâ(§ÔÔžžu×1cÙ^š5ìC-ÑïXß5~g»>L}súSéäB€ôƒò¢LŠŒMÑëkÑv@†Ý—Ä™Ÿg0cÅ6Õ@×èëŒY•Œ :4Zc€x ô§ÞˆN§ÇX%óФGeL¢€HµêN'Ã- eg‘žÒ‹GÍåÒîæ€»/]õ"’F@¬Ê𛀒­¶×ñœ¡5ÉÞ r4.ÄZ ĦgQPèð×4Ȉöo;‡úo4ŠÙçoGQU9OPWE膅|rû7ÓŤÃVœA~Jkê\3ñ{ùÈàªÌQR±‰évh>+Nw ,¬aˆ‚&]oçÁ~Î?êÜ‚N)ÀçÏ–!IÚ-£ÅQp–¢úM¨%T#fÕ«¥ ¾Øš¼RðÕˆÞ¿ ,8òÉ-±!ÇÕ£¶dÇêÑ¡·Ð_mI½ŒNb ²µ— ®·˜3®"lµºžÏa2 Õè0šM@uëïeÓ¾2Ú´ Qƒ^çÃç_Å Ž•õàÎК1G좨ã.à”¯%6 ^¿’M\tzm8í+w0©Ù#@@©8ʲyë)Ûòð˜n„8JÈÍ/ÂÔ€0@g”Ðhedå2}dÒ#‰^L’€@j×Ê'´0j(?s€c û’€¼Ã»8tÎHËÞ-‰ ÈË‹uOGú.rê´£¾ ˆ Peps IDAT™rPzˆåËóIЛ$ÑJyîò¢›ÓPïÅáPQC‚0i/’Ïÿ{çßTùýñ÷Íhšt¤{ïÉ^BÙ»lA–[q+_Ä=p|]  ¢ Š¢‚ YŠLAFd²¡´¥”®4;÷÷GÒ6--[…ß7Ÿ×+ÐÜÜç¹Ï>ç<Ÿ{Îëï”R–£¬Yx–ôÛÚ§ˆ'.~ ëO"5$¹/¹„wP]F¿MoòXýÍ:ÎjÛpW_w’|¯=’;Gö$A­ÎðÍäcèÆŽuꛪhº>ú:]°rtËw|»3•{2]´—•Ò •·O-dAE[z!—;Ð^Ê(B£æ°)ÿ!î ä TŠóœÍQs>; /@‘Üöê½8^Dç¡·óxWWv¶5Œ~²˜—Fuqž9 .}[å’Ïf `÷!-û4À¿âù^jT^^¨Ôj œØø£œ.«©oW |4^(Þ®<]/,ÊÕ¨U*¼¾À9NŸ(Ã(S!mn¥õŒ·9\wå$wŠ—òèK2^¾»…3/¹¹J†ìøQ È$Üaá|A%Úülfl6gä™èt¨°$“âXÀîœÄ'ºôm÷¹)“!øúÖ„Ç^û›MsŒùoÀjwÍ"EàŠŽaÇ–mÀ¢VÖ½²È+ló\àJYêJ¡Â[£‚ˆKø‹ÜRÁÙŽng{z:ÏOLüǬ?=Š”XçK¡^Jç3ß̲EûñÉLÿž‰.y,T_Îì'Y¿p?ÁÝ»Ó8ÔÝ X·F…\®Bƒ2ÉhwFíPJ¢Tã%'ð " û{vŸêE½àô~þŠO$ íf¬¸mœ:œ/¯I;v‡ç‹Çr¼,‡X²øýŸä…NaPð-÷ÿ· A¶Ó,€\áÜd•ù¨P\Çt¤9Λò1Æ'i·‘kwF4ðBtæ]þ;ŸGÖø·é'À‰ §¨ö‚žíÜ^Ö¬- Á®nGº‚¥J]IŸYµ„c!itˆôBmϧ¬Ì€èãŠ`p†ò–5§Ï·|4³ ªï´•,V è9ã›H›¡Cyì¶ôjCáÄæŸ!ÔKñyN4é¢åûu0:³Ý‚æòÁ”.LÕÄ9N$‘‚ß·‘ë„Ozn»E‹bú æ/ôåÉ{»|1¹â0c©Ø ö÷Fyh {éD y”Å'e·sRt2D‡»CQržG^G¶^•ÛúP‡(þß5¼Ùà!€=ðÀþMc¿6“ö"$p…íYWHh—¥]-ó ήåÁ•ª\$²;!\™wŽ—á !¸—¡)ìn;»¶’»5ׯ‡üõÀ<¸™AÖ‹m˜üÉÞ Ö"•Qö»×*Ö\Äþu³˜²`'¹†_P‡ £OVJ÷°|Ù׬ݒÍ޼ݜ¹÷Yµ åÄW¯°Zs4º ÿÍâìž5…Ï÷ÑÙËÄÞÕEø4Nï;›ppÞÞÝàéÀ1>Ћ …Ód/üõK¦|·–?ÿPòÞŒÓté{­åë7_aŸVA¹)„&ý»Q¸“E‚/iqq¨ñ¢ýšðÉ'³·Z…ñÏc4{x r­3y}ÆVšÜz;Æñ¿aׄдcwBòŽRVo ûXzñ]ŽÄŠ”3Ðá¹ ÃÍ´èjá»QX«.¤È?™þƒД3웽ž_݉#û8}ï!Ì7†¸çòáGx'BNéÙ´{êþ«©Z£Î¯ï£ë=oÑã…6LqÛòþѽ€OÒG¼?ú=’ÃÊ0ChÔ÷NRäG˜÷ÝOìÈUáu€c^=‘ß¹mLûf+¥æ JB¸}D 4ˆ”çlfև牸½%¡v§[Á¬5‘Vü’:1Tç쬳›g°òL,}‡5%TÁˆ[W2mÂXöÆ(•bð™> šO²ñ«9’ô4O†\›V{vÓ Þž¹“æCn£tüþÑ´l—‰eùT¦®è"·ò×öóx¥u¡$¸¶Æ  ¥¥”-ˆÞškóh•Éraö{‡ ðF$DGÝAÏïa߸É<;¡ ’ƒr«yx=ܔ ™øÚ!‚|ÁX\†£~šÖwnKWïçýt¹ëúÕóº¶rz[Ø¿ðSvü Eâ"¼»ßîTÉa£Üdsê¨2‰ÒÓ¿2ÎtÖ¦Æ"•S¦mBŸÖi×ü5qJ¿ŽÚÍùâ|Άw gp*º‡ïåà¬%LyG¿Â '(>—Á=¶À/¨€!~cÖ˜w Õ‚Íb§\AÖà4d¿ýŒ¡¤ É$îG‡Ü|=ö=òz˜>¸œà}’¥˜ƒëf2yÁN²K6£ J¿^ÝH(ÛËÊe_±zS6;Oíâ̽O3°u²ƒË™ùÝ÷üyÐʤq‡è|û²žŠbÊ“ïòg´¢<ížÍ <*Ÿf­á‡×^c«ˆÁšD‡ÛZTzÍÿkö Ý‚Ñ@TZšÌäýgß#B̧0ª·LúÚ¯xoí§¼´3˜Pñ8»Ï5dпî!#b³Ú°Ê¬6;V›XQ,fQÉAy¹Åi·ùg0¼Ç|9æ}¶GÙ)ɶÑù™N®VàòB? µü'«vŸ&P‹o€œÓz3ÍŸŽD@$£e,KXΤã[Ъm˜µ-Ö¾›MB”$d€õÄ:fÍ:…Æ!b°úÒë¶øbçü©¿8´[¢Ñ€4Jwî#×Hãv!_µkr2éia¨jì: Õß¶®Ãò¿ÎÞÀR1‡6|Ë·»¼I8ÁéâFôêÓÐI–ÖÚt’F]²hÓuóž˜Àj¯ó¥ÓH¬S Èù¥ßÃ&ýYŽ—íåĈ7èøt'>ýf<ï¬ö‡’"¬½ï£•ÚFþ/[8ÝàVbr}·ZËÂÑX)?GqD†´‰…œeÌœ0Ñ­)˜3‘uæ2B:?ÊmÊ9څǵζÈÛ4·gí¡ÅÐᔌߌCK«Œ d»¿à‹aÔ׿SRAFV|ª·¥ùà >_ô=û˜™4ö ïx…^OÇòÑSïr ÆNÑ+Ÿk qtóRæüNP×f„Êij{X¹ÜM÷|ðUúžû…÷¿^M”Z‰Rv‚²˜—¸/YÂttŸLÖ3¢_w}Läíùž ?þ@½È|ò iÒg @þ&7ù\A™v3{Êvî¹µ%±Šz>—Á”^âÝP¥|úÞAc÷jÙœ2Ó /wê‚¡”ÒÒRJŒVð—øcÖK¬z”i©µ¬¼ŽRÊJ ”Œ˜ïÂÃlXõ‹:Šê÷ÛF2@—J WU[÷-bÆÂ8à`âÄ#túY#S˜>~ ãƒ5XË”D÷~€>޲â·eŒ}á0ÑšBJ Éj^Ÿj‡Ê0 ”ZìD¨Õôí‰ÓO“5è´{×òÕÄ÷i€?âùClXõ%K×C³gÅö1t{8ƒ?gÏbÜOUú¶Öå|nûçLY¸ž}»½xÿÓlº¾ŸV>ùì^ýŸ.ØC‘m^¡Ãh¦KåäßðÆ¡µIù%uå®Ä ê2Þ` ´L†Š°åÞ„Å6¤™ïg¼ðZ.ÚbœVR¯¹ «ÕŠÂî:Â;&£‘rïÆÜqË ÆOÇþ(‚ Ѭ} ˆ £Ù‡ „¦dF}ÄÛ£'eâJ CÛL8Àæ¨\cÍ&+v» ü[‘ú$ÓÞÌ£U¯'¸/²¦,5pxã,>Zð+Ç 619r}úô"Åü'«—ÍaÅÆ“hïàܯÑud æ~6q+½(ÛwŒŒ‘Ãð#ŽžÏ¶`ê‡/ñn¨ŽR+~}撚˜ÍÏßLaò2‰Î2‡+D™Ò‰Áƒt(d®õM”ÿÁÜgÑ4½ + ` {þVf~°˜½û™ú…Dó4°š]o´J"6‹‹Í8°š­ØìV !Ãûk™úÉû‰QSþÇ12ž½“xñ'Œå *v%»Õ¥;I8lVÌ;àÀf.ǦhB‹VçØ¾nom&Ôë§Ï§á £Màh&½[€®a0³?š¨ôiö#Óžx$ÿR΋¡ty,ÍÆ•*úÃÙTN¹wk:dþ…þË×ÙíåC ò$…†Vˆ¢c¹€„ˆùôF>ùpös'€eeÇØúÓΊCi³ ZTdöï@zønÌFKõ—Z$+Ærx²žÊþ÷'òTQ:q’ƒR³Šð¸`bµÊJ Õ×±j‡’öÃFq—ÎóĜ¶KØ:ò=z¾x7ûÆ}ȳê/90Z•¨ƒBi•&a,-ÁJc è¹)ßñÑ'2º§3±•á²l˜LV Z)/·ºúC†:¼ý2Ö0ã‰÷H 0pÞH§ÿ´ÄóÊ­Î6´š-Øì"àpŽíZŽ[)Ú1‡© ×p`Ÿ‚÷>>EaÒØ¾—­?šÈ‘içïÍó£eßxN®Ü!"‘F±×ôRëÿ7Èÿ¿TäÉ€€×Ì>¾¨eU2M¥Â»s7 1)ž—<ðÀƒu³"ÔuOm¿]`# uj1;… ËTùVu5/^Ùe|„êi/0„]ϯílÞË ~kûÍýµ˜Õò×<ø_…Ífãà_GiÒÈéýRRRJQq1‰ q8DÍ]Èwí›­JøùãuKGŒØàzúùD´!IžO¡ %$.ƒ[îjI0NÒÃPR A)4oEPp ñQø:JÈ+Q’P?„p- ‰Ub,vÚ¯;M/¤ïDQÄh4âïç$‡E‡€*8œ¸ä8B}¼ÑøùO“ŒÄHfÌ2mJwîØ?×ùöÒ<ÎJq´ËL&@£%¾Ac¦6 ÐV@©2ŠFí;Ñ­MÖ=+Øeð"½i¢}AИPG…Œ€”žÜ; >€Ý.'4­‰> Ô~þ‡¤Uc8¼{‹{És†„SGDM°F¯/AÑ)4j˜„ÂjÅ[­Á×'–Ž#†Ð¤æQœ’ƒò’B,¾É´lKP@)M[’¤õG4PÄ´f@ﶤx!È4„ƤҰq2á¾ ×™¿yä8bi—™J ÆŸè´DTì rT>AÄÄFªÅ/,†´FéÄG8Ïë“Ldhš‘N„֗Ȥv´éÙ ?C!’oÁ±Î~B@éL\½’ƒQy‡ŒP^‚<¦%ý²ÚS/H…BÛP©‹\@›Òƒ{niŒàÕ‚€ÒÌþAÄ7éËmí¢Pʼ ŠHAUš#¼í;v£]¢/2u<¡Þ^8ìf¼:0¬_+"Õ TÁ-6`V« «ß‡{{¦T oép8(//ÇÏïâôZõ:û™ÜúõÚVÛw¶"\B|ã$†"dÚh´í@—¶1¨”þh "Ê€x:îKËX rk §Ï™QyÒlà#d9]¼´D'¤žŽZ±”W*Û -=zu%ÑÏIÌ VÂZdÐ"5 µ$T„5kF€¥Iãƒ_x3>Ø(ABí˜mšöëJ\-Gï™L&d2*Õ¥(rÁ9¾S›’ Q öÕJd\*qÑÁD§&®Q¡ñõ#(2ž¤ØHü¼*6 Õ†F‘œŠZ!»¬•Æjµâp8ÐhjlïÈÔø Vkðõ÷Çßß?ÿP¤™F›&J üµþFDR¿}OšFG•è­ÄŒ—¿Úø úumGz°W­ý•Ú„X­¼ö€”&“é’c!”¤@+¼ññõÃ7´ · mí$ì¹—/aÑ1$Ä G…¿Ÿ–@/+f¥~q´ìØžŒ´ .7è£$I üýý/ ò̥Ŕ,áõéÙ«3Íc5Ƚ#h–¦¥¼LÄ[㋯o ¸ŸŽÑJ@K|ËyÅÈ´Z´¡±4i×›é¡(ÔZ¢ã£‰ Ö àCRƒ(|QOt¦V„’’´nE²QVR‚B‹ÆÑGŸXJ^©‚¸zé$F߀ø0 2c>Ùæ0tº4‚}|‰NkJýúÍñ+ÊÁAzFnmŠBáOdt¾¶"ÊUñ´ÊêL»Fáx]£|µÙløøø\¥(C®ò#<*Žô¤z$¤G#”•âÑÎ]:“á&5™°@_4>AÄ9޲¼4á]ª¾v޲²24 rùn JÔ~AÄÄÅ“G|l8~*™mh$Iñaø¨|‹!9>•àGLËÆhJ ´¡$7íÅÀŒpÕ…k0–£ @ë¼F¹J üýµ—®×E=ž¯PçòòÁÛKÊaA®¡eVÚ6ÇÛ-›ÒÒRüüüœÇ1Õ¢“hƒˆ­×‚&)©(Jò#êÓ±SWÚ%ºÌ»ÙO(õ;v§cf¡„Ec>§Í¡UëCjSêÕoŽQ.–ÀpÒZôaH«p’ u@8‰ ꓊ZÉZÂY7Ý3<¾é©1Hf+j~~ñt1ˆ†~.ù߆ bÑ*½Pªµx[ŒÈ´4h׉.í“𑉔ÕÏN¹åKxd2õDá/ð‹Ö/œ¥H@DrkúkF ûK2%ÿb㢠t‹J!WEbB>J‘Ò"‰z·ô¤a@-’B&ÇK@dl Ñá¾V#ç a‰i¤Å“F|„• ê0œ%ÛIÛ¶ii|‰IoLýúD:ÎR$%©I[²²êêKL|0‚¹y@mûu£uj y%ÓCr|0*™P]ßöÑ“҈ذ@¢ë%“”„ lF J <)”Ø`¢iа-f7}Û×Õ"¶Ò<ò‰§]›$}ˆMI'Ti¡¤Øˆ"4•¦õà J%£S'ƒdH’ˆ2 wö¤awuXáKHd ÉñõPø„“ˆ¹ÔLp\:-Zw¢M½8bâc‰ Øß¹&„D’ATƒæ˜K‘4¾øûi‰iÔ–f©±¤¤ÄKZB*I ã‘•• ÐàJt|2©Éñ$ÄD¬õF{Ib|¾ª’뫱™T%4"Õë0Ë·jØ7  ‰vŒ¥…ØüRhÙ4–àÀHâcñKÉ/••šNrtaÑI4hЖp{ f¥‚Àô^Ü×·>À/º5qBŲ "StôÒ˜«ˆàHl½"4*4¾¾ŤÓ$9ŠòÝ[È L%-1BCXdš$¢®Ò™$›s-ÍÚ¤ìMZ‹t£¢ˆŽðCV9¶# ðÃ? œø„0ü4j‚7%X*Gòò"(½7÷õNCíê—¤ø ”‚€\åODL qÑxkˆŠ&2T‹ÑIõi’¬ArˆÈä>D6íL׿¨ŸŒÚ+ˆ”úJ¬F ¡õt´i˜@J\)ÍÒP”"§y›ôl—FKL\4áAjA…P(q)h’ `¶(ðòö!&#‹žMÓHN‰#*2–¤„`T*-щ hX?ÿŠÁ%S¢Qûàç¯Aãëƒw· ¡Kƒ@dJ/C¢HLÅGéj?¹!‘±$'áVŸŒ*J ´Z‚bhÜ®3Q!„ÅF¬©Zl¤ ´lOE¤E8õ|LM"22ÖM4”œwêÇA‘Ñ4èÐÖQ!„FGæ‹Ò?‘„0-*–ˆ˜7^CpX4I‰Á¨•¾„D8Ëç…€LLb‹t”%瑇ÄÓ¬MOz5ŠF©ÖEX°?~ÚPââ#ôó% (‚Ä„P|UŠjÐ^šK®O»Ìd}ü‰M­O°¬ŒÒb9á©!HV|õÃrÞ€  $8Äç¢^¯%%%øùùa6›ËäN=¨æž¸û^¶Òás8¶ï@2›/Ø–”¼qÓq7#NÄÇKE¡áåçUnè[üüx},gÚôržíãxp3-ÊÂ…×…‹ýVë5á‚tBİP7|E‚Cªsó©rVªý¾:‰ßšÄp¥ÚÊã!=ðÀƒÿQ”——³dùOÜ9| 'Ofsôø ºvnÅn'dÑç(?›åå•ë¢,*ŸÏ^!3ñ ñü{A'¯.ž“Ín#??Ÿè¨è¿¹,¶Nù„=ÞèÿP¯ËE]…~äË ¿Ònök´þÇbWÕvnïµ´ýÕÞWW9.·|×£ŽÂjµRPP@TTÔߨ6×R÷Úó¼X‰.§´µÝSXXˆB¡¨…8üwg¸¡Ì€Åb!$8äšóºxš+ËÑb±PXXHddä %DQ$''‡˜˜˜¿±W®.“§NÕóèú®QW£ÑHyy9¡¡¡[ßß³ù+~áX© !GFÀƒ÷3º}*~òk¯Onn.ÁÁÁxyy]—™|ñs …KX”ÂEŒ`7ïZ„ʧåå%2"ò¢ù^{ÏKu~—jûM‚39Ù5téùJWaY_ùÌÎÎ&22òÊ ÿ+œkVã.>:‹FßO£‡òJóËffß×Ð~:ƒ¡Ñ^WØwµ…å.sìºË]é v>®]¶_º”—W«ë×s}¼<Ýë߉ÔúO?õzè²—§nßN~Éða‹ðïPè®#y£OüßÐu¤Ïÿ•¯ç}ÂÇiõÌ›<>°)Á²ëÛ^oï]öxuý{yùõ;×C^ýúucâä©“DFFQTTˆR¡D©TÖJW·ˆŽ•bù`:bQÑÚKüÉ“7t3xB@{àÜ@¸@xÖû\ížÚ~s;¸BI5BC Ä©Pužpµç ÕóªË­ ¾Ø{6Ò%îu'i/—ø­™®NSZº~f´xàÁÿ"þݯîÙ2Aö•Å›zýî ÉÛÿ*B‰JøÆe0è©D]C]ÿ¾®s —YŽë1â®>™\ö´ÍµÔ]¸â WYÒʨ.7Ø —¹"Î\¼„ëX:A&ûÛÛëªÚX&ü½òwäqéyôÏ—¥zó7÷·_l3Úw¡¡D1œ¦íR® ù{õc£ÎYy™+Óž»¿B«¢PuM¨ËS¶*Ÿ+®ÝäåQÚR…•^YöÚ%”jI]×ïî÷I×mÞ\ž|»¶¹æ¥I`À_&Jy5ùiéñêë_1ù{9círõášÖª+•íÂuj{áÊüOë—ÿŽ”þñç k~5¾Eöâµ’8ïðŽþ›Ú Žô¾qdtBt3q Ó”]ÿöºñ4Ñ«í_á;§M剶{sÀC{àÜ`¨õ ªZή¶R Â×uíRDðvd„°{’jEº;´®{k#}á ˆß =!Ÿ=ðÀþ“X&““sÊS ‡ÃAnnîe_-F±ÌGRgsJ¯XÎ2êH8Ÿ“ã‘QÿscçŸû‚€Ãá<£Ë`0ÜPe%I”°Z¬7TÝÈcÇ!Þ¸cúf”1îãðïlWAîOTRc¢Û¹³ä\‡g ‚P)ãê·šky©G¨íw÷ëB5ãS¸àž*ò´êeŠ*bU¨ATåY3òÕU×ËÍ·W’ê¼VyE’*­LÉUîüü|çnF©TÍðuKSÍp•jØÐ—ò¾‚õ\t›“ûO(Žø&+(ÉÉ¡èŠËP§¨0ææ`ð(ExpEó.<­>áb99¥ÿܳe2‚cê*Ñ^ÂÙœ"MãÁ oãü/ÁC{àÜ€¸ ìnÊÖæ \ñ{mDpu#–êÌn„pÍ$×R§‹yâÖJúVÔ»¶4Wèõ{u¦²xà’!!!7›U‡Ýf£°¨Ð°PD‡èéH.{ìØ¬VŠKŠÿçÇŽ (..A!—ãëç‹$J7L•—±Z¬ÞPå²Z-”–”ÞpcG”DÎåŸ#$4äÆi/rór ½>Ç?ÜߦòrÌ3AAA7\»^ 2¹Œ³gÏ  @éåu í9^—Umíä¬PÃ6¨NåÖæ,p¾ð<AA R·![g™.b)ÖJ¼Jü[ÝPvý/ƒü³ù» Y©N‹Uªfì^Ñ{õcL äåæˆ\&Ç<ðÀþW‘›—û?U_ìxpƒ¢..î \ñ{Å5w{²N¯`\ç\®})\ží|©Ë5ß”¿è¹ÀuÙæ\ÂV¿fsÙ<ðà] I×é|À‚à”m ¹<{\éøÁ3vä2r¹¥ByC•˪P`·Ûo¸rI¢xC®;¢«\7Z{UÀK9Ý+ IDAT©¼)ç‡M¡@f•ݰíz)ÈJ¥òÚÿr‚B^äï:C= —u¿L¡+]sízyÿVYŽÒÅ­Nj'o纷©t‰ûë¶Z¯÷¯»½ï¥ôºÊ3€=ðÀ<ðÀƒ›Ø<ðàF'Õá \ù½"¸ò²äF ×å\e%^¼`WR—Zò—j«W]÷\Šø­£\â×<ðàzÈ#é_>øæ‘ÛžVúÿБíáÆï"OyàÁ¿ áׄ2±n2÷ʈ_·¹+íežýzÙç n5¨ø.ÕbW H•¿;óY5 \@p;#ØÍÇ-mµgKµüÍE®yàxì§¿×»¹¬áÆ&õìÜ,yšÀ<ðàæÞµ^”ÜOªv¹ú=5î«ø[’ªŽ,’¨þqÚÃÒuû@-ÏªÊ Iµ”¯F…$.âõë!=ðÀ<¸^2ö*!XvðáÛsØx àÊ;rؼä+>þjö¿¹œÜcLúúTºár’þyçÁ¾2zPw3›9»û^|}-e7UÁ/Mþ‡ç0dàúöëÇ'{\××Çužoëþ©¸W溷‚P•[¡ÚoBõ4•YÕ§¶g 2(ù/çì ¤Z:¡F™[‰…ºóÜ àªOµtBm¤öåxMSÇý7èÌ—Œœúm¯ŽÝ@ùÕÈÀ³KùÏÈï8ëY¡nªúJÿ¯jsƒ£pO>ñ-'ë8râÆlie¾àn]ÏA<¼ðĵ­ffßN×þ·¿ÃVÓuZ&òV½ŒN§£÷³üôÍEt Ö?™;m‹7Ÿ¬Õ®¼^º€pr>ÃtC§ÓñæFžC—nLx`<ðÀƒ›H‘¾|Ñûk!z«ý$Õ „k!…¯õSá u¾— ~¥‹¿³Â<ðàÇöwÑétdvêÆ‹«‹Ý~(ãÐŽ™3m{ Ó,˜´­ûòœ†¬qcúv§­N‡N7‚9—xž˜Ë¦™ÏÑS§só/Ìf×YÈfÁÃÃé®Ó¡Ó½Èš’êÆ«Ã¾•‰£–r¾â‚å,¿ÎzNG—û^fÉ¡*³Ú´{;…QáÄ'—0Ä`ºètèt¯°Ádsʦìoáz~»î}yógceZ{^6¹%g ®ïÍ/SF¹Ê££ß‹ø«Žóåmýé亮»¹ŽŠš9}h 3Çÿì"JØ9çu†¹Úiêú#µlÄVë&<¶ˆs5®–ŸÚÆû£ûñôœ}ÙHø“iÏÎçPEæ/á!.“N=ža¡¶4ö,Çí::Ý=LZuÐUîSÌ`]u:tº1¬+³¸úåWÆêtètíéÑÿSþrv 9{¾äQn O½ÿ³«¿ Ø0~4t:tºÇ™»? ‡˜Þ§ít:tºwØqM¹FkŽíŸJ0qêç÷¹E§C§ë½/ÍåC@ €M=Ç Š>Õ `Âú388Ƭ[²h¯Ó¡Ó½ÍöZŸk!·F‹.áåûººòÓÑF§C÷ÜRJr~àù¬.dêtèt²ø,à°°oÖÕïíw¯ü}U›\¶ãsz:í{fÂV+Åìùîuú¸®÷øÏ$6žúŽ-»sk¬C»xÿño9-:­›åg^uÍ·w}͉Êl²lâ}α8ê6ú··*%$цÅ급lì'øáë/™µø€kÎÖFXþÉÌç÷pÛ Y¾l95½˜×o]Äï…ªàNW#{e¶Ãu·ISó—CW’ÜP\UϺÚîb×û—½Ç]nóoÌ׿’‘!~¡NRŽ€•ì³yX§C§ijm®šë㫱 Øyô<ŽŠKû>¦S‡¶èt:[”W¥v•È>°UdžwÌân0c>ÙN‚}?Ÿ?}']e2y+E檙³i–:BŲ¥Ï0ÞßfEÀÄáuS¸¯¢¾w¾Î¢}ÅuÔt7“FV‘dûfþ«Ó¡ÓubÀí_rü¢íZC÷ä/fVÊgmÆo¯U;³»B>ëÐéºòø¤5þóGþ{ ùüÌBrKmäP!«ÚõèÇ[X8©ŸéÒ©tètÝõÑz ,ǘûÂÝ•m8øÃÍ”ìgJÏ..ùÒ†vG²¼²#­ä_ËŒ·×ãTËJÙ³`,wTæÝ‹×îá|­‹Ò&<ú-•*·ÃDβçÑétt4‚i;ìœeÓ¬ };‹¾ØFžT} 98³íïŸÉa‹½n}»VäòÃç‹Y»ù6Wÿ̽÷Ö ômØÎ[::]²n™ÉaW¿\ÑØ6¬á™îœzS›‡Yê.̤rNo|á=ïàã®þ³aÉg³ùbù!luÿü÷<þè<³Fþ³öü¾m=¿unù‰¢XÌÊYø(:Ý“¬PÊ«_jÌÞÅ’Ï_`‡wRD«sSBÝBgš¶Mbx¯|yâfAŽŒ|¾}y%Ý—èÑ뷰⥠Þze959à‚]«ØUhçñÕzô_ôäðžõèO‰¹¯pjÐY¤×³îu¯|° ;°uÜ(”ëÑë×1q螘þ'Ÿ@¿f5]¾Ó£_öÅ®Ÿ×Ós‘ýÒ§w¬gÎÏN\ëÞ¯5ôv¦n9D‰Rî|ú¾)t|¨·6ü‚^¯gúàˆÊì­0«iÏ–-zú/Ñ£_ô(ê²õ,øÕyÇÐ |‰Ykôèõßµökï=Å5„Nc‘rsɘîÔ%–N¾Óøñl=[„èÆÀo×?ëFñî휨ÁšÖ½FV§Gø¶ÔèÒwD¶Œí'zô[¿ç…îzžýìPÕ:&Uy&W×=]kÎîÕ”=ÿë¶;eöS‡g± וºrnJØ,ZÒ›<ͽ½~=ÓžîAjƒ^¼ñ¹»|N¢Uý0Šêg2;6¿M‡—²jËš¼ÚÙ°c3Ѹõó,ÒëÑë×2etWBröáÕçY>ùI^?>?ÏcéžDìXŒ=™¸m;zýv¶lú˜þA š‹ÙúÑmÜrÛûüæ§A€rC Ýî˜ÀJ½SV¿9´)Á5†ÜùOÑ¡íHÙ³‡…s«Þeø§)ÌÓëÙ´d6·„›~ápi}&éõèW¾€òØvVmÏ®Ô7÷ÏÂŒÂ&$‰ªÊuü}»8ޝá݇‡ñúW›ÉóöB šýg†uÓ·A$‡yŒÆ{ºSWüêñ³<þÂΕç·—3¶½SÊ÷//¦Åô٪ףÿ(‰w^^Põr¤$"i‚ñ ŽÃ¾n*z³s:J’Tµv»¯Û•NÄá¨X㫯ó¢(UŽŸÊzäáÌ_’\ß«…°D¹uj'Ú˜í|ñR:Ç¡£¿±#/•$ÁQ¥Ãוo2KÔ.j¿.¹ÉƒÚó®Z¾äÎÕ:(‰[^]^9/V|ôÃÚZص` ¶63_¯G?›æ¯âϲ–>ñ¥¯®b«^ÏöI}x!çQ ”˪Eù¯9ŸP6á‘ £èÑíq&̓[ã‘×ZoÛ©lN)“ˆõ$áù,¹ú»¢þ®¿¥ª|$©F[º?G+÷5¢‡Í„…&Œs?}2¢»Ö” Û·zy¥Úò®”5níQÃæ«åœ9öSߨEZŸŒùUͺUŒ;ãIŽ”Gí…B!CVk™EŠOïbÞ«39pvlkmC. ìxp⢮— ]'\‡Ço·_ÚÛ÷RiëHP§‡rÍ4WÒ&xàÜPøeÍ_<¹ài™M˜Ìf'9 È´ñô{õk¦¿ÞŸ ƒ¹òígEýÁŒŸó1·wHAe³Jo/$K9F“ kH-TÊ‹?4¤m:õ§G4€–ภ‚¢v£_Ó”´ØPÔ€Ofw2NåqƵAûçlÿn4©&"`*6’[*òŸw‡n1a¶ÚÜŒéü¾E…—ì{6µ¢ab *À¯]2NæpZ2_äùV®º*¢ˆm$GJÉ9yœãD”ØœŽºÒ6 ˆ°$?|}L˜›>ÈÈvÁh6ìÒQŽÿU¤o£Ë|BéôÌ\æNF˜Á ”qü8ŠZ’è¤5§™CA¹Ñ ¶MŒé1‚ÛÏUn¶F ~é3Ô³:*ÛÞVx”mk¿ã|·¯y¥«ev*N²`Ì3¼<é'N»@ù4ß.GÇ(- Idxy{!™LXLåXÂâhî%¯±ùPÌ©ÃvLùmH RšÐLðE,ßÀº5-iŒðmÛ–'óÉa ¿L—–NS6¡UêÙÏâßÑ‹V±@H Â’ð/ØÂæáÈÓ WЬ--Jl›Yû}mš9©ÆˆY4;r¢Ázy¨^g¡–±í@@ä(”2¬e€$GA¢\¨Ü°³[L%V›sû£ºfj' ߢC÷­á¡dÃb´`ÌïIF  Ž¦~`4I§r«{n×1gI²:7 $L…d6a4Y±„ÄÑBUc‹U,æäŽ_Ø}r(·¶V^1¤hû<Ïf8ÿ–«"ˆ®'âð‹ ¥ýÜšàC@d‘)XMFŒv VûõÚÄ@²a.7b´˜1™L”[À)6¯U2fÙS4tÝéBÛG£¡ÉT§W»x×èçë¶£ˆ#<È‚É.­yá…LtßâØÌ/Ùó×:6í»ƒ»Úb¶úàëŒF¢IVVgZ· ¿¾ ³("¡@¥ÚËüç|× ‡ª]?6á™å/![½‰S²‹“à•ÓBaþ~ø]¡Ž.ó¡÷Ës™ùÖ-LUr }c¿˜Î]ÒðvóxÒöËšå¯ÒÂ[ázþV~Y6„.M¹š¤fmI>q’Óy%ˆÚ y&‹‹ ‹Í~…*”!§˜Ýó^¥wf&™™ƒyþãÍNïéòßùä‰;è’™I»ÌL2MbÇùò¡ìn½n?Ϊ¯¿æëo2ç«%L}}$èIVVÏÏû‹2NðÍÓ_rPÚÀ{· eèË+È>¾˜g‡ßÆíwŒ`äSßqÔü­$A«ˆÖ ˆßJOܪ0ÐÎPË2ÀFÑá­,ül ù€‰S;v°eí1̲{Õ>™<•É“g³î`ÓaV,ÝÃŽu3˜:y'D9 y!úùòÁ“ùxÆ÷üY^Ó³·zêšå©æ,Ôæ |a˜ëº½¯’8lfʱVÓOêèÑš:Ic%ù'8¾»—S¶„ÅÓ($u^>VÀ«ÉÝL™7™Ícñ²‰È€_8À#_Œ¢¥ÍB¹É„Mª’SÆ’ßÙ¹9_e6§þèNó( 2‰ÆÚ”9§±Æôç¶ŽHñ%º7ÞÞé·±îûT£@Þöyžnáœ'JUÑé"ÿ(Ò; g`¼ˆÄΜVá-C[Kůۛ¬^ñ•ë,æ­lZ6„.Í™Š¤æmI:z %ìüòmþóÈ þpÔ®{JÍFñT;?6+VûQNn@r$XÌæ¾¶£ø±´bHKˆ3&$lŽš‹`…|îÒ­FVmWã— ÇxzÁ“¤[L˜,U:2H8ìfŒˆUy&`h§¦¤kmU_ƒ·ºr¢b21™LX]yÐvô\~tá†*Ù'àÀn1SŽkkcp¿ؼâEš ÎÓ±E»Ý{ÏòÌç“`1a²Øœk™BŽ\±”^~Äj uU±ð§WùÌçM&ÜÛ­ºª³jêÛµAžØƒg|Êã› 6KÀ1¶®n}¡¾Í ŽïDçrÔÍÛÑûÀnvžæÔ®ËÛ§¡öB21š,˜BãkØ¢¨$&®>)ÍÔ|»â(È¿ 2%Jq3Ÿ¼›®™™dfbâ†l¬øá½éìß?…Û;´ç±™ŸòØC 8‡ƒsÛ>áÑŸðÿû&æOúŽ3ä°fÒ(zff’™y7WF´oeÜ+ó™õVº¶Ãúóå8ç¹àæucÉì8Š•Åjü|h¦s°yK)Öœ#œØ³•Ä6m‘cÏYÃÛf‘™™Iff_ÞX~kñ:^|z>sÆeÑ­K;ÚffòÆFàà¯/î#33“v™èûÛl4bÛ>^™™Î|zŒfæ–\°íbê£Ã]õÂäíEHùKxäÁ¹|ón{ÚwxŸßQÔMFÙó˺”>ÝiÓÒ»ÅŠÉø‡ÑÐÇù ŽîíKû–.¶M7ï;Â1Ü.à¿Õ˜ÏÕu2Ã*žüÏ<¾~§:µ£]f&ã¶H8Ì›˜øØ'ì.žÃˆÎ·ðÐûß³}ù[ô«ÏÓ·SÆfø ޹A=G³hË\ž}éCÆ>ÒŽ™™¼¶ö0óëH»¶™LØ8Êø}Æ®vïÂЇ§ð»òwþÌÆogòÙ„¸ó¹'¸sÔçü´ç7óöðþtÊÌ$3óV–Ø ç[FÜû%_Ë$3³-]{õãÓý€ñ$«Þ¹Õ•w7|c'¬Þ(d€à…‚ß7ø!>øñ(†:2ÑVNQþo|0¤¼^Ä×ÛrtålÆOœÇ²e xcôS<9ÂÙß#&­#—<¾{æSv¯`ÜÞt¸çsŽþ†‡Úw ]ûötî2‘ß\úM@l#ºÝáÍ$]ûôW H8®Â ^²•³çÓ»ÈÌ̤mfg†<ðÛË=û*—§ezàxpÓâjˆ`÷t#„¹ž¡ /Â_á|±Šzˆ_<ðÀƒ› ;زâÓîîF÷ž=éÛ¯SÝ#è9lØí¤šûœ6;QDøÐãí{1¾õ0·fu¤Ã°Å´ya0—[„âÝì(%,*p{•êCÒÓœq{ ßjµ# N!SÙv~øv=¯ÞÚ‘:sû“ï°þ”+Ïc»ØšBH|4!Ø«6ì´±$í?I¶û[ú’‰Âzöô"Ó(ÉçDq69]Zå^Îó¿²Ý˜H|tNiëßD·ÌUd,Œæb-›Á¢«M¬ô|rîM»¾{…}Ö€±¸ Qæ64Uõ7æE›3©He¹l?Žƒžä‰² ʰ˜Ë1ê€@´~ÞÕ<…±Úq6¥ˆDƒ¦ÜΑ»{Ò-«7ßF÷—û ­¹-€Pá3¦ &²Àˆ©ÈˆYQå6–¤§È®ÍAò°¢÷ŸàŒk³Qûà£<}ž…s»WðŽ$þdåvD¹H%KÒ¾œ¾Úá\Yg°ó‚±=e›€_dcºßÈâ>:t]ïgö¯"†7dø…ç°zêS jÓžAo,å¤EŽpÇPPXL±Á—ÐF§ÈÉ«¾á/WŠHœäHŽ“É>6D¿BJܘÌýó¾¦l` šù'1`ì=¾t7²:Óñ¶å´3˜0·ËÏf£ß±žøÇ}­S\4p{ÒZãvÝp½ù ¼#ëŽÿÈã,xõ!´ëÈð ë9[v*Tøœ]Ék÷¦WÏždõèJ·‘ È>ý ë¥Pã~‡ýòôÈÊ~¾^H§ç=‡™1bÝßXIÞ¹ó™ì€ el†EOcâìS´ÿNb‘‡—mw zŠ©Žb¶˜+7ô¯ï‘YN6'šÓ0Ño÷ß‚¢Hþó$§…‹¤•ìXÊK)´Ù°Ø…ÞOáø^i96lv‘j‹€Ý†£6X»{?ÊË+Hh^ÚÂíç@ñ.VÎ^Ä3·t¤CÇÎÜóêçì8{#ÈD¹ÂÈÑ}‹˜¿ Œ×ëѯ|Š`Ó–ïøŸÆLvòÃ|«×³mÛDº'‡¡¥¼Œ5·er9r¥ÊœÉ º•×¾\ÇšyOP²gûòc¸cúÃ4iü3–.cѸX¿°ÝÄïøvþ,FgcÚüÃT÷’½ñ[ [uÖ® ÿè4N;α³€©„ÁPÏ—³›c nãG3úáÎØþ:JN± Yá¯Ç=Ȩ'z W (,'zàÓ<ýôh†¶v°iõŸX\¤î…ämM2¸ziAÕîµ\KØëëG+ð (a×Ê·¹M—Iÿgg°å¸å27Lø•=½iaÇ!9*åiMŽüLE•k¡ ‡ä á Ù±á³êOV¯,²ºwæÝõ®€ª63Åû~cç­]hmµá¨ór-Áfr ¡î+ó3EÍb|ð€_~bÕm]hUm](åì_ðWPZ«ºFööÙŒêúÒóöÖV?[õAVµ>(C?p’”¨5þú¢¬U÷tG «_íG÷NëÉüi$ÍDIéC`X Þ2ç3T§÷Oç¾Ì6ô~ä5ï©ÎR8åsKZE„Ôˆ|±ŸWdòèÒ½ý ã³ßäxû9þûîÍ̤÷ȱ¬Øoª^¬œŸùÙÑ’¦1~ÈPá®gl¿>dõêʾ>V]O¬¦g{á\ˆ~Ñë ÓµeÀóŸñÛé:dp Wo·oeí²]ŒÖ‘Ž]»2øÞǘ@FlÛÎ4ÍcRº/rÀ/‘VºÊ׼ʫGÚñH§8°±ÚŒW¾ìY¥o_vöJÙ'C&ˆU²YKÒþSdKJ|üOpè`)¥%ÅŒÞhS²ÉÍ‘#S\ÎØñ£Ïø{9ÿÜôëՅη¯¤Ã˜A„V›7"VÿZ7kFÛ¼i¬: @¥”ã­9Æ·¯®Ç«ýSNðUs曕ì9çMïWGÓ¸É3|¿mŸ<œAê_Ç8Šóû·ÛOÍöýf,^&,>~_úŽ¥1éÿØ;ë𨮧îJ|ãN ‡ ÁÝZ¤@Kmi¡Å[h¡Ô¨ÒR 5 ¸§¸»DI  ! ˆ‡ø&Y¹÷¾l€‚CKï~Ÿ‡‡Íî½GçÌÌ9sfæhkz‘pò0ag‹°J\ÊåºóØ:çÜìPuƬ⃩, Ç«Ž:$ ~ízãúçϬ¹x‰D‘Ry IDAT‹t¯§EW\‚Ú»+_ÍÙMphËÞ æüi.g°ŒŸËåf9x”ð%ƒØ³l)(©ýörBƒ Ü·ŽÉTÌ_Œ”£ØzЂo›<Ï'ôk‰‡êM8‚Ëk“ØAÄöÁÄ.ØJ\‘Œ*öORº†ú Mä»_¾J 'N•CíéüÚK¸Ÿ[ÏøçZÒ²ç¯ØöhO-7¯pñÜu²³sÈζí^ÉÙ¥¢¤Ì:·¨h=—‡Ò‹ ’ÔvÁÁG9: Û¯%Ûêy¾Z=Ví¿çè‘­LíœÎæ%×ùä¦|býÁtlÒ·qÅs4óÌ¢oó*XŸŽ¥Ò¸}„¬Α/§¡žÂÑ9ýÙ²hוv4}w !AÁ„í^ÌÈçJX¸þ2î­ºÑåͱ¼7i#¦¦· µM,óGOG0›ƒ„ü(óýO‡ÑËJÔñ É}9‚ˆˆp¶|ÞõKv µõ¥×›%bó4«”ÁΠ‹X¨•¥§¥–Ø»8cg¥ª@‚(ÌÊ`×”.ôºæk²cù_ÇÁ–ùö5&-ÚÍ€ïzbu¿Ã#9­¿@á׃æ5½H×+#ù è-Õw9,öøUû€/Ö Â›|ÂþÅþå;høÕ‹”œ9A-ç6Tvu!^”ËØ- è--P߬£˜´Ø=,ý!™~[G`äe¦Rr™Ž½ÊtưvÚ!\Ú÷' ŽkéÍ] ]'ï ëäx~o3„Ä•3´špoiYª˜ž1¨XFŠ•-ø|m‹{•ÞÁ…“—‰Þò]fŠõÅ[ŸÂªÚD>ùì^º)‘…;æH@dï7_â¸8˜º™lüämæ/å¥ÚVÐÊ[í3*•¨•‚\ö`Ühš¡l_шÑÒ•,—)CB@V+PËj5Fôj%J¦PneçÇBý„6ÆÒ´ýþÞÜŸô-é¹/‚9y»øæçMlß×™=«ÑzÔZšd³iè$vnƘåCøñÍœYˆ$‘_üón»Ý`[­® úàŸôyŽŸlh ¼xnèGô¿Ñ‘¼½l8TN_àa A?~Žb@3·'Ø¢Ò~«Õ¨õ¹è åB'"¢W«QËåÖ¡Pú—B…eÉe‚–Íg÷z --óãç ðüdŒp3À¯,1Z*AçJ@믙úû‹¸ÆöÉ+ÝFµwÚÜIÿ$t%i­±jÿímÛ*Ô×GsõH¡î]hÙ¢¶éÂF‘ã¿nü-ýV@Ò¡÷êN‡ZõL°l]©e£ÃF@'"+dtF!3•Ì#êkz×£jC|–ãÊ뵩R.4ò­A)o,åŽÿ…2”68zÔ"æZ%U Ä¿‚6ö*k"$2ƒXzÁD¶ÂÁYEQ!دÚÇ‚€ açXç”dÔ®F‹ZÕñ:U@®,ãQê]gªUa¢© ÇH.ãЬ¼mÈå‡R®x„MKKÆd“o•[¶Ž;>߀uz|ÀÂEMý™È}G©6¢•îÉÖËè$;†ãpfRy* 2”K Q†á¢/î̇?¡•(ØÃ˜.“ ‹øžV:-磎òòIgÅß ¹m*“ÛÊ”ô'Xðq0?ú„ÎÖ@èá=ôë1©L]…$Eïfݼlú¬oSºXOëaÌ>ô&3féÏôЛjªû󇛟E£¥üûgj¿»é5eá@ÏŸöÑ“~iù&—6¬gHü±m@)}XâYÿ ~x9ÿ÷ZÍ9¶OÝÆÒ*Ó’ºq]²ÄØàcÞl&së¢KÐ%–ŒhõªBÜú¹$4x•ÅßÎ!{Ù{|°c¯5Éðƒø¦Ïpju êÐJýYä RvYFêB@¿ñÜo=‹: u?àV¥O¹û 2ч¡D$(FKv®%ÖíÝ’Ï%Ñ\=sŽ”ª¯Ñ½I-“|Öé1Öí@soð aãhã’Þ‡• ‰|.î™Ççßîຽʛ–}»®È¢ƒ¡0" J”)W¸ê÷&¯´vF(šw¡ÅÄc„¿[¡Ñ' ªÈ$·ÊÔW*ÉàØÊYLHY5bÈ0ò޲ yÑô» |4ó~rÊA¶*c¡*'™$#×–4n݈zj@rÀÏÎ'…:#’h@§7@æE.7ùˆïL²É£ñsÔŸLÔW­h|³.[ê¼ò5;ZD²tî2¾¾Ö“OÞiqÇåà»®x} GñÅ7;ȲS`PyÒô•çÑA©L0ãn0€Í0à 3þ§ŽÔïslU1¸¢çôXAx„w¸W]òC>o†f˜aƶØj2¸V(ÓÈN@t®I£jAdv€R‰R©D!Ü8”)ݸ+Mùþ”jk0dó…îô¬Ôtúv #~Æ–Ìž t¿[½úâxöÎÞNzÕ® Ò iXÚjÑE“LK¹ÀY_^¿iP)•‚% P©T¤ÞØâZÙ÷¢´HOwÇÖÃ{,±²)¤ÄPzÜy-†³õ«2DÄ|®ÄdÕç1tÛñ--K¬ É+lˆ¿Gi;‹bØöã6ŠÛ`À+õ°Ä‚lŠ¬Ð¨ &M»&– T+×M…¥R@P(P`……¥Œ¬(ÂPp•w[š;ÙcK1IÙ¨Ý=q´VÞ”é •PÚ_°tjĨE‡@Ñ{·˜Úq=«Q‘F‘Êgç2·ë•&Ï'¥Ê r7òwÜ &Öp£Ï¿“ûöì,lK/E6i9*<*Y`¡AYÚ>m2—œ-hä쉫u4%FSˆI’c8ë_•!‚¶v9Š€R@w%ž‹ kò&*ÎXåS`È%UÒRR¹>µτΤ;d'ëëBkgmsÑêM|\<ϹF5xÿQÉùFŸ•JÀ®m×" ênâN#&«/_8€àГ‘} ÙȹÎU©.èPXYc{ììu(›0qÍ&$,fÄŸø².—”W?,±¦Rë÷X}ô= ‰ÝË÷pÅÞûÒfZ¿ân=hìë†P´‡ ^bÈH+ºL^DÊÀ/Ør½;ý\ $;…àCÁÔøècËTgÌåÒ¹¬›–DÏMŸÓ´tÝuI­ØAŒ¡ý?ênªCŸG®hƒÆZ ìªjPÙ OÈöjD_RRÊPJá^‡€äŸØñ2c[Úß …fÈÎF§ ¨˜ ÖF=Å’…âVÈ´›ó¬z2M HÉUáíb 5‡²sO¦µÜÍIºÑõ:@, Ïi¤H«¥X¶ÃÅ®:}&ÎÅmÆ:ã®ÓÌ­b·GkƒŽ·º4*^Aè‰Ô÷sÂYašÇœÐc\lY—‘ªm>Åp³n½®ÂѺ6=?Ì»ý9<}9QÑ1$6õ¤ªòaוå1/+J ¥)ÄèëP‰J! m°¶Ë.Í;,¡M¿ÂÕz5xY0+g¸à‚Ÿ5iP$ÊW*Ê  …)7ƒ|ÀYÔ¡UJ¨mn:ÅÆ›ã"ÿ¶ /ÂXP  % Å Ûe©ç®B( ‡li‰Uq9hPbÔ—`tpÄæ¦ìíåÞîñ ·çϽÊäm+Ë““KPP8‡öâðáP&\y„~f×®Í7ÿòöªD—éÒ¾:´ÆË˽ÜþY¸«!X¸Z–Ë|{ÇcÜn˜o•ù(F`±˜"¬5ØÎìÝT(ïE/·é$“h‰H†Òµe©<Õç"£÷ñÀ¹ÌÚT”‘yvšë¤¤B%;ÐÔ¡i­ÍddƒÈ5®¥·"ÀÈV¡¶ÌD Ë"Y­GôvÇ(.8Îêvà4á3ú5u)å¹IÄ&µ¦fe P€1—‹gö±~z2½Öfº,(ê)*.Aig%–Tªm‰Mr.ÚBÀñN~‚ @¥°ÅÚ.m)(JKâŠ}ªº¼L²µ*œ¼n]^º¡{*U(1ÿ:E¶.h”uiÚíÇÒ¯\’¯–ààë‰`@_¤¥ÄÊ{¥„ÒÚo5*¡¼|v7yÿJ¤&•`_Õ [Á»t®éÀß—jøûF“¥”¹¨Ñ(Aegƒ—èµ'XùñvÆ|D¿–î&vVœE–ÂWK@²Å©¶-Ö7\ TJÅ-=[,M•`c‡ J¬Ü5ع܅v”¦ËJ@)XciN2P%VžU¨é´ƒˆ¨ÆÆöÔÀ¦ã8Þ?3ƒ“щ4<%ƒoˆéýŒ—Ççö½©wÜÒ·KuáÂ\²ó•8{;Üò’VªP(nП-Ö¶éÛ8ôàC=È ŸÃÔƒUñ–@ñ ´­¶Ý6\èͰ1`M×)‹Hø[²»Ò×¹ÜÞ M[ÔB›·’Å xéy zÛFÎø†W[—Óª²$Ä"¢BHTò³a癃¤6aˆ³ºäœ-n†_³pì4%y9v:-–*Ü-,PKz 7 I:ôµÇ1¿o$ã¿]KÀÄþ8(L¹ˆ­TN´ï÷%IÛ¬ià^ÈI…•!–5¿žãJ¥¡l i|”É_' eôÄR®#Ɉ€˜´žO?¾Ê¸ˆ#´R×ðÇV-E¹™$k«¢¬ÕJ 2%¶Íù`Ö/ôhTffoa¹¨E_ºœï†ôÓÑÄh¯Sÿ–Øp†À‹85«†àúö/Œ÷9aWÓ©ìÚ–É[vš¸fÌ|F.öÅÊy’)ÎË!·üz¾)GM¡ÊMFêÒñ´Ä”Y(ßH ¥ˆXV> " ;¬  F“W¹BD#¢’T J’1’³ŽI?ñex”pnßrÖÅèM|\gD4–Ö…Œla…Eñ5²óE„J@aù“Ž/êL{¦±Åâײp§'¿FQ4v¯ØEj‘“¿¾%²®f"8»ád«.7 ÍùèÀ~ŽýÖ¿4çoFÒÜÉ‘Ê>e#ID21©KäV–e°²Ä² žŒbOk0hs(tr(ݗȈ†2/^àdÈBŸ‰_1¥¾ ÷¿psKGÕÆýÍ×Só™H ÄXÊŠSóñÀl6à 3ÌøÄ} ÁpGæò QÏ£´ía 0 u3Ì0ÃŒÿÔã…Q×ømÑn*ut§èr01ꎼ`g:ÐË»rž3q‰¤dÀ™äJÔôôÄΘKÊ…8®¥%aN5¿št°›Ëßkë"¶uÅ:;ˆÅóŒu¿Gµ%Ùöà 6¥Öá­Î\;qŒ¯¿VÈæS‘„S„JaÀUý“1mܱ@ŸÇ©èDrsTDÇœ£®¯?ž7BøŠ…jK˜¹Ä¶iÓ‰tëÅøÏ_ÄWRa‰gȼžÅ™ãG±iÕ.ê±,XÖœAEŠ.‡pζ+=ìŠIØöÓÛñåÖÔ pã\f Gö5 NV—,=hïØ”f׳(ò8áb>bP(Ú&ïàFCºü†ÕEãÔ°˜¸½gQ´~…Ê.Fêµ_ÁÁMñè­Â9•–Kµ–­h[5†øàH‚ƒ\q‹ &­r{-ñˆßXºý8îM¹¾ç†¶î8/~ÜÖçÈ0¬š¶£û¨kü^–¶­ºóNtóç±`K]^©’HdD :ÏnÔ4†²}÷UJœhf‘$/:y¸`«Oçì…4Œd8o7Õ,À‰¢ø¿ùpØu¾ŒøœF²‚ôDbS³ÉŒ 䨇ÖBˆW·°9Ô—–ï7ÅË ]mç±fuÄVö¨2ƒ8®ìÂ.€1‡„ÀÕ„]ÉõDz$Sµ€wÇçÕy?cI”Jƒ—§5±«åÏ@gÞú®'×O#ݹþúÃü©Â£RMj)r$­¯{X?þ… €6ØèIÉ†Ê üðU†9—ßߤ¾ÁHAvW.ÆR­³î[ÂÙ濽Dal8—­ìhèc2FÜ>ÏX´¡ª£âñ Á%'™93Ž] ÑX¡H !ý¥–Ô¼y–&a¼‘YÊãÂñl;nG¿^µ‘râ‰V[Q­V¥öš¸;Œd$såZ.¤ž QTR[Ù€—ǵäÀììr- Ž“jÕ)6L=F݉ƒñð¸JsÝb¶lL;#%yiDÆgàд9ŽÙÑ梣?èÄÙÏV3o¡–Áot¥Ž½åå “EùWÎq&6‘”™3ÉU¨é鉯˜Kjl,WRQžŽ¤Šg'ª»Z#ä]%îÔ%²sŠ9‰X³]Þ™Ìæ¿Îb_;““!q¨[ ¦o*§êìdÇ”5Ó ‹‘°k_ ×Ùø‹$b¬pñ´ÂñÊVVî®G{C§ÕjZz•Ž[V±9"„}6Zªêâ¹^¬@úÇŒÀÂ]×»,—æ{–%dùVôb鯯R–o¥r®Ncá7¶ïiNw_-—ϦbÓ³ ®zýVìù{Ëðk:kNIMçï¿·²qÃŽzâ=OIMfù¢•,_´€šµªóF¿Þô~¹7õú¡ËÖ"Y[ck£¾3ÆÐÔe¢pÈOל‘AaD èîÅ‘ •ëTÆá´Rröv$Je‹ÆÖí6ppS<:Ë0Îdh©ÙÂËÄ ‹®“GJF1Ñax¸t¥Ëðl~]·Ÿ~¨2‚‰¢3ãœ%òÂÃ9íÑJ|ªQ£ÉNn½ˆVã\žž&«€6˜Ï$§Ó Z¤r*2 ŸFÔ+<@ˆC~ö‰¼ÈyŒÅkóÂ::’( œ•®žÜÃ9ïèà~…c2V~õñ,'ÌżkÄG'“]DôñãHµšÓmØ·lXvû:Ùœ ŒÅ¢Õk¨ÈâØß¿±0ȃ–Ž£± ä’\RcKuÏÓÇ©ìó.KY$·¤ƒ·+u‡Ï¼Æó@»††gÈþ%ô¶Ì")d5kózпúE‚£ÒÐùöÄ[rYù|ãŽRÁ~>xŒ7O¦›MCº ŸÊœyûðîèÈõ˜P.[wä5Û4bw­a“¶;¯U‹#ðÔuhØ é(?½ýi­0Ð&“3‘‰¨+àŸ¼”ÑèÓÈEú."J:2ÑÁÄo ’Ïu>‰ŒÔN_«E}eǸ nËón‘‰³¤V /4åhÇ}™˜S—ÉÍ‘8u*š:UšÒa௬ž{×Ö*"ÎîÖ“îõ’Ù?o3kö¹ÒÎñ4G.YãÛ¤2š²…å¡Ói)ÔÁRu›¾‹%o²ö/eÆ*'>ß0”j€¬+ ób ‰W“¸nA¬ÿË´z½µwêÛä%qâb¢>‘ëŽQoÔhªº^¦N›5÷§íGñîY›çlæ²rUCô-íP¥©îʸ2Æ_YoÉiWª8WÁp:˜+ýÆÒîúq¶íÜ†ÊØŠÊv:ô^Ô­ãƒÆÚ¯ô#Šô§½o}j4ï€8z#E_ÎÇÃ*¯º ÖœT2¢­¶ "w±ñ°'õ’p±NMzÕ²ãÜ‘d¤)Rdcq>šÎß3ïZ/>ùÍ‘O»Mží¨ðhÞ›šÆ«D£lƒWÝZç¦s.æê˜}œLs¢ îˆF‰› d£Q›JTm™‹îÜi¢ ²8{ä8Wœ^£N]öæïpwZ)Ï’”žGfþ4w d÷–m…xXë1ZûÒÄÙˆÁ(•rÀŠ’\pžˆÀ3hmúÑÙ *MÝ®²éð^vYw¦G Ì«GÏJ¬‹S9›†H:Gæ Ö[K°G¦è6±u¨¿ÿ¸m=› #'>‰ŒôËœ?™@ƒÖ: b™´²„ÑpCΘô0 k\<n—ÏVÖ´o]‹Œ}qËÌ…hMý,«ÃÉ"¢QÒ¡ Uë(ˆ9KôõDBŽž&Ã¥  ÁÁPÈɳAoR‰œ"׆´¶ßÁm¾Xika<Dþà÷ÎÝ*·”EÑ+w?*×L'#ö<…×Nzö"ÎØI"jœàa`ýþdƾXû ¦¡Å‡{Ùþá֌ϗâ+Œû¦#² #Š"²,š Û7ú)JÈ’ H¦´M¢šútTÍbùªv¼Ñ®ì> £¾¤: ‰9\8¸†… ÏâþöglYY•[ÒOx`}DaWß&z´1gˆÊ¾JxØ)Òí¢ SÓ(­q÷±!÷R¢£3nÎ~. ‹êž8Z©ÿ_çÁUþ¯td¼£ã·%¶vXk o {KK¬:=OO Ì0à 3þÿBøÇ_¼ãœàŸxÅ 3Ì0ÃŒr0 \ˆK aý:äåå““›‹_Õ*ˆ’„MLʨH0n±~=/w@‹GGLJؠÝ.þ½q þ™YÛs.¥ #ç¼E-@*Ê r×2ÖEd"Åq)K…o£¸g†²tÍ~’òs¸v.Œ,M/ÞÓ‰äÍKØrø¡§xgÑ{e6ø IZ­{éî±”›É¥«±\L¹JL肃ƒ8_ìBçþ¯c{dk·o&4­-“¾í…§ÒdÜÉ ™Ë´õI8Ùgqæø9Û¾F÷ƵIÙôsv^Å6  ƒ‡4ÇêäBóÕÔnܖʰók~ÏjÖíÞNxzG¾ÿ®'n\?©‘´°àäùK”8TÇ&m…ߦ¥ˆYÉ\L¿LBRgBƒ "–êtmêLà– 8HXÐ%ZLû…—}nŸIWÀ¹=‹Xz$Kñ2±‰Ô~q µ ’ؽhÛâ½0¤íüìPˆ…d$‹ø¶nF WS.ßìðLYw gûëœ Æ: 'uœnŠ ó´HV^Ô«¡!?£«Êµ¨WÇ [ô¶òëªHDu.çÃ(ñÆÛ£ü93o[ž¸9Ï50 +, Pv§a?«`«ÍâЙl‰sç•×ûÒ±†Û*-1î_ǺÛKkÇwßõÄMp­ß†ÔYSYq†Lõ«Ly¯16j;œ]‰üýÖžñoÓ7;¸céV‹¸“l_³„½—ëòÞ¸W¨çl‰cÍv¬šÍÊ#G8›ßƒŸ¾èt›!MEŠŠŠÐh4÷¤ãÛû‚®Z/ºwësmøs ,*S«fÏbkxêzÏ3xh ,-É:ÈÞÍØ~™zCßã妞X&áÇY+9x0ÇÁ ù¼££Éà¢Ï#=ÞF]ëàh( 1xßÍÞD²º/|Ÿö^¦yŠÜGª_#žkÕ' ÑP»W#×.fK`GÏ;1tñ»4RÊèKRˆØŒÇб´q»s£P(°´¼pµÌ³Áœ*0’z€À°pNÆ]÷ú¸ëc8›žN|èa‚B‚9_ ¡N³&¹›íÛ·³/â*-?ù”^~š›R÷ƒ^¯GElllÊ›4¸~>‚ÀÀ`ÂÂ#8~,œ£GSpmßþèáɬ?¶q<‚È„d,;f`“š¸:^f㬥%,Û¾ýð| M…ó¬¯ù"M*©+䈢(R\\|_ÚÁ¢2^×6³lë!BÂŽvÆž·§ ¦–…I‹sH+p¦iø?ÎO IDATÓJ¨ìZ®YÆ_»Ã O¥rû¼Ø¹6ªSË2ØÛÛ—ûEËå ­¬øó/6Ÿ1Сß@z5vÅ©>=ý®±zÅf†œ@«é+y/À?§fÇÔÙì:Á±˜ ›àã|ÈÊÌC°õ¦vug”*ZœÚHº¦6µ}±¬`Ðòòòpt¸eµ‘‹³ˆÚµ”ÕG3P–\$!|5ÂýúQ–¯ÝÇåÜ’ÏGíÜœF5‘O­bêÊóØhr8 ^¥ÛóM¸ôË÷,?™€Ñ¹/_©‡•µ;U<‰Ûô+ vgP¥Ç« xÑÍ{ŸT,_ ¶¶¶¼A2å¡õ¤sÇT÷)d÷¼Ùì:¯¢ùs}x¥qU<¸’xê»vâDh(QÆZ¼Ò³ ÖêÇ–Ê………ØØØ”zÓ=È&°ô;YO^ŽK{G4vœ=¼©äf‡ ‘‘¥¢jí*8Y“šeM†>Ø.Ôj[…¸Më ‹OFo×™·zTò¹esìÞn –e8~‚ñã¿f̘Ï8p ˆäÛ¤?5d_Ï!08œ ÿbÛ¶=Èù:Îeò2 wŽ·p[Þ¦ûå.…µ…—Îrpõ vý{út«S™©ÍÏÏG£Ñ P˜ŽÁËë$'ÎÆ£ x‰îu]ûõÖ“hÔ¾?ot¨„ ³`u %9\Ž>J¾{{ºõx¯¨¹ÌÛÄÑó. _<Šb 1ûf’ØôºVU ´uÆÉÖ‚£3b}ŒšæÏ÷¥+7¸Ç…¼ ®^8ʼn°PÂBƒ¸âԖʱs‰ª3”¾u4€Læ™`¢ ¤„î/•-Éhê´¦²î Ë—ýMH`4Šæ½èÿF[¼·¯çâÓ«ùaõ9¬ír8Š\ÿUº>ߌ¤_§°âD%Ž}ùzh¬$Åù…,½iм&Ž ®†ò×ÚRÝól8Ù.mè\ß‚«×r$(„°Ð$ÚLŸN/O QŸGZš- º4ÃÛJEIn2!K²-â'+±§9Jhh—­Ó¡¹ «²-8Œc±E¼ôÓDÚh@Òk‰Û·€Ó°’ˆ¹”wËn8¥D°wõ*v§ÒK¯óZç:8”³–žXÆ”Uñ88ds*,u“Wèö\GôÛ§0kG,š&¼óé‹Ôõ¬Ž«e »–.fûÑlê Èk«ß.¯Ä<’R­iÔ¼*¥âv};òÚï-`D,pvÔpìïCÛ¡ä¸ôá1­¹¼j[ƒB)¥í›c"¡×æ‘cp§QCOT(qôñÄÖMƒÚ¾Ý_l‹{ˆm[vFð%K𴬉›Æ.ûXµ44ÏNt¨oCú1í·ÂK©§H›O¼ìÏ«õÝp¨V.³cé"öÅ{Òç;´«kÁÕ«àWßW[ 1—¤T[5¯Jå€vèVÎ!Ô³%µìÝhâsËsZ6PSˆäÜ”Îõ‹8{p5k6‘ìP“ÚõiÕÐü;üªâh©B0昮¡ÙóÏQ={>¿/ #:6‹ú=iéêK»Ž ±U]`Õ_›9NHšš:Í{ðjŸ¶GífëŽÝ„„‡œhG«–®äfihÜÊ[Át©CŸu–ƒQvôì^2ÙWÏræòuêõíG]{±Ä»I#HaÛ¦ì7ÒýÛ÷èZÙÅ•}|÷ÇjBBNá>l)Ÿ´±”RçFaû\7ª[ŠçݾžMtw™Ý«‘”“D̉ª´õÁ¨u Q3_ìUJC6‰ö4mU‹âlR œiÒ´n5¨êSÄžòùù~ôoëJjr ®¾U¨ìf‹ ås5UMí€j8«òILµ¡qK?lôÙ$e9Ó²K<“ÿäeaœ»’†]Ýî´òö¤F-¼=JHˆ\Ë¡ËVh\jРV#ڽ܂ë‡Ö³eÏnŽ¥wàûIÝq5æ˜aG³VU±$Ä¢R‹+Ñ®“?Šós™³2”¸|#nÕ;ÒÆÏ Kk;\¼|ðu¸~U‡g“ÆÔô¾W^dô@¯ö'Ö%áÒÐ …¬ÁÃSƒ•5«:¡µddÈxW¯Š·ƒŽ«É*jøâhåJýÞþœ_ð'['ÑØ›Ç·Ä‰ÂÌkÄD øi<Ýk;ò°¦ßrO©ñÃ%m.3—…q61Ûz/ÐÚ«ukÛpñp(§/Jø6°åôŠ#$[ºPµr G~9LQC?¼ì­n3‚æåå¡Ñh())F©0E»Ã)J(“nB9>1<¹¤äÍè÷¼¼ïþ'íÏ}}e7œ3Òn t ŽßN%¹Õ ²Ù”`†f˜ñ¬33§6à 3Ìx²(**bóö} ð II×H¸œÈsÚ¡3qݸõâ¹PTt“+¼+a»ø+2(A@À·ªï5WÄýå»ÖpŸ˜aw;˜7ÈÈÈ ’w%xŒþ;¥”pGûήžNPI º êC ˇ«­8)˜U³ÖãûõLº:<©v>ÎxWüÜ=îí?Ä6¾|½wkǃ¶ïQʸÙz½ž¬¬,¼½½’þ™öÝí™»G€y°ñ¬¨GÙÙÙ¨Tª ‡ÿ. Ðét¸º¸>"Ý<(‡y¸5©ÓéÈÎÎÆËËë¡ÇúáŸ|ðR$I"%%Ÿ(áb = Fÿ2’®$á[Å÷géñ×áãôS«ÕRTT„››ÛS£õ¢ô.\N¡@´Á*>œåVm™ürS\¬ߟ#55,,,`·XÆK9C&‚ÉcµtŽL^¬w÷î½õ½â®^¿eC,K’Lbâ5>þä[vìØ÷Ì𡆠ë1ýçItìØA0å"€ë9Ù8;9•Y¥¾Ë7]¢oxËå~+ûݧä2žÂåwËrú–ïKß×®]ÃËËë.ÿ'³žAÆPœÄÚ>ÂrêFúß-2‹,™Âdß)Ùþn_RßßÀðz©ýÝ©cðȺ ¨÷þs2ÿQõãGÓw+ËŠ¿»?¯}XYý8óq?JxròN.—÷[x¨–<¨~ü0´s«®'½»0fréÂI’K4X§Çs°À6Ïw£så¹–f¤àì_¼÷u"=?xߪMiã§)×ê_/²,‘w1ˆ=ç9³7Ns¡«]Eï<šŽø(sñPã}^ø$çìÉ•õ°ý|>ò„;x·Ïèž^^Þääd£V©Q«Õ€eY¾iwžG÷Û\¤œœ;´#ߤ¤gÚÆjm†f˜ñÿòlñÿ­¶˜a†f˜ñìAxê’â^5<Úá–â¶Í´ðÄÚy' Q8·§™S*[>lmFt*{ªÔy›æÿ¤D~Ð*ô=ztê(ÿìÝÞ}œ2¿lA!<"-ü3í»Û3;G–y#‡ç³Æ“á‰q*Å™ç‡/á±xÎ#´Mx˜¯…'Âcž,Om>6>åõaÈŠåx`(—r †F¼7)à‰Ëtâ¡çS¨ðgE™‘¾›ñ·\¾ßÛ¼~Ë<_ýX–!%%3æðçœ%Ï:}ú<Ý_À‹/vcÊ÷ŸS§NuŠ[ý—+'ùŽe¾xÔpÐg$®ˆ¾L¾=Î:P(Kp®1žî÷´wù! ßñt«§zíO¸¥>¦nòlÉ|žj@SáA4„Gäµïù'<áÞ< y':½A$IÏÔXèu¦ÐÏÚFŒ¢ñ™k—,ÉHò³KÓÿE`ЛB@?­q•ePV}w>îm 3,)),&7¯è‰¬oQ)(È/õ½‡G¸eؽùöÍðÄ&C®PÁgA¸ÛwŠ »Q¶ ëøí×yÌ›¿œüü‚gšvìØÇŽûxçí|öÙû8:i(*.6í€K »r`ùÆÿHwýíÞŸËî®K½eñ¾ó-Éy¹yh~øðüǾA¯‘eg:|☗Ï“+˜aÆÿ8d,+ÑyØ/¼ }I ¹¹¦{*"ìš2ô»6(% £®˜œÜÜǺK¥i5šŸ;*‘$%Ú\r0ï§Ì0£,Ì`3Ì0à 3î¥Û™a†f˜aÿÅL*r™ŠO·ý†bÝ# OÑh@,¼õ®Yö>[4ôÿ:‹`2:Üœ÷¬ŒÅCB¹ÔpòÌÍ‘üìÑŽ,ËÏ„GàQ²™ ™a†ywö?¬¢<­qùo·l¦A3ÊÀl6à 3Ì0à 3Ì0à 3žÑª|—ß~Ãy·çöì^¾ëw‚˜À¦ûˆJÊèòr8z€-û¨èP÷Ñl Ojc.?äl=x{äÇn·üe<Ùà ù1hû‰š<ÁKOªmÒ=fí)dL}Ì2åû¬ñg©­O«]O£dù‰½/?r ÿäÜ> ôä$bÑò“?s +22 ·É¼Û¿ÊÀ‹V§E­¥BØrˇZ3ÿã9ÍÓ"*òá‚/iee ~Ó|²ö ÖêRãƒg}:öΨÖ="Æ´ý|?n>1‚+§*tŸ0A5 ˆ?¸†™³w“¢pkÝŸw‡¤‘³Úc̘¶Œ£g¯R¹ß÷Lî×{ËÇ9^ 1¬ýq{Ï'SŒ€€„h¬Æ?¦ÒË[–Ð÷Ëݨ,Hv^ Ë×vÅUâõ~õ±c;6]@S§)íz¢„Šçù±ŽÒÎ2gìï„^/Ä( ¼7‹Ï6óΡF,ü¨èÈ:½—%+³èýÃÛX‡,àÇ_÷’¡ðh3€ÑCúÓÐõIGJ$Y¢eÛ8ïЃqãÒÑÏ b–3þ÷ý¤æÀ(ÓàýE|ÕAƒ!e?¿¯µbÔ„öØH\Š %,ίX–Í9@ª Å.tû!ƒ»ÔÂîZ•s5Šcá*:ökp›ß…mýzÔ«éŠòæ÷רðK,í'<‡‡Ëü~_°OéH•ZoðÍä.8‚”Iĺ?™²"¶ý=ôMšyý‹~²ˆ.'‰Sgõ øWð0ž¤e¼z¥4Ž>Íuëºtm[ÕMãï-ƒ¥@&GÿŠÄ©U7\U88Wàù+JœŒ:Ë«¯!##ëRÕÉÈÈ¢sçW™?o¾ŒBaÊ |ËP.ß1Ê7 ì7’+ßûòÞÚr™7Џº‰¥3·qAÆ"G:ŒxŸÁ½à|—é•ïÐIf1´®Èõ„Ì›0‹U-ºÎð~õ°¾¹Ör9²*¯N©YÉÁd¶NÝ̰O7Pd©7t6_wu5•_\@RÔ>.Ú øò~?›cʺôz{8o÷®•”Äößæ±9ü"ùF#ÕÿÈ·½kc­,åáë9¦ÂÈŒý|3v1 Ö.Ué9þ'Ö4p-r §¬â¬ZT»ãG¼IG_ë ät2¹@ÛññT*€Xöû‚=J >Õñí´®eôòïÞÐ=ëS§º3JÒØ>þ֧磗d,^™Âò×k–{×@fü>½œ“€¨³%à•¼ÕNdÇÒ%Ž-#Ÿ[¼Ãìápµ-§•]XBß/vaéìNûQ¿0º¹Šôó»XŠ9µïF÷ê4 ðBM.¾ùŽÕ±I·éÛ—XúúgìÂgÏþLûíE\0»—EŸ-â„Z‰\­#ï ÆKµl¡8š9Ó³?ò2>¯~Íwo¶ÄâØo|°0’"„¨lpì>ŽYýj%dœÜȬ¿b ø`2}ª ^#h÷) êÓ­­o…!/˜ Jxëã.xO@~ëS‰:Y@ù–mÛÒ®žûãÍ“”Ob|"¶¶ÕѰ\ÀùÀ'Wç7bQሦ±gÒVÔÍ_aØ«vxWSßG›á™»ìöÿf°f˜a†f˜a†f˜ñÏ"n}ÇÄÑgÎdšˆ`ëecÚ«\ãÈ__ðåNÏ÷GÇÒí¥ñâ.fü9—Í›2ÉßDŽÍý€(ÿ÷˜0Ü ›Ókyê~V~YÑ!^)²¯§°§Éèt¯›ÄÞ™ñGg;—(ïv ë=!p:_-9Ɔa-±P*¸¶õF,ŽAå7Š®Æ\â·-å»]v¼ÿç¯T“­q)cöUñcP•œoô&c:bo›ÍÞ™‹Øýü/ô𾵑–Нs|å§|´¹˜¦=>  Ûͱ«É´øxo¥¬dæáƒø¸¿F3oë;†(}×ç _Þk8Ï—ùޛĥãØp¹-r0à‡e¹Í|ɉE|<{Ç {±`P;ªËþÖã6â¾s)8¶ŽIÓCXýY;ÊÖ\xéã ˜°€·²Ö1;d?>UߦֹɜðyŽ‘¯E:ü3Ÿ/>Ζ-‰]9–Ä^¿ð}£"bv.àÓ­,í"y`%ö£æ1Ý*”¿#w°î|]ÞVpLgC‰sñkáHÖΟ·¢1[ïbL¿Ç‘M¹>·ÁÊÓv%Kг.pxÃYZ|ýã¥óì >ÉÂí5ùú%;Òϩܪ?ýz×GS¬Â½Ž GçŒâä=i[¦0í;–®Áaô<æ8ŸbKÈfq`|§–ô^™.E"*g’7 e‘"‹m?ÅâÕ1|^Åuô Æý¸Ÿµ“»R¹ãh¦ÔÕ¡T©Ðeœgÿ®e\/÷‹ZFN§øåiLk^Bæ•pöN˹__ƒêÃá“ɯ"xÓ1jõU1kâvŒ]úòÅ[ž8:WÁÖâ  2‰Éô¦Çˆø{kdY²ÂËMAæo=^Ÿ3•†:‘‚ì<.Gn&(À›«Wíny-ˆZR¯¤RâQ‚èN,â£2ó\ùIøq…McþÂØe$ŸÖrÀJÉ¢õñ(Æ÷ Óºá¬¿º‡A®¹œ<¼„ì&Ó°>µ­› èþíïØÇ±7TKþåëàêúDZãÙøÆ:k˜¹*“üÆø¼7/….ƒÇãïl‡ZÍ’áƒø~ÒR¾öËàBœ†›S¯§0;ÄD+\lÁ)`Cßh‚}î6/ÛÍNKz·ñÅú[#¦ü×D&îéØgd§Ê×3r,ê/J}0ŸÉlgñ©¬¾HW»“$ø6¤Sý÷¨ìs¥Ÿþ†²ŸÑ¶ª3àæ¥TÂ[UAse-ù¯gBí\âodû„œŸò*Jj¥ûL¥wP'7ïäÚ‘ÃTôiLiéMfEOeÀ÷Û¸*¾AMóÕS‹>%¾ÃLÆUIäøæßøbcef·ñ)²îÖ=«Pàâ_œ©ÓAUm±Ö$±uÖ<¶4JKÂk '5ƒ±6}¾ë€oº+wOJ;*¼þî0"ïËç·™«×aT¤¢órög:¾I·9ã¨j°óÒ¹d&æ€*Œ¾ãÛâ“nÀÚ³ η·ïUƒÞ!Ø÷K‡.fCÀ0:×H'æ =-|H •ˆ Øâe•OÞ±=¤uÂäÚyܾ|–sûÿ`'\?t•êŸÎãCãN¦oÝ„•}{ÚUr+²öSwŒ¥ÏÜh’ì{Ò@Ñ“¹ÿGzOÉâÝ™S¨lPáâ§xr?'¯¼6fÕR£˜±+ŠMÞnt®êŽ€ÀÝ53󴎤ËIäÉ2P‚¾]O’ãö1îT~9YG}D-àîÖQhCÿ7 ôíc¬}/5QU IDATmß~D\Ûi|[5‡Äkùh^i–ô÷'ãV,Ö½§2µj6ç÷ìãöáý¤¹yñÛØ¿H¨ù #ºúáâà‹½ ÄàÎ Þ £¢€¨åÜ/o²"ÇÖÌÀ äæ§sõz Ž–puà[”#‡„;wI7<: R•Á•+9¨åü}Vÿ˜(¡R>´*"깚¬¢ì®Åœj2„jªLb®`Ý®Tê{d`€yϤï=B.=UóPD5¶ž•¨W¹2¶ŠŽTÛŒk`@­µ%íÄb–_=ÏÎß2ñö¯Fï1ïRæÆ †.ÞL…Ï[’þãÎÖûœ‘¡6G—2`b ‹¤‘Š[Ž=¾Uª@Út¬Ã¡ïhЭ 5J9>Â1&"¦ÞäLr%>mZÿ¿-32¢´äR0iÿ†'Š•Í ˜I%!JÏYœ“z˜U sh=¸5]Ò¥ÇÐËM^t¢Áèf4zä\&ãÎEv/»DO^§ôsúóÑ£…Xe,°À ,°À ,°À‚綤õôt+¯*´yÑΓo f˜ÝÎåîoX¥2Møèc™¬ywPà'7•£ÖܪTõ¶G jDHØq®?ÎìX™ÐÕÚ`%øQ3ð(ç­°}© eúU§FˆVnpK¼¡~’H©ÈO™á²Š ËŒ(€>=—ÛIét7ši»@gö¨qìx“c<(ûa5ª{¢qiˆó·1Ü5Ö»ú|^Ë'5ä—‚óŽ?’˜hs¹wó6wO»òf-ªÖ >Ô,³›súT2¼;ÑÇÏ-À%ÖÖ¢q/fC°r¦z‡!|å¸]q2"y\=–NvF"xá•UŸÀ—IIɇRçø®ï*Ùa”ÿþ"YéGضÜÀ>Õ¨ìƒÖ¥.ãn’€†-?U¥ñŽŠT¸éª³aÕIbkÚpa_(Í~ñ¡¢¾6Õnep7v?ûb@ëR“Ð:>¸”kˆ÷¤dRõÇÙÿs µ„âa Úúü0õ©=ª<šv¢}VK¤m™´´lR“Õö§ ÅÆ±ïn `‡¢ØáU¾uÊ–3Ÿô¿ÂÊÍO¢m=Y©IÄ_®Ã+£|ðÅŠçîqòØuR#üð¨ˆ7Øt¤í¾)OþäØW©Eˆ/Pº*ÎâÉœÝËìnš¯[ñGHIhI÷Èç‰×PÕúˆ‘upRƒ§C>íVpWò¤Y“^¨ì°ËP£Üè²8¶ï~¯·&¢e}³1èEÙdkO*תCcasP2ëÖÅÒ|Ü÷t ´½µzwŽÙÇyI,ÜDQDJ¢ítâ.8Su\]ª9òù°³¢Ã­>{'零9ª½V—Ǹí2• ¯á þôðÊE5/¨-VŽn”®Ro§|lm.³zúqÊ5yæaA8‹åù|J2—ì'~° µ$ML+ŠH¢*[\}Ë\& -eÅä¤ecx†Öˆ¶¥¨÷Æ`F:ìæd†þ>/ý#𑬷P¤Ólk÷ố. ©F@@QޱsQMšî(KE<ÑdžäpôuRkº’¥ÒÐã‹ww,οÿ“09­µˆšËç_þÁ © mûäƒnU±%–c'±8êÙ¢å»3mü›;Y½ v Ox]üšÆ$Î:O–¨FìÐÝÞÏå1Ä$ˆÔëþ%oÔ…ýÓ7+åq{b Ö~mèß^˦ŸvpOe‹“[]ÜJçýO8 cü„™88:ðñÀ÷$Ñ슳ò8:¹¿âÌÁ…#„ÅWŸ2Ô.SާqEt γ¹t=ÝÁºDþàME](Uãv5¹ªêr­ò©@Îì$$YF.o=@ø7_лšS±§Èɹȹ(Ê4¾Á¥£uiúŽ7òë|c/ÙWo¢´iI×vVZ5žÔðÝÄm½Þ”’X¸@ôr‚>R!úÈÈP'Uàa›Ç%»5Ä‹^4 ïFY­Väq'w?I©"R1&mSë=¦ŽtfèLÙEpœ¿Ô ÉβTÄ ë¬DïˆAnãÄ…5‹YuÜ…7Fu¡¢T\÷4»ôº1 À '-ÀyÖÑ¢õÝõUŒyž6?~A¸-(Š·òÔô-‹k¡SCÞŽ…äsmÚÁÁ®hœß©]GymÖl:•->ÿZ=*PË·,ÎÏtˆ c[-ÖZ5^ÔôÙBœA ˆ¢•C‚yp¼MF®Ñ‡OBpÀ>ã:'ÖÆ“RÙ€œ_‡†á>øÐZë7{3™ìJnØjCØÌtò`ø~"}kÄòݼ|*[ÍdÁ¦ ²u*º~·‰÷‚\ýãCÞùá ÉŠRåÚ0r΂„L.lœÏ˜ñkIЪ‘K5¢ÿéR#…EÃÆ±üÈ5Òõåè¿p6oºíå«Yõ\'0}Ý«LÚüåE–Mº ÁÙ«Î^IDmtÄÛ=?ù™¾T¯âC•:xo¸Š,_æø†*Ô_B°£Ôä$7†ERÞ`09Þ€άù“Õ…Ö³ jìü=qqÍ¢lPYÜòö0n–L ‡iÌZŸ‹-Ý¿[GÏ2»™Ôm*e‰žm£©Ý¦}k^âÛO%FªBÛ÷3¤«–¿–\'/a[öÚÑax.ÉÆ>v9ëNgÓnêŸøýú&Ó/XÑkÚjºfqò×ùð×hU¶Öyƒ‘ÞÂîÈ.v-›ÃÞÄì8›¦&:6¥~¥;Ì0–õWn“m|©ÛS+y#gª¨ï1‘©«E<|xoêB^sŒcëüáŒ^sàBÝŽ0¢*Á4¾jÎ1ÿã¥h;÷¥s_lyæì {÷cƒÔ“1³Ûpoß^U`ÍÅèýܹ½'ÂûLjeØ3è{¤]agÇ팭0€å“<˜Ñ}"GóÁÚ±3—÷Â/*רÍè&oâüþ׌ï\þ>W{z=F&çúZ¾žw·¬µ¬?/á]µFMCgKdñukËX`X`X`ÿα}Å hNDDÍ^éÀo±fs¦ ¡uóÂËÍ©PÑ[Ae…­§.6©¥ äeÝ#5CeÞÐT§v•KÄÄ?æk%-VV6X ×8ㆳ‡+vhQ‰¢ÉàäY*çb¹)›œjOÊø8£1Ûde`íO›Ý9’† Âè>r&ÇÒͧŽN²½”ŽÞNØæX¡–ÌZ¯Š½A¬¢€•ÉÐ 2º¤ ·jDG 'ë©·¹\½eÖÊ|Úú"Góüð)킽Ú,¶zÈ¿Scëhš¨‹mv­‹¾öHF0 ×²Ö串ó%0!›Ìô,P²¸s5–¤Ãýˆ,•þÞ®h †>7•Së§±Ýs#ÚWÃÁF…¨ÒzÒnßâNB&æ;Qk‡³;v* # ¥éöëÄ´mL£ˆ&¼òÉyº}Ó©˜“ÕˆÁ­L'“m½(“’O^r)ù¶h%±Øæ’—ã€y«ñ $ðôUb0"çÛšÆLíD)l°ºy‹» jÌ4ã@ÅÉ$妓™cµZ1Š+QåäUbžg3]¤ÏªGжˆ“oUZ¿ÌÒÐPBtgñ;Úö¨ (¨­Î±dlwÂê…òæÌ½¤aÀ“ðÚVPŒÙdf¤‘ €þþ¶ØZÝ!±§íîÚY\­[“:nUè>ÿcÒ?lC“ÆiÚi7ǾYÄñªK½ËÑÃ+°éÔàç\Ù‚•“™¾õä$]ãœMµyÎ⸜iƒµ—Dæå,õ)GÊW[ãÉ3¾ö¢²Æ.~· §qDáõ©ß÷nÝÝͦ#e©QÓ¶([ptBû˜ÚÉ ™çU¡-„ˆ×1¡}(¡ßîÔ89[v•{ÒRÁø…')?b(ÕPãZ¦4º{ciÝe¿žÌÆÆÚ­Vz±•üŒ2² !Ý‹á¬}aÕ½p˜Žìk× ì‘ \L RI¥6ñ›Ì«ÒèÈu²Çæ™IDëê…·YÜOz«ÒbëYÚ$ u\´vÂÃÇk±  ¹äåÚcešalÜýð»pšSÉÇX7w)CÛFÒ ^(}&ÿÉ¥ì—!jD@RåqãêrÍ=CëùûX7­5Ùwv°þZ G§Nàùò×lX8€*ôÆ¡Šã#¢A1’“MvžLþÕõ\È­D›~Ó˜öA3nœ:ɵ GvoŒw™HÞê÷!}_·çà[°oÞ—ž]Úá­>I÷Î}þ§œ¿1⢢¢ï×Vî;pŸT¸ð}%Í“„Z˶eŸJÇÑ¿q:ù )¦“œ°j@-\rólMY>4N”–µhn%  ¶ÆÞ«NZ5‚¢®³oÓi– jGDD#›2ÿB?É'ëÒ1v4¬OCy:³ŒÖºâ¥S!ÞN +lµf~a<É>}UB¼­ÑÀÙ, §!€•Éù ùä$ÅpÑ:ŒŽ€Ö†äƒ ù¨iWÖÛ×âõ>p/.§­q÷qÃZ,¨_G^Žã}þ`]Êßs׉C!/%ž¸¸$ò”’tO3/Ò:á¤MgÓðVD4\E½]cˆ@Æ›LlÌ-2ÍrL%%qòøxÚ4 ãµÙW´]&ù\‹þžÅ²#gËÒ£ÌïIDãÆ´îØƒ•·MÈ”N‘|ô“‘ŽsûQ>ý.Iéu©\!¼üt²ŠÉdÉÆ/_7´š¸þïgZÏHÂ5äõ÷†°=IMÙ¦-©ãŸÀØÐPBÆW*ˆFáŽÎæÛ˜š èÖŠ€@g$IµÖtX®°¾ýHŽ$i°)퉫½‚ G~®5š"úöubÉ'×@Z¶Yv¹U R™KÄdhmGö™å kù?%”§Ë šä9ÄŸß|N7³>òùÚ2‹Z:µx)=ûÒ´ðE×*„Ö ¢âå)¼ã€µ$¡µ¿É¦©QµúñÃŽ]ì[Ù…«nå|šš&ïv¥\ùîL]ò£:–FÜ|–ëèI<±C`6nC®œLR¶+;æ±nŸÈ;¿D³zLyöÜÁ‰Ë©äîŸÀ>›O˜úË0­E+lÓÖ3ðÝ{ ús4‘v:°u¢B“h§ÎgÛ½\È|Ö5!/7©t_ÂÆÍ;Ø;·%‡OŸáæ½tÒ£Fíþ s~YÁŠ!uùyÁjì0™ Ö±aÙ|†´Ìeúê ¤[ÊÒ?nÑaÞN6ÿ>†ÎÕ½QβfônZ fá¶ìYÖžS 7—™AÂÖÏ9Za¿ÿÖ›*!y~7§rãðªÝ†Ž}»Súäbz……6ß-¨loC~æ=R2Ì)ÓµU©QéWS@,âá2Sl=ÖuEÆhT@0¼íKxOgá¢?ùý£êü0o=©VuygÊÛT«;E+gÐ'ä K¿;FËù|w+«ŽÞÃxæöç6aЬ‰´¯â@ú¦]_Áï#š°tà$õZÂ’÷ƒ™7w#i’U»Ï`Óæ l^:•.µ’™³ñ.îµÃmýÝ>˜Êì!mð‘3ÈS]aåÇŸs³ê‡Ìü}?öŽaèœÃ ÏâÞ¶¯9_m«—.düë^Ì]°›\[_š ˜Ï–­[‰ZòœâX}+µd–ÙÜ‹¹IB†î‘c¿o\‘¯,À}Ì~™Ö… +ÈÍH#9=œkë8~KM“aQì›ßŒ ‡ØyQäµáoT»cçþÆšYXÙåK¤¾¿òÇï‹Ùd/~¹h~º ßụ£i™ùÍÚ}Ì‚ãϨ)(¹)$ºA…Ù¸d:=ýr™3q3‰çï“÷¬–!°À ,°À ,°À þ=ä’—Óšo6­gㆵüþu+v¿¿€K›7EE)i߇¢(€™Š \ÚŽSƒÛÒ°~}ê7|…igýðyªPÂ4ö|·’Ñ:Õ+ac4òÀÅ ¡Ö E«)(rÁ{2F½†Ò¾½Y°;Š=›~¡»»ž­?î! ¸wb>¥­ñóò¥°q^…ªÈ3ÁÍ÷ïî¥É¨N¸Y wH½{Žzu+º+‰Í_.ÇèBõosÍ^["?_Á–=­9öúPþºSÒ8)Èr!ð`<óöO2È(†<²UŒÛü#ýê¸Q¸ìªRhìór¯±cÉþú¬% ´dÀW³Xºx ã×dÓ~ò ¾ù¤>…w”²RÄ$}fÎ`t£6²yÍtZYïdÖú«ÙÖ›Æ_2Ê(²‚"(…æÅ4†FÅ<'ß!JHzFA(ä˜Á(#±¨PŒæÈ"¥‰I¨ žÛ÷(+¥í=üÄc¢þ¢ÆO‡X5¥Rì6OÜiÉKKÚ¨&>N"—~Jr¿X½åWzzeúÚ3EÚt~»Ž¶¢sk§¿¹¾rÓöðã £4ѾÃ?“¿­åò ;šVA¾@‡‘sX±s'Ö}Aö´_Ù›œÉßöòÉvoÍW ÿdý¦lØ´•­3»à#ëɪ@@ ëEyæy~1y mÞÇþæÇ‰hÔ€ðGLieO£n}AW‡.¡¦{Ê…óÉ¢=˜ö:º¥= }s,ë/fþ3&/ƒƒZƒæ¡´Ä¦µòÈh^Q…uÎEÖM›Ð°PB»¯¥Üky«¾ï³GN+J‰bä’¯¹&N–$D}>¹yöT¨1_wG½e.Ro²míI2þÓ"Q ?‡ôC®´ q®Vªy)[w¥­GhD(Õ|­Ðº:aS¤Fý oÌ®=¨õ+ ""F .u¨^=„@7’Ÿ?¾’„J–ìlШ­±upÄ6/ƒ׆Ô.§Æ(ªølìϤ§$ó¿ŠnoöçÚµXŒæ¨Ò‡œÀ%ÍF1'ð}ñý›ì é0„Ÿwîbßßé!_a÷šÄ+OÃ6 t’7ñÊ×!ß—³"¢"€¡N#Ë…¤p.Y)á ûs%ë6nbãüî?“S€œ—Ë…c[hÖ´!ŠÎPDŒÆBüþ¿¿½¯×ZPÙÃ8±ýOZ6o\ˆwÈd'ïaág'h2ü5³lñ¬Ó‹;f‘¶‹ßgGqK)™ŸJ¥(ÐéÈÞZ=>gæÜ¾„¨JÒ= Ãf_ÿŦ‘h=˜5 "6UÞfaÔtZ:XáU³³wîbïîå|VCÃÉWrU~X>—v.Îuõ¯1qû&6oø‹yë³ó“_‰Á†€z}˜»s{÷.cP9G­çÆ}}ï6Kßù“R-›RÅÓæã[Ù²që7ŒÀæ«/XŸbê³µ{]>ùc_uÊä·þ‹Q½Ò…zþèJXÃPú-¼ ;|Ŷíû¸’gD´·C­¶ÃÙÝgÛp"Z_æJœ†´?ê´sâÒæäêrÈp´BÎtÅ5¬ ‘î êrù×®Ü !ð ÚFT"°´TZ´—¦Ñ¶õiºîú‚ŽöhDPk=ªáæ°qvQ¥s'Jó0Š´ÜeÛÌ¡¼Þ(Œ°wgrnÛir2É-û#ËàåæˆSHsòLkôÞZ>ˆˆ âÕNôŸ¶ 9æ*sl°ªÕ‘6A*Ô.Î8ØX£NI!>g3†÷¦mãpvË®¹šŸ‡¡RºEzàêj‡ú‘ZW<Çwß&ÓIDu ‰;p5 œo7oc\Ëç@â¡3ÜðmE³ðºûˆ ÈÈeèä…sH%ʄҰ²îÁU(Ÿ“‹ ä^ý“¾iÔî->Ÿ³]Bˆ6XÙØbçàŠ½½-Zµ )þ§m_¡uóJ¸[S®M3Ê/ßÍ!£1¨/ÝÂpt/EéJå ÌÉôÜŽžKð†„uÈ‹‘–N†( Ê:ŒÔeøòù|Ò2»‡ÄüAÆ7hÄáVˆÚ8žWýl±wЂQ1ÉzÙ€Á©:Õë· ÌOD,WžrÖÖXé'[4j[œÜKáœÇ¯wéÕÚW7wªE6¢Ô’mœ/àü’ 4~gÛî…ðç†Ì?@Ú³OIƒUH|¬±õ.K…Ð *ß½ÈM#<°X`X`Xð/BAQÔØØØbckSåÆ4,sŽkéÏòÀ£%×mb×Þýì_6ˆÊÁES·•ˆ4Ìû‘ùUh÷QSJ¡Ã 2³¦Çq­Š>â£j[ h±D‡²T ñÂCGp×{­‚ŒÑ(<°Õ¦ÞäZ?¾æ ²q“šüAÐÊY´s5Ðr²²ÉN ÄÇ³à›’Ø1n.JEÒ¹Wž…êÙ©´Z4R=·:Â¥O1R  ˜û“ŸÀÒöØ9Úbh¬M‘‚•K->YMôþ}ìÛ¹ŒIÃúСs?>nW+D4UÉJA ‰1÷ÜÞnj‹­c0}æÿL×c³Ù”^ò¸ ºDîºÙbíb‡•±Á;í&1Aþx‹fƒ­ÙðhL¼Ëà| FŒ×¤Hô>n8eÓœäÞ!¶Œ;®6j$¥ÐüÜ#&äihçùh»‘Ï!í‰fWj_:ƒwX/†ôjƒË±uœÓƒ¤±ÂÆÖ ‰@Ë«Ô:ôî-™°ö ´-¹P¥Ý¬Ùƒ;gô‡­ñqtÀÁüö­u¿p+¬uËú£ÉÜÂüSÝèØÈ {«2ô\´‚ÎÏaU‚ÙÜœžÊ‘Ý¿ãØ§;•þæè²wñ]»µT[6…6÷½¿™œýë7¶·§Í¨NÞ(¢±²ÁVÁ#‚&Á·‰¿§7;ùÿÞ ª±²±ÅÖÚ[[;ì¬Dðö#àôö§·ˆˆ%T;ýw" D•56Z5R݉Ú;…Öìà°ùë%µé~Í.AÐh´ˆ^ué3a&£ƒÜI=q…ÔÚ"A–‘½¼ ˆ=ÁÙkä~;!ŽkÁø)Åê­ æU)ȳ©@«÷pðÀ/ô/ëJÞ½ òÿ2F.àyŠ]j •ýð4( ²2¥4u ¡zˆ-Ör<)Æ—E2 *iÎI”â¹–MºZ29žöÀ  …‡^ß/Uk®E+ˆ ˆ’•JBD@@D%I‚ˆˆ’ˆ¢˜¨EPkŒ2ýúãÄ™+ÿÓZPFF&:ö&%%YVÌ ¥°Š×S~Ø9\t®L?¢¤ÁÚÖ5¾øúÛcëhÀ(?¾-t’™¼æ¤C'›R’ß—§j#FwJ>$#+*lìì°µ±Æ¶B3šU8˵D ÄÇV¢¬eå,6¤“dЧ+¦ìº·ø³Ï4Ò: [ÓìE€®_ª@ù2ÒýÕ‘ŸÅôN©þç$ZjŒ(Iˆø\C@²¿IJÚSð¹€?Ð¥$r¯Š?^* VZõSÊÔZk¬µ hÔê ¯¨±¶1g3A@ÕXÛZ£‘JãéåK))ãIaùè[Bv ¶j+¬ìœp«F]ïóÄd’ù™bi¼|\qrÏGo¸ÍŠ÷§“Ò®ÝZ–ÃAÑØØ`kkƒm%ÊWÎCgäþÚU©ÝññÄ¿ò ®$y9p›öâÀÖ9ôlß?+Søµq 6H¨í½ð ®Fˆíf6ìN%ÉêuûH„ôø†Ï«©‰9|÷~dÞh¢÷E½z85«`Ñìnø‰ÂssM…ômD´{ðóþ}ìÛµƒµs{áëSú~ÖQ”*Ûbçq…ø5ZkìÜ’DrR.z3³=öË·ä|‡ð›`Ä@)êÕ®@y›C쾬AC.™Îøè»?Ùµo»÷D=¶¥­M‡î§z—ð+§ãBÌQÇ…PÍ«Ïl‹=?` IDATæ"F|kTE6È5$ •¬ edQº@w—uè+~Ĥ®òéŒã÷ÓÃ+²‚­• Ûõ X¨Cµ F FÖú‹,›:—ÃÒ«Ì‹>ÄSxµŠ'*ƒEÔ )¨+ˆH‚€!îOúw¦ãúCؽ‰ßÆwÆ+!‰Äø;ÜКi¤€ÇèóÈpkư¹+Ùµo»öD}`‘Î6H¢õVÆÅãœÍ¸L@ÛÖ”âkƒ[FnñÝ­é·,#K…â©Ô¨tæx¢Öt(XQL5 å .ï_È” |uˆƒ{~ã‹·êaŸÿh¬¬Ð)ßQ€P†îÜJðêP4ITv Ã$HH’dê§`êoáóÅŠ‚)‹ŒÊsP?¢J…¤/~h0•S #¼ë\2_È”~a8=«n"J÷Ç[”T¨d¹ÐÁg ¹ç° X`X`Xðï¡M:­áÇ¥q€Lþõƒì»Rž2…j2Êæˆ‹"û¹Ã÷}¸¢ •”ÄŠ1ß!´7ðiå¼Å¶éSXuÛvÃÛSN%ÔkqšËq÷È2@zôNø•Æë~±Âmqp._õլاâ¹~!ž»¹~”æÇRœq*å þÔo}ŒóW“É1BêÞmœ(ã ¢ÄýÁ{õ´nm]eSÿŒiÜ‹#Ö®>Õ­ã5VŽžD”¶Þo‚d…”sY~!Áœ’ï»V‡à[’1ÃlHVŒè±# Š€ä|”«)À…ãœT±qrEÒíed«w™w8‰|¥ðÇÍ‘FLI…JA¥BE•bYñåP¾œ¾[òÃß­à@¹³3X¼_dô7°ïJ9õÄn™Ç'=—p'Ê–×`ãqK‰ÀåSœ" É&‚f-sáz"YFHÛ·þ¥ð¢>‘V³ó `ÔsíÐn.— ¢¢sµ7sø:pï&çî]'Ó£!ᵓH7\àN6èGsÂIƒØí·sðx.àÖž­œ©PæùëÐôY6”LÛ×+S1D…æÀO¬½p›—îr;'Ÿì½lŠÚË‘D@‚ý'í°u´A#‚ðmËä\\DŸÈœ£W’¹ytNž£T SŠMý1V­.Eõêµñuì)õþÜ›…Náö~vž.‡¿ ä“~q›u¢G3»¿µ²u×Ó¯ÅJª¯A'3}ˉY<“ÛDÚL|›` øP;âG/âF"{ˆÝ§|œIí'#´j„¿§7¾'·±Ïì}6¦¥réòiÊøàa”QÑS™Þ#ë÷×oÌÛz‰ìçjÓƒy|ÀÇM¯䇯ßÔ«O£v«ˆ:ägsåä~bkPÝË +ï l>.×96›lÙ 'é?,@k…½½Ãþ%l‹n^áŒ&ëN¯Ó5?‘ôóq$<Èü‚ <ý=‚é—P踄 ¦ZÙ‚€X`0LN_Ó}fg°²ƒ3.w£>j«Vm´¨AÀ•+1ôìõ!F£Ùì$à.ž ºø”{O’Os8jnÊ%NÑ£W9ãðú.®“(XáäV†À[8r¸{³‰·È÷ô@SDSPLÓŽÛYò×U FPâ¢Ùq®•Ęæ4m›À¹¸h.Ýò³÷”N®V¦ú©I±`Ùk¼ÛÝÿ±ëYPRjn­_Ïï3÷pdß9â²D$ÉÄM~yát ±Š ø…F _ü ±-šQÖ¦e*9}RÁ·² ®ÊMnïÝÄ‘tàìqNºPÆ¿4ÎÆ¢òO‘ ø½µiòGô[~ F¬(ÛæCf-Ѥó"Ð{”§|å²ø©@wö8gÒ’É-Ä&4p%/G÷qÙÝ“oæ´SVÙˆ\ʇÀ”-ìŽ!1GD%‰ÅÒ2?nÏÙýW¸—Ù†f!øeîãèî\ÏòŽ}Ò'W-’P #dzlÌtÔ­#p§XH*y=áaÊ\\&yiƒcaùl­Ç¡ZóÔ§Ð PTj4! u%#k§«R›öZñ©¤ÜI&ÑhDö  üÝ¥¬ßs‡tRwoåxÛ†„•4OŠ‚lã€cH=ªÛ€›KWÏ/™é TcÂý˜¾5†Låa9¯ÒZÓbÌ!¢V½ÉÙ¡´îþq’ª§h²\ËRñü4í5‚"sý@W:4¡*yÜ=µwBßä‡Ü®ìÜúŸ†—~n¥IÈNáöÕë\¨]ŸêêzcÑÿxXü…Ê2X`X`X`Á¿‰ºC×s³ÿ«„N°vhÀ—k&SÓcÙ4ûcƬ¹‡ˆÌ‰˜n õ uî­dø·s‰º˜Ãòó ¼”É•£éüÙOÜMÉ!xÐ ~êâóÛB<7ãO²'jÑ;¦a4ʸµÊìÑc)?ð3Þw š3~G8Væcê±ôåéçQ«¡S›Å¼;{{bê€F„¶%¸U>ÿº6g~#ÙYK9SÊ÷œ„_ïOèôMY´bòž†¨D¸u`7Ôç¸ôjdµ«?­ú~ADÖeêwà 0ÞŠãfêY¶mÚËŽ_#Ë2¥;Žç—άù&Sîf¢Ðnúºú5È9‰ì›×Ÿ¡ÞADæôW6åK®ŽeLëPÌÛ“>§v 䂯J‹Z|h{gÅû¼>õ4tjþ=fnâ½Ê…Œ@’ µJDTj šB©HsLãñk‰MÑÝj­Æïåëµ_ò~ÛúÔ“¬ìðåêÉT$“ë’V…8ToEͫטðj(ŸQ™îcFPÏlüÆQ¦Ï§týö™´`bT#T@½asˆ %TÔàäñ6³×Tò©×òUÆt e:Þ4ê6ˆÏëÙâÈ{ËçMfr—º úå|ìA3`û^íB“/21Љ¹BŸ‹Žêó¸(¾.NÛ«'ÓÈ&—€Q7Ø%”ØR¥YF|Ž#×ÈÛ?‰Ç „~8>U<Ñ^ù•v!¾mË¢ •¹¦q~"'—Ž¡ßœÃØUŽdÀÈ©t¬ Nþ¶„˜ÊµèS9Ð]Tž÷WexÇÎ4›Q©Æðõ ¨…B~ÖþZ¸ŒRƒWSîo­j…¸ƒ»8¯\d\ë0Æe´^•x½Ï`*Ý9Æ¡cw9þ3F£ŒSÃw˜ðÕ7ôNùŒQo„r3LJ^sæÓ´”=Û§²Å)y=Ã;Ï#_Y®Ä'˦[·ø“wx#4QÙÁ‹êýf1¿¶¾¯|ÇÈF¡$8קߨÁ´vzÄ<ïä«&¶ˆÇYíA»¼t{õ ² ËÁ ]ó÷“ˆ*Ôjóú’Ü(ãnź©Ý àD÷‡3¸iÙ`ÐIãØo3™ä«¿Ìràzg†~5„ÐÄÕ|1î{¶Ï†õóÙôá|ýVª_ÐiܲõFºÕŸI‡Y‡:t;ꇊ->•ú0ýWÀŸv¯ÜaÚˆ0B“ ëñCzÔÆé?* QDì)[¹=Þ½Åv¡|ƒ?-ú ¡]P0Ž¥Rˆ5‰vóï ²o7Þ(1Šçù¾ÿáÿ…ÇÜSðZBR«Q‰*e$± H…Z­2­ AB¥’@‘‘e?Ràç¡S, P!ìܹ—¡CÇ0yò(A0GNå«f*)fÀVž—RbçûáuÁÈfÁ=$R\'Q¹øÒî«èÓªû„ò>Dö̰FèÎ,aÈøŸ9t#—õ;æÓè³åŒûp>kG“ð ŒruFl˜GMc.gŽíCÛ|ŠéûýªR'4Œo:…2ÁLÛÝê: Ÿ=O¬ñ2{§ôcõw Ë2}~æ[ÛMÐt>‚ÈÄÜÍyã%¾iÆ×F­W=>AÕ»ûÔ|†Iʽú#>iŽo1‡S掯xc|™ùFÞl0‹ö31lØwì¬J(6x–KÊœ„¨ÒÉlb¸°’/&>Ð=7 ^Ê” w–ò:ÓSóPd™N³Ñ©´Ln†­•Æ$ìì1æ§±êíPæþá]22÷å³i­h¬L  Áð¿¸ñN[B'©qòlʗ˾&4.dÝaiPfMßføÇu±º´œë†KDMÿ€µ3McèßkK:…ؽáY:QÅ›óöR‹<íS÷j(ã·Ša|4u:µtçY:qÓÖ^Â%ü=ÆéCíRÓKò†Á¼>ñ0 2o4œM—ï÷2pÈbÞnNè×Vø„tä‹úSC¸‡ãõiŒy%”a8ÓäÃÑ jS¥(- j̓H¾Âúvç6KxwÚ kUh´ªûÈx};S&OfÕ± X¶€í½g0¾ÿtÞPTß–D”ã ûd5jG"¾ÜÀ¸&6Ÿ…œv‚á-M:ŸÄ[ Ñ‚ZNÍqMù‚oß åZ¶]§Î¢y€+ÒX;vâà_©_ï¤ò{ª6oÇ«w¢HM-M›‘#Hú5}šŽ!Püº1g~?j¹´åý³Ðp!ƒW1§]¶1'hØÀ¤$T®ö\ˆõf¨¤Bݹ-“§ðu‹P񢂿ÑÔ­ÏŽ)…«jµ Œ aÃf³»~g¼Ý7U1Î- ‰ ²cmšdú˜ž4 ðëâ$Óü€Ê·#ozÕã•ÐÉX9ÚQ¥Ijj©R·:‰GFñ~ƒP“\r¬GßÚ­ywÂ$}0š·"‡’(ïñÛÔÊd’ú$œ‹f÷™ ”{ï#óL7šFˆqôk2žl¼é>}6ÍüœQŸG³~#+GGáë˜ûº‡™'íqñõ €þ4 FÎc÷Á«¬ßq‘Ñ?Ô+5÷%ª B­ éa" "Þµ»ðÖ»‰|V Ÿû sc[~?qÛt8¶`.4fùW Ö·Vm@ ÚØDÒ2ôì<Ü(_·-ÕÕztxÓ¨7ÑcÒùR}JijQ)¯=ä·†Óöû{èhÅä= SW£Ö(…d±ˆÊÆ Ÿ Tü¹+‘¡àZ¶ Þ­yE#¢R!I¦û4Z-ê'èûª \u€7oïaÕ¨ TjiƒF ’$¢u •ZeŽ”QiTˆ‚™>]ÿ¾N˜´vÝ™·­ “w‘=«D>?´‰²G_’óH98“VaãAv¢bØûLš^5É\¸žs™eyããŠì¶Œœ&-éÐRdÑ+ñœØ›¦n2ýâÿM•äþþ ‚@ª{)\âï«Cùöö8þ–ÛõZ!(Ÿ¿X`X`ÿ[ÈÉÉá¯u[éÞ¥½ÉÈ{‹k×oÐ$¢!ùn+¢þi.ää<¨ÐæåíO_@þeüþc[å¹¶-zƒž„„¼½¼ÿñ¶ÄnžÄÆ/ÂÛ½Eã³=1ÿÎqÖ,š‰ªû/tð}¾¾>O?”§šÑ§mÏóÞ÷¨v)))xzz¾Tã%Ë2wîÜÁÇÇçå»ÏóŒØ›±øûù?÷:z±<êÙMNNîîîÿÜÜu F•5Ús é´Ë—YoGàé þ›O¸{7WW4 ;€ ýŠFÿŽP-\VÄÿ›Bµ1Ê2YY9‡“˜ø¿[÷÷qسg-µkUE³#XÆîȃx&SF‘à…ÞStO¤û[·náéé‰$IÿØz0ä§±m|'âºn§o¥gÞÁq‘ìÜÄà0«gL[ù°Žñ´ü¡¨ÜUŠ­¡{=­Nø¢çå§l@¯×™äÒíÝLÜv‹²u^¡SUç§ád^øÏ¾×2bz[Üd-6Zñ¡z”¦ûð¸(ó3¹wç,ë¦üEà„É4·/yÌÿ9ºû;óõo¯†ÿ$¿ø;}5’ué†Îscú´V…RÔ?_›boÆâééEjj j•µZýPÓÁ”™CLe0ŒΓ?m.rjj1m ücc_êI´¤€¶À ,°À ,°À ‹ÿ¬ Bx©Fâa$p3ÆÛjø9>ëóòIMO"õÎëÔõý7ûú´3*¼à9ž²/‚âþÆ3á_›¿Ówá™[$ü—­´'O‘ðÂú ü¿•—ï ÿB{„ÿ@[þ]$FÏfÈÛÍhѬa}cèÓ©/Àù[òëG×þ}ðþ£„b÷ÈŠ‚Ñ(óí·Ó-ÎßÇ`Äðo0 ÈæóERA?43ˆîŸöY ²áWÎô I¥çyÞYNéJ“:Òs¬…çæ%Ñù‹Ô=„¿ÁÅ„l~_´†/¼”ú†ð/ôÿïéÕÓàË,µrnåÇÁ‘D6‰ ~×%h\kÒæ©œ¿¦¾I’.Ì¥{Çw¶!Ñ#ÇE6puÙ`:öüš(7ŽêG¹ðR˜ðSÎÿ‹€ð·>+jìpu’Ðý­•—–ÐX`X`X`Ácö[:½þ¿®ÙƒEQ0 Èò?˜ Hq¡á€®Èèu:t³lCEÜ*6§ßLã3Ö‚ŒvôzþÚyÉ!ŠFYF0Ñô¼, µÁ´¾e£üÒÍÑ¿Æwž²l|)ÛU€—‰¾ž™•×ðAÌ ôàšÑ€N¯Çø÷Z( ¦zÍzâý릾v€™»…"~MÁ"E£ƒEóÿ ŠbrþÊF™¸[w™;ïW‹`y ¢÷fÕª´oß I%™RŠ ‘½Q¾rÑh`Å \P/[Ö?‘Ÿ¬5£,ÿ³kCÆÀ• ŸG¯QªÐÿ¯`dƒþ¿R÷´À‚ÿÿPÐx×eÀ÷‡ð@Ëx¦=º\7æîìV ÔÐéôË7X®Çèan‰A‡NoÙOý„Ú¯=ß|¥<Ç~Û‹Ø ,°À ,°À ,x$’ÿëÚ­  Ë2 ÷,“hÁ3ÓŽÑh´Ð`4ÜÜÜ—ª]²,£(ÊK7G²"¿”|GAAV^^~˜˜ø_¹>dEF‘•ÿ"^Q´æ¯Q6’–žŠ(H˜œ¼æ{ œºæ¿‚ >pú ¦×®‹¦×æÁ eƒAæÛo§¡Óé,‚å ˜8q‘‘ Ш%$•ÄýôΊŒ¢È È&Goá×Êǰ^Ÿýd~.INN¶ÄKY`Xð?nßøß’ƒ°X`X`XðH(²ò„Z¨/'ŒF#ñ÷âÿ+ÛnÁ£„{ ÚRSSQ©TØÛÛ¿TíÊÎÎ&/?W×—ª]:½ž”ädJ—.ýrñqnߺýRÒtìÍØÿÚµ–“›Kvv6înnÿE­~`ôŒÇÕÍ µJMqçðƒôÏjü¯ÿ[8ò—Bµ Fãÿ±÷ÞáUUÙÿÿëÜšÞ;)¤¡„B¡w Eѱ`Æ:ŽŽÝÑÏèŒÊ¨ƒ½W¬Ho‚  !$ôžÞ{¹¹ýœß÷BµÎèü¾÷ý<<À¹çì¾×Z{­½Ö"3+—uë¶Ù˜Ê@qI9ûö榛–¢T*Áêµ{±\Àç>³Šõ?XG}}=6° 6Ø`ƒ ÿO£¦¶æÿ©þÚrÛ`ƒ 6Ø`ƒ 6Ø`ƒ —…Eáø¿Qƒq²áÿÍ¢mάiI²æ£üýíïßc»$ñ÷Ú.uúOÍ÷ÿ\ìê\ç‚Ï5þ2h¾0OªÕø+Yö§ÉdfÕªwm‹ä'àïϼD¿Ѻ®.– øì$ù·¿Ù`ƒ ÿ‹çÌÿ…Ó˜ôÿð˜Úξÿë°€m°Ál°Ál°Á†ßéAõÒ¦gé?ZïÏ+C ƒü¬R:u?£~-ÍUåä—¶ÿŠíüïšî¥_m´J»¥ß´ïÒ`mÿ>Vóï§E¿‡~§mý}äï©UÒï´Wf:*8‘UÏï.Û©p©‡Â¹? ç %QÄl9|8½{“mÂÍO@[[«?û³Y´øõ€âuýƒ“ôÝc?>šÐ´W’‘U‘œÕ?‚êk9šRÁÀOâü¿n¯¥ß e”þ‡Ê–þ‹5J¿‹<ã‡ÿ@_CZj%}’ô?ÄÉEŒ]¥ܼ‘u[wr ¼ï—Q2I¤³p/߬ÛÌwû³i6 ¿Ò*14f°vͶŸLeÿÿVäA좼°Œª¦>Äÿàºô§Ù»s+ëÖ~Cz½ÉfþÂÚl°Ál°Áløï£3ƒO6e#¨í>ýFæGØ þ¤í®§ºZFDLJz(;v”ô‚:4f ¯øE\=!¹–üM[ÉèîÇ$åwNÆã²PŸsœ”ã¥ôHà>fóFã¥6P¶gÇëZÐ0ŽkŸ0TÉÚΩƒ]DÍÄ#EY{ § (¦Ï!ÊËz¯¶î0ë÷h¸æ^wúö|ljºV„h–Ý3 _M»×¢^PعuÅM$úX«é­âDÊ>jœçà¤Ï!-­Œ3xNXÈUqá8+û)ܶ“Œö~ ¢„"v)wN¾x˜YÓ@#¥ùf"'¡ÂL[a:))§h"”Kg2n˜óenwrj;£æÀaè!_ÛNvZ2]~s˜=Æë¼ï-Jj …Gê ˜Ž›Z`®bÏû©“Tö\qëlü/¢`é(Ë e Âp¦^=“˜Wdè)ýné ­hDz{§ã t‘¾z9’'×É,»a,ˆh;Ë9¼>‰J¹£ãf0#Î&êÓq,»„vF²`ù "\í1@îúÍdöë±\¿"÷Ÿ§ö¸°Ï¬í›˜¡d é»¶ CîDPÔdfÍ…3Zê³ÓIÏ*§C1œ‰¾z ÓB•lÞ̉. FÙxn¸kÊE×¶®»”Ck“¨ù5i:sâµsàè ÊZ (d —+Bgð§éjR6¤Bk@”±ðŽ+®©¯ˆíߦEf‡{@4 ÇýÀ>º4ÄÞvo8Dr”ŽžŒ[xñ^zZK3HNΧpˆgöÌ8zrÙ}ø$µ&äÈ*ŸÎmÓBQÉþ=uÁÜLÖ¾c4tr&ë¨döbÊÍ×í*@kmÍC&—!Ù¹?—éN­ä·º1iB @0·SÓŒÚ/˜ða.ÈàâóüK•f4‘²>‰ò>=fI dÎrÚâ˒ šÆbR÷½lêŠ#ìI* GnñÌLŒc˜ã¯AŒEÚKS9––G“ã8æÎ‰c„—´¦³q_!ÝZ3ˆ4W…+{J8˜¥`úÜì$íu§9ݪ$À¥™ÔÃÅt#b6:3fÞ|¦ŒôAõ3Z¥ï©§²R rÂ0”ƒûÍHun *?ü|œqÆ@ÖKÎ&ÂçÀhåèG[È—9àå7…%KFbgÇê¬dv¥UãÇÌ©“îúúEHzNâ‹uþŒŽ Dù¯P¸Äÿ…xï¼Ç¢††ê´JƒÝ`ˆ÷¯„Édæ•WÞù݉¯½öÚÏüñßUß}w5üåOÈdr¹I’¬¹ ¥ çF†X4ŒtTž"59—&IÂl°gÄŒ¹L‰Æ%ÉÄEe‘öRR6 BîËØøLŸà‡bpê©È¬Å92o7{Ë•€þ¾Ú˜…^ñŸz3‹G[Sz©LÛÀ†ú+‰©áè×û¨”0~ê ¦Fû §“üý)œ¬lA+ŠøN½ž%Ñ>(¬]È[û{ø4ÎÌ®µÉ4 GåäEô‚eÄy™éªÍ娮ãÔË$ÿhæOOöÑ& IDAT ÒCq¥…^r6:g.‚´qìãÍä ö¸ûLáškFawIo¤:§u ?¾^ŽÈè#oÓ·döh1‹ œ¸Œq燀7ÓßVLêŽ4ªE Ѥ&(f:S"%òRQÜ<”?'rÓ´8©Î£C­i|´%…£ ‘3n`f¨Œ¾¦BŽíN§V”0›ì™0Ù“½©N>Hfy3fŸ©ËXí‡RÖΩ-ûÈéÒ`dò¦ß¼ˆ‘ö`¬>Ä'ßaç5Œñ3 äÍeÕèí= r»¨œÝœÚ߈ù#q:ÓÛÚC|´³;ÏÆÍ\J|€‘Æü4’Ò-¸3nÖ\Fû¡RN_þv6ŒàªùcqäùçËÛ«ßLcI5&'/-²bÉΤ7µ£µÊÛ>€@'i«7‘'ªpt›Äõ7ŒÃ^×MiÆnöö£RXs˜ûŒfÖŒQ8VœäXv]’„Ùà„k®!Á·C÷S¡5!¡ táíÌV î·¾ºl§·8g1±ž€ØMyQ=zûF‡{\\ÎÖU°ÿ¨‘„ù£¬¼ê¢/“>ì㹄Pœå–ñÆÎBöîÎÇ·˜k¢,{ÑÜSÏ©“™ Ìdú(ߨPD[ˆß9Fäõ‰Œôn¤¦-›]¹=ƒó"ùŽãŠ©!hó38^\FôaêuWíkŒ~²¿ÙL–Öˆ¤ˆáÆñ;k(È-¦­â8ê)±ø9]ZFÌÜ—FYk}š ¦ß:“(Wû‹Œ‡„i ’äw¿d·ÙŸÉÃÿS©ìÅn*ŠêÑÚ2.BGÆ‘FÜ""‰pþeódª#ù»Tœ&, Èÿ甥§©¬ò.'^Ô€(0@ÅWkØZ.ág/â8áÇ\!²¥ ø-`ó¶Ál°Ál°Áþ»h=Î;Ïo£È¨G¯Õb0[½³t]x›'W~ÀÖ´zËåβr (n1# µùl©eFÚ‹ßã»S-ôi´ý‚§Öÿ€’¤šÒüt2ëDšÈÚú-)™]tT}þÌ2Úû%:O¬eÕþ2LÖ˜Ykyù•—ysSZQKÛ‰ïxû“#4H& z#¦!תÛJj6i,ŽM[Ùw¢’Ž‘öãkXu°Ò’±¯ì[¶åë14tµždç[»¨·ž•Úû2Ƃғ™ä4Š kàøš­Îë†ÎCìÍk£³O‡ÁÔNúº5ävŸ{Ж ýTþ€§V¾Ã7‡«sg©G¿£¸MÎ@éA>ß›JeŸé¢CÔ“³‘W^ÿ¯¬ËF3´\}7Ù;_ä½õû9”V‹é"‡ycÕaÖ|öÏ~p:­ -Eë¿!½I‡~@CWÎN^Ûvú/ cW6éG¾%¿U¶"…¯¿O¡T†ª/ù>³‚vHGºe^$ )ý%vè1hz)Kþ’÷ úÀÔNþá8V#ÃÐXÈž};9Ô´%q8íU]rúrwòþÞSt˜ ·ðMvfw 0Иò«Ž7þŒE|~Ÿ=üykÛ(Š ©%}ë·ä÷HH]Õ?¸‡­§z E»’9–ZN§É€N«G”©8ö&;2[éÕ1|ÇK» /ð€2ô•rlëÇ¤Ö •MÚËÎj ’\¨עÕ 4¥}Ì—GOq|ÝzÒjºÐhõè‹vñïõ…hè sÃ:Nu˜1õ·Q‘º‹Õ‡›榖0•mg{¡“¡ŸŽúìü`?m]4¦p´Ú ´‘¿wû÷WÑc0éuƒílHùO“+Й~!m1”±cS % ètè´ hõ˜$þâí¼±r'¥f#–žÖVò“v’Q–É÷û+Ïz`šê9’tŒ“eH€é¼yþ5 ÐMîgkI)í¤O«G¯/`ë·e`Ò‘½ý%ŽôÆ^ò“Þd{^ݧO°÷›”÷I`jäDf彿I–D©¯”};_o@êÎâã/öRÔÚV§Ç`*fûs/²£d:N°æ›“ôŸùXÔÐP|œÝßgŸ—ƾÃeô‹"æ¾r®ÝKjy÷Oòn•ôÝ”|—'ÿõ›Së¬4C@lÍçû/òÔëÛÈiì·Ú½´%»ùðƒxá³T:¬´»æÈËì.6cìk#ïà>/×ýTíÿ–O7dÐ"1蘮*‚\½½ò’ûê¿ÛÄÿ|æ™ ™L>äË:E‘ÆÆÒŽŸüÍÇö¾ûîcçδ´´ I=öØ$I¢¥¥…õë×ÿ.Ä£¶¶öí;ŒÙ, }fÜ/gÀ×P‘FòŽlZE:­ƒI¼ìú¹P&ÙC¦“”OH­•ahÈc÷Þï8ÔbÌY|»v%O¿µ‹’­¥æžl>}a Ùýýh´†0y£ÖLwk'Q‰>”ïû”´:†ºSìØû=©@GGóÊ©ê0!QÍ÷6p¼Z3('Ôe—sÝœ‹·±½ÐˆÙÐG[m:»><@»±“ÆÂ#¤Ö˜‘D §Ó“9–Yt–.YÇEWú=¸’ç?=F»•>Ô{™ÝEf }üšOKú.Øw ¶ä±{ÿøÛëÛÉk¶Òœö}|—ÓEo¿¡ãk×PØw#¢ãôIö}~ŒÉ„^«Eo4#Šf çñçÏÒ§;Ï?¯á(¯¯ÜaåUz ¢¥Ì–²,’Ö§ÑZ¦Á,GÑv’´¼2Nw˜„j’ßßHZ•¨#éÕõ ÓêÐj ˆ"J÷òÊëû¨’LuŒÖ1;+HÙöO¾²Žã•]ñÐlçwVòâ—'èÀŒ¾,‰U¯ì¥J2aÐC]6iI)œÖÈšsØòíAÒêËéËÝÀ7;×óéçi´Z…è äí‹Ô/v”qhÛKü핤Wu[dçŠÏØ“UEçy(Üõ2» Œ´=´fíà­ÔzD¥ Ѩg``A¢«ü0;÷l§ «ÂmI;YE·QN«Ãˆªv³=¯—þ=:m;_Þ@©nQÑq:…Õl éû£tˆ-œ°…ï¶àÄÉ"šµÔ¤ðþ†Tjô:N~ÙÝ èÐæíäå}¥xM¿—¿ðó‚äÉÊ0äL†LSÌŽM‡)¬ëĈò†1sO!ûÓÃXùʳ Gå®Ý?"ü³$ ÈLTVi0õœ¦µ£“Ž~9ÃÆLeÿ–m¿¹œqüøq~Ô»>>>ÜtÓMÌ™3__ßß¼íë7lgáÂY˜årÁbÐ8Kz„sþg¼ƒ%$Ñ—ØÓ¹ý¾¸µ6„ód’OîüäB/8æÆÒ7ÿÂ$c1k>ßKá‰:æ/ GP:à*“ƒIfáyÉ[¨ÿ/ß3èµi5Ÿ¢Ó7RwÒÿ©UdŸðäºWï'VŸÇ'«“)ʪgÆôHæß6… gì`×QÔÚϤáŽÈ…fNíóaÒÈ:æóÐÊ8Æ»€¾%Ïžü–œÞ™LŽYÄWF~òǪ[è†:ÿÉìœ-rýZršýou’¸ö «MT&­â¹o‹à©X겓QåDâu‰º§BsäV~` ãŠG¯g‚—…_4õ%NË!ª5ƒ ë눽ï:¢Ô áFØ„›XqïUçÈ¥ oÉÂAþœ‡Ë‚189ž«š¯9´•¶øGxó¶!Oõ€;#â—³âÞùgå•#³–O`˜¯ öhÙ}Ï÷ö1-\@®H`Å#3fPtÐSºqÞS¼¶ÔûˆB“RBiÄ|†÷¿^ì\ðDôöVúo©LÝ‹qîS¼v­Ï |RžTI»ÊŠ'ï ˆÞ|!‰ÚÊfÄ 0dÕ{ùâXañWUm7h”8+o«.í©¦°ÃI¡B®Jd òA)žËŸâ¶Ay;Ÿî¹x³øÝ¯²ÔJ¿â§Ñ´í6¢æþ‰¨¹–âʶ) ÊŽq¡.”Ø¿bWOâÍÝ2‰OM´þêùâê¿‘Õ}+#ý¬‹Ü·ðQðÕ§óUÎTŠQ T©Q*íPÑÍñMHέ¥ÏìÏ•ÜÅÌ@ù[“hmícÕ?Љš5Çn7–.ƒTŠ; ,¼?eýiÊË{‰œ=†öÔoÙ¼;“vFqõŸ®gFDû“t¸›w±/3„ën—,Æz™ Zöó‡5Ì¾Æ ÿQs˜å’Ææò›yÀ÷4åù1Î%ÐN©·ˆÝ›vQÝ(ú2ïŽÛ™;¼ïˆÊ¿eO¦¨bîÝÏ0+@¤éÈǼ“ÔˆR¦ÂmX<7Ý» 4å$±~Ó1:Jdžc¹bÉbCûIY³‰#¥hÌ,yä> Ù´OÉHû lˈcÅ?¯Â Ѩ§p•»1vÁŒ]`ö’ÍvÝrTíuHã®àÑ«bQqˆ»î.¥CïCÖµŒúèsn º6²üºƒT-Ifƒt†KõS›•FæÐý H‚¯›Ï„üáÌ»1Žlß)¦ÚÂŽ fÁŽy÷<Ít·<6ÿs=¹·W½Å„Ø\ÙÈÆO’h†3eѵ,M”s"µc×Q²òU$\?†æ*#öM)¤W™vÏ“¸ï[ÅŽ{Þý7=µTZÍÇÉ-(öDÎàÆÛ¦£*+¤øønN dÑ­›‰Ÿ}“ÃTÈhfÿ§ëI¯kCG"÷¾°ˆàÞlÖïS3Òq=ÛŽËpp÷åÊ;ï'Ö®ì½_³áD' Á™QÓsã«g³ @I=¾LE‘0—)£¼P_’+´sèÝ78Ô7†©óâ4ëô­wÑXRL{kÙU2Æ_}×M÷¡è£Mœê/¡ò•'H »–¿ßíÉ®Uë)5€Úy.~|:î(T mKå½ç¼`9·LñÂ+~¢˜ß™Á'¯o§^®Bîèǘ‹¹nJ rl¸¼¤oƒ 6Ø`ƒ 6Ø`ƒ 6Øð_C=û¶åјûO<ö(O>³’#Ý !¨]›q=7ωÂAoõ¨ta¸Ÿ.ÔQaJˆ] ‘ø»š,7Ù£&_tšÊËUk0~r€fjå>x˜Ñµâa/·”ǤŠ:jD‹×Œë˜EÜ»</£åÿ}=…¤ìL#kçË<öЃ¬újU«!B›ËA“Žn&tMAx9 ¯·“ˆ/«¡Z’ À¢h0ô¶ÐàM”+`n£ºµŽ"·Q„+Ýðóó³†ám Z€Ÿ·#ꀱŒ÷Öqê«gyü‘x=ÿ(s]Î˨°'pÊ ÜqU4N:3ÐGOAïcQ@º‡3¶×„¦W ¦Óìýb3éuLVM²sÔ•Üyët|ÌV… a€ê´µbwßùgf„Û!)ÑMÞ÷ß±ïH9=’寘Ȣ[2ÊÅ"à΂Þ@ý£òÈcOð÷Õ]Ürß\ë<ž†¾^¢6g×áŒÖÈ0õ–QÙ‚·£Ü2†‘“˜\VOTK}}4ÁÎf"'0¶¸„S?šöx(Ü QûàÚXLi§;¸ZŒ~c™ÐÔG§¾’ªÚQº,J³Ñ“™TTyùµsQœßgÙ%Ö¶ ÷a$. éÞ¿òð#/p¨Ñ‹«®ˆÈeeìzç)î}èAVí.Å@7]-N8ÚY T޳XìSFy÷к͘Œú:Ý,ã†/Q¡¾Ðhõö°L¨&ãÈc™6Ž¥/ÜBÿ+OòØ£óÔKUÜpßB|d¾Ì~p6'ï{ˆ‡}‚(øÃòÄŸaüµ*,Æ_ÑõvÐì3†HO޾ã/´Ó„ö~X¢¦[ÚÙwìy8ÎåŠ1þ¨©EK®Æ¡í¯>ô<ö(>òWþúÆ!ÚºÒÙ{4„†<ÆÇák2^2?šÈÏ™ç_ËË Š 3ëÙòì=üy}1àÆ„I€„Ï´‡Yú8mIE¾ài*•8xû uÈý«¾"¹F"`˜?¾~Ž¿®Ïƒ^‹A”¡ì)âHc0‹ŒÇ{Pcä@ô_þ@è±ST"\F‘$ ÈÎüÚÂi{ÑÉá']®TÎ Ÿ~=ËçÆQfn$d$^¿„©¡^(MÒ`V_õðéÜpûB–z%©‘ÆÚh‚T–t ˈò"²ÚŠÉ؛¡oþÁ#>È[ÛŽÑl²Ó~[ÈFÚZ“ÙüÞVºBfÐDZãIíê¢vÛì:х稦Œ„Ü#Å´þƒ­þ›Pì§¡ºŠêº&ê “SчÒ3œáÎZr *Ù²=é7Ñ–––mü ZZZ~s)iïÞdúûE¤‹„~ê•=Ä0,“ÕslÓKÜõÈC¬\ŸB­æ*:G&i¥Ñga]t·EXø©ÒƒµŽ­t2ïÑ̾qýÝPˆÐAòî|š ¾áÙÇåÑÇŸb_‹µI¢MMû=c%öÐÛŽ'€Ú›p¹ êÆFzìC‰ôq¶Ò‡ÊFá«¶„€n<ÈZ×âÔ@@œ•·˜èë¤Íg4žJœý#p,ÙËO=ÅnS³ÿ0í¼4ªi\Û<†«X$Íë¢ R[Ês LjÒjšÑÒx2™ÛNÐ$ž¡9‘L»~ S†{¢°æeÆo¼ÈXý=ºƒ€?Él]k×íô„Š2ßã/=Â??ÚBn×Ù6åϘ9&çs,§Ù»5›ÚSñÄ£ðô ¯’Þ{f¢ÛÈ;ò6~ìžût…=€k¾.Vã{-厄ûÚ#L¦¬zä}ìo|Yd±ˆ¤­™”y“Ç~˜çßþ‚­…Ê\‚˜¸øæ @e¼˜ç¸„CÄ\n½}ì·ŒÆb’¶fRvì-äaž{ë3 ôJ"§&0Ú¯“OÿüWyè3tþ£Iˆ ƒšý¬;¥!zéc,šŽZm“Úb>+o›/IÛd®ÁLZr s£üQš$ ‰¦úáxŸ#o×QMíw\¬7Âã™éRJÅPÆÆC)+ÃmÜD G¢-«åÏ}W“*0¾Ïz}šj(óŠaœ÷yüÆ0qr$æŸPÓã‚J& tè gÇjú½ˆ™¿€+ãå$oM£VgÂc˜?ŽŒ7ž0ŸÒß>J&Ú2¾&µ ¬èm¯$/»ŠÊ‚­lÛt"gëršMÉǨj¬&kÝKl/vbxT*Èp5fñÁ#É(c#ñ’K(¼ˆš7‘Þ÷’×VMQ}(³=ÑéL`ïIø¸x¦ÏžÏU‘¶/¢µµ’c«_`Gµ?#ÆN`¢ºŒW¿H§þc™6c3Æág8Å'i-*¿gËê=h‚g0uœ]•Uœn)áäú£4ÀĹó¹"NdïÆt:ºJÙ÷Þ³ìéËøq–ô—šccý~RÊ«p‰¼šå,½x7ÿxðh£çO'ÒÅ@W‹ NgU÷™,ò*¥L3ä’Œ`9_ÔŸ³Ÿ‡ü¤3`2ÐjM ¯!ù£°³1”ÑccˆVóÊ—™ô©Ý „{Øhb#q8Á¶·7ŸåÏéû8ZUKÅî÷Ùr¼·ˆ±Ûµpô“õd‹aŒwªå­¼K®Ó8Æ …¬úúr5.ã™>ksã"Qöœä듽8{¸ãê€ð¢MäËát÷i2>ZERµ¡ã¦>°‹ç¾+‡¾Rö¼ûöMdbô(†i²ysc)&µ>a±Ì˜=‡ù1Þ4Öœb_Av r ŽC_oåhY'úK ~é†yø‰/¨–È´ÄDæÆûÒ–ŸEJZ1•زû$:ÿ™Ì 1r`ßaŽ7jñŽðÇ%,’ñcb‰‹Ö±ïég9.%:z,nMëyþh3  rƤk1}¤7úì/yü…ÙWm<;äGŸ»Œú<6?û:eS™†«©žô´ŒØðC°yÛ`ƒ 6Ø`ƒ 6Ø`ƒ ÿE4Ñ\;š©÷Í%ÒlFßp„ÍÏìgÄ{óñ0ëÑLHC<í,7„È|{#³¸v¸+åŠlÌ¢Õ wÂ¥§÷¼Ð;:‚€’ÍßR© âÚ‰Qh•gËÁ׎~4ÒÙ/ô:’ D@Ä ïC¯‹gîõW2¼«ŠÜù|·9’»n…ùäQä!‘ÒLæÐ¢Ž¸vôÑηˆõO&ø×çˆ Í´¶:ãîA_-¹«·Ðè4ŽëF‡Xrrbçsup;e{R0>Œ)ç)ëE=Z½ I!“‚h5¢Øá¨1`Ô  UÆñàÛÿ@=ÊÕ"DÑê«gè/gχó•&†¢o47·Ò®ÌÃ=ìvæ<ú8ñ’¾²!hÁÚo °CªßA{Är®ÕÀ÷o|ÆáÙ÷°œso| 2ó`û´FŒ:¢ÂJÔ'\:zé“äÈ1 _gg‡SG™ ¹ìÌs%*„~F9(=¥ìqê@k™ÂŒùL!JG\º{èûÉëøü> ]Û[žM&ü݉»2PNº™©º}ìÌLcø¢?0 w&ÜvŽSZÑ«k8òõföÜÆ5ÏGóÉó²G0#(Dz:½¸÷«¬ïXf,ÈcÕÍw¢p“Ñß$0já˜7ض¶}ÞOä  õpDŸ¿‹æ ù,;@òª7HJ¼‹»pÆÜ¼ÝØÌõ<ÅÎMû9uå\Å/ËÒ%™rÙüüQ†?ü†>5Qsð{rËU$Ü?·ÁvÖ°îc=±M"ÐñWPOˆfLöÁLLK¨·#2ÑŒÙ5§þ£4øŽ#ìü÷ÍFÄÓÓÁyþµ $áP”õaê<ÈŸï}åÕóÎ’pdÎÃY´t /|Ì“oû#£¸þÉ'ˆkì"Í|.‹á¯¼žø»_—<Ë„~ }žþx8ËÏó¨pÀ­·>ÁïßÊQëNsôó­dòDíDÔ¬+˜7)è§ç6ëÑÌCø€õo½£Y<ÏûÐ 1â 2ò3ô@†Li‡C×iÚ+¦0ÿº9v“z($§ nX‚ÝoÉÁ¤¡¥¶Z‡Ùüå¾+ñ7‡0°j¥{÷SÞhGĬEÜtõ(Ô&ŽeUýJмKåÿ½Üëg 2rr™ ìÜð6Žè1þ cß”R[ø› çÎ;ñññ9çYOOÅÅÅäççÓÛk Ëĉquu=ç]rrrˆ‰‰ùÍú`0Ø¿?…eË®B.¬ñ@ÏÍŽ<·}Ü2¢\PÕIºöë!C@Ôç²õÅT†?ò¬•·H¨½F¸HOAæi 3|ñºbô<ögè†aÈ%9 Ùú RãÐÑL®Œ¹úNžHT1\~!Í9Ÿ~›¸«B;©øn?EÑw1)t1Ï¿1ƒ' ö9»_ ¦SÞMʼnRRÖÅï/Óñ=‡?Çæ}¾/^3­ÑÌxx‘z½UÇÙò¯"^™Ipôî~1Œ.E'¥GòIÙìƒÏ]S,Æzú8ºr-Ú˜%Ds¹ñÍ¿Q­Ñc’ ÙÿÜ;y+MçDæ,[HX_µlÿà$AM´¬ƒƒYÌÁ|Qz¡=Kk%©î¶‰Ì~zá}Ôæ³í½|ÿl@clcج¥ÈO}ÁžŠ ®TΦ2i_ïìÁoÏ6Jm”ÖñÈ ö¼ñì•ø ÊÛ—ß–6ž‘‰åróyòv}æ±ÜþÄ Þ¸ånÖ9 ˆ&™£ˆVž]oEGÊiÔ亞€„{þ„Gu;uÉ«×sÀï/\íaå]õl¾s=^wü“±òsO&¹#cFÒtª’ýI…x9¨Qi[ÉËÜÏ÷]¸†zã ¯&õd%q7$²xr ž[Xü‡ë𣓞q+©èT2¬QÉÄ›ÝÉÞ[Bd˜›ýeMîàžópp¢òé“ä‡ù¢u#vö \ëÝ-¨ª?ã‘{¦²äÁ{ùã”áÈʾÁ,wÅ;tÞ ·òò§óYrÕÝ„t'“¡—c¯tÁÜPBÊþbtÚNIÎÔÇÏâçßÀUávРaÍ3•hH @AÉÛ¨’‰ôv÷!J9ÇvÐí1{î» _FÒÓ‘Žƒ¦‘“éIjÔá6Ì{}©§š™wåXäÞ£™~õõLs$Ó%dî>òWÐjÉ ³|Q•}O›ƒ+®œHíº×9Ô¸?™ãùãÊ‘¼öð}ìT‰H2 MŸ?v„A"%¸3úœý|iÆ&÷A›˜?Lµ}¬{¾“ˆ¿:ŽížÜ°` ©Ÿ“¡œÉƒgøó+ßS˜R‚Á=ˆ1£¯áæ«G¢ÖBéJÂ70K¡`ýUÄ,½ŽØú~6¼XŽ xzšÉs 2-="žNõ0q8!Qq8xÌb~b?åGO¡ê+c±SW\Ï51žÐÆÞ¿ ø}ì|£™¹øâ /»ŸƒßTbb$.Š^²6O»ÐG™Æ{WÜ2ì%#cYñÊ3ÈBq¸`òÕÝo£YvwÜâJxL¸å²®¹  TJØy2<6šk–ÌÆÝèAο²ék“4;¿ï=˜wýrFÛäá×£¸ùËëItÐ:ni Óï`*§0¦ÝF\G å9¤¬ýˆÊqs¸mÉœÜéck)i“¹ÿýEŒDCiÊV6dI¶Ð?6° 6Ø`ƒ 6Ø`ƒ 6Øð_„ 3aL›;Ÿh@ì öðäÌÇÏáRÇs-YŸ~Lª>ŠÅ·LÁ‡"Œz ¹Õû¶¿•†áø^öØFÊ÷¬eoŽ3Hyi:9N2k9ÆVÃ|™s ÷6É,ÇÑ}< ¦LÇŸDXÇ’l…©Ú„ƒj½Å™2õm4„ù±pÐQÌg·¬FvçÃÜg9òööö2ÐêÂÈ3ýÕ‘·î 5cÁ]3 w‘ *ý¢gàˆ{§q´òn¦\6'•ˆhÄ3¡{hórd˜“ nŒL¸¼‚[éÊ¢§Þ!N+ ÛÉ?‘A^ß8âÇEè*?gd/8fváý=Ñ,}>c•&Æóbýš÷ÈH|†xÇsÛ'‰ «¡©—wü]Õ(ôrä2kBC aþ\!3cBe=ÄJH=Ý´…ùáe2a4+­ÏèW‚Ù×çÚ. È­}ï¤%ÀÑv¢A‰âŒ†³§ÆÐaü:A?ͬíúCq(ÃH]ÅLV<;?i,öl!ïÈ.ª#¯exè8C pàïTt›ñýîrC«NÀ^›Ê‹ï9ª:wG(]™vûݸOhB’·s<¹­½ç ²¼7m5Ù~£¹%jŽú,ÞÜ5œùÿw“=äL óâó·Þcä\ޤ%rçk³Na¾¾8ð5EÑ÷0ZõsÇ Õ\‡úÞ‡¸>ÆapžÒ·³cw7±÷ÿ‘É~ŠÁuÓuèr¦ópxÀ¯c„“Ì‚™4g!}í‡_üëP-.'@6dÍÊÕÈ$ äCŒrr$é?¥T’pˆgF …K¨3ß<±‡Â%2Fp ‹ÂmЛMnçNxÌ|Âc ÄÄxc~=›²ô Æ,{é°÷?‚€\”||ñ­N¡ªyÑœ5Þ;© öc‰YÄ,WžU&Éär9‚Ù„AéIøÔe,¾¶¾UŒƒ'ŽÊÿ.‹‘LÍ*ë53&M/]¡¾¸”¸ı q:^LƱíc²šKi“Búmc@#˜Í˜L*‘Z$wÄCR£-."Ç5ˆ™¾®–¿è"‚ð“Þ½0ÿ¯pÑÍ*w\í‘K`0Ë(-)þMÇÒÑñ쎨­­eóæÍ<þøã—|?''‡ñãÏI¦Àøñã¹ï¾ûøè£~³~¤¦e°dÉ 2iˆñW@’8×, ¡ÀÙoñ~#×’×ÈÔ¶Ògëe ge’[bÜèÎ1YÖ"zU ú¸]DA/& ú f\½ˆx9@(§w½FnÏÔ—9{“úr3¢Yi¥±zìpuµÒ®>ެz‡S^3øÃ’¼T2@Gq¶Š¸܆ԗËê»6àpßÃ\í0د0b¦…áÞó2;êNÒØ3×ËË FñLÿ̘5½t…úà8F2.ð,¾ôŽQ2,v6Ã0cþ~:G*ï"~B1Sƒ¬ßʰs &v^0¡†¯Ø_PM»a:¾ª!üyT8ÎHQf ‚™3çè[½izf;ú™Ìr΄yÃêYÍ¡º::SðVöqìõ÷8éšÈu×Äâ£gÂgX/=EÑúåÿQÕ?•:Š9Sg ´ú9°eÓ*Ì™(ÿY¬ ¹2Š9Sg´º°ý«µl9‡L>Ÿå7ÎÆyi(^m¤ðx.S>ÃkÚè7)Põ¥òæç},]4× .6\\‚¿Ø\šLŠóäm_âAä²<XNÚÆ4Ö$s&ц¡1Ÿœº<<Ÿ³†ÇVá9ïH-¦£V3€TÔ³~Åët-»Ÿ?Íö¾0ú…hBB™ÍÀÉÃdôÄÐO»WÓ¯ &v¬En¼Ý“0o{è1! "&QÁQ;ÙUušŽÚh&ÜÁÉ»© ŽÇèqˆ -8Z.Ì9xà­12ÐßÇ€K$Áž–X;2ÑŒäÀÔ\Ö5ÞÀ2 _@ptô'îŠDöoõfâ¿ÝhÛ"C%ÖrhÃARËH¼õ.BɆ̀Á€Ñu$!žÖ´ ;<&ÄÖƒüûñ]8Ý|+Ü{i8KzA3um}´M°ð+ƒ“YBÐôÓëÍÜÄpÆ„»ƒIâ¦?ù3Ú)‹µî£înÇKl,C}69%x'¾ÀHêØr`§1 Y6s$úãöÊf—İtÁrîõ˜H§ ”ý©¼ò‰¡p^$n‘¸ýÐ~E$—(B=ÌHÈ,ý– €ˆÉ`D4Ñ£a@'G8â,6+éïì¢×)„0OG‹¼a6#¹úà®6JÜ}‚ðV‚¨°ÃS!Ñ߸—þï žËïa¡K;%ù…”õkD³³Ù˜iúѸ"ØGi™Ï@ü[ÒiÁ<ÆêHŒJ<-µ…[Ùô^>Ãoþ3רW“r¬×ô8ˆfŒ8}‰ý5Œ©+nçTê[|°'ß½ŸèÁ}H¢Ú / e8*U¨eMˆfƒºé÷›@¤‹å;•g Þu§i† ¡omy{ø`C as¯åÆÉÁ?^ö—DLÅ –KD—‰`ù°…€¶Ál°Ál°Áþ‹˜Ä¤©[ùúð€å@ÒWEIngôyrGìP©­9ŠêHzÿ}ŽƲìÑkë%cˆ›vˆÜrÀx2‰ãá!z÷£ªlçäæÕlËvbáÓ"!H „1~R6•í–ƒQÎ!Žú,È3ªìËípB†‡{ žÃ¿eg€®ænÚ\ñ ¼vOœ=ð`8ãâ3(mÑ[ŒÙ92ŒdБ̿îX‹ÇS+Y1'xPùÙÑÚL­<±.Mùâc’šƒYüÄMLðS#zŽmáHË™ WMTdzáîv±ž#Îj”j{ä8j@r)¤ ¾€,… µ‹js6<¸’­…ÝC¼p@æd‡B®Æ .›L||<“¦Æ362” ÀHF¹vpð÷ùpý Z¤!Š;'{ 5ŽÎJp“!žØKF=€‚_¨9!"wiIßÊëÿüž< …gM%œúÀ!‘)“2)oÓZÆÙ9ìKqÄMù–U–2;rq*| ãœüñuâ@×NiG%^“Iˆl¢[ª±x†—eî¦ÂEžÈ”iIœ:m1Šë²’86Ü¢Lø©šÏóûLüyk»šâzÜ}ºéN=F‘œpÐI´6(±ëËáxn1Õ"@-…v8¸È‘p$,f qhîF1w !Hè«wó¯ûÖ[ÃUËP¹†;5±^&ú{›ð3ÂêSÃŽõ&Ââ÷—Z†pêY§-Mv’Q›nF 6¡;¶ŸSÎxÛI4š‘ýLã¯Ø¼Ÿ•ÜŠßßWrûô@k[z)MúНvö3í™™ál5@%¿T{ÅD‚Ü-#¡ÈQªÎóªRLå‹«xfùFš‡x…ïÜH£!¯€†3ï¶TQ¤íFtt:›·vpží…¼«BÏQ^Y—gñB³F\Œ?zgõ "LM€ÕsßÜAÁÉ$6ëTxD⌨ýâœgç(ÎLjûÚi£¹n‰™oÖìåô Û_=knx‘޹S õöÀ=3…‚ÁBL4TåQçå…§ÌïÐhâ'-çå¿ÅPºqßäµÿô†ÉqtP£TŸ mUíªP©Ô88YGgö¡…N;ËdòXb¾%£Ñ²OšJÒ( ÏDOG$×=n´ÐÝ–z-£=v¿±ñ $•;»~´©[Èþ&J”ýÈæÌdfgU]:íä€R.üй… ÿ-\þ=‹#°‚ A¬ù€EÌ’ˆÙ,RTTô›gkk+z½ž 6rYã/@LL µµµ<¿êª«~Ó~ìÛw³ÙŒ(J–Ë(’t‰y³>é.¥0û('5­TU™1)p¼‘8O&±G§Wþ#’)Ñ­”tÕÒëãsö¢‰ƒ*¥ÎöÀx&ÏÜú}–ß´§)8톻+è[òÉ2Î%Þ ݼð ?B¹èk °¿™?¨aÛKï’ë?—å, ÂÕ*{ ç`ï\‚-¹MûXùÇíøÿ}%·N °„;0íà`ú†Ž:}¯vö¡pŽv(äv8É&›°Œ9ÍE©„…áM?E{>çÕUÛ©0 ogo鯣 r ëðzR:Δß@E¦îî`®ýŽçï~ゾÆS;ØßÐOkM/&ÜTçñç Ÿ4ÇxåÎ՜ԛ€8b6ñUªÉREO e žxªºiÊÞÍ¡.€šªû鑼ñW6²kÕ{œòœÉM½‚®rË|Åš2k35%dVExÌ&6äZëÚ›©kwÅåÌQ9`§VcïàõgæD! zyáÙv’vs0ã&3%!øI!8©ä¢ ³x9Š×GYz 5˜=×Õ"'ÕçP’ßL/ pSÑ‘kF¯2aÀ•qñ$$Ä¡IÙzþTbºÏÛÏ–¹’ìP*ípt¶·D=‘̘ųÆNéòj‡½ÍPþ¬@1œa&&Q<[·$Z£öKH¢Õ;]’%0jš¨TLåöˆM˜ˆ—©ŽF䀈¹©›Þ.`‡R1ûüìu˜UU×Àçvßéa†afˆ¡D$DE$D} D¥ìB@PP¤ E)‘EP$”îbznwœóýq‡ÛWüÞó{ž.÷ž³cí½×^k¯µI;6—5?»ceßµ-MëÓH@¼ ’ÂíqâHhÅmêQ¯n%t‘BJPÆ®-QhÐp€™ÏböæÓø.ó˜ÆQ¥Y n½o(ýî¯ÄºÞwñȯ±+ͨ΄”bõϽó’’¢)åIûé]Œ³ïÝÀî6MhT&§ŽÜ¥¼ÐñÆï˦ï‹x°Óud¦šùÍÚ¿ @U­*5·n`7€ÒŒI¯AÁ%e‘®¦äþo#GËÈÈÈÈÈÈÈÈÈÈüW· m^ϱA·Ó~´º÷NÃu€ä:Íšžæ¥Ïcžª=ùÓ¿C&?þ¸ˆ¯.fù²qàw“Þ}oÂÖ^p›×…×QŸ§—7ûE£¸TpŒ-æñå–«7}ŒÂï"é–çѧ Ï ûg(uפ÷çÍ1jbÖ°Ó_>Åý¶à (èrÏçÜÿúÇtîuãž¹–¥‰ä4éÂc/ÞJÜÑEœ2hU%Ðøé§Øþà³Ü9²»«/hŽ^ gÖÍb齬xúg¦Ka” ´p(7¸Ž ºîqéԾ߸€…{DV¬™‚àwQ®ëLhhgÚ“Ýn"ˆ®ë=Ÿç+]\cÑ_Êæ1èダÀÁ¼»yâÙ‡¨wt4¯7oEn$“[žLƒªFð•rè§½„¡˜±B€‚%Osÿ;›pyîêö)÷ŽšËªžµ1…üøaÀKá‘CMÎ! ‚@`Û4žzk;Žûù¾Í$nµŒg'ÝÁSÞÂ\=hTÕ¸wÚXáåpÉ)ì±à*5oC­#“y놖+ÐnðS4¬d"ùÉÇÙúÈËtU€ÍU“¾_4G‡ž›^Ȉ[o¦½I…VÕ’ç—4B¥tsý͵y³MKF©R¨Ûñ~µ)G]©0r"ƒZçL ÝƽHy«–jÞfóݹ5ì#àhÈó+›ÿ9¾¼ÎF®á©aã96øÙž<†[3dôÚÉË­ÚðºÑHVƒ;èý|'Ê™ö²~ñ;¼6à(aÁMö£y±F†cŸóŸçæPh³‘Þy$ãzUCDԛϾŸKcí` »¾EŸw7’Ó˜.>Ë®3"{gO`“¡ Õ®^–j¹!OOîÉà!wrK4„.O×IãicURcøO ¼µ-S,ZÓ›óÐëÏSýk‰ÜµŸòÕþƒ¬¼)buj5n»¿éßÏeñZ;kvÌGpamþ(/ ½åü7Ø’ÑŠ!U2ÿð½Ã—¡T£:1Áw}„R§I$ΡßÌIt0—'¢Kû±*$º$ªÜõ,ïÝ‘ˆyÏDžjq~ƒ€OW;ûö£c£˜qø²~±’§[þÜizku*íîÏ]$R »Þy7vAI ãó—݃®´G)[Gw`z$Á¯¡fç> h[óOGM ¸Ø9ÿ=&M\Ê¡°…½†p}•T2jc,£xñž[qzEˆ:¹îÑY¼s{6C&OŒÜÇÓ7¶c˜Q¨ˆ#»Í£ŒX=óâÚº]|Ï»<÷òSœéÿýo®‚å7]/›Ç· å¹Ù1×ΞS½xrh•.gôÛY´ÕŽðåDZý˜çºÕ@µa4¿½œÜÂÝnžÆ]o¬æáå•ÛÛÒÖ¢'.©OÏ©…–Šth€Éýš1±4‘:¤_·Iþ‡WD)ÄëK RýÛéÜ~,#š·ÁM2 î~”­Û™êä™·_¦í47&¥›å.:+þI¯uÌ#F£D…(‘ˆH$*!‰ÑH˜}ÿpð=÷Üó»³råJz÷î}Ñg™™™ÿh=ΜÉçø‰ÓT¯V IA¡<×öçû¡l£ž’í‹y£ÿ0Bi-ú3¨Eã‹R(_öŽKu’¸ : E—Õy­UKF¨Rhpûƒ ì@xÿ|†½=ƒ5»],\=›_\ÄÐÞåø }¸õÝ0ÑPÝ'§©àøOß¼qHìjœz4nòoߨ’WåhÜã·Ný³Y³y)Û‹WóÕbÀCöÃï30•imu|ß§ŸAЏiúÂJZi 8æà³Íi]Gz¥V<$s&wz„oëÄSt‡°Pã)o"ÂA^uSn¯»•iã{Òrœ‘œ†•qØ¡•Bøü!¢gšˆ!|¾(B…ÎtNëÀ7ŒÕ¨!½vÊiÌÔiVƒ3ß kË™$èÂØ4é[o÷¿x/o?3‚Îï—"ªÂø³á“ç…2}æj‘Ü"%ûV³dÝ÷$Þ=‘jdÐuà}ä˜Á}m^#Š£ÍÀ׸©r2Ús׳óñú½T¸k4ïÜ_‰Ë=}¡KÆsL†„È>f½4¥ëñåÊýŒ~¿2®`ô¼W áóÅ¢«E1ŒÏ"‚Šì†èÜ~âùõ¹g?zݚȂ7Ï>›–CŠà?Û†Ò:œÂP£ËìHCgÚ·›Fr¢ÄìÆd¤ˆI“Œ|3þî>|#*{52CÕyì>øI:NpâuÖäñ…m1³¯ÿ¼ÃYŒñ…SHÍ©EvQon¼)Žò™ h¬MhW!ˆ'Fpr|×>t7.p_Œ)½. ÓkP9£"‡OæË7¿¦Rcp0D$&Ï*-!"Qé|ÅMxvZ7žè{ ´@è^^ÑqåíeõÇ'¹eæ;ÔÔÆ‘dý#‡>RÚ2à?ßpËv$À¯H¡þíCÐáå§Ï¾bŸ;‹Î}«ðÃk‹ñÝØ†N7)™ûÐRʽz/7f' ááÿKENdeIöäTŠ Î ý ÙLܰ×9ÓôIvýËÈÈÈÈÈÈÈÈüoáóùX¸t÷Ý}'¹¹§9zü7µnA0!iÁ‡¨?˜ >ß9Z‘^ã/QD¬ì,„¿të pã  ÐbM²Æ6eR¿ÇŽË/¡@D¡5bÖkú]øC1O¥ˆÒO¼IEÀflj"a >åâSÄáH˜¢¢"ʧ—%žŠ†ñy]x‚"‚$!!¢ÐY‰·h ;¸ƒaDôħ˜Ñ”Õ5ê·SâŽÄîÑE1>ƒÂí°á¨ÐêÄ›õox‹y'ivëC4HŠ3üv;žp±¬l êw`óFb)ÇA¥ErŸdóâ7qu˜Åª•9^_ÖŽ~._Ìá/Eј“±ê•„œ%¸‚"RÙÚ¢ ùÙønG¶µþ†Ábr ûqÙ\ F““A ?.—PølÔœˆ&¡§ÞkÉüê_ój[ŠskKijéiÕŒfÔvo,MFoÁlÖ_å$]”ºƒW™¨Ô¦²ùA$ä÷)Ñ[ ¨)âÇå¾`Î1'§ Sêð-súR0©ÊÖgG}‚­  zq:}DµÖˆÉbB#\e}–‚8m!ô‰¦2ýSÄg/ÁP¨tXÌh¸ä™:f‹uY/hC¥1‘½ko1–6ܘ\ Ák+ÅQ Ö°ÄM_ÄívãÇêª6Æc)Óïεe ¦#ž=‡ KƤŽâµ•à‰(PiôXâL1ýÄïÁåöE‰ÞlŤ¿dþ—8]Fk¬Ï®¤ok#>¼£U+G4€Ûí¹ Œ X*‚Wз ¹)tøQ ´Ö$,ež1âÇë ¢4Åa8W¹>—o vW´Î’„E§D º°yBHâÙ¶ÐX‰Ó)‘h8ˆ/¨Äd*Û5Ha|¾ Q•³|NÞ`Ìñ)© ÄÇ™Ð("¾ì•9‘x}w©M¢-"á€OTG¼Q]¶>»qyüDÐa޳`ÔDq»#h Z4JŹv4Yõ( ã.¶1˜PF˜Êô‡²E›P H-zuÓ…?j­ &#ø} 7ëP ˆ~n°XõDNÎ Ýèu}>§o0RVo‰V˜Ïö#Üûçò‡)ŒÛ5 ûñù.í—(>—+Ö/’ SB<µ!â¡ØîG’$4Ö$âÎêcÃÌ~n:I#Ær³ùòñ|VGô:ÝøBDI‹5ACÐ F«BLgñÄêMÄ& zp\°>› >o…F‹N­)ˆÛ-¢3ëP<ß/çž©#ì.ÂáP(¨44J5†²¹ÐírRêPÛ[iUQÂ’ ½IEÐéCÒéÐkÁgó£´Ñ*iA¹'sIKKÇn·¡V©Q«Õ—©I‚»FbºQtÙ>‚ã§"Úí—iWY¹¹×´UvËÈÈÈÈÈÈÈÈÈü?æÚtÿý\æþÛ(fí›_p"¹>>›bî·$oç f½QHç9}ÊN½ËüÓüVðÿ¿Çüßäêà–ßîþïruð?ÏeàÞüë¬Ãkï.à§ Úˆþ¿BÏåÐþî'ýY°ââÏ’¢(D Ã|÷Ýt¹ëÁe_^‹ে>ÎСýÐë´¨ÔJ”JE¬+bi.qû~õy—:€ÿ¦Ù† ç;Þêø=·|÷|YúÏßÃnÆ5ŸG•¯ÐΤþÿc´–‘ù„çÄ&>5˜Ïv*€LÚ÷ÌS^ÿ3jDpï~Ÿûýˆüø <2–iÝ+ýñ¹[ sà“Gxpêa,)mxñóQ´6Ê}ôÿ‘hÐÍŠáí¾F…3•?ȰÉ=Éùƒºçÿ’XN-##########ó‹ÿBœ ü·ÊœÌMO÷E„?I¦%½Þí ÅŸK'+óW Üÿõq$—KFW¢\›¡Lj9ˆX ¶" úWNuÂå+þïE%¢Ñ(Û·ïüÓ·GŽùÇËpêtѨË>P–äB‘;ŸZ¸†dVÖÔ’ç×ßø5ÇÚ ü¶‚J!;ed®QLÙÍ0u#ýÊ"£•Êß³.©0×éÃüM ! Pþ9×” PSýÙø APò·žo‘ùGQjÍt¾‘›_+³N Ù±ù›GŒŒŒŒŒŒŒŒŒŒŒÌU7Ö¹'sÿµåÿ7—]F–k»Ã~M–Ëëõʲ#—K.ÿ/¯âçÿvÎùóü –}.”E¹ÄÒ< ‚âü¿ EÙßËþHe) Ãá(@ˆ}ûý+ûoΜ9—}vôèѼ\{öìÇf³èP«U(•g]¾¢ID”D$I$à·ý¦gž:}J^Ðdddddþ§ù_;°);€edddddddddd®Š$JdggÿëʉF(,,ü/¤€–ùÿF(¦¤¸XN Øív”Jå5—Úãõ®¹СP›ÍF¹r宩rÉ) ÿ|>^¯÷oMý×!\ö÷ÂÂBâШ/L}Iúg v1üÅéŸA@! …ÂxU~NŸÊûWöcÇŽ/úw0¤OŸ>ÿx¹l6f³“IF£F¥R¢P”EKe©ŸËÂ’hþÕç>}šôôt 9爌ŒŒŒÌÿ.ÿk‡|åU_FFFFFFFFFFæ‘þ}e–$¹ãdþ¨ðÈmp£k¹\òÜ#Âïø?ᢺK’„(Šˆ¢H ü×Õ|ÇŽX­Ö‹>[µjÕ5Q¶`0t®mϯKÂoì7Y7’‘‘‘‘‘‘‘À222222222222aÜ./Áˆø~+ôûp{Ãr3ÊÈÈÈüO !†}8\Ä¿õ=OªÃ³DQ$))±ýkZþ­·Þ"77—zõê]ôùÎ;¹ãŽ;®‰2––ÚEñ_|°D$öátþØ1BÑÝîû›Ç†ŒÌ¿ÑÝá'úo+vÄKiaEÅØ|‘?½Ž†½%äRlsú+×ç “üü|ŠJmøþmLŸ×‡/ù{q‹~JŠ )(ÈÇ”]«È) eddddddddddþû„J9zÊ PbLÎ$Õtþlj$äÃç0ÅéQÆ]RL©ÓOD’Ð&¤“o@%œßàÚ ˜Rͨñ…|ŽRŠK=„% 5™Ô+Z¥ˆ;?R€ˆd%½r†‹ŒåAì…!,©f”±.Ag'‹Ü¨ ’R°hË¾ïø–·Æœ õC·ÓÀÆá ÁJùJIè¢nòOá“@P¨±”Ë$Iwö5'X79{Åx´G®<!IBŸJZ¼µ"‚óL¶`âÒ©” ¿ò^<êÇí”0'P tÚ(.¶ãÇHRùdâôê_p\Zß23H4ˆ£´ˆ6…«ö*¿à,ö£O4¢Q(@ò¢Ÿ$ Pš(—•‚þ – ÛFq¡ ?’ÒRˆ3ªˆâÎ˧4(kÃä²ß†(9~ §$ T'Q!чâ“xæø$’ô(ñÙŠ(±» IfR³’1©•D°Ÿ<=!žŒŠ hþ° _RçKe;%“T£@$`'ÿ´  Â`N 9Å‚š(>{)6»› ‰*¬ié$8NÆŽÅJf¥¤+–/rQt² ÅŸLJ‚!袰Ć;EˆÝÓiL¢R’’âSEx¢Q$Á@¹ì4ŒH'grK 4:+åÒÿx[Hù'‹ñ •kj Z‘€ÛFQ¡ƒ  6Å“œ”€AÆQXˆÝ$Š–¤Œt¬ZÅ_à¦òcË/Áå7ˆJZ33ˆSÁŽœvÆR¨*ÕRIVqÔ$ÄëËNÈqÚ(tLçÆÊúù/(kñ©BÜá(ÆäLÊ)wëÉN5" ñ»()—‘„ÂSL~“°  6%œAùW”C"ä.¥¨ÄA@e%5%³V ÁRN¸EEÀZ‘4“)ì¢Ð.œrvŽˆôyñôê %ÅNÂgå9%•D‹îEDÃ~¼0ë—ØüëuxQèõè´ª äåÒu @ñÑ38%Z]"éégËÁk+"¯Ô[&‹‰Õÿà=pR€Â³>»cÆwÂüO¯Ë¿¹)¢|A"’µê|ðµæ¤œ>}:•+W¾è³*Uª`µZ/‹úX·nmÛ¶½¦ê Š¢x>Úúê$òÚ).t(æä­ú«~¯¨“HD‚nŠOâtX’Hºh FqÛ|¨Í´je¬4'NÙˆJú¤,Ò-ªsÏ?ºá¦üP—‘/5Ásä4nAO\R‰V B8 ‹bº’$¡KÊ =îü|!ý”ÇÇ$2aF"Ç ñ]´¶H„|JòJñ è­¤&%`Ö\i¶¹Âüpì Nh´‰”/oáêS©ˆÇîEi8;ç„qœÊÃŽ Џ *&h/ûM$è¦äL ^@•â“H2I8JKqùϯÏ“ÈL2¡R\Ò¯ek•B©Âœ\d£@8àŒÕ·ì™Æ„dR4x‹ ±¹Ï¶ayÒãô(b?U€£¬œ‚` 93 ³DoÇò\(uzâ’Óˆ×)€Îâ"Š~T–dÊ%Å¡»b£„°1§šÏÉÕùçé°&—'A'âs–PTì&‚k™^Ø3aç)ÎøÌ¤§YÑœ“é+럗¶­ÏåµýEºlGQC² ÄtÅc§p @­N |+*~M¶!ê) Ï­&1%ƒ2@anÞ¨ˆ$)—]£p¾aŸ¢Ò†”òÄkcep;}ˆ*=£æÊ#5ꦠD"1Õò+{–߈m¹yõã^TR* 1ä$?ω”N†%ö1ìÇa/%¢K!٢៽ý4‚wßLê=WV ö|‘qí ) ” Ik%-ÉHÔQJ©ÛODÒ’˜‘NœN‰@{îiìQ±L‡#wÉ+<2í FS#žž7†›ŒW{w{~ Î@HÔHJV2æ³óØeÛ¡Rö~ü*~²ŸJuÑ땱Üò·Ü ÆãôQˆ3E±P›˜tê?×O¡ýÌš´ cÛ¹»}å?àñ{\xBZôWÕã¢ßçÑñ«ñ8Ýt±œ!Íur´é5ˆì–‘‘‘‘‘‘‘‘‘‘ùï(f÷çxjñ^uF®ë7•gZš‘¢!ÜÅ;X±fù¥µéýT3 þ},6¹Î è(ª<Ä+ƒzP?COÔqš#E˜4,ÄÐÙ½Èú¥­rð$?Ì„¹‡QX<щ' প[™;ü}Öœ)Á^˜A—O†Ñ»Z J Xr˜Ý'61{Š>ìA"áÓ;Y8s:“7'«N;è;ˆ›+ÅLUλÑ5hLë>æ½0“5%vœè6û5©”ˆpô3†ô]A µ’*·Œâõ«¡‚ExÄ ÕèØ2}“–Gat!T¼‡gŸzˆ¦wðé‹“Ù`wUø)ªò GÞMÒ…vG1‚»x7ß|¿={ªðÔËm0p‚Ms¦1sþ^òýIÜ0øqïÚ„”+Ù J²ïôF>z[Í‹ŸÜ{Áw¢œÙ:‡wf, týpÞîÓà2Õè.ädéF& ³óàøû¨¯Åµ}Æ­¢X# Š¤Òvô8«¥»ä—§øqÁT>útgB‰4é×—÷6£\t³‡}ĺBŽÂ îúô5zç$(šÇ¸Gæ³×ªDmÀ£s_¢£ÞÍ‘ï§0þ•ï8¡µP¹e7¼Ü•ìgÕÔiÌßxœB{ íÞx–þ­«aò­`úÀYl%ˆ¿¤ ÷-νÉúßo¹¤Î5ãõ(.•íþSy¦E½K'1zÆvü*‰5Úsÿ³ýi“bcÓ”ÑL_º ’+….Çӵê>ò)?„½Dœ5¸ë£g¸/+þb‡¼X¾õ0yÔNé¨Òâ.z¿Ø…Zù?2kÊǬ;àE§ÕÌ?AñõC˜ÓÝÇÔñË9#¹M4{}"ƒ›h9³þ=^»—N…9±.]^{…®™Ät#>ø _C8ŽÚwŒfø=fö-ϰ©»Q$ø!µ%ö}Š;Òw0ëÍ™¬?RBØ©¢ö ‘ íTÕŸ4K¶3qàx¶ºChô)J4R…G¦åVýqv,x!K’¤j¨|SWª\ÀÛªðÒ³-c‡ ‚ûølÊfâ›u G›J(Ü…ä^ÚÏzqïXÄØ7s4F†©Ã{||Ý›dÊûƒ¨uspùÞZ”ΓãïÄþÙ¦.;DXçA¬|'ƒûõ¡uŽö/˜%Îlù’é3>b½CÞBúzv,|‡1Köá €B²¡oô,¯?Ñ–Œ’/:BÏ;ßM@ÔÎþ ùr‹‘æU÷1aü&Ô™ñH.%U;<Ä#ßB¸ßÑbÑ0îâ¬\ÿ'ójÒwH €äwPhÛÌriÒóvÚ4LGD§9Zô“^ 0xV/² '?ã͇s(N‹ÑÔŒ> ¢F$pä>ùx&Ÿo;Eö wóxïi’þϚ¥^ýO–àˆ¯“܃Çq¨*P7'¾,BõÚS5z÷îý›¾·nÝ:¾øâ ¦M›vÍÕálÛþzûºÙûÕ{¼=îkJ3“Qº­´ê7˜‡ï¨KâUºXºL'yƒQ¦qdãdÆßH®ÚJNÛ<þÜT@ôÚ(°}Ï´1ytxò.šæ$¡Œ89ºp2æý„>*Që±÷Ñ!v'vÔë§ðÄ12oéAñšqŒñ='•qÔ¸íÒ‰ïvf¿õ+÷¡PÛQÖ|’ÑCï JbÌñ‘ûý&Òº'iïGô迆HZuïxa=8òí¼õÆ7ØDlæzôîÛŸû›U¸x:qžáXÑw¼;ÌÇÀO¤’RëÔlÆ<´˜ƒqôúëé3s(m¯0•J~…¥?0cüIš?ЙVõÊ¡d <=•‚>$‚”V˜Å#»b½Èc$o× 0ƒS™åÑzõÔïÚŸ‡[FYôþ{¬ÞÁúÜh ‡w#ÝzÁàÍcÛì YzÔ¸dnì?‘'šÂ©­³9ôÎd¦£ñit÷uÑ2ÿ),ù¹…ÆŽ¢ÆF éJµäý¼×m ëÓ0 JMúMÆMâaÖ~ò.¯­:F…ìÚtî?‚žµÁ·g=ÓfÎaå®<²Û>ÆÓw¡FÒÅóv؞ˡ‚ï˜6BäÙÙ„h;ÆúOßåÕUG¨P¡&žÅ}•ŽñÍÇSùhùa%Y·÷¦ÿ#·QÓ|Vw:Ã73æ¥;óɬ¾TÓª® o_¡?‚nJJä“éG©Òª=·¶©„]/ÙÀ»¯ºé7ýªêÕø ?çíG¿dŸU…š†<:çnÑ99¼q*ï\A¶¤€-sžâ™µ5u0Jñæ+KȆ‘zêcÝ«Î?ï R[Éj5ЉcÚ"ϰzú0ÞZQŒI¯&â8IA¹6<õŸD¾ûŠÅ»ó ¹TÔzüU†ÜU£cSž˜ÃOªxêÐ}æÓô¼g ºåó¡SùÅ$LÑ\VO{“É+öÕuàÅ9OsKºùŠ:š×ñ=ŸÍJä½Më¨ÿw¶Eô$+箥(ñ&úuX¹på›ßHóZ)ü¹3~ 4:-jõï×XŨÛ©"ΜÙÅæ•xø¾ºWÑ{÷0~ø!î{o!Ý++¯ªcF‚>E~,’þÄ[™?ƒì–‘‘‘‘‘‘‘‘‘‘ù¯âûfÏ|sóŽædt‡¨Üe “_È!Cáeécϱq÷ TÎ¨Š°!ã&Í.ͽüjì ?BZóŒîÕ„Zº0›F¾ÎÎ[p-žE¨Ç |Ú¦ ꟇÓòÃè9¢q%¶­Ÿ1æým¸³ûÆÊâ-fûWsX¯íÍwË^°µ™ÐOTR«‘•3Þ!üàHæ¶È@Øö ͧýÀ½otÂ2Óeæ"ºWü?ðv牬ì:™ÛÌ`/ "x㩚®%ÔîQÆ?^›Ê*?«‡¼Ì–G¨È'ãŘ—£ÜÌë:5ŽôL=_o1äæÐŠywª7×CœZ½ŽÃbež_3†êùóé7c;»jU£]u£;óÐU¬LšEpþ4‡1Ó (µ÷E‰ÂËX²~-TéBuD(>~·*òÐáãkxoÒ¾ tä~…"½µ‘[¾ø’.z`×xZŽ[ÊÝt'î‚n9½aœ) ^»Œ:EK8ãgv­É™EºïUf·ÊF¹}-ÞßÌÞlÍÚaýÉzFeÀÉ¥ƒè=q mR³eÕ1º®YF{i3f,bÙÚÓè]KȫԱ/v"íètº}´…¼䚆qøbæ×Vúv(-ßþž{ßøýQ_×Y@¸¢l‹ØOíaó7A¯ZJJXõñG,ùò'ÚôÍDŒÔ¢ç°t½%«ì©væ=8 Õ3_0¿±òfкÏÜøU*ž·Qzt «¿È¥ÛÚe´SfÑä9Ì™¾…—kÏ1íRöÍã뉬ž´‚FïÌel;…¦Ï-æîÏZ°jæz­ZB;Dޝx›gg¬åÖíùýîp¥OY‹è–á’o˜ðÈÖ¶}‰ZuÚñÒW¯ÓÄ,±óýwøîûeÌtÀrë`æ´«…Æ»;¬çÈY4N4ü9çj4B´bÞ~ùnª_eç„çyñ§»™¿øM’"Ž,û˜JÃÅ‘‚­^‹F‹ ¹R?ÿyö1}À÷4™ó9c*œdîgNú3±Y'>^Ò—WšàÛoÒrÔˤì˜Í²]u¿r,„ع㠺ˆø+À *¶íÃè¶­˜1æGâ´ŽÍÁˆíõycærÔ,xàAžÿ$ƒ:k1/48+PªµèµJ¢–ZÜ1¸}ïÎrù´ïg|÷]&·×þÍÑ­bÀÆî¯ÞgÊb?º4>wØD,ú™/§Í`É¡:ÔѪϽ߿1ã'ÅMO$Ñκ7?§Î«y+%ÌÎ/žgä{{iÓGÏê/Wp²ê3|;²êeó÷?G¬J h;Áž½¹x 镪P)ÝŒ‚‡‘[ä"‚€`©@˜Uÿ`ŒÂBfÕ¤‹QÜn?>W %6;Ñhô_©“ÜtÓMÔ®]›V­ZqÏ=÷\SeûíQÕ"ÑH6íîÇ}›\pHëê.\¤“lf\× |Þ Ê §è±fm£;™:c)_­hHõŽ™ˆy?0kÊû¬„µ‡[P!!àÀOfÚ O@:•HÏÙ‹éZBk™ØoëÛ”&8òÙTÖïßÉ*}Au–ðÎä%lWÞ]Ö ÖŽžMÍyk›eï‚gxyÊÏ´Ôwa.ùN5éUÓ1bÁvæM›ÁWÇêÓðlÆgÈ1‹!9±gÍé2˜•Ž®ô0°¿›Ôz9$(A“©×øeÆMî„å‚6øfKž[Ÿ{³°BzÝÅ@kßáÕ[²tÉ›üÖƒ(–£ñ¯1ñ­˜Î~œ÷Uî…Geˆƒ/z>úC­¨’ JÕŒ]8˜ºç–A?G?ŸÎŒü®¬ÿºÕyÉßÂÜù? ´ɺ±W•ïîù¼=u ‡Œ½b:b4ÌɕӘz²3ë–µ)sì„9²f§Âõ»b<ÙüÌÈWÖóýOµ¨Þ*…¿€å3‡±7ñfêZ¬çtÍËôí+…Òý|=}ó~ªÈ“µçœcÁ#_3ùÝùü ÞI?A@ÀËš×>¢Ò§ë]m.&L IDATŽ/Ä€w·Òæ~ØúÍ•e›°ƒïæ½ÁV©Õ“²ˆ×•°xìZšLšË¸Tàøš¾°ˆ{çô¢\YãæòdV•0ï›Í‚ÚÏÒ5]‰Z«C£Q£!LþÁ}ä»IF*5¨K†I…ýði"QÛ6nÄž•: £JN"x 9z$Jvýò{ˆ¸ Iøósèh~©T§*qNœˆ “Žr¢0šYÑXz_AÞ\~Øá \¼•´Zwpƒs³óoäÞ„\ØÄMKnÑ+ˆâàÄîƒä;CH’‘¬ZµÈ²ú9š+as¬0LTTYï*%<§wòÓ /JAΜFµºÙ˜ˆâ->Áþy ]«T"Ýæô¾ƒœ²{‹f*7ªKyµƒ'$¨p8?•ÚͲÃ~\€U[žöOÌ ý±þ,þv&Ÿ*¦`Ón’›÷aÖë Ñû¿¢Ç9~³žý¦b}s% jÄú¥õc_ÐbÉÃ$¹¼¥³:ZwaÞEã$$e5z¼ö8Ç9Lû]h˜ìçÈ;VåAD‘Yu®'CWį·rL-qpÏ.4¦òdÅ{8°ëDÙúœC•t%ùg|ˆÁ3+H¯š„×Eå=MžS¤|½ëÐßÂЬzM(¯‹à<¹‹§|(¦„ ªÕÈ@k/ÅQ|’3öÙ|ìšt¼‰”d+J|œØµŸ|·éÔo^s¨ˆÇ•$hös0OZk RÝú¤(ýßË|?‚ %!£*µÊŸÍ’¢@‰—“{N#¤g’ž ÿDzŸS;6³;ÏFQ^:·?ÔŽnUƒ8KKðØløý…; ¹r]rÊ›qoÝÂá¨÷­æO]šÕÑqtËl"(5™4hœ‰€3—Ÿ­EѾÕÒªP-ÝðÇm»Ø~؉ 6_¾*5+˜ÿaîßì–‘‘‘‘‘‘‘‘‘‘ù/âeõÒƒ´¼«#»V® ¢ÒS­E+²´‚)Ǥ* Yv0@P§\ÇõçBQ}„˧’’3ünx‚÷æÐÿ‰_¿wPŠ«J͸óe&%“Rá4Ç–Ö¡z]ì]u[ÓbÌ~NJ"V”¤uƼF èÿZ,…žÇ‘ǾýÔ¾-ÈÚå_£M«L­:ÕˆWìaÓQ#•šplo*uU4õÚpã˜ÃœDjÕ¾îg’^PÖ(OŠ „Ó§Op°$›I•1'߈S“INP Õ¸ƒ;‰R°c={Jì8ªu¡]êÅ[^….žF½ÆñaµyÌø6„„›üÓjw‰i5iÚHÀ„Ð.Þé3•ìqSx¼Y*:’Û¿ÄìF‹èûB4–>WŒ`?òÛ©vïn>º„%¹ZÔœbÅø1lK¹ƒA/t"[!¡­{£ßËä¹'P!ª·¯ÇÞE+X™¢Ë@§r.9ùm§0O j¯C*@J5FmH¾Ù²£!U:h‰Êzmh1ö0'ù™Û;qk@„ø:­h´t?»}©iÅ€DªÆWäxÉ6¶žN'.=@åÆ4µïÀÝÂÖ-7ÑôÅ"z4ÚÑ|Ò Ž•ŸYþ’:ƒpÙ®Þ¢é–$²k%²ÁZ<ù‘4šW/3À ÅìÛ°QQ…ôŠMiž“G~ncªV(ëÛôöܜƑT<×xaBÁþÒ†TT¤Q£|ìG )κ’ÉýO¶×£ûê q6d÷º¯Xž¨Eí¸í†j˜&ª´¨Ì±/V³ÚÀYœHûYØH ¬sÝÊ¿uN* ‰VÊ¥´‰Lñ4™1k’È©iàÔñ|ýuÖH ëä¬Uÿy#ŽB…Æ{ˆu ¿äxŠAŒ"ZkÒº¡ƒµëËñ좻H>kÖV©¨Ò¹'þóØwU— h.“í¿‚d2rtœÙüKœm¸£v&wß{cÎí/ xéU–EÓ8¡ÈËzœ'“0?²jÛnÊ©M½úu®h ÿS="šèN­Òsß“íÈ:g‰/Gמæ»nßsüNëUôÑÈÙ{ÌC„ÍŒzÍïŠbQSiöèx¦Vù’/wcs3ʬ6ôŠâ­hÃgï´“05}œ© ª0àÉÒØ'Ò.ölëD—”Ø<‘Z­)µ7fo~…¥²ë—°æëÃ+Ö¡NµLLÿx®BA! àû“øl{$aiz+½‡t¦ÊžÅ|4õ{ Š“l-mÍ»ï÷£q²ñ/J³ød:ZÊþíñ(´D½.Jl6ÑáPðšÒ6:DÕªUÓwSRRèÙ³';vä­·ÞbäÈ‘×DÎÞÿ{áA¸š98¾c5óÖ:¨ZzÕ²°þRŠóKtUõxŒ¡NiÉ j@L5kŽá!SÎm<3>á•]¨#V/ÛOÓÎ×qxå Jª4oO#@oá6¾;S™žŠBŽoNK%`L£†±ùgð¶jN› ôpv:åâÕ(À¿ŽE‡êñ´Ö{éZ6#û‚ 4USIHN #µ5©¶£lߺ‹½E)T¹¡«EÆëû1¹Aežx²8v@„]ìÞމΩ±µ4¹z3j}{;9´h*“¿Meà'ƒh¨’PVlË“o–Cùú6´‘2G[õt'Ì™Ÿ6°·Ä‰§f7Ú'Jø÷|Éóý¶ðЪélé…Çv±à[•ŒéT¯]“Ô  ä~È'ÛëÓ¥{5¬ãq°fù!nìrÛW® ¢3Sã†ædhÀCÞ¡í,øFA¶9“𵫑œ~#­Î¥¥ ÎJ£\¼% E±îë¯ÉSª)×°-õÍÅlÞxœë;kظb9Ä¥Q¯i}BÇrñŠRÔÇYýõâª5¡v¥ô—´e\Ë!|بýz‘€h¸ˆï7£é:6­Xq©ÔnÚ”ì,RìdóâuWçaIɦFz"øÏ°mõ<Ž5Ë3 ¶2p› ­6¦q\ªo_ižR¤7¡×°Q¨'mD,KÁ„¾áÃŒ{¿"ƒŸ<ƒBR;صývn+ëã„Ú­¨ÿõ>v{S)9Ò’VÊv± /N~3—=åû2¨i1£NCÀHõ›°síW,OÔ ö ÜÖ¬:† Ê#‰J’+Ô NS+V­¦ó}5Q  Ô„(>´™åŸ¯`—ÍMÔ!ùL_žèY‰C?þDi±›EŸž¤æ­×sø}xeéý(¿±ï%ÒgÁ2ncåÍúdòãäOXu"n‘ô{zóì­f¾¹mÚ)Nä5á±g͈ :)-Ó¦ñö±D{8½>Zm",_¸Ÿ‚Û 9|ÈNÃÍ E!j;Æk¿d㱚R'B§A o›ÏäW7“Q»ˆ£§ Z°›Pç9L»?ûÞÌ^š‡ „Dê~‰ãv²|Ú‡,Ü%Îjcq&÷ }Œ;­§X6o5û>¢î©ÅÒôg^²‹ëÚ³ï`k5«ÄU3);·²bÃ)ÔuºrK“£ü´m/+–Ù‰ ¨_«é¦ÖkJ“̲ïWlϽþ9ç³ 6v/šÊ´sã¹lŽðù ‡ýx=aÐmâí~¤úõÅ8RÑ~Ä»æ0±[?.ÿ™"­‘5Ìæ`µºÔnåËM^4’„¥Ygžx$ƒo?XÎ1w.®@-z<’Ì܉»H*ç¤èÈnüÍŸ¡¥ók~Ø}E¹Lîn¦pç×ÌZY„AŒ€¹2- âÇiNî߯6×q¦cœ9J·>hä_ÉÔ)?cÓˆøO(©7~8OÇ­æµ{h~‹]{¢Hþb’ïÿŒQm}ß²„O790H•[sßê¢U 5»˜>ð´OŽà©Û«b¹Â²P²g?óqbÓ7äÇÝÍ Ï×åàâÏX¾ß@­l߬9B\F„ü½‡ðÔéÇóCšc_·“Íiü 籫ªõ¡Ý|0¯M"ø ¬´š:Œ‡Óô˜RªÓ¶W!Ó_˜Á–F-hÞ°*UkÕ£²Uñ»t•°íKǿÀ£[A\µö¼ðìí±=®Ì/";€eddddddddddþ‹ìeß6ÇLK)ŠH¾3l8’Í‹e•Ý“ëÁë ! ç#íbN‘µ_±G[Ÿ®Y)ç0.?‘ß`¿¾p¯kÿi=;©´¬–Cаž°(Å {ÊDÊåQ*žßlÝD!vgÐw˜½›=xÌ‹9å.ÂG&ͺâžV„›9™“@ó¬LlÊÝDÎ>SD¹Ü_œǖÏÖánÒƒFj ¨€Ó¶£(ÚuÇ|®¾Å›–³[Êáæ*Ê¢@Bäíú–Õ;¹î–æhüpY¨¦èÅå #  @¡g jm>ü/!M6mîîDBú…÷)ƒè %戋¸³úý×ùÜÔ'´ó™¿e‡C¶ŸlNµv0ë+a.h]·°("êÝl`ù‹kÙ›ìäèÅ´üè±X*×s¿P(APDÊîkµïôt…ˆj£DD1Ö†ªDÒo¤X¬‰Š‘³ÆnK‰ÇQª*J.û\1 »ŸÔDËêGr¾g …&Lä¬Ð˜’H=¹"~¯øÒ:+]—ËöÑŠ¼Ø§9µ¬±”R.c}úÜ•xɺ!“]+wðãª-”N |®=õoUóÃçóq¦éP©¼äÆyIññìwxÕÚÀ3Û²»éeÓ7=„„Þ ½7 öŠâåZ®]P•fïDE”« ‚ ½Ò–Þ{ @ u³}æûc—@¿;¿çÙ'ÉdçÌ)ïyÏ;ç=缜öž« Áœ¶ži㦒æ"ãnœÑõNǽÅÉ‚qV‚oéKV˜‰ÐvÁ,ô;Ûƒ+صd7 F?Hz²[ Ì9›uÁ'8ZÄmŸõEÃ_t,J‡Y=y9vË48ÃóW¹k늘olà YV&,·²rã*öZ·7p4±ú+àT¨GØ´¢˜ý:ðzð˜4‹?ÄFGz­ ¼¼ÂE<µº¯ÑtxÌÌè©+ø­ ŠªmFêµ£wí„ ··x·ÄÑﺬ:äX2sÚ JÓ¶bN­…¥a]ƒ¯ð”ŽJD<~‚ãIY´ŽÒÖ܉¥ %¾ ˆ"!äê^@å9ÉþÕ³ø>h/ÁÇÈÏL¦}­.y¯‡·’Ê*—_ÑfNÌä×+}1â}—ÔhT.Üþ¾¢Òvd;y•Uìü½›z:ûÊP¡ÙÃö£k=ã5ŽW' bãàÖe,Ý‘È+“ã\ÏgÎç÷y Ùb]ƒÖÒOîo„‘• znÏÙ÷ýWó¬R«P‰ð”!FÖ¥YF8))ã)ٰ뺱6jÕªõ‡ÿ3f Íš5£~ýú5®‡„„0hÐ €kî 4žaýÄÔ6µn?æLd¡#ƒ^÷•¦6ôKB ”ÏŸÆÑ»_"½†^8Äš)VMï ¾ QZ¸—ÕóVS™K½øà³úò™úáôø©©.Ÿ •!°ƒyH|½–t1aϸ×aÃqÊù[‹ü ‹X°#ŽÜ¹èêÈúôº9”4ïÁq‰¤ÔÝÀÖé“Y剠Y‡¾ÜÓ+€³Æç:QAgåy+ÛÖ  ý….^Ç VLfà±D$&’Tk3[füÄrw ¹Ýûrg×d¿>ðrdÖTvD´¤obEÃÛâY¼x1G(ĶÄÉ ÏëØ¶ÞCqø4ŽUUàòèØSD©ˆ]Ë!yg±­ô‹‹¸»ÿ]´LÓ×8ZØ7:üu^ïv¶¬÷r<|…öJ\.‘­Ei<Þ+ÓêyL±‹c{ÛÆöI\{ïõ#£RÙCùùGö.ßÄ!1€ök“¡)aãÜ•¬Ü´šýk·bzæS¢T4ï +¿™@q´A¨äHDfÛ¦ìÓ3q5úó  wì"¨ËŒªìCûa‹(¿ëyçAvÁ‡oµ£pÍÞý,š—& ôÏ øu¾”®Þ£¼q_#Œ®%Ì.ßH½W?ãfít¹s! ³?ç‹ü/èðÆ¯”ô¹‹Ìnñ°z3åž“lظ9 örËý-hÞÍAFT{îí\Æè·V£v1~ÔjRÉ[mM°õ Ú¿û+÷ ÓèÍ#¶Ï<ñT­þ„;¿_DU—iÚãA<¡»qVígú¦¬Ü‚I­B½@¹·vG†ö“÷k~\®’m(«Ã]o}æÓ»Þ"Р×ëQ»ŽÔŠ~ƒûàYÉ !kÙ¹'€>îdþñC<0ü2t«y©ÍTº}?‘> PöÛKÜ2t!wꉑ Øv<÷M;ŠÖMáësÙ¾«Ö-Q/Ët‘6Œ«t³~Ósã×#¸§N…k—áR&V. Ŭ          ð7"#Ñ’gÞzšl€’ßyýþѬù×´þÃi‰‚µÓ™6·’ö"ã2ⵞrh•ìYÈÏ“’ÒõvEzÙé«u­ 4*” ?ðI^±ÉwòÀðÛ‰ÂöIß0ç÷ùiÙ×î#¤'d`ƒKDUF%¦P‚«g&ޱtÔ¬)Ëá¾§2’ÒØŽVÒ¬—¡º¼E›ç0uúqêß~9ÕGeéitÿk4¢ŒúÜÊÏ1 øOÝ 9¯$$ UþI<;A:B´Ò¹åÙô?y[ÔžÖ–ÆÇw°l}%…G‹8!p¨4œ›{ÝZ]³2g‹«Bp`܇iúá—ô·³öû7ùæ¿ß‘?ä~âUgÈ‚ruþª°Ö«Ý"*Q¬n—“Ñ¡„ˆ^¼¨ý/±2Øm”G‡$Ix%µ—¡ § ä=ºbRõáà6Êäk@r«QUŸXAiD!WI¶‡Þÿ Ú÷¡`‰‡»ÇHƒÊ-|7êG6Í[N³»r©Õéjuºp2ï©Y¿½ý_¸Ÿ²&°i§ µçËKrwhÍ×ø 8 7=^Ÿ/—°%ÀÁÁ=’â«w@H{¿ã×¢zt¯_‡0ñß~°Š´—>çÅ$Ø5m8ïNÇ®¨Öü:þÝ¿ù˜Öº|fÅŠŸgqò‰„_vaÑg“Øì¬ÇÝ}R«å¢2%¿|¿™æ7Ò!ù g‹{Þ>‡²•c:å66~Œf‰ñh'öðÖ<>ð.ê…‘RÅLBµ{pŸý}•A–AO?WôË£,#_5-‘MŸdPS x o|=‰•Óœ4Ÿp1¢DRî„l ¢‰.\žF—G>¦ 'Y7û+F~µç¡ÜÕ1åÊ9/Q98ˆ âÝ—ûfœž4²q",„IFU§wõ ¢¨BA”b߯XWè3èFrƒù[Z–½x¼§ô¯ËŽ-2½#˜´f}¹gDW‚©béG_°i•Âz퉽–C¢‚ÛËeÄа‘Owè"Hö9d]ƒ5¤>mrâ|޲JnïÕ“ËKn&ɋטDLH0Z®Ã ÀàÑG ÿþ¼þúë˜L§£Þët: t]8€Oíúýó¦ ¾AOžhÐXóáHVíØAQ³.¸ÿL›¤.šMûÎO8Ô 8¿ÂÅãhLÿž¡1€¼žaG³ê‰éè©`ÿÖctx&û!Hj¿®rR¥À¨¯>2øà’ÉL[ÿs Fß²“µ+öÓí¾”c˯ŸþÄvw}î¾íÔu‘¨Ú]ø÷È.ì?œ™Slµ-,ýf  oeè€FØWeèO3XÝä)Ú¾ŸãïüÈöj×V•[xÀr(‚HnÑ“ä?ëÏ’oÒ­´Ëp#£AЇ‘©õ½‡9*íx=vlTr²\‡¡açÓã³[O^Þ!ŠbZÑ$+Ú·×鯛T—Œ`7Hzv ² ÂÈÔ ¸*¶1mÔ–i vP|L¦JÀ€ÇíÀé°N<ˆˆÇ‹9‘ÔYz_{¤5¡Þöåì² õvÚŲ‡1œt­Diñj~ûâÖWn,§âD F‡JA$Lrã"•nÿ~àúŒ£;v`Ï®OݸøsÃuH¼!Ù¤gÕñíÜöj1 QIàpàq;°ÙÜPvˆ¢:÷Ò>Á7^¦6&sýV¶ÓÓ7>œz“0S§Vû É+¬ 'ËtÑ}[—Ôšûú°ú—‰|»6SF.픉•‹BTª@AAAAAAAAAAáï#…”ÔeüºÛ¿ÍVEùÔ®[•½^‡V«÷¯.eײi̘WFƒ'úÓ)'Â?ièŸ5êP©tÿôµÑÆ‘sùyòÌ}àæÖñˆÄŸr€B›Ç7¸Ûʪ´8’ª:c*UD‚ŒaèÃV°ªÌ?É$‚ ˆ¨(eo‘‰À Bˆ%>yG+e_>w¬dUz")‚¶Lÿb2»¼My`Ho¼<;%'ORènFZ8@û¬3ùeFµûö£{〪=kØc;Ušô¿s÷œ7<=Fƒ6ADE¸‘ò©8¹‡Í* ¡¡8̢麟® Š3£6ŠFj• 6&Ññ_ƒxå•A ~íîÓv­{qs==;-`ñª}”ûUôµE€ïÞ@-¨w²yƒ½ @O“[{·f3»Êýk™;m „&!ùv”ígk€up6YI{9Zéõí@ܹŠUéñ˜I%9u {KÔTîZÃæZµ©­ "(f+G¼%¬:JIt²£NPÉIŸÓ¯`3kM„k³ÈLßÄÁ:D@Þ¶kí4Ò/YŽÏ.³H;G¶U¢‹ªÊ½ìÙè› ¬KnVÒžCUp ÿ%”qÂH`ˆ„Dz=õ"ƒ‡ âáFÄ·m„ðœØÌŒo­ù: Á)ùÏÈa ~öZ7Š .%Ñ笒ßï$¤}}j›À.¶mV¡ñï`­ÕûVÒÖlb‹g';6bÐÄÓªusŒ·sà2{¶\±iŸOã€öØß }Šv-fÊ7ÜáNîê^ ‡9¸ßFU™ÊçmÑ‹úyùìs¸ªwýUÎq˜5¡Sì*ÞwUg´aÑú•iUpèeÕsa'8â²áÕêNngýqc ö]ÌZ•ïû#ª / ¼ŸÚ…Eþ¶¯Ëx}²+UpäàVVïuá4îÞŸ7‰ÇSR†íJªfÁÃɪ2Jô9tL+àçk9V­c*X9ry­š¤'`ïN ΘU*-ΣØ`@§£ÑÍO1dÈçŒúWfÏgI¡Kvþªô´¨µ§OþŒèôhµ:ôF£ßßÎ*UFQ@T%‘˜º†v_?)=¸‰ÙÔ1jpkV³ÁáÓߢèÛ-v=¸-eµÆŽ}Ç ö¸Ë8¢v ¦'“pâ0…E¾#W Ô£¹¬8ÔW¡”²”O öèB(có‚)Ìý]¢ÕËÑ:Éàë×Ò&V¶£žYd¤²­Lýl‡ -y`@7ŸCÌv‚ü};9áÏ–F«B¥–¨©úÏТ£J@ sêjöÙ|vDÙìÌL%7G7ÿΜÙë)’ÄÓvM@½1Pµc{ì§Ò×£7z}¶ØÉMü2n.{]"‚§‚’¼ ìp¸©¬”ðƒðù¶ÏŸý»{˜3v)=LRÊRøbYQ%ƒÓMÅáÍìr8©¬90„0uÛNaι§MŠ/Ÿä/cEõ€r’bµ SdQñKùíÔuQFƒ “(w­g‡ç”nä<ºñ\›[«‰Ç”¸”E…§„P@¥*ãxáQŽ @¨’Û`Ѩ)<úÜ`† Ä+¯ÝNzÚM ìߊHA¨aoý¶Ãñ=k™7} ¥§Ÿ¯5 ÓêÐO/<#_½¤œ²†}e*ö¬eK­ÚÔÖ]S¶K#b©]«÷>3Ä—¯¡÷Ó ÎÍ<û¯DJ÷¢ñ'_û–[H]³‰mçQ„DR›äXÀŠyÛ±…¡uA.òê+CxuÈ`^|+õU »q*Ç)ú¼ ‰9)]4‰5¹ÔN£®°“ÍG=$7JCã8Âñ]Û)(Ïç`˜ŽÐŒÎS[Úež¸¼0² Å߼¬2ZŸ ¤"”fw¼Å€þ÷­+Ç%«ÑxñÛÂÝÈuïãƒx陞¤D Ë HN\J^@*ZÆ7s#xú½! 2Œ·7aÔhqâ>˜G)€ÖˆN- Ð:eözšW áÕÁƒyù夵ˆ^NéBÌÃµÛØ[JóÞ)À!¨¤ò„/ðFX³iPPÈ[vҸ텗2d÷××ÛºæÓV‚Ÿ* jôç3¤X¯C­Öa0€( x¸ªëSÂ{ŽºÕ QWá8s|Ö8c¢ˆð8q¹ý' øN‘üéxݸe_]zd/UùË™¼ÒÌÀw‡0hÈîË Çî–/Þö*d¤Ð0B –²i¿Ó—÷ÃÛØ•šBš €×éßõ*û*JUìZÃïxý­Á¼<äIºÕ Æé‘|zLT£åË'ÏdÕ¾Òóì˜M£×k¯Ñ9t?{÷ndú¨O;a3N•Õ©…’¯çÔIK’,׬oI†ˆB÷LÇZäëÏUG¶q°v†ÿt%{É&&¿õ_Í\Ã^{(Í︇ÛÚ¤a¸hûD†r'¦¾/ñÊ+Ý Ù³yã&Öì“òÕ5{þÉ(;€þFLty¹ñ"¯‡A…ã­ÒHì'Ø<4NÚHaå"TrSŽÈÏ£>g#ƒCB¿ÚË iq}»d£Þ1…O'MgÛv7#‡n¥Ã}¯Ò-å[²‡yß|ÊW[BiÅIVM-ÁØøzßݘãÇ2lžÛ®|<Ö“0µoìñU_ñÁÄ…lÙ¤aÄGûétóô»e!ß½ö5¸¼q4¹¥ÑÇ×0Y ¤Vb"hhõDSF:Š×fj°íȧéS·ª8±| #Æ®$§çm¶¯!’†í»slUµo÷9„‹¶ð˘ϙVO®PÄG)A¹q¯j;ƒ`µx»y }ÓkÎRÈ® v/Íû?®æ`QïEßA×–-H:6ž1Ï C.+Dj}i©¡`_Íä¿!5ÉBN¬•%k¾åÉóÙºUdä{»ét׳§cËy+¨¨¨ ¼Ò°zê$Ö˜z‘Ò,`QÀµoã~ú‰5˱½´Žýžæ‘>³ùüù¡,K”‘+œïì‡EUIþ–ߘðe½ë’Ö¢>I‡¾ç맆!ØŠp6ïNJb©ý³õã1¼>Û×.ŸèMñtÍÏ¿ÎΙò<;5!ÔTE£?öÆl]9¶¨Úô¾#‹zä³õË…|4`î‚¢n~S`æøàýa¼n©Ø^HÛ.âˆÌs¦Ûk–ùåõtxð-:½ÔŽOÏíÀÛþEÇl¬ýï<6œ¤È*œžXÞtišÝL˜<›•‡Ô˜4;É×ßÈ#)I-ãƒï~§¼ê8¥®Dî{¨!$ªŽ.gÜç'HxÀ‚ÉSAÞª©Œš³A€È¬Žôiî‹´{ô·QÌ:–@¯»ê¥hÂÃwÌáã·^c]¬ ±¼±Ï£´I6ÝaŸÿ{)q.rå 6-,ÅР%Í,f–,Ë 5ÁºOàlÜ“‡âƒÐüUõ"ŠP°„¯Fl%"D€„䉣ëÓÒiàÃìùO KÁ,KØ=j´ xì¶”ÿ>‘·l%$lå.´õÚÒ(; àœvnÿÀPzgëþÚjz½—½SßåÕYˆ ”•øø¿È85§çua³»}óW¢€-“¾ùŒ¹)ñÈåå¸LMèÙ¼Ö¹;5.;WÌcÖìõ—§8±]¢ÒhúH_öŒÄGC—c5¨8D•½%?Ú€ °ÜÞq cž{ðPp»$œAIô¼=aÕbÊËKpæÞ7Òîèhþ;ô-Žý«?½êÅp1g7ÈŽ¶ÏÍû“ÖSP¾MØíôêÙ…´ŠLûù[f-ÎgÕ¾Uä=4€[[$ nŸÊ¨‰¿°e›‹7_ÛBûû^£Ë³)|øÄP6Ĺ©8®¢ÝˉŠ.¦QóÌ|e KtàTeÒ¶CcL×xD”=NlŽP²Ð8j ïþg8QÒI*“›rÏí·RkáxÞœ7šgW†`âŠêÑ[¼Ò»©/´Ãîìÿùç^¯(âõx$dsÌ?Ö2?~<Ï=÷\k¹¹¹×4O11ÑTÏb ÂyÚãÌî2ö,žÀ«U˜Cò(´7¢g¯:Œx®MEýÎ=¹¡ƒ‡ñý‡1SW†-º7ßî[Îã=²ŠŸ~þžE+ Ù}r I‡ç:³ã»¼>+Ê+oîKÓ7…[—QP·Y€”žM½&¿2é±aLK°%5æÎÜÈŸÆØF³3²!GGç1ÓYIT‡'¹O;‡]Yíy2Øçø;ºd4o~·‘z½\‹j¦yóæh6ŽeÌè0²‚‹©¬J¢yö$kŽÓöÓýã/lÙæä!›iÿPº<—ƇÿÊæxå…Ðáåz@)ûWÌä‡%ÑDwn„IŽ®ç—iß1oIëY9øèPn*YÉÛãç«S£òp¥ ¦ošŒ}ï2ÆŽ²òÐÍ]ItP´yoÍœAzt1'+£iÜë6’cgŽÏ§fäí›ÿÅ*9Iêx:¿˜Ë§?Çа ¤J‰ð[¤‘®„=k§ñÞ¼_H3£¸2‘Ü;Ûa*ZÈ;ŽfKH} ¾Ìc–³’ˆvóxÌV¾ÿtó£A(ßNIË—¹!<…ÒG³øbäó 1àqIïü ÛT²¼`=S^~‰Y*mczÖË$ô,›§rãD>™4‹mÛ%FŽØFû»_¡ëãuøüSéHëÕîÙ{˜¾f*ßÙA´¾ »ºÝ›äÔ–ÉsbX»œc=Ëm­ÒÑï›Å—?þÌÆ-U¼ýòF:<4’.³øà¹¡lO¨8ä ý &„ÅVРõ/ütÙ®¦²‚в“§ÝþŸŽxuñ"BybŸG¹áŒÝ¿^“ªSã´.ºÙMˆ›µœÞ$îr”oÆæ…åAé]8Â[ñhß$‡µ ¥é Þ~½€º?Åuá8‰øoà9N`",Ùd G7#AMê°~ã|8A¸p¹ªðh›P·I‡~Ë3/m"SWÌ–Côhp'=»âë‰0pƒÎ…ÓÔ…gzVa«rû—œœ±þ¹ V¡nø"-ô©të’Ê—“¾cðæPB¼'°çtá”hô‹yëÛå8Ý%”yÒyè‘hOŸð"”s°FöÿK*`ùw¿°rù6vžðò³jÊíîÓ a%6›ˆH^6» /:³Ð0êÛÓãsê <Ü)‰_®«áŒ·Û¾:”ÝTU¹üÎS'UUj4±Íiœø6ï/"D°SRá‰dÄò¹¯ñ–Ü„CG $ijqÛÍ[ýß÷4_c{>Ÿ‚YXŒ­Jªv¾J'6g(¡ÉõHQŰá;‰P—³÷h õ›xp9]8="p€ÙŸGÀÓ™d§†žçhHêüÏw.cý”Xubsf”¡“q9œ¸Ýœ.-É^n¯¿œv'^ɪFô:k lO)w"°—`ùÄß8“LÆèT'ôŒÑìâí—cß>1†°Æá!A¤gYHÅË‘µ«Ù“L³›’9øËjÊâ2hÚTÏš1kÐwkNÄпþ~ñGõÿ¥ O‡†¾† à0¢·UžVÈ:m;P‘þw8¤         pÝàv»Ù¹{õêdù¦ËÊ))-%%ÙŒW’0ìØ€jÃZpŸ>U F{Sklx E¸‚Ö´!º)iú ú(bS›Ñóö„²ìÅaw¢‹©M³)DÇ$’›@\z2é©fbÂB ˆ$&¥©1Á¨]eœ”Ém™MlX8‰9Äú'ÿ$IÂf³ìÿ[…1&‘ô¬4âÃBˆ$:!‰œ¹˜µ2tDewâž9úã{«J(ӦѦUÑa$gÕ¦vz6‘¢ wP õ[µ¢m“œ›g²±\KfýæÄ‚:$‡hµÁhÀ”Ó…{ºÖÆxe=ñÙMÈ3…)&ž¨JwÍÀÛè~›|ù LH&=#™¸SùLL''; ƒ Jxxmﻉœà³çé%œö*„ˆ,Z4I%:*–´: I Gƒ‡À´æôêÒœ´-‚h$&%›ºuS0Õ€d/¡T“ê+ohæô,L§<6‚}p$æä8L!„Ä&S»^-Ì&_¼>ÙUÎq‰&ÍsHŒŠ !µ9MÛ7 ÌSE@„©ºÃЛH©“NŠ9­.ŠÈðt¸0¦ZèÑ©9™a:TAÙDk¼F=¦ìÎÜÝ=#`ŒiD¤«9*–ÌFݸµY 1€ð˜ ÝhëЪu[Z˜ˆID¨Õ!­¹­[cbTèÂë 9$”øºÝ¸·]jøS^¯—ªª*‚‚.ì^;§ÌiYdfZΒ톘T$ÕMÇàv 7¥P÷†V´i‹VLV‡!@K`tmnéJÃ=*·•2!Á±4êõR}¹uá˜32ÉHB/K¸í6ÊÝzRëæÒ¡Sk’Œ;Ä5iBƒ´T £%²^¢¡aD&4¦×-ˆ‚Ij”C ËN@TŒ8séI™$g%àu˜TŸvm[Ñ0*ˆ€ô â£Ã‰ˆˆ%]<À´²dîlW‡(ý¥îçÎùÝf³¡×ëQ©Tþk‚¼Nß#œþ[@AÎLHx8aa¡êQ 2Ç—0gî’¤­4þ|žyæN{xÔj5………¬]»öšä©}ûVäæ6# @‡F£F­VùBV§ûo5 ú€`‚4S*ͺv¤y¶éŒX©P^^NPP¢o‹ç96I”)šä¬ÔIËDï¬@k®C›6m±˜ýGó»+9é!»aÒ⢈OÎ «V3Ò8´aD&6¦×b\nvÌ›¢FÏÐ&u Ñ)Ý6tIõi×®5Mb È5aµÈLŠÃFDDñÖŽdWÆctÏ𸠲“zÊvŠ%9³6É1a¨ á ÔiÓ–Í <‚D¿~s– F'’ݤ+75ŒB Cx<™uk“–‰^Ùc£Äi$£^2ÍÑÄ%×"##­$FDD:mïëIV ºp’Óê’“O°Z‹60’`ÁƒÁ”D½ÜÖ´n‘„A”°Ÿ5>ûÆ­`3ɪC(Û””€2ú3-tïC04Æ0BD/zS2 Ú´¡UÓXô.!éµÈHŠ#Ú_‡±É™¤¦g‰]XQæzt¿§-‰Z°¤†$ˆå8Œ Ôj”KÇö)‰áÄÅÆ(zB3iyc;¥œë0‘%œ’hÝ2›è°̵²É¬ÕˆDUc<™réØ>ƒˆ DS¢ $ ¦Lr{¶¥qjØY1剎O$ÕŽNβ·#ILÏ&!:’¤ìtRÌa>;Óã Ü¡Åœ•Cí´8â“20›‚P;Ë8îÅrCñ¾{33é,S,™»s[ÓhÔ¢žð˜4]•çÊö)D#Q±ñ$Å›InÜ(è«e;ú Ý­Õ‡“”H|Œo'·Î”@FÝ,Rã’Ȩ]¸pzaQQDÄ$“•n¨ %-;Q %&¥6)q&¢b2iÚ, •H@xqIYÔ6¢H&ÑE€ ’ÚŒž,$›Â‰ˆŒ%%9 £V…  $&!‘”„0B⛬r¢Ë²pCÝdãBÎÕ ÁABJ&9éhPëÃI¨Û’¶Íž„9)‰Tszµˆ !6ÑLjZµb%ìR8Ññ ÔiÑ…¶ÙI¤¤dœm&ØJZP›ÊâkåÒ.×B\ˆ ÑHxT‘±ÉÔÊL%ÙœäoGp߯¢Íaôîä âöHD%Ѱe="t #h®E|¤–Àè:t¾³=Y!jw%Ç+EÂÂãhrÓC´1«¦’ Ö o×™4ýYýÙ§œ”WèH­›ARœ™ÔœZd¦$“–A€(€&˜ØD3)‰¡hu!Ä™Í$Æ£ Œ')ËŒþÔøÜ¦ ÌQ…›HNŠ&ĨEP1Å&’bŽ@¯ &:Áì+³&„Xsi除EypÈĘSiТ#­²ã‰Œ $2!Šð° áµiØ .ÙII˜ëÕ':´FbrºpO—L þü%'†¡ñÛŠñÉ)df¤&á#ˆK˦YóÖ4«DbJ)f¡!˜’3É©›Ft°îÎÀb³›Ò¸^$R™†øÚi$™Í¤¦&‘lŽ%*L KJRÁ†L1 ¤$E 6ݸ!nºˆ(Rêwç®âÑ !y$Dm­º·¢–)à¼VÉÅ "ˆRyÂ#ˆIÈ I‡v˜õœUNdM QñAx*hˆ×â8éÂh6jО³h³¬¬Œ   ;*Q峃ÎÊЩÓ7Á·c_ÞSŒwÕZd‡ãëêò²×¯gçÿOô`R’Œ PMxѱj3ÈDèk#ÈoÞÕÛGAAAAAAAAAሪª*¦Î˜Ï=wô /ïû¤}Û–8="§ŒEóõ(¨ªª¶¡Å¸xŒ_¢IÉIWÔüwàö¸)**">.þ ¦z¾Õëå,ûèK¶êpc¿.¾£ /;æðí[ëh5nMÿ¶Ú9_ÜÞ‹-ï_ùÞÅçã¯G ½Ø2ž‹ËåâøñãÄÅÅ]…2ÿYþ.?ßW&ÊjÍTNž<‰Z­>ãðÚRQYÓé$2"ò/×Á…ï¹´N''Ož$66öºª/I’((( !!áo”¦‹K#ïPIæ¤ËLëoŒ-|l6UUUDEE]µgœØ0ñÓ–²¯L GuÄ=Þ'sÓ T]j¹…sþ.,,$,<­FË™`ß…³®‰T;€$·Ûƒ½ÊIE¥}ûÑ¥ËíÿX{)//³¹æŽÀ÷Þ{çŸþšägøð—¸½O/‚ƒ СժP©D_sÈ’Gÿ(séÏ„?rä±±±~‡ÿÕad\¶u|zË·ÔŸý T—šÞa¾è6”ˆ¯?ãÖ8í%öîóíV®â}—¦«ä˶¤ÿØ^¸zZ¾¢þ•Nïï±|®fË_ÞXöw×ã¥a?º•Ù?|À¯y¨ËT„´îÁ½÷¶#Kw1g£x¨Ø<†ûúÍ ¸UcêtŒÛÇS]S’‡¼¹o0xÂNœe1ô›ðŒç¿ãjZ —Ÿöµµc®ïþ}õj/ïP±±q””œD£Ö ÑhÎë–e¹Úìµç£JJα®’òò®ëFTŽ€VPPPPPPPPPP¸ Â?pݨ(ˆW¥&ÎEOÎ-÷© &ò2R JjÆíšžÞUp]µ¨ðêå¯åC¸†R+ªÄ«Xæ?ËŸðjóÊËøÅÆŸ¼ýû|ù®x½]ZŠ‚(^—õ%ˆÂ5¦+YÂßðŒË©WñŒ£y¯ÁÉÍéÔÛL3‡€$E’Óürœ¿çG–9¼^útª €(ŠDEF`4°ÙªÃé ’löé`γs6·ÈWQ\º= 5¦s뛯­ºœôÂè>â5Â.Ùù{¾4…«|ߥé*á/¤)\E=}e5ØßýÆ \7© Q>þIo^ºðDšty˜r5È$d¦“¤»Ø÷.5·0â㆔‰:BÌáç­‰‹®)Q©ÁMôí‚!8štãß!\—’øOzǾþäR9í÷b{‚‚‚‚‚‚‚‚‚‚‚½X‰ùùÿ¸|˲\½ëMæjž$ jE©Œc%—ø$AQG@qA>ÊyEÿk²s÷}¼^/‚ PQQq]Õ…,ÉȲŒÓá¼¾òuËŽWò^·2ýOcΔëY¯‚ '2>“(@$œ…G¹´ÑB8kÌ©¹ðJ^Š‹‹ªTøÆ$ßOÿï‚èÛ÷+ˆÕüß‘eðze\.7¶J;v{õêe³råÚd{žyüó)®Õî_£Ñ@¢9[U%^œn-µ÷/2²,Õø8¥®Ï%/Gýr/¢‹()ȯŽUy)÷jTTäS¦˜# ש}(¢3e‘i’AñzK)(8yÑ#“ ¨ˆLMÇ$ËHÒIò þÚø)ŠÑdfȲDeA>åJ)ü© þo¹Ž°‚‚‚‚‚‚‚‚‚‚Â"Ëeú‡½ÔÛíáäÉDGGã•$¥!.^v\nJJKþçeGJJJQ«T!Iòu“¯ÊÊJ\Náá×M¾\Neee×ìH’—â¢âëR¦- ::úºiÇKio{•»ÃNdDä?@WÔt«D‘¢¢bBB‚ÑhÏ8ú|±€küîs˲€ x=‡ AP!Ë7øG:€û÷ïÉTÓÖ)**ºfùiÙ²9F#FcAAztZTjQð9ñe$ÿN` É{áhÖ*QäèÑ£DDD Š*þW9z´àª¼ŠXAAAAAAAAAAá‘e´Í?2ë‚  R©.3ÞÂÿ°È# Èøœ*• µJ ×QU¨T*D•xÝåKòJ×¥Þ‘$Õu­¯·v¼X\*¢ þCtÅyŽÔj µ†ožé𭸦#X’|Ñ5 ZFMÓ&õ¯Y û÷ïOÿþý=z4£G¾¤{_zé¥s®mݺõš•¥q£ºh4tZ5j•µZÚ¿øT”æêÀ²ˆ,^œ¦Qk›HAAAAAáQ©… !+‡_d=)üÿhH¥%þ×F-ùO¾'×ü–,WÇE¡z±HVVF£áš”¦M›6Ô¯_ŸQ£F±qãFú÷ïQ÷íÚµ ³Ù\ãšÓé¤C‡׬eš4i€J%"Š"¢(œjúòc+(((üÿ~’ÿ¹üÿòNªŒ>ÿ °‚‚‚‚‚‚‚‚‚‚‚Â@p®áý¡ß²xÇñK!ö°ôçoùdüFÜJU*\²’#…T—uP¸ñ{^²€Êëª7ʧw—^ÐI|–X%¢V«iß¾Õ5¯ÚSŽàÂÂB.\È»ï¾[ã3fÌV®\‰Ãá 33óœû§Nz óžCBBœog¹èsŸªg᜖¸Žµ¬\IžP> IDATõ{ _LÕåÜìgþýïŸ(T4…b‰(œŸ“3yòñ‰äyÿIáJ¼TnËÝ –޽é7é)«×ÍŽ±÷b±Ü@;†³¼ê ÅvõÚ9:ó%, ]ïþ7Óÿ³bÆ ®íŒÿô[&/9ˆçj>çÀÜÖ£‹…×Û‘®¢ÜØöLà?ÏÏTâÃ_ŠXAAAAAAAAAAáoG^ñ‹…m:0p^éÿ©`»u6ß~¶Ò7aèÝËä¡ÐÎbÁb±ÐkÄLò*Ûbvï@ ÿõG~<|áJ,óüßïòâXÖ8ÌÄ~·ÓÁbÁbÀÜÒ3_^e\Îßyûñ©?uÉqŒU_öÇb±ÐîÁ—™ºëôkµ}Ã*JcIN+åÇo¡­Å‚Åò2 m.$@><‘üÏ¿¡Cw^[TQ}¯çØŽ•U[ϲžôçÇB!?±ë$À>ÆÝÑ“6þë–¡¿ýÁ$[wÌã‹·–ø ¥¬7„> Ë|¼p¶ µ‹¼‚7ûO¦ø¬ë¶ƒËxûÉž<ýíÖ L$lå“g'°ëT›Â# K Zwx†yç}c/cãÄáÜi±`±ÜË»³¶ã«•<~xèVÚ[,X,YPáð·Ë*†Y,X,¹tì1оF!ã8µX°Xnâéwûó_ÌÂ7ŸäF‹‹¥?ßm=†€í|Þµ7X,X,#Xý—$ù¬2Ÿ-ÛóË€*ò½C/‹‹¥-÷Ï/Àq–~ø7jS˼½({Ó«3--,–¡¬8ïsÏ-ó äSyùÁvþôüŸç§Qzd/tnçï/}™\ QU:—-,–ÜÞïGòþBM¸÷çÿ3[v½…7—;(aÓOCèê¿ÞññwYœpŒ™ûú¯ÿ‡Éy%Wfáƒs5ïÜ“¿îN}îç‡C a_üÚéë{óïVs`éöÑJ§Òpmæë÷Ç2å÷¼3dýÜvþËT.:K‡AZþ-ŸJ €l#oá'ôïó&ëUlšð2]üßíüÔ',?|¥râe÷ô7éÛÆ‚¥ëËü¼Õ÷´jÉHnêœ[]_}ÐW=~à_Oådõí'Ù²ð;Þxw ‹'Ÿnk‹¥3¿]Eáey*صvß|´â,ÇÑA&}0‰ß7=K­ãíþ8$ù–nÇbùûÛMwÇþêd÷0íí|²øä,=t­'ÍedÉ‹Û#]“g×üÉü}öe¼ÇXûÛ¯üºêdßUQD­V¡V«èرõ5©ÍmÛ¶sÍd2Ѿ}{ž{~ýúѼyst:Ý9÷Lœ8‘»îºëšIEûv-«ëR}Žß?o« ¶þò¶Ï©b±`±tá¥ÿ®¦è¢u®MR ¸8¼ökúY,X,½yîÃ¥§íöòí°Y»÷ÞS—6}Bë–-°X,ü{ʱÓf—­’üëÑ·ÍÁ¶f }-,–[8z¥Ox¶òõ3wWÛ5·~¸ŒöÓ.ø}.žv-ˆ:ð]u¹Zv¿w–;;{~\Ë]C˜¼¥ôJºžwúO¨v’y\Kl±`±´áÆ;Ʊ÷‚­q€‰ïþÈŠ-Çü:g_TÏ,o¬ø“ñÙ‚ÅÒžÇÞ_ÀîísyµïYãó³“8Z~öèwz¬ÊíÔ“a¿Ù'y«Æøm*ߘýäG‹8îÜÇ_¼·ºoyo ÅU¾1ëãmªÇ—ÜV3ý˜‡­_ÜQóù7>̰GýÏÍgθ)Ì[´×ÖÇjÞì÷#ÕÑ3½U™ú‹…V7?Èçk=;ÃÞîÌ c—sì,9ÜþEwrççííór„_MaÁÒƒgÙ ›xÿ‰ ì³»ý½bC-,––té5†]g[žÛ¦òrÿ;6=ØË÷î÷Ûì½xgQžÏ~.›Ç3ZûëðÎmm^ü6}:ÞÉ'k~C~/?5–o¦ïüc{æÄ4ú?ú=yW,æ½Ç{†&¨Úñ5},í¸mÜéRWìYÀðÇ{3pÂŽÓýöZŽ{‚–°3ÿ×i|ÙYæ—¡=kÊå½Ã™³~9?¾|¿_¶oâ½%G¨’kÊvóæo²N¥¡vßïXzÄë,ð{cËK½¨B¨aGÝøFβbµþÂÃ'V³`Ù^ª6ýFÕS㙳ҊÕ:‡ÿ—‰‡k¾KUÅ,yïnîxð6ÐÅ«¦±ÉÌ ‹¬X¿iÃÆU‹Y³×çbõz<5& &÷§yóg™­U×ÇYyxÓÆ½ÂFCw2e^@özñzO¿„ÛW~À]濇ŽãUˆ1qÐl:O·bµ®dÎH†žNÅYÍr|ý\6”È<¹ÀŠõ»nìÛ´kžÄþñƒÉï3”iV+‹‡¹òÁïx€eßB7ÊŠÕúÞ¹§>Û¥Y5>~¶b9dÕÆ/¯ dñ×ìLÈå½eV¬Ÿ¤1ùçÅ.‡Mý‡²—§²Üjeæ€<ž±ò²Ä¸f™E߆³e»så[Y4«Œç—Y±.ýŠÞ)Gørü_å™Ü1à+Z­X­3x±}(óŸëOÑ“?°ØjÅú…güþôd«R§äàïLûúW:Oµb]ú&Mµ«xw¤¬›9n1V«Oξ,ƒ–M4Lym& ?›ÍJ«ëgµygÈD ¤ýLzö RÆ[±Zâ•Î{xaÄ¿“üÒ'ô„cÇhü…¯½gŽé‹ç‘,+taŒË¦ÿ$+Vë<^Ï’Ù:s?~òÛ²îâËV¬?6æ›?±ñ¤ý¯OêxìTÄÞ‡ÓU×Õúw›EŒïKÛ×Âç¿þû¤±¿mµßðÉ¡Õú9µò#æàó»Œ]”a]>ÔÿEÜšIÌ\˜À»V+Vët^èQí±â+¤ÿ½÷Ž‹úÊþÿŸï™†ÞAÁŠ"ö†]c‰5¶㦛ncº)n7Í$›jMŒÆØcWìa°`GA¤#ÒÛôy¿ß¿?fD`M6ÙÍf÷÷ýðz<ò0Ü™¹ýžsî9÷œ£¤Í¸WùîàØw\©9þ>SV{ñÆÚ[ó¸œNßNãáŸòP)~aD;f÷¶Œyf©cŸé?#*ù Û÷¤ÿùÿUý^M‰ ¦ó—§—qÑË[™MíW·ðÆÌé,Ü}– µK½2«fß<îø›ŒV‡¿ª,rü£× X®Gb s‡¥ðêŠk æ²ãëål1ÞO¢^Ïþ/_`@Äÿ˜JL±ÙlXm6D©þI ’h«/·ÚEþ;fë§SD÷ACÖ;• ²,!Ÿa…RI÷îñúþé=|ï½÷ؾ};Ë¿FŪ««YºtéÕøëââÂÀ}Q©T(•ްÚw-7Y‹!”A÷üz½ýÛý= üµ-ÞD&qùà]¶däröÈFnÖ£ßþ"!Ò!VvX¾¬Vñì”|“œA«ÒA /|Aÿ'«Yp4½^Ï·“‚ë«·Ze UnÄzÝ$)é$¶éÑo~ ÃAÖëk 8ݤy|P^¿–ÑW³ù|9ç˜r2`DB8rñMz8y˶¯fbùèCNW"©ƒ™¼ÑQþÝø`ªÏ¦ÓÄjR{à-F|’†[w$Žð ¾Ëôè“·óÚÈT^YæxJ&I"ör=}¯Î¸Ïö^ ÂÕIsÎîÃüÚfÖïàŬåNÙSÂn·;Û±Y¼éÐy›ôzôúƒ|3g8m:Œdþw ùs4=cƒQ©çd¶yŸAo{³B¯'ißÞ¤ìØ,~Äõz…Íz=zý¾|nþE—ÑŒ}…åôèõës|[Ζ!!b5d¡³­¤c_3.XEÇÇ×Õ·xãßy¼HHpá“'îåG¸á®¾#O,ß1‡ýže³,;æB´P²óoLÿ¾-ëôzŽm^ÁSÝ!çÈq2kcù\¯G¿û5Ô9©ìLɯ§[–NbiuWbM=ÿyûN,&{ΚÎ{«sÓ͵^N5]À„¡³XWVƒÝ™#ûØ»/à¶Ø1OM>Íó_ßÎç]™¾— ‘í>”ÖšJRÖìÆÚýÖêõè7NG¿i«òØüæº/Þç”›ÚðѼu·GÊ2²Ö]@òÁo8a¢>º\OÎ4ÛfC¼%k‹¢cŸÙlØ%©~¿É²„Ý~ûÿ%QBFF’ìNÚowÖ!!Š’ƒ'ˆ4NY"‹Ø¬6D¥+Ú¶ƒI¸ú={k©„Œ¬S¤•´#F!"Þ±o ê­/wV+Ýþ®­žÿÈH ø•µþ>!#6¨ÛaçvŒÓѦøržw+Æ¿µ£~_îþûãLK°svã 콟`½^~ÃTޝÛÅ¥ÚB6?ó$uïì!Y¯'åK§]GŠ&.ùγƒÀÆñø'Ï1rØS|¶þ]&µôAQß·ã–E,9ä»FªD InÊŸe$É9gv;’ì˜Ã[ãe¹¾Þ[sÙ°Û­¾I2²ÝŽh3b$ާ_ˆÑÝBQ"!Úo}_¬§_öýµÙm·×£AÝv@h$¯J¢ýö>ü>/Kµäeîá«÷ÎÑfôC¼þL/\% Q´cw¶Q?¯59d™‚ %  {YEvö¹*?5ó–pÉ9Þfüùh67£ÍhF3šÑŒf4£ÍøSqto³×”Ñý{ÓÙÀ›ÀÖh5f,]ždvï[Æ ÂãÕ¸üÚíÆ?ž^îfH€ß|CÏ‘º¿ mÂüÐn½‡Ñ3¯˜§â½åôåè7>Gk“ã‚mªª¥¨Fæé÷&ác¨Å`¶4x¡Í©$5jáç÷ ¶¥®€¶Ïpzä‘/I½_fn7ÇeEanZ«¹‘›Ãõ‹!øFÅÓ?a0½ü<ñoå‰NkÆÒùžê냫ՄÙv•ìë±Ä4y®p`à‹?ñÓÂiÖXZr®HU݈Ò­ãé"ª0¬`;Âkw=Ì·ú²zekèäEè·Í¥½U¬—µ,“䃛©¾šyCµÔÙ•¨ÉeÝ/òÆg{) ·>/°vë õB%Ë€‡±ºC]5uÞtssm¢ø©"/ÓŽ¹¤Ñž@t'â:dãèNû>¸Ó#ï&…$qdûdwuü:¢Ç:d]ärU.9gFÑ- ð '6°ÞeI;„·² .@ç¾ô¨¶S+ãÀöôé¬BFÒõZvëoÁ?ŽY¸ÓÞF@¡PáªVb®É"ááBŒÚ±òv,†ªl&Œ€\²/ §WœÚqYÊÔ«Ùä4jÛ†Å`ÆX:œ.¡€:”v¾áDç7öÜ®ÛÇŠÍ1(–ÀP-bm•uF ÞátwwE’nP”1~mg¿u< ×rÈÿ—Nµ€ªïK̉wîEe ¡HžAÄô»— -ÜÑûáߢ„×:Ú%Ù‰EeT˜m€Çƒ€ Z¨­®¤ÚPGmm-µF2¹= fÞ¶çhïü¦«¯/½f=I¬Ùø‹^í i´Î”éM@埮–j‹èÆK/÷ Ç´ÉYöiWqìò fôðÂlÓ¡Óz¡BBƒ~×zôúc ³ÝŽ(«P«Ï±fI%SîOGß[Þ‘™³ãuT{‘÷OŒà’$9çÓ“OOtŠßg2Wx†3òõÕ,{oþµ¦ú=¡j;÷XÄÌAmÐXìõi=‡¿ÇÞoÒUã0YÈr2I;§0¨# p%*®Ñ×sÉ-®Fôòæ‘ÙÃq7Ôb´Øøß š©@A%gÖÌclBý¦ñÊ×G)¨;É¢çþÂð„ NH ÿ=ŸrªÜøê»Ü䟦a ³.Þ@`?‡$qøH û~^ɺU_ñÝòå¸\ *:·û¯Ìä¸qãÐh4¬]»–ŒŒŒßô›’’Ö®]‹··7³fÍú¯î„Ýã D¥R R*Q* Â?ËMøhƒ¿›©–*ÉŠÉl­7:ü"j$“ÞÉBmi.ÙgGÐ-ð‹ 6 ÷â,€k§™|¹öK&tÀÕ&¡Rw]áñåOÒÙPKm]-é6Ÿ2TŸæTRž.ä]Fç (’Ž^!¸` ÃÔ„´ÒøÜÁ7÷[ô"‰½;Z Ê>/ñÂ-ÞâHh;É+”¶ SfG”sÈË×àî„·²ñÜè†þ•ÄoÓÝ]€€Ì ŽïœÂàN€àB«ø~D_ÏÃD5gV¾Ç³/⼓!¨ÚOâƒUßp_ÿÔ6'͉†çú¸ƒÙˆÑ|•œëh–ôïy°ßlkœs+HØ­ª°a6™±5]‹º}¬ØLjÁ±x»+qc‡®óÂêghe¨¥Ö`À*ßþìV&“Åaä‰ËäþˆñpÌaH{-îõ)¸­*«¨­«ÅdoÒ±Œ«ÉÉ\¹9‰1€ÐÌ]´œÙ“»¢5Ý™6úù”£;^£³ ’ÝÊÙs%ÌYò(¡†ZêŒ&$¨Ô.¨”† @p§…—/A*ÇK÷¼ÉžïñѽñÔ(¹õ²¡©¼}'(£†óÊ’e<5¡3næÛ†/í€×Ù²ã]úøjQÈJ ™£;&3$ÞA[#º¢]VU€­à‡SÏâv÷7<Õ[Ñ*ãâ®A!Z¨©–@íG¬§­ @í¡A®«¢ªÎHW8ݵêF{K’\hOLw6îÈ¥ãF"(U¸ØÏ³|΃ŒJH Â,ÀB-».åòåo™9dÏ._ÂS®§ ‘²‹xrüb2€’´£¬ýl…²÷ÓÙÎ:à£]™ˆ¶dÌ[ÃÒ÷Æ2bà<•ã¾÷Iö»«Üй·¤s8~¼ kQÙçõ´êÛ%ö¢ý|ðôú'$Ð?a<ïlÏÂZy€WçüÄÜÍÈ»10!wY‘Œ£ÂÆÄïq¸ IúîîNH`à€úxže'n€å _?5ƒýèŸp/O)G.ÙÌ®bõGƒ2ô3΢úec”-ƒ#*Pi‡Ñ¯—¢ÅDmµ„¬ñ#Vç…Î%—¬ wÓ¯«Âq{ aÊåë\§K(ãT“ó|{ï‹c­¤D¨ÝÉóO¯fÕ‡#>lƒxÿ¸„h9ÎgO/á\õ<:d³>ÛFò¶w‹?›B-é|ÿÙj>}ã~¦ŒžÃæ?1÷µOYðÔ(†%$0ookžÂà |˜ ˆu¤-}€þ ˜pÓŸø‚“v(=s”×óÝ'ñà˳™ñÌwì9W5GxwúD† H ÂËl¯´@Ñz~`«>@ÿ„Ü5z‹.Æ|?žæ\Ó‘Ìúë&²-T @pEE* &ÍâÓÄëÔþ_°[j(+Jåói#yöýj&¿Ý‡k;¾ãƒbûŽõ¼óÜ^|4þ <üùŠ(fÓ+Ë9]½‹î½›Á¬ óÊ*f ÂàAC>ôcRœòw‹Ž »_˽ÆðÔÒ*±c› Á®”ÙŒf4£ÍhF3šÑŒf4£Nqbg6KŨ±c™8q_5Œ 'Z/Äïd3¸‘D’¥íZø£m „1]ÜËíÝ ø­öгœ¬ò'(¬Á6Ä[¯‘uaD]) H’ë «YS]*{Öbþ´Á »kyáf;ëÌ:CJÛü#ÃðÇN½®Í«Q—ó(lôêÚHÙ=|令.!§º€â!Ý i¤•Ö“bŒ"2</‡ÆÃ»—уöÐeÓ£t–î0I’‹õÖü)€ 9e.„Þ¬ÅP]‡¤pÃ?4O²‘g‘dqx°€TWDÒÚìò|†g:Ö’s³£¡†: <üýñóÖ:½DœX¬õ¯ýeü™ðù²˨1c™üLƒ^‰gS´Â¡(•T~„”0U°¨dä[sæFÔå| %·¶mÛ" .díÚµ³£WV3•N‘vÏ º[툷ø¼Ò ?3Åó8æâ¨Ü‹.áZ\¯©ØwïPº5¢ Õ§_àZÀpzº9d‚Ô•¼0üEŽù´gè½]𾟶64**P*nÓ•·éyኛÎÿ@/Ô çÚêðÔlŒöÏ¿‡Ñw¦÷ölj%dWa8l¹ ÔZÅ™ßñxBcŸ|‡ÍggùvðçîtòkâñšÂ±Ý|ýàpFÜ=†ÉÓ¦³ì$€ ÎLÞ…E<–Àøg°ãB“„ù‡9"w§s  4ø„á£{&2vÜHf¯¼ÖȰZ[Í©‹zZ=6†zŸm«Õá•øk,Ñr›ÖÚíÉØq–Of æ®Q#™öȳ¬»¤ ¼÷@âËùrT/z|KÚ–tï†aï<ÞÊèÅC}C°ÖÕ`¶ÖP^ap>º-oÿ*¬ìxß-Yì–'«ã¢»óñ•!éyäZsØ÷ó÷œ |ˆÑ5ä—VSY&;~!YÛyudz]ˆjp/Zy†3zÁ}”½þ “ÆŽ`èý;éóÊA «g =âãéW²ˆ—”¨]ThÜ®³ö­ƒ(ûÎæÇäôÛ&ÿ§œ+Õ0êÍÙÄŽÈÖ¤|ûXÚ]¿Î5DÊÓSˆïΉ‹&¬®f¬:r6Ï‘œöOêucÈ=s˜¤‹ÜòV’×a1‰Çßcp€J»‘ª ?1ç?Vý†‰Þ$wQýÆáÿͬʸFžú1F´3`1™q Æë_mçÐÑè—OãÊ¥sd—ÚÑd-#¿Ç&J"yÅýì[¹ž"”´ýË÷;¸Ÿý;Vóö%K6é)Lù™‡5¼sDOròZ^œÒ‡ å%~xñ Þãß`mR2ú-3H_¼• #¸\[BÉ]Ç9~t.]dû/ù‹O¦©ª¢õÀŒÿåM¼4ª/½Ç~ŽÛ]ýhíˆo@>犹YRJI‰ŸyUЄF*Pßé<7…ÒõµÅ&ìåÈ‘$’–ÞËÎïÖR¡¼5sèÓÿ]’ná½Á7Ùº¢Š—ëùóQ6ì+F[º“Â'Y²÷ &õŒÀýâ5Z<¿‡£«ãø[ ~÷IßNcûwë(WzÐí‰9zðG¶/â‘&–oÈ& ÷†Ïx–§ÞÙÄúž¤˜+®nWYüôg¨¦ÍÁd='>R°àÃC˜e%®×¿§vb2z}2[_ÌÏßíÀàÁèW7päÐ’7¾K—à›ì<–‰‹‹Òy&4øâã~'㻕šâ"vÿm ÷=¹›^k“غb*Á¢I©ÂÅUƒªLO™º³–éÑïÿÿÒË;§aÒ·ÏÐ+á9¾ß¯G¿¢;XJço‘”tŒ5ÏçðÒ_oEXr! Ý ë70;p3Æ=Ëçû¯cÿ¯E4ù¿Uó4£ÍhF3šÑŒf4£Íøó cøâà\:láÙ™ 8}èõÆŠ¾&,çXõ×cDM~„^Î ¬D]É~¾˜s‰{Ö}Œÿoi]Ì`ëߢŠEϘ`Š-Ò† IDAT)·Hذh~)üœŒh÷$ªÕsÌ[sÁÔ¢_¶‚}«w7o æ i´ñéK ??®ŠrE„‹FK}& /îâ‡OK˜ºyn@Ui15EÙ t;t¢d½ÄºŽà?h*ñmýœãõ`Øü­ ›ŸÅý$gåF‰~}®…³csQà*Ø1){òò=u®lö2².’¾ëAF,±›Ô¹_ƳÍËÌ™;1õëÙ´6v¿9ßïs´M[^}˜ï–eÂÜwèeƒþ©”¸*¹aÞCV+®‚L£fvv75®²ŒT_."*@vU¡4ÚôÍŽÕU…J)€ÜP™nêV;Âÿ'öö_ptÓŠ·fÌ>=ßÔ$òöÇ?³cÏ`â÷£óéýè| ŠÍ¼ÉÎÃ=yzÅ|ôÀ«ýì^:û6p+Ù„ºµ~M¿ßÀ›Uh°ÿ *yÏR6ÝdýÀøÇ¦QÜöUŽ/‰‹J ~ò\¼éæø¾{Xf}¡g–˜Í–…o1ìË0æ¼9‡i=ÿÀ^9ý ]]pµTb¶4õ4´cquEÝ4´ àüKP¡6çr|Õröo©¶õàé_cr\ПÎc$ù¶·¤$Ú±k”Vâû¼É‚ÏÇàK ;þú'“ˆ~¨ßoâÿ1 X̘ŒîhúO'AhZkÕ’ø('†Ñ³W[‡áÁ`Á.ÉÿF¨ô¦ôZþ•òÆ[ddÑ‚Å+Žváaø(ÀªÑèjDã¢À]ãÊØ±Y³vÕ]ê˜;wîÿ/¤£»ïN`P®®®¸¨”¨T  šä¾Søgñ íˆgX4âÀÄÑ÷?äôþZE"\ùk­6I¶ÎÂëÂÖIšH¤oXÄö ›¹7“ÊüùÎøjÿ‘ ¨˜Ìâ/Ð0¥o൹ 9¿óEâºÎä󤙀Èù•_²wËN®ÆN¥­ìÆ“,=™øç^ ÆO ´å‘õ[y€‹,ìý.Ç®dj V‘wæËfòFǃßÉ®x»?ȪOÒ ‰‚«øæ‹›íCv™š—ôz"ŽÁœõ‡9“CX‰€xä+æìú A´PWgååw}ùñ«©„ ,Eƒ5Ý”Ø-äž»JÊø\Äj6`ö/¢ü|)ყ³ä/©ùéf'&RÐí!н…rÁNÄ[9ðÎ4,MdêÛ#Ë‹¢Ÿ€nDµêÉÉ#{Pé<ñª¨£Z›ÉÏßlcÝ WGìý©$°Z‘d+&I¡ ÷|Cz¦Hdy=§rzÓjÛ0¡ Šðþ]éв#]ò)ÊË¥¸õÃLïãí4è¨pÍ]Ëì'zòjÒÚ"Q'ƒ,¹¢õnCxì!>ýÜÂß¾[€ËÑ5 ±Ö¥±zÁ·l8q›«…*ñT‰ÀÐöIï刎#ø…ïb©–¼#Ëyõ­”iˆJÚôkGf o<è­¬&¬¢Œ[E-užìúx«¿tôN!§RrÃÞq3ºÉ·†;Ã’É©”BD÷ñ Š€+‘ÝiËßþ†ŠU³yn×2:Íâáõ÷3ê3ÁCÆàÇýS#(ð–­Øˆã©Eq¿0ñçYþÀ›(ÞÙɦ@£l" Kvl~=éÚ;žöJÀÕ“HO|˜mˆ¢“ÅÆLrºÎáÝÎÆ?˜Ž'í­>t©oË6c^ecüiV-[ͻţ˜ó@¼š•#ÿq4{7£ÍhF3šÑŒf4£Íø¡ÃÃë¹ÕÎÌ@>ÑtŒ,¥ì–#ƒRéÌywK9hÇXÆšy;QM~ŒiC£œÞd&J ÷³èñãôüùcFøü³v%,†t¶/ÜNy̦ÍìŠ:LvÑq1*LçB‡ZÖ…T*%‚ D…ª"§·¨;¾a>xÔaÄFÑÍ@´îAèÐàîQ‹ÉêÌ‘–‰ #‰{Ùw±r~6£¶Î£·ÀF]m-Õuñ´t(GMµçÙøÞv¬ƒîåÞqðìÕe ¼;£‰RLYÙnx¥± T¢Ä FFV±Ôæ“àŽ‡ZŒ]Ë¥ÔØø%¾B¥@¨µw.ÚKâ®Döìù™…¯?Í}ÓžfΨ(ª‹ (*©ÅÚP¥¢R"(”¨\4P½W§04ÀŸ ïÂØ³ØeÙPFAnj\]APÕa0‘åã‚Æ7„@÷ŒÎ“\æ|lK"O´žåÔØkcÎË$3®5ѨP¹Ua°UQ,ÖajÑ’pµ‡.¨âé¾øküðÑUPgqæ ˼ąÎÑ´úW·ó­1«”€'º&{;."—kO‘Z2ž^ž@øH0 ߋǹd²c4šœ9whB<ñð²R«èÂË«6±kO"»¿žI\ŸvD²¥‚¼ÌÇ8ÑÒëqV;̾ÄÌ{j-ƒ}Ñ9»•¶~'Ö»b‰oé¦D6_AßHpeðÛ‹xàòF¶V€2lß>ľÄm|óÚ"[…üëÆ0[™§w²öÓbÆ®Ùù CÂjÌbß²mdÊ]™úüpÂ{xÚüoÙz`»WÍ¡ÿ.D©T€‚BÀ‘+±‰ç[`{ºïc}Re£ýn-+Ť ÎàØƒv FÉŽ¬hS®~]þó° V‘_â$zѰuÇçŒKJ#­^§lD§g” C]%¥5"(£˜ðò7|<0sf>•(m±X-˜ü£‰·^âèÉ\ª¤ÛŸ•N&«W¬cjª14˜r‹¥³D·6Œšû{÷&òñ˜JÎ\âºý_0W*tL¡t*¹åúr…B‰RÕÄ ¥T8è´B@!xà¡+sæ–0ÜÌ%¯CkZ 26nàpúõ&´¥­ªãÿ€û‰¬P PŠˆEOKÑBRB¥0WݤÄhsFIPÞÁô?Õ©¦46>ÊΓ$Èv좈 P*A@å⊫‹’Øq´ŒŠh{~ÜÝݹoú=¸º¸àêªBåââ”…! oåúü¥ðÏ‚hÂh¨¦ÎYäâ£Ã3ÀÕ¯Õ&2IO$P©qÑ8ù©µ‚"ŒX[Þ~<£R¢(U*@‡Î«„ü§w«6†øÖe”V€ÝšGþÍ>D‡Bá‚‹¦3€¥œB•14_dê*õü0g7s_aj§q-‡«y}‰iá òk+çêÉ]¬ÿº”±kæ:x‹Ý‚±¦ÊQ'.„Ƹ¢õ¯Æh¸3=%*¥€€ÏÛôÁXœM^l4‘€©¢˜‚ü2L E*ÍQ)4Ç^]Bu}®‚¶tRDi `+'7³€I@lXëÊ©´S¡ÖâªÆEhÊŸã«ÉÏ(v†fõÀóˆ\“³ ¿–´kQF¹dc…³m …›º5jÌÕ©üðÒn|Ÿ{‘©Ý‘ ÅܼÅ% ºÖ:Üœ–KãÍ\’Nœ¦Ýì»{´*U( Ê_2ø*8eD•Â{!¹Žð+¨ƒÃˆö>KêùJJm}ˆ¼žáÉ6îäŸË#ôþwY²1‘=»IÜõݺ¼ÀÚ¯§.MämǼ™«Ë(È«¼Í›}T(¹±UMe1AÊE èÐz–Q+:eÅüL2c[§ëÊ“Ë÷³gw"{öüÄ›Ï<Ï 3zÓ¶u/<”x­îûO y¤]þ‘Óï¦_¤Ã{rè;ß2óÒ¶UüãÝÂŠŽ®=ÛÒÞç2GNÖ‚lîxxÁO޶vïaϾy ÷Wƒ$!ÖÙ $£u\?·Ÿc7:û´#®ø8L"QÝcÁVƒ©²ÜÁk-uTkThÔ®¸HV¬·øªlÅÚöY¾ýPÍçïüH‘\ Ë2¥7 SÞbJ·1tô¯Ã*¹ ¶e°î‹ŸÉ‹x„ ‡÷³'ñCFwB%Ê’«H}^Zs7òòk7xþØ~ö&îåÇ7‡ãYgÂT]ÆÚZÇùsU¢P€¬±j»ðÔgãNdwâ‹ôövC)š„‡¿3ŠÏ#ÝPI§I=pã"Ç3ñòˆDÄÌü§lWH),Á¨èÃÛ·‘˜˜ÈÎϦѡGZ@OR;Æ;çr„J¥tˆŒbÃù”T_¬þ‘? " ­;{ƒ¼È Ú±KŽz$Ñ™‹W’±Ë"5éøëB3ó’²7q'_?×7ƒ‘ÍvD;€2²ZƒÚXDé-bSSNµ·§ÃP*ZœgÂÁe±†kGÖ³<1ŒÏ’²wÏæMíŒ«ÉæŒ¤D‰…›Ùy”ÔXïàqÛöì&áä½üåñØz&‹ëÙUºY¿ÍED»Í)“JHr“‡h² 74UÙçÙVWNŸ·3*ƒŒh­"ÿÜ v~ÿ™ŸˆnÆKÌ ^4‡‚þ3ÐìÜŒf4£ÍhF3šÑŒf4ãOD;F>QÊç˶œ„)'™LíPîÖ:.µ•×Ïqærù¥6Îä·¤³6e/}ÌÙàáL÷®âlr.áÝè,näÙiëh7ïm¼/§,ÉxFu%6èÜM™lýÛÇl*jËŒánd%CÖøI6ŸIᨭ éxæn¨r\yM7.zêeejR/EãGç!kضìêŽFN¥•!F"Ìz–D³á¡áèðgÀýFV$'s¬. ËѬ=#P©Àtv)³?ÎÝŸˆKj2z¥;AaTÞÈ¡8l•€á"?¾þ Ç”½™nåRò1T-ºÒâüjV˜ÚÓ-ØÍ9¤Odðó‡(K6jrÏrò|E¹ôy­‹ Æ»6…ƒ»¢ˆ,>J®5c‚üÁ²¿ÍXLÔ§ßðtß@ÔXn^æôÉLÊËT¤žK#6¦ a·¼SÄ:ê Œf+pí~Ä©À1<ÿÚ" Uyþ 7KÊ9}ü0. áþ,K—uejg Sn W½G0Fk"kÛJ,Ó1oÛc´îÄå’ƒØÞž6GÈÑ„3ȧ+=¦obYj2GM­±KÆÚãèÄÈǯ³zy*žÌdî¿„ºß=„ûÛé8`ûÖ^Äàv’´›5´é׋~QWÈ<¤çÐ~éÇ(k9u£fýå[’ð÷¤|ïI„sÿ¥×çÆœte¯ÁŒh²·3Å„/ ¤&£wñ$,̃kkòõaîk…)ÇÉó‰¤}°†â‚|*,夭ێWŸ—×jþ}㪠@]!SO` öD!KH²–¨®qL}³Ï_ÀL££ÍN]e99´IÐ6=[ûÒ^'Sw-™\]"ž÷×ùŠîˆñUþ{}µ\à›¯.1d`,:5Š›)”ŽïCëz]š„Íî ™*Õqz[’ՌٹògTÚ´ oîô_š¢<²óÊ‘n¤’+»«êÈØÙý8øõ.vøUÒÚS‹JumŸž£Ó+œO/–³9±#}üìXªKHË(ǯGo¼ÊÒ0ÖVb¡žÌ¥×V³hQ-3ïIo Êß²“D+UÙç8u1‹‚VÎä„ЮE8ž¶ ò/]"» ét¡Ãh¤E¨ÈæÒ™ ÊÊÍœ¤ž UíM€ Îìä¼ÿ0 8• n1q„4aæöŠ.§]¥¬ÜÄ©¤$¬±ýþè|Ö/;[Û .ÊÂ=aJÊHÛôw– â¹ÏÓE²±œüËÉ)ÌBy*‰à±_É"kWú{ q9Ëጩ ‹sÆz^xø$îûŽqê2rÿÈê²aÜ}gn`G˜¤†üù–|Uw€7fê™qè]F¸wâ®YE|½h}½©ÈГë5„IÚb®îú‰UC•Á᳸tF ñ þ”¢žS˜J§N\Á5²;ñ7daj/&tvE(ÞÃ)û`^ó¬%¤Ü@šñ14HÓ-[ª)¾zŒœ,Ü-çcV¯H4E{0v}ž! V“S^@þ|®žL!UŸÂuE C»ú“¼sG“R8™’O¯÷?dLh“5±Ö’¾«“ËÑ* É*0Ñöî)´6rðÇå$æ¶`Ú̉ô‰Ô¢ÍT”@ËÞ݈öS£ªN®à“-øÕ~æÚ¸´­·0Ù1ÖšÀ=”öÑ:ê*Íh#ÚÒ¾m0îX¯íâëç42O§`|ˆ™³:’¾b)‰§Ï‘á\çVرšŒ˜ÁtꉧW tæ*Ž­\®œ`&L»‡þÑh[ôD:¼…Íû9]1€·çÄ_ðïÐ’eŸ°>í Uš‰ÌŸÕ7|ýü9·è36g@ǾS˜Þ/Wÿö¨³Ï³gãO*ŒåÉgÆÒÎGWLŒ—²áÄ ®šF±à¥þr‹¢ˆÑhD§Óýê>n:f1z$ÆÞÓho?úù :¸†Ó¦“†£Ë–°ûtn±C¸ÿîxªÕTžKáÐŽí8“OLJgl— \oãó¥9vô<¾ù–—û{9 1¶ZÊ+|‰Ò/[-¹'6ðáÒÜtëÀ¸GŸ¢_0€HÖ‰C”FÇ3¸gG|\¡AÛŒŠ§`ó$&§p:3€‡?F'ÁNÝÅͼóí6²Ëôzb“b„F*:“É„B¡@­þçq¡ËÓSH7CéÉ£$Ÿ<ÃÅìb„ÀX‚ìYdTV“zœ}*âü-ܱ [Ž¢ñ&¯oÛïÐNX­VDQÄÝݽñ‚•êÌ4’’õœJK#-í gNÝ$0!Øö ŒŒ>Ï’o9s6óù%¸~Œ)ñ1ø°}ñަ¥rª¢“¦LfP+Ý×9f4ñ¡wöE“ÉôO÷.-/ÞÉšÄãèOŸæÔoxg­Z’¥ŠR£]º„â"¸ã¡4Qœ´†µO“z¦œ–ýG0z`4n¿Yi&S[[‹§gÓ,Ü&r’w±nÙZv^…“§0ª³®>±ŒŒºÁÆu»8žrŠS©ùôýÛ÷ÌŠÓ€DçÁjö-\¾³gI»V_ÏGx~x8•5(u¡´ŽòA© ¤G¼Šôý'(õlCÛoGnÏ&¨®®ÆÛë¶)[6•s~ßj~>]‰ÚžKn¹’ˆ¸NVœdíχ(¨3Prí 5~=ˆ‹ñE¾´…2ñô©#]E§q Ô¼¯?bÃ…<äÀɼ:£jMA¾dïø†•ˉ5É£Ú£û§áŽ¿Úl6´Zí¿Æ °™k¨0…00!V-Ìü~û3Õôzã:GØ1€Âô$ìOâRê NÛÚ0aT‚ÝþÕ¦c¼uuu¸¹¹£T*•×ÿëôÌsðáv¹lÇ`°£ÑépwsÇÓ×—/ ªjøû¢ÆDU‚Öí[r=#‹‚ÂÍÙ/ÀÛÛ‹7ÞxÎ­Ö FF£ÆÅÅáí(8—✲B£Ä•ã›Ö±÷t6Á#&2qx,Þ 8ÔÔÔ ÓéP(…Me’óÙ¸ÆÝÍ]Hýæ3¶d*èÒ2÷&„¢Äüc¬Øt‚*±Ž‚K'1õeØði„^üŽïS8}-€‡?BGÑ•=Ÿ“Óí9†E*Pºûâã¡áô’/ØzMM¯a“™Üà ®sÍXEqÖeΟ:ÉÉÔ }ûvõkζ{˜Imu€LyºžtË-Þrš Ù7ñj×›ÛÖ®ÝFjòE\{Œaò½}V4>ÏæKøtC^u¤ëSQÄŽgèà|ó1ëÏç`÷›Ä‰E-Ù°LˆÚp:v‹Æ[R‘ž5›pÃhàfÆijú00VÃþM?“¤?Éé“Eôû`£‚$$[åe:: îJˆF…µú&úµ+IÙ”ƒŸ_—õihºŒeØ H‰Ÿ°d_FŸn<0gí‚bp+aÿO«Ù{ª–Ó¦2¡¸µTKQ©;qÝ#ñPäíôsxÅ&Q‘Y¦ IDATZ]ƒQL§ž-ÑrɶnÛCzY-5ùç)ׯÛ&—Œ-ü}C:«'S¡íX†éËÍ%Ÿ°îìUjÝ'òöcñù¥l¥¶ÚŒÊ£-F& *L%qÇVœ–þÆ£ £Ã¨Îäo\Éî”TÎd9÷výy’°먕‰ë„ %^áÁx{¡ñìȰQ}®'‘¸{ú´“èsÝèÚ#]$1GØ´&™’à$ĺSvV¦ß}=VÚ0™d ±ŒëàWd{ü”ì[³ŠÃ9aLºo"}ÚºR|C U‡ü´®b …eÄukIx\?ÄõËчô¢­w»„ÝW-Ø0Ôü»2(Ö•cùyg2%>mhÒ‘^¼1št´ï‰·«ÒY¯Ž®ƒS½‚ÅkNsùz.nq£éAßþqèÔYlZ¿‹‹gN‘T¬¢M÷‘L˜˜€õâ~÷$õÌ)ôžôîéOm•ñ=[¢:¬e9pÖƒÑwÅ * /s¹ šŽ“ï¡GõøÎ(òRHܹCgà®·gX¸BáA>\´‘Tý‚^Ê ½Ý¥TÅågй‹hµ„¥®ñyvi9ìÛpœ¢Ú"².Ùˆèo:um‰N¥@°WQPáM׸X*)1úß%Oÿ¢ZXðçÉLêãOi±•€–„û»#Èu—ªi×9e…¥Zâ{Dân«¦¨Ê—žC-^Æ¢5§¸Z\†Wìú„Ñ*&œÐyç7s,߯ÀÖÄÅÄÑgl/ªma×Áýœ­Äü7†á'ÖPPáIמ-qdDs5eÖpú è€*ã;–¯?I¶‚Û ¢o”/î:BÂh¨¤ªØNh×δñøè'±#¦0ª¿‚s?àˆJð$$Ä.„˜–Þ(deå¡1- ñ´q£Ä•v#ðRûÑaL'2XÊîSg)dï?Ó-†ò"®¥©˜úÞ3 kíÍï7ý:Oµš’:_ºv ÁPp–£ Ø’ª“zΞ7ïMæ¶$rmî„FùýjzŸêêjt:f³ ¥Â}¬i‡n¥_Gèr9³1å²ÙüÕçÕÕóÿ—åŒÿgl¢9-[Ê•Aø–×ËBïwÞ§°÷H¹Ù­¼ÍhF3šÑŒf4£ÿ·`4Ù¼}/3¦M 7·€¬ì† JÀb·ã¿é;\– Fc½ ­ C»|%˜hÙò5ßÁ<ñOò­ýžš—›ÝFII a¡aðo(øï\{£ë(çü„ãÖhîº1®¿¯5cÎ1~ürÑoÎPÏ?ªŸÔ|ÿ–ïÉ¿ãjÙ´¾_ªÿ÷ì‡ß[Ç?¯ÛjµRVVFhhèïÜ Nÿ~é;¿¼¿}>›Žª¢¢•JuÃáµuµX,üýüÿm:"ñk¹±~ß™´X,TTTò»)Éïÿæo¯E’$þ?öÎ<>¦ëýãï{gŸì²I!v±«b§J„ˆ¥¨­¥Õ*µT)mµT«µk-­ª¥Ujß÷؉ vb5²ï3sïï™D¢‰]«¿ïý¼^LæÎ½çžóœsžç9ÏsžçÄÄÄP´hÑ'(áiæôóó…«×®Rܧø3öÒóÏÃçigjj*iii¸»»¿´±žs’Ón`Ñ£¿x„¥.õùªuu éŸ'žÃÚæÛ·oS¨+Z­ö¡þÊõ™mÍå–É>£ýsXÌ‹ÙBFF©©é$'§’”œÊ‰g0`f³YQÊòÁ } m×G{ìØÙ1th4*DQ@´æ€¶¥Ý¶EüÊy#%9ó±ãûÆxyyårø¿øù 2YéÑ,ê7 »ï–Ò¾ ©!K ä7§3Xõî›Ü´„wÊkŸòX€¿ëÏ®›ðŒZé?'ó'½Çí|/ˆNy³¯Ö!<¯}ZYý¨þxRä­ëãGÆÓé¡Öÿ…GR‹ÇÐúÉôã§©ãã{øYaJ¾Ã…S¹–f>6š}™®ÔkÖœEžd[š™äSóè;âÍû5Æ×/€¥ªõ“ÏY–H8ÎÚˆ3œ ¿F“YifŸß3ϺÖ|ú¾x*zÀ _dŸ½¸²ž¶s¸¤åYõÚU¼¼¼‰C£Ö Ñhòu˲œã¶¬?Cæä™HññÓ¨Š_½úJûX•Ð (P @ (x$„—î”|qoÈ.G̳˜~Ñ¥çF*:ϸÃGû´o3cÒ:Sªr/j:¾Èz¾(z?É}Âs¼· òŸf<§ó÷䥶¨ ù9d¬) EµZV«E¯7“•e¢\¹R´mûË–­Uª‡P¶l)Z7C§Õ¢ÓiÐê´h4jT*ëÙ¿ÙTÎsâ¢üpoÉO<¾ŸL¾=ŸœW«MxVL ÷G2Ë~¸‹}ÙAT/ÿ,gÂÿ]Çx±ºÉ«%óyJ ~žà‰'Õ:ž„×>-}u¿øL­žëù—->þ¥¹_4$É‚d‘HHLàå%’Að®W Q²OêÓÉú¬h_‚ÚLqñÄ‹ÊÊõU€ÅbF’^öØùOL}222D³ÅòJÕ-++‹ÙòÊõ‘ÙlÆl6¿rõ’% I~uÇt|BÂrŽ˜²²0™M/®²„X¬ ]?lJ3é)©ÄÇËÏ!“…œùm‘,$%%¡R©sm\È•òÐÝ›ó·`‹øÄ\ßÅœH`‹$c1K˜-f$É‚5^¨GNœ9sž3gÎ)BÆ77W>ýô#«> ÈH’„E2“••‰$›…ì~e[°lsËrÎu±X2ËÏ%Y"!>A|É_ ÞÔïïƒ9>žø§§2ÈNÔù¨–„$â•!¢@Á«Yua‚º¥©ÚÊ—L™$ÅÇ#?á| Uèúékˆ²Œ%3¸øøçÚlhWómF×±H&2“㉗Ũ@A.(` (P @ œ¸§Ñ鞃?<þ—ÏÙ!¿´û_œž#ß[šüÂé ?s;åGôöÓItù%ôã£! $E0mÊvnKÒSH¾Ûe'‘~e£{v§KßAŒÙzë)¤_>t–L\^ý»¼ÍQ¿s*³ TÔO9e ÉýL§é7âvÝy9GõÈ/©gó¶¬ØÄ®ã·­Ç½”Uº€¿ƒƒÞ£KçNüt8óøàœWŠX (P @ÿ<.Í',´»vgžä<‹ê»Ñ‡Ù¸ô$Üdû¬QôlÓ†6ÁÁô_pû p‹UýÞ¦sû0ÂÚ…Ñå·s^sŸ#Ë'Ò§ukBZóÞ븘‚DøWƒéLë6?rÌdyhñzžÅßï !§œ.®ûš×›·à­a“ØmÉ©»µ‡£I™Ø{¥±õótoךЙœÊ6—ß gT‡PÚµãÍž0û´œó¬{…ó—O’hÈâÐâoy;$„à`úý²‹˜T„;¬Ò—®aa„…¶¥ã¼Ó¶5%ö(kç! Lέÿ‰A­^çõVŸ³ìèm(ò"‹Æ…ÿõ,qçY4¡?Ö_Â’!×z×mÖLÛÊÕ› m_v#¬}ºöžÌq‹`Ki™»ä,.…ÿÊÇ­šózð¸A lýb ÝCƒiÝv',’íÉËÌéJÛöoòv¿ÕÄ" `&>z3cZ¾Î!2ñ÷¶¶§qdÞw¼Ò‚Áß²íz"fî°¼o:µ¥}çùD?‡1$w›åǶ‰{'òaËV·éÎÈ6sËÖÆcNf`»PÂÚ‡Üò=fGÄq¬éÿ6Û·¥mû_¸˜ïû%®ZÛÜ"¤ã?A¦ Âå­LÖ¶íkFÇŽ›´‹ÌäƒLîÝŽíÛÖñ+ö§ÚJ±cZH+‚C{0xôv’žÙeŽÙÄÈ愆…ѹ÷ œ7Ž,áó–- iÛšàa3Øz)QHcÿÔ/èÓ¦%-[O`\ú 0 ¦3,õoµ#¬}{ÚwhGhÛ¡¬±•~ægÚ„´%,,ŒÐžý³å<±Ç62gñ ²lãZ0]bÍ¢µì8öÀh–o??—)M@àÓúö cû0ÂBÛ3&üÒ‘Ytùî€í\½ î[É7ƒge‘¸²}:}ZÒš>ß-âø]ù#%¢Ãbø[oÜïGv\Š83—þï¼IXXíÚ¶ãËÖ-¦˜Í|;~'9Û\¤$.ÞÀüßwðWøL> ¥]ûP‚[öfÚ–s$?c-ã®ýÅÆÅ'lŽÑìù–Ìþe;8~þž­o²¯_çÏï¶r;ÇIv†m[Öþ#¶ŸÝ·–X"~ÉëÍ›Ócô\ÆHÿ²ÛÕBfÒ Îœ»‡ù•ÌsŸÙèm¹ÍÁð-lÚw3;&­N`•p¿þ<Žkµ†4nܘr…u zŒ=:½ŽÎo¶¥Q£zÿSj¯o1†€N¯Ç`Ðc4Ðô¹¢UÖsóKýœ¯+2wôo—wÏçÓÐPBÛ‡ÒºåÛL\s‚ûrÁ#<Ľ ùªåë´éÏäŧšƒñl_°³7‘²yYÌ2ºwîDXû0Fm¾û@¯IOæÊ±­\uu#ýÒ:FµlN‹AL_eÕï¤+¬þ~(ÝBÛÒ&8˜!Ë¢HË5â,ãˆÁ»;›Ú†¶aatyo Ï[eËõC‹ù¬e+Ú´iMððYìˆ~xEvo°ä»­Ü¶dK™³Ì ¡MØ[|0lqùrìgÙóçN^¼˜'Ð=³¸{a-_‡…ÖŽ6­»1ê×ý\¹¸‡iÃ’Ï·r75­Ì&«:ö|—é‘阸}j%£Û…JHpwFÏ Þr›“†Ñ½­•†ƒ–ž&Õ —øóÃwèÒ¡=í;´§Sç/Ù‘dfRpKZ…¾Í°q»IF@ [fóqp0mB‚i5j!ÇngæKK¸Â¢o¶r7×/i¦Ðò`:0Œ…§,ˆ$r|õdÞiÕ’–Á}˜¶þŒM·È.GàÖªþ¼=z%×M–õíüû##÷pèhŒgf_aùÄ­ÜÈ4Û®\â—ömiÛ¾3}>ZË][;oFÎåý–-iÒ“¯~ÙIìCõŠÛñ5ý¿ú•cqùzu¥Cû0ÂÞCDž¬õéÜ9<ŸáýF°ô‚- ¾å;Ö¬eíž«òs!qã¾Ýl“U/¦ÛœÔö;ÇÒa«ØàW’®.«‰ª?Ϫء×ÝcÓ„Yl|}2oxðθk¤h] <“–®°aâ6ví¨D†qÇ}›Ð¿ÓP„ß0rN$+{×F«¹±r=gG¡+ÓæέšÃW 1|ÞO”´èpöx°Ô¹’DÅuHÚô-ÇK·fP· ˜·å“Ÿ±î½Z#Èh?‘IµL$Þ`Å—8øûPjé %ÁŒNk Játâ“KÐü“n4,s‘£¶²¹¸oùlål@†¾ãŒ“]Çÿºæ“ö~°(—Òï90ƒVdP+d0-€”³ë9KýQ é{s.ãwlÃÇ#ŒZE #ÑíuŸÐsÖq$Ÿ÷hžÛ¾Í–9Xy-ˆÚnVc‰*Ïb^ ãðÏ šº”#é!üÜ£ʼngóØeøÝ<,¤DþÆãv³hd}Œ¹Í ·qèòe>ÿƒwc2yßV|Jô¢Ì©/9Z²u­ ;ÆòéìHÖô äìü¸Ùa&“ª¦qzÍ|¼¢ ^—9´u!nƒ~g†a ÷¯gÑ© ¼%ÍçÙ‘v£Ãûô4F¯ØEÙ>!H›p¦Þ0F×.ÄÝu_óἬïéÿ´&›‡Ú„O~cÛÓ@ÚÝ3l_Eи_)b]ø_ü¼¦4£B‰=¥õ¢[ÛJ8¥‹¸úÙÿCoŽÕÌgu=±;¶€¾£7ñÇ-(”‹æÉ·"Y7wîC~c~¡£,ßδp'†4©K×Kœ!¡1âú²ü¬cÍ·û±ë<”1¾¨üJß±›øc¬?û¿úŒôÞ?3«t 'vmaøo®üØ­Ê3ì—‘£cé2…©¯¥{5‚u_ÿȉ©íÑÆ'PdàO¼ïŸÂ± [ˆ9q’c7vpÌ©,ÝÇöÃéðFý±—Ù½áf÷œ& Ó=Î'øÒî£øqB”$dY»‡Hì–Ïè3AK¯9S©še&é~—"V±[W”[1ŽŒmR*wnÞ!«ˆÕžyøg>ÜÏÏkðã*Kß[€ü_•sF§>ÄO / jÃ˺³øêVº{$pdç<’ë|ݱU¬\•A›ñ?SÝñv%’}ÜÝ_Hm¼:ò±·;SÜ&5Uƒéü<Þ›K«÷FPÉÕ­æ(?u{“Q_,à+¿{\º¤`4•ͤ%ÜåÆ Ž¼j÷äÃn5pŒ?ÁÒŸ7²ÞNGH]ß<óþQRbØ5w(Ã× 4ê8˜&¶:Z.nbüÓXy±&Ÿ}ïO%Ûõä]ãèóÃ6®Þ"@–‘#s‡ß}6SËÞ"rýo|¶¡Ó[ŠìùåWæ_,Ãsߥ¨`‡›û+u+¨P©„‚ç¿d®·òö<ßekx¯¬r£rºXDƒÕ¨(˶[…\OÝæÜ-'ª•Ä×,‘™™EZš„$ÉX,²,óñ÷1 ¬_¿õÿ½ÚSµª?Ã>é«« ƒÕn0êÑëuh4jÔjñAô´ äUË7õ3¹¢¯²ˆ¿iƵd>Ò÷ {Â8=jð<¬“|5…=“ÛcÚµ„ÂC2CÎï‘ëY|¬(½ª:cŠZÎWSg³5¦>ãêW§ \[BçÞÇi9u4z÷^S&¤&Èø—ËâðÎ5ø ýƒîlbîᬌò£³Óqî—lB÷Æý©Pô ¿÷ŸÏºÒÃh[Å-pí\ ß(æâ*ä.Óø¡V*·.ïcã7395© Bb ÅÎâÿdެÛLôáHÊù4ÄKõ€·%ïÏ{Ó6­íÂk¶«Çæä^×ÙL©x—Ãëæ2bmEfµ.ö·±o¾°Žï~˜ÁšËµU¹¢V=îi!->Q]ŸSÛS<9 ‹nÐñÃ/i‘ž-Ÿ»1ÝlA’UyûåÄ/´C¯_§PÕ =FÊýL4öô}Š$›Ñ»ÃåÆ&b‹7¤ËgR©Øøµ~Ãy³z2×þr£ÍÜO¨¡V §ê2+Ç~¥ï~.y…C;wòùŸžLicâ–ÙHµg0¸L ‹VqâÄйWÃ5-ã·~I¯é{‰+ô6 dI{¦Ç„LúÏ™Ny“ §"2wŽìãø%5&üJµ¸p&lÛɆ"ntªêaÝÖ¹¢?œ–Iº@¦-Èßôí|ä”tm3§Ï‚å0j5l×ÓL£ßÔ5œ‘:°@nˆœš×˜N³˜T9™“kfòÉjæƳgóuš~ÿ+u3ÿbñ¶CÌßRœ!ÍK "poû·üq‘ÝAŒeÇ7‹qxk8_ûÚ¡:2—ÆnáϱÍq,d˜Ò¸v3÷ ó¹ðQJ“ÆýÛwH”Ò vÞ©R¸†ZžŒí>üP«Å\ˆˆ¦8®¦ØSjÏŽ4ý„êš$.]ˆ`ý¾têz'c´Ï) ’KOT}dAƒÑ£Õýü°—Mx†}Ê”¦&4:{þšÇ’óçØ¹0•"~µø`BJD/fÀo)÷y fõ%ªáÆÿÎûcÃùsd^ÓË\ZyàѵR—¦M×zü5Ñfï´¦Va§cBÜuNÇ—cHPŠ¿pyš ¢…¤øD PŽöoEÖž2*:¿þP©Tˆ¢ðÔn×´¸,“Në¡!¼•ò¨ñrƒ Qwt} Tc‰¤›Qì\|–׆„áõLýÙÆ£‚PÀ (P @ (øGqrÛAÚÎüö¾b®ÅˆÞÔï6‚Ï íäDj–Õ€âYV-U¨u4¸Q¥øf.šI-ÙKÙá H'å°FG¼ÔÙŸÚÍË 5 <©R2‚(ã—xP¢o%üËy¡w ÂsÌ5nYjQ\-R¸ù~ñZΘ…d +!˜ûÉtÿ~\ÉSwXNîÖàØþ*mð¦T*–ñBk_±ÑÄXjR´ú>{Í5dÊ¢¤ëîgºtî\¿AÌqw*u©AÕþH:Z<¨êÎ)ždŸ7y¯„{-@i‡ŒØ=Ô^ÑàBÍNŸ1Î} Û¢-ˆdpñH2iI¯Ñ¤–^©u(5å ñày’ïßYF‘ÁÃéP¥ZÀ½ñp~)¼”Ïæä2=gÜçè¦Ùœ(û%ýKŸ%òž€Ž6NœÇ— ºô ÂK]•nŒåÈÐI¨Lî]ÇÅ¿~N€¦Î{î’ ¹AÉDŸˆ'!¶ÁµÝ(šH™¨(Ò’²u™¥ÞóÇ¿¬7:Çúx|};èØükMî,AIÁ‚s“ê¬[v‚+5 œÝH³wÝ)aªN•èn]‹`Ïe×*Ô¨êN!ßzwÓöÍ+GÍ_ÊSÆÃ@Ù6õp™p¸žþ¹¬O†‡Û,ä;¶%ãÓHŒ³P±²^è(wá ÷ï$ŽÈ²¾å¨Z¬„Í©~“[ËSsfyÊq@,]Ÿµq%ØDjÂ}î\ $øK<©A•c79~,š¸&Åñ,æ‡'§X¹·mÆ•!küFìJùS¶¸.•p_s—té:çöÖ¡Éè"¥–¤hŽþ|–›ÝªPì©gµ€ºæFª¬ã»>“.ˈU¦iý·(¡1¢#kéöÜO½Ì±SvªY•ªþž8xQtìb3M¸Ú©ŸÏˆ#KÈzJùW¥ŒKn7ö=Ö¬‹!xÂtÚ³m~ðÿ²®ŽÜI”JÌÝDÑê@ðÎÜ IDATŒ‘Éol¿$së¢+•êW¥¼“ã³ØiiÓ1„a3¶ÒøD6í¨ÏÛ«KbÞz„²VôÆoÞê‰(¼(sŽ€ÎÞ]©x:¤`4žeÕ¤ãTlÞ‡Æ5+`%£/ŸO½G¿¹û¸ý±µ*ïAÔœ½|)ã]µ·HIõEÒÓž*ý hW˜º]Gò¥ëÇ›r(.–h ¡5ój³%çº]í~Ìt/Ì É$ùÛ ñö¢” B|Eì‰&®¦+é:½>ïA]Çüû߇Õi­ÃÄ•ðé ÿlWÅ „|0þ]«`O4K¾üŽù;Î& È¥ÞbÚø·¨älxAÏüÒƒ \³Ýk‰åØÞÓ$‹$ìɺ±›¨+¹|K$°ÇºÖÝãWpÁ”Áå±'Ñú´âÝælæ&:ôö©Ó 8:Iâý¾=)SÚ~ü³ÙüÿRçiÕªï½Û½-¶Ñ`Öëµhµj4«‘^ß)(õsAýfs Ëz\¼‹SÙ»8vO2óóè$&J¹Ïà•Ëd¤qo7JfÕ ÒåDn]¾TÕM™ÖŒ¡Á<-•$!ç¶DÒìûQt+ïøPéfÒRÏpz»+%\áüáÚ4{Ç ¿Ìšø_ÜMjô5¤–-y3D@¯U#âJUŸµÜ´˜¬GgػćÊTˆ>a“-ÎêdN;­&VíMã](e“-WRôÜÕ¨ò¥ÚÕzŸé£=2IesüEø‚ï(F ÜPÇû³{Ûe¤ÖΜY1Ÿ¥G Ñå«.”Uªäë ùDEÖŒëh²£‡ýºñ¡ŸCÝÓβ.-cÄðÓ´ž7Šv Ëì ùâ_¸î…Ô§pQ çÈçê„|î“}^~zt×ÚÏšAÛb÷·G×øö¡Pv™öMéà¥F§Õ Â•ª>ë¸.™At£T¹²”ÊVçwqþ@ ÍF{QGÒï^åì’ÓÄtjG&¥uz4$b¼c ½´êo´t ÄlÏ¢ ùÁZ_ÉQÇ/ÐeúÞð~ Ÿ\JH&C²Ã¯|a<©ßÞ݈IÖ(D)b<“ãÛ2 C"ßMÉx@—‡ôí|eC‘@ú LÆœsèrÉ}õÞLýÊ•!-²cËÜš4ÜåKIL84ªÊ¦5ç¸QÓ‘ÔdÊþ…)L Êž¾Éù»IÖrNýÆì+¥x£uEÒâ„,î]‹Ã¡{%ʳ®!ÜÖXuØÝ_°§DI|Š%2gKãš«DAÔ£å*‹¿Ëo;Îg*IïYSéUUKø·39s:‘ögR¹[/ì£=6ºòÉ•|?1“æuÁxúû#îR»w—ŒgÜO›¹)Õâ½ ŸòvÝÛLŸ–€—<ƒ9ëüùdFY«|E8=¦§ï·õ(äV‘ZåN²ñ(T÷½Dô±Í¸TíŒA¥Á|{S¾™ÌêcñÈ&ºŽûž÷k\cÂô ʧ2kC©™"§nã½J.,|Ÿ?]@§ÖáYª#gõ§’˜Äéµ3ùê›ÕÜÑk<‚øà“Át®qŸyCÆòçáK$f•âƒù3yËm7#§ˆÔqÇä5­™¸õ#J²$Yë.hpôðÅÑàÛWÚãéê/H4zQ¾´Î¥kPlõ%dùG7W¥ÎÒr”uÒ€O=ª6:Á•‘M(c1[×@ÇWüÁŠ\óÙ oœñ)]œBé;3Y¢šóD~X“-]§n¤—ïNƽ9‘HDº¶ÜEÍà÷x¯zcÍ'Z¬@H¿¡ ë¢cù‚ˤßYÊæ=„¨ÇÙÈd¯-eͱÚLYŠÏÜÎL9££û´uôðKáèÜy^4z•%kubäø8ÜÉŽÅ3Ø{o&["ᦩN‡ͨWþÓßÍšó7Hµ„0yç'¼voŸLQSÏsãWˆ8z£Ïäù´u¾Ææ™ŸðÅÊ›h…BÔjÿ!#û•B-Xé«á$3û-BÛ©/où`Wò`¹È/=û°NÕ‹og·âÖîuD\Pãë§çìžýÜŠÙʶ#ê¿?•‘=K²ë£Ø—p‘m¡Uº?+&º3ùÍo9”Ç®L_Ù _D‹øP1`£êwÂåƒÑ|÷fÙµ‚!‘½†¯fY¨ê<‰ië4«RGM}7ŶòXÝZ! (P @ þ9œ$|ÅQ~z§AAA4~£ ¿EÛvî "Zgw<\ŒˆÙ–•ƒNƒ@:ÅþÌR”ôr¨·ÃA›È†OšTguv¦Á#W>´::à"ÇRÜpñtÃQРE«ȳ Î\ášd5¿ªíÜñöpDc nJMŽ`õ¯Õ¦>t6™C‰¶ºß9Î6/7œŠºà®E­²í¸ö.C…SÑ\“eÐY ˜`Á{†#ºúÔrÒb‰Ž‹áBªøjκÛZŽâPF1Šxºâh0`¯Mfëç­¨°ˆá_ÒP-ümy§qr§p!;DI̘M€¤µ.üìŠR26•äÄT »WoŸnÉ9_Xe,DO'4Ù´OãèÚI„{àÓòµ*Dµ0“{‡Øû©9é¤{ÏBU"2…é¼àC.Q7¨!¯8Eç¯Ã¬‘, X,€EkÝ™lç…o\é÷ïoÒ£ÍÞµîUšò§¯rMÎ 3ý­Ùš"%(qòÑ‚Œ”e´Ž²ÝõܱhQcs(:ûRæê=î¥'’’aD¯±9¹K”¥Ü±‹Ï”:o›ÕÀ©|ƶˆSÑ*´zןEÔîÌüãFZw¯€Všß¿îF€:NÙM„Jhpóõ$3v -ÛcîÑô:Z­êź/% YT¡ºÍiçJTöÂ)Çb$`¬Z ¿Ãç¸,l°“P©5Öùœxžš,Ò]ž8ú—9à‡‹•ü`3Š Ò swÃÉ FÈÕpQç€Kaç¾YdeØ¡³r5ŒîE)u‚ãq‡Y=sƒ[ÀÛãs6õUˆP©3ˆ¾°„³ÎÐv^$[g¶!ãv8ë.\âà„qU7cìâí„/DU½É$½d×µüÐçC?É&ÒR“IM7‘q~§Ò+ÐfÀ,f yKä\‚z5Ä«h#z €780sÎÁýèÓ£=µ}n²ÿJ&F£½^K“&AŒ=''ÇÿWÚŽZ­fÐÀ¾9Î_ƒQÑ€ÑhÀ`СÓiò8É'öÃŽÞ¼©Ÿsÿ¦B£½ÊÖ%Ch@›/püîc*˜G'9Í_úº¼æ‘AF¦Á*OµÎxZ´h¯ßá>€J‹ÁÃ{­ AV—Ù»ñ$óûµ"((ˆzõ2#ût K&)g°½A]^3e’i²•©+„W¦ñÆ]âÑ`Ôª­²Îr”ÝYU¨TÄ€VN†³°q}êå©g&©÷.qÆX‡êŽVÙr7âú5ìÄZÇ„ö®ÇÃ9D=.ž.èDÁFÁL2ÓísøƒÞ£EO]á:™t;·Èð½»+Nz 9ç‡jþ¦{ÖGœ•@̵ۤX²ûþÇŽŒ#80€–ý¾eËÕ¼õ²ÊçšÔññBŸç—¿Ø²ø/~ìQŸzõêÑ<´ K¯[õ;•:–CûÇðFíZ}4‰7¬2ϨÕX7Yޱ'«þÞvˆˆ ¯¦PAõ1tKÃW¥™C²3¥µÀ0q›î\åLJ[Þ¨&‘‘žŽªp#_BøŽ=ìÿ5˜¿NâZl)»¿$¢ðx~]´Žõ#ƒ˜?kwPá×a*Û¶mfëªy|œÅÔUgˆ?¼˜?ÿ¼M§ùûÙµü{ÞªUtšU_ì¹õ§ü±kûW·çÄœ\KI!.üsŽTXŠeïR‘‚u½¤Ó{9žq¢µZÚ» …- G@Ó)Ú¾9ìí0¥Üä~¢mœÖŸ*åÏré¾Õþf2šÏyt¬Ù(dw|ÎAŸY,\ºŠ0gæâ uè;õªÕŸëgѯÚEO:FHŽ|ÞÌòƒ±pú"M¯3ì牴«äLÊæ=íf²üË7XÒ$ }–²lPufÏXG‚Êž*Ýg²}û6¶¯ü·j%0s] µêغ;]?ú‘_†·ÁWL!Ksž¥ŽäfÁÌ^¹ƒßû^cèÀœÎýðÑœ­¹žÍ«þ`r'~úiév>40—»v±gÉH*¸ÞdÕÞ+è5*¬[:÷®ß".ÅT íw@ƒV?ãõÝfÍèLyµLFJ )Yd^ÞÀñÛš¾—ÈyI;wíQ*Ú|Þ…*5{1î×ålþ¹Ë;|޾ÿV._Âèûè;'ÊVº%ê¼Ã«¾!8ý÷gÖáħԩeäô{ÜÚ?›Ä7ö°gå,úÔP3ïÏÃüÿÜ:öb¡8€(P @ (Pð"“Ì´–|¾ð­›Xúm{ÞŸEÎ)jrvÄËøͪAK±«@%?7[´¤#¯ÝÀö=MØ×t«bŸäýq울‚uq^«RƒÅ’+Õ¢ˆÊ$åZËÈ9u‘0›ôxû¼Ã¯{w±c!=¼e¶ÎÞIÑ"!›3HU7àÛͿҷ–›Í)þ€üÙÈH¿ÌŽ?¶±ê“fÖiÁ‡_ýÈŸ &ðͪTÚ}7•o7§Xîe®‡àØÔ˜Çl#|Ó Ú8ì`ÊêsXÖ[Ÿ-Všç5{«Qç¢aŽCHT!š,H¹Î¶9é,RË‚ •Y²E宪ˆÚl~ªż—9¶÷öû™ãæDNm]AÍy‘¬™Ö Íͬ?xp£ÁÇX¶{‘‘ hyl5ËÂèýG;N ¡ní@ë´bâI|òXux•oFÇÞ¾  NF,å¼Ê÷ì PË/ö¦v½jqˆúi0qÌcÃö?èíû“–G£oÀÀ™åù©NujÓ¤ãh¶§–¡˜þyæ·DZÜ.f:JÓ­m¯š=ùaûO´ÈÜÃosÖmÑñ ˆTDe6#Éòó;µÌ™¤z3æ·UlÙ¶mÛw²sfgŠÊf²üËàûÈþ{Ò~~1ðﻈ5áD¾qœu©7ñ u¤êì êÒ•¹kZïu(Ý€Á¿ï'rzG,v'àÍ/Y•ôrRÞY$,jë&–¼P¡6[ vÒ‹j igY;µtYK™Žt ,†êY敜?§wL-¹Ôˆ"¢9‹Œ 'Ê×Èï{÷±}6M’®³uõÿm‘(™FbÿdÙ·}‰ÿè6nÿ·}3yù±¿“Ã…‹ûã[¸4Ç6ì"Ù GŸÀ½ô}ÌÓ‡Vu©Óú ¶nßÏ…L ‚QZ­ÇÑÅ c Zçâu ñq¾ÔjãÂùÍûÈÈJ#ÉI”æ[–ç€*_ˆåò¥hî”ìLÛ†¥ñqSZ‡îÜ$Z¿qŠ®{?£©µ²¬ÇÙ½n.ó÷íü;¶Ã܉EÔ¢ã&'$¸Nµ{Náô¶Ħ%“Vª'ÁÝÙˆ]…ò”ϲfb’o.çÝ  ê¾Þ†w'î€è‹œM³ÃøZ{Þ(88`§×¡¾ÇÌÝLÖ7êØf4»väRfæò}éÚÐG'Ã#RÑÞâÈΤXÓ°²†Ø-³¸àטï·ïb|«,–oÞClJ>^Õš}=H`v̸PŠâ® K¹»Þ×ò›ÏëÀLL¥ß¡S#O\pªPŽrXÐ`t0¢QÛá"h‘2ÔÈÕsÉçt‘{‡Np¹XKš5¨Iù€lA*H`YO*”¡l©z•uÆ©\9ÊedbRÏýFÏ z¶ì§?îÁt÷>zt:F£#;=ZµÕíKœr ¡eÓÒuÖàÛ¢)å–íæ€Å‚X©]êÚatqÅ­t)JedY\Û97ëÚŸŸ;Hzb"I¢€(ga¡#–ýÌ %°ÿ›âx€oër¸U$»6£¥·ƒQcë‚€ ™19W¥ZæÔöJ”ÀÏhÄh–ÁÞ€Z£ÇÁŇÄkœòy¯»àäìBņAY¸•ì=A¢¨AWÈ ^ãÙþ[/TKÇ1dVñO#XUz쪾K‡ª"j7 ûøP,#“b\y,° (P @ þQȲ N‡VoÄ¡t=‚JFqé‘VøÛ¬þ#×j„Ñ)¬ n¹Î$Si4hT4huˆs ãŒcßÌ9ʬDhÿÆx…åA¾0H¸Æ¥Š> >KHÔÖÈ£/¥+zá©¿É} ö–#zw‘‘¤\ÏÇ]墿/Ålç}YL{ø®é*­šFëBV£fjJ ©ñ~õÊ~(–­cgq¶HÚ÷¤pžöª©EÃVG¸põ±”¶BlµÉ¼Ã O쬑jµX° I_¨&ƒVDAÄîåLþaÞgpÛòhUA‘‚î®`VTz4Ô¡·+OïŸçÓåè 6ÐÏ@æ]nº1¸8`ÈmdŒ¿ÊEŠÚh(ØŒÁæØ[ܬT‚¢ KvM,Iĩ̘‹¹ãbÉe´N‹áJ wÜŒZÔV›†1W¹T¹ä 9×ÕJï¼c»~ñÃÚ³— } +žµº1´G0®GÖq: D•­N øP¼´.“ÌBÍønÃöˆ bÅü+•ú{Jf• åC>cmd$‘»þäËþ­(æä€ƒíçkkæs³nY^ó+Ž6y?ŸìB»º.4ÅxkÞrDÍbY¬—êï³$2’È=›Xðý›+ì†ë3·_"#y'“B×SmùxZä D(Bù*jt.׸¯"gè¥\çrio<µš` AP¡ÕéÐkuèuzôŠÇïÄ6ößûÛ„.h4¾|cŒJ‹N-BÍìÚ7…VK‰´½^T©s§"j• x›edQcåßvå©TÉ£Kü+:"€Ê )ˆ¢ˆêî¢SRIT©rÆ‚üS1?§#Ȳ„lÛQ#dG¯Ê2’d±9r,HÙrýá¾lòDƒ€Þűw1#=&­Âd*­3ÉÊîSs"÷5–¢î80FdThô:ô: :¿F4-Å¥» Yb¹u­%‹ƒ%wÌ ÜÕƒìíf+ó‹{O%©s?º4öÅš ùÑç+PÊW•#[Ò™Üi35—}GsLJeKQ*VQ;^'.áItP—ÍdÅÅr§¢/ET´õÈ¡ütOZÝ&j´:-"nxx¹S¨° ³å!ù\²X>Ùd@NP£Ö;àR&€€bg‰NDµíîxz»âì‘]æu–ôJ|»wéÜÌ@D­Ó¡×é0èKáW!“$âRëC–FF¹g³¿î@QB9ÇKˆ*ð¥j`*YªX’Sž€kÙtbÁàwùÊTrØÂú=ñÜÓ‡ä廌ᳪZ.ŒÂóÝÙ¬ßAÄ"Ö FµY8« >¢ðrø)€,a¾Ë­òΈç²?¥!¥¡Hƒ¾ €};Hkñì²éº[¿¡iƒÌ®g×Í÷èP׃¦8Ýç-§ß™™¬øÛFS f<¬Y†2Ùy^–LR\‚0y {÷G°o¦Ð¦°!/[D|JšˆºtˆÈë•©ìU޲§6%[ð©^ÉlAmãQQ!#I ‹jTÙ4“²0•ýˆI£8á`®1.cÔ»Ú“ªšª”¶`¶¨1˜Î²xÂ,ëÚ2ç@$vL ¸¢·õXQý`M ˆˆ˜¯/¦ï[tÚIäþm,× ¯ØûÜ»C´FcËV”=·3Hrmʧ?­bïþöï "ò[¹Q‰jTéæÄ¨#œJ¾@ɸ˧Y{Êïâ5ñ³ÓSÿ‹|.$ü|,éî!L ßÁ¾ˆöýÙŸ2å|) mN³ñÃÇÍg5¨L\Û†œ¼W¶ZœW>H’ B•ý›n›ë(3I0xàyú„G¹=³F´Â-)=É›ÝÏÙDUˆÛ¦Amu¢Ë2ˆ*TRç÷Íaü™OwG¹Ÿw«Cjfž³*­µ˜ßº­6Ã÷î ÒÊê4Îöüæ½ ²¶'wûóðTë\“rÑRÕ꜃{Yø Ag’Òz û>”ê æµ¨¶êC²µ.ÊÙ¿O¸æPH @ (P @‚5iÚi¿.º ’‰ôKì½T–ÙÎ"É‚Y’-kJ's †Œãpñ¦´ëR Ùš¾êîš©üuŸ4“ŒL;WW§”œ×Ù‰æ(n$BÆá}sÖà Ö¥y»íDN%Ó×vmåtÙyÓú= ²ÛlÎ@¢&MÛ{®T¤|e-úÈÙ¬ºH1\‰Š!&£$ÅÒ÷°!|‘w€ŒÃì;怽³­ ÜfÉ—Q½^o$Ò¢æóNƒÉœ²™s¬Î—,®ØBÄÑ3xV¯h5ÆedÅšÂT±I· IDAT«Z‹¢.€C)ÊEÏfñ®$ÒM2Òõ½l?SšØ6&ânaý¢µjøtézs!ëÂo¼ÛlUWOá {Y&#æ"×,`WÀmÎK%)æušµ½BLüebS!%bÇ »àùD†÷'€,a1›1KÌ3f‹‰Útß·Ï_6Ã]RL »æ-ফú9a³ÃeDâ¤)M!§‘*9ýüÑây,›•J*8«ÿe‘(Ë 3ààhBŠøÍ1@ôyNh30t £sÖ]N_!ÆX,à½ÈŠ<ÅoVþ#ËR.‡¯ X²­]³d ÁÕ÷Ë+Ù- –³¸û )UËRÔ¨ÇhgÄÞhÄÞΈÑΈ££=C‡öã“¡âí]ø?¥Ý899Ò§w7¾úê¼¼<0õí 8ØÙåqþjµÔj1çoÁçþœúÙ†û'ˆÜ¾œµÑV½éØ &u!~ÿ°Nb‘õ8ºùâWcËÿ±wÞáQTßã~§lK² B¯¡÷ÞEA±|Ä"ö®Ø±+°+ ""Uz‡PB' B€„4HïeÛÌï]B#âï;ïóäÉîìîÛï¹÷Ì9‡½§€´DŽf¥a ôs®-ççBUÁá(G¡Æmá×% ”[ìg¶³)®)¡¾*eÉûØkHW7ðò¢^«MìO’8’Ÿ#01|vï»$¾›Û7Ŭڜã:sëÔþô¨ç|° <~.[N‡e3ØÝ†C…ò´xöü9Ÿíyg‰;dÇ’W—ÚÕiªíTÅÝnCU»Ñ{ìR6ïÊŠ8q0Šä°P<Ècß/o1íᯉ­<¹88”ós d_Fö´ÆÿȽݧ±¦(OçôÖoøñ( $“p$ƒÌò |tUÖç:®¯`%Sº¼Á–2Е޷.ã»Eé Z(:¹Ÿ½ÉÍhä‘É©-?0ïàHâø‘\rõ©¯‹cÎäw9Ù{ㆇã¥Úœ²óþ˜¹­‹]Á–¸ÍÇšêë—ªj%ëô^Ö.Yoÿî˜R²mÝrö$sx—ÙêƒÙ£šYÀá@UíØQåNt²”¹+ó|2âã8ZÒŽ¶uÓɈü“€í‡b]-Ü%¨°\Z2—§²¼mP 9±j6ß;Ÿ$ªiªk€Ãá”aíV"è;n9›wÖ2NFmçtËf4õT`Ï\V%¹Úåh9Ö|ô•ó8TÔúi~úk~ÝVŒÅæìÛ›6uÊMÕ kÐÙôU«H«ÛÐ’Hön!±P8ÎOÜ¢„xä4‰6çÃõºôÁöó\R÷'Ô͆á 1‡Uê5«LúŽÕìÍ%æ‡B½ipñÀê°QwÂw|.LçßR‘D§WF~„OçÞI£ÌU¯vMiÜ´>”Fï'6/‡2á2j4ADnÛ—ˆ:`/,ääÞHNøÚ ˜F‡öpȨvŠ=ç¯cû¶ã¤ª8p\ízå8Ë‘] d–Œ`@K@ð'¤t'û·äd!P²—íÑ>Ôñ5¢g}ª©,x}úa}ð¥’XȪ~<»ä?UQ\ëÓ_/w*Õ¬Ï&;^m¨gwÊ(êÕ,¯²S›^tô{N6'ïãŒNˆH™yä¦eR JPCšžûU[RȳCÖÖõDîA×êÚIUQÝkS»u'ZÀ–|†¸„8ÎU(¬õÈìgæmòñºSU“YQÒ3ð=l_>‰£÷D0tâ|ÎHäkÙ¨Ó˜æñŸ1w»‡ÝÆé][85®?­œ’5i‡àwóƒu"Û6|Ë=ükvVœr:¨(ŵŽ*å>:w³"£¡¡¡¡¡¡¡¡¡¡¡qéøä*R¦ 'âswϼ²ü]šJÁÖÌ~œ7–e" v¢Óïç±ÑádÙXûóKlš§b³;¾óS~éãÍÒgÆóy^Øn›Å­WØK*™™¤faÇæ­ìÙ: ›Ýßàgùüµ7iúسÜóîIòÌ{›{bÐ9å’ŸÂøYÇ1éU&Œø•û>_Ìøûžâã)}ˆxÖLëaó⌘bæ‘[Û@—ëÊÆw½OƒÉOpÇ;g(R‡ññöH"¤íÙÉ)c<êÆûªŠÞ»>ƒ'¿D¯¢xvˆp¤¦‘V|ŒÍv¹ì-lv·Íä§A>¬™q7³Î¡8nù,ŠñÁ(¥Yìøf Ï,HG'Ù‰;3’g>|™®§ÞâÍ#˜>w>Éó]Ü03™–Qo1cÐç¤Ñ…§æN&Ø ú‡g³sÔ] ~­;㘳óú¬Í.)ó;[x­jß^ö.Ýe4œq†iwFð9fZ~€Þè‰'§±îù€W^|– ëcßÐ'<CÂ\ÆLŸË¹œZ=µ„oÇÕÙ€»Ùè|òÝ’CôÂ×yè˽˜Ãû1õŹ¥ €è¿‘Ò²#ƒš7p)sóÐ’wxiìÍ,Á¡¶á…•_ÑAµ‘·á †¼²“#nyõw¦wtÆ•½ö'êUR÷í$Awœ÷†wãmEÁÐŒ Ó_¡Sî>žú%açðü]ianBÉ+/3ý£7È¢¯,탷YW'xç¯á¥;¿Å":•{3žXô=wŒÿ†ßy€Û"º"Ià0Ñþ¡YÌéèE½áŸðbŸ² Nw¦¼ú4£ZÔºL;oæÕ~îü-£%¯>ŒµÝÃÝ·¼F‘{KžûóÛŠQÁàŠ_-ùÒÐÏ•ŸÜMÄÇP‹ž÷=ÏSýBkà@§€C >ãƒY+9/Þ~“-̘x†ÅŽ˜0y4iù6T‡ƒ±_ìaN'€@žú9‰û‡G0SQ ´¿ý5æŒ fÇ’Sèõ.“w_Þ~ù,SŸm¯óøÈfx]E)…©¬Ÿó3–d vb“ÇóÔ«O‘µŒ—߯c%°ê[ÖMûŽ×&¶BÞü ãfî ÜngRïÙÜ2k7O?ý!›ºF!š©×ì>ý1aôð³|úB"2kÓýžgyzbûËX6Þ(œVJ:ÙL£fƒ˜49§o‰`& òÐÓŒnŽçÔ~l}õnýæt(ØêOàŽG}åq}élà¼&É2²$¢Êr¥Ø‹"’,"ât³ Ë *aŒ{~ Ÿ½ó /êÜñÀ¤G‚0Zí‚àŒ+Š®?çûž=»ÑM›¶3ÿ×ÅÞ´2››Æ àÖ±#ps3b³Y1¹™p3q31šŒ¸¹1tèõ2’$"¹¬Ã.¯ü½Pß®Ÿ/RþV± ®ã’²¯^xŸ·€V·¿Äóý[\ñ!‘ô*2‰®v=FÏø†Éƒ‡òÂ|B}úÝó$Ïõpj½¬±óxæ½¹ìM*gÕæoèõÜ"Þ~d%ãŸÅ~ØÕv¼°j6míeÄìÄ8à<êµ&¢KwÞ¾#‚\}ûŽNž(GŽ‘&fû'SXù©óÐâMÓ:„þ/¹¼~(¤îÛÉ )ž™Ãºñ¦âÀÔ’I½@«Ì]<3ä3šŽzŒ@½*ݵhÓkÜþÞ6J­vîîý%c>ÝóÏ~Âæˆ"Dê6žÌg¿4%IoÂÍÝPamo?¶˜WÞÿš-'ÊX¼ö[Ö>ý¶¨FöT(+4àîåîŒ_l4£Ú ùó|4ìs'O¿ÐŸj×g@Ðáæirºîº=»ŒäÉ£ˆøPOí ¼ºh ÉçxY&ÜÁç@£A÷óüÝ1ÄÿA §Ùòù4V}¡b·;hpï×ürk[ò' ±UÔqçWÛhK9™kÞ`äë›05ãöWçóH[ŠÜÉ:¼œg_}€6“Þä¥Û:â[¥.sW=Í­ïïQáÎ^ß0þómL{âÿ7˜ˆ7ݨßf,/smÈœø oŠà|0mk~q_dLF]E]_,o/à/¢·ÉxQ{87òч²ø`1¢oÙò¿™1¹;^»g2ñõd—Øù߀ٌüh'/>ý%[»D!šð©{_.jƒøßô³÷: z‹R@ ¹“Ù_=H‡:#™rÏ—Lé׋–O.fö¨†x¤DÓ³›'HÙÈ>^œ8S—çDùÖ‡šóo —VÜóÞ :·>ÇÖÅy,V‘1˜t•ÎÏÎak L»÷A|=ôUfnÑiMZ»ãøôûèù&4êÕ/¹3µ$ƒQ¹ ׈2F£€|+ëF02â#LµÌ„÷»•ŽF/šwjGÖ×y´W:ÀV« vÆýï¼Jöc¯qï€ç)@iôóß©ƒÁ¤¿ô?á‚GŸÌc»Øw‚°ûÃPñaÀË/ùâ;<:ð]ŠfÒg_2 ^-ä£_3hÚ¯•YèðüJ¾í¨\l *\2ž°ÅðíËß¹ï+·$ðÚwíÜôT¬¨‚ŒÑ$V’Ã$TD‚:ÞΤÉÙ<{~}~äÆõrã×CéÈç×cAÆhÔ¹,¯E×ø6™dÜb¸G†DÌÄìïC“ˆQ´7رDÏaÁìzë &œêŽ¿®áåaLüöM>ºûÆ~u–ruï軣é¼Ï#ÁiïáKpX#šÏÏ€ðiJ½Ð¡ 3ˆäêõȲè̇;tEÙAvoÅc‹÷pWú6–¼º†°!îõ ÓÎq¾&%ô½ÓZ\0uH¢‚BKÿó5ÙŸžv0zLdκրB~J<;—K¼²g5 ÿÎb+Êöž‚€(ë1ô(bïܥĆ2~zS¶½¸ˆ²þƒ¸eÄ/–øÞ=ôkèsáA¦ÿƒüc)¢"äùúS'ó\…(d1›©õÚÛ¤u‚ j ÿ[”––²ôÏõL¼} gΤr*1‰~}z`±ÛñYüºïç@ié…(ªAuqÿþe2)G@ ¤Aÿ¬“¥ëS9] ›ÝFff&uƒêþãùLZó>k²êÒkÌDZx^[i¬éYòÓçîþ‘[‚k¾.WõªZôê¿wuù®šÞåÒ¿Úû^éÞ—Oã¯rkµZÉÎÎ&((è(sM”½úï\)GWŸÛ‹¿—››‹,Ëxzzþ ýïòa±XðñöùÛ3É•sm)Z,rss ¼!ãøjó¦( éééßÀ9ùêÒ8“|†ú!×=ί¯g×L9KJJ(--Å××÷ke‡­ «Í*»ávô'Æï¬Ïgw÷&Àóï?0qöìY¼½½Ñë+‹^É-ºPýµó. ]#»êgÇÕÎðÎ*.+R›ÍÕj§¼¼œÒÒrÊË-”–•Q^nÅRnÁf³SVfaÅŸkY¾|-¥¥¥7•Œ5tèÆÞ2ŸÚèt: V«?LF#&7#F£ƒA‡N']ÆísuÊߪq«Æ¦Êkå/ûwjj*H’ôÎ7vKëÞÇÙ»629ìÚÓÛõv_v÷_Ã]Œ×è¢jš×/›\~,Ôôš5¹¼|šwž¾|Ikª.kb…¹R{ü}YŒ*-/üºþ2«•Yÿ‰z¬AéÃaÃb)G‘L¸¥GòÞ–twÆ­-¯Æ¡¯¢c¿òÌgÏ|< _Á O£tI™ÔËôËKëEÅ^–GzêQV}º‚Æï~À@sõµt½8r-qýr­zU#ðæàâr^{o@©®òg’ÏD^^.:Y‡N§»äw‚  ªª3Ì…ŽUqX>™ƒ’—w‰„ræÌM­cÕ,€54444444444®È?aGøÏÔÄ¥d‘z¦þ-¨ïy­¥±[CQÖ­ô ¾‘õpµ-zõß»¾û^.ýkéqÂ5çý/Ó„°Ì5Qvk\+ÜT#ñïÏ(‚ ÔXþ…ÿìÜ$Üäi 7 ? úý¿GNÔ7Ìüz ÑçD¬å=™ñÇ8|k@ù{y®öQ’ÊÇôTy]é}ÅOçѱk슈²s,;•¡FgÜcIBEdYF–e¬ ²,3~Ü(êËÒe«Yµjvû¿¼¹SÇvÜ{ßø¡Ó9•»zƒÁß×"áîî†ÉdÀh4 ×;?—$ño(/×ÿö¼4OŠã8Iñ÷1$ìzÒ;Ê‘ÃéûÜõ„jL6©ùõíoÈ$WHóŸkÕšªËšè™5#Ý\M 5T—Â5ç÷jåã›c+K?ÈÏ>ÎüX‚½ ·=ýÃZ^m4WI6 ;õ-“ï\C›{ÞæÓ1!—”éªÇ‘âàô’¹ÿ»ê7B'ýåkI¨áQR3r­pSµíµ”SøGêòÿȑ FSkhhhhhhhhhh\a#%`±X.«p¹Y±Ûí¨ªŠÍnsÅJýgPÕZt{x<" V‹ë5Õ“ˆwØøDÀ~Í¿Õø§°Ùl¨üó}ç¦ú¢€CQÀnÇj³U²>û÷ç$›ÍŽâPnº6²Ùm7dÞ¹V®8­7kŸ¾©ú×5ôC»ÝŽCqüsõªªÔî1OzN¿pÉaÃfµþíXÔ‚( ¨ V›µºO¯ð^¨(ÿÅÇꕯ ®¹”¿×\ÁªêR+*¢²,¢(2 "ˆ J¢àú­"Ô®íÅÝ“Æ1î¶QìØÅž½9t(ö†5yPPýûõ¤{|¼k;•Ô: ½Îé†ÒhÔc4ÐéDL¦J±~Ep*F(ç« ’Ò÷‚‹ç ±+”ÃUÃjÅ÷àb°ò—í­ª*V›É!ý³¥‹`ê®8®C®QÕf<¸¨ŠÍŠÕjÕ ›9¨ÏÚÍäŒkÚÉ¡·óùúÛÏïØ°X¬ü-P£‰_9Ñ5Ú,X¬‚¦ÔШ<æ´*ÐÐÐÐÐÐÐÐÐÐи999ÿ9°ªª(ŠBvV¶Ö€ׄÓ5©Cë;€ÃáT3Y,–›+_ŠUQoº6ºYûŽªª(êÍ;ædÿ7ÇÚÍÚ¯e| •m-/Uþ^Xþ]®œ…Ê6ZÂ…÷•”¿‚pñA©PWICq(8»CUÁ©–u"ŠCÄ!‹(A^¢W¯.tí֑‚"¢£{äÇŽ%PXXTcõ#Ë2Íš5¡y³&´ïКຈ¢„$Kˆ¢€,‰èt"², I¢nnFTÅÍfAUlXEQ8ï<Ó¥ÆUÕ*ÿÔÊ áJŸŸÃ)‚+âŸÿ\ùëy•¼Ü¼ÿœ<§¡¡¡¡¡Q“ü_[5°††††††††††ÆåQÕ¿ˆ…zsâp88—qîÅâÔøÿ »ÃNfF¦Öw€¼¼a¡Ô«c¼Æû—’~*™L‹7mÃ}k(Ÿ7ö°â¯óxµ¥¸–|_.Í˧Q“‡W“Öõ÷í³7ÿ³9ªN…t3×À?qÀusšÝœ¹»þ\WHÞl¥rPšu’C§ÜèÜ¥ºÿÜzýJàÒ“¬Úx«»¥•¯ë;畱;çCQTQP]–·”Àz½SlµZ1XõØl6ÜLnØìvìvv»36¸Ãá@QÔ %ðy°ZÉre¥/ö"2rÁ/Ð Kù+I"¢Kù«ÓÉÈ’„N§C§Ó¡×ËèõzWžœq~eYvº€œn EQ¨(£ZÕÊ÷’¾7Fùûwd±êZü¯Ç¥âÌ$bNèÜ¥~•è«X-IlÙa¡sÿ¦¸_ãÚRS3KÕOþ­9äZï{õ߯yY¤ædÁk—)jRV¼Ö|ñoô K"Û¢l´ïÕ³ üGVrkîq6¯ÞÇYɃ€vÚÌóoT¾Bvì*–,¤¶_]w"Pª‰ž§`MbÞÚc¸ùÕ¥CŸ!4ñü÷ÇöÕ"(¹?’ìLhñŸš—ÊOòçª}ä–Ò¸ÿ=t¯/ß >WNNj§³kÑ®m€¦àü ´úÑÐÐÐÐÐÐÐÐÐиñäìâ‹ùôBûMbh˜©â£ÒÜdO‹„u FG>ǶnegtÅŠŠo×[¸¥Sܤ Ûæœ=?°,§ · Çã²7,!ùÀ6GÆ‘¯BíÖýÖ£5¾ ÇW,%2é,Å´eü´> •ƒ²Ø·6—Cšâ€ìØuü´ö8æ-éÑg-|]Ûê”-,Ú`á–P —-agJ¥B;îx´ÅÇY6w=ɪ€lô¢åˆ»éuÞSlA{#בìÙsù¶E§PQñé4œ‘ax銈Y¸„ÝY…X©Ã8¦t¯Þmª½4•£‡4;ؼq/iBúÝÚ¶õ<¯p;5Y´ÚÜU^×&¿,›}‘ëÈ ÄÀV¾U~ïlbb6'S·{u 2‚ãË¿ZM²*¢wcÄ}©{Éýd‹bóÚ]¤¡ôÝŸŽ k!báØÒÅD¦fPJ[ÆOëK ËŽ/çsP•p¯Õ;îjƒ; ¥9ÇÙ4w'¤@ZFô¥_—ºè°‘¼s#[÷%KmÎð{ûVˈH æþÊž¢2T¹w>Ü•Ú×ydsI™/éÛw34LOIú>–þ¶“LɃ-{0 8ž”‘²?’ȨxrP±[ƒ›brNd9IÂ9=u½Ò‰Üt„\TV3­‡ £g¸ÿuõ©ò‚NžëŒ¾b¼ÙH}ï@‹Ú¦jêCÅV’À†Ïæ±U߀.²eަ6%ŸGÎPj¬OÛ°rvmN¥NÓ¦„Õõü{ídOeûš¸·DƒëR[H;C|ž?½ºÕ¯V(PBüóX¢#È|ËÕk–'®G1©±ÛX|°)-4ð_"jU ¡¡¡¡¡¡¡¡¡¡qCÉØÁ¯®àŒAN–‘\O­«e¹YóO¾>›%ûÒQrpèxɥòÙ÷ã"¶ÉÆêÚzæìüœïV­fÁ¯(¼â!I Çr¤À³W q+þdÛž\²NÎe}L e¢ÛÑ…¼»æ8v—KÌœ½?ñÚ[oñé²#”(edî^ΧßEQèé†A’¨üÀ}ÖñT‚;·Ä-e!cÎa=°F/àõ (€zb9+õõö’8V¼Œd—·áÒœb%Z7UIˆ‰!¡È³W‡~]ÂÖè<ÈÙÌú%XÑ£7Zˆýýgæ^¼ÑV­E$lü”'^Å‚É(€={7»w®#±Ü9-’ŸÖí ¡ÐVmå˜Ç[3ßàƒE1”T>ª)ÏçÀÒ×™ýûvvìIÁ^ÍfÞzj#ßÏy•W¾ÞJZ™Rb™Ç¡bzYÀ¿š¬ò[°å jçŸ$”z£;Åüu[9V–“ß±66‹`Æ»wׯ£é;ßdM’½¨’¾{.³¢ À–Eì–¯Ù›[cÑi6nZÁÆL c[÷í!Ã^áôZ¾\³Ÿ;Ä|ÈêørÙHáþŸy{GêõÙT)³Íy$_µo‹*jI»ÿø““ªO{6‡¶­aÑþ| „c«wr ú,6£ÁéVÔè ~ËGüy¤U2a8³–·–ÆPZõX¦ð8Ûÿø–}yµ©e?KÔ–µ,9U„jÐ!¹”z·:þ‘…Q1윷€ýYvÙ€>i=3çÅPL.{¼Ç–t<Ä2Rö¯ä«}é×9¨Uì'V°*ÉˆÉ PžÃê/Ö’aÍãÜñìÏvÇì!’³“Ý{b)”äHæ÷*/~¹žÄ"kÍØ³YX¹l/)Ev$®Bi$ "EG~gæk«Is7bu(%%œÜ¸œ='²~K"£ÂžÎ®M»9t*×ÙG«´sø‘ǯæ³+Õ’½>‘?—Ÿ@àÄÊ·ØZX ‰]ÿ)+O–Pxr7kæm# 3f·BbcqòdAMÉ‚¨Ç¤¦¹~7qi6ÔÜ(¾øa‰Å$Ù€Á-•U3^㸄Üý,X}¡O*¥¤Çïe݆ÄÝ϶}éîî¸ élÿu-;âs¹–ZSËó9ºî#ž˜ñìIsõ å\4þ2ƒg>YJ̹’Šëeq˘õé Þ˜E®kîNÚò6RÜ1ªeœˆœÏ·ÇŠ"N®]Â×ÄRjvC/Iˆ7i” é1št—W7‡ƒéª¹Ð™  ¤K>?ÿ:e«Æ=ó<ø Ý‚ªÆºU¨°†U+¹FFu† výI’ˆ,IÈ’ˆ^/c4êqs3âænÂÝ͈§§^^xyš]¯Íxyš+Þ×:ÿÞËù¾º?/OwÜÝÜñö2ãiöÀËÓ³âûÎtÜñôtÇlvÇÝ݈››“I^/£“E$QtZ.»ò|A©[Ùå³Â¥ñ~kJù«¥$ïßË® '(u7b%dáÊ–—È$ŸüIbq.G·~Ëþ¼: X·q%›Ò-€€#u‹~œÁ ³VŸ[æì¿yû™ýêRâÁi]醶r…üÌ|»xsbýw̯ƒ1ÿ+7¬!2È>À®ãidZÝððÌaç— Ø™XÌy=Krtíoí‚GÜrV1b2BiÎaV¹ŽLK.iÇws0dz‡DÖáHví=JQ•™¶ìØ >›5ƒ7~ÚMÎùùaÛ[¬OvÈ…S;~æ«£ÕÔ§€rö Ë~™Á³Ÿ.'6Ó5çd®aÍ +Š G¯/'zá\¢/>mä&F³uÁ! ÿÀ¯ÛŽSl©Ò¦)[œk•›}EZÉL8̶?b(ô09¯Ët™ˆ:–JF¹«çüÆÎSe@*›>ÝH¢à²N—%–löüú[Ïzb¦ˆÓ{VñCÌ9Š’£Ù½e/™¢'µŠ³dù&v§”\²jÇ,âýg0³BÞv`9¾†·ßßD–Ù„^’u –äCìÞ´› É“Z%ñ,_±‘gŠ+Ò):ø3?¯\ÊÏ?ï%Û®T/oW³j*ÙÇÙðÛë<ýþoìM.pî°œXËW_¼ÊkßE’isEþe>‡K $…Ò¸Õ|´,J28¸ò]žxãkVÎDòŽýΚm‡È´{Q;g³äd‰í2e>ßE,äžÙÅÏß/eÓš­ä(™Þµ›¨˜ŒKdÝ ìñ,ú=ËåFæµNø¢77}%厈šµ—_~^Ɇ%+8çê©ñ[øæ«Åì>Ž£Ö•¿‘}=è|'¯>|?»úSîÐÉ2z£'¶ô(6G.cõâ ìM¤D6㕳—Ù¿í ©¼Œ“Þeåq;¢¬G>½Š·W£v·ÿñúËÑ·®TMT†JD&{"ëWî!1¯ UÒ_F1& có¾F¼öÖ³L¹w­k×äZùVù;xñ…€O³ ½,Ô@{ˆèt:ñ𻕣üÛ—Åbó2ãᦿ‚r5?–XõÔK¼òÒK ÓUÓ³JsSØ¿r/E=,ö7‘¼0›=p3Êš ê«@SkhhhhhhhhhhÜPR7-&·Ûc|0±áÅ[cI‡‡—~îØu® ¾=Æ6g¤Ÿ7f¬lŠ{–™9XðA·€ÙûUºõÎé³ú+oeZ œD« ÁøI û>™ItÞ.V,O¦ömpG×t§mŒþü(9ÂÐKèÌ„˜uÄtˆ€RT@Bìa‚ƿĔ6Þ¥Äï“ \Ì¡_“©sç“L수`aÄ—±äõoŒwÐ@{µ=­=A)æÛû¾!ºh õ½ldŸÍ¥(Ñ›–w4ÄÓ÷"üü©È3/{6¼à0†NM o€s|Ýã-RtÐþ¢½¾Œ›—?Aäèu耄í'Ȱ´aâ ·’¿ž¾H"9µ„¦ÍsXöùNêŒK·È€ì@³žC&Ý…¥œ“Û~dsiszws£P™|®ØDª{8=û5§¶¢»/õÌnn2‚ ùXO›ù3¸E$~ÇÈ×P4®q%k[+‰Qñ¤ç†3᥻iT¸…×¾L ==ä3v:wuF:ieÔqä ѳöÃ<:Í{ˆ1î9“G— Û×Àá-µùåýt¶Ÿà·ŸV“p8¿ôSXýûpß„>ød,âYId &öã4¿þ"BtóCŒ¦¬Gp5@qîvQ™Äjû¶B^ò9N³3|Ît¢ˆí ~bÝޓб!ŠRãsË zçG?=žJè»Oqgc”.åî¡ÛHº¥5áw¶Q~ŠØHoFÿ<™d°á›?8°2†âéÝ8¶)(bIÌAî^Ÿ„OWÑð߸ÃÈÇ’‡÷“3ÉÆŽŸú­{þØHÚ6—O¿ßKV§1ø^ó¨ë á‰íhikö~xr1EéÖf jD0÷Ã×D&fQ˜MÞÔ5»#»ëjÐ'·ݸûÉñ„]d¾TÂö–“Õá%fN¯°lÊ;²•ƒ)*[õ "zƒä<4«ÚÎ5C [æ±êYy}¨ê·ç™Q˘ùS<íoMe݆ڌ7æ_IËiÇÔ7ÇP8—~I®){QŸ¦ÝÙ´6éûñtÏ röB¼Æð£½ Ê8ÊK¼½p?&0™*ò ˆ²£^Bu«K»!#˜2¡9p–?¦Í#%!²¦u®ÞºU”1{úâ]wÁ¶£'þ^^¸¹É(ÒÅ–äáOˆ‡ŤsÚ|+ lø¢Œ¿=È0•ë>âÝUñ8‚j‘”F«{^ab+©Êüýo¢"z 'n%ß¿³BCzŽˈ^õѓîß²þ`"e¢„\¿?ÜÓ‡wÝ Îwåš²S^fÅÎi¢ö™°ÛC|â)Ng t÷$£Ú(ìþh!Gì™ä¼õ&CFðÄ&–²Œ3¢Þ}™pW[Ü/²¦Zk`\—%IDTA®EÉi l2P+…iI×Þ-w‡…¼¤4òŠ 7õ ãh qI™”©fwêH“ZE;^R,qÉþ´ïbDo,%ãøÒóeôîu‰è׆ڒˆ(º,|Ï»…]–¾€(Š8­}… ‹_µBÙ{9¥®Z©÷©•ίWùëJMñ£u¿Lº¯ãUYûUd’ï'ÏfëQ?Ô>Œžu?lÇ™÷ãŽïOeð¨F¦ZzšÑ»ëAt®yY[–ÖzïÜתÂÒߥ>¥¼<•3ûkÐ=‰Ã{ûáý´±ÄðÝ÷[ˆ?˜BßÞÍrWwêúz` ”•»çxv  =„³XãG‡{Mˆ¹Ö–òŒ]üøÜ2bŠûÓ¥ýH¦ %ˆýz6»’³qªP. yøb6¢VÈ5§Ø0«˜n d„ÁÆ© òúŸÇ E;’£6³+уž·÷¤®½4{brÓ¡ºÚš1üñ6´©ã\¯gw{—´ÊØÍ/¿$ÓqÚí´0€Š ÚÞÆ}÷»È}uÿ±Mè_±>ïçöA-0{\|4Ÿ´u%}Ÿá½ñÁ•®Z€Ú4î8ž{ïxA^)°ÑoBGý̘(cõ¾Ç9‘]D¯&’Ü‘IS§Ðâ¼äP´‹YóE¬~€¾”¿~?ÎßMìh…b#&MŸH0q|øÚ&ÒÎdã¨çNe»dÉìO;Œ®º´)œÜµyÄKÌî]!Ÿ$¬?MŽÒ€‰Óï¡>ñ|úæzR3QB<O¯äÛÝy´è6”fgôéW•·«Eï¯g-Ìî6I¬˜.Dê›à¦s­ÑXs’¿¿Î(8ö c?=Hñ˜†xʼ<}ññ(îÓ!QBÌŠDÔý™<±µÙÅ ã¢HО†îµ/-såagô£q³ö8öñãÁ^<Ù^FÖëÑé èÉeçüù¬?œD¡£.#Ÿx„~õ$¢®æÜ¹"Þ|þ0áýã‘W‡±ã[AÊ~–.±0lzOä”Sœˆ/ l@+²¶ýÁ‚QdтѧoXkV—áíXΪ¨Æ? 9á¢g×ðòçI _‡€&}éëÅï'&ò˜ÿ)NÆnÀÒŸ £Œ½ –å ³ût ªÃŸA“'384ƒekê˰bO åv=§¼Á€`…´-_ðñš4t¢žÚÁ]™øè0‚±vp ¿ÌßN®¬CôiÍð[ÇÐ3´˜Í?üÊÖãi;‚óÜ4z¹aþJÍÝaÑ®xg~¨(v Å€—T‹ð¾“ïë¬Ø£¿YŠtòÒQ[bê°öØBÔ'ȳú²÷³L¿y›ñ@þ"&ݲ…ÄÍ©_RŠU­°ñ&)jQ•Ç3  >´ÝÖ‡ë1à‘Q´6ųh‰@¨a!Kw•cM ™2ƒ>u¢YðÒ/²ˆ|ðæ´ï0”MÓ˜?{5iBCzŽÇØ2»¶eaÏÛÊž=ÝÆ·æìi+né›ÙyÚFïG_¦Îê·ø#ÙİG_¦—w§6Îá‹ çÐK&‚š÷åÎ{û`<Clä ”ì&³°7A¦0ºÖÕ!rŽ5_ÎeWJeôàÑwÇРà?¯Òî1…;Üê2êáét0dq`õ÷ü²3Yô$¼×-LfrŽ/AFG ë¾ÝŽÜ}0ÝÃ}¸|¢L6|ô>›KÚÒd(+¢¼ ”˜£Y¤ÅÅ‘•±—ƒ§EÚz˜ñ}ü9òÅÅqâÍ鬽7¦x³ä­y³Á} ¿Ô—ÚÈ[aŸ¾¸úÃ'qO÷€K¤Š«EÉÝÍ—3“&:È-°âÙº ZTû«‘ô544444444444nɬ[r˜Ó»>cú£òøs¯°%×QЛiÐm4·ön‚›Õî<Öô¦¾Ÿ·ë@/™C!Áþpl1_óbø¤ÇèßÕA2pEo¨&üüƒñ“Ò9#úâ¤bÍ  –Ir>­ÚN'RHVTÀ³ù3Þvçûâ‚X6/ÝÁŽß^aÚÃóÖwË8eq)"J¢Ù¨Ô£¶Š5#o7ÁiõÖ¤#ãϨªà_Ž¥Åhú5qµwÛrsHZô%k•R¯Ó uð ~O9¥Ö)×®»*ùœŠ!æØiâ·|ÏŠ½ùx5À †–®ˆ$¾X ¸E0uÃèÔ¡#à YûúG¯Õ•N­š ;·’o£óà+ÙóÖÀÊÅ×…óVÁ•âK¢$ ×I FŒ köN2#î¦r²ó3HìXÒ2(¶yÖ¹]ZÖ"'9‡ZBzìVmuiÒ4?³9/ »_M×Ç«ô([bó1šœ–¾ƒƒA‡N–% É•AA*Åùu©€U¥Še3TµúU/Qÿݘ¿¢˜Âö…opïÔ‡yõçÍ$•üÅOªÈ$ɾ-häžOANC¼tuÑ×Á-=ƒ<@ônJ1ƒhà‰¤@6›WÆ’¸çž~tN’Õç\úŠ…’¤lðkK¸R@a^§\cð£¡hÆ~–|C}B}=\srÇÜ›ÐÄßètº‰ùÞ]è¤*ÖeE9œómA˜·Œ‡(Ƹ•Ìzò)V+áô¿£Uú«¾^FßÞ‹z: §¤™Î¹´œŸ{†´ ìxç(ç\ô6V¯ØO†âšsj7"bôP:×¯ì’ ñkC›:%D}õÓ¦.¥ÞÇÏÓϤPžuˆ¥‹V“à2_„Žîû”§Má…Ïr(÷âvt®ÏíéÞ‹&ÔS¬]tˆÛ>aú£òô«ï°«ÀÙ¾ÉáíñÀ£SxiÎŽä^¡„ú™] á$Ž›šÐ(À©ø±Û×óÖÔ©L›öß)G'’Ÿs~Í7Q74ŒæR*R«Þ´ôÉ`öý3õ‘o±ÖkI§u/Qª˜öbüÝ t=˜a³eÝ{‰^3“ǦN᥾"º\G“^ÝhËW÷?ÌÔG¾¢$0œ®íCQ×òóao™ÎàÞ 1LxœëEUy»ZÃ3˜¶Ã†Ó3Ì]Å÷TtA6¾ MzU|úÚ8N=8…©Ó¦óÜÜBî|d€³Ü†Z4ê5ŠQ]B1Yí@)Eù*ªÝèê‡X?‡ì¼r¬Õ”ù¢ñ¨¨˜Â騹 âÞ9$xbôîÙX¼[=zŒ½Ûû{°íœ)sàß(³¹!ºu§ep.¿ÜI v2÷üBTB{K (ç4Gb’9ý;KÄ­ýz¥òÇ–œJM&záL–žò£eç–øëeÜñ²íå³éÛ©Õ« ²ŠÎÝ›æý;R2gÑYIÄ¥5¡o×Ú”—Û<iѹ?#FåŽv*Ë£Ž‘™ÈžŸ^cEZÚuéCoïT>úqùˆx6ˆ`èðŒØP)†¯wœÃš°šÅ߯Gm1œ!ÝëcMO#93ž½¿D’ijL¯1·2®‘ v‘—Àæ¯^f]QWºwo„×f3kÊ"O'R+l$w=6Š:qòÒCS˜öÈjšîIOù™&Lç…ŠZ=æwœÅ\ðÈ$8÷éçJY¬8ìVÊËí`M%òÛWXÕŠÎÝzÑÝ+‰~ÜC‘Á‡Æ›àÓ¸ý{¶%À¾?f-¡¬òú|*…Äu_²d9Am:ÓØœMÔ÷ 9¢oMwÿ,f½ô ±>]éf>͇?î§T2P'´+ÃFŽdT¿vx–fî¾Ì~¾ø5¤AÓNt“9±7–3…§ÙýÅÛlÎð¥U·A´Ö2cy<'°qΫl¶ô¦o÷N4UâødAv£u›÷dÄèÑÜÚ3„ìôìÉÂ(‹ H@*‘¿­`×É\¬—©ü¸y1õñÈh:˜Áý{Ñ·9q‡Ø¹/¤ý Y¶>`d =Û6lcwj9u[…P«q ""zѯ›5ϼ·.tïÚ…àÂE¼ºõ,  w¢ÃèÑ îÔb~ä±—¿`u¢µRdù«“?låÑüöâGœ©7˜þ½:Ó¶±?:»ã&ñ”rs£YkhhhhhhhhhhÜ@2ÈLiCÿéch¦(”'ofÉ‹kiöÕçÁÂÅê@­b $PBÔG¿‘_¿/cš»qäíïùy‡{VýÖN§©L}ϓϞëG­+] Xˆ[°œÓå!ŒíМ2ù$Šr~ëèŽg^ %•¬q,ª G@Áj)ÁáèÁÈ{GÒ ?‘C;ޱê÷0&O Çq0}HÁõ‚9Ë^i¸á™[LÉEÛÓ#Ìj ž}›PÀz.¬Œ8÷|°R>Ë8øÕ"Îy¶¥{xˆëpOG½®cßìÑ‹VÝüº×©r(¥X(·œ¯?QÅ¥D1àVjÅV^J™®Óg¿¡qô•’PÊm(.[=kq«¿úžŸ‹£8¼ÐJVf69†6x†ÜÇàgŸ£«R‹±âHÅy¨Rq˜­Çvj!9­`\x*+ߟÃúþr?ñ-ˆ Ž ù+³a·8PdåâvÉ-¦X•±_p_g4âž[L©(" ×uz„b 6IE®pf½¨Œr;’‚r>Ù sAÅ×Ü«–Y2Ȩҷ¿¸žFs:SþÿØ;ïø¨Ê¬?÷Þé%“ÞI ¡÷Þ¥* **RV±ƒ«ˆõ³±bGìØûŠX°`WDT¤—ÞËô™[¾?f’`Á]ÝÝûü,™¹eÞû¶sî9ï9oé·XÇÌdBàCÞZ¿ž]§Na(ñô¿àbâFV²äñùÓ+x?ãμ³ß2›ƒAÃ]žÎœ&«Ì$·íϨ‰/p÷”óbE|%Fºžò·hä¯äóÖ ~:ý­/mãmø~|“Ò“8«W€ÕwÜÍGe³˜iîÃô+à¡)çó„K$ìIÈÉã\J¯…·ðúÂ/ɹ~ÙÑmIîÆØé*[¿ÝÇ_Å;©Wd_ã`Eýc0Uٖð½ÉIv j ª³#N÷ §ùùJí×üvC;ÿq¦˜Áó®ÁºÏƒRùšÊÒ{ IDAT93/zÓ¤ÿã‰3; 9²8åŒ~,z¯×_Ù[2¡ó`þvÓ­ /ª`ó²«x†Þ\uñt†dZÿØéY<^¼±)Ä9¤fŽ^+1nÞÖªK4`ìfí3¯óõªxLζôw*ã´ùí{7È¡éx  +õã°±_Ä ÕÏ"¢Ñ‚µú>'fëHN¿pYU;X÷é÷|ælô í°þ™"QdeùÄœÈ܋Ǫ¤Q»ø#ö}¼š}%N:ŒœÈß&vÂ6±æ›Cr´Kd¼J’„$‚lO§Sç“8õ¤nX}*ŸÜ–Çk§ËˆÎÄ®ör„ñ¤{>ã†âœ¿h$]$…g>÷¿ºžÊ^#ŽÆú(àÆÑÀqü6ŸBã®*48bA 69Ü\3ëÉôJ ¡c¼ë>fËÎjLÅ1X”jå'Ó¶s6‚3νÒ=Ñ5•ˆŽ ºèG† Q[ɲUû¨ц”ú(dFêÃÌš;hµè?-ïõùï¯IùÜÒ½[k‹zt;•¹éCñ™Køá­õ|îHfòäî­êDMu’OiwÃÍt”¾ac#yj–Að6š eUECŒÈ¼¼N _0ž.v bé§,¿v%]—Iv ÀþÍ«èpêK¸B« Aα„#ºÊ‘Ô𵬽ùe”Óè‘æÄøôUÚ¹¼IÙÕàfVܶžö×ßJV½lIíɉÙòõ^¶|•@Ü©=H8æü aëŸO@4š±V•P‹‹î§ýF˜È44•ña¥ù!m‡OfZ÷r¶½ö>?u™ÍàœÓ¹céR#^FR»ŒcÎ’TªØóõ¾\þióF‘ÚX>ŸÝŸ¶Iæf÷.£¢´/ão8ƒŽÁ5û¿âÍEŸÓá1dõžÈœ{»Rg¬dÇÚ|ñúz’/FDJÔ±îË õLÏt'Оs[Èpo…m|ô¥|óìL¦ÏÛȃSÎç1—H¨N$­Ë$ú‡s(TEûI3¾}’•{v3.<¢å®êRÓ*©«Ä)‹Î¢ƒ»‚¼m›y瑟H™¤.TNî©30l|†wvïædqû>{åïTðîû¼¨Usàp€¹ Í,]t © úö1‰Ê€–u±úñ`!´5}f3¥ÃÞ}èEÖžt Sêg%HPVÐP‘IbÌŃxñ™˜}ÎCˆv¨Úédú¥Æ#ól£gnŽ,ÚÈíÖ‰¢ÍY½j;I63F_;¶¬áƒËpd'b æñöôÿÛpNë׃ø/ã'F*5Tö^ľ ™%úŸË–O~¦S®o¬ßþ"”ö'3kÆh\>#;oøí9)x;1pÔ™œÙ;j 0|†¹gÚu—3®„=QÄ’Úõ#±tw>5–Ég\FVå¾HX$+¾}›xoÕÁ6  e¢%vcèIg0¾zWòÂÍñ1”ôÄ?Üþ$ð¸}B[ø¹o µÉã¸ìâ±$‘MYÑwؼElÙô)«ó<8Ób±„³q[>'Mì”Ú‡‘'Obh,€Ü,U{=ulûbåJWþ62aç;”:’6õ/»‹OóÆs‘2Œ™÷tçž+.æmIE“À_Û–y ªñ´O·&ãùjObw†;“Ñé"ô¨à¥E 0ˆ¾ãz‘–—È飯R¸þ¾µŽáŠzù|ïGìür'¡øzt=©;aòWcˆkÏ qg0RRYöõaúžr*½ *yù®èO|Œ‡ w¾ÊaC˜ ·@šu È¢M‡^˜F1b€—ík6cªÛÚ}iœpñéLê™} yoövôMÀœÞŸ±§N¤ŸêÚT³êåCÈtŪ–ðÅsR.xØÌÄ’ƒË bSÃhô`Öÿ€Ì6ØÒá¶ñü…8g—ÿÝAV×ìÈ¢k¥ †H:jk 9}{2éä‘Ćì|ç<•éÃ{üž‹‘§E7ëgÌ¿·73nŸÄ 'ø2òÙí«(u!™˜ìÙ <3›^5 Þ¹…ÕËã‘®'rÑäM²6K÷ïäÏ Ì¿â$:à!Ëþ6¯mRZŸ:ß:ttttttttttttþm((d3è„‘ôTo"Ö<Ï6ïÒì­ØÇññýOò­ÖƒIS‘ŠˆåüxúTUÂPù9‹Ÿ“9oJÏV£€#fä0»ß{™U;ŒºüdÚ‹‡X”pˆÑ(Þ`…¹©Œm%¼MS$l1ÝÙoéô'1ô*kvm¡˜®Èy IÖ8âL¡ „¡þž2 Ú§1¡Ápü3OO{ó×2µ·-bò¨sã+¥CVýóúÙ²ì9ÖUf3á’Qä8ņ׷”®ƒIB cý¾Ù x¬ºŽ::UCÔ‘SCY¢ƒL‡‰Ú÷ëvÌ–2ÆärÆÂ'Ãålýæ;~rwgx¿Ž¤7„¬´ä¼3@õZ]5ˆóIWƒLç´^}þQ¾¾!ަåÓTCÔÐVKeœt—CPŠî™i—‚ö©Ldê÷¢ÒÐjª)kŸF’,VŒÑï}¸Jª g^!¢N,­’’ŒxºZ´CýþZµeåd’ú/êÛ×<ÁÚ *ùOâ’[†LGRÞdëWïq°ÓY´ËîBÿl€A„>¼‰}u ‰£§0;®•!«ÿKn}ÈF[cÓap¶cèy—‘8° A,çëÏvà±Æ7¤×®Yÿ,[3ºrn—ÎØßóÀÇ㉠Œ7ÐçÙx^XòkÇÞÃè©—° Ãa‚b€Âß³fOÚqÖÅVž:ïœW.à¬îÖ†òZãÛÐm`\Õ÷±2o…5½HŒýL/šJØšIïá£è—jkÔ4©¤ZÅålÒ¥F}V2G¢%鈱WŠôGMûWí¿ª¡!`MéÃà ÐGnzdö8væƒß‚ ©ZJ )‡Öq x4=3]Gœ·¡*ò³Ó8]QQ$ãc’q J˜1‰Î£g0ùT÷ý„ÅKšÍøï1šLX1E—±(ÈÞ:ªrR‰p¥ôfT¿$ÑcáSl,ßK¹Úެ?97ž (Ȳ CZnÄ™#ÙˆÕLxwïäGW&£’c"í ÿÁ ާªŠlI%1Î 4 ‡d@Bƒ°Œ¬†ÉÔºñ'v¡¨&c²Åc/©  ˆoq FsGðQ]µ¡‚(€¦!XcHÎìEƶØ›”€H£s¼Æ–drv£[§k Ĉ¦$’\"ƒ„ ihV'.ƒ„‹Ó…µÎMXÆ,Íœ¾Íœ¼¹ÚÑࣿðÇ9AÀ#9‡>É9€‚õ§ûÙ¬À£@ì1W Ôë$×ñ·1Tn‘‘ä©—:¨É±Ä´x­L8˜Î q'2H€ ö®¼—­5gÒÆXEÁÞzŸm%´WAUëjj­¸\Ñ u¬½ó¶fŽeÚ¤ž$šDÀÏî­6úÍmœ3d3O_¸ç• ˜ÒÍÒÐ1lñYt˜…³âÞ)ÚBqm\Çz^™°Zÿ| ²·–ªœ[z]ÒÌÑ­/ 2’Ú}©¨ÞÎ×ûf3¸_ÝÖ_+bvfÒ}D$…s†»–ÏvP‚TS#ùÜ1çQZ”‚F[† 9®@ «‹‚V²=8†Ñ®6ôÙÐH.¯`m~!ÕaH6ºY·x)?&dʤÞD|ʲû‰.ÂÊ¡ðé[( Ç3uú%,è\@Xôqpë&6R´u?y¦ñ\pú Ø'´Áõø+ìÚºƒÜ±=‰= HÆ 0„\ C²ïK¯ðöꈆñœ{æ 8NÉ"þ‰WØùíO ›x+ ©Ä£°Ô~ÉâgÜL™Ò‡XAàØQ€¿a‘˜ AùjžX=”‹—ž@'Ñ!%ž7_{œ†ÜÀ[Óûª€­Ã¦ÎÉbhE»¶…û—Ö’i3þ:‡‰*méß§;þM_ðMU_·ñR‘Ø•±çœFÿžIÒ˜)Ä‘•l…MÐU zWñÞ¡½TîA¿iØ´òCææÐ­JA ŽÔôÈØ³Å’è•ñ{½ø9dÄGr툪‚’2‚“r·ðÂþ)œÞ<  Øì© 8ykÞL£ß0eoŠ˜•<Ö,ÿ”oÆ2ÈeO¾ª@(DØ™Kf\t[ÉBœ$£–}ÆW~@ÂÌ«¸"¾Ž‚½›ùúÇRòËk)KëYÈ !+‚×C]Jo&ŽèDöñ kÌSè³å1ÉŠ=v;ódKñ.’O¸“ä±âs™˜'qÚˆ“qÝó kwöåŒÑg37aÕ²ˆÉý%w=C[hæ4âJÏÁõKãYUÑb:§ !",ÄJ "‡dT%Lþ€„±±|VŒÔÕÔà¶gM•®(hÎbM `$6>x#¨ q’†§à#»a-i³09¦”ŸÜÊÏ/ƒªª¨Š Ȩ‚€à÷âwu 3ÑiøtRË¿£œxˆíD+ …Vâ?yÛß൥;èò÷k9Ïz5_äa÷ù !`GAÆAÛ^][©ùlÆÌÍÆ5·sïÛøêÉyô¦©À£/K‰ÖÈpg·b0˜±;ŒgBüþ]¾9` 5.ÄïEL•’oVpïMPBÛ¿ZÅžhUäËø«c°ÕaíVŒ 6‡ó2Nh€„ÑÜ,é°4œ¿M>ÌÍÓ—SØ1`ÇÊW9ä0!lÝF~ý¹%Øî¯Aµ;Žì[ÛÐÎÖ? VY@¨]ÇÝË~Œ¤ž·¤Ò«sÞ8kÃ^‘jdåFÄ ©TðÓÆOX¾®&bTLÊ%³ÕhÀøÔVa/‡Ý+½˜2YcÙ²Oب?˜Ï‹Sn§rìpr’ˆÿþ ~jhø0ù¶’Ÿ˜D‚h%!«3={MáÎëû°ûµWY¶¥ì·L²a·š1šêÓGGM»f&“›Ýu&ÕÃÈ<íD©/}†½Í†‚H]í\ÏÎì^ôKt ÅÄÚüȼ[|؇'dÃúg[Å4ÐÌf¬Vþõo°AêŠØiô ž8š1UT¨ŠD`:lEáOÞ³¸¾Ü‘º4U;’ŽUQ•†XM¦ANM"~óã|X¬Êó~ä`ÿî´o)%r“ë+H‹ìïÝ(=´†zd¯] ¸âi+ýȆíÕø3s±ˆ¬þ<¼nÄìvthŸC‡ÜDl6š"#D#ˆ%IEV,b$…y]þ6òºä’%½7RU6KSÝBªçÆ{y¶úgÖS>7ÿü뜿Bõn¶oZÇ^€2ìWØåüm¢“¤aÆ@bb:é>çgà-egõaêR¢ÛHØl˜ flЋÁc>╊"Ç|{Ù²?„X–lã‡ðXÄ‚#6‰¤Üuì µEl¯+Æ—œ†C¼qÛÃlËÏŒËÆ’ãŒ.úò~Ë꺱 ÎŽÔ“\ô1ÿ8ïÚÜq73¥DtÃÊ<¶­ÿ,*UÊó‚µN,¶–ätT“úÑwØÛlÈ(Ù±ž¹9$âfÇÏpÏo²Wi”ÞbÅd4c³;‘€êÏ—³¶üȼ¸ûÛT@Î{—….f½O@–Q¸q%ŸT¸)9XKe8ž8S3ùœÑrïWÜuþÓü”þôú:/~®>È®ü$’M5mzŸ5UµrS«%“n,à;fkêΙsí]Ñ:Üþwï lF A“QަYÇî »9\9€Ñ£œ€„¡p3?o)¤b x‹†lV ã$§gúõíFÅ'ocLÚ‘.‡£ŽÈEM«— ªùNÕ ì/#Ï:œ#»Ò­Obüy  ¢US[,5%%ƒô¯ñÙ¦ºÈ}ú‚ï‡õ¥¿ €Ú8âUCÓBx¼nÜÉ£8gX:uÊD SÙ¶D0aägž[p;/S€ï(ñCÛþ™xá­,¸¬3k/žÄó? Jrb¨_©ihê9ÔIU…ä6dlz„·vF„fÕŽ/Ù6fýP¨>ô×t.îîÈ5w,`Ö©}IOtü†ÈT19ž¸¾ägA¦àç2›fEù-;'ü¡Gëèèèèèèèèèèüµè1\q cî2b1wá‚§ï§ ÕåóÙ3 ¸eÅ!¶ÌfÎÉmÙ¸ù=>Øõ.¬¼Íï&cÚb¸x8Éö¨y&ÀïS¥lÁ\Zrëßâï}¬Z÷4¢ßMâ„›¸{î<¯»³îʧÒ׋9o ÃnŠÜ7ÿÍyÌxø‚!Ó§-çü»—qæ…S¸ÿúA -‹§ó°©Ì¹ùdb÷­¤Ði¥OÛ6ˆ@¿k®aóù×1鶪½}¸òaXE(øüU>Þ¿ƒÏæmâ1ÂHqmwñõ wïÃ0ð âõð.6lx‡•ÛÃ|üñCþ:R¦,á±nžž7™E•DÕÍ9ïpcNS+…ê«`Ãóó¹jYÄ$úsþTæßøwú컋; å9LºéZút°¿šƒÛö€;1VPòîUœóÀ¼8㌙±øMÎï½¹& àÈ@€ŠC8”Ô%²—” àÿáqæÝûÛûùzÄCœºøSþï©)̽ðD^³˜L]¸àÙ臗}UÅìßíÄä K·}²dÐPöÓŽ“\Eß;‰s¯ä‡‹næŒ;Ѝöõbî[ð`fÌ¢ëøzüF[XÍc¹å£¾ˆx4®÷ŒÊB*}O»˜£SÈ`Ùw<Àüa÷Q wdÆC7“á2ÒñÖùöÔ3ôpâæÏ‡ýŽ~ÜÂ3ßµ–«=Þ´o?u?'·©%sÖOÜ8æî°Øi×2—ß|*)ŽŸYûîCÜzù^‚øh?ånéš…mÿ+œ}Ý+”VV‘9e Ÿß Å_Æží•x‚üôÖb.yøkâ;bÊ¥7r~; ²ãå‡ùÖÙ‘‹»wŽî¹Ü›kŸ:+çMâ$9ˆÎæœ'f8aj×,fÂÂUÄ$§3|Ö}Ün:œRxÎ¥œ=b$™©5\·øfF?V‡]òS7•ÓÅ?Û¬‡ ‰¡P˜P8šS_“ øC‘´îZ˜€/YÆ bÞ]'rÝ…§óšÝŠÓ5†+_èMƒð‰¦z®7) ­ôÖæÑ³G­Œ1v –$|;Ât›ñöô?y•¯}À’«W ‚‰£¹âoN|Áp$e¬h ÞÝo°ð†•ˆš„9ç$æ]ÒPòó&¾[«pœT|²Žý¾4Fž™ÉÖ'×èÛ‡A²£ÎÑÆ`­™›¨yºçæÿÒ±_úpÚ¨Üüw]¾€!@æè9\3¢ÇšÑÒIb3™¸` SÆwcáè¡ÜFý'Ïäšq‘ø­ðŽ×¹åþgX»ÃÍ[«椛ßáÿnx‚Cÿ7‹ñKC(¡lÎyj)ƒÕû7¯#<âúHƒ=0pKF áf2|ö¥\32 v~Ê›>b㇟ñî?ÍhAmg¾ÈíñS3ì":˜"m~hõË|²gk.ûއÔÆ´®LŸ9—ÜŸ_cÖ‚»°™|¤¹€9sΠ}³lîuwsÑ’È/—™2æQμw-—Ý| OŽÌq ¹ñ@îÒ|öï D$òž÷¸óÇøèÇ^~÷Fßð‹2¼<4ódn÷†4ïþ€YY*¡]¥ìÞ¹Ÿ2`3á)ù‰¥säKˆÄî§r邉¤£²cYsù È•ìÛÇECØ[bÿÜÑŒú‡W.~ôº UlÏûžû/_Âíæ É}¦2÷ÿFáÜ÷:k7~Ȇ÷Vñîr ªßCö…Oóô8'ßÍ<™—Õ0(^NøÇç %Hùª{8í¶Õ¸Ò²3ë®ÑÑ;™¡{åêÁ'à\ šq%sÆôÄÕlüU­º‰sïû‚Ê:•3&<É´%ŸpÞu7²wþ`†—Æ’ž3ŠKïù?ÆÆîæÃŸ—rÍ ðH.LŸÇœñ}š¦"—ƒø|² ’ØDß>cÚ+\tç ¨+æÀžèï+y_ðèÃ÷òÊúJXöŸÍ~˜ÎŒëû™uï;ì- 1mä#œ¾øSn|l³§a™]ÂjïÍÌ'ï¡ Víãý'¯ç®w ؘw 'wäÝg—ðú—ûH9q. /;‘lWÄ]ÒÒ3_Ú#: F÷‘ŒÊdŒÏíŸST•Ƭk/àÑëeêˆQ 2Þ̳yâá‹è0•sÇžÀå'¾OÿyËyà¤öhë6ÑïÚLÊ0Ä‹|y ™63ŽIÓ9xèQæN­šÍÄobHï V¿V†\ŸîZ•ñ{hŽtκærnw ófMÙŠ HöXRí€\E8äÇkÂØnßóø’i [l£Ã€ÔÕôǬEtކ4ÚZ¿_AȜ̙©'rò˜gp9,döBºÉIÏ!Ý(újS‡½@ŒE¦Î<€Ëz^Í·\À} ngÒ3å¨R»Y¼|³Ÿ_ŽÎ‰B‹ò¤bÇg¼¿ö’Î^JG2™|Íyßú3Nø¾P<㮿“1í1ï|žÓ¯]×ç¥íÙ²ô¼vpTàp³ñéC‚ü3ÿ¼ñAÞ[··?ÙÁÏv .ÔÈ¡ª†ñùT@UÃø!d ´í“',åÎzù{¡ˆ3VV¾ÿ)3¦Ÿ@^^ûb̨áe™Ä·žÇøÜàó5èÐbzöçn¦ŒÙm³ùccŽ4Bî<2‚{¬#òR¦©„|ux‚‚ !š¬XÍ䀗`8ºîXS‘,18mÆ#-ˆÛ v‡¹á»°¦¬¬ŒŒôŒ†—z¿ßG ¤6ÜG4;ˆ±‘=¼! 3Îx{CTtSã“#é&«Ã…E 㫫ïH˜ÌVœv3eë–ðF^CO¹> cFÐíÆVšÜS º©õ+ ‘SH&”š¬g1ž /3£# „ñù›>¯h‰!ƬâñøQÔˆqÙâŠÇ&mD ùÜx*‚ !ÌØvÄ ¯×O6§‹QD Œ·6€h·c1D"FÔ ›ZŸ}K°8c±J þ¡aÍ€Í,ôùQDK¤4ÙG7„ªi j˜œñØ!ÜÕÞH”cC;k(áþ ˆÍaFDCúñEËguÚ°%„Vêd|ÕuE+1. "ªÂ[ë!„³Õ†ÝjD@#äóâ‘1ápÙ1I"*þÚ:ª X‰‰³6Y= …¨¨¨ ==ýؽ¸ù3;â°›h¡ok¨rw£ÙŠÍnFB!èóá‹:úŒöìf¢â§ÆDUUŒöXœæhR%€Ç£asY‘P‘^j}!DC$"²Þq*Ü4#V‹I8b óÖz ©‘<{œ3R®—jOQ2`vÄÕ§ªªª0 ÄÄür\°tS×пµÈž°6;&ÅG/²<Ã`¶a·[")–e?o0bÈTUŒŽ8ì&ñWÍ4n›`0HbBâQF?ŸÛGPn¡IØbc°ˆÑ1í #š b´:qšä 71JFlÑqÑb;;ã°[.e0¤ªªŠ´´´_œþ:<ÁúùÈ€#ÎÝ;ÒŸ}»Ý›J¿ÇCP‰ÁL6;6‹ñW;¡UU¥¨¨ˆÌÌÌ£yA?>o ‹ÝÕM/û¨õ#AÍç5@]9²1*F‹§E$ ¡`Àb6DÚQ àö-ö#÷mFÞá<²³²UJÈdlvF5ˆÇë[5ƒÝ…Ýl@y¨ñÉõÙ‡ÍÆ[å&(ˆH’gLD6¨JŸÇCP‘0ÙìØC¶„×ëÅçó‘””ô»e¡ªñ$ìv#jȇÛãG%2vl–H=Êr˜°`ĺãqNZ™Î³WœLvœù¸%qqq1 ˜L¿Õ,ª †P‰¦_–̘bdžñ*˜­f ‚ŒÇ«EçùˆCÁSã#,ˆˆ’§ÓLÓÑ.4ÈžFæúÌ—Gb¹JKËHMI9rLÐPB!Š„Ùjl83É‘±$™°[EB!0›ˆ …ñyƒQ燀`°à°"í#‡ Ád3 †‚(š„É,"ûC¨&£Ô(:8R®¢¢BÒÓ3h9Ýsó¿éØ/}ßx,ûðzC¨€ÑêÀf55‘m¤¥¥!IRƒŽÓD'EÌv'V!Œç(yZ/ƒ‘ôµšŠÁ‡Ó,òÖà ‘-†Ÿ¯–N`óèu\Õ7ÚÏå Þ:/! Xêû¶Àã –è;¦Ø<>‚•]>æ–±‘(Ì–d‹ÅfÇ øp×Ë‹ »ÍrÔþØjÈK/êˆÑTÌÎxloU]³ùAE È»%-¥4Ÿsbqdj=þHÄ fW6©¾ndÌ®z=ÇÇq¶Hf+v»rÀÓ‚|á©•1¹¬Dg|‚î¼aAŠè.FT”P¤þÀ`¶b³[1(A<>“:”¬.b,ÞZ/áhŸ¶ÄÄb•šÊ|‹#&ªã5î;"æÆr I]º©õ*ÑEæ˜8l’‚¿®¿, -ØV Íîg²Û±™›ÍµZWÃê0#µ¢o›T?þ ˆµ~QBø|>‚r´=¬1‘¾öRë GóÕˆþiᮉD½ b}šBÀçÆÒÐM6‰ ß‹?¤`hö~Ñò3éÓþ„ÍV?×ÈaTьͯ0"›4ÉŠ3Æ‚QP5Ôù5 6N³‚¯6ˆÁåÀ„Š àSÄX‘v øðú‚(QýÝjTðyŒVFQl¨ÇÈ<+ã«v£X­ˆŠˆÕnjTçjT>›0Bø¼>B2Hf#¢fÂj…`@Ãl3c„&ïUНwQÀ`2# lV#h ~YÀZ¼†…ïì'wðY\00¿§Ž@Äëˆ&Yq9E|¾Æïh2î¯sÃsI[åhç¨ÀQWiÇóL­ÖZrîµÇokøµþ§²ˆ˜#¸q݈ßÙO{rÕW="w¿$Ž¶Ã˜ÿÌ·\ñ»ä’g÷KyóÛ¿G÷X?¾˜PA4Òå¢òíý]Ô§FŽŽŽŽŽŽŽŽŽŽŽN«/Öy‡óþcËÿŸ\v½ïüU¨®©þK–Ëëõê}G/—^þã ¸¤øÒŽþFZ9.4[g#4;_há¼úè`¡IlpaQõ飅VÊQ]«h­GÞ6Íà¬5þýꈳWktNAa~ô»¦×4?¯ù±¦×´|üx((,ÐšŽŽŽŽÎÿ4ÿk‹Œt°ŽŽŽŽŽŽŽŽŽŽN«hªFÛ¶mÿãÊ-+2¥¥¥ÿ†Ð:ÿm„å0åeåz h ººI’þr) =^@à/—: QUUEjjê_ª\ª¦RT¨§€þ£ñù|x½Þi è%ÅÅÅ$$&b2ÿw~Ã1áW^/4ù_QQñQóô™±Dû¥ÈÝ÷÷8332[¿®ÅÏ¿öØï§  €ôôtDQDGGGGGç•ÿµE¾ºXGGGGGGGGGGç˜hhÿqi 5MÓNç÷õUï;õqôW.×_²lz—ÖåLëñ/ìtÂ/tH¡•ÏÍ;m³ó´ú¿Ô£ÎÓþðÎþËßæß5í¿5šWÓû¬ŽŽŽŽŽŽÎ†¾ìKGGGGGGGGGGGç!DmµXý×*¼nj=!½utttþ'ÐPBªªý¨ÿ§ÔQXX@AAÕÁ–ŸÿèTÈÚ1Îkz®¦i¶õ7þÌoøWñQUíC­ÿÜÚ}[-¯ö+Ê ¿õûßæœU‘ƒÇÑ¿Uåå}¢ÐÑiuŒTTzÿÃäžvSVO~Q1ežðqß/TWÂáüŠËjh`9ýUÎ?LQi9Þÿ¸‰(Œ»Î7 ÿk%‹â¡¤¸üüÃTùÕ?¼¯ø* (¨ècý8Ñ#€uttttttttttþýËÙ} $ Gj1RÃ!9èÅíp%Ø S[ZLY• sbY‰ Bª¼*2šf%¥}6q­¾áÈx«Ê(.­! ˜bÓÈHŽÃ")ÔæçSæõ!kñdwIÁÖ$ )@EQ¸t‘ªª‹Ø_T‡Ñá"95Xsôüêu<°ä0£/>•^V?n2ñdwNÅ ×’¿¿¯‚d$63—k}}bíÛ³CÊ̳2¨:\E sB&™‰1˜Ä0Õ‡S£B|6’­->©*û¨­Rq%;QñW—QZR…©YiÄÛLjçPQ$6ÃÕäeQST–²¦“giåú0ÕÅ^lÉ1˜%47ù{ ñ" JN2Û§Gê¡ii ÔVPRTŽ)mÒHp˜P¨É?L¹×ß´ R¶û Uš€ÁœLv»8ŒhÈÁZJQ‹…¸¤TRmˆ¨xËŠ(©¬#@ ™¹iĘ$ÂTî?DEX1¶“0‡¥É3·Ø·Ed_%‡óÊ`Ä›DZZ,&¼•¥”•×TÕH|›,R"ÕR £ ñ´ë”‚¥%›K°†âè3Ç&¦’ždCÖPXRFOE"{xãH¥Cºš‡()hB<í:%cŽ˜V(ÙyˆjÁˆÍ‘B›Ì¤ßk¦ ׿¿‚ÑL|F;’,!o%%‡Ëð"€-Ž´ÔbÍ!ª ‹©pûQ4 kJ;²â­Ç¿B]óS^PBµ7ˆ*‘x@ÕBrn6ñ&ü¥ìŠRRÐp¤åi¨dOƒTÂÞJËBÄ·KEª-!¿¨Š0Ƙ$ÒR±ÿ!@m)%eUø ñ¤§'â2À_ÆÂjBrÄ fÏèH›-TCa…HZz}_‰,^qûlF?¥Å5„U3—žNŠë÷µ«òRç®—Gæ w•ÉfÅji<…¨,òáLÅ€Ÿ’© ˜mÉdgÅFËÆ]^Äá2/¦˜DRS’pšþÄìZ€²­¯²è•4–¹ ›¨pêíïqIÏÖû`„æÁ¿£…cLj´ÕZ»¾Ê?fá*·,=‹”_1^~éøÑA¶ÿލ_•@]%¥E•øM3“’Nr¼V|·¨“Däiñ"ê°—œFjBã1¬P[îÁär`1I‘Ú W²÷`ªªaMÍ%+6ú‹Š›ý_ÿ“'6ô掛úR³3Zl$¤¤’oE$HUQ1µ~Ž–ê¾—¸â¾dyêD»#º„`´ŸÑ–$‹JÈSEI~D¶h¶82R“q™ÅûëQóîCT#a²&“{ 㸊»Òƒä°b5Su0ò`Ä©"&dÓ1ÉzÔ5á@-¥y¥x4Ð4{B)1U¥%Ô4‘Ï)䤺0ŠÍúiTV‰®´v¤:B¾*JóËñj iŽ„TÒ’-¸‹Š¨¨õ!£aMnGV}{…+Øs  °¥æÐÆel¤Óù¨®T‰Mv "ã­*¥¸´–fâÓÒIе¶¢ ©(ôãʈmèWª§˜]‡«‘,vâS³H²©øªJ)*­!„™¸Ôt’ãšÞ/TuÃ>Yq˜öâl®o·ÜޚтÝnj4ºÃTyq¤¹"÷Së8¼§’ÉEFN*6TÂþJ—5j—TÒ’„ÊŠ(­ò4ÍHBV‰vcC_ ”ï¥ œLÛôzÝX%ä­¤¸Ì‡==›Dsý¼èE5؈1·<ó(u–¨$eÔ÷Åã¤ê#®¾ÒÍ­ÿ¼€I4Ô`5ù‡«Ñ’²h‹jÈKeE9²=T—ùOÎé¤àݹŒY—¼„/·;}¦^ÏâÑ&vû‘„ÈÞ¬š5ŽÌ'rUe5^d¬$·mC‚Õ€@˜Š}©TThÛ1üîäïÏìÆjéÅÕ+–0ÖÞÚoû)Ï/¥6$,ÛIÍM#¶~k>+ËÙö­üýõ}tìÞ—ónº‡qéÿyZWíE–ìÄÇ(”—x1Ÿˆ±¯B;yå‰õ8úŽcúI¹¿Ã¨à«­¦.d%9ÉÞªúò9.ô ¼n7ãoý€+‡Zþ¸hÓàvž^0ŸÏÜÇ{—÷Õm'ÇîÖÑÑÑÑÑÑÑÑÑÑù÷â/aÓò¥üߪ½$Yìô¿ì®æDS‚Ôoâ£Õ[)«íÅeó‡bõíàƒgŸã­õ%ìÕ¨Y3¸áÊsé×f?/5«Ø "БYÝÁ¸Ö¶ æ±á'YúÖL.JÊxfϙˉ6°âže¬+©¢º$…‰Ï.ä².©H@ l'›÷¯gÅ31Üüü4Q åoæ­ŸçÙ hÛ}43.¹‚ÛELUµ[·cí3€Lç6V,|•/«j©)Já´ñ÷‰û—sýÜµÈ ‘7±v£qû¬®˜€`q9^5Dç>~xîžø8££%ý,®™?“¡9›yù¶gø¶Î"ú)͚Ί;gÜØs©„©+ý‘Õë7³kW'®¼e46õ ß¼þËßÝK©ÏEß¹³™3e©-X‚e»Ùzx=˱pËKçÜ`‘)Øð2=÷>òà[Yò÷>G®ÔÚ"ö—}Écwº™õà¹t‹3SóÝ2îZ¼ŽJB _t—÷læVóýÛOòÏ×vQrÑkæ%Ì=w8é¡/yíΗùª¢†šâNy~—uJÂ_ü*Íûˆ½±"B¨ç½|§9Üì[ÿßñ…fYCOgöÍSéÆv>}æYÞÙP@yu'ܶ€¹cº`÷|È3ÿ÷&[ÄþÒ6œõÚmœŸjÿÍݸù3w³"¶Ô·‡ÙþÞRî}iAƒHlÇÑœ}ÍNL«â›'—ðÌG;e¹À“Äé 2©ÝF^¸a›T?ru{N~òÎÏMlòò®*el_óOÞ÷%6Ùƒ'qÑ gѳdo<õ_ìöa6› ßÕ,¿\à­ÞçG1ˆZÓSžZÀ¹m]Tízž{/_K^¬GÂf>6‘¿Ë®Þ½Œó×A`4ÓyÜ­,:/•ƒë_bÉ=_Q—¨Qië̹—Ìç¢>‡Xþà‹|±·ÉT ¹—s×u“È?NƒWp#^û0[|*f›4UÎåÂ¥w3Þ²‡+žãæÕH’‚ÆXÚž0‰óÚ—ñÖÆöÜ|ý¬Á¼úÔ·Ä ™À´19-µóqO‚25WòЃs(FÓ*±ŒyŒ}Á×ñð3×ÒIu³ç“{¹ïý,æ/9…ŠWåÙÏ X<„³OåÊK/aTGË0!k”lþçž{‘O+‡qÍÝ ˜ÖÛÈo/å‘U{AP+1vŸÏ¢yh[ý×ßnåá§“ T³ë«•¼ý½¡w²ôÁ Xrã¡N Ýès¹è¢ t‹ÿõ¦'M Q[²‰?ßBQYf_3 ùª(,]Ïs0tÆéŒî›Ž«òØ]¼ŽÇïT¸öå h+ŠT|‰ûæ|ÊÁ8k.|öN²(øvÃK/-gåOEdšÊeŸÇ€ô?×.Hf¬Vã– WÊÙºþÊ,=˜|Rn+cv÷ÝQÌÕ«ßæd{¤ŸEŸø˜}ñèsZs×§[oÉyÚÚõ­6f“Ô‚TûÕcèèÏÚï¸îxp³ó£gyàÁO¨ÉMÁà‰á„Yó¹ð´Ä·RåÚQ:ÉíÜ>+ƒý_=ÆÃwý@¡ÉAÛ“¹ìúÉt“@õV_úOÝ_ÆÄ+ÏbH‡D¤p»Þx‚ïoǦjt›ùÿˆ*bŠ×OÙ¡ƒdŸNé§qïâINrÇOcö5§ÑÉ»™×þ'kvV!™+!ç2n¿öt:&F{‡¾ù–Œi‘¸ãE¦_ñ%$k`´ÒuÂ"n‘Ⱦ¯^äþ%ëq'ªTغqá%—rþ°¦û‰+Õyì*þ’'îsõ² É‘Djò–qÿå«8oÂlìË…Ï/`œõèJÒ¼•–­ç™GŠqáŒê•Фmàù›žcSØ*¨È™Á›wLk¶ø0Hñ¶·¸}îsµÏÂâµÒëŒK9¸ÌûÏ?ËšÆò¹÷U¬¼í,Ò9gñðͲG¸eõR]I »ì.ùWpçµË(mß³ÇFŸ©³™š·}–·W ™+ÑrþÎm×L¦Kœ›Ÿ_‚k?ÜŽCƒî³ã–A•q—laíÿ³÷ŸáUUÛû?üÙ}ïôÞ{B’:Ò{G)R䀱QDP Š‚G± (ˆâ¡J¯Ò{ =¤é½ïÝ×ú¿Ø¡ =ǯçw=Oî7\¬¬½ÊœsÌ1Ö¸G9w‰ÄËaÌœßûêëþùGÖÏÃl¿ÁÏóò³ƒˆqºwL̕٤œdÅB o¯›D"Be&V-å³S¹ù7gðԜ͑ýÀš#¹˜Mà;àY¦<7„8gÛõ¬5¹YùïŸÆ¿ÖL!J%€½ý€õj¨¥´ô,¿üxƒ¨>Ò3`­) «ä8K>1ðêò‰Di üÌ*æ/:I­ZŠBô£×‡Ÿ19F¤0q3O[EqD j­-‡OæÕg›sîˬLÈAðuDÐz3rþ<ÕÒ• ÅIl_:…Å7_e×êFÛXl (a9¯¼w‰ï-fÖ `$æì]w˜jŸ_(Ç^£ÂRCg^×ËÙ½ü–Z†¥Â_xY#[bWµƒïßÜF²Ê uÑ ]>“ c¿åȨl6ÌZ†õQI¨Ö|Žÿü9Kö¤€Ã@Þ^3ƒ¾ ½Ð×$°~½'ËO.¥åÿ©>Íçà¦Ã”yôáåŽîI·s:7÷üƒ™k· E¥V¡Püy‹U°ÖS~£Œ²òkœÏ aâØ±{SøúãlÆÿ¸…Q¡Ò‡>ŸÅ¨¥ª¸—ï?ø pmÉçìíò=û'G6ùNþK4ÀMhBšÐ„&4¡ MhBþVèŽ~Åç:óë¦Op»ëóU4T“¶o-¿ìÖÓfx'ÛÇŠV Ùˆi,y'?I{¦ÌælJâA*À‡[¦ÓöÜÔ âßu, žiKŒÊ™O>&1éµÛ6`=‡Ÿ{†£Hü˜?'0þ㡸*eÔ$nổ¨xÁ–é +çÒžMœqšÂÑñ¿ûô¾‘.#¦½i+~Æ:ñCÖt @r麮H`Âgã`qcÔÏ›èÏñå“ßq`Ìw<îÕ•¨w#Ò_ƒ¹ß |95†P¹ƒ3ßãbR-Ì忳œ×"¤@=žœÎ‘ÚñŒõºóÑ/˜udYÏÊ-„öiƒÈ;t”,!‚Ù{U²…©Ë/“œOs‘Œ‹ùhšEãïlËr¨KÞÆÒOSàþü]Š%‰»Øyê4Ѝ'WˆH0Sš™CÂÀÔ€9ÿ«—­ç¬qÏIeH(cçâ3ô_ÿ+Oª”¯éñånÆÿô.wMKþÉS¤×ù2}ÿgÄ•ïfÆò«$gÇP¸u –ñóXÝ=é•è¶2‰‹zrèÃ5„­:Ä?(Ø3“ÉK.Ðÿ9çæ1âÀvú ©ü¸bûŽä£©ýâ°,|w>7–3úÇ‹µ  à“Ÿpú`be˜O¾E÷ÅgùǾšx¼÷m]²¿¶ªóS8wÒÄôß¶ÒžJ®ú‰ßv\¦ï” K,cçMcÄ€[Në*~´å[¿²¾ŠWÒgòVzîy‘°;Þ"ªr.rxK£n§·¬€K׳iÅy¢¦ôaÚ‚>Lk<óÒâ—9çÂþ9ßàðÁ.6ÄI¡`9½§l¦ëî'¸òí>:lÛÍb—zάÿ„å?'ÓcJ‹ÿ@ª%ÈðbüêÍ ÷Kåq¾~~9‡ûÏ%ο /ížA{;Èþu9GÒ’) v¦Õ‹óL¤'ŽÔ°aä e÷ ÈÕƒÿ*!ÓjEÍ¢ycˆº'ÖÀÂÕÅï1?u<¿n^ØH\ZÉùí¥*îÎ&•ÈPiÔ(¶¬Ëæù¿G+ßHà±kXèPÀæ µHÛ¼Ä×]‡±zû˼×5‡cGsé¹à<’Ö²;9ž/wŽfR®f¢€¿‚–Òëyæ÷êJТs¸ªLd­YÄÂä¶|öÓ|"äelþYæ®fÕ“*îq8K‘)ThT2§†Î˜È”1Í€<ÖLYÙM4‚u IDATÓ! ûÃÙ­¢¡†ôëXµSKüÐÇîd™U¤°ç§5ìËiNkÕ]™YYûøaÙ.®(G#A‚(TrxáVâ7îçŸf’6¿ÃÇËSè÷¢‡w¤$v6‡> ÿÝþý¿ƒØ(?`¨È&ñjõ8M³@'¤è)H»FNq-V‰‰s­[ã¬øvt“yß¹+VŠŠ*°j ¨¨ª¤J'! ¶Ñ>RŠœ& Þ ‡8êC×VrRO¤RCmÚù=Âü0²øa%•­ª ¹Q¨&¬…*ÌhK*¨mPâæHEv:ÙEÕ˜D{‚ãã qÔ’uœ¤×É,ö$6ÌŠ€ÜÔS¤UƒBãCó¶á8ýÛçû³û3çüYX­Áôÿ9Þèp—ø —Üg“,ù-›Ú½„ìD1OÜNoK߯ØÅÞyÄ B(¹È–Öp¸´=ýr¤€õÌw¼}¨K×Ï%è¾;:*s‰è˜GÂÙž>´îúó,^~„CÇ#ªÄ=ûã£}p¡†OÍäHVw‚ݽQKô¤_t¢×“®ˆÞŒ_cÓ-¦Ò£|ûò ŽöCdÐcLÝó&m5¹fÇÒÒ¸Ù%˜»M¿ìý¬Xº“KòQ£PÍáO7·áŸ{YIÝ:‡yË®ÐFkêŠr(¨QØ<G åIì\±†ý¹-è ’Û~ŸQFØüU¼PÃÚa39T÷£Õ$'×ãÓ®9ž2OZ¶{—/¿»7³ÿµÝxí¶~~‘Ý!Í~R}äk&÷aÇ–E8Ü>ªE½i×í&ý³?·CÖŠN5q.#£ýp¥ŽÍãfrüÆ@’—ðΑ(~XÿÞm¢Q°èÉ=¾‹ðíÈ:™bY;þ¹s1\æÃ¹Ç9ŸKT—à{¨†ôÝ,ûþ ×ì&ØÖ—ÕLÞ嬪É¡mÝל™¬C—(´´dáÎ/ &‘OÞ?BBb,1=B‘ê Ø³æS²¼ït§ÒÌïìíIMU‡V¯fGJ¯<®¼ýl¦›‡ùié.CA"ŠÙõ͆mÛÄPX..fà·{¿ìq¼hÝñ=¾úzÐ]c›ÁϤÏÞghÇûjT¥³å—…FN m¹â–8%â”±Mq³y*PŽB­F¥T¢ÄDAj9%5E'šuhMˆ“‚Ê´›X,:Î9BDh8Jƒšèæ^ˆuÅd\·Þ>i]5UUFÜB¼hÈO'5£<ˆlC°›žìl !ƒ¬"7ZD6–÷•HA—ÍñóÕø{¹à;ŒNÚm¬/êÉÓî¹\O?E±ª;4R,B%Ù‰×ȯ6„µjI˜‹Žë9à,I#£ÐŒ¡mºâ(PŸ{‰sYZdR)jÇâڅ㈕úÒ,’Sò1HeH4^DDGèbâæÕTò*ë1‰ŽDulG ²œÔ,îŠdÒ üiÝ3"‚IOà¬ò£ïÔeôjÚ²c¿ðkV%e )xtšÌªùmÐw3ö•Óܨ!íõ•¸}¶—_£ÜïéýÊzî|:Fá–f¢¶(ŸÂ»äDDY$£æM!ÛšIÿWŸ¤µ§–ôë¸ÈÒ¸^hA@Nx»n©KIÙž@–B ùâEp !ܽޔKÙú¹9QR òô¹•ɈñBW- «¿IA­•à¶]Ñd"­NNDÛ®ÚY¨¾q‰‹7tÈ$ <‚ˆ‹F]YNuÉ rËOr2£-{wÅ×Ç Z²/%SP×€…@ÚõŠÄÙXBr– Oe2©ù"Û´ÇGÞ@IæU’ ¢Â#8†–!v­DŠ -7s‘„à¡yØÀÍ '¸Z¤£¦*€!Owgh¨‰šòrê*ËiÐQR#Á'²-̓œ¨9s– ‹é•=¨lEÏ6®ŸJ¡B‘)ÃèÐ95"†ÚB6ÀÒµ QAÑÄØÿ{ûËr„eÛ½˜½£‘üµqéXµR9j{_b;DâÜäRùÃh"€›Ð„&4¡ MhBšÐ„&ü¨çÀît: ìù;°*íˆíÙPµˆÄއΓ±8t{®± ¯6tðºãÓûùàí©FÁšÁ¡ ›Éרðí0Ç|žE%:Gí|ç: n^x‘»+ލÁ*Û½Zô k^*y¢€ 2|úÏem«-LýЂhk IM.$|`{·oCEËÖ1¸É’9uÃfÝJɹ֊ÐQ [©é–=éúÙurEØØ±Œ¸å”Ô €¯ ‚ü›¤×„2Ð=÷;ÏiðöÄË] Q3 +…÷“XZ‡®Õ(úxÝûÙ,U»ÐzÂ"~ˆØÈŠã&Dê))T ©±‘‘>Íik¬Ä 3‚)‰o_YJÈ—Ëx¥³7j xö™ÃªÖÛ™òŽÕÖsO0S•qŒãÙ ´ÿ-²v°ó¦ …øö .x cÆ;"QÅå£%þ˜¦ÝD†Ø3¤-Iw²ËDŠaÝ£ï+µ\MY±ku¬-£Â³­­ˆºó\LnMØ %f@ß“nŸ^'D’¯ b°€ç¸î´Ýv½/åÙ]é.p'Ò%”œò‹\*ôÅÅÏß–ÕÚŽŽÕW¨±^äÒ…žtœkB@ƒ¢Mº|u“l âO­ãûßY‚äk;®W?= ‹÷$eýoTØÕQlñ£k¬­ŽœDRÊÕ#[Ñ›Ãð ïJ¯æ%”äµ&Ò¯‘ÜñíËÓæed!ìöà™1 è«Z,ð#Æ?ª¬RJàŽóûÆ Ö\mÍ„8<¿=­üI‡€¾áّسY¤”¸ST\OT{¶]űYZÇ„à(ý_ëD ©€ÁxÓ?,aSš ;ÁŒºm?žŸþ$ÉÛX½â47L ¤79]ÒoWL¡Ý#J2þŸÃRÀ±mG©i°Vr3¿™£”ÚŒ«T´Çç3ÂI9–B…S=‰ÛwÖ¬ÙµVî6àì&¹‹æ0ÆSÁˆ‡“Á"`¡öÆ6.OçñÞ¥-e\8¼$]3F²ãÌŽƒ$×êÌØ˙ң„Ÿ]$¸e 7ó;àþ† ¡ü'÷]¦ XÀPi"úÕù¼ÒÖùÏñïžóQç‹ÿÇ먚¬‹¿±zoA¾1´ ÃEñˆñ½Ï&‘F{à`)áFvW:É™QNd––QOŽá™±Èë¼$V[0ØÁÝi´é׊¤;I”Ȉê=„({›üëJ/p¼4‚ ÒR²ov¤»°ó£¹½7ÅÅ…h{v¢ûm{G‡!È?7R  ;ÌÖœ–¼ã Rç;º¥A²f>¸y¹àïÝ ÏŠë$œ¼Êõ "»ÆÝWÂ[ľ݋|õ}¯½^n !™Ô+ƒyÂ˦K=£:{$jÂÈØµ‚ïŽy3mõtÚÈEd!½˜ºÀñ“K¨,VÛìEdfòÏ"±\‡¡Ýº»‰èSvòÞëçxæÀ/ w ZŠ2/³î€„0Ç@âZÇã{w¼Î¬¹ÚŠQc¢p¾'¢ŠC{2h?`'wî@Ô8×½'A* POazk÷› u !¾e,Þ~]èæw—. лžÃ¿¦Ó¶_®îÜÉe©œè^ƒ‰´”ŽÄ[ÄÊè_ùf3àŽÏÍDŽoÚ‹»¼'ŸPšû:ß'q"Î]Þà‡VἆG.™Ê@éµn=Lz}Öz#gË”¼:>‚œÄT*«ê9¸­œ‚­I_&2wÏDäg~`ñJO^Øô*ÁYÙ°šN“8»l Ç‹eÈj¸Žz–9CL¬ýü ÿrŠÊ:àvœ »AµÖÈÙjgfv¾Ê¢·.Ó¶¯Žìœnöl†ÏÃö¤šóì;•‹2~ C:æp1!‰[Kp iÙ¢9~ŽU¾Ñžç÷e¼a%™wªIlß©»VðýmynÜ#ô˜Íz´Z3¨øzîi";i¹™'A(MF?ä_,[Fâ‰kT©í9³i;yá͉Ԟg×e`FÝn¯<ÌÉŸv“­-B/Ä3ÊÉ• ‹¯àh *ë*Õmß §á(—SR1 [ÃÒq®T¦cç‘ ì,f,vä¹OcH} YI$k‹±÷("/Ń/  Uí–ÿ”†Vú Ü?bŽûa̼Jç!z®§[µ%8Žù…ÏúÉO:ÌÎsµhô ˜‚»0v\ T2 HHHfå̯P½1Ÿ7†FâôµPž¸YFJÏQæ2’·ÞŒ%}Ç:ö¦Ù\ÁÑÃ7ð•PžšNeÔóÌžÙ mBêRR÷ï&+Ò€:ã2«vi±÷}šôo>âÅ ^‘ôžTÆOóÖrµE;Z·ˆ &¾‘®°bΜ"­×>p*RÖí`{R@&qã†t*O·k¢€ÿ(šà&4¡ MhBšÐ„&4¡ #ÒH¿¤¢Èý§¬‚.3ÙaÌ}%ÜÖãÕªE×`jìßyÇe*A èÀ.ÒÔ­ê‰9mÇFp49‘ RvÜ„÷‚‘„¨æ½ã´©:˜¤ZozD7è9‚EmŽ=™;Þ¹åT wÎ5Ö$öH06d“~шÁû(Uõ¥Ô›¯R¤{ƒq=\‘\9Ka¤Ý‚ƒ¨”%ݹ¦ÜŸ¼2Êïi XÈÙ_ÓÐiœÍ)QVLaUоcp¸ë}Kï%EŒd`xPc‰‰ŠÌ‹$$»ß5iü®©® £®ÁŒ(‘R¤2@zË¡æ„[u“2Œ~ÿ‹¿=ò»‚Ö€[Ô¸¥þV,`½Ý LײþR 9fçnô fÐ`\TáØ*ú5^ ¾³`+})âHl7 »ç'å]GÆ©|:. w“V¤2H-6Â'\j0Ö›±*­X¡q^ÜðÉ-£BˆEŽ Ë-g·£3n¹éTÊ‘ËÌÇÕØ[@Z­¥A ¬ïî‚gI u©ÒŒÅÒ8öîx\ œ?KßÿÎÒ¯íœæNõ'4ªžÃÿ:Î%!—re“‡û:B»Fv(‰kgS8¼·Õœ´yBÍ©µk)óR!W4娀§»< Ý| ‰¼Ìæ6ìf¢$1k@ë»è=û¾„눈´Æ8ìG^M‰§™\G޳w£¹ÂŒ¹Ñ5 WÛáPXA üGðE”ÇÙõ§1w~š–R›Ó¾¾ªÔ„dªÜÚëmwOß¾››·å×›)þöü×…p%2ä¦2®'j)vP!-XüÝéz“$s,OÞ·`5bý#êíyþ«àI¯—#Y¹+™‹Uf’¨[à©8¤níÝåK æ¥vÀPD· e×Sì;xˆ†k)x…DÓµ}+BœÿâÒÁR ÒŠJ*£èw>¤Îø•S.qyÈØKQXÊÈ8½Ÿ©8é*)ŽŽ ïíþÝV-ÚSã>vלu̶žÉ÷×ê±ÜÚc%r2Óíu-³sÀµàyZ=™çj19£¸6Ÿš“¹ÔNœÌVŽüo9` Rt䦞åtv(o¯™EsÓ–.ÞÏéý‡H¾xuÇçùjBì8ËÜ™™ÿEÏò¿l¡ P)QÊÕXÍ%ØÅåõç;á¬ÛÇs³Ó¸QÚ…ŽaÏ´:Þûv$^fFÏ2Æîø™Aν{.³¿<Á“ŸöAù‡JCß²î;r[¯*ñŒ|Œ^sðœHÛ°2ªäVúù’½q#WKíi1°^ÚKü´ú W£Â›ópèñ‹ZÈ tB½’ÎÓ?¤½ ÷È´ö3zùè;¤Â¿y–?ûì=ÔøÅ†˜\DæÉÝœ­O¦nì$†tñû%7oÙ$chë|“lé-=«ÁÞÒšZt`³Ct-"2 ƒŒD9EÒSèå $õi¹Â³cq1)ºrã¨÷‰0žã„Ìܨç58DŠMZôИ…iáæÖ­døöäEG”@ÍmTŒŸwWå Àz“„_°tOK‰M·ÔUæ“z6…ZvĹßßúîýáÖ19ŠÛï'Cfï€K^.å8Ъ';9à-½ë·† ·Èß»ôVÙõóœK÷¢u`$ ÏÖŒxÊ“fjÛ=œýC‰îpôcûHjpæf©š§‡G6î…·ôósÄx:Ü·ÿ¤q-QN‰Ï ff]9ó˜ó|îA¡4k™AÆñ½$êÜ(ª˜ÄSCÂmAnXÈÛ¾ë^=x%¤” ‰2Š”§ÐËdP£i!|0+Æ–1'è¨Ó±JlAN®¸ØsöØ Jo¦bíñC}îô¹eóǬÖt®]•RpmƒƒÞJzE3¦>é‹»Ã^λAYþ5,žåñ0J6ÌbÑiúwøÍ)Iä騏³9“‡µÀ nÛÛ´¹L:ô&+*ÉÃl1p!¦ ìþä Þµd]¨ Çò—cÁ90„ȶi\?¶« .ä•Ù1i˜/Ñ}#É>‘FʹKÜ_‚Ý{P®{‹Os2E\ÏÚÓ—)-•²ùx<z„5îÁ&•7-â]©J^ϦS~8©•¨ÈçÀ¿Î)ó¦uŸ(ÜëÎòõ²\î=‡¾Ï>EDŠŽùߎĬúeY R¼o”ÐrB$玖àënÄèæDé±SäÈ{ðñÏcð«ÞǬ…¹ˆLÈÇ¡Ë"¾íí5»QVž`˲r´ÖÞ|»¸.™kØ¢rÀ?~ÞŸÏãkegB#_¦£C2—˭ع´¤w#.™åHËŽ³àür[y 6çâÜg%3Û*!ï'úÎ=NÅ3 è7ž±ºsT 䥞åÀSt‹MãjYï­žJ3òؼüJ!‡Ë‘çJÛ^¡¸Öæ‹¥ÛØ:5¯'Öòz Z¨{°â'óÔUò%ŽôëE˜¤Œ {O“”žBNÂ%œ^ý©7Ýž”rlù/yÊ‘HuÜp1hà¾òvøß#ÏSe*4¦\ܬez,³‚¾§nÂÓ<³`×–ºóÕÂ^”^XÎK˜½f1¦+,]|€#Dä”aßòÞ™Ð{Óqvk¥ÄOþŠáÊõ wŠà=_ólárú.8J͸qDôÇS¦ËÔXªHNNaÿá,FM|ŒÇè÷ìÃ?ú×òýÂóhÄtÖ®L$|Ò'¼ØÃRÑ÷óƒLúXƒPBàèñš4œ_¸µÇh<”¶ýžB«Hà¿Áo)9œKtÂS.E&Zº{y3·»dçŠ8»ú™ú|Jt1Œúx±mßµ–RF£Fn©Á.´;Ͻ;’Ksß¿@f–šQ3F±·(ŸIŸŒ¡™*9½¶3díZFúAÝñw1ÿ ~†R¼»óúÝ)OÜÁê=ÇÉÉ,£c§v´‰õy`-›òÊ2šÅEà*JuçX¾$ÆmÔQ’™À®%{é»jì}A?Mxšà&4¡ MhBšÐ„&4¡ #:ñÚüiÄÔœfþÄ\œú™-;än+g·³ã°ÎÏt&Â]xÑíå™Y„E¬8‹“# x¸ûU‚HeÚA¶oÏ'|ÈÚ¸™¸f ½]Öµ–jo—FFV ÞÁ£yfÞSxb!uÓ*ö=DAј2Šq ÅÇAÓùíkÖQåíÂ\ŠbŽ~½†+æÖLkëXUS‰®Ø@ûašÆ÷(¹¼›í¿ÕÐzÜbü4¿ÕÐrÜ»´Wφ±ÃÙpˆ7â%ke޼êÕ¸(¥XaØ«až*…Ÿ¸Át­( )SKeu-uB¥:w† ÞXz[Däþ²¸2$†,~^rN_,c «Ëÿɪõ¿?ïå÷>Ÿx×óiíÕ¸ØÉ‘š¥È¤ÒÆëÖSé㊳ԊEãG¬ :ê|\q¬X…[ÇMèe :kP•ë6^[K› Ìrd·RuTy¸áò—¬mñwkûã‰K9Ðo$E'eŒÿi!ñºk¬ýáW’œ¤ýøn4ë=†7zŒ˜>›Ä´!L™6‘úe›H.4£°dq¾>ž‰Î÷ޝ£_†M5°ö—ÓäÕÈ)Ðãêç-7Zæ¿8\Ïã-"±Ç‘ÎoN¤bÉÒ ­(ÌY\¨oÅx3©fyã¸Y±˜Œè=œï*‹øŸ Ÿƒ‹%MÖ–ñ#n•µ–âÖ¬ÏÍëEÆÆOÙ¹­ÍKÿ ÖÞLÖuì:¯aððû+ú Zè]»ðÒì±Ä»Ý•wª­ÅU–ŽñþóeJ$¢Rég·TfËXÅÿ3ÚFÜÛNá­¶@åi¾üe'ç tûõøJ‚:Æùª#mE_éFßg>§/Õ\=°ŠÏþµ‰èN`¿°?•]ûHH$HEp*M§¼Æ‚Õÿn§‘Ž 7g\A*¿s_‰©T†D@0ÑP[AYv)ÛO(yòÝat päo-´,Z±Xï¬k«QÖË;ƒ#ám'ñô¼8¡çÔ7ßsåÊyJ[õÁ÷©% 1›1™ìдlM4€Ò`‹=y.pÞ9žÍýlÄ‘V‡Ù*þ-tâ“73f·ö´ˆò·‘ƒ j;4R+è X­´¯ÂªãÆÒÃÀˆ‹O4I×ɤ±÷HÅ]ƒò‡¤èοR{'ü#ûbI:J–» ¹Þ‡ÁjŽ«¬Õ¤\!ß*¥M—üœ˜}úÑ%ÜŒˆ ‰h…à8l- Í8FTTA%àõŒöbúï›)5¾ñy)~ rñëœÍ¸NYG?¹IܱIþ1:ÅÕ ¬Ö[òmD/ÑÙ̓fCk&/llÅ!&òñ€åœ›ö5ý,ud§–Ó{€ú< ¢pçš ØkI43ÙeW‚’A¯u"À^ˆ\JÈcàÄ»ûùæ²ÿ«Md(Û1nøÝâÕ—çßïËõµ³kgö/Œ%ú‘'V,·íÁи? Ãÿ±<õ˜í¸ˆô«Ð޶ß§-Õ¬=’mAGx­y'&μõ[.™øqgrv¯d÷å³ÜI¬ânýÜœßÇðˆHéÉŒ_£`)8̧3âÒóÐ)´;Ï|Ҁ뛖²?幉–›¹qx#;ÏÈè?µ>¤c1¶á…ϦÓÀz™/çÜ_Ñÿžh)r¬¤?Ë5K<Ó¾ÇÍý|ñSWã èþè&¢{Õ@^ž÷@ùÅíü¼j9[Ü"©74çõïÆá“þx–+Òˆ ÀШë”çQg¨Âhl ¤L‹ùߪ‡?¡?$RÐ]ççï³éþíRú9Ö“°v1¿nXKá;OãÔ•Iw kÛr~K>ÃõÁˆø4Qôì~éM®Þ,¦UÄFH+Ⱥ©m &“”’rmc íådBeM\LN§ MA³:-µî E¥ÜLÒqCPÓc@4>Ž Ð°Šf7I(múq*§’úâV´"ˆ ßÿFÉg”!ÁHë+ðnÑ ?× "+’©*/£Úo#¶ h$æ:ÒO'ãùÞ3x"¢$ˆ‚{§ šw7³}G=cwD£ß™„\¬áúÅ-ü¶=‰j¥. n5z ¦ Ó­™-ØA¢v&Beí5v.]ÇÉ<ÍÔéÕ‘$ÃÚºÍLZ fUM=ZÆÚb²“j@´§ïVx(k‚GÐ3¤q%žM±ê*—Ò²±‹x™vzŽþt}Ë‘ÌëßýåÕ|²a7ç›F9“¨øz é S6µmyÞDÃÝWs$ø±ÿ;y,Xƒž {„µ JÛw˜A«ÇjÑ£CKU M«>4¿¥ŸÍróò)óîB»H/Ûþh4c Š%ÂÑ ØÝ(;4Î4SI1Ö&±ù»_9§uÂÓYO•NŽ—N Øc11t€ R¤•T  o”Ú6a­‰K;Mº a#èîˆf ö®„+ªJ8úÃ.RÍÎx8Ô`®×à`У“Hq̘£ÿäñÕù…˜CCróø}Àž`ÅêMxdŒm-Zxip’ `0b±ÐéÌP[@yÌ8zúÙôž}hkš%¦’ư{Z5©½ò/§ ®–²”Sã IDAT=£Œ£[º´¢Šo' ©É$™D„2xp šðG!m‚&4¡ MhBšÐ„&4¡ "ov‚}i·\(÷$ÖÉì°Ó¨P*íƒÕ¤ÝÊž£zÚ½:…>Í]mÙ,…'9]rëG”x¸?Â'„–ÜK{ض½€°qÏòD_$–E‰Öbs¦'p&ÜŸ ÛÄ£•½™L=Rœܰw;ÉéšÆSDQŠ‚2˽ppôÅ?C3(¬l¦×Îp6"P‰tרºd9šî<ûöÆ~yzjªª(±´'  –ÌÓ;ر¯š/¼ÀÀV^¨€†ô®ko½ùÃBy¥v8Ø©P(5ÈpÄËÓ„¨É§ *ƒ$ v.®Ø‰¹Xµ•óºÛÙRr™ {@nHÏgg1kÖ[Ì~çM&>9€n]1,NIê½EBtáÿ»ýžwvP™Ó§3mÚšy; 5ë1šÅÛ÷)*D›n)H'?*”໯/>LpöL/M/ÑQ{›V›¨ÒÊQ8jP=Šü½Ï& ì\qöM¦À\EŽ¡Œz_ï;½í4(å*ììfD4?Çá Õ·v.DÑ&íæÚ ®Õ÷¢…(ÕŽ8x¥R`,%ÓR…ÞÇ'j¸üÛF\TÐëí—許é!‘󥽉lsS›Ä¦¯wRâчg§÷Ã@WAAæµÛ{¦D*C*½Ãð€ýÁ^&AB(ÁgÉÔÙ숚œ+¤E†€™ÂÄ£ìÚyžAzÇ®Q«Q*Th쑺ÔÓ\o¸u}¹ÍA¬¼Ìæå»É0J‘˜ë¨¾q‰=€™ú:+{'ìÒÏ€ñ:;¿?JŽE ?ʾì[o ФFu¹WH3©«ÁÁ7¹–äýÙw^F÷ÙSè¢"ˆhžÀ¡Ku¶³oÙ‰ ;”X¨¯,¢ø†m¡ÈCºÐ ¥ÕwéÊ»ÆÒA…¬ÑFT*ð >Æ¡¢»Ï©§º¢ˆ¢¶žÉÒÀ.´‘É)˭ëëpžym6sfÏbÖÛ#}œé“;ã.‘ÜgoÛlãòëçØ³å*ÕHîÜ_i‡J©Bmçp'ðö«°WË@žAÚE)r)€#õÂíB7,fês/“j0QW/`urÃU—MzA…ÍN¦ŠR£Z {Ž©ÓÞbÎìÙÌ™1„  Á¼1*þ>‚LÄ‚”ö±„Ú—pno Z7'T& Q='1gÖÞž=›Y³Ÿ Î^ ¢ÓÍZôR Nñ¡\ôêB¼sqò ’Ь· Gaȧ,-Å&7µ丩pquÆÞjÄx+¥]´`ñëÏ´‡¢]=‡íÙ*[Š :<õo¿ú41Š:L¢ …%Ÿ“ÇsµxšæÍbÆÔ¾z*mr+˜0YGT±BùYÖõæsxkö{<ÛÅLZbÆ’s“j¥=j¹ÑÑUƒ‰æ^âí·lïýæÌ„Ú+‘Z …Gí`fn\L!³ÆƒNOäߨ¦¶B‚¸´éOL~9yºZô„2ü7™3ç-FEHðéц ;V­͂{äù®Ul§B!Wcç ©‰Õˆéöx X§`•( ÷êg…™Ÿ#¦[úOX-XÛu«ÙVy@±ˆVôÅ l¿Æ[ fóÖì9<ÕÞ Å¶oZ«tèu*ˆ®n¸ãJ¶ÑöìyɤE„ÑL"«Ñö]ƒh T(ɼÌÙÒöÌ›ÿoÎ~‰ÞÍíÐ[DÛ>&•£¤˜ë·s:³ªñ·w#ŒÁï¼MïJÊJÒÙñõ—|ÿ¯D 2;d·! VË­JK‚(Þ;Þ‚îî¸^߯™R›<7ä§e @¤¡ê2æÆò½I”É}è:f,û„>´BŒ›³+yYùÔI7\ 2ú̘͜9s˜3ûU&>Õ7ÿ@Gÿÿ'š2€›Ð„&4¡ MhBšÐ„&üð ÿ;ùvùtÞµsD¢³â6þyÚH€† ÷-៮RÞ°Áé9F´”³ãÇïÙ¯ %˘Í.C.=¦òzD[¿ÙÏ.'ëÒ¨íñ4¸mU&ÿµŒWéd*âÈš*ÚObô„Î\ûi9óvIÑfVÐaæp\6*ªüô2®;ÂÕïžÆ€1¯Ògô1~ž÷ç5JDiÇ À»ì,™RG¢ƒQ!§ëëIùò[æn“R½‚ÎoÁY&¡âÔ ®>KT-swbµ÷¢m¿ag£k#„ËRعrÛŠ}yÌ”Ë^} NÝ_ä9õ¾Yµ;© •$k³w™q_‡6c=×|Ë¢ É«´Gá>†Ç{u#´hß¿2s]²~£hî †sìX¶šÐˆ.Ä7–®Nø‘Eë’œ$åƒ) ˜4‡Þþ·üºZ´õuÔk@ —vmå¢×0šuŠÀY"Á”¹6rîr53ÎÑïå·xaÂ~¾™>—ãþ"h­¸Mz‰Ç¤Z RO°é'šnIx—V„ä­aÅÔ¹XuÕHº %,0°©HþbswHÑfTÐéÍQ8áË€wZóÅôwIòÑ ú¨N^:Úö‘²ö¹wÙ®nÀìÏÈqQÄQLò÷ûøbú1 ÅøŽ›Œ·ƒÁs:±xá<æºI¨»^Cÿ÷Ûý™¿s·ßûÎ3èûâ—ô}{ ßݵ¶ÝÇ¿Lÿh§'øçä¹øy±J‚xlä”×Y¿y''sÀ]‘A¹Ó(^ Ʊô8‹~÷"W­ã‹÷Ž£FŽŒ|,²Ly¦Ž.UŒ|‘^'g°˜D¬îQŒ…xúuu5€¡Cé_²”}ô Å/½Â“­}ÿP)hQ_EòÞ%üsãJëöƒÃF BDý%6o\ÅÎÃ…œJ?AæósÛ5iÊF¾Z»“«É&>|ç"}Ÿý”3£ùòåw¹àk¥¡FCÿ÷ÛàáYI»ŽgÙùöt*¤šôÐö!%~ÿ>ˆV#:ƒ ÍÛÒÞ÷{>Ÿò®b¦fùÇè4÷XÍÇ»—ðÚ GÜÅ|.–¶e¸ôM ˜M&L0MÍ^XÑ‚¾Á„EA0Ó 3"ˆ"8t`Ò¨½,yu.G|,h+” ú°;š?°¯Ü½Zÿ­X¹9áà(çæq-]ø]zE’³v-³®ìÄÉÞˆÁ­'¯<¡E×`Æ"4æŠf´)Ûøè£KØYA/ucìݱÃLYF"—O <ö\kªŸ#·Á‹Žƒ|I[wc\­âýÑü¿àm–hÉ<¶Ž5g¬ø;åS!täÉØ<".î6I›Á#éÒ~~þ]¶*u˜[3zœ-\Íššõ×pàT)¥§è÷âç œ5Œë+?dîv{D­û1“i¯2Sš|Šâc‰Äf1´l„_'ÏåWY=–ˆŽ<Ý%ò·ñË’å\s‰'wñ56uxöŸÎ³ê}d4ïÅëŽ6â¯èè÷üs]"Íj¹9w3‚k]»tCuõG¾[bO”czk3ºíK¨ý½;œ>e3߬ÛAb’‘æ\ ïóŸ1`V _¾ü.—|­4T©ø~+ †› ûÙxÜÿÁð‘J°]`˦Uì>RLBÖI2_þ”ÑõX´j7ž rI>Ä|Èä0CÖYV¯<dzc'ÒÁHYÊ}´ï jþtñ!@Ñïô3 OáןPNìB¨Ü—þ³û°ä›×x×Þ RüÆM¦µª–ÌK;X¸{ !žeT›ÂèùtomQy5_¬ÛKJŠ•Þ¿B¿I2àÕ6,ýô5Þu°G´¸3j ƒ¢2Ùuq3¾rµ‹c†µ½·Òжžººzê|Uò{ìí>Oãñ§§âuí[V»=²%®HÊSÙ»õG6칉]Â1 ž}“1½¢°ËØÁwë¶rùj¿y¾/Íâ¥qøæ•¹¤øLœLe-Ù‰»X¸c+!žeÔ˜Bè2f~ŠKì]³ŠÄbp‘¦Sæ3‘×ýÝï­®¡­§¾^Šnë]«ÅHƒ¾QO+ÃhÛÀ}'¹i â…!eüôÓR¦°ÇAeÂàÞƒ©SæÖ•~/òé;7é4l“[´ÆüÖF׼м‡8~Õž¡ƒípìЊ+W÷ðÑë‰hª+¡ÿ8Úµ0qf[6¡qÏ,èjë…?ÇÛ£Ï3ç­ÅbTcœcèXò0ÐC—VF~ÛóOÞLòÁÇ©š¬â(Ô44˜°ÞŠ ŒètVðêFÏÈy|1¯ 'ÌX±"(]‰oBþáŸymæE"T\+òbX« <1¼ˆå«¿`æ^ ¥ ƒÏ f?Ù€Vgj zð>^Ÿ{‚½Pv˜CG5@ƒfź_xûÒf,µˆ­†1)ÌMÁAæ¯<…ÑT…NϋϷDŽx‡Ø”Ô“w<7þI(àøO[8u2•¤³ßRQ§7ÝÉêLètR@°šÐ5˜°¢$(º-|¾£Ÿ£ºób¿ Nýpé2¾¡ÁhCÑŒNgj$Oèä(};ÓÞ> æåâ*5Rg ó1!LTœÚý.óÍ(*r HÖ™§Æ^céêEÌÞ£DŸ^AÇwÆ 9„Nw‡|,F´F\C["ù޹ï]ÆCÙÀ Ú´3Ûô³E ÜdÿŠu¨íchá†òÓØûu^ï]ÇÕ›9_™Áo[kðp1Œ˜Í &ë-£ƒÞˆÙ*€h¶½³`Y;ž›°›ÅsÞåœÔåèüq?œ€†ªN­;‰®Y,íZv£gs—Ûþaš]öX'|>>@ò«=èæÜž ÛËwÏÌeW ˆUbo»‘¼2,ŒÒ«IJVÑyBsŠ~;K©&˜N½Ü¹üã¤ÝÚÑ2Êëÿ¶ÿ{ÈþåE¦¹¸|€D‚ÁÞîNœ’U¥BݳõÿEI6¡ MhBšÐ„&4¡ Ìf3éÙÄÇEP[[GuM ¡!AX»´+È®\³ùŽ›ÇÑ åÝÑaA‚þÊœ#g"œ-H\Š~ŒÁO¶ÀE+f‹çàxº´‹"Ð?ÿÿ½ó¢êøo¶&Ùô^6=!$”ЗN½#]Ä^D°û"V°bÂHG¤Hッ RD:)@Ho[gçûc—ª"¨ñýæ÷<<â²;sæÞ3çÜ{Î=÷†ê‰JN$9)¨°`ÂÂ#ˆŒM &¾*¼ƒC‹­G§þ­ˆª4Ãs8”••áíåíüI·>Ž”Z)Ä…®GMJ­&DyªqóóEŸÚžþí«£s?,ÙLؼ“IO«EdH8±I‰T‹K&Ô]BPz-šÓ¢N0¦C+8Pª!1µ1:Py¥æ¡DëïOTôoë<÷Í¡ô!6µ )!~‡ëÑGÅê­&ï×e8ê ¦^08$ ~1‰¤¤$ä|Þ˜x’’ñuw'(8„ðÐdÒîïDu¯ëÀìváµhѤ:úP=ñ)µˆ Fç®"0¹]Û4$Æ[ ðBŸT‹Ú5côP¹ž·‹.‰Ö­kNL|WöÿTxø†A¿/þ‘ñ¤¤&è鬒M”ªô4nV‡x}8Ñq ©Û²!*Þá‘D%è|_M|Ðø†‘X»1z_4š ‚‚"ðvSP½1ÛHðÕ ð¬N˜‡7_ô©èß. @\—P…w}É ;Ò³^0*…þaÕðSŠx'¤ÒªeKê=Ph# õõÅCçNH4zµK%ØM‰Æ·6áZmp±õ:Ò¿Eô5ÁQ)//ÇËËëöŠ|ý3'$’ßðZÝîY›eÑ5«á«Vâ‘@-h^/Êoü|½ˆªIZvÔwG)Z)³k ަa·ií”NáD\J‰±¸á@´Û±©üHªÓœôô&è=\‰»–¨† ¨rµúËa¥Tt#$4†FÝÒ<ÒYÛ꣯M dÅ#ºõš¶£}²ß5A“É„B¡@«ý½ð‰*_bj7¾ªßúHâªU'&"OwOÂÂbIm™NÓ!x !(¥65â£Ð‡…AT|±î(„ß·5V«Qñð¸.¥¨ô$,<„ ÐPÂ#"ˆÐG ".)šààXꧣć}QqñÔiÚŠ¤0‚ñPh ŠGŸl S«†Ä]Ù›óº~ŽI¬N¸—ò¦QEL&Óïëć¹£ò"$"œˆ¸†t¿”nDÇE¡óB‰oï@Â=p ˆ <ª:[6&5Ö÷¯è—$‰’’¼½½oH°‰V’J‡_B]ÚµoNÍP7”Ú@j$£VyFxX2iö£Qˆ ðB_7›€¿^>¶ šµ¡Y\î>Ná玀;ÑÕ£öñ%$"Š0_·› ŠŠŠðõñ½&¹hÁ+ª6Í%CTD:ÁJþ¤ÔM¥fB ÑqÕи£°•S®§e«TbBÈN¬NBB‚ îQq¤6nOçþ(•ž„D$è¡À-(™&í[Ð0)à®¶´ÙlØl6t:ÝŸLÚ)P{M¼>èäX¼5Jê‘Þª©:´q‰DG†K íyFsZMÝ゙£´´”Ê; ¼ýC‰Ž!.>Žøè`|t¥'a‘QÄEúãîæ‹>:Úiçáõj¤”ðŒ¥¦¡ÝjÞu@²¨¨ŸJûã«ÜðL !.ŽZQÞ(pCæ·—Áá„飈‹'>>†X½nJ‚Ú}d0A¡„EèI6t K’ áEPèŒôE°ÚQ{yãìŽÃ$ု·ö†ç(**¼N§ÿÔ:<=ý ðrÇ/²:M:¤Ó()ðšó‹‹‹ñòòB¡pfCn“èõÄ&Õ"%> o…ˆO|]ZµjIƒsÁ‹h¡LDj£TªÇFGb|}Að !,®]î¯O°ÕÆÑõ“¸\w-#APyâŸJÄ'¡>éiÍ©âŽäp#8¥&5¢‰ %<<‚èêõ~|›‰OÑ)ѵã‚Ú—Øë}KRu¢#‚ðr÷rú–´tšÔGwa–ì&Ê5±NûNLBuâã¯Ú‡Ú†t­€žQT¯SƒøÜ@´R.P£A*5⣉ŠM$.>/­–àPÂÃShu{ªéœþ9>¹5ÃðTiÐz…¤Sã‘HÝ–-iÞ0w…‹]KôõþYåKL|uª'„à©Ð…Ö'ÎÛ~‘Ä×hB‡.ÕñBƒÖ+˜ _}5ê·nE³zÁ¸‰ª× Fb ‘a!„‡ëÑÇÆQ#¥)‰~ø„߈.ê„3áb·Ûц֢eÓd"Bb©Q¯ )ÕBñrwÇ?²-º´¢N”÷ þE²›0¹'––JtH1Õ’HH¬K´Î†àGJƒ¦´n‡Ÿ—žÈø|ÜÝðL¦YçVÔñ¹özJoô±Nû „ÆÛÑqÕ !®V¢Ó†¸Æ1&É›„ZuH­KTl"ú OÔ¢™Ru4ÍZÖ!6<Œ˜øÔmY‡ ¥„Ox$q)éÐ5/Ôh½ƒ òP㫯F½V­hV?w~î:|ý|ŒªI›^í¨|Ý®$_"㢉Žp=‡ D« $&.’°`ç9Κ =Õj§¨&.±‘ÁÞxùøª×OµØ@tjâkâ¡ !2.‰èÐÂ"«Ó ^8žJAQDÆ&‘äÚ?†èØ0¼Ýµ„$7¥Kz¢‚‹ &*F‰ òFCL¸Þáõ‰óTàUÝ@ó:1D„zW:ªAƒ§_Ññ‰$'ãç퉗o(q©-Ho\ä„bb‰Õû»l¢‘±ÑÄÄÆS-Rƒ  CGjÓö¤Õˆ!*:ØZñ„R#ÀÊ/E^­ ­š4$2Ð/ÿB#"ˆˆŒ#11Ž„øXbõ¾¨]»'Ys°é?z¶‹sÎ:x…ÇQ¯iMü4ÎÐuújD†úâííM@TÚ÷mE5/%‚èφ†Æ`èþ M#T€€Z]ƯöâÞº=ñZ5ºëßg§c²z‘T¯ÕbâˆK®Nrµ8âõ~hBE?ÇDø uó¯‡itaD%ÇáS៛RKŒoP(±1!x{¨”ž„GF«wú¿ÈØb#|QküˆŠ!..„p5‚6Œ¨øjÔkÚ––)øx %8Ä¿àš4¨W›”˜Hô)©Dxkñ  ºNú§Çã®ñ%26šè_Ô‚€Ê=€¨ø8ãcˆ Ö t#*©6›´ QJ,1q±ÄGá£ó!,!™ZµâöÒÜÆ÷j MªKÝšA(Ínè«'M\|,q1aø¸!…ë‰ÂË݇ðÈ(b"ýqS¹\§¡jð  ZƒÎôn† É!¡ÒEÑ´]cƒÜ*Ïn& ý陼[Ѐþµ"ˆ¨—J RÂ7<½>’¨èbB½ìvµ'z‹ˆÆ×ÿ@7D“ψ@|u7_°YTT„——f³ ¥Bé]'àš‚³b_:qqÏ>$³ùú½Q•ãAÿ39ѳÑÑ‚@APþ9+ÖßY¼¼ð}}Y;:Ïö‘‘‘‘‘‘‘‘‘‘ùDyy9?,_ǃý{pî\&§Îœ%=­9»ÀEÓP3ÊË+ÆÐŠðtߌ!3Ñ1Ñÿ²©ƒÍn#''‡ˆðˆ{xÕ›­U.bûGS9¢«E·¡í¹Ó»å]ÅŒ H›ùÊ5g$ýÕü±Õþè¹kö|Ï¿ò\ЛMüǰZ­äææþÊ~+ùþ¼ÜEKççç£R©n’8ü'¤¹JIi ‹…À€À»¾òísgW´X,äççöž*{‡ƒììlôz}x7¯åÜùsDGEÿIyþƳ…oBYYåååýe÷Èýi6ß.ÚĉB \ð$á¹'yªIž÷  øÂ…  ÑhªÈ›}g4##“¨ÈÈëþE¸§wùëtúï'33“°°°;Oøßa›YËöòñ}s¨¿f2­wª-çø¢ýx‚f~B¯PÍÿP!ÏÝøöªiÿîýsþ•VçÖm(ýëf8U`n™}ˆ³ÞeÍiOÔÅj‚Úödð ÖTÓü‘–´Srè+]‚GãºÔîö4/·øÓ=.9ìœ[ù&/ÎþÑÅãóޣupßïªjÉþFi‹vòú¨wÉhý6ß ªyÏÇžaaáä£V©Q«Õ7MK’T‘WÅòá7Œ:¢Ï«Ò(o-##########s[þ¡… øKZâFt¤öL²Öó¶[-Þ ŸØ¦<ðjcÿö>½wßúó¡¡Jj­B©øøm– IDATd¿•|ÍÛö§{H*VÀÿóÒ\û~ßL.ážKsgWŠ¿ ½îA‹ßq²°ª=ƒP%å ø‹ûÛ7¡ÝH¢Ä"àüIª{O’¿^7ª†Ö•Ͻ¹ðãïêï[õŒFWü—`ÅŸÑ– º¿ÿ>ÿSÉß»õíUÓþUƒp×m('ï÷ÀXšöAl‰ð$,.½æ¶¤ Ϥ¾¼ûEcм"ïªÇ…ŠF÷ó\˜¯ ¢uÿÔ¬ãßà9ÿ]~ŸfŒ~UÇ U´üÒÝ%rXFFFFFFFFFFæÖ=…@fVæ¿Rv‡ÃAVvÒ_º€B¡@°•w‡¡ggrMá-“•)‡­ÿßéN÷‡è'7ŒŒŒŒŒŒŒŒŒŒÌíä͉eþ_)¼¬ï2222ò¸DFFFFæßï/ddþ#'€edddddddddddî–yïõél>–{ççÞ‰Yl]8gÀ*·¤ŒŒŒÌÿ>’™‹?Ïâ¹1ë)ý_|¾ÃŸ“Ö¢)ƒ÷öVa9/,äñ'¾ç¢¬‘÷G)g÷Ìâå·6Sþ§úe?ñ=—ä–”ùßtXNÏã©‘K)ø3?/\Å3ÃçpÒdû眎ó¬›ü4í  C&±áDÉÝ]/{7Ÿ>Óƒ¡-ÏMÝNö=ÚÝ_Èÿ‘ÉÏ÷Å`00ô³-d”ÿËT%ßœËYÑ!¿62 9,##########ó·#îÁ` I«6¼´¶°Ò¿rx÷ ¾ýt·3`(ž`Á’f0`0èúÖrι&À‡¿ mëæ û.ãö7td±õËÑ´u]§ÃsSùéÀ9æ=Ö6Ãó¬Ê/¯”¼u`6må'‘{å£òlv}ù8ƒÖC^á‡ãöŠo—ÿl¤$&‚ظ|¾{è>—Ì/±¾Ô‚2æ2Øuÿ¦m:ñÚ†âŠßÚ/dr©4—îìœüÒ]ßëüê|~Í8Å´~]iåúÜðÆæ[$™K9}x5_¼³Å•P(àÇé¯ÒÇ`À`ÌGëß&Ñ a·3~Ør®¿ê™mLÞ™‘ÓÁ~ËßbòÈ9üZhrÊ–½€G  †&´LÅê›F¸ Ù?ï-ú  2iùQœá£ÓÌÒ›Öˬ)r]“]¼i0`04£mçÏ9€™ÌŸ§1Ô`À`èÎÈI›]ò_bÃøt30gÆ¡lÌáÓé450Þf÷]iòuÏ|½n¯+Ê9»q’KŽV zqGl¹lý`4=®ô©¡;“6eaã8_voOsƒƒáu¶;nÖÓ&2÷_ûÌ—éøüwHk×õ\F-"Oü™Ï;¶¹î™”¬âyƒƒ¡ }›ÇÙ»h ë©<àºgó÷ñÎÖrÀÄÉ-Ÿ2äŠ,^aÞÏÅÀE–¿ø¯|>z—JmwoX,F& êæj»+3÷¼$‘²¯]ý¼MOž˜cäôÖ™¼ùÑ.—nÖCL}ÿn;WI×oì绦x/unC—<ÎËÀ±óš<¹ˆ|©”³'3¬ï~2•q`ÎKtp}·ÝÈÙ‘q¯$ùmÙieÀÐþ%v¾=%[Þ¦Gûfí5dÖ)$$¬gæ0ôÉÅNÄ|~Ù0ƒñ“±yÁ«2 íyaún.þ©£q‹8úã ¾™¼óºÄÑ)æ½?Ÿm?g_g‡~d°¹œwH€„µ|¯  iô¸'+Úü8?Lìlòíü?L•@’ÿ² ®ý +gNãËGn³`éï?ù3ÃfnÇh4ò\êü@ñß^#VÂá&TØ`ƒ¡¯Ìþ‘œÛ¨Öc’ÀÂù½_ó˜Á€ÁГQnåò5¿:δ7æ±÷d¯öÏÓ¢y O.ºšFw”—’ýëÏx¦× Ôø  ½xqÊNòl‡˜úÌ´tÉÐëýíä–_8kÛ¤6Í:=ƒû¯ø–ν™´Ý˜ømÃä ù ÷¿Ê‚ƒ·J£íeâãW“'6ËfƸüq×~Ó8qÛv=Åœ‰ß±ó—‹.›ó+_Tøg†q;nò›ÊcC:O}°žG×ðÚ#×ûçù\(¾Î÷UòUÍÚuå­-e€…³{¾â‘Šß¶aÄGk8W©OÍLÛAï°;§Ìé§~úˆfÍš`hܘá‹/Jr–1úÊ5:>È Ë3Ò[ŒÃnÆnÆ?ö§gÚK9¿ø9 -ïÂçûìÀ…Jãív7Mäù¢#MÉoû­ÇÛ7ån×Úå£ÇcüKLãFÛ#^d×ÒiLúj/–ß±[¢ÃñÏV·:,”êêðÀ˜™ìšþm½àìbí׃Á@¿Ï÷Qæ€ËKGФIã«zߢ5Ý'oçàý¯}†ÏCýÐ,æ¿Ü÷2¬·s¹ìTÒÚâšÜŒ\¶ÎÚˆò( ŒF¾žF¤Ç_ÔE«yæ©-!gC‡~GÖ½òQŽßëi.à¥ö ­eÒʈ·qäðY/³Þ¨;’‰‹ûg2ꕵÍ¢4G.?Íûo¥q¢Aã¾çX `û‘IýÛÐoÂF.•¹:>gC›K&Ö•æïãmer0åÀ22222222222/»ÇÑôE7¦ìÞº‘ |ó¢s¬7GGMç˜ À… <Û>Î'ëŒKxj«÷]Àqø Ú>•ËWoÃh42u@äí‹{vŒYfÄh\Íh÷sìÙrˆÍ߼Ņ^cXl4²}<¼õñ6Ì6çÄóܼa´J{…:7§,–~šý1vb¥ÑÈæéã¹/éêÙ‰YçÔ©ÍÙiorቬ2Ùò–…1ïoÃ.YYÔùÒˆÑhdÓ‚ÑhÞyƒõ®ùkq¡7…5̨ôeÂj#Fãr†åïcÃŽ“”ÜŠuôÖky!c6ó3¯º;Ê/³íýÜÿèçôÕá\Þ½„CV_^ÚlÄ8½5‡~ܾ“%€„ÕbÅ^) ½ð)š5}5nj*ŸYr~/?ÌË!¯n$aÃ8l6¬v±"x`Úý!tÊܬ|, % .ñݘÕt\nÄhÜÍÚ׃7vé AÅËûÖp P`ä&#ÆÙ]8óËföœuprÆkd÷{‹eF#[ß¶óƇ۱ÛÞ…Ç—FŒÆmL~ð£?=gسn–1®þ/ñš­ÌÞQLþÆij·»Œ?KdÑ’-dÃFRúêRv¬|9ƒgÞÞõ§ÔøÚgV ÜL·Û{Qœu˜M+‹ya—ãŽiôŠÍfêœC˜K“¸ÿÅil61—ñBº/ëF=EîÈyl31Nõæ¹!s¯ 9(8³ƒ%Ó6Ñq™ãŽw1¸ïáƒ9‡“îcÜôÍN=›ód5Z6ѱdØHŠ^v>³ñK-Ï ™K6v~<ØÙFŒ;ç0´ñn^ŸuòO§9—1|í¼ïª©áx÷¶_*u½:?ŸÙ'†ò#F.üºK—øz«£q o ÛXs¦ëÝF2ífJÃû2yÙ–Š60gò@”‚Ó3&ý­@fº>ß¹h:”oƈµ \sAgÀÄ|³~¾k~å³> Iž¸„ÝF#FãÔÈÊBÑìeÞûoö‚TœÃžíëI|é Â÷~ÏÊÍÑ|`4b4®à¥îuq»tùd%Õº¿Ä´Í_óPz:4n}›þsý;ÿJ;~Kݯà‘ÙçQ)(×µ‚ Hv̺êtñë7‘°g3Ë×ãNj‚Å™¬yçAñ-G}t\9IÕ~| c⣵)pÓT³Š×¡C«ü`vþ%ÉÎöI¯:݈Ѹ”ÚÿÈËÓN€xŽåŸ}ËrËÖ¬ÿd-£ªXHL´a6™(7Y°ŠWûìV &³ÉùÇbãO«bé<øa†õIF!ŠØlV,å&Ö+J—NrÂIp@9&‹ ‹ëÌû=~ ‡Ã޵âºÑŽÝî@BB´Y0›M”›ÌØàÀj±ÛM˜,œ„JØE+f³ sUhã;W,&=­{M`µkœ0~`#‚o§â×I´“Þâ‡ãç8°u;]–1®x½´…Y›I]ë/³Ùï!¾4ž¤D­tÚƒÑâ?eLܱ£ÑȔޡ—·Z”ê¨és‰;÷Ók…ãÒx—oáû=Åsß¾c™¹ÅˆÑø=]¶Îá‡_ò°¸üÀ™í[D@N.M¦:å\ñÙlïNdçÅBp ßbççÓ{„Q|ÈÈÙë2%_£sÚX\nq½O";Þy™ÀiN[:¦ó>^üê˜óMmX­WuÓ~l/ ÈÇ›S Q;mÎXÿ»”­F#FãJž;õ-ó/رZl®„‹„ÝêOÍ:ϱØhÄhÜÄç£Û‘˜Ò‘7¦UöÏ 4®ŽZuí™Ì¶mo“þ¦ÓWí\¿‚WÓt€»%€º_f©ÑˆÑ¸‘OžéH´«Ïÿßž÷#TŠ»J‹âà‡4ÚÄ;wcܳ‡Ïz…€hA:q–jÓ÷_óácÔ:4›y«²ã¤Ò9[÷ù»×°xOæ ï@ÞÊgiÕì–âJ&ˆ.­œÀÀ),4ÙöÃtžjg¶îàdiM>11®ƒÛù½¬Þ“Qq½ƒ_õaZi’”î§wWoßêôlñÌ&=þ ãçï"ÇC[ñÛ²mïp_»'YWŠ((ÈfÞkè¹ÚˆÑ¸“£½™øÖ Î_8Ξ0Öhĸí3ZúžfÖ¢#I² F2í¬Ž µ_]‹ÿóecW9}ô5O™wÝâH¢ÍL¹Ù„ÉlÆj‘p`·Ù°U¶ß¢$!‰6ÌWì¸ÙJEÞW;v,ff‹QJÓóܰhoôجL*]C­7õ’ÃéSLf3›¢hÇjuÚD«è@´[]—*Þk…œÎkI’«ÕŽÝæ´óWm¤s, I’óÿÏ/â‘göÓêµ¹ì1ùþ©èÔãvïÞãÒým¼ÝÞAJrRŸ˜_ñ>lšù5Väë‹ýÊüBp=³ÅŠíúdwho¦.{žÔº/°dÝj8œ2Ú®ÈhuÉh¹Ì…]ã É!:ÛÐl¢Ütå±ZEDû•g¶cµÚ°ZL˜-ì‡óïW®)‰X­f×5ÌØ®ø=»ˆ$‰XËK0ÜÇ—_õ'Âù.ÿgÆl±;)8\÷°:åuö Ù±Z\ío²Ü¸èV²cµXo’ÜUšÚ— ëñæ°æø”[]óµ+þÏŠ]’À§#~:$[Å3›0YÌØq'´Þ Þ×[É÷»c±¢íL3v‡›Å„Éj‡‹Gí‡}É£Óîw-]ÄÇŸ¬";O@HíIÊá,9–ƒ©b|©v2qà.ØäÔ••ó_$ø·Ór<åÀ22222222222+[מ`Ĭlj),  ¨³kæ¨ð‰¦ËgóÕÝ (19'·út:5kD-O½ñ €-«óÐÇQ«¼˜‚‚BʯÊ,0•FÍ;‘àŽod á¿°oS=’ÂýÑC[ ™—Èp¢ïŸŠqñH]SA Y…"O¼Þ¢|ŠËL•&æ§Ù·Ç â$¿ìjDJ”7JÀ½q{Ëæ¼ÃÐøyF×qNžRaµ4®DkÙçÏpêH81©4oÖŠFþ:üâ|ðò´`I}„'û ,+¡Ôt„³©TÓ_7¹ó¢å³óøîƒ~[ÎWà(¬G´X‡z¢S™l[y¥ý#Lù1·"ØÞg ÆåÏ‘l+ ÖœãìÞ¼‚ÒŽs“îA©]‰†³|?æ9^ýp=Î"D ÷&£˜»t­Â}PI ÄÃO‡-·¢‚< ¼ô¼Ü®[m^HÆ)KŽxW“º‚˜¶°yS#R¢|QnÛÑ(#‡Lv°meÒ\mÙ  5NæHÑyÎíïLý0À7œäàx|óv²ý@(¾ÊD•@­¦4,²SâØÆ¦•h\K‰lÖ‘z'Ïü‰ú7>³pݶ @¡Rãæ¡¢ì¢ k‰wŸ0’ÜԮЙ²â´L”Ä%7"úìyþÜ~ª&Ï1²¶³oPš¢ïšõ§{¸‹õ$g24x(p«Þ™>M«N9fûQN¯Fl¨å]gWÑDáåòŠ )((  Ä‚ƒ³lÛèÁ«+Fäú¦Ê×—FCŸ¤†¹ü–UíÀíš~¾Wi!%HüÜò¹l²uý\cÀAƒþÏ‘ñÍWì?¶‰]Ç1°¾7fÑ/'ɆÕD›6-hÐ äÞf› Ñ¡B«=ÀüoŠè?¸)~WBñ)Œ\þ_4ë¶qîw’àÑîªÌòÄßÛ ¯;ìT…·žŽ/ÏeÚ¸^ñH¨’zòöÌ/œV 7W$¼Û½ÍÚUc©ïæ´¦’c»V÷£U2 ©‰©Õ”ijg9{±Ñˇ‡žl…²0Ÿ’r bUqŠ‚yì›û*=ÓÒhv?/¶Õ¹õmÑ|9j]Zµ¥}zi}?b_^ù?› ´ŸbÙôoùvÆ<¦MûŽ÷_ÆãƒÛÐ:-áß¡˜SL>•#ÒZÞèÒ‘v£pêðT†´jC›¶]é=à ÜKy$ÙÛ¿åÙ_ñyçÌdÊ»[(ä$ ÞN÷´Ö´NëËø§±ä¯ãÅgf3sb:´™Àn»¶|ûT:ém:ÒµÇó,Ïù®sY—­e””™ Ïn÷õkÆ$ÁDÔ²Q–{޳;P7ÐS#( ÝÅÌ€¦Ö@&÷ ÷Õ‹Bcw ö¬þ•¡_=JrA!……˜Ä«~ª¬p?{w‡á­Ê$óH[Rƒ€àhjú„á–‰%¢+}šU'ÆÀ‡àOt‚+鳃õ«’ˆ Eãgyº–Ë"« MV‚oÕšõ¡k¨‹õg2Üѹ…â§¼ÖO{µyƒU+_§‡‰]ìXÝ´€¤"¦N3OŸ§œ"~š5ŽO~Å/v—ÍIîÍ„YSx°EZ›ËæÔÎÓ7IJbŠKq6³ÕÂÀ|l:CZ>Íׯ.‚ b5‘+š(--¿±’±x ß.M¥CZ |<×xíOóÌÌaè ((*ÆRñ[«©ˆ»‰ÒRSÅ‚©üíñãAFêI|€¥ÒÁÎÕ¿2lêP’*÷‹ÒïfOóD² sYÙ…X,áx*$©Aq޳G:Ó¤ŽÂÙïõœã¦Ê)'GI6?DëVmhÓª+ÃÞ\ÈɲL–ŒÈ's÷º¶uþ•)÷Àº³eänOŸéС=íÓcÆ¥l¥Ù,~½9-[µ¦ÇÀ'Xt´½Ë¾fÂg?ÞXœ¿•÷@§Ö­hÑ{?™Tjr–?O‡騡ݺŽfq òÛÊ÷¸?-Öi]:f' ϳbƧ<ÿèwNã‰)K™;q4ý[¥1bî ŠDpœùŽáí;Ó¾}{:´™À‡²#³yì¡ÉLy#Öiiôú,KÎBåÕ¢jà×­'IÑ™–anäSfsÜ0v.;<¹ÛòX{¯J>%“Ÿ¶æ’¹;íbݱؤ+C:°îæí^C™¼áB16¶5‹c‡¿æÉxæëñ:ãžuÊ;pì4öGçñüc=hÓ¶-éiýyog.’xe¥@ʘǖÃX’w+ÿlÃ.J T¢¶dÚ‹Ò¥U­Ó†óÍ¡ËP´’áÃæpúÌw<þØ f¿ÛvmÛÓ©C>2ÚÈ;0Q£ç±oß|F{‹‰/8å{àåÏÙ“ ”ýΘ$k><ô&F´¥c§ÎL\s€/J£Ó€a|ÿ›;nj×bç›OÿwÆR›<Žÿz‚"kiIJ »È-r@ÅhSƒ›6/U)¥f>>yô±ZòÙÎw2¶–›@FFFFFFFFFFæïc/»WŸã›'zp_Ÿ> èß›O·W ˆ,V;’p“¤AÆvYS©›ÅÉÏ3{ôC è߇Þ=:0nEÑm¶&¾ŽË?±¯0ˆ`}¡:v‡kÕ»g±Ç2Èv\]–o1Û0•îeÝ¢mŒÔž.Ý:óðsÙp%tb?Ƥ@‚bôb¿xõŽ öhÙRåij9öp$¨ Mt@á%Îfr¹MB+Ë™½‡=å±ÄF…á@)ÛßÌ}ד:÷!jŠ7i#‡³2@œÓ=…Ή¹*ˆ°K%”•âPx«Çß]Iå¦v¸‚jà(Íbû¼q¬Ô ehb.'² (+-¤ØÞ!¡„x:+£¯LÐ+ªHÒý½žœz¢7=ûôaÀˆ4{®Þ× Î@©@@hnååXÕŽ«Ûy…s,ƒl‡%vWÒF"0˜°£çÉV)Q)\Ÿ+¼ðµ)PeæQ¬v†{%m‘çrÉ+·ãP9p\ REsì™wi¿î™•À¾tû“­@Ïò^-iÑé)f­4é (ñÕç³}úk 騖Þ\Ä©r%þá9y0“óY¸˜#à“œÁ…K×Nã••ú GO’Ÿ_ˆYQŽÝ«€âJ/ÁÁ¹ó±ôªOÝ=a!ÙߟAFV6Ù”xUÏàÂJµ+Ù/¨qóðÆ÷DæÝŸ·è(âÂ/û9܃»S²žÏ+=^`‹{<­¨‡VöOMÿÖ³ñã>êx¡¼Û{«´è.¯cÂð!ôë݇¾½{Òó…%\ÈØÉ–SIDy^÷}цãÔôV®Ö¹'$Òþá f?ý ÷½³’³™\(± Téû ÎʦÕûý CAHR :å§<ÖïE¦lŸ8Æñƒ¬µ„Wì@—.öú4~Ì® >Q@©,ãÔ¡X¸ÄÊ+ÛŒ׎&ؼ‡ƽ¬þàkr’ž`¾q'Ûw½O»„´Ž:ì©@¥T¡Òz ½°ŽK!÷3~þ.Œ+_¢äçíÈŽä‘9#©SçlßÉŽÏ£™þèw´ùn»v¬á~Çûþþ{Ø„×jK—–[Ùz(Ìæ´`AÑ)£“ÖÚŸ¯vîd÷Ò')Y³‘ƒ™å¨ÎNçB“•lÛñ MÔJ8q‘ì`×έ|6ØÂ'o.£è_5¶RáXƯ['3¬]:ý^ü‚'Mð·Î1Éá .4 ±ãò oü, ”ÙyWÛÂ쬆“PÇØ¿5“ÙOßOß¾}èÛ³#ÖºV3¿üÈ¡ÞiÔ·Ú¯øy…7fàRÅ•ÝÆ™MìSWïÚýeë6ÞŸNýkìB!Y¿ätHº9}KæÞ¹¼Øí%vù%‘Ö·Žk¬t}°X+%+*Ÿ‚ŽgOaá~¸ ×þÖvù›Ålÿ½ºm£Ñ‡©!:@ëGDt^½–Ìc IDATJçû¡õÉ=;‹§ÓÓéýŸ7Y¼¿øš+8ýsêû_Wñº‡íkOóåÐ.ôèÝ‹ bªÑÙ¿î>6.ŸÆˆ6éô~f«µSnü„Iû¼hV+%Ÿ¢²RòŠv`ܘÁ¬ýéÓ·}ïëĤu¦ŠŠÔ²œýLyô!&.sÐöÍ^$ˆ%”–Ÿã·³™ü (s”U,μ•­µÛw³yÕ!&é@·žÝ<ì¾;¤@ohNíðK|Þ­ͺþ—#ºHê7§lÍËŒý­>ƒPœŸÙ\È¥Ë%®CWÇÛ·Åj¹®?*Åœ•ü!tŸÐ…cw§[ïþ<üÊ>šl‡>8™¦}Xp_KZtÉâ*štOBÜóïµ4ª™Œ·5¢Ò.]¶£ ÉâøþL2³²ÉÊVàU=“‹•ö§Vxéiÿü\6­_Çæïß QD‹öúе—¥ôç Ã{ØÓ6•$-Ai¯±xáR–¯Xͪq±|9c "ž]Ç£{071y`2ˬ¢ÔC‡V£DŠs/™y‘"ñSŸý{Çq¬Úµƒí[ÇÑÄÏÁn'´çG¬[¶ŒeKñí3~Lž±ƒ²óÛ™ó©ÿ5îdûªé]­„UsvRZPH`³QÌûáw.çl£1,]üwlç¼yã~EÍɛپm;‹_ºÀ‹¯n•ÅåÝ„þLjѸŠÿvŒ`Õ²+»q¨€Kœ8|†…¯¾ÈÃzÒ³s'^š}‚‚Ê{u‹el˜9›±I¨ôqÁoÇ8˜}‚j´Æ Ûµ‹³w‚¢"Ô©n›Äì&ÈÛGÄHguÿóm‚X²ð I÷ ¦ÿ“#õÖRŒ‹ŸÆ2ÖæcX±Ëˆñc¾øt3Ef%Ú3ßRÐi;[·Œ¦¾ID›/ÐùK#³WcÕ¼ôû~/·ôcõÊ}8"Ûñâ‹Ø°~»§öçäñCË€Ï>AízÏ0o÷n¾è…»›ìÛ™8| îf÷ÎåŒéz˜×?ÚV̤\h?шq××´ð-aë®Pc~õk×nbç'­XµþG Ë,óRT¾èÃ#ð¾í€Y‰›[&?¼ÿ%çÃ2ÇhÄøM +æoæì% Z75 ¥ÚÓßRÐi;vlgóÄî,›þ=¹n¸i5(Ë31[Êiñ¶ãîét Ùs` ßýæöcA…ÛùB}°“Ío´eÅû h<ÃÈ´‡“Y¶`%EÍuýèCØå2LEe˜&Škþ‡O#¦óåæKØD çr“F´î¿•׺à‘i»)ÈÏ%·\¼G;òüÿ@%7ŒŒŒŒŒŒŒŒŒŒÌ߇„DW&¯{–ÚÙËyzàx~Ú4æÚ@ßuØÊö3{ünâû £†O9ÛKš1vù(šé°mæ™æï°£ûÒ~g6è°üÊ’O¶¢©ÞC|0¬{®°böÐÞdË5§Ü¢èElÜ3Œ™w?¡”òã7ÓY7w9uÇtÃtøÕüš¡÷÷çWQª”Tµ`ñТ©¸G9?¯dÖçô_Ø7 0÷%Ùçh‘~µ¢O4â»÷vÚ¦?uý]“eOÚŒý6cÏðIó‡9;}%·ok ×ÝmØÔJ4‚“²ÏMopÛ¶²Ùó9÷[§7>IoíØL¥»ý†_ò <3úe:_ FÜ00³üÕñOÛÈæ„|–yŒiS7Óó…Ö×Nü%¸"ŸÝ)ŸJà*цÅ]‹F€JÕ‡v6-ZIÂQé¢$­ e™½’l6,njTJÁÙW>–¬XÜÜnÑçw¯Û#Žgë¾\Xº“nwóYñzÞš´Uk~#µ[5=2–FŒŠXòØVo3ðŸióÁïóôå2J¸T؃¯®)öT”ØŽž¾À+Cû0EÅy!´zx$¡Wføù+X¼³i¯Ô@G ÎÈ„¯0¼Ð ŽRrK{òY¤ÈYQ¨h!‡(bw׺’ú–NW²`F}ç5v]KAxƒA¼¿ú~úr3ÆçÐë…Þ$ª44|â –>q™™=Ÿaú “Ú$íÝDtì&JC{ñþG÷SÛ¯’¦]^Œ{‚¿+ñ\‰JÕ¬·„¿Á Bt/ø¾pf½G &3öy¶Ø R v¯çðû‹ÎáÎï{„×çÑŒ<*žcÙG¯ÑéóPF½2І{YìÔI£AcÎÃd‘®«®°aÒjÑJW¿{¥áThÍìž7“mkíä™ë1|ÂËô®ü·ûG…Í“pØíØÜÕ(¬¤6Ëø»àG.«Þþ–=kwðps‚þI—(€`1c*÷À­ùšim$)6[w°+¨ 'PêܸÊT½ˆ,ai•œì\¼äáO’{1 ˜¬ˆ+åv .œ%»Á³¼ à ,¡±³{¶É÷H—ú¤6,Û{ˆMž/Z¦s`à Ö.XÊ굓ožØœ2¼0'=I?ƒ3´,H¨•NSÏCj6£úŒ ²àº„bUYyR­ÝS|Öî)ÀÌöñØ·i q­Ñß6QpeL’Ï€EãýËR~VÄîò§7‹XM­y{˳4([ÏÓéãØÕyM­e;°¼Iù¥ãHCÄ&ê«GMX‹v3uì>>û,ñ~îÀö-›èÛííJ÷*æäž•,™k¢ïìF¾Eßx­ÈÞOßaƤúŒêI¼úwìƒãª}ìvlnjÜI¹o8¯ßwÅ— ·I.øÐqÜ :r‚› æôw‹y8®7ï~ßÛõ[-¡)ý˜¸µ q|á–-^ÂѺƒIQVöϵ ÐÝhÔôbʺQ$–ã‹xñÙw9¸âyRë<È{[ü2ë36-ÿžÕµûñá¦øH4S\dáð‡íH-nÉxãK4(]ψ¶ãØÕémš¡@l`ÔwÈ=8Ÿ¯}D‡©/ÒÞü.ãéG‘‡ÜËI<Ò8¯ß+“4øºaƺ'ˆE"sóL¦|6Í#9—çÎ ÆÝDíúŒgçoå§ßѸ¡Üý5/oøA4SXdáÕ‰A̘ܽpí©£”e¯¿KäœÍl‰½È‚W†3gúZôrcë–£ غ›)YKóñ&6î0ÐѢ¾ o^Æ'¢…â¢2ŒãždÞý˜ùÔ !Ä@yñ~½û5‹wÁ®µ«mKñƒV°YE+¦2‘Š•ÀÙÉi8š—]'EÄÔ'jÁn~j’LRÃX €]K°O(”^ÜÌWo~Ë–S¹8”&,ÞÈ‘|+v=»1é‡n··S мrüZR¯F ‚’ÓèÀŽ•„cÜÀaG¬ô̦ÀR•NŸˆä@ÔEÝ0fž€]C 0>9ÙœõO£~ÓÛI$„Ú­ièé ,8††uý©¡5‘åwU·oð#Z¥% šK‰½,ªg—r4ůâÚ †¯gËp0o{‡Ö÷O$±óëÌY™?†\,##########ó7âƒo&§ ]µ>ѤDå‘ç: ¥ ¥R‰Bq%àh£$óß\‹û€¡ôk­Go¿KœËÌwN ÕqÔŠÏ'?÷v÷1aÙG«(JîÌ€êàïbL6Ñ91Ê<¡”(¢*’Bjµ AP¡BF­E¡Îà<îø…ù +Ä•ìœtî!xáŽÎ«r‹ä¼æù#¬CŒØó9ñóJæ¾›E×E/ÓH°RZ\LaY*QÁÎJYá¼³©íôëRoÀ^x±Ò*úXj·¼D~þÍfxJÔ* ¥%x¸;T¥Î­¶ŠÏs"ÈO?t”’ñë).•]»ÝžB¥@”¨­o-ùl%Ë—-gåÊLzéIè÷Ïtˆ¡ ã‹°V=¨” %*­béñž´Šð§ûïÐéÀbÖ–£øgOåá@‹ÖMBP•8·¹+Í⤟ 7¿pB¼ )³:·˜$ã0‡jD-øâås‘"›s*k>wœµªµ.Ÿ2[ÄÊõ1DjMX1;Ÿ/ÿ$Ç"ý r Âß'—b³Âyí‡9”OÜŸUç+ϬRÝ\·#39}t?û.u¦¾'ÞŽ!ÝÓñ=²‹#&+¥ee˜]—R{ãåc¥D¨ÍèéóY¶rËÞïO­fÉDs.§]¤-¡ ‡2móV­øš—oFthW6ÔûiþZlíkR'* Ñ—f/dùŠ,›Ô‡«%êðð¹äªÂ²Q”—IvR4ú?ÛÖ\ŽíYÉ¢/ è1ïYêóLÞÂ|×Y^JBbÝñ .¡ø‚‰r‹ÕØ "¥I!¥&;Ž».j›Å|íÇAÉÔ¿¼žy[r¯ÑwsÎEÊ””^ÝjÑj¦L´!)”W+’+úYsO*±€3\lÆbÑ’è¶û@Ŷ¸¢Õì|Ž+6°8—‹…"(£éþì'¼Û2Ë©L ï©m1YÍ”&PO<Êã *ËÎÅõ;8Õ¸&qjŠ"×ûæjr‹¹“D÷D:>û «V­âý‰\Úû 'ÿÌÁÎJ*•A¡rUǹ®¡R¡P(Q©U×V‹«”‚ µB@¡ðÆ«B¯”^:Ãù”Dâ6)ËUíïMˆÞ e9¦*pØ«¤P PÙs3ÉM”(ETZ%¶‚‹ä”Ù\¾N…¢J•¼v»«ºSr r“µ›Ú¼d9K@±”åSä‡ï½EíGdµ&ÿÇÞyFUt ø¹[Ò{ï„„–„*]z'$4AAl(VT^P{R¥# ôPC(Ò!¤'”$„„ô²©›í{¿ ½H ¾ø½ûü"—»sÏÌœ™9sÎ"J6ñg~%•’øšiP›1êÝÅlßÅömÛÙ¾c½]0Ó©Ð^{F²x9D)E[]J•³Ã¿&ø è•ÔTWP]ç½Gjoƒ­«²;y}o°IÚa™9f–euãŒNA>J4>n8_)çËmP^7æ9•]q€u¡e”•ƒ^“CvqšxƒD&Ç̲¼nД‘+U£÷vÃ#UÅGY1#Ïéï2ªµs}`÷g/u%ȧþ_m ©G·³qI‘«Þ 5Ô-ö©¼<¶Èð0ÃÊ©šÚÚ[õ'Ò:»F* `‹­CqýŽfeþ.¶ À¨-ÍãbV1µ×UdÒºüÊäH¢ò+ñ‹ Zõ(¤¬Д™–M…A@0jÑT— 0Ôõ¢™5¶^È%7ÏrCSs©2ÖõM¶ö—Ȩï`EG_‚½Ë)W‚QYJ¹¡®¯ÆÂ {kÂ"žçó•;ؾ-ЍÓ³Ûk,™7†^¥dåÖ†?¡e”*@¯(¼r̓…­'¾ÍòÉ+“2ò?¬ÙÍöuŸòô¨4¶³Æâ–íLŠ H2‰ –¶Ù\¨ÛN¹«þ)Ä%+(Ñt 1`×å%¦Z’›”ƒ×S³Y°6ªNÖmïÑ®õk¬ùa4>‚p½-­·ýõ¨*Џx¡ôúcëçRÙå9‚xU®ËzY±ƒ-çGÔÛŸ<1ó#úœ^Κóç8«èK+ cRŸ¶§ã0öy/W].ÃOèóøküòÍh|gæš l‹ŠbËW#hÑ©)¾Wú‹²Žþɯ;=™{pÛ·¯æý'B1Sª-Ú1ʤØ\Ò?Gw¬”;y{êqz-ÞDÔö(¢~‚4\6ïE£ñêý½z5RçN¼üÅ:ìßËâ™OÒÞ\Ayµ¾N?••Ô AV²•×_KcÜÎ(¶GE±í›á8ê ­ ìö k·F±=j;;vüÈ´É]p®®»ï·î®ôºS0ëî)¶²Â²"ƒ¼Ê:eÕUSáì„£hĨ×^Ù­Í÷ñ"ÖØØURTRR¯c~4oRCUeý˜ V±ýç­4ž3šÆ×ü²ââybÓ2ÜëæEz@5yé(¬ÔÜt<¸ — EŽA4"ê5×Éh¼QF©ª|JÊëç•¥(œí±—HÀ¨®?–ø²ITR€hÀPÿo¹.ƒ‹¶rÑ}ëbv±}ûg„·tGf¨»OÞX£Å •^¸Y˜#/Kçò#êÚr”ÎŽ8õ ººp¨(""ÃBÇíÄ,âc¶îÞAÔ†étp·Ej¼ÞÖÎL¹@¹ávÁ_½^‹JfŽ™¶„вú]ö5 Êì­°•]ÝI-\›g£ë–ëî‡Ö×—Q´Zª*îÂ&1èÐ#Ô镱¾¯©A*»rò.# öv8{8ci4"ueíùϸ"¶oÍ¡ÆXŸç‚:»Þ¢û ¯x•æÅ‘arªÜýtÕT&L˜0a„ &L˜øçhÊÀ©•|ûó\:» Ê>ŇþDXz5¥é§8‘tެ’ZNdyÑÚ6ߦMœ[Ƙpâày,ü»ÓíY#ó·nõ} –å'I¶ìÇ+wÚÆU›ÁÖ/¿æ¼ žê!’|0™OGZ4²9ö01Ê" ÇŽahÿn²ºÙlmnGŽœ¡¸ÈœÃñ>4óhE›>kÙ¶hBs5‰ñeH‚†à¥I`§Ú/lq¦û=KÿELyc´‡#v~7©„Ú¸_xñ¥Ã úêSô‡ð—Ìo?Oª ²(öîMK P“Âê™_s@Ò'*‰;ƒ¼QÒÖñkU ­=±1Ob_æôir}EƒŽŠ §8wŽœ •Îô£Q˜NU‡‰Þìƒ_áAòìšãæéêh¾zfþó0µ‹;æ¨ó“8vä ¥%2Žœò"´Yü.G ÕÔÔ(QªµÀ¢¾ù’ÓnCy}F8%`¨È&ít ù…e‰FèÙŠA¿ñóÂV 3 Î‰%Ó}‘Ö*.l]ÍgKl˜µõy‚Úx‘V¼—è(cш>έé8v#?;DLU ú#Ç1tœ‚+-øR>+Â"DÃ…}g±éþÞ®zZ>¾Šè•§©°ˆ#¾PI‹néxžô˜Dï0Çéü!Êý{ãhÂà*ùeÃìÂl)Û{³žÓo:šún¸.ÏûwC× ˜ZÉw×ê¶K8“ÚØ£[²E«üà›KòñDÿA45œdó– *¬[ÐÚê(û }àክ:—ñÙh%ÿý(-Ÿ‹#Fj36ðîs¥Ì<1“ÖF-•yg‰Ë*B‘KZ±-}"´Ö±ù”¦µÅ£~w‘PÍѤK(æØš„Ÿ€‹Ôšã¿`Ë∠ˆ?‘‡S¿§îs•¸HeÜ"¦¾KÄÜQ>À!s¡ýãu” {lhj ÊÌäX»ÒÞϹ.œ|]=GcìÔf.Ò kSY²0®]šacmP| ňn_.MÑ€No¨wšV“¿M‡÷ ÂXyX™%Í[ø5@€JGEîÒ3K0Å’ƒ¡²„¿Öƒ?íd‹C)vVȤ)ìZNÛwžÇÕ=.ò%ü¹õœõh*KH:_‰G§.ØÅ¡¬*GCÝ^îMÚÌU,ZPÁ¸ñá„:[Þ•J4¨Q¤Ÿäxü9² •Kw!Ä¿1Ú.$Å“‘ö˜.Žiée‹Pzžø“©—¨9rà­ÃzÒor6kCTFêá,ìú'°q¾-vµt/ÿ2ŸpíÝ—ÿö¶ƒ-ö¸xÙâV´e4¦£þIrKzŒAïÍ«X4†MbKü´I*-0þ׃À"ƒƒDÞ`¨»o#zQA4 ÓêëþíÚ’–¿òëÏTÉÙCÙ8M‡gƒÊ$`ïb‡‹c>›v—1øå€ŠPÏ*~ß÷+Œ=´W£±  ³¯ ­ÎÈÕÛD´Åg8|äŽ5YñùxN~oD”ŠB /‰x·rG•“G¥ÎŸ@[JSs1¸ºâîfûh8Vk²ˆÛw€šôvO$æ¼” ÐF8ÞAWj“®·IÉìpr ¤õãÙ³ò4 óXK4„t­;ŠÀXSHfb"ss8}h7vƒ†ÑûE-ß­Û‚[ÇFHKNjÝŸ¾Ž*#Õ«/KÀàHp»ìYG±pŒÔj‘NÍü ú _MùÒ.£Y“Æ¡*,:ÓVµ—£Î}˜ë&F*N-âÕ7㉜÷ªÃû9dá„§µœ‚ÓÛ8íØ“.®¹$œ°iÚ ¯:E}Y:‰'S).Vqtß~Ú´îEÿç³ù}á1dÁå¤Ê¡×X$”’°q>‹ºñÚò7h+£²˜¬äD2³3íÇÙu8¾ÇVñ“2„N6˜Ë’8˜õš€:ã¦O:Å3ÑK‰4W}x%+ »p±ùˆÍ†á-€.óæñ™êÞŸt‚§÷«–ô±Œù 7áÜÑžŠŒ8òû1ƺóÛW³¶¤áþŽW`Ù®Çõ§ÔÔ ª­D¡hJÿ—4Ì]³ ׎¾HŠO’fÛŸ~NZ²WýÈ ëp¹W’ŸžJ±6‚®: Ó“9W\JöÑh*{äïvÓ§-N#öx%%Ž9LH³Îô÷#+æGaÓVFvâ¾ ÍeÏ‚Í,ÛhE'ûTögÛÜÑïz;«R‰J­¤Z£ÇÝ\v½½çM› `*÷¯ä«•NÌÜ8‰@T•s)5ž3ç°äøú&ÄǹâI±)Uq4&]§6 ²E [32DCefÙ>#xºµŒ}«W³øw_úzeq:¾ ³ÐN×÷CÊTªªku /ähÂ%ôbÇ?IØ„‰Wó ȱt Ä/ ›ôØ“ä¥p éfí»#M»™sxÑqŠCÚãìn ‚7A]üÐ%íå …%Ú”Ãdé{‚(¢ÓÉ®ìîÄh@¯Ó#õèoº¤Þö¥ì9°ceöYÇȨiÞ² M;åQ}ü/þÒ(K8A®0{OÊðÝJ_úÔ¢œðÖ EÄ`4Öõ×zCÝu+¢F‹Öµ=}—³fY µmäìMÀrê»´RA­·¼"§Ñ¨¯?ŠûêÎ~#teË÷²[¬À—Dbõñ”—9RôÄ|͆K/ñM‡«»µÙÄÇì"Kò,ýoÙ­ƒ&ž_ø û·?ã•AØ^þ¤¦ø#g()‘rôd-¬Eô:ã Fz}]> z=¤³ç%þܱym(²ã¡zr2m,ÎcÐj®µE=Z] f4ÐÕ_¹aÐëщN¸6oBEN&ÇNÊ0¿¸›ø|+Ú#‚…7~ÕÛÙ»/ƒ§­N nat7_ʯ¿t$¿””ãy¸M|Ž Ú£½lçQlÕ Þø¶ D£8ÍþãEÈÓ÷’ZÑÖõòHó·2ý¹=Œ‰Z˘+€UÅ%ÎÅ_DY}‘´¼jœ=ÎcÒøãÈ.6Y¨pL9€b@$­œKY«UbA§½&/Ðé¨{®¯[Œ ×¯îÖ¨© #’£ì¹“M"Ñjë—fˆ†+ß0^®mùgNsBµ¨ 5ê 6a i¢b‡ºäʸlÖáEBçg‹8±âß|‘ËøÑ­ÐëTT^:‹Ñ @YœGQ‰Ÿ–.Tgæ¡”ÛãígAQb‚¯'nNV~½Ìÿþß”Áë"¨­m°T^½ªÞ`nŽEÏ>Tû41 n„ &L˜0aâNÇÙó™„…4«ó¹TVQ^Qc? F#Vgâ‘ÆÇ‚îê%M‚­f‘ÝQ¢G@ÀÁÁᎇáÝ+ŽMÃq‰_ÌŠg¸XÀ¤oFUe$ïßÈÎT%VäQXc…‡‹zc!E9¤'Æ“˜G®<€‘ÌÚÀº˜“Äeº0á‡ç½Æ k4Q*•ØÙÖ¹kŒÕ òKs)¨,#;!–ø„8.\é>|ö§¢Ù~ †ÄÊîÌ|¯nÒºÀŠØU,ØSЧ›’ŒÔ 8w§wëf(ö,fÍáÚöeÜ“­‘'Dq´ZN³Ö]ð±k¿Np8Ї’RÓ“÷ßë‡3Pq>žLƒ• Ç8œÊùìBôv~˜çïFÙî:x€¡¼˜¼ªbŠJ ÈLŒ#!!ŽK²&ôjëÊ©½»9yê4‰qEtúèyÞP'ºjÎ\dž¸jÌŠÈ)Ô =ŒVãœÍ IDAT.þ6Xù<Çv²ã¯}$WõàýýpFÀ¹yÊV.`kj5vÙõl(–2kœ]]I[¶e„uÁèÎ.È›a‘“ƨ-å…—†ÐÔÁ »€nh¶­`kl,YúA|üF×+;g µµµØÚÚÞQ¯ÏsÆÀþôî9ìzÝþz ÍÍ|µæøêìO)Á&´cǵÅÖÌœÊÔÓÙÍáäbBŸÌVn˜eÑŠmœø”F³qß)’’IÊrfü¬1WŽ.5Jʵ.´jå‰\°ÄF¦¥ìÔ&6M!!¹’€îØ­ñ­whÝ*\'ŠTWWcgwãR9§ö²eÕ&b²¤ô9ŠaNÈí›Ó? „m›c8y:‘¤„"º|º˜I! ¸ÖËŠƒ?­à¯´4Rsªpíð,¯ôñ¡¢¢3{/‚; ‘ºÒ®•‡b)·"Ø×³[Zee%öW÷‚ŠêrRüIT²!Ÿ¼ 9~¡!¸VƳ1ê(EZ Ù)(]Úèˆxf ?mËÆÉEMfB"²!ôêÞŽ‚_ç³õ\R‘L„¹…+¾î.\Šþõ‡«ðÉÈM±¹å1öw?¾êt:¬­­ï7f‰^SC•΋î]:à§çÈï«8”mE§>ÃñÁ5Ô¢ŒX‰%#î'uA ØKùƒÇ kj°²²B*½G× ¨CYcÄÆÑGÜ<½ðq³FU”–›Ó¤ecœÌÔ”TØÚÖk‰+!‚I]µ”g²Ñ;dƸ|ô~UUöö×DüÌäè´vHô^ ìé9r\Z„b]q†ý»£9’L\®¡­<1êhæ‡\Š`PRtæ'N'’r> uð$>æhP\HáÔ>Þ¼(9ËùKàÛŠ³›NPl切·=ò¿Ñé sTy™œÚ¾…ƒÉùxưÞͱ“\_^¶¶¶H$uo´IÎfåbÑj}𹑏l;/šÓ¶ûFwö¬;š3÷¿GÅR#h(NOBíщÞ}žÀçÜÖì;MrŽçO¤…AÃÙÝß’Ýöuú4Z:áhcMÒÊÅìζ¦Sß oç ù9dkkPä¤s6)‘Ä„xŠ»àyöG›NfDS@D‘σœòøcœNJåü¥2šuÀOÌdóÆ]$Äe`Õa#žè€»äúö¬>»•Û.âx¹hNÏîQôÛl=›‹è6’÷Æ6Ã\Ô£Ui‘ØùÒ²Mö0žæÏ¨c”éÕ(.&£tíÈã-­ø+j;±q $%–Òõ“èïfĨWQYå@hÖxXHÑ)KIظž})ÙX„veĘn¸ÉôdŽÀueq›ÿdJ6¶íz1|DG\¥×äWTQZnA“æ4n癕¬ÞŸ@ê%OžýñšcDf(bóº­$&Ÿ§BÞˆ¡ÓÇÐTÌåÔžÍ,ûóšf#xî©øßbS&ÿÁümù¸»«ÉHHÁªõ`zuaÿ|Vüu s{&LëO°[ n6eüµñö'«3š¡]cymbF%Åå6„´m„D¸ÎÞÎL»ˆ}Ø-•hÍA~¸Ûê(-7'¨y[: ãÒ†5ìKL&_ˆàã©‘ª+©¸l“`@S«+ošŠœ‰ËAïØ„ÖM°ðêHãÊ8vEïa‚Ã>}‘nNfT·m/¶_¢·‡üJŽT•9¤&]¤Éا u¸ªª<OžÞžÆ!Mph©Vø´kC »ÕÕ7Uñ¬Y¹»† ©rZôóG¢r",ì­½hhKM•;O|<ðéØ]ê_Ĉ!©² ï¼Õ7Y-Eåv„µ÷à QWC™Ê™Öm’C·³I 5W9Ц½fÚjZ·ö@TÕ¢•ºä¥%ãÔ N%&w²ßÈ—˜Þ+i5¥åæø7÷ÃÙÚ švq'»Öî=:ྞåû“IKË Dߌ ÓzãL-iÉ$ž¨Æ»½+yûO‘Ua†_œäuÇ)wsÇÃÍæ–‹´*++±µµE­V!•Hëì LÁËW ‚ˆé%ŽÇ"ªÕ7šr|WYùÑ£ìú½Ø¨‘ˆ PîêŽSqá• [[>ü”¼ND&L˜0a„ &þ—¨­­eÓ¶=Œ3 €ìì\2³.Ò»g74z=.~CþëB¨­½bCK¼¼±þuŨhÔ¸Qƒ€oáMþ›ûÖîÃ1¯×Q\\Œ·—7<€ƒÿF9oNGOâŠyÑ1`Âpå÷öµÚ¬ƒ¬ü~3AŸ|Ko›†’³¡ÊûnÞïajycz·Kÿ^ôá^Óøû´µZ-¥¥¥xyyÝ£.ü3òÝîÛ׼•çµ)( d2Ù-‡‚#’ºªº¦Fƒ‹³Ë÷#u7Ý=h=×û4 žžž÷Ü“Üû›wŸŠÑh$??Ÿ»Há^Úôƒç2;'›F~î³–¼>H>•J%µµµ¸º>¼[„krãI8›M¹ÎóÌd¶{öæÃ!­q´xðý8;;cffÖ5{}ÿ}É>XÙ‹ˆ\ºt ?_¿;¦ÿ_¹á—×þù7‰ÞN7ô¨Îßêwnn.žžž÷ð¿Çq^[›Éê—gb7w#o÷š„[µi'¥üíu<ÛÌìljKá~û±þ—Â}jæ?3æ_ÿü~íè[Ç7—Ü­ÊòÖÏþ¾¯½WYï¤wÁD®é;nþÖߥv»ÿr»ûÖr/6Éu2è3ØøÓïü•%#dèú· ÅÏñþ'‰5ù$'b˪¿¶‹`ܳh$m¨6øpæ›>®Ý¯L¯S “×ëÓ©É#álNÛ$·n3w–ÿ†ÿ¿G…ÎÎÉÆÓÓ‹òrr™¹\~˰(ŠWÀ†íih¾]ˆ±¼üú÷€FÙÙtŒÕt´ &L˜0a„ &îˆðЃ’ ÿÉuŽE¡Áä¼V¾½éìàƒ¯ü^¿fÀ`áJ³ŽÏÑÖ¦!ål¨ò¾›÷„øîíÒ¿}¸×4þ>má®.ÙþkòÝî¡AÚ× 5$WVÀ7`ëDÒ íûÁúIƒé7É]•—ð@}Î}¤"î!…‡Ù_Þ¿Î<¬vø@9„ºcÇ"¢²ˆ¬sIdWè -yùÙ° þÞ[wwz#ÜSÉ>`Ùÿ}Oþ€_nÿç#èæ½[ýîëé{çerð}ì-Ú8ßQñnóe8¶~›Íä÷1N Ô?¤7ÿÔ˜ýóû•ùÖã±pW: Üg_{¯² ÷=‚?ˆ\ «Â}æQh ½ü»”ï3o27ÂÚµ¤ *‰ìK%¨Âlã`PQ–›Þ³­Âšá,mÈ6øOÌh…–÷A¾ÕPy½>QYül’[·á^~óˆÑÿmL`&L˜0a„ &LÜa~% P(þubE#Fƒ‘òòòº;Ü;4ÃJ…‚š{ðZùÒ~è &m{$0 †@wõ¦/ V«$z½þ‘) AÐê´ôV ‚Pwª^ÿÈ鎈ˆQ4>²:ýolk—õðáÖ·ˆàÙQ“û •€ èQ+•”+®¹·ïä7 TTT"“Jÿ•}(Šœî\^ò¨ÙM‚ \ézDp£ËÏû´kléð| å(L§8š0ñˆ#Á½Í ¦tŠ`ТV+Q(jî?9©+"¦ÒM:inô¨ºÍ&1ñp1€M˜0a„ &L˜0qçù¸Túv>\ CÝ„G&{øÎaƒ#RÙýL¯D Èd¼+ÒDà  ‚ðÏèΣ\‚€ ’û82ôá"ÑK0 ÆG®ŽDQGN.£hüçúÃûcþH R ¹\õè4ztW¦©LÒ í@*‘ü+Ëÿry?ª²?jv“ H$R¤’‡omèՙ쾜ε¤R“ÃÚ„‰C_lС®­¡)²l¸U}rR™©xôx86‰‰‡‹©%™0a„ &L˜0aâ3{{{ûßôÔ §VU‹­­­©MÜ:½•JeÒ@¯×#“ɹ²¨QÖ V«9¹´Z-Z­ö‘“Ë(©©®y$uº¼¢¼ï˜þ稭­E)ŠÿÚ¾¢¦¦[[Ìäò¥ü•U•¤î”W”?’vSee%ööv·9Bß„ &L˜øß ¼¢ü*¿¦Qß„ &L˜0a„ wDäßy4ä¿©”Ä;üeâ®I£©ü¯mGâŽÑGugö£Z^¦.åß ‡â+ÿJËA4)õ¿l|3Õ—‰ÿÏó¤ÿe™þcÈÿZ™zàÿmL`&L˜0a„ &L<¢“`ñ¶Ïïu2}ÛçbCÉ. αvI±Y•÷œoA,#ñà.Öm?x‹ûùîO·5á¿×Z¹½<âË-Þ³îüÓ!ñŸª›úc~~Ž<5ñ¡|ïAËT¼­DâChCâ#W[+e±Á~/Þ÷þɺ½—¬iQ¤ïfþ/'©åßsÍÂÝõ{BÁ¦L|š§žzŠe)p†ûùêë}ÿOïšàí;µÁ;ë*ŠÎD³hÉI47é÷]ô•‡øê³hÊÐÖ ŒÄĦúoöõ`là/þ}zb•CCØŠ ó¾`(ääÞÝìܽÛw³/6Ãß•Sq _Ï=HÕ}•Ë-Ú]q Ÿ=;ž'Ç?Ë+dÞj&Ñ z}ó»äÄðÝ&2lä,=’MµØ½Ž€ ŒãÇ9¯2”á£ÇòåÁêëÅ™'Ù¾6 5¹Dÿ4“qƒ3x@^Zz …A@}ü;&ŽIdä0"‡E2òÉñLX–t[º@)§ÿøŠ‰2hàžûn+é• D¿?qC2`ð÷Äi 7LŒÏ²ú³*®ü]MúÖéÓ«O¾õ5»/®|Óvˆd•[¯ZvÏx™§"2(|>I¢‹£™9,œ¡‘‘Œ|z ‹’W~+–d“ž•J­žS«?a A 0€çí'O ‚Pȶ×&3&"‚Èðp†/IºmÑVDZù·XjPsnë^íß›>ýg°þt>Ú;VÌyV}}“#\_vŽU_¼È—[31Ü‘[WÆlúv7«5ue¨ü‹÷‡G1l8£Ÿùš8ƒpÓ/4dìù…×û÷¢OÿwX}ôZ*ØýŸW;t ‡üH‚ÁXÿ• ~NxäH&¼¸‰"ô(.ìdv¿Þôü"_®H¨Ï»’ÓK>eÊ ¾ôíÿ1{²+Ð# PÈúçÆ122œÈQ¿‘ù®kó,ÞV·u”$¬à…þý0x,ï~»“¼ú<Æ­ùš©áDD†3 ßs,>R”±éÅ ŒŠ gHäbÒoù}#åYuyî3è¾XZ@æ.¾zëI ‰ 22’ÃG0ôËjÉåÏÉuy޾ä¦<딉üñÓ1”„ÒçïàÝ¡Cˆà‰‰¯°ô èÈ]ËŒþýä ¶äÕ·ê”… NddáO¿Àì]ç(Š‹âç5Ihëó.èÒÙ¼r31ñW¸·¬çrœ $ðíäqŒˆŒ$bè0fG—`Œ]ÀèO¡@MIÜŸÌ™¶ˆTƒ‘¬½ßólÿ 4g?]M|±Ø@!C#ö.àí1}ðü÷Äd(R–ðÒ„QDDF1d(³bê¶èòvñÉçû¸²ÌÅXIƉ(~]Clô|¦„‡342œý'òíÎ3Tß§”¥O±mMªzm©«‡J­ÛGÂÙ’úº¹ü<›5Ÿî¢P럥ðã Šx’—ÞÙ…ârÝ 9²ü=úôêŸ~åD¾ñ¿v5 ­*à|†âoƒ‚áû6¬cõŽs·uZ \`í›»~êf½ÿ>ýá ©‹9{¦èoÆÆGZ2þÆô¡uío`¿ñ|µ)‘2ñö~³M""` ä|ôëMßA/óÍê$j¯kƒeDÿMÚ¥ Œ—û²¼uŒ}b‘‘‘ÌÚYrÕ®©­&'1†\wTé[™Ù¯}½ÂÒP! /°é³7x2<œ!0m}µ×xÊŽn$ÙÞÛ‚¼>˜!<1é5–Ÿ-9'Vó^ÿþucËÛ?“¥º¡=_–9‡µŸí¢ÀpÙºKã§ðA ŽÃóoí ô–½ÀåßVpð÷ÓK1 dž'0*2’ȈžXvö¿ÕRrn3E„9”ÁŸbÖ’Ãd¥dÞôëÇ爯vQ¢¼E+JYÈàACùô$~8¡FPåýÃ$ú '22’áÆþî/>›ÄîyÓyjȆ À«¿'S£»*?d²jÎnJêFiªÏÿÉëƒ2dh8ONÅÆ,PÎé?¾dBÿ~ô0‰v¤Qu;.°êãËéÕ=¯92—¾}ðÄóo³2Ù€„ 6~]ŸÞ³|»5…Ê«Zäm|‰ l [g¸ƒ½}«úP»ý'OçÕÙsú–¼>‰Q„Â{» ë^¯Œá½ˆp†FŽ`Ü”H4žÙÈìúz4à)f-þ‹rŒÄÿò1S÷¥O¿9DçWcD@0œâËñc>,‚È‘³9¢¼Ó ®¦¬°ü‚"òó )*Wý½­ .äÌ™|¹QÌžsc¥€P}ˆ/?ÝNŽF_÷-Méêv¼2{¯÷ðºòfeþi¶,‹»¡Wslã~N'ÖÛÅel{} £#1$b!©×~*iƒfäø)Ì?¡F †Œ˜L0AƒòÌÇË9%t`Òo2²‰ue9ãí­íÅ ¼6d£Ÿ|š)Ó6s›| (8<*§>¼ññ׌ëèŽÕCºò](ßÇÇï¢0änå½™»h‚5EœM+ª·én©”å“[Xýð›†r2Óó©ÒÜE/ÞÍœ[Ìûþ~þSÊÎÅÑœ+¬ÆXתYýôh† ‹døèådˆ:*άçµAõ}Ϋ²å"×hâi³mþ2êƒÔ"@Ö FFF2lä(>Ž©ø-•{´0Ýl„ &L˜0a„‰–3¿1ä¥l¦¬YH{ƒˆ¹“5ƪ\b–¼Å¬írúŒ›þùg¨òéÀ“s¦Ñ9ðkߨJT€/ÃÛ?Ã'_Go‰ÜŠ”Åá,çwî•]BiåNïY+o™Å¶/vrp_*‹ŸHÂ;Ï~€dßG¼óË16¿Ðs™„ܯ1~ѬZNc€¾œ³›–0{—sþ\…¿NŽ­ÓÕ5µkhÙöq*·JrË'˜ù|†èÙL_x’/uBȉ͇ñÞ”Öˆ1òî¢lŸÚ™´ß^¢hÂRµQ’¼ioüÑ–5ƒENîù¯Y›Xf¾‡v°:©%ãˉ•¸2vî|Ræ1sÓAšM‰Ä¸ãUÎõû€¯º8Qºu6S—´g×ä°{uÝç·ÖmKj‹ÓˆÙxž~߯¡§1™-{Nðó¦`>nOi†œ–_æÅaØ©$8ùÛpøÛ‰$wÁg{`ÿ?ØÉÚ9ƒp¾¦Ì«ó³uéZ¼gmäOçXÖîÙÏ÷{˜Þ¿“¦·d´ÚˆÌʉœucY$W±cöTÒz—]1?½”çfïbÝGqÔÖ¸jϯVвÿ[„ßw£³â>û3K:©(ºxˆÍŸü@⣱¨¬Æÿ½•¼ZCBÔNrbëß©@áŽ÷X_NùE ºú ÿ9wted*›1nÆË„zÛ!ED£ÎŠvÎ`Ò7VL]³˜VZÕ%å¤ÞÌ!K_JŠª¯.üU”—¡¯® kN-ä•ëù¸ÈÚÉ+0ñ_µpÄBv‚ùË2¼5Šá›Æò{Ö^&ºW{`š^s±‹ßÄŸ› Œùiíìγ}Ÿ‚Ú‹¥àæÚ ÒøtÏû}ùö·\Ô*9º3¿òÜ"#ßø˜V.¶Èeñ,=š™†Õ|\Fv¶ÅÕ€¥h ¶ºŒÂ|s¼-iÜë%Þ™ðö ¬™¿‹m6 {Ü«»”ÆXÏßÞdÆV)=Ǿŀzõé;øòûïÙz¡3¿%¬þyõÏxö»hòlŸ¡‹(N/y“êVòKóŽoý•ÿD…±(\Â_?ÿʲ¬>_? ѧGÀ•(HJ…Û·+„GÏá)õ¢ë ‚9·½=XÌæÄEoF£åmòÆCÉÙ}”™ A*•`öÈ÷°ÐR‘ž-ždÌô>¸U°tvÆáNY¸Á&ù㣹ün4ºƒâ;k3ËÌ¢Yzx¿Çùò\[Gtiëù`ÞÏì+ \ü'žKeÄ¢¯él&ÃÂÙñjw¬PV@hs §FÑdö^b;‹ídcZ ã쓨h>„†„â›Ê²ç—²5x#Z;a䜯¤×à¦H/lDþÜ~í¨¤ ó[?›OÒwÑÖh𱂷BkˆÛEvìqòýzá%½Ú·Uü‚ç¾ÛMŽÕx:Ö?[ò:SVðs‹bNný™[Bø%Òï¦º×ŸßÆçßÍ'*»´iE(@ÚfÎ÷}OÛÚ`eVÊöϲ}ð÷ q»¶` ÔVê1³À{?=Aã*r;gmD&¼õ5#®ŒÏO1_/`䆨VÂb†¼YÂË¿ÿLk­ˆ¥‹X¸ÓyÜ~‰0 3·¦zöéÇ(ï6•Y/{àîÀ/OÏe[è[ßo&øƒE¼â\KÑáU|øÕÖ½ÛµB¥ý f|?’FUz,ÝìÉßö)1µÞŒûf=­ŠÖ2uá6ÜÞíCÙ¼õ8MžÃ<k$±¿ðÜ'»øãó8ÞJ<™ Vr¤JƒD@jf~CÀåæ~I"• •ɱöÀô7Œw=F^ý¦ŠÜ¼$æ²ú€š™½/-šã•ÅYúooÒÓyÔÛõv½€!+šyßÏåÏsm˜þysÚ9[¦“òØd>z=Õ®Ù¼¹è»_| 1~áÓËxuÍZiŒX¸Z€2 µZ½³‚/Úärð·ÝÝGÀ´4÷q Yzg{CîÕ‹©oæòÙ:Þš3ŸÛ¾[ÌÙ‹r¼Ç=F÷VÞ ÐG¹í>HY-¹—ÔÈ©Of¼ ¶÷ ¼- IDAT8îÜz¼ʸÅÂáºñGnfqÓøóàcÿ iX[a!—Þœ¦¤–K—Ìï:oÚäÕ̘·”Ê~ÌÚ™¦¨ØÿÙ d„Ïå»Î–ˆ'—òüœ½løàqÄ¢Lœ§.cV‡rÎÙÏáo—4ïZH¯/'mÂRÞš·Š“ÕƒùqtW!}9‘S2¿â: `ál‹‰ûÃ6a„ &L˜0aÂÄ?JâÞXÆ,ù‰a^Â5“TØyÑû¹9|äC\¥¶. ãÞðÁ¤r92ì ˆ"5¢¥>¾õn˜ª½Ì‹îË ‡Ýþ£Ž!têß‚N2sÌGBüqÖæ81k½x©9Á.XÚôÀ{Î% FË$xú•~ðáòºÕõÚ  %“¿žNW'®“] ˆÄƒrlGgqz‡A¯7#Øß³¡=ðþ$›|c|Ú¿Î,‰ ÖRp²©%À=Žr5`^KQÎ%òÝÛŽ6aärä8Úx7g¨ :`/™c%¨¦ê”-Áî7Ìá­œéøôÇÌõÚÉ® TdÄ)QU¶§o[<ƒ;œx†Š x¤ðÅ3ëðž>“1õÎV·þï³ÚïÞ[tÍqpªRâw-!¥å§¼Þ,•£%ÌÉ#ê«¥¤9ugü¤îxJÀ¼ísüø¹ o}­D†èPäUaÜ_GŦ¸,C×8¹ªÉJ®¤²¨#áímñ©íHÓ¤3¨ªŽ³g£/A/6#Øß‹¡Ýñšs‰BÌØ³¼ =úàƒ«Þ±e}Y-9w´+^´ÇG׊Ðt…¹G9tAŽ•S+Zµ°ÇÉ»ŸS©åðÊûµ ®–†?ŽÛ×”vM€õî¸1ÏÂ-uÛHe™Šš #Í›»àBÁi”–Uöˆ¢.>4ó𩤜'u_-¢‰—-’Æ=èôåq.^Ö¢¬TPz¡+ásp¤5­N圢¿?.¾¸ÄïÛ3l®%_lO§W›èb‰à÷8¾:ÍÅâhfMËÑsXä³UGµp,œ€¬Ãë̬×oI\þ¤TæAŸžOã/µÄŒZlªÍÕæXJÓ YPاGøeQEëfD4w¦Qp3ü®uw”³£ˆ‘ó1ĽÞÍæëG³`GNÝÇÉõNA‰ u"Ý¬Û A Å] íÒ‚&RÀƒ÷ßÁRJø˜¼óÓ.zO©b÷Á^Ly³1ÚèÓHdA´rÁÆŽÐ"HÊ#`fe‹™Ÿ7.6åXZžaÃ7)´ü"=Z5ÅAàÃû ‹yyña Þ‘!•^_^‚ Z`ëêMcW7ä®-ñ—CU£º§Ý­[zLœÃ'{9^¢»RâÒÀ¼;Ë ñ§ Èõ†+Ï­»¾ÁR/_^ûZ‚€€Q<ɾÕÝè}Àlhß)”#³(ëà‚ÚÒšÉ[’K,}¥;›’ä8yõeÖÊtÿ›,+Q4ÇÞÕ¦.žØºÜEË¿Î&Qè±€Ìì ¨Ot¥Ï;|´­ =WFÁÅBŒm‘7Áœ96ßæ#5‘göœ"üûx*èFǼ¥2•”}ÎöÌ&=¶ ý'Ûá£iKË35(³r0 gl¸€\.E‚-a6‘o4`!…Cëýhýšiã×ùO½œÖ¢?答ɽéÕs,AR ÌPb]iˆò‚OÖ]^ã7/¦}%Ô‡BN³²+½zàƒ=b—0Dgaˆt$uÃRþˆufÜ'ãh&i“ÁÌxßqþEÌôõ½XÐD¦Yc-¨ "ÖŽn ÍXÏ»ÓSˆ\9‡ž6 Š2¬í½ vòÀÍéª<.Ö׌Ïmÿ0{ëëûÓ¸ƒ‰Œýmáî×Ú™rlœ}°q(ä\ºζ!´Ðg©\†;Âoæ’¨Ç ‚C¯¬ô]Ï›ßÕ÷R ì:Oã©5VRwÈ%=ñÅen°¦Q€#Ž­ˆ>‚T©ÆÀõAûï±ÒçÞø¶N^£^$-ñÏ,ú޾WôMGIu Ñ¿@G[¸ï²jUVù’犯ä1 >Ÿ«º’ööö-ÇŸÇ™ú®ã’4Ìuu§õH‚Æ15È+™Xâ·‘*½c~M}ð±gMœ(ê!—_©W'€bN':âÜšV-œplÑÎ?F£¨­¦8¿ë€`ü}°jÇ–²vrªÈ=ò+o¿¹’\s :«6Œ›Ü'5Eû¾à¥%ñÄ×ÓïÝ•¼ŒƒYËF½ÌªÒt¢HÄ;S‘ ”—vðý¯6üçÞT[À´×W‘#q¦íЗøàÝÇHØOöùh’ÏçÔ9}Þ^ÁÌ'ˆ»˜´äžìú!ÓÖ±¨+ ŠWÆ[‰µ+]ÆÏá+¯ÝÄdë®ØwÒF½yã?2ÄEé˜ér8°6€–s‚iÒØyDw<>É¢ÇÈû+‰q¿.`ðµ D?šõz– ™%ægZøÇ¢PTP/ß1.j1ç™MÍ™Ãèæ6W–9föxú¸`c〯ƒ„K§6óÛ†|Ååü~@BË!/2ãý±(æ/a{Ü! 7òƒßx–|Âöÿ|ÏÞœ"ÔÆüxèmZçoæ­yRº¸Ïå×ã™ù½[æ%b^¾ƒsnáŒð ?Ì&§ókÌ|{,M/üÎ[_.çxf5m/,þgZËØýÉ|RSkÞs>­&NÆ>Ã™éŸ Bzf9/O\@ºÌ‹vý§ñÅì0£Žq2ö$EùÑìO4Òå…y¼7±+Ž'¿cÒ—Qä(4èõ-˜¾nÃ%—÷ºŠÔžYˬÒ¶ìº[_Ñjä–2¢¾åʼnÄgû0lÆl^Š#Iü0ùc¶žÏEiˆàû¿fСloeäo"qu”ŸÝÊw륌-gý²K8 KY½_BóÏòÆÛÏÓÊ6›Ÿ|É’I(j·Qô¿Î~+fÃìy$%Š éÿ3Ýß^Éûþ;xîéùuyî;•9õÅ醶(o1šÏ?¶cæ¼dÈ"io{ºm ¤±µ <ç±ïÉú /¡]¦ñ¶Ô+©Æ€lÎǧP­ƒ×½ÈCŸfî§Ž¼ó©X7¾¤ì‰eÄ¢yŒò“_g1™vß;¦# M˜0a„ &L˜0ñ’ľ ñ,x¦]»v¥gÿp–g^^¡,Aj㈓­%’+^sÌåò:'”!‰£ª ½¸Ö_–¸ü#*§L¢÷VKä˜ÉÍ11„ÝÝpJ‘\þ¸5¡yj6—ŒuP©¥nN6Èĺɦ²ú[~Ûɬ¡]éÔ±#£ßžÇÉŠzÙ ‰ñuÁÁÇ;©D¨sbyÑ,9‹Qy h‹S9mÞƒNö€²„¬ò|ÒÛ·¡1 ‘Ëë‚ÆTNª|ñvwÁÎÜ+Y5{f¢[Çßi¿6½¤7¨,µqÄÙÞ ‰Q  €Q^7ñ³ö¢q‘’ê % ¦¼ „*µáÊý {\m®:üjË8½õözÏbFxfr © 0 T”¢¨¨åòAb‚Ô g{,$Àˆˆ;cWN%3¼ »>Nÿ©IŒùtä ;'®Ê'°ò¤Q™•¢ŒJ½92I}þ܃hž’MލA«¾¼J^ÀÌ«“3¸(€¨³¨KChYNÅF9R¡~µ»}#‚.–RªªF©±À\VänLÓø .Þ‡&_ŸgÙmt[‚½OCžoÉï;Ò±ã–&X>¾ fVi¬útÝ:vdÔÜý(0`ÐæS¢ê'ëÿÇÞyÆWQmû™SÓ{B*½W¥@½ˆtQ±¡p \®bdž(Š¥«Xé½C rè@H$!•ôžœ23ï‡UñýÏó…çäìÙ{¯µ×Z³vkN›–ñ\ȸîáR)Å…Y•wÇyàWÛ[›t²«œ$™²v.ƒÛÓ9ÀMy2Y¹•}!´ uËXÎgVô£ÆÞ O;T÷x!¶pE¿M”fÆeÓ…öNc8Ëø3ovÁZ]ž×ç?óuLmž:Æ Q«4èuê{OPhìpH_ÅøþÁt "¨“ÃË’’Æö# hÙìÚ=‚ùoî¼FÎ5EKz?´A1L 4ØÛkvŸåqí'|µ8ŠæŸN Z¼êyc¾ôž˜Ì’£Eèô:´ÚNçÈ2²J:#‘·Ötlå…S•GØ´lAƒ£±$·O¾©Õ•ö+/Žƒ:3å®NØW3M¥vtÃÍÑu•» •« z ‚\Õ´ÛâèîXaÛ°`1ÛVÚ -v~ÄœâTîÖÏ[΄~A ^ür1ÅCQ@­)#!n%¿-8ËSËŒ„ÿ2Kæ6ÅÅ9}:'mgÆúý„¯~Žzd«ôß],R^ZB©IÂtz)ÇÌA¼1'ã’±ÄìÝÅ‘LoFÏz™f­Æ²`ýV¶|ïͯþ"àëPö¬ÿ™q†P&.;_ƒ]h‡kýö´¯·’É@i2QÅY¤=¢çÌ‚Ýø¾ÀÒH#ƯS¸{g’s)ˆ˜ÊáÚ X³y2Z5œŒÅoòNvn\Îä.ñLJÙ¿*¶R£Ó_dתÿÒÛ``Ðû¿r"óo~rMLÍQ›®tô2a2Uî^Ô9ã%êÐ&gVÜë֠uuÆN«F5Àyl‹fñØ~Ñ9(˜9—ïz¶š(>{Œž]èh1a²V–©wÃפF•šEôÚJ»o9F¨åZùÛVŒå“{XÞ§Á×Ô³œâ¬sœ± ¢­c…mÎ<°ˆq]G²Ù¥OŒ Âó†ÐÏwGôªË6½ª}Ð`ãåtÉ€¥(ììLr›ã挽^}Õhí±×°å¿½2l KÄTº"aµ‘•–M©TéW59œ<>Aý^û‚í×Wü³¿6×|s„+Ž2{Tƒ:Ñ{ðHþºxíNÀ‚è}DYÒhУ+Þ¨Ðj5Wú0ÌÔš–¾öèPépsw¬²K_@¥³¯KìÄø‘=ðó·G¨ôû\oßÚ5¨P»¸àh£½ê4v•“¿@‰‘ÝrŸžýåUN÷6`êÊSâyú³A8`A¥Éâøái 4xìo ϕГCnÞå…JMhÙ"ä‹<1y¯ö!8¨3ÁO†1ìËQxsÕÏdÅ­gñôHüjdÿ¶%Lyº&!q 1r ¯þqÉ«Äï '¦4“]áâ óYµq3[¶ne\s QÉZFAQ>iéûXý“ŸD†üȰF…ìXy˜ü «8QÒš—¿?€ñ—q$ ãPª•n¯>OÓæ¯ðã†m|ÿdmn eÔŽn•ïU|†Jƹª/µ`1ëѪ+uÜ·1ÍN&’È!v.?ʬg»Ð¹s'ú Ūd@P£ÑÙVŽ©db 5àÞˆÚˆ×.ö’ËÈNË¢Ð"ßxܯ$#Wúw1;š„³Ç x͈qÝ·´µÍ`õ¶ ¯>M·ÇGó¿oV¾¢?ÇßýŠ¢~ÓX¾u¼vŽ·fBËÉÛÿ »íaóŠQÔMM#?Q¦ßW+ë“ÁŸÛ/ñÂìÙ´Ó¤²%,©Ù3L_¼‰Ð}D.îʺ½GÈ.±§ÿøÑ4m:†E›73­‹ŠÌÜb J÷0ç­¿è´ÐHØ_ÑÁu'ßnM@Ÿ¶ƒè,G|~㓱Äcß™,4ãùeÕ6ö„íãÀM™õ×!®¶\¬´åU;CSSÜ;óÆo‘ìžÕ— aÛÙñ«^ÿ˜ŒÀ),ÝzUãSùïìƒ`.%?¿¼r2_F¶–RPhÆšw–¤˜CøüLjqý÷tr*`û¡HBæÎàˆ¥ _®ÛOغOé^×Xµ^ ž8–-_ã×-«˜ðÈa¾·üj›ÝvòÍö´›¼ÿhѹ9c§Q]¶˜ËRÈÊ­´úf´lËù ŠÍÉʹDªS{ZÚpë2ÕêÊwªÂ6ždÁËÝ "¸GoÅ*“¿w‹2¬          ð1c.ÈŒð0ÂC÷²~Æ“DŒû‰³U7Icí;«qhg U« ‡ó73ÿ>Œ~±þ>?›ë(ÐÖ¡CëÆØZÅ*S *T¢tÍ.HùJ]$¬|kaiD‘á+ °kay@ƉýÔõ´£¶¯²,VIv¨P‹R•¤ˆŒ¹$œ9cÒoêP\¢ÌTòÓÎÔ¡A•'_bËkê´æ‘–>•‰8Gz¶•ýÆ!î÷«Rnž)»Ú}7N«$ Y,§DÓ•i»~a\ záÚ¼ÌeÊË[ÂÆÿõ"0ð1Þœú#ý>ƒ/×—òÄ×?ðÕľø«nú`àèwo#}ξ=‹yÒ=œ™kÎÞR*—oRÉ2²|}²H…Zoܪª”—ÂÕi¢+u¹¾ A”®äb®VU…JïþþÍktÕrƒnxc',ùœÚ±–ŽÙúÓóئî`sd6àA·Iß±6"£ñOGmbõGÆ.Ιÿ ¡³Á@`§Ç™U‡:ÞUªÇ»Y_ž~UæSƒC §Þ_M¬ºž—3½Ö#,_U›N]Zã¬jÍø5Ã8úF?: ì4ˆbêS×ëjä›M’(Écá¤ôûp`å¡ì*|;¾Ìܰ%ã•þ¿GÈÙ¼0f 1¥–{›Ø²–QRk0ÓVl"t_8¡ûö³Ñ(ü±bmÙˆ:7W¼jʹfhñŸ¿ØnÄ8(Š®Atú6µÞž.£^G+xªbŽ »2i¹ãÂg`õ F|ÂÆ˜‚ûc¢% I­A¥nH©¯³×~­Á¦4–M³_Æ`0`µ‰¦ƒŸâ¹@ÿê'žnÙßòÉìšš *ÉJy¹ -ÚOdyDÆð_èW’Ê® ÇnqßäDÀTFA>Ða€¾I Ú”k)ص—p‡`»·¥©'`gƒVõp¤?ÉŒ¹Voºw¤™P¯M4´’v:Ô=vŽ8ä\$®ñxFiÑ»¸Ó¼M[Üׄq®ëcçâAÝfmÙ™Œ”^Œ½ f@[² "X2÷-Ò©ßÿØ´-‚s%E”5ÃÈî^¸:jdZö¢[ì\\iØ…€Ã±$ÿ«b+'Z=ñ.DÄh\ëšDÂ7Fñ·ã¥JLòéÓÔ2U= BU1v«N]36M”tç“-; ßGøŸ¯qòÕï8H¦2bŽî¤_Nˆë£Sªê£“øýÅ•ÔÒ‡¦ž¨€£»W2 wp•±,Rt)”%ïFÑ÷ýǯø¿Nc™¾ˆ>ù»Y:k7ÉÕ´‚ B°Z0ãH»>bîü×h­¹ÎGÜP¦3ý§ïbŸ±û»½ÁÚK*ìšfé9<æ`ƒ_»Ñ,Œ8ˆÑ¸…©8µdñâõþ¹-µ\®·ŽVdi(?Dì'"tLéMØÛ?_+r*ÇBS)–zÓ¥UÕMùóåUø èI3oÇ«6÷¦ýa!ãÌnÖ̹H¿ÿvǽ•"¯m5òÛÛM‰2îátbÉ킵+=io;’ùû9¾…¯‡6&äËÍD%9“]Â+›ü>±%g„“–K̉ŽÎ›Ìˆžöø”CGg2ü¥ßHª Ìä;ò³·ú›³Ì¼†ŽGR_«âÈ̉hgÙ¿}.ýí÷2gý9À–€ŽcXq£q3·Õ`üñ0 '=‡ç…ù 70têÂ{;Ëq ð$zÞÛäO\Éž}+y­ÁQ¾[y¬ŠŸ4Q’c¦¼Ý‹ kØØc£W#ˆ&LµzH ÷J›¨³Ã!5”-ù£x²›'.N8ØÛc£¾<œT¢ˆ%ã {ã~â…À@»?͇3ÖŸ–A¶OO‚ƒ;ÓʨӀÆZ-zI½•J‡½=¶š[ûR¹ÚñKE\\ñæ2”Ùû‰ÛÉ/“º6á®.Ý)䨲MÄÆÛÒepsªÄo"`ß›™á¿2¶µãmŽŸ•ìüèølÅ=ñ^>xxâaA§C«ÕaãàˆÞ”Bl­§ÖËw{5uûö¡Ù_!D ÚÖo2ª£µAoSë :8ãÚ¸µ¤qýZø¹¸á.ªPËÒI/ÒÛ`À0f1—Æj•@¯C­Òaçà€­VIÂ’‘EFëq<Ót¾µi逰ó§¼éÔC-   ììq5¨¤#|;j(= ß\AYT<)UÆŠcë1ü>“ÞUå#au«M–mhbŽíÚÓ¦LEù©cqÆÀ^õðqÿ>}h±&œƒ²Œ \? #Ùúà×aýëžÞøyÕÂ;#‰sÚö<Ò-–^·Ž´6zÔj=öZ[ÔÙÙ×¶Ù+a÷aÒn§Y‘hÍä ƒÙÿ\0 ìôóÎ7¦žûÕwÿôS;Ù° Þov¿Í¢Àª~ÁDYq?¦íÙKXX(;æ?Ï¡Wg­$Rî eXAAAAAAAAAAá"€  RkPkuØ5èLpÃX.Üv.#•ïþDjÇ<ýdkÜ«¼Åýy:ÖwFÑõŽ’âÙìûñމmxb|<± V(ÌMâ\óÚø«nuï’€ ¨+&Ÿõ4há·]9À¥ l$,—ÒHiUQB¼ü¹µ\µk€®U“Ö%©$ÖóÄÃN¶j1-‘ómP§ÆÔûZÝîZï(Göï'´à5žhîíF1ù¥xœØL´T*5øÐȽÞD¹K/¾Þº‡F#‘ë'ÓªMC®$F.o×v¡É€Ùb4bŒXÉÔñ¨íìxåβĿ‘Ñ¥ êùa àÖŸïw…pÐIäš ´hQ¿²ÌšD¢´`ß?¹ë¿¥¯ãÕ„N…ܼiÚFƒÊ&ƒ€Á_°<¬R·vN×À7X<ï%šÚiï}u¿Pq¯žF¥F«ÑV ê[—§v³/ó’Njk¥JƒFÚŽ'Ωsù”Ví‹´Dη©Où‰zÉJ¹]ógŒÆeŒoQ‹Ò”Jþ!7#HLy™\j^_«„¤RUÚïF´le=™ä[&ßXEâ*êœ,Š ÉW«Îä\ióªøLA¸ñO*þ®Š¿T5¿¨ÂÖƒ:Í{2 a=ŠŠ(.mG Çò:ðÊgÉÁH#Fã iì‰N‚k6õ ×¶AŽ«ç~4à…O'Ü$$éö¬“ôw(Ç,UñËÖ²µ¢¿.·ñyjµZ…¦n7z5%! $ë%Ò“[Q¿6u¸¼eÓ’G– Ⱦ¸I,{e6%ÏçÙžup*bµ„ø4¬sY@"%¹{øáé]Ö~M‡ë}‹ÍÑ sM%/ÿïFY•# d+¦ÜKd´¨‹€J@¥þ»{7/Çb*TÒmÐ1â+J®øìêsTàŒ»·'î>VDéþùZTѧZ;vÀP'–Ä⊯òcŽ]|žƒzUٚĊWçPøÔ8žéSÇÛ Yç·°èÝS/ûΪÅg3ˆ@whòì—|ØRMÒ™Ó\ïÄf 6UçF­¦-ií´›mûóɶJ'4ù>¢'áÐYj]È–ý•~û‡txt<Ë=GÕíî@¿“QÃOýÀñûŒja*}%‹â&ðRgÐ:¶bÌìù ;¶€]E•×hT€ îÞn¸y•S¬iÀ¨é¿j4bÜý5}ºw¦qîj~‰~‘áЪüõóZÞ:3Ÿ5™× —O™¹f¡€ á:{R±(Quƒ}¼ÚTQëJãǾ$$2’ÈH#Fãj¾x;÷b3òec%T´á¾Ùs€¬Dε®GíË1- híqnÔžµãH*(äÔúeì<ìȀϟ¡éMgxU•ï¯G‚ ºî–ÙëÃ1YP]u‘‚€ U.H®õ‚P9«ö•J‡½ù?M\Hf‡I¬11îý‚®¾Î¨oå‹d/˱²A®¸W÷Š TzJöòÉÈ_p~};F"·MáQ½ö†vVµU[x¥ž—Ÿ'SÑÞ*Ÿß¸°õÚXLPUµ?—«\q=ÇßÊ@®²:ö¦m¾¼37l##9°òm7©SaW1“»™ÅÅÐí·)t¶©ÎèPi4h4ZôõƒéÞô,r•LÊ]½r(]           ðàhGï§·ñËç-åÇG°?¡ œ+¿¶Z0Y¬ˆV3fË–N˜Î¡Ú½ˆÝ˵ IDATúT\Íå˜Åʉ½ì5,Z;Ñ#êþýcÅ‹lŸ1ƒ5©þ ˜0Ú–rDêaè†øÄTrK!+|/Qõ|ð­L´È¢“ÙŠ(Y0¡ÂÁµ õÚmdõÞ"“9w:ƒKæzøÃÑ<\jùáJm:øn'ÉU“Ëf ¢dÅT^†äÙˆæñ³ø5ÌŒÕ\V!çÄ4r6“¸mãGýF.4hjƒ]­HN§‚9úQ”¢±ëJŸþ§ˆ9ŸN~)d†î!ºž7>t¢çS›ØnÅZZBüÁ}$4iIc—z44ì$ò,HɈÎH¤Ä« ];æR`=ÍÅ\(>Á)WNêÎôÊÁÃ…”š$öîælÓzÔº[u¾ÜfS Ötûû/¶¢y[ì-bM`Iæ\t鿆Ô)ÛÇæÝ!HŠì?鈽‹=z•„ÙdÁJ*+>™‰¦_|(ùWºü@T¥@$Ñ‚E*åÜþí8ƒO»ÇZ–G²v“m速Ûås/­˜L,R2~2 ýã]¯¶Y¬s’hÁÌÝOz˜ã–òŸ¾kxdÝLúéÊ1[EJÓÎqhÃRöf¤p渙²ÜÜ\¯K²Q± ¹F&\d³ÙD¹ÅŒÉd¢ÜdFÄÀó“Õ|?l:‡Ífò’SùõÒ<œ°;uˆ• öâ3QDYKѹ»\ݵrEÎ&,5QÉ‚LúféYE˜-"Ö¤ \hßøº…•39¶‚ï—Ÿ©øa:iŽZt>n8Ý{gUÈ]ÒÒ¸PR@–¹ O¿éÏÖ¿Öq,%‡2³‘H¦ Ÿ…î±®øúSïôÂ.$Z(ÍÊ$æl¹ jãeµ"‰&Ì4`Ôi›V0osÕÞ«l5c²X®ú+r°b­X̦+ŸË¦ ù˜Måˆrgº>±HŠó8{ÜHjƒ¶´ñ÷ÄÎÛ"ËÀOTt e*/\5ÿ°K”eÐÛâä,"ÿ`ûEΟ央û‘O2ÊšC^ô’M•zøÌJÊ×ý{ÃUü~õhtz&K#A*) öÔ²†u£aÖH›§ÎGÙ»# k`KÀë ¢Ãös*DK9åVn’H—+l¤hÁTTDìñC¤?Ù&€$‰X-§zH¢ˆU”‘­VDIzx&‰sN¹gëãS4ÇNY°jÝq¼ÍÕ×Ç$f«Gº4h¿ c,HÏ•†Å׋+{M-DÑŠÅ\‚•æôz*ŒekÏRRfÆt!Œ½±Íhà)Szñ0‡l{ÑÉœjùQ»õ^Ÿ)1ŽèüKȾ~h9Á̧‘Ð÷9žèÕsÅ4™¡ì ]ü@¢,f)¯>¾žG×}G]E XšKäÆß É®ð-ÑǬ˜óýqs¹‰:š¬ˆ¢Sy9©ÝžÜÀžƒ ç{ÄHj“ؓǡ¥_ðæ« 8UuâÓl®°9&"½qFgQTnÁ*í#dS{šÔóÙ_x±ó[l+ÊÓ¸²€ŸOæDâ¢3È4ûWœÐq3ÿ\°™× SÙ[fé1b?ÿ• Öòãs8¥)u1•¨ñd•¤OËJÁš3ç寉ï:’a}cW%F–e ‹Ù‚X©Û’h!çÐ"& Óò©tÌH‚=nêt²lfP~Š#§[Ô×›* Ñ\#Z- î@‡Ç6°tc6ˆ9¤ÅœæLY[ È kÿFÂÒ€ò(ŽFÉÈ6n×–wÅïË7‰·±ØÍ?ñ΋ˮ½¢ÃbÁj­âJBx¯ïtÄ?扦vH& VŸú4™É/’¹˜Â8#Æäæ4tÌ&qï"~̈Î&Çâ‹§$‹‰öþ0ŸœÚ¾ø6{”Ö‰ X¶·€Òr ¦ ¡ìkFƒË'§¨ôع:á|r‡J@LIàôÙh2ÔÔ×[ɂŷ+ý~eÕþ<ŠËL˜Lf¬UâgY£ÅÖÝÛÃKXˆå”[$°^^‘!_ë3d4Z´gÎs¾¬¬bÜÜ—šÍVD«åZ_z¥K°Ð€à!‡9y:‹¢rH ÝÍéFþøÓ‰nÃ7ñóʰ“wöGR›Óо˜¿ÏbÞ& }¿~‰æR9&Ëå \¾o(ÙÅ„àY|ªˆkÖYI"f³I´bÆzÓSE®Y'J oHóô?Y·÷&HÙ³‹Ó#zÐù&>è–6Y”굡E}Wìüƒû8YR‚ÔZ4§ÏqÎTŽE”A¥BëíŽ×ñŸXqäÌ4Ng_ÄÚ³Í,–N ’% šòh€¾‡“¢õê(dŠN-æÅà‰ìºfUœ€€„h5aJŽåD}7jwîL猕lI"Û{w5,˜Î—ë)Y1—sî@(± êTDFró" ,”ÓçH¡øÈANäcºáp( ªèxÎ!"x^׿¬‹X{u¨œÈ½ÉûXwY®¼g˜1[ø}êlìvÇ3™òß7Œ-û„.ªrLV Ä lü⾞³ìªeš*ôÂb*ÁÊ#ôyfK—Çc2•Szn¡ñÍhàFÅÎis…îH’ˆµò4/I´"ŠÒ¿nñÖƒ@£t‚‚‚‚‚‚‚‚‚‚ƒ¤ÝÛ›øæ@ºÌ°wâ£õÓ*­Ù>S×e¢W›9ñ oiA®ÈÞå¾,f3þ#¿eá„G84c1Ú·çxwsJ™Ù¤çÇÁ±Þ?a1›ñzìÌþôsš¾ó.cf¼M®ØŸo÷£¯¼[3yõxžš}{=¼ j ãÄù„,Øàæý?®n ˜1ô—/˜Cz>?÷:ÚâÈZ¿äóþ’éÌäßÿƒŸèÆÎÇ{èK ü¼«ú)æ…u¸+=¾¡ÍÓBøøzÝ^7Îúrêz‘ñÏø gZ÷Ã{ŸvÁ‘Ä#3øìƒ÷Ⱥ¼³ˆͽÑÅÿÆ~#=«ˆÖ“׳àI@BÐØàän_qŸŸ)‡¨•ŸóŸ¹‘¸´êÃëS¾eH+'ÿZCzëv<Þ¬.v—+{ö7†OøƒÜ‚RÚüo? ­¸)Q6sìç7xý×dlõV^zy7ã¾øŽÇ|«Û2)G$ÚÅòÝÐ`¦‹":ï¦<=þ:gÊÀy@“AoñÔ®M>ÙÛÙ ®‰M-G<‹v2õ…Ÿ)W©ÑÜ”·W/æéáóXÉ« üßTú4wÀ†‰¬•¾ç™×‡“šgA²Xyò§H~làÃÄß’3ØÀ7Z è½i;ò~îOÄú Øè+ÓLnÝù⣠ÆO™ÆlùÆl‚óÈX*La×üwøxí%ôj3Ñ)#™ôÑD:fo࣯ç³'¶¶-aÏø%|òlK4{?aäôý˜D‰—{/`è˜4ñ;öè¤q¦N³±ü°8`È€ f}ÐC†;Á£'3é™¶8ÿ£ÞP@¥Ñc£s¢~“~õ_aöï k¼ZjWwì}ºâ™à@¿Ö:@G—ñ“Èùz:SÍ£X V¿gøé³ºØ9Ú¢¾2Ya‹]ÂOŒê>Tz<{~ĪOš¥\4îdÓ2‰sú“úûjNÕgÄ[Mÿhe=zЯoÓ+'/ü£¸y#¤­äç÷¿cÐæÙx¯WóÛÖ-íú˜ÄÕŸA/`l¿¼ÿ‚YÔ¥Ï艼Tá/,Ñ2yúï¹XÎöÐÅt}w5Ÿ¿º‰§ßÂ Ç °Êòþ¦¹´±–qêè>ìzϪ8ê3 5†À`¾e` 0nO·wD<G¦.…}sdz}.XÍf¼º”OõÛQ÷ú¿Ê“SRE’hÏŒÁÁ|-ZÑû¶äÙ7ߥuÎaÞð#ÐlèÞ}½þ× Œâ½Syæ›pÊ,¯ôÏï2yÒLB :iœh4†Y¿Ö)­NζWî̵ž]ËÇß.$ì\v,a÷WðMK_6½û ósË‘D‰ó0´–DY¡ÎîÎWjØ8‚TÆö± z=ǤwƒqÇrsÿ¬Òã\y¹ NZÏÅÿ Â0Ëwß^|ô×G4D"3æc/Ðôå·¯Üul9KºdBçO`çüŠ>¬÷Ò\ü§æí“yrÆ14jx±Ï/Œøv'½Î"ÞšÈó‰ÕŒmƒ®¼ñÞ;†˜‚MšÊÛ½ßpLkî¶w1ã*¼Ô{ #f‡ðÆÄE$¾<×öÔyt8ÎÖdã”ð_ 3ð!žô}çÞ~¬)UO¾E¥Å¾J Y5Þ~að*FÏXIW{;]l®L\ˆ‰{øþ»ïYs¼Õš%DŒ[ÀÛuâÉvÏàà”‘¬”A²ši>~ ‹6|À¸ÁAtt8yöàãÕŸRBâ­…lc`>аÏKü÷Í Ür÷1mê,ÖG&Sû©iÌÝ W`ìÚ¯øàÉgèÿM’P¡Û\i€¯Ý2ò£{ðlÔ€Ú§Ÿ­šbI^[Ù2A‹¹Ü•Ç>ýœˆá/0`Z’$1äƒÉ8;ȨT2¶6øøôâ?¤0þy?j$§Gyæ•øº8 ÕTZ+ASac Øõaܘ…¼>´kÆ­bQ0לd •\"láxÞû+™³iCxçÓ÷ *ØÆÓç°%ºaãBÆ-à«—æRï¥qŒœžB‘8”9ƒè1ïúàd{ùô5:½ Ð`c§G«‘ñç¹?¾bÚ¨w67‹ri? DNKÃÞþŠ%G­±ÁÎV{õÅF¨ÐiU˜={0Üïw>ÿö¾œÍú÷£¡­ öXÀu ã^šË›½ûÐü¥1¸::ád߇·g'óêh? µx´ïÛ|ûVŽ­J@9ÎAƒ Hµ†òrà™üæ|’sdZ=1Œv¶¨Tö»¨UZ;\ÜÑ]3t8ŠI„Ì[ÄÊ… zôæ_¼ƒÁÝ|Î…ÑS¹8•Rë fî7 k5|6å-†vé†ÖVO«OÓÕ^ =¶¶Ú«þY§±½æÌé¦3²ó‡4éÓ»:8]8ú>É+Oueb÷0ºOYÆÇóžâ¥*ÛÜûM¾ãô¯ùÄ/¼3}Ñé&öŽZD÷O·ó•Ï*MZFi¹•öïoeÖ$s1)ч‰3'ñYÿ`>²˜±kÒƒ7&ÅÍÕ›«6Àtt!oL_M|–™}#Òkê6>{s OLH¯E4úŽ|¸é;Z`!;q/¿MIgØŠçw¯gWˆ-çu%î§U\plÁ€— ¸)é–ë¢ÍÿOH¬SGFÈó¬…[fÆ•Ù~“£#.Ÿ~Ijàc÷z((((((((((ü¢´´”u›v2jäP’’R8ŸHÏî]0Y­x¬ùí’yPZzõ&\_?ì—|H&åÔ©[á¾¾:È5þjb±ZÈÌÌÄÏ×ï¾×3që7lËò£ë°Q´pª^kÌiGYûËØ¼ô3Cýj¾nÕùŽ$z''WãÕòúònUþÖïvºsë2þ®—Íf3ÙÙÙøúúÖ€ÎV·wÖç7û›[ר:ýyíßçææ¢Ñhprrºoãèn´¾¨¸“É„‡»Ç=[’Ûÿ¦z%šL&rssñññy ãøNë&Iiiiøûû?@›|ge$]L¢Ní¿;„]âæØÝû8¼—v–””PZZЧ§ç}“²ÕTB¹Ù‚¤±Çáôï<{¨.?<Œ·£öžËNOOÇÝÝNW’­¾¹—¾—‘INN¦v@íÛ–_c^µjASèé4ÜF¤¤¤àããƒZ­¾‹r¸ãž´šrØöÙÓd¾´‹WU_þŸõÂØo ïlª¹Ðæú2ïÖ>È•¿îR3«çÛÿ¾–7þ¶†µ»ÇëÙêÕ¼zú÷àäR½gÖty7ÄRÉËyåÃ&ÎJ-3žÚjøÒ{Õ‰òòdv|³€Kžâ‰¾à¡®)Ýyï¡w[§;yÖÝ—]³:w/võäªá—oæ§}||ÉËË­¸.F«½á÷‚ ËrÅQ܈[Î`š9)ïÚ X NRÒC=Ǫ­          p[„ûž`ªùòïÏY7+3›´Ôø¹>Jm§ê¶ÆD^a>¥ù#0øÝŸ~¸7‰ wtw××ûúòns×ò=ëŽp›oþVyjPg«ÛÆ;ës¡Z5ªî¾ß#^¸çÑ«ñ-Ô¸õy˜ó9ÂC^vMÖOu߯áÃNÞ‘ŸùôÍ'>¬?='§ðêðŽxÕÀäoÍK¶úvæþz1¡f%,ü«Ôæ–½»Ø¨:~^FãII|…îFþg8ó=Ûkî"a-Ô}îÁ Vß·ßϸ" 562«_s¡Úz?äR½gÖty7ÄR:jn`òèW™´þB5}é½éx~'3ßÀÌÐ ,zÇkw׈U°qéý•…ûZvÍ»*¡ÆGF¶¥_þgPŽ€VPPPPPPPPPP¸ÍË•@¹©üL×,V«Y–1[,w3Ý'dœ û$"S9¦jö“k£¼ü­€¥¼œrAPÞ_,V 2÷_wú¡¯R!Š7™Íæ+wõýó&IÀb±"ŠâC'#³Åü@ìNu%顬ו~{ˆô«Zzhµ J÷Oedœ;½ÅŒ ·®~fµ`6™jd|K²„Élú×õý徑eù¡Óˬ¦QMÛsY–)7™P«îó^ MGÆýˆÕTNyµOŸhÌ+Ë›#šM˜¬¢((Ü)n1m]ÿËoAðÝM†:}™2ë1¦T8)Ìwñ>¤  pݲÒ ·#/7ï>í¨½H’„$Iäæä(T¨¶îˆ¢¨è )*&èªz‰Vyèd$IVÑúÐÕK–e$ùᵇ¹¹¹ÿÊñ!J"’øïõ3¢(RTX„Jõï;ðò¤ïê;¹¹¹]Ü$#SŸÿ¯‹çj’ÿk~P™VPPPPPPPPPP¸5²ü€î³¬YDQ$ãRÞÞÞŠ ª…U´’y)SÑ //Fƒ££ãCU¯’’ÊM帻¹?Tõ2[,äæä’„FôÞ—Ž \QSNôª¿KJ§˜vŒúoülBgþÂaI‹£[WžÝ$J³O³}ÑΪ}iÔ—¾Aþh±¶=‘Q\¢CÆö£™›-*Š9´x)¥ÈÚ@^Lõ¾E›oªÛzŠ“#YùG™j'ê¶ ¦¿Ö8SJRd(¡gÈBÆjr¦Ãð‘ôj¬ã诿²?§“ОÑ{ày“”åF±mÁbT¾´îÒ‡A¨.bÓî0Τ™Ð¨@­Ñ!5ìÍø~_üû JÕýN·kÛ,¦r$´ŒV½¢¿Ë!-åŸbÕ’\D…ÎÁƒ¶C_$¸–Hnâav¯!Q¥BöoË€>=iéYFÜîì;•H¾,a5»ôÂ3tò³E}fES9°n7Ç’²1‚ #ŠÞô|åYÚ¹© =„o~;‚Z# ÛºQ¯ëú:fp4Ý.hA¼ÄQc*¶~õiZÇÜ\Î÷@…ö¤°cñΔ#Ê*<>†¡¶‘̉jÀ›ƒë£ÂBQò)ö„äÓáù^ØœÝÉêõÇÈW ¸6 ¦_ÎÔ©‘“¹%2£÷°+ä©m0 ˆ^ÆÏ“W""KPwð[ o¢CÌ;Å–-½6«°‰r—âˆM×RÛ%•½ÛO’‹ŒÕìÄ#ƒ†Ð£¥÷]éTY^qgšuªîÊx3sîðyôþþøù8¢ªüò9´)™&ƒZ⌤³kÆRŽ öxùõàé§[b[)Çs[YsÓ úõêFC×p_„l¡ é­ñ¡]Ptÿ÷-H9œ>O¾¶øÜbÌæqô‡¥„Zýié*`âæ×¥2-ú4¹Æïý»0“yÖÈÞ­FRdÑlOó>èÞ¾·47I$Š3£Ù±d#±j?íÚ‡>þh®ŒÁ2bö'àܼÞn¶€PxˆŸ~‰ Ì*Ð{,Oµqª(ßTÈ…ÈUlÈ£ͣØ1±ª:öêKö>hÈæèÆíŒM§T”ðíõ#Ûù ­’¥'þdñ¾®‰üµpI¨°qªE»!Ïä%’sá»W†’¤R!´cPŸn4÷ÐÞ`i!ŸC›“i< %.‚d°{ÆRŽ v¸ûtã™g[WÆw7óñfâç±­ëo-GTäsô—åìÏ-Å hG1>èúcÈ­eœbÏòÎI’Õ†ºûÒ£™Äá½»‰J½ìŸõȺ3¦WsõUF‘é +æl!YÐ`ïÖŠa£{㔑rx ¿í8‹S£ŽôêÝ›fîªÊ·Œ3á ¸µª‡—k¥\ ŒÌýåfI& ÷XF´vD“Ø6c'U.ÔnÒ“ƒ› £„ÄÃ!lßEžàNûþƒèÚÚç:»}¹/s‰Ü˜F‹Á-¯è•õÂ6¾]~»ZµiÛï‚L$ aË®“ä î´í7€nøaS¥œ‚£KYq±9÷Ã]­ºE¼}MdKú‰0vï8B: 5ìÆs}:â冷l!G·&Q¿o \4*ÓYþ𻉋h°wiÉÐWúà‹‰¬ØlZo$ N:Ч_Úçrbë"N'S"JxwŽ‘üÑ«³0þ¶cv1VdPÐgìS´ª1#!cÉŒä·?íiÛ³AeÿR! §Ïp¡È—nkßzâ¦ô$þž‹o熸تþ™ƒÝÅLއ‡±÷du4Ǫ҃xŽ5Ëvq>5Ï.Ï3*(sôîNº2+©¶wǽU0Ýå0~ߟN£B¥Ñ!©ÕB!Æ8²UîÔoáý­‚“,_Nž­€$¶fø]¹ù…2Âv²sûiòŠ]9ù IDAT]©e¹_Sæ‚)žm»Kiß§žæ(Vléÿt[œïµàâãü¶´ˆz=㤾™¤ËÉŠ‰`÷Ñ"šõÊ#9œ‚®V}šÕs¹ÿ;@‹ŽñÛÒölŒ£ê~i£Hif4¡'ìèÕ·Ñ]¿¯ü_DÙ¬          ð`IãË÷·ã鎻« öúŠE¹4›“›¦ñæGsY"½"OÅ©ó)䨽ñ °õÛ"âÒ9½j§ µ8ºyá™ÆWKQt»g&rþÜD_üýU$lÙL¨1›ŒØ%ì‰ÍAåìM¾ڃµòHÌ샋xÿãO™½ù,&©”Œˆµ|·ä8’¿îŽöØTILdŦR»CKô ËØW€ÖÙÝùU|¹5 ã6²#Ó/wgl„v|·šÄÊ,Div hÔ´i$q!&ŽT|ð9»r¡'r!s7»S@ï莇—ž k~ãp¬eS±Û¿å­÷¿g…1°fFpÀ¸— m=Ü óÛö}ÄÜ|é{Þ¡_øxêÇ|¿!šÒ*ŸKe¹^ó)ó×âð‘”ëvòT$óÌñ;˜?ë}>ZFšID ”“¿þI ®¸»:¡OÙÅôå±7ì2g&òà6RÔõp/>Îò¡ÄAyìBvÆå¡qñCŸ°†¯¶Æ )áSÙ凋=yÇçûcù`ÉädÈBNZêâEá¡Ù™¤o!ìÄIŠìëâœÂÛŽm¼c_³ã¢'7Oä3òyhòݤy®k³µB_¯Óm©(ƒk·’æà‡Ÿ])1wò—1(%vç!NŸ+ÆÆËw7dÎîúš­çÁÞÕ¯ì=L]uâ†]¦‚3„®\Ì)kjÛp|ß6VÅ ÛÚáàè‚›«+Þu‘ã–±éØY¬ú’íIZœ\=qÏÜŧkNUÈX,'qϼõî7, OºÉ.­;EÆ·…ÝÙžÔòtDcŽgç¬Í¤›ò¸wˆ(“¾¾.”Ç1FFa¦˜S«ŸmÅÎÓ77gl55p3¥é<Û¶"\ÜÝpquÃÍÕŠ¢“Ëøìãúxâáî†2É{6pð B¹2*¬é ?Ì©„<,×ɹ&ÈáÐÜß9’£ÅÑÕKlß ±!mççìÉÌ…Dí˜Å®T+Åçö³õä;ùáç-q>6žÄóù5f’Õz'<ì 9~Œ¸4+rÎ~fþÂ%lqq÷ÀÓ+ÝÈŠèb„üã¬^Å•s¤R2â°7ä1gOrèLŽ>Þø8`\¾ð˜ìjín•ËòˆÚ2·>œÃÚ£•~)ýkþ€É3×s*³äÊç¥Ñkøvú|¾ì0y•¶ûÂîÏ ÍõÁÓAMÊá?™]·e ×Å¡ò÷ÆÍÑîÊDÓ?‰ Öac£¹å¸z(÷ÒZìœqv´»Í‚VnÒñÒ§xçíwèpcÛîwÑg‚;[=¶ÿ†¾¿%¥$?Îш4T>^¸»¹à`£½mÒ÷ú˜dçwë8W˜ÃéÐÅDYêá)§²™]©å€€˜|?|À»?n%.¿Â¹Ff¾¿‘d{'\Ý\qÔ_}¢¥\¢ «€æ\8»ëgÎHõðÙ±w+a™@Ö%äRªóÂÇ¿œ#?-cÿ…".¯H:yžvO°ÙÄîl/¼=P•ƲsÎV2L9¤Çæ´Ù__gJc"1Š¢ð:K[vz-ß}óŸÿyˆÜJû¸ç3Br½ñpÔ~d?žÊ¿‰n HiGX½ä&ÿ°è¬J‹—±íÉ:ìœÝpw×p~ÕRŽ\ß³r“N±>Ñ·î®®8ÚêPktØ_ãŸÿ`ÝÁs›«jZG]FœÚOg{ä ;ùnmPFòž5Ìù3ÁßwG;t•]m½¸Ÿ?æ¿Ï{?m'¾ÀT)—H¾#©ŽÎ¸¸ºâ @Ì âé(ñÃÏQ&ãÄVK¥0ñÆð» \dã¦=H*¾ÁkŸXÆ—_~È´UÇ+ûY¤üÌf>Ny€7ÎNØë%ÊŽq0ô(E.¨Rغe7ûŠ®”Sxx ¿nÛÊÊÇȱJ7·¯§,ž³ñ1$IÞøú9Qpx7£)Ìg73û»÷ùdé2-"E]ú'±*<]ì!a'3Ö\¹€œ¸ƒœ(óÁßOGöÑpvo<ƒ93Š —(ÔÖÂ×ßÂñEË +Òûq?™ŽN¸¸ºâæêˆ^¨Y[$¨´ØÙê®]ü£RcëàŒ›‹Íu1Ñuå99áh§«\¤VS¾£š¿“$$ÇFt{v<ŒèNcÛ8VN[…1[ÄÁÃg  ÒÛãæê‚‹« Î..dü‰u§-Ø;¸àêæ†›§7vå œ<} —žo3ñé.ÔuoÂÚ9–uëΡötàÖ7ÙçpüPNÍžfú“Ô—{ºöþvÓljlÙM‰N¶NÔòv¬æÎË[”­ÒbW)ë›úP©ŒÌ„Cüµt#á{#È38~ˆçsïRªå©UZìlïd¤|O§¹ˆyÑlÞ‘xEÞÊ~ã;CÙ¬          ð@IÞ³žò>ùrDÀµ¯™ÜkÕ¡ž{9Vºâ%Ò¦>ÁO´d §+Ž˜ñ=9…Ä‚dR¶Åà?u!Ï…:VŽ9AÁÚÞz§‹Î‡Ö½Ÿ£µ‡/ž*‰#Y_s²à ›×§ã>r OÖA›PʰYgÈéÓo½½GZxŸç| 9w:šzÏ}Ä«Ý5/²%Ä5ø>VÈñåx>÷6Ï´õAu®˜!sN“Û¯1óÎû­iáRÉIYHTÑpê:[ÈJÏ¡ð‚;-Ÿi€³—OO\°Rç܇œÊL#ïÿ±÷žáU”[Ü÷ov/齑H!@¨ 5ôÞ‘"M@T+bÇ^± TD©" ôÞ;„BH! !=Ù}ÏÌûaï„€å4ŸãyÞ'ÿëâCö0÷Üu­u¯Ú°)§7!Þ Ëç¯Qxw¸˜JwP ‚*(T«Q!syÿnY“3w$‘åA<ûq×o˜ˆ÷,bõûûñ>’ÎÑ.…Æ?†¤ ÎÕQ‹2wÍ.G2=;j(T”q|íV®y$ѵWSüPx‡êÏ6£PΩ͙$}÷ô@ö†¼tšª{ãð­í°ì£WÈ/IbÔS㈩ÜÍË‹2)(ÌàÚWùŽ˜É½í"P]­fȇ)í¯aË{&Ú}?™ÁF¸µÿMfm8Á­-gv1èÓñ´qfòãÒ_¹š~†c7®á êÂø{Ó(ÒòÀ¹Ü2‡‘þA _}1 Ôж„_žÅܵÁïDœü]Çcvú·{[¢ìúM².9éóéDÚRÅÞKÙzò*¤D#I´Ö›a½#kN_ϺEã·žfL¬,ëÙÓg/9#“iZûeÙ\8Ìào'Њ"v|±šã¿ž£jvGº nD7ÊYuøãyrò¹jâMfT5˜Ö±§ÿ®hN¼ ÄC|PçíÿI‰€ªáæ<Ûœ°áëÇWqÎÔŸŽÉƒx¨w4¡Àù%Ÿ±?·„*‚‘‰¡û„ ôNðü눋,AP;Æ<<š8]ÝÕì^µ‰êNϳ`b\­²µââ>Näg£Ñªn]P Ñ¨Q+]ñ¥w¯ó_ƒì[a¢Ý¦gèå PEÛ³fhÌ£C~âµ%h3ê[¶1ü‡îh·ÿ@Ay2Ó_Šp³°¥ò¯Š}Pàß8…>=ȾuOc!{>YÃõ€á<9½3!€…Tùy^^yŒ>Ó´èïPò (Tj´j%²>Œæ=’™>6(`ͬïÉÏ*ÄšðÏG·ª4øEhÁ¢®³' D‡„âë-€âöJ¨|"I óaÿe5²”Á¶OœtZuýT62·¾Ï›3p4ðåjÞMZß?ŸÑ Â]ôûï„ (ÐÅçÖóÙâÍä+bH6Š¡Ý¢ÐPÌþï¾ç×cW1+•(£zóðÔî44jþ¾~˪+ª0“ÁÞ"޼}œ»r‘Ë7:Þ÷MV¡7††svõw¬Ûs‘r)Œ¾<Ì †7X¹A¦¡ú;VîmÁý  ,aó's8’¥Ä;(•IO ú`wü+ûH–HêÒž cÛþSÑ>Â2ÉY¾šþ {/†"aÐÂq´v\âûo6sùDýÂ!ƒh„§§Apñ¼¢?Qž:‘—Æ' ©³£$¬Öëäñ%¸cgŽ„1äÝq´°¥³dÉ.®œ¾F´$úïL¨¿-üöÎær©™ö²'Já'6ÓrŠEÙ æÌoF‚¬7ñÍ3?qÎÔ‡ö­†ðPß(B€³‹qèz)Õ€W1*}¢H õe凉&“­;é¸ò>ú«\Ýþ./oºÍ[‘sp®x6¾+ ÀHth0ÞÞJ¨‰hS5cèÌ$šú¹øµ)õ-òµÐ¼p?ß|•K»9ãh¦/¢š aò½îˆ*OKZ->ÈèÞMñ4ÖUÍWpz[6-W/`à<ÿ9c¥SÚOGVV6‰“žã¾de]É…GBƒððÔ€ÂéU¸ã'Ê;LfÁ¸8·“†Œ¥ò,‡ÔÒë—‰¤a!cÛ,ýñç†:©RD3fÆ8"¸ÀÍ—v½1Êã•o4I¡g9šížK‡Ä•C;ññOõö®•O2·æP*E2zÆx"É dÁV ro!E{¢Èü‰ÏŽYiÕ¹—®ijÛ¿[Þþíö ¡ËH’G†à‹ÄÞgß"«´ +àåÓ€Ä0?v5‚àšÃ­WI^ù ƒÀÅ/±ð4U#™2š'úÄÒ@WÖÁ–Ì3d«zÑûÞVøúy¢ÇJÀá9\-­Æ‰€RÝ’ÑÓ¦Òì÷ºd.æä¦Å,Ù{ •“Ä.Ã?"’3?ÁӂΩè(áÐÂCèÇö$:5ïüx³Í‰¬L`ò‹'ˆ¢ƒÃ«g³~¯‚€˜$FN¾oS9ņ;Œ[2…lYü ».ßB´çqªª²REÙÁE¼²& gKîn”"UÙ›ùð­_(ÔøÐ8uïMâÚáã\8}ŠìkY„~„f…»Ø°ÿñã0¼…7!ƒ¥ó—pÖ"¢6ôáñWzcÌ?Ä[E"Õ+X}XMxb[î™4–8 ˆØ­$Àtx7y!-™1µ/1u¯`Mú2©‰ûs:oýzœ±#âðõ‹cF‹š»¡Š²êÚ$è¨8ku-@ÌbçûÐõH—„€ÛQŸÆ8MìÆÆLãGµBwˆo¶;‰PýÈÚÃj4kÏè©£ÐÜÄ–­ÛÈò=Í©¼<2%™ÂÍÙ•žCµÜ‘‡ßC¼ý$K×iHôø†t`꼬ÍÇ£réR<ý†ô§ð‡×¸Ú—q÷ '¦ü$?®\ËþÌJd)„>S§Ò¯E —WýJþõ<^}ø0Iƒ‡Pìår¬4ã£ù˸"x3”Gf¶¢ìâI/D0megº’Ä£5´#Á×¶³èÇídZÄHîyj6iz¡VÞ¢ôK>¾D˹÷Ѫ†¸È2ÂHJP¢2fõ¹öLKR¡ÖjP©ô¨)d˧߰+#“3’{žŸCšöKÖË ŸØßòã|ù~1_ê‹_Å No½HØÈžD‚XÌùS׸š™N^ö |Ó¦0¦£À¶Ï–²ãÂuªÅHF<7—n*¡V¦Äv”Ÿü«*5^þm™9~-iæ 8o‘{ë:‚i¤ô$00®qYNX º &ÄûY8úÙœºœ°÷Ÿ¢‡Çj2A©#¤U?†¥Åa´‰@5Õ•J[€+²É'†Ä2¦J3ˆ×Ù³r'óÍ8Ý&cl£†¶!@t{gÛ«ÉÚû ;Õ™5å>ÚEê@­GA%wï`ÏÑl*e—ZJ”D×!iÄxhQ þ x}<×|€iÓâÑ‹7»ß]iÐ̘ª$kËøêE|•€½"‹œ›áøé®u‰iMÛŒëäÊ$jÑÇ´ éù .‹Ìe ñsi(i ñÇ+?ƒ+å^èq{ß%’œ_I©í×ócñr¸üìÚÐú|Yÿ†²ýÎ1+þ`o+ð oB—{š°qÜdîŸö [sý8¨ ¡T^bíÛ2~Êd^X{UTkP©Ü }gú…_&³´î·EœŽj*Kõ âb !Ÿ›òm¥pÕÁwØãÙ†®‰>ØKÔhÔî6é–Áå @¡&°y?FöjŠGÍ™ûw• A.ã/HXªŠÈóoFœŸCP4Ú‹yoæ,~²6¡çÄnø#§øæ™iLœ<™[r°ÿ9ù”ZŒ·¶ðê´)L›1¦MaÊ«[(*=įû£r_܆Hï„fø;Ï!Ê;Öù¯Š5H¢M÷l–ÍÇÄoÒOš6dSgÑmџΣ»NÂV|–ë·qÕ¾ªJ8wì=&OŸÆãïω’º\¥†?·&-¡!wÔ ¼2ŠË÷MeÚô‡xriãgvÁyã8;×ì`ÓâG™6e2¯|ó 9vQø5"u`7šz¢”ÀMvn8Ë¥0súLh ´r%å%·Ü '<¦1qÊ<”Í»Ñ, 'LaÚÔO±6hFJ³ˆßD÷ë¢Ú3dX*Á‚ë\8élYy˜£kæ3cÚTžxícNYÔ4îÚ‰f¡%|2a S§~LUHS:´‰AÎÚÈ×éG}H×ðÌ–l4¥gÙºôc.øŽft¯–x–œeéæÇ…ä õ»ý›ãÖižÞƒªÕpš#ß–Àyƒk~áXvö»Ú’-N$Ù KÑ)¶~û)~£Ý+mÑ–nÎÆ+6†È–É´hד‘ƒ#¹ºôCvæzѪ÷hºúígÁºtäÊö~1ŸíöÞôí“€gñv}»sB/L'yÿ“ÍhZtDWpŠvä#ùGѺë`ÆŒŸÄ´.z~=v†ì ' âáíÛ„ö½ûÑÑÿ:[¶fPE«]@Nì0uoƒ±h5ïÊÆ‘µ?o£*f,c»D’{ú0›O–#ÅÓ¥Ï0F»©)¾Ø–ŽÍ⬹ò<7ýÂeó]l٠ƨ¶¤&ù`;¾Œ¼rÔ‚­G¿ÜCy`2ý'Lbò`/¶-ÛÇ-M ?;@.P|ô{Òoœf÷MpÚ³9~àVîg%ÿÈr~ÞyC‹~¤$Y8øånJ}›Óâd¦ öaÇ÷û¸e¶#£@¡ÈdÝœ£DLËØ‘CHkRƪ¥g°*³—qªpæ²ÿr:G+$||bHí9”1ãïcZ‰ï÷ž§ªì‡¿žÏ¯•èÑ»/½C y÷«ÃTi¼‰nšHPHsºöèD\@½YóŸE}p=êQzÔ£õ¨G=êQÿ"Š(ÊoÉ€§F’ ‹Xr·³æÉÄ9pцÝ!" uUx®¾ß\AUÃî´ˆ@Þõ:… CßRdçË/òÓµû¹ÿ|Yv+PÎ}·Žlk4÷´MÀ¢ÌDªÍ1fij܄Y¾ý†Íî@4H8ìfº3zÖ0bʲ8¾ë2›–§3mR3œ'ö¢kGƒp±¶ åÕ˜ïPiåÛǶÒhþk4l…7(ºyž&¨ÓO3Ç?^E±wkÒ’¢ÜŠ)5ÑÝÆ3¥õ Ž~½–ã±³èâ—‚Z²c³×ÌŸA’Ûˆ¢Å`µã°Z0«Û1÷‹4Ñ~hê4!ÙœHîÄZ¶ê+üúÙ7,«8ÀñeJŠK)Ó&cl0…Ï÷-¥)³™Ü4Ÿ_{ŸMùÓÕ’;bªBÂO‹ÞêÀi‘TRuÑãYfÂ$+PPÇX§Ób(¯Æ,(…šš^*4Õ6JPÕ¦Óa¬²buÊJ ©F«¦4àQYõ›ËÿwÙ¥ ¿u÷Þ~úW}Þžêûñ8“Të–ïÚǹФFøÑvòt‚z–áÐg³íÕlˆœÌ=o¶å£ùSY':@悆Ã[Ðó©9ÄÞ¬BÒe²áõ¯Ù9—~ ^ÿ™’Brb7ÆÑcp+y È2²g Þ¦ÜltGD ¢ùŸ1òÔ®ó_)3ŸÁãš©p7'¼zð³,‡Ò#‚¾ÃÛóòºXž™€_\ƽø6Ý 9¼ì>u¶äÉÆÒ±þ¯%Ï ÁdÂ쀷Qy—¡W‡WµéÏŠB…Îz‘‹¿g×FoÔ^i?p(ýSüëµmE;v‡„,ܵ6;N±®ÀýÜî¬ó›¥Rt+Î* úŠ2JÌÞ½{sïÌ~D•œcÇÆlõŽdtÿØ9úÿ/… 8LݰïׇY:,úrëÍ_¸úë6²nùß­£ú6Ac—ùeWÎT'û¯Ú¿J¥¥$Ïh’’ú0 GSô&+kžÍÁl2Ò¼K"~ë+Hëß—ˆŠõ– #Ýu«mwù—,Rt½)½žDS½ ¶ðÍœ5$üçIÇ IDATÐ{=Î[ƒÇð·GµŠˆ¤á´±\媽œ¦cg >ø?^º@/k'~·p©í6­•årª+:2â¡{iR}‹œSGù郓„ÌtRj-&áÞèŽ,bÅÅ ô“:seûV¬-Ä{õtr9×ò­LŸ§âÓW*P+oÿ™ïÓ(‘†p|ý1Ž  gZŒËAÔæ@¬•µ˜/|GE‡¹Ljr…uoÁ–‚i kV#:É;°•£G´Û±Îù¨d÷ó?àHFóÞ@#Æ~þ]-vDβþ…÷8°ì:º7¥ Ò¢±ç°iáO)-\³…Ð#ºcº&ñæJ² àl:Iý{Ò0ØZâô«K9ZiE®¼FvhnuP¡ ï@ßAiÄa"ÂPEÆþ<´:=bÙI¾þd1?Ÿ(¥Qïv˜Ï„ÑkÚ@· Ea¶±v[ Äjçð ‹IeĪ" Úr=¶ {—c«8†¯£’ë9*š÷H#6<‚ø˜nôRÍé;ˆMîH·ÆV=sgþ)6ç·æÞçú“êö°Ël|úWÒ?ôÆ·QWúõïL,M1ba]n>Rk†rŠóChÞµ+-ÚFã]²ƒ/_]Aâ—ãhí¡uÉeXúUFüÒ¼3“{*s9 Œ˜Ôqp’m2~ü ʰp &®)õx7éJÿþ‰&decn)ƱD'$Ùƒ>-L,ZI«ýÑ1E›l˜¶‡3mƒP†¥Ð£_Úy‚5ó$Ƙvôé;Y½Cé:¤+~öåìÌ/F¡Œ¥âü>Vl8ƒÙ^È9¥ƒë½:Ñ8© ¾~ÞtéןF•kÐjœpë<»*»0kf7°£Éåí%»È¼/„ÈfMØ»A’?WoîÂQZ… #oÏ&ÖŸ¼ŽÃœK¦1œ‚4£{N$„мþiG~CØ%ìJ’Z¶$ûôöïÍ@4hÑTpæô¶_«Æä…ÖžÇÙŒô˜9)›È-ᢖn3BÙ÷Kƒ»s#"Öu'w·+Èm݆¡ZâÍ%vŸÜ̆ëÕƒ½ÑÙó8›ÑŠ^ƒ’%Bñy¶_C‘í$>¢ˆµ¼„…Ž1÷õ"±é¶µÐ­Ao ­Ò£ÐÜ¢ðÈ6VÒǽ7:ù#„´!­Ïº и€% r±’Btr!§è•Úî_r.üõàzÔ£õ¨G=êQzÔ£ÿEˆˆDÐ*µ=-©¹—·.áœi áÆßC šC}Êu+†ŒêD˜õ( ¶ÆÓknR‚t´øÊ—o|ÊÖ^oÓ;èÔF `çâºelÍð¦ûÌþÄÍ>›št¢¶›ä5 ¥Ç8Ë¢½gí“’ §^¦츔NÍpæÊê}ñQ ØmJT5mZn’×8Œþµ†Œs,¾ÓÏ2ª™ËxSUU¹ÈF‘5ãµpòë/ÙWÙˆ~Ó»c¬MvJ`“VÒ óºŽ¾2‹.þ6×nC§¤rrÊ(ò÷ ÂC‹ O6ûÓ•Òx7æžKèfS pqjÿ!NW$Ñ=5ž½pÇÌþæšYº“O¶wæþ…í‰S:i´Ð‡Ÿ}ÌÁ´éàqgÿdYåV•Sìg Ü[‡Ú®D©p§µq½q(ý"N4îK¬Œ\VÊÍÆá9œÕîßMT©eÄP¼rJ°¹cs‘Š)ˆð£©N@v¨QÕ¤*+¿I^lÄ]QCÿþÞvÞµ·¯lYÄîC2×sû1ý¹ÖC€ÏjNîÿ™¬ø{ˆhŒO@ ªçJµß´áÌòkI™]δ›çÞÕ­ºóD(Q¤N˜Ip‡bÅ-öm9C…Á×9e{¿$=*‘‰M¢1 ÄÐq$³ýS¨p h«wñüûþ n;Éâ±?àóô<îIÐÔöWçF“an¾ËO¹'¹^™Lrt¾ÑM) y‚›6ÒšqU–pêBhÚ¶mBë1ŒÐ¬_ÈǪ¬ó¥…,ƒ²Ž±SéÚ²üª¨ŒŒ€.(‰ÖA€-†gâ‚ùjú¯¤Œ£™ ãܭʧ֡ÐzÑ .•qZ„ ~ã0ÙG3iÞ ù_—FWPJ2rpÁ9;ÉÊïNóïÛémÅ\kÆPQBTªo+“J…At`Ó„Ôg*÷ øñ“hžêþËj'Ù‰C¬¡"NS%¥1!ø;”x$Ñ1©$@îç+¹B±KäßD"H¢S*¸¡+“…Ò€ª338åNZ€§ËˆnwüÅŽÿ!$ QŒ¿ÑmäWá¡R£dp8‘±;e¨0a J$Jé¢ûZ<ŠŠ)…¿È ý‰JìKó?³·aöêDÚ9XïÑ„´ ýéÚ)…ME ޳ËE¨—t›ƒy¸í]"Zï@¼+Ëþ Ç ¿2JŒþQ$µD”Ç39î,Å$‚ïŸz ÔÈ$ó“h¤ø´g~Z¡•ƒ|î0ÄÞ†‡=„viIU)€ .¬z“³e#‰Ò”rãŠÍÆë°_‘$µ›ÏWS®ÀÛÛ¹œí/}ÀùؾŒ”D€ZÌ\>ëE«´:_•O°xÂJüŸy†áñux‹O8q>áòßà§ü³T´ ÀûÏÆëÄ!Ռω³ºœ’Ø}pƒoÓè?fEj‚âÛ„LõºÌšEÇÖ!Ä'×¼«@k %>5 ()bûÅ|Ê즩˟]ÆË;Ø^Ñ>ÝÓµ£ÉDø³~õ"~éÙ_¿:$%BS´·–²¿ø…b±ÊßÊ"{-ÒºÐNÄŵos¾lƒGÎ`~Óœ Y§Žq4ÛÊ3Ù\×ôeR¿vz½†çÇËÈ8sŽF=“ñûÓ"Ò2 U,íZ´¢壤âÛY³½*u?&ôo‡±w^‹¾ãâá3t¼€EieXDšŠÝ¼öi£'¤à'üi%OYAŒA I jˆêܯl,ˆ§ÌƒgÝ»ƒ „¢­,Ú٧ЈV4 ðcÍwŸp¤ã³¤%nžþ™UßüÄ :†Ô °’=o|Èéà4F iIÀ@D‹VngƒH®z=KžwŽq …G×ðñg™´œó2íôÙìÚq ky4èA'ç/ÈUûøùR)ý# ’Oòá”op™Ä#±hÊwóÆR+fAÒ;šɉ¬Öâ©P #!‹¾‰ô÷(­†€Ÿ&‹Ïó+ð÷ÑԈЂMév^{l^SçòDˆ„5_lª¦RRã—:…ûm‹Úä@<ñ.eÛætD½2Z¯üu(•x¨Ô¨Ì&Ì~ DùH€µo(þ·ÎsK€Ú»!A¢ˆ Òà!(îZ7'v›±É)tjš(º­}Ëù#iÙÄe¾°îEn úˆu,wö’kœ9·C¯÷Iþ½Ë^D5õúÇDP¡Bíêâ¡¢ˆ Öà¡ QqŠN+©64 )À]_Ù;˜Àâ+”Š~È^±„{ºï&(¼üðÄN™Öˆ¯—/z 2à'_cÇ÷;8˜åÇàÇ_ 1ÇY´¬…Ó ¢ˆ¬Ñ!Þ.çk¶b L¤{@z£Æ¢|JÕ1xx‡¸äv´Îó¬zóWDj½)I6±6?ƒ‚‹qôœÑ†›_nâBOÛ¾ãüIj¼õ¾.g9K%Á­Ú·ÉMüœ2 E±^ù˜ÌØÆðäSñ°‰È¨Ðƒ ÈØ(¸3?³Ë˵£)íý ÙòÎgU$2fî¢ÄC¼û5HN'¢G4áÞNdÔ Òâ£R2¢(" Îz…Ê¿„úXézÔ£õ¨G=êQzÔ£ÿE¤Úu_m«r]HÊ.s6+€ŽÒ€A¯E£1¸ ¹lz÷#¨Û0êÑÄ{/ g6qà’+†ÃÃßDÆQ%š ?þª@G¾_ÌÚó¾ ˜?‘6Á –V©'È,rçI<µ“ýÁD îúÃh:”JøùE»†õ]ʟ⼊ªýðã:§ŠýñôÇŸ†´èp˜‹V×eëäöG†)(àÖæüŽ7ßabjÛs¹’[Eù\Ó´§™'À v.þ˜måöäšù»ê¡•ïYÎÎüšœkœß‚ÀïÝð  ÔJ<‰Žµ#{Ÿ¥ 7ãj:o?4Îã¼?u>+Ò˰×}ݨE¥Ôb¥‘FI4mšHB‹Db„IŒþ&[¾ÍÂ¥)”ë(îŒ:TJ-5øéÑ[Íî«*‚Œ&.S£÷(<°‚ןÚ@!~DFÚÿ$×%àÆENR†NtJ=Ê¥›f×:œÜÎÁ4 •”Îk8˜éj³èôNNÅ$ÐÌ3œð¦[I¯LE\,¾B‰*ò)“s¨È8Âao^ÊÎt캙ã™.£¸ùèŽÄ6$êßP·ÿf̤Òþî½Dp„‰ê}[8Y  AQa£°À€gõ öL'Ë Ã™ z/5z›$’”GþúQôèH2Ö쟘?q)™î«¼ÆB\ó$"”%Ü,Ì% )Þ)žÅúJ·kCL¨Æ­$ò A|"IIMÈûi%ª^ˆ¬³g< ZTj½[!ÿï>¥ü_˜?z Qo¿ÃØ6¥×Hßó+—ÜÚÊ¢æŠ üoîâ×Ó×q%½Ì±‹>ø(kË,þûjí]qÊŽÜ;*ù#–‘W£.³X8·æ{r<µ(NŸáZÍÿÍÏ✥ÙÃÚÊbµë¬ÿ ’ »x囓®³§ ¡¡•þžµÆ\Yo¯ƒXÌ™£›X¶«PãéA`¸Y«ù×#kÿ Žjr«Š)[0j¤‚ï¾ÝÄKÍÃ\– {…Òžˆ ÀïèNN×.¼kWOs=0ˆ´ø„ÇŸ0„—žnIÆòå|s¢ð_ßOJ½•Æà¦“nMªVF£Eo4ÖÖµÀà¢ÓF…€BÙ†ÖWsèºëÑ ¸Õ‚Öà·‘×*ÈË1QíðÀðwkÅdµ:ôz–ý+9ä*npQ]²wz–ß 4« €‡µBøŸJL,Èbg ù·ÔC–!<” ãï±úš‹vßÌ:NvZ;þÒžh #I½“{ЍNl‰O|L).´Ø8‘¤¤f$%† 3jQHNnÇ’Ë hÜ‘àjn^8HF×”:u×á®bœÿsÊ.qöø.ŽTr%Ó‰Så…ñÏŒ¿wÈ$hPNxüv.TÕ…\,½FUpÐí(yƒµJ‹Á¨ZоÇ/|¿)ßõÌ”Á‰Ì‚|ÁVp†cbR¼ÁÃ'ˆ F»¸d*ò8_Y€9( WYñü\h<ñÓºÒ°&²éÛªzÐ>Jdœy™ï:¢ßy›1­ü]t¯8‡³{·€ÈÍlk™'Ãïñi-J…£R@ -m:¯áP®k/œÛÏ…˜ü©âÜÏ‹Yðò\뤆×éP«µè®z¸e;–²½¨fds~_àÌYǼñ¯±Ï$ ØŠÈ;¶†_Šª(Ì.§Øæ¯æ÷ø3Õ»yåÞEµI Aut5ûr]òB ¶šÌ¾„ćà¶ž_¯˜¸™[A™ÅóöúthT FL‡Y¶±Àõ¬ê'.¸"U4nÞŒ„y'ãÝ=•ðŠL®>I¶ ¨d*²$L6JÅÌ¥[FÔèZ˜²‚ž[ ó¸ZB>‡¼CÇÉ’Td;©4©ð '6>‰¤¦ñ4Ij€§G ƒÜ²þmyÛ%‡T‘³g9¯ÏÛH àÈ>ˉc‡ÈÀÊõójpÐÔ°zw¿ :iQ[Ížl×yÒW“yRƒÑ(r}÷R}}“ί?F÷h½Û(’Åš 9Òƒ±÷¢‘—ÛùðÜ–œw·_}ŽC—É©á{NÌV3ÕÁ]Õ6–˜è`$ÓuŠñ¡} +e{f‡:†ÿ°Þà¢Ô‚ÚÑ")‘(Óe²jÊ)ÈR­­ðÇ3YB@Oht"-š%Ò .‘èüt®\³¸Þ;sˆsv’5Ÿ‹B ÷ôL¢iRs‚+/‘¥Ò¢óÕb¸´‡[Áñ4MjF³¦ÑFø vÖɰ#KµNE²$"EDqúCVŸq»žÙÉéníIuŠˆ²ø'dPœr}çÎR"¹æõô%¼|Ü<«j_,Ifü¬ø:<ÌÂÍsÇ9–žÊÀÁ¿s©QÎÓ,~äy¾=œ_'C“›îÕœm(e¤:Bîvâ“%P†–÷3{ޏxjú^ŽvH¢¥FBï,Ró¾ìz·¦-ÁYÁ ›'aÉ]é•KC£•b{%ADéù”è” v2,˜Àcï³6ßµÏósNq­K’NÈîoºG”ö²ìa4ï”F§æ‰¦ˆ<ÙV'¸€\°‰y£^`GùïÉ2"Ц-~e·8¿õ%„ÜÜGn…?MšÒ,)‰¦M#ð¢:¥a[ö§Úu¡‘&†Ôæ8â ¶±â7íÊ5s«&°è¹åÞ4Šw·—‚N­pe݉%äâ*2t.žÛ,)FÑ~¨ÐD¬c;ŽWa‹o–›\µŸ’FZ‹F4T—‘/Zp®:òµÉä:ûÍjÁr©˜ê?¸–ý¯òè¿õÀõ¨G=êQzÔ£õ¨G=þ›jJº½ô9Ùõ§Ë«jôº$¦}ý­©â:[?{ŒÖ¸4÷§®OgVÿN¦ÿÂÆ‹?³a¥Ùj"bì;¼ÿþý¼õøHº?oBtD1þ³Oèô'_• r8qd?1³eç§ÖjúÍã­ÙüøË %—{k]Ó ƒÆuñ½¾ê!Æ|p§S`ЈeL~ë{†NûO¥RèCbÚhf½ÐŸÌ5ä{êiÙ0Ðê±§89áq¾X@¹µ-oèˆNy;dÛµóìx /âDåIï©Ïйú švð¤k=¾uékøeÃÛÈV!£Þfqª…Ïg åÅb+ˆfºÌÙÀ¼»B8%s1—ÌdîwÙ¤_ÁcÏ=D«+ X’B:ÿIZ56€¥‚¼ËÙ(«Èîð“Ÿf3úÝÃXíƒ-aÂ;븯&HXtb·Û°ÚEÀJiÞ5ò¬Í\õ¸Ë‘yèÍU\¸aeo§÷øævž^2–‡&uc¹F@«u­sKL\)¿EîU f ¦}O’2?âö)\%–OG„·Š&Ï?ÏáþCèi1a5wâÅÝÿ­}ü›1¿±›'^ü‚«×ÙÛ_}@߈RÌHç©íyYåI£ÔQÌ|¾?Aعá}^zðì$Üû6Ï%Fb¸ò=£_ÆÍ’2¢Æ~ÄÇ÷5F@F²”’“QâRZÙŠ9³ê5øè>MÚ3æáùLlmDÎ-ûˆÃ>ñÜŸçŽÚ2–2lî”UU=îc>™àJ†,Û«9½ôAf|y€a×»òà oÒ;ì_™œËÙ–s™÷áÉŽ&8ž‘Óç’ty ³Ÿ| ­ÊNx§ Ìš=Çøùñ§y÷DV§•|Mç@Ÿÿ\A¡Ô ÎYÁìA‹A«B@ÂicÖòÅÜ3ãÞäaFt^‚A} ÷¾Äýð»ø³S:P­S`56gÌìGÐÊ¥Œ¼{¼¾“y]ÿ™7½w š_žÆÐŘeÙÉ„Ï?s9"È K¬VwªM¥ê*μÕÅ/ê¬:’GÍdvøÛѹÿ6*8ýã"Þ{ï'2ð¥ÃÔythHHÒË,âefêIYµˆì4ÓyÎ:õA¥mÀcï^ä‘”Nª ßèÕxø´aÆâ7éä á°^|øX )E¾4ïs³ïIàHÿž§ÞZÂË&~Ú¶^Ï­gÞ³_’óø}ôøÀ$Æ2éëé€[›_cà [ñ ¡÷Œ·y²S˜GÑ1k!sRÛS‰/&>άžÍïÊ-Pºùî}k7å&™Á½>aô»Û˜üÔ \y8…öùž„7îÉÃo?M7ïLð÷¿¹ž«7íŒìø>CßÙųŸ`ú˜4¾5¨0z¶bú’·I2å²aïJ6.eǰըl&¼;ÝÏ£=¼8~~ ;7læ§oµHV‘÷}Æ’¾œšÒ‡î;’h¦ÛË{èPÓ…'ÁRiR<öõ„6 Ä3 …±N€O›®}~•Ö ÄäVC™Ýÿ[,6HìÕ™V'¢$cµ*o;ЈNì6¢Ó‰Ý~wêñX¦<–ÌÔWgðùså$õl‡Wµ)l"“z0ªûר ⺦ÑÐþý˜4ýïÍãᾠȯeø‚÷èà’bÖ=ý Å÷}GoÕm>R•Œ5?¬Ä0æ[šý!»©&ÿJž•¶; ´Eë™yÏœ²)18‡yïúâ¨MQ.ãt:±;D@Âé°»þÃøðÆ/1øóªìÉÌ\Ù_Ýf,–:©â%V«+µ$ÚÝwíVLšúµ<Í'¯!å MÚ%`®hŽ^´±?,âéž??z$f‹?¨;óäÂtf ëÌ:þaÃxyy[¿¬ÄVÓ_YÂa3!yôeHÛ¯yûù>¼Z¬!!­Úª ”’‹UDBG Ù¹Ù”9ï”Á%§»½ÆTN—þ½Ù˜u’›¥Q<òʼ9ûy.º…SéÀ}?KM&.¦1öÝ[I}(°Ü@díŽ0~šz'¿w:Ø•5³Ÿ—¦òÖS üùMœJ;–èé,AÙêDTtâéO‡1ýž.|mT"+=ˆìù$Ÿ?Õ}h u Š,3 @ úµþ…×ßÄ{OjˆïÔ¹ª5jÉyçzȬWéØ>t Űa{˜üâëô¯ØÏ¦­Z†/èDæ'kÉölư‰al}t-Š1ýé™Úðï-óñ?£}ùÿ r¢¢d²À`üŠn{˜Ú<=ñyñUn¤öuƒ¯G=êQzÔ£õ¨G=þßÙlf݆­Œ=€ÜÜ<²²sèÞµ6§“€5_¡^ò)˜oW©U„…c\2Ÿ"¬D5Œâ¯9’±›«±‰€ Bï¡w~$63»«*§B¥A«Qâ´[q8k\Ôe­£¬& .½³­§áŽh8‡ÓAQQáaᵊi»Í‚ÍQ§ƒN‰h¶`EdYÁK_k„’ìfL6Ñ}kÐ<ÐN¬f3vQ@¥ÑaЩ¹¹çmÖäÒaÀ$’ý]ã°›ÍØD 5OW›’ÃÝž» ‚R£ä2{Ö¾…©ÿwŒk HNl6«+mfíxõU`¶Z]ÞÐ2¨žè”¿UÊ;mfÌîù”*t= ‡‹ÅŽˆ Q‡Z©@À‰Õä@¡Óºÿv÷Ï*ÖÞ5zO´Ê:m;ˆ’­FÀn³!¡F£uEÒÊ¢³ÕžT–Qé½Ð«˜«¬.ÏõÚuv))lv­AÑaÃêîŸÖ C£R a7[°‰âs"Ö*³«v B‹Ñ¨AH’kµ' TZz­ §ÍŠÕæ@BÎC‹F¡p­É„MPcðÔÝQSÓn·S\\LXØŸ[A;fOô*~goËH¢³É†„kßètjHØmVl6w ³5 IDAT•Þˆ^­DìT›mȲŒRçA­pŠX,’+z É¥ˆ²:”j´z=n¿D»›¬B§Qߎ¨mTYì ƒRg¬mdD›“]rí… ­A_¸PZZŠJ¥ÂËë§ß“ìfLöÛû…NJ´a²:\gZ£C¯Ó¸Æn±`sJȲŒÚàN¥ø§©LUu6›ÍYsDlf+v±®šPÖhD£¨³ÇÁ•òXkÀ V,²² F§×¢q‡?ýþ:ÿ~Om6¥¥¥„†þã¤âN› K­‚W‰ÖÃP[[–Xì ×©]gSr`³XpHÈ ÒêÑiUÿ´Z’$òó󉈈ø -íV¬V" Ôz=:µ;‚h¥Úâ F¢6Ô¡9²S•I\ó¨ÖcÐ*p:ˆ²­FY«D5[ì½+:äwú–{-—¨È¨;èX]> ¨Ôèô:T’‹ÕŠSt­ƒRgD¯Q‚ÓBµÕY3w?E,U&(”: µ‹NˆlV Qø—çð÷`2™0›ÍþÛ¼PØz ÉiÅl¶#¡D­Ó¡Ó¸ÖBEœ %šóŸÑ{mðÿÇÞyÇGQ­û™™í»é½'„„®4‘¢("ˆ»(ê•ëUìz{ïbE)"*¨ˆ"Hï%”HHï}ûîÌüþH $^Û÷ª¿;Ï»ŸÝ™sÞóž÷}ÏyOaæ” H þýéÿÒÒRÂÂÂ0~í^rŸO>¹;J’šû‹·[AoÔ# ~œ.0™õÍ»Ü|8íMþ@MX¬úß%{•ÂÂBÛê³Ï‡×/`lyo+;‹ ¢Š¬& ¯Œ&"BSÙnä߬7c3éN´Ïz‹ÕëCVEôF¿Ë‡ª×£oÇn®Óÿ ü^nwÓ¤y“~·•qQQ111H’ÔÜ=ÛÆ$z³£àÇÕìOõF&£®Ù&xqº=ÈJs47ù'Ÿ»·¯ÉŽ™,H'ëß¾€=ç¬ãî>-zîÃípão­Û²§Çƒ,ŸŒwôd¿3”¯»¯äÑ‘M mN÷-“ ÜìÑhÆl<]§Ô샻Ù>œÔEÙçÅë1˜ M1ìÃév·­¯$cw¹Q•¶vQU¼¸\2z«=*ŠßÓÜ—AÒ1™Hùg|8í2›©)ÎiÕWu˜­Mñªøp»Zì—édû¶´‹ (­ÚÅÕHSÕ›Ú¥©\nìN‚$a0Y›c¼&Ýq¹}¨§úÖæwápù›bD –Œ’‚×aÇ-7ß·n1"µÑE½ÉŒÑpêò¾6ö¡½x[§xñøZú²‚×ãÂíi ‚uFË û­Ên®æ{cU%³Ô*þ ¬6#B›˜DAöûñ©LÂQÏÙ€#n7\Òn:qùü(Š„ÉfÁÐ| ³×éÀo°bÑ¢ªúñº<`´¶o@öâÙìNdøU£I–dÜ/‚©).ZËÂîFšby³EÂçS«2ú[Æ,^?ˆ: º¦1€ÇéÂÛzܧúpºO꣪øpyÀlÖ¡Ê><~³QÄïó#£C/ÉM1™ ’^€„Á¨C'Š(>·r²ÍzDÕ×$SɄŢCõûðÉ"ÆæÅŠ^¯$=:šúŽ_V›ÚXÕa2‚ÛÃÉg9üM¶Fhåûd>ËóšÇK?¢NA¢¹ÎMýGX­F$d„2Y[•§‚¬-˜£º‘v²‹í´ú‰z m^ä¦8'œm#¹ø®–é0šmíîì³Zõÿ¡’":£ÀSÿ¬7aÕ›Ú©‡î?”ï”gë '£ùñš°ZO}‡Ëilž$Ôü,µ[>ƒÅÚŽŽH˜NÓQÔc <ý]:£Û)em:>9àwŸÛ~iG·DÉˆí´†1-NûÚ€ÍvzéQÅzò¿’ÁB`;• æÓW»KFlÆvû¢d´ž®3¿öû ™ 4´Ófë{„q³~-ÖwÆv¤ã’ÞŒMoþUíü»'cŒV:(¨ 걘Úê·ÙªÇü`‹%ƒ«¡'K&l¶ê-°¶£|:½¡í$“¨ÇòíÖ/óˆzÌ–vž¥3`;]̧ÉK”þ¯äøÛå/JzÌR‹ù7a l+ó²^àñi_±· ?S>y’è? ùû;{;z}{é[&S+ûßZÐB{þàÿ@ŸõÌúÿlgÍÒ)e³é;lc‹A5N,Ò›üµÑÌØ ¿\»;öùíùS@2`±žÞïõ¦Nºpo›–ŽeÌý­åhÀrªÍôXNëÓûXóù(†~g81ß±oiß¶iÁìƒ) ð”8BDÒ›ÚêŽÔžý±µcÓÑÐÊ? íöåý3§è_}EèÈtÔ.æ€Sb[Qg&0ÐÜ®îüÝufh'ž <Å—ÿ]lkÚmc±u¬(b0ZO—š}ô龪=ŠèÖÓ}  ×éÛgH˜múŸíss íWSÂh‘N©Žµ]=>)‡&{Ó²ÐJ×ÞñíB>ÕÐn­3 µÖïe4ai'æù°&¿ "FÛpY?ü7þ¿'÷n詉QCãÄ÷½Ç÷ýAÖ#awN[Íšd54þP´°††††††††††F‡¢@AAÁß¶üùùZ#jhºó;©­«ýK–Ëáphº£•K+ÿï ´¬T“ýÿP¹ŠŠ‹4‡¦¡¡¡¡ñ? ÿSõÕÀ¢**ÉÉÉ»rûe?ååå'ïÖÐø…øü>*+*ÿãÀÿ ÔÖÖ"IÒ/ºø¿‰ÝaÇív·sðŸ‹×륦¦†èèè¿T¹U¡¤¸½;€ÿ|þœûRÿœN'‡ãwÜüçRZZJXx8½þoYþ‚‚SîÖtúç(**"66QÑÐÐÐÐÐø_åm‘¯æõ54444444444~õïWfUÕNã·éŽ¢éÎ_½ý•Ëõ—,›¦ÒšŸé¸Z\¢é¬††††††Æÿ§h ` ?75Uõ8=òoø¯§½žÚz·&F ÿ üž*«(ÿ?VÏ_GþñGPQïúãú¾ê¡¶¢ˆ£Gs(©qàû»­ƒ‘í”—7àÓºŒÆoD;ZCCCCCCCCCCã¿»ŒýG*@Òß•¤ éät‚§‘ÆzàH"^jKŠ(­²ãSUÌQH‰ @/ú¨ªsŽQæö"« D¤’cm·¦ŠßNM•Jht" ÎêRŠ‹*°D|j<á6ß|ä¢<ßMhR­Uý.*J ðXI3wðUEvl1A˜$ÔzòäÓ¨ Hº`’Ò°^Z\µåç—Ñ(›OD ™Ú¼c”Ø]øÕ0:÷Œo’!nJ³ŽP¡ŠŒÑt»–¢ÃùÔ‰B£âˆ²!¢ÐXZHIE .BIêG°Q‡€ÊÃ9”ûü¨B$iј~³"ŸRçvu[Äç('7§ ·hÀMB|(ü4V”RZ^‹Peá)©Ä TÉ¡ì?è¶ßSCÑ¡|j aÑÍuvÕPP\J­SF@DÔ xz$X¨>|”rŸEˆ KF &Tw5¹GŠq:£•ÈÄT"~£0To ¹ÙEØIg"<¹ ÑfOcÅÇJh°„‘KˆI¥üÜbêìnLQI@÷{¯äR”/¦Úî¦e†ªZˆíšJ„Qg {sªD@g$ *‘8ƒ“j§‘¨H[Ó yÕEU¥ÉHð‰¾ÒN;ÿnì. ÖçGE 0¾IºrÖÑ=1Ÿ£†âiqHuE䝯+€1$šø˜(lÈɽ*®ÚbŠKªpèÃILŒ"Ĥg)ÙùÕxü ¨”AJˆâ©¡°B$.¡Å&úq5ÖSï”°ì”ÕàTYOXb1¡¤ßP*¿§‘úz–vi¶ • ˆV+V‹¾•òPQà 81NŠöåP-è1Y¢IM m.«†òrKÐG“M ñO¼NõP¹oOÍá•ic øÛ8pµ•õxD‘a–v–(Ô/{“›gí#@RóÔ—ÜÚó/Zò¥Ü{¿Â«Ÿ^Ïß÷àW}%8UÖŸHl¸ÍÄ©1IRWb­*>W EÙÔ Âb≋´¶jc?µevŒ!6ÌF]SôVràH²ªb‹K§Shóår×Ïaúö~<ûH/ªö£V°Ol„7•ETÔ9ñ«*–Ø4R#Nê“|ôcî~#†·ßAãÞLXRÑfwC%Ź¥ØE¬á$ÆÅ4ù–ÓðRY`'(1„&‹î¢xߪ&s ©Cfr\¦¾¢)ÀŠÕ¬GÀÛ{úQ)2QæÓÚÂ몡äX *¨ŠŽ€ˆXbB ª¤˜GkÿKר` ­ýŠ\DZƒØÑCHYöŽÊBŽÕaŠ 6.ŽöËOmi#ÆÐ,Fþº|²‹›“ƒ¢Îˆ>,ž®á2…ûó¨Ð[ ‹M">Pw¢ÜöÚ™€cqž›ò|'!I-¶”†BöåÖ 3[ O%Úª`¯*¡°¨`"<>˜0k?à­:Â1{)Iá˜NÜÅyj¼ÝV¦M±lN€Àh:ÇG`Õ‹'Û¸ÐN`|FA8!C’!„”®ñXPð:k(ÉmÝ.1ÄÆ†`R):^Bu½Sd'R¢ƒ0ˆ* Þ/£ $÷H&Pøcû¬çø"îÞÊ´Ùk=^©©¥Áo!¦ÿ;…úU<ü@5N¿.müá¹Õ3^gúâ=x‡ÝÀ3wÜÀDy9E48<˜¢;“mC®Éãp‰UUA2b ‹!V-!§Ìƒ(6é¨\yï—Æ×?ÖsÆ ÷sïäQ$t@øª9š]†WPÕPRºGcéHÒGÖòþ»óX‘UÆÐ›žãÎËcþ¿G=…%~ÂãB1Ë5+PIH ?ÑW~3µ+yྞœ{#ÚAeÜõåT5'AÑñÄE¢ÿ•:éuTSR­'11øtÝS]TV8ÐÙ ¶~Î)øÕWëIH þM± Æƒ–ÖÐÐÐÐÐÐÐÐÐÐøïâ(b˼÷xò§|"VúÝòw @õ»©)ÞÊ7«²¨qôåŸw ÂìÈbÅœ¹|µµ ƒµ_ÔºïjºV2ûÉoÈ<øk>í^nêÙñ@×SÀÖ/?`úW…˜BñàÖÛÿÅ97³ðµÏÙ\Õ@]I#Þ{œ;2¢‘WÉ>¶ælbÉÜPŸ5pdÜÇw²pîæï/'©ûp®žt;#“›†´uûbí;€8ó?½˜MõvêKB8÷ƒ'¹½[±O™úÀ&ÄpP%?ñ§òÔ䞘OY%NÅGz_;>~«J1ÚêðEŒeÊ7sVç]Ìi;vTÑMIôÅÌîz¢[%ëTÙG]ñ6¾Û°‡c¹Ý¹çÑXä£lüb& WäSé°qÛ?ø×eƒˆigî);ÀöcùìO|| ‘'Æï>ò7ÏåÍÙ+Q>ÎËÿè{Úd†RWÀá¢uLÙÅmo]O`#Õ›æñÊ´ÍÔ$wý§¾È”>§¤8äãlýêCæ/ΣÒc!ý†Iüëú¡Ä»àó—¿`K]#õÅ!Œ|ÿ îè…£øÞzp-ù!"8;sŜǸ$¨‘#ßã—öSn2sÆ…ÜúÈ•ôb/ßÏšËò¥TWÛ8ã±û˜rnw¬õ_3ó‰eÒûp”Drá¼g˜gûÕj|j»›OÑíþ·¾Æ”3]ì_:iŸgãÓ­ÓY\~÷œWË–ßà£U‡‘“Bìa\8õÆÄmaΓKÙÿ3º­Èeì_5“oí£Êj#®ß®{ðrúVíåëçóSŽ£Á„»ð}îåã[ý|ùÄjè½(5ÉŒ|ënêŒcÿžºC”‚ª sÔCÜu¿>¯¨âËžÇ#÷oE©¢J©Ãã©c8¾ù^}u+ÎH™*CWN¼IÃb(^ý/~¹Šª:R.yŠ'.Ë$à÷&ãÜ»˜þðÛì÷ ˜¬zDd_'nxãYÎÑdËçsxnS1‘xtA$ <ŸkÒªY²½3þûì¦D»÷0 gl&dÐh&Œì„Ð^;ÿn#è£fËÞyw-EЍB29ƒ7ðà;•¼úáä«^ño¬ìÌ]/œGùüéÌ]_ˆjjÄ?š;o¹™á]ÿˆL•ò}«ùtö\–W ä¾çïcBOM‹ßヵyø¼¢Z þÁcw#µn)JEÕH>•'&F‘»qo¼±g¤L¥¡ ×Ýô®šÜ¦¿ø«‘U¸Ž^‚>¹‘N’@mÞl¦Ýÿ…a:ôbWðcl§[uÅQI~ñz>z·œ“.ex¯h$ysžù„ý²EtQwŸ>{ám”ÇCÙþ¯yîÎ9T¤'av˜É¼èf®"³|îl~líŸ{Þ×O]FlÐÉDfÙúÙ¼ôöìfÐ+Q ™úÿÈ0âÌÙÂ'óæ³ä@ɽF3qÒÍ ŽPÊÈ-YÇÓj¸ä¡«”‚ëÀÞ˜¹·_D‹²©?.;ÈË÷}CuŒˆK ¢ëÈI<Ùˆî:ŠŠ70oN>]†æ¢sSOëÞŠlö¬gök¦~6‘x”Šl–Ïù€·v”’ו þñ8W$ä°vÞG|þS²O!løuÜvóXz7ÕÑ_“êYwòô¶q|<2]ºvâíS)a÷ŠÙ|ôYÞ?%æ>Ü7åV.ì…RsœÅëxÿ%SfL¤«Ê7Ìáå7·c7ƒNŽdÐÔ癜)P²g ÏÝ3Šô$L ½ÆMäÖkÑøÓW¼úÅZòËkH÷_s†½‹xëµ)üPk ÇïðÐð?ô(UA4`µÚ&gÔzòöoc_m*.Nï8yh4c³þ<¡ÈøÃÎàúçæÚsã+>åù¥›©­n åògyjBw<{ðʬ,šn¨+ËÁ?îmÞ[ÄÓ ±˜ôÈ%×wbÒÓ³ùräBVTËÈ?·S·a7Ÿ<õßHtí{OL¿’ÔvXƪ¯vcéz«Þô;|žôËJܵ瞨àžé7ÑÕ½… üÜòÈ("~ï³E=V«±cÝS8öãL|~¶ô(¤F…ÈÌ1\uëå ˆ3þ ýP°mç«BùÇ?žžP÷fÁÌíÄŽË¥ƒ~Ùr)gÉv–|Ê?ÿ5°Å¬¿5Æù™6Ðh-¬¡¡¡¡¡¡¡¡¡¡ñ_žî^Ü6ŸÏžàVC9ÕSOÎÚ%,\é¤×Ø!Mƒ§@·Ëîâ­G:ƒ‹“aw~WvLÿÛƒŸðqo3”ÏâÜ›¾äœ·u0øÜ0ôjžŸØ‡®F?›ž–=¶SÿÕ"Ô+dæ°Tt{ŸcøÜ-ÜðÜ8B õW0wÎ6*¢&5M„9ªØ½r1;ÃïàûEÝO†æ”H`åÀÌYÈ×?ÅÜ!q°û)†~´…‰/#@äÊæ3>poãKÞgõµï16j«\¨ ¡¤ÅY‘Ï»…WoO'Yò°úGÙ•uŒžJ=©LgJ'häóñ÷ðcÃu\ej5ö;(ØøŸ}YNâ°30ÇW¯'WNã¥/Ó¥| ÿú`YGº“.sps>–ô$ÆÃß2wÖŽÞØj ¨Pºëk¾Ù´KúEÄêAÄGé¡#Ô"INÀ øŠ·²xÆWìðí‚„@ËßÜÌyŸÌçb#pà-†¿ö-7Ìšp¢Í ~ÚÈ‘ú8î^ö"=ª–qßû9p,’E Q¯y”ÙC“÷<ËÙ³·qÓ+CYýÔ:´Šb hÅÜúÞ6.¸ÙÀöU%\öíÎQòÑŒ/Yýc>ÖÚï¨ètÏOCtÞL&ÌÜIéñ<ý ÁO,æãîþÿfè[[¸ñ¥sõ¤^Û:7M`œ®Û µ…Ylßàåί?ç jX5wß~³“ó''¡ÈÝ™ðÈ]\z~RóS«ùü†9˜üìgt[¦&wk—”sÅÊ…Œ‹YúÞg|9kÝ'àΧGpgó/·¿v;?ôfÕÔw|úkæõ¡d&çÞ²„sVÜJ¬5•IŸÜÏ‘Ðxì[>||›.yša¿z†L@’â¸nΧŒ‹õzÞºe&?ŒyŒŒ„3˜¼ô^ú™àØç²öXùa»øp¥‹KŸÅydN‘QR.ã…ǯ¤mnÔÇîמ╜ëùì³±„È2Ç¿û„=¢›¹U‚R0šMôào§?‡™ußN|1›cŠùê‹zÄÞ·0íì‹™½¤Ç‡cí%ŒxîÂöÏgÙÁ^¼öåËDãã@ÖQ ‚ø#À"ÉÃnäñaƒˆyy+!FÙó¦1íð™¼8ã:IU|3yOÌKeö¥&lVC«þ""é˜J`:cÉW¦…ÌŸü [6¥4.ƒÀ_:­çiàèº/Y°¢ :‘„Pj³æÓÅüPØ•3Œúï÷_˧.c¿ñT¥Š5//£÷çßòj¨ýK¦òÌÌ,FÿÃÊÚk¨éý+ŸOú M#6•@\Ùlß‘C£JrzwÒ“ƒqQ°o/9%µø)(•þýRÑÿ‰{i¤PÒû …¢Â äÆ|Ê««¨nHì=ŒŒX(\±Ž#(„ÿ¸ÂzrÎzö¬ÚMz¬A]80á÷ïŠ:éüpVä“g¢Û€8Ìøi(*£Æn"±[e÷rèx%nIp&]‚9pD%XÜËüXúe¨ :9ºã{vVƒÑOŸ³º·ñU}d9‰‘×¼ÈõwÙj§UÇ.œ“L»ì] ¸ i}%V.`„oÌXÆwßç“9& ¥r?ßÎ]Ìúª¾ŒÖKˆ€oã»<³©ï~ü(ñmÞ¨âñ4P•Dêà¶|Óȵ+p–s;ÓfüÀ?$½—Žž“纴(©ç‹+ïåÇÜá¤DDaÚÈðKƒQ‹¸þã» Þòµ¼sû,Ö~˜nɃ¸ý›ûéc„œyÓù1û0C“IjUGïñu|úáRö.n–B5k^XJæ§+y%\áà—ÿæ±ö0æ¾ÞÔæPPc"¹gs‚6% IDAT¨Õ‡X51k‹»3¨e·sn]žžÉ)µÌ÷?6^ÅåÆví®'~P&‘(j8½úÿ›‰ï^ØfgÿíOáöþù6Vvî‚ÅÜ:ÕZÆò÷vqÑ¢ùŒÁ³ý Æ¿¿škÞ<ƒíß.'·Ó½|÷tZÛ–¯ÜÃò9KØPÝŸq:r3‡´üÂÅ’»®äØYÀ^À˜ÏpA8xŽ­eÎ[ëØyÙœÑǦE‹øö@4±ÚÝ©ç>¶šy3VqÐzUSŒ(Ëä¯þˆÏíWòÝÂAÍ6ÙGΪݔș¼°äUÙÇ O¬aûÞ|2†¥ 6ç›O§Qs>=ƒƒNÄš§ÅÛ§Rc'¨ßx¹ö1:‹°ó¥çÙs¼ªžQmdÁ_±‹14ïQÊòwv0ö‹ùŒ“@Þ9Ñï~Ç ï5’>ƒ¦2qÚhNœ¡“½„'—W1üÞ¸8µåí5|þæ:ú¿>—«"Âé ~`97 ™Ht‹žû”ÙÎÎãN$ÁHDr:=Óƒ(Ë*ÆEb\ :\m-D—щ`ûA6e•á“T!‚¾#ú,(ªBQÎ÷lÊQ0‡FÒ£O_:gö'Ôkm'icçèŽ=äÕ¸ÐÙwRêE%œ…ÛøéPm“/1DÓwxOBQðÖeˆì’‰°„®ôʈ¢¾¸„ÊÒjêk ì6€¨Æ<TÙëÒ£ŒˆT³ç‡]”ûD]g†ŒLÅÐXDÖ1• i? E#ãèÑ'“0UÆãl:B_·oo|§pÝószÒYFü›G´|®cÁ]“(?§/3ÎdÉåMß6î[ΜovÒ9ÆHm–ÿ ÓUKö¶|t)]IŠ0Ÿ”Iع<9ÃNùTo¼;cC{rÅý,’ŠL$£wLyûÉ:XÈñ¸,ÝĈŒHŽ!¯¼/Iœy^áþRöfKDèw³¿ ~gRxÈŽÁ“G¹NZ·4ìû¢ÂÖ™ž½Ó q—ràÀAò«½¨ª´~}ée¥áÐq<îR6,_JMï>\v…‰  ÛVï¥Z0ÒgÆàª*¥ ÄÞ£äVˆD¥dÐ#=k].Û£ªÑªÓ}è ’[«€«ˆ]Ûª‰Ô‹è'ªª(¶$]?ŽGïèTóݳsÙüõ6RoJݱ—¼ªF|J݇ $É*"Pɮջ¨Pš#ØbÒé“zãÇ0á¡<{;6 X#IÍÈ ÉUNCÕQj¶­"8øÎîªçè–½6ºñ+Ádž3x¥˜ÝÙ†=*I¡ÏYgréo} ÇòèýÙ)“OìBôNJ. ³öq¤°Ÿ( ¥rFßN„š­§˜Ý‡uDv³/_@o }À`âLhü ´°††††††††††Æ‘¾[zˆ^ÃÎâÇE_ ¬ô5†ÎfÁÅÀŸç•ø/Y~ă è#úÐ/âäí1±ÄDÖ±§0“¾Ñ̓ès¹V~‡cnHí`@¨¥Ò5¨åS#ŽàH"ãK)\Úƒ.›&.2Ïæ¬ü, T…`$¢Ïý7³{.æö§šŽú³×²oO!ñ£ ùjá~̉éô;£'áÀ>~*°ÑuX¹‡{‘2A‡0ôÎYÏ"_UÈH¿‚ñ-i>”´¤æ# «((ÉçpC'Æ„&a mUÎðH"Ã%„.£¹?…[V°£ÄsàUœÙvRW0Óëêçy7e!3ÖyQi¤¢D`O& *¾î*Üx÷ñÞÝï‘òútþ58 “áÃïgFÏÎL~Dn:>WöQ•½†uù2ý®ŸFdöW,Í7¡£˜Uï½ÉŽÈ‹¸wêX’Ec+xlZ4Ž»#¡V2/À®O±(pê¸xDŒmJ\Ke™ˆ\—Þ´:>¼ ½åJTûvèEò…|€1sC¢€ýdí͘˜¦ ÿ Cé·ø Y®Xªr‡0LjJL¤%“[±‹]%1Å6ŸœÒ5;©óïd÷®³ø„3ºÞ#òZ¹@ç_¥Ç§ÖY@hO·ÏC§àHÒúD²oΗ[©ôÄpvfBS› eìúnuöºŽ`TF9å=IûYÝöáõ¸pÖf’(ÄÐ=>šœ2ÊáÄD‘zì}æèËÄɬz²½[ëÇžË5òtr|ÉÝ/á‚æŠË+ ¥Æiüm=[ê~9ãš.§ ©±DD9”ÐÊClX½‹#åQdœ×™âs±ÅX(Ûø5 ýRξ˜~±Æß¿³FÔchÈbùÇnö†[9´7¶³j],÷.KhKBD’Hs)ß}ÁþS*`hÓÎÔÅq1¤t8òý,ægŒáÚþq\|E ÒéÂG0O}Œ¯”DJÂîá–hµÇ#0)kYøc£{žIŒôÿÚù xì¸e½¼e?rÍ#Z½θé÷ðÃśɽ,ägÚIEQZn©sâ0a¶ÕÄ“h‰àÌžçõ„%,Éjö¨H gqó¡ø^ÜŽÑ'7·„еÿ-¼šÏSjšçAphïh. mÒ눴dlÈaYEå'bÉ‚Íw=ƒþ=S ÿlŸ( ˆ N×~6|0¯s-¨.ÄÌáÜt÷%tÞ³ˆOfo§X5 å²®p0o~xý#¬üiE÷³~éZªtfäêòŠ+0†pÙMÑ~#/ß—FöÖ£4„4rdõjòS½˜¬gö‰ðHWí ’áºè?*¬Ð¿“Eïìå¢Ï1€2¶¬ZÆGW®6˜Ù°t .ht²­ÒÌ”Qe¼ÿô’ú{()Hbw â?­É¢´TÆYÞÈvéò7Š­±†#[–23©Ä¸ž ì•Fˆág,D›˜ÄÚ5’ 9Çò3XŒt Œ#§¼‚F’è4Š;ŸÃõø~ô2xY½ì0=g°í‹El%zœw Ý<8Êw°®:‰BÇ 0 ÀC7s$¥e%ØG à¬ÖñNBq¡zD°ÿÀ’¢><bàe'|‹Ó¥Bç8Â#ƒ‰‰BXÅAÖoÛÍÑšºÝ“¨Sì‘¥ß$^~;ž;§T6-á÷Žf|8€—ˆ®豺€:‘³b6ïþÅÝóNEJ<›<Šï¹ýÍ6'íbÆããøÆåì,óà=놅ª¸²–ñÔ}[¹éû¹\vв·1g©‡NÁÉô>£/q­Öë4ùçÞL¸º+mºA ™õeïìÅ, ’‘íÆHÃ^’Gö‘b"GãË;±¥ö¦Ÿn„H*ºÔÑÜõb®©YèÚÙ2YûÓc,ªº•7û#q1xËØõ픘ˆ6†n‘}˜ðШÓ×#6o-ž"ËÀAÿâížIL¾Û ø}%¬ÿá(ÝÎoà›/ †&pÆÈÁÄvéLlÞv~øä+BôU˜#SÈHŒ‚Æ\6­]Aõ€—¹+s3wo©Æhlò§ÆÛ§y–Ðnd„‚£`'?ì9Lž”A¯ŒCÏkyö­œSJU°‘9¾?{æ,fQ‚â01~x: ‘‚ƒë˜½ÔIJhgÎ<«'5»Ža ñS»ç[¾Øî$qÈE H°‘9~[—.à‹ z·ÌEçdÒúâÕç¢,{+k·5`u;pFâ :ÿòyì‰ÊÕ7Ž"†Ý¼óÖVÎ{îú7dÓ¦Cx|*”T²Î”Äsñ*þ’-¬ùNáx¶Ofgã} r­cÍñLœ2¨MÜ\õÓÇÌž„£‹RH¥7wñÖo(DTUÔ'Ûƒžæáô*6²ŒÕ¥5¨~?BH1>1“²5ËY·¿šPcdzéê£&k%‡÷óÆÝ™8¿Î»ßxŠ{ÞJ'?Æ­Ž¼ððA^¨§ð`-NÁBwÿkL(6Ç :`ÇOÙ„'ÅPøÃW,ô{H~)}£ÛžR¶úi–5üƒ·2ZEö#¬_·ºë¬ã _m1kàÙǬÞ!ð¡™rA*­¦6zðË~Qp]Æ‹fÀ=…«qˆ!ôÕMe¬»˜¢ÚRÊ??ýdÅp´‚[ËiÐIxsÙüO¥lⵇ¶Ñ  ".µÚEŸa*Ź•—Ò½b)Ûì ™ô<7'U’½w3[ó=++ø¾JÇ¿¯íOCN.õu…lYkÇE!¿°ñògRõÑK¼³^OD¸ŒË¹•²„›è¹k!¯}|œnŒ”Ì£*lWN¾›ÑúöíØÄÑj}I)ßû"yõÌ–~-¢–}ÏÓ®äªe ¹*¢MEUZnMvá2éÑX±¢RñÓzÖ¬ÛI‘ׇZï`gcS®Œ§ì“Wxg¥Bh´Šß^Ä!Æ3íNïÌ â¡{"Yöþ<öZBPÊ$z_ìgT|5¥G(¨¨FJI!èP%[dQæó£Ö»Øã‰äî~›xé] ¾HGEùBbìÌ~WäÆëì¼ûÊazœm¤ì@!5½÷Ï»åú’ù36S › ”òXW8€×ߟ̀¨æãÏ«äåv2h¼Èñ£~”úBVÖ§óêE'ÿüç£%€54444444444þ‹æÈn35q;Ù«(( ylËKåÑ»º6Ý+Ûq¸¼(­vÚ5%9dŠV|M¶5“«ãzqe«æÎ¦(Ldp“mñéŽÎöZ+7¯b_C#Ó»à1¯Á¯¨M{b‘…UT+'ëit£VÜ®E¥éH¯ºö÷ðõ«YF×shíQúLŸŒ™ÖI+QAô7ß×@p½ ݇b‘¥Y†!DTR­d Ã‹¿e²; ‚CÔH‰è$_ó÷&¬~í¸ô Gn®{áåõ4xTDƒËä’5”¨âmTòkÀ§ÖYlW··çuaê]q$¤Ô²ê‹Z²”c”¨]¸ñâk'©ÃÒ9úcEÖ²yM9æ/àŒËm¬;›âu[O`xÓwóù[s‰ñQžu1y@«ò9Y9{/a—ÜJgk¾Ë×ò݇3)×!J.²m^b<вÕFqaÓ’=è‡Ü@úïÍ(*ÇÙðñF”¡é%4MÚ;*ÉËÊ¥ÎÖsH%هܔ•Vb÷º0ÕícÍî@;—.¶ßy ¢ó×R“M}¹Añ#Ç%2*íYr&—Ÿb =È¿ä'Úù"œ‘ÿʤ`E>Gœ+øh€±ÿ…\×;1¤—Æ ë:óÏ×úctÝzÒoä6VmÜÀ²ì,‚Ò1¸?‚ÿàCkE±ª†êø4†EèÛN Ä–UQ%„t({½¯œÃëòÜ™w•=º0*½ã{ù:D¶cwy›íX«6ó8pŸHþ¶úÞîÆßbczÉ‹¯yÊK2Û.>H¡ÝKÞ7Jì.ëó©ÜZŠýÚIŒíÄŸ›U…‡¶±%?Ͼ‡®Þ=L}%›W®&k÷¬ƒoâ•kú`aÞwãŸîÇEôF ¿¿†€Ì«¸ó¦:¾ã–‡“_q£½œ¥w×óØë—ÉjîÞÀµK?â¼@È]ö(¼ºŽ+^õÕÅ@d×ÁŒ¾Ša@ç jõ Éc8úù<¶ȸ`‘;™9÷[vetA§”1ê#îï)AÙ"pYþÀ“œ)BñŠG™üÞ·Ü0èš»ýþú˜‰ËìJç#Õî[Çž5GpN¸ž±C㌛c’¡WÑ'(—±ÅÏš±zA¬kÀMqˆÓ‰×¯ "9äì5RmÙÃ>½ê°áp'žœÚ‹·‡âÝ?"_ñ4<[øQò5ûy3•RŸ4Å}ø8¶`1Çâ†qN\ öû%Ô_ýdÛorço†³&’Ùì[ìõäíÏ¥> £MJò°Å>¸ðŸ0:ô'ê'!Z.†VÅíj¤$û0žîÄ÷4ÜiéuàòÊX„Ÿ‹yÜÍ튜͑ýzì·³Ïـþ™c5]¸ýŠp‚-elÝQJeþýo`l’…ÒÏ_æÕõáŒì¿„ù;²((r0q&_Ö› 8owüv…Æêbrö Gf"é[y¨F׉ø³­ kÈÞTÌÀé“Ñá'(±3™gå’³{#9õû©óÔa+ðPv ŒÌuX³Ë„õÑ‹I;Sá›Sa'kùNRß™Ôf7·h#cø8ÎsïÃé)bÍÁ#ütðB¦ŽOfóÆò* æÈ¼ãûÓ%"€ÀäÑ\P`"Ï-ƒu¯|½Ç È2&¾Ë”/G¿ŸÁ+vÐçl+V‹ Å[ÄæÕ?²§ÀElïPvt€ÄkäÖó’å¸çÎPB^Ì…Åë(VœG¾gæ7›¹ÅVÉ‚y‡éúÄ8RìElÛŪoü$ÙÌtv ÷\éã‰ÉóÑ_øOÝ’Áu¦¶¶¹3‹ýÑ\.KצÇ÷ô*ÆO5hÕsæ-¯p©Kæ0wë.ÓÜ6PJÑ1幸\ k÷ñÃÞPxb$LM'ªàÊeÑG¹ zá|NF2%û°¯Pdà#ÝñÑjºdνñrŒi¡üì-!¢H€ÍÈ€[_âc›¿˜Ë‚ ¹ÜvÇyŒ¸T+iWŽð3箈}7OME<ö6cŸYÃñ§¬X¨ vüÇLIoöÇZ“¸xêý„~ÿ2ÿ\èàÑ™3ÉøìC¾Ù¾úôå¬ÁvôÁ¥P¹™×·ï&gX_Ξ0ŽN[+˜òæk—°÷[Bãæ,p1ñ›79ÇêãÐWOóü´M$ŸÑ]ïít%›¯ÇÑC¹ˆc†0b€Ÿ°¢F¤°Jž]½ƒÊÌ“#b!¤7W^m#ÃÒ6þ’ä ·ÅôOèqRGŸÁ]°Ãg­"/µ3}jÜÌ[ï,eôù}X0«œñŸÍe|P²˜;Ÿó!H&l•{ؾ5”K>}†q ^Ê +ˆL¥Ç ‰Q#Æs~ÏbÞºè3*ÎéG„pÌ yóÕÅŒù,‘©Ž”+g1%jöÌÃh5"©õD$0úîûÉä8ŸO_AÑÁ5,=˜…±ÿD^¹¡?V6óÄý9[[\шM¬%ùŠÙL‰çöw¹æ“Ÿh¼è"´I•_Œ–ÖÐÐÐÐÐÐÐÐÐÐø/¢ 0>v7Ýê7óܳØyçK ë`^@&ý"¾Y/sÖMI´Óùök©¹”ƒ nŒþv;º3)¨ã·¶IX™µ’¯¾)¥ËEWÑ'ÄM–[@[’ÍõÔDÔÑ}y²™¨¤K¹ñ¡ D spÑVnû¢‘ðæ”’Љ(«‰]]«gVG‡|"‘Q̪WæqÀ0ë/ošÚ¬­«ÁQê¥ßxSs}J¶}ÍW«ìô»æBºG·l1ÑóŠè‰/®½ˆ¯:­áî^ÂÏËZT©y‚ÑAC ‰£„Ÿ$ÆÜ–üæÔ­$ô¿Œó«ë8^nÇévá–íÔû"2*í„dO¿¿IBpeóÑûœõòÛŒ r³·×4æ,˜ÍñÇn&Yß¶|ê‰ò9i´™±ê}"’ز³ ê˜‚E?-I)vbB ’ed¹å{. Ô` Ær; bó³íÔ…ÐÙŠO‡®eg£»žêÈ0þ˜uäêiºýüÄé¬}9%›Ì\÷þÃôpæó 8¼j¯Fê°Ë¸}Øe€—U÷=Ⱦ#:&ßq=޾$«¾#Ý–°E÷ãÂzX8 õ²“‚*Qi1'îóžÃÚÆLÆe¦a%€3ﺞê–r¸Á…Þ›Ãg·¶\{¬ä°ì¯)ÊçÇòûö•æóíË È Ì5ãZfoI=›ëÿ}6G¿x•ï—"Ñ·œÃCâ">¼ú5v—$%-ä÷ +{p⦇®¢Wh«C,5„ªpú{É€ ª J''á% ª*êÿ‰ lê3!½oæžÞ@ÍÞùt1ß>'2⋉ĉ ñg^BЮz5'ý ÁÉ ¿öY†SÇþµóxeî*LºHÏKýã&uQ58ˆ ²TÔú‘ãZOÙ© &XQPšeÔÔ¼¢(!¨ ª*ãs»pVîå»5pÑ¿ÇsflÿÕƒ–Uÿ { #»]Ø£‚±zl¤ô¾–kM.6¾ó>»÷ï ¬ß9Äþ™.QÁïÃëµ`ÎìCC‰²•‚;ØÔa]cš’èv'>ùÿJ/KóáíKÎ1M‰<ÁDœÉ‚Y”ÁáF–=Øý*‘ÅåÔgLà¬À&Ý•øG8Ê(züAEmÁ$¤FܳŠìp3:w<#SLü`Õ¡è}Ô?J?ˆácÒI u¢Ä^À N>Tšt—äLRD‰ÝI.­¦ þ6 `#Ñ£˜”1 PÙñÖól9–Cåàxâö´ðV1É%ÝöF–õÍýÛKj°­ƒÃæe|ž^ÜøÌ=ô`/ŒžÉVÏ[œ'ד—UÃðó£pæûQ݉g: X,͉i9+æ³|·1w $Ϊvn)æ¼[æ|œ//$/h0W‹?á[BÓ†3ñáádö,˾u{5éÖŸUZüJ‹}PP\N£‚°!Ó—öoú^Eü‹e¡Ï5Ó‡:>»ê¾N]Ë”grõ-ÿÕ7k@îòY,Ûµ•ããºÑÃÐÚ?w#èTÞp€Y3J9÷Í·nmdëçïðåÂÙ7,‘¤¸î¡ñ„âe眙lؽ‘¢!cÛy}*Õ?>˺€;x7MÂà˜‚Ò{÷3 ;²‚9テ·Óœö[”NÂl<Ûþ}+‰@厯™;w‹#ºa÷drÇ´ D¯eÚGØ³í ™)c¹¬!‡r{ Õ.'~¿‹F»§Ý¿íEð Ýç"nës;§MaõDLF|ë‚öƒÌú°˜‘ÓÞf„ÕÎö…o³`Á\ §N$!a×>>€£_Íâ‡C[(©MaĵW3nL*"e̽y‡EñÃÂ#d<üccáè¯óæÂÈîq']-MzÛ˜»‰/æ~Ï1]$ѶFkC5tIô÷±×æû=:.Ñ™S1ëÞÿ˜U%zB‚%tWWGµ¤Ã2–3Å…b "^¯CQýMuV|¸ ÔÕ; (öR5”óÓštÓéCEDç8ÈòwðS}0‘! ~I©©¥ÒéÄ™ˆ|üG= ¡zÓ§OLjŒ°®šäLÒC0™‰7[0VUQÓõ2†&4í7'÷¦Ë¡}Ö÷À–z}L€ìE°+IÍmÓ‚·3…Ñ“/gL¿H €÷®xåIþìw|ÕöÀ¿;›lzBB-”Ј&-T¥X;EATš¢"ö†]QV@Dº"ˆ‚t²ZBHHïÉö™ß»TÁ÷PðÁûÍ÷?²ÙÙ[Î=çÜs枀(Þ>›ä)|Ùèüê’Mg8rhÖF“è|™©÷ˆaÀ˜˜/¾ø6H/Wµ¾ADz€‡ÝŽÍf©”Ò:=èìòù¶¥õñœt4Aj8‚^Ñ®5ì´x4jE4v*ëÓ"¶á˜9éL”¥†ã{býÚ#˜ü‚ õÔP×dG”`·#)"V³¢{l*j0ÆßMw?×…ÔiFÄÑ㜼£9‘͹®wqB€oÁB)ÖmgÞbô#@ãMýZ3FÅï\Õ‚;2zjÇ?î¿ §Ý‚¥"“”ݵ´ºc‰MüÁR±¾?G ¥¹"¥JÃFµ#âôQÒ[ÞÎóõ\}¶˜mHP$ÁŸ¨Îí¹÷¾ßÉüé¾ô %®ï`"8ƒèt¸ÆÒ^NutZS9EyF Š»F·#D(˜ô¬(v$ hÅ+œÐ¦1ÄH2~þAÔ+-ä„O3š·ˆt½c²â/ñq g]@±ùÓH§¦3¯ÚGR‡@EEEEEEEEEE埣9M›ocÝQ÷ÙŽÃ!¸®íÐúâëãÎëlp°‚ôM+YŸ,“0y}ã‚Ý ¢(ŸÄ´éSí ^ßNÓ`$Çð «~)¦ùƒã–Pˆ!¦i…FÑ <–LrãÄçKšyù{£Õzã‡@~áÛÙYéÚ„K’„Sö@G'JëáI0ÑÄ4=ΙÙÕÎ#ÉìiE#4`JgùG+ȯ“ÈØ§¹ï˳PUQA‘Ô•f¡ÕdîXÅÚ-f:L|ŒmÃÑ–ŒÝdÏöF ²€p¹Ýœà‹¿¯ž^>h  ^=²O.F€Š,ùið ÆWÉaÝ×ËI>cÆyá×ý½ðÐzáxøFÑë)Lž2•©O?ÅèÛéž0¡-=H[¿–õI™T+®¢Šøùàáá…_€¼O“•jG’¼i7¸7A†Lr=Áxb«— –PÂÂeÿªª²Ió²#ø·¥u“Lòk®ªÄµ3– IDAT»ÙÝ$’šÓ´ùnŽWx`ÊLáPó´ò !(ê gœUœ2PY¯-m"Ë0RŽ ÿ{ëøâÙš–-R9Yê*7,§ï$%®ñ•ïŽþÓ€ä}ö÷tÉvÜ…²íÀá”§9•æ>ÍìG§˜hÄ“ÅTsÉÊ+ €JŠMþø˘©Ï€q”m±4•swRì–€è^Œ{~“Ç ¤Cs?"›6tŸ.ªaÃâBût Et 2 2áI¦M›Â°vêõéDC@,Oeñë0µÁ˜G{R×-÷%Á¤Ôbé?S=„±“û¹’jærÎK£ô‚a“¥(bšœáÈéLÊÜACÑ©q%®‘–Ñh.y’_W†4IåÝד9·Œ…¢””xi!'—ªsørí&$÷ù»ÏͳÏ5h£ù?îÈuýohO>yªª\ë6@r­MÉÈé“ÙyÜÓ¦ïƒ<С>ζ¿Ù’‹æY#Rf®¦Ü«5ƒâKY¹:…¢s‘ù¶Ïúš3·t¥I?>ÇÒ]ëÍÕ*KNQì篮.mcÚ´÷™;)ž“k׳©ÀÂUϬÖ?/Ù—ú¦2òާ»m ¸.b¸Xõ_¬ü´44!¶ù.N]~DÕ©ýd4kLäïßÌÏ?í¡HÎ[AoWýѦô$2ÌúbZ”ò},û|5™vXC婽¶ˆ«ˆ>øé.gŸ{«>ÛÄI§ÚlNì?_µEß/¿½y”‡…à°“=5gõ—„$_Ô÷u·Ó?à‚@ÿ)¾ÿ´ŠÞ³ú È’Hé¡$N_4hΙÎoÞ>ç_´»t,ý½Ñº}D.†ÈØÍlÌwÿ…ìD’­ÔVP˜-#Bƒ.ÄË¥gLÔív÷OœÆô©S˜<}8 bÒà „ ¹Äß°Rv,™5ËP…gi.99ÙÔ^4ßpö»ÞZÐâDªˆäRšté߀Ô,ÎÈ"Æœ}¤[ìÔT‹8t͈kQĉ£¸ý‡C‹à™Gö! »ëñM‡$Rwo&§Îæd%9‡0”vfÖKSxjÚ8ú4÷Â*J(4bh¬ˆ=ý'ÖÚ㈩ƒÖ²ï…᳞áééÓ˜28»  UÉÎÙ‹Y>—WdÁ;–~wObæsÏðÀ‰´2f‘_âtõýL&¹²ŒPc`áïŒ}}Ó§=Í“½C1k´xúQÇ3ŒÛ&Meú´éLŸz}{Ç`µãtë>Yrâ”YF’eä:á„f®b×—Yss¢eKâd Éyöä¼g+ôœC¢iÔ$‡ÃYYnJDtp^¾ÄL}a¤ÿ‹½ ¼à{'Ò1¤Ðû‘¼{ZH¹lún%IYU.þÂý½\¶­,£8íµñ¢— ´¡ï&ýDë³¼t2ZÄÐÔÃl¿øù’»:‘"#I®«q´b!))§Ñ´º——žŸÂãûî¤h\òsº‹Ζß "àÈJ’ÍnSžEqëf4v:%§«½Š‚‚O{ë¶–{ÛãÌœ1…'G·ÃÏO{ñ€TdÙœ•1_˜ü•‘eÓ§Neò“}‰nTŸ:ÇpÊéÒ¾~ÞhÅ] À†Ã©£éا˜üTü²RÙ¹iÅ’J‰«¨¯püFânÆô©®uýÄ}h¨Ñ€lûÃ\¡È(geHQ%)(ˆ ª"*ŠŒnÇp©£éìÜ( È|iä·Ï7jÊ\EEEEEEEEEEå$”/Žäó¹OòŒÎÁ*Ð`Ì:XÊÙÿë'¼·, ë¯Ø}Ærwo~ùîkÖ×Ds¼&åÖZBû=ÉôÖù|øÃv*eØýÛ3alÛ+UvQy’ÍK¾dþA?:›²ùÍZM€~,÷?p _ÉÌU2¦l#=fÞE°§+ðQ–ôoü°CÌ|+[˜FâÝIÌñq’=½|šÑû!Ô-ÙÅIZ4ŒÆ Sû>ûcf¬P0e™èýÒ}i5”íü†–hÒ§†“Ï-Gò«K—ÁwSœ½õ}D”¤³vá—ü”_ÎÆã¬²TÜwüòÙüŸÑ):!ø—™Ðäâ-²b¯%cýǼ³t?ù•¾à/#÷¦IÁ<>tv£ß[GѼiØ ü6o9[÷¡c”« teò¼µh3‡Óf¾z€¡ã^fÀÙCœ’“©£É”phýZRë §eÏ8‚5™¿ò¯Å+HÞg¤ìÉ |ê%&ŽÝ̇Sf°¥>h, }=&ÎÛÍêÅ´Ý‘&Ý;Ñ8w!_ŸÃlÂ{Àí4‹i@£I·6û3žûQÁtÒÈ-³F@=½ çý§fðL}°{2|vêšéÔ_Ç÷>Ã^vˆę́›Ñ=韯åÝ'6b.®%úá DÔ#vf>|}&3‚L'mÜúvg®¾î%}ž¼ƒΠFò¯/ÎËvÔ˜'ØB"¸óNÞxõBEÐ5¡çè{ˆÕgÉÊŸÙ–%¢Í¦&ä>oK@ÑVÞüj Õ¦ò d[ÆRšÊò…å4›Ô‹±†SIËùpMÞ>4ê<’ÑzWú6ãçü^Ù€;âÛPGëj«pf¯~³ ³µ{@g&Žm‡NqprÓ|úÓqâúWq$¥›Ñ÷žÇ{µ¡…¢í_óÉÊ4í[M泋ƒÒ³ß@‚Óæñá/šTâж ï÷Яù~Y°’÷¦ÿŠbqàÝý†Füý… …üÍÌ™i $È ¢ ;£1s*}ž}Š“ï|ÉÄgW…‚Uò" Eož¹§3–äE¼þ„? f‹@îCзqçÅóœDℹ·­÷ß{›ÞOGéºw™±Æ <=Pj„N™æJˆ) HÌÑ]]ÀQ–Æš/>fMýú`² íÍ=Zàÿ7‡Kƒ™ìkùiU ÅF#ŽÖÈ­Kû1±pï=¿/´h”´#yêþ¶øUsÿíûùrâ |‚ÀéÔ Ôk˽ÄáØ±…Zc v bèn-žË¼W_§hÂSÜÕ©ÁJ‹^"IÖ ÿú ï.?L™Ñ‡×(î¾kÍ{Y¶t>?o(b{úŽ=ú ÷÷ŽA8¼„ý¡4‘ŸNfÀ„ôL{>xt{"dìÆ`n}«¡aåè»øéÙI¬<ðéÄ[»\rgè?"Ù0Ù‚‰jÝ•„†_ðî¸ÊVhÝ›G¸ðx}õ'LÜâK…ì/îÊHá¿–íØìì¢;«8±X8edf³YQÀ¯+cïßÀGÏ`c=k¥?#g÷¾æ¥¬}Âðò"w»™~F2}µåÔ‚ELž´’_ÖðDž¾ÇŠÙ*â”Ýg '¦´å<÷\2>²‚]ÍøgzãƒHñ±TöíPè9±›w“c‰ ÇðýnövíèÔ!ê §cÿa4²w,aáõ ¨õ¸…»âÛòg;/ç“t>š‰ž|óà3,ó²#Äêu¿ëõ:gn‹–}Ïï;Ê9”·•°gï!󫙱ʌ"¡M ‹—ƒâ´Ý·»f€Ò´5íºleéÃÏðƒ`ChÕ‹o‰‚¼U,úê[Žú·"«r‚ÍL½¡Ïñ¨ïz²ã™  ·~ŜӬ_5Ç.Då–>ýð;ô-sæxÑÔ¿QÛš~·$Ö÷b gI[Ƈ‹Öpð°ƒ—žÞÅ€Ç>fÐŒ|ðØ RêËØjþf{ Š¼ÔÍü¼½1#ºQ_Ð ¤°lÙÖl.fç±-d<ñ£myoÞZB<4xh ðêø+زö±t‘ïGç/Rvt=ï½¼’¨º˜¥XzÞ3šF—µÏ€õ?ý‚ï¸>4õëÁÄ·òÑ„ü©€Í›Æc&’ØÌŸBYúÂ$¶zxâáOÿûzÑNo绥‹Ø˜TÁ‘‚m$Nx‡õ>œó,»?Á71®×&ʼnåØÏ<õÅZÚÙpj¼‰»e2ÝC²£¬ýñK¾ÿ9ÝÖ äŽžÑ}Zîu~,© xgÑzÒÒ%^˜i`àøÙ yªŸ¿=‘g|ü§ýèÇÒ<‹_R—ñÊ£û ñ¶¢­Ó‹‘ ­¹¨‰Ùˆ±Ö„Éî/‹üíÞJcøÃSˆÌÜÍš¥!´Õ‘g É?ýÀ¯9Þ4ô-AôìÅðA©ïöŒŸøä‡U¤´òÊ”] ˜ô?²…ŸÁÆHÀ¦£Ñø‰tö¬!;í7ÞyyQá嘔¦ô½ ƒã☷”O§nE±‹xµ»ƒ~qiÿhï¿6ƒä: 1‰„Ž}‚ngK”~„Æt ‰ð)3ž5îm§°:f¡®„^ýîäýîãö?´Iþä9öÅÍ`~¤pî;Öòì_¾SÇ×èï{Y'ÄÓl^°‚ÀºéÐ4ä\^•ê=|>k‡{ðÒ«Nî¥`;ë7¡\ÐF ‡Ý†Ýá@&ŽÛGµâÓ%Ÿ1m‹ŽìZ:>ÿ|va198—Ö–ì˜-®BIJhÇlÑnÁD+ôíD~Yõ6“DP?ØBVQ ƒeüzпñBæLϤó-q˜Lþ(ýxøž|2aëëÈØÌ¡Œxµ‡Ãls·W‘pØÌÈž]éѵ€ Ëž'ee0‘uÌ”U¶C‘Ìf'2”ªƒ,[ò;÷Þw7ñ~çm²$Z1×Ôb‚{ bxÉ|>ÿð*ǧßñü°ü]&¯ñÀËSÄ1˜çžéÏËÃvóÜS3hN[%C‘Vì¢BÕ™íÌn^mCÃèØ¾5áÚX:4YÂÂo'q¬b #G6béÜ™ìó×â!8qFdÖvÌf͹y,§SÆbu¿ê Èˆ635¡í=XæÓ¥Ÿ3a»/ášBöwáÖ ßäQ˜Í瓾²dÇbq eÇRH¹ìóà"ü¯tätLŒ‚FCUz„–ŸKøÛ~õ- »J;©¨¨¨¨¨¨¨¨¨ü?Âb±ðóÚÜ?j$¹¹ùd眦_ŸžØNšç¼/Àb9çC ‘ ð›÷"¥ØÐ !¦Q ×öÌ‘Baê•§.‚ýÛ(¢™‚Ì}Îw œxÕiJËèP*Ï%·Ì†,+È’ˆoãnô¬WîƒÙXì"áíÒµÁÅ)<Ñ)RZZJƒÈî¤B%9YGÉ*¶‚,!IN¼´%¡}$5©{9ZZ…FtÚšwoͧ÷°ã¸ /OMú««äØž]dÕúP¯QKÚÇGaßó ßeÑ}ð:×ÉOIáXU Ó}H+BKÞ>’³kQ"NYAëHXx ¥»>¤°çwŒ‹Ù\JVÖqN—Z]'$'>ºÐ#Jdÿ¡Lª-"Š¢Ûc(-ƒþ˜H(=±—}§mxie<#iݵ-Þ>œE¥¦>mÚæƒ •s4%ßVñÄ„èKžÇjñòIˆíÒŸ¦ç~ÃFEa Ž š7ò¢àX65žu‰mZ@*Ë`÷ÑB’‚h·ÙñVÚÕ+cÿ¦”ÊàáyvžEÌ¥ùdçyдs4¾È N~0“rM­ºÄÓ¸®"ù{S8^^ƒ]K÷!­Ýešß°“SŠo¿ôèƒ2S!iÛP$„аYkâ›…¢E¢üøaŽfçSKû´¡¾Ÿ'6NíØE–Õ,4¥×Àæ%ÒåååDFþyaØ?öy0í"´—‘mGõ) »3¨ÖxS§a ÚÆGã‹™ü£GÉÌ-Ã"+4hw m¢ñ¬ÍfÛ¾l¬ɶ‚d:Ãáƒ"M{5!P²Q•›FÒ‘üêÆÐª]["}\A ÊìCäÊá4mÔ€³Ë¢æ$[öeãpH„µD×H-Š"S›³CŽ DIVÐú‡Ñ8¾ MC]ºÊÊJ<<< ü·«Úxz/)§Œ :pÊ øÛªuÌ™ìÎ(F£(„Ķ¡M«4`<}€ƒY…ÔØ‚hÕ§;M´ÿ±1šŒØívÂÃÂ/ÉKU‘µÿ§+ÌçN(r­zw£‘ŸGá^6ªpHÑùÖ"® <1#uV-HÞ‘´iO£PÝç¹m„Çe5¢Ýn§²²’úõëÿ[Xyl7ÎeP”0ÚìJ¤Ö5‡ŽÚ|ŽåêhÕ&OÀa,äÄœ6 {Ó e[Z5 ÿh²,SXXHTTÔ%ŸˆTæãÈ‘\j„·ï@óA®"ª“t ³]FQ qÏ!´8+ö<’7§S- õ!¼I'º6ñ¦¬ )ˆÆ Ýå-gØŸzض´Œºlyïܼ\bž¯ß ˆŠ2÷q0ߎNð ¡e»VÔ±áà‘”šdÑFXË^´‹ FStˆGËÐ ÚDwBë°jŽ®ÛÅi!-IHˆBˆÆB2ö§rÚèGt«¶Ä7©ó·JŽ›Íf, uêÔù‹O±Õäs"ß›6­ëb-=ξ½'¨B‰mOËØ`´X8}"‹‚Jÿܙ҆E/ÝI³Pï¿m‰‹ŠŠ C§»ÊQP,ç—ã@@vÊx„S?Ü×eWŽ™‰lMˆPÊ¡£"ÍÚEá§Ñ€TÄÞ(G‡_P ºuþ[c¯ pæÌF7¼Hžk È/ÕѬ}¤ûù6 ¥‘‘S†ˆ‚Ó¯1ÝÚR˜+Ó¨ežØ Ø¿+ƒ2QBÑhñiÐ>ñá€SY!ù§ê`=™K•@LË@Jä⌈ AdÐ^ ºT¦ÿìTä'-ã & nóN´iZÿ¢—.òóó©_¿>Z­K×^ê“:_¢Ûw'λ„ÛöS,„Ò°yVâ²-ÛÒ¶eCü/QÌbña’Ž”‚¢]$ºËPZ‡×ptýNNãE@pKºE¡ÃNÕ™ÓäUxÛ®kr9tô$åfY´Öªêٕz“]ß2˜8ɔǡ5DõhK=­SÉI¤ž¤V£!¸A3â㛬½‚}vsxw5‘=›SG+€TÌÞM(W¼|£èØ;žÀi)%s_ Ùµ¾ÔoO›¸¼¹*›}GNSkwÏK›D:D{PºÒ¨[èáuNß8вù@ Á'$‚V];RO ²¹˜cäUIN;AM:Ó¶i¾˜e{A*ÛVáé¢(Óu-B¬œÚ½…£Õ:‚êÄÒ¡k3©Ê;Æ¡ô\LŠ? Ûu UtðÅëD,æðQMÛFá'—øÛ^4íÒ›Û)²òu4í…¯d$÷øŽœ®Y¡N«Ú6 Çp–¦³3½‡ÝATç[i^ìÒ7Š€Î·{·!cñIîϦV£!$*ŽøÖM Ò‚éL:i™¹TXiÑ+&Á:*9¼m?Ev'ŠÆ-ÛjoÑBÁÑmÊ×à@`p4¡¡4ˆ D –“©Åx7Ž"2Ô×ícïbÏq§Lhã¦x[}iÖNœhÕ."ÆŠ"òËÂCªÍ4‰ ¾øe3g û÷eP\i&$¦1^vZtjˆœ½…ÝY"h ´Q3üD?ZÄG UgcØ} £ {†Û4š ­Œ¬ §a='ÕI]ßj޵Ý2† ÏrnÙO±¨ õlFÏþMð¬Í#ãœOb§ª¤˜RKqÊX5Ö˜DîOtí·j³S9xª˜Z{0ñ}»ë'6r÷Q:Öõ<§Å–2r2²Ð6ïAÓ ÜÌœ5ß’dŽ¢÷¨Á4*ÉÜ›‹¶qêøžQЖǞ™X2 U‡(¼‘qÔäs쌎øøºXËò¯Ú>_h§ëפªªOO<==ÿ%Õh4(Šâª*¤é· ì\Uõ‡äjLnî cUÀ**********ÿÃܘ àëÏ¥ àëG5IÏ'ÿ ÃpÕwI–ý…ï¤ÓoÑótüÇ缑ó¦ã?MÿÝP.»ª®ôïÿ®&üOJßÀÿåµðŸ'€ÿY®œþïóŸ%Ë®4Kÿ]Mö÷ÀÿØ÷ß.ßLfµ¥$˜6/<ÉãúXü®Á)࿜¾ìÊåÀ7“Lÿó\š¾^3ã0ïeΈetÙü1}®ZZr˜;à="Ïáöººÿ!?寲í×oÕ^~^ϱ»>Ïþã¨^›q¾á|w)›ÕÎaÞ/Çà…±w£oèû×}•’C¬øa.߬ȧÃCÓ˜2qÑÚ[âoæÝÕÑÅññ6×ÙZÁÒ”þŸNcT¸×?ºZÊS1oÅïdTxAi­Ÿ‚Ç»5%à:_Zûÿ-¬–€VQQQQQQQQQQùS47aNÐÿÐ/Ðᾇi£ó#ø/|;¤iO|½ÇŸ–i¼>sªrEÙÑ ÿÅUuc­6FóÇûtoé4Â5k×µìF®Ãx]‹vÝì+^sCj2 ÀužïÐõhGLPä`ÇG_“äïõ Í?*ª»1u_+ü׋„þ%i‰àÎÏ^'à*ù{#K¬æ&èçõ»ëólÍuçN†´1ôäZ®ÂêW—&¯à®Ö”>wM¥å-a ¢©¯½ñ%þfÞ]ÅöŸÂÔv2 â½þñÕÒ"‘{ƵÃèöqb㣯{ò÷ÿ#jXEEEEEEEEEEåÊ›=AC~AþÍ×p$YºþmWÜI« ³Y¹ú½¿Fƒà­¡8ߤfeo Ù‘ùæ”ûkŒ,ËhÐPS[scM‘¬  `µZUÙ¹‘ôá_äf]kgåðºµ_ŸÀºîR¾ µÅÔ\Ãõ]R\rÓÚEQT™¾ $Y¢° ð˜o B†²ü|”«ý-Eƒ¬¡ª ŸJÕQQ¹ñ÷‰O‚êÖ#H‘©-û»öIƒ  ¥^]PìU¨ZàúÎ]áç é8(ù+:ûø8Þuñqû8¦âjÿ‘¾ÿÿÚt« `•+ï͈ˆˆ¸¹6´hâ¹2¾²,«©òËŽCtœ+ãûÿYv@eU%Z­AÈŠ|ôËh4âp8 »aÚ¥AƒÝn§ººšˆú7”ìÈ’LIIÉ © ˆ¬yÃÌãÕÌ·ÅbÁbu•€¾Ùt… ‚—N‡ÂÍweÚ(;‚FàLþ™Îo‚BêÖ­ûU¹PQQQQQ¹qý‡ÿO¨ `•+£(xho¾mƒ¬Èh4 ;U® ­ìUvÀ•ÌÐ ‚ p㌅ Ðš®]Z­ö†Ô;²æÆÖ‡7Ú<^U»5ÂM«+4 Zíu¾öú¶ÿF•ÕoÒÞÄó­¢¢¢¢¢¢òüUuTTTTTTTTTTTþŒ›ñdŠÊ_xUÞUTTTT¿DEEEEEEEåæFM«¨¨¨¨¨¨8¢4 IDAT¨¨¨¨¨\ l)¼÷ʶ+㪠RJùl[9Ÿ9 âPGREEEåÅJñï™þÂLÿ‹ýKûœ[zvC¯×óþ¾¸E+yô±å«ym‘œÞ³ç_ߊå¯|¿p>¶‚u$UT.O埰˜ÓÒÍtã‘o¸G¯Gßã—Ÿú{fTɘw?z}ƒîx•–kÔLÉLþêèõzžÈš37™l8޲pÎ|VlÏÁy='ë{Féƒ^¯çÕmV®­$–óÓÄn$¼»G]ë5¬¢¢¢¢¢¢¢¢¢¢ò£àØñ&z½žî½™¹±ú‚Ï*9¼k ó>Ûã–±ý£éŒÐëÑëõè'~ÍÑbÈ`î°AôÔëÑë_aÇ¿ ~Hùlÿr‰îç zúköä°düÝô×ëÑëŸam…ùÜæU‘E̦m¼5ñ'ÊÏ>ÇœÏÎ/C¯×ÓoÌ,VgžßV[îÅÜ8ŠØÆ•,}èvúêõèõϱ¾Ö† (y‹yÐýû=úáå ú-Pf®¤~_vÍy‚~î¿2keYÌ»g½õzôzô¯lAºì¨²ÿÊÜ··¹ æ¿È]z=zýƒ|´1ã•fE–pØwðÆø”^ò™1{³' aò‚´Ë€|4y1ǪÝ€üåŒÕ' OèFï~Søµòr_¬fÿÒ×\ ýý¼ûËjÈæ‡Gîtà ֹŸ©È;yM¯G¯ïIâÐÏIÀJþþoyT¯G¯Îäw·¸ùÅlzëI†éõèõ1ÿP6ÒøtPzèõèõ¯³ë¯‹ñûüÙ®Ìälz‡ÛôzôúÞ<ðìw¤;\íNc¸^>ÁÕö÷·àà_œ“íWÙἜl[9“zqŸK%s5³ÆôC¯×“àJ¼è§þD™˜ÊçƒÏöù v) ® ÜWnÙÐÓkøÌIþë‘3ÇÉïí~VÏÁ#y{› °rrÛg<|výŽšÉ²#V8¾„§F÷½¸Ï­¥Ö.ý=ÕbOáû‡¹Æ.!„=zýC,É“A1n|Ùõ›z=úÄÛ™¸h'w,äµv»e°§ñÍßòcÒi—¬_vž¯U›xnhº»Çfì’<äݳé6qЉœMóè]ï°ßbäÀ¢çäþÛÄÉŸ²óŒt"qbí»Œë£G?ðy~Lw­þš­o2b`Oôúôz=}wIQpä,füÄŸ\m*IÛ´7ßý‘­+_dà9yÈŒù»)úKͬ"=å¾ùd÷%‰£,¿·”¤ƒ…çõÂ[ã“+Ë®5hÞÈL½½¾ÃGÏçÄ9õxœg?„^¯gàäIÊ“o‹ÈÍužÕ™Ão‹æóÕÊ£òÂÒaÞü0“ïÆ`00£Ë ï–ÜäI_5Û¥ƒôèõƒyᇽ”þ‰ˆÿÑ'©ìä¾fœ^^?‚©n»ÄÈà›—³÷dç–vêzõêNB‚žÇWO£Ë3…™‡ Llƒ1e.côzôúÛyö_»(ÓøfÊhnq·áö¶Sf>ßàü¤{R'{£ÎÚ–¡wòÎ3`åĦOxè¬m¹÷EVª¼Â¼˜ýèù$™Ãº‰Yn{|ëÝóÈüÓqÍäûÙKØ•VìÖ9çìs‚^þÍ—ùŽüƒó]ö¹›½¾?“>ÚDVÆï¼2öRû¼œ¢Zñâåuj‘{^º“xÛólª9;ŧøýã±.0á-~?u±r=¹øAú=0›äR;ÆÇýúÐ-!„n ô|ß(Kaê¹võæÞ)óÉ´V’4wŠÛ?À3WÐÛŠ¢ ³‹7Æ.åÜ홎ZrV>^¯§÷ícøb¿(dÛ9;‘§¿I¢à’ç¥1ýƒ_rÂî¼²¿}‰¯˜ºèU·¯¨GÿÈ$v€#™7FÝêö—ôÜ÷Mdi¯èõèõ½xÛ\ŽÔäòë[ÃÝãŸàš¿{_fÍÞ¬|ñz»Ÿ1âM]:l΀¾tOУ׿IòEƒa&oËlîè{s V·#ŸÅ_˼Õǯ$Nå«xtÜä^·J32振¹C wÌË8¯NlàÕ ·1cqÒ ®´>Ôíù [·¬áÛÁÖ¼1ìâyý¿îKbéó¹çeïnÍŤä£~}è– §›þmR´ž´·˜çó@´ÛŸuPLãëÉ£Üò2™s«®0W¦ÊÌ›ïì4°aé—Œˆ¾^ö4›Õó¾å«UY@ÿz{>ëö^ƒyúëu2G û×/`öç)çýãËèÇ/¦¥0òÍŸI6xµ¯Ï2²$_u{JVÎâýØHy®›:ù›¨ `•–ÝoÑëEæ $ïØÌìÁ®íaM.ëÞzˆÇfü@f°:€ü#Øô£y{‹ƒ!™äp0¿‚íÌÀ4c» 6½\Ƴoþ›4^U%¾mñò¯ † <ãw†½;ÒØúÍ[ßñ2« v½#ðöœXEW0oÅôëÿÛü½]m±•’úÃç|tô6~7غà-FÆ¿çïÌi…ö­’óí?ð>ë ’ÞyõÃ8 ¨˜Îß0 lûñ¼Þyf×wk«e¼&>ÌŽw×{yƒƒá7&ÔìgKr–ûp>³„M)† <—¿„åo¥eK9IáǾ"=Ä_ 4y iÎPf&0,JäÈÞm¤f›ÅŠã‚,rñÏOÑ»ÏólòÕqáí…ÆÓV-zcÁ#h¡q"’݆Íá<— ³>áþ¡³¼°‡ E „¥/n`èo)Rö°ñõÞyiõ’Ïe©ë9\¥eú6†%Ã8}d;†‰¬¯R|5Øù¶Âë'!I¯=ƒÿ· †$>{0§?M‡ªR6ncðZ†ß_¤©×Nﬦ|óN4º…OR ¾lÁê5Ûɯ…LÇúò/ì6ø}V!O¿¾û/‰ñÅ}Ð\V¶¨)8ÊÖu&žO1`H^È]MŠ˜¿8 »¹%÷Í\ÀŽÃ/ÌèĆ)OR5m;  ó‚xvÌâóÁVw ¥*g'«ì`è¯ ÉÐÍw/-:Œ7’·lÅ`0’²‡ÅÇѧ‡¿<:㬵ì60|ãÃÓ-¡£Äï\2¹êíÛ1üÉö¿.Ê«è>Ïõ¬õß>†òÁ;$×¢ñŠàîŸ]ÿ¾èîXÌ©›9Õü>>[ºí\;Œ©O×¶Ñh…¿¢pÚ±DÝçk“0¤¤’bÀ`øžû œü~‰ïDðƒÁ@ŠÁÀžŸ2Þ¾“}x¡»ðþVënWFƒØ.7Ï›c|vÏO´~ï’  †oh[T„Ðc&Ÿ4ûŒy) ×–²s -^|œÈ}+Y·£  ë˜5²¾%×H!ki>ì9æmÿ–Gú·À_££jÛëŒ^Æ++w`0¤`0,¤Ëw2ö‡\´‚€V{ñ8h Z$ì~-1y>†ç4ß»µ2®øÒÉeĵùlxçaÆO]Èñ`?<ÏNí‰5¼ôÈ>ÝœN•·î\0«vËË é3…_N@ƒ¢ˆ$½û ‘ß0Öòü ý¼ðí rY;wëä±l1Øøé4nixã„Ä4nù5MlÉ,•qØ,˜LFŒ&#F‹é¿­ôhÄáÑ;[€(â°[±˜F¬g_X)<ÉI¥¡µ­"2"“£É„Ù"^ãSB ²äÀzî¹ ’(â°;QíV×øÍØ%pb³;í&ŒfEQ\ã,Z0™L˜Ì¶#IrUH8l éç»üžbÀ`ø·èJÝ?ñK|Ÿ÷ßdÕñÓLÚŰ_ Ö?OC!‰¶ YÌÔQãøv&O­Kf}L¯iV>Ø™LJŠ/îˆ8÷x»CÂXåGëÀ"ví>Ä]ë ÖN&ضƒ÷Ô@éBï}•’  ?2Ë^߯  »X:%wßÚ€ƒR’æÍ÷%£Øh0°ù«Y n|þ.çãKŸ`aA8 tøzp`;š÷·³'%…”=«yòè·üT©A‹‘áãXºÇ€Á°ƒesÆ¢KÞÀ ±s  gᑽ—ûòÿ°F+×?K¿žOó« A Ù)^÷.,iË*ƒ?/àñN³c7Ùæ6üË`À°é|Ϥò{JÞ¹çüò.Zô´ôðãl.ô·=/'«¥YØ÷bêzC s;9ÈÊÌÂx"‡¨§±Áà²õúïÞcʼn¤×ž%hžƒaNcú§iÃm³~q ¿ÿkwuó'ÄRKÀðÌÛfÀ`XÅ]ûfýñjvÌž†ýõõ$§øí…|¦½qA XQPêÙÍŽ¹$™­ëNrÛOÏêm£å¼¯m‹Ñ„ÅáÀj]/Iâ9ý%K¢CDFArX1›ŒV’ HØíNv3&³ò¶@²c2Zµ¾µHŸì…¬¯¤bŽŸÜGzu[âqš3^Ñë$v'²t}%W_"»³ÙŠC±ÙØ­&L&#vIF´^ðL¤ ÆÒbu¸Ú&9‘œœöª‰gÂs0¤S¤Ë§²˜Ý¶ßm“.K#&³‡âê¯h7Ÿ¶èò*4œÿ¯Ãê’¡?÷dD[9Ùëù×»Gh>d 3'uÁÃ)b·[±Z\vÞrÖ?©8E¶£.fjm.;o5Ÿm›»ÈÔœIcÅ«_sX‘ÅÿÔúïã›aÆz÷ä]èCÜŒ6ú¿‹šVQQQQQQQQQQùGÙ¶áOÌKdYeXÜ»8!(†¡³óÍkÃ3Z]›»¨¾ îÑ…–&̶Ãdç7!&ò(©[ûÓ¥…Øm0Oå’÷g?Þ–®=sK/¢êÞ ýÛ;‚'àÙ5‘„‚bòe×9æÞ¯1ü<…fV °T×’_ådü ƒÑ–—PYcro¼²IÝë—Í‘=­¢ý/ý@r É“e4ú§™ÒÖ”ÈhëëJ,SMaÞ)²GÓ–îÝzÑ)À‡àØ ‚ØÛaB×”Ú*ªjÓ9]Ü‘¸¨K6w¾áÜ2} Ë?EÝZ FNŸÐ¢Tw¤¡Ф$6³Ä¼8x<_î+?l­ç\öüò -Ò¹µ½4ƒÝI¿cº”úø`vjÑqš•/ÍàåO6“ïjø$LeñšwéÓ E´ø× Ä^TFyY1%Þ‘$„ú]x¨"/[Æ^¦'ÖhÔšŽš°mgÛö®´Œ ÆÐéIÈ+%Ÿ]ìüý.z·q»têG›S­É#÷Ð:Ö‚#iU· !Éì:A°ÐŒ0 к]kœÔÊIl[7˜„x 2Ò}0N&ÿª¥ø}Ö\F¶­Š€‡§¿Œ¹Ì&¼#iá§s‡eìˋɯ©¤Ê,yä@—x×XÅ÷gtv9ý¶›Å†µ<‘vum}Z„EÓ¬¨äâ“Z5똿¦ƒûûP™+ m4®g¶MäÞìSœBÀ§Ûd&¶t'ž¡Ôké}Qòÿ?GƒGÂ4žŠw{M­=‚ëѤûÝÜVÏŠÅ|œì3^øùDza$¢r_¯éÉCšããùwÓ«4Nå…ù”T”SVVJi•™S$mñã嵓hvv½ÒyüDZÛ,W,'ÞÍóµJ[éðõ"P[L¡É´eêÓz@¦Ã=ÏRðÝ\RleÏ©1Üß>»D ¯7vц] £o¿tê\÷Ú*f»§¤ÅKweóŒ~h-ƒÎ†ç[ðÔÚ—ðÙ˜Dî¿I‚K’è>QãCH` W—4£ôübæ¿5’ð³væ#xã»/x¸os¼íN·.QL|õ¿½B'oWÚ@‘Sسán‰-1mz—›Ëé¢*D¿× ©¬„*“õú–E¼©Õ”³÷‡—¸+1‘ÄþòÂÛ)¨Já«§Ç3rà­ œHâ¨9ì/¿Öe¯ç)Ö~÷ ¾_Æwó—ñá¬I<9~(yjÁjÈfÁ”ÓláíÛ‡1lÆdú†qý‡2ôÖÛ¹÷þ/9p-Û£Ø(ܵgþÒ}š³Ã’E|ùqUr?½1™»f`â}Ìþ5[ÅfžŸú=ß0’aC?À ) ž`áSƒ(ï¢|l nåÎnq.ÿ„Â[âï¯A£ØÉ† -i\„„i<é¶-²6Œˆ–ž!õiÖýN†Ô±b1ãdž¾ Ñ^l§ú¿Êo¿¾F_4(ì!yÃ=ôn ( Ûõ$.' 5øám¦LúŠtwéwðö¢/¸¿W3¼D·Îi?‰'»è°×TRQu„ÜÒδŒÛ±ï×o*jÏ®i »¹‚B[-U5ç“iÛçv êOÏ…Òÿ:Ø ª¨*+¢Ê· !>T”VQéôà‘)}¡¬„J£åÜÉŲŸ°BxˆiŽ q˜ÅiGî8™©d¬5å”–f_Ñ™¡ È ¢£†"[-U•58ðôóÃKpRQhÅjÖÒ0$œoKü5…°¡ï³ý·Y´×¸| Ùiãàžüô^ÊK)¯ªÅ‰/_¼<$×óLÐ ¸‘^.Ÿ§hÝ+,«óï?œ@€·ëE+.ñ·/«Ûêv¡Gþtó³`±¦“•_‡ºþ>hãïgL×Pü¦^û@ütÉìÚp7½ã]ínб/­³s¨ºÈÞe²}s1xõ¡}Ÿ[ܵ5M}ü kJpp »Ö %¡­‚ „wL§ìœ ^ÆSPdO¢¶¤y§Öü–‚'@£,‡X0s"w ÄøpKVŒlø×B2Ïc°ÛxvÑ|&?º’R$Ê’¿ä©»¿á8Pv(‰ŸüLyüþñÓÜÞ?‘ÄÄñ¼÷[&{2ï¾ô=ßÎÅ·½Áö* ’F@ÀAÕºÙ 1“Í5Þøû4¤mw-{¶—c)Û]Ž\ú O<ú‹?ÎðásIÃãÊÉ(û1¶lªÀ#` ½{†!›k(.1cqúÓ&4œ ]9CéÞÖý÷ú3êd6§¸ Á¥('õ¢õ|ÁGI±‹0®ãé'±èÃ;9|8Ãöçí"N{ s§/ ݸ’ɃF1åó5ì\õ÷œµÏ_&SE‹æ,âã—ÇðÐÝ/²Î°œçg~Ä»Óîbä€Dfýv„åÏŒ`Ø þ¼½Sþ?öÎ; ªc{üŸ»Þ;¨*ˆ]c¯(öš[ªé1í½Ô÷R^âËKOLbb[bï]±c¯¢Ò{‡]¶ÝûûcKlD’è÷w?ÿ$.»sÏÌœ™sæœ;3`®%aáSDDÆ0bØhfÌú–#z(9s˜ë²èËçyæÍ—™öÂ/l?S€Tº“§OfTLƒß`m±Îr]ÁŒŸXüY ÆÅ0fÜ8æÆº\v}ý(‘ÑÄDŒå¹Vr^§A­”㿟âËíêwQÿCM!9ñÍ#øçç:&¾Ó“ó~fö'ËØ´q9ï½ôÞxa<ùE,Ù°îÝ_9SË—M$ú¹_9—°g#G2bÄHFÆ|Bœ ÀÉ?Œ!Ó\ø©×^úùù:-ÚÛ¨{ÙÖe=|Œ”Ÿ\ÈÓQÑ >šÉ3>$¶Hާ49,##########órœ#ÛsYôâDœ2…éSbÎÞ«à2×Q§7! WÄL¤lü˜™1?¢Ÿ<®¾>ØbÄ$ÖoåêKà¹Ì;OâœàD…;ÞþAxÛ]UŽ/ÍÏå×ðF½„^g@@@¢®æ»Öà“'F2nâXf¾þ)»Î×5ý$'Z»ãÞ¼î-;~| <—MÞ5ǽU“ò)ÞÃéi”’Y‘Méànx]nË9ÄQ]KZøûbÙ#]ᯟdòè=„ÿ2™Pó Ò*bZ½ I°,÷ @0[jJw|Šª¨­¬ET:áÒO;W7µX|±:‡ý¿}È&Í4¦úç‘’UBee)åpö ÀÏËÐR“hÙ áΈ¢¹ðÜšò0SgÅÑcÖ¯ ?£PX¥ùÜð.Ñ¢-×aT‹ˆõ‰xì}ižšCž¨@‰©>!¤@áî‰Ory**Eýç‚=NFªœ2ªÔõeh<ñÏ*¥LkBR›1_ƺûÒ<%óº¶wi¿®ÎÊêö7»MØy†Ñ¼/›'E2dô ,<¢£ûè6€ —€JŽ,ûˆ§Æ cúû+9_«Ä#°˜ô¹p1‹¬6!¹\èP¢¶R¡¶¾HBJ…ET‹5*¨¾*È|ú·•Æu¥“«?þÍ H9v‘ —2ÉÌ6cÛ:—«ÏY4séì9ò|ÓÙê.‡¸XAÎé“dx£»µ%hŸz ÿžôq6-é;©#NW}ýØ/KH;Û»P¨¬°+ÝÍg/ÏdÚÃS˜òðƒ<øÎ&ò³³ÿbì®û¾Ù€x'éɆ~n*‚úh+þñ“?ÝLú…KdUè*ß(&-æë%… útÞ(ð iƒÕ<=õm¾M  ¬‚ZãŸT(Pæç“Û¢­l¹F¼h™–MŽÀM[LõÔ–äq±¤˜Ò'8éjƒµŸv•ãwv þ¿ú: ¦«w°Ô^g áSA‰Jyy>P¡qtÅã| ç*ˆým3ï?:ŠqãGòì{ó9–s/ØD…²–ó kY½Iä­G9ºã¼õÇØ|䛿˜OIÛ§Xvh?{|Î`/¬¤¿û¼b*• µ•-V…»(ö™ÌGKã8¼õ jãŸÀ#¿½@‡/°|_{ç°hæ*†¬Œ#nß6>š˜Æ»ŸœlÂ&´Á3|ÃûdÏY <‹ =ªa$²"q|³sûV?FåÖݜɩE•ý+E½7±wßôP+!½„nŸíçÀþ=Ì™nä»ÿ¬£â¾ò­Ô8zê9ä^1Œ)oÎå@zíþ¶šü“‡IñAOo3¦ËvVဳ^2¯„ʆ¹°£YDB$szK_Á”iS™2io®¶Øsƒž²Ä£$H½óe;¯pÀµN‚²kN0¥ï䀢šYvý‹{¶±ï¡Atºf^(#ûôi.úFÒÕÊb[rO­à‰ïrÄ¥}Æ…ÿÎǰÌú«v‹)Q)L–—?*'WÜÓ²ÉCƒƒ›þØ\í×ÔÕa4›×^û?{”ÉÑå×)´1‹6î4o€£Òò k¨È_É?bb˜<ëCÖœ¼V›.ÛçΞ.×íxõfÄû$=1ñ“§ñÌ»'éõB?¬‹Ž°mÅN>zl$ã'Œæé·¿åPh|Å'ÇméÞ:Eu!Õ¥äæWÔ¿ØWÎΧ1uÚ)z-Bˆ$"hTŠü{Ä(zæ%¾ÛQI³ýuÏâûñC0æ]Î9úîò†>áÊiÓönOâ»™£ÿà$ö–Æ øvëE;ß~g)וּ/»zS³åuþ•ÒžIá¶”£Õ•’“_YŒüûÎ{ç2kÔgäôìJ^-±¹ÚLŸÙÆ»aôöQ¡ÄØà+ªÜÜñNÉ&ïêeÀɤIU´‹é~Θ3öpPêJ{ì¬L˜/'=} LɺÖW”Dôö-èÖ©}JaCh4*l¬/°üƒ]HŸà‡m±ìYõ0™¿nàL‘‘o=O»ð—X³osëAXî2D3¥)'gÏáø Vu¹´fòÚñõÑ£]5ŠÜÓû8œX‹uþ* ÚÏeëžwàî€J_AÞñ¥¼=Ï—Å»¿a”K¢­=Í{Äã§Ù,JN#Ç~&CCjÐëôXù äµO—±yÃVv?Š”ÄD.±ÉþÂ+Ù¾cûMcßo+ÉGIð”¹ìX·šµKçòêH_Ö&çèz¶tâƒÙ·¯Žï‰·2…ù¯ïÆ.ró¶lg×òñ$Í]Ë9-Xe-¦rØöì~‰Ž’é¦/0å?F†º†ÖzÒ+z.iyoÒ0NøåÀî´´ö¼G‹ IDATÆÇ?Ÿä£¸x)“K™&l[çQPÆ5kPa{Íx¾ J;l2QÒ;wíaï³sÑ Ê­òæ²WéÙç=⶯âý%lZVÇ öù k¶`S¾‹bÿçøaËgŒî€]jÍ_ÚÊÎ%39öáWØ~°›½ß=ÄöE+(UÚÓé‰_عaë—|Îäžµ,X{÷¡ ™üϾ·š%=E?+¬¬Sù~Ö\l¦Ì!vßAŽ~nŧïF+©±Î^aÜ~ÄígÍ›ƒØ°h#µ6þD½º˜ØÙúë´s/`ë Tj%H"`‡wË@¼œ¬nàgë(¾˜Á–/¦ñÌëûé³d«‹‡¹Q­Fcmºü•öí™9ïG÷üïòTÅ[3ú›gèÞçyæm?ÄáŸ:³ú‰_éòÃöîÙÃ’—syë_q öÉ-xs¯`–ßAžúæl?GÖpS](ξDxßÎø @2Åñ¿g/0eûf6¬ZÀ÷dí‡ëï3ý÷¢’›@FFFFFFFFFFæ¯CbøbËË„äobÖÃÿåøàwèv‹eKØ„øuB5ëgþ“…DPnT¡P\^Õ¨³¶ÁúžnÖ%³ö»8lB‡Ó­…¹†Ã ;@OV7‘Ûlv yËY¼½ôA¼Ðrbþ|¶/ß@§·GR—˜@ˆKoü]]9g’h­¡ÌËÔpéèF–ü\ËCË{bT”R—MßÁ O3ÖijüóÃø ™D‡`—ú_Û3ðí• |;“oû=Â¥Ÿ×òD°p˶–$@º¼ψ^£ÂZiB§èÌK?u¾e[™Ä ò.Õ’÷2-5¡×VSi} Ïö¯ò‹¯ÕП×Ë  eý¿>Ág~,±-ËÙôîL~ùi£ÿ9øšE¨$ÔpL™½F‰µJ Wõ‹­5V‚„ÄU» ôöÖXIbC&L ¬Õ¨kMWÉf¤ÎZZ)XÚãrDÒ£³±ÆªÉôû:Ýž2›=&R°ñ£vÇ1§j~ºŠmÛÎÑidºÍx›n3ÞªXÿÄ[l‹ëÅsófðÕãÿåŸ%µ V‘[:‚®Ùì©Æ½U½PÀ;/Nc¾-T»Ógú ø\ŽØ–l`íáv |³-v¸óà‚©|2ã}^«¨±šüŠQüä~¹¼2ÎîÚÌÎX%cçvBuÃ>½SªH?°‘µË LZܽ~‡»Ÿ®óɦ‡8=o6¿Î.dÌ+ã Ñ…ËY~¤#'‡`Û`ÒQã5šO¾xˆö.W…¹JÖ`ÓÂñšÄ³%ø§äºãõQÄ?mô1‡%#€KK˜øÚdûÎbÏW1X+!|ô+¸Ìu ²þ4UßÎ<òÉa³ØôÍ{Œúу—^ŸÅƒ=¼›P*Ë’¬¬°Ò• ­»þ¨@#Zk+¬¥+ß½ÜpJ4ú\Ž­^‘½f jÚóìì7æñÛQTÔ9%D“ £­¥Þ½Þá£/¢q¡”­þÂÑq?Ú¿Ó$ èëÐií°é3‰žjÀɶF{²÷à°ç@èŒ@£(Ý;×Õšõè}¢è×¶5žÖ.„ØTb§0ƒVY4Pk’ /“ü®¯ðz€eŽönÕ•¿%åµ.´m"Q4N4k=˜'NS¦©ÃNt¤[NÇ^d×ú­ìÚ;×2òÄ>Ô)ч<ÍønõL!|]ì,zîÖ‹6 rɃú—¯îÏÊŽàÁ3ùzðLÀÀÁÙ³9¶çÁAi¦¼Õ//û$5<¸| ‰ë¹<~̘” Y©o<6c¨Àû{_¡;€n7³~ÄÁ‘³ém¨á\ü)F>ö´…)H i3F ¹R¦®ì¿|O÷W_¦¥³ ·o/F}xÕ³*IÛÌÆ5f&,èÖ`[üºOç³ÍS9ùÝXüI ãf¦•úÖ-%Š—ç/ ÉdÂh£A mF>Å;#ë?¿zŽûŽ }CÉà«ÞÓ¸ðÛ:k1†Ù¿©ÿ­¯¶ãøhç8RWφuHê<0ÕÕö9WÛëmX%ë>øš e;ùÀ?Uo¿Ì²ù;ëëEhø?ùÏOcp§’ý_-ä䯭­íМÝÈ÷·òƒYGYY-g¾w¦ÕgSicçÆˆÿmaÉ|Þ{+V3ÕoonÄ›@iÂ|ñË”mÑ׺ñæ¡8|}Ë++öròl(¾nsÊ„¤ÁÙf:󷕃h¥£PMåèfÔ†ÌdJ7…eNtñ¡ƒÆærÒwüÂûŸï¡Ê^Zt %=À »>}éª µèÍÖ¥UÔ:g²ëû÷ذÐ2UÂ`j1b }‘I¥ËÃÑ¥râh’Ã(øAÒ²ŸÉj?žÿ5‡Š•ÿà¥mHiÿ4S~›Êì)ïðr­Á\MQÍ~r±ì* WÂG>EøíƳY±Í3Lèj¶¬/\|è ±øzmå˜kj)­°Â¶ïUö¹Î–ì”òF2¸KK\ê ˜Úô¦³§ p'¼s$=\AÔúÒQ­À,–°îGþûí!j 7Âcª+Ì&=½0`( rÈmùc»9Yäî8î/ãø‹Áá/2±5 1ºù®R`0esrÁÌYÞÁD¥Ð–§øR%(p–  ãɯ޿Iç°|Öˆ¯,äÇ'Ô8_í܈&ŒnÝ騭­@iO€½#®Jê ˜Mzt:#TŸ'³Ë,f†Y<·öÿè0§>è˕զÍ#že^«“¬Xº–¯ª¢x~rçë^Ü©ºBÑpo°›OŽÕ)æLV߿΅Q{Ùè¿y°ŒŒŒŒŒŒŒŒŒŒÌ_ˆ ή—H-«¿ÈÁŸÿ2*´õVªQ©”(”*Ë®ˆÚr*jjëêt E{Ñ{‡bªt‚%€˜žÀ™öA´¼åsMhËXÿõvjÇ3éÁöØb½Sµ³e§CöYδ $°áˆSµF… P¡F•Æ¥æ"걎^¸Øj©COn‘v6^8`‡ƒS9ÕzÉRff"ña-c )G7³â»RF..¨©ª¦\Û‰O#Õ%'Yý¿(#fÒ°Ö8Ʋ<Ê —ëHh¯Êoôê³B…Fmi?%vØÚŠHª*Ë‹ªK¤¹Ù`çì„Õ\:›J~õµÇí)ÔJ %j@ãÔŽé_­cÍšµ¬_¿”_{’‡Æ?Å C)½˜Á¥Ü ôW‡TÔ*…••5TmccJ4=,}>ü¿ŽX-ˆ•ùœO-Æ„56Ö‚º =@M6çUX¹4ÃDZŒ½åˆI²Îr&,€æ‚ Î.y”,KÙºÌs¤µ ¡• AcWB €©‚b¥ôpÄÁÉ@5á¼øÓo¬^·ŽÕ!¬O[Q[HÚ™,{º4xwy”y;¶±~Ý·¼úX}Üp¨ëIJXÌCÃèèŽèÌk –±fÝ:V~0’Оmð¤ºIØÕAŸÆb(âì¬[¤eôâYt0é¨.+A[~ð°ÆÎ­ ¥Ò\°̓ÐÁÍe“Ì/`ƨ¿î"c÷0ºUìä·ØÂkî ÓååP« ªš†_tÔ˜ H å™úÙªIîL%¤çÖïk>™+?!úX"‰—c’`²ñ)¨ª,&·ÌІ¿ø%Ÿô B1·‰w?˜ÑthÝ‚é*¤°çðÊ&#¹[ör¡G8-4*”å¥Wvï) N[‰V¥@´iÅÐYóX¿a_Ž ¡àX<©ú?°S¹Á¨ë=õ)O• …Ò2Þ”×}.(Th …3Ž®yõÇ}ŠÔägp©mkZ©ÀÀå«ðô³ÆV¥£îȦJ J• SQ&¥fUJJ[5æ²|Šjêï/U«®z¹è^@@ ˜Lõ»;%37HPÛÚ`U”L–e[)úšRj<ÜpiJQÔ.ø‡ôdDñzVæUP©x€f=zMKF¿ü-ë×®cýÚõ¬_ÿýƒÜѵLWI*ÑPÑWSéáÒ´òýÙ=a¬¡º²ŒJÉ2–q°ÃÁCƒêVëu>Ig$•5VvÅ{j,%W¬AßÌËòB½*JÔ‹ÍsuËáüÅúÙÀ&€¶-*(¯S]™Å½iÕ *5V¶õv@_J¶¢£¯'.˜)Ï‹ã×Åáÿ2®½kýxÏ %»ÁÍêotÖ’°—Ô1fÁóÛbÔQ]~•min…­K5uÚÔS¥DT¨•N8ºæÕϵyç¹Ö’æ@MQçÓó©½:Y¤V¡P(Q©5(cI¥ Gʶ$¬wåe€¾€Ôø ÊÍ–1QWY@±É2wŠ*[ì}¬±RÝØ>c.ã||&P¾Í©#èåàËØ×^§÷é-ÄlQ«/qÉ2 põµÆZÔ8àqþ³`=ë×®eí†wÐû9~ülAúÊŒ]+Úö*¤¬¨É!¿Þ̶ؙ8ú”“WPF‰¶#ÍÇ^Oñ¨¿y/Rx£¹Q£D¨÷UJGl/’^ˆÆÍ‹§dâ“Ê(Òu"pèñ¶°!71ßßâëÅëX·v-k×¾FçŽÏ³èóñø ÂuþöeŸ=Œ´"ô€¨­¦ªòònakšµ‘PXÕa®3Q|i'óß8Açyåmñ9\ò¨0YtC—•JzxõU(HH$©¼’öºa_bÉ{ûð|vººŽ8¹R¡³W,¥%Ð¡Õ ÖléЭ5m]RÙw¨ ÑV‰É*„Éïü\?ï¬cí†0ÈU¢s¥³B‚D³ g.œÜÆcWÚ;·&¼ä‰5&Zt C0”SSTh‹º*ÊmUXÛÚ`%ê1˜êçYÉ€!äiæüÏ•ùÌãB%h” IVJúLüSúŒ¢k Q•!•s7SÐâ1–oÛȺ5ï24Ä¥YB0ë1˜ê­ªh¹+Øœµ–·>(çåØM¬_»Ÿ_íM­}u…ÔhÔ(’ZÀdÝ–GfÿÚPïÕkž§›“5Js·sòãÏp®¶†ã:£!‰Ã.Øiü°šOx—GëÒ9‘_„–n¼ñë Ö®]˲÷bhó@kšÁu;ITßh<7ŒijÊ2é›õWl$òûÕ(”¿·Ï lMŒÆzû'f&±¾³Ñr ¿(b’ÌT§®á¿ßÁ;»6±~Ý>ò¬uF@BÒ1@…B’¬í°®¾H~™Ñ"{E%n.–yجoØ5$!‰Õ\8¸–Åûù|×&Ö¯[À?F‡¢®3Õ[c%*´ä¤¤‘S®»ÁݹynýZú%?Ï˯ÏaýÁx“‹•ê+í&š0›ŒõkqQ’®moI;;lJRȪ±ŒgcE!eÞîõ¶CÂTWDÚÁ¬[ø9³¾9„ÇÃ/óÖäÎ8Þä•6k+kª*ªÑ € öÍFðíšuõºµ€Ï߯O’¹3äÀ22222222222!Á {NÏ?.Ã¥›;úìx²<‡1Æ0é(:w¸Iœ/©"Uçˆ=›†Î%Œ`—tŸ %´ï Â_ÜÎoëb±u¦rï)l¾rë·€kϳáÓOY‘ÄÄžZNìØ‚*°7áT¬;¶—-å-19ŠÐãq'žKþ#k«ã†%|ø“ïlx’à.~$í`ëÒf–ï%Ç&ˆ!níé1e-?ÜÃÖÒæEÑc&î„ùl ¿Û…*TÏÅ}é¸D<„¯»výcûO‡(²9C|žðþÝéœNêöÃl]'à”GuË¡¸Z‡2ìi-?®ØŽM;ÊvÇc7xhCâ´1\Sçm0öIÔsz¾¼Z·}FñhGGÌó¿ãÛùþ ñË%ùx>Šá´O°fm*%V!´·=ÂÞ¢†ùxâ Í$îø b'Öœ¢ãÃSqAD{ao>YÂÛGߢ£¨§<3‰£çó©ÈŒ'½ÜÈáA€.} ëNòÀ‹]ð®ß]$Te°ïT&±ˆãkãé2õQ1’÷¯¼}ŽÑÿ{“¢]Ûɲv¥EXZ:7ö]q‰Šãsyî•ÄÌþ7»v°ËÚ?WGÊN¬!ή/½?ˆýßmcÍúZ8Ú¢R&±k~¼ú,ž¹ô±›ÇÊU{èìjF_]JrF-þ½‚pÈ=AmUzZÐó©’ßYÄß”óд‘tô´»£”dÒQ’z€ýÇÏ’QXξg:´ ÂÕP@Úéã¤fdP»_…“ã:ø;"%sìp<uìÙáBç.CúD>K¾Þ‹Øªœ”#Y¸ ›N‹æ…†meó¼ÍÔ”s4MoDîwBÕl€~Žø–¬âçßüèjNÚ… ÷ªqt™DËã˘SÞšnžvX©ØŸ;•è ¨;¿†×gcFìFY•‘uh ²zÓâ"'Næ¡‹`¸}¦zïÎ<ÊÔ=éÑ•h·—øþ›vŒ ­£òÂYrýÇ1³s ’Ï.cÓÜMè[Vs*Qãaמ^PSMmm Õz‘Úƒ ø¼ª+ý¹€ú0¶m)ã“(öͨlý~¿¬PÐÅþûò\ ˆËuóŒ!?C(,4³{ÚõgÀÔoYôõj¬:jÈ9›NuËÑDuÈfû ü¼\C7‡sìÏv¢mïæ×îò«¬A««¡JoÂËJu­¿}ăÎmèݻ„ÿ-váíµÑ¢à,»ãŽãÜ…n9ïG³‘axT®ç©IópzòyÂvk2âÔv0‘ϳhÎnmudÄÇmð$Ô€¹"‘C{NPãô ƒ|ëe)?Ìœç¿äbÛጩNb׎lƒ#ð”–EK·cÛΖ’Ýg°u¯(‰¦+vÚ¥--½‚Pdç’ýsDijjórôeð±Óc°iAî­q±mNóêX¿Ã‡>mûѹkÌ36`þðÜ­Êñ ØvJÍ ý±ó³bß­,^mEËüX2C;1>ÄšÄØlÌÒ•„¥¡¦›^ÿdNÞDÞùØž§b ˆ&3&”¸wÂSc“n´kIMV"»âê°ÉÞF|'‘x`0˜®\¥ ™1LàLÛnydîßCYm9§â)tCX¸'cwñÓf5]Ui$eUÞu½ü±nõr´¹­ñ°1`°oà@ÃåWƒnl¼Låg8°ç uΓàМž-*Y¶o#KMÝh!ÅsÐ܉ÑNØVg°çx&f©ãëé:ýIì‘hx÷C(#ñºñ\?HÈ=‘Dfæ9ÅÓ*R‡¾Á×Dz½é*?LÄO?O¼K6\±ÏVNDõ !sC2†«úÂ’ –êÛ¯¾\ɄѨDéLpx)éöQP™Ë©£ç(óè8ã®ÐrüÔzbƒ[RXe Ø9˜þ;ظf+æ¼@ŒÃc³h'œ¾F^ÉlÂh²ÂÆ7˜@ÿâÆq¾8‰½‰9øvǦ^Î0÷ù/±~á^‚ã º¡ãS+YòTëÞ~‹ï ƒ˜òdwT “É„ÙlÆd¾\O £Ñ„(J@}™Í`׎H¯¹üúã*Â!wOÎϽC `Ò“°u9+6çâ;é9?Õ¬~åÀMÏZ°oß‘Úïw’6£=Ãh»€/æ„1<ÔˆIÒ`ïÆm]©-Ȧ PE@ªÒ²©Q;І¼ÙÍ}ñv·—“ŸÐD/ÙÞÌrv~A ÎΛښ+¾´•ÖSݬ‚Üß222222222ÿŸa49—–Aûvm,1—Ê*Ê+*hÑ<³(b›råé`¼r¯ààˆfT?j1! àìì|ËÃð‹sH4žg±âðyò´A<2{ÍQWNòÁÍì=oÀI]DQ­¡]: ½pœýqGHŽÏ¥Å”gÕÕæ=1ï^ÃŽ3ñd‰‘üûÅÞ×—DQ¤¶¶G˧bM……”êªÈKN$)9™<<é3b ÎñûØu8Žsuýyý•Áx(-;€ËãW2_%þ>z2ÏgãñÀ0thKÕ¾…¬:V{—Á<4¾=ªÓ›8\­¦uÇÞ4sÛf 8¶ƒÇ®È[¯Â¨¸DŽ`‡6ù ©é\Ì+AtòG³mçétóse)Ú2Ê+KÉI9KrRÖ­èßÙ‹Äý{9p–”¤2zþûß õ¾®OŒ5d^Ç–³u¸Ú•SPb"dÈ(‚eݸŠÃ%-™0y8ÝýmQˆF´5Ö´| #-\,wBU'®æçÝøûÉL½„Cø Z5SÍèufTŽ>„4wÀ •pnÙš6AžØ`º´_·g`ç,‘—v¡Åd&ÎhOÖºLÍ ·6ˆG>K &LFØøÚÅG:NoXÁÁâFOAÏ@;l|»¡<¹‹]G’Z7€7^„+®­{R¹ò¶ŸÏFï<†7¦…a­²ÃÍÓôå ØgCÇ>cßÝ•kkìòÏs(v3'+:ðäÌa„8iphÑÓŽlOL WˆæÝçzÔ﩯©ÙŒV«ÅÁáÖiák뜄"h0ýû¼V·?Oˆ¦ÁáœZµ’ƒéå8·ÄÄI°×ØP›–À‰¸}O/§ÃôGîºè8 Vì þtÞS¾àù€„d6 ­ó }ß MµäÞʼU¨q gäôGéæa駬SÇ©éD¿.mpÒÔ [tŒŸ—ï 1ñ¾Ó¾â™n¶H¢Hù¥dr+j’O‘˜’Jf‰ç–] rµ$€u: …+«Ûgh+.&‘#Ø¢M>I¹4.Tàܺ;-”Ùlݼ‡ä³™Øu‹bôøîx*Œœ?|}×¾ l×»FFg f³[ÛëÎÏÌÔ妑˜˜Ä¹ôtÒÓÓH;W‰w´ éÁ V.=DÚù4.”Vã2`#ÚáéQÌþå[8žÂ9] ÆMï@»÷s«!„{ß8l6›Ñét·ÕT~øWìgóÁ’RSIÍñdÊãiQŸI’Œ:jDÚ‡{£l°W›¨HØÊÖ©¤¤×Òªï†ö ¼£cï-ñ:‰êêj¯?h¯ŽÜÓ{Ù²zr­8v,í\P;µ&"¨œØ­qÄŸ=ǹä2z¿ÿ ÓB­Að ]Žü²’£çÏ“žW‡wi<Õßêê:¬]| pF¡p§sk2Óä æ IDAT%PåL°ŸSýá×RYY‰³Ó•×w¤ºJÎÚÄ®T=ΚŠª­hŠ{e"›vœ L©ÍOÇàхЖÎHé[øeG>žÞ"YÉ)X…EѯOŠ—ÌcÇ…¬üÆòòøVh¬Ü ðö"ßÖ×4l$c"‚±»‹#ÏF#F£;;»?f Ëno­äKïzТ¹Ä±µ«8–ïHÁ#‰õÅ=܇ò¬NœH$+ñGô­Õ/›»O;ÖÔÔ`kk‹RÙÈРdF§“ppsÇÕÕ/?ü<ì$=•Õ6…à¢1P^ãH»ŽÍ°S¸:´5é+—r0£Ás ÿ˜Ôæ®Þ¯ªªÂÉ验ŸF…Ùì‚ZòeH__¬PáÞ6ûÚtïÙÏÙôT’‹l ÷A!¹Ð¦?Žj%‚¨£,#‘ÓI)¤]ÌÅÜæÞè)Ë<Çé¸ üºûPz<žŒ¼Þ'¹[ˆ]û¡ jëMòÒìÉ·¡k¿1Œín¹Öœwœ5;1hDÊ3S1úv§ÿ€±ø_\ÚƒI¤åù2ý‹)´1ëIÙþY]f18P@iã‚«£çV,bo¾="F3ª£ Ra¹’ê‚,.œK!%9‰ žx¦|MBëÇÓÚ(¿˜DŽ`Mmò)Î¥q¡  —6Ý ²Ø¶Åb[ì{D3fLW<׎g}ú6~Ùž‹‡·Hvr šÐaôëÓ•’¥?±ýb*Ÿ±¼:±5V’“^Dã@XÇ8 Ƴ1ö•‚Hu^:nô ³çhìN’’IM©¤Ï{o3ØCD4ëÑiÝ ïÛ/kF]É[Ös0½ûö½=¡'J—ndŸ%#5%Ž„ö Á]éNØÐÖ\XµŒƒiY”J¡LÿW4ÍŽøùR¶o1k×ЬãF„Õïž«¯¯¤§¢Æ–àмÝ%ömÚAÒ¹TÒ3´ôÿuú¹Š˜"ç7®æ`z6÷Æ<1’v~­ð°/ãè–ÍN3Óaò¢»5û}Ѧ¬ç§ÅøúšÉLNþc$ý{÷AuègV)@òìÆÃÏ ¦•GžŽ•ݼ‰Ãi&Â'Žgx€kîëEÔQ^ë@XÇìÂuþv..í#hiW‡hëKhglmŠ/¦°o÷’²ñ>•±ƒ›c•—A¶Z‰öR*©©©¤¥ž£Ê³1Qƒ©Xñ3ÛÎçbtËS°F¤ºø ji7f$­êÍ´©$Ÿ|“ŽÊ¢.¦$“’œD‘}k¢cFbÞ¾Œíg“È¢ù÷s\å+J˜ôzŒ*/ÂÚx D‰£¯®þî88·¥ÿàžhòã9xð0Ii©$;Ò¡K Üìý ñ=Iì–³Tùõ¢GkjΫé=¡#žJ“‰"«0¢Z»áЫboÙÈé’æŒ8‚nÁÖ”—khÑÆW[5‚¤£¼Ö‰°Íð ëjÇjÎú=@¨‡íÂ}®ÌM‚½ÖˆÆ³½CÍdžŽegÜYª½BiОníÜEËœè¤Q"ˆZÊj]èл7ÁuëXº%•Ìœ:ÆÐÓ'€n=Âqq,`׎Cd¥&r¸HIp硌Ñ áâQ9FrÚ9RÊ\éÚÅ £Þ•ðNþØ –—: %IìŠwdøÐ ”@eAKõ„N=Hhð ouñYîßÇñ4k¢Þx„~>¶‡ùqÙN’“³ ˜ñ5Ou±ÔT´ëv‡d%aª»v<[œ´\n9M…¹‚üK À wÚµo†½Ja±:W:vòCeÔR#ºÓ.Ü·–´h.p¼Á>aDW7**%¼šáëf‹@åU¶„´ ÀYm ¬Æ‰ðÎþØšk)Ó»ÓµOOšU®bÙ–T²+kñhIo[zãã Åé»9]쌧oí‚ÃèÙºÓ»‰;~” ý@Þz¹?.’Ž2­+í;5ÃZ:jèÕ›œµ¬Þ–B‘hÛô rÇÞÙÙbŸÝÕh«Tøwê@×­^Æs Í Ñ í¥!uG!îáÞØh\ðósÅÑÙ›æÍœPHzªk5øµôÇËQ¤¢Ò†vÍp´r¥ut{rׯä@êy*lFò¯Ç:b‹ˆ®¼ˆ¬4kƾõ8‚¹uê÷²(Þ8l[Ä· máOXD0i+—r(-ƒ´ 9”«[Ò3Ì…’Ô$ΞÒâ×Ùƒü¸ÓdU[ã¤&yÍ ª¼<ñö¸q¸²²êêt(J‹t@—¯"ËÑåRz1æ#'êê®wåø²²ò½{9ô&'z)0PB(÷𵨠ám½ƒÎï~Hn(yk¸ŒŒŒŒŒŒŒŒÌÿghµZÖnÜÁÓF™™CÆÅK нɄûê_Pÿü=hµ >´Â×»Ÿß¦ˆ:›6iøÑäÛÜ·ÖøïMFŠŠŠðóõƒ»ºÓôÚçþ¾#§|ÁasQÓGÓRÕ¸§Õ^ÜËâ/7Òú£Ïh×Tr6U{ßÉ÷¤F,-¯/ïfå7F[ÆíË6 ”””àëëÛH]økä»ÙwnÞ_WjWVV†J¥ºAâð¯ï¿§º¦½^»›û]—+r«»±7&õz=eeeøøø4z&iü7ï¼QÉËË£Y³fwPBcÆôÝ×23+“À€À?ØKw?咽µµµhµZ<<þ¼[„«³s"ñ¥k4α§ÅþÝ«»ßÏ‘ŸŸ››¦ zöÚ6¾}ËÞ]ÛKHdggàpËòÿøS®ûåÕÿ¼M¡w¦ÓMmÕ¹­~çääàããÓø„#í¼A›Îâ™ÿÆõ«¥Œq½Ù×Dn4¦kX5c:Uo.eFˆ¦‘÷^ß t~î$=ñ·Ûüë•òvãïÆ­!Zî>ýCmyãÏ+ëí›TB„Ê~ç7[þþ™w;Cܪ¤›—z³¿Ü©üÇ|©¦^]*sI:±‡ôJ{¬ŠóHÐø3hØz{ßÉki&ªÎþÂÌ×’éýX‚Â2¬­óïd½;cQ‘ÒÄ ¬Ø›LúáR¢ç}ÆûÕþúžï‹Fµ·$]uÙôŸÓgMWÖÝÚùÆIb:¿€G¾H%bêsLïáÇm¦Ó™Y™øøøR^^†Z¥F­Vß0,IRCؼ9ýß#–—_û= 03óžÎ±Ê» eddddddddddn‰ð§'%û„Û_qM`Qh29‡ ú8úÑLÕØ§™m½ ïóííšRΦjï;ùžpϽYùчƖqû²…;ºdSøÛä»Ùw„&Á—¿/BÃð÷ÒŒ¢¸aâà•«h2ýA¡¸£öîjÎù¥(„F”ðgΗ¸Çÿ´qxW5T(n¸mRê*)̽DV¥€ÙʳCÛ$ùÛ¸ùîÎôFhTË ò,"ÜåS„›ÿó óÞ©~ èéÆÙy•FEP¿×èàzKŻɪðêù=CÔ(îZÎ?:?w¥7•Í¿^)o§¢ÂMæVá·¥Ð$²Þ¾úÂMe¿›~šl0 ˜"„&ÔA¡ÞÄóh ²(“ 9}èÓƒžÞwz&‰ ¯®ŒŽª!³ „ÊVâýÏ;íGA@ÔUQUgG»‘½icsSö¶Cãû¢±úýg÷™Ð„%Ýoœ$ªV3x/òÖÕš¸ƒiåž¶Ñ7rXFFFFFFFFFFæ– ÓÒ²ÒûNlQ”Í"eeeõ{9þ$$ƒQˆfjJK‘·êGaåKûá¦ÒJyÅzOèŽÙr¿åŸ®;÷úÐG ®®…BÑh¼gÚB@À`4Ü“}$šEL&Ó='—$Iˆ’xÏêôý8ÖŒ&ãŸÛß’„³#§öE)PŒg5¥eR“Èo6›©(¯@¡Tp?"IÒ=§;—Ãã÷šß$ J"¥¥e(Ÿü,7ºNóÀXZJic%ÙÒqF;IJ2J‘‘‘¹7—†.tý="F½žŠF¬u0#žC)‰˜õzJJKïê]*uè^ê¨@’Œè+K(•3€ÿGPàñ$ÏJºû2q/!'€eddddddddddn‰F­¹ïd6™Í‚€Z£æO ‹JÔš?¸+Ë*•¬h÷Šî(Ìzý_£;÷2Œ” å½Õ˜E$î¹>2 &ô†{OwDÑ²Ãæ^Õéûu¬‰’ˆhÿdù%ÌFæËê¯T£Q6Í8B*• •êþ JõW¼Ýsº#Ü£~“B­€F­n¸øOí¨4°  µ†ûÏó”‘ùÿÉYÖchøGã×@f}½]”XݵQ3a¨F¡¶’çŽÿK˜ P¢Q+嶸 ä°ŒŒŒŒŒŒŒŒŒŒÌÍ‘$î;±MfZm-örÊ4 £ÉˆN«•u0M(•Ê{®-Á²;ù^“Ë`0 ×ëï9¹DI¤ººúžÔé²ò²ûv¬)µJjÅû×ÎÔT×`goF­¾/寨¬¸7uº¬ìžô›*+*qppøKÀ222222÷*eåeÿ_ÕW¶ú22222222222·ä~<÷òî û¥•¤[üKæ/îIQnÿ¿oÝÿrÝ“²É*}è¡ôwUâ¾ô$Y©ï³¹Sî/™{k¼Üý,*ÝS#]¶ òŒ,s3ä°ŒŒŒŒŒŒŒŒŒŒÌ=ºmºÅüÍÊiŠX¨¥Á|ŽßænàØ…ŠFË%H%œÞ½‰¥R‘npw•ô%“þÒÞj¼óGk…›ZÑ;™·þ~ÏKlRßøvR {ùïìþ fÓÌ 2ANËÈÈÈÈÈÈÈÈÈÈüõ¤þHtÔ0FŒÈG{«®Z´K¤aã’xtTsrÁ‡<AäÐA z—*ŒWtEïm¡àv ]J8¾l6SG0$b0Ó?[GjBÛß|†‰Qƒ‰ú9' ¦ëàÉ,ü –òñªI]ûýúögü¬Ùl͸¦1%Å‘l’pöÓ²õµ'™0,‚!‘_/Š–à]Ñ6þŰ˜F=øßž~+g‘‘•ŠÞYäèâw™<$‚!ƒñè·;É©Ö=7ƒqÑÑÄDE2ü‡37­kUÁqVÿt -:RÖ}ÃÓƒúÒoÐk,=‘{Õ]7ì¾»ëÆ2•$³ðÃÇùh}úU©k—í¹¬úd+—ªõ–6¬ÝÃ#bˆŽθ‡ÿËIÓïƒ3u¤oûçõ¥ß WXx =elýçSLAÄÐ/8e럒ÆÜáQDÆŒfòã«(@@ÀHéùM¼= /†<ÎGóOQ‹€@ Ç|ŸG‡ô§ÿ ³õR&òY6}£b¢ˆ5ów¶¸ºÎÒt{_5FŠOÍç±ÍÏI ` ûøoücà@† `ð‹_°õ¼™¬xï9Æ `Ðà§Y–R‰é®'ÁÈü>i'11Ä FäÐX›[?ªæ0tH1ÑÈzð1ÞÞrŽ‚ø~q|C‚B0¦±zábOæ]¹wõFý|WA/S|:c#cbˆÃÛ;ŠØ÷P@E'–óïg¾#Él&cÇçL8˜!C"˜úþBNIM”2ÉØ1‡Yãú3èÑωM/Hø'&&::†a‘Q¼ky±Å˜³™w?ØIeÃÏ+I?²yóc9¶ã+¬×çSøtS2UPÊâ‹GY¿øº«4R ‚}Kb9R\ß7—?¿Èâ÷·/YÒ$ |94‚!ÑãyâåÍ”\î[sûy•~}ú2éí9’+þÍiW3ÆšB.\,oеûÁœÅΕËX¼1ãMGc¿½Kø#ï2û£ÿ22设„ôóÅ7­ËýA-çwÏãå¨H¢¢£ˆ8™Ùkâ)‘n®á7öIÌŸ[Ï›úÒÈ“|¼øLýË Rƒ/µmÞv’²+/ÏeÙK˜8z$111¼¾¥èJêJ[MÖ™½ø¢M[ËëúÒ?â)>_qÖ⟈¬úàyÆGF2tð žYzíU† äÐjR<qÌÛÄËQC‰ŒŽfÌ´g™Ÿb±-™GñêeÛ2ëkb3®â²Ì—øíý-ä™/{wgù:2‚!ÑãxôÅMßp¸üÛrö,ŽåLZ frXùødFÇÄ=ŒÑ?'ß්έáaQDEG1dðÞø!Ž i{øäåkíó°Ù[)®½NóÊ·ójTQÑ#yèñ/I,¾“`.åÔÒ×é×§/ÿñ{2- 5GùøµéD èË£?¦TéüúÿØ;Ëø¨®®o_sÆ2ñ"„H܇àî^h ¥@¡¸´‡bÅÝ­EŠ»C"ƒ» q—ó~H€`½+ÜòüÞüùœÌì³eíµÖ^¶û|IÇ6mhݦ í;ŽåD¢•û›¾£aÓ´nÝš6­[Óºÿ–‡'ä´ƒ–KGNõì{á•ä{ȯ“Ž’˜G~d›MƒúèøÍ0~½nE +»fÒ½QC4êÁÜ}7HË¡)áùξt»ƒ'fëÇõí·ø‰Ž;–0¨Qcš7kL£±¿q-Á† ÞbÕàžthÕ’Íš1êÈËÜ·Üdy«4oÝšV¿bð¡—è‰ [AŸFiÚ¬ ÝÆ.çüK$Z4Ë'Ñ«i}4šÌ‰g¯ô‘Óö¿¢}f qOî~~/«6_ÇôOßhËàAä>–o¼ò ÀšÁ³˜D2ôS³fó"ÞR-3odg*xÛåÎ\<{ãaª>÷Lõ„uÛæœºmá9À†6)”© ëÓ YO~ZAÖ;t’¾€acçqúI:6$HöñM·N´lÞ”a{žQ°ÎfNÿŽ Ù÷H0þ̲Årtþ0ÿ²èôܵÕF2wæ~¢3 ÖëD#Éw÷óË¢HLdr+d;‹7|dÿÒ:ky±†þ-ZТUkš7mÂ÷s·m¬7X·x!7âÿ±N 1?dߦ=»ðüÃm™Sxø0éí3¡h éÖN&Í<ƒö? ½Ö·¯&#±\dþôí\z–ño ýÿùwç#ùÈG>ò‘|ä#ùøÏâöjZ ˆcЮ T³‚ÒÕ1ÇN‘ùŒ“«‡3ñ°’ƽ~ ÀË‹<ó¨Lç¹ý©áŸAÈ¢ „ß«„gÍbXB¦Ðc~(‰¾¡á¿zgÊ3ôÎEh9}íÊ?æÀÔœ ­€^¹„Ûå:1i@ ¤!ãº2’k£” <Û5ˆî+îáTqÌiÜݽŠI'Š0÷ðnüMR\ÞÄÔ¾|¢¥\•Ò¤˜Æ­*=˜6´<–c¶\ñïƒ^BÖ#¿Õ4“–pŽ-f±},µ”nA©°ÇßKGº¶<ŸÏJãÒØ1z?ÇÏ—¤‡ßI7ÍŒJpsLáकì{±˜…ßÐmºd"×aÄ.5:ÿ@{ ëöA.&gÐfñIƽXɤ°Sø{u¡fû÷¦(~ÿpº-½†´äÚæynJyÈѵC8œØ”ZiYXék AaßÏÙÁm±3«û5F …ÃSöPrʆz[È_Çði§Ù5¹!yßœyÿ$bŸÓdáI~J\ÏÏQ§èCÉë¸Yñ ¦ ª!ãº<’#ƒks{Í’úmå×*Znîþ…¡Ûª±½È…“Û(:ýCìN²îôQ6_+OOÛ.Ë Ñkù1ünþÂè=g(Ó¿Ößó Ít–Ô.HÒþŸ¸ª'úWü«f‹wÆÜðôín.ñ&!{ÑvÍ~Ù®³çH8«ö”æçN®¤Ä8P¥Ã†w©„‹^‚Ka{ÎÎíÁF“YP¿WVÑmì!¶ÏhCÁ™%eÝQÊ¢X²æ!Âèît?Й-NÓ§P—Â6cm±ç+{ع_Â×ë÷PÝå>N&ax’žžŸ 7~õ¾az©âÌ_û“AéÎjz¯Ê¤ÛOs©TÐ …â KÚufŒõwf•NçEœÝƒ¢hÅFb‚Ž'J´ÁÄ^5pI»Â¦ùG9èdGÇúØÿÉÞØ²^ºf8ãJ©ßc4­rgÌòà3ç/äÐÓšŒ«X‰Š¹Ï³NO£ç¼“Ĺõ¦®˜óìòªè‡ídKÐ Â÷­â§ýYÓ^ÆékÙô¬ ‹Á×*ÇÉå 'B" H?ž·”,ð?©/õÚuÄ&(øèíÁÖ'\|Q˜/Qâ#cãß2²¿1g© ¼3–Wÿþ]0“‘ ïrozŽi‚w¶¥«Î4„wt’­“æpzQW,a{(>ãCÇYsæ[.¡o5wÌ··3nî*Â’3«™š @³…ŽßÜ¥û†¥ÔVÈP¸xÓ#£]†„òet\GÖ­dÉ ƒFw£wÿRXdò·¸ÂÉ»Ê)©…Ì -Ø>Ò–LŠT¼ý7‰‚Aíø±¸ô#:ÛßÕI>ò;™…Ìt- «Î ‘(ä¡ýÿQéùà|ä#ùÈG>ò‘|ä#ÿQ\;u¯~]NϼXœ}iÚB‘S\JËÍ"õªK«æä2L˜¢°k#C8Õÿ‰ß‹2hÖŸ8ú¹—§V³rˆR9rIyJûŸæž³†Ð­~|_’€"ΨZ5ÀoÊ3^Zm“ n;ƒ;™°6'+Ø”®ãeº~óûQÃùí¾C<×Ã8váÒqJ ¤˜¯+ÊÖ ð›ò”—65¾5F2^¢B%GEy _$Ã(µÄ?}Æ‹kžTè^•ÊÅ+`“É‘Q‘ ÿCÜ•dГïKÊQJ’I¹äF ÷;¶#û÷žÅ¢¢G9tÏ‚=®ê1¤W§j9;¼ýÕ”ºt—Ì #ºÁŒ/·SxÌxºU.€ðlù3»Šï`ôÒÞ¿<$™Šy¬ïŽYòAÚ¶‘a2¢Í²áèŒ3A\¿ObjàŠˆ®Þ~¸{æ•îs'¬ 5Vùãçã„´pêLä)yÀ&´é¤ÄÔ£m°=Ž”£|d ×oÅ’Ò¢8½q¯²1¤*íØó¸Mj/J‘*„võ¨3ã1Ó[R¥ÖpÆHTØIÝñ÷+Aasd™þŽ¥@‚\=’q*©ˆÂR†¢^»IUxS¹ÁWH•ÈQ LW‚ Àb·‚õqÁɳ<Ŷ=A´Ù>ËEDT¸âS,ß‚yÝ9Iœ<’B÷•3iîž38ÏB… párø)î ’wì~$’œ’‘ïÓö§€Žä^”¯HQ79Іñ#m ”Òâ‹®ü°ü¿ÍâÄÙ¦ôYÓÉ‹ÈäTôwÁ…|ÑÉŒ H?O–ÛÙ#/ä…›* •ê.»çÜ¥FÛÔ-HŽ´%ÖÅóÝÒsÄ••!Þ1K$ J\=)ìâŠÜ¥Eå·Ñë )“Epò¡Qß™Ì*rŠðók^$ lÅø©È–#쀆4‰‹è€öþ>.ܾÂÇ"M~ÜÁÄNV¶|>—ËÖ4.Ô9‚P~${§É™Ðv&×|üû°hS7|?Ùêx¾ƒÅ¼® EÈäÆîã\}ZˆÎ#Š:ãg–î¿L:Eè6g C*?dÚ=œf³`wCfþB,ëÖfÏu9î>M˜°e<5ÿÇ”+Q£».qvù\û-¤Å}σáB=šôWáe.Où[IÄÅÆc­æŽ¼LfÍreâ¼çȬ6àÎñKt\ö3]Š9¾Óº­ö7B P¢A,¯Ô¦Y?^ÆJ”»™IÖÓgØÊµ£»—ˆL&E *eýw‡5§$¯äç¶¥ÊPiÑ‘Œ•¨PI "7•ÆÏó ©ŠÂ4lð%¥ äÈQ¤)E;ìÞa‹ŽuF³ÅÏŸA3m¹n‚ „l­O£0w?“…º¯ù¡kÓæê_·ý®¾ý T¢NãJHårDÄXäemXÊõ`P…TT§¬ÿ6²ÍV¨2Œ1¹´íª|@Úe½Ü)V /ý% Á‰þ—IM¹FäI<ÊU L =nu(>ý%éf‘¬ã—é¸lêh°eóüÚq–mI¢|[NC‰&ß0nhžœ9Ê…°nÞ¦ø÷K¨½•¯PcâaÆ4.˜«Ç¿áÿ¦˜môëºh¹ ›Â›jí{qóìn¼(GŸi¬üy[“À¯3ÇTäFD–è=„ÜM#-ÛÂg Ï1º¦œç;ÐeáM¤‚ gÏÆLÞ>rñWÙ·p1ãàìæ ÿyç—3uÞ~õz´G/TáÉï=™}&Ž—)>›w†QuTiûù®Íln r ÔgÒ¶)ÞÛÍ‚M xØpÇùGæO) °‰6¬¹4£¨Ü‡eó¼9+©(79±±õN¦B‚kÓÚ\uŸgm\yy«>-g8âDeü‘CRç2xÝßÇæh‚[÷BÜ÷AsïäšÍLײÞoëØly5ŒlžœÙÂÒÍFº-BUÅ]Ü,¦MS+{ï>¢L‰ÒTw• ‰ÁpšÑí¦e° ·ëÆŠ ȼÇöé 8÷X å}_ët¦¢K)ú}]–[ÛæòË‚}D•{-à—žnl1‘]7Ÿ¡µ–dÈÖÕt+n‡°Ÿa=ÏÐtëZç‰%2ìœ=ðqqE墿Ëár,›oqïì~Î<1P²a[j[6Óâ¢_fa);„“X´ø9…µÛÙ}ìœ ðÍò}|éÀ郳íΔoÙ—ñ“;#ž:¹ýÛ¹±i)ÙÄê\4ŠåWŸn±Ð~Ì@¬24óë2w(Ýè³ämÍû™¿KA‡2ön~„“u+;ÏCPëŒÑ‹rŽÙ2v¿þN»½?Ÿ/ºL*ÇÅ»1“6§†ÒÌËk;˜Þ1Òmzв˜ÀÅ#¿ryëR¶µm…sFi¾Þª^W™Üy2g’3°Hº°üìÊÄîfÔ|¨é5›ûdx”¬Ä÷³—ѲP¾]åOéÖùS|ä#ùÈG>ò‘|äã?‡„î¹Ê’îÁS¯IKÖ?xud” Ø;áb¯Dòʺ/ÈQÈàææ‘´WÿDÖà¯hUÅ ‘)°w±ÿxÒ[†02™¹°Fs5» î^޸ˤ9Ž Ï@Jß~J¬-çn(Aé„›³Rr\ÚìHöo8ʸ–Á¨ÕjºŒœCTjîoã®âWWß‚¸e¯J^”ºÃSQYŽ1 ,˜âorYÙ€šÎ€6‰˜ô8ª+Qdòÿ›õ6¾Þ8+å(¥YÛ‚ZêmT›H}éû••3.ŽJQlØl€˜ã0ÇÁÿ„l2Ó³3™ÉihM¶×÷ GÜ\ìßDƒëR¸¼' OdL«bHI®ÓɆ>3ƒ¬ì7މTŠÌÙ…SÖMÄ‹î¿ äQë`ÔÁµi:à_Lï”cø|c¶ÉéŸM–óNûBø¥Ч¦’iU }5‡žÅ)}ë)±¢ ³I™»Þ>~»ñˆ§À¢ÌiCî‚§¨DG’(C*‘æŒÝ¥(O’HÑkÑ™È_„‹RúÚ#žü J~{̲Òö†.¾iݯ,¿«Õ¨Õ_°áªŠ6=+ °¿Ã–_SW­¦ÓœPR°ù ɯ²¬KS®\4_¾k|ԣ͎'§(oA||íPÚÇ“’§ncìž‚TÊÅ!‡·“Ã_-feN$rì úPøÞ n¦\bߊßÖ$‡÷œ¶™ÛYÿ y#R™žÇ÷·³iõ¾Ü¡!â·nˆ)!¸wŸˆY³¸éØŽEG#9pu\íÁbû/ß]lÃh0`0K0ßùk¶ […fcî‡àRb!¾YÑr¾cýÑN-ñaCû™ÌàÜÑÍ ®}–›~ºþHìq¬ºä.ŸÚçÜÖ¥X]Å'É,Ò‹- šSCÈ:uŽ;ÏSÉŽœÊ¥€8ñµäR¸MÑŸÂ;¾›q 3uúiôÿ§t+¹],§v¦©ZMëŸÖs%Qü“<û•NRµ—£)7cLUŽüYbεÁÙ;™¢ xDÄñÛ¬þ¦i¿­U›Å¯n§°Ⱦw™3Më 61Z9{R鎷QŠð<‰42iß7^â´¹2 «PH€k!üÞ¢ußê§ì„ÜVÕ¡š •‘¾šïêtå°kU:õ©õ^ —D*ÇÎÅþ5±`}¥GHd(=|(|+†ç€U—MzšöMùc‰€ÄÙU®Â HU¨déÙ`õ~êFL¦6,éIl9b]5Í¿z@ÇSé S¢ñÓl˜ ”ÀÏ^Ä& ¯uÅSIµDqöc´ ‘`KÈ‹{x÷× 9¼ŒFžYì;EêýûØÊôeåŠñdnYÁµŠ?°gq/"öæîí:Å¢é,s¿^Må•"Bö°f\ féЛ-XÓophËe,%~à°FÃúŽ%pÆq y›yl>rž¨¥]80z.áV…;-áܹ³œ 9ÌÚþr¦m¼‡½oeZöëC³N³Ø³n %n­çPŒýwkˆˆˆdNï&ø=šÇ•‚?±bg8še_phó>žqy¢éNø™ãü>­$»'í!ÉËË{Qø:ÆÚ) q¶¼à%¤H°„ÜMcÆlV"—å\Ñ õ  øõÄ& º—¤Ø\ððvÆÕ#™g·ÎðëÅ4‚ö v¥*‡;\»Ã†ïÚS/—ÖÑ|øök«!›ô”,ÌâÛÏE‹KÅ>Œð8Aø•ëdeË‘"Ci¥íÆá0j'NždY÷Ëô_z¹s)Ú ëGÍرc9_èI7鹵ޓ¥ôÙ¥!òüyVðæèðSé?ƒQhŽ|Î…EûxjÁª'-=½õ#:׫ÿ»¦°Á†ùùKL M=Ê/3Ri=m#'#5Ì/‘ÈK‰‘̳Wðu’Ó'òû€ò¬ø~5í¼h8d+ášH". iÉD6…$Q´isj¶ø†!?ÿÆŽ‰-y:w×kgÝ‘3„ ç§:îȯÏäNÕœ>uŒë²fùzkÊMbÞ§Ä0 šó©¢LáÔÕ(Žÿ2›ÛÿB'ñí¼ŒóçÏrîÔVö•3ë÷;ØâÂØ¿5„:¿iЄŸaõØAtý¬•šôaø¬ílÙ/ÁŒÄî6k»ü„µÇZœ gsÿ{ \p™MOÚ…¥$·Ò  ÝÎäVžlØþ/®5ÊÇ !ùÈG>ò‘|ä#ùÈG>þc0a6¶eAd8‘ág9¼°+Q—rçü;VJÊ5ýšÉ8¬XÀo'“%¾ùê_3„':w/™Š¢T/_»<™d Aòn{¯?ذ˜UøíǦÈH4;é_TÆ©5¡¤/¯ÇßÓž¢…¼Å·ÛlbžŒ†¬³,é–“Ûãd%¾ =îuªå½$1žƒãö õ¯@årÞ¹ ™N4›qŒM'.6ÈöçùÇýY$6ÀjD+«Ë¬Së ö@)ùðÔ 1„í ãÐ Q«[0èçålß<é{utš¹€#›QDøØ›àœ¡ˆs#ˆ<»‘/¼Î3Ç®Š˜× òÞërB › ›$¯[¼oXÉmCbÉ­6øöš[mŸè¾)óû´ýýr®šR¸ztÁ¿k8¶ªŽqÇ9‘¤Á¨ùì‹Ò ÑüN§ÛÙuʉo·ÎÝ1rœ—êÖ̽éOÑ·"Ü•x5£k!×Àªæ‹q»ˆŠâù*Â|m»ü¨U«<ÎBy†ìùŒ«ƒ[ä¶ÙŽ…wŠãïù¦ßICØ6û1ÍF5ÆñÍ•¬Ä3¬}ã[áœ;÷…k~Ãò³¿ÑÖp†MK#8»o9OªvauD8óZ›Ùvð,YÚOp§EÖ»=³wç\DáQ‘Dnü’"ذV(NÑÿ!NX¶ßNއkÐt¼MýZjÔ¿D UÚS«û÷(QÓ¥BÎwŠ×cä šõ=‘íî…ºóöÝÎø÷tÌ¢ ¼ Œy‹ˆß+‚ ;Ý}-ù–šj5êî)ÝîszÔôý„†§?Çðßê¹D6+F£+å«b{d$šð_i¥IȾ˹AÿEH£žÌ )’_Ѳ(Hƒ¨hPyê4gÜ  %Ü…©ä£Ø¡ÀfÄäÝŒu«SÊðó§´\ŽÂ&… ‰TŽBe‡]B,Ê ãëšdŽ®”®X½a|B0ö®)Vº'4±Øâ³pÈhS¹0ÉY¬[:˜Öj5ê&£9t<’GÚ,ô%ûÓ­~œí…¡Y¾ õŠÈP8:SZ]‡¢—£‰ý?¥[9S¡Ó¶FiÐhö1H˹áÄ‹ÿzÿÖI¦|§ÁôÖÏYgñ-ýFt ™z,„ó‘DlÌs¸ØŒî\>E«5±˜-ïïηdt ¿öÚ‡&”öpD.ÚI»ÆuÞ’-™q§Y÷Ó-ZŽmS®lñ­Ý•ç7Ð,ýžäÙ_扬VL8Qåëñ,]õ¤ ŽàJë¹§‰Ô´à\þìJ°êÍÆˆÅ´p°Ã·JoVGiÐhŽ2½Ž 7×í Úú®|®‚×{eè%hæBµDCä©e´t<Í’=7PHÜ ÌÖÈH4á[鿍åÔÖ}<0”£Û«9‰&tе[9—†™ ?FxDáçgáñó8ö½ò‹Y¼¼Î…{íè\ßþ­ÁŠ‚çí«ƒª+«##‰Š8ÆÜÎAœ™~€ë±‘ÜNÒÓÿ¨†­£*sÿR(w^¤p÷z4×W¦s#5êF“¸py!Ÿ÷ÞÄÓ÷³@JɶãÙª™OÉßøõ÷+$¿þÍ·ßOÍ‘ŸãÿÊ©,+NŸMçÙ»Ú—ÍÆª{õÝ,®ï=Ä«2êµ®‰£ÉüÞ9 h³ðóh;§¯6l*o ©¿¦µ?àê‡'ÞFÆBAùS0À ¿Òu©XeÉ‚ “)IØ?˜ààšÔ ¦ÿ†$TJʀ܅<7hQ´!:¹âí“Ì™óY±ç&~Ý;£.Y•_5ª—òÄMTkB{ñ1OŸ$~7ß\·§œD÷2är9R¹ âxïŠc@3jú‚T*€Ä„É¿íêÃˤ,$Ïc¹gØÅµu­z´ì³Š{ÑψsôÁWý5­‹ÿ)iý!‰œ[ZY†›kcúN*ȼà=¶Ãàµ\§Öìh.lXÉø/Ô¨ÕØqdƒFn%üfy~Øy„°ÈH4àÑÐYD½×ºÅ[Œ`õž±¨?PóÚl2S®ý—dGÝãa\™ áÙn ¤GCGTJ;JÔoDàöSÜDŽR.GÊQ¢@.fÇr?Þ• jA.s:É’3ÌÐ…Fj5êV?¥¹AŒÍ‚èó¢Öò™çŸ”©¢ˆh=}(îv‰ù½áX\&5ŽZ.ƒrM¨ço‡BeS½ú4ϾKL–Hüù…tR«Q·ìÍÜ5QX22Þ>+QX/s&µ9 jPÈEŽR!,ØÊ¡G} ;ö™ÍX€hÃêàGQuWšÜ=ñõðÄ;þ)ìë þ:‰$n'ßS³^:O9…üi47ã‰sëI»RähH™€T*C®P‚\Š >À­"½ù¢Qœ”Å5¥ôöP"drì+ ¢[E@å‚k‘¢7›°?ƒ|p>ò‘|ä#ùÈG>ò‘ÿèD"ˆˆ ÈPúפN‰<Éø¸qòM\±?5'‘aÌÆhâc¦…?@g—®ç*•ùlH bÆÊ› XRŸð°Œ¾Â‡î’äü“¼ÊñÁ¿Œ7…^’$Æ»á¨,ˆ9œü”å‹á'ÉÉŒ5jØÓb/U/¤¥sŽQS«Õ‘^’¯K:¿äèÔU<hÎç=kà)ä›^µ ÚßäqìY^ÛYÞõôñÄz;âäêˆ °Ù>`ìËó[;÷jŒØ£A£Ñ ÑdѸté>˜:–Ff³}ø÷9$ífÍýÁô¨-A— ÷Ê_ùêúJg䮩õÕœæ1yQÐ{wò®KJ ÊÃW" ¯ÞiÃÿ‚gåð³ŠX…Ü/[2HÌXŠxá.ÚÞ8“³ŸãïIA{;’<‘êÏŸð°RqŠ}Ú–¼GÛu®r9<‚°Œïèn•º3²w[<®æ–‰×4ÞTa§2¢wjȬ#!Dj4hŒ¢B¥@ürÇlͽ« Á…’­ÆrX£A¹“©C[ãçêôÚy³o õJS½˜*׿Ì;y&§Í½#(W!€"9æ0Rc±rðEêîœL=»2~+ÚÔ~~‚šfÓÔ!—öÄWóíAÉJޏÚoaSTYŠ+K!©Œ:·0Á|Žã1™˜ÄO³‚D‚€A"ä=|ü ¼y’°w3©EQ’klÍcµÿ2où«ÈÉ~* ælÄ2:î9ƒæõ¾•¼µ?Dr#Ü+Ò{æfT-BÖõ‡¤}â^‰V+VŸ"q•ëÒÐæ]g1<ªTœbâ;ó9}-ìKÑzð4ší ¯Tí³$2?õÔIþpæ|áÕ·™1¤&’X¦(…­6¬¯R‡eÅ)SÎ!‰tëÿ’||3«¢ MM&6+ƒ´Wtü¿1¯œù×ßÍ»ÇøÔŽl»‚-Óˆ6Oö²7+›l]U‚ud8Ö ÏÏ[sxŸFƒF³€ö¥ò‘|ä#ùÈÇ UhÚí7EcÔg“q÷<±e)þêþ0£½ÑŒÙ¤Çh¯…p,$„©6à6á!…(`Y±èX­&tZ-¦?2ä[Ÿrtö\v?/L‹!­)¤ËÆD1j¶ºÏƒ˜g$eBüéPîøP8·´ªÍl@«7aµÑ!bïZÿj‡Øu*ŒOˆ¾O¢%îp)Ý 7/_Ü(B­¶7¹{?Ž”,xÂÝ@_ Kl1›èÝhA{—ÐT¦E«7`5¦‘Ë3×ZTT–h¶M¨¢ ­{ÔÆM—H9º‚­WŸ’”eÂd=GÈ¡j”*öqšôèõ&,fY8P´¬…ÛEî>íÕKÜ’ƒ£{ãÆ4íÍŠ¨$Œ¯Œ2V#Z­«Õ€ÎjÂ’×plµa³Ù°!EÎS¶ɸ'yn{m³½‹Õ„>;‹G Ê?Z†]é·Ïþ¬<¥\L<9²‚!_ýÊS\ Ráà¥áÖSÐ]¿Ê-ôÈêÒ¤Õ-î=|ArÄ…†r§¸7…¨Iã®G=mÄ•Á½ðóÄ•§„›?%Ô'‰¸¦'¹•‹Þ«6õÔédXn“éQÜrWâ" ¦ùç爊J%KkæahÑeüñü”üÖ˜µ˜¨B“·h;œð¸Ê”«¨ÂéòvÞô1Dß|N¼µ$Eõç8x"”ó±@Fçn:ãäê€R°¢Óé1Zb7 eP IDATÙ2q1v-êà ÝÝ_éSo·r "6³½)‹ûg~õ>>UËæÜ#¬‹`ÏáÂT©PÂî¹G~›NÞô„M“– jUO¬¤_]àn'©¶m:umÙhõzL+ZÄx#}[î¢üîù4’d£3šÐ>È…ý9ð”[—õèĺÔTœ&<ô*÷S€ä0BïøRÈKôSXvlf zZ½­V‹V«ÇL zŽV°¸óL"E3F½ž¤˜§œÚ¸…xn]àJºˆÅj#ýæ nYõ( º!}oµ?…Ã0ã$#çáy|:½ã£hbj”z+ᵙ̚ĥ°mÌÛ|3ǨúŒgNr”… àü;"æð7£bŸ£Ï Å\‘®ƒý8±k—ž&’¥7b²žgF×e¨ZÕÃ×Çÿ»¡œŽ³b2êÉŠÉûwHôÃÓbÁj1`¢]Ç“px;+\ÿëŽj“½Á„ɤGOž¬c½“ɄѠÅk4m6¬ºWr ³-˜únÔžÌËxY² |½pð;Æ‘ˆ,ÐßåÆMÁwéY$Š"(U¸¸ÚàâŽÄ€)ú×F»uá+[*©7ðD è^9+þûÈS„ã#U3^ˆP8€R÷±1ÜŠ)3•»7.“Ü©~néÙOgÞt+芯ËUNOÄZ«P?Ûun ãòK&ƒ–l#`³½S)CD´ÑõhÓÓ¹{í"‰Ÿ5 $`³š1ÍØ±šÍ˜LVDD,F3fë¹w^¤Þ$êÔNöÝ´×¹tÂUQç? ïwuQŠ}«‡ ¹¦'¸•‡Å×ëÍU#f‹ƒ>ehÚõ<ÛvÝ&3KîÁiB”¥¸‡ˆöéE.84%Ø\¼‹P´âi.ÜÓÃ{ÜJO_dâæ÷˜Åã¦ÝiW×™6ˆ?Í IêÉ œÓßÝ@ÿ6û¨¸k ÉFg4£}MÔM„Ä<áÆe æL?Ü]ß¡S› ›ÎˆÅjD¯ÍÆd ¦a—Äž³aJOáÎÅ ÄbO~Æ÷ýWr#oJ™Á€Éœ#SŒ@òÁElºñ’´lÓNRSÚL÷6Ò«Ö`Žg†—<]ÅÚ+€þ!÷n%dòÍ©Ðñ!ùœq˜µ¦pZoŸ@‚¢²á¼³>äÛQh^Ô¤F5_´Œ¡½¶ Xh8}l?QI"pŸ çQ EðÏ2¦é,¬ãÇÑ!@†Q«Å`…Û¦óÛCFC&©)‘\ «I?÷v.fþætÍîG!£èMÙZidîò4 Ò"Îs«  !˜_œç÷wh;Ðóm^÷ïßΣ?Ìß<ññ#àö)B_Š˜’¹{)Š'2‚D†ÜÍ™¨S‹©7r&S{WÄEŸNgŨע5[#B9\¹ µ}(+×§’“mz*wΟ&Z&EŠ€TkDýˆÇøPÊ+ƒìGljx*b2šÁlå]_©(Ú‹R&zkÃŒ˜ Z´:=F½Qò¯µE‹Å„^—‰‰J4évœ3§µè´ÙÜ;CLÙ@ܛňΘœ §8z‰Bµ*ñUÚlˆ6#F}u~v•Çn”fÀü4”û¥ (ünÕ£,›OßÎ3ˆ2~„ïõ¾ÄõèQî%&`(ZŠò1+Ù’‰V«ãþ™Pbº5¡ò‘|ä#ùÈÇ•¢Ýж4^#ÁÁ¥6ã÷N£`ËˆåøªÑLÞŸ„½ÌÀÝÄÞLü¦/÷NcêøIHljXϸúÅp2B§Ðmn$VQ¤«õt˜–aU?ràOL!1û1—#/0¨åjÌz­~dѤ©”>† ‡“liÃüÓuPä–{¾w]—ÞÇѾ鰇^ ·ÓåëX8¸9êqîTiןÆcwíWÒÝå”ö+ @À³)þÝHú,xDšµ‹ÎÖF*À‹+WHpyΊ/ê³ØfCáîGÓÞ?R;#—š=QÖ¸’­±DÏÅ£s± x>‹uͽ93m «^f!šÌt\I'ŸwƨK&|íFmÇQn¢_ÂEFþ2–à˜_˜þ™š1T¥ÿü©ZD%nÞq²“¾(OØ?ŠÏßÁ^ ß¶ÝA·ùûé]úq]n§ÂÑNHqpsÇÍYõú¾6ƒf ýç&.ËÌðÏÖÐlæy&ì›Â°Ž-ij°wÎYç@²xbï„»‡àX®U=eîçjÆS‰ofü€ÚT¾3(ùý(ú-ˆ&ÕÚ–ùgê ª ]ÉÙúMh‚’Þ_³d{ `FÝ´3{©Y&ñ§iÏáô¯®Â‘>TÔÌdV[5O©Ë˜Í ðqÅ7+(üY:ý’Eú9+C«ý-:~oÌ3N3á]ÚÞ3šr#Å&?gxo5+7*µì˘‰µpâ \›Ç¬‰ã%Ú¨7r Êx£x°‰î#7ŸœI…Q{YÞѰ!‘;QÐÛ’c3¦psÇtú-À½bsþô mý,\ß½Ÿ¤*UiT47»ˆÞL·[HÍÐSéÇý,iWÑj"îæ5ž)3·C}fX-¨üªðåóùº¢ü/ÏGÜÕËÄ9?fÉgõ™o³¡ð*I×A㨖u“ñ탙„Òí‡0z@W‚TÕØòÓ †·›Nº¥8ýÖ.£§ÿØ'sÆK†ßn›uoµ”fð¶U|Ñi;H§ÚPÈÁêäCå~ YRÙ¿ö‹™Ð¼&‰ ³{=†ŒN› ç¬s(ã:ü³hz—†|.|Cÿ/g“m±ÚÊóãÞåx½Úm2ÎNÊœL©Ž\8¾´/5W)˜]iØï†Ö/öÏç‹LnìZÆüû‰¦0íœL“ ” gWß…|9´;“ÒÍØÌf:-‹`IeoFüK¿ŽuXh'CT¢ÊçYÒ©0ž`¯Ê¥·ºLÿ’acç°L˜ÀàÖ¥pù~[ÖsBVfüÞDd¢ã?gظáÔH>À¤Ù« ÖqðøÎ]Ïøne‘™J·9˜l6¾k½žvóÏ1bø<Î×¢¾Ü•b¥û²`µ/àKûÖ ,ßõ |;šáÝ*}'ú?©Ü{;WüK¶ G¿~ìªf%iûýpÚ–(…ÓÀ&„M]L“PØŒè|ºó¥ô¿œ#‘¢T©PI䢀<—% UÈ H”¸8«rƒ:ª3j÷t¬K#©#…üû°pcñOÞ-©[|Rè©3ÍËÉ9µ"eöl&uZC–Ԇɷ;Ë'ûãèæ€ì•ð“Úãü|½›­C”ÚáÑp<;&”tÄ^<Éáßm|¶¨/¶îæfVŸ *Éù)»Ð6lHó¦¥rËÿ—á^iün6Só P嫉üÐ8èKúǽ«“¸¡Í„åôiÞ– =Ô,¦8Íû cPpÎͺæ[[ùqîf®Ä [G1»øùÛtŸÐÏÚe`+3æàb*Zô\¿rû&K°ð-Ošõùåk5ó)IÛïGеŠÖ;IuHàüª‘„¬± |÷eÇ6šŒONÎ$/®]á…ÓCuªÏ\›e¡2tô#Ò®2¬ýJ&b#¨Ó~ø¦!¾ïlŒì°é|5çz«­×ÓvÞyF[ÈéZµ©/s¡H‰>,Zç¶”Ž.(àüúZ ˽½Lž·Ž³t>¹ž°ÑÛù¥œÇêͺT=¢ÕF—çhïiCŸé@wìÀÎ #!Ô¬$”hÜ“?ÔÁó‡å³ ¢€—+v‘ªŒÜ;ŽÐPPâæÝ˜ ¿÷£¬¾]¾eùMQÿPànƒÕ³ ¾”¡ûÓ‰ÌPáiô^¾˜Æ…TàX ýÄ/h;ÍR9ÝV¢6ô9±ÿ4#¶åVÉå»±a,^0W²îÙ@Tì\~êQß<¢ÓNŒãóy—‘J¡oËMt^tŠC×òäÛö¨g;På3Æ-û’r$ãôt Ó»¨™D!ZŒ˜Àæ¥Þ¦EA‰³³ Yî\çÕ·ûtØK¯9Û¨çìŒ{AG¤€ÔÛ”=ë˜;yVª};‡qŸ•Bz1„¯T.LøŠ=6«ÅD™¡;XUÒ… ß4eƒD‚«}Ön£–$–ã±w¹û"Ž1­a6pQŤ©ßQmÃ,¦µ]Ìÿcï,«8ºüìµÈ»{ˆ@‚; Nqw(¥-¥Þ—¶ÔÝß: ´P¤¸{€`Å!!!„¸{rm÷û‘ Š„–¾ß>ÿrsïì™™3sÎÌ™3›!=Äìe]qÓ‚ú‘µŒ}mȵº}¥(5æXi5WæDs ,Tj$µs3j´V¨• ÁÆÆâºërÔšÌ|?Ýw`®«¡]†ÓÞZƒR­@ëåcÑ1æ¼ó*o^ƒ_çëÁ®dmü˜w¦ÍèÑëúñÕ!x*<Ö¤ã{ü„ÆBCDÿ‘tµVaÄ’€v Ù5i“ÏñÊìGèpñ;>Ù—yhÒ$uÀå÷\£0ÃÖÆÆ–<·î žEJ-]gðÖplµš?›A¸ìéýÀŒOÖ’VbàȨyôxw'o͜Ǟé£ ›qü°¡ *Hßð£?Þƒ]£L~ucBë/ˆ¸\°­•% cF/aÂGc˜6ü5Jk›0kí´D…âÚ6µ´ÁÉÙìÚ×ÛjÌ--®Ø*<þÎ$Ö}§ÇTÉŒõðò áôÿȈÊr ?n‰¨›V÷£Gã‡yrÈwFS;-!mGû ŸjÏ+ˆ´˜ò%ú1ÿyGg¡ÇHmàtÏLR‹“£–Êëì'U¤oy›!Ñïaªµ¦Íèg˜õAo7}‘½ŒŒŒŒŒŒŒŒŒÌÿ*ÕÕÕ¬Ù°q£žžIê…4ºwí„ÎhÄiÕϨçÕÕ—}h…‡'Úù¯‘O-¾~¾ÜßË¥»XšÜú7£üü|<=<ﻜç7~¶"/º K¸õÕFŸ}Œ•ó¿GûÈ|yÜM;Ü]=¤ÛêÑÛùÞ\–{}y7+ÿvå»»2þª•õz=………xxx4€ÎÞ©|·×æ7úÎÍ%º“ö¼¶¬ââbT*666ÿ€þÝœŠÊ t:NŽN÷<“ˆÜêj´;+Q§ÓQ\\Œ»»ûß07Þ¾l¢(’——×}œ“ﮌôŒt|}|ï²—î}ÞK=«ªª¨®®ÆÙÙù¾ÍÖ†Úrªkô˜T–X%.aò©@þ;®nÖê{.;''GGG4Môìµmü×-{om/!qñâE|¼}nYþÝ?åº_^ýç_z{:ýwxQ×~𙙉»»;J¥ò.Jç¶[Ò¨+dóÛã(|dSï¼ÿ÷½űþ›x¦µÙ´¹¾Ì».]Ã+Ü¥f6¬Orüˆ«Ÿ{;ít£ïÜø³Û™kïl\6Äü}ï~ǽød æÝ×ìåÍ·ÒøÂhZº¨ïzf¸÷6ª/×xŽÕó¶‘® åáamðÐj±Ô(hÆúké ¹d¤²éÅøüwnWÃï§>Ü'ß8Ó^…Oç»êJþ†ñïD.cmy]¶~ƒø$7öíîHò› ´Û°Óîî””£V©Q«Õ7x]µ€$Iu¯eÀ´é4º/¾G,¹ö^ðMO c¬r°ŒŒŒŒŒŒŒŒŒŒÌ-¹ÿKd¡Á#Âß$g!yùÁx»„ác}§µÑSZY¡z$m=î¶îgÞÎ÷„{xîÍÊ¿»ó2þ²ìÛÒá>Éw{m.Ü‘Dw>‚…û<ŽîµÔ›Éu7å*pnjøöxÞ¼Ÿsòý”Oq߯áýÐÆ¤ôÄo|>=ñù:]'^ÿm . ümøž½Õ»ïCÛÿåï…{|Špó?ÀmÞÛÕï»ÓÙ;;>$Š©äfO£WàÝ”yšÔÔ‰to¡¼‹[„š„{Ò›÷Iî‹qõsïÖçîz®¨MŒ•Ì_ûd öl…¶¨ŒµH¨ï³~å*­p³*eý¢Ywzï==‘N~Ú›±þJžÂ=_0ó§dì];ÑÂìN4üA|Çû_Ȥ¶Ã×Û€áo÷¯•«¤A}ŽK.ü{ìô?‰–‘‘‘‘‘‘‘‘‘‘¹ÅÂJ ¦¶æoÙènHŒF#’(¡×ë%ñ>=EB’lh3u0‚dÂP[Cpû› ’v]˜ô!èkj¨QòzõÀ`0 Jâ}ÖÁÐGÀh4"J":îš·ýÓrôL&Ó%€Aÿ`êŽh‘$éÕé­oWuz=&ÑtßÚU’$lÛÎà£3®ô¥AW÷ÞÁ{4 AQ7¶õºå<'I’$=pºsÉŠ×êj¨öR $I¢¶¶…RqŸÖŠé¿´ÅpÇ~„$3yQ8F]-µF£ìÈÈ\µh„H{¦9Fƒ]Ø{^á@Ûñ¯Òaü«˜ º¿oÍ(I8ø˜M×ýiÒÕPS+ üO.¤$$m7^ôºZjÿ1¼>‰ÌýEËÈÈÈÈÈÈÈÈÈÈÜ’²Ò²ÝÂN%DI¤¸¤øoh YGþ—D Qü›tçÇh4"ƒá’Ëd2!‰%¥%žî˜@Ý‘ê¶jT~ÐúñNõðþ¶kÙ}•¿²¢Añ/ܹ•lÝ)--}›L¢¼¼ü÷çÊdŸJFF^rÈ­ñ€Öö£ÍáÿWÄZËÈÈÈÈÈÈÈÈÈÈÜIÂÍÍí_'¶Éd"7/7W7¹eî£ÉH~^¾¬;@II *• kkëJ®ªª*juµ8:8>Pré Š‹Š8Ý‘ÈÊÌz u:=#ý_;Öªkj¨ªªÂÙÉé_)NNNÎN¨Uê¥ü3d¾233qquA!(‘‘‘‘‘ùÿJzFúÿ«úÊV_FFFFFFFFFFæ–üÛ®æþ‘+-%YUþ'M¢Ü—tºþšÕq|?ˆrIâƒ*—<;ݯþF’þåu¸òßÏ–‘d‹+Ï22ÿï×gr=þ¾VùwYéozŠlQþÈ`™t¡zó…¥Ô å7ÌùR‚”Ëá˜S\ȯ¹ ¹*¹˜Ç‘S¹ (çß»0—àw.·tÇeHkï\·ï¯4W)Ñ;Ò?¥ƒwW†ô/’•N ©¤¿µoo#UyñìŒ9þ_o¯ÿü¡â$óšÃwß~ËÞ̸BUIlÞr†JÙ»©½ºùÿoeË TäœfwÌyŒwckSؼ!ŠûîÓI·ýéê©k{'½{?t蟲¨wî‹IwàµÞ‹?x÷µÉlÝ’H™$ý-ÏkDô§XýÃw|=÷WVÆ—ÞÑ­ôª“d"ÿØ2¾øú­ÜO¦Qh ö©MÛÅ—_|Áü¥k8]&Ü—ÛóïW ¦BâŽÅq&£”ûu¬UB@¨9Ͳ…?ñõW_°#ÕÐÀõIÛü#ßÅdÈÆù‘¯€–‘‘‘‘‘‘‘‘‘‘ùûÉß͇s"˜YШï mlqù_U…çI>«¤qG_4èH‹Ù̶½ñ !5ÀŒ~-qT§±ù§5Ä—Öb!hØóŒ 5»ùB˜ ÎÿÍæq”Ž­ú3´{KÜÌk‰_¶˜©™TІI³ûà#\½ÈÏåÀšBš i‚=ùÇ×òÝÚl[нï@š»ÖŸ«M‹aí~#Ã#<(_úÑçs¨Ú0ev<¡"ž¥sÖs^T ¶°£ùˆ'èéYÿ˜²4ŽÚI¦C¶5Ù¶3‘2IÄ¥ÃF>޽¦œã ~cwN)IBÙ~³º{ݰ®†ªtb‰èˆFrŽG³yÓ~Ò ¥ß„þ´ñ·»ÅIà|ö¯Î¥ÙÐH¬®^äWår`çz ½2°¥Ûu¿— Žm¾€o÷0œÌÕÆ$–}¾†ó¢€Æ*œ‘O ÄçOÏ3‘Ãæ5»¹ 4¢×˜þ´v@I ±K~#úB6U´eò«}ð ˆþø'þÕØ8tcÊc­±F¤*?žß¯ä´Ò‹æûп‹/j \ˆ^ÏÖƒqäJ‘ ŸÙÆ(¨à9óØ[V¨îÈ£/våÎ/p½Io¨ÛfTdìgÉ‚]ä*m lÞý›aGD½7|DŒ:;ÚŽOï03Žþ4—ÝEåè…¶L¹'.7 º(– ß®$Qð¤E—¾ ìâ‹"÷$k·î">K‡JJ¥1¤/ òæÄœì)«Æ¤hÏô—ºã„„AžmŸüÆI……µ{Žfp¨e}íî SÉ)–}¿‘ (1³q¦õ°itu7Qtþ[íà¼R‰äÝŠA}zÑÔU"yÓr¶L¦PlÊØYb~ïÛ‚)“½Ë·p,­]}?‰&7zΘLdïà½y‡Qªˆ–vL?›lŽf;òPG_Ô€`ÊåèÁ‹Xx^?VnØÏ÷´ilš³Š„²ZL¢@Р'a±ŸÏcƒy~h T¤d[t í¦öÆ,q3¿¯:J‰ À¡IWúGuÆÏ¦a6Øòb·³eç!.Zµfðà‡ˆpµ†¬h~\u‚¢*#ˆ0äF‡k0ŸbÝ^5}7Æ@ª!7õ g²4ø8d²sà Š1li9xQM=0¿ ©ª‹/tZ I'?4—Ç›žäC)h|¼ññ°AqYSK8¸:ƒð¡‘Ø!Yly>Ç+\¼{0aBS,ëû19f‹wžÅ.¼ ý{w§‘Ã?˜!(¿x˜UëÜiÛ%Í¿Ä| ¦B➥DíOÇ–(ohs‹8òÙBŽj‚‰tPð@¿n¯ì8‹—H4ïvÝûw¡#ïôA¶¯ûƒ‹’„Q¯%¢ï`¢Úøa}³¶¿¡O"R‘˦WsFáM«n}éÓÉõå1XCbÌ9l›âáh‰€€Pö_ü´—Z£ˆOïŒka[/R9ç¯dSÑZEœbã7«HRøÒ®W_z¶õDE>GVobÿ™,ªL"ž½¦1¡êú!Yub1¿íAç.±üöíÒP`fãFÛáSyÈÍHaÊl[]g[|Ú0´Owš¸¨ÿ4ÓB ¬É tP$ö Èaëûó8*XâìÙƒ‰“šÕÍe7´ñ:Î<‡…¿^îÖ((åÈ¿²§¤“êN“y±‹ûu¿5Rž}’m‹v’b1-hß—¨Æ"‡wl%6ó’}Ö …DñDŸlÌ®Eµ üöùZÒj¬š2ü±>x¢§(y/¿/ÙO¾ÒŽð½é×# «œ£¬ÜÙ\}]™* „öffïÆXjê2g÷¬(íÅ´!QÕœeëgˈU¨l½hÖ{$‚-êB9è3ö±æp!A¢hái}•­»Ô–…X•Eݦ\2?Æ” ¼÷Û ,Ý|iÓo"]}u¤ÙÁú-'(œhÓ0Ý[zaqU9¥Gæ²(=’ÑC[ã¬TÜÄ߾Ƴ%ëx4Û6&K)¸“û¶ÃÇVu¹Ì’C?°èbKÆk…ƒ"‹ýÂaI‰Rc…{ÉLnfAIÊ^–.ÞK¾ÒŽÐö½èŽ5…_¿‰˜ø‹T™D𲺅¸b;±Yy”UÐ÷©4sÐÞÀ†‰è«’ØúåJ’Ü#é¨îÛ«Ó±ˆÄ穲  Mx »7§ãÔ¤1}ìî­ŸLÙÚum -ÁwUV ñ'H(t§gòòŒ IDAT·Ô7Y[Ç}¿„ƒ•NØ«Püe#ÝÙêÂta)ïlH¦Í˜~ò¾É="gËÈÈÈÈÈÈÈÈÈÈü½dGóæËÛ¨ ðÇÏÛ 'mݲDª.ääš·y|ö·¬Ï¯ûnE,±éyTÙÓ(Ô“ê?6rð\ œÛAL±®ž~øè9ðþ|N”ßâ™e餥¥« !,܆Üm[Øs°œÓsÙ^WÎùëy}"FSÝùå‚sxñå7øf{J]v–XENÌ >ùù4ÚÆ!øº9buÕŠ8?%¿6h’²+Ý€½OŽykxwCR]vÀÙì©ò#ÐÏ'«þøVïâõe§¨FDz{õÁzá ,ãô–õd˜¸‹. Sòfbj ðÀN•Iô—kɬ-!ÿÜ ’5!„†x¡Î8Å©S'8}ôW¶Çf£v§±2–/ÆVc¸÷¹EwžÑ)ÔjðöóÁÇÇ_w¬Õ ÊOþÊk¯îBlˆ¿¯/nZK ö¬á`Z{f\Ñkc.Çœ !½¤n ]×Ï ²áG!¿XD\îÞ~øùW³{ãYs;J÷¼Ãö@_NÜίÙS¤¤:y/›—EïFh#-ÙÒHO-m°)Yc㌯«ÄÙ£ñœË5!ìá“yû)Ó:áí뇠ž˜7^â·Ø „²8ÖnH¼2GˆÕä?E̾8’SN—.âѨ!žFNþ¾•˜ÄÂ;Ên•jŠˆ]÷.Ïþšu±ùõÙ$böQ–ÿ0‹¾ZGbaõåÏ«ã~çýw_âýÇ)­¿Þöܶ·9 !ÀÆ⸥|[”‘´~?­ÏÀ6¼>.öX>)‚BƒùM?< ×+*̰srÆÅÑú†Áß:’X¹Õ’ ¯Î`Æ3èìùçºÝî¢Í –ææ×Tø·]mYCfl‰'˰ ÄßÏ 's”·˜Ì¯÷Ivº’³e…$ÆüLŠyS­ŠÙ¿o[/ÖÆŒ}üúí,fÍÙʹ²º#6BÑA>~i#Ånøøøàb}E— µ"e…„·´áÌö¤Z4#Ð2è˜ÍìÎòOp"»ƒ S“ðÃbbR+.ÏÅéqh=¤5Ú3›Ø[@p€6Š ¢¿Þ@vm¹©§H1«³-Ê´c=Géu3muür>|ï%Þ[~Œ’ú,ÉóÛßd¿>˜;Jã—ðÕÉ’覀)ë0Ë~˜Å _¯'±¸~ÆËÞÄŽb{\=}ð °#gÍŽ—]ß²J.žåضLÌCƒðõÂÕÞ™ö:û¼Š-ÇÓ¨¾f‚,åÈü¥¤ÙàåŠEÎn>_•LEÙ9þذJ¯p;ˆ;°“uqeˆZ;œÝ½ñõñÁ/8‹Œl:q‘C]]s¶½ÅœÇض!*LèNoå€1˜FAÞØSHâ¶Ídšê×\<Ȇu?²hM,²+®Ë¨8þ+o¾9›×ÆÕù$’‘š„µ¼úñ!ÔáÁø{¸á`%R}þ‡÷Å#ú4&¶˜í[£Ù{¾âr9¥‡¾ççmѬ[K‰Q¼±¿}=UÉ$Ÿ?Ož¶¡¡Þ˜âvs(áUR]™%¾aîö6¬Ž£T’×±³ÚŸ@?o\í!uýbb3Ó9¼q•žá4v6’xp«OU@I±Y˜ìƒ ×pfþ2ö¤TBÑ7ÕmD¥Ù§Xµ|'û·l§@*"ñØ Ž'pSOA:Ϧ ɘnæeÝ餣Tca©¾*¸£€¢S¬^w#kWs±Î1ââÙ=üüËvââs1ÝÇ9Vº½ŸƒR‹K³!<3~CZ»£´vÃÏ×ßÀœç‰‹ÛÂæ•;ˆM+CëFc³dæ.‰áBm5§×¿Å¶Bg¼||ñ©ˆæõqX·ŋό£½»âF)ÂWµ—W»rޏ@­¹%Z3‹›Ø0”eo\0/¿ô8F&ÌöÞÚìæö§‚Ô„Ó$œ¯œðövÆN«i€þP 1Ó V w¬VÆê³ì\ÂÝ/7Ûë8Çú-Ðoæ³<ûÔSô¸ÑI‘ªÂ4®ÜOÙåÿÞŽD…l36C_áñ‡¼ÿ=þÑŠœ,##########ó·’½ÅÀY¼9ØãÚ¥±ÚW߯4ñJ¤FU¿¡ð¦U¿Fôr²Ã‚Z,¶}HyU5!]™63˜`[€<ÄåÏ“P>ƒ7ˈ3÷¤iÏ 4upÃQ!â—õ1±•Øðc!Žc¦2¢/š‡ÊöÕŠú„á¦TbáA» ,VÅ+±¼‚Ôä$Ây“GZ¨®Y€ T’tH…{ßRN,.ÂuâxF·pCÑ¡˜Á_'RÔ/gßA‰ÁiĺZ£ÌÜšÐ.8ƒÔRÕ•Í$S gw/ †öôí(gPSÌ‘[H³Š¤GŸPÚÒ*È‹}IfÔ“¯ ~çyÂ~{—¡f@šuoÅS9!ûËë¸p4•Ü¢†¿4 ÿr'2礗—DÆÏ¸Œ|’Ñ­½Pu.eè—I Ô°õKmËÃPÏ3›“ïiFìnwúÿ0œ–Æ–ÿº•ôÄ“¹˜…ѹ3cÆ<„c¾À±/³(¬9Gìׄ|0ž‘ÞjhšË€yñT÷ð½AÐ_ì»]WgÅ u[¤äb>i)Fº?Š6T°ï÷…l?•íýEÚ èÅ^—r£3øy^9>èKÐm :jécZÐøò“ ”禑t؃ GМ|vÍ]ɱm ”?Û‰N}è@1Ëv?ʇ­99[OØãªµìê»ôÑÍñˆâÑÙᛃ>ms^M XÉ 2µÿ UÀ`^|)œFZÐá—ÿ,çLõ :µÄ½|pæÍãx^2`Õ¼ÃFbÍ>Ž=|”ô!mð±PßÛ)uIç– ›>ŠkÆG»WlGìõ/¼œiY‘üÇ2RÐhTW6­jµ².¿ôϺÝdóÇj­6N¡§m|-Oׂ§3OZûóh;:›­Û=¶¼ šíKÉ/kÆ£ÓatÍ/D©4k YØû·¤›¿9g³Žcm™ÍîoÖ‘ï1œÿLéHݵ´6½Í›+ŽÒÿ1 ×dA (”*ÌÔJ$s7wiÆäáá@«Ÿ^BÞ…<óx/¬4ÿœÜ¢ŽâÂ"ª)fO¦%ú‹1Ä¥œæl&tžú.ãÛÙþÊ|bÉ%ëÉ, ˇOZðó óHÂgïÁ¼ðRglL Z ö°v»-Þo5¤8ι\{:óäÔ²_X±û4¥¢ýŸ–ÁþY,Y+ ù•%»šñØKjP²ù«™HVaëÚžioŒ"ðÐŽ;Ñ#It$¬c;& k}[ó¨pO²àñï8pÆi¿¾NsÃY–üº• '³À;…7~D'˜!uE¹»Ö£ë>•7G6Bu•F ˆÔÖdpá.Óˆ=âËÀÿ#RÏÏ?ïá|\:tkJÿ±áê`‰†´ÑÏZZM'É•ɱn4{ÄEéÛR“û _[Ëéêþth=˜}¼qb¿ŸÃáÌRª»«Ý"§PÚŸæÈ…K¶å,;¾UÐiõhú¨ \ˆþ’w·&Aóæ\Ø¿•½ÉÖtŸÔo%Vž„àÂ¥vó ŸFˆ@:E_~N¾9˜²÷2wîÚ¿4‰¦æ awX?&íMVy‡Þ~t¸lŸ;0²w¬­®A•¿'¦ËßçaŒ‰s™ðCy­]ÈÎ1£ï #‰ ÍÜåœMHÃÙ”.ý‚ë[È¢míÓ7k­ã±ïùæ¬úûS¸H (±ðîÍ£³C 2ƒÊ3[˜ÿi*eJð*9ÍÖ½‡©ñ¢C±„å .Õ¸†Ó.8…øìºù_2Jœ;´—qïðB7«ËþIʉ JE/†L/gÉ~oùˆÖ(ήäÇ“ ÚuíCÊÅ+¾æÕþöÍ”+»£…³+¶ˆ8Ÿü”´¢JŒpf)sN™ñPÞœ¿¨F„`×…)/5!T ˜Žñ倵¤/  SEïÏGÒ”B´ –SDzjƒƒ5Ôbó<&ROm@ß}ò t»3GCšá¦ˆcÁ‘nÌj£B¥V£V™£¡ÝófÓÑTÊLÞ ý}ýUûe ™™å¼2sá}ƪБq“Z ¥déRC^é&í,‰§Kiܯ99;~ã—•ûÉ'’áÏL¢Ox!k×ÔàdZÎÚ}LxV[×SJd­åÙ/ððd\:ÑÝé«ÎLáYTÎÅoÿ(\ÍÕKN²|Áö¦T"Šî ˜9“Á¹ü¾Î„Ÿz1+÷WRcÒÐÿùÿÒÏW$sû'¼³æ"¥GŸ‡˜:k¾ÔrñðZæÎßEZ¹CÇ¢Gp9[¾]ÀŽÄ‹T˜|õÖˆ²>ÅüU"¬ç²ho'žùj$nHˆFÕ€­Òš öC j_§?±‹ ¨¬µÄ¶< )´“ú·À¢§'S¦OâðµD.˜È0ÊWýð>.ŒˆÄ¯ºƒtÅçKÝÍþ«Æs]ÿÙÒ³=aœé1!ŠPu‹C#‹…,ÑaR˜óð‹ŸÒËé8 ž›Ïñ%o¼TF«vƒÚ8ƒùŸ­%SD·ãÛCÍž¹Šwpà¸9]'5'ël-–ÙÛÙ“¢#êÅqZ3›%é zá#¢\kHÞô9ŸnÎF­´Ä»q/¦Îè…Yâ Nìú£;IË튛e]í¼Q8f²ö³¹Ä\È¥–î¼øÝ(Kñã* ‘6óX¸G‰ÖуaϽB{ó<¯ù–¹1…¨["¢F1uˆM]p[P£&õ_íDÝm ]#]°¸©UÈeã»o³³¦C&tÂP˜OîÅ|Œú 2ââÈË=À‘d­G<ÇÄ^îœúl!ÇÊÏÿÒ#¬ ËgÏ;³ì•y$èÁ̺?/Ð'4Væ¨9Ég3wâ9t:w÷øóxú“(;ù1?’7:ÖßÑTµŸO_XÌ•9öîí˜úê¿ÍFÿ³ÈÀ22222222222#ؾê'×¾Å#S¦ðèÌØ^‚Z‹G‹ôj㇅ÞTÖºãédCö–/yqò[dA¯V^˜Û] þ¦dNYµ¢…Û-kf£“Ž €LR%'=”HÎØ˜)ëNÄû7£eòEÒ$ ° èÌðÞ‘ØÕg(T”bDz]løæI¦LÏìo'YWˆ¨ˆe§Òk'R¡+vÔe»¶ å™tÒ$ œë6ZôeIµkI„-`È'­ “3 ¬ptt¢®j霌ÞÛcS\ƒÞ¨©—¿Qþ9ä¸çüZ¥9Úüͼ=e<“§NeÊä Lx{ yEÙ|ÀŸþc¯ DZ7 ÃÁdºéûÑ$@qM?7T¾Am¢RXðÔFÏ‹¬ w$Û>I³Ìçùzé!¬G½B7ÔX¹»`*úˆÑ/˦s"Î.N88Z4löƒ®ƒ¤@]r–ƒôí†Óå#s‚Æõ'à`,©‚p‹$Å%=³8c&b´¶¼£+ •îÍ{Ч?ãå¾QØxÑý!šzØ¡2]ÉüÐx4#ª_kÜêS% (Ì Â­~Ãׯ+„ äDŽijoåf–~8IãÆñî¢dê„<‡D@©Ò“›½…eßlAõ$ã:ÛwjÑùœûí+vœ5§ÕÓ˜4ÀŸÂÓ™”ÖþY©¥rÒ“’HJ¹HjÌlˆ5Ôu*v¶eݺhâËÌh‰S@{ ΰzVÍx“Œ&ã=¸žÕ«xw_A ¤Ae¦Å3#¥€1›ãç8"”‘²i?ç+ô̳<71˜ÄmGHËJåø’7ØRÞ…‡‡¶ÁC©€³ T5Ũ!}ªÝ nž¥÷@¢@©È`÷’W1qI&©‘„Ú”S^êSg«Õöø¨ì°ÈÌ£PØùÑ¢Wgœ¬QŠ —݈ÛðÓ§LaÊ#±6«~;^ÔQ•vœí¾-‰0UPYæYçט9ã‡MV%jw¼,ëçäâ5a„¸™£€ôh~ónO[uœu¶ÅDME™ö‘„:(°tôFˆ_ÇÓg°Qˆ ×„.x\¯î‘tïß•’:O³€‚¼`\Uu³…•w(g.ނӇÙGAýàRØzÙ£3‘î¶(Å:¿‡0Bì*ÙÿåãL¼š ù¯ÑÝLDWœÀ¶Í{HÓÕÿV($îØ'L˜2‘g>ù•£…W[•Kö¹]B|¸Ö•såáÆpvÜD&My”çç—2öÉþø„Ó¾‡#KGŒcâ¤78ZåE¯¨&õ™yue–îù€®‰ ÷Ãxr>_§‡3uÚT:4µGRšc¨\Bñ©Žã×&óêoÕtÿì ÂÊ’Ø}à0úˆiŒø^v昙›ÿ)3ÒÌ«5}ûµÂ©~\ ±lùýö.|©“'òì;_r¼JMp·‡ˆð(â›Qã˜8ñ+ÊÜÓ¡uRÊZæ%˜Ó}Øctéà‹™Æk³ºÐêõþöŸ°pÂÅÙ•Šý?óÚÔ8у>šcyv%?œ¶¥ß˜étnç‰Zc޵R—&„Zd²î‰<útíæ¾D߀`ÚõrcùˆqLœô‹=èÝ;¥ÒOëú Øy4a„údr`k±7ÒíKm.J˜»6¦u›,O|Kr±-f m‡–ÄP`ÉЙOóÜxo­ÜÇ…* ¿–8:FÒkØ0 «áì¼Ãd`¤àè R9Re$'çrl1k×%ãÓÿIÆ4¯`]Ì^R2²I^ý>³Ãé>°3~æ*Pj±ÕàãGh4ª+þ¥Öí¨ýv-ÇòÓ9Ó”¨öÖÔÖìüéØo,ÓŸÉ }mÙ|$‘Üü b—¾Áæ’ô4šÑ¡Õ|9?†؇÷gÚôi<:~(­Sø~O&5IëY¾`v=å‘a­±­)#¿è æí£Ò½-#Ÿ|ŠgǺ±gÉ>òKÓ9´`6;Å! Ú§[dnêÒ¢9yûðŒv(Ž «yqÜD¦L\M£þ] ±²B*U}OØÔù³)å\¹~X¨&ïºñ|ù_:&“Ά<Ž-|­UQ :’aAå|>?ef^´èÛÏÐ.ŒÙ‹0³¬øïF,.ÙçØmìLÎ$g×6$ZÙ«M+9µh 眣!1ç¥O9ÛhCýKøïÏP¥4Ç­ù@¦=6ÇÇöÂWs†Ÿ–`çíWPS"ÚôaP;Gò’ȪIeïgïr°&”¨á“éíº›WWœ†ªtüüûÔc;lí³øjQz ÛcúOðÔÈVèKØ|2sµ%Ñ;8žVzUüZâægÊôyTtœÈ¸Qt³§ø\"'âÓÈ:¹‚ÍûR±móGyq4f2ôwŽÀ5¤}ɸ6=ý*I¾C>lÍUkxe[&  6w¥YÿáŒÜ»äùL{îS֦讚¿®§:ö8f½zjp–åÏŸ"dæ<6eQae¬ú%ƒü½mä `™¿‘BŠrZ1ìͱ46©IßÎ’ÿ¬#|Á ¼Lz Ò5k:׃xÔïûìà ‡=[¹Õglf°xôb¼Ÿ}Ÿð¿XÝÔ®!váÒuAŒhÆ!E ¢tiñi‰UY55Ò•_èôF$Á 1èu¨4½™üÊp‚KR9´#‘M¿ÅâùHSŒ'öb醷—ÙÆt¹ ¬Êª©¾f{Š_žÚAØ»Ÿà èò²)ÈK ´Ëô«ä¬âÈWË)²oC·Æ>õ úNçéÎìûf G>|ž®N×-~Ez½Xß~  ˆõA3,jõjk¨V·cÖ/~¨½ê6[/ý\oD¬ßRÔU¥°ùÇE,.ÝÇ¡yFJJK)1‹ÄÌs:C^}“®&-.ŠË[* 3Ô“%@MùÑy”t›ÍSM2XýöǬ½ð(Ã#¬®9¯-u™BR}ýÌuFŒ:Q)^Õ/X•VQ-)PpU°ÎÌ ‹²*j¥pés„*=¨.o4™cY©Cg””"â¥B”h++©¾c=¾¾ÎPtÝÞHðÏ)½°‡Ñ¯Ðµz wìådÑPÚx8ÒvÚL<ú•a²¼ÀÖOW²Îw*£>oÏ—³'³Ü Ôf7âùk®ž3Ã- ½Ïå½~C1Ø*©-´¤ÅÐIô.Ér•¿H4žØ7u0Ó¿LäÝçÆ±T4€R@—Ê‹õÑx……7]¦<†ë¹ þa¯'Dy÷#\ÔcÉËû 1„•w[Fômâ€Pš‚YêwLÛ•i?C÷PWÄäÓˆ +œ|Âq*ËûßveìØ§ñÌÛΑjæ‚’œ#[Y°1–C>ÉÕΓ[[zöìIw ÎÀáõLj{«|6<ÿ©*¨ª±íÉe 5^}ybDk±%åìQ´•y$&ngsRæÎ6h Ùœ=ßš¨A‘^éÕ§;­¬ŒÜølJ)±{ÎSdlJŸŽöèc—’åàCÿ§’ùók¬L:Ïä~]y⫼õØ "(ÁXÔ˜m@*¾j±‡‘7ÏR) Á½=Ý{õ¤³«üÓùá,ôt"¼CN‰NôhÙ†¬}Iìqèͳ—ìó'›9·÷4µNá´ŒèÀ¨`4Õ™(Cißµ'•ü´3›VQ]i’ÁOf¢CÀN™Áš÷%C-RRkN€ª'tpÇÍ7…c'Z6©ä°ÍI4Å)ÄäÑuJoú5q€s¬x$š¸v.˜ùt¥OßÎDš‰”9d²nQ"‘(ÊYòÎZòUµdŠŒp¶ÅF©ÀR4 ÒŒß}€àêyÝ“ºùÿ‡b˜ñ oE™áì[¿¾6€R…Z) i½nI¿.-±Ñ™ˆ>sŠÚ%Î-ƒppÒкK/›ïàéÒNLz¤-µPmŸÈÆ7¶‘ÖûüP[¸ÕŸömé|î$ëÅ'a½x|T³ÞR][ƒ£-f€”ŸÀŽSËÉûä0¶¢ê’ t6挞q7ýÿDËÈÈÈÈÈÈÈÈÈÈü˜0âNdó4LaZNo™GBå ¼¬n¾ÙlåêOˆ«?ÆÀ…lÊîA½–š Žþ”êé/1¥ã-ƒGu›;:W.$úœ#QOõÇŸTöêX)ê³xksÉò JqãÅ’I™6VÂñ"³Òr¢“É¡)Æ 'sìÔ ×+P]*³:‹<èw9ÇwÆö­·®$Ê+*©.p"ÐçRm«96ï'öׄÐÿ±®ø_^­+qˆÀÊÜßçÔçéêt«¶M€XX“ŠÉw²ÆÇÊ Z¼ÃoÙSf¶¡Œùt!}ô ”Æ|ŽÇìçDY}:…ábvmËþi™Y¼ƒo÷D1ý«4R6Åç[–÷ ûº½Kgëkå“$e]@C*¥ÀÁ/;3ÔzJ…¢®äšú6T˜0¢©_ÄJHÅÅä5òÄÅh$Ö¤®ÿ¼Š µ„ÉÝÛ´"jëss1’íå@ ’A…êÒ‹Kò¸äõ§¬¡»Ãxn[‘´éb d\Čכàˆv¶«9~`çÂGäîOcw€0Š}ÿ µÚˆM—¡<û~kÊ •»xù~ÊkǃBëC›1ÏàÞ±…"˜­')ÒÚq)N\3Dÿ0&`‰Ë6#xñý”›˜•G3ûs³Ë …ʯð8X«Èÿ„¬á„ÜõŽÊq¾½ç·ÞdX#õeyÍl\ñ·qEyœu鉔;OfÊ+ô)7am<Ä[—ákÙ`IÄhîB£f-iíqÕ„"zàqnI†Ñ¸]ý23¥ I¥òʳ•*”€$ݯ÷‹IH˜9†é„zóN˜'ó&o!vt(M ­‹/¥-Ž—úHcG` <# ŠpÃâäI¡™Oä5’{BPŠ’›;nvr.»‘Þ¶\êµ…¤x2D1)UW6“ …Ád@§q§ùÃ3=TÁÒ÷Ž ’,q0û›Ã•’ÃåùÀ„¡ªŒâ@wœ ´!´j† èS~âXI*…¦ |þሪ ŠˆFJgo”Ø ¦ò\ §l<èâ ­ ¢Œ |á^ÛZB4sÂÞÖ²þØK¥ ¥ Ñ„ˆˆÁ(Ae5:§Fx)êæ}3­Ú‚bJ À€Ö¿Æ}h±s1þÞè+šÐÆÅÀZ«¢¦ &ª³7‚Þ‚#þv‡Ùc!áb-^±`ÖöõcÉ„™µ#6%Tý‹<+ %–^„8x&LÁ —J¨2ý-õûŠO2º‘ù§Œ¯²§ef&Wû›\×mÄ w&¼][Zk€–~@Bñhü5EdŸs"b‚C² IT×\¨¤ÔB;;´”²ýõ/H ÀèþMpT @Éqv4ívÕì&eÎØ¸¾óCƒUWl‹­¶nhÒ³&;ܲ8Ûþ…/Õψ©¢” wœ3g/ü¯ÌÑ7Ï-SáÔ'šRêÚžÃçžã¡VÎ5q®ÿ­Ö… .€„uv6»’r)Óƒ§æZûlu½•·•ï÷õá©o›áOc¼>v`ݯ°DÑŽ‹%óØÔ옅íÒeœ9ÍÅÀ¾x+¡0ú{C[2#Ð5JZ=ó+K*õ%r·ñî<%OMi]§ã¼Â;bkn¢àÜ2ò¿aöw-(Щ0×%°ð·38·ïN3o›[ÛdIBPøÒ<,‚ $Ü-EŠ.gut[Ôê~LêÙËîï£ýþW’ÅÑeèÇÌíYJ¨Â¬lï|]Á˜iqnùNPIª? $`éèM£7RÈz6¦‡Ð{èçü<¸”“ ³’hÞü¦ŠÉv¨; XàÖŠ£'°~—V…ytrìy[ëßI8´ƒ´àø)ËØýÞ×Ä{G1bp$6ÄbÐÝX·ƒ®v³ €m[„S{|{sZÑÑ·ŠBÇf |b í›»!DÀw (5")$DQÁšàˆrÖ¦'Q˜A›QVlâ\£`\"šcJËAëäR7N,¬±«6R[SM­¥.6u÷‘¢“gF„âëÕô u¥RD­Ö¶ýz²g¹-ÚjÉ]©ÀÌtž­ 6q$Û›±o§‘xˆ/T# -½qµP(ͰV1ånæõ[ð›õSJÉ8sˆä‘•_LŽKd½Ò1‰Bu%e®mÙ3‚¡ŽF ApÄÏv/K­|q³¾õu½5é'‰Í;ƒ[· àÑ„y7'„\œF ¡àC„Ùã먲™¡ŠÔ}_°ð½ôömz[’Yµ:¹²'àƒŠŠ•ÈVg[ó%pÅóÏòëÒûylÎ@&Ïœîµë;¯7àïè=%/b•eÑcçuMÅ¥ºáT9ÕMZåãÝêãJ`~ÅPg#•‹¬Ms™òyÝ®ÏC¼v ±¡Ñ¥šu w»[˜öü |«TtAÆb >wþÃÿÆÐÿEzÓwÈ×Ì^åÙÿ-aora5¹ɆÕbƤX1ΤÍü²ïžË"O‘¼Ë‹ìG {¯Üø.<ò,†Åâÿ;|<~ýüC– Ჩ7Ñ- ž úí&9¿Ü³Ìݽ–_¢Âh.xœ˜mDÉŒ ‘  Â–²ü0@é…ä—B{ CðŽ$ˆtí·¤“Õžwƒw­fkt$1‚ù?òä• ˆz÷nêä=wŠÂ¼lÒÍ}èä Åê÷g°º¢-W?~í›xNá•®_Èê“vokÒ9°¾¡¡­ð¬Ø¬ &ÅŒ„±-]èûÉÑ´ƒì’X‚QÜ;xãÖ'øbÉé“=€hS$³g÷·d%4¦5­ˆo›@td8!Á͈1çðã[Óykîrµ:;3’dÆêc‚ _¬;±6@"T)áð.~~*9›òÂcËÉ!ˆè` ÞM¦ d%²‡r° `@ßÉ­ôŒÃî5lmN}è=x [y°yûÖ²/®=ü£ˆê°Šƒe@eIÇ) éCßvٔ詔ÙÆ¶q †þÄÎdOb¸bÇOìˆý ;Èi3½é7´®l'±'5‚ˆèj*7¯dÇ)O_èÅ•dçùP±“M»pÜ p‚½‰V,þ f"b[ÒºU,'¾Z€xQ?Z cOYÆ“7Ìå˜W6M>¡ÄµmEˆ;›ÌÌB;¶õg޳l‘‰V={ÛÔä ~ÙhŸ@ëVÑÿj>Ò°þ4ÇMÚÊYlò^Yé¨Ì!ý`$!!mf«Ù+yâê%ÄÏx›ë;zBÅéì_¿’Do°=/ÅEe¡f_ð‹ˆ¡U«8 V‹½S1fË9P而b©wé°ØŸÆæ2õªÏȨù¬ªŠý_Ï'ÕÏŒ¸oé5Ÿgç ½ ÝÏÚ\qí8[ÏÁ…sBÙ:¦}º§˜ƒhÙÔBqx@m_×4jÞ§E-dÿ¶•Ì[[Èøø‡éƒnU0ŸKÕì('íTÙîÎŒ¹^fÁçß“\{Ü7•O®xŽÒ BÈöuì­x'ö‘N þÑÄÅ_ÂÓOv娢/˜»3ç¬WlŸÉŠÕ¢ ›¬ÞÛ¼%˜­(Š«ÍÇ›Lª¹¿ÞŒ(Z°‰¢Ôƒƒ—ðKšçG'm!1¦3„ú#¯`m*@ ™)•”»ü°ýÓÇiuÐͬ¶*ì[¾b«(Í$ÑT4r#K³)I.ôœ¼öµb…óëÒC]ƒÚÍ: 9º‘‘Dìz“¯Ó<:0çøNR‡ö¢í9­ˆBHDSښ׳rC>º`Æ&•‰äfœÂ¯EKZ·jMë„›‚¨©u."ÕAT¼'ÁMä&nåèÐÞuÞ]¯×¬ó) _£UŠÙ¿c ¿”äp쨗ì‡ÏoÉw=ŸDÆDHhQmWsèPžCRqåáa§OÉÛ,˜d«Ít¦ß°ï™ÿýIÏÏʱãXaAàÈÙÏNíBz€o“0ÂÖ‘T ”dr¸,›ª°¦Ø8ÁÂ)or¤ÝhÆÝ1€èšÍn¿°ºr(}c<òäÊüŽ'®[NÂ{o2¦c€G/¤²ãÀEöq7öâ@||4›I4c“zÒ}ж¦ˆœ<´…¤Ø8‚(çÀòyî™/9ªÖ¹ÞbÁ$›±xuNñê¹üœW£ÑŽs`CaaàNý†I׿À¦JÁžGÖöŬÈ(#'¥„{M”Æì3ëyöÚ÷ØæÐ Ì‚yç"Ö¥zd±‰PÂÑþø7-¥tËjöyu²=ÛAA‘ “p”% ltxÍCL€ˆÓXâZÓºU+Z· Ãj '6ÌBÚ÷sØâuúì§òÉ8AD´DPtkZ'ÄÓ¦!M‰jJ€$6Ò— ’ä™+й3íû|ÉümžŸWç¤s¼,’HŸ4Nþ²dœwS^¥Nt¼ç{Z$Db³…Ó²E°×®ëo”“º~!/NþŽlAÀ•²Û~ñÚï*ÒšÐí~G‡ç-³USO™±!ä}÷!k¼;8=£»¢‰Œ(åÔ–ŸØ[éù>Gžü"ARKŸ{›½ÍGpãÝC‰õ¥Žlg5íúh€»Î4•TŽ,]E~³f„—ì"#ÂbT.šKRŸ iïÛŒ„˜r$ª4ë8[×zd<ó0û¢ý‰lFͪMiBïûÞaBÊLYWޝE@GCLJöW=Á{³o'^¯Ä‰€è.#W &¦ë·mN¤XF޳» èÚé FÞxtG!™þƒ¸®w,±­Ú`)H$¥I0‘¡„íÝG€bÃ, haá„çoæD¾•¨¸V´nÕšV !(²ˆ «uêÜ¥ýõ(™Å}ÚßX°ælçà®4ŠÁRΉ=ØtTlD¶lEëVQ$µyø@šQ',×›Ïu¤ØjF–ÍØ|Ì Ö´[ÿ Ýî±ÏUuí³¥ së8¢Ünï§ûM÷Þ„¤ëÞÛ—¼Ÿ¹í¥ä âÚî1ÄÄG##S” -»˜²"`Ƥk¨M£ˆJ]Īí¥h€¶g=;u§‡ @M¹µ_é¢ÊåÄ5˜«;G€£,ƒ|Á»©RP0qˆïŸÊœÍT6h£MÛ¶ã’{?à•§z²ù¦a\÷r %?äÛ®{ÚScçu½^Wi„FµçmòlÖ(:¸‘ƒÃûÒÍëÿŸXÂCÆðvZw^™ù<÷\Üž&þ–³ÞhÚ,šƒ[÷’‹Í"‰H\ÄA¡%­Z·¦u«xb¢Qôþ§1NüWüü\RïIÿe,ÖÎÜ;ÿ]ºZY«f>Ä´¥ž`â®´ñ<=¶'»¿xž‡ïÊAÄM§›^gê…±¸~ýŒ5'¶PþðU|*{R%]þš£ß¬å¤³o÷ Vn«dÕê÷À^MÈ¥Oòæ#þÈsŒ~.Rw/]6ÅôÊX|7cÞÚ‹¦Ã¥£?ã¶7¿âÊÛnäõÇzÑ+϶ƒoäái#8ö 9~ºµhŽt™8…ÝãåÒg²)s÷fòÊþ˜EÈZÿ5ë²³þÖ¡¼¥«ÈAÑŒ¸s ƒ*’1÷E ¥c÷¾Y~pß/›v;c^哾fßÓ «Au0䉘ÚâÌ4€VUÈÖY÷òØžTÖþÔÑ<òÜD.8þ\ôµ_±>ëoÌ+š %¢ ×Ý3‰ÎÇ–3቗æƒnæ¡G¯&¡hSŸù€Õ{³ˆ¼ìI^¿g a>ç`ºdFI_Ä—~ˆ®Hh¨ÎÖ<¸x×Þõo wsm¿O±Hà´…ÑᦙÕ/ˆÐ#o1±W/N)".Ÿ®ÜðÈDFuõœ¿m0ί¬ã©!>/YÐ NÜÎeCó©ÒtG,·ÍýÄsJB]scwx¯Ú” µTrð¹Kéý¬‚à²qÁ˜‰Úš]‹’±;ÎÓ{ñ8Qô»ñ~nîÛ¦MK™üâÓ y¯‹èÂ~=WHÿôY ·Û[p¹Ü¸k#û*N‡ÛsºMWqØ]ž þ¥þ<ùñµÜ9¦/sL6CGóü²nç¼VJp–À¶¸¶ê ¾Çðcø½·“óâ»ÜÒëU첊+êF>z6Œj—Šæ b ºŽ}ïtFz QPðïq/s_ïT“¶m+¿Ð¹fÆHN~ö *â¸æþVlž²„ª!C1¬õ¹;…ÿ·tŠ?eû?å…¦RŽNÜÈ™<¨Ûo^ÿÜÀ' ŒâÒ)ïrÃÈn<5¬ÏÓ”žWßÃäaÍpZį~–cU,]5ƒ!S–òô”y |ô†¼SêN`ü¼™ôÖªIÞ³ uðSž“˜-;Ó½çN^Ú‹§‰¢ß÷qËÀ8¼Š_“Ö°sí¾ž© ÛíÄÝõ/ýHÅÀ;‰7y6˜¥¯ûŠõ™ÇÙxãV¦k.”ÈöŒ½ûaÚ$.a¤ç‘шz;=x9qò™vº|ý Ü4ý'rËÜŒî÷W½ý >5‰g†÷¡É‡Ð¦WñÜ×íA/ º$Ÿì“:vï³î£Ë™öÚ{¬>TÁÂïf0`Òb^n¡ñÞmÃy¾Â ªƒ‹¦®áÞæÎ#%d¥fS®>fª ðу½xY€È ®à¾'FÒ­û ¨§ÈÎȧBUÑ…<õÉ&\ß¹f¿ÀžÜ?ëU. Ï¥é5G˜:¤“ñ§ÓÈñ<4é""PÙ7ë-v7ïË­='Šè· ‡]4¬ŽC<:Àcóý[tá¶§>¢_ÝýRª—Ó…ËUÿª}â&sÝk›(¯Ö¸lèû\ÿöZî˜ô"ÇïíE¯L¢ÚŒ`â[“èwߤwx¼o/ÊhBßq1ñâΜq0[uáp8q{3ŽuýíQWÎãŽW¿ wu9™*NÀ(øùûÜ?ñ1$TZ~’I—ö&¼®*T8ì.ÜDäsåExÞŠ_ ×¾°‚»ºå³/÷0S†öâIüè0ì6yz(þÉKØzx5[~XŲ9 šÝNÌ-ðѤ9 œ<¾ŽlDŸºZPuápªÞ~ ¡û‹pd¹E‘Lxrù¼É5½žÀ%»qFßÄGŒ§[ð5ÜzÉ ZÌŒKâзî¦çÔ¦ å#7ÙšÊÝ3¶Ñ7‘‘ù®Ç7¡%WL}š>] Xýe>jmÂÒ£Ú‰n â²I“Ø9ôbî¾}’jóœä5ûÒÄ ¨ªËN¥¹/ÃÛoç½é×Ñë9‰–};â8Õ›îÂátÕI„ºq8Üͯáêð!\Ôo~þVb{ !ÆìKǾíÉÞò,×÷š…EQ±ûôå®Îsû ÷ðæƒ/qùÇ9¸DÎø»øâ93Õ·wÃШ=)8´†•›¶1îCïS‘Œž4œgf0¶×STÎO¿Î…ñ!(‰³¸ø¡ETTWÓêöYÌ ¶™¹ëÍg¯»1gÒ[¬ØšÂ²UxaV;Ê]uªš‡]@£ÆsáF"æ‚Ñ\;zÏÖØçqs÷%|ùr>5Ys]Åáp{ÇÆóoOòԅé`Å…æKÔç5š„ÙnñM¸ˆ¦Ï &¬õ6®HìƒOUbª[sÏŒûxvÂý\øfÕ®ÞLþa6ÇRŽÓ[—4·‡Ú„ÈVˆÍ¾Þ½LD´lŠØ@FÆ:)s¹ñ<«]E~Fær×Y7äYšDߤ÷|4‹ÓöóÍóß‘0@Buºq»Ýžg9NM]ÆbSMu`wž^z ¢Œ³ ‰õß¼FÕ% ¸!Á@p:Ô¬³Ñu“‹¤{ƒ3€²ÅŠ"6ìWÕåyçÖS¾„Ù¬xÞÓt¸Ð0™M˜$±6P/˜LÞ+¯Ï¨Ÿ&ÅŠI<]¶¦ºqëŠ n—MeÏÕ¹ºêÂQs=©®#›m(’Š£Úéy‹³vœ½å¸d³Œèý¿§~"²YÁ$‰Þ>l8.NïÛ‚ c¶˜<߯¹qÚ¨È&3&“§ ÕåÄéRÑ‘P¬ ² .»— c±šÎHæ9N ‰Œüí‹¡¶ÙŠ"Ѩlëš »Ý…Ž€(›P ·Ëåyóje[Ð]ž`™®#)ÖZ™Öu7N‡ŽÉbòô›Û‰Ý©"H2&EAjB\º„ÉTçJeÍEµÓ“ì¯;OtÕIµCQD1›ÏØ_\\Œ,Ëøûûÿ~·§×` IDATJÈíÀîªZL&Iwawz&ž§í&DTœ'nUG4Y0›Ä?¥aÊ+Êq8„‡4$:ë•k„Y±X…†2.™Ìž“+ªË¬<ãfRNÏ‹ÆÇ¹ñÚ:Š‹‹iÚ´éï¶AuÙqºky"ŠÕ\»C_×ݸ\&Ås€®¹q9½×yê + &YúÃ}¦iÙÙÙDEE5КۅÓéFC@6›½óïL™<í®(Ý…½Ú…æ½Ú^2™1˪êö虚eMÙ¤œ.·ééÄDÇœ1†=æµ¢ ÅlBÔÝ8žà>ºŽ¤XPd¯-¨ Â×ÔSÃYeÇ-Þ¿—kõ„ËéôèoEAù}Ø•••TUUÚèu Ðjn\nE‘¼rèBGôޱ§Ït]CD¤ÄO±,‚Ù÷ yàß?ÿ““Cpp0Šòg·h¨ª'Aä¹UD®±+NY‘Qq8tLæ=äöÈ ˆ&Ìæ¿w廎Nff&ÑͣϔgÕ[0)²wlkô¬†.è ˜°(n7Þzzêæ¨vQã’‚U‘¼å©žß5Kàv£ê"²IDuºA’‘ë†2ýßÀ3—Þ7ZE“‚b:³³²²hÚ´)’$5´ù^-+fŸSíD­'‡h]¨ÖÌA³³$¢:«q¨=f¶šUlœq1†mdb—äÂewY¦æÆéráï˜l6g ໎«xjˆÍã;ýÛÒH{kl\]_±V?TÛq#Ô‘Åßd³×'¨[¿šö vçé7ákô¢Ç>kÈuüÏ\®k÷ÎbŸQqÚ5$KÍ5Ù§åQðúâe H&Sm—Y·Ü8œ ˜eø›.—Š(IH¢X¯/Tב—š¾t9ì¸TQ’=ºú YôÊ”\ž¨8º×lÜß–4W_QÃírâty׊“,Õk¯‡ÎÑ\T9ܵå)f+²p–>¬k[¼rXã—hud»®MS=ºÆ$Õê—[E$/ètâT½N»hÂb–ÐÜÕØ] )fÌ’ŽÓ®"Õ‘§&a1‰ŸÞkŸuDLf“N§Šl’áÌ6{ýcÝ$#hb­ÿpZg«hHȢ汃*ˆ’„€„É„W'JxFêt¹º«Úc$Åsô²×óü²ãÄö¼’q=B<ò Õi·"àrr†-(Oú’'g‡ðú›#±šæÆíR3&át=}¨. [,(¢àñM¼ÉÕºþ¬Z‘Ä—OÍ!ìÅ׿×È|®#¯¨ëf‹ˆÛ ¦[Pw®œá‡Õ•Sdp¹TIBëÛ¿:ãR§LÍY…Ã-€èéKQ0É¢Çp9Q‘½k+IÔq:¶v-é)W1˧}C·€IPvœª€ ˆ‚„$ uì38.Ù„,ý¾¿­£âvꈲçp¯ à‘AïõØ!#‰š·Í5rSwÝ'c©Y£éž+µEÅô§ì~΢ \•5ž_ï º»ýt[”,&ÉkóÁ¤HhµkSP*ÈÛè;Ý´i$%%Řd&“©A–Tt]G@ý>ÇÛ¡•”œù{@Lzúyc5Nü—ÍÖF#"²ÉŠlª÷©bÁT?>-)XÿÌÕ‚èIh6ò#Ñlita$JlÖúŸJ([“wyÞáOX[šÕm_Ã2EÉ\¯<;ÅÅiß9ŒÑk#Ï(fk£'û,ùwûU2Y°Õo¤dÂÒðC”zos6¬ß™e‹’©¶^r½$©áw˜­ÖÆË‘ÎüÃú5Þ‡ž \ÃþD³Mn¤?ÌXM Ë0Y—…?%Ŷ™Fe[MX´QD6™È;‚ «¥a¹ž„w~“ÍØ Q67¼X£š2ë:Yß¾œ]Ïž™ó–17Z7oRKª5|µÁkY1q~á™ËVùK÷Ùm~cöÔ£ÌæFæ½b­sÂJÃáÞÁ¯+¯àÒÇëü©hÂ\R‹Íé¬ýzÆ›jcñζ4´q }EÅZ_?4";ÖOlÔk`Ÿ¥ÆlþYì3Ê'â“Ç?[f==l>­/Ûæ‹˜LâYú²1y1™mõü©?"‹Šùwüí3ÆCD6YúKõåÖ|ZVmVÓëóٖ²]¯,Q®·SÄ$Ÿþ@Vβ¶­gÈíé±÷úÃuüc©‘~TÎøÒ:möúÇ¿¥³¥Z?©a{èÄšr±Ç©[˜õâ£|y †‘÷ObTφ<“ÙÒÀ¿6×PµŠÜ-Ï2øÂ™tšð³ÆÄy’®õ}äÆúP4a­3¶ºæ"é³[¹íãDŽ`ªt6[P#¯gÖORÎ2WÎð×3çJ]ûwf95ÿ–¹š‚W×Ô—±†~²|F_Öõd³í7“|ŠÙü'¬‰T»înhêë꩞Ü4¶îó&¡•?¿å«éØyø®ËéýêÛl›Ü§Q¢®–L§}PÙl¼z{¦äüú¿èAጓÁÿÙº‡s᤻þâ7YhÖér[ðoëáÿ¿Ô?éþ¿<*5}¡ëúyÕ§ëÅyY¯óMv<úP?/eºnŸýÛæÚk¼#.|’Y>yÎ-òù:¿ÿ”_rÖ½¶_ϳþ¬_¯ÿ\ýÌ>ƒ™²qð_ü–N<²¹Sm ¿ÈÀàüÃ7¶?º‡ÿ’]’ñë0%Û'œ‹&šhwûB¶ßnxîÿÿ㺷qÝ9UáÿÏ…È#l``````````pöE’(™™ù¯«wM`8#3ÃDCvþf_”*;OǨÊÿ2ýokÿv]¡ë:¹y¹žë ÿ¥œ¯}>úMº®sòäÉõxü]þ×ì ‘600000000008+º¦Ó"æ_WoUUÉÍË=ý°ÁÄåvQ_ð»oÿ/PRR‚,ËøùùWõª¨¬Àn·7òð?‹Ó餸¸˜ˆˆˆóª^š®‘}²±7€ÿyÒ3Òë½ãúªŠÊª*BCBþ•õÏÉÉ!8$ÅdúWÖ?#3ã¼”óU¦³²²ˆl‰(Wcüï’ž‘þ?Õ^Ãêü&ÿÆË´4]3Îà¯É»f\WÛº~ÆõÁçS½ŒþúSJÜà?%‡ºþoo„á—öÍÀÀÀÀÀÀàÿ)FØÀÀÀÀÀÀÀÀÀÀÀàœPMA^ õ/ü­‹Ê²R Kªn4000øŸ@Ãm/%'¯œÿ—[–\ÅO>ÊÑ£GÉ«:ëé.#+» ·!ç\¾Õ¥äþUùVËÉÊ*Ået¤ÁYæÈ)Nf—âüWUZGs“qì(G’OQêüÛåÙ‹ÓH:rŒ”Œ|ªôsWOµ2—¤¤$ާePö¯SDvJŠJ(«týg·K©¥¤¥$säH9Ú9—•ò“Ç8šWiÌõ¿‰q´ÁŸê,vÎI&0¦ñA§—&.û)JK‚›ú!¢RžFFv1ÕèèA±tŒÁ";É;t”“ºbdºFúüƺ8•›IZV!,a-ˆ Ã&©%%«¬á´íuߪ"'¥š¸`<—dªTå§r(µ“(Q1±„Ú¼¿_´‘3N2lü(Ú¨Ed—Và"‚¶Ý£ñpqì`*§tQ6Ú²Íkª\ΆoäˆÐ›/ &7%»®chIBdfÉIAÒQ²ªœhºm¸ Ê·Ñ–j®r ó5‚› ¡Q™ŸEzzåÓºáþfÎþòQ59)•„Ä…P÷RPÝ]Enf*Õ>±Ä†ÙÎò÷.òÓËð‹ Â*‰ •¼/ÅÓ^SZvŠ¥áEÂUEÙ¤§œäD·Š!<À‚ˆ›ÂcÇÈ:U‹pÚtñþm5Y{“«‹˜,ÍhÛ>WuiOP"úM‹H?D4Ne¥’‘[D•L|§‚Ì2.ræ¤Ã bSÚum†õ/ r½67*ÛÎò’“²¨B¢hÑ"3.Nåd‘™]ŒUUˆHhCt‘¼Ã‰œ´;ѧÝͱ5òÍn{!©NP,úãisU!)é™Uªˆ‚¢1tõ%ÿÐÏ|"hß- +:švŠŒ=G)@DPl5O ®É_»Vs’|(•rDDÅJx\;šÕ™’ZuÙ…˜Bbi SšvœŒÂRì„Ð¥²Èß~‘K¯ ûxù§ªQ½Á#]÷¡yÇ6„›¨ÌdWR‚ºl! Y1J%ù•"›úyvÈëUäåT ûT;Wç¿M9i‡NPäPAˆëH¼”;¢@:Ç ¢á,/ #ËADÛh¤ât’çáÌA͈ŠÄO97¶ª¢ 22ó(—É‹‹$Øf‚Ê,ŸÈÇîÒÑuˆëBB„æ($5[ &6ØPrSUVBq¥ˆ¿¹‚Œ´쀦*„ÅÅÓ<Äé/ÔÊí8EI‘@p¤_“ *¥yeH¾¾øú(uäÅNnJMâB0PIú®Ãä 6ß(Z·ñÖÕEiv Ç2JQ‚›Ñ"ºæð8ÝAÁÁ¯™¶°)o¼3 ¿§(·‡èOD˜ÏYN–¸)ùv÷}‘D€¬3â™ÅÜÑáEÊæ¹ÌÜÝžìHÞŽ£‹~„5!:Ü‘jòRÒÈ)®Ä¥køD·§Møiyr›Ç£ïFñÁ)Þ{‚Sˆˆf+áñíhfÓ¨.Ë%ãX§Ý7œø˜(‚­I£ƒÜ”ršÄãÑè•dìJ$O±ú4§u›3ýúýZ’[†ì̈́€ãøžÎÊB2ŽfRªëèšL@D QA:y™éVÔØg›Ó1:¥®]Q‹8º7•rAÄd &¾} ¾è¸ª H=”J‰àKxó¢#|Ñ(ËL!#¯˜*=˜„.±™Ä3}º•LJ  ã®Ì#9)ƒ Dd[‘q „[êÔ¼<›yÕ6&ÔÇÔ¸X[ž÷oÊÒØu4ÙæGxLšù©”çg’’^€ a1qD…ùž‘€pä'rôT ñáXkßâ¬ïoŸÙ§•ù™¤§çQ)€М¶1ø)N ’SÈ>U…]·Õ¡-– 2÷'ß­²9ˆí[`«Ê#ýhVq‰¦Eó@ì™'HÏ+ÅŽGçèÉNîÁ#œtªž2"ÛÒ¹©õô—e“šUI@lk"l€^MQA9ªìGhµqÆ]̉t¨ø[õ7)YÅ““Ê™6ïVâ$ÐѪóI>–‡Ö¬ mC¯vŠœì“¸üZbEø‡uUåÑ/yàÎEh»Ðùò˜ÚÓÍÌ*$QAŸ0â£qç$«° §îKt»Â|Lˆ8É9p˜l— bíºF’³þ}›{™¶<ðÕë\äó[>b&…•U8]ÄtŠ!ØljÔ†éŽ<öÍ~žûʦC».Œ}lC›þ'úÃNqþ)\²?áAn²Ò˱ä§ü½qreñì­øtÁõÃâÿBÐMyqEÕ>D7ó?‹×©\=‡ÇæíÄ]]ÉEO.æÞ^–swÚ´jN}ŠÝý^añø.Fìäo`$€ þ»Tf°iîL^Û•M„ÅF×[_å¾Þ~èîj Ó·°ìç$Ê=¸wb¬¤°å›ÏùfC:šŸƒ Kwžt/¢w0ïÅÁB59¡—1ïÅ ;[¤ÓžÎ޳ùde>MʨöéÏmwßÇ…-·°ä½eì,©¤,ËFŸwžfbçH$ *k[’~á»/Øöéu„à¦:e'‹æ-dir11músÝ-w18Æ“Þ(=„ß½‰4íbéß³«¢’S™>ô}ÿYlŽp|ÓžÙ…9LGÝ„u}Œi÷uÅØó ©ÆMÛ.fö|ñ>sÖåcó/¥Ú8÷>pãw±è/ÙW] bYÁ—0÷Å[hV's©«NJ2~a妤gväÑ©C°¹Ž±ué¾ù9‡’J-oÏý×ö%²‘ŒŒ={¿ÛÊ×s‚xîó±„Õü@s’¶eï|¾¡÷T^›Ð­A@Y-NåPúz>~ËÍ=ï£c Bþæ¼;s•ªlt|üeîP/¾ÊöogñÕŠ“ÛMĽ™ûnLóê5,~÷;ö”WR–åCßÏ0±C•ŸñÁ³ÛÉÑ*¢¹ü“§¹6¨œc[>ä£w’)2›é:œÛŸ¸ž®ìåçϰj¥… '?ÄÄáð)þ†¹/¯%Ùì¦2+ ?}ž Ñ>õR¿Íí­ˆ dû5îëQÉogòÁ·ih²†%ª£¼‹›—²}öûÌ]Ÿ qAÁ\2yÃ*739"9ÑŠ"èùÊCÜÙ>⌀¨æÊaÿϳ™ûñQÊ|l„vºˆë½ŽE‰üôõ—lM®Äl¶bOßˉN2ï¶j–½¼•d³½¨½_›Èø6Á82¾åí©«)‹¨lDõ¹‰éãûóçóŠ:î£ xö齨"tT¢{?Δñ=Éug9‰«ßaú—'¹`ÜóL¼8‹ïg}Á†ÔRJs-t{a2ûÄcû»Q#û^>~æ5 3‚®¢ºc¹ñõi °é‹¼½/Ÿp’?‘݇r]B1Ëw¶dê½u=Ê7s¥IŸ‘\74¡8•ƒõÇùo+A'›¿a札äë*:ù¨Ý_gÞ€mL{ï$/<•öœâȯñΚ6L|a(Ù >áËí¹ˆÖ2*"†qïm·3¤õ(d¤M,÷9ßf÷àÑ—Ẏ›¾þ˜Ï~ÉBu Hz>®Èq<ñЕ´._É3/Xy÷³1„¨¥ûu9KwØèÓê3?؃›P„2•ˆ ®äÆÛ.¡SØdên;…é[ùnÍaŠ*/àþGúa´Š•Öácµà*<±À>Üweô=ëYŸRŠVê dÌãLÓKÎWÌ~q#©>*”DÑçõ‰Üyõ|E _>þ!ÚoBÕòصô=f,=„z1“>} Ãë êÒí|µ$‚Ù›?¤ýÔžžd÷kɾ»¯2±{Ë!Â{ô¤‡_ÈÜ<§Cc£!H˜-“ø§Okj YI”ÛSØ›ÃØ«üÏò›‡øàõ nœ»ˆ+£Ï^?Wõ)òÒË mõ'6>¸8ðî;lüßßoÄNþ&FØÀÀÀÀÀÀÀÀÀÀà¿Jùú˜qüB}6¼öÄ“èŽrRYÅ÷NÑþâžÅJ~%aÃoç¥b 6>6…yEôP«hÿÜGLŠ(fþ%“ØTy#ל-så‰8–oéL+Eå×é/°ïÈÊ–}W?ÊÌAñȧ3äóÜÖö2š(åÇÖ±dávNÝâ –T±÷ço9Üì¾®u½¥·Î‰ÃmúX8ôé·pã³ÌîÛ ö½ÈÀ9;¸ãµËð"¹á“Ï ØwðÎU³Xwó‡Œòƒ’Âj´’ Z6÷C1ž×ïiM´ädݤ§Øw8….TÓê‰<+§øâ²GÙRq3c¬uýîjNîZÅw?åÒ´_o,@ÚÚ-¤ª­ylék$ä/ç™8|¬=‘m]ܔеC'â‚<Á£Êãùfþ&Rüoª³PÔÈÞ½Œ; l?Š0ˆ8É:”D©9œ¸„l€š·—®b¿:]€~ü`Í_Èh3øC^ÿ‰ÛæŽ!°Î°¤oþ…c§¢xpÙ+´+úÇf&’˜Òž¬%KaìS|Ò?qÿK þlãßÀÏÏK«Ù?1=Nþ4‰ 3wpéx;×põŠù Q™3{9ë7¥á[¼†‚ؼ8e$áésóÉ^r{E‘öÂb‚ž^œ¶"ê/O2ðýmŒmØŸNêÙf±QÙÖ(É<È®_\Üûõçô „5ŸÏáÇï÷rñÝ-PÕ¶\ûÄD®^9)äËq_àûØBæt¶BþgŒ¸y9ú›–§š¢´=l\^È5ß/`0Ù¬øh+>ÛN‡{rï3¹×û›Û_½M=Xó̽´”9mEÈ™ÃðÛ—3âÇ;‰¬ôçâóZöff=¿‰Ýwô§ÏŸŽì ȦÜ<÷!. wÑfÞ?‡Í7¾Ípk5I›¾`]Z%‘-ë[Í®OWpª×¼ùR/ü“ßcÔìŒmE‹À¿y&FSÑZ\ɋώ¡µåÌ@Òî7^âýôÛX0o$M4ô5_°W4ãc5Ÿ f«Å$!îzã|n’qG™÷Ä>z3‹Ñ9¬XZ†Ðù6Þ|5³¿)eÚàã¬_—Ï…/¾LðÁ…¬<Ò™W¿JnŽ>,9€s‘‰î?Ž)ý{úÚvš˜í™÷.žèÍô^ VòÈå÷ßÉ Z1ç ¾>Jù""™ÌXÍ2º.¾ÿ&î“d±ðîùìÜÞ’ØË:àÿk£;+Hßö+Ö—ÑzXÿZ]¤—¦°uùlÍnIŸ:'vœYÛXþù*’Ì—#  kù¬}m5]®äÆ&.-}šæbÔ_6®ÚDe)¬˜UOÿ“xj U¹‰üúkeB0ñ;Ó!¾ U¤íÙMRfNAB jEßž-i¢Hÿ\½Å@ZvêF,*i鹨e©ääQpJ ¶û0º4H]¾–£8 üiöÐnŒìmb×÷;(@Á'°=Æ œ³ ¹©ÌK%ñ¸…öýšcÃEiF6E§,´è@ÎÁ=<žGµîOÛýhTÆþDw³7%ŠÞh VqlÛ ~Í0ûEÓsH'žø× ¡jÑ ¹á%ÆMìQg~ž]Â…z>ÉŒkgòMŸ H›J¸nå9ðɬïY³6ΗĠeÃâØ^Ü™Q& pn™ÉûºðÁ§ÏдžOäp”QHlß ¶ÿZÍM+зz3>Ydžy´ïb¡ëíOssËPü8Å’±³)å"âCñ$n `à5è'c¹uîÃ\μ ¼ÿgl5…v±}¹wé£t6CòüXì™㈩«ù³·óÝç«HT.óöI!k^ý‰. ¾çÆ #ßNaêìý\þhJÒZh&¾[<è¥ÇÙ²ì~ÉmÅEöôbz%í¦}Ĥõ|Og;v”=°+2hzº?έ\JÝ»ZîzºwÕÚç»YݶU½ yüôñ^F-^À(œ»ÞåÊÙ?2ìa¶®®â†• èG:‹ßYÊš•[),ø‰‚ÖWñÊ‹ vÿÄíãÖp¨c4ƒ"¨NßÂ7óÖ’ì{÷v K“öÜ52CÉ¡ï˜ûæWì¼z*ý„Rv­úŒme~ÄÆ$"j ’Fö´-,ý| Ç|®õèe8µŠ„ IDATU%}Í\–»oàÇù=jmmòê½d«xáË׉æÓŸ]Ëîƒét‹XvœoÏ$¯ù:%Ôê÷þv}Jª ê>š'Çu Øõêtö§Ÿ¤¢³/:ýydîCôõ©«Ueü¤1¼=û~bk?­à„F×>“¹å‘ÔþzîBGßÏ듚ÑÕ÷>Nba9]ªªèôê'< ϼK¦²©j Wúy„\ðkFlL[Ê—i“¹±…ŒÉbÁ¬((ØIݵƒ¤¬bìZ†ö§U DîÞcجþî[Z·Ã\m£s—HôÒ ìwÓnPcIZ%{’hÒëV>~®+f×ÜpÏv2.óå𣋠{yO'Y³>a9#~OØ© Zæ 8ýiuæ3èèR<—O¾ƒ¤ªd†ÝÝBKØ·¿‚y7ûRUtÑDÛþ#ii;É®/6‘,ëlÙ°ò°6´ /eצÔ ÁÄwêJç8‘Ôã¨ÕÇI?)Û-’ò"¹ô)E* Fà“¸Š}%&Ú A¼‹Â#[Øtô’h" ¼=zµDÉÏ!?#‰£n~ŠëGt·®ÄD6A¢œ¤-ÛI)®ÀEƒ.ïD{&;ËD˜w°;EÄló£CÿÁ4—ËÉ<¼©•ˆ‚…ˆ–]éÝÚë× "&Ê8òk2blâ"|#XÁÑ «Ø“§¢iq ¿¼;ƒÂœäçäPš—Cyy:™Í;õ§kË@ ×n䈫 çÆ/P£{qÙöÿ´‹\UÇdnË á-±¡ãªÌåÀ«(MïL«VÝèë÷ûþ—cýÉãßz“¿ît6­ÜK‰(cõ¡ÇàŽÿ2ýÏb$€ þ‹”²êÛ$ÚôïÅ ¢™}èzÉhZÛtŸ0zŽ›ÆËM—³ò˜0…uá‚0(IÚÈŠCiäE  OË&È¡—r)NR6,g{ŽŠ6ìfúþÖJ0 Ž„Úçeœ #4*Ÿ¬ïÚ’p¹7 w@ÿ´¤kH„}ŒOÚýϻрòÒtöïN%xèQ¾š¿ [l'z÷éJ¨p€ÍÙ¾´³’r´#1cdœ€Òq ýS“¦ktls£jÖµåN\-c‰²™Æ‘ª–Œ ŒÆX§žÁa„…È Ã‰›´-ËØ–éÀ9øF. =sÙ,˜èxíó¼Ý|1³7:Ñ)'?Ç„PÑ“t kCW{>öJ;8òñãÐâÍ™Üß/‹Á'òA‡z®ÏU]$­fc¦‰>7¿A“Äå|—nA&›u¿Ï®°Ëyä©Ëh!ê(m¯âÉ×B){8 ð¡Ëu}Ù1w! ýA¬¹rDgÎ<VBažˆVÖÆsÚ#¸%]Üyh•»Ù›Ø‰£\€¹ã@ú§%‘Á!ã’pOÀ? ]º.Nâpu$E©½,b-ýcHÉßÃÞì"#<ßÓ^E;)qïeÿþþônæ@ÊÔy(}_Oåð§ä¸~›…Fe»Û¨Ñ$4‰ MÏö|²ˆ¶jʪ"Ü%ÐÅlv¬üœ¼Â4o7œK»—ÑŽ„0ï¾ÿ°‹¸Ax—ÕÐÒz:ÙárØ©,n'IÛ¨(ŠŽå’´¨I$È¢änÜz¿«ò;Ð%Üûƒ¦2–Hv´h?š‘î\v}÷óýˆ>š1«$¶Í%ÞDDu•­e‘‚Jö®ØålÃå7_Á‰ï7RnÊ"3¥Åÿ±wÞQUYÿ½75™Lzhô¢€T{ÃU¬TA]uwÝ]]?ûZv]ûÚ{Á." Ò;„ „t2)¤'S2í½÷ý1¡ƒ•UÜ}¿ÿ&on9÷œóιç^"âƒ}AéŒaŒlÚN“ÇC"†ŸW]+ê0ô”ðéKVâÂü$ )l0—Œ±³bu‹¾œBÈÁ“(’4é"z–}HéIS*3ϧê&µ8Òòev}þ<ý/äºá±\pi  rî øÓÝ|$¥Ð{7Eè0E`–ñÆòd.4’œÜ¬ïžýX\6œ’ˆÎ[—ƒ¸jÁ╟„sοnaÅE›©¹<ô;æHA–Þ¤jÇf6âïoøQÕF¢8ƒ¯þÄ~ÌÇ»\}w‡*hâGpíÝAô>¼ ƒGê› Ó3y(7šù·tø>QÊ(/ÈÅ!¾µž9„¼µ”4‡RWÓ€>v;ï½±’à~#qF&Aâ¯mDŒÝQ̺çŸç«¦P‚e+k+0cá¥dì|Ÿ·Þ,¡Mg"H¨â›š¡<ùÂM Ž0ýz `©‘ _­¢Mã‡Ô^KuC‘&œÛy¿<€GnÏ¢nW=ö0õ›¶Ð–&°ë[ÞÜ@t”Œ­m3–ô»™k8E ’±Öóù‹Û‘F>Ìpá[V.¥¨7‹iz#¾ZK…Ç‹`í¡¤ÇÌü‰-¼|ÿâ‡AGËp2 8°›ô´·HX-mêá£ÃC¾•€ ¶S¶¡˜§£÷‘œ8ˆQƒ² Ó‡”ç“D"·PQ;ŒQ`ˆ ÃKEó¬$aN9›Ù÷Óó×Rt8Yñeé3YóöÛH¢–þç]A~ € {ó6VugrƒÐBeýÆøE“åAcsÖÐ!Œ =Â߉M >L(=+YÜ\À}f³/朾yvôJ()ñDE9‚æ¾ÝPHuGyã}Œ>ò8ƒûfÁÂV|ié=ì-ÀE¡Â2†’»¬ŽR©XúϬ‰bÑ›·r†VA“0šYÆþÀ RŸÎI¿€óó=»¾â?nfÖò7¸8¬Ô—mäÅ­¤„¦2xÄPޏËÁgŸ ¸bF&G)È@^6Œ/¼Í;fPz\4!ÅZ³;»¯j4q1(νìµDZê»&B;’Kü7ÑÑãÆ AÃçðÜxfßÖw·FÎùLÀ×w‡W@“–H”ÇAUáöLàšéf–¼²A«;¦úP!pøÍ<‘ÇìEvÀë¶°vÅ>’'6ñÁ[o¢HdØÄ1Äeg_·™å/¿G ¾cTùÉÑнµ«¿Á6âæåmdцvŒ_ZâXû8Ë’E¿°Öláëí{±èò9£*@QöñõK/°/ÔDüè˘âHôJ[xçƒpÒE?ÒÇ^Ä p =Ôíú†>ì$%<ƒ!Ã=”Ñкk%Ÿíi -e£Rƒ.âœT¬ü”­@œ<ƒæÃã¡H¡qý0ÜÁ×ß~†ýê¡èÐ{±ìÜÄÚ•›Ùï• §‡R›™¹Ósh®ÞÝÚÃÎMNcEOzøÃÒkÑnü7/¼ì1óH©ÞÉ·+ºvm8^üˆíö ŒÝl´IÜužÌGO.…$vÛP’rAø+µ|ó÷7øHIeV|F¿hrφ¯ÞÛIýeì«”6:·WA±wP»¯„B‹ÃFV9‚ùÛø^`%Qƒ5ôtk‘÷oáæLþ}c*ŽÆ2v·b”¼¸;¨ˆ¸ƒ9¡…|ùÂÛ¬n %6¨™Âºp.^` ÙϺՅ4Jt÷°ËÉmcvñÔÝ›(8ÏHk£LÞùyDœL'ulbÙæZô§sî˜:¶¬ÜÆ»¯—cRZéÆ@‚ºX¹¿?ƒžÕ?+y ‰Ãk_ð½_ì]úÏZÏ}:ÀÑ‹ÇÓ‹Ýæ¿¼ð·•¤ÑÑѪAiØÎâÙ<7£‡š=ìf•ë6a³PÓ²…ok ’­¬­îঙ)l}óSööv£1piB¯?²•ˆL=®Úí¼Wlc‚±”òÝ…|Ò–Ë‹3"±6ìfGq'~'½â^£0ÕÓE[S-uv{Jì|º#ˆ‹nœ@¿Ÿñê(!zœå_S{/÷ƬåÉ?leØ¥&šk=x:jYaëÏ´×íbG±G7*ÚñúçcÐ è€=¼y÷“ÝÏ 2 *JÌ8ÒË©’e¤®JŠê2¹ûö~¾ŠIÉŽ½×}L¥Œ½»•†êİp¼¡/ø/am­§®6”tW/?  NæÀúåìê‰b|¿,\F ^YéÛAJ„¥åp€Çes" &d\½û©)Ñ!ä§‰¶¢Z:zã˜>1¶o¤-=š˜¤DÚ4%‡Ÿ© !ÒÒF»rdâh?«ŸûyÜu Ô€r ‰Æ¶ Lã¯ÆŸƒI˲/(297#±¯šÔ‹½ÅÂþZ?RÁiŽ»zÎŽÕáA@DÔâÁ€Z!]œv;n}Þ< ¤´Gd› ß®qµše/>ÈÛº\Ûõ¥ÅåÔÈ]¬9—N%FŸJˆp(Ú6YñÆ0“šÛÃÇO÷`ˆí dÙrŸ¹#G&­D ‚·ï¾V3A=½¸md½„$÷U ˆ!DÖ·Ò.ç¡Å÷`„' ú2:5‰h5ž¾Ï˜¼ Zíôê@‡Ô×÷ Â[z°ºD¯·o>L!D6n¡›>¶ÏâId;‡»oO$6®•ŸÛärj])\sÉÕ@/ã²íÚê·Q¼®óç1üª`–¿ü5¡Z4:Þ#[GPD"Yù;y뱉 öÒZfA—>òˆïØXúê.".¾‘tS2Ò´5,yîYªB5'UF/1^À àv¹èl°pÀžB\–€[îëÎOE®aÍ«ëÑŒ¿žäŽu¼øò¿Ù6]ãF6l®E¶d]+“3޾uLxs'Ý^™ŸûÓ"¢d£µÑ‚d3 È^o6Þ¶}ìò¸âȹ\H?$vhžO¡Œ7ˆÆåš‹–òl¡ð‹¸~P4bp—yŠ×û1ï‰ü€Èœþ ›RĪâ­,­ÚÅ·±9L>k8é!§øÐZQ@lï¤#>ƒØpÝÑ#!˜í´ ¡'{§‰=+ßæ)G fO/y9 ÎùñuÊ’[ïA=vÄœ¹ì8%\‡N¼u¬ E§9¨'´hŒ5íÁbóbÙ­ ¤WBW›‹:p*‘\0$ø'ÝQ|êd;õe;ØÚ˜Í/.$ÓSÌóÍ–¯¿aOI#grÛ´ø³é¶J ¿ºÑéõèµF¼RÁý¯`þÌ¡˜í˸ñ® ê[ÏbÜóñ­=üñ‘©DÉ+X4ÁÉÕŸ?Å„…š¯þʯæŠÇ'Ÿ’vЙ9œ c–óÕžÞB—N&ml"Uï¾Ææ: 9òˆ°ïäµ·–²3?ÐI̤¸3OÍ‹ÁÄØÛþ¾þ sŸ_Fóè«I(žÎø? ÜZ–Ú¬ØP‡Û} çIàûOàöù$ÒÙWQXÁ>ñ =õÃä±ËŠ|~ˆÃÛ+£ UT•š°‡TS­×"t—²y_÷ÞsaN'–ÂÕˆ—>@’kh<}vÞ—;΃ÏÄþ·>¤6q“â|w·/ÿÇ•UÍ‹·Šu¯oB3vVß‘¬2{7ÍuÍ8ô:ú~ãý`ïÅ{HihÑꟈè@¥–VI6™©Ñ&bÅ#þÖéÀ啎ÙúsŒïé0D ãšY ô3últHBƒ'×SYŬ­»iéàêËûõU´ÏדqìÚÁ¤ævòɳ6 1-ì^[ÏÐç®'#¨—äô¼ñØ‹D‡x9Pb!hØPŽõP²q Ï6mÀlvSÙÕÁå›fs3&}CÙ½›õŸíÅK¥]CtmWç°í q.œafÚ6ìÀbÇ=\Ft÷rþð`Û“â@ì&òÌÿãæ³Â¡ëK -+xíñF çñø‚31W¼Åûz31y“ˆ|ô.žÐŸEnîl†w²£UÁ/(‡!ðh›ÀÜÂ×›w²ÿŒôt5þYúטüçtÞ˜Nì™ç0¦n5-²KE1kVnâìü}”õ äÏßD*u,~a=z©†¥ï¬¤<8†œþiY·ñü³Ÿ2yh~b7‰>É¢@ñÒsÂYö°w])!”s&¦“à¬a½½ Ë&jÖ¬F™5š ˜pµ?Kþñ ¡"‚è¤Ê_"Ás„k§øÞ'ZÏ'3¿zü”Nb&¿ÂíÙ@ÍËLþÛl³®fÚÝSÙù\8ÿË8š·¼È“›Ò¸ãß‹|öù‰e¬[¢ÖNhÁuÌŸÖ×» ¼öÿ¸@ÿç_]DÚ—3Ëòo&?¸žîW’2z £-è{(+¯`õÚj®š1ˆAãºI ?›k&÷ð|Ó6ü¤rÞ·ŠœY÷2kT8ì}‚É÷¯Àò°“ÎAúÔ²0ÛŸeú[è½ørGŒ§¾£»«ž•û*(, "L«A£x$&Ý0 MN8áxý¿êÙ/©ó—qzÓ9ïî$H- 7àçg@#÷˜>–™·_DŒw ÷Ü»ê=Sç\HVU=×>p™†Ü9¡›‹Þz’ ¢Áºá¦>ð ³^¾3"þ#¸áñtîYÁGß”²ÜÒNóaŒB? ½£Ôìd‚ź•W_YOÔí’îrÐZSÈ’çW0eä´ßþuQÀ***********¿ 2C¸á®EôèÞÌC³^cÇ¢G«9y°9~øTf‡ ›Á²mI$^”G~ ¸üvÐÃûW_Ä9«¸%ïÄO8x$᢯øô«Vr.ÆÀ ;¥NQ<˜lî¢=&„à“Ý—'‰Hº™‹~G{>~e…«°L¼Oe DšŒ¸]"ÚƒÏTºh‹ %äP"ÃÂÒÞ "ä,®é»0©³«{³‡3.Ö÷ºd,>áó5N†\=šœ¨ƒá[#¹—.$‹gœÇYc¸u ðc-K€¢é 0Úéô#Ô A"‰I×%}çL‰3i£¯æ¢/v/2 È^\B4ÆeÙãïÓ 8Êxéß-Œ}èIƺ(͆×?x…ª¬›HÓÝ>EÑô%`ìô 5é=4¢Ø÷ÜnÚbC %¼LJ)`·ÑF°$á•~î¡9Ä¿fb_ß­t†›I׃ìÑ¢=(kÎ.ڣ =E²-#ÛÏ|åç^Fãæ ¦ÿërœûXüÒT,_Eû5ãHu!7Œºp³âö»Ø]©å¦›§ãxóKÊz¼hµìvfr“ùèñ5E âÜ›½¸>܆Ým§Õ&®>TUá.{•ÕŽ|.ÊÏÀŸÍ»†Ž×¾¢Â.¡uÖ±Û•Ãl“OÚô¦$&Îù3£öËkÿ®¬g¹ ò§ŽA-_Üÿ.u‘c™6%}‡‚ÑbìñÐåðúäEñâõhmòè¡#2˜<­øóïÖ•\8ƒ†rÍï¯`@èá{¡ÞlÇ~_c@PÐhÿ¶F‹På?¢}k&$ÿZæåÛxñ£OXþàR&}4‹Q&vðùn$¯/Ь JâÌßý…3éfÏúwyâ•ÕbHš’~êî-4 (ÁA7•ÒÜéAŠ;2hd¥%<„YFÖh. ˆ¢AñmØPÐ:«XºÌË9w\ è~у–ïú@BröbÆä2‘Ôÿ ®Z4… zÙøÌ ìܽæ!NÍ]Œ?yÜAðzðxüðËèÛˆ¢ &Aògá¶e163ÊWá×·A9]̹äÁ2œ´hß^$ÁHŒÑ?Q‡ Ira÷*ÐÐBw¿Ëà&02“¸=•T3ù”Ý­(šƒIÈ9]á×”E˜Ðö&2>ÙÀJ“­Y@êh¡ÉË9S³HíAŽ™È°d >Ù%±É€s|‰Íí´Áo&¸¬` ªß8®é7PØñ¯‡Ø\SIÛè„#*ùOÄAŸd 3.È„â=x¥ƒÕŸN:ƒð?áßzñ¸ò™þ×[@)œû"[g0Yê¡fOcΤ·Ö‹"k?S/€ÉÔ—˜v³÷³7YZÊùó†ë¯dvniaÂu GüV5_<ø>õ1c™vnÜ!ß0$íL®ºíLö½?_|ã"8q9¦ïZ¼òAý #÷:è‰ ÆŒHtÁ8.,ð}® ~‡Æ:‘ï9ˆ©³õý­–ÀØ!\~—ïXäê%¯°¤huî~äê´ÏY•ï.á•W»˜üÄœégeûâçYüþ;4þiÜäᣠqº¬´Ø JgMJ%LXÂú²´Žzö:b™¬ÿî`¿{Ÿ>þÖÌI\6*}C6£GŸM•ÍÕ)ù«²üýzFñÓçæ[o$h-üœ7_{™Å‘98ÜÌ}ä2"šÖñôKk(Úº‡þ™—qµ§ŠÖ^¯Œ¢(ÈÊÐfŠ}›£œÃuΡð©[X¹ÞLdÜ8^~hçíK²­m:yÁILXx»¯ÚÙ¹“ç®y™í=“9/v(¿»k(•Ÿý›¥e…ÔË9䈒μŠygª»~ÇÒ˜lR§¤`"€‚iwR@;ï\5•/û­b^ö‘âäFoÈ!?o0ëw­`—7“l®3úw{+Ír—LK')P½N$<ôÊ ‰ ×Äêêz0ø’d¶?ûM—…aLI…î6"rò|:((ž´öbºÚÛèŽ˹©:߆¹¾]s­{JÑÜ2“Pl²€"k0™ãÉkä³¥.f}‘†íÓBtJ»Ö¿Ï²å•xB יHèõàv÷âŠÈ°ßfÁ`&EïEî.æý¼G‰.ø ²!˜øMT'*¸ò‡“ à¶ãô*º­X£‚ñSdœ­ôÊ)\>=—XC rüyŒHèó„{r{…啘³oaÁÊŠ7‹p¸„;'ôǵ;GßXÂæÊ[9û–´¿´„*—‚¶·Ž2WóŒ 8Ž|š‰ø‚qÄßz–½Hñ“žâAA‡`$Yï{sÚHÞ^ìØè´0æ >lŸ=Fê, ´D apZ˜O—¹=ÈqÙ$xÓ H3‚l $U/âìÜÁÛO.¦Ì/‘„ 'm ‘v`Âëqãv9^ÄκâÇ1)Íà›¤|r*6P!gCây NcÉ:‰¶†u,{nõñÄ™À„So/AÀ {q“Ș«.9ù“%Aƒ¨9Á8É’9¤´ "$-aFÌœ.$¯‡ÝÝ´g]ÊÈhßšöOÈ'u×^öAŸ}8ìkŠ¢ŠÏÏþAttÓGfO.Mø`®(È? 6ÃývÕ!PQQQQQQQQQQùåÈ&+ç¾(í+i”z±;HÈiL˜üè & €lÙþý ôŒµ¸´huzº·¯e·ýpèÓëÔ ùŽˆ—€•ªŸòÉWíäκs‡I¤d–ÓØãñËöl`CJI‡†#‘D‚Ìa˜"¾eM[ßoº=x$=Ú)oÄK‰$gîa—ä»ßp÷z6¦Å“ŒÖbÞ~øZR/àºgã;ÁÌAGG;Ò02BºØ³òC¾Xçd𜛘†°ïZË®åˆþjOÜ_Ñ„Ù߀Îà‡3ÑÑndÿ:ßnû¶}ù+ø…à§Tñù3o³®ÎƑťb€­Æ@ ñ‹eÄïæ0{ö\æ.˜ÍÔ)c:äl&e}ñ _¬ÚK§"p°›?´Z¦@=ø×S½½‡À@þø¡˜¶TÑ ‡î²u,~cÝ„!#š«è訤TïB @~ú껽¾äÖ® lH%‘l2²ÖR֠źw;3sèg!$a;û¼T[-tD¤l VZqÔïdk¸¡ºþäöÛJE‹ï¨a¹d-3SIû áö£úlÖÙd)Ûr/ÈÒ~êŠ{}í0fÐ?.gU+ÖžÊk,´ö.{L˜‚dz‰fÜ570wÞl&†ö>n0É€çÀVÞþç*šú^åâGpÍ­·0ûÊ3é—¤'&=¹¯ ¼‹eoí'blÙñˆ(ÈÄ3qæMÌ7‡ñ!Ý„L"2­ÛW²ïP—dæðZü±#ÒUÈ›}LwÎ%\?ûL¢}h&㮞ËÜ9s˜}˵Œ5†ñg]Ây€Tõ IDAT“ºhstùF±j+›âˆÑéNY€BŽy’i(çeòП×a=ñ¢aÃJ𠍬¡ãPþ5.+’Áx8¹zhžýNAS@°—ðÞ·µ¾† á¦Î#¾§çPUŒäv’omJ=ÔTì`õ'D¿ÑWrù€h¼6‡O¦~G…Þ7l´éó˜2°>ÞDáұ.VÞõõg %-ÈŒßîbjw‡öæJšMfLºúM¸†¹óäéùùT~º„¯ëíüè䝯„É߀Îàß—$ê;Ôà^oÀ?ÀÜ—L:¸}zÚ, ˆš R³×²×  ¡½z;e©yô7ëñ×±Õê{žÛíE’5¿rõ¯¯ ŠN‡^ï ·ø[ö¸;©Ó:órÈl«§µÉæ:ð+ßY|Œ,˼RßI ŠŒÌ Ôá¡–¾ËšnŸ=èj*Ã’Ÿõ#O]ø¾¦”Í™ž%|TÒNWô`‚­ÛILön¼y.óçÍcîì ¤D™Ñzx¤#[ªí«BÒÑSWBu~æÑíSN¶pN“™°Y¨­ÚM¥ ›–. ¢ÉÃw øQ>É8¢ÀÀ0Bã ±xÚ¨²7c‹‰:|‡·¿?zsCvþz–nì8dóì½Z´"x:ËÙeGÿ0š Œ.¦Ày€rW½ÑQ˜icóâ·ø¶2Œ)˜ÉÐX£ÏH…lj=›‚P;wðÆƒŸÑ“{)×Ý4š([ µeÅ´œd‘£UÿÁ“>Œh5F4>ýPÖí›ëŽªíìIO%û·~͇ﯧQû5F?_MhkÑ*vã{j5 ·læ­'³Ç%"¸»h¯ÜÄN;€›ž.C&ýñöYpîâýÇ¿fŸWí~ª·ÙpzÌ }†­•ÔŠ8ško½…›/NVª?±ÉQ€¹§ró-sù]¶?q#rH6ëµC>,€„³i¯þ}Êð+˜9}0!€Ü&_3¹sæpóÂi /8›‹ÏM¿Ð#í]ßx˜hú|D½>™¸´å,Ýpܸ$Ž. ûœx1f ™‹È¡“¹|Ö\æÎÃÍóÏ!)q<7NBÂ1þ6@/v­ã£·¶Ó)xÔRUUIw_kdAcÄ`ÙÌËA/öuöpÂ#D¨\ÊÊ>áÛÛh’£ˆôwÑ]µ™b€‹îNSšÆ}T6¶²§’[ƒV§£sÛ*v;œkZíñ Ü $ Î#ÙØÊÖ¯vbÁÏÑC|ÁÅÌ›=—ùsç2{Î$²üEPܸª:qˆ¾,hB~6-_¿Kaü™ L%×XMI½DrA †ÞZ”ùÖM×~*ÂŒ„„ ¹p*i÷â8‹9÷MÃðáí¼»W&ÀàK¬ibðïæÞ;®!GcÅ£hÐzÙ¼­ CÿiüáÖÙÜpÕp‚E$ÙGê›iYA”Ž|¼-‰šËœy·2u€n­“N†Š*Úô&Œ:%ÐŒŸ½‹øaÓ˜7{óçÎåæ›Çï¯C”¾ÓeNŠ›ê­{¨êŠeä…ñ@ -µ-´5zñæÜ$TwÒè²ÑKSn˜Í¼ysÔIØØÁ$qlõ¿º£Ö³o®#:“ÙDArã98žŠŒ|œÕ£×ÙqiŸu½h⣉ôºp{ûìŸH^$¹ï9²×wò€¬àU$œ Y¶7›Ûÿ8‡›çÎçœ~Zz|÷í µYqØŒè‘Cí_ζr§¯í5;Ù•A¶ €äÂshM*Èr/jwQdΟîœÍMó®bX²»" ˆ:ôXXñò»¬*kÃuÜØ'röüLÉôCK_>t/=¿‡Æ„öàFHYBö<­IF>vƒ¤¬@d¡{ÞcM£o=Ûk‹¨˜Kvßß8Z7óò幕õhs™pùÅLœpÒS@ÂBèÞ[G·„Òmeହ̛7ysg2õ‚áþ¿ÄvÀIÊÍsˆ 'åO“xüÏ¿g‘YÆZ­péãC~‹ñ1}¾é&-xóïžÆ³O”mé³29ËCèˆõü}ÚBÂB½èr{Í4’ e¼³ø¾)s¨­Æ1‹yé)4®àž§—ÓikG Á‚ëúc@ÆÑZÈÇï´Ñoá8b<ÝT®~‹G£ "käT¦ óÝ…U·ô)¾îŽgj^á_[Åú¯¹û™o°õv GœÉ-×壗%<ÕKXðÌçô t#kõô›p'g†ý”u­Ð°êEžþt'É£Z)ZoC ŽãÌi·qqv_É·ÇŽ½§›Þ6ç]3–½|À_–¼…Õâdàí·iÖÿ|õ"j ~ÿ~Af#‚"!{¹ôž;sÇ­T?ú×/üˆXd\ø”?‘»¯Ìijé î¹a=~`w‰w!#ò}eÐÇÎóÄùÿbú@ãÏKV›Lt-{˜EkQ´«Lì­wøN (’»ÃÓwŒ¼©m7_<ýw>ŠŒ›cÖ®•ƒég—€Êo?åƒ6Ðhw@Á%¤Ç$ÓÿÚy\ñÆ+<òûåhd-"øEMã¶éý1u1ãÊjÞqŸ+zŒQùà¢!DþÊQ‘œØzƒIÈÁ¨´§yèš…˜7†‚ \wÙ%d‡Ûùë‡OpýR¡B3Åí#¹XüµSÀ2—·N——§/ «xq8Üxed7v›ËWágƳ¾áÑ›²4BÁe cêßÇ ?Å­ò & È„eµIÿŒdÆ{Õ/½Á¼ÞÁäïÁ>‰?\íÆÖëÁ+÷Õ¦+^lEïpë­«ð“<¦4æÝ1nš÷lcóJ™³ ¥mÙZª±Œ¹$žÒ—ÖàXÀàÁ '©Žý…Ñ8©Y÷.¯Üc%, GÀ¦ ìÏwÝx¼OÍЩ×2z‚‘ç¯\À[z CÖ(®¾ÖwZ‰·v¯¼õ:_­jc{ÕR&̆ËîœAù3dÑûF»BÜMó¦wÓT²ŽÖ‚¤dä1`ÈjÞž¶€W4^üœÍÌ1qPûo¿ò*¥Æ Ê×"8mÄœÿf›¾¦:y‚϶|ûÏ|VLÊèv®µAX*c'N"°ø%LCJ@Š_“§N&Õïh ç(z‹‡_ûœí;]Ü5“æ=Íä;‡ñè ·°!<ö.}t Ðeçj¾XEÚe£‰¤ú¼õÎË|¼ì«K¿¢xþ?¸Ö[Ê£w}J æHßSÆUQÈâ÷¶pÝTúxi+[Σw¿KTx'.m&gO›N2Pœ}œå|þÁf‚æŒ'Ó4й7¬æ‘²$J¯™~óæ3ŒnÊ—¾ÁcŸ–  !÷¬ß1eX8t—ðæŸ°±¬9¨ç_9œø ßÊêÞü÷½¶Œâb™;~¿ž)7=DΖçxþó*Ò;šÙòuÄärΕ71>¥Ï rÙ°Z­X.¼™4°ny‘¿½¾Œâb‰;n_Ç”Ùs΢q<ýàu,КÐiczÍ<ÎMÛÇç…ïð—™[1\ãÇ3ud>AGN݆µÇŠÍåƒö8û’ëï$¾r3K> ¡`ú`B¤V6ô:ŸTh‰÷k€ \záP"¾àéûïâIFë*Ç;î~nQêËyíOKù"FFvvqñã ÒZ)ßõ5ÿé¢Â;pjs˜4k"™Ê }~ »Zµ„èЄLãÚñÄì~›Ûný”(½€H3Ág=Ìœ”Ã]<®ÃvZ›LÁÀ¤­\G­3yS ø÷3Osó ~½ùý¢óÉ;›‰)×pïÂ= Ÿz úçãYô)ïߊAÛŠ,¬.5sÉ~ŽNÉîùóuÑöô|é,†öïeýÇxå>+{°w[/ãöé[¹ëŽÙ4NŒ×eDcÒx÷ãvÙ±ÓŸ1N>ùð¯Ì^I\¤‡š9ˆ²‡Ãuø*Ù…Ý.AÔ8ƧßÊ_•¤‘КüÑê‚ÉšJýªç¹ñ浤:©hO`jÿ™\6­•çž”9ŸŠôœ±rïUvlvw_úõĶ«§fK–oÄpæ_¢HἩgðÂ˯°hÃë¼N‚FO㺴(üê–ð‡§WÒëîFŽ<›…×çú‡E°ÓpÔzöý‡ Õ±üÙ·Yµr7[*»¸ûž@ºîÃÉcمݦAdÉÝáFBORîpF¥½tØ>Ÿ1…y“âùöÙm‡“ñŠ‡Ã…¤( ¸±ÛÝ}ÉSv‡}ÜY ‹º“;bp€!ÚLýÒEÖ.¾•?öŒ ­!ŒD1›«®ëÏ?_½‹EUnÆ?4“q96»|èžlÙëÄî %,e ÉÞG˜¿p%‘^š¬1 vãt¹1z ž5ï|Š!bƒ²Ot 4ÄŒ˜Åu#l”¯üŠí-ûùòn¢ÂÜN§[:ÔÏÞ^IŃÝáB’=À`nž³œ‡n_ÈšHpXô\þ ˜Pp´W²ú­-ÇŽcBÖ`†¦™ûÞN¾=P>’”¿.£ä–qŒ ÆõÓWòØU ù8FAÒ˜‰vwü.“¦í›(,20æ†þX>YC£*gMgë¿Ö"ŽΠ~Ñ?à„ÿ~„ÿ–ŽÔ&%)Q„¶4Zú.³™à{ aøßÑN**********ÿC8>ùb9W_q1uuªjj9{ìh\^/ὂîåçÀá8äC‹±q˜^þ3-8HJNâÔÖ)4­fW»‚ÖEÿѹ„Š×AsE»šÜèE/úÐòÒ¢h¯ÝCESÈ2‘y#É @Ûkasa—„¢@Òð³I?"âñzhii!.ÖwT â좮ºŒšVH’$aŒéÇyQôíd_{7.<>«¯õÛÙXaàYГ\0’$};¶PÕãGDb:ùÙ±ônü¯W1rÊ,GxhܱƒÊ.+.:>‹ Àa)b{ÙíA’4F3!Á~4®{ŒÆ3_çú\_ò£ºº‚úv'H2’äÅ/±€¡1ŠwWÑíðøú;l<æc .Úª )Úï •ÑD“]ÐCs9»w×ÐI$ÙƒrHõC”:(/´à—™M|èµ²±ÂŠ^§ I’ Î$åPًέt¸IKÐѼ¯Ž]8 )áøRÇ>¶•5ã–¼.7Qý'ÑNñšÚdÐèγG[µ Z’Äጵ©š²ÒJ:…H² ²I ÷GÄCÓÎB*:zp‘ÈñYû¢†T¬ÚD¢ÁèŸÎÐá èQpÛ›(ÛPB³D|j9©ÁˆHtTîaom#V%†£rˆò×!à¢nãªnM ÃÆ¤•Hs»Ý´µµûR||ŸÇ‘©9l+¸»ë(ܺ«`$4.~9qøá ©|/õí¸ˆÎNv¬­Ž ;kèuyÍÇ1Z@A¶7°»ÔKòðd̲‹®ú=lÞÛŠX<™yýˆ6ú3µ»°È¡¤$Æ =]c]Q-nDhî8 ¢5€Œ·­‚5EûAÑ›ÃÈ4HÍáLGGZ­–ÀÀÀï]ÕöúB¶×ÙQXÒyî©=a[].ÄÄÄ|¯ì¬ØJiƒ ¯ ²BÞØ3ˆÖô%×lì«×“•‰pÛš©.-¥Þ!€l :£YÉa?8&Ë2ÄÇÇó?:÷WP¾×B·@r^>i1f_п»’M¥õ8\òñ:ÇmaÛÚ2º´~„%åSl¤½©™)ˆ¤ø@_‚¼·â¢z´I¹dÄšOØÞºýu$%>Ž^ñör ²ˆÒFzQBOV^¡®J˪i³Ëàuœ>ŒÜ¤ „–]l*ë@Ð(x]^b Æ“ÚCùÊ-ìG98ƒ3Å¢<¶f*Š‹Ùo÷'63‡ìä🕄´Ûí8"""~âd\ÝT5ÉÉ §·­‚¢ÕØ„`³²ÉHBC/–ꚺ½˜k>`Ö†Þ¼û2ÒC~H³©©‰°°0ôú9 J/-í¸Y’ћˆ õCÚ)ß×KTj,ÁšVvíõ’š‹¿ €t€ÂÕ¥t Å?0ƒÁCâ~ÖØ+(Ô×ד˜x”<[››hlÓ“’Ý÷|Í{ØW׆GÉ/‘!ù4ÕK$dÆbÖŠàj¦d[9mn Eñ‹îÏÈœPÀ‹½ýu ñgÄ଱Ðå5Ÿa¦­Ô‚It”ù¸ DÇÊô/ƒ›Îý•ì)oÀ„¦å““}Ô¦ ‹ÅBLL /óx¬O"ü‰ËLš¾•Ò %ƒ‰OË&'%ØwbFwÅ{÷Óí’‘Ý.²GÓ?ÞŸöÝë(=àFÂÈ7H·“/œÏê!ßð§á>9wv7P¶e7-bIY9d&B·…²šý´v¹PdIö˜5€¥y#ñcš„€‚­~';ÙÑ/ˆäÌ~Û+ؾÏw†FpRý2â1£˜=-»Ù´·ATðº<ÄL +ÔJùÊÍìGO@PƒÇ¢ÇMwc=–‰¹‰˜­ví­¡Ý!ƒÇEHÖ(„t±µ¸ûQ¾§‚do`Wi±Cú¡ñbo­¥´¨«1©ää¤(žÄ>K-ìÞÚCôÐTÂ4"H-®)¡CÑ ÷¡ÿˆl‚¥^Ú÷—±m_+þIdçfi\­ìÞ½†6æ´¡ I 9$®Æ"6îëF«¯W!aÀ¢zv°½Îàõ ) š€0R²Ôg§åêjz0†‡d<Êι›ŠÙPÞå{žG&áŒq¤9©Û¶Žònæ°Dò R1ã¡ËRÁî2 vÅŸøÜ|2₎¾®ÀÛÂî½RúÅâ/ ÇøÛRŽ ÒYGu£Žäþ±øKV,•å”Õw‚¬–9ˆÜä0 tQ±m7–'’ICÆ“¸šÙ¹q²ˆÖh"cÈ0bõl-µ”×b (6윥Êw͆"ÉD8“Ü(?Dû~6î¨ÂéõùDÉÃÇ‘zh·‡Gg3ûÛŒdd„û*®%+KN¿hÒ#,»wQÝÜ…É?™!ƒR Ñk°×o`[…sæHÅ;©ÜÐHðˆ\Â7=Íû©p„3(-¸Ï>ïcw¹dÊ%9´—н6“¢öÓ!x°«ÜKj^þب\³®ÄtLN=é9QGŒ¹“ö¦V¬J8±AíTì.£± Ì1Ñø ¡¤&‰Ô[$Òc0ë4>¸O&3?–ÞŠUl¯“ÑéuÅ$aÖ’žŒ£½Ž]5tlãŸë»zÎL®H]I1µ­=xQMi ïo¤¶Z!=/®¯ÚÓ‹µì}þôZ4O=2èí¶°¿¾SÊâMƒ½4”í¡ª±§d&cø ’uÝU¬-ÚÇ«–?–‘}²+UóÞïŸ%ô¾Ç˜d>~=û GÕÅûhê¶Ñë'oh(m”ìL\M”T@v^4¢­òC~˜Œ£­êûÜì‘úêt!áD…ø!Hmì-w›K -”î•HÏÃèl¤´R$;/Šî½+)ªÐû ŒH ÄHbb0ØÙ»gúhüu¡$$Dè¤r{ õÝv¼ß%]M”샬ü ȸ­T4ÉÈ4Ѳg={ü‚1ƤÁí•Л‰uQµs?bB áþß»éUö¶S·×9N‹µKÁÏ_Á%’kF”»¨©²E„©‡½{{‰MÁ¬× ÐNÉšÚ$!a£’0¢àvtÓRg%"'áGÛì¡øYü9á>¾˜‘ Þfv¬)¥A£Ç“Ãà¬Pì9Т!!?k…›6˜„#M…„¤X¢ÃL'<é¥n11±tvv ÓêÐétÇeIA@QÁW±/-ÙƒëÉç;;K®&ÕÕÖ9V5¬¢¢¢¢¢¢¢¢¢ò_Ìé™þù|ß’Ç&€ÿst±æñW٘υ7N æGö¢u÷^xãß¼“U\O ~høçJ°r’Uõ Þ–ú½¿þcÀ¿$'MÿtÉá‡'€YNžþõùaɲ“ÍÒ¯»Z~~øûiÝò2Ï¿³Œ²JK$Cþv ³‡¥ü jêïã''€O àD àß’Lÿò›þO͌˾…^°˜áß>ÆY?zMWñÌÙO÷Þ“\©ÿï Zÿ‡tÕ¯«©Ì_:¹õclˆrÚ½áüÞ- ùøÅûø¼2­5€Ô‹®äº™cIýAªÅ‹µäE¦ßø>ä÷gÀewqß9?Ý7Qd/ÕŸþ‘E¯•#Ê™,xÿ1&˜TÝð_}-ø+%#æÝœr;ý¿”V€VQQQQQQQQQQùNNÇÐÈ÷µHÄ_¨%f_;‹:?B/BÓÇ0óÁ1„¨bvÚ jÄ_uU §ÑÊÁø8ÝæHOY»NeïQ<-ÇKëÁÅÓtµˆ"ü‡ç;4ï|®]8‡G@–IÌŠ=%Éßߺl¨)›Óu¾ ¦|f½”ÝwjÇ]Óqüîß÷aþ¯Jþþçt•ð?ÑÏ“­ö£U“œBü£²™|à ²‹ øCÄÞW¢Åœ}ÿzs<A‹dÔÏÔiZÆÎçÑ~. þ!ĘTÝð_ƒi·ÜÿO,Úu,~&jXEEEEEEEEEEå;^¬,Ëo®ÝŠ¢ +ò/ÓvQ@pÛ°ZÚ{¿ &K·*lÿ‹²sš#+2ÝÝݧÝ)(ô:zOËv޲#ÉÒi+Ó¿Õµö‹Ì·  5hAPèj´Ðu e¢¹©ù´Ü´ðCÇ_•é7ß ¿Œïh8`±ý´¿õhSí¯ŠÊéý~¨ !8PAÀmkÁòcÞ­ÙL Øü¸¿=á{˜Žà@ nÚUÝñß…€ÙÛΩžÖߪßóSQÀ***********'EQ8íŽ3ý!x½^ZÛZ‰‹‹C–du"U~p@Àåöãû?-;‚(ÐÙÙ‰F£!00EVN›9²Ùl¸\.ÂÂÃN«v9].º»ºˆŽ‰>­dG’e47úéCKƒ…ØØX”ߨ•]‚ `wØéuôñ›Ó¢F¤©±‰Ð zÃonüÉN\ìi£êÍúúúÓÎo5" –"£¢Ðˆ"******ÿ«Xþ·6 ¨ `•“£(ÿáûâþ3ÈŠì;¾á7Ù~•_F‹€*;à;QDß‘ê§ÑP¢€ §]»&VN7Ù9x”÷é*Óâo4!uð(òߪ®¨ùÍŽ¿ œ~:à°9=åA#ŠªO¤¢¢¢¢¢ò?„ºíKEEEEEEEEEå¿ávu UþwPTyWQQQ9­Õ´ê—¨¨¨¨¨¨¨¨|/ÿõÀ’W⋯¾agy7"êÑo*********ÿ[( ™OÇ–!÷%ÚAD8æÿ|Ut}ß<"'' Ç~[FQŽÿü¿xø9ÂÁOP¹/”|°J(Gßtø9Ç|¿w×oɪ–SäÈÜ™g`PdßÛ‹ pð[‡Ûyôç'êéÑã§:Þóø±>Áß*'ºÉ÷ E¿s±¢(Güíwô÷˜Öž¨}'ž—¾v' GüÖ‘cvÄœÿ³êSޝÉö÷·ïÈïÿ°öè™GŽÏÑkæûž©(2ÊwÊÕ_Ó'[ײ¢÷¹‚ÂÏ›Èé1ŸžpG­—ãWÐÉæù·UQŽ‘ë¾ Þ£ÚþóåöÄswr}Å¡µlØÁqúöÎ:0Ê«iû¿õ¸C”àÜ÷‡÷Z IDATŠŠoq‡m)(Å)Åi‘â¥P¬¸—Å nÑÅ=$„„¸m6ë»÷ýý± íÓ‡÷mû~¹þ¬Ü{dÎÌufΙy6¼’ÿbn_7 oyõ½õ&=ñýý·˜A)W~cÎN_füК¢¥þÏfç%\]Âöc¶tûYÍØ÷þ¡IþSDf­éß¿›ñ½¤ƒÿhý½Ig¿Þ^½yîŸÿüsAн›•'‚™:µÎù¼æùv½•×<ÙÁ€é0{u| 8ÑõùÛmåŸÕFÖÿ{ƒ­yƒ}~³mx=Ïya ßÀsÞ8/À³ß.7¯ãˆ¯rž?~ž€ð oÿ|•+>?ß/ÌÇÓ6¼’þ©}W\ñUNóÇzñuöó¿@Ö^×ñíÊ^”I_œæ<ì$RþþʧV´7×ñù€µìæêB»¶Í©Y¯5’“܅(D! QˆB¢…(Ä?†S³h2á 'WMØÅì–ùï¥sél8W®ùÑ{x}œHãÌ¢9,ÞA @õÏY3½UüŸ>-jîûŒŠùš½úðƪ{¶Dή^ÈÌõ‘hŸ3cÌ—Ô |À¶X#- ˜xð{ÚqA 6yyçøé›\†¬ê‚@ÞcÎmœÉ7›®áZ©ÃÆO§cyû¶Jåú2)Y"íý¾dÝÝ'èhÄÔcßÓÆÝIüVúu_Ê=©…³'MÆlef/,IOH×gTÕ™ðÅ_1kûEt€×‡#X0²7•ŠÞemql‰OĈÐj&ßµ@þŠß0›˜+aœ uåÓIMq!õÚYðË (G÷ï'2¨UÈk ¢Í‚ÁÆü¯Ó²¶EŸ{/÷ÞI–.\@JyüøyÕW7’‚ÒK,ø:†gv¥‚‡#$ìà‹®?q[*ÁÁ±6£w,¡}‘—¿˜Å¥­K˜·$”xJÓqâ· íPwbÙüÙ6Æ$’ÇLýž¼œÀv–ïÞÏ©Wî, ýšjx|q33¾ZËu|©Óùk&Žo?IŸ5‹¥û/’FU®œFŸA8r…¥­Çñ[®‹Ð†ùQÓh$ý …—ú\ÞÃé+²½›Ù-e<8¶”Sö’Ž#eõgÜÌϨ¦ÊàÌ‚™ü¸3ŠT`ó§Ûœe ošÃšöcØžžYlÅœsSiªzyÄõÄ_ØÂÌak¹Žu:cÒøøÞÝÇ”¹?sü–©L†h³!ÖÇÁyÁlï0‘ß4Z¬B[æEN¡‘ì™[EŸ|ƒMs†r6h>ÇÕCùW|M÷ÖÓï“UÄI@ááOëq™ü¡ûÓ÷ÓÕk˜¾ò %{Îdt«’H@z•¥ãnÒhd{ªºý÷N#S4s>›Å¡éØdR@@°U`äÎõô 4“}l&­§G*‘ ¸úS£ß8Æ»ÇæK¥ùvLCL×Y½Dgtj\ùkçù ó(ãû. "K‡Mùú7Ö–ÜFƒM%Ù¿ª'ED-¯bö/V†l »f1qùr׺½™:v‚ßE*W±2oÑnnÈ›0nѺV)Jö‰|:ÿ8©¹VÊ}¹5ýËCü6Ïqdþ/]ð°erýÔ~ö]ráýRט»ð8`sçƒSõéþÇž§ ®F„£>ïCßQ q²ûþ@r‡Ms.Q¢eSÔ @ˆ6QŬ/âè·º7Å¥LÚ#Lk>Ó8á[òæý:€ Y·Ù¹b ÷ßÅ£^/&N£bwb<É;>Xð¿ë#B·Ÿ&ѱŸu­„⵺ʼ¡7¶#ŠÅþé’ •üÛý…¹\ÿ}³çî%NØ|#z½GÑ7ˆ¸ø 'ÙÎÌ6<Š^ÏŒ¸‰õ»àÛ1ÍìqÜà—)רѯ µÊzÛ³o«ÓxÜn¬5ÇíaYg{]ÐëHнŽG‹ÐFýÌW#7CôÍ7Ã> ¨ù«ÇÍekôŒ€ç9¬Ö_g{ƒÏCÑf&E{ŸUÄK@éDÛ±˜ÐLÆÝc«˜9åWbJ6gô·£éQÝû%^# Ê¢™5ð!}Wõ¦„LŠYwŒiͦr GŠ÷fÞÎAT|í’6̺L™vR¿ªrn±¢ý¶§k°ŠÂGsQOmòÒ$^ÞÆô!«¸!l®Ôîù-#[ÙØºh>¡7ž·Ï£Ø3£ nÏV‘Åx’ïOâ¸D…—o/æíBt<ŒØÀÌÑ›¸…? zdüˆ&ø’Èá©ß³üè52¨ÁÐõÓéYÑ@ô">û;‚ R{Ü–vòÍç.9Ü¿Ρ*>ÿ®®ÖxN¬XÈÜ-j´¸ñÁÀ©Œúìe/sDV"˜= /6ô!À”Ãý½ßÓgQŽ•è9é×JåÌŠÌÞI.®¼ÿùÆ hLÐsvàÚ²Ö ŠìĦu)¯’¿žo¿€l.n^ÌüŸÒ•yS†Ñ¸t*›zgýÃTL2lå¾s#£ÓeÑu¤2 ‚Ê“!óø1DÍØAk^’í'ùn&Ë_&j|¹f:½«àÀe·Ëî<á#¨§òÁÓÁÐj #¾¿D“¹YÏ,±ì^w–œ¢ éß)äõz1ãwŽÓ3uÝ''z_‚DúâþJw{ }>ÛŒdà ö|QÙ®îeÁ‚ŸÑ7žÇœO*þýÁ ™¾ ¿cÓÂÖ8æ>bßÌöÌ>ŠT&›€Pª “G6E»g-¿œ¾‹"tœõ3Ú•ÀUz‘?ÇnƒAü˜Ñ“i0`+=bøuÒ:L¶·Ù®¬3‹ ѰRovN§}°çkæÊF^Vk–H™©¦ñÿdÖ|ëöm8EªW¾ìldÅœ‹”lÙŠ–5þûê’‚@ú‰1•˧pìa£¿ªk×)¯à.ËG©é‡ÕjÂf |¿0 ‹¤¦Sw­uT4§wÃiþ ŽêìßÕhl¨ð ’Çz½YxLZ}˜!¹W8‹þz4|³ãêh¢ÔÇŸ°ßž¼è°ô„ýôŸ~µ†[^.8©û¹aõab¸õ–ܺp–‹÷rúÜ<Œ¶g7'Rö¢E‹ÉœtR½àÊ‹bÏÖ9Äzw"DjE,z=z£åéÃù¥ôýx»Rr0KeHHeû”£´ ":*’c3ü™7moþ¼=CÚù£\Ó(sNú×$Ü<Çù8 w×Ì ­×l¨ÕDÌ‘0kñ9,ˆœ>÷ujÔQa,ë‹q?]‡¬8¢ž¥í!5êcS(çÁ¶s9¤ßHl‰¦,Q«Q¯ªÈ}gy’ —æŽÃ8ýáQjŽNIcÜÌð¿$Æ/ö9ÿ|ü+²íŠ&ñgç1A­F½‘neRX¿õ:f}EúLÜHX¤µz/c›ºsôëáhÆüJX´õO¾ýl+‰/Î4Ùqaì[ÎG¡jÔÑ hàt‘Å›®b-ß‘™ëN V«‰ŠŒdóà 4mä¾Aã0L±÷9z­+ãúm#¹ i±X9”óÞ½©&µ`ýK£!"ÍÌ¥Ñz5êh5G× FºðNíï¦^ÜÁoÇ“ëÑ„âû/˜¯­eH—!lMB/G® «C±žü|(œ¨È(¢"Õ¨Õé,åþÆ/h³0mj5QÑÑDÿ¾‰Ö.HT8ÈeÏW{ýN©Ô~cËøÂ<¿«Û31,é¾—* E´z 52R‘6˜ÀOå—±6M*Qag©8u(wVšŸÔjÔê#Lí\—ôÌw¤e”k÷ kN¯ã³æ!¸JdžœNŸ]¾|·ó,ÑQQD«7SoËg|±å2¹ …âùq ‘ÊKL.é8b=êH5jõR*\<Ç¡c·Ñþ­´‰›û_ŽÛL¬§ËSǬõÞ~¦}6å§o‘ã¨|êÌÒžùžvÍFsÐb$ˆ¢™ssg´EZ½Ÿ‰m®0yõ]°Ås`ÕFŽIrZ­æèO#ÿÁ_ûÚÉ;D‹Üìl²³sÑ›¬ùï˜tZrrrÈÎÉ![kÀúw_n§uïþ|Ñ©‚É‚A¯E››Cvv6:s¾MI¸Ë=pSegBÍhóû«5½ãü|"‚ÕHÞÓçŠXM&Œ "f½–œ‚qµ €½Þ‚ÙC¶Æ”#ІѨ!''M®Ë¿ŽX XŒÁ4ï:Ÿã‘v=1«Ï›ƒ¿vÅü<'ùçE3ØÏճѴU£>2âÒ0¶ž´[ Ë­mŒîõ%ë.?"O™¯3//¤Ñ7V '**êiðÀd²¢Ít¦’k2á7èqTúÐH¼MçØ™Iéõ[ÃÔ¨Õ»é¹}721å‹÷ûrZ6ô‡L-M6ØmËᕟ#.žOXJ.2·|²_Z­fS§ ò®ŸçÑKÁŸ¼³3éðá(š,ùëÉÂÙ¦ã¿YZÊ´öט¸â¶]ǘ ètF a½»‡Éý±2,*?pq- ¦ ,:Š(u(clâ×@0‘§Ña.?‹Uk|þH5jõ –jNÙŠ­˜¾æyû\޵‚P*žg\ lû|2E6ªQGŸaóðÆŽ%9óÃ/Ó)T:t,~¶pvGç’rh*u`•ZzyI¶ï8K’¸<Ÿ†ãE–„Gù4ø+˜rP/ÿ’>_¬àš—N@ÜÙHâ…Ú¬T«QŸœ‚"î"Ç/$¾²F³N uÓo8,—ÙS6)‡æñÅΚìS«9óû:ׂ‡g"x ¯ÊÏj5êSÓq}r‰#êÇOŸwie7¶˜ß§¢Òå)×|žo¿6pšöKé&Œ9jŸïåµ,ܹ‹fCc¦8“oï7Ñ'XBP_P«£í<àì!&µ æ~"òÙÞ‘CꑵÜ/׊ej5ê•eÙ½ë,ÉypaÎ,3Ž¥æÈädÆ~ñœÊÁÕŸ  HÏ­àŒI‘ÊdHeö[‹fÝ3½c°å÷Þ`F"1£ÍÎAk4’§3#à4טÿ f£‹I‡&;›ìl-«XÑ,˜ r4f^¸æl3“­Å,sÂ3¤5Ínä`6`KáÎýóÜÒV'D) bÈË·'Ù¹ù{ž¨!GcÏ¿l&­ý³99h´†|Ž(b5ëímËÉ![£Ãh].99ö6m"ˆftº|}›cxÊ1EÁj_/n%è0yþºˆâð’Áôj"ãÖ>5bïø]­F½¯/v%&/ƒFa™}‚ˆ¨h¢V©Ýwi€ÕlÁöœ>|y=ˆòª \4†[ géžYt vÃ’ß¶œœ²5ùýMäÆÄ‘  ÀYbÂ`°`³¾hŸÁ†ÉdÁ¨×’«Ñb²šÐŒèóÇVo0çÙŸi´å™1—ìlûûÚ‚¶Y,X­&LºL2løbL?ZÕ@†½VcËœ|›$šÉÓ™óÇ2‡M.&ÁÞ_³^cv¶†<“Oï·Ûoóò0X„?(ž `Ò¥{#”e oS¶Í§Œ\ ‰ÙŒ^§#O›Mvv6y¦üý_Ú}X|pvÈ!#Ï„€…CVöÆ+)‰ä”Tòò÷‚R÷`ÚLØÊšiíðÖìã ¦´ª_‹òhÈɽĽä’ûyà€…‡»Ç±¯Â¯üÔ· ¢ôÒeyW¥öû-hè  Ä)¨>·¸r®&åüÜ‘Ò÷šS?!…DÁ¾Aî± õî”5Ø úl ‰>ÛkR"iY¹˜Å‚!½Ï…óŽ(e¹]— û-beÝÔœÄcA@Rg_W¶ÅêIѪÎ8HrHŠãÁÝ@|‚«ð~½ÔpPáZÒ7 ¦ªýù¢¶3ÖìtÒ3¯ŸU‡ —6wN>|0r;ö h®-ñ÷dˆšS¥ªQÛ¦À¨3ƒåS>Ä/ç30ç{ü;ÿLľ±T´Øž:L )7‰;‰õã­LlâˆÎ*GÉ#vMÏÔŸN(ØûãXo8›÷Î¥I rQäxxbŠO"%)‘DY Џ¾4GÙ$Ä ˜Óߣ„ (^‰šW0œålXBÝò:-¨ÿ8‰8ÖÆ•ìNÜ€Zͨúð67s“p½-5|7*)gf×ýñ”–Æ  R=êh¬hlg9}´5u+Š€GýVÔ¾ÿR€õÏÉñ‹}¶ËÁ˲­¤(”¸xªÈ¾§!;)™k•ÜTùËÑHNÊcd¤’žk≿ۜÚåvÇIHsúÄ?"î…ß6cÔ›0f|HU/@âGˆO0eSRIax²ö@ Ú4u";± u*å~åéýè!!ç1¬%¾åæ·u%ÏòWäõF2´¢ÝÙ#ˆ­ìŒ`~pŠ1Êt]@ßJ Ve¬Ø¹ˆ¶å}QØÞQ8H"EjÍ%ùÑCS’IJz“t6ñgN¹1íÀJ|ÔÕ•ZŸ}I%£þAopxažßUØJ‰³G ŽÖÇÄkL@†¬Tï>ž”MK9ãçã?§OUL¢;nŽRr :ôfO5©OÍZEßmT“‹M†Ry• ôîמ nÒPŽ¡¦à|<ŒGoI™(AÄf-8Dà€»›nÏ×ÿŒ“Ê5ˆ–ã·°~FG| ì"òríùný ú7)ÃÓਈۇÓ9tp:µìaQP}¼”Q¬J*ÄÇó09“£3=úÖ@—”HºF÷ ò¤ME½y*½ZLÛÖŸ3iåiždF°ê›Áto׉nZѺ×Ï\Î4ü½άÙ¿që7ÿƆõÛX4e#‡v¢]ëÖ|½þ:9<`ã¸-ÄJϰ g7ºNúØK«Ôª#:÷¤oÿ•\x§ 2’±… Ÿ¯$€LÔ¿naÕOadYcÙ={,ŸtêH‡¶ý™{à†Ì“L½ž‹zЭÓb.ØD0Dzet':vêJ÷ãÙûäßÈïÌäe%ñ0'ƒôœ<Ì $/sߪ`Ê~LüÍVTó<¨èS—´4 €¢rom_J—šÅPZ¤@Dè]>ý©AII$%%£µ>³SºìKœ¿ˆ»<‘'·›SÉð¦²{Ž)‰ÚЩ^Y‚”Îx†¸ãæRpcí,GNT tQÖÁлF¶áIÑ2O?ÊÔëD+/¹š›Ä&8áî„—ìE;íÚl*~Ç{NÊü0H4ÑǻӸœýŪ4¤Â£ÇèÐpyëŒüj57­ù:§B'fn\Æ'”Ee±ÙuNµÁ ­%CŸ•JJÚ5rêQÑŒw62 å(ŽiòÇVbàMåQn&é™Ï‚i/Ú窴l\Çç5dt¤Aû_ª* øøÑ5.¥¥|»¥Ýæ{£²Wqܲ#»\‚¢ªâ¸Ti@½,Ù¢s‡cù|IO_š©ÊƒºÃ¶°ïçÞøkí¶Oå⊃ÌBJ|.¹Y6‚¼Šè …óxµÇɃ©!‘ ‚ÕÀ¥+) žß EòRÒ³0#ÇÑÅG……ÔGöçù{%ÈQ ˆ$žÎ.ß¹ÌïWWG)Òüì+Ïóí׊mÑÚ¼ÿ~SÞsТɽ½'¾øyûà@©âˆON"CÿÒ@‹fRÎoæðÍ.th˜Ç½K-ž“íRxdE~5y)<*7 ^ŽpŽ3¡Q¯Š ð¬×ŠÚ=ÇEDAA`pj»sðÐ *¹ò.³aÊpútéL‡¶Ÿ±øx¥}çNtj݇îaÌ:Í”1ذ¨½{v¥KÛVL=¦CÀFÜî±´ëÔ…n{òù—s9–˜ã8·z=[w k§Ö´îò-ÕOr.²ú›¡ôîÜ™Žm°4< [Ú~† ZË–ŸºÒ­û/Üâ-·@M·9y<™[Kš4.ЍÍ"!1Þ‘*EŠà©JàQL[êUÍ—’jÍégç³Òö¹\|a=?÷–ÉŒÍjÆd´¡Œ¾žÍ?ö¢G÷®tý¨3O±šÏ³ú›ÜÒïaìÇý»|?çvϤw}^A–ÖÅùqú |ò=G.ìd„™?®=?jÅ”ý×Ùñm7º¶kÅìs6ôÜÜ2’:v¦[Çž ³‚HdÞTu`3[˨©ßðéÈu»ž‚-í? èO·Nù¨ÕDv§ y_~ö ›w¢c‡NôèÙƒå—CgV ¡mÇNti׃sv«“£R%2Î3·ÇP–HÞˆ£I“Hܽp– ú„)ËÌô˜Tûû×0gÁ¯>¸ïÇ~Ë”1ø¸uk¾\|‚1…}³¶sCwšeƒ?¡Ó˜íÄ\^Ç×íºÒµKWºv\À€÷ J´ìçÃÆ¦=·îsµä½Õ@Ù°ýè=ì}~ýí0Z …ßÿòÂ!øç#/O‡Õjý÷v@RPÛCüw,ØüúX…(D! QˆB¢ÿ× •ÊÐæéþæV\D}<‰3×û³Ó&"“Ziðõ~Æ·ÌO.eÓc0Y_ÈYeånèÌ[FýñèYÖ‡ômŸ3!¹3;æw/ƒÁF\r.EüÝþ0e–¤æRvª—ÂâUȯrääO‰X5É‚Hù|É`B”È‘ bÐ]âÔþhbÎwg¹!×ÒÍè?r:•î^âryozB#‰ÁZPcÊ%€à˜‹$‹"eŸ¶ —Du$wÚÑÏ ÈN%>ç1YÍ[½vYˆ缡4 ‹b¿#­#zÅ×,:[™¯× ¦¼MÂ+ èD‰}Ó-•» ™7~iZt‚̃â•Êàçª|!=˜ 7cÃîÄ´‰„m™Å~ÿï˜ëÏÑK©d禒ntÅ»dIJ¸y ”Ë€ ¯‘íŒoB£ŽQÌîבyr5;3n^y ï’:voû‘ßwçàP}ó¦ÔÀ¯Tw£c ¬àŽRa@Q6‰´4x&2”Jœã¸|=…g™f fW¥ý0E¾L\Úú;¶.ŸQÝ«©%÷r;2ÿ²NÈee“IM6på·¬ržÅÒàÇ\ O!7ב$£•Rÿ…«@ÈâÑÅK< þ˜žÆËìܵ‹{!ãhçÇæÄôbÙ¶Ò‘IÁ`Ä"ˆ¼3׎L‰SæY–NÜD)ÁŒ¥ì—lk$ìqÆ9¾ìc2#ü™ß~:Ïï ¥i5 “‰S¿beõ!,éQUÑb”örDîߊže›ðóö6t_0_ÀP¾î.#ýÅ]ºöìEç:Áxzzáª|ÇgúeRdÉÉ$•¬FíbŽ/¦w.JÉ{Wx")ûæ°`B“úˆ»I>x?>ÏogêyãüŸ¶ÃfÀ`²>gòÿ50[mϾó_7˜xúªD†\fÍËQºzRäA ±/Nm?JìéóÈó2ñªÙ—¡Ã‡ÒðoOO,A*ÓñàÚ~ö„J˜Áûº(毪¿½¼™…BŽBî„ìñ²ƒz1ka ü²öÑ{J$דÒÓp.ŽÒ0yYW| gBݵ´Þu†þÅníÁø¹88þ]v¤hÕæ´k<3×GP©ØIͨÚ%fa()^í˜`Á™'˜8ó$WKù"Oü¬^‡81I)»Xó ‹:ÇO1ÙîïøŠÁ3÷ÒbEG<þ5 O»¯•ÇW60¾û2”e;3rØ@> qùßÍ%QAl`{¾ô5°‡üõ#qÅÃ$A––I.ØSäë ˜m"rà6WÏ¥r8b0»¥R0gScð!¦wö@n6‘y]Í®ýiŠår~ö$®xD2R²Ñù-0Ç#Rþ>ŸsA 'C‰èÝ›Ù/è…Lâ/^!¾Xú«’®îañÌC8|<”Aí+½Â1žé‡göó)_@ŽÜÝŸ» $Ó÷"A”*ã…Óó¼ÆhÄl}9z›GÄ’¡,V×fìÆÁ”µ H‹R¶B)<åößpt“Â<| IDAT—µŸiÝv"¬KŸAãé]Ïóéìö¹5‹x¼ä˜wÁ7è W"ãðö³ ÍÔ#+™Nv¦¹üÙzE²SrÐ)Á± >²Òb¢Ñç¹|.•SQƒØ-‘‚YC­¡‡˜Ö1Ÿ FòŒ Ø€€ºu(ÿp9ËûvàŽIJíÏ&Ó±ŠßKAºÎc~vCÚªæÜ±X.]ïÁf“Ÿ’´¹šþµëw‘Ÿûv Æ,¥F¿ t¬éGî¡o˜v«6_~$ãÉã$òt¹<|œM`i”Ïñí· âέeÁâë”ùbŸÔ BÂü+¦²å»ql²åàÞdËF5ÄKeo¯5/“{Sbâ^*æ&\ö¢l§'g“§ùOr‚{Ë©?s7)múQ¦÷Ïl–‰Ù’CÌÙ_Y¶'Š*å/pTíÉŒÈsԖųkU8 Y ']¡éP–ΪDÑŒƒ ›²—;³}pHÜAÞøÓœø­¯d*Àõyî+ôÔj\—z>¤¿˜9kçóP+£õŒ5”T –JåVx,~%UH1¢,›DZ6/¥:VàúÂz~çqÆ)a;Y_œäèD)Ü^Jýy»Ù¼vŒ%{…‹ç6%ýÒ*æý`fb}þå,¿­…£æ Yұj^¼,ç8?+ŠR‹1M¹žÆ=~æƒ#Ç9ùä'Þ_´“M{Rý‹•ú8›á gObÓž¬îÝ‚{Ë©îÓŒ¾­rY9ç<*ÕVŽYƒË'?s¬}’È ÔŸ{’vc8%íÁ:ë4g'@^Ø:m9À Åíh9j-µ?Ñ!;Âêã1‰xˆ¯B¢¸T¡4J‡×ì‘õ¤Ü'j×8¶Ä4âÛ­' `K#^¡DåàˆBIž[ ¾ž»” çûý¢®Õ§çOC9?6þ3{PÎá*ßÕE §Yi‡ÑyÊ9šÍnÈñ*Ó%áxpx1cí¡vïA jVW—×µI‚ ]µÁ¬V7eVhsfT/ôãü7( ÿ pêLÚ\-r… þeeI*Y™ÙHeR<=Ü1™LÿÜ °D‚LfwŠúx{!…AàB¢…(D! ñ "€(Rªdñ¿¹mY¸4•R3ªÏ\ηœJ·l[*vΆ®: ÅÛ`ÊfÅûú&F `Õ’š W•cõôVx¾å×-y×Ù»" —ªíx¯„'‰fá¹ú‹&ô.¨$¯o·`s¥D©LÞÞ_ \Ú°ž£;÷QkrŒ·nPÖ³!A^žÄXáYIY#FWž²`-÷#öñÛV3½¶ÖE dg¤’—ô„š?«zfÖ\bÇO j݃ªe<ò¿íBÓ‰¿ÒtbË nõ^¾,'yëX‹ ÜØ3cRÉqY1Hk0|e·Î”UÈ%-ÙJæ…É|¾Ç‚Q«!G•H`Í1|õÕhZ>Ï—Û E‚–ß§ýDàº#„–È!tæPÖ®=F§o[¾TE)¸½mÁ¤’á ”"¤ÏÍ‹ƒ«‘çnšÍ˜\P‰"ÂÓ×­X¤ :*PäYáé³Í•(åDAú¬fš`BïäøÔ ý®e{tŸ8U½;É.Óñôi–jN3gÁN޹MÍ©Õw«úN´ì4‘ã ¶òS~2Ÿé›uHl9p$ ‘¡0'qeÿo\‰¶’˜]™¡?|K‡Š>ÿË6F@¤ù²%"X­˜œUÈLÞT}2³lƒY½–‹ÇÃ(ÿùù[ý 1™0œqlÐz2À-€‹ É.Ú„zuËØíZžKÁ¥l&Ìþ-iRÞ~>ÅÁƒ²Ž98Km 7b³™ÐYEHzLjíÑL,f—#ßRµ)µñ1ãß#ä5EéâA`…æ¸t™ Î6wš„øpéøcÂŽœ$"z¢("b•Y0•û’.µíc)¨Ü„šŽöö yŸµ‰$Á¿&,âL™fYÔl `!rÎl·] |¹¦½õTÜóœ¤1.×÷!ˆëÇŠU¢Jñ{`ÃllÌ´³£íüÍtšQMæÙy ÍyܽvvË£O¹ýœí¶b‘*åÓgêRϲaîmêIIw»5?N—Ns^°-·Oàða =ÖÔÌO,%à½O˜·¯7—VÎdë¢tºŒèLåÛGêyý Z­Xœ•Èp L»ALh—ÿ:oË*ãF‹é»iÁC–|ð)7íc@ÉŽÌÜXð]%E+tfFhgb_Áþ¸U»•äÏÛç*x9½üìª ÚԙɟŒf¬\Š`´ ñéÄ8+çm’§ch•r¤6žã9& N*«©)ßE-ýiF5ÿˆŽ?Ðè%å#ÂrY[” çNã½’o~;Ë¥!V÷û¡SâáØ—5û¾¤|v ËWÿÂq¹/‰™îŒ ;MðÅÕ|³-œ‹1e)®÷Â#f'ó/ìBbÓ’šnbÑÊâT˜×‰À?et¥”n9’-Íœž2žMZŸôiÀdz—ó1‰¬j2ž}ÝêóYi9 um=Çf^Ugt×lˆ/˶R\câYº\G% ˆ¶üC”ùºNïìøjT› 7¯”*Suäo¼³óи?áäŽ0NV"Š ëc–&#‚`B'xKªÒ Ób®Ý7Q<£uûúqaÛq²[‚Å7™X‚ µ)Xj‰q¤$>&­L?z½çbo¯(CžÊÌI•:Rä DA«{i‚«G1¹‚¹[z!=µ‰ÄŠ6=Š]?næØPéÉ´"·cúré[Ë~»[âîG5¥¬Ä^Ïœ‘ä¹H°àLpµîwñA#jʳ£UD•©Eç™Àéõó8¶CŽ(‘ —4ňkůé^U, ¯_[ú;\¼ˆÄ½#àúö$VëÆª©KÉù}"£îçVÕ¡ôÞØùŸÎf²Î‚Ī!YÓ5ž d=¿Ùõ¤R»ATú£õl3a)?„®5mvåáG5¥GuFlV:òÈÈQáÔ°û3ûltâñ;¤·§Y­v;a4c-ÿ>5ŠXo*×lIOtþTSJ±ÙR¹²{ ×]Àè Á‹Š­r6‹ “Q˜°J¤ÈRŸTª']j»ÙÛY­ uF©¹0ªTN÷²€hÁìåOe…“9žó~aÕï·°ºÚÈÊÑÍ?­DЇhÆBE,œö†uËžI³°~½‚Ÿú)Ÿ«¯›?b‚‹×{T«]Í~YêL°³^2Œ&lV#z½rPkCCì Å«r#ªÌŒæ2¨ùÌRÜø –»ÌžÝY¥oÅž5p{“Š1 ”í3Åøu\+ˆŒBüU€ÿJ%T©R7gDñß*Ä–í{puq¦C»–ÄÅÅ!•üó2‹€B!ÇÅÕ³ajÚ}Ô¢Pð QˆB¢…(ÄÿiØl6áïà–Þxy?àv†@e)¢K¥rа_/‘)Q(äÈd »ƒO›A¶¨ÂÕÍ9ÎW2cPðþWshýU÷ð ƒÇX™?½Õ«ž§° M¿ÉÑug1Õè@Îq$W,rM6û¦2á:W*ÓWò¬n’R)G"•£DŠLéˆ\u•û"øJ”¸qÆ#Óˆ# i¾8ÅÜ<3Кò/b>ºÎ•Š% Ìiܸp‚£ëóè´u•0“—›K–¡Õ}ííÔ¤^áÐòp”õ¥Ó‡ÅQæô4îÅ(¢(F…ºY\Ô¼nó @©”!•)Ⴓ³ Q¡±×ÙÒÄsÇË8£áþå'8”.K€»âi Nª”#•ÊPJ÷Š|²p'ŸÇµcû9›\¯>,FúýX4Jo‚‚½ŸO•r$R • òӜᴙ0…¸ÞË9ihIKC"÷“䔪셓£ˆT™ƒ@û˜{nrj{#À=­I°aü ®„3@â§w"™&@%Ãðè6w+Wb€DÉM—T{QkO¬tAïQýñyßöȈåf1Oªü)êD¶^ŽÔ¸{kUË0毊sAŸ•Š×Êv™€î_áFRcÆ:MéÝ:•ê ÜiQ«¥›+NØx¹áênFK%†­ØÀ0@¸ú#­D0 è’‰‰±P¼v0.()Z£?Ë÷î³oM(©~EžÊÿù'[´£jqˆˆÔ`Ԛ͌,—2xg% ¢ê¿ÒÉîá!éâo¬>[’ÉCx}`ÿ`Jájä Ní²ÑeýWö[ôÁ0ôç @6œÆP¬!«Ùë¢P “ÊQ*•ï(,Ì&S¾B)P;•¨§ýŽM‡[3¡mÀSGˆ>!ž<™4Œ`wîšuh¬fÜd²gΦ§ó¬z'Áa‰%˜d%!ÁîP¼[·—ãû÷q›vÔ¬f»B´Ž¢ MN6¹‚żƒh3lÎæ_‰{”LN}ÿw ’ØÐ›õ輫òž"Œ“÷©\ºE¤v½ôxß Ö¯O)U.ò¬4rÁ””‚Q—ƒNî¥i>¼Cºùq~ÅzNG_ævÕÖTtügW¦@¡°ë1åÓ»ä d29 ¥2nò_WØõ´J*AŠ'îÞ d忯MºÇ£êt—ˆá!€ê¸àí§ÂQfÀø/ ÿe„L†\nšü4ÞÃϦ'GfEæâ„$3‰Ô\³½§J²Ô‰z Á„Õj¿='l¼&@íì„*õ:q¶¶T•É0jÓÑøÎÑü ð XÙº´»ú;ë㤨K ÂD”¼8ÊçíŸåà@œ½–$LÖçZ*Šù:H†1'…,ß@{ù€ $- ÁÝO‰ÁÉg%ò·yÌ_ÃI2•Ž8¸Ü·ßгd‘`Ób,æûl®”:Ûn󼋯ûPKR®  ¢\1  XÍx”Ñ÷A–¡DåœH€)“ÇR–À¢xb!ýq{œ§Äøoø(¤ WÀ}n%6¤|½Ž¥hJæJø Îì…Îk†Úm‹YF›‡Â»(NH)¤Â1Y‡Ñ¼VÈ‘Hä(e$xâá@¦ýÑèžÜãaÅ÷(h“ãHÊQ„Ësß•Éä(*d€9-gqŠ(JR'ƒë9€1‰[7µøÖ(& ¹äºâ+·`“:âäëˆJþ²}ö¶Û"[w.çâ[«žR)87e枦$ŸÇ×Ë$¹âœfç9æLÐaô¯D™ô0‰ù)áÓîp£„7-•~-òˆ;tÔ*á N”ÍŸÜ©•BŽL¦BI²ÉÔWÃp­÷}ÃçqãQ<©Õýð}-ç —¹ãì~Ÿ”PÜ«Anǹ#Ǫ«Jà\ûsú…ÏçêÍ'Ôëö- »lBN2rxæw~ú|[‘ÏÙõ©$¤Ê)^É¥NC®EÄÑÃJÊŠÈTl™©$9!Àžz师‘1™Ã[ÎQqúDŠb%õÙÎE_¬ó¢x€Þ>†éw¹QÜ‹f\Q'Gê ÂÝ«\«R–±¯ñ&›q¤jòh27°òLÚwðǪ,E÷o¿¡Gã€?žaÖmÂ*•"e¼Øw1”¡6_ºcÊZÁÜZ”ª] IøyòÒ’É¥îú²œåø99¢²™0[ ¯˜±”Ä’¾÷™0{9UƦ”ÜžS)ó¢AHóTQÅCËAÊrß×Ü%­ÔlŸ]™-Œ©S"@b3a¶æ[UAÀØö3m®–I{¨$…¯`a¨K^6YYg¥¹L‚¨`S–¥ï÷³èXë¹£¸Y{‘Ùtä—¥}#’®^ãnžê}«£äî»áXÓ ¸ó$úŸÄ•”tÊúÕd܆­ö)¾0Ÿa{*/¥·›œHòËëù¹5­TÊíí±™0[E;l¯Ä,dÈå,/Øg R7œ &,–|û'lV¬ °Ù,XD@°Š"ÚØ}Ì_-eÚñ½”ÇÂÍÿ°í¾õf¬.r¤¢ˆèè‚£&†Ä 5€ìdR}|ì‡ÕlFLüG…<â¢ö³-¬‹ŽÌ"€mØO²ÉšoeÈÑñèz<’ ’y9¾H­Î];¹¶¦77‡Ðö“V”õ ¦F5$Ö\°>-ï¡D@ÅÇ[ÁÙ§ô‹Äi;RÄÌ9ÉdúÉ?`'b1¤u•›±ç9ã@»a£RVõöý†h—úŒï½™[ èå SAÿE€ÿTQ° 6þeñ_,+ìÆÇl6c³ ˆÿÐÊÓ6›€ÅbA°Ù0™L˜-æBÑ+D! QˆB¢ÿ§!Jž¿eù¿…Ò´!áÇU›p­áƒéÉ ’Š}DWGÀ¢'ùÖiND^ãNV:§b¼¨b|À‰k·Ð¸V ¬Ç=.Þ©Aåþ/ú÷róÐlháÍ`Ý},\ÀŽøRt©•AøÁ½(J4¢rwGö©O²/-«úª÷QDn“¼¸p޼BR‚ŠÐ0ª”®N­–»]² ciw.çàP­=†+6»X 0ˆ²µ‚‰I åÐÆ¢æœã‰sZûT¡~¿}¬:sœ}IA˜£/àÐp>T õ0 ë–„"V0ñ¢mûâWÄDåÆÛ8²â4‰Ž7¹šb£zÓ÷¨Wî>wGrà7 .÷ÂЗi·CÚ~ecå¶(*:“uö:ž-Ú¼åàÀ[öÏ÷yŸ}³n´.añSپɓàÎ|^ÝaãÏü¼ÊŸ¦ÉÄ^MGQ±=åÅËìÚs‹iI*;_àtfqÚøâª{À©Èû˜lé\ ½Í{}>Ç}Ü>¦~•ÁõdªÛŒdÅ]#ìN¹‰·ˆ×ùѺ}I$€>f3{¯§þˆšø9Ú÷“M,ÇÕ±ÚÒ¸rä.uúz±ÏB.¹ÚŠ»‘…‚¬}_š uä§_·ã^5iÆ5øÄGîV²Ã£ˆ nÁ×°/C…Z¡þå4%ÿ½óޝ¢èúøw÷öôÞC¡CBH ô¦¢ˆ ¨(¨€ú¨XPTì(ÅÇ‚¢" ½÷ÞC%4!•”›ä¶Ý÷àƒ¯÷·ŸûIr³;;sæÌ)sfÎäx™Ž.áAp~#Óžù‚smÒ?g'+ÓôØ7Ž££q-{½ãxÈú §x÷7Lxí }Þy3«–qÊ΃zîÎXÈvu$í=r9±OÄ¥y[ü¯Ц¼£ì؞șÜ*Ö,ÕѶCzŒ-æ—ik05,#uïi|û?Š@!G—ÎäÛÍÞ<7ûyZ+A*;͉ÄKÍ@¿NBç4ŒÐƒó™žLk{4Ê£ì*IߨN[ÌëÏìaÔºŸ -!g×l~<Õ†õ³8”X€®ÅÕWég | ï>»›G6½G‚ò°|o6’)—#» èød4¾§hµUßn"Syˆ£%j:…´!:à(É«w°t~º“Û16ˆ›º1½žUóÉï¿ãÔ¡à§|úÒÏÙ*o Onfå–Cœ:yš5IJ<|ÜÑî^Êg[héÊÎ<ZÅ׿*›Žá̶lÝÏÙ³Ö¬q U«t{ô[~ú|Ê5¹'2чÝGï–Ù¬Ú±”™³¡µc*»Ï¸ѹÁåúª´}U9e3Þåeööê­Î´kÑšê­søh¶“=NƒüãlÚ¼ƒ ‡4wËäÐáêj†Å*ÞŸ§&$зÊMìQÆòoГ¼üSÖVŒã‹pqó%¢Ó¢Ëx»}¶tjp’”•;X:¿ûämÂúÕÐÐÌÌ_—¡hjGñ–£¸%ô½,(I—èi—&4ôm„2ûYöèœÄü•sø)?{#»†tîØwû„TÍ‚eD7ïFd뎘G,Â]S‚g¨ÀŠ*žqľž=Ûv®dÖúy›ÈiÚŽ!5^›ùBp@¶`ÐW ú_žʤìy¬¯ÉlÆŒˆ{D7žˆLÙÍF xLYF"Ë×—`wv#‡ó¼é‰Ê*»/üjlœC o›ÍÉu«É­*%óhŽ oîEæºõ|³P¦2C•´jOtð~.øò̆xhÂéÑЈÁx!ymåe*>À¶‡0¸%Æ ˜Ž¡•ÌÙ²„Ù•­â(»Ä¶ ®ç‚]i2kvgXwÔ®I#jä3Ø#SùW(&éŠñ\3ØÈÚ}„Si'VÜGOµÑüW0S2c0ˆÈ\°ÃÌHèð ð% tÉ_úYãJï.¡d,JÂ(ýÕF£I–ëïr -F…{aͶptÃZ2ÊÎrä` ¥í7¼TUìÝ7Ÿ•õ’[j¤‘s(ÝB6°èÏ¥³0îÜzôó„ û1ÿZd%[LÍìüpˆÝÖãP|’MGóhÎlÆ,+8Â÷ÏŽfÂ&ô ÅéÝÐâ‰ßùå‰<–½ý&?ºP¥iƒJ´Æu,3¦ ¦d “ÉŒd‘kÚfF²XÀ¾9½ÿËo3–SØ r·žÄsü›¦ês^9ŸÅòñ»o ?Žñ¯ñ¸öÞì ´¬¹Ç¡ÓZN‚Ïܬ`cùiRöWÔ5r³9“«¤~[oJgR®r!°‘çÕ»õÿåø³{ú9—·ªíÐé+.~/ÚÛ£ˆîBy@Ãì*”Ôt\œÑhÔ ·üAP R*Q(ë¼bmž¿ó£ƒ#ÇŽ§ Q« ¡¬¬ Q!ÞA™J´É"A]¶P(DÔ* Ù9gh‚Å"!Ø.Ûe»l—í²]¶Ëvý?¾dAÄ)õ(â}`2ýCqtB=  z̸¸¸Ü0^máÒ°'Þ)óXz ›c¾3€ @2œ'eïzvg˸éJ)1:дUs 9GØ·ç ©' h8l ýÛysÙQž’2£+-ü/îF•$ ½^“£5±”¤/£H_B¹¹šÂ´“¤¤§Q ð¡Sï¸ßŶûȰtå¥ ]ñPXw—&-ã=UדÈËÊëu‡¢ˆ IDAT}w:G4F¿k+WáÝ®C5Cqh9»ËU4nÙ‘GÐù·Guh Û KŽã• 1¸eY)ä«1§%‘’‘ÅéÂ2'?9«©jý(í|@*+¡ÈPAEUçÒSHKO£X×έ|HÞ³‹É©¤§VÐñõ׈ó¾¢OL•d&®fCª=çeÂâúÒÈRÆáõ+Ù_ÞˆìM[¢dÆ`°'¤msê»jŠËùm§žúõ 7#çf1„8ý5áo2ÖÙ†AN˜"n!¡„5ðD'€9g'ó7ŸÆÉKAqFÊCüHsήZJbFùÆ0}§?õ0c±È(œüiÒ*Gœ%#ÇÖ-'±´>ïëKd=;´¾mQÝÎöCûÉ”b™ø\ ®¸6ê€~ùïlÎ:‡ä9€‰C› Q:àæéCæ’¹ì,°§Uô@µuCé†}A‰ÛדTÙŠÑ%ÐÐYCPGä­KØr2™U&iÙ¤žÅb¡²²GLJ…/os:Ê®Dwê{ o7bÄÛi¤ò§QsŽ-_ƾ,=î-»ñÀýØ«í¨:u‚£ûöp(KO«#éîªð0,ÝÌñã§ 6•1í°¦ó6c–|ˆèØGK%yIøuù>ªÝ[ÐoøÚxX8}ô0Õ[ѹUN"…ø}ñ6’Sr |äžlcwU×l² h½ käqq¢ ªª QÑhn>•RšJÊcZÉ™äV`ß ¡îJ3c0(póó#ÐÛéì>–l>…ÚE¤4çbýÎ4õ½µ°uq±;»+Ú!Ș 2INNåTV6ÙÙ™dfTâÙŽÐFí‰ ÍaÙâD²r²8]^{Ìz7 ÆÛû<»—nàXV:™æ† ÔŸõì¯ÑÏi¨u#ÜûÚ`‹ÅBUUÕMy¥?{YŸx’ôŒ Nø1ìÅÔWZ'/e³jÑ‹fáÞ¨Žj‰Š“›Øx$ƒô,¡»xË\²,S^^ޓӕ‰ö œ=²“+6³¯ÐžnƒÒ­‰ *§FÄ6,cËÆ½œL=Å©Ô ¢ßšÆÃ5 xд‹ûç,ãPv6Y…&ü£†óDg?ô•&ìÜühèŒ(ºÓ²…=¹ORéÚ†þN× ”•––ââ|É>fC)©{×±=SÂþ”âjAMã^vœu[ŽR¡T`,ÊÂâÝŠ&õ] }=¿m)Â?@A^z:vM»Ó©cJýÊ–3eØÕȸ PkÜ ôö¡`÷BÖ5Ú«/ýcÖþ|âKE®É„ÉdÂÞþ6K@2›0 þthמÁ"‡W-ãH‘ºõ#¡±/îÍ|©ÈK!))•s'÷³ÃÐûZâ­»ó°cEEvvv(µœ”% Fg<ÜÝññóÃÏÃA6¡¯v a“@\ÔÊ«iÚÜ{Ñ&ñÉZ¾˜Äœ"Ô~ƒxþ¾Ð;ž -++ÃÙù’°’Z…${ Sú×Á5JÜÂÂq4dq`×R²3H+v ¼™*ÑÆá8ª’‘²œdŽ¥¤“•›Måžõ#çsR9¶§¿¶>”J"+_˜=ëPâà‚·ÏÕ|}OÿÐê0žåÄöÍìÏ*¥AÏôîÒGñrz9::"Öäµ½Ê&9WŒcD<1MüH[4—…N´ÀÀ¶^(˹C¬Ø’Œl¯@6ɯ-ÑPïôJV$¦Y\á?D¨ÙÀÉ5ÓÈió<Ý‚:7\œI_þ'»‹Ýèן¾Í]‘óó(PÊT%ûT:§N¥QîÕÏãŸs4ìI…Ù2eÙ©¨/Ñ-EzÜ·%H‘Ç–M»HK9‹KT/úh…§xyÉpj#s¶àç_#šô SÇv”.þ•ͧϣ Äsƒ¡–-XÌ:¯`šFá$€TpŒ5[Q­RP]…ŧ QMœ9´u'SÓÈ8UEô›éê!!ILf/":5ÃK£Äb¨ uãZ3‹pnÙ‰ƒÛã¡0“}ôÈÕú3Õe®4Å]!"goç¿‹vWd¡ùcïrC@팛›§–ÍgW‘ ‘±éÛ•[ìΤ°oçfŽW·cì“Ý©o¯Â±~²—³"1ìâ FLB#dK5§¬`õ ~î•ä(iÙ{-=KHܸž™­ºžmü¯:£*e5¿m;OP=‘Ü´ ›ÇÝ!ÍþßYv¨…o{~²+Áž!ø¸è9´q2 ùûèÕ>àòòd#åU΄7À^®°·óqkK¢cMZúcg§ $;Ý»ö‘vòþ}‡Ñ¿k=´®Î”íÙÆãÇIΕé1q] Œã[áûècDzXå›Bã„›‡'™Kç]äíþ­\Qº6Æ>ïûvläXUkž@GŽõ;"mZÌæ” 5}˜ôd»Kô…ŒÅdFÖøÐ$Ì"Ž~¾xÖóÂɵ1ѱ‘h ³ßAR³2H/q¡yë ÜìhèŒm“©òï@»P'ªsttÔO…³,S¢ §{#7ãewž×q¬,„Á÷÷¦Mˆeå‚ÃpµS!ÈFÊ ®4ðǧi'Ô[WE3_š†{ÿ%› “ABçÝ‚ŽM!÷ØV¶ïM¥Ú/‚ÁÍiî ºÖ4'µ¡Æ¯jÕFæÕ,ÙÁÙâó¸µìM'ÿ Ú´k†»k »¶à\æ vŸSÒª;}ûvB‘s€ÄƒGHÏÊ ­Ìƒ¶­}-D´@'Ôdi)<ƆÃNôí‚(ËÏât©DÄ€žÛƒŒ ÏfèJRØ¿w7G3íIxùQ¢}t‰Ì^´•ôô|‚F|­´€€J(åø†ØÇö D#_5ž­FZ{7£RQEq®’zíêc¯ò¤i¸?JA6Pfr§y ?TæjªE/Âýqp ¦~°’#ôs\z·ò ¼BÄ'(_7&*ª ÄYi¤Ìàjm³TM¹Å‹V" Ô¯`ñÆ òõ&|Z$Щ¾/õ½ññUP’³“c%îø„Ñ,¤ ­»·Ãrl;ûŽ&[îÆ+ã¢q‘ ”Ý­þ® #[Œ´‹ ÃþÜ*Vn>E±ÂžàðX:„xâäꆿ?~îj ÕZ‚ZEìewƒÝ „uíG÷Ò6âÕÌ{;7Üqvõ¡¾¿"f*«´†àåUŽ„†ûá¨v%4¡ùk—’˜‘Þi¯ˆ@‡Dõù"r3ìðòH:7pºQè·fx¨¨v¦Ió"àB³¾Ê~DGø`:ŸÎþ•çðéTCú N&Uã߃üÝGÉ­TãÝÀã¦öEii)ŽŽŽTWW¡V;H¸rM©ð×OäÔ,»‘««¯4åø¼´ôí{9¶øÿfçtfPŒ Pâé[~ÞÅÕJ//T'q&ª'Â]Û>{³ó!î ËW®#¨žNŽö7Ü,(Th4*¬öŽ„ÅlÆRUHrJ>²£7 ê¹ Þbš?AT¢VÊ fä;ØâííÅÜùËp°·£¿œ>}梱ym:*PkÔ(¢5…‚`ÆP%¡Ô€±0…íGÚD7@‡¢Nêxq5„BV«cÛŽ½ôëÁhÛlƒ 6Ø`ƒ 6üÿ†$ˆ¬ø å÷3 ²ò¢ -úùcÿÃ$ò©F@ ¨~Ð]´vïŽ=m2›ÈÏÏÇßÏ¿Nëyµ eâÀOŸ±ÛJ¯Q VÔ.ynÅ©MÌþl%M?žJŒîïÊEz«ô¾•ûäZ¸–W–w½òkõ-ãæeF ñóó«%/ü=õ»Þ=ׯQmÇ×_%£T*¯8¬ý¨¹¼~wÆëåå <Ü=îXŽÜ8+aíêi0(..Æ××·Ö’¤öwÞz)’$‘››K@@À-óÌË¢[+#+;‹ zA·ÙKw>ï¤z½žÊÊJ<=ïÞ)Âå™»Øu0…£uÆ)ö4íÅë ÍqÕÜyjµ³gÏâîîŽZ­®ƒž½œÆ7§ìÑ^F&''‡zõnXþí¿åŠ'/ýó&…ÞO×µVç¦ü}úôi|}}k𥪧7V¦ðËïà1ã7ºÔ¶ÿË™;ü1ªÞüj{4À•eÞ®|ož¨CóZÖn¯kZ^û»[‘µµ—wf+Þø]·ß/7’5µ×­·jß^ÿ×µwa<ŸÃá]k9yÞMá9’ß§;¼neY™²¤ýÂa"Gv!¤y4s½‰Íxý6˲DáÁÌÞxœÌÄ2ú}ÿ)Ý®m…ÞÞx©Û¾¸=éýwXcµ§Eí˽•'jAËZèåkéi__?JJŠQ)U¨Tªk€eY¾¶¬8Žá³oJJ.¿Êʺ§c¬ÿòÐu£,ec&«—¬cr-Ž¡{S74bÝT…("ŠŠëœ, È&*Nïc隃HÉ™Ö]éÝ©šûbªEƒFž( fnd •ç±æ¨±½ÃÐ-WäÒ¯.f­;m ázg Ô–<WíàpV‘õœ2,XÌ¡ô|Ѓ#Û¢[¥²t™Šð¸†ˆ§±5YG‡Ø4& wÞÅÿE Dl°Ál°Á†{Â]JÖýDA¼+õ¼Æ4®a=‰qò%@qý»® üi÷Ítµ{òï¡÷­Ü'ÜÁ{¯W~mø¡¶eܼlQ!Þ&/ü=õ»Þ=B/á²É;õ‘„kÖO¸ ãûöäˆXgü Â-ú”ÂÉœÛ(EjYBœt\—ý®Ã;j¡(^2çqw JÊK‹)*0kZñt÷fuü½oÔ¾g/§±p—ùãæ£]¸Ã·×ÿóœ6ºUþ¾þ®­žWj44Nx™p—Û)SO½¸— n¤ºsá…:’ÂñMmu»pÛÔ¿›Öù­ÐR¸mY+ÜešÞú»n¿_n$kj¯[o‡…Zpxs‡ aЗP¯Ù›ØÈ(¢¼n5§ƒ;ßHlätE5&Y¸›ñúm$ ¨¼hwÊß­ £@ ™‘;>ΔÞ!µ2â*Iûs)»’Íxºä³ô÷Í4x¡M<4uÇ‚`Mß,_G0XÌ”çg{bmú6Å®°ˆÔƒ[YaŒÒN JZ­Ñ"c¶HÈ¢ FÀh0aA‰Î^s‘ds&^žZÔ 5:; *¥€d6b00KÂMIt­`µ ˆ×ß,(QWŸa÷ŽTªý|ñ÷r@!Y°XP«œðöP‹*´Z«!h)KgëNwbîk…®¸ £¨F§Q! c6¨6J¨Ô"‚ F©”0UUc²È×ì[Y–o°3Ùl°Ál°á_ A °¨ðŸgîK2’E¢¨¸è:‹(ëÊ­p‰¨›$QVXˆ\K@TyÞ]ÀXXH¡Íy½' Y$,Ë]ç{è ª ÖŸFÃ=U7³ÉŒEº÷úH²H˜Íæ{®^² ’,ݳ<ýOÔ1f³ùîö· ¢[†D¢Á‚Q_Ja¥\'ãÛl6SR\r‹‹^îA=/Ë÷,ïÜkõÁ* ‹n3\›—¹Ðbˆ;æÛ°kdYC³c.*âŸ)l°áß`:Ӣ׳´QÈ€„Ù`¤¸> “02Q–‘ŒÕÞÑZ*eh?Æ6‘%3†ÒB d[<Ð.#ÿbi…|f#_OÝÀ¹fiÖÚI[—s¬çx¯>ÿ Çe n¾÷3énOncɦœÌ X²GI㮃õD*æÎeý¾õž9ÄúÍ‘„¹D0ô±@\µ'ùþůØ[j@Õ8·Æ›c;RÛÓ“d@£Õ`§³»®a+J2Zµ…Ê'ºòjò‹r©tª·JFQÁ©ä"^ hîà€cUGÒúþ³¬~ûÒ‚FÑ»©ˆ¹`¿í8ƒ¡Dâ~‘FìX}’ÈÑÃæ}”ÍI'Øx´£ãüQnžvY!*¬÷ P*±³³»~°UT£œp*]Ä÷“7ó‹½3fcc_Ѳs'tî¢B!*±sô¤aó¦x¹ß»=%É$OÆ»4“½'39yÂS;“åԒȘö4ñvÁN«¶ž‘|­º*D,mrÐl°Ál°ácTÆÑÁñWm³ÅŒ^¯ÇÞÞÞÖ‡6Ô &³‰J}¥w“Ñ„B¡ÀÁÞáž«[5Õ÷\F Õ÷^½$Y¢¬¬ìžäéâââ{’¿n¢ "Y¤¬¬¸Àj•êYÿ’’’{’wŠŠŠîI»©¤¤[ö;l°ÁþÕ(..þWµ÷_œú[¶‰„ŒiFà%ùáíBB±#•9£ß /æ]Æ4Õ“¼þO&­ ämí6¯8I·—'òjãD–ì>ÊŸ›[ðTÇÖ4Úe Uë(º4)æÇr(RX6þUN4ÏÈvö(Š60uQ6ÕÜ^X©P¢T*¯{°(«ÐÈedoø”ÇÓ~@’œ¨՗у¼Ø»ô‚¨D©V¢R©P*U(U*Ô šò4vµæþIñD¹+0f”°jŒB©@¥PhñlCB¯xª½).Ý@Öù2dU0j‹é¦g_ë¥Ryý°BÊ(a¶¡KçÂ% Iö¢öµ„R"j­ AMãuÒ“®[“3ßmØ ¹»p4•žæBïQ‘ÝÓª]<½º…¢31K×ïŠ I2Û¤  6Ø`ƒ 6Ø`ÃUö¨ü7œ\ÇuþÛwÝ•.Ot›iƒl¨›ž”lKBÿwãèŸ_¯{²n6–þðáÿHîß5~½»–ƒlcê˜ì´Ù56Ø`óÎþép·èòÏ¢÷ß#qÿÿðàÿwü{—}U•R‷£ê+ÿWxŒ­¦ž<6ª-í:F“Ð=ŒÊÖsÔÉ›€ˆ^ôéN³ø"üÝ *ÑâåLhD$­[×ÃÍQ‹ªð[Ë£òpg:vhOd»F¸Ýɹ*‚5•̵?Ö[$¥=^Í2þÕ‰¼úÒ8Æ<C¨‹Ö:!¢ˆ(X;]¡R¢•(O¥rØ%?G &“ “Ù‚„€x¡P¥£/®#& ”J5:A¬I;-Ü NÂ5½7¼0«=iÔ¢ ‘QQDEu c§F¸Y#¿Ö2eQY¶ ##ª¨ ê6Š—^ÇÓ^çÓ¯^eD\ZÑW'-JÙŒõøß×ÕæBØ`ƒ 6Ø`ƒ 6üïÕk;–µ¹¿¶å×ÍÜ·\c° –ãüüõbö¤¯u½¹ýë—òëâ“È×p¥åÛ¬™ü·öVퟓï¸Þr-˨[šÈw·o¿2ÒߨªÚ–$ߥ7Ô%MåëÖM¾çêz7éX×%Ëw‰‹j/{ä¿•†·Ò4E'—óéW»¨üM¡ÞšÜNÿÉ#ÞÇ€ùîÈ=Ü ÂuL™²öÿ陳rÜ-ßP‹Ë×½»Š¼¤•|ñõ.ª¯âï[%›˜2y%µ±éêÈ6¹žæ’ÿG}x×숻° @º)%å:ãbù–i ße],ß=x»J7óþ»«ÈµHµÔ|ÿKX¨L_ÈKƒúÓgè¼²ât-´ß5èl1‘6o ½ïgô ßqÐp½€d-ûZ2Q²ó3z$0bÜë¬Ë½;Nù.ñ‡`NgٜŬK<ƒå®ù}BÁjÆ=1”>½ø|W5RŒ&êÿÞ°¾…iœ9«Çxåÿ Õ\à£d *;ì‹ÎSªÐ qð´îà5Ë(”*4¢U½I’‹Ù  I!¢<•Â;Ü$+ãšÍלȹUæ/*ÅkDQ‰Ö=ˆðæ-hÞ´n:dI¶~2æS…œ7Šh´jªOàD•S‹–D%í$é¼=ŽŽŽ89hQÀÅ€¬(\芋ÁfAñºu¹ôsùzQ¼Ás‚ˆ(ˆÈH ’$a‘,X̲5È-ˆbM°V ÕT¥– ×xáf_ Ç0ø·¡}ûö´o×/G”RMšjñæõÛQÀ6Ø`ƒ 6Ø`ƒ N|Køîôê?˜)›Ê.±%ΦìdñìƒT! PƾÞaT×Xâ»u¡ó› È,‘Èä1ÃÐ3„ž=HHxžeù7š&)`ïœwy(¦+±1]öÑN–€ ³jâ“ÜC×nSÙk0_á¼ãÇÉk)¹X½RNüù¢:2pÜ{¬L3_¬»ùèvRnõô¬xá1uïJ׸i¬>œ¿Šâéž@Ÿû‡óåAËÅg¥ü,2N§bñÙ=ë †t%6¦3#¾\KNä²pÌ# èу„ø8f¼n[Ïçîeþ·{¨D@ Šc ?çÉ.èØå~Ûsújÿç2ç‡7VStÅ·¦ücüøÎH¦,LÁr‰\+OóLJË9UV3P±—{%Ð#¡'|½¦k,¥Šä•3Û¹»Là§­Y(bùž`p÷®tíö ‰fKM¿$óuÏxâú2dä\r0Q˜º”W¢;;Š)ßï§rö|3™];Ñ©Ë$–g”`B@à ¿ »> ñ$ô™IÊL†\Úfùš¼]Ž€‰s‰?0²sgbº â¹–’ƒ€@ ûf½ËãññtOˆ§kô0¾Ú–ä3oÔƒôíG|霸ÎZqÚ^‰î@§®òö÷‰T "¤®à½qƒèׄ„ôîÙ“ø)kГŜG¬mîÞkÆUm–* XüÁžûé¦Ûô[M§—ð\|ñ=zÐwèhf&I§r*S–óÁëÏóÃÎ|NñÇ›cO\LÆü~ŒÊ;NÆ$ ðÃ³Ž“„zv'¾Û3,8]3ª}Ill< =ºÿÀH^Y~œ³ûóõ¬jÚ-˜’™ÿÓŸ¬¹dÒìšý|GÓ[ûùxø}ôNH G÷^Yuiïçô{s+UT‘·ïw&=9£f3i«¦2´s ±±]:ù'öŸ“ëh2R"mÍ—ŒЉ.#¦²&¥ÈêÇšÁ¨ûÒ£GÝãâyiU šr–1é­µ\\æ"'yçb¾ý~ {VMcD·8+?w~ˆ–&Qz[µ”9—¾‹E³PUÃEÖ~(aÓì5ì?ž_Ó7¾Oçç7—sV–k8îŸvëJlŒ¿Œ‚ }kÎeó÷ÏÓ1ª÷½ú-;OKÿã°«„I_DÎéÒ:˜ ýû X²X7ï7~^zÓuGc¿Œ_Oû§?â‹Ï¿àþÐ{¸AÆb22‹ùgçƒÓ“ºa&ããâˆOˆ§kç!¼;ÿ òõ9üj›DBÀLþ‰ELŒî@§®ñþ¬è/ƒ¬üvIÙç‘.Ȳ¬_ܯ7 ¼´üÜÅ1%W–“}t+E!TXÀ‹ÑèÔu4SçµÚ'RóÞzšqqt‹éÂS³ ¿„¡ v."Õ?çÜ%ŒëF|ôöß'€‘̳x®sgb»u¥Ë³Ÿ±&õÊeê|ŠŸß\Ι‹A²#L‹‹%¶Ç@}f1ù×”ž-fý¬ÕL.Ä‚€@Œ|¾ $ôèNßÿ&]‹¡8wb¯ÅÇß#žØ˜A¼üÍÒ“7òÑ„+ôó»Ëɯ0]e‡}Ù=Žn=ú1ô‰ùäÕØ9yI x)ºº>·³£G@ mÓ_gD÷xz$ÄÓµó£| Ã%mHúv÷M^G)`Öï佘Ît‰³o®£T 7‘ßx€Î±ñ$$$Ð+¡Ý^Í‘³UWÑRøáõä_"Ãʶ|@t§.ô{t?² RÂþ¹ï2¤Kg¢c†òÑÂÔüÅ€@ÎÜQÜ?ñ2–ëÛÛ—É=ÇƘ˜âºÅÐùåYÌ­F@@È_Γ ">¶ cç¤a¹,¨}”Yï¬ã<`¡0ÙÊÛcFñî¬5vr;f¼ÁÈ 4ŒÁÌÄ" —_‡¢wBwzöûŽÔËØ£Š³»g2nøxfŸÀZskçÿÉŸÒ¯+K„’u¼1i¹ux7Ÿ'3³è»^¢*mã>ÈØÅ«U9»™ùΓ|´,é.«d,†rλäï>乿լ6Œè®Vþë™Ðƒ¸ 3Øžz˜•M``·®tŽyŒŸb¬ƒ¿ H¯„î$ôýŽ4…Š /ñÙû£‰¨L¥ÐxÑ|œŸ_Ë>ñtíü:Ë~Ï IDATrÎ_G‡IT–íföÔlžö3¿>Ž(¯»¥O³Y¿àOæ­ÏBà8?|þ;ëçݹM UQ˜WHQ¹á6íÖR¯ûϾO¼h_MѼ²Šà™öõLi¡¾I ñVj" èwòáÃùÏ’3ùWÚž6Ô ÿâ3€2èa'ûà;œNbP=;«¯þÍ×”‰ÀÿÀkü‘ÒŸ±¡*ΞØIj÷xÅ”ËnYºùúS³S«vt}o>‡Ï=L£ @«A¼®i|+üa÷ëu‡ [, &,²„$IÈ¢ˆ(Ș •Thâ>l ï~5†o'UÑ8º5Ú wÌb'^ã }Ftgºus-Ú&O HŒF°HF£Å|dÌf3&³l ˜"Ô^q\?9€ 2F£ X³’¢€€CµY†j ÐáG;·Çxhðvyzƒãf1¥g&©ÁèͳOµÂ €$YSQ‹75‚-úkƒ 6Ø`ƒ 6Øð÷ é[âÇäñâ²?hg‘Q9ZÏð“J³YûísL^©¡Ûc¯Ð w¹¾íöõ:4(eÝÔ™ì8Ùÿ•ä§„0êû÷éà¨ED…ƒû ÞYtƒkN[ÎÀf§Xãàô!hª ÕÔ•¼ß¼Œ}ó’~`§Ä øKÒ–oz—áS×pÖm]j¾Ý7c†‰KYžÇŽ??ãåù-™õ@ý«úÞœ¼˜·§~ÁÚÜμÕ–I‹É¼ï¾ië„&ŸÅ“f°4ï+úû\JX Õåàâ;„¾˜àR¢½#™§ßnÎ(ãý|?_5 \jQå³äåg¨xq [•‘³aÏ|º‹F»‘¸uÍ>ßÎkŠeLß°Š?öóx#§Üè6f ]ãC±7€ÎÕµF ûº;_Eâr®½åkÞzûwÖ²ºa:ÛV-啟<ùjTzñúŒ“Pé\8»â?|cBÔ—i­âU¯ðдèë=mµÏ%#ç7MçÁi>^¿œ&U:7™Ü=ÛI:ãθ¹ë‰,ZÁ›nee7CÛø "9g$ÓO¹ Ì3`® „^eo_‰ÂcäëêÑó‹eL +cË·?säD&Í-é<9vÞý˜·\ÐÙ¹¢¬ 2æ<ÅÐoOáõ"÷å9[YòËRš~¾•)®;ù~É&¾\íÆ+=µe¸Ñ剷‰íÙƒŒƒ—;'éKÆ/ù1Ú•¼…/1öÛHÖiQÃ"Œœ¯TP°ò;Ž…=I¸`¤ü|)¥jãõçÊ ªQÖÕü³  P—ésQ®¢DSŸÆ{f±»×$¢4çIOÛÆCº†Vb†;³³n coIjÊ€ @íäN}wÝ]qý% ± Ô8P¼g&¿%fûo› ïÅ»s?¤Qú,†Í^I‹†½)˜6šÌ‡fòSgÄ=3xðµU,y¿ ëŸ'Qs]£lʈñHý(•áõ#6Ðåú:¬à ©Õa¼ÐÌŸ»jÈTWVQ¥•€¦Œz¦QQ‹›×§º5¬PëpYþ6æþ×ȯ?̳&é>ÁiŸñ$ºc8aî×»K¢ôtë~>Jäëü%uVÊ9×–è½ÇòÈôõÙ\ƹsº{`Ã?Ês㻽ÊwÒŒyº›-Ìqo±EަùÏ£x|x~Q¨qr»Ÿ©Ë£0mý“YºÈÀ³³Ùú»Ùl¶®2’%ÌÆj*ÍQ¼15‰¸Q]™f0#2b³nÛ|n ”ö´Ê”V"š*² È ê0î‚•âa>øæ~,…R ²u7°2öEVv,ƒq÷§ôÛH³¦­yï= j„‡ ¨+«©VÕ§çÐáÈ(QÌÖwÔe;dUºHþóF[* kÎf-˜½ðÅ— ÑŸÖ`Fp â¡©KdQ ÖjQ¶{ƒ_û‘Z¹£Œ¨P¢4פÁ¾±Þ´Ál°Ál°áoÀõ‡õÛ7ôt½ü{ѹ=ŸýMƒuì.2X<ßz{ ( Êѧ8a×OUãÈØá逷æ 9·ætì¬P¢¤ ƒHvÙÃæÙÁ„Œ ¡ž¯]B,!o&×"¬ 8•¥çñêLë®`ãùJòJ ŒýìqZkíÇà,‡·¨±(ƒkÑøùúzÛ¡éKðälr¥F¾Ä‚(£š¸‡r# Õ“—•ÍéC^4¸ ­BZ`Q(QNXƒ%œ˨ŸÆ"*Àò=hà{ýì<è4z_5\ÁÒc&ªH;Xá|;Z†‰x¶§Éî㔕Á÷Sú€×ÞbXÍd«W¿XÞxÏ!ýå`ëÏ‘¸êGN¶úœÍØrNDÃi–¼÷In±Œ|*´íŸåçõ?åL mBW‚ßÊ%½¬›K·n¸ãHËÎðœ{„ôh;RvÇÒë%®¦¦D>ÇÙ³;Ø–fƒGM‚•¸ºw"lG¥æ½lû½-‘¿øãía‡oÏX?H§€–—Xo W¶Y¸&oK”šMTé%uèÄ‚ýŽ“_V ¸!£ÁÑÇ'W´NÉœØÞŽÈøy9¢èÙ•ØÉ;ÈâÒ°}Y)%Y1ôk§BMS"\Ó9|<‡¢Þ ñtõÀÀ’ÈÌ5mè÷¥Ž´';ÓáE?|Üí{ÇÐõÝdÐWK5É‹'³!ì;ÞõÜËOÛowÏ€*ê%^4¨Eg¿0ê$¡—‚C¬ÛyUÌ›ÂK3–‘ñdë¶õäéý1¬•ªáþ:ìhÅÁf„:Lè¦TkQz¸ã =‹VwŒù¥ÒiÐÓt ÂIèγÎòÔçÛÈP ¸2`yÁ×Õè]ñ²w@mß Íª* µÚÉ":Ðýéih¬ak®á¢,R6êÇä]Ð~™ŒÚd¹Øޱ“XÐ(Œ±S¬¹ $y7›ÿˆ§ÛVG\åZ´kŶMäŸóÄäèĘÉÒÌ®VÓÕw2 ¢Á@êÊÏxñíEäLÏ1/òŸQmq"…__yŸY›N A Á·_>FK7Ýÿ®æ–6,ÜM‰¨Äb±§"e1{’r, b_úƒ·ï—øõOH´”°§Ó2„ˆYôŽ’Iý>àˆÂßàÇ™þÛ-Nß +9½í>ÿÑžñ³¤¥ž¿šÙ~ ùOÖ¿÷Ó—¢üø+žk•ÊÛŸTÑÜùc>[Ðç61›Æt`Áa®>q¼ùÇd:jþaÆ•¬ÂÎÙ;g\naÅ…p™MNHÐVrrNQµ·+ÝÇ(.êÓÜìs˜Û¹£j6”O>óàÍsPZ$DàØêƒ<8ó]û_¹¨Ì„¾"‰£$ÎdYÆÞ?#n^Žëã袽D?·¤Ï{8Û_*Ë39±=ޏ]pÁ¢ÛÒf|"7&ó@ =ŸVàj §ÙÁBŠrò¡‚¬ÁÙËg÷Ë&ùÏ/ÇçN_ðEïÃLøHÂbÎ%ó`< SuØLðF„üžF:{Ô,ÒIfñv_ZônO°ÏåÄtí1…%asyæL2ÇŽf3vÖtÔ:k¿ªª0É<}5¨}¼¢M•uO²që»|aÍkŸãí*/–}¥½}ÜÛÐ9¾5¢B‰ˆc–v­8¼ë0qof`ËúW,2ºïS7žÏ[?›‘П¯ 4§ ýÛªPN §t’’ÏPÑ3ÔJCO_œÝj‚]'Øðk$Qs}ñvÕáÓ³+¥QD Ü/Øèªß”úª™µª€©}”5 z´¨IgöÄ·™µ9™ êñèWß0¦–5ïMçèÑ2vúŒ#Ÿ@—âÅS{ÃÁ?˜ò‰ óÅþÈ.¶m/ ÓÓ]HûïûLù~ ÅD0òãÉŒí’Ç´ ñ¾æ‡e-xý‡p«~E88èñ©Œû4ç0Ú4?ÊÚD Q ÓÉ8´Ï6#PŠ*̹ë™úÎÇ,=X ø3äý/x®}&ïMÓÓÔás¾]^†ÞMßÉ„6’~œ3’E ÞúòÆ/ÒFYÂá?¿dÒÔ•ˆ {vá™IѾ€™Ï¾ÃûNQIžüñ÷ÙÄ @ßødñ@¦o{‘ÐÕgík:GwtާÙwDÀÙµ ÝOR¤rÆÇS‡Æµ) æd¢ •¤­ÑD?ï‹·£¡WbÞO$ƒ^4©É¶dUŒ…œû3s/Ï9ÃÙ­ÎWoôëxý} mÝ>áó¥U˜%%þÞ˜F›xÿ‘ÏØ <Ôm ­Œel«c¼õÒœ!˜žc_ã‘:æ}ŸŒ>o«·:3trgŽl+Å9gK•Ñÿ‹%„üôŸ$©1c#O5.gÿŸäéŸN!`OƒöC™<}4.{7°þ·™ì*ùŠe[;ã*¶æáa½‰m–Å´G'³4å,UR¦mƒNÅK÷¾@ŒÿL] âèÀèéóxÐ#‹•_>ÇÛ‹sÚ~ŽÉÏ5F%‚‡ø|äÏhF<ÇðØ ë/ 2œ`ÆðÇX¡yš/g÷#gÃ\¶$+iØHGÒæmäÝȶcÐî±Ïx穆lû;K2XÛgo„>ËÂiî||ÿì3Éè‡ñÍ걄"âÐö=v39²?NÏ~ÀçÃÃobI˜Å&<> †ýºŸ¾/¶ÁšUÖ¸¹]ˆÿv¸ÇMd΢õlݲ…ÍÛ·±}JZQD6ŠŸ·oeë–õ,_ü è¨×y¾kU*ªôùc"xúÕ'èßÎ4]xï³Q´õÒAÛq¬ß°™;v°cj_Œõük=©p¥zý3lEJ :­ ‘Kε¨ÕÔ*‚¨ÆÎÎGGGìt:ìì4¨5všÑÞ½zÒ³g/î{ÏŽO_í€É¢@§S£PªÑjUVF¨ÔÔjÅÅ@®PËs€oz¯¨D£Õ Tˆ—ÿOTcg§FQóS¬9ÓX­sÂÑÁRB¥ÅÞÑ©&•µj•FƒJ©¸µz^<‡Øl°Ál°Á†»‡ÃlZxˆ/‡DEçn=ù!ù’kí°×*.Ž«D¥9:ûúG¾FÅø‡éÕÊ•v-/w‰"22’§þ̽‰A­@¡PZ'ÇÌ'9Xî›·/îêKlVÏ„%e‘#Y“ÖŠ*;íÔÖ#R}ù.–ü´š×zXßyßs³³¸æÙÜÃl òÀ5Ðg£ø×Ž.¯„Í$K–A¡©9BÆLuÞökcéàè È,Í%=ª5A ¥u‡­é(»õõôõÄY%¢R”³æµtˆœG»­“èr GXÐØã S×ÐOB’Y´Z¹v¾åUP~¾0SY¦§Ú$_<NTêppÐüå$V²oñTÖ¼É+½ü‘±›F½žÊª¿v ‚vZT¢HÈx3tÖÓ¤÷$2ª#ÝÇä÷áz…ƒ/I€¬°¶WçC½¢*ªŠK(—”™¼BKÊ"[6c6«jv‹¨ü :œN–(€¹†f*g>’lî=;gΜ™93çÌ)Chùó\N¼?ПGnN"i€ÞþjÔ7¸yOÑ©+ËfШ Õ¼Ð˜âHH¾(Mhøy.%H\\ò³Góu» kE&ñ¾ÓÝ…€BƒZd97NsBÛ€Š– ü½n5ÉáCy½–'’U†” 1ŸžÜ}l1V¦b€=Êg]Ž)íÑ%,ap«:DEGETÏß¹v}ëRò¾ˆJâŸJ1ç¢B ;`\«ÚD}º "±îBk‡/ùjæ)*ŒDJ¼JúbJK«ÖCøiß-” % EQ‡sd(ã8ç]‘Ê¡žÜ{@VYº ÁÏ'<>e*ˆŠ|=›ršÝj37'´…%Eã€Ö‡(0:Z;4J±À‡‚¨@¥µ»Gv,˜ÍÖMB‚ _üÎçxÚVL_ÀàùúûµÑó8‘ù"¬ÿEJ=—Î,ä·_.ÓkY,±¼"m >á¤K¦nŒeϺÑÔq×!X¤ÿøîb ³Ñ€Ñ¬À|öwŽÑˆa³c‰ým ¶od’?oÎìOD…üºq;Û¦ù3§í7”™Kì¦Å¼_oCæž+:zÜBjP3t»®9×9™w‹Ôh-'§n"+ðMÇÆ»y9›vp">ýþ1.ýë¶~L •Žœ£Ä§»Ù³ù/¾hÇè/cÈ}©|+j»«Ä,ý¦QQ¼òá,ÞÿQgßõIŽr@S(o#“2_7«\ð4+Q^K¾[–×ÁµBY \`÷ú“Ìx£ÑÑÑDGWçûÛ·S˜ d>ÈÖ¦µ‰61Þ¶Ñj7¼óDÄë©Üº×è÷³ÅX‰òþöùI‹C1,nQZlKY7ÎqÒ¡6Utù~]®Ÿy«fWÖºFÒ®wu<¦îÑ2f,æ|¿A‰§/~'¯p z²sò –ïu°Ïïïž©Ñ(ÒY5´>ÑQ«¨»÷sj"a6ÈÊÈÁ((Õiœ8<ž¶QQ4êó9k.LkÞ¶ÏÑþ^Üg`Ál¹Jâ-%öºb•<Ï•«‚|›‡®xˆñ)d£ÁÁñ?ЙšQQtüa'·,¾v#³3£{9숈¢CÞ5’ Zœ=Üp÷‰#1ïî·ßˆYÂ¥RÎT,šýa7Z…½ƒÝÁlÞÅÚ{×2_§6{m «T”¨×ŒªAIŒŽŠ"*ê}.y–£v­ L»ÆóY\ÞïTOO;AD©Ì72÷úÛòá• «¾¤kÔ@Î6iMûºJ.o=Æì·»P?:Ÿ†ÑÛôwüRQ퀣Vƒx{ȹääܰúMîxû«PÙ%‘†­ÓqfèJ­¨(:|¿‹,LH%wÌMP)ʾȕûô Å­,Q‘å©ty<Û®è°W*°Ó]fÅ—[°«ó!Ëbc‰Ýø×®ãxššW†¾E¹rùmó6~ìY·]g¹„‰”£ëÑFIì¹,‘'f’…’ k§³ö +£þŽe×ôhíÛ̾ÓÙpt}Ʊ`ÃXê{8 T¨“–Я¿žowL¦¥³YëDpÝæ8Nø‘•ׯpÆÐ•W*šÈÓëQú5bÔôuì‰%ö.=yœ+I9˜÷}ÉáR¿°|ÃnöLhÅ‚™‹¹‚³Ù»‡=[—2¶3ü¸ô©± X¼,“ËbÙ»u&†á(œ`ñ‡Ûðê4†U±±Ä®ƒS¿¬æJ¶ýžÑœ¨²‰m[‡Pó#OqÞ:º‹SRAÕ›Ðênø™ÇQQDÕœ„Oû&„êœÁGb’5z¯(MÙ°s\JA,èϘ6ŸÁzïµuí#(1ìùœÃå±nÓ¶k¼éK¹e_¡?¤JÍY·y#ª_añgèqÇ>odñîdTç娪3_/™LÇH/,Ûcq蹘­?tcå»#Éý`3[F7`î´ÜR8Rù­ùì‰eo̯¼U/›©ËãñŽn@½Ž}è=üW–|õåuf°;Çü~“V K¶Ç²ú£†¿ ÙbF¿w—ëí%vÇzæö cÖOÉÕÑü£¥ùcºök"ýY±ã"õÙŠ>;½ÉüÈÛ|·|E³)5ckæu§”dÂh4`0åêzÎfxÒá»Xb—ŒD¸rÍ'Ut߇Èè·˜²|{çU`q‡Ñx|¾‘í[c˜Üõ ý§»­H)Vµ³·ÿD7y.uš¼Å{o>>c6AÝÏùÎ<ˆñûyöõÁÿs(ÿßs@QªÄ'û\QÜSJäÞâ‡@¸óÌÉŸ[1h^2¹&€¶L‰­þÂußbÒSaà*6 ¼gÚ›Ì/Õý36Ø`ƒ 6Ø`ƒ 6¼L0a6¶fRìª#‘{úwÞ{{2Ñ›Þ!ì1Ë–òÝ'òW÷8æ¿1‘¹·ñZ“² X»‰ìçë¨Où³Ö/túÇ:]Élún%Ùº:T /ÅFó‘{Ã[]J˜Í z‹Á‹{,dzyêŸÄü¼‰²5"ïÈ.JxFäãÍ•ׯÜ‹„>cSú Åšïq²’¯“žpŠZíßó\}¼Ux*…ûXƒbŽ4ýjM9Ì·Õß"iñ/¼ZìAšϲL,r”µ·¡öÃbw—ÇÎe;X_Ÿ5·?Ô†¢wÁˆ¯&ÐéqË,`ï7ï LŠ%¶êEfõy‰ OÐt@ø#BwÒá¡înxîßYþè6ä"J¦˜í!ƒ¦Pqu[’Ö,£æ¢X¾ÉšÏ¨‰ëY¹³1åê{Soè÷Ô Çüž“Xºq(}½Ê']ÚSóf¶5HÖ–ÉN{kð mB×çy·z©øS¿×0ÚÞ®ÀfÜË¢¥%¨ùa8NBƒ–u䃎ͩž‘øÁ/Žm+÷³ãbS¢¾°¾gWŒ,-ãߌ|Š2Ðù<ÈLÚÂÌá'i±¦;ʸÕìY¸Šõ©«˜}ûç£X\‡Ò=:‘‹Ìzc9eÞAi7‡gß¡nÖ“ãÛŽ‰ãÚS%Àén{ ‹‘Ë—$ðÒ„åú,acàèdêÔ…¡åDbGÖD¡±£z·wX;Û•ŽÖéâX²CehÆ1æ~Ó‹¨¯Ã1úÚ†»<Úd–å.Në" IDATîÌ«‡BTb—{’5S~ä÷)€s ŽJ÷¨€¢=yð“Ux€n Fƒ+Õ†1rrGŠIçXôéJbVîÇ¿{Õû6¦üÛ1)À '3S…ý:Mý© åóΑ¸i ÛP#²"ÁN@¶‚êŒÅ€Ñ§)õC*SZøRV} (¢¥Z…*ñ*#ÞglU@Ö^Ÿo·s¡g‚‹ˆg7C«256ŽN•³Ð JZUôçò®Ÿ™=o“§Ü~²&ÚD¢ÀuѪ­F³|#jû ˆh)]µ6%VŸç yi|+G"Ú`Aû@ë>ŸÎÎU»ð{³¾€÷ø$ë¿ÇóªǗØ,`G è³ê3fãê9Ù!$,¢Oûo8¸÷C*ôœ:C‹Ã0e­xpvhç"s{-§Ô€á”õÔ!ûbþ¤Mý÷ øŽé×c˜=êÍWtÏ?E‹H±šýøiW{¶Lø™9ßߢã»M 9ÿ$ F©Ôãc¦ôx’—\h5a ­ØÏ¸¨>\_ù B{ñë®^· )•z33¶7Îßæ±yöŸîBˆâ^û\oçû‰­ÎÈ%WèÙ,Šqù’_HWÞó—8*=hoõ¸ÒtÌÏ4“ÏÇYí&±ª®7Ž[ÏpbçëÔ˜tW?¿1|(¿Ì gx(>À•°zƒhfw{>ŸbÃßJü¢kð$[ÁDtö]ùeë{DÁ™¿þ`öØ ·ãdJ6ÄR,æcÞß´™MBð8~‰S,¡ã”»-téebñÜ=ј)(Óêc´J`ÅÐÌ!œ[iÕyî$…ú ÎXÍÀfعcu”Š»>%2D|"šÑùÍ)¼Ço  Qßá´Ã‰ŸN§Á§ù<œÝi +ê¿BŽ$>à‡Þo~d‹¯€p‚üã8º.Wg;”·2Éö2wôL¾}WïD›:PA%"Š"J•¥P“ºm~çÂ%Åo•¦ZKWŽ­ßAd5=Y.Î`ôÇ»Vª¹Ò© •~Ž!Á=éX§îö€Aƒúì·´kó “b?¡:rY¶ÃÙ= /ßùn\ŸŽ‹ã¡?¹ ¨PÇÒ1c˜¼æ8zߎ¤6(NN™·èYÇ­ (Qš‹™¼³séùÆO\ÐxQ¾U0ç|œÑÕèDCÀ¨D¡T¢HM'™Ý,>‡¯ïp¨1-ß.‡9ü]zÔÑXËs?â†d)žCÛÈ•›R¿œÈõµ“9ÒŒ©ŸN'yB†®ÞDÇŠ¯3䯼׶“sȀʮ S=@N»×Gð¤Z©ÖãŸm˜)ôm^«ãˆJD(L„$!! RŠˆ‚5fôÙjĨ{ì³þ‰‘Ø–¦‘(éd›1—©MR:D‚ ó¤vqJe0á i§Óçíy\·úÛÕßh¸¡PäoRF¡@P(/sÖ»-êÃMbý&Tøn{º–@(?„îÕYƒCPIÊn·zέ™À1«òeÛ1’7Þv#Cp–˜©Âˆ%UÁ„=ŒzûŸbÙýyÓ`ý׌ɭ*•kV ² õ£”ö&:IeþF[¥Ú!ígC3²®¥¥jÔ§TŸŽ*OÄmͯñ¥Zñlos„™cÇóþ‘6|Ò¿ú#|0I–¨Õs(¿~²øO¶#{Ï[ø9"¬ß*¶ô+šŽR©@¥R?4ò"Ãl±pîÔjõ L­€Å’k\l°Ál°Á†ç QaÁ,¢€20ŠZe¦q5œï ÈùåˆAD ˆª SYaÌÁZ;¬ÁðŠGˆO°0Lbës9¦¬BÇAup'I°ÜCÞ¼Äù°@ÚŠ« “:R-ù›%‚Êúpùti@ö 7]<Ђ ßMR¤\æ|D]°›µ• -VQuÃ4u°“Cvz¥¼o×uÖ~ñ WJ¿B—îUñdÉ‚,Šä÷²õÚž"&VCónÁú³5!­¿ÁUoa.:ì³Ñ„ RZ2²Þέ2C–Æ2€Tö­ZÃŽ¤Þm‚h6aù•{ @ )K™uî>û oLŸ‡ú½Y“1™ÎL&•J°ŽŸ•¾¼$â=(ëæ‚é^á\xq:  ‹5&!aºÏÕò%io‘9*ZÛ0erS4a,†×…8nÊÖFV<—JxQÙÁh¹à¾v™óƒéSDë‰ûe»v© ÞíÅ…Œ·ø¸8èèÊОj6Zˉ½×HHˆˆxàlÏU9ºº|µ6Æ*²‹éû™Ÿ¸”-˜L2 µQp"¸éÖ4\cù¨täv¡É‹+æ“R¯ŠûçW*wjÌwçÿ1a}Ç()A ªýKor¹´k)sw–àã§NþšÈJ‰á‡®1T_÷õÕ@é–Œ^Ó’üè%–þ²ƒ¼€Zt@ä<¿ö˜Ž<`Ýjú=ñ±O´„¾ÝìW‚Ò'~bK|^ ¸7øgA¶&¤{Öß’u÷ÀÃô@Ñ@Âd•B„ ï°}w ¾ŽÚÀÞ‘5‰¾Á¼“òåDé\žž_ýBà×˸~ì·Â«iòR¶˜±ø–¤tâbŽœ­ID  ÖŠÙÈW.p±RiºË°H’D²$#ËfòBh9¸ƒ^s`ñˆE¤Ä%“€Û3ͪ?xÔ(‚€ çëi @2¡OK"©\ [d.`Õßb Bôd[n’aWÅ‹`e­'£dDEFñJ ¾ò‹|­ü¿[’ÅzÐ@Y–E̵ó xhZ/_ÆòÒõU(«ÍᨮoŽN·&%ï~_Ö¶Y£?$«½}™`­¨!Šˆ¸ààD‚›ÌãCˆ}’Ævy$ÈÂ{šAªÒ‚9À —ûŒüD…‹Åºáʯ& ÂcˆK êDnÄW d1N€ Zu†1d;ÙÛÃÚæE~ï5ã›CèV7Àj’¸|¡"¥ºÞµ-I›˜Üc;5ÿþ–úšÛýͯZ âAHE§¯'’ž®µÒwõƒl&/õ‰aÅ °˜1É åý÷o wÿ/™‘Dë iªR·í vÄ>ŒF ¥Z…ˆŒ,IH¢Zœ=ÝpϾë>`Ÿ‘0¥|ۈź2/¶+`áæÑù|µÔ‹ÄÁJ·)„äã‰+ I‚("à…_Y)²-¾ý›v·É¿ñ'ý>WðÍ÷íqǾ dp2fK»ßÑωÛÖsÙ_IƒèˆNÿ>\!çó2?çˆ{éPÊï[Ά]Õ±S·¦£3hÚƨÔIÙްþÓYÙßújöß¼3,¦t!HªG$IÂb¥J [+Úˆ""~T¬©g2¼<ÉZµçhVø‹ë×eòËéÖÿ¬D ΄4Åšæ£@Žcíï1Ä;äûM’$YÛöÂ?DCº½€(Þ³>x¤¯(aƒêUKcܱŒ§«òJ%©®µòôŽö/øøM@9¿%ÅJÊl>¿‡¤hãUó™ß8U¥•Ë#»”ïû[×B«O/pO"Z2`,7”) 71xì6öŒªmÕ±2öj·ïϱEŽD7pþ€{óiæs”³Ž]Xû >¦=Œ} •ùáÛ>ÌWÿ ÏCôÚKS‡<®ÅþÉOËÒ¹™œÂ‚ó9+Ü¥%Ë­!£~™@ãˆ{êŸÞ\Á"9ÇzâöÑsóÖ©CœÌ¾Dpû!¸ÊÇYzº8~U+ Bñasù䣑l¹Ø˜Î‘͘´¥™u\Ð÷k p߯ÉbÁò°ù,EùIÒ,Â}ö@óÇâ¾wûiý\0“qn_»Â»;c©«Jçø†å¬8wç¥Û~ëmž ’%ÿªQ¬>êÃîDKçvÎfÆ< cbc‰äÿ¾…”†{µ½É„¬È¯®Tpª3*v[¾ˆ¢æ°:|²p<Í\¤‡Ü“)?Ö̃€ ™°H€dÉŒ¬¸K³ŒŒ O vñ$†ý‘Eç/¾bbô?x‡’|:2¦Y?~Ú\ñÿ}㧇-ü@­V±~Ó6k¹µ—övX,ó,{ái•eO7dd›àÙ`ƒ 6Ø`ƒ 6<DÒøµ¡LמÈ~džÚΞøò ±&e}6Y¹z yÙ䦣1lK‘ð©Ð€Š^'Ù±ÙÞÞ¸ž™Ì·7ÚÑ3ÚÇÔ l:ÆÛ;ýk‰cÍwSXw³<ý>mŒGf:¹ŽADµ8ϲKW¨PÂeÌΖj‹Ÿµ´ªdÈ&#+“Y ÓbÆÍ¹,¥ªþŸëÛñq­›œ>~ƒE ü8É‚tÜÊàJ5[ŸdÑé«TðóDÚ´™seºà/ŠX.ͦw×í´_1›úR:Y*ìUz’¯rÍ¥&=4€é, ?Ê~]ú½Z ÇÌtrt.äý=ÕޯФ”/ÎûˆYEhw ˜é³ÉÊÑc4d‘ŽáNpòrcìã÷sBmO´›¢a Ûͦø¸‰ôòD#€dÌ%#3³YE–A“Òž;ÕÃ,fÌ YDÉŽšÄf ÚŒ@dIBÎÖc4å‘~ c`®ôeÖ†V ¶uz+»*ñ³‘+kæÛy:†/ìIp¨–ãi±½Ø]ÒAN ¡«EãVóøýÜUÊú"nŠálp'|‰¢a·X·i•³8¹s å>$ØJGÏe÷‘ÞøÛãxÒ5te»RÇãóΜäBBUJÛÅ)÷Pœ•Ñ4íò%‹w½F¥:ž¤lŠáRØÀ§ºª§@Ÿ3o¢w¾_¶w°;)’žµ¤|7“EǚлÄ9N'™êÏÛÁª-y8–©O=§l?áBùö:ìYYyª–:‡æ‹ðA"÷̯ôïÆ{> <fCzK×v­bçÑkTéÛ3?q›½ƒeký‰|« ®ÖŽÅ@VŽ”I,ûl*Ú6K öY2a2›±HùÁÜÂoÛ•É;=‡>=÷ÑeÕLê˜ÒÉ0*Ð8è°»]-ËdÂb6c–ˆäÛW§bh7ˆÞU=±d¤“e§C§Q>cRH‹‘œ¬L2²DIØ;U¥ûG¿ÑåÕ±øo~ŸHƒ™Ì¤dŽo]\%Ýâ}H‰¢š£Dö‘#œ”óhâáŠâqN'WëöYkÑelâÃéz¿^7g‰§¹Jɵ®I-)ܱ‘-q¡ é†|ëWtjœü=¤/ĸ™ yèM ½Ç%}~¦ tyçÝf¬¤L©W©ìíŒF}€‰¯ÍD÷áBü.|þw6ǵ¤¥‡Cj<'Ξ&«L[¼Ìg9cÊÅ@Y:TÏß[Ì4ôoù@iÖÇR•w×daA…²sÉ3ä‘“A®ÅB‹ c¦“)¬ôtôºêÔëü›· ¥\h'ì'9dÅ8X|kw4e`ÅË9®ÇPÁ·ÿ:ù+ËÈ{œ]³,`Õ¹ú´6ç¨ÚHÙ6è±d1»ŽãB˜/Á9¹¥#V!ß#¥²üÀîÄWeð+Eè…ÁÌÙÖŽ÷ÂS8~øé†QªH)qõtÁÏùóÖûP½u]@O ÇYµE&64€—\L¢.é¾Ä¨ŒlÖ“™“…½>›“‡’Öé}J’ÙˆÑj­ É`Ä"‹¨í˜r R¡R½ §’ÒN{à$ñ~éT쎛Q6õÄé1òm¹ôkŸ$3Gƒ½k JW]Ìîc=ñSåDê œC¼PYÇSÈÊÅ`Ì·y¹„Ò¸[,–£b§r¨cØr9‚Áž9G°O׈.v€o ÅËO'öÄkx˧8žžJñÊþ(¥C|×}*9ÍßâÍhäŒt²ì]pLÝÊ&EC¾È¿R"÷älúõ>H×Õ?SË”N¦Yƒp3Žw“Yµü®p䀳.÷ûŠ"Ȧ,«~ÈHGïMƒ.ÃÙ¼u(aaɜܷŸ”r p Øß~dÎN/ÌH¥U°srÈ3èÉÉÊ$oòVOfU@'Z–tÁ^Ëæ¿kPáM0žžK¯žymÓ4𫹴kûÑ¿ìYN»Aª} ¼”°Ï«Øä¯nù„*³žŒÆœÓ,˜¼7ÿ"Äã4g"±÷x|Å3¿™ŒO…b(V3ÿ¨ ¥Ã£¨¢Ùʶ“>ÔõÔHÉ& ’l=wiÒ“™—Ç­ËÛXµl >}»ç— Î;Îæ#®e›P1à·rš è3s1›-dædá,V%ªÕh~[Ò… ¯@ÜñSœ1EÓ°x Ûf`SýÊ´p;@ìqphåã½™ÌH²“Y…XÐß6pÆÀùµ¿2y±3üÞƒbö±åÜuì"[SÝ÷<{wÚ£jð -_˯ÛPÖ½>†bΕ¥GÀm>‹ŒL=&³’l‹-jD³ž\KW·¯d÷ɪìòújw"(´ÑöÛØvºΠíþ=íìAÅ:®Üظ™Káoô›ä{®P (f ©×ß| ¡—f±9FGP`sJ90 t:{”J;4gq&=/­#Qõ1úÄ7'ä` 5 V‚vý\±?“HrL"ÛëGu5–c¥½¨QÂƒó»“ &yx·ŸÎôI5è=g6«çë4 jö⛆€9žÓ²Œ, (ËRÊÎ$“¶{'‡S5Ô|î«ðaMH*íq¬Rƒ²J=™‰ Û½ƒ žx½”–2w³'­uÈFŸgÄÁ+˜ýt¶lð&À³F, '\¤Úˆ˜®qtç9nÚÒ-ÀŸÒæ}¬Ûª£débT7³åŒu½íQË2³ŒbK¾˜ŽSûå¸ÃÝ’ý@ ~›Æì{çómäè1õdgéÁMz þ;k-Œ=ή ÜkŸí%Â*—Áq_\ÁÍpòÃ~–A4Ž8GF,ȼz™£ösÕ¥ D}3Ô¬8R .˜Íf,>!„eŒeí¦p‚:G"­ßęޝ-Æñ‹ü ­‚“Þåµ`!óôIŽœ>…2¢*n5Jö1¦ãtìÞú˜þ¯”Âñ!S¼þg±ì2žaz´T `Òo-Pw¬<0óùý”,àBÄÕÞÌÝК¡5ÎoÛÁµnï[«{år5öwF^‹ã ¯Ø¾¾Üv„GyòÝïòéÐûè«þq¾n“Lès%4: ˜ŒMj%–<#’ @¥QÚî¼½ÿƒ à‚W’eòôyäää>¢ä׋ µZ…^ŸGㆵqsuyéN¿”$Ë&#l°Ál°Áž*\EÛ÷ÛÐüW­sMF-ÿ‚2€”q 3GñŪTtŠ<.¦]dd¯ú¤üõ%_}1Ád æsQË…± Ò7é>> “$Ðyêf*=æ;¥”4Ò ×8vð0CZÏÆdÈÅ£Ù&}2†ð>âÝ)ÃI5·â»˜Z¨­w’]ÿë#ºM;£½Ì€N«éþýtî1Œ¸w[õ™'ÕÚöeøGQhŽüJ†›Š²~ïô-!oeà”Kܲ´fÒÖš(ˆ?rœ[IÌz½Óeµ[1öø€êgq©þ*Àr#…4á7Oáí˜1rðéø ?7`÷¸!ÌIÈB6™i;emýîëcîMvÏùˆaÞÀIeäíÔüÿõj\ϸ®QŒ”«1pÒ0*SBž=^>¸Ú)îlòN^;’W'ŸF«‘Ðq9]¿[Æ!wƒë-N:5 ÂÉÓWí“¢yû§1`Âß$f™ù°ÛÝΨcÚ¾ -- œòǹÙÄi]ðöÕ¢´aM©ré*ºEñ¹P™>ã> ÊìüÇRöÝxgÊPÒ,­˜¸¹"PyÐOìlМØáæÓƒÉ”LD5éÀ7=¢˜¦ ¦i÷wPEƒ–7©°ÿk&vŠâ’¹#ç×Ã_ ªžÓ)Öùm^ý>‹¢Ó7F>•ès×94ù2†‘÷ËöÒ/¨¦0Pü‹ë¼ß/š_”Tz¥7ÃGE£#áÄ÷L3š‘’‘:CçP/Ôõ…ùtö;7R³(ÿÁ2&·ñ$Dµ3¾äk iœ\2Ž~?îijRs|8Ž%Ì[±–ô*•iS6ˆÛ•¹°7†- -#—ŠÃV0©¥ÛÉ•F‡³£æ©“7Žç¦[<3º6`²$£ö*EÛaSPÅJ… Â^§C©³#÷|™nìýy[’1r)Ñûg¦õˆÀAõ é•~æ|÷öò„üäÅ ùÓéÔúGó¾‚J%`qô¥R߉LªèH`û)|Ò².)v"÷Ú¼;ò=š—uzø8ÝÄGuµÏ\r®Ou÷žD–YF²D0|ùd¼n†ÊW{ëwž”òsgÓO©;ÛÁèBý~Ãx§nÏž»ÌäÄŠéLš¸œÓb í?úŒF¡¨y‡?ûN¦û°^|™aD6Yh?m;Wðá½_ãéߥ!S5*d7‘>eR[?ö¬ŠÃIk•!çZ|þIŒšÄL»Q |%ç'Z)ë:13GòéÊt SOòîÈw©šº†/ÆÏdë=ë6ÿÊžAsùj9”ÛÇñú„=˜d‰Áí£õø­¼;x"ÛjÕ£‰Ê•âeû0aP@›æ)Lù´)QW}iÐo(ïu©PIôgˆB­ÅIëJÉүн2õˆb’J›ïÑ*¸ ºÙöådú¶‹ZÊ!Óç5º+Äÿ6é((±×jq@…RPá`gݸ!Øáä¢E- Øáæj¶ÞÛW™÷—Ž`PûÆ4uø–ìͤY%‹ž›.n84Àÿº+MÂT€Šê‡’6á;ÆvmH–‚޿+Ó>+³»åíC ®I³èßj²ÂÏz£X8*ÈåêÖ.²Ðþû¦$,^ÆñÌ’´»4;Ç-C_·.…LlýWpóCqs9‹>«ÍDA¦òkŸñAƒ²èóJâ}>‰ÊÅŸ–#§Ò»i>}=Š©Ê24ïõ.Ý£ó·o˜O.bÄÄù‰7°ãí¹ì¾„Ï{­äõÏÚÓ­c&¹"#þúž³ž£‡·£k4 {ÿpªÖ¨Ç·oF1IJÛCèRI‡åÔe2]ÓÙ5{Ûgɘ 9”ì7QŠu(ŒÆ—ü“¡‰Ç“êz•i¯Öç‹„Ú¯Ý~@xöI>ë\/±P¶ýP†÷®‡ÿ}#{Ç7ô˜¸ ƒYâÝöóh9~ïþ­µÐDéL`éÞLü9¤›Ø9yàí킵 󹕌þ~;/éÙ¸íWv]ĸð 6ìǼ4=²:NÛB+/‰¼,g|½ÐŠ€ ……íƒkó›R¤tƒî PWL·Ï¢?¬â(˜B‹ák°wt£áÇ«Q]„U»_÷‰âGe­ú¾G×H-XÊ¢Ú;ž/¾Á-³‰ÆŸüI_—‚Á~…n® ”˜Iù†ŸmÀµdFÍãÍp‰Ë»¶sI«¦nƒJ”çôMŸÓõûÃ(•2ƒÚ- ÃÄ ô<“«ý:Rc’ Á‘íñcWÂHÃñêƽÍÉŸŒ¢k“2ï‚íqu5¡´: ÷úÛ»¬¡Ç×ó©ãâ‚·#J@áëJúʹLøj ‹‘Ê}¿ã£ÆÅðÕÌ@ú±ÃÞø–äìP†ü9ƒhEþíñqË?¤ûŒ‹89È è¶ž7?ŸJÈ‘é9i^UZñöð14 ¤P”³&0vì(ÒÌ&ŽZH ÇžÓ9Ô¡?'f#+;óÓ†{V‚ˆR£ÅÅùö ÎZB·¥CÚNÒr|h4t$·>û’‘¯þ@Ž`Fø:3~èE%·f ìûƒ;´cÝà?˜Ôªž™§¨¥17‰W CDѦ?ÍÓ`|—(>–ªÒoÂH*‡Ý`§c&šÛ›Ð\ÝdD‹LÅ÷~¦b“·ùX胟‡ý}§^•hìíÐhªÒ(t?SǽMóo„4¬ƒ¿sÜÕ*œ]¨EkBNရ»•_kº—¬Çkf¢sq$´a{jÚ¹Q6²2i5Æ1´U=tJ#™ÚhúÖhMŸÏ?ãÖð1¼ßey˜É+Ù—ßG»ãê¦}ðWA°Ò(‘r&Ök(€Œu?IÊèoø¤óÜ4– ÷ŒhàïŒâô,^ºˆì\‘®bÂ+ù;ˆEñ^»¨Dsß|ΟÔ'˜ýíBŽ=GÌ[ ˆ3#ѹëîÈaþ\ɧ+ß³CFÀ§bgzôOgämûy+’$‘@@@ÀË̳֓µw5Ž À §¥gŸ‡ÏÒÏœœrssñôôäyÁ˜›Nv޳Âí©Å¼uª4ºÕÄ[§zæ¶qww/ôU]çZAÿ3gŸ÷22×®]#°XàcÛúo¹ïÍ{ý‡FŸL¦‹Úªóò¯¯/ …â)Zç‰9i6¤°úÓî¤÷_GÏ…ÿmŸ4âH›5¼SESÈ6÷·ù´úÁZÒú©$§ð¶ýŸ¨,:Ûþdm?‰,=î³'ѵ…›—Eá+>ºeŠÀ½_×Þ¶>©üt4õêB2éÉʸIž Ã!a/Ód݌֡ÎO¢!È:5Ÿ÷'8¶>öžø:«žÐg|XŸe é×8wá$137öÝx;>¼÷OLJ¢‹§ÓÞÿ†7Vx^¾Ý'{ã‰Û-„]~˜öõõãÖ­4TJ*•ê÷Aȯ|‘_{ËšS¾ŸŽtëVÁ瀠¸¸:Çú?wØ]çPàø½V£¦^é@«„ 0作L7à¦-ýkƒ 6Ø`ƒ 6Ø`CÑÁbç€âf*Ôæ’¤û6Ï{MSØoøççAx.t>ˆTRÓB(îU–@Ý£Ÿz8Œdää"›ºPÍ·poþ;ü~’ç„gøÞGµ_y(lOÐöÉŽðßÑ÷ˆg„"œ_E9„§žj~?¦‹L¾­wÐ E9k„"£BÊ Ï±õ¢¥gŸ‡E/‡E‹Œc‹˜4g'’EŒ†šŒœWÏ"HþýÈä±ðœåã ¼€güáÑ¿¾€aÞ'•ï§“ÙB†ø¥ËܼٗF%ž¦Í3Ä]ïEÃJOSÂS("ý <“ÜÖ¶ OÍýg÷Î…g¥G}ö$ï Ï™§Ï®G„BÛiá ǬèdP(„„-ò’O±lÊH–œ²s)Ú @³'JþæÛs¥½3î™óø|ØAºŽâ«æÅžÐg|HŸe ×6Mâ£y×)Ò˜úêÇø´ÏmÍ$­y>ósZ? ωáišûŸ9âúoú/!â‚‚òÃV*‚ÉtwLj("::"h4¶òÉ6Ø`ƒ 6Ø`ƒ 6ØP`5 €^”] ,8:¢[ð É ‚ âååõÒuËl6“‘ž‡§Òó¼3QQ;¨% Fƒ™ÂÖR(Õ¨U¦\fÛâõÅ“™ŒÌ <=<±HÒÿ[^ˆ¢@fF& ¥­Vû|çQ!éÊÍÉÅd6áììüÂÐ%`2šÈÊÎÂÃÝã…‘AÉ"‘––†§—ç ï۴%''ãååÅË®ÈË3`ÈËÃÅÕå9ñUF¡v@sÏMɘ‡Á"?su8…(’z3'G'”*%/c¸,%%ooïJ¦EQ )) OÏËoE”äÜÜÜâsoATb¯QbÌÍ+¼_#+±wPaÎÓc–±UA´Á†Ñ?T(ѨUw“J’‰¼'] *4Ø©n×<7’k°<“-VhìQ[‰1ååb’m *þÙ÷´~™aMþæ»Ê€$!edؤÛl°Ál°Áž²ÁP !œ••ùòõA’‘d‰Œc-m“™ÿ)ù—d$I"=#ýÿ=/L&‚YÀl6¿PtYÌ$é_šß…€d‘,/žìȲŒŒüÂñë6233_ÊùñïÈaÖs•לœñå –¿¨2ý"úM22YÙYÿÊÉõgé}–ͧ²Á†ÿy­æÎ´1Ô†Báß°ƒ/”¶!·Ál°Ál°Áî[ÝýY–ñöò~éº`±X¸‘t㥤݆ÿf‹™ä¤d›ì·nÝB©TâèèøBÑ•““Cž!w7÷Š.£ÉDÚÍ›/œìÈÈ\¿þBÊtÜÕ¸—v®åêõäääàéáñRÒŸ˜˜ˆ»‡;*¥ê¥¤ÿ굫6™.âããñòòBDl°Ál°áÿ+â®Æý¿ê¯ÍêÛ`ƒ 6Ø`ƒ 6Ø`ƒ q_m@ù%,Â'Éÿ~ùU[©Âÿ HÉÆ„;ª@~!¯R’dé…¤K–^TºlÚéy7/ùUcÏS6ž'gd›Åµéløÿ>Ÿmýø¹òrYù_ú›Ey9ð¿wX¡Ë=µãììTª—Þ1·Ál°Ál°Á†"… —Wðs•ªà)ài¡*ýÈnÄÎç×éx”§Q§z)‹‚ÿy—7ñã¢C8ú–¤v›Î„»¼<Þ–`IæÈþxT>% -îò\N€Ê¹'˜÷ÇV’Ò² o7”f¥U/°oûÿÿ3 `ÉÃeRÒa‘´ZrëÕæVXqD£Ù6â6Ø`ƒ 6Ø`ƒ 6Ø`…E­Ä-öºÝ±`4Þ `huð¼ïLÚÈSw"hì)Ûz0#îü);å"gO+ˆ¨S5y\ŠYÅÚ-GIFF*߆÷ZDâ¡U"dîaâ´2ôF_y7£Ý½&‹ ;×ó׺#¤É2Qmxµq5|ìõùíWÖ_¸F–EŸÏ[$Š÷,<Ùþg •;•G €û–0iéqœƒ+Ó¤e*ûZ—ÕW¶²zŸLçÈý:‡ —È¢yëó–BææMZÎEY@iïF•®ƒyåv@<=ŽÃû6“àÞ·Üí¬Ùpœ[ï:¯òzý\5ìûi1‰é$ Eí>|Ò8ð¡}5f_æð £ÁÌõ}økÅVâ„0Z½Ù†è’.(É©l[|ƒÈÎ \åœD¶ÿ½Œ”Àö´¯æ{_ !õ%ɾ¿.R¼q8žö*ó)~ûj1d;]8]‡¶§øƒRÈ#1¬\¼‰ËBY^éÞ†ZeÝQ çð¯sXé:ÙT§ï-D@ ™õ£§²KVáäÞˆ·EãˆDvòVNZÄqEUê·¢uƒâ¨1qaÃ2Ön?Léú^k"<ÉbפilÎÈERÖfà¨Fx>exâ>ß/ÛmÞ¥s¸†¬+Û˜ûón(]®Üˆ¶m*ãJ·­cýÖã$!aÉs¥z÷^´(§fï”ilº™‰Q¨ÁÀO›áó rS±üûE¨Ü %í”@‘p€?×läè5J(jä²-Ñ1ˆý?üDLz.f±&ƒ>iR°Ï=WMç¸Kº× zŒ|KˆJ@°\eË«Ù{)Ã푲øÑìÝ>Tw!þo>±Q)";¸SºQZ9_go¼ ê–@–ö}`"Jº"ÂÃÇù™ƒ[q¬øa!ÇÓõ˜%‘2íߣ«Ãv¾9\†áË ÀDæå¬]ŸF·Z`ü/~[Kš(àѶÍêSÒ¹(”±ÄÃkYõ÷.®:EÓ±C*ø:µ LY´”3X ¸óº‡k°¤dIŒŠVÊã ç’xþ$'â5”p»Êß+ö“ŠŒÙèBÕŽi€ÝSP•{ó"§N”¯[õùfà쮳¨ƒ‚ pF¼ù¹ÉŽ?ãïX WAâYõé bE->MéÝ;ë8žÝ¼”9ëNãÑ€¶Í›âþÆ“Md]?Àʵ>Ô|‰À‚%…£{O“¦*IjÕ©ìþv>ÇÈô±W¼ÀÊ<Êâ?%ª¾Ô `7NlgíÒ]ÄÉ£#Zv iõ’8=Ja=Ô'‘ÈJ8ÄÊ)‹9¡"ªQKZÖ Bugê9s· ÁøyhÒwðÍÔ­èÍJ´x7ªX³$† .Ç.c}FG¢S²`â"N‰Å©Ù¼5Íj "‰=‹W²íÄ5rÌ2-úÓ«zjë”Ì>4Ÿ?Ž5¡~ÃCÌ™¸œË‚³/5º¼E}?3)çv²zîz.*XN­›PÁKõ€¦…4vþy…°•pà:«?›Î^A‹W@SÞìiõïfãó8½ãö¥Šèç„È-vOù…Í7s0K ®Û‘ üî{×LÆõ¬™µŽ³’ŒÅdGéÚ­iZÞÂîµk8tõ®}&´ﶬ€“FQÀûû‹©ì–ípõjD¿Qè°yý +¦.ᔢ8ÑM[Ñ¢V1TdqvýjÖï=Kfƒuû¼IÃ’Yìœö;S³0Ê P§Õ{oPÑþ"Ë>ù… 7J„½Â]ÂQ§] fÝrbNg£V (%–àºôjE‹ú>^¦°}Ñ5*t‰ä¶ù1]Îgsöãà[œê­ûа„Ë{Ö²tÕn ^D·í@“ªØßÓέ=Ó˜s¹"Ý»Dã©áoðl‰ß·5+÷/‚T¦ }[Õ ¸‹ !÷3~Þ@âÍ,|› ¢_m_ćʶ¤“[X¼`I‚€sH-Z·kFHÎ~.ßĉë÷ŒK¹|ÐÞ‡g³5Ë€‡zý^×ç=·Îocùúx‚;ô¢Ž/`Iåèþ äéJP5Üû¡ 7!ç‹W›hÜ%×¢HqåœdÙŸY„5ÇE!ƤX~Ÿ·sý^ô«â˜Ò.²}K Y%ÚÐ:Òû?.+‘—|åk/S£O=´¦N®ù•ßöÜÂN% "R±hºµ(KÎîM¬;x‘LÉŸæýß F1- 2Ø>a[³ ÈÊZ¼=ª;öª«ÿk­ê¤{”íºÊ–ë8|-‘ô¬`Z½ß–HíCl˜„1çk&®àZ©ªÔrÒ¢zNL¤TNì¿@–6˜êá¹l\u¯ˆòDEEš†ÉH»Àö ‹)9¾3%ESòI6.ýŽßb‹ÑÌ-‹Å³?´%*RÒ-›}[ÿdGøû4(åÄ3å‰ WزýºÊe)ç©E”%$ÉwHÆYŒýñ"®íªb‘ÈÉ1‘¹c»+èˆÝ_‚:Ö0ædŽÄÁ/"Jº>0ΞöÏ~_ª@ ;¾ý3v%(]ΕxŠ˜µgy­§†]_°¾Ñ|šk38ºq »rûRùÌbþ8Š2¬Õt×8—Àµ‹·(éZ$*Ùέ¡¥µìÚx–˵ë!nbÜ̽Ø—"ÌÁ¥â ÿÇÞ{GWU5ÿÿ¯sûMrÓ{o’!”@€Ð¤÷ÞA¬€ MŠ  6D¤H³Ð{ï@H!Ò{¿õüþ¸!?>~¾>Ïç—Y묕uoÎ=gï™=3{Þ3³-œ‰aÑ{L´½Éî}jºÝ€M5ä§ßàô†fy$XЮW0¥™ÜøiJÅâBÿ4¸)VreÏg|¸»Œ&­Æë˜îc㎵¬?á΋¯OÂÇÓ¨¾ºž¥Ûs.%†C"°’w/✲~å¤^Ûħ—ý™ßnîø‰Õ'KèÐoG74ʾÆDÈQ)eO\Wÿ/»8üi’¨qr÷ÀBöGÉD‰ü|Ð’1瞥ýÆö¿ãhüs&ÈQ«„GþCçþ‰Tý‰¤Ü6à;º¶•R<-‘ýÁÄG}’6áûvJŽ­!Ãé)"·9wf'Ÿgà«Æ~”ï·obË™æ-õ6À…'x{î^Äî-h.‘àd÷`¥ëkEÊ +ieÅÍßpÏ¥B<ÇOîFî;™^²K\++ßV4s¼ÃÉ•ë9êô"]›j™72h3°5– Ë8/‹ g¨–ÒÂ;ýìgš,nGiê î:DѦI ·o\çòyg¼ûDa'<дÕW7ðáöƒœIîÀWƒ#°C eÏBÎ*úá_AúÕ||ч…­~'›Æ¬3lرŽOz1mñ$¼Ý­áîNŽT{,G./åÂ/ßq>rmRÅzJïÞáúñ¼ftÁ¥œ\­Q©D<ý𡳾oŸß`ó&÷ÇZyÿÞrÎÿð:§d}hÙTKEâÞÙíÈ[qr®]Ë=ç^DÊnqæÔNdÞÏÒ×»‚›{nRhíD“HO䵸X)Ùâ^íI¨TŠ qÂʘËñUïqͺ/m¼J¹›²ÏNÙ2+ÚWï ¤µ(ÔÖ”_\Á¶ë¶ôÆÇöÁ\V\øŽ%ÛOrãnW¾ÑÑ@Í_xýã+¸ lES…-®6&*“/pîtêæíh_Ï¡}‡PØ æ©@³Î.9µœoŸãàM}‡´Áéqþö£ÂZ•Drfån­ˆò®æúù㜠ðÁ·y_¾ñ+¹-q—ãè¨~‚lo$轞3®aElP!I—/ph‹3ö\ñ lvf¾]Ìæ[QL :Ïa?Á!R¤B)YÃ¥Èy´²L:ÊrãÙùë Úª] šô.b‰W¯QâlMd¨Ëãmž˜É¾}UtÑŠ¿E-Jå¨ÔòàžJâÙµï2î•Ö¤·ž„/µd%ã‡õÇh6¤-}þ2ü;숀Ôǰ¾LÖ…±‚ÔË´­B¡²¢:indoÕ]ì$µ¸„µ¡ùÝ3¬Úp—Wº Û³CÕíh¢@H<Æëù|Ô`^ åÇôoÓû¸ÁûJ­ñrÕ±ö—||;´ÁÆÂâ 6LeIœ¼ÄÌÏŸÆ÷o°KOœ¡Š´„D ÜiêF` å…ðø!A®T — ÿr›fCU‡v”Ѽ·/–žìõÞaç§6¿@Ï'æ`›¨*ÈàÊ¡LBGÆbûg$¥6‰Ý‡sÜ g¥Ž1£ŸŽŠ|Ìþ¤±^øÏÐÿ9X&yXIK¹kK BãYÔHÔHÔHÔHÔH g” ü/»Íé‡v¡õ:ó{;?¼}SZáÔš6ÉñTHë6s2_ÚöiF/{TÔ üò>ÕF wŽîAì6†¹C›ý¹ê2•‘=ÆiëŒÄ„[êR®×œf×·e8Ìж>(Ú²÷ãD û4ÇM >Qt/bÓe3@n*¯$5%…È©o2¡…Ð`ãm®0N8#õO WÖWâ:q"Ã#]‘¶Ég×§ õm†“ÿ`f¾D %«®³æàJ+ÇÐÄFOÁ½J“Œ½«íííÑ`ÀîÊBnçPÒ´ ƒ'ùÔUüÝ%çƒ(yt,Sá؆öAçI“HaâöétŠjZ2hz_¼ÊÔÜþ<ìœ*šÛæðã’#8ŽK×&ÖÈ•wkz„ç±æ´ôT«¹}x5Çdqô‹Ñ“­SÄ™;I×DнO8ŽH]šÓ)â6çÓ”uaˆJnM#hý; VéÕl{ó&UÀµ¤]H'¯(œAsúâ[aMê—Éäçß"sM9.£F3¼µ'òè|všHÑ {?“Ñnëú¨ ÀóÓ÷^&Ï[ŵ£^ôþ¦/- Ék÷qïÖeÎeåbrŒa討8è9ûI6E5I\Y^K³†1ÔS!Yôÿ&žÊ¾ÿrå×Ãc‘´ åd¢¡A«K™[$q‘iÄg+M·8°Â‚ØŸÑ]RKŠó|p(­Ÿw‹Êèôâúóˆþþ'I$(ü+?ñÙg¿‘% ¤ÛȱŒè€’|ެZÍ/gS¨’H‘ùõaæËO`¥øçÞÛTC^vUä’•j6óW“âIÈè<å}&´7°wÖJ®’GÆ”gù>p<OSñÍ+߀ÎÞC˜ózglþ¶)¬¥àúa¶îµføœ¨!ýÄy’²íé<‹KëW±ùP<Å&O̞ŀLÖn T®fÝÁV¼¸@Ò~]6…“‰2l\;ðÜ[chò_XMö4mÛ†qýÚü)=*<â“|øKÎÜöA<åCŸ/ú¡o‚é‡ýd\» ¾MÚÐ6<„ÓÉR$@ö¡]H{Oaî`ÿz¿Á%oµ‰ó¦M½}nϰ!ah¬r+•“kÔt:4˜R¨HÜÀ‚ǸæOÂY?zÞ—p?º5‡È¼‘ Þ Dу¶ý‡Ñ»µãCò ‘…ÑgĈzßAWq’;è¾g 1Ôtp#ßo¾La‡þ4éOó:[¹ïêEºµˆÄËýa­­ðhIÈL’ Íú_4ˆ$Ÿ?…Ïä%Lë ®÷O’/eQfr£ï˜þøDÚ’Þ-Âhƒ$a__·$6®iY|͆þöã.7B» £µƒ# hÎ,ãn¥HòÙÃh£ûðêÈ(ÂàçoK‚n=ÛafwoÜäÂjö'%P`Ý’è8¯:¿)Ÿµ¿µcĨ ®>Œ~¡)M¬R¸ûá—[5ÐÛ š†ã¦¸Åwgã˜×V†T&G&S¡ €ƒß¬ä×ó)”¼¶h6}¤œ_ýY™Ìœrˆæ}¡)p`¤֘ÒN°~–¡‹z HK þF)¡ý[‘³ï{VmŒz÷uzZ]曟䴰þ†ŽtâÕ¯Gé§ IDATᎈhÔQ(¤ü£úâeö5.ÿE±ÛŠ»˜švgtß–¨°eÏs‰Tè9·J$òû t–@…”ý}O’6*ßšZ õl9)Çp¬Áz6sÍ–ÀÎQ4=fKÜðÎ4•^eÍ‚,V³þˆ£ fàÜOyÊù«^þ–‹URæOÏ£UÌP†7Ïà›¥ÛÉ”ÒmÔDÆw—sxoº¢½œ¼¨¦ë¤–d%h±¼»‡CIZzÌýçm³Y›¦bð¼ééRCâ¯ï³ä·{(¥x…=Å”WžB‹6p¶|IYqU7'®‹;îöYl{ï+ޤåQ-Æ1ïÛ14)9ÍW?)·þ†ïI°rrgøk‹é ÎåôÖOYq¸™Ä†ðc˜<´.AKP '•Ëö#‹D·—?HòÌá—E 8 í̈ÉÐæÜ%#ª+•d\»J^öIÎ$ D˜Í3½Ý¸øþ÷\,¿ÍÕWdz!`,ŸÍvâÇ×Vr]'¢ÒôgÁ‡½qB@imZq¦ìÃmø ¼Üͳ­x¼[$siIßQ#ñ­Ç»%uT$ÍóóÎÜH•:Ó´Õp^žõ˜Žô{Oÿÿ‰wƒE±îÛÆ«ñj¼¯Æ«ñj¼¯Æ«ñj¼¨÷‘ÿ_Óöm»Ê™õ³?n,OO}…=æ3ª™×èé…Jg4ûö–®¸Úk¸»ë#¦ZDÎàÑô‹Ôsyß5.ly‡gÇeô˜ñlJû«´ÅÎÞ; @)¢#®r¨t@£”bð §eb&¢ °ômG¿®!ØÌ­„*ʯ°Ã¶|ð cFŽ`ög?r»¶ (¿ÆA¥=Gb‘#Ö*0øEÐ2!ƒ4Q{s0 @WšI²u+Âm]>é…wIð %5vööuÃtÜ­±pðÁߦ†Ó˧2~Ô|WÏ'Îòám³ UàÔ¼#ÝÛø¡Ö›€jª+¥:;3HnãK³-•åÕ`ÌáÜÎÃÜ̯å~ž¬…WžŠ ÅÖTj+H:ü-‡-G1güÂÜ•Häj*¹sö4ç®eQYw¯Ô>¨¸Öx[(`BÄ‘ŸN$câFÏ”÷ï1öµþ<||V-ÕÕ&­ƒùý4Þ•›Ð–¥“Uì‚­Rbæ‹_8­²Èó)*ðÃY`DíJð­D’LµÔ–y˜[f‡§Ü«{ɤVjPQ×ÚÍ)ˆ°»¥iï‘SࣕÁ4 jIäîü’üð˜¥Om v^ÁtÌ/‡1bô4~Kµ£ßàÖæ­ô?½;•ÁÇñÚÆëÔPEe‘îÃeÊzø&’\ÔðÉF †JÊK¤uÝÎ4õsÀIr<Óƒ]qé±8ãÜŠØ ;ôÅ&ê`O‹t÷¾MR!äû„ÍÆAÌ<†6>*)ÍUÿ ,q0ƒ¿`¤¶<› û(šQÀ¥£»Èð™ÈÔ¡ÝñwP"—ËÈ]ñ´—¿aSF.ƒÙÏÓÓÏ–¿\[+Sa•·“…ãF0fÜXÆŽÁˆ…;É-<ÅžS~ôêóÐ3¬šbk4>q´" yˆÏ—ÎlAt÷D¾:!+®–9"ö­_ Uö >Ýp›±óé„» †Â% ù)¿&qttÀÎ^õ÷æêhµD ²âÛœ«nBNA<莬ÄoX/üÏ\çŽ <1$" •ÕͰ1‹x…Æò_ª(dj\Â:Ñ%Ò•¾n+W‚cÚâjƒÌø QAáÒœNq‘8KïŸQZDqž?N38­ñ"01žK…×9²áWÖ,žÈèáÃXôý~2uÿt¡€€T¦%ûÞN6~±‡sxþ)gnÝØÏÁ¼<’~ø˜ƒ©6tõ/¥òN.e5úö­Å î&§’–Cú‰oÙ}KNhïéÌì寮_q£LM«~Q¸vb䨉LìkdË”7È‹šÊä1ý 4îà£yã*‘[Ù )þŽó%€á—R¸¤¨$ù×ãdhCýú¿Æí}gI½›ÎµÍ Ù[Ý›‘ã;â%•@B<úV“xfì0Âļ»ê:†ÿªª" Ri‡7Ìeð¨Lûz7)åÿÃ-ú$¶4³)§¼Ìà ÎËíñ’Z£¾—G1 ØxM{K¤& ËÑ×¹°e1ÆeÌøgØšUÐ7i©J½Ì€V„+¨¬p3û5JG|±@q/—™ vê:k—ÄUE0Á®*ävˆu~퉖fð Ô–ç’iNˆ½€ÊÞ®måí‰SøMÖ‚§&ÆâöÈåÎ!ÄtÄEfnæ/RHQ¾NR³¶°ò "0!•{è)J¼È‰c7)®[\;Í:¶%ÄÅ©Éìbׄ@› Ž4‰±£·´n!q ÚâÛ>p‚,]ݽB!×.¾Ç¨1£xþÝï8WðpÔú¾}îäÍî\Å5Ò:ÀJãÛ’6Îñ$dêÑUº›ù¢pÀ[b…ò^µÈQÈ®ñý¼§2|óv$Pm0ëƒa'óÇŒa츧ùäb I%eÅB TãîHU*™ÆO¯ºº–ÓX‰Ë#â¯t k·pêÖ…A•=N±ÿë7z/-ü UršÄÅîQÄ'ƒ†1rÔ2J]Cé호7­é5|¢½P*Ôhêº<êoÿ>‰Ó'GJ­dî¸\ ïEÿ’_áÜ–yqÜ8FŽÅ Omë–´°™ü…B²µpòÃCú€/%G—rÆ-šÎn¨šÒĺŒÃïM`ìØÝ„m\Lç†ÆÏ$¢t¡MT6W–s»Ø¥D‚Ò2ÓëŽQb݆ñs_gáÔ¦\ØzŒ;UФ}kœœ¢4a"½ZèI[sž ^ØDby:çJ¡²â.)iù$Ÿ_ÇŽ_Ó9‡Étüvü8‰¹¤þº„]QôÝ@ ‚Ô›Ú,™z™ˆI½i¢4!µ´'8®ºåÛ8ŸŸÎͼVtkkIm­Á¾)]‡NfúÌy,îʾ 7ÉÉËæÖO‹Ø[Õƒ¡cŸer+‘ÏV¡)Ž‘C™6}¯>?†X4¾<”IuÂ/ü´æ,î_å• ±¸QCQiÇWœ Ö§3gÏcÁ?N¬;N^Y×Íç°t,&´ÅÓíWmÚ!Îf§ãмã^ŠcüV¦ ÉèQ?Ñ´OW‚­¡¬Èh¼4í‰óºMRYƒ“‹€òYÏõ_éôz´Z# ¹¶áuöë0zÜ3L×ñɪã”)ýh7¸>Í{ð쳃h¥¹ÊOŸìÁ¾Þ>ïãÀí»äû’]‰vDDkçZnþø3é^˜­bÅì÷In1Žñ¡µ|¼ê•R5îÑ#yuæ«Ìš2ˆ`«$VŸ,ÆÎÇŸ6Du¨Ξ”&§S›Â‘÷ßäœØ’^b˜ß æoº ÕYœ[»S–“yîé‘ôt/ä³µWЩhÖy<¯¾öóŸî„Py‹Ý—òPÉ% H€<.í;ÊõÌrôO˜ük+G0æ™o©éþ"“Çõ¤C 5¥é‰\¿u—œk[Øw:§Ø™¼6 ˆ«'Op"]OXV¸7ëÈàO3u¤%;_XÀà1L?ŽV¿0{w S:Ó¢÷pÆí‚[Ê*&¼ø[“jœ,ÿØ]Š:žV_<ÆM{ Jñ*kf~†¶Ë ¦kºèg–_(iDwÿÌö¨q ©‘©‘©‘©‘©‘þ3I*•aaahjjkkÑëõÿ•Š)É‹fô»ãT§îáû™Ûi¾v0ÞF=ƒñ¡± ¸·É´fÉùrÇ[•J¿9½‰p´Až·‹Ofü@øÏhöG1k@ †«k¶“© bxëfT I˜êp–5ÔˆîÐé ˆ‚0¡×éQ¨ûòü;#hZšÂé]ר½î ^“#Ñ]>µg3¼¼<Èæ,š©°,«¦æ¡ îeÖ¼x€Ð¥áÔæÝ£0/žæŸk𞕜ùø'JìÛÒ½¹æf` BÎ`^4¼ÿêçÐÕé!0ÐéïWó¾_0Õ(JTµz Úªå혻>¹»½9Øzÿv½±®–´UÉì]¹‹Žsâk#ee”ªZ s›ÊðÅog°à¡ã3u†ºq‹È(:ñ%eO½ÍÜl]¸„-‰Ï28DýPÆ· ˜+…ĺñ©´ŒZ&©©_ÔXTTS#J0ÖB(•¨Ëj¨¤õc”!7P­Ç ÷"UZ´Ab¢~II•XVUQóïŠsý˜ ä÷²=ëg‚~èDaòa\žYB¯šm¬Þu”‹¹‰rq í”ø ¨@´Heç;[øÅo2#?‹aÙ¼±lÒjeÚ¼f?TÚ¢Â5 =½ÛÝû¢³‘¡-²&jøÓô”Ü—;üôƒ„°§#p‘òü·YV®XþÚì¶ÖQR\F•C"‡á‚_—IÌns‡ƒýÄ1—èÙTó×@`£žZëH†ŒnG°«ÆÜÚÂûš}ù†âÿ»ÿ7ü9 ­žÏE½´„7sµuáC– üÆ„ µt¥ç°¼¹Õ—És­° êÀÓ|ÇÀœL®›J·ªH¾2‘X‹¿÷¥¡¶–=µôøK‰Uuõ“׊D†ªæû—¯f÷f R»PzŒÉ€vÞÿ:Ozô¿3r=FÓc‚dž†|” •Þ×™ee%ÕvØ{ 楷ûãW|ƒÝ›®q`¯/£ú7ÅâŸ4‰‚új s´º÷eÚ PrÒ—î"sÏÒJ½í܃~q(´¥xîÌäŸ?NW@"• Ll›Ñîíš¡jQ€ß¹ ´Õj\[ùc­)£U§¼‹f®'Ó'E$èñoqjõa²;Âýoz[WZDº²öt)O…• •‰ÄÆx‘½zv%!9h…!Ÿ;™-íØ½{GºuïB'w%ä\Ï–tîM &¥ñ^v‘¬g[à÷_ã[i~êi7ï^•Éէ9¼Ûû‘Øÿ÷^fÍ‹ [ö6þºcœ©·³2Fjtèëu¡£hn9 Ef‡3hÉ­ÔHrv²|Ú„oC`M É—öñÔO¨õ» ÞÎË‘QgN’«ó ÷L_¢ãDBÝ4HÄýï¿ý¡Î†ª ¬ý -–¾_'7"6þ™¸Ðs?_åè/jz oõðùöúGôƒÄT¯™ey•X1to?%ÃQöð½FÓ£ ¤aCg2¯O:‡–¬Fùél:7ÎÇkûboeÖ•®ax}u4Õòâ÷žæôûñ˜Õχìs+¼w|I+^x÷ z äs ѨÀÎ>š‘öPÖp€¶† é2sM‹ªÀ"™í Ö³Ûo&"š1iýô×1Š—Ù4÷Ž­{•‰ó®°¸{?ª¬eªÕøE ¤S½BÉæàŽ2¬;ô­¨{0%Šè´Ýxö­ñ4+/ åÜ ~]v×WŒäUÑfúÛhÎ|Īø«ôÒ¶E{d';¶d°óÇÕ(Å* µL˜ «?Œ‡@ûÉ^¼c‹~L}3˜SßçØ…&¤g5¥Ç„D4qǪ`7Ëæ®&bÇÓ„×w}Øß®c*Çörþ¬žöóÛ×u"€6¯‘1µ5^õǤX1r6sªÒ8üÖ*ËgÑѺL J|ƒƒiz)c»/ál©D^UHJòa¶LCú«-J}.©Y-h9¾ šúam]ET‡öxPAçvóIÉWà•gCëá¶\ß{ j*lÔhï‘…öfx¯P4µœyí, •”¹µ%¶KÝšÛ#”& HY΄áq¼ôù :û;bLº†Ib…ƒgsœªF±dy,ã&ÎÀ={/çE9*LdÛÆªß®Qm($ÝÊ@v;oôn1ôèK'/5xßÁyaµ€2“M ¿&E&P£pŒ %A¡EçÛ‡I[`Šøë°¨ÈãvÒ~vnÏGî`…BŸGjV[â·@ðŽã©ž1´´0PñXþ–pýhE†Hz··¥æò:î:0lîî~;›õñÉŒïÕ•—¾ŒfÁ³ÃX‹¤ÆÒæÚ€XÜ`³‡Ãã×óïDÊî±ôèK{gx&ãøf::Ѥu öWˆ ànÉ :÷fÚ PœŒrÒ—îæÎÉ[T;GÐ&´=cýPT¥!q ¡}§ND ŸìË%ªs;š$ãð^6:À֘ĺykÈ‹”é­Übœqö û(ZWrÒªEq2Ç Bè2)Žn!ö~Ùðô!®upAáÛƒ>Oµ¡¹ÜD©eÛÖçb"cþV½±ƒê+ÇÎÝÑœ”k,‰™TD´ô!¨M8½:„¢ÑVÓôÆUôåRìÂ|±µ—Þ>–På~6TwaÒÄ", Úê?/ØKZïÉø! W¹Ü©;­£ˆM¿ÌÖõŸð^³ž¼8ª%Ö¿ó'•(3V2uà¤hãxã«¡¸¤ïå’¬³ÆEà‹²²TÖn9MaTÃFHÿ¿€Ed(•Lã?u0°€D¦ÄB)Ãd4 ÓÖ¢ÿJsA*G)3Q[khlÞHÔHÔHÔHô_NR©Œ[·n±téR,-47ª©®fòäÉÄtìˆ^¯{ì½÷ÿ¿²²ª>~.‘H±P«1 ÔÔÖþƒà±#.‡† üÜøm%·*ã­y²¯ká䉟“'ÕÁë8œëDY…#QáDت¡¹5~x‹›ùhæü¤=€üÿi ‡Óœé1½7¾Üá˜N‚Õý6£5¹d6q§»äñ“#%(-| ÷ Ä?„ü"'Ü"‡HôYìUØÊ@§“ »ÿ›U¹d¹Ó§~¯±¼Ï߇aAr@¤¢²Šêü½î¶Šó+¾áŒ>„~“:ã[‡“bë„-Aú¾Åé;sèêôGsmÂdĺ6{¦bòœ4øh”ÈPãÞÄç9¥´iÆØO7ÑO/A¦Ïã±ã\. c@—f *kà%ƒâ}|q¢/~F $Ï/lØüÙçë¶„XÍÃï'ŠR3 !–oo—­¹N‚T"1ÿru.™M=è+1b@^·‰5!‘äAƒëÆûŸWR.1ºÛb›VH óØd{9ª–€^†ì~À³8¬¦Þxü/ÉvüoË9~JFæÝÁ¼üLSìxÅ6.œù•äÐ4qöBã @Žß îhõXFbÖ‡m©4HPUàµ÷$ø>Rr)±ð$jÔ«,‹-G*ÉáÈ®Kä[ÚÔWX^EBÓ`žnâ‹´ÂÜe1T%(Ë0çþJ">ØL'`('íòA~¾æÇøþA!Pp/†nÂmé[ ñ‘!èbyùËÔV„ÒÚIÏ«æôz~8=;{#ÑAb‡·åŽ*E-´·´­È­lÑT–Qý_ç” ¶q% Ì¢:ð —…2ª`ÿ‡ò}ß'YÂÈ¹× òº$ƒJÊ”"FWûßèï¯/M"# WJ!ÔŠ˜õïr³x þŠ"²ï¸2^Ž>É„h’Õýf%jlïÏw1{æ}LrÄ Fö Á^f>B"ù†aÝ4ö4žç‹Q[ðXúƒý%õ¾¡B㈗Æ!ô$?gß$·´N¶l§ ¦ûúÁ€¡¼”Â&î8 {W¼ìèè'»ÉRì|C°#„Ÿ·9g6[;à[×ÅAD‚Bíˆo¨#`B™‘NyBå:@ÑÐ>ûaõ;/Ê÷.OóŽ_´(O=ÌÊݶ¸IôÜ2>˜Ã2%ˆvvXî>¹øÑÊë÷ôZôØãܤf—Ø–x§E4Äö{¥a#0I*Iºp‚Ã)Nõ€yÅ•]Ä«Z¶nËŸ\ÿ„úÑ„¦8(t¬ÝÊöCmQÈû2!6‹Ø%¨¾øžÄ3×é<ô#¾ï]NI†ªô >­`üKqþ°ëˆ(Ö% ¨íÜðµsÃòŠ¥–ÚÓ<´þH›ÙÑ凅$Ü›@¸—ä1þ¶™ÿÙv°ucm½D{‡~lá¡o¸Ý,‚ÉÞ ’‚dØû5Çž`ò½–páÎ,:F>loLxÝ2íÅÃÉŠ"Æ·Š‡– ™>ž-Ý耎.j(1"J@4‰ XZÁŽ´[äg„Ñndâæ]¤7Å%4czj{s{[¥65jkkЪ\q°2÷#LŒ^ßü4-¡‡¿£¹3IÀÒÒ•¶ýzql“-[«ÉÙ*Ae¼ÃîU¿q!¿ Ï~øMM§Y¶ª‰^ÑÂG+0©K‰cÎNæOÝGðâ/xÉ®”Œ›'Ùs2ì¼bî9„™Ûnë ˜L"BMe.íÓ+’ÖÍ "‚Ä/õa6YxâdõÇ-õ«Ó.s5ÿ6n]?À—;üxZ…Cxg:· @¶|ê7Vpèvƒ[ gþ§±T™%˜÷± ÀôÈ>ÄÂÞ‹ÿi=‹"¢…;ŽVæä A"ÇR*1ïO FD“=:t: Rwóx¥J¬D)%••Ô(°Õ(ëö0&D ,eæÃL,­í±–‚I¦ÀJb¢"ãg>˜y’Vï¬`–&›kgÏr¾°°FMˆ¢Ñü\m-ZKœmê”·¶¥i”á –ž8ÊëdO¦Àš*R¯¬gýtû`%íUIìÙs¡ª-`‰#*\ýž´ç f؇ïqzãÓ<¿"–ùçÕµ©ë·y&¹5VVÖuþ ¥T†\ÁhB41PQE­­?nui*¬ 2)}èYZ2ެ`Î÷÷ˆÿؼ/ü=­ŽçÌmg\œÿÈÏåÔ÷_²=Ñ…þ‹Æa@ë˜K$ç•›—rÊÓO¡xD@©V"‘*Q#ÁÞÞ—¦[ÙPE~Z!¹•N8‘Á•B¬ݱǗ–Ïrëž9tlºx€ÓÞîx ÈßÅký×á»âsF‡ÙÔÌË)ȽG†²--¬²ØÿÙg¬mΰ×ÒÌÆ¼e+9´–}Y÷kïR¹rÀ —ÇEè$*,TrdrR4ø7уõU²@úu.Ju¨lPγtÜk¬¿ZLÃ4‰ZŽTª0¿¤jì=üðóõÁ+Ð7glì\ñe³ûÃwøpÕ rL wj%R©•…ìm±¾¸–}·ÍÁR{I×/i°ÕÉ>¶ž7¦o'{||ŽÉÐY·¸LXÄsžÛÙˆ€éâAN{¹àI{ÚwÝʉ9¹WsÍ¿9-¬½ðl±—k%@E> )9´£}h6%¦TJÎrÖF†µ´ºíá\¢®8·—óþ¾ *Cþ|¸ýwc&šÝ‘í;xøÖRsb§ë¢ º‚JîåÛ`[yž£ç¯’¨Hár¼µµAPàä僟Ÿ+7×­AèÖDjïlcöðÕ$ÖɦLmW€/šÊtRÓRpjqÿ<ìDvü¤"¸u~®òºà—go_üý\¸¹ö;$=:á…w_|}}ñ ôÃÓÍÆW忇†ïþ¬ÛhúÍ' 1WqIV8yùãçëG€'Nv¸¸y ¹¾£ uU yÜ8î„­•¬¾«ß_Bd(”T 1Œ—Ï‚«I¿ÿYUW7¯%ÝZ‰ôÊê»ÈßMâzmX7¨F®ç³úoØ; e‡Xôíyj€Âo; îvõgš»>ÔÐÆ®žý•ïöRÔv¨ÝÔ`©BùwªæÚrÒË Èч3|Œ‚ø¤ªû_ÞaEÿ·¨èÖ?'œÎâÒýh«¾–Œ”+d¹ºà„KG7<½º3o^K’6ýÈwgïñ/§ÝKU¨” drUL×ý‚R…\®@¥¶¨BêÖ¡JD¢ÄB" ‘¶!ªËN¦™¿¿’ŸZzÚÊ@ IDAT9Û qÜÉÁT€"2R*)7XcùO—ÓŠ *U¨-«©=±‘Sµ@q7å•Èz÷¤wy6%)TXªK„ÿ¬øh2Ñëùñ#ŠàáÛ¥Ùœf¶Ù)çIëÚ–à¿õE8ºº¬:Æ®ÃùT…E @ƒ}Õ ²S‹P¸ûàççŸR• ‰häAЇyè##÷æ)»µ«;õa•ÿ»¿ÿS|Æâ[\={€S¥Ù$Ý6 “i°ú#ù~È'±F‚G'/<›ïçFP–ÃÍ¢ *]œ´qW«É¨ÔJ {íbí®»æïÊnpæ¶+.ö Í¹Æ91޶6`eïŒKÐanV˜e;¾,›wÔ$³nÎ2’"†0nb{<-ê$»â4ª»ÒÞÇ<Ùú¬Ÿ™5tÁ+?fX3+óÚÏOåê‘Ü4[Uî%¨)²ÃRó;-Q – ´¡M—-œ¼cÖÅ÷âOàïå\Ûþ9‹æÿÈmcƒÖð*%r™eÎ)Þÿ{sî÷LNâÊo\]@Ÿº…™CÞàh•€P›KÖÙMü’ PFvr1yµØ+gŸA¨8Ä‚AŸqº¶®µ»Dƒ»Ÿ?~~Jâ·oEÝ¥!G\›$¾ (ÍæfÉ=ªÜ<±È=Ào’¹kHà\¼ 6.VX\[ÁŠëu¯Yz• Þx:R<üñÔTqûäql:´®âïq|O) ûv´l¦þŸGD*G (”‘„uØÈÚÓf]}/¤R/<5iÜ=uŠÛz€ò’ Th•X;:àæí‡¿¯î~ÎX¨ñö´­kÞÐߨ õÐZÞšù3÷}êΟ9Qg¿+I½*`¬ìH§^gøíd’9YÃt“³ñŽ8:?Éß® yÿj¾ø¡.ËfÐÉ]^o“!‘m-iÞ¶5ÞÎæÏ v¯dOþýñ'rõ /®®ŸM³¸JE·ï!ÏÓ·’³ÜÉÐbãY§wüœÑ˜³Ñ_½KDA‚O›öToXÃíöq„XyÐÄ·’ñF¼Âœ±Ö§uâ 7¹âcƒ»» ö&ÆŠLrZ?ÿ9¯dNbÎÁr¬”"&D,0—Ï×<ƒ¿X…ÁPA>NøF´§C  NúîÖ”Q#¢ Q|˜Ý¢¾„ûÎ ié§Ÿ/’œëܱsÄÝÅ×+WIP¨QHLN.¸å#ñ®g/_üýüðó±E&“ ˆFLè”’x6‰»%1ÄuPhrÏpíB*…ò/Ë‘ZIPãâã‹¿Ÿ7Ö®AÚ£#î4€³x=7–JL¦@m¡É#ã~,©P[TSÝÐ>«ªQài0`45HÅúßźN¢Ù ô唸tfP WÜ<Ý0ä'%‘™y˜]LYa- D.š0ºyá™¶=çJ1¦‹‡8ߥ5mÁ 4?db ÔŒ}:Ó¿™3ζj*ŠÒÈdfÐOP ç_=?—UÇ2©úÝXÕ86¥÷´ïYþN 'GueØ”íH5È Æ R×Í¢(>bM&pòÁûòÇl¾nNÖ(¸z”ø^1˜ó% %oæåö#ø4«Ë¿—z£±T<˜ELr{¼üð÷óÇÏÕ \ì°9ý¿äb-é·)n‰/ÿÙöù?þÏWçååñîk3ÙåêC—>í±wÐàfi \§ÅQozBò‰1{ ¾“òâ½pÐþ^ùô”\`çF/~½™k=EZãŸc™¬è ‹g¬âºÖ€ˆ ÛA¼³a(r} •ZDÉŸÜr”Å{™ÿI5“õÅSÖ7R#5R#5R#5R#ý‡„òP)Uˆ"³ì£¨¬ªD¡Pòá‡R[[ûÄ; +¾YÁøñ5j4›7o&55•çŸ_æÌCeUÕ?:ºNo­'mJ/Ú-‘¡¶ˆä• ˉLe™ìûúÞØ‘ÀùÔI,×–«›ÞdæóÙ€‰ˆq± Ê ¯.«(Ÿ=‰¸¯Š©©mÂs߯¤Ã<Ó”Éõ+»Ùu¶Š½û>EÔëp~j.¿6·éo2pq:eb;^ûµ– óv4sÓ†}r €Þý¿ã™O¶0øé |ðj4ÑùVwÏÌ·z`¸…\k­|½á//âÒ¸Yô^p— S óötB)»‡·q<ï&ÇGuäшÌÁ›§¦, se2ʶý±LÉ\‰ßÏ/×açÖ%ˆznÃßgUG#߽ܟ7 ªÁ` Û¢}LõyØ7UrråT^Û˜ÀÕÔÌzg­RÞâöÑdÒ„!‹çÑ*P 5UÞÍòÖhV³ýEx“ z÷ú†qŸìdR³›{ƒ^Þ`ô”R$TÕµp¨9û“ßÝJržŽc1ŸÐgéa毖)ccØ PªÍ|§‚”ªRòsh÷¶=K^ÎG1Ѥ@ÿ9sˆòS`7eç&Χßâ,ÊMí™»3R:¿ù6Ç:¶£L•õ@ÞßTݽïôŠæ]\‰ø§Ý+«Y<:ÙáÅŒxw?E•&úwXÆÐOÏðÊü¹éM´Ä WŸ,Ù„úôJåÓ£Y^lM«Á/3cT;þisoÒS[«" lÆÜáõØhfãAÌØW˜Ø¶®®¥Ìy{!]?-@.5¡wÉé?]ËaÂh4b è ÆõLfbA4¢ÓÌ «$†ù«G3id[ÖÈÔØ;ãÝ‘û[)ìíQÛ5Çx º¾¨4ti 9oÌ„è÷¨•€Ñs_½é†Ö`Â$Þ¯ýÑ^yŸž1ËHض}…u´ªI;³Ÿ?úEo²¿ßµò†½Äñ¹?QÓµ+={ÿ}UøI§XS¿š·§- xjóº´äŠaç“ØyÑoÁŒëżѼƒÑC_dN7s¶>þGf¿¿ŠÓÉÕìØ·œØ¹ÛxcîĽ:žØOª1ƒy~ý7´5Öxé8b—…檬€p¢¢.ðn·h×Éö¤Žˆ7÷r.åŽâ§Ïå˜ô:ü§¬á}û=TÅNÅ_fN0Ë8¼…Ù)œÚ‘wD ÷PÆêk „ЦCïöˆæMÜh7òæt²3y¾ÉØ—îPƒ‰VÏ­bª›,]¹>¬ 1:=ˆzzp†¶h)Øý}ß<ˆÚ5€>Ó¿bN¬0‘¶#G‹Êè4¸ýªŠv¿ÆÐ¥'¨®éû9#—aÊœ¥¤L‰&z†àÞÌX>›ŽViXßþ˜91Ñ”cK‡ s˜öTx]«å:2ÐêôëZ4ô·ûô_óm¢½¶Œ‚<= ·•’°ök^žþ Òlð|æÅ…dû)Æ·^`XìtJj}™øÕ7tRJëo÷žºˆ¨¿rèBGznDÐë°n;ŠE _À~×ç\voÉ Íêùâä®c٨μ£5 ˆzú¼{‚Q ™6™ èô÷[b;Ò*®7±É‡É/tã¹/?ýC†þìg`”ÅÖÇÏólIsÐBG@@A v½bÅŽ¢^{ÁÞÑ{_ÅFGAQAE¢ Mz %Ò{¯ÛŸò~ØM%QTô¢îÿ“.›Ù3gΜ2gΜaOàUä¸ëù`æ ¾’[/>‹{F.cÐÃËxïÂD„{8ó¹*%~Êån£¯+n¢°ø-6ŒFºsÙ³Ï2b@%?,©hm‘¢)جv4ƒ?>1£ÏçÎÉ“1h^¨€`ôÄß(*ŠÃŠÙcç÷ÙÁ;¯\ð éÌÈMCñÒdìv¹µ;¯&c³+±WqUøÎþÞþž$ O¢Á—¾#úRúÓ3L6ÛéOùœÉýç¶W¦òS_á’Ù%Îy'ÝÉâ—<]þLWÀ*•‡`å–DÝ<Óõì~$Ÿ˜Bé´·¹nØÓ˜ ç²çßâÜÄ és8ÿOi²XèyçBæ\'x®j‡ýì’bùóù?¾ÝžËWkòœ>4ÉmªªŒÍ欮vúa22ñC®àÚ+gðt³}¾ñî½ÀŸO÷â­¶®…Ý¡¸ÖFÁÞìÃi2v‡¯ns®ac†½†¸?1©cIŽ´á –ç²ñµ[™˜>[?,=¸ûýxþ¶{÷ŸJ¬Ê(ž\s–åØì­ôjŠ›DtJ"‰soæÌa"¡‰QFŽevêeg[m 5%ÍŽ.}|ƒ_q~aL]ð9—äîeù ß2Z‡âQ‡Ü¹ö+"^¿‰±ÝBNÏüW>Yú› />^Ó­{w¤¬¬–Í ÓpÇ?§'’Þ€§e?s%ö¬³9{`­µµŒ"ËΞWe+™ö¾Ä£ÿ™HˆÍ&hš€ ¨(І J-·“5UAQqUaˆ¢“±ªâÚøB›'Æ4E¶Q}ð[Þ›­2ùÓ›éÞ`Á® H’«ýµª¢¨ZËx¢ØLα*VòØÿÙ˜òÒEDÊêv|ÈÃ;“xöR;ËÖ3uÚXü,6dÕ©\Qh¹…"JRkctMCV×k"’ª&¶ÌK‘e÷Å 7Üpà 7ÜpÃ?ÛADŠ‹‹¸ï¾ûÑét¨ª‚NÒaw8¸ýöÛ)..&**ŠË/¿ ›ÍÖå8f³…o¼ƒ^¬ÈDEE1{öWòØu‡W ]°šÈ¥+,­]jŨh¼ç?MVââ9µ5Gªìp¥‚ˆNﺥŒ†ªÈÈÍWÛ% $ ) Šë3AÒ¡“D—¿íp}W@gзKÈ8dDGE·;°V”6®¤C/ h²ìòEt]Ë8šêh xI¯GBEvȨš€ Iè%‘²ßdya#/¾™þAÍó;qÌvã¹æb-;Ìú¥o`¹ø®ëî¢SVZÅZèqöFvúˆz'ÞßìÀ?QD§Ó*#;™¤×!  ";]óÿw2_Ih3¶ª¢¹âUQP‘\k¦`—•`¢Î€NTqØ›ã˜æuÖ\ñŽ€¤s­£*£È*’N‡$ ]òTd»ì<À$ôzçÁ€¦9×EC@”$]mù!8ßõÔ âQ´×Àn·SUUETTÔ/Pœ0çÎe[ÓÅŸI’K†Û¯W«l+ØÎq}K§âphHz ±íߺֹyªâ@ADjû¬±¦`—Ðè0fëújšs]tm’K555èt:üüü~yW+m÷Wg2¤¨h‚ˆ$jȲ+Qˆ:=:ñäuLcS#6›àS÷OýÐQÆI‡^P[öH3Ý­û¢óuîœ.›ÍFMM ‘‘‘¿œBkÑ_œ ÃœkAËþÒ4Ení7Ý*ã'™®SUJJJˆ‰‰éDg4'ðDÔúôº&»æM':GÁÑÒ ²Y mt„ØÂ;‡¬"HmÆí€ü‚|âãâQ‰¨íd¦y¿ Ê8”Žt6ë D ½®#ÛîÃߓɄÙl&44ô·[CMiÙwš*;{Ÿ°Æ*bÆ<&|Μ{Î#6à÷×—––ŒÁ`øõ6ܵš‚(¸t«Š¬hÎs'T2Îê¯fýewêh±Ewÿv/B£°°¸Ø¸t©¨.:“'AB§PUœ}ŒÛÑæ:&•$ .Ö4g«Q'¢)ŠËÆhгGµÐ‰\Ÿ(ÓÚîåö¾R3ŠŠŠˆŒŒDr½„ØÑ'Au:—Ÿ£t°§­û¹Åqé펾6›Þ¾Clâþþ­rÞvL$‚¦"+­{@g0ppÆY¬ì¿–§Æx9õvg¶EÒ!hmí§ÔÞæµøq'«4TUAUzPtß¶¥OÐéÑ šË–vôÅ—}nös×^nöecvjŸQ‘*b³/¬ÉN@pö0oÖ»yè\—ö¾m«-möU]$è H­:¦ƒ}ÖTEÓ%]——›:Ê‹sL ÅápV¤Š:]³ÒÆ®tj¯Úë‡ÎüOÑ¥¾¢êóçcÉà|¾¼SÙ–$DMicw[iFq à¤³3¿©-;ÓÝ­q††&ˆèDP¹5æ$túV•fÿNk³öNT4½$ž`Ÿþ±æÒ±"®Ù·á£S®5IB@èÀs—³w»"»Ú H‚&9óu¢k\M±#+´Ñw­sV±t#/}}œng\Æ CBPäÖľÓOÛٙƌ%<9/˜7þ;¯fÛ¬(R{Ÿ±•‡mâ—.üYGÃ>æCÂ_~“ñ¾ìç|D^DQi£+[çM;?Ì9žÜÆ>ë$EQDñì_×¼]ëÔ⛂3?#ŠˆB[?¹9Vé°oZhPeŠŠ³ªY‘¡}ÖPdÄæë­ ª‚“ ‚sH¢Ø"çB3-sî`KÛÆh¨hІ ¬ÝW‘eZâÄb¯æxJ”\¼pÅíì³+ŸæPôGÊ/È'22ŠÚÚô:=z½þ„,© hš†  €²ê¶·f¢ÖÖž\ÏÏ?­s¬û `AÐëtèžxYޱtñAŒ¡zdƒ„ éñ²îáí‡ßccQ2±\÷Æt®J®ãÛwpôÜqÙGô¸øj¼ŽY‰öZÁnó<ùT"{Þy™E;ëo]y?÷]êÅ7Ÿ ·¬dcZ)•õ0üžÙ<0.Šú5O1eî!gOŽ·óæC^,zñSÿžð#.¼š a™9g3uxÓÿ²©Ü…?«—äBÓ7¬ÛÊÓä‚Ä ô-öPB¯×£Ó‰xÄÈy(º"ƒZË‘M_°ëP,·NI`ía¾øb/jÂH®ebÑ´wY‘îl>NÌ•¼ù°Î…)Sà½÷`xì‡,ü ¾Á\õì'LJ>ÙÊd7Üpà 7Üpà 7NÙ1žËç“eg}¥]u8Ü•“w̼¼<ùøã¹ñƉŒˆ`þ¼ù4™šN/Qgèä&®€(é9áb°ä¼¬Ø~·K8“•#èôÞ D='ž‹‹èôm?,'}?Þá½\½ãšçwâ˜'Žg¥¢:Ÿì½çqÙ¿ÛЩélZú_ì¥ÙÿD]óOb¾mÆ¥6¼ïpH(HNhÞ*¢?a@WÀÞæEQ‡hèLF:[]'D Bç¿Õ¹Œ4'ó¯w6çÎe[¤Nn¼wE_gãºø©ÿ¥¿uî ñ¤hí°.‚Ôzqù7±ã—ö£óЬù¿uº?¢Š±ëýós2.vºGN–w¿‘ÒŸá— ˆíÖB:êS¨‹%]çt: ú®þNBßɵÕͼÓÿjÞu%Ûbç2#ê0ˆ'¯'þ>þž3«Ö}'t"‡eë_ã™_s°`(}öáÆÿ5Õ]´¡h+·"zÝ/Ùƒ?‚®ŽIÀÎ婽¨vM› ˆHºfq–Úˆ¶Äé…ŸÙË¿Rvµ¿»ÚÏíù«b“w³cõe\ôx{9?aL¡³=} Ë/äì;[[Ûum[~ÙNZ?N_Dü%ú úbR;û,taS:µÏý1¡ó¿í”‡]ú¶ëº®èDéË‹àLŒþjYl¯:[hë+Šˆ’Ø¥Ïs¢hu%ÛÁoð›Nô™Ú¯ƒ$éO"vÚ¬½K– ¿ÙÊÇÎíÞ‰>¼3}"]+H†xÖ”»•¹/=Ì’t€&Ü÷8q^È“t'ú×úŽÂ¥X¨Øú<猛Eß;ßbÞµ‰îµNyØa]4ÕAƇ·0yN6Ñ0Mêb?wá#v5oÚùaB§~¢Ôޏ®ìßÏó²kߤ3?¹Ã¾iC£¤3üL\ã¼Hñ+¬I+ߥÎâ韑GC§Ñ=¯2™":ÝÏøäÆSÛgIÿ·O}žþö\¨(+ã•§¦±úýFOIP°Qh€¯,>vˆ”{_åÖ^ÑøV¬âÑ7W1ôåË™xÿ­ìx_â±7/D·g!ϯÞFêëkø0±“]%ú±ùLôx•máõõÅìÉ Ã˜ÿ%ÇûÜÏ« Î")o—ÌÛLqOsç„òÄÒe •öÍŸGß­Üýr5Êwa<úÊ0ÊV®æ‡ïSxqí“$W§±xÉ!víªÅ^ôÅIwóŸÅÃ×ÛUç §†S\O°ÙÈ^½‚íýÆ0Vq°·U¶sDŒ^%¬øÏÊ’ndÆsç’l_Í“ÿ©AÒZ7 Ç>¤ê†U|7µ‘âMóø÷ßqÁ ãñ±ØÝ•Àn¸á†n¸á†"E&2"‚O/¦©©O¾øâ æÏŸÀý÷ß÷‹cX,Ö– à²òrn»ývfϞݮøä¢@çí׿ÚÛAmû9i¨7θGïlù_÷KF¢û]ÂÃ; ÖÜYN?9úGBÍUÿÍÕ^§ /Zéâ´£«--§“ìhšvÚËô_m¯ýYë1îIæŽ{²§~ÿ¯ 8m»¦iI=×Lûé&;-úé4ãi[ºþXÚ Þcxrã˜ßÈ…~<´©ßŸB©n¸ñÛàÝm.ØÉƒ'X¦“„Oê|±óŽ–Oœµ›¿¢ŽÞ·-fçmnÏÝ 7ºÂß>Á›SŸåžóR16aÉgi(ÞzEĪzê½°ò©5Ì–$ACPÇPÄ©NgR‘:üúMâÜfÌ&­%l_¾ˆYËöÐ$‚ê7Œä#u1—0vHz – pzˆõH‘Ýèð9ÿý—Èà o¦ïõ“1:lTÊ*h ªÉе!›Ÿn滋>rö(’{qõíiŒ¾ˆ1Cb ðpà*þpùSbö§Ø‹³÷ø”3 !ÔÖ44MBW·žY_FqŹÑ\ôîÓÌYMCD Šª¡zx䯢þ–bnÆ&øéis&`;+ÌÐ4TÙŽÕlƬ9›¡ ÎåH¥8›ôÂD"§s$¿€nc\ÕVÊ =@$ÊR…YÑQÕæ °]ˆˆ¦¸Mpà 7Üpà 7Üø_Y÷‚‹ IDATÀhôÀáp0eÊ=®'˜Eáºë®CSþšž,Ë,ÿj9uuõ‚󳈈Ö®Yƒ,Ë465ñk.¾jhmß—ùK@ÕÜ×ÝøQ£êŽƒZCO­ÝóÁ§]§§ì¨§'mn‘þãäPÓþê“øk’íêßnß$7Üpà 7Üp㟂@XkqjUу€@ ~:l¡Œj<çO{ˆÚg3sz q—óâ1ž«®\ÆŒß$邉t‹ñCTCI=RÈÜó^xøs¢ú¤1˜D_=J˜'>z@C•|‰ŠÑÇÆ>ƒ×v9@ÔÓÿ¶7¹)T¦°&èH_4«‘øÁ—p‘ÉΜwg^Àî?˜®íGpT(~ºŽ ÌÐôÄÄÊ´¿£) ÷ <:‚”¡a4æ¼Ã»¬#²w2ááIcwË9ý` 3§/Co­ (à ÐGz=ÄÆ€NÓ@<‚ˆŽòETÝgn¸á†n¸á†ª÷ª©DDDðå—_¶÷»ÝŽÅjýÅä­Édjþ“¨ªÒRõ+¸{ÍþA0SVbÆ+0?Ï_j9h¬kÀ¬xìåf¥n¸áÆß*s-åuz¢¢üøÛÕeÚ«È8^†¬jwëK”÷iJ§\K~ DÅ¢w å)•o»©ŽŠzÝo“o¥ŽüB…¨„`÷ºü•âàŸfØi¨iÀ†7!Až§ÉüUìäW`ÒyGŒÿ°“lu—PÝ$KxשI6©&J ‹©¬5áBLˆ7ú¿’`Éuä—hDƶ4ëü KcuO"üOÙ˜æ†z¬ÂÂ|‡¢b7×QQ+íŠü›©–ªF‘¾¸ß´øeümtr^|¼¦ Z÷îHYY­wƒƒi˜2™Ü±½4ƒADI@‘8Oo#:AÕ†É쬾Õ}ñЃⰣ *V‹ÃÉ1Q‡Ñà ƒäzjY•±Ë:I@–ÈŠŠ†/O›EEïãÙâ¬(VfYC” õÎ15AD§7âé¡ ÍÕ¦´Ð(+’°‚O°Zìmî< ’£NÁjÓÐ{xâ¡QM•‘U•Æò<Êk›°áÇñͼgêË´ (a±€GÛ1%#žzKóœÝpà 7Üpà 7ÜøûÒH"¡ V¹t%‚ÅÒâ[ŠQÑxÏš ¬Ä'ÄŸú `s>ÛÓJ@’JHÖC »¥ŽÚÐhDê “SP… -´;ƒ’"0Ög_vvÙIµ¤3  Ofpœà|Æ·¢¢¢ÍÐvêJòÈέÀ xDt§gBÞ’LeÆòj°I߉øµ›«‰¢L3á)¡.Ÿ^Á\–ÅÞÌJŒáÄ'&îíú~Õjž~»”ón»ˆk9u 8ˆ¢ß™‰øØ+9²/‹:M@Ô‰è1ˆ„æ—uÍY¬Zºš£Ò(n<ߟÂÌ2¬hxE÷¤Wl’²ƒé˜lÈš†Ý—áñ?Ë«:ê©(Õ @B¥©,Ÿìì"ê &)5‰HãÏËfŠŽ™ëÚîÀBs˜(ÎËÂì›Lr„wÒ`§,»¿„<%A­æÈ®Lê4ÐéCè9$¿N‚xSE!ÙYÔDb¯D¢‚<‘©8’N^]£“‡#\<ÄLÞŽ4J4ƒg<ýDb@Ãn®${ß1ªÂã’è뇈J]~9E˜£çàDB<ôØ)Þ—F¡MFcè?,޶)w»ÝNUUÕI>Ý:g/IìD¶Ñ#DÄÞPLúÁû•bqh A@¡ô–P­ådJ$&‡¸t¢Sm5UM:üŒ äe—cqÉsDJ a¾?{œ_O|܉mÖ:ª«ÂbÚ*Ô”Ô"ùùáçch£‡,e6’†‡SBÈÙv€RÁ€·o}RÃ\´Ú©)Ì"=·ch,Ý»ÅäñÛm›ÉdÂl6ú°…Ò=ŸðüâHþóöÅüÙ­—––ŒÁ`øÕtW–Vcý‰îòðÕAå’—¹iY6óŸ\ÌÍ©§ÐA£°°ðÔ<µ\²˜ëQøï§7q*þïJ¦ÿX(˜ª‹ÈÍ,¡ MÑ’˜B·(ÿ[^TTDdd$’ä*îÔ'Ѱ›*8¾?“jÁ—ÈøDcü[Òz2•…µx„àã©wîA[1»ö"kþ‰ƒèntŽ/ב±a³÷ã¥G{R´íU‚QÝé勈™ÒÌãV5áÐ4|ºõ£oT«<ÉGÞáú÷âyÿÝ”ïʤÉèMT~Äz«˜kKÈ=’K"øG’’˜@¨WgÒh¥8«àäPœ½É¥ôxùÆ“šþ3 f…šâZt~øz°R’v˜B‹ÐÅôeh¬Ï ~ÍTNÆaÐjÉÜŸIµ¬"A=ΠG ˆj)åоlšÞQ¤ôŠÁ«K?¬3X(:ÖHX°¹Rk³-½ ½·‘‰}‰óW¨/É%+· ^D&¥Ñlœrd+Iãp}½zFâÕr+µ£¿Ý~ËòÉÉ.¡ Ђè—…ŸQ¹‚ó0Yìx' ¤_´7BGÙî9ˆ/ ¹+³"‰®—4}"INB+/ ·¼‡¦âß>Ñ~è„®ç|ä¾]´†,éL¦Þ<ðOHøŒ’l$û‡÷¸ÿéuè†æ¢ëîåÎá¡€JCE-ŠÞ ÿ@ODìT¤!¯Á‚¬©Q©œ™àßn¨ÚÜ]äi)ôOôÇQW@úáÌ‚Áq=ˆ—ŽòÙ‡3ùxE#§>Çý×'¼ 7I³–rhV½ˆ(FÐkP,]¥+í{¿àùy+Ù_\ÇÙ·¿ÁÝô$ð`¬\EfŽBlJ8ž¶2gAJjÄï_òO™ô ƒ7>»™?¼ù†REÚºe|¾7ž{ÿ=µÞHLôï¼Tf+bËŠ¥üP=†gïxâÃJ¹yV‚cBð5êº>%PÈüqïìÊÿ==êÔì µžÌÍŸóÁ÷Ýxå•ñxÿF;Emm z½^Bþ«ù6ÁÕCUYuÛ[3QkkÛˆÏÏ?­³g» `¡ÓÏA@ÐTvW2Unþ7«ÉÜé(²­‰&[»•w š‚Í܈­£ÎÛþ¢ŒÅâÚ3MMí¾+šbǪ8ÇÐPVšÖv1+Íá»ýç-c«‰¶Ãé ^˜ wðÝš=Ô ÈŽL~._/0›N“ÖvLÅŽEÁ]â†n¸á†n¸ñ7†ð¿òõsùaÞÞ˨&ÒàÅ€›zÓ#Dæ0Sž½‰eßŬgêgâÉq~úæ3¾ÙZ„ào%OèÇ´'îc`ÍV>_¼‹:‹Œ(h8¾›œñ3ÙùØ ÎӚϞï>dÞš*üƒëiÒÁ wNe\Ò&–Í^ÅF+õ:LŸÆC£Ñ ¦ülHßÁwË¢yyþÕãÀœµ“}ÎêÂRFrÅ I„{;ÃâÚƒGñ<œHiËßÿCVõù:ÿß³<Ø7áø^yý>*V{?À3÷Á°–Wcz0°ÿ‹9,Ü\‹o@5†1Ü5õvFwßÃç3—qÄaF,xŸÃì—o%Ö«m<`£*g3+6¦¸|L;/ÛQ~úú#¾ÙXM}“@ìõ·0õê‘ÄèN\{sán6elã«OÂxyÑu„µï6²7ÏaÆâŸÐ Šéw:!€Wª²ØwüG潯1õݛ蠧lãÇÌüè6Oõt¿ÿeØá„ç8;W.àË5•4X¢¯¼ž{o8‡8Ó¾œµ–Cfõùß|†‡Dј;ŸÙÓQr}ç½ÿ ×…šÈÜú³?(¤Á(â—:†[»žÁìáûO—°áHõ•Éÿ¾/è‡wåç,zk;ù^2Mù^Œ˜ù÷tóÿ ç-íçÜ'À±£lßÜ›M¤}=‡ÙkJ%]ä`.¼ç.I¨c÷‡³Y´919±1ˆó‰Á«a‹ÞÞB®AF© ¢ïó÷qwÿèv›ÆË›Fòμ© êòÐù$aMcÞ‹³È”ôøø4UŽçÚ¤~×ìcýâ%Ìʬ#R«àCDÿ‘\‘RÏŠÝÝ™öÄÙxسøjÑvϼ€kÆ&"Te±·ã:ÿn%h£ìÇ/™¿xÕ¢‚@9–¾¯²p̦ÏÈá¹YÏÓOh cÍÌø±/<ç ø“ù,;PƒäYGCð9Üuó-œÓëT¼ Q“µƒÕŸ~²Â<òâƒ\ÝÇÎú/æ±d_9È"¢V†%à*~èRM«yñOf|t-!J=Y;¿eù./Îì‘ÅÜ™èŽTï (õbþ5yýÃ=Nšgšl¡"{ËÈ Á6”û‰' 6”p,g æ×rîä+9wPà(;Ìö¬M,üÀ“gßB‚(R™1‡^?Jm¨J7.yë1. T©Mû‘—¬`[Y#ñ.æ¦ëâ~Wø”ØaɈ——¾Ëµ9-0¨õä9L¥±7±]¥­÷3ã­ZÚü ã&q¿¡þP0àã­ýÅ«L›8¶î3Þ{{3¶!1}vÃí„Eúcè‚ZŸ$¨÷ƒ<=5‰üÍ0{võ‘€çrËC×0ÈC@­+ ={óf›¸êÑ1"9ÉZ̶æñvZ šFI)- `Ùl£ª Äs'Q²fïÏ-¦A'4l·>p%ý,{Y¾h9»òMxxVÐè}%O>~5}"œú"o篹™àÃó™úZþQ*21ƒbÚ1änÿœ÷椣F(”i±\1i27ŒNj—¨p”§³3k½ïÁSŸÜB¢$Put.3_?Bm˜€fçâ·ãò ý 2¤6s4g æÖqþ]W3¶_’m Ÿ¼»‚lÑ¢•bÿs™ûÒMDÛë÷òôÕ¼ýÀbê†$ãm2ÒgÂ\3Laó·‹Ùz¼}îý_=wQþÍÒNQÚ"™q“{ÇQ6}¾oöÕ"Ú¬†^Ém·^   `/McÕÇO0}÷%,Z|=ŒºNüíŽ("íûÏXüMZ°ƒ"!…»§ÜÁ%©.ù˜ÿÛž…d±Ðíª—èí e»Ïƒ<}[<9Û¾`Îú*¼<8ªŽrÄsßzæíëY{¸OïJ½&òÈ#ÿb`Œ'ŽæÜt^x{yá¡é»H´üZ½ÔÕ÷Å8ª†æÅ «¦óÒ£C™*ÉÉÙÀÂOÊèÞÅ\:. QÙòy_’Vׄ`0“çq6¼t‰~ÎT}èk~øëÔGXòöŽ}5—9?”!Št±Ã¹lên›6”‘qo³ÓOå纨hõ‡ùzÆY•çŰñ·ñX— à"V|žAÜØ§xõꞬ]0måµ—xñ㛈5gòýzˆùU à.Æxûˆ§À~ŸÄšKžxzùàk°Rtì0e5ñÄDûý.ŸÂ^Ó@cc Iç ì¼k€œÆ¬Ù\ùÔ$†Ft4(;•y¹¤\úÐIðô$å[u<½tîšÅ“Äß.,+JûÀXU1[Ì466"þ“[„hR.厾W! € ck²bª·¹wn¸á†n¸áÆ?ÕEüŽ?ýwëœÉ¼Ò XÅû#ã½Æ9íæî£øþÅÕôœý7‡AÉÚ'¸cÎn.½]Ïîïk¸òëùŒ‘ðÑÜoØ´%ŸšT'œÇ O^@XÁ‡\7ëegÆûò×O[Ê“=E”Ó=sw½1þW·El?g±SÙV©-<Ⱦ2S>ÇêXÿñ|V¯Nã’) (JO®xô~.?¯¹Š­ŠÏnX†ÿc3«Ÿ'T-d¤\¸n Ý[šê¼4¶¬¨çê¯p6%¬œ¹„Õ wÒÿž³¸ó©³¸ÓõÍm¯Meûˆ6¼°„à×¾äÉž"”È7}ÃEkï"o"'óøû“‰ø D­Ðyvgò¼9/ äê-¼wÇB¶Þ<€óÄðåpi8@«WÔ#ô½‰7Ç]Ü¥5$;Ά 5œ÷êõï_̪¬¼öÉu„¡p,#½ÞœŠ°HìÈI<6r0oì$ÀÃBúÂÌ/Å«ï\F‚PÃ÷ÞÉk‹{³àj|¼ mº"’Þˆ§Q‡æÛƒñS&1åÚ ˆO§|ÌÞ]É$]’ŠßÉ’ã0Qœ¶™ ÛªIß|N}èL<ÛÀޝ¶Q†ßÀ~Œ—È©Ë ;h*Éæ`¦Æ$à…ƒÚÜB*¼Hê@Ñþ¤e–bVH7š¾Aõì=!ÒödÅ2j¸ ’‰Œ-ËØX&àáßç ì$ u:CEUã=én|àŒ6û³k :ø$ï\3¯ÎºiK#W=Ÿ³í‡˜;w%?n(`Ð…ñhõ9ìüîGÒR¹L/9ý†-sy?sïÎzŽðv¿¨a³ÕQž@·ùìÜî`ÒWóaÝË;³×³uKýysÆ­Ó¸)1_YvݿٚwÉáxù)€³¯ö‡’n›÷ãÃÀ^±‰îý˜­—>MŸä³¸÷‹‡I5@梙lÌÊ¢xtmkÂúa™† ]<©à‡760pá·L T9¶bO/8Èå ¤:7ì #ÉCS@k(`ïšÙSÕ±z—Î)vÐ÷¹wy, šEžà'ËM\eËfÛöjÆ %JªLê1ù½‹Ú%¸n{r·µØç)lìÛïv@rùæÉèûé·\MûÞgò3«ôZ¶Yø×WóiKcæÜµlÞZÅ€„-,þÉÆÅÏä¼¶åëŽ.}s&b²ù`Ì3¬º>mE ×:1¨ûnÓ—obðØj²ÛùaG8”Þ—„í_ذïeÝ—[Éñ¾Üé#Ê yë±N+ lÙ‹Yß TIå¹o&ŽC¼þüì?TÈ€ÑÝk3X¾lõ èŸåßâkžàowDС—óĽIv¿ö*‡Jë(3¯göþH{ÿaú´ýþ þö<6Mþ€‹o|á7:¿R¶~!Ÿ¶‘ø¯‡¹°[˜øæ–‡Ø‘3žž11(çÜaÏY*3ؼ!35¤®%¤_Ù%å¨e™”T–PV+4ü&ø¡¯ÞǪ­yXì2bÔ0& ÔØ°OKùÖ R‡ úk¹É 5”p[)÷ïæH‰4_R†'µ[†ú#lØ–Iu“ BrÁY)øJúj-GUA4âŸ0˜q}4 ÙnÂÜì-˜ÊIÿq#;ó‚Iö08ík±•”û_gJ7`âóËbWÓdý$lÙëùôÛïÐ ºžé*µ¥ÙHÓqßây  ’oç-bóÚýœ?¹?&‹Å×¥m”2öoÌmcˆáãyöFÊ_õâ¿/]€VË®,;ÞÚ~äK„&ôæŒá}íä@V>u«ùÐßÎÅ#Ã)ݽŸìÊzìB2ç^5ˆ`K>ÛJDw°//™ãýÉI«Ag΢ÂOŸ TîYOmè@†žÑ›À†l¶í=Da M ¤ÿ9gÑ3̃ò=X¬µ¬Zò9= åÜqN^™sX¿rU‚7¡Ñ="œš¢JJ«±™²8^*ÛoƒûÄàQq {²©59PaØ…céÖVR²Ù±­šøqC‰nÞîš…ÊÒ Š‹«°Ô—¢EɈޞdïÚÁ¡¼J¬jýÆ¡g°¹`;ßí-AV5#5q$h¦l6¬ÚC­`¥(;—&ÏÑÄ&§Sg¥ ¿sU>UÕ…×$ÏÀn„jö®ù‰¼&;š aŒȹg&8/@¶± õ4…1¤ÔeïdË®\šºŸ1œI!˜gÑX—ÁƯ?£zÔ¥LHõ$ãÛu¤Û ù¬+éªa³×RšîK‰UØU†bɦÞ{(£‡Svx'{cŸ^£F’㇮ö ë~ʦÁb‡°!L8; o­ˆÍ_m§\Óáåßñã£ÜÏ>ÿJüí+€@DQDPÿÁ`AÅŽÕloÇw¯n¸á†n¸áÆ?‚€§×ŸÝ«ª–µ+Ž0l Ë?\€jôáŒK¯¡··†àÊàëžæ…ЯY™iGô¡ý Õ‡`ÙþjcÇ0²wd»´GýÖ'ø²ñ6Þø3hú%Ðݯ•†zßPÂbª)ZÑ“î—]ê(Fæ _U D"lô¼Û3†{^”Qƺ<öï:Ž×ÙûX4o>Iuö„I€vM¥>¤zÕ›•JÜuvÀÐ÷lFæ"WSé—2‘ ÍiV¬‰‰ÄùTRPšÇQ[ ýcðl)F­¡6(œ°BÒ8Æã çÇ/Ù’¯À„›8'¤ýÊ F?ú\ñ Ó£¾`Þ&;T–éL ø„õb µ«ÉöCÌê}þ;‹©#=ð hä½¼Ý+Š»ŸRQ;ékÙTæÃ蛦ãsø+¾Í÷@GçÏbwØDžv ¢†¡çD~%ÊóP†Üp6Ûf/`¯€d‡+/Ø!]UKu…ˆÚìÛ¶¬§~ÀÜÝÿOï-ÀÃC÷ûtD=Æúý,ý šÈ OUA Ƶã,¬ÛÃ}ß¹’¿¢Hì¹S·v)ºL©ÐaOÕ™BÝû;Ø¿ôJ\Á”Q1L˜hÄŸÿþO=ÉR¥;Uq3%ØHo(zûJæ|ÅeÃG“Ú+åR;¿ü¤’ IDAT¶&¬ŠˆÞ~ïvrÝ}£ˆnɾ1þ­{Y{Ér® þ™uÒÐÔæVÔûxàíåñ«*+Ï]û4/‡-gùag{.У‡qýc¾4¼¾ƒCu­„†×€ëyaz0÷Þ_ãüD;FfúX.ówî•àîgÐûÇL”‘{,5p3 çÕ”z6£ÎèI ô?7Ĉ’B“i›fÍáûš(B´Ýì,¨†û® ûÞÏølÉQê=”2Y“YHLj<¡Þÿ»°R¶5?R%y¡TçxI#AÑþ8²vñuv ¯?Ò›Òœr,!ª§céæúZ>K #6R¡¡lÅ)Ó¸=Öó”‘d*=ÂÚ…;áìéŒËرqm=¹Ö gû»É4¤†C³q^% _[OÌ/k ÿpJ³{Ÿ •2õ+I3Nç™Ñ¡üu ˆUÞ¼‡·Ÿ8œ1C{bü)éà“Ø’¢Ñ*9–£ ¡$ûD‘YZN#ñøÆáögü¨yöz,ü°2ƒØ”Ö|¸EÐ3èòà`ÃT²‡æžÜ)Tr¼x°ÓF{„ÓÓ3”âÒ14 ¿Ol°ÁY´R¿ž¥ÕƒyÍ„”‹ïÒÈf“G·8"Â| Š_É~ÖlÜM~],ÎÔæ"“K?ôŸÄs¯‡Pu%δôQ2ÓÇri €ƒ ä¡ô^O5I_û ïm çÁ"P§!ÅœÉOøRÿÊ^ ŠâÔ9‰2;Ç¿ÿ‚­Åº‹'3*@Ã|x ÓŸÝÉäዸÌÈ?´…w>©¢[h ÃGIB›L°Ó>dÒäd|Û)È Êkú3ÈuSΫÇH.T¿ä@iõÅCˆ0†‘âAqM›«²t&2×}B¡ÝL÷ñ“•àƒ”tqËÚ¢4ИL¿Ð`<.èÍîw>$ÏWÆn ââ1áÔW"·óà qÔ×c%¤ÍÅ, ß3nãõ^áÜý  l\w”ˆsŽóÉ‚}èBãuá¹ÄôéE\þ6VÏ\ˆ—¾Cx2ý£ ö?nÞ‚<ê5î꽕o®ÆÓèôu:úÛ'X–€dz@ÃñŸX±#ƒ2ÏAœ5,Ã³Ó ŒìÉö²CQè;ñV††(ÛÖÄÄv/æP³“u;cL™Lßž‰m’#µÔ†Çb@xu˜s[ïÀVs€µÌbUY ña5äWyA)[—¬'½ àاNÌñãÕ»úùþRÖ½ ´Éä­.$éùPÞyjC&P“‘ÁÊUŒPv°¿|GÅTl¡º$—¬\;^Õ%ìh40õÊ~T.úеM¼4È_‘CˆûÞþ6Ÿ¯RÐÅjØër8ðƒÊð÷Ïë`«5İT.½ÿ1,ºÍHv'¯Å¸±ŒC!ËR¶äXPÆ^ϸ(=–ܬړKÂus¸Äø%ÿ>d $²=±ý½8ài¡ÑÍÙCⵕ?"`9À¼§fÑ­MŒÑLƒ­Ñ‚"‹˜qÐxd%oO?Æ‹#hÈ*dËîtJ}ÂSSC`¡©²ã9ì(ø‚Mû5<‚ X2~äPì³¼³•÷¦mcèUá˜k=HJÞÅ{/dÐyFJsV³.á\R›6°Û”K•w ×G4PV˜Kv¥‚±d ?©!¼xmojKË1›jÈJOGïUËü¥¾¼ññhŽ¿?ÅYQÄYiØ~Œ†ø«‰Ýò³¾+#eXæcé¬I¯G¾ëÎÒª),È¥¼IEW¸‘Ÿ<“xwP«Ä8Š×2ý¹mÜ2ü.oÖyj=Y›>cÁªb’ú÷¢—oÙ{JÙ¶i%‚†Øp€c?î˜t&þ %ääå"+nfWPÞ8«‰ïMgqv ݢ͔WÙðï^Íþ«É+”ðóÙw¸†ðîØ³v³"˃§ƒÇw3øè•€pzËQÖ72èÌ¢ÛÉJ=•¥GÙ¯¤pvåA6-ÿ‰#(èÌ dVç¤qøUWcn*#÷¨ˆwïsÈÞ2‡%«l‚(â3èJú‡Ú±”îbCcO&ç|ÁÿMO§Ï˜d¢zÄ“Ÿ•ÏžÕ»ÈT¤ÆÃkð àÊdræ/g,⧨ä­Ì'iôÍ¨ï¿ÆGi¡ÄE©4í¦8é~&êÜ ­_ƒ¿UXŒ팅N§#,<[l,â?9ì†n¸á†n¸á† ŠÁÁÁrÛ,²¢¥–R©(ȵ?ñQa/ž~¼¯³BL1a²Ø;TÚ©Ø,MÔטÐ<,XL*j®Ê°"ÏÈgø«ç¶TŸt…æJݲMk8ÜÁø>=°y"«šëà"¢jjµ6MVTÁ›¥‚#ÞèÏ(£¶¡„Œ£¥ÔÛb¹ñ‚Ø»šäH¢â⨒´Ž)ZRMÖ6Égý»ß#œw'ýEPËË(­ÌÄwìx¶Ð©PðÝ·{pQr¼«7¤Š­©ŽÚ=¡¡šš€ZÏ™h4;Ð%@l>Pó& Î‚ÕdÂnèÉSoÁ¯›/ú6˯6ÙPpVC:³Y3ûU>ÑMâúÒ·I?œE¾VÅúa0èš«O HlŽÄ€&3UÃYAêC\R9K7øà[Íþo÷Ò}Æ]i›´%Å™pÆ¿F+v“Õ  ¨®%!°¢*jT vW§¼} ,>BNr¸>÷À[±ÑŒUzT×Üý ®h É¢ÞìêW ¡¥;©þMÑgÛ9‹Êö‡…}˜öx7ÂÃJX—fG”iŠâúK¯,¤œ7”ÒŸŽQS”ïç6âï?‘Q7‡ðÝìw9 ¡ÓÙÉÑÉœßîDÔ@@X7z ØÏG¯¼Kx LÕÑr¼{j³gùnÁQ".»ƒ$¯.¸e _½3ƒŒ@Q²‘kP‰PÀà•Ä97 !½¬„lS:9¹ÞD>2šß•öP³Ù0g+Æóï"¾f+³çÍaGàåh9?°cO>Žãám,;¬˜ì`öæãddÕ1wqÞ2’ýïÉÈ ˆª†ú:j+¢ª í(Õ™dèR¹®ã×ÊɤÑZÖùT!€1÷ޤbC1kx{ã™W1eX$b@®kçµMÞL}«@hÏŒœ˜Á–샬Ë?ĺð>\4n=‚Nñ£µ¢€XSGmtw¢‚;>eéGxE ÕBu‘‚ˆÞ^¡µ x³6_E¦¾_*göäW§ùM–f=Öf¿ÙLØJ›ƒøæ}hEiÖ±‚}‹>Ð!yxã_v„â&…ÒL#†~ÔÕçrð !Œ‰Ã‚þÇc‚j¢ðh{*úðè¬ûèî8Èìÿ®f×ÚïÿŸ½ó²ZþøçÝžlzï!$„@ŠfI(R-±HE±ëÏëõZ®˽v½V¬¨(véJU:i¤÷MÝþ–ß» E/ê~ŸgŸ6ûž÷Ìœ93sfΙCÎþ£gÎà¶+ûáÃfl· ÿŸ{*´::Q±–q×ÍŒ¿å[æßU@y]6Y7_Äòâfn{à2"¥Õ, Ó?¿‘F…¢•÷q瓹ê©ñ§å ;h‰H¨ìoY¹Yá¼”ZZ´2©#ã)zï 6(¤ŽìE¨_-ï¾³’sûõB­¶;æ ¦õVCÕG …0bñ= *Vý“ë^þ–ÊìiDóG/ñ0¨R¤¢!ŸÍU!»Œ\4*ñæŸÛ'Q™I¿ÃV³§¾.P5¶`·bµâeT@!…9þÈÑ5Ô9´»yí‰4î}páv;¥»×¡¼„ÇfP¹Î-PûíG8§<ڹ䮘dž׷¢?>½<>‘Ýa§ÕÜ‚K°ã’E\С*¤G?XlÇnØCƒ¶>*#åG©#€¤ó.äªx_b;ú5v+Q:.ù'áhmÀl6i§Õ"ɬÉô1¸å1$±7™“j)¬)bÏþÍ~L›Ú×Co›}žCZ¸ïqIº$FOVñÅOóc‚Ãf¡ÁOÃ@E…J-zxhÀ×% n) ¨A¢µÒŽ:¼©a7ï?Fð½Ò'¸­JCß=´Ûù³LU\åÛÂÐûrðˆÂ…“.!¼zJ'?ÌÅâÀ Àtm›©— )Ê BZA­µ‰æ#)kîÍõÓüðÑWQ]l£)3•éWpA´žòeOñÔz?†õ}¿Í¥¨ØÊKowãæéƒ †vûä—ŒÝn¥ÙÜŠ¤¥£åèpÄ7`ÖÊhvòúãID=–M‚ êÒ߯#o¹›r(Ã;Ñüuû¥.޼»œâ˜LF$“£4ƒƒšÂ]|_؃›ß¼^Ô±ñ£o)²)Ø í)×ÏF€u5 ï.¥ÁêdýÊbT—ÏcÑ#ñÙÿµB!þ~ñŒ»éNºo}š©Ï50öݧúÅó¼øã^È:—>½3¨j*@ÒTðíٽ¡kúÅÜðð$"íÁ¬+å£öÑûýåL J—³è áä~«Ó‚Ý%áÛé'îõ…¹^!8ÄŽÅÒBþËÿÇ“u—2·á)–”¤°0ŒÖ„1$¦†ÊoÈÖ}äË©¤Lž8Q:.¶ô=¹dÑ5·Æ8aM¦Œˆcô‚»è/TòõÒØ¶«š3F3d¿/!ç^ăjxfî&úÎþ'3Ï ƒ#ÿaÂ}«)YbÀ¨—H»ü^&„Bãî× Œì÷-À¾âQÚâËÔ'#úÕeÈɃ>}ÉH©Ä*V#HGøð»ŸßŒK'’¸¥™;¼ŒÈšÙö¥‚˼ƒ×û3ÿ‹2LÝÌï?Å›/oç²*B»ŸË”EW¯ìáñ‡6QZR‰&sêÙSeAmÛÇòovPßÿ˜Ôh#3™5¿½}:ûL*$‚’†1íöi$PÂG·}Í6#©ÃzâWÅ›¯}Éà±Lì“Å9{[ÉwH(Í{øøËiêeã“ïƒXðÙ½ U;)Øü1Ë7‰¨µzô ‡¾±àÚl‚¸éï4ÖlaÍò:L÷=Å•½tÐú7[OØÔ'74P~tn§eû|½±„W #ÚÒÊ—Ÿ¯ã»´¾\7v4Ý7$ò·Û§Ò/ø Í*bÀƒ/3©ƒÒ–NJw¬E{éC$:>Ä?:‹ßH:µ¬û÷ó¬ßm%õ‚þDø›ù`ùZ 1óãš"DÓæß;àœ]4Xvòð'SWÜǘ@¨X}7<¾ž¡ t¨ñâTñ§;Œ¢œ PYF–%Ù;à^xá…^xá…^xql¹Êï¾IRFb3nºÉ]®­é–Ìy‹ÒãŒTŸ<Ø3x³Ög°fWwºEõ!D kdSÄ|žNùég{òwç|ºª>—§@+{í*Tª¶dsu±¡Ÿ,X!‹¿€k^A8‡V¼Éª½)%b^ Æ4"ŒzÁmmÊÔńܞÈ(å‹¾Éј1̸ȽJnl4c©R0Yë ÑHoüˆ/7I ›n¢gD[¸_OúE IÇÆ'³&òeßó¹%CøI^Ë ·¬´ÐèC˜^D£¦Çý$ÏT†`zŽžÇ”FÑ%b0èкÔºhú Omçì‰å‚5–¼üZ £º—l?'9½þËÛ½J^úBRôû§(jÏ"¾•f!F-*§µÊsw–ÒHml(Á* g«€¥…ÆØ0‚$ QjKVÙ±j@ñŧ² •‡öfÌáþ¤è@viШ==¶5PNÈ’íÇf¿ÊêœÉTüÉô'o&ÍQÀ§¯@áÚ5ÔN?ŸnÃ&ÒmØDÀÉšÛïäp‘Šy³§a}ÿòZEt®CS¹Î¯ó|ðÈ`ÂñÓ]ØtNJ$5:]T{âÖyàu6Š}™Ü;#FúÏ›†ùÝÕØdtŽR¾u¥±ÈRwÃMŒZŠÖòö’õ²fþ«³2…|zß2*ºeê˜(tf CÆL!¨E…ìÔ£×iAPðë}S"+¨²€Ö¦C­Öc0hQÿÖÍ(² {à9L½ñ ú‡vHŽZkuì¦éøß«õ¨Ôêc0µ5 ( gF;ºçLPï©Ìï 4îâÍÏ?cÕ£_3ñ“Ù$ªdb2&à¿=€^ž´60žó&ßÁy´»íCžzu3?úÅ‘4!åÜS÷3Ô (ÁAUì¥Âì¢_,Nï¶PBˆ,#©5Ç‚I*•J ËÈ‚ Þ] k?·1æ¶ÉdDù] -+"®v} "Ù­4Gãç0ß÷R®ºn´‹ê¡çwòåw†‚èÂåòÁ'=ƒîî'Nò¥t×n~ JaDw¯Õ†K>Srù+ ¹ƒú‘šé.s+è‰Òû`PÉ`u É,¢å54§_Ì#€“€ˆDçP˶þ6ú“Ðs<¾;¾!'•-‘QÝt¬6úâ¡ÅG´aѤréÕ)ô 7óuä('ºPP#(2ħ{J»ð‹M#¾ºžzøƒ$€tDôΔžÃ…Ï=ÊöÒBê¥Dâ~2J~Ì'™>±;òÞýí©ä`ÿ“ÜÓ)â²÷æÊ»nf9<~áKì°aœÒÄу†_†­HD‘µ;oâÀÏèI.:ÈYþ&ßFqÑÂ!Äøh™=Ûë5§£RÀ§÷@e÷±LÕn ƒ“Îå²Eç’¿ü!>ßà$$é*zŠ^—ÜFŸŒl³ÐŒ?*"ú gB?÷÷ ?uw§½/¹Þ´ðÑŒ‹øªÿ(÷É`Òì ϳü£2éæ­|¯vï¢ÄÙ—ÞºŽö9ÀÆ&ŽìÛfÐüÚ:ªT ¶•³_îËä‘RQãá¡«VA4eÑœ{Ù.—„ŠjÞšó8ûË3I ŽÄ@ë–¼Änß,f]ÙÊ7±ì+—?}+ý©bí[o³ëËÈ1¢¦£¦ÇǨÿùÊ Š ƒn3®ŸGP»ûKÞYúEõÂæÄÂ/!¬ÆÄ‹¯¬eïödôšÂ,¡ˆ:‡€ÆªC¥rác8…;<ųQUEDŸ1\Ýg {ž»•ﶦRÓÆEL'+Îò̤'ÙQ;œ„Uþ¶g%P€ÝyñM¿‘Á¾mjØÉáÏÞaUnãç #Áïg¨—DD‡uº‰4ɆSRd1¨)IQîý™‚(|3ïA‘m¥%|ø¯Ñ4Š©—ñiÄ#aó £Gb$Xh0¯næðÎ|óÉAœQqD'I8”T.»ó ¶ªæ«‡þE£ÁÄ´t-M™d†HX¬N¤_|©†–Ô óHàâ‹yøªï‡ŒË^ÄuUvì._=•DsÑV7Ç2óñ…t·æ²üõÈ_¿‰Ì)&TB‡—:‘ó§'þ¼æÒЭ=7Ou>~DHàÄåt`·[ÁQA]äp†'ëÝ#߇´‚Í(=!~Ž«‹Ñ}´£hÇ¢Næâ+Ié>Þ×ñCA Ÿ=ô/šüFpõäZzþaûFÜ¡|ŠÔ©Þð/€·d¶^xá…^xá…^xñ;"ž½¿å³=žóR Í­:tm«8µ£¯ÞˆKs8|´ «çÏN‹µ Â½¹¿¥ÏØÈ¾Íô³'šÉûn+V5ÑoÞ|ÆéÑó0eMNw00g3[ºE“ЖxD@ïo@­6à‡ŠÀ€0ü"Ö°®Æ t:œ8D=>Ôq¨6¿Àh‚H$¹çŠ%wbæÀ÷lJŽ# ZvñæƒïÓØï2æ^;ÜSªÐ‚¹¾žre©Á ìÿö}¾Ú¦0lÑÛÈ­Ò£ä½ÙœšÔá~ÝS¸w¢Ù_ ô&½“l·ÒlUPFÉîF· ë“HŒÄZЀµ¹€ƒ…%ÔPKYƒc ؉ kÊ æÌM¦¾šƒé8«¶òæã«)÷,å1C˜rݵ̚4˜î1Q)Ý%óËÞY]èþoÐ@fÎC¤Å‚¥-¶ìr’{nJMþµl€?iÃ&󷾑HV®Ó­68©n5S«íÃç˜ù`ù&ÊÛ#ƒ |{ós”J÷@ŒvSÔNŽB}e•þøkÃè9âJæÌ½g÷%ï“/XYÜÊ/NþªøùêÑêÛ’DžÝüz#z_?Oà¯mºõ´¿J@¥N£G¯ lrë‰ú‚LîC¿=¢a#Û›<:Ô*â’Ôÿû¢ŠV‹NgÁ¶{ fŽj¬ý{“^WJmy‹›~F´j³§ð¡€ »$ÉÝ?EF¦‹ux({ßeC#€ž†ŠJû¥»'§­+F"z’)~ÅŠÝu4ÅœC tŽÂ’LL¿f.óçÎeÎìlÃýPKv\RÇžj<§‘µ4ÝCaÿž¯PN:qÎŽqh)¡(oy"@5f|}1ü”€ç“D¡„Æï ÀYG~k%-Q‘´_°áë‹NkÀèïô¢WÆw|µÙSCCj¦©EƒV.óaöYFÑ? Æ@£wQ`¯!×Q‡-2 jÙ´ì-6–Ç0ñÎéœí¶Ëˆ;Ø\7Š 2  ›àõ>Å6d*s®æö÷Zª(:°‹*O·\vER£Vu1hF_£H#%}=ÝcmÎû‘C=’‰ÁÎÑm_±ìï(“UÇüƒ:­_cj e×jö¶¶µ/aóøbrÍÞXò>9‚³‘º#›ØiqëÕÆz'6] ~º®ì3`ßÇ»|In[uu.š?Ÿys§ÑOWKȹ™¤èüˆÝE)€£–#¶JšÃ2 ©”œÒT`¥¥E@¥Ñ`pæòÁ’¥Ecömã馭®‚âÍ´ŠQôKí†s¯%N@ÛÉs¡ <áNPü ¨Õzü.™ø”¯ùÒc d‡ ›(âh.£<· Dô&É.P[a%|Ð(&]=‡¹sfsͼ1ÄÇg3ãò!ço»i©Ú·ž–nÇ,ˆ•…äçåÒØf­l ‰©ôì»—»â¾ì°•¦f Zê$þ¶;±X´3‡ÜšX†OJðèÒj¶-‡u!Œ¹m&Cã}<É’i¦M¿©5h|4håP Z¨ª(¢^¥A-‹ˆ¢G'Ê2² F¨:BIò$¦ÏžÉDS*õŸ½ÆV3¨$÷ÉkE’dÏ¿Ä:r–c‹»;]Ãô)&bÃÔ¸ª )Á”Y3¹l|ÖUo±©:ˆ°µ¨PcôÓŸÄ®yèÑ1èõøøú»ïž?ð=ûÍ®cë‹-µ?½ÇOcú5s˜7oó¯4‘Øí\.íCùöz·¯âÛ´ P,…µ4Ñ!Á$®Ü.×îqöA­1ࢠKm•}dYé\\‘ANhÉ7l?lsWÁNö÷J#]@róƒP<äþ™+h©UèqÃõD„’|Ï…„y"Aªâ/¹ã™oi±4 ÄåÖ9}Ñ ÑÒ°—îø„åQ.dtô¹äQOiÍ_ …òõ¯ðÒW{‰«©`Û7” x²§ßÁeéž3ª.+­--X­v\t8Yj±ÐÜÜ‚ÅîB6jÛ.u•JVòèëð׃"#‰‰\ñ¯ÿ#ë¶Û9úÄ3Ì^¸œ(AÁŽ/!/⾩}¶¿Î=3Ö£õ°:üè1î2û»/Mî<Î+»ø%®èóÛúi Àºæ®ÿX@Vk Y é¶ÿsoDP@‘œX¬.O Y‡Òx˜•O/áÃH°¸ðï3ž©ÃÓ1þFm,ÐʑճlÙw”Yè‡^Ajl"½g,fÆ;/óÈâU²€ W˜<;¦õÅ70kfìæùé×¢% >É&æ\“JÓÚÕ´47ãBGOâòªçxöÞ{(_x+W Çx ™KÙZÇÎò¯eh´h’®bÚô+HoÚÌo¼Â«ªØþ»>Êì1I¨w¾Î}¯}ÁÎ].nºö[&.þ/ãîÈäÑk°.L…"&pù“ 4“9|ËnÁG¢ÀÄ,.¹t(ÿc‹¨HvZ­A$ô11¼ç³<<åZ ŠŒÿñ̽äÒ",üã½Ç™ñ…†`U š³˜¤ú_§€e\'ØN.OÈ^±Zœˆ²²K«YQÀw ¬ãá9 ù2 \Ö¦>uÚ’¾aý)ÿÞÊ„g"…Q£èå·Y8ó- >Nl¸gºD«Í…({Î*"­»ßfÑõ«0Èbponº3N*lgój™‘7¥nåò-1Œ¼<=/­Ç1p C‡$ž¦2Ö¿ZG7½Ï+‘@¿JÄЉLAèO<Ò•O2ìʹ˜Fûóü¥óyC~}F2s¤ûl´X´†——.å‹5õl;ü9çßøSîœÇ‘§ïàºwu( ÝÝÄP“Ê}ßS?h–û´Wj2†l`éeóyY ƒÇ1{d }Äo/e&™½ù«PÙ[‰št7ø}Cqÿ ô1 €BÙÚ—ùïWû‰¯)gËÊV„°œ?þB‚ö½Î£K^¥›±uàP.˜2‘dŸÎκk)¼ö9?îtrË‚UŒ_ü2ãïÊâÑYײ>\@qÄrÅuTìýž¯7F’6%‹8•€Tò=Kßz•VU³fçgŒ^üs•Ãz÷ ¶:ØS¸µ½…ˆ wpÇ%½x{:Ð|ÁÏri €èn97ñ)æÎØIÿh:{ƒ‚ØTí÷Ô»°ZœdcÇ=‹øHZ£ íøKª­åS‹Ö𔛯 9m´Ê©ôìk`ÿK0ëÚ(b#àPY ™ÁN¾pËjZQº`ÄDÎñIÁïÖ î¾á:¶„+ˆöêïéÂG«÷²âÝçxå‹Rt_}ÂáëanðQ^¾;è… üÜÃu)¼bÅ…ÕÒJS‹Ž n™Lú^~-2†°ALœ9–X\T*í¯Wñ k ¹z ßü ;ŠŒÜqo3“'+8l¢›WŠ‚è´c—E@ÃfÇét"“ÎÕ ÎaÉk÷±à}[¡À¸Ï%Jõ ­¹=a,K,'  9Øì" àtXhõ;‡aƒøø“Û˜³"˜¸XªÚ4]4šñiS¹ïÚ½ ™Õ€6h3¦nà‰«ò~ ¾½¹òÁè׬Äêh+ /á°¶b1Œ`ìÐ7ùì?óùDö%>A­qŠ$aiu§ Åú½|¶b A ®¢¯á˜]ìö¶y\1„ÿûs¿UМØ#&pϭùxÈ'<{ý4²š¨=«ˆ.dW˜VrÃô…ô ôaø8pº$ìvPáDq³Í¶V -þçs÷´Ñ hÄ ¤K:'Ýí­TæíÁ’1›h| 9ï<ï{Û¦~‡ kÀ9̘;…Q)ÃÓç]^¿c*ë¯xˆW÷ä¾»¯cc0‚ÀÈEÏ’Y¼‘ÚA³èŽ“C.V[[º>’ÌqÃ(xéM_¯Ñ‰-d·ÝËÞ§^b™Í…&À…úü‹v.ý®ÛÈCóòu¸€³)‚«žÊÆ?w­V 5. 7nà@q#g¤rä­õ˜û’mdãÃ0NÅ9Éa§¯ZΚ“&&*êž=‘jOô«#"PÝueãû!xK@{á…^üQ Q‘äŸWº:Að£ð /¼ø=!I.— AU÷î:4/¼Vk»­Š‰ÅøÚ=Ô`G@ ±["§÷Ì‘Bí-jTÐhÃIšF0 ˆ6jŠ[ãBƒ„>$žÔÄKSTmE",m0iQFÔˆTÚI]h?zGœXþÙ%º¨©©!6Æ]ÜSq4Q^œOqóãZ‘Jßžá´æ ÀÜŒ“XúïN ‡VkÅ^vYÑ«dAK|¿ÁÄi›(ܳ‹b‹ÐØ$zöˆÂºå?¼•DæøY Šp|ªöí£¨¹q 0uǰU`o©ÙåDR@­÷'ÐOMɆǩÌz‹Ù½A¶™)9ZHyƒÓÝOQÂÛ‡Q"¥ÙîB‘!nàp’ýŽO$81ï#§Â‰V-¡1FУOúšç–ÐD)ýSˆ 2 ’ÉßW!9…˜wÒÍ^¹ -è4 )*âú %¡ýNkëhtùÓ-FKMa)-ÚPbãC0rC»ókqI ¢ËIxzia älÉÁ¬¨5mã,b5WQV¥!¾W>ÈXjŠÉ;t”BéÞ7…¸TˆTØGaC .!– S÷ÑX)Ú¼“REÁ§ƒbСà´T“·ãµBщ=HI D…LCQ.¥U´*‘ô’B¸'e;vQlw¡¨x^ç¾Ó餮®Ž˜˜˜ŸNœ@³‰´0U²­àl)cÿ®Z=AÑI¤¥DaÀFuA>G˰+ iƒH‰òCc)å‡ýeØ"A=Ï¥_„û†:ÙRMn®‹øñøÉNšÊsÙUP!8šî=ÓpW —i*=L¥B|lƶ Kk Û”átI§eÒ'Bå’Y*8°«€&AÀàBrßÞ„uˆû™Íf4 ?;«­ûÙSjÑå‘o#Ñ)$y|=ÅJuE#²!ˆÈÐ÷Jfò D'GâwŠ'€[Z[p8„…†7 š)Îɧ¢Éâ¹ÛWA–ýè~N±>®šýl=Üè®  ñ!(¹?}#ÔXj É9XŽ]% èÃIIëAL ö¤ãœ¦îR#:Ìf3ÑÑÑ?«› ws¨Ê‚KE $ýÜ~„«=AAK º§„¡\–ТܦBuD$§’|Ê-Y–©¨¨ .îø²ï.šÊ‹Èϯ #ñé=éá>DK;Vbu¹¯ÓŠ4œö½6Î*öl;B³Jµ¸^ô‰×ÑPSK‹äO\´¿{|íUä¨@ŸBr¤—%E‹KŠILHì ÇlÔàpµ ¡ Œ¡{Zw‚UÎ+Æl“‘EAIƒHóGUw˜ù ˆ.‘È>ÃéÔBþ÷»¨t’è×/ - Zj)8x€ «/QÉ©tÿ<ì ‹«ÕJxø¯½5[ÆÙRÍÑ=)ÝC°›‹ÈÙ”V!¸î)$Çú£ÂAUi)ÕÍ…˘¶1•·îžLÃo¶Ä•••„††¢ÓýB.(6êªq! K ß "‚}¤ò íD$F 2s8O$±g$>‚R-û·¦ >~IôψúM¼WP(--%!>¡“<·ÔÔPmÖ’Ð3ÂÓ¾“ÚÂ#”™q ’O=ý¨©PˆéŸZÎî.ÀìQ †ˆt§Ö†ZªË¢ûF`/­¤Yô%&ÉúCHa¡D„ûŸÈ>^¦¸h,/äHA6E ¸[:) áøtPTeeeDGG£öTH8Þ'Qi}ˆê™A’¶ŽC?¢V$:©)ñîŠÍeÌ/£Ù© ;§ ¥W´¹Û9XçD&˜ôÌ>„9ílyé6]Ëÿ u–£¹’#»s©‰÷È6-•ä—QßìDVddI" Çt_ŽâíÄOxx\  –òýì-³³-â’S ´±· PˆK%59ú¸{MA¬Ëeg¾p¹D¢z§Gp ù›vS_ÿ$ú÷B‹‹æªr*µÄöŒÅ[+9œ_B£GçwB¯ÀfvåasŠ(Š@ü@ÝŒ ²¥ŠÃ‡›‰ÌH#T-a­/áÐZÿÈDRRñWÄ>Kuäîn!b`"Á*Š9ïsªPkõD¦¡‡»†+Ζ*Žì:L­HlrzĹÇÅZ™Ëáâ*š~$êG‚ŸWm.{‹›p:œžäŽŠà”Áô¬gÏö\šÆàXzöIÀˆLkM1ù'øaá¬9ÈŽü&ÔjE™˜¾™$Ø)Û³üf-þ!±ô쓈‘æÊB©ÀŠ/Ñi=éÐyžˆu俉Ä÷ŒÄWNô·û &ÜQFqµ†øô(|$ •GóÉ+oE&8¹?iýÝ\´‡C•Í8Ä@RÏíO”¶kÙŽLÍ IWÏÑ’Z|ûãqüäÖ*ò‹K©kr¢(2’$áߟþIÁ(ÇÓÜ'“¤öL¶ˆµ&ŸUcð÷ÇE„¿Q’Q‚ˆ ñA)(´‘l¤yß!Š-$‚ÓÎ¥O`‡ UôHGi­¢¨JGJ@,æê¬Ä…;(ÍÍ¡¤üBCñÑ„—䇽°€£õ-8d™ÀCèã²™œm9˜e{Å&ÞÝÞŸgŸMíæxcK:Þ>ÄM«µŽÂªšeɉ_Bz‡‹Î- ÁâD‘bdÑ# ³jóIRR›ŠÙ¿§ˆVAOHl2©Ý#чß~ŠíC{áyD«ÉßÛyá6åìÝYŒ]£B¥Ž¤{/_ªµ$%‡ ÆŽ¹ÚŒE $> *JšÐäƒ G÷¤¢Å†H¬{]嬿`ôHD‡ŒËRMa…Ž”” læjª[$'¨«¬Ç¡ #ÂPMÞ‘"j[À?*½ìOB÷üu¬;Ø[dÃ7! }«–äôHtŽ*÷\Q íNßô`škªiý‰ñG¥´PVÒ‚>4Š@g9ù5´ØbbѹŒ$'CQ!$§G¡µVrø`3Ò:øØžu•Ó„ØìT塨ª É'–ŒÝÑWïdÏQ¢¬›€ÞáCrÏÔùlÚ[ÆÇ@@X,AZ _‡Ô  "Ô•ÜHQ‘• ˜(‚}läçc´ûÿË5»&²å±±íaMål|ûrM+X”á–s÷|®Ä®ua¤ôL&6Ѐ³î ûój zƒ$ÿp:I¢zÃüÞù¬¼ž¿±6ÖPÑèKr· ­.ê‹óÈ/®Ã)€¤¦OFâ‘<Š-¸d…ÀÔ¡ôÒƒ\Ç­‡0+j ¾Id ŒFj¬ ¼Á—ä$Z+*1[ ĤÒ”WÃBLŒ†Š=h“c 0œ ÏŠKŠ‰ŽŽ¡¡ÁŒV£E«Õž%EQ¾:ˆã?/"74œ\M,.>«s¬ú°Í×—M™ƒØ=0Ú}·^xá…gΨ*üüü:t(QQQ¸\'/L§ÕjY³f uuuˆ¢ËËS#ã°lã© ?á¼õ1üÏé|žù4 ËŸäâ0ÝŸ'hí…¿yo²à1?žyåBÌ«ÿÍu÷|4`O¿‰ë3OÍ ¹ô{þûÊ‹¼µªž‘‹îgñ´aDzÏxœµ(\q3|VA³s -½‹éÑm»}EJÖóÊ [ùÙ½ þ ~™ìØÆãc?æÜ“uòᯖþó•€:óÛÇLJ¬áÉÝË›ö /¼8“êQ9p ‡ï¾ÿžóÎ;˜¨¨.O ‚ÀʯWbµX1bF_ß®n‹ò /¼ðât.Ðe…ò²2öØKÉèŸC:µ 8Â0§úÝ*L2döi ÇîÈ;õ^–6’¹OŒè\Ï‹ÿ­ì¨½‘«Ž>› êù}:©Tª³’_‚êžF9;û/¨T'Ä N7BûMfá]£±Š È~Ä$EžÖ’ÃTÙ¼©Á³t¼ôÆ æ½Õ‹€_5§¸úÍñõ&½ðâWAŸ<™ÇV€¿á×òòûW`×øx6ÌuéÅ äò…3f¦š ÈHB¼.ôYøÑ·rÏ@'’¢ LBtÇrR‚b3™÷Â0~~ÛçOkh•¾?óÞIÿkc/Îþôw«Õj||| ð÷–€ö /¼8ƒPFÃyçÇ×_MKs3üÄé‡ò²r®¸â BBBÚK‘zá…^xqæ ÁÁA¸D‘ÊŠJf 8µçT¥¥¥HšeEþú.¸ËÉÒLc£ò«Æ,¥ Þ­P9Ùùøw©lll<+ûUj-õÊΟ@¦ÿ¨s­]Ï`ÿÁ]fÛ pa®(¥^9}2QUYõ‡^zeú—wyYùïáq"¨ÁZÚü+üA–Ò¯Oä…¿Îh PZZïÞħ7àƒŒÃ\Ai½r†Þ§ÅÇì5T4xvœÕâ¡R¡Ñé= A+Õ¥–Îã%¸×µ–ÒÆß8Ž¿Åü>q‘¿þô `EQ<5üeT^ ä…^xqFár¹ðõõE¯×#KÒOþVE"""°Z­íúÚ /¼ð‹3 ­VKPP ¥¥%§|jIQ 6.öG«Ë墶®–¸Ø8dÙ»Ô‹S‡ÓåÄ\o&&&æ/-;‚JÀl6£V« D‘Ï_M€Ö–VN'aa¡gU¿ DGGŸU²#ÉU•UÄÅÇ=üò ´¬ÔmcþhKÁ]Úfµ~Öñõç R©¨¨¨ 8$½^Ï1b_ZVzÖÉ´ ())!6öìò›•@yY9‘‘hÎh h/¼ð /¼8ûý‡¿4 *onÁ /¼ðâL«[åÿÖ›øõ /¼øýâ_ñŒJõÇ«ç¥R+ÅúGì¿ÿCÙQ©;üû¯-;*A…€pV•ŠTî.g[¿:–¦>ÛdG„³Ž_øö<Œ¡Tg5_OE&Ô*õ–ÿgµLŸ¥¶C­Ry}"/¼ð /¼ø á/‘Vð”æñæ¼è°P8³I'w@BQ@~ßÍgжöòŠ»œÇ™ç¡H}û+dB–eoùg/~^õêî_JWw{ÑÙ/V~õsÞûö¼ø 94^xá…^ü ý/¼ð /¼ð‹¿þÛ¾<€=å ½Ÿ?çGF‘ED——ˉ(JÈ]ýNТ¯ÿ‚¯_F±KúEíK’„,˧ð[ [þ2ßô!¹¹p×½«iõÕ¢:Ó<´øÚvñÂ’¥¬ÚU¨VyN¾ŸH‹(ʧޮZ‡±ø+nž=™Q£Fqק帪VrÓ¢÷(rŠ^Ùó~:}~ÝN/ßþLºXt¹:}¤Ó¢ßÔhk>áúëÞ§å$ºí't·òó:ÅIãÁ÷¸íöÙ¿ï}î}h=_-Â·óï–²áp-’J89o‘îÖc,XÁµWÿQ£FqÏÊzäªÏXtÝ2ÊùðÐûùó}Î&/]Æ%ºp‰"’r¼e;”OUe Qt¹/Ék##Ib{ò)Ø›Žíˆíí(È’èù^ꢹý·»%Kž6Žû½u üãuÖªÁ…ÜE›r:Ž£[,eݯò糧°òIúéj{þ'ÊËvæ(ít‹È?+Êqôv䃈ô“¥6VFj§W:é¹uÜñý;Ù¸(]ðÆM³Ô&O]ÊŽD§_·óRþi„®øu¢l£ñ¸1í(ÛíôwìŸtÒþuMsÇyqlΜœæctOÍœî(ß'ŠŠ»oÇh<ŽöÓ¤WäãéïØ¶"uà‹[žE>®\³‚,ËÇÍ•“Í‹ßÖ׎c%) (²g¼ŽÉäy¯¢tÖ_òi™xÆNê0OQruî_{¿Ó‰ÊJç1•ä_ϳãõX§±9¡Õ“ëñ¸¾Ê²xFxøëˆ´Qµs)‹ïü†–?XúõÄ9Òv>…ÉtÆå‰Ïbr*>`öœeüqoC>ÑΜÚüëÚ'éÚ¶tûÎ x¹ =È-m~Ûï_‡¥Ý¯9ÎFwÐâñï*[Æì¹PÝÁ'êh[:Ñû>Ʃ뇟õ.ý‡“ûbJ'ÛÚ6]Ûç®ü­®ú§('—cíŠrGŸ±Ã{d¥‹1oãÙÉüãSóy”6»*‰]´×µ*²ØíòOÚY帵@'ߺ~åWÈvÇ1=Ñ=%_Q,æë·_å¹÷öázá…7Ü•mj_Œx~Ò rVñò¹büÆŸÀ¥w¾À÷E.´ê¶¡J{°NVÀ]ñFî°RNHBû^Á‘Ã;Ï¿ÉÇ"jÕ'Î;µ!»•JT(²|B¤ý™v:N쇻÷¾ëâïÇÚq;¥î“”ž¤øñmré‡,ºqµºctœÐ—öƒáo<¹•Þ—?Éš¯Áoç6J,V7aò©ñÐ+§,+¿è¾³¶g¼¼û3èb->­¸ÿÊÉ\0q"/¸ ÆóäF«'¸ªü2}ÑI¯*Ý-œ¨·N¦» >ö=¼üä[¬ü¡I£úÝí9ߨ• Ï{Ý­xª,x½]Ñæ,ú€oþ ³^Óž”þiÝ}ÿ>¼¡óÿˆ/ïGõýJ.µà¦Õ«»ÿÂzú,¹“RiYý/L™YŒ;‘{W7uH®VñãºOxõÙm¸o‰¯fãS·si¦‰¬L¦…ÿeµ ÌßòO`dvÃ3g²4ÏõÓï”ÊÙøòmŒÏ4aÊ4qÁmÿe{)@ïÍ¿Š ™&L™·ñiMK{PIvY1›WóàÂÔ·µÓ\†çbÊ41aþ}|ž+¶¿Â²ûG©‰$%Ö°lÆåŒ7™0eÞÉ—f+2 }‡™™ÃÉÊÎbÔ„‹øçʺög]•ÔÙIèodóS×q¾§Ÿý}9Õ¹¼6õRÆÏb„É„éÞoqÊ]æêÈùñsž{d#­Ô²õõ05Ó„)óžøæÍ' /ˆ6Zš×pÿ¼åÔ÷·ÆÜÕFÖÂeT{’'…«ž`þ”ÇÙÕÚÈŽ7ÿ YúÈ{|·«²])’ §ô=Ì}—ÙíGÙšVrw¦ “i—N{ƒíê&‡ž)ÓÄ…·<˦ҳÀ& *Tê?X… ±˜Uï½Åk+qrË»›G¯Ïañ‡[ض};· >‹éT¨ÿðe‘›Ù¿b Wgš0È”y1ÿ|'u?!â'ú$õ€â­/1?Ó„)ó2nyr-ísPöòÒ=ïòC^=RÛ×[žbÔèQŒÈÎfñ'Ç ½lµPqd?!ãúÒ¼ùYfgš0e^ÁÏïN¶;÷òÊ-3ãÑk—=¶ŽªÖc.ý~5ú ² Ï{•)™&†ge1ú¢+ytm`åÈê§™åyÖ4í^>ÜU×…qI›xpÞ»{l½£åþžiÂ4|,“¦¼BÎIs. p€×zM{«=:ç/\rçge3"Ë„éÁ ]$eì”ï|ÃÍÃY˜2'pÓ3ëÉ?´š-8Þ>He³«“þsZÖðÏL¦¬1\|éKìu{˜nzžyžq¹íéÇ6,|É-s&aÊ41õ™MÔYÝóïßcÆ12{#²³ùØ@¢aÇó\–iÂ4ÜĘËçòâPκn9æßñ;Ê\]¸îNlŽ Ü?gÙ1™°›9²ì6L™&Æ^¹€Wv‰@9ë_¼•‰™&L™¸õå”×Üî&`šþGâÉýíã|Åßy€«ÚÆ{ÎlÌ÷x³{—rŤq˜2MÌyû’r2Ù¶Q´ù˜lßúä:·¯hßÏ›wÍbl¦ Sæ$ú¦€&`OϨì,²2`ãOm€ÜeßϪjôŠŒhˆbÀ%ÿfëç¯ñ1ÑžûÒóøøÅ÷ùz]¡ÇçÊçí9SŸ™Ev¦ ÓÝ_Ñê:6-U¬ø»‰±w®ÁŠ…#_ü‹¿eš0eŽaÖÝïp(vi=//˜HªÑy¦ÞNSªäC äoS–’Ò_VòÅó vßlßÎs× \†ødþœkç½M‘T|Ìõ7|BÝé²+êÓdWÌ_±ø†Úu˜^üRüJ@{N:xïþ“B@­i%wë6|ÇCßmg°¾”Õ«Ž 7›QÅÚØŒÍ)"+jŒ¡á蔾œd£ÁÜŠKP©tø $—Ö†Vœ‚€ÆÇŸ@É…,Ú±¶6`n¶¬Õ¡V‚€bo¢ÁâòÍuøû¡Èžœ§ò¸Ü&ƒ€ RpY,´¶ÚQÐ ðQcknÆæ’P0ê‡VqÐl‘PÉVì’ ß€@h5cUtø¢mXí.ɉS­_0<É_@ÀI«¹ ›(£ Á/$ƒZÆÖjT˜kë0èüñUÛij° j4z~þF´mm¨eÅ%”´ê V™)uöbñÝçØú‚âúöÞ;ºªj{ÿþì}ú9INzB!”z“^‘&ÒQ@Ai@*H)Ò«Šô^¤鄎téíäô²÷~ÿ8¡éí×ß{ïõ˃ì‘ìµö*Ï,ÏšsúÝ¿4‡Š·³€»*5zcÍótzÿÚ¿’Zöy:Ú? Ë(>/Þ’]™7îMÊšˆi[е-ߨvòEC¯Û%ÏOQkõ˜ÐHnv+v—j=¦&­Œ-ÏêÇDE), ³ò®âŽ•JG@H :AÆçvbµØñ  6š öxQ$'vk.9„j5þ @…Øk+´D AÁÆBŒzraFyD®b·ÇnÃnwãS4Áé–\>ÙÝáhd»ŒJvà’U‚À–‹SЄèsâ|»CÑb·¿S/9Ü’Œ‚†€P3zQÂiu29ÙÙh5–|?vktF ¨ŸÂn×»Üsš(.dqÏ]•Á# Z¶âógE‘äçÚð>5‡ZŇËQ€Õᕃ)“^ý»ÿ|@ý_1 ùÈ8šMçǤ$<ýÜò€=óû3j«ŽÆ½‡¡H¹Ž¯^W&ô ‰…£c†s)õo§êŒ­LN0Àµ™Ô³šËß!æ¯ušŸGPÕW³s:õB­ì9…³GÏcÍŸCö›£Ù²¤<†#C¨7ëÍF¶ @+’²y o͸„©î>pepjå\æÜíÀ¾¤…>¶8üåܨZ¾(w%ûÝ)ìx¹$ªŸQoúšÕmV>õ—dEyðY2¥ý×ìzq-L`É—Ð*!$†{±Ô{‡éïÏ¥J`ÛúçÀ‰š”(y qÈJöU7¡ÂÊÆ÷°>­9c…§œ­9_ô1Ÿ¯õP½ë0Œ@úÑm\–"v<‰ª÷–óþªÃœ-]”—ŒXóì¨1hD cÛtúæ,BÕA xzêneÓêiÜ ƒ*ÿÍŠ[Ða2i×™9ô·’ëºÎ´Td°rä^Zí8ÎÒð˜È‹£7ñò¼ö=õÝübÑóù‘$j¥­¥Ï‡9]µqûÆ‘Ýy<Ûš•Awh0õf¥ÅØfõ%Áß%q²Ü\û}füÂÞn*Nî=JëI,VŸeö²m¬:T“nîåÜŽo¬¤9Ä_šAÛõ‡i’Йü9CðŽÙÆáÚ v|Ì+c‘4ºá?½Ÿýf’tåw{[Æ’ršC;í MJ¢ضðG¾_y‘jïÇâq”§ë°hß& V¶öyëÀ jl†3©Ýc%åV½KÑ'+MÞclýþ8mv'±8ø6kf¯eÖ÷Œ}·-c—´eláOÞ\úß²µ×\£vs¤®®N§ö»+Ù¼ê‚=‘æ¬ÚÓ‹’OÙÐÿ|AP1ÏÎKß'Ñ»,8Rw1óƒ‰h4‰&zH?½Šõû÷`mA¼èÜŽô7‰×ªGÿqàâsãŠ{›9s:Q%ôYwÇÍÅ=ywmcV'%QÀnçºyœbÑ«UO¾XPkÔ¨DáñÞîõ›uþ÷ÛUf½µ…ªs·3¥¬¸Êœ™ˆï aö©F,=Ú…/*¤qâÈQ*ZAÌÙu,>Zšo“&S G_# 'ŠGþcQQ¦õ µ~•“N(ªÉÚ3Šw7Å2aý!ªÀm¼Ò•žêYö²­ö©ùB@T©Q‹ ž€ ´ÿ¤+¿]¸É’^ëØQ4œ·[•Œ—W>XSÙ?¯÷ˆ4è9¼ð\€ïövÆMœÊŽ”|Ù¾Åãhë¡ñt¿‹Œ˜ÞtG@QÜž4žâ+“H*e'iùF.¼Á†:¶.\ÎMo'ÕC÷oìö?ÚgUÈ »mä[øÐ` À¨A@ÂQ`Åá.´¿5F‚ÍF4ÿÉ:ê8š½ÝE‘ñ:Ýx%'n¯ æPt*”»×¹-FS‘t²,f‚ ²­~ÝSm"8ÄðF¤(H'v‡€)Ø€ ¯ËWRa0©qÛ °9<Ȩ1 ñaµ+h+V—‘PEAÂaË!Ë© ªt†úuÿ™&áqÇñJÇ©¼9°á?vÞ~£“L}cëK~ˆêÐ)ÚíJb‰˜ÄŒe»Xµ¯Ÿ7Á{u C'Ìሥeµ~ïg¦ðÒp‘™‡ŽPý7¯w»}äR! •c;®ðÖÞ$ZøŽ0aÙa6«ÂÇ%Ò‰ê2–•ÓJ£Nåû¶£ÙòbeÞ«‰N€;×´4ï ÷œ¼üC½Áö`ßö™Ê‘Š}(T’nÛ“x%n¬™ÇÑK§¹W¥%ñª'c°™È;ã"-êCºàáЄ±]‘DRi'gÄð¹WØüq¼.N c5໵…¯&|ތƌx³s.ž@ýÕ6USy¬{çsÖd4á­p'‹}H :AÁç £Jµ/˜0¿O£ô¨ÅÍõX>wc¡¦:ÍÓ²ê+?EäI$%@îÁ ¼ýÉ–/™£y}OKåãLY¶ŸµGªÑ?ñŸ>CÅþK˜Y3êÉkÎÇ0ýG«d°úalȬ˫²–v+“x¯dœ[ÃÒó8߆ˆZí×u&µƒ Øûå$Ží;C±nu‰~êæíI§I‡((=€$7i;&Ó{K-¶%M/üNw㎫ s’fà8Îȉ'Ùsª$=êGNÍëÄF©tI‰ßéÛ¿m™÷^bàž¯¨e†³³Æsáv 5ݧyïË4z-ßEóPÍDxfoÿÌÔŽ£YóÖÕgh¿'‰%曬˜¹™%›Ì4µ‡º½Ù0¥>¡Yxsä®ÔŽƒy_ ßÍ‘šòú˜æc‘4ªÁ3¸#{ä[\¨|9X”p!ã³<ÆD}Pz5¢×JNYV@HX ‚Õ*!*N\²S` Š5§h È„Vñ`·`÷( ˆ‚‚0é5ˆ>;yND®&`j|زópâ¿Ì®Öbò_0—$.À()G˜5õ+V^©ÄGãùçÿZô]ÀÖ¡q°åƒl~Ø‚®ñ"’=›]ß¼ÎþðnÔÎõ™q…c‡F%%QK¹Íê¹ëX±î»V(ÌÄùhn@#Af=’ÛƒÇãAòI¨ô:¯‚Z¯G¯Uùuž\'ªàt¢K¶ÕQAÐ`3£‘œXm ì¸f³ÕsÏsX¡0úR–Ÿ;0ÿ”0¨Ôf ™ägÞ'EHƒ†upÞ?Á3~àÀ­4œÎ^ü5—óGc)²‹Ü‹ùjÂ&*Œ¦òt;’6Åó¹uds'ìà¶J5nÇKñ:®ØÀÙŸ6pðƾì֜ҡ"²¨ÇrrŸ.<ƒÃ+ƒ3’–S§ÑEUHøÊ #Ë’,*ù'V.å‡5gIÓx¨üö(>ªåbÍ7?”ž‹ÍQŽw— ã-õ^ »F©°sœ¼é¢ZϱÄîü’íù±´ý|µ-ë˜õÝU÷¸|ÇAdÎôïVQ ž{G™?þNeäávFÐbÔ8º×ô±wéZ~½Czí¢v±tQ~bô¬=d« )Û”n{R/BF’Tè iX¾ƒsÉç°Ì:ÉÖ¥Ñ8ª2f˜ YYq“w~3_ßÈQDo(K§±£hiü•íóÇ2ÿŒ¦(õ;¾Ï'Ýjbpzž§¬ø?À+(òîÿƒä¯¿ðó¹ûß_|’¤€ìÅi·c½¯0å{ý†¬!¹A|¿gÜ·»ÉRˆ,Õ˜÷†ö¡jÎ-\ÈÎ[v$]eºéE‡¢),›ðGïgãt†òʰñ|XòQºH;YIkùjÒVRUC«ðÖè/yµX6WöýÈ‚û¹§•)Ûª B¬\?³‘kû7²§Í`FtiL1³ˆ"êÈ=ò-ý_Ä'+žXZO›HûBÂW’ ÿ–d?v *ß]-ZÂÊ—ÈÝTë>‰+§±dâJ.äà´W ÇòatðþÄÀa×Iˆ8ÇÉ» 5Þû’ðŸF°ËU†7?Mbêz–®»‚Nû€ëwD6îÉÀ.%T¨$Üwòí×˹oÃ犤՘‰t«beϲ5ܸ¦fÈG{iÐ}8mœ[ùzÞ~rDŪµâ½þݨ*#É*tƇì^¼K™×891‰õq hmU7Êo†ÈŠƒìÓë=q3©*5æÊ¼=f/«®°qÞD¾»`CД y·èýFUô®çØýgj²òß þËØu‹fõÆt?™û‚Š˜¢ª@4ÇÑâ‹å­¾™Ÿn9ñê¢/òJQðYsÈʹŭŒR$D„âJˆ õÁm~Õcp‡Ò 6Íßê6¬/„UzLxŠFQô*¶U§|Ý D@¨ñ2õ—<à"S‘¸Žs9Þ`}íEyùÜÏrÓµ_]ì÷ïa5˜ A/ÜâÔY=áîpíTmÊ53ù{ªÙ”ºËRIVdÊÔìÏÇ…VŠÇg&¼rF Ÿ‡÷ïrûV,õ»W¤\±'æš)>˜³Oån¼‚#;•<ß îÛêòR쳟(Ãi0àGÖÖZÇÒÃn¬Ü¿¥KUbU@‰*¼à;ÓîÏYF¶^@üÔYô®ãw¶i?‹Ã6Ò{˜TÙ£àH½Ä±ãGÛ¬à‹œl½§FË=VŽšÂ¹ˆWé7¸ÅECí~|¿© _|–Œ¿$4>‚œ[É<ˆ–qÊÑ4,ü¢%”» žì×Å*P]p‚ó?©E¹ºˆ€Xóê-K%…cÛß‘VãýÎŒ"ÕšPåèe.„’r±%¯‡DQ.¢4É9Ç9v·!1% (W‡Ú–H‡9´·%µ?V :-¨¹êhH±ÒÒ|ö›A@fßo÷vlQ4:Aázr®f‘iÌS • ÆB®ÑAvÊm®¥šˆ4F|Ÿä[/óB9•ß’Ø”®÷×qž"€=¸œ.œÙ/S1 š²áqØîg <Þ¹›Yº£­IšÝ‚šå Ÿ—™.6q¨!ÈxÝÜÎIGïSx4fí¿¢˜ ¨kõ£wá—”`Â*b\·ö±ÿ¦ƒ²§PæÔÒ}"62ïÝâZ¤‡ h"ƒ´ÿ>!$¨½¹Ü¿y Ø DYFцQ4*Ÿ˜¹íC?ù `2Qõ½^ˆ»×q믢è··ÿˆf 0¬ç-~Í-EéÐòôàï±rÇ¡¬;ƒoë9“úÃ*`?L>‹ì 1:3 ÕùãÉK·$¢Õ\`Ýnº|܆ĀGo/E¯-#¸ðÁî55üÕ>$Ÿ¿å«#À„ò4¹þ410–W/§hMl¾âD4(¨^cÔ’’DL8ƒÞã{œæ4¨É(¶Ö­MŸþ˜dE>Å©ýoÒv¼Ÿ«XŸrëîr;-·Ö@‡åÉM¾‹NhH Úÿ¸"fñJçäò©Œ[|š¢xá­øì“fÄefÑW‹Ùy%E, ßøß~ׇáÆÿ\J?ß]¶ýð39¢ŸÓMÖ¯GIÎ~À­ë”è>oz›Ù>|5·TÌzïTø€éÒøú³ŸÈ2éjÊà ŸRï‹´“«˜üm½Ö}JrHZ½…3%èòIöMú–Õ'oas™iðéx¾ht‡áCïQ>~~‰±KãÀyƒ•C–ñóuZmiº-˜Í[Åøj‚àÆ’•ÌõÌRU„öolá$˜ˆÊ"ž¼d]nNÛ@‰¡|Xqîffâ$CÅ·™º"‘É#.¡õɈÀ‘7ygòP““¹'‰#Xã—SöÜ3$+J“Ö9ýe:J1*šcÈNOÁY¿íßÚÓc.Œ.@,ô dçÁrtbd?z"²O &¬œMH4¥£ÛRÚ]@nöm®?0R&Ž0Õ³r:ðÅál®Sƒ~rPH"iÿ›´ïÿ‰ØJ (ûã}lÄruÅ4‰¤ïâ~TU+¨Û1ö»’DŽ;Î[XŽ¡Ê‡ôFÆž™Bž÷)Îú¼®«ËéÙý ïìYÈkfvK7sÒ‘$ æ°0ŒO-w3KwT¡Ù´ ˜ OƒP î´¡e‚üÚŠ xmöQÎe‰¤_{…vf@‰¥bh12óÒ¹xê•ÛV£R¤Âƒ{÷ÐG%̤F¬Þ—>ÈX3RÈqÝ Í]Ÿ–‘"úÈ^¼WHÔ*š`Â2#KS%¦ôý¸X0!‘Úß* ¡-'²·Á6zæ@$Ÿ3g2èùuKäû÷Hјˆ(ÑlƨµððV6!¢‹"¡QÄ™ €DòޝÙ;™‰ ®ÑÿFba„äoõíߵȨ ²#Ÿœœ[ÜL/Bñ&!\8r–Ÿ·§„5ƒd«D`tqBu¿ÝÛf"*é\¹/RÁ CùÐXäô,\¥ÂÑfåp÷n&²GMŨ"„N³uO+j"!£!¸Nsj®¾G žèbî4έÅW³“p›¬ÚŠt~/’ Îóàúqæ%sãZñÝf2ñƒ:87Œ¡ïÚ+øìQø~œžá.“Xä4'“uÔ}o(æÍƒØ©TçݯæÑ9ø«gNcyRj‡ŽŠ=3¸{CT;gñéò#då9)0·añо”rì`r‡9œ0ø³b(>gë̦¿[C1®f-$jîQTNÿ\‹åºò.àÌM'Íw䂚4(¦B²gsaÓ8N7Ü˼R[é?´A!Z²®e“¥ÏAP„òÁÆßqÀy˜­Sâ)ãÑÜN7²¤Æƒ‡œ3?2bæCÊ•<ÌöCN«´ä£Ñ‰Ú³ƒÃçw“zý÷´aT÷0.ü‰sYyØ *Ò{Óxº°™úgÓä…lIjÃÐ)Fæ º@\è.¹hÔ¢-Î8ÓŽÇÒÔµŸ™ß,åç6„#u†OáËÖ±œZ¶–Û·rüî:*ujKîáP&ÿÐï¾é|2ry¦@¢K·gØ‚VضmaÕ®kè ¿pâ”"­0ôÓÎT¸»†ßláV¦ÙÈËÓ1¤øSêÕ­éùîIºîYBó#R8“[·r(£*ƒûÖAç¾Âw³’ˆlØ‚:ž-Œ\´›ûÙ¬AmY:9ŒIc`ìX¡ŸåФÆvVíUÐë4¼4z'k¤rvåLÆÌ;ƒ'È‹EI mŸÁ|Ѿ¬8N0uô5BŒû9zÙBîÃ|?ßÄ´Ž1äíË»ó®¢D´Ú2tž=žÆ—ñÙ¤+ 8Ëmc]תJúƹܬøC÷¤¶t’Åc²ïVGÍFO¡ßKÑÜýþ úm¾‡Ú§ Åweù‚¸÷,`ø”ŸÈPë‰.Óœ>ÃÚã:´ƒí/àrK”­)öCWjÙ‘·[V ˆsL}s ×ö¡ÆÃŒür97%%y{ú$ZyÖÐoL*ÕNqÅý!_Oký×/?oÿ‡`EÁéráp8äçîË?%,j,R„ óbÆ}~›[´ YåxŠÍg÷¤ƒøjv`hŸDÂò~f쌭üò™Ÿ nÛ¦yN¡²ÇEîí},™²ŠØ¾fï¸Ãk?âÕ;N·ŒÚñ ¶Lu*7¤UÃ|N l àD_»‹µÇ.‹pù{>^}ˆ¶|H2¸\ ù<8ìT/¢ÆÅÕë8e)J¿õ“©âá zŽGyù w¬îøt˜½FHh3,”Ÿ°‘wfÒæë ÿq;3NÍeø¦”¨ãÅQ•w&/£Žë(ߌÙÌÎÝvdÂ(¡\dñÐS„tù€‘ebÈÛ˨©ë¨=çšõéÁÁ*†Ï~ ÕµMLíc¡ãw³)gIåÌ‘cìún/%>kH€Ý†Ýa¦q÷¶\tW b›WiQô,ƒÇfàqyeðØ0}èeÍŸDeÉ‹åÎNøŽ°® ‡©Ã¸Õ“˜y[wn“fqPÄëyœ&èyûób®A¯ÿ‡]c’$a·Û ÏÛÿt}ÈN’ìÅåtà}€›:€¢w/síáÏ’M‡ïgS¾ ƒ_NcÏ‚¥¤F[ÈV¿Î¬-1Ÿ:Jºù,óG\ÃÔ¢+êÅœ€ÑßlâÊÐ |8ó³`Ô¯¼²x•\vÒ®ígÍô5„¿#rôXWþL³(;NŒÚqŽŒŒ Z4z‰&ÕÃðÚü·Á‰©A_¦Ægá| ÿªÃ4o'#ÉÜ.ÉçÆi·#:|¨´vί_ÅEUE¯ŸF%³„ÀyfuýSÇñ|ߺD‡i{iÐSF—m§ÊÔÍô¾:N3v1zÙYÈ7Û÷–è&¸hÞó!5l3ì'vÊÁ¢#Jç™7ä8±ýûÓ®h(Æœ=Œœ²šÚ ºÒ¢Ï›§gäìxNm`öp7o/šKYK2‡÷&±gõ!âzÕø£q¦ IDATÆè°aw„Ò´OÎùîÓà649Ægcrð8=H¸,‡Y4âMM£²ÛNÆÍ¬˜¼ ]k/gî¾È¤u½ˆO¾Ê¯™™dXìDø¼i·oç géiZÞþq#ÿ¨üyÄ™¼ªÅ•ÄpŸ\XÍÎP„¸[I¤Ë e9*.Á„€‚Ó~žCÛÏróâ{,uX0Å7¢s¿Q¼VN€ëg¸FçâE±מ¼ÓT„â×O“¦(”y< ÷ã×bmy×äfp?/™ü—[ñ©ã½}„S®R4*C0N/ÌŒÃåè5÷}Jú„ß[t²»Ó? ^,¬ó&†eÅn±#©CI¨VžÈ í3±d» ?͚¡åãØ=ŠñA7Ù{â!ÙÖHÒíD$$R*(¬ü.|ÝYXMF!”Ãóuëþ¬1z°eGÑsÓw¿‰JU <_‘9y.¼ZùIÝ8c4q7N“&' Æ[˜†QD 'úúÒÕ‘¨Už`ö ¨só±j@Ma8u±Ž“ë,¾GJih4q7/ñþIø·ß¬Îþ…½½‰¡­ÊRÿµ£Lø° ÓÕ •Û2hrOxi/[VÏcÇö|4å{3aDMbËäqíè"Ë¡ÕZK§“ OˆTèŒzŒæ»œ:s%ÔNº=w ‡T8àôò­(¯÷ JH1²ÊlåòáË„•2¢VYKe• j€°sÌêÞ1 ’zoŽep»bÿ©(çrçäiRJ´¡³ók×­åfâç4o±ò^*o:y”$º¢“ÝßMeó’\tÕ2åóVćhþ½¾UŒ¹ÇX8f7¢V ²_Â,ààØÃr þm AÉüôøxÿ¨V‚fï0bü –UzŸ‰íË¡‹.I٪覼•8žYkZÐiro"€ÀÄR„…ÌeXß;´y½¯½ODDfÝLªDTéé<,Q™š±†g# ‘”¸}ŽT!á¯À²“ü‡·¸t/ˆÐ‡IüHba˜þÙq<%ž9onžgêb>w¸xüTP=…*4ÁDܹÁMK?¯=ÀíÑX³1Wz‹ûö¡Qüž¸E;·/lcËn5#Ž¢Žã$Sçd×±@¢÷¬ÆRñcVÍ©OÇþù¯èþãÁ "ÚˆêÁ,q]7íe"ó·ÒyØI.¥öäïúrê #æ¼A$GR{­6îãX™+ë>aÈøSlû²Ö4Q•›òÚKCÙ*K%YåÅðj4×§ï"5¨9_¯O±œ}Œ˜° %£ÑdlÆÒm»‡i!}=‹îY¨½w/Ãõp{]?zÛDóùíýˆþ'š–àH[¹šÑÝ— ŽoMß>òJù$ØÂý£Gù5®-½¢llü—8v ¨,¹€?¢ÍáÀ#ù³ÌÁU.ËbÏ™OØ&ŠàÉ¡b÷-ŒîŠÆí"çÒIn½ñ>Ÿ¹¯sVô¾3§B¶'Û£wÎK»9©­Gbhß¾œìÒ‰ÏàB6w’Îò°x+zèü„pÚ¥m|;qšfð~‹²¿ÁšGøà~ªt… µøÔ¨ƒBˆ¸uŸtô)A™Ä`žÖk\.<¾ßz±ìœ\ð9³NU§ÿ‚÷)铌E(_)0µ¿£YǾ› ïnA]ƒ7»¤KýðÇoðËçw©ü5.˜øTκA`”[nBñòsÕ¨5…5v…@Ì.‘Üœ‹\.HaÏú¬ø¡ •ØWg0âÃ:5 @>G¿ý„ù—òù¢÷(þ”~€ë!7/Ü&/þeª<5éþ ÎXb¨T¼8áâ_ÒyÜ}z’ï4G÷ßæÂÍ÷Xãv¡ ŽãÕ¾ y¯v ÊÞ>ÅÜ;sÃ!Sé/h[5˶A|u¹ï·ôrï×ûX-Üø5‹˜²QèžÒ·ÿ†rÁ½ãË™þí/”èÖ‡–íü4-›F³Å¨E±§Qê­ÕŒí^‚@áÙ½}+®ýãl4Þåô™;È¡6ÒÙXÕ!$4kŒwâT¦4‡ÛyMF-¤¤Á…VíEòbmXân^!•G—ñ\<¼¾“Õkí|~ø /êr8¼aw Ê=IAÑŽ|5½9Ñ–ítq‰ûÉ÷Y>:Ï[F—*QÜ[õy‚†€<™&«ðűq´œ~„¹›OðòæiLßz”NŸ7 û— x5ßîáN>Ýs‡_¯X8ºØB£>3ø YÒ×­"O÷€U§¹ô{K)ëé;Eù ö{á¤xœ¸¼RáÔGÍÉù¾dÚž8Þ›Ù“®/íÎysëÝáä/)X ÂÈUêQ«y“?ìÌTA¡H­7<®à~¶?1„ÒÕÊýãY«T@ôZ‰Ò)ÆŽ;Æ™K¨R¿“§µ"Ï#b¸2–[NÒÿ£'¨#šŠP¾Bb!><‘£jVõˆÜ@g0(â‡%™Të8‘y*‘»uù:zƒˆ( þo~c/û‡€ýØ7¼¾f-¯šlØìeðá4Òeq`õny}<>ò*#†ôíä¶ŸÃʯâP§|G“á;yо m'±ú…4’‡ì“‹ùlåIš4VX>˦’2góï³`ãJ–ÏØÁ¥ë»¸ºâ,ÚÆ0edy"r~bÀÈíÜ)Ê7‹è»v-í‹rgÕ’s³et.ïîYMUK*§îgû‚ƒÔ.}wP5úMìI¢ ò‚Î2;ó™ö ]:ÊÅNMdþ…‰-OÑpõiD<÷71døJªŽÐÙoRæó­|ÿ y\žÀÿ~.´§¢ <_ùS6Yö ‹¬À›#~¢»õ:[WÏåÓ±fz½] gX§~ú35(¨Õ5ñŠ~lPÒ²É6ÞcÛ¸ql“1ؘ0²²óÈ‹hGÈ,²s½ ¨Ñ»}H>7.‡ ›ÝZñŒ [yp|;K~N‡ »3Õ#ì– H>±•E+N“§V@q\Ž ÅaõQÝ^ÿwˆÖTîÛc +V™].¹CÁCÒ‹·¡e=’#C™šT¾ð —¤x„25I °`7GS±|0ñF+™¦PâEð™Â +^œ0_&Yá”Ö“R`'Í‚eÁ•Á¥¥³9¤AT\'§I[žov&ɾs¬qA–Q”"¼ÐL‡G’ (2‡Ÿ×…Ãn¥@ãñס—…'sh¸Ë–¯¿f«ìw"K|‰ÀÅÄ­¬¼œ&-«P¼hyBd/òsìþ3Óÿ¢”Þ-™²éS*dîâóΓ9Ýj4µþ†ÙR®Ãwp²½OÖxû~z>†¡ËØPYÇ™Ù=½l=oÕ‰0ÍßîÙc¹ÀÆ'1WoKÍâfî{”§."¹° IÍß²H|ɾŒXÕ‰Hœœý~{6l¡Æðv¸¯^!!¸±!!\ññT0Ž Obæ ¸qp36Bçïk¢òr2°¦¥Ñ°YØc3çkçž'®å[T*ù(rÖDã/~¤ñ)ÌoÒ“äy[é•(üMcÈ_ZüQú5.ƒZÂ%VáãÙUþæ\ùdy¹j—ÆÑ—»%<]&ñµ*òQïþ¼Â_3¼EÅÂúÑó‰[²qöLìÇâ%;i?´å3iÑÏ‹[§F¯%ñ©uq02 ª'Qon7® zEAF,|îÃ+‚bР±úS ûßâÆiÔ¢S (²ˆ >!í&㳩Úþãó7{{`—Iì{áMÒ·_¦Ãþ=|k9Ì”oÖ±oçeª·¯Hõ΃¨Þy`c[¯¡ì;ш¾³»3¿ß4&¯s"Ê9üú°9 ŸÉô«!´DÞê—ÍØQƒØbÉI7Sëí‰zäÜÍØÀ–ó•xqh9Œ„ñúünÌê=ƒ‰7¢œË½ôV,õùtc}>¬·~bþÈ%i1šFúuò¸²w ;vixkQeÄGqfpçÊú¯waÉÉÇæ%±f_Ú÷Cþ¹¬ì0ˆ=¿Ö§{ð/"ÓçÂÕ†ñ3Þ¢RðSÞëœÍ˜b¿'"U…Ñ©ÂS»X(ÜÿáRb[Lci àÁzÞö¿šz²{^[L*(ßz!óiZx«E]…®c÷Ñ•‡ìž?Ž.ýÌ|2°o×ÿ#ã½½-›ó·Ö›»ÑˆAáÙ :‚à?}‚ '_vmæê…EÜÉ,ËdžðZ¹ðÿ¿=HÒ#•z)5Ž#zÒ®YdAƒÑzŒÓnÓjÁ^+€ûâzÏ; ”GE‘UFŒ^[žJDiT&Fë=Ò²kS¹”)/ƒ¬ðBÀçÃ')(’Œ$yýÿ–%dT…}ˆ¨4zôN'¹>¯Á€Þ%#k4ÈêxÞÜU‹ P\ä9ðÈ2R¾ŸN‹Î@TÉfôžÓŸò*7>$œ÷Õn|ÈøìÙ¤åxé÷ëäXŬ!S¸Ü£&yÚ’´ЉWëÅcD|8n®e…⣞€°:ô˜;„Œ>ÿÅw&g÷må’#™lW=Šb·€„lóà“D•^YPcÈ?Ì´o’ycùbZÅh°žMÿ¥U†'N5EFQd$µ“ÚF®5›¯,ZP˜0œáavÊÇêñ妓JŠÏ‹OVÐÊ2>ɇOV%u¡E$ ÒêÑ;ídû£]Œ¤Õ‚¦‡÷¦iÙP4 ;±äÚqHRI§Ce ¤h¹Öôšþ‰¢ n‡›Ýƒ$ø×â ^+Ïåãï2è1†Ô¤ïœ¡¼`òË?Ém!+#¢ ¡þu'³ƒïåö¼ûQsb%ÒsìþiÆÿ ‹NXÄM~É”©)‚1’âQV,.@¨´h4jTj?ú¬ ‹lEO°95Š&Â}ÏAö\®Ì»=üF_¾_Ó¦ÍX;Ñ1ô¯õë¥ ý"»¿?ŽR«Ú$¢'sh·ä7ˆ“á|bï>"€Ði5¢-"*­µî,×%ˆTé3”íÆƒ“û™QÄFD Á¡™X\…ÆÖÝ œ+OOð¤sþØ>®óñú÷ý £ŒÝX-ä:«ñB¤ÿÿyϱcÑIL¯u£Ý‹ÅPžÌdòÍʼnÔ¥tµ|Î[ÿkÐiÕ¨TT ¡äåù/ÒXîq=TGC³ùÜHº>±,Å‚Ÿ¤ÞujDQКËÑyÒ :`ãâž­J«ÂG/Å~ý*]$q%Â1¿ŠõêaÒÖ¢ˆÆG]”–½zñ~Û'98pìeƒ7÷ÓÎ E)ÜSj\¹©ä‰ûcÇ÷ÿz%<òmn”àHBD/’Þˆ)\‡æo½¿ “äêŒoRàÍ%E*ÀY4ŠÇª•îÑÔDDÝåê-+5AE‰+ðy’¹›Ó€†± ÊÒ¡7=À àÎ&Ytà‰‰"/é·³õÛ ”:ˆ–e17¹’Ò²Åd@Dq¥púÐ~ŽïÕÑqþ;”ðØÉ³XÑFDcBc´'néŸÏÐ íˆz¼µéÛþ1Ù2SINSS²J,:{>·Œ14¢KÊ\Ñ ¹ÍíûÔ+Z-Q”(jÇVhÿ’¾­#ºz7¾ÝÜ ¤ë¬_r_xw¯jKEc‚[ä­£¹^Sx 96 b È7Îs¡ri?ÖµEDˆá×=Ãdv[>}$¯¯·eo–H…!3øN—ËÎÁ_2ò–VÔG%ùðŠ$á“ü‘÷Š" ò¥ppã=®¨Ú°dóK8Ç7_ŸAN“(Õs ‹>vptÒÆ\C÷½=1˜n‘nL*tZõß. Õ Q©ÐhtþZ×™÷É *J¤^¢)Y-ŸÓ–pš}¹f8Ýä š«æã6æN£µˆy…N RÙyí|’_)ˆh½×X9ï:ÞÚX95Ü{øå}T²HH¹.|jG :4©¹GSÊ¢`sæ`Œ Ìç!ßçÏ  •$Ô觘>çÊ:/AÞZº)=3²=…Kóÿ?öÎ;¼ªbkã¿}jr’“ÞÒH R F“ªX°pm×Þ˵\»~zÕk*z¥H¢4é„’Þ{9m—ï„^$E=ïóœG<ÙgöÌš5ïZ³ff þƒcñѳn²`k—:üJK;-¦Vœê`À OñáMf¶¼û¯ýß\nøxâab;Òf ÙÔB}M%Í€›F‡V­:…‹gÁbëÜô$ËHhP×,å±ç+ytó· ÌYpÏ( ²Ôq‚ø°,;6BËÈz5²&”)O¿Èå™t[ªñe“ôåÌ»û)žÎòද‡1}v;~G¬æ§o–P-wÊÀ#™]> ¸ð{~n‰çvWG0èÐðÄWOÒû¿§)ûKl¢Ûñ^¾÷`•ŽS<*û ð_pXŠ™ŠƒXòKýú£´VS`s"vÀ`³ç²4sMÅ;pw°asŽbx˜‹ÅŠäÇ0ß…Ìšö5Â:󆀞ôíA”î fÏt§·;z¯Húôô#@×Àæ-KXî2–¡áþEDmQöR¹~ßmÒ¡TfS%F‘e¬Ve›UìÀK6="Ü8˜ù3s¾j#ÄÅ‚Gl$½‚[ùeÕ ,廑r²Ð]1•HÍ>¬±Ã*"V«ˆ¬ÈÈ’ˆUTƒÔFõ¾E•{ IDAT,[Tƒ¡¢”=ø2p°¶Ÿªh7ôeH÷ͬ˜;Ÿº5’1’¡ña89Øö‹~p¦½µ_3ómY±Îø…Åî‰Jì xE±ÙlH’Œ¢ˆX¬"²,`1ËHn½î·ˆ¯§M~˜Ò!CŸB 9Ì](Ñ/Ñð+°ªœQ·JÈZ¹ãŠYÈwúž5Û* Š"ƒbßµõççãŽ4Cr}ëW¨ÉsÐ POÁV‘ô{ãñ4þf¾ýƒ»Y±¨Œ»!Vä²-GGL?wz‹Ã-°Ñ™¬ÿá{öûaÔÙÑ µvp¢G/†x.âï|C^˜ˆ¨èp îE\X!Ûçóígb|Ú1øÅÐ':€@íjvm\„¬ËÐp :Ñ¡;Ñýó(ýy³±|5â`¥“»%¹ã]Š‚"‰Øô~Äö0PøËæ}SO€³ï>Ñô ®ççe+0zbÉÊÆ0åV"”l,V¡cã™dÃfQ”΋j±…нëY¶¨Dz"ö9w#­¯Ú%5˜¢IYÇÊoæQÕýZAvíÁÐA!èñkšÇ‚eÎôöð%JùžOß1Ò?À‚EåBPD =»»#ˆ Š"aµån«Õ†, X- ’{/’½ñŻ߰?LBD‡«_¾B?|}\èqÅ`d'êvY-_:‡Fí8ž¾$üá0Æ<èÀÛ3>Å1ÖkEÕáã™âÐÐ+Í^ÉòµÛÉ«/cy‚ ýÄbVíÈ¢ÎI¸k>Yû{?f41}_cá§ßQ炾a7ûîà^3¼¶õKÞ~‹Ù…!\WLæü,´áiôºÚÈâ +˜[ˆ¸m+ÎÉwá­é°K-Ö°tÕJ‹õ,^íDߘ¾ ý=KßþšÖP÷4cìŸB@ÛN–Z] ꆮ »Õ™™«–27ß󖸦ܗZEËÖ¹ÿ‰õ¤=ù…‹æ³OëBhL4REõ!£ˆhÚÍì—Þd•­/Ûö°lþFôQé (YÈ¥žôð0â¤Íe[ýMŒ8Á¬JfªrV²è§mäbÉvWbûDâÓ°‚…3 x׬£ÖsþAž`ÎdÚýöևܓ䋃í…ëX¶j3¥¥j­Ð3hðh¢’šini¥µÝ²òƒwØæ=‡ŸGw•€XËÆõ)(ªgÙwCÇ&rEÄ×|úæÒcd¬yTöœÌ‡v­˜Ë?qá™n'b`{+—²è7ü7Ré‹·OO"otfÆÊ™[èuë6\†ßƒ'QŒzÀ̧o.Äe¥xó!‚&þ?o½‡ÏæÇw¤Àa;êÔ Ê@BÌAö-ÞÀ÷³Ú0ä¯ÅÚcžQŒ¾OÍG³æ3/Ê@ÃúÝøŽó9,|׿9 CF^Ϩx÷XÝŽ¼’q}œTï1}º7É•äïiÂÐçrzͼï³(UBˆqÜÊšÆP&úclÝÏòµy˜År~*$é†;pE¦½ð^|°–§7?M?ÉDíÁíü´»”–ŠýTŠÁ\6¸{‡ªïþ‚…9Ýú@?|;iö²tÃlR 9k1ôÆ»1b£%w6ÿ]×›1ÑMTìßGCÀ•DžSVa…úMñà3ÛõÔc\4Ÿ=z7Âû§çÓ³5ÓÒÚŠÉ$AÝÌ©@åìK76²AÈ­~Žç hØËšEó(ôvF¥ÈȲ}F§1é™þõÂë¼­A”$ÑÖb¥±MdøØp‚\Í—ßØuVh-ÝG•[ÃÂ:N®žØÏ‰W3(àDÁµz/[šH}8OïrÒý>aöÿÓË]ÆÚÚH~¥HTJ†ÂÍ´6Õc!Œ·Ždß‹Ÿóé;Õ\yÓU 4r6{ [;åÙ+YúË6rkJY¶]O|\/¼-%ìúõgví- VgB£»†øp7„ò¬ùy¥¥Ï×08y2#ïlá‹W—ÐÖD~V%AW$$´ŠðÞ™,ö-•þÍìÎ×vY ^´I”lX$W|‚=èÖö-3f¸'f“­ñ`ôu“»dŸ¯[Ä̆‚ÄjöFúÃÓ'unrDÍ&"J‡'ùRg CEÂb¶!+ xôftð,f¾¹˜´°6 ·Wzç­|Õèé‚»[=»V60鑎´¤ý"¾Y=›÷ûÓÍŌ٩cbÛ°Ø$äΟ‚"c.Ý΂ÅjܬVÊ6Ñë®t|i®*¢h¿Bxr0mûò©µ¹çJŦ|lAwsCw)8x¦2v­^Κê(â}rÙP £_|ØO0·ì8Ñ'q#0"Œ~òlÚrêrÉjÔ‘Þq³¼ÜPÀŽ_×’{ e¡ùò[I¹×ésf1/Æu].‡‚'0ÑU¤~íòBFò †ö zàr–¾·œ}B¹m.¤öúU¼óÀ»”÷ËØ¼Õ,ÌnÃ)v ÃÅL¶ú§s§ÈÔýú?»“ÑO=Ê…óÙcð&Ìß‹†óøIèÏ`ÏröoUãÕ.ÇÛikù~ùeÅ¥fÏU3xØ•Œ¼»•ÿ½¾˜¶ð vT2¹PÇî>壟}ypÖCô×€ÜTLöæ_ÈÞWDãf´WßD¯ìù¼[HoOGôê½lo¾•Iá`.X̳mææÌ/˜äÐH馯øx_é!ÅäloÄuÀ‚ö“ì3кŽÿ<¼‰©k^f”A•;˜¿±ÅVÉÞÍ »#‰ ßBz&,`éôåì×ì&§ÙÀðýI )`ç¢5Ìÿ¢š u!Û5¹*ÄÕºx½,ŠDO-¹ìj¿ƒ+BEŠW¾Ç¯2áÙûؽ`;]ƒ‰ w`ãûoñmI8—÷-dåü¨C’†ÛÑË[1—l&ó§Í”•J,^¬e@ü8Òn²ðùÛ_ Äè¨:X†%ö*Æö+âÇ KøðS+½ì¨ò oZ8ÇuMS mí-4[D|õšümGâû'`[?‡7g¹óô‚V½—5«×rÀ¡±EìÎ êÊ1 ¼¯ŠÏW~ÏÜ’0Œ¦}ìóÅíjZ7¨ÛFB{'lÊ&3»„–ò}T*‘LJIÅÙ¶‹Ï×.`fkÁìe“¦/“}ðàl>ýß|”h=uë÷à7fÒ1YDðð%²}>Ó¾1 >À¯yÕøõñF+ÚŽdj°XA+ïäË—&¢§®cÒÈЗáÚ*b¶v’E,ÖŽKY´a‘<ð õj'‹—™0Ömak‘=Ty,˜¾£‡~ I¤µân gØUõÌzw¶sU6Íš!§ôQ”¶Jöm]æ]¹8Ô7ãp} Wði¾–nn¸:ìekÍuŒ Wk”ijn¦Õì†Þ»;½”Oxï=w’ü+8Ó†ÛÀ±tC¦þðS˜¶3ýþŽ›c(­Xµd3ÅÅN,[H”«‚ÍÚ™mDQD[gÐØfm6 ŠŒèÏ™=o>mùØ6mÆùöG‰¶b±Ýp¤È6,±s¡RÄfëÈN'ŠV,ê`º÷k§ â'æý¡f »«¸\QÀ)’(q1sçº1$  «Õ_o†{|ËÇo-e˜o{óÚˆœ:ŽÀ ì9|8¢Õ‚EAL|5­Ù ˜W找r-ù-eÝ‘úÙŠ—ðìC¹iÅ,.w묰Ú_g¤Í™|¶¬žàúì,Q1&)Ÿ¥ï@¥u¥[ߤ4–â+)XÌ>¡Årtc¿"Ú0«Ü ìAÚwßòÎ7ZâJÙ”[‡÷Õ1: c³ŠÇÄ$, ’s }²wñBÊE+M9ÔÊ)(Š­S~ ‰"V›Üa÷­fÚ ½Öcóæ}IÃP<ô6¬®qŒí·—¯TÓ/ɧɣI÷©ÂÓM¼ã ¼ñVÃ#,XwBC]±¨Dëñ©õ{eXþÆN¤Ë†áiÔ€¶7ãÃ>ã“Wæ“Ö³#•«Ö§ýÕ™N?¶¶ ˆªG"xS³=“»aa: ~*@Û7œnN¨ù{ã/ÓþÝÜžGPy{£ÔÔýƒ£#æþ½©ïîÙ™ÚþùK}E¥ÃQ+`+ÝÉŽ‚j*jdBú fPl‘ÑÝQj Ù ŸŠš**LnDGy£V¹EïÄ0ª~]ÏþêjêhÓÒ¿o$ÞnmÛL~e5fµ¿ðAôl£¦x/e6»ù⤑‘ôAësØ’UJEeºèá ôõ#4Ü p',Ô µÚ“Ðîî¨$YgoÄ6òsr8TUŽÍ˰ˆ +Ïeoþj„ÁÜ8¥?.‚ˆYr#¢‡7:ɆUð "¢caVÐ:ãB[7Ð.5S^ïDŸäá ïã…µM…§Oý‡ÇbËÏ!ïP •ÕUTY½ˆíéƒcAž{ÉÚY‡.,1)þnØÀÁš:ªÌh݃ˆrAäN‹˜Eüƒ|qs³Í‰î¡î¨Tõ wR8U›Ös ª†šÚÚtAÄFyжc »Ê*iw ¤_J:Ñ.6¬’]gÿêY–qrrâСC¸x{{ŸòT° lß¾AƒÑÔÔ|dÃŽýógæc@‘°6VP\ZNUu5ÕU®¤=z?‰®íˆ‚a½})Ù¸ž5uT×µ£ò%Ê ªrv²§¸¥û`ûÆ38>kIy‡¨¨®¢ÒìAÏoÁˆˆ(b‡P±qªk¨©k¬¤ÿH<5îØJAUV;¡éÔDEÁ>*•`"ƒ¼0h$‡`‚uYlÚYFeU Ž1ÃàëK÷07T‚;Ý»»£ÕzÐ=Ø­“»\ýѶ7ppÏŠ«Ê‘\ú’:. w±¯°:u"·\×'ɆYq#"Ò $"ª=wG°)hœÐ[‹Ù¹ímbeõ®$d¤톥]ƒ_8ýSb1íÝI^IY‡ mÞÄÅúã耟Û^²²špî1‚IžlÜH~M-U V½ºÑ=À¹ƒ»Pd+f›À\ô`„†¹ÃaƇR¹qû«k©©kÂd&6Ì…æ[È.­ÄâΠaÉ„9Ù°ÉvýþËp´¢ Õj1™LÔÔÔ(K¸ä¢Úš6ÛQž6º ›8Œ6DÜÜÜΘ ¯«p ‰ß¡%¬ÚSE#ÑL}f,ÝÙÒLþÎõì¬Òàëb¢Et!¦obå>²wåRTÐDÔuÿdT\‘É}±dm ûÐ!ʃ¹ö•kˆV»Ø-ÓÖÖ†‹±#ä$··ÒdmÃ,H4R\ZL“ÎÄQðÈßÁ¶=Ù”ªRxøžd<Ô“ææ¼Lg‰„‡ª©«¨Çg`Câzbݹ„Ÿòl Jcò„„¬%lnÑÕ'‰ #8úD¿w3[÷í¡B“οîŠÐZvˆ&ƒBñ•UPÓdFíê Å?bîw#ƒü@nm¦Q¶`•Ì4”QRRL³sIý(ÈÚAAa¥%6’žx”ŸúÄÖNiöÏl,Rèi¥¹MEÔÑDíì]·š\KW^=šþލYr%b`Á»ó[÷¯bÁv‘áZêJkpJ¨ñèŸ$ <ëæŠ"ëðŽˆ"²»Žˆå[øaS5^þ´”£ÌÄëúP÷ËJrÊ«iT¢™úôX‚AD÷ ÄÉ97AæÀÚLv›"˜xùÐû@—·…í{÷P¦Nå‘{’qCÀ=<˪…lª¬Gã;‰‡¯ŠB¯qÂÃ'€²•‹ØÑìÆ€ä LèëŽÆ5 cC99[7rPìÏ-7 ÜE‹s·DT›W²ùPM†Ëx⟎K ,Iíííg¾;ñø6—¢O&)qÌqº}ÃÓã×ÑÛƒ«3Ù]iço*W\ÞƒÎKIyÙ;É«0u*1hëv³påf ò« ¾öeþ9À™Î‹@åO\|wŒ²™ê½ë™¿:ŧã®½Ž¾žAò½{cú1¤O$ÆÃG]vóýòÍ:TGèõÿáæ~ŽtœŒÒQ±n»+À;ŠI·¦›öhZo“É„J¥B¯ÿít‚-å‡htò‚âý–UPÓlÆ:€HõÑ”¤ÃËߟ ¬ûsÈÝ›ËÁ*…ä»o#%ÐpÖ§­V+’$a0Žÿƒ ä†r ‹Š)«¨ ¢²‚ò2 ƒ>´èJV­ØMEe5& Ÿ”kÕ?ÿ6vdnä`e åB$“&Œ%>ÈpÊ~vˆH!ÆGsJF”$ “Éô›ºƒ&€KvR\VNyc7¦<4Ž`M‡èIDÖøÑ3Æ ¸8˜ å×¼rJ*¢‡e6(謓<*ŠBKK ...'üÅBõ¾mlXý+ÙMn¤Oš@J´+cÃ#LlÞ°‹üâRÊ‹­ }êU®î¡Á‹˜¡nìY¸’ܪJ*›!8á:nL Àd–qö ¤{ *•½û8S³·«Gá.§L#ÛÔÔ„›«Û1ÛLaÖ:¶Uhðs3Ófs&$ºmûùyÓ~¬ÐRà×èW(ZË÷›ZÕÓP\ŠsÏ4ãв|>›kÚq ½œ»ÇuG§ó ›_ ;dí~ˆ¾l,c‡…a8[f³Ù°Ùl899[Ù¾´ î?°0ûÖ¬&¯Å›!écɈôŽW –ú",¡1?‹uæp&샯£ö¼mqkk+ƒµº«¡AIÔâîã‹~ø{³èBxt nz³èAÏØ *¢Òb(_µœ=Õ-8Mäþ‰ç½pÚÜÜŒ«ë1Û t:•Îú Rû¡CƒGd/ÜÄ öìÌâPE9%­.ôŒ ÂQëETL F­A1ÕQPTBEMÚ^Sy|D`¥©¼€¼¬6üûùÑ´;²z ‘Š×î¥ÅÅ ß“õú$þ=àà€ÔXKÁ¶Mä–›ˆ31CÂqV//£Ñˆª3¯í‰>Iuc nq©$GR´bÛ[<Ê‚½N$Úe5z½€­³}§–¡³M@gСVYÂj5c“ìzúw€¢ÈøúúòóÏ¿@LÏžH’tÊà?þ˜{î¹›ââbAeÞ_ƒŒÑ;Ã;÷ŽwnDPëŽáÑjATÔè´¨:N@X­\ã¨ïàÄÃüeQÐÉÇòŽ,Z0™eÔ:z (|lµš‘UŽ88hD3f«Øy„‚ZwfîÖhd¬fé´Ü-ÙÚ±ØtGÚ+bi?ž»µ½VÁb’´: J9kü‰-}¸óÎxLf¬ èõšž=‰»­˜L¶sçn› QQã :Ú§ë)ehÅ" ès·ˆÅjA´s÷_¤189ÑÐÐ@nî&Nœ„Éf!èëŸÐ|ð9´·ñ¡U8Í|šjÌ„t¹  À§ &+]zÃo?omTWWxAëyòÊÂöOße3Q\vóDº«OýÔiÍòbÖ[+ˆ}ë5†é»òËßCÞgóœÒ…©å‰å®ü®èCWËøí²­V+µµµtQ~Ÿúî™Ó×èÜåY__F£9ÅÂa×Gͱõ;_MoimÁb±àåéuߨNæ[dÌí'—s,'ž’»­&ZO4²‰öVÓÅãî“Ú{ w‹L‡Ë±YhS ŠêƒÖ쎩¾Û1Üm¾ÈÜ}¸]¦v;wÿ9ZV$I:²›µ«¿¿ø5¼°Ï«.Êæ¢Sžùë÷XÒŒ¾ªOÿÔ©!£r aðØ£ïÚ/yŸÍsÂy¼÷tåwEºZÆYèŽZuŽºðûÔïtÏd|ÿ¬ çħª—pŽZsºñ}r½Î©TL¿AP©ÎJ^ÂyqÎ9”¢α×.4_žs_´qx^-T©:ÒŽ_DhTŠ,b3µaöJàî=/ÈâïÂp2í IDAT¹ëgÅ]ÂEÖßíÂy¾E8ýÿ^‚aÞ³Õïséï®ÚyÞ‰Þ£§ë¹”i!ì²'éòâï©ÊbƤ“éÖ¥z J [37ÛÚƒ©WôèÜå/ÙØ?ç!îú¼”àè‘ÜûúÝ p¸º.ÛhØø.“ŸY†_Ì`nzúUF\ÚÞÖqºa;ÈÂo³qˆ̈AA¨/Šeª—r׿þGAy=#Ÿ_ÊCC¸p9&̬}þZ^÷zšî`âœþy?:váÊȲýcÿØ?öýó{|Îvg±]VöýcÿØ?—.G_tìù€´”TFŽÈ «›Ž™VÊ”í[Ï÷_ìÀ„€@[>yŽ M&eX‰ÿžKA½Œ@³§NfLz )iï°ç·&ÂÔ°ù«ç¹jH2ÉC“¸æ•¹ì­A¨ã‡Gnebê†&ÿ‡MfÇoaÊæ“§—Óp$ÐÐÈž9Ïø{^â‡⑺ÛrÖS ÕãÒÊ’ndBZ2ÉÃÿË6IF”ªx0=•ÔôtF]~oo?ú[¹ª˜¢ò|_›fþ›+’“6$‘ëß^NQ ”1ï¶k›–Fzêp2¦ï8m[Ê~åÛ~¥½ã6BvÏ{“[“â‰Oz€/7•`9sÇðñ¿—rbb,kuŸ<;•çæå!&)PÌ7//!¿ÙÜ!ÃæL‘AZÆÆN~‘MVá”⼦s{R<ñI÷òé/…˜¨eÉ731u(C‡½Æ›ÔÙ/¹LËH%%}4“o˜MiÇÍ«Ôä-à_ ñ$$Oå¹[iA@ …_ß{šë’ã‰Oz‚ÅùõØ(eÖ”IŒJO%cÔì;ç`ÈñmVN©Û-X©Üú17$&2tøî{e!E4°å³¹)%…ÔŒT†&LaÚÚJ ’oS·%êt´9~è <7c í‚~à¥{Æ3txééŒÌÈ åùi£¯¯Ä¨ŒTÒF¼wL›eZ~y™Ä„!Œ¹î>Þn9ç@”­d!÷¦ '%-1W݇»d„c£íûóÒã÷óñºR$„ÆŸyꮫšÏ?>ÚB£å|ïP¬»˜ñàŒMK'##ƒŒŒ4R†ßɼ’βw¼Mrr éi¤\>•-ÞCùæï™öÙv·\°íãÛO¿ãÇ­¥Gtý”ý|^¡4AÙ®ÄÈôtÒRÓyti%òæ·óÔÚ;ÇF忝xâÖwÉE,}•«‡’œ<”«ŸùŒ­•Ê JüñmîOâuÿáǼڎ@ßÎéücòhÒÒÓIKIå¡euý¼ˆ'ŸYNãj$oÃ|>˜±œ_—ý—놧šžÊÐÄ«xeA6çTK™Ê˜÷Ù6Ú;µ¨£êÈüßlÛS…xÌ8„ƒÌü÷bÊP•¼>,™ä´ñüãž…TéÛ2Ö̸øøx&=þKå?8,.#¶7P^ÑÂ¥·-ë #M*bå·_ñù½ØN;÷óù½?1ìÑé|üñÇL‰¹„dk¤´¬ñOÕ'£•ý™pÏðᤤ§24q2/ÎÙAÍëdŸDB@¤*w>&Ä“ü^š¹ÖãÆ`KÞ_JNQ#òa.+ü‚ cF’‘‘Î#‹«Žjw[ %9ëhŠ Á”;‡â‰z ¯~M‚t€oŸ½ƒñÃS>$‰[¿È¢õ…ªÙ°C¡Q¸•.àžáÃHIKã²kþÉŒ°phÃgÜ—˜È°áÉ$Ýõ?h;ÅB(äóÙS‹)•Û˜,þ;<™aiã¸þÎï©<íR2Ô²rælßWÓa·(⛩““žNFZ£?Ê>Åo-TæÎáñξ6d¾ÿ3÷­æ?'Úç–PÝzâ(Êá­Ôá O¿Œ«oúŽ „?"û;Nˆ'~èM¼üÅÎÎ~š6ðÒýSšÏ ïm ^h^ýã/Ùi35áJ®û_6X~åÅ!‰ I™ÌÝOeR€ T±ñ‹g¹²Ó?žòÚ÷ä5žZÇ'O,¡êûÑ´æÿHˆOâ²îff–„Šz¶Î~‘ÉI‰$¹ŠWæî¤á„ÅߢÙS™ôÈ×Z¥ÓûÛÇñI+»¿“Û† aø°!$>òÛËMí¯ZÄ­S&2l·sI…]¼›–JJz:iã¯âŽ¥¨0‘¿z×°áÉ\ñè;¬­ p1ÏÝ9žä”Î~‘AÚ«kÈ_ü4Ç#Ãñ“¹ffNGKå?à®kïæ‹ÜÎM â!~üö;ædæsºKv„†üûÉ…”]¨¹˜ØDiIã1<,Ó~à[î7™Û¾/9lù0ÿÊÏÞÂ+‹^<§ ‰m´LáÝ™ïðx3ËߘBÂÐT22Ò‘žÆ°{§³6o'K^¹—qÆ’8äF>ÛQƒ¥C{øüŠqŒÈH#cô‡Pk‰ÿ4½ul…ÔÛÎà#Š{øüñÛ¹bd*CŸ`ñq²;Þ6·7ýʯ—qëGó˜þ⣠õ½xö4sîw|»²ØÃ'o~MfVåù÷“b¦¡®¦VÛ9ú­ìZù5o~²•ÓÍ Š™óØ ¢§<LJŸ}É-t¿±Ðصš´þò"O‹7ðñÔXû îyBcvØa‡vØa‡vØñ»"ûRïªå©‹,ʨ ÆŽévS1+>¼Ÿç—:zÛ“Œ(ßFEðPnþìq’ÂYùŸØZËž÷ŸäàÄ×ø<-§ÓûÈBæ¿9éô§wjK°úDs͇Ory\>óÿýkW÷£Mó.ûãoäÍ'“Юz„[>ØÀÒû‡á QQ<箞ž‡ÛàG¹ÀVÇîï>也¢ùdãó„µËh G§TåEfâúõ fþ‹ìK¾›iÏõGùñ!nž¶‘ÕE•Ÿ…ëã‹X’h¥¡âg>{øÿX7ïy’ ¥QB¯u"§ú¶þ9ã9FÆäñõ=³Y±.†›‚3)¹üÿø`€7Î5,xìMæ—¾Ïä c–ÎÛkÙðÉ<:GbÐõOr%Д½ˆíV¦|µ™%ïñÈÚUDø_MRÈÉ÷&V|W½›….î®<æ{KMK?¹ŸÌ–ñ mmC„v’ ˜6MãöW¿c¿f +*TÔ²èÙôywÏú‰4­{¾É‚—Gpì›sW°µ¼–Ë¿ØÌkÕóï ™ôˆ¸ÈíÿfïÛxçÙA+ææéÈ|xYïßIËcKY< •¬ïžãYƒ™? ¶dΣç›yÖa9þ¸œYÛ{s“4“,ç0œ½™îÙ/q×÷kè}÷dlóï¢èºi|5Ì›êùrç{;øùÞþ] ÙœÐæSë¶ÆÙ@kå.V_̵ó×1JÚÁ· V3cN ¯\íIc©É7½Èó×ôÃÍÎjÖ¼| û'¾qÝVh.ÝÀ™ßûÑf^÷ü•™óáÍ%n<5þ2yu(÷Š ƒ;_Næ}•Ì’Çî¤àêÌJñD¿uã]ÂÂ7Æ¢ýéM.Ý‘wÖgÒ³MBí¤;ç€Å»ñzj)Ë’Ú©8¸š¯_zM_?I‚^ %osæÍ «yWYÔ-kyâî•øÜü4s^Á¨1िûÓmM”«“xhÚhúusE%+€ƒ›Šò…rýÛ¾¼œùý,"ÍÕuìY>‡un¡´5[ކ¥+­MmhÌ`Þ4ÛNìçó ø‘Ï×}…ÇoóUœ'š_yczªÇþÉ]?ŽcÖþTî¬gë/ߢ¿úC<¶ÍeöŽÜ·h ‰.ûø~Y¶¢ð»ÙtÔ„Ž¸—iýûòƇP¬z,Ùï1u†•Û^ý”>®hµÛx+ã ’çðV\µuÒÑ2ŠŒÕÜJc£Hcý®y·ÿ™€{ãV>~q‹Ý LNàloj•[JYõá}<³Xǰ[Ÿ`b§ÄÄý‹yéõ·X^2”§¤ç÷Í«ŸçÚ×VRë{JÇw[ß{åùL–õ*ã—9oñø¼þ|~¥†U|ÂWÃùrýkXô†KàL„ ¨„ÓŽ«K2½¢ºéWMAFÃio¶±«6˜«“Bü]+w2T¨å„éŸ-¹ªHK­ÑÃàþgFã×bEãä„㙚p‚Oòù£ÿ!sÚTäŸ÷ÑfžÓ,eúŠåÌÚÜ»â=±îþ†'^ý £xuÜÑü—ÝœÏó¾!Y§Fcp=JÇVhkR׫…Mk3üñf^RðFæræîŠä&Ï=XnäÙ›ûÑ'$‡&ÁÂØn\=ÀP| ŒËÃQÍÁç™e¼‘ØFé¾U|ûò›lŸ>G‹šøé?ñVŸ¶Ìþ޼í) Aú(Ó¶üô"׿¶œ*ï’Úùí–÷@zv%Kã*Y?ç¿<ö]_¾¼&줾÷-àù×Þ!³rÏÔ¡ 9‹)¹öm>ä‚Á¡š½ÃÂʘäw‹aiUãÕ}*ï~v=¡MG' :…û_ÀGìóå¼cqáXªŠ…Ü‹åée,ë×DñêO¹ëµ|~§[×­ ÿŒÍ¼ ZÌ;+–3{gn‹ØÉ³,ÃéÊÇøö•p\Õœ4@ò¿ør€Ø‘D¥aë»|­rbëçáòúzVç°hþ,^þ±o­ÀæËõ=Å„Ø|æ>6›Õ?vÇsJ¼„£²¬_öW½±Sؽþ¹l¥á§w¹ú-'¦mXML›ˆÞU¡tÓ:öTøòÈâ $Ö.áÉÙëù!Ôëú£B ðë0ý†:©s!ô$ûDÔäRãÊ„«ÝÄ/ïÏd÷ÞCô•rë[H}}¯vsÃÁÁˆZeÓ2šžXÄ "Íuy,{뢛 eØ›?qëÀ2~ùô{¶~òÝ›À“o ãA[G¿ä>w$—aóåp YV@¥eÛ»é|ãÔé‰)¢JC›Í‘ºguq‚öÖVZ­œv;›ÊFC½ \0û¡R[– 5Z#‰Ùú9/{–$‡ÜÌš=FÒzšNòá/Çžk*~‡ÖÙ@7Œ..¤Þ5ƒÁ·ÊhtÎÔnú¯s*Ùøõ/të=‘7î~‡?㪯–ѯÇeÔ¼~%7}Æìd#êMÓ¹üñ¥,zm,Á5¸è8s­4½¸ùÑ«(xu?·]?áÝÜNoÃjÊ8h‹bB”žÕP0›-˜% ·=…$¨ºpbóôRAèú- •kùî+Sž¹ž%å úRJN¥/Cõ Ìët󙦒Ýdþ/›AÏÜ@ÈY×"¯^¬à†÷Æàª?Wm³ã3Øa‡vØa‡vØa‡vüŽØž™Ííß>K†³ .nn8ë:¦%*×`Æ<8ÿ>”Žk»¥#€âŸÂ¸ŒtRzÐk$šò‘à>`==Ö¶ d.Ž&**O-Ý3Òèq ‚J¶°ê›‘¤Ž4ââéE\òüss8X_ÀþMé éÆÈhb}ƒÐUnà—_uqDOòbjÍ4‹›Xþm"ñC|ñts¦×È4ÂvPsz|b›…Sè¶A# K"³‚ÑWƒ¦[Áþ>x¶š:ÃZœ\<ñq4âæaDC1û6&‘pFݶÒÞÜLcI*I}AèÖƒX7|òʨC…Á膻»;FÍ~XÖŸñ£)ËN!i¸^îF\G¦±~ùÀî¬bîõ0ñFW#†sÞ". M|œ§2œ18yáãIHp &¨ÞÁÊ_³qH}©H¨8økýo›Ä #z`tÅ訽@Á E㈻·ž®rpw7¢*Ù¸¢•Û¾|’aÎ]ÝŒ gäí7i6!žŒ„ް’ 8œ¤ÛZꈌõÇÇ×<óxhH¿æF²Þ_Hþ¡ŸÉÜx×òÇÒªBïÐ>Z´q\9q$ ƒ.\²ZµF‹Ú̓ÎGÇÝÌ–OʤI$„áájÄhH噯o§yé:ÊTjÔ'¯;ƒÁ‚½“ î:=:Ÿîtsp@g9C0üTA*c#ïŸÎÛÿÊÀ­Ír䌦Ç^xóe®L Eg•Žô„1í9~øüAz;t(¯¬üÊš9£HOsÀèãGÜÀxæQUÙŒèêÆ]Ï^I”Ö€ÑÙÝ%S:Lì_ú ãã㉿†g?ÝBy|ñØ?H'!>žøk§³£ÞôÇÞ€+–9g.sçÎcÖìe|ðüíÜ|U<ñññüknfòùôê7Ù&.æá„xoŸKeÕ|n‰'>!• ×΢肊°Òµ3yxê7ٚȚ3›™ÿ]K+¥,|ñvÒã㉟Ä×”!7¯á™§—2ï¿© Ix‰¢ B!ŸÞO|üPFN|Žõæ?a`YQãà䎷ր«‡Nú3óêñ>I4a¡”–ppk*Cú‚1*š8/?„’Ž÷ºØëxkú‹ŒŽ @#ʨ€œåY\?óI&øzuØ#yl´·f³ë'/œõEìNBo0Æô"Î͹¸)hSG'0 Ôª'="%$µÜy-õN~žJX¨ uâcÿÏÞyFU˜¿å¿µ¥_—+l]ÞœFuTx„ER¡\9.î†ÎÝŠíÁíÛò#~›;ˆ²‚ˆÈV™cG’yõÛ¡ÔT»âé퉫قMÑà "”)AqwWÜÌvëÏ´åC>³äížõñs¹I¬;íí? °: šWââGtÃyA¯C­Ž"22»]êâá ‹j7?ýR•¶ÍËãíã‰÷u;¼že¿¶c@·r[Æ•¨è²/meÞ/W@¥¶g‹:´œaÞðÞ4ÒëÑë;ñ…á*yü:nGŽLáéøxÌšÍkÃ~$ ™¬ßñZç9\®ÚŲ/Vr…l¶ÏN ½½þ9¾Ü”Ê&OXÍ÷µ¡qÑlL7" €(¾IÔªó+³Üññ.MÕJY¬Ûg…Ëg9p=!Õë¢5Ø.­clÿ¦è2ñãuIH×¶ðî;«Y2©9ÔB¯gÊ>‰“ßôA¯×¯¯Oû^“ØkÈä÷%ïÑFo—ûú6¯3ÏŽ@3=CC‡›uÔ?óÚПX6¹6µêL†¶Ë%­EtîÞøùúâå~™“û%<¼êWJÀ¦rÇßGX±4%%p†c;P¯Q þ¾Þø6o@ã­Ç9Š£2¼Îþ;ÖóM¡à†N玧¯/nyë5j5K'7¢^ÝZÔªS—Ï‚\°‰q½§²7s.Ý>Å€OãÐæÉ;¶žQõi\Ê¢—SÒG¯G_Ö]ƲËâ þΰN8á„N8á„N8ñâ ›Vfjgû&²nãæÌ:~Ë¿5:\4*„ëTA…J%sxþPÚéßÂ8¸-c¢q³%rñ²ìp‚ÇPºâ.¤Þ{ë#Š*ûÈz‚×üñ Ç_ËÍÄ1”>–D²lw"ˆ*®:»£BŒy;ùñ›ßx³™½ï‡|ÄŽtÇwS±±x~‘AøXoi3(†Ò‡/¤Ø34€ óÅCìwiL-/ ï*ç³/q®NU¢°;rDóa yň Ä[- sùíÍfÔÒ/¦æÖ·¨ÿgYctµcþ»#UíÝq ¡Ø•,Wù)©×ݪ1”Ž;Å™ ;øí‡=Lhkïo‹gú³2ù*×ù[1“—šÀ&T‘NóË/?“Va(=ëøb“Thuç9}ø(óG½êvé¾<‘<[ˆµ+ž—–1¤}C‡#LþÙïH¾¸…5¿—¤Ô©j5¢R:ÊÑô™|Ô¾úwÖa•E4jq‰éÂS^?ûU' ¤4j‚K„aKÏSí‡òÕî T*Q,jç—¢ 15‰Ó!•©\ÆŸ[ãbñ’”MÎwÚîúvòÐç©/Ûi«P¹âéî‹ïÉ$Ráº}lI`n0ÁáÜLDîæ¯6Û~Yd`\‡ Ñýe~JÑP¼A j»ÂX½½~gÊR·N1,Û?âÝļÞ9?_»ñ}]ÝjoßÕ†WÁ™UÒMÿ §š·£C=5¶aö ®Ž@«žw7æÛé'jPIgùº§ž–½ÏÒqí`ʈj;/H)œÉ”°ú•£ø-) ç–Ì ­u<µBìYè×aøæ#¤¡Ï©d$ßXôU+R=q2›Î»ã¢Váâqžlĵá(~40¬™”~åh¦ŽV#^¦|ùWY¸c'ÓŸ/CÐîÓœÃÊÕÃkñª-²ëœ„Yu £JÇÙÕÓùõ` ï®5`˜U—ƒ{6°'!ñð§ü>‰¥›ÆÓ8À jÔ©‹yq©;¦ÓÎÛŒìæMÉmñþä3V^¼ÀIkOZU²`*(@ÖŒ·g­Ã`0`XØ£ G8ŸV€²KÏcõÆ]¦u`ñ¬¸ŒŠØ¾óØm0°{ëJ&t‡Ï—äêî…,Y‘Ç«?0ìœÃ –ñ°èÍuÇjƒÃÚ~ÿßϜϳ`Þ3–ú-ìÜ>œªØîz(,ëà¸Lt­´éÝàƒßÒW¯G_o*Á›SÖÝQJäbªÃQ§T…ÓœOA¼cñgë›G°XTcÛó!GâV°aë.vLjÃ÷3—‘éÚˆ7¾DºcX¿y9cê&±xÚž¿®Ÿ³×³xGÚsó9âÒ“I+¿ Kµ”{ñ|nÛgöbÕ·0Üʶ ͘?}9Y*Oª½¼Ý†ß2°±‘éË“ ŽoB£gúóüÈù,û¸/U¼$p9ÅüÞ!§Ù~Üeà×·25e²$cÞ;‘ M vnàûA•™óÕòÝ‹Ñfô {Û¿N¢zÄVn9‹N«º¡³-f,wµ$6¼£§n›¹ÄÎÞÍ/ßõ¢¸dÁj³a•”䵜6†Ðí3†cÐ$`ãQ-§  züËÌøi3†ùUXÜéCBÆnfçö­|Õû¦r´ïJDõ˜³sÏŠßR¯y¦íL¿§zÊ8{‚ئuˆEvññ3) 10ì\ËÿFF±lì:ŒN§J!,M'œp 'œp 'œp‰¿ 6$k;¦  ÖMïþAŸÝ§†¯šJ½?å'Ã8<¾œÀŒµ.ô_Òƒ3c:S_¯'^ßž)‡cˆ}÷_fݤUä»ÅP³Bit6é–Íð½\ê26›Å¢_f¡Á€Á°’WK騸¿udí D€Q!ÁÈòîáöMv~æ&¾xåíÞoƒ{õ"Ù—ŽS¿Zô-Ï¥°rÌ*´%+R¹Bˆ#èéIË ëØeèž/² ¹ð!@6cTÕeÜš¯y©fº»DsLæDv®Úɯo6F¯oËkãf²tÁ§Œ[Y@DZ“ûZ3"î²£€^Eü€Á°g‹˜òÝá‡æEøóÑ(…‰ w›á1ñö³ìõsö™¯²Õ ,5°qÎKø]]ÇÊ-— ›bw–òÌ©_XºÖƒ¸oë)ׂ/«™PÇ`ï9f9§Äh‚¯;2Í;Y´¢õjÅá)”gàŠ.ÚŽ:z=ñú§™šPš˜(n.ÝùÚ`À`ØÀ—ýª±íÝï>€•ìK˜ýæqÚ¿ÓÕ¥S–­æ›AuÑë{0éë/™üÙ7,XÈsÏ&ƒÃÖ‰¨§Ïckú59l+ /¬#SV¬·;7  óz)P±8‘O$,óÜbÖî0`èrŠ&õôèÇn@¥s¡VÁ¸‰µè䨛êQ¼Ãæ0|÷<.?½€¾Ã[¬8’ýx;øgâå^ApQKþIVÙŸºz=ú^«)×®+}j†ÿýŽ'AÂbö£¢~Ë  †t°]aã{þ´Þä_Û7Àl"7Wƒªv/š‡ÅJgÒa\¿‰í>M¨Ý ÅÝíóÿDå¼Hf,¡­hT¯%Ý€HÊh]Ð)€( "¢JDLIâl¥áô© h])Y¡&¡«¶rº»âæåGT¬ž†óXSóð@C»Êádäïaî¯Ò*^¾ÉpV¯ßGRA±éQÏ ö€@¥fÔ ´.”¬^Ÿ˜CgIþGÙVžTè0ŠÃj^w¿ÄŽŸvzßôû[l’:P`.DƾS^cÆmÜn—µ?¾Á‰AØȦöo¤mƒX¬¶? –Ûù sžÿ‘R›èŽìÙ°Œkߦ[²’70wÌ)Ú¾Õ »Ð!²ÎfíøŽÖÙk™óÉo$Ê#ç,xP¥÷[|>½?q÷½ׇvS6c0´e«þ9~Hq+Ó—¹Û>£¥'€ UžãÃz&5ôçøÜ%œ”îÔÏUô¾S:ÆóÖ²&¬l­G¯§QëÁ,M«@‰Iþ£¾5攡ûè9l00lŸŒû7 Ùr)óf]ÓK‹˜½¢3º„a³ÝÏÞ¹Ìo­ÂâSŠ5# f¤ O·ÌqŒsZÏJl¿œçwpôª™Aë ,ÏÙ}8’œÎ‰cIœúú :7‰'¾Åìý}Ý_øŽDùAmY¥Ûa‘á b7ÌeÎÏ[8—U›×¿ý‰í†õï’>ú¶[%‡J*Áóßïfõ7Q,n2œu7¢EÙü¾l5GhiØ9îf ×¼ËciP·2ž·Ð%õf-ïÈ€®adI"0¼v™]‚8Å~`"?aÝôzôõ[ñÜÄ­è’/pÊìƒgí.4 $Á~À6=‡lq7ÓFô¤q¼}‹wÙ¹û(‰V¶ CéSWm?qWQ”Ìþ­—(PZÒ°,¤üžøÚ é8è[’.¥?ÔíMÿUüûk+ 6« ‹ÅЍ(NŠ;á„N8á„N8ñŸ…€€¨R¡R©Pþ6ÛX…JmÅì(B¥Š¬NØ$å@yo‡WðV,!)‚JD$’êM2ùÑ”I†ºã~^ïðYý@ÿÔöìÙ{"•MŸ}ËQ]Mº ª‡‰(¢Í^ß ý<§*DÑA¼éd¿é¬íÎÑ‚»s!ªLaÇí™1×.ûãáˆ' ˆÒMGDÚ9NÅEóŒ €b%/g3Ÿ>ý+ñë>¥™À†17cNYJÝ(ç™ÌÏïÍ!¹Lºõ¬N  HV$Qí¨V‰N°1þ,¢%ÜÈÐíS)8N|ç§’ìA_\Q°˜ÌZÝíu·üêâW×–x € ö®^ͶËq¼öt,˜ÍXD5jêfpçú\ ZH_ÆœS¯òî›Ñ<ûå<Ôƒ?cuÎç´ñ²b¶¨ÐéD{–¯à¸rºà2É®”õóÅC°q#Ž~õ§*DÓMP£RÛWÂÊXSSHªC'Iá°Êц5‡tÁ‚5ªÁ§Ï“~¹Éœ‹¤†›.*ÒuöO>Ç©Ê%yá¡•pOÞ®[òî âL΋¼ îteh5ë÷ÿÊѺý¨ •‘?BJ¸au7“çvÞV¬˜L uÕ âI‰æ£ø©ù( …µ ÖrNãåpŠÃ™å ÉhÔˆ®Ña¸¸7eÒÚ¦7Â/ŽÓ) ªëüì†OL,åCwqÉÑ.³÷¶}eŸ÷ÞJÝ5S_ ”jÃû?µá}γ|öN”rQ¨×¥ÀèÈ–ÒU¥^ååd¤Ûƒyôx¼¢ H22·œx‹!öØt6$v¥g±[^`³! €tKFŠ¢ØëÞšézƒÎEwXÀlÐjTqƒØº£é×°ûíºÄŠ,s#CY’°!¢õªÀ³ãf5q)GÎWýެúGœ:Ɇ-´¥/ÿÀu¨PÌ/Ç$JgOq¦j)ú`ÉÆÍ|6Y–‘&·XÚ éÉ î,{k©çSɈ'à!´:ã !ü™†E…x]N(V 2.s¹\qšË g°:®¡"¶¼פLr$ðU= ZA±YíkBQDUnE‰PùúxŸÀzÀŠl_sŽ1üéÉQ@”Lö ”`ç3I­¡H§ÝÅŸbeÑnÅ –—ŠÃf®A¬»‘ƒÕyþÃôl^üæ³ykÙ,¥ÞXa××ýuH’ Y­BÅ? 2²$£¨Ô¨ðÄ/ /¿Û†õ'´»Ý&i¢3sInèÓl®ªmØ"ƒnÊ»Qá°T¨Ô6,f+²»1$ž†qkIº •µ©¤^¬LñHPŽ€ ’ìkÒ’É%8ÀÑæ)¾í÷?ä‡Ñ£^nvÅǹsU(ÙóúKÍd]ZÏÏï Þ¯Ñ@mç;Y–A¥FÄR•µ»x…œ¸»PP!ª¬ù`ԞʥòÑDŠÍ‚EÐÜzu¶p˘oØbÔ@5ê?uŒmÉ@¨SŒÆU‡ Y’D ÁO?ü#o.?ègl˜ dÔ®Z;ÏE<Ã<Ã3€LÆÁùŒ_áO°$ƒèk–lÒ´RDþ—O“#YìkKS™º•–“–iÁ¶ÎžŠvôTC¡Àa£HR¹Æ,²bËa?_v‰õŸÌã„wº¨Gè}D³à°yDÑ‚ wüJ”¡¢ï Ö徭‹¦-=A÷Ô;Œ¾ü)÷ž"nÀtV p´cüWßÈfÄÏ)Úo–¹=8¨ K6¬6ìôPd$YAP© ¡b3k´×0™%lVû¼hç2à˜ñ¥;ÃW9²ф֨H(ùú\ƌ͖³-®Úœ©›;løôÿȸãàŠ‚l³b½s=sûz¾®Ãî½%@PìÞëúì7¦(Šž·ÚŸŽq*×õ¢ 6rNÎçƒ) Ýe žx£ë–±<ÁtË÷”›kK% Öë›Ɇ¤VÛƒxÊ­Y¼‚”ÃÉms™ù  *‘¯ßo$Íh¾QvG¬&3ŠFƒF%ÞA†Z¼eØÅ–ôÔQŸ·¾û˜æ> *µp»]}«žWþDÓ‹"¢dÆ"j»ž—¯÷PÙ˜‚aéçŒþÁH×÷Ç3¥¦Ï]g]DD–cE\* ã—YÏ<ÞzÌÿbüëÀyyF6­]Ëþ´ƒ7¯‘s 'œp 'œp‰ÿA@­VCíÚuŽ–¿Ã@®B³^oðżÃT|:”Ü[1\®Ì0odž=/›ìkF òs¸¸ÚÈæ4+ÁR1(m#ê냻ÊLVV‚ú ?¾;¶ ¾×kmøyÒ4~ɨDÿ1 ñμÊ5¯bèÛžgù™ó¤D… ^¿‘3%;ª²» $Sé™yX,2™æ¼ËQ¢æl–þҎѵ39vø2Ú:„q”Í9>” LJêt8Éâ„óÄû ­ÙÈÙ2=E¤³sy®ç:.ÿšÚùédäkp×Y¸’šH²_múèëI¼ý9{<óbÇÊh3ÓÉñ À¶v&«ü[Ð4&o÷½lø­6åûüÁ›‹dÌ!+ÇHAAé¸çÂQó^Ÿn†:e/ÇtžÔò @4oft‹Ù›8•þú@tÈæ\22ó°Z4d¯ááâÈŽ¬X­6l²€È™Â€Ö¼2¼%Q¢Ý)jÍÎÅl1’žF~Lª^ìÏì_Z14ÞFî‰ìJ«Æpo3ç™ÅÇßx0rq?J–wçh¦ßO¶Awe? ¢@%:4oÿ-ßž¼ðRëiÙ}‹¶¥R±~ W×l"1nSMõ¶1g\!ÏóNÞÞÂî«5è[Å‹Œ)_³ð@SúFŸàèÁdÒTu(nÚʪ ù¸•lH¯ÍlIð¥JgO\…?ãm™üãóÐ/ƒ7 oPk‘UŒVÁ·^ãûÐ’¤®ee’á!!*2Š¢ÆÝ·:½Þô¦[ϱ„­BU“kiéÝþêÅð\²Cjuª{Ê$ -ýPýÎé乆ã©}ÄŽ^ÛÄ›_ä1°G<~Þ®ˆ—Ž’X·%n™Ï‡t¤tl[Ëús¥Ü­ζ¢M€ Sz"GOž  L‚l'8a1b&–N#kóáÐ¥ÌPË è\“ áÁyI6f“k¤À˜C–d%@Ô FFιF~‘kÙ™äXƒðш(6YyX,ùd¥§ãçO£®o²qÃbË^äðÞd”M…ˆKì/6ƒ_65a`¥ ü~¤K•0üÿî(Ÿ¢ è\ññ3¢þ}!«ÑÆ|˜ÃZ+e;táÙ¥‹Øvè8Çc(™ “$ó$D¯_¢©(·oû]vü3¬$åÏfΆ§xµüUý~Ü®#ˆ)Ò‰øúæs„y¿…R»c# €hñ?n”Ø^ª'q>XDoå[(×yÎj$+'MA.GöàZ·×) HV¦põÒ!˜°Êj\ÜUXsM(Z-Ú{^[û"ó(»÷!)¸3#ö°çˆ„®EÞ÷àoéì··Ù$™&Zßbk.fçþ¾iŽsôj~eƒ±Ç\%¤ì\Lf#9™—É)CÓžûødÉAâ:–Asy[’*38P&ïàöy6£‡‹"ºÒ vì…¿rŒ£ÙYÄT@%íãã^Ó1¶~‘~Uý0g¦cqÀ'cëÕMø0Â^R"ÿè×ôþÝV}Eͼt2TÙ)Û¿¬ª=izý{mHÞ1Üü•mfLYyXÌF²3®’ç«§q·‘¬_ÿ±å/sØ°Ì Mp#ÃüiÌÙÈÀ¯QIm?ˆs]æäf§“G–ÕŸóchGZ÷ÁEc`ÃÚúTy,ǿṾûé¹~&m4—9¿c9¿¹¾@ÿ2'8rø2îuRßE?ç¬æ•æûxfÓ;4qÓ XóHÏ5aÍ;Î’/—ôüÄçdÕÅìú½Â1Žd^&ªFo7ØÇDÃv§¶÷v¶œˆ Q+äós˜³¶;Cß±[ÇZ—ªÄ·ÏÆ­ƒ)•È‘„ãË´EK"+?œÊzc5^|³.™édi=ðtwáÖlÉ'73‹U"3' u jµÿïw¡B 8wè§”Ú4‰Igóì#¬©_…Ö¾»Ø}LÀ£}àjX¬H’³Uú6{;ËdÄS%qö×o˜¶È›75ôÄH×ÈHNå÷íÛ8؉ޥ<‰]·ƒmWªQOÈÁX`Æ-¨4eÍ3Øô[ ¡¾u w³`S{(+È÷ËÌ·$rhÇ)2­è] ‚ÒLç×ÍnDÇ„RI\ÇÆS4 qE+™]€ ¦²üýÿáÓe~póÊ~à*{çO¿m=ß@®“9ì¬<ð•nÐð6½uC¿)(¸âí+¢ºU?»)ÄU‹Ås÷…[ÏÊmúïæ˜Wü«U%Êj$óâ)ìÙK²O%@ƒ.3›ôœs¤}±XmH!eˆ3Žç—µåˆè\é×uœîú,zñ<³nÓ·þó !$Î…@«‰Ì“‡9p,mÅø)fA‹Š=Œï:ÝKcx¹U‰?ɆïØn;ÉW}êÓAÝŸÉóZ! ×ß¡ÜÎs7Îz9Æ,KàKå‹Ï3ï·6¼V ÎlÞFj¯á”³GçHÜý=c‡­ÁûÕqlþµì ;ânæŒo鲜·…sÝJ^‚rg‡2sSW5c–DÔ:¼ÝÕHf3‹€‹§›ÑŒMTãêªÂ|­\]ÐiT8«ÿÀw\'àååIçΩղ¢3ì„N8á„N8áÄ)))lÚ´‰í;vиaC l–¿¥•^ú‘Žot¤ãp÷®Íè¥ïR¯¥°þë÷ùàç <ÕKyãZoömHæêñLž0 ¬&ê¼>—‘ £p;»€F.àJzqÖ2µÝ½sÌäôlr¤4NYÈÈ.ßa5 h>‚)o}@Å‘£9ëm®Jm™¼¶6ZµÝ›ºz ½fžÅËUah¯5×¥6 IDATôœ<ŸÎ}F’ôZGêŒ Fÿôó¼ñJMt¿ášŸ†r‘áDwü˜2ƒ‡óÚWçÈ–Û3e}-T\ךٲ‚Ö/’&½_£fæ)|ãíÁ;ér:¹ÚLŽn›Å°­3°šòé4‘Í¢ØûÑH¾OÍE¶H<=mOÝ‘X çg°{þ;Œ\zo­…aÃxmüê$~ÊÄ~ñ¼£ÔbÐ'¯S=B &wBc¢pSߨB¥­y—^_œÀ݆öü‰®/¥Oé뭫й{âcÖZ¼CÃõõ¸qužùÀÿ8e WŒ6Þ}î{š|°‰7WŒeDçgèæ4y o¾´ŠŽot¸ÁÛo.~—* Ñï§2|p}櫨ܪÃGÕÄD4'§1}âG¼/Yi0l6 Ê¡9»€AàmÑÅÈ’¢=cÈœÉñ•óâÔí„ToÍK#ÆÒª€#?¯#/¾*ÕÊDq#–{v ýGþ@VN>•†¯à“ÖöS÷u_™KòÀ4áEL¥§5í)ÂòZì+ 'É NcNŸVÌ”etA%h?lª;z!hñðö¢@e"¢Î[ôIÄ×Û1<½$¾þŒžq§ñ!BÙôחarr‘¬¥øítnû)‹J×ÖÐhdÏP*¿0™O*yÙñ4ïun·."f¿z ~s­b=ïJç‘ Ü-èãÕîîxcà—äÙ@–*0|ÉTÇAQëE€¿»£Æ] %ÂØ8{-¾Ó!Z|høâp^©UŠy$ü4“Ϧ®ä¸EÇ‘chZÆ ƒX<àKž}û%&e[‘­6:LßĘ8€ †|“ÂÀnm˜¥Ó€.˜ªßfrûP ¿$áãåbï·WmƼ}…‘ïÌd®»/·*×°•œ{‰sÞã½UéxªÍŒÌ9Å«£^¥zÆ/Œûd[ϰqûöüš‘]Ë¡Ù>™>Ÿ°!3¢ûbÚL\ÏàW¦°¥aKÚ©}‰.ó“‡a´oÛ™éï¶£VR8ÍúcH—Šxþ­ZYD¥óÀ×ËŸâ%[ÑûåtF¿X‹/Uåxêå!´‹)‰ûK-Ø:áKw›ŒÖ–CfP/žſס)hp÷ôÄ*h0«¬x¸j™`®øû{¢S º(9jÌVeÈ’·Ò¹Tî„ïÇ'³¢‹~6}üñŠlF±K~´(«<Ñ¿ô:™S§ðIß6äª$ŒáÝørL4þAÞh¯T{˜ù Cº,DV¹Ôp4 ^*ä“|`#¿-–xú“æ¤.[ÉѼâ<ýRIvN^IAýú4mRúöÀÖß¿0´Y«X1¶)_¢Pµç†5‰½gýíËwÚ$>a´~ósú5ïÈ{}♩)K›¾ƒéUÓžse;¾”·§.âàE3»_ÿŽÝ¯/ág—Óëƒ.ô땃*Œ\9‰ ¶ØŠgÓžv‡¾vS& Ôó…º^B×ÊîHÇ“)2²û»÷Ø=_ÆfΧø sÅoh#ÔžsËåã'¹t™¯{·d†,¡ -Ç3/ #.ÿ#z·b6ÊvÆëýêýAwL¡ßÔXd™ÝÑfâF†¼ò[µæ)•7‘¥žcòàb gâêDx¸.×ÏMù™±S¿aç[v~Ïž!‹ö·_eQ– ŦÐqÆzÚʘrýˆŠ‰ÀS\¼P©E #šñƒJ¤T“ž T _¬®ŸU^„ ÆÃ!Ðåý³èCY²ðHžÎÄçë3Q§õë£éÑ´Ôí¼(º;äƒðG{»÷ZzMø–z~þ„Ey¡Ä0?ršÏ”É3PÛÌT}q2#šE¢NŸ/ðVÿϸj,Ãk?L§¦” bÙkY"€«Oýf}‹^Ha}Z¯¥2®ë¬3Þ5»3räóø¬]G~Ýxª—Џ%û7‡5_­ xôL*ÿAЍ]< ðus|àF™¦OÓ%{™ù¡4~m4YŒçƒgg`$ ¢ºóå§}©ìÛ‚—ÌæµžÝØðÊwLiS‚ó *êÝ@,À%4”ôähÊ#"¶@»kŸ3©O->k2`ò(ª”»Âvo#:Ç>Ñ€@QR¨8xÕ[å}ísD»ßnj\ÝÝpu­AÓ2{™1ñu:L)ݸÑþÕ Ð©ñТS]¯­ëA`„6¬-½K5åù6ßàîãIÙÆ¨¯õ'¶r ²êMdÄ3-qW™Èt­É‹užâ…wÞ%kÔXÞì3™Á†©øóÌ{ןÀ O4Âã7öQÈ\=s˜Ã©iÄõi„ àKýá£È7‰±½ga¡ßô)4 óFu|Ï\BžÑJÕ‘«ø¸¹]‹«T·úÔXÏv!vŒyŸ.ãxÂi¶ ¾Šî«*ø{ÝàCTîÚë’Ûí07B*w¡ÏË×xëº~ø:ã]Yrø*î.j‡þsÃ?À{Ù]w‚‚{ÐMíI`°ϨƴjFÏæÿÃ?ÌŸR5ÛSÇGÀJ0uÛ•dÿ¤wym\SB]ªPÃZŠÎŸ#íå´$£ÜŽ)jBF:AA²£†¹€Jë_P Q¥£©dîFçFSˆ(CdÉ4÷r%KñpUn‹@륽·íªŽeÀ‚môÌØÅòñ[(ÕÂ_pw·á¥Ö9æW‡Ÿ'n:Ñ®ó<Ъdb°r<£;õâ™iàêÕƒKË29Ïsp«ïïZNø­,p¯¾”iFŸ«°æxob+VçµFñj×v<­RÆ—-^gúª\Øþ›·ºòôûµ93%ç=*ðT¯PÖ½¿±k+šè‹áætý{‚àŠSTeË"'$Ü8™  B~}IÍãœ`'œp 'œp 'þ³‹ Ç'pâÄIÚ·oOÕLÄ÷QOŸ ùù7lh1,÷¯ß& Å¢‹=æ‹'”B½áþÏ[mVÒÒÒ §èê¼þy;g~œÈº¬(uéN÷½Írq‹ÿ7ï—gÑ.¸(ëÑÅ|?ÈsJ!¶–w¶w·ö Ã…mãþm[,ÒÓÓ +4/üý»Û3w§ÄÃÏgff&jµ//¯G^5·ÍØ#²zn^.f³™ÿ€G#vÜvUôCÓÙ³ÙLff&¡¡¡!I û䃷"Ë2—.]"""âZ(Ìš~ôQ&&%R,ªØCRéÑ×ᣌÓh4’ŸŸO`` c:Ù×ò±¨ÜðHXÎà3e˜Ü­AšGn;55´ZmPöö9¾ÿÌ>ÚÜ+($''uÏöþ-w|óÖ?ïÓèƒñtQkuîËß)))„††¢R©¢õ— 6Ó~Ó—kåÙâwkR¹kMñM£›s¤ÓO¼RMWȃ6wÎÂÃÊÅñMá!9³huþÝGñp:ïAépÿ^üùg÷—µEeó…­Xt«ïÁDÄÝþó öñé¨w²%ŸìÌ4òqÇíÒþw8rµZÒ.ÖûA$¹ ß1ôãúØš÷¢üt÷¶ï1fsæ9ŽL`ËÜ­Ä}2‰fžn…>ž…›ï‘Þ…5Vø¹(¼ž/\Oòw½O»•Å™>¬±ÁîÜG¬P$&%FVV&µFó‡ï‚€¢8®§@Z€ùÓÈY·W.€b‰‰OtŒõ_´r]™ ‚3åÛ 'œp 'œp‰ÿ,dEA²ÙÐh´öºi…Àã·¤ û†û?{-1¡ÈúùGdy­<1¡±Dºömr ̈B7ôÁEÙÏ¢šïyNx„÷Þ­ýÂðCaÛx€¶È*ü}ý»Ë3B‘¬¯ÛŸ¡ÈV@Ñ-É?ï×ÃI*±ÈøÛÞ¯™3á‘dÎCôM(ÌÇS^>,ÄǶ‹ž‹׎®àËoáØU«¥#¿®N@ 'ïŒo §uqîïo<â[„»ÿù:”¿Žg ÷…dròФøÃðÝI.eù…Ò+žQµèö®€Õh$_p*¥¿‚€ÍjEVäÇÏ;OúTˆV«I–È/(à‰ÙP ³›ÍödÑH°Z,H²ôÄñެÈ(ŠòÄòôÅ_… ·ÙlF’'½<ª½Àûúo|b3`*,ˆ’,a*(Àf³ñOt˜=‘<íÐãOšÝ$ˆöL¦ü‚|Dá1W-*ñ쌪X mJqºU[‰|§× 'žLøÇÑëßés}ÙJL¼ÞkÇ Ú96l&ŒÆ|z $„?ý1+;Úu¦¥ÀH~¾s?õ/Ù‰PuÄ·,ÄúôEyGZ^^Þ?n¼²"#+2y¹y4ö‚1×É`ÿ"ÈŠŒ"+ ï<á°X-ˆ6Y’Ÿ¨~Ùl6dE&÷Ú“µödYF–ä'ŽwÇž¸ùº¡crÿ™2T’$$IzÌójäÚchUY!??Qù§â‰åé'ÐnRP0ü÷#æ=YòŒN;Ä 'žt<š„Ë¥H%d®söïe´ÇC[á?vèú?–YV§Çœp‰T¨U&.ÿ†3Ïâ•ÑW.K°›€ü8åš B³‹3,Œy¦O?¯.’ôàçi º‚CÌÿú"ÝßêLÅ Äû~[D”¯‘töÙ²?±±¨$é¾ßQ®ncú æu'È,ÙkS¨¬ä%bÃÜŬ3Zð=˜D~AuR÷'àZ®!ÂJ¡¾oÛN8á„ÿ"»øa½( AAAÿ¸±J’Äå+—kmF'þ°I6Ò®¤9yÈÊÊB­VãééùDõËh4b2›ð÷ó¢úe±ZÉÌÈxâxGAábÊÅ'R–'&%þ#u Ø3—F#ÿÈþ§¦¦âàF­ùGö?)9ÉÉÓ…@JJ ?Ø 'œp 'ž`$&%þ§Æûï+ Š¬Ø¯útÆp‰Dµ™ô“Ö/ÞÂ)<ñu»Âžd…ŸB+ U©E°˜°(j\]E,F3‚ Bë&b5ZA­ÅÅEƒˆ‚l³`2[o“‹‚J‹‹Nƒêz{f2\ÝÜÝDì12öSj­+:Š„ÍbÆdN‹V£F@Æj‘QPãâªATè\µŽz>ö>[eAT£sÓ¡dTùIœØ¿›SrMâªDBn‚V‹F­B@Æb*ÀjSPD ®®Zû&ÖÝW $»Ü—R@깓œÎŠçã¹}QíçrN ©Zj•€, ht®¨U"ÂõþH ‚ÆW­Ê>1²…‚+²“!p‰…iüp±b?Vó«¬üõ’[ÁYYà߀'-Ûõï–Obôõ+Ÿ¸ù’ŸÔ~9!‹ÞÿôZc7¯å 8¯ø{xz«œóà„N<ú¾åϾÿ÷í…œ»0'œ¸ÔÎ)p 'œxr¡RIJ8GZ^5Þ•H²8vø2.®˜Îmbñڤ昑åPšõ}†ÊÚÃ,˜n¤Ö+µ•d¬Ö$vMK&fP¼ÎndÎ÷;IW{U¾Í[×$@6aS@Tk±\ØÂëp1ÛÑ޳ݨª¨o½"CÁšÇÙóYº3 Ñ+Œ¸:-i[]á5ëØ´÷yŠ5;v¡q°ÚÞ† ÁS,žü l‚M«—º«1c6ŸbåÇK9¦RáCÅrœ;°…Ý™ Ø\2騍$é;׳õèEŒR õzt¦F„^œfÙ§«8m²!ÏsEÕäz+Ù)Y÷Ý:eyóù4#>hXFƒ ((hñФ²ùÛÕìO¼JBã~ÏP5ÈëÉ¥|þó$D\Jµ¢o»Òèl²ÓÍà„N8ñ·nÛo¢°Ûü»=_î‚ëmÊE¶®»HhÅ ” q+d¿r9ôÉ!Ô¯^DýükC÷…¥aÑôûnÏöóÇ5æ»=óh£(ER¤(]h7Ûú+s:§ö>þ5Í¢¡ÿã›ÕÇÃý•´- ¬ä^:–#4oQí¿F_ÛKú9¦ÍÞ‚Ñ*Q½Û›4‹~B”{˜eë yÇŠxò߯ÝôÕÝ×à½d™•ì”cì:æFÓ¥ÑVæ'°ìgÍ»Vý] cÓ=Šmr§åù÷‡,ü '×î.2 Þ³‡…Ó½(ô`4)¼Mø—ëÅÄÕ Ç8èO³†Ñˆ ÖD6nL'¦F9¢ü\ ýNAÉæÔŽ¬ß|„Ëzº·nHÙ —GXs÷â“?Ò*kß·L_{Oÿr´ìÛ–Òº}Û£¬åÇÅñþÄxŒåk¬4îXŸ¿ØÂ,©àDað¯+Š‚ÅjÁl6#8=÷N8áÄ? VYƒ§Ÿæôï3)Ÿî-[Ó¢l1rò-ä%¹Ö_D{~_­O`R3-WöŽgóét 3c<½é¿»3áÊQÖÏ;†ºbb r¸œx˜ÍÛühŒ`•Á*aÅ€°H4þ"Ú û™½1‰5­(²„ÕjÏ´°˜M˜¬2‚b%ãøvV®LÄ­A9T'®’rj[ó¼IIÈïL,‘9)ìÙ°‡ðúÈ‚€"^`Í';ÈŠ'R ûËîáùÎþ$,ü‚ÖD‡YqñòD'‚ÚÅww_Ì$¬ÚIFL`©ÒDå$²éç=„ô*AêW³1·q%Ôê4TWmXL&ÌV E°É"®Á~xºínåìaÛŒ¾XOM*;ç%rÞ¨%¤di´Ùçøuù^ÂÚiùeê,+rÍĹ-¿q²U eÌÎ,`'œpâŸoÛ>!ºüoMÝŒàâF¹ÃéQéfÀ47íÇ©¨Ü¨„Ã!nßæ]Ì7û´4hÛŠò¶Où‚µéÙXÕ òA+Bîå¤à§¶üÂòÕûÉø?{ïUÕµµÿö>zïUÅ®Ø{×c4¦™vsßô~ÓM11QÓL4öÞö†ØD‘" Òû©{ÿþÓî½IÞß½ù¾kÎ)ƒ{×1LÔ»&N~½ˆ-—ò©•»ñЛ£ÅV‡Ð"ö,»AçÉñØ`¢äè¼³ì4N‘ÝF±Ò‰ˆÎ?¶3ÎÔsyÏf6ï:Íud,&gzÞ{?#¢Õúðc¶—UczðÄ?†ýÂÞ–i¼‘Ί·à´ÂŸ.ýG1a@(Šâã,[·•Œ|#*(”䨼4)ˆ£ï~ÆÎªz¬Š^<ñúà[c¶e¯â¾8ŠWÝÆ<À °ß—ÖVyœÅï­&G/ºM}Œ~·]ZÖ’ Öí:‰!y2½õgø~åN²JL(DP(µ±£xvd :åïu{ ¶|v~»Ž#—K1‚ c³ú2ìé‡éî&BáFžùä¢R@Ò»9p"£ E*pc@¿PT€`+âPZ>ºÀHâÂ\á—×ù9½rYõîRNW5b“EÚš»õ{y-½/ÞÕj®cÃæJz<:Ý™5|½ä• pÀØa©„þ a,Q’¾µ›çÐI“ÐÉÇ ¶ðÁ÷G)«·‚M&|ÊË̈Õb+?Î;ÕŒš‡@n (ûç 5„¸ä³iõQÊ‹É@òä© MôG÷;zÕPžÃù3"ñýBQßzߌ\Ü—…&$ˆ`§–Ò2PNÚÒ«ÄNNÄY€Ö=ó ‡E¼‡ðÀ‰è[ÖñâÎå,Üt—¸TÆL”Û0®l¥¾ø[vxÑë/D ¶d¼@…&Œ>Éþ¿èX¸Áþ7—qÅ»Iž"íñ€êγn­L·¿4l¤äl~ÜG2V“FMbH÷P ¿"°ä_´I$j‹ÓYýþRÎ*é:`4£úµz9½# —¸ü<ìªÒxýÃ]4Y%BFÎá¾.-t‚©†¼ãëØS?î7ŽóÝÛK9¯¡çðQ ë€J¾ÎÁ¥«Ùs®€«„ÿˆÇ¸¿»?ê–W².c)+³†2°ú_¾½’\AÆàK÷©êkåFæ>Ö-ÞÂe…ˆÜ)£†ï¥ú=]Á¾e¹ÄLLÀEk¬ö# öxúæ‡:·Øw¿¤ã›¸–.<„ _GD*9ðÁv–×c•AÝça^à÷S/Õ×N°aÁ&.J’ÅŽˆ^£'q`ãzNäµÒφòôÈN´­­²b6>÷Ñâì9Gï†}+Û©JdÉfÁ¯óÆéWغ®Ï¸8â‚ÿÐ%ÁVÌ‘}y¨ý"ˆpûy[ X·¶‰„;` ÕW°þ¨‰“cÑþ¯Û-övP4‚JXµ¼„˜Ô$ÂÝõ´*øsñ€‹Å‚Éln«܆6´á¯‹ChGúN‘È¿ÑÀÑ¥ÿ`©] SG ¢‡¿¶miœ/¨Bª¹DÎ哦N`ÔpWÙ{‰1ã|É=zލ»žD‘½•i»ÑX£p5W“ŸÓˆG'IÉî8™MØ0xv\åÂÕ*¤š.圦8F‰ ˜Í Ë"“‹ÕBõM…\4c6›1Y¬Èˆ¨íý‰îOafãÇù°ç‡}ܰÙ$ê 9q(ŒF/'´¦<eÔÐmH<—²ÎSë˜È˜÷ïfع“ÔÖ7b”Ûèß6´¡ }(ŠÿŽô¤…[yjÎ~<¦¦…O·æc‰Ôpƒô ðöÖ¢»ßC\ŸÛ΢Æó«Yºu3â‰î7‚ëG_dŸ5žødGª¬å¹á|5<ìןáÄñˆ IDATY“GQéu,!}I )"}ë.ö:„ÐÃ} ª „'õÇzb=¯­eá˜T ‘Ò½ïóòê³TÈ£‰Ÿ¶z®¥­äíUÅ´Ñ—P½7úÛ¸žsƒÐ¤þpn!ûk}h׹ƣëxyM(_‰F¸´“ö) ±ÒP›Å‘·¾%âÓ{ˆT@CE¢JEl°…Â3Õ(ÂûÒ?°€Ãk6²Ûɇ A{8h "*¡vºŽlûšƒ‰/ÓݽUlŠ©†ó›ßåøGO%qP$æk{9ræ8Êè¡t/ÛDzi¸8%ÚõçTCÅþxyõI ‡³¸,5ÜàÐϲø„í’®cIöAó§ ùâÞ_¾Ýù _ žº:Ž}¾”ò°dº¹H3ñÆ¢v,¸¯ã$‡±äGOíGŠJªC¬Ý½gç}DZIý0_Ç+«Bøj\Gò·=ËQ‡±¤Dš(8ò#oŒä$3§w/¦$x,½µ™O߈*âqFËk9˜{ çø!øçlã³M>¼1¥ŠôWØ'w%!ÙŽÊ«y~K8‹†„ü»n‹ŸŒ9w á'{ÛË]ÄZs™«ö!&¦ÒŸNgîcɾ@ë¥ ÷àe*mÄôÇ®QC˜ÈÙ5/²Ç”D\ÔYÇxæ+w>™Ñåb¢©ò;—}MIð(;pêÔv¾ó˜ÀôH"¢“Ðú˜QÙ9S¾û–çDZÿëE¶õ&!ÙEæažùÆ•ùÓQœ]ÍSïž%tJo"•~¯ËEFº´ƒÓ† 1QU~‰Cï.#ôƒÉ„),¥gÙ¶ú}–¥3ij¹»í;&ádA©s¦tû–f÷Àjûƒ^ S>Ž–áœCGw{DYB’œðÖ‰Tÿ‚Wæà7µ;ímõõfª­ãp¬§Ìô½éhµ–s>ýÂÍfCÖÐipo¦µ¤x0gmàãkÙv.ž·SÚám¯áÚ®g9¨Jr<”XÁK{Âø$ÅÄî¯?&×¼®“ui; ŽØóX׿ ™Y±eÒc N±«;Ê[OoÁÚ7–ÎZ%®^B1½]G~<öÆoGw[ËȺœËcYxy381;S>û÷Ö¯#Þ¿HËXks9ẋq#Ûãë‚ÙàðljIÉDEQg í05‡ú«œ>²„/«à»“é­Dí¬ýŸózJ¬åÒ¹ vá$üÒßÕjtZ wræ"Zç :Åêøe.]BBüsð+ýTT“u&C{:…ú¯ÅE¯þßÕ÷ÿGñ#´|³vQÛ‚·¡ mø«Á†ÆÑ‡˜”¢*(ˆ2°bq.×Τñݺ (‰ë‡“Å•’mMV#þÉ“‰Ÿ{€ì)ÉœÌ eøD{OÉh£z3¤O;”&+)½ípõ@ÛdAB‰Æ’ˆ/Ö“¥ &¶{,ÎV7nì£Ô|ü‘忤@27ëÀiq‹ÄãÏq)o=°†À>Q¹x–I\¼‚E"¥‘þœ‘ ®žÆ°Dúõn‡Ћ~ÃÝp«>E•.†‡zj­È‚•Õ†Ífņsµ…:ç@¢ý½iá–®tëçE{u6ÛÜ:èdÆh”¬Í©†$šå½,ÈH6³›ÍLc“ «M†æŒÖPßH½G þ~yÛ#H)tïïNˆ£÷¿f ·®”5Óï£Äc³žÆ`”Ú"€ÛІ6ü?`ÿwĹ»·á1ã%椺ÞénÓ8ÛƒÞ…g¨jåÀãZËN”â0”„2 ½&‹]ŸÙˆ|u£ƒõ™Çúù¨ƯÄé‰OJ¼Á 'QÂ5ëmΚ³eq#^SÇ3¦K êÄb6¼ŸMÙˆh|àÖ‹QÝXr¬ùpi«­çjîU’}»¢Z>›o»gVâ1¼‚Œ%F|f blœ7ЏB6Ì˦|d<Â&òt‡P‚íÀÚp–º­_’S‘3eE7¨Ìv#æ®(\}Bèæä„ôÇ^â\Íuªt)L¸×@G€ò^=I­þ§§;¾z1 ð—l" ld¹Fec#HůFÁ¹Or)¾ÞH´Óe¾}u'S籠#*À.¬'£Sjù2­U´­ÌÝ‹8¨ÊØžMäÔ”shÉrã4"wÞ’’ǹ"Íßn ë`>aß½Ép-[ͯdÒpÜÄÕô|n”Ç3ü™T‚ê´dÏ¿DyÙ ¾kÄ{Ê@Æ$ú¡J(bÃ9TŒÓ°íc;º­Æ` ”yðäÖS\Òpn_0ƒ¿L%ÎŒeÉvJ³Ò9ZPŽìÚQ“{àZÖÀ¯SaÌæä§2Qïb”¯¯²aÁꆄüÛ‘_wŽYFüŽ-QUXɵ«Vº==ˆÎÔ¡_±„]™…Ð+Yö$¶o*cÞŒæÎgñhÿáÆéa°Èæ>Gțх˜[O¶P[ZÈåô†,@,7P/ZCÆÞLjâzÐÓ¯ÅÙsoW¦0išžss4t\8ŠQ>j[ú%wzg„c‡‰˜=—G“5?ÙÏÿ¶—eÄdæÄ†¤cÙq–ì_ÁUËdÂŒùÜ·bŸá ˆoBk5!ØE’Üçæ˜¯ñÅ7]™roÍt­É²K C&M$òŽ,ìuì\s—‰oñÄ¿[ކ«'9yå…á÷òñßuÌð3. vxNàùWúþJÚÉß3…MÜ8³‹å›™ô|/Üi$wß1²‹\è;%€ôoðÃŽóTI¾Œ~îY&„ðõraš…|³#‘Ç_³Å Öͽ—½YJœ½»óð[÷ù—JJ)#K΄%&q×€Îÿ’³Wø‰MR¿c>Ç/# aÈüTb-¿ÝÁµ³EŽÂ­=}“;q² ùÜ-×voÇaüC<5,ðÖ{Ùä‚G÷<Î gèG©t0ùPóu×ÎBÿ.Œœ¨ÇÅ CMòº'(¬5b•Q ù_çMÇYÄÚÛº¥ñú~8¼žKæqôè2–zá¸ç|FzIæŸ,—Ê¿ #º‘]¦néßEv~n çÆ!¤Šfò\Šxc÷%HÖsyÏvgøÀ ‚ ¸„Ó#9‘ù&Ä›)%{0徂rÉ}=ƒZ°^ÛÅ'ŸäÒó•ûIÐŒ=>á}˜Üð¶EBÖú9™q££qphMóårx‰=÷#U„Ú¨96çE#Ûá¯s!2®)Yˆ­Æ)ºEѯ['Nˆ‚¸Æ¶b?ÍH)$—M‹ÎÓ8(;$®îšÇf3¡Ÿ‘Œü‡£‰“9^Pö«;^ÜÑÝË(ØÒ,ÿe«LΉc´›=—Ù]Ô·ì“Ë'Š©‘¼8n Aq黨*®D wB¼ð=ó/º3 u ù×n7­íí_„ÊŸŽ½}IrqÅ êÝPÔ(}$ ±÷HžÛ©•<¹FÖ¡B"ÆpHÙ5lø0‹ÆiQ8êœ ëA÷‚‹-DV™»jÑõdôä.8ã±q‡¸~×Y~*3o£¼•Ha¹lüâ< ƒƒZ2_4q#ç8kwTã,/gõa%‘½Æ0kJŠNáBúa2¯\!äî—ˆ»²šeû.’ððçLwà§IN䊽¼þÄb®(šÌJ¼“&Pyí2ù¥Á„x”°já—¬=ZŠ8ˆ'§G{±kîvçTScúÜWLŠ€Òÿàé.£èݺñè;3¸žÅžï¿fO®Åuƒ¸ç‘éœ^΂Å;ÈD’‡&qCNéögøÛÙJÊk†ÌYȤJÓ!Þz`!Ù¢½syo^—÷±|{ަäègðôƒ(‘°šX ôŽe`J.g®iPylýHMÒ£îþW¹çdz”ÅÙsq?ƒ×$‘jÜW­bëÖ‹Tuõùø0«Žà;”¤ Z¥–¢´]¨MæñÑQ´¶~l#6ùö¹âzÆvVí°úÔx"•·Ï¿’c Ã3Ùu&‹ˆà@bt T‚ EäŸÎþ„Œ&+*»¼úé(Ü꯲õ˯I?gÏÏn#´Ó@¢ D†8“·{ ‹oç V¢F?ÏßÇ8³yî'ì¸TBƒ-”éï¿Hª§*ðÑë§IzåQºµ> ªñŽIdÜ€®ˆ@ÏèM|¹.›“é*¨4â­õÁ«n=¯}¼•ÜÒ:¤vÓyï>-Ë×”ãV½‘íÙ qtcâKïÐ×¾‚+çòþ¶RÔ¢í{ŽcÖ}}°>À©ý+ÈÚ¹Ž´‘Oðâ¬x²ß}‡¥®Qk“èsw*’ʉóKgðÌNPÙ»0é¹÷èj¾JÆIZÍeöo/BkZÃúã ¢LfÚ”!iþ¹Mr}ÇÌYz… ÄÁ3…GÞšN„ Quu7 Ÿ[Ìi¥‚О#èée$óȬJÛÄᑃq·3|¼.vÙ,~úcŽTÔ!)†òʉø–¦ñé ¾à«Ý*Ž˜nð×™±I6,Mµ¸_ÚȥꡄÙQš•Îe!¡¹¾o‹Ì—e ©ågnþY’‘œq¬8@}h/’z'ল!˯îbµ9ž»ÆîâȪ6qîF?|ÛôHÚІ¿¸],ËHÿ‚ì2;Ve¦{ŒS‹¬(ì]™ôÖg óA©Ã=ª+)yåìÌk¹vSx€•'Šñïý‚Ï‘y ;}5•Þxë%¬€22ŽøsÇÈâí±jN·ˆ²mî¸xj)mtF¯V`èH|Ö>òe oØù'2 ûÖjž·úš ¶/ÙNú®+¬·4â›2šYO#JÔœa— ýÝÕTU¹â °ŠàXâ/ O–ñp%¸å”b©Ê#Ë!‰À|ƒ«×È Já^´àt3ä*$?|< عøáL#?x”ù‡Ã˜¶äúÙý¤–—BKd2½JK(8*M46ˆ§fòÅDde& µ ]'cûAN¦o¸# ó‰§_÷Ë,ßÓrYÊTGvÚ"v;LãÙn\ܽ–Â" ä¥礇=‡Çƒ ç b{Ä⳩ wF2“EwOd‚¨ÀÞ¡w?3‡;ãM45 HfçæÈ+‡"j31UçSTåA FĨ;Ò)ó y²'•tÒØÐEy>‹Kr;LuÞ8(ðU:Ñpí y z´öúæ ÷H¢ wSa*¦´Ü—D½ 5bdqçÒÉbÿÍ|ç˜À•ŸííÉo}ÆPÿöô»ë‹‡Œd®Þ@HÜ`&ߟ”!*/ðãkËùzžÐ±/óæT •ìå–ͪîF¿Mä”CÌ­%6[=µUrËÞƒˆ .Sj'EKŠÅ½ïsÂ/™§"\XYmÆz³MmWúo!«ø4ù˳cç Ê& !qLþº9þN Ø%” –þ5UqÕ)‰!”rêýf'ÚìÒtIxÎkîfÞ÷½p½÷Yº£¢Ò×KÙ‹ŒxüOÎ~‚QέfðO‚ÉŒeÅ%›"Hí†Ë-Gµš€Ñý ùè(Wfûýê3eDDeK„´µs+¾ú+´ ÐâÞ¾+)…7Øœm»uSÔ{–œ@dÚi6ùÖJ¨Ü#éÒ3·µ-}¨¤²<W¡ùãàNè²ódTؽd-vžæ[sC仨ùO;JE…Y÷éü§¾Î$s«2w°#Þžð­VÊ Yc '·¿-§ÖhEþOÀr=ÅyW©P8 åíàTcG†Œ{ Ëxnã.’¢‡ÒuB7V•×2áÁ>x¹6²bÆ+Tz‡¿ETqn÷j^ÚÅÇý¼þ¤)Ô¢qtC[ÿ%'*{1Ä¡ˆŒülrœbñ_³B['î›{å'øvÇQ®h-\Xõ%W'>É}‡¬8™ç‘î~ŒÇ{7µmÿXËWÆý…œ¦" E>»—~ÁŠý.õžÁߦ 'ü·ÒÄßa“äsɱ£ u®mѧ*üŽÔ]+¥’p\|ˆìÖ‰ÐYˆ’³oóç±$QÍØ·—01°i¸r’íy×VONƒgsZ_+’޼¢ëT)ºàu«YœTDÑË[‹Jrwó}Dw6*šûÙ¬[¬4Õ”gˆg¸3hð¢æôr^~o;b™ÌœÙõgåTn‘tîƒûÆš¯´WRUÈÍÌïz¿B²®RD4•WÎpô°ïD ê= KN$b÷YD©EæB¦Ž´·góyzGîûñez«$ÌÕ9L;A¨¹™Å2Τ/füø¯ñȌ匿Çm©Ý¬Ÿx$<€;ïòÕQm´Þ*¢ëK¢ç÷\6‚¿Ö¯Ž]èœ]Í9£tKŠŽ¾´ëÚ‰àm—%€J*ËýÑ[Ð FÆÒñìi.#á²ëÖ*§ðâ½A”[Á©"M³ý¥s!0¡31G£´I¿¨éÔžèÞóßm17¯†å[~8DÚÎ{Ù/›p KdÆóÏÐ%µ7åKyø(ŠÕ.trÃ’C2—óy¦#' ¢£a˾¯Â¡%ûÁOííŸA㌫F&?ís^ùü>ãbVª=ûæœâ`ö­Pc³XòÆjfFy2zÞ=,7Žqj N.ÑL}úî–=­Ç+¦ ]rªÈ¨• uMŠû#a(¯*æÆu?Âì›&šmÅ ®h¼vœ[.Ðç¹—y5æ$g³ö€×ÓÈ¡c‡»°xágTËÌu<¿bÝÚ Bß:‹H_Í~óÈwx:²Œœ³'9YRÇk•\É©`÷µròå®Ì~+Ž’ûi¨ËääÚÓ¸ Ì”þþ8ž_ÌãÏMû÷Ð.~2ÏÙP[MTžZÏÜ5…|5Ò¨”žD;0ý¾~èÎ-có‰"¢¦=Ãw Î|½mÇ<'1úž\³¿â‰ïvÐëí`ÒîÏ îåoµPŸ„•ïebçÓÞrš^s^àîPOì䲟Iˆ†@bºÇá·)Q¨ ò†?%@@Ú‘èsçÉ!’ºJ©e«;âƒÿ•R òÏrøt.n)2$<›‚c0ò9¾ç‡óOqìG%’#Þ\δðŸn uE8´§‰¸¿µ"€‘‘L6œ»ÝÃè‚/9r&ˆÈ8 ¨õ9¬šõ y /ðp¢š¢í_ðäºX–Žò$¦w/ÂLî̜ޑë§39›«¥Ã¥“ì8žKäÝÏ0Ú݈S¸š½oìAì6–ǧxa_¶Ïî¢Ã3ñi¼ÊÃq7þ„FF¶š1v€>"‘šíÔfŸáB•=]÷°`y6¾#§2ÜËÀéo¶gòçÔ÷{èòÙ<ÚßJÃÑoyëÙMD~9Œö}ïçÅ."úš\vŸ½ÄŠôN<ܾ=ÁQ)øøwbðØä-y4MoÆÎƒƒ¼œó9–ù'¼Æ£³eš2¾çíE{ [ÌÙ3J¢ Ø¿ó ýžz…×;fÙ¡ ì8J¹¯ÙWü›6‰Süž ¶¡¶)ËØÈ» Yؽ˜m?¬D7þ%þ'¨¥‹?¾ŠËœ?š‚WhFô0²p~5\bãß^ 3x6÷Mt¥jǧümE«“ò9ñãJäWÞæÙÙ%dÛÎ+Γ0+º-]ô¿r<ú¿0HI’°IR[ è6´¡ 1ˆj;ìÌÅùòc–Îw„&%Áý&2­G/|šÞä›â«F%AQÖ@²!Y”øwkÇÂç+ö] ’IÆàÛ•Áƒ¯°`Ú`:ŠX´At9‰»„¢4š1Ú'Ò'&æ?Æ÷兀öGÑà63F#H60Ed$I…€¥é;_ùŒ%.4naô}ƒý‹Ùøíj^½{²Ú†Ñ½/OÞeÀd1a²¶cÚÓ½xï­Ø­–@uäD^z$~©¼÷ð–;È8Æ0æþ9DÇœâØ¢—yøÙ ÌìÝÃæåü}Êç ´Ðä1€9s†3ã>7{á–JVcÃq5š±I’dkv@I6‹“ÉŠ$Û0[̘³ÉJ}SG†ÏÀ7ó>æáu Z1ùŽæõg<È{ÿQ&~."ªÀ¯÷Ü¥7c±ÙhÓ"mhCþêø¯HÿLÕe)Ü»ä^:J6šr7ñÅ+‰Y:ž@›«Í†,(¼³Ù´`W…å|®1RUÑÈÖÊ~t,‰¸Õ¦]c#Mÿlü€@#'­áš¥=Ûs˜¬Vĸ}}Fùö7,+² $,+ZÇÑ<ùá"ª.shC:[¾=IÀƒ X2öcð퀿Ÿ/ŲI¾Ý7»º&Œwh‘ =´‹¸?Äh*-¦âúbú>تŸuzoÕn) èÐ’ŠKKÇIÏóúè+l~þs”óž'Õã'€dÃl½é¼D@¸ù³­É‚ÕÔD£ªÏ-@å邪U’ÕÖË ¦†¶-ü‘¥e{Ù÷‘D}]-µºXDχ¹ëµ7Hµjqn}ê¶X[.KÉ(¸±ëjǼÏkóXþìË,=?‹Q‘ÞwV‚@ a  Bc²a3KÈ éŽuÑÕ5a”EZécµm“ r3S‡•B“«Jä[c×5™1YeQâVeQƒ]Ã?ß;¿Š[c~yo?¹šÈï{Sš¹ŸÇ>fTãr¾X·—c×F’àîF·Ÿ&ll#èsY÷ÒjÖ…ÞÏ”ù½xgÎd~0¤b£ IDATš`©ˆç9×ÖÕâ–ÂÐñçy¹÷ šœ”˜+Hž<“AŠ›}ÉaÅ·*:ΊÅCÆìÙ<ÿÈX¾³š‘¶êN<íRÏ%c*¼?“¨ú2rîaÃ?vöv*à ·óÝœCtúø‹¶²`Á·ìhØÎz3µÕu4¸]Dpy„qñ^ˆ\dÉ"GR^^ñÇŋ͂Ñ)‰)Ó»ÓÞÇ…MB²óÆÍ¸…ªÐü,Ñ·Íú¯Ùw·ÖùÏCâ#ï0·ÜŠxucF¾Žb쬜ÂΓ†rdem®„èÑ™~Ï„ëWÙúÝýô¬‹çÕ'fÒ'ØîÏí” ˜ŒíÐk?!5蛚0þêÑE‰¶éÛ?ü’ ßë]â1m cRþýzy6 V«Ô, ZÃjÅ&É?_3kk;]D!Þ”¢R…¦¾–šFW<'3xî(B+ϰqÉ9vl fʨHôÿI•(`i¤âº‰ª€<>$W›LÎÛ[¸¶m'W낉éÓŸA=BQKñZS€â?®ÇDQDlXbèÔ©}#Ñ´ïAðÁ|,MZÜcp°¯¡crg*Ö²˜a<9­#á˜ñ0eÿ¢=õ›‚ïŸÔƒgÑq¾|{¸Š!1Õ(EèÝ-€’ÅKù~ýEØâ„ÖZAaIz&aöëÇè~)tõÑ@É1H¢OJOcÏ_\&wÂõŸ~·Ù&‰ýøM‚›örÛ-}ª¶`4ci% mrsÚM¨¢¢¤ß™H'-bñFÞ}ô[âÖßC¸ÑÈ¥“ÛI4 eÜÒóJT6ÀhÆzëùål|ôt}fíåˆÈÚ±”øaëîˆô³4cɳGˆÿð¢WÆ)<•‡Þ âðŠãì^¡bДηêÛÿš|[ÉA©BSÛ@=ŽÄ‚ U⢼SöÛ~V ÊŽø»^â±—ÙüÜg(æ?G߈É|´l‡fYé3–—¿ëQ]ÍÙMû8òÍ6üž„¿ÐZ?'àçúSé˜ÈìwÎðlÿ¡|d'"ÛÔ8¹¤òœö¶l´X¥ŸßY±Z[ÙL"¢p;{™¬Ò¢oh¤^ÎãÄ¢•¬(ÙÇáÏdê¨Q„#û>Å3cÚ¡°Z°Jòo§ ·ÜžKYnÀjÀ#̤CÝ ríaã»GðzÜFI}%ÝŸûÇCsYp.ƒAiØ· +rÙøÍçhh¤¢ÊÄ]K|3o~­ìí_‡gü8ž|/–½_ìa·8×Ú3äž$DúàP¶™·æ|I¦ûÑíùˆ¦‰óx½}6?¼ô6+/ÌdX¨G³ýi³bµIÈØ°àÆGú²ðýLPŒ¤¨/ãñ'µ(UÍ¥ÃPh±kh¼­ÿd4ÎxÆ gX÷Hzöî5cõMeÄÀ˜æ ¦#(Ü:Ó½WºÇ¸!uÇ/­Ki6²VûÔ^ô²„¥±£8˜ný¼ðŽÁðÞáÍv¢¥ô—m(Kësˆ ›índmKW&Ì>Á+½Ñ`Pb­3?|2á×±qþ7œg% µ&ª*X_Ò›˜ô F¾=–W476òöß¿i&îx°=}à½8çŸm% £Â‰áC{òÒÇç¹â%`S*Q\¿À>cfÜÕ•xè¨Odù“Û¹<ê~|ƒƒpuó¡Sd ®^âÒõb.f5`ñÈÈÁ1-ÑýgÙ–·•M‡–£²×¡´ÞàZi ÿÞ¯‘Ì[ÚG·&ƒ¨,2˜mÈ  W5BåQ–>Û@ØþW¹wn$rùFw¦OÏ"0”ÑaÅ~.[†‘T}ŒOÿ¶”bµ |éçœ ‰ž¸¸¡ëЙ—>Ì &~jOzEµÔ®(@öÈIÄêÀì‰ÛG×1‰J” 5îøÆ¶cHJn6‘¹0œçdUÑÿÄ&ÑÚå±dæ<.*¬&+š”8²êÈ–3{LÔíZÚÖ î¸D%zG»T72ÙßÐ1RHöÒ€kW–Ü·Ó]=ÑG gDjBÂΔǡýe·Hô6ü6þoÀ²ÜÖ–»³ mhÃ_ 6d‹ï¨T|µ3MV@V¢u4`PËÐwKjÂb•…M‰½J$ÙPøä©l8(%,6TnD¸ê° tŽF ’$#[eÂúÜË£ Xl ¶³G!)pp€9OÓò¯ˆ£ÙÚM«ÂÙ¿/¿“€ U:ì N(Uö¤N„ä†f7·¤ÐãlPñÀl;½mäp{µ;¦›Ö Æ½Mƒ¾Ëtž ­Á(TZêÑ´ïÃŒãhpqÒîA/£éV»®5ÚäI¼> I’Qéõ6ަæÃŒ„E°'8i(3ã”È&Ƀ5_…JƒVëÁä¿·g„©ùH+)pSj˜:÷e¤f÷´ÆÙ­lm•V¦ mhCþºeé¿€–°áFhD$‘€Õ’Ö}ÉźñÞ‘ƒWÆ ø÷yˆ÷âïÆ„ ]ÃÞ›_HÏÂ8wáJ¡ÅV]BADÀo:’›¥zg–}MZ¡7ƒþ6˜@®f±[ÒÐ5–áÃñ—½_²$¢ÖúÓÎ'€¬E%ìÍÌâ: X U¸è\qRÊXÌ ”7Ûl(!¿/ÃnÌø5^óÞf|˜©¯¯§¡Ü“Pÿ›®ì:ŽÎ_À19–‘w÷&HwÛ‰âè‚#!$¶{‰¹Ï“êñÛs-I€¬h>ìÛ*¸îî@°ƒ%Z<ƒü~s¥4N˜>5c­Jk)Ç÷ì#½2šñ©í[EþRôœ*¶ñéá1<öi$!B}æÈŠ÷?foê[ôqlÕ?È7û'UqÃÕŽg-J³ˆBoÏa¤/ÃDVT-‡X ¹¢œëíýhµrVjù½\OJÂêãŒóÕroÖª²–QäïJ´N%Š›ÞŠÊëDâ÷'ÙnwîmÎkæqà Šüâ‰<~_ Î<„N»†cG×s©ãd"\}vð#>x7WÌ´Q#yöã®4H ´µÛyòuúÉ‹Z_:Mú;Ÿôm@I »7纽ӭèe»“Õ¾3›#1cxa~Oš$%êê­<5W$P%qXð&Â?˜P‚pÈ»t”+¦T<4¿WÈç£1Ë øè-Æø‹`éÓ cy@R 1]fíª4ùv'5θ¾é.wÈÓžhþ!'!©ñ$ʧ•@‘}ñÍ\ÃyÓD¼Z?H¡F›­·¶´¨hvfÉòÿÚå?P 33˜ß1œùã¶sjZ4ñ蜼QŠö·ÖSTÙáO(³:øàôÆ^ŠÒ/Q‡ãŸÕ)A@”d$/|¯n#çZ:ún×Em(åj˜?c$ ›¨¼íðDQ`³`ÒúÓeò LŸ¨`É‹ûÁ¤@¯øÿ96C¶aµ)[ä„ K]5å>tµhiïã—Ýcò9Q—G¹-ý˜Q$ IR :y5¯¹Bƒ%5W¯pÁÁWƒ®¥>µí¿+#‘,#«pÐk[æ[D+*šÓåÚ$dd¬V˜œ[œ¾j#ºªZêþ̾èÝê0®Û׳;$c} n&ÖÚG3üñ) î„h²hÀW{€ýj g}«à:Ç'²„JoÀ®¡æ÷_ ú@DëèN £;LMèq2umðÛ7nÚ$ï01XIñ+6[Ëû-×S­‘±y»þŠœ±aµ8E{"ÆÑã›7ɬ¼‡0u9%W|h?]‰5[B–n·Y¥ÀÙ¹™€¢œÍOÀÕÎã™<$ g%@9ç=‰ÐÊ­o=Â'V8ï-FÞºB†Zï‚—¾ cÒX_œEiug<~[O[oÚ X±ÖVQრròÀÇ©YBÿv]I¿0 „Ñ)òUŽæ>GßD'üBœZ¾+¢Ò:ãé H‘9TfUPgÔ­õsö?³¢txõ¼—·¿‰µ¹;ød>ÿÖ^°bµ4“8Â Ú óñjZ¶*.ÙŶìp¦Œü}—Jd Aô&Ò/ˆp¸¾d5k÷tE­ν]CÐu}Íg‹É>r޾æñýˆ:L(ÑTmçÙ÷j™þT*ž‚Ð2 ¿mÁƒ€ÖàŽÁ.ײ³FEyµQ‘íˆ uC:‰¾Þ/““±ŽƒGÇñäüp âñY³`>û¾JwûŸ·,ú$s×ó m”q°ᕹøkr,J7Y“ò "[­ƒ ¢ •Þ¥™”h¾ld›J‹Z¨ìqP ZQD°YpNyœùQÆæ6*öòÚ ŸæK’ÔjßÙ0™Üézß«$Êf×ü7?GË]s;avpD¯†f>ÕÑŠµhÏÜ·™ð7ð¨GWv±`KÆ–nró!‡z‹¥£ÓmÂÌfCÒ¸á¬oÑÓ‚¨@46aê0ƒ÷ç¦âdn–/j…@MþN½ ö­ì†¢Ý€f™r+õuY)EíðǀǨÇù¸ë½TrbïAÎÖ¹ÒŸ7¿F£¬BטÎG ®’xO9¹—ðlO{/ÄðIôv‰Ìâ™D{Ü)ÕönøÚÿò{,[›Àe$³:½Åž«žÔLFLŽx84ϨÒÞ‡Ê\j'Yj.-‡ ›, ØL4YÕ(uη/Ž5ÔQãÓ—‡fu#6Ø Ñz\µJ ø…þ…—© ¸8b_`¦¡)’{¾ø† æ,–ÏÍܲ޼±ÈYçˆ^h9?éð°U’{h;f1ðÓè¥ÍeÏÎÖ7Êæk7’–jdœõ­ÊwH2²Î W]s{VQ‰Nhe¯‰jÔú9-ƒB¥Fw£„s&Ë&¹±…g¦o$â_ò¸{e9»ùjk-uVMà™ ZìI²5÷LFLö¾¸;´ègG단<í<›¿/IÈJº¶ÐßÃBø?áè’› Ijû´}Ú>mŸ¿ÔG²IJŽnÞxyyãåíŽÁNV3h ¸¸7ÿÞÅÁƒ“…,!K6$´<ô(¬­ÛÑãæå—§7žÎ8jUÍ W–‘¬6P;¶jσA‡(èZþµÃ`Ð"Ø$$IF²É êpòjþÿ.t «MDk—7ž^Þx»; VjqtСDÆ*©0¸{âéé…§§'ž‚͆ ÐáÚÒ–»‹¬ jqpñÁÓÙ"Gg<<½ñôôæÿcï¼ã£*º>þ½w[zgЛé‚]@}°DEŠ`¯ >"¯`Ä‚‚¨XP:ÒKÒHOHïuwï}ÿØM²I6‘æ#øì°{÷Þ¹gfΜsfΜ3Þnö¨Ñ‹6¸yxàá剓­‘F=’dl ”jkìlUÈz•5VVÖØØX£Q èt lÜðl¤×Õ…¤ÄÖÃO//<½"äÿÊ3ã¿&ôóÿcJ”151å\È!S3¶™lz ;´Ý¹ó¹‰DÚ()ݾšM™ÕÆÚ¤·%oOs3< ÖJ¥ ö„„ëÀñ8Ù: í$G•Z¬]QkñÖÔY|q¢˜†ŽE …Êàô58zúáçë‹—¿î®NØ;ºã%æðë;¯òΧ»É•Lî¬Ô(Dk¸ºà·’ñÆÅR}ǹàê #g×,|òrp!(D@ív„Œz ó GåJ°ʰ!±$äV ú¸mô÷ÄݸžÝgTäÛÉÉ.tsÀ¿û&NH(L¥Ä-†AÝò(“R)ˆ?Èa%ŽŠ¡ ³‰Ã "P~p3GÂ.Çl¦Îmxû±©þø‡hiØû=ûJ ‹zµyåäºâRy˜?ã\@2GO[cí¨AU8{ûâçë±Ï>…Qƒ@¦6e=ÏÞö‰FÞTjœðö÷EU’HRJ"îÝ;uçØ°Î†Î}ûä©2.‚Yáê㇟Ÿ#G?ûF %„^tò «÷HÒ¦r.Ç ÷ËôÄê³60kâz¢VÀá†órE• Î^~øùxãà…³£ÎNNØ pŠoÖxÐD/<¯ÞÞtju«Jƒù×ýE,œø)ç¯UVrìÛ/Hw´ByâXóõ¬dNÖ•#;84G®6õ³õUI»+”ocÁÇ©Õ*{¼mõäû¹5Eê5»"è 9và'VlÎ7,njìPzXƒu³söj ¶œ´ŠBò´=˜|Ÿ5k¾ø•ÄÊÆ]ôÉ,›ø*Õ£âéGìvŽê?5Ô’–|œl//Üe%6În¸{ ãùù½IþöVÌ6‰ô»H(¬°Ò¨P*éIÇ›FƒJ©Fcem”ŸãP…(ª±DE?¢G®goŠa¼ežÙGb@Oúz:!ºÿÊöd€BÒ’ª¨Ð9`ÿw‡ÓÊ k¬°±©¡nïöÖÅ™œQU¡¼i7UäQšT@€µ¦ysÑ5³à&µÚ,!·qãç‹ÏÑE¬K1,Cæ$&}Ô:]UBT¸zzn½›ßwæSݽjq©>Efb.’›7~~~øùØ#¨•²D3Õ²!‚ÝèÜË=³ä1[E–µÿ×Jâ9~p3{Jr8— £AáÐñæ†6‰ jÜÝðﺅS%@y.ñÅTyº7§q·Ò Tª:¯;ƒÇýÆW¿d~+;Éþo¼] .÷‡I°wõÄ+rgÊ’LΔçRëéƒ5I¬~ö]’o˜Ì½÷FãÓ(Ð*ö³µv$1†ÆÖfüÀ¬[¢óçÿáöp+D@.HåØŽ_8#Ô’uNGM± ööf:J£FUX)úÓäwìI6ü”}j/çBBp¦‚“ß/aÁܯHÐ Íéþ­ÔF™cƒ(Þü¿ç6ÆCŸ#ns>ž M]ÇÓ7/àj¡î™×°! ”œ¤"òkÝpQ›ÓÏ TncÞÄÿp Nkx«`‹‡¿?~¾G×­ÃöÆÁÍN… •Úʘ²¸™N¥B…ÆZ ôdи8­DJmáHh0~ˆØ{l:o?¼Üœ°³sÂUa”(j j¥ µÆÚL´˜ñ=Ö*D…a¬¨5½é6è[¾Ø'ÕÙç9WH c9ûöp¶ ‚ìDÕZ+\ö¼î~®Xi\ðñ´7êYS{Ûð\êö/xééÉA@›zŒCû÷õt)GôUC6þ ÷%R ;ÅþSî¸wuÁ1n¿%ä‚]}6'O8ádgÒ†jÓ6Tbç⟟'é¿§<Ä _ë¡ ó‡â mXz¨=[Q6ùÏàh §®5ÉÆfY£°u3È"?<üñˆÝÁq  ŒIU*Q JTÕ)Äž9Á¹ò.Ü<ÿfÞâD]~.õ*4V†q@ÚÖ$Ú­Œ<÷aÜÜÛ/¿„Œ£$‰J”ÈPVEÕù"*ð§‹[>å©ûP+L¢u })ûûá¿’=%~FZ}ððvB%Iá¬7È …B…•¸Ac~dïI(ˆÝʱ°`C±Ú/?ìµYœ=‡sßž8`…‹·?~>^¸ú»cgk‹ãp†ßÍ÷ÛS öDÝ öõÄË›VÈ*2v}Êì—r¬Áœ®4n.žt3òºŸ8“›OC`0A'þÃÚ8ƒ‹¬ðØNLoôèjê¨=—O96X‰z;B\J¨LÛÎéÆppÛ@ür~çX† 7oc{ù:c-ÿ ³Æ=ËïÅmg¥¢JctÄk9½æ3⪉èß ;IDS¼—u±Å(íúñÈšO˜xŽä\² 2n–Oâ·¨Aôv©¥&`87…;ãìhMÅ…Dr;äŒ"ŠËjA5ÁV?³ûTaóÆ&…`Ôƒ­üõ­7y5í+Ñ¡  WM>åÙ$ ¥^ìå…—_0d%ÉÊw/<ò¿dGIËýÂRZ!¥U:PªPÈ’_Ag—óC¬¨<¼ã7b ,cªµÍnÒ´í´‹~p«s-°À ®O9fF—µw½QoKÆßÓÕÁ¬vZ”×|OÓ†>Á¸ëRh©]esŽ„Æ3wÍe”É­—dS+¹yóNkÞB– Í4›Pd¾ýÌ}nj3—%‹í`üSÍâkCº ~å[ÒfŒ%ú Ö¶}yfÝzRy›?zŠW~¾@lÒÝ<7g&ý½"’NK]uCž}‡#§0¤¨”zioîÔá;¥ÜLΜÞÂæCUlÝò’Nû˜çùpÞ||Ÿz‰›_N§’Ìûu06*Ã"@Æ·r×§wÓJf,ùÛø7‹fF]`Cä°éÌycö ß‘ïhEŸ@ Ûã/sôÞÙŒ_CCX°ej²þØÀþâxößÃ[²•k c^Èðêd¬úß‚= e¤p*q¿œø•ë_AÒéñ¾ãm>&°úÉ›y¹ $‰1¯lã±Va¡RMû>y˜Ùk ‹±ÇR'òü›³¹!ùÞˆ‰&‹pîxe>}¬¡¶–Òüë$ƒ ï‡Ç¸uÑQd`ÂèO¸oÉoü;ª™ô:!-+:jÊJ)SÖÎNF öÐüûïI-в{ðŒ{ûæûMÀ…ˆÆÆÐÏÝ©$¥¶ŠÒ"h|û¡GòR‰&Pn™7—‚U8ÍXÀ¡éó™¸0›JñÂïƒQ#2ô•·ÙM´B½ã,ÞÔ¨¥ÿèÁ¼:>š·ð¤ß­O0oˆ3îÜGØoòTôbòéÎŒåwàëas±ÌDUV¢Õãƒ.ƒ‹ÍÔù­],|ù[Ò4áíµK¸Ñ³ŒÀY <=.š×±!bð}<÷úhÜÔ‰l^Ä«3ÏPtŸöS:ûa“ü7Ï\Í…â"Zɧ÷¬m5Åù•‡}}!'Ö¾ÊÃËb± È¿Ÿ{“{zh='WÄqïî<Ø%˜žN@HXÉø™_QR^K§G¿`Å¿A#g@êÈž­Á+bÏýß<Â.O¾ëG&qà–^•th<#¸mþg<m\Õ—$#RsÇ-}„®x>Äïê¥oSª±Î\Ë–¢W6õºN<½~Sf¬àcf05z Q@oçI×û³r€3^Iï23:š2pèýsžeRO€¶ýüæN^a‹x%^8ÇþÄäÜÇÄayTëAÒGðØš•4 7=ÚÆ´¥ |lµ¬}uÑ/ €ý¦>Ç37F^ù™É”q웥,^²‘ó82øÑ—å‚k×—ùR~•ß9”‚ ’^bìkÛøl¤=¢ÂŸç–'ñÐÀhæ)P¹Óå–¹,(”ƒk“Ñiécƒoâå§ryò¥™ä?ò³&vÂñ"ÚLªÈfÛò'xñÇ<ƒH¾‹Ù/>KtÑO,xc Ûâkà§¥D?¹’WîéŠrçBî|c;¥Õ“ú¿ÇíbÖüìM46xßÃÛk# fâØ4þód4KKíésÇÓ‘‘OØvŒzêò_}—ûû/¢ü¦°ì5$¹Å°þø;ŒyAÐà_ÏÉŠPîšÉî9ë©9‚±£;a-VŽNTƯâÕ§_¢›0‹y#zÑQ0lk›DéìϤ—3mìæŽ‹æ ¼èçSÌiˆ{l8½†çßú”ƒ©ulØò!CæüÀ+s×rãÓ÷0øƒjtú(ž\»‚h}- G÷"Œxɰ©%¤ý¢ãx}t4/y{Æ ä3›8š¹—Ø}°n‰I§'ôÁÏyÛeuC#X)éüÈ‚ÜÃ+’oWþõøl:'þÌ£óß xä fϺ‰`EK=]¹ãe¦¼¹…¢*‰›£ßãö%‡yö…—Ø9"šhÁwÿ©¼³¾3È…ÔW—S\¢Fk\DÑ%üÀÂwþ 5¬ùe)ž[Ç¢p%ËÍkuÈz‰ oîæn‰º„jŠóK©“[kêJÓøôéhÞ|úݬycð2«Ÿ©ŽÒ‚ò¦ãG¤ýo1à™ŸPÙ:0è™5¼{“Áý+%ð݇ÏñŸ-EìMxŒù³§Ñåü<ùú*bÓêøeû‡ ›ÿ3¯.xŸ#ndP]zýxÞ=<°•ÜÑ£ÓëÐj%òJÆügñ¬;R _þ›¦/bá´¡øÙ4·eñoÏqûÛ{©m€ C>dꇻyäùwI}°?ÑÏjðî4‘ç?šÍ@ë ìßgÎh*q$æþyÌß½e¹^Oƒ¶9mµ©½=þ¦Upª£_ IDAT<øÞwÄh+))V T.J’¾ZÎÌgfuûæßØ…Ç¥è_}˜;‡áAžyg2Qı³¶É/Ň ¸}N å@дOø2 Ýñ‹™óÈ lloãýmÓé\’J÷Š»‰‰pö÷Â3xѵHôdÌxXøÎÝüxô>›ö(± žaÌë…4 3iÎÃÔ6¨Mªz´ZdÐê@–$tG Éz]=Õu¡ÌxBdÞ¼l¿©L ÀøþKP[«é4bQ:ððĈûyn\4/AÃïcÞÂǹeÒoÌyçv6íª(œ‘µÝxfÍs<3uƒ^¨B«ÃÛû‡"d®A«U6o¨ôÆùD-§¾ßÀÁsܵ G_ÿŽ‚N1Ü~‡#ßOÿ‡g'3ª›ÏÕÝ0yBø§T$=0PFPDE!=ÛÄÀ‚›¦M&mD'K h ,°à/ÀÍ8o[_ï „æg„KRB;©_þÌÑ ›ùfþ¹ãOòÅ”lXð¿ Y–Q©T¸»»“˜˜Hvv&ÜD­¶¿5;Q.ûjjšä¥èã‹íÊP‡€@`P W;æH’ôMg§ŠŠÆˆ[¹){O£~š¢q ,’l¼&2>´)íNKAA¾>¾&ÏJ-u† Š²Ô¸y©e9†cdšf ѤA0œƒ˜·s1²=ˆ¹i=\šél]fËò@P(¨É=Ŷu‹¨Ÿô5SBÍÓ)ˆ"¢ÐXfó³¢Ù¾–Ú´²d¨#‚BÀHá>Ql*Ç}b«²eDã¢`x‡qÑHÒ7oÅ2™¥AMÆÞÅÈ[‰ÜÜ\üüüÌÒ!Kíñ[{õn9¶MÛÑ #LÊŒcµùBFf-úмZÊ@“ñ¢×·–[Íc¼%_·[—Ò†æP]]MMM îîîW¢ ›úº™'ZʱÆùŒpn%~òä“GFãçtåîÿ¼¼<\]]Q«/µ¬Æ ]j"·›u´l¶í[ÊîË´kÉÊÊ"À? -?Ë Šb ¹Ó´qY0ªEó´˜ …ؤq%Cy¦ü-K²h*':âéÿ–­g¢ÿE¡lÍÎÎÆÛÛ…ñ „62»I™×§´3e©Ñ±eÐyR}5»?˜@ü¸]<ÙævlSfËò Ç— á÷ž›™7ÔÆŒÜnÔ-‚©œ0SßÖºïÏäC#ï´à‹6õ•Û‘‹­ô³Yßž~6”)(šßÛ¤¯[ÈÝ–öaû²Qa¤³};§©O䯾hU¶YùØN[š±!Zò¢hFþ·”æô¡ÐÂVlk/5Ò×Bn6éQóö§ù6lž´¬wÇmغýÚÊD:‡æÛU0ÊAY6D¢7êg Õ{yõÕdF<<‰~!.(ô˜Ì1šÏ,DäFÂXgŒß[Zð¼)­lA@1©3 MæÇ/öRá9ˆû&F4·}›ùŠù¶lÏŽ¥•ÝØ8^Ìöµ>ƒ5¿ƒý›Ë˜äÒvŽaÎþ4µOšúÇl_7ò‹¡îÐÖf4ð7-mÏ&g (ZÖÍT>´”_õ5›Û°àš_Ç ŸNÅßx»Nžnä]Ah9Ÿh3ß5×÷íѨi)çcó«l’6¼ØØnFzÚÈ/½Ü´Ý~èkÔí¦ã¯…n6«J²á˜’vô´··¥¥%¨”*T*U›ÅoA rA0Cé;Ký–#•–¶Y…Ìȸ¦}¬ÿø`Aðòò¢Á×Ñâ°À þ`nã’®´2Î…?yÛÅNÑ/úª™È_swËí,X`XÐÞ Lvv§N"$$Ębôïƒ(*Ìk1Ah>ŸÕÌïÍ¡2:zÖüýB;¡|‚ š¡¥u9ù$sÆÞ³3.æè쨼:*Š2H;1–[fý†Eë?Ÿÿ˜¡YµeGõmù{ãmóDÚ’m3%\$}M×ÍÙλÚ+»ãŠ^,›}§¹þh‡A0s>£ùr[_o¯¿Ì/‚·×·—:Ž.‘÷ÌÕ·C:¯Ü;Íí¨ÍÚ§½½þø+ÛKl5ÞÿÚ#öÎÆ[‡õ¸ÈÙŒY=Ð^YíÈéK/šëeŽ'.ìx‹…K~âT>@4³×¾„ÇUpþ^ñŒS0?ël©£…ÿzÛ ‚Øf#´99+\äø2ÕW¦ü-ˆâ5Qóç2øbïï@‰æl(…IóJètG8¼å6&Îù3h®¼SìÚ0Á«šÛº=:;´/]>´åsô §Ÿ1/WÍë=Q!\¾nNÅŸiËn \ŒM| ö€(üÉý¦¶b{öRûÏŠ—ІÂ%Ù›æÛÏœLl_þ¹}f([hÉG‚Á¨P(Q¶± -Ëi¯o[¡½~iOÏ›|Qh°­>β×?aù·óÆ rc¸ýEóã娦÷g­Áÿ9ƒµC óæçæÊi;nÚëë‹çoóýÛÁ]‰ëánÈ`jXp= í6ÎYÁìoŸ›þoe­5?m !Áä·÷ G›¾ß\äoË ,Íß$Ynq‡ÜÁo’,·q›Þß”6ÚôZkDZlQX`Áÿ®Q©TtêÔ‰!C†PWW‡$òçÀ‚H@€ÿuWWmƒ–¢B|}|‘þRgw«hÓK|¶iÁH–°$,º6x§¡¾ââb|||þbÞ¹¶! "Å%Å(J¯™¶‘ÊÊJêêëqws»fèúúzJKJñöö¾¦xG’$òróð÷÷¿æx:++‹À€Àën¬ ‚`ˆ®®ÁÃÃã/£¿­ÃH6™#]Ù8ÊÍÍÅÅÕFs]Α®EÞ‘ŒÌ üý¯-»ID²³³ñôòlŠþëÆ†xvhL¯/!Y¦íXÐjp™d²¹&dvëõÄÿ.]­3Ýü£e†ÐœÉæï¬æ_e“üöƒ%ø{n½íVúŽîf‰¶À þ¹¶ÀŸ&„nþÖÞæƒ]:zæÊ`.•sÓÙüoòE=mz¿Eð[`´†¤×SWWw =CÚÀë²,“™•iét ,¼s…(¯(¿Fû¨ÆÂ;ÿž¾žÇÚõ,+dY¦  àº–M×jÛ_‹v“,ËäååYšX`ÿÓ„ÿ­èà¼XFFÒéÐé´–3€-°À‚žÒ¢½tÍ­> z‡ùïBÇï»\¹ÜêBŽÝ\¾r;gÿÙû,°À ,¸4¹-É^wtëõz.ä_09Ø .Z–‚‹8øŸÒÒR”J%ööö×]ÕÕÕÔÖÕš9øïEƒVKIq1^^^×–G&';ÇìÀ7223Úœãz½ ¦¦†êšÜÝÜ®KúóòòpswC¥T]—ôgfe^“¼s­òtvv6>¾>ˆ‚ˆX`ü¯"#3㪾JK—[`\¸\Ço ¤Û8|/æ—¡¥KÖªù‹Ñ±+ÿmüUhrð6¦¤–›•[Ô±¥#Xh*Ãâ¶À ,¸|é-_•M@ÿMü/§îµà ùÝ’w²¹-dùšL {­ŽoY’®Éö²ðô_7>¸Î—¹^yÃ2·»‚þVXÚÁ ,°À þW`ÙöeXpAh7±s«OBó7Ó_Ûü éŸ gþˆMÏ4ÿiÿÙ?ùÛê¹rÄèÁì¿&5 éI[:¨Ûº) óX`Xð£šÜ¬|Êj´—ñ¬–Š’Br ª-ÍhÁeÂâ±À‚ë  Õ…¤g•Y΀ÿ;¡-&õ| ––ø ø»ˆŒËåo])©)…fûÅ¢í,–ˆÅBj…†"RÏ£ôÕH<~”¸“ñ$µ=öG®)$5á8GâÎ’]Z‹Þ¶\KЗ‘–VD­eóâUƒ%Ø ,°à:Á¥Eý¶Mël.ÚW¸˜DÐí¾¹ý+&¶`þ^Ù䟖qeÍ‘¿ÍÑÁ‚ÉBûÁ²é»K4°X`ÁµŒêóì>’‰ TâMæ” 5¥ x8U ’_[tŽSy"a!¸Z+R½–̳åxtöªã•J³R8—r:l|#éꋽRÇ…S'H-© _z ‹À©…òª$ãl Þ=Qf¥TåžåÐÙ|¬\|è„·q_mÁ.–}šÏ˜­È"­¤‚üé34€ú œ<”@)"¢Ò ŸnÑ„9_S“Ξ_7‘¤ÄÝ#lH?—G­,cØ•nAX+êÉ9zœóUuèe1 7CBÍÖTj(#/GÂ+Ø•¹©$žK§ "{EâëlÕÁNà*Òã«ðéâe¬¯Q·j+ÉHI Æ1Š(ûVê½Qwד“TŠSˆ6JA*âÔ¾xJdP¨=é6 Nm©¥êB‰gÏSŠ;a=" pµFDË…“'H-«¤?zÀPÛjRöÄ’%+ÑØÓ÷?ÔÈ4Tç“xè4¢#ÞAt vBD¢ô|IyTÉÞté§ ²!­¾YÄ ƒ‚±¹dn[g[¥Øo+h(ÏäD\*U +\¼CèéZJ3SHM˧ Ig÷ž„»+È>Çùš:ôÐoh(¶f(ÐÖ\àÜÁÓ䋎ø4Ö¹*—³IçɯÐ! ˆ p gP”9‡’V×€$ÐoH(6²DEæ1âÎW¡–Ÿ­3^áD¸[_r‹Huyœ:|ŽR;ü»ô%Ø$s´T}äô|Ô^Q»êÉŽ?Kza9õ²‘7ôÄ×NyåÛõ¤rÒÏ$‘]Zc\Д‘d{£{ãg-@E ÍBd• .ÁQDZU’UaCH “a\È•dg”£rtÅÃÙÚH“™~¾b”‘x8žü:-’,àÕŸ®ª öå¹Óʼnú²\’Sjñ ‘“§s¨¬=‚‰ ÂYs5詺LbJ?¢¢‚ñ²SCE*±ñ¹Ô4èA—΃éî¡@ªÍ#!]$"ʃÔÖRYRHa¹'›rRÎåRƒŒ¤³Â·sWB½í/káI[[Ja€g “IÀ¢ž¢¬"ŽN89hLøÅ Ü;{aàÜ ’vÅ‘#¨±u £WO/#­õ¥%p"µk"ÃCp³þ7‰ÊõŸý‰·Öxóî7ao± þlfÁ=ï}s×oâU™$'dRŽŒ¤ÓàÑ™0'Úfm™†ª œ;|†Ñ¿H"›tž–ü´b¬=]±·QÆ`}&ûcÓÑINáýéác´Æt¤ì]ͧ§òÚ³a¤í:IèŒXáþˆT“ŸHza9ZIÆ!üzùÛ7Ù'Ús_0oy(Ë—Ü@öþJPjìñïÚ‡ ;‰š’,’N¤P*ˆàäGçˆP©¦ˆÔ´,D¯.[q6!•Â*}s™îáô÷@­2â+ðêâ… me§â’©DTv.u‰¤/Kçlv ®ax;¨ÍèdÓòŒô”œã㹨ìœðìE°“ŽÒìs©lðëÔ™G£ 6ðQ]öŽ—yÑ£‹6Mgq¶¶·ÍÛ]úÒ4âsjq ÇÛ^à‰c¤”W¡5µ·© e÷Q²”jBzÓÛ[E]E.É'R(nê—p"ÃܨM;Grf!5ÈÈ:zõ$ØEcäŶu¾*â¿îgÏCxg¯øïÊËû…/*ùà멨Ö3ûñŸ±êß—¾7ÏäùÞ†š”Q­wıæ [ÖÍ¿]`èüE<1± ΢ù6—ªsIÈVéŽ5E¹¤çJøwÂ-¥™ùT ¶xø;_f=(/ÈãB¥=á¡.W!RQKeIù¶„5Ûu9™å(ì]ñt±nË× ¹œ8+ÑÓëº<Ξ oÁ‡ ”åç‘_ã@x°óeÐ(¡«Ê!>]Eç®öÈ_aSÔR˜W@¹Þ‘§k?êÓ¬½ Tìâµ—ŠyþãûˆlÔ3\þñ`P((•JËÎ ,°àº•e9]…6ÿ"ü‰ó·ñ“™”ÏœÜ|í24pÛìhr›3|esßäæÏþ+›+Çü¹ÀæÞnXð¿Y’‘þ®˜£Š6}¼’••øj¬é~wOºx¨µÕä%ngÝÖ$´ÊA<ùÔ¬|JRÙóýë¼±-”¹‹žæÆPg´9ÇØ°›oV:ñò·Ó ìhŠX›ÎÑ-_óùŽr\ÜÊ(—{2eÆãŒ ÞɆ/vp¶ºÊ =‡ì^`v?”‚@UÚ^¶œ8̶¼±òN\ÑRuî_~ù#×ÖŸ›Ý#ñ¶3¼¢ôLÎ}â)íç§{IÐj©LÓë¸Ù=}RÖ±øÿ’pö–ÑË5Ø–YðL€ºübê={¨9¹á Ö¨Äѹ˜2y<þ ÃC³þó¤êë@QCº:…€×fdk²…J_GaÒN~ØO~I_ža86ugÙ÷Ë—ü¾¿Šê*wü‹ÇÚ̲^úA¶ÞÏÆõ¾¼ñåT<šVkIùãc–¬=‚¦ÿ\Þz¨w«E}A‡w²ê%3ÿï>º9)ÉÙþ«Ö¥¢³¡öK¯07Ƶ%Ö'sè·Ïùù ªkt¸NšÌã÷Ž$¨ò7~Xµ›s Z*Ó ý2§å)Ÿ²ri*ÐPìDê/q¯gçö|ÄÊUÅÔXIXG â_Ïý‹~fÛw?°7©†ª~=Æ3ãzb›¿†¯>>NžDUšÈÉ^å©p§K¶ÎZ×¹‹“5¢9Þvªäø†•¬ÚUŒR¡·nŒ~øQn)#nõ*¾>˜‰: ±Ú…Qž!Ø–oáëåqäXë ì9n÷Oôi¹¬¯ÏæØ¦Oùvmõv lÃrËSˆ©ÎàÐŽŸ8|¾µÆ–šä=œéò,+î*eãò³äÚé‘ó9áðõô¤$~+ßþ’•Z‰¾¦˜´’rº>°’Å7]ªXFwî[}˜Š«¯„NÖâù(sžèƒ= וpró,ú¡„Óçrd ?¯ÙÌ™ÒÄ¢rT“žfî]½ðÒ\árUý)V½ý)ijkì5ˆHè´ÜÙ¹î%±lúâ{¾Ê©ÁW€ZÁ÷¨¾LЬdã‘0^˜;Äàþ˜u %X;!T»1Ö' r›:_=9$ïä­wÔ,û⎫âlì°³5†GX92r¼9 ©¶ŒÌ¤­|õSž£˜>u8½8œ®opÒNêà$™º¢]|0WÇ+¦áÓPJÂoïóÞfOùlCì 8ôý/¤Ùô`ê#1—Y:ŠsR8‘íGX¨Ë•Ët}9©‡åÛcxé…a† ž çÙ¸v?6½Çqï¨`3$dp`¿ßž~ØîäíEV,[};êFi ÕR”© ~_Ž£[D[šÊ¡Ã¶„_„ø²µPOAZçëC ¼fÀôŸ”ÆÆu‡q4;bLæ‚ [[ jÍÅ8¯7]ý÷àçn-³´Z²Ó3I<«A´8€ÿ ³áº?çz†BdÙÒÛ‹è¤+S;í™4‚‰·µÅgÓg£y¡Íu±1G2ÍŸ#áM÷Ÿo,_h/JØä÷öhmïܳnY¹¥ûV–M¾2RóÁ¾ÆÏÆ_ÿË&ך¯7ßÓô>c¹-˲lös{´ZÐ1×ZpYt®¥í¯_¸¹ºàæéú·¼»ôOXS>‰/?Üy)hkÉOˆ#öd !Ão4F} PÅŽß¿%Ͷ ]|½± º¢DmŽ#ÝjœAÇu†aÿâµi QIzç5N$âÇ ÛQÞ2“ÿ F¿˜WÅñPw\Õ jsN³ûqr;&N•%œÚµ‰ì¨Y¬¿7¨…ÖГzZIxŒ’ÓŸoC9u!KûûÀé·¾úv¿uÓ>šÉ( .Žï\Åîý™è SRX®È…Ðg„±3xë‘P|E-ÌÏ™¤4zk ÇœÅ<í/e|=îyŽÔÍ È44T×@qÒQÆfáÔ{(VÀù‡ÈÔufæWÓ +ü…™ËÏr.µ;þQõÙ”ˆ]ß~Dº[ë/œæÀÖãdÛ‡šLõdÅ~Ïog.àÓc*©%=îEV¾DuõÃЗŸ'nÛaR€,(€b¶}ǰ5k¸E œûˆ‘ooçá˜É8›hÜŒ}±¤–òø×Ò©d3s–'’˜Ö…ìµ[QÞ5—%1ˆgÞfäçGy¼[_ßIçe¿r¯;änÇC+c¹u†Š¸íUܾ~Ct |±âgöíOÅ¡h%£X8w Y_p÷òÓäÇøqþMxÌ_ËüéðB†~Ëã‹G_ò±ˆ-ë, šåm‰Ò¬SÕñàêeô¥Œ_­â÷-'¹ùÑ`ôR$·ÌzŠ[GûK-ä›»7â<5s»ZCÉWL˜ò ·>FxsGS’q’}¿Öpûúe &ß>^˶¯Óûñ<0{ïÜûú“âÄ®7¾Ãýï˜!BÁLø×¯LÚú!ãçóÙxãÜ9ã +–}ooÏ˲ ”¶ø÷ÇÏ0Òt%ûøèÁ¯9øï>Œ¶ªäÌîµìËöƒÄ IDAT éC€M±?Æføƒ|4* Q»‘»ŸŒ;)‰çQª´WI"‹øõ¿‹Yý{`·è0NVUœþ|)k. æõ÷o&PPÆÎçæÝ¯»±rŠv¶j“~Q¨4Xk”ÈöÜøÐTdóí£_q".’ð‰]q¸Xrtµ$åð±Bl—ÕHØK|‰?#}ƒQÞ|„4ÍCþ)íï¤ïꟘì %þç—y㫳Üñ -÷Æ" ]ÈÚñ×ÐÒ¡ ˆ(êìcìØy’RÁƒ¨¾Ñô‰rCAIösò| ‚ˆÂ½#‡vÆM£üïÒ-×Q’›Áù2úv±#ëäyJ®téêEi|"uÞ>¸jSÙu0‘Òj-zÙƒ˜[G*žgÏ1~š=NdèM®¤×á, 6E‰‹oýÀëŠ< Z*s’8~ÖŠ>£B±EKIje6„÷q&óÈ>âr©‘é1f=ÝJ‰=.ã¦ØÏás *¢ŠÓ;¾!÷‚€•cCnº÷ël5T’ü2ùEîÙ×d|¶ÏáB+›déä•ü<ôA{j¹cý27œaÅŠìÙ•É ‚«²9½ë0 Õ‘èU D fïJ>ÏÀ‡Žmj¯Æl]uu¥ä':80ÃeîþnýëŽñŸîàÀ¾ ôìëHôýs™ìŠ•üxÏÓÌK¤·VB9gö93h²ävæÁOŸe„4ìaù“kØwÛBºG å‰oŸ¥³W/gwr*yà0'%‰ÞKšf´±M.°}Ñz¯ú‰)މ¿.dáê“Ü9»EɧH*°¦ÓÀN¸ Wç‘°÷gÊ‚­2Ž·<è½ð}æøñÅèù®»ߺ$öì)&tìüT Ë®t¹áiî|‹ Óž»iMúù1öõŽÂ¶Å4~Y°—ë~bª#T_Æ ¶0vÍdÜõ5œÛû»²uF Á›jDšÓôô/=È¡˜(l¬òϲs™v7ë.bíÑ—ÇWÎcˆ3”ÆÿÊêÿlàøÔ.ÄÈEÚö-'ê=ˆ ÄU”Ú®¯œåàæ82l'lDžôkØãð?¼Ü­i,&o=Í©3 VLß3¼óò6NžÉ¢÷°ÄâÓ¬ÿi=u¡ãè‘âØdkšÚÛíÚbuØú-§ô¾Dâi[Æî÷G}÷Ëmíí2;F.ûˆ±ñ|rÛÄq¡²;ÝÌbúûcM2¿dÑ ëÊ]/ÜÎMÑn-^YÙºÎ-ŒÀ:òâw°õX¢½úF"¤’]fƒT.ªZÒÿ8JUx_"¬ز'‰ŠšïÜ2Ò‹ô}Ǩ¬PòÝ :÷ÏÇ$6n8F©Âž Ž ¦<-•ŒôLŠ‹ò°ïq#5©œHHóÿíô ²C%äsàÇ]¤×ë‘KS,ö7&Ñ“‘´5T‚!³DC9™'Žp,Yfp/±k©ªÓ"5Š]67§â2h Nª¦@¥gX­%ðªj º°„À¡ÈÎË©örÄ1 §Êdví=FVI’ìÊ ãFÑÙ>Çx«÷pà\#nv#ù¸õö'ŠØºx=üF<}Ãèi yÙ™fçPY‘DjžHpŸÜÐÙ[±Œ[wq®°½ ¢òî͸a‘Ø×¤²g{.c¤ie“X)[ÚuV6Ø œH²Æ¦âç2K(­è:r }\‰ Ç–Jâ÷£¢BÅwDõÏÀ5ˆV¸ú†ÒÍŵ®ˆ3‡ör,µÙ9œúî.’öÇVŽæ–R«×2|:ýûذ;-  ˆa|¯0¢û*Ú:ë ‰ÛÏÑ”rp %z`4‘î՜ܶ—„ü2ê%7úß6ŽHe:{)ñÓìæ`rÃÆ9´úLŠÄ=U9dÇ—¡éET­*d ÏäÐñJ$=¾}&qcW™#÷Z^ƒVö æÎÑ„´ k—tÙøf©¢ˆƒG={t¥&i'qé5€=¢qCœ9S‡µöñéeTÔŠt5•Þöéì9®ÂO³›‰ ²v¤Ï˜›³•¨-ˆgû棔®„tëGLOOjSÓ(Ì:Iʶ*PMâÆ!8i «Ô¢ºž¤mk8T ¢2€Á·ÆW©ê,›¾?B±Ò ïÎÄŒìf2¯´ =üóÀRË(Y††uõ ˆ–CUþòµP­V‹R©Ä²ûâoX‡–ôäÔÈX«DUp=îw°Ò¨©kh¸®üI‚ zȯ“ sP ¿L9#´ Å5{½ÙùÚê{+§¬(ݺB³sWD4qò6;{[8ÓçMÊr›wƒll,´ZÀ0ý&·¹ÜÍ+Ë&`Ã'ÉÄ¡"Ér³c·ÑÙ+›>kpÿ6hµ(ʦ’›ky¿)…­¿ÑiAû¼¯ÓéD…¥AþÛöŽ,¡×K¨TJ‹øo€V«E¥R]·ô‹¢@~A1%eåxùzþ ³å§³xõé·Ç#YÙ3àÎ{èj+ƒ½î|žÎ?³1É^ò bï¢ ô~îSÌûiñ¨Õ†… ›SYáDÞÌÒ?­} !MYúJ(µõÀÝ¿”œ_"µW¡”]bˆI?N†$á‚÷Añ~˜'½¦C*ËÎw0aà>>ûè7ì#ú0lD¼€þ$» ìéa[F^jgœ4ꮃˆ9Š4Y¢GøF5Î÷+ª© #Ƞ̼ ô¸ÕÁCs[;yâé¦B2ŒáhIÙú ¤õ­÷3صU†Q7ÏáuÏõ¬ÜÝ€L%Eù*„ê@Cúd÷HzÕæQ[U gXýòG¿÷1ÁnVX àÜÿ!Þ‰pç‘ù’!}®¾ž §7±»Ð§¿ŽÕÉ üša…’|ö¬^ÁÏI<ÛÙ[QF>§^²'÷™ H€=ýîÎÞ¥ó±­€R'qÇ-}[¥2.£¸PDª ÃÀ%ŒîÚ\¤ªœJêLÐ-*ÃÂI×A <š HJÊxwQ1ôú&³uþ”fõ5,ú*]±÷GÎ?ÁÉ 8øxRöù÷¤_ÑaJµ§8MÏz$¬»%æR€ÈK\loYgÁž»@>ÐÛ Kø€ï³{3ã{~/ˆ ÌÍÈ/#¹KýÉubÕèÛÉçÈÎoHs™ÁŒËÌ*†g¤ÁŠ£¶ºŽúàpü„2ÿÎq¡wÞw;g~ÞA©Þ–®“SúÛN>NÜ‹†rú„æÊg‘¢«²#¬ù O'DI‡Þcÿ[ËÖÝþ<öûðfG¤ â7|¥[Ös¢â$hÕÏWKéÙ³ŽÃ_/æ|ïÉÌÀèñž€LÀ¨¹¸ÎŸËZ9‚Ò°Ù<颡ØÁeÃ,ýÁ•ÛßHȰ?qí\ꫨӋ¨êϰé¸+w=ƒO“‰çĈEòûM±œŸêÚ“^6Y“© ÄNƒÕ%EËÖ®ô¸ãy^tÙÀ†øzcž ѧ/w=cMñÛq¨uRÓ<¦ûd^x͑ܙ%F)‰Ô„aÜì Ç5´/w&r¢À™äødªm6óÉÿ•ãÞkÃûwÁùo7cD…žÊÊ8þX¶‚Ýõ!xéÏr"¿Bn#ê}˜O^ÜMŸ)AèË])Í<ÁG¯¥ß]ÁÔfrêD‰b³‡;]yµÉü±v?Š‹‰Q\àðžíœÔF1E#rhOƒ\ÑVÙÒo¨¹g8~΃Úb-¥ç·qÚÚŸ—Gz]O³3±€S;òŽõÃc5°;¤…MRCm°aBç²ú v#ÌÖ›¤¼*ÂÁ0ÓæÚ’ÿâiTz¨fÇÆ³¸‡ø²áã‘D7Lþ7}ê©ÉcgC'£ˆ”ÜžøXy¡q#'/—JÇÞôul¶w ½‚ðwS£€Ò|WއŶ „c„Q"×T×S„¯‡=î}±Í>¯ÛcÉ®¢ï˜¾xµ’G6]ïbÞ«Žä>U„Á-LJÂP&9hq ëKçß2("ŒÔkY¾Û“YÑpQÊ(|ú1åYkŠÞ8†J¯7Èœà1Œ¢žÄMkØ•©Äî® v”¨=³÷_?ÌýCàç够ØÅ{+³ öŒbÐðÁ›@ýÜ‹{f„cßbe¾üÒÎô6¶‹MÄ@Æ¿“Ò §áäFŽh;së}·“¹u3)¢ºEZeí™Å¬ÏÀC}ƒ°ľÓy=Â…Gž­5êGÖá£b˜ÍP­•ƒ‚ñn¨àܑͤºL`úx5>=„B¥n刕±ï3W#]ydV52 Óf°kËYdåò½¨Àóldè)¸K8¶®c‡7Ž‹C6ñÅÏzú¥•ðÕêrÒ‡Ä"eï`}®Šþ¦iÄmüo­öb‰¶`öïeŧŽêFPå·<ñð*fŽIò¯Øµ¤|V.ý—EKPhä|Ïç•,»,—§žðñÐ[Si¬©ÅãÑQTPHD÷¦êÈr=Ù›×°*;™‹‡Úùâ‹-¸cmÔÿX€%1 Sí>]•Ýd@}„Vî壷?akR‘/Åß•“É‹Ï[xü…é­Êá¸9ôýzV¬Ý†'.‚†E“LHÛËØº÷vˆXw÷>éÂmãö²ô¾¥ÿ%‰øë#p¸<üðú+øÆ¿Ìxc¹;¾æ5 CíZÕöeþ”:V¶Ž¬F+z‹Cï2¶¾u€mÕ¥xD¡þ o}œÀ­3{ÔìóJ•üòÑÓ|ö“°. ²…ôn~ÜõUTÔú1×ìá=·…p“‘U/~†3ÆŒÉlE8ô+ªº³üÒ,–þõ{\–ˆ§JÆ_¶‹o½ýxjZ-«Ÿ}–• i$è°3¿)mC=.\ŽZª%=%Uø$ÀðÏÅŠì:Šìiؽ‚ŸµqüsšŽÍ/®c¿^Eﯢ¢´‡%–ˇEt¨~EþßS@ úôÊÄ6¬OKmÈNùï‰ä÷£=ƒ¢g8ÀÏÕ f ©fšj^9¢V|÷3SGõ[ì2l©aQ§þÞü õó‘µy…~kù)í•öß&½Âp­Ž©—íÿwø·)Ÿé˜ä¹õ«ªzø3~ɇN«ï&úè÷>v[:åøDQdD±ü=]"ËRÓá‡Nù½Åïó¡ÓëÏè>äÊçP^Ái:ì’KÞ¾ ƒx$áw¼útþr_ÿÀ†XvátûP P±õC^y{3bb-?ñóö*rÞ¶víxRƒôÒqv£‰Ô’u+Ùëˆáü^Ýð ‘”æ‘ÅVZK}«²^§E°  àõ”RšŽi” ÉUÉÞ¯¿Æé)ñ(Û6Ò˜O\R"UâŽÃ÷B‰(­¥®Íi<Ö<õ5ú ®§·JyeÕ ;CK;%òW¬ [Û)]›6ç ²,#I ê©·CL»Òs..?ª "¢å&ÅBHƒ¯Ó‰WŸÉŒÛ”Œ®•)W^d»¿1—U/ü“7ÅK¸4o öçP¤VÐcÐDÍšM²6›ØÊpºñ+Í\ââ (]-±šÿDâãW¦Sk>@ä&ßÕB°ÝƒÏéGÑËÈŠÒ2/‘¥µÔ)´ø‘šýK¡%5Ôk’Ñjš¯0K Ú]xt k!:&¼ÚŽÃ¢NB’›æÃŠ­¢šÚßè©î³Ø±n?Õ›ûîK#<´ˆŠÝ]ÐK»Ø[Iâ…³Ý/8‹êM9Ô«%lxù=laÓ}e4+ž{‚½V ¢ÎK¡ 2©Íwë I£×À¼ôÀcD†)Ô¬&¸Ï˜VÀ\=_¼œCì´Å¤˜R˜´øG>xâQv‹Z/E¢À”•”©ÏÛÃw?ŠŒz¢ïÉS*Ù|ýÜÌ“®#±fÏ/{ŸB¦âÞó9¿ì(À¯%þBNÉ{¿üûÜó?e*Š$!I~DEF–U¨É!Kß›Ù팩ùx¾µežO•„0ê†qÔ|_†ãÐ*ÝÔˆqäLnÖ‹éç <ôM07=Ý=™ÙÑçòSáAÖ½³›¯"{qáùcÈ´â½·( ÖÕS›Jl¸îˆ€‘•èªZj…£0G":_ ;¿|‘‡Ê R¼ýû2²OܯÔgïÈÉqáô4¯c­ž7¯ ¯_ne¹šŸÃ@môÀ%m«õ@ƒÆh&¸|%…êü`LÃ<¨Þ~þx5ŠÍ´áœÖ† ÈNŠ–²£®Kž¿Ž4ÿ.–=±Š_V~Íþ}¥ØÎžÍí—öÁÄÔß–{JëP¿c‹I§[h.û²â°%ˆ‚ øÀAÊCÂH0†–`£[X!NŸ¹†­«¶PÛ_‹Ù¬¡çô»9ßö]˱Ø"9kÞ Ö5°õ“×ysç^¼cÏ:‰~éˆLÄØ‘kørƒÂY]«pèºK ï­å|Ÿå'uTwB•F¾|ã+†ö뉨—Iÿ.ÏÔBù‡ F1æú{”­ù×-_Ké9³Ï šÀf aDŽ ¹‚íŸ~Ž(3õÜäã¨qŸÇš§Ö ¸ˆ¾–}ìýM6ÙˆÙb½ϸ\ø$È'o_úd'^YP½™WþÙƒ. 'Êã¡pû:ÌÓ'Þ·D©åžŸ ’MÙ‰xسì=ÊRÇ2%ÞŠ¨\ó!\þx4n 8f±vé˜Ï¿ŽîMk½OR‘%Upâr{@`ëƒÔrMƒVl^DD“…àÒ|j!õìiÌM1Ñ¥µ_ãq㕎Œ®)(²„ìAWG½SÄ7’Å7v¥‡) á)}3ÓN§šƒ?®ÅÑ̳úãµØçEt<’? 3ô¬¸ï1~ Sñ»\4YH-ßÁgKŸe•å"ÜV³cg avRzF02%:>[–KÒŒI¤‡ßÓéí06è«ÛÅwïï'bú5„å}Éc¯¼KqLÎ_ÊÙ¸¹m–è¸)ôŽ4·9<-÷S”<ò³#1Žqàu6R±uïÙ{qý\}õö(ì¿'?-’IQ:ŠÞù_þw­‘A=ŸåéÏrÈ9äâ™—¸sá0¡ÅßîHª÷­æ­W?¢"¶ Ç–26nªd‹8€°J'1tìo+J“/ ûQÔêU=Qé}s™“BoYß«!”93»Òú(Ûòi ùîù÷°Ý±ˆ‘]ƒ6°UŸ[íqÔïgËÏnÆ\1Ÿ…7Úh,.Äš@ÊwßS“]«z=ÎAÃÚGæ•ây·ü}2á¶QM(q—N&uŸž»n™ ÙopÓ»‰½æ\]Nò¶oem£Þ)!¤˜ÂmsµµU`ndëú_(„^§>ñ/\” ¾ƒ9ÈL¿w3ƪPþËÜûÅvÜÓ̘Œ"AÁÖm4³®FŒ¼…ÿ±ƒºâùñ«úο—ÙÃ"À»ŠÂ›jР ؆sÕuñd§w(hÑiüÄŽ¸–«ÎOB[—ÎŒ;÷S#1[tˆ„1ü’)¤Ì‹©eÏ"¢Ñ0[œfïcÿ6#³Þ¸ƒsƒêqKyã±}Ø.¼™›‡Ç7ý×Üt]>†”K¸îÞáöüL¾|“éÈºÚ çîcÿV3߸óÃx¤­,{j%¹1±¤¦Ec±Tóþ³Ÿ2adF£@÷ ïab y¸xÚ‹<µÖÍøÑ.j+ÊHž5“Ä‚”kªØ´f/õ‰ã¹mΘ¦ Ù]<ñÀ— éAjTFS9ï=ý)“ff2q–lå‹õ.{îkëz¥³Ñùûñ™<ìß±‹¬>ÝÐheâξ†Åcãk’¹øÎÝÔ^bÂdȼè.ˆÿι|Ù÷¤²!/ƒ[Þ¸ƒL5—þ÷m¾ý ‹± ‡9Pá¬áç3yPD…”}V†Î»Ña m{„É÷~EÖYñ¼óþØ®>D·—òÜ]ìÿ ‘s‡M¡>¶tF ;åÔDý~4ZmšÚNù}D•ü(’‚ìŸtæd«*Xô>XýßäVá¶1uäüÒ™a €$"©§tIí°în«ÿ íÞßþÕ¶ÙÃG}¥è{ÔÚ´ê8ƒ£A¬~k}­-™p3qÔá[_oâµU@–tÚ@ûÕ¦{6ªùŽB«ßÛ“ G¹Þ)¿¾æKh4jóC§üž¢(2>Ÿ“©sìO‹îKÒK’| [dúsÅu7Рq3-z›íþþŒÕµGSÇrÉ”HJÜô;f£‡ð0 ͉u ü-Ýô+ÖÙé{ùzÕ³Ý+"ŠMVP­¥*ÁFøÑêåÉlñã™·hQÈøôuÖìÙ@ñÄH9u$eiÖãõjk¾§\OU¼ðÿ¸€Oï}•’ŒIÌ™È߬o¨ÃU}/Ö6Y&‰üuïóÅfsϦ[dsXÜ@· Ò /Ÿ]y>_ œ@÷þÂ1ÇZ‘EÛpPj&¤E!žQ3â9f“Þ“o`A=¨Rá!•ÔzMƒèÑ«[Ëȶ¯í¤Epìbék~Î{ðζø8¹œ7>^JVïèfhÛ>UÕ4e8h 6¤CôiЈMÄÞJ•]"e$ôM— ;u ‘„É2’Ü VypjA±Y0•Ú‘<(@5QÁt5€âסÕ6µØUGUl¶ÿŠnoáñE/³vÏtJ~éÂÜGn$Ý›Ç篽OÞÚ¯©œw‰ƒÇsÅàñ€uwÝEvÈ¢9³p¼–\‡ŒÁ·›ï䮤·‰‰Š˜#ûrþU*ê;ñÔäQ Ñ-ïîWØ öfzÏt,Xè56u¬'Ï­¢÷íæ{5ƒ´¦  âµ“õó›TfÞÁ¤“ƒ\>º÷ªzNbæØ(ôõ)œ=u±v ‚_!ØÚ@¾”õ_Õ“~þln‘Žó‚ ž^¾‚Ÿ Ób夎–)~¼Áý¹øšËè×u—áÚJÔÚ·ÔU4šÃS ­ÙjNùÌK˜Ÿ 4ìâ•+Xù¯•äv%É‚BLŸs±þB÷¦.h­ ™r3C°“³õþ½t ¿„&’6±§Ì Ôð0ÂJ¶QZs}ãiŽ6RŽMQ5­ÀaQ@#jEÔa ‰"1ÂÅ×ÛsË%ô‰4ó»-«þ–õ@Bö¸hŒ ÇêµßcW,š@(~~áE¶em§bøy'P×ñ¿´§”ýøý&ŒÝû‘   !N6Q´c[CRˆÙ;NÏžE$4<œ¸nëÙº·}Ì#èctâÜü öäD†×óãÒ÷Y_c%66˜ ¤Tº¹iTul€êGÖ0vIO ûŒV¢µ'Ÿ[/XÃIÌœ@ð–¯Ø‚àJf\’Ž5–`BD™õ ïÏœÅéôŠªdUähúw‘PÑ"¨ Äw%@ÄïÇ—ABe µp†À**z"3FpqÆ@å—gÿɦÒw#DsäêÇY7ÏÅþÆ÷TˆÞæÂõ IDATà«:Àµé‰ X'/&Ø. Hb­A ²b1øG<;^äíæöHÁò+FTõî⣮Ä7ôB.ж¼/¦ú)piÐús¹Ú”OGDëªÄ ×n9›¯`ˆÌÄ©…Ím´¸ Ñ#â;ì+áo‹¢!3ofˆ;‹×n¹›õC>aNb¦\߀œ/±úÀò¤žô1‘Y#ú¹ò†Û9XÕÈÐô`´G#Ñ}&qÃ’`öl}‡ÇW($w!Ó2lû”­®ïxÿ[‰~g…céͼ¿ÕñsQ-Ÿþõª,£™× 2JƒZ7Ò‚ š8úîC÷ y‡Š ÑIPli¡ZÐë‰2˜0ÔÖQŸr.â¤@,Ò«üv+«ºÎÕA}\†®½ Yö#ùôx“§“hΡ8)›Õ)éãHÕÔ³í7Y-’EDR2©E~Ü’)v,ºÚ¨ vG+ ºñƒ‰kf4SdsñIé:yIC˜9ˆÐ‚Cì ÀÙ‰MÞNëC Á=˜4¯Ç{‘¦„­ö°ni4¦Ù‡?|=ÍŸOc"ÎàEÛjàd¯¬\h5H~¢8íRŒ¦­ä¼ñ(8™p¡ž"Í ¦Æ¶.a2œ›þ§‘MÕÙ¼qÿjQç0}rG³Iÿ)—° t'9ï<Î#ñŒ¿(Wbqáá„™ `Áu·t#QŸqç0°yùÓjI6›È7¾ çìn”&qᩈ®** ±„Ç¥¦G¶×PŸ”DbT(!=XFsã­Ä4÷PUÊ)³žOÿ–sP°áK>ú*’ÓH‰#¥\ÖíÄ1„á‰MÇû´fâ 2U…øsÔÄÔä1ZIЈH.M÷‘¦%ÁB´Ì’2êID‘}ø½Nd"Ï—*£ÆfÐÅìGE‡6!“”ºÔ8Âð&e’f5¡Ñêé>,sÒzŸø!Ã?¡ˆCÐ)§Öíì”Ó7øêÙd‹^Ã[+ÖðCV)ý†Q*›Ùz ­æÏ»<ø+´u;Êúm¦zÚ½C@<âçá?"‚ MTÑMµ„Û¿O@<ÆŸî¸*ñ·ƒ÷ Gù¾6@¶p¸rû9rGÝc]ï”Né”NéÈ~uz<''=éÙ{okâüð7PÓ`ÀÐŒ2h,XÌFô : $eç\<—¹³gqù¢ è–~SÏDBsÍN« ­Öȯþh ë›øx“×\Åy}Bd22÷SÔà ÷nàǤ8›ƒI¬&4ZVDBƒ£°Æ¬a]y àuzpù ˜©f_U$ÖXBI"-sùuR˜ÙýRHA€Æ­,à]œÃf³xáp{x'µÕÕ”¨Cé PÃÎ/ßæ‹_´œ}ÓbFw E8v¬eGKj²GµCGéR¢«ÅˆÎ`Bƒ•¸8/Š%—€Êl3*ƒÃ1)Y|ðèK¬?doþ"ÑjŒXÑÍÀɳ™5{6³çÏbâè¡ôë{£“ýlùà>\½‡Zõð1+‚Ìè´,Á:ª¤tsÕN=݇f¢n*¡Úu{Öñæ ©#œè(1ø 5µÙìк-è×}7õþø´ç6$Ç’DO2{­ew%€–†}ØžžIO“ [òÏä©€¿–ÜÆBj#ûÓ?±‚F*ðlcS¸‘Pmúôù‘ý¥D@Þù »¦þ[w>­ûL¯¶º-5PkסєP¼­<0†$2ÂÃqæ5âiÌfONT’_eÁ^"1ýræÌE¥ˆÐqCH|¥XþÐjŠ›¶òæ˜L¿rWœß‹›Bt×”¦ }5_½YĄþtëbA@E!†‘—^Áܹ³èç/ tì’›ZžÒ_X¹*Œó¯ïqR¥vKïÿÿèy\9g06@šÂðis™={³\ÂÙƒF0j\& j#¥ù.¼€µ[o‚÷×Q©Jœ|Õ¦@(]£9"¤lÊÔþ»øÇ’µÔ5{|ŠBáw«(1j +' ƒõ¥äx‘¦ÃàgË<›N¿( 8¶ñêªÜÀ¯!}˜yùh½²ßÈ,5¹žœý?±f§°’>h2ôŒDöx[eµŠý»—2{-Uš^LÖÀ»ïOIK”µ†¯nx†’ÑÃH µ´k+¹-ÝQ©*Í¢48«6œô³/bΜûxææÞdüŸçÙOÜËÖX2ÑšA¢&Í0X0蘃‚›…ÍÏ¡ƈU5ÝéÚk{ëëDuöfö¥ö¦_ˆÉô ?Õøq9|ødíéÏŠPAÕé0踶­f/€·†CZ'€>ôª)¤º¤10Atá´íYŒa!Dšáà®í”Ça\¬ WU >cæbVn:ó*®œ?‹ËG„ãÑ5„jʸl>Ä+ûšt·¹äÏ©3щ]!¯äãmÕ4$ "=o=¡ñƒ¸tææÍ™ËìÙ#Hˆ° ‘=‡™ ì¦LYõ‡¶“Û?³)Ë´ƒ‡åç äfí ËPOyµ& Æc¡km|’aD!¡غl¦ÀWM¶£{L4-d#f3z‹5èMÏßòù÷ÕM W=Uõz FðÕîg—sýl` %4~+Eî ²ÜU¸¢c±RÁwo¼Ê†ê¦Üy¢›j‹û·²¡f@E©ù™¥ùyÜ|Í8°ÕXNî®­”55ËçPü:Ú’#5¯&´#ALºöZÇžÚÀ\×dofoF*±xÈûñ3^õŠñ°_c4£×±4­9ö­«Øno¾¿{MÀSÊ`éƒo°Ë+"øê¨:ð›uµ®ÊƒS‚U¤}d× î¼ö÷OÙïkb7Ф2aþ|æÍ½˜®J1¡ÃÒ…hM›ÃìÙ³™5ÿRFƈ!Ck*Yñj5Iã’cjÁ°ÖÆ€,á*þž\‡iâBLÔf7Çô`Ôô¹Ì™=‹™ §Ñ¿×pÆDFˆ±m °–ûô†t»}ÅçMÆ@q;iô«HÎ"JöÖã„È®Ä;ªË„4Etþvs[]”íXÇ[Ë~¢k\F·´q }3‡qÞè 7:‹¼j[[©Úø9;›í—èÅYgƤøiÈþ­N7uU^܆lö½lË-£®ÉË«±¦ElvˆZõ¹…[Nñâj¨C3›E×O§—¹¬ïב ôœÐi÷g¬)‹%£[WB]{ÈŽÇ%³fsñ”!Hkß`c¥Š {ñf×áFƒ5ÊJ˜ÃMïKg3wî<æÍ™ÄÐaéX<>$¥9£Y0]¨ Šª DG`Û¿™ƒ ¥weýBŽ ÝÓZ0 LÖöÇDÀ»›·ZÊ÷%Þ#|1 ú ^t×näóïŠÈèeFnÆìÍåÛ]%È©]1rˆv¸I7›ë^Áeã’Ë-(~ü­ÙØw4ƒ¾­CrªÈ®okEQãb‰/:@qu³šš[jbÙÿ¼Ì/ŽVvQ£Ç QP²²©j¾ÖPÎ!w~£³âÃ/71 ©Jûä)Ù‹'»®ÅkyYÕTIAt»d6‹¯žDlÙ¶B´²]‡ÇͱŸœ”‹™5g6ŒîNÃÊWÙ\¯E#‚ˆLåŽu¼õÒ&ê°Së7‘6}6‹¯™D|å¶”ã­*'¬÷EÌ›=—ysæpÅÌ!Äè´Íc×d³Lqý™b]Ë'ßì§0e 1x%(žDs!UÅû5šÐš|ÂÏeÞœyÌ›3‹Ë/rø“ A‘Drûlpö Ó}>·]5“˦ 6TÆ£ ª©¹¢¢¢¨Mc%ûñµl T­½EEÞöÛ”FŠä:¤´$Bñã-©ÇáÓvpDƒÉØëûüÌî>½éf%¤¾†nMÏÉÜ9qΈd‚”3ÅVŸ>éLé”Né”Ó&&½†—?ü’"‡Ÿ±cGc²¤³×NAƒ럫¶å¯,ò¹cºçö¿íÞwäoÂÑh d*´Ê«Uøl›Ì_Amûnµm¯ýÿ[õ¬ª­³€ÌV[}ïÑ2~;3;¥S:¥S~±rî_¯&û‘y,ô™ÑJ! ¼ãŽ@öˆ³œ<̃oïÃî5Ré™ËœY—ѳ9+ÑåÄa·ãôxQ±âÜô÷-û’_vKÜpå—LZ²œ+2òµU9|ûñK¼±YËÏ…1ºë y×Ι‚îɧ¸î' E&>1‡à¦¬‡ò5qçòÈÊ×pÍß1ýº‡˜0s/Ü=ƒU²…¸ÁL½j %k8¤·Ð3± zàì%±ëj©›ÆB#Óž¹’ @Å·/³tõ/D—ñà jp,gOŸG÷Êl¤¾ õ\K÷²úÃWø('˜Í‡¾AçjÀ6áîŠ?È¿ï~ɧ¢£ŒÈ±ssZ[»¨zëÙùÑ?xàÍÔØ4(3¸bæº>Ë—Χީ!yÎBzt³‚·ï?ZIÊYS‘bE'@ÕúG¹ë¥oØ›+ríÍë¸ðÖ'™šÜqát:°;}@-6|ÃÖH+ƒÎëE¸ àÝó,{Ÿov’}Åg\p׿¹ùŽ þvõ•|aQ aàÝw0;y‡v°î++ïAÚÈatÍ_ο/™O½[Câe³é‘E—›¦²ãîqÍKn‹ŒLyjÂÿY¼ˆ…RcË ÂúœÃ‚E)te,»žx›¿Î|º-™Kn$6$Œ´û§óøÍײØ(á,´2{éÐß|ÙçO™pû›Ìxàj²ÿÙJ·o¿ ^"Îù™Ç.\ˆ9‚"1iñT{xûÃ7ùb{=&M!búMÜ’‘LPñWÜñøÔ4Ö KŸÊ‹z¡GÁU»—•+ªxßù$øê9¸ö%xkæðXúŸËô!6@åЊgXã‰cfï^Øš|B1·<±»«}ƅܽ°'ÀïÌåó瞢rÔÓ\pRGèUJÖ/cùšÝÄTòíGNKdìüû˜Ñ³)Ôèwáh¬ÇëìËô9gñÂSÿáê•~4>Hœz LJœ|€BÔ ~Áƒ×®"(H *ÈR23ÿõc–ÜKñã1oÑ»D *^!ˆÈ¡—ðЬhÔÍ˹gæ×h-.)”ÌÉ—2ªoàˆF»y^ò2‹™Nî4} ù›¿qÕû*Š(¢8õô¸ã@ö§ ªìÃéô7„†V=ùOÞ ‰‡DØÀÉÌÙã8¨]M‹d­~Ÿ7Þø†B—LÈèYtOH$sö­,~ëy¼þKIDP+ˆìu÷Îê…98‘…‹vðôŒ…¨VY5`í6–k®ìFõêÕ8íx°11³âYžºÿ^J®½ƒÙ# :äRqV±åÇøû;{hp©öÎbî‚™ô¬ÿeË_ä­Õÿø[®œ«ÎOC³e)÷.ý‚­»üܰðK&-y™‰wã¡Ù Y!"ÎÌgúl­cä¨m¼uËå¼ë7aK?—Kg #ú4[DUöàp…‘Øgczþ/M_ˆV°=…«¦N£{”ƒ{_ÿ—,&T‘åÇ…âi‚€-!hÔŒyµÄö‹ ¬Qaw­ƒ[ƒ-bÌ[ÏåmÉHbšCª"ãp¨€þ‘º‚ä÷àòœš"P&[(æPÊ7¸˜ülàù=碳É{þM®žù2“„+zÿ³n?’Ò´ÃT%Û_åêÅ_`PÔÈÜq×h´x)Ýý?¬T9çÎáT}¾ŽlWçÎHbÛ³kñ ̈aI'ýž1HþøÏßýo¬A•;yû“³CŸdÖµŒÊ3Sçó¢^ƒmÀxœ“€”»šÿ,•Ͼ­á‡ÝrÞ-Ë™s× d?±„ůkQ]Fz,¹“¡e;6P7xa &}×^ôü˧Íã?¢–ȳ&±xl,ú€Þyí$²uÏ'àqwñCÜ´’¢þSèi ìÌ‹Ö-eù×{‰­*à›œéœ?å"Âw½Ìƒ?O¢¹]ä(.ºb"iƶ+œkëKÜ¿ìs6ïðrã‚Ï™¸äU&ß}.Ï[ÈZ›ˆ §2ûÙ~@5e{bÝ·Ñôš=–Q@.ø–—^YÆ{_W²êç9çÖ¸F“Í£·~„Q‘ bÇ?ÎM) ž¬Ý¬ü|3Ñ7ΡOLmö7 1ȇþ¼Ë8ËظÜpý.Λq³§næÑi ŠTñS9ç‚ÁD¿_$Iü¸œN\š Ü8ï'®¹ùJÞ4¨$¤†`vy;¤€VjsXýöc<ñq.²ø.yu·qõœ1‡3œÀ—Ϻ+8y&gÅÚäùçóó¡û¹çÒ³IA²ÞfÉ‚U˜5.c&wþu<‘Áf_þ=O]ÈËQà×GÑ÷ü…Ü6­ {?_Onû<Œ±Ã¾º÷["n˜Ä ¸PþÌKÿß$;å'%©B×®•Õ¢lÚ¨ht¹’ 5€q¹\˜L¦N èÓ±qô{ù©FÅfÒ‘d93( E†CE˜­!- Š’¢bÑ x NüR§2!N{Ò÷:^ð÷X”Ϭ؎¡ß_A8&èÛq&퉘‘£×î¨p›Z¾­N„·=ðÓå¬;-WÕvƒ[}÷ÑþmßÞN“ñëâõzÑh4ЧAEÆëõa2™:ã4ˆÓéÄb±œÑ}È:˜Kaq1#G #ê•ÕhŸ{\®–µOŒ‹Ç²ü/TâA@ )9‰S›s¤R“µ…œÐèldôO#Pe7Õ…É­ò£etÁ1$§$Ò¼cS),tN°Q‡T›Ãμ$¿LT÷!$7ÅÇ$?•••ÄÇÅ7£vÊJò(©õN$+2úˆT2Óm8³_oÇO =‡&cmê«»|» ]è´  :â3û£µS°o%N=a1‰¤§Dâøñ)ÞÌ eÄ„MÔ\Uû÷QØèÄ/ÄÒsH2VÀS™ÅÞR'ª_BQAÔd”9´þ1*Ƽ΂ zê)..¤¼Þ‹ª¨¨ŠŒ!¦½"e²r‹pz$TE%¦÷P’,G ~êKö“UîC'*h-6’»§¡«*àС '%3…è¢Ò@þ¾JŒÉÉDé‡ÿ+÷³³À‰V Š"Û}ñ-ßá§±¶†F_ 1:ª Jqèˆ Å( ìÉ«Á¯¨È>¶®ÃH o këA[æYÆ]WIi•†ø®QQpU“—SL¡$uK%6̈ˆDÕþý6:ðÛ4/n ·ì¢LѻгO zTüîjíȦF"*!…Ô+" E¹ä—Tá$‚Œ~©Dµø)Û±›bŸUŒ§÷ „6%Ñ|>ÕÕÕÄÅ›ü³}Ÿ‡.v Û*~G)û÷âDOHtRS¢0â¡*?Ÿ¢òz¼¨D¤ö%%ÊŒÖUÊŽ¬R¼^‰àôAdFhÅ]EnŽŸøÞñ˜?öò\vç×a")-CP±—æP¡„u˜úÓY¶¥H’Bpú`ºŠ7£ÈÊæàOèG²µ}kkkÑjµÿú^°|?ûËܨ’„¢ªz3Ñ)=I iŠ0ªnªÊP aD‡ ”çdSRÓˆO±Ô·qæã‡Tí;^¯—Ûð†j§8+ŸŠFwKV‰ªXHê׃£€Ts€_²DUk $±Ý#4¸j 9x° ¯( l¤¤%cÕužSÃ5®ˆ^¯—ÚÚZbccu l,ØCv•Y+é3±iš@1W5ùZRRÂ@½«šâœlÊÝ"‚ª#"1•ĸÐã¦V…ÒÒRŽ$;–°—’—_C0—–A—È&JNG!»²+ðøUTb{!±y=ðW²÷—C8DD!qtÓS_US "6*(€öV’•UŽ66¤HK‡AaI‰ImÑš¢,r*ýèD­5†äô$B¼•ääSçRP%?!I½Hµ"Öæ°£µè6„äù›vS.è1[ÉÌŒDH®j ¤Âm$2)•ä“ :N\.‘‘‘¿Õ£Ã笢¨Ê@jr(ÞºB²²Šqb%69…¤˜ DüT•–RãT°æ¾ÉŒõ¼z÷…¤‡Ÿ<éaYY6› ýq—µPpÕUQ[­žƒYj  Ô>$‚ØþÚlÔâòªÅÄ¢ó›IJ„ÂBHʈDßN·ýØkk¨÷Xˆ³žÐ¡ •¢¢"»$¶Ñggu5UõZâÓ›k;û¨.8DAY=² "ãè•n¡ªB!6)³F5÷äSïW@1DdÐ7%q7ÔPUª‰·´»d&:ÑB]v9rx8‘¶ö¶Gêôï#~Ë 9”_‰MèJJ¼ c«…ª¸¸˜ØØØ†„#}Ag$2­‰º:²›ìitb )Ms£8Ê8˜_†Ã« øý„¦ö##ÊDCî6²k%TBHÜpŸ‡/Läû¡ë¹{h`¶|Ž í>D­pX·g¹EåÔ;¼( ¨ŠLPêp„OÆòfÊg<4>Wùö•¹¡Ù¶‚ˆKJ%ØUÈÞÂ:@Å›FJRT;0^ªÍeW~= ù%¢º %9ÄÙ´>è0%Ò£G$:üØ+Ë©lÔ“ƒPää—PïnZsRúÑÕjg÷ÁB<¾ÀéØÞCèbVQÜ•äd;ˆì™F˜FÆ]WBvV N‚"HII H<Š}–kÉÙã ¢w¡¢ˆZŸÇ¦¬J4Z=ýIig~ÝÔT4à׆c3ÑXœE…`£KLD›Œo_U; h4 Ë*Ñ]asìc_¹A–QÑF|J±AÍvÚAY±}háVC;ç«Îbg~Óý$…èÌÁ$y)Û³<‡KH ™ ˜‘°Ws¨·j$:-¤(kÛõ_®%'O">-“ ´÷·»õ%ÜWFq•–øŒÈ¶õÁU;¥ÅNŒa6ƒDªöïmçoc/bËþ2T@ÔIì݇(­„«¶„샥¸°Fu!%%‹à¦âPÅUøTˆÌèGª-PG¹]Ÿ»&ÑX ýžòwäP€>8’Ä´4" €cO>µžQS˜=:^*÷eQäð ) ÁiÉŒ ¬Nö¢-ì¯Ð`KíCª©Š=;óq‰"ªÆBT\ Á:I´®PZdÇn#Üì"?߃­K4V¥œ»‹ðÉ*ÖØ8ô^#Ié!4îy¿¿ÀÓiÂ]í”æPT/#ª~Ì1™ôL eçdG÷iLÛ›pê9´·KZ:Qæ#(ÐU {EÞhz&#àÇ^QHY£–˜”$‚µ 5’[PJ ‚¢"ÑÉV»”«-ó¬z«È)HN@‡‚×^MY­@x4ÚÁlRñHb¢,ˆ-óAxLqA1NŸˆqß \öÃHÖýkAR5÷7`땎M{„­ª-â`ViÀ¯Ó‡“’žJŒÕCq¡‹ÍF¨E‡ ב›/ŸE…ؤkE[8P¡!<µéáZÀ½¶–¿ƒ%4¢bŠJ!#)‹ÆMñþlÊín$E!²{O yÙ”úeÂÒ’aª&§TKJj(¾Ú Êj´$dD ÕÒu\v IDAT‘—]B#`ŠL!=)† ­›’Ù”5¸QP‘-]蛡§¤Å–¶ò!ìÕ)$öˆA—úê:œJ0ñQ:j ‘_Z‡…ÐÄ>tÓP´ç.?**ª%‘¾=c[Q(«È® öïÊÃ!ƒ#‰‹ÂW¶‡‚:KX(F]±êdB"à 6éäZròdºtimïUdWyåZRSÑíÅìß[„ ‘ñɤv 01Ù‹ÉÉ-ÄiM§{R$f­r=yûò¨vÚ)„¤3¨›-¬ã­`ßö€ÿ©Š&ÂbSèo¦¡´Gûl#Ú&Pº«CFá&]£ °€ØØ8êêjÑiuètºvámAPU5€q ¹ïSÏ£ÔÕµ‹Š'ü¡°?'Ü*‰LU›3å:åTDÍfó‰Àm’úT:IXãÖÑïåç›IßVtz±ÍæÖí“eXOÕb¢Ñ`Á/ÉøÔãŸEQ£U9L§©‚£¶í=UÁíWÿpÏëÑàŽêá ð÷D³~øýµ áö4Ç…;{±ªÀÁíÀ^µcX%pðÄl6µüÞRóãÈû¨*ªpd¥áNødÄãñ ÑhÎÒqëþ‰=¿Õ:ü·ïŠ"ãõx1™Í§¾Ï0»Üa þëm<ö=AAAÇuõÀ¦m[sjú››Ã¡ÂFŽ>]ðï =þïI-ß<þ:Cû2íʱĜ`ð¿bÏ—¼öHÞº•>¦å!Ç ÿäDàßSŽ ŸòÿÄäøàßÛo8|úåøÀ²?fœàäà_—ÊÏñô«_²·Z‡R“Èø'ngÑ ÄS’uzâðG:€Ï$þýåHø¿53^çO<5igûOÎ>áÏäߣŸ#åãG™lÓwF;匓ªõðÒþÆL_ÌðÓá ¨>jy‘¹×¿·k?†]qÿ¸àÛŸ·Š=»Œ78˜xïSÜ4¥aà*|E_ý…‡ßÝM¹S@©éÊE¯ÝÃܤ°Îº¦rRvúÏÿ RvTjs¾åï3¯g­<‚9W_ÕãRZ AÈçýk_Å72­†Nï┿ߵ‘§§ÿƒ¯UU–1Äõâò›o§_μ»» ‹œDÅ‹¯°ÇØŸ‰sFÓ¹‚ŸTð¢Ý5AƒEçcÕý—òôf7²* ï+/ÿkÁ~ù·\ªƒYÆ/«¸³Þæö;ö0å‡9'XÆœ¼Y>⊀"oâÉ ÿοYV0D¤2ùž¥\Ûœ>¹C€CU5èõ ¨*~I9íÀŠ€àÚÇÏ<ŲUûQ|C¹î¹[™Þ?¡]úcƒ¿m¯øÛÜðÛ1TL;PøÈïný±À¡Õæü𩛎ߧ±©—…&ZçvÔÐMƸ¥%M×Uµ›–qõSß#`£ûˆ™ÜxóÂiKòÜš*Zí°Uò›t¿àM.¾þmì>?¢îbžúò’ö½Å=÷fqñ[gÔoHœj¾bÉ«ùê3\x)A¨cË+Ïñâ[ë)Eün7cï}‹ÛÏK¢=žÕôÌsÚöYÅçIfÞ“ÿdÖ ( 't£Fvú1?Šä¼[&‘ršìrÅ—w°¸p.+®íAõúG¸ð¯ÑicéwÞµüý¾žlûÏR¾söaîí“I>Ñ6úÉûù}ž¬ʃÝ÷ñàKÙ®‘Ýz]z·^9•ÔJ®öS_¸†§>Å€âó“:úrnZr }¬'¯O‚RÁO¯¿ÆÊüæÞ)é¿9nç¡tç¾x³†Ðùˆ:qÎÀgB~/å eøâ+¢5pâË›Hd÷s¹æés¢Sþ0ë©Ø¹)lüø#²;Êç[8¥º#þ!ÇëÌ×é?fûQü¯Ÿ8Œx·¦LÆ#‚…¨¦NÝ8#ý’?ÇZ `° àšwzcýMŸOaÞ;ÇÔ þvÊ*¶×rÃ0=æÓÅ /è ï7Ÿ—?º¨ÃÒÁ¥.#¹ò®^̼EKpd$¡ð8|Üè›ùk?~9À˜Ó%´üí”N9ùÀáé½gr¡ìŠbè°”# ? eU©3Ô Dí `«ªxq7&±èí'¹ Ø…_Ða¶XÑf^Å覑œÚ,n¤Î!<‰Á§³ï¢³g#÷]x‚Wyñ: ¢ ¢”¯aý&¸d0Hòoù2 Zýžô±Ï=ÎÔxcòTîéŒI=¹-º€{U3^}šIv*r¾àégpèÞ'xlBn¿Ü®=F}ï\ûÞË®bêYIXDù÷ÁïŽÒQA-dÍs_Si½”—VžMlÉ:¾«Òà#Ÿ,EsÓ.êgëðЉ€Ú¼oyç_þï¨o»Å=:åóѲ~ømOÝ𠀯‡³´;Úpùü7¿C³‡_¡m™ßVÃyL0Xhx¿_l©ÜôSõãÈYÇËosQ[Day9C’ÚW>,ASÝ)ÇñH8×óÀUyÌ]¾œ³Œz(ùœu[ sàEüm¹ôÛ7Baãxà­èÃ÷~ê‹}dœ3·,8 ÷jþvËüÐcç&…uàɸj¾çÅ«`àë0ÊüÇ_óÕcôù¶Å ùþo\÷ú'ôJšÃàHó ¬Ë ÞÆê«øNWÿ*>ç‘/zòØ3]±ïþ€GŸ æ±u_Ñ«:Ÿ¼’væF0jÑ ðë1‹'>x®†6}žÍøûæÓ¸s Ö„ó¹ï±›9‹­¼þÄFÖ®ÚÃÌ‹z=pÕÎßQñ{¼ È-/ÿƒñÞ-¼¹tË_ý‰¿ß8œ“1‚—]KOY{˜.î7*ŽäµS[^‡ ñøY*D¢¢¢3Ð5RQUõ÷i»°µµ¿õã E5FäϨ;gÀXÔ××ÿ!ÛUä*êÔÿ:}¦>k-zø_m¿€ ˆ"hpSS\tÊö'ŠªPVVvÆ‚©:}âó]\\ü»Ì· Ø‹êóg‹:‘N9S#"Ô×ÔœÞ6ˆ¢*á­-¥°¶}èRDQÂQUŠýø‡ëTÙ;Õ¬SNrëþç:bôÿP‚jÑ-õzDI­¦VP%Ÿ_F#¨¨ÑþߦLZ ~¿„,è|T”*^¿ ¢K°…àP#~¹iý6(3!áWAVdü~5 ‚Vl™Ù/#«Z½ˆª€¦éE‘‘$AдšOE–‘dÐè4M (ˆê‰HhÐ5—¶Pä–ÂE§=¬5~Ÿ|F>ˆ,É(ŠŠGR±{UdUDgidÕƒÿƒïÊ2ʼn¢îŠ$#i4y4ŸË·-2hí4h„ük²\Ðo›‡#HYDc'‚¢X÷çÞ­ÁÞ^¢h]q+℃G-*+'xü(“œòÅqAF–lùé-v±•œ•¢eÌfµ´äŽ,©Ö=[@–XiçoVVU³EÂAQ%åœ]œµ”ëú>6ÿÄ•ÛI¼YÔ—¸X¯ØžgÏ|?ª‹¢ «*’ rÓL$‹„ªÑæÉQT‹$[彨Á横¢¢ŠŠEBQ…§æÐ6^­¶<.8‡‚¨ÅpˆôÓxS‰ ¿Ç¥*MùÒÁç’ÕyÓ£*Š*£8ÁÅAµ­‰P`ü*‹ŒŠˆ]¾“S2K(‚€ æl¸Á%¯^,,fæ–IA´wƵˆöN•©Pä4Wà $ëàæ˜¿îj}Çl± Ûh„Ù¢ Ú9ââf}™Ô©y¸«ˆ4¶ ¶¶°î™+³U¬rX“·$$Y@Ðh°ÓÔK@ttÃUUÅv¯b ö²× HáYœlë`Ý« ªUþ7 €ª å¼Ê½r‰ñ’E"áI^å¼PTå5ã~ ÿ6XÌ’’’([¶ìÿ4툂HRr†¢E‹>7Ø÷Ÿ2Údfdb4™ðôðx©ÖÈd2‘š’J™2e^ªq)ŠB¬!–òåË¿t4…Wy¯—†¾þ:ÌÊÊ";+›’%K¾r¼BD %ÜK¼’% Q!*:ꥣiAˆŒŒ´êM/ÙzGGGSªt©ÿãЯá5¼†×ð^ÃË ÿkA¾Úÿ$UT[QåÛl˜:ŸŸïSf@?j¤+”l5ñµiÿ¿Y±–ÞUÔܾ¶y·ÕKG°E!iR¸²w'ǜ趬+Z[BŸ"€Æü; ‡ÌãàÝxÌø0ëÐLÚy^gA«Ÿ©8ºË—íGë\ ߩۙۡ©—Ù>o$¯åš1`üŒñ–94ûgb=Šy-”3WÐtònÆ:¬gÔÒ“¤dIÔ³•ŸúV´ö–½»‘CÖò¼j cáÏý¨d¶¼2Éj®kÌFã ÖÒÏš'¡œÕ· Åwò×Á­V"#á ì"£…Q)m˜³®±ë°pÍ9Ò©Œß§“úacÒöLáÛ5þ„§­¦²uvyöúMæ°’ò^36t_Âî&–v:@ËèP$™{'W3{îo$eš÷fääÉ´öŠâÀ—[HÑäpöÞ"ÆãÕwó6£¨³˜çpÌ=¾)ª•¦dm1JÖ®L…°\}Ø—¢éûøqáBÎ>ÞìÅŒÙ0®úŽÝo‘þeo¶½=‰Ÿ§÷ Œù SÞ[ÀuIAëЗ9g'R;Çò—:U•BÏSQA’QK¿A}×ílüíÁõ«â[Á­ý¶Î΄²ÇweïtŽ~щË}™vPEÐ:âùÁ|¶v1°ôãe\NI›QŸÐ+ë"'®ºÑnBOj88±`' µ;Ð¥K5­ŸÁÏ!ñU Í?þžÁ eúÚN¢O9m%ý¬ÿ—_üYÍM#·âò$6°ÀPüOž%,0”˜ÈèÿxŽÂC }÷,åIóÖoãÝNG³ÖoSáòägõªyYT äeüªj^~¯õ»ËBÛRßQAÔâôfjmØÎ– ÑÄ ÅlA´×’|mëZO`¤‚\õ]¾šÒuçT‚Êçõ)î,`em×gÍÒ¾”ÜÁðWqJ”À¢ƒ©ú ñ†ÿk£‹Š­w®£^R¡¡7]Žbþެù°¨´‰¬¤³¬p††ë§à¸m(3öÅ!ŠWSúý’qÞilŸù-kŽß$›†ŒX5ÞÊá()¨hÐÚ_`Q«u”ß²Šþ,ðÙN™Ë²æ‡£8”ªF¯©?1îm'LfÅF'¶Rð‚ˆ`Ü ãÈ[~,h áôD_ntÞÄÖnhE)è[Z­·à{÷0gƒ]{°kØbÖ¼_„Ð_–2{åiR¨Ä;£§0á£<\;žy[C‰Êã6óEת±ÿKÏÛöŠª(úcç…GXõÀ{UÁ,«ˆZ WVø1á×t,²€}ßåLh‚Y–ÉJºÈÚOƲ;]I𯓈_×› ÷ýØr(ýª¾ÜZ±P@1±tØEÞ;¤Gj+szDZùX"ûWk{䥭Ù×6“´$£¼Y‰2v„\g¼íƒª¢*F²”X\Û/d˺¤þ¶ ÿ° L;¥çôÖÁxŠ‘\ºž‰Wçy,ÛÊQýzúÜ>Α+•øðè":ˆuº9ˆ=ãš`²HÖ¬.Q&îÎ~v¬¼E¯_ôœ=÷+¼Ò8²r'wœ„{l¿ëÊÀ¯w¸i4–ƒÇING*8öB¥MóÌë‚‚d†"5»0nmGô»_>“ë‡S©¿x&=«4罯¶±íë>”r¿Â÷}÷Óxõ)öògÛÙü²=ÚšÍY`þÛ¹ÿ³ÙÖc0±“‰5}[2໣ÜK®Jÿõ_Ó«dC/Þñ¯:â J4{’“'OpxïTïÜÊiûw˜ôãX:”öãËu«ø\W†L£d-W`+'#¨ hìq¸w’_5˜¶è'Ö­]ÇÐ&ΈB~Þ¯(…¾ç)ž¾VÐÏ–Õ›è¡ëBÓ* ;èölÝõ§œ¿Ïƒ'ñO8¸{?“GNÄ»vsÚÔ÷fÉ׋ˆ|™ÏÔÜÒÎùx¶1‹¶OÞß ¸µE4¸zø0|ÑÇØoÉIs9k‡*Q¬f&.?ÀáCk["…k! ÔíØ™Q‘¤ef£~ØOû÷{à%„±tP wxr+‡%³á`Â+Çþ^0™ë2ñÜ~:_ü˜Ö-[°(L°fõª ²Å®´´—PýQ~˜6–Õ:ÐW§åôÂD¹õfmý†·yt;‚ØslvE¶f›¢ÊdI7Ø•Ý}ðQ–u«ÈÉÕ¿ñMÈ6 Ž.ilúœ>Í›Ñ죺u~‹RÅËÒ}@7އ]@V¬áú€ýôý_œI'—VÌÚ½5ï»sóØ~N-Í×þzô»>¦‚s,×Žíæ—œ·ñãQÂBCYØ»2nöÊK”®¢¢ ØCúÙÝì/Q…š•ÝÐÊõFåÔ¹üá·s-¿ÆiR¯òË´é¤:^ʾµ ñ+•ŽIÑ:9¿á;ôE}Y±| o—–ñêù;†¡×ÿDŸÀ=ì —AeÁûßSw…žà#ûq˜}²;‰‡Á‡9v܃Yþzô{FS¥H,—îa[VC†¬:‚>4”Å}«QÔ^Î+ÊŽÉãkUx£"(І"eºñÅ®/Ð.j‹®ï(Fjl•=$c&Ú]ùfÃYôúÍ|\­Ó¶£BÉ;,íµ›:‹÷s:0”À… k·G£ÕÊdg\àðæ*蚪ˆÖÞăk›ݪͺ­Äâ\No—dYAVþÕ5âãŽò¹O3š XÊãšùnPc\ˆâÀ7;I®2ŒMÁzôkësùB4™¦'ìÓýõ¿çô¹ ‚רDzª?«ÆßaàQ=úk™Ø!–ÁñØÛ)˜ŒŽ4iáƒÑî†[ƒ(n¥Q›–Ô÷z̲ÞOã‰l<ÇÒQ;ñÝ 'pór|ÓNp;ìþe½†®Ôà·¯á¯\Ä׫ð^Ãkx¤ÆË›¢*Ö„Œ×kðš¾_¯ËkxMíÛUÔ¿”ïæòñ¿7Ûs_Ñ]þš;½†W þ·¬Ø¢ˆ&%Žh·V4n]ŸòÎàÒº;KxâúÒ+¤/;ãËM¾SŸ1˜¨ªˆ³}s¾:¡G¯×stûOtõJÃ(=»>bZÉšhvÏL—ÖÍi1æW.ß‹@QeTµ.ãû·@RÀ¡YsüLOMv4Á? E³ÎŒ]q€ÇE°CÆ”Sš®ô¤eõâP©.>NoÑé­J؉*Joº‰áDFƒÉ]åó»5§…_w¯'%3õ•ÚÏvXµV‹æîc ¶Ϭ›j‡³s}š4,‚”™)#’ó×63­}süúɶã·0« .áùbX'Þi6”]IO0‰BuV /¹dÁ—C¶{;êV‡lM%j5¯B• á$&ÙâEgß–T,å@v·ðuK&Í`Aþ£^Ī Š3ŽŽÕ)U´‰×ØýM:5ëͲSz’œíÑäæb©   ì²yXzúéxoö) ‰ñcd¹‚Å,òfÏ/Ùø3­ï­`ÙF ŠF´f‹Ù²m•à%´÷ë@÷^óquÄÞús öòDQÌ-q*"Š"TÔ2oPïÞ~>~‡”L²B!GoA'©È‹¿r6˜û ¦i•†|1~WÎ_ú[fêÑý‡|ÿíR¼k7§S3?vmÚ‘ïXWmÎîç8‚ó¾“ß9Wp)^Ÿ¡Ë~â«w=ñ_6—S±v8¤ßb×’qtï>šÏß&M+ ÕhBÇkyjDâwÃGз‰!&†‡Üde>»ÒoIIi)ÿs¢óú"Ú/A·ïý Û÷9á“[2ÿw-všü½'ˆ"On\àÚ£0*}ò.eÌOH•¢9¶{6ý½›ÓbÈ*NþþY‘ É™‚ê‹£¦Ÿô­¢=î ëÒ,ó1Qù%¡AƘUÝÀ…ì Ó£øGÓ¿`ýéh²›øÒód¡fU ò34³`±ØNTÀl”IðÍ­ŒñmN‹>ÓY}ð:Yžehôh/k9ε˜LdåŸQü…çr}—t‚·Ìà½VÍð›K¿ñýx«|4‚ñürÚµõÆG7…ãvZ´ª„1ü*× ½èçWÙ,ç=Sãà@ÄÑÕì‰.JÓN}¨ç.cíp¸³z·£Y³‘ì2f¡ˆBtáõ&Ò¯©Œ¬u jþøYÌXLfL©‘„ÞÙÁ8ßæ´èõ9?¸F–Gi†ïgÃ/G¹õâ9Ìk;® ¸–|›éûOòc¿’üöù§Šsñ@Q ×6GbÏ4ª^‡$‡Çü<ª#muo£›z„Gq±’„ùÚ%’>}Ÿzª‚„‚dv j½ü¬G:7ïlgÙ’ÓpxþnxNàŠ"ÛQªô»,;{–ûÔÇxö²ÓIW£9¼ñsÞkÝœÃ×p-ÁàÏéËíéß³2‚P Z!‚›æ0ævnN‹öïñÉOçIÏJG#Š Ë˜ßx“fIFÌ÷ ¤r›ÐˆÎøÔ®@‰41öOák@{BB“1ô­ ²›u;ö ¥Ùdm1ð+Œ&#F“ ³\xNUA–Ÿ­Ù¡ÊÌæÜj “Éö ã3Ïx®¡A¶`²Ýo²ä¶†P‘-fÛõçU Q,r¡à4E¶cÌÁd¶PèµYA|ûÅÎÞNÀœ÷®‚Ï”1ÛÞo4™°|™ÉékYºñ9wŸI’óÆ)™Myã7JʨN ’¤ä5QPd fS9&3’¢üK¦0¾¯›0ËÊ¿üíóñ}Q–OE6?o],¹sS ½‡ªÊ˜9䘬cÌÃ]²`2åc² Ð_¥<Úùo«Ã<óói[U$LFÛ5KþšZq·Í‘Ñ„E±ê´ÿÎø ᜻ުŒÙœ¿/Œ&#F‹ŒúœÙ\ø^“‹ü'%›Zp½Í…é;w¼3’ GŶïrŒþº< ÒÓø›ÌùûT±¸n£ÅÚ’¦Ð3dé© ç¬ó_q^xš‡)Ûz‘G7¹<ïùüë/IÞ,°O”ü÷ⱪµ}V!ž¨ÈXd¹Ð&“µÕÏŸÏ•*²,çW¶z!ßÊå&LæÂ×eÉlåß Ê?mRsˆ»°‘±ŸçÕêh¨ Ë’ü/¨ð÷ex{·¦åÛo³äÂKŒŽa'ƒo'ö·Ê’'…dá‹àù:‰ªJÏ‘§ö ôÔT¥¼}_HS2x´žÉ³Ï’HF«œÏç Ržþe|ö]QÛõ4Ɉé©÷¨Ô >_FQþµž§>¥›ç ®MA}ûùt¨È&Læ§åØ‹ôϧæV±ž¬ë­šÓç騊dÄd['E±äëbÒÓ2ý9´ýŒ Ë=ö¬^Çú}·ÿþs–‡Å¡’}k-½›· …_†n(ä¤9³åúñSûÙbáîÆ´hþ6í»Lç\Ö¿Ò‡m´hü£ýH™DíúŒÍ[ðÎû#ØùwÈ*I’þÍàîæ›l^¾Žm'þ‹ê€OóØZéxZ—ý£3UþùíùãþW{¯ð¾yî™åß~fþ<šL^7vú.ÑÿÏdnF‰€ju2*f,yÂÒˆI‘­'êëÏŸþ4Þª…39­ßd3(f3f‹„\Ⱥkû­ª‚ cL¯Ã°{8F¨^~NµTT¤ÜþÂŠŠ‚ˆVÊâöÙߨs¥=ôzvÎJ—,L¶g*Šl+ƒ™kXÍ-®äEìpµëÅ!a„†éÑÿ•å=*‘c´¼:óÏs ɽ>ÍB¹’@–ÑVòWT3&)×sl+!*¨HfO궚ʺÐ0N„ê9¾q]Ê_ã›™×iöézŽèÏ0±EYœ5™µHaŸªµÌ· › XŒ¬EÔØÕŠR «ë¿(÷%ˆ`N!þæU¤× R±hŽm=MŒÛ(vëõ,âGE#’’ˆ`+7®QQ>L9ÊÑà0ŽœcûÈd›å¿šÅòVä­‰$!I’EÂb_‹~ú‘˜NBRj^½QÐb»›Ñ³–ùŸåÔáŸxßËh=x ¢F´Í€(Šh5¹¼LAEU"Ǿç­dJÍ[,›5­—s°ùÀ­Õ“Õ‚Õ dúÚˆFUTn\ºÆð>ƒéש'ŸøGYöíë·˜£T‘®Cø_ˆâöÆ_‰m]’‚ˆ*Š8ˆYxÖŸ€€@‚ía}¿ª¯oøx…ä'¨«±[‘,˜Kö`ÊèZ C5ùžË”û\¼x•+•§Ð¥ Ë3+òî¨Ëåý+QÕÃÁÚZ `´i÷,Û"/UÕÚç[ÿÙÜûU[YàP—fõž–šI¶±>ý''°}÷#mÙ„¡C+ÊÈržqXÈS>ÝiÐb »rÇ´im뵤ÿ²=lé•Á¢!~ŒÛ~4“XxÿÿŸÏ{¾_躌1³ºÁ‹Ù¢G¯_AŸjîh% ö »:1›ùg‚ ÝÉðê’Õ@ j±sÈ‚BÀU5;gWRÓ‰MˆCFƒCÚ &O çƒ%{Ðë1¹Q´¨Ö––LrÌÖà ɘƒ A•‘ÌîÔm:‰¹s¸ù :4x›÷¿ÛÅ–¾&–ìǘ­·H5‰6ZTQ#Y«„¨ ŠÅ„IQ°P„7Þê‰oK'‚/ßÂNcókëÛY™Ô– êRÞe,™-™~ÈŸÐÐ0BC‚9;¡ ™ømï:¼í‰b‘óuEF2¢ÕkØá,>!ݤE£Qòh.—Ö(H_Oé;¨ŒŠ3õÛ¾Eí*w8˜v*¦Œ*ôš¼–¹ó°¸7¥K¸¢Õæ]("NEÁâ®ï±&÷ÞÃùº}yÒr$$,æ躺k '`õ.¢ªzR¼x@zç‰M1Ê š³ÈUÁbÌÁ ÿt†£b&åø7è|ÛÒñÝn|}&=o+R4a§v³neÙOýìþžOéòÑLN„ç@Æ ¦õèJ‡¶~´k£cøÏ÷øC)/Gã¿v ½uøzëè:i úH¸ËÖQÒÕG‡Î{2{cÓóc¦ Ž1gÔ^’rŸ“ö˜Ó+Gã£ó¡ëè9ºŸ¿†™W.b©ñoTˆcûà÷y·÷çHʲ¶èx¼…AÞmhÛ®ºö`Ö¡ø|[B¬dc:8¼t4ïxûà뭣njm܈¸ÍúߣS›v´k£C÷ÕqLòs Àæ8®ê÷±j¾¿mþûù+xûàã=„ïŽÝ&íEËbÊ$%ù³>ÞÅ“§þ–rûߌîÆg?_®aK•,˜åPŽÝÂÔT@~¸‘müh×®=;Md¯áyoMâ¶9|äíƒ÷ æÿvnñËÇýéâ«Cç=…} (€l:Åï6ø¶}‡.ÝWp€l"ô«ùDçƒw_&.8AŒÕzÌñùãéëíƒ÷HÖ\Œ´ÍÉVtëJÇvmðõþšÓæ?gJxgå¹´dðàØ|úètè¼ßaÈÔ\βâî¿x½½uøúµA§ëÇŠ@9\æÇ>=x§­/¾Þ³9‘ezŽ¡$ƒÇ¡¹8¿Çg‹¬8«3wtWtº¶øùµ§­·ݤ½Äg³²»çvÞßpÚhA•ÍÜÞ< wüüühç«C×¥?3ŽÆü)­Ø|ÿgxûÒ¶][:öxùÇ Ý²š±Ã³ôDÉoÓFÒÓ[‡n<[nÇ“óWð“žõÂOçK;??üÚµÅW7’]Ñ ª9ƒ¸C³Ðyûâ×¶-¾]û3ö— îùÿœ¥Áùï7]gýâ ì ·öž·Î‰ÁöÓ{àa["PôKióÉVâmΓ‡Ç1²ÿR.g¤paãtºÙø×»Ÿ­"(ü¯jJ"óðØrÆtöÁ§ó ö^·îþ¸ãßзÇ;´kk¥!k¯‘eQ0?ÞÊÇ£ö’œ÷ód®ŸÚļù»9½{ïzëðmßw7¦­ Êô'Y–ôg÷°fYH¾å¾ÝŠÿåØ<£«j1‘mòçëá[‰P¬­@²S2Ã[‡®Mgú~´Žë¹ÏH¸Á¯ßÃGçCÏ)?ý˜E ZÍ+VNŠâÄŽ­lÜç—øvÌmÆï &44ŒÏš¼Äø"vZÍ+^0ƒëûñ‘·]û¶è¼{1gç%ÿ@Ý{V'yäð8äGFÙdˤïN“çè“‘•K¬úb ¿?H²é\*æ eø½Óvíüøì@¾^£de{ÿ&ê’´Œa:|¼ßgê*âLWX?i0½}ñõÖÑgþib3ò›ÈÀÓ8wñ¡äýuôóö¡MÛ6tìõ N¥YÜ?õ=Cu:|}uè>šÉÎK‰Ïâh1‘cògÎð­DØœ Æ´Ã|é­Ã§M'z÷_õ²FE¹Êº¹[ ºoã97ø±OOÞië‡_tsN?G÷Ì!æÒFFzëеo‡Î»“VãÑÓÌÿô)ùüÙNbÓ-…øŸ1ã8³¼}ñmÛ‰ž}W“–Ÿ|—ƒßÄGçC÷ ßq&0]åçχÐÉ[‡Î»ßžxDš\PÝÎäô<Þ#sõXÅœÀ­K¿±üëÓdæÝ¨ (wøõ‡í>óósU÷2²N3kèòÔ¹œDnm›‚NÇ»F³áªDsæÇÉtõÖ¡óîÂä5çˆxê—~èŒ÷À5Ü7I/Ö·_GgòÁ ‰üz- LÁÌû¨Û´£­NÇG?^!»@‚1%’_§ëè<ý49dp{ß\zêtè¼;1bönæä¯õ³´ýœ_ÈËEDÆjÇûÛ刕‡ q¡t«ÙœÚφ®Ž™ßo_üüÚÓÎ[‡®ÿLöÞ¾†ÿÂñôñöÁÇûÖ]‰±é@OíçCI¼9h3ú€- ©bâͩҶNLo:Ýdö…§¼@>(d§²f¹†Åz=Çw¬¡{…ÿ+YÎáMX½ç>p‡Ë·rì’ÿÞ*, ÑhøãI*¦;[áÓŽvíüèðnfIùçÜc’‹¬gÑø-ÜJ²¶Ÿ’ÍþÌ÷Í=§-%̪“pg cu:|Úø {o4‹O=§_nV0‹‡¾OGŸ¶´ñÖ1`Å2lç©g÷s&ç×2ÚvN›ðí1"ž7Ȭ¾yÎ~6ÝÝÌ0ï6´mÛ®=¦r0áµC÷µøÙ=‰b1’•‘FZvéNžT®qÉ?˜‹÷Òxtô'“’ÈF|]ú¯p¶«<ÓO.×¹ûLìn®á4×`/ËHE*P§Ò]Nì>Ë•‰àQ|¦Í¸ªäyÛòŒ°³œCR{râ¯qþÂuî&XK€ª6§AÞ/T¥P„¯¢((€èU‰ê.ÇX»þq1Q<ŽŒ!6ÝŒF^Õe@Q­™3F£í>ú˜ˆ-Yqð!11±Äƈ¹¾›Ó×­ÂJQd{WŠW°Ã~Œ#‡É£˜t2cSH­è„9;…ø»§¼‘‰Ñ Šj½£™ôq©&k’®ª kìqô*»@ØÙT#Cѧ‘¡¶¢r ’¤Z{'*¶B¥Š‚¢¨¶1[?ªª¢(9¤ÅÇÁK8²ï-¦õ bB*éN2™EeÒ"Cøýr8±iÀ{G…ìÔxb³0yV£Né¶ÿÌãG‘<~Id’U¥)ø®¿âóŒ ]Ôb—tŸkçƒzð„¤'÷9t¯bî”p+†£LVJ<±i9˜LBÝ(QÑ<ºìþ‘­ Šö؉٤<É Ãä„Gi´ÎQD„g‘õà7’’IÓÚa'IN|Bf¥^|Ò¥.ª%#?C6¯Ô³X¨dr®C5êq$“GLàÝ–ÿqÇïóÁ#û çý޽¹vÁÊ#ÕZæYòs£Á€P ¯YQ0?#ðQ*éÉq„GÜ'6^¡žgQ2]Àè*“™p‹·âIÎÑ È®õ}(yï;‚ÊѧC94"¨e«P«ØY6®½B\L4á‘1D§šÑН3€ ˆüƒÆû[GØu)œè˜8b ¿sø\mëUFVdëªFî^:Cð'>hã@DD<)šâT®œÆí “œ yLtTbS0IOeÚøvÁþ·ÖñXyü3ö A&'-‰ø¸DžÜ>EÐÔ/ã†%›w¥Ä…_ø9´]Z–B’AíÐj³HŠO!YrÀó ÌQGÙsôq1‘<ŠyBVVO ÑÄ–{YwÀM“$I¼4J„*[3ŸrÀb6#©ªUÛ{’L\½â(„_<Á¹Û ˆZœ*7¦iÓìØt‹„ÄXâŸ$“£€br¥Œ÷8¾îbODÐ\N„ª» ''`¸{’3×HŠŠêUºQkYw,žøèH®8@˜½ %*9¡Da÷áû…ç06𨲽ùrø;×fa±Xò„ªR‰êsÿ¡Š([Ⱦ¸ŸÝ×HŒ{ÌÍ;yn¢q•²X$ ТQï³iÕ}—ô ¸sá1)ä¯BÃòalYÈýG„‡G‘˜%*Œëõ†ÑÑ]Æ”çðW0å¤ó$.™Ä‡¿sñ–· s(Iåº)ÄÅGþ8E’)"ð´ôµU'G‘AãU“šE‹°{;¿Ëe©Q5žK§Otþ1Ñ‘<ŠMÃT¢%Û^fï/ˆ‰6kˆ%Í,bW¾oh²nÓ â Q<ŽŒ%1ÇŒ(¨(ªŠ,}õÆ”N»ÃÁ#&ÞjT…Òî"jñjÏ✔ƒ¶lyª<\ÇÆ“ÉÄ=¸Ë…S'¸lg‡––l•Àyt^Ršm!Áœ;yŒ¹~E­×3¢9¹dæìáQ WkU ÜÚ;]Qö”*R•¢¢ ÔüöþAo¢þÚ¹ìø#ëLZEvaî =¡úÓL-Ç¥àË_¹˜”¾³ØªG¿Ä‰ïV’e;ÀƘFÏÞ )êl-›ÏïÛbmtÎêõ_û5ݪkóøOÔ#ú5Ëò`í"’.æp°žÐ…¾]ˆY’ÒÑm !80ˆ³»?Çuù<ŽÚ¢éÓRdì•âÔöP(Òú#–ž #TœOr®r.ì.Y×/á0m;'ƒƒ >ÅçÑ»Ø÷ŸÌN"tõxFLú…;%\qâqC*ÍŒP=úïpÿbï¥Òž$“iÎçŸ Ç¾¤Gotu,PRRî°wç÷D–îIM­5šÛ˜–JZ¦1ψb¼´†‘½§°?1‹ A ޳NÒùH Aœü¦<˾ÞKúSËvœëiNL Ö£ß݃¸ÛAœlâöOóIî?ƒ!zÂ;°hy&dÎÎü ÷Í!„å‡!÷™¾ä jò#ÂN†Ñõ¸ýé™Ôt c‡qǶð¨r¾×ëѯ¯Ç±AĤ)è¿™Ž<ççC81;™/æý):.Œ³U;y–¶]I¾‰ÿñ¦êõèõ›y¯Æ~Ù~Åêø7ÖfÀ¿‚^¿‡‰º"5…ìÉ¿r6(”Ð-¥˜5x;ÑOÏ’spóït;¡G¯_Bk·+¬Üx Kµ®|½ö8ú°`Ø0¼~¾nõæ™Vœƒ6ãËÛˆÕØS{ðfôú øm-£½©^¡ÌŸ3.¤™ðû%”àÀ`Žn…vÅBNÛŒ«ýVv;‡Ñ£-ÕÝÒñ_µ{õ±Q¯G¨{æïášÍ õßûL˜*~Àª£ÁLhØÞ//poãHzþX™úPƒ‚ Ý·™Qš‹\p²ÓæóDA@k§E+Šˆ/Xçÿn±¼ÿa,9dãaižñ±ÅVÖÝÀÓ …Ñ`ö(Ê\ÜÇñê¬Ôë ÕŸbvßMù« ‰ªužÄêS?3į6E4Ž}ÉЃ^ÌÝu–  @‚B¶£ûm#6?BÔÚáà -d*j´ØkÁâV›ã7êŒ^¿’š—ƒ9vêÖ”ݪd8óý8ÆÍÜÅw×¼–Ò£#|3b<ë‚ï‘îhŸgÌÊ ZD¿.38®ØB¼U#þóñÆ=úàƒÌx÷³º R8Öo#Ðy4Az=‡—Ž¡uyñ%¨g5¢ˆ€bL'ÁMŒá ©YfÛ~ÈJI$Î`À`0›˜ùŸÎ"Ò–§]ß~ ìRsViI”'clþÝL8­7£È¶·ñ€ ‹hÿµ–gü dEÒy7™-¤?q£¶k ÁÁwùà´ýÑ xZBØœI‰”ùpÛCB Õï§×ù]¼™„Ñiùð–=í[–BM³ÐaK!A!þi8âÊÅÄe¢-VAGô„†èù¥{y²¯_ ü)ÏNfÈw è6ƒcrn&š‘só¾¥Âv=aÁG˜Ýý3WÞ°Êã¬tRR2óÖ^zxˆÙÃdzAŸtG­•ç\Óã0çgƒ >Ƥ‡ÛÙÈY$'¤ÚÆ’äAƒFS9ä„^Œïǵ¡jÍö|¹¦ |®wÓŠ8ØÔ¸"Ù6ìkÊl %4è [&d0mÌ!²‰ÇóÏìÍ„¿^ÏÑUSñ«h"lýqDŸ±ìÕëÑÄ•}ǹžaÅÕ’ÉÉÅ]9\ìšØÛx) ë'0dìÏÜrwÅ!wųjÂX–í¿H’«C!0RÏΡO—Yœ´× MŽ,fÜÑÑë9µk-7„‡gBxljÀ*½}ÀlŠÅ^æÔïyÕ{B|=ª7µÜòÞóŒ¾ýxxb1;oÄãR¼%5*DÅPåó­œ"8l;­v,eW„•¤tG–÷'¨Ô@š;š‰3Ü LoÇl½½~ íJFóëo׬ްçÑöóp~šóHÙ$bˆ‰'#) “ªA5¥‘”ÁCJ–U1‘–Ëo )6GkI± ±±Ä%d"²9›”” 2Rbˆ6x’’ްd§’‘™…Eµîóì¤2L `&5!ŽØ¸xâãÒ ñ,E2[ßãâE§©{ÐëC àðÊOé߯“”c{¸_í~Ðëѯ­ÅÁ}D¥?g?+äMHŠÇoÍÙé¤$gz§ª­ÅÀEèÞi,+öÌ¥÷nd¥åG\l,†Ø82,€šMÒ•{D8zBV*)i9XÌy²/%Ób•{Y9d¤%’ŸH–)‹ÔôLÒ“ãˆ%Ý¢Kl\’mLOˆ±É˜'ÉVç³É„Ù˜Evšè슼7ª•Eƒ…Œ¤›\HŠ䜒Cvšƒ!–¸„²e@•ÈN‹Ï{vRºÅš¨dÓ2’SÈ0>Ñ®gþÀ@zž"(0ÿ“‹y3ÖªÍ˦ l2)%Ýl]×ÌL²¶ŒÕDZZ6fK6)y´“Ьç·X«>O¦Š9ƒ„˜b q$¦f=7+Ùte=Ÿô™Äoñ©X4DâØ6p:.kmç´0eÐ.RÓ í=aÁašÚ‰’—Žqõ釯¨4a=‡Cƒ ÑïÄ÷·•ì~lF}j?;é¡XDçzôúïiçq••ë.=+gŸÙÏËØÉιþô<Bp?{¦z²ü›ƒùÁ+¯áßSÛþ¼’Intñ ¿Ëͨɨ‘#¸¼`%_ßDÕÁƒi_U¦¤£˜—úþä™òËp¼ ¢3•Já*’Ÿi­8¸ý´#vŠˆ‹‡îH9ž¼3w†©K˜ÿÙVLŠ£ÏtL*ŽG¥²¸i­¿E<*zâàR„JMu´>2AŸT£Fåê´nZQq)éI‰bÎ6!mGñòeP´Vg´â€G¥²Ѩh4Íøtõ>ÿø3>Ú%¢)G£~3Xн9F镘{ÕæõÍϸ¶e'É&Ò*öaÓörÌûx*3~5ƒÚºcX:OE‰rÁ½B)œE0›]¨üö{ôIÏæ§%#8¥Q1VéÌøÏ1°ñe~\5†=¥;ЦaiÜ‹€,Õ§õ‡ çä\ûY¬à‚{ÅR8«îot¢×ØT–ÌìÆ'uÞÄàaM)¡ÄàèéI±bΈ€¬ØS¤|´N vPPq¢H™TŽ|5˜ƒ’Å+´åã_~¤!&Ò4Õyë­j<ú~Ÿ¿E£2%©SÅÙXަ½J°lÃtŽßþŒŸÆvæ£ ³0 _È´³ˆZ\Þýš5ƒë’cù¿[WkƪŒZÞ ûàãìžù-‹´*Rã!,ýЗ Ž.´~ß…y›¦rôÆvN|ŸÏÊŒeÁÄãØÕ|‡.~¥qTE\Š×áÍú›Ø¸xQïat“Ö¼ñ`»¾Ï¡hP¬"U‹¹à”|•;ÏŸšƒFÓŒþSKæ—E.¡ªÖª*`ˆç§%«Øøã†—ž¼ £WÛnøunÏ”¯§S¥FÕ¼Ê" äeç:…UÐh¼Jòí" »–¥~§!ø6*B¬æ1·üÀ¤óµ©_“j^NŠŠêZß²;XU®'5TÕ‹#7`äê‰|5r&#ƒêXœJ=§ó}ŸÊd›Ô×<_ÍͶ-”£¾ÕM¿iŒOÉBRœz}ÏÞNî¤Ä;ãùF4)‰ÜØÉEÉ«}ö“íZƒNƒÆ2iø8Ò²—±þ«Yƒ…¬ÆÃX=¶+U=­%‚ ðm'<Þ(ƒ«ªZ7<¼Ê„±“yòíÖOA–j&«Ùh6ëB»/WÓoãÎZ3Ê:Ï>ÄÈú-ùdÅ0¦2ž·iPJTÁwè'|àî‰G){TP«Ñ¬¬‰À&•)í⎋dƨVcàºÙ†-ÊÃYÛi6¿hÁ°YÝè3³—¼ÊÓÀ§/}…LAùK_Êœ>zŸÁ ‡¡}ð€-å+QL b‘òt˜²¯†û9t?ЪâB6rLíÌÐvlýáªdB©5„¡yÏt¢xýâ±ÿƒ×–¨C£fù;ɾ¬'ž^·¹v°µZ¹Y {ÛÑrmQªBMDÊ÷YIPë=|2ÇZn*;5…ˆøúoHâƒ{¨®%(YÊ'àúËŽ”ªû˜»ç›R££³Õ)ö–o¯‹&BUx³ÉFØ©ÉìF‰ºEqR0D>æþC/ZyÕ¢†W¾cÆ©bqJ“1×À T2ã"H4ß'ÚÒ ßrO9àœ=h9f3»ÞÚÅz*D>ÔBz}ÊŠ@¥º4–ÎcÌ6ƒù"3»ýD¥Å+Õ¢$”î¶”s­÷1rºœ—Ù“s…à°0ºoáó'GٮŞp¶~½Kï2öóNTUœšŽfÃîºLÕ%ngµ2Äß|ÀÃ’ F³'>ÜŸrž¥æ¤&TÐÉßE IDAT^µiH6dÒ”­\­«Õ¤--׈&„г½é4ßj)Õ° üor=Ýèëè]  $5=«‘JÈã²/[™b5›Ó<íéJ§ß¡Ù§Ö "·¦iº%œH¼©ð ÃÂ8[JN=EÛž*áàèBñ’N$\!Ú9Ù© õÝÜl¶£,Âïp%BKI×r”w$êA[½i3.UkË€Ø_y¬Bù¼É3cÊ6aLò¡vQ€ÒÔð,OFd @ù$îeÃñFtYëBè÷íiRÃv½F;úvó(›ç8Mæºÿa®<éÇŒzš?%´ofx®3Fv£D¢¸}ÿ$gY¨Ów!5‚I#øèÚ¼á] ÏVôIÛHRŽuŸýW¡v‚%‘G7¯âX¶¢¬ :zR©l<çÎeæoC©˜{¯³3õ?†x|÷_èVÇghû¯gŠy–BL½Îí„Ô,Y“QŸZßX·÷4¶Í^L°âÂå„á|QË•Ì'Å)âh &9 OgwÞnÕ´€ëð/SfYÄ^s…Û, øä]ª»äþ±2Ã÷}Éå!„·w~á;TdÉŒ hÐâR´Øiþ£5ÝÊÑî³Mx5ÜǾ›V9`‡Š¶Ú»|¹ö <æ_À1¯,ªŠ›ïüÖ¢ £Ç%ÛÎc¿sá\oº-°>Ï«vKjíz̃X²5vtîú†ûw‹•¦”GQìÿñ >k@«B !¿cÁ/×ÈÜ©×k0ã't¤R¬?kæläÔ½D1…'ö½X±q4M<œÿ¹Œé1‡7Ÿ#Qt@Î6’ð0”èTn'SîÃøî“⛳›‡Út~qÕµ± {4ó¦ž"ÅÍgãw~†÷_†€‰¸ßw±èû†íúŒº$¶s?ã+3`LiN~÷{.<$3§ÍGÏæsÝcfN{DÍÊÇ9èˬ5å ç.;¾ÚBà];±¬ZAÿ7^¥À_A0’bxÀÕ˜òxÙ¥¤{1ÿ€ Oé$îõ´ÈiÑnúÑ­(@Yj¹WäQBٔùö{,ü¥ ¿¼Ž½¤"‡ïòÁœ)¸>xÀJT¨B {«œÊJ¾HØU/Úu1pénš»T NѲ<‰&§e{ºæ !;ÜÞ,Žƒ›ˆ(êYŽÖfà\=>a˜#[7JÔtÁ¡D)ª”îBc*ñ†ûÜŒqýFEÜ5…å´›n:{š7fÌØD[ Àóœ?ׇ® ¬Ï+W·57G’··/fu@)ÆlC­Š¶z7f¯¯Œç7—pÈ-eZo8£û˜'ÆdoÚ•ãÍ-ŒržO¬£KQ ™ÉÑ܈¤ŠêD‰’ž¸´À'îeÃñú´ÿ®E 2¡hb»òNë7ûÚ-éúý%.ÄW%1K¡Gÿš$Ü¿EKR®dŠ{•Ä>#ž»w£ñ²Ô+[Šâv¨æTnÿ[‡XÖè(ÃgX«óáPŒ¦£6³¿é¯¬8jDìQË·fÌòÕxþˆæ¹²X¥D‡ykyˆ‘²¬U^¤LΟ70ðËÏÈ~pŸtWJ—/ƒk‰b¸:¤qË€‹˜I©e¨èæ ˜y|xÇÊ/æÛ–7{'Æú–§õígU.™'—vs<µ&]ûuÀsç%,#J÷w“#Eë•ÀÍQDΈåÒ%Üls‚Uå÷3~µ€£‹ÅÜ툽n Æ1­Kj¹» ÚB´­¼gžÒaïú¯gÉôc<.&R£i]Jx4ÅéÎ&¾9õ[×S(Ýw1ßõ1²hî=*—;Áá L?8ŽšW3þó$ºˆhy›ñûÆQûò6>_IíêzŽfS¬v;†}9‹Zç¿cý½J¼;h(M=î²úÓµ=Åý™9ud (Ù¤UùÇú@Î-NžŠES¹E£Q©@€ÚÍi¾öiJgÜåƒ9“Ÿ³Ÿ "HâêÎüx²8Ÿnš@#m?-H39F2OòÅøGÔ­~Š#¡,é‰ÔšrŠoý®±åë]ÜÑo\£Z«nt/s‰ïW'Ct§N÷aLW–㫈ŒándyÞ›P‹Ó¿†SL¾Äå1T±œ·ÎÏã×+ñÔùü ÚÃýßf2nk$Ž‚†b[1hádš<ºÂ…ã;8—x;Ñ 1'½ÉûC:Ñ®äEMÙÊÅä4²Rª3h÷<i2fL<>MO°û,ØkTÞžqŒiÿ½óŽªZø÷ÞmI6½W’@„zïUš "(*XEŸ¢>õ©ØËSìå¡(ŠŠ‚€( EšåôÞ’@Hé½ìîݽå÷Çn’  ÒTø½Ì~>IöfïÙsçL;3gf:³cÁ¼°ªOYODϘù@WŒ"(‚»yûÖ÷ï|’û®m‰_Ý"øàŒ£ð8™¾1ĶãŽi J§Ù·ä=^øp7Õúšº•'žlΖO~ÂÚl·ŒjÁ²•WžÍâú)æÿ§‚¶ñkYùß¾<µz&­ ¾å•‰óÙç+âåÌ OH‡£ïóüÜ_(=‰î0š;¹n ù×£óÝ|üMkžx(*Ùœ:1’þ­]önrn8½‘ Ìté>… JE9Ç9p\Âï-Ñú†ãiÍ'rcÝ{¾m‚ðtnˆ𳂊Ãj£¦h mýœû´æaq”¦æRHÇú= ZËÉÜr?ûMÂ(=t‚Ì`;•r}¢“8Àg* À„þ<óàšóŒEŽâ/~Âý®v¨;vY£±ðE¢YsïJáŽGƒgîýª7²Í†]qžŽ‘mfšL«k4;ñwÝKwWÏ(‹’Ämo|êæÐS°Zá®ÅP% ‡*bòíÍ}_ôC¶Ùû3ãÓ_¸·v“®ª8lšÜÿ}Tט–8nxÿpØ‘dÙÖ†i‹“Ñ$ »ªBä8Þ]?ÎÍ/éÀb‘®‰¢¹ÿÐ÷x¼ëY$JõÝypÉòz†W4ª-vîÏÔùQªý^øÑ|Ô#ÌÿHmuhlVjìÓ¼>ñiDd@±Ùq( 7/bÁí€]¡Z‚© {¡TKXUaݦóîÏÓÅ¡!Ù$ªªCéùÐLDUÁ!IX«ã;çY4›Ã­ï–† vfÚòÜST[DkîAí'ðà <â|‹bW°;lƒŸçõ‘ “5ª¬vª„¾<²¬_ÝI=Í®P-É—]QÔ—Á­Ÿ°Ýb¦Ý ðѤGê>ç°KX,6¢F¾Æ¼Ñ  `³ªô{ò+Õ¹L@•$ÂúÀb®PdlŠÀ€Éÿbðäú¾Àšª «1Ü÷pϺҭΒ¦B}OÜZšp‚¾úx/þëYìö«ëLó†ÕëÙ°z=ÓgÞÃc/< .‡—[àÚìfD<½“™<;™›jƒ“ª«M!¸ÍHî{m÷Ö–‰—eì²ɦ'ùî·˜ŠUr¸‚Ì2rÀP^þnh=O©,VÅõýÚÿ°Ìw?€R߯d$KSnYø SÜ6k«Œ‡_oîý¼ŠÝŽðÂŒo°Ÿs`±Ààf3üzÎ’$;Š¢Êr»÷.ê‰b³as i1’{ßÝôŒ‚d  ËmOÐóö'긲É!ƒÞ€A.'«2”[¯oƒMVœg<}ôèz†¹ô@E#iäÃ|1úáz>–Uúº–Öú¿ìö3úþ¦Mm†‹[ MA²Ñû¾ÐOU°Kv”ºSº²ÅD¯ÇÒïñz‡¶*Ù°Ë&ÿþÌúq ³jŸÑ&¡™J’¨â°H0fŸu>«6å ¾˜Z/ûT»„]q ·›ÆªœnÿìµÏó„GS®õ»Õ›ÄáòňàpÐÑÔ^Qìvìîý³4™.cˆyù6œºAáƒyêç!“›fâ-8z$•Ó›ÛÃîŸJØvb&ëT QµÒ~êbã Â*jlv4Á™Uµc>ïo*$¡goì§÷S˜MZF­šøá¯›¾goÄ8^ >¿8NncOy(ãšb÷þÕ™ÍàN“ôm¨Iµ²¨Æ†*˜аÖà¿kq"u‹jÊ1E÷d⌧¹¶)»8Ô"ˆ¶q1”‹)õcz…ÓäØNò5u3(çÄϛɌ¿–Û=Ҳ˲¨<‚`· ŽýØ/ì²%Ð76ÊÄÄÂÞ¯žåý-͹íµ[‰uœ•*¡Z¨¶8Ð-8W¿'!°â*j*ªQôA$umO¨¿±Í«VK(œÙ¬•Ùüüù‹|ö4/±éhÕäT&‘Ôš>µÁo×5VWŸ(@ÿ³;/^÷ß™íTä0uÙmøœá°u ®€³àOh©k¹„è:Ûx†“¾‹|5=×Év!0ˆ°c»(ЇaÐÕ^÷Æ×! +-£Úz\Õ#t!DæüJ©5Á #×– '&ý ¹pà3ŸYwNÚNžº„'Æ´ Û5~Ì~`:st2I#yøµf@¡-`ÍâÏÙ´©±Ù e¨q…”!õ<Ì^øøïeÛÖT¤ ÙåÅØ¼MX×T€ V!Œ¿“vþÑ'­äð{ñkê…^,E/¤¤p9ˆªs3Ù¶ó ­î{œ Keqµ˜ôÍ»Èm6†›-»Yúõפ6ö#|}" EçI|P%9dzs·ƒß*,aUê¥gê x”íà³Ù?¡3éGâm̽·Š­y­èc:ó<Š„r>»ƒºu¾\Çi6žyëYµ¾™§®IÄÕœváfta™Øêß¼³t7½zÁ€wËf„†~ÄËÿÌaبQ ëOdD8¦Ë Ò‰è È‹oO·(φâÅ3„¸{È;¬X(ÉNaÏ1y{9æGÏØ`¼.øœ…[­sã7ÉrF/ËZ>´Õ÷ôèë䃷?Á'ÒH¯(b˲-œÜ—†©ªs‹ñÜ~ß úÿíA>Q¬áÄþ5|ÿ“OmÙHWËÞxÿGÖmö!lã7T·»‡¯æôÄŸmÌz8Óßž¸ b00êͨ9¿P{3/¾9€ŠUL~bGr§1ùÓl ’§ÿ3ž6ó¯n_0jùLŽPIYúþ{;}Ÿì~™æãIXÛAŒø›öCÛ&yäèd¼GFòîr¼òÄü§iRú#O¿²‘} ‘ WSsÛJV?a€üoø(«ŠóÖ2Ë'–ÞÏôW¾cÄÜñ\5;4#QzJ–¬`ö½_"D çž{¦1´ßyÜ[ΉŸ·?–i¡•|+8\‡ÀÌøIºŠ2*ÁÉÇ‹«§«8ÊÁ_KÙxð Ö‹HE4¿ñž»1£d£øÀVNL˜N{ûv‹µ­à¼ñ·jÙË©UNïDÕBµÕŽ*œ'»›CÁKø›Ç­ò‹"ïfÛOÙÊšÁr›ƒo$C¦Ï厞i~l;ΜFz…DËÉpmû*V>̳ÛqÛ°*Ž=AEe%‡Ró o‰‡›½}N|d9óWïÆÐñ6¼Kpüô)j2ó(mF°ATÊ6Ï®àQ<©päí;yQÅ»SøeïIÊËC)T:Ó±¯‰7îŸÆ;ªƒ°îytr³zü×Ñöo?³ÛÆ’¢ÔÍ|¿ü$7ý´‘^¬ý4ë†òÏ7þC“šÌx&…£…! ×P}ÃbVÏò6ó¯Ö2hñ:¦ÆAÎʘúÜf\gC¯”Óùñõ<úb+?þš_6åš›®Ãœy€ìì*ºü̾~£yµS!ŸŽûšæÏ-ç½n¨þž»´ü®‡*g×24‰ž#»Á;ßr ×Þ@JÔ©­T*»9°­ŒÍÎægá YãÕŒÖí|ðý=óIç…gÁ÷ÔL_ËŠÇE86‡^/­ tÄÍ<òåLòß àÙƒ(=0—ŸWø×æô°íæÝ6ð횎Ô좺é]¼ûF•-윽“ÄW—ñ¬ù+Mø”AkV²:ÿ}z½úEÃn¢õ-oðe¯<$[Ûÿ»–…ËÓ|ëÞ¨‘äÛŸ)#j˜÷ÚvLÆtæ=µŸI¯³jL„ÝÏÐûµMŒ{ÔˆWшã×±î1¶¿Å¨…˹¿çXÜýÍG”@åQ¾ú)…u[ŽkÔ¡j*àOÓŽmCÍgðrk†M?ÍSÿüK{߯¬!q"¢ ÌßÀ¢¯«yèçôÓŽòé‡KY¸D ™ŸªAWgÇxxÑë½ð,X@õÔïºJMã½Σù ü;Æ%½Óóò{¦.ûŒ¶¥ÇYÿýf~X¸¶÷õp³½êe¡½®wU±-‹Ù»væHpH%¨±Å”UÞ*å9{XðÌd7›Ì=uÀïÌGnñò_W±+pÿŠ2 œ±Ö1™=ñ ÊdÛ¯©Ø-d•có©qÛ³4³–ŸGòTD83;óüõ³ÔÛ¥"‚;߆¹1×>kÿ©:°Ø$Dµ–¤dlV¹qõÿ”Pä9ÔV‹o7f@±K.G¨6Ée€ šŒtŽõipÍmL”s¬§ªÕmLAE²Jî;S$«Ò`ão=£é”pµ'Ñâ½®gƒ¥p`=g³7¶uøTd›DµíLÛF¢æM¹d«D•Ûu[E]'&I¢ú¬~O*Ž÷‹ RÕ¹º/ÈX+äßái «ãlƒT³IÔ4˜»KÅol/Û~½a9\M«+K,KÒY¥7A@“$Wéçç6‰Ú°´3ÕÙ Ó!Ù‘]|# K”ÚâǵežQ°ÛÕ%žkƒ¿uÞc $‹{–E󿺪¥ÌÜ·?`ß®}|¸ðcüüœ4·òÖu©‘ »³\ª³§¦³t´&;d­.cµ¶G¼(h(6rs_pŽ­ ©Fh<Ÿ¾ç2wð]d½ÿ=w·ü=Ť¢©8{k;™«‡³^EÛ1ýív¿‹++U´-oñ¯_ìÔ”—Rb¨`;dîºó^Öñ…pÖÊ j‹ŸŸOÓWðtL_€O?YÅuOŽj°iwž¥¨mÇcÇfÒãi±n]¬Ôøzá%¨¨¸eJV?3š†R÷Œ2v4/#†J«›n°a1›0é4U¬ïÛ¥X©ñ6_x€ê7e³;m¯çÑ›g³¡Ë ä­9ÆõëWÑ·òWÞ|s1?®=HÇëÚ‘<ñAÞžø Pê»ÿÅO;úrß[·ññCï0çû­„Ô¬Á|âþ=âû3áþ^yþYÖy©çzÓ醄×:Rò–°ò`[Œl‰Œýϭ̹ÿ=Þ[aGTŠ9–3Œj³”*²vÇaéN^J¼T”r`õrÖÿ׋ç´E8µ¹ÊAÞÚ×y|••²¢Rª3Œ<óô0<6¬`á[Ë‘ueMëÄ‹¡†KwPÈ6jBGñÂ[“hëïØ+]Žw„¥.ØP/õÎ#˜®'NtÑ£öçjñÈ!¯ðñ ç[¦=ûiº©¬ž;$¸€lº¢ñaí¸ñ™µÜH.ç½Â{sÿƒ÷rSï¨Ëº±4Ð<=ñ¬Ê¥Òªœ‰j³/ 4AlP2[D@Dï(äè«9‘º€´Üf¼ô/F´ú‹õ‹Š¢ÔÊ ÍyÐ׃=6=㥷†ãG9^ÇþŸ6Ó*¾¡§:@°KØlÞxõ¼ŽÎ`§…ìÍ©-[ÙÒ›^㇀ªkp(WÐ1TEÂ1ˆ-œG ¾$xšñgÐD±Q%k„äfSØùŒ‰pú Bâ;?/GéN«Ë4ƒ·Ñ-†°z÷Nò½d¼”@¶ `Ǻvÿ¼“é+\èîŽh”‘nçÚd ‚¦B«>´79çÔ²-?Î%®š°†MûNáß}§2Ûf¿ÌŽ­{i•4€èß-êPk“è¹i^/ÌW jºz}ªÍÓĹ ¬(Ø¥¾ÌZÿ ì›ydÀkl½q6}Õ¤<ÊÈ»›aÉ=à¦ç8ô€Gm™aòÌ,˜“Iï‡ÿAœŸó”ζÍ;7þu·ï*fÿª•lüÕ›Iï·sÅ D":Mä…EÙÿÑ ,y¿”qÿO¢éäƒ*ÖÉM¶cóõD‰¸áSxh¸ë:¿Wî߇O|Ų™3àN2ç­â®f#™õáH×½FBG3kÙhÒ¿›ËÊõk9Ús ­õîú¹ gŽÝš©_Ï w½ÂlÕRƒÍg4ÿ ö¦´íLžž7–@ªùuÎ|ö¬_tà …í'ðþ¬^T®~G6­!½Ûªä¦Äe.äåÙ ØËÈ-ÐóÅ7èð`Ÿ3â] Ññõ¸‰9‹î"Èß²ˆ¿ø€µ¦HòÊBxtýj¢÷Á_ncÏáæÄ«MˆÉû‘ùÿù A.'û”Ï·¦së"„ß_³j<ð(/`Ï7³9 TSWŽ\åO‡®- Žö ððJ>û ˜qïL'„böK±D¤Ïåéý ²µŒ¼*æ¼YMçbnÝ´š®yxù½µü²)•¶#Z^x5ÕJUq1…a7Ó¯Ö€tTb îEÇðdgV£Þ›8³7¾ª„½ÙFwÐ9-æÜ\ ;ýƒÇâœ<Ø¢I³w±û––D$'ÓÛ (`ö &Æ®€®}l?r² •ÕéÇè4ÿªr’¦r_[gÀZ¨kðP“ʾ='ÐÆÓÛ[d½ÃYSÏÝ>6ê@¶õæÉµgós¯.?Z ™B‹!À+ª„#ñ®m/£aDð £­I4¬Õ6dÙJ5ŠËôxôœ@7ð #Qö&#%“ÑÃéÛÖ¥û¬väÄn´ v€ÞŸ¤ƒéš5Œv&P§Ùùõ|>ø6ÅW£ÆîE|_ç±ÅaÃf«ìȈè rÉϵ]»ÆÖ½é¼c{•Dhuc\>t¿0ZtXmÇÙúé|lÌDðqPbeDdUˆxjì4gòóží-nø‚%7‡ç1þ¥Oc§òÚFt='ÓÛ@‚.„²£d·%ÒåÒDœ«£Úp$ÜQ¯«rw±Ë<“÷cj×ʵ¤Lö²à‘ÇœRjÝÇš±ÃïìmT™üéM̾ómÞP{Ökëí”­þ±ýyè³þäüô _=ù¼ü0]½Ú± E)«ùìƒ|F½6•0ݹ9É7¦“*áågže½—FIžíÇM'Bw¶m, SpxŸP̸w§b/báË_’ôÅ ž(fÍ«²ø³uŒydØÙ6}#ü&ü¿»Š#Ö—Al„?ÏÎꥴÿÜ×þ´Ædö¿j¿.Ôû†œÅ?®$ Õ9ùµº,Öz³Isi|¡>³ÛýKêú\Þ†¥žë>¤9kŠJA~÷Ü4»÷ÿ¿ÀùÎ_·3º÷5Ìùê#’»$×eŸº;Ꜩ«Ã¨Gµ¹ÚZ}œ˜Ú>äµwQÍ v=µ3VOkÀÿ›r§~4 US®øB,:½Dö¯ËX¸/ˆ /ôÂOV¯ªuÔÑ•å_OŸoA¨&uÓ×,Ïñ1ë–dŒkÝ!– w(Ú øŸjlòe¢-6KÀ¾DëÄùÕA÷çzõo®zJHX ûòTZGˆàLTp5U`t&ŒF:½³Çct÷‰<Ú½6#z³ŸIcð=×Ò>ÐBÚÎ ¬ù´ˆ¡_=Nç?¬Zk§ìô~Ö-Ø®çõŒ‘€‘J‚‹(‘§3ñäö´ˆaj]pCÀd2 ˆLˆèM^<ü¾ï IDATwqT†~z#^~žx{H8°’]†9&ü Î§ÜæÚlØÇž¤X¦ €”Ë®_6²eµž óîÀk“¨ª¨ ÄÖ‰N¡NGLqÖnÖ~¶ÿqSÓ; °ç§4°á&€Hš¶©àÀ¹ ‰FL&=:½>øú*hå¥ÎÃg™¤éçï%ùõ$ž­ÚPßOS4E=&ÀèÛ’‰/~†ûÕX¿’_òÚsW¿r¤ÌF|B^µA`“Ñy¯‡ lkÙt¤+÷„:¥ƒg>ÌщsÙ"b@Å R²$uÃlÖMÅÎ UÙ¤ú t÷‹'&h å6Õ‰ÃÌýìmÙ„»„0BBS`¾øø;¨¢ÓÞœÃ4À¾ãßܽ²-Mµ*‹}û$öMÀ!m'ñÆÒI ¤±lÞJ£Â\Ž]•­‹¶ :†vMÑ£¡Ò–ï~Ä Àºõeî]Ó¦.ãÙVxœŸ6dÐá_/ž×!Šß[ÛÜÈŽ_¼¹aÎM4ˆéɳ{ºª;åòýg?aéM¿ÄXHìÀ¨@ú'<ðEñzÃe¨Î^˜—@qA`[zÊOñÉÒ¡<=!®.˜Q•yŒ ½Å¥Ô€óºTE©lÃG¯¯w˜Ô­³çe‘ú‚=—½YžtL €èëøx^ÏôÚÈ1  Û­€'vÀC³QZ\D©NBX$ƒï| Cåלd®~‘÷2Z+Ö°ËBª:–ž¢ ï@3>eØuÔ‹f‚1Q#g2~ùSì9%pËݯҳ å˹çI=o>ØÇ0x èt¦³ä«A§Ç`ðøí`I( NQˆoÐaÖ@¬t>þ„š÷’–nÄVžHà™|6½ÎÁ”|zNx€ÇÖîõ61óþrat¨··û¶ªüSœ8m ±S amFrÿ›#]ŸLeîë{i1r½¢5Nì_ɪ²éýá“ôôfÈcsR»Ìü†'>2p×-ÕÌ}/ˆÑ"5„뻞b}ÚAŽhé´ÇëhÛ£î€@­~©}æz[[ÑË sÍa²éî¤Iƒê@–ô¢ª¡hNOŠ„Ýá ÖúxãuzÇjFÑͬÃVšCQLª‚,;lQQUUP‘1Ñ~˜‡v/dó¶öÜ8< ÏÐb¼ ³)²èIð­8—’ß‘X¹q´ÌNÇ´A¤Ÿ€jNãêÅ^˜Â˜›¢‰ _z6?WyÌÓNù©LNé‰ïЬ®ä±F:£Éàì+ÛœÕVTù™Ô:ôzrÎQréB´b¡TCñ‘%ìÅ•Ì(®ê=‚Š¢8@Q‘5°žXÃ[_yaÃW$ ptÍûÌOs›ÕÉyè"šÙsÙNæ÷§s4P|ŠÜˆP"×:ÕNMUÑÔNíYÃ’mM™ýí‹„SÀÚÏ¿%Sr¥D T‘¾3š4'.Ü»¾rŠ5›§èÚÜÚÜɲÏynÔNŽßpê§èAœ&Q¦Õ ‡àWnAòwí+Ë(sØ/PlõºÊ'’Ç/¤ÙFÒÅ<ÐûøÛú:ÿÏ­ +øhš[öJ½,Ô‹n4®ëÊ£ó-EŠ6½ÀSÛ[JUnrd<€§þ¹Øk4 ²ŽQåFlŒ?ªÈ<ø3«çfÒýÝYô lh4äg­&òúÒ‰ e°|ÞJò#"ðÅBÖS(!áÄDúa ‚ãûfµ;?Wþ—vçþP'o˜qw-âWÇ0cçm"5¢ .“Ù_×Ý™…$4ÿÜš†Øˆ–¿4£«] ÑYâü•ÄÁcyíÃ74jh]ðWpËE@´†sÍh„º °óºÓÒj×DÓÜnœåv#¾VÆÿß“;‚[e- ^ +ÛÌtŸñ}pfÚ•« ÷õ8wn>ÿ~ÜkZÃÿˆ‘nx–,¶ºŠ ªdÃWmÕê\í Áý¥=Çß9ƒ8†?èÇÛ}€¡e Žüã”¶ë̼±W‘½w+6m'£ì$+Ú‰ôhߎ°Ú KÕÕ•T[5´‹yô‹hrû½Ä|»˜ E#´óh&üFQ¨ê V¿ó_oµ-RY¹h+ÆÄ¡´Ä÷?¯faF8ö½{è7ƒ`½ÓšªJÛÀ·?l%û¤‘%kttnßn#V°âõO)‰•9™f#¨Û`"ª÷ò½ìC|t4f|èsg ó~XΗ)!Øví%xÐL‚t"U;>bæS[ðð?9²tû ~4kÛ!ïeñ×8KDWbñËo²^jËèÂ=,[¸ VÃè‘¿ŠÿdúÐÌÏ/C kîdlbÃ…Ôd+ùû¿ç›¶s4+ƒo·{Ѿ} ÂJÖ²ìEÛ) íAdt Ø60硈ãî놇5é?²bý²³ô,])Э÷Z×e‰VRYYM•E2Ù8÷}v‡Œæ¡'G' ÈùùåçŸIÏ,cù;}Ç à†Ö_óé«‹Éh¡bÏ?Nq‡‰Ül²½í[ÞúØ—§VÝEb—¦¤ä­ä»÷½©ØM¡2¡¡I$ÞÀ‡«VòÕ±0l{ö8ð‘Èð™Í^Lus¹»sh:á‚í´ë¿ˆ5¯-'Í3ƒ•ôÚ‘n­3Iùn3‹?)ÁóøfÔ–cöLdøýžÌù|!‹<)Û–B̨qQJìÌg¶Ñ{Äí ›éÇ;n´]Òf"×¶÷DgzŸwß Gd!YǬøuGs±dÙNÊQ´ðØËÏU͸.*ŸÊVn:ŠU.$u[ýnéŠ/*–¬µ¼üH1³vÌ¢ƒb¥(m;?ìÏÆR”I‰˜ÀÈnÎî¶•æ³âh,}‡vpñŽ€Xz˜å?§"É…¤l/¤ÿ”.xª=Ÿ=+æqÀë^ÞŠ½4[²ý|nCÿ9“ƒK²Û#Ä®ƒéîr;8*©ª®Æj±ƒ’ËÖŸö]–OæîC4úQfÓ¥‹&A€’#¬_úi!fUEUé4zcf aûs¯ñšØŸæ²JMJ»ž¡£‰ýa=óç[hâ£Q}:ƒâÀ LpÖ”?s{»…1—¬ÎaõüjƒÉË„P| é–á4wÙ´š*c“\µi9)?²hu!º5E«È%]¢[rÓËü•(LÝÇî½'±¥‘chJ7¯$ÌÅÎ7ðÅéDyz ±oÀ™] ÉgHÌ6¾œ»”–*öšJ²K í <Ó·SUQŠDSÚOFÊKŸòÉ\wûDzÆøa<JrÔ³wßmØNjq&+’utïОp[»ÝÀîC'ÉÕÊA7™^ÍNí`ݦ-dgK,[$Ó­ÿM !1ÿ¥o(¯$ëpMoìHL|!‰ÉYõÆçd‡U“zÂD‹Q­ù»­SÅMñ#,.˜xi!¼çMkù(‡ôaŒ¼ñ:F¯^ÀÇ¿,ãÂx"僜(GùÛK©È²ŒCÐápÈníP$ɪjÎö$6‡³"S`2#›-dþ«ßWCÖ"šÏ˜ÎåÎ ÷ ô%À¿œƒëËÿX<`§s’/×-ä­â¶DùHH>m•\ƒÍ® hµ‡…lÙ;X²TÆÏá ÷¤…Ž÷"•ŠÜœHÕh>0Žê#éÙýhÞ!œ-Çcbˆ‹ ù‘©*MGŒgbÅ÷,Ûð s‹“ˆTÓØåÓƒ M|è'­²ššU€§"‘p‹×l#-=oÿ+Ò£Kw¢Õ\m]Ç–=©xäcöŸDÏ‘ ú[3·°fÓ¯dŸRXúF×^ã|;Ì{ó#¤D%' Q’odT§LÖl[Å{sjhãs’Ã…ÁtÒŒKSQEuM%•’L˜IßÀÞ^ºFGÏî}Q·.ã/xrù4k@ë•ÔTWSeS!w%ÏLÿ¯‰S[·„¯eAF3¤¥ëÛ4;•TÙñ £ð ï¼m¦khÇSe"z$ÐJÓÙVGÛUXÇÞLϦ>('·°zcí3«të7äOBâZÑÉ÷ æ¼H—&ƒ²ª¼ƒÔZ£»]FUA’õm |ÚsmË/XðÆbN&Êäî:EÂhfÙ„Å®Ô%*(²‡â €š“¯#|ÑÃè{Fí ´ftü –.ø’^‹P$ž“ÏíÅ{øeÃNlaSàM‡1Q¤­ü…ÅŸbÌØ­¯#ДȰÂxã ~ïJ…»3¢‚´õŸñÞÌ\ôëz—“ñÓNR¡rI(17Ta±Ë®ª|N|Øl®ÕªÉ&£b"46Žùk>|ןÖZ t¡ŒØ‚“ß@ªÕ-š‚]ªí-»î4’$ µ¡M«ü÷Ûeì·–ž–Iµ74‚÷’ùuû,ŽJâd©DŒwG†´û•ÅËS™‰cçNü¦=LKÝ.l6W+ 4ÕÍn™D|ø/¬ûî[|ª³øõ` Qí0ÈU‡ÀQÌzÝÝÏòÀ¸$ük™Ï‘ÎÂw¶p¢oKP%Ùè§Ž¦Sh%9†ùð­P’ Ç9XåEɃiúãJ–íYÎ\{¥[I+ŠAQÎç®ÕU~Ý™Øy.ŸÌ^ÂÉ–*‚Ƀ¸V­é¨—Wßð¦k’DB».tI t‹ ȇØüËÏ;^ÊŠ/mô¾æVzòõÏéhj!i{«<­ &[©æò™µ }‚KÉ;QŒ>øZ:ãë§PØewßÑ€Skxáî¯Lð¦¥|-Û HÉÐ$ªð³H÷nÃ+þ/ßïÉÂR|’-Ž=cý¬|s ¶á×3ýÆŽ²¾ç™éŸa®ãg™ ®í¸>i ½¼„~ÍXr³¨HO'Tåfq5èçÆðŸæusJjX,ª«ª’jÌfÓc·KTVT hj#NþBЉ:4ÙŽªzRhT µ‘Üÿ2‰cdY¦¢¬ é<¯tu÷ºÎÁYæ£. ëöÛy]lðQ]ýok?#ÖÇ:UÕ˾gÖý_uý~Ïìv;Ü~7Ýq O½ú4Z}âs]Fª†³ tíßš¦¡Ö•nxÝýÿµY•µ×\b÷œ_ͽ.ÿc-ä5ÐYuH’$¡Ó‰õ†ýÕÕW¹Üq•©”$‰ŠòrUiÄé_6IC²_9¸¿H»Áfµº•=þë!zÀ«LÍû7ß+ÇdnÅÔY}TE¢¬¸ Õ7†¶¹™ùÔ´v+Slˆ¡Ï š±Ä0â¶k©(M%µÈ)‡‰¿ÓBB1ß«}‚*(=ºŸ» _SKz_7ƒ ø!}?Uþ#yrlô.ÜØËNq²:‚Aý4 RÓ©ì:œ#¤bþÇüœâG‹nCwM4Ž+±ûš wŒüÛ?À ýóÙqšÀ±<3& p{£jún©zŸŒ!Ñx%¤‹³ º*û‘4d••¦ä´ÝF€g%÷!þøœ:~U¾ÏM¡ó™ÑU¦²´‹)šN­erҎӾ˵ôêTEáòÿrŒÖLÖ$?ÀÑ”QÓ&áëÞE ŽŠS/`È ¢´ J:»-úÓ2™žÑa€™äc57¯st¨Õy+ð¡W?3¶Ó'È-¹•±/?OÉì%¤¥ ½Z1uV/±¡¶ìŸÉ&1´Ý»ÔP¼ì'RiÁ„!hã:¿û´÷ Ö?@µÿhžº¶5ÐdÐKôÛþ[ðM˜ÌcÝ•äÓÈ~o)Gj¢éÖ$×DŒ¡oÒ ÖlÞÅqCfŒìNˆÄnO1hç\~ΰ FNâ¹!ùløÌ'É/—è>ðU¦æ×Óö”'û‹JðcÓ¨ühûªühÚq׎j‚€™–‘'ÈÙu½ŠŽ^ÓGÐ%Æ J8y"ò*ñSfsk{@ÃÚ…I·Yˆp9Ò¬e§9z8ÀÄÎŒ;–¶ÎLy•7]&'Ó¥YP½óÇVʉãéÔX$Þþ“Û8š«šŒbNdüÌÞx_¢U¬z¶dÜÄ´c»9¤ªè}à hãfˆA´îÜG`ØòÉ=uœ#EDx„;ûÅ\ç„)žâÙ™™KF™ËvS"hêPiÑþ6^}ÎÀëËRHÕ h^4<•–Ñ&ü§T°dñvŽdß6\7t(CMç\çÂjõœ…Ï/Œ¹¥ß>¾Ù›…UÑдXn~´³3ƒ[ÐáÚŽC=]™þ$´èH¯CKÙyø‚ìCÛ¡Ýè–äYy–ò²RsZcäuƒé-ƒxüN•9Kw“‘£ )ÿýC"|óü$Š^ûž”"šÁŸ„ž7rS²Xè.G8×RϤŒƒ…;©(¶ ŸgE¢¼¤Ù'†övNgæQÓ¾=H%œÌiÑ>ÕV@^±¹y ºªÒŠ‚4X£<ã8EÝ¡óðgé±ócvžô&,éF¦&û>ô~ö¯±#5ˆ#Æ0´g¦¿Õ¨ÓãÑŽ!ýüˆ N`ü}2_}õ3GÄXúJo_ 7Œ§Ïê ì;žCnq:™b4¢ð÷úHlמhA‡Ã®ààœ!žCýˆôу¾9#FÙâùò3”Ì^JÊIO[ÜÄŒþ—^æ`¢ºÝÂØ@3½ƒŒÄ »kYɺm‡I5¤À zwŒcèˆB=ôN>öiÍèÁÙ¤§¥S(ðk;…‡ºvK%ŧUâѰ––QjÕ£àKU^1’(WŒçË· Mb=º—½¥-ǤçÐßå¹³ls ¾íú3pàíœxg)Gu1t8’áMœ…65K™ùFÚwÆQ™Kna1½{=Ío²4å2͘òï!D;lìJÙLh÷GœŽg¿¦tìw3§?úŽ]<ý†`P8¨§é6i9Ud§¦ Øm„ÅŽädÚüºÞˆŸ«n—fNbìÄ Hsé–a‰íi’ØýúCÈV‰éy-C‡&àw†tV*Os¬(Aƒ5*N§¨tú<½¶ÏeûI3¡I7r[GЪ‰é<„ëBÌDÖ2—¥„“ù:’:Ä Z È-¨¤o§ÄÛÈÉãvPuôñf’½Uì¡]¸iJ$I&À@`ÓÎ$îØÌ¾4‘È®ý1*# yçÒÏž­¸þ_\éÚZM!ÇÒ30yøÐé®çM¯÷`ýês¶¤Цÿ†öh/aHöåü¸o?ûåpFüs =ÈÁ¯ £G‰Îr°ªBuI•ºhº¶“ÉË8Ee‡î WS Õ¢ ¢½Œ¼üJ쉑 EseÇŠC2D£ôX:%ÝzžëòßdMª‘ͺ3á–Ž„“ÄØ[ô|·r{ò‚érÃpú·;ƒ=ò!ÀuàòL{»¸ãpZµéÍØ›<8+¬©¤k‰ðÂf gð´1äe“ž¦¡©25ñnþ/A‡WX{†ò&ܯ×=hçËÏ6±·ÌŸ–½‡3jh€Ò€¶O“_*¡6õA©pæ ŠÜzÕ˜[Ñwâmä|ö#‡SD"›'Ф}gbÃI"†&ô`&2BdèP…p³ÑE™Ñ ù÷󽲄cÇõ˜›ÝÄcÝcQ³Û2d€¿O¢MÛvÀ[ wŽ¥ÖPØŽîÉñxÒã_7±oÞN³Ñ¤ÇDf†`FC@Ô{Ôl´ÙE’’¹¦Œ.¿•WüõôMú–µ[w“cèÅý£ºd±û3Üžû&߸ñs€ÙƒX›a&ºÓ®÷ó$ÊДjr‹=iß9ŠòÊrJhʰ‘"!&—uç݆ѣÁŒ€1¤=#†{`ÜÀ‘TªÉ‚OìÙ-~´š|Žå{Ó£ŸR^&Õx‘‘‘‚ž¶wÍf|" xÙ®+¾Ër(‚[tgØ í0‹$„5*/À!‡3pÚNçç’qLC“D4|6?§§¬½ŠùiŽI'°iFŽOû@@ §Ûuƒ‘›EâØåH†œÅÏ#¸ãßÏRòÊRRÒõxùµåÖ»€DÑÕ¢Ÿ¯¸héU 'cc5¡y HK­ÏÞ ÆöÀt²·Bh\ù¿Ä)ݘùû7íÁШҙ©=œý Qò—JRO bdù¼‚€¢[YIÁ•Î× ÛW8×û3¯‹ Þ‹ne¢5Uã­WÞà½×ßùŸY‚^zóþ`òòp4P낺jÝßÎߪÛÿ„ÏúíŠvjnYÁ ÊîºEDÿ%Ÿ ÐØ^¡Qç6âþ*½N$ãD6å•UôîÓ•ÐùëÐÏ™K,#£02‹BlÄÆÅþÉÏ¿NiÐ(á¼gáõ'ÏÓÆ®ßc—Ð’·&N¼°yVeläó76ÒþíWècºä°Òy?‡v^+z>ŸÓ.`kyæx¿5þùÎïâÆø#,ÛívŠ‹‹‰ŒŒ¼Hš½”ùÎÏõ™ßžÑùáó\÷—––¢×ëñõõ½d®qÿR)½ªº I’ ¾Hº©g‘ÑK]g'H’Dii)‰l<ß¹©ªJnn.ÑÑÑ—á{¹¬cdegÛ$ö"WéÒùðRž³¦¦‹ÅBHÈŸ—G\‘þ?n?LžÕ„!+Ÿã½ÆñøàÖø/=œ——GPPF£ñ2¬lCÿ1f/ ÷§N¢IL“ßÿâ¿åŒ;/@€MÿVTë999DDD Óé.bôó×óvK ŸNy•¨O?g´Ï…®_MšòòçÜÜÔxÎóbåC}«®Ëg_]¼Mr©ºýâµàý¹¯¬½0¾¼”{Ïg½¸€•¹Tsq4dÙú&Ïmöeø¤[küñª|Âí÷n§õ¤ž$tËäÎÁ¿kýml_ÀGëRÈ9`ãºÏßf˜Ï¹ñqqër>w].¹ìšÿRÆúsl‘Ë5Ëó—5—>ß³9ïBƱÁÈÊÎ"""’²²R zƒá¬ûj}>µ>feõQ¤·>@-+kø9 6+ëŠÃü?ÌnèŒÓ‰:üýü© võ€l„Føÿ (øÛ ”B^åc<ñøÃÏz¹ZÕ‹n/=:DDt‚:tè]¿ëþtè]¯3ÿ/h¢"°}ñWMm¨ IDAT6Þÿ þüúÓ^{æU^~ÿUg)nQpmøÏñÒ8ÇÕZ#¢áÿëµJÃü_í¦K#4B#4ÂÕ>>e”UTœ÷çÿür×Ây}û…ÌBÄ¿hžG3Ø'„hñBç©¢ lF¯qMiaºÐ'¼´ç.Ûç„KøÞßÿB(îÂÇø£±Åój²)üIó;?œ 4£óÃç9Ç„K®p.þ½TJñóº8I%^6úA/suá²ÌÍi_®ïý+Çø£Uºt>¼¤'E·{<<ñð4ã©€Ò´/3µº,Áß‹§ ÎKv 2}ü1· —ø-Âo¿½ݼçKß³Þªç &_:MzŒ>3¦LÒøÇ‰¹ààï¹Æ¼Xù \Ý\n›äRuû呯çkuœŸ¬.a]…ËÌ9Â…YEÁÎéì{•ÈÜzC$±1Æ?_‡Wtî˜f"W4ão6ü¡=öG´aô"²IZuiA{óoãC¸Œ’ërâò϶N„Ë$þ¾}öÅÈáOà¼KØO^áúùJ€ÆÀÐЗ )å{Vž×gýðCDppõˆˆu!]½ Gôè0`Àˆ# ‚Ú—±îe@¯9ïÐ):ò·æòåôÏÿ'×`á§_ŸÐ”i3§»NhiçÞö7hè[LL«{_–Ìy®Ì=àÛðÝï_m„Fh„Fø‚@aaáU6eUSQ…¢¢¢?9c[ijYfM¥¬°ðõ€ ó#®»€¥°ð©šúM;ŠªüE´såãÂî°# `³Ù®\‚€,Ë(ꕵFµ´ãp8®8Ú©m}r¥Í«6X~5òÚ_E‡‚¹%½†µAÕeU¨—¼÷¨II‰³¥ÔU(ë4M»biúJ³›jí¢¢¢"DAüq& ž$óÆ^XÈ…cA$þš&¨EEi­¡ß$"[I!í÷÷l‚N±ã5 Õ!]š,Ĩ¾LŒÐT{I!…LÙÿö7g+¬¿ÀÐÐ—Ä <Ÿê,âìÌü­Ëát ²‚Ý3}u‚®.`ìþ5W®°ª£úD%ßÜ´Å®üÏ®ÃKOªêùûï»%ÙM§÷Þ¤‘M/$t©" ¢b RTTEE±PD¤KEZè}!”ÐCOï=Ûwï}þØM% (_ËóÛ/ Ùrî)sfæÌœ™q8eÈ(›à¹lèÒŽ_9rä’ÝI,åØ -l¶]º3vhÜÈ1lÜIóÖÙÀRÑMl©\9ˆ²õÊ;tKœ¿N‡¯N8ñ’ôŸ4Î[mVò òqS«kèÄCÁl±PXXè¤Àd4"—Ëÿus!J"’$ýëúe6›1 ÿÊùÊËÍû×Ò´››ÛvØl¶ÿ,¯È“ÉQ»¹áòtdegýkçþߨ7e înîÈd2œp 'œp‰ÿpJ}'œp‰¿÷þ-úMæpß[÷·(A´B²§‹–Krä6[_ˆ$ýRšsr‚ü^ô<¹Ù9ˆ¢X\×—RîvA°»r…2+cwÆ—¾¬]¾òdÅuSg© 'œpâÿkü“ðýý)!ÿÚ,9¯ý«ˆÇ9ÿØ>úï÷ë_Ù7'IÿèPú§ñŸÔœÉÿk¼Ó¹^Nüÿ~Vú¿Ð¯ÿçýoqt'7sâ¿§Ø 'œpâog¼e£KGËJ9åå"Ë¿&åÈmrŽ~~˜ë;b[ I I¼:ìD›X”Õ$釯ÝÓ[âø-~½ØÙ[q¼0Nw¯N8áÄ?p˜–þ'íK¬ï‚õ"‹çlàøœ‡î— ¥sj×F–þzñ‘õóï5¨<º5|˜~ßï³Òÿtͦ-éo[é_×’ô7séÔgéÙ/ÿäüþKìñ›Ò¿m¤’‰Œ+‘ÌøöúÿÐùâñ=!îžêׇ={ðãùñ€2vòÑG;Èpªb÷•W÷ÿ|W2³…¯æÃx}ÿ~ÅG“¶U¸.V¾Køé\•Šž-þKäæÃÐðºä£è»(=š¹¬qìÙð+¿î»…õãaÆ[׳áŸeÜæ¸‡”,åÇ,rsÍ„tíó¯Íå”áþµ¢•¼£_ÂÓ¯¼ÅŽÄÿM@Åÿ¬Ò¹õ[VþÊöãñ½Öÿ¤ÎñçwÏ_á„Òîô—hÕ‰Áév 'œø›Qän,Ž÷de¢Kœ¾%Ñ¿ÅN_Gê確¿ú$'fsNjÐ=ɮȈ6{ŠÀRñ½¥~*ý·ô¿e£€K¯^É¿÷ºna'œp‰‡À¥yÞóI>Ù—WЇZI¼r˜_—žÁPæˆ(5…ÆÅ¡=ÏêgÐ=4”Ð`"~ˆùù›Î‰Sä뇿Ÿ†ÁŸ¯ãr6d²m‹ô öÅÏÿ Ž,å j1,ü`Å.][.—ÖLD£ÑÐûµOÙvÃZÜwóÅcÜU©©ÞPÇ–1#èâ‡_À NÙD$@JÝÊØÐ ‚CC‰è7”oO[Š¿+¦Å—zEm'M¢¿Ÿ?¾†}»ƒ»ù Èú—†Ò3$„Ðà@Bçž¾ï8+á8¿|z.®ÿš‘ Í›,=é3u‘ïo'³Ü«æÔN~†6\ÃvŸ#¼@+§Fr3ÏhŸÃ¼ÝLèFHXWzø„㦊$¥«[çð²FƒFó: ÷߯€€@:‘cŸ§O°~Ó9i¶:Öå2³Cƒ íFÿgV“€€€…Œky[£Aã?œçŸ¢|Ž÷Ãü4h4ïy3 Ïò§Ÿ$"4ˆÐðy\ù f”Òc–*¤í|L¤žœÏ3 ~}xãóÜE@ íâOx.0ˆà° ü4C˜s(Haõðt "0d+|¾•ŒëŽ1û=ÃGóµèàú6>}­~!„†…JÀ”ß(ä+žîKDX!]çÚÇl3seÙKh‚ #,4”gÆ1c_òŸÒi, y=( ºzž΋¹{âgÆ„Ÿ¦/“#‡¾ËS4šØ“VP]ý -ÛtŽùoŽ gH(¡aa„†…8šõ Ž]ý þþA„††Ôo8ïD^$éäFf/Ž.Þ‚ù*k®å7mbqŸ*\ç¿h„D-_<ý$á¡¡„‡òÖ¶TÄ“ßÐ}Ò>ô޽‘rr9MŒÅBìÖé ÒøáïïË q*U|Dº§›;fñz/ š¡ÓØq-¢ç2|@7BBC bܶLÇ:oæ½w–ðD1—kGeÞüß>“!‡á§Äç›bÈù“}JŽ=ÂúŧsQ´ß2Ùýóoœº”ê0º­Æu~z?’$I$D1š~ø‡ôføk›H-Òá͉ìýñ 4 ý&~ÏÑñÖßElÆ<Ò2u€þÿÆó¬5Ž]kV°dó,÷ݱ,yó ýÄÊ+y®õ¿x@ÖRRóÿSkp/ ‰Ýý=¯„ŸfŸ¬;CÆÖ½:‰+©—Ö3A£Aã÷,Ÿ,:MA©H©D~·˜»9™, Ü^JŸîᄆ…2aKj uëóI¸t }›F.­aœFƒÆ÷y¦­†˜ï{Ðçƒexq~Ú VÎ:b_ \ÛV¤‡½Ê·+Ћæò ÞÝBj)]$gß§h4z<ó‹ÎÙÈâÔêO Ñ Ñ âóugÉ.žc»>wÕpžœ°ŠÛfÛýõíŠ%'9Ç¿ãÍ y5AŒá»—Ÿ¦[HA¼±)ÁñÉÓÌêa×B"0|'­yi oi4øùã;òVÇ" 92ë=†økÐhÞgÛ_»?mWÜ=3¹yäZþ~ÇT)&Z<ÏÂÕ ùÌÏÆžo†¢ñ "4,”°`FÍî¤8Î|?éŒ9¦ƒ¾`ÅÂIOŽåArá Ë'¢_× ü4ï²éNæûÈ=CÁq–ÌHâ¥ÛYòÍÂjýd•-ž½Ö²ò·ÛÀ–ÌZÉÎ褿ÎëEù¹yäë-þ\þ.Æ…†FDïÌ8ªû‡tŽ’3ËêÏ#¹‘c°ŸŒ·¾MX×0‡¾Fx¿aŒúåúK?3\£Á/ 7¯}º;X>MÑ 5´A!¡v~Aø×Ç+ÌíBPXO>½œøò×\oØÅ‘“ñXH`Óø‘ô %4,˜À€WX'Â=ûy:Ç Î,Œg `'œp‰¿ûÀ\æ÷Dÿ–.íVHr{ÚgIŽ`…]ãw`3Ûœ“zLû`*ÁÝBq÷t/W¸”ÚQ|ž•*¬õ[¤VÜ{¿¬|-`gm`'œp‰?Œ˜y¿–ËÔƒ»èbTöZyb^»~Ëg¿© {m2ýKñØ´¨/Xt*}¾?J¸´•¤‘?²Zã»k*¿¾õ ›Sç3°æ}ž™™ˆ­fžûùS¶ºÉÆVstß t²¹Ü|…yŸ ŒšÀ³?eׄT ñkGóô¼køø¾Ç0s×ýÀ”ƒmY¦A#½™ªäH•g¢]‡æ¤¯û„ëáX8½ÒÎqŒ˜sŒýo!»}*ï&ÊßLVʽù9‡7N%X ù¹"*¥;Í«éÉnȘÓèÞ,–Uo¬`÷ÑVŒ¬Eò°™,é\Êlšð%¿&vfp]¡”±5“£ _åÝ 6:ø!@îùHÎä[y~ƒ–'~dü‘½4¯=„€†÷LQÊÆ74ûªŽRêucúU¶/Ç>Âtz¬€¼œL4œœÃ+Ó×qÓe8í!#“È#é¼`+ÓkÚÈ9<—>ÝM䌔~rîå]D§ä0d­–¹i‹y÷P-š¿JóÓ“¹òó¿Ð Û=žóޱ÷ÎÍ{ ÃÇ{ØÝ¹ók&3v¹†È'£6Ñ~‘–éª(¾Û¶‹Ñíi]ÂyïÇx7rc¾àåè0f0¦ ¯“8rBª‘þëXF}w†Ããh®ì˜+¦m™ÚÂÔóìLâùmZzÙβú×Ý,X{/‡U%/¹:]_ý’nÃ:ác7O‰ýSŸæÖàïXQÏ3³ˆ˜°™MsR½”“Ÿp”-K6Óa‰–YUN±dý!¾ÞâÔþOòÁ¬0Þ±IÈÝ<¹µt0?(¶¾óqÏýÌú°ª¸žšE·"Ù2{ ŸÇÞ§D¹CÒy¶¬ù–žÉ©ÍïS¥À&ÇòæÜ§¨W`BáéAúîÉÄ4Žàó­ó¨vüCž[~˜ot§ºÇ_¬EjÍ'Õ5˜÷ô¦S}d’’WOI›Æ2|N¾9EG£•ü´L.îø…#•c,4—Òâ,è õ(Í6Àxr/—_ç¿|¸ÉÒa«¨1~>ÚUE¥8ÆW³o#›ô:ãw÷dùµp^¯—ÅéCð±*g6ðË&î<Ÿ×56n‹Ç—5k<‚ÞÈiÜcó5Oðõ׬®ÏÏåÙÅ6Þ˜½’'ª{£t‰æ›àŒ—60§½ÜÜRš±$b1é(Ì·‘'ÔDóÜ—ŒíO¥\-ó?ÞÃVo7‡7ãVDó‰š?†)[]5™Ž³ÆFòÙ—ß²'9˜É¾G4ƒ@þÞ) Eví×èáè”vÞÛÈgeë¬ùš÷Ö?Ί! ¢~ø‰Ué¬ÖΡŽAB©ú7ÄDeÎ'å÷•ôo,5£¨O÷¡#Y9YP ¦8.d7`h—:¥x×߉‡¿–+ {ÐXþ°R˜íIÛnï1ñ“^Ô.4#¨Ô¸>h*Êé$KÆMg÷¼ç‘m§ó-_*v1û·Ý¬<Ùˆ7|«b¾¸š÷¦ÿȉü^|Ù?ÈÞÆŸé1ò.ã¶n$ØUŽÜµd§[Ìú<mÚæqâÈ~ü—j™)meæÎݬ?ßœ—ª^Åü _¼ö8ê]äÇËÙÜ®>Ã:Wň¿a$â©Fñk©óù~æù’x5ŠUÓ¾!úûá¸[]XxŒï;ä£]ù WΞ ¡i7êÉKÖµ`ß§ ûr7™5FáxõÔÜñ0ýûÚ¦pxÍ—¼³¦«Ÿir Y¯nbÊÌÙìK eJ°¯ª.l%ùwuO“NIÍf/³pÙs4*0‹+*%¼ý­ãŠåóSÌ6y JS^ÇÁúù>öwÌãnÔB^v˜-“[szÉ|æ\òc¥öêé%ÔnfbVn£°õ`¾{w!Ín.â©eÛi[(OTwG†@ÌÜPæ„Q;×®»aÌåäâQŒÿÅ@»¡ñ t|»cò²VËÛVÞ]¹ƒM•3´CÍRQcY;ÞeðÌ£›g€h&gï,Ï©Ì|íQZê¬(Ý%OáJZ>Ø­E“¹I+²ýtMFË÷ñµðʵ!:R’ߣoßgŸfXÈòýÇH- ÁMáf4ÒÓ3Xüx]jU>ˬð/Ùðø<žn`Á˜ÊçÇ&ò¸Ñ‚(sÅݔĭŒÚüpŒY 8¿e3.œàhÚ%®TkÏ‘_ÑàìT^\¶¯¤aúÏôx¡bÚ®J%rdrÊÿ ?{€à¡U;àßm0ý[É€†4hèg•SÙÚ‚¦ëSÃꄇÑòv2ÉŽ(‘zC~`ï’Q40Ù£OM¹R󭌛ó-Q¢rSãR|¢Jâüa%jù-ÎíkCËu©æ-£^x8ÝH Qü>àã®n¸ª½ññiJÃ&zŒ€BÒâãH8_ƒÊÍ:Þ›ˆfr 1š¨P* еŸn ©SÙ µKIgjS³N9í*Áo.à§ÏúQEgA@Ç­‹Ì9OЪ>xvêL ZÀrŒOú½ÎâèÌâú5ÍãàŠ×ij±ϽXÌé]˹í»I•0Ze¸’ÀæÏ>à³ï÷‘èø Úw«—}Œ_M/H€ˆQgBé퉛—UZ4¥I¡\ª´<î^Ñ£Kó¥m#ðèЉ6¨±êŽõ[+kVêÞu»vå±)¤ eïšž„…«qóö¡e`õ®^âFÎmnž Ç¿¨7£mú¨ÒŽrXë—²5k@%ÿZe›È³`÷ú@4~UðöPÑ"¢+M¯Ü&ýOÐqù1 жJ¢ÍŠÙ,áæÔªMÝš5¨n09L4 \ݽðQªñðT##žXm ¾~Õ¨äåŠ*,Œ^'®s·Ì“Íè ÉKÇ¿ P« m|ªSëz™¸ºyàé鉛x‚Èíx²»š”Ë]ñ¬‚§÷ð0z:Ú”¹¸ãé鉇›•¼[¹v·?TÆÊ†Ò†ªpqõ¡råÆÔo¬sз ¥Êo”¸yzàBgöפzåfÔ«Õ‚ƒi”EZq”÷_4—*\ñô©„·»žžxzºáB*Çöyý—IøËU¨Ý=¨Ñ¸!¯¾B £kJŸ€=½¦êÚ~0£Ï¯KãU©ì¥ÆÍ­+Oò¹šÐ¡¯paþ&nÞ9ÄÞ}y6¢¦B*u}UAñƒD éòèÜj2¹ <ÜQ)\Q©.±þ»»D @—5ñrW£Vññº7Ðí8B’LŽL¸OAR펧L†¬r=êªU¨,·®2¯ºôxksßï‰O¡±8RGÑbŸÏûŠ!Mp1[‹WÂ+b*;WO¤½Ú~G”NrpCƒå¨*U£uçÎÔ¸Gjj>6ŸJŒ™2ˆ¦¸ V»¢øW(÷ ñ[¿ FƒF3˜iÉE@¯²lâB54 š¡ßq&ÛðÏ^;µÆ±{íÖ®ÝÀòÕÛùaÊ(^lïßÛënaà‹†|ËëVÞÒhÐŒZGJòz^ÔhÐhBxrèrî<Ò)Ô“xh1F¬â.˹u¿°ø«CȦÏ^!L£A£éÇWûó0ùÃm¬Ÿ‚Ÿf*Ǭ"·YU!!k݌计c=%2šÓ´¹„¤e©Ïr`Cc7”!÷ŸÄ‡¡®(]+Q¹J#ê5ȧн-ÃF0¬ƒ Cª 2“nå¼øžáŸòÛª‰tpsuœðOp`}oº†(QUªF«'ºPãjfò9·f&ïŒÿ™Ë6;cP´Äôïgò”¦.›}ϵ}ƒw*Ð=Í×W2:b"QŽ¥d(\܋垛«™L‰ºŒ|nOïð6x»—^¥»\?Õ›®!®¸xU¢z—'8uƒsùz WÞürÍQ¢vs$,F(ÜðòZ6¥ Ѿ6Y‘o0¯ê<ߢ¤Ö·ÊßW²|ú ªš‘0™ä†«¨¡]# iGüu KËEWŽ^*÷þš}«&ÐZìZžEäâÅ$&¬G'”¨ÝÕ(«ÙŠMRàá4i@#ww<ÌöHIÃϘ'Žç“炨¢*Y¬òúvE°ÝØÎúX:õG·fj¬F=¶æ/3¶GTSá"Œæ™1;†*È\ñR¨póðÄÃÍÁ½6MB_áÅÎ ™ KŽôܾ䗪% «Cå€@Zgæ“k9·ëÂ}h»Dާ^\ÉëÞüìøœ4Ö!ïø\^níÍe1dá³)ÛX;³+šÉ0ŠÉ(o }~â&"©gÖ2aÌ<æ¼kÿîS¾&Z'psÓÇ|ýýj.ç ÄñË o³è`*èŽðaïpü}}ñíõ%„²®bÉa}Tº:hÎ5‰+§-¸yÕG¥«ƒ›â±?<æâ+_@ç×Í[c~⢵œU«P*U¸yz£ÖE1éým¬ÿª+A¾h|}™u$Ó!¦˜Ë™¼å<ü$/}½ƒ˜CßÐ_£A£yŠI ¢1qƒ_~Šä‡)#xªÛ¬=´†¦-`ækáj4L?‘ȯoâëÀw盞s †Ùe¤&˜Á£à}=+~ä§/G0ðq¼8i5ûb²8Ë7Ïõ'PcÏBs@oƒôM¼>f#ëgjÐh| éÑ7Ð'²óË޶»2jj$É¢»]¹ ä<³ŸËw»oQPF0[0èÒ¼¹;nî>Ô¨Þ‰outÄøÖ1ÞLøæ(zâøuá2Öì¹…A”/¦¬ãÂÅ Lš¼Ý!«>á°UN1ÍAs¡=°òdŸåh/Œ‘®&V¼W¹QiƲbéëú š‡Rmד=ÜqÍÚÇoñÒJXQù5kQ»V jL÷¤º䮸¹{Úi˼‡_6÷äÅa±Ú^t wGíéC•@?‚OÄ–;ÃØ!oÎ{ß|ËK½ZãZjßK(q÷öÁÇÝî¿Ë*ØÏî*gDëCû!œp 'œø[!×ü-ª,¿'Ò·|ô¯2I(®ý‹Ub÷;;“ùðÓÜè uˆ¢ˆ(‰Ž³P6t…µ€K³(]Ø™Ú 'œpâ¯á#/2Ûa, ‹`áåÒ'BJyÉ…Ë¥õü-Ò%ì)Ú79—é/ IDATvÅR\¬K†LÈeÛÛ¡h4Û ÑNÆïwŽ>ö² €é*gò«R¥F]ªªJ™š*7¢ÙåxE»©C)pQÚ¿#úÂcl]±›Iö¾;ƒ£EžÃ„ólT•*õkPÉ*! „j ivñ. ’‚¹H Iç8£ÇÏ (Hçvn·;QÏ~ʵ÷Óx“… ¨W«:Þr ìú ~š_érø+Š“+Q:²^Ø¥¤˜º&õS )È)™„ÍjÅ&•ØAŽRQÊzªËàô¦™DÕù˜÷ºUÂhÍŠØl6l¶rf:…¹`w›ITgؒ׸ÝOƒFãG÷×¢8m>e­Õ%õ“TÕ©“©GŸ‡YÉE¬ªhv9ŽɆhsÌ 2”5êRïÂ-ä‚(³·¡ð¦Š¨DŸF– +qTyÔ¥ñt²ôFÌ¢¬ä \·ÍÎÝ"îÏ’sñ˜÷¡m^u:ÐgT+ÖiÐh†²$ZAÏçÛÛme^×Y7óÂ5úNÛEš y‰ÉG]º†4iw“¸”rÚ†`Â`L"ÍàEåšrîid—ÊFwë×Edô쌦v ÔÄ‘˜du´Ù€&mor§”×Û˜‘LtôoT{yÿ´’[Dß&ò“¯pÑ-”.J™kÑ?§¿FCĘÙ϶â"“•èVÞ hr#™T³å¯;€j<“72a@W‡±Nƒæ…U$$"ê|SšÖ-ÏdÒìó£B+"†å«¡h>ÞƒÉêpÂ"CÕx0½g2}Ñ5Ÿù*MQP£ImlÙ3ÐwóOdØy™ð¨µN drd)ñܬӑÍ+SÆ/Q¿1MÎÝ$Nø}·ˆ¡$_á¸Ê†¹Š×Žþ-#²{Ÿ£TØiìž×K;ºD(â2%ªÊ5©uí"—r¢‰\°–±¡vºxfÊRbrÿf9¹BÏ­«ëX¹4‰×·iÑnkÞ!¶\ºÂái_[m8KiÑîŸFX-oä6ñÎ;$!ÚlØPÂÍ5\uíÍG«µh׎#þè^¢Së2jùXÚuÇÚc'Ñ.ªÏÏgÓv¡í±­Lî~‚·_{„l7ª´ "¬ÃVŽÝ “¸bÎ'/È“+ßí¡ áh6jµh¼‹aß!.&æa97ƒ‹m6rèä”rˆ¹MóiZ´Ç÷0³_ _|ÅË,ÇÕ=™ƒ›> FCw~âT²øy¶CÒy¢ÕáøÕ4a¶9¸³Ò›ªV9Š„´’´¼edÞuNF]åÇaÅüöë¢êVyWÎp´O0‹K‘ÜUV¦ºQ@HÊ$—’(: NrÀô8í븡€Óûøu@(þ¥û)ÈKºÆe·žp0•¤c í?‚]•;Ò¤†*S©@&”h’èà‚UÕÔ¼r—$d6«ÕVvo)Èeå笼î)b“DlÅ—ç”®¹\‰™ÅS ]_ú˜­×˺OŠä³oíj÷FIŠwHH·¯©RU‹:Í.råÒ)¶,‰ä®öy~ú½yœÊv¥ó¨ç¨³’—44Á³©6°­jz’µu,“to±`xÇKeôD…BFQ” LÈ#/?@5ê4)DgÎGo»×Î!SÊ‹ù²Õz”ëOñE/Mq è- †t§sƒ4¾ÐhÐø¾ÍÍ*-h€ùð ¦Ä…òΠ.øx)J9|ÊêÛÁr;ŠåGîPÃw$¡mÔ˜­¥\œE²0ë0QR(õì¿[Ä_­ÑàÞ›OöØuMÒcÖ0!dËs3èÕ^Ô*4#i$žui|;›ë Žî½V1m;äLnÜa6-ÞEè:-Z­–Õ³'P°–+¶Ž¼¾H‹vÓûè/ŸâLr6–ó_q±ù*¢ŽO#Luž™}gÐtží‰}Ì͘yѸYSȾ£¥îx-ÚKyº©• ÛciÚµ;…r+ד w’míºÞ%EC?ÂeÌ:ž8ÉÉȉ´•œ.'FËkÍzQßlýc.%DûàrHî‚tf:—ÚnbÿÑ“hçdÝÂõdº†2iÙX:ûÌÞÃÛ˜Ö-…u߯òòV-Úcð6ìã—Ci¨î®áŠÛP¾Úú#Ã|ë";q¯W6qtñ ìzû#Lïáä·OòË‚dÉÝèøÚZ´Z-Úkx«§‘ï7ÄQ­KW"ž}•—Þ[ÉæoG£©"ú+GF^ølÓj‰úDÇäÙG°Y%¬Ñ_®E«=̯ïtaÙÂèÜêÒkR¤½í]sl”Á¦ý7P¹È)Êh³V4]è:xc5~„Î9k—õ2 7"Y4ó #6iÑn}Ÿ&Êý,ÚyW¥€(IÅ¿mV’L‰xvº]VøŒ`Ek_‹ò;Íܵ^.;ùù/¾ÖjÑ_É Mì\q¶âôÛJE…¥îD›ãëçâòÖ(½£ç˜öü¬A£Âüã2zìŒë–úâÒoÐDR‰ Ý!!Ù¡Ý(êP¯ù-âòî§[+PÈJÛ`]p÷:δAÝðÕh±4«ƒQÜ»Ÿx8MÓ 'œp‰¿EõKÁeS>Ë‘Á¥ÂEÎ`AÙdÜÜrä3IÎÉüÈÊÈdÒØ÷ˆ9wžógÏsæL4ÑѧÑjµ:t˜¼œÜ £€‹½eÜÂ÷sWü»N8á„÷†híÇ<­ýðºÿ§—8;v6—*˜ >!‰kkdÒ?üBßá·} ˜8q Ú´BD|è;ë Zm_kF²6ù7n.§ iœÚIèf-—¡JÖ^¶Hª<á[¶hµhµ›xöÆ.6EyðÊÚáÜþt(a~¾øùögö…&4*SÍ…š-{ðìWfÛ#HFLÙÌ YCj¥è3eý–fùµÁ‹V¼±i(WÞíO°Ÿ~¾ƒ˜{¥MŠH%iöqìʆ¸þÅ9°“¸—Ÿ'ÇÒ÷£T(h2†¥Z-Zí¦>fãÜú]Äš]PÈJï»G¤CY ÔÌœÈvcV‹vùêÉeж!uÿEœ°ÅÈuì>¦E;ô&=Býðz¹‹ šgÆã®ðcP ûg=òÖr-Úµ£ñøíU4>dÓ…œÿMÇD I’îÝoÚ+2*},;æ¿NFƒæù´ê;„瞨ó·žÊô\’@±˜ªÐÎw›µZ´Úµ<%ep`Ë)rþiB@0)ÌwA0‚nÕzMikrE¿ïG*‡ãÒŽ*ûÀþUgl&Lµz؉Ʈ@õ:´tU¡²W½/Y‹Ä8îtœÈó¹+MZw¡ÎöÃ\„]Q{W¦~ ?ökoaN)Àúµ¯C¶ñ4+~K/??|Ã'²cßyŒ: ½Éð »³Q’ C7«r?LÓ˜›$ü§t+OÚô_´Z´ÚLôJæøöc$ÿî­š¤ÿÔT5˜ï½ˆsß}oÁXÎôÇì¼vÛû\s:§Ѩçꙃô ~³Åzïî,#£cYòÊvZ<ÝæÕÜ‘Úý›x*´ôµ>3™q{Y>õ}'G8.•Ȩð*?_CŸ¼Ý,ùvqYKrÔ ·âA‡0÷‡Q´ùÝ\àåuOê/°äÐlzx¨¨Óa$?iµhµû™QkË6k+/Ÿ;PÍ«y—[ ž'Èßÿ!s¸pa.ϼ³Ürº•mįÅÞò× ñ aì²ë¼ªàù»ó ÀËm„C¾ïç‡ç:r|úFÎÜ>ÊÅ 3c÷kÙøQwÎìãBB×b“¹½â=wóï×DŸ›Ç³¯®&^ü=®&’–šÈ¥_W1óüß`õÖ…Lýt1Q7‹jQŸgÖÓ»~w0õåàχ°wý[(§F”ÎN35Û?ÜC[x©Ê~ž¹œ«Vu©l=Y0c,ìZ!mÛ»¤#7)‘¸*£è×°„Zª…à@+w J-š©Ýð°16¡Á>¨ä@Úmn¶{‡º‚œ†‚h²y?ǽêP·ËËô® ¸zRµj êY,àÓš€–»Éœ:uM‹zT+È ¶Éh†ñ°ßåÕ‰œ;O¡­7!õÜ1[Ä{Ï÷³P’úW¨BÇa“ønÁk´{P¦Íˆé±7y6ØN½F´CB¤¤›€]žYÀót¯ÔiL[³Ý™ ÜhПîAíi¨,,-‚ðm †ºuiÓ¾õ¤zi'IˆXÈ<5§44]ñöÜã(ss°ç_,ÅwdrÉqܬ=„^!uñ¼»ñøo'8a1Cû‰<ßÙÞ9e݆´%$ ‰ÝæÈÎÑs?®ˆFÔ’+ÈD:2ñ—y«w3¼Ê­…æÝãhµ'ØÛq;M0ý¿?ƒB&¿Qô©T¯Gye¬§/qK©¸· Í„¹Å»¬’ɇˆÞedç¢õ°bM»Îñ¤E<çç‡_àSLúæ7’ tä?Œê|çVí~†Ñ}}°dÅslãz7j9´j<µr÷²qÿlÏyÛY²)Œáý!ðïo{’¨vþÒíUV'·¡™÷íI#F¬ØÌA­­v)/žÉÚ8+Â}÷³Έé?uš°a1™0‰rÜÜ\íÌD²`ЛA©Bå"GÀ†©@‡©”*w7”2-z ôd(\Ô¸«ˆf#zƒ .jwT.V½£ÅVÊX!CåᎋL›‘üB“]qR¨ñpS"‰fŒ,(\T¨Õ.ÈD+£¡˜Á+Õ¨]䢉©ø"˜‹»*¹syÿhÖ¡3Y‘$¡LS¹Êw—¿²Ð6L…zÌbIÝ'{›² Þ6³‹”n®¨©#aÑ`pœ \ݽp•ƒdÑ“¯·Øo…ʨÜìû§ìW­ô&Pªpu)¹ùmÕ ·Š€+î^ª ž-a3ÐÛìûøFúfÀ„=œ p¹Ìáüd¥\ÀB±“·èOQÊg9ò2Ñ¿ÖB3??à$ò‡@ÔÖݼ;å}jÖ«…\.G (\”\ºt±”q«td¯T±ɉߑV :ƒ#:O¹ wWçm³¿Q?1LˆrT® ç¼ÿírWÎ,Cí®ú—¤”üwAJ#z« jw¿ù|ò w‘E@°×mšôz‹½ÞrLô)f|rðÑýé\Ý›„#ª£Áýb9šÔ~г“Ø;g×Ü5<ýz •ˆ¹[‘ñ)ã×Z7`P)cg‘3RpD 2ƒ#-^ê4¯Ník™ä ‘—Z*Õð@@¦(ÕfÚ-bÛ6âAÉB~Ö~æ>…ßžo‰p±_õ…: óZÒ¬¸œgÛ>YNRë¾ y¦UÑjÂ*s±ŸhGðÀëìOêWàO(v¢ÊÉÁÑ¢KænMÚUò@ˆ¡ÐˆL­ÂE.+5Þ©¨ªÜ‰ñ뵌 ‡èÛ9œÚ– Z`3°È¸º*KøMÑ—eJÈÜȲc˜2 >Ï}¿aÌ\¶çÍãIz£ 7w¹£V{šWC ñUÔ´ª\/™¥dÓoÛ¶Ã% ¥Ù‘†LÄ’O\ûÆ –$bf{–<2–ú¨uói’cìùñÜjT'ÜÜqSX(¶}Åß"¶CSFÿiçMé ¯¼—¶›ÍâÂÉšÜÈ{™jƒºöÓ¼õœŒ¨èÝ\ z‘6J¢LŽ ª5vÃän¢@ÈÛöÚ›L^ËèiJû2‹fôz WWäxÐ(ü]¶jßÙóËn+½ñtôäú¦µdu ghÃÚ¸’[3w…ÙßLü…Q3ÔöhsÀ”“Á‰C[©=n þ’2’•¼_:Fð®/ ‘Û×Éf³!Ê”(5žÕ}ðqȾe-®ýGÎ]®7¯Mˆ‹ò‘èä‚$!Ú¬e+ ÕjB˫߳çöÓ<߸”„4›± €µTÚIQÄ*IÅi Ë®ó#’®’½Y@íª@hóúò¥f7'§á‹=º¦$B^Äj³a帺·â¹/Soæ¯$\ºEN»ÎTztŠ¢ÍеfSZd¬%úª?­TÂÛ1dËõXnvjÎH¬`µ`+÷=6LnÑwÂÆ<ãAä”5$ÜL$CS›jf_ vNtÏåKA(y›Òj¼€ DE Ÿ,è³RIiݘ¢ÈMÉ€€º4kåAž-›|Tú‡í ’‚LB20®¢ «L†\—Oª RÛv¿‹-ÿ<Ɇ$‰Åî^©¢Ó“LŽÌ¬ÃèX+›Í‚ÍÅõÖÉ\«Ð e(ý6mfS³öØLiæ¦ã¬Çã¼ôù{<Û½QÉg ÷pÀšRƒû¾è7›Õ„ÕUùߪ ,Ù°Š"’\‰7|êxáU™g8(§“„)M¤ C&wÈdK.ér ÖºÕKøLQæ,G°RiBo0#¹)ª?Ah›]$dBE ÉÉiZ¤\™Âbß“ælRU"bͪŽ6¯±üÅ%ðú;<P{YÇnßêDã%²%#1Нž"dç4‚å€dç‹‚B‰š¶wåRbyùp?¦h6V /æVL)$·iD]ì50V×Òö!¡hß9ê}ZLX®¸Ü£{šÑÚPz¨Q"Úy©ÌÁ·J•¨R·$3Kyù ôV\<޲ÚCXªHd_ÎŒ-U©i9'Qé5hز:¹ÉÛØpº ¾~m¨ Ô¿˜Éï@Ôåî Ÿ¾EcHßÈ«ŸÈùúÛ'íõV‹ë—q“Zú†àQ€õ æÄPÏ]M…Å „Òÿɑˋú¤Æ»Q ÚTŽdßI ®ŠÞ<í®}?⃤ٜ?}v£æ±q”£Ã.ƾ“Çû?u\Ì’Ê]þ“­fŒf•› uý_dÖŽï]dþÌó4íÝ“nM+çø®÷ÏÔZ8‡gš:.±ÙŒQ¡’K@uj·’#ˆ€ÍŒMî‚êµð¤’ëuâ´•¨!sp®¼xn6®Ž¿ÊµÒ„¡ßz•<à6«_~ž§ûõ§ÿ€ è݈ˆ·Ø ˜2¸²â=ºwïÍ“CFóñêKˆä½~¯tïNÏîCxÿ§Ã¤AÔÔ·y®O_úÈ >ÝèÖíeÖÜ6ƒh"sÛgtëÝþƒ†ñò7G0b!áÔBÞìÞž=òêGË8«r¢YøéhzöéGßîÝ3ÿ8 FàúF>û4ýû n|º³ð‘Ô\*«Pš(ÈÈÁðÐ [Ñeå 7Ûî’d¢ #ã}Û´a*ȧ Àˆíÿ0™&ü6™×žíKÿ}èÑî}úÑ¿_?&mOû‹-ÇòS¿'éÝ»¯vú÷ç£÷ùl—¶.ä«·—qÙú 6ÓØ>uƒÙiñ³ÝzD,dïû’¤ÿ“½ú«¬.d1›0_ßÂ{Ã_fÊúóäÓD"ë>ÂàýèÓíSvê,eô¢CÒEvÍ{‡Á¯|OŒù´V`0xx¸A©ÄÃB™(`;S.JO)+“º(úW° œ_tŽì›YN^ü0›ÍÌ™1‡„„S‰OHFW¨CdŇŸûž8Ó@ÿaࣾ}éÓ·/ýûõ¥ß{[ÿTME'þ»1›0ßÚÅç£F1qÑQÒDçœümö6É‚>õ:ÚÒgÈtN™œsòûè@÷Nð˲sd¤§tæ §²:ÙoK"–üL2sòÑåe‘i2R撺ьÕjÆ‚‚ìßóóɛħd’‘õûö…Ò¶Ék¹Ã¶i_ók|5žóG•žL¶©>]úÞåö›ÜM*äú®ƒÜm^ZŽ|V])éyy¤ ÷nI3ß}lÚ!ã2—.¤‘-oN.r¶ÀŸZuñ¡ƒn{ñqÉ\Ûy¸–õ©-“a½¹”û¬¤ñŠ/x"/•ÔŒ,tºlÒRâH¬@{À|•ÕïÍ$JÞ’ '[!¤¥e‚ìÝ?±òÄUn'g’•»‹½QA´iT~"–‚,2²óѤ“jSS·­jŸÓœ»j!åØ)®¹ÊñªR™é“{bᩬâzi6C)éù˜Œy¤çe£/­¿ÙL˜M¬6q‡ SÞcÊœ½Å5€%«}f.c>™)ITmÉé?±h[éÉÄÜ‹6· m¼MÜÙµ·G®ä.ž4kí‰g -g.YH=qš«r ®~tp›ëWís»ó wZÔ¡&OÐýùCìßžIFr2g$³m;šTnB ¿C=i&óòe.¤%c«HP€ùWo™HØŒëÕÜðVt¡Ç³Ñœ:”@rZçv$©}ªþ™ý_zÌiIäÛÚ—£íCœÎö¥cGoª\þ™UZúô ÄœK Óµ ‡Ù²cQ— Ð'ìåðÕÊøTöBŒô 2²¯ðóg‹ñîHuDô×V2*|®#Z^ĬË%-+‘³;6sìÒ]tni7ç`Óžztn÷u·îk!ééédd]dÉgK¨Ü7È>f±”³›8û"ÏùþwŒ„þòÏŒ´æË>¥cv*©Y¹2nqeßR–,Àzšè 9Hôx*ƒ´´+\3p'ê07ëW£º«âèPXud¥§’šžFjZ*©©YèmxöÃÊ,a*QyYd¦§qûÒ¶¯ÚHn­*xÇžäX|99¹$hÏrU°âQ£2ò{Ö9…\Ó#¸Xp¿‰$öFµêÓ¨ýQND[Ȉ¹À¥Ü” ê"³žâËa3¸ÒŸÐÖ¤¥©÷³×%‚À:ö’º‹‹ymðfZ,›B‡ìTÒ²sɹ{S[–²íF…8uÊŠdhBµrÎ_Ѭ'/#“)ŸŒ”dòM]¾Ÿý;sÉLŒçœö,y횢&›S«¦3~Ì".9tÉfç9…º|²3SɲwþÀÒòºgc0]]ÆKáØ]S¹}`! Ž O?OLL Ù4¤†¢bùLÞoŒ˜Æ½ÅÎ'Mù¤¦¥ë +Œ¤f¯^4¯ZŸZm÷±eg"ÆôÎÇä_-`Ÿ³œÙ”Ów ÑÝÝÍ› ¨SK]ÆØ/™ÌXmLZ·äg‘ž•^—M¦É€ÙjCŸŸMFn–¬â6r4¬}Ã@4™‘‡É”GzfFºà7`?«×Ü 0ó67Î]â¦,¿Æ9äi7³ã²CòŽ_•£ô®Q|AÍ®Ï[°ÙÌMÖ{ô팂<ÌænìXÀ;/¯¹·D‡ÉŒÅjÁl“.Š !31¾3ŽïRSSÉ2ˆHÚoøÿ¬Ë IDATbGÙé‰$œ=Ä™¬N4T§snã6ÆPPp…sç²ÉKëG¯Áùä\àêñûŽr£†Þò.ôzî<›ÊÓvÑm&Á*õÑ\¿’µ'tädgR˜ÑVŽKJE<±T¶¡jÑ1u ?ÿ–AFrgœ$çÙž0™±”ɼaç±V Fø0T{Oq§mUZ4ª®MèÍ¡³ $¦gsåàA®Ü/‰‘)Ž˜£—I7¦{ €ªtÕQ ûƒc® b™˜‰lέý’q¯.àB9;¯˜“^—GVz¢ÅVâd.¶Å–â¹6Pã]Å× kØtÞBæ¹b\DªviI]³«T¢;Б‹v8ÖU•¨Ö¹µt¹¤Ý¸Âé“§IP(pE•—OæíXâ 1™mü?öÎ3¼Šâkà¿ÝÛÒÒ{!…Ð[@H ¡wi¢¨ˆ‚"‚ˆEš ú U:H‘&½÷: Ò{¯÷æÞ»ï‡H `AãkÝìÎΜ9sêÌ9:;Oª÷°{÷U"r¸¹u/·ûûó‚L@/•=­×ƒÌ‡†ÞXäçtég/_#Y.C¤øÀ‘Œ3Ìüßíˆ »ô`S¶òî—ÛHNN"11ŽÈ‹á$4§¥1æ×—³î¬†´ËW¸ ÉìcK$§’ɼNžäRz:…§o·ó§›ùBíH%-%‘ä´Lô–µ°º²¥'óÈLK$19¬{¼¤ŒÍ¢&?¥D—M¼§ËJä_ù•åG^á­Îf€ #{kn.dùÉò’/v>ŠdY¼”·Y>q&?®9ÿ “@â~ÛåOß oTÊêÓd“˜”H\Ìq»ûþ˜ÍÍí­g½Mz:Y¹Ùd¦%‘®nüÆÿ¶_æFL™7¶±ïv}§ñ”OødÉ—¤êº2sGk%ŠK⮯xí×Û˜JLzãƒg,¥Ï°IÄŽB§9¶´ì9‚ oû¡¸°„œZ ê»?ví9ºã&1yé2õÝ™½«2â®ßAë’ÏÚ·z³\ÊZÎtò~iáÔjõr@—”I¾q.§–1ùä"Š ó°ïó5?zpqæ'¬KÌEÒhé9w/ÝícA:gVÅ'“1Wj˜<éïN›À‹Qó˜õV¾’Zóö¬¾4w’A¡1.¾Øš<¨•²÷k^]މ¡Ä¤×v3`ú†x?0 Í̱Ҫ–ή¸Ô2çž½¯¾¸”±s÷’«eúÛ¿ðé^&þ>)‡3t CÓÖL^7 wr‰±°ÃÍÓ`äÛ™‘qÌÝ™BKÞøò=Z:‚ÊñKL˜ÌGK>#]ßY;[#G.àXè`†H*,í_fî ˆòíkôVø€Àh'‚^1}`úJC¹96–6xxú1ì­4¦¾ÀBY]z¼ùÝ<<1Õ…£3æ3ñÕQ¥‘d=„WDñŸÝp*(01·@'(P+‹05R”Ô\6ÆÆÖC…¢)öB‰ŒhʘuSy`? &8Ô~…Ùcݪ›æ–˜¹ã•dIg_`JË‘ï“1ï;~x«92ùŽøá#l-P‰â}¾á·’IÃ6¡UØúOfÅ[@q—ö³ëw==g‘ðÇ6®æ¸ÓãMONÌÛBA»vvôƤ:(V–ލr¶³cF~š žÂ¸Ž>O¬¿ôN¢°p¤ËÄïÞ¹/_¾Ò‘Þòº„Í¿b%L{s3ŸÍ[Ëå 秬çܸÕ|œÝ—:dbÿ3Çó½Þ‘.ã&3,ЫXw¹¿XMppP–( eôí‘üåÚZÙáVÛäÑÚ£‚–Öæ˜«ÈˆAò…£ßå ^B§-ÂwÔRæ¶õCýåÍ1²tæÕïâ%¤rYHaþ¨^ü*èñz…±ïµ¦¾Q´g2ÿµ "õ|´Ü{#^ϰ¯•¥íR>SG?‚û0uR7ÖÊeÔiÝ÷Ž44W–ðCC¬lÌ14±³+Âà~1ézŒúýK& ÆPI޹Í0~Xֈ°;ØÚ˜”P¯cs ,µ%òkœ¼_¤k/j™¸3dng^}ÿ¶§åÓ°w?BÍîë‚ –ø?%R£®s5!…&Ã:bY⩲i3Šf*>fL,u`BŽ‘µ#îµÍ0*-ˆ´×Y½`á្ÉM±r¬…ê^n¹ŽÅ(™ÊûbîdS¿ÃÇfóñØË|éúÆ8ú·2fóLŒä÷e‹­½rd¦88ˆÅ©¯æ88Ê0q ¤¯soôXN-K|ZuÇßR†k^èZ—ss¦1yzLüh®÷¢ÓÌi¤ŽÆÄW>'G×Y»ZBfŽº’µ# S™açd…“—-„—x9tuÜqó & –1¹*†ÆrÀodež´íÄ`qÆÿ„(ˆš·eÒŠ×q‘i15™IãY%ó¢ã€·ݺ9Æn9\𻀑¡Óñ ê@;7¬ ØÙiÈ*,éúñ§4˜ÁˆšÛ2ôëßóU:cÇtc£­‘/ÝF¼Ã{Ý|ÊôG¶ŒñswŸ£eƘßéøÉ6>ð/dϲ]x|þuJæÖÌ1„7¿Nçƒ1!¬—YÑ0èeÆOn‘t‡Z®ŽÈ¬Kp¤æøê¿ò~f&¾ue9çlE®4¦í¤-|ô¢$-e׳>ö?ýo>»®ä#ÞÈõìïù¸g[Œ|͇óSÈ×jé5{7-¼]ÏîäuéÀ¿C>WWíÿ—Üus“¸yó¾ë]nk‡bêâB=9õIE!å&'ŽÿÁºK*<ó, ˜6Œzr€T6¿3‹¸ŽÃÜ«µÊXbvŽóç@×Ìh_Ⱥúsµër^vÊ@­ª…›—ùg¶²u_^¯½I[é?-ަvçP:7³½ÏÀ~Ú™MM0«· »Çù³¯ã2FzP(àâë6b‹&ç0xã\Èçúæeì8¡ Ó¯Óè¾Ä¼À¼WSwÒ êØ>X ù;˜Ôã6/ï}‡zU‹:·‰¹cöâ5çc‚½ñ´1¤('Û·) ±´sÂÅÁ]F<ÑñÉdk$,\Ü1SŸç—×–"  ÖMðs3G²¹sz#?Œ;Hï¦èl†yQ&z[ì Õd¦§“–ÇÙŸWsQðÁÿÕ>´s³ÄXõ_ŽD\a^ǹÔZ0—!uŒô9$ÞLÇÐÇ ™ž¢üLRãÕ˜ÖvÀDÔ’›Gtl:jLqðpÆÖ ”sá*?ÍÃòóRç!UL“Bøµ8òFfÎøxȹ²y„¶za™‡d㆛ƒ†eŠH”fE§˜Ö~Í7Ï¥Ë=g/Ü>¾µ«ñCoì˼–ÎŽæp»i½Ôk1ßß|‰èÁkÓ®ÊÜŒítœÞ'§Ñ!7›†x»Z )gWñó¼DB¾ŸòÙ°N8ÃöàÆï@0¾$\ ÜÞãÚ¯hÿž¦¿n[£ÑššŠ££c¥iáïèßãžyüLT Ÿå(==¹\Ž™™YÕÒŸ$ʨè(Ü\Ýžr–ž}>Ë8óòòÈÏÏÇÆÆ†çêœ$Ò2sÑF]ÿƒ‰1õ™5°6U°a"!!+++”JeÌlådô³â^B"&&W×'¶ÿô_yèÍÒ—ÑhÅhú9™O¸‹ƒCqI¤Ê·^qžPT˜ÈS^#ìv^~$=åsÞ}“‚¹6p £›V¶”ÐÃXxZþ •¼)<%eV­Ìü(žNæ==•׋òïý5¯­l¿ŸåÝ àÿõª|nÊy÷ú Þ[“M‡—Ó«®ÅÚב{}ï~͈ÏBp0wÁÓÚàLVF)HçRøu-9Lãï¾%Øì¯m´ªÅSeeKéW%ʛܪ´¶*×ÖcÆû~øwõòÉOTÔ~«(/yVó¡ïWB>—–ÓŽdd¤£+P(¼'’T’ž^Ýök¨¿[€>#£ìs€[TTµŽ±Öœ®œk;·ïëLïVjNí,_¡­N*ŸÆ ÷³ýt{ú|aN‘æWOÖúÅ:>úù2KZŒ\Ä{þ~8¹ÀÊ9³+'Ñó%z4±-¥ìãÏ“Mh?Ü‘óœ=Þï–ÛùlÚi„Ât\†¯`œŸQC<à‚‰$R”Jrs@“Ψ nàNPk8X"CGÊsÜÎÔ“xñ0¹cGVað ’]³'LŸEÄÏsˆì3‘Y¡ N­ZÈâý‘h%#\_ìÅëc[³c «¶Ÿ#£HFó×ßÀéÈ.ÎgE‘»fçÒÆ³jTkTr½t›]s6¦ÏáÖÏßs½M­"7r«áW|˜ÌæÅr2AƒÁå \‘®pIi‚ýÈÞ4q2ª!ßR ÕœæÇW–ã·s)½kiHº¹ƒŸ&…²ý Ú¦]f÷Â5l»œ€6ÏŒúÃ_exïæØß'nQ–Oäù£I- ;ÔoCm³T®m\Ä÷¯S¤Raaß–a³úc*—ÈK½ÉÞU I8±ÛÞ=’F%Ñ-†ŒC{‰ À{– isˆ¾|‘È´ÂoÅa:ìâÚ”–áht¥Cm $Üi„³½¬¸& ™-NÄ“/‘sé{^^ïÇžÅý1#Ÿ<žç²wZ Äf<ü½/ Î +#Q'B[»Šùâ\±«ˆ,L†h*"k CL‘îJ\ÿãZµ¦­ò‚¿>>>Ìž=› &ü£ýûsãVzöï‰LKê^<¨}#<¤ŽðˆHp.Xª© \>ÈliØNÏñ_dgt ßŸÃøÿðÉŠÿÜgcù¨µBME”ÔäjtÏÁyPÈLø¿ð€S——µá±o •yºÒ ®¤“£n„·“.Æ•ýZÙ-JÕZÚVe?«jF+òœð ß}\û•¡¸Ê¶Q¶+´˜…®yFxÆùþrU!ý=c³å÷ëé8•XeôÍý 3U·j„ªé›P™ÛÏ“_>-ˆÏmV=V-äÞØÎ¢•»¸ž" Ñ´bÂÏ~XWaõܧCEx—ðœéã¯W»ðŒ_Y õ½ŠÒ÷ÓÑle߉§@ûOŠ?6ØNJîH‚ËŸ"ÃPEüAx&º©j™ÿ¬²½jè©¢ZGExmeû-TÁ˜Ÿ€áù`°*i(1³ÀÀ¦´¨mñí‹(LìðíeþŒ¼ûLäóçG0Y™€eòÉåÌY£§?]T³ÑªOÂÓ³_áùj9O¡%–ÿ¼ð¼wî?«D~z)<ì?ôýj.Ÿ«Ô€+ú´¯^!Ç8Þ1[8-S¡¨Àƹ¼}[¸Ø¡ߘ‚”+Ge4Áš¡¹eŸ­øžÓ~Ãqð6Ç5ö:±Ùö8ÊHÏ.ÀÑ¢¸vƒtøOÎ5kÅH{9 G!h¹m׋•«Ç!]Z€‰Ó¹°ì-j×[ʲé›Ñ´Ôqæt4©´ÀÄRNaËúDØu Ï Ö 5w®cåÅLŠöâ ;LÀ¢Ê0Öˆ‘«?%«õRš.þ ™†Ø³¿±zy/LŸHëü3l¿ÎÑmz2’<ÏaA·’*0Áu)º2 ùW³Rÿ„Ŧ¼µîcrÚ®¢ÅÂïé(BN”#›¿ý•é¹Î8›÷ᧉޜš7—³òV y»-Å{£jx@Y(ÇPf\œ2Q¦ÄÀÌCQMØî¸ 'hÜD%mgþ­ëܸ]{/ÃûÜT&Ï"lÇjbŒåHt|¯ .Ú#,øî,u§OÅ_ŒæÊåS¬ß“ÈhƒBî&hh;n,OœÀžirêÌyúàüPp´ðîz¾Yv…ÐÏ>‰"M*ç7/dKº-n/ôb˜¥ŽøËÂö&ßSä$ôˆ¢€ÊÙNm=PüH6~<‡a–€ð¹€XGDÔ‰È>”!ú ˆf%5€e"â»"Âጀ$®T}À¿üòK¹Áßê'œ 59+;kA,ÎhþuD*çêÑ'¥2;(ÿÛaa ɰ #¦}_\þàêLºŒø“!ßÒII Ô@ ü»òòòþuÝÖétHz‰ü‚$ýóKŒ.aHÃ%-š¼<*‡)c§–ôÿH@—K^ÆZ-@«Õ¢—ôÏvªýÒE4EDŒüü|$©zh:‚  V«ÑjµÕnŽŠ´Eèôºj×/½¤G’¤jKÓÕ‰¾*C‡………ètÏs¾% ¿ÂÇ-F< ±Â óòžÙîD^GA~>Eò§kP’¤jG;÷¬ÕMoDI’ÈËËCÅ猃 ™×ÍSè5® øÑ m~!yRͦë¨0÷A¨ £H“K^Þ_„êlƒøxiH‰B[@nÞ³Yv]§±®€M~.¹y5ÛÍk þmP®¸)GJÒuNm>±¥¿Ÿ½Èõ»¦¸œ‹Ç±¹ãêj°ó5†ùaŒ„ZÒ!”¼P¯¸@Y­Mé|a G×ìA-£÷·?Q;,÷+;÷YáÜ·9–HÚq¿VðUÈ:I¤]S@BëëÏïÍ$åx3ðåÜùv+ϹaeØŒvv€“ÿkLõ ôGßyqfòj+^5›—ѵç÷¼{d.ÁUè¨×å£FGA6PKƒ.3‡T)—+{–s+O‹Î©m}}iN,Û®maa¶#õ›ѺޤE——ZoƒJ| øŠòóÑ %?0S'O|ëßâÇ?2™µz$L¾FƒF›O¶,Äšàoy „$‰ÜÓû™ ªQªI͉áôöå\È×bà]û2)>t:ÒoÚO t{p¯àj©HWŸ¯EoQ›ÖŽ ¾kB£fmèØ¼8ó¾OC—²²É/ ìéØäsÌ[¸±ß,z¸(Œ<èýù2z£åîæY|8ñŸnó'Õ1¶H #SBï2]>¹cd J‡þLkÈc3ˆUÙFyÉ7£å JÁU(®,Z ˆbqØPDl-"H¢…€`*  ¤œM"?»ú:à pÿgµZJ¥ª–ý<ºï0=^êRqm_IzøTï½Àî½D6¥o?®p9óÌ- üP –ú½eÉI€K ×­ø·C~~þ¿®ÏzI^Ò;aŸ³±àÑ“[CbÕŽv$½ô·ÐNõíZ­]µsÄkµZtz]µ›#^‡^§¯výºW⤺Òô¿q“o4Òê´Ï¯ä=§õ-é% ‰ÿÞ’YÕ•vªÞ$Û±ËÉõg™–‚|j j  C)¨ÌÃU+3òóÉ©™øgâü·"E5àŠ“F–Ôñ«Ï­kˆMH#=KMRb:E8F(e2*CŒK–ô ëÙpÛŸ7šš¢Ì+Ç;¹ªÇ¿©HnT,×sÝñ­•OÂ%sŠÛãigŽ^ТÈÚÆ7êðš € N.Q쿘E·ŽæÈâ®p4¾1/yŠÎ|ðCg( cÕôÕÄYv¢LÖјZÎæ˜#+{ Ò¬vÆ&©ylÊÚ§4‰Ðée¨Œ‹ÉM02ÆÖ²ÿ˜‚_éǼGR74’ _½Ç/ÉV¸û8!iä*ã’àog×\¬{'<:­ƒ’¬ÎEé‰ÄF;в•#)‡Ó ‹´‚‘A™¹¨Òäl‚‘yÎIg?F›@Qô)6GÚÒËßF(‘‹ •÷†•Æõ£‘9Ö¦Wç¶ßżU#|Ì“9¼9÷ÍqQÊ+$n¬v¡¥î'‚h%"èDÄT\@”DÄ›"B@IBbA@,T‚¾äkE}8ªÚ’Ô¾}û077¿}ìØ1ªe_Ïœ8CϽ()ê{Ÿ®ï…/%A©ìéފȈ²OþÏ—ÞA!@Þ• œ4ve”E ËýûpoŒBŽBY#ÿþ~Pad¨D.(04(gMüëiLz®õ Ÿèt:“±±¶®!ѨhuZ’“’khÈÈÈ@.—cjZ½ :äååQ¨.ÄÊÒªZõKSTDzZZµ£ ‰¸Ø¸jIÓQÑQÿJ_P@^^Jz-0 IDATÞ¿–WÜ«¬+þ•ýމ®–´S]i:66kkD¡ÆP¨¨¨ÿ.DEGý§Æ[®ªLí[òÒ§--76þ̦CftíÚ.ífíéCìºFaÁâºñêÀq39óó"ÛFS¹Ê— QMøfÁ~ð¶!-6“ Wlt‹-'vò¿³q5¹ÉD_‚»ÖŸ±r×ëôdŒ½AÉ„921C ?áû ®ÝD yüËlšû'· ¡0' …kô­CÞµ}ì8pޏ"%Š˜2Ú1´¹wv.dÏÍl4’wR±™ð2-«Ø®7œœ/±öÛ_H ìΰúÍiU÷Gæ½õ5-ê(É·¨C` OôQ§9‘‡˜QïFf¨gÜ}ÓØ¸òbc†1¹[¿›w›NxÛ¹âàtÕß-"Úχ+›¹f;˜É¡Y¬™»€u¾¯SÏSIŸ‹ùf…Èèи[ªþô«G_@‘îÁQV›ö%¾újI^RScÑY£hÔ¦ö¶óÍ„(|Eríýèß¹ ^Öªíå Ñ— v)íšÑ£ËŸ,ñáML(TÚR?¨=ÞrȽ{‘mËr6;ŒÛiõ íÓ ûûÜGGäê/Xð‡‚žŠå|wN‚@“^/c|t!‡’È5EdË©?z(^÷?©'åÊAžÜÏ®° ä%ç—ÑW^  Ñ P¤o~`v„3¹)¹tú0IKæ¥õÌ^ß’í ¸þÛBv^¼ÃÛ9$̳%´c&ppéF²^¢¾Wgn¦Îwøø†±hÖ!ú6Ĺ¢àº@`p†âzÀ"С¯€°F@t¡OÑJDÌ4Å`‘âôЂF­ž˜ÑÕ’ÂFU&Ø›••E```µMãvhÏ´:}qpF’JNóÐùߨ<Ã×pk÷*v_OCƒœÈË7¨7îCüj ÿ ¸×“q‚Çw²ëÄeÒ ãˆ×e1´O|mŒk²`=–¸D-¶ÍšQÇÙ•±=¾>Θ)uäÓ¬}êX1DëÚ-ðÖÇ]dAíæ èÚ WœÍPg¤Qd`C³.!´mdJ("¯HIÝmhà`¼Ä“hâÔšFÊ$bÔ*,<ÛñÊðVX妑D¡ÊkO?:w ÁÓrÓHJÉ¢HT X4¦ÿ€vx«È޹EB¾€B©DáО74Ƥª'F¨…}mu¾cG_¸{âÕÀYV¥ ¥¹-Ž–ˆ™¤d壴nNçÎÍp56Á®¶zµ¬½hæaO-S7¼›xb­²ÄÎC °P‰‘µ µk™P;8€:¶ÆÙ(‘ÉÜhØØC¥Ê _wGÌ eÿáe.Ǩ–==±1‹ëÏ †8¸»S™Šhb‰cú4©ƒ]mG,mÜ©íV )/½R…ÂÒ _G, ïElÅí5ôÄÚHV²®D™%^~¾d¦Q Ta`l޵³'u]pruÅÊJOv¡)ÍCChÓÐáÁzJÏ©íëˆR¡T©0PààSÔRu†¨ŒjáÖ(€—Úº"»/i% 3ˆKPcݤ¾®µ00¶ÇÇÛ ëz41Î$1Lôft7@4´Àº¶7õä¤ÞŽAcéC£VÞXªŒ°uqÇÝÆÓZvԮ놥¶Žx7pÅÊØ++7ê4tÁ\&–ËKÒHc›ÜoÀ’⼎ª’Ÿ[ƒ•ÊY]9²\r™ ¹©Eo9rAŽBP 7—£pV dÈ™© ÁT`Ϥ]è4ºjGa6l(súwùòålݺ•Ï>û¬Ìs'Nœ`÷îÝÿx5 ƒppq$3+ SSSTªG4¸G] B©ŸjÔ½GAOvÜó@&—aÿÂpFwóEUƒ˜¿ÅQç$›‹y½&Ôõ²ÁÐÈOOg¬Œ5ÔúÜi$GÞ%Ϩ6ÛÖÇV¥ÂÂÑOÓjû´´ ²²³qssÆøâmÄ3¡¨èŸ35CÙ³=yh°°°x|cºôÝÇ™Ûåß×ë‹Ó°š™š=ùíÒYNž±ï‚Ë?¯¢1¶ÄÚTYÉqgs;,Œ°»ÎfUälx~Žš¿š­Š¾÷¸–*ÞïÇ=[Ùû@§Ó‘ŸŸ_¡S¯™—gcE§¥ ˆù¡~ ŠâS—öx<~Šó´N4FƒN§ÃÈȨ qúø>U´Ÿ:Ž‚‚‚ ÐNÕÌEû%I999˜™™ýîÍ'·•••……¹E…Þú^=ûÜ–ë**¢¨¨ccã§ö-åÄžçÏ#9xøØüí'4rss122B&“U9ÝI™Ç™ýÝ2ö8@k¼kUmÿ³³³ËØ¡OßÐEÖlNÀ­C•Ø.MÓ¯p_ËÈÎÆÔÔô‰5€ÿJº—'ÅÏË4dÄ„±÷h>69 +Àó®°f}®œ™—Êh„O£›”ÿ›*Hõxþ¥¯N]müu{Ñç+Ï}*×Rùó÷8Õ©²´$èR ;}™¨L޶&/”âaBÒI–Ï]̦ãç¹-÷¦¹³Ñ3Ø  G~aÆ¢]\¾•MCo,eU¡ÓèQGlã³oãì( <›áhô<¹_Õ‚ Kä챫$ª °³2ªÔ7þÉàñÓÛ,χVβ¯Z,f•ø‚ KÊ`Èd²Gš¼—&Z@ŠHAwò,RaaÙç€ï³²>¯Î>«ÿ7>Á»nn‚€àã7oÞwÜËmíPL@\H#©®¬¿rNHÂ3ÙðõüC§â(©¼ó¢fNU ¦L¼J]ª‘Ê´Wš.žôÞ?@ á„3Œaz¶ŽàJ”(KþW¡D)(K~V¡””(õ ”z%²Béa©, XTíÈköìÙŒ?þþutt4nnn÷M¥aΜ9L˜0¡ZôûÉcéÒ·9¹¹ÔñõÁ¢– §¸>Ú½:iú’½åÒC÷¹ïÁ•¾.½žjxM Ô@ü­žp3ü6ѱ±´kß Û%»Ï_ùù÷ù–èè„ñ¢©$Sˆ€€›»[Õ»¼â·1aö~D#ê÷ŸÌð¦è9‰7¹rUFó@¯’òÅÍ»´Š_O«êJ}kÃûî°„]ŸñSBÞå‹´E$''ãäètÏÔãæ¾­¬ÛršTÀ¶Í@†wmƒ³qg~YÀÖ›‘dIíxgv?<ÅÒ¾bÙ³<‰VÚSÒ)$þØJ¾ZqŽZ¾­éÖo­œJœ©+™¼QÎK£: ^ý["bÈÅŸ±súâu†_¾ZÍM½ˆÒÈŠV#&Ó˽ä3é—Ø¸e/I¶h¯<ÏïÛΓ¡×cø*¯‡4ÃZ•ɱïþÇŽ¸tÔz=²€w™ÑÍ£\Ôj²"8uTG‹®¾PDô±­¬_»—ÛBCú@{«'ìŽgÏÒ8Z½Ò‚Ò!,}N,û6¯"©ö`·yø„û=‚ÏäȺp¼»5ÅÎH ¹ÄÏÿF¸^ÀÀ´)¯~2¯G‡–¸3²î·Dˆ èýÆ:6°AN>§ú[#bȦ=ïÎéKmØ2qôJ,lºòÞ‡í0GONüÖN_Æ™­ƒû1 ‹'J4Üܺš{OK ^ùhÍmÉäÀWß²3#½2ˆñ_‡b_ ©©©8::V`‘?4æGh{ ۪Ⱥµ‡ßo'NaAÝV]8°Vä¾g [v'=E…Vtù6})9ís¿XK”ÜûÚþ¼<:ÇRs”žžŽ\.¯PàP—v‚Ÿ¿^G2 Ìíi÷êB]ŠH¾yM w.IhÕÆ4 íOÏàFX‹9œÚ|'ÿ†8Ö2¬p愜ÜÔj5ÖV¥ÞÕF²sÑuD! G¯u¦×”±´·!j3ã¾=„L!¢7¶¦nè0úÕŠæÈ][ºtö*.“¤‹åð¾HŒÜëÒÌǺ¤OåÌs9 V«IOOÇÁÁ¡"â6k¾ZÆùŒ|t’@ÝA1Âx/Ÿ®ÇçÃë!§ˆÌˆãlÜ’FÇq½1¼°ž_—%M°jÖ…=Cð©`ŒI¯×³³s¹ŽØ¸Ó›Ø°ùwÌÛ1thüœÌàîVf,;FJŽI>/É›M ѦœdåN%ý†5Ã@Ê#öz£TxYG²yÍqR‰"u-^2œ­Üx’_7*: 7W·Gîç&ßäÒE¿ÎÞ(ïÓdWö_ÇÀ«6µ]-ïßOaßowh2¬%V‚Dñûûs8*˜áèу·Ç´,ÙìžÉ•?W±à+X5 f`ïîÔ·yú|yyyäçç?}º_©€„s«™¶Úžoæ„òw'ι—Z©¬d0]g_"UéCP·Ç®90~:Ûj¿È ¶^þhf[•j–DLL ®.®U ¬bØ$‰™¿ Á¡ úö8š~¾PHÜŽlZq€H$´…f4ï?„ží½1/aX±±±888ÜøKë$¯N¦—‡ž¬ØS¬±œ0™;mBûѯsíRk0s;®cåç‹kIKHßÏ'³v’_¤Ç³ïG¼Õº$Ò¯NåÂöX?ˆ©A¬žö—džtèÝŸžÜPJ úm-{¢ÈÕêpí=ž1íÝP–((9‡?bä‘î,|–M[K"µœi?|]\ŠHºv€ ¶.‘j·çå~Ýiî ,GN§²ùmi•(Ñl?‡#‚ v®Ýón«rÖÞžsißuŒ|<©íbŽH*‡füÈŸ)¹h%Påë..½[DFÌI6þð×tztZ#|úÓ£™Žƒ›6rêîù,5êÅ”¾Í±0(½ŠbÙ”÷&´+é_.·÷¯dκ0,v w¿4·KåèÊÕì<A–äBÏ÷FÑÑôDÇ+CÌö©,JïÃÚ"Ää—9›¹+“aâàKça#io—ŵ=°aÛ9R% »vƒxµ[k ËÃG"{–Fã÷JKîíçÐ\]ÍøùÇ1vòÂÀ;tñ*à֡ͬüý)¢=í ¡{9PÜNÚ¡Yü/‘¯øcï¤Ó#úvùsR±e‡2hÒ—VÎÉlý~9Çb2Ðèôx ù”·[X·øãÓÅÍÓ —d˜X7aÀ„AÔWäs÷Ð f®¹ˆeýöôê3?ÇB®m\ÉæÃWH•ôè[åó¾-07Heß—sÙ•­F/ ¿Çž Ýd݃dصcDŸzü­‰õïó°Á˜__Ìë„4:W‡ÚØÜYϯ‡R1Pˆˆ¢ˆÞµ5C‡úcvt köž!^jÁ«Ÿ  iI ³Ìzî=…¡6çØxô*W÷DøËw?NP風½t3'oÇ’žëC¿)/ÑÊÞ´ù G“w…Mãæœ_þ®µðm€çó€ºTÂN^']åMG?5nˆÀªQü¼­Ÿ-S—æ K~<†¼~ /{=~®uùyÒrÂ%¹-†~H?_%?<°YŽ­§vhì•IJ}Ê\ö Saú“Ú[E¤œZÁgKÏbáÝœþÃiçòå¨bÇüU‰L¡P+á5è#F·*«“ßÜ4•ÚÁŒï_Âøã¬Ÿ¾šK 9‚cºö@'ÃÇô3ƒ«"¨ßßk… x60‹C’ K»®Œý fU §ÉÈHG!W P(Ê K’t?¬Û~ õw Ðgd”}p‹ŠªÖÞКÂÏ„Š?(<îþ3’Ïcߪ;J„ç×v >-V5¢…§kO¨à{BuŸ’{)ž…GþˆÝ•ôè!-<­ZŽåõ×_/s=}úôŲHIHÁÌÄ”Úî—PjeV„PÁU"Ô𚨨Y´º¶òîØã8v ¡SÇ4¶/6†õyIœ\1ž!ïÏegdVc0ïÒVìÜÎî}wIË), V $lû€Esaÿ-òžôÍÌ(âÓ37îEŸ>~ÈOîçбDîžÇ±‚Z4 èC“ƒ|¾.Œ¢’À‰û¾aÄ›òÓÉ´º¢w¯dÚòdšõïE`ˆ8•rX$ÞNÆ«E}¸ðGÕöøö¦•á>Y©¸¿7wsÙ.„.ÁiÕHΙ¯sM[ünnz!2…‚ÆEÄ¥`Ö¬'½û5¥hçvöžIFŠÙÉqe}ZøÚƒÝ‹9œüÐÖ#u&aë&1hÌ,6ßLGÔ1û9yõ&­Ñ¥v"ëöäjªº\¥œÃÈ·>à‡ãQ”~BŸ›È‘•Yr,…¨É•c¬«¯¬çË)£ùdýi’ŠôäpüÇUä6¢s`GZ_äËŸ/ yhqÄãTØqT/ &Ô+?ìãR䜛õ-Í{ó¢Ñ>>[[ŒÃ;Û'rÆ.„€6Øg­ãóC) Nà¾E¤5|‰nÍM¹qq D‚>r=Ç¢“qj?ˆN×X°å8IjH>ô1G šáß© ¥ÍLÚrû©yÙ1ëŠçøaÚvS”y‹ÃŽbЇ>mk“wë¿HÔÜ=M²6­CCéÒž®r.®ŸÂ!±!mC u8ÏÄŸOýÐ×óÓÃØ½r é2°­ —w³ô|2’;Zv sPÁÝúÓH~‚kñ±üe2GTÍhBgÛ3|°ð$ÙúD.ÜmzÒÝ¿6¹'™»!ýS10 }ø>®9†Ò­Kš{ë99s%wÈŽŠ!ö®1Mzt¥KHšxÙb,‚6|³?͇+Ž[¨­Þ¢‰áø…\ìµ&°SAAèÔé\E2NþȘ‰gñèJpçN´oXñäFŽÅßæÂ¥Dî÷@›Æõ ×¹“[âç+;ÏU#"Ù÷ùoÄØ6Ã?0˜à`;Âv…#Zû`ö Û’uaûæsÉÐýµ½l]}`ozöhŠ,7“ÄÛéU&°ÌœЮ­'ѱĥJèã·3õ—0L´&°s0!Ý\¸:u4óOg!Ëàà¡;Ü?ÿ /$-öçχ›@ µéн½‰Üø'û.& ®Doôy)œ^9!ãæ²ãNæý>êbްhÆhÞýßvnd©ïßÏ;» ïeúΫä”l@½±y —\zê߃¤uÌ:™d¶v?ïUÓ²O:6«ƒÑ?/¬QŽR%{캪–JE3ÜêÔ¥ž—íN-G°ã¨9}Gd@ÿò‚¿Ï3õte'AJ…Á¿÷…B¯G“’jIóî¡„„´§‘«%ª'‘øC:ÉÙo–––ÌåƒËÈl4ˆnM ¹raåÚÛ{øáË·™°h‘yÅš€¼—IïìŤm‚:ÑÜù5…9iùÔo âòÞ•ä6L·Æ2ΞÞή=$ŸãFQ-j·îFϾõH]´œ½áY÷uŒè«q´îÑ Ã›{¹îJ÷Ð4s×prÎZîæ¦‘s‹œ=éÙ3ˆ:·;sž4}YÞ–v1Ç¿Ë×;®’U2¡7ÿ˜L˜swBý›cš¼ŽÇRÊ¡M]Ôa~ùf4ïÍßADަøWw·rÔ°9m:Ñ9¸Š 9ö+Ö’Cäe9 {u£KpšùØajfOý2òù—"“(,*=IYûiçBéø"¾ÒA¦n¸ä±e%ßmʦEÿžúÕÇÅJKì¾?¹ži@ÃàÞô«ŸË²•û¸‘©¾¯#Çl|—y'¹tèùh)ºsŒ»îÝéÙµ=¾¦i¿ƒÄô’2³P5éIŸ~ÍîeßÁr’ÙÇÿÇ;ï¾ÏìýHZòϯbìôÔíÛƒÎmZâm«'ëÆiΜåS?úûqrÿ~öÝ|ÀËÓLç§Ã—9¹ï9Ó·¡Ü9)ˆØÉú-+Øv0†” 5D"L¡=jsgæ%éÎïLÅ-4˜àNø·mˆ£>È+˜µ.¿~½ô«‡ƒ…é'¹”g€C«®tïÝÛ‹Û8™ ·ÿàˆik:Ô©)Âö_9™õ„õ¤0Æ@!Ce`T…Á_©,OzS23ÃXUR®N4À§#ƒ»ÔØ+Ÿ îDç.=hí®'3.Œs{Ör">—ö ´»Ìœ$¹ œõìjˆ©O'†îJc¡¶]ŠOʬ¨WÏ„øõ=q27yŒ|³os"܇·_ïK×ÎÏü}§–å7’;ñjÀ…¦Í}q·5~vy"ˆÈ• ä²'1ØÛlz%Y;ܹ#/¶2áâîˆç#Ãþ² ͵ |õѦ®;E¢ºÄf¹±‰cVtîH‡¶¾h¶/&,GOÊ¡|òkZ,¥uYyÜŠ¦ýûŸó’OY#[ “kÇØôHáÜ2=N¯Ñ­‰òz‘lü6œ”> °«3„‰ Ýq5m® iÛ~åNÔ3W“—DÚ i€£'mÌÍ1¦ù‘O¹’D¦©?ƒ†;àlÅõN’÷°ÃDnŒ[³z¦žàZ¡€ -×OÆ“‘ל®#ÛᜥåÜ·IL* Q­OÝ…Íð× ñ5G˜ø3¬³šù{JaR›ËÕ½ 9nÖþÙÜÎP‘Âᥛ¸cæG×ÞͰ@áÒš¾¸™b„¬ä”Pĩܗ†lÔMaåçáä½Ù”{ß ˆ<CJJSB'·Ã=WàòÿÂIK½Dôr-NCéê猲A$çÜ"u ’?ZÐfsg‚Uby›ñ;ΓàiÀåÃÞ„üÚžÆZGòWì&)ü4'¢²,[Óµo[¬R3Ø÷m2é…×8;_Aƒïºê¨·p6.¸JNÏJŸ¾+;f ±\ÚÖ““N|”––v¤%Ù(Ö­dïÍ8èè†$ÙP¯}'úÜ;-v—E«TÔÿ>„înÆÐIÇþ'¹ûfkÝÿr9IqܹP‡.ËýiH=¤…9è&™ÍÚѸµˆcñòyi¨1W&˜Ñxa(]”бˆ-'‰|݆ÈKé4ø0@ Î*ƒ³FRØ×›Êgâ×ʇMÝq1€‚d[2÷¯ç®fn˜áìÛ‘~í;Rz¯¿Þ¡9=:Es-IŽXeeTõHõêÓß2>¾löl:ãð¼èpß’s‘s7Â)dø‡ WÈ‘‰Å9äe湪 ™°ý"Í·ö"À  -¾>j°±`DŸ|úóYÚ KäÏ=> Øà‡¸{-9Ñ«#@“f™ÈĪʗ(`êX‡¦j_ºˆ‰Q»æîA¨7„þ½[P|@¶õ g2yÃ)ŒQ RÉÊGerrT–ÔnÚ˜îþ _²¬!+.u“ЧÖ ÌðjB·Ô3Ä–ÒÅE«ºvlÏ¥ÄÄR ¹ªvGg½^Y²ö {±¥ãŽ@:R@m“hæ¾E¾%‰¹t7žPç‡ù÷?  ¢B"ñÌ ¾™¹‘¡!/`X7 Hd×óùýX8y¢ ™g/¦Nè™êŸë·>‹Èáä "×®S¹› ×/q%ÇÌãM-[F/àÉ„„©Ïk,øÀˆ¹¯Ïãª`ŒÛK|úU'ª,#´T@Ò…]¬ÚbÎÐÏ:bC>·÷çzœ†¹qjÑ|–ï #]ïLßO>f°O¿®Ôá£ZÀ¢]/0~º9È’Ù0mû¯Ë1·÷gìœøþ«RIHz <šøÑß¿e…PBÄ•Œ?ÿǹp/tÇë2¿ŠlÉþm WãÀË™}#BƒÚp%Q‹ŒâE1{÷`óò;Œv.«Ï¡£0ÿG-±k{—+g| ™ÛŽújK’—ú?öÎ;>Šªëãß™íi›Þ;$Jè„Þ{“&`}T@P@EDìØ@EQP@¤wé ½BI éuÛÌûÇn ½¿Àó쟸³;wÎÜ{Ú½çžsI=‘šÐ«Ÿn.ZT4¡dñh’ XdP سÌÃÕˆ_;„@-¥z‘³c9çLýiÞ¨/½q\Ž'r µÓUiNêðV<Ý1“øÅ*¬µ]N°až7-Wµ£­`$Ò%ž©[Ï@S'În\Æú“zº¼Ò•0žÕèкÇR‹ÊuŽ{ !Ø à'ÞÙK¡ ˜×3û“8ZM}™ ãˆOx3z7osBί‹ IDATE¦Z­Fþìs#ú ¯‰‹sEËržÝ‹¼h¹µ=mÈ«\Äî7r¶›+)é—i;æmz…•ûP»ŽÇ#„u¦{çz8 `ÉK'È+2 ¸j0îœÁì´–¼Ð³Ï¾ε1¶Q0ÈôÕñÇ9¯èD£N>ÔsrÃE° ;8•ƒ—)°DP‘4mD;vÌgær«þ—Í2göÿKí13y±®¢Ì?‰Û›JžäMÇ­ÅãS7‘—–…TÅñØ> ¦[§ ’“Ê¥«¢¿}})À¥ùk÷Yt5{Ò¬°¥¥Ù·ƒŸ÷&ÀIóý.È´ôQ UÔ¤s›öT*¥,=žÃ)—hýú;ô ¯Ø~ Z÷ˆÁS.}qb¹£W{ !Ä –“ï ðŠŠóy‰[ùúµ/اVS¥v%4ÎMñ<ºwã@,4þ/7*à×¥BßðãÚš¼üà ûøhø\ŽZT轞dÊ']!v3¿®ÍÛ…ü¾]Edó'öêT[ç±+7œÆÚâp™­,$»ósôªŸÎ¼×f±3³Ù”E¢Ë ò"Û#%€VÐX£5Š8xšê!JÄ„"¤àÆtëÝ·Œ,6ÌJ"£Œ›6â5èÕ+ädŠ F,²`°<ⶬbía'ºŒìNx8X¿&aajšwŠ!L<À¼o!Jû ó7aDCßIßÓ+`_ û‚ EF=O–Ïð\ý‹|úî".Š´æE^ê¡eÃÊDŠ.­aû¿*Ú‹!)Ö€Cü ÖŸ*¦Ó»_à¿d$ßžQÓoò7ô(æôÒ÷xûD4 A5»1â­^8ÛÇ®¿ç³#ëOŽÆµÄ×1šíá­ç·ÉsX&™©“~Jõœm|ò“šº®Ÿñõ:G?žyçcÚ8§±sÑGÌZ›†JÔS»ãs¼:(ÀêG *TœcÉÔ¿Ú÷¥Kƒ@Ê÷•¥qx=æv¤-¨— ²O.eê¤E\T„Ñü‰ñ”ÛVìÇìMëú( GùiaM[‹lÜêBUÕ—|¿¶£~z™zŠ ü4pkÑ9yÑç­9´6üÆÛã–¤ñ FË'þŸöø]e¿”1ôéBlF…j;¾ÝþŸ0BsjÚi²•%ÏÄÑôõ©<u_É» úàç¬@ ¹óGr!ßBkTäoþ€¯r»0¤G> –JH8ãÝ——›à%BHþBÖì/Äx§ZÚŒþÓ9·Hƒ ˆ@,ë¿p§ùŠötPI\r=ÇØµ§0·ôµ5ï(a‡vØaÇÿ+„ ª·4ã×z½B ØZwØ–I=”òH½ÃK/½DÓ¦MË>çææÒ¶mÛÇf R“S$ I’ËJU—þ®¯›å­ÆÚ;ì°ÃŽkq† býÜaôéÝ›þƒ†±"Ízº™ Ðâ^¥.õ«ú¡2[³äø­üöo:¡­^¤sË(\tZõn”žÇôøŒxáIjD¹!*4¶Ÿ7€Ú½Þ½Ïi“'î>¨Jô8ªX‚jPëTñ’„ èü£iÙ°Nf«ÈÏÛÏÚkùþÍ~ôìÑÓçs¢ÈfÉs޲ÁÉgo-Š\Wœ4‚µÍÐÔ>q‘‹2 ·.´‚Œ1û<§œRG2¸˜™ÄéJ5G³^o-­ÊyŽ[ñ÷ÖãèêG SÛ>~޾=~!â·wi«»ÒÒ ®•ëѸ†?³”P\("˜ôÖ «>„*™%æ‚”ÁÑ-{‰Ë4 ÙÖ5µ¾5hSçÒ C§7|Åf×xëéÎTöÒ Pé€"âÈéTŠl÷Šú@ª5¬†¯N‰€„Œ}¾FüS½éÕûIMºÀ³z_µào ¤D@2é­™WNADä˜1ä$‘’ç“FDަöÉâå,r²q×XÐ…FQåøÎÊFŒ>ÖñWºâ¯Ðã˜xøb48X=/Ïj$fs¹äéÙ~¸:X¬mGFSëÈ9ÎßÍdúŠwVg¯åíK"nAÕh7¨vèB·žÿáÏ3®ôèW•'øí½ÁtêÖ•?¤ˆ" ³‹0šmare#ZU:CÜ J,–ò²Í6_ˈp7<”)¤[JK!sÓ,†Ö£E„RN&‹­MM#Z†Çr!3„^“»±³S7zôÀûKM x¥=wVôÖà/X(ÉM$Î¥>Ñj ™dv¯Ÿ@'º3dÚBÙö5ŠÎ~D6¨I ó} d)µ8]ZÎøþ=èÕ§½{õ ûØå¤¦ocÕÎ0Zuñ»bÁÈ!(›¼sƒeç+Çù~Eª£iÒéŸ?×Οþ èµnp«3œ&Yc˜õó~|†M  *\}0¦O¡ËËñÇinn®¸èÕ÷7CÑh‚ˆ2ó,û-UiÓ¤îeÓ][¾ççá&'ñˆˆ*Ÿ™â9¬1cpqBw'|¤ÐàY†QþhL69OBëÖ¢’§ ©|›¦Ò½uUÅC,=£4›Ü¬@›®qö‹ ,ö8/fÃü%ÌÙ'ºueì¼U\4€¿. PHJø‹_>ÿ‡ˆás˜ü|$b׳>9…ßÎäŸKÁô5…F´D•–M¡Áüp³Så".%&’’Iê®oÙxÞƒfƒ>bæ šlZµ‘ÃÙδz¾‘xyÌxÆ T±è¹Iu{‰c†ÒÐi×§ÞÇ.Ô¢só߀½—c‡’â8æf vÉ?¤(bùùg|5¹%Öï&.)‘Øåï°QxžQot£²B„“ÇÛMà­×_¡µ~|qÓc5›Q(/²qѺöèÆ°9ˉͽÅ-×ø$u©áV@A¾—uC”Ê@Ñmâ%2ÁчJõ¢ uu@D ‰Veó—£èÓ»7½ûöç׋¶9°Å@Á¹¬¯Ö€:–BŠ ½¬~Æ“`I‹*9lÑo­-X}Šýbu¢ü´¨ n3?WoFc…Õw±&›(ÊMæ¼K]j¸Zïñà"&öÄßêÚtÖúŠã¬ú!œÚ1Qx(D›~È!737ÛÐ:úG~êI˜È¾x‚ÿÆ‘Sê×8zZ¯áŽˆ²-£Î%„`§|6O}š>=—RóÉ´UJóγg×~RméË¢˜Á‘ýл×<ÿîWì¼TѪT´ÏWÙÜrK ezÏ%¨õüsàøa6ü´‚¯^ïÇÝ»1zîbâ :šŒz ÿã¿ñr·î<Ñc!•z´%Êß…ÂÝs˜žÖšqÃûP=B -Ž€èj þB9yÙ¤»Ö¤Š^Dçì†5Éï"§M^xúxãvUpFíU…†"qµÉ…Ùt€Õ w±äƒ§éÓ³'CÆNaWžŠÊíÛP'0ƒ»Ð½ÇTÒýjЬq8Ò‰_øô´?}z §›ÈP2ò:WóBíBˆcëÞëGïÞ«©÷×dZW ª0}?«çÿ„ö¹é|ðÎÛ ëÛ…Êyk8ž®¥ö“Ó™õB}nÝÉá¤xbÿz–¼üz/ªibùå¹ d·y‹ ¯ ½×JÆ®ˆE}„=kþ¤ ÁLfŽé‹oQ¿mL"8Ì‹£©)œH“ {??\ NcÅ+㉋Ȩ×ßäÍÛá/ß¼®Bñ…mì½t¿ÆM4kÑZýc¯HjÄçm9ÂÆÕ×Êóµ­ÈŠ?Áþ}gɾú+³I2c2I åsæÏ·Ù¨|ž¯Oà­¶.|öÍF²Õ‘tÖžJѽÿö‹t<ÁïÓ×:l“Ÿ¯NrÜVK!wÏ<6ÄÐaèPZ…Âù%+I«6˜q݃˜?öÎ7ÃØ6|:o y !­_fúôiÌxçEš^äëM¸U®JÕmiÙe#z×DHKä²ñ¦¼Çam+†ŒýWc2á§ÃP|‰ã¿Od×ÞÿÏE›ùtþ> :¢»½ÆŒ™3™óf_Ü…³,ß“„V%‚ ™œÜù/§“ ®ªÔFM6òVß¾<ýó9À‰À`g²ײ`Ê2üÏfòÐä'¯fÑþs䥦’’Qh•}s6qgRÉ/ÊâÌÒ‰V[5¶‘жL}•sÞaâøñ¼>ò"M{Y2§ˆ¾ß|Ág ¥¶>•u«Îa¹Ê~‰ú@ª6¬ŽŸ®Â1&®a„:¤±||/ú>µ›–«ß¦NþNV,ØÈ‚·ûÑ«Gw^žò5G …ký_GüK7ž`¯²uµdÿ3Oòz1ù¥^Ô sQƒj·TÖ1}`¾8éC×I½­Ç#]…k5c¢ðV+mG¹Zç~n* ]H‘ÇÏqѾ rgÓ#{Øa‡v<|”.o þŠˆeÁ_,`È3ÎÚO¾déDzôò}šßy9L‹³YºÖ?·˜­8¯7>å„ Š’-€" *•¨‹òÈ+öÄ¿ò zÎìMåÌ#,ûá(ëV…óL福ozðA0‘uÉHnXO†´ÁÍÒ”èC«I^»‹EÔnÕš¶*¡.NÄÛ1áÈäE F÷Ú4kM‹Zah*7&|K<–5nUprt¢jÚ„d.åKMoÞxª*•1âZp€-ßl&©Ã3Þ'z\¼ƒ©^;„ù»²èV+¥msé»…ü´ô8–¥z´–,Ò.×¥z«†‚:Ó»]Cêùj iD›FÕ ÅŒ¯¡kg$ᕺ×êŒGÎTïö"Ó<ƒì¦O׳eeÏÔÃó–÷Ú|’yÓ ÍßÄJåG‰Ò‚ÁT¡D¾‹,—Ù¼¬Kõ4ûiê9; ¦,çÃWçSwå`"KJˆ=°–˜Ž/¢6ý e!M* `¬Ð&üõòB; §º¯ àä†_ˆé²òŠÍ#Æ‚=üôæ|þ1>¶kîU»0ê³*ì\¸ƒ5¿ˆtØèš ð•z^@¥rI©DUPD!.Ôí7†z(Ð+¯Ô-×Ú(G¼0YϰtÌ'Èó&Ñ>ò)¾ø£7ÎÎVŸÅ?úI¦,j‹A“Í‘å›Ø;5ã»"T´Ïõt¿Z;6`ä'Çx£MGfêD°hñòkÉsŽ ÷{š‰_ô'2ë$k~9Àº¿âQF­&Ñ·Ãf½HÒ—¯òõþ3<ßÙ—ÝË—±r×Jö|¯F²“W¤äÙILn ¹ ÛXöi,õgO£ìÙìûâOÒ5é]¿ÒU%Ñm0•û`²\ŒEêÌëó†Q3÷±;7²zÆüFË$ççÐfê7¸í˜Ê§Gþ%¥g} ¶mdÕïq¬ø~JÈÍ3òÔ«~þ¬üík½÷”óûYóÕ÷ì7ÿÁ÷Zy¹”ü›È´i/Ò*Ì‘$~î»1S¨ª³fùý7òd™{XöÞG¬z#oÿ¼ýÕSTÉ:ņßö³æ·Cø ®ƒ "áGòa›³üýÎ/¬sz‰îu<ÑàLãgQršå#f#}7‘Öz@.$ó⎙»óZÊxHç9ìAõ°æ´ªŠC•&TÚyŠ ±¶§sÛ9BÖrvˆ=õt ª*%-Ѭ|=‡¦zã_«'Ý›„â-+¨v!“ãé¹Ð±!u.­¦èBçϯ!´Ö³TâšZѧoêùh!ý4ŽÜì(,ŽýsžŒâzÖòáÔ_ÊËkЖ˜0ÉYd¦ÕgЬWÈs½•ƒ «8‘Âè>£™ÞYëÍ¢J’9°3]Ú6 ®· ÜàÿO&F\ Ž Äe›;µÂ"¸”²—œ 'Ú!wKSNý›ÄmÇ0ù6¤qdkZÕ÷E]t Á?šÆ ëS]FàŠK4jMTHü¶g`œŠö3{è×\P‹Éz¢ú¶ƒ¶¸{âïEåPn—PeƱ«°.­ŸmJ“ꞈþ-Yðì´öGQ©=;T§ªR"O<†×‚ËH62mÜo¤ª%²TUé?Ø "*ÙˆDF~7 ô8 WúLm&-¤J–ñ_iÝõ(U‡¾ÏŒJÙ$ôa|—¼$H8½Œ›Ž’ë爛h³î‚ˆB!"ȤÀNt.µU—W²ô|^}«UDû¾aÕþŸÈºK—3œ¨×;ˆî]+Uír}víA&´5“¨ìS¬zu6éá¬ïÅ[óž'*ç<»ÿÞÁêy» ÓøšªVK̯ðÒ»TsÌdå¯KY}|3ÿ~+b2•otføG¾|­ .M:׃ëö²îÓut|­¡Âõ}îr½+"`)×Ù*ê‚ Øq'°€í°Ã;Ê”Y(+-\ç²-#UY’)º\ôÈÐ>sæL"#Ëê^’ÀðáëþϺœeË–(_"/ßÚC¹vØa‡,¸N`òéBÃ?çq*o¡.WN+M@pÛW™Óp0YcÑ.>úô1Ïv£e¥þ»>ýšýÊ:ôØŠà²U8gï œ "¦ÖD¶ŸD'ï›õµ„$²ÂêuX2Ióv!ÌE‡ 5ž¾7)kM^øö/X¨Ì©ìÙ¸•}Y5yºs”µŸ˧ÿWB—WóÅÞþŒù2œPBñÕg,žþ9›;~D}ùKÈeôeqÉÃw*“ˆ(ÚP…)\¬@wÑ‚¥m+!efD'³™£’Ò¶– ÈQI˜Üq?ŸN¡­è#¦tƒ=¨©S ˜(J3[.§_5„€ÄÛ–Ìaûv5ñ—žfÌ‹~èy‰×UKÙ½ç/bk?M7oÜ|ˆ_Çy³ Ud&~ÓŒ"I6g5#ß—¹š—5~Ôí7–¯Û— "™ í&ÅAOiצ¯ÿž35¢y!"Øš]Õ“Ißµ¢DV ÉZŨ©~IËùôø & À›¾ŒžàÆš¿p éhêiï¶ ö0·çbB¿žIï +7«tnø…»AäU>H^AÅ&+›ÜwȲRh8•+ÐM'—p´¸?í+F*Y±Â-¢eùžR *çBœÿa|_;ŠÏ»¯ãÀàhê  qñF)êÊÊ’‹JnÞ!¸y1¼š?î“7‘úïYrÃj£¿oQ–‘üü ¸°†Ø„VÔ r-À\âBd}$ ‹¨(/‡-ˆ¢Áb¢DBÓSü´‚ŸßÚEà ø΢”-˜-¥úÀŒ1/‡Ë45Áy§*{úâëéA“è8ö%i‰ÂIñp­¢ KH’ˆèâe F+48 Jrã/pÂÉgU\,–Gë8YFV9ã許ñƒˆFTXãö¶y–Å"C±£S€-)¡Ö:¡Íͧð~ÒâèIhµ4]·œ •Â()ˆ¦ŽG :EÓkì ºµ G4˜‘|•ÿ°M%¡×IåLçh xɨtÎèŠò³fµ£á€?5ÃwrH]€Á7¯]_ê“|Bÿ ä#f,eö4ŸŒÅßãzƂ٤'(2‚ÊZ„õ¦¥×Ne&B“AÚù@ªQ`>-!KJ«^•òÉÖ àînÓo—ù{Ì,â›=ÍÓ«Ú²Nó9wÜŸjË ‘lÚŧO.¥ÒW3èYa×€ÊA—C]êGoä¯äXÒsáëzs;m–T6?ÂŒ97›Ë‘xJ¼]nä×\Ù×ξ!8Bƒšï°ûÜ$Ú7Ðãd½WFD©Ñã®B0Eœ$#6›B ®hŸCp¼æiZ¼š fö¢Þ˜0“·–Ï–;ヌJgõ?}==hT7‰ƒ)¿0cu6¡Q•0s@õölÖ«O§7—²Òd­ê@ò_ŒÿLÁ›ãZá¥obÞ¨íÔüü:—FÒ)äÀ‚ïØžN××:SÙáöä_¼ ÷ ÐÛ9—¤3ËX¾¹1M×DW*Н¾ãÌžc´}ú3~ë[€AV£Í^ÃØé¹ }»¾Â­W_|<Ô_z`U8”äËoNÔº Kƒ¿>¢ðå·x®‘—mäÏÐ0<w#á>{È*V ÑùQÙÓ?Obê$°=9ŽKr\›7:¼i\çV¦åbÄ \üBq!˜º5&sàÜDZ×µú“ £*´\6,$¥#:›¾FDmó-$µzu„h0btÀCiÕ‡*t9ñ(¼Qi]­6@Âz´‚lF"zÑÉl±üÅ?‡QýU?\NR¢óÆÍ¡”„›n *ºp„#—ŽáßaþäpØ"6_Çx‰¤`Oêj`t¹FžOf¦ÒÑ#Zg´Î·’ Yëk©ž•èDk©C‹EF–-X0c2 ˆ.¶ª (‘‹‹(qvÃÑAmÕE’Œ¬uD«”@T qpF'‚¬P¢d ãÿdÚ«;hõÕŸ|è’Ê‘Ýÿ°ùb!2îV:l£“Ö W'ÛK9êqÊ=K¡,ÖÓÔ¶ )Ô8È…\8ô#?ÌI¦Ïüå´ÐœaõªÃcB@%ËXPáæï{ƒyTá®@à¾ÚÊ/£V³gf Jgo+߈*t¨ŠJ0ˆN¥V ëìE–‘5å¶Ê˜O¾`;šÌqÀ·Õ[Ì|·9ÚJ´ŽÎW”ž¿9T¸úWÂÅË‹‘±÷|sœ5¾TòòÅßË‹zõRÈþ÷I¦Æ¶,ÜR='Xƒ¿góÜh6óED§þ¦™IB’,œ[Áô_õLxµ‘Õ¾jœðð«EíÇIØwˆ„ŒN„zß|å,˜QÙ̘„9ë2—¢‚¬›Hí¸Á;ì°ÃŽÿß þmæS²`=‡Ö"`.1=2ô:ôŠÏß~ûíc7F£¹Bö¯ü@VRì í°Ã;®ZtúƒïVdY'$éGØs:ÿÒ™ªBƒZ­B¡T£D­3n^¾øz»ãìë†N댻«3Îz¼¼}ñõöÄË˵Êo½î&œT¶}3—¥çýéùnj¸T¢a«Ħä`,ÿndw /¥G4‚¨Bˆ»[8~ÕþàÏCÖÊÔsé¤äûàÍ^vÇÅ+wB©ßz' ‘ãÞõì ö'X!m9£:üLÄÏ_Ð?ÂVz<ÒÓ’ˆ×6&ÚãY=ó6Iµé÷z7"l ~Ù~`åÅ|[M,{W‡sÝõQF£D¡T¢À™J‘ý! ÀùÃìWÑê=P™v3åÉQ,8˜‰±âí¢¨´ž×)ªpöðÅ×Û _oÜôÎ89¹áE+>œÄ´¯·’"UX¸Ó¨­÷j•àé…×y,?jv:•\`ÿ!O¼õf’6/àí——„aá"j¯}\,ŽsPÎmKZµÜÇ©¤\,€iïFöùH3šuüƒŽ(IÙ¿™cáÕ©áLp­5ÊrS8™qŽlϦ4­•F¶GÀ‰ÝìsQâ¢hI«NkÙ{Â:ÎÞ½Žý•Bî" íêwV]‡·²ç\!•ÍX¶-bËe#yÉY$ezᙿ›M»÷s²È:¦ÿÓ¡ÓkPˆJ\<½ñõv`÷_B»æ#Q|öw^ë1Ó6ÞThœñòõBJ=ƉØÓxÖªn `œdÙgª×m@ˆ·ÊF­NÚÐG IDATW/|½uìüâkÄ- õtÀa÷w¬N°Ž‘œ•Ìé87\ï2økNü“‘]ÿ Ú/séf+1WpS;ÿdu@çOå“gqC_ºˆ¤Q£P¨Pkµ÷mqBD”*õUW›ñìÐÞíþ5q¥ëf¹yìÿõ'.êu((»NB,GKr‘]\ÊcÔe㬻/ž»·¾ÜE‘ P:à¥,&%̧,«­4E]°dp`ç2æ­ND” xi\ò-Q˜Ã…¼ Rµ0Ø‘E?¯àtniÖ^,Ÿuý€Âö-óõÁgßö•*c!çÏ"ÉßoYÆY«{3ÆL¨GÜï ùvgw<“Q¨Ñ¨•(”jÛÙÁ6yS«Q*U¨5ZÛb`©*DQ@T4¢Q‡Ål;ŽïàLHmêù¸¡ð^ÁúX€Kœ‹- ׬¿âŒË‡dÇbJ¶/d[!q‘ãªT=ºðDA*YgÒÈЩQy€c¹™‹W•^öoJ+Ó ž(åCžjtÿà`±Þ>¾øúxâꤹʧ.×…JQ…Fký>uéþ.=–E<Á Õˆ¬ApÍÅü¾ ô ©$æú¨JdÙäOùvéQòLûùdÐÇä ~!#pSZí§ƒ›7ÞÞ¾øúúâãá‚F«GO§VýÄn€‰ôø\.ÇèÏâ·ç0õI«SN…¨B£&4븄NXÛO9¸…ãáa7¬öeÇõa϶Ã;ìxD ^oÙëš õÃÅŠ+ÐëË÷ÿîÙ³‡)S¦<–ý-YSŽìŒg‡vØñÐ|òb.¾Ð™˜©":§Þøcµ)7ž5ŸàýÖÃÒöÆ>ÅØ·^#Æ£Lyc±X¬:ü {iÁl.?+òºz?%‘“§6±n×rÖ¯™‰,IxvÇg&4r"½&Ç“O3Þ^ÕÊj“ã½@¿9ÇèÒå{†~¶”>ƒ‡3}D 1Ti=„7?l‡ó©ßIwÕR?$¨ñÒøßI¡ˆ–¼·¾9*·®`Oî öôl̇²„Ò#„./½Cë³èõÆÎqÓXÐFÁÏ#{òÁ¥B@¦Ó”MŒ¼ªn–T”Áޝ_dìïÉŒëÆøÞ¤ÁÙ÷˜Ò"†D"éÿÁÛÔ¯¤…â rò(2Ù™Hùã?ôúø õ}Û}ÍsŸ­ahT¹O"[,X,Ö…¾’‚| ´F[)1âݳ2õOÎg˜ØÖb.¦måÝÅ#Ú¯1‚€ÎÑ:Î5È'ÎXD^®ˆ poЉÚgç2½e ñT¦×„7‰ Sâö.>Ï¿I·IIÒ‚wÖ6G…@‹I3ØÚ$†A³[?>YS(¦Q‡V¼ß-†éøÐ°÷HÞnîŠÏ9u £bf’N-†ÏëG  T7‹»Ó,·“Ü…™{šÝ_ç?ܤ÷sqhÞþ}m½òËÈ®1LCGd‹ç7µ=ÊX2×Ïàƒ×ŽS Ô<—g«¢;û#OŒ˜OZv1U^ZÀwì‹æò²‹¬Eþ Z4™—¾ú]D†ýˆg¢Õ€™#ó¿âH`m†×¨\–A*œúŽÎ#~"+ß@µWòý³Áˆ‚?c¿Žcè“1|…ßÈ®ŒÿêÍ»,y*¿õ/öfDz·[c&Ëjß* ÿ!í3Ž0wÌ &!­‡0¾gS<ãÁoxeêÏM2²vë§´~÷oÞëäö^rJ ºÄßÙýsÌ¢ˆ€„$Uåµ%óyjÈw|' ᙘùˆHŽ~Ô:‹ï»â7“Ñ11ä¸Ôç¹·^ç‰ÚÖå¥kÇy3“Ú8"ÞK$X߈ÖiƒèÑ:… ÈRFü6¿l#‚,KÖÈ œ-,þ '1“œiøôX^o‰úžµq~ù”Ÿ®â"zZþg2­£Üp«1‰_äxþÉ–¤å™@–éüáf¾oí€(2ö›³ mÃDP{Q½÷ÛÌÎÎßÏb)=S9¤ “_KáÕwF3奩Œé^ýmô™”—Äú/_aÒ²4öy’q“Þ &c9§ÎeÃÉ"Xþ9 _ýŽ÷Ÿ­‰rÓDúNÝDN‘Ä1³èóÙ^^s›Úă>áùxQ"atï|‘Ù£bˆÉv¢þ“cxý™FQ¶`4è¨TãIžpqmb˜€?-ahý†xùæðæ{ïÒþ³ k&YÀz?ô(°Œ$ÉH¢I’±”y c6K¶Ez ³Ùb g4å퟇0x` ?¢ÅÃÿf.‹¾ïT©ÝÝй×BÜ¡ ÝGÀ‘v£^åÒû3ÜäcŠúóÅ”LWLL‡fЩñLQƒ[³7ømzm ˆ »Ö±b¡D¿/;“üÃŽäW¢ß¨*l·˜â¶mèÜ1 çGÁ±Ò»StjSƼÇx r·1Lhsó ×ø$îAô˜ô5ƒ;6c|צáKã~¯ñV[k®•ñØBÞøð[öž/aùúÏh>þ>¿„ίõ§ÙœÌ–ê¼¶ä{ZŠ9y`B›÷­%CÃjÑ ¦&S:Å0ÙÆÛ/6uG:¾†Ã)»Ù7ó""KáÃæó‘ëj ­F¦°VI‰ßú{3ϲ·[c&Iÿê<;b<ÕÏ®äå·§Ö~8ãFw#Tq¥Îß4‰~SדU(Ñ3æzÏÝËØ·ßgsËbÐáü 3—T9Sq!ùy:[!]ó©?™øÑçl9]įN£×çãH ß¼Ð)¹% Ët›¾ƒg%ŠN“›•Aus/òCß>ücz1fB|±\×>#ÈË*ÀdãGiç‡4óJš]ÌŒNÎ@mºöíËÜq1Äd:ÝõUÞx®U,Q|7~ÏÄL¢oúLýŒv!WØe 3X0r~û_ìII`OÇõ I8F¶à¹§»#ßÂÚí±nåtdI«ÓÌÕ‡*åÁ“¹j ½>܉Á ]›Íá©Ï·óʸÙĽИ˜qjüªö`üWci¬MÄ%vZÆ Í†Ldt—è+3% ³Ù\¶ÿJû†Í^Bs©˜ü\ÍuJÖZç(TØÎþÌIó?ˆ"’$Q}Ôb~hæÍ¿OÆ#€ÎÅ‹g>YIC½…ÐþO3÷ kVïøã&5£RæV~yoãXÃè þó-“zâuZfè3-˜Zd$z}²‡>å«wî¡èØa£»Ç0ˆh\ ¿6Ôö–+Ð)!É,f©Â%†‰¿¿Êàþ1Ä*]ú1g}c {ÎY+&T·Rݪ«N­ÊõÃ*ãáPѳjÓiDGæä•P³GªZ¤ë„ž%2NneÕ¶Ý þ¦ìÌÕÐ/Rùýx%f—©Å¾_'·˜N£\!Ï1ÈVÝY¡MSI!yy**Ù,˜óýØÙ¬Øuž?×æÝ¯kQ\!mµåvÏb‘ ¨Ó›g%1®] ñ£Ù³ãx¹“;‹?N@Uúþ²mÌmÏ7›KßÕ‚ER  y‚.íh󎮄ÖëDOFhÜÆ—-S^¢ëɸ u ,Žä…¯Æñáóch?'-xg]+4%Ël6«¼ÿM‚>‘U©zéišÄ€[HÞ!íé„™"IB%˜)ÌÍGa¼êHŸÆ49Þ‹˜FÖ$ ­K#Æýö UÝsüÚYFwŠa ^Ôï1’wz´Ç;¢€w¦¢ùœ"šÖCQÒGÙRnSfगx~@ŒunåêËÙKùf<ûÆ0 À±*]_y“·ûDU(þ P²çS^øp1q—Lli=—Žnå}Sº6æC-æl¡e‰ì!£912†˜K:*7ȸiqãù…›ã¡Ý쿼—so=É6Ù«úÊB抠4”.KfÌfµRÄ’±‡×Z|€_ýîŒ~çeµÇÙ’[ˆ¡Ä\V—±pÛ4ž™ú7©9žŒ™M÷™»˜0é#ëÜ5z¯ÌZýxÙçGÿ5éICBd!2bcË„Néíƒjâ$wжm‡vØqÿq†3 dàmý¶š… jT¨P¡AƒFP£Ek½.«Q[Ô¨L ÄäIÌoñù©ùý=KJJÊÎþ5 hµ7N¹:«vÖ¬Y¼ñÆ̘íŽÝ‡£‹Z-J• Q!" ØölÊH²ÌuÿÉ忱¹5¶¿?•;¹vÓc‡v<Šˆ=sŽ„¤$š·h„÷üu(¿œEEe:KôÀñû‰¤S‚€@HhÈmW°¸“ä²ó|n ;ïå™&³‰ôôtün¢—ËŸ —Qã6¨¹ò×)›>fy²7M»=G-wnð«k)(J9ÊÚß>ÆÔógú‡ßŠÎÛë›Ó|뽚¾»Ók{öÖ­]Ÿ¾ëËÍyçN®^.£ÑÈåË—ñ÷÷¿¯ï|+Ž¿–Ãn¯×nw¤nÜæ¿ÉÊÊB©Tâââr‡p»\pwòž_Á`ÀÓÃó–TÜXoïúÐi0ÈÊÊÂÏÏï®%æ~ýº"$I"%%…ÀÀÀ;䤛=óþèêø„xB‚Cn³í›iä;Óê÷æRTT„——×}¶Œ7 îôtûˇ¯_jO þÞÃÿ©©©xxx V«ùÿÁíj¶Ûk)11‘à àû$k÷fýnÍÓ¿‡“’’ðóóC¡PÜRgߨg¸µÍ³ ØòI7NwÛÊ«5oe篥àà쬭·Ž7[”Wu¹sÛÂmé‡Ûµ²×÷Änï¹wÃM·²™·ïÑÜ®¾¹Ý¼]{§ï÷åVÜq};r'¾ØíhŽ»÷™oãΔµ¼þy,õúöc@]¿k䢼 …±¿1öK¦Íí~Ë#"n¯'dJrO²xâøLEG—{°aà¾Û÷Wî‡ÔÜ oÞΜàv{áfzéÎfˆ·¢ðæ´ÜØ‚Ü[/ÞË|òöí´ŸŸ?ÙÙY¨”*T*Õ5QRAeA@˪“f…”}•¶„øøG:Æj/m‡vØqPj‚Ô¶ÀîÍþS¡¼â?% ”×üU ¢@”DùÑPÕ‡. þ,[¶ì±³Š¥Ÿ\h;ì°ÃŽÿ.;wÿ[½^Ë ¿¹ϼö 7zâõ©©xå§{ kìÎ u=  „œÌâv&&üvè¼½¾¹1ÍwÖC÷Ò¿·çÛã²›óÈüúvÛÀZ¶î¼³p”ÜI¯ ÷(qÜG‰»¹|ݾ„=(9¿ÙoNɃÑKwÖêƒ×wöÌÿ]}ûùδú£lo+R—¶yÃzÄCÌsGÒ¿ >z5'¹¿²&î@sÄúIBº“~’ÕøÕìÆè ßé½v<0HRyÁÁÊ;8DA´UE‘lUP ŸI„ò³à±1ªHË£D—E²üÿèûU£<~›1A°ÊƃìW|ڼŷmÞªÈewnkn$ß²U¾K='Û6ñ>b¼#Ø6=j~“(ˆe|*È•CKÆol wçr4¯mŽÙÊç²Ý/²ã2v~—±!IÜT·h«æ—½ƒËn¾7]$ùüÏì}¾lruËçÛa‡ì`;ì°ÃŽGÙד­¥ˆ5š‡»Ë{àÀ+Ë[ûí·u¿zûúس~í°Ã;nwê/@rròcI»$K$&&ÚÑŽ;ó¿l;ï”\ËÏË$ézÔÆèQæGY&%&=Öòñ¸ê I–HOO¬sjUÞyý&I–HKM³y;ì°Ã;þ§!ÿ[»ì`;ì°ÃŽÇŽNNíÙ+V¬ÀÛÛ»ìó‘#G˜2eÊcÝŸj[@ýFFÿþ„…íÁe;ì°ã¿²$ôØÑm±XH»”vÕÀvØqk˜Ì&2Ò3nó àÿndgg£T*qvv~¤è*,,¤¸¤øg?<M&²23ñõõ}´ô82ÉIÉ79øá!>!ž   ÇR>ŠŠ‹),,ÄËÓó±¤?55O/OTJÕcIBbÂ#É;*O'%%áà_– l‡vØa‡ÿ‹ˆOˆÿŸz_»Õ·Ã;ìxHoñ¬JA ~htvèСìÿ µk×~ìûÞÇϧü|?ùÆýo‡vØaG©Ž|ü´äÿré^;î‘ß%»WPÖhÅ”GU¾eIz$ûËÎÓn¼yÌ+ =®¼!Ûgov]`‡vØa‡vÜö `;ì°ÃŽG`úŠ,€ CÙÀ”(A Rdå‡BÙ¦M›Ðh4eŸOŸ>ÍÌ™3節ÈÈÈ+î}ã7ZW¨ß¿ÒöÉ´vØaÇ·— Låým5ŸÄ 8y{âæx§UFr2²(0;èçlîÿ~–ï{áÕ##ÿ]Ùa¹G Æ‚t24„…¹¡øo{=C û&b²HøE5&TÿˆÒiÌ ö¢LX¤7j»äßGÉ—0ägtYEX˜û5H·|–ù2±gÍ„Eù^3.v uÿúá~÷å­Û{8£÷ÀŸ*“‘–‹Eí‚·‡ÃÿoÆ]¦,JåÔ±xrE5ÎAQÔôÕÝSÓ…ÉG9_ŒÎŇðj¡¸Š÷g4,9çÙ{" µ£+AU«ã£}œ¯ˆK)yz¼ÜtÿuºèÎdÅ®ØÀvØa‡Á˜b3‘W/ý]³hË{8À•+_x®U«µjÕº«¶ºwï~Íç*Uª<”÷ *Ë®®ØÏÇçêñºÙXÞí÷vØa‡ÿÓ(8ˆ]@¡Â»z3jù–L…™¤§ ø…¹ÛÄ­“KSúq&+«‰·C ÷âBn1fdÀ•ªÍt×/Är26…"À1¸:µ#‚pV™H9¸ŸØË¹”L£Q¸^aó9´€Àh?Û¤…üÄ£l?šŠÖ3Èj5t¶­†¤ÿüùétÖ•Øóœ½œ‹[›€!…Û‘)‰ˆjAušQ¥tA¼ð"ÛW¯á¬º9O5WsöDE8‡×¦Ne_%$îù—³yÖ÷ÃbházÝ7• Y$%HøGx¢D"/ñ 'Nœ#ª5¬N°»î& Sùœ?’O@-4mš1Ÿ ±Ç(p­IÍ ç«¦ú¥“ÿOfâé‹£R ]âÀæ£dÊ TûQ§e Ü®¥–ü”8N9K¦àMT½ê„z9 b"yÿ~Îdåb ˜˜Õl÷»q'eZ‡H5 Fƒ„± •ãÛ“&ºX©Õ+»¡ÀBæ™ãœºLžìOíæÕñsT!`àâö]Ä•‘ÅJ4i[Ç»^)}g?•¢µ_®ám†ì ìßs†Q„¨Tã×kqÞ2 Í¥\8vmmÇ„¹"ÃJí¥ód•Ñdõ£ï¨xüÔrŒ¤dUa¶•jTñ íéz“¥RÂþŸöSï;‚G¦öúï&éa÷ãZ°™×ŸÙ„ã>ÄŽ}ˆ ÈRòšQÈ[’‰K ñ Á¨J.s¡ ”f©}GÄâ£Qül?»FÆïÂf­ÊF_ï˼ucüÍn§“ÈO¿Di}mb†÷"ÀAuý a5”rú›øcºžÄˆH&ÿî?DK­T^­¡MæNˆ¿™¼œ:4>~ø»ÿ›¤­)ŸmkŽ"ï5ŽÙ·GpÓ#¿Rgö§Q¦Â?q±¿ÅQ/#åég¹TÕˆQ’ ¨?ãb<1\=ÃÑœºŽO‰*Gœ‚ãH îlXh.Ë#û|õ‚€ä΀^axjİŸmsm6T’s,“r‹„$ÉpöéIt„+µ—Ï‘[eB.¢ž=IŠÂE-û§}Ónüóè&€»Ñntã·óœ¹vRªëkA°¿bŽÏ IDATlªÁ¡Áÿßõ^­þíŽø…#Š¢ôºð¶ŒìöwR—Ù’ºÝnt£ÝøuÐx‘M_,c]­J-ñnI$ú*Œ-”fïbõî|$ípæÿ>™]GZj.rpÃ_xo_/¿·€ñ=¯°qÁ‡œK ÂC%CBÑö¿ÜZDúX~X‡·W=u†X¦<ô£C÷±iu y& Í­¤9¿Ê«ƒ ͹Ùvö$÷†ó—ï¦á‰æì£,]±•“:3¡¡ýQ÷ˆ#Àî'×gæâÞžÆÃl^™J¾ÅBs~gÜ_çÕþ¹?ðÉâb¼ý%ÌR3êTW^‚ÐVUQ´¯ cÛ~8Õ†»{ 5†KÜÿÔ£ŒéyŠõköP‚™\G¾µˆ°·çæØI™õTæìbÝÁ‹Ô5âå×G"o½@ÊöUìN5¢ojåPÍ,žž6œ ÕÏC2ºü#ìH?ÎÎ-ÁüõûYxwµÚ¸¼ÿ >ù1‡A/ñî¼¾×¶Ì•8zaË—¨yþ˹ĻZ¹²k«¶”V‚:3Çù#¯ðêt±¶]ääÎål?fÀÐÚÆÁò{ùÝœq„4ofÃêSZìóâö:¯ ¤ñÒ"–-.£Í •)ù#ùéÈ9²ˆå+u˜ÕFd¡™ùü$s‚½7sªÐŒ®RGŠù ^˜ØMùrV‘Z‰æ\™=Þâùh÷q_ßçéåªA¸~m»'‘èÖÈÙËXu²µ¨ÇäͨGždJD#gW¬`ÍéRÔ±ÞÈZÜSýVÖ,˦ÊÑ‚T¡"ÃùIæ îô0JHÛþw~ÜÜ‚ä(  *fâS³¡/%ãø^R‹ô¨ÔZt÷q6ú¼ï©bû²Bjœ-P¡%Ãå æ÷s!oë2Vî­C©1cµº“-_À¼ÞοȮ5_ZÇ'‹¯âhÅdiÃùœŒ×æ÷¦ô̾ýÃÌ##жhˆ¿ËŸX×¶mÜÁ…JTí¨@óêLâýÔÿ lÈdùÇßqU눋³  «9UßAøÔgëÒMüÔ`&@h“´¸õ,ÅÝÊŽ´ž¼þòp4öÀÞöµ'pK¾é£Ã°T^àÈõóüo Á6Šw¬cÍö‹ï¾LÇåó¿ÐOÖDö®øêÔ@æH®Xήb#m-ÕšdºÏ—Q±¿‚@–hºšCêÎլˋå™7ŸeZL[W¯dw^3rdÈ(¥f{O¾ø ûxÿ# Ÿ.›'€¥‘ü´]l8­%9º€¥‹/âÓÛyc+ª³•L™;‰þ=þùl(ɤ£4{köæb–çÙg£¬ ŤgíféŠV&=>ƒq}üã•TögbÍ þ¼j.!¢HEÆ,]\ƒÉGÂÐêÉ•à—™ém¥:uß­ßGŽÎHpÜx¼‚"~[d*´ZÅMçæ×¯ð+ÀÚJÅ•bj•*ÂoÆêfðÕ"óÿ1ÿÕx÷/3Q‰£ƒt^û_Ëjj!÷à&¾ýò$ÂPTÍZú«ý rG}“nH×Û$i2^y6†’#‹X±º“ÒˆgùºVŒ¢eüîÿý úΰmÓ.2ËM8:TPµ³ å+³èío;xSrúQÓÅ-ë>^\Š_ £Åˆ{†‚—Ÿ¥(u3ËW£ò7SÚæNÕ½s˜5:ªÓ< ¯¦ÙäÃr7þ´ò!ÂdU™_°tq5F_04»q%èefùª~6÷Öú"ÎeïfÉr=wÿn£|Awˆµ+Q¥2!ÈZ)J_ø(A]lO•—öñíëëÑŠÅ©EIÔ7ü´VΟÜËÉ‚Nú9üy6¾9çv ©§èä—,]R‰ÁW@ÖêCžç<Žp¤>}?KÖîâœÎDHÔp\Ãbð(?ÊöõûÈn° ¯­eGéã¼4{Ûóš²·°råg¬.}”ßOE‘¹šO–TÑ#ÐH«IFÈeÏÍ æòîõ|ûý9ÄA(›èDH€+ÊNkG_|‚ÝGٰƇwÖ&JÚ|ÐÝ?—Ƀ‚QÜd?_ƒ…–š,~í+êGõÆ­MFD_¿`rÓö³-³µF‹¾`?iÞsøêµÇè×£«ÁÐZp”é)ìØÄ_VÌÆ§;Šò‹ÐMw£ÝèÆo‚®åž…ëþ§Ã®Ô5¡áaætÝ¿ …BAl|,‚ í#.]7òÒÏf«³9v«YíF7ºÑnücÔXÌ&Ë–}œÜAjIµÙ\¸TMаv"H€æ"öìü‰«N‰ôêá£hû†(Ás_èþʘ¥gxºo.ÚþìYFyú3|>}1ÇÂÎVꪚ1Uyâ‰ÌáQÞy<?ÁÄ¡W_#3·˜þý^ü+Ï4°|ÂKœ5BXç>ZM4–\$3³‡„Q¨üƒ§)1ÇòûÅÒ³f+Ï~u‰K½ ŠiãÄ–œ%ã­Akó8Ÿ’M…cT—Œ»’SëØ~¹‘ÞpP€Œ6òOž¥ZD\ï@ks)—ŽŸ§XLBD –ýKÏ1|Õ*îV—¿bì»øÝˆ²€­§œ¡ !”'—>NTýn^Y”Çåâ^\Y}ÕÔWøpp bÖŒ]r†ßP±{a q_lâ>(ß÷/Meê£JÒö·1eõßn¾È÷ßmæäñ<\jNÐ4ž×^‡×•åÌY”Eå°@rßÝÏË«x-B†õô›Œú.•g>œð/;Ç]û, Þpm[©/É #ÕÄÃÿýiäàÊ%ìØwž)¡X¬‘ÜùÌï¹g| ý©U¬šµ7–ðJ/ Ô¯â®iÛ¹{ßSDvš“úâLNì00uÕ' ¡‚_¯áЪS x:™žÈöOús3Q£]8ü×õø|°†×"D¨Yγ¶q×ÞqßXÌ=k¾c puÿ'¼üà æôž`Ï¢üW wŠç±¯0ÒÌu)|õø:N<5€|é;asÿ<âZP´ª…A¼ÂCA®hiæ§Yó9Qz1¾ê.çV RÐ$^ùÓt"»¤ 8ý—OÙhüß~<Ü–i)I”ÝÀY³­ZqÍd¨4j” `¹nžJ(—ßÉcà¦¹Ó  šý{šbfð|¹¶‚˜Û Ù¿¿Û>žkêJ²ŠúðÖ73ðÂJ~nr¹åW’È"=’îåé¤8”ïŸÂUÝBÆw_°¾vopA¢Mæ~ýw|²ª7ßÍRãèÐ9ÃLD¦P¡QÉ‘Ãõð žœ ”²ö©dž- ºGÿô±‹‘úÂ.äTà—¬¾&‹ôµË$·Ù“}nÌ%dËäªj,’µ”ý%iñOLs4‘½å-®ÊfæÞã:ùý[û…"r åÊiví:K­àKü !$Åy!§™‹‡s&¯½("÷Näö± x©ä¿]»E->!¸¡'çR ¦ºlŠË®RV';j:CÂ!ûûmäP‡|Ùw”ø cöVì§LRââ‘ÄwEñë6Ñ|%‡ÔL I#pÄDÍå*ëˆèAщCœÊºB‹ÕƒþwL¤ŸW-ÇÓÀ[vˆcÙ¡ŒgY3çv/¥¤LÄÁ%’ÑS’¯‚ú‰/X­ þ<Ó¿K±›­pá:›äËYß±eÔcˆGML[ý7†˜²XüÝ6R—0pR’®šüÔóä±Èeˆ€îÈRÖÖçÓÆâÞå%ô†Z*r\ RDê ‘Ù+ÿF’á,_þ}?§RÊé×߃ä¹/17ØZØ8çYN—L"ÖOƒZh ó¨;Cf:AEõ#<ÀXu”¯ŸYljéo’=ЧWô!J—–-âp~•££ì,NšJÈNÉäªj´]f•³÷ý4ú}»ÎV.oû#XqžY/ö¥úÒ9r*4ôÞ h«¡ðÌyòZ0)ìû­ZAÒï1º@ KǽFšáQõ98PCÄÃR€$y;àiúëÄ.Fî›ß—û:ôs!I18v9RÈÖ7SéóÃOÌp–ô¯yô­}Lú~9ÇŽaH~…•“}íŸm#ee*гøð޾(­{x`ÞYŠo#PãŒTt€eÛá<` ur@Dë3ß3šÁ®PŸµï?Ù̹¹ IÁŒœs'÷=špó]V_HfÊJ‚lö’ÙBá¡uœñyŒµoÇtìÅÜ=¨´ÆðÊWH￵‡Ìì+ô÷C¬:ËÚ-Û êvò;ì®ÎööMÏ‹´UplÏdLL˜?î¢,>Lxñ/ 5,¿ýWOÃåìvˆ3Xõ·¤ŽJB5¹Ùœ9Òymïàô©óX³ŽÑ:‘7þ4ðô¬.ô‹`LŸy§ÃÁh`å£4ŒïÙ¥I†ÆËYwˆB™ÿr®X\Q]=ÍÎí‡))“ˆv7ÃC ¤¦[ñs<ËŸ÷"DVÂÞû¸b•¡qÀä{c‘ª.s&[ƒõ$iùr|"6¢Âå£ê½‹ÆM¡#oçit½‘ÔBÊú=䵘¡)ƒ a`Ç´šÚh\åž$Íü#I3mÿuuÏ÷l(ÐaL»@mðÞX0 +K™õÕyÊ%¢J[ÊÚúa]ö3XikÖa´¶Û?zªs³È¹ª$vd<žö˜š$2ú‰Yœ­êˈÇîa€w )ÇÁG~˜ã9FÌ‚’þwÜG‚Kí$G´²åÇŸ( îÏ :l>EàK¯C¯àâ…LÍ™\.’=4”Æ* Ššt²ËÍÄÝ5 —Ô5­R0àÎÙĹ˜¨8·Ígë‘‹ <5>uiÅÙ§É0T²Ök>~Áø»;#ÒÀ™ûȪ¨Ç(ÄqçCÉø´æq UAj?‡³TŽn œt7Ê&òSw±/»™ !°×Æ °g6 2ÔrnÏy„¨>ÄwΚÏfÍg•L=õ1C(ãð~“m)W¦³sË)jDO"zeT?r3K°ºøäŠh.ãtj3¡‘—rµøŠ‡8–ÈèG$ÖszÙF2Pªé3aQÖ3l^†z¹þQý6,ª«ÍU 1¼ÊCÁˆ´±~Ê d6µ›ü$%· Ë«,~ª F‡vÝw-àÝçL‹%8ûчœ-)¥aP0^Õ7ÞÏ]íGüçòÆ_ï³´#ô±…Ün}vÑ›¹Fããñs«ÀX›OfJ6åNÿÿ]“ñ_D7Ünt£¿‰“/Üò/6òWD[¦ª(ß'á¿Nûí·Œ5ê}wôèÑ]ÞgddP[[ÛñþàÁƒ¿ÉèGõŠF£Õ ˆ¢(v”¾yéçëÉ៪›øíF7ºÑ5ìÞ|—„vIíÌÐÙ‘è(ƃÄ)Ïñ’Ó&¶çmòµ!Ÿ§Qùõ­âãü,T*[Õ|†•ï}È!•а;grø-ÎÜ;Òq ¹Ž/¼¹º9‚žŽ Ì€Ël§ÿ8ÆMÀã7( ˆ23M§9ðåbŽ ±XN²¾A‡Øs '—óÃæ«X<}ñ²Ø´³‰Ø¤(<½~CØRIêCÔÊ´Xª²¹\iÁ?ÂYîQ>¯èßK½Ñ5é±ø¨jë©uÌeÿ‡›ØXÚ‹èòR¿§"öužwøÕš¤¯-"eÃ!ã>f˜¢œÓÇpÞ‹FU@Ú‰|œ”(šsض݀ÛjY÷ÑN|‡ 3xaB€«¸P„¹ÁHî±Ãd9óöøÿ¥‚ЂXɹ=G)Ž=‚Û‡÷ÁGu‹UÒÅ&i¡)8ˆpY5ÙWû0 @áA¸Ö—Ëå•4‚s`2³¨¸ú‡LhaßÖ,œƒ½XýY6ANòœ§HrУ+Kã€5–ßKµäU$à ò!RéÉÕ²2š]úÑ·#¼šJTÈ n?ëtýù›=Ç3Â.‘[u­´†à퀧w4%'Ù°ã$å¦(’'À÷:=­‰Â‚?8PôL 6Z:‚ËøËÀ„[ÏþÄl-¡š þÈ·‡}xvH/<䢦>£¢ü³(,›Ì ËhôdoYʾ" Þ<Á0+mðÙ{§xhÌ0‚\@ ‚³ûùËWù„úÅ1bÜ(Â;•εéç>Üß''yW¹ª!‚~öqqˆÌmòœÎ 0-‡&iŸ܈GÂ&ŒíOÜÄ¡Tì>Æ¢RP:â'ÄÍcñA6¥^!lúÇÜá¹™“{´ˆ(ÃG3[ßu&3–Àz`¥‚rR·Ÿ ¿5‚à^c˜44OU×±tê=›7z:qõùV$Àl*àÀŽ (’óÕ§»PùF0zê÷Ž'ôêa6¼÷2¥ѧý"ƒ ú;§ã0f!SÃsî@-Z{¶`g{û†Z¶¥”ôÓ(ñ›Â#$V/:L¼“ÒÉ–¨èÅ «ìÞ|§~Ñ|óé pôdäœûðj«£®´=:Ö¶%UyäÕ¹âàâf«B2w¸¦¡É€:ì¡ê½/³]6¯b®YHF]>ÇüšýñìaÆÁÅ ©©‚ü²:tø#äŸäÛrOüïS²þ“í¸%ù"7ºb–WpꣅüPEt°•ü”%”żÀà »ùúƒlNÁRZÄÁÜbj\"™Ú–Χ´LðŒf”ßy¾Ùt‚á!HK¾amº;A*ä­:ûµ7‡µú8ûÓ px^grh‘ëÁ‡©,~ëýî‹Aª5b8¿‡s¾œí‚ÙÐF›ÉŒCK!)'Ì® ¨åFAä²ñïŸø!A³æ{VÊ–/?çBŸY<1ØŸc µ.Ÿ}ÍSZTOˆK ƒnŸLb§5e)\ÉÖ|W’ìÿ ×sy«§+O¼jꎻþè&€»Ñntãÿ:ß Ü~?­ ØHJQ&#¡o"[~Üô_mÓÂ… Y¸pá/ëÏuõ’÷íÛÇ /¼ð›s|ŸD™ Q&CàùÛ¹·t˺up7ºÑntã¡€¢?\‡Â¢ÆT“ÊòãyãOým$ ¥•V½ IiY¶âR *ö–r<­†¹#¯-Àèï$½²£Ï¾w—öÙ£Ä;ÞZ× X¸²g;Ù-~Ü…^U‚ÙÚ.Ù]ð(¯§Qºö ƒN$8 `Å ¯ ¢È·Ûäh›ÚÈ;|½9˜ï DJKA×3ÿà@ªÅs]ŸYQO}½˜ÏÎ÷÷ ¹s>½Ky9Õñù ÊŽvšÈß°‰|ewEáhoL©A­µbÖ•SÓ>?»z®•–6Ûøˆ(‹DqÀ¹IA§Ã ìÅ}/?‰C¸3ŠN«Î€[6¤±)Ÿ_¿Ïr&Ó}˜ÜÜBJ¹JDŸ»8w.áb"×´¨® “µ]“jñv»HySþn5œZwï÷ïÔ?Û÷D‚‹½}N-zŒ:V…‹ÕÚ1†žeõ4XeÈ1Ùƒ\88âR^G£,¹¬ýï*´f›[1(@ÌÆ ·ÚftFfÌíÉ“j<ªj©ûÁö®}o¸¶W|˜Hà›Q8k ¨ÓGãÐr†sUNž ˆ½s4Miù4ʯ’öýZ¼ÝïeÔ=Øðé_Iw&J-“»ü¶7ÿH¦óõ+ qw“¨Ë«Ç£ïØN~=Û–p×8B4¡ÜõäIV¿¿3Ž‚ÜD©$2EËE*u±x)ò8}¼œãAäß$-—ÙõÙQœïx†pc0n¶H¹PGáá½ì5¸0mJ¬ˆm#ý‹µTÅŽeŠ¿ã¯ å(U4 ‚Õ‚E­@V—M®&ŽÖVÖ¦§óükÁ‰áOßNÓñJtWw³pa ªðâ°D×^Ü3NÃ;ÜxöS[9SϘ~Œ™}•Ô’¯þ€-îqLŸ8†^^¿ò-ƒ¢€ØÐHƒo>nŠë²-ñ®­§^ð¼É–¡0^áÜæÞ, ÀAP"ôëÃèÞþÿú¡K+:}»ë´ß ­Ì–N–xû>Ôci—±‚¼“µ‘Æí0]dÏWÇq¾ã÷ö[fA‰Z«BÖÐHC}3zÜ;íçkòá9&C.¶ËQ£Å¹¼~xiM IDAT:\ q/G¨ –uú®¾ £ùçÕdJ Z­ˆIWF®/=FñÔ‚X¢46íÖ )¡‘Ò´ÃìivÁã¾ö (íúù"=¯/EÁ¤9~zi!\À¤×ÓªV1¤µŠš\Ç*plh!{÷^$y4÷$¶ ·èTÎäíÜMÅ=£xZc&cÅ;|zq“ Þå\CEEr>þ1„ÓÐƺsX“ƒç”'é塌´¸Q+« {ÓV´2g& îT ¤}, ´†ÕZÂÕÜ' ¨tP›u„tñ<õ ¹¼’6i;˜‹ÞLô”S²úK¾Ü« wTæBró[ùð_^›7{ûF¨ÎÞ˪¥?Pî]FÍá NŸ­@Q'àé;™8O-"M_¸ ݈9ôw)áðeÜF ( ÚÊO²òӞ̙ªB!kê´¶­Xš4$Nçĺ ¼ûÇ­h-\)®eˆL¼6/æ&Ì×àáÉØ‡ž¡eìü~©™Å¸>0°ƒG©-ª§åÊnLCÆ“ì_Å; Œy÷EîŽCãf.½ ¿Å×s)%›“SÆDQu"ƒ&,ö±{ŽVk=qŽìºŸƒ?†k—˜¡CïáÑÁ·: &ÈQ)e„Ox‘©"»1éͳ´üî>&=u¿pãå'ÇQ•¶„Æ1ÿë§èiÉfÙÇÛ8¹GŽJ#Ç?f:OÌH@k8‚Vp§ßŒ˜¨^Ï‘/õæ[ ©paÒÛghz"ÿ„x¼Žî¦’V*ÊËÈ;Qȼ‡{7øvÜœFðÐ:¾ÍOEe¼ÌæÝõÄß÷sû@ÁWÜõê> >tDë¨%þžççúô¯™³ô,úÙw‰Ûéc4X)(lÁ%Ør‚d™üìcãG×%|ÿò$ô§õ˜/ýÈÛGôøO˜Æ½Š,Ž—Æ2Ù|¢¤Öù'¶dáë¤E­uŒZ­D.W¢TŠ×t•.…?®Ó3aÑFÙýÝúŒÅ,øé> ÀÔ@Þ™ÊL¡ ë=Ò>oí™ÛV…ÖŒ¥µœšz+þžöj*ÍX·´•1ß »‰¾°bT¨µ*ĆzšZ›¸°}‹ÉHˆ¼Ñ~:l­[“Gžµ•ú¢Tv-qÁoÁH{…fŽü˜‹"!™ø·›.”t,Ýù¿ÿº ànt£Ýø Ñ¥´$€ ÙìÁQ@&‘ÉDzèƒB¡Àd2uÜ¿þÉl°(vÉî°g»Ñnt£ÿaX±ÀôGæÑ  )[Ç9cF_Õ¶ÚÈñÌžH…A†BoåÂEðwA!ø’x× ¨`Åö8ßpsØ~£Wodë¡Vúξ›8‡zÎdˆ¢Ý9¶ÖQè‰ûM8œHöQ>ö~Â1±õ‰±ìÊ»“^}…[޵ÕXåv§º…zW-^9~ žâwkgQëE¿© pjÌ è›ÑÜpu"*0ªcd~W•šÏòõJ9·½;d­‰QQÞ¬Üô Y‰óé¥êÚ>I’ÛÝúf5x:*2d¢=g­§2È Ñ‚¥Ý‰• ¥‰ú /Ü,fÌ…ýïztr°z8 -kÆŒÌÞ÷j¼]ˆT XM äòö`f=UþÞxþ'Övs?ò={ÏßCizOøóc„dzcÅäïßEÅÜÛè3Š©}FFö_|…¼«#fÍf’Óa uVTÆ N ‘ôì‘ÑxÄ1î1 qwFe3ç«, ºÖ¶ôÅ—Ç3µW8h‰™3›‰›Q¬—PëÓ9-DÔz‚åÛ¼˜þÁcÄSljŸVqhûŠ"î#äÇYrùá¥ÕԘ¬Q¶Ö¸ôeÒ£}È^ý9‡Ê/SiŽÅIÞÆ™¥ßr¤1’)÷Ã[õ+w¬& NñLyx½=;ÑzúR¼šOSu¦·e*DI™ìZhIf[’ôŸ:ògÛ3Α“™ 4eóÓþ­l{Ãæ&Xñ‰‰cŠ öFÉýè7á úÑBQÆV¾X”Î9Ï0Â'Eu¹úß‚ “@òpÇýêJkL$öà™"5Qîã§ÕŠE¦¸Ld¢ÌF¶‹*œ¼Cè&±kmC…ÓËCÃõ>UɌɢ´·ÛŒ¥MGc€;Î-þQ“˜5ç6Ü0pú›¯IËÍ rÈ8~c­(X̘ÍÔ‘½ ;ãgÕp%ãQŽôôóÓpæÍ¥·O»=“ÐÃŒ„A²‚„ì5áà×ÿêZêá„–PàÑs wõX9óå{œª,¦Þ†Ã-Ek»Mr÷ ˜q®“>mC§«‡óMH3F}w=ýýÂ'wÁÝ0n§‘â3C&»¡/0cµ¶(i£E%€“ƒý`Hç¾ÿŽCõaÜýX|Ô2ÀLfšŽáuÎç½ÄºWÖÒ8ð^fh×t.}™ø@_ò7¼Ë–Ó|¢ƒéåx«þš1YÛûgÁÚÚBc€'.€GL£blº\B¼…ÄRuÛ\¢hcÓ£Ø5øbb™0=Öþ]Ž^qLx4€ÂËØyþeƾ¸);ëçH\d×KG_=5Ý)T `¨ÎæPmZ%%Áã™=çn<1‘±ú{R³V³$ÏŠgÂdž‹iR$Ÿ³‹”ü`BǼÀ+±èL@}#g/Ëêáb;„§O燅»FMãž6ŠÈ+*™»£’+§?ZÈ™Ê2š,Áhoµv$¥"™î˜` :}k—-cýþxLÖA<öòxÔ `ñßwpþÔyú÷{„ùn%Ôd(t:N_ÐèöO\û`E4ˆ»gh¸Ú&CaÉÍ7ãä펣Z‹H3G>ú’4Íî¿7-)@f=ô(Q€¹êŸ¿´Žôº‰ˆÖÎk[Â(ó!.!W½š3ùõ¨„\Î+‚ñwVv踊]"5ü)¾ ”w±5ô--4»½V=ÆÔŠÑ!œ ß¶Ã’•dÆì•L|û•u4‡O°gy[ÐúDÐãò% U18F`± T;àn´"I²×:ÎêŽòÃn0ÙWK Èó·Ød˜Qº¥†µTgr./ §ø—é…‰b£ˆÐa7RããB¬,ú(î¼n?§é†1¡ËÓ4xG'áýöŠdÆì3”D*¥#J ah5b±h¥•¦ÊÈ$[õ™¾ ¹åT»Çèf“&3ïzhL WãK$¥# 0Ôç›w7SD”s#‚$PÓÒ‚„ ³£± 0aA@ll¤Égc‚Õ¶ùð¤gQ ÅÖHðAow›Ыœ›©*ÞËÖÏ£íC„ƒ#uú\ÚZiE@+Y0âI¿‰coèwzõ~€GzU§X¼}éí&áe-ʈÁDZ¼gŠÊ*©‰ñ% ýš™™ €Õ„Å{è5]U_@¡z"/¶Ë8kmmfˆîM‚¿B«;#{$Ò+º“mØ.aäÊCaïsØsi,qöÊ;E{’ý<ó¯¿÷@²Ç§qOfrx2ÙË^f÷I%<Ê3Þ…Ôè»îg… tñW”áŒz8œQ@mævÖ-;M~ÛH¼5`ÌÝÂÉ ½âÐÍPþG!vA7ºÑnü—Ý3©k–©ÔéÕ5Ö¦gEÑF‹2WgzõŽëÀ^>ÞôJè…L&"ÊlcÛ5±À>9Hö·r³oþ®›JîF7ºÑ[!ޏÄíü˜f?Ðd¬£ª^ºã”9â U£T9¢œƒq× fL›Ê”ûÆšÄíã“(ßÎö¢ög–S냷Ï-‚Ã4³w HzúqÆÄ¹!DÅ]àJƒÁè¹p”cÁ~ bG†ªÊIƒL®Á Wgo\üv±·ÌôhknEgTã@ÙU^8¹øáJ0ñéÖ™mYZ™‡8@4žæ›WÖ`÷(Ýß/Z¨«©¦”AĸÔpvóJvdh1ÿ†…;£šÏìæL½ÕÞ eZ4šyx89¨Q¨4Èp¢GVÇ\êªr8«¶ vqGm½Èšw±7¯™ÎGËDG5r™'@Ty‘8~:Ó¦MgÚ¬iŒÚŸ¸¸ 4pjí Öî8O­$Ðq‘‚“…\ƒ³œ¨:•Ki#€‚ȾaOVѨ‚ºŒ½,ûâ(u¸ããcEtÉ¡ 6—ty‚Cúö:OQ½ÑFâœ?̱_‚ˆ§Wü2*ä4dålÏâ4^x†§À˜êÈm,¦Ö»}ƒ+h¤=@ÑYNz¨p“÷¥wŸ#d—Úîï2§ï'%2”ž¿ àþ³>“Ðumê¨jP¢TUP–VB(qv¡¹P‡©ñ— © ’ÂJ-Z0âAÒS˜1c*ÑM—q•DƲ#|ý§\±»òZïDî¼6÷“Ÿ¨žöl*v¬ªÁh"µHXñ!yò½Ìœ1•ˆ¦K8H ¬’²SùT¶¸âKkF M¿‡µÖà«—‚‰óxlfoÛýq† JrŽs® ™ªJ3•^ò*~÷§ô1ÜóÒ4<¿Rp–-“_× õ &']àÏ¿ßE}{¨Òb¡hÿv®jdp1—ªöÏÖ—’§oÄ¢Ñ\#?;æYó+ИBK*ßmϵ½uŽåÞ{ál1vìE‹ÉXlYj–r³RØy®p$$q<£c<±ŒX~…ѺöÆ@YsUbù1e£’ ssÆ1ã4¹Ý‘¨¼šC©‹ Î2wÂNbúôùä¹D.¯ßĦ¼&þeòW戣VBÕNÙeŸÊ•RÖѹã^GÕÈdœDQKTÂÎ×ÙäDuîi²Cãéí¢Âì°ŸãuFš-Šß6û·ÝýP(Q©t´¦íà<€¡†|¹a@z×\¡æj£mPÈ„ßøÎâëV³ÕŒÅj¯´ Y±^ïCI€'®g—²·@EÝÕó÷#æWm‰ŸÀpYw²!­šÆ þ8¡DÕVƒƒG- ?dæÎYý‚Ü.?ÔçŸ!·_/bo¶YþϹzBSy9gÉ14PV)€ÚÍ­äùu6‰;®n^xŸ¤P Õ\n.¥ÉÇûZ¦¶V‹R¡ÆÁÉH ±ÿ6ª± ®Z*j4hÕ`¬Ë&½u4½=@ãè†[ÀiJÚ*¸ØVE«·?NTp`ñN´Dq÷ 3Hô¶ëc*GjÇÐ/È HXkRøêåMÈî˜Ç£ÓmY˜å䥟¦ÔÞ,}X JäòLš£¹L£L@ –èø=œ¯PRsùz†âKùG6°ä»½”XÄkvZ‹J©ÆÁ.sšNoçL¶X}¹Í³–â«?.%]/"ê¨Ê9ȉf=uU­´ˆ.8)®Ÿ„¶³,~ã'²ŒöòDz`ÆÌšÍÌ™wØ’ËáDjœ»ïáP€]“ƒÌŒ¾´€+-èmhÚK-Te„$ßÖ±ægNIÂÛ;‰)ƒƒ±\9È—oíÇyÚ“†•Ó Ub(L㤧wy_úÝ`?k4׋¼f S6±ø›=[ÄŽ„ @£B¡Ôàà¤QD°1·».R{Æq'݇•ª }Úv2 µ(Z…àk2`²Øu‹X-6™m•°Jf,Vì¯%Lu9¤”%ðôc÷r ôÓwø'æª&tMV@c« äéWÉ6ŽgélmÏ=MzB4q¢ão{¶d5PWQÈeóž}ø^îž1h VÑ~°%Ålýôïl=WAkg©\w”϶Ø,v¼òÈ”>(M&$G KÚFÒ,[ë°DáSRC£ÎjóGKs)hi Vã5]åHBÛbv·¬¢­›·¦&¢ïšÆÌ™3™9ã6Åù¢‘®Õ˜lÎbÞ·M4^ubòsqVÚ¢^å»Þ⹿£°TÆ£ó÷qï³0qv_¾|³ŒNxæÞß݉ÇÕªµÄ¢/˜AÆ‚?óðW:¯:3mÑ@e‡–°äà9<+ Ù»º œý6õâjò°ö~Èvw]Y{7}φËZŽçìDÑÖˆûÄWùCPŸ¿ôF½9•øŸçº†z¬úÒ|“×WdÒ SRc˜ÉN$¦ø3>¸{6u­j¢yŒ¸h'h»Âñ-û9…á=@€ê}ïòÜ7‡È-yì©]Lyñsîµ?ÜÒF«®…¨#÷Ä1Ò¼Ýt[‚€!s5oýÓZÈ™þ#_ý†gßøìw|TUÓÇ¿÷nMï›Þè]@±¡( ¡¦¨¥ˆXPTD;¢"`GDPAAEé½h(‚€´Þ{ÙÞî}ÿØMH(VÞxžýåCH6»÷žsfΙ9ó»3§/>x«ƒAá åæ§qz2s޲s£/·N¸•¦Ýn¦EÖBÞ»cV-ÍGŒ¢mÓPb¯“ßàùjòý<ï|$å¥!¼>ö>F H¦DÆ~z=^z®K‰`^¿aÌר ¿¶ÜO3R8ò£ÔŒ!ŒYtã? Ïíórú<³œá/MäÌ« tû¹©ônfF×;9ý†£ññ¾‰ Öë»VÎçµýhyhÚMbR‹|ó~䉙«©¨­DÛön¦i‹ Så ¶¬+çÆ—S‰µUqjýÇ<»d?>ºxnì;–;odάzͶh†µkç"a³¾g›k¨5VãÕ~Ïmƒ·4=ô ¯Þ9‚/BD´>-èùäDþÙã†2ù[>áóíÇ+Édýç&„DúŒCëœu̘4Ÿ€*=öØmd}Í7ß.ã°ÃÏiËÀj zÈ ^Ø/å¿ ·DBμ<îG||T Ë8í ŒxûUz<ù"÷¼ýÃG.C'‚Eô#â–aÌŽp`S‡ü„à+`’Âè4ènëèJ…h,çoè=y ã¯÷úw„µo8Ê/0ækQlô¢Ó”é® d§ £É}Þ™B‹ÂŦٯ±Ô7 Œº3ê¶¶ ÊsþSÚHωŸ¾âóÅ[ȱ@hò(ÚÆÅвùÓ<öÕ\^ÿ»€ •uÃ4^º»-^~qŒ{ø7fÃOÄ!k l×›‰¶¢xÝz zVÀÿÖAÜWò³_˜JÁ#S¸ÿ–x|ÿ‚h%c)iË_á¥eÇ1X4G0æ´«ÚÎG ç³dS¾;–‘<á=NmŠ2mÏ|´–'ì<4ò;úNYÊ€)½™1l8kC”¨m¹o^gü|ª¹í¶Ã|1qK-Þ„·íýÃoBw¹w„N Sñº“Üñ]^»c8‚¬"òöA<ܯ-tz¦~öw.—«8cïÁñrSÀv« «« «ÝÖ—˜Œî`µdÃh°ºŠðkobÂÓ»xaÄHV‹Ζ<°àÖKž‘âˆw@0¥{Ì šçÊMšDÎKxàΨ¼l˜ÂïàµñJ f;É%;0üú)cF}‡F!âfžŸÚ +¿íaÇZ‰”i·PúÃ&Ò1¤ Kàà{±v¹ž®7'þëyxI ‘ÈÛû >ó6^Þe¨îbÌu ùƒœç“øEÒmÔDº¥„ñvê½ÌSk¿¡/ôˆÀqfï-üŒï·W²ýÐWôxj1£ŸDú›µHdöåÚiÓ¸Aa¥ðÐ.j®ЕÑÞ¢ºìdAê½¼«Ð}û@Æ'G@ÆrV~÷%¿:¢øyÿW.;p×›L XGÁµië-2¹›?åóí¿V’ÁO‹ŒaÍé3h(º#‹xùÕ¹ÄxÕàÌ]#ûÑLÛx…3îû˜©ódßï6ñ}§|É i}™1bÃC(hÍè:¥”œÜÏŽát•Bά­Ìÿôc¾ÜRλ–‘<é&h²˜õø(T’Œ(—×ÿžH°œ:Îæ û‰~z4}eªÎì`ÎSŸà¤G éÂÀ±ãˆ2¾?×>Ö,¶oÚGÌ´þ´QƒtøS†ÏÞ†J7ŽcòÀxü¼ƒ¹½ßAMÌJ«/aÍ“¸çÑ{èhÝÄGo}Âø¡ï#8Dš¦>ÂÀÄFÅRe³½^‰ ¹²dk%§X5Ï€"ö:î¹·7ª´e¼?e6^ÚbTMG2þšvc-jv½Ã¤ù8zFæÁ1«¹ã™ÏH}r(ï¿6ˆav?üZÓçщô‰9ɪß1eàT*‘ÈÎCÙ­ãÙ2 üy“Õe#ûÁ‰›¹ûÉ×ižw„›‚¹õá[ÜLÖ—ƒÁ€Ù!b=¶†/V¬ *ú0{·ÏGvØh2ü]&½4ôWïb„ÙµA·gž¥{œ¾-„êv¯x¨>ÄÂùKÙ|(M“$ A*ÀÈÎ×&qè†çy,âÜÂû*tM®ãök¶1gÀÔÁ2M:$àZÐ,È}LlÇl¶áp81™l8ê9Å Lœ¶‹ç¼5A}ã>½ïS+0˜ÝÈ2›KÝ‘QÝi£ÙJõmñDêT@'»‘¦ÜÏRA&¡UZ£­1ÁêöÍj2¶³zÝv¼SfÒٽ趖ÊÉ7¿äÙ»SYîEçž"Ü7€¸çž$ýµÆóùF‘³› ÊNígÇÖ :ŽíI¼û‚3“ßú”õk°>-WfEPc±ã¬#/%ƒ;¦æ´b4Ùp¢"¶ííôì2×ûGT„w»“'ûŲåý½Xíî;KvÌ&+NÀe[œ®F“ULº…ŽaÌÈù(ÐÆàjÅA íÛ{±í“ñ<\Ö k^ áR î{¢;³g?ÏÈ%vL¹~ œ?ž0ÅzŒw©zd§ƒ5ˆÐ¦-ij™Ì=#¿&"X…‰fÜ`Ålµ":J8°nÊØ[éÖ1âll1 û÷¸oeÈ $œ[Ÿ}‘ë¢Ë±ôØÇœ~ÃQ¨TwìÍøG½c ³—¿È Jš7󣬢= § £ÑzÖV©Ûrÿض<5ú>V‡‚Æ/˜¾Nãî>‡y#uÚ0›¶ ICÇð@rb½õS°øµÅT:ÑRŒîº—x¼•/J*Ùôê3œì6›iuT¶S›wŒ뽸õñÛSèùmÍ\¾d!R[‰Oü †÷»•(ñBóYãi6oIçÒT1Uã£'¾â QI·‘³h íZÊúL#×ÝßÍ­C€3½«ÓP»¡¾((ßòO-ØÎ©lq­cð”é¥ÝÊ·ËHžÝyïVöî×Òsbg²—m"ß§ Ýt Àp9gÿ/Av|¼Œ ´h§NÕÞ•ºpTÏ?MAïžh¼xp@ÊÅí^èKpÿ/ƒ,ÉHN ›Å†ÅdÆPk ¢´œ»{ ¹*Ê@Ÿ{ð[o½uÙÏþpÉ|Úth‹o€^Þ^¨µj*%‚è"%dw¹¿s¿¨Ýå6ü¹î•ÆŽ¶ÇäxàW2NÎ 7?Ÿ[»ÝˆnÑ”óÉT¿v‰QÑø|ú<¥XˆOˆçÒæÉTeüF¶DeMÚÅãç„Wf’]á@!8Qû‡ƒ_Ýc«’ž‚+þº`üÔFrOdSes !òÏHq IDATÑê"þì;¥¥¥DG¹ 8Ê6¥ÅyWÛA’$'ªàxš'bÊÌ ¿Öˆ0ZtŒqg#€µì4¿XP+ABIDó6è”òOŸ¢Ø¤"@Mblú=ï°4#›{æZ€ƒŠôt ŒfèhÙ1ÀZžÁ©b²Ãé*«öÁGiåÔæÙ”uÿ‚Q­A¶ÖPTX@™Þîz²]r¢kJË™9E˜¬dÂZv"æÜ¨³d§¦(3eT¢…W0qÍâQVæ“›SŒž@b›Ç¡óS#HzòÓËQÇÄêãʺ±•§ó{¾•œ²HxÓvDÔßÃŽ¾ªƒÝ‡H’ÊübLªtá®’‚Rm>§òªpÈ2N»ƒÀÄN$Ö’ñ[µrC9;±ÔTPR!Ñ$ ¦Ê"ò²‹Ð@LÓ8tDTœ9C¡Á„0ZtŒug…˜)8|’RDTš(Z´CŒÝRIîïYT‹>„DÄ釈„¾0‡¼’ Ìr0‰mãÒ(°Srü$Å6²N«Ï(µÙl”——õÇÈy}îHB pÝ–qKH?U€IPáE\l(¬TæåQP^‹M†àøÖÄ…x¡0—ð{F 6»¿økh¬d$K9YÂ[Gà-Û1”år2·M@(1qñi\sËP’E¹ÓŸððгÙ_¦bŽe”bw8ñK¸†fAîȽœÓÇr1J´>a$4lDfTVV¢T*ñ÷÷ÿÓYm);Ãé3²Ãé* ¨òFׄ G ™Y¥˜_],q1ax™ÊÈ.,£ÆhwùX²¯ˆ–´ˆðå¯p[zƒ«ÕJhÈ9Å»eÅ™ù”ê-î@¨Œ,{Ó¦aGåŽæè]'®(5øE5§Y°SUY™eØ )ƒˆKŒ!ÌGuA9%v$.ðÂ%­V+•••DFFþé¨/8Ev¹§ 2~$´oF+å§¹‚¼2%±q(‡¹Š¢ì,J­H*B¢ãˆ÷ÿËÙ«’$QXXHL̹ŎJ ÈË+Ç$xž@d°·‹<0p"«‹CYFײÑuÊá(çÔ‘\L¢¢¿ðDš…«¨­¬Â$ù  õv­ådd–£ ':Øë‚9¹9ÄÇÅ7 D­TfUá@)8Qú…ƒŸ½œìÜbj,²ÓŽot+t>ÕÙÏ«EÀápÚ´1~Fò¢LPâåMóæ!(§¹ŠüÌ Ê,ZBbâˆùcx!FL&aaaÿœH5VRX©&.Ö[ME˜_tѱDë|qPYZB•üÏ|ΠMù|Êškÿµ%.**"$$µúïž*l¥ºBÙ)£Ôúä¯AjÉ/°ŒXKv®ƒÈÄ4à¬âÌÑ,ô(ÑxGѼEè¿{™¼¼<âbã鳩²’ŠZ‘ An}³SUK~i $µŽ ^T–É„Åã­Á^Iæ©|j"ªàDÚÆú–ÚJ*J!¬Y0Ö’2ŒN/¢¼¨É*ÃDp×y'ž«ÓÿØÑ—’›_ˆL$6"Mƒ…*??ŸÈÈH W‹ÏóI”BZ¥ª&óX5¢¡‘±ÄFø"’±„̼RŒvÙaÇ?¶-‰¡Zô9ÇȪ²#ãOBǦÚ,ìù¨»oÚÆ”ë]Ò²ËÉ=™CxV·c99E¥gí€äÄ'áZìßtgY“˜ÑÓsi§KÍPg[ÔÞ„GÇác-ät~ ࣋#>&ô¼óÆÕ9œÈ¯Aœõ냉üÃ')E‰Ö'ŠÍCQbÇXQF™^‰.A‡7 ›ÊÉÎ/¦Ö½æøÅ´¥‰ŸS…Xì’+¹½UG¢´.ûœe$¤E< '–šb²2J0 àIll$>¢„¡$û|ûì¬&û”‘VQø‰rm‡2ÊQ(Õ'¶%Ö]îU²ÖP‘N‰YCPd,±Q¨±Qž›Ma…»äEtëæ„{+Û'[Y1‰ØJÎp¦ÔN÷XjˆŠÅËXHN~¥Kw¢›§ 8¯4³½2ƒãùF"82¡Í®!ÚÇFÉ©cä›”xûéˆo7N åùää–c‘µ„&$âÓxž8«ÉÎu‘‚VÎ÷·›¶!ÐVJQ¥‚ÈÄÆçžËFŠ‹Lhƒ‚ñs–’YX‰Élw?°/áÕ†–:5g~#Ç ¢R‘Ø&_dìæ rŽg7Öm{ ¹9”U›ðŽjAó(÷Úá "ó5A­h¤ºàúmÓ—‘^ä’s€?Z¯`ü¼¼ôBôY ¨¨ Æ[éö½ä2ŽdR+»|Ù–­ÃåW«‰‰öGÄFMe fÙ]ˆ7bÍ>^}k7 ©ƒ¹ûÆ×x8Ê9q²‹Ã‰¯.•UCtb¶Ó_ñÌÌIqùöÆ JK«ÑD6%L{¶íµÙä•Va‘ƒiÒ6Ž@ë<ØÚsç3€”Í×O¾Oà«oÓÛß©²”ÒºÄð³>£l¤8;Ÿ ½«ÃŸ„–þÔ–CxL0^ ìdåCLb K9¹¥u>Ž„µ¶˜Œ3E˜¢ãˆÓ‰”ëQøøäç²-yù6‚£‚ñêlK(šzÝÆœwˆô2PiÔx†á«òB§óK%ù9YÔ*Ñ* $ÀÇNQz¥F κ=†£’¬<™èÄÔu~X¹Š˜oªsŽ’S oo´>¡ûˆ8¢ÆŸE¥¡„h蹓ª¬ßÉ®‘pí Ý{»±„3§ 0 ^„„Çå‡h«&?/Ÿ’j>!Á¨d_"#ÊJØ*÷ÜqÙR•"›µ!T*æÔÉBÌ"È —nÇ…zŸ]ìÕdfPc²!K2¡Í;ç'vÊΜÀÖ–ÄE½nXkË).‰hŠF²PQ”Gv‰A¿¨&ÄG6ž“õó9­£’¬Ótm£ðAÂa,#ãtFA@ãDl“ü2æÊJÁÑøÕM/YOþéZ|à T»Ö1[ÅŽç›P*À) „7mO˜¢Š¢L+¡­Ã‘«*¨ª K À\X†YáCp¸ßŸú9¹9DFFQUU‰J©B¥RÇ’ ‚€,ËõICεDZ¾óRUÕyäj|NÎͱz`<ðÀƒËLãþ.žCã&€6f“ £Þ„¡FÏ[Óg±iíFü7ѦC[æÌß|ü}ðòöF¥Q¡P*„³Y¾22’;÷·þK>—øõÀxà‡¾’q.üÿ‡ ¶Í^Êé køÀí„ÿ­Ï:(>ú_¼‘IŸeOÐÞ£šWþ*ü¿€¿Cÿ'qQø2ã¯ÀÿY\œ¾ü¸ÉiEßÁÃéô‡æÆ‰ñØB†]„>¾î}…w%ü‹éìäÌ7yàã“h5×0iÅ[¤øzäáÁÕÿ5ØSÚ<ðà2lV‘Ï–v€¾@èúÐ …¥RR¥dØØ‘l߸íŠÏ¶Z­h4šúß«««/k{ÆN‡B¥D©R T(P(\çÿʸ zƒbÏÈݺòÏexñß<ðÀþ!\…!8QÿCw ¢ëÃã¸A¡þe •èÚôä‘å+£„¤.}=!ç³î¨û¸ŒÿÙùýwuG¼"ÇË£Óÿóƒÿgy‡^w?SZ Áæe-Áh.m'<~‰Ç¾]RÉh|®g·ÿ¡_Ó”±ßNGã!=ð ºî“y Ú?]üø´¾ŸE«b¨ýBþåtVØÿ¾ºÍRíM€‡üõÀƒ«Ø<ðà²á‚'ÿ6zUED……J‰J¥"LJê ~üðÍ÷Wtï´Z-Ï?ÿ<3f̸¬m¹î¦.4oÕµZR¥BT*AéäÿhôJÝoò_–«‡öÀþ› ˆ¹y¹W§¥•åÿHÛëÑåÿȸ>]iðXÿEݹÆAªª«®È¶™L&îüèôÕ<×\ãúÿ©‡uU¢ô”æ×^²½†,ËyÖéÿ–e™üüüÿ„çˆ @U^ù?û´ @^¥gOíçìþZ¤É]UP¶c·æc¸÷‡½‹±Ê3/=øï˜QÂÿÖ#FØ<ðàJØŒ¹¿ u¿î×E¥RJ©D©V¢T«¹gô0¶oÜJMuÍݯËMü(•JF?2•ZíÎV¢PˆˆâÙ à³BhXÖ¹±thäp7~ŸÇ öÀþ«m” ±±1WU›AÀnwPVæ*-É’GüeݱYmTTTõ?­;¢ RYY‰B¡ àŠ QÑëõX¬VÂBC¯˜v ‚€Õj¥ª²ŠÈÈÈ+ª]N§“¢Â"bcc¯(ÜÜ\âb㮺¹& "£“Ñ„N§»*Û_XXè*­QŸw|ÏÕ€ºÐWÒØ‹‚HNnÎWn]Dòó󉈌@¡P\•òöÀ<ðÀƒKå{þ/ÁC{à\4.í&~”vmÒÜ™©‚€ •JTjo È >÷ æŸ ¥oO¢ccP©U¨Õ*”JW9mA]\»»ü³\_ºá÷óË?{àüï-ùìùôWÕæ®¡M=rôà¯ëŽ(zt§Ñ\®¼±hPy÷JjWÃuòJj—(ˆW¦¹º×iáŠ×?›Ûuöýjˆ©;ÆçJû+¶L=W§¼=ðÀ<ðÀƒè“x†À<ðà?¿YmøÛ’ÏR’‚(œÍV©PªU¨5 D\b¼g@ÿÞÞÞ ºwjµFR­B¡T€;ûwð…IÞ —þãó=l±xàÁÿº•—$ éÙI–4ŠÁ½RHNšÂÊb=à0oàÕ¤>ôN½ƒACÞgFrÒæóXR’“†1iö\';å²aÖ$†%%“œô( ä¸ÇäæÞ9„þ©}è•4–9§ÏÒ…t{»¨%}Ý,îMêAJòœ¶˜ƒ€ v¼3…{“’éÕ¯=’îgÞž"LòAæß3”©½éô*ëjÌðAôdü<ŸÇ“zœ4‚És6’ Èë™ùĤôìC¿~ýé•”Lò3ßST³“3þ©}HM~F`§*ï[¦&õ ¥×Æ<ú%Gÿ…gk;½ˆû“zÓ'µý‡ãõ倕Œíóx0)™ýRIIº›—¾H£š"Ö¾ô8C“{“Ú3™ä§—‘Wmû÷k‹%Y£†’šÒ›¾}ûÒ·oz÷|œïó%$k5ù?¼BrÏ>ôKM¥×]£xjÉNNï\Ê«ïíÅRw ë>{û3VîÊqÍ.$çK¼µÉŒ_šƒ´ÿ}z>º„"É@ƆYyc;×4%« ½a Ó\F®$2¦Êx>)…ž½1lô'üVw’#|=s<=’{pÏs ø%ÿ †‹J”ª«,4çÈcó·_±äÇS\\ 嵉§xêÛ]ìÝó3O]É[VAZ¥äê.Ьçèws”LJ¿>¤$ÝË+SñØó}’bÀLÖÞyLpÛÓÉïl¢ÎtË;6Û~æ¾ð%ig*ܾ’ÓŽwé; ýRûòìÚÒ³+‹ÉHÑ™èzµ§jç;ŒwÛ«gçm§Àz˜Ï¦ŒãŽä>ôNIfØÌMÔžulrwnÃÿŽîèNÂȤ^.ÛrÏHfm¨ŒœÞ<—ñIÉôîLò˜—Yñkéù~Ռ޸…éã—‘ã&UÌU?òbROzöÈ=÷-àÐÅÆÇiÇfû•3–±ûh©{Íùù÷e@j_ú¥ö$iÆæ Ì …¿~ΣIÉ$÷K¥gÒ]Lýh+…5é|óÊà ì‘B¤¡ÌXs’ª‹?ˇ©,eÓ’øâv¬8Éûe!»¯™’4”ç|~zu"÷&%“œô‹å»üœ¼UL4Àe{>Â’3ÀAUör¦$%“œ2„&~ÅÉ‹øa•ò­ªj6òÒ¸åÔ{¯ÆRŽ.™JrRy‚Ï:@ÎeëÇSœÔƒIƒ˜¼`ÙÖ†ëàÀ¼;Hµt«ãâþv#óóâéŒNêA¤™³úåu—³™1šwðÚ#ËÈ0» "»ÂÕ¯’ܳ7w Á[»³‚%–òÌøÌ\›5o¯?ÞÐoJ"yÊ”ÔìàƒACè—Ú‡¾=^g³©¤eyÛgswÏá|°ÛåµbOçûO>cÑ'¹¨7SþûмK¹v©®]æŸrwRO†-<\ÿjõÉu¼8~0Ï}uü’—J?¢»½Êî +ù¸¯’g#9Ù5þ}’’I=Õ{¶±ü¥‡âš/olÈ Vœ{x÷ŽAôë›Jßž3Ùjh5ê Òv|Îè&6þð9UÇ ¾|n )IÉ$'=ÇÚüš‹<œ*a¨ÚÉ¢´¼›–ÆÚ¥óèûÿeO3Y½xŸ®ÊN²xî×l9Z‚óß+ ¥…âï[6Y¶c«)ä·­ßðÁ¢_/®Ïçýɇ¸{ÎÒÒÒxñv¯ ’ÓŽÙð7ÈášÍLî•Ębt„í\ßÓƒ¿7娵jÔZ5*wùçºìߺ³]eÿ^ö桇=ðÀþ:œ»Þ`ÐÜX–ïÚEBà ¢¾m žæù•ÜþÀ³¨¬±Ç¾}ŽÕ…^D6#P­…Ãï2àu™××oæ/Å•kô^;€×î}‡ëLl{y&‡~þ•š?¦æî—Y•Ò íÞç¸yî.ú¾œŠŸZ¤h틌˜{uç§Q˜KØ÷Í—ÜÃŽ´hϱܹ™"ÚFpfáëTšÍÚî (vMáÆwwÓwFo´•fº/ÙŸ v2kÀ¬ëù>}| ¦ÒÚD+„¾Ûý¼7þCÚz×òÓÄéìØwš¦Í~ÃkÚ26vÐ" gåȉ¬*é˰¨as%û>“+Ìt¾ûY¼€¢k9îŒæù´4:dɸ%»9Ô"ž¤*‹jQã§Q ¥§3âÝ8Ú>ɤCWuz«VΧ0j”®'ÁM•XÞøx¡¬‡1qæ2ŽˆC¹CP PÌòé[é»fC@Þ7›[_]Iï‡Ð0¤÷ó&ŽÖøñôÞ4®-ZÉ„Ï÷r «5ÑëçP5â5~ìÑ õž©Üôþ.ú¿žÂî—¦¶ôgv7‡3ß>ÊÃobÃ(%i›ö3`SŸ(1ïÓX±ãz†¿$«IÞOû¸ã0àëÝôlKù{/!O_ËÖëÔ7>FÒë{è=ý¶¿­ÇûìòìÎ×m‰ê¼}ìÜhfjÚ/ÜDk>Y—_¦Ë1Ø-mñÂc é×Ì4ѳê¡QX¦|Çæ®~ñ7=ðíWŒ!®A`ª2ck¾ø•[ÒXè›ÅйËùhQ8ÓG÷çåûó²û§>ÃR??>ò Η7°õz5œ~›F-£ÕòÙ0y!VýÂ;‘fN­~—žÛÄâ×RðþóZÔ;éµt7c›ƒ¥dÍöÞ3‰uFÑ5y¾ž‚Ý›³Ö ßõ‹fƆƒ=ɶü¾ÜÒ`Þÿ“Åņ-þ^æ~|/íW{99ÿX“·{^'ÀlæèÊ9,†ãÝ0€*ˆ¨Ô*T ñ"rþ÷8λ#×qí™Ó\ œbÁG•ˆ7NæÃÝùlÛhž½¦€=;öÓyúR"]Χ?·äƒ´Ù4ÅÀ/{NàUS „]‚¶(h–ú¥öáãYûðWН}žñ?5aÖ7[ië Íg}Gòö3÷T£ÕªŒƒ€¨P¢Q‚ݯŸ¼Gîi dðÙø¯Ù¸Eǽ}Ûâ÷[#ŠÙ¹ðžýný¬kíY›˜3ç-~Ƚ‰iwö­2~—ѳ~"/tãe3Ûßx‡fßüÌìx3¾œÂŒù'Y9VËêϾægÿÇØ›ÖÅ9ë÷åÜ‚€8MU—Ö`4øä¯AÄŽ¾¼‚j£IA@¸ÎxIce,Iƒï$,z&»³Å‚žaÑ„ø(±ž8J†JkC9²ŽXHY^9D”ê@""üêeðï!á0멪Uî‹ ›ÁˆÅ®Ä7H¹²œJ½§¬" "‚ Š*ÐåTüˆPÈ 8¨©ÈÃf”•¾„E£¹º<+ìöxR†¾Í½“ºþµ5üŸdÎà™,oñ Ê¿1dsŸ²Ÿ÷?[Çòíyºg4ŽÓßóÒ¬ØZ™Ì5j¥kî›C¿7½ù`ó6ÚŸ3§¬6µ¥þ´é’ÏÞ5é ÛšFŠ}o~ºU»;ñhÓ bî›Á²·KX:èyÖïÌý7èÐ gŽkH™¤CÎ’Hýr£›©`=ï?ü6;;O$6¤%£×¥Ñ=Ò¿þˆÇ~%»S(–ñ—÷ËSôˆ IDAT;k 9Ác €™í¯Ï!aù^ÞL°qè«I¼2÷(«&´Çj¨FoñõG 83×óæìwX“ / w÷÷è!|f¬fs{¨fۧXYÚ‹{‚õ”–Zñ Å[‡3”ŽŸeöG që诟¾ƒ¥ÓX¾yýV‚j~`س[8Ü)ŠÛãÏ#MlU9¬ýðAöGâúj 'G]º¾È;o÷%È}Í}s'ò{âæ§- ²z%CŸXM‡÷ú‘=}]?ßÌ‘ÀïïpÃôåôZÔ‡ó?§ói¼QÂúÏfóþW·0»õ~Ž5òÃöðó±Dúµ jìFï˜ÉÈ9;({”‰N+?½ÅÓ[ne}Ú»î69ÈØú ÙÖŽÌM{—f¶4^š±›-ûš3æÖxDììþè>Ö+n§­·_=)qž¿ÝvNÿô5{ŠByö—4:Úw1õ¹-üʈc°˜ÏÃo~Ç)ï‘ s?çoÙ>“¡Ÿ5cåžÄœ£—Ň¾ç»?bˆèÃuNB\?¦/ìÇt÷ûN||?_FúóÃC¯ ¿¶…m×)àä»Ü4jí¾¹Ÿ(pÅü¢ˆH´¡Ù÷ ÚM¦W¥J…J©@‰Œ¾¼„j£§¬"(2‚ˆ½R )ÌÎAˆèPâV=•2A‘þV f‹¯o쵕”WpÈZ‚"B Ð:¨ª’QRAµÑ—(µ\o‡±U“[lB#úÖº×|ɪŠÎ (àtzé¶HÕ€;ú’j,N@E€NGÖNe¨… ª N$ÂãTËØjJ(¬¶"JµaA¨‘°«)+«Å. J‚B‚ñ×8©)-§ÖlÃ)« ŽŽÀ_4QV-à%–Qað#"6ÀasØ0>ñôŸú-ý§º÷¿|Î’#œYw¨['ðýÌ.øU®dÈÔÍœºEEÆãÏ#ÎÚÁ¶ÎÀ‰w¸éþ¯h¿|$&ËÙj/8±ôæ3€¬lËè9OQòR:)âÚpŠJ³ÛHȈ†Ç 4Pzà¹Ú ¬Õå”ËÞø{Û(/ªÆ&hð !Ä_@_kGvÔ¢7 ø‡zc3ˈöôV¿ðTÕùTXE‚"bðWIXª‹)®±#"j­?¡ºT3VS-zrÈÖ_ÏÝã›âí¥Fªâ2ô6~DÄ£u(«ñË(7€B©&(<_ÑŽ¡ª”r½Pà Cç#º}Õ%Uþøy©þ ÔNmqé9'Ù¿ËŸ{ŸF;‹‡ÉH•ÙŒÃnÄhï pB´ÈY'ÈpødÎäLI<‰:•ùå˜dDF DÂPr‚õ võè=´Ñúì§ú·HByý}Ü|ü}_À“í½@Tã{zð·Ü6Ïxà\Ž-~ÝÏ2Èîóhià¼Õ½Óõgw,J@Pˆ¨T*œj'­»ÍNPp Ͼ:Ÿz“Éä``ü“Óöšvh´Z4Z-*•¥J‰¨ÜÙ¿ugÿþQöïÉ<°xàÁ?ƒƒÍ?¥3âÕÑ8Nç„BEx“æ+Aô!åéEDu\ÅšÓfœ€R²R°÷ 6‰ý7BÉóN¡TÛØ¹þ4žy¯ã'8.@h“Öèþ(ZÜ–NÁgƒÅªÈ0t±§øýÇN´¹Õ×õòµÉtŸE®,Ñ‘˜!ï³ý–•<2ÝU®ÍTUIf¡‘#[‘üwð%*:oà¿ü¦%²C§^OËT/$@y]nYG®,ÑòÚGç¶V«íƒñWTQ—ÅéìnjC«¨³ÍVÅèÄÑn÷!Q[p†bs&Âí$G5Þ‹^¡Ü„üc½¸Ó@GëÐfd—ÿÌÞì(‚¢\„s˸±æ85Î]ìÞÞ›žp•ÆôéÒ‹>Ï&‡Ûˆÿ›]ã>ƒpÝŽhÚ/o?B£¼):E¦W6M]T¨ (Lÿ}ét 4Ñå’{¦;š»Gªi #K–‘)A\}ÄÆ†ÕlÁRÙ6¾´ÖÅ¢Ï)¡ꃔ~˧;1`¡{ÞMáºî×[¤0¢äk2¬M)ÏîCÿH AÍ®åöÕ9ä­þö¼P^÷°;À.a·ûØ.?… X¨*>ÉìâDDêðIìÇÀD0•æeÊ$Óz-c¼þ}€BP °•pê×ýˆ‘~’ŒìNó¸2¶m âÅïGSŸÄáåEûcaà Ò/J+æ<ݾð!(" GéA~ómË5‘-yða×۞Ɨ¯¼ÉN§‡«âÅV¾èKƒñÓæ’Y\Bp@87vírÞ¾â_ÃjÂæQ+³b¹“‘¦Ò¬žEJ`ÌwÏqðþ]d÷ò¹è=$$»«l¹ˆˆ6ÀA¥ü[¥çD¿(’žZľã»c.; BFÙ,•ióš¹­íléR¿Û§ñíMyôñJwÜp?vaàl×õ¢Ûv¥ÍòLÒ‹C1"’Ò3’¬ãÇPG„æ²G]{A‰|ö,~‹·–ŸÀLmÞÇÄ'û˜¿…¯/eGf5‚XA‘b ,z”ëB½/_I?G?-ÝF¹¨Åi4Qœ¹Ÿb} 9'K½{.oMeó¬Õd©kYôÄ·É«½³yóå]Ôú«Ñjoâѯ&Óý’E$­üŽ9ï•3fÅd:PÆ/ßþÀÒfŒxDÇæw?æ‡ßr0™½é<îEž¹-›W¦¦ÓªÙv6ür;/|Æ“|;c9{Ó”D3佸¯©â*ò­ÁLEþ ög…£ !*<¯?è‚pžO¢FÖ"…~‘´Ž#³´Ñx·Ê‹›1ëÅ£¨2°cí)îzaªÇ9ŽHX“V„i\vÊXq€½ÇbésG!N'q“@ m¢(+ÊÇtK ý"ëZ£À«EjQœÛX»· c^1ä!F×Ù§/­ýІèHŒèK‚©œ‚ìtŽø£kÛ„Ec;íwÛT¾¹±3=^†€€Ì~öï€ÙN¢ÚÝB›Å¹è‰åÄ×s˜¿CÇc‹§“RFÙ¼?/,H$赃hëÊ·ÃX$jòNSl΢HÙž:°üþ%ŒÙÏý?¥‚Úò朡‰àKT\±h‹J8v4‹X§ƒ6ÑQ„hΟöš\¬ýˆÌžëù â{žXJDD¬Ô”æp0§%‰b q±VÊ [s]´ë›À›lYL•^&´M¿ÿÆïÕÕto¦ÛoÝ;!3]6?¡Éµ$<È~?G#?¬GM-6‚=ˆÔskº®á¡'Œ®ÒÓ=û÷2ì™›¨<ñ;eÚ¢cð ÆO“Iæál”ŠJÂC¢I ôÌœYó[æ0£ëQ?^‰BéZÅÎõ·COuE¾D-ê¶$)¥ª¶=pó“|±òžœXˆ(»Öƒ­Î0ò•qXNç¤RCx“¦)œÔ¤ïfÇÉ2š ý€NG7sT¢±_Z²œO6uáÎÅZv½•B—– €V) /YA¸`ddIITlÚ\odýºýôˆJKé~¾ž³ˆM§ 1›|¹aÂKŸî·fqæ÷tÚÝr7IÄYšÆÒ÷æ³þ¸e‚¾Ê+·ç1cêIš%îfë!;¶Ê"_Ï;ýÉß8‹Ç–d¡E´íòæË ö;Í–2ÿ‡,ð3RlkϘžâþ&,™µ˜9eXŒ¾ÜüôL&uø™§Ë£k—¬ý¹¯}?žÄ‹-JÆ#lØTˆ¢eoRzâxnG…e—¸&6†PmÛÓS¸¾•Ó%—Ö=^¼’   éåüúõ,¬ŸÏ þd¶âpX1™œ ßÎóÏpMÛ]lHs"ÕÑì©Í¼ÑãËg¯"oæïKNlú>Š¥(±¹Ë× AÁèÒ÷Sª G¥°»_÷ÁÏ. ¨¬Æ¨%’«ïŠP¢ò+©²Ä!¨8êÿ 'æÌoÁß$€Ïí³â"º½Œç7§K_fO}ŠOE ¾Í{ñä¬&@-á­•lüööì­DŠÁËÏßLb'¿oIç‰/*U5–¸rª*гr­¯/!‡Øµýú #Ye¥˜|µX\Ì{—ü„âÎq´ˆ¥²ÃŽlü¯x- E5Öørª«‰mUÈž‡p†Ú(Ï.ƪ«EoTÿbŠK¥œÜžFQ³þ\‹L‘·q ó'¯G ¹{G? B±“¾a>¬VÐý‰á$hµÿžÌT¨ÐÖä«÷÷ Òª$;ö¦£˜ûP5?—¶áösûå´âü+w­—ó¥B<=ÇI¼úñ,Vµʤ¤D4q­¹6ÊExwîi?“w¾KaĽ |Z5'*j1ï½XJRϺ_Ó„¸˜B¼.1¨Q—PœØ£½«&”ø¬ Í/¼°c=×÷ñöÜ-lÜá‹në*Ìæ‹y7ÀϹ†]Ë7¢ W"•X"+¨ª¡ÍYTíÖó©D™mù ,CW°èI çcÒ_]JÍèëyô‹)ùÈ—w_DÙöé¼þ†‚§›äóÇ¿ñÃÊdÔ ;0ÆÝLJoèñ´þÎ/o¥óÛ x^ù%ƒ'}Ɉ•‹XzâCÒ__LùˆëHºñ>íSˆÙ\Äú?~eþ‡zÃ`^#ä?˜†Õ0ý¿[P+s˜ùìB|oz‡%#ƒaÛ³¤½ö+WÿK‰[åÔ“~äÇ' aÃ;\5)¦cÐo=¤jöóåïGùu“;rHÀ‡„”^(Ý:ˆ¼QÃÑMØþûG¬ÈK噋yÀ^ Eý^l~}¹ïåˆ5¯ç‰ç·³}×¾vëÏç–—®%Vµƒgû?Mæ—˹-*V>ÌUÏýƘ7‡" Ã+rÿ]9šüߦóÒ‹¿7ì®H`€{Gfê»ÜÌ´èáüwéH^Muùþž \° .¸àÂE@Ç^À-ÄoËs©Í‡ÑiÈ•É%”*v» ›Í†Íf£wj_¦Üv_öÕÿl¿öÒ÷fÊí7¢R)QiT¨4*Jgþ_A&kçýÛ>÷òŸyÿ¶%‚ÛÂ.JØ\pál0Œ—¾zØiØ+û™'®›ÍW¿HêÉÇ?ê_ [ØòýGl±×p<¿žÂáå½yä÷’¢ØÂ¿ÒßeýoqÅŸW e[XôÙNüR®¢O˜–\³ÔxÑ  zO·FRód9à°ëˆŒ¾“y-þ˜Ù5çs–/[F¿Wa>C¬g¡žžì³áô`ÀH½—ÚfÉ_ÍÞeßñã7®ÿ¤'r ª¢”ºÂRÒ†{5·»¾ðÌ<@ì¸ëHŠöhü¶–ô‡fþP13‡ÝÆ7ïýÈ=‰§;;œç~Il40š1ª•¸ÉX„nÜþF·Óö• f»?ÊŸòÒVµ•åTÈøu__þqË :I«i!{9ß¼ô5qŸ~ϳ!u¬~÷Qf}¾„«Ÿß*lc4©)L™£JŽ›J†h›ÇÅH—ZÁY‹±ÔdÆè¥C#IØ¥¦ßÛ°ˆ ¹)QÖ[]·3aЩQÉ${#1`7Rï®ÃíÍí'¯ŸS&Q¼"—‰+‘^»‘÷ßù–µ+vÑkB2=&>@‰ üx÷“¬Ý:ˆ{߸…ÏŸøÙ¿ší¥ì;>ˆOüZ¿CwÔ&Ý_ů¼É:’ ÉÒlêœÂy,;ÐÁã:£Å›±ïÞÄŒG§ñÙ* ¢½”'†òipßÉ ½Ã*SµUän8ò—rv,^Ìo[½˜òžs~'Oàßó'°gÖÛüºîrû]IŒ  Ç¯2óÆ:L¹¯ïù˜»ûû£:NÓfÂà?ŠçßžL’W«‚*ãPrHW™A’œäeóÆÓ8/ r'ÁC^âã!À‰%ÜóÒë°^ÇÒ™ðI$ ¿ï\w6²Oª€nLzz “(fõì7¸ÿ_jîyðn¦d„ÇZ HnZ´5ÔÚ“&êÜÜÐJ’ ¶ê/QAY+8´~'ò¿#+/Š;_z‚q7…æÀn—59%6+&O-J³7]û?ÆËïŒÀƒZ~}}{~ÿƒ.±¼˜âPÁbÆdÒ¡M¹Š^nÄÛt_¿‘M~i¤õŽv^ª7`µ_Bç»KÐ`R:Ç:‰R…17´¢ÝIÊÛMÔÙ$ü ó)ëscû¼_dO¢fíä©—­ÎrwO†±bÇ&Št´6_'x³YYÆÞ?vq$ï$ DM?”*;昛ÛÃŽ„Ar@bÝ•V|ãû’0½"¸l` -Ñi7ðbÚ €Mo¼ÌæÍ;éÖua§½ãФ“è¸þ“T´{–àšÖ³$­ªƒpØ’SÞšÓù×ü‡©8¬xrð[l¸á XëÈÙ“Íè»;ÑP¸ šå¼‹Ш Ò*­â«™'ðè•Dy8ß´qÝv®œ˜Øê}el_´˜µ;¼¹önõ ê9‘çæLd÷ÌÿðÝ'•\yß5Ä«þdp4é «“§J¢†ÝÀÚÎö§ ÷ïÎÀ'f3>2•cÓâÎØ<ùÁ§Þ…ÿ¸Ñ<9o4‡Ï`ùšï™SP‡5no=6ë¯oòÄOËÙß+ }”g+¸†Jâˆ>ú¯¾gÃf('¿Æ%«Òx~òXžš7€¬o>`ùOûI}úL3?àÛ¿b“W²g_^ò©fÑË_øê|¾Žµ±eÚý¼ñÙ|Æ?Yc»ìØ6lîZTö“õ0¹Jþ焤ÄC=™æL%(^?és¦ñ£&”âš ûi1aû¾æ™/7±}o<1b,1U™ÿù&k'ŠLÌ[’LjP4§åv´ÄË óWÌšþ+TõÊ ç¦±Þz2ÈÅks$pÿ‰§ï{›M©“Ù´˜6|ÂËë¨,« ÆC$ùP2‘ÉAsù!«7WLŠGãß¿‰Oú˜Y+mˆ¶R² ‡1£½¢ÝŒÎ³7ññ)lؾ’MAÕõÔyW²síìùIµwdJL&ì’ƒÃÐ…Ô1ùl?Ü€±<ý˜`¶~±’ÊQ !È,‘„èûGRá!JŠNP}-×%kœÚ·$ «ØÄgïE0úë·ÇA½C@rÈÑyFÓ©ï~^›åÃëßÞ„cÕQÁDiÞjM_–ãuÈU5˜ é,2bnæÆîNù"èü馲"˜O°õ»/˜±ô0’NÂd“Ôé‡#ÝP¦dÒÀRÉ&¡ª¬Ãà_Íö•_³w½ ¯ÀtìØ¦2>±ñ¼ œ"rIý~¶ïÌGæ?‰L?Ø6g%=&ñÁÓ©Ô­|•®ZÊîäû¸ò£›øøÁiÌ48Ç%§h83<ÁQÙÚPçE°Hø³õì°`‹ýã’¬NYà@7¥ó"«©ÎˆÝfÄ@=åÕj´©­ä³YKþ¡C”„ £g¸ó\c²`‹íK7+Þ$&¡—8jHR‰ØÌùü1÷s>_™‡àn£Î¬%*½Pc³š0 €« "+)¢¸Ó5LLvFBº¤ÓgÛFv: q*ã¢ÉŠÉ3€®Jƒ!‡53¿`ÁÆbä:3¥ÆpFEEQ'ˆx;,XˆgÊóžb}ç÷OgÑ0é1áA§6§pÀaÃæÝ“®={4>SêæŽ·Ì&6«‰zƒjr)ìy7÷Ç:5ÏÎýéúìvv0”Þ­Vf@òTìbÍïY¢ÔrÓøn§¼s*™íDNz¿ÍbKטó…ç.Ø\pá"ÑNöníûÛt°š­BA‹rç­k»ÝÍfÇf³ã°ÛsÍ8Š Y½ê·ÿ¹ Šà…¥× IDATþ'B­R¡ÖhPk4¨Tj”*%2yKèg'Üú¯tRhpyÿºà‚ .\8¼m't AíE O f@ÈT¨T ä §q0D ë¯iüî^î0cïËþ¢·ÙUFJ²?àE°†z8uŒ(3•ù;XùõvT&1~X4 êð (¡Ìdwsw²=>œÛ„–¼I*µQ¦@ˆBå†B»‰}–k¤T ñTᦲbÇÀ±Ò@Ü"‚ðÀ߀BªŒN”G¶³­sw €¹€¿üÂÖµ:&}2ÅiÔÁDmM åæÞô 0Rzd +¾Ú‹ß5·2&5È™KïÄA*|ã Q;û0,¡ž}e~U¨U är2Üñð°#ÕT`¨9Êo½¼ÐRÎîÕGÐöH&ÆGÕl|Õ d2j@é‘À5ÏÍÀÙûõì^µ”µE=øGº?»wP¡!.!m ¬V"Š TXV°f_2S}œÆÒA÷ÝÏî‰3ÙhÏÀêCì=ª¤[j(:„¨.sÖ¯6Ï"~§ÒäpXî`{B8w Á¤¸ÐÊ0æîá@—ÞÜ%*ÙëG€­Šã– êÂ3é'­c/õNo•Ò,v‡z0@AXðJjˆž@Ö6¶w‹çÉ¿¨Ë5·Y­‚ÚÍmo½+)=¾=Ǻ1Xø¤2>ã(K¶î%×…·´>^è0aÖº£ó´QG<·¾ö>·Æõ/qÏò$"Gm.[·ZH’€ |»Nä¿s'‚-‹…Ÿ.§*,¨‘\·±îë(†Ž§[„7r$teê[20üþ"÷ÿÒÍ Ùw(ÏÍ Ô²õ›÷øÁý—³ÊJÆ<Ö¯ü•Û|™üÞD§Gµ½ŽêŠJŒ¾‘Ë̘Q¢ö×AY1eOüÜ5¸c"×bçÜÀÍj£{¼O2„ùÌøæ ^¼.¦ùIí¡,j"”•chú†©Žr« wE+xó8kÎKÈeÁ\À–\ ý:ûBèx>žγé¿rèØ,F@ƒPKFÊËJ©°…Ä [žç¥ªyä”RKXK^ås®”:“Zžô÷ú;@R\zã¥9_,åhÚHbÔÕ( Sx99 5¥Ô¨:!SG’yǵÜ=1œ½³?géÚ ìè2–^gy«@¦B¥T “«s­7®7¥ ¹\J­n&xA•QT¢Dð>H‘zÈ öx6‡ãõ\¯2°_<@¶cýDî^r¢ë¥p2”ÉË XòöQHoÂlÊåDoÜNœ ¤Êäl©F…\¼”ä¹€`7c³9£Lˆ’{GcÝuh¯'Û2‚>J Õ'¨ŒH$è|VEæEhlFìøŠ¹ixhôɬØdþ ¸áVîœÐŠLlø™ùÖBÌ6©©‚†ò|JÂâ.îÅ€³ÞSª¨¨5âð Á_4a–iÐø¨PœŽüí@'©Ò¸¡õ<@%e­"ßZ14°EµR)‘5®A!84›YµôIô…7Á~ õ`3ær¤"“¡! +Ó öÌ¥À\F®dÀˆ7&ò÷­fù—Gèö¯ÇÝ´Od³§p]Ã!-¤†<þXñ+»w0ù D@cÎÔ”Áa¸ž~ T63VK£.Ù~¨eø¤Ø (êŽàpb&Q8¨ÊÍâh…Š˜Þ±x MßU:÷•`>žCy`¡J§.Þ¹Žœz þ(›6U9°7Á‚‘úŠBª¼bWZ1;Ôh½sì„Q~¨¯!w1î»çÉ*¯§W¨‘½«Ë Ò…@™Cý€¡-0ú–g¾ä…É]1–æRéM˜ÜŠÙ¡Då+Ä'™·?CæíÀ¡Ïxd®/±lgѾD&z9gu¿»#sôkl0?ŒÐaJ®X©(Ë¥ &‘š| Úèa"ÉÞžGnPËe‚SG”ûâå÷;ê ÂdnøiwpäˆCe¾€ºÛD®ò“=Ù%¤M¼—çÆ5–cÿ…¨á©çF7¯³&}Û9|Vê q0_Iç”HÜð iÔ=¼;ê(ý‰×fååÑ2Ôj%2Q‰J#:Ï{ØV àPyáïaDôH`Ò‹3™@9¿}»’ãj=×$V~Ÿ»Õè‰t ñBŽ„D7îz÷cêÖ¾Àƒ¿vkI!ÑJ´¢"±_"•Åëù`•+¯ëB#îz뇴»¤UnÇZÒ€E‰°„mü"E?î÷ Álø˜=•½‰î€¸æwj QI>†rŠÝëÜPÛLX¬D­dÅ}ÿ½£„ß~ƒî=N/H’„Bð"uÒܤ¤«®–í9*ë–}s”ÚøÛøì•î`^ÍS/ä!8@°›°ØWð®äé^\û‚5ïóæ¯v$S-ÕÅ%ÔîJ ™€¤–Œ}ði&¦´ºµX¹™Ý€¹U„šŽtê‚{È©ý?º r€=Gˆ=¼PAÃïeÜ‚gÙW^A—Ð$îyÏ9.µkžç¡ÕÎqq´;óUäæXóznµ#¨”ÈäJTj¥³>v“S¨‡»Ð¾’rr3æ“äs õf,ÖFù'v6 رÛ=Ôl’„áè >^àÁ+Ë?# +»—~È×Çì€G½ ‹›SþÈpè<ÐUlãHÑ z¥Ç( &Tœõmj$!9êÉÛ¾Š%»ycÞ+øQÈÒY‹)²Øœ®E¢ %ÕXY§.t Öµ#\»qˬ™ds/¯Š¤Of7B¼º0p€7b“Rî°a·:£(qशý-Ià鎮à7²ªÇáïæ²cG…ÚXW‹!m?mâ`Ù1v—z2üæ{­à´ÉL$h{ñàKyá³ÝÔÊ{¹rÿE¸`\pÁ…‹uÐçϽ€Û’Bó™L¹ˆR¥Äawà°;쉛ï¾Â…äìÏþŸéK_?}æ1Ü=t¨4jÔZ5êÆÐM¡ŸEQl« œDñ¶xÿJ§Èî{*ï_\pÁΑŒx$ˆw§¿Çœ8¬¥ùÔöœ@•Ó wlÛ",ßÄÑêƒ,H´“Þ«Áš&£muõÕ”—‡2è¾h>Xú9Ÿí BQs”ÂÄ«¹êt ‚êñãûo3çHc¢vðíì_P%Œ¤÷ä ý²„ÙY~XvíÀèýø6ZØküÈüŸÖrô°’¯;èÛw©c–²èõi‡9(ȵœ>œ º,q¸Ó),-îdÞȧKòÙŒÛv2ò|e"µ§óÈ‹ëɼï¶Ï™ÍFµñÉ=‘¥ºÓâªö2ÿµwXaìÂè„uÌÍ®F“4†Ëù(g5‘nhåÙdÛîäêØ¶Ç`ÉfäĶï™ûÃ:ößϼߕôIN$¨bß¾gdz|;µa„…û€i3žœFô[Ÿp_Z jêsV²`ùrÊ™»ÀBÊàkèáÛd¬«¥¶¶ŽZƒÈã·™ÓØ0ŽGžK”(`+ÜÁÏ¿þBÎá*|ZGæ„Lîõ-Ÿ½ü%YñÖÒ|ªS®£¯ªüMKxÿSž]6•ؾ1d.aÁÛóñ©ÝEY@_‚‚ˆ½5i‹ñù>_L;v4ü|ˆaÄ£J>yeU±VŠwcoüýMôô-Ë^žÇu.9&ÒF&Ó¯[.Y ~gî´"”¹“®ÆOȽùpÖ|ÑIMÕæb&\sö!ji׿™5¤»‹áñ^ë¹Ýûz®é¡F®{Ÿw_ÕÑ7¸‚Çlø¥L ,æ}·™Ã Īw²ÁÔ…Iá!¸×ìcáŠ=-eÚUÅЛú⎃†ü¼þTÏl~†žöJ¬ç‡m¹+OP¯Ndœ>€êŸ±4;‚Á#“ T9ë*Vìfþª}˜måÞUÇ·öÅ ¦Ü?˜»æ0vs Åî ½õ¯úãITl˜Æc¯ngð÷±yÎlÖiýIꞀ˜µÙ{#è’ËþJº^݇Ðò_™ö[>’:€@·CdWŽcX¬çéÉŠ3©|7ËæÖ³ÛW‹ IH_ú]=†1ÏŒfó oò²”N¼ÝF½ÁNnŒ—@ôªåÌø¤†0w‰úâ<*ýº2<ÖI…·ç´1ÿ =RqnùWÅ~þòGvG…¢Ò(*Žb½e,ñM6=‡“©1Ï­`¡8{ _-) ©O4RM1Ǥ`Òzu:䯙âý[ٴ冊ÜPv¦¿{gÜs%Û?ù•Ïgf¤Q#²–ÑöÅÛ¯„q™óÁWÄz9°ë)¬“Ó{Xªì ÔÕTb¦I7 'çÕY|þf1•·N!3Ú뤈õÎ$Ky[¿çÛå9X‘Í·]dôëM°é×üÈæ]yäYJ°Lº…‰~ˆyëYºj5G™ùz¶Ôa·0ì^˜ùü\J#ë9ž]AÂ-½ ‹.¡sòoüøÆ Žø5pô˜†®ãºp±Ï„v+F›'A‰µÅGo©I°dŸ,Œ±×M`üò9|²f>ï ؾŸCU¡Ø…‹mu`³Ù° "V« «ÍÑÔÌ&+‡’ “ÑŠC’À;™q]æñÙËsÉŠl `%]ïtÞ½kÝ}=ñö¬gßÏ5L|* °Ò·›†9?Íåõ¢DB<̘ܓ¹ºo=F³{S°-ÉŽ1÷æ|eÀÃf¥ä„…”û†à‡ê‡9´‡u¢~O6%oûø¿:kT$1Ѿg4¯/8,EìûeËóÃHö;È®|_R2ãOÛǵ[Ûë$ÞDuK¢ÏÀ¥,{y»UGɲz3`„“Är”góÇê•ìÜWˆá«r “`àQ|´`³#ªŽRœ4‘‰î6*¶oàpÌ0ìÑñtí½‚%ÿÏ6áYB#zFBù >xâ=ò;_|ãB¾\cÀ£×FH+Ù>˜›}œzÊÖÌã¯ídȃ÷²iÎç¬ÓÓ9:ÃÎy,kH¤—O1ydD¤¦áÞVN[ò7°lÕjŽ3ñõçõô~ÃøôŹ”E(8PI盺Xù%Ÿ¬ äá9ÐK.à¨<̦µËÙ²+BG)æëï¡ßÁe¼óý:=Õ(eÙäH÷2)VÂxl9¯>½™[W}É•ÚNlÏGÛ#éq‚CÙv"†Nb’r /䃊ý„ GÙãÖ—«£Q—ðο7qcúË ×*[ÉDm]=õFÊÈÝ4O÷D’šGv–@ôÐñD;N°þçÍ.-"ÿb‡ÞKPˆ×÷û¹oÏ"·³*RÔ{ ‚㨹ÁÄÜç¾&?¸‚£ù ÄÝÚ‡8Y‡¿o£‡EDÀ­¦ª ±ïõŒí“ËâÝwkHÔå“SHÊȸ¶òª¦ƒ¡–Z³@•¼¾ýõb;éC7-æ£/½yzñíĘËÙ¿m›§üX.Ê.ãHŒt*ý–‚-¬üåWåÖ1oF-é£ï`ÄÃþ¼÷á»Hq^˜Š 0öº’¤Öú…­†ººzjíÎ<óõÛf²äP ÃÇ÷hÌa- ”ïbÞÏû±ØÊ8¼«ža·õm£+:ìVLæÆHºâ#»â^¹…\å`&$âëŸfóΡ(ü´ÌîIŒÕ› ÷.$É^fölé)¸¢g ÖW¾G÷Á x)ËñŽ…;U<=Ä]| 6¯ä£« .ÝIY×AôHÙ¾ü¶fbÎŽ©®EòTÞ(ÊSÏÀUWé°Y5ØñîÜŸÉk>f« Q$u·P±ë'f}sϺì- g¬¤ÀlnܯÁé]j²ƒwwz&ïgõ7sÙn®§$ÿ0ÕšDºõ !ï—e¼öi%Ýyü‘%п׆ôÜÇ7 gQ¼'/•‹w_&õ1c4ÙmlË.séf~ûe;öˆá Љ½|¹fÇ$aw×Fù¢­ØÉ7+`µ—qxwÃo냉†6fÓ*rV~É´æõÜøHªäÀÊõØ{€Ú/} šRGƒ¥UÞi‡ £QÀA“fÅš èhâì Zä³2Š ã80OKzɆÙdmLGaÃdlÔáVÌfrÿ$’â¿cÅ7_ãa®àÈ¡|$$ÓYØôǧÌõM$·ÜFŒ[#û¬çëù_Q±Ç˶íÜýñÂFŒ¦ ¤ÃfÁdQãžH”ß/|7ož ylÜ×@LVV» Èbî¿ßAýÐK<86EÃÐùºxÿº2~}ï-V×W¦ Z™„ÅbÅf³bi–ó,+v{£œ7Y±Ûí Jæê^_1ÿÍ/8e[óHxä‚‹áÛ-eÍA;#nåþ­lâT¦±\Gãg´}n'ý“;xIžì¼]}„]« $\Õ )7‡£Ç$Š r[UJ?b»‡¢q\Ú@öÿ¥!yy= øúBEE˹ÊM‡,³?u±®[.¸àÂ%±unßfÿ"¡Eð B³Þ"´z"àÌ,àÌa‹ 8iâVÉ!! }ú÷£¸°ˆùÿïû3<*‚>ÿ¡‘a¨5´:-­•F…R­F¦#ÊZ<€%©}ÎßÖÀí{fd¯‹vÁ.7TTTQS[Kddn»Ž nÝÖ?(ÁÝåøL Øðòò:m0¼³…Gä ÂÊ׳-߀MÓëBà°(8¸—\£'‘"¹/‘1Ñx)[IN™7QѾ„Dgݰ]ùeTYb˜ôÌxb[12‡ƒÁ€‡»Óää0™0É:5öê ª«k°êBé;hE‡9x":ÁÜ{[*Þ¢³µ†¼-¬ËU‘”艩ÖDH¯4ú%vA8ºžEJ¢R1nX,Ò®el­S’œJ¨T½p+ÈâPaÏ+¸ÿÖ~x å8|Ãq«.¡²¶£MDåé‹íؘ{ÞLŸ p˜UrT*ÖêJª«k°ûÄÒ¯{e¹G(«¨¤ºJIÆÃ÷Ð߯]ÇÚL”ÞÁjâ•ØjâÒ#wP°'äIL¸j(ÝÕ’ˆRHB¯.„y:É,ãñ-¬=¢¤[OLµ $ê‰ÐµTQ…g@‘!È•„&t&&ܵ¶ò¬?Ð@x'uUè:fÄ„žwo%¿¶¡yœƒq€Lgpñ]‚к…à­TP´o².Œw=ƒ5(ý“ÑÈáPáqê=†pÿm©xžQz„kÉ®· ‹Ç=c:¡”iñ §fÛ•‚è—1ŠÝ<‘¹ÇâeªáØ¡”©ôÜÄz8(ÉÞGAHÌ€+6 ž:ùÇ)**¡ºzß~C;iΘTµX,Øív´ÚvÔ½(Ci©¥²¢ŠÚúz õõÔÕÊëÕèÈ èj`û–<ê Œ¢ŠðIP˜£ÛPj¨¥NÛ…+G £gãÍ“öãì—FœŸ¬ÃÑn·c4ÿtî "Š£ì˯ º¶ŽZ['&Ý9ŒPyãY@Qè‚IˆóCŽF‰P‘MVQµ ]3‘™|ÆÄ“$IÔÕÕááÑž2¶Ry,›};³És1tÜ(ÒbÝ‘»EÑ?N"{_eU5ÔV+ðØ3Œë¤Á‡øþ~äÿ¾  v-1©™Ô;«CŽOPÁ]º{ÓPPŠà×‰È ]‡aþjjjðòôjU%#…‡÷p¤Þ“è`v™7‘ñ1xóÙ±¿¥¯Z©uHwâÂ< hk²$töÆRUƒOb:½{÷¶e 9F‘ÀÎã¸mH8 ¥7¡ÁaXr·°§XKÒÈá K8'#¡ÕjÅjµâæöƒÈ N³œRNÏnÉDǺsb÷Ф02`@´ž‰ˆæjÊËk‘Š÷ñ›!†k®èN€Fqβ¸¾¾­V‹L&;ëŠ ¢¿ `‚ƒ &ÀÛé/È}肇J† ô£sB Ñ›ØÌ®ÔíØL~ƒŸØqLʶ ¶¶OOÏ–_(ˆª`|="HOöG ÏN‰øÊk9ž{ŒJC5v_:w‰ÀË#ˆøø tr‚ "+)­¬¡ÞdųûdîÏ lÔ—QpÈBPR †#y”TGk)Ùy “—þþº“&™ÃJeö^ êE"S1|Xgt EìÙ½Ÿœ#e½‹[E£´„¥÷Äžµ‹cUµˆgòÓ£‰|¢“0mZÃA«–Øã¸.-¹:è$=¬W˜ÛIòØR¸ƒÕ9]ºxc®©Ã·[úôJÁóØïl+¯Nz®¾®a>Q„Šœ8°‚zOz_=šA݃چ@Pø“Ð9(´Ó·ÍtI%ÊK.(’„Ä@ÔÖjŽeïaûB¼{_ÍäQ)6nÞö’½¬Í²热¦Ïø4z÷Dpñ:¶˜<{0ù¾¶Ñn÷°àÂÜ(ËÍC‘Ü—”.‘¸5-èšÃü¶%‡ª*+ ×ý›k»´j € CëLL´2Ü‚C #À?–Þ)}ð´“Ÿ_@U}5RI]ÃðÔÛ©„ƒû*‘Eô¢{´72“?©Ããñ%Pi¼»å‰&$Ž`‰‚û(“wáÊñCèᎄ'ѱÁxªNÛ 2€„ø@ücSñ:¸Ò¨zG…çײ7 ‚¨Â+´}:+©/:Äá¼*ѽè×¹ɉÁè܉‹F§9펪ºôìI¼j[ö×`’BûŒ$3*’nÝ»*¤©ú8[ÊE¢’1bX*ºú|òNQS_G AôH C§ ¢sbêÆ(-–òýü¶Û“qÃb†ê2j$7’‡ T r|ºáe/'ÿX.ņ FÜ{ }üTÕ‡ùms65Õ6®û7“º(…XGÖ/ÛÑ FŒJ@·]ÏÎÃ`Ù{ŠQú¨ÁìAt¯Nøy„„›LtÎKu ‰Q4êaqq~h=#‰Žõh%ŸG2¨‹?IKHT0þžjç9YáC\|0î TÎ6 ¢&˜n½’‰w²u-V…šèÞÃI &$Ì—€-¶ú£”ØBé›Hט8º¦÷EU|¼âBŒžWpÿÍ}ðEUQ 8uEÏ(’{ÆácÜÃÎìj$Ï@“„` ¡¡Nù¬PùÛ½ ¾šÓntJʽŽÒÝ v Ç×+ˆˆ ‚ Ô! ˆžDt ÁW§@y„NéAÔÀ˜÷l#¿Æ€"t,\•€ æú:ª*¼5u}Ãu§£~[æ«ÒŸøÎÁ¸‰àA‚>‡6œ¾ ~Øê‹9¼£ŽÀÞa8ŠŽSP ”èCMv5-áÞª×ÔÔàîîŽÉdD&ÊœzоBËO¤CeØ7mC2™NRåÞ­©yáR¶ýü¿áDEFJB|<ää4ãå(žyŒ#º#¸,ô.¸àÂ%AŸL·!‚…¶¿Úüi>’“ìuØØ­6,&3Fƒcƒ‘†úŒ ˜Œ&–}÷ófýÿ¶/û¥é¹ó¡»ÑyèÐhµhuZ´nZÔZ *¹RŽLîÌý+µ »-µóþmþ#Ñî·´£†¥ a—xqÁ.7ä×2òò󈌈ü³ÐqìÈs_‡çÒNƒÁ@CCþþþl”«s~fÕ»8Ñ Fž_Añkøç.x*Î=tQQ¾¾¾(•Êó0²mûøÏ{öÜú^BâøñãD„Gœ¶üó&UÛ†ï:m¡g6§ùÛ÷ˆ‚‚‚ƒƒÿávrÞbØÏÌß&rÎgŒv;Ûñ/gÎÄ^W‚ü® IDATÿœë£•g9víËü«ûƒôgôÄß,óOý.Â9íŒg£žÛ^{.«ÿtežy½h—zM8/ýr¶[ęꬢÏÌGذê[v”êPVÔRÕ›±W ¡·÷™\ë±Q»w·Ý»ž„kRIHÈM}ýNjÓ™ÈI²S¼á3>\–Eé!˜4ûm®Ðû9òìzùÜÖ1ç];¹Pe­œÿk59ãrÏB.w$§ƒƒC¨ªªD!W P(:$€%Ij&€í?ÀüÎ4UUm?Dæå]Ò«+´ .¸àÂE8ˆµͶ¹€›BA#HÍ”°ÔþÐ%9ÿ/ˆ""’$C¡Ráp8$©ù§$IŒ™0¿f}0£Ñøÿª'ß2…QWF¥nÌù«U7¿Jµ ™B†Øx‹Ojô”nñþ•NÊôÛ:çœÔa°g—÷¯ .¸ð¿ á‚›„3zv6µño«ghÊx|uþ„ g[Or¿^O¬âl[øwŒè™|N8‡÷žªü³™qÂY×ýÏÊeâ9ÎÙsiã™õ¹pV5΢¶'?„ónöÜwQ;¬—pžwŸ³-QÅ Ð_ç^7A.XÙ¶Œæ¿`ëðœZ(Šm¢1]¨tÞøøc5ؽzqÕ óCþþõ¹Áí]ž¾‹çw hjÿÍ{Ä_ﳕó µ©·kºפä8ÉL„#¥RR;=X[3™‚@JF !¡Á¼ÿÚ»_ö=§Õj¹ïŸ’Ô+ •Z…J­Fã¦Aã¦EÝHþʲfÏßF—êæ¼¿­Çàd/_©ÃÐϮܿ.¸àÂÿ4’Ò’ËOÒJv»ÒÒÒr»ŸOˆ¨"üPKv*JKÎòM¢èFX/¨/-¡Ö5Û.¹ãø»æÎ%¾ô°X-‚€Ñh¼dúB@Àf³á—ÜI «ÕzéÕK’.ÉþjÂå¸Öìvûß+Du }$ ÁŽ¥¶œRéÜßÖ´Ž*Ê+þ")xiÌëKmî4ç/5½I@hÞ.ô%%Qý1•–´äåØy 7¨ôGžü×2Ê\ªØŸž~Ïj I œØµˆWßZ‡±bçOçQÅ ž||I‡ãr~å»tÆO¤‹8*Òß&I/¾.(÷w^вNÂ’¿˜§Ÿ]EÍYW@¨ýçžYÄ1³õ¢µBpòûÌg˜˜–‚þî÷Xs¤î$™Õ»™ýôUèS®áů·P" ç¡—Ã^fýç¤èõ<8óN…‹4÷ÿbÏTÿÌ3O-¦Àî¸Duz.u¸`\pÁ…K@E–Nqj![¾mÂ7þt&n&E™3'°B­rzÊ6¦nîd°V‹Z«ÆËÇ‹ko™ÂÓÞbÀЗDo$tIàÙ×^àÞÇî'$<Äéí«Ñ6“ØZ³ ­ºÙûWÖHþ6á-aŸ;&9eÈç?ýì‚ .¸àÂyÂîwIKKgà°‘üûçšV+yûVóíÌ­4´ÙJW=Í ÷¾ÊÚb;uë^áÊQƒÈÈÌ 33ƒC†3òç4<R f?Ãx½ž½ž«^øš} PÆânbTš½þEÖ5XÛ°;øø‰e4SºöJvÏ}½^Ïð©Ï±ô ­ù–Ýë9îîNp´ÅwOaxš}ÊËl²Ú2»h1÷d¤‘ž™ÁàQx}³µù»Ž’|òKóQEÈX?ýqF7ÖsâkËÈ­ãÌ»eÃ22ÈHK%ý­-§h©ƒ²¼u|õÞz Ø=ï¿Ü¤×£×ßͬõy˜N?0|ôèÒ“ ®–¢|üä$žš—…ý&£|ñì"טœ}X½œûdž9€acŸáSG£ÓÀþÅos‹^^?•i¿Áˆ€@1‹î¹ž‘izôú—Ø`n—=¼•‘FÿÌÁŒø%y€•Ò¬oyH¯G¯¿–§>ÜH 5üñî?™¨×£×?Êw‡Ê±y|vÕ(e¦‘1ð]öƒ¤u›¥Žæö/µ˜)Úø“ôzô)#¸ó……ä" PÉÆéÏ0%5•ôÌþèõx{M!'˜3yC2RéŸþ»;|¿•²ì–6ÿëÃÔ# \ÂsSG ïŸNFf3ÒIyzuböÕÎ6§x§±ÍVÓ:žÓëѧ⦖Pz¦;kþ¦öO%-#ƒ!W^Ïû;˜8¶a&÷êS蟙†^?šÇg¬å„£%NÁ©Œ¿÷cv·îÿj$3ïà£{®ãŠô 2d’9 þ©ÿ`þñÆU½åuôúþdd¤“6úZú~ðÖô-˜›Ê°`î´¹ü°éxó\ïpœÏш&Ø7òâ„Q ÌÌ =-ƒ—áØøCÿF ׯ#7¾Ån‹•ì%ÿiÞ¿Æ?1ƒÍEŽó´Û9ôã›L¦G?á?,Ë*[ßáÚqƒIÏÈ ½î[âÌ—fÉÿŽGŸø‘ªæ-§š¬ßçóÞ‡ËX¿ôU&èSIÏLC¯Ï vRù—êd£ k-ófli”Më­”åŸþÀæ½ÅØÚèæÙL{ì{ $çéÈaßÂËz=úôáL¾}!EMñ”Ìù¬úð.ôz=£ù€uÇ™vu`·ÔSQeÄq‰oÁvŒås¿`æ÷°œòSÙL¿w£ÿ3‡o,àI—pƒìÊË È¶Ë õd/Ÿ;š÷Ú±<ûÍ6ÊN³au¬“X)Þ;ôzôúëø÷ô-Ô6Ç.B¾g »s«šç¬pxÇ8õ±·Ìî†: ömÀ’‹qï\îÕëÑë¯ç?_ì ÁžÃWÿºá©©¤êõÜ8s;uæ– —¬[JI×$¼/àŽÔTúg¤3ôª›øh§S¶];ƒ»ôzRRõèo•²ë:ðòÈaúãß7“'Ûx5EOJú0&Ýú-…îMí-aÙ'?°õ@)v@ —/¯ËÌ 2ÒÓô~G7Ìïûš‡ô)¤f¦“¢Áýo¯¢ÌQÌÒ—ïfx£Üþh}Æb+]Ìýû“–1ˆÑ“^f‹µqÿ²³aæýèõzFÞû?çÚ›k.PÀ·³'¿ºÝ^²YL €µÝŸÞˆ^ŸFff™é¤M~˜÷·æØOïp«^OjŠý½³!ߨaÀ~>zd1Å­t‘ÊUÏ¢×ë:i*3vØ(gÓœg«×£×çùo¶QÞNŸ?úå$FÜÿG¬”.kÔ34|i$¡%zïeè½IS@º€ ¤+(¢ˆJQéÒ{ï=„:ôÞCH2é½gÚÞß3 ¡y<¾Ÿç\W/œI2³÷ÛöZë]ÏZëMˆOÇúO*)“x©8-F-dï‘4,íqGøl@ê ô[v âö§y³¦ŽùhÖ”æºÓoÙn¯ø(w=6kÒ˜£6Ùá{–ŽnB{"ÙÖ·˜=ŒlÖ‚ÖmZÓ¾ãî¿M_‘ŒqÃ1’•ø}ÿIæô7àóÿ©B¿vŠéS¶ñ8C‚Ø=Œ½Èw2Îe{ëBJå鱟éih@#§­=aÉɷȶ?[ÙÄÜÜÈ䯓þ¦þYî±nñ&_1ý5})›‰»½‘‰Ó‘–ïùøG‘Oç#ùÈÇÿ9ä?}÷6ròÏH`Þ@+”J ¬Q¡ÕkÑ»êqquÅÕͽ›«“DÕ£Ñi(T´0ƒFaÁŠE|4d%Ë”ú?ï‚Þ´ïÒY f3å»i”­XNãÈøuÑãê»+.®.è]õhõ:TZ UNÖ¯à$xíÌ_x•üýWçþþY$m>œ|ä#ï7Ñxx:sƒNqlß.¾jéîØß¦„rðû®ô¶”ë ª<Û÷ècß²ìJ$–LoTYiè›LbË®C=zŒc'Ïð]ëdŠzyû="ýjðÉ:#—Œ›h~ȹ“0n›Á³æ#Y~ÔȾ)ILÿõ,f§7%tó Ʋ×& °Äs{Ã/Ì8U‹ ÆKøuʾ¨¢f¡zõ2Äl™Á“v“X{ÌÈž ÑLZx» „ÜÃç»Óž<Ä–¥Èþf&NÿUj²„VåJUïLleZðùf#—ŒëézŽ£çBȾs„˜²þÀINÝÎè§«Ùn’_ñÃÄ4¿;zýÄEµ -tc×Óaðn#‹ªqþÜ ®†¤¿qˆ"wŒ¢~Ñl·HŽþ:‘sŸ½+Æhm„ovÖYзc–Ü7‘ˆH<»¦í¥þêcœÿ3>s»òéî(T²…´4ó‹ñ’%lV3™¤*ŠÑhÈ|Çx|…±ïäãkܤTGæt¥ûà_¹ªV;õ€€íѦÜo¶_"Z¡t:³RO§]Ëü›æ³2\Z4õ#ç¬dpíSLÞ ²‰£‹W°1²=[Ù3w ýþ\bBΉ>o|®þ+÷JÚ÷íÏàn•P¿í3YϹ—âOåš…ñòôDÿ_}€ /é½ÿ=ØÈHö fÇél :ËÙÀmLïY‹‚æÿÅ&1ÏüžÃ!&nœ9ˆá#ç7Æ%ýë.8‚B,w60¶ww~8q‡ÑyáG+h= ŒÏwíãèÑcüØù…fµ@FŠš*…’¸tšfëœ[Û)îÛnd@Ôh1’y».pѸ‚þ`ׄܠ‚ЧZ·,‰ö„’óÎq>ð «¿ëHâì¹›€YÖÓ|•‘K³¸¹q7.f{y^ÓNΠCˬŽNÎÕm—æCñ³‘s×0ÜÈÄ Áo\¶;™Ú¿ßí6«TÊ­D]ÉŽƒ'8qz#Cî/cgÔkR s¦Žâ•G²&è,A{Y4¾ ‘[w_ò}1®éÀÙ‡¸‘ö aÅö™Gh±9ˆ3GvðK;3¿?x.­Z¢ÛMØl¼È¾ùãiàX±–[kù´G~<}Ÿ¤<ç;Çïÿœ&‡²!ÝI#ªtT´‚Ó'8vâ4»VÍb@µ$tq±$¸•âà —¸xé(?UJáñ;ÄÚ_„ƒhÖäÖ§:Ã% ‰G¤ûÂB,7^äðúÅ ©%~áâü™qÒˆqëÌÏsðr„³ŸO×öá“?ÞiŽìL‚oQè›ãœ:~„k†bŸñ §^U±HôªDgç•çþÝ$™gçеm?V„Äavúk|»-àä‰c=zŒ;7ò¹!säcvÿqˆúëŒ÷Ç?ë ó÷=B®Ð•¿å±›¢r1DÁ1¾·5cqZSüÓ³ÞqˆCº‹‚ð29£(‚¡SÆ ®…æÏ¾®R¡s‹û]›¢ ›'Þ5ê背DÅQ 8|.ˆÕŸÔ@/BÁs9|ô(GŽåð}Li‰—OEª ]ÃéÀ?u†í¿N¤gåL¼ àî¢A)þ‹ ŠtaÁÊÁ”ðÌŠý#¨ôÖ&# ò-IÙ®è5ªÿ û“F‰v23­ˆJ Àâ_?Ä÷\[@ø³FK6²O*tûžAç1žüº17رþ*Éÿ–*ÔR¤Fæ~Ó×7öOÂl¶bCù×ô¥ ¡Pµ>Ìû® nïÔÆÉ÷Êþ»È'€ó‘|äãÆ›sOÿ* ,¿Nã$Cs3•¨4j¡ê¢CïæÈÎKªæ%‚[wlËWsg0wñôЛuj¢×ëßy¿ËU,Gçî]øâ»éÌ[ú3½>îƒé´: Z½½‹>·.nyÉ_GÙg…J‘çÌ_@òdþþ»äï«óñ&C$ÿ¤©|ä#ùxW¸|ìŸî˜N…µV‡Záp]ˆþtœ²’…SÛS =;×)f¹¹–µ‘UùàÃÔòSc—$Thµ:ô:Ú¤½¬ßÓ…á}нý¦kÒ°uw:—ðÃ/ÀBW9{ "eüðv…"Í[Rùy‘’ãÎþ½—qzݜ٧æä,bÒìŒ]ØŸ²¨4j”¹^7‚ThO¹~²*Ëùàé>-[Q98“$!4ü‚iÍÕ(U.¸º•Ä¿¬‹ è°PÂnÁ»l-Z´zV¥Jà_Z‹FNf¥¡Œm]œ"jTb,á׋ãûJwE}!šŽ]ÉêïßÇ;Í dðìŽ kR*ú‚®FmªZ2Ò-`=ÇW‡±üj|®³Õ÷Ãß8»éSÊZí¹c/¥š¸|tÏ­äËVÈ´‰hcçŒ©Ìøå&çu >gÓÆ™4òqG‰ HXÍ6”:½+neKS>Ëü yœLèƒl2cêS¥8h«Ö *zì™g9q¨*ËøâåE[´¢ò³¢¸ÄÉ-iÑL…ÚÅr šPâá]'‡ðÄØ†•@Y¢4•‹ 9ÇY£'ÊÊxƒ[ý†TK²j¿È±íM©o(€‹VIé–­©ðàÙ+ë_ë}Þ´¶e › Ôz P!Š)BQ³5wK®ÔèpThuj ”ÇWšQßà‰›^²i :]~Âó—îl%+-ƒÔˆÖ*…JQ¹@ŠG¨4ŽçBm¹Àν5éØFGô£Ö4jà«N…¦y :^zÄ39’ð;h^p+D±ŠU¨uó¦¿õT ¨Må˦JD…+þ”(£› •="jµRd]˜Ï²Œž|Ö·#þ”HïÊÐUhõ.¸h´èt:ô: J¢8wÌÊØmS0 D¥Ñâ]¢8-F¥BV¶W8§y)Ú×Öö»€sfqʸã¦W£V7gú— @¡¡iïaÜYºÇÏNsÒø}[";S…NçG1w€²|Ð¥5C‘wç­•BV{‡m¿†Ó¾GWj/ˆ^£B%4`ÚŽÏÈ>„I߯X ”j-:w_Šé]Ðå‘'©-î~´Ÿ´’_§wÀ3=;×á®,ÿ³–̧W“Òh,/{÷6³8ºe 5´†Q’/rfggZ6¥»jÖÃçÉs¢¢S‘<½=ýQ©U(þ+ª.Ë€ˆšLìù–Cw¾\v‰$û}VïG3ƒƒÁ€¡ÇB®%fý³û[(‡7nbÓ¦­ü±~¿Lÿ„Ýí·ù)™³¼×®Ûö1¾¾íDDlqV¢hJÇk~§C˜‰éÌ ÆöYGˆS·\Û¼‘å?’F;g ¦¹Á€ÁЉ¹'±§œâ‹){ØòCSfrÞ&Á¬bÀ`h@ëŽ_r:ãи’/ËÚÒòmRû%›¤%Ë'BðU‡nQ”¦J!_T1XuÕX´jªCe“›Gî0xídÚz¸¡×éÐä>TV2ÓnqótA\Õa<¿Ù’ºå@Uºš‰­‹àé¦A£Š%ìF Šù€ùÑ:†´Ï1gš›, ˆ -:Ô: " d›YT¢Ó¥KRN©B-½*¶“J¯DéâŽGéÊš­Ä&¦“*h3§'¥Qi^È/uõ,^3—÷*û ²½¸^ÁÎ 8»u•åùÌ¢Rë°›UéÄÜ{@°©í:6¤v“.t,+™$>wE+º¢{…áñîø3g¶Ž§Š 8¬<«;w¢¿a ÕQiÔˆ€ÝfG’hõ@ñb¸ºáns jæ©oX,Nä»þñÒ*@²Aƒ/˜ÞB‹Z£ÇÕ­4å²1¿iX¸.ÍZu¦}YH'ñ™z¥ *@ßä voùŠzžzD§`ô::­»é4']ø°­–„çÍ1” —¦Š[!Š>‹"!¯Ýd>Ƕ½µèÔ¦2z‘„=£Y\h Ë”s’RMžó¾C.ZðÉÌݘ,alÿòG~ÛzÃYÖ9˜?zÿÄáçéÄœNÛæ ŸÂÎ(Q°e¥°k¦C~¶ë=‚Ã!ÙÜ:ü– `ë5 îJcƒC˯¹””¬Tµk”óº hÖzÇS2 ü‰.Cs|¹…çÙQÞ´Œ)Ÿô¡[3#ÿ8ÎŽ¹£è`00aW(év ùcš6¢¾Á@£&ó¹¤=ØÄˆ¡ËY6ÍÑÎŽƒ&q,P¾ðž)ggÓtBOzÔ+§JƒFéA‚BN«C¯Ó¢Š9Äî=ÒÅP9åFÏn†“”ÑVåôXÌRމ –KÌé9Š_O…’ñÒˆh´jJ5Z’ïnbä°e,ýÒÑÆÎC¦{ìe IDAT”wldËÁ­l\2’–¿æðÕ#,Õ“¦Ã$%˜!a£FïdÛõiÐhL[:è¾îo y÷þ¬8y‘9 ´ö A‰„áûá­œcÞ‘Yû‘‰•3 –qûú/ôkZŸO–,føˆíDÖgëé眇÷?Úˆ‰LœÚ”1³˜9ÚÑ޾߬å^–wÿ`dÏfÎkwç·k) ¹}–÷2´Ñ(ö½Z^E•j´®E(Z î«Ã†²]ç—!Ýib0`0|Ȳ[΀˜¸= oPßq¯†Íè8eOngê7§I³„³÷ÛNŽ¿µÂü“¸wò0.aÖ§ïÓéû#ÄEŸcN¯4rVwX÷Ì‘Û:|+›¾7дÕ‚‚wñåÔmܸ¹“‰£dîXG{Nù«ÉX;¹¿SG0|8ŸËq™/ìÆ¨ ¾-soÖþ}Ö>É?ùß¶óó‡ ùÈG>þï·øo.,,ÿ ø½)½B¿TZ©@¡V¢Ñ9JB»¸ês3«K.¬ÕkÑè4ø÷å½:2fê8~ùã7¾þa&ü„ÎÝ»P¹z•¿œ%\Ô·(å*–£}—ôìß‹ _Mfå¶5LùöKºöý U+8I_Ç¿.®.¸º¹âò*ñë¢s–|vœ÷«P*DgÙg'ùýwÉßuîo>õ›|ä#ï× Ü{:6r[´fé—7°9N-°ÞÝÊâ«2u›u¥ª¿«MB’¤—$³qÍ<˜8úz_Áù}k)ñ.ZœBº<×òò§Ì½PL9™ˆ‚È‹d2Ó/°wý1¦¶ql–?øt6A1Îï†ßäLéBx—(Š—=N÷ ÌPÂe‡“_­d„Ýàš® Ü€´8B’#xÞ¤~¹m2nr1#€â>E( HãÈmi`ØE½ É4| #(ò„‰Ë¹# h‹R<:´ätO¯Ž‘"Oöˆœ‹q×óΤVn¤eÛ@’pæl¼aw™3Â2…éµrÁ]©vïÐå»÷)ðgVS˜bñ™d&¦‘7ÔÝ+€²wŸc’%dÙ96ˆ¨ŠúRüÎ3Šœs”îxKJ”á±$Šâ‹>ºøK|f6ò8Å‹ùSúæ³WÖgGÓgå[Ö¶ˆ»ou: ©ÀÖfŽ’š«®*h׿šcJ<‚Ùñã0Z túö0Ñ’€FFX¸«]FÆ’Õ‚ ze- fÌæp¢2\ð(,¢p!1OúîÓí+IèXƒo\Äç„…Y°Ú%$Ù€jÁ„†„– D£÷ €_QYß½ HY¤„ßãŽKK * …&ëg¾§«Á@ë‘ó8ÒÕ%Ì}PšÞï5Ç×[Ä.9žëÿJ®Q»ß­µÓyfÀðñÂMAœ¸]–R>¯Ë…ožß*Ѻï ~ìÚŠÓiÎ!4E4ÝéæõsV=¡Þ¼¡”FIÑÒÅ“çÒ½ó8–œF@øÿcŠ ÄÈp‚ýjR­l\òv¹XIJß|F¨ðg£&#K’#ÐÃt—ó:;Ö‚¸ü»íDÂF\!¼Ù‰õÑ%CŽœUh½Šàóðw“¯²gÙÆ´tÈïÞ_­æfâƒNQ(3yz+ÖFóé!#Æ#Ð¥aß»~ÿO}ú³ö¬ã™9´(æ‰Â.ýûY– ³­<ÖufÆ#Æíãˆ8‚«Ñ~ Û0†ê5Dzõ‚ãʬZ+/äëF&,ðîš#èñ®ÔŒVupî)fâ¡-ôfÜ_tŒ´’ÃÙe4b<5™¬AÜ OÅ~ûGîWÝÃYã ©p;„ s/âÇn1Ìþö(ÿ[°­kg÷L£³Á@Ûñ¿cŒ°ÿ5™í´I®êZÑ ¨«Ýùü( PÐ*¢0ž(ùžû\*GOÉ®®-hð’nÉ$Ùô€û®-¨ëâX‡¦óËÖhǼjÐåãzx½qh^dÙËNùีwŠÜ{N"Š7IyQD^³döoŽÁp˜f—¦R É14¹zE¥IáÑíùô4h1h:{*©Ñ¿Ï÷2Ò`ÀÐôtm›QÙÏã™VŒÞËr»“#X¢×éúM[ÔQgعz/Z9ÆùÉ¿p9þåv o² Å7dF…ríÞ)Š ìJ $žšC_Ãî7iEÇ÷*½9c/Ïõl¶sÞ~™YrÈËaìy®$ iêøGó}††ãyâUކ K`>3‹¯B›ñy—Ú¸¹HHH’Œœ3¿ØÈ ½Âem[y¼É†—x¼o½ ãxÒ¶-ïµ.ÿ¢â›µ’-+ƒ ûWãþù@êZRI7›ˆÎp¥@uq/ÙMO¶-'±K}ø$mߦ¦á·^ K™—w(ÜýxFŒ‡Ñ4 Š­—=i×AË}ÂÓ€§8T·¥]j5‹c¸d4b\Tšyk. Ä†õá:,½/â‡îþlÜ´Ÿ$µ!'*N²c·˜Ø:æ;Ng÷#Æß`(à‚`³âÓm Fã%ŒƒØ;Í›9\&;⛹ó£ÑˆñÂÕ4sxÃ9R"Lh«bí–yèoàvµ)Ú0†ÇÇOb»ÌOï‡Ï÷\2ÙôéFýp éd>Ùnˆã…Llîɶ]×AP;çN‰@>¯§açžëØüÛ3mÙIÇÜoù˜'oó š}>Œª5ǰ.ð«zø€ ’|–9}–Qãù]Lhq‘É+o£Ï~HL|2 ¿5b<þ u4±=ŒTåc–n;ã¸öšvì9q…´ Åz•eÉAøÆ>å¦%™x?_¼1±eô|ÍãˆÑˆñØ î.=H˜ÝÈÜ.s(µàF£‘  #ðO7;JÝ[âxxö(çÂû³ËhäÈÜaÔ&¿vïÓ¨ã¦-ÚÇiåÙ7æU¿]Ã)£ãÁ97{á’Œ|s!1ü”ŠéYXeRƒIˆ ¦Ê4#ÆSËiS$›SWƒ8ôÃ{öbucÐ\Zû{£ì/ù¤›ó‰lgÄh<ËŽñõX¿âÈ›ËççãíÛ£ü!ÈG>ò‘nãüºÚ–‘ól‘óÛÜלrÏy>Až³yr¾,8?#ˆ A,ŠNRXáÈ V«°ZT˜ÕVÔf3«ÅŠÍjÃfsü“ìv$»Déò¥)Y¶”Ã9'ç!£óÞR–_Úxä¼Á±YDÑé(*D  ¥¥R‰ÒÙ•Z…Z­A­Q¡R«Q©•(TªÜs~…‡µð¢Ëo:í7çõï¿o¦çó‘|ä#ï²½ ¿]šBÀút c†þÌíÓ¨öÊÖV <7Eñdçf¶®ZŽB‘ì'²pé …]£·°b_wFœ÷û‹÷àðO1lI½Š±\Ë#ã%‡®|‹Þ¶ÙÜ(9šI[àOAK6qfåQ*MkGöÍK”ñ®O‰Â…y&å=WRBó’VRcN²tü=ºˆIJäcšö(‘ç~¡ìšq}îÔ¬RØù}7ÚÏ9F{îò“a0¦mëøÈ_ø¶ÆË?K¢€B²’¡hÄ·ýéH™Í&®½Ìñçm9ùµ v ɵ¶"_ðå̹t{»7š5õïFŒ5MlÑ…k¯óÞgµÞò §†Ä׈ û›2™$Iå¼”´üŠ“úå¹…W'2’B|G‘ѯ¯íφ-àònDïÝG˽F¦îdÚûØsª•ÚøÑtì4 Å–ç²ëÄ$FnéÏ7½úÒ&. I–°KÝXòq©¦HÅöôû4„q- LTv?Z šD·œºé™AlÝ_–&_VÁ FìêÍÔnÝi•œé¸¦Øƒå é¾ò ¿g`–B»;匦ýt6š…øÐ¬ùæ)]ö}Œh6ŠÕÆQ@ÿÎÕÝ{HóH$|ÛZ†­úÇs}vŒ™?V ¦‚^õ÷©V[i¾ÝYôSjÉÓ‘¨íˆUJPì¯xÐþP®ÿŽöî/¥y›Ædµ˜‡qf3j†>ãØ·¢]Ë:>ëЈ±kŒŒÍ|Àƹ£1Ì+Ǥo'ñau¯wØ"!ב.ØíH¯¥d;Ÿ¡·}]T¢Í¼Ç‘ßeóï »ÖgÔì©|TÇçÙeåÙ  ‹`7¤Fý/˜¹èŠÊί·¸ßˆÿ@žÿ¤J@0g“‘¦AÕø#Z{riª™y2sÞ­hP» %Ô@ºôßµ'±›1ût Eùš¨o*h-è^oG²,ƒ)”ç5'3¯*€Š’ëQ|ÎY «HùwÔ»%*4dñå§ô¨›Žj Õ|y´œ KW°l…èÐǶæÔëQ¬ Ÿ2¸±ÞQÆR– Ft¸Ij5¥ìNG5„òü¯ÀÊ]&±¡Ë$ ™ß.äÂóÚß?Up/l’Žý€÷Ã}yH.Ùñþ­v‘ìŒVÌ93‘&Zâ÷0¬ã,.§SÇœÅýëgèÒç ÌI¡¯?b^ý€•ÃQñ³É”+è‚\:µ‡nÍ'çµHˆ{v‚u³Bè²÷cõÉDŠ7Îòó}9»`+ЧÇçPüuù ˈ`Õêý¦² ß_ëtžHgnòƒa ¡»×Ó§üVœàü»–b5ò»q Å­Í+9¹uGkóÜ¿9‹¿’¾lcŸ kõþT(¬{IΞ™5ÏUFŒ³lä(o¼Â2C!*TÏW«záG$Gæmæôæ3”ÓŒBÿ¶©’Šéf×Cz2Ñc4((Óá 6uHàðÔY™ø}Ô§ÈŸ®úX{z È"øðz–ÏÝF±I.<г3§¾cìÁ“Ün]–BOâßü½WˆN½ß$l[ÓA"#ñ¿Œ¾ÉûGæãþÆû)(×e:[ºÄ³ÂÞÆîóý˜úµî´¥×°`Æ·0­ì%h3tÝsí¦@6ï«HË™5(¬ÉàÄU¡gÓüw‡‘d‘~ãõì˜ßÙ¡3l Ü;¸„ɳ/.UèöyÜ7$úVá±Yh.™èÙ¼>E é öã>šÏ•ô,dT•K®Ô ¯ý9}Ê’}Q?Ê?’$œJ‹=ö,?ÎüŽWShÕµº;#šùã­òYC61¼Ï¯ò‘rGç›Þ½ _¼3 œÃ¾øKΕ'é)àrœ¬ ¢„B)bW*Q¨”(Õ*l‹›ÅŠÕæ$­6ì6»ƒ–$ìv;rN††œC甞vðÂ/‘¾Î×ÒVEù,:È\¥*ù«R¡T«Q©¹Ä¯¨T¢T*"¢˜ç¬_§·äíY¿/^sÛ–Oþæ#ùÈÇ Ô¨4™¤ZdP àSúå/‘ ÕÜqžg/ 26 Tûq,m?ÎùÝ+Ìùú1­‡u¡naÇéDg—ÿ†fÊfêü¥{‡s|þfžx4¤çˆ† AeÁ–³ÛŒ æaeºç:&:Ì¡WE‚ˆ ¤;ϱõÄ·l!|$ŒDJŒ7®Þ…qCD¡²¾¸fôSV+E_AÉLRÜi÷ ¤Éñy´P8¨i¤¥V¢\nE×ö~½èêïÓ«wM¼É’…M©E- @¿ÿ”Ó‘€ÿëd‚èÔ»J @°96ë‘s G0Îl†ì6‡“Îéð³Z­Xez}Eú}»¿yÛ ½ûŒ¤ê^ï¼”°ÛmX‹–¥bâf®Üm@O<œƒ`¾Ÿ§uÊñ±`‹%ÏYÑ2’݆;f}:ÞŸQ½ÝØÿÍ&B‡mð¡èßy®‡ì_pŽ=Å+Ί@¢( J*”êlGûd+™ñ‘DV)E{Yâ NùíK™ .$KI¤ÚÁó>üU@eäì ²µdÇ*‚"+ƒØL™x»”;.ÿm…ÙŽ,K¯…ß¾……9…LÀ°Û,Xµº??ßòß…Æ ÿ Íyçnv•­l©G}&×\j1è»)ôkðâ³Ç9e‹ÄžÉ,82üœ?Ù­f¬ *þ‡ Û°Ú$d¥µ ÅÝÇwoáÏ6²¯Ø$Í¢Q *-lI&VaÅZ¼ð‹ÌZQÌ}Ö@…Z“IzZ6²VP°6M+""j*#‰Œ¬M9?“Ä×4'¥±#ùrÊ®ûü1x-ÊQèÝÐÇQ¾”H‚ŸÕ¡Ì§‡DÊ"&ôË?»N‹CßÒØ)§­6‚Zƒ7JUUs'"ŽÔTx](æñK B•#°‘AD•2$s&V«î…³<×âý’9 «J‡F¨AãÎO8o|²IK±¢)à† »ÕŒM¡C#*Ñy¢ˆ×uÎ>.C•ªÕñTÃã‹/§q1$žÞE‘Ò¬¨ èQGmc}ð§ÌªPŽAó¢ýz{ËuC#F;åW!üËy—@Š )í̵Y_•¥/Ç:eÅGréâ JŒÞ Û­Ø$U*xS±žGÖd23ᵃ@óœ9+ B¡J'ÕñâP–Ê^{9m¬‡ZÑŽµ íð%SÂæsãÚSª YĶ!Îëdã³ ILù­Åd ) üÒý ϧµÚ!Kì–l²Ìz7-‚ÝŠU¥J…HA*7°òDN!3 p!W_y‚$K&[×QèËã”dÜ(Ýz2{[OB9´þ®¹]|°} ©í;QÛ¯ÐæÛÝ´ÉéwÂ.†Oùq~g9-§rzó×i™k4R•hNl>ÈÃÔtdÆôЄ“¸›Ý‘iÝÐ÷¬£Œé¾—úëN°°¤±[<Íéh’l¹ö‡,˹²5Eá&Lú퓸Îü¯®’™SÙfÅ&(QÅmç“Þô8v‘Õ`{º1¿X°i¼(Ûj&g·çEˆA0;~?C†gŽÿÎî Ürî«T¢´&‘a@vs½,ƒ”ç8Y~ƒßL‰Jm%3+‹l@¥¨Fã[IŒ“¼AÄÆ©5Ëðøê(•ó|3-ì×]¡äà±¯Û €•Ì”lл S½lƒ9н°dÉö'm [&Ù9UW¬Ù˜5*Ô‚ðÒ<8/æøŒì¨l⸮­õ›¼Ë×Þl5®  |™9_ßÍ-¿.Û%¤¼Ùø  s*€§àÐ6­uN%Ý)¨q1_á§±Ú}Ë‘ß+ Í>Îø)ñ(òrí’CÖ¨ ¸¡É]ìõ?ú¯Æ”áÂÒµÝ&´CiüEš3í%´©˜‡x¿û+_f»b–Ï(NW²ŒdSS´d–{`:·„)†vê?ƒï?õB™x ØÈ*Ø‘y{`ðÉ£Í#·±:ï<äY#²d±Ö!-™è3*[žà]á ‹ ïÜäyFòñב_:ùÈG>þ©=Ú¿x÷¦÷¯—ƒ~5ûõÅÿ_+ S:EÙ´JJµµVF§Eë¢s”‚vwÅÍÝ Wwwç«+nnŽóx%™]\]ѹè_û§w}Óï\л8¿ë披›+®Žk:®ï¸‡£ä³ã½µVã8ÛF¥tdþæÖàò¸þŒü•ÿùË[~óúœä#ùÈG>Þ ªÑîã+lYs…¨ˆPB.ŸæZr=Ê»;6Û–Äh¢ã“HMŠ!*#KÞÝxf66‹™,發RðjÖöä“ξÿú¶Ögì5m¡žzÔB0…“Qœz]L„<|ÄÓçIÜ;HXE?|Žm’5-š°È$2³ˆHNÊ”ox†»‚I¼Å­[1¤¨+PŒ;\Kó¤€O1<ð¥I÷ç<¾õ˜à°Dî$¢R |Eë“5 +¿¢jL8¦ÈRSˆ %¢`#ª«ó}ÖOüãBYê·)ÕJt†Dâñ•¬9{‡G¡ÑDÇàD` ª½vƒ„%)†È˜DÒR¢7«ð­êоÀ®ÞÎ ìÌ%i•x,ˆ`>ÃôŽÃXq%‹SÙÙ2â ‹L ;+ÈøÒòV³g‘m6c±J„°ã•3€%K)Ññdd%B²w%$­bÅn‘¡<9w”«õ©ânæÙáåL´ç¸Q¦ŠîEŒ\½™Iø¹Ë¾™Í—’H âÒ]; W<þd}¿f“D§€G)*Ö?ǹséDݸŸxTþEQ²-›ŒèXÒ2’ˆ‰!Á^ŽÖî³oÛ%ž‡™0]>Ìù¸ºT((‘|™kžm¨¯OßJÕ3À>K IDAT8Ïù D^»ÉÝä´þ~ˆV#szÎåqã4(£"!<”è4 ÂOqJÛŠ†¾Ž#%Òo¯`xïÝ”ý}2#Ã0ÅÆú˜+ûV³çAII×¹tYsY ¿BþJæT"ÈÊJ"2,”¤ìº´ú(ˆSûãòáâ-2ª—EK—7Ìaü§+¹ë¬?+ÛÍdÆÄ‘œšL\d8 vH:º„UçIdô^NiMµÒ`~¸Ž!í&p4ÈŽ&$pKN'’bºÊõ‘$x6¥Y‘Ü <ʇÉ$?=Äé?||<Ñgâ³vßs&Ó >•¨·Œebˆ‰æÑ…3ÜÊlI£º%ð­ÈÞý!¤E\ãú2µV¶l2¢ãIMO$ÆF|–#ðÍž™H”³ïÑ‘¤Z{2aÆý\ HßZN[÷ù ÷oæÈ£’’œ½èŽ«ÒWÈ_)+‰èȲ²‰ˆŠ$]®K£®çؼþ>I‘xpõ.ÏÔÍhT&•´Ë»9p3ÔÐÓœ DëYôå’ÒYf¬V Y)øuX…ߊ¯©Ž)2š”ŒdžYƤ¡[ ägW9}`G%”r‰³ à¡òÅÝ0§“ïÔ¡$fË€•ä+Ùqý†5sП‚lǜ갛Œ{vréqµË;즄£ì8QŠú5kQôMéÇY¬63ÙyäÒÓŸªèR1]¿ÂåÛ÷ˆSŠÈ@åFuø½‹ãUØ$=êÕ%À‚)2š[‡Oð@ÁYû…þ“2T~CŽbTÊ~Æ­ëx™ÄÓ 3ÜËÊ®pÇ»NŠe˜0……pñÄ)ž¨´¸)@Á«Y}.™¸¨pÂ"ÈLÊÄ&8‰È9§º8HN› »oê&ofý¾ÂM&®9GüÀ¶¬6,ÒËÊ—µº‰Â4ì”Ì»ç¸u/’ćG|^_%"y{). fd›<–‹5†Ç—¹ŸÐnU„7štX.1»çH¿z°=“˜ÈD²2ˆŒMÆ,82}ó å‹„YF¶Û’Tå"Aǯq;4™{OÒµõ4*^N=•s%‘eÉQÉ"§ß’ ]© ”ðQ’‘œL؉@®ÇÄ“%*wI|¦öÑü«#LÜö=_õÉÐ5":7Ç<ÉË—2ô¨}¹6Ô ‰ä—‰ï±z|2s õ|@íóÕ¦Nã»ÍsH”:ñÃú(€jC–r±Ë†¬ÖàU¤ ÆùVê¶éÍù¡è§*G›>#éW]…–AÔ¾º€ß?ëB°Ôœ)«šãëÊ^¿QîãÏ·!»¢;¿í®ö·Öñ«}n1}?^]Û›FQ +þ3cør|7ö(¼©Þ¶?ãFÕF }ØoüñÛJ6šŽý¦å ¢ ÙÆ—Ó·“NÕ±[ù¡½' !êŠR¾ªÎqžª9™§G2ò· øÔnÏÏgÐÆÀƽ±7©Iíò~/ÈÜÐLþj'I©YTû|sÚ¸ƒd%íÊ*Î:…g±2tž¼š+½Ù>ý+ˆ{jBÈfǘÞl’d4…JÓeÌtZ*­\þ®;ÊGòéûU_v‹nóóB§xÙ*/Jéî³ö»£d;m^»µ ÃVÎçƒv?°™©ôÿè”*ɵ(ÕÍeNüzüª±x5fôÄ‘´)ëö–yÞÇçõÿY4½[súz}Æ÷_®'Ͳ½2ŸoLA§Å®Ôyá—s6¤¢ eŠûrnÃwôÙ§A´ éà±toè÷"úÓy||-Kïç¡¢]ÇO¥U9- †±~Är†Íû‚eÉ$«ÄûK3¼"@AF¯Žb\ÿþlѨ@S˜]§2»C®‹ ° wÌ£K=¾ø*–¯fnb[!†´)ƒû_˜`)#†ó›°ðp"îÊc|?/Š‘GP+á¿üºžkϲ¹zs?Ó—2¡[”W–òÙâ«H‚ÄìQ‡i?ë#‡Íçü{}¨ðÄ¿ü@æŒ/ ¥S‡ž,ÿþc:‡ùÒê“1ŒìVùÍç\þŸAD©÷¢h¡B”¬ÃG£’˜1µëÅŠt:š%ÐoÏùŸ–3côJ4–XLž}øDÿÙL`A‡—7J,Zî®jç™Ë®øóÂE%‚¿â"j :£6Åä¾,ºR´ä@æ}^âݦ‡7%ߣB¼mË)7ê OÒo‹X1¾?i ‰,ßY0ÅßÞhÁ^¨=)nÝÊ7Ã!‰ 7ÌÚ€,¢îžåø.‰N³[}è÷Óýé<¤4ßOvãÆ´hVæµ$É^ÅÐeáÔÂ^l@¢fï/ø¬Yg©ä·ÈìWl•‡/í'þLÿ¶2û“NôU•ç½FÓ·¶Ã³=9ÈœÅ;xcáÞwû¹7v_ôÙÆ€¹ý?&Õ™°ã{*Ú²¸q#–QƒƒÔlÔŽ…c;ð‡²2ï͇UtØÅBIûûæ3y„-;ÿAËùÜzMó(êtÄ?3Û>íÍIBS´݇Œ¥²=‚ßÇöc%6*tËØ )úŠ˼²ŒÏ_ƊĜчøìwxÕÖÆsZzï! Rè¡÷ÞQBD@štD± –ëU° " R-H¤#¡Kï¡&¤^OrêÌ÷G i@Aá»çõy$gæœ=»¬ÙëÝkíµv÷Ï·3qÌyùU†Ëlñ Î×ïx˜†»/XçÿÜx{³®âB”†³³¶r5÷7¦Õ®ÎÅ韰#-Ñ}l£»“ˆ&ÓµòRóšÛ¡²4'bZä2Úâõ~©mYqîüôÖ’u¾ þî+:úXƒÚ‘À¾ØËA"˜ k¦ñÁàŒ̰wkÏû‹ûxöGô§¯Ñs¶­gÒІØºÈ­|1#·õ\›þ'—ß^Å»Ý=Ðù ¯`f&ñù„Ýôž±aÞ÷8yì*õ¦¼[m©rwF¿ës~\Í\QOýáŸóvï:¥ÎSÎ82—‰ /¡TI|>q=¿ÜĨñ?qïÍ„®´Ã¿~/¦|Ó— Ò±Žû…ïÞëÃ"ѓҳƒqY”Ûâí-`.HŒŒAáÛ¦¼ÊQBaíB§I_óŠ«þÕ­0dž®hÃÿ`Þ¢ÈD= ^›Á;!µprÎ-åÝù‡ÈÖùvò6:ú“›%q`ãjN[AÕBҖƵíßóÆ¢ãx6éÁØ·?¦c•<Þti×QèØŒÆžy2[*{||dE"Ã-qlE3寅.Å#ÈŸ€Ž´p4Ã(k6F¦ÕÒ¿‘Öm×öw¦~¸•Œ\‰:½ûâc‡B Þ^ª¼TôÈ0³vÄÃ]‰­Wg«bó¼„Ý?îÁ±Oá•÷©Ò“vÞΘy†0¡yïÿdrj‡„ÒÃÓ'Ç6ŒžžÄï†ò—™ƒu-ú îNÕ*®ìT€%®ŽX[ÈAnƒ§w2mF¬ý†/Oaâ**Ë,\SÍÍ(¼ 8‰ ÀÒÖ7g«B;š\.G\:~Æð„ÿ2kÚî¤0nñw´²µ@ ™½¿ pú’"iõE²’ïr>"šú§Ie.G!ĉß:Õ±²7/ÎyR0ë‹=è,d|9Þ™å‹OËÂ3‰-íqÕZ*ì1³S ÇŽNŸM#áãoùrÂ2ŒÝùbS3äú\¼½5…YdfxyY"C†ÊÊOwXÙÚaoÖöµ/³äû/µDF`»VzÕÅSeU Ƽ¾Š©½Î™þCñòvÄŒ†¼¾ò}¦¼ú*#evx×ÉÌ·k‘|ä.î.Vù}jŽƒ£-TéHïUÌšÿ~™)Q£{7Zxyb­’áãmÌÓ§ænÔªŽSÑ‚sGÜ]­ódɼ&Ãßz‰Œ¯Wòóïžüç³/Iùï—|5yÁ€Æw‹fcäO]xåíÉì3Šˆš,²ê½µ…ϪæØYd“øÛ› X)Ã¥AOÆ¿13è>ȃoæ|ÂGI_²pæ—¤|4“·'£Ç€>p K>°ÃÇGÈïË|>[E¥¥ˆ‡»u~{Ͱs²Ç¨¨J»ñ\›1Ÿé¯/Ëã8ö¯0¬è±?*|¼Å¼wOPX8Q¥Š Ä]>Dø‹ ŸŸÿ_r××WB‚‚àúõB£½ÂÕ åÇSˆíüèÔ'&˜`‚ ÿúd,åïÏ’­JMME¡P`kkûŒä¯bïu²²³Ðjµ8;9?¡ÜPÄù¨Ôh{'µZ-©©©xxx<ÁLRÑo–¿Q‰‹‹ÃËË«%Tä~úy!*: _ß'¥§Ÿ¦jµšœœ\\\xVÐdÄ‘’V°Äòê_|’Ì7šábõô ŠãããqrrB¥RU‚&,ÞÇïÙ§ë{ ‰{÷îáãíóÈòŸü)%~Yôãc -ŸLW¶Vç±òƒ‡‡r¹ü™½Ï ¡×ijùý±h§lãUï‡}M,ÈßZ »ßëNä-L¨oVÁM.¥9Æ“sž÷>l®)ë õ'×ù®ç£C Š~*ì”§¼òϵÔÕ’”—.¶Bí/¿}ZmW¾ñzœ,>ìþSô[挊p’buÐßdã/‘ãIû¾­¨íქü‰ëƒ6“„„ëìým+IÞ­é;´¾òÊz+¿+G¯=i%3å“ꬸî«• ‰äžÝÊ÷ªþ,ëW­Òkú¨R´q$¤¤£¬°¼¶ƒi µù"´9îÖÊg*ÌQÑQxxx’––ŠR¡D©T–ú ä;(ä§Ò7þvö"Ä´´âß|£¢žk«)ØL0á9@YËÓ²#Ë6™IHy©:Š)­’ÑÀÅž =pÊ,Ba/ œ>Mc8ÿl¢g>‚,ìKE]¾Å£|K~~˜ã·ôß%ÿ_š0™œ¿&˜`‚ Eõ‰ð/>¡ô¦¦r•(%–f•SÏÒHCml@ Ÿ¼-+ú4=Ùz +›!4q©|ÔÓhy¾'<ÅsV~Eƺ¢e<¾ìRgè=U»+¿~ûŽP o°ðÈ÷èYÈß“Í.e×ëÉÊ’Uš|?à¿•÷Ö•S7¡"—…Jãʅ왽‡OÕJáÙÏÙ97÷°zÍ.®%ÉÐë›òÖüF8[Uâé´OІòÌ]Â3–‘rÌäOùááŸC3oyåûÉd¶‚z^HÄ xÞT´¹q“ Ãx:×S>A†á¡[ê+‡›w‡œ¤¤¤àìäü¾"  ÑjÐiuØÚÚ>“úK’„\i‰…™¼pû¯.7øô²%d¤¦¥bmmBñâņH’Djjês';É)É899=wòšššŠ]ÞQPÏJ,¬äè²s1á5’¤ÀÂZ…Q‹ÞDGL0áyž…‘P 27ÇL.F´¹tF‰'Úg"I WbnnŽBÑ E£Õ!šVFÏJ‰¢°°Á¼ÐÉn ·ÂsöóËqÊÃ=MÀ&˜`‚ &ü ô©@y”/¸èçR‹ÞbÑÀ¥O.éf-ªº ž'Ò08‚¡HÚh(3ò·T‰EÙ_þYlE¾%Û/•ˆö}pï!iŸK8~ö»²Ë)=&ç¯ &˜`Biäæj^<½šŸµ"'7éOîš§êž\ÔÙ&{îdGügdçy† ä9Ãe‚Hnq øï×KoÀ(ÉÕä>Wc$ŠÆçSv¤<†ý¼õWá,øœÖëq0þ9ÔhQg=›÷H%´Z-z½áÅå'Ï™ì,}Ÿ7Þ$ykd­V ϽE*ñÊçø-qµÄóLÎ_L0Á„§WI.ÎÎ/\µF#÷î—8#ÔƒÑ@bB¢Iv€´´4 666ÏU½Ôj5¹šÜçnŒtz=©ù­Ï×ÊB"6&ö¹”é¨hõ û®å俢V¿¸õ×ÅãèèˆR¡|!ë}/ç¹ì{µZý\ò¦˜Üœœ 2L0ÁL0áQÑQÿSí59€M0Áž3<*¸àzó¶è¹À”ˆ.pçEïæ—PÂ\s?Ì)]¾ö‰EÎâ•J\K]}Ü=ʸN‰¿(}O*žî¹ì”ì¡Gõ$Eže‚ &˜`Âó¡÷uU*Ç÷+Z~åØî ·^‰÷ؽõWã²+\/ nœ;Æž#ѪÿãJ—þ¥Ñ*o}¤§®·TÁ2*·O¤§è­J›JqŠJÿ€¤<»YDª„ÚJÿH;*gü¥gØ—ÏOYÒãçñçjl+=™÷޳~KÚÈ`-“9»ógÞyk2ó6%&W¨¸|K¹Ü<ÆŸ»n¢û·Ûžq–U«Îù?Ä®žT»KÒë:Ò¢N±qKDc\Q_då²dT„Ó=ÅüPYwž•~*k{z[ù\D¬„çT>W¬¼uÃhHº²ƒ¹MeÊÌ_ø3"½D¨…€þæNæÏü„?^Äh5†àþß„uÜ ÖnŒ¨°>©Œù¡òFè2uŽU«N‘öOJ˜ÎÍóÇØs4ú±²ûìû@D›x’ß×]$Ç$ð†)ØL0á9_® %þ*y½"ÑÀ…‹~Ⱦy•Š$~eÿ°åãÃ\¸‹ø-ëW/ïQ¿0ÁL0áEìÞœ±™…%u_ù„Q­ oeÆEp鲂&]ƒPÑ|Ùç—³è˜]ô£žs«¦-æTj6¡¯}=‰†Òké\ݽ™ÕO,I¸¶ÌèÞmñ¶ÊáÄ‚¹lºz‡ ©=oÏ #P.+¢ï¢Ù±ä>­_kJ^Ü\bþÆ´ßNãP«}£¥w~8Í­ì»nÆàö›7—Í‘÷Ȥ=Sæ…Q ý >]ÁuI†Òʉ–c>%´ZþcR£¸tá(‰îÝp _ÌÚ-gH%<»Œf|Hc\ÌR98s.Ƥ %dßfNÿ2۪͸αFš÷®…9zîÜÄšÕáܤ>ao ¢c çGŰcq,­F7öè²;óá—“Pm8ÃÚz•ØI\À=Ò8°úÕ{7ÆÝJ‰ ;Ç©K¹*É0³iÀØ/†T‚Óè‰9¾ÕËþ$’`úOL—`W¨96o.[®G‘A{Þ†?ql|kû$ö.=™òqì1’w’•ÓsV^•V/‡1($3´\Ý´‚?v'FjÊèéƒiâfŒtvOûšíiÙˆŠ®|ð]/<ž¥•js)Ùþ”QÍH¿±“y³¶«p¤fËž Ò g²¸¶s#›¶Ÿ&NÐç:Ñiâ› ¨¯bÿ—ß°-! БèWÏÏŽ?ÆŠOåŒÜ–=„âÞ–þ±…“·sQÊA®P!‡ñíˆjœ>‹¿R³1È:óÑì>ùmŽdå„Y–;âW«oNlŠåFO“Ž0ÿóUÜ@Ž™'íFH/_ W÷±îÇ¿¸.I´ÖÔë9„Á!Õ¸³ö76½J2=¦¾Mwë§0R†[lûñÞˆG“ßO¢Á‡þŸ¾KWÜYÏë3÷#Wʬ]©2œAQì¿ëFÈKyó`Œføm¬ªÕ¡q gdPö8?ǸÁªi¿r*MÑ(£öÐ錵 gêÑÚ|=º t¤]?̺Í)tz/Ë3¿³pñA’e.BÒ¿Õ*ÅÂGÌñu¬Ý°—›¶í9"„¦Þvp{3_üz„,%jŽœÉÄÆ²ì/%¯Œl‚5€”ͽ+ç8{׌@ç;lXu˜DAB¯u ÍðQômé‡åÔ*+ñ*çÏÈhúRuÌ ß·\.쾌E`~È ¯'²ë×[4|­9΂ÜaÍë3ù[nC•j}™üV lòÇñ¶åÌßx§F! Їº®ÿb\„d '!‚ý‡ÜéÖ»f/„òÖw|?wÇáÕ¬õª¹a¥(ã]TŸeÉï9„Œl‰«¼Œ>5¤D_æÈ©@:u È×õÿÔ× é8¤Q1½÷b!—˜3»X÷Ûn#aÐØÒ$l8ý:VÇþ!–T&'I¿w”Õ_,圼mz¾Â+/ù£*|ײ9¹5—f5ñu³A@@HÙÍ3¶“c00`:o¶ÎŸ˜4™Ü9ý''tCèwˆŸ§-å‚<Ž¡¯Ð¿SUTR,û—¬fçÙ»dø…~À[üPå”ÌÓ¿óW|_ú¥å‡OW‰ oÚ™Jˆ·žû—÷°vÞ&®)äàßž‘¯ô¥©§ª =Äî%7©?¢.2ÅÚI_s@f§oÞz·6Õñ¹œ¿ŒU­@ü½íó¹OÞ½Øí± ¶'SÇ´À¾Äœšw¢'È  ÌHâèêÕl9AªäMß·'Ñ¥º=%°KÒu6|ô ‡ÔZDI[c½7„ÚfyÏ5Ü?džmP5Jßæ\Ú¸šÍ_" C® Ýßy‡Þ5 „<ƒY³n|037D Úk¬š<‡£ ª7èÏøQ ±|(+Ë2ÏŽÅwi>ºêGwi9“æÁÆ+öƒß¡g`.‘ûÖ³|íwÚNŸ¶þX‘̱ſñ×¥(2‘0è<éûß©t±:ËÂé˹jP˜ÛÓlÌg¼PÜ& 'úÈVÖ¬ØN$õðÆ :ÕvAA6GçÌaË­Ørðm=)w±nÎ&®Hµº„ñj_?®®ú­Çoiñéó.ovÄR‘Æ®O¾f{F¨ºñÁ·!'ÚÒ¶ IDAT¸—˜Ã’cnp)Æ–Ýëâgo–_W-W]wüªÒ y&‰?lãzR(-¼­PeÏ«i×wóËÂÜ“A µ ¨]ÂÂZâñ?¾÷„Ñ»’ˆ&)‚û-©ß0‰ãÇyu‘ÇÏpWçG—¶~epË"óÃÒ›ÔÖ —bºê.á+Ri=´!VèIŠ<ÀÚïÖqE¡€ª­Jkï‚1ÏâØÆ<ÛÕÅÛÉò)¢-ÝUþX{ öM .œs€Üì ×ÒvHʵ>Ñsãø%´ÖU¨QÇí1ÜZDw€Ÿ6[ðÚÄyÜ.ŸßÅD^âtš‚6-}Y†@ ;>úŠj-ró—øà›—q}Ò>PŸdá’,zm‡§™¢Ðö­O¹Êž}¶tüD¼ò¦`L0Á„€•ü«àÓ㢥2>‹¼•JF—éû NVzÌ•ñ ©0Ý $•ŒK.ñ+•ê JD—Ý£&ç¯ &˜`¿ˆ;›™ðÆ ‚ö§oÏšyçìDõ}Ž.{“°·æ]l!›u~%ËÃÃ9p(µ.™3‹×؆ý2 (šÏçþýè]ÑéÑÜÏPcÛòU†hí™8Ïís8*U¡Uïts;Ä´5çÑç§¾¿ë †ŽœÊ/gãòv>³¸»sŸ¯Ê¤ÝkCéÓ®)¾ ÷o&ظ6ÆS 8&T£mï¡tuÞÏÇ¿_ÈÓ;×÷pÝ?”ý{Ò¹…-ç¿ü™Ëù[ª³S4(TfÔóÕŸ)âÖöU†lƒbÏ_ì9q1j'l›Ð>¤?ývÆißö'×f¢&s¿¿Kèø™l½“ ÐDíåøµ+¸tÇÀà6ì9ÀåDm™]”´÷kFŽ~—§î¡+rݘÏß+§°âxñ7Ñ—ahÐ^ZÃ'SÆóé¦3$D29üô­úÒ¿w]"ølÁ™RQn91‡9~ù$öÆV?›mû÷p!2O}Ë|hÝgÝ\ÿæ¿«Ï#7·¾Ëùj¡„öêF5í>Ù›šxÎìYBv‹q nëʭ˲éˆ7ÿàèý _K¿À›,Úz”ûZ¸¿÷CŽ;´¡GŸ´´ÜÆÔM7žÈ@Q¼ÍƼ1.!ÛÍ}èÒ"9¸þ.=G2¬{ŒÑGømo %úd<’C]º À€ÝiTMÉÙÕïsȲ)Ýz‡10à"S.•“|ŽðUËP·Ãè—ª‘±‹_OÝGr  i»ú÷ëCÿWFÒÂæ,wSâØ·p*GíÚðrïô«zŽw%CºÏž9Ó¸]o8C{µÄ+w_l‹Dz"÷¦„xs?·Â íI»`g¾YÎMddÝ‹'é¾+­‡10´-jyaK‘ûã±hÎËýûÚ…ZÎfOo ÐÅròŠÿ–]èݯ/}ûô¥o¿öØÈH;2‡±SÎSgH¡ýúѽY#,Omäpb—#1”aH#òR$w²óÛÅǹ2 Ï®—sß· =z…Ò€?{"‘¹ÕÅóê'lM´œß»ˆ«ö¾ál]…ïá ÒkC6 ·R*iB°ókL·nõ%&Ÿ* ÞÛÂû?]ƵYúôëÏ€WjùßqÌ=žŽ\}‹#G£(œED-©q7¹xáQ÷“Ȳ¬CÈ Á íÀ½MÛÙ}&mj#ª9¾|2aoÌagTf¾4 £òÓ—ãxsá®gë ëž}â'&OšÄ7{¯‘¿s4bÃ\­9„°­qL[Ï×G’Îþ¾’_ö tzm(½ZÕÅÝú9ˆº•)P©ä}¯ž¿5K61·“Ð:¶gâ >´­ïCYG œ< rÙC­‘‚L‰J)¯äøß'è3A™™æÏ}ß? Z"ãÈÌñ¦Ýà0 x‰¦A®X<ªsKr’K8—œÀ¥ËÉm1ŽÁm‰¼ø'›#³ÃÍ|ÿÉ8¦,ÛÇÝœ¼¹P¸Î;÷ãÚ½}úô¥Mµ;ñtZ‰ìT uj*¹°w ú6ãÔÒš g¶³#Ê ç¸!÷¤N—WxuDS²–,'<2£cD_‰§eϘ_ßÇ­ W40„Öµeœš¹Š[Y)¤ÄÝAß|(C_íCC)ŠË§Î$ŸÛÔ§~æ­7^ç«ÝWÉÊÐk§Qc0a!ípÉXÏ—ʰïîgáçcyó§pnfé‹Ý‹ÝòóŽ'qåðíRÑhºŒÎã$±åNÉ÷r5Ý’&¡#ÕÖ®ÝÅŤÜÒÑ®b"—öåP+l ýûö¢{熸)òÚ£K¼ÌŽ?¾æci$Þ˲¹u0¥Ocº‡†: +Á^6Dïzã.èÙ§?ÍT[™ºõ6H.nú’èú#Ô-)v# ÏåBâ±R<ìì}M)=‘qäÆŸÌìC·Éô¨O¯`âŒÛ41„¾];P×C$-â8§Ï%Ô$£::sæÀ>ö\Í2¹ž€C£ö„ôëGÿþ²—ÃÝ\óëGh¿^tkëÈÅÏqAWÜ ˜sï'"ÎáØiaõ2ؼo—Ó ãø×–”ƒo/æ*rrïÇwÇžC^a`h­TÃ>þ47$gªwÌ«#š“»j5{# ÜÙõÇÚÓ³O(ÍÍ·2uó­Ò³ÊŽ*õ;óJÛæÔõ´À{œß¾DŽٛ¹”šÂ±:­Úö¡]u',•z]Ò“|Ètº@¿>}éB›Õp’Uò|W¦­ñiçUé©¢ÑÓbϰmõyr« RA…­­ffØ{×¥]+?ääw›1ÚBÇ¥TB¦sNÿÊ»o¾ÎŒ]WÈ ²&ŠDýõ)aÃÿÃo—ò"Ú5÷I¼‰ºéP†éCe<׎' oüÉÌÿŒãýU‰É-ˆ“Mcß׫¸ñ$}¯ô¤yë`|¬Š_·µÁ²ÐúhN'ÆŸeõwã3s=çÓ5ÅB‰¤‡(d•Cmºu ,®åvØX[ ’?žß n]èݧM”›™ºõΓën‹ºt«ƒ²è†l9Ö¶VX¨ä¦ßOS° &˜` €‡E—¼W2¸ä5©XLoYQÁy¿„âÑ¿¦†Â#hLyRD>HOý0j'="º÷a×õd“ó×L0áߎ{©ñî &µ²)®Ï̩զ/¡™§‰Åz&j«Ïåв7R5¨Æéýèâ'ƒF ü0ö6jÚ=|W´U5wõ¡±µ=62#ÊÓ³¸,eçoPeD[º6õÅ¬Æ þ˜uƒÄÐzxÉÁ¾^?Æå(ùy_ž5d¨‰¾K—÷§?ˆÜ-̽‘ΕÃJœû$pf™ï1íèZßeÐuÖ̺AâÀº¸×Æõ¼©bú,7îoú…(5Ô±Ó’{Ÿ¤+ÎÔ\—º^´¶±Á’¦H{¦q);‰ ûÎ ꆻÀοw­mIû‡þ-ú1$ë0ç³@Žžë'âÉÈnD±MñÊÌáø¼[$$å‚Óu~~n£ÆñRM{T€mݾLÈ•1g{Ý®Ïâòî_8îø*ƒÛ§™-`F"¯ç¦]z‡6ÁE¥_;†õMåîoæä-Ís¸u:Ÿ×;ÐÞðeÙg·È¡Q‘(·îœ%9©!/nŠo¶ž³ ®“šr=+¼†µ£k#/TÕo°öÛÛ$ 6#|;­·µ§½R¢ŽõuþuŽØ s.¬I·ÅM Ö;‘¶j 7Np$* ¹}sºõlŠSJ;¿K"Ms…“?ZS÷‡Îtö4ÏËü±à*™}+ùU¼Í²2e[$í^:ñ1|Ø‚fÔFÔ¬bßxèä‹$9Q½yzµòËÿþmÿaCðÜŽtõ±†ö¹lh{Š»¯·¦^á“ud%Ås÷B-º¯hNüÑ&nâ졤7iCíÆnÔ šÅ?·dàÖD¼ëLƒ_;ÓÅÝ Zå²±ã nMPpa[U:ïiEK4xYgqmÉEî‡=AD´€¢ö>hè…§ä$:´gÑ:¾ØàÔŠ^ÍÛÙ±Ÿw‚;ô {ûJ$Í"’]mCzR³˜í,ðÍg ?‹±­] #à5±^œ‰8‡LQÄ $(” ä2 PçÊB—©h0µmšPMN¶ ïßÿþx‚ÖÃÙ¹§6a ìúµ®a/·ÀžÔ®›‰Lf^Iu°q÷§ŽkjŸ>µÕ]vÌÝyð0ú…4ÄYÐ’ ·3™ºñ8Éo(1+f€Éå(2P9àS7˜®-ê"P•¤ð5d'¤¡Å³ÜÑ­‚¹=5Z÷c`æ îJV2·`B^îFdj:ò"çÖšugl¿>_­Ê[Óˆٳ؇;ZÓž\¼Uwøîð-Ô5IÎÕÓsÊ;tó(9ÿÛ+=fˆÄ_ÎŒ¯Ö-«ÁK#Æ0¢wu,ˆcÇóY{è:929B@?¦Зê¶fÿB½s‰9ù'«®æŒ™%cO3¤#qWp,"ƒÁ‡!Ó?&´ž5Ç®äÖÍÆ øƒ:#0QšÇëËn )±¯Ò‘÷fC)«¤U™”Ëý3;X±Ù–á_tÆ57÷!"Æ™®#|9þó<~Ûqž£7¦Ochõ(~\n ºù|~ÞÑœ©³œ@žÀŸd÷U%íx뇱Ô~¡Î’”D;|ê4¤Wóf动Šqw·.àì ŒGkÑuQSêêíIZ¾›Äˆ8 BîÙ˜Ð^ñÜLÓ꼨Ý{ñû6ouò(aŸ0’›s“ȃx´Ž"âTmºÍmJ-­5±Kx5ºµ¦_¨vÖf(iLƪwˆUk1J nq|£'uÆ)‘©èu¼É6s×8„¶-âeãŒ"ªS·8{_‹±„ŸÂ,°;cú©ùb•’½zt%2-™ôàÀãñY|ßž1ý²ù~AžCF½“ïfÞ ówox‹Å8I8÷¯Eq'9\šÐµS l‘XÿÆÔj-’‹Eq)d˜+jÑ¥Uª½ž}cû·qÏg}UièŒF@B”ܨÓöez4qÉÿb¿.´¥áâ.tr–#º_aý—Iî–Îá5Ué´¹-©Ž5‰l:sŠ+©÷IIjH÷BABl:¸‹wŲfãûéøj]Þü/àú™³´øð{F´@Ï͸²$ºvmAU93c/êÄ ¨ Uhܽí\‹¸#‚†ò~moªX€¨­BüÚ¹Då@½B!VsëT©i yyLS¼³´œœw“´´‹Ü\!ǯ\|{1Q92êb…[ÕôlÖúAÔ·¦=úZbkcŠF¨×}H¼ñ$-´¥þÏéäªDò¸ÂºEdõñ/-.Iˆ=ZÀ9פÛK/q--¹T`wÒ¢3æë2H?ÈÌ÷ÒdÆtpzðÒHJ+\j4¤G‹¦EpŸƒá[¸|ò(Wo^ÃoØ4‰ÚÈŠ]çh8y£šÙ£â3†Íã‚ÁˆÂ¬oý2•:±»™¿^‹ŸüwfŒâóémIÝó ßÎ'I©÷–Œœ8š5SXûÙl»E–ÁŸQ󾦧ÍQf-SÐÈþm—PÙ:1ø³…¼ì)’“t„ù£¾åˆRo£ö´­ëƒ‘CíÞƒ©a“ÊÑïW[¯=[e³ò¿ÛqyíÁ£Lh"XòÎ4ŽÛôgâ`–tžU¿ÌçÓ© ºóòïñZk «—Þ¡QŸ6Ôr·A–qˆY?åòê”®¸kóÙk?pY0(k'3ú"GOÚ¡8¸îgvÞ_Ź;aŒ9œ¦ž²óCWF÷Ëâó•ªÂ ˆ‚ àÒ ?cs¶óû©ÂïLÕfÛÕÀ*"ŠãqZ €Ì³9{'p3],²‰Ñ–zømP§jŽç·O: *aÍŒ©\=s”áÈJ<Ùh‰F¯¼Ïäžœ:t•ªÚÓÐò‹ß™ÅþØ Œ†tb솕G9Ò±[®§Æ /±)FPã‡3èûz'¼Í•I{ùf) !#<ÜœÑÎä^_Ï'ï¯$F ™FWZ h𘠚Q„/°£Ñ².tt”ap`ã/WP÷ªJ3c8°j³w% hÒ{¯¿êÇ‘ g°¨Þ˜6õÜ‘çžå§_SèÖ[ÁŽFúïŒ%'˜ñÚ÷œ7€dРóŸðïcÿ‚Ãä6ÁLxa–t*ûÁ_¥ï=0d<Ê\òJ©}`RN]¡´±¨øÓËSûBž\Ö’õ±×îø}ØÝòÜ3ÁL0áŸÅuvo8ÇŸŠ¡ìDVN ý~)}<$«°÷¯Ký€(’¢òV¬ÒÝ}ü~:…€Žcéä{ž {¯!]é·`KG¼Jß´,PúÙgvZ)­±)ŒRºËU3ŽîVèu6X(åy;¼½ëPïê^¢E‘*È1w«E‹úYµ;Oƒdgžbû’œøó"Kõ¹ø´ÀÄ·FQ× H½Àn;Gº»Yži‹¥™W¦Oê_>À] Üm½©’¯‘ôi·¹bÕœ—ìmwSc¹V½£Pò ¢·¸`¬‚—«=Vvn8 æïoÆòýß5™¸þ:™W΂L‰­_0 «ßäê Тɕ!lòŒ/¶¾%_&;C b GÎ’ÓO—§—0s­NÓ†~XoË/P›AÄžEìsχíl¸²{·´@.±W.áêK—üßÊl<¨„ëÚ8D$\ðÓ8 ìIˆL]0C?û¤„ƒ^‡N# émóœCÖ^ø§_A“Ëý,|T²üq©MpÄA¢$w2ÒݱWˆ˜ûÕ èÒunQ½Ú)ÏÈ ´ÃSnKVÌ¢5–¨l-òŒNÔŠÞM²&‘” Wü,ˆ€,(˜zNr¨_AI.ÞfùÃeÛ»]‡ßdaÇÎ|báDf}ùf# ¹â «§­`Ñ3ÂfðÝkVädd¡Ñå»ËäÍh¸‰›‰PÏõ¯1³ÉLÓ埵ç‚5{îDÄ‘hyÞ $ïžÍùÀ¶L päôlrõù&8³&´ ØÌ{ ÈÊÊÉ?×ËWŸj:$JOU°õÂÚôh"­›ÒW%’*Ärd×·¬9ã€w‹ALž0œFÎ òS,œ¸‰Ù2ªžËÌ~50Z«ŽÂ›û›˜Ò92•AÔ£ïªØq¬¿u-f82¯âõå3¶ÖJÕ'ÈUØW«KýÀ»ÄEŠÖ9æöT©[_Ç Èż^áàKí†þ8¬ÉʯC&YinØå½¥X»ûãwý2g“m _¼–ó›òƒ6‡½ßàQ=©ú¯ç]+´Ü‹ÚÌÆ‡©óÎbÞІ³âÒ.ÂïYð×wJ fÈGã©É¦ÿœEŽÖ€Ä¿á¶À³z#Z¿‡¾&¡aÍñ4W@§n¼"™as}“Žž§¥;÷è„÷Å ¿×•/'œd¯3»„JŸCÜÉÌÜÁ4¯J2I Xºxã"ÌãDbgzÚÅr.î6·\íð]s€ûªv¼ÿ뛸%eѦcܰ¹ùçb†LãÃOý Pü —/c6úK¾Å•-sù|n–¿ÙäßMM]1„Bq—Ý¿ÏcE¸-~Æ1ut?jÚòùt õ©_ùÏâC4ß™}ó ;Ÿï«gƒ•3îêËü´7ŽŒ;ZjT½ÌF­9í]1îpùðYüú>Xc‡È¯»17¢#¦ÎâG;pŽX­ˆ5g–ÍáÇU‡ˆ³Påsi¹Ùmøx[[RÓÝ ²4æñÀÀ:Ô¹xŽÛ@Ý‚^µr£ÉÀ˜ßG‰uòEVŸ¹EøIºøDÌÜ5yu4¦rûV"9Ù2®FˆèT,ð™}ðE#‘ì¨],ØaxÈ9ã&jðñ!_ð}kØñö~9źuÊõü“‹6'Ó¾a IW •œ sµ¶HºR ƒÑ˜¿/JÄ ;×0¦/NÍ´H¬=ÌŽ¥'ð›Ô í¹ƒ¸xãSÅ“XÉȃ53Ìr´èŠj"é?ŽÙKÓÅóðrbI»LÃnŠhø |¹µkê×õÎ7B[Ðdôwü4ò*«ÇÍDüñs^r+aUŒE8€‹%JQŸK޲5Ÿnª‹ÂÁU‘"Dƒˆ”¿¬×¨o¾xk÷²ËZB£É!Ç"£ËdFõ =´ ¬‹ÚSŒÆ|¾ ! #zãd¿¶„E î°ò),9>šžU½‹3"ÌC™Î˜WYÞq…ã’£E' ùÎå‚Õ¬eŽ­ +R†\AkÀ(€¢ðÛJÌ5zôF)¯? ÌU˜i4JQ[ …mJËvä&æ¼¹†šë:“pæ/ªM[ðì•ÌY³›ƒ7B¨ßÄ…V“þKaZdÖ·Y÷öF6MdØÏ]™ñ^–fç"ÊĬ–L/v–žíè5xŸ´hG¶­]† m‡çeyA]®²v… Æã¬ðgò²¼7±'¿jµˆ2ä´fºwsÚ~uŽ·[và3k9¢Î†jõ_¡íSz<ôêc,yç(Í~þG$lÚŒdÖúPD‹DŽüºƒ#kà9©==¿ü––YzV×ømÔ¯l©ñúÕ-}bÅÆCGŽS&LìHÝ*¶ÈDÉÌ wíV2ƒjá_ÖøUhœ+ 'ÍgÑ0 yäZztûaÀL¶FnéD§°0®ñ$¬sžwÒ.¨ mⵄH6¬A³Ô|ñÞºø[Uú -hµh-¬±4—•Xi(±ÐhÑ<ì‡2¹—Øþý<Ö-¶ç&¼2î5¶ò­¸á©@¥¯‹b+£Xl#“=˜e ªÜl²r]¨Rcg‡zžõ?ža×6÷¯UÆùŸÿ tjRõdögt;wŒ->õñá{¸««IÃmi×ÐUŽNæ÷þÕ³ÜdÖ8WñÀ%§*µ½ÝQßßÌbIøer¥,ҜÈ m‹—§+–æÔªŸH;Ïìaß!—a•8µ¯E²¯¬ÒÚbëìMÍàjüz<™žÁ(eЩ¹7 ¿,gÙÆ‹þ°AeL#%½)µ:6Aëדìfñ€KÚ7ÄŽÙMùëë D¿Ù„€†[ÙP«çDf·Vq왵ýúà4´1.]˜ŸâÇ1ûhºt&>é{ õ¬…1OŸ$6Å`ÌçLIzbSFÏJKä±™6q1vŒ¦º&—ëgvÒ²ë”ú­Ph²—£½þA™$Cµ*Ó IDAT²iÜ*ìzŒ§–› ràʮմ|y{±t¤ºÌ£üöþ šÿømáÙ’ÎuzñÁâº\²—mË dDi'pñy¾øü ((srQcK£ASø¶¯E‰9Gʋҗ¡çÄŽìØ»ž¿1CudçJ„¾'gÕ·Ãùqó¬­t¤KÅy\”Kæ$Flå®ScM"uñëÌ9qmp²+>CÊäÍyãÔ’žŒ„#¬ÿìk§µæìâ5lNÙÁFk‘\µš\‡óˆŽ“ý|&MRr‘YG²rì þlØmû‡¤PažÏ•„B>(C&ÈPäj1ÈJó0µá!ºÑ aÈõà?ËÆœ•ȵ¿w²ã›ƒx¼-‘N÷Ù+q<4ïÎåv§¦øúúÑþ:ç‘[^bñÙlªý}ªæoâ ó‡‡Óôç…aŠrÙÂ6)PéŒõ\±||Û04Ì7ë{`4OåÔÚpŽ/Û×Ô—ð’ùóÍÕ˜·E'#'„"z_®Â<·œ\Ñ`Ä(J7æ9÷dÞ¦ÎXº#ïˆr¼[O`ÂGí±ÊÑa”[ájËæÛÞÔ¨Ö˜úmRðÙ©%¸v-‚|3©¶+!î&g¢6qaÌvÌtj²´!ôâ‹SÝôií‰;Éœ>)!ÔîEÿ¶žØðtÉÄ<=‰;ñ{Ù¼m’9 C)è>$зsMª›VŒç‰8’¢8­íÇ;!>EÎv­Aw‰¿ÍÍœƒ¸ûÔ!ÀËÌZòé¦àRk Ðk3»÷Ll¾Úƪ7DTV6æ)5ÜØý+³~þ› y.év=è\ ƒBŽP ‚€B!G•–aL@€`ÄÙp •( ä˜aƒ‹®VþÔtu†[™6ûWöœOÀ§ÿg|3¦3Þ¶²ü¡ðÅÇ¿- ‡ê/1åç]u€? ÛŽ*BÞ˜K¥H¢9nÕ«ãFU¾^Úƒ”£‹é1Ðþx-O¯H¢µ+ÞõêÐ*° –]i¾”ûwï“%zc–ÉqczöjD„O,…<&S5fâšß]þÏzT2Ì0rœ ¥‹Â±•!“Ër¹ YìUŽ™÷ç­5R@®ìfÛXaÂ#ar›`‚ &¼€xT4ðÃñƒO¥Áů-¡<áÊkÇãRD›¿&˜`‚ ÿÿ`DÄO/o¼½c7šÿñ#×3‡PͶ„‘ðí<™y-Ç Ç Kõa¾œ{N=þÚ܇WRÕÑ‚±ËWbõö¶Ü_@o÷G=;›³¿-á`¢/!SºáÅ-ô:™,_Gªc¹SËî2¡ÌÈ*I«\ð±sÂÅ® Þ!ãêMh†6Æ{+'ìä ×Ë‘ËÝšÞô*XÜrŠY–áûë ðÎ3ú¨³³Q§zèY {38ç%·GµWD)ßÈnLæ¾›-Õl,P¢ÄÒÝù‘#eî̸eÛf”£4Äst÷^N&×eøË5óÒ%›—fy PBò6œ» ½ðÆ“I?-ä/ç²çåoél÷`ŒE$Iž_¿Tî;[áç`J/CV` ÈŽ#ª†½e"Fù†"1%‘øš>¼l0pQÌ¿.f“¡1TqÂñVêþ£K$Ú×™º– ƒ<ÏØÇÝš¾xUŠl‹%d»;Í×~Ïá¿Í‰JÆ”¶ÎØ2Žw9vb+× ¡†vŽÔö߯mQ‡Ü¿Ÿ.m‹F”cž¾×?5â[òQfn40•¥ÝÞF%Ý#|óQbÌì(èÚ„ð%ܬWŸÑ¾yQW}ø|y't’ UÊ6Þø\Às<ÚçÇ?‡”Í­Ó»XwÒùñ΂G>2»Ïz—̦¯gž4+Ímqõ¶ܨQíéê,rŒàaï‚§=€-uªm$Q4>$R¤"äRD’ÛàêéO›"Eyá}e-çÕéVÔg*W"HÈŠ8¢dùò(=;) +7<­×q¬ÚP‡º…sft0PY; Ì y2¹9vŽžàèÁ¸Up™¶›„Ó‘dø7(󧇀L’=ªàu÷/®E·§®·=…'zfÞçvuBE£LþÀ`+È9‚QƼ*mGÌdÌ%Ëßß”%æEóý£ %ƒ1> è2ÓHªBk=ܶtÅÇÎ'»64¯wӹѤkaó/ç$ I”!X9ä¹\‰¹ @}—«Öî8[™çmŒx. Ÿ’$""CA4›¦-â¢S7¾øãku{øï·IÈŒF¤¼ÍS’ñ[ykèNš,ØÈg.YÄG„ó˶´B% ‡•¾µºÐnçfÂýýÑd×££†õÖõðþ(zu«†\kD¬qb?åÖæER€›Yä;%æÖ˜k²Ð½PÜJ†ÊÒ7K{À•šþsÎ</³€“Ìe€§‘Ø$#F1ÿý³H31z:=dž1`0Øàî燯…¼úÐÞãs®%&È<™ø;¾T¯*ÃpM| çÅLRÍptÌ?v!‘-“¿#¦ãPu¯Ž½ “[ÞÔ|ùAx¾¨=ÌœÐÍ-ùŽ>žj 0·ÁÞ<˜Fõw²%&’Ä´¸;<šƒÄóƒ!#•¤êÞ¸2+{òŽÝ,K‰ˆ(i9u5Û&‘#OØÂÛßyoZ7œP!xXš¼÷£('QÉ‘ÛÞáäI ¬}[ÐÜß ÅW¿ LûžC‘­èÛØ Ëb3Ç¡Š€£e&~nÀ½5SVþÅXƒ3ým¶¬;B²}sú4÷Å °²tì©ã¿Ttè rdùJMHˆ#ª¶/DF£"_¿éÈÕ¨Éô÷ Ž^Ob ææ`Íc$À GWÜ‘5I"êÚf¶h‰¹yo^«ç†y½ðãÏܹxžŸf¸9»åG[R§Ú² b~oŸå»¿Peñ\ÂüÊè{cQ.›Ê}k‚ ¸b¹ù6(Ìlpñ¶<¨Qí‰Q™äe2ÛߟÍ&¡¼Ò³V\À`P<àŠ‰•ÈåV¸ü{ç^EÑ5ðßÞšä¦÷ž „B jªH±ë«‚¢X_»`CT,ˆ+¢‚A@é%ôNBHH#=!½·›ä¶Ýï 4ÅWøÜÏ“ÜÜÝ93sæœ9g|uç+‚µƒnÞØJ m®…µZ Pií°S‚­B †ZºOeá›×âmÝñiݪPºѦ= ]ßDME%E޽­uo­MgÐÓà9‚Gæb@¸' ‹‚=n¦õ|¯qÁQk­{‹B… ÑlÀ ô=ç¸_º‡·PÖ¸‚•Ë|è4:/—vö¶¹ ž¡¶Àý_}Àæ#¸¡h2¯ýð }Ärö-YÂÚœ@ž^±‰höóÁgEh &DE‡vV(­éÜM&L:wœÚ7éJÂÙŠ$¬I%$Ì€&d4O½9˜‡M"*[í.}û‘Jk³6’Þ=wR”“IyÝ0ü\ç¢ÊuÇO›—'!v{Ù¸­’–è(T8ãÙ’DNr g\]ÝpsÑ‚J ‰g7‚ :î¹øø^rÆ ¡ûÕ¤ZÕ¦’¸o=;*ŠHO3aP:aÿ[•|–N¢´¸yÔs3I•@]1éÕEè½<Ï85Ö>¨Ñ(ž Ÿ°o)´þ­:]iø¹Ckq‡„kàŽî>ø†o#¥¨*äxC)m^¾hÉà‹Gß&wðÜyKo¼N5@ý6F28ÐÚ6Æüå<:a QËßg’¿un+rHܲŠ$@©fZj ÝÃéR{€ä})Y 8vÔ­“»–­<=úmö´™ñà;|Ü>¯¥p8/˜ P;ºãæêŒ½»ö:tŽn8•ofÍþtò )ìK¶Gç4Œׯg²Õ!V¹‰¡¡„¨£é÷3ûòS3¹Ù úõ%&X@}–Ö‚ÚÉñÂÙ8NÍ…€FÛ‡^Ã`É`¢± ›ô†0:»RºgÇô•䥙iUºáRð#ß,§À˜ÈÎd¼ýÔ(*áѸ¯ýþSn = ÜDΖÅ<÷ð Jp%4 Tn ´yÉ$ Í(l†3"î©Tßn-!oï2Vž¨¢ ³–Jƒ/ê<–=õ6©‘“¹ãÎ|µQ ½vR¬Ž“ªý›8Ú¹¾H/T£R*;8ö:Ž›@õZ{„ÕåP᪳ë]Ù~Þò)@êÙ-Z‚é”ö)rÝqsuÃÍÕWT’xf›Îo7ü޵ê9 *ABôò# b ©Í¨œ\¬×»hA!X7%u!U6Øûv¦KýÇüR|v™ý‡ŽÂöX‡DúDXziÝ{Á5Æ©±ÚÙ/”çnfÉë½Ù0a·=¹:… £Ö߈þô÷Ô ®-!¯®œFµ)ã$Fë¹ã-‡wpÌdD 0i Û³7Ÿ<´ƒtÕ9óJU=%õ´`Õµœ\ñpwÇE§=3—jT(%µò¬2žYÿU$mZN‚ѪÇe¶ÑXә6W(T¨´š޶ÞKìl#/mÛÀŠýÑê´çÈ„…ª]ÏiÈâ€d&,/ ³Ÿ?ÁÙI.2¡Ä“Ü>o)5ƒx6~+›×¯gÃúõlX¿‰Í[¾çý®9­n—Cõ9r¨°$P®´êÉ•¶Òî\–TJÔnN8'ìæx»^˜~”b• ô»÷%o߯¦ÓÏÝÂöí/1R7Œ¸keï1«c¹âÀfŽvîtÆ-Y0*´ØtÌ_ s %%ÙTjTùT×[S@KÉInjÀ `£ NÚÊÁj뺯äÀ6RU*ù à?,###s•snÚ玿]ì;ç¦>÷ŽÒyZêùwý+QÁ¿»û[ßû#WÈŽ_™+›ØÙ?S0ýZbÞT`cÃÌUÐ Ù°ð^ûµ€C'nå™çŸ Æí´µQ4¢oîÁxž™·ÜHììfDºòßå_3è7ž)–s"k'[÷ýÊÖóA’pý ½ø2A>ÇäW if(³7ÅVm]¾þp7Àøñ‹™þÑj¦Üó o?CL•-Ýâ¦óÜ›qا/§ÊÙ†¾Aþ@ÄŒ7H¼óiÆÏ.¥•¼ºmjœÜ½Ž#úTŽLÀ\$ÔnŒ`6#ôYØ ¼ æ’Q°‡õG7±~ùl$¼¦¼É7#5|÷Ø$æVè÷ÆN:{õUìùtÏþT@RεÌ|ûyúçÌáµa1œ¤+·¾öýBl ÕHks ‹t:ê²tÅL~' €kG~ÊÝ 71=¼ÃÌ/Jˆ¢X0·¶Ñf0Ÿžs[¼Ï´¹?“_mbÏðŒ}s'/¯|œé7ÆÙvŽ ‰\³V½3àÒw,½²0/.†ÇéÌ /<Ï€`%Sçà;õY®ŸSŒžaÌÙ250dλ쌉!5n·ñá†@+FÇñÊõ1ÌÇ‹˜ç…ÁN¸1.oÌå‰ïQI|~+þŽ`óÔûì3‘ØúfÌ\Çû‡bÿ”Ÿ÷Îoìàåse{åŒpm"xfNˆa¶t6Yo\ƒ‹2‹úmóxýÉGi¢§Ä]þØfÍõ,¡¢¾®.eÉÁÖú·hi6X7ªHúa|’€mX,3fÍã¶jÀLò’ÏH Œæþˆ°ÓÎ\!ã Æ>ò-uÍF"ýž¯îÑDÝÖW;{+j7&ÌZÊsCÿlJa‰ÂÝkIhõs ‘÷2sRoì’©~ãEn¢0è©îáø× *t%?ñØõ 1 íyl¤®<¶âknŸº˜¯™Æ1ßX ªöÞDÞ÷>_pÁ'w>OÆÄPàØ—©/<ÃÄ(—‹´óv^ŽÓý5gµÓ FVÝÉĸ§i6tå¿?}}:ZB’¤3)$•îø;йSˆy Àþ·?ËÓׄýµtÙÔ“¸ìCæ}´BœñðkŒèâ%~çrçÍ#(o°:¯}k_ ×¢üxzq6÷á%7¾È—3BØýS6–S޵€±¼öT)?ÿ$¯×¿Î“ºµGêü6bc1›?~˜9k¬Öñ#Y7òÌœgPµ†æ~ȶŒøåcú?ò%¯þ'Uü‹L™Oc«ÈĘ÷¸aÁ!žžõ*ñÃcˆÁ¯»y÷‡P ˜‰ãŠxïñbêíé{óÓ%>Þ$ÜC `ëâÍÝïÿB·sL¢ED´XÀ;˜úù¯2õ‰Ú€˜ÿ~Ã`W[\f~Àá¸k¨oCb"  , žñ_fOŒ!BûÎàÍýÑr ½RÒÏÒÇŸxtͺ'™ôæ>Œf˜û·}¼—Gž]@î=ƒ‰™¥Á;|"Ïú41Úb²ß埚pdÈôÙ<9®3c5³ïgÂc˜€¸—70ÔNIéúõÖ'sxÒÞDBåäŵ³>ánÁD«Þˆ ð‹¹Ž¨¬x{D …„qóË/Ð'@ýsñú#ú¶«?“f}Ä­†B¾º1†ù€ì-<ûòtÙ+I®8ÄîvñóB«ܱož}Ÿý£Æ3¨± øàÐÀß톖¼M¼5o>¿k†å‹X7ý#^¿¯'g Ù¢‘V} ÆŽ{P S éë1xÃ)Ýʼn׎ÀÍ50¡]—¤ÓG­ˆ¢ƒ¡/Ï­~–“cAPâ0àI>{HÅ™³hˆ2‚ÜÔ¹Üó¹uqÄCýÇp÷{3yÿ¾×˜ðE)&€ûøþ-{,ge@‘°˜ÁÑ)š 7Åðà 1¼xGãñWæ0Â+„®a¸.< /¯SZ‰ù¼5ƹ(Õx…Œä¥µ}ÈLÜÏš…ŒïÃîï!æ#ð‹ŽÀ–þØ:æ™§Š™þøõ¼Qm¤ûøQ„X$$1–—ÞÙÉÀÑ1¼¥ÕÐ}Ì$¢0c–$D‹3ôÊö93¹öþ›˜ûüŒ8g€hÚ>‡[_ßLu³È 1ï3éýƒ<7HäÄ×S¹ëëvÁënøG^ýÿ“ñ<<ä=‚†ßÍ3ÏN¦³ŒI‹yôo8Vd`ÃŽþÂ/¼v½Š_XO¿í;y\©D¡¸Àœ­P¡mÉaËgŸðÓç€Ô‰ ÏÌæöq-¼·?}K/y»þ;…kZˆ˜0Ž.–Óµ‡V§C{19,ØÁûó_gEB,]ÄÆ»æ1{Úpì‡kyõ¹ÝÜ8&}›Hωè!ŠˆHX,Z<<‡që6sgL ޾žøwM?…  Qk±S_ø©1Ï-`ßðá l3‚0‰b:¼«3]ûôã} Š·@Ü}‡3F×—IÓ%^ž3ƒØ×Z 6“6HX,fŒæ¼ôá>b®ažJIë&Ó  ‘ò”õ|?¿‘—ÞH㊕ìÍðä–Ù}Ixu9•á1\{S4βÉå‚¶ü«š‚  A@èÒNœ8­Ç©<½P¿ø4%c{"È™ÝÀ.\Âà/üɉAøMcख़ÿèo¾Ræedddþ'²r)*.fÈÐx.ÙŒjÑhi9=Ž*|ýÐ-~‘JÚ B¸Ê–&³‰ÊÊJü|ýþög•ÄÏç—OO¸›ž—èMh)Maãó±LYÊÍdÙ¼0TWWãëëû¯¯‹ÚÚZT*Ž «úçhjnÂ`0àîæ~E•Ë`0P[[‹ÏU.Q)--ÅßßÿŠ“±Â¢B‚ƒ®Êþ¡×ëiiiÁÃÃão{†„tf•–ùׯõfÑý×àï¤ùË÷.++ÃÍÍ FsÕÕ½„ÄÉ“' ”eúR\\ŒJåß?e14±ýÝëɾ~õ¸ôëßÊ–þ›™9ÄVN[)så"Ö“¾s5? aæÌa\|û\f¾Lõm/pK”Úh9eK(ÛÉk¿Ò-f7õrýë7®ÜÛ_Æ~à <,÷Ù?úŠ“áÔ§¶ʳ[†þ ½FB’"yl[O­r.¯÷e®\t„Œz†U£ž9=6Ÿµ^’$4ýæ›Õ_Ö±ûO –èB†ñäâC¨««C¥RáààpE•K¯×ÓfhÃÍÕíŠ*—Ñd¢¶¦ooï+l`uR^©g_‰åú#´´¶¢×ëñpw¿*Ë_VV†»‡;j•úª,ÑÉ¢+V¦®<½©¸¸_?_‚œ¨UFFFFæßKaQá¿ê}e°ŒŒŒÌ¿ Çÿ~tðÿ®TûDFFFF柙7¤«î¼½S‚22—,;YvN÷ýö4«Wbÿ¾Ë%‰Wj¹d­úïjo®ò,W«lHòJñÏ··R®™ ò¶/™û"ðœÿþTú›Ÿ*ýFYddddddøÛf†Ë{×& ²‹©n6ý‰k ÔU”PPÜø?|{™Zr¥+°­eY“‘ù_!bl,åDv5–ÿ¯g(fÿ¾=ìÞ½‹œú+¹œå¤¥—c”òª™y¤`ö’þåu~%ö?Iî!WLédÝQFæÊEŽ–‘‘‘‘ùCŠ¥pU:Y9”‘‘‘‘¡)ƒu;sT*¼£FÒÇ÷L Jcsåe~aîí* `,?Æá"%#ºã­³¿s™Í­˜…Î ¿¶;¿¤¶ªœt’ÓO¢—À¡S/ú†á¨6Q|èi•µ´Âà ‘¸žïÜ@öÑ&‚zû£ÀLSáQ¶%–`ëDxd/‚œÚ÷Õ–ïàË¥5Œ¿o<ú´dVÕa „!×EâÐVÌ¡íITŠJŽ ~#ˆpiŒ¾€½7’­Æ-!#¥½$áÖŸ˜®¾Ø)[)سŸŒ†VÌ’„²ó`Ƈ»\ðM-†jNæ‰ø‡{¢B¤¾ ƒã)ÙÔÞDŒ¢“»íoìn";±‘À>~h;Î݆FrÒ“hréEt°Ó9ñà œ8˜D^M3fQÂ-*ŽAºöÛe²nW.‚R…wTÜYílE¤ñd&ÉG3©|èÓ“P/ Lœ<¸Ÿôª:Ú„ÐÓu(ÐDú†äJJltá Þ D M%$Ç¡TáB`מDuuC‰…ªŒc¤fÑ@}GFá«S£ œø]dµa ×KOpl•Ih£ ¥ ·p_ìÕJk½œ'ÛJÚj³9°;ƒ…-žAáôРĤ:Ò‘u²ûÐþ ÷Ç^]Cr|Å­FD…ýFÀûœ•»dÒS’y„üTJÁz©SQ=ƒÐ•g“’UJ“$!ší<”`ãqö¦”a´Xµ0¥Úmpqa"Ék÷Q¨P!Ø8áCÍeìè"-5$ï9F¹ÂΑ=‰èäü÷íDk9qä8ùÕM˜OՕʼnˆ‘ƒ Ñ PŸÆÚÝy I£Ã+¼7‘6õä×ëèæn-—Ø@~N-jW/|ÝíÚËzvþËÔ¼=â¢$àG?M6›Nz3¦' ,´Õr<­…С=P—¤pèHz…€½o7zö芇Íå\4RœFvq mˆXÌþôs¥ð@M‚ˆÉèG¿8gŠ2"O‰&šJ³9š”G£d=7ÞbVãÓ5Šݼ±û“Å1ê«)+¿0wT§û›™òÜ Tn®¸:Û¢8ý¹žœÄZ|û´?¯ž”µ»È´8¹F0hP@{Y[)?qŒieØùv#*2oÝ?˜ÝB2Psb=ï}çÃ;\‡ÃÕ2KMç•£Wz|±þÜJÑÒEÌ?Ј¯Ä0¯atv¾Bß§:ž¹s-¼ûý]\½‰ÿÔ¤“˜\€^°'82šîܸèhn(&aw*F³uóµ¤ÂÎ>ˆîÑöÔ–ÚÐ-Ü£C p+%éɤæTbÀ¥{oüšóÈ-k  56j0͈€[‘ ²½€¨×“•–L‹{4½ÛÇÐ3ýÙÍÙKy2;SJh5Š(Õ6¨z1*ÜjSøew>j#QÃèá)ÒPœABB.M áQD†y¢®ÍáàñªÍ(P(U~=ÕÓ•þvd#*”xFÆÑ?@‹h*'iÃN xõ ”7JÌÔæ¦‘šV@=’O$Ãz†à¬mû=ÌB[}1™ÅZzôð¾4ƒ»¡„ÄãÂû^`Ì4ÑTUBaŽðnà¶Trüx þáþ8kUgÍS¢XEú¶ Œ$I­SQ±‘x(%ZªrIMJ¥Ì¨A«Q YDÌF#¶ú2 Ü{õ¥Ž‘­Tåer<½= "f£უèìa~ù«¶2w.¼ÿýxÿÆ=+²ÒHÉ,¡EÇÐÞô퀃ª¢}H¯ÓcEc¹¶û…†Ì5d™ñïî…ú¢ºçoèÆ õô à¬iפ'7í0uNÑô>O·i ûÐ1r*1‰"®QqÄ; Pωí‡Ém5"" T{5¢gÔc#uE™$Ë£ 8Ñ]pÓš)K:BêÉ ô1p\žjE‡vn";¡€¾þíe”h+9ʦC'ѺùÖ³]ÐcœL«Ä1Ä G[õEô›zr޵ØË "­µ…$ïN¢LáNhžôqFAy‰ÇÈ*­Ã(J8÷Flˆ3Ê7¬ÏØÌ‘¶ ‹ö;½¦ÒWd“˜Kƒ‚ a1;Ò)Ü­Z…½ƒ>§õ0«Þt,>’6¢¤À+zîûH­P*ThT`0QÚ»Òs ]Ýä¸GÀ22222—`攑‘‘‘‘¹,Ô¥ñÓ‚¥¬k… Ý}†ÒÇWdh¢ðøZ–m.@åÇãaî(Û æÊTâWÍçí]xþ=8¹‚Ì£Á (=@Šóý<Ûé,§åYè IÞ³†ï÷ññ¬¥rk&ú©´…_W¡ÈM¹›8ê:‹—¡š27³êÈöìêÆ¼/oÄM2Ò¶‹ÅK7’" t jÁ5¤ANÖGÔ¦åâÖ7·¶xÖ®H¡XMY›Hòxž—b²Wðñøˆ˜,õ(<ûÜ0Ü€ÖÊzŒJ‰ÈH%Ç7­àç$žnU”mÉÇüà}Œ 9Àª5»©L(ÔzòvöÊ„9t8ÌÁÜJéñõü°#‹fc,3Ã=QéSØ¿y9;“Œìoh㡇ls¾ ±9'žµ‰‡Ù¶%”·ߌǩ?˜[ÈŒÿ˜…«Oàó8=¦G·nÚµƒÊ=¬ùõ[›R*¶5áôò­D™¬øhY‡vržXÔgppË·l9,`jid_ÕD¼s êW±úç$J¦œM$¹?ÇìAÔ¦/dé ˆ¾-¥{Èy™ûýõdìZÄò5’M+br!7=>•Xö¿v=‰Åme›8Èý<{]l‹¿bùŠ"šœ¡)k i/3³Ç¥žá)`.=Æöc[Y¶Ìž§M¥‡³-¹²í;„>nu$®ZʪcftJ=mv”ØÎà¦.F2YÍ’éèÍfÅ`¢»ûÒºûgVmÈàʪØið`îäPÎ2©›Û¨Ê>ÂÎ}5ØÚØb¬H!ÉÌŒÄsÙ|—^‹}”zgTñÑŸààþã´EP¨©IÝBæðÏ>å(K~ÌÄ&XBo]v+aŽÆñ2uuÑPBòöÏY¹,‚žÝÙåüçþéãð7å i|÷Ñ7”99áê¤E$D³?΃†àSµ‹U_­g“QA€­¢ ŽYe»Øt$”fµÖ±)+â2h 7ÁRzŒøsÛù/TOÞ/ËY±½³ÂI*ré7.›>_†Û‚·é¯l"mã;|~t0u’ÈùöGvTˆèìj(×T °ñcDûËWw¦\Ö}³”„:O_G’c[/Bt&=þ[¾ÚÛFôÐ;èÑć ´¼÷õ-¸ˆÍ&¬aÁiÇ£1›0µéˆ°ñ#´«7v—XY’±™“Ç×±lKØç‰ÇÝQ! Öæ‘²%ß›¸þÁ[m  °!i'+—{1÷»©+”ýeË[ÁÛBkãJ‚gr‡¯HùÁÍ,^½›<³Dp¸ÿÎÝþY0 (µØÙ©/º»"` Ô”—S«±§kðżºÉ|úE+ÿݿʋ­.ÿŽ7ûu¦Ð`¯ãýáï*ßß4ô•§³gõOl/±5ÔŸ^ÍmwOfÏE´¢šÝ¼;g îÃBÑI’¨Áͽ µm¿¬õçÕ¹£°nã2Q›²“uËw‘Ù"`«)¥4ÓÄMN¹$—Ö¡o*d×#Q±¡8!nƒÏsK¦fÒ·|À«rpü4‘÷öBU›ÇáýyL´-–êlŽL¢¡ÅJ-u)›Hò £Ü‹øæÃØfRìè98–Ú\ö¯þ9"v¦â“K™2ý.†YŠIMØÇ‰J#jަãë99—‘>õ¬þì;Vë-ø+TtñL¿F’6,䇕&Tnèò¨p»“Iþ%$íÙÈÚýµèÜ ä6¦¢zà!® 9ʪ5»Nëa9ÛOöêƒô03M;ùb™/¾ãýV• ÈUÛ|¨gÞÒ;ÎwK­”gìàÛ]aÌ{Éãâw3§²ä‹B¦¾q.ç4»hJaéKP5º/žF'ß>´:€[ëO’vh7™ zrNT¢tõ%ÐSƒ›%˜þþ¸ß.‰¥Š£›WðÕÆrzz£²˜0´tB×£ Ár+4ØÛ+ÏÙ¬pN=ésIÜù «Ž˜ðò¨¡bk6mÓïg\·D~ùu''ÍT=YñE„¾úÝœÎè’Å@Åñu|¿+ƒªº¼4Ç õyºç$¸ý:Ûž¯›´äìà—Ä}l\׉·—ÞqÆImiãDü®<†"ê)z>Úÿìw¨ÚÏ/k÷r²ID§+¡lk=³ÿC”ç ~|î} GFá) hìºá;¸ƒ¸­Œì}?óÍþ> T7§PsÃC\×ó×ìäDè 6’ {‚ç‡wÅN) ÏÞÎ/‰ûÙ¼!„·¿½Ì´dïã«Å¿pXTÒɧvÁ}éìr¶k©Lc÷±Í|»TÃoÝE_¿sÀ"uéYq ‰cÇ"yó£‰h eßù+Ö‚¨Ô³ëD)wþ¶(¨ç§ã`Õ­x¤}ÍVíM|1»ßYí,t0,ìO¢ ¡3÷}v]ë·ðÜ¢³Îg|ð©Z©gå·é:ç+n÷j¿aøŒ]ÔL¥£V°u#zÊ,¢§X/Þº”åÇZ‰sâ¤)Œ‰OdB¬W‡+ncv¯ÛÚ®åÛiYD Cê¸é“{ˆuKÉ.>{é ™ަÿeéé"•i?¦ãö¯^¢Ok >ßMâáúŒ ø{Ñ‚0–gæÜL—³ à}ö ›UòÉ«±Ø·Kcù¾_8Ú&bgÓÁè)(ÑÚjѨ¬‘¾–sÚùò¸„rYõv>ϵnÕìŠoBèvsÇüÊ‚ïJ‰ŸÏ¶x3ã܈ÓÁedœìÅKŸÞŒ;"ù¹E¨Ô—ù¬jÉ‚è=˜éßÌà ³ME‘³«9ò”WßœŒsþ÷Øè4gÆIBÔÐ÷–É<7#üÜ›rÉN4ÑLSY!ùå¸÷Óžq˜š¨ÈÌ¥¨Õs‡(lKK%…Dz)·ñC@@‹Ùö~1ŸýÄ :k_ãõåéÜqŸ‰‡Sp3›ÅqÎçŒßÿ$ @ 4`íº#T >ô<”AQ^¨h$->žCYe%J¯Þ\?./Õ?Wn…W/t4“šQˆ©ú8ÅEœ¬ÈÑw2¬‹HÊ—¿’AÂçsÂgÓ&hÙòÅfN¢ÅÙs “§tÇö²ÈDcáqÓ1pbW0R•‘Ci=ƒÜÉÛ³½É…4KîÄLžHŒW5»Jx©âÙ™ÂøëDP6’°ö3òJì\ÂsË߈F¼Ò0S’q‚2C(O|x/Áœàƒ¹IM/¦¿Oè… ¿‚ û^÷ðác;Ì÷"…»¿AcÛQ¶j8²6KÀͼó@o”´’”PF—ȸV ·òè ¼4ïF_ÑÆ !# Öá×õ)4(é6h±½±kHeã–ÃäWêÁg7MìNÃöC466óí§tò®8“ÀØXFÚ¾}äfœàËõõÛ8@›‚ÎÇÐIWϱ ‡hí‰gI õÕ'Xùi-#ï`Jo/ÔŠS-©ÁÙf ¾6£ƒ.!!¡À-lÓ^äóÃ'ûÑEâúž@9ûw¥Ò7 /¡5›-{Ì Žƒ)“ÕŸo§L©FçÜ1·vè/’ˆèθeê8Ÿs¢œ½+¶’QÓ„Iô!nÚdº! )ê8²ö3òJè\»3ææX:j0X=•Wî ÅOiaß«³9šC«Ž¾ÿÍ£~J ecgqÜ Ò­c,®$ÒRu’ü¬R,!¶h€‚ýGɯå¾Ïîo×=sÈ8їν ì_}Ûþƒˆô³G˜›ÊÈ?–G•®[çµHñÁYw¢™Ð¾c­äL DáKTÿP%/F<ð‘þöhhdÅMr°ìzz*Ð2–YobÃ-KæÐßĢϷsä`)ýú{;íi¦¸`‡ž5w>FBñzúÛ¢ÊÝĒ͉x ¼™ˆMª³Žž“l}‰ºa<³ìðÔT§íE©Rž­7Í+ vÓ;Œs>¥7é‰ù6±€1÷'f-öàÝ×Gœ~Ç«kŒÌ߇양‘‘‘‘‘‘‘‘‘ùRÉæÕ©h{ññü]H¶Ž ¿{½$°u¥Çõð¸í6d›¬‚ºlöÚOsø}Ü]Æ{ÙYØØ6R[æOgçöåŒóHn²‹œ&èz±šöþ–«¦Âο&J~ %D§Æ ¨º ``^E¢ˆ;JÜb¦ñJ ε M ÙÜuœº¾«yï­œ»bÌøaø©s ;éí §¼0ŒG&@1ˆA9G)Ezuº†¡§ * Ôùw%ΠŠÂŠ"2”ܨóF­;UÎ*Ê|ðq·AA,F2Ö~ɦ,->Óf0Ôõl³† q lÌÃ<ë´Šoöš‘h¢¶ZÐhM-êÖ…žúRÚšÚÀx‚•ïI°W]¼lQ àÜçž¶çÑ9"€¹²”uìifÂ]· ý•'íPRÍ¡?’à>¿¨ ¼úÑït)*(öêF?¯âßÊÀ&â‹ÞÙdëȰ»î³¶óisLuµ ÄæN88‡Ò³­KÓqÒóºì¨ÂhÃ1(ç…d“›3ˆñ®fì»ÆÐëë Ò A4”ö²5U.tÒù"–çx¥¾îVG¬_ý*RgJ'óDox±C9„s2ɺ]’KhBFrïÓ*²ž,Âꎺ€lOAo¯@¢G²gÎÛì´“lƒ?Þ—ÜÄí”q<0ÉȦÝLß|Êù à;ÿÍ+H¼XÝê³ÚùråÄ ¡{¿¶/šÍѾSyi\ÃFº~qÏâûÜL–ŠÝiéõ ×9h¨qñD©_ÆëߨrÛè ô n—ÂËhÜTh°iLaå‚ öù:¡M˜ ݘøÔD"Z X,ô€ý¹Ï¨LÕdm]Ä­P lC:ö‡¹]rºoÁÆ™ˆëæI»Õ¬I3ZÇ"$^QLxà^NÖ%¢1‹í-!a>‘ÇfjÉz¬Öú‰”GAÖ &ê,¸têMøæ$V:“v$…*Ów¼s¨ïþã;<wå?=' (”fêë°mÑmú$ã—­m¨:O!ìÀ׬X_‰ÒÇ/E +wˆÜÏÒl©$q÷.j”:,åÇ9Q© (<MéN>ù1ÿgú`6‹àíˆÑŒQÌgË[+YWÛ—È€2·Ëg/ðx×Ë7 êKIØ͸÷ª)ãС]#°×äq4±‹›Î lÞp” ±uüüÁZ¼F„ag BD€¢T2ªÂP´™È‰ÿŠL‡N¼9ÞŸ«%Þ‘‘„Æóó«óAkÆâŰ®>OŒ)¯¾›ŠN”$5ήÝéÙKsÎ5îø‡é8°s³~¼›Ç®Btß3nnÅb1Ðl²à©>çi¦VŠýÊn}¦L»ƒ¶ƒkØZ¦±ÎÉìÏg¨†uªi,èQͯ¯¥ ì³‹÷ç¯GåêÏ5ÿ¹nݺžUĺWç#i͈ÝÚ3ð¬cCZ^fuËX^ìoaçô4´}ùtþ^$C§=L¤ØH}ep»£Ñ‘ ÎôHÉ£@1œˆNP•¼Ž%Û³1aD´?¶®]­zد_°1K‹Ï=0ì,=LB´˜E3fô”H¦äH-^N8ék8ºÿ(ÎŽ&Z·l%¡UÄÙÑ–ü ›È¸&‹ˆ$Y0M˜,çÏ3§îk2[ÀTʑթÙ‡1Ùó {å…‡("‰Lf#æóîa¤±m#ï~ 'XëJôä© õ>g1ê1 (ÛôV¸ù8«~ÊçÆÐ}BqôìMŸÓ¥(§Ä3Œî*$ŒìbÑ»F6„ßðã;´…­'Þ<Ûêa¯ûÔ IDATµÔ¨qò1јì‹gÿöBHœ<@‰ÙLœzßÁ ÁvÌx΂´µf³{ËqZû­ç½y؇ôbôık:j ª€ÁÜñ„ŠœY'PŠÒÇ ïØû™ëëÄ“ Mˆ˜hin¢©"­ajWŠKËhtèC”Ù÷-uïDˆ·æÜ­¬£qµØcª:ʲy‡šƒ€¥…Ö6’  ÊÖðÍ7û0û’ÿk9G’jI_8ŽÉÿqçà{¯qÈje&7ýŽ!ßjö°P°q=™ÍÞŒïÙ6M!fQj7>:áZ^Oƒtæ C‹IP! bh«¤º$¿).x5èÉ?°‡ub0Ó&!&ì¥5$¿À*…£îéˆkE=õg™7sXûúf§]NY+ÖP  çún§%Z'¼¼LÊó)kè…‡Ó9æ ±•–öúJ¥Aqʸj‡S³ck+mšþ3ëaìÂéx¼›ØbBÔ(cs>[¾üˆe–ÑT%o£ ¯ˆ2¡ˆà‰™v]oܔ붙ƒó~¤eàMôv.ç@¶?>×8âf±ÇT•Äï!è•þ¸®  ¥€ XÚ×bk¡©ƒÔˆí÷¶Ç¹¶ ½j3fË© uĵª–ºK–ãöJÓ·a­|–í#¼ŽNM“:gý!fÔvûHœÊ-H&/¼ü¼p®Kdûgðœ=•v™TšÜñöoãЗ+i›5‹'úm#ë@:z?Æ_ç ´uÓ8LÇOÒ¬."é«åx;ÞG\«ÑÝ’Í75÷É0ë¹ÔH˜$-n¸ˆêJ‹©°½,Yó¬g+N· v©©•6ø{À’„¨´ÁÉÍO[Ñ‚ÅÕUÝQrí#¹çÜï[ VçÏïqº/ö yd-‡«h©ÞÂ˳ËÑÄÝË ÃP8ucâXg^ßêÁㆡÜÃû2zjÇNV±ïû7XåÉíס§§æ²Ö¤Ôâà슇§ JÑŒÙä„V!üþY0‚ Î/O´#F­3:í_pPZZii3·cú›¡£ÙÒ¡8ퟷ´qúSA‰JyJæ”(mlq¨Ê§¼YAsM¾nxÕ×’¾a;jµ“‡z£ù'§DA@°è)É)'½µ?½=`s*‹ço$yÓV2sñrwO‰ÀFÚKáSyÿlyÛÇnµZZ©•¿¾×sïm½Ñé;‘ò\>•u£ˆ6ÿ”î}ìf¼ ›xôKwî^õ0ƒlD ·¼Á¬;iüxÂeJ7¯Æ#4šÁ±›Y·ÏÄЮ5´©$z  péglInÂ?&—Ö|v¬o¢_ïH;ÝF?Á”.*(_FÜóQ@yü\ùr;Åãïâêp hÕ$eÿÇÞyHQ4 ø™Ù/ç|pdÉIDPTr¤/‚¢˜1¾Š¨˜Å€¢‚bƈ`QPEÉ9 ’á—ÓÞÞæ™ïÇîÁ€úŠŠŸóüº›™éé®ê®éꪖlM î]¶èú˜Í§×A˜øx첂¢h±Ù-h•ò.Ò’Ó»½Í&Wíåýßáh|1·èD¼åôSÊÞÚý,yå9æ*—R¶ùKÈ£D“KZë8µI@ü…>×÷E‡yçÅZÎþ|âääf2ÔN¬WCí‘ÍÌ{¹·ßnF«-ÄonP°Œ-Z#],ƒ œ¼„_.¥ÕÄëÉŠødO2 =ìÄ"rÅÞ{|%“ŸjI¯Áëx㶈ˆV¨+rcMëB5„`ˆ 61‚’âbJJ=¤G[ІˆØ°vˆbG;âÂÛ€hŒ t¸¸/ÍÉLу_<Çc‹¶’8¬ñî|6¬ÌÅšáGÚµ—Õ­¹}îÜ4ð•–Xâ.>Ÿäen&NºŒ¸ªCoO¦í…}Ùală»Ar4.y”-Í8ürú´L@“Ó‰”¯¹|ÒhZœ°Í‚¨mÆàÛF°×ïÁí<Ä·Ï/$cÚ2„Ó÷ëF“M}± ÇhMÍVæ-\Šväy¤|8Šö±sm ƒŽê‹‚"è0Û¢ˆOH@ðÄ¥ä²ðÓ¯9œBj|×>¾šûú4Fë_k ð›Ç¸ã9rɤü†rpá"öK\Ò¢ñQ;Â`#>Áƒ¿ìÅ5m‰ü¥m\ç "h8Þötùp¹êpkZrÅÔ›1´ˆB/4c|ÈáåLA÷a–ΞÎëK(Û¾ŒÜÜ<òÈn7‚WN #OÂq¶±‹ OÏÅÑqí @îÅ®:/éß?ñf^IÓ_¤¡‘)^ý-ÛòŒœ7¸G¾]J@©·‹mD—Õ┎éâò#‡—@Ŕ榓rY$ µ~ŽìXÍBoc&ŽmÜ Åxý»y‹N% êÜ~Bß‚ "ˆ>¤°Ím(PëÆwôz[^üŠæ1"SdÛCO0soGìÞÏŽC>¬ã©yiLÝ&”BÑY"‰‹OÀè÷Æ`·è•Mçß2ÏÆJ×pïùÿ”…:**ªXEEEEEEEEEEå/DB¢CÇŽ£%€³ 3&Îe›¯ } '^ Öæý?®1e>-:ïåÈLiN÷Ñé$~¿‰—ŒÁ¿•W6%‘m>õSCS2ù+?añJÇö¡¥¹‚Í> ¢Në*WR–Ç©¶ŒR$‘ ç3vÄ(Ø»è}¾Ù·–"2v’l‰$ΤÃïÓ ­¿§TEiz±G‡øèÖ·¨ê6š±½CÓ|5Ž\¥:Ze×'½°ɇ,Ýi¦çøóh]?+¤'»ç² ²dÒÅ|wp(­ÛŸ¬¤"‚š•eíÑý³ª£-Ä™u@û%œä·¢(ZSGÝM¬ 8A‚¾DÒhœTŸ¼SFF@¤Ž5/¾Â&SF n… Èb+_1–ÎÖ¼xã|¶û:ÓÛ û­Š¢ OY9qD˜ˆµéеhDñh–dÄ#Jч?b§ƒªŒx¢¥ AI>îÅ¥9ÖŠùH-A4áw¯¡"!’¦Ù¯C«­wàVQš’ð‹ ×ÿ ù²ýüµoóݶ¡ÙÑŒ+¸’Ìà4}ÿ3ò¿ÿ’ZG­{öeÈès0p æÿ>GÁž/ùa©L×›ÇÓ;YÇ¥­“xéí×X×õºF/ÍÁòŸÙ¶+–¶“é 0‘Ú¾©íCu¿ùnr«jñËQèE(Yò››ÝÀ«©º£í­3&ÒyØ5´*Xɇ³æ°±û¹ N>3õ!+ ²\ß6nœ&!ÊŠùÏê^ä ~kK†^>’vq Üd¾â«×R¤5Œ›Õ4šcQo-EAùS Ú£ÔÖ¸—5œ{ùbåb>f z]GcA&¾ÙyXVDÐ8\(­%‘¶}®¢-nò^Âì—v±#!‡&›a)y)Û¬›õ`û¬ëùæ§,š4%QÔ“}þ(² ²ø¦Þ|{`­;Ô§î•üHðSK¢ÇÖ®›e"x2ÉjKÓ.͉nÖ˜Öû³aêd>ô´ãò‡2‰ ø‘… >YQøEðÊ~¼€-™]£ÿh­¸&5!4~ùHHø=nd›õ¸:5)ts]_åÞ¾ûcö¹†4ÈŒs 4â±ûèth?8jqguæ’æ9| 4ëÀ…qM‰hP^¿.žæ½º1aø±$ǸWâNÍáœVY$FAÉá¾NH†ÄìPD)~,ñY$TTSGÀõÎßÃËæ³d“ȹã. E|½£#³Çedöùê–Þ|³0m:j›pÌö”ëmÏZj"ŒX-:âèØï‚ÓV‰hŒ¥ÓåSˆt*(ZtJOM"ÉIi4J5Óè¨m,"RÇÚY³Y'¶gäжDk ŽöÃG2ßòæWO°«öJ𯝠¥Û¾dáç¥4¿|,"Ýäy¡~ûƒjÊR£i§ÑœÔm«È,‘ݹbÄå¤?~Ì‚ï¾çiõ‡í: YÖ…ëÎƒÓ €ÍNéïaó¯²ÂÝœ¡—·'ð˜ÂÔŽ.¼¹ÊÏî|Íǵå%•¤¶¸vL×cï"ïbÛGŽO€-g#r€Ú=,Z¹˜EÏ,áàùÃu®¢¢rÊ~K­•¿Ž6´n÷óÖûCÿzË8RnÆ\ïüÕX±˜è Vô€-µ%Ý.ÊÁéÙùdgt࢞M±kéÐwC†"½d–ÞÉ<ÍSªÙõõû|¶RâÜ[¯ç‚æ6 ‹fçüD^µ/4±ãGVe$’.„l&4Z6D¢ì D$/fi!€„Ûá¢ÎgÆB)»Êâ°G$IM[oáPe 䀨¾œ•™©d"€c-³îœ‹<øF&ŽjKÈÅRGee9…t¡y@›¼Ç×»mô¾m<ݲlh禯ØTUï¸rR™oÃ|2/šhÅn1¢7˜Ð`#%ÅbÝO5”íe»AÆdÂ(íaÞ´WYvÐI A-‰63:­ +¢!–æç¤¿ôÜŸÛмY{:%yY?ÿ}>Zò•ˆˆäòåÌ9üÝ“Q“.%Ç&m9§íW|²1|w_Å•Vl¨Üþ oÍ\A%Ñ$&)h£öPP±ŸíZ‚¥#Zn'·ÊªÃŸV²*#‰tÚpNÛ¯ØV Å±k%[µ •)žØìÕ%ûkr©Œë@‡Ìbj(Âpx3ë¢õDj;Ò¾Ãì,íaØú«s²þ‡É£ð´”ÍŒNkÄb×T¶‹*M-¥o<@‰h“H5™¨Úg#¾U5¹•9pPZ&¢‰ôáܱ“ÃÅ¡¸”ø6éøÖTá°@ðÈrfÝ÷ùG§È¼ämÝÅî#Mè54 ßôrÎN¤GŠ@Út\ÂÇ«ëÂöH…efLÆPÿ{шá êÓ‚©ŒØö­1—îe×î=G3ƒ8Jµh´œk¿esu}¯[KE®Ó‰v˜ÇƒçP->"ˆ4±øEZ_2˜¡C‡2tXZÄTqÀ—L·~ÙpÃe¤ä~˦ÜZ‚øvWPvþú‹–3sÊçäÖ÷Ãu.<…®pfƒ ¹+ÕlE×°kÝ~ÜB€À¾ jõæ_LöK»>âó¢ðßeEäÖÆÿkÎ_!ˆwONPvod¯$AB1;°öz¯!—rA÷llJÃÜ 2’ß‹¿áýÌÑD”þŒ¦ñ† ʰ!CØÿâ]Ø.ÐSuh‡:žsœþ T²mÑ{,Ú¬£çm×Ð3'P·e)›*ÇÚ$ÏŠÙt¡-Ø-&ô:#:,¤$Kˆ‘?µ=·i|h£b1){ùð±Y,Ù].{ƒ1FkÄ ˆºhZ\0˜Áƒ†0døzŸÛ–¦MÚÓ-5ÀÆÞáÝO7RVo¿ðÛL]uç šG†¿-vÄgárÕä±§2‰Ä㜿N®üˆ¹ŸWÒîæ›¸¤mBN˃”ºkB}íî5¬JŠ!Y«=ÚÖ‚Í€V§mæL/â‹Ã¡ñÓ笥ÚeÈ*ä¥{®Æë‘Ñ(ådôŽÛ²Ÿä’½5lÿä˜û3.¯2ÏpÆŽëO³‚—xaÄX*¼vZM¸ŠMlà-aËwkÈè=œÙv âû§¸gÎ:òKàæÛ¾aÐíÏ20#|sÉ‹×ãÁí µämÛÂÖØ8º÷k »dÁW )0obͯ#û=dŒzš»î½CÓ®dÜK&´J=¸—Ôq¨pëWØèuKO²ÏëN“ïóâ Ñ”{­47žVbH™4š­·=ÁU/×â(Šaô«×bÁÎ…^ÎWfT´¼M¹þNíN:_”‹g–ÁLj×\wA:¸”Äioqïà·¨¨ŽàÜï$)ÂFÎÔqlºæ*.×øñ”$sÝ]ÿ‡Š€oû{L}y>?lsóÓÐèwï'Œ{ðn<Ü@¶ºŸK³Ý$ ØÈôKG"FhˆÉèÁÈ›‡qAfº·f1ëÊ!”ÕYhÚïz.nÞ• ,gê“×0F@ñØèòàTÎÓËø«÷³bYç=>t‡W°è‹o0ö}–öõ/`Ø=û¦o-GÃì]âž´dL¸YñÈlïö“ á7PËWpýÀɲJhíqœ?v½"Μ¶ÇµhCÛC«yµïpž-d_:’Á=Rþ¼îE£AÈ[Àã?ÃhÖ#" d3îÅi\|Û#ŒþQÆŒ~ŸXAÁ§ å‚ñ<Eº-¯p÷ ‘(7‰tùz·‹øE;_:y7v5ý±Õô¶dÌ«ïe܇~‚ˆâ²ÑõÞÇC P$?.wxt ƒ;ï§=»¦8p)$÷ÅÕç·8ÑÔ^P>NÎç*žºq[öy¹úò*î\¤rÝSŒþÏ»è‚fR³/ oŸ6¼÷—­O@/ñylt5‘ñ#;“ð;+Jv•²vîT˜»OGc,×\?ŽÖÕË™5ûeÞÿ®ËwïÐû–YÜ20ͺ™ÜñÒb¶í põèù ¼o>ÃïÄ££F²(Z‡ÁЖ«_k‹Õäà‚^;˜só@ÞvÛHm?ˆÿôëFÂß<"*’—:W™m/䢎3xôÒ(˜H¿p7öëG“'w¿öCæJØÅjò”K,þÝ.`™€Ï_¯Ï/–%ˆÛv¬Ê~\u¾P~ùLºw S®ÅG‘Z4B+®{ë¼3^*SL$–ˆxÊ×x>;€‹Çô¥à…¸zðl´¦ î„Á[ÊW:—ŒÍbã³_áíÚ•ݳÿÄ-¿•(Úœ1¹»ßàž~#Ñè5¤vɸ>í‰=¥àù©sIÇ;OÁ]Ä–OÞå²qàJ¤ÇÈÁ4³oã“ç¡Ô`G©É9‰á™ñ!Ž·ó¯u/^Ü.u.ohÙÜå¼üZC}~™Û¦³ã©»ÙÜávf§„jUc¹èÞ8ðð@FzìX̸ôžÿ2$§€ˆ ³™zéH4F ImóŸþ=HDf×Û±2ª;w6É÷‘zz?<™ŽcÌ,b0†ž­•¨+Zwå5x}Ade ñÙdÅè©-ØËˆ)9)X‘ñ;«¨¨Ñ›‰oMÅGÊ©ÃFbz216="Aªsó(uyEvËäðD®—’݇¨T@«O »q :‚>GöçS‹™¨ø$’ã-ˆÈÔ•¡¸¼/‘¤å¤aÐ  bÿ!ÊA!–ÆÍh˜}UÛ~¤ IDATÜï÷SQQAròéó Ëu%*®!(+H é-Iµ '‘m… »‚ÜC%xÐaN %9´'¯ßQ‘ârœ#ñY™Ä[uˆ¸)Ú_@M ˆ¢XHm‘I„  ûj8R$®qF‚^å5èâ3´“ê¢"ʪ]ˆLË!9€ˆDuþœÙ¤GèŽê¡ì,fw^5 5YIÊÈÀÞ@•ªªªÐjµØíöÿY×ý®JŠQ‹…¸äd¢M8™³Î‰Ïç#6æ÷†â¦,¿˜*Wýþt (Fs²‰Ñ HŽ<öÔ…RljtX²ÈŒñ:JÈ/¨" €¬‹ 9%‰˜ðþ–'kç»xÒÑçóQUUERRÒ¯Ö‹«ä…Õ>‚ŠXHmšI„&tNòÕP\©!9ÙŽH¾Jó ©ò  h‰HL&)Öö›Wô˲LQQ©©§Ih«x(/sc°Û±™tÇÞOª!o)^AF’"IÏ1Ry ˜:PD æhâã¡<¯oxNEÖbO"1Þþ«ûÕæåç‘‘žqì€ä§¦á8`‰&1% k°šÂ¢2j½2ŠĚؘ”‚£Åu (H’LTFK’,Šv¤JÐb4%’™‰6\ÅùùTy D%&“gûCQ.— ·ÛM\ÜÿšD^&à©¡¬FGr’€³„¼¼2¼XˆIJ&1Æ„ˆ„£ª’Z¯€mÿ[ ú:‹·ïDvÔOþ]\\LLL zýïÝUØOmuADYFc°aÕ#ÈNŠKDÄGbœÉħE¢GÙAîžB\ˆè‰deGý¡ºWP((( =-½ÁQ £†j§†øÔÈðýÔ”QZá$(€¬%;ÍHM¥BLbFÁòã”ti4I¶2¾:Õ Ñ™‘Ê«pË¢ŒÔT¡ØíDD˜ÐüšLÿ%ȸ«‹)ôD&Ôë³L]iUšX’¢mè 6µ»)p*¢´fiØðUao¡ÉN|ZFh,•"•œäãÓe%”;ý¡a]–ÐF§Ñ( ‹Jqù$¢³[’tâÊ(%H]Y.¹•aÛØh#)# ƒ³„‚2ê°“”‘L¬M ¸(É­BŸHŒE²«óØWâF+‚, Äd6#ÞÔÐ6®¥Öo$1V‡£´·`%&ÞŽÎ]AAi.o½m,aHhL£èû q* ˆ5%¦A* EòPSz„bGƒï•ˆDÒÓ¢ ) ¨Æ‰_‰"³y2VMÈñW粿Ä.£HlVSâ ^Êí§Ä£ÅGjZ,†{ WyÅÕø‚2R0ˆ=µ)‘º6š‚§âËüèD4â³aTRpðµXˆ U‚§Š#e8ÝA”pâ³É޳Íj®j(,¤´úþYÂçrPåÒ“ß0m¹êâʪ]‘‘%)Í’ÑUæs¤Ú‡¤(€•ÔfDˆa»É[CqÕ1»IEå×lϤ¤dª««Ðiuètº_xI!´Œ ¡¤‹Æ7c6ruõñ×yygµUu«¨¨¨¨¨¨¨¨¨üËøûÀ>':€ÿ<*Xþô\öG·að5çÿÎh²%?}Í{OæÑ¤»û-u-üÏ»3ëÌÿ߯SÎàýÏ¿Õüoà;€ÿNéþ›ùíà¿–ßäþ›ø{œeg†?îþuJW¾ÈÓ¯/`G™©º #_̸¶©˜ÎÀ½ÿwðßÏÉÀªLŸŽãÀ******ÿRþm`5´ŠŠŠŠŠŠŠŠŠŠÊiþëFEá¯ZÿC÷›'ÒM£ûÅÊú_GGB‹‹¹i¶Ò`_.áW[ã·û­÷û­×Ô£ü†ß*¿ò å„cÊo(Û_çDAUúúº„ÐÄÇYX®³²¾Dñì,›*ÒžþÉíßu¶º¿ Šb "Ö†þ̾„j—ü›dVßTTTTTTþU¨`•S"ˆùùÿȲ+Šr–—½ÁD¬#|ä“ñ¿œ¬=Õ5ÇÿÅ2æŽþ§ñ©œ¯Êñg唿SŽžSNÚN§{Þ/ÏŸ®LÿÙùët º¦ú¬,—ÛíVûÿ2ýOcBåÿ³å°ÞÝéÆSP}FË_RRüîŸT™þ}õUXX¨¶*****ÿjáßµJu«¨¨¨¨¨¨¨¨¨¨œEVHÏLÿÇ•;R^J­p6ïó{#~O°ð‹ÓFÔÔqõ«æT¿ø}ÿó;Ïÿ‘ÖŽK}vËΟ-™UUUh4"""ΚºpÖ9ñz}ÄÅÆžUåòú¼TWU“””tVÉŽ,É“ššzÖÉt~~>éiéÿ8]¨sÕáq{ˆ‹‹ûG–¿¨¨ˆ˜˜ Ã?²¯;eG@ /?´´´³®½ ILJTS@«¨¨¨¨ü«ÉÏÿw-òUÀ***********¿Ê?-Ý¢ üÊþ{¢p…ß~pêßü9u¡œ¤HJèå$× œäÿ†×üZÚg¿*%´šfôØ*ù³­.áìk#á¸{á¬kóY¦ÿ‰ºv¶¶÷ï‘‹³U¿}ÔQÎ겟Íz¦Žk******ÿT°ŠŠŠŠŠŠŠŠŠŠŠÊA&T5"¢ð{#{dIAF@«OsÝÉŽ §tú ¿{ÏàÏÿº£õ—o¢p¼3údÎà“9y#ø¯ßXEEEåL£(AI@«ÿÿ¹å” >¿€Fo@{Ö¾ „?:Fuª¨¨¨¨¨¨ü¿Bu«¨¨¨¨¨¨¨¨¨¨üõHjê|ˆèÌV̺cNOY  è Zd>/^¯ @Ñ`°Z0iÁç¬Ã+Ë(°E˜8}RÃÐ}<^?2 Ñ™0› h¿Ë…7(!cÀaBwÜï‚x] z‹1|Éç¡Ö@Ôê1™Ìèë\·ŠiÓöÓ}ìÎÍ´ð1`0…>¼?uµ‚€ hÐYl˜ë(ä‡ß²+Ы¯h‰RëA4z3f£¿ËW–AoÁfОÔñ«ÈA‚PýH~^_ ³ ½ætñ?2~¯„Ö¨ ¿oý•~¯YcĨOlL|/~IFAA£·bч~§H^œn ¢3š1êPŽwÞJ/Ÿ ¢Ád6¡×‰ÈøÝ.|A =V»1üñ*áq8ñ! ŠF¬6"2²Àãtã4 &LF- ¯¯/@PÑa±™ÐkD@Æë¬Ã÷›eçôråsÑšuu'Û6Ì:%/.§IÑꌘÍúpýñ¸IÄhІË%áó4:ôZñÔí|Êz¬Ag²c}8|Zì rÐÇ+c°šü\n²¢ÖˆÙl<Ã5 ŸÛƒ/D>Úlz,6-~— EÑc¶ið{LGûD)àÅíö…d@Ñ™L˜ õ×üš%ôGÛ%,÷> Q«9a¡Œ„×%¡·Ó+·£?­ ËÑã2~¯—7ˆFgÀd2ñ§ˆûoV ¥›?äÑy‰<9½¶Ì.ã÷ù‘†Óéóšô™ò%Hß_ÅíÏÒ×)úˆkî•yê+HúÇU!=ô¸}Ã:¨7™1´'×AÅ«ÖCðhm¨Ç`Ö ˜Œºp»Êø½¼¾@¨_P@g²a64lw¿Ë‰#¶£ºvŠRJ~<^?‚ÞŒI'6Ï‚h :4¢€pát7(™ ",Ø ä€‡Ë¨Ñb0[1jd>O ƒÙ‚I¯ ‡:·I©;ôf"Lºcc´£µ²äÃíô4Œ&Lõö§Çƒ×õm:3v³o­Ÿ¢  ­Ø šSöcÇìÙtè¨í§¬V šcW<¼˜±št'Õ1EòâöJh& ~õ~ <õã=­“Å„ðàvù  h XLFô¢püØPçÆ+Õ«'Ú%2~w>ьը=N.‚>¯Ÿ ¢Ã¶Á„_‘cYòáªóOРÓëB}¾ Á Óœr¼×[#ÙÕõc·«¿h:e=ª¨¨¨üGu«¨¨¨¨¨¨¨¨¨¨üµ]”,~šÁ3V`7Ûè~ç{<Ô'¿û0«–¯cÏÁ,ÆßÚ 3•¬˜ñ/.XG•Í„ìL`Ôô˜Ø#—ׯ>Á—µµ¸]]¸ûÛGd7œæ™¬œóÉÇû ¨ô¶å–OetZ$ èªàHÅJ^}4ÈoŒ  r?Kß~–‡?ÚN|ûþL¼c sBŸUέ[ e2“ ™Ãt>É+¢ÚÓ[<Ìe‰6„ܹqì”X4& ÆÍâ‘¡)€€¿¤„š€›ÌÖf6̾™Ÿî"``ë4{oÅ9 {™÷ßçXZî@x:ÜļÿöÅžè@‘ xKصs;;¶Ä2âºÎ˜(gû—óøøóÍ éôš0Žá=c?ÉþÀ²×I¥sŸ¼êcôýÕ új®å£ù ¨ku“æ„?$ÃSnÞ|øÌ<ÖåWT‡7ÞüÃdpá ×sõ ÖD³“ùÿ}žE¹ÅT{Îáºîcx’ k)O z‘µf-}o&~Ýp“»á-žºs;I¢Ý€«¸kJ29ÌÒéÏ2gñ åæ\ñÂ\Ó5 3«yiÔS|íuáuËä樂E÷»ÅXñ¹© ¬cúyŒ|z4Í#Mˆ¿í÷y¨Ì¾Å3™üø×Th-du½Œ›œH;È{—òØósX¶¥€¬0ý†‹Iu,æÁ^g«ÓEÐÌÈ7^çúVæã&Õeg1?¾~'÷ZŒÕ¨Cö8q'õàöiHþøežY´‡ÍˆäLæ?/ÏfXÍL®{îGj=‚ â«s"˜ÅÚ G˜rÉt¶Z´-I´s?3/oyfõ] â÷ícñG›péÛ0âò6þ¬¾Å»g®~’ï8ÂøÁ@nþ`6ÃcªÉ_·îâ–«{ü{++<¬Y±Ž?§sõ=0JÐ7°7ŸÜE‹A}éÙ!m¸ßªñ¬æéI¥\ÿÎX2EWùð"ëLbqß¼éP´_——ì!©ç8þ;ézº§‰ïx(jÑëÿa{²Jü°`E¦ügp³SL,næ±;ös×â{–¿ Å —ù'ãdçÂYL›þ963‚3’‹î|€G´'îd^¯âϘ8ôy ­´(Ȳ‰¤´þŒ»ÍÆw yè‘‹0H‡Y2ãf.܆d³"×9Éù0÷Œ¿„&ÑGoƼ›‡òRàZæ¿ ™§)呵¯óèk«Èñ(÷ lŒè÷à lbæ”ýô¹sÓ#q,ŸÆÏ®Ã ¹€ýî:´c^ç‡ëãÙ0çqn³‰˜&s÷ Æ6?ÌÒYÏóò'[pÈv:M˜ÌמOÂÖ·˜ôô®ô£EN'¾KŸaý}íÈû|#_\MDdÜõ÷ö”Ø¿âMž™<Ÿ]B*‡^í÷\B6…,}æÞüj;5z?îæWóö#WÑ<~+/Žz˜o|$ü½îçÇ©/?²„ß{ï¿ÞH~Yc¯ï_Ž’Ç¼kïâ½¼2F-’7›ޛ͘l=à©<ħÇðŠ÷A¾|áä‹Cò¾}š{ß-ä‚aâyA>¾ávÞ9P‚ߤAòfsýÛ/3&Çxtñ‹×±Œûû>ÄZ›C@GjëaÜ;s<Ú¯^àÑÇQ`Tð¦^ÄÝÿ½…ámãr5Á)ñMg+þïn£ÇS«ôxïS?´ÖELÇaï•fͺÏZÍÀG.ÅX ÷Ûß2¾1(®Õ<7â9¾¹è9úZ¡ÖD/EÓ4NÀ}ÞL»ª-M.¾¿:¶¦QÖ~l·¾ÌÍô€‹¥·?Æ²Š‹”P?å( ûüüÅË<»ÌOó‹®Â€@ù–µä I\ûλd—~ËÓ_ÿÌþÌ:¤k©)«C…-ì|¨Ù2éŸíÁŸ>œ†1CÎü-¬^µWÊ…dë<55øDV» m•“ÌËïctc;FÊXxÓKüл-ýKßáîé¼ðî-ᨪcÉ¡•P‘)Û¼†}uvnúê+Z•.fʇ›Ù‘ׄÄe¯Q7ê>è™…~ã#\øÚ:ú?Ø‹5=KâœïXš ‡?¿›glå‹+µl\¶A߬æUq;¯¼¹ˆOèÄ×Gä7êË k_"u÷,†|¸šKš§Rñüc}É·íu¸¿ÄÓVÓÿ±^¿[Ž}?½ÏÝOÏe‹2œaB(ªú—²-SS°•ßz˜¼~5])fÉïòá§;é2¸Š'_ÜHÒ虬Ÿ]wæ`ÁÝKh;cÏdëàà,ºLý˜ÁŒ#¥Á³E[ Ý1‹î‹÷¦y¼ùci 6ê<çpõ“ÿeè µë~ö¹ÿè˧öfYÛ,äÃ;èðÑ*žÏÁÞŸ±€Õ—µ¤»þÌé»\µ…³ïãÙq\vû¹î$„äÇŸ5†Y¯¡eÄq¥`÷ì›™¸ôR>]1TŸ—]Ÿ½ÎOšX, £³½^N#"ž¢ÿ8»xaÜ7t|ës¦7ÒûyóÕÄ®wòÒæ>ÌùîjîmWÀª[èøØû$m™Ç›š3ký3dábú=˜jÀô¬É|Éý˜úÞ.hb=îTϵÜp§'^FÄá¹èFRÉ2’%‹žW¾Æ}7µ9ᦠӽÿÆb¸JYýæLþ\¦ÇØ{Žfdó¾ç…çžcÁáÎLu,Êеþ%n˜¾„Üè Ü€€¢Ô±üÉ™ä|²’gÒ¼lþ𞘽›O'YôîGlо•uëÛ—Dþï •@$´è¨°¨ ?F"ãâ‰4"ÀQZJ¥ÓŠì3F“’‰Ió7º+5©œ?dŠ"ãrÔ!û¸ˆHÌ$Þ¦Á½c;ÅhšTìå€/‘¬d‘’ƒ¥xÑbHK‹à̹½e.•5bRìèš¿ŽˆX=®òRÊkÜÑ’B¬ÑOY¥‚I(¥Ôa'Õ¤€ ªäÎ:ÞNbzÜ »³‰€?ƒ¾£žgÌç6(û)$\1·ŸÂW³…½!ëŒÜ•ðƒ¡A/-ñǜ˵ÓîgtïT wn¹…™s£¸ïê.$š¼où1z"ãÜßðÝÁk˜Ðèä%,\7—…+V!']H–&µÜ·‡ŸysžVƒDõ}Œ%}µí7ôeuËDŠ>–Ƕ^̲u3ÃÑ{—¬¦XßWÖÎ$Ý¿šÉnà‡¸¢óMÌùø¦c6ãcóYǦx–?É•4gáŠ'Âv‰LùÞ%,™¿›Ë–¯ã óAæ½ð o}ÎcWb0‰Yä"(,¿ëNÖqS´“˜g³¬@óFßÃgUqYtC{¶€e¯ÞÏÃ_¹xb[~¹T'H Ѓ)ŸÜÀIÇ/‰’ù,~i"SÆÓ¥P9–‘¡A›üîeíÈÅÉœÇ=ó'Ò'íT’k$Þ6yË&’Q¨f/;“:rã·“éf‡Ýo¿ÈšŸ¢°uoRÅc²¥p)OÿpO¸£»è'>ë>ö¤£C0Ø jr—|ÊȶL[?ƒÆßäò÷Ö°''Îñ.r‹k J &2S°5ì Ñ4¹x:Ï=Ò£ÁÁ¾xëJ"Dƒø3GðÜ #i§eÇ“ÆE<1$ 2žÃëø)á †i¿áDz ‰W¿ÁTTTþ}¨`•¿Ë–ìgÔ”ÿP·}Û5z’›¶ N¢=• ïxƒ¤Ö Y¼/”Y‡€ Ô’ÿó&VdºHˆÎ¡iÒ6®ìC»$@ßùbÎ}#C@ö©Ý‚6G'炉qħàç/ÚÒâ|KÈ!Ù®ç½t|E¢"©Cg°¬Û§ÜøH(%ª»¦’CNúÈäà¶-‘‰¤¥'cö°~§™¤vùÜÚ‘&ýL¡ÎíûpÞ«ä+2MÛ]Ëx¼^#ö–1Dèª):RÀÁ‚º'6!*êݤڴX¢#e‚Í3瑃”zЍ°œGבc»¢!Š6#az‹e,Ú&ࡢĈƓE´ @bZ(?ôKØÏ‡.&áú[Ø"ÑÝ®ç©sÖ2óm Où>v, â‚ûU¹ž5¥z´”òãÜùìèÂð1]IHéE¯£ ø´˜Åa±øØ°öý&À³oûD-q™ÙD…ra‡÷&vPV¬A®mC’$äÐVt#x7²a[rº[B·lÓ‹sß( ˆMl^7”¾Ó Hlë^´[¾‡u1í¾¡Vˆ£Yl#r+׳./‰¨äÌÐDqÓΜ[³‹Zi«¸˜.·‘Ñaît1]ßÊ#NµôKŒ'2{^s&ßž‹N"Û)ÍZ`³Ø‰O·Q¸f/{ÍE¸õÉtI±²wËfâ['’édÇÖbì-ÈŒ6rN»ÞÄæZF§™ÞMSN1ëþ™eß =„s#Œ|%U“÷ÓFVÅÕ›Ev‚í¸TÁÞŸžæãxì‘XD&0'E{w³w_ š„îäèϬƋq-9õUâæÍ>W(MðŸï(hÐy‹øiý*üIvDIB¶¤Ò2«‚åßÇ0õ“+I­wˆŒ´3yéÇì;ÅídÀp\;Ÿ©=§íÄ&Gã-\ÃF}[:¥å0áºÐ[¿¹Nã)’Ÿœ725ÇBmI 6ývÁBç®ÂRx&—"Z9û¶¬ÅîO@+IHR$Ym²ˆry J~\€õÄg ¢ä¥:oë÷é0¹}´v’ÓRHŒ0þîò‰Ö$.¸õ Þm½€ÏvzÃ。¦Ñ%L~)È'7bô×§üT°?™ù]Ûró¤ªÐy3[V g賡óÉÍ»ÑrÞ!ö•Äá Âù=£øyÛtqé¤'ÇbüÛs‚ ‚‚¤ä±rÎ ^\p?6rú_ÎÍwô§qþ2Þxr>«óhÄrò•ÌœscÍ_Äj0—¯>XN…hDªsRtx+•žJ ö1l&ÏÞÇ÷3¿&ÏPËÜ)“™ß|4÷õ:ÈôiñDèÐë:rÍ{wsÑKà£lÛ"¦¿PÌø&Ó†2Ö¶ˆMùϵ±|7kK~ÎÇã6ÒjÜþÛ+—ÇîÞKÓ¦kø~C/¦¼u{X0}€(Ç3pú‹\ÕDÇ?AtSš»U{l¤[HKŽÃ¬Ny=Ž¬Û¹ƒIáÿØ;ïø(ªõ?3ÛÒ³é½BBïeI¡I°ÑQïµ ¨×.v°];Š ¢"E°ÒDA¥‡^ƒ¤Þ“í»3¿?6 IˆX ¿;Ïý\ÉÎΞ9å=gΜï¼ç•e7­;Nx¾]ÉN¬#v@C ·¼;“ìÿìâTiB<ôœÞ°ßao2ðäçÌØx‚É­›üÞAÙ¯›ø%ËIçI¯Óaç&²%×,@Õq¯-nÍKO¥£qž/uÖì{•Oö߯ÌDv>šÏè)8{p?NOb[Ç  Ïs/K IDATÆ;;—ôÝDZ%„GëÓX•O¾Ë¼­cyrš›9É„'o£âàŠ5îDµkÓlÃZ‘B[€pÚG`.È&7p8CÁ\tšŒÊSœ´w£s˜Bog2J3ÓÉ­Î¥Ä{(Ãý›Œc¾±Œxü#B;®æç<×8¦nÚ^”pb÷v^ð+/èç™»g?6;ݯëˆH%á]ÝùeíJ楕` ™ÈÓSÇÓ9¢nÛâjVÏýŽVϯ!®¶Í,•9lüàv¨G0ùÑnø\ —H‡“ÕÁ%w©5h«òÍü=hÝ5’GÜͼuG;KÛ3HMãÂ9­8ÿHaëÛ¹¥ˆbÈ]j^^2—Z_Ë]IQèâ»å”Ê„.¯0kåUüûå!øm‰ŒYÊÇ/WòkÿT’;µ¦Ul4Aª­;ñ?|¾-zwDÙŽÅÔ›ÜOß y> *G%Y;×0»hj§ ³WgÆM¾…±=Ãÿš)9Ô˜mȂи¿YXì ã;×õC ŽÚXŸj4*vT¨=õœ9Æ©ªrÒÖ ÿÌó¸U ŽÁÍwßÍà„ZäE#§®çûm¾LÛ¸š¦Ý¼õîlüÙ›ƒ?‹­û=,škÀ‡L›šN–ÿá<‹h´Z´j¤¼­Øãoâ¹ûúPõ-ÿzjÇòîdÂûw²õÁ*¦ÏC›yÌð9ׯYÉø`™ã+¦òØËÛ23¥…òãNHÇŒô öB—ØòÔüG†q|îj2ÅÜõò}DTüÂKo®g_bÚŠŸq\Áò§ÔP° ò¬$-^ÎÓ8³âaîzm×Î믮tÄza_÷-‹^X‡]ŸÊmwNfXWÿæ_Dä¼M|øú´2È²Ž °\{ã‰ÛíKäÙ Êm§Ù°+”kÆëi×îŒüÈÉ)‰´np¶åì^V~¾˜C±÷Ó³(Ué'¨ &«&Ž8/ MØœÍØ´TÎêדøÂ·´®ü™¶ä‘Y1ƒŸM5ža ¸åmnëÛ‘èÃÛYòßgÉ,,#îæ'Ó* Al¬ó-O-¦ûùz[%‡ÊŸg§Ã‰ [é0þ}në©Ç?à›Ö¿…ÓùÔxza•ÑÁ™­Ÿ1w¹‘·Œ'ÊÇ«6í~ý‹Žvå_ÓFäàüv§‘‹Ý%TžW8â“Õ,_¶mRŽèûxíÙa”Ο –Gx­ÍNÖo>Ay¹ž½9•ôòEŒøtù÷”·»ƒ¾9»8tònn­HIŽ'.Eò•Ÿ°]*Âuÿ}j1>çb5«4z":°êùøFëN»OðøÍmÐ"Qpüg>™³M¿qŒëNã÷Àô$¤J¬úð=~–JQ%<ÊkOô"cþýÌÖ<Í«m·³nÇ ŠŠÌ.ìEÏO×üSàtÍÍB *©¨¬Â§çf>ÑŸb¨Ìç–¯¶1µÇðZ/iÁi¥üèÞýïN4’»=”¤=ñÑ«ÿ~¢ >{§ëyÀr‚mc˜ðŸHb}¯¦ôÓŸ(=EVPPø_C€þVd3sÑÃt(ÙÈ“7½Í®ñ/ÜìÙ>tý^ýÀ̺{§±ëW*ìjTb­(!©öñÆó\ÛX°“o"¤ïz†ëÈ´‚X/2©öóÄSh>×’äETÜL›? lüt!߯[ËÙn£±ýzŠÖ¾ÉDøzsÔ.ârºF/¼ê—­Ê9´z%÷ù3áõN¨ŠŠRŒ…åë©ûUM^ß.Ï&~Ø5´‰ðªõ˜u§ûÍ3é~s+ï›ÁúGße\lí/ê®' ¢ ±n{PAJT#"" a÷tÃM#àb¸êß1ç•RÕh4jADe]8>ÛX—gÇX]I•(r<¿ §#R­?¯Dé©ü´ÙNò¿»âË ÔwLK,2Tìeî̯9zÕtn´„'" ®-Ÿ›»7•¤BU¿Å©™šo<PS¿œi±cöóÂC’u­°lÇ®½thËÍõ¾Æ`Åä㎛Z@vŠ®8vÕ>Þx]"Û~êæ7Xßg<ës¿öK’«v1gö×lýn ‰¦Ö »kã&µGE.ßþOưïû¯Ð?ñ Ûi8´øa^üäsòž¿…ðæ¼åŒÇÙ¿ÿWœãè àK· Ðm‚ËžWßñÛO  uX ^"˜ö½ÁÊ»y¥W]‰Ü|Ûó¯YK}zï?ú¥ï¼ÅPý:¸8-˜‚†3mÖD:éÈå«ð ¨:D¥Fe—k½IÖzÀ]B‘MBÌdö o-½ú‡«Ç²lÁXüT2‰C¦àwÊ›ÔÚvзgìËK!›—ÎâÉ¿0å¾»¸±TËeJ²bÔ'sÏk×3°M“ˆ“Eòoû>Kv]]Æ¿À´ûº]F ápÖ’ÊEïÖêGûä‡xñ­áøPͦ×?äð–mtH@è?™]› ‹Å >×Ò À#˜D‡ÙÛvDßn1®¸™5FìNù²éo6l!èÝ6Þ[SíM¼»'¢j,8ª2Ay9”ô¼›Á6¢»ûÑŽ’BKEW{ùÕn(ßïÛN®·Œ»=ˆA‰¾ìЕs|_:gßÞ2¸ù÷ÄS'a‹ÿ#:9Q#È´M¢“ÆuñOèIbv>pÅÀ2îÄ&MbzÒ$@"í—Ø¹ç : $²¹÷Dd'B»;ùøýëÌlœÙòŽß½š•joQZ7ä3+ÙX®Æsë:¾ÓV“½3þCë„sýÑ.ªÑ©|±ï]Â;»Œå•PàMŸìžÄ´üMÁ¹z÷›¬-¹—7ºy`*Óâï}#οH wÓ§,^ö«ñ£XJàéož'ààR¦¶ƒ}‡ÛÖ=à<6›9y¼o‰Š«yiჴ¤œïyæÞȽvþSÎëo|ÀwygÜé6n®jÚ~†wG[X3åv¾àeîƒ'z=±AdñþлÈú`wÄýñÖ’ fÀÃ3@1‹GLeCnOâu]轊¹K8Í…ú°~s*}nê‚ «Ú _AEƶż³¹š³Ù¥Ø!$ê΀û¦“ @ ŸŒ|„¹C¸­½GíHDëÑ“;ç/âNÀ”½žyO,aûØà&Þs"ÓNdï{ÓXñ‰‘±wŽ"^W—×HF>ÿ&#ÈfÞ€'YwkG¢tí‰ËúšÙÛ±V‘]SÂ/»ûÑuT"j$d×ÛwµíkÁè埪’c›¾gÉ—¨œ¨(Å×RJ!¸B3 #«= ô$³^HmPgÙ¬Y°‚ß›X(÷òÀ0ÛÈúRQ[¾ãdv úãGØ^4AÙZAAáQ©…¿0ÂÂ’–S»ÕŸÖ›@_ [í×*7t:-j›kÛ[c.9EeT`¤õÀÃ'’ðÈL «U®EþôÝìiO« ^×Bñé-¬\´¯«&2aD+4øšG™Åé†2÷±;1Šh¡.Ƙ€Î]‹¨Òↈ§›Z¯ƒ´¨Ñyip×:©átQ0^¡øàGPh¥f\Þ '÷³¯M 1‚–¶¯ù–‚ûú¿pm’h¥ºª†r{Wb\Ÿ‹3w²~ùIB®ÏÕ½"qGÀVpšB›€Kéõ'8ÚÝ*€ ‚ Ô>Ú êpÓ¹¡ÓéPቷ7ˆnFl`*&ÏG‹‡—:¡šÓ‡O_ã@ÄÚtD­Îÿµ{8½FßÁä;¦pç”ÉÜ0t†ØÆ‡’Ó™dž­À*¨0söÄÒ¶˜ètÇ8ºú«"0$›ãŵî¤/ô»ˆ­$‡£ò°â——ˆÊ£+BM™Þ":Ÿ8bBЍ°Èh ë0‡Z‡-„~’|“«þÍgq¬]ÔxøŸ¡ÀQA޵”êð¶$øUb¦Úµ˜]˜Îþpt1DEœ¢ ²ÖËéØnövlõ‡<ÇS+Á¸iQ‰tî ü<Ûò® ´à(G2 W~½™Ô Mze~fJ+N €z½ˆÊº›í‡£qw¥ßù–‡H=´•f òÛ¾K§¼Aòáh¡D¯‰q¨Î&«¸fL:|ô*D Œeïì¡ÓôD²,Quúu‹j_üÂŒ˜Í— Û«uh5ÔZ÷ZÏ¢K%a €„ÓÑDÂðëJªf3óÇÚàpÅñ£”kD(,¡¦î ¹Šb»§FsN0®og÷qެYl?Zâú>Š·g?FrÆiÎÔ~ï°™6ÉLq~&égí@©7OcFr öübªZºöd;æšêFqp×¢Riq§vûnQã²7•Q’‘%gËeD军NƒZ­«½N­½èthÔZtnîµo]?Ô ŠZÜEQ !$"<‡kÉ«2'“‰íhë¦Â&æ˜@ƒ‡· hÿb×¥GV©Q«­XOâ,€£†"µ 14ïÒ\ ËÌ®’ºëP‹Âes?œ6W˜d'Nš¨}¼ñÈú…£VWÝ›Êr(‰ ¼%³¢ò%<¾ëV³ìT9ž½ Q9q ~¤Œ‚÷ß›Ëûsæ2gÎíôˆñCc7auÈÊâêïLEg(Œ'¬™!ÿ’_Ó–RŠ‹r)”\c¿YpÃÍÏ ­êc¥ÃR;·ªE²àTj·s›5hÔˆh´îõqló×}Kvb±ndlø9ÈÊ¡Ÿæ§ g è%²á‡ô‰Šx‡÷à¦s™3gsæ½Ìíã&qˤ ŒªÝ´¨Utî ·5/âë÷öÒeæH‘TøîgOm†UžèuÙœ<]FiiÞ€G—qŒôÈ?[€kCø¾y/¸‡“(¸æŸ¡áûÙ™_[\þ>&ªàÛa /.ü˜¹oMeüˆ¢£#ÐUæQP^7ºéÀ)@MF:¹öº|gÄdjÎ&u¸i5¨µnMî{BùqŽ—Úk˜0{ùâí@ÿû^åÙsxÿý÷ùð…éØñ&fÞÔ-2 âß*•ÛŸŸ¹sæ0gÞ ÆŽ¸‘ûîœÄ€Ð2Jíµñ‚͘}ôøú6)$œ‡8ft}²VKÈ~x8lTäÖÛo ›s·P¡äGë'fÌzüõA šú6o¿3‡÷ßÿWŸDÃ<2*±¶ùàãgÆ®.sÝsKOp(Ä—P0gÖ)RŸ—÷çÍå½§ãÛtÛqYF²™ۦÎ$ªÐèÜÎÅSV ¨Ð¹»×‹ÌǬ th_â1stýÈÁ6v¯û‰½KѶ·±uk®ò¦  ð?‡â¬          ð7ÅðÇbyûƒ7˜«ÇQ’‡Ù0Ž®ZÀZÅÉ_òéê4ÎTáÓDgaÇw[H¯ Îí {ì]¹1 ‰SàƒÅ ù ÊÊ=ÇIœ8æÂ^œU¬{ïm–d„3<\Ï¢ye¸µ¿†¤IÑœøv9ôÃzð‘×<@€Æµ”Tqx%K×lää - ¾2“”<””QkYöòÛä„Ê橉0‚ÐÊý¬’¼i…žôÍ‚å_ñÑ^_,‡ŽsíUø«Dªv.âÙ·v‘tÛdv.]Ìf/‰ÝzâV˜EMüpb ò8ëæ/f³9žþQÛX~¬vW‘dÜÉW?î!ÄÓwM.ùÚ Žj§•â[ظó89e9ürXEb|<¦½ìX»wãY!í òû¶®ú‰ ‰·è¥C#€%ïi‡NP^&²}§Öú]ç(Y±ZØPÎñí[ÈôîÆÕ‘þèÊóíç›°µëŽnÏ/dÛ-x' Ç¸Vÿ°’õAØ+JptL¢ÖJÑñ¬\åέݮ%ªSgJ6²~á<ªORÒ™àx¢'Fðéšïùôˆæ#¿9t2¾Ä0ø^¼¾”’;ÅGKèøï®ZéÜß½ø)ût¹d:õ щÎþåf–ÌÎBµm¯1zÄ3üá0Þýð#>ŒÕQ±û$mošˆÇŸ¶cûÙ]¬ûá{Žž(çÓ9E¤Ž~aÆ2»m“ÿÅÀNZ´þïòösnt -£ð¬HdêDFöÈàÛϾçó7ó Q—pRÛ‘1Sˆð Kç|@f‚šÊ3œí}#7èeLGÖ3kf)Ó®n`-Þ˦ï7cŽº‹uñ-§øù«ýd[ü‰Öìg½¹%<œd.›ÁZçdfu­mTÉAÅŽÅ<÷u;úš¨®(F »‘a-ÛãecG·-cÕ©ÖÇ'øFtoOî /‚€\¼—o>.#-À ÉDòÄ9ízö¾0‹ç$­œNLf«ÖŸÑ×¶£Õk™;»ˆp™šÂ<ʃ»ruBÀùí|ýè§¹¸·éU¥ü²t"Bиéʲoëz)DY²c¶ÔŠ¢¢“[X²ü4 ]c ªˆ³r4©=Z»¼B[ '6«{Ó8œÖL6,ÞDf¦……óƒ;ØNõ¯ßóá¢"M´1 Å@„)ƒ-?®bëÞ,2j²1Nº“ÁƒPþ™eßnàT¦•E”“2r CïÓñá3 È1’w²Šwö "¦ˆvÝ7ñí+ï’îg!÷¬/]oèôo*;m˜¾„µjMÕ'¼ó_­™d¸ÇqÝÄÑŒþ~ ïýô¯Š ÌyŒ_Ëbqÿ´,a·;°‹"6»»£Öfd‹§$»þ6Ûdôݸ¡ÛW,zn‡£-äÿZI×û¹¼†[ïô¾FÒ¬dü´ÀŽ¡«Ÿ¬YÊK9­ õ±bñéÁø¤jÌV'N¹6޶ìÄtêg>^P†·ÝNI‘D¿ûã“òœ?(ÓaTÕû’oõ£cŸ@ά?Š#>ž„Öh/‡©•½ˆ£W±öd28’F¿‰¿]Dz ³¥©X/€¥œ3;—1ç“t4&_ÚuôÅdËfïªÅTæF •Œ”ž0’2¾/­µ¿òÚv7&<û cëÞ¢Ê[Âõ·¬`ß=íéÞœøl¯¢ªºš*O@,<Ć ß²ïhæó){W%j9ùù ¾ïáÝŽ.)ZçÙŽþÿvgñk³(‹ÒR‘oÅ'åfF¶9Æêyß2ëõ³Ä»ç’iŽf`ÛVyßý—ÕU×òd÷ÐÚ— böp$ï¼÷:Çùb-*ÄÑg]UV öÿÈò´L,•…8üºsCŸP4Ù«Y¶á(b(^§8U:„¡m"ñH§Vn¦“^(dãñ07¶nR½– 2¶Å—ßî!ßœNPÌ8öêNh²^s€åK7àîã‰ÞšÆþàkx,¸a…9¨ªª¢ºFE  oîµk5Õ5Õ¨M¨<ÀŠ…kÑxzágÛÅ>ÿL Òžû•,aÉ\Û«v“’`¤<7s‡»h/g²uÕR6˜ZÓÙ/œ>´Ü‹ˆ†[êTlgÑ’­Ä…kÑUíäDì$Æ7¼ùHÕTWUQSSƒ j=ÊÝhUÇ—oeÉ›%¸åÀÙùZBãbHJJ'}ù{dk=ð0 ÈdàÜ]GF–ìX¬ŽóîíBÍÒÒÎ`.Ž@6E1h°{ùAV/,cO*ª)ùÕ—±öÆ·r3kÇðȇÏ3ØÛ5fåþ2‡§ÿ@æèÉá¥?…+Õÿ—‚<¤×ÏD ´´þ¸èé…*5™êÖ!—Ñ[’ ÿ¥¥åTVU‰çSˆ»€½ÞÁÛíu©q  ×ëiIŸ#ï¨T¢+÷q¤ØÊ§3ãïwmÁ)9Lœ9A3ˆ„(wÔº¢;tÃßZLIA>evoúLGJ¬'>!=ñÌ9JVuBèÕÜ7¡s#O’$ŒF#>Þ®U*ÉjÇá¦ÅËÏ•©“Õ‚àA~C-Ë!«¸kÀ`îþWoôµV漃ìÍ÷¡K§d‹“ˆ.}èÑ®=ÚÜýüZîI뤌‡tp-{ªu$v1á%  ìŠwq&9e8¯bʤîxæªj4!qè-•mvd•;ž>zl¹›ptOç ­vœ^^x{»#Ú,ØÔ~Ñ´OˆÀXZŠÅjÃa÷¢Ë˜khçãò®û’ƒêÒ|Jz¢Ã<Õž„%´'T§¦¦´£{½ºw Â[‹ ¨qó <& ?7×ÌŽª|²«<ˆ‰öEp‚OX z-¸ö(Q©ÜðÖëñóõ@ëæMPxA~žˆV;b€?^*‡ÃÓáDãIÛÄ›Ï]%¡öŒ§ß5ðDú0"£ýйâëæFÕÙ3”»%0 µ7‰:4ú¶xUä‘_QŠ# /ÿÝ/¼#»¡9¹Ÿèã‡së 4*wüB¢1ÛOž:œÞý†2¨­*¯xô¹§©ôéÍÍãRˆöÔàÚÏ3‡9]cD6’ûÇuhšÖétb2™ðöö¾ KeìÎtŸ‚ÆfAߺݺjlÛ÷ $JB\§Ê=J‘Ý“ØÞý1$½{41¾*ÊÎf’k cÐm×Ð3$È^]Ñ䤠¦³˜ÈøÇG'*^~1´ï'2Vc%Õ’']†÷'²Îø=õ¨*J)-. ÜáCÊÍHŽñF%XÉËÈ'jôõô t)¯‚(àæ©!ëø,6 ¶ ½u1ªsA€Íf3¢(¢Ó]„Zk« +3‹j]0Ñj´¾ÑÄÅ„áu¯£Ûl6œN'M¤{Qƒ»l¡ÚdÂj·ã°Û°ZuDwí@Lt'úu°qôPv§ IçIl¿ëI‰"4J$ïè)*íl~¸nø`º„º5ßÎ Z¨šN'f³ùwm1„8MEÕ˜­V,ª6Œ<0®…nQ»>œ„V¨qÃÛà MõiN—Û°8|èœ:€¾Bø£ÑkeY¦ººŸ HÆ‚ˆZ«'&6 oݹòÙ 8|ØHLÇ@d“m’[`¯¡ÂdÁf—P»EЮ{:c%Uv» ›|ÂãˆòÇíwn•••è}ìëé4Stæg$D»£ÒÓ:½5#§Êñ ÁOëÀ+¢­Â½ŠÓI;£¦}§`³™À¶ItëÚޤ‘%éo ·ô@£Ñtö~t>”Á½"Ïy2ÿìv;v»OOÏ¿–€ ˆZ<}£èܾ3q ~”ž8F™6–~ƒ†Ò7&ïv±¸a¤ºÆŽ®, ÆxÆ]Õ‰`÷‹]\SSƒ‡‡*ÕŸ]Qi< Š'"<ŒÈˆ0‚ôn‚[­BñÖiи‡˜Œ» '¾_,ÇSäTÒænÍÅ– ªª __ßs4ZTî‘„øÇÔ) *|âÚäf¦8/Ÿ» ‹*ˆ¶íbô %!!Oµˆ ªÑ:MTÍØ$‘€®ã¹;9p`*+¢ G"´}æì<*­n„ÄzRš~»Ÿ^çyÖœgÓ:D›ª³g(±{ÐqøöŒÂSl\_ÞÞÞˆ¢èŠ•íF›Ä s¶à _![k¨¶X±ZÕø†Å’ØJ\S…ÑjÅXåáÖ»ÖÎÁVJ¹G_õôGWûR‚äDœÍ‰g‡6i~cœÑxNh€råögš ‹ Á]²âד„`(ÈÈ'fÜzÔF†ÕÅ÷BŸ¿‡ô2-¡í“u]WÂã RQœ•I©-˜>ãGÒ¯Mjìdæ_šê·©®?_š\G¸Àc_Óúš9­A=Ëõÿá·þjü¹É¿²\›õ[„Jµys}wîçΣþMÎ9wî¹4ht¼±ÈØÚl6%%%„‡‡·€Íþ–­þÙã¾vÃZ.ÒÆ^¿¬¬ µZ}aáðoéó©®©ÆjµxÑ©^ø7.E«ÕJYYaaa\zþxÞ$I"//ÈÈÈ?ÚŵÔïÿ:+;‹˜è˜ß+ÍG0»ø~x1¥3˜L&‚‚‚.Y+—ûŽu?ï%ǨC•SMÕȉ<6¨->ê‹W0òóó @«Õ¶@«þ‘±«%-K&''‡è¨è ¦ñcb3ÙýDÿ˜Mó·¹¹¹„……ýÁÿ¯ÌÃ~ËJhr_.AþŒ-6nÝ,äâí¼ùÒ·„]þ “¼¨qñ¯æõXÀß3Z\ÚÔ®<²²³ §²¢­V‹V§­|›}bÁ±ö(Æ×ßE*/oúMLVÖe=¨([@+((((((((((\KqPhñ‰‚ø7åS$¦ï „xqÞYAF˜@¿1 D«¨›o »Tø=ÿzuÿ•ë…Õ&ùª×j›ˆ©ç¥/7HY„æb>6’#åÚŸ rÝ¢ª+žÜÜOšÉ}Ýb,‚ rsRgCXh¦µ„æJܼí¨Ä´Ùß²Õ?{üÂ×þbOú½ë ‚ð› "oŸ?¿7—/¡ÅsòçRDñÕ×ÅåM…¿œšð¶sÃqöRõË*(6/ î¾aDŵAgpÆD“: eÄß?c¬ÖþìLáb-KøCé —¢»]1Ú‘Ð"íý×Zàô8áåáÏØ¢ð‡^‘k™±Ð¢&tñ&)\ÒVjÉ1W¸ÄýBAAáY¦²ªŠ²²R,k£é\ù|ìþk6!vǹ²"+((((((((((ü6‚@AaÁøPçÚŽµ°¨°‰ Ù¢•¨Â|ñ’í”4#–ºêPhè¹[Žˆ¨r'0jJJ©®ßjªvq_kuSÑõûútüÝè_WûùœTzÎó`Ïîƒdçœ%ãÄ)öî;„Õb½`i;vlGë„8âIéÛ»þáÙUžZ‰¶^g•]Gxþ"79Vÿü—¾s%ÙàïúsüFûÿ¶MÈ’ŒÃé¸Ä¶s%t}»ÝŽ ˜Ì¦Ë¦.AÀép"I…ŽË«dɵ úeg;2H²tÙÚô•Ø×Ùá%Ì¿ ¢SŸ8AF@ÆVQLA \K%Å%-( þÍf-Ë—íÔÝß/·y“ H²DQa‘¢)((((ü/oÔÝ F­n,‘J²§Cjð„)#úT \¡÷OEVPPPPPPPPPP¸ bì]!8N*Ê+Ðûê‘déR?F6ù÷ÜqAhz¼NÀ團 àV' 78ÖPðmFØmü= ¶‰¦¾éòø-/¯bË–lݚƖ-;9|øØŸ.å¶í»}NHˆ§_¿>ôëg oß>„…Õæ§©oCaV>ç/ÜDäm¸ý3MÉ·}–›Ýº6ý&ÛU7©.$þ8ŽúŽ—Þv._DA¤ªª Q%âééyY Àf“›ÝvÙµ‘Ýf§º¦ú²Ë—ä”(++»,mº¨¨__ß+R6›-X­–¿µ^µ:·ëß%¥%xyy¡Ö\™Kƒ—£í‚€Åb¹ìæM¢ RTT䊬R *((((üïRTT„,Ë”•—ÑÛÐYv=?J’„ŒŒÃîÀf³!I2’$ãpÚ±ªÔ®_®@XAAAAAAAAAAá·‘eÜÝܯ¸l;œQ@§Ó]â+ 8&4¬(ÜHà­ÿ¾é–ÏM¿kn«çFÒ+² ùù…¬^³ž¥K¾f×îý-^òŒŒL222Y°à3[qóÍc?î:ââ¢ê=ƒÏ嫹øÀ͉à cþÊçŸçÎkV¾ÐßÍ}nŒÍnGªÿÛ¹ ÔjT*n-$:µXÿv8pJÎË®T¢ “ÉtÙåK’$A¸lmúr³¯?\¯N ‡Ý~ÅŽ¢ ¢Óéþt àËA.[Û¹çM‚ àîîŽ(*°‚‚‚‚ÂÿüN§‡ÓQ+öJÈ’„ÍnÇl¶"I®^¬6N‹÷+tg(宯          pá$®¼‡¿Ç#HhRO ý9ñ·þ· ¼€Î÷>'úŠ4ˆed¶ïØË˜±“‰ëÉ<}IÄßæ8qâÓ§¿JÛvÉôê=ŒÏ?ÿÆõ0ÝHŸÎÿ¿p®lÍ–Y8_ðxR_¸Î¿Ýš]PøûÑÿ¯|ÉŠý(ýã/Þi•™Ãÿïy‰2v*(((((\ž÷Æ:ñW’dœ ‡ÃÝîÀn³ãt:¯èyš"+((((((((((üó^¿qTþG®ûGÎKC°᣷¿fÇÉŠfÎk^ü•ë>Ëeݱ‰µ›Nׯìm,‚ÊÂ9Á·q®ëK’Lff6cÆNfÀ€ëY»vý?Úž‡¥sË­÷ÓÛ0œŸÞŽ$É.ºiيټ›á<‘¸Ñ±såo^–ëëöÂBý¥·ù76oßkóÒ?Ö'þùkÈ—( ù ªƒË+?òe’š|YÖ9²…â#˘ùÊϯ À¬¬„ÌÅŒ~ä½—qŠÖòèc«)úŸ™[]Nã”ÜgË-p…ßžoÊ—I[(((((\¢;QƒèDr“Y£Ì•ÿn°"+((((((((((üý˜ERŸ$RcÚúÊKß6ÎÚÄí„€@Ûßš I)}0n`ÖÏYÔÔ?ˆ彇–söwŸì ضð)F  ®›þ)‡K@ oa}  3Øl´5ÐöðÞ£k)«ûè(ãÀÒGHIIaÄÝ3Y›á¨—#mGvRà§',¦šµLfìˆá\}õ›ì±;‘ p=ÓÇcÒ7qÛݱà½þ·RY1%U¥x„iI_÷1Ï=ö8O=ý ³Ví£È䪇] æ1ûõ7x{Ö,foʪ ={¶©SgÒ¶]ò?.ü6åСt† Ÿ@ï>ÃXøÃQdéÜ"«KÀµ“¿ó_|‰™3?fý‘"¬ˆT²mÎë<óÐCÜ{ï'²9‘È`ñm·rÓ¿'s÷ƒ+9‹8(ÉXó×\ÃÈ‘Sxñã=T" PÉö9ÏróÀôð+N”`ΰpÌ(÷O%uÀÛúkKµe8ÅÇÏ,'£ÒrÎnÚö†*,œÝö.c  †!Ü9ýKNÕyoW¦ñÚ#ã0 ÜðÊ:²ªA°ogÆõÃIMI")ùnV7£JHU¹üðê †$ú¦¤Ð7¹†[fòÅQ+¢q/Ü7ƒÁÀ˜7~$¿¦±E˜=ˆA­¤ØeД¯ƒÁÀÀ1·1w·µee(¹œÃß¼ÈuµýnäÔwÙšÇ%“ºë>Þ¹k<ƒ““IéÛ—¾}“èc¸/r\u ï|ƒ¡}S’èsõ8Xv€œí_òÚ¼]XêÒ°¥³dÎRVïÈÁQo«Í´óÅæÕ¾7 '5%…ä¤$îû&iû« ˜ú=5˜8»u>Ýô:l6Ž­xŽkjëqÔcï³3¯ecÎ Î_ùlÚd†’HNéKß¾ †gùéÔr6„ÁƒúѯßëìÌû†©®¥¼¾«8¹þuÆ $¥¤Ð·oÃpýàgÎJµ¥ídý‰Ïæ¥aj˜G X;o;Ô¶MÝh’Μ‡—“[»e¼äÜÁ †ä«wûWœ­i-Y|?{ ƒ«z‡Í9ÿtŸÌø·ã—ú4ÿ°•rðó÷xa{o–l{‹X‡Ôç©òstîOá²WÉ6•^逼qSæïæë{’Q=Møã_ñBw;Å»XþÒ|ö¾~/=ÜLF7!z5Q=óÄ:±sñ/¤gÄâxSß›˜ョ®†+6°;?”o?x÷æ, ªªú²nòCq÷uÃÙsÇÍ<óôC„‡‡€¦³¿’mtÐïþgI¨ÜÊ’Ãéœ !øøç÷ËcSâvÏeúò£¼9© '>ù¡E,ig$}í¼¸¬+ïƒÛ6Ñãµ¼ Ýμµ?óÕ¾ŽL²±ÀŽ<¹òâ¿É­«7ÓýîÑX¾|¢{>fMÿ`Š–ÝÍ¿gífó#½þôò€yÇ[Üöœö¸™žB­?rÛF£¢:o?Wr÷ú4®ráËÏ×0ï‹ã¼~}¯=±Ó §X7«+z§ˆJUÍ÷O}MüŒE<Ö)Ï]¯<ý+zÏOhƒ«‹> yô > *­†’´E,Øz†Šm¼òðFÔ£fðý{ñq‚¨:÷Þ÷·0Ç4˜Vf•ë_áú7ƒù8-ö;²JÓ² _U†àŤEiLl—Ϧ·³ëóï‰zx81—âutG5¥>Ãy~éµôˆñE¬]£WkDr¾¾› ³[1'm'ݪ 9¸r1[ƒãqZŠlVv‡„Xv¼Å­MÛù¢Éà£ñŸýäbÖu ÂC³—^9ƒxÝC<³i0‹Ž ç¾ØRvoþ†À) Úó%K~`ú¦4zyžfõšS¹ÅÒ‚ug¢Ô=‰ûfOgˆ!•CY@­U3p¡“;§ÛxæýI„ç~Éso6ÉY  Ã˜WYðø<ìv$D• Õ_hc©*—õïÝÍŒÕ:úÝý,ãê²w|%3^z úótÿ”Zoª ÓûÒ*£ÿèژàÛßz ÷wÒHëÇK_ä±ÏzóÙ$5ß¿÷Ÿ•_Ãò´ w:ùKlq„+o±QËð›o¹pÞY¤×Ä0¡£?ު˽@‚ _Ù2e§¨rbôÒ4&Ô6ÿŽÜG~l?š«§Kü¾øh¡׋YjÉHæžUl´êœg¦BÓ1ÏÜÁÄkÛ¡±;‘kÇ…ëÞÑrÿ´îzy"íµç//Û*óøá‰¬“'ÐÅêzyFÎÞÌÛ¯>ËG;3å¥Î€¶ç]|øåÈ2¨5ö¿Õw#w¿IÒý6f§m£—݉ QQ•»‡Mß–qïú49ñé§ëøà‹£¼8qÓçãiIF­Õ’±xoÙCðÿõC†=p–‡Ö¬a—¢JäÈ䡧á?7´öì[9ŸßÜÉ÷P£ áÚ%i,H¬a×¢8rô eölJF=Éœimˆó/囇f°òL2=Q²äDîô +æ%ÐîDBD+³gãw¶9Ï•¥î½¸óõÇ‘‹Æ.Õ×åù2S¦y|Î$â•§…DñVPPPPPPPPPPø[Ù¹á¬x†dDT jѵ„,úÆ0ò©¼ûÌÕèk,8<¶¨Ô4¨µTµÛ뇾ÌËž¤«æ¼×ØäÁ£Õ ”ðX?ôÁ{ض®= ±aèÝ  ß`:ŸÉç¬äRb&Ígógÿ!ÎbG,& kdîõ@'ªÕõ"ärh§˜Éámh„·“RiŸSH$!t¿‡{zª@ÔáæNXœŒ$ €™òâbгüñkM§NÝé$†y ÓÙ±…§2 ÁO­€,UñÝY\×;‰ÿ¾<û²2þRºtÈÛ³?B’Ì”;qã ÷Ãcˆ=m'8z¸Ñaþxjô{P\I)ÇØ¿y½ºŠˆZwbºô"&û$gªÏ’s0•nñ„FÓ68Ï’]ì8ˆº-‘¾ÝûйÂNµ3ߤbèî›F ¶ÿÚ8Cá_(‹{ÒÃ|ñÅóô óE-KÍØ¶kÝ]B–@¥ôz‚ƒCˆ–eNÈ¡õÈþu}wQÕ.ÒKN'¢ZƒV B|k::›ÛšR@TiÐj5¨¤ln/G¥»_ŠI¼¡?7^Ý?DT*±^ )^ysBñÑ-‰ ƒ„“ƒûó˜úÙýtDµUK+Q¾­è8è&¶$8Âß 'Ò¥tµDÔ Z•­Æõ‘³l[/ñÈŠÇè ˆ*5úˆúß=…vf3Žß±$À­I;· ìÖh¢cÜqÓ‰ˆb?ž}:D )î!}Þ—üzò'6îÃMý±šÝðð'Ô Žk¯¹ Cï®8ù\Ý *WÝikÇ8µ jЦµ×Ù£ R£Á%àhµÔ lïO-RùD2ü‰…Ì> ÿ÷u›ëy飷™”ÚÕQß'|†¼ÈúåOÑÍ­öE"y›W\Ç àáK›n¢Nž!¯  ÙÏŸ{Ÿ¹†H\õå³ &¢¡†£+frµÁ€Á0š'çípí<á8ÌÇÝHjW☷ØSö{«:N³nÉ–,ý’…‹W2ûéÛù÷hWþøô&Nòá¤Yìw¬fj²Ã_›óÿ60R9v-jº&r~ù&-"€ ö~¶„^ù‰*²X6ýv  £xy}6ÎÊyò±|öJ*I†çØæ@Îdþ †$x’M5WØÄÊ¿3†Ac¹& Š’lwÜ_<.$¾ j4‚MÝ8©›ÝçRDT*5D×¹uã‚F…(ªÑhUçõuÉRÁáÕ¯°«×¼:Ê“Õ%„ Ñ©<üöûÜ?¶æÚWum*¿eÑòaÜ>1ží›~å¡OÓ§ö~*RgTšÚûi`0áÎÚ{˜V«E´nã«U>¸+GvçÖf°ÞFƒFœgÉ>|-zîzB:t¡÷dêè1h×'TS–íŽÎ®El?ŽÛµ%Î_ È>IXHãñMTh¨?5*P«~cüQ«5hQ5S—*4µ²P¯    Ð³L…¿}l^•Îì±IôéÓ‡¾¯bî ¯ÁË/“oÜÍ0ƒ‘Ï­$³¼ñÒ÷ŸËc<ÊÞÊ@C£ òέwúEÓ*=›³Òù‚›€Œ©z'ß~ö#ÓF¥’ššÊ„‡_ekAí_Îa¶ÇàŠ¿LívÅøEwª€Ù•Š æü 2< tôÀTI‘¹‚ÒÎ 6Œ…kÍá´#„½7@ÆÊñï2iÒlf~ü%E%W¤TUUóÄÏ3ùŽÇ1[mˆ¢èÚÎZåM€Ù‰ÃlÇ¡U#‚ €WQ¹¥”Ê¢J¬õ9Q†–™O¡JZ¬}´U{£—4hòK©T‰ˆu±ƒ=‰Í.¥ÔlÅ.6°Â£‰?”IÖE—Jý¶-âÞ…á“ÛðÕ †¤ùx·–«'ÅQvd/Ÿ¾ø7öOÂ`0p׼䛽ñÚ=˜ž¹‰Á†ëV2púÂ.på²Ã{H·æÑî†xäÃûX2óYƧºÒ¼gÁ~J$([uOVÜÃìÑ‘8N$ÉŽÙ²…Vìå¥k\çw;ËN]†·œäH©mp¢.Õ^djw< ¾aêØ¡$'%‘d0`¸u)9¹[Øp8¸àË¥´cèM‡™5v)Ó¾§ÚdÁæ”·ØÑŒ šÅË NÒçÛ‰CEHëH¨z•±×>Èœ-y€ŒÔÒÉTnx—mâµÿÜ઻$Ãc¬+·Á…<ŸE­õ,»¿šÊ€º:z/sʺ4"å(v}^E :¿`BáhÅV~ø%\å²÷ Ï|Ìþ²ËÁTj§Ž~ŧKŠyðû4Ò¾¹¯š_X}ð?ý÷-NEÞ§ÛÓHÛü ƒ¢ýQ;/“ÍŠU:Ä3_sÒëzžû:´å¿c#{ò£˜òÙCtéö_§¥‘6?†cߥç‚4ÒÒ¾cƨÝ<:/½«Ðƒ Òk[2€ê\~u1Ô“þÖTÅMaYZi›Ãòã/Ê©A:ò&Ç»¬f[Ú R4*8|šö¯¥‘–ö ³Æ•ðßçþ½óŽ¢êð3³%½w)$@B ‘"½KQ@ªJ•¦ Šâ§(ØPĆ R)ÒAéR¤÷^BHH#½·M²mæûcC Åát~ËnfggîÜ{î¹åÜsîÍPì±»ç2¬ùxNÕoI>a8Ý5ÏDä ŸÓ«E Z´hN³fíé=p)1Ž6TŠ!ZaWpŠeï?O«2½0ž‘¹p—E’±ˆ‹?Oa©Ó fv³#GgD’Le!õÿ¨Ÿýñ ãûÓJsŠ/3·¯¥=mÝ¡ óÏ‹8ÕhÄ“Ï×dUûf4k1”Ÿ.héülC´®½îG²žlBËÀd.í‰dÁó]ió„¥ÞÏ:`F1–Øt@–Qip®‘@j±%ãö}͈c8Ü”ýñøC—pð“´k¶ˆÀUhådS6¡.ÈEgfÓ½,ºòü¸µÜp²©vSm…}ξ˜ÜŸ–eç¾Êæ´âgÌQ…‡%´‚‚‚‚‚‚‚‚‚‚Âÿ Éü4ßÇsÌj^ù)ç÷M¥áÏw£Õ˳iõ2@k†}ÈŽãõÒ5Ç{š0»Á¶Ï·aôêHÓP¶N!—ͼI˜Uâ]VÉʘ%üÇ3eù`jÍ‘…?s`Ùo„¼ÞÃ¥3»=ޝ» réK/+kÔe^Ë`¦ ã$›$ÒöÓ§°A 8?‡âœTÔó(7þ’ÉÙ-W° | _o{dtEïýt’›¶ü+$aÅŠM\:Á»Óf!K2‚( «Tˆ‚ˆªôRƒ¸¬U#"–z]—É%4D•ªÔ0\j4EDÄÒü,-[µÅ l1,—Ë£\æ©{ÿ²-ß*Û£æpì×~¤nÚB§_óeÞFÞþl ›×¥¥¾6}&ô¥Ïó±ã<ŸößÄá¶µðÚ=•‚×Ws°•–¯÷dÆ’= z§ãåÒ|ƒóGcÈ3=EûêŽg1`Êz÷o€ gø°×¯îäˆæb&©{ÇÒe¡ ²“$2lRožtze»ÆS »âË™K ÿñ‚ª¼´S9ðã6’³kóÌØà7a*¦Ð§_}ÖŸÆžÖn¿U}_ªÝz¾ðÏͺ^ÁöÁ@ÄwtìÖ–Â6s|f{Dš¦ƒ&³é{'z—„ &.:ÎÄ’HV}<‘fŸ3õý©ôkäVu 2—ï֙鋾¤sý[®›.ßÝf#I¬jÐü¹¯yû•¦…£RZe Yf½;š¿Åû_ö‹l|g¿ÿr ÿaÍqý'+€ /FWh¶Õ:¸Î5 Ó_&qï~¹u¢E“zTWÅf$ù!Râf=zŸî´iˆ¿ pñ"Ôº[A“ “I†”xâÃßà¥z*B›â÷Á!"ÇÖ¥N%ÅÚÁ¿Vürâšâ€Íêyà+,bá" ‚`ÆdhGóAõ)y™‘­¬-ò*KÞ…'\-âÞšÚkcHB©VU$°Ód~ì4‚=ïÊÂ9 ÝÎ";·U3BøëìXЗ²ƒÅÄZ;Jõ[α)#f½ÁàÎþ•,‹Óv IDAT¯‘'ÝA/Ș¥DNý~™Óѽh5[B6›0Yb¬îƬ¡aÜu£ìM,þ¥ ƒ7ÖDäÈ}øöØT†¨ÕL?—cž&uë.žÜzœ¯²Öòæç;øe_;B:ùZ®¡;ÀÚíA´|­1dS\Ж™»'ÓÆA y[Ûe&ÇŽÏॠ{ªŸhTHF{‚šŽ§›%Ú¿Ìâ£/°ïÃ9,ü&›Aã:᫲¦õkøý¾íðK¿ü–á ì-! EÛ&o³gÞSØ—? §·mâr¥öIO¡k{¦Ì›MÏ&·¬FÊRF ªw            ð?C‹•M>9zË´¡äÕ€¦µ“HÎ/ýZDÑb¤0—Pb0–zŽØâhco4Q(?÷OåxvÎYEŒkk¼Ø'$D+=Æ›ñhÓ¢ˆ¨çO ñæõ„²´ˆˆ¨*±€\œð tÃÛ1—dÒ3ݱµöÀ5+3&©twÄôxbëÔ š €¬'7ã8ë?¼Døçãh¤3%%Jô¸;—åLÎÿzc7öÅZ’Iº‘H—®Y¿~Ë¿JÎ_ŽdäË/röÌEÌÅyäÚkÑÚ9`§‘‘,y˜›NjM<+¬lŒKKÇ”™NZ|Q!hõ˜ÁT@–hÄè[ • óͲù7ˆõwÇÍÆ;«b ¦Ò2Ž‹"²a÷j¶º)«‚X¡­$Ûa4Šäò©cÉ}žNž ­Õ‡—Ÿëû…½œ5¨0 J½Ì‚ “‘W³ìâ3tÑ6t½š‰Q+X“˜‹ÉÉ,ÄXáöÙ—¹˜Cm°ÇŒhe¢¸¤µx¬~¹)Vt|ûg¶î=È¡C‡8´å 6œÂư’²-afÑ`W£&¡Õ’I×WmËr2‡–®åTz}ßzŠ€,S‚,a2+ô¦~ÔN¶^©üpR‘“ €ÁPrÞlÂ(KÈ¢P>aRVΪª1pÊ%äê –Ï¡cسÿ;zï:Æñ²$±é0è‹)ÔK`]‡gg,dv« Š.Ç’Såygƨ×W¿_ùùK—dPiïWQ@@B2›0VYBnêõ[ä¥éoÑù‚%*€( ˆhÑZaÉ]EI$Õ &@–0‘¥©ñ¦f;Uy˜ÿy=( ‚(#åcqB4¢Am(&+/“ £Tþü™d3’$•z{ËHÜa±€Fº$»4ïLÆb vÖXWeB¬\ñ iÃÓIÙ]@±)A6EÚ6bøÌÕ9tˆÃrüøGt«ã‰Ö¤ÇTfM@*7fšJŠ1ØXcõµ¥²ÙˆA_RÚWr"8\@ã‹Nw×’³‰JQ2!qK½…RZr{ý,‹¬„JõQ@cU›‘?åð¡ƒ:´ås&Òó©É|tÓø+ZäX*×ï‹!ŒíJ¥=µÎ'ÇpS‡7 YÍ.ž<ɱÜ!tpmþLЗ‹{¸\ê^¹q¹mkѸ¦' Ak­#/Og‘O§F´ª›Lr:ˆƒYvü8GícÕìþÔ ð 0•å¡#ÁD¬œsÉË’0•í[P“f=’ÈÈ6—G‘ÉP9/ÍæR=YáÁ²ËP‚éÅqS‡)((((üƒíéß<þ( €þ‡„ÑuÄÖ.>B|Üu®ÞÇ]3BÉLqÆ n¤d“™H‚NÉGض}+[O¥’quû¯¹ãææ„•’.‹äøttºLbbÈ*ùƒÛ®³yælVÇ9Þ«ÆØhó|yüé4â¯\!"*s¿ ¥®ÕT–a’!/‘ë ™è Ó‰KÏ@r¬K'óˆH²âÏpþR…6!øÈ—9¯sÂÅ«:ŽxÒô©â¯Ds=>ƒ+{O‘⋇ Â¿•Þ܉çkCðËH&-#‹Â¢Bòs³Éw ÅO%€)…c~ãªàAšNgdpàØyš·èÆ©Sçþ•‘“›Cö}Xôí²Ô µò'4¼Ìä4RÒ ˆ?E¿.ѸK —¥“–œLĹhJBjQ͹5_âÔñ|’.F™™ºZš57QRr‰‹Ws‰Ú}œx/;œ5át~î§æz\Ƕ%»qð=yJú²RÉ/ÈäFÌ52ô n‘í½œ)iÃc\ñŽ^ÆÒß3Ɉ=ƉSñd©Ÿ¤ÛS*² rðp‘»8íKƒ–t7²fÓ%"®'lòZÐÀ J®.g|o( œZÏùCgH3 k-7µIË:ÀácqdDìâ`| |¼í*ü‹õM „Óªÿ1VÿxŽÔ„Ë\:q8)œÀª´z˜R88ÿsæïÔÑpDÔ±ÑÄ¥fSdzPÓ(èsIŽ‹!:.–˜Ø®Ç$’gjijoWgݸ™üš|ƒ„¸8.Ÿ:Ãæ•[ÐU÷Àåú1öF¤˜”DäÁSDªÀÙÛñ¶rŽ&M'Ýÿ$î0³æ¬åì…Hbãâ‰?v’ÄŽáež×²,a¾iœ2gsñè:¾X¸—””d’"Na­Å1Èçîá]ïqÊK–îZZ.&3!ƒ"]ñ±™#c,H#69¸ØxRs1`D—•Htj"q±1\¿Oj¶îÞ Â²™âÌDR2ÈɾAB^>%`*¦ )…¬ÜLRbH.´ìÍ.e“’†®(ƒøë×É,yœC޲gc2 W¯râØEJ„âç‹[ÐA¶l‰"+öÇ/kà¦ú‡ $aVÛàânmÄZÖË%þÐIÎkÁí¹ ·Õ‘uú 'bRIM¡ÀhFþÇmD9‘e I–‘*¸%K’\j“‘L’eOYïÚ4Îú‰Å›I¸Éñã—1?Ûÿ*M“ˆ“›3ÞÎ×8´3uëPÀƒ`Û"ölaç¹$â®”z#f©âv·f]:ñ7≹ÅñSW†t$0•’ ‰âÜ\r²‹0Q–M¾NÏCŒSâeþò›/¦’–~„CǬ±pu¼[VÐ1•äÑ@Qv×Ó‰M!/£ƒ·?¨‘‚Ätt…$\OGw7­(Q\¬GoÔ[ ¤fº”$Ò²³HOŽ#ñæ>ß7VòÓïè×>kMi_qøYÖ.>JB\4׎ì㬾-MÂñŒ^ÆÒý™dÄåø™d lCñU™¿±q_5Âë7Ã× ˆÎÃbرñ0‘QqÄÛÆá¬f„zºt®ÇFsñÄÖ¬;JÍn-°J½ÄÁ_–²éB*iéG9xLƒ¶v«XñÛAN]K$9m+»´ ÔW‹X!’ˆYºƒq@ÒSyƒë©7ˆ‰MC—«Ã̶YÖ““IQQ:ñÑ–E ÿÃnŒ,IH²„,IÈ’³YB2›-/ÙŒ,Iìã)! þ§Ô}~-ƒÞ}މ“ÁÖ±9S–O t©]·€E¿åb§:ÀÜ/óyyl/ÜÓ>cá ùÎl¢ÕË_Ó&Ø-PpzSœCPIÌym/O¾·‘Ñaw¾§”[ŒÉ^"÷âæN܉Q_„[‡‰Ìzí¿÷>s×I–Ô64G­¶˜Ë2ÌcÚñ8ÙÉ|öæYú½÷-O |”S¶Ì“ǺaÜ a¨.¬ ÈY‹›¯7 àÓq¡ŸÎeáîe‰xíëˆä¤ä` åô¢Ï8-j°rö¦Aë' ,HÅ1¸ r¡ÁAEQòeöÿÁ™3—ù~ÑÚÛ=ÿe ^zë+FŒ7гÕchê}Ï7 Æò]šƒ>xVÞ>X/øˆŒ±³ù¿­yåzLZõ!õÐÛW§~¸CiˆI‰œäëDgÒdX;\JSîÒd,ƒ³¿á«oÆ2/=ÁŸÎ¤¿Kå›Wj‚"ÍF/$qÊp†­s$°~w^ýøI¼‘©ª ¥B=%Sd<‰#1Šqj>„É£Ÿ#ÜëX±´îÔrŒfÍg¿³T°x¦šMAŒ\ð)Owþ€•¼Í°1/£RƒäàMØó³˜YÏžêâøhòHZ‰è]Ÿ`Ü«cèd—r^Ï+-mï/‡ìÛ2Äk2sf­¥Ð’\IËFã^*‡j[ü-¡ÉUîùùâôólFîÔ"˜œiýÂKôo^½jWô vxU÷ÀÅN[ùÙòóíçDs^Ó0}~¾%˜9a;’d_íî<;Øý¥¼9n*AF_ì@óÁãý\ ¼ÿf"%]:'6Ìçû98¨2çË,^œü"áÙX0 —ô\Z°›XÃWLîSõÙżþídQbt™±‰1#çpôéÑŒS9Pûyfv÷¼èÙc ?ÏÀ¯|è0ü%Æôª[!dë?ˆÆÎ>>Æà 9¼ÿÞÖˆ!ô9–n5ü±݃£_üÀì©+°Ò§ã8ÅØX°ÆÅÝQÐ`´3bïXJYtÄ×ß{­*jj°Â³âÞz~/ vxåã×|«>7\qêA½\ºÔ{ŸLî‚oXòöòU%>Ï0{Š?~5=°)mëÑz(nà“‰{ÔÖ¸·šÂâ>þ@1iGؽI¢ÇÌv¤þ¶‡ˆB?z âÄâ-·lIû6AØ=m¨ÆÓ ±0–EoŒb‰l¢þÀi¼Ü¿îwÓçZWjÖ¤rÛ ¨±·Ñ"]_Í[cWcÒW§}ïøûWÃÕÞºòUŠÏ²è›ƒLÙ|ý8lšH3ÍVS¨°qò †ƒ%\rÚ9~^¼œý‹PŸÚC²ù]^Öœ¸_â9r4áå –ê [KÿwóÒ${—'˜òã`Â1âûv&ïNÂ󢺽ÀËcšâ„‰ˆ§¡U]šÔõ-óÞxfþÉŒ7¿§Ä\ŸI«gQO6Qpv9ã?Ü‹“w ݧ,fX] ØUÑ Mب×w /÷ Å77‹å.aCTfƒž.ïo wMy¶Y¹S3PsÛÞÉN¶{vÓÆýˆ±$˜^#Zc胛Ã-:¶ðó¿8B s§hø¿Mãi¤ lWFQ1K²\aqŽ ”î@$[>Š¢,"ª]3ê¿&¶Dœ¿¿Œ Ô® ‘‘eÃvµ§š·§ôd‚¬·‚‚‚‚‚‚‚‚‚Bäµë$$&ÒºMs<—ìDýí(**ëC‹Õªc·èmÒ)A@À?Àán†ûý{¿ù£áŒÑd$==êÕªÿé¹}Øtó:B¥ï¢~ùŠÃÅ´éÕ‹šÖBÙ¾¢BÙ¹¥/¡üóÍïŒYQÛ{çîÃi`r©k—$É9zšnÝa0þSòùÑGÓ™8q4j•Xa/e¹ü%Ë¥2#oLA–+ŸS†´âˆ^® kU–+ƒÁ@ff&ÕªU»gùûsÙþ»Çÿøœ›©¹Ómåkggg£V«qtt|µþÞÓZPX€^¯ÇÝÍý>õˆÅ±M¬¢Têõz²³³ñññ©¢gÿ£3ÿúU$I"99__ß*’Óª+åø„xüýüï±”î¿ÞOÑétáááñÀôaqNÉi9c‹mä.>Ì ç£¾Mñ°»ÿ‰È””ÜÜÜÐjµUPª•óøÏsöþò^FæÆøÕðûÃëßû]nù¥|‡®À}ÉôÿBŸV>š˜˜ˆ*•ê¾ïvozá~[¨¿¯§þކàŽ×n Eÿ÷î‡ø„x¼¼¼8qü¾5|E’$!Ë/_“ÉŒÑ`,mZþi÷Äâ´bbAÁm³þññµÿx—ÔßÓ$J¬      ð/ëÉÊŠ¸ÿ:‚ ”ÊÁ_ïë>ø©©{¹ƒð7úòB•¥óö¿ó0ˆáÔñ ¤šµPvJeão埖}Ìèe5öN­©i/”Ù)%I&))gŸ}ñ?güxóÍkP—öí[¢R‰ ßRž¥–NË›h™â(5ôÞj­ðƒ²ÝKÿ¤”ÿÒ|Â}Êöß=þÇçU&镯ý ÇÄÂ}걪ÒTb¦²|?èªzv¡jÒ&Tµœþ/Jù¯”Òý×Cª\«–’¸ƒlX»‡kYCS&ÎmŒ»]Nå UÕúÞ¢;°lü¹d ÷yáî>„S…U¾«FfïU/è¾wOpßO$>à½㯂‚‚Â?(ˆxy{‘’œBqI1¢(Vn;n{ÚæçáøˆÎ¥ýë À’,STTDAA!âŸRůA ¤¤˜‚‚BŒF(M²‚‚‚‚‚‚Â#‹ŒF£ÅÁÁkk%;þã² V©Ñëõ}ÒW(((xäºÃf³Y’)ÔÞç‡Ûg}+M Ê‚»µ@”Ìu…èJ½|-爥ïw:&"  qò'¬«ˆ¹¸„Ò4—0`à(ÒÓ3ÿ³’úìscÙ·o#5k ª,F^A¸¹ˆE*/õðµ¼K€\ú\ö]™çï-žÀ–1 \©~€eÕ·T%²óh#zƒ•¨zèò¢¤DÙdzèÒe2š0™¾tYöö•Z™.(,x$ëˆ^¯Çô åP–ÑÖÈk.5BI苊(¬‚6YÌ’N‡^­zô2_¶èï‡M¦oö¶~ÓÍň*…ÿ4‚€««>Þ>h´DA,‹UqiŽPÚ”}™Âíûxwþ€+÷°$I¢¸´ƒüg! +vU*QQQXYi1›¥»vÆQ¼„J*{‰¢HRRµjÕR²æ_;†¹³§‡eÌ" ˆãÙlÆ`4ü­yI½AÿèÕÉbðÓëõ÷89|»ey—{ö ‚€Á¨§ÜÀ[ñ],,aŸË?‹ ˆf £ÁZ2K˜%™ ÞàÌ™ ÿiyÎÏ/`À€QìØ¾ 'ñæjìRƒ¯,!#•~–Ë?W8Vn(¾ÕLÙñò¿)ÿ|ß²óïÑ)’Y™‡*/,zÌ„Y2?|é2™ºü*—oZ™6 \]“é ‡Å…&ý²$c40›]ƒàÃ&Ó7ûb[¿Idd F#‚Ié3+(((((H’“ÉTfä½­Ý”å²ïÌ&ã#ûœÿz`AP«Õh´ZDéæ.PåÊýŠÇEQENN]ºtA­ÖXb€ßºçGùEþ:u|ªè…*Ñ3ÇÁ`ä÷}ûÐh4Ê6ÿÚ~ïíëADË_‚ Š*ñoxûÈò-ûl>˜ÍfRÓRqsu»Ÿ\ýƒc·¼ ÷ö½yüÎûþRj¾ù’K=™Ìf‰OfÏcóæŠ@ׯÇ1fìëü²y)*•ˆJ´¬Ì*î \fà•n9V~Ž|Çã·*ÌòcF“‘ŒôŒû”999¨Õjªtét:ŠKŠº22dge=té’‘IJ,y(eZ§Ó=²u­¨¸ø‘N¿AoÀÅÕZóhæQÑC™÷………e¿©¸¨77WDAñVPPPPøï¢ÓéþSÏ«þ/<¤(ЍT*DQ.›³¶¶Ád2a2¹ÓbA•J…ÉdB¥Rc4è-S²bVPP¸_,zÄÖÖÖ2+.ÂÖÖI’)))ÆÖ֣ьÁ çVï=…¿§k,H’Œ$I¨ÕjLf3jµZÉž)7½}ííÐétH’dñþÄJFÿ{ñ”‘‘¹]Ê$ùAhºÛN«Â-í¶ð'¯òß•%™·óþûŸ)Â\½{2uêû|úé;wÙ_µÿ’»<š#ßB×>Êùôßâßï\: ”ºD¸¸¸rðÀ¼¼½ñññÆdº=þÉÍÉY–dËÄ©,ËJÄg…ûke°±±eåʨU*žzúiþ°w7:uêÂwß- ¬A{ ½^¯è…ûF’À,™%Ê<@þ¥ý^¬­¬ùþûïxñÅ1ètºG*¤æ‡«U7°¼Ûpøþvu*\[D’9°'…êaõò²«tCáæÿBEÏ_ËUI’ÐæðÊ¤éŠ ßù ~äÙçž¡Écaˆ–í“Ku™ Èò-2"ȇßrŸk‹±@ 4LtÕMVü•i–»É¶åÿÛÓòÏO“?è õ„÷›nKºî”ºªOqÕäñƒ“•ª¼òý^K¾E×ÞËþ—eûw0’—p’í'éÝ·>Öt{}ë9Böï̘³A¢å‹ŸÒûaÝ…$ï$?n”é3¬)Nÿ¾ˆ¿%áwo¯îVo×eåçèÉŽ=Ëî3öôî[íßÕº³ü¸ª„Þ£ZàüWût÷TÇï~ƽ|óGZŸ{Ôû’¥ës×TÜ—«b%xç´Þ½Ïóç z°Zúnyû_å^s[0'qpõFvŸŒ$#ôÞy¶Þš¿Ø^ܹnÜ.ß…g–òñº+HêÚôž<’¦.÷¦Ën#c7oÏÙ‰­Ç|ÌSB®ßü¹ŽÄˆ³œNô¢[—Z·èÚÛ‰^ý>ßÉOñá pî/þ‡€P|‘Uë h×ïq¼­5Š1ø!å?ã"Ë2"Î..ìØ±ƒ}ûö1tè句,ž3²e¥œ"É ÷§ŒEè¨h¼½½ˆŒ¼Š•U’d&òj$µ‚-#cÉ,)ûŒ+((TIH’ddÅQâ?J­æ·ßvcmmÍ / £°°ðáMìõŒ›¹ÁÆŽ†Cf2æqû²¯r“/s᜚fÝë`EW¶®eݯÇIBÆXâF—I¯1 4“3¿çXVfI¤ÞèÏx¹‰í Qs¹¼c?­=B† Þí†2¦o{üìtùr."âÈ‘Ûñú·ÏQ[%V˜†H`Û¢TZl†%n I‡Vðáªs¸†´à©~ÏÑ´Z©;MüIÎ&ÛR­U V­bRzUS¿ÚÐ]cçÚC¤ŠZ¬í\¨Õ¶\%Ìf‰Þ›CVVŽ"ÄwaÊ´Yü¶}%u!Öî⊠¬lнw(v˜(ÊŠ`÷Ò­\‘ܨ׬=][Õ@C Ñ¿mbËþS$™0ðÕ^„{Ø!’ËÞæ°#;“º#S>éAµ?ñ ¾Ûd@6{—EP§ïãT³ÓZ¤¦’lÏbÌãVäDneîGIÔ¸R·U^x¡5€`ŒbíËÙvì:Þ'ðJŸxÛçñÛ»ðKZ%B'Þ™?·Ü]ÒepjÓ\æíÍÄV#"ˆ"rP{ú5¶#éônöGêЪT* rÓx3ð_l¸ˆNoñœUÛ:ãØv8t-féÔï8j0#IZ¼ë´gè+ÏP«Êf Ìd\ÝËO/åœ*„®Ï ¦ÇÀ?œºç‰(S4›¿YÁ¾Èô€„ÙäÏ€YÓèä%BÌÏŒþp/jµ€ÙÞ“ú½G1Ä5Ž=1ÞôêY- ˜âÙ³-»Za4 õÀ°ýå|?m3‘,þ='²t˜e‘zÃ>`‚Ã6&jÀgcÃÐ` 'b?«ÖgÒå­AØœXÎ× ö‘¡ðlÒ‹çÒàbnœÜÆÏ‹v Kœh1x$ý:…àr…%çåËéK¸"‰XÙ¹ÓrÜ,KäÄä§wrJD»ÞÏ1¤gm´eu­€c/áÑ¢>Þ‡›Œ¼úþ¯›ÌÔô!¯¶--ì’bOoåŒùyžLüyo/䬺<ÇÀ.AhåD~û~ÛNÇRh20ðm¦tª‰Ui—*ïÄjveõc@ÖA>{k)‘‚×t3^þFR.ìdåÜuD¨THµ:òâà¾4÷µºC;Æöï£h2ê ®.·”EÊÙ­,øf‰‚ˆKƒ<7ô9» `¸ÊŠùËÙs&Ÿ'_arïÆ¸Ûˆ·Ü9šÕc?a*T6.Ôì÷:¯·´áÆñÍ|ÿÝN’E·FÝ2¸a.7ë[>GÖ_Ƨuü=íË JIü:?ŽVãZVNcI{VÍá²×h&v ñÈz–ý°™«Bý'¥[#ï[êõÍë%³e~ OŒkÅÍ*­?·„1sàP£6‡¾Aï:E\ݽ†Å+.xÓþùQôkŒ èŽ1û“µD%eá÷Ì»¼ñd ZUë&¼Ï.IƒƒËS¼ýaW\n‰ª#¥_dãê¥l9ŸµZDT©ö畬Ûq‚ÙFD@me‡¦ÕHÞtÛÊ[«¯£-ËU.5é9˜‘~×ùáí¥œ×¨Á¿ƒ?OçÀ,ö-^ƯG£È7™ñï÷¯u­ƒ­ºü¹ã6¾Ê7éýywL øw#ädÎz†Né„çßù¡)…Óç³÷_P' IDAT±«Ù„ð&ØiÅÒÒ»µ}®.gÄÇû°õò¥ÕзTß þ }ÈåÀª+vOŸ†´ïd;/¶Uxw° gsy×–o”””<|˜ØõŒ|å MßN˜,à`™°“ S8¼z&ïm3Ñ¢ûXš #átÚêÍéódvEjªº!FÿLdîôíl‡µÕE6ÏœË§Óæn#ØœxÒ‹ xuÇ€Ú78øÓö¹×¦¥óbŽkƒéôlw䣋ywe(Ëž G«R‘²s&¯¯‰ÀàüO˜ ˆß»–Ï·–ÐùÅáh\¨î,–MReÜÈ# ^CÌçWsÙº.-º´Eº¼‹¥û‚x£}0BÊe²üÚÑ6P¦¤(…è‡ðè×Sró®QÄ÷8qä›6í MíÔöv@”%$ÙžšN"Ù?cÊœ<ž˜>‚úF3¹E¤žÞÀÁFž\TѳgË5̹D_½Ž‹SMC=0œ_Á»ʹZUÌOÄöiËȪ÷$íѨβfï5ÄqMŠ~Í)›éçšÇÙ=ßqÝçMT—vðëÚDê@¨C ûÏéɈÉ"´Jö?p­ÝŠ>ÏèøvC6¹"ë™ò]$õ;ô¢““õ%Ö¼=ŠÏßý–ÉÕâ9qÒšþ£›Y~.ÈM‰åòeklêæapkΠ¾aØçD²oãvZ?M·&¾Ù¸)éÒ8¶æ}fl1ФëZ”¦Ñ·ï~üž•çCxcf µJ›ÇÔ%{ˆ(|ŠG?‡ pyÍD5yQµ²¹pp=ìáã¶pjùrŸ·¡÷+ã©aëM LJ`±­¨F£UýÁèñ! ¯¨r%$¼ *ç?˜TŒa÷)7úÎëYZ†·?ÛC @Pc¥n‘ÑG-´¥žôèLJ¥Ç‹OàV àìÝ=Àµ=Ä5ÎÈp#ùÙçÙÿÁœþ¤ºßW`î:…1š츼• Á> qÀµ•¹K–±9¢³…ÉÛxùåCÔž8pµˆSÝnÐËè² Ôo*rnïTݦò"‡Ùr~£õYbm‚hÖ»µ|®ñËìeìôD·zÎh€„+©´êÙëkŸ>ŠÑáÅd&ãøìeÔû¨3úÔÆ3.DÇ¥ƒ§¸ròAÕZâ!–ë6Ýñù¼±ä7.å÷dÉÈ'ð®¬ÊµÆ¯3¢NWö¯gæ¾Z|ÚÞû6Ù4ÇîfÞ’E¬¹X—éÖ,Õ9¥Æß øò¼‰˜øxŠo5žçR˜ ­Ç1!, {.ppå!j ÷fóÇ눨րc»âွö>Šç6s¡áF…›(ÈKâÌÎ¥\ ‚&;mûqL¨—ÆÙíç9°ú>c[áõ+³ýį‘MøèñPüKŸ=gÿ§¼ºô(‰R?ײ\Çêó8ºäE~Œ&°v.9Ù‡8qù ^½§Ò*k+«÷ïÁó/Í«YWj'rÌáÕ¥‡I0÷¥ñ¸V Ñ\Á„97è0u,!ØPÍW"çÒQN_È!ü…‰„äcù½8ùxÑ»ú%>˜´±{'žëj³ŸZU¿žÌÅú“f¤ðÌ>^[âÁ‚á+ÄG_ëÐF46.d˜Å²ÔŠ[·äé¾Áä—˜­œˆ_3ŠŸÒ†ãв+Ï?Ÿˆˆ¹$ŸS[> 2¾'yrEíÇ3¾^‘§Îsü9*3IV¾4îÕŽPß(¶ÎYÅÎê/Ñ£‘;ZâÖŒæ«Kjn$'P|Ïà{Ñ'â_ðNþ«ºô/ú:Û×§Ï3fþ¶ T–‘üiÜñ):Õµ,¨Ü>·ÄC1_\ÉÈw¢h3}4õ$-î¾Z0§sjåÊ;¶Ï†ËëøpñÏìŽkÉçÃðõiDGŸòÖìÆ þA> Ž„áãIÊcá~ܽçÍîs^ ù®Mª¨ºc™&]*—®jQáHHýÇpÖÛÞ¿qNQ¥F­ï°NÅtd°õ“#Ôì÷ôiR òNrú´™¡÷#ÇZ VVjDî-.Byœ¦?®¢k#úô±yÀ-©V£ÅÊÊꎵ±HõèšQÿ3`kvíÚÅ¢E‹¨^½:h4š?Õë c2™$3Š °‚‚Â}udQT!Š"¢(RRR‚J­BU””” Ö¨(*.F§Ó)¡ZªDï˜L&ll­ÿU«þ` (xxx R©8uêáa0ª4FîþðéŸ0¦™m…%6î4êôÏëo6—'»ܤO>^!—º/zãm D‚íkÜ(‚».avæñ.7®Ðh\ f+²u'ÉJ¾Âù$‡4{¢Îõc÷÷¹"9½Â…z3›ÓÂS î—X· Šü^µp¼Í ø½‚5Á];XGê"5*dÄ;ʶDî<Ò’M4ìòLqÞ*öÇçv%¡N(Ï÷îCݲ¹†ëœXïFï[Ó¾†=´(À·õiâo5«lð~œ¶Áœºâ¯³'ÍžÀüˆã»/šÒû•P\ýñ½Y}JN°ý­'93“![çú´oŠïŸM\ýmô¤ÅÆpýB¿£Ž^$zñ!2¯§!Õ|0#kYBv ¦E—®Ôµ¯øE.Û7] Þ¤Ïñ¸{Ù¨>µ:§/žDP«ÊÓ#¨ÕjT¢%d°ºR9WY\=fCø[iëNM#¸:0¤_sÞž”ÖÃÓÙ¾§!7†Á®50°ãc¸ðµC UUå/*`çáOVÍ©säv¶1lýò .½@¯®á¸‰4-×6%s¢­¦B~! ªT¨U"hð £mãˆT'é×ÕèÒó1À_6‹Ö®4è0˜ôGˆ6Ke5PôyŒ¾ýz§ËB-•ïmÚ›ÉC$f,ÕZö—γ{Qv6¥Åx QÌ=v‚ú®d›džy}<©Üöü³=5@Ä ‰¤#K˜9k ñb=FŒeä3¡ØÈ¯s¾âçý‘©ÄàþÌz»!NVÿ\ºÍÙDœ9O¾ Âh¶§$v§.ŸçB¬DçW`b'F}Å2¸Ô§7¶¡cY<ݚφ|ÎEÁïÀ!|8§;nU–…ŤžÚÊ’õŒø¸+^踶ë WÜyrTGçÁ¢­gÉ2û1pÖL†…ÆòÍ!6_³`K ÞüÒT)üüvv\ÖàR­S¾O}áQÚ·VF–ìñ­Ó'7ûKÞdB½LkT o+0¸¼iç¢C0m@— ©g°!eùnÒ®&CH4¾-: ›KŠPÉ"·{µ_™ÊËm™æ¶îøµÎ$[w\Tàœ–ÉÞëiœ=‘ƒ¦Q8Ã{÷ ø1hC«ãmèqfN,ú÷Ý©Ûz/ٸᢒ±Oa_RÙfððkÅ󃲹±HªB—Å>lS†¨ù`U…›ÉF®oÿ”Ž£Ý%# ÄœÉ%3ã1ž†_a!Çæ]&#%¹šw%é· ëÏkCDf­´èÙWÏœ§ÝŒ¹<zó,#Ñ©™JntnטšØq4bú\‰qÇñxæúwoT¡«~žkýi³ï Z¨ $0‡#N‘0¼1ÁeÕÚ…€zÍ •u«ëѶM#üCëP\à{ÞjÁˆ)AX{Úкtµ–>v';â:2ðÓúx–ø0¶¥;΀͵X~ÓQ4¨=O÷°¶³FK²=_'®¸ 0˜ÅçÙÏðJß,>ùöVk£‘ô³?3cú*’¬´n4¸-NF-ùQ;9qšs12&}ËpP]à‹QŸp(G‡¬îÃg«_À7i-¾[Á/-©ÏÀQÃH›7£ÞÏ0qÊx:¤shé|¾_}œ Ù—>oMgpkÿ[ ™EG?bØg§0‹j[Lbþ«-¢fê„eÄ[¹P§E_&¾ù þÙgYþÝ׬:˜~]˜4m"ÙÀ´O6r5)©î‹ÌŸäÀºµf†½ÑÏü}La.—{¼‡òñœ.žÛˆ])ØêfÝa=†3fô3‹ ÈfLf,[WnŸeE.>Æ3¾dDÃòü,JÈ óí3€: £žÍ'i±„ªL¿0—u$Šc·ñÙ'Ñtù|eÝoÔØÕ¨I­ÐPllR×5™Ík“0gýʳW¹–(ÑmÚOLhÍÊ¡_r–<"û]À¡îX¾Mäã¡s¹¢r! Þ |0«5i'²ó@4úŒ3˜ku#0HKúï»9-’ Q³iµ’%¿] é”ŒiáDþî÷óÝ$ ÔvÍx}áë„GñË×ó8iǬÚÔl܃p¯ZôéfæØO_3õAR¥ŒŸ3‰^ubùî‡Õ?°|OyÅ*ú}°Ž¡ue6½Îø%ÑhUZ\jtfڜЀ ÂšޝXÍÉâ:ôÑߊb›²Ÿ¥úP^÷@E»>û¨kF†ö_EýþCp޵"Øz!¿Ä cÆgMˆš÷ÌÞ•†Vp¥yßQŒÖ OtŸ÷) wž!Y’è4üi L¶ ±F¼±ŠA“.ðÂüè¦ÙÆ”!ó‰ÒÚâЙ©ŸÀæÌ6ï‹Åœy”üÚxyD“R] ”\`éÏQc·°çrÞ[HàÆIÌ;o¤ß‡«yÖá,ë6X1öµ6wˆØP5h4"""øîûï±³µE–e4Z žž^xy{Ò^_í‘5¤þg Àz½&MšœœLJJ ɰb6K&L&#f“¤Øî׃Ñh*ÝóOÆd2#K•?K&Œ£ZAA¡ ÔŽŒÉdD­V+™ñÁÞÞŽ   ©áë‹©Ìú°p•Ýëβ~ö fÔvn ýr9ýªÉ ÒààBÝ€h’ãåÒ¡¿ æ2+ß[Ê7Ÿi~v i‰‡7eþ%ç8¤iɤ?rÍSÛa_fŠã²ÞWoL&{¬Õ*$€êui±—’LuÀÊ£B«a»Óò+]þv-ßÙùÉlÄï‰Þ 3„P[ ï*Çœ\hãnCQ±=V P{øS3ñ 8[»àTZ/ͺLÒ¬°¸ÈÒ¥kÁý D\¾Îî—1¼’ */¼“SÈ<‘MŽX#€Êwµ=ºŒ4ÒÖ¨±²ûœN9H¶!‡¼BWü¬$$ÄÀê^>Ev˄ڟ!Úyà_/7m * òβ]£>]‡_çëÖí™nãJÝV?=ˆ”UëØ:ÿ7~XºŠu´œ¼ˆéOËçæQTR:}¯zœ–µ×• (æ§Ò"ñn=„š¦ß3v~ÎÅz­y¥fõJ!x¯.“„^ßð¾H‰^GJî÷<Û}-Þué;ísתÈ(fÂd4a*q¶ÿ¬Ü©aИœI.5ï=ÜÜÎpØàº×z/­A2`¨=–¥Óµl?ijsÜ+ù¿Xyycw^º«™_T•ʹªR…Ѻçû¼7¨ ïuœÍï¯5Ç»ÔÛÊ)lm×öfö’.øO|›¦hÈ©á…!m:O?Ãä)o0¨žC…’®"LFÌ‚ uÆuΪëÒ¶iÎbùÔ‘G‡–Ï8DŒàw×{ʈ¨4ZK—ÄrÚÊH€“Ýß ­Òàà_‡z׈./Áʯ:µðu.BÊ—f¨œªS»¾?NbAi (Ì÷(õÒ±÷ÄÿêÎf9²}ÁÏœ]»‡Ù%:Bú¼Â+£{ôÇ]P©õ$Ändý¼£4y{Ó ÛYxú7¶'ØôëgÉoÌè_%”]¼ûM1Å2ÿ X.&+-lµ=rô*N[2ð•‰L¹ñ#c·ï¢Uãgè>©;>Ëg؛ݨî”ÊÊgßAñ_†dqfË÷Lû5Œžò­¢,´ÁÎ+êÚ¹KëJ/çDÎ¥ÅãëBàÊßI³íÌŒUoà“yˆ/W!Òâ¶}Eê™ùI ê}pñ ¶ó¾à‹¡\Üøïф哛> põµ&žß~þŠ%Ûìðï4Ž·^ìOè)Zûj¥ý( Sv4m›ò¬[t./+­+Õ°#'1LêànãŒOh0>v‘² H`ÿ¶‹üš3Œíƒ,hôÕf^Ìz £O³»q3¾2é¸V|³pÃ×dElRÙÔĵ̒u‘cr}ºV³A+‘{YÞ¤»EÀÞËæYFŠrˆ²œ§A… …'—ñþÌmX?5‰—G7¿-d­Ê±µêà¤Ê/Óyž¥;Ÿ@ü/Çpƒ0 ’¢¹rÙ‹ŽòMã„wH0Õœ."”.¢-::—O“Û3mdS¼ [P©LØraÏ^¡‘@ƒ•ƒ;–u]éÜ(ÉËc¶,Ü˾…bm§.aR×@n5;TÇÓÃò±ãØP8ÛÞ´ôOìÝJÛÍTâ‹TÈnAøª• ÕBƒñ¶ªANãâO½ú~Øa*Õñ%\ß9›µv/1³·;ñG×s,Y@@…l´³Èº}u‚rÎQ’‡o*®£Ò8ûQ¯¾ö¥×3O°mÙ~ÛܓՒ—ÚM;s&m:u"/ëG>jÛž­-Ÿ}…~Íàô›çØz| ë¿Ñ"é ôüd¯4)¡@ŸG±°kŸ0ûÏ#¦‚íï,¶¹G—qÖÕ…îõë•KÃ4¯œNT—ÿãUÏr¥.‹9µås z/¦•Z{wLW6ñÎôŸÐµz‰×¦µ·Dõ(“ÃŽK!´õó@øSæ¤÷`Æ‹á¸lF… †W#Ù±[ùñ£Ô{c3|¯°uû% ’²1&lãháã œø¯&.c¶ƒ´kYÂõ—ß ¥Õ‡|ÐΕÌ_gòÒÒ&lmÎõ]çýf6cÍcÖÜmL{ù}lìa;ãH¤PôÓ×¾ŠoÆ1æ¯9Î…jŽ4r)×ÿºÝ¼ÿ¾™a˾¢nN!Ç–¯ã¤ÎЍ™ù¼°ñgêä&qæø~[ùþ†XRmz3{õ¤ý´UÆÏ|´8™úC_gL'g¿YA¢Þ‡«×Dô\àû!©··.äÍ_üyÏæ$§ÆÓíÝŸXÞc? ·GñëáT&wPßÖ&UnŸdù4ÛWœ`Ûæ§Ù„ ûꡌ™3—ðÌSl]ð3okŸeD;w|ëÕÄÓ&þ.QÍdÌ…7¸xö oòJ’ÙŒ$I€D桯9çٛ禼FPìBFlÚFûð^<ýjO~›[̘w»ãi•ÀOC?Àvô2¾Jäð¶UÌØæÍËÆƒœ8•GÏiŸÒÓ/†õ_üL¢C[&NhÀóçaè;Š÷FÙý?{g'Uõ6ðï¹1µ1Ë[°Kw£,Ý­”€‰Š¨?ìÀÂD l1%UDJ@¤¤›¥cwÙew'o¼Ìl* ¯ ÷Ëç2sïÄÞ9ç9ωç<ÏÃm“gÓµÑ%Tk5Œ×Hø–MäÎI›™64Ö—ôgÕÜî} [æ­`k–3'3k…Ê QŸQ{ëÛ<;w>œ‘žó;û>ÎϤýû ™0î¯\LRç¼ÛZ óÙ½t /MYË£© E©2ŽìØÌ悼åŠË»iÚv£V”pÒæÒ‹Iߥ3ìéž$fÍã‰×§bî=F]ê VŽ$îêgøàJ‘‡ã½¥ÛùiSÚn…ùZ †¢¾÷û6ÌgêØèVk9+–¢×ƒ/qMugYC®ÃÏþÙ?"_:ŒQ­¾çöŸä’Ÿàåºúö,:Ýu”­[íEÚ쌠k:ÕkT§gÏ̘1ƒ¤Ä$RRRH­T‰:uk¹2ß9:‡>oVu]Ǧ* 8Å‹cŠ,ÿ¹'Œib:ºf éšågaaq 1n·›ˆ†aP¡B†aR¡BTUA×u4]·tŽ……Å?Æ0Mtݰ¼Ï—ú6LÒÓ«˜˜HµjÕ„@?ëú“ ò:3bÚí47t ·LåÅaÑôëk¨`è%ÛºxÚÝ5’Æ×k(QÛù|ØTfÔ¨ÄàNE;à·0þâ/hüêTÿK?3Ÿ¥oLáÙ„.Më°ÀÜPª}¨Ø=~ü¥t3la1Ђ1Iƒxü!ÔÎÛ΢o–²àËU¤ mN`Ã*â+Ö%9¡"Ùb=˜¡¼c`C êèáÅFÓÓÈdñäíTpOÝr‹%¸§À„o'qÙKÃ0Ü.ddMG²TTù2’)š)‹ð^:(Ø5]!•ZC6l~?¿=Ñ,2P ÿxÙ¾óS|Ճ˾£Ö‹Ó¸¹àC^þøæm¼€V)´ô0nlO¥ì¹¼ôÐ7Ì©{-7Ò“ÇnÀĆ$axÚñìI±e³~Ñvä·åºÖE °Ï?‰¡ù°æ¤Æ–šöçÿÄ[/äêùu8+teä·à—|ì_;—éÏgõ;·Óä´¬µ¢Í ŠabjEíáLLüýxâ:r×]]i\)É01m1$z¾¡ Nݰ¼ìâ yJõ|úh2ìm&uÓ'ôèú(bðË̾¥ ²3–ÎW\ÍüII\Ö)”O-¦V{†½3ƒ[oä‹÷‡’q¸)O?x;ÝO¶BþOj- `Ài/ŽOÁá”Ò圞µÌóŸ¿mÇŒoÉ5wÜÄemÒO}áI7Д¸¡cœðzéúHÂ,n—’¬ ú<x’Hox3CÆ^J­œÕ|ñÆR¾ÿnC7øws: BŽfixê âÖÖ±¸õ i¼x‡æüH¦ÑˆæÚѺA¶ÂJÄ8ö ýëšX 05‚ñ-iU£-k%`KmNÍ™™àW‰¬Ó¡’V³&U²~gMìê_‰*$`;RŸ9ã"³Ï5ápµÿœ¨øTê4¬É»KŽÐ¯qv!è–‘Æ¡w>äý©«xëÓHlú1ò 2¨×¥þ*¹¬KêVtÀj¶¡S“tÒÙ±%ß>¿†Ý÷´(ã…xvEý¾wòzûûùþùiÌûîWâ¯nAŸŒLýWÆßô­>MZöLŠÚ“„l‚ðk%:[×ï  €¼#-¹ý­¡´ˆv!í›Â#·½ÍßßB]Ÿ—Í+fÓ¶û0äà4JmÙ@1`é~à _Ý8‰Øþ蟅¬ýaí{Ì*c€÷å-âýû—ÓzâK$„å°b£Á<þéÌ{6_OÔè{}[’Åñú¡ŒìJ%úA( ªÏ‡‡hš_ù£ID(åt¿òÒ—ðë¬ø~îTæ¿i3€×—Ü+øì•¡¼3ý2e,~¶ÏÉÒ…½Æ6'çÅ­´½ê1:^Ñ’”œxîþ©,¬{ݪÆR>s¦P+ÓÔD2ö.盡£ñN¼ ;€—ÍÓ§³j•B·'/(1Hê'R¥Ü$Ñü;ùþƒLÛý3ó^0 úýøÝ•ùÕތޭšëy5¨ãÑô÷yºYj„@È}xrò4>vˆ ?Í`æsóH¹vææÒ÷­©ÄÍœV-fûQ7Þìz ~è.Ú6¯FÌ‘i<{Ò®m'³¿ÖH¼0ƒºUí%cÀÞ~§¿j€«¸ç2î™ÃÓÚ1äÇÔâo¨P³÷P—¥_üÀ7c\twÒÀa¦ ›Dd—h’j°tì,æ,úŽÅoª˜Fo@fðƒ “žïMŒ ÿpGk\Îâ¥ò›‡ IDAT‰5«’—ɾ`€`Ü…d4é@ËZñØS›RcÎ~”ÝëXjëËUýëS;ÖFíþ퉻fË;§âª×žŽkô4¥Ö¾TZ4«Çï»7shÿ~(Kùäƒù¼óu6=Ÿ¼‚ÄõîFíec¸ãùYì;â¥þw›óÏ]ûßßÁåOÜEÖúÏxcÓDÞë?§ ?ßMó~—“Xç ßü£Nî¾ýZlle׸¼uÏ!âæ¼À%O€#S™(¶°2véí¬zü8öGVÝŸF•æÍéÕ$޽!5Ëæha!'ÝŽVª6ñ¢{ñèçwÒ´0—=¿~ǧŒrs ÕÞÌГõÏÆIä;¬S\u¯áíéWà<©Ü˜€†V±í;´æ‚šQ›Sã»èAÑéñ8^ÒªW'uß ÖÇáÑ>)T¶·&¿NšÇšªSëÂÊôlâÆ©;±Õ¨[¯)õ["ý;?-ê×¢JʪO?„†Šª¬e̵ϱB30ƒŒŒæx¨F…„ŠD¹S¨š˜FŽk5Û÷a§Z‘”Œftm‹³V{jß¶Œ ãÉ­ÒKº4¤^å(DDsªNÏ#ØüKyzð+lR$t\¤v«Ã‘4 ÙÔñ“B÷{FÒΰQnsIPÓ°»ì!oa "1‡C£J•êÄ—â¬%Ûm°ö°oå$zt*‡í:…-¸)%ž9;+S­i[Z5I éçÂDíÅ¥½ÛðØ”átHv£î[Ì/{>áÃÁÓp¯DB•¾ÔoQ…ê¶¢Wóx¢}Û,ž3Žï~Ë¡n¿®QM¹©y=ªÆ¤ÊäxZ5­IÕܦ¤ÏÊ# ddùÌŽ~ Ó@Ý»wÇív³yó5jHÕªU‰©C`UÞ9;>¯\A4MC–Ú¶mËöíÛðØN×»ÄPÎ×i˜hºv.žYXXœk˜†‰®ë$&V$22 ]7HNI&ÂåL’S’±Ùl†®éÉÒ9§Aïhºe>oêÛ råJÔ¯_!ÄYº™È@7£¨˜˜D"ˆîF«Ä7Ù’w ÕÝ'z¿„=2†„H€êÖøšr0´¦%ma|÷—q¾<š«ê;ÿ‚7T>¿½?E9Õè3¼;©l'%eT°]u*ÓS*køÂý± Èj ‰ÎH¢œ ¨×`7;÷’Ms‚‡DEÄ!aÈH"¼âÉ&+½"-‹ë!“¹¯/'öŠþZ±˜Ù³²÷È-8Æ?áñÿÝ€Qà!/9–dJ2’`øð(&FE7‘{²(R¨ÙL­@m§‚dÈHr¸>²²·N:©ÅážÅ?’m£Œlw§uüh/p±+ë:îoM72œoYþÛ7,9šLLrE’£¢ˆŠêNÇzO³ûpÁVóÔ¤Ž {Î4n{B?©‘¤pçzÖXEÊÅcáÃËé3'²³i3n¬–VÆûrýÇO’{ût çÂALb` T®A¥¤EN×JúgÊ¡ÐÉzÙ. Q±Â ߆ibÊÄUL"¹btImÆV&mÝ$V\J¯Ò „²òì¢Ä¨&…sîÁ~Óg@«Û™2½1cº|Ïo·4áª+YØ‹s ÙF”;Üí¸uT*IOÍæðo[È­ÑìÔóôdè)•¨¼k:wu Aå˜ùÉÛÏö:é 6L Q*/¡HB=ˆ×Y•N׿Ê-ר|4|Z^à4†ÍþëíPÓÃáºM ^Yµ+ÑN3Ùîˆ#ÙE”«%6^Ëoþ½äè Ž÷ÀûF˜&¦!.w¨Î%»Pöîf“«"ñ.{È@džþÿTMىæ†åA )´ñÆ Ù Ã͇;ü!ÕæÄVè;½ž4®8Òëw§Ó̯™U£&Þ‚&4©àerT3.øVú÷¬†ìÓ1¥Üú, \öR!ÀUG±±Qq8±ù 9·3H¨Ž(â’¢€ Ôª6—UNþ¸þÊK?¢Ú'ã˜`ß!Ãël#Ÿ£6=5î$zFCÓ"ˆKM!ÙeC$ö¡sÚSl΂:ö,ìªJÍ*m£i†u†~Œlîòõ¯p°Çu\Ù£&n —Ò©}QÉz­î[Èkƒ¾¥ÞGcè“XJ…ÛDÙëÑ´ÉtvïÛΑܶ$ÿax ­è÷™Zn6‡k§‘H®(b\œd,```£ÍC_2{¸Ž!d”ƒ_sçs:ŽêM*$Ø)Éed÷’¯˜üY.GßM#2' S‘dw4Qîtªû$û¨[l)ÑÆ*‘±•H—MêÔõ»î#£¶Ÿí?}É73ƒt~á&šFœš„(µ¸îƒï¹R—õÖ-œÃ¬q´«dûz3ô‹õlÆGT!êÏÃö›&BÄCld4µ›7eç†o™ösœŽþÜP·öº£¸ÿ­ ì^»ŠÝ‘4HL"96{lºÕx˜{ ¯æï¢càÙù-#ßus²€>ÙK¾es‚JûæMJ…~†m“FqèÒÇèìv”˜ “å_F¿é+2Jwûª“Hwm5\ÈÎuØŸÕƒô„#|7| ™­/ãò‹ë…I‡‘Óø1ÊÃ+öOåî—<Ý#Ô ÷îasdµR7Š·M ;qØ‹RFH¨B iA‚öX¢‹tŽ3‡o7^@¨vl˜ø%»ÍŽ‚’Œªù)ˆ©Gß»/åÒuP¼& ÎHŠy+ot†a »¢qöéMAp9¯¶lÇ/IW2rt Imæµ»QÀ@Bu8q¨ ØÃ/¿Ì€'¼ô}õ1®þ`*CÌu¼we?:ìlÍsŸUôrz[ua+<€O$¢Ú\!wS I2²øë†aºIrÇﮀڼ ý’mûºâtýýþYR"¨ÀŸŒãMLÅ…Ã&‡t‘P¥ðFQÝ,é³Atg\¨^MPUja6>)Õî õº‰©¨¨Š ›»?ª’ GÎ4†_7ú¯~É#•Á¿g¾å#@È)a–l´Ñ taÇæ ·êÀÐ jº…ËþUBÂ&)°*w ùöÌbtl{ÖÎbâLO¸¿ ý[¤;ÜŸ•-Ó4‘ŠæE†YœÚ$[ThÌgcÛœyãsÛ¾›O{åw>û| rþ1.*Úl%ÓÍ¿êµ<ÜûGF~¶™Å÷¶ÀÐt¤&÷2é‹©àÑ0„Œc¬_ú=kì®â¾V®Ú•{^lÃ0]%Zû…'_؃$…êF±¹°Ë»0ÎìL„&íBˆÐ¼Å0iÙ²%ñqñ¨ªJl…X‚zÓ48W‘8ô°!·ZµêDGGcüaH¼PHV¿ßß@ ‡dµë°ëø»‡¦i–V•˜˜X<ÕªÖ$"2¯×Gµj5‘eǃ¦Y:Ç:¬Ã:þá Ô44MC7 ,þû5Aƒ#Iº®¥wÙ‚Ž}¾â©‡C§ûW°xs*»K 2²,#IJhr¹o.³-cÍ1€ ,[ãÂYÁMtp>öMĘ1 mƒíÏÌ}Ì÷*S3ÓðØ ê„sgt^Å–ý9øÿ²Ÿø--‘J’T²§*ddÜ1ÕH©7ƒé«ò8¸ó‡=‰gòbˆŠMÄ-’¨{á&2{Ðø·¬eGB±B`æ®äóW¥âµ—P'ÒàÅß°„öo0áµ hšNvæV'$“ìˆ%¡Ê:v rØsìwC×Òs”Ý5SKä°´ñY?ÌŠE_1þÛ=Å O;"6šˆÓYpDzÙYÍ!c®¸ÉÍOc}N‘oüzÆ\4Š`÷vTIN"ù·Yê ¿ä9ƶ-«Ø_)•DC ;ìØœÍ¹ý‘ Øñå§¼óóŽ“{ Ÿ YAQ$„¤„=ãÂå¡(H’ÊÑ\¾ UHRKÚ\ô%?¯Ì»~_ÄÖ*Mhž‹šô-sÖìgë†òõPNö݈jwé#°èæåwò»­û€> òâè¦ýPξýÁ柛&T®LÚªùxCH~wmü•ݽÚPû´Þ‡Jlb<Õ"~a·ñ4o„L=+Ù²bGˆ$ÚíÆ¥€,• çn‚$‡Û»Éî߳㢶Ô=—:Æœµü¶ð;~<°“uëä˜?6žìŸÂm>¦î”ñ ª,;q é¤7žÃʃ@ÖÖÙMaREŠM±EmP@#:õ›ÉGßì éÅÃËøym:•ãÁ»wˤ®´Ž„èødRêÍeÍaàð.ÖæÀŸ˜‚ ¼}û ìèx5C7&¡È öè"æºÐ6-TŸqÇE_Óä«1ô +IýàV~›ó+ü¡ñØŽµÞ¬ŠDŸhw‘,#„Œ" ­i{Ñd~^k³­FUÜä²â³—~÷{¬×EÝÒ9¡Mª3’¨h7î¨H"¢È²“(‡ŠoË'ÜÚ}?ÇØ2ë-^y'‹îoÞMK7@Zd±ñàb6g…têÒÕ‘DÄFá™Ã½Ÿg7dÂÙ3ù%¾É÷Sþ ¬™W‡ª©A¶~;ž7¾ôÐsìí\uüXD’$U)»Ð¯H¥d[ÆáÆE¤;ŠH— EJ§N};Ž„elÏv¬e•éEuGç•jfBH(€ÍvM:}Îs€Ÿ¼[YŸW‡Zñ™ì_0‡ùûؼÞGA -û­bÎÒµõþßøyuII•·›èè<¾÷.Ž^©@Ûf¿Ëƒ·~Éîâ?¾y³DWlOãj¥îÎ?Ÿ 7ç’uq©%¿ÞÜ;•¿¹˜ë/ ÏÙÇšéó‹ =[ò9º7ÊÑ;ùäÞØØtW]u!I¶ÐØÏæŒ ÕutÑQdÅI”nPvjפÑò…¬· Y’ŠCp—Ù?f˜•«Q}Ó|±$€Ž,þž5w ­abœ@‹b˜1q$7³{Å öi!ýåŽÀ& $ÅITT4nw ‘Ù_3fvnw'›ÿW%¬d›¿V¼ÏÜýN¢ÜnÜî(\Òn–.Ï¢M©ôñ ]S‡È_ðÆw[É)lÄMŸ}Â=`ÏÁ ¦ÒÛ•KëíMËØÝ«-ƒ§¶9¦\ÿܪ×çL˜Uxw¯cåÎF4¹ µâôÏŠŒ,$”¢å6gnüˆ[{<ÀÜ‚r¤$!É2’¬œÐv¢ U¢R )¿½Äg[ÃÇŽ«8ؽ%MƒA´rŸ1‹þ3K_­Ü*èÖ †hw ¿/dƒ·x}x7$*&¦;ŽŠul]0ŸM°a9¿ÕK¢zb «u¥{U'ÎȲ×/akјH(Ø9įäÑg§±Ó([îÊUغt5»|þÐw }u&ûCM;40tüj‘u[Ó&^B%sÏFöÅ7¦…{9ëׯcoÑÀNC7©zÍ{¼¼—Û¦@J¯L¥Õo0}{DHþ¢#qD;Ëo¬”U\ÑÄD;‘¶rã›ÿŸín$I!(úgš&†nP½FuÒÒÓÐ4­ø½ç*çe28ÃÐ1Œ¿t*RPPÞ¥byÎXXXüsüÁÇòó­‚°°°øÿYT çÇ2Ÿœ½Fß²´~ô2oìCÆ öÈ–<üõF^&3߸ƒ§¿ Жm»š'†B›ÿ(ÿ»ï.¼@³›Þàúú ΟǚàZæ]ß™ñáïmvÿ4Þ˜tâ9À}lÙ±¹‹¦3wÖ‹ÄuÁ¸ÇGR宇üÌ. EŸÑGxi÷—·qõøÈ’Ìeƒ?åš—?¥ï•7ðæCÑçhµÛa؈V8·Í"Ïí rJh‘)ýâ›ÙþâDžú"ÓÖœ«FÖA‚œ­اáÀûãø¶ÐÇ/K–ÿkuðÎ;ïУG¿ýyŸÏGíÚµÿ•{ÏÍÎføˆ'hÔ¤ýoH”tª7hÈׯŽdZÐEÕ z0¨¾‹(.¢ÊÇï1æÆ9¢×`Ðc‘)PoÉò«o¢oÎ1zgž›Õâø¿0Ç÷.y…¡ÏLeWV…ÇÒsÔ<ž(/ÛSÇÐÑ]@•‡¶rgÿ ^ÂAíŽ7ðà³í©§´Æžù,Ï_‘Á½žxú<ö =§âØò}îxŸÃy>êÜ1‰÷‡¤¦¡ðká%ƒìÍ‹™9 •¯›HZñ]i¬þ`ª6å¦zÕKåïËã»ÇžÅsÛDÚ-JÝÁü2øp§7ä¶—&Põ4ÖUtõf\Øl Ï\”ÁST¢ëM#Ø2á ®p8ˆÜÿw÷Wj²6ÿ›üW}ŸÊÕa_ È$ÞüZƺóeFdd }!×?:‚þ*œ¤žâ‰ÎÿÌçnGœ«Ðu@îþêRËtáEÞDñTŽ|5jÏD‘1äFt©qâúSkM¬øä5^x}&™ÄÐùާé\/†héQ¾4žåªË;q0/Ô¯\üÒ"Þk¯•ñÞv®ë”Á¶ zœ ·VeÁä­%+ß)=yæþÜþÐFå=Ã=}ëóÊÌ8¶—9ãngä7‡X¾e÷?9‚–G¾æágÆ2w£¾Ï´;&ðÔ†(?>Â%ÏþÄ1¯Á€ŒW8vÃx–¹í3ÈÀIRõëxeRu *ýzíaô}däÂËG0bH‹3“‹úÔV¨Ðµª×ïÊUWïfx '•N× §o“fÄ&åçÇŸ¢×¸ðÆ’J—3Pþ÷}9ÌR¦y‚{:amxäóÛzy؈«4”צÔ?í÷¤ÆÆâŒ¿Ç"…îw;'îù‡ž|›ÛÁ r)ãžMC—J•¡1V¿ÈE/l'®ÃÃL~®àaÇâÙ|û±ÁeoõfïÄ/Y“_Ëî®ÃÏ#¾ÀÓ¥ ½{ÖýwCˆoËG¼0üjõÁ#]ýa´…= f±Ò·–•eð  V¨D¿‘ïpCÏŽ<Ð/ƒH¦Íå÷ðPÇи*ðûÇÜ7j¿îô1í‡q´½2ÏÞ;¾÷ ÍëhFCF|3 u/ëW,Díú\È{°jc22šðtŸ ž Ëö°Ö1ëf°ñèJ–¼ô _¾º§*7¾Ï îY;ßKº,™ g±²`3+»gð8`K®ËÕÿ{ˆ†;çp÷ã¡Vëq+ÞÛ‹*å ÞùscгsÉ-Ô˜1†¯-㇞cnÛ 2pPe(¯~QÌ, -H ¨\´_ñÈsãøy³‡Ï§'ã®÷yrp=*ØŠ¼$Â’¡ðCŸ-8ÆöÕ?°dÃ!–´@TÓ<öä}\›÷4O Ê`»7O¥GÍ8¦ ‡Ù6”d?ƒzgðàŒMæºqßЉL[=—_Vá—6„ú×—óø#÷Ð.ëCn{ê=Vfú˜>wíœÂS*áùöô{~šnÒ§íX®·€;—š#b¢ƒ$×éI“ÕëÕ5ƒ{¨Á Ç¡mÝãCòdO¿‡~Ï-!¨™ômóWŒ[Ä÷cûÐvdð0W<³| ýº LJßÂ\ü˜´åÑÏoçÚ"½]ù:Þøª9ÞŸ¶?R9‰¹$ïûG4ªlÿ|ÿ#³ãÚ.dŒTˆMëÉ#>Fs—AJ¯'ìŸý¿ç–g?cãþ?ôzƒÎOÌâ™Þ¢ÔþLL€?PÆXŠq%gÌøŸÉãGòó:áwÚ¨|²þ*ü(©xàá\?$ƒ÷q‘RûFÆ~Ô„œ™[ËÈ@™z+õE¦ ˜r ·6èÈà–¯a"hØ MÑÑP©Ø°+Ä\É€¾“©Ûª$W¤ÓÐaì{†;ÛdPH}®ó4 kmã3ýh¹á‚•¯àê´–ôÊxÕå¤n×4–Œbã´ÀÄÐ4‚š~|Øìºí¹xçk¬ÞÙŸúœØ/åÆ-¹­å×4z.%»‘«®ÈàC[<õ/¾‰›ÛÚþȶfšeE¥k–< LrvÌfˆ šr úì)Ì™Áe/u`Ó«_°=ª>}nhEÜ)tŸ’,…L¿å&f© y Ÿ»àÿLlÑ]éé&B jÕ‚Í›Kn|Á{ogw·úÅ;qN.g%oe™åË—“œœ‚,+†qN»z[XXXXXXœ¿š¦³gO&mÛ¶³ 伪{Qr„…Aذq+9¹y´mׂŠïÏAÿ>x<%cè”T"&>Êa|éUÒϹ]¯A-ÈáÇIMIý‡S$qâGÊo*Zú>ó³iÞ±Õ£J®‡âIIçþ5C»¤ý ¯ÀÈ‘/þkå“™™IZZÚ?úŽÑ£G3|øðåþûöíÉᅥÍVä1."ll0MÀ/È—e¯—^e=²³³HNN>~…è<#''EQˆŽŽ>«î+¿ ¿ßO|\üYu_~¿ŸœœœR²sv`û÷ï§R¥JgŒeîÎ$=íÏ2ÁþÓðìg†ÂÂB< gnSƒ‰Zôbãûô›™Ìø;“êþç~ô ..›Íƹ†‰Éž={H«œvŽÊôÿ?{÷î%99Y>³nïº?ŸŸ^îËÖþó¸ýoØùÝ3fs[çù¶Òâ_Ñ$¿o 9Š !!r~磿p¤rîë˜t~¥9¯¾ø;5{u§Ë•ÿ<„øßÑ`p€/o #ßåòTKŠOÏ܇齸_Ýדøõ¼-‡ÌÝ™$'§{ô(ǧÌ:îôëñއqôèq+é™™gõBÉßX€’,# óO&ï¢T= *W®Ì¾}û(,,´rÿZXXXXXXœÓ(ŠB\\¼5¦ù¯ qO¡‹¿ÿhHmÉÍÉæ Mæ¶xÜ 5IŒ,ÿž²¡„MÓD7t4McÚ´YV1þfÏþ‰‚11‘È¡„QáÃ,WGfÙËÇÕ£yü¹¥'-,Îb{~qhÞË<9vJ($¯ÑŽG¿@¢ÛfI„5.9K1ѵլYt?òw>ÿ;¿Ì@‡;«†-Îê¾Å—µ/žÂø¥H¥ã•÷òÐÕIçoQÊÄ.âÕaïðT«;ùìñÁT‹µŸö?stÎà ~a1>­!÷YJâ”quy‚§æõ£ßhóé‚M¶¶Ùéø2'Øn…€>‹1 ¯×G~A’qj;·#££©ëv[ƒ ‹ÿ¦ ùùùXY-þ 3•¿¾dQ¾ºeI& ý…ìMB„7Æ ô¿˜>åì)Žàòö4N)ú‰ò¿–}B€68š±´¸º/ 0 Ã,òú5BES ½Í0Ðu“ ¦³cçnV­Z{N‹ ßïÿ×¼!ä¥ûý?3`@/„(f¸†BÕÌ2Þ¿F¹ó"o`J] Õ°®káO—–óOq !Be`¦Q.üá¿|_†‰i˜g×}!ÐÃòrêzçÌ¢ëÆ dúìálªÇSêgÌ3]®&;ßÏ›ï/uÉÀ0tþi¯,IR(¬¡‡úËsPÇ™¦yÖÉNѽ³mÜ$…¸uÃ8ãû)g;†Ïn‡©éè§ú·Ì†ÜõC#Ðsnìiq~a‹«Áµc—qmé¾ìïÈüeAªËÕ/¼ÏÕÅ]Õ™iÃîžÏócÏ¢×Ñ­`­§ˆJûgg³0tý¼×³"­ü0â¸aEÑÔÿå¿gÖË ®ßëcýâ_Yç9€°¦aR­ZjvâXÁñ³CÇ8”†„`÷þ£çàŒ.2s×î¬?cñƒ(õ4ÊY6èåÿ‘“E)ô\’Báß„@Hrè¹$—\—äÐç…@×! òÃw?ž•àsyßϧ}³&ØTE’Bue˜†> L³èÑ(~¤ø¹z^œÇ/d 612wg…Ï ¿V܂Ο…‘p¢Û£†y¶oAÁ¶}gå}íÚuèìÔ‡{²ÏB“ÈÜwôm áúÞ¶ÿœmß3Ÿ³*íl•!Iì>Kïkß&ÂV† IDATÞ¬ó9«……………’,(èù(ÇþüÁÔÏMÛâÆ,íþ333ËìÏ·û}´Z¹šÖ·X9|-,,,,,,,,,¯ÿbø|e_;rïý¯à4C~“ÿí`8ì“Ň(}M–CÆQYIBÈrèš,#¡(U =WÕ’ÃfCØl ª²Œ)Ë`ùÌŸ,< ÌûþgF6k‰$I(†ºŽ`ƒ¡GMƒ`0t>Ð4L]½¦ë¡É¼a„ž›fhSqxS„i'p.½Q°æ–çEfß¿2£BBø¼PPpNþÖÿžp0X¼Deè:zNcI¶………………………Å_ÀÔuÌC!¶ÿtf Ò9„ öôÅ`¤§o‘á·Èè[Æøk³•}Uìöâs3lF’0€åÛ·[BvØŸ›Ëžýû©ávcš&’®#‚AÀïG”2 –œk" ~ÃÆ`4 Ó0Eß°Ø,2ü|‹ŒÀ–ØÂÂÂÂÂÂÂÂÂÂÂÂâ,ÆÊôlaaaaaaaaaaq~s²ðÇ’tüûŠŽòçåðçͰaÙtÓ$×çc^žU槉u`H¥3û (kÄ"%*là/SG¥êZm°°°°°°°°°°°°°°8DZf·:súcc°(wM…¥ªLIbë‘#VYžF¶ge¡`–*ó“{KÕ£(UWÇqæD¶°°°°°°°°°°°°°(BùÏÿB!ÀfE)›³ÉÂÂÂÂÂÂÂÂÂâ|GˆP¨Û@ lH[E ¡…øo¡Kçú-}^d<, û,I¡çEçª ]<ß°ÙB‡ª†ŽphSQ0$ ]V8`ÉÝidß±cèªÊߤ똥ò4çp–$LYɹ¦!¥80á<Àåç.û\Ô.¬ÐH‘ï¹…UV–,YXXXXXXüg"4g Îɵ‘ÿ´XDF¢tê UꃴÖÂÂÂÂÂâ´ô±ǃ¢*¨ªjˆ…Ź4h†°Ù$††Îïk„rüê:¦a`êFñs 3ôZ8ϯY”ÿד6Á4 Š›@é ¿µ¹Ø¢XL ˆŽŠþoëËÓ4~<–ŒÈÈÈ{Þ[ Ðt—ÓiÉÓŸpìX>ÑÑQVAXXXXXXXœ9d¶ÿŽöó\ÌÂÂsîöÿÓ`œNäŒÓ;Ö.m ‹Ó$ yy ÚPœNLk!ÜÂâ?7Ž>/%¢ø\”9"jX€)…›„º†~]$i¦ô£ù<ìÈ:j Øi$+¿=¥†3]±#dTœØ4L̰]à Ûz‹Œ»á÷„Ï‹¯…¿PÎÎkuu'Ò—¦?ç(fB<†a ÉŸýG²pÅV@+#Ùq]h^/A-ˆmÉÓŸàÏÎÂŒO°æ!gt‘@D_²Ð2Ÿ¥³1øX` ‹Ó…Dh%Ü÷±¡UsÙ…/^¿^¼N.J|¯þ·R*šB%"BEózè§ó7È8"eCº¿OÀD l*6UôøÐa¯H'N»Bù%K3èÅSê7#Tœväâ7hø<^‚¦8Å@u ŽHºÇCð c„$£ÚHÁB¼A!LLIÅ©Jš†_7þF€= Ùfî˜ø‹Êð´Œí@¨62`ê|>?º)ʼɔD9ÞÂrr#l\6ðzÊÕIèw»œvÐüøüÚ‰í=ŠƒHG‘äñ‘\.ìåÃÐðû}t¦‰dÀ%ëxýô¢E]SÆUVƒÞ||š„¤¨8œÁÂÙ1M ÕéÀ¡”ü1=èÅÐOè(„Šã’EYÅé´·3SâóùÊÕñ_øņÓ!8®žÁDÆî²#ë“Ö³(÷¬D „0‹®"Â!(E‰ÖCÒ#˜&ˆG©PE&ð[]Èi$ô£(2ª"! Šë¢èjâÓi Ø–ãÀåv |^¼^ɽ‡sw·´ÐoÆD¬áã‡?fYÀ®ÛI¬Ù!w ¢Š‘ † !ofòˆù$Ýs#nƒ3á"„„?g7‹æ}Aa£»éS[Æo(DÛÌçË÷—Þ˜Ž5cê§RwÙ<Æöys˜³ÒN·ÛQKõ¡ýãuLd‡ì ?2íãÏù5G¥~«¹´g{’Uš ¦)°EEbßñ¼³N7_OÛŠrÉ7r—}ÅÈùW»œ:vè¾LœQ¸ò×ñé„ȯՅ~mj-•3¬ÊN"÷Náöç¢ §»;·>Ù’ÝcoeÒÚ\N›]Ÿ—‡­F;.4ˆ–©2ºIî’±<ŸY“¡ÝZ“­ Ù¶ƒ¯|ŸÇ  ;c¸èÞçé‘p”ý;—±pÚ!êÝ:ˆ:6?š!ascÝ·ŸðÝ+8`‚æóRÐC\Ñ6hÕ(g6 úVóåCŸðkЦÛI®Õ™!Ã~J²(RH“iÑ:gÆ)I äÙÛ~fêøïØhhAƒêí2¸o/Òìù¿vÏ ptÝLÆ~™Cço ‰ÃWb¸–ÁLmG«·§{§úTÊÅ_»Ý¿r)T'ŠÌŸg±:+ȾýûÎJž››‹Ûí>îz^^yyy¬Y³†™3gòÖ[oU÷“Í÷?üDl\ê·lF%û_Î,!)»˜5êb†^F3·ù矓œÁm|óò4èÎÅÝ#˜ÿÜLÌ^ýhU=›(ù=¸ž/\FÚ½7rADít´aâ;ö“îŸÄ ]ÃÐu쉵é2ø&.®eÃWFÉJØ"ñÓËsÐ:õ¦uíxlÂ8¡Ðú w0cÔ‹Ì<`#©ö ºîšÅ¹lS¿üŽ5¹ MûÝÊ¥›«úÐͰžðóëë3i“SqÐûîWé•R€Ç¿¹ObÊÎXj7ëÏw´": áðmgÆÄ™l‰mÁ îM‰“èrQ¹ xö™oØ}øÁÔ>N‚©fý¼ìÊœ®T§Íˆm˳©Úû*.<ˆ~ÝÛS'^&xÜ® E*`çâl?ì y¾žè;µMkÉɸ†kûu$5{ï~´„œc9R‰=®çæ®UX÷õlfo؃O‘Bß#+H«°¹Zoú_2KªåóÚ“Ÿ³M2ØóóÇ|Xx!Cû]€|d:—î§píTž{eŸÌþc[’oJI%ÒØÈGOÉÑäÖ\4ð2.íZwÉžtÿN¾xâZ†ÍÞ„ñËzè ’,!ÙË‘£qÝ®ãæn5Ø:ã{f¬Úî B^¾ž¥ï3js<½û^Jûè9<6y vI&×^…+.¿ŒKûv¥–oo¾õ¥¼ª¨vMë–³fú~2qÔlÙ‘):A_]â²&ðæKØÓ¥ŠQÔ ©k8jÑ4±!ÇvÄ,#Ð ƒ¶íÒˆ0Ë·„MM¢~ëötÉ"Ñy„?ýžu}êÑÔ , ÀÔðûüt3ä­äráCQ÷{ñ› jÈà&©8vä ‡‚Øœ.l€æóá ê ì.6I@PCW%tŸ ¦cHv"\Eau5¼ù>ôð“#"IŒ©„¼h-{W!É<̪U:n½:5««hš†ÝåD ÿ=¿ÇKP—pDÙAE1ð"\ØB1<ñ{M*¤7$¥ø ˜26‡{8t±ôá 1 G”#h`Wòðà ¡0ªNaa3ÂUwT R£v¤DV¤¢«VN`ó¦d·©Jª¢lÔèv ·Fæ‡i‡PJÛá }ë,f;šÒÄ–_Êægbqu:piõªürh6ùáëeäíKù’šLîÖ‰D¿†ák@–W&>¦ •l…l‡É\“GÓhaóâ ꘒÂõóÙ•Á€?±lëÚTÇîT0ÈR,Õ2:б’NaŽÎ²·g².·;Me Ŧ„â–¾'I5ѲCG*+A‚ZC7OlÃ2v[2 Z·§«ûñöl><—õ½ëÒädÑæŠ (Bªî÷à3 ²…•vFÉ¢Àî,‘ Ï‡ï8Y ¢«rX ŒpXÕÉbè7¨¸+V§YÛÖ´ŽLåè–÷X¹a ‡»Ö$]–±;œ(E²Xè§ 9Pˆ/lå-’\‹V•Tü…ùh’§36ÜàõFS£E‹Ph¯]¨¸"Å =Pˆ/h oÚØlrø5/^C`·©(BÃ0(Šö¬Ø(’ަ‡<ŠMIÅ.xb*Q=Z@²znOÁÒÒÒxúé§©_¿>W\qÅYqON¹¸Ê•‰15LCARlŠŠò¬ñûƒ'±ñ d¡ Ë6œ.̼{&’lÃn—z½ ÕaC:~›ZÉHš@RUD8ú’ WX¶¦‚,«Håþ²‰„jwà÷sEaì5CÆaljHÖÌ —B¿^æ~AÆ‘BÃ6íéj³º®¡›ÃÖ±&AÂé dYÅé"B€ôPè/Ù„`J*Κmè‘L²3—XrØ=y [õ[©ÛÔMõˆxâœÙºàoÝϱ†ÉÄK:ZJSºW«HE§ ÍüÌüüVîm†41õûÍ¢S«C¨¹;ø|Ê rŸhÍ%ѱ¤~ò3‡ÂE"«2g¿Í„–Ü{ù êÆK {)ô–¤T”2.½øÜ],[µ!|Óº3ŽôÆí¨•@¼3™]ËÞe÷–=äfT§šË@ùü2ã[’›¿E»U’62yÄ<Ö]rUjµ$ÝåD…¤GÈ|s+Y¢3)v “ Þ ‚cÿB䛨í‰ÄJ&ZÀFÍCC}Ë×_" kÜgaaaaaaaaaaqvcy[XXXXXXœt@J¦³èw#dØZ»ˆ©ÍzÐÁ¡a¢‘·þC®ïØ‘Î݆pÿK‹)Œò³nÊg¼}ï=\?ôqÞ^²…SFrã€téÔž'g"¨nâÝ«â›=: #gÍâîÝèÞ³ƒ†ÞÁìÃQDE²cñ4>¹ïY^=‚:rͨÏYwÔIô9Ü?j wÃ8ÁŠ­¦ ‚R5:·£‰ú‹v©('°Ñ˜†Ž¦ÐÑ0LC×ЂA´¹·†Ã×jH¸*Äã.È£À”Èß4“—nkOçN]érßÛ,ÚíÁ)+¸¢$V¿Ëûö [×N¼° °8Ì®C[Î ½û1ô‹¨ù;™ô@;:vîN×çƒÕyD9\D){øîÅ{èß®=7|ðo\ÿ$SWÆk:‰ ,ä±}èÝ»7}.™Èö¨°Î41lQÄ¥U¤rðGVþ{gfeµöÿÏzbçÝŒ´€( Ò13”„” Š‚GLTìö`€‚H)%¨”’!Ò-!C1½ó‰õûcÌ è9Çóž÷¼¿ý½.®‹yöÞëYqß÷Z÷ºë¸Švþ(Û¥B¨ZMUz€/_z˜îíSHJ~‡Ué!Ï^&ÝûÇ=K§.£Ùªžeá ö´iß^÷?Æ¢i›çðé SØiÅë8˪Ï_¡w›¶¤$'ñòìßÈ0cðÄá«G†±|áXºwïJÇ.ÝxýçtœXä¬Ë}_Žïb´ª”HÍ…Û‹Wâ/^rKQL·‘R"-…„*õhX8*À´Î³vvm‡)m»DejW­B ¯Š]T¦maßPŸ&G'1jIN§ ÍQŒâ±6–i`&¦ecKË´1L )4‡=ÏP¦LumMxÛAÒ|A.f•R ;èâÈnÖ%w¤­×$|5^“Esàt 4]CùƒØEI„-T¼ÅŠ—“‰…ì=‹x`ë->7‘õ'¸T O¬`ËèG¸³ëm´o›Â«C—¢‹…3¼azÐÎ1ô¬ýL{¾%IÉíiû·7ùê·ìÕ‡ví:0j} ¤§ЇrµpCYO~”³”HÝǃێ쾒•©Xž §ñÌÛ3Ù|n7¿o+KÄl3Œ¨V‡²w³?MÁít 8h!?GöoâX³›©Ÿ½—ù_~Æð…ûƒß~ã¦Í#ópÉ}L;Y;†~Äĉ“x¸y)<ºŸó‡O‘e[÷ðÇ$<:™‰c>`p§²,|ác6ݨÁ#,Ýò;¾š°àã”9¸“e›–™>z†ÌÐÕ`æAªŽÓ‘ƒß/þõ”BÃåUÐÂ~nXÅoµn¡n¬‰3±%½>“9óGð+«~'Íi³qôãLÍiÁ3ïŒfì¸ ÜßÀ}©·B9Çâ—_Á8Ž¿ßVÓ[‘Nƒg0{Îh^h^œ´yËÙ«f±zÜ(6dÖæ‰qßòB…Ó¬8°‹c>н»ßoU†Žaâ¤IŒíwIóÓеHÔšÄI±ÒÕ©ZÛűSa2îEIš×ãÔŽ±ðíoÉ©}Ÿ6ù¯ÄóãšSÃ2Ž|Ï:­£Gö&qýl>+;„YSÆóÞCI*ŸKnv&çNfb¹rØ:k"+öÄqß_1cìèK¿æÛ_ö“ƒ$pògÞ^[Œ·Þÿ˜±ýjñÃð9l×dÖIÉÀR ¦g¤:Ö<6¿¿€“¶ Fƒˆ±ók¸J˺<ª”X;ç3:® bÁ("_²´-l¬ˆq£Èb®–Þ”g¾Gå™=iÓ±Óxñêòê6=EÅ‘½—gKR¾DIŠÕjB#s;ûÎ0,@AQ÷ñé}mh“һ߼ún'<¶q•z¤ No6«§¾À]íZÒ´ñ3ÌÞ{–zu3°@Å£ †rÙ¿a5»¯oHW•Öôcs §Ÿr‚í«÷qÎi³~Ô@¦’yîÝO3n}ë; ðC‹_}ùØXÞn_#6‘Û‡Ì`ö·£y¾Q,§¬d¿šÉªÑ#Ùè«Ï ñßò|™T~:¸‹Ôhž]Œ{`>U_ÏĉùôóLZx]Sò{듺w&O¥$ÑêÉ9ˆæ÷0¤{=âõÃÌ}þ›úñÞ´¹Ì{ÉÃw+‚4kTékv äÕ€Þ¹æKj4O&.ÁÙãç eœb×®½œH~—o¦Oæåþ·S3.‡ŒÓg¹a Å¦òíóïròú~¼6b,ãߺ¯¿ÉÒÓ6?gޝbʱºŒþÖÓYúÕ N;$¹çÓ8™îG^¬ým¹©Yµ<ûÏ_ #צiœØ¿†øÊ•ñ^Ä2Âÿ+$öÝwßMbb"‰‰‰ÔªU‹6mÚú×´iSq¹\Ìœ9“¬¬¬+ÚèÑ£üåDl*ÄJla“yd3¿n>H‰V2è‰Ç¸£UJ:¢:(b?ÓffÒçÿóÊ=׳sÄ8ÖäêˆpçO¦U±ðg¤“~.S±ÈN;KzVëשèÞ=Œ¿ÿ Ì^Ã5j$ÝÒ–°H¨è9Ñácÿ¯³X°ð ÿ>‹㟥ÊU|óí:ÒP1ÓV3ìW…¿ }Ÿ©ƒš°~Ì<6YVá ‹œœÕ¼Ú¥ I­[Ò{à+¬J·ÙõÝb¶©Î ¯óÝÈŸ|ˆ¦Ï¾Å¸w»qöã‘,:- Ë iƒ*É<±“Í?­&±kgʘ!,t¯Åι39ŸP‚×WÃM~t.ÒŽ8°¸³Y6ì#JÞU„mÕ¢rE ËMA•&¦ ©©.òæCÄô+¬É(Ã3¯¾ÇƒnåÛ×&³Ù6 vi›*C/ ì^›Ý‹¾!Íé¡ú µpÒØw4ì°ŸP¨‰•”ˆÁVÓÐ10MI(wŸõmBã^O3ÛÑ—‰O6„œlΟ9ɱtÏù-ÌË4 XE*èò’3–´,L;šú9Š(¢ˆ"Š(¢ˆ"Š(¢øï@4tQDEQDñ—Á6%‰­Ú`~°…3=Û[™š=ØV.橬Mý™9¬a¤$X¼.]ž¾‘º¢$U«Uä†Êá4ÊRië»Lö•`ÄS)ï±°(ª‚NfWfkèX†2v ?¢”3©üžµƒMCîeš*V»kjç’`ZH[â)Qš²åªr`ûzŽVWPÃ¥)]J@ÎyNfïåÛ±ß3k’-$Ø´Ïv.ƒ5hÑ¢.åÊ)²Ýx|ÀÈ[¿áv Æ9N£ ¨*ªï'RÝx®k@ý%(){ÒµÕ~ð]ÀŠÅ´®£Ïí­¨\¡ Î h÷á ¦iÔM¼f1ƒ‚+§8½dmú‚ kŽQ­ýPšT°1? MûKgä¡—á4£ Ý!P¯jí-ÒÖˆ-S¾Ìàö³yõñn0j}kø0‹¢U'{×2Ë—¦Q•JxqÓ¡“{ÜNëÊÉx]iWåÞáÃèZÆÂwð;>ìþÆÔ—¨Yd·lBníù,îiI9aãŒõ¢[öUŒÐ6ðÞìÔ‚w j÷fè„¶Ä…lÜáãÌ4Š1‹~HªÛ-}+?¯¬Dó—n¥Zõr8¥äb¨²–@\“±¼Ù&!AŸcçÒá<=aà冎!ÒOsÀªM½iP£q×w!åóSè(¨gRÙ“¹ƒ-ƒïfš"¶è–ŒÖ±!SËpP¾jWî~§ iÓqxç)|mkŸyž9ûøvôÏÌúÌ¡Åf×ñÂmhýþ¯l{¼!7ZÛY·ÿ~xÆ}(¯`¯ËEL •ƒóðs£ÜUWÃ& „ˆÐç…£ì>Q‡zU¡råRx•ûéݬ ›O@û2]Ô¢Wç&”,$Üø&ê®ßÇáÐm´êù ÐÐByΦZ«6׿Œ:~Œ Ùì=Ñ€†·Å¢+VtÎnY„«XÈÌú¯’íS=§¥¥QºtéKÏN'<ðãÇÿõÍãrQ¬RblÌ\ΟÈ!¬Ô¤N½²$„LL["my‡ ‰”‰ôè׉¥˜îtj8˜ßkTV@)PðZIõ,‰d¸¬Î³zr?Û‹ÝÅÀÛ*PÞ¥P¢gOZ~¹$_.ÊåüqƒpñÆ4jZ‚’fÚµZËÒ¬c¤ç–Æ0ËÓµS jT©H™:í¹í½É;iskb~œ±” 1î[4ámR¼~LÕE¼ë kÎîçû×ñͪ)8ÂA‚×÷¡I‹˜áòtëÛ•›«W¢¸£?¤´aýqI§râRt±PTŒôc,™>‚55ßeÊM’PH¢ºc¸°j£¶´îÑ’KÚ…íѨ./;?éÌßãžã‡$'F¶‰iž$íœ@-vqšäUSp›–A½z7S¹bEJVÀCóîã—MýhØDýCɬ:½d¬™À˜4èÒŸ[JñÅÝÁä÷UâKíç7yœ3i6@bKî®NŸ¿¥g ƒ=KgÑï™#¼;ª+}®F/l?ƒ2Å«sk½ª¬·Au8Ñ%²1GEQDEQDEQü— jŽ"Š(¢ˆ"Š(þ:Ø&2±%IÖûlÚ +ì6 ­ha`:%JÝËKóúS=+€)tÜqYlØk£ª*Š4 :ðä„ä¬ù˜'z½MÕ‡gðjÏ K, [¸qè;Bsârd™‘kbMÓph š*¶­ºIp«‘Ú£ò‘;–IðÄ.6©Âã%ml럟‰À©Õç™iÑ1>ˆ%4tS¢ZÇXöõì7»óÕ†áœ=ž=žp$"ÉràÌ«1Šm#QˆÄ½î"˜S›i>bœ¿?‹ƒ¿.äëŸoà³õo¢|7Õû„MK8q:tT,P\¸À ¥ðÊÜÇi¤)€@hükKJ‰í*N¹2å)·c!‹¹‰øbu¨oCV_vî~}([TÁ¶ª‹X÷oH©¢k R œ5îgÒü®lÿjÍGºxjä$^AbÛ[žüÇGÏÑÔÄDb›";¯¢ ¤#&RõúòxŸ]¼±bÕ¹ó šQq8O²vÅ6ÎÝÈw“?F m‰ÁÖ¾Íi+"ßóÄ&P\âªs+ J½È¾ã׫W#0æò—@15̵ý\zC†LN‡¸‚´x„%Óâ¨r364#uäX~÷„±-ƒ°¡ãrFOÚy„wÈ©Ãá´\bœ ~_{W.bÎê›ø|ÃÛÈùß°æˆÿRÍiÝ¡¡`êÂ%ÔˆÙ  ·áÕ…Op«—Ñb¾¹GUu\¥o¢s×}Lݰ‡{šÐ½R_v]î{ûe:6NÄmXHMÇítòÀÃ3øpÞi^à ¶JUar:2Lµ87õ~—/nYÇ´OÛÑÕ݇7^ï™WC;¯64Nt=½¶âÁã2‰^J*n§‰TUTË–*·Uʈ\°0¬*4n¾‘ŧÓ)›¹So¦SCQ¾ßæ±<܈Þùÿ/ñ¯¿þ:ãÆ+ô¬AƒÿÑ>¹t7Êy°M ”ˆ±¡£ òä‹üy­áö8P°°dg¬KÑÂRŠühUâjM –…©{q9@J‰êòà¾R!-ª Kê8œEØØ$*.=’òÞV5È""—(:Þøb‘úêæy‚¹eiÚõî’D‰Ü¶ê"®Øv›*n¯ T/pá´‘{±9Û- G±¸üÛÌìW—P( ºkï|F¯ÉææÎOpçÍ¥ Ébáð±àqÏÂ’ç’Є¥–§BMi+á?›K¶§<¥‹5–È3§Cg5½åK‹k%Í…up ŸýrŠíŸæ&¥1L[uQ,NE¥<k š@ 8}’£\GËòi¨¸bð$¸¨tcuj,ß˱ÌÞ$Æ çY¶¥bÉÌéL‘÷rûrÝòP³*$DOzQDEQDEQDÅ þÿH-ÄvˆHT ”Ë•MQij¿º{WO3y­Ïþ¥w*ÿl»âÊ>‰üùûKæBQòÿý[&þbÿÝk[tûW[Ó‚kò¯÷Kü kü¯ñÚ_÷Îe} ð´(@O…Ú¾Hc¢úEô¥¨ïóç¾W®Åñæ•ý-Ä8ÁW¡»è÷—÷SÙ¯?–â_^Ó‚íüòPü…òêÓ—¿¶æø_kÁµúG×ÍÆ²*ѺÂ'ÏB¦´¤²´‘ª‚£B1bÒ—±xu„/n·ýò¢ŒBAUlЧ¼À˜'[âË:KØÈKÝ,%T¨He{!¿nÒq(2÷­âÇM·Ñ¸n¸ð…öEh.âŽÍåáç?ã§#ØEB (_Ær&¼4—›Þ~’ì@ÄpŠ@EDæø¢_t§ —ˉCW”œ,ÎXr+qq’Ïp:ÝÆ*y3-ëo燕¿“•k#TåRÔÔ¥ý‹#y>{O.ÈăInFǪW¡ºÌáìуì;© ”*Cÿv¬ÝÁqŸNî/‹Xzá,¹R"Ë%R]ûY‹Ïáv{p{ܸô‚£‘Hé¢LÅòع›Y¸b¥oªC‚ab+Kbün~ýe/Y¹:^¯·£BEÕPŠFŒànÅÙyøª¢€´±c(Uü é‡v“šæÀáÿ…EK+S¶\â]EG† i’½â=Ú?·”\#2÷І3c —®ãtñ.<Ö±JÄè*tܱǘõðóLüé¹RCUD!¾Wµf¼òÓOüôãbfML‡bÍydøs´HHcÛ‚‰Œxn:¿[nt”ÿDV¿p§T e÷|s2hËÓü¶n?µ+WÀ.*¿¬ª¢ÞÅÊì tx{ ߯ü™~ø‘•kð|Ó­lÛÈ3GøLAbžØÊúCµI¬`"í- šÅ);ˆ¯reì;p–3ZlÕ`Ë~ÞG®Ï΋¾Ðˆ .^øˆÁYƒ´0ar²Îr¼zUªÙY¤9ÌþS ¢TY*æ¬eëÚ]œèä¬\È’ôsZ¬P™êÚ÷ÌúîO>-E¶ñ q}n:{üÄ‘Øë¨¿“U+÷‘íÏ£E]CÚP¹u ÖO3™½2‘¾wUÄ4ìÔ™›˜IôôÚW·8ž–‰¢(‘´Þ¥*‘è^ËŽ­Ù„ 'Žsßòå¶4¾™KQ£ù)oEÁá?Î/ßLäƒy{1]ú¥u±-‹â5ká:³—uêÕ-‰Ã©£_Áœƒétke+_÷_»åŒ?ž;vzæt:yå•Wþc}rÇ—¤¼W"H=†beØ=ì?F×óøCæÉ‚¢êéŠý¬Ýš†'w²åh;ßq²ˆ/{Óçs§Ùô{4­hjÛ®T…ê{Ç1{½PÇ¿™ÆbµÀ÷%H·—ø2a¬SëÙ—ªã0¶²j¹á¬A¹Xùf–€-±½ñ”(•Éñ]Ø}â㼸:*šv5[Ž2ô´µü´ý6š5*ýkø8³z"ïêȸG`šTîs˜úÝ´j]¸·U%l›Â2FuâÞ6’>‹2iH.‡ BÅá¨H[LøvjÐÇÓÉiu3µ-KQ@\”˦]—¦m³˜¿f |6Îís³­å*>Ÿ#"?(BDêk_ØÆ¬%[ñU¸‡ÚVŽ8ÂènbÌáþg'°ü¨—æm|¾`¶œ^û»º´¢©´‘Š‚PT.çæ÷úÍiÄN¾û>ÏM=Å-OãëŸV°zÝ$­Û”»¿Î}M+ãUeþyëbDøŸ9£ýésø¿YW?Ó]~FWÑ_òu+qõ±Šk·ñ‡zT^ûÿ¶Ùú­Ëµt?ñ'×õ`~®Ð/þ'îÄ|åhÜQDEQDEÿÇðÞ|úôižò.oÍÚ…qñòð²‹á˜=“èöÑr²åVFµyŒ™Ç¬Ku0{9ïµ{Žr=—¢þºÙWÐsñó7£º0•WÁë wL*³}Ï—$[ªÑAWÃsˆ)}žfÊú³å?0(ÕçìFO™ÊÏãv(h®ŽÎÈíoLãð…ð¿  h¸bΰìÇ鑜LJJ )ÉÉô·™¬àµSmI)±®šöðò×8qoMÛák°ÄF>L~Œ¹g5´¿X‹ÂÂwáGÞëø"?û<8T@Õp¥ïä˯>cäÊ3xj59Âô¾C˜üË,Ïï|Úá1f !‰ŒíJ6¦8ð†62¼ïÓŒ_yŸTþG”$a…8÷ótÿlÏe´üÏ@þÂ{m³4ÛþðžæÂ³s<G¬"`Ÿaî3íHIN¡m»öŒÙîÀ¡KrÓÖ2¢O2)É=xôÕÅœŠq¡*:îskùðÉG2y-i¶EDhƳw½»ÝFJr2)gpBr¥£ˆj“~pïÜ‘LJò<ÿñJÎyݸ=»g½ÉC’IINfð—;9R‹¼±B™ü`ä{·ßÙÙ‡cˆ gŸ'"ïNN¦ßÛÓø-Ã^DT˜‚º}4)É™sR BÈØÆè{’IIîÊCƒç‘ã*òòRª¼G¿¡_×þŒZ{† TªŽ¶m4mòx²}‡NLØéÂqµ%VÄœû…·ÿö/|µ‰ó²À<þ>‘NÉ3ýPèOð«‚îÉ`ýäQŒ¶„ÓÞ –¼ø:ãfmç¼ÔÀþƒHÎ+TÅiŸàÇOÞæµa 9j»ÐþÇwÀ‚ŸÿD›ï’’ÜžÞ¯-âàŽ/Ôç=6JÉÑŸ§òáSÙizþ1BÎ]É{mžå¿JÆþy¼ßgkC^t!±lù‡ë'm‹òM“¨§Ô#¥Y…Èol„²íxâݶ¾Ø‰ÆÍ“H¹ó)>Z•FœÇ1°j®Ó?ñÒÀ^$µhB¿¤$WÁëÖò ¢DS†Ly˜mO5¥YRWsš^Ÿ¤¶ÄT”‚ÎJÄpËU/i4m/£ïI¢UR{úüm-¾]Æ€Z>‚¦@w…9²{OwhL‹¤dº Àº“6U ‰¤Ž½Ú}@AÑ.ãuÛÂ(U‹fõKž>æÝ?fm†M™²ÊñÒîa´Þö9uiCrR2ï®ðaÉÈ{4‡“–OŽ¡ú7=éôþvJ$µ¦áÆ—Hiû$c·T¯ _inëw1çfÒ¿CclQ©£•"^˜„7ñÌŒçñ~ñ)mRHiÓŽÛÇý†ÛQ ­¨mã*YŠjµ’iV®&Õ«ÆaZa‚þÊô~k0·¦Ëc=ÚÐ:)™”ד°Qµ‹çI`Õ0R’’iÛ¥¯lÈ}J2AQÁ£ùý£IÙݼڭ1ÛÃßývÚ7¬Š‡ˆÁûÒ\æY‰,"ŠR`VUƒÔ£{غì;Ö}þ í›¶")9™G?YÊa¿ MUqzý¬ví›?ÉaSŽM™ÒÊ¡ÝÛÃh¹i };GhqتR*UEs¹iùÄ'\7«'·¸‹ÒI-¨·îRÚ=Ãç¿…©V‚¾2tp/®“Óy¨}cÞ^œ8LBú žñ®ÉHNI!¥m{ºM؉ǩ8G]4RØF%š´¯Á¹³kùîGƒ;>JôY<Ò=ßXJv Œ¬Ð‚6êbWmMsicEî”Q5gàë&>ERËætxx©V}šÕŒ‰Ô'ÁÜê<4v(ÎÅ/rWÇV´¾s>·Ž‚&ª’ÇëJžÒY¿Èú^î)/ñ¹_ƒÚÚA”*KYÍ…CÍfç¶}ˆ [X2{69Y9ÿÕúUjê•ùñþsq‘¥ÊVÄcI$i©”¨Õ€›«Ç°uâ» }ñ>]¸Œcùø³¬?™/T¥6•S?¡k^ô{s! Þ~œÂ&ÅËÝDƒZ.F÷kA‹!£X}6žF:˜€PÕ|ù¡*(Â&jÈs#úðã›·‘’Ò†‘ŽôÔÀù'53K仹½ ŒìݘÆÉϳ³ê­téz+Å1@Qóež(šRÄ>#PÕ‚º¡,F“ÞÒýæ F?Ø–f-“HybOä »P/{6÷÷jC³žRîÍA4U.:]HBÁ£,þz)Y¿ £K“–´NNæžÁ/óùª#ýeßô(íšGdí Ik9ˆìÙºã<ógÿ€º"ý;´#%%…víoã³}Å©ßóo´]þ7ß>„­ÞŒè[¿Lap»^¼:g óç£_á(ÕÍ‹±+Ü+™Æ®áž OÓâÒASb÷3¹_{zÞ?‚²VðZ÷n š´Ž}gö³çÇE¬óÄ¥½àñq+8áw¢+R²çË<—ý ]۵枟[3óÙÆý˜ò`2)II´êø¯ªÁ;¯¤àõ‡‘äÍ·ÈsþBìGª†ÃëgåÛ½ißü)æÛ{ÿ`;Ú<ù-g5¥ˆKÝ•ËÞ¥#é_@·}äã%Êq¢þÏ ¶PÑwŽ¥]ò#ÌLµ/щ çr|þë´íñk^.mÿªOú>ü(O]ÁiÛÛdÝèGéÝ!¢¼¶ä=o¦¬s/»äóʳà­Ä\LY™ßU„àøæEL~Œ”)oЕKØ¢èñ  »Î1û‰a(O £{•ß‘ôÕfŒ¥gë2*º«Í{ág›Üó+óà nùbXj˜CË—°z‡ÆPG÷cJ@Ãå=À¤;Ç~h0}ÛgòYòXŠ2‚»jnçý¤)Ô˜5‘;K‡1쫱±¼ì/Í©i`Y‘>^9žÂ¿»üO® §kÐ7ÿŸ™/M¥ò»£hëôõZ´xù¼zM8ø+£º-ä¦o>¥KBþŒ†Šâ;žt¾4 óá7èvᾫ܋ޕ¡_?¤íKðÑýñMz‘Ïâ^fNS§Lbgåy*no/YKèhI·ëF‡ûZSQ823øï¸áïø·~1ti[…¦J( fúa–Ìü”•‰/3¡e*#¾XŒÿ†¿ñêõ§X‘GÅÚ7Pãì,î鿉”§gí28 æì”sóB¾¯~/}JžgÏÜ‘<=·ïÎx€Šg3)]±<ê¹uŒxm.gÞΠ‡šçtw6K†ôeD™–´Ÿ˜ë¦¡W‰ÊeëWÏ3Üñ"ßÝã`ÎÔ‘|ï}˜‰Ô$7`P¬Cl5”÷3=T_žE­7^æŽFåñ(’“§Ó¸.±"BÚä®ú.o9µz07ä†.«w© ;|l]9‡ÙüL‰{qoïÆ”Q,4ýó>ÉOÓÓhüÙ§ô©æ¸æ$„Šî¾À¯c§³þ\ z¿Þ˜ßÂÑú½èÛ/†Ù?B~™{•Å)ì"éöÊ0šˆAN6¦a]’S—ËæÂ|Q¸‚ŸæËÕ+å¯,âÝB]ÏûIS óó²°h¾¹\žFÞ©kx¯Íë”·–gnôã +hº¤³{É\¾[lÒþƒ'hàÈÛ¿®à™¢äžM(w5#{-¦á·Ã¹ùÄ\&¾u€”¯÷Ý$æ¯pÒùýÔw9Ÿ™…C×q»ÝW¶)t‡†’¯BÕд<ãž´±L K(¨"ò[¨8t-R_#lbÛÍ¥!/¶%Ô¼Ô²)m̰ˆ\È+`&¶TPuEÚ˜6èšÀº"tDV0DÚº(¯TMË{"bÀ5ÍȺHêÔÀ2±,Y´qÙ©bh/jT4=Ò®-%¶ea[6R Tg$m©@`™!L+ÒŽ XRAuh¨¶‰aêÐQ/µac[æ¥ùS5ZúR†ö[Ï-ï÷§mÕè¶@whù¼g™„MûŠ=E¨*š"óùäâxtíR=La„ МÖEÕpjjÄ#-ÌšŠª ¬°qRÑ44UA ±L3âÀ%T— †‰eËÂs§h8ÃÈwô*8“Û–iJ‡–…šZ€s¥‰Q@v ¡ :TìP›¼H0l›Hšê¼5XaëÚtcš„ Ès¡^s¤.¬PµH*ZË,D BÕÑ…EØäªtXx¬¤Y52JÞ ¨ºÎºocU½ñ<Ò´NUâEÍqZ¼Hã2âœògh1ÒŽ‚æÐ¶‰ù§hñ;†ôÝDÓ‘Ó¶R14ymZŠŠªåÏ!Š‚®ªØ¶‰e 4‡–gÛ lØÈ¼yPe~[‘uV°Â(M$¶ib˜Å¡¢ØvžsNDf)yuBM3IW+òÆmDx_¨çÛ²óŒ€6–”yAŠ"?ºQ×Љi[X¶…$ö“ëË凕ËüòÓÿµz×ðáÃ2dH¡g#FŒàÙgŸýôçÁ{bÐ#ƒ‰õÆàrzÐUª¦¡**–EãȲ٠6§EÃú”t‘µµ#{©ª)` „Ù_-ÈÈ")ªÉT!%6yòÚ”]C±-LSFö3O~)Ž< †4-¤¦Á{yíjYh›&¦ecK9¿[&¶%/çåeûè%ž—9• ”< ‘, aC¢è*B’GÛù¹p{ª®£‰|½FÚ6¶m£h—ÉZÓÀ¼äx+Ptý ‡:ÛcJM×Q…ĶL #Â/å™ÀÆ4"{¨¢;"e˜ÆåiíTG~ÿDæLŠ+÷ÓÀ” ©÷|òúXp(Üž´-̰‰­¨¹*mŒ‹Õ¡E;,EsØ[ˆœ KJ2ÒÓ)YªÒ¶óôÎ,¶ÎšÅò-ñÜþþƒÜxáG^¼ŒØ;ïa@§ºÄ„ÍHjê?Ô‹äUε—ŸZtO?<ßá%“2ÿ£ IDAT0‰SÇл’À âË!™Y¡Ýwø¨=ùï´ñ¶t=Àî ˜1l1žv¸ç‘ŽTß»˜ÅŽ›h\³"eN íƒ‡yò»—©¹èqú¥=Êúg°óë'xòäC¬z¶&ÛM`ôl›ò =>&¡°-xN.P„¾cbpê6þôè6 Bl‰Œ›ØqÃ>Û=а¯ÜW(_#l‚°±jßD×!„,Â_@ÓààMìRU‰³­ˆÁB×±×Ìes¥[(¯ü„¸†Ï¶@b†dçÑã#ò°PênaáÏòaª+'ƒó¹Å(S˜Ÿ¥4 æä"<Åqk6Ø6¡P.aa˜ N¯Myôm`ã"®x "˜¡ÅGèLøÓƒh q8…e…ñ*±n3ä';'€…†ËãÅ£ad0¥IÈPpÅzpi¢ï…?»ˆsJü™aJ Ç1n'f0_ÈBuz‰õzÐU“@fáÒûƒ–…æ-F¼Û$ç¼K\O‚~†s9^\j¬ W©Â‘ÿBØ„|÷*/N]) S dˆ¬ô\Ll"¦ÂéÍp¿/"û²2³ ×®õAÚ¡ð•-úÙ4‡—)·`øbh;l)·ëö]~­nÕQƒWq÷ñ%Œ|ø×|zVUdênޤgà/W›ŠÒŒŒ±v í¤bÖ¹™Ûb·’}î8k~>HÏ † ÊÕoEí)¿²|@qNl\Ëuý'R=+•ÂMB 99q”‹-IñƒP®›j±ñy:Ìì¯a°bÄ__ú«Ïr>S¡ªÓ&œëÃçEt¿8/n‡†"$ᜠrC¶g\Z ÛSOäàƒÖHˆuJ/m Ó´1cÚ€bÌ b ‹`X!¦˜33›`P%¶D º 3#ržWÔHn§baC„ƒa ªË…“~Ãλ/ÐÂd &&O÷l;•ÍkRé>ä&,ÎR¹ÊM”›´7 (t âB:§+¸©Äøñ%t¡gƒœÌtBîbyú©D2B q…Pvœà÷Qu7^¯§ (ÓŸCn ¿1N5/{”‰ïB&µ)æ8ÉÙœ8¼NmÈÎòa!Pt'ÞØ8œªEÈÀ”NM±dù‘N.§$@s)äúƒHÀSŒ8GD”f€Ì,?ÂÆoä9NÙ&ŸŸ°’w_'4í<ÝK«F÷£I‹bÛpó»ëYÿB­µèþEQDEQDñGøÿäÈ$‘¨¸Ïmæ½ «Qo½ƒA]¯Ç)$‡ÙLåÚýP=®kÖ\R„É…Ã?3â•Ù”í¢bÃÛ0äEZ*køú“)ÌÛp\5º½û<ýÛøªûHÎ4PÙ´©/ÏêÀ¶†°ì”ŽêôÐýÍyô¿!@Îù œß{”jí€uŽ«§3aÜöæêv!×C×Á8ó+ㆮeÏácˆÎØôä­Ä;Tv|ÑŸw~TQtp6Ê·Cqö·ýÆGlÎvR©Q7{f ÚÊ1Œö3‡s,Üÿ!C,"È‹–²ðïšË¯|Ë1ÅFµšóÔÜghx~9Ü=_«ë†šñÊ'w’°ë(VN.å'b˜tÇ6o5©Ñ¨ÕoiGüË;HíT—âÞXtmŸôú”„ç;°÷Ó¯9âÔ©}×h†÷-CꦹL¶w§Ê윱˜ôZm0p0w5½Ìh* Bq i~ÓëlÙò,m“Æ,pµxš wúøòÍ/ø…U/esð‘—x(a%ãGaõ_Ùö¼<¤?mëGÑ%ûZO[_E*êU´t žbûÜ ¼?q Wˆu;pÿÀçh[SE†O²zÊp¦ÿ¼—3¹!ššÊε8òM_Þø.Ó’SoKßJ)l|Q%™§O8sžŠíªaJ?œßÄ×#¦²`ÃÊõê@©Lƒª—r¼)¨Ú^¦÷É*¬:€e=Þd΀ºøC›3›æ2{É>ª÷û;j Ø;禜¡õC 9ÿú ‚÷=Í}í« ï]È;¯ÎæeB¨ÍzÏ„>,o¾‚w[ù9°åƽŒ¶S†ÑYÝÊüeÛ–H¦_ý“Ly‹wÅç«Iï^àþæéLé0’ŒVn6­¯ÊkóŸàfZ¹™:)6|`8¾m“?úœõéUšõ`à3ƒ©r`*>‹­Ç r+tç½ï§qÕ8¹{™÷ΫÌÙ´%ßXÄõAÚ9[ûÏþŠÔbi9à#^íZšpÚ.~š4™i?î&'X™öÏ=Áýo¤´Cr`ÅFªÞ4¡;.]º E’»k''štâÞâiL?Zæå%–îÂ[Ò…'p– ™@Bäý"OŽõgRù-ý:ú¼>€n7UÀeE"MuÓäóó÷w¼ÊçN0¢Ï\â¹…]f‘S·)ݺvÆ÷ë8æ¬>‰ãÆ;xvÐ#tºáÓûŽ$«Í œZù ¿Ÿ>÷¶÷û¤Îôþ#ùE†Y?t GŸÅã‰kñØR¼IEõ¢üQv2ïÓ‚{Õ3ÜÓ¬*±2Ï£_µÈÝþ%CŸ_įBîÝ(¦å×þì½w”UÚöý«ª“;çœ3Ý Ý¤&ƒ’ƒ€bÎŽ2†QÇœFGÇQÇ0&D#Š ˆE@r ÝБιéxBÅïÓ (¾3ó­÷yçyæék-ëTŸªS»j×Þµï뾯K2»¨Ù»Žýï¬`žìäî;neF²„Öÿ.õß"&›BéÚ÷yë£ï(q hòhî}ïzò¢|½_.ï?*®îLnù"Ý-£êÆ‹¾xbÕ»¼õézÊš<–û?¸–ÜDõh_<›ÜýçþpžiN@DBƒCñqøÐëìýÙãòóó±­££ãßv> q‰?ù`sv…€ŽÇÆè[g€¬¢ž úÇÄ~ü—CtäÞvšêê¨ï<ÀÁÀD†äÆæÐñœØÈ+O/áð©.äî<~ûå£Ì 2ÓÕ¸—Ÿx’µM6üâ˜vÃ|ÄïÞ@½þsUíäÍÏö` ò¡´ÆIÆÄK¸a|&YÃè[xDõg± ÕãÄ%Ÿ•Y)ˆ˜…NiÆ£D0&O¡Öy–”½‚YÄ]x²ÜÉÌMhfIYiq^Å!"Œh¶SQ^JÓ±˜¢_cΛ 0Ž«ïû+WLËgÃ#ËùÒÖ†mÓ÷hc$5& “®üê³gh.Úꫨik¤¬¢SãÇ10PA­/aÝ{‹øtc1Ýî¦>r7ÌÈ%ÀYÆw¯<ÍgÛèv+Lyê=—\Çž¹ëxþB3ªÇIÍÚg¹çè –>w!6§zæ¾xzÛi¨©Â!è8B‰¯á“›Þ¤2Òɾc©<¸t»æ½‡kj v¥òô77±u<µ‘._{P43ï^ÈÍc{)üz _~¸ƒêˆT fM"±w+¾ØEM·BÁÝðxôæ½eâï¯^ËŸÓ*H4”å3$VELXÂVŠhnI’àœ%ª ¤p±c-ËVl"F, %1‘Ѐn6ÿéR¶M_Í_&ÚÑ5•æïŸå7û.à­[<|zà ˜›ÀŽ•[â ¸âÎ?ð›‘ÈÎzv|ü ¯;Bm·Ì¨;òûi)X@²ñÉ-¯±';žOé yv]·€'_ÞNCÅ?.ŸKï|«†·³å•wÙ+bÞý—‘ã{”¯{ž«ïá7—¸Y<õo˜®Èäû5;Ð{;¼ìÞ¿5ÁÝNņ<þâVôŒXRr ³á8uˆE­¢5c.\žƒÉm 4T¤>ÕŠIÒQÃ#Iji¬7 ¾ß ¸ýèG?úÑ~ôãáQΜŽfö#6>1Èæ•Ý5~dÕúh2°ãcëó2~±jófô»;iáöIõ¬ÙdzoÆHçf]¶š]7ç3Å,1úŽÏX0· Wç||ß2¾»6‡¨²"j'¾Ì÷ŒöÞÜêõ<[çÃÀ{>äÃi)^ßL±Ð» $,Òž¿ë;2ž™c$äƒoóÔgÕŒœ¢Ù iÞó<<ŠêªbGq+MM)Œ‹WÐ\fL ‡8D£¢Âð IfjäRv–vì‹ÙdÂ*4ñý1|¾i3–¢¥_@F h²·â$ÿÆwymr;‡xïÚ¯XÙ4™YâOPÉ8EuE5¥å\ý[Q«ç»÷¿ !rïîšKÂÑܰ®°Óàè¨J>÷¬{¹à=2?}—K‚\t»´¾JG]3“œ3Ф ™âCÇärèÈ r†ŒdDZ?X­èf 6ó!^¹} Oÿ…»Rˆßàá/kùà‚Kxnónôái8ËÓ0 š¢õŒ¯§§½“¨ k^ÿš:ÿ‰<úîdRÊñØÞ fæ`·×R–þëžMAíõ ÷lgùwøá>Ý©Ñ^º™% דúì^Ê1t·»qèµÜŸ<·PÆÊ»?eoq3¹©nVß?ûf,à›¿g`AuwÓÕcàÑkØYy+KvÜHé'ã‰/¾¥lî%´¯ZËžÊDî|ïäÕ/ãoG*(9™E\Æ!¾þ.‰!ÏY°Z нқ®ÆXôîFÆ”¾ø#U2ýšØ2õ¯L5·SQÑ‚[±Ú}D+VK0þºnô×[$ˆDW)K­ ´àC‚0)mTW4Ò£ëFq™‘øö*›K7²bÍÆLá,}V¯§èixPN;÷ìøÙúØØØs>{<ž}öÙ˹ø8|ÈHÍ@Dìód~¡N!` zÐûêƒpkûÑÿ;#3’EæäáÕì¾g>ãxàÑ;¹tp8:xõ•ø^{/áëܳ¢Š™×,¹ï´Ü½–ͼ]²³ŠÝž‘,Úö#Â*+« bÔ˜¤‡÷· üˉ?‚· ´æ…­ x†]@~C5¢ˆ$x5`É Ý‡Xôæ× ¸ò¢ÌÇ#$¸ï2 tDDA Kt1ún¶ßu7k^zƒŸFö.dìX_>þ浦qa˜„*¸Ñ5¥ãÑŽñéã·ó™h%fúS|ô»A(J[W¬fmw/zе_òBáIjÙýòclÉy˜žE°¯ŠCÐ5¼½x î)SÐ{º(,ªá7¿™F€§7 b²x¨<°–m@èMaîÃwpÝ46sÍ ðù_ÇjÛË!KÙ/²þOÑt7®â‰§¶2ké&nNtQ½ù#^xý)¶ |ŠpS½¡YܸܳÌ×pïâ¦<ñ7ŒŽC‡c䤙pHgM"’FpŽ¡zŸ3ÔÆ/c"îîpf<ÿï>Ê+¿ƒcê³ÜwåxæÝ~o;îÉS‘”^ö,ç–ù¯&L›¨à›w?[ùËŸ]ÀwßïbÆØ ({çEÖxFò‡%¯“ÜÓu Twwûî‚wIûø]. ꢮìk>xõ׬ÜÌ‘þâÞïï¤æÜŒÝnÅ*˜ú,)D,“ˆ€ ‡o#_uÎgýÚ?b9ú:Ì_ÊžùOÛ²…÷_+冯·r©Ë_|œOŒñÌ5ù‹#Ä`ü¤Ò!™½òë†á-dè`úÑ~ô£ýèG?þ)üï!€uWÈ`n¹£NC£có:f '-<«®c`Ájúd; @PTdÝ‚Ù×AXL<©ß}ÎË_èL͉%!\ÁC/ÅVRþøEGÏKÁjRQµTF ÅåtAÊ.nYÌKK¸47ˆˆÔDè´ž(Ç:ÿ^’e7ž€h ïü‚w­1 äT𸣹ìÆé¤ØtÔÐl&Ù7ÒÞd€£¢ÏÞäåD$r¡Í‡ÈèX’ÖÎ+_¨LΉ%>:Q[Y¹ik#ÈÏÊ"9¹OØS[hµ¹)z÷Iv« X| ŸîF7,8l™ä¥Û‘=N<55´2A3GíVq[Dª÷ì£E¶ÓPu‚{}PCzX±tóòçk50Œ,n½o:>Î^œá#˜8òªëtÃNJÚH¦ÌÊ@Ót’†]ÚJWç/e“Mz7mY$&˜ÔŸµ92‘ uw¯E—qö‚jWé=º…EŸ-g[M´Àˆ©L8õÝv:o˜Ë‡ é×ÖȪ‚§Õ@ KZ°‚G#mp©ÇNÑ]]FQy2ùóì禷GÅ@D ›Ê¯ÞáÞoa7t<þ Î’çAin¤µ½ ß+.%NQѺÚi Æ€ì,BuNdRè1zŒ³üïPq;¨h¸{=¸}´se«u9(’,¿ÚO”p¬[åh{&‰¹¹ÄZz¼’Ò¢€ÐÔJ»Ÿ‡Ã<Ë^“°ÉˆLdHÝqvGSUë`ÊøNÚÆ^“ŠªÄb°Ãèåè®/()Y… èCb}PõtF ¦·Çƒ$*´}¿ù‡Év©85]5u´j3¹1\Ý=h‚€(ití_Ç›Ÿ¯æ`SZŒ÷±an=ÈîòIÌ›†ÛÕƒ|–$­Ý<ßÜ6“܆5-•Áj%mÍ2ŠÚEIÉN*ŸÜ‹èÑв/Â×W§ûû]t\>‘Ì@L†!™1ÚKø|ÁTLy…?fôÒP%"škhiu4Å@Ì^ÉÌó"dYct^6ªÛ…+u¿ü.ÇŠ`rìÿù3Nšì„FOæê;„:ÚÚ¤@MC4!Y$LJ+>‹!sx¬ ™ˆE,{í÷ºÐõñ<ðÑoÈA ·vŸ-ýšÞ™¯17ÁIw¯Hxî\žXz9Oõàßå/e³øýã óÈèÿ0¾cB2WÓÜ,!ŠŽ*Ú°Iíßòï~õ#­z³î¼‘K&â{žH¨¡…1çÅo¸L4pnžiWlä¹­_ºž·ÿº†Sƒ§\DA\-rI Ö! 75Soœ¤¥;šíËŽ“?4¢Âz´nz ‹hˆÌ%Òö³­,ãv[±\ÂÐ@•$*À]§œ%!¨#ã•AÖAT§ IDAT=t»ðë>Ì’?⸦c2O⡯%>u(ÓßÚÂúŽl¢Ûê9e»Š«C»Ù­õUutÑkvQ¸ùcNüTFŽB‹Kedãq*µjwô2ãÚ)lyu¥s²9\ÉÄüqnn£²í0Õº›¥ -i¿"£¨1ä¤Äb3 ÎÖ,\Ìî†6\Ê(îyÿVü]?=Ï_ Ã04˜±×ÆÐ›ðO(`N´A|`c@´½8@<îx®ùíLM .ëHfNªg]³‚»Û…Œ†»WÆã0~)m/€ÐÝ‹Sÿù\•€UÉlU@¨¯§qÐmÜžÕCoAøÌ+™úöWgÉÏye=.² ½NÙò/†E¦>ÿMt¯D® Š`¨œQvDL"hºW„Úb’úUVAú™÷} MEG@2å)ª«¨ª’Éëg«j¿ú ’×'ö´g°élORÃëcªéÿdE ó™“ÓPe $  ªö“v¿(‰ˆè(šàõB½íÓT C0‰â/x%CSP5¯¡xÖùiªêÝGÐ5 M7Ðe7NùÜs MÉlF~~Ü_ñƒ½dŠ¡kg<½>’ÚOžÇ¢„Y0~òJľ6+§¿#ˆH’éŒZÀÙïeª¦ÿd'™1ŒöÝ;¯O£ˆ¡üÌ;Wôªè§ï¯tÖÁ5U×Ͻ×çܯÄõ¹íîó=>}CGÓ4ôPÎÛu¯G("’I:ÇãVÕ¼×f“tÆoÛÛ¯Ïjû9ýZù‡ýÏÄsŽwÆÿú|×MMº¢(a2‰è§}KÞ—%±¯ÿÿÿdÃúl*œòÀâŸ-ð=û{gûPž–€î«N•$ Q’þÇÀ·Ývéééçl«ªªú·Ï¨‚1H¢„(Š‚è½ Æ9ÒO÷ç7¬ýø¯<ÌñwòôóS({þ-¢"'œ”îStúx(\ö*‡WJ€„ßnh(bãÅÜ?ÑŽ³»]lþDD§’÷ýAvv‡ál³` AböîÊŒ&»pytŒ‰$7'JKhšLÛ†ç¸óÏkI¾{-÷%W°õ°éóüp+=(b(î~”ÓðÁóñÌÞ«xôþјDGé[(¨È†ˆŸ$"V.ã¡£xgçó¤tüÈ+w}‚Çp;v>ÑÄÆ7îç™Ñ\ùû¸ì·ÏpaãN^{æ1þ|äþtW’WÚ00VÌîD®|å5®ˆ8ÅtR_^†ª˜è¥¨º–ÚF_¦¥8pë 6å8l¥£´• ÅlTu$»‰èÂMìj›Ë4–ƒ=ÞE¶=%–ä”p$ºÎĶ »Soó½Èµ §–eNµ2Âç)ÖîòÃj¿˜«²,:ô%?Öçà=„„­® .¿žÛoEð™_Ýah(ª÷* r Ÿm6sé ¸u ‹Ÿ6¡’ÚT²&béÜÁ[K‹™ô«çF±öñ§¨DA³…á_Cy­›1Ù~˜Mq#ÓçåêÒ1| UE$‹ˆ¡0`Ü-Üþçy$œ¹å,zÛÅðÙ8lÞdso5ß,YÈÁaoòÁ¥IÈŠŒÃGb¶Le“Œè릥©•Îè‘$øX0K"’dÆb"(´—C ­¦8ìG8ÒKf*ˆ¡³ùÛŠKÏ\Ï–{)KóPÓ¦¥“ºS.äØ$â­^û +õ)<~Ót2BMx\.<þcxxñľ*^ wõT «V¬ mâ[ümZŒÉ¤"˜tÕ@røL:š‡Ÿ’¢O/¸ÍV¬f "&««EF6%:H¡¼Ñ‰(ÓV×@KT>Ñþa„]õF_ï%äTYÌL‚f V‹ ÉbFм„ŽŸB®ßÜÝv¢ nfÁê[û~ÿEë¿aw[«ÓQÕDW¹AÚ´xBhÙþ5íè¥AmBX¾†¼á¹DÙ~fS)JH’†ÖTN«:޵‹æÖFN‰‰?{2 4Ý{®VIG žÄÓŸÍè#ÆT\=4G:#®XÅÛoìfV`9~“.ÇÊ©Ÿ~Ï*aô†0êÆßqǃñëëݽ“‰_²mÇ7Ô+Óx cbð&Ž…’èIÜ$S*ú‘:—ùŸÞAî™sªä+EEÓu MÆi¯æ÷§ÛëF=ûy6y+õt]ÅãÃá%{dCì³ ÔÑtCô’6’ØIUS7†dÃn³o_Á“þ‰À‡X$1WÉJ å»#¦e‘èヽå'OÍ%&Ä »¨„*A$çg„Ž¡x«ŠE$ñ_™‹EŒöb¾?X‹ Xñ I!+ËJ{u5bÄ ü TCÄ"·p¸ÞChX4 ÖFví)§ÃéF7¢É› '6RXï­00Y$tYF7;ˆÎÈ#ÑÒLáÁ Ú ]×ðH%#3µä%® ²Òb ´ ?b‚ µù(»Ë4ór7µP´©˜FÍKxJŽ s“ê¯ãRôÿ3ÿ#š±9+øaßIT]1޼ñIxŽo¡=l9ÁŠ. éN›ši#’Á‘'ŠŽSZ×FiCè,¦¨¢·"a¶š0TMÓñO- /Ú͉ÍEÔ«*†a`v”;„`W9ÇË{HÍ$-Äüñ*š¡«œ}Ç;HÍ"!ÄCåî"jn¼Ã·DX·‹8Ö>Aq·×ÐÚ#ã™N YE0»¨?TGDˆ“ `êªd[³/IÁg¸®¶Ò-”Zóï@Ö4gåÇPÕiÁl–¯Ïª9<ì”l&Ìvh:´“¢&§—ÄöOgÔÐhÌJ¥ÛñœM¸ÙKê ¢FOKÍMžV]LYy=蚎Obƒ“B0 }$°dÁÞSƆ}'½ó¼h"<{ yaàV½}I’T:ësôX=n {©)ÄÛà×PA µx=… ¢(b2Kè†ÍŸ¸Ì\¢Žž¤Ã0Ð5 ¿˜LÒS’ˆ Ž=ûKiír£Q Ÿ‰©b3Gj½ö&« Ý#£KÂ3†‘nþuV4ãPØw Œ–NºIîØ Â­Ý”o«Æ:(›èÓã¬` »š¨.ê$8? G{ÇK»ðOË"ýý¦‚}'Ú HÎ$.І$ôeç^óøþ?ñÂYkÝðÖ+‰¢€(H¢HþÀÁÿÖó¿í¶ÛX°`Á¿¼ßÓO?ý‹m«V­ú·µ#/;Q’$©¯Êº¯øìRß¾ÿ½É,¿6YþãMýèÇ¿‹À@“»iwsÁUéúâ(…‡sHʵ!vG2í™Ç¸uXdß·5z«[³í§´QgH˜Y7ÐT‘ˆ¸dRÇà›W¶‘ÕMÀ…)øuÔrðd7ŽÐ¢ƒí}UÀ}ëÉ‚„€d±`µèxdÉlÅj5! f+H¢-Àz›X÷Î":ëšéôtut ƒÂàЊ…|v' ®)À×, ë‰ä ƒÝ =Øýé(/âxd—E8¨±5QÑ pA†›öF—%›jF 3`Éflê:ZeU~5©Æ0zzÁ/}S§¾Çwaäü`5€œ ~ËíOÏ%îô—{ôÝDMc/¤Db3hªEÎbæïeî_|€ÓnìÏÆß­áüÅ;­Š"fo¡©ï]Uµ¾Ç_@Àë ‚ «|”§…|«‡Ž®êšÂI Ò1 M÷&¹,‰Ì~ð%fW}Ï3O=Ì7ƒ_â¹YíiŒŒh|û¾!‘Œ!*% ½˜Ã ºª«¨Î"ÕOCkýù|/"t¶Ðj$Ø¢b¶äréE™,++CqNaö=*w}|ñ;ôo hœt]ãàõ·Ö tAKAþ=”t´áVÌ„Ø$TEö&心݌ÉYE»bÆjqã:ÕI[G0ñ&D“‚.*`@é¡EQ¼c1:îÓ¦Ùª†‚ˆ( 6Rc1õîéäˆ õU4IÁX<”Õⶇ“é‹ éhzé­¬ëîF0Y ô0‡‚pQDÿ0Ý~ô£ýèG?úñÏà?žv:{Ù³e+Í© SXúÅzŒ‚ùƒp„ÊèÁ̉Æ_ÒQ4M bÀäd>^ü*Ÿ8Ǭkí¨ kþm$;»©-;Èæâv,ŽÑŒÎ”|ýÈȦ¯VóîëMd„ ¸Br™1΃&÷y° "bó>–î®D4ç05¯™K;]Õ‡hvùÝn “ÜNñ‘#®ó`K®_ &“Õã}÷¾yë¨n— H-fÓWKÙÙYAQ«AŠæ¦¥p'ë‹Nañͨ,½’£Û‹(lÒ‰ŒKz´“$£zdtUE Ìfú„Oùà™·al˜× (e(c‚u·Œ†€ÑÝBkO;â ydXÝôê6zöïâ€ËÜ?=ͼœ ¾«­óã³Søûæ:æ\ß¶š/K5œõûi‰ŸÏMñœU:ÎSåìþn%ª¥œCÅ6¢Ç&Ñ*sDë¦|ÏFVs’@K+Ç¿maü#¿'Ç$pž6cÆjõCÒ×ñýÚø§› Œ•8Rõ_®ÚÏ58â­he›)K›ÌôH?,‚Žaˆ€ŽBû¾]†è¯b˜lÄä!--…Ìð/YñÆJêÂë8qD%dØ$âÃãñ›É»«×³¼§–°ƒˆ¼éŒ Ê(c÷’Ï)ê9Ô p!Š[EííâTÛIäü+ɶ¹évŽǺyç7,’›É°î§°©“ü> `Åíéóð #4¬ž=k—cËÆÔ!çTZº‚%2…8Ó.¾ÝÓÈôÑSeFCG•=¨ª‚8€©?á½"@ĤÌÊ #k¨?-ÞÆϼL|@eþm”‘™=?Qp’?Ê—½ß­à=¹’¤p‡åsÑXÅÛ/uDòñï©,¸‰GýzeA´’‘Çðœ·Yñü‡´ ²b KgXR :'ŠÖñ¥dcwa#aCUTÿ|.¾þsÞ\´¿‘QH$Ì"ÓWGQå3þ¢º®"»=(æ`ÒòÂÙ°x=ï¼äbH¼ˆ3x vs2yãbCqˆº¤Q½â^ú>’;ï:ÀÒ¥?"š¬$™@ΘHþúþ«D  ¨ÇAÞœ8ª³ùØNv””Óè «¾u0uÌÆÞ4€u_~ÅJµ”€ê튚ÀÅ!h2==òi¶GhI¹>zÿï8Ò$Ь! ™”…uïç¼òE!ÁC9²í8ÝD šH^¼?ôœ•ÞmôP´ôYnÀƒvñùçn¬þA$¤¤à:þ#U+ÖÖjöé‘äÏ&¬ž•. šdªwm ¨ý'ôFZ¿]†%-‡ †Ç{A<Ëÿ¯†…q¢I"wÞP¢=zçôþ-Å?R\„CmµÛV³¼gSÆÇqjëZ޶é€rü(Úõ—2,PFvkxNWw’Æ_ËS“oYõЫ”¦_ÄÌ!£ˆ3žK€B^*x‘Ðçž`Z”Šò³Ê6Ãd'4*’¨öÏyííP&ET²«¸†î” ¨²‚ªjhzáÑÝìÞþ Ëô‰ÌÍÆÙsn™™`±šœ‡¶x;'\Éý96T]GWŒÇOÁ8+o®ÿŠElj 0ð„ç1mh:Cfijø©5D<ô&Áš9ãžûð$Éw\‰*–žHŒu žñab–§=Ža£uEÑ0ÁPpõôœ=ŒÓÏó lƒó(ð7PÜÊO}\SQ=B_‰Ž&Ë(ŠŽH&7µ‡·°Z¨À¿kG|oä÷Ù"è:Š!£^»C×PÝ}Ϫ¢x4<–r‡²mù¹sÕÌñ½¬|ðo˜Ÿ™[Æä2=l .§9zQ£œ–«(nU·áãoCîÜÍšu0Í$ÔüÏeßkÝåìXô)4¹ˆÔEü#†¢dQ½ü=jÒ徫ãUçžu,9`göEcQ÷®æ“=¥èš†Ð@OÚcdûŽ5»4 ½…ûkð4„„à`†…¦á×ý= ŸúŠž!ù„i=D ™CLŽ?E½Ã …Üóü}LÍ G2¼Þu¢µ›ýo?Ác›ü¸ýÓ¸Øÿ þñ/Tå Þâ­iøîk纫F“bAÖ~‘´F-ù‚K[4@pFàɼ‹Ð-¯±°3€7ž„É¥¡4•²õë Ô ¾†ä¦Ã¬X¾‰b—ŠO§>¿c„º‡-Jh—{(Ù]Š5#8_Hš“ËÀðB>zâÊ Î,cMbFzÊáÕ¼øÌ.2ï{”GçƤɈ˜ì*Ÿ¼ÍC‹Š™ü§÷¸or+zš=YÙÄúŠ@ Î \uËt&$øžÛ>É‚V»›U»ª‰›xó2ÌHæ2ÖüåÏTOû=w_9”P» ½ðþ°s*ßß7 ½·‚/^ÿ3["î ûã/j¸{š9¾k%?TItUž¤ÕíKTj1CçO¤O'ØÈ®Í{)éìK¢©Â/öòŽðé£KÉ[¶˜K‚](†ˆdî¡fßZ–/7¸øƒëéYý1 ¿.Ã<0™@¡‘6å ã.™Ç¥ñØ,&ÌÝe¬yÿ-Þ)$‚Ëá„kç’$ ¡Ò]µŸÕKV²»VÆî-m¾L¸þræMÌÅá9¿W¡€@sáVÿ(€ÚLéá‚å͘¨$(]Å;Ï­G’MÚCìbãèظ–%»Šq©Ò)ºR!»x=ßmw£­ß[…ÿÀ¡ÄúëŸÇ HËù `AÄ$tR¾î[>ÛYDªa:åG{ì\–[ʽAÜâE\à%ÂA¥§yŸ>ö#ÖI˜ÎÓ#|qu{ÎÊÊ ¥{ù~…/Å81Åä1v¤~&†ã¾uÅs¦bWŒÈb¬ym9=ÉÝ´VÔÐv5Ã#Ü”{Ù«ÊbuV²cû1ª{$ÒRÆâ‰±ãSµŒ‡^·ñê›7’ãëõÅò¦¥óɇ¯óÕ¨XÊ+Ur®AŒ¬Ðú‹9ß„ÕUÎÎõ x ~>]ìÚ¦qéœ4Ì¢Šuàed-{Í9ün¾?²ÚºŠâQÐ ï쥫 ŠÛƒÇ’ȨYÑ]ùË5d–s!y XDãL\GÁãMM8b3–±‘o^ûš¶¸Vª‹[1â."'І33˜6ïåë%Ê‚Np°±¬31¾˜A_‚ƒ‚ŒŠ„-"…Á<ÏËo¤0'¡™cËi% [çq–ò5-Y—òÄÕ¹˜\ ªìKÞŒ¡,þà¾é-E=YNÔÍ7’eèýEÀýèG?úÑ~ô£ÿÿ1Æ}÷>u¾í½†Áv±äÌal¶·æGRf0m»÷£… 3=›Ø~×TBr&é>ÄîÂZš[±¾G.NFéí¥­d_o:Hc»DlÎ$&L"6>‰`©ƒÒ£G©¬«¥Æˆ ?=‹ÇLøÀ,bl˜šöñù÷û©¯«¥Çg2Wε±ï³C¤_<‡x«“ÜNÉ¡lÜ}„úî(F\8ž!É~ÈÁéĆú`U\у•”FZ×^vmä”ÓGE”€Q±¯7¢ñ”™„¼©ÌȇÃÛ·³mÿêz“™4s ™ÑV<íá3ˆò‰$w|&ÎC{(¬­§¡±™Sþ™ŒKñÅ#û8,£î(…N‘5õ"$† rª¹sD"¹É‰øˆ2Œ¢‰Ù)÷0*]f÷5Ä^ȉƒ%tŠá̼óZ²­Ý´ÔUQ¶§Ÿ ƒ¢Ã5DŒÏ”IÃ3»‘=.Úšë¨m¬¡ºÜĸ‡eF¢„®ë‘Lj×¾sÚ™’CŒ¯Q<Áá27ŽŒLL¶Ðqb/ûZƒÉÊNcðÈHN~¿ÿ#I ÄrÚœMPq·uÑÔ\EmC#Ím§0Ç0"#‰˜$;%[6q¬A%¦àf^”‡¿S&8#‡ÐSµ=VDyM5RìR$Ç}˜ÝGª¨³dÚÈ(¢Ó³ 7+¨ªÀ‘ªí'IŸ9•³Ý0Ð4q)ñÈÎ:Ž:ˆ;k,㣒H”At° ¥K"zè¢Q„†UpìH­9LÌŽÄd2a6›1›MH¢Š ‡áB '='Ÿ_ MÐpw „f¥åEî„,äÂ}V×ÑÐØH‹o&2‚1û… ¸Â;%—@‹€bøa3…2|d VÅBÌ€4•fN§º®–j!†áéáˆ.‘ƒ³‰õof㢭$^|))>}ÙÒ†€Å/„ؤ(:¶oa}=.Á˜üñätÑ\|€ƒä L"+/‹HG‰C‡áS¸‹=U5Ô7Ôã›1ô Oøá7©¨ªRqÙ™¤&&é'S~ø0õ 4H݇O1¨€ôÄ0¬¢(:)9Z=X ¾¢†úÆFšZÛΙÄÌ8Ê7ñC­…ÌQó¸~T¥Øµé §‚£r¸ij7‘MZÞ…d÷cga åÎ4æ?q59’þ3éeÁê ,4ké&¶4SpÁ\.Î÷£ª²MîÁÕ}ŠÚš:êjªâ†’å{Ö" º);V#jÊ«i¨¯ç”[Á/4œæ=ß²¿¢êV?†O™ÆÔá±X°X­XÌfÌf+³JÅæ•l:ÜKðÀDÌ­5Ôk± GXT*'`CÄ¿Œ›'Dáv©g­E$³Fã¡-lÝU˜–€«‰Úž`ò†„Ó´e5ÛŽ×ÓÐØD§m,÷Ý5ß^ùÜE·†¦"Ë*†à¦§[ÃGL¤’êA–UtÁMO§@øÀ4Âíf¬;V³¹¯?›1I{áÑwî¤Ã7Šìœ1 KŒ"*%©W# 9‘˜ˆDb"[¨8^J™ÄØŒLâÏä¤ ÉbÇ!tb:•qáf<†ŽêÒ±…F›Lf^¾Ýµ/¡¦¾–j)Ž‘iáF„âlñgÂÌa„Y ¬!tÔ™?s0€Op,IÉjö¾žZ§…˜ÄDb,Vñ‰ÄGb=oÅ\ÄOÏs@&c“ý†d,©(“o8 YñøK î^¿ød’“ ŠV”ã—j§®®’“ 0ñîù ÷0PñtZ‰/È&ÜÒ'[k˜ŸŠ¿&#ú„›žFzf2ÁâÏæª´(8ˆÊË$Ê'’C£9ºw5ÍøŽäýÑë IDAT»‚i~~D Í$DPЄâórˆö‘Ç9Rg"&1…h_o¢“Ùlþ?Ä? ÜG—ðÀ—‰,üôq®œ1aY"-X©“½‡° KšPÎçk9`43¢ŠyôÕzæ>ñ¿¿æRfOö££%„æ2÷¢L›Aí‡mÌøè îžy9á**h¨KæÆO1ÎlÆå¥li¦hk#js!u‰ƒÈÂ×l`]ßóÄâøôø1àÒ™dXk8¸ÌÃÜ_ãî¹37ÀÊáO¿dkg"ÇÆ"ÈÚ¯¼IY°WÉ-¯üñÓ§¹yÖLfŒ7ÓÒÅ ÜŠ?^Ì©Ñ3bïæèáÝìnŒæöéA|ýñV:3¯à…?ÜÂ܉˜U;QYS¸hö,fLO§}IC_xGo˜ËÈx nO-—ö0û£×¹ç’YL™0šxÇ)*ê©ÙZ†œâÀ7n0©¾š×—Û³·—íáTµÁ€)ÓÈKìåÀÇ'ùê›Ð¼s!ï|r”è+þăóç1{ÖLf’©l‰$*°Ž½Ÿ•uù 2ì*ºáMvi+/¡â¤DæÌlÜ»‹2gs׳wqåÌ©¤ÖËËŸ5‘=.›¨ õ_=ÊSûóyú•'™É ¦OЏå5íMàÂ)ñÍÇØ´ô3Š}/åáçïàŠ3¹0=œ€`+ÿ@¬¿ÊD ¾˜¹Í`âØ ê—»˜óñkÜ1u,™!.ª‹ÊéPò™ÿúcÜ4{c&|jO¼QÃø»~σ7]Áì©t·3`ìæ\4ƒ™3¢©[ÔÈäÞâÞ9“.å<Òî}ýÎѶ…?½UÅÈÛîæá›¯döÔ z;#ˆ ieÿ‡…^2lÿÓ•F:®ÎjŽlj!é²q6TQñCj² GÜÒÎô›ƒ,\þ#­U:Y“§00Ö¿ï½éÎ" „3Ÿ…s? ÞÄï¶Ó×™3þ³^Ò÷ôƾzŸ¼¸¢©¨ŠBu]5¥¥ÿÏ›wÏ=÷””Ddd$³fÍâŽ;î`úôé 8)S¦œó鍊nâ¹çžã†nÀÇÇçœãx<"##ÿm·)wÀ@®¼ä*ìV;V« ‹Ù╜?-}6ç{ŽäHßdzÿfü’(6~¾_?úñ«3¸].>>?ešGÇâIBf vÃNDœD]‡B`hã¦å#T¥°²Šúú:êìiŒO%aø`ÄmØU×H{g/¡™£I 1 ùˆ„ç#/ÄŒ¦©ÈR É)ñÄÚ ɬprë¶î"07s[ uj4CùRþÝ7ì­·™ŽÜØ‚Ç/œÔ@4—Œ.¸pv+Ø"bˆKô£©¢«I¦½©‰ºúêëj°&bÐÁd4mg}QFÚ•ŸþA¨ýèG?úÑ~ü—Ä–´}»1Üî_„^íì|úBxã<ªÎ¢3E„ãwïP’'àR l+f©žJŽ#.ÆΩê1;XOK[jz †( šm8,Þl^n—‚.HXl6¬¦¾t§KÃä°‚Ûå­¨‘¬øÚOÇ=t´gç&ÑóR1¹¼R;† b±Ø°šû*S=n<2˜}¬ŠEÑÐ ›Ÿ ÝåDÑÎ:O]A1D4ÝtÖ9*݆ܳEòWv»‘°øÚÀíFÑt ÑŒÝa=“ `(.ze›ÍÕAc]•e> ™èÒ¼Yõf»WzU‘Ïò§3Ì|$ —¶›Ç}@êWïsuœ÷o²«EpQýãj–¾ÓÂÔE1Òº&ãq{Pu ‹Ý†¥Ïƒtd— E;]yrž6»¨‚ ‹ÍŽEð^76›ÉøÿÚ»ó8¹Ê2_à¿w9[m½$éìö,$‚¢TTD½ã23:ã23÷:ãqÜîe”ëèUÔÇ+Ž*((› ‹0D‘EÂB[ötÕYßåþqÎé>]]Ý ê !Ï÷ó©Oªî®®³TÕ9çWÏóhËÁ±7_õ,æs¦õ•vŽ^#€S9tWqˆHÂñxùXZåÏÏ€ÁZ·–/O@§!âÔBux¢x^0qeøu‹mO®Ãoîò°ê5 !"=rJÉr¾çÁ &Ë`¤€Iòõã5}˜bޥ߀/-Òáûð£K®Ãc® £j˜yð*¼òŒÃ1`8\‡çó¯ `ܺ–&È”†a.jõÑuŒ,Âp¢Á… ßÈ™®WZ$a1¿àp^y ªSt" §áÁF16àgß‹ñ²s…—u§èÀ\FgHâVyë1£¡Á Ó8~VÀkÔà²ò鵑™oƒ©åàÂç1da Çóà;å=ۮ݌¡ÃçaæP=M[§V¬—Ê:N£6R+áf¡³Q¬Á7ßnF~U!‰d A ¾Ì«ð“(D6AÄ„Ï÷ ™Jcĉwý|ž«§7ÒqÚÝf«ë½€5ùkŒ»>$Ë_*Í Ù¬»þ&¬Y÷$:R€C#KÄéöÑtGÇ5 : ànÀáùüƱ‚íN, ü¾S³Ò¤C1æye‡“I¿qm-‡¸à6CšèÑó«–ïa1”Ý„›¿òc¬c Ö:hNYŽÓÎ?CVÂs8¬10VCƒ,V5/oE(0¯ŽÀå`*A'ÉzVð0.áú¸Š& Âw!™E'Ðð¯x,¶ï8…ƒZÝ Cd&çÓT'Dfó³ý¼ò£$)¬ãBtÍó¸Ï$¿_ï³Ï7Œá:p$ ¢ÊŠbÂyÿzÞ%ˆ/ü0.<å48 âNѾVÂo¸Ð2ËŠmP@ubéÂq&Px~ŸU:Ma\Ó‰ xþ˜Y'‚.\σÃ4²4Á–í»à:‚ €$(KÖïüÛGpá%ŸÁëJ¤qË9â§ÖàûW^ð°?Åùý?Àÿþ…Ä+ξgL½ þÀ˜ò†?Çû_s¤Ð:EVv‘KoÃçμ‹¿ûEœ5@‹n½ ßÿænœñõb¥“­ÊÜ'på_ û#lضo~׫±t~ Rjlüêßáâ¹Ëqà§oÄœÿ"ÎnÞ„‹ßðc,ûîðšVðÝô=üÇwâ”OüŽv;ãªÖGà-Wàíïý)Nüûÿ…w3:Í`l†$ްîê¿Æ7¶}¿¥+¿þm<¼êÓø‡ã6âÒ/ünKVáCzÕ4Ò4É?“­„׸Ÿå—ÑñE8wQÎòyþ§³®ÂŠ gõ[hAéíxàú«qõwîBrôr,šó2¼þ À3[ø\øÊ=˜÷ßÿç½ê9|å_Á´K.ƹ l÷m¸èÝ—añ×þ¯m…H+c1»ü9Üøík±A‚³/8 ».ýn»®nà->ËÙ…ÿwæ%üÒǰzŠ _~æ/qû«/ÆùÃ_Â?>ü:|îχ ,8œÚ6ÜvÉ¥X³e!Îúð±ÈQpð(þå½!~ûÇpÁñ³à•¿–¹ ‡¥ˆ¢±ól-cÃXwýeøþ÷bœ~É›±ë _Á¯’#qöûÎÄBiøðÏïø,â ?‚ ŽÚŠ/ž÷˜ùùKqþœ¼ëƒEòÌ­ø§¿º¯þ÷ÿŽY·~ÿöÝ'±úâãeN%½üu¢S„QþY8ùž´A¸ãf|ñ­?ÁÊËþ §5cg7Ö^õ}\“‡³þÏc‰ceÎΛðÑ¿ùÄ«þñ†èc”NG†T°v .>å;8ôòKðú©iïí­²Ý5:·áïÿörØßœ{LñxpîÂÅ'| /ûΛ‡b¹¥Ø¾ñ:|ñ=ÿ‰c/û(殹 ßý×;¿ ¦¿ o<÷ xÆ`ÛÕÿ‚/kóµû0ïƒÂ9ÇÏE™ý/›(.”Áoî²j ÌYNƒÚ($iŒ0 ±»³ ¿Xó üÕß}蟽«®º guÖïô»víÂg?ûY|ò“Ÿüƒ­¦÷½ëÏqÞ9ç£Õh¡Ôáy>îŒÀÖä©îȵµ°€µ#í mÙ*zL(l{‡Ä„LÀX‹Û·cê´i°¦xó¶ Âs E ´˜ôx *I‘ æA–ûä*F;VžŸ·j³IÜAª¸tá{6eWäãÕêÑÿ9zÜ2º?ß œZ .Ý7ËÀòc\Çw  ‘Æ Ü¯Áwø˜OÀ|ß“¯”çIX¾ÏíùñŠÑ)â(îÚ÷ÔY„8ÕãØºe Á+Ç#ŒIx#Ç~ Œs8މQl!ýʱŸÉÅ)”fpë¼â‹ £ûÇÅq•Ž0ë±_¤² Üuá{ÎÈ1“U)¢DAåñ³)νxŹ—òXÏEäÇZÖdˆ£ÊpÈêzæß+¾œjD28hx@¥cG–`nPƒË-ŒJE à Q!S ­Vkd{ê> iÈ /¼äÿâà¿ü2NžçÛZyLPgŒyŽvìy—ñǦ^Ã)Ž…òc{µÀÉûÒéI”@°\ç48 5´`Ðå9§¦[œÓû˜ ÌñQ÷` ´V0Èé8`&C’šÊð 2àK^ÃŒ.Ç­Û¶bÚÔi“‡B!„ü®8äW#ýòç`vìwê`þÆ/êŒõ%ßÚ‹(Š¡Rƒ$ ÛA¬xå4¥¡u÷Ù5ƒ,l#ë^“Ö¤Æteù¸&YŽý}i§2ÊŒNÐn'#7Ú!8ù l±y0k%!²dìÿÍÂhäcI;œøy@÷sF!Ò®ùóüL†¨=î‘·SgŽó-T¨óçË¬Š«ñgËl¡qW#Aq!êè"cgàNqPØé Œ-RtUåó×kYNºnŠVËiØ®ÌcЍ²¬†ã^3&S]m5’vIs~&‹ÑÉÆŸ dÌ ‹Æ?Ç,ê±.!j3ÔÃ+N»¾f’Hþÿdô_®g@Åm´a‘%œ p!ÀaËÁ8ËÇ–Ê„ÙÈ#ÌŒÝvìøuÌX"ê”e ÓQZ™_ôžßtäù€ÓÞ‘EÝ-2mþØc_0@#ÊÆo7Œ¤öØíªØóy´:EŽ>W•D(_VÖöaåɃc_ÓÌN°^X¾î;•uÏŠÿîOñ3wÐÞ‹÷«3ÄÕ ‡åÛR”íÕ»Uï×4dí±:^þ:‚cÞYÁ ãÚ,¿¢‘„Õùe=çS':IgÖë=qùk9îy¾m'ǹ€(¶aQŒÙg “í/Ì,ŠGž¿MCtÒ=¬£„ªø“¼§N’¢år>®×¸÷G c_/ù¶\qÛã=€Ž¡ö°–ó×óè{P¾½00fa²IV}?ŒHŽAFH¢íN6&Œ}ŒÛUŠD¾fžïgÕÈ‚yLè I˜!A>NlÏåΜÊN¢v ¹èT¼ïô­¸îóÁ#‹Ç+ßüN,o¶é‹±dÑ£¸óño㛉9Sâ°YÒúr¼óÍ›påÍßÀEw8úü`õB6éx.¶nø¾ñ©~¤Z8ô«qú) xŸŽU·k7-ÁA³§`†Y‹ïügoÿÂ<ÜÔó=ÂB3^Ÿ‹†¿Ï<à ™,Då‹I#õr|à-OáÊÿ¸Ÿ¸aǽýoðêé)”ô°ðØ qð×¾Œ+î:¶ÎÆk—7‘9³ñŠS_‰ö•7ã_>vŽ8ã8ý˜Ehñb|ÞÞK™z?øì§p·#Ð?óx¼ñÝG‚9t’èL]´'¶®ÁÆ0Ų'ïÅ/—à´ò–«h¯ÅÏ9¯ýËêOƒY?º¥Ëq(kO0O¼½ Oˆ•8a†3úE“Ûj9ÏŸÆo¼¼˜ñÛߌ,8nüN¬UHøæÍ}·<“Bo{¼WaõŒ™å9DØúTÌñ 6>šaJœ"8‹šñ¦õøùÏ®Ç/÷°ìÕ§àeË¢Åó1¡-“¨Õ|äC÷©|Üö‰ß!dЧ¸_ûôÓèϦ`Ùi§â•',ÇÛÞø$®øùwðÙ{¯ÄÊóþ «9ùgÜ^pÏCà”_Júã¼7>‰þôr|ví±üþ§R‡ÀÄÓ¸á’Oàáz1ÓL#Þý žô‡pB±¬ä´CpÀŒ'nÁÃí#°2XëîJ±üìC°©=4K­¾üöþk³ÅàÀÝŠwcÎ8¸Bbù’š6Ïmyök®¹/ùËÑ××÷[ýýo~ó,[¶ìºJÇÁ‰Çž)à‚çÁo¹óÛŒÿKÛ<ù}b:MG÷;ó¤ QX¾'(Ä^Ÿ$ q÷0"¬Ø ÓÑýZ£w3;áqËØãå±ÇŒ¨$9&{vìñ ÝçŽ;]Ïy‚}O6áø¿Õc?äÜ$Åß3Œ9ö},‹,ìô8~=®÷ÿ˜…É„YÒã˜'ª<¶sL^„]Ç·¬{=…8ì^¯)ºª\pc×ËÄÃ#÷8ÁÀew^úyülí³ˆV~/Ÿ•@§ÝÇ¥=žãÏ»tÏ»…Õ :ídüù£‘Dá¸s*`ÕsÝi‹óF=¶Ó$¼Éò/ê·é]…B!äy“ûãL3f%æöÿ­UHcì#õ×yÛL?ŸçkaÔB¼æCïD«¯Ú*×ÂjS8g½'Ä,‘@™—úú¶°F!M~×õÍàãŒ/†ÄèHtyem6¾šó£‘Fz¿M¿° ²¸‰CN=‹O•-D#Ò‘qª^ôï+v.^ýçïÇ©cf-C¥0Œtª®ï4†ãßs>ô¢)ð^ìcqr ·s7¾ñ?ÂÃa xÛ?œƒì\œðž?Ãàþ7ßw;¾y±û‹ÿ†#§(¶h6îºýrü,<ï?å8Ìð"¤:>ómxÛ”°æÎðƒÏüô_ü-N>ƒO´yXÇkbÊœy˜kLéó `f‘vZ8öÍ‹ð¯?}[—µæ«ØyìŸâÐz»G\ÝRëü!´Eó.ágㆯ_ÛÜŒvv^ûÁ×cÅôA,{ë{Ñš~%n¿ïø÷O|ì#Á ³2ÔÄq³6áï¾»¯{ÃqD3DzZr ÞМ†;o¾×\ö%´‡ÿçœtZÒNòIàcpÖ\ÌóêƒMHXX¨ÄÇ+býOïÆ#÷cü1žš‡•sfã¦& *-b.¦ š®*z ­æÍŸ‰Ï´ñô]wàngÇ5Á’c¿{bÛ6݉]GŸ…™LÌAûþñܱçcU3€ž» Gp-.»õiü¯—÷¡=É—5l¦ ìÄÛu9Ïsƒ Ú2p‘ÀÞg:U¥ZXÌÂÔABXØTaܧã`Ì…”Œ…ÕY¾Œd Óæ4йz îl„ÅKB?44—ðÂûð­Ï]u»:Pê(œÿñ×â"ä뽯Çáý˜:gfè6ªáÀÕçá­Cøå¯¯Å?÷ ¨?ùVVË-ivàÁŸ]+®¹;1Ǿö58ùÄE8è”7ã-CøÕ¯®ÁµŸÿÔ{ÿg-g€uÑ?}æö—y¤AgGŒ­.7•xX¸lÛv¾o×á¹)³°tî\lg1½w¿ãÇ.<æºûŒÞÉÀÀ9‡äy,¥ÄëÎxþù›_}Ag«÷÷;ßù–/_Žùóçç­F'‘$ |ðÁ½3ø¿Úò¥+04m$—R@06ÚŒcªxGÖÖØÉIWBÈ‹ÿ#ÊrÔ§ÎÂì×à¸×'Í`h±B!„Š—~̬㖧\h¿P#f–¿al’B–½ÂŽæôC±b6`’ ÆÒ:Ùû<‹4Œ{|s[ÐÂÙÏ0è$C4þ;õØ—:û§ax¶çqtÒ‡COy 2(m_Dë¸ÜÞ8l9m#§â £V¢/S°v.ú,ƒ„iàˆ³ÿ-ûOüÛW¿K׬Æÿ9s:ļƒ0½y²>¦ÏË:°RBGÓW¾ç®<CŸù\ô³µxÕK‹vã/F;hÍZ†Õç_€UžBš<£´–½ ¿õul|¼WÞ0 §~`üÞ‘¿·Õ×6AgË0žÝ9'ΰ0IÑÂ71ëà%XÑ7‰žŽé5LJ˜0Ãü“ÎÃÇžˆÿý~|á†õxå;„õL[væ]· VÌ€HÛÈ„€IæÜåXýŽÅ˜ëÿ>q÷¯±üÈÙ8jV /–+/¦€Cˆ¹8áÍàì¥5tºO‚Ãj…`ÞrÌ÷ÀÆ€oog˜sØ¡X8äãWzt=^ç'Ü„û]„3ç[hÍ»>Ç5³ –=†§îø%ÄÜUh´š˜søáØ~ë&Üùèœxê0.ç1Üðå›°VoÁût¡²[Ÿ|ÑS÷àÙ“OA3U]ÿ›ÖB÷-ÂÁµÿ‡‡7¿'(ÁØh h—§Pi9ÏoÇÙ Úp9Œ®½W\‘BW–ypõ£¸ÿÁ˜vŽ >t8s¿…»6½Kç›<äµo?…õO‚³à;›7c«˜Ñ7«N>»ï؆{ØèrÊ·ë)8héJ4âÚÌAÿÈvoÇ¿À µƒ) ŽÆç_ˆenÞ&^AEÓ–­Æ–‡?çnº¯X´u‡w½¦ªã>úfŒåÇÕb §· ‡Ž¦-9ç,;3¢÷á“7݇“K3+_þhnÑš+lü:l»ávèâ¹Z­áÏ]ŠyÁxìÁïã;m‹‚gÔq·É‡°Åpûõþטw]6Á{áØé<$fåÛ"˜e`¬èÜb„Â…#œµúu¸ü—aç®/ø¼wÞy#ÓýèGÑßߣŽ:jÌïÜ}÷ÝØ¹sç´Õs7Çqðïþ ¤p ¥ É0.À™(Ž÷X^ù[”ý—mÖ‘·.WÌÈÏ»ƒâ®ñƒ Ù#Óõ9K&ߤe5ÙgÎèò™|Y]ÃÁ§¾G0‹,I¡÷Ës+|ì>ˆ‡ê pàPŒYÌÜ~û7B®Û”WJªµXà¬Ã´õWƒ7S€'¨oþ%êƒë&Ïà›1Ýl©÷/Æ[–=†/}þ»ˆ¦‹cŸ»r÷z,pÂŒG~§v:ë1ç‰Á«ìÚx3î½ôN¬8ý]8xí÷€Ô@°à8¢%°¸ß° 機·ý÷M; ËBÌÞy7Ž ~ vÿà&EcçÃx¹Üˆéþð¸;žÅÓ‘œ½³`pË]X¼s+Z8à;<0ÿ1Ì¢ñø5ÊÍ÷gÔZ,t×aèтՀ4;Ðxú×X*xkçàeS7âÙk¯ÁoÔ*\pð ô¯}3í:˜Í7@®Ý‰yòaL{æF4Ì#¸úãÿŒCWǦo¿KõÏá<àb¾»Sø²-E0×À³wbƒë®F}óX%ðïŸÅƒñìµWãÞôh¼uá4 ¬ÝŠ™úd›oÝ´¢Ò|?ÐÝ}¢¼=2Îo9ðoþ>Çx1Ð/çùÏ8Ï[ãs&ø¸Û–1Îa­…Ön– ;h¤1þôÎç¿úå?è쿘Þ=9ý„1$"ø»7ÁÍ|ÈЇäœspkóÊ~£Á´ÉÇÏ4½®-`L1p1 ŒÞ.ÇÆ— ÓX“¤ ‡…?< ±¥t `2áþ£¿k'd³9R³Oª= Nš€) Q¯ïÕö”½^(þîÝÏõÑÀ„Bù¯ã¸0k ›ì›ÙâKf{ãüù½wùj50×¥ƒuB!ä÷ÈØâ;÷{hÛmM‚ö®ªø=îhÕ¼|'„¤©–ð›A>~)2„Ã!mXh@ýŸ­MÑÞÁì‡Ïl1Î^„öKµº 3B9>‚À…` °F¾ä`,ÃðÖä@?|–`x{Jˆ¼î‚Kxµ<)À&¿€!òÑÐ-ŒðÑ×ж¾F%èìÎà ´à2‹¼•{„0Ja`˜ƒz-€çˆby* omƒ÷õ!ùéQkS oy~à^­WÇc ¿¯—iÄíJ8ð}’eèlïÀÖ›¨yáÖ]H¸(Úhs¸µ|ןhþƒM;ØÕÉàÔ¨y @6¼ »µþV ‚3dí­h³> ÔÊÆ¡‡ÃHD ý€…îZÏåÿ´ÐY„N'‚X¸h4jèZÏ@1\„(‚þ¦ÓF'ÊÁ‹6à~>ï#E0* ±;QE …ô›<9ÒvÙªQ!VyÍ«å.jAÏÙ»Jk´wÄpûáÛ£ŠC´Û1Œ`Ö‚»ê„ CęɷYî¢U¯Áéÿœbx[g`>ßÓ>+ƒBÔgzìãI…öÖD?‚ÊÙ`£ctvfð¦4!Òahá÷W¶îÀ¦€ôÚ'2œSE+-«ß]f2‡¶%B!„üá1›¦@ŽË€ù7¾¨wÚ^ú0!„B!„ìI5®L—¾à<y˘s0!ò€WÀqòXJÀuó¸2 Ç•JJ$œ#´m¥0l-~¹q#þçUWÑ:؃w<Þ|ÔQh:šœ£Æ<­!­ϲ‘Àw$øÍ2 Ma• „G‚ßj\Vk=úÚ2ü-ƒàÀ„B!„²ßÛ`úª!„B!„Tu‡|•êO[ «—²½°µy¨Ô˜ÊR[„‹ÜZkáp…€ÇŽš=G/X@Ë}ýA€3<.çpƒDÞò”3V¹¨Vò·meÝT+{Ë*;Û]á[ ÷´]B!„B!/RB!„BÈžTÿjhX†Á]aãÈ´R°Ö‚¦5XQ±*¸ŒåA°”xËÑGCR+Ë ¿jŽs¸ÖÂa Rkðj…nYÑÛÕÖÙVÖјð¾\§Õû'Zç„B!„BÈ>„Î0B!„BH©vWƒNð³î€q¤ ¸{Zk°" \káI Ÿ1â]ÇI¼˜.¯ËiÑu-».Nq‘¼bÚà(¥ƒ`B!„BÉ™=Üþ–bw9þ–k­BdRʬV«¥õz=iµZq£ÑˆkµZr衇n=óÌ3×ì+€±¼øzÅŠëN9唇}ßOʼÑh$µZ-q]7u'µÖV—kµªWu/sŒ­òíòío±B!„B!/Z’!„B!dij=Ú@—,F[A—ánÙ ºÚ"˜UîÓÅïhŒo­Šk.¥TJ)î8Ž0Æðz½ÎÓ4åI’ˆ4M…RŠŸtÒI=ûì³}·ÝvÛ’ýiXk1gΜgÞö¶·ÝQVþ6¨Ñh„õz=ö}?q'B(!D†±áowð[­ü­ôÕuü[m7ôê!„B!„òbF0!„B!„Œ*ƒÞ‰n—A¢¨Ü.Ã_V¹înA\” “R2ÆÀ²,Íf3VJñ,˸֚i­ù›Þô¦{¶nÝÚ|衇¾Ô:c ÖZ î|×»ÞuKi­V‹[­VÔjµ¢f³™ÔjµÔ÷ýL‘YkË1}«—^Õ×Õêßêø¾½ZC÷û—B!„BÙçP hB!„BÈ~ëyTsvÛ+H¬NW[w‡”cZA{ž—Ôjµ´Ùl&eàY«Õ â÷¾÷½·.Y²äá—úz°ÖböìÙϼÿýïÿÉÐÐP»V«ÅÍf3îëë‹úúúʱcÎyÆ9WRÊ1c+c|+è2 Ö;Fóó x©ý3!„B!„}Ž E@!„BÙŸ}ìcën]mÿÌ*·Yåþòg¼ë~Öãw{ÞÇ9‡µ–Ó–å=©aŒaZkf­ZkqÄÏ8Ž=öØc³&iY½O[²dÉÃïyÏ{nmµZa½^Z­VÔßß DÍf3j4q9ö¯”2Eô–- «ÕÀåÀ½Bà^A}¯`ßvm £+œÚ?B!„BÙP hB!„BÙ;Õ±€K\ |Ë1Me:CÑ ºüû x–eÌc ³Ö2c ¬µìU¯zÕÃS¦Lé\~ùå/‹ãØ©,P!„9í´Ó~uÒI'=âû~Úh4âf³öõõuúúúÂf³ÕjµXJ™¹®›YkË ·þV«{«ÕÀ½ª³«ao7³‡Û„B!„BÈ>`B!„BÈ~-/¼°²¶¬þí~ÑuŸ®>$FƒÞî0¸ú;Yy¿ã8€z½c +.°ÖæOŽ1»téÒ§~ò­o}ëåÛ·oïÛ×—»ïûñ¹çž{Û’%Kžö}?®ÕjI³ÙŒúûûþ¾¾²vìy^êºnb­M¥”eµoµòWw]OTé[]o½ªIZCSõ/!„B!„}æ\-B!„BÈþn‚˜w7UoW[?‹â6¯L ä_¸-/åm§˜vŠ‹ @*¥\cŒ›¦©E‘×étü]»v;vì¨íÚµ+ؽ{w­Óéazív;øæ7¿yÜc=6w_]ÞÓ¦MÛ~ÁÜ2sæÌaß÷“ ¢b¼ßp`` jµZa³ÙŒëõzìºnÂ9Ï*­Ÿ«- 3Œ­®Žµ\†ÁÝÕÀÕ–Ðè1 ô¨þ¥˜B!„BȾ‚*€ !„B!û½ß¡ ¸üùd­ Çü«âº Œ3RB)×uÇ=8çÜrÎ!„0œs#„°ï~÷»oY³fÍŸÿüç‹wïÞÝÜW–³ïûñqÇ÷ÀêÕ«òªÕ½¶øZä¡o5à­¶l6“LOüöz,à÷þB!„Byiùÿc#¤’›ÂÄIEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/main_window_plain.png0000664000175000017500000106351213001357026022446 0ustar potyrapotyra‰PNG  IHDR€8èÓÁCbKGDÿÿÿ ½§“ pHYsÃÃÇo¨dtIMEà  i° IDATxÚìwœõýÿŸ3»× Õ£]Dº`  |óKòµ*ÖÄBŒc7$*Q±%£¨‰F‚I,‰~MbCT¬X±ÐDà8št®×Ý™ùý±;{³{[f¶ÜÇûÉc¹Ý™Ï|úç3Ÿù¼æýù(óæÍ3ˆ¢(ÿªªŠ¢(¸\®ÀïÐsæ'Q ÃHØõ|$·vÜD;¯ëzXBÝš¿Cÿ†óÃz½ù=ÒuÖóáâ`º ç¸O¤ó‘®·Æ?Rb¥#’ûH•Ó:b§ÞÅSW“y½÷íí¶=ò"œ³®›õ]×u4M 3¿{½ÞÀ1«ûHu>Þôu”»DË Þk£õù¡ç¬¿ÃÝgb‹v}¬cvâÛžm:Qw‰\ßž~&^ªâ“êv˜lÂÕÙxÚ’]7ñ¶¡dŒÿ„ÎCGÖyIoû¤#Q·‰Ü_¢=ƒÙ=o¼’ñœ)‚ÐUp2~³ë6ÖØ5÷NýNtŒéÚT>Ë9¹Úu“깜Täq2ÂI¥ß©|:˜ž«ÚsÌ$ã³®•?vë¹5]±æ&ìÜ;œÌuDšw±;wz,Tg u46;ß­ëùÐã¡~[GºÎ<0þ|Î;ï<^~ùeÊËËmߣåu´òêׯûÛ߸òÊ+Y»v­ãzã¤-,,ä£'âäYçQ÷Ý:\ ˜^¸ßW·™þè¨þóŠ°Íš¬„3Ýï³õ·hþ+ô€0 Ð ÈTÌ¿û×Üy/=ö@ Ž13'\a[Å_«lý„‹“5™`g€c Ï©‘âkàdW´ w.ôX8!5œÀl­B…úKàåg¸ø;~휷“‡N²N½Éb;“¨p0—‰<˜„½^/š¦}÷z½8œÜ–¡ý®“t$rm¬rŒz´ôßæwë_óúÐA_¨ÛÐëC¯³ºé*“5ÉNK*ê@¨¿áï©(“T¥¥³?ð…«ÿvÚK¤sáÆX‚Ðqúq(ÝRÏh÷‚ÐsÉHŸ{Ï¡xAèÈ1l´>:Ü=:ÖóEg7؉gèõÑžƒíÜû;b,H8¹ÖÎüBg©ÃÉò¯3¦×é¸Jç€dµçHúO¸g†Xcy'ó…¡y.V-Ítkêc¦bu£iZ@C³ÆC×õ€;;ßà ÈfTU ǼÎünÅz5kzÂie±Ê#ZÙD›k Ÿkœ¸ r¯ ëàõøÊ¿È«€†uÿ1VÑW÷»5ôÙ¡µLóÛÀ'ôš¿uÀ0T‹X ºWëûæ¶Óa‡{ @UU\.Wà¯U6›:Ü›vnfvoÉéœZ[+O¸ èÄê7’Õi$ àpÇ"‰²á„c'çcùéšP?£¥3Z8ý’aï1Ö©¼IwFK¸DÛ{¸LÁ×*öjš†Çã üöxˆ­7C»qŠõPÏC@¢î:ëäA¤·ã" â£]ßуˆŽV±x‹çmöDó,m.ÑöÕ‘V‚‘t¢Y½;}Có9–5½º$bpךDI©vûýx,w£Y0ŲnŠ6ÆHå=V¡+‘ˆÀ›èóa,’mU™J+Õöx®Lô¾Ö+4 ‡ÞØ1ÕõHÆw]ëþcwéÿpÚ@,ñ1–?á ×O† ¾¡Ç"YûFrnÞH"³ÕR8t h«Óè)’•p¸ã¦ß‘,Íp½^/MMMó)4ŸÃm7­lÍßÖ9ýæææˆ~¬ÿn+ÿ|îñ¨uëÌY—1æ¨aÏ{<ð¶ {½x[šZ…\¥uùgÕ´Ÿë4¿ðkZü{[-ŸìmÍ££{gòÃAù¼¼µ&ìqÀ²¼sëRÏVXtÃâÎÿÝëõ¢kZPzÜÖŠ“«Ö3iP3“§žJï!cQ2{ ¨ièÍ5ìúî3Þ_ö*«÷÷@så ¿¦àkýnÍ¿‘,€“eq™¨`ìtß‹HV¿¡ >’_á–—µ{>+áhË3G³LŽæ¸kÂ¥%Ú±xËÔɨkNëL{=„µGzSáo{ì³Îò7ôfa}£ÝÈCo†ñÔ½Î6èŽ7þ©žôwbÕb´­&Q*Qq3‘º’Š:Б/3tÕÄhË Çjv­éeIháP›°êèñßÁÚÏFëwc‰¶±úého‘Ûéó¹ÏÉ‹‚ ©kHÖÒÏvŸù:êÙ0é´»ÝQGÝ»’%´G»þ`Z"9Ü3[{^{(ÛeœÖ5î vöu¤)ØY¡(Ö6iGôæ.Ü’Ë¡¢lèu‘DÜhâo8±7Ü~Ŧåo¸ï---466¶yã£ý¶®à*8|³z#›+v>7¦8lõ#¯×‹ÑâÁðzЛ›‚–XƲ°)úz1÷ÿ5K?+–E?ÙÛ$JŸ9ë2 Í˧¼mŽÏì“(Xøõ‹õ!ðX†×ƒæñ¥Ç >acï¾=´ôèÁÒ½øú?«¸øü2–ôEeÇö*žze5»kŠh©ÛOsãJŠŠp»ÝUµ·'p"p"û¬:±v²° ÖH¡Ýsñˆ¿fù†úm×h×Û¸üI–Åo2êD²ë_{ùŸ*ñ­3ù—H^„Z[­~;©¹¹9b¿d.!zL¦Õf{‰xN-‰<¨&ã¡%šep"¢o$ë§ËŽxxI֛܉–µI•dÄÛéÒÌ!:ûÃ’öãDu­í BWT:Ø÷¶›†D—–ŒåÖ΄v¬ø8±‚r²Lµ“´Ë£ ]»ãºdŽÿœ®4iLÏ3ŸÓgÃh/§â™ËÎ2šñä©|.MÖs·“ºh7§~ƚ׉'?âñï`½ÅB·ó<Ls v^"‰t°s/p²<´Ó¾Á*ÔFêw ¿á~›bn¤>,šø m­„#‰½¡ËF‡³6ÓÕØØHuuuPºÃ‰½Öï‘þF*EQhhh ±±‘¦¦&jjjÚ¸Ù\±Ë–寉éG¸ðhilÀÛÒBSm]À¢W4Õ'îª€Š %°7°ï·©·.=>϶¿>÷xÐo3nãó ¼u5>!µ­ÅoÐÇ¿ ´® áŒæ&4ÿ²ÕfYº Ã`çž½;e:?œ9 Õ¥²~Ûnî{â^”À·[ë™}îOÔ§€}û+yñ?oPñí—^6¤Å¯ïSÇÚ?ÝÀCŸ[³îhn\t c{øõðŠW˜s#,|ötŠü.*^™ÃMKÂ4ª¹ ùÇ馫*¾zè î)ókm`[yíÜ›0îz”~/Ïã^ã½z4Ý#Üüc5Þh›JÇjà‘öÁ w>ڲʡn#í§KÔu¹\¶­|Ã7¯`ׇÜú0\ùÛcèkS¶›Oæ±ÝŸ,à‰¥§òÓ_M_›ª“8{>½‹?ï˜ÅU?Lnàh›^úߌºŠÎMÀê|Ÿ-|Š·N¾˜›&ôIúÍ/ˆúr^þã |kþ>é"nŒæžÏîá/ߟŕ?,%Çâg}ùË<òÏõ>GÃÎägþóÖô|~ïÓ¼mqá Œ„±ç3î{úÿ¯aœ1ïÿÑw÷¿yô_ëÛ:vWü ÄNýfþ³è_pÆü ÄòÞ/¸ñ;–‹¦rÁuãèe°÷ ø+œÿËqôö·MÓØ½ò<÷å’'rú„ž¸ý{ûš³›ßÝnw Ÿ#õñ<¼¥r€ÜÙ'í¼yìt’9ÑýíÆ§=ÝíeedgÉäTXöÆóf¥“zžê·ÙŠñ ewéÓhË¥;­G±öÛ–å ½ ™Ð9xËÏIÿfg{ŠD,³¢½hb·_¶»L½ÔYA„ÄÆšÉp×ÞãÂTŒGÛciÛpqç…§p÷Úöžçh/áó`¨2þg}G"û·GzæˆÕ_ØyÄ®Ep¬tŲwÎün ÄáÄßP!8Ôm¸e¡ÍkL}(t…_s èpÂo47’µo¤ó¦õ¯¦i´øÎDõ#ÔÚØðz0t ½¥ü‚¯ï?¿e­â_ýý‡|åáÿ;= ÝÕF69sÖeŒËÕ˜‘¯£{[­­–Ç^ÿség/æÀj°0¬ièš7¨^¹2rºqòñ“ÈIÓÐõ&zf7P6z,¥½ö YýÇ3°wiFÝÜõŒ,éÉúu® «ÞP+_U ×>ÄUcz ª*5ß<ÌWÌá‚û^`f‘¢¶®cnV™Ò<Çó?ª¾ä÷—.gÊ¿`L÷ÐFÔƒÒ©“á*jÔ’VwË:ž1ÎgaIŠ®y–gc4vëéáλ\®ˆ7Zã7ñiúÎj6´ƒ‰¶·®Õ¼>ÔmèúëNEâpnÂÆMñ²+ªŠ+$ž±ò%V§iëwÌmÜvLô@ÄÂî¹ãq¸ìדڈDZ…¥Ó`Y%Mgºèf¬Û˪uÃ=£–*Ç@¿“õ+&§ð¡%ë_`àOn匾@Ý&^|è/¬,½•‰Ö Ùý)wþùMß÷#\¸ÜîÀzðu›^䑪̺êç† µŽM/=ÍÛ§ü„[&ö¡vã‹<üôJJnž@\·‰—ž~‡S.¹™ }ü¿×`è„ÿåæ›öðÙÝOÂ%73¾wp:ê÷­a=Àš}L+ëÖ*>»Tàd.¾i}¨gÓÿ=Ìâ/K¸q|oÿ9i1Û„KŽÅ¥#ºÑÒÒ‚ÇãñýÕõÀЦXlýír¹ûÿZo’±¨ì>x%2@ŽåW<ƒéTXkÚ©»N÷Ž~,7Ò±hû·§Up¢æñÖ‘H»ñˆñÆ;«ÞxEËD'iœ¶¯Ž¢YãÆ²ŠgÉõH‚°Ó6/t Ce"§«¥5Þ àh"vïÇÑ&´íô+±–”v2YžŠ•&Aº©°Ât–ÝcvâËòë`Z!ÊÉ O±îŸÉ\ù#™u*Ñú(χÞxZ^X=tïANæKÂ=?صŽf}º·o²„àÐý~CãjÅkΓ[¿‡ž7¿‡ Ã:G®iZ æ6‹á„[«PnYèPkæhâ°¹½£¦i÷®««àÂK~tüé'hã&œˆlúç€}{é¬iÍ zë¿füIQ,«’0- =3g]Æ“OÜ8~É¥706«…éY-èþ(µ ÀJà»uŸ_Ͳ÷o[Ø‹¡‡ì¬¢‘j; †›u;ù~ÏFºõ(¤©f¨*.÷¶mßN¦V »>%ë@ yn¯/1Ö ÷eZëù‚1×ð§[â§/~Éq¿K_V,°¥ôý~«˜õÀZù{”NeòÝïPQ=6 oYóWŒ î¥$¤âD{ƒ+ÒDh¸Fgwq; á–“ ·™·µqDšŒµ6N»¹‘¬#MòZך7_UVU%Ê`Ò‰à›è2 AîüX`›~ƒ™Î"¶ì;†~~±´nÏ7¬1†Óòãð/É76Ûɘükú™?ºõcÌpøª¡—«UÍ5 '1þ$ê6þ‹ß­Xòk7ëž]Ç´Kç3´[„ü¢øœ…¸\Ð}Ø Lã ¶î›D¡Udnªä[NåøB—ïenC9s’5-НTÔq½Ž½«¿åÔŸüþü!{‡’Ÿ®|óè6À×ú\®VØå /PŸUÀP{–[Å]ë‹+ÖýÊC?¡olÙyÈŠ6èLÆ`3Öˆ‰¼…™Ê78c WN~vö;•©øžRQ:êÍàÎÖ¾âyàpÒ–âm7v¯͉œCe’E,Rwϱ»a¬¥èí<£Ù¹Ÿ9µ€– FA{ssN®w¿ßD„èŽX½ÆÉ »N·R°û $cœŽm+‰ÖÕö¬¯2n:ª­D«ã±æub­ f§ÿw:I¶ó¢’!wÃíÿkµâ5χ@Yõ½P«ßPñøÛo¿eÙ²em,~M÷={—–žm«L½žFêkwå¡5]6l`Û¶m¼÷Þ{mò:;o cÍ ß‘Ý/è¸ùýý÷ß[¶¦vVõí7ÔnÛÊÖÞó-­øöûuù—zv+àR Üè¸ßy7¾OÀZ8„æ>#!¿¸ÍþÃÍ»¿gÿª5ÁeŽoùgs`/à5|Ö¿* ^4C Ú˜¼nTnßä—;èÇÕ°ÕŸ¼EI:žgýöƽ¥œyg( ª<ðü|Bz{ËùŸ!U4Wå“^÷=ZsÜia+›/Ç‚ßè^2•cîZNEÕ8z þÊÚ¦…øþó]¦Ñ”rÒ1wñvÅÅŒÓØÂš¿\po1Š[^9›ëŒ{yáŠQ”­¼röup&¼ò «8’ nžÃ°<ØõÑ­<ÌLf¾ò ¯Œ¼€›æ²ó¹…,^e8’ nšCY®AíwÏrÏʱÜ8{(yÔ²þÙ{X²Út6—f %`×GÌäµÀõsçdÉ’7XtÛŒ˜{³ÊrÜ: |ØÓ@™©û¡º\¸ØÍÖe0íRŸ|®uÙ _ïVî­&ë±ÐUœîëëÔº$ž‰Ãx¬“é.žAV¬›]+ŸH¿‰U½?p<Âc"–¾ÉŠ‹Ý=íø¥p¬y¢u¹3µ¯dM”Å»\z´¶kIv;q¡ã'Ä’9Ùët¿ÝX÷ 'ÖÂÑÎÙW2ö˜— FAºòä{2Çpv„V'V¾N¬„íˆ vÝ´×s¢ûV²î}íµBF¢VÀvêc²—„NžÀNâÙëkG?…ÄÊà`* ;íÔNýrÒOÆZ=0Ö\ˆµm†3 ^,‹`«a`è9«øk`«øk]hãO$ `Ó/Ó]Zzv̽yMΜuY`9ikþ+Š‚Çã ²-‡ì<ß2Ñ&¦?ÙÁÇÍï±—€öbè:š§Å¾Õ² tÿ^À::º_6…Øp|Xxkó‹yðùAñyðù\ó˚Ʊ;¿n-?Ë'`Ýë€uTßÀ:h À†¦¡k!ÀŠÖÄéöñÞg¯³©×`F—f³ëÀ÷Ì8êZ&Š¡òƒ!ͼüe!9ù.þóµcÿל98‡=Mm*bëïðÖÁŠå|@ämÛ4Q¢vH”N=†;ßÞLÕØ±lYÍbãBî+QZ BQP”jV>pëoþ/ø…âWξŽWF¾À‘(ü«²š™EËW+X½e&EÝ*X¾â|~tu%_?t#ßÝøÏŽö]ûêœyuÄ?8€%,a!ÿû dõX¯Ÿ=»‰k~÷$—³ŠE×>ȧÛþÌ)|çžæ?þ8¶¿Åe ^cõøŸ2"'-ZÄTÃvðÖ¼;y}Íx.î«$/¾7þáä­ý ¿zl>W3šKïxÿÝñ4¿~sc.èÏö¿ÞOÅOoãwGä£ëÛyïºxoðýŒ®^Âïþý~qß 5|û̾ ìÚlíÄ|¿W½²•‹n]È9¹5¬ÿû]<ýßqÜrÎ0_yÿ÷øù]ÜU;?¼…Å\ÀÍw #×ð‰¾ ~È•wK®ÒÚœv}tK]ÉogÔòݳ÷ðꆙ¿Š_=²óoü-CóZ³qÁÏ`þ#ð³ÇpXÅPXz<²™ÝÇrXíN¾\3’±3óPØõѽ,ô3˜qyî^^Ýp³ Aa ¯oŸË f“·ë#æ?3ˆyw̲ġÎR/w³â¾g`î ÜQ–‹),ß÷ñ<‹¬y}so¸ƒYlà¹{—°j×íL>Ìù {׊E¼1ã n?L‰àžVqÔ0 a?kY ¯à¶³ûR·áîìŸôºî,:³å¥ Ål¯–öÜJegý’s^x€ßÝFHX·¾è°{ÍßY;ýrÎT(™ÆÚ÷w3£,Ï' +KybÁRŸãi—ñk3m!ñ2o~.xÿï<ê±§øÔÙÛÇôVR¤} Ú®j¼t{,ý|(L";Ý8Ö2¶ÉxuºŒm{<à'Ë­]5cíiÙ+ ‡ò’žNÚ’Ó6¯5°ì ,Ï}<™Bp¬öoײˮÐ+M‰î…(‚ ¤v?Ýövöñh<{ÚÛÝ!Þ{a²W¿H´ œÔ§nååà ‡æý(Ñ¥¡ôµvú?§Bp¨uoèj²¡n€€oèw¸cV±Ø$œøIÐ5¯ÞfLCOP,2—ïKeee÷9%è{ëïÐãÁK7›tëQøn=n~W5l¿ãËs‹ß˜š€a Ò/ªè¾íR•V¸ÕÓÖ¯öÅÚî¥Ü·ð¦€ø{ýM ¹oáMÜ·ð&®¿i!( Çîþ&2ÁÙHðºÓ*¨>uEÃW¾, NÛc¸iôj\2p=ZÞv²òè?4 w~&Þ-(ŠÂØ>^F»šíÛ[ÈÉ®##¿–•ÞQ‘ðÌÖ^­Õ;øˆaœQTGoœ±ºùn%S9fÅÛl®KͪÅÞGqhؕ弳V¬ø)gYŽO®¬bæˆóùøÅrªŠaùŠ 8ÿü¿òÝ*Ž9ð+&MႪ ^Z¯¸œÙ–k'UVAÀyÜ}Ú 0 w ¯Ï½…gü‡&^÷0??ª{°Ãðå›î«T†á;Œ¿f#ó rìxø°²ŠSøÎ5ÿdFÿ¡œÅóìªù Ãó v¼=;ÿÙÏ1†sÌåcégÐ"£1˜xÇ…‘g@~1|µ›Ú|ö|ýÕm\kIë¨êôþükF]üÿ(ôÙ3ì¤À7‘—z>òÂ04×ïvêÿÀöRk õE~æÏ9¶`'å¯ÀéW%×}ÞÐ)œÎÔï<–# óý†]”¿ ðG~õª%AõìÚ÷*œ~e@üµ50µ¾aVx Àa¥œÆ#”ï:†œš/Y=r §ûÌ) àæ¿fq?°žY…~ÿN÷[&v ~öóŸßÀ m,w]›yÓ˜PTs);ñ4xt3»& Àˆ¹3ý‚k!cGÀʺzŽQr-éÌ¥ììÛ)‹–Ü¿aѶó¸þl§RøÎ=Ò§Ôæ–Àt±¯Þ"Gé ÛÞ s);ë7ü†Ý||ûí¼pÎ/9+ªG»ÙüL¿¼¯¯ô-aÚÚÇY½û×ñxZ`çÝßÁÿ<'‚…±…ÏåÊ# ‚öçh1Éz˜‰öàÖžêö¶R´ë—Ó·®íìeú;–p*VÅÚ 3”U*'ìÄ'Ë^'ñHÄÂ>–Ur²Úc{[Ù'kß»í*VzœXGKƒXw͉œ®>™s¨/ÿÛÞýi´ íHßcM~;µ¶“N”A8”H•¦“çƒd½tx°ŽS.‡ídU »÷½dƒÚc_`AžOÅq{W¿%ÚöÞOâYÍ1’åo$1ØŽº\s¸¥¢# ½‘–ˆ]ÖÙº´Ï­ —ËÝFd¶þmhh°÷ªên#bƒoÅOEuùVþt¥…-cSܽ÷îøöú;ñzêq×'¨.†Û n7®¬tSkõɮй tð~¿ ¾ýÁðk·­å»¶{)wÿöº@°†a yÿØÀ÷nÅL™¼‚w6¯dØbƒ î-jõÃçÐÿ{27?ñ‹À^Á¦FU?&­x‡ò‡òñù#¹fäù,yq3S†~¤)Ò `7.ºšÑ¡×n üÄ´5þ™þ×%L³¤'ØZPG÷ ¾¾ãfœýyf´ÆÝ0t¿X¬û6ׯ—§ºî‡ÿ\Õê'¹óŸÿËMO¥?5¬}êVVè:ºî»¾(/×–/`¹€¡ûÂÖ ƒ£¸ä×çqx ZË·ŸYãJÀÔW×õ “ö`!ÛŸ÷FkºKy|3o„˜iÅÐÍ ¸;íg 8&DÃÜõ‘¯æ·ÙÏØ°”Sh/Ðw2wÜ19ÈqÛþ¸/%§Á£åßÑkëjFŒ=\ÃÀôí´yw´±Ä5êjüç-þõÌ cžãÞ_/Ó|–½Áõ2$Ž¡ÇîŒ6×Ù¡Uü-#'\^k)³ìž g[  [2´5mÙ=ÎWT×N¢O.@ûÖÀ€ãs¢ìý܇£/›Æ¯b—_¼ N›ßÙîrÞxìvß_“Í»™Ô·¯¥¾ø®íS< –î£ÎLNȹ@¿dº¯[û£ÐO´‡ÂÐ~ª=Т=&cùèöXB¸½tNVvöþ&V ÑëD*ÞÖMd9éDêþÁо’¹´X´vîÅN›‹ÔΜ<‰Up×íC…I–C]øKõ¾ÀN'¯íLàDŽì;™¬{ ÂÁŠ“1œç®xDßh÷ 'a§zœšìík]U#Ö¸-žgCíÞ×™žad_`·wtßÔ‘õ>4 N—ºŽgõ„p~Dšo±^k‹ƒH–¡n€ å›Ã ÍÖ%žC݇‚MÍϺW°éoZZ:éYaÅf€–æ:®¾ö[åæõ4’–žÈ'«ìr¹q»Ü¨ŠpÓæz‹Ð1Œ–¾x[ -O·; ÃåFMOCÍÎAU•À¾¾.|K?«€Ëe€âÓ¦À¥†sxÓnþÕýA¿mÚnw›ãä´î—lªâ[ê9 þ *.½Õ ÚÏ0X”´LTÕ¾ÛPÒ¨¨Ë¥(¿€¼úJróUvÕ)Üó|Ý ºQ§g^&—LRq56á­of/½©ðô¥§êŠ*¦˜Â’®ël}ínüë$nùÓº5#HH 4Ýw^×5B–¬¶Ðâ)“Yq×]¬àîäF€ÀjøE⻟:‘Ç®M÷ Ë‹8aÒÇ,\ø1sþm€ÎyŸÜÄÂæ†GóÑòrÂÑsÏÓÇóÈU¾kéÒ[ã®…†¢ G†‘K~)|öþff  «ÿÆï?ƒq“}iÕ 0t MÓ|aø…tMóå“áÏÃÐ|¿5ê]+áǧP¨ëx«¶°âK0ÆkkÐ5Ÿhì„Í|5La:§q£¾æÉ—Ærë¹ÃV¹MÎ@øæ/_râ]ÇRXûÿxè¿ÀérkM«OØ^µøkNX0™¾F-ÞyfÌ£¦±Ë§^û„l£7E3`Ñ? èöÉÔmXÎkÌàŠ>:zµO 7ô>Ï€E|@ñm“±®Ü»x:,z”‹oc²õ„):‡ÔvB½‹¦ÃcKXÂpΙ‘å/‹ÞM‡Çý¢ßL Š š†¦×׬Ò3ùÍå¸ý±M|?qd ,õ>ÅLç1}TÌo&õêØðîë0ýrúè:Õ¦;]äkëo“:6¼ð_¾–3‡Û¾îþøß~מYJ–¦µæÃî¹ãqÖ³¾ªl~ ç0F_ËßWíbþÑ}¨Ûøo0K{ëì\±€'¸”ùG÷å¨ákùûªÌ?ºo› (îþ„ÅÌ?ÚÚîÍKáˆÙdÊÆ¦®£i¾rØ]¾Ný ·NlÍáºM/òгå|?¡}õà‚ü´œÓüiÒ4Í×\1Ú¼¬î{èG7_¤ˆ ÀÛ u¥7 ™¸·{m<¬¡ƒªd ÞîešêAw2ÄÄŽ¬‰ZQÅãgªÒx°> FËûHKBÇzQ©`éG&$áИüIÕÄ}¢{Fê㬄p(Nr ‚ tbYqµç5Q5÷½HéOÖK¹Éx~Iæµñî÷›ìe¦;²®wõñ§ }{*ü²3OèäeÑh+ñ…мÖy™pÀÖ={€ˆ íÿkµ †¶Ë=›nBý6ÉÈÈ ;;¯×v êúºJê«¢.Kmý›‘‘ðÛº%£ÛŽêNÃår“"Þ*ŠF ·Ì z¿‚'Èÿpe ( ii¾ðÒÓqçåš .ãRÜ~Ó_7 *F@v¹|°ü¦|"»9±ewk`*ŸË‰ìæ„–Ý­‹=û€†/ ¯¡âV¼†o“aðŠá[úÙ0Àëˆq»Qs²q»ÒƒÒæ¨N/auÍ2³k)Rš’«pÍ´"겊IËH'£ê[¨ÜŽ·¡™-é¼µ'‡Ì¢#ƒ,~C¿ë|úÀÕÌ 5—{žI‰ê{4XÌõg-¸8ÿÞç˜YdZ¦+Äð ¿èD&±‚ÏÎ Ãð‰Yà¡tt=ŸQçßȤ+ry`磹áÑ«Ý=Ÿ¢&Áǃ9b€†®çrØD€˜§¡ëùyÞuýóûøÙ¹æµùå®dT@HÕ}Ö³1, ‹Õ,@ÿñW1¸îs`ÜYœ5îs6i^/ÁWÃ0¼A‚°Oðõ À~ë`]£ïq·ñÓ¿ÞÆÕ/µæÍQ†¦ùã©yñzM÷mM­ix½fx½Y ™y!GÞýî¼ÉôÁ¿Dò¤™»å¾åfœv«^óûT&¾21b Ì÷¯×<â\®›ÔÇ/¢ùÜh~…´÷Äk9gëïXô›×ý×çœk'Ò[Ó¨ó%MÓè=ñ2¦¿þ8‹nkµvé|Žî;‘_ÌÙÆïÝæ·Μ_œÁ^Ù3ü÷,ºí †Ïùg ÉuÞ£÷.b°tøQôÍn5{O¼”io<Ác·‡ÄÅozjZg³û<±4®9¿8ƒÞzÕ˜eÙ‹ ×ÌfëƒðêˆÙ\3¡šVò€òÛD / ×mä½¥çw–—kŽ˜}5ÿ›k:ym÷§Üùç7ýg×úÜú…×’SgsÄCãÛf÷f_=ÞºÎnÃlWÙ”ž:›#z"àfÖUãé¥i½¯Ñk?uxËr¦Ì½–þðþ?Xô¾ytÓg !'ŒøëkwñØ"Ûp&ºôkG Jñ„ÛQBp¬V4á*™Ö‹±x©~Jæñ–LŽç¡Ëβv'+œú™èÀɶºïÌB±¶d}ˆ°³¤ºÓ¥Øc=@…ÆWâ®Ã¡ò–}WLg† 7w²ÂŒ/Y–Âíñü—èvNüHöü@¢eŸŠkíºg¿áhÏ©¸ÖŽŸòŒÕ¾õX踹dÔw;/°† /Ô}¸~&’…¯õœ=‚C÷‚„ÛÐïÑ–ˆglj€ééédegÓ³gOjjjñŒµq´ß¡ßÍßéé¸Ýi¤¥¥“™™V<Ư8D²üV”4 -b=0¥¥¥£¤gâJË #¿;–muq«­â®ªß.tÕ·<´ ø„á˜õ‰½ƒ­ÇÌ]REW1PuÐu¥u;bÿ2Ñ®¬\ô¬|òsƒEnåòË/7¼Õ[9\ù’£òª(Lk"#ËM“âÂ0 £ÙÃ=›÷÷Pžy=û!==—Ë…Ûíüµ~WU—Ë…Ëå TœD&”ã¹.ÚæÛ‘—«mû;œ`$±7ܲ֡×/ ì&Ò¹P¿#}u­8ÛÉ“`ÿkÙøâƒ|=êš6¢«Ýò5ÝÕmz‰?|3Š«~<˜Üuöíæs°‡ÛýôYdû>^¯ÇøkîÜÔÔøÝÒÒBsssÐ>Á'p)[—uO$vÅÏdä÷©ô;Þkc Î"íÙnn€m€ío´ïµ]Ç[­—‰Ôg§qîÈ6—Hyˆµ,’ݶÏ_;íÈî1¡ë<”K:»n:âé£íž‹ôÝ½g#iq?Ôê¾ ‚Óqœw‘Ü$cLï4™ËA'ãyÄé=1žßíyßKEþ&3œÎFGø×•ÆÐ2Nëºù‘¬eêíÞ‡œÜ?¢ÍɄΟÄ:fµ¢ 'ä†l­{øF:å•WòÔSOQXXÈqÇŸÄšµë¨««Ú78\ØÖãÑÜ„þ=zâ8žyæoÜrËÍüëÅ—#¦;VþÛ™ÿ;f[þ¸€×ÞÌöåK}b®bX–~V|KA+àV@Å@U}û«¾}P}‚põÓ·˜µŠn€Ž‚¡ùämEQñú·‘Õt¿;—WF6¹KX]Ù@Åg+˜}ÇÝ<ú裀ߨ0 ¼}ø`×vÔneb‡y<¤µÔ¡(5iyìÒrX^áf«6ˆþ%x<ž6dZÍ™~º\® ·" À©˜HˆuÌîAØ=ŠCÞÆp"ô†»&’HNv"öF²LŽ%\;àµó¢é {}ÂYüåZÏŽ¯ÖA¿‰¤·´Ð"7¨Ogg,œúm ¶VØ*‡~7›«à›ŠeŽâ±ˆ‰6hHÖÞ;NÓ–ˆ‹Ýkc½}mÏ>;ûÿ†‹K,ëF»{Jßh~$ZOœø¯…}2Û\2ÚW{Zˆ…[Þ94¾ñXÖDzMg4«àΰŸú~èP±î cÓd§#^‹ÚX}ˆÝ=cYAEZ ?÷?±6Aˆï90Ú˜0Úø1Ö}"Ñ1h*¬TYÝÉɾ•NWÕˆg®$Ñû^g³î¬m£#ý“1t×–Itþ¨³µ£DÒewå§ûÝGª÷Vk_;ÁVKßÐë­K@[Å]ëÑæµ¡ËB¿óÎ;Ì›7[n¹…¦¦&æœs.Y477ÅÝŽHkÇè 3#Ò’"fL?9¢;¿cS…=éä(bÀäãñ­úl ªþð UQPü:¶[õç­Ö¼ÉèQMàÖísA3TC ,í‹@:ûšZørãfÞþÏË\¶ð–-[ÖšžË/¿Ü0 ¯×K]]{vïÄÕ|€néM 虢ºØ¾¿…MiÙ‹Â~ýèÞ½;ÙÙÙm,€ÃYþšß}›5»âz›-Ò>qÑÜGrÎrÏ©eo¸k"‰µáü³º&ÞÚ„íú+NÑòÎÞÛ‚õT¼ögÖq §çØ*«Ðóû¾ú#Ï~p³¯M¯$tä‡âRgÉ›öŽK¸6ÉØü„Zûš­îM?tËrÛNÞví –™íY.‰–g"VÁ±ŽÅ²þur.’ßv½½¥¢>¦"ìDÞ0Ou›k‹âöz¨³kµi`Ÿ k`'ÖB×ÇHº»þ4Ñ{A2¬}í¸mïq¡ BW ’ɶÖMÔ‚8ÕVªÉ|.szßKä~œª{]{X'Û]²žeRñzôh¦OŸN¿~ýÂÆÓéV}Ñòlj»xïÏñô}‰ö—Éìoß~ûm¾ýöÛà|ºì²ËŒh[Í­"n¨Ðk=*øZ¿;1©w:m÷!ß®['K.‡új)*ÜF:É]´8År.Í‘ŽGË‹XeÔÑÂ§Z{åIGOZÙkLÑ6TÖ4­ÍrÏ'è¸uùèPá7Þ=àì¸k¯ëS]¦a_àX7ÿDா/p²_(èh«ùTäÅÁfŸŒÁhò‘|ä#ùÈG>ò‘|ä#ùÈG>íóA·¢Ä¶þRø”…'÷`¡ÿ÷ÙOVrۿ혢ø< |“ÛNþ?f¼]Éߊ€å¿àÜÅ›9áÂD7™<•Û7}Á’³Æ1â·­q€Èápg%kïô»|?Ï\z*s‹|éÙPök7•å,9k¸è÷~kÀİæÝÖ§ïç…±?âõbÅogß›Üvò-”=YÉߦ[qîI3xæí7üi‰•ï„OߦçQßÏ`¿?IIÐØa+J{ÂXéø”…›®cí¦Á’×··‰gyHš[ýÜúôtf7ûó5™edQüÿ×y»×'#NvÛâ©aò.r ®s©®ßáúÐ뢗m°áëNâít0SfNäŠÍ(SJyÙbÎ>õÁqm›¯;õB._¶ŒÛ§œ Ë_eãXظ|3ç_XÊÖåÿe‹P’P9BëD+ýù­ÜCòÑìï¶,âÜ“æñÌIIêAAAAAAh;°o Þ›ßYÊùE¡ÇEi1eë&6ð)ÏŸTÀݦÓ93Q”ÁIˆò`ÎÿgçoYÄ9S ¸í©*n/‰Þòk8ââ§ýM1Ä—ž' ö 9[–òúÊ ¹âŸƒC„Kº˜G‘LÉÙÜGÅV…ŠÏzø”»q¾'ÊçQd ·5~›ØÀ…\1Õ/¬ÏãŠ9·°¬BA)¶‘ï[7FIŸY~ɨM ¬\ÏVE!löÄLÇDn¾tš/.AyÏ4½›…~?‹.ºž³Ü—¤4…Ë_<—†ÔyÅîõɈ“ƒ¶Ç-‘ÚJH#Õõ;Bül—m¨‘êNâ)):éÇðË¥l»h:ë'2øÒq —¯' cÌúMlS¦±eÙZf\ùc^ÿ£Ï¯w_ NR= W'Þä7¥÷Åè“Ãä£ÙßµO¹Y ‚ ‚ ‚ ‚ ‚ ÂAƒâÛØŽ; Ô­õxà;ò§ÍrBª"^|÷üú%¦½ù& .^Å"f_ Ú\Å ”³øÌË!4®–ô(Š÷È鎔ñåýDnyg)ÛËoküó·|¯Øh;}‰•ÉtNw3o½û 'N‰’îXéP¢Ô­ÐsþmüLZ…øUñ¯¯μb_x±ÂJjþÆÓÃÖõpmóͤÇÕnýŽ·lmù‘¬z­\λïÂëʹ§8L|"æë`ßµ[†°é»sÉ]ÓQù[·´õ+¥uÂf¹ûSNÅw LKnýAAAAA!µ(`×8ÜR¶Öã–ïÅe åfýåjN¼¸4y±}çQ—Ìó Jå¼ûʧŒ9¥D ^Åz¾7Œ"EA©xƒ×¿€ÓBãª%38}\¸ø†¦;R>Ä›õ‘ü Ÿ/?—-ˆ§²è2ïnùn;}‰2˜ ¯¼¡u‡¿T³`ªY²xó<.˜j3J”ºz®¸Œ¡_œÉ“Ëç±`*TåÎ)ݸ3ßZ.,ŽtÆÞöÏ_<ØF'»ÞDn‹Áe©Ž$;®vë÷.ºªµü8÷"fÛ*[»õ#9¹^zÊŒ½CåôS†Xü´×öJO9îx‰Óï»¶ô”3ØpÇKœþÞçµø…æã$†nº‚¡Åú‰)ªÜ(AAAAAá`BQ”òmµ†dÅÁÊ›Ü:ð?œºíL‘Ì€ŠG9óøo¹RòCÊVˆ£/¹—!ï¿ÉEÅ’‚ ‚ ‚ ‚ ‚ ‚p°Ò=?ÝÎÐB§åÿòñ‡s©"Ë´,ìFVŽ¿‡É)[!.’¹d¹ ‚ ‚ ‚ ‚ ‚ À#›áŒãnà &ñë¦ä-ÂM<õÃQÜñ¹ùûbþ²ãJJ¤†HÙ ñ ëŠÀ‚ ‚ ‚ ‚ ‚ ‚p0£( Ê–ïëe hAAAAAAA„ƒœn¹i¸‘UAAAAAAAºî5k×J.‚ ‚ ‚ ‚ ‚ ‚ ‚ tÃ0d hAáeéÒ¥L›6M2BAAAAA踫««%A„C¹ ‚ ‚ ‚ ‚ ‚ ]U²@AAAAAAîíó3 IDAT¡kà¶þÈÎΠ¡¡!¬ãŠŠ ¶nÝñ|2ÉÎÎfРAK) ÂAÄÒ¥KyçwØ»woÊÃêÝ»7S§N=(—ïíÈ|:TÃvrÿ‰v/”¶-m[AAAA¡3ã=°sçNÖ­[ǤI“‚ŽoÞ¼™}ûöqüñÇ“›››òˆÕÕÕñùçŸc%%%RR‚pðú믳téRFŽɸqãR^MM /½ôº®3cÆ É'ù’a;­‘î…Ò¶¥m ‚ ‚ ‚ ‚ ‚ tv‚à††Ö­[ÖáÖ­[9ñÄÉÎΦ¥¥%Á`½`4£(:( †î%P.rrr˜0aï¾û®-¸±±‘mÛ¶Fuãr¹èÕ«7ݺuK(öõ•;øüù_ÒT»œ8ü¤«èY4EQÚ½«j›ØWÝ@S³—Œt7y™ägâRÕƒ>ìmÛ¶1pàÀ¸®mll¤rÿG×ääæÒ­{·„ãÝØØÈÊýŽ®ÉÍÉ‹Y/ÉT§åË—3jÔ(úôéC~~~ÊÃïß¿ \S$r’OÍ-^þýÆJÞþh (ÁõVÓuŽ]Â%³§õ] -€Š†ƒŒ ¾«³çpH†í¤~D»ÚºÃy½466R__¾ÓÓÓÉÍÍ%333©iܽ{7î4wøxx<ôí{Xponâ@e%ééémÜëšFVVvØ—¼¶¶-‚ ‚ ‚ ‚ ‚p(ÓfÖ8’µScc#ÙÙÙ455ß³gO`9HEQ0 ]×Ñ4 ]׃¾kšFfFYÈÈØÛÕˆn¨tï^JÏ^1”Þ@š¦‘Mcc£­„lݺ…ÿü÷ߌydD!¶¦¦EQ˜:õ$zöèw¦}÷Þ“ôîÛ†œ<šªX÷ÖwÆÝdw/l·‚ój:Ÿ¬ÞÁû_oã@Hs©tËrST˜ÏNFfº»Ë…m—¯¾X‰·ÙCKK³-÷ié4561mæi ‡ýåW_ÐÒÒb;ìôô ššš˜1ýôƒ¾CÙ·oôèу‚‚‚”‡çr¹èÑ£}ô‘ãk÷îÝË×kÊùrÕ&ë›Ç°áemêùoÊð¢ t]Úwéô ô]©Ê'Ã0¨««£®¾MÓÈÊÊ"?/Ÿ´´4Çùd ÛãñÐØØHcc#ÍÍÍäää ª*{öìAÓ´€Š¢úVEQPU•‚‚222ÈÊÊÂív;Û)º¡¡£.%-æK7‰Ôx, ÃàÀìÚµ‹ŒŒ ZZZ÷AUUñx<äää0hР¤ Á_}½’~ý Ñ ½í½ê»œuÆÙAǾÿþ{Ö®_Í€þÚ¸o¨o$33‹1£ÇƬ³‘^ÓuÝßÿµ`F 222p»Ý¶_”ÊÊÊŠ»ìAAAAAuí ¬™L6mÚÄÈ‘#çTUE×u ÈÁ¿z5nõkÒ\[p©ß£*µ€›m;¾¢w/͉n \ŽbbÒÑ“[YÄh¯×˨¨ØÌKß`ά9q[ìV~¿ŽÂÅÙÙ4VURPàfÇÚ·(;æ¼v)4WãÕ6²bõúöîIQ÷ ²2ݸ…†¦Öl©d˳sÅÉÏIï2a;a÷÷;9êä±ü¥úO¬÷®è®›ZÀœôs8"í>|ÿƒ¤„½s×NÆ?Ž_ýœò-‘÷ÊÌËÍäô“GRVÒ‡>|¿Ët*™™™äää$ÝÒ1ªªD&§”——3nôpŠ‹K™ÿ dtï‰nñKZ<233éß/4×7¤¹¶†ô]_Ó§· 8ﻜæÓw¾cëÖ 4]G×4@!??Ÿ ã'†µæŒ–OÖ°wìØ¢(¤§§søá‡“ŸŸÏ¨¬¬¤¦¦†úúzÅV^^=zô ?ß'<8p `éi¿öhaÛîß ƒ­škiÒ«…^éƒéQ‚Kq'½~ij°®ëlذÃ0(**ÂívîAªªâr¹ðxØÞØÄjP__Off&ÕÕÕ†Azzz@$V%`¦ÐBškYéHsmÀí:€¢d£(¼ž½¸ø]oF׳1è5ÒuuuTVVÛ³g†aÐÜ쳺lll¤©© ÝÐÑ5]×p»Ó˜0a"ûöïå_/þ“i§Nk)ËÆOuÅ{TïÿoÝNzq.ß—¯ ÿð“ÛÅ øãUÛywåúôÈãÀ*Z4ÈÏË¡°Ow\.7Åú°}×þüï/ùéÇ—Þ%ÂvÊfo9[27rBÞq¨xñâE7 ]Ç‹Žaè”7oæýÊ÷¤'5ìí;°vÓ>Іn¾p ]70tƒýûkùüëMô홡´¡¡Á‘`e—nݺÙlŠÛMZZZTQrÛþoyö“…1ý:¶ìGSö£”Ôúúzòó²ill@Ó ö쯡¡©UÔê–›…a¸\ù¹»ÈÎßw¹•ÏÀð`³ï²›O‡M›6²©|™ôêÙ‹ŠŠ † FNN6^¯—ʪ*v~ÿ=_¬üœc9UUQm.¿n »¾¾žaƱcÇ|ðAöîÝKFF`ÇŽìßï[Î<==ŒŒ 233ÉÍÍeÔ¨QÌš5‹²jÕª˜"´“úJ“VKy݇ìQVãq×âRÒ©mÞE~fOº§–’úád`Ã0X¿~=iii”””²òÛí¬ÜTÉ·ß7²¿®…t·Ê€ž™3¬“JïÞ}xë­·˜=»!‚ ‚ ‚ ‚ ‚°g55µñk%ûkwñìÐ=§7çžpC»ÅûoïÞKMã~f{-=òú&ìŸí=€¡Õ¢6ôXèÒ æ_ëqU©ÇíÞ…Ûµ·«Å5 E-¥žüü¯P• Tz¢°Mïð;MÓX»v-Û¶m ømûì§{÷n¸\> <ÇCMMµo:ÛǾ}»SSSCfFYYY|úÙ'wìqdff9Ê´Ò£góÙæ”1ÏÎOhÚùZ­Áí«S.kºÎÿ½û-¯ÆÈÒžŒz{ªXþyåÛ÷2 oê½ô(ÈcÛŽ=¬Û¼—‰#úôaǃ¢€ª@šËÀÀ@5À0ÀP Ù¨g¿¶—ÝÆ6ºËHs¥§&ŠâÛVo=Ô¬iÔ54SUÛˆÛÝ´´ä,—½eËÉÊÊJІa°wï^FŒA¯^ö…M—ËEZZZT§Yo _¿L:ò$êš*ñê-xô¼Z³ÿo Mõªë÷Ú‚âMŸÙG¹T…t74¡$°¬tÍ륶fÈt—£ºk@Šâ* ^¨Ê.4#ñ|Ú·o~ôÝ º3qâÑ466°~ý·Œ?·ÛÇë¡©© ¯×C÷‚îTTláé¿>EKs ……ý˜0~" ô…±Â>ì°Ãظq#o¾ù&|ðµµµx<ž@iš†ax<p»ÝTWWS]]×ëå”SN¡ÿþ¶ËÉNý¥±¥šj¶Q©l¤Ö³—žéEä©q»])©N÷®ªªÂãñPZ:˜å_náÍoöÑ»G§NêO¼Lš=lß[Ï[«w³agsN*£¬¬Œ 60zôh‹›UUÕìü~ùy¾›úôîÓÆM·nÝÑ·ìßë{‰ªªº’#GŒ«ìN?ýtN;í4öïßÏÀ)))å³µ[øì»}¬Û^Oe½—4·J¿îéLu“GAaa?ÒÒÒèׯÙÙÙWâ°[®"þ ‚ ‚ ‚ ‚ ‚`¥OÏnq À†a°yÏjÞ]û/š¨Á¥¶{Üõjþ»òOwø(é3"ÁÁÀ&¡°õ·Uô5-ÑÌȹT.µU©CQóP\ÃÀ5 ÅØƒê®Aa5ŠRú¾ˆVKf477Ó­[7¼^o`‰é´´´ÀrŸn·¯×Cmmm@Ìq©*ÙÙÙhšF}}=ý û³vÝöîÛÇÀeZfnJ'Ï¥âƒÇ(ì5„ºï¿$MíÉö/ÿIFÚ¤e ¢û sRRø»öÕ‘•áfÎô#3¬—ªÐ¿O>Cúpû“R×Ђx4œì,>^ý}ÒDØŽ ;.tïÁ(¨ŠŠF½^O¹g=ÕZõFî47î´¤¯(€ª‚¡£¨ †nàñzÙs ŽÆ¦Z¼^Üî4Ò3’'>WUUQ__Ÿ¿ ð½·—Ë…Ë]˜s¹\è†ÆÖkÙY½‘f­‘­‘fO=ÍZ#MžzFõšŽªª)€­+((†C÷úÞÃg½˜í"+³™4w#ª+Åu8¸[û.UY‹ªV£hû“’Ok×­aÀ€”––ðÝwß±k×NE¡²²’‚‚š›šhii¦©© §…Ñ£G£k ìØ±ƒåï¾ÍŒé§1 J¿f Ûâ.½ôRfΜɾ}û0 #°<±¹7°) gdd——Gaaa`ïß^½z9€cÕP²2òH«ËÄ¥¦‘Ö oOŠs&P]u èD°»°®ë¬Y³†‰'²ª|/o}³— #1nhºç¤¡* -^Šûv£O÷l>]·ƒ½·‰‹g cÅŠ8p€ÂÂä $êêjé×·?%%¥¤§·í×zöìɤ‰Ç~¿öÆ+ ÕÙ†† 8po}¾‰W?ßE¯yœ4¾„‚¼Lš½lÛSË«+w³v{ çOΈ#(//ì vpâîØ}äAAAAA8´Xÿýç,]µ„!ƒŽ ·Þ‡úê–vÃEcq¹TþûåL;r.‡÷Ÿ·_Žö6÷õµb. m|UU k ìû‡Ï"ü¿”`ÿqÂglм.—+ à†êwýwßR6¤Œ‚‚¾=!°ªe]oÉˬ,ŸðÚuk¨­­+ã ‡M¥zw9;Ö¾ÈÿgïΣãºîÏï[j/ö•îâ".Ú(ŠZ,[2%[¶,Ûr;Ž'±Ç'œœî>½Ì9}zÒ™3O'éxÒ™žsÚvd'Žãı-ɶlÙZ)Z)R¤DŠû{µ¿õÎ…*$H èõ÷ÑÁ!뾺ï¾[TýÞï÷KÚ,û< S„Å)Î9ÜNcßÀ’Ÿü±©;6v2rò5þúÿ4ûdc 477Qvq~°ç ï®Ï¥RŠ­[·rÛm·-¨ëO{ì¹xžÇÄØø%eÉÇ¡4R$­Òè’Bc ´"ŒxNïÅS¶eÕ¥l‘¢U\ðØãã?çØ…|–DÔǤ„š^€n¨93R$ B ÓÄ0-ŠÅ"ÅÂÒ”m¾á†èììä™gžáî»ï¾¦çr‡çŸž‡~xÁ˜ZÉ×+e Öö‹°öŸÀ`úW?ôÐ:¬fçšæuÙHgî]ZkÐè™ç³Ú;<—ËQ*•ˆÛ–maj=½o]t粯VAw^ótnð÷Ýw?‡æü…óôõõQ)Wxýà6¬ßHss~à„!¶mÅ(—˦¢!Ó@¡XäõC¯³|yÿ¼ÆN&“”J%‚  ··—ÞÞ^ºººhnnƶmÇ¡X,299I©Tª+• ®ëljÅbó.?=Ÿõh‚›%½ék§¡I4’ÂT¢^#ÑN ÞXýM*Ò„©®ýfŽ…ô§££ƒ©B…ç2ÐÛÆÎ ]¤6¶¥ðM¨Mа¼#EÙëàÙ½g8y!GOO.\Xt8 5gG]¾þÒ~z;¬íˆFM¾òý·Ëù÷¿u׬ÇOL•yíèÏï?ÇúþVîØÜ‹çköcÏ¡1Öt'XÝš÷¹ûÎw¾ƒmÛ|æ3Ÿá¹½GùÒ÷Óߑྭ+éhNA¨É—]2‘8¹q‡_;Cnr‚ÿð›ï`hhˆÏ}îsœ;w®þü3K@_¯ë^!„B!„B!fªx%öŸ|–ù*·oz'Yç<¦N.èóþ¥â‡®UdݪM|ýå?çÞÂGÙ2p7ñHrÁϵàÀ ‚à’ЗVJŠ¡i $Ž Ô[hí‚*ú'ÐfŒPg¯ÒCS)E†õŒ´0¬ö=t\—Œa°mëM(¥˜˜˜ P,Ö³ù€z9hÃ0hii!‰,:}Ú°lnz/ù ß&‘öé\µ•ÐëcÿW1üôÓêŸà_úVdiK w6§1¼)NLx<üáñ½Ÿ™~mšØÐ$#9TRq}’0lb½;ÑhÐpC_ЉÁÃŒŽŽÒÓÓós3ö\N?ÁйóxÞ¥wa´¶¶Â ¼ÌXíŠcCo`< QmWKA6 ™ M‘…õáßÀâBÕö®HÄBëjfkÌ ê›z$Á0 b±LÓ%Ôit06Ž |=½w…Vt^{×Õæ©R©päÈaŠ…<ßûî“”ÊeÞûž÷âû>žW ˆ?ÿÂsØ–E<§¹¹…R¹D!WÀ|lË&“i ‹rúÔ)‚ ¸lïæ™c†A{{;ƒƒƒõý0ŸÏÓÞÞ^/“]’OŸÇqêåÆ[[[´Îg}Œϲ{èïpÍ)ª· hOÁ™$c$8xæEügæÎ¾o˯Ҟé]ðx#Sgùþþ¯ÎùùçÁ3»ÙÞtSåQŠÆ$›o¸…½g¿ÇÈÔYÞ±ñÃ4$ÇZPà¹Ô²èÎ;GooõÅÎn@³ŒP÷†eGPê à‘›¡©uA¸œ h»âxJ)‚ Àu\׫—€ö<¯^.Vkë¹är9t83\ýÞ2Í+–žœßcòÌç阠±e#ÇXäèãO³ÕoeE¼‹§^~™ì©S´­Y³¤‹±¥1Ή·&èïï'³9vf˜S#eúº[±­«–73žsqÜ€ ¹ç¶uLV|F'Š?}{¶ìD9þü‚ƒ°?ͱç2•ÍÒÙÓÅwOò¼ó£+>vk|¿nþ6£ÃÃÄM €kV/^c7LNféììfÏþ!^yíä»rU'¸ÿFF†1-“jæ¨Æð«Ze¨%[J)ÚÚÚ"•JÕ³Þ£Ñ(©ÔÜ™}aR(ê×P2™dpp;v\ßUײþÃêÕ9®fû×}c¯g+…2 âñ^0˜âÑ8†i‹·‰f0Ì!4„o¡9‡šÞ»"±; u?Z/¾){†¼ùæ _`×® ‚€ŠSÁ÷ýzÀÕ²l¶m» Ë4<žÇÓ?0Àテ0 9qâû^ÛG<§T*±gÏKÜ~ûŽyÝ`šf=lÛ6¹\ÇqˆD"³z%×z—Ëe”R477_S‚Ë·0¢nd”r0Eµ^„Æ ª™úv4_«'bFŠ˜›&ÔÁ’Œ¿÷ÂR©D$¡Pq|È$#!„!øþŒvZS¬øD,ƒŽ–$ûŽaYÖ¼²Œ/çÀÑa.d¢‹¶¦…€WŽUH'£ìÜ<ûOí9Á«G†¸qU‡NŽÓ˜iàÄù)²&kzª08^¡â„— ÏõÚ;::Í3’ó¸se#¦iàùÕ¾Ñ: Ña:¬ÞĆôv¤ùþÞsüÚÝ}8Ž#ÿÂB!„B!„BüT¸¾Ã—Ÿû?H7¤YÙ¿†‘ÂI*~‰ ôélíåæwh¿³Ð!Z‡„aÀëÇÌæ©;ž<Ë¡ ϲuíʨVNž® |Ûæ»èléetè%7GÁ¤£scÙS<öÜŸòÉ{ÿ3Q;6ï±Ôx®’̵,ºåË—W³› ƒ0 çÈŽ²_Ña!çQ:‡aF9zÒgsæV¼p šÌÇ«ýÜ4-mðÒùq”ZÆë'àÉÿþÊŒG^>ƒèK¯¼†Ö|÷Lã©ù•»¸ëÆù—á4­V¬ƒ³?vøáßý­|ቃLU|BÃâ­sSx~ˆë ŽCÍÚÞ ¹|žßÿà4&-Ò«WóÔSO±mÛ¶…e‰.`ìócS¸•"kºÓŒóÑ{–aQaõbǾ‚o„_ã‘®`àè´ÆÓZ‡”u™WGöóˆ.úšáSÕ”‚FÕÃ-ö-èE¦òûÙ²iåtÖêŒ f¨ µÆsޤtG?a÷ÊD£QÒ 6¬í‚pië ðôÓO£µfݺu(¥8wîÜe3 -Ëb``€¶¶6òù<§NÂ÷}2™ÌuÝ\«¡ßéMS‡ÕÜ_âúý“ ײMÃ$‘Hb׫:$’I ›-q~¸‰tb€xT‹Ž’J†˜Ó{WcÛíøz묽k¡ŠÅ"Ù V®\IT*ÕìÚÚ /Zk"ÑÉd ßóhok#—Ëa™†aày­­-tMgS&qžyöG477³~ý†yC,£µµ•ññqLÓdbb‚––‚ ¨WZ€jyð hkk[’Rî—]JSÑ9Êádýgµ¤zØf Pø¡‹Ò­Â%¾U0f¶?ÐT{ ûAˆ¡4¡V˜FµTs¾ì†‰ˆ…ãÕýÁó@÷ƒÑÉjIîTÂâüh™ñ)‹¾žv’Qƒ®Ö·oøØÿÖ0?Ú{šGßyìXÅŸ~ñB#B2!U¼ïÎ^ŽžËqöÜ›û,lk~Ù·år­5…’Ë©sClHpî\€m‚"$|*ŽK¹âò½ö1‘« ­8Í]«±, Çqê%Ÿav h!„B!„B!„¸üÀçôè›üãž?gÝÊDã6ƒ¹#ÚŸŽWøì=ÿ‚Ðà <¼ÀÁ\üÐ%m&“j¹¦Ä¨t²‘ ï$'‹a˜ʬ&ª)ÅààéS@à‡*YZS=DâqþïÇ?͇nûCV´oÀ4¯žàº ÀÃÃ×”¼­eÑÍ,z¹/HèÍhÚ Ã (rX¤8ü–CïÀz‚0äêÏ]©Tæ<ŽZF\±˺–±uã üjaõXf=xú×z„OÍú3ËPœ>?A¾ì-è)3AëªÏòýÿôíG“¶-^"uG ·?²‹þ›LJ…qÆGÃÉ¢©ÿ÷0Ìk–?~œ®®.,ËÂ÷}Z2q>xÏþçã¯ãTŽ2š-QqlÛd]_Ù‰,÷níbíòjzx<'™LræÌ®ÏØA–l9©´7Æ8}ú4½½½‹ûŠçBmj œÎ(e:ë1 “ G«¥|͆2ø«ø_ÓiU]+Aàã”+‹ …Ö TXÍSÔš@ä …R…”e‹E1 ƒ÷û說¡¡¾}ß§âT–tóÊd2õ>ËCCCõŸ­^½º~ýP¿,ªA¨±±1†††0M“Ûn»íšÊÒú¾ïû—ìü•{ ðH'Í«¶£u€V˜!Z»T˜Â7ŠXE,ç…#_ç¹c_Ã÷}œŠÃ>ð7¬ìض¯ÞuÕqÔ¸Ö/r¦Ze渗dI¡Yø(ãüð>4Õ¾‰w9¾ïSqÁˆÛ€l±úañB>î×€mV3–Ñ…g•2¹ñÑ_ãûO=MºO³ãîcýýë‰7øà%¹@Cs…Â!ÆŽþ_´®þ# 3~M‹bÏž=<òÈ#¸®[Ïìn‰óëï^ËŸ~y/MÍDlÇéïLSÌ娨›äöõ˜†ªünºé&vïÞ=ï ì|ÇnqÂqsŠ›n£­%ÃðÈ0AÐÕÙE>ŸcõêÕ û*†¢Fƒ¡ 4>¡©9Y9Âx8Н}¢F'ÛF¯¾òÊôùûu‡Þ =]W(4Êx»ßçÈHbÙ!ll;‚RðÊ«¯Ì^€@Å©Ðß7°ä›X:Æ4Mr¹a2::zɵjYÍÍÍôôôÔ³—ºôú˜}5þúÿ‡FžeëÚíLTñ‚ C…ㄆKÙŸ fñÌ2–a€ÖdõIÖnZAWj5çÏ Ñ]GoËš%+9ö¬½ëZçéÜàY@aY6†a¢Tõ˜R¹LàûD"Ñj¦e±@¡§R©`&¥Rž .‹Å0L…çº8aˆç{Øv„l6K©Tº$|¹sÕ>Òa255ÅÔÔ‰D¢.‹455ÑØØ¸¤ëà *œÈ¿Œ–錯™þójß\£z…OïÑL¬ÔͺØ."fœ1ç$£å#¨ ‚eD—l}Ì·pSSÇ熽´$‡/а‰G “¨m`Õ€­i(”‚·ÎŒñ‰wö3>>HSSÓ¢ç/•ˆ`ÐÓj“IÆ™(YئAkc¼ú>à¼zxˆÑl‰Ï|hM Õ÷?Ô¤Q\/ bøØ–mxAç.‰àº. É qK12Q¤1a‘ˆ˜Jã{.…b™©|ۨy‡¾ö$åryɪ@!„B!„B!Ä||ÿÀß³ÿìX=°–I÷ùüøt›H5kÒ„”ƒ<%/‡ë— ü¥-„êÀ!~àÔÀ–ab*ƒP)´ ):Ü,¯Œçº~Àù©ã´$—±²ùf~ôæß3Ya×Ö_qœ%ë<«ß/W €]?Õ^kaô§Ó£¶9;X¬/ùæâ ÖT¼ˆ¾ÒX\vî†÷½Îÿ‚ŸÿzâDÌ×pŠqtPFûE‚ÊY ÕŽI0þÖŸÐØÿ)ìxï¢Æ:}ú4­­­Äb1ŠÅj/ÌJ¥B´¦m>ýžµ|é©ã t´Pr5–öhˆy¼wû*ÂÀ¥Rñë==3™ †apæÌúúú–hìcìXa±ª§ÁÁsXFµtl¥RAf2‰çúä*¹}ŵ (aVKª¢]ä¸w„I5‰e*,eãzy'O¨5]]8Žƒëº cYË–÷‘›`÷sϳyÛVÉäUÇVʨ./C1]uÇËSr<”a`®ëRÈçÑZÓÕÙ‰S©=‚eYô.[N6;Î />Ç–-ÛH&’×¼‰†mÛ”Ëe"‘J)lÛ®—u®õsùU».®—õÝ;/ ràØn:º:8=uW—wNãè˜!¶¥ª™Ù¡âØänÚ+1'’P‰q禵Kv<³ÀJaŠ#‡O2>2Îò½4ôw„!Ùl¶Þ·6·Õ›¾w]Α#‡¹ëλð|o:«Ò@)E4ÁJ$°, Ó4 Z:Ôd2 Ø›¯ïgÛÖ›°L›R¹„ãT¨T*¸®ËÈÈ…b‘¦¦…5‡onnÆ÷}&&&êsU,I¥R47_ù¹²…a¾þãÿÊ}w±µÿØVôªã/áˆó]”­¹0yˆzñTe€Òo€ eb„2j+3·b(ƒîäZ Þ­„: !Ú¾$çc!ï…--->|˜JqŠûnîã±£!¥³)^½1“ÐT¡¦äø¼òæ0k{Ò4ÇC^Üw’›nºiQÇ8~žï|ç;¼ñÆõç“ÐB!„B!„Bˆëihò4NP$sFÉUƱ,ejÂÀ¥èg)øã8A ´F‡šÀ <8ăžkŠ¥ø¡ËT%ÏTeË6Qaˆ6}|]Á K„TN¡Ò„fµåh„xƒ8¸A™\iüªã,¨°Rê’ŒFd¾YÀµàSMµ§¯9çx—ãº.Ž«°­jØ2®œõ5óTh %7ÀõCš,»Ú—1¶øL¤tG'9'ŠçV0ÍQÓTŠE  Cƒ rŽÀ2‰Do`òôÿ Óû[D’ý # CNœ8ÁÊ•+Éçóø¾_Ÿ³j=ðžÖ÷mmå;¯ŽÐÔÔ„_γkg®ëbšÕ¾·µ à èïïçØ±c,[¶ìŠÙÖó»ÂØ y¨”‹˜ ’‰ÉxP8•Ë{{Ø»oï¼Ç¾šÚY7 ZsÁdÄ¿@E•ˆ6BE£´¥Û°,“ÓgÏV×nàÓÔÒB>Ÿg2;Icsù©¥Ri^`Ó º ”¡™ÌÉʸA€i™ÓiÉ‹´d2¤ß|‹ÿüÍúj4€º—Ñ1^(0K’ܶíš7±X,FSS¯¼òJ=Ózpp^{í5&''éë룯¯ññqöíÛGÜvÛmלAY«pñyEâÜ»þ£üË«Ÿgl|„¶¦^^ý®ÊaÚ Ã4ëU´Ö4ÙËhW2~¶ÄgÞñ™#XëK»¨MvÆÞU*U8òæ zZ¢|à;xöå“=rŠx<ÎêÕ«ë¯sí]K1O¥r Ã4qŠ<¯N§ÒØ‘¶mcÛår…L©H±Xdjj’|>㌗Ê$S)\סâTpœjdÃ0iniá…ŸçWýÕy£™R©ù|žd2É… ( ôõõ]ñï¸~…o¿ö×lÛ´žSöpx÷‹|üÎÿýŠcÚgÄ9N˜¢h ‹Ž0U>‰a…håÏÏP Œ¯R ÄÇ6ã„X˜†Z_òš®e}Ì·°RŠ7òÚk¯qÓM7ñþ|óÅS ·6°²'C[cŒ0Ô gK:1FkC”oé¡”ÃqÚò1L0L…mV[êPƒh£š¹«Ý·µf$ŽÍ—Ö?ô)–G¯œÅ ,ÛÀŠ( «úeR;ô5¨jÕÙŽÔ­ær£w®úïØôᫎµ À–e]ð˜™E7óÅÎ úÖ>,ž+¬”" Ã9À–5wãZùa/T¤ìj¹TËTsfû^ü£ „ŠàËPÄlßóID­E/eÆ u§’s…C4ebx 3bb˜·2Lày¤ZÞAöÔÿCC׈7og¾E«s¹AÐÜÜLõ/˲°,«ðq]n\Ñ„ï|ýù³üÖ»WÐÑ” Ö3ǩܛ››"—Ë]±¤ëBÆ>Xäô”M)±™gO*Ì3ãø~tµF³y¾L¡²ŒÃ'ЬHä®:öÕ'_QÖûûQhr:oİ ¨-‹)ªå¡І–FÒ©4åJ™x,FC&ÃÈÈ0CçÏÓÛßÏ|Cz …ãùœÉ¡Ñ8ŽO¨§o’0«¯·ziºäŸž—~Lk{û¥Âø(EãÔÃñtñ‹×¼‰†iš¤R)6o¾¨öð¶m›ÇŸx‚7âÑGeݺuœÀÑ£oÑÛÛK<ž ‹‘L¦H%“Ä à ŸÏ‰D0 ß÷)•Ëd³“lX¿æ¦&<Ï#bGˆÇâKE¢ÑêÍ §Nºdß¾Ò9šy®”RD"’É$W >ÿcRi‹öæF¢ö:^>øÚUÇÖ¡eDª{¡ ¨%žÒø„wiÛ£LÁäÈÔ³4F»¯œaÈ;Å--¢=9pÍëc!=€¡Z6»««‹}ûö±eËÚ\Ï‹‡Îó̾Ód‹CÑÛžâÞ­ËXÞb5|ÎcY£££|ík_ãá‡&™œökc‚ßzÿVâþƒc%ÊNÀT¡‚ï:|î+»™,úØ&¬îmâ|ãUþ×ßJ4bq~,OÞT2F¾äP{ëÍ–ùÂoaÅÒ¤âÑy]ÛJ)ºººØ¿?Û·oç‘;WñõgŽ1–´XÖ£1i†š‰¼Ç©‘2½MBqøË䆞 eÕbE®^žµVŠõ­·ÞâÔ©SWžàÃ[!?rœ}#—\ww7ZkÆÇǯ„]ÈØ…BžR´™•ë×1Yt 5#–©d•‰!t0vÕ±¯º”Áá#¼qþàôÅcã8Õ \<¯%áò°õ~ ¥XÑÛ2`z¡ L“®Žv¦&§˜Êçæ42 Å}w¬áøéjo][8N€X<Žšîß³c-S/~›Öövüï|eYh߇éqŒd’°T"uÓMŒ?¾¤Y¡Pà/þò¯Øqûöêµ£ e€ª‰ ÓDÕ0šššêÁãë%jÇy÷†ßä›>OGÏ ”ŒÑé,`ÓRXF„U©;8ýÚwô}„å-7\—㘙üþà!Ö­^†ã8„aÈ2¥Ø¸a GOÑ¿¼}º,ó¥ûÚR¹åæ[yq÷ <õÔSx¾?½_*L£z~ªÇëáû>à>¶m³fÍZn¹å6â±¾ï“H$) äó9LÓÄu½éþÅ‹³Òà…J–ã#¯²by?Egœ£gϰiÙ½Wß? ‹¶ØrN£¤’Ý„>Ž °"%<]ª¾Nßšá©"Vjœãåïc”#„V‘0VÆ*´á…Î’“…¾®Y³†h4Ê«¯¾Jgg'»6·óá}D"|ß§P(044ÄKÏ©—Ø6 ƒX,F¹\æ±Çc×®],_¾|^ã-ko`Y{?~y w*`ªPÆ×ˆE83R¦­!Â'ß·…¿{ê%Íç¾²›ö¦ožcY{§‹”Ÿg{}“ýGÇéiŠðkï^ÉÊeóëKüÄOðä“OÒÒÒ‚ëºÜyç´`3Ï8Ç«‡‡È\lK1Еá¡kYÞb3}ÇljD"8ŽÃç?ÿyNŸ>ïûRZ!„B!„BqÝÊdm×Í|æÉÿ|ößoêd]kg½fÓ2¸·ë÷ªÆ"Ãj@6 ªá7Gö†!A`šæ¼ãa†!ùâ$ë:vb˜Õ8€a‚2†íí<7öÿáy.¦c™½g4NvÌåwïü™TèjrÚÕ’ùÔx®ÀP-XÖßßO†—ds–€žùgÀœ§Ë|5°áRö«½…ŠO±â„š Ôø¡®¦eW¸äï«ßŸ²ã,>àe˜1¬XNù*L Â,ïO÷PÊaÇÛ(Nž ÝžÁ03d@,µ–Òä¼ÊؼÀ¾ïã8“““Ü{ï½ŒŽŽ^ö±|ó›ßäÑG½ìc‚ àÉ'ŸÄ4Í«<2öÞ½{ ´"1qýsª«á×1 ¯TÀÁ¹¦ Îê±|¶ù³ØÓåS]Çej*@scµ´¨Vê§ì ÃÁóçfõ½­‰F£ô¯\ACCüÆŸ_{äl{zl×%—›4MMÍõµ†šS/L_–EÓ£‚ÖL<öÑ•+iýÝßeøÏþ Â} ¥—¬s¥X>0ÀßÿÓ¿ð{Ÿù_¥»³˲0Lƒr¹ÌØè[6oª7r¬]»öš²€çS^xYËjÜø;|㵿`í wsÊÛ£²Äb1z£71xx’›ºßË­«v]õ5.ÖÌ àU†A¥RÁó¼ú~ÕÝž®ö°¾(ø›J¥–´Tvkk+ï{èýo¿® @Ãé¿ÀZ·+~3áëñ/äé»a;%£•PE°-‹H$B©TÂqÊŹ|Žb±@±Xdrj’|¾À®w?pɱÎçÍü³Úž~¥¬á#ç_&0'°ì8åR ¼6ôÞ1¯±û· Ñòibf #jò–û~ƒÙ,›V6óþÛ{ˆ™Á¼¯í||­5<ûì³ ðžmüÊݳ‚ß.\àÅgߤ¥¥¥þ“D"Á]wÝÅðð0Û¶m£½½}I®m!„B!„B!„¸œÚg݉hŠßü¯yöÈ×|‹+ocÄ?DYeæ¥çö1Ð|#–eašfýk}ËÝ´g–-8YL)E[C›:î%ÈÕ„¯éŠ»¾ïsrü·ÞµËVÄ­:Ì ŒõiÒ=Ü·ùƒÄìĬ纚õž+•9‚Kúb^<‰ç:°¹žûr©Ó†a>%W1Qô™tË8~X RTG™q sLòŒor%ωE¬kZ0‘†mLŽ?N²a7?FqªH4å`ÇÛñý ¬ØrJ“#´ößIqbˆ‰ I÷ÿ1ÚZ†ëºØ¶}ŦµÆ÷}Â0$‰páÂ…Ë>¶§§‡o|ã|ò“Ÿ¼â1ׂ]WËî[ÈØŽSÁHDð‚ê]^êjVvj‚@Ó˜4™ÌŽQ“×Tæ³³»›}/¿ÊëÜK׎iaÔ2Ík™ƒ¾O,çö;w^Òǵ¶.MÓœW𳫳‡½û^fÿs¬[Uof;½fÏœ¡ª™¿ZÓùoÿ-f&CjçN¬æf‚Bû:lb–e“šÑ¿vtt”ûï{MMœ8q’r¹ŒãTøìg> À¯³nݺŸHð¥¿m÷®ûß;úßé^³‘óÁ^ÚíUä5íæ ì\ûȼ^ãbÕö®ÙëסT*Õ×ÀÅU jÐë;?;w8CH/Aé5TË*>tç[ ä¥ñõ\…•?L$šCe¶¡rƒ8…[V––æV¶n¹‰þE—ªž¼œyÍäÊ8ý ¬êÜ‚ç;¼|òq6­]©"¼qú8ë:î¥!ÞŒçyWÇ0LVdn¦¿a+J q¢PÝMÃ"¶`•±tœÀ*âdz8:VÕÔåô¯å<Í7ó÷b™L†M›6Q©T(•JõLsÛ¶I&“D"–-[Æ·¾õ-*• õ¹F£<ñÄÜu×]Üxãó>þžö$¿ýÐjö:ËÍ7ôqë–hLÇøÄ{6sðÄçÇ lZÙΪeMDl“?þØveïk{¹{û ´7ÇI˜““¹Eí5ÍÍÍ$ Ξ=Ë… ª7™LWëð}ŸJ¥‚iš=z”¶¶¶YÁï¶¶6öíÛǦM›èîî¾.YöB!„B!„Bo'º˜¦ISªw¬û5öŸy–—ý7l¾…ㆫڶrß ŸÀ¶m¬é„¬ZËÕH$²àJªJ):›–óèŽ?Äu]ÇÁu]\×Åó<¾ÿæQ†Kc¢Ö`‡÷ŸfSú!6÷ÞMC²©Þ–u¾YÇ ê<—™Nóyqg•-†mÛh å0‚í˜_­æ«jÁÝ‹zN^ôM-H¬Œå*Ä£¦±ø›ÇÈ*|ÝKŒ ¬¤Ãè¹A»73vnœÆÎòc ÎyרJ´çÏðíJ¥‘H„0 ‰ÅbW' «AîT*Ed:ãu.©T ˲®šÉ†á¬2¸K1¶©S®Íg§p¼ 6Ó³æÞñCÜJ ßö¯é"í]ÞG{GGÞxƒãGŽ2°bñdœÀpÊJåòtVnŽ©ÉIV®]C¥\æ…>ËÛ¶ÐÒÖºè±ûúúèèèàÍÃopôØV ¬ žHø>§LyÆØ“““tGcà— ˜xì1ÌL†Þÿöß(íÙÃÉ} ]./ÙæU ö)¥H¥SlÞ¼s.¯´I‹Åõ$½7p‚Ùç|UûVNîäøÉçY¿~Syœ‘€][>ˆãÍžCD¬Ø’†æÚ»2™ étº>W3y=…K˜©}É›OPÂ.¿…r“ÒÝXÝ»œbͻؙèCyS$GOikÃlèBÝO˜+áÇ]Jm»ðS+ç\ 1W–<€8<ûÆ×ɺG8xîi&‹áx%qMÄÒds9ŠÅ€ ½w,øÍÏTÓoI:D¡QX:‚]j¢Ÿ{èL®ÁÓgó8¯žÇN¸øÚ™Þc–®gìbÞ µÖõ»µjóV{žZÝ÷}<Ï#‹ñž÷¼‡þð‡õö •J…††n¹åž~úiÚÚÚèîîž×ØQÛ`ý@#)3OCÂÀRÕ¬[Û¶hoNroóÀ¬µP*•èÈDèØÖƒ3²UËPJáU¶'×J@_<žçÕï^«ÝXSûQ.—cýúõ<ôÐC³‚ß±XŒýû÷S©TX±b…ü+T!„B!„Bq]†QsÕ>¿¼cíC´¤;yæÀc,_{ Ú¬&ì¤ÓiLÓĶíú看 C5¾Y·v,¶mãy‘HƒöÒvŽ¿q†{–ýë{¶×ÇF£Ø¶}ÅÝL êlšæ%„…–ð½¸<ôÌ Ÿk¼ËÏópCE:n‰˜oÇ|—É»ø÷Õä‹©kèÿ[«Ùíû>‘¶Rü7¤šW£Ô$%7F¥nÛÆÄà5@…5XïÇãžWÏ8ÏB©}P‰DX»víe—H$øßø+Êjßùáç;öÐùAr9ˆ:zzÞ5€Võs0™óˆá5eÿäóyÞ|ý'Nœ LqêÌé‹ÚŠ H&“d𛦫»›|.ÇÄøø5€óù<‡Þ8ȉ'H¥“œ:5{l¥AL¦hÌ4159 Ó¥¢£+W’Ú¹“Òž=h ý®wá,aïßJ¥‚Öšh4ÊŠåËùƒßù­z³§§‡ááa&&²466’Éd`b" ÀÚµk1M­5“““D"‘ú†t­~ûÿ½‘®–¾·oÔPµµ¢•Ëoà­£oQ*•ù«}ºÚÓ{FÚ©ü¿ÿ_³aÙíWÜ7æk®½ëâеç7M“t:ýÉJ Í$ÅîOŸÀpN“tþ‘pè›#ã'ª}Ö#¥·0Ã×½VT¥ kã'PÅó8gÎà'û絿Î皯í÷µ`°RŠÁ‰cœßͦU«A)^:þ.ŒçÛßE±œçÕ7óëwþi½ŢϑªöÙ®í «‘žÔ (¥ˆ)Îåwc¦lBíb\á|±æÛ¸ø­UI¨}_Û/koÊZk*• år¹^VüŽ;îàÕW_åĉ¬[·Žú\ù|~aÓ¥étšóçɧ³xµâŽ;g=n||œ×ì­§Séä¢×õ<À‹²\*±ÿÕ½ Œ°fÍ*®C©\&Ôo?g4Á²lס¹±‰S§Nröìº{zH¤Sõ jÁc—Kì{m/ÃÃìY³§2=´øÇ IDATvÖ_m-pê8MMMœÇÁPñ8-¿ù›XÍÍœüØÇH¿ë]´ö³ä.Ê¢»–eqâÄ †††®úعsüøñúº¸–ÚÅZ3Ü}ûýLº0L0 Jª¦ ‡XyC/¡Ñ&ªÁ¤0ÐÄÌ4CçÆç¼ök®½«±±qVÖoíûÚ8×zÓÂB™:‹öŽáØ÷á§×¼}­Yi*ñGPeMdêUм¬G¹ýW@™K2O—ËnL´Ó–ZÅñs§ééhdå².Vt/#_cd"G_Ëf:û¯í©êÞm&!a"ωÉçèI¬'k'le€¡M LP—ïO¢p-P^ûuf°çy”ËåúŸyžW¬išD£Q¶oßÎxóÍ7innftt”\.7ï^ä³×o†h4Zÿý›‡Ž\ò˜©©I KÑÒVí=ßÑÕ¶¨9ª­Zà·ök†X–E2™¤©©‰D"Öš\.ÇÄÄÙl­5k×®åøñã;vŒ 6Ôƒßñxœr¹<ïs72>E{KFþÅ*„B!„B!„ªŸÎG-kYVý3Ü©[én[ÎW_ü±XŒ†††zÉå¥j9³i­BpØ›X©•ÝþG´¦»ë1Š‹ãóµ À3i­ÉçóÄãqN:UŸœ…Œ”R$“I†‡‡ijjºjê²75›×¦Kvè¢&¸vœ©˜âÆîǹj æË=O-ˆ¨”‚žSJRžz'ºëß ŒFÒ3NêÌhýÌzáW’H$p‡ÆÆFZZZf.÷5×óµÀDíï׎i©Æ¾çÎ&îºÂص¿ëû>µ¨y€©É)К­[·B¨ CM5×xfð”Òh”e²yã&´ÖüáÓÕÕµ€µh ”i¤R©KÞç.Çg=nÖ¾µO>ù$O>ùä¬õQËþ­õ<ŽÇã„aH¡P \.Ïê ]›£‡~¸üaõêÕó¿¹)M¶XáÜȤü«V!„B!„BQ×ÕÖ„ï;ózìÅA;›{ùƒ÷þùu?Æ™ãZ–Åo¼óß-éó/¨ð̳ïû”ËeúûûyüñÇçÝKöâç3M“®®.ŠÅ"™LfÎ,ÝYlYô÷÷ó›l RqÄ3 ”¶LZ[[¯©Ìm­dg-°OüN=e»ðœ9n­^w-<Ÿtñ¶¶6V¬XÁáÇ) ³úL.fÞ¡ÚsqÆ ´´´üÌŽ}9éLéL†‘ááú<Ãì ͹2 Ã`ÝÆõõ»6£!Ý@&“axdþckßÇÉçIÝt„!ÖEÁxs3¤ÓØÅâ5_Ô†aÐØØHCCâÎÓŽº—Jc¤‹={vϺaæ×\{ÍÅ_ ;}ÍÇáû>¥R‰üñ—±Ÿ9GÝÝÝ 2™ë“E‚ô' Íæ¹ÃŸ$PGñÌOáÅÖ-ùøµ>®µ_k2‰6¹í_ñÃÝüøÄ×hkŽQ*û ´ÞÃò¶õ×ï÷ßwHG¯Yv!„B!„B!ÄÏ—ù‘Í»p<§R©‹Åð}Ÿh4J[[;vì`Ë–-³²zæ«–mXk¤Fë[–E¥R!Ÿýa´ad2™E·æ:†Å¤N_îµÔú§Î r]ü¸™|ÏW,ãÖ[oeÆ LNNÖû¼.F-P‘L&ihh¸jæóOsìËI&“ܸuˬ@ÃÅ.ÈÖÎq-Co±ç<™L²ùÆ­ »ÒÓÇ™ÿò_=v =W@H)¬\ŽžO}jÉ.î뼚ÖÖVŠÅâœ×Ôzôg•Ƚ8¸8×µšö–eÕ6óyk¯±µuþ?Û¶iiiáöÛogóæÍK¶w-Õ<ÍZGÑ[Ñfÿeó2•>JßAߎ2ì«®…Ú<]nìZ?óZéâ±±1ž{î9r¹Zkš››ë¯Ý¶mvÞð0™d Oú¶‘æ¦÷c™ö¢Æž)oç–î÷†³ƒó–ic+[¶±¼qÓ¬5£”5]^ÿZÖÇÕÞ çó~ò“¼ö¶lÞ†eÏ]ʾ³½û’Ÿuww‹ÇçÌXƒ€x<1¯5;s?5 ã’:.wsÇÌóR›«ÞÞ^úúúê?»Ös'„B!„B!„¿ìæÝ¸¯¯½{÷róÍ7׃²Ñhô2e$¯]¹\fïÞ½õ…gZŠ€íõrñãKz²,‹L&sݲ ÖÆîíí½ê\ׂ¹?ó¼±ck×ÒøÅ/^×ùøi¸ø˜î¹çž~úiÚÚÚH§çÎÖ­eÿÕn–€¹{ë^œý \’M™ÍfùÛ¿ý[î¹çžÍ“mÛ477ÓÜÜü3;OUýp¥ e£ûu´Ž^ñqÏÓåÆv]—r¹L©T¢P( ”ª÷lM$d³YÂ0$ÇI$l꽋öt(E[º÷’ŒêùŽ}É:ÁÄ0.º¾ôÛ½›Me_R±¸Ö“öZ×ÇBzÿ´utt,èñÑhŒ®Î®s¥5{ñ{ò|oºÒûøøøø¢ÎB!„B!„Bˆô@kͳÏ>K¥R¹î‹Åèëëc``@Î’?'víÚ…Öš/ùËŒ_÷ñZZZ¸çž{صk×/ñ<=¾àyúiž£Ÿ—õ±Ì_¹¶åÚB!„B!„BˆŸ%jrrRË4!„øeµgÏî¿ÿ~¦¦¦d2„B!„B!„BüÜ3d „B!„B!„B!„âƒúîw¿+ÀB!„B!„B!„Bñ @J@ !„B!„B!„B!Ä/kÏž=2 B!„Bü¸í¶Ûd„B!„B!~ÉY+V¬™B!„âçØ‰'.ûggÏž• B!„B!„ø×ÛÛ L€…B!„¿Ø6nÜøsÿòù<étZN¦u%ó"Ç'Ç'ב¼Y÷r|B!Ä/ÔÿE"FGG±,‹H$‚a³£”BkRê’Ÿ+¥¨T* ×nÈ´ !„B!„B!„B!Ä/ !„B!„B!„B!Ä/)-„B!Äu´zõê9~ôèQ™œÒZË$YW2/r|r|rÉëu/Ç'„BÈÿ]…d !„Bñ3hõêÕs/÷s!„B!„B!`®ð©/ð‘镪_ÿ‘gú¬§¾ÀG>òNý¤þžB!„?ÃŽ=:ëk¾fg×¾—ìa!„B!„Bq9s—€Þöïy꫟ à™ÿÈê|áíßÏGÿ'øêWer…B!Ä/¯¹·°°àíÑ£G/ÉøýeþJéA!ëJæEŽOŽO®#y²îåø„Bˆ_Æÿÿ2MÃ0à ®úø«—€þÿÙ{ÿ 7®ëÞóÛE‘r~ÔVž_òªž^ôÈÆH† 'Ï[I(`7²‘f"¡Sˆ_ÕÖŽB2ÀФ x­¡•Ò(Dãg‰#Ç€HiˆÄ§©zÙØØH‚ä´(Ù²U[€Të’vcA9ÝL”â¾uÉZ—HYáÉâÝ?ºènÜÛ}hü˜áù°P\ôsÏ9÷Þsïí{ûÖÛðÅ×O㟭չOÞïXìZ-l¥½|¿ùÝ^Éë:æOðä[ö…_ÆýŽ•Æ÷¿üžüÚ×ñúë_Ç®X Ò; ‚ ‚ ®Xœ¾ã™ü5PN)PJª #Ô¹òJ eƒì%ZÞ²‡ç“*€QFŠtNz+Ž:b zbä–CÞc³¼6hVýì]}§å(a„“\Ù}„²)JZ$Y¶üÓNY÷LW%éOÆ6Ó#Xu†  å”äŽ8¿Fù²a^—#kèz„ ˆiŒ>=1Ì0uHÔu.õóbÒØ“¿;wîĦM›pÕUWž8üÖ“áÛŸÚ߀׿ŽÓ·éÐõp+^Æý»¾Ž™ÇÍmì^¼o ûï¸õè/Þ‡O^Æý»N〽ÝÝ‹ih_{oá-<ù'ûÇ{Ûà=pëõ¸ë¡ûð©O݇uß¹ëz²(AA±®ámýöý½¢•Ä£CE¡Ù@I”V P§HŸWêÊ“t…1Æ,»èæ÷fAÔ𬉂Jå-j¿š¼Þ';ÐÆÕ‹QFJ‰¡³h놭«Úøuà_ôìÅC%=hu8¸¥ë+£Œ¥v¹ö’¼­#ð¿Põ©¯Ý=6ЍlðäczkQøÚÐ2Ê·“ƒ´[¾uÏÕ“©Y aûÃжO}'¶GInÔ°\lMEœc¬Ö€0Ö€xløz„â0‚˜Rzõ¾^ŠóÓö A“hg¯ºê*\uÕUøÄ'>­[·"—ËIMó·€~ýëØûºù·½ô[OŸºûnµŽy런ö©ûðõýúO§ñ©¯/?p+ìCðÖ?a ߯·cßv\ü‹øç· ½s ‚ ‚ âJ!Ì*^ï;íÝsY ü‹_|„_|tYöh|†?ø/…ºË€çsõæ«pñÒ!ó±Ñ~¯TäüjRzŸœ½Ez9ö?ñ‰g?@ù³™®;€üu£’‘¯»Koâû„©¯N?û\Þó¾Œ}Øÿì? H¹ß„«O»‡Ñ·Ü±BùFêk“ÖóôÖù¢|´n¹ÿîÒ‡¸(m¿üŒ>¯b{˜÷þÄ'€o{Ëà‰§QÝ·ûžxsä1‘P¾°íó[_TET¿óM´ð%ìI=BqALCÛòoÿ§{±¯ø Ô;phǤÛê‡Ä8â­mÛ¶õýfOþ& ÜtÓMøíßþmüÚ¯ýÊå2 …àòe~ÛÌ_l­ÂÕuz˜wÿ]K·WAAá‡wò×ù÷ +Ð[¹%óé¯áàÖ[qôèlÛºÛ¶nÁgŽê½ãŒGð™núšû>Žß¶m=€LÇÑO;Îþ¶}úòØšÐùØhŸ¾ü[ö1?ßÓûÁ猣·Úδϕ§Oi¿¹ÞͲ±­{¾†ƒ[?‡'ð nÚ‚m50Æpâ`ï;-ÜýûuÉ —§^Ù;wûèÉ•7SŽ~} ô×WÇðu e7¡=½z–”ͨ絛t4þØsÇl¿ã Àß5õ¡Ÿ­“k úÔhøØg£ád“–OªIÚ<ÈoEퟠ½‹´Ýrkæ¥'Ÿ³ (ÛCÔ÷¢|ì}嫨ßWø•'+?ºWF¯I>}íà†¯Ü‹ø=å8GÇÑo¼‰#_¹Ó'¶ñÈ*&’ôûÝâü…7qdßÃxãÂ%Ô÷íGýÂ%œé¶KÖ#ÞÚ»§KÆGöᕊÃèCŸ‰ÇúŽïýq _»À¤ë.~|9XNúÐg¸~)«®º wÝu²Ù,þøÿ¿ó;¿ƒ›nº ·Ür ^~ùelÚ$ÞèyÓÀ#R×ÿ{̼þu<ñ²ùõ­jxý‹·¹'w=ÇôÒ?48éðúiü3÷AAd×ù ƒsÛh™ôÑò Ÿ¼ç/\Âùú~¼ºð-¼x‡÷ ^¿„ó.á¯ñŽwÏy‡OaOû’uðà1àОE|á[xÏãP¨[«Wˆmõ ð×–­Žg®ÁŸáqí¼ö¡ æ&¦÷ßÂᛞ5Ó.\±ÛïÀ± Ïb/nÁ‘ö%œ?v`÷1ë¼ ÏbïâØé°÷÷Û~XØï¸N;oô)¯îúà|ûat2Ÿ–¼6¯Žáë@Ú‰kpí¶kpí¶ƒVÞ ûÌMxú o:ôÆÆ~õÝ€œÖð4¾€ô;ÒØƒ§ ø•ÐV#KÚîA6ŠV¶C'üÚ^9?-”ߊÚ?ñ5F‡ŠC÷îÇñï>ßMyá»cï½v;*ò—ÑÔ÷Ç.¼‰=OÝ„k·]ã°Mˆº²+£×þtBù¼ŸÛ÷8ž;Á)ŸRþ6& #›“ˆa ¬ÁS%ê‘Îãü…G±ÛOÆÀ²Bĸ9}ìAßÙ«‡úãÀ vA®­ãÇ—cˆ/‚â£>“O>‰¿ø‹¿À¿øEÜ~ûíøýßÿ}üîïþ.n½õVáÄ10Ì0nÅ/Þ‡µýæ`Ö®¯Ïàñnõ=&‹!ö'Oâ-˜ïûu¦ßÿ2€ëïÂ/~ûc1üÉ“o‘e ‚ ‚ ˆu‹÷ý¿“™¸Š[pä+ÖÀþíwb/ÞÄÚi§utv>Œ¯Xƒ„;Ý‹½Ý ç$Læq¼zÒpŽÕ̶ÏõG±[RE¡wÏIÛêqkÐçö;±·`OZåÛŽkŸ+‹èüjH½«7bçŸÇgƒ&N´&5?ï„“¼¿÷Ø_½û^×ôB½¼zÂùÜÓ::ØÏÙ“‚k‡ªc¶›5‘tá’5és’äÕý¸wЭQýê»ýê´öð…´5H«"ýàð·žçÛU¤Ïr ì÷~vHg2òu2ÖDc˜rT¶ýVÂ7=ùi»uûØûÄw»”<÷¦ó¾²¾çCÅ¡Ø ²“À>=¢|ÊØc÷WFçÁ£8 à…o݃¸wÅÏ_Љ‚ôlàØg¬:ÿ‰ÏãÚm7áð÷àfǤ»L=Òmüd (+‡ĸèÕ7/Üä~X–úÖ—’mﺶáADß/ýè£ðÁàƒ>À‡~Øýßþ|ôÑGÂëö¿øú»ðïpŽä¥_¾£ßÕì?ŸÆëvÕ$:F~ë:ôÈàAA)Ž­…ÂÃùÛþÞý³÷·û·}xæ¼{’×”¡{&dE2·0Ò–!mÅÂØç Re¿¥Þq;¾þNû ®Ýö öÖ/âènÏuNÃdž9»q~vøû÷{ko¸Ó}¬H/{v>ŽçNîÝe‚¹êÆ<å\J¦àߤìÖw½~ùü÷Ü߯¾cƒøÕ |kἊ›pí‚3ý9œ8z{Ï?ülR®ü~{{vÞ#¶{ ¿‡“ÍO¾ê‘[ðÉçžÇѯ„)G‡üË"ð[A>#k·\÷¿Å#"wÔÀv<ˆÎžÇÍm€ýeðú>0Û¡zä)Ó6»‡¬º¿EŸÏÀ|0¶#=Øíðô›£z”gk ùéy¾twû J3?ÀQĬýÏøþ¡Ö=CÖ#~2îð)+‡Ä¹GÞøîðÔ!Â8P¢¾ô«» Áulà ‚²_1›¢½Ü˸?Clÿî{hÈwAA1Ýìˆ!þê=(Yûaž>ö`ï©ñ1ÄñêÛ¯ô¾”ž9ÿ,9ÈÙJ“›í¸ö!&©÷‡~€¹Þò×Óÿ€Ww~Â|Ôú´†§_TˆWð´½?èi O¿ºwJ.Å?xï>ÏlÅ—œ÷ô1<úB/oß}¡—þÐqûÚ*nÜù NÚÙzá¹ño#¸#=;yº—”ͯ¾„žÃñãÇç/â_ºŸ7qd§C‡2¶ŠZ®þŒûÛ}Ð6bžúì¼Q¨ Ë–¯ßÖŽÞ•¿<ýW(= ìqíO,ð—Õ÷v/wºg›Àò$_ÿL&Ÿ;pðÞ8gîö¤û·>÷ó—b"9NŸnÜœ^ë >³#d=®Lú¶CALŸ8P\_JÔ]¢ëŽ<¾ blŽör·â]-à%‚ ‚ ˆéÂ|¢Tæ‘ÒÓxô¬í¿þì(nÿ~ Ý'ÆY÷JÖ÷Ýxä™}ø¥ÌV°óÈ2öâ©Þo?^ÆmŸ¼ ;l]zïÿ‚‡:w£s¤GØl?ò üÖgâï¿(ø=À ¸|ùrˆ|lX+:láMc>¶âØ®Ï>u¼ôö+N¥Á~5½ßù]üÒ=a%ìÃÓÿ²ŒmÇîý<öܼ‡÷Öñþѯà¡øäµ÷;÷aïÎAîÏìDüä>|ìZs„oï3°«ou‡@/»Žáý߈Û>¹³Óv.ãï¿ïÌ›ýÛN<ôãX×ÞŽ_ëÕØ»{¥ô·Û£ƒÛ%ìÆ¼‚Ã7o…­âGÚøÞÁ8ðý:N~¬§û½Ï\À#»eeó«ïÂûÕ Ï={ÚîU:ØŽÛ÷ìÄáçžÇ#»àc«å´> °»ÛFN6ùÇëxÿ Y6¤Ëщƒœ²¥sÊ$ÏoE¾iàØgíä!W>ßÿ— µ[¼ºÀöƒ8߆=¨ãýíNÙDþ2d}/ÈÇÉ›·õüa¯m”'±Œ}e=ê| íáÑó®¯à¡@ìàvÇ®%2þ6&òØÀÇ_v} »À€ƒ/áÇjc¹zÄéC>2ž8Ä)+Œâ0‚˜x¬oW¢8Я]¨»„×° 'b¨~iÔ('Nœ "KAA€ßû½ß㦟9s±™ðᇿX·yÛ¶õü?ÿõÿÅoüƯ¯ë|äW“å|ù—ÄÿìX¿z¹2䓳éïʬ_^üòµøîžÇ#»7¶¿D™Oò{§a×oÄá÷aµ—±®é¯/ ‚X—qã¯ï¼ó6oÞŒ-[¶`Ó&÷&Ί¢€1EQúÒEÁÅ‹ñöÛoãºë®l AAAA1Eœ>†##ø_¡|Ãñbù0^ÝyÛIAõ%A’ͤ‚ ‚ ‚¸`ë}Ë>kûHF[äWCU€Äö}Ó®—+A>Y[‘þ®œúå4ÛõIÜûêN<øß³íïFò—Qå“ü¾§[ûû^üÝÏztLí%A¬üêK‚ ÖeÜ14LAAWFwb]ØÙïœ[ïù ȯ&Ë.”ÞÛeÖlýêåÊOÎV¤¿+©~ÙŽ»_xwÛ­:Û¨þ2š|’ß{ukßXnˆâ0‚˜FüêK‚ ÖcÜ5›HµAAAAAAAåìÙ³ *ÿ iƒ ‚ ‚ Ö‡¿zpîÜ9ßãΜ9ƒM›èÙO‚ ‚ ‚ ‚ ˆidÇŽxçw°yóflÙ²¥oGQ0Æ (J_º¢(¸xñ"Þ~ûm\wÝu<[@ÛHAAAL7G¾ùX¨ãgffÖ}žy‚ ¿º2õBò‘|TŽ(ä÷$AAl¤þ×åË—£½èÙ³gÙÙ³gÙC?Ê‚ ‚ ‚X8ãw;¦}Þxã vòäÉÑÒÈ1 Ç}É`9+Q/%r ƘÎJÉ^:kä’%¦{ÎKær,éIgŒõç¡‘ë]‹5XIVÒE÷v|Ü÷ä¡÷sÀurxÏçJ×Y)é>ßOv¿¼Êœ/£wñùY9ödrN*ÝׯÂèë;~zi°÷xÿrî8Ëž'ê¥óäL/‘–ÅåÓKB?6ïéÎw#—c Þ9ž´°òÊëÏ[g4XŽã¿nÛñD襤'ï –ƒ%“Ÿþ¼¿é%– ð=‘|"„I÷«Ç!!×Hô“bd1DH¿˜ª|ŒÀ.#×s`]²] 8lø8LòÞbûÛÍ7.ê^|Ý0zÕO$1W—ò±“Ðþ剡}üyÿ7ëšË9ó-SÿŒ¢í¶÷<ù’o»ÂêÄŒµ^ø˜Ÿ/ù•Ýí2¦vq,±ÆP×n°œì¹Ò:ÓY)9ˆnûËÿ(┋/²3gΰŸüä'ìg?û{÷Ýw]Ÿ³gÏvÿw~Î;ÇÞ{ï=öÓŸþ”½ñÆÝtÚŽ ‚ ‚ ˆÑêm”ô ÒîTÔ«9d¬Du.‹d{ ttZ½t¤3ȵ:Э¯F9…¥¸ŽæB\îæé *ÝÇOúÝÛú^h‚é%$óàÌK3ªÏu¹rxÏ÷9Ε®£Ó²Ž÷Ð/»LF)%…²áw¾ÞCœß%ü&’sRéƒÞw‚ôâ´¹¸\„>Î(c©šÃbA•K‚ˆÊâh1°ZCŸ½Ò•ûE^g™O£b)3½PB{© £ÏvüãGXÓc¹”V èyO½ÔVÕ)u‰Ë`¸t±OJ•åiÀ(#emñ§(yhÜtJª‹$ÆâêR6Æò±…ñbh?¹Î'âXXL ¸¬´ ¶Ï(ÏÑjS¤Íz¸¯î3PNñê=GZ_½g ž7ï÷–)_& ÔVMëjËE$²Y—žß:ÕÙ&Ž÷kë¤ëà.ï4 IDATlÿ6ÁŒµ®øX_’-¿Ã¶‹Þ<e¤RyäSöµ ”S2º ò¿ûJÚ.¬n`Ë^G¦Y€i,¡¢ÐÌ 6^Òê¨&³˜SýÊÞô±YôÖi4‹ ‚ ‚ ¦ˆûï-L™DêÕªUE+%×`蛋PghÕ¡c@kVíAó{l5…y¬ YP1Шµ±Š²XQ÷Þ€:H´:ª¹ *ê2×uÈá=~ÇÁ@9C±•Cƒ 8 ˜WÞ¸Ã0zWQh."¯(07„L¢¤7ƒïíò‡I¤Ëëg0ÿÒK³JÕü¥¤£Y€°\¤û >N[.%½Ï‡úÓ½rD41‰D£iÙÎçøQa¬¡ÌbA•åxˆbSG5ÇÂ4¨¾+¿d[6mn>VD¢ÁÐL›õw,¯UàJ‡QFj~J™VEV9y°TÆBº€Š^B{Xi BC^™åä3bƒ¨,æÔµ Òig{­!ë`‘1³Ìe¤æË˜[ñÈo”±Ôj#®30Õ’s¾Œ¹f*Ö+C´ ‡ ÑÎÉÞ[dŸ »‰â ˾u߀þI6hŒåÕ¥†ºtŒ%a ‡ßðcè°íIˆãÓ4ê òC%æl8õU³€ÂJ 5W½jê«5$r Ô5 ÖÑAs¢öeSïÙ÷™¬‰´QF @¬°ˆ„² m.Ž¥v + À|Í®n›`v7VËCYÖPX· Üã…mdäqÝ8YEZP^Ê—ÆÐ..ø´KzÊìíK_½×*"ãM[¨ÅÌIleW –ŠÑêÖqsÎ\Ô&ðŽ7Àoë„:àÈ.l_Ýq²¨#íKaÊÿ0íâ‚_»G2ïýík‹4¿Ý’½oí¤ucNÚ¢0ie,aË£å¡(uù€¤ËÞä¹"¶€þÜÝ÷Ò¨!AAAŒuYëIèþ˜5ñ¢Ðd Œ1s ´d1k°…¹ÒKò“¿Êâ¢:ç½CçÁÀZ;‰xLæº<9xçÈ‹42¹:úú›×¡ôn –´í¸ŠBSG©½$±Ý™@ÎI¥GíÿߓՋcAn¹ (‰3W/,Vÿ.4¼ÛeJÄe1rûÌ Ñªauš·hMWÀX¹j]n %ìñQëNÖ¦ÉtÛgEÛ%N‘ü¢¶lZÑ;½V"d™[@©]‡ õ¶c[GÛg»Ÿu°=x¤„i(‹®“½·È>‚tÙxMX÷…ŒF‡…ޱº”±|máõQ Á¯ Óž¯°’­ay•ÓÆÔW±8ÐÑ5ÔÛqÄÔ9dÛuhz‰LÈÚ-YB£ÔÆl^ãT©%$áØ&Ùò¿T¬†¬îÐU@ÿ‚{¼_[7d튓ýÊË@¾4E„µÅدo>x’©qKe{çz&|[¿Nb… ?<ûg‡ñ¯oùCúÖßP`KAA‘’F&WÅ’Ý;3VQk%0£šéuû]@«5´3žIEó]CÈÎ þ”¬QFªoOæÞ2y@w›7s@Øçº\9¼ç‹3ÊyGWC½*ìÈ.–iˆŽ³Ìùê ­"º¯#séÎù~1‘œ“J±ÿßæ£-ß}G–+]T.úÞQéS~¼û7PŽI”ÅÑ×W % sëSËç¡q&8Ç&¯QFÊ9ˆ4@öøaè¶Zº›w¾'ÍÜÙ9¨²úS h6€ÙQ½Óuà:Ó§˜&¢tgü Œ×|tÊF‡…±‚íècùÛÂï¡IŽäx@-,Ek…eP}åxèJËKKV]§b. Ôë0ó²Þšh`)¯ƒ«4y“`ŽÝŒÕZðCK¼ãEmÝ€u¶0NöëßÈöc£~‡w”í¢Ÿ-¼é rß [Kè&]a`l˜—|ó@:ÓÌm¾çƤvÒQghÕVÍXxX¿'gÏžegÏže=ü(sò—ß(±ÇN]bï]úźýüwÿñûÓÇì?½ú+ÿèÿcÕFsÝæå±S—1=œ;wŽ”@ö ‚ ˆ±¶uù’+Í¿Û1½èóÆo°“'OŽH:•’`d%ÝNo°ìôkt“sVX²w°ç’%–L–˜÷WoôR²{-÷5÷朓kˆó —’ù×Éá=_(¯C'=™xjáÉ.È«^bI—=Dç ô.{¾^bIp쯗XÒ¥{‘M&•.ö+¡§‡ð½pl *^= Ë)G™¤‹ä@/Ñ–Ey„òyòÆ+×®ßì{ÏóÔAaå•ןӇ¼õ(¯> 8~Xý¹l¢éSŸ›×ñ—›'ŸèþáÒE>)jˆ#’¶·¯nöo[yþ;Ñ|Øò{}Á›/ïouwdùèk¯þì+£Wç –ë^Sô÷ˆüe;…l(‹ ÝÛ{¾È>¾é^yxuœLãÖI¸º58‹,Æér€˯-áöa\õƒ¸= •O¿~Q#çnguQ#ç-—}Õ»~õ¶eÛä}÷qûmÎcm9°d.Ø&p÷këdêlŸ˜Ê?NæûXîõQ-:¶]”=_F·NqÚ4ä}m-ÒË9¯I,¡³RrØÂS†„eo°Àng/^¼ÈΜ9Ã~ò“Ÿ°ŸýìgìÝwßu}Ξ=Ûýßù9wî{ï½÷ØOúSöÆotÓ•³gÏ2¨<þ78üÕ݉á,¯ëwÿQmOÿíø-|øáeüê–MØr•‚K—ßúø5ë.?ôàéâ½÷Þïüʯ"ÈA1¶¶®üØÆý÷öÞ—sä›uã÷sçÎùžæÌ\}õÕ¸á†ÖµN:5Öö wùÕFÑ ÉGòQ9¢|ß“|A±‘ú_Q8üîÅß.〠|„w/zôûˆ‚_üâ#üâ£ËÎ|†?ø/Àm(¿ùMüø¦§ñì#·áöÉJë‘mãpõæ«pñÒö˜vn ‰í1|vÚhÝò ü»Kâ"\wùë>ÄÅK²2lÜrCA ßÖAAAA„ ›‚`ž+íbϯ^ƒßüÕk°ç1{<}¢ùtu˘ûãMÛ~öì|Ï=o}7Ág¶nÁ¶­[°mëœ` Œé8úi;m ÚÇrÓ5Üz+¼Õ:ßü~ÔèývôùÞ=>sT·Ò?‡'ð nÚ‚mµÞ±O.§ ÖqGt3¯É¦æ—/_–³ ʯû·Ï}Ä­'©ëÀ Ëv®ë>Û>ý ¡ø\}|í!̧ׯNìÙÇôY¿r!Ðéî;±÷•¯b¿Ëgyåw?‰rãú.*Çô¡}èCŸö±Û:‚ ‚ ‚ ‚ ‚!xØ5eMF2ƞǟÿ‡{0ó¿_Ä?½ˆ‡ñþ·îoôÅÀ_xžÇ¡ÄSØÓ¾„ó.á|xð˜œøßô¬™váŽÝŽ}æ&<ý…7=éð :7>ŽóÅî¾{¼‚Ã}áηöãØé;pì³؋[p¤} çÝÁ‘ëÄë–\í‡ÑÉ|ÇN;®yòNKæýxuá[xa]3¿üºûk<…ãÙ8tï~ÿîóÝ£^øîãØ{ï—°CäW°³ËùŽP/"?—•“\oðÉíG¢ôÊ[”e1 ÌD6¸ÇËŸÃ^]}𦸃Uâò¥Ì©²aÊÙWÖ¬|ŒRæÍPNY×wÈàõ'—¿‹ô×gaHE6M÷)k>í1¤Ë´-³m”tsD%Mj›@0GqØDâ0Ù{ûØ'dÝåŠ÷DñŠHW‚t¹x#H?ÇX]]c ¯+¥;O9 ÌdžÖï®t™zu\“n¶üß•ëWL€d :c`•´Øo¥|ÌôµÐc:JɰñžDyg»èô—iœè§Xb`6‘ Ö}+ƒ9醆§_#¶Ýþ}ž9ÿbŽÞ¶ý¾þ"ªl¿µJÑ>–·úØ{çwïoÖÞ´¯tï>AçMÉÇGÎ’ùeRúuñ+»Å#oâÁ£Œ£¢³'í¾ÇO¡n#µ‡Ÿ]Py‹²,”™È÷<ù3Ê)—½ch .õ`€_ùzÒ%æðÖ@¢£é ‰"–-á´å"PZAA)* M¦—ºu‚QN!VË:ôÚ@¢“›(uÚCÏ¢ìa ‘ ¤ }2  †q§šÍ|5j¬¡fHí†â°±Ça’÷Ú'dÝåŽ÷|â‘®éüxãjÉø&¢‹«Ëác,áu¹røÉ'°•LL”Ì!Q›ÇÔ>›”Ì!çô]£Œ¥vÉ©ož~+²­¤?û¶‡z Éd :« =­í¢L»=¾ÁóÁHc åTo àËÌý±æpùßÇ0óÞƒê fú?=ö þÖþ>‘ä8/Ý|âuk«æ1Äñ:Æ_>»ãÐðã#· ³vؑƞâcż‚§5ëœÓž~uîÜpŠ%×wí}OÃCÇ%Î[¯øåwG ñWïAéû§ƒWƒúØuGú ÀÓ…ÒÓq|íÐŽÀã Û&ÿ€Ww~Â\É~ZÃÓ¯vÊ/"¾p v“Nãù§_ÁÎUùûq^nÜù NÚ×|á¹>ÿp•c‚ ‚˜D—¬ÞFI÷v`5Ô«9d¬Du.‹d{ ttZ½t¤3ȵ:xê"]q<ÙC<éwoGGß1©!΃3/ ̨>×åÊá=ßç8WºŽN‹ßqí—ÝG&çjAŸ¼ÛƒnKqÍ…¸3Qúü.±¸à7‘œ“Jb(”ïéÅis™r!yœQÆR5‡Eï °(= –Eß23* ¬ÖÐg¯t%À~²þ?Î2ŸFÅRNz¡„ö’¹ŠÖm;þñ£|3çŸoiTôP[ 9ø9ƒD„e0\ºØ'¥Êò4 Z=ä]i=M+wœ«ÁSe”óŠg{F ùX-T1kËj•Ô0ºô®ò³¾óV¹ä·Ïë`9¥ŒnûÏi‡â°áã0ѽ9çËÇá"—çÄ{¢xEJW‚ö»Ûf}(÷GcquAŒ%ã¢XÏ‘.ÌTLÇÂbÅe- ]°}Æ@y¾ˆV«ˆ˜¢ µ¸è^ÝÙ­Ãa¼z—[ïÙÊ›÷{Ë”/“j«¦ÃjËE$²Y—ï)¾uª{Ë^îñ~mtíß&˜~{½À†!ú±’åö‹Þ<e¤RyäSöµz;ºøë6È_üî+i»°ºéîFSG¦Y0wpˆ,–PQhfP/¹w0ŸoC¼2$!Þlà?ßþyü-^ÁwÅ[l7¨íÃßf·bdz÷`¾Z¡1Êw3€“þ ß¼»v+>ví7pÃ/à‘]öï»ñÈ—Ã7Y¿oÅÇ=vâ`÷û'Çqøàv0¶¾_GÜqì—NØ÷ðÞÓù÷NÄOî3ϹùÄŸ9†]Ö½ÿp¯%Û¡ç=ç™ru2–L7ÿþèÇöyþ÷› [0àòåËöØŠ?8fäw7yfŽ[¿å°{!w½>»2¶ýüžÀñø]}ú PfýìáçC®´]_ÁC¸Ÿ¼v+>ögÿ€øNû7Q¹èt—Š“]{Ý„Ãñ:¾wp{yÞÏ[n¶ãÀ×zþñ±çÐón9¦º’>ô¡}6dhµuS:ý‹zµ…bLñ׎:ƒD·ƒÜÆšáäp~·:lƒl¿i¬¢†,æT¿{­Žj.Ó?X#º®WÑù}ò::¹lÀIˆÀ¼òç±2àj7…æ":¶îb5dW$žÉ9©ôÈý?H/¹ø×ïÿ>]¶¶‡õÎ>a~ì:Ú³ÇécØu8Ž?Ünë^özö»·ãÀ÷Îã<ï ä©ÔmtöpÚÅ›OoZOo|Ÿô– ?ºmfËä-¢û¹cnÿ€G¬c·”c‚ b£ÆÓK »cf”‘Šå¡±ŒàØ4*úR1Eçùj¯V±;›Ê<Ês²ÛÒÚ[¢6¡ôÜ-/æw­^E.S¤®ë”Ãw´Ï÷?ÎÞrµ y%…5}È-yÕš¬Ø‘]­µÐjÅ ô ‚X Л2ç;¶>L(§b(.k(\Q/\âû„záû¹¸\È–ŸÞ€ÜR5‡E&XýÛM¦¼EYye!’%èÞmâŒ20-}cº ¬k5Í,k€9V/Í i¹ã§’V1»’áÙfŠËòTiÕXC;YŠsµa±m!îJŸj’¥ž/‹V̉òYIGnt&‡Ùº†J:m®Î[¨FmTQUª.ÿÐwËŽ#L9Í –õ¹“5ÅaãÃüîí=ŸgŸEɺKï=ž(Äq¢vZîŠ7TÉø&ª‹¯Ëhb¬þëÎ,óåàÇÆ2íLpLdÆe+Žú’[_yë¡42¹%s²²“@f!Ž¥e ˆ­¡˜êÓ¾ôÕ{­"b1G^\÷˜Ål È5Tçè¨QF*VD«[wÆÍ ZQ›À;Þ¿­ê€#»°}uÇÉ¢þ´?‡)ÿô‹ ~íRÉd¼÷·¯-Ò|Ÿ“½oí¤u£!¯Xº¯Œ)–°åÑòP”:ǯíë­¢ÿ1^†àÀ1úLÁ‡¸2x±|¯î¼ÛIAA¬GÔ9dyOBkhÛ/jMæxr›;!fKX ye qÑ@óÞ¡ó``­D<&s]ž¼óäE™\ ½Ò3l^í÷|ºìbrÆ~Â?m_+èÝurN*=jÿÿž¬^~.U.‚“_ý;hy‹²,•…¨í3ƒD«†Õi^ž—®€±rU¹÷‡>>jÝÉ–){5†^B2ÒUøC"’_Ô–M+z§7ÐJ„,s (µëР¡Þv¬ºë{ø:Ø-¸®HޏÏÊ;i¹ãñeçUêü=Tîùz ©®Ýöï󾜓Jl|HÞàæÖª IDATwÒ"½ˆü\T.¼³¢Jzß¶ÜôÊ[”eQx|T³ÁÎ-‡6(šÐ‘BLQz?å`H#íÝÖ/Y‚ÞLGV~|”Ú1ôD2eU£:>4æö{Õîµ+æµ»ºsl|Ø`hZ+d*"ýkÞÊz)…˜’2m¢YÓ!Ó…u… -›®×Sçöä¯4êP<ú_¿ˆó9 Ô¹,ÚÅŽ{‹|×ý-^ ¨k\u††|÷]¡¢¿§ ŠÃ&‡‰îmHÚg¨º+-ŒãütÊo¿Á7$ã›Hb,‘.‡Œ±TÑuråóñóp1Q•FÕ%ŸúªY€ª°˜S0«T­ëÍ- »ÒËWµ‡®úÔ»Þ6¼/¶!õÎ}>îSɰ˜Pºue2—ó_*<>-hëBÔÙýžÇñ[q¹ö%q%ÐÝ9¦tÐÐãõ‹>ö m §¿ÜgÛ4ä}ÃÚÚ_ØÞ¶ë©2b+aÏ÷‹% ”SudºÛêKʳâö³þ¾°óÓ(gÏžePyüopø«½7R>ð`ÿjÏÝøì¯}D£nSÀK?» ú›À|Hʘ0×^»gÎüWü›ód²AAŒ­­û/ß~÷ßÛ{_Αo>ÖßÏ;ç{3gÎàê«¯Æ 7ܰ®uqêÔ©±æAË+¨gŸäö|bcúé…ä#ù®œr9‘|hys+òÉGqASÅ mQFjX‘}Ýü…Q6/<ÆmˆÚÿºþúëñÎ;ï`óæÍزe 6mroâ¬( cPœ´Z銢àâÅ‹xûí·qÝu×XüÒÏ®"ÍO ÿxÚ %=²AAãU@½šC¦2©ó ‚ B²ÅÉ+°%aÔ+f ‚â0‚ Öm[gïÜkDò Toõz%21…øNß=³…44Eüâ3¤„)÷”Aö ‚ ˆQ¶uÀ‹¤ˆ±’Fe¨ôaÏ'‚ ɧÂÀh¢‹ 8Œâ0‚ ¶NŒZ@“"•I-4ñ% "R6ófŽØ‰`›éý¦Óù3AAãä/#x¦øÔ©Së^!ùé…ä#ù®œrIù ||AAL‚ͤ‚ ‚ ‚¸2 wùÕFÑ ÉGòQ9¢|ß“|A±‘ú_Q³‰ÔJAAAAAA±1  `‚ ‚ ‚ ‚ ‚ ‚ ‚ ˆ Âd'€ÏGóüžrü–òœgp®eD,›a}¢¾vÄhyJ^›´È+ ÇÇ-’rÊñ{ªl©TC^I¡lx¯åMsÞÃñ›–wï“Åù›[†ÈUæõç²´êú}|P•%Œ_G!ß4Ô/Ól°2­W›AÄzÅ(#Õ_'p>AAmÐFϧ–Ýx Ù…â0²AP½g”‘²ç "jhŒrŠ3q…¶‹Óà7EgéðøC<ôÐCáNÒ0ë“¶æäÆ¢ã·ôOÕº¿:½h©C®½}%š$J:cæ§’vV®1t{¿±`u {æÐ`MTk2·äúÊù,Ú%Œ1è% 8oU0Ú*°bÝ¿‘Cu6½K9ý¹ /qÎ,€€fD2ÈL>†ñë¨å'ëÅaeZÏ6!‚ 6&ŽŽVª÷¤žã¡¨)y¾+O~aýaÔé;»œïõâ}pÖþMVNþq½Á'·‰Ò*o‘–Å0>?œ, ÷!bϽySÜÁ*qù‰\ZÞ]2Rv>êœê=<íÁëO.é¯ÏÊl ›aDÈû·LÛ2ÛîŽ)uÇ“ˆqs‚ö‰â°ÑÆa²÷ö±TÝ6þiCn}ãQÇXÝû c…×½Œ®CÈgå×e[™zu\“n¶=üÅæaNn8¤z¾Ž f Y ¶:ng <_D¢á)tj…¡ì©¢Ðd`•L_A¯WsX,¨Öm‘kÕ°jHP°'<ÓäÐÆÚ(U¦¨J›rG‹m€Â²ÞíÛ€6!‚ 6ZÊ,аôkZ—–ŸÌz(¯Ù¼fu˜zé¬ÌÚ'ÁuüÛ÷öµX‰â<Ìy޽ሚu‡÷Ö;@vN_W ‡÷|áqZ½§¦£$x¸“'»_^eÎwÒ,!‡¤o¿Û{¾ò| Yû!ÐF¢÷ðeßõùrN*}°qYß ÒK®{<ë>Ü*(}üãÌÁ§Þ·ŒÇ„é•·(Ë¢¤Ï=¸çÒ³eCG¾ch .õ`€_ù²E>æðÖ@¢£é ‰"–m•-Ò ªàøH±úÛz©['åbµ¬C¯ $Š1¹‰R§=ô,j±ÁÆÙ LºØ'#.„kü§Ù,ø?n¬¡fHíÆÛ>Q6ò8,T{ȱO¨º«ÿüAâ'n>ºÆ!£ˆ±¸º>ÆL÷¼ã‡/™C¢6©}6)éYœf”±ÔN"9õÍÏ?¯ø˜¬/´‡z Éd :«øOuM²]”i·Ç7Ø`>i,a œðÁ`c5äƒ5ß´ˆdø¥—^—¿üeÜ|óÍÃ_ÌÐBt“½öjbÞ6Óö¶°A[Ä:Wðùã½×È1`>ĦB˵UA¥cm©\<ÆyúDË;—É{¶d6ÊHÉœ«¨µrÈLlò>†x²…¾þ°±†v2‹¹QÖd*€¤Ãçxþ¡tÅìùRÞqL^à‡¼ïÞëå­{§†ðkž|~ejª[õ)·‡H¯^™x2AÄ$»dõ6Jº·k>”gÇ€ê\Éö èè8cÃt¹Vºð:¤+އ cˆ'ýîíèè;&5xo õj3ªÏu¹rxÏ÷9Ε®£Óâw\ûe÷‘ɹZÐ'ïö ÛR\Gs!îé#Èß ½ã‚ßDrN*}ˆA¢P¾¤§Íùåb ãŒ2–ÅòÒ*oQ–EIŸEÿÙ›ïtENþ?Îü§Q±”“^(¡½d®¢uÛ”ü(ßÌùgçÀ[½ä3!Rä –ÁpébŸŒ¼LŒÌ«‡¼+­§ieŠs5xªŒrÞûj. ùX-T1kËj•Ô0ºô®ò³¾óV¹ä·Ïë`9¥ŒnûÏi‡â°áã0ѽ9çËÇáòuû ñSp>¼6ˆO¢Š±¸ºŒ8ÆF÷CÉÇÂbÅe- ]°}Æ\ÕjS¤Ý«;»u˜c"ŒWïrë=[Ökß2åË8§iËE$²YW_Cñ­SÝ[ör÷kë¤ëlÿ6ÁôÏë>ÂG$Ë/†m½y4ÊH¥òȧìkõvtñ×m¿øÝWÒvauÓݦŽL³`îàY,¡¢ÐÌ >@¼d/ÆÌ$ZSº³Ÿ¡'€“¿Š2À¬g ý¦Qö¨b0W3˜+gឤéX¿5`n+ƒèœz[Î60úÉc5X“˜ê²¾O´PìdºÛ·ŠË–Ó{žnKeéLÕzïéìv²W‰«5 ãß#Æ)TÉø+ÆOV±d×"Ú2Š-N2_DbqÌO²ðüƒuÛ} `ý]AoÛâ*Âmì¼^%¤|<¿æÉT¦Ö Óf‘^½2ñd$‚ ˆ‰¡¡^uÆ€‚wí¨3Ht;ÈÎ]Xbˆ'ÛX3$¯# ï=@´:ª¹LÿàŽèº^9Dç÷Éëèä²òóÊwHa+®vSQh.¢cë.VCvE"ÆÉ9©ôÈý?H/ÖÀ„ëÁ\^¹àÝ3ø8s¥èBŸõÒ#(o‘”Å|^Øý5°\„Æ*j­i\a˜F&gù„×j‹‰"æçkH4lù?²±ÁÔƒ”)­ŽêXÇdꢗ‰ëœ|¬Ø]e×[•çN݃ Ñ”ÍNÆñj®¥2 ëa‚¤½R¼9ƒen>£¶‹¹*êš·½Öu°è\µn¯0ìÊo•ÇVñÖÿ ²u ¯}¢8l”qX¸{{í¶î °oTñ“ÀDñI´1O—QÄXau/Òõò¥+h`ÖsQ}¥¢°Ò«W›K©® Õ9XuŸŽ∠ÛN½gv `.†mž/‘(.C3ÊXj—°0ç¬n+mމln› :^ÔÖ…¨³ý<®ëŸ~>&ëKclEíR#‡êì¼ù:Ì@Ýzüå®Äam2ÚÉ+PKvží"‰%Ò¨X¯)—Ž©{‹1Ó™Za‚œCM=ùkÖ3½É•®£ê¤tíiO˜/Œu¶X žcd¬Æ;Çè–}s2{æ„Ú(û`Ýw`˜™›Ë§P%QZ°vnl¬¡íœ¸­¢ÕÑͧ[OÂfíÆ=GçÞ£» •£pF:È"1µRŠ13?õ8Jɤk¾ZËÇPL4Æ÷N™XHÿÐÝ*ò4äß+SdÊÔ´3öØz%‚ ®`[œé%´gýž°N£¢gQë–ÄPìNÈ„¹Nƒ—| ™­^ENz;›~9øçóäµ¶\eÔ£XE¤РܾÑÀj­…–;Ǭ'¿ím¶$¶ìm¨£”l ÔÉ߈þ/Ö‹5ØàÚ"ѯ\È–ŸÞ€\Ðêßðå6ÔMˆ²±Ï»º¦ž- í-ã¦eâÑkÙŠ%g¦Þ÷~ÄôB @ i¹ã§ç„üRúÔl+8h[6!Œ5´“¥®/¨sY$«uhžô©Æ)§hwQ>GQö‹´zÛ73ÖÐvLÞ˜m£5®åÕ³ãÁu.‹äXÇ¿"×§}¢8l´q˜Ï½ûÎÙG¶îƾÄ>«£‹±xºŒ"Æ «{?]*_/&h/9ß½ìS_yò—É™sz'ÌBíºfžŸ˜êWïzë½V±X‹}sÖj1΢+çJÌÙ*`¯(µ ¼ãEm]˜:[ؾºý“ïc!l¦üÛ.ŠÚ¥XIçßA¶æ¾a®ï«óËõLÀk¢Œ%Ԛݘ: ös>Ü’Îô^;:å 5ü£ý~ø!^ýu¼öÚkxíµ×p×]w Ù@½M+×È}ã½s' s|*£¼‘†å¢c°FQ+¶€‚âœëH¬’v¬(ÖPog1—žCè¢'ú„öœC6éx¢²ζ Ãîqo\ÆÀàzÊÛ(§0‹†™Ç‘wÎ`>Ì †ðæd¤}LÙƒ ‚ Öê²¼'¡5´í‰g¬¦—äMȈ®#hR–×Dç½CçÁÀZ;Éßü¦ïº<9xçÈ‹429Î+L¤âyíB9íQ’Ÿœ±ŸðOÛ×’|—«HÎI¥GíÿߓՋ£/$S.$Ž ^ý¢ÜÐG¬,áó¡ì3ƒÄ´Ô¤+`¬œl¿>ìñQëN¶LÙòziº&ÈDòGV&ƄމlÅGz¥v¬±/Õ㳌³ÈáŠ@°…/ÅaÇaƒÞ[`éºK´Eó°ñ“X·áVÿFc9tQŒ5˜îEeiù,W²5,¯rÚØ€ú*:º†z;Ž˜:‡l»Mï ö½É‚Ò %$áy¤QFʹûhÐ.¢ãýÚº!ël—úõoÂØj k‹±_ß|x"Sãkì ëz&ÐoŒÕZw›lóåëcè¡&€¿öµ¯áÔ©S®ÏŸÿùŸ/Õ"ÌIg=b8¾'Ì;~[†¹Z®<Ãnzר#‰Úì{ëœZÕ¾ÊMGÉw²UБƒcËdG†æ²@m~ íìT¨˜Ë¶Q_î8VK*-æPõl…a”Q¶¶î˜I´\ÛähËE´xÛ³„/Á(Ï;*p-X- Ý;ùë|÷èïÁâesKß0þ¡£7ÉhOXv3ôV„Ê å÷ÎÙaü|e*úþËôÚc=ë• ‚¸Â1ŸôîÆ’Ý-VÍt;.5Vkh%f<1¤«eç  ¯#Óaó4ÉÜ[&ðlaçs]®èßOpœQÎ;:¸êUÁ`§@v±LCtœeÎWghÑ]xáÒ3–É9©ôûÿm>zÑò½~×Ïå¯Oâ9ΰ’Zý;`y‹°,îóÃÙk¡cn}jù<4Îgôþâ£;gg9h =ìñÃÐlµtçÚÞÖÜÙ9¨²úS h6€YeR«kýëŠHËÄ(ðÔ¹ÆjÍ;YG«P†ÊçhnfŽuåëÖØ§m“-Ê#•sãŒAíÅa£ˆÃ„÷öžÏµŸî<ñƒÏù‘ÄO"øÅ'ÇXÁv0Æ «{AY -Ÿ¨Ö*,Å¢Ù>ÕWއ®Ô¹,°äçêuë-!ëÝX¡‰fû·W hò&Ñ»%«µà‡–xNjںël¡úõodm5l?l”í¢Ÿ-¼é rß [KèÆÜéf˜—|ó@:3W›;M3‰Å‚æÎY¹†c.®±N¶>{ö,;{ö,{èáG™“¿üF‰E ¼ÿàù”¿éžß’žs“>¿1Ÿëèžû‹¾Ëüíýî½WÎG®þ9iäÀ’%½OÇz)ÉkxR,‡$ëîù®—XÒ%wÑî=Îyï=ÜùwÉç½G²Äz¿ê¬”ýæ½GŽ5xçtÏsËÑ“s<Àr [6뺢¿ñg=ÀsŸJ:ü:éø­á9Wä—9Ç1 Ÿò!ë×Þßô€|NË¿õfAë*úGÿèý£WÌ?o|îŒßí˜^ôyã7ØÉ“'ÙhpÆYÞ˜ÓNwÄT?^^§‡7z)Ù׿›×Ü›sŽúòï­—’ù×Éá=_(¯C'=™?Öï;NWNìÎ?Ÿ¹cv;—=ßç{ûNÝ‹l2©t±_ ==„ïøë…cQ¹ðê1 üô÷ýÓÔ·0º ,‹’>ï‡P>oß“S®!ìÿŠû¥åg`ýyûª{8Ë¥ÌñÃêÏe³uˆH}òÛ×ñ—›'ŸèþáÒEuBp™„HÚÞ¾º9¸L‰ÇU&[~¯/xóåý- îŽ,¼±ž?ûÊèÕ¹süJô÷ˆüe;Ôq‡ Ý›;&Ë“Ñ/ñÊÃ;?|üġØDqÈb,‘.‡±Ò½¿Rò ãën»à®‹9o¹ôè+¨Þõ«·-IÞw_¿|žcm9°d.Ø&p÷këdêlŸ˜ªOï>Ö‡KÌ¡xugÏžíþïüœ;w޽÷Þ{ì§?ý){ã7ºéÊÙ³gTÿþêîÄð–qÿ½…H'›•H^¢yåÂ\/J¾ÑWêÈLÉÖ;äÏAAŒ“¿|°äŠÏ|ó±nü~îÜ9ßsÏœ9ƒ«¯¾7ÜpúÖÁ©S§Æš-o¾ƒhз‡ {>±1ýŠôBò‘|WN¹œH>´¼¹•a„Ùƒä£8Œ ˆ©b¶Î(#5¬4 ïðb l^•LC ×Î^ýõxçw°yóflÙ²›6¹7qVŒ1(ŠÒ—®( .^¼ˆ·ß~×]w€!·€&ˆñSÅì¸ö€'‚ ‚ ®äQÔ«žwXõ|‚ ‚lqòJwàO™4ãEPFqAP[×ý×|4/£0Ê)(J ÅÙ‡˜N6“ ˆõƒù"ð )‚ ‚ ‚K왞àùA!ÙâT –‡QFÔÖ‰Q h²hw¼U MD|I‚ˆš&‚ ‚ ˆ+„S§NQ‚üjÃè…ä#ù¨Q>ÈïI>‚ ‚ øŒu˜ÞaKl$ÈŸ ‚ ‚' <ô5èÀA~µQôBò‘|TŽ(ä÷$AAl¤þWÔÐ;€ ‚ ‚ ‚ ‚ ‚ ‚ ‚ 64LAAAAAA±A  `‚ ‚ ‚ ?Œ2R©2ŒIOAP´Ñó©å¡( EA^#»‡Õ{#ßjg”ˆ£œ²Ú®ÊQ+f½µ‹Óà7#×™r*:ÿkØa`EÉC å¤¼¥OË÷ŒÄ9gdù®ÜæÇO yNÅ£åÝçðÏÅ:Ñ¥A3+àT¾AA„0nìÅ•ÎxÕKòÓ{gÇ'¨cåìÄKÝÛ!ƒ·Ê̓u›Õƒ*º®PÏùRòåÛ+{P^%òîì+vÎ=ç»òä{‡ó‡Ñ§Ñ‘ñ¡^¼ý8û7Y9ÕŸ°éC ì TeýnpYúlàêçZùæ Lq«Äå'J™SeÔ³¯¬Yù¨s"ÜRܶñúËßEúë³Ç°}t‘ dÓ}|Ò§ †ôo™¶e¶’ÎÀC%Mj›Ø[˜²JqXq˜ì½}ì#Uw…?dÒyòä/(VŒ2ÆêÊ6\Œ^÷!ý4(–¶~wÙV¦^פ›-¿Ç"ï¢"Y‚ÎX%-އ¥|Ì´­Zh‚1¥dØx/¨¾s»èô—iœèŸ’XÂ(Ï£˜h€­£@eª'€øÃ⡇’w‚Y ÁL3=Ž5 H/”€â²£@(/µQZH ÏY?$»ÍX‰b,°Óž®ôŽÏ9ÎoT)}†G=›D²½Ä¹‡†åb‹âw‚ ‚ ˆQ£å¡8âF;®Ôò³@ÃLÓKmÌæ53OõÒY˜µ:rfç™u?ŒÇüï­wh8ãáy˜ó&¼{Ûan Š2‹ªD·AvN_W ‡÷|áqZ½§¦£Äoù²ûåUæ|ç ÍrHúv¹¼ç(Ï×µû$Šó¢Ée¾œ“J¬Ã/ë;AzÉõúY¬‰‚*. B—Ÿ°é3@Y”õ»¡÷\z¶lèìç2†êRø•Ÿ!+Qäca $::® ‘(bÙ~v}¹”VPPÇGŠŠB“饮mŒr ±ZÖ¡Ws Bj¢Ôi=‹Zl°‡1D6“.ôÉ€v€Æ h6 ðÕ¨±†6˜!µOoû}ÝOq˜7ïr÷Ú'TÝÕ~èøÉG^q;ìW‘ÄX\Ù†±ÂéÞç:\ÿ“Œ¥“9$jóÓ»È)™CÎé»FKídôñ]äÍ/¾Z`Y_ hõ’ÉtVAzZÛE™v{|ƒ æƒ!‘ÆÊ©AbQ ËE˜óŠëˆ©~饗pèÐ!?~\ºÃÙJÆs8j!mþ¿˜«bÉ®´e‹fE-:g]’FE/!Y­G³Rwé&‘j«Þ¥ÎuTs9ä(z'‚ ‚m—¬ÞFI÷v`5Ô«9d¬Du.‹d{ ttZ½t¤3ȵ:ÐûG°TÍa1hä1]q<ÙC<éwoGGß1©!΃3/ ̨>×åÊá=ßç8WºŽN‹ßqí—ÝG&çjAŸ¼›‡¦°×Ñ\ˆ»l {~—X\ð›HÎI¥1HÊw‚ôâ´¹D¹¶ü„MÕ _¹~7R ¬ÖÐg¯t%À~²þ?\¯ÖQæÓ¨XÊL/”Ð^2WѺmÄ?~„5½9àµâx3Ç P[ 9ø9ƒD„e0\ºØ'¥Êò4 Z=ä]i=M+wœ«ÁSe”;Ó™sJò±"Z¨bÖ–=Ô*©até]åg}ç­þrÉoŸ×ÁrJÝöŸÓÅaÃÇa¢{sΗÃåëöÐñ“®†i'#‰±¸²EcÊçs_? ŠãXXL ¸¬´ ¶Ï(ÏÑjS¤Ý«;»u˜c"ŒWïrë=[yó~o™òe²½ñym¹ˆD6ëêk(¾uª{Ë^îñ~mtíß&˜±Öõ›„ðÉò‹aÛEo2R©<ò)ûZ½]üuä/~÷•´]XÝtw£©#Ó,˜;8DK¨(43¨‡—´:ªÉ,æT¿²7}LåðK/½„/ù˸ùæ›CäZEÌs4^°;%ÊKUäì’êsκDC6YE=ŠÈ˜«³à¹fënKåØ"JQ×4ä•YTÑB1æØ‚[ð¬•ÂZï7s·…”ÔöKñ…E$¸«¼3î2šh{3‚ ‚ Â1pdÅ{~ïÚQgèvÛX3œƒÎïè ´n0ËXE Ž÷ÞäA«£šËôË"º®WÑù}ò::¹lÀ¼À¼òÆR˜ÇÊ€«ÝTš‹èغ‹Õ]‘xZ\$ç¤Ò#÷ÿ ½X®~Np¹Àå'lúÀH”ÅáüNkË5@h¬¢ÖšÆ†idr–Ox+Pµ€ÅDóó5$v½àsü¨0ÖÐNR¿òŠMUçÃæC±å—l˦ ÍÍÇŠÝd½UyîôÑ=¨MÙìdìÕS9T—Ê0ì öJñæ –¹ùŒÚþæ‚‘îZ·½Öu°è\µn¯ÈëÊo•ÇVñ[NwÁX?ðÚ'ŠÃF‡…»·×>aë®ûJÇOau5ˆ_ cñd‹"Æ £{‰ûuý/D,® YEõ•ŠÂJ¯^m.¥z1Øj ‰¬ºOGqÄ„í §Þ3;ÖΡMØó¥±‚5>o”±Ô.aaÎYÝ:VÚ6ÙÜ6At¼¨­ Qgûy\7ö³‰¬/±]µKª³óÀŠŒn=þr×Ç⎰¶ íä(Š%;Ïv‘ÄiT[æ%cjc­dvÎò¿›2¦nØ9ù«(J¨NS…éÈÖbý žÕiZ.¯¢†z«´}ιâáéFEa1‡ªc†Y«W‘[,@Õ–ÍýÏ™½Çzç6Ó•4ú¶¶j ·2-—€»àÎ*gÎfÖ IDAT˜ÇJ· ·\¼üsW,AÐéÚþººDï&‚ ‚ˆÇ–hz íÙ¼oÜVѳ¨uKb(z'dZhÅ™+ƒnU%΃Vw<@:€üóyòZ[®² êQ5Û Ú–Mc ídoLKËš»ÀyÒ§§œ¢•n¢|Ž¢ìezc\ZÝ~]ÜÚŽÉ³Ž²&¿¼zv<¡Îe‘Œô!£±×Dœö‰â°ÑÆa>÷î;_dÙºkûJÈ;¿ cñd‹"Æ £{™û¹ý/L,ÝÝÄY_Šê+Oþ29s²Rï$Yˆ£]×Ìó3Pýê]o½×*"ë`±obÎz@-VDbÑS8„ÍV{E¹¨Mà/jëÂÔÙÂöÕóm"ëK!Ëÿ°í¢¨]ŠÅ‘tþd‹aîæú¾º1ß±\ϼ† ÊXB- Ù©CÄ~ÒeoòLÕðà“¿žJ^/¡=ëžÐMgr¨9Ï9ë“$â‘õh9ºIgë õ¶Ubq$«³þOrkhÃñtÔl­î»Š’½í¤Òä4ßÏÑýîÿD³Ô–yv†µ5…2¢÷6AAæŽ4¼§Ü×ж'^ìN–ýä¶gB&üjD ye q]ÐItÞ;t ¬µñußuyrðÎidr- ôJϰyí’9íQ’Ÿœ±ŸðOÛ× zw]€œ“JÚÿ¿'«Çöå¢o"dùÏê_Ù²8¤ß lŸ$Z5¬NóƒÀéŠõÀ²ädWØã£Öl™²'äõÒtM‰äµeÓŠÞA‹"ËÜJí:4h¨· úÞ#¾¶Áö´‡E‡ zo}¤ë.Áù¡ã§°º ãWÃÆXÙ"б¤uï{ÿ…¥ÕV²5,¯rÚØ€ú*:º†z;Ž˜:‡l»Mï ‘ Y»%KhvfH/”„c›d«¿r. Ú¥Bt¼_[7d튇ýl"ëKÓJX[ŒýúæÃ™ú·T¶'¬ë™ðmý:‰¦jøG?ú>üðC¼þúëxíµ×ðÚk¯á®»î Q(`¥”t­Tµ'…“£¼sÖ£ÚÒÊ¥›4Jm,• å%´íeïV¸‚ù€ÕÔŽ§£˜½28¢ÁÔ°ª9+iOaž…uo¥$‚ ‚ ˆ¡1ŸôîîêÒGÝ;´«5´3žÉó]Cèn£„ð«2R}ƒx2÷–É<;Ëø\—+úw¦g”󎮆zUö¡Î ™†è8Ëœ¯Î Ñ*bYãôG\ïÉ9©ôûÿm>zÑò½¾·ÿæ)}蘒üŒcõo$eqôõÕB (ÆÜúÔòyhœ αÉk”‘rv ƒ&Â? ÝÁVKw®­íÌm‘ƒ*«?µ€f˜U&µºÖ¿®à¶Ó„§Î5Vkhå2H§3ÈMûà Qäs47Ã\¶z¾îßòÔáÒCr£”s ¶O‡"ÞÛ{>×>~ºóÄ>燉ŸBëj¿0Æ –mÀ+¬î}ïçñ?¿XZTkbÑlŸƒê+ÇCWê\X²ÇòUÌez¦ŽBÖ»±B p‚©4y“`ŽÝŒÕZðCK¼ãEmÝ€u¶0–² 'ÛšT»èg‹ÿŸ½÷÷qÙî}¿<˜Üèf˜€Ú´•9£''‘:n àE툜H€Ñ†ÓNÎià{ÛØ€¿ ãá*RÒdpOòéØrcvS fƒé=Ñ^P/à©*²øC-uïïf»Š\µÖªªUU¬bþ%½:Ï-³µn¢“nî€+«Ú®ÜJ²G»£“¦ÍÖ¨ì7]l–÷Q,ÜÔïž“§§'ñôô$þé_þMÈüþžxQøžðÂäBá9Îþ‚Â.‘½T–ç¬ œ+/\@¸~Ay óWÐgè Çq…ë¨ó‡ž§UËx¨cUº¢ÿ×\÷]Ìý¥¿û®€ã‰0‘?¹zÂ+|QðoB!„3 ŸËñ{Óë~ïÞ½ß}÷Ý‘$‹bEŠØ/º.ÅUq̆ƒ¸°<Ï—!ôœô^Ù{jž­ÈÅÏê2ìãÚâ2éäÈç×Ê+陘^–7J§)«óæÏ<@8ª˜¹(è  ûÄÓ:›œêºÞ¯´ž^ÁwŠõ¢°®^äõX¹þT½^]/uë¢Òï* •/§cU½Îü-1B>_N¦ÒúS[²åÛQ•~JÒ7Õ_ÆfÚþöîS,·J>Ýó«]×ù¤®/kF+}ïAÛ\Ü·ªü÷¤åHäÏûB¾\ù¿•µm•C5ÿ£òçBó:÷…›ÞS÷ï#ùK;•´qŒÃއéžÏ¯µOQ’—G•¿büT «ò8±ªn+ÆX:ÙšÆXUu¯¹Öÿtå)Š“æ¹Õm‘ïæëeNβv·¨ÝNæù÷;u'¥Mä ×-í”é‹ú:“6» ¦:ˆ‡ |ì0Ïû¨Æ–²Ž›ö‹¦ùMt+û‹lÓŠÏ-µµN7Z|áÊ÷h%–…çÔ‰-ruH[÷êÅI?ûéÓ'ñáÃñý÷ß‹ŸþYüòË/™ßÓÓSú_ù÷ñãGñ믿ŠüQ¼{÷.½þz€3“4ˆÓÈ(Ï *oYÙ`° ^AŸ¾›»–i€÷ŽœVzÝ :ŠvÚY>¨¼òߥNY^¼æ0!„B^ç»ü|п?‡sõ–ýyþ(ˆÉAº¬,ý’ÿ×]·1YÏ5¾3uøä ÖB–MñoB!„ò`µp1œŸ*?!„bØãŒ- Éÿ¹ðEŸJ!ŒÃ‡¾.ÏfŠŽ5\¿•OSîf=t¦<šèÕcOîàõ:°Æ~{Ÿ6=2_Ðl¤Fˆۭ‡;Q„B!äÕRöÂä±óB!†=Nþå{B‡1#„}]ÍÆ44ºå-ß’œ5ºM†ç €Iv˜õ:˜nxá6B!„ò¢xÿþ=Ë@ýêÕè…òQ>Ö#–ƒ~Où!„¢† À¤/ï B!„²çÛo¿}Ñò¿ÿþŗЯ¨ÊGù>ŸzÉr°”B!¦ýlÛp˜ÚXT!„Bž~UˆB!„B!„”óª€B!„B!„B!„B^\&„B!„"v3ôz3ìN•ŸBû ×^Î` ˲`YÆíB‡ÂvïòÇýŒÕRG³›õ⾫‡YÛŠyiýâ9øÍÑu¶Ã¬×žÿ<\&„B!„´6Ðê¥#ßãd€m±"i®ËrÓt&ɳ%òƒPeâÇÜ/Ñ%l#Ù òÉ[6 ÌË^VVƒ²§*°`•ÎsùíVÑŽ~½¶³›ùŽV/9[§3•Sn?ù”õ£ª×MìTª‹:=´4É”/›|É^i¹USÊÉ*}ýiSæÞlÉyP×âr”´9­MnYÙ6!ï7×éïÀMm­³éõ‚ºVІþmÒ· ¶ðB!æ}ªíÁ\õv™qX q˜é³ ìcÔvU? ûïD^Ó¸§’nÆX鳚ÅX:Ýéc©&:RÈçËØÖ¤]}®E·¤\9Ûš+N€ã!bÞ×Û°‚­ìÉB„ðœªñ^Y{ñÌý¢ì/ç¸Ð&±Änv…iׇxA €Ë}MÇ5¹`(?°I2ßQ´ù‚40³Î´a­2ix´ÁôÞÂÉš= fÏˬøöá326±O ¶›ú!„òjÂæ1¬à‹h µžØñåàG×Bo‹Á8ˆc×ýuáƒÞ ;ì0»Zb&×»˜^Ä…áºÉ½„îô Ѻ‰êÙr?À  Òc0º´õ÷ÕȑϯM¬ö:!¼í­2žPÉ^TV“üò$Í-\8…au>¿¹Ýtržêz½a…©ï”éÅMÓ ±ÆÄÖÕ ÕØO.š|éÏwç¢SùzmjÔÅC=ar/wÿݬ—±—>VF/ÕŸÆsÉ_„îCôçð»S¼… ÞNï[“¾UlLÖ"ôÒ6a7롳IzõÑvÌJe{„#,;õ^ÆÐÙ Êu­O–ô¤‰;M°^OP¨ÑÝ#¶èâ Õ~b*¶ËŒÃšÇa†ÏÖÚ§RÛu˜¿rü¤”· îi ÛÊ1–N¶†1–NwÚXª¢ŽŒ|ÈqÑ]^ï|£ã•m»›ávëÀ9ûîIeÃ/5¶2õ¥’þ0ôà8B1Gÿ\ûE“~ûù&¢CZ%v˜õêÄ¢ÞNïúe½¥ÆàâÖ Ž²c ðvºÉ÷Tèea~÷¡t//m8\,-¼}¾›¡guðp# lï€û a¥ª½XZ7o€ñ`×Çh\ì ÖmO(ޱ0zÆx¸> ÖÇ6çEÛ¶áb0!„Ï`µ…æ°V Ãø¢}9‚³}Ä!6ûëèánä˜9¦sa6aПKoövpá=[èK‹ú2Èeéâ]p_¥ùüé2×CotOù}‹`¬ûÖÃñßÂw{Ž-`6‹¶€Þl}`ÚÙ_KŽNҾ躟’^S]C­ó@c›`¼OcÕ¶VýÞÖr^B!äõ!‰zØžtÓÇ<a™Næt0döÇŸ…ðœMÅÁb|$ê]ÝÓdôeV ¸æþêü*yã#WÅ«6bW£Spv¸_n°™vâ ŽøÍïä˜-ƒStšÙíõú¿^/ñdCæøI}½0­?ò˜ëÙwÿÖª‹*=´h–üÐÉISç²ðx0§Ë9\|#±íA>m®(ýY"/Èß^ <›cëöe§ã>bëx©/Ø—#8‹‚Üõ³F–Sw:‚®œÇ¨{C‹x8Xm£cwØJ‹=Qß/Èäõ,ÍíÙ—#8­¾dôì-Qƒv™qX½8¬àÙùuö1m»Úìwå-Žëê¶jŒ¥zV1V‰î”±TUÖÒäd¹½ÔµW¹ò Ýh±2|èbx}í*ˆòwßÀ.jwóíÞfŠNç7 sñ j)º7¹¶@^,€d—³®OP¥×õuUÚlmÿšµ¡ÚV¦¾T±þ7íuýRçŽüï2[4yn•ûê&úŒêjXò‚6c {‚uSWˆýŒëÞéá°A4”ßÔ½Ñ& $÷‹“r§&½µ´¶sÔqáàõð­˜í 'ÏÃ0}Sb3}‹}Ì…79®zÞÇÁ÷ˆ|àvLÖ~¼0`<üõÿÏA^y²ÏTï<Ø`z Ü¥Çg[¸Â]NöÜ@Xøp·'Ýz?}„„l¦Ñ"ã\./Ö“(ݸtý8ml<6¸ d½Þ™ïˆŒ;À(ÜÛçv¦¶M§€»¨fù~bN{BùL°/1R½ ½{Ä6‰]“AVòæ¶sNò¦x?™0)ûZ~ x‹‹P3H”Ÿ]¹ ;i‚Ñ%lû º›)ÞÊ/]šÕº›¡w0‰gòl“2 ÷ògÁ}•ràðåQMºÝl, p¬¦ŸG)“©ÁÀÙ$‘Ý2ßÓÉyªëGöÿßè%ïOüQú¹T/Å7*5é’ «Síþ­ZKõpœöêÚ¦¬>ƒñb³})Ð<‰Z6ù[5}ÒÉÖXw™£í¢—¼÷m¸þì Ö>0°Nµ»¶¸­PöçD®ÍÝÝ/±q‡è÷‡pÏýå†6Êyœ‡ár´Åj¼Â6iOó}›iU>ªœÏ@v™qXã8Lûì|~¥}Št—‹ òW‰Ÿ”òþµ>îiªÛ*1Vù³jÆXEuCKUÓQõXÕžÜÓiÔ?—µWòzÅ帽Û:—#`µŠ?…W±ÝíLÖð18<ÉÓž`­Z“NKØÝ/Ë_ZR¥×õu5Ûlm3j´ËŒÃZˆÃtÏÞÚÇ´íÒæ¯?Ù:yuqO#ÝVŒ±tÏjcië†:–ª¬£Ê±jsßÅâ¶ ½ZO`ÛܸÖ".Ï`ŒîìTÎÅò¡]ÐîæûðƒØ¾ƒÞO¿ðì7]+m+×-ÞªMß×ôuÚlÅäï¡ ûúñ©/éô:Ñâ}Çz€^4ë ìSÙ²¿ü.±iÅçVµu±°˜¬&0îÍй«š¿(–ØaÖ[a(*ÚÙÂÜâ~7ÁÄ.¨{ç<==‰§§'ñOÿòoBæ÷ôÄç/\8 “ÿuáì/dþzŽ\á+óçîuðÿuEŒdr}éZè ÏOž!ý-ô„“ÊW$êor¹åë®ðÓÿ–•«Š<v(úßp<¦÷W”I~®î߯ ósá…‡ÿ6ù›ëÇÿB8€ðs÷æ¯úOÖkèA gÇC¡ …"”ì’üÍs$›ù‡÷ÖÙš?þøã?þšüòñ¹¿'1½î÷îÝ;ñÝwß½øý¹Ë໹Xû™ó“×éWÔ å£|ŸO½|ø ¾ÿþ{ñóÏ?‹_~ù%ó{zzJÿ+ÿ>~ü(~ýõWñã?ŠwïÞ¥×y´ñ ÿ5ìɼí 5ÿy¬§§'óÿøOüýßýmú‡?üi†ü‡ ­Jˆ¾úP„By6þð'/Ÿÿó¿þ{¿üø±0ï‡ðå—_âÛo¿}Ñ:xÿþý‹/¡_Q/”ò}>õ’å`9(!„BLûÙo¾ù?ýô¾øâ |õÕWøÍo²{x-Ë‚–e\·, Ÿ>}Â?ü€¯¿þ¿L!„BÈg5 `¡_½½P>ÊÇzÄrÐï)!„BÔp˜B!„Ïî&„~õZôBù(ëËA¿§|„BÈkµ ¿L!„B!„B!„B!¯.B!„B!„B!„BÈ+ À„B!„RÄn†^o†Ý©òBaôÚËŒaY,ËÂ8 ]ã0BØîAþ¸Ÿ±Zêhv³^Üwõ0k[1/­_<¿y-:k.B!„BZhõÒ‘o€q2À¶ÆØ¿ª^7Ä=[zV~ª,Cü˜û%0º„­»¯VŽ\~#yË&$ò²WÕ›¢ì© ,X¥ƒó\þL™Š&>Úò‡gð«ªúSùŽV/9[§3•Sn?ù”õ#Ýus»U˜Ø©Z ê\›²”QznFy»*'«ôõ§uýãl}ÜÍÐKÊQÒæ´ f½øþ’ yÊø»Nöhêo:˜^?O~îMü¶ðB!æ}ªíÁœ¦bvÜ8ÌôÙö1j»ªÆååÊÆºrTÑOË1VeLt±¦6Æ*µIÅX:þ{æ>&íês-º%òç|×l\q¡ó~8ùÐGìÉB„ðœªñžA}xÎ~Qö—s\è?u,Q·ž\&„B!„Ô'þˆZë‰_~t-ô¶ŒD‹ ûë½vÚë%„è&y„îô Ѻ‰êÙÉ8­Ë`aPé1]ÚúûjäÈçצ Vû²‹ÞöV9骒½¨¬&ùåIš[¸p ǽùü;Ì®–…‰Ýº˜^é—Õržêz½q¿©ï”éÅMÓ ±ÆÄ6õ}ºhòI¤?ßœ‹Žæú—Æv3¦j],©sI&÷2zŽm(=W+£ŠêOÃFãŽdá£ûý9üîo•½Þ&¶&}«Ø˜¬Dè¥mÂnÖCg9’ôê£;í˜-”ÊöGXv꽌¡³A•ë'óÉÏ{‚õz‚Bî±Eo¨ö“=3|¶ÖɳÆ IDAT>•Ú®Ãüu㧃¸QY󸾕«‘ eéu§‹½ŠlR;–v\t—W8Ûw“®ì»»n·œ³ïžªÄÉ5Ç«ùþ0ôà8B1Gÿ\ûE“~ûù&¢&Z%v˜õjÄ¢ç^5p¸È¹ro€ôfν`¬|#î0oû[ÎUòí²okå;“‰BëLߪ5ô,˜é:, °zàñ3ÏÈØÄ>-Øflê„BÈk‰šW[xa~`µp1Œ/Ú—#8ÛGìâa³¿Žþîæ¡öz ý¹ôfoNѳ¥¾´¨¡/ƒ\–.ÞØ÷UÊ‘Ï_.s=ÄÃF=p=”½@¦Ì¸@_öd2êö"ÄúúB¾hœ?¥s¡ù›NÎS]o0ITÉwÊô"ÛÜÄÿ Óíf¸]¸¸ÉO§×¿©(Ÿ뢑ގ0h»_âà¹ý¹™¥þß¹Î÷1•Ù¿ö°½vÑfmªNÌù‘hýYžxëczÀò¾âäçt[¬ƒÕ®Ÿ›OÖqcÍî¡üNësšk‘wƒ÷f˜óseÆ)6X`È^i—T]æwùÅÿ¯Úý•‘?É÷€·=ëxÇž;ŒÃšÇaºg+ò›Çáæm{øI7*Ëaß·c5’¡æXD{É]?–¾ÀõMÓ·AI¿øÌ³«)6›):–…ÞÍMvwgÚ†I aªvWÙî%GÏûïH¾áXÞÇûÁßNÑ2c «°MÍ®Ÿ(ÓõuÆm¶‰ uqr1¬¿hÚ/æË¸›¡×cÜKîµ?Ñ¥X·eþRô\CÛUÕMzÍ Ãõ$:Á¡µXÂÆd=Īr¼TPÏ.â¤[Æ£7v~‹ÉÚ‡ '7ð)Ï{œñX^>;zCÃä-=MÇÿ< Æƃ\_@œÍÛ$ ±µ€‘ÞÇÀõ±ørëyѶm¸L!äõ`µØ`Ú)yñÑ~ƒn:@Þâq'O¾%ÿ¯»n:ñr%F¸´‹ž]£ Á wx8‰£»o^]þy¥A®¨9‘WZVÕ¼CW¸«¹ÛÍÆd}ƒ‡Dw%Fwñ½NÎS]oÝÿËôOLdŽ3õÿòtÑNÑëÚ_¯i·Öê¢a»Ñ„x+3A¸»ÇrsŽ; ûº±OäaOpÓâêj‰®Ÿ´ éÅî[§Nûªª6+,œ tÎbÿŒ>ÙÖ\Jgšî`ÜïÊË^?Þ‹ íÔ͇a²{ÊÅâv†]ü2“ì_¿Á[e9Û¶ÿ7î« ß_wp#ïZOvä¥òÇõq³ÅÅ]"'šŸ¦prTýã°cÆaÕž·OÕ¶«Ä¾ñSqܨ*GÝø¾nŒÕD†¢tźÛÇXUmR!&ëÏác»Ÿ®½²1¹Û·«ëÛÞÞ†÷Kt]Äm_ˆ\ £í_í^4€@´vd½´3¹AwúÁn†Û­‡ëK¹¹•vÚúÒš²OÐ¥×õuÚì"3Š“ŽWÑ/êú%ßÅbpÜ™è6ç/ó%qGUÛUŒvÆ,+–]e»Vb‰>æB@ÜWUbje=NØz³ýõ€ig-9>:I;èÅí Ž÷zMu µÎm‚ñ>5VÛZõÿy[Ëy !„W}‰‘êMèÝ#¶ÉÂK2ÈJÞÜ.»nÿÞâ"Ô ågW.Ã[Í‹‹÷UÉ¡Ê_"/úºÔú¤gÕ²¦“d²Þ=óÅ™ä ÿ~r¯²oוÈyªëmûÿŸMõ"?iêÿ%éÊwÿ6°Û±ê¢®ÝhÝ>oÐÝ,qγ5ý9„ðáš.vUMß¶îLëT² zçµ@vjŸl‹ðF 5ëÜ5¼í ¬¶ÒnЃ€ãÁ[%Œ2ã°ãÄauŸ­±qÛ¥É_?™ÆR9jÇ÷Mc¬2¥;Ô.ö2²I՘̞àn´ÄÛ{E[Ò^u.€‡0Àj{Ž}‰Ñv… |@wX±us<øš“ú×HÇ$Çeìu¤oê–R¡K_Ô×5l³ãä¶üùdqOE[<ûý£—-†«gü¬B²&µšûªž1\.¤É@rÞc½9ZE¾øí¶pÿ¡òÛL-êc.âã­C‘žY½Áöâ.­é›ÆÂ‡»;¤ ¦Ãtëýfú6*sðÓ®/…}NtdH‘lÙç”ÿ¸K¶û,\áîP†B¹Çô>°™F‹Œs¸¼XO¢tãÐõã´!°ðØà6õz‡h1VþÛ(ÜÛçv¦¶M§€»¨fù~bN{By­Doz§±[zÄjt=9Vqw¿Ä¦û&79}k£KÃëº[~ÏäÙ&e@îxÀ‚û*åÀáñ‚št»ÙXŠ3¬¦§å”ÉÔ`àl’ß~ƒîfŠt£BFwò÷Åtržêú‘ýÿ·z Æûq›òHâœÿ|£² žîþ-´[£ÉÓºXPçŽÜ^]{À´“Õg0#P,p¶ï/º“óe UÓ7!lu—9Þ6:£Kئú³'XûÀÀ:ÕîÚsóÉŠäêîî~‰;D¿?„{î/7´QÎã< —£-Vã¶I{šo#M«òQå|Jû'ÆaLjôÏÎçWÚ§Hw¹ø¡ ñS¹+Ä÷5c¬Ê2˜ÆXEuã öªØŸÔˆÉìÉ 0FýsY{%½te_Ž€ÛÛ¸­³q9V«ø$ÄŠíng²†ÁáqØökÕ¾tZÂî~YþÒ’*½®¯«Ùf7‹“Kü¹é8ì˜ýb‘-ò/éÕyn™­ t­ãÜW ÖÕJevG'MËka†·—ëá¹óôô$žžžÄ?ýË¿ ™ßÿÑŸ7¾pá/,ºn’æLä =áòÏõKî©x†ïJ÷Ðéáð¹Nö&ÙôZÙŠôX&kîÿ•r7™Ÿ /<üwáßB¾tß…p}ÜŸ¿ ¿Âq B•}bgýMm7ágÓUµïÁýøã?þøã¯Á/ŸËñ{Óë~ïÞ½ß}÷Ý‘âÒPxŽ*Îò…›ö£®ðñd&FÔ]—È—!ôœlŸžæÕ<[‘' ‰Õe=GÇÞW'G>¿VÞL¬šÈ¤Ð´RvMYCO8¹¸W?óá8ž«äÏÄòù_Ö½Î&§º®÷+­§Wðb½(l óÿ¼µõ$’ã°îh®ëä«¡—zuQ×n˜£•O5¾ÌÕkå¸8Ÿ/© ¦õ§¶þd](ô!×K“ôMõ—±Y…6D§¿ù“ûË­’O÷üj×ç“Íü °‚åÚæâ¾Uå¿'-G"ÞòåÊÿ­¤ín­ý•ÆŸ eÌëÜnzOÝ¿ä/MìTÒÆ1;B¦{v>¿Ö>EqH^UþúñS¦ÞêÊaß·cU•Á4Æ*ѽ.ö2îGËb2E?*|7ÛÏjÚ"ßÍ×Ëœ¾ÊÚÝ¢v;öçw¿;”/—6‘€p\·´OP¦/êëLÚ삘Ê8N.ŒÃó>ª±¥¬ã¦ý¢i~ÝÊþ"Û´âsKm­ÓMј|Vb‰PxNÅØ¢¬Öì÷Uýì§OŸÄ‡Ä÷ß/~þùgñË/¿d~OOOéåßÇů¿þ*~üñGñîÝ»ô:€?«à2g+YDÍÜCnØÊŽ“nM™è±Â°Vn.Î À¾"_‘m<‡ ÀüñÇüqøÔ×8þ)9Zjwå¦Ê¶ø5BÏÁVõу6d«#·|Ô‡îßG· ÐÒcU°nÀ°O—m¬× öÇ<̤# cßÎÊüØ8ˆý¿p°ÿ&K=^šB!¯…«…Û .kšŸB1ìqÆûσYÀŸ³ó!ŒÃ‡¾î€ÍË‚5ngæ7ëÁ²:˜nhržp¸Z•Ƭ7ÀéÛ7Ùïðö¤oת¯ŸŠ>æ¡L;û†ò ¡ëcèÆr«Áþ5<ÄäÕº&_ñÆéó:Óîá÷¨ŒekRôr?#óø»¿–Xñ·iŸ¶ WXÄz½Bô=^Yç˜Æ:·k¬tKx:`]!ã7“›ý½­UöÞ2C˜v4÷'„BÈ™ÓÇ\õ «gËO!„ö8sùØö=„qã0BØ×`O°Nò·ô¢”=YÇòä¾ANÈ™`=== ˜ÿÇâïÿîoÓ?üáO3üã?L¨!BôÕ‡* „Bȳñ‡?y™øüŸÿõßÓøýãÇ…y?|ø€/¿ü’J$„B!„B9C¾ùæüôÓOøâ‹/ðÕW_á7¿Éîáµ, BX–upݲ,|úô ?üð¾þúkÀT)!„B!Ÿß~ûí‹–ÿýû÷/¾ „~E½P>Ê÷ùÔK–ƒå |„B1ígÛ†G@B!„B!„B!„BÈ+ À„B!„B!„B!„òJà0!„B!„±›¡×›awªü„Bؽörãôûuã€v!ŒÃa»wùã~Æj©£ÙÍzqßÕìmż´~ñüæè:ÛaÖkÏž.B!„BZhõF¾Æ™_€q2ð¶ÆJ¯â3Ï.»W^¦â2ìî—Àè¶î¾Z9rùä-PšêÓ4¿¬ Véà<—?S¦¢‰ªv?öõÚÎnæ;Z½älþÍTNuºýäSÖt×ÍíVab§B]ÔÊÕÖ$SþÞr%{eô‘·«r²J_Z×_0ÎÖÇÝ ½¤%mNk“[V¶MÈÛ-ãï:ýØ£©¿él`z½ ®öe¤‘›ô-ƒ-¼P@yŸj;A0§éŸ‡73}v}ŒÚ®ªñ‡Éõý}ôýz¿j9ÆJuÙ,ƪ\æ¶cÀø~Ûš´«Ïµè–”7ç»fãŠàx…€˜÷Ú0²•=YCˆžS5Þ+k/ž¹_”ýåúÏ$–ØÍ®0íú/(Pá0!„B!¤>ÁÖðE4ÐZOli€Ôƒe °È$~”6ô¶Ä“ºë…„èÆy„ðÑ^!Z7ÑßK%SQâÇ`tiëï«‘#Ÿ_›.X¥÷"„·½UNŽUѧzÀª(»4Is Ná€7Ÿ‡ÙÕ£x-ü.¦WºÅåjv?öõz~Sß)Ó‹›¦b‰½Ã¬·—SøÀ@9Á¡OM>‰ô绀sÑÑ\ÿÒØnÆT¬‹:y[#™ÜËè9¶¡d/!|¬Œ^ (ª? QŒ;’=„îCôçð»S¼… ÞNï[“¾UlLÖ"ôÒ6a7롳IzõÑvÌJe{„#,;õ^ÆÐÙ Êum›PÒ&î4Áz=A¡FwØ¢‹7Tû‰É÷OŒÃއ>[kŸJm×aþzñÓá}Šûõr¿j%ÆRê²yŒU­Ì_'t\t—W8Ûw“®ì»»n·œ³ïžªØÐÔ—JúÃЃãxÅýsíMúíç›lˆ^ i5–ØaÖ«‹x;¼ë—õ–€ !„B!õ‡d«-¼P=€µ'ëÌ`µp1ŒÛ—#8ÛGì´×KèÏ¥7{;¸pŠž¡“©¸ ÑýºxcÜW)G>AºÌõõÀÕ\ŸÈî,({”´‡Û‹ëë ù¢qþ”Î…æoUí~ìë &‰*ùN™^d›ïåDwó€°nºÝ · 7ùÖôú7å3 F],•·uv¸_âÀ^ýy‰ýLý¿rïc+³ía{í¢ÍêHþˆ-}4áu'O¼õ1=`y_qòó º-ÖÁj×õ>iT—ÏÝî¡üNësÚ¹#ïïÍ0[¹ãŒ;Sl°À ‘½Ò.©&ºÌïò‹ÿ_µû+#’ïo{ÖñŽÿ‡ýz¿ªc©tÙFŒeZæ#Æ€ý9| r6ÖµW6&wûvu}ÛKm¸»_¢ë"nûB<àmÿ¢h÷¢¢Í°k$ë¥É ºÓ·v3Ün=\_ÊÍ­´ÓÖ—²•}‚.½®¯«Ðfyœ‘ M}éûE]¿ä»X ®€;Ýæüåoþ¢$î¨j»ŠÑÎØ‚eŲ«l×J,ÑÇ\ˆ;àÊ0¦Þ=náŒ.c_(ð»3ƒ ÀÕ¼–tޏ!FËNÅ ÈÙç÷],Gz“ñœØÍp»Íq¬ÁЩm`-“y³ñp}@¬žnt^´m.Bù<Ž2 =lO߯G¢Ö^ÄÒ—!X-àûµåPçWɹ*†XµÓÚ¬KoÜá~¹ÁfÚ‰'8â7¿“c¶ ŽÜÂs6µù¯Ñÿõz‰'2ÇOö1GX¦“œL• •éJwÿÚG¶[źx¬Ý¿ù# “#ãÎeá1oÙy,çpuð Èþµ`ù´¹¢ôg‰¼ {ðlŽ<·¾¬¬¾`äf»†·]!@€ÕVÚ zðñp5VÛZõÿy[Ëy !„×Eô¦÷mÒ–±¥OŽ[ÜÝ/±é¾­½nÿæ'ñªÞ«  ™ã î«”‡Ç jÒífãL¬¾Z8†/¥•ÉÔ`àl’ß~ƒîfŠtcCFwò÷ŪÚýØ×ìÿ¿-ÐK0ÞÇûÊú}ƒ ÉñbߨԤK&¬ vÿÚ­ÑX´b]|¶oÿîå¹ö€i'«Ï`;Ÿ_iŸ"Ýå⇂ü•â§"?QõëuüªfŒUnÇš1V•2Û-Æ€ºVkrL§Qÿ\Ö^I/]Ù—#àö6nël\Ž€Õ*ÞS±ÝíLÖð18<Õž`­Z“Ö?v÷Ëò—–Téu}]Í6»Yœ\b«¦ã°cö‹E¶È¿¤Wç¹e¶6ÐMtÒÍpeÕ_»)•=þTëp'ļopË.6ÉÚVS¿{NžžžÄÓÓ“ø§ù7!óû?z‚øÂ…#¼PzÂq<¤ …ç@¸~.½êÂ. ü¢LíÈß;½eè 'ó7Y®Ã|NúÇXÆäF¾+Wø¥ÏΗ[’#Õ[(<'/Ç^æÐs”÷Qè0¹§q9£²DåÌ—¹.Èü\@xáþßpÓS=á+Ò%ÿïúé©âÂÉý¿z?Y¯¡Ù@¶OªcÂñÔ¶)²oÞ†ª¿¹´%üñÇ-þòñ¹¿'1½î÷îÝ;ñÝwß)fŽâá(ÆÍÆrQ|·÷1srMŽ3u×÷äË¿?ÒO/µLê2„ž“‹Õ÷Õɑϯ•×w2©Bë úÌÄÉEù5±»iþÐö=áÙ÷T×õ~¥õô ¾S¬… $p²JÏêQ—.–ãpŒ£¹®“¯†^êÕE¼æhåËéXU¯¡—çóåÆÿ¥õ§¶þdRØã`.¢$}SýelV¡ ÑéO1—¢û˧{~µëÅ>ÙD§Íü °‚åÚf…ü¹~Êù«•#‘?ï ùråÿVÒv·VŽƒþJãÏ…2æuî 7½§îßGò—&v*iã‡!Ó=;Ÿ_kŸ¢8$/*Åø©DŽâx£ªn+ÆX:]6±•¹A ¨â<Ê~!Ûùn¾^æôUÖîµÛÉüúï~§^3‘Ò&rŽë–ö ÊôE}I›]SÛ°0ÏÛZKäuÜ´_4Ío¢[Ù_d›V|n©­uº)Zÿ’ïÑJ, Ï©[äê¶îÕ‹’~öÓ§OâÇâûï¿?ÿü³øå—_2¿§§§ô¿òïãÇâ×_?þø£x÷î]z ÀU€•’+¸ÉpÙýÚ“Ïwu ÓE‹·å‹¨‡Mý°2Ø’ØrõgiË©øGÑ•~ÁºÅ`“ÂdÁח“Ü~!„ã@„*ûÄ:Ïú…fÁÖϦã0üñÇ\>-Ï]†}œyšüäuúõBù(ßçS/ORßmaÃíAù‡BΘ:}vƒ_Sò›ÞÈk%³¶u¤~¶í`m¼mü#güEæ8‘ôÅ· vØBq¼…=Á·ÝeñØÍоH>‚^z~ ÞN7ØL;éQÎé0ù>‘ñ³vxÜÝÈïÿæ}ú2øÉo®t­Ø£4žCB!ŸV Å'`ž-?!„bØãÈŸÐ>ç>ã0Æa„°¯;d3EÇøÓ–åìf=XVÓ íó9`Oîàm­ùÏsÀàÂVEþF¯É‹Å@>w<þæMúq{oº›Ìwq‚·SíÙèöäÝéUýóàeùì7èBZ ŽÏ¯.œøÃ÷I¾:Ï °I¾-´»Çrc"_þcØ!¼d!=ûìv/Wá³6XÞË߀Ðt±NÎz‘ݺ€d7àv¨mèuÉ·°÷­Xç·³26bDÆ/Hõ õê!„BΜ>æªoX=[~B!İǙËó.ì{ã0Æa„°¯;Àž`Ýò&1{²ŽåÉ}ƒœ¼RlLÖ/k“á4šŠB”D IDATck€xá|ÿ1ïþÂò¬4¥ë ¬ûrCÂëuб¦ÑÇC¸îkƒ‘kï«.רäëczèu,DÒ9ðÂuº0=¹qa ¬h¡ÊuáÖje¯áÝÆes\¸%;"ƒÕÎ(Ì•ËÆåÈÁt`Þïcîïår<.–ÏrÐ}¸‚emRôc Ý Sׇ˜':é 1\_½Ûó„ÌC ×¯òB0@mC¯>` û2>Ÿê<õ Å.à>àÝ €ƒŒNnö÷† m}ºÀ L]œßBùÖ#–ƒ~Où!„¢Æzzz0ÿÿÄßÿÝߦøÃŸføÇ˜PCäÌ0¶nqžÃ[5ÍA!„gãò2ñù?ÿë¿§ñûÇ ó~øð_~ù%¾ýöÛ­ƒ÷ïß¿ø2úõBù(ßçS/Y–ƒòB!Ä´Ÿýæ›oðÓO?á‹/¾ÀW_}…ßü&{ˆ³eYBd6©&×-˧OŸðÃ?à믿À#  !„B!„B!„B!äÕÀ`B!„B!„B!„By%p˜¼0ú˜ó£ê„B!ä9ÙÍÐëͰ;U~B!ìƒ^ªüÁ8=–p¼"=°ogFÈsÖ¸µz·©=ÌèÔl÷Ÿ«Œm•=C§¯5î¨ € ©à?þøã?þø{Æß˘ÜíÌDgNÆÉ†5Æá˜,ŸÞp2$óìÏ((Ãî~ Œ.aëî«•#—ßH^ VáHµª>ÍõŒ-X¥ºÏåÏ”©h"J'ç©®×vv3ßÑê%gëôo¦rªÓíf=éž{?Ò]o]/U뢱ß4—åà’½R}¨&x”“>Ú§¦ú ÆÙú¸›¡—”£¤ÍiA ÌzÉDó^†¼?eü]§¿{4µ·Î¦× |¿°/#µí5ØÂ „˜÷?ãIõ—`«ªu•qX q˜é³ ìcÐvéãªñá1ã°¦1VU™Íä¨K™¥—d7íÓ¡ëÿ‚!<§…˜ˆ4_4î¿ ë¾i;UÇŽ'ïk¥˜ ô°½5‰½wœµžÚ… À„B!„c¬1¬à‹hµ–Žj‰&@Xd’?Jz[ ¤É'UúBÂtã{ á£;½B´nRñeˆƒÑ¥­¿¯FŽ|~mº`•ÞWˆÞöV9 ¯ªO“üûûX¸… §p,œÏ¿Ãìj‰Q<À~Ó+Ýä¡ZÎS]¯7×cê;ezqÓôB¬1±w˜õör ('ôéìÉ:¾_ôó]À¹èh®iø¼ Tª‹æ~S›d’4£ç؆’½„ð±2Z¯Ü>U™¨êHú>º!ПÃïNñ6.x;¼;LlMúV±1YG“sŽTþÎr$éÕGwÚ1[(•íްìÔ{é@gƒ*×µmBI?@ê6œØ¢‹7Tç !ß?1;zføl­} Û.]œP5>{‚õzS5Vªû…þ j£w˜õÚxÉõ™c‚Š:|Ö¸ãX².B!„Bê§W[xá}åØiY@¬.†qbûrgû˜ÆӗПKoõvpáÔ{FQ¢ûuñÆ.¸¯RŽ|þ‚t™ë!6êAk%}Ê»Kô»›õp{b}}!_4ΟҹÐüM'ç©®× ¨ê;ez‘m¾—ý!Üͺév3Ü.\Üäg÷ÒëÿŸáó*P£.šë§µ!Ü/q`¯þ¼Ä~uÛ§JÈu¾y¬Ìþu¼;âÀ¦êôGlé­?Ë“a}ÌCXÞW«Söt[¬ƒÕ®ë}Ò¨.Ÿ™AúÖYì\ 0îL±ÁƒX¦?gvÆ%}̳«)6›):ñn§2Ý1t™ß©ÿ¿j‡a¼#h6–uÿ€·½ÏxWã°æq˜îÙŠüUãð"ß—ûóøðxqX[1–¹Ì5ûúTw¡Ù}u1Yi=ªÓžUhƒv3ôzcŒ{É1¹û“?ƪ_)huýOiþü½Ù®‰LÙ¿Ë»¦MÊ›”k…a¼ §ì_ò;>ó;|“ô)6™¿ö_Æ~¥«û•ýÁÆd=Ī´ï¯Ò×–ômµNòÉÅõ¿ðWyº4î‹+Æeþ°¸À_\&„B!„Ô$Àj±Á´cÕûÎŽýݦ Oé¸ìKŒpiW}FI‚îðpòIwß¼ºüòJ¢æ"D }îf=\á®æn7“õ Ýu–ݼ-­“óT×[÷ÿ2½Ä“™‰¢-wòdüÿ2å颢×>”½nú¼cÔÅš~S…xò(3¹»ÇrsŽ;ûº±OäP{‚›îWWKtý¤](H,vØ:uÚWUµYaá\ sªOåoØ—=cŸ;îLÓAûgÙëÇ{Q¡ºoÏCNzlé¿•wÆù]LßQ›y·O·žØÙtiº¶í?Á»À*È÷ׯÜȻ֓†›)†"é§7[\Ü%ö@û§<;ªþ‰qØñãZÓgçíS¯íÒÅ •ããÆaÕc¬F2›¶Â:Ýiî{˜¾¤ŽéêQÛ1‘Ü~ù.ƒ+ ù÷í ;ãvP×ÿ˜ä—Ÿ—;åFÌû6&7.I#¬°poŒw/c –—KªWÕú—²þõ°ÿjµîøƒÎú˜ q\iãà }maßV`ÛƒcªåÖr1ÁÿþküBùBó¾¸rÜQæÿ Ý5ðÅSÃ`B!„BH¤£¨BÛÁ)Ž ŠD­½ˆ¤/C°ZÀökˡί’7>rU ±jãb{‚uéo;Ü/7ØL;û·Ú7Stz3ìŒòËÇê…ðœÍq&é_ ÿëõOÐdŽuëcްL'9;˜** Ò•îþµÍîsäºxt¿Éw˜ãv. yËÎc9‡«ƒï2ö¯=#\÷ÍÒŸ%òäóí³x¬2¶â‹ç€ !„B!B·ÉȺôˆÕdà”$_bÓ}S'Øn†ÞÁà¸ê3 Ê9v«à¾J9pxl—&Ýn6–&'¬šÉÎ*ú¬ú-0¥nKòÛoÐÝL‘nÞÌèNþ¶¢NÎS]?²ÿÿ¶@/ÁXú¶šª¾Dß¿ÂèR²£jÒ$—.N[¾û×à>Ç®‹E~säöêÚ¦¬>ƒñb³})мƒ·lrºjú&¤»±îŽŒ}ÇTökX§Ú][ÜV˜÷e'"Wwv÷KlÜ!úý!Üs¹!AÚU´»_fä—ŠÒµ«T\޶XWØ&í`¾2­Ê‰=^jHWÚ?1;F¦}v>¿Ò>EºSÄUw°VlCÛÃjÄXµldØ)vó–M¥k]ÓùoÛq{ƒþFo&MÿSµµ/1‚:}ÿÚÃv0ÀV^L7(otZÊp•[€Ôõ/R”^ÏÅ7Úþ¨ÆËmÅu_á…mt¼ðzÜ 1/è‰*öµ}[¡m[ØœÈW³/®wTmU¾øxzzOOOâŸþåß„Ìïÿè B!„BÈyÏåø=‰éu¿wïÞ‰ï¾ûîH’…Âs À^(ýÅsâëÑÏõ…Ânz;(K¿'_†|zÂñÂÏP—!ôœø~ êûêäÈç×Ê뻅宥ÏÐŽ‘=2Žã‰°JþÐö=ádt¯³É©®ëýJëé|§X/ H>àd•žÕ£.],GöZÁuí}ªë¥V]Ôé§Zùr:VÕëÌß#äó%uÁ´þÔÖŸìC }ÈõÒ$}SýelV¡ Ñéï@þä>År«äÓ=¿Úu]› ïËšÐJß{Ð6+äÏõ#yÿ=Y9rö÷]©p]åß/T§SøR+å8è¯4þœ~a›á 7½§îßGò—&~VÒÆ1;B¦{v>¿Ö>EqÈa§êó+ŇGˆÃZ‹±ªÊ¬¨ûErꮸ?9H¯±¡¾•Åy(t¡‹‰þO®_Ñý»¬,êLÛQMú¬+b£J}µ/Üø9º~H¶C¦’cfM$÷_Æþ­©ûZ(Ô¾nh¤¯-‹çJbfãx¦L—¦>X5îKü_#›Òkö÷EqʧOŸÄ‡Ä÷ß/~þùgñË/¿d~OOOéåßÇů¿þ*~üñGñîÝ»ôºõôô$`þÿ‰¿ÿ»¿M†ÿð§þñ&ÜÔ@!„BÈÏÿù_ÿ=ß?~üX˜÷ÇøòË/ñí·ß¾h¼ÿþYËŒ£ïGÍû§ÉO^§_Q/”ò}>õò$åÆÑñ-v>´åcFÈ ÙÍлîÒÏ´ì0‹.œÏ‘ÑGêŒaÝ^˜¢†cú÷‘}ñýû÷øæ›oðÓO?á‹/¾ÀW_}…ßü&{ˆ³eYBÀ²¬ƒë–eáÓ§Oøá‡ðõ×_àЄB!„¢á5ü¾ÏËû>!„Úc¥oí Ÿ+^„qã0òºØLѱ,X½¿„eu0=“¿»ÿ V ¸7\ü%gàë/Ô¿ é!„B!$OsÑ?a~B!İǙ ˆ9õ@‡1#¯{‚µ8Ï“ZÝÿôç¬Éä\|ý%ú"€ !„BùLxÿþ=Ë@ýêÕè…òQ>Ö#–ƒ~Où!„¢† À„B!„|&ðÀ„Я^‹^(åc=b9è÷”ByM㯶á7€ !„B!„B!„B!ä•À`B!„B!„B!„By%p˜B!„BŠØÍÐëͰ;U~B!ìƒ^ªüÁ–eÁ²,ŒƒW¤öíŒÃyÎ:·£Vï/ã6µ‡šíþs•±­²çc‚cèôµÆ5á0!„B!¤µAVï`&"À83p 0N&0¬1y€•^WÝG3(SæÑa– ·pᎅóùw˜]-1ŠØÂïbz¥[\VËyªëõæzL}§L/nš^ˆ5&ö³Þ^Ná夃>=YÇ÷‹~¾ 8_jåhS/Õë¢iyL’fôÛP²—>VF ÐEõ§ñdXG²“ðÑ}þ~wŠ·±pÁÛ)àÝabkÒ·ŠÉ:šœs¤òw–#I¯>ºÓŽÙB©lp„e§Þ¢¿ÎU®k}¿¤ uÎGlÑŪó…=3|¶Ö>†m—:NèèD}ßcÅaíÅX‡1m3<¯¢î´6¨‹·}fÖv_à³'X¯'0Uc¥º_Øž©Úèf½–_¦|Ž˜ ¢Ÿ5î8–l'‚ À„B!„úÃéÕ^8G_9vZg€«…‹aœØ¾ÁÙ>Fƒñþ\zC·ƒ “Ùež‚g(e*.Ct¿.ÞØueOò¤Ë\ñ°QZ+éSÞ-XPödRâö"ÄúúB¾hœ?¥s¡ù›NÎS]¯;PÕwÊô"Û|/'úC¸›„uÓíf¸]¸¸™|£‘£]½T¯‹¦åm}F÷KØ«?/±Ÿ©ÿ7B®ó}Ìceö¯ãÝ©MíÂôGlé­?Ë“a}ÌCXÞWóû º-ÖÁj×õ¾oT—ÏÌÎ ýHë,v®w¦Ø`A,ÓŸ3;à’>f‡ÙÕ›Íx·ÓN™îºÌïTŒÿ_µã/Þ4˺ÀÛÞg¼«ŽqXó8L÷lEþªqx‘ï§}ŠF'êû/k+Æ:Œi«Å<•bÝJº+°.¯ÜžUhƒv3ôzcŒ{É1¹û“?ƪ_)huýOiþü½Ù®‰LÙ¿Ë'¡˜”7)× ÃxAOÙ¿äw|æwø&é;Sl2?쿌ýJW÷+‰mLÖC¬Jûþ*}mIßf|TALðWÿ •‘W¡K㾸bÜQæÿ;€ |ñÀ`B!„BHM¬L;V½ïìØoÐU.`Ýc‰.«¼v«Ë£{†i‚îðpÇTv]þy¥ Qs¢´¬ªùŸ®pWs·›Éú‰î:KŒî Þ–ÖÉyªë­û™^âI‰ÌDÑ;y²Gþ™òtÑNÑkôMíÓ¶^Œê¢iykOe&#w÷XnÎq'bC7ö‰|jOpÓâêj‰®Ÿ´ éÅî[§Nûªª6+,œ tÎAõ©ü û²gìsÇiº3h¿“-{ýx/*T÷íyèÁI-à·ò8¿‹éÛ j3ïöéÖ;»S.M×¶ý'¸qXùþ:À¸ó€y×z²ão3ÅÃP@$ýôf‹‹»ÄО‚ñrPõOŒÃއU{vÞ>õÚ®}œ Ó‰á}‡U±ŒbÚÊ62Œ¥*êN¶A³X¼fL$·_¾‹Åà Hþ};ÃθÔõ?&ùåçåN‡ó¾É‹EÒH+,ÜãÝËÁØ‚eÅå’êUµþ¥¬=ì¿Z­ûí”®îc.Äp¥+ôµ…}[mŽ©–_XËÅÿû¯ñ? å ÍûâÊqG™ÿ+t×ÀO € !„B! Ž¢ =lM Š7½«rìR†îµ>éYµ¬é¤ƒôV»ã™/Îìf¸Ý&p“uÙ·ëJä<Õõ¶ýÿϦz‘ŽuK&lR;hä,I—ÙÕcjŸÖôR¡.š–·Uû¼Aw³Äý9oÏëÏ!„ŸN0µž¾mÝ™úN2ùzçµ@¦“¿j_vj‡èHÊsg7COþ~µn§²iºVêÜ5¼í ¬¶Ò.«ƒof¾€ãÁ[ÅðSŒÃZîOMŸ­±AÛ¥Þý[¢Ý}Ÿ3+±t1íÿ³‰ ¥±TuÝemÐ0?&&í`QÿÓJ;z² ²Gy—å™ áJq<ñ3ô/ò®ZóÁùº_ÖNiÚ€d±s5,×w]hm[´øH>x¬2¶â‹ç€ !„B!B·ÉȺôˆÕdà”$_bÓ}MpìfèU]üUæ)xFÕ2dŽÝª!{þØ.MºÝlœ™HZ-4“•õÙ`‹I~û º›)ÒÝÉßVÔÉyªëGöÿßè%KßVSÕ—èûW]JvTMšäÒÅi3»z´ö9‚^j×EE9ŽØ^]{À´“Õg0#P,p¶ï/º“wð–MNWMß„tb7ÖÝÁ€±íLõgO°öuªÝµÅm…y_v"ruzw¿ÄÆ¢ßÂ=÷—¤]E»ûevá@~9 (]»JÅåh‹Õx…mÒåÛNÓªœØã¥†t¥ýã°cÄaÚgçó+íS¤;Eü Úý[`ÃÃû>gV#ƪe£’þ¨4Ö5Õ] ÚŠ%Úü&©i;¨ëª¶£ö%FP§ï_{ØØÊ/.”7:-å¸Ê-@êú©J¯çâmTãå¶âº¯hÏ Ûèxáõ ¸b^ÐUìkú¶BÛ¶°8‘¯f_\)î¨Eª|ñ%ðôô$žžžÄ?ýË¿ ™ßÿÑ„B!„ó ŸËñ{Óë~ïÞ½ß}÷Ý‘$ …ç@€#¼Pú‹çÄ×£Ÿë !„/Üôš+|MZ‘o&ÄAôyÔÏÐˤ.Cè99ªÉžÏ¯•×w2)4]AŸ"ô„cdÌ„ãx"¬’?ô„…ýCO8Ýëlrªëz¿Òzzß)Ö‹Â’8Y¥gõ¨KË‘¯3Z9ZÔK­º¨-‡9Zùr:VÕëÌß#äó%uÁ´þÔÖŸìC‡íh¦^š¤oª¿ŒÍ*´!:ýȟܧXn•|ºçW»®ó}}_Ö„VúÞƒ¶¹¸N©ü÷dåÈÙßw¥6Âu•s¼PNáK­”ã ¿Òøsþù…m†/ÜôžºÉ_šøYIÇ8ìq˜îÙùüZûÅ!‡m\¾ÏÕÛP×&¶‡µciÛž"ø§æyÕu§‰ÕDQŸ_ äu¢Ð….&ú?¹~E÷ï²v°¨ÿ1mG5é³>®ˆ*õÕ¾pãçèú!Ùž™þIŽY5ý‘Üû·¦îkýªP?úºu  “¾¶,ž+‰™ã™2]šú`Õ¸#,ñlJ_¬ÙßÅ)Ÿ>}>|ßÿ½øùçŸÅ/¿ü’ù===¥ÿ•?~¿þú«øñÇÅ»wïÒëÖÓÓ“€ùü'þþïþ6]þßføÇ˜pS!„B!g@>>ÿçý÷4~ÿøñcaÞ>àË/¿Ä·ß~û¢uðþýûg-C0޾5ïŸ&?y~E½P>Ê÷ùÔË“”#GÇ?¶ØùДq!'d7Cï ¸K†Þa]ÀäœN«8Bÿƒ` ëöâ<ŽÅ&Ÿ7Ïà‹ïß¿Ç7ß|ƒŸ~ú _|ñ¾úê+üæ7ÙCœ-Ë‚–e\·, Ÿ>}Â?ü€¯¿þ€&„B!„Õ¯á÷}^Þ÷!„¼Ðk,}koø\ñ"ŒÃ‡‘×ÅfŠŽeÁêý%,«ƒé™|üýØýO°ZÀ½áâ/9_¡¾øMG!„B!yú˜‹þ óB!†=Î\@Ì©Â8Œqy•جÅyžÔzìþ§?`M&çâë/ѹL!„BÈgÂû÷ïYBèW¯F/”ò±±ô{ÊG!„5\&„B!ä3ß&„~õZôBù(ëËA¿§|„BÈkµ ¿L!„B!„B!„B!¯.B!„B!„B!„BÈ+ À„B!„RÄn†^o†Ý©òBaôRåư, –ea¼"=°ogFÈsÖ¸µz·©=ÌèÔl÷Ÿ«Œm•=C§¯5î¨ € !„B!­ ²z3Æ™S€q2a(¯[°LFkòdHæÙºgèd*.Ãî~ Œ.aëî«•#—ßHÞ²²›êÓ4¿¬ Vé 7—?S¦¢‰(»?çõÚÎnæ;Z½älþÍTNuºÝ¬'ÝSò##9ZÐKIhî·õe9(»d¯ŒžòvUNúèëOëú ÆÙú¸›¡—”£T߬—L4ïeÈûYÆßuú;°GÓ k L¯ø^a_FjÛk°… !0ïÔ.ÐÞVUë*ã°â0ÓgØÇ í2‹rù•÷=fÖ4ÆÒÅ´ mT1¦Ó꺩Ž¡ëÿ‚!<§…˜ˆÔÛ1î¿ ë¾i;UÇŽ'ïk¥˜ ô°½5‰½wœµžÚ… ÓÒ5ˆ IDATÀ„B!„c¬1¬à‹hµžØÒØ©Ë`‘I>ü(mèm1H»Á*½.Do{[>¨ ÐMóøèN¯­›hž¡‘©¨ ñc0º´õ÷ÕȑϯMgXöJú„Yþý},ÜÂ…S8ÎçßavµÄ(` ¿‹é•nqY-ç©®×›ë1õ2½¸iz!Ö˜Ø;Ìz{9… ”“útödß/úù.à\|©•£M½”Õ¦~[‹d’4£çXÉ^BøX-@ÕŸÆ“aÉNÂG÷!úÿ?{oÏÛ8’µ_tîh¿ÁPÀ£l3)ØdÙ‰pJIÀ&°ðbo²k`_z ‚]@ƒ nEL,;©ôZkŒ›Ì:Ì ãî¨PO R.’UÅ"E½Ø}ý£Ýt‘®†¯4rÔ«´R~»S"ÜγWgR`?[ÿß ¹Íw0‰•Ù¹ŒWGllêËï°§ÇzþY ë`zÀì¶œíÜ4klƒåŽë}Ϫ-©•AúÎQ¬\ 0hŒ°Äg±LߤVÆ%1&Âøb„år„F¼Ú)R–Û….³«ðâÿ«VüÅ+‚ÆY÷wxÝþ„WÕ1Û>ÓÝ[q~Ù<Üäû›˜¢Ñ‰úº»ËÃêʱò9m¹œ£z®[¤ëÿ§Éájʉ,ý%U¾=À l“û¸óÇ PÅC?¨‹?…çg·èM¯pMdJÿ]Þ Å¦¾I½|tã =e|É®øÌ®ðMÊ7FX¦þž_Ö~¥kûÆþLyu ]ø…±¿L¬-ˆmÖ;@r‚_þ/~™’W¡KëX\2ï(òÿÜ `ƒ/>8L!„B©HºÄ¨áTûÎŽ{‚fjKzHe³n1CçnÑ=JÖ!ð1íwó²è®›•Cw~NÞ-ên]WÕøO¸©¸ÚÍÅpq…»Dwz7oKëä<ÔñÚý¿H/ñ Dj h…·‘<Ø#ÿ_¦¸Üz¥è%:¶ö©[/º¶X£ß¥#£[̖Ǹ±ƒn?ö‰lêqÕáâb†æ<é åwEô«V•þUÕl|L[§hƒê7òoËösÑfeÐãJ±ôñݽ¨PÞ·'¡‡ÖfÛÒ!¾–WÆÍ›½Ö}æÍc¹ÅÐM¯ Û”«ÛþC\õ§ðƒl¼0hÜáJ^µž¬ø[Žp×Iœ^®pz“ØÚ]0žªøÄ—Î;Šü_¡»-|ñÐp˜B!„²ÒVT¡‡ÕÙ6[PÅÛŽŠ.üRoÕÆ[¢ÞTݪI_‡ÀŸ¢ßíT–C}¾JÞªuשrˆEáongK,GÇ·Ú—#4ÚcDVçËÛÖ…ðZËÝ Ò?Aÿ×ë% ImëÖÁ$ìa¶äl`¤œ¨´(—Y)ºûlÛk"»Ýa²Û±L‚Ìñ£F^Ís6t+ÝlËmÛöºº¿‚wÙ‰·|d_ÇÆxB&«géÅ÷¼‡VÝ7ûí‰ñ‰yØnó0ýsçëìS²ïÊí(¡ÓÉ1ô‰er,]Nëãö™M©œN§kÛ\oþ¦Í‰âþ«qŠ–ü{olúA]ü±=s¿[Ì ¸N§‹þtý©ŽT[6¶¯õ$¤ßÕlw]&¾Tˆ¯òªÚâiLýN¶MZôÑî‹M~hÑfuº0Å6“mS2Ê?^ª)‹·©£ÊÿÕ ƒÚŸœ&„B!„Ô4øpŽžvå¢î¡Z5!ÓA·¿„Ýg- œkœ†šAí=lêáíª…Ó†ÍuUr¨Î/·TÝ·¬ëfÐAz«½åÙOÎDc\¯’pÃ…å·›urêxÝþÿ­^¤mÝ’›4r”K­4±µOmz)òíºü¶ª}NÐ\Îp{ÌËó:1ß 0Õ^¾nÝÙÚ.|½ãš ÓÉ_6–šðn½%å±Ñ–¿_­[©l[®–6w oå#@%­²Ê}3ó l^+6ÛŽ2«?žÙÞ[c‹¾K½ú·@'ºëî3+̱t9m¿ØF†¨BN§ÓµM®·¯œÈ›~ÐjéG×»žøAz«ì¢s&B ë+¶'ÞC|‘WÕÚ¯ζý¢~JÓ$“~·XßÛèBk[Ó àùà®êX‹/œ&„B!„lõ t;Ћ® ”õÛ÷W—0j¤õ œ{“+£-¯à-ü-[~6»±îr[Æ>h«?wˆÅ8sµºÖÜWØÇ²‘iÓÑí Ë~Nýc¹!AZUÝÎÒò˦rõ*ç½üUÒŸfûNÛ¦œØã©¦t…ñ‰yØ.ò0í½³ç+ícÒ"P­þ5Ø0Ý}æar¬J6*ˆGnÅœN»Ò:›ÃÕ”m›÷Õ[«^Mü)ÛºçèA]¾séauv†•<™nQßõn)7ÀEfR_¤´9žÉo´ñ¨ÂËm涯èÏŒ}t<ñzÜ11D¢’±6ÛŒ¶­ap"_ÅX\*ï(›Eª|ñ)ððð Ä_þö!ó‡?y‚B!„rdós9OrzÝÏ›7oÄ·ß~»#ÉBáµ  %¼Pú‹×Нús!„˜‹þæX_Ì“Âó¾¢lšl²× Z^¨¿‡V&uB¯_o#¤òº:9²çk嵨{i}†žhYÙ#uÑjy",s~è‰ö=ÑJé^g“C×û•ÖÓKøŽY/ H>ÐJ+=­G]¹XŽô1ƒ5êÅÜKúm ´òet¬jש¿%FÈž—´ÛöSY²åûÑT»´)¿­þR¶)чèô—“?¹ŽYn•|ºû—;®ó=},Û†Zbo®o.Ž¡Yÿ=X=2öŸ÷¥>¢ßWþ­å…êr _ª¥¹x¥ñçìý}Æ\ô7×Ôý¾#ÙÆÏ˜‡í?ÓÝ;{¾Ö>¦<$ßÇeó½ u}býyXm9–¶ï1ÙÈÂ?ËætºœL›ÃYèH™ deQèB—ý'Wt¿õƒ¦øcÛjʧõ©ÈJÅê¹èÇ÷ÑÅ!Ùö©ø$ÛMäøeíßš¶¯m“FýØçÒV±¶(Ÿ+È™­ó™"]Úú`Ù¼#,ðlJ_¬ïMyÊÇÅ»wïÄwß}'~úé'ñóÏ?§~6ÿÊ?ïß¿>|?üðƒxóæÍæ¸óðð `ò¯ã·¿ùõfbøã÷¿rQ!„B!G@6?ÿëßÿ¹Éßß¿o<÷Ý»wxùò%¾üòË'­ƒûûû½Ö!¬¿5éæ|ò<ýŠz¡|”ïÓi—©G0XoÿXcð¡=(ó0BH4Fû¸Ù|¦%Âx} Üg7ž`üA0€s}jÿ‰Bvéß;öÅûû{¼zõ ?þø#^¼xÏ?ÿŸ}–ÞÄÙq!à8Nî¸ã8øøñ#¾ÿþ{|ñŸ4!„B!„¨žð¶ü¾ÏÓû>!„'±Ò·ö΀9g¼ó0æaäy±¡á8pÚ_ÁqÉÇßwŠþ'ÉøúõÅ4!„B!„dé`":<ŸB±Œ81¡ó0æaäYâ±ǹSë®ãOg"À–LŽÅן¢/r˜B!„O„ûû{ÖúÕ³Ñ å£|lG¬ýžòB!D '€ !„BùDà7€ ¡_=½P>ÊÇvÄzÐï)!„òœž¿ê†ß&„B!„B!„B!„g'€ !„B!„B!„B!ä™À `B!„B1Ñnê|B!ŒAOUþ`Çqà8Á3Òc;ó0BöÙâ~Ôi÷©mŒéÔì÷÷UǺêžÍ v¡ÓçšwT„À„B!„Ú²Ú¹‘ˆƒÔƒS€A2€á (/çÀ±yØ’CR÷.ºGV&s¢ÛÐ;‡«»®VŽÌùVò:pŒOªåõYX÷RzÏœŸª“i J'硎Wvv;ßÑê%cëÍßlåT—‹Æméš’ÚGï¥H m@Ÿšîo%WwÉ^)=eåPúì@^þ‚Aº=Fc´“zê{k0n'Í2dý,åï:ýåì±í€uY_*Ñgc©l¯³¼P@IÇÐ8Awx[•m«ÌÃjÈÃlïm°Eße—'dÎW^w—yض9–.§ÝÒFºû™ä(ÔÝ£­µ¶ÉÒò ±ø/„áµjȉHõ¼-ñëøeÙömû©*vÐWÑgÑùeôž??Âøb†^ü€-æMŒ.t“Ëj9u¼ÚX­ï饿)/ÄC7¸ý(§˜gÊA}9w¸ˆ¯·þ™÷ÖéK£&(¡ èîSëý³$ƒ¤)=Ç÷”ì%„À¾Õ‹»“7À !ÙIÌѼ Îóæ¯cá‚×#À»ÁÐÕ”¯ÃÅzp®%Õ¿1ëIz£9jØM”Êö{˜5ª½ŒQÖ—Jõ™q€Tí8ßb…&N¨Î'B6>1Ûyfyo­},û.užÐ0èD}Ý]åaõåXùœv;éîgCg­µ¶ÙqNô‰=°ÖûŸ;Äb1„­Kµ}c¦ê£#ŒÛu¼äºçœ ¤÷šwìJ¶Á `B!„BHõÇi/œ £|vZ¤&€þ´n\Ø=z›šº> ±¸<µ»yg"½ÕÛÀi«øy™ÌuX_¯‰×p]¥Ùó åRÇCÜ-Õ­¥ô)¯4Ô]«÷çohœjþ¦“óPÇ«Ž”õ"½È6”.úË;„UËEc\Oû¸¾2ÊQhÏ2Ú€î>µÞßnD·3äìÕ™Øo/òÊm¾ƒI¬ÌÎe¼:bcS×X~‡==ÖóÏò`X“Ðf·åÚ”{‚fm°Üq}Ÿ`Õ–ÔÊ ý Hç(V®4FXbгX¦oR+Ý’a|1Âr9B#^í)ËíB—Ù•ŠñÿU+ûâAã¬û;¼n«ꘇmŸ‡éî­8¿lnòýMLÑèD}ÝÝåauåXùœ¶\.X9וŽkå¶ñ³\¼/ÓŸ•胢1Úííd›ÜÇ?*®úA]ü)óæ±Übè¦WÄmÊÕmÿ!®úSøA6^4îp%¯ZOVö-G¸ë ˆ$N/W8½Iìí.OU|b¶Ë<¬Ü½³ö©Öw=æ :X^w§yXùË*§-m#ÝýtÇ‹tg¶µÖ6uçDrÿ5ïczv$¿_Y÷ƒºøcs¾|¿Ì.7B`Òq1¼êcštÒiÿÊzõr0pà8q½$]—‹/Eñ5¿jmû¹~J×Gw0â¸Ðæ‡%b­1¶l›Û¦Z~a-“ü߯ð?FùBûX\:ï(ò…î¶ðÅCà `B!„BÈH[Q…VgU¶ Šp;[b9j<¾]½¡a½‚)Þµòä–¾?E¿k; “—C}¾JÞxËUÑ…_ÇÅî‹Â-Þ z·:_ÞV/„×Zîfþ ú¿^/ñMj[·&a³Í`a#åD¥E¹ÌÊ‘ýÛgÛ¶XÙí“mÜŽeâ1kÙI,g×Ï}û¯séèá²cWþ(‘Ÿ¯Oå¶zuIJ½Åªåm|Á=ï¡5õdŽ5òjž³) [‰g[nÛ¶×}Ð ü¼ËN¼}äã û:6ÆFY=K/F¸ç=´j}Éhï=‘">í«ïÿTó0ýsçëìS²ïÒ®0ÍêäúÄ29–.§õñaÛÌF“Kés,“î ~Vuõo‘¿is¢¸ÿjœ¢%ÿžÄ›~PlÏßÜï3(®Óé¢?]ª#Õ–ík= éw5Û]—‰/⫼ª¶øES¿“m“}´;Äb“Z´Y.L±ÍdÛ”ŒòO…—jÊÄâmê¨òu öÅ''€ !„B!õàž£§]¹¨{¨>Ecóð+½]Ýò,'  œkœ†šA€Í=ªÔ!ÂÛU ÊÏp宫’Cu~¼è Û_¢Ò'=ËÖu+½ÇU«äÜÅpQôíº9u¼nÿÿÆV/Ò¶nÉ€ÍÆ9 Ê¥VŽTµOeŠ|ûÐýÓ šËnyy^g!曦ÚË×­;Û6• >‡ÞqMéä/ËMx·Þ’ò؉ÆhË֭߯T¶-WK›»„·ò €¿’VYå¾™ù¶¯›mG™‡mŸ‡U½·Æ>}—z…iNt×ÝgV˜cérÚ.~± º\Ê6×ÓÚ$oë¬þÝ›~ÐjéG×»žøAz+ï¢s&B ë+¶'ÞC|‘WÕÚ¯ÎúCQ?¥é’ÉN¿[¬ïmt¡µ­iðŽ|pWu¬ÅNB!„B¶zºNž¬ ·XMœ’â3,›'ÕW‚Ec´sÇeïa¨CjÛ-Ãu•r ¿m—¦\4Hƒü©f°³Œ>Ë~ L©Û‚óÝ4—#l<¤t'[Q'硎ïØÿ¿6è%HßVSµ—õ÷¯Ð;—ì¨4É”‹Ë¦VŽ˜ìS7º6pdýÕ¥Œi}ƒÅgýþbм‚·hpºlùmØ ìÆºËmû ­þÜ!sàÌ9ÔêZs_aËD¦MG·3,û]t:]ôýå†iUQt;KOÈ/˜ÊÕ«Tœ÷Vð>VIší;m›rb§šÒÆ'æa»Èô÷Ξ¯´IwŠüAµÂÔ`Ãüu÷™‡Uȱ*Ù¨ ér)­z›ýl›Õ¿uäýEõÖªWÊö£î9zP—ï\zXa%OŽ[Ôw½[Ê p‘™€ÔÅ)mŽgòm<ªðr›¹í+ú3cO¼^7B@L ‘¨d¬ÍÅ6£mkXœÈW1—Ê;Êf‘*_| <<<ˆ‡‡ñ—¿ýCÈüáOž „B!„Ùü\Îß“œ^÷óæÍñí·ßîH²Px-h /”þâµâãëŸþ\!梿9Öså%=Ñjy"ÌÎÖ!{}¢å…Æ{¨eR×!ôZñõÔ×ÕÉ‘=_+OI¥–ú =Ѳ²‡Fï¶ç‡žhAaÿЭ”îu69Ôq½_i=½„ï˜õ¢°ä­´ÒÓzÔ•‹åH3Èaáeú }[Ôß§Ð Ðʗѱª]§þö(Pú¼LTV^{ýÉ>”·S¾?,(¿­þRm¦„Ïèô§èÏ××1Ë­’¯¬/•‹AúX¶ µÄÞ\߬?G ˆ¡©GÆþó¾ÔGôûÊ¿µ¼P]N“l]\¼ÒøsöþÆ>c.ú›kê~ß‘¿lãg}ó°äaº{gÏ×ÚÇ”‡äû¸lž ·¡®O¬?«-ÇÒö=&Yø§UN'Ë¡‘[ëgšNåYYºÐåDÿÉÄÝïEý )þØö£šòiý(r£R±z.úñ}tqH¶}*>ɹ·&ÉñËÚ¿5þ m“FýèÛVN6±¶(Ÿ+È™­ó™"]Úú`Ù¼#,ðlJ_¬ïMyÊÇÅ»wïÄwß}'~úé'ñóÏ?§~6ÿÊ?ïß¿>|?üðƒxóæÍæ¸óðð `ò¯ã·¿ùõfbøã÷¿rQ!„B!G@6?ÿëßÿ¹Éßß¿o<÷Ý»wxùò%¾üòË'­ƒûûû½Ö!¬¿5éæ|ò<ýŠz¡|”ïÓi—©G0XoÿXcð¡=(ó0BH4Fû¸Ù|¦%Âx}à¸v^ÙAüA0€s}jÿ‰Bvéß;öÅûû{¼zõ ?þø#^¼xÏ?ÿŸ}–ÞÄÙq!à8Nî¸ã8øøñ#¾ÿþ{|ñŸ4!„B!„¨žð¶ü¾ÏÓû>!„'±Ò·ö΀9g¼ó0æaäy±¡á8pÚ_ÁqÉÇßwŠþ'ÉøúõÅ4!„B!„dé`":<ŸB±Œ81¡ó0æaäYâ±ǹSë®ãOg"À–LŽÅן¢/r˜B!„O„ûû{ÖúÕ³Ñ å£|lG¬ýžòB!D '€ !„BùDà7€ ¡_=½P>ÊÇvÄzÐï)!„òœž¿ê†ß&„B!„B!„B!„g'€ !„B!„B!„B!ä™À `B!„B1Ñnê|B!ŒAOUþ`Çqà8Á3Òc;ó0BöÙâ~Ôi÷©mŒéÔì÷÷UǺêžÍ v¡ÓçšwT„À„B!„Ú²Ú¹‘ˆƒÔƒS€A2€á ([jȃ!©{ëî¡“É\‡èvôÎáꮫ•#s¾•¼㓪­>mÏ—UàÀ)|ÈÍœŸª“Éf6vßçñÊÎnç;Z½èüÜVNu¹hÜ–®)ùQ¡}ôþPz€ÄÐÌ~£*_Ÿ,¹ºKöJé)«å OMú²Ñ_0H·ÇhŒvR]êo}3ŒÛÉ@ó£ Y?Kù»N9{l;`­³íqC[3Æ2RÙ^g+x¡€“Ž¡ p‚îð¶bv€<ÌöÞûXô]Úÿñ:®ÑGËø,œ=?Âøb†^ü€-æMŒ.t“Ëj9u¼ÚX­ïé%ëçÆíG9Å8S:è˹ÃE|½õϼ´N_å0ùCi m@yŸ‚6³5É i¦?‰Æí”½„˜Ã·z1 V}eª’ÄÍ»èL0oŽð:.x=¼ ]MùZq1\¬çZRý³ž¤×9š£†ÝD©l°‡Y£ÚË:”9®í â©Úq¾Å MœPOæa{ÏÃ,ï­µeߥÎÚûëÊï*«/ÇÊç´ÛÙ¨8GÓåÐÙãZTi{5äDŸØk½/ð¹C,Cت±TÛ7ög*?‰0n×ñ’ëžs‚’:ÜkÞ±+Ù'€ !„B!Õ§ý¼p‚ŽòÙi‘š@øÓ>ºqa÷¼‡Öêmõ‡ñÎDz«·ÓVñ=ò2™ë°¾^'®áºJ9²çÊ¥Ž‡¸[ªZKéS^-h¨{2(q}bqy*´>CãTó7œ‡:^u, ¬ïéE¶ù£œètÑ_Þ!¬Z.ãzÚÇÕð•QŽB{nÝ ÷1¶™]áv†œ½:“ûíB_9ä6ßÁ$VNç2^±±©k,¿Ãžëùgy0¬ƒIè³ÛrmÊ=A³Æ6XO°jËÇ@je~¤s+W #,1ÅY,Ó7©pIŒ‰0¾a¹¡¯vŠ”åv¡ËìJÅøÿª†ñŠ ñ@Öý^·?áUuÌöÏÃt÷Vœ_67ùþ&¦ØÔ}S>ÜYVWŽ•ÏiËå‚y9̹—2‡6WÚϧ¤ IDAT ¶þ¬DÑn0h'Ûä>îü1TqÅÐêâOáùÙ-zÓ+\™Ò—wB±©oR/ÝxBO_²+>³+|“ò–©¿çã—uþ¢k{¥sdÃE~aì/k b›õP†œà—ÿ‹_¦äUèÒ:—Ì;Šü?·Øà‹ONB!„B*ÀŸ.1j8Õ¾³ãž ™šÀŠÖªl¿Ýb†ÎÝ¢{”¬CàcÚïæŸt×ÍÊ¡;?'¯4@!*NBÖU5þÓÆn*®vs1\\á.Ñ]c†ÞÅÛÒ:9u¼vÿ/Ò‹ÊÏWxɃ=òÿeŠË­WŠ^¢SÕ>Û¢k‹u•·!Ex”ÛêÕËvHô«–·ñ÷¼‡ÖÔG9~ÔÈ«yΦ€n%žm¹mÛ^÷q@7ðWð.;ñö‘ƒìëØOeõ,½áž÷Ъõ%£½÷DÌÃöž‡î;_gŸ’}—rå©¡îu¯TÝYŽ¥Ëi}|ض](s/Ýý®ðÿérk­N·i{þ¦Í‰âþ«qŠ–ü{olúA]ü±=s¿[Ì ¸N§‹þtý©ŽT[6¶¯õ$¤ßÕlw]&¾Tˆ¯òªÚâÉ|S¿“í§,üÄb±É-ò.L±ÍdÛ”ŒòO…—jÊÄâmê¨òu öÅ''€ !„B!õàž£§]¹¨{¨VMÈ”Ù6ÀÀ¹Æi¨ÐÞæÞ®Z8mØ\W%‡êüyÑA·¿D¥Oz–­ëfÐAz«½åÙOÎDc\¯’pÃEÑ·ë ä<Ôñºýÿ[½H~ž Ølì ‘³ \jEIUûT¦È··-¿­}NÐ\Îp{ÌËó:1ß 0Õ^¾nÝÙ¶©dð9ôŽk‚L'ÙXvh»õ–”ÇN4F[þ~µn¥²m¹ZÚÜ%¼•ü•´Ê*÷ÍÌ'°=x­0ÛOVõÞûXô]ÚÕ¼šûËï3+̱t9m¿ØVeß5® rk³ öõY lúASü©¥]ïzâé­¼‹Î™®¯ØžxñE^Uk¿"8ÛöŠú)Ÿ$“~·XßÛèBk[Ó àùà®êX‹/œ&„B!„lõ tVIší;m›rb§šÒ1;H¦½wö|¥}LºSäŠÕ¼Æº+Vªî/«cU²Q™x¤È½*ÄüÜŠê*m¯JÞ¾E¼Ñ›IÊö£î9zP—ï\zXa%Oš[Ôw½[Ê p‘™€ÔÅùÛÎÉñL~£G^n3·}Efô“xâõ¸bbˆD%cm.¶m[à àD¾Š±¸TÞQ6‹TùâSàááA<<<ˆ¿üíBæò!„B!ä8ÈæçrþžäôºŸ7oÞˆo¿ývG’…ÂkA@Kx¡ô¯_ÿôçB1ýͱ¾˜?­\Ù4Ù:d¯@´¼P­Lê:„^+¾^‚úº:9²çkå÷2)4]ZŸ6öHÝ@´ZžËœŸ²›T>ôD+¥{Mu\ïWZO/á;f½(l ù@+­ô´uåb9ÒÇ rXøC™>CßÕ÷1•·E+_FǪvú[RñìyI[°m?¢ªþdÊÛ)Õ.mÊo«¿T›)á3:ýåäO®c–[%ŸîþåŽëú},Û†Zbo®oVÈŸ‰#Yÿ=X=2öŸ÷¥6ßï+ÿÖòBu9…/ÕR\¼ÒøsöþÆ>c.ú›kê~ß‘¿lãgÌÃöŸ‡éî=_kS’ïãr±V[wMùäaµåXÚ¾Çd# ÿÔæ^¦X­:n“«iüO™ du¢Ð….'úO&®è~/êMñǶÕ”Oû¢"7*«ç¢ßG‡dÛ§â“lM<’ã—µkÚž¶Ÿ2êGß¶r𰉵Eù\AÎlÏéÒÖËæaÿkdSúbÅxoÊS>~ü(Þ½{'¾ûî;ñÓO?‰Ÿþ9õóðð°ùWþyÿþ½øðáƒøá‡Ä›7o6LJ‡“ý¿ýͯ7Ãüó¿ÿÝ‹!„B9²ùù_ÿþÏMþþþý{ã¹ïÞ½ÃË—/ñå—_>iÜßßïµÁ`ýý¨Iç0ç“çéWÔ å£|ŸN»ÊÇvÄzÐï)!„BÔp˜B!„O~˜úÕsÑ å£|lG¬ýžòB!Ïéù«nø `B!„B!„B!„By&p˜B!„B!„B!„Bž œ&„B!„ÑíöÑ¡Î'„ÂôTåpŽã`<#=0¶3#dŸm îGöWqŸÚƘNÍ~_u¬«îÙœ`:}®yGE8L!„B©í!«‰0H=8$Îõu4e›kÉçî¡”É|ïèvôÎáꮫ•#s¾•¼ã“j }Z/«ÀSø›9?U'Ó@”NÎC¯ììv¾£ÕKÆÖ›¿ÙÊ©.ÛÒ5%?ÒÉQೕHŒ×3ùm‘Ïo'K®î’½RzÊÚU9è£o?µë/¤Ûc4F;©GÝöË „q;h~”!ëg)×é/gm¬u6°=^c "vö:[Á „˜t m€t‡·UÙ¶Ê<¬†<ÌöÞûXô]ÚЗÒ'ìÎ¼ŽƒkôÑ2> gÏ0¾˜¡?`‹y£ Ýä²ZÎC¯6Öcë;EzéoÊ ±ÀÐ0n?Ê)æÀ™rÐA_Î.âë­æ} uúR/GÏ–Æp=µÞì|¾2É iJϱ,’½„˜Ã·z1ÀÔ~¶ kHvs4ïB 3Á¼9Â뤋|=¼ ]MùZq1\¬çZRý³ž¤×9š£†ÝD©l°‡Y£ÚË:”9^k "F{‹š8¡:ŸÙøÄwˆÅb[5–jûÆþLå'Æí:^rÝsNPR‡{Í;v%Ûà0!„B!¤úã´¿‚NÐQ>;-R@ÚG7.ìž÷ÐZ½ETp-‰ôVo§-ó=Ô2Ý;€?mâÄ5\W)Gö|C¹ÔñwKõCk}¦V êž J\Ÿ†X\žÊ­ÏßÐ8ÕüM'硎W (ë;Ez‘mþ(':]ô—w«–‹Æ¸žöq5|¥—Ãè³0\Oé7–>_óˆngÈÙ«3±ëw ý+äúw0‰•Ó¹ŒWGllêËï°§ÇzþY ë`zÀì¶\›rOЬ± –;^s :©•AúÎQ¬\ 0hŒ°Äg±LߤV!&1&Âøb„år„F¼Ú)R–Û….³«ùâÿ«VÆ+‚ÆY÷wxÝþ„WÕ1Û>ÓÝ[q~Ù<ÜäûrLQæJ¹v—‡Õ•cåëR",åÏuûyýY‰>(£Ý`ÐN¶É}Üùc¨âŠ¡ÔÅŸÂó³[ô¦W¸&2¥ÿ.ï„bSߤ^>ºñ„ž2¾dW|fWø&å#,SÏÇ/ëüE×öKçè.†‹.üÂØ_&ÖÄ6ë  9Á/ÿ¿LɫХu,.™wùn°ÁŸœ&„B!„T$€?]bÔpª}gÇ=Asy‡pÛë@t‹z8wu÷¨X‡ÀÇ´ßÍÖè®›•Cw~N^i€BT*¬«jü§ ÜT\íæb¸¸Â]¢»Æ ½‹·¥urêxíþ_¤—xP"5P´ÂÛHì‘ÿ/S\n½Rô[ûèÚNU¬¯WƒÏëˆRƒ‘Ñ-fËc\‰ØA·ûD¶ãs‡¸jŽpq1CsžèÈP~WDo±jUé_UÍÆÇ´uŠÆ1¨¾Î´§˜;hŒ6+ƒWœ¥ïîE…ò¾= =´6Û–ñµ¼ qÞÄèu°î3oË-†nzµâ¦\Ýöâª?…dãu€AãWòªõd…ár„»®€Hú¬å §7‰= Ýãé ŠOÌÃv™‡•»wÖ>Õú®Ç<¡(,k§yXùË*§µ•¡¬?oëçÛ´½*9‘ÜÍû˜ž]Éï×cDÖý .þØœ/ß/³Ë˜t\ ¯ú˜&tàcÚ¿²^½ 8N\/ÉËÅ—¢øš_µ¶ýœêü¤ƒ‰7À…6?,k±Í`ÛÜ6Õò k™œàÿ~…ÿ1ÊÚÇâÒyG‘ÿ+t·…/NB!„B¶@ÚŠ*ô°:«ºÕ6׉·D½©ºU“þÞ?E¿Û©,‡ú|•¼ñ–«¢ ¿Ž7ŠÝ!…[¼E¸-±5ßj_ŽÐhY/oÂk-w3Hÿý_¯—x€&µ­[“°‡ÙfP°‘r¢Ò¢\fUO±}¶m;Û´Åš}^&»Ýa²Û±L‚Ìñ£F^Ís6t+ñlËmÛöºº¿‚wÙ‰·|d_ÇÆxb'«géÅ÷¼‡V­/í½'RÄ'æa»Íà ÷ί³Oɾ+•'òÀ]ÇéÚs,]]||Øi.S‡ŸoÓö,üM›ÅýWã-ù÷$ÞØôƒºøc{þæ~·˜AqNýéúS©¶ll_ëIH¿«ÙîºL|©_åUµÅ“ù¦6–õC ?q‡XlòC‹¿½.=`ÔHë3 (&8ë÷ƒîä¼EƒÈeËoÃf`7Ö]n ÀØmõ籘gΡV×ÖƒöM¦MG·3,û]t:]ôýå†iUQt;KOÈ/˜ÊÕ«Tœ÷Vð>VIší;m›rb§šÒÆ'æa»Èô÷Ξ¯´IwŠü!÷=ù²rí3«cU²Qö[ê¶þ\£ŸWi{Uòö-â¾ZšøS¶uÏуº|çÒÃêì «Í‹ võ]ï–r\d& uñEŠA›ã™üF*¼ÜfnûŠþÌè'ñÄëp#ÄĉJÆÚ\l3Ú¶†À‰|cq©¼£l©òŧÀÃÃxxxùÛ?„Ìþä B!„BÈqÍÏåü=Ééu?oÞ¼ß~ûíŽ$ …ׂ €–ðBé/^+>¾þéÏ…b.ú›c}1·¸NB¶Ùë-/4ÜC'“úޡ׊¯— ¾®NŽìùZyç}…L M—Ñg艖•=R7­–'Â2燞hAa·Ð­”îu69Ôq½_i=½„ï˜õ¢°ä­´ÒÓzÔ•‹åheŽF}Û)¯—¢ë)õféó&´òet\X÷äæÙó’¶`Û~*úUÚ‡ýŸÜ.mÊo«¿T›)чèô—“?¹ŽYn•|ºû—;^=U¡–Ø›ë›ògÚTÖVŒýç}©è÷•ky¡ºœÂ—j©G.^iü9{cŸ1ýÍ5u¿ïÈ_¶ñ³‚>ŽyØò0ݽ³çkícÊCò}\ËÔ¹É>®ÕIýyXm9–¶ï1٨تԭz}4þ§Ì²×PèB—ý'Wt¿õƒ¦øcÛjʧ}\‘•ŠÕsÑC²ÍRñIν5ñHŽ_Öþ­icZ?4êGß¶r𰉵Eù\AÎlÏéÒÖËæaÿkdSúbÅxoÊS>~ü(Þ½{'¾ûî;ñÓO?‰Ÿþ9õóðð°ùWþyÿþ½øðáƒøá‡Ä›7o6LJ‡“ý¿ýͯ7Ãüó¿ÿÝ‹!„B9²ùù_ÿþÏMþþþý{ã¹ïÞ½ÃË—/ñå—_>iÜßßïµÁ`ýý¨Iç0ç“çéWÔ å£|ŸN»ãq¼ñÁÎõ©ý'jÙ¥ïØïïïñêÕ+üøãxñâ>ÿüs|öYzgÇq „€ã8¹ãŽãàãÇøþûïñÅ_àЄB!„¢zÂÛòû>Oïû@„BžhÄHßÚ;æœñ"ÌØ‡‘çÅr„†ãÀiÇi`t$ßuü ü)úWœü%GàëOÔ_Ðt„B!„’¥ƒ‰èð|B!Ä2âLÄ„z ÌØ‡‘g‰;ÄBçN­»Ž?‰[29_Š¾È `B!„B>îïïYBèWÏF/”ò±±ô{ÊG!„5œ&„B!äß&„~õ\ôBù(ÛëA¿§|„BÈszþª~˜B!„B!„B!„Bž œ&„B!„B!„B!„g'€ !„B!ÄD4F»=Ft¨ó !„0=UùƒÇã8ÏHŒíÌÃÙgˆûQ§ýUܧ¶1¦S³ßßWŸJÝ«Èù\ó”NB!„B¶CzhjçF" RBɆ3@°y^jo®±ù)z“CR÷VßC/“¹Ñí èÃÕ]W+Gæ|+y‹êm§Oûóe8p Z3ç§êdˆÒÉy¨ã•ÝÎw´zÉØzó7[9K¶[9[j¦  lïwÕeÉÕ]²WJOY”ƒ8úzÔ®¿`ÖK4F;©G¡¾·ãv2Ðü(CÖÏRþ®Ó_ÎÛXël`{ÜÐÖŒ±ŒT¶×Ù ^( „À¤chœ ;¼­Ê¶Uæa5äa¶÷6ØÇ¢ï²É³sñXyÝ]æaÛæXººXÊPÖŸuå­r¯ :jy…€XüB„ðZ5äD¤zÞ–ø—uü²lû¶ýT;2ÖVÏSž°^9L!„BÙâ™iç ˜‹õCÓbèJÏBm8Φ©âgÀ|]6ôV8‹vÝá"¾†ó>Ð:m˜ïÞ¡9OΙ£9ºÀzÞD}L¦:Ä·AïÜÕ_W#Gö|m¹Àß\WˆÞêZù@_FŸêgSEÝ7×qp>ZÆgÛìùÆ3ôâf1obt¡›äSËy¨ãÕÆzl}§H/ýMy!ºÆíG9Å8S"èË©ÛÏK½–>g¡ lëw•HISzŽe‘ì%„À¾Õ‹¦zl=ðÔì$æhÞ…@g‚ys„×±pÁëàÝ`èjÊ׊‹áB@„ÞÆ6ѸƬ'éuŽæ¨a7Q*Û#ìaÖ¨ö2†ÎeŽkû„‚8@ªvœo±B'Tç!ŸªõýÌÃÊäeâ±Â>–}WQž‹Çšëî*«/ÇÊ×ÅÚFeýYY^'Ÿ>‡«3W-“}b¬õ¾Àç±X a«ÆRmߨŸ©úèãv/¹2OÙ—?ìNB!„Bª?Nû+xáå³Ð"5ð§}tãÂîy­Õ[åS×Ó>®ŠF':é-ÝN[Å÷ÈËd®ÃúzMœ¸†ë*åÈžo(—:ân©~-¥Oyµ ¡îÉ ÄõiˆÅåiʶçohœjþ¦“óPÇ«>Û—õ"½È6”.úË;„UËmÚÏ+½–>g¡ ”ò»ÝŽðàv†œ½:“ûÙúÿVÈúï`+³séau½^E›îÕåwØÓc=ÿ,nu0 =`v[®M¹'hÖØË×÷ VmùH­ Ò¯DsŽb%J€Ac„%¦8‹eú&µ 1‰1Æ#,—#4âÕN‘²Ü.t™]…ÿ_µ‚/^á3Ⱥ¿Ãëö'¼ªŽyØöy˜îÞŠóËæá&ß—cŠ*«¯»»<¬®+_—¹`Y6ú]V>]WS®jé/©òíídÛÛÇ?*®úA]ü)s¹ÂéMbhwÁx:¨âó°]æaåîµOµ¾KγÕñØòº;ÍÃÊçXV¹…­ eýySÞ”{YäzµçªšœHî¿æ}LÏ.€ä÷ë1"ë~PlΗï—Y!-&ë>¦I'ø˜ö¯¬W/Ž×KjWåâKQ|ÍǯZÛ~Îu}t! n€ m~X"Öc›Á¶¹mª3/¬}Î`¥ÏÙÆ$gÙ<¥Xöc†À„B!„-¶¢ =¬Î¶Ü‚ÊvõoîÏrò±dŠ~·SYõù*yã-WE~«ˆÜ!…[¼E¸-±5ßj_ŽÐhY/o[Âk-w3Hÿý_¯—x€&µ­[“°‡Ùf³‘r¢Ò¢\¦ý˜íS³ÏY·EƒßÕe–ìv‡É¶lÇ2ñ˜µì$–³ëç¾ËعôôpÙ±+”ȃÏ×§r›¼šcÙ.ˆÞbÕò6¾àž÷Кú2Çy5ÎÙЭt³-·mÛë>N.þ Þe'Þòq}ÝGÅ2Y=K/F¸ç=´êž¸ÙoO¤ˆOÌÃv›‡î;_gŸ’}W*OÐÅcŽ¢OÒÅI. IDAT,“c™ê²‹\F_^-Ÿm®·ÓæDqÿÕ8EKþ=‰76ý .þØž¿¹ß-fP\§ÓEºþTGª-Û×zÒïj¶»._*ÄWykñ‹4¦~'ë‡}´;Äb“Z´Y.L±ÍdÛ”ŒòO<¹mò9£<*Ÿ)°QÎ-t¢“ýˆá0!„B!¤¦Á‡sô´+uÕé ™ò« œkœ†šAÅ=ìëáíª姈s×UÉ¡:¿@^tÐí/Q铞eëºtÞœnyö“3Ñ׫äÁÛÅpaù-Yœ‡:^·ÿc«i[·dÀfcœåRíÇÚ>[ø\™¶X—ßU¶Ï šËnù5ýÎBÌ7ƒµ—¯[w¶m*|½ãš ÓÉ_6–šðn½%å±Ñ–¿_­[©l[®–6w oå#@%­²Ê}3ó l^+6ÛŽ2Û>«zo},ú®tž­‹Ç]üÂæºûÌà s,˺ÊPÖŸ3åM¹—M®·ë\µ 6ý )þÔÒ®w=ñƒôVÙEçL„@×Wlû»‡ø"¯bµ_œmûEý”¦H&/ýn±¾·Ñ…Ö¶+€ë”Ç&÷)ëƒûÌ?ö'€ !„B!Y?”_'OÖ…[¬&ñIñ–Í“ÇIŸ²«£1Ú¹‡ã‚{”©CjÛ-Ãu•r ¿m—¦\4Hƒü©f°³Œ>Ë~ L©Û‚óÝ4—#l•¦t'[Q'硎ïØÿ¿6è%Hß­Rµ—õ÷¹Ð;—ì¨4É”Sµƒ}ªû\™¶x|ýÕ¥Œi}ƒÅgýþbм‚·hð·lùmØ ®ÅºËmû ­þÜ!sàÌ9ÔêZs_aËD¦MG·3,û]t:]ôýå†iUQt;KÞÊ/˜ÊÕ«Tœ÷Vð>VIší;m›rb§šÒÆ'æa»Èô÷Ξ¯´IwŠüÁ:ÏÖ]wŸyX…«’²ßR/áϪò®|rWS®ºmÞ_”ãkÕ«‰?eûQ÷=¨Ëw.=¬Îΰ’_¶¨ïz·”à"3©‹/R ÚÏä7ÚxTáå6sÛWôgÆ>:žx½n„€˜"QÉX›‹mFÛ¬Þ&G°õ½ª>¸÷üc<<<ˆ‡‡ñ—¿ýCÈüáOž „B!„Ùü\Îß“œ^÷óæÍñí·ßîH²Px-h /”þâµâãëŸþ\!梿9ÖóÌuZò2dë½>œ¯»‡N&uB¯•‘G}]ÙóµòÎû ™š.£ÏÐ-+{¤n Z-O„eÎ=Ñ‚Âþ¡'Z)Ýëlr¨ãz¿Òzz ß1ëEaÉZi¥§õ¨+§k?:9,|®LŸ¡o‹%ý®Zù2:VµëÔß²çed*¬GeýÉ>”ïGóú)(¿­þRm¦D¢ÓŸÂ¾ëë˜åVɧ»¹ãæ´N·ócËôÍ ù3mÚÔNꑱÿ¼/õý¾òo-/T—«ØWÖ#¯4þœ½¿±Ï˜‹þ暺ßwä/ÛøYɸÀ<¬†ø `BèWÏE/”ò±±ô{ÊG!„<§ç¯ºá7€ !„B!„B!„B!ä™À `B!„B!„B!„By&p˜B!„BLDc´ÛcD‡:ŸBcÐS•?Àq8ŽƒAðŒôÀØÎ<Œ}¶¸uÚ_Å}jc:5ûý}Õñ©Ô½ŠœÏ5O‰á0!„B!d;¤‡¦vn$"À õ ` `8òÓæ¸å€FêùÞš{he2×!º½s¸V²η’×c|ò´Ô§õù² 8…­™ó­í¦“óPÇ+;»ïhõ’±õæo¶rªËEã¶tMÉlål©™‚6`öÛš13²ä®/Ù+¥§¬]•ƒ8úöS»þ‚Aº=Fc´“zê{k0n'Í2dý,åï:ýåì±­­u6°=nhkÆXF*Ûël/B`Ò1´NÐÞVeÛ*ó°ò0Û{ìcÑwióM¨/¿ËZÆgÛìùövÓÉy¨ãÕÆzl}§H/ýMy!ºÆíG9Å8S"è˹ÃE|½õϼ´N_êå°ô9k m@ïwY=ÔØ/%ƒ¤™ëGãvÊ^BÌá[½`j?[<5$;‰9šw!Й`Þáu,\ðzx7ºšòµâb¸¡·é¢qYOÒëÍQÃn¢T¶GØÃ¬Qíe Ê×ö q€Tí8ßb…&N¨Î'BÉ~™yØöyX©x¬°eߥÎÚR+ƒô+ £X‰`Ða‰)Îb™¾I­*LbL„ñÅËåxµS¤,· ]fWóÅÿW­0ŒWøŒ²îïðºý ¯ªc¶}¦»·âü²y¸É÷嘢Ì•åÃåauåXùº”È+øsq»ljåYÿ-ÓŸ•胢1ÚíídÛÛÇ?*®úA]ü);ÂpÑ…_ûËÄÚ‚ØVu箟3ÙFé3E¹O¡œ–yJ‘ì\L!„Byžð§KŒNµïæ¸'h.ïÂÅpq…»ä:z7%ߢn1Cç®îëø˜ö»ùÁ'Ýu³rèÎÏÉ+ PˆŠ“…uU=‹·q›Š«Ý*ÚM'硎×îÿEz‰RE+¼äÁùÿ2ÅåÖ+E/Ñ)”£Ÿ+Ós¨ôPñàVj@(ºÅlyŒ+;èöc]d;Pwˆ«æ34ç‰ åwEô«V•þUÕl|L[§hƒê7òoËösÑfeÐãJ´ôñãxábí«“ÐCk³mé_Ë« çMŒ^ë>óæ±Übè¦WnÊÕmÿ!®úSøA6^4îp%¯ZOV.G¸ë ˆ¤Ï\®pz“Øv»—5[ôËÌöÈ3lïµOµ¾ë1O°ËåòûËÃÊçXV9­­ Öþ¬k36Õ]ß:‡Ú2'’û¯yÓ³ ùýzŒÈºÔÅ›óåûev¹“Ž‹áUÓ¤“|LûWÖ«—ƒljë%Ù \|)НùøUkÛÏùƒÎß:˜q\hóñÖÛ ¶ÍmSyaÍèsÛ(}¦È6&9Ëæ)Ų3œ&„B!„l´UèauVm ªÇíÕBx­eÉÁÞxKÔ›ª[/éëøSô»Êr¨ÏWÉo¹*ºðëXEä±(Üâ-Âíl‰å¨ñøVûr„F{ŒÈêümíö|ý_¯—x€&µ­[“°‡Ùf³‘r¢Ò¢\fUÙ>5û\©¶¨ÒCfÉnw˜lËv,YmLb9»~K@—»òG‰<ø|}Šð(·É«'–í”è-V-oã îy­© sü¨‘WãœMÝJ:ÛrÛ¶½îãäBà¯à]vâí Ù×±1žðÉêYz1Â=ï¡UëKF{藙‡UËà ÷ί³Oɾ+•'ò@M^q¼9–®.>>$—1ù“îú[´#“¿is¢¸ÿjœ¢%ÿžÄ›~PlÏßÜï3(®Óé¢?]ª#Õ–ík= éw5Û]—‰/â«¼ŠµøEš2~bÑG»C,6ù¡E£Ó…)¶™l›’Qþ‰'·M>g”Gå3¶1ʹ…Nt²1œ&„B!„Ôƒ{Žžvå¢î¡úhŒëUòçb¸(óMÒç§¡f ¹G¥:Dx»já´as]•ªó äEÝþ•>éY¶®›AéÍé–g?9SÕn:9u¼nÿÿÆV/Ò¶nÉ€ÍÆ9 Ê¥VéXÛg Ÿ+ÓµTÜî°´}NÐ\Îp{̯éw&b¾쬽|ݺ³mSÉàsè×™Nþ²±ìЄwë-)hŒ¶üýjÝJeÛrµ´¹Kx+ø+i•Uî›™O`{ðZ)Ó/3«/ϰ½·Æ>}Wz5oq¨]ý»ï<¬0ÇÒÕ¥‹_”’¡ª?ëÚLÖ¦ºëWÍ¡vˆM?hŠ?µô£ë]Oü ½wÑ9!ÐõÛþî!¾È«XíWÛúI¿%“—~·XßÛèBkÛ‚ÀuÊc“û”õÁ}æ{„À„B!„Ьʯ“'ëÂ-V“‡ø¤ø Ëæ \÷Íå›Å‰¶[µFc´sÇš{T©CjÛ-Ãu•r ¿m—¦\4Hƒü©f°ÓVŸ›{m±‚Åæ|“ÝRßVÔÉy¨ã;öÿ¯ z Òw«T~¾þ>zç’Uƒ&™rqÙÔ*ƒ}ªû\™¶h P»é¯.=`ÔHë3 (&8ë÷ƒîä¼EƒÓeËoÃfp-Ö]n ÀØmõ籘gΡVךû ûXv 2m:ºaÙï¢Óé¢ì/7$H«Š¢ÛYzðV~9ÀT®^¥â¼·‚?ð±JúÓlßiÛ”{<Õ”®J¿ÌA˶¡–Ø›ë›ògÚtÖVŒýç}©è÷•ky¡ºœÂ—j©G.^iü9{cŸ1ýÍ5u¿ïÈ_¶ñ³’qyX y˜îÞÙóµö1å!ù>®eêÜR>®+_V[Ž¥­‹ÉFÅ~d÷ì¢ÎéL1IöS]eβ:QèB—ý'Wt¿õƒ¦øcÛjʧ}\‘•ŠÕsÑC²RñIν5ñHŽ_Öþ]ÒOÌúÑ·­œ&lbmQ>W3[å2Šß­b¿ü•ï••Ó&O)’=ûï–yÀÇÅ»wïÄwß}'~úé'ñóÏ?§~6ÿÊ?ïß¿>|?üðƒxóæÍæ¸óðð `ò¯ã·¿ùõfbøã÷¿rQ!„B!G@6?ÿëßÿ¹Éßß¿o<÷Ý»wxùò%¾üòË'­ƒûûû½Ö!¬¿5éæ|ò<ýŠz¡|”ïÓi—©G0XoÿXcð¡=(ó0BH4Fû¸ÙlÏa¼>p<[Fï(þ À¹>µÿD ù4Ù…ï(ξzõ ?þø#^¼xÏ?ÿŸ}–ÞÄÙq!à8Nî¸ã8øøñ#¾ÿþ{|ñŸ4!„B!„¨ž"K|kjçB!–g }kï ˜sÆ‹0cFžËާý§Ñ‘ìM»ëøøSô¯8ùK˜ûTåU@!„B!Y:˜ˆÎÏ'„B,#ÎD@L¨Â<Œyy–¸C,ÄqîÔºëøÓ™°%æ>Õá0!„B!Ÿ÷÷÷¬!ô«g£ÊGùØŽXú=å#„BˆNB!„ò‰ÀoB¿z.z¡|”íˆõ ßS>B!ä9=Õ ¿L!„B!„B!„B!ÏNB!„B!„B!„BÈ3À„B!„b"£Ý#:Ôù„BƒžªüÁŽãÀq ‚g¤Ævæa„ì³ Äý¨Óþ*îSÛÓ©Ùï龜ÇX÷çš_Ô '€ !„B!µ=|µs#©ªƒdà (<^ð°¶9G¾wѵ²2™ëÝ΀Þ9\Ýuµrdη’×c|‚µÕ§íù² 8…¿™óSu2 D•µû®Wvv;ßÑê%cëÍßlåT—‹Æméš’YØÇÎîUÛbµ6‡eÉÕ]ºoJOYù”ƒAúöƒºõ Òv‰Æh'õ(Ô÷ÖaÜNšeÈúYÊßuúËÙcÛk lÚÚ®|òÓN08[Á „˜t m€t‡·UÙ¶Ê<¬†<ÌöÞûXô]Ú<¡ÐîÛæñeô³mŽ¥Ëm,e(ëÏ:9lý¬¤ Ñò ±ø/„áµjȉHõ¼-ñ/ëøeÙö«øO¹Ÿšž«æÏIá0!„B!¤:ÁÎ0뇯ÅЕž©Úpœ3LSÅÏ€ùºlè­p6°žlx<.æÀ™ÍÃXx‡frŽ˜£9ºÀzÞDu½L¦:Ä·AïÜÕ_W#Gö|m¹À¬»á­®•ôöúÔ=ã*ê¾¹ŽƒkôÑ2>#gÏ0¾˜¡&vkbt¡›\VËy¨ãÕÆ l}§H/ýMy!º¶þ¯/çñõÖ?ó>Ð:}Yh»[ahUÚÜÖ$ƒ¤)=DzH÷B`ßêÅSûٲŠ!ÙIÌѼ Îóæ¯cá‚×#À»ÁÐÕ”¯Ã…€½oDã6³ž¤×9š£†ÝD©l°‡Y£ÚË:”9®ív퓟*Ñ[¬ÐÄ ÕùDÈÆ'æa;ÏÃ,ï­µeߥÎF»—©ï¶yX}9V>·±¶Q)6ÈaôÇê6¬;'úÄXë}Ïb±ÂV¥Ú~YÿA„q»Ž—\?Áü¢¤Ÿ*œ&„B!„TœöWð :ÊgªEjàOûèÆ…ÝóZ«·ˆânùx.úË;Nit&ÒÛ¾ œ¶L÷ÐÉd®ÃúzMœ¸†ë*åÈžo(—:ân©~˜µ×'Ò« uO%®OC,.OåƒÖçohœjþ¦“óPÇ«Ž”õ"½È6·ñËrÑ×Ó>®†¯Œr(í^C¨¬·úGŠp;C…þ¿r›ï`+³séau½^E»¶©k,¿Ãžëùgy¬ƒIè³ÛrmÊ=A³Æ6XO8ŒOVqcye~¤s+Z #,1ÅY,Ó7©UˆIŒ‰0¾a¹¡¯vŠ”åv¡ËìJÅøÿª•}ñJ¡ñ@Öý^·?áUuÌöÏÃt÷Vœ_67ù~:¦Øö¹»ËÃêʱò¹M‰\°‚?+å0úcM6Tög%ú hŒv{€A;Ù>÷qçA Š+†~P ÏÏnÝ›^ášÈ”þ»¼ŠM}“zùèÆ}Êø’] š]á›”oŒ°Lý=¿¬ó]Û/é?ë—öºð c™X[Û¬w€ÊúœÚö‘enP:¿(òóÜ `ƒÏ=a8L!„B©HºÄ¨áTûþŽ{‚æfk…·‘ü°+ÿßæ¡ò3ôpîšîQ¡i¿›”Ñ]7+‡îüœ¼Ò…¨8TXWÕ³x¸©¸ÚÀÅpq…»Dwz7oQëä<ÔñÚý¿H/ñ`Ej0ÃÖÿ‹Ë­WŠ^¢cc;»Wl‹uõ6ăE©ÁÈè³å1®Dì Û}"«wˆ«æ34çI¿`(¿+¢·Xµªô¯*óû˜¶NÑ8Õoä߃OÖÔç £ÍÊ Ç•héã»{Q¡¼oOB­Í¶¥C|-¯Bœ71z¬ûÌ›Çr‹¡›^­¸)W·ý‡¸êOáÙx`иÕ¼j=YÙ·á®+ ’8½\áô&±´»`<Tñ‰yØ.ó°r÷ÎÚ§Zßõ˜'li÷æaås,«ÜÆV†B¶Ìsשdž[çDrÿ5ïczv$¿_Y÷ƒºøcs¾|¿Ì.7B`Òq1¼êcštÒiÿÊzõr0pà8q½¤vU.¾Å×|üªµíúo…€¸.´ùa‰XkŒmÛæ¶©Î¼°¦´½Î&&ÝÚæE~®Ð‘Öç êvÄp˜B!„²ÒVT¡‡ÕY•‡ &a³ÍàG£R5ñ–¨7U·pÒ×!ð§èw;•åPŸ¯’7ÞrUtá×ñ¦±;Ä¢p‹··³%–£Æã[íËí1"«óåmñBx­ån韠ÿëõФ¶u³õ‹r™U=j9 vßZ¶m±Ž~Ã@v»Ãd{·c™xÌZvËÙõs߀ì\zz¸ìØ•?JäÁçëS„G¹ÝÞŽ}²¢·Xµ¼/¸ç=´¦>‚Ìñ£F^5t6t+ñlËmÛöº½¿‚wÙ‰·•|d_÷‘ñ„QVÏÒ‹îy­Z_2Ú{O¤ˆOÌÃv›‡î;_gŸ’}Wnõï6v?¦K—Ûøø°£\¦8Î^§&–õ7mN÷_S´äß“xcÓêâíù›ûÝbÅu:]ô§ëOu¤Ú²±}­'êü®f»ë2ñ¥B|•W³¿Paêwlý'ëI~háG:]˜b›É¶)åŸxr[eûºb~Q]T~®N Ô>WT·#†À„B!„zpÏÑ+³r7z‹U2!“<°&oW[OÔ8×8 5ƒò=J×!ÂÛU § ›ëªäP_ /:èö—¨ôIϲuÝ :Èz÷ì'g¢1®WɃ¼‹á¢èÛurêxÝþÿ­^¤mÝlý¿ \jUÖ>[Ú½j[¬«ß¨lŸ4—3Üóò¼ÎBÌ7Oµ—¯[w¶m*|½ãš ÓÉ¿/Ÿ¬‹ðn½%å±Ñ–¿_­[©l[®–6w oå#@%­²Ê}3ó l^+6ÛŽ2Û>«zo},ú®üêߪvßsV˜cér›.~QJK.Ì‹ü¬º ÷†M?hŠ?µô£ë]Oü ½wÑ9!ÐõÛï!¾È«YíWgÛ~EÿI&Aýn±¾·Ñ…Ö¶VÉÖa“Zíªó9®&„B!„|r¬®“'ëÂ-V“ª¤ø ËæIfÒiý½ô΋'£¢1Ú¹‡c›{XÖ!µí–áºJ9ß¶KS.RFþT3ØYFŸe¿¦ÔmÁùî šË6 Rº“¿­¨“óPÇwìÿ_ô ¤o«©ÚKÆÿsߨ4´“쪓}êF×jé7ê³×¥Œi}ƒÅgýþbм‚·hpºlùmØ ìÆºËmû ­þÜ!sàì`ƒeæ¾bÿ>Y’L›ŽngXö»èüÿì½½oãH¶ÿýå {›Ýp€¤À«¿€J7‘(RêQÀ&°ðbëMv ìKïT° HØçl¢H‰Åàn*ý­k´› .ÐÁ`f0wGÕ/)ɪbñE–ìþ~£Ý4‹6§§ØÈ/.XÔw»[Ê5pž™¤ÓÅ)íŽgòm<ªðr›¹íÛú”“9¶;^ ˆ©!•Œµ¹Øf´mÅU²¶¹AÕk”ÍU>÷„Wãþþ^Üßß‹?ÿõïBæ÷ô!„B!ä8ÈæçrþžäôºŸ·oߊwïÞíI²Pø.¸Â¥¿øn||ûã-…b)¼Ý1O,““—ÞîD§?…m¯c–[%ŸîþåŽëú„ú>YÏŒ ,Ó7›c¨ÊVŒý—žÔGxžòo®ªÏÓôUµë‘‹WÎÞߨg,…·»¦î÷=ùK?+è㘇í!ÓÝ;[^kS’ïãÌyBºîåúÐêyXc9–¶ï1Ù¨ØÌå-òŒä:em(Šr¬Neu9ÑÿdâŠî÷¢~ÐlûQÍùiý(r£R±z)¼ø>º8$Û-ŸäÜ[äøeíßš¶_Íôm+§ ›X[”ÏäÌ6ù€üÛÜ t~øyö_að9«÷UqöóçÏâÇâ»ï¾?ýô“øùçŸS?÷÷÷»åŸ?ŠOŸ>‰~øA¼}ûvwܹ¿¿0ýç¿ð›_ÿj71ü‡?Mð»ßޏ¨B!„# ›ŸÿåoÿØåï?~4–ýðá^¾|‰o¿ýöIëàîîîQë ·ßšöSžýÌ|îMJ!„B!Yz˜ŠÞËB!–g* ¦ÔaÆ<Œ* `B!„BHu‚!œS`)¶_«QKz¦êÂqN1Ë=kåÃS`¹½Fèopj3Þ¢—b‰ÎøÛyýµ”2ê߃³–þº9²åµç‹Ýu…áo®”ôuõ¦³Çö:®àÁ5>#gËG˜œÏ1ˆ¼Å²ƒñ¹nrY-硎Wƒ°õ"½x»ó…XaÔŠ0é>È)–À©r0B^k´Š¯·ýYz€{ò²Ð>6v·ÂÐTzSËÛn®_JISzŽe‘ì%„À «Lí§f'Ša[²“X¢s½)–1ÞÄÂoÆ€QKs~£´0Z ˆÐßùF4é¢=Hz]¢3nÛM”Êö˜·«½ŒQ&¦”î3 â©Úq¾Ç¼¦:ŸÙøÄÆ•ˆ=ô½Ø'²hk„ËÎççst–I¿`8_Dï±q«ô¯*ƒ/0sOÐ>ÕïäßS,ÛC̶ǻ•A+ÎÒÇ÷÷¢Byßž†>Üݶ¥#üR^·ì`ü&Øö™×ç­F­ôJ¹ÝyMÛ„Ko†E׆í[\ʫ֓†ë1nû"‰Óë N®{@» ÆÓAŸ˜‡í5-uï¬}ªõ]ù¸«³{\{ÍÃÊçXV¹­ %s™üuÍmi/¹O™œHî¿–f§ç@òûÕ‘u?¨‹?6ååûev¹Ó^ £K³¤“˜y—Ö«—ƒ¡ljë%ùo¹øR_óñ«Ñ¶ŸóC_õ0â8׿‡%b­1¶l›Û¦:óšÒö:›˜tk›_ù¹BGZŸ+¨Ûà `B!„BH ¤­¨B›ÓC<Å[¢^WÝÂI_‡`1ƒ×ïU–C]^%o¼åªècÑěƭV…[¼E¸™¯±·Þj_ÑîNY•—·¿ á»ëý Ò?Aÿ×ë% ImëÖÃ4`¾älc¬œ¨´8/³¢D-‡ÁîÝ÷µú7»Ýa²½Û±L ²oûÈxb'«géňÖÙn£/=zO¤ˆOÌÃö›‡î+¯³Oɾ+wMvoX'{ͱt¹ÍŸý¹¢ -í#÷1ù›6'Šû¯ö \ù÷$ÞØôƒºøc[~w¿Ì¡¸N¯o¶ýTGª-Û×v¢nÑ×lw]&¾Tˆ¯òjÖâiLm,ë‡}tk„Õ.?´Èctº0Å6“mS2Ê?ñä¶ÊöMÅü¢º¨ü\¨}®¨nG '€ !„B! >œa ]¹Xæî=6Ö5†ÎNBÍ @©keëáýÆ…òÓ¤¹ëªäP•/=ô½5*}Ò³l]wƒÒ[í®o?9MpµIä[­Š¾]W 硎7íÿÿ¶Õ‹´­[2`³³ƒF΂óR+J´ö©i÷ªmQUâ1WÀ´^£³žã昗çõ¦b¹xjüü¦ugÛ¦’ÁçÐ?® 2üMŲÇ"¼ÝnIyìDtåïWëV*Ûž×H›»€¿Y @€ÅFZe•ûfæØ¼Ql¶eV?«zo},ú.sÜÕÙ]#×cæa…9–.·éã?JÉP>—1_7¯ÓGÍ}ê`ÓšâO#ýèvדEÞr»¨ÌTôŠí‰!¾È«YíWgÛX‘jÚj2 ºè뻎.´¶­°J¶ ›4jWÏq0!„B!ä‹cû€t•0n§õ ‡œÍû‹Awò Þ¢Áé²ç×a7°ë.·`샶úk°Z§,3÷õcٞɴéèf޵×G¯×‡wì/7$H«Š¢›yzâ@~9Àt^³JÅÙ`ƒÅpMÒŸfûNÛ¦œØã©¦t…ñ‰yØ>ò0í½³å•ö1éN‘?¨â®Æîj¹3«cU²Qö[ê¶¹Œáº¦¶´¯Ü§nÞ_”ãkÕ ‰?eûÑÖPŸß»ð±9=ÅFž4·¨ïv·”kà<3I§‹/R ÚÏä7ÚxTáå6sÛWø¡±Ž''Ïk! ¦†HT2Öæb›Ñ¶WÉÚæU¯Q6[TùÜ^Œûû{q/þü׿ ™ßÿÑ„B!„ã ›ŸËù{’Óë~Þ¾}+Þ½{·'ÉBá»à ?”þâ»ññí·4_ owÌKŲuÈ^€pýÐx-õ½Õu}7¾^‚úº:9²åµò.=¥žrš.£·Ð®¥=„\ÆõEX¦|è  û‡¾pSº×ÙäPÇõ~¥õô¾cÖ‹Â’¸i¥§õ¨;/–#}Ì ‡Îîôbn‹f½¹JìÐʗѱª]§þöÐ1¥ËetRØ~*ëOö!…rö)8¿®þRm¦D¢ÓŸÂ¿¶×1Ë­’¯\L)kô±¬ÄÞ\߬?G hÓ©GÆþKOê# ÿß67(_„~žýW|ÎÆÇ*Ä}Uœýüù³øðáƒøî»ïÄO?ý$~þùçÔÏýýýî_ùçãÇâÓ§Oâ‡~oß¾ÝwîïïLÿù/üæ×¿ÚM ÿáOüî·#.j „B!äÈæçùÛ?vùûÇe?|ø€—/_âÛo¿}Ò:¸»»{Ô:Ãí÷£¦½Ã”'ÏÓ¯¨ÊGù¾œvyzÃíö Úƒò1#ä€DtÏëÝç:"L¶0:¦Ý*ö á\4ð©BŽßçîîîðêÕ+üøãxñâ¾þúk|õUzgÇq „€ã8¹ãŽãàóçÏøþûïñÍ7ßàЄB!„¢zò+ñ­©}”'„B,#ÎPúÝ)°äŒaÆ<ŒýÌ|îMJ!„B!Yz˜ŠÞËB!–g* ¦ÔaÆ<ŒÂä|ŽAüà-–ŒÏu“Ëj9u¼Ú„­ïéÅÛ/Ä £V„I÷AN±N•ƒúóZ£U|½íÏÒÜ“—…ö±±{¶X×o*“ ’¦ôË"ÙK%V/”îŸì;Q Û’>ÄÛèM±ìŒñ&.x3ükŒZšó¥…ÑJ@„þÎ7¢Iíù@ÒëqÛn¢T¶G8À¼]íeŒ&bжO(ˆ¤jÇùtðšê|"dãó°½ça–÷ÖÚDzïRç í»çï+k.ÇÊç6Ö6*•˘m§:¿j®¶¯œè {`mö¾Ö«Õ¶j,å?ÆþLÕV#LºM¼äúæ%íøTá0!„B!¤úãôb?œ¢§|¦Z¥&ª×Ò›Joû¶qânð3ýøxëlwó~÷À¯º‡©Ûëuðºe¸®RŽlyÃy©ã!n×ê‡Ù¼ì™äÕ‚ú&]\„X]œÈ­ËïhŸhþ¦“óPÇ«Ž”õ"½È6½>¼õ-ªçE\Í<\Ž^åPÚ½*†6PÝoš&ÂÍ9{õ¦ö«Ú?•Bnó=Lceö.|l®¶«h·6mÏßcOíü³o»Rô=ƒõì^±-Öõ›2ăE©ÁÈèóõ1®Dì¡ïÅ>‘í@[#\vÆ8?Ÿ£³LúÃù{ë_ßcãVé_UÍf™{‚ö1¨~'ÿŲ‚>gØïV=¬dKßß‹ å}{úpwÛ–ŽðKyܲƒñ›`Û'\?œ·µÒ+åvç5mÿ.½A6^¶oq)¯ZOVä­Ç¸í ˆ$N¯78¹NìæWî=:ªøÄ€.zvç%òàóÕ Â£ÜnïbYÑ{l\ç ­³ÜÙAæøQ#¯:º•x¶çÕm{ý‡Þ`±Ñ‹·•|dßö‘ñ„QVÏÒ‹­³ÜF_2zôžHŸ˜‡í73Ü;W^gŸ’}Wnõ¯îºuüá9–.·YàÓ^Ÿ+*øU®Ö ¿is¢¸ÿjŸÀ•OâM?¨‹?¶åw÷»ÁŠëôúðfÛOu¤Ú²±}m'ê}Ív×eâK…ø*¯f-~‘Æä?Y?´h“­V»üÐ"ÑéÂÛL¶MÉ(ÿÄ“Û*Û7ó‹ê¢òsub ö¹¢º1œ&„B!„4Cë íÊÅ}`è\á$Ô Dï±)3铪C„÷'m›ëªäP•/=ô½5*}Ò³l]wƒÒ[í®o?9MpµIä[­Š¾]W 硎7íÿÿ¶Õ‹´­[2`³³ƒF΂óR«z´ö©i÷ªm±®ßÔ¶ÏktÖsÜóò¼ÞB,wOŸß´îlÛT2øúÇ5A¦“ÿ ±¬áívKÊc'š +¿Z·RÙö¼FÚÜüÍ,6Ò*«Ü73ŸÀöàb³í(ó°úyXÕ{kìcÑwåWÿÚØ]sü1ó°ÂK—Ûôñ¥d°Ìejø]®vÝ€M?hŠ?ô£Û]OAz+ï¢2S!Ð_(¶'~„ø"¯fµ_œõŸ"?ÔµÉxtÑ/Öw]hm[a•l6iÔ®:Ÿã `B!„BÈÇöé*y²~ì-V£ º¹‡ãä¡-iŽuçµabËP‡Ô¶[†ë*å@~Û.ÍyÑd( NXÌ4ƒÚTL5V°Ø”o½Fg=Æn¡BJwò·urêøžýÿ—½CéÛjªö²ýÞg’U ™óâsS«zLöy”¶XÁoöÜ_]øÀ¸Ög0"PLp6ï/ÝÉ+x‹§Ëž_‡ÝÀn¬»Ü€±Úê¯5Âj œl°ÌÜW,–Ù’i;ÑÍk¯^¯ïØ_nHVE7óôÄür€é¼f•гÁ‹á›¤?ÍöQ¶M9±ÇSMé ãó°}äaÚ{gË+ícÒ"P}ûWgwÃý'«cU²Qö[êö“¿•üf_¹Zݼ¿(WÓªWÊö£­3  >¿wácszŠüâ‚E}·»¥\ç™I:]|‘bÐîx&¿ÑÆ£ /·™Û¾Â}t<9y\ 15D¢’±6ÛŒ¶­¸JÖ67¨z²Ù¢Êçžð `Üßß‹ûû{ñç¿þ]Èüþ¾ „B!„Ùü\Îß“œ^÷óöí[ñîÝ»=I ß… Wø¡ôßo¼eµã Ù:dÏ \?B,…·;扥(’I]‡Ðwãë%¨¯«“#[^+ïÒ3ÖÛ,»¦®¡/\K{¹Œë‹°LùÐ.ö}á¦t¯³É¡ŽëýJëé%|Ǭ… $pÓJOëQw^,Gú˜AÝ+èÅÜKúM ´òet¬jש¿=t@ér¶ŸÊú“}H¡œ} ί«¿T›)чèô§ð¯íuÌr«äk&¦èú},«C#±7×7+äÏÄ(ÚôAꑱÿÒ“úÏSþÍõCõyš¾ªv=rñJãÏÙûûŒ¥ðv×Ôý¾'©ãg}ó°=äaº{gËkícÊCò}œ9OÈÞ_u¿æó°Ær,mßc²Q±•¶]A}šÉÕBá»Y(Êêr¢ÿÉÄÝïEý )þØö£šóÓ>®ÈJÅê¥ðâûèâl³T|’soM<’ã—µküGë‡FýèÛVN6±¶(Ÿ+È™mòùÿ¶¹Aéü",ðóì¿Âàs6>V!î«âìçϟŇÄwß}'~úé'ñóÏ?§~îïïwÿÊ??~Ÿ>}?üðƒxûöíî¸s/`úÏá7¿þÕnbøšàw¿qQ!„B!G@6?ÿËßþ±Ëß?~üh,ûáü|ùß~ûí“ÖÁÝÝÝ£Ö!n¿5í¦Ê÷å´ËƒÔ#n·l0øÐ”y!$š {\ï>×a²=Pr«ê§ á\4ð©BŽßçîîîðêÕ+üøãxñâ¾þúk|õUzgÇq „€ã8¹ãŽãàóçÏøþûïñÍ7ßàЄB!„¢zò+ñ­©}”'„B,#ÎPúÝ)°äŒaÆ<ŒýÌt¿@È IDAT|îMJ!„B!Yz˜ŠÞËB!–g* ¦ÔaÆ<Œt—Áõ ±ú_ÂwȉHõ¼-ñëøeÙömû©*v|j±Ö(¯e~ñœôQNB!„Bª áœK±}øZZÒ3UŽsŠYîYKq<¼Eg¹½†KtÆçŵš2Áðˆ‡þ§Ò`šòÞ†:Ä·Áଥ¿nìIyíyÁbw]!Bø›+eÝU²›êjSþá:®àÁ5>#gËG˜œÏ1ˆ¼Å²ƒñ¹nrY-硎Wƒ°õ"½x»ó…XaÔŠ0é>È)–À©r0B^k´Š¯·ýYz€{ò²¤5úCPúU}k ’fêMº){ !°ÄÂjÚÔ~jv¢¶%;‰%:·!ЛbÙãM,\ðf ø×µ4ç7J £•€ý]ŸMºhÏ’^—èŒÛv¥²=Âæíj“þ¥bJÙ>³ ªç{lÐÁkªó‰P2.0«Ÿ‡YÞ[k˾K'´µ×Õ¿¯<¬¹+ŸÓZÛ¨T.ƒ†tw¸œè {`mö¾Ö«Õ¶j,Õöý™ªŽ0é6ü2å—’_”´ãS…À„B!„êÓ‹ üpŠžò™j•š@0ïM¥7wÛ8±y«]Y&Àbæ¡o ànÞïøU÷6Õa{½^· ×5Êž”7œ—:âv­~˜ÍËnI^-X`hÒÅÕIˆÕʼn|кüŽö‰æo:9u¼êAYß)Ò‹ló9ÑëÃ[ß"¬z^4ÁÕÌÃåèUI9j`hy½ÙÖ·i"ÜÌ‘³WoZ`?[ÿ¯…Üæ{˜ÆÊì]øØ\mWÑnmÚ2ž¿ÇžÛùgy¬‡ièó›rmªõÛ`¹ãú>Áª-©•AúÎQ¬h 0l±Æ §±LÿN­ŒKbL„ÉùëõíxµS¤e|ɮͮðMÎo±Ný=¿¬ó]Û/ýLÜÂhÕÇ¢0ö—‰µ±Íz¨¬Ï©mYæ¥ó‹"?Ï­6øÜ†À„B!„ŠXÌÖ·f¾¿³{öºÁœµ(ÓzŽq ¥ Á3¯Ÿ|Ò]7+‡®|N^i€BTœ„(¬«êY¼‹s\W\íÖÂhu‰ÛDwí9×oQëä<ÔñÆý¿H/ñ`Ej0cƒ÷‘<Ø#ÿ_¦ø¼íJÑ ô*ÉñXí×¶¾‰‹Rƒ‘Ñ æëc\‰ØCß‹m‘í@[#\vÆ8?Ÿ£³LúÃùû"z[¥U5›fî ÚÇ úü{Še{ˆ¹Ãöx·2èaYúøþ^T(ïÛÓЇ»Û¶t„_Ê+ã–ŒßÛ>óúá¼Õ¨•^A·;¯iûpéͰ²ñ:À°}‹KyÕz²Âp=Æm_@$qz½ÁÉubhwÁx:Ôˆ ÌÃjä¶÷ÎÚ§Zßõ'ØÙ=þcäaås,«œÖVëg‘&tw€œHî¿–f§ç@òûÕ‘u?¨‹?6ååûeVB i¯…Ñ¥‡YÒI ̼KëÕËÁÐãÄõ’ÚU¹øR_óñ«Ñ¶ŸóC¿õ0â8׿‡%b­1¶l›Û¦:óšÒö:›˜tk›_ù¹BGZŸ+¨Ûà `B!„BH ¤­¨B›ÓºAñö¦×e¶cªRÆ®Áb¯ß«,‡º¼JÞxËUÑÇ¢‰7[#¬ ·x‹p3_c=n?¼Õ¾£Ý ²*/o«Âw×û¤‚þ¯×K<@“ÚÖ­‡i8À|7ÈÙÆX9Qiq^fUO99šÐ‡M[´­o ²Û&Û»ËÄcV#ÓXÎþ"÷ ÈÞ…`€‹žÝùG‰<ø|u‚ð(·Ûk:–íè=6®¿ó…ÖÙîl sü¨‘W ÎÝJ<Ûóê¶½þÃ@o°ØÀ¿èÅÛJ> ²occ‡þqMéä¯Ë™ðv»%å±MЕ¿_­[©l{^#mîþfi•Uî›™O`{ðF)˜‡5—gØÞ[c‹¾K»"Us]ãù™‡æXºœ¶ÿ(%C•g‘šº;DNdƒM?hŠ?ô£Û]OAz+ï¢2S!Ð_(¶'~„ø"¯fµ_œmûE~¨é’IÐE¿Xßut¡µm…U²MؤQ»ê|Ž+€ !„B!_Û¤«äɺΫÑݲ.Ê2ÉC["ÒëÎkãjDmRÛn®«“=»m—æ¼h2”',fšÁNíªN¦+XlÊ·^£³c·¨4¥;ùÛŠ:9u|ÏþÿKƒ^‚¡ôm5U{Ù~ï ƒ3ÉŽª…Ìyñ¹©•&­:r&Ý)òÕŠT“Ý«…/«cU²Qö[ê%r™Ft×PNT7ï/ÊñµêÕÄŸ²ýhë ¨Ïï]øØœžb#O¦[Ôw»[Ê5pž™¤ÓÅ)íŽgòm<ªðr›¹í+üÐØGÇ““çÀµSC$*ks±ÍhÛŠ«dmsƒª×(›-ª|î ¯Æýý½¸¿¿þëß…Ìïÿè B!„BÈqÍÏåü=Ééu?oß¾ïÞ½Û“d¡ð]p…JñÝøøöÇ[êg®|1!ruЗY owÌKQ$“º¡ïfdP_W'G¶¼VÞ¥§ÔSNÓJÙ5u }áZÚCÈe\_„eʇ¾p¡°è 7¥{Mu\ïWZO/á;f½(l ù€›VzZºób9²m¦´ôbn‹½iëaV¾LÝTí:õ·‡Ž)].i ¶í§²þdÊ÷£©vis~]ý¥ÚL‰>D§¿œüÉuÌr«ä+SJ÷™†XV‡Fbo®oVÈŸ‰#Yÿ=X=2ö_zRáyÊ¿¹~¨>OáKÔ#¯4þœ½¿±ÏX owMÝï{ò—:~V2.0k ÓÝ;[^kS’ïãÌyBþºùÝ|ÖXŽ¥í{L6*ö#»¸†îlr"e.Õ‰Bºœè2qE÷{Q?hŠ?¶ý¨æü´>¹Q©X½^|]’mœŠO²}4ñHŽ_Öþ­iûZ?4êGß¶r𰉵Eù\AÎlåÃÒÿmsƒÒùEXàçÙ…Áçl|¬BÜWÅÙÏŸ?‹>ˆï¾ûNüôÓOâçŸNýÜßßïþ•>~ü(>}ú$~øáñöíÛÝqçþþ^ÀôŸÿÂo~ý«ÝÄðþ4Áï~;â¢B!„BŽ€l~þ—¿ýc—¿üøÑXöÇxùò%¾ýöÛ'­ƒ»»»G­C0Ü~?jÚ;Lyò<ýŠz¡|”ïËi—©G0ÜnÿØ`ð¡=(ó0BH4A÷¸Þ}¦%Âd{£cÚ­bñÁÎÕ‰ý'jyÂ>www‡W¯^áÇÄ‹/ðõ×_㫯қ8;Ž!ÇÉwŸ?Æ÷ßo¾ù·€&„B!„Õ“_‰oMí£’¿ï;þ‹¼KNþ’Gôégæs/hRB!„BÉÒÃTôXžB±Œ8S1¥ó0æaäYÒa%Žs§Ö}ÇŸÞT€-™<¶O?'Ÿã0!„B!_www¬!ô«g£ÊGùØŽXú=å#„BˆNB!„ò…ÀoB¿z.z¡|”íˆõ ßS>B!ä9=5 ¿L!„B!„B!„B!ÏNB!„B!„B!„BÈ3À„B!„b"š Û :TyB!ŒAϽžÁŽãÀq Ú…0#„ýÞäãŒÓP ‰&Ý8vu1iZ1O-.ƒßì]g&Ýæüç1à0!„B!¤±­nîÉ7ÀPùÀ—=`˜<Û>”Ëñ©{Ë×"(¼·¹ÑÍœ¡¥»®VŽLy+y‹ênÒ›ª®°´ 8…ç™ò©:™>trêxeg·ó­^2¶ÞýÍVNõyƒO?*-G•oWn£ÍÉ’«Ÿd¯”ž²vUVéÛO“2w'ÑVÎ\[‹ëQÐç46¸å¤û„¬Ÿ¥ì¬Ó_ÎuHmcJ…>ÓËH-ÿ¶‰-§ø¡€ÓÕv€d®|\`Ö@f{oƒ},ú.mž -_¶¯´Éo,rÅZ9–.§µ´QalµÍ56­Ú^âr)ylúÕÇštKê•ñ]»çŠàú…€˜öjæÏ[[µF+ÂwËæ{EýÅ#ÇEÙ_Žq¢ÿHr‰hrŽqg ñ„NB!„Bª áœK±}ÐZZÒRŽsŠYîÁIq§µ¶‘ÁJåÀ:›Öɉ\ù9ŽöÝ$׃'ûn4ÁÕÆ…{ôá©Lþl›¯ÄÃЇëúŽc‹6qûñ¶/^4šKD˜t«ä¢ÞŒÿâi½¥Æ `B!„BHõG²Å~¨~€mV© ãñÞTzK7ÄíÚâá-U¦wû`¶˜yèÇÇ[g¸›÷»‡sÕ½MuØ^¯ƒ×-Ãu•rdËγ¬{^vƒLòjÁ{D“.®NB¬.NäƒÖåw´O4ÓÉy¨ã5‰JùN‘^d›?ȉ^ÞúaÕó¢ ®f.G¯JÊQ+ß¶k£û#ÂÍ9{õ¦ö³õÿZÈm¾‡i¬´Þ…ÍÕvíÖ¦-ãù{ìé·^×òÀ[ÓÐæ7%?_£Ó`,w\ï{VmùЭÊ®´>¦•;òjðî“¡“Ùž1À°=Æ3œ&²—Z%UG—Ù#âÿ«V¥äOÊÝâM×ÙßöŸÇó°úy˜îÞŠòeóp“ï'1E]þñûʦr¬|N["ç0øQ©XgÓZ9Ñ ..;¿ âBâ3&çc¬×c´ÝËËôêÎ]&M„©ú]e¿—¨v¸½ßÿmåë€ùM¼æúÍÁ eÇØ§¦·ìUžoŠuÖ}¶M»Ðå϶ùº}ûEݸ˜­c4A·;İ›\ëaG³n‹üÅt_KÛ•ÕÍn7šú«Ñv‡Ær‰F«>eó¥`™;ÀYËÔöŽNB!„B*`1[cÜvúÖŽô 'ÊfÝ`él÷|÷ÝùM‚f^?/‹îºY9tåsòÖ¨»u]Uã]œãºâj·F«KÜ&ºkÏ1¸¶x[\'硎7îÿEz‰&RÛùmð~7hÐÆ‰+ÿ_¦ø¼íJÑ ô*ÉѺ¶X¹V ÀJ F7˜¯q…a}/¶E¶mpÙãü|ŽÎ2é çï‹è=6nC¶ ˜¹'hƒêwò7Ëös‡íñnÙÃJ±ôñý½¨ÐLÛ¼í'«§<Ì®&ˆâ— Üd¥øê5Þ(ëÙ´ýG¸ôfXÙx`ؾť¼j=YÙ·“?në N®9¡ÝãéP#.0«ÏlïµOµ¾ë!O°,oÝWêü§Š_•ϱ¬rZ[éüÙ:.°i•öÒ›b‰ÓŒÎuýU £ë‡~uuÕÝ]7º™£ã!îûBÜâmm|Qô{Ûlî̗¶G—èŒß ˆ&¸Úø¸8“»[i¥íRšÈVÆÝùºXW¢Ï¶j&ÛÚæëuqiéavz\Ûè6ã/ÿõŸyGYÛ•Ìv†'–]e»Fr‰¦B@\ç–9uô~wpû‚ÁïŽ NB!„Bj mëúØœÖY©o;*úX”z‹6ÞõºêVUú:‹¼~¯²êò*y«Ö]§ÊV…Û7F¸™¯±·ãŽøÍïd›-‹í¶­ á»ëJùÏÑÿõz‰RÛÿõ0 ˜ï9Û+'*-Îˬ-'Gúеźm´$Ù- “-ãŽeâ1kÙi,g‘ûdïÂ0€¼Ûœéü£Dž¿:Ax4Û î+–í‰è=6®¿ó…ÖÙîl sü¨‘åÔíJ «ç>Ú^ßÃ,ž›í¶ŽÑ{l¤ «mlŒ'd²z–^Œh à6ý2ËãöD5âó°jy˜áÞ¹ò:û”ì»r;J”íûtçëä«ãWer,]N»À§Ær™29°ÉŸª·—ÝÎ r©ë¯2í»ïm'+ÃÛú'Ø,‚mùÎk´Lýn¶ß[Ñnßâ271¿ Ö£s™©›¼Ròt$«œu1Au¾.Ö•é³-Û…Ú¶¶ùzÉö_7.êâRû®ü{‘-êÜ·ÌõºÙ~cyÑ/ø A“¹Dk„Õ.§.‘ûY·½Ãà `B!„BH3´Î0hâMhôÐ÷Ö°û¬e€¡s…“Pó½Ç¦Ì¤OªÞo\œ´m®«’CU¾@ÞRu¯Y×Ýà”ô&½ëÛOÎ$oø÷’kY~»Y'硎7íÿÿ¶Õ‹´½`2ø°³ƒF΂óV/”±Ov»Ìªè|»á6ZÙ>¯ÑYÏqsÌËózS±„g;ÙUöü¦ugk»dB>ôk‚L'c±ì‘o±fR±Í]Àß, Àb#­ÆË}Gü lÞ(eâó°æâ™í½5ö±è»Ry‚mùÒ}¥Îjä…9–.§íã?JÙ¨È?ÊæÀY›Öl/­®s¼¹QÄØ‚þª}܆›´[glÂ[tú%{7×ÇR³3Cï‡ i›äXWݶôMÝ¢]*tç›b]Í>Û:¶Íו²¶xôëo_é/qKådÂzÑ/ëŸH®À `B!„BHE¶oz_%Og5¶X&Cé!/Àb¦ðË=°eQ¶2%[:F7s¬;¯ š†:¤¶g3\W)òÛ»iΫTwØÈTãÁÙ¦|ë5:ë1v Rº“¿/¦“óPÇ÷ìÿ¿4è%>lݧl/Ûop!Ù^,÷JÍyñ¹©U=­:rTñUh¢6g¯ ·Óú †CŠ ÎG“+š +¢ þ–=¿»ÁÖXw©­í¶Ûbp†–­þZ#¬–À©s¨Õµæ¾¢‰X¶W2m:º™cíõÑëõáûË MÔs?7ÃÙ`ƒÅpMÒŸfûNÛ¦¼W9*qyXí¾ýñ–†ãKOy®L¶Ùë® !–ÂÛóÄRɤ®Cè»ñõÔ×ÕÉ‘-¯•×¢îzÙ5u }áZÚCÈe\_„eʇ¾p¡°è 7¥{Mu\ïWZO/á;f½(l ù€›VzZºób9ÒÇ*ÈQA/Em lµE+_¦nªvúÛCÇ”.—´ÛöSY²åûÑT»´9¿®þR¶)чèô—“?¹ŽYn•|¥bJÙ>ÓËêÐHìÍõÍ ù3q$ë¿­G"Ö²õÊþ­fa]\¼Òø³QƬΗÂÛ]S÷ûžü¥Ž˜‡=~¦»w¶¼Ö>¦<$ßÇåòmßW²¯ÔÉgáWåXº~Óh£b?*klZ9'RÄQ±ôÒqVÓ-½ì}2rõ»¦~;–ÛýïÿÎË—97‘€p=¯0&(Ï7Å:›>ÛSYçÏÆ<<ë£ ßÌê¸n\´-o£[Ù_d›–¼o¡­uºÑ²ž|Fr‰Pøn•Ü"Ó†´m¯ZÄÙÏŸ?‹>ˆï¾ûNüôÓOâçŸNýÜßßïþ•>~ü(>}ú$~øáñöíÛÝqçþþ^ÀôŸÿÂo~ý«ÝÄðþ4Áï~;â¢B!„BŽ€l~þ—¿ýc—¿üøÑXöÇxùò%¾ýöÛ'­ƒ»»»G­C0Ü~ƒhÚ;Lyò<ýŠz¡|”ïËi—©G0ÜneØ`ð¡=(ó0BÈQQ%ÖEtÏëÕ¨á^"L¶¶üî7yªD“.Ú·—æXÙ8ûêÕ+üøãxñâ¾þúk|õUzgÇq „€ã8¹ãŽãàóçÏøþûïñÍ7ßàЄB!„¢UÀb–ù†Õ£–'„B,#ÎÐÙ ü9§À’3^„yó0Bëò¬Çh;œa3{÷F“.§ñšöùh®áoNóŸÇàÍF!„B!Yz˜ŠÞËB!–g* ¦ÔaÆ<ŒÆ:-­V¢Ùo[£7Ñý‚ha´xJ&ç0!„B!_www¬!ô«g£ÊGùØŽXú=å#„BˆNB!„ò…ÀoB¿z.z¡|”íˆõ ßS>B!ä9=5 ¿L!„B!„B!„B!ÏNB!„B!„B!„BÈ3À„B!„b"š Û :TyB!ŒAϽžÁŽãÀq Ú…0#„ýÞäãŒÓP ‰&Ý8vu1iZ1O-.ƒß<5'€ !„B!=husO¾†Ê>Ýq :plå‡øÔ½ wLJlîm¨Ct3gh鮫•#SÞJÞ¢‰¬ìEumZï™ò©:™>trêxeg·ó­^2¶ÞýÍVNõyƒO?2ÙÇØn+ ì¨|» m˜ü±)Yru—êÒSVå`ÕäÕé)¦Ûc4A7©G¡^k „I7¾¾$CÖÏRvÖé/gº¤ecJ‰>³É6A Ú’ÂN§ø¡€ÓÕv€dNŸ˜‡í7³½·Á>}—6OЖ·ÑµE^a'6‘cérZK•ÍYJçX%s¸Ì}RòØô«5é–è!ã»ÖÏsë#bÚ«?çmØ­ Dß-›ïõe9Ɖþ£É%âù ½Á `B!„BHu‚!œS`)¶Z«QKzNëÂqN1Ë=¿©'ƒWð`ó ðåö¾B,ÑŸc;or ÄÇCƒSi@ByoCâÛ`pÖÒ_W#G¶¼ö¼`±»®!üÍ•r0K%»©®hXïùò&çs â‡l±ì`|®›\VËy¨ãÕÆl}§H/Þî|!Vµ"LºrlQ" IDATŠ%pªTП·|»Ÿ¥¸'/õrø|it¾mh&¬M2¸—Òs|O©ÞB,±°z1`ò¶%;‰%:·!ЛbÙãM2>ÿf ø×µ4ç7J £•€ý]ŸMºhÏ’^—èŒÛv¥²=Âæíj/c”)¥ú̦Û‘Üi„Õj£F£÷Ø ƒ×TûÉÆ'æa{ÏÃ,ï­µeߥÎÚÚòêzE%ó û<±¹+ŸÓZÛ¨TΕαtrhm“Š£:ósí»I®OöÝh‚«k÷$.fúññÖÙîæýîá\uoS¶×ëàuËp]¥Ùò†óRÇCܮծyÙ 2É««è½DùíÍßtrêxA¢R¾S¤Ùær¢×‡·¾EXõ¼h‚«™‡ËÑ+­Vr—ÁÊ·Óm£ÐŸ'Â͹z÷¦vzد¼r›ïa+­wácsµ]E»µiËxþ{zlçŸå·¦¡ÌoJ~¾F§Á6XOh¼MìÍ5«‡²+­ieм¼;Ádèd¶g 0l±Æ §‰ì¥VIÕÑevLjøÿªÕ_)ù“r·xÓuö·ýç±Ã<¬~¦»·¢|Ù<ÜäûILQ—·ÌŸÊæ†|¨©+ŸÓ–Èëä,…º°”#ïNpqÙÁøMPŸ‰09c½£í8è^^¦Wwîú0i"LÕï*û½¤JÃíýþo+_Ìã±àÍÁ eÇØ§¦·ìUžoŠuÖ}¶M»Ðå϶ùº}ûEݸ˜­c4A·;İ›\ëaG³n‹üÅt_KÛ•ÕÍn7šú«Ñv‡Ær‰F«>ò¥íŽèwÖ;È!œ£Ü~šÀ„B!„ŠXÌÖ·ë?ìD“.Îq]}ÕUtƒ98Ëo½FG÷pnS‡`™×Ï>é®›•CW>'¯ô+*NBÖµi½·0Z]â6Ñ]{ŽÁµÅÛâ:9u¼qÿ/ÒK<0‘ÚÎoƒ÷»1„6N\ùÿ2ÅçmWŠ^ §•£¹v[ª-êŽïƒx+5@Ý`¾>Ɔ=ô½Ø'²†hpÙãü|ŽÎ2é çï‹è=6n•þUÕl˜¹'hƒêwòï¹M4Øç ÛãÝ µ‡déãûbEù¶yÛOVOy˜]MÅ/¸ÉJñÕk¼QÖ³iûpéͰ²ñ:À°}‹KyÕz²²o'Üל\'rB»ºñé ŠOÌÃö™‡•»wÖ>Õú®‡<Á²ü®^eóŠŠybÅË*§µµQaÎR3ÇÒÈñ`Uº0ŧ™ëéú«F×ýêꪻ»_t3GÇCÜ÷…¸Å ÚÚø¢è÷¶Ø.†]!™/m.Ñ¿AMpµñqq&w·ÒJÛ¥4‘­Œ ºóu±®DŸmÕ.L~k›¯?b\ÔÅ¥¥‡Ùé9pm£ÛŒ¿ü×äemW2Û:pœXv•íÉ%z˜ q œ[çÔÛ—Ig-ôúÖ»— 3«ÃìSœ&„B!„Ô@ÚŽ.ô±9­²R'ÂÍ|õ¸?hÇo [¿‘o‰z]u«*}‚Å ^ßö ./‡º¼JÞxËUÑÇ¢‰UD­V…Û7ônU^ÞÎ.„ï®+=ä?Gÿ×ë%lHm/ØÃ4`¾,lc¬œ¨´8/³rD/Gí¶L[¬ÛFK’Ý:Ù2îX&³–Ærö¹oÿõ.|\ôìÎ?Jä ù«„G³­`Ó±lÏDï±qý/´Îpg ™ãG,§n5 ®žûh{}³x8Xlà_ôâ-$&Ú¶±1ž¨ÉêYz1¢u6€ÛèKFÞ)âSݾŸy˜ÝûuŠ{çÊëìS²ïÊ­0-W¾l^Q/O,sM]N»À§Ær™zº(îãu«‘Ê 6Wòwˆ ýU¦}÷½ídexÛAÿâ›E°-ßy–©ßÍö{ë1Úí[\æ&æâÔÚct.3º“WbžÎ€dõ³.&¨Îן2}¶¥îÕ¶µÍ×K¶ÿºqQ—Ú'påß‹lQç¾e®oÔÍví¢_ð‚&s‰Ö«]N]ÔJ/†ôúðÖñ6ÐÑ æ8Þ<ŒÀ„B!„fhaPéMèdàKz£Ûõ-'  +œ„š‡Äè=6e&}Ruˆð~ãâ¤ms]•ªòò¢‡¾·F¥Oz–­k-½Çƒ%›äa·…ѪèÛurêxÓþÿo[½HÛ &ƒ;;hä,8/µrÄÖ>•Û­m[,òùÇêŸ^£³>òïuõ¦b Ïv²«ìùMëζM%ò¡\d:ùkDx‹53Šmîþfiµ_î;âO`{ðFÉn£ÌNs^4J¸3Í`§Fv½L5œmÊ·^£³c·à!¥;ùûb:9u|ÏþÿKƒ^‚áÃÖ}Êö²ýg’Uo£g΋ÏM­ÑÚgíVÛ4ÇÔ_]øÀ¸Ög0"PLp6ï/ÝɃ¨EƒÓeϯÃn°5Ö]j{Ûí¶€œ¡e«¿Ö«%pêju­¹¯8X,³%Ó¦£›9Ö^=yÊs@WÏýÜ gƒ Ã6Iší;m›ò^å| ãó°}äaÚ{gË+ícÒ"È­0Õ•×Ô«l^aʇö‘cU²Qö[ê–9Ké« ]X¬þ}¥—Àx¼ÏEý•ôÒUël\]Å}] g`±ÀÖßJö»íÑ Kœæ·Šo°RM¢I»%D7óâ—–Tçëb]Å>¥óç‚<¼ìsÔ¡â¢ÉÙ—ôªÜ·ÈÖºÙîts œ[~¿¹’Îâoöž×B@îÙ¼ÝeÀ“¶yËxèÖ¨áƒûæþþ^Üßß‹?ÿõïBæ÷ô!„B!ä8ÈæçrþžäôºŸ·oߊwïÞíI²Pø.¸Â¥¿øn||ûã-ÍÇ¥‚Âu}fgë½áú¡b)¼Ý1O,E‘Lê:„¾_/A}]ÙòZy—žYFÙ5u }áZÚC©wÛò¡/\(ìúÂMé^g“C×û•ÖÓKøŽY/ H>কžÖ£î¼XŽô1ƒ†v[V/Em@ÝF-ü±­|«ÚuêoSº\¦*+¯½þd[(ì‘ë ί«¿T›)чèô§èÏ·×1Ë­’¯lL)ÕgZ´‰*4{s}³BþL"†¬‰üY_ÈÖ+û·‚¾»±zäâ•ÆŸ2fu¾Þß÷ä/uìTÐÇ1ÛC¦»w¶¼Ö>¦<$ßÇåòmßgªW‰¼B{þr,í³„©.Å~T:.«S­m ÏEK/g5}ÑÒ˶KIùº~×ÔoÇõqÿû¿•Ïmò¹‰„ëy…1Ay¾)ÖÙôÙ†œÊ:6æáYUøfVÇuã¢myÝÊþ"Û´ä} m­Ó–¥ðäk4’K„ÂwKæÊñ ©M)ûèò¹À»wïÄçϟŇÄwß}'~úé'ñóÏ?§~îïïwÿÊ??~Ÿ>}?üðƒxûöíî¸s/`úÏá7¿þÕnbøšàw¿qQ!„B!G@6?ÿËßþ±Ëß?~üh,ûáü|ùß~ûí“ÖÁÝÝÝ£Ö!n¿A4í¦Ê÷å´ËƒÔ#n·2l0øÐ”y!䨨ë¢ ºçÀõjÔð/&Û ÁŽ7ä©ç)¯^½Â?þˆ/^à믿ÆW_¥7qvB8Ž“;î8>þŒï¿ÿß|ó nM!„B!ªQ,f™oX=jyB!Ä2â ÝÀŸs ,9ãE˜‡1#„±.Oò ×a3ûõF“.§ñšö!ÇÉ ª€B!„B²ô0½–'„B,#ÎT@L©Â<Œy!ŒuZZ#¬D³;Þ¶F+n¢KŽNB!„ò…pwwÇ:B¿z6z¡|”íˆõ ßS>B!„¨á0!„B!_ü0!ô«ç¢ÊGùØŽXú=å#„BžÓóWÓðÀ„B!„B!„B!„òLà0!„B!„B!„B!„<8L!„B!&¢ ºÝ ¢C•'„ÂôÜë á8ÇÁ0 ]ó0BØïíAþ8Î8 šhÒcW“¦óÔââ1øÍcé,©Óhœ&„B!„4ö ÕÍ=ù*вÇ “rÛ‡hù!>uoùZC…÷6×!º™ƒ3´t×ÕÊ‘)o%oÑ€„IoªºÂÒ@0tà>Àfʧêd²™NÎC¯ììv¾£Õ‹ÎÏmåTŸ÷0ø”ñ#“}Œí¶Â ˆÊ·Ëoj@&« ¹îR½SzÊÚU9 £o?ë/¦Ûc4A7©Ç>õ·½&Ýøú’ Y?KÙS§¿œ=êÚÆ” }f“m‚´%…N7ðC!¦=ªíÉó°ƒäa¶÷6ØÇ¢ïÒæ åÕù¡­Êè§nŽ¥“ÙR‹Øšº®NÍuŒ60é:¾^J›~õ±&¦’úÚÔåp}„B@L{òç¼/µF+ÂwËæ{íá1ã¢ì/Ç8©É\¢2œ&„B!„T'Â9–bû µµ¤ç´.ç³Üó›ú8àí®#Ä Ò¥Ô„·è,“ó—èŒÏ±79âã¡¿Á©4 ¡¼·¡ñm08k鯫‘#[^{^°Ø]WˆþæJ9˜¥’ÝTWXë};Hs®ñ¹;[>Âä|ŽAü-–ŒÏu“Ëj9u¼Ú¸ƒ­ïé%ëç&Ý9Å8UpèÏÛ>‰ÝÏÒÜ“—z9 |¾4:ß.{¼)’Á½LMº©z !°ÄÂêÅSû©Ù‰bØ–ì$–è܆@oŠegŒ7Éøü›1à_cÔÒœß(-ŒV"ôw}B4é¢=Hz]¢3nÛM”Êö˜·«½ŒQ6¦”ê3›nDr§V«ŒÞcƒ^Sí†yØ£ça–÷ÖÚDzïRç íÂòªüÐ^¶ùM“9V^fkøQúº94×ÑÚÀ&w=tæç8Úw“\žì»ÑWîч§2ù³½?ãaèÃu}„bŠÞ±ÆE›¸ýxƒ ÛCÍ%"LºM¼ü4à0!„B!¤ú#Ùb?T?À¶F«ÔBÑñÒô¦Ò›½mœ¸Û‡ÄÅÌC?>Þ:Àݼß=œ«îmªÃöz¼n®«”#[Þp^êxˆÛµúÁ5/»A&yµ`Þ£IW'!V'òAëò;Ú'š¿éä<Ôñªc!e}§H/²ÍäD¯o}‹°êyÑW3—£WZ9¬ä®Ý+ß+næÈÕ»7µÓCcý–¹Í÷0•Ó»ð±¹Ú®¢ÝÚ´e<==¶óÏòÀ[ÓÐæ7%?_£Ó`,w\ß'4Þ&öæÆšÕCÙ•ÖÇ´r'³Mâdèd¶g 0l±Æ §‰ì¥VIÕÑev¥büÕꯔüI¹[¼é:ûÛþóØaV?ÓÝ[Q¾lnòý$¦˜Ê+óÃRz°ÍošË±ò2—È ~¤Ó…R›'× ¯\\v0~Ä…Äg"LÎÇX¯Çh;º——éÕ»>LšSõ»Ê~/Qíp{¿ÿÛÊ×ó›xÍõ›1:ƒAJޱOMoÙ«<ßë¬ûl›v¡ËŸíýÙ¶ý¢n\ÌÖ1š ÛbØM®õ°£‹Y·Eþbº¯¥íÊêf·ÍýÕh»ƒCc¹D £U‹²ù’|½ökéO7 ] œ&„B!„T$Àb¶Æ¸ÝÔOüÀVeûÍès p–°k½FG÷pnS‡`™×Ï>é®›•CW>'¯ô+*NBÖU=¸wŽëŠ«ÝZ­.q›è®=ÇàÚâmqœ‡:Þ¸ÿéEåç¼ß¹|'®ü™âó¶+E/ÐÓÊÑt»µl‹e×!ÀJ F7˜¯q…a}/ö‰¬!Z#\vÆ8?Ÿ£³LúÃùû"z[¥U5›fî ÚÇ úü{n ö9Ãöx·²ìa%[úøþ^Th¦mÞö“ÕSfWDñËn²R|õo”õlÚþ#\z3,‚l¼0lßâR^µž¬ìÛÉ·Çõ'׉œÐî‚ñt`öØyX¹{gíS­ïzÈôåkå‡)=Øæ7õs,+™mm$ù‡úº–9°¦]<Ø „®{S,qš±±®¿jatýЯ®®º»zG7st<Ä}_ˆ[œ ­/Š~oë Ø.†]!™/m.Ñ¿AMpµñqq&w·ÒJÛ¥4‘­Œ ºóu±®DŸmÕ.L¶­êÏ{Œ‹º¸´ô0;=®mt›ñ—ÿúÏ‚¼£¬íJf;CŽË®²]#¹DS! ®s«œÚkitq,p˜B!„Ri;ºÐÇæ´êJø!¬Ò–°ñ–¨×U·ªÒ×!XÌàõ{•åP—WÉo¹*úX4±Š¨5ªpûÆ7ó5ÖãöÛÌë1ÚÉ6[Û?>l«ÂwוòŸ£ÿëõ¢òó¦áóÝ gcåD¥Åy™%z9šj·¶m±ìñšd·€N¶Œ;–‰Ç¬e§±œýE½ À=»óyBþêáÑl+¸X¶G¢÷ظþÎZg¸³‚Ìñ£F–S·;‚®žûh{}³x8Xlà_ôâ-$&Ú¶±1ž0ÊêYz1¢u6€ÛèKFÞ1{ô<Ìpï\y}Jö]¹%Tå ùaYŸ²ÊošÈ±t2/ð©V.£×ÅÿW˜kÚEÊåt½ÛDî/uýUÆ}o;YÞvп8ÁflËw^£eêw³ýÞzŒvû—¹‰¹øµöË|w+'Og@² [Tçëb]™>Û²]¨}¬„?—iÿuã¢..µOàʿ٢Î}Ë\ߨ›í7–ý‚Ï4™K´FXírjÓ7 ¹–<„À„B!„fhaÐěХ¶„ 0t®pj£÷Ø”™ôIÕ!Âû‹“¶ÍuUr¨ÊÈ‹úÞ•>éY¶®»GéMf×·ŸœIÞðï%×*úv]œ‡:Þ´ÿÿÛV/’Ÿ'ƒ;;hä,8O^QbmŸÆÚ­Î·Ëß—}^£³žã昗çõ¦b Ïv²«ìùMëζM%ò¡\d:ùkDx›Ú†”isð7 °ØH«ôrßÛƒ7 ó°ÇÉêÞ[c‹¾+•'hË×Í%=Øæ7µs,Ì}üG)eýCsÝkàÿ7æXz?KÛ ¤®[#\æxs£ˆ±ýUû¸ ,6'h·Î0Ø,„·èôKön®¥fg†Þ…Ò6Éq>ÚmKßÔ-Ú¥Bw¾)ÖÕì³­óç¦üù`yOI[<úõ·/ºôøY…dÂzѶ±žÀ„B!„Šlßô¾JžÎêl± ¶4³½N4A77¸²•)ÙÒ1º™cÝym°2Ô!µm›áºJ9ßöMs^4¦Œ3Í`§Fv½L5œmÊ·^£³ãÊn©ï‹éä<Ôñ=ûÿ/ z)ôóí7¸08“ì¨z=s^|njUÖ> ¶[˜}»ôñ=÷W>0n§õ ‡œÍû‹Awò jÑàtÙóë°lu—ÚÞv»ghÙê¯5Âj œ:‡Z]kî+mû Ó¦£›9Ö^½^Þ±¿ÜÐD=÷s3œ 6X Ø$ýi¶ï´mÊ{•ó`ve7éüÐnJ÷:›ê¸Þ¯´ž^ÂwÌzQØ@ò7­ô´uçÅr¤ä0´Û²z)jeŽ—A+_FǪvúÛCÇ”.—´ÛöSY²-öÛ¥Íùuõ—j3%úþrò'×1Ë­’¯TL)ÛgZ´‰*4{s}³BþLÉúïAë‘ÈŸõ…l½²+軫G.^iüÙ(cVçKáí®©û}OþRÇNÌÃ?ÓÝ;[^kS’ïãò±Ö¢ïËø~)=hó–=äXZ™M6*ö#»þØg쮣³)ækŽ-½tœÕôEK/Û.%}É×Ðõ»¦~;Ö«ûßÿ—/sn"áz^aLPžoŠu6}¶!§²ÎŸyxÖG¾™Õqݸh[ÞF·²¿È6-yßB[ët£e)<ùä¡ðÝ ¹…l ?®’ ¼{÷N|þüY|øðA|÷Ýwâ§Ÿ~?ÿüsêçþþ~÷¯üóñãGñéÓ'ñÃ?ˆ·oßîŽ;÷÷÷¦ÿü~óë_í&†ÿð§ ~÷Û5B!„rdóó¿üí»üýãÇÆ²>|ÀË—/ñí·ß>iÜÝÝ=j‚áöDÓÞaÊ“çéWÔ å£|_N»¶#–ƒõžòB!/iüÕ6ü0!„B!„B!„B!„¼¸L!„B!„B!„B!/.B!„BHñ½Þñ±î'„BôÒËŽà8ÇÁ(¤]ã0B ës•z}ˆ6OÑKúlçHv<í%~£‡iÛ üsóIìÿˆ.B!„BZ ÷öFß!FÚA§æza>†m:ñ»'Ä(»>BØðÙñý^Â5åk”C¹ßJÞ²IUö²²ÂÒ@8rà”N(÷çÊT4ùb’óX×kWv»ºcÔ‹bëì7[9õéž&À”zTdŸªí­N[l¥Î7“e¯ìR¹szRíª03·ŸÖõŽòí1ž¢—–£¤ÏiA L{Iþ’ j=ËÙÙ¤¿={4¤­àSªö™m¶ RÒ–4vºØ"ˆ„˜õ©¶#sÿÄ8ì°q˜í³õö1úÿÊñº–Ë%§7ËQE?Mc¬²˜ÖÖ‡ÛÚ¸b=¯-÷s÷ÇîõDB@ä:íùcMûuÇk!ðªÆZuñ9}’¬Ûc,ØjbçQˆò%±u.ÏDçEqaI ßN*å¹W§þþÿ*Ÿs\È`B!„BH}œ `%väõØ•Æ]=8Îæ{cLÍõ‚|ŒDè®vé…X¡;¹ÂnÝäH®GÁÒ¤UgGÀðÒ5çkC½ß˜.\fù !ØÞj'…t²•Õæ~yÂé>¼Â¹õþÓ«†ÉäˆXu1¹2-.ëå<Öõzs#¶u§L/~–^ˆ5ÆnŒiïIN±.´?æt» 0‘ý­|À;e–£N{«Ñ›ÖùÚ¤’9='6”Ê-„À K«ŠÚOÃN£Žd'±B÷!ú3¬º¼N„ _O€àc×¾U\Œ×" ²>!žöÐY %½®Ðtì&Äd{DC,:õ^ƨäSªö™m· "U§1Öë1 5¿Ç]œQíGFõOŒÃ‡Uò‡ûöÑûÿN¥x]–È¥¦7Éa«Ÿöb,}LkëëظZ=¯'÷QúãÔ—´s«²GÉu÷roû>›`©þìËygnA¾Z9Ôû Òå®GxØè'öe/IÞ-XbxÚÃíy„õõ¹|ÑúþŒÎ¹á7“œÕÁ© IDATǺ^w>¦f½5êE¶ù“œèàoÕMOq;÷q3þÖ(G­öV¹-6¯óíã~½r÷gvz(­ÿËßÇ,QNÿ:Àöv·{agS·0ý{zìÖŸå É>fQ,)÷ ÝÛ`µëæ>¡õ6q°jlØÁ¤îp9¥ã•ãJ§#u‡QˆQg‚ æ¸He¯´S«‰.ÕÝ|ºJÒN¡Lþô¾¼î9‡;‚ôÔaÖ<3=[s¿MÎû ;kãÀhÓk刬㰶b,“l¶>ÜÞÆÕëy¹µ}g‚ôÓýH³kSÙÁ=úßJlÕÏÉyƘ^M°ÙLÐ)Ø yP\ØÎQ8†)òMµ}’êâ)z½F½4¯§ÓTR»äw°¦2*º½¹1ØH÷\›ükè&Y,ßÞ–ÅbkÓ¸Å*.l1µˆ¿Åc'€ !„B!5 ±œo0é8 ¿‘ÔB>ñ=âÒÕ *µ‹i–Ï—˜ûƒýA¬)_UÓý{ò¦“K DÍEˆÒ²êÆ®=\á®æ[Í.Æë<¤ºë,0¼³xcÝ$ç±®·^ÿËô’L(å&жxŸÍ^tpîÉÿ/Sžn·Sô}£mµÛŠmñuÞD2‰–[ ‹ï±ØœâÃ>~R'TC¸cÜt'¸ºZ »JuTþPÄï±õêô¯ºf³ÄÜ;GçTŸÉà6ÑbŸ3êL²PO;¦ò×÷¢B;móaîò1¿"N&q³6ë3¼Ö–³mûqãϱ UbÔyÀ¼;)Ý©—ÉŸ´ÇÍçw©œ0ž‚ñù óOŒÃ‡U{v±}žü¿½Ž‹ãÀ}¹lâF£•ôS=ÆjÓ6´qiÙšÈ]ÐÇkûTåÄ!0ûŸº<Ëú99Oã»§~ºuWõǦþæ¹}’É'¬|Ì/®€;9_e§üª‹ÉëpW7dÝþî·%>ß$·)ÿêºW§/!Tˆ­ãé­>þSãBm ß0ÕåÙ(ž.°Í Â`B!„BH¤ãè¢Û‹ºoÀ6É'9Âé®îqYæg‡Ë9üA¿¶úûuò&G®Š–mì"rÇX—ßã~±ÁfÒyÌo&èô¦ˆ­î—o‹x›f /¨þ›õÒÇL¨Ç×õ1‹†Xd“]L´“)é”Ý?f9Új·¶mñ꼌zÔ[z”Þ©,<ª–%r–{ßZì_†¸îÛ¥?I䉷ÛsDÇ8ÚðÙ|Ù‰ßcëY]p/‡ðæK„Êõ“F–Ót:‚©œ‡h{ód8\n\÷“£?ŸÚv¾1™`Võ,MH»—Cx­¾dôì=‘Æ?1;lVðì½ûKìS°û׬ã‚8P+WYz9cYÈvdjË]ÔÇëúÔø ”øÛ~®ô›cøã’þ¦JÛkê“L>¡sOþ·Ô>²]£s èd"ÛçVÉ¿R¿TWË/!ÅÖRü×Y Ÿâ¿¢¸ÐÃ`\P;ž~Æ8¥ ¸L!„Bi÷CãÎÅCåbäÜâ<2 fã÷ØVYôÉ=;Æû­ݧÔöóÕÉ¡»¿D^ô1ð7¨õIϪeÍ&ö”oÙ´ã)n·éà×Åxmù-W“œÇºÞvýÿ»­^¤ãëÜ1Ö9;ä,I—ÛuckŸ¶Ú­±n°ÎW²Ïº›îOy{^!Vðm'‘ª¦o[w¶m*x‹‚ÓZ 3ÉßZ›x&¢‡Üq ¤J›»F°]"DˆåVÚ]´÷½ÀÏàxðV)8^•qX‹qXÝgïÛǼû·HǶq`*WyúB9šè§4ÆjÓ6µqYÙâ#Ë]ä›O¡Ÿ³öÇeí÷„‰§èÉßœmû´Ž¶ó·i¯e±µ\Çt‹¼¶qaÓ8ôTâé#Á`B!„BHÝÑþ·éŠRí#VkæOÑÛ›Øå•éß/°éžL¢<;w¼XA¾Z9°<™!]<I‹r!–sÃd§Av³L v°ØÜïž¡»™ ÛTšÓümE“œÇº~àúÿz GOGÙiëùî;`^JvÔíDTÒ%is»nŒöi«Ý–µÅCÔùföº€I'¯Ïp4B¨™Xj¿¾èNÞq`1‰\)}²…ÅDw¹ãmwÇßax ×Vîëpq´o¥÷­¶‰C ´éø~?@¿?€ê/7´QÎÃ< —Ã-–£%¶iªö¶Mù r>¥þ‰qØ!â0ã³Õû‹ì£Ûu«‰Ãªôqµt²'G“8¬FŒU+v)óG-Řn¹ß/Š_úq/1DIV³ŸCk/qÕðǦv^g s,Ÿ$±gGU·už[”%Ý$Gß”½ˆP[[éÖ6.4ǡݛ±}ÚV<ý¬qJ <>>ŠÇÇGñïÿù!óÏÿB!„BÈi ÆçrüžÆô¦¿7oÞˆ·oßH²Hx"ˆ¤_/¹¾ûóWE×Íù¤¨ePó ¼ B¬„Ÿ]óÅJ”ɤvxI~)ú|Mr¨÷å]ùZ=íiZ+»¡¬Q Eþ¿b'×qäÚ„A‹8¬µK˜}§9†µ©ŸÕcÌJ1³(òùšøÏ÷íúTùùÓôöýœôÿ+_j7Fÿ~lîo"xjýÐèWõ+M}’íýÒ¿Sýåì¨êö,öùÏÕæ_2¾ÓÇΊ>Õ:YÒ¾à¯Ìu¹(.ü«ÅðÖq¨6ϪñwI}jèÿe?ûéÓ'ñáÃñý÷ß‹ŸþYüòË/¹¿ÇÇÇì¿òßÇů¿þ*~üñGñæÍ›ìºóøø(`ö·ÿÂïÿé³…áù·)þô‡175B!„r¨ñùüù¯YüþñãÇÂ{?|ø€W¯^á»ï¾û¬uðîÝ»g-C8r°ÌúǹŸ¼ÌzE½P>Ê÷å´Ë£”#ÁY Zt>´åcFÉOÑ»îžã¸êbA0Ý òù M>óºw?ûí·ßâ§Ÿ~ÂW_}…¯¿þ¿ùMþgÇq „€ã8{×ÇÁ§OŸðÃ?à›o¾À#  !„B!DCˆåÜÇ ¬û !„K3r²‰?çXqÅ‹0cFÈ¡ÙLÐq8£ã|Ø!žöà8L64Å…;ÆM7©{m÷ýBùŠ* „B!„•>f¢Äû !„K33ê0cFÈ3Ꮁã#‹°†à¶Œ{H!\&„B!ä áÝ»w,!¬W/F/”ò±±¬÷”B!z¸L!„BÈ¿LëÕKÑ å£|lG,ë=å#„B^Òø«mø `B!„B!„B!„By!p˜B!„B!„B!„B^\&„B!„"â)z½)âcÝO!„>襗3Áq8ŽƒQH»Æa„Öç*õúm ž¢—ôÙΑ:íxÚKüFÓ¶øçæ“Øÿ½<Ûµ€ !„B!­ ²z{£ï#í 3ýi/ý•Øä‰‡Ü³CŒ²ë#„%Ï.+C|¿†—pMùåPî·’·¬Üªìee…¥=€päÀ) PîÏ•©hòÅ$ç±®×®ìvuǨÅÖÙo¶rêÓÛAŽZí­N[,iöõ®¾,{6ì•Ó“*ƒvÂÌÜ~Ú”¹7wrîµµ¤zm(¦½$ÿ‚~:gg“þöìÑt’ÖΧÔê3 }iT¿m|ËÅA$ „À¬Oµ!˜3ø'Æa‡ÃlŸ­·O%^ÒÇ™ü±|Ýæyú|lügÓ« êØØÒÿÔ–û¹ûã ÷z"! röü±¦ýºã5„ˆxUc­²¶úÌ>IÖí1l5±ó(DyŒ‡’Ø:—§ªó$ÖÔ•Õ&VOÒìwwÏi» Z† À„B!„ãžœ `%vƒ¬õؕƆ=8Îæ{cÌý뻼ÈþV>àwŠŸ= »JïY¡;¹ÂnÝäH®GÁÒÈP+SA’Ç`xéšó5È¡ÞoL.³|…ˆloµ“B:Ù‹Êjs¿<át ^áÜ€zŒéÕÃd€-V]L®L‹Ëz9u½Þ܈mÝ)Ó‹Ÿ¥b±cÚ{’S¬€ íd‚9¾ý¼2ÊQ«½Õh‹emæÞÕ"Ìé9±¡d/!VXZ½PÔ~Ou$;‰ºПaÕàu"\øzw»†ô­âb¼QÙ&žöÐY %½®ÐtìJe{DC,:õ^ƨâS*÷™%~€4©Nc¬×cj4~-º8£ÚŒêŸêõýŒÃªÄvÏ6ÙÇÚŸ—èØäÕëeÏÓåcã?Û‹±êËPÇÆöþ§žÜGépP\ÒέÊ𼑘¡ª>éÀ6²‹Õl/ìvÏÆÖržêø&¾Ç>|,p[æ÷”½d‘wo÷™lw¸qAûp˜B!„R›p¹EéÑîx[@(».ênç>nÊfû3iÐ×Á¹!–sƒäº{9„·}Ÿ 6uÏ.*Ã.¿.ÎÜ‚|µr¨÷¤Ë]ð°ÑZ÷e/IÞ-X¢÷xÚÃíy„õõy~`myFçÜð›IÎc]¯;Sµî”éE¶ù“œèàoÕM—µŸoíä°mo•ÛbqÛÐÖ»ÃNÕà~={õg%ö³­ÿÛ|³DiýëÛÛÝ.Ú¼ôéØÓc·þ,OHö1‹`q_­M¹gè¶Ø«]7÷ Vmù0í`RwڜҎå¸ÒéHÝabÔ™`ƒ9.RÙ+íÔj¢KõĈäÿu;õrò§÷=àuÏ9ܤ§ã°æq˜éÙšûmê´ÉŸéØäKý´ò¾ÇC\ªA÷ ]íbšeÂ%æþ`_S¾ª¦û÷äMšK DÍEˆÒ²êæ>z¸Â]ÍÝn.Æë<¤ºë,0¼³xcÝ$ç±®·^ÿËô’LJä&жxË“ZòÿË”§{j?vö©ÕÞê´Eéz³zgA2‰–[ ‹ï±ØœâÃ>~R'ÔÔã¦;ÁÕÕÝUÚ/¤?ñ{l½:ý«®Ù,1÷ÎÑ9ÕgòÆ—ÂçŽ:“lÔÓŽ©üõ“žÜLð0Hwù˜ßN'/xéN¡õ^kËÙ¶ýǸñçX†ª¿1ê<àFÞµžîÔËäOÚãf‹ó»TNOÁø|Ðù'Æa‡ŒÃª=»Ø>fnÖ±ÉÛøiùyíûõê1ÖÁc‹F6n"wA¯íS•c„Àìêò,ëçä<]ŒïžúéÖu\Õ›ú›çöI&Ÿ°ò1¿¸îä|•ô«.&¯Ã]Ýuû»ß–ø|“ܦü[¨ëj\¾„P!¶Ž§·Rü·[è^ºè|lÒ— Kó[àʸø»‹‘s¶û_ÿÿGÎFE:-¶Ýç € !„B! Ž£‹l/îÔ©µ19õ®îqYæ2„Ë9üA¿¶úûuò&G®Š–mì"rÇX—ßã~±ÁfÒyÌo&èô¦ˆ­î—o‹x›f /¨þ›õÒÇL¨Ç×õ1‹†Xd“]L´“é”öSjŸ6vÿZµEùzA½kË,êÐéQz§²ð¨Zv–È9Xî}O±âºo—þ$‘'oÏãhÃçöe‡ ~­duÁ½›/*×OYN㩆r¢í |Ì“àp¹EpÝOŽ|ZhÛõQÉ$¸ªgéÅ÷r¯Õ—Œž½'Òø'Æa‡Ã ž½w‰}Jý¹NÇ&|ƒÿ§ÌOçžw(¿^%Æz†Ø¢i„TWî¢>^×§Æ÷X Ä'Øös¥§ØÃ—ô7UÚ^SŸdò sxò¿¥v“í>½˜E'Ù>·Jþ•ú¥‚¸Z~ ¡(¶–â¿ÎbøÿÉ øýüt ta~À0èV{ÙJÖU¡NKl÷Ã`B!„BH;¸—w.ZNŽTÞbäÜâÜô&püÛ*‹>¹2Äx¿õ ý4ê^¾:9t÷—È‹>þµ>éYµ¬Ù„£4˜÷ûÅ™xŠÛm:ˆv1^—}»®DÎc]o»þÿÝV/Òñuîëœ r–¤Ëµ û´»û×T·Õë ë]mûœ¡»ÉgìäèÏ Ä ¾íbWÕômëζM¥‡QpZ d&ù[ðeÏJô;”Tis×¶K„±ÜJ»Éö¾#þÞ*Ç«2k1«ûì}ûTò癎Mþø·%~:ÿ¼gðë¥1Ö3ÅumYî"ß| ýœµ?.k¿'LvtñNëh;›º^[ËuLªÓñý";òz÷ÝäèÒü†¸Ï 茾´—ŽëÃ`B!„BHMvG‘Þ¦+JMX­º1ž¢·7 °“)=Ò1¾_`Ó=+˜D)(Cîx±‚|µr`ÿx2Cºx:’åB,ç†ÉNƒìf™ì`±¹ß=Cw3A¶©4§;ùÛŠ&9uýÀõÿ ôŽžŽ²Ó¶—ÝwÀ0¼”ì¨Û‰¨¤ÓµŸ"ûÔio•ÛbÁõ#õW×0éäõŽF5Ní×—ÝÉ“XenUÓ7![XLt—Ûq±;FÃK¸¶úsÇX¯€ çX»k‹ûŠÖ|Ù¡PÚt|¿ÀÆ ¯îžùÜ1•ó0Ãåp‹åh‰mÚŸª}§mS>¨œÏ@©bvˆ8Ìølõþ"ûèü¹&;Z¼þ\1V­Ø¥ÌµKº äV|l|¿(~éǽÄ%}XÍ~­½ÄUÃÛÆ”MÇ@‡ôIÒ©{vTu[ç¹EùWÒMrTòMÙ‹±µÙ@¸_làKG”‹Uz ´]~îøÁö¢ú§ ž5¾8!Åãã£ø÷ÿü‹ùç !„B!ä4Pãs9~OczÓß›7oÄÛ·o$Y$€<DÒ/—\ßýù«¢ë»|<9µ j>@zÿJøÙ5_¬D™Lú2D§È£Ï×$‡z¿QÞ•¯ÕÓž¦µ²Ê³´‡ïñU¹? „ý£@x9Ý›lr¬ëæze¬éêN±^46ꀗWz^¦t¦öc’£F{«¢¹ èÛ¨¡ÞUÀ(Ÿ¢c]»ÎýöÔ1åïSd*m?µõ'סý~t_?%é›ê/×f*ô!&ýiì»Ë§Xn|Õ|JÅ>³À—5¡ß»×7käWüj´©ƒ•#•_­ j¹ÔßJúîÖÊ±ç¯ õ¹PFUç+ágyšþ} úÒÄN%}ã°Äa¦g«÷íSäÿ+öq&œ»^?¨ùØøÏVb¬ª2hÚ~5¿QÑÿÔ[èâ?ß·ëSåçÿMÓÛösÒÿ¯|©Ýýûaü±¹¿‰Dà©õC£_Õ¯4õI¶÷KÿNõ—³£ªÛ?þ±ØçÝÓä“R rÓ7™ØÑÕmÛ:ßæ¤™ò̽ü%{åô¤ÚU;Yen?mÊÜ›Æ;9÷ÚZRŽ’>§0í%ùK2¨õ&gg“þöìÑÔÖ–>¥NŸYèËH£úmã[.¶"!f}ªíÁ\õ~™qX q˜í³õö©äϵ:6ؽ¶ÿ.)_Y¬Ø(Æ*‹im}¸­ëÆžcéä÷\½¶éWŸkÑ-•_©wvãŠ#àˆ„€˜õ+ÇÏ:Ûºã5„ˆxUã½²þâ™ý¢\_Nq¡Ÿ±Dm¸L!„B©O8‚s¬Än µ»Ò8­ǹÀ|oü¦^1½Z`˜ Ö΋ɕŠ3z@w•Ü#VèN®°[7¹’ëQ°Å…4!¡•©  Éc0¼tÍùäPï7¦ —Y¾BD¶·ÚÉ,ìEeµ¹_ž¤¹…¯pÜ]ßn&9u½Þ¼ƒmÝ)Ó‹Ÿ¥b±cÚ{’S¬€ í‡9ÝnòId+ðÎ_åЧïÔïLu»°m¨zh±_J'÷”üãi/g/!VXZ½PÔ~v¢u$;‰ºПaÕàu"\øzw»†ô­âb¼Qõ ñ´‡Îb(éu…î¤c·P*Û#bÑ©÷2†½O©Ñg–øÒ¤:±^Q¨Ñø=¶èâŒj?2ûeÆaÍã0Ëg›ìcíÏ u¬±{ ÿmö“åõª½KÓÚúp{›c²jõß2–ö|tW8Ùw“<¾\wã)n·¼ïñªÅ϶ñz‰?Œx^€HÌÐ?U¿hã·Ÿo²a÷ÂD«±DŒi¯ƒ?¸L!„B©?$[nDú¬;^çÊ®gtÎí& ú3éÍÞÎ½Ý q9÷1H®»—CxÛ÷Ùà\÷ì¢2ìòëâÌ-ÈW+‡zAºÜõýÀu_ö™äÝ‚%z§=ÜžGX_ŸË­ï/·›IÎc]¯;RµîØÖç›'9ÑÀß< ª›.žâvîãfü­YúÓwÔ™d»òžv–å¯îE…vÚæÃ Ý=åc~;Eœ¼Là¥;Å×gx­-gÛöãÆŸcªþ:Ĩó€y×zº#/“?i›-ÎïR9awzÉIÓ _fÖ Î°}v±}Ìþ¼¬+±{cÿ]§^U±šÅ´ull»•Ö‰ ±t†.Û™ú+ã»§~u}ÛËäˆïèúHú¾8GÇè_4ýÞnÝfØ5ÒõÒÎøÝÉk„ñ·Û×—rw+í´]I ÙZŸ`Joòuúì¢g?ÛÆëÏèM~iåc~qÜÙèV©/¿ûmIÜQÕv£‘ÇId×Ù®•X¢™wÀUغ2.B!„B ëØ^ÔÛ©ót\Z„ÀÛT8%G¢ÞÕ=ªÊ\†p9‡?è×–C¿NÞäÈU1À²7‡Ý1Ö¥Ç7Ƹ_l°™t’ ŽäÍïô˜-‹ã›ÙíåÖ³^’ɆܑŠ}Ì¢!Ù$gíB¥E:e÷O©}ÚØýkÕÕë:=´hõèôÈEà™z IDAT¸SYxT-;Kä,÷¾ßØ¿ qÝ·K’È ò·çˆNæXÁö}ÙA‰ßcëY]p/‡ðæK„Êõ“F–Óx*¡œ‡h{ód8\n\÷“#$Ÿ¬v¾1YÀQõ,½á^áµú’ѳ÷D úeÆaõâ°‚gïÝ_bŸRnÒq™Ý›úï&õªJŒUÓª½XÅn펲“AäþÒÔ_)òüÝbeôÐÅàúÛe¸»¿{·¨ßUû½ÍÎnöæ’Ô:to”¾@Þ‰y1Ò]Ñ&Ÿ KoòuUúl£µ‰Ÿ+ؼJûoêM~©sOþw™-š<·Jþ…ºÙ}cy9(ù A›±„;Æ:‹©kÆ~Utz¸L!„Bi÷Ã:oB§oŠ÷ÓI°²o ©Å[œG†AbüÛ*‹>¹2Äx¿õ ý4ê^¾:9t÷—È‹>þµ>éYµ¬Ù„£ô&½Ø/ÎÔµ›IÎc]o»þÿÝV/Ò‘ŠéäCfƒœ%ér»,ìÓîî_SÝ.«óÏt4´{†îfûSޞןAˆ|ÛÅ®ªéÛÖm›Jä£à´ÈLò×õeÇ"zÀ†HÍ6w`»DˆË­´Ãqï;âŸÁñà­R¥_fÖ^œaûì}ûTòçÆ>nÿøìvýw_c5ŒiëØØ&v+«UciwŒ»á¯ï5>¶¤¿êœQˆåö÷Ãíaô€î bïæXNfè_ð “œ”±×‘¾©[vJ…)}‘¯kØg[Ç϶ñú©RÕÏžÿî…‘ÁòRNo—ƒz¾þÐ:m.B!„Bj²{Óû6Õ=bÕ=Cw3Aö»m>ñ½½‰©L鑎ñý›îYÁäOArGÞä«•ûGæÒÅÓ‘4À ±œ&; ²›ej0p¶¹¿Èn¹ï‹™ä<Öõ×ÿ(ÐK8z:ºO[ÏwßàÂðR²£îmt%]’6·û§¬]µ¹ûר ×Kõp˜þê:&¼>ÃÑ¡f³ýúR ;yÕb²¸Rú&d“­‰îrÇÛîŽÄð®­þÜ1Ö+àÂ9ÖîÚâ¾¢±/;4J›ŽïØøôûø§þrCå<ÌÃp9Üb9Zb›ö§jßiÛ”*ç3P§_fÖ83>[½¿È>:®‰Ã´:6åÛ–ÿ®íïkÄXµb—2dSŸå˜¬bý¯1rÇ7Àd²óÏeý•ôÒ•{9no“¾ÎÅåX.±«oûÝÎx.öôvÇXëѤÓâûEùKKºô&_W³ÏFÝøÙ‡WGË/ÙB}I¯ÎsËlm¡›ÝI7wÀ•SWn©ì»ÝÆ»“¦Ĭ÷®Z¿Ÿ›ÇÇGñøø(þý?ÿ"dþù_A!„B9 Ôø\ŽßÓ˜Þô÷æÍñöíÛI‰Àƒ O‘ôKà%×wþªàzú|RÔ2¨ù^ !VÂÏ®ùb%ÊdÒ—! ¼$¿}¾&9Ôûò®|­žö4­•ÝPÖ(ž¥=„|ˆ¨Êý&»Eðrº7ÙäX×ÍõÊXÓ+Ôb½hl Õ/¯ô¼Mé9<µáÛ•!} ½”µm7é¡Fù”¼uí:÷ÛSÇ”¿/m ¶í§¶þä:¤éÿävi“¾©þrm¦BbÒßžüi>Årëä«äSªö™¾¬ ­øÞ½¾Y#¿âGÔú{Ôr¤ò«uA-—ú[IßÝZ9öü•¡>ʨê|%ü,OÓ¿T_𨩤cv€8Ìôlõ~£}Šü¿EgÈ·Žÿ.«ê¶bŒ%̾Ó,›Mý4ØØ“U¬ÿeåÑøQ±òó~ÖЭ|µ]JùËy˜úÝ¢~;)§÷Ç?î˧¤Må <ß/õ ÚôE¾Î¦Ï.ˆ©¬ãçÂ8\­£[Ê:nêmï·Ñ­\_d›V|n©­Mº1²¾œG+±D$¯½ØÂ¬Óê±ÀÛ·oŧOŸÄ‡Ä÷ß/~þùgñË/¿äþ³ÿÊ?~¿þú«øñÇÅ›7o²ëÎã㣀Ùßþ ¿ÿ§Ì†ÿåߦøÓÆÜÔ@!„BÈ  Æçÿñç¿fñûÇ ïýðá^½z…ï¾ûî³ÖÁ»wïžµ áh÷ ¢º/7½Ÿ¼ÌzE½P>Ê÷å´Ë£”#íŽ2lÑùДq!䤨ãëâ)zWÀ]ÛGƒ#Æt—1Æ.MCšùÙo¿ý?ýô¾úê+|ýõ×øÍoò‡8;Ž!ÇÙ»î8>}ú„~øß|ó M!„B!ºY,çÊ7¬žõ~B!ÄÒ㌜lâϹV\ñ"ŒÃ‡B_·Ïf‚ŽãÀµó1ŠxÚƒãt0ÙÐ>ä4ùŠ* „B!„•>f¢Äû !„K33ê0cF}wŒµh÷Ä[w¼†à!ºä„á0!„B!_ïÞ½ca½z1z¡|”íˆå`½§|„BÑÃ`B!„B¾ø `BX¯^Š^(åc;b9Xï)!„ò’Æ_mÃoB!„B!„B!„BÈ À„B!„B!„B!„òBà0!„B!„OÑëMë~B!ôA/½œáŽãÀqŒBÚ…0#„ýÞäOüŒÓ’£‰§½Äwõ0m[1Ÿ›_<…zóRtÖ"\&„B!„´6Ðêí|CŒ´>õzˆQ: wF°¯ÉƒøÜ³ËòÒÈTP†ø~ /ášò5Ê¡Üo%oÙ„DS½™ì„#Néà\¹?W¦¢‰“œÇº^»²ÛÕ£^[g¿ÙÊ©O÷4ù¤Ô#ƒÆôM&vtu»¨möhM–=HÏÍéIµ«v²ÊÜ~Ú”¹7wrîµµ¤%}N aÚKò—dPëMÎÎ&ýí٣驭O©ÑgªN~éXMü†]lDBÌúTÛ‚9ƒbvØ8ÌöÙzûTòçZìn«+m#ËPE?Mc¬²˜ÖÖ‡ÛÚØæºbMyJm˜”7W¯múÕçZtKí¡Ô;»qÅðDB@Ìú•ãgÍÝñBD¼ªñžE{xN¿(×—S\èg,Q.B!„BêŽà\+±h­Ç®4NëÁq.0ß¿©×cL{Àj—‡X6ƒÎèÝô±Bwr…ݺÉS^Q°Å…4!¡•©  Éc0¼tÍùäPï7¦ —Oe‚í­v2K'{QYmî—'ináÃ+wkìvµÀ0JíÖÅäÊ´¸¬—óX×ëÍ;ØÖ2½øYz!Ö»¶õßœn7ù$²¿•x篌rèÓwê÷¦ºm¬óÅm®1éä^Nω ¥ç !°ÂÒêÅ€¢öÓ°Ũ#ÙI¬Ð}ˆ€þ «î¯áÂ× ¸ÃØ5¤oãµ€ˆ‚¬Oˆ§=tCI¯+t'»…RÙÑ‹N½—1ì}J>óÐuòKÆc½£P£ñ{lÑÅÕ~dTÿÄ8ìàq˜å³Mö±öç…:ÖØ½P§šôÚrØÇ÷íÅXú˜ÖÖ‡ÛÛ¸ l&›l`eCÏGwq…“}7ÉóáËu7žâvëÁ;y÷T%~®9^UýaÀóDb†þ©úE¿ý|“ »2Z%bL{m¼üyÀ`B!„BHý!Ùr‹ Ò`Ýñ:·€`¾áaãcfÒÀß< tI£?“ÞìíàÜÛ —ó§¼ÜË!¼íûlp®“©¨ »üº8s òÕÊ¡Þ_.w=ÂÃF?pÝ—½@&y·`‰=âi·çÖ×çòEëû3:ç†ßLrëzƒI¢Ju§L/Uë¿eºxŠÛ¹›ñ·vrdéLóXÕí§ëVzk÷ ì=·?³“£´þ7Bnó}Ì¥õ¯low»hó6Ò§?`OÝú³<ñÖÇ, €Å}ÅÉÏ3t[lƒÕ®›û„ãÔÉ:ÕØ°{HÝi}J;wäÝà½)¦#G9ž1Ĩ3Ás\¤²WÚ%ÕD—ꮽäÿu»¿rò§÷=àuÏ9ÜñŸ§ã°æq˜éÙšûmê´ÉŸWîã uZ–>-‡}|ßVŒ¥i+øp{”Í`S«òmxŽë›.&¯Ã¿Ö™Ó« 6› :ŽƒÞÍM~wgÖ‡I aº~WÛ索íž÷ß;ùC`q¿«°áë ºÃaÎ.NaŸš?²W›¾È×Y÷Ù6º7ÅÏÆ«¶í·©_TËOÑë0ê¥y=èR¬Û²úRô\KÛUÕMv̓õxw‚Ck±„‹ñz€eñ’¢óS–'šäÿ·|Ýc!.Õù÷ ÝÂÅä’2„KÌýÁþd)_UÓý{òJƒ\Qs¢´¬º1kW¸«¹ÛÍÅx}ƒ‡Tw†wo‹›ä<ÖõÖë™^’‰‰Üq~¶õ¿<Ýn§è5ú–öyJߦ¶˜]o³ß0L`å&ã{,6§¸Ã°ŸÔ Uî7Ý ®®è®Ò~¡ ý¡ˆßcëÕé_uÍf‰¹wŽÎ)¨>“ÿêdK}Ψ3Évå=íDË_?Ü‹ í´Í‡Aº{ÊÇüvŠ8y™ÀKwНÏðZ[ζí?Æ?Ç2TýuˆQç7ò®õt‡a&Ò7[œß¥rÂx ÆçƒÎ?1;dVíÙÅö1ûó²>®Äî{º2¥×•£n|_=ÆjÓÖ±qQÙT]Øù™Â˜¬?à Ê}¦þÊÅøî©_]ßö2¹ãûº>’¾/ÂÎÑ1úM¿·@`·vt½´3¾Awòa<Åí6Àõ¥ÜÝJ;mWÒB¶Ö'˜Ò›|]…>»¨ÆYÅÏ Ç«‡ð‹&¿´ò1¿¸îlt«Ô—ßý¶$î¨j»ŠÑÎÈã$²ël×J,ÑÇLˆ;àªiL-Å;½ŸÖîb.B!„B ØÖðô1‹†Xd“"L*-Ô$G¢ÞÕ=ªÊ\†p9‡?è×–C¿NÞäÈU1À²]DîëÒãcÜ/6ØL:ÉGòæwzÌ–ÅñOÇâE¼M­AþK¬ÿf½$“ ¹#më¿E:eçH©}ÚØýkÕÕëmô¨G@§GÆÊ£jÙY"ç`¹÷í¿þu`ˆë¾]ú“D^¿=Gt2Ç ¶íËLü[/Èê‚{9„7_"T®Ÿ4²œÆS åWiÿMý¢É/uÎáÉÿ.³E“çVÉ¿P7»o,/%Ÿ!h3–pÇXg1uÍØO~I²?€^ h.B!„BÚÁ½Ä°î›Ðéà+}£Ûz¡&ÄȹÅyd$Æï±­²è“+CŒ÷[ÚO£îå«“Cw‰¼ècàoP듞UËšMNÉzìgÒ7üûi^eß®+‘óX×Û®ÿ·Õ‹t¤¢mý/I—Û9baŸvwÿšêvIoÒoT²Ïº›îOy{^!Vðm»ª¦o[w¶m*]‚ÓZ 3Éÿ\u²-¢lÔls×¶K„±ÜJ¸{ßÿ Žo‹#‡µ‡Õ}ö¾}*ùsc·|v±®LõD*Gíø¾jŒÕ0¦­cc«²lª±• Ý1î† ¼¾×øØ’þªs¥þ‰qØ!â0ã³Õû‹ì£óçš8L«cS¾&Ò—ë°B|_7ƪ»”ù#›úœ/›^%~¦BLæŽo€ÉdçŸËú+é¥+÷rÜÞ&}‹Ë!°\bg§Šýng¼Æ ûG†»c¬u‹hÒÉø~QþÒ’.½É×Õì³Q7~¶©ÏMÇa‡ô‹E¶P_Ò«óÜ2[[èfwÒÍpåÔß•[*ûn·ñî¤i1kÉ{‡KÌuŸM9&âññQüûþEÈüó¿‚B!„r¨ñ¹¿§1½éïÍ›7âíÛ·’,@ž"é—ÀK®ïþüUÁõ•Ÿý¿'g"¡–AÍçéÞ•ð³k¾X‰2™ôeˆO‘EŸ¯Iõ~£¼RÙe=íiZ+»¡¬Q ʨê|%ü,OÓ¿T_𨩤cv€8Ìôlõ~£}Šü¿EgÈר+‹8Æ*¾9DŒ%̾ÓÃÚÔOƒMe3Ö'“Ÿ)‰É4~T¬ü¼Ÿ5ôE+_m—Òså}ú$>|ø ¾ÿþ{ñóÏ?‹_~ù%÷÷øø˜ýWþûøñ£øõ×_Å?þ(Þ¼y“]wÌþö_øý?ýc¶0ü/ÿ6ÅŸþ0æ¦B!„BN5>ÿ?ÿ5‹ß?~üXxï‡ðêÕ+|÷ÝwŸµÞ½{÷¬eG»oÕ}!¸éýäeÖ+ê…òQ¾/§]¥áhw”a‹Î‡ö |ŒÃ!'E_OÑ»îÚ>1¦»Œ1viš/Š–ëÔ»wïðí·ßâ§Ÿ~ÂW_}…¯¿þ¿ùMþgÇq „€ã8{×ÇÁ§OŸðÃ?à›o¾À#  !„B!D7«€å\ù†Õ³ÞO!„Xzœ‘“Mü9ÀŠ+^„qã0BèëöÙLÐq8£v>FO{pœ&Ú‡œ&_Q„B!„¢ÒÇLôx?!„béqfbF=ÆaŒÃ¡¯3⎱ížxëŽ×m¹L!„BÈ»wïXBX¯^Œ^(åc;b9Xï)!„Bôp˜B!„/~˜Ö«—¢ÊGùØŽXÖ{ÊG!„¼¤ñWÛðÀ„B!„B!„B!„òBà0!„B!„B!„B!„¼¸L!„B!EÄSôzSÄǺŸB}ÐK/g8‚ã8p£v!ŒÃa¿wù?ã´ähâi/ñ]=LÛVÌçæO¡Þ¼µ€ !„B!­ ´z{#ß#yÀ'¼séCŒ²ë#X×jç¥ÈTR†ø~ /ášò5Ê¡Üo%oÙ„„*{U½iÊž©ÀS:8/²gÑćIÎc]¯]ÙíêŽQ/Š­³ßlåÔ§{š|Rê‘Ik»U˜ØÑÕmÃu£¼mM2©yËe”ì•Ó“jWíd•¹ý´®¿p”oñ½´%}N aÚKò—dPí–³³I{öhZßL6°½^ÐÖ }iT¿m|ËÅA$ „À¬Oµ!˜3ø'Æa‡ÃlŸ­·O%ªÕ±Á2ø×ÒñÀAb¬²˜ÖÖ‡ÛÚ¸bLVY×ùú»nÓ¯>×¢[*¿RïìÆGÀ  1ëWŸ56wÇk!ðªÆ{eýÅ3ûE¹¾œâB?c‰Úp˜B!„RŸpçX‰Ý@k=v¥qZŽs¹œ>z@wµK+Ä ÝÉvk@r= ¶¸°Y ª‘—V¦‚2$ÁðÒ5çkC½ß˜.\fù !ØÞj'³t²WÑ›¶ìÒ$Í-|x…ãnõþÓ«†É [¬º˜\™—õrëz½yÛºS¦?K/Äc7Æ´÷$§XÚ sºÝä“ÈþV>à¿2Èao7kLuÛp]/o§½~)ÜËé9±¡d/!VXZ½PÔ~v¢u${ˆºПaÕàu"\øzw»†ô­âb¼Qõ ñ´‡Îb(éu…î¤c·P*Û#bÑ©÷2†ÉU®û„?@šT§1Öë1 5¿Ç]œQíGFõOŒÃ‡Y>ÛdkZ¨cÝ uªI_u ®‘—N¦¢2ìòëâÌ-ÈW+‡zAºÜõýÀu_ö™äÝ‚EöÀn²ëö<Âúú\¾h}FçÜð›IÎc]o0IT©î”éE¶ù“œèàoÕMOq;÷q3þÖNŽRù,°ªÛjÛPå=ô4SŒûöìÕŸ•ØÏ¶þ7Bnó}Ì¥õ¯low»hó:Ò§?`OÝú³<ñÖÇ, €Å}ÅÉÏ3t[lƒÕ®›û«¶| ˜v©;­Oi玼¼7Åtä(Ç3†u&Ø`Ž‹TöJ»¤šèRÝÍ—ü¿n÷WNþô¾¼î9‡;þóÔaÖ<3=[s¿M6ùÓÊ}œÿn28PŒ¥i+øp{WÉ܆º>ÇõM“×a‰_HëLŒéÕ›ÍÇAïæ&¿»3ëä…0]¿«í÷RÕŒvÏûï|ƒ!°¸ßUØðõÝá0g§°OÍÙ«M_äë¬ûl›öcŠŸmãõ í·©_TËOÑë0ê¥y=èR¬Û²úRô\KÛUÕMv̓õxw‚Ck±„‹ñz€e[ñÒ)Ç`à0!„B!¤6!–ó &§Þ·vâ{,0Ä¥:'âž¡kP·žWIÂ%æþ`òÉ”¯*‡éþ=y¥A®¨¹QCoñ´‡+ÜÕÜíæb¼¾ÁCª»ÎÃ;‹·ÅMrëzëõ¿L/ÉÄDî8¿-Þg3œ{òÿË”§Ûí½Fß(GM»5m‹†ëOò¶H2•›ˆ‰ï±ØœâÃ>~R'ÔÔã¦;ÁÕÕÝUÚ/¤?ñ{l½–úêp‰¹wŽÎ)¨>“¿¡/{FŸ;êL²bO;Ñò×÷¢B;móaîžò1¿"N^&ðÒâë3¼Ö–³mûqãϱ UbÔyÀ¼k=Ýa˜ÉŸ´ÇÍçw©œh~šÂÑÑù'Æa‡ŒÃª=»Ø>fZÖÇ•Ø}OWjúCô¡Õc¬f1mW‰ÉêêZfXáBÑ­©¿r1¾{êW×·½Lîø~®¤ï‹ð€stŒþEÓïíØm†]#]/íŒoмFOq» p})w·ÒNÛ•´­õ ¦ô&_W¡Ï.ªq¥ñs•xýý¢É/­|Ì/®€;Ý*õåw¿-‰;ªÚ®bë9pœDvíZ‰%ú˜ q\5Š©O?ã0!„B!¤ÒQfQ€í…íNäÓVžšæe.C¸œÃôkË¡¿_'oräª`ÙÆ."wŒuéñ1îl&d‚#yó;=fËâøÇ§cñ"Þ¦Ö ÿ%Ö³^’ɆÜ1}Ì¢!Ù$gíB¥E:e§‰IŽÃÙÍÔ ×µûW=:=2îTUËÎ9˽ï7ö¯C\÷íÒŸ$ò‚üí9¢“9V° _öŒÄï±õ‚¬.¸—Cxó%BåúI#Ëi:}ÀTÎC´½y².·®ûÉ’O‹4;ߘ,ø¨z–^Œp/‡ðZ}ÉèÙ{"bvØ8¬àÙ{÷—اԟšt\fwUW¦ô‡èC«ÄX1í¡ÚKجº®5OMO‘ûKS¥È;ðw‹•ÑCƒësl—áîþîÜ¢~Wí÷6t:¸Ù[˜K^PëLнÙ÷²’s Ý)oò ºô&_W¥Ï6úW›øÙ6^¯Øþ›úE“_êœÃ“ÿ]f‹&Ï­’¡nvßX^J>CÐf,ᎱÎbêýÖgƒq˜B!„Òî%†VoB‡9·8 »ø=¶Ö 5m楖!Æû­í§I÷òÕÉ¡»¿D^ô1ð7¨õIϪeÍ&¥7–½À~q&}ÿŸæUöíº9u½íúÿw[½HÇü¥“™ r–¤Ëí41Ùçï5íV»-šëüAvÿís†îfûSޞןAˆ|ÛÅ®ªéÛÖm›Jä£à´ÈLò[û²!zÀ†HÍ6w`»DˆË­´ënï;âŸÁñà­R~ä/ã°6â°ºÏÞ·O%jìãöÏ.Ö•¡ž¢-±Æ´ul\%&CS]?ÅwÃ^ßk|lIÕ9¢Ëí9:î%†Û%ÂèÝAÅÞÍ °2œÌпàA:&9‰G{雺e;´‚¤{ IDAT$Mé‹|]Ã>Û*~Ž+Äë§JU[<{þ»—$Ëgü¬Bº`½ÔóõŸA Æ`B!„BHMvozߦ£3›#Vã)z{»|Òcãû6ݳò ›Vò*(Cî¶‚|µr`ÿ7Cºx:’¸!–sÃd§Av³L Î6÷»gèn&È6æt'_Ì$ç±®¸þÿC^ÂÑÓÑ}Úö²û†—’uo£+é’´¹&&ûÉ×hòD× ×uò>Cu“N^Ÿáh„P³ÀÙ~})Ð<‰Z¶€P5}²I­Dw¹ãmwGÞax ×Vîëpákwmq_QÉ—¥MÇ÷ lüúýüS¹¡ræa¸n±-±MûSµï´mÊ•ó(õOŒÃ‡Ÿ­Þ_d?ÕÄaZ›ò5éT›þ}h«VìRælê³EL†º6õZã`2Ùùç²þJzéʽ··I_çâr,—ØÕ·Šýng¼Æ ûÇX»c¬u‹hÒi ñý¢|ÁL—ÞäëjöÙ¨?»%6¯:Ž:–_,²…ú’^ç–ÙÚB7»“nî€+§Þ®\+Ùw»w'M ˆYMïý9Ä`âññQüûþEÈüó¿‚B!„r¨ñ¹¿§1½éïÍ›7âíÛ·’,@ž"é—ÀK®ïþüÕþ5 "!ÄJøÙ5_¬4ORËP'/L¦2D—ä—¢Ï×$‡z¿QÞ•¯‘I£i­ì†²Fð,ì¡<@x^ ¢*÷Gð ±/§{“MŽuÝ\¯Œ5½BÝ)Ö‹ÆRðòJÏëÑ”.‘#ÍV޼«ê¥¬ èÛ¨AÞ åSt¬k×¹ßR#¨÷¥mÁ¶ýÔÖŸ\‡4öÛ¥Mú¦ú˵™ }ˆI{ò§ùË­“Ïôüj×M}‚Ù—5¡ß»×7käWüˆZZŽT~µ.¨åR+é»[+Çž¿2ÔçBU¯„Ÿåiú÷êK;•ôqŒÃ‡™ž­Þo´O‘ÿ·èã ùuU"GeßÑfŒ%̾ÓÃÚÔOƒÅdº6Æɳµ~!ß­|µ]Jú’ó0õ»Eýv¢ïÜ—OI›Ê@x¾_ê´é‹|MŸ]SYÇÏ…6W먦nª:nêmï·Ñ­\_d›V|n©­Mº1²¾œG+±D$¯½ØÂƒUÞ¾}+>}ú$>|ø ¾ÿþ{ñóÏ?‹_~ù%÷÷øø˜ýWþûøñ£øõ×_Å?þ(Þ¼y“]wÌþö_øý?ýc¶0ü/ÿ6ÅŸþ0æ¦B!„BN5>ÿ?ÿ5‹ß?~üXxï‡ðêÕ+|÷ÝwŸµÞ½{÷¬eG»oÕ}!¸éýäeÖ+ê…òQ¾/§]¥áhw”a‹Î‡ö |ŒÃ!'E_OÑ»îÚ>1¦»Œ1viÖËú1Ø»wïðí·ßâ§Ÿ~ÂW_}…¯¿þ¿ùMþgÇq „€ã8{×ÇÁ§OŸðÃ?à›o¾À#  !„B!D7zÃr®|ÃêYï'„B,=ÎÈÉ&þœ `Å/Â8Œq!ôuûl&è8œQ;£ˆ§=8N“ íÃzyš1ØW4!„B!„¨ô1ý#ÞO!„Xzœ™€˜Q„qã0Bè댸c¬E»'Þºã5Ñe½<ጠÀ„B!„|!¼{÷Že „õêÅè…òQ>¶#–ƒõžòB!D€ !„BùBà7€ a½z)z¡|”íˆå`½§|„BÈKµ ¿L!„B!„B!„B!/.B!„B!„B!„BÈ À„B!„RD—WˆQv}„ý±ŸæeˆïÀð®)ß’2e÷[É[6!¡Ê^VVXë79pJu_dÏ¢‰“œÇº^»²ÛÕ£^[g¿ÙÊ©O÷4ù¤Ô#“Öv«0±£«ÛV×[ž0Sž¹÷ É^9=©vÕNVU蟚ê/åÛc!žöÐY %½®ÐtìJe{DC,:õ^Æ0Ù ÊucŸPâH“ê4Æz=F¡Fã÷Ø¢‹3ªýȨþ‰qØÁã0Ëg›ì£÷ÿJñºÖî…:Õ¤7åoÙ·¶cécZ[Þ†?)«yù,c"ÏGwq…“}7ÉóáËu7žâvëÁ;ñ¯rül¯—øÃ(€çˆÄ ýSõ‹6~ûù&v/^´KĘöÚx1øó€ À„B!„úC²åA¤ÀºãunПIoãvp/B›WˆåÜÇ ¹î^ámßgƒsÝ3ŠÊ°Ë¯‹3· ß‚2=Ý_.w=ÂÃF?pÝ—½@&y·`‰~ãi·çÖ×çòEëû3:ç†ßLrëzƒI¢Ju§L/²ÍŸäDó€¨nºxŠÛ¹›ñ·vr”ÊW·-–µŸoEŒûöìÕŸ•دnÿT ¹Í÷1K”Ö¿°½Ýí¢ÝÙÔ-LÀž»õgyâ­Y‹ûŠ“Ÿgè¶Ø«]7÷ Vmù0íRwZŸÒÎy7xoŠéÈQŽg 1êL°Á©ì•vI5Ñ¥ºk/ùÝüé}xÝswüç©Ã8¬yfz¶æ~›:÷ãËx½ÊxÀö¹mÅXÚ˜¶‚oîOŠë¿I¾ò˜è×7]L^‡%~!­31¦Wl6t½››üîά“Âtý®¶ßKU0Ú=ï¿wò †Àâ~WÒðõÝá0g§°OÍÙ«M_äë¬ûl›öcŠŸmãõ í·©_TËOÑë0ê¥y=èR¬Û²úRô\KÛUÕMv̓õxw‚Ck±„‹ñz€eKñR®Ì'¸ë À„B!„š„XÎ7˜tœzßÚ‰ï±À—m¼^lÊË=C×48·)C¸ÄÜìO>™òUå0Ý¿'¯4È5!J˪°^á®æn7ãõ RÝuÞY¼-n’óX×[¯ÿezI&&rÇùmñ>›-èàÜ“ÿ_¦<Ýn§è5úF9jÚ­i[Ì®øùL`å&câ{,6§¸Ã°ŸÔ µuǸéNpuµ@w•ö éEü[¯Nÿªk6K̽stNAõ™ü }Ù3úÜQg’íÊ{ÚY–¿~¸Úi›ƒt÷”ùíqò2—î_Ÿáµ¶œmÛŒŽe¨úë£Înä]ë鎼Lþ¤=n¶8¿KåDû§<;:ÿÄ8ìqXµgÛçÉÿW×Kì¾§+5½)ÿ&}kõ«YLÛ–?1_×ËW!&êϰ…¢CSåb|÷Ô¯®o{OrÜ/Ðõ‘ô}pŽŽÑ¿hú½Ý»Í°k¤ë¥ñ º“×ã)n·®/åîVÚi»’²µ>Á”Þäë*ôÙE5®4~®¯?£_4ù¥•ùÅpg£[¥¾üî·%qGUÛUŒvF'‘]g»Vb‰>fB@ÜWMbêxŠ«I7;©`Õms¬Ù\&„B!„4@:. °½°Ý©“cÚÊÂOÓ¼Ìe—søƒ~m9ô÷ëäMŽ\,ÛØE䎱.=¾1ÆýbƒÍ¤“Lp$o~§ÇlYÿøtÌ]„ÀÛÔä¿ÄúoÖK2Ù;R±Y4Ä"›äì`¢]¨´H§ìþ1Éq8»™ÚbþúÁëztzdÜ©,<ª–%r–{ßoì_†¸îÛ¥?IäùÛsD's¬`¾ì‰ßcëY]p/‡ðæK„Êõ“F–Ó´ÓÍTÎC´½y².·®ûÉ’O \;ߘLèªz–^Œp/‡ð6§7ñ[AÿÄ8ì°qXÁ³÷î/±OÁîßb—Ù]Õ•)½)ÿ&}k•« ¦=Ü(ßÿU!&ÊN‘ûKS¥´ï¿[¬Œº\Ÿc» w÷wÏàõ»j¿·™ ÓyÀÍÞÂ\ò‚Zg‚îÒÈ;1/æ@º+ÚätéM¾®JŸm4Mül¯WlÿMý¢É/uÎáÉÿ.³E“çVÉ¿P7»o,/%Ÿ!h3–pÇXg1uØÏ=Cs\$÷Úž,ôœp˜B!„Òî%†VoB‡9·8l'Æä¿Ç¶Ê¢O® 1Þo=è>¥¶Ÿ¯NÝýeeïcàoP듞UËšM8JoÒ{ýâLú†?Í«ìÛu%rëzÛõÿï¶z‘ŽTL'2;ä,I—Ûýc²ÏßkÚ­v[T®Ç‡z¾ÅÍfûSޞןAˆ|ÛÅ®ªéÛÖm›Jä£à´ÈLò[û²!zÀ†HÍ6w`»DˆË­´Ãqï;âŸÁñà­R~ä/ã°6â°ºÏÞ·y÷o•x}ÿøìb]ê‰)ÿ&}kiŒÕ0¦=”?É®ä»þï*1‘;ÆÝp×÷[Ò_u·(Är{ŽŽ{‰áv‰0z@wP±wó¬ '3ô¯xŽINâÑ^Gú¦nÙ)¦ôE¾®aŸm?ÇâõS¥ª-ž=ÿÝ &ƒå3~V!]°^júúô¥˜äHiçô^ ä0!„B!¤&»7½oÓљͫñ½¶µyídJtŒïØtÏ & Ê;ò® _S™Ô#ó éâéHà†XÎ “ÙÍ258ÛÜïž¡»™ Û¨Óü}1“œÇº~àúÿz GOG÷iÛËî\^JvÔM$(é’´¹Ý?&ûÉ×j[4\wð|K{]À¤“×g8!Ô,p¶__ t'O¢–- TMß„l²5Ñ]îxÛݱ€^µ՟;Æz…l—ı|–©¯¨äËŽÒvâû6þýþþ©¿ÜÐF9ó0\·XŽ–Ø¦ý©ÚGÙ6åƒÊù ”ú'Æa‡ˆÃŒÏVï/²n÷¯&ÓêØ”¯I§Úô¦ü›ô­5b¬Z±K]ÔRìY#&rÇ7Àd²óÏeý•ôÒ•{9no“¾ÎÅåX.±«oûÝÎx.ö wÇXëѤÓâûEùKKºô&_W³ÏFÕøÙ-‰Ã«Ž£Žå‹l¡¾¤Wç¹e¶¶ÐÍ;àªÁ‚j©ì»ÝÆ»“¦Ĭ_»þŒ¦1v Á‚S|ðññQ<>>ŠÿÏ¿™þ×@B!„BN5>—ã÷4¦7ý½yóF¼}ûö@’E"ð ÀA$ýxÉõÝŸ¿Ú¿@xÉMºô2jÌy­„Ÿ]óÅJËd*Cx™l;ôùšäPï7Ê»ò Ë],»¡¬Q < {(žˆ¨ÊýQ Ĥ¿=ùÓ|ŠåÖÉgz~µë¦>Áì˚ЊïÝë›5ò+~D­¿G-G*¿ZÔr©¿•ôÝ­•cÏ_ês¡ŒªÎWÂÏò4ýû@õ¥‰Jú8ÆaˆÃLÏVï7Ú§Èÿ[ôq†|íü÷¾û}¨]ßÚJŒ%̾ÓÃÚÔϪþ¤<ö4÷ëšòhü¨Xùy?kè‹V¾Ú.¥üå·ÔÖ&ÝY _Σ•X"×Vl!·w¹^Ô>}ú$>|ø ¾ÿþ{ñóÏ?‹_~ù%÷÷øø˜ýWþûøñ£øõ×_Å?þ(Þ¼y“]wÌþö_øý?ýc¶0ü/ÿ6ÅŸþ0æ¦B!„BN5>ÿ?ÿ5‹ß?~üXxï‡ðêÕ+|÷ÝwŸµÞ½{÷¬eG»oÕ}!¸éýäeÖ+ê…òQ¾/§]¥áhw”a‹Î‡ö |ŒÃ!'E_OÑ»îZ?<Æt—q Ÿ7"_úøëÛo¿ÅO?ý„¯¾ú _ý5~ó›ü!ÎŽã@Çqö®;ŽƒOŸ>á‡~À7ß|€G@B!„BˆnV˹ò «g½ŸB±ô8#'›øs.€W¼ã0Æa„Ð×í³™ ã8pFí|Œ"žöà8L6´9M¾¢ !„B!D¥™èñ~B!ÄÒãÌÄŒz ŒÃ‡B_gÄc-Ú=ñÖ¯!xˆ.9a¸L!„BÈ»wïXBX¯^Œ^(åc;b9Xï)!„Bôp˜B!„/~˜Ö«—¢ÊGùØŽXÖ{ÊG!„¼¤ñWÛðÀ„B!„B!„B!„òBà0!„B!„B!„B!„¼¸L!„B!EÄSôzSÄǺŸB}ÐK/g8‚ã8p£v!ŒÃa¿wù?ã´ähâi/ñ]=LÛVÌçæO¡Þ<·Î>ƒ6Á`B!„BHk­ÞÞÈ7ÄHÉo9½éºí >wOˆQv}„ý±Ÿ"SIâû0¼„kÊ·Döì~+yË&$TÙËÊjQöLœÒl‘=‹&>LrëzíÊnWwŒzQlýf+§>ÝÓä“R¬ähA/•ÛuÛv1˲WvÉ^9=©vÕNè˜ÛOëú GùöOÑKËQ§¿¬&¦½$IµžåìlÒßž=šNšl`{½ îú2Ò¨~Ûø–‹-‚H@YŸj;B0gðOŒÃ‡Ù>[o£ÿ·Ž× v·Õ•µ6þ³iŒUÓÚúðü‰N“ÜeåI~ÏÕk›~õ¹¦Rù•zg7®8^€HˆY¿•øÙ¯!D„À«ï•õÏìåúrŠ‹šŒ%jÃ`B!„BH}œ `%v­õØ•Æi=8ÎærúèÝÕ.­+t'W»Aµéz†{ÂÑ\‚-.¤ ­LeHƒá¥kηDöô~cºp™å+D„`{«-»Nö¢²ÚÜ/OÒ܇W8îVï1½Z`˜ ²Åª‹É•iqY/ç±®×›w°­;ezñ³ôB¬1vcL{OrŠp¡à0§ÛM>‰ìoåÞù+ƒ¶Ï«@¥v}€ç«¤“{9='6”ì%„À K«è¢öÓ°Ũ#ÙI¬Ð}ˆ€þ «î¯áÂ× ¸ÃØ5¤oãµ€ˆ‚¬Oˆ§=tCI¯+t'»…RÙÑ‹N½E“ ª\7ö %~€4©Nc¬×cj4~íÿÏÞÛó¸nd{¿Ûo6¡dhèPÁM&Qw¢HiOD'‘€ApOr¦3gú @g ó<@“(RÒb2É ¤/°…†w“Áv`؆áÞŽ6p‚ºHv‘ª"‹/zÙíÿhØ›*W­ZUkU«ˆΨö#“÷OŒÃö‡>[W?jÿïTŠ×•õ^¨Ójr˜øÏöb,uLkêÃ[ñ'J9"}LfK»:ó+œì»I®O¶Ýh‚Û ÷Ä{¼ƒÇÏö«Ð‡ëúŽSõ‹&~ûp“ Û/Z%"Lº-¿€zÂp˜B!„RH¶ØÀÕX{´Ê, zSém\çnÉõ"”÷XÌ<ôãëöåîæ)œ«d**Ã6¿Îì‚| eOî7-{ˆÇµzàº+{LònÁ¢úÀvRëö<Äêú\¾h|Šs®ùM'ç±®7˜$ªd;ez‘ëüENôúðÖ릋&¸y¸}¥‘Ãôy¨Ô®÷ð|#"<̱S_½iIý™Ú#ä6ßÃ4VZïÚÇæv»‹v[§vaú=öôØ®?Ëo=LC˜?TœüÛÄn[ˆŸMÛoS¿˜/c4A·;İ›äõr¢K±nËì¥è¹†uWU7éi4 ôW£í ­Å6F«>Ö‰îRo.B!„Bj`1[cìXõ¾µ=`Ž.mÃëuò²ÏÐ)\\*)C°ÀÌëïN>éòÍË¡»G^i+j.B”–U5ïÐÅîkîv³1ZÝà1Ñ3ÇàÞàmqœÇºÞºý—é%ž˜Èç·ÁS:ûààÜ•ÿ-Sžn»Sô½B9LŸW£v½Çç@<•™ Œ0_ŸâÃú^lùÔá¦3ÆÕÕeÒ/¤ßÑ6nþUÕl˜¹çpNAõ©ü }Ù}îЧ»ò^vœe¯ïïE…vÚæc?Ù=åav;A¿Là&;ÅWg¸S–³íúáÆ›aäýu€¡óˆy×z²#/•?në Îï9¡=ãÓA埇í3«öìâúyñÿUãõ’zßÑU]9öc5‹iÛò':9trWˆ¥{S,q‘«;]ectÿÒ¯®n»/ò=ÌÑñ÷}!qGë_ýÞvífØ’õRgtƒÎøA4ÁíÆÇõ¥ÜÝJ;m—ÒB¶Ò'èÒë|]…>»ÈâŽ?7õ‹:¿´ô0»¸îMt›³—ßý¦$î¨Zw[ÿЂeŲ«ê®•X¢‡©÷ÀÕ!cê#À`B!„BH¤càB› Ó:ñ1¦;“ºëuòj^†`1ƒ×ïÕ–C}¿JÞøÈUÑÇ¢]Dö«Òã#<Ì×Xx‚#~ó;9fËàøÇ—ãïBøîºÖ ÿ5Ú¿^/ñdCæHŦáót’ÓÁX¹Pi.·ëF-‡éóê`Ò®÷ùü˜üÐÉ‘q§²ð˜¯Ùi,g±óÝÄÞµ`€ëžYú“D^¿=Gx2Ç ¶áËHô„ë§¶`_àÎr×OYNÝN7]9÷Ñöúfñ p°ØÀ¿îÅGH¾,pm}c¼¨—׳ôb„}9€{Ó öÖ)üã°ýÆaÏÞ¹¿¤~ vÿ븬Þóºj*Ǿb¬‚˜ö°µVŽÿ£‰ «ÄÒéÉ r©ë¯rí»ïm+ÃÇú×çØ,‚íý3ØEýn¾ß[á8¸ÙY˜‹_PsÆèÜäúy'æÅ HvKë|‚*½Î×Ué³µÕÖrü\¥ý7õ‹:¿äœÃ•ÿ¿¬.š<·Jþ…ºÙ~cyÑ/ù A›±„=Â*©_ç±Ð\&„B!„´ƒ}‰Ñ›Ð†Ö-ÎÃüÀNw½N^òà¯Â¢O¦ ž6.TŸRÛÍW%‡êþ²2öÐ÷Ö¨õIϪeM'¥7é]ß|q&yÿ—äUöíº9u½mûÿ—©^¤#“ɇ´4r–¤Ëìº)ªÓçU¢B»ÞËóËêç õ§¼=¯7…Kx¦‹]UÓ·­;Ó6•,ȇþi-éä7öe'Bøˆ5#šmîþfi‡ãÎwÄ?ãÁ[¥Ê‘¿ŒÃÚ‹3LŸ½[?•vÝjû¸Ý㳋uÕPŽVc¬†1mkþD#Ç=ðUrÿ«b,mp?˜ãîAácKú+çx ,6çpìK 6 á#:ýеåúXjNfè]ûp!“Ç£]Gú¦nÙ)ºôE¾®aŸ}ÜøùqOź8xþÛLú‹~V!Y°^ô_­¯ç0!„B!¤&Û7½o“љɫÑ]Õd’î:ªæµ•)9Ò1z˜cÝ9+˜ü)(CæÈ»‚|µeÊ™§IM†Ò7Àb¦™ìÔÈ®—©ÁÀÙä~û õéF…Œîäï‹éä<Öõ=Ûÿo ô _ŽîS¶—í7¸0¸”êQõ6z.]œ6³ë¦¨~Šò©m/uÚuKÏ7¬¯k;Y}Ã!ÅgûöR ;yµl¡jú&¤“­±î2ÇÛnÄà¶©þìVKàâh;,ŠûŠJ¾ìäÚtô0ÇÚë£×ëÃ;õ—Ú(ç~†ËÁ‹á›¤Ê÷¦My¯r€RÿÄ8lq˜öÙùû‹êGµëV‡)u¬ËW§Óªr2ƪ»ÔõGí\“Õ(=ºÆã­.믤—®ìËp{÷u6.Àb­½UìwÑ K\ìn°R-¢I§%Dóò—–Téu¾®fŸ}ÆÏMÇaûô‹Eu‘I¯ÎsËêÚ@7Û“nî+«þ®ÜRÙ·»·'M ˆé+~ÍëùùY IDAT“˜^÷÷öí[ñí·ßîI²Pø.¸Â¥_|7¾¾ýó–»××µ×eòeÐß³^zÍKQ,“® ¡ïædPç[T&ù~­¼KO!“BÓJÙ5e }áÔGîÂu}V¹?ô… Eý‡¾p3º×Õɱ®ëíJkél§X/Š:lÀÍ*=«G]ºXŽ|›Ñʡͧº^ÊÚ@™Íëž_†V¾œŽUí:ó[R ùû’¶`Ú~jëO¶¡Ý~4Ó.MÒ7Õ_¦ÍTèCtúÛ‘?ɧXn•|ºçW»®ëô¾¬ ­øÞ¾Y!Îäí÷¨åHäÏÛB¾\ùßJúîÖʱã¯4ö\(c^çKá¥yêþOöÒ¤žJú8Æa{ˆÃtÏÎ߯­Ÿ"ÿoÐÇiòÕꪪ†þ³•Kè}§>†5±ÏªþĤÿ®P…K/ëg5}ÑÒË·Ë\,XÖïõÛqùÝo¾Ù•/—6‘€p=¯Ô'(Óù:“>» ¦j?‡Âwóuª©KYÇMý¢éý&º•íE®ÓŠÏ-­kn´,…'çÑJ, ßm)¶ØiÕ}ÞÏ~üøQ¼ÿ^|÷Ýwâ§Ÿ~?ÿüsæïùù9ý¯ü÷áÃñË/¿ˆ~øA¼}û6½n=?? ˜þãŸøÃïÿ-]þó_&øÓGÜÔ@!„BÈ Ïÿú·¿§ñû‡ ï}ÿþ=>ÿüs|ýõן´Þ½{wÐ2Ãí7ˆê¾Üô~ò:íŠz¡|”ï×Ó.RŽ`¸=ʰEçÃú |ŒÃ!'E_Mнî[?<Âd›1F6«†4ó³_}õ~üñG¼yó_|ñ>û,{ˆ³eYBÀ²¬ë–eáãÇøþûïñå—_àЄB!„¢šUÀb–û†ÕAï'„B =ÎÐJ'þ¬ `É/Â8Œq!ôu»¬Çp, Ö°QD“.,ËÁxÍú!§Éª€B!„Bòô0½#ÞO!„zœ©€˜R„qã0Bèë´Ø#¬D»'ÞÚ£Ñ%' € !„Bù•ðîÝ;–ÚÕ«Ñ å£|lG,ížòB!D € !„Bù•ÀoB»z-z¡|”íˆå ÝS>B!ä5¿Ú†ß&„B!„B!„B!„W€ !„B!„B!„B!ä•À`B!„B)"š Û :Öý„Bèƒ^{9ƒ!,Ë‚eY¬Â8Œö{{?ö3VKŽ&štcßÕŤmÅ|j~ñìæµè¬E¸L!„Bim ÕÝùÊ>yàI`(]7”å5ÄnN9™JÊ=ÌÁ%l]¾Z9r÷·Rö¼ìee5({ª Vé༨>‹&>trëzmc7³­^ruþf*§:ÝËäSÎŽŒähA/•m»ízÑ˲Sv©¾2zÊ׫r²Jß~Z×_0̶Çh‚nRŽ’>§0éÆùK2äí,cï:ýíÔGÓ R]˜^/°½B_FÙ·‰o¹ØÀ„˜ö¨¶#sÿÄ8l¿q˜é³Õõ£õÿÆñº¦ÞMuUÇ4ÑmÕ«,¦5õá ýIUùÊÒÇ¿gìÚ¤_=Ô¢["®nÍÆGÀõ 1íµ?Û£„á»Uã½²þâÀ~Q¶—S\èg,Q.B!„Bê a]K±h­F¶4Në².0“Ó‡è,·i…X¢3¾Úªƒ^áonË'5yË4¯ÐßàBšPÊTP†ø1\Úú|ueÊÝß´ì*Ù‹Êjr¿¯•l»Ýz1'ÂÃ;õÕ›–ÔŸ©ý7Bnó=Lc¥õ®}ln·»h·uj¦ßcOíú³<ñÖÃ4ôùCÅÉÏ3tZlƒÕ®ëmϨ-ŸºÝCùÖ§´sGÞ Þ`2´rÇ3:c¬1ÃE"{¥]RMt™ß©ÿ[µû+#rß#îºÖþŽÿ¼ RG¾ò˜ñ×7Œï‚¿ØL„ÉÕëõŽe¡{s“ÝÝ™öaÒB˜ªßUö{‰ †ÛçýÏV¾þ˜?l5ÜÑ 2å¶ ûÔ쑽ÊôE¾Î¸Ï6i?-ÄÏ¦í·©_Ì—1š ÛbØMòz9Ñ¥X·eöRô\ú«ª›ô4šú«Ñö‡Öb £U‹6â¥]œ \&„B!„Ô$Àb¶ÆØ©9à‰0Ç—¶b '*NÄï䕌ïÎÐ)\Ü*)C°ÀÌëïÊ¢Ë7/‡îþ6Ën\VÕ˜µ‹+Ü×Üífc´ºÁc¢;gŽÁ½ÁÛâ:9u½uû/ÓK<1‘9Îoƒ§töÁÁ¹+ÿ[¦<Ýv§è5z…r˜>¯ÎDHEÛn½^ÄX™ Âèóõ)î0ì¡ïÅ6‘ï@ín:c\]ÍÑY&º+H¿/¢'lÜ:ý«ªÙ,0sÏᜂêSùú²úÜ¡3Nwå½ì8Ë^ßß‹ í´ÍÇ~²{ÊÃìv‚(~™ÀMvНÎp§,gÛõ?Â7Ã"ÈûëCç7ò®õdG^*Üלß'rB{ ƧƒÊ?1ÛgVíÙÅõóâÿ«Æë%õ¾£«ªqLÝV±šÅ´mù“ªòUˆ¥{S,q‘«;]ectÿÒ¯®n»©mFst<Ä}_ˆGœÃÑúE¿·@`»v…d½ÔÝ 3¾CMp»ñq})w·ÒNÛ¥´­ô ºô:_W¡Ï.²¸cÅÏMý¢Î/-=Ì.®€{Ýæìåw¿)‰;ªÖ]ÅhghÁ²bÙUu×J,ÑÃTˆ{àªiL­ÑÅ©À`B!„BH¤càB› Ó:ñ1¦™IŽøØQÑÇ¢Ò®U^í”!XÌàõ{µåPßßfÙuQ#¬JoŒð0_c=vâ ŽøÍïä˜-ƒã_Ž¿ á»ëZƒü×hÿz½Ä“ ™#{˜†ÌÓINcåB¥AºÜϫÃlÛ„üÐÉ‘q§²ð˜¯Ùi,g±óÄÞµ`€ëžYú“D^¿=Gx2Ç ¶áËHô„ë§¶`_àÎr×OYNÝN7]9÷Ñöúfñ p°ØÀ¿îÅGH¾,pm}c¼¨—׳ôb„}9€ÛöË,‡í‰þ‰qØ~ã°‚gïÜ_R?»‹u\Vïy]Õ‰cêê¶JŒUÓ¸%U•ïÿTˆ¥Ó“AäþR×_åÚwßÛ.V†ô¯Ï±YÛû;g°‹úÝ|¿·Ãqq³³0¿ æŒÑ¹ÉõòNÌ‹ì–ÖùUz¯«ÒgkýkËñs•ößÔ/êü’sWþÿ²ºhòÜ*ùêfûåE¿ä3mÆö«4¦®û™ÈsD¸L!„Biû£7¡ ­[œ‡º]}o ³ÏZ–ä=aSeÑ'S†OªO©íæ«’Cu›eoXÖtBNz“ÞõÍg’7ü{I^†ßnÖÉy¬ëmÛÿ¿Lõ"©˜L>¤õ ‘³$]f÷OQý˜>¯5m{ßõ’êî õ§¼=¯7…Kx¦‹]UÓ·­;ÓºKäCÿ´Ètòû²!|ÄšHÍ6w ³@€‹´Ãqç;âŸÀñà­Rvä/ã°vâ°ºÏÞ­ýîß*ñúîñÙźªÇ4ÐmiŒÕ0¦mËŸDå»þo•XÚá~0Ç݃ÂÇ–ôWÎ9ðXlÎáØ—lÂGtú{7×ÇRs2CïÚ‡ é˜ä8í:Ò7uËN©Ð¥/òu ûìãÆÏ‡Œ{*ÖÅÁóß¾`Ò_ð³ É‚õ¢ÿj}=€ !„B!5Ù¾é}›ŒÎLŽX&è*&“¢ÉPäXÌ4~¥ymeJŽtŒæXwÎ & Ê9ò® _M™vŽÌk³ì0‘©ÁÀÙä~û õéF…Œîäï‹éä<Öõ=Ûÿo ô _ŽîS¶—í7¸0¸”êQõ6z.]œ6³û§¨~Šò©m/¦¶½ïzÑ××µŒ¬>ƒábó`rEtåIÔ²„ªé›N¶ÆºËo»=ƒKئú³GX- ëX»k‹ûŠJ¾ìäÚtô0ÇÚë£×ëÃ;õ—Ú(ç~†ËÁ‹á›¤Ì÷¦My¯r€RÿÄ8lq˜öÙùû‹êGµûW‡)u¬ËW§ÓŠqLSÝVбjÅ.uý‘¦îíŠòÙÕËcn€ñxëŸËú+é¥+ûrÜÞÆ}˰X`[û]g´Â»G†Û#¬T‹hÒi Ñüü¥%Uz¯«ÙgcŸñsÓqØ>ýbQ]ä_Ò«óܲº6ÐÍö¤›{àʪ¿+·TöínãíIÓbúŠ_óz~~ÏÏÏâ?ÿë¿…Ì¿ÿ‡/!„B!§A>>—ã÷$¦×ý½}ûV|ûí·{’,¾ @®ðCé߯oÿ¼åî5ÂõC!–ÞNÚ<ù2hóKá¥×<±Å2éÊúnœ_‚:_ùû›”]/»¦¬¡/\ƒúÈ=@¸®/Â*÷‡¾p¡¨ÿÐnF÷º:9Öu½]i-½‚íëEQ’ ¸Y¥gõ¨KË‘½V ‡6Ÿêz©gÛåõR†V¾œŽUí:ó["Tþ¾¤-˜¶ŸÚú“mh·Í´K“ôMõ—©› }ˆN;ò'ùË­’O÷üj×u¶§÷eMhÅ÷îôÍ ùsm-o¿G-G"ÞòåÊÿÖ°0.ÇŽ¿ÒØs¡Œy/…—æ©ûÿ=ÙK“zbvø8L÷ìüýÚú)òÿ}œ&_­®ªÆ1t[1Æzß©aMì³NÝW¯,½ÂŠ¥—õ³š¾héåÛe.,ëw‹úí¸üî7ßìÊ—K›È@¸žWê”é‹|IŸ]S5ŸCá»yÕÔ¥¬ã¦~Ñô~ÝÊö"×iÅç–ÖµN7Z–“óh%–…ï¶[”¶‘j±À·ß~+>~ü(Þ¿/¾ûî;ñÓO?‰Ÿþ9ó÷üüœþWþûðáƒøå—_Ä?ü Þ¾}›^·žŸŸLÿñOüá÷ÿ–. ÿù/üé#nj „B!äÈÇçýÛßÓøýÇ…÷¾ÿŸþ9¾þúëOZïÞ½;h‚áöDu_nz?yvE½P>Ê÷ëi—G)G0ÜeØ¢óa}P>Æa„“¢Ž¯‹&è^÷­ a²ÍØð»ß„èýìW_}…üoÞ¼Á_|Ï>ËâlY„°,kçºeYøøñ#¾ÿþ{|ùå—x4!„B!„¨f°˜å¾auÐû !„C3´Ò‰?ëXrÅ‹0cF}Ý.ë1Ë‚5lçcѤ Ër0^³~Èiò†* „B!„<=LEïˆ÷B!†g* ¦ÔaÆ8Œú:-ö+ÑöhÁCtÉ Ã`B!„B~%¼{÷Že „võjôBù(ÛËA»§|„BQÃ`B!„B~%ðÀ„Ю^‹^(åc;b9h÷”ByM㯶á7€ !„B!„B!„B!ä•À`B!„B!„B!„By%p˜B!„BŠˆ&èv'ˆŽu?!„ú ×^Î`˲`Y†ë…0#„ýÞäýŒÕ’£‰&ÝØwu1i[1Ÿš_<»9¶ÎN°p˜B!„ÒÚ@«»3ò 0”AòÀ[™†,““6¯Ãôú»c¿œL%eˆæÀà¶.ß’2¥÷É[6!‘—½¬¬e¯¤÷¢ú,šøÐÉy¬ëµÝÌv´zÉÕuú›©œêt/“O9;2’£½Ô¶m½=¶%ËNÙ¥úÊè)/‡rgòêô ³í1š ›”Ã m(&Ý8I†¼eì]§¿úh:Aª«Óë¶_èËH#û6ñ-ø¡€ÓÕv„`N㟇í73}¶º~´þß8^×Ô»©®Êâã8±«,¦5õá†þ¤TŽª¶¢ynüœŒ]›ô«‡ZˆJô³;ãñÜ¡q}„B@L{­ÄÏöh!BønÕx¯¬¿8°_”íåúKÔ† À„B!„úCXÀRlZ«‘-Óº°¬ Ìäôá#:ËmZ!–茯2&ÁÐÂ-<˜Œ¡uyà ¾ú\HJ™ Ê?ƒK[ŸoI™’ûµé‚Eš¯!üÍ­r2K%{QYM÷Ýû#L®æăl±ì`|¥[\VËy¬ëõæLm§L/^š^ˆFv„I÷EN±.”útÛÉ'‘þ-=À=ÿ\#‡éó*Pö‹ì±1Éä^FÏñ3¥úB`‰…Ñøþä 0t¤zKtC 7Ų3Æ],\p7ü{ŒlMúV±1Z ˆÐOû„hÒ…3Hz]¢3vÌJåú˜;õ^:ÐÕA•ëÚ>¡Ä&æ4Âj5B¡F£'lÐÁÕ~dòþ‰qØÞã0ÃgëêGíÿJñº²Þ ujǘljíÅXê˜ÖÔ‡›û“b9”é b¯Rù\ùNöÝ$׃'Ûn4ÁíÆ5ÏÕ=8~¶GX…>\×G(¦èª_4ñÛ‡›lؾÑj,aÒmãÅàO.B!„BêÉø¡zkV™@o*½ëà\ú1štq{bu}nöpe^3ýøº}9€»yJç*™ŠÊ°Í¯ƒ3» ß‚2½Ü_.s=ÄãZ=pÝ•½@&y·`Q}èô^áþç\ó›NÎc]o0ITÉvÊô"×ù‹œèõá­ÖMMp;óp3úJ#‡éó*PöKí©u"<̱S_½iIýáòÊm¾‡i¬´ÞµÍíví¶NíÂô{ìé±]–'Þz˜†>0¨8ùy†N‹m°Úu}Ÿ`Ô–OÝî¡üNëSÚ¹#ïïN0Z¹ã 1Ö˜á"‘½Ò.©&ºÌŸÿ[µû+#rß#îºÖþŽÿ1WÍ`B!„BHM,fkŒ«Þ·v¢Ì1Àe¼3ï ÷õw]IyeglÎÐ)\Ü*)C°ÀÌëïN>éòÍË¡»G^i+j.B”–U5^m¢w£Õ Ý9s î Þ×Éy¬ë­Û™^≉Ìq~<¥³Î]ùß2åé¶;E¯Ñ+”Ãôym´Ål»*ñVf‚0zÀ|}Š; {è{±Mä;P{„›ÎWWst–‰î Òï‹è ·Nÿªj6 ÌÜs8§ úTþ†¾ì€>wèŒÓ]y/» ³×ûbEõ¶ùØOvOy˜ÝNÅ/¸ÉNñÕî”ål»þG¸ñfXy`è<âFÞµžììKåÛãzƒóûDNhw7~:¨üã°}ÆaÕž]\?/þ¿j¼^Rï;º2cjƉ5c¬Æc‰½ÇÀ c¯ÞK\äêN×_ÙÝ¿ô««Ûnj›ÑÃqßâçp´þEÑïmØn†]!Y/uF7èŒïDÜn|\_ÊÝ­´Óv)-d+}‚.½Î×U賋,îXñsS¿¨óKK³‹+àÞD·9{ùÝoJ⎪uW1ÚZ°¬XvUݵKô0â¸jSŸ~ Æ`B!„BH¤càB› Ó:ñ1¦÷#؈ð0_c=v^Þœ]á¿‘+çÕn‚Å ^ßtpWõý*yã#WE‹6vÙ#¬Jo,лÑýòч!|w]kÿí_¯—x²!s¤bÓp€y:Éé`¬\¨4H—Ûý£–Ãôyu'AölÛ&ä€NŽŒ;•…Ç|ÍNc9û‹ï7ö®}\÷ÌÒŸ$ò‚üí9“9V° _v@¢'l\?µûrw¶@»~ÒÈrêvêʹ¶×÷0‹W€ƒÅþu/>BòekëãE½¼ž¥#ìËÜV_2:xO¤ðOMú~Æa&q”öÙ;÷—ÔOÁîßb—Õ{^WÕâ˜fqb•«éX¢FÄS©líÄ^éÉ r©ë¯rÏï{ÛÅÊð±ƒþõ96‹`{ç vQ¿›ï÷Öc8Î#nvæâÔœ1:7¹¾@Þ!y1’ò:Ÿ J¯óuUúl­m9~®Òþ›úE_rÎáÊÿ_VMž[%ÿBÝl¿±¼è—|† ÍXÂa•ÆÔ5b¿O ã0!„B!¤ìK ŒÞ„0´nq&»dâKzsÖõ  òy©e}2eˆð´q¡ú”Ún¾*9T÷—È‹úÞµ>éYµ¬ôO–l’¯ÑªìÛu%rëzÛöÿ/S½HG*&“i=hä,I—ÙýST?¦Ï«Äm»•ú9Cg=ÇÃ)oÏëM!ÄžébWÕômëδM% ò¡Z d:ù}Ù‰>žÜqƒŸ ½kø›Xl¤Ž;ßÿŽo•²#‡µ‡Õ}önýèwÿV‰×wÏ.ÖUIS7N¬c5Œi+×u²µ{Ù#Üæ¸{PøØ’þÊ9ËÍ9ûƒÍAøˆN¿bïæúXjNfè]ûp!“ëªëHßÔ-Û!©K_äëöÙÇŸ÷T¬‹ƒç¿}Á¤¿8àg’ëEÿÕúz.B!„Bj²}Óû6™±MÐ-œLª:`Ë絕)9Ò1z˜cÝ9+˜ü)(CæÈ»‚|ueÊ™§IM†Ò7Àb¦™ìÔÈ®—©ÁÀÙä~û õ醇Œîäï‹éä<Öõ=Ûÿo ô _ŽîS¶—í7¸0¸”êQõ6z.]œ6³û§¨~Šòi­-6±íýôW×>0v²ú †CŠÎöí¥@wò$jÙBÕôMH'[cÝeŽ·Ýy‡Á%lSýÙ#¬–À…u¬ÝµÅ}E%_v rm:z˜cíõÑëõáúË m”s?Ãå`ƒÅpMÒæûNÓ¦¼W9@©b¶8LûìüýEõ£Úý«ˆÃ”:Öå«Ói•8Æ(i1ƪ»ÔôGÊÖ,ö²G7À8þÎhY%gørÜÞÆ}˰X`koû]g´Â»G†Û#¬T‹hÒi Ñüü¥%Uz¯«ÙgcŸñsÓqØ>ýbQ]ä_Ò«óܲº6ÐÍö¤›{àʪ·+×HöínãíIÓbÚkP7/vid߇æùùYD§?E¾Í§Xn•|ºçW»®ëô¾¬ ­øÞ¾Y!®­AáCVŽDþ¼-äË•ÿ­¤ïn­;þJcÏ…2æu¾^š§îÿ÷d/Mꩤc¶‡8L÷ìüýÚú)òÿ}œ&_­®jÅ1å}k+1VÁXBÚØgÅØ ®óõUê_ó}úÒËúYM_´ôòí2 –õ»Eývlûî7ß(ÇmrÚDÂõ¼RŸ L_äëLú삘ªyü ßÍÛ¨Â6ó:nêMï7Ñ­l/rV|ni]ët£e)<9Vb‰Pøn{±EÆ.2:­ |ûí·âãÇâýû÷â»ï¾?ýô“øùçŸ3ÏÏÏéå¿>ˆ_~ùEüðÃâíÛ·éuëùùYÀôÿÄ~ÿoéÂðŸÿ2ÁŸþ8â¦B!„BN€||þ׿ý=ß?|øPxïû÷ïñùçŸã믿þ¤uðîÝ»ƒ–!n¿AT÷…à¦÷“×iWÔ å£|¿žvy”rÃíQ†-:ÖåcF9)êøºh‚îpßúÑà&ÛŒ›ŸpE~õ㯯¾ú ?þø#Þ¼yƒ/¾øŸ}–=ÄÙ²,!`YÖÎu˲ðñãG|ÿý÷øòË/ðhB!„BQÍ*`1Ë}Ãê ÷B!†gh¥Ö°äŠaÆ8Œúº]Öj¯:µ IDATc8–kØÎÇ(¢I–å`¼fýÓä U@!„B!yz˜ŠÞï'„B =ÎT@L©Â8Œq!ôuZìV¢ÝoíÑ ‚‡è’† À„B!„üJx÷îË@íêÕè…òQ>¶#–ƒvOù!„¢† À„B!„üJà7€ ¡]½½P>ÊÇvÄrÐî)!„òšÆ_mÃoB!„B!„B!„BÈ+ À„B!„B!„B!„òJà0!„B!„MÐíNë~B!ôA¯½œÁ–eÁ², Ö aFû½=Èû«%GMº±ïêbÒ¶b>5¿x v³wE˜tÛ³ŸCÀ`B!„BHk­îÎÈ7ÀPðÉïLúCéºÑ Ú(¯!v‡g9™JÊ=ÌÁ%l]¾Z9r÷›–½p@™—½¬¬eOU`Á*œÕgQéä<ÖõÚÆnf;Z½èìÜTNuº—ɧ¼H/Um»¤Í´)ËNHõ•ʤš˜RNVéÛOëú †ÙöMÐMʱOýÉ“[V¶OÈÛYÆÞuúÛ©¦¤º:0½^`û…¾Œ4²oßr± !0íQmGæ‡%3}¶º~ôþß4^×Ô{‘NkÇýe6Õ4Æ*‹iM}¸¡?ië©eWÊ?'£k“~õP‹n‰rvg6®8®PˆiOß~ŒêvÛÞíÑ B„ðݪñ^Yq`¿(ÛË).ôŸH,M®0î,!>¡@… À„B!„úCXÀRlZ«‘- º°¬ Ìäôá#:ËmZ!–茯¤Aµ—æ#Ä RVj4yà ¾ú\HJ™ Ê?ƒK[Ÿoa™^îצ i¾B„ð7·ÊÉ,•ìEe5¹_ž¤¹…·pÀ›¿?ÂäjŽA<ÈËÆWºÅeµœÇº^oÀoj;ezÉÛy„I÷EN±.”útÛÉ'‘þ-=À=ÿ\›¾M½¶m—´™Æ$“{¹þ$št3õ%„À £ð¢öÓ°ÅБìE,Ñy ÞËÎw±pÁÝðï1²5é[ÅÆh% B?í¢IÎ| éu‰ÎØ1[(•ë#`îÔ{é@WU®km¿Ä&æ4Âj5B¡F£'lÐÁÕ~d‡<3|¶®~Ôþß©¯+ë]««*q¿yœØ^Œ¥ŽiM}¸¹?©ë•·±ÂXÜõЙ_ádßMr=x²íFÜn\¸'ÞãiãgeÝšÆë%þ0ôáº>B1EïTý¢‰ß>ÜdÃöÅ‹Vc‰“nX4ÀÝð¯?­·Ô¸L!„B©?$[là‡ê¬=Ze½©ô6®ƒó&3ʼ,fúñuûrwó”ÎU2•a›_gvA¾…eJî/H—¹âq­¸îÊ^ “¼[°¨>°Ôº=±º>—/ߟâœk~ÓÉy¬ë &‰*ÙN™^ä:‘½>¼õ#Âºé¢ ngnFÿ«Iß®^ ۵ζÛ쌉ð0ÇN}õ¦%õgjÿÛ|ÓX9½k›Ûí.ÚmÚ…é÷ØÓo'¼î剷¦¡Ì*N~ž¡Ób¬v]oûFmùÐíÊï´>¥;ònðî“¡•;ž1ÀÐc.Ù+í’j¢ËüÉñ¿U»¿2ò'÷=â®kíïøÏS‡qXó8L÷lÅý&6õã¿^9î7Œ‡Úб”1m^ÕϘÇzeU§–û…s\ßt0¾ JüBb3&Wc¬×c8–…îÍMvwgÚ‡I aª~WÙï%4Ü>ï¶òõÀüak°ÁÝÁ S>«°OÍÙ«L_äëŒûl“öó•¦nMãõ í·©_Ì—1š ÛbØMòz9Ñ¥X·eöRô\ú«ª›ô4šú«Ñö‡Öb £U‹ªñR°ÀÌàÒ.j{§€ !„B!5 °˜­1v¬zßÚ‰0‡4ˆJluŽßÜÉ+ß¡£œ›”!X`æõw'ŸtùæåÐÝ¿#¯4È5!J˪žpºÂ}ÍÝn6F«<&ºsæÜ¼-®“óX×[·ÿ2½¨ì|ƒ§Ô䜻ò¿eÊÓmwŠ^Ç6doÛz©jÛº¶Û„x+3A=`¾>ņ=ô½Ø&ò¨=ÂMgŒ««9:ËDwé÷Eô„[§U5›fî9œSP}*C_v@Ÿ;tÆé®¼—݆Ùëû{Q¡¶ùØOvOy˜ÝNÅ/¸ÉNñÕî”ål»þG¸ñfXy`è<âFÞµžììKåÛãzƒóûDNhw7~:0;tVíÙÅõ“õÿUâõ’zOuUµ¯¬'ÖŒ±šÅ´mÇÀ:î^7–»7Å9ëú+£û—~uuÛMm3z˜£ã!îûB<âŽÖ¿(ú½­ÐØn†]!Y/uF7èŒïDÜn|\_ÊÝ­´Óv)-d+}‚.½Î×U賋,.m?Euk¯Ð/êüÒÒÃìâ ¸7ÑmÎ^~÷›’¸£jÝUŒv†,+–]Uw­Ä=L…€¸® cêèiwpÛBÝ\&„B!„4@:Ê,ô±¹0Ý©cš¨ãAX­#aóyµW†`1ƒ×ïÕ–C}¿JÞøÈUÑÇ¢7ˆíV¥Ç7Fx˜¯±;ñGüæwrÌ–Áñ/G†ðÝu­Aþk´½^TvÞÃ4`žNr:+* Òevÿ˜æÛ&Um»iÛÕ?:92îTó5;åì/v¾ßØ»ö Ÿ6W”þ$‘äoϞ̱‚mø²=aãú©-Ø—¸³‚Üõ“F–S·cNWÎ}´½¾‡Y¼,6Ûc£'l¤Eš­oŒõòz–^Œ°/p[}Éèà=ã°ƒÇaÏÞ¹¿¤~ vÿ븬ÞóºªÖW6‹«ÄX1í¾"žJ±žîz5¹Ó“AäþR×_åÚwßÛ.V†ô¯Ï±YÛû;g°‹úÝ|¿·Ãqq³³0¿ æŒÑ¹ÉõòNÉ‹ì”×ùUz¯«Ògkýk¶ý¨ë¶B\]¥ý7õ‹:¿äœÃ•ÿ¿¬.š<·Jþ…ºÙ~cyÑ/ù A›±„=Â*©+Ä~Æmïøp˜B!„Òö%FoBZ·8u»*G–ä=aSeÑ'S†OªO©íæ«’CuYÙ{è{kÔú¤gÕ²¦ŽÒ›ô®o¾8“¼áßKò*ûv]‰œÇºÞ¶ýÿËT/’'“i=hä,I·³ûÇ$ßÖôRÕ¶ËÒ·]?gè¬çx8åíy½)„XÂ3]쪚¾mÝ™ÚN² ú§µ@¦“ߨ—á#ÖŒ@j¶¹kø›Xl¤Ý ;ßÿŽoÆa‡‰Ãê>{·~ô»«Äë»Çgꪬ¯¬'ÖŠ±Æ´•ëºF¬§¼^Qn{„ûÁw [Ò_9çÀc`±9‡c_b°Y ÑéWìÝ\KÍÉ ½k.¤c’c]u雺e§TèÒùº†}v¦ýÕ­i¼~ªT­‹ƒç¿}I¢¿8à‘ÊÉ‚õ¢_Ý×"±€ !„B!5Ù¾é}›ŒÎLŽX&èª&“‚áË‘f¦Gµ*óÚÊ”é=̱îœLþ”!s<`A¾º2åÔ¤‹&Ci€`1ÓLvjd×ËÔ`àlr¿}†ÎzŒ;U½e¾/¦“óX×÷lÿ¿-ÐK©o¿Á…äx±oTjÒÅiõ»äô{ÐKUÛÖµ™=÷W×>0v²ú †CŠÎöí¥@wò$jÙBÕôMH'[cÝe޶Û ˆÁ%lSýÙ#¬–À…u¬ÝµÅ}E%_v r}nô0ÇÚë£×ëÃ;õ—Ú(ç~†ËÁ‹á›¤?Íû6Ó¦¼W9ã°£ÄaÅ~Rº¿¨~Tþ_‡)u¬Ë· nûÊ¢8q1V­Ø¥¦?²kÄzuÚ˜êÑ£`<Þúç²þJzéʾ··q_gãr,ØÚ[Å~×­°ÄÅî‘áö+Õ"˜tZBô0/iI•^çëjöÙÐÅÏFv«ˆÃ«Ž£Žå‹ê"ÿ’^ç–Õµn¶'ÝÜWVµ]¹•dßî6Þž4- ¦=ƒ,;X϶±pS»;$ÏÏÏâùùYüçý·ù÷ÿð!„B!ä4ÈÇçrüžÄôº¿·oߊo¿ývO’…Âw!À~(ýâ»ñõퟷܽ@¸~(Dè 7—6O¾ Ú¼ÄRxé5O,E±Lº2„¾ç— ÎW'Gþ~­¼KO!“BÓJÙ5e }áÔGîÂu}V¹?SoRúÐnF÷º:9Öu½]i-½‚íëEQ’ ¸Y¥gõ¨KË‘½V”¾=½Ô±m}Û5G+_NǪvùíE¨ì}I[0m?µõ'ÛÐn?ši—&é›ê/cúþväOò)–[%ŸîùÕ®ël_ï˚ЊïÝé›òçÚZÞ~ZŽDþ¼-äË•ÿ­¤j­;þJcÏ…2æu¾^š§îÿ÷d/Mê‰qØáã0ݳó÷këGãÿwìÚ$^1ñÓÕâ~m<´Kè}§^6û¬ëê´ÄÎ>Syméeý¬¦/Zzùv)É)ç¡ëw‹úíØöÝo¾Ù•/—6‘€p=¯Ô'(Óù:“>» ¦R·EÝÆáyPØf^ÇMý¢éý&º•íE®ÓŠÏ-­kn´,…'çÑJ, ß­[äÚ¶íÕ‹?ûñãGñþý{ñÝw߉Ÿ~úIüüóÏ™¿çççô¿ò߇Ä/¿ü"~øáñöíÛôºõüü,`úâ¿ÿ·taøÏ™àOqS!„B!'@>>ÿëßþžÆï>|(¼÷ýû÷øüóÏñõ×_Ò:x÷îÝAË ·ß šöŽs?yvE½P>Ê÷ëi—G)G0ÜeØ¢óa}P>Æa„“¢Ž¯‹&è^÷­ a²Íø€'ÛcMºpoZ±ò~ö«¯¾Â?þˆ7oÞà‹/¾ÀgŸeq¶, BX–µsݲ,|üøßÿ=¾üòK<šB!„BT³ XÌrß°:èý„Bˆ¡ÇZéÄŸu,¹âE‡1#„¾n—õŽeÁ¶svo4鲌׬Ÿ_öèþæ¢5û9oXm„B!„’§‡©èñ~B!ÄÐãLÄ”z ŒÃ‡B_§Åa%Ú=ñÖ­ xˆî¯£•À§Tå\&„B!äW»wïXBhW¯F/”ò±±´{ÊG!„5\&„B!äW¿Líêµè…òQ>¶#–ƒvOù!„×4þj~˜B!„B!„B!„B^ \&„B!„B!„B!„W€ !„B!¤ˆh‚nw‚èX÷B¡zíå †°, –ea°^ã0BØŽ d‰ý…ՒÈ&ÝØu1i»Ÿšc_úªà0!„B!¤µAmwgÄ`(å{>}a>%ƒÿÌ=†éõ!vÇÙ9™Jž=ÌÁ%l]¾Ee’ï7’·l"#/{YY ÊžªÀ‚U:¨/ªÏ¢ œÇº^ÛØÍlG«—\]§¿™Ê©N÷2i•·£饲mW±ùf²ìÔT_é³UZÊI.}ûi]Á0Û£ ºI9Júœ¤ç/É·³Œ½ëô·SM'Vuu`z½Àö«ú bnß&¾åb?B`Ú£ÚŽÌiüã°ýÆa¦ÏV×Þÿ›Æëåõ¾šä£ô÷eúic•Å´¦>ÜПèä¨,_Û±ê>úèÄõ ‘8 …­èÚ‡êºóx!BønÕ¸ÍÀ®éßäúúêÚ‡q»)ÒYèÃu}„bŠÞ©ú·£ÕínYK¾CÉŸ‰S}l.¤E`×Cg~¥è—·€ !„B!õÇÛ‹ üP=ðµG«Ý_o*½ùìàÜ-ÏG‹2¯‹™‡~|ݾÀÝ<¥)*™ŠŸ`1ëàÌ.ÈWS¦ìýé2×C<®Õ“»²È$ï,ªl'µnÏC¬®Ï勯÷§8çšßtrëzÝ9”ª¶S¦¹Î_äD¯oýˆ°nºh‚Û™‡›ÑÿjÒ·«—¢v­µmC›o—sìÔWojÖï”Ú#äò÷0•Ó»ö±¹Ýî¢ÝÖ©]˜~==¶ëÏò$\ÓÐæÕlÇ>C§Å6XíºÞökù c Ûu”ßÁrJ»¹äÝàÝ &Ãü.›CgŒ5f¸Hd¯´»ª‰.ó'#ÄÿVíàËÈŸÜ÷ˆ»®µ¿cCOÆaÍã0ݳ÷›ØtÖWTŒW âCm>Êr˜Æ7íÅXʘ¶‚¯êgJc½RùÌt”ݱ*Ÿ¢îÔécò}pÑ.K¹/tÆXÉSØw1ì&Ï|Ùšßi™éóµ>õì[×> Úq;lêßòþÅ@gê:ˆ0¹c½ñ,ton4»UËu\dC•tƒò:ÖÆ¥ñƒAücbÙÆŽUÇ߀s\ßt0¾ Œã÷Sƒ À„B!„šXÌÖ;V½ïE˜c€K»a>™¼òƒ¸3t4“MFe˜yýÝ ]¾y9t÷ïÈ› F苚‹¥eUOî]á¾æn7£Õ Ý9s î ÞÒÖÉy¬ë­Û™^âI ÌQa<¥³Î]ùß2åé¶;E¯c2È·m½Ûv 6¯#žøÊLE˜¯Oq‡a}/¶‰|ÇgpÓãêjŽÎ2ÑQAú}=aãÖé_UÍf™{çTŸÊß‚:Ï:ãtãËnÃìõý½¨ÐNÛ|ì';Ý<Ìn'ˆâ— ÜdÎê wÊr¶]ÿ#Üx3,‚¼¿0tq#ïZOvð¥òÇíq½Áù}"'´§`|:¨üã°}ÆaÕž]\?Yÿ_%^ßÍW–å£*‡i|Ó<ÆjÓ¶ב¯\G™«Ëx1JÛ‡iÒkû`3Ÿ#ûuþE}gÜW.=Ì.®€{ùù:ßf*¯™×µ}»9°Óù¥Îtu`ctÿò¼Õï~S?èu¬µ¡Vã—2ý•ýnÿ”è²´/ïM±ÄEήŽׄ À„B!„HÇÆ…>6¦;uâc“Ò…±ºù¨òj¯ Áb¯ß«-‡ú~•¼ñQY¢E»ˆìV¥Ç7Fx˜¯±;/oö¯ÇpºDF÷ËG†ðÝuÃÉ×cÿz½ô0ùã'{˜†ÌÓ‰+cåB¥AºÌ.Ó|Û¤Šm·ló2ù# “ããNeá1_³ÓXÎþbçû½kÀ×=³ô'‰¼ {Žð$šlâƒDô„ë§¶`_àÎr×OYNÝŽ9]9÷ÑöúfñêI°ØÀ¿îÅÇu¾,ˆm}c<œ×³ôb„}9€ÛêKFï‰þ‰qØ~ã°‚gïÜ_R?E» u¬ÊW.ðKa_™/GÓ8¤JŒUÓî+âÑÄzÕä{µ‰Žä]Ž3 Þi®ìà җõÁò®ÏîÍJï[Tùöq_éœÃ•ÿ¿¬Ï7ñ&>¼Îîßªí¸©Óù•Ίê¸És«ä_E7&~½LªßMãŸ2]šxÈkyWð§s˜B!„Òö%FoöZ·85ƒFã| òŠž°©²è“yv„§ å'¡vòUÉ¡º¿D^ôÐ÷Ö¨õ ¡ªeM'ꤷ¦]ß|q&šàv“ ºmŒV†ßrÕÉy¬ëmÛÿ¿Lõ"?i°ÊÔƒFÎ’t;»LòmM/um»ÍWªŸ3tÖs<œòö¼ÞB,á™.vUMß¶îLm'YýÓZ ÓÉ_Éácz,'©Úæ®áo`±‘vƒî|Gü8¼UòÇ(3ÛOV÷Ù»õSi£¶KòÕŇ}ü?FùHå0oÇX cÚÊu­‘£Ž|e:Š&èÊß•w9ªú°¢ôej–v}¾ìÝ-»6ÿSè;v¹÷Ý¿_ê×ñIäêñª/·G¸Ìq÷pÄx¼&\&„B!„Ôd{ôÑm²²erÄj4Awgâ­F>%y%Ç¡Es¬;g“?ÏÎX¯Rì/¨IM†Òâ`€ÅL3Ù©‘]/Sƒ,&÷Ûgè¬ÇH7·ft'—L'ç±®ïÙþ[ —`(}³JeçÛowap)Õ£j'b.]œV¿‹AN¿½T´íú6߬¾®}`ìdõ ‡ œíÛKîäe UÓ7!X‹u—9Þv{ì—°Mõg°ZÖ±v×÷•}СÉõ¹ÑÃk¯^¯ïÔ_nh£œûy.,† l’þ4ïÛL›ò^å<¥þ‰qØ>â0í³ó÷ÕÊÿ+â0¥Ž+Õ»>Ÿr*â–¶c¬Z±KM¤‹ÉW #é´èa.-z)ú°ÂôUËøâ[2ù¨ò¯Ùw6ïóK|xÝÝ¿mŒ§öéߊê8ÿ²]ç–Ù‰n’8r_~}/ñO|¬ôÍîË#öèÇßÂ>d<Þ7œ´"„B!„ÔwMCüõ4ùêä¸Gö~­¼gÀXºæ-…rWŠZv}Yî¯0òVÞúè:Éóõõ¦Óݱ®×¡ŠíôtzqαI¯oëºÁp{¼ZbºÉ(mºxÒгúפoS/µlÛÐæk³ñÆò,üp…Ñh…]8–õò“·„@½ð ]I&¸>ÂU¯µö£Å¾Ä`ãàE¤­¬v[éëL|Y˜¥yO·y§ºKªXÅ»œ¦:ýEOùΡ߅cu·ub7lƒ½Š×µ}Eut›ës_äŸ.°rúÿ„# m9÷}9ÀfüˆakžÛó}I_“é3 Óï êþÿÄÐù'ÆaûÃtÏŽLëGãÿMãõŠõ®ÍGWÃø¦•«ªÿpú•å+Ó‘=ÂMÇJû×ó2»1wú°’ô•úbÉ·¤ùhó¯Ðwšôùùø¡ÖxT×>ÌÚMA¡ëlëË𼙫PÖÒ:¶G¸ñ,\X3¸ß|à7ÕŸÛȆÔqd+å.±ÑÚñOfÜàÂ5ý0z˜.=ÌnËâñÓŠ¬ççgÓüøý¿¥?üù/üé#ÎhB!„räãó¿þíïiüþáÇÂ{ß¿Ï?ÿ_ýõ'­ƒwïÞ´ ÁТ_‘§éýäuÚõBù(߯§]¥Á֢Ѣóa}P>Æa„“!š {Ü·~Äw„É6ãv_L$Ÿlüs ?ûÕW_áÇÄ›7oðÅ_à³Ï²‡8[–!,ù…ÖøºeYøøñ#¾ÿþ{|ùå—x4!„B!„¨FXÌ<ô{ǺŸB1ô8C+ø³.€%W¼ã0Æa„¼fÖc8–kØÎG%¢I–å`¼¦jÿ¼.x4!„B!„ìÐôё“Mï'„B =ÎT@L©Â8Œq!¿ìVbÔr–+†ËøçÂ`B!„B~%¼{÷Že „võjôBù(ÛËA»§|„BQÃ`B!„B~%ðÀ„Ю^‹^(åc;b9h÷”ByM㯶á7€ !„B!„B!„B!ä•À`B!„B!„B!„By%p˜B!„BŠˆ&èv'ˆŽu?!„ú ×^Î`˲`Y†ë…0#¤Ðž«Øõ>Ú@4A7î³­#uÚѤû.&m7ðOÍ'5©ûC÷‘ì“ € !„B!­ »;£ïCy€'OHé_ðÒ_Ùh[“`˜^b7—œL%eˆæÀà¶._­¹ûä-+w^ö²²”=U«t0^TŸE“/:9u½¶±›ÙŽV/¹ºN3•SNß~j´…º95mÛÌîê˲SR}¥2©&¢”“S-éËDÁ0«—h‚nRŽ’>§0éÆùK2äí,cï:ýíÔGÓIZ]˜^/h…¾Œ4²oßr± !0íQmGæ4þ‰qØ~ã0Óg«ë§Rü¬Ð±öþR?cߛljmÄXe±…©oZ¶Š±^%¢?®p¯ë#"ÓiïÉ+êÁ­ Dß­k•µÕû$Y·¿æÅÑFe7´¯Ê1t5uŠp˜B!„RŸ`ëXŠíy5²¥1\–u™œ>|Dg¹M+Äñ&â¼Hÿ–àž;ÅÏÖä /€øzèop!M„)e*(Cü .m}¾9ò÷kÓ‹4_!Bø›[åäJö¢²šÜÿ’…[xp Çäùû#L®æÄ“#bÙÁøJ·¸¬–óX×ëÍI˜ÚN™^¼4½+ŒìâÒ IDAT“b \('?ôéÔíçóÂ|‹ì¡25mÛÄîj‘LHfô—Yª/!–X½Ъ¾òKŽd/b‰Îcô¦XvƸ‹… îÆ€‘­Iß*6F+úiÝD“.œù@Òë±c6ñ%×G8ÀÜ©÷2†®ª\×ö %~€41§V« 5=aƒΨö#“÷Oõú~ÆaUâ³gëêÇ8~ÖèX{NÍã{ó8±½K[˜úðöÊfë™ëè`ýqöêKÚ¹QÙC®ë#SôNÕ'í¹Ž^#Ê1ªn TÁŽêø«S„ À„B!„Ú‹ üP=ˆ¶G«Ì 7•Þ¢vpî*G[¸y¸)P)ó °˜yèÇ×íËÜÍS:‘¢’©¨ Ûü:8³ ò-,SrAºÌõkõ„îì2É»‹ê#ÜÞž‡X]ŸgêÀôþç\ó›NÎc]¯;SÕvÊô"×ù‹œèõá­ÖM—¶Ÿÿ-L_ZŸU¨aÛJ»ÛïôæØ©¯Þ´¤þö¡¯ä6ßÃ4VZïÚÇæv»‹6Û'ªÓï±§ÇvýYžìaúÀü¡Z›²ÏÐi± V»®ïŒÚò) ÛÁ”ßi}J»‡rÇ•N†VîXÍCgŒ5f¸Hd¯´S«‰.ó'FÄÿVíÈËÈŸÜ÷ˆ»îvî"ŒÃšÇaºg+î7±i]ülÔÇÉ÷è´v|_µcéb S¾²UŠátùÈ}’3ÆZúéa§OMú3éúÿ—ëú99Ï“«1Öë1œ‚]{õÇ&õ€ m§©OÊû„h‚nwˆa7Éëå4•¤^²;îsº½¹ÑÔ‘ê¹&ù›êFãÏ dˆŒý|± 'qúŽÆ»öUÐÞLí¨I¿tbp˜B!„R“‹ÙcǪ÷¤ès p™›§Úît»®6°Òäû åbša‚f^W]¾y9t÷ïÈ›L,Ð5•¥eUÍ}tq…ûšo/Û­nð˜èΙcpoðƺNÎc]oÝþËôO(e&Ð6xŠäÉùß2åé²íÇ4ß1°ífvg@aãÖé_UÍf™{çTŸÊßЗÐçqºsåeÇTöúþ^Th§m>ö“9f·DñËn²S|u†;e9Û®ÿn¼AÞ_:¸‘w­';òRùãö¸Þàü>‘ûݹwTþ‰qØ>ã°jÏ.®}ülÖÇiï×Õm©-ÔŒkÆX{-*•Í4Ö3ÑQA¯ìSs»…ÀôÿUù“²~NÎÓÆèþ¥Ÿn]ÇUýqU›Ü—OÒù„¥‡ÙÅp/ç›Ûq¿ì`|lmZÖíï~Sâóurëò7Õ…ÊŸÈPI§&qJÞÆÂêÏ®8fªnGŸJ¼˜… À„B!„HGœ…>6¦;uâcL󓦻Mòj¡ Áb¯ß«-‡ú~•¼ñ‘«¢E»ˆìV¥Ç7Fx˜¯±;/oc¯ÇpºDF÷ËÇ·…ðÝuµ‰†Wlÿz½ô0ùcÇz˜†ÌÓÉcåB¥AºLû1Í·MLl»ÀîÚ#tr”Þ©,<ækvËÙ_ì|¿±wíàºg–þ$‘äoÏžäцu}Ù‰ž°qýÔìËÜÙAîúI#Ë©Ýé¦)ç>Ú^ßÃ,^ø×½øèÏ—Å›m/êåõ,½a_à¶ú’ÑÁ{"…b¶ß8¬àÙ;÷—ÔOiü\ÒÇiï¯Z·ÙôÍâÄ*1Öb ã²U‹õJuTÔÇ«úÔès”øÓ~®tgó1üq‰MVi{M}’Î'8çpåÿ—ÚYº£õbLdúÜ*ùéFåÏêøc¥MÖˆSÅ&c º~ëˆsp˜B!„Òö%F;  ­[œ‡»Ðê»õy½ +,údÊáiãBù)â|Ur¨î/‘=ô½5j}Ò³jYÓ Géml×7_œ‰&¸Ý$s£UÙ·ëJä<Öõ¶íÿ_¦z‘޳GXeêA#gIºöcšo+˜ÚvC»«]?gè¬çx8åíy½)„XÂ3ચ¾mÝ™¶©dA>ôOkL'¿±/;ÂGÅQŠÄ¬Í]Ãß, Àb#íÚùŽø§uÜcsŠÅdÖVV÷Ù»õS)~VôqêûËtUb uãÄZ1Ö¾c‹ºe+‰õÚÔQUN©Ÿ3öÇUmò„ˆ&è:Ò÷žÛ>­cßùróEc –ì艹L!„B©Éö(ÒÛd–ÂäˆÕh‚®nÀUu÷¯2¯­LÉ‘ŽÑÃëÎYÁäOA2ÇBä«+SþX)Mºh2”&z,fšÉNìz™ì`1¹ß>Cg=FºQ!£;ùÛŠ:9u}ÏöÿÛ½Cé[Xªö²ýþ—R=ªÞ,Ï¥+m?ŠômÒºmï§¿ºö±“Õg0"P,p¶o/º“wð–- TMß„ta1Ö]æxÛíq~\Â6ÕŸ=Âj \XÇÚ-QÜWTòeÇ ×çFs¬½>z½>¼S¹¡rîça¸l°.°IúǼo3mÊ{•ó”ú'ÆaûˆÃ´ÏÎß_T?*ÿ¯ˆÃ´}œöþ $ªôEqâ>b¬Z±‹?ªZ¶*±ž‰Žr>6z˜¿ôc_b€’>¬f?‡Ö^âªáMm²éhŸ>IÚe»SyÝÖynQþUú¥äYE2Hò–ÛdNòmM缾•Ê_˜ôŸH¼˜çùùY|ø ~ùåñÃ?ˆ·oߦ׭ççgÓüøý¿¥ ÃþËú㈛!„B9òñù_ÿö÷4~ÿðáCá½ïß¿ÇçŸޝ¿þú“ÖÁ»wïZ†`haјöŽs?yvE½P>Ê÷ëi—G)G0„µèC´è|X”q!$C4A÷ ¸ß÷'<ÊÁd+ȧw,4! ?ûÕW_áÇÄ›7oðÅ_à³Ï²‡8[–!,ËÚ¹nY>~üˆï¿ÿ_~ù%M!„B! ,fú½cÝO!„zœ¡•NüYÀ’+^„qã0BöÍz Dz` óa‡hÒ…e9¯Y„èxCB!„BHž¦¢wÄû !„C3Sê0cFȰGX‰Ñ‘EXAð[B á0!„B!¿Þ½{Ç2B»z5z¡|”íˆå ÝS>B!„¨á0!„B!¿ø `BhW¯E/”ò±±´{ÊG!„¼¦ñWÛðÀ„B!„B!„B!„òJà0!„B!„B!„B!„¼¸L!„B!EDt»DǺŸB}Ðk/g0„eY°, ÀõB‡ÂvT Kì/¬–F4éÆ>¨‹IÛ…üÔüÛkèKÙï§p˜B!„ÒÚ ¶»3b0”_ò€]NŸ¹n8ðÖå…Ãôú»ãìœL%eˆæÀà¶._­¹ûä-›ÈÈË^VVƒ²§*°`•”‹ê³¨Þtrëzmc7³­^ruþf*§:ÝˤUÞŽj´…º“,•l[§‡–&|òºó—ê+•I5I¤œ8jI_&ú †ÙöMÐMÊQÒç´ &Ý8I†¼eì]§¿úhZ׺:0½^Ð& }idß&¾åb?B`Ú£ÚŽÌUï—‡µ‡™>[]?zÿ_TW¹º­ÇkÓ›ÔM™M5±ÊbÚ2^V†1°ÑX§Àþö±Ù¸>A\¡‰ÃPØŠ®}¨®;7"„ïVÛÊÚýý›\ŸÇ¨ÛX7™¾äµ/Æžxù¸L!„B©O0„u,ÅvP»ÙÒX¨ ˺ÀLN>¢³Ü¦b‰Îø “(ÂäjŽA<0ËÆWƒ(e^@0¼âë¡¿Á…4£”©  ñc0¸´õùjäÈ߯M,Ò|…áon•?*Ù‹ÊjrÿK>náÁ-Ûæï7¯7œÇº^oloj;ezñÒôB¬0²#Lº/rŠ%p¡œDЧ³G«8¿íßÒÜóÏ ó-²‡ÊÔ²í¼Zì—’IÁ\þѤ›©/!–X½Ъ¾²­CG²±Dç1zS,;cÜÅÂwcÀ¿ÇÈÖ¤o£•€ý´Oˆ&]8ó¤×%:cÇl¡T®p€¹Sïe ]T¹®íJüibN#¬V#j4zœQíG¦b¿Ì8¬yføl]ý¨ý¿³?èâ’ªq¼.îQÆæqb{1–:¦5òáuQ)ÖÙY¡î1&j£þDÇ£ºöaÖnJtúp]¡˜¢wªþíXuëzè̯ÀwéN.B!„Bê·ø¡zàkV™@o*½ùìà\µâèœÃäåku^3ýøº}9€»yJ'†T2•a›_gvA¾…eJî/H—¹âq­ž$Ø•½@&y·`Q}`;©u{bu}._4¾¿¼ÞtrëzÝ9”ª¶cjÏ!×/r¢×‡·~DX7]4ÁíÌÃÍè Ó—ÖgÚöaˆð0ÇN}õ¦%õ·}í 륇i¬´ÞµÍíví¶NíÂô{ìé±]–'{˜†>0¨Ö¦ì3tZlƒÕ®ëû£¶| èvåwZŸÒNy7xw‚ÉÐÊ…`èŒ±Æ ‰ì•vW5ÑeþĈøßª}ù“ûq×=Ò®½S€qXó8L÷lÅý&6õåqIÕ8^Þ0>)ˆ‡Úб”1­©/°ƒJ1°‘iÆ@Úªíîî.èÔécò}pÑîE¹/tÆXÉSØw1ì&Ï|9edø6­Ï¨6-mEíÆ´6õoyÿb 3uD˜\±^áXº77ÙÝÀt\dCåº9ÇõMã;ÃÓò»–S»Ž0éæb•/.;@÷Ì*íG««œÎO0à0!„B!¤&³5ÆŽUï»FÑæàÒ¶1ZÝà1ÉÇ™cp_ñmå4¯üŒÒ:ÊÅ4Ã2 ̼þî„‚.ß¼ºûwäMö ôEÍEˆÒ²ª'”®p_s·[ÍzÓÉy¬ë­Û™^âI Ì$ÁOé|ƒsWþ·LyºíNÑëØ†LómcÛVé¡%âI˜ÌbXô€ùúwöÐ÷b]ä;P{„›ÎWWst–‰î Òï­NŸ°qëô¯ªf³ÀÌ=‡s ªOåoèËès‡Î8ÝAö²Û0{}/*´Ó6ûÉŽ9³Û ¢øe7Ù)¾:òœm×ÿ7Þ ‹ ï¯ GÜȻ֓}©üq{\op~ŸÈ ³ÓKNšý2ã°q†é³‹ë'ëÿM⵪}_QzU¼Ñ$¾¯c5‹i«Ö…aÙtíbçzqÝfv¬.ã…5m¦I¯íƒÍ|Žì[Ôùõq_¹ô0»¸îåçë|›©¼fv¬kúvs`ÿ¦ó/JéêÀÆèþåy«ßý¦$~ÐëXkCÆáíK\äêBc#Rß=ÌÑñÛuˆG(bÆŒ® ì®ð™mµŸœÎOð.B!äÿgïüy[G®þÿåâÞ-]ʶ ¼€¡W@O“Fv£J­SQÀÓH@à À:Mb œT‘Ò¸H£J¥&ÍSHoà Æ^“E€[,v‹õÝê)æWˆ¤‡ÔÌpøG–®ï÷{—šž9sfÎá gH!5Ž, lÎlwêÄǘƓ%OGè…¼uɇÌlYMÖa9ŸÂïu+ˡί’7>rUô0ob‘;Īð¹w³5Ö£ÖÓ›ýëZíCñÊâºzíörí_¯—.&"ü_“°Y:qÕÂH¹Pi‘.³‹Á¶Ü&±µm•#trüݱ,<æ[vËÙ›ï|w°{èã²k—þ(‘ä¯OåQ“U}Ù3=`ã©-¸ç}xÓ9–¹ëG,§n7 ®žûè{=Óxöw9ß ¸ìÆÇu>-Æl}c¼¨—׳ôb„{Þ‡×èKFÏ>Õ—‡U‹Ã ÷ÞÉ_Ð>»õqIÙ±O•^oÔ‹ËÄX†˜¶\ÃYÛAqÝtý"Ý¢ïÉ;Ϧ@¼Ó\9†ÒÁòÎÇÎÕJï[TåÇÎx¬l“ÿ]4æÛø ;®²û·l?®ëßtþE¥3S×¹o™ò-t“žd#Ë¡´‘.zþö%’ð¾Þå)6óå6}ûdׯÈ2›ì®à÷¦ûϱÂ`B!„BH3¸çè[í0\bà\ã4Œ£1®7É•‹áªèh†²”¼%}2uˆð°ñ ü$ÔN¹*9Tù äE=JŸô,[×t’Kz³ß ìgª¶›NÎC]oÚþÿm«éø?wˆU¦4r¤ÛÙÅ`[n#TµírÇ VoŸ´×3Üóö¼îB,àÛ.v•Mß´îlûT² ǵ@¦“ßÚ— á}z,')Ûç.læXb‰ùFÚ·óñàxðF)3.3k.ΰ½÷nûw1ÚÆkeÇ>9½*ިߗ±jÆ´eÛ¢°n:;+²?Eß‹Æè´¤ï ˧<¨Æ0Sú"5K;Ÿv–çÆN…ï}÷ï³Ç/ÕÛøYËw‡¸íÏps§ˆ s6Ò:îÃ%æ›S´Üsô7s,Ã{´m^*²;Ýï ÷Ÿc… À„B!„Šl"½Nf;lŽXÆèä'>Ü´×#¤/ÎÛÕª*+–)9Î)º›a­zsئ™ãÙ å*åÀîñnštÑx™0šO5“Ùõ2ÕØÁb“ßÔn™ï*éä<Ôõ=Ûÿ/ zY¤ï©ì|û)ôÏ¥vTíÆÉ¥‹Óêw1(Ò7=QTƶ õ°Ÿñê2F­¬>—ƒ–ŠÎæíÅ ;yoÑBÙôuHcÝí©Û”­þÜ!V àÌ9ÔîZóXQÊ—‚ܘÝͰö{èv{ðýå†&깟›á¼¿Á|0Ç&ó¾Í¶+ïUÎg Ê¸Ì8¬v¦½w>¿©}Tþ_Ž´ñZÙ±Ï&½oTï«ÆX•b—'TÊ c`•=j®Ûô=é´èn&½ô£ÃŒéËŽÅO¾%SŽªüŠcgý1¿À.«îþmâyjŸþÍÔÆù—íªÜ·È†,u㯀ѨÐFÜó>p}Û±‹ó>0Ÿ£x,.²;ãï öŸc>äññQ<>>Š?ÿõïBæ÷ !„B!ä8ÈÇçrüžÄôº¿7oÞˆo¾ùfO’…"ð ÀA(ýxñõ퟿ؽ@xA(DêròuЖ%ÂO¯ùb!Ì2éê^\^‚º\ùüZy¾B&…¦•²kê³hÜ „ç",“_×na ¼Œîumr¨ëz»ÒZz Û1ëEÑ’ xY¥gõ¨KËáå;Ž6}±=”3JÛ¶N%ÐÊ—+[Õ¯3¿%7ÏçKú‚mÿUõ'Ûbü“û¥MúºúËô™cˆN;ò'å˜åVɧ»¹ëº1AïËêЈïÝ›òçúZÞ~ZDþ¼-äë•ÿ­`ìn¬;þJcÏFó:_?-S÷ï=ÙKv*ã‡í!3úI‹øAçÿóv­³ËÅñÚôÆ8¦xlm$Æzß©aõã¨leb`“=?©íoáKy|_1eû™2½n Vøie)ÝW+OÑØiúw¾•ñZ;Öôãõ¼­)l,/o]ÿf›_ú·É&’ß¼¯¿®¬ãB2é&oO ?*}çBøù1Ee—ªòmìNç¯ëöŸ¼ÎSX>Hüì‡Ä»wïÄ·ß~+~üñGñÓO?eþÓÿÊïß¿?ÿü³øþûïÅ›7oÒëÎã㣀É?ÿ…ßüúÓ…á?üiŒßývÈM „B!„ùøü/ûG¿¿ÿÞ˜÷Ý»wxýú5¾úê«Zoß¾}Ö:,æ=I÷0ùÉË´+ê…òQ¾O§_¤Ëœy¢AçÃö |ŒÃ!GC4F縭|Ä·¶`Œ·[~¿›æýì—_~‰~ø¯^½Â矎Ï>Ëâì8„pgçºã8øðá¾ûî;|ñÅx4!„B!„(Xb>õÑë*?!„béqN:ñçœ ®xÆaŒÃyɬGh9œA3•ˆÆ8N £5UK^¯¨B!„BÉÓÅDt˜ŸB±ô81¡ã0Æa„|¸C¬Ä°á"W< —¼@¸L!„BÈ'ÂÛ·oYBhW/F/”ò±±´{ÊG!„5\&„B!äß&„võRôBù(ûëA»§|„BÈKzþj~˜B!„B!„B!„B^\&„B!„B!„B!„€ !„B!ÄD4F§3Ft¨ü„Bèƒ^z=—8ŽÇq0X²]ã0BØ ²ÄþÂiÈaDãNìƒ:7]ÉÍ¿q,}Qp˜B!„ÒØCmgç‰y‰ü (?°gÒ/1H¯`õl\¹¬œLuˆîf@ÿ®®\­¹üVòMdäe/«7EÝS8p êMíiš0ÑÉy¨ë•ÝÎv´zɵuú›­œêtO“Vy;ªf³•&„ÊÚ¶qÜhN–6î›Ê¤šÐRNréûOãú[²ý1£“Ô£éöÛãN\¾$CÞÎ2ö®ÓßN{ÔXÕµíuC_Û—M~êXM/18Û „˜t©¶sÿÄ8l¿q˜í½Õí£÷ÿ¦¶Êµm‰8Þ.ÞPÉ`ã?ëÆXE1m‘ %ëP:Ö«^ŸÃÑGˆ "q ÝêìUu½u!B^Ù¸­¨ß?³“ÛómÛdÜW$•ú}‚‹Ø\&„B!„Tg9€s,Äö¡v5t¥ç«ç S9}xöb›VˆÚ£ Œ£ãÎ\_g6fʲ€å੬0ØàLšÀQÊd¨C|ôÏ]}¹9òùµé–󧺋ÁæZù ¬’ÝTW›üOå8¸†Ïø¼œÏa|1C?LÚ­Ñ…nqY-ç¡®W›ƒ°µ"½øiz!Vº¶ö¯OçWqyÛ¿…x§¯õåØliÊÚvAŸ«M2)˜Ñs܆Ò}…X`nõb€©ÿÔD1hIö"h߇@w‚E{„›X¸åÍn1t5éÅÅp%  ¢q­Y_ÒëíQËn¡Tn°Y«Ú˺6(s];&ìÛ&?eÜ!V«!Œ°A'TûÉû'Æa{Ã,ï­kµÿoíÆº¸¤d¯½Ÿ¡6þ³¹KÓZùðRu(ëU¯ÏQŒÑéó¨Î^íúMΞ tÕ¿ªmŠûö"ÿK°÷’p˜B!„Rýy{¾Aª|Ýá*³€èN¤7Ÿ[8õ ÄýÚG/¹ÞíÁ_ߣpICYÖóéSYîyÞæ!HQÉdªÃ¶¼6N\C¹J9òù é2×CܯՓ»²d’w šÚÛI­ëÓ«ËSù¢uþ”Ö©æ7œ‡º^u¾ ¬íéEnsû·Lq=õq5ü¯>½Ñf+PÒ¶­ôÖ8îfعowb'G¡ý×Bîó]Lb¥u/l®·»h·mêÓïq¤ÇvýYž0ëbÀì®\ŸrOÐn°–»®c“UÌX³ë(¿ãæ˜v·È»Á;cŒNî(Ì%­Ö˜â,‘½Ôîª:ºÌŸÿ¿jG^Fþ$ß=n:ܹwh‡ÕÃt÷V䷱鬯(ŽKJÇñºûthã?›Š±”1­­¯S‡ÂX¯^̘ݱ*Ÿ¢Ôécîòc°iG¤<¶FX›ä1Ž :É=ŸN, ¾Më3*êV×?LýƶÖõoyÿb¡3uD_Œ°^Ðrt®®²»KèØdC¥t“ût;ÞUqŒd›y:cDùºnD(öÝ…1‰ELUÂ6.B!„B*²Ä|ºÆ¨Uñá'ºÃ }œ»°ÁC$OÊÉÿ_¶¬ÜC§q1¹ Ë9¦~owBAWn^]þy“û9z¢â"Da]ÕJ¸­¸ÛÍÅpu…ûDw­ú·oTëä<ÔõÆí¿H/ñ$Pæ¨E[û/N·Ý)zÛE¹º¾S•BÛ®9nØOe'‘î0[ãÃ.z~lyE¸C\µG¸¸˜¡½HÆCú}=`ãU_UÝfŽ©wŠÖ1¨>•ÿl²¡1gÐ¥;Ÿvf¯ïïE…fúæ}¤ú69 IDAT/Ùéæcz=F¿Là%;†V'¸QÖ³éöâÊŸb¾Ìûë%­{\É»—’y©üq\opz›È‰çß¹×8*ÿÄ8lŸqX¹{›Û'ëÿmâµzcßîýÐa«^L[¶ec½ª1c2\I;VmŒn–†1L“^;ÛùÙ·¨Ë7ñX¹ð1=»nåûë|›­¼vv¬ëú~óÌþMç_”:Óµ‹áíÓýV¿úEAü ×±Ö†Jwe9îÓÙHAq1j§;¼í{„ùºC{ßml3˘ªT_:,\&„B!„Ô@:â, °9³Ý©cz;„‹.&a³ôÁ½…Q©…¹¬fë°œOá÷º•åPçWɹ*z˜7±‹ÈbUx|c„»ÙëQëéÍþõ­Î‘U~ùè÷®>9ðÂì_¯—.&"ü¤­ý[¤Ëìb°)·nßAEÛ®:nX’?:9êíXó-;‰åìÍw¾;ؽ ôqÙµK”È ò×§òè½=ÛdDØxAj îyÞtŽeîúQ#Ë©Û1§«ç>ú^ÏÇ4^=YÎ7.»ñqO‹7[ß/êåõ,½áž÷á5ú’ѳD ÿÄ8l¿q˜áÞ;ù Ú§`÷¯>.©8ö)ï×°KÅX†˜¶\ÃYס\¬W%fÌê;Ý‘x6âæÊ1̾h –wYv®Vzߢ*ß8vÆceëžüï¢1߯gØØq•Ý¿eûq]ÿ¦ó/*™Ú¸Î}Ë”oÒ.îÓÙHQãž )ÎâËÊÓ{ÊønS›ÙÆTÖ¶yx¸L!„Bi÷}«»K œkœ†ÒC£;ÄJzp÷¬jeí<ð–XôÉÔ!ÂÃÆƒò“P;åªäPå/]ôü5*}Ò³l]ÓI.YïýâL4Æõ&yøu1\}»®@ÎC]oÚþÿm«éøI[û/H·³‹Á˜¾ÈËRѶ­Çºís‚öz†»cÞž×@ˆ|ÛÅ®²é›ÖmŸJäÃà¸Ètò?—M6ExŸËIÊö¹K›9–Xb¾‘vƒî|Gü#8¼QÊ|€qXsq†í½wÛǸ‹Ñ6^+1ö™wMÖÐaå«fL[¶Q…X¯jÌÑiIß –w$ªÆ0Sú"5K»>ŸvîÖ][þ1Œ ;Þûîßg_ª·ñ³”oŠûT6RÇ$/Uô07}¢ û{1€ !„B!ÙEzÌRرÑ1N¼m¿çƒþyñ„²¬­LÉqhÑÝ ëö‰¡,C2ÇÊÕÕ)¼ &]4H=ĶšÉNìz™jì¾°Éïž ½!ݨÑü]2œ‡º¾gûÿ¥A/Ëô})UÉÙÿÎ÷Ý ýĸ‹AUnƒ‹¿¥l»Â¸ÑP{]À¨•Õçr0ÀR±ÀÙ¼½t'ïà-Z@(›¾é$X¬»Ìñ¶Û#òÐ?‡k«?wˆÕéŽCù,ÝXñü6Y’ܘÝͰö{èv{ðýå†&깟›á¼¿Á|0Ç&ó¾Í¶+ïUÎg Ð?1ÛG¦½w>¿©}Tþ_Ž´ñZűOq¿ê:l0ƪ»<ù£RupËÆz5ë#6Ýͤ*ÅfL_v,~ò-™rTåW;ëùv\u÷oÏSûôo¦6Î/ºV¹o‘ Y=+æâ>Å1уq„íBpˆ@^àOêZÕþPR–‘ÇÇGñøø(þü׿ ™ßÿ1„B!„ã ŸËñ{ÓëþÞ¼y#¾ùæ›=IŠÀƒ O¡ôKàÅ×·þb÷á¡ ?ûÿ òuЖ%ÂO¯ùb!Ì2éê^Nu¹:9òùmêþ$“BÓJÙ5u áY´GîÂó–Ƀ¢ýÃ@xÝëÚäP×õv¥µô¶cÖ‹¢ töŸ×£¶ŸlåØé;šôú¾S^/Õl[?nØ¢•/§cU¿Îü–•Ï—ôÛþSÑ®²ºPèCî—6éëê/ÓgJŒ!:ýíÈŸ”c–[%Ÿîþå®ëÆ„ú6YÏŒ,76+äÏõµ¼ý´‰üy[È×+ÿ[ÁØÝX=vü•Æž2æu¾~Z¦îß{²—:íT0Æ1ÛC¦»w>¿¶}4þ?o׺¸¤dooäuhã?‰±„ÞwêcXý8ZX‡²±^ú,|Éf}_1eû™2½n Vøie)ÝW+OÑØiúw¾•ñZ;ÖØ«ñz¾mm’—·®³Í/ýÛdÉoÞ×_WÖq¡ ™tcŠût¾SǤeÉãl¶ÝÒº¡½ï.ŠIŠb*SÞŠþ_ö³>|ïÞ½ß~û­øñÇÅO?ý”ù{||Lÿ+ÿ½ÿ^üüóÏâûï¿oÞ¼I¯;&ÿü~óëÿM†ÿð§1~÷Û!75B!„räãó¿üíiüþþý{cÞwïÞáõë×øê«¯>j¼}ûöYë°8˜÷&ÝÃä'/Ó®¨ÊGù>~yz,pæ=ˆÛƒò1#„ Ñ à¶òßÚ‚1ÞÜÐçQȱÄ1‹,o߾ŗ_~‰~ø¯^½Â矎Ï>Ëâì8„pgçºã8øðá¾ûî;|ñÅx4!„B!„¨žö0Ÿúèu•ŸB±ô8'øs΀W¼ã0Æa„¼dÖ#´Π™JDã§…ÑšªýÔ㘗S½¢yB!„BHž.&¢{Àü„Bˆ¥Ç™ˆ õ@‡1#äÀb%† ¹‚àa¸Œc^`LÅ`B!„B>Þ¾}Ë:B»z1z¡|”ýˆõ ÝS>B!„¨á0!„B!Ÿü0!´«—¢ÊGùØXÚ=å#„B^ÒóWÓðÀ„B!„B!„B!„òBà0!„B!„B!„B!„¼¸L!„B!&¢1:1¢Cå'„BôÒë¹Àq8ŽƒÁ’íB‡ÂqoòÇ~ÆiÈÑDãNì»:7­˜Í/ƒÝì]gÆæìç9à0!„B!¤±­ÎΓïƒÌ߃äÁ;óð-_Àê‘J~ˆÏÜ»¨¬¼Læ:Dw3 WW®VŽ\~+y‹(Mú´Ñ›¢î© 8…ç¹ü™:™&>trêzec·³­^rmþf+§:ÝÓäSÞŽªÙl¥‰¶­—·¡I¦|ÙrHí•ÞW51¥œ¬Ò÷ŸÆõ·dûc4F'©GÓí§›Ür²cB¾Ý2ö®ÓßN{Ô ÕµíuC_3ú2R˾m|ËÙA( „À¤Kµ ˜Óø'ÆaûÃlï­nkjŠ× ƾl|hÇK÷°Ž›ˆ±ŠbÚ"®©[I;×¶IÕþç˴͸ú\‹nI½rvg÷\q¼¡“®e[éâøm[¹Ã„xeã½¢ñâ™ý¢l/ǸÐ$±D4¾À¨½€øˆ.B!„Bª³À9bû µºÒRŽs†i&ýXlÓ "Ø\c»Öq–^ƒ ÎlƒÂ{´Ó²h. ËRˤ¯C|ôÏ]}¹9òùµé4:Ù}àÜ•½ŒÞ”u—&i®áÃ3>ðæóG_ÌвŢхnqY-ç¡®W{à·µ"½øiz!VºÆ'9Å8SNpèÓm'ŸDú·ðïôµ¾Ü›-MIÛVËÛjn\J&÷2zŽÛPj/!˜[½`ê?5Q Z’½ˆÚ÷!Ð`Ñá&ny3‚[ ]MúFq1\ ˆ0HÇ„hÜAkÖ—ôº@{Ô²[(•Û#ìcÖªö2†® Ê\׎ ~€Ô1§!V«!Œ°A'TûÉû'Æa{Ã,ï­k;jˆK t¿åUÄ7–qbs1–:¦µòẺ•´sm›Tè/O~ÔG{v£}7Éóá˶q½ñà½{ÒÄÏJ³× üaÀó„b‚î±úE¿ý|“ Û7%"Œ;UbÑ%nF@pùq½¥Æ`B!„BHõG²ùA¨~€u‡«Ì ;‘ÞÆ q¿nãÄ]b>õÑ‹¯»ç}x›‡âêLY-œzÛ3SY*™LuØ–W £RŽ|~C:¥NlôiIÞ-hjl'Å®OC¬.Oå‹ÖùSZ§šßtrêzI¢R¶S¤¹ÍŸäD·}°jºhŒë©«áõé6[:¶Ê»ïi¦w3ì´WwRÐ~¶ö_ Y/]Lb¥u/l®·»h³:R§ßãH¿ðº•'Þº˜„0»+9ùy‚vƒ}°Üuý˜`Õ—Ýî¡üNëcÚ¹#ïïŒ18¹ã—´FXcгDöR»¤êè2bDüÿªÝ_ù“|÷¸é8û;þóØaV?ÓÝ[‘߯¦­ü©—˜t¯Œ-uU6j*ÆRÊlëÃuu«`çÊ6©SNqyÕÆèÆvww„ñÅëõ-ÇAçê*»»3ä…0Õ¸«÷’lï÷Ÿ­|½>0»‹÷‰ßŒÐî÷3íâÇÔ쑽Êô&_g=fÛôŸ/56f¯—è¿uýb¾ŽÑ΃NRÖÓ‰.fÝÙ‹é¾–mWV7éi4sôVÃí Å.†«æeã¥åS¯s×Ô÷Ž.B!„B*²Ä|ºÆ¨å”üÖŽô@§zûÙ=A[÷@­-ò3HdÖeÔa9ÇÔïÙ˘—C—GÞØPAoѸƒ ÜVÜíæb¸ºÂ}¢»Ö ý[‹·Åurêzãö_¤—xb"sœßé¤A §žüÿ2Åé¶;E/c²(W×wªRÒ¶³ò6D<•™ Œî0[ãÃ.z~lùÔâª=ÂÅÅ íE¢;Cú}=`ãU_UÝfŽ©wŠÖ1¨>•¿ª/{~Ÿ;hÒdO;Ų×÷÷¢B3}ó¾—ìžò1½#Š_&ð’â«Ü(ëÙtûqåO1_æýõƒÖ=®ä]ëÉÃTþ¸?®78½Mä„vwãǃÊ?1ÛgVîÞæöÑûS]\¢×½9>ÔÉ›—¯bœX1ƪÓZ¶EI;×¶I•þÒ`³œÒW.†·Oãê꺓–ÝÍÐö}!îqŠ–Ö¿(ƽ­`»v…d½´5¼B{tƒe4Æõ&Àå¹<ÜJ;mÒB¶Ò'èÒë|]‰1Ûdqi[™ìÖ6^F¿¨óK Ó³ àÖF·9{ùÕ/ ⎲mW2Ú8pœXvUÛ5Kt1⸰Œ©£‡ ¼þyl »;2¸L!„B©tÜ[`sf³S'>^Tô0oämÙøHÔÛªGUéë°œOá÷º•åPçWÉÛ°NÜ!V…Ç7F¸›­±µâ ŽøÍïä˜-‹ãŸŽ­ xëJù/Ñþõz‰'2Çÿu1 û˜¥“œ-Œ” •é2»lÊ­ÛwP϶÷µû7trdܱ,<æ[vËÙ›ï|¿±{èC>mΔþ(‘ä¯Oͱ‚u}Ù3=`ã©-¸ç}xÓ9–¹ëG,§n7 ®žûè{=Óxx9ßluŒ°‘²¶¾1^ÉëYz1Â=ïÃkô%£g‰þ‰qØ~ã0ýwò´O?ÕÇ%*ÝâC­®ÔòÕ‹ËÄXE2[7œÁJÚ¹¶Mª÷—ôdy¼ÔW¹þÝó·‹•á}½ËSlæËmþö \Ó¸›÷Ö#´Z÷¸ÚY˜‹_PkоÊÕMÞ)y6’]Î:Ÿ J¯óueÆl˶RÛ˜m¼^²ÿ×õ‹:¿Ô:…'ÿ»¨-êÜ·LùFÝl¿±<ï|† ÉXÂb•ÆÔ%b?ë¾wx¸L!„Bi÷ýRoBwÑóרù|eô€õBÍç§¡æ!±TYù:DxØxP~št§\•ªüòêtbû Zj+™ä’Þ¤÷ûÅ™ä ÿnRVÑ·ë ä<Ôõ¦íÿß¶z‘ŽŸL&ÒvÐÈYng§‰1}‘-–¥¼mïe÷¯¶}NÐ^ÏpwÌÛ󺱀o»ØU6}Óº³íSÉ‚|×™NþÒ¾ìÀ„÷X3©Øç.læXb‰ùFÚ·óñàxðF)óiÆaÍŶ÷Þm£?µ×RÝÛÆ‡:ycùþS1N¬cÕŒi Û¢¼«Û¤fq‡¸íÏps§ð±ãU븗˜oNÑrÏÑß̱ ïÑî•ݼ ÍÉ Ýˤc’cûë´¤oêR¡Koòu5ÇìL[™ú‹m¼~¬”m‹g/û"IoþŒG*' Öó^y_ÿ‘Ä \&„B!„Tdû¦÷uòtfqÄj4HsĶN[Ûr’c£»Öí“â ›hŒÎÎ$JÙ² uÈÏf(W)vwÓ¤SëÄ^ÿz™j<8ÛäwOÐ^næÈèNþ¾˜NÎC]ß³ýÿÒ —åàéè>eÙ~ƒ Éñb;ߨԤ‹Óêwÿ¨Êmpñ·Šm?Û·ŸÚë2F­¬>—ƒ–ŠÎæíÅ ;yµhò·lú:¤“­±î2GÛmDÿ®­þÜ!V àÌ9ÔîZóXQÆ—„ܘÝͰö{èv{ðýå†&깟›á¼¿Á|0Ç&ó¾Í¶+ïUÎg Ð?1ÛG¦½w>¿©}TþTŽ´ñZSq¼F>S<´«RìòäÌmQÒεmR·¿îð ¶þ¹h¼’^ºrÏûÀõu<Ö¹8ïó9¶u,9+,p¶{¹;ÄJµ&–ÝÍŠ_ZR¥×ùºŠc6tmåÚØ˜"/ûu(¿hj‹üKzUî[ÔÖºÙžts \8åvå–’}»Ûx{Ò´€˜t-Šlc=»ÛÆÂuíî9y||âÏý»ùýA!„B9òñ¹¿'1½îïÍ›7â›o¾Ù“d¡<ðDJ¿^|}ûç/„ ÷šBˆ…ðÓë¾X(C¾| BcYJ™4u/.Ï,£NŽ|~­¼Zc}·é4u áÙ´GöÂó–Ƀ¢ýÃ@xÝëÚäP×õv¥µô¶cÖ‹¢ $ð²JÏêQ—.–#{MŸ^ßwÊ륚mkä-V¾œŽUý:ó["T>_ÒlûOE»ÊÚÐî8šé—6éëê/ÓgJŒ!:ýíÈŸ”c–[%Ÿîþå®ëƽ/«C#¾wglVÈŸëkyû=h=ùó¶¯Wþ·‚±»±zìø+=eÌë|!ü´LÝ¿÷d/uÚ©`Œc¶‡8Lwï|~mûhüiÞ®uq‰ÍØ'Û¾QÞ¢ëú±µ‘Kè}§>†Õ£:_Rlçê6©Ò_„ÆŠ…Ÿõ³š±háçï#éK.C7îšÆíXnïë¯wåË¥Mä <ß/ô Êô&_g3fb*uÿQؘ1ÏÛ¨Â6ó:®ëmóÛèV¶¹MKÞ·°­uºÑ²¾\F#±D(¯Jl‘ëCÚ¾W-Hüì‡Ä»wïÄ·ß~+~üñGñÓO?eþÓÿÊïß¿?ÿü³øþûïÅ›7oÒëÎã㣀É?ÿ…ßüúÓ…á?üiŒßývÈM „B!„ùøü/ûG¿¿ÿÞ˜÷Ý»wxýú5¾úê«Zoß¾}Ö:,ÛoMº‡ÉO^¦]Q/”ò}:ýò õX¶G6è|Ø”q!䨨âë¢1:Àmå£Áµc¼-C—M󒉯´î¯±ò~öË/¿Ä?ü€W¯^áóÏ?ÇgŸeqvB8޳sÝq|øðß}÷¾øâ <šB!„BT³ ˜Osß°zÖü„Bˆ¥Ç8éÄŸs,¸âE‡1#„¾n—õ-Ç3hæìÞhÜã´0Z³}>Üá-‚ÍYcöó¼b³B!„BHž.&¢{Àü„Bˆ¥Ç™ˆ õ@‡1#„¾N‹;ÄJ4{â­;\AðÝOÕÀÇÔä\&„B!äáíÛ·¬!´«£ÊGùØXÚ=å#„Bˆ.B!„ò‰ÀoB»z)z¡|”ýˆõ ÝS>B!ä%=5 ¿L!„B!„B!„B!/.B!„B!„B!„BÈ À„B!„b"£Ó#:T~B!ôA/½žËÇã8,Ù.„q!/r kâ¾ÑØ_8rѸû¬Æ\èO.B!„Bê!MÚvvž€—dè–$ìʇö|zˇÿ̽å{ °;- ¸‡¡ÑÝ èŸÃÕ•«•#—ßJÞ¢‰ “>Uu…µ~—N¡îsù3u2M€èä<ÔõÊÆng;Z½äÚ:ýÍVNuº§I¨¼U³ÙJ7elÛÚnê˲s©½R™TOÊɨãS]ý-ÙþÑIêÑtûí „q'._’!og{×éo§=ê¶·® l¯úšÑ—‘Zömã[Î6B!&]ªíÁœÆ?1Ûof{ouûèý¿©­rm«Ó½òzU9lügÝ«(¦-’Á&f)ãXö‹CúŸ¦ßžk1Ï  ‘q¶ý³¸ßîØP®Üá B„<û8/Ó¶6z’Óì£r}v°<2›8ÄÂð>u~ ¸L!„B©Îrç Xˆí¤íjèJÏO8Φ™ôs`±M+Dˆ`s§ùEzá=ÚiY ´GØ®›œ¥÷ƒ Τ (µLú:Ä·AÿÜÕ—«‘#Ÿ_›Î “ìóè®ì¦ºÚä—'9®áÃ3>çóG_ÌÐ'ìŢхnqY-ç¡®W›°µ"½øiz!VºÆ'9Å8SN6èÓm'¡Dú·ðïôµ¾Ü›-M)Û¶·›Ê$“‚=Çm(µ— Ì­^ (=>Ù¢´$}ˆÚ÷!Ð`Ñá&ny3‚[ ]MúFq1\ ˆ0HÇ„hÜAkÖ—ôº@{Ô²›¨–Û#ìcÖªö2†® Ê\׎ ~€Ô1§!V«!Œ°A'TûÉû'Æa{Ã,ï­kµÿoíÆ:¿«Ó½±MÊÉaã?›‹±Ô1­•×µEY»)Û/ílÆèûþYwïØPmäùhÏjÄÛûh§L|`s/‹MZŽÒ7¸L!„B©Ìr¾ANÐU>3­2 €îDÚÙâ~ý4á«Lo"SV §,1ŸúèÅ×Ýó>¼ÍCúP¯º‡©ÛòÚ8q å*åÈç7¤3èĬOƒLònA˜õ;¸> ±º<•/ZçOij~ÓÉy¨ëUçÊÚN‘^ä6’Ýüõ=ªé¢1®§>®†ÿÕ§7ÚlêØv¡~š"ÂÝ ;íÕ´*ŽO¥õÒÅ$VZ÷2Àæz»‹vÛ¦®1ýGzlןåI°.&aÌîÊõ)÷íû`¹ëú1Áª/™;úÎ1íX‘wƒwÆò»–´FXcгDv]=×e~GXüÿª†ù“|÷¸é8Ÿî1 ŒÃêÇaº{+òÛØtÖWÇ%:Ý×srØøÏ¦b,eLkëÃumQÖnJö‹ÂzêÆÎhŒNg€A'¹ötz‡ö=ylk°–Çhävr§ãöÓ=ä²³»¾[0¾a½¡•îxÍî”üß6ÿÝ@³óÔjì­Ó?Íñ´Ê†¬ûƒ±ßžâòªÑMÑý¤Ž9]^]I»Qs:]B¿3Þv,q‡X…OqçQØDaü`ÿ¨åRéÑ sU™ä:"¸L!„B©Èóé£VÙ‡žd‚bŽžhhÂ=ºÃ }œçç¼Ü´•‹i–uXÎ1õ{»2êÊÍˡ˿#o:)¬«j¾¡ƒ ÜVÜmàb¸ºÂ}¢»Ö ý[‹·¤urêzãö_¤—x‘#sÜ‘•¿ª/{~Ÿ;hÒeO»™²×÷÷¢B3}ó¾—ìºò1½#Š_&ð’H«Ü(ëÙtûqåO1_æýõƒÖ=®ä]ëÉÃTþ¸?®78½MäDó§<;*ÿÄ8lŸqX¹{›Û'ëÿmâ5î‹ÆÄªrì7ƪÓZ¶EY»)ì–þG9vJcÐÂÇôì¸Íýnð!;¾"ãbÔNw¹.Ú±-KãÜö>Ûů̮ïE²°ébxû4ž¯†Èî¶“ÿÑÕ§ÄØ[»ªãcµ 5#t'Xà,—_çÛsºüÕ/$›Ëé´kÐ]1ìà6QÔìâµ\*=êt®k# ¹.B!„Bj ØœÙìÔ‰=ÌÙ1‰ZyI_‡å| ¿×­,‡:¿JÞ†uâ±*<¾1ÂÝlõ¨õ´`=B«3Fd•_>Z-Dà­Õoµ‚ö¯×K‘?°‹IØÇ,Xja¤\¨´H—ÙucSnݾƒJ¶½w»Éßv, ù–Äröæ;ßMì^ú¸ìÚ¥?JäùëS„Gyœ^_öÌDØxAj îyÞtŽeîúQ#Ë©Ûý¯«ç>ú^ÏÇ4^^Î7.»ñqÔO \[ßOzçõ,½áž÷á5ú’ѳD ÿÄ8l¿q˜áÞ;ù Ú§`÷¯Þïêt¯»^OŽýÅX†˜¶\Ãì ¬ÝØö ÿ£;“1¨u OþwÚO;;W+³¯pOÐÆgñîÆô„ù°n~²x*ïˆ<›ªSv¢;Ì ¸§ª>eÆÞºc2>ÖÙÐ?ÛÆý>=Ý¥ªÏSéÔ¤»RcÑ‘Ù„ÍØØ†J.e㛸æÀp˜B!„Ò î9úÚ‹êðž¿F½ÏW.1£<`Ç IDATp®qjl£lÊ,údêáaãá´eS®JUþyëè¤l]ÓI+é­i/°_œ‰Æ¸Þ$½.†«¢o×Èy¨ëMÛÿ¿mõ"#è±Ê´ƒF΂t;»nŒé‹l±á¾˜ØöÿU´›Úís‚öz†»cÞž×@ˆ|ÛÅ®²é›ÖmŸJäÃà¸Ètò—öe&¼ßãI*ô¹K›9–Xb¾‘&´w¾#þÞ(e> À8¬¹8ÃöÞ»ícÜuk¯éÆ>í˜XR޽ÆX5cÚ¶(k7ûEÃþGÞùø´›Q_çíâ~ó¢ã÷ÿ3F§%}‹¹©“'ö9öÊ:WÆÇ:êáÿ5ÙFî·ýnîî#MènÇ.À&êÆ?Ñä:2¸L!„B©Èö(ÒëdÉâˆÕh<È|wg>ÕLìY=¤ŽÑÙ™\ÙÊ”éÝͰnŸ& uÈÛf(W)v}Ó¤«®“"™jì`±Éïž ½!ÝD’ÑümEœ‡º¾gûÿ¥A/ËôÍ*UÙ~{ ýs©U“-¹tqZý®U¹ .þ–±íÿ1ègÏãÕeŒZY}., œÍÛ‹AwòÞ¢„²éëN¬ÅºË'¸=ýs¸¶ús‡X-î$9”ÏÒe|ÙAȹÑÝ k¿‡n·ÿØ_nh¢žû¹ÎûÌsl’ñ1ïÛl»ò^å| ýã°}ÄaÚ{çó›ÚGåÿåøA¯étoh“²r=G–ãiű·Rÿ4ÅÓužw-û½;¼Fñ7˜‹|^þÅ9•NMº³~&Œ9¾fž-j…Mlÿ¨ä2ɱ£óçŒKöÀãã£x||þëß…ÌïÿB!„BÈqÏåø=‰éuoÞ¼ß|óÍž$ EàA€'‚Pú%ðâëÛ?!„Xø»×Lé%òuȧ ¼ B,„Ÿ^óÅBÝC]‡0ðâòÔåêäÈç×ÊkЉ(”]S×0žM{do ›øÆBKÿÙHŒ%ô¾SÃêÇQ/)²›òý¢ÀÿèÆNݪð»Ê¸Ð÷såÈòÅ2ïÄTOr/|ì–•ûMU†ÿÏ_P4öc Ëþ©§u÷0õ“¼mZ´a"C‘o—uùõ×Z=í>“åâ0LšXY‹MØÄñV.ÍxV¬ó¸Î&¹jÄ>|ïÞ½ß~û­øñÇÅO?ý”ù{||Lÿ+ÿ½ÿ^üüóÏâûï¿oÞ¼I¯;&ÿü~óëÿM†ÿð§1~÷Û!75B!„räãó¿üíiüþþý{cÞwïÞáõë×øê«¯>j¼}ûöYë°8˜÷&ÝÃä'/Ó®¨ÊGù>~yz,pæ=ˆÛƒò1#ä$£sÜV>Jû¥Ëa¼¤¡Ï©Ð&Ž-þ9„ŸýòË/ñÃ?àÕ«WøüóÏñÙgÙCœÇŽãì\w>|Àwß}‡/¾ø€&„B!„Õ$æS½î¡òB!–gà¤Î°àŠaÆ8Œ—Ìz„–ãÀæ£ѸÇia´fS0þ9n^Q„B!„’§‹‰è0?!„béq&bB=ÆaŒÃiwˆÕêHå˰‚Ò&ÿ?\&„B!äáíÛ·¬!´«£ÊGùØXÚ=å#„Bˆ.B!„ò‰ÀoB»z)z¡|”ýˆõ ÝS>B!ä%=5 ¿L!„B!„B!„B!/.B!„B!„B!„BÈ À„B!„b"£Ó#:T~B!ôA/½žËÇã8,Ù.„q!÷ö ìgœ†M4îľ«ƒqÓŠùØüâ1ØÍÞuaÜiÎ~ž.B!„B{Ðêì<ù.1È<ð-1H¼å‡où\YNÁC|&|vÏò2™ëÝÍ€þ9\]¹²§ù­ä-z 4éSUW‹º§*pà>œçògêdšøÐÉy¨ë•ÝÎv´zɵuú›­œêtO“Oy;²ÑK“¥m»évÑ˲ÓR{¥2©&¦”“UúþÓ¸þ–ƒlŒÆè$õ¨2^V™Ür²cBÞÎ2ö®ÓßN{Ô Õµíuƒí}©eß6¾ålƒ B`Ò¥ÚÌiüã°ýÆa¶÷V·Þÿ›ÚJj[Íu›r³qcq=Šã̺1VѽŠ|xÙ:Ø<Óèt³S“ÿ‰óe®ÛŒ«Ïµè–ÔËhG„ bÒÕÛ¹U¿íïîp!B^Ùx¯h¼xf¿(ÛË1.ôI,/0j/ >¢@… À„B!„ê,p΀…Ø>h­†®ô€ÔãœašI?Û´B„6×Û‡êðíôúíÑEñÄ£&Ïrp–Þ# 68“&$Ô2éëßýsW_nìI~m:Nv8we7ÕÕ&¿|Y_Ñ×ÞÑ»'Mü¬ë/uãWwˆUÀó„b‚î±úE¿ý|“ Û7%"Œ;UbÑ%nF@pùq½¥Æ`B!„BHõG²ùA¨~€u‡«Ì ;‘ÞÆ q¿ŽÒ2×[8µ™1PæYb>õÑ‹¯»ç}x›‡ôá\%“©ÛòÚ8q åeOòÒétR¨OƒLònAS{`;)v}buy*_´ÎŸÒ:Õü¦“óP×kL•²"½Èmþ$'º=øë{„UÓEc\O}\ ÿ«OoisÖ”²mÛú6M„»vÚ«;)h?[û¯…¬ÿ.&±Òº—6×Û]´Û6ué÷8Òo'¼n剷.&aÌîJN~ž Ý`,w]?&Xõåc@·{(¿Óú˜vîÈ»Á;cŒNîxÆ%­Ö˜â,‘½Ô.©:ºÌŸŒÿ¿j÷WFþ$ß=n:ÎþŽÿ¶õ­H<•™ Œî0[ãÃ.z~lùÔâª=ÂÅÅ íE¢;Cú}=`ãU_UÝfŽ©wŠÖ1¨>•¿ª/{~Ÿ;hÒdO» ³×÷÷¢B3}ó¾—ìžò1½#Š_&ð’â«Ü(ëÙtûqåO1_æýõƒÖ=®ä]ëɾTþ¸?®78½Mä„öŒ•b¶Ï8¬Ü½Íí“õÿ6ñš]'—kŽwëQ=Î,cÕ‹i«Ö!ŸÞ26Ní¯„ÿéN°ÀYîwÝxåbxû4®®®;©mFw3´}Äc_ˆ{œ¢¥õ/ŠqoûífØ’õÒÖð íÑ –Ñ×›—çòp+í´]H ÙJŸ K¯óu%Æl“Å¥vnjÃ=įuý¢Î/-|LÏ.€[ÝæìåW¿(ˆ;ʶ]ÉÞ?pà8±ìª¶k$–èb"Ä-paSGxýóØ vwdp˜B!„Ré8º0ÀæÌf§N|¼¨èa¾ó¶l|¼ém™c§ªä±«Ãr>…ßëV–C_%¯I'p‡Xßán¶ÆzÔŠ'8â7¿“c¶,Ž|:ú0Dà­+=ä¿Dû×ë%žlÈÿ×Å$ìc–Nþµ0R.TZ¤ËìÒ)Jß°ÍYÛ¶m}k?:92îXó-;‰åìÍw¾;ؽ ô!Ÿ6gJ”È ò×§æXÁº¾ì™‰°ñ‚ÔÜó>¼éËÜõ£F–S»ÛPSÏ}ô½ži¼¼œo¶Ç:FØH m[ß/êåõ,½áž÷á=Ëi{‰þ‰qØ~ã0ýwò´OÁî_]\RÇeÊ5ÄÊz¥o2ƪ{/][”­³Mlœ·?{ÿ“ž "—ºñ*׿{þv±2¼o£wyŠÍ|¹Íß>kwóãÞz„VëW; sñ j­ÚW¹±@Þ)y6’ò:Ÿ J¯óueÆl­Íöu–ˆ_Ëôÿº~Qç—Z§ðäµEû–)ߨ›í7–罂Ï4K¸C¬Ò˜ºDìgÝ÷€ !„B!Íàž£_êMè.zþOŸ¯\bà\ã4´0³È=`SfÑ'S‡§-›rUr¨òÕ1¯“”­k:i%½Iïö‹3Éþݤ,ËoÉêä<Ôõ¦íÿß¶z‘ŽŸL&ÒvÐÈYng÷U¹5lmÛ¶¾¶Ï ÚëîŽy{^w!ðm»Ê¦oZw¶}*YƒãZ ÓÉ_Ú—˜ðkF ûÜ%‚ÍK,1ßH»Aw¾#þÞ(–Ÿâ`Öpœa{ïÝöÑïþ5ÄkñJ¶\Û¸1©GÍ8³TŒÕà½*Õ!NÿE:-°¿"ÿãqÛŸáæNác Æ«Ö)p.1ßœ¢åž£¿™cÞ£Ý+9ºyš“º—*ÿ/ǺxͯƖõxΫRìòäÊÖA™þŠbcu)ãÜá0mýsÑx%½tåž÷ëëx¬sqÞæslëXrÜm WXàl÷(rwˆ•jL:-!º›¿´¤J¯óuÇlèâg×ÆÆ â׺Ïaûô‹¦¶È¿¤Wå¾Emm¡›íI7·À…SnWn)Ù·»·'M ˆI×¢È6Ö³»m,\×îž“ÇÇGñøø(þü׿ ™ßÿ1„B!„ã ŸËñ{ÓëþÞ¼y#¾ùæ›=IŠÀƒ O¡ôKàÅ×·þB±ðw¯)Òž\˜;uÐçY?½æ‹…(IS‡0ðr2¨ËÕɑϯ•W£“M+e×Ô5 „gÓÙÏ DX&Šöáet¯k“C]×Û•ÖÒKØŽY/Š6lÀË*=«G]ºXŽ|ŸÑ¦·°¹2cFiÛÖÖí|9«úuæ·§A(›/é ¶ý§²þdÚG3ýÒ&}]ýeúL‰1D§¿ù“rÌr«äÓÝ¿Üuݘ ÷euhÄ÷îŒÍ ùs}-o¿­G"ÞòõÊÿV0v7V¥±g£Œy/„Ÿ–©û÷žì¥N;•ô ŒÃˆÃt÷Îç×¶ÆÿçíÚ*.‘åÕ”«›lt¨ðÆX†{écXý8ZXcÛYÄi)ð?*½-ü¬ŸÕŒE ?ß/¥òå2tã®iÜŽmßûúku»Ji9Ï÷ }‚2½É×ٌن˜JÝmbŒÃó6ªiKYÇuý¢m~ÝÊö"·iÉû¶µN7Z—Ëh$–EàU‰-r}HÛ÷ªÅ‰Ÿýðáƒx÷îøöÛoÅ?þ(~úé§Ìßããcú_ùïýû÷âçŸßÿ½xóæMzÝy||0ùç¿ð›_ÿoº0ü‡?ñ»ß¹©B!„# ŸÿåoÿHã÷÷ïßó¾{÷¯_¿ÆW_}õQëàíÛ·ÏZ‡å`û ¢I÷0ùÉË´+ê…òQ¾O§_¤ËÁö(ÃÛƒò1#„U|]4F縭|4¸¶`Œ·—øŒù‰Æ´î¯±ò~öË/¿Ä?ü€W¯^áóÏ?ÇgŸeqvB8޳sÝq|øðß}÷¾øâ <šB!„BT³ ˜Osß°zÖü„Bˆ¥Ç8éÄŸs,¸âE‡1#„¾n—õ-Ç3hæìÞhÜã´0Z³}>Üá-‚ÍYcöó¼b³B!„BHž.&¢{Àü„Bˆ¥Ç™ˆ õ@‡1#„¾N‹;ÄJ4{â­;\AðÝOÕÀÇÔä\&„B!äáíÛ·¬!´«£ÊGùØXÚ=å#„Bˆ.B!„ò‰ÀoB»z)z¡|”ýˆõ ÝS>B!ä%=5 ¿L!„B!„B!„B!/.B!„B!„B!„BÈ À„B!„b"£Ó#:T~B!ôA/½žËÇã8,Ù.„q!÷ö ìgœ†M4îľ«ƒqÓŠùØüâ1ØÍÞuaÜiÎ~ž.B!„B{Ðêì<ù.1È<ð-1H¼3ߺë–ñ™{Ëe °[R^&s¢»Ð?‡«+W+G.¿•¼Eu7éSUW‹º§*pà>œçògêdšøÐÉy¨ë•ÝÎv´zɵuú›­œêtO“Oy;²ÑK“}`×¾šn½,;m µWZwÕÄ”r²Jß×ßríѤúndrËÉŽ y;ËØ»N;íQw‚T×¶× ¶gôe¤–}Ûø–³ ‚P@I—j;@0§ñOŒÃö‡ÙÞ[Ý>zÿoj+]\R&~2Ń6qÀ>b¬¢{ùpËgeìVáºí3P\ߌNmÆÕçZtKÚ#'·ÝsÅð„B@LºúþS¢¿¸Ã„xeã½¢ñâ™ý¢l/ǸÐ$±D4¾À¨½€øˆ.B!„Bª³À9bû µºÒRŽs†i&ýXlÓ "Ø\oªu×M„÷h§yh.°]79KË ƒ Τ µLú:Ä·AÿÜÕ—«‘#Ÿ_›Î²î*ÙMuµÉ/OÒ\Çg|àÍç0¾˜¡?d‹E£ Ýâ²ZÎC]¯öÀok;EzñÓôB¬0t#Œ;OrŠp¦œàЧÛN>‰ôoáÞék}¹Uú[…¾¨³¯&ÛEI2¹—Ñs܆R{ !°ÀÜjÚÔj¢´${ ´ïC ;Á¢=ÂM,Üòf·ºšôâb¸a¶Y4î 5ëKz] =jÙ-”Êíö1kU[ô×µA™ëZÛ+ð¤Ž9 ±Z aÔhô€ Ú8¡ÚLÞ?1Û{VÊï¶Úÿ·vãe\¢‹+Ìq‰²%ã€ýÅXê{Yùpc[èúF‰ëuž<íÙŽöÝ$χ/Ëq½ñà½{ÒÄÏ¥úKI𼡘 {¬~ÑÆo?ßdÃöÅFc‰ãN•Xt‰›\~\o©q˜B!„Rý‘l¾Aª`Ýá*³€èN¤·qCܯã‡4Ýu™<-œzÛ³ùÔG/¾îž÷ámÒ‡s•L¦:lËkãÄ5”«”#Ÿßβd’w šÚÛI±ëÓ«ËSù¢uþ”Ö©æ7œ‡º^c’¨”íéEnó'9ÑíÁ_ß#¬š.ãzêãjø_}ú*ý­t_ÔÙW³íbO„»vÚ«;)h?[û¯…¬ÿ.&±2»—6×Û]´Û6ué÷8Òo'¼n剷.&aÌîJN~ž Ý`,w]o{V}ùÐíÊï´>¦;ònðÎã“;žq‰Ak„5¦8Kd/µKªŽ.ó;ãÿWíþÊÈŸä»ÇMÇÙßñŸÇã°úq˜îÞŠü66õEq‰.®0ÇÅõ(ŠöcéîeåÛŽlË·ºï).¯ÚÝØîîŽ0¾a½¡å8è\]eww¦c˜´¦w•ã^Ò@ƒíýþ³•¯×fwñ9/7#´ûýL»8Æ15{d¯2½É×YÙ6ýçË’ýEç_,OQ¨ãóuŒÆètt’²žNt1ë¶È^L÷µl»²ºIO£™£·nOph,–p1\õ0//-ç˜z}œ»¦¾w|p˜B!„R‘%æÓ5F-§ä·v¤ºÌÛϺë6EÞaé,}¾;A[÷pnS‡åS¿·+‹®Ü¼ºü;òÖ¨»u]Uó\à¶ân7ÃÕîݵfèßZ¼-®“óP×·ÿ"½Ä™ãü6xH' Z8õäÿ—)N·Ý)zÛ)}6WЭì«ñvO`e&£;ÌÖǸð‹žÛD~u‡¸jpq1C{‘´‘!ý¾ˆ°ñªŒ¯ªn3ÇÔ;EëTŸÊ_Õ—=¿Ï´Fé.»§Ý†Ùëû{Q¡™¾yßKvOù˜^Å/xÉNñÕ n”õlºý‡¸ò§˜/óþz‰AëWò®õd‡a*ÜלÞ&rB{ ÆÇƒÊ?1ÛgVîÞæöÉúÛxM'ØÆ% Ä ÅXõbÚ¢¶Ðé¾ìõÏ@Ý 8Ëù'Ýxåbxû4®®®;©mFw3´}Äc_ˆ{œ¢¥õ/ŠqoûífØ’õÒÖð íÑ –Ñ×›—çòp+í´]H ÙJŸ K¯óu%Æl“Å¥ý§J9 _Ôù¥…éÙpk£Ûœ½üêqGÙ¶+Ùû'–]ÕvÄ]L„€¸.,cêèa¯Û‚ÁîŽ .B!„Bj qØœÙìÔ‰=Ì3oËê®O lKÖa9ŸÂïu+ˡί’·jÝu*bUx|c„»ÙëQ+žàˆßüNŽÙ²8þñéè÷®ôÿí_¯—x²!sDb“°Y:ÉÙÂH¹Pi‘.³û§(}Ã6·cÛ:ûšãç}7KþèäȸcYxÌ·ì$–³7ßùþ_÷2Ї|Úœ)ýQ"/È_Ÿ"<šcëú²g&zÀÆ R[pÏûð¦s,s×YNÝéºzî£ïõ|Lãàå|³=Ö1zÀFZ¼ÙŽ]ñ¢^^ÏÒ‹îy^Ó/³<ïH¤ðOŒÃö‡¿ } vÿªã]œ`—TlIÊÄXuïe²îË^¯ÿ ”ž "—ºñ*׿{þv±2¼o£wyŠÍ|¹Íß>kwóãÞz„VëW; sñ j­ÚW¹±@Þ)y6’ò:Ÿ J¯óueÆl­ÍöŸrý¥fÿ¯ëu~©u OþwQ[Ô¹o™òºÙ~cyÞ+ø A“±„;Ä*©KÄ~Ö}ïðp˜B!„Ò î9ú¥Þ„î¢ç¯±ûùJÝu݃â5NCÍCbô€M™EŸL"úÝ¿ñš.N°K*Å^(Œ±¼—±-t}£ìõŠÏ@î·ýnî>¶`¼j÷áóÍ)Zî9ú›9–á=Ú½’£›`¡9™¡{ÀƒtLrl–ôMÝ¢S*téM¾®æ˜é?UúËÇBÙ¶xöò·/OôæÏx¤r²`=ï•÷õI¬À`B!„BHE¶oz_'OgG¬Fãô0·Ä|º˜Ó]/~`ËOâmeJŽtŒîfX·O “?†:dŽ4”«”»Ç jÒUª;ldªñàl“ß=A{=Bº¹5£;ùûb:9u}ÏöÿKƒ^–ƒ§£û”ýeû .$Ç‹í|£R“.N«ßý“M_ÝæÊôÅ v»çñê2F­¬>—ƒ–ŠÎ߸â IDATg“+£#O¢- ”M_‡t²5Ö]æh»í±€èŸÃµÕŸ;Äjœ9‡Ú]k+Êø²ƒs£»Ö~Ýnþ±¿ÜÐD=÷s3œ÷7˜æØ$ãiÞ·Ùvå½Êù ú'ÆaûˆÃ´÷Îç7µÊÿËñƒ)^3ÅÆëuâ€=ÅX•b—'¤m îK^oêÈ^£ÑÖ?Wò·›ÏûÀõu<Ö¹8ïó9¶÷*9+,p¶{¹;ÄJµ&–ÝÍŠ_ZR¥×ùºŠc6tñs­þRâ9êP~ÑÔù—ôªÜ·¨­-t³=鿏pÊíÊ-%ûv·ñö¤i1éZÙÆzv·…ëÚÝsòøø(ÅŸÿúw!óû?‚B!„räãs9~ObzÝß›7oÄ7ß|³'ÉBxà‰ ”~ ¼øúöÏ_!þî5a¸.‘¯C¾| B!ÄBøé5_,DLš:„—— .W'G>¿V^‹ºëe×Ô5 „gÓÙÏ DX&Šöáet¯k“C]×Û•ÖÒKØŽY/fû÷²JÏêQ—.–#{;B+£›]ùröeÑ.EhåËéXÕ¯3¿%•ÏçKeµì?•õ'ÛÐî8šÕ›EúºúË´M‰1D§¿ù“rÌr«äÓÝ¿Üuíé}Yñ½;c³Bþ\ŸÎÛïAë‘ÈŸ·…|½ò¿Õ#¬ë±ã¯4öl”1¯ó…ðÓ2uÿÞ“½Ôi'ÆaχéîϯmÿÏÛµ..±ˆòe«êQ>ØCŒe¸—>†Õ£Ù¶hàzÕg •Þ~ÖÏjÆ¢…Ÿï—¹¶/wMãvlûÞ×_«ÛUJ›È@x¾_è”éM¾ÎfÌ6ÄTêþS¢¿ˆP^ÞF¶™×q]¿h›ßF·²½ÈmZò¾…m­Ó–…ðå2‰%BxUb‹\Òö½j1@âg?|ø Þ½{'¾ýö[ñã?ŠŸ~ú)ó÷øø˜þWþ{ÿþ½øùçŸÅ÷ß/Þ¼y“^wLþù/üæ×ÿ›. ÿáOcüî·Cnj „B!äÈÇçùÛ?Òøýýû÷ƼïÞ½ÃëׯñÕW_}Ô:xûöí³Öa9Ø~ƒhÒ=L~ò2íŠz¡|”ïÓé—©Çr°=ʰAçÃö |ŒÃ!GE_ѹn+ ®-ãmÁ í€'ÇJ4î uÕhŒ•÷³_~ù%~øá¼zõ Ÿþ9>û,{ˆ³ã8BÀqœëŽãàÇøî»ïðÅ_àЄB!„¢šUÀ|šû†Õ³æ'„B,=ÎÀI'þœ3`Á/Â8Œq!ôu»¬Gh9œA3g÷Fã§…Ñšíó)àolγŸçà›B!„Bòt1Ýæ'„B,=ÎD@L¨Â8Œq!ôuZÜ!V¢ÙoÝá ‚‡è~B¸®>¦&ç0!„B!Ÿoß¾e¡]½½P>ÊÇ~ÄzÐî)!„BÔp˜B!„O~˜ÚÕKÑ å£|ìG¬ížòB!/éù«iø `B!„B!„B!„By!p˜B!„B!„B!„B^Æ# ÿð§15D!„Bù´‰Æè\·«!ÜCä'„BôÒ}Èrçl ð“.Û…0#„ã^Ãò·FXo DŽ&wЭx†M*æcó‹Ç`7/EgMòøø(ÅŸÿúwA!„Bù8ã÷$¦×ý½yóF|óÍ7ûfá €ð‚0ÿ£ð½@„òÿÇiø EqÈäÙ²S‡0žTÖÓ½å{øBq‡œLæ:„_Ó”«•#—ßJ^µNìô©ª«EÝ ônÌŸ©“'‚ÐO)ç¡®쪬þT¶£ÕK®­ÓßlÛQ. <©LÙŽŠËµîo& ú€þ>z{,B+_N–6Ú+ÕS//‡êZ ykëoágõÂKêa¡ïzò…"ðâò%òv–±wþvÚÃ4NØÈ§kÛë†>aôeÕhÄ÷*mñy©U+ù·´ƒ·ÇÛe¯±š+諌Ãö‡ÙÞ[Ý>zÿ¿¯8¬dÜo'6cÕ9tmQV÷ Ǫq}3º¶öá;tþ^awvÏÏLN~mZÅñr[…"ð,|X¦Ü¢ñâyü¢R7MÛNå:–¨Ú+Ä>|ïÞ½ß~û­øñÇÅO?ý”ù{||Lÿ+ÿ½ÿ^üüóÏâûï¿oÞ¼I¯óhB!„BHÍ·l…B`%½ö;pœ3L3éçÀb›VˆÁæãH.ÎÁ5|x6÷ïÑNËZ =ºÀ8–ƒ³ôa°ÁÙ`Y “¾ñmÐ?wõåjäÈçצ+ЉIvS]mò—Ñûnþã‹úa,û¢ÑÅ‘²|µœ‡º^íåu[Û)Ò‹Ÿ¦b…¡aÜy’S,€³ŽJútîp—·ý[ø€wúº°ÜRý­B_4ÝÇdµñ„’>¶zŽï)µ— ̱¬ÚþÍ ¢´${ ´ïC ;Á¢=ÂM,Üòf·ºšôâb¸a¶Y4î 5ëKz] =j¡£¬Líö1k °lª–¼® ü©cNC¬ŠvýDØ ªýÀäýã°½Ça–÷ÖµÚÿ·¬ã‡ÒñS©¸ß>Nl.ƪsÛÂ^÷{‰U=íÙl\îAð|ø²¾¢1®7^ýørïîI?+mÌ6^/ð‡aÏ Š ºÇêmüöóM6`Ð#j4–ˆ0îTˆE½jà0!„B!¤ú#Ù|ƒ T?ÀºÃUfÐHG1…¸_?=¤Eã®OC¬.Oínž)«…Soû8ŸúèÅ×Ýó>¼ÍCúp®’ÉT‡mymœ¸†r•räóÒtbÖ§A¦hŒŽÓÉ< *ÛC§÷ùSZ§šßtrêzI¢R¶S¤¹ÍŸäD·}°jºhŒë©«áéK÷·Ò}Ñ|ŸB{jœw3ì´WwRÐ~Ï"¯Ü绘ÄÊì^Ø\¥mêÓïq¤ÇvýYžxëbÀì®ääç Ú öÁr×õc‚U_>¢1:ŽÇqà8Òäe溧ì¤ô¾eîlí¸Óci!L5î*ǽ¤Ûûýg+_¯Ìî¶’/oFh÷û™vqŒcªì4éM¾Îz̶iÃ/56f¯—è¿uýb¾ŽÑ΃NRV„qÇF·Eöbº¯eÛ•Õ Ùçè­†p%\ W=ÌKÇK†~xÄp˜B!„R‘%æÓ5F­Ý‡?ëºøíçhÜÁn«ïºŠî0Cçùìî Úº‡s›:,ç˜ú½ÝÉ']¹y9tùwäÝÕIi 몚w¨£wÃÕîݵfèßZ¼-®“óP×·ÿ"½ÄŽ#ížÜà!}háÔ“ÿ_¦8Ýv§èelCêôµû›e_Üë}LÄX™ Âè³õ1î0ì¢çÇ6‘@Ý!®Ú#\\ÌÐ^$ã‚!ý¾ˆ°ñªŒ¯ªn3ÇÔ;EëTŸÊ_Õ—=¿Ï´FéƧbÙëÏûbEù¾yßKvOù˜^Å/xÉNñÕ n”õlºý‡¸ò§˜/óþz‰AëWò®õd‡a*ÜלÞ&rB»»ñãA埇í3+wosûdýùø¡8~*;VVŒ+ÆXÍ嶨¨û&cÕî œåt®¯\ oŸÆÕÕu'-7º›¡í#ûBÜã-­QŒ{Ûl7¶†Whn°ŒÆ¸Þ¸<—‡[i§íBZ@Sú]z¯+1f›,.mC“ÝÚÆëÏèu~iáczvÜÚè6g/¿úEAÜQ¶íJF;ŽË®j»Fb‰.&B@Üebje?…ß›VåÊrÄWÒüæt»:±8zѨâ!VbX8ÉugÐ{q~éØºn„q§…ÑÍÃI÷“·hõ²l˜$và\`|¾Â$|@§å`$—»ÓþÝâtÉîáp5éÍí^o}T¶íã½Ý§/ؽG4Žeá1ß²1A¼›æ ðÒ.àë à²k—þ(YÐJŒ@Õ6­/{f¢l¼·òN±ÑËËÓÌõ£Æ žlY·PWÏI·ñöèö|œÍ—˜t»Û݆— cƒ)¦Î4c!N³ò€ôbÄVÎíËÇy’µÚ?ÙÅ"ŒÃªÅa¦{çó´OÆÿÛÇ÷{+ëʼneb¬VC±ª-Êè>Üo/½ p}1Ft+—Êñ*?uÑûÿì½qŒ#×}çù­ñŒœÄ²¥?rÁØcMU+áòþ°rŽ2'9‰¤¸º ±8sd$NÎ^ÒÖLnν^gz°ŽÕJâmg v‘ÓÞóZ¢×&@³lKk[€­@÷ӹ骑Fn$X2¬ ÅS÷GU‘UÅzU¯ŠÅ&»çûõ_½÷{¿÷«÷û½÷ø^ÕvœÅʃ"*[ìì€vˆqq jŒ™é÷FMhš¯me¬c]j*Ú¬¬51šôgVä¢Ò[ˆöuBDÈ.ô¯ÁçGd·rñzÊç¿¸ç— (• Ó¿cÛB~FdËMj;iݨ+®î;GKxòu(J?®%žÃç–Y€‡~³t¬åWUw¾ x¤þ{°,ëXÉý¯þG8?J!„r’Q7P-õphºÔL‹3QÐ7Ut†6þã&°'»ø«ì  š¨³1.°•©Ç%¶dò’#êþy':Aúä´uLreÑ»;Y2na¯ãåeåM´-=~ÒT$ç²®çmÿ϶ѓҋïøIÿdˆÛ‘ • éœÝ ætâ"2½ }žv—~ç´¯ÜÛg ÅÑö­Vöõ®z¶]A]‘\ìJ›>oÝÉ>SÞ¢¯ÕFY[¡2‘ü©}Ù’10B$Ë3·…ÖÎ. ýq[Î+F…?"Ù¹e>F™qØbâ°¬e϶όÿO?dŠŸ’úʬqb¦k˜sÌ!j‹”ºÏ;VUØ«–±»_õ±IOuè›Æl©¨Žwa˜@±Òp(¯šR ƒjëucæÇgúV ¥îsL²ÿØfÍy§îP¶MÜø"2}œ¯›³Ï´a¬ÝJÆë«JÚ¶8òü[uÊz ­yˆ#-s£Ú¶-IG=‡+Ì-µ|êÔ)Ög‰¼ùæ›\B!„œ(œÉ‘öô†ê§7*b[cÕ±¿Ñqsú]ÁÄ^ªA¦pèNØèºsÌÙ¨¸3)S÷xÀ=5!ßH9Â÷‹Óe×I™æÒmxð»†âh»FÃygZ@wÎB϶Ý.”sY×lÿ¬¡ø @/Futf¯Oöf¨š¾vôô“Λ°îþ‰H¿ ¥áê.®BÇVkšVÇšOŸF½t*3 œùÛKŒîv×0ô&Q“&Ó¦Ÿ‡Éd««»Í66&¬Î±€h™PU3F¾Ieµá E©Kí°X”Ïõi|ÙRõ¹Ö~£Ú6t¨­¯øò¨çb ÃFuŒÝ:0®n9¶öm²òBå<ýã°EÄa²Ã÷ǵO”ÿ—ŠÔLq•t_'."ÆÊ»Lu$l‹Tº_|¬ª6¶e£R+¹¿Mt¥nTÍŒ«{P¡b£ ìöáÔQØïF.¢j!u嶉á‚~ÞŽ¸ÁwZ‚µßà gQéõJ´¯ËØgC?KÙmB\w\œ²}Rë6Â^2—›ÔÖºqNºqcղŌ‰±„³Û¸ëú7)þçpŹ¥€E91ò{ï? Þ !„BÈ2Ñ;&ËÞqkÎ/uõÉø® ­é¥)MÔ6:k@ÓwtVm`#ûk{a„‘/¿RËİ3@_QàD¡5 |¿æ”IPk¿T÷&B]¯HŽ=ïÊ+©“hÙÅu•º?ÍävÔýf eÍ+?ØþA;‰–sY×3Ù[ ÛÑEzÑ O®;m­αcëÝ©Mˆ a:w"*¼E6ß9ÚvLyóÚc,þ#‡}mÐh a¢ Í?F­ `C‡>Ö¯Ô‚9Ô/¯ºêXÃT$GV5¯ô©q'Ä&ywœ¼'ºó|8°á¨(â¸qOÖa¸3€Ù*CSÊ©wvˆÚ Õua_!öe+äqC}îTþΠ%¤ÿcYë¹Ô*ÆÍƒÀN°|מ÷úš@Ÿa >y‡¨èïC䟇-6•mɶÀÿKÆé㪔q¿dœ˜KŒ•Ö„¶nªB;H§ûÅǪ::ƒº;1ýÕ°Um`»¦`]éºm¾Œ€ªû‹u èö 0Õ˜~×:ŒÐW4”o\pgL'ÛÀvQ™ô•¥Z-þ=õÂôºÀ×¥è³g-#¢ u±ÝÎWûŽGÖ” ÌÂ|~Ñ:LéðbÚÂo/—¼6MYnÚ¶Žvz{¹ -õqËq±„…v¹Êäh÷Œ±Êä9\m¿¯¼ñÆ6tžüÚ‰>¢÷ßþéãØøÈýǺçÎÃx±öñ©M\¿~ýXÉ]ÿäïp†”B!d ¼òÊ+8sæ î¾ûîc]«W¯iŒº‚~%û"ϼ÷““iWÔ å£|·Îs¹”zu(ýJ®ï…f{P>Æa„•"‹¯[ØëH,´ŒOÆId©~öܹs¸qãNŸ>Ûn»mæ`EQ`Ûö̦KoÃè[o½…W_}gÏžœº•xúôéìŸÿöŸññÿgü·yò˜óÞœK¾GP/î&„B!ÇpVýnÍy‡ÕRî'„B$=N]™Lü)ëÀ€+^„qã0Bèëf5¡) ”º‘‹LV» EÑàn0'då8½BOðd }®G?ùzgîõ=<üÐcxaráž<|÷) PNJ·j~}ÿkàOžÚĹ9å/g«[§ï¨xü_ò'¾zå(«HnB!„BŽ::s99ïý„Bˆ¤Ç騰;ÔaÆ8Œú:!jC»‘«Ljcˆœ³$$Wæ[ö-ÚpÞ“iåÖ@}}Œ–i£6Ê›mXzÞ[ñ%"÷\Â3O_tAŸ» íá=<ó¥i©–3?pO?½˜ÆËT÷? àú•i½”Œu$„B!Ç‚«W¯²„ЮNŒ^(åãsÄzÐî)!„B¢É¼ì¼<½ˆmO^`lÔë0 §¡±uˆ1Ѝ¨ÐÀp¸˜ÊJí˜}Ç)÷îNß_ûä³øÛw8ËÑïx嫸ðYàË߸ˆ÷ÀËWðQïß/_ÁGãÑénÛ{.ã»_>ûYàËîÿ7î~~Ýùúc_¹†q}<<¹¿ì}ÿ ¾ú¹Çð ÀƒÚc¸çòwñ_ÿž¯>÷àòw¿‹pîsêñ1|åÚ>ÌçˆB!äXÀwB»:)z¡|”ÏëA»§|„BÈIåMÆw[Øï-³XìÕ;î¿­6ÊÞyìJ†w­ÜFÛwV»sÔººÖÄ]¬+ ”_ùgø•rÖL> ïzF~îç~.ùó®wâïx'Þåþûµ¯?¯蟢è]}?Mÿ<þð7Eñ©¸qãnü`ò§×;ñŽÅË¿í~ÿÔïáëO|¯ÉÈä~NŸž®×Ÿ>}Z¾>/<Šß8ç'Ÿ?Äó3õùñ™?ßÁ‡>´ƒܸoæÿÃþÆËøW7¼úü3|ës_Çkzüþ—”rB!„B!„B!„BG¶`k½Qk‘g4; ºÅ Û¶a¶ÆX÷^ª=jâ â\·5twÚ° £c¶P*µ`Ú6ì§ïÇÏDäc›-”欬â_L~<¿{ï¼wÞy'îý‹ßÆOáüäxäp^î¿_²ð7ÚÁÿþ@èºÿÿþïïZǤeR"{–®Ï‡vðÃ×^Ãk“ϿÑõñýý’…¿ÁWñ°«‡;ïÝÆóÏâ¥p=2ÈM!„B!„B!„BY §2ßY*@‹ºnb\jaËݬnTQêö]À¾ëÐ ñ º¡|ò@jÁò”|è1üÕë¯ãõ×_Çëßú4Î{סà”÷z(8õ’‰ç£®'Ý·è`Q9Qr…ÿöëáõ×ñúëÿ'ÌAnB!„BŽîiFÖ²î'„BtÒëiÔC'²]ã0BØïå,¿·f‘“£±Úe×w•ÑÎ[1ÇÍ/®‚ÝœåH¶`u ÅQû‹l5ó£¼+{êTòg²@*¸®(Pž7ñ¢{ýúwþÏ+ ”‡6pñù¿Àw®G¤,¼&”óñ/¦*Š’_}¼ïýu;¯áŸ> ÿþ¿Jæ')7!„B9øZ噑¯z`Àg îC'#³Ðu™Atè•1Ó²ýy¹¯¤‰•)¾Ö~¨n@å+”#t¿”¼IqúŒª«DÝ'*yíNèþ@âÚL$ç²®g6v9ÛêEdç²rF§›N>…í(9_¹vÏú, Ê‘HŸ—,3màk¯‰ž¢&¦"'«ÄÏòÖŸQ¶‹ÕFÙ«Ç"õç†vyöU\a; Ø»H3í1難 d¯Ç<±¾ŒÌeß2¾e}Œ–éœØÑ©¶%sŒÃ–‡É–Ý>bÿŸgmÁø!m|²ˆ+)¶Iòá1m‘y¬#£Órë(W¦_=ªE7¯=BíšK|¹¼Sh;ºØ>¥âx§­Ôƶm¢UJ¡+©þâˆý¢ß^Vq¡Ù±DÖçpȸXÇV hjAC5êuꊣ&v©“Õ*H­o½‚Z΋Ìò;Vc®ŸOüñª·ßŽÛo¿Ÿ>,àW¡@QBëüÁ¯8×oÿ•?ÀÌ/œ¯¨œ|€N¨ÿûó`ëâTo¿¿õ„ŠÖ Œƒª[ŸÛoÇí¿õ^ÊAnB!„r’æ ëPÖí ´† Õ7&*CQÖÑ ¤ïÞk^l­ñŽoP]›äcÛC4Ô„²Íƒé+cìŠÍM8ë&ë“2¯¤Ê$®ƒ[ ªª8_áû…ébu‚XÙãê*s¿’fµØSšfï·ÐÞì¡jz¯ù)¢¹)Z\Ž–sY׳ûem'I/a;·Ð.Oå´Àzäd‚83ùdO>ƒP*œIÌW¦Ý¥HxfÊIHŸÛä^¨?±Úå@{Ù¶úR? ˆ{~æìDQ×|öbP<0½ƒAq:·bì6Öª }®¨h ƒ¯â²Úeh½ªO¯›šÜB©¿=Ì*zZ¶cˆÚ ÍuaŸàÈ<æÔÀpØ@¬F­CŒ!zÕ9:‡y&Y¶¨}¢ý¿&?ÄË/¶‡ _OŸh Œ±¢c).j‹Tc¤˜nV§R6Tª¡ØÛÄÊþ6©TCÍo»V;ãÒüñåÂÝ“ ~Ž´1Ùx=ÁN^…Ú‰_/[¦_”ñÛG7ÙàüÀ"×XÂB»œ!]õçPÀ©y³5ƺo¡oèî;}ÇëÎ5­YÄ Ór»ŽÎ ˆ¦ææ¯5çÞ,µ`yþ<óÌ#αςëçyo¾ù&Þ|óM<ÓnOÓ?Ôž\ó¿\ Î{÷…ó•“÷pR}Bß?ÔvëõÈy'WŸ7ßÄ›Qõà0!„BÈ-Ñ£eF`ÕÆ0°€à„ù߯qMŒæØòÒP(9ƒÄ~·†Šÿ•4ãÃÉàƒé®‹û©gyí ï´^¥)þÝàå6Úu%t<£ºÖÄ]gŽqfçx§7ˆtÞçþ;j÷W@~ï¾ì–•Åÿ¹ê0›?•q¿ŒM}ERü-Nšõëiãua1–(¶‘òá‚¶H7Ö‘é$l(@[ÛE4w¿àÙŒ…öf£Q𢠼½ÜÝ9éÃ| aQýnd¿ç‰^wÊ»îÈW©=w'Ÿ±ÛD±Z ´‹Û§ìLçë¤ûl™ççœÀÆR´­ìó;¯_ ×Ñj£\®£^öòšžè¯Û${‰+W²íÒêfrM•aÃ9Á!·XBEcXA?u¼ó®0§æ¹9ü+ Ûë%Õ†“ën^¥÷ÿ[ô·Þ™æ=¨ŵ¹~yf×j–Ï3ÍŸÇÏÿ¼ûù_ü—?{(÷2Žª.‹’›B!„œ$ ô»£é6¥ßµãÐ~ýÜüÀ4õñ›Ö>z¨b#<`P×PLœx‰©ƒÑG7êD#Q¾a9D÷ÏÈ+ÒIšZR]£'ñ6±—q·›ŠÆp“íöPÝ“øµ¸HÎe]ÏÝþ“ôeçcZþIiÿ¿ý$§svŠn¹6~¾v—¥Ê=»óàN`&­}ôF«¸ÃPG¥æÚD¸UØ.6±¹ÙCqàõ 1é…uˆq)KÿõØôÑ- ­‚ê'ògõeGïsëZs²ƒqºS,x}q?TÈçÙ<¨Lçùº;mXîÎ× IDAT JÞNñáv#ë™wû7°]ë¢o„ýµºv€mÿ®uo‡áD~÷yQØóä„ðŒãã°£ŽÃÒ•ß>AÿŸ>~˜•¶<±_OŸäcåÛ„Û"‹ˆÓEÂ3gCz¬‡ÊõW*{Ó~u¸Sžäkí÷P¬ÁíûL Mè_"ú=Çàl†Â[/ÕÛ(6waXmìŒ[ØÚðw·¾5¤o-Ò'ˆÒ‹|]Š>;Îâ&öÇËÆëGèE~iPCw}Ø“ÑmÈ^.Þ™w¤m»”ÑN]¢¸²Gµ].±„ŽŽmÃÞ6ÓÄÔ‘Ïájsj•…3|+ùÊ:2î$>:jÿ?þ±÷iã!ÎB!„ï(3³…ñºÌN÷xQ»‚þäÀî ,Ó‘°î‘¨{Yª×ÁèwQ«è™åˆ¾?JÞ(ÌÚÀ0ñøF û½FMmzêÒ¨ Í;fKâøÇé±u&Z¥Ñ±ûEô¢ì_¬—(;×Ñ1«èM&54#*%Òv׈ÒÇ´ûü£xŸmË”3ï³+ |´÷#óUYx ·lÇ•³ÒŸyï ¾ÕPÅ–.—~%ñ/Èï`®Ì±‚óú²#Æ:ĸԚ؂ºQE©Û‡º¾ÒøåŽ ªç"ž½J ]wØèÑÚÒÝ#$§‹4Nßå.È„õìûa„ºQE)×yOÄ8ìÈã°˜²gîOhŸ˜ÝµRñƒ”=ˆüú!¶RÅ'‹ˆ±òŠm¢ì ˆÓõ<ÏØ4&ïøê×_…äªÔœÅJó ˆÊVã¾áÜ_\ƒ×ï†û½Qšv€í™…9÷jZÅíP_à߉¹Þ¼]Î"Ÿ•^äëÒôÙBÿ´ÏhKñ¥yþçõ‹"¿¤PòÿÔó”›&ÿXÝ8ïXîW^Cg,ámd­ô¥O™yWœ•^ž jl¹_j$ñ³?û³Çús\ëC!„BnÔ TSýZG¥6Âìë+Ó k ®ì ` ‰Ö!Æi}u°p8.¡ Éä%GÔý ò u"3y‘²®“I.ß/éK-ùÅïþº—WÒ»ëä\Öõ¼íÿYY½øìÜŠ–ÙBI$gBº™Ý5‘éçlwég1©œ¤g!ïöYCqÔÃþ*ÏÖèØö5ÙÅ®´éóÖì3å-È›­ÕZ ÉŸÚ—-ó`îW¦Ý²è[hû0` ?öíyø18ÁAfp‡D¥¶Ž¾Ñ®;ÇœŠÛ1“?1upÜSò”#|¿8P'’úO%Sê|ÌýꊣuìÙv³Ú(Ovˆä\ÖõÛÿk(>(ÐK¢;ïàBÕôµcÔ.‹P:oª[ö9?›~!>’ö6¯}fl¯­Ö4­Ž5Ÿ>zèTPí`ßjLäÉß^bt±»†¡wâ™;ù»•Wúy00Baª»Í66ü øZh™PU3F‡ ³á E©c°”µø¾"/[ ¡>×ÚïaTÛ†®µõ þ5¢z.¦0lTÇØ­ãê–ûjºo“}”*çÀ8l)q˜°ìðýqíåÿ¥âU,{ÈŸäceŠ]¦:Šn k™ýCH‘:uòO«ªm@YǨÔJî¯Ü]©pv@bsãêT¨Ø¨»}8ö&ìw±‘­ÖbPWPn›n èçíˆ|§%Xû=ŒPW]Tz½íë2öÙÙgÜøF6®Î;ÎMÙ>©ua/™ËMjk ÝèvÇ=Ž}TË3&ÆêÊ:ºîÒ6Sà9\qn©àú'‡st„B!„äˆÞ1qXÖ 4 „–9œ ¬¬vZÓù­¶¦4QØè¬MMAÓMSØîீ±¦@ñ]Oè9ƒÊF¾üJ-ÃÎ}ÅË«†­ûÆœ2 ê`í÷€êÞd@¨ òɱ‡àýBy…: —£d×Uêþ4“ÛQ÷›-”'ílÿ D˹¬ëYHc;ºH/šÀκsLšg¢a:w"ªeõ/›ïœm[P^Úô©5¡)MÿlZæÆ&ÊÐeúUm:tóeŸ<(µ`õÜžñ Òªc S‘YÕ¼Ò§Æ›äÝqòžè®éS¡»C¦#ÒŸuî `¶ÊД²Ó&êœÏ žòº°¯û²ò¸¡>w*gЇÒÿ1Ž,„õ\êFãæoq*\¾kÏ{ }M Ï0P÷½C4úïCc¶”8LT¶%Û>ÿ/?㤴ö6>YDŒ•6ÿÐÖMUÔiÇ:èB¤ÓÔ±ªŽÎ †îNLåîÊÞ®)XWº®kÀ¨º¿ˆP×€n¯SéwÃ>|&¶×P¾q À1lÛEeÒW–jµø]¡ÂôºÀ×¥è³g-#Â>uñøfÞ¸Új£¬51 )˜…ùübLû¤n ¿½\òÚ4e¹iÛ:^X4†60P/·¡í¥½?.–°Ð.÷Q±mdßbéWÛï+o¼ñ† '¿vâ'§¸L!„BnE^yåœ9swß}÷±®ÇÕ«W´FÝyQÖEžyï''Ó®¨ÊGùnçr)õ0êÎQ†9:¶åcFY)²ø:«ò&°7÷kOf2FÛÉødœÄA–êgÏ;‡7nàôéÓ¸í¶ÛpêTð-¾Š¢À¶m(þ´º×EÁ[o½…W_}gÏžàÛÌÅQB!„B™Ì* ß­¡ÒYÖý„Bˆ¤Ç©+p7%aÑ;f aF9¶¾Î;¹¡6Èå‡RÓ]à%´ØDd9MB!„BH¹&Ð罟B‘ô86ºã0Æa„Ð׉QÚ\eRCäœ%!¹29šB!„r2ñŽ€&„B!„B!«ÇÂŽ€&„B!„œlø`BhW'E/”òñ9b=h÷”B9I㯼9EµB!„B!„B!„BÈÉ€ À„B!„B!„B!„rBà0!„B!„ÄaµQ.·a-ë~B!ôA'½žF}òþººÁv!ŒÃa¿·ù]?£ääh¬vÙõ]e´óVÌqó‹«`7'Eg9rú?øµ@!„BÈ àÞ{ï]NÁFÊzPj™6Tÿ—¨—±5l@õþ­¬£ë}]Àîèù“Z#÷ŸÓ{üeÔ0°;Ѓ‡dŠ/ÛÚïÕ=¨¢|…r„î—’7¤“YeÇè3ª®I÷û›QÁú¸3â;áý:•Ð2‡ˆn6‘œËºžÙØålG¨—P[O¾“•3:Õ.CkŽ‚IkØ$æ+×îÈø,ŠÊIcóóÉ‚pøÚkRöÖ!Ê›Àž_V{öZÌó“§Ì¥–‰áÚ.”´]¬6ÊZUsˆ’õ=§@h—54GJSÛÛYÀÞEúÛ6í×Od|S]yÖÒú "oß3ÏRD»®Ñ2mPíËB䟇-6“-;º}6öEþ_Ï1Å+ÉqŒ8>Ñc%Å6I><åEdO‚ër±Z„~Üüà·k™~UªïÍ1† ÉK|¹bâš@\˜Ç»vÞÂnXh—7SÆ{IýÅûE¿½•í§Xbf|‘Ǹòh8 wÝuãB!„BŽ1/¾øâr 6êPÖmÏ €&ƒêR [“ô}``ÃvfìÐ.o¢méh˜â|„˜(l uo@¾‰öÆk»ë“2¬vZݘLHDË_¶yT·Tu-:_ÞÀÓ»_˜ÎèDMÖ§Q×2íᛤÙA ¥Øqoø~ íͪ¦¡·°¶ÙÆFäâr´œËºžmÜ/k;Iz OXh—§r¨C)·#&ÌbÒ5†°¡ö,œA»ü`l¾2í>ϳèÙðL9†œÍg¦=áè´a1Ð^F½…líŸO'Šºæ³¨×M ÑÁ ¯`×h £Æ®3ùëL²G¤ÏuŠNEch£áN¶Mê߫´‡¾E e˜n¤h«²VÇZ†I3Q¤¹.ìŒ >ˆHšSÃaRãbŒ"*\ü]2)'´‡Í‡¥ò‡íéÿµpÉÂøÁŒ•_d)â)ùòŒ±¢c)žvŒ"´'Áu‘.ŒÝd(ÕPìíz¥(ÕPïLå¶ÚØ—æ/îžñs¤m`_*^Oð‡&äW—éeüöÑM6L~¸‘_,a¡]ÞÅÚ0e,êg³´ÿ’àЄB!„ìC²þ-3zð¤6†°ÍVpð¯w03q0*bMÏGH / …’3Hìwk¨¸×Õ*JãÃÉ‘SQ2Å—m ß-bMÉ7RŽðý1é:IÖgŒLVåÐQd‘ígRl§`b¸Uð_”¾‚V|'’sY×ç˜$Je;Izñ·ùTNèÔF0³¦³ÚØéÖ°Ýx;6}d»g%æˆ,GÒæóÅÂ~3í¥wäúDûŸ ýut\åè[-ŒwÚ°&mªÆ¦_`OÝ&ÐÚóOréè˜- ·Ÿî™R×PÌñLw]Ü'dòAËÀ|¥R‡y]²JGtzG?ºÿoוÐñŒêZ#t±îÉ.ªgîºôçm îý;P¾ë ò{÷`·¬,îøÏU‡qØüq˜¨ìˆûel:è+’⇼⤴ñ‰º°KÛHùð´c){ Ûc„.¤ì¯€­í"š»F‚_ðlÆB{³‰Ñ¨ MQPÞÞžÁèû,´ËQýžïÚL¿ç5PÝ)ïº#_¥ ôöë1v›(V«vQbûÔà‘½‘éã|tŸ-óüœؘl¼žâù×/†ëhµQ.×Q/{yYh—et›d/qåJ¶]ZÝÀ“½Š·+9·XBEcXAžxÉßþG³Ì€ !„B!1ÐïŽÐÔ””ïÚñ èìôÌùø³ÜGUl„'LÔ5Eƒs™:}tk•ÙIQ¾a9D÷ÏÈÖIë5ïPÆ&ö2uª¢1ÜÆ§;­‡êžÄ¯ Er.ëzîöŸ¤wbBQPžÌ~Œq8™}ÐP(ùÿí'9³St˵¡èôóµ»ü³_N6/ÂÀ LZûèÉBsZtTj®M„;>µíb››=žŽbÒ/ ëãR–þ5ê±é£[*@[ÕOäÏÁ‘Ï­kM6lÛ†Ùc½nÌ\_Üòy6*®œƒº;mXî J¥LÛ†=\Ãnd=ónÿ¶k]ô°¿6P×°m{ú¬¢·éNOäwŸÇÑ…=ON ¹yÜß3埇-2KWv|ûýúøaV~QyÙâ˜xùæ±ò‰m2ŽQDö/¸>« Ð;`=T¾¨¿RÑØ›ö«Ãò¤m­ýŠ5¸}Ÿ‰  ýKD¿ç àl†Â[/ÕÛ(6waXmìŒ[ØÚðw·CG>Û†=ð-dGúQz‘¯KÑgÇYܤMââxÙxýý¢È/ jè®o{2º ÙËÅ;⎴m—2Ú©+PWö¨¶Ë%–ÐѱmØ{Àf†˜Újï¸ñlŒŽV.B!„Bæ †=ˆ×e~õê/jÛô'¿Î’òCrñ1eŒ~µŠžYŽèû£äÒɨ í¤câ,ì÷F55w‚Ãýåw¹ Kê~ßч¶‰Vi”ií_¬w²Á¶aÛ›Î1³ŠÞdrQC3r¡R"]`w(}L»Ï­¿m'•“³Íûñ&¼w<Ûª,<†[¶ãÊYé;ºòMé[-UléréWÿ‚¼ÿ½ÆÇÞ—1Ö!Æ¥ÖÄÔ*JÝ>ŒÐõ•Æ/§ètQ=ñìUjèº+ÀFŒÖ–î!9]àrú.wQ,¬gß#Ô*J¹þÈèÈ{¢ÿÄ8l±qXLÙ3÷'´OÌîZ©øAÚ2Æ1±òåcåÛd£ˆì_p=Rrö79Äß_Šú«P{VjÎb¥yPDe«€qßpî/®AëwÃýÞ¨ M;ÀöÌœû5­‰âöl';$×»€·Ó\ä¢Ò‹|]š>[è_ƒmmc)ž£4Ïÿ¼~Qä—´Jþ¿“ÚbžrÓä«uEA¿bÃŽÓ_ž±„ÚÀpS'Ä~¾xVëUxöc–¬p˜B!„¢iZäçD¢n šê—Ð:*µÌyò1PWvP0ƒDëã4‹>²-ŽK(h2ùFÉu‚¼"ȶ®“É&ß/éïNN–Œ½¯ŠÆÐDk¼#qÜ™@Îe]ÏÛþŸ•Õ‹ïX@oòaÒ9ÒÍì(‰L?g»K?‹²åÌaó©Úg ÅQû«¼=OïÀ¶¨ÉN¥MŸ·îdŸ)oAÞl­Ö™HþÔ¾lɘ1ÜÊøÌm¡5îÀþØ·K/ü#»s‹½Zpl-㰜㰬e϶OâîZ™8C(¿Èäã˜t»³ÄXyÇ6²c‘=‰í,^ 6 6°Wíaw?ÂÇ&ôWZ80 ôÇhêªã> óÅJÊV)µ0ìrÔ·Z(ÁwL²;^(kÎ;u¥N©¥óusöÙ6‰ßÈÆë«JÚ¶8òü˜TúGøZoÁº_I¶¿ƒwÿz¤_¾~.\ÁõUþ¹Ë“ ´ËÏå”ç*ÕB!„ܲˆŠWkÙù¥÷Ž7:“8bÕj×}ƒ9ýn -}>Ó[xrÅÉË;ÒÑÚïaT\‹ Å”8¶-&ßH90{ì› ]´Näõ/–i޳Ìýꊣ&&›[ºó¿_L$ç²®/ØþˆÑ‹QŸÝiçÎ;¸PÝðµcÔ¯ÑCé¼ +áô¹OžÄM¨Ëô‹ï¯¶Z@S êÓ¨×aD,pæo/1ºóO¢&- ¤M?“ÉVWwãm#ïPÝ€*«?µáX_ÚûÑâûŠÔ>è¨ õ¹Ö~£Zº^AmÕÜG=S6ªcôë}Œ½þ1ìÛdå…Êy$ú'Æa‹ˆÃ„e‡ïkŸ(ÿ/?ÄÈ/*/m“ŸäceŠ]¦:J=FÚ]LL¡‹´ö§6¶fÓñÏIý•ïGWêFØÙqû:U ß‡SVÊ~Wk 1ÀúìQäjèE4ßi Ö~/ùGKQéE¾.cŸ-lUÆÆâêyÇa‹ô‹qmþ‘^–r“ÚZB7ÎI7{ÀæïÔM”ÝÙmìœ4mÃîèËo›qzæÊõ+¸ðàcx!pña<ùÌy<þ9àK_’Èõú\øð¥§/âÜÂD—?yˆKϘ¸˜¥™z>Œ'ÍGqVqŽ¤Î„B!ä8bšÁŸqË,àš¦9Yìõî÷î ç·LôŽ‰Ã²¥ %´ÌádÀcµËКΰOSš¨ ltÖ€¦¦ é¦© lgr$&áx}¿‡Fùò+µL ;ôŠS¶ï [Q2 ʶö{@uo2°×ùŠäØCð~¡¼"ÌŒ—£d×Uêþ£ÓÈûÍÊšW¾¸ÝDº[ÖõlóCò¶£‹ô¢0ž\wÚZ£î“æÙ„h’T˜Îˆj™AýËæ;'BÛ”§JÚ|fFMhJÓ?…–9D£1„‰24E™~UÀ†Ý*¶ÎBc–Õˆ”oûÛö]wÝ5½’´)³Ðy‹¡×¯àƒ×ðHÖEÛ°ŒÏ]†öøy<ó%às\È%„B!óΣ y½…]ÙEÜp>¢û^|ñEÜ{q߽òÊ+8sæ î¾ûîc­Ó«W¯iŒºó¢¬‹<óÞON¦]Q/”òÝ:ÏåRêaÔ£ st>lÊÇ8Œ²RdñuVåM`/÷ã{-´ŒÑPÙ4d>?{îÜ9ܸq§OŸÆm·Ý†S§‚‡8+ŠÛ¶¡øÐê^Wo½õ^}õUœ={@š# £ŽF¾~&ï1»€+×à:®|î1¼ðÂcxPÓpáßý;\¸pW.kдËxÀõ+|ï?sïsówÒu¤¿p×ñ.?ø^ÀSø¤w-J–@žNÙBî¿p /‹êëÿw ,_ù¾ÿGÕƒB!„´ø|Wiçï-0«€~7ô«#½ŸB‘ô8ue2ñ§¬®xÆaŒÃ¡¯›eÔ„¦(Pêù¼ŒÂj—¡(š#¶YMNG^}á1<¨=æ»àä9\~ð1Mgîõ+¸ð¹+øðÓqñK—`x»h¯_Á…? ×1a>êÞzñi˜½l.CûÊs¸ø §ÜIºç.C{ü >ñ~às­áIóiÜà¹Ë—ñ2.âÑg.áp²S÷9\Öž•åK¡©=…{>ýiï™Þvî"YÓ&G/ßóðÃñG$ŸûðØƒ˜žÔüŒ»sXB–/Í¡™sñ¥Kð ;Q7•ó~<úä³ÐÔð˜¯,B!„Büp‘–B!„B!„,åÛßþ¶}×]wQYyî2´g€ùèýÔ!„BY/¾ø"î½÷ÞÈï^yåœ9s†G@gÅj£¼ ì P—q?9™vE½P>ÊwâŸË\ê±>äHÚèCYïj}Åë±€vásÉ8ŒcmÏVe­‰‘Ó‘Ã^DG>)ª ­9PBË¢‘§2ŽÀX[YT™yæ»Â2^½zçÎÃ7púôiÜvÛm8u*xˆ³¢(°mŠ¢Ì\Wo½õ^}õUœ={À)Ãl±î›Tˆ–I\·T7Tq¾9Â÷ Ó t2;®•=®®2÷û'YvPC)v¾ßB{³‡ª;AbŠhnŠ—£å\Öõló²¶“¤—Ú$½mÑP-´ËS9í°9!NýüœIÈ7,Çý@Â3 ²/»Ë„7ùªŸÕ.Ú˶m Зúa@Üó3g'Šºæ³{€â è ŠMìºÂ»M µ‡†*HŸ+*C¶Ùš´Õ.CëU}z ØÔäJýíaVÑÓ²ýCÔi® û„?@æ1§†I»a¬CŒQÄÕ¾dRúÆaóÇa’e‹ÚG.~Ç©ûÄHŠãYýäcEÇR>\Ô©tÓ&jØÀù IDAT1vº¸cùd±û`Ê7býÙB©Ô‚iw ¯ª?’ñ—'É÷§j8ýøŠåu8 8ÇÅB!„BHZŒþ-s9VCØÎQHô:ÓáFETÔ™™ìtkضf¼4J` ß­¡â~¡nTQê‚U S\œüЍtbò”#|?UNF'‘²ÇÈdµQÖz¨úŽD‹l83;Ãýéw)îŸV© XÈɉ%]×3MF¤·$½øÛ¼†Š—‰^Am½É)™nòü¼~S&߈y"í+æúâ°°ßZfpâOïtehÿüðO4êè¸ÊÔ·ZØÙlÃÒàëMaúöôØm-Ó?‘§£c¶PÞ܇µ‘æAZC™¤µüuqŸiÊ<Ë«€ÿxMÔ0ð&²×á,º¯Ê$²w$â°¹ T‹M4Ý•çhMuWöu¥ëȾlFÕ3w]`{’·ºÒGÅî@èÓ=^N=ùk˜Ø-+èŽ|én¥ElÆaóÇa¢²#î—±éèøY?dècuŽ{ é8,¯K[HùpA[»sè"Ð&âô‰òEôñ^ß:Û§úGÆ´OÝ<@]tG@m`¢°£¡9ÜãëÏfò6ÜÝø¾EÝŸ“v<˜ÆÅÕ²ÏPw’þÈšõ;™ôk¡½ÙÄhhJ¥K—€ïÝé!åïeÛ|â·$t®‹Èªb‰³O±ïO»øúñHÙBzl™6Ì€NòvóÚj£\ÎPoOFQ<¶‚œ½'ŒB!„Bâ1ÐïŽÐí*hÎ ®bg¨Ð.khŽ¢KÎN73Ý ÊÚGUì©.-¨k(Žâ½ê`ôÑ­UÐЗÉ×'Gø~Ä¥KЉ‰ušÿ(c{În†Ôgt©h ·#Ü|eUZε%]ÏkTd;Izé:“J€;AcZ€®z“‚þûIN7}~LôcÓ‡åÈiÕÂgÛ"ûšÏî$5¡)Íé¿Ý ¼Þ¨ˆí•[œÑQ©­;m~_žÚÀvQÁæf Å7ù“~QX‡—ªØREÏr!ÅcÓG·TÀÖ*¨~"V_vô>·®5QØz“½uvëÞ¤ëJ2jâ`ۆݳ«n§-½ŽÙÂxòÞ~ŽŠ*óõ‰ªP#ãcý¤±ò‰-Âma žJ’cAz™¾?ÐÇGõ©°Ù,b`;qƒQ¯;~Úë¯Ì:”õMçˆcsÚ«!loÅШCÙ5ÐØ:ŒÈ˾·£|.Ÿ3k÷Ñm˜q¼±H´ãÒè·££±×BÏ+Ïj£ü½¿%–;ºý2èB䇢:HÄ ‘2¯aW6vIòÏÃFPþStQ^‡Ø‘©÷^Ôódd´Ï Â#  !„B!sà;ŽÎla¼.s´§{¼¨]A?üî.ï—ò©£Ü#Q÷²NºŠë`ô»¨UôÌrDß%oŒN² 60L<¾ÑÂ~o„QSsÞ‰¥515¡•Û°¤î÷íg¢U¡¹kÐþcõ¢£c‡ÿÓÑ1«èiÞ»É44GQGÏI¤ y'ïÉ]ïãCX‘y…v”gHBº·áWdí+Ís7¯?ùƒ4úMëïãäNÊ?N7þ<ã|`T21H”Ì)b—I?'[@ûè!:ï€O©wÔ3p„qJp˜B!„’êªîC9tTj#ø__éüR~+ÅÎ ueÑQ_Ö!Æi}u°p8.!òUÄ3ùFÉu‚¼:‘&m]'/ÓI­RšcC­6vÆÞàWEc˜ôîº9—u=oûVV/¾ãÿÔ†vÈ™næù‘ÊWplaj¶-²¯ìÌcw™Ûg ÅQûÖ ÷¡z¶=@Mv)mú¼u'ûLy òfkµÈDò§öeKÆ<˜ŸHR>s[hû0` ?ž.æÎ¾G¼ý–RL¿À8,¿8C¶ìÙöIŒŸeâé>1¤CÙxpý$ÆXsÆ´²m‘¤‹Ä6I²¿\:6÷ÇôŠ"ñƒ¦ÉñÀ>ýeÍ+³®m¸üÇ,ãUB¨ßÍ?Êæ]†tìêÇçòÏ1>E˜÷Q<‹… À„B!„9ì]ìx#pk½„V»î°èw}ƒ°´»­6Ê3“(ŽLî†Xû=ŒŠk1“?1upgÛPò”#|¿8]¬N$ô/–iŽ,2÷«k(Žš˜ü? »6Ê“²HÎe]_°ý?££ŽzÔußÄD{³ T7|í5ÑJ—øü„Ò'Ê‘Å^=¡9{mµ€¦Ô§Q¯ÃˆXàÌß^btçßÁ›4Až6ýïøg‘þ(J¿áÇe)7.ÿ4º‰óQe¤µÏÉ#.»øûñ$ÿìéQÝ@éÂ>A¦ÞQÏŽ2N™ŸÓœ´"„B!„dEï˜8,kp^·é¼“ir’R» ­é 5¥é¼3k hjÁ÷h9“ î„TŠwÿ:ÌF¾üJ-ÃÎÀù…®S¾—ÿDÊ$¨ƒµßª{“‰*]¯HŽ=ïÊ+ÔIxü%»¸®R÷§©FÞo¶PÖ‚ïäÒ#í$ZÎe]Ï6Y%o;ºH/ZãÉu§­uÀyÖºÄ{…éÏ(½HެºÙö²VƒÃïvÛ ÑÂDš¢L¿ª `C‡n¢ì“¥Ì¡žÛó#DÝ@u¬a*R»íÒ¦Oó¾»î$÷DwMŸêÜ÷¶AEG¤?ë0ÜÀl•¡)e§MÔ9ŸA=åua_!öe+äqC}îTþΠ%¤ÿcYë¹Ô*ÆÍlÛª |LÞ#Û×ú u¥Š÷ÑÈ¿WŒ ~qXq˜¨lK¶}$ãgA< §ì…:Å=’úÉ%ÆJë?B Žª¨-Òê¢È6‰‹•âc =ÐÇ—jµø—NE0íšL Ïí£{OÛEeÒŸMʈÊKU½Ù>2»—ò |´ÕFYkb@S00 óù£pl“èhúõ¾«)XWº(]ºàÎôåÆå?·öü›¨Œ”ö‰h»ÙQЈeSýzl™†l´6°±uô rõ<‰í³:q€òÆoØœ¶"„B!ääòÊ+¯àÌ™3¸ûî»u=®^½z¤u0ê ú•ì‹<óÞON¦]Q/”òÝ:ÏåRêaÔ¡ô+°st>lÊÇ8Œ‰ÕFyØ6 úÿ>šÂÑv \áhÈ<±Kžýøqð W¯^ŹsçpãÆ œ>}·ÝvN â¬( lÛ†âÿA«{]Q¼õÖ[xõÕWqöìY‚ÀW®\ÁßýÝßá'?ù BŽï|ç;ñ ¿ð ¸xñ¢Tzö÷„ròûz’yˆˆ~·†JgY÷B!’§®ÀÝ܇Eï˜%„q!Dˆw2Bmë‘ÂLw—ТÖOhì’g?~ëú„™ÀþÄøÙòOpáÂÜqÇ´DB9F¼öÚkxúé§ñÿý¿ãÓŸúTlZö÷„ròûzî&„vuÒôBù(Ÿ#ÖƒvOù!„“4þÊ{ðÌðc=†­­-¼ûÝïÆ[o½E­BÈ1âg~ægðÆo`ww—.]ŠMËþžBN~_ïá-B!„B!„ÕcáG@¿ýöÛxÏ{Þƒø‡ ¶ !ä˜ñÖ[oá=ïyÞ~ûíÄ´ìï !ää÷õa¸˜ÚÕIÑ å£||ŽXÚ=å#„BNÒø+o"ßlÛ6lÛ¦Æ !ä’¦ÿfO!'¿¯'„B!„B!·§E_pR‰Bn ØßB!„B!„B!'‡S¢/¼]aüð#õ¹ö8zèq\;ªrŽª¼£¬çwšx÷»ßw¿ûÝh~çuÊωû¤…:ã‡>€>€Ÿ“ßד9±Ú(—Û°–u?!„ú “^O£>y]Ý`»Æa„;{¶Ú(»ý¸²àŽÜj—]ŸQF;oe7ľÄ¹lÛ6nÞ¼ÉÏ­þ¹ö8ºývÜî~züš8­7!™¥Œ‡Ç5Ùôá У։L¹iëtó&nÞüšÕ¿Æcõ:^ÿ«Çð×»¾IÚ"?)?i€¦În½þüöÛoGó;GÜ7ÒÐð³´¾þ¨'mË3#põÀÀÓ@Ý›ðOø' dò{üeû˨cvÜ–)¾Ö~¨n@å+”#t¿”¼I&qúŒª«DÝ'*P $N„î—n7‘œËºžÙØålG¨—P[O¾“•3:Ýt,lG2zÉaò,ᘵ¯œË‘e&_{Mô5A9i&~~ò”¹Ü¶9gž5·úžS ´Ënþ>Âv°w‘þfÚcÞ¶µìõ˜g-Ö—‘ÅN@¨¯Ñ2¸£SmKæÒ÷ËŒÃrˆÃdËŽn±ÿŸ7µ‰L/Ї’úÖyc¬¤˜6ɇǴE¢ö/æ«.™R ¦mÃtäéí>ІºSCض‰V)mœ•¤ã#öG~¹ê ¶\P>9 ÀÞ¢?·òçüËÿ©ßþákxíµ×ðÚkOá—¯Zâô7möìä|Ò'í}^ú¬åÍû‘)7‹l×Là—qþœ û\†QǹeÕ‘îæçä}nÚÀ‡vðÃ×Ü>ý‡;8¸ð^üËgްo¤ àçäî6êPÖ+Û°¡†~™½Žn }xu1Ñï mYhoöPuÚö ˆæ¦ÄàÒ<@q’×Åæ&œu“õIfkŒuߤB´Lâ:¸Å º¡ŠóȾ_˜.R'QcîYÙãê*s¿’e5”bÇüáûåÛM$ç²®g›óµ$½Ô&ém{ˆ†j¡]žÊi€õÈÉq:glÚG j@©p&!ß°sô Ï@´}åX¾hò1”¿Õ.Ú˶m Зšl{~æ^tÑ|öbP<0½ƒA±‰]W8c· ´öÐPésEEchÃ6[“6³Úeh½ªO¯›šÜB©¿=Ì*zZ¶ nQ¤¹.ìü™ÇœˆÕ¨uˆ1ŠX£Ú—LÊ~™qØüq˜dÙ¢ö‰öÿštüºOÉ+ÒmBÛäcEÇR>\T7‘."ë&ÒµXîðËP?àýû7ñ§ú›îDõÐï¸wÜqî¸CÇ×¼ôˆùÞ†m?‹ßŸ\¿¿ÿì5<ñ/¶ñüóÛøÕ;î€þĵ€ מÐ'igËÙi¸Œ°<¿g=õßÇïë>YôÐ=¾ï'×ëQ'¡>|2ÿê6žÇWñðwàŽ_ÿ=üºþ®Iè4 #ý Ê€ù‰éÓ}mý:?ØÁßü©Ûo¤écèèøáðÌ\É-3z ­6†€Þñý’ÚÄÁ(b€­ ócî`^ %g1¥ß­¡â^W7ª('“Q2ÅÕÁɯˆ55&ßH9Â÷Ǥ“ÑI¤ì12ùw Ƶ‡;1³S01Ü*á-yr»‰ä\Öõ¬simGÖžMŒ¦rB¯ 6:€™5ÕÆN·†íÆÛ’ùæ@Ì3i_Ë™‚Ä~3í¥wÚOÖþçÂÿÌëè¸ÊÔ·Zï8»h6UcÓ/°§‡³þìŸôÓÑ1[@o?å$ìŠ9>ƒé®‹û©gy5fÒ£w1…wZ¯Òÿnðríº:ZÓ@]kb„.Ö=ÙSíÖšG—áî¿£vêä÷î;ÀnYYÜ1¤«ã°ùã0QÙ÷ËØtÐW$ÅúD‘¼Rº ·Mþ1–(æòႺÉé«›d¬6‘[2Võ÷IZ#„û¤àqÅá“þ·ŽzÙK7=é#òŸíÍä5é/å|NÚñ`bÜWË>7óú£°?Ȭ_ íÍ&F£&4EAy{;¸8¶\¹öKÔMxW¯ïßÑvçÏ%â‘´uЭhw}¤íÊø÷\âƒÕátÔÅüÇÄüc.ßÒ|÷ìa<|çW}×v>ì^ÿ>¶ïýk|êÚ5</_ÁG?ýg(}øéO¿ÿñ_â3Qßã×ñ½>Œ·¿r ×>ì+æK—ñøò7.âý@ÀîîøØS¸ö1¯Ømœoý%>öÏâ”ó÷^y?ÆôŽ—qe¦Œ¿ÄgÎoCýÊ5<õaàå+Åo|æ/qíŸÿ?}~Œ÷÷®½´ó—½¿ÿíŸáâ—1ýþýnù÷WM¨çE|,P§ïã3ç£Ó½ß§ëóÝË{÷¼|ýìO|u”õeà³Û*¾rí)|À÷··1þñq÷–ç]ïz—tZö÷·ÿ“Ù>óŽ_€úü³ÿø/Ñ’îcÄiéèÈêöõ‹^èwGèv4Ý+µÌQYÚe ÍQ ÷WØúpÛ™H”Ð2‡é~]lí£‡*öTà ¼Ø0êÃù%ÔÁè£[«  /“¯OŽðýˆK¡“ô«#Iušÿ(c{În†Ô×*YÚm"çÚ’®#§_®‹l'I/]¬+Î>ˆRËİcZ€®z“ˆþûINçì5¡ÃD?6}XŽœ~Ïï³íxûZPù0jBSšÓ—Z0÷€Þ¨ˆí•Û¶ £R[wtQLTØ.*ØÜ,¡8ºýBLúEab\ªbK=Ë)÷>º¥¶VAõù³ú²£÷¹u­‰âÀÆPwwe× Ø®Ãj£¼¹¢̨‰ƒmvήº6¶ô:f ãM`oØpù]¨gÎ ¢6°]SÐ7:Ðu¿¿6P×°mÛÎ3gµQÞlcc/$¿ÕÆÎhŒ‚iÃvû;m³c½;jŽ~™qØq†lÙñí3õÿQDÅ•Œ}b‚¼3ºM¸žSŒ5_L+ª›ºŒØ”®Er6dˆûø¨>U6›E l'n0êuÇO{ý•Y‡²¾éqlNûaµ1„ÝðЬCÙ5ÐØ:ŒÈ˾·Ëy.Ÿ3kGÑm˜q¼±H´ãÒè·££±×BÏ+Ïj£ü½¿%–;ºýæ‰ýÚÑv«¿5ìÊÄ#ië«Û5ì |ö¬ü†0m@&˜'>X1N‹¾¸yó&gÖnqîû¢ ó‹ž»Œóç?<ü$ÌO¼„«ø:¾~þë¾”ãÅŸžüôÅ£¿ñ&öq _ºï&¦õÓ›îÿnbÆâ®_Á…Ã Þ¿ï¹ /þÔ½Íû¿ÿ¾ëÿu¶Œë/âê=ÓkgïÓqÏ£Ïà{ÿÛyà÷½‰›?½ ÷Üs×ôoÜtò÷¾¿ à¾ßÄÃx/þí]ñõ¼ygýuº“=x{u•uö¬áQ|â¼'ÍGqÿ¿D鑨ßßDöµ¶ó_š>æÅ+øôô„Ìà›ü±Ú(ku‰gÎñ¢ ¨+ešC¬íz îd€;(–Ÿï¡5‘2gŒ~µJÊ×/‡7ïèÝŸ.J's­‡© '#hñÄË~o„ÑHƒ­L+æPæ~ß±u™ÚíäÚ?„zÑѱmw"Ú@]ÙD{cˆŽyˆ²6\jÌ´¿žœÎÛýc«Ô˜ôÑrÌ¿ë·m íûZLù.¥Ìð"ŒÕJh+hEzÇ7 ¦¬võ­v6-].ýJâ_j›cëËŽëãR {þbÍ>Œ­BàúJSjMmY´‹KTÏŽž{{è•Öû:ºîìòÛêVctÑUºû0QÊ¥*6T¿œ9þÈèÈ{¢9úeÆaÙâ°¸²Ã÷'´OÀÿËÇ™úÄ8]Eé6îz^1–ÓÊ—®Û¶„ÖM¤ëè˜9}ߟاªk(¢‰uŽÜ§_Û™ôW”J…éß¾8©ìí.€RVT^0Ð÷ïrÎþ„t½ÚðÉbSn¼‘æ¹›ÇmÅùƒú…m›²åjIùgí“bì(Nq¶*£{QâtkFûlµ"_οϬ<šŸäÏ}_ÄáᓸðÔ3xÎpÏ%|çð‡“ÏqŸÿXÎØïŽ%õ>/]Á… èßqóøÎ%Ü$ÿ)sÍYô@àzÔß³÷y·Æ×3"?a:‘œaDy܇/âðð<£iдmóû¸üÐcÐ>õq¼/McÓÐðsûúÏœ¢Rëbgò¢}ôïM›Žíê¾»~·„Âýk(ŽšØ¼Ç'9ŸÉ@qfBÉ‘©ï½Kh¿‡Qq-fò'¦îqnjB¾‘r„ï§‹Ô‰&¯±Ls¼Pæ~5¦ÝïNɹ¬ë ¶ÿbôbÔ}響²sç]`¨nøÚ1jÂ%”Î[|÷_DúD9²ØKŠÉݼ˗l¯­ÐÔ‚ú4êu œùÛKŒîê†üäoÚô¹,,ººÛô¿ÇÍ9žÕ ¨²úS€õ¥½-¾¯HãË–B¨Ïµö{Õ*Ðõ j«þã†<깘°Q£_ïcìõaß&û(/TÎ# K¿Ì8lî8LXvøþ¸ö‰òÿRñCú>1^Þ¨6HÌceŠ]¦:Š®[œ}&ÕͧkaÌ,ñ¼„|¬µß‹_d³Ú¨·-wÏD«4Æáu™E´é³2)#*/KC¡4•9[è“â™SS´ù¼ãŸEú£(ýz„—¥Ü¸ü“tã+?¶í“ìhÞx$©2ö÷ Ï/>X6<šDsö>|äð#ø¥_ò.|ŸÿÖ×pö&ðo¾õyüÎG~ Ó¯>oý±»˜tó×¢¿ÿÚÇñ»¼^íà ÿóïâSÕj¿ô4>øùoákŸ[þïâSZ¿õKädQ­âƒˆØ8îòltyªèünþíKÓûÝÌÛþŸ?ž”ïÜ÷»8û·ÿ)±žï;ª“(]p.Z†Ø²ÎÁþ£ß‚'â?ÿ-|ílèxUB$` `Û¡>íƒøü·ðñ÷ÝÄÍT}ÌûúúBÂ㼎‰Ã²wT—óN&}2î*Ck:C7Mi:ïÌZšZð=Z €ÙBY ¾Û)ipí Gùò+µL ;ç—¾N غo,!“ Ö~¨îM&atA¾"9ö¼_(¯H'3ãØ(ÙÅu•º?Å Fäý’í&Òݲ®g›¬’·]¤­€ñäºÓÖº;±«¬K¼wQ˜Îd ¿ûO”^$GV݈l[TœËŸÈ ½ØmƒFcehŠ2ýª6€ zøÈÆR æPÏíùÏ/m :Ö0)áÝviÓ§Æyß]w’wÇÉ{¢;ß¡–Þ;Þ¢Ž÷ôg†;˜­24¥ì´‰:ç3¨§¼.ì+ľl…&ïík}†ºÒGÅ{‡häß+F†~™qXq˜¨lK¶}þ_2~ÐÓö‰y­¶¸ dâƒ\b¬´þ#´à¨ŠÚ"Æ>£íi7Bת8fN´!=ÐÇ—jµø‘NE0íšL Ïí£{OÛEeÒŸMʈÊKU½Ù>2»—ò |´ïhaM9ÀÀ,Ìç±M¢£è×û®¦`]é¢té€;Ó——¿„l{­ilÛöIv²ÕTñHæ:|öP`»²þ}Þø`…âå7ÞløÂ¾€\¿~³YäÖåoÿ~÷€?ú¿B“ô„ÎñK IDAT;‡íím|á _ˆMÇþžúròûzW^ygΜÁÝwß}¬ë}õêÕ#­ƒQWЯd_ä™÷~r2íŠz¡|”ïÖy.—R£¥_Éõ½ÐlÊÇ8Œ‰ÕFyØ6 úÿ>šÂÑv œïÝäØÄ#·Âøëܹs¸qãNŸ>Ûn» §NqV¶mCñÿ Õ½®( Þzë-¼úê«8{ö,î&DðØ“ç€O9ñæÎþžúBHÔˆýn •βî'„B$=N]»á ‹Þ1Kã0Bˆïd„Ú`¡ ÓÅ%´¨uÆ#DHä°÷Þ9BnYÎþööØ6ø$ãFÚw³¿'„>€œì¾ždEGg®ë¼÷B!’§cÃæBaÆ8Œ£Fm`8ôým7ލØ!ލ(ÂxäX3³|æÌüèG?Â/þâ/â•W^¡†!äqöìYüèG?™3gÓ²¿'„“ßׇ¹zõ걯ÿI¨¡]Q/”òÝ:Ï%ëÁzP>B!„,ƒ™à÷¾÷½øæ7¿‰~ô£PUžN!lj7ß|ßüæ7ñÞ÷¾71-û{B9ù}}¾˜ÚÕIÑ å£||ŽXÚ=å#„BNÒø+of€?õ©OáñÇG»ÝÆÛo¿M­BÈ1âÌ™3¸ýöÛñÈ#$¦eO!'¿¯'„B!„B!·‘ïæd!„ܰ¿'„B!„B!„BN§¨B!„B‰Áj£\nÃZÖý„BèƒNz=:E¢(¨lÂ8Œö{ ßõ3JNŽÆj—]ßUF;oÅ7¿¸ v³pYh—󳟣€ À„B!„ÜZ噑¯z`Àg î ¼ƒoÿõ:¤†TþA| ì¤¼Â2Å×ÁÚïÕ ¨¢|…r„î—’7i@§O½EÔ}¢Jâàbÿ?oÝ&©ãTþjÞ+)¦Mòá1miŸ‚ô‚:‹t—؆n~ÝÉô«GµèæÕ7dwrãŠ%PjÁ´mØ]¬{©8Þ±sµ1„m›h•ÒÆ{IýÅûE¿½¬âBÿŠÄV{Íâö1 T¸L!„BÉŽQ‡² lg 5l¨¾RвŽn }8imÛDk¼ƒ¶e¡]^Ÿ^ë2ƒNóÅI^››pÖM¦y™­1Ö}Ñ2‰ëàƒê†*ÎW Gø~aºHD 8ge««ÌýþIšÔPŠð†ï·ÐÞì¡jzíVDsS´¸-ç²®gðËÚN’^j“ô¶=DC•µq:gòéÿgïíƒ$¹ª;Ñ_Ê3’ÏØ€xŽ`@Ìd¶D©¼oÁkVªò$²Û˜²¼”­0±­• JÒ TÁ£ea5x#Óx©Ò ’ªÌè©mïÃÔ"¹$¶+õe±¯J,ƼSj49ñôâñdÙÁ0`1²¤Î÷G~TfÖ½™7?ª«ºçü"2fêöý8÷œsÏ9÷Þ¼7M÷éU€Bn/¿Þˆ10¦_Y·„³¸çã³-CO»¦i¢‡®Ð‹aã'¥EUñè‹ÙC~CÔzù:Vmâ´Õ:ÐXCMæäÏ2j}¦Þpef4‹P:e_{È×±R¯<ô2:J²—1x2ˆ“ε “ÖÉ3r ý~ ¡561DsÄö)#èŸ(›x&Ø6O>lÿ¯Çqm"¯½¤²É>ÆbÇ´B>œ' ž~òòsúÌã ä;‹˜Ùw“ T¼ºk4±2, 0óî‰?3u,á|5èõ …t³uVý¢ˆßÞ¾ÅëÅLc Íb’XTÃjh,í¬·Ôh˜@ @ $Ÿ’u‡hèì ¬\ëû6jËó6®ŽAs²ŽA%']-¡2Ø@ä–†¯.¹‚51ë¶GuÉ e†›îäœESX¬úò˜“CêeÒ,’É~†Ðä=-&X‹b+9ý¥œ7Q¸¼ %ÇùÎi¥§X$Š¥;Q|ñÊ\DÿóM¬´+X®½ÄÍ/Dw„Œ–~eÞ¾ ¬w0Ö®Ú£#RÿSÁ;æU´lfªK W¬S´–LåÐü´ôւךwáMEKoõ˜‹ŸsÈg8ã¥ómÂtt2‰sNOZÏÒÉïiðbͪ¸žQCU©c€6æÚc’JÃËàIHû7ëô—~§ÜV‹Òä®ÿœuP–>ãµÍ(/¢Ó~_?¤´‰n{zBÙdc1cZQΑ—žìDúÌ“W†9,-çQ_Õ"ü‚£3š‹u u(’„âò²ÿt§kÃ<a,»Ë´{Ž€ªV{?´è+•κ¥°ÚjùrÙ')Ô¦ú¯ìeæóuÂ6[DŸ/àèXŒùªèøMëƒ}4š(«¨ºF7º„ó6J_ÂÚ”]\Þ¸·ÑtQê׬2‹%dÔú%tãÆKZíB rØØ›=Ð0@ @H ÝöuEŠù­Ï„Î}ûyˆMûXâý-Rå::ðLÈÜùÝò¡›É}кhWJã‹>¼zƒtðÊÑËâILDö•µîPÄ"Öžv“Që/cÃáÒAyMàmqÓJÏ\ÿ£øb/Lø®óÕÿè|ÖIÑ¥q•tÜÆ‹lýšpû`/`ùut³xÂPE©bëDr Ëù:;È÷»’R061,$±¯¬aÓE»ƒ2 ¬wéßÌÈæT•º{²ltÊΟ>¹²›%çôTí•& ûe‚‚sR¼?‡Uf?³– Ë•6ºZÐ_k¨*XöžZwNºôÛãq0DnÍ¡Ü[0vXþ‰â°IÆañÚ—ßÿÇâÚDn{¢²É8ÆJÓòdÅ‹ÙqúÌã]¨ Õz˜´Ï³W2jk#»Ú_)º21Ö;ÈW`Û>ÈAáú†Ý³&°Ãöáì—*µeäë«ÐŒ&V† ,-xÍ­ç¤mϳ‘Íô ¼ü<_Ãf‡iœËû°8>å|u~‘ç—z´ç5Þôåº7DÄqe3Ú©J$›v–ì2‰%T´Læ°(S›CÊ ¶.„èÝŒ6€ @ B x®£Ó΋œÔ±¯5KèJE4 -½ŒŽ»¸¢ k£Æ¾u-éUUü>hÝ6*%51ìò,zƒ3× ¦õeÛ cÃBÃÕy¡ŒB» ->ÓðÒÉ»×ÏIŒ½Rm{Xë­kM =m–í²7³‚|ö¼!/”QÈô%£m·D ÿDqØdã°¶ÇÊGȇ{rT0~ˆkCÛËJGâÄX!1m<Á1ô ŒazÃésìÓ¿ðÅÃOŸÂìU@Jk³RßÈ£´”ð«YåósÃìnÐî êP” ,mÌÙ/¨)uä—Çûìž”œoÎ qžO`åçùº86›ë_ý¼gëXŒqgü§õ‹<¿¤äPðþ?JiÚS(o¬o,wKŸ!È2–kè»1uŒØOxìM´L @ ²¼€r¬7¡U”*lèžÉ—óF·ðF†ª´‚œÎ™$›ÆÙôñõÁÀæ°€œ"R/‹Vùz½<‰‹¸}u­¼|oˆoÎ8oø«N]Qß®‹ sZéYëÿc¢|ñ\ (ªÿùÆNŽˆÔ{ÜŠŽEž~•𚉴%Ÿ9ä¬Ïòñ<µÓì¡"ºÙ7Ö¼SΆ¼Þ˜­ 2ýÛ¥“YAßÀ€"„cn a4t‡žSzcßß׃g þU½‡e‡%m{\>á§ã61´=!Ùdc¥ŒiEeÁõÁüü>':ýë‘ãZ¹ƒÕu†°WJØÐ5t‡9(òÊÃ.4}ùRLëVh Ç¹™A]j Ï5Éö|¡¨x¾©uK/˜¯Ki³}¼›ß$ž¯ÎJÜSÛ^¿õ¢K©»W*;ÖÝR|_¿Cb…=¬Ä{ï½?úÑðâ‹/R0H @ ÌÎ9çüʯü ®»îº FE©2•æÔšl]s6ÈcY›cU±¾Ð²C4tÛä–|9Ð\¬e=zÁÆdúOH”*óèj-¨ªuÍÙ ¿RWHìkÛÖäˆz™tËóóEó$œöX4ÅžÀ‡”—çÌcU«Yß:óñ®‰¢{:€Gç´Ò'¬ÿWÌ!%‡/ZU´ÆÓyúïãcÄ8qN/˜ÌxO~9ö¸ÍD_RجäµÔX¢T1çá§V­­òƒ¬5—þìõ%„w«sè; ´Η²ÊŸúÈx·ØÄ‚»˜n] ˆ†YÖCø·é±5ô{UHR½©,’…ÛŠí×ɘØ\c½ƒAeª TæýüßÑàõs2a¡<Äj–—,Ýú6Ñ¡¨$‹#c Uim{Wª2ÁÊ:ŒZ rZ½ÛFŒmßu÷Ý8ïU¯ÂG?úQœþù´ÂF @ Ìþñÿ_ýêWq×Ýwã¦oœ:=jKÇfQT€zßXÍ"”ºõ®¶"ÕQé™hÍuEBÝÎSé™î–4ß¶æ ]èû]Ö¤r€§¾BCG¿ÕCW’ Y- gªž9'ƒ&NŒõP^s'„*§^kð—çÒËãÉØZ‹v~_…ÊÇYÜf•×(*Nû~ùûõ„Mç´Ò“ Žî¨<¾(9 ÝtKÖ*bè?7Ÿ½ÕÐýüçä·‰xÃÓmN?²n ƒ:©î]BCï£VëCGŠ$þTéÁ„ UßDÑC? è}5³ñÃ_MZ@y¨`D’E«œUþذÄܺ[VÝ.ïêÖ™èÛ'dZ<þ›AáCo¡HEK&rÊ1¨ÆLçÚŠ ëd67`sGô·z]Hþï\ðû9 È e ë¾Í,û¶>¯EØŸÍÐPõ|C”ýÿÏ?Q6Ù8Œ×¶!*ŽÿŒÔØ6‘Ý^\ÙãƒLb¬¸þ#ptSæÉ‚Ç N~£Éë38²”¡×Fö*h¯„Ø«~ ²\ÃrE¼Զ۟@Ù~#BžÚt9Äî}ø˜ÌŸ¿ ÀBŒl Ëyɵ•…J%üT(7¿Êñu1lö¸f0x¯òç7 æ«EDQ©c@‘6ÐÓséübˆ|bË«/·92Ùn\Y‡‹ZßD ªÅ&”µ¸åÃb Íb%ÓD+V•Þ—BÆÞŒÅÒÉ“'}ïe|ö³ŸÅÒÒ~ù—§OŸ¦6@ a†pî¹çâäÉ“X]]Åm·Ý&TæÙgŸÅÞ½{qá…îè¾?~|[û U­o%ÝäI[ž°;õŠøBô}gθœJ?´ªu•a†Î‡äAôQF f I|ÑDqXK|58·b4­ŠwÇM„*BÙXÎ4Æ úÙ .¸Ï?ÿ<öìÙƒ³Ï>gåÿН$I0M’÷…V;]’$œ>}Ï=÷öíÛ€ñ à—^z ¯{Ýëhó—@ @˜Aœ>}¯{ÝëðÒK/3&»ª€n;ð «m-O ‚ Ç©JîŸ4ôhÇ‹@qÅaùºq êP$ ãÆI`4‹$õÉçL€\[Cc8Ÿ™þl˜ßv>\L @ f«oT´R]9™¶<@ ‚§eÂl‡QF ¯ãB®¡oÖ2¥I®õ‘q•„™†s5õÎÁÞhQ‰@ @Ø]8~ü8õ@ ½Ú5|!úˆ>GÔÒ{¢@ ´L ³Š§ïÂÁ›€»înº ¸ëá›°?M=IËgÕÖ£ÅkË÷®ëü_<°tèÀéÕ®á ÑGôÑ8¢~Þ}@ ì¦ùWÖà^½µµE'g6ž¹Wÿ›Ûð·öÏ_ÿìwñÐoÙ¾öM¦‰Ñ³µ…­4õÄ-ÿÌݸú&இnÄ[R·õ>V~Ÿýî?áFÜ«oº'îJÙ/@8ƒA/k@ @ x ÀÀÄcøØ¿éâ}ßùGhûíß3`šl [–vÞÇÙ2M˜iê‰[>I9^™§ulà­P/0a¢ MðôÝéúE @ @ a gñþ`š&=ôÐCÏüÀ[!¿Åùýü韾¦iâÄÝ*Î?ÿ|ûQq÷ 扻¡žÿ1<æ– s~Ÿ¸j0 =f¦cÙvÙWF½'¸myÊsiy sÓÏÇÇ;»-ãoÿvï8ÿ|¨wŸà—õ¦¿c;FëcøØ;–ñ·øsüÞùçãüwý{¼K½'èbö‘z衇šÅl7Œ&ŠÅ&Œi•'ù ÝÞO­ I’ IªÉ…@q°+mXíMm!MÉaÍ¢í³Šh’q!:Ã`n¿üòË8uê=ôÐCÏüü:ÞyíŸã÷Þð¼á#úþvþµ…'NXÏ1Ëqêükq㵎´ó=øþüÚwâ×O=ˆüÛ'q£“ÿWãþ›îÀ÷í1ëüçñÊ+/⟽e¾nZ–qÌ.sL~C^[ny-ßÇ/;áÒðG¿~>®ý“Oâíoÿ$¾qâþêÚ!§ìƒøÈ¿]†ì”ýÆ'ñö ­§~ôQ]'š¿†½¾~qèbö‘t“zè¡çÔ©Sxùå—gvѶ86ÖPåLè´ªÉý›†ª3‘—ªÐâNþ}mGÕÅ )¤Æz(/@æÕË¥#P^ˆÞ¨…Œ íqù&*Áò¾>…-€ðèœVzbeÓ._²vÿ&J';ßh*¨G!õ†ŽÛ qœú¼úŧ7£E¤`Ý^xúí¶ËZxb.FñÇOæüÓªþñh4Qtú!ÀY´ë÷Д›Oßyü“GÚ…Rž DÓ·iLb.ìj¨ÎÑЭÝZ*±m ÁÇ?Q6Ù8L´m¶|Äýi™$ì/;žñŸic¬´4„È"¢¼Ë:VòæÛvmæÐM¦ÏadÇó1 è€\ëÃ4u4 âqžÏ6‰ðÉ›gr ØŽª6c:1áIò|–6€`kk‹zè¡çŒ~.û´]ס¿çQ8pn{ÜúÛÓ÷àýXi7|8þ4žÞÚÂeïù=|åQ+ÏãÇm×_†­§ŸÆq|78ùßý|ï{:ž¶Çªó•-[xÅùכߛ1‡¯à†·áñ­-\öéOã2^[NyÞߟþ¬ã6\Y€&o»Ü²OãøÛ=eY´ÓƒýâÕÍê#é%=ôÐC¶¶fìËéZÒ<гO'÷kràÍèy´9“êTPpÏ=«½1ļÈf¾|Ï9ÝC¾¾kß„_“¦>ØÍ ¼ óëåÐ,ÏͧuÝzMSGc¸Â\Ìbчoqä!VÞ@s±ƒ²½`oöò¨/ò6—ÙtN+=Ùz€¨îDñ¥âæ7Í>j²fqD§Ù晋 ü|Ö"Ôè–€^(äöòëÐù؈AýbÓ«d¿(èã³-CO¿MÓD]¡ÅÖ°ñ“zÓEñè‹ÙC~CÔzù:Vmâ´Õ:ÐXCMæäÏ2j}¦Þpef4‹P:e_{È×±R¯<ô2:J²nž â¤smBÖc‚àQ§úýB9jlbˆ<æˆíSFÐ?Q6ñ8L°mž|Äüixœ‘‰ ‰'Eügv1Vr¸²H@3fæÈ ËXub6zG¼k$ª¯Ñq÷˜e#*Èw“¿7 9ùⳆóö&ð¬èÄ´éØ%cƒ®€¦‡zè‰z.û467¿Œßý«Gñ­gîÅï^©A}d›››Ø|ä6¼Ý±™—]Û6Å·ÌoáÑMï|³}ýòÛoÃ#›vþÍMln~—yëçÖéØc–]¾ ŸÞÜÄææxTQ (Ëø·-O=¡g]ƒÑÿ…Ê Öì³nVI顇zfí h­;DCoAeΙú¾ ï}%§£¿”s7@ºí Jv%òB…áfôÛ¶jËsJHA®]‹¦°>Xõå1'‡Ôˤ#X>$Ÿ/]ÇÆ€½>N{MÞÓ‚±å¯¼ %ÇùÎi¥']ˆ«;Q|ñÊ|D'Ô*ƒ èIóM¬´+X®½ÄÍ/Dw„Œ¦~1éôòŠõÆú­¶Äø©ÿ©àó*Z63Õ¥†+Ö)Z?Øù'héaí?{ÁT´ôÐY7¦ä9ä3ƒñÒù6!ó11¹nωþ Hi–N¬xOƒ›hVƒ§4T•:hcÞ¡×ÏÌy<fÿfìóÑï”ÛÀjQ:s¯¥8,}Æk›Q^D§Ùþ4<~Ȇ†ù{ÿ™UŒ•†ž,’Ð1ÞO±*ÏvM‹UT‹NÚèöî²×¶)u ¼6å®Ýµá­ÛúÜÑUÍÅ:ƒ:÷Ä«ÿduõ[Vùõ*çä©íM3>ÃÇK‡„c„Ðq›ÃÒrõUMзx¹¼ì9à©þ‰tQ["×Ð×GqçLèDdü ÿ°ébñ1„ç,…Ñ5ëÀ¦iÒÉ zè¡çÌ~ž¹¿ûÉoz~?Í·À>Ó„ù¶«qÙ›¬ôg¾ÙÃ÷LæÖ¶¶Þ„Ë®ÞÄ£Ÿ|›W_†7mmaëMo†ò½ÏâØ7CÚâÕ|ô}òÞg°µõøOO=Œ?|Û&ž69m9åy´¼é2\mrÊ}ÏÀÃúñ¦7Cù^ß|†Å ÞÿGÑÅêã3¤›ôÐC=[[[3´ ¬¡Û ®ˆOzŒf‹X sZžCž¹Vñ::(cAŽ[WD´.Ú•Òø„ŸWo^ù1zE›.JfÂMˆ|’¿AÔúËØpx§tP^xKšGç´Ò3×ÿ(¾Ø›¾«à†Ø4¼‹ÒÞß^Dç³NŠ.Ù:ÄÊÜ"áXÑ/?½Á^¸ñ/X­£3˜Å†*J['‚‚kXÎ×±¸ØA¾çØ…üÛÀÛİľ2ßB»ƒ2 ¬wéŸð˜ÈÐæT•º{‚qtšÉŸ>¹²›%çÔUí•& ûe‚‚s©?‡Uf?³– Ë•6ºZÐ_k¨*XöžZwNö¹ôÛãq0DnÍ¡Ü[0vXþ‰â°IÆañÚ—O¸?3’õ7]<™MŒ• AY$õÊ€§CLÛé±A½ Úó‹ÀZàï!>dÌWM,Öóî)×^Þ¦Ãcç¬v¬Í/ßéóž³±)£¶6²çýü§mM­wòúÃö¦ŸlY°u(ÃAm¡‡ù@yžoðòº7xt4ÀS5„wilØÔu"j ˆÅ?lºX|äñœ'#ºgu + é¡‡ž3üÙw®Þ¬à¢‹.²žƒ®þܰoßp£òÇ8h§ßj(xFžû.»›_5qãöÙuýþè¡O`³rѨ®k׬MU·-N¦ xÿ \mþñA»ÎƒÐ®þ>°Ó–[žGË>|àsþôO}˦«üUT.º×®½‰Sö7ðG-|Íï°Û‡±~qèbö‘t“zè¡g殀ö^G§70œ;©c`½3À ®ŒÞ<Ô¡»8•zQ\pó1f´n•’š˜vy½ö•«f Ý,NÉ5ô#¯oäÉ£ C¨¼÷j5€ýVû®[wø|QÑ2ƒ×OªhéetÜ…%uæF¥@>ß韰üqÆmÒ±¢_Lz3Dð hçú¶YÙx[´é,uǾ;¨.5”±¤ŠåŸÕM?wC~%}&¯Ó›Ô˜Èz#¾áꂼPF¡Ý…HŸixéäÝŽÀëç$Æ^©‚¶½¬u‡h,©öuÔ£6ËvÙ‹ÞA>{^ŒÊ(dú’Ñö¿Œ2îŸ(›lÒöXùù„úSÑ8#ù¦i¤¿ŸxŒ• ,=ˆë!{ðl§cƒ” Þÿ»j1:ùX\î‡û yy´1oŸntoHñ¾¦–Pq6O½'"çÛë–c0Údõ'ŽíMk똲›§ ÆãÞ½Ý%©Ïcñ4Œw±lь鄈Έè‹.q㑸fÊØÃJtN™‹7â÷ÿbˆß÷¥mak (~jˆá§Ù·¶°oü}üÅÐóÛMû}v~Ì:üÅ_xþõ•)âSÃ!>å«r‹Ý–·<–±ôñ¾nS¶ø) ƒÄú‡7þ¾Ÿ†¿¡ ì>aæ®MP.t°iªÌ_T©y'c‹ÀZ«R70ÉÊaIt±OZANçLlˆ´rô IDATcÕìƒÍa¹%‘zYt°ÊGÐ ¥Ê<º:{5n_¹ò\À5šX6°ÖrêÒ¢µ¡ºÈÀ£sZéYëÿcMt„øâ¹~R®¡oÖ|rP¸ Kü|Öé}t:B¤ÞÈq+Š nGë×½µOsÈV°nÔ0³ŸwU[0ͪRZKæKÜüYóNtLÖ¦¯ÑDQ±$gB<ú3Û}ä(8J4æ–ÐXY… ;,cÉú´çHgƒ>ïŒaLðeŠÃ&‡%m{\>‘þT4ÎHÔ_jšx2“«Ÿ.¦ “EªX/¦ 2ŽUåZN“0š(>Þç–i¢e_‹; z:Ç·ü°‰â•Ö7ûò¨?©1IÛëå-S<=ÌSÓÆr kå"V×ËÙšmïRÇE3 i㣉¢²ÍtÍè0=ôÐC=ôÐC=ôÐ à Um¬8G_±jÕã\Ãh¬w0ÈÏEO`&Šc‹xqë éƒïzÀz™t`üzAN>£Yõ}‹¨Û. §¤ä[’oÇñ6¢¼<‡ü ÷ÀƒwÞo+òèœVú„õÿоhUÏ7«XãÅúöÊ 9²Nò9 dÜÓ?ÞüYÛ¨±(ðÁ¶|ûw$¯¥PWüüÔªUhòòƒÖ ïðÍZ_Bxç=Ák/¾)YåO½°æáï:Aë:<” ‹òO®¡ßƒ{’dZ>‹g+2ÛˆÙc½ƒA¥U-¡àÿޝŸ“i å!ºÕ.†Ž= ú6Ñ¡/x³‹§a¼žÚ×/×|s‹©êD¤ˆã]atŒñ|;ã’ìÁ=<³§ @ „3³««-›ER hè}w2d4‹PêÖÔO‘ê¨ôL´T^==t% 몵è)•5` H¨;󻆎~H]Lš8}0Ö;@yÍóhäѱy.½s@Ý“Vé™ÌM46íâ|‹#áòzEÅiß/ùN+= âèŽÊã‹’ÃÐM·d­€Vµ®$st‚·)ÊÍg/`Oÿpò‡ÛD¼áé6ws—CoVÔ¡HuïÊzµZ:ŠP$iô§J&T¨ú&Šú­“jf㇠yå¡‚I­rVùcCCUšGÛ­»eÕíò®îa ‹E2Z<þ›Ac½Q„"-™È)Ç 3k+²ò¸›;¢¿ÕëB ðç‚ßÏI@^(cXßÀ²)sÚ·õy-ÂÖøl††ªç¢ìÿÏxþ‰â°ÉÆa¼¶ QùúÓ8# šÄvgcÅ¥!°É/ód‘€f{àÅdÙŪ‘¶Õã+ •ŠÿºZ‹™4ý ÖÑñÅTôLkƒp9/¹é¾ºä–+楶UÇšßžV¾Ü´ý!¶)ǧhÜ-0ßM.‹ Ú+>ÏËËÛnð8ßÔ-ì“wQ'‚}²- ¡ìÏÔu"žN3ã¹Æ¡‹ÃG•ÅsŽŒ‚1îX<=q€tòäIßêÑg?ûY|øÃÆyç‡gŸ}–V×@ „¾}ûð /àÈ‘#¸í¶Û„Ê<ûì³Ø»w/.¼ðÂÝ÷ãÇok´ª„n)ù&OÚò„Ý©WÄ¢è;sÆåTú¡U!uK03t>$¢â0á Ä$®óÞUthZ„ÌîçEΘPü3 ?{ÁàùçŸÇž={pöÙg㬳ü—8K’Ó4!y_hµÓ%IÂéÓ§ñÜsÏaß¾}'€_ÿú×ã¾ûîÃûßÿ~Èò™¢¹@ ÂÎÀO~òÜwß}xýë_O̘ì Ýv¥Ö´Ê èqªìÃL˜ô‰Yâ00u8§P+½©løNÐ iPü3ÃÛ¾ñÆqçw¢Ùl⥗^"@ 3„½{÷ⵯ}-n¾ùfbÆD¡¢•j™¶<@ ‚§e¤.Åa‡YB®¡ßŸQºÌÚ”IècÊ$NPü#„±+  @ Âî‚s4@ @ aö0ñ+  @ Âî}˜@ ½Ú-|!úˆ>GÔÒ{¢@ „Ý4ÿÊg[ @ @ @ aw€6€ @ @ @ a—€6€ @ ! FÅbÆ´Ê|q‚äB¼&Y³8.&Šö÷G¥ªÆÉ^´¿QZD“#|þ¶6€ @ B:hU{B/¡86£×PåL–´ªiìoüü̉˜³Øàk[CÕM¯b|‚ÑFHŒõP^€Ì«—KG ¼½ü…6íQ}EJyD”÷õ)lA‡Gç´Ò+»˜îpùµû7Q:ÙùF‹jA=Š›?Å¢HÈÓ/a½IOËXy¹ýf-ê0zbا´üÓªþñh4Qtú!ÀY´ë÷ÐÔŸ¾óø7&´òæÉ@4=d¬…ú2a×sÿDqØdã0ѶÙò÷çÑtzýtt½añ @0‘+»9†¿¼HŒéåH¬Ç¢}B17¦É…tÓ„ÙR™}’k}˜¦ŽF!½ÞÈåqqý$ø"SrþÎË›­Û¹‰¹S7Lwá C´L @ ’C«Bšz¦ Ó4ѯɞùS’46³˜„TPðÍ·øù™Ð7ïYíšfùú"¬}“yÀN×CÌ{¬˜m„ôÁnå™_/‡Ž`yn>­ëÖkš:Ãæb‹ö°¾Š”“GtyÍÅʺM{/ú"os™Mç´Ò“­ˆêN_*n~Óì£&hGtš=`ž¹ðÀÏg-ª™îÓ«…ÜÞ˜ù•äv b øõK\oÃY„ôñÙ–¡G^¦i¢‡®Ðblû$nDQU<ü0{Èoè€ÚB/_ǪMœ¶Zk¨Éœü™BF­oÂÔ®M0šE(²‡¯=äëŠØF©Wz%Ù¢-OqÒ¹6!Âg‚þ‰â°‰Ça‚móä#æÏ£ãŒ`V/³±â€IÆXéçÁò|¿&;ÞXb§O.ƘRõIžC~°'º1Ö;@pÃcÃBJZ"åúý¦îñEèÈ‚Öíìï¬ð–€=ÞwÜu/q„@ @ØAøÈM×Mµ}­;DCïCeÎûú0š(.Ž/¬ätôÖ}ãåçBm¡åþP+€†n»‚’ýy¡ŒBgTÈœ6Âú`Õ—G©R/“Ž`y2'Ÿ¯¼ŽA%Y„Ÿ!4M•Êúhq)–mÀV‹ÚO¾3iµ›â°ôq¯mFyfûóðø!ÒOêîGÌ8 Ã+íc¼¼¨Þñõ&óÒåÚËBzëEËŽ=ÔP•VÓûXXgä]¬c0©ŽBÃîÓÆm 6Ú ÒÓ‘[QPxì.ÃפЛ¸z®¢TYÁ¦¨2 oä±¼ ¬Œ€ò’«¿‰}‰bûª5`‘çkxþ5á-†ÑÁ’Õè-ׯbLjö £ ÷JÏÄÒf ŸÝÏ5F|`°êô…+,_jó|C[KaÔ-ÛÿÐ>1içk´\xÊ@“Ç€ïó ‘¾L{‚ Ÿ¼µF«h3‚Ÿþô§øÅ_üEbÄ Éã/t>pÁ/3fùÃWpÓÜÙIJW’ɃpFËã3·7§L†n{€v[BIUÈÂÊ"Ö¬ÉT¦×¾®£ƒ2Ödø·ä9ä¬Í4Á>h]´+%´tEêõÐ,°|0Ð,*¨< ú±W¢úšµúm/zuy,ÏÜæŒŠReÞÒ‰JÏu¢\Ãr^Ââbùž³’R061,”±$óÆr.ưé¢]ÈaiXïÒß—MËçV•:ò=}Õ^¬­j0[ð¥;‹Ä³Á[ëä+yt5@Uul ‡Ø›Î¤V…´ª¡¶dßefËêËŠ÷·V…´ÒÄ’šÁæ¶\ÃrEBWkAU½þZCUÙÀ²iŽ6×›XXcÑ6DN7aÚöNYlbaGŸx ú§=¡8,Eœ!Úv¸|Âý9;PÖ£ãÀØqBd0™+íC¨ü˜Œy²ãÉ*Á3šX¬çÑ3­8@«V¡£†ÚrRWCKUm=_†‰&Ь¼k t|›q<gÛ4½ i~ çÿ+M,©sXÝF_£ä€•uµ°‰Ô9äWÖaÔjлmäí]ùT¾dÍ;Žûš ô9”9 +Q}0°îœòWGùŠóÁ|¹:¦aUÄÓ—nÚ/Wzn P=ñ K}}f•  ÈÛËW¹Žâ)5œÿLŸ?ÇæÓ Åt4pâ·nº•˜@ !#x®2Ó·]íi`½3À ®Xß¾Rê êPRgǾu-éD‹ß­ÛF¥¤&¦ƒ]žE¯}åªYB7‹o¢Ê5ô#¯o ‘‡Pyïµx:…ê«é(_T´Ìà‰*ZzÅù&œ‚úÀ{£²QùœS:59Aþ,àÕm¾~›´Þ¯€va²¸.pP[6¥îØwÕ¥€2–T±ü3‰AŠóÍÕÜtO¦fâ˦cÃBÃÕy¡ŒB» ->#ZRÅÚ`Ò7ò(-å0ìjVòs–ü½ßñœoCëæûâýñj©‚v×þd@wˆÆ’jш6æÚ”:ÎU¤c´•± {äá¹²tçåŸ(›lÒöXùù„ús^< —ÇŽÄâ#…^°c¬´mñÊwq*®ì¸²J8Æä9äÑÆ¼ýÍ[µeo4«%TÚÖg,\=çå ú®³mš’CÁû†Ê!ãD^([w>ëè`2ä°6‡žíYùÖßÃúkŒgèÓX26ÖÑA€N]­SÜ2}©«o ÚÂê+'*o/_äêÆS‘²cø|‘¾L´L œa˜ÿÐ-øŸ/ýMþâ!f@ÈòÊö‰‚ðE’ÑbN!õ5•£+Ϙð¸ßˆòõÁÀæ°æ§QÇêeÑÁ*A/T”*$ú¤gìïa¥”‡ÑÄÊЙ<˨õ£¾]Aç´Ò³ÖÿÇDùâ¹"Q®¡ï“‡Îˆ|Ö)¥ÑOÜü©ÔmŽ~­÷$Ñ›Ôò™C~ÐÁº1Ã6TmÁ4{î‚næù³æè˜r6äõÆlmñèôe3}ct5å Aɺ†î0E^@yØ…¦o _R=×~zìÃTÆÜÃ.4hèG »ãßoÍþõàÙJ/p2Åa“‰Ã’¶=.ŸHÎŒ¢ãÀxq‚`$ҶÅ+_Âk„dÌ“o,ÅcÎÆq ]I‚$9/H¨(UÚèjö5ÕjX^Ž_že'Ï!ßöø ÈX(›†u“„bÏE&êKfÒ¿ ÊX8_H^Q=áùR‘Ø0ŽÎJì°ÃÆmÏ0LÓ$&<2Åüuu(—\ý«ã×Þ³€¿ú›ÿA‚%Ðø yH$Bª h©ÒÆŠ³sc¬£Ã<¹8!MÇñœÅ‡¤Îi£¸}°¯°³&±!õ2é–çç3šUÏæ—†n›³ØÉ¡OSŠ,"åå9äu¸‡7}¼k¢8¶@¤sZéÖÿ+Bø¢UQe¥æb(/xäÈZ° ä³óòOéÄÍŸÅXL 7¶WK  ®øù©U«ÐœÙëKï¼'x£6âæOwáÓæÝ¢÷$•u1Ê Eù'×ÐïÁ=a2-ŸÅ³Sóe¢Œc½ƒA¥U-¡2ƒ/7È e`eÃòd{á¾ÛÅÈ¿yNÒë)-²ËX(Ñ­vm:6Jt(;òØ©!]¤¢8lq·í`ù0ù°üyœø!D¾ÂqBœ8`R1V¢Ø%ÊñeÌ•OVIƘMgµiÀÚ¤ÓÑð¼ ¤.50œŸÇÐÙ¤É ç¬„6.ø2X&v;tœX7I¬¬ Ýñ(ÏÅ•‘½ž´/ ó¯<Ú³ˆ)Ã^–cÉ (# SV¾rôŸYg=aøÒQ00N›ˆ²Êe%o^<%Âÿ ÏO:ž¶'Ož4çÓŸk˜„ÙÁO~òbÂŒÉãÎã/š§^|yG>ïY¬™Ÿ{ o>òÿÌ\?qÊü?Ÿý™ùÿ÷ŸÍÿþÿüóŽìÏÇ_$¥${E y<g¼<>ý¹†éçyÏ÷¿ÿ}ó©§žšºÙ(À`³¡{þÒ(ØéÖSé‹6ÌB¡aê‚ùƒ}æ`ºiš=³â¦UÌžE»z£`×ç€]/Ž`y.½½J8ŸBiçôUo˜…4ò-¯7Ìò×fÁÇ{žL¦•Î×+®¦ÇÐp¾0dàÑ‚Ÿé~>òòÙtøÓäOÀ—ð±¦_l»! .}³ÆµïoŽ‚å<¶Ihü$æŸW‡üØÉÈüiùç31lcô;õ„ÓÍ¢×~¼tžMàû²4ÈÄ÷rÇÛ6°ôw:ýè™//{]½ŠÇ^T*Vƒúõ;‹~Œù+Ž>³háò¼gVÜ:yÿŸ¾¤Ñ³GqØâ0^ÛÁò\ùpü¹püÀó7ü8ÕØqÀ$b¬¸s ÖØg–çÈ8Tv1Ò#c oû¬xÎË~^Çæz´ãýß«GŽÝõõ,™eÉ÷¹z£à·­6Ý^þ¤ò%ÁYùyþ5ŒvјˆÓ¾OVc4qd<¦_Œ|cñ„×7E×Éô…<›Ã]XsHNÜÂ(KÞaråÅSaüçÑËý[üXà©§ž2OŸ>m>ûì³æ~ô#óŸþéŸÌÿøÇ¾çäÉ“î¿Þç'?ù‰yêÔ)óþáÌïÿûnºtòäI÷ÄwÝ‹OÞZ£ƒ 3‚S§Ná5¯y 1b†äñ_þ¿sñ ~˜1øË¾‚›æÎ&F½"tôLä+ IɃäA y¦5Ã÷|Okå @ô8UÉ]ø“æ-N(£8Œ°ûGI·Êò”7 êP$ R•}®Ñ,B’Ô;ŒÇä_ ;ÀšE[Á‹Þo½Œœi5Íw¥‰˜ªä1<’„bÓÜ;OrÙ~¸óò=xÍ9ösù81‘fîÀçü¯¸ÓÈNŸjçxè>g®8²ÃG«zÆÇ´¾-E yì y¤ýFdâ:ÆýYõŒR`ÿÓÈ`vü¾Ñ,Ž&|“Ò7­j·‘¥mƒ>fÑwŠÁ·*Zf+Å·üÒ–'AÐã´L˜¦óï!PFqáL±ý3±)×Ðw|‡ ¹Ö·}ÔÎ:ýKþ•°Ó±'bô¢ÖïaCZAnmFÞ&9ƒÀ?¡R@CËú&]ß=ywàŠ‹?†‹x§®¥ÝùpóÕi[ÕP;çqá“ÿ7Ëäà±?’qÏ.ÅíNýÐP;ç"¼æ©¯ãÔ—TqºfFÅy gš–C6šhj€ªj¨J+ÈéQA†h>‚Ðøàʃø5[òÈÀÈIëðø3£‰¢R…PïÌ1*âÏfÊb ýoM,vÊÐûêõÍ@seˆÆZ €–@‡ã+­ i¾ŠR–¡ÓĈ޸ o¤W»…/DÑGãˆúAzOô°›æ_Ycì hðk·ošqÞuîÙxÕ¹gã]G6ÙùéIýÀÖÖV´<ÜGás߉#F¸Ì^uîÍxØ›ÿÈÍvúÙx×Ý-óð¡³ÝôWÒüm<4ªïÐC&Œ#ïdÖÁnwgËÃ#Îó´†ÿöâÊ+éîó>ñK—ãµËñæ_:„o0Ÿ>‚k~é¼ù—Î¥øFÍI;o®=d—}þ<ÿô6oÚå8ö´Ó¾·®sð‰Gýí»óû·kî4˜4Žõi¿Š…w|<‡.~¿&õ0íÕUïÅõOüoø WM ‡Îý-ÃXºx¤Ïã:ÎÊW¾ß:Ž\>ªãÐCd¯ÄäÁ³1?}||èf¼êò;`ì2{2{òéµ×žûì$ÿ½c#Ü¿pýÙCâØ ·âÐ~ž.ÜŒÏËlÚfg|Æòçžßl?Ò7·¬†Cç†Ù:V0Q}3z_Cî½#tˆÅ•ÇCâØ%¿ƒ«÷GÅ4¾„Å^FB{ljÁ @ @ „ Ί—ý!ιî‹xáç/âÏpî!NOà–ü98ïUÖsøá(™Ý‡k†–Ì^è·5Fõ<õ^;ýƒøöÒñˆý—«ŽÚùþ®?v;Žžð´};ðgv™{JçàCø2£Ž°vw6ü ÆÞq.à.þ&žÀñ ¿ŒgNÅåæCøÄÛîÃÂ÷N㙓§ñÌ5qôN¦iâò†vò\{ïí¸çÄA|ö丗âSß;gíú˜&Ló!|âmÇܵË}ï 8þï.Ç='Fí~úø{ívnÀß}â?ãq&}N}ž>yú)F¿_“ÜTÇÕ8úó'qÍ}{ÆÆÕ8úóp=.Åç‡/â…£Wstœ‹‡¿ˆ[.~À®ãE=H–IL<#ãð­Ä=_ÈÍóÈ׿Œëoý0ìb{2+òppàð7GrÁÑ=zuB{Î÷/\V‚ÝO¾„µ±1Ê¡mŽÏGoÇ=—üÔa~ØÀÑw]ŒûçINß }×û€n˜­‹Šç’òÔÀSß¾s&©oá‹Kã·FéPñÕ×ß‹ÿ0„Æ4j/”|/®Ç“Øt6z>do0¿/°Àx)>ÿe{Aôà{q=.Å5ª<^Gh»»Lßù~ZúR,´WÄŸÖ±‰'ðé·Ÿ‹·üò¹xËûáïŽÛ|yô•öËïÃWDˆzZÇ&nÀUWÚ¿÷Æá란~bÔî§>b+Ç•¿…k±gžíñ¥PœE|ºÂúµíqøññÂð Ø(…¼ ÁÕqÑf.Â%ÇÞ‡wÓFd„½âȃÅÿƒïÅõǾî¾Dòà“¶¿Ùeöd&åÀ#‡ßt¿„«”ÿ!þ…çφáöW]nmPòtAÔÇÍÐø —Ljö_]º]wÑ3FNh¸ÿÛÄ­‡Ù_ ¾ÿƒÖf¤/.`ÖÏeÊÓŒõíá¯ccõ£V¾(J_ ¿€K\ý ¡‰'‘1×ÞQ >}M‹MÓ*O òA»½ŸZ’$A’$T5’ â0afuÚÛ¾ÑDѶÝRFÆÛhmPD3ëNî4_CvãÀŒ‚£t翬¿Ñ“éc±5Bárýÿüõ §ñÏÎsä £ÏoãÞ]2í2Oâó—°êúÍkw‡Ë#ˆý*Þq <gØÝ€ÿý¤sªÖ:A‹§âß½vú“øÔ;¦hžÖ°þÞ²1ébôkÒ“ÙþÃhþRÜóàC㺚…Žï?Œ¿yá4ÚæíÓmd¯„åÁåÿAÔ?ÿ$n?bÀ8r;6®Q±7Ú“Y“GPϾ%ó¹Ê«÷Qüçù Q¿eÂܯâšKžÀSF”.ëfÐ6Kã3ÔŸ_ŠÏß¡ý(®²QìÛ&€'\ŠoÿÀsûB„­3ãøïHžòhËJß ½ýÉÑÓ‘:ÄÑ;‘øjÿa´mý3#c)ž<¢b¯¸öŽ/³Y\´-ŽÍÒ5T9“S­*Ab-0ën«œ IDATáL|™e4TÝô*Æçö šBú`¬w€òd^½´»å…èZ< ÒÕW$“‡hy_ŸÂixtN+=±²‹é—/Y»¥“o´PÔ£¸ùS,BEŒ_¿~e->-c2ðÈËí7k¹°Æ?YÒ\lccÍîG{ 4‹vý‚zãÓwÿÆä‘v1—'ÑôÝ õe„É.Rk¨ÎÑЭX§¥Û¦ÌqüÅa“ÃDÛfËGÜŸÇ´}ñ;nŒk£³Œ±’Ò–~ŽÂÏÏ¢/ f…tÓ„ÙRcǤ,9˵>LSG£7†ŠƒÛìk‚åÓïÄcƬâ9‘¹\ˆŒìgBÛÍ«Wx<‹Àa8  ÷í£a‰8qôvº~nÖq@AÇð'aÇa‚8ñ|û’·Z§Nh¸ÿÛÛÔîÁ–é}`ñã7à+ï?øˆ'ýÄQÜcÿvÖg·L`ë- æp Gî<á¯ÇøþîoÅ›M`넆ÿöQ_yïo»®GµyäÞpÅå?ýaüáÛ?Ž¹Î—pYºxýšàÃÄ#Gñ%WåNà¡ûŸÀ%É)t\ÆE—<§œ:ypÌæ8ü8þþó—bcóÙQy„ðÿ€ú;ÀýÿûsøƒÃv½=™ yøð0>\þÚ{„t»øBÃýß¾êpz ‘¯Ù±ã“7F¨¸æ^/Å5ö8þïÃ{œ¿së ‰çóTÆE—lŒn¡ÈZßNh¸?w+Õ¡€ýŽÆ¾¹[>hõGO‚c&–½›õ\«Bšzöu¿&{æKEHÒ<Úœ…•TàÎëõ ä{Î&wùúbôDŠSF«ÎvºÞbÞ3QdÒÒ»”d~½´;å¹ù´®[¯iêh W˜}gÑÖW‘ò\y•7Ð\ì l/¢˜½<ꋼÍe6ÓJO¶~"ª;Q|©¸ùM³šl YÑiö€yæ?ŸµP6z¥W ¹½1ó+Éí@Äðë—h3XˆôñÙ–¡G^¦i¢‡®ÐtØøI½¦xôÅì!¿¡j ½|«6qÚjh¬¡&sòg µ¾ So¸6Áh¡tʾö¯+b ‰^yèet”d›þ<ÄIçÚ„?@H£N5ôû5„rÔØÄyÌÛ§Œ ¢8lâq˜`Û<ùˆùó¿›(ŽaÇqmôdb¬x´!ƒ9ÊXŒB_í“ÏÖɉù_¹†¾Þ@¡Ð€n¶ Îª¯ñ…ÛcNÌ9%×F ÚÈq«=¡zÅçÀ³€± `ëP„Ó)Gßý>܃'pˇŽÀ0¯Â}î)‹WŸw.*¸׃N[Mäû¦&°µµ‡óíSÞ7QYÿ¿ wüý*pËÅxõy–Ü^}ø!f=îï+?Š?ÁÇñ¯Î;¯þл„ß6ÿ7¿Ý,0äa^qÆwWq¼|.¼Ö~n2qùÎi#oþ«ð™ï®xñ(oý!˜W|Ëø8ÞýÚsqà¦`î£üW,>ÏüšÏWŸU—Ûî¯} óß=Šwš¬v¿Ýt»þמ‹¯ý|÷çøŒC»0]œ~MøÀcããJOýª­oç]Œ[r]¿Ûöýügû (¿e·óÎÅ«õkøí¿ÿnÞïèÂ!Ü’;†{r0J£Úfh|&ñçü1²7ÿM9O?ü°¿®+ ñÛ÷_lÉ.ÄÖñ㹤<݃ט¸_3&¢o†ö5äÞ{U òÛïøò¸ µÏ›£ø—9xòŒ½bÙ;¾Ìfbÿ·;DCgO¶åZß·àô­ätô—r£Dµåy [ANäof Ýv%;]^(£0Üt'd,šÂú`Õ—ÇœRo(íNù|¾töÂÄ8í!4yO &‘GŒò.”ço<:§•žbA+–îDñÅ+óPK¨ 6 'Íg4±Ò®`¹öRÌü)–¤BÆÀ¸~‰ö7óå&¬w0&/µ!?QýOï˜WѲ™©.50\±NÑúeÄÎ?ÉDkÿÙ»p©¢¥7€Îz¼1%Ï!ŸáŒ—η BcyÀ;éúrX-îŒ@Åaéã0^ÛŒò":Íöç|¿›$ŽaÆ lô$b¬¸´!å…×¾ä<òŸ‚¬~ËJ]ÚS–bÙS®=¶n½Ç ¡Êº}D©cK'õôþWtL¤õ5AM‹UT‹N]£[R>ùO=;4h.Ö1Ô¡HŠËËìk³#e«_”7œ˜1„#Ô;þ/ “„OÅŽë{ÈÜ@Ð>‡ÓXíŨW|®7]ìÛ6½‹Iûqóc/àæÑa^y?ýÙ‘Q›Ù‹Y dŒàf—…«ÐüÙU ž{Óyö£?;¨z¼er··ÚÆêEÄof»æŽ–˜ãã«?><^ñ™t7+yyM‹ÿ‹Œ2.küzcôÛW§.ŒµË ÃMÿ9>Ãh×&V˜.>-“#þqðš ¹]yÇ øé#ýgëx0Ÿ mÞvÞýtûjQ²W"òØÏå¿÷o¾ºv™=™-yŒl7<úïÓíHþ‡ø P¿å§‡Oü‡ß¼Ê×ÖØeц«fj|Æóçˆ#A¾yî)bë|¶íÄQ\yK¿¹?Ä ðtÿÁk€jÆÍ‡q S}{¹âÔ‹©Cž>zy/*ý7?½9j °ä!{Å´wœü‹S·8ºíÚm u;¥Ò ¿NËh±ˆ5ëínÞÞXGe¬ÅÙò”Ùn6 ºÐÎ×}кhWJhèŠÔ¤ÝS>¼šEõA=3á&Dd_Êƒß jýekò( ¡÷£Ûv霛R:2zûž§;Q|ic^²ÞA/4tôk0Ħ¨²³¸àýíEt>뤨:º±ògµ©2Òm¾~‰ö7!u(R}ô»Ð€¾ty,ÏÜ C¥Ê¼¥•L¯•kXÎKX\, ßëÛ2 É?)›ÊX’yc9cØtÑ.ä°4 ¬wéï˦ås«Jùž‰¾jŸÊ®j0[ð¥Ãh¢¸8£•AË&̬S_+M,©5´ô†‹ÀZ¿f_ó;ÏègÆ‘kX®Hèj-¨ª×_k¨*X6MkÌM›XX Ðo4±2"§›0m{§,6±°í'¼²DÐ?Åè Åa)â ѶÃåîÏY~WÃFÌ8&]Ü8Ù+-mqç(ìü cãHý°O+ª.±(~aOƒvŠç7–øö¸¶\ÔÕÐRU{ü,Ô5T¥ø~Æ“n£ÿMãk–Bl½^…4¿h]!­ê•k}˜5§ÓUH«j-µµ:N{FÅǓɄY¿P Å‹Chá)K'¡¡*1|§°O ›Ä´ÏBk æ"n½2äÌÇùäpB¼…üWLzfà!»'ŽâóŸGí*bŤñhó|û’‹°?mEãîß¾ÿú#dLáU¸ã±Ã8@¢šax®£Ó·Ô1°Þ`PWFoêP‚ßãQ:(¯ÅY@MRF¬Z·JIML»<‹^ûÊU³„n§ˆäú‘×7†ÈC¨¼÷êCÂõUô?”/*Zfð1-½ŒŽâ¼1¯ Î|»] ŸïôOÜüÙ,ØŽt›§_›Xêo ¯€vŸ 9(3¨Ej˦³Ôû¾™ºÔPÆ’*–&aŸ~‘$ ÒJúLnÅñeS‚±‰a¡áꂼPF¡Ý…HŸixéä˜áõsc¯TA»kŸeêÑXRí+Bíb®í²Où\(cAöй-·LÌ1üÅa“ÃBÚ+!ŸPĉcDâøiÅXii‹;Gáç?–ull¬£†çÙSoz˜=å•WK¨ØyÜñ“ÄÏǘ‚þ7ΘJëkx¶^É¡àý¿§¯îÉ×ù6vãP™DÕÂf̘ÄÏúôŠ¡“a¾SÄÿ„Î âØg$:÷â×»“æÀãÀ&è ÍY¸Â£« ‰3$æY=3ð½"{EÏn•‡/]q~ñ¹¥»a?Écr<þŸ¬çš{®Ç×͆×ûoþœj^IòØÖ>Íä”í·gøF“üB¡áÙ ÐP•VÓEÌÊ›ÆÙôñõÁÀæ°æ§QÇêeÑÁ*ÕG¥Ê‰>Ï·¯‘òXØ:“µ~Ô·ë"èœVzÖúÿ˜(_<׈É5ô}ràБÏ:i±4z3>nþ´›¿>ÝÑ/Ñþf*Ÿ9ä¬Ïò­j ¦Ùs^3ÏŸ5ïDÇ”³!¯7fkƒŒG¤/›1èbWqch a4t‡£ÍÜñïˆï€ëÁ3…à§8(Ë8Îm{\>‘þ\ÄïFÆ1)ãÆ‰ÆXii‹;Gáä_îIÏØË ¥J]ÍÅyì¨0L'w‹ÿu6g½ßÙÍús!YÕ¿1cß)47ˆ²‘1ÖbÍEõ&ÏʰIßôÿn+=S‘`ˤg²Wd¯èÙ¥òØ›ù~rê1Ü´Ÿä1Y;ÏžoÐÒø  àd +ÎlÇXG'éI>£‰bÜÍ_fgÑÂ!©ƒA~.ô `nìkž¬ázy´ûÊóóͪg¨¡Ûæ,vrhx4¥8Á"R^žC~P‡û³wÞo+òèœVú„õÿоhÕÑwÕ˜ãÅú^Ê 9²NBò9òÜ“qóoÃøåÑ5A{µÔꊟŸZµ ±Á™½¾„ðÎ{‚7j!nþL6mÞ-OBÙ²åŸ\C¿ÌKÓ:]n+2ñe߈Ùc½ƒA¥U-¡2ë/7dÑÏÉ4†…òÝjCÇ}›èPž(Û€HÿDqØ$â0nÛÁòaòaùs¡ø!A3í9F–´qy”"Æ‘'À;yeÄ·Ii쩺ÔÀp~Cg7àçõNø‹Gc:™ÿM;·™¤¯ñÜ1Æ›à‹oIÚ «?Œ7¼˜1Œ½\9³t2¡ïŒš„ÛHÏøÍj."R¯< 6R{@ b.&@ð,´tlXŸÛ´¾3ú‚þœãwÕ¸qL†6:ó+.m‚oNÅ‹qÔÐØ8dÔÖü6©òåF:{ôͬX£ÐÁèí Õçg •JÈ)T¶Nª“ò¿FE¥ŽEÚ@OÏM–7c¼ªa9/¹¾ÀÇû[óóR…Ûnð†øí†ÕŸ"ÆdûYkQœÌo‹¡“cóBÇ/ŽŸÂgê;Ø6J´‘aã4N{ÂãŸ;ÎgÏÿK'Ožt÷³î¸ë^üÎo]I«XßÚ#fï|Ù &áŒÆ}>ŠÜt]d¾gŸ}{÷îÅ…^¸£û{üøñmíƒV•Ð-%ßäI[ž°;õŠøBô}gθœJ?´*¤n f†Î‡äAôQF œAЪVrbWhMµÌ¯7д*F–ã gÐüë‚ .ÀóÏ?={öàì³ÏÆYgù/q–$ ¦iBò¾Ðj§K’„Ó§Oã¹çžÃ¾}û0NÏÍͧg,A¦+Ü޽ĈÂË/“½"{E y<gº<%¡N öw¯ZÓ*O ‚ Ç©J°²`Ò'f ŠÃ„]>úºmT–Mñ ]ç6„J/“—F'6 h8„TÛÞ³‡n…&;{÷Іü,Á¤ Ò °« ¢•j=my@ =NË„I]ŠÃ(#2ò)£G®¡oÖ2m_®õ‘q• Úí%@ Î?~œú@ ^í¾}D#êé=ÑG  Ú&@ ÎÐ7€ Ò«Ý¢è£qDý ½'ú@ØMó¯¬q±•@ @ @ @ vh˜@ @ @ @ v h˜@ @ Â`4Q,6aL«<@ Èíö~jUH’I’PÕH.ŠÃ„™ÕioûFEÛvKo£Y´ýAͬ;¹Ó| Ù5BJÐ0@ @Èl"]›¥k¨r&§ZU‚äþMCÕY<]@ð.8øÚöÖUÅxM šBú`¬w€òd^½\:å…èê{ö¨¾"¡<Ëûú¶HãsZ鉕]Lw¸| ÈÚý›(ì|£…² ÅÍŸ¢º»¿éi“G^n¿Y‹hÌ…5þøÉ’æbÓ°èkv?"lN¡Y´ë÷ÐÔŸ¾óø7&´‹¹<ˆ¦‡è^¨/#¤Òoß2?DC7aš&Z*±m ÁÇ^S6Ù8L´m¶|ÄýyLÛ'ß±ãÆ4üIcÅ¥-ljã)Ÿ*ÆñÊcûŸBºiÂl©±cRVÿåZ¦©£QˆC èØvúšàFù46l'3fÏqõFp®™Hï’ØhÞ8ŸÄË 6€ @ Bй[Ò<Ð3­‰t¿&&bóhsVVP;¯×º@ϪÃ4u4†+Ñ“(}y·Lùú"¬}“y·.½1ļg!ŒISHìfP^ùõrè–çæì;‹ö°¾Š”çÊC¨¼æbe{ÅìåQ_äm.³éœVz²õQ݉âKÅÍoš}ÔdÍâˆN³Ì3ˆøù¬…2Ó}z Û3¿’Ü„Ž`³• ÎBd ]£YôÉË4MôÐÚ€?©À¾˜=ä7t@m¡—¯cÕ&N[­5ÔdNþL!£Ö7aê ×&Í"”NÙÃ×òuEl!Ñ+½ŒŽ’lÓŸ'ƒ8é\Ý‹ð„4êTC¿_C(GM ‘DZ}ʷׇM8‹ÿŽËGÌŸ‡Ä‰âvÜÈŒ…â›,c,QÚ¦6ò1cžLÏÿÃÓɉõ_®¡¯7P(4 ›-¨³êkD|ávŘSkÏ7Æô™Sm@ „äÓÊî =Ù–k}ß‚wrµ’ÓÑ_ÊÕ–ç-lɹ¯Œ‚\ÁšèvÛ”ìty¡ŒÂpÓè±h ëƒU_srH½L:‚åCò ö}œöš¼§“È#FyJŽó7ÓJOºnWw¢øâ•ùˆN¨%TГæ3šXiW°\{)fþ«¡c@T&¾Ü„õÆä¥¶"ä'ªÿ©àó*Z63Õ¥†+Ö)Z¿ŒØù'héaí?{.U´ôÐY';yù Ç`¼t¾î åYï¤Sð¤õ,] é= ^l¢Y•×oj¨*u ÐÆ¼C{¬]ix¼1ÂþÍ:qä£ß)·ÕâìŸþ™(K‡ñÚf”Ñi¶?çÇIâfÜÈìŸh|“]Œ%N…Qs”¨‡'Ó´þÇÚ°ú-+u=hOYvŠeO¹öغdôƒ†*ëö¥ŽA,ÔÓû_Ñ1‘Ö×yh4Q,VQ-:unIqøä?}êÐh ¹XÇ`P‡"I(./³¯ÍŽ” ¯~QÞpbÆŒPÿíø¿€Nj>­9]½¹ æœ*á\h[býé6€ @ BBh趨+’𷔌f‹Xã¼ÝíL¨»(™1âutPÆB°Zyù‰^d´.Ú•Ò8-¼zƒtðÊÑ›¢ïÂ}+ÈQë/cÃáÒAyMàÍvÓJÏ\ÿ£øb/<ù®abÓ]$Q+x{Ï:)ºdëPÜü`L·Yý¤\Ø‹m¾Í0cÁ,ž0TQªØ< P¹†å|‹‹ä{Ž]É?)›’ØWÖ°é¢]ÈA™Ö»ôÇ÷eÓò¹U¥îžD ò§Ïôâå Ž’s§‚öJ†ý2AÁ9)ÞŸÃ*³ŸYË¿†åJ]-è¯5T• ,{O­;'Ž\úíñ8"·æÐ îɤƒ{MqXæqX¼¶ÃåîÏYñ@ü8&~Ü(ߤ±ÒÅ´‚å…cœ™Æò?“Ô¦‰Ö;yö4h§x~ƒW^Fm¹‚¶cµ.Ú•eûö‘ø~†«““ö¿i} ÏÖ÷*hÏ/k~žûNŸöò¨¯j–®®Úë_÷†_Η)»þ41f ‘¨Cqß4¶¯5KèÆ:õ`_oµ–ôZ-~´n•’š˜vy½IûÎ\C?ò*ªy•÷^g§£QÄXØÝúÏ狊–¼FPEK/£ã.~)¨37*òùNÿÄÍŸ‚ºÍêï6ˆ%x´såÞ¬l<%Û²é,uǾߨ.5”±¤ŠåŸIx7äWrзý Ĭ}Ù”`lbXh¸º /”Qhw¡Òg^:y'yxýœÄØ+6:´î%Õ¾"t´¨kùF{S/ÈgÏ‹òB…¬_fÙ^K”Â^S–, i{¬|„|BýyX<'މŠãÄ-™ÅXqi‹;G‰ãÄѧÿc¬£†çÙSoz˜=å•WK¨ØyÜñ“ÄÏǘ‚þ7ΘJëkx¶^É¡àý¿§¯îÉ×ù6v³M™DÕÂf̘ÄÏúôŠ¡“a¾Éõ&ö\3î\(±oœÒ'h˜@ “YBùЇ„@ ìÈ (‡¾Uë,†xÞ/4›*J•Ä>Q¤¡*­ §sŒM ãlúøú``sXóÓ¨cõ²è`• 7VßSöUX!ì¡3ù—Që ~»™Gç´Ò³ÖÿÇDùâ¹FP®¡ï“‡Îˆ|c'-âæO…(Ýæ\›8i¹¸¼˜C~ÐÁú,ÏS[0Íž»ðšyþ¬y'*;gC^oÌÖþH_6cÐ7Ä®â$0ÆÐÃ.4hè=§úƾ#¾®Ï×ÜR6&Úö¸|"ý¹HœÇ$ˆEã›Ô1Vʘ62&Nãðd:ÓþÇ:5ÚÕü×VÇŽ Ãtr·ø_{>Tô~g7ë[8²ª;bÆ |§OoÌ5ãÎ…²ñq|æöc:ÀZuüð±4ÿ=âcw‡kUÆ·M¼eœ¼YÕÈë½’€—NØÕЪA½ÊòÈÿ¸Þ†×ëù&C¸×p¿SH‡Yc×WgÈ[Ò̲B€d?ÅmV €AãÃÁ#÷™Ï£ßà›ýÿ'¾ówĤí Hgõ›`g®93¿FòØ…°V楸bÕhV}sn›³à7fß‚‹1΢…CRƒü\ÈâOH|×¼…Ôˤã×Äqò%ê;DhJ¡×"åå9äu¸/bûxçý¶"Îi¥OXÿ¯á‹VÅÚÌñb}/ åY1v Ÿ³HÂ=i7}aŒf'-¾¼–@]ñóS«V¡168·.£‰¢wµ7¸‹6ïƒ'¡þöÞçÅ•dËóüzæ½÷½ªž™]-r!EB ¿ÀµèÍÛH±ÑJ0«xд‹Ú”Ô‹€‚µÉ È‚ ]®ÚRu /VZ ‚!ä ó6Í ÍÀ0Ì« ò^÷ž®™;dædgdö«æÂ[X/ä®0w™™›ÿЈûý$AÆõ03?fvìœãfnæ±NÙ¶_cˆåè:ÇÚ]k¶uø²½’±¹ÑÝ +¯‡N§ïÔ_n¨£žû¹.úkÌs¬û˜õm¶Cy¯r&6û'ÆaûˆÃ´÷Îæ7õÊŸ[Å%â˜òÎn7©;Æ*»Xø£B1Ž®O+øŸÆú(n“ªØÓΕu·‹u²–ñóÑÝÌüâÑŽNÖà«>ÛìÓ×H§Aì´MöÅ·2÷5•oj]Ìh’A’WÛÏ*,é;zcý¬YâYÈvüëloŸy,DòóåW¾Ø?¡ð=W¸p…Æÿv!àyÂÛ^S°ð\_l²øR~9 „›\”ÓW('ôÝmú0 ÓåÀ ÃõúY˜Û¨t^›r«Üû¹³¶)Z¦eú…ÿ˜¦ëÇiè»Þbçw›¼UAö¿€À"smq°ÿß³jš'øŸÌ¿þë¿¿ÿýïÅ÷ßÿâýßÿ!õó¼ùZüÃבÿÝ¿ÿöZŠßÿþ÷â_ÿõ_Ó”ìÕõúÂÝ›o"…ã =ÙDòqöÇ—_ùBŽçu?oÞ¼_ýõ~ÛPÅ Àög7Lð…›Äæ ÏœVˆ:dË’8~!¼íµ´ýSˤ®Cè»ÏÛ˜k·\ÙüZy-ê®—]SWųN¡þ°ÍúÂ…¢ÿw|®OŽu]¯Wzwj¯;ævQô¤nºÑÓí¨œá. IDATKËáî>ÜK_¢]Œº­«¯E¿ä¡•/sOÕ¸Ný-*›/3Ÿ;~J·Ÿ¬C»v45.mÒWm¿Tß°!ºöÛ‘?)Ç,·J>Ýý‹]×éžÞ—U¡ß»c›ògüˆr>ìXõHäÏêB¶^Ù¿U´ÖõP=+©ôÙ(c¶ÍÂÛ–©û}OúR陑qØÁã0ݽ³ùµý£ñçãë8FèýS^ýL1G-1VQÙLó$RþÂ1ŽVŸ*øŸì½þÆž*|®ÒžšìñV¦Œ,r_zžÞ~kcÌ¢õÏÈ YÇÙ©_U_c›_ú}áAÝ6ÒßÜßüÆìË ÷U–ŸóÜ–3jü¬¬ïÊ{™|FN,m3ÞÕ¶ÌæY³à³büç?ëfm´nœ÷ÿ²Ÿýðáƒxÿþ½øæ›oÄ?ü ~üñÇÔÏÃÃÃöÿòÏO?ý$~þùgñÝw߉7oÞl¯~xá ×÷“læ,yQ6µÐ+ FA¡dùåd;C'—®Óì:óð \Þ£R?`«<&ÎæÙ×´ñ³Í[%H÷À‹½\.´ü¿ýŸ÷âÿú‡wâëðÿÿîßÿ?âÿ}ÿÿ‰Õÿü¿pø`ó\~þ¾ƒ|Œýq À‡ãÐuXxù‹<ûÌOž§^±](åûxÆåQê±ð/f³?¨÷ŒÃ!üˆí‹Dš5˜ê(¡ ùž¿ê^>ðÐÆ7Àõð¬è9$˜O]ô/¿ãuæ¸Ú†×­ø8§ÍQD­ëì9ÿ6ådiâÜÝ=«?ß`ªØž¯»^ÃY,8]L±Â¨°{»]={ünö˜_M^e¹q[:n8Àið_kó}e4—þ­ì·"G”hò†Ë=Š:z‡µt„D9q¿’ŽÆiœ¡…ø[ Áà°ÇÌFV€QðGC;@ªñ’ËKÿÒŽ-ïéÿMCºgÄ'Ÿ|‚—/_à¯^â~ùô‹—øå/^âÕËxõê%ÍÅÁ˜¢›ý´!„œgòß½ªžŸB±ô8ò'ªºÀbBçC‡1#¤äè™Oá]í?ƒ±¡éÔ·fÛpœ&FüÀ=!•9ìpð£V‰ÅÑ`Žif¡j†ÞæãÍ Ón¼Ö¹‚ïNÑuº˜Báä­ÊiâܕΞ^KÆæqaµy ± ¨u×뤃‰XÀƒ ?ñ= ä€/°‘;xQk±ýàö¤£Ê«+÷_`¸\ 5z½YHï‹åÿ­6?)„*ûm×{nÜS/(˜ò®0ºnãšctiXäÙœ{ÿø’D>¡3îó>¸Þ°Àæp†@éïõÞÄ[ăôïQ¦¬©œÔßýmÆOÊÇ¿#¾>1¤{&¼xñ)~ù‹—øã_¾ÂñÇ¿ÄùÏþÿìÿ¿üÅ/ðòåKüò—D“pC,cŸ*¾}G!DO*¼ØY5?!„béq&b;$è{ã0Æa„Tô)ÖSÃÒ|S]ká2ög™ï.B óâp·Š0¾Yÿ§ƒùn?L½uÒ¿ˆ Jç ¾ÛÄ<¸Â»›&î¯D›Ý‡Î ÉÙÛ•3ÁäÖǬل3àùð]w³@ƒ†K!’òçqùºëûnÒwXc…iÓy\›òzÀÅ9ÜiíóËRV²ƒÉbÇéÂ[K‡ê·÷ª\øaÆÑióÆéoãÝÆ×ÞóPQ,€`Ðܼ$°íÜ*:¼ÙñÛiìD Rùbe4A‰z'UÅ«—/ðòÅ |úé§øôÓOñÉ'ŸÀq!ðòå šB9 _|ñÅ“–ÿíÛ·O¾„zÅv¡|”ïã—¬ëAù!„bëgëæ€G@w0ÙG“'œ¿?ßdŽmî ç­0z/x¯1Z%GÐN1OÖÁ¢;ÌVGÓ+g{wŒ/G€µ»ž¤8NÚx}4ÎÐÂTs|ðæ¸„Ðw±~§ú{öµ™¿u…X]ZŽÌ·£ƒ9¦–ýV¾ÏW˜ÝE’þ«ŽA 9ë#4½PH‡¸èc;Ž¢»VÉ÷ƒm¾ÑN¾c¬û½רݤ†ñæß­z?^Ÿ¢übñTŽêÛÃÉýƹMh—î‰òêå ¼zù/âàO>ùd»üÉ'Ÿàå .š`Ð=œŸ"„B!„B!„rp>9¾É·G»˜&ß<Ý.E¸›­àö/R'«v&!üuwómÔî~8ALBënüÍÔæ­E²K²H9NòÝÕ&fýäåÇo¤nÒ‹å íõ}/Z7“ªoêŒQóñþƒ >Â7þžë¨…ëaC‘WWîßcÜîbí_¡ƒ®ü5ºí1"c~²KÃkÓDçò©¾š~³Ô}^­ûK…þKcíf ¬Fh:ò·…mtX?NÃÛí8R/.›ÆxíCäñÛ¾Nüs‰ÇÅYùoÉwwËr/•³Ð¤I¾œÈ2ˆ¯{q¾ANºgÀ/ñ ßÿÿã?ü‡ñðÓOøù?þGüþŸþ ÿôŸþþéŸþ>ý” À‡ó³›ŸîÚG¸7?EªÅ=„ýA!„B!„BHuœ‡‡‡íÁ£ó·¿Å_üù­By αn¼ûÍ_!cý×¾ï_þKë¼Ó¿û;ü«ÑˆH!ùË¿ãÏþô×¹éÞ¿—/_òè²Dc´/Û²/ÐTÍOž§^±](å{öã²–zœ€9H8ÝÍÙiûú”Y­õØC¿p\2#äIè´|ÿhŒvs„ÕÆxë?9X¨ø6š£`y‚ì©ùšBÈÞüì矎ï¿ÿ/^¼À«W¯ðÉ'é=¼ÉgÇÙ¹î8>|ø€o¿ýŸ}ö€“ØL!ä92ý»¿³þ!„òÄ‘N iï|ª"À@³³:¨w]ë®+|¥“Mï-Ÿê£ú¬„B&C¢»п@CW®VŽL~+yóN‡ÉÊžWWTîcþTtŸ˜1Éy¬ë¥•ÝNw´í’éëíßlåT§‹Æm©LYltÖÔo&¡lt{ç^z}¬K–ûJýµm§hŒvVÕµ}È«k¿ì'u¢1ÚI=rlN =ž #ÉÕ³”¾ëÚo§?ªê›®l¯ƚї‘Júmã[ºkøáæÓqOvBþis9öšqØ~â0Û{«ûGïÿmã°¢qŒ&nÔµm!U5ÆÊ‹ií}¸UÝLcF©Ïº¾.¢'Šë#bÒ)“*Ú«1\Bˆ¾[4†Êƒö5²ÿ³ò…{’a¯1c]ñœaØÄgõLÛ…¢ã®ªí?\&„R;ÿj4*üC!ä‰ 6Ÿ›é¥ôŠöf ‹©fbå\ËëJÂ{´›û ±@kt‰ÍºIˆ¯‡þ]éN)“¡ñmпhèËÕȑͯMÌ·å Â_ß('³T²›êj“¿H»ïæ0¾œ¡O¢ˆE £KÝâ²ZÎc]/7b«;yíâmÓ ±Ä°aÜ~”S,†gGmºÍD™Øþ,<À=©IoßoÖÇ@¶¾ùúX™d"2sßhÜNõ— Ì­&mö'o€ASê±@ë>:,Z#¼Ž… ^ÿÆ&}­40\ ˆÐßÚ„hÜÞ|òGÈýÜ´›H”û#ìcÖ,7Q¦ëƒ"×µ6!Ç*ê4Ä2o‡Rôk´pÆf?2j{Í8lq˜å½uý£öÿMëø¡\£ˆum›Ó7õÇX꘶ˆ·®›nÌèôY××…tà)˜|µNîÍÿ6†X†>\×G(²ŸC”¼Õ=²é¢1n¦®‡°KŸ+_Ù±X¼=÷<Ý„»vú«3É鿃È+ù&qcv®|¬o6»h7}Ú0¦ß£¥ÇfýYž¸ì`úÀì®Ø˜jœ¡Uã,v]o¬Æò) Ûé”Ýi}Œ]F&™“Ýàí1ƃG97ó¥ÍV˜¢›È^hGW•¶Ìžÿ[µÃ0%’ï¯Û5ž¦ðÔ`V=ÓÝ[‘ßF§Ó¾"?~(Ç(ãF«¶ÕÇuÅXºg [^¨nEŸt}m¥éÝŠƒ»¹z—µ§*;¥²§Z{¼9äq-+À@uúHrä³µN†Õý¯í˜¨êk²mÑn0h'e=ž’’´Sz×s"c„ñå«ÕMÇAûú:½غOtåÛ¶&f4Èýwâÿ2:Àú„¡"¶ÐZ? ã4\ëí~aÛ‚p˜B!„R’óé £æîƒªibå·;oïê®ÛOzÝa†>.²Ùgh)Ó,ëÌ1õz»ºr³rèòïÈ›L&ÌÑ%!rëjß–7Äpyû¤íš3ôo-Þl×Éy¬ëµë^»ÄO©ãÉÖxÉ“ò¿eòÓmvŠ^Å:¤J_²ßJEU}÷L<Ù–Z ‹î0[âÃz^ÜFYÚâº5Âåå ­Eb é÷Eôk·Œ}U ›9¦î9š§Ðô[ù‹û²cùÜAs´Ýáò¸ã$}ý°/V›÷½d瞇éÍQü2›ì_žáµ²žu÷ÿ×Þó ë¯ š÷¸–w­'; ·òÇãqµÆùm"'ªŸ¦pt*ØkÆaâ Û{›û'íÿmâ‡âqŒUܨÓÝõšb¬ªÏåê–í“<¢ëk“dvp É?×ÙÓ¬Òù ]þ†×¦‰a æ˜z×ñé#ÅýŒV'÷í«ú­_x˜v/Ût›§v=/Z½6ºzûx¿å¯ÿ$Ç—ëûT]~•Ó Cn›NÐQédÇà;KÛÂ’ú!Só¸®Áîïå³^¸L!„B©€tôYècÝ5íÔ‰p7[a5j>¾=¾¡Ù¾Æo•×mãã­J/béȩ̈ðz¶ƒ»r¨ó«ä\=ÌëØEÔb™{|£®?ƈ¬òËÇ_…ðÝU ‰ç­ÿúvé`"²Ç“u0 û˜m'7š)*-Ò¥vÿèÓï¯ß²º­ªïº%{träÞ©,"ôqQgãã‰Ýl;K/F4.úpOxØ¢5*ØkÆaåâ0ýwòçôv÷o^üP$Ž1ĹºPFGê–­dL\8Æ1ùžô/ºÃ ¯³§òu“=ÕåïôàÅi¶ã§ŒŸ1êd ÿ[dLUõ5:[ß<‡+ÿ.Õu»óµ;L»AËôI^ù†¶QÆŒeülJ¯:iòö†S1ŠÆgò8Í×5Ûý… À„B!„zh\ ¯Ý¹(?dIo»>Âå n”×m&‰ œœ‡š èÖE}Ruˆðníâ¼iS®JUþyÑAÏ[¡Ô癊ÖUÛ–“sÑ7ëäá¿áÒò»e:9u½nýÿm»HÇ“5†X¦úA#gNºªôeû­êX´<zöé ­Õ w§<¹Ó™@ˆÅvâµöôu·í˜JäCÿ´Ètòçú²#¼·;Š“(ÆÐüõÌ×Ò®¾ïˆ?ãÁk¥ˆ½fV_œa{ïÝþ1ïþµŒ3r㘼¸Q×¶ym^GŒU1¦Eٺ匭?Ñõuý«Ï0¢çM1ÒÇÜŽ M:ù\üoü<Ô–¿³[÷)u•ˆ˜±6ß©¹ú‘§¶v¡â¸Û÷3fE¸L!„B©4Ap“¬úˆÕhŒöÎdL2i‘ˆ4êuf˜ü1Ô!uÌ›¡\¥Ø=&N“.¤Å·ó©f²S#»^¦ o2Ûäoœ¡µa»y4Õvò·urëúžõÿW†v G—)ÇËæ{aè_Hý¨zÓ=“.N«ßi!¥7õ[­cѦ¾‡µWW>0j¦Û3 (8ë×CÛÉ;xó&‘Ц¯Âva1n»ËìN(Y§,Ú¯1Ärtcí®5ÛŠ£ù2[2c7º›aåõÐéôàúË uÔs?7ÃEù`ŽubO³6Òv(ïUÎPÆ^3«‡iïÍoê•ÿ·ŠJÄ1EãÝõ}ÄX¥b T(ÆÑë³®¯sõ¯q>ŠÛ¤*ö´såcÝíb,àfü|t73¿x´£“5øßªÏ6ûô5Òi;m“}ñ­Ì}Må›ÚF3šdäÕö³J'KúN³-4ù‡Ìø-hk̶7Ï.ìû³fDòóåW¾ „§øßIýG!äð|ù•/äx^÷óæÍñõ×_ïIŠPø.¸Â¥¿øn|}óã-²Y}Ế…Ýõl²å® !ÂÛ^óÄBäɤ®Cè»qy êrurdókå]xæv2Ê®©kè ·JØæ}áBÑÿ¡/ÜTÛëúäX×õz¥ÕôºcnEH:à¦=ÝŽºt±ékyåªÇmÑv1ê¶®¾6ú˜ƒV¾Ì=Uã:õ·äÆÙ|TT^ûö“uHÑ;ö0'}ÕöK™6D×~ {¾)Ç,·J>Ýý‹]×Ù½/«B-¾wÇ6+äÏø¨|ë±ê‘ÈŸÕ…l½²˱ݵÕcÇ_iôÙ(c¶ÍÂÛ–©û}OúR¥Ÿrlã°=Äaº{gókûGãÿ ÆÖqŒÆ6™ú@­#{ˆ± ÏúV3-ê–×';òéúÚFÿ²÷ú7{ªz†RÙS“=ÞÖ!Ó¶²yžÞ~ët²°ÿÍÈ SÊúUõ5¶ù¥ßÔm#ýÍýÍo̾Üp_eù9Ïm¹1£ÆÏÊú®¼—ÉgäÄÒ¥l¡Ñäû­]0Ú^¿ezö,îÿe?ûáÃñþý{ñÍ7߈~øAüøã©Ÿ‡‡‡íÿ域~úIüüóÏâ»ï¾oÞ¼Ù^wD²ü7û[üÅŸ¹‘ò$pà°NÁF „ó—5ÆŸýé¯sÓ½ÿ/_¾Ä_|ñ¤ëûöíÛƒÖ!8˜÷&ãä'ÏS¯Ø.”ò}<ãò(õpæ=ˆûƒò1#ä#"À¹9·;B;£} Ü.‡50Þ\þèpBž`œòùçŸãûï¿Ç‹/ðêÕ+|òIúgÇq „€ã8;×ÇÁ‡ðí·ßâ³Ï>À#  !„B!DAµï^UÏO!„Xzœ³øsºÀ‚+^„qã0BÊŽžùÞuÝÕMÇ3¨çѸ ÇibÄÜR™lBÈS…;N !„²?:˜ˆÎóB!–g" &lÂ8Œq!õøëÑÓb)ê=Q¶1\BðZBj À„B!„|$¼}û–u „zõlÚ…òQ>Ž#ÖƒzOù!„¢† À„B!„|$ðÀ„P¯žK»P>ÊÇqÄzPï)!„òœž¿ê†ß&„B!„B!„B!„g€ !„B!„B!„B!ä™À`B!„B1Ñn+?!„ú ç^Ï`Çqà8û…0#äduZ¾4F;¶ÝNMÆ;·cÐÆ¸îJ>5_C»F*Â`B!„BHmÒí§ôÍÃi0pàlÿ`LØ>ðË©{Ëe °ûl¯ÉP‡ènô/ÐЕ«•#“ßJ޼ɓ¬ìyuEÉþ°ÌŸª“©Ïtrëzie·Óm»èôÜVNuºÇ‰²¬Ùèl “k¶ºÜ+gÌÔ)ËN¥þÚ¶“jM9±¦?µ·_0HÇhŒö!Úos3ŒÛqù’ Y=Ké»®ývú£ª¾éúÀöºa¬}©¤ß6¾¥»† !0é°ÙŽÌ1;Jf{ouÿèý¿mV4ŽÑÄE〽ÄXy1­½·«›No‹Å¤ö}x¸>B! &â1©¢Ã%„á»Ec¨¼1x`_“](?Æ‚íÞcÆŠ¾&Öõr¶LÆüL[Õ–îù™`p˜B!„Rán§ ,ÄæAz9lHÏ›m8NSÍÄÊ <¤Ÿë½m9B,!¥&¼Gk‘¤_ 5ºÄfݤ Ä×C®ôð¦”ÉP‡ø6è_4ôåjäÈæ×¦ æÛr…á¯o”“Y*ÙMuµÉoî¼üÆ—3ôãI±hat©[\VËy¬ëåæOlu'¯]²zaÜ~”S,€®rBAŸn3Q&¶? pÏ_jÒÛ÷›5Æ1 ×9c¦2ÉDdæ¾Ñ¸ê/!˜[½`?•'šRˆZ÷!Й`Ñáu,\ðzø·64ék¥áR@„þÖ&Dã6š³¾Ô® ´FM»‰D¹?Â>fÍr/cèú Èu­MÈñ¤Š: ±\alÑèÖháŒÍ~d‡<³¼·®Ôþ¿i?”‹cqcÑ8`o1–:¦-âíë¦Ñ[µNášOØä«ë³7ÿÛbúp]¡˜ sª¾ÆÆ*Æ<êÜÚæYƒ›ióL[Þ–îû™`?p˜B!„Rán ?T?l7†ËÔ‚üÐtsbyu^íæ‰ôævçîæAw>õЋ¯7.úp×ï¶C*™LuØ”×ÂYÃP®RŽl~CºÔõ÷+õÄÄ®ì™äÝ‚eú£@þ-ÍsÍßtrëzÙy›¢º“×.rŸ?ʉNÞêaÙtÑ7S×Ã?إϕ¯ìX¬1}-D¸›a§¿:“œþ³ÕÿJÈc¾ƒIÜ8+ë›Í.ÚMŸ6Œé÷hé±Y–'.;˜„>0»+6¦ghÕ8‹]×Û«±| èv:ewZŸÒ®y7x{ŒñÀÉ¿`Ða…)º‰ì…vtUiËìî¼øßª†)ù“|÷xÝvöwTé©Ã8¬z¦»·"¿N§}E~üP&ŽQÆýz]1–îÃÖ‡©›Z>Ná;ã@Þµ8ø·›«wY{ª²S*{ªµÇ›@ßc0P>ÒaUH'Ãêþ×vLTõ5Ù6ŒÆh·´“²OIIÚ)½{4‘1Âør„Õj„¦ã }}­>6;·OtåÛ¶&f4Èýwâÿ2:Àî„!{«æüµÍ1˜î¿÷g‚úá0!„B!¤$æÓFMÇú[JѸKÜjÞîŽÈËOÝa†>.²Å6ÎÐR.¦YÖ!˜cêõv'%tåfåÐåß‘7™L˜£'J.BäÖµhäÞÃå5î“¶kÎпµx³]'ç±®×®ÿyí¢Òó5ÞmU¾‰sWþ·L~ºÍNÑ«X‡TéKö[鱘3®uc· ñd[j1,ºÃluŠ; ;èyqe hcˆëÖ——3´‰]0¤ßÑ;¬Ý2öU5l昺ç8‰½M[ù‹û²cùÜAs´Ý‰ö¸ƒ*}ý¤'%W#Ü÷’p¦7cDñËn²S|y†×ÊzÖÝÿC\{S̃¬¿0hÞãZÞµžì0ÜÊÇÕç·‰œ¨~šÂÑavè8¬Ø½Íý“öÿ6ñCñ8Æ*n,ÔcU‹i‹ÖÍÒo¤t¢h '뇴{XLþ¹Îžfí”Îoèò70¼ö0M c0ÇÔ»ŽO)îg´:¹oÿ[Õ×èlýÂô{ ܦÛ<µ{tÑÂèu°ÑÕÛÇû-ý'9¾\ß§êò«Ä˜rÛt‚ŽJ';ßYÐæ™m™:±ñ_Å–>=¸L!„B©€t„RècÝ5íÔ‰p7[a5j>¾=¾¡ÙŽÊEÙ#aãã­J/béȩ̈ðzÒr¨ó«ä\=ÌëØEÔb™{|£¡?¬òËÇÜ…ðÝU ‰ç­ÿúvQéy“°Ùvò«‰‘r¡Ò"]êu}úýõ[V·óÆuÕ±«!{träÞ©,"ôqrxããœl;K/F4.úpk}Éèà–ˆqØÁã0ýwòçôqÇš)~(Ç˜âø²q@]1–l%cbmÝŠø¢1œ|ý3(l¼ÎžÊ×MöT—¿Óƒ§ÙŽŸ2~&geaÿ[dLUõ5:[ß<‡+ÿ.Õu»óµ;L'•铼ò m£ŒËøÙ”^)tÒä;ml^!½Éæ/2þ«ØÒ§ € !„B!õи@_»sQ~X“Þw}Åb@‘£ã œœ‡š èÖE}RuˆðníBùùŸrUr¨òçÈ‹zÞ ¥>ÏT´®Öýa˜ØY'ÿ —y߮ˑóX×ëÖÿßÙ¶‹¤ç!–©~ÐÈ™“nçuUú²ýVu,*Žå4§¯»ÎÐZÍpwÊÛó:±ØN¼Öž¾î¶³SÉ‚|èŸÖ™Nþ\_vb„÷vGqź‚¿ž#@€ùZÚ±¸óñɳ٠dã°ÃÄaeï½Û?¹;ÖlâŒÜ¦¯Xƒ IDAT8&/n,ÔcUŒiQ±n:¿!ëDÑîx†=oŠy>κpThªÏsñ¿ñóP[þÎnݧpÔUþ!bÆÂ¾s׿Iþ²ã¿„-}‚p˜B!„Ri‚à&Y9ªrÄj0x<ò˶œhŒöÎdL2i‘5êufxø3Ô!u„¡\¥Ø=O“.¤Å·ó©f²S#»^¦ ;Xlò7ÎÐZðZÕo©o+êä<Öõ=ëÿ¯ í’«ç›ï…¡!õ£j'D&]œVÿƺ”ÞÔo¨¢/Š1 «¯.ýžíÕ•Œšéö ŠÎúõÅÐvòÞ¼„¢é«°]XŒÛî2»JÖ)‹ök ±\]çX»kͶ¢_¶O2c7º›aåõÐéôàúË uÔs?7ÃEù`ŽubO³6Òv(ïUÎÀ8ì(q˜öÞÙü¦þQù«ø¡DSW°«Tìbá z¾«·6ú_0†k\ â6©Š=í\ùXw»X' a?ÝÍÌ/íÔ§ÿ[õÙfŸ¾F: b§m²/¾•¹¯©|SÛèbF“ ’¼Ú~V餥ï4Ú[ [VØ^gÇym¶ô ñðð ’Ÿ/¿ò!„B!äiðåW¾ãyÝÏ›7oÄ×_½')Bá»à ?”þâ»ñõÍ·Èfõ…ëú"L~7¥b§Ùò×… ám¯yb!òdR×!ôݸ¼u¹:9²ùµò.WiOMöx+S¦meù=Oo¿µõ)ê32(Æ”²~U}m~é÷…uÛHsó³/7ÜWY~Îs[n̨ñ³²¾+ïeò9±´*^©bË´6e§m²¶¹Âý¾ ¸ßWùÙ>ˆ÷ïß‹o¾ùFüðÃâÇLý<<Æa„|D87çvGhGc´/Ûå°æSS"Œ7ã}Ž•\?ûùçŸãûï¿Ç‹/ðêÕ+|òIúgÇq „€ã8;×ÇÁ‡ðí·ßâ³Ï>À#  !„B!DAµï^UÏO!„Xzœ³øsºÀ‚+^„qã0BÊŽžùÞuÝÕMÇ3¨ç Üh܆ã41âî ©Ì 6!„B!„dé`":GÌO!„Xzœ‰€˜°ã0Æa„ÔãS¬GOcˆ¥¨÷DÙÆp ÁCj ©.B!„ò‘ðöí[ÖêÕ³iÊGù8ŽXê=å#„Bˆ.B!„ò‘ÀoB½z.íBù(ÇëA½§|„BÈszþª~˜B!„B!„B!„Bž \&„B!„B!„B!„g€ !„B!ÄD4F»=Ft¬ü„B胞{=ƒÇã8ìÂ8ŒÚ½=Èû§&GÛ±ïjc\wÃ<5¿x zó\Ú¬F¸L!„B©íA«½óä` yà ùoÆrrâSy ¶×Ø}öSÈd¸wt7úhèÊÕÊ‘Éo%oÞ„DVö¼º¢|ØäOÕÉ4ñ¡“óX×K+»îhÛ%Ó×Û¿ÙÊ©N÷8ù”Õ£µ‹­n+ë[ß$œJ–>úk{oÕÄ”r²J?~jo¿`Ñí¤96§0nÇåK2dõ,¥ïºöÛ骤º>°½nÐý¢>ˆØë·oé®á‡BL:l¶#s{Í8l¿q˜í½5ýc‡é⽂q‰U|S6Þ¨cåÅ´y>¼^½ÍÊQ:,Z#¼Ž… ^ÿÆ&}­40\ ˆÐßÚ„hÜFsÖ—ÚuÖ¨i·P*÷GØÇ¬Yî¥]¹®µ e|±T§!–Ë!Œ-½Ã-œ±ÙŒÂ^3ÛoVÈ*âË8ÌïÙÆ%úûUÃꋱÔuÌ÷áæØ¨ŒÞfå(«eý¨‡Öì'ûn’ëÁ“u7ãfíÂ=q‹§í¥ŽÕ?7†X†>\×G(&蜪_´ñÛ‡›lؼxQk,aÜ.‹žú8ÔÀ`B!„BHùG²ù~¨~€m —©„í#׸›óË«s«r´t&Ò›½Mœ»›‡ÄùÔC/¾Þ¸èÃ]¿Û>œ«d2ß;À|ÚÂYÃP®RŽl~CºÔõ÷+õƒë®ì™äÝ‚%ú£Hþ-ÍsÍßtrëz…I¢Bº“×.rŸ?ʉNÞêaÙtÑ7S×Ã?hÒÛÞ¯êX´M¯×ùz‰p7ÃNu&vv'Wÿ+!׿ƒIÜ8+ë›Í.ÚMŸ6Œé÷hé±Y–'Þ:˜„>0»+8ùy†Vc°Øu½M(僎n÷Pv§õ)íH‘wƒ·ÇœÌñŒÍV˜¢›È^h—T•¶ÌîTŒÿ­Úý•’?Éw×mgÇž:ŒÃªÇaº{+òç’o(ã½*qÉö~Õã°ºb,]ó}¸¹ÎEåËmëÜX-Ë9®®[½rüB¢3Æ—#¬V#4íëëôîέ “ÂTvWi÷’lî÷ùz}`vï+=B«ßOµ‡c´©é#{•éM¾ÎÚf›}¦O>×èXøÙvüVõ‹Ù:Fc´Û ÚIY'º˜Û6O_L÷µì»¢m³=fŽÞr¸9Á¡¶X¢á²‡yáxÉ0O.B!„BJ`>]aÔt¬¿µÛ¸Ämæ-ùâåì|‡ú¸ÈNØ5ÎÐ2.nåÜ;˜cêõv'wtåfåÐåß‘WzÈ%!rëjÛÖ7Äpyû¤íš3ôo-Þ×Éy¬ëµë^»Ä©cÄÖx·}hâÜ•ÿ-“Ÿn³Sô*Ö!]zÛû•`G·Uõ­IçuÄX© Âè³Õ)î0ì çÅm”5|!®[#\^ÎÐZ$mdH¿/¢wX»eì«jØÌ1uÏÑ<…¦ßÊ_ƒ:Ï4GÛŒ»éÒ×÷÷¢B=có¾—ìžò0½#Š_&p“âË3¼VÖ³îþâÚ›bdýu€Aó×ò®õd‡áVþx<®Ö8¿MäDîîËÓGg¯‡í++vïlÿØÇaæxÏ6.±¼_-qXñ«ZL[46Òë­v±Z6\˜`nÆ?éìUÃÛG»º¼ioÛ>º›¡å!¶}!îqŽ¦Ö¿(ìÞ¦’Øl†]"Y/m¯Ñ½Fq³öqu!›[i§íBZ@Sú]z¯+`³M·í“žï!~®êu~iáaÚ½nmÚ6£/¿þ“œ¸£hߌv'–]ÕwµÄL„€¸.‹ÄÔÊqxÚp˜B!„R騏ÐǺkzÃ:ÂÝl…Õ¨?PÇo·çø¹P9»“0ÛÅÇ‚uæSx½Ni9ÔùUòÆG®Šæuì"j ±Ì=¾Q×ñ1[Ç?>íÂwWOîè}鿾]âɆÔñ“LÂ>fÛIÄ&FÊ…J‹t©¢ºô¶÷+CV·UõÝ“ÎËd€NŽŒ;•…ÇlÏNb9{óo@v®|}\uìÒŸ$ò‚üÍ9“9V°¬/;Ñ;¬]« ‹>ÜéAæúI#˩ۭ¨«ç>Æ^ÏÃ4^ækøWøÉDZoŒ­²í,½Ѹèíõ%£ƒ["ƒ½f¶Ÿ8Ìpïüêþ±‹Ã ñ^Á¸ä°q_‘ËTGKý/©ä³Ã*VÓH™œ "ÛK½ÊÔ¯çm+ÃûzWçXσMþÖ&»›µ{«šÍ{\ï,ÌÅ/¨5Gh]gl¼³;’à:Ÿ J¯óuEl¶Ö¿¦OZQëX¾*2þ«úE_jžÃ•Ïë‹*÷-R¾±m6ßXž÷r>CPg,Ñb¹©íb¿qxâp˜B!„R ôoB'\Ò›Û®pÙÃU¨œìƒâ ÎCÍCbôë"‹>©{Gx·vqÞ´)W%‡*޼è ç­PꓞEëªíË Üä ÿNR–å·\urëzÝúÿ;Ûv‘ŽŸL&¶ý ‘3']zG‰!½íý ‘§Ûº£¡+è|¡þ9Ck5ÃÝ)ÏÖt&bÏv±«húºÛÎvL% ò¡Z d:ù ù  ¼ÇŠHÉ1w=G€óµ´tç;âOàxðZ±8ÊŸqX qXÙ{Çýó¶ñ†m¼——ØÆ}ûˆÃrc¬Š1mÕØh«·ùrXÇjoû3¼¾SøØ{Õ<îÃóõ9š ô×sá=Z½‚ÖÍõ±ÐœÌйòáB:&9~^h7¥oêæR¡KoòumvªOLz¾—øùqOÁ¾8xù›Rzó~V!Y°ž÷ìõF5O.B!„BJ²yÓû&y:+}ÄjÉr¢1Ú;“x›²’#£»V­3ÃäáÞ©ã å*åÀîñ‚štÑx =à˜O5“Ùõ2Uxp¶Éß8Ck5ÂvóGªíäï‹éä<Öõ=ëÿ¯ í  Sêùæ\è_Hý¨z=“.N›þNlNzãõ2ú¢šú–×ùjýuå£fº=ƒÁb³~}1´<‰š7A^4}¶“­qÛ¥Ž·Ý ˆþ¶í×b¹ºÎ±vךmEu_¶g267º›aåõÐéôàúË uÔs?7ÃEù`Žub³¾Ív(ïUÎ럇í#ÓÞ;›_Õ?¿²Ãªô»'hã¾}Äa%b¬R±‹eŒUã³KñX-cµ†×Àh´ñÏyöJþŽñE¸¹‰m]}`>ÇFß ÚÝæp‰º»GÅ7†XªѤÓ¢»YþKKªô:_WÒfkû¤a£c9}Uõ9lŸ~ÑÔÙ—ôÊÜ7¯¯-ÚfsÒÍ-péXïÊ-Þf›ÝÆ›“¦ĤXk¦Æá©óðð ’Ÿ/¿ò!„B!äiðåW¾ãyÝÏ›7oÄ×_½')Bá»à ?”þâ»ñõÍ·Èfõ…ëú"Ì)'![‡lù„ë‡Bˆ…ð¶×<±y2©ïún\^‚º\ÙüZyž¹Œ²kêú­Ò¶ùC_¸Pô[è 7Õöº>9Öu½^i5½€î˜ÛEÑ’¸éFO·£.],‡›8ºôÚrŠ·‹Q·-êkÒyZù2÷TëÔß’›gómm“åø)Ý~²)ì_ÊNZ¤¯Ú~©1SÀ†èÚoGþ¤³Ü*ùt÷/v]gò}Pjñ½;¶Y!fLeõ÷¨õHäÏêB¶^Ù¿åØîÚê±ã¯4úl”1Ûæ ámËÔý¾'}©ÒO96ŽqØâ0ݽ³ùuýc‡ÙØÛ¸De+ËÇaµÅXBï;õ1¬MŒUP¾œgëXMÄy4}(Û¢…——’œr:»k²Ûqߺ¿ùÍ®|™´‰„ëy¹>A™Þäëll¶!¦ÚiwŽãð¬Ž*t"ÛÆUý¢m~›¶•õEîÓ‚÷Íík]ÛhYO.£–X"¾[0¶È‡%ý¾ÊÏ~øðA¼ÿ^|óÍ7â‡~?þøcêçááaûùç§Ÿ~?ÿü³øî»ïÄ›7o¶×‡‡‘,ÿÍßþñçCnd „B!ä ð—5ÆŸýé¯sÓ½ÿ/_¾Ä_|ñ¤ëûöíÛƒÖ!l¾A4é'?yžzÅv¡|”ïã—G©G0ØeX£óaP>Æa„“¢Œ¯‹Æh_·ËaÍ'¼Do ¶üî7!z?ûùçŸãûï¿Ç‹/ðêÕ+|òIúgÇq „€ã8;×ÇÁ‡ðí·ßâ³Ï>À#  !„B!D5«€ù4ó «ƒæ'„B,=ÎÀÙNü9]`Á/Â8Œq!ôu»¬Fh:œA=£ˆÆm8N£û‡œ&/Ø„B!„’¥ƒ‰è1?!„béq&bÂv ŒÃ‡B_§¥1ÄRÔ{úmc¸„àºä„á0!„B! oß¾e¡^=›v¡|”ãˆõ ÞS>B!„¨á0!„B! ü0!Ô«çÒ.”òq±Ô{ÊG!„<§ç¯ºá7€ !„B!„B!„B!ä™À`B!„B!„B!„By&p˜B!„BLDc´ÛcDÇÊO!„>è¹×3Àq8ŽƒAÀ~!ŒÃá82Èû §&‡Û±jc\w%Ÿš£-}Vp˜B!„RÛCm{ç‰9À@ó  8ñߺ¥Ÿ¼'dùá?uïƒíõvKQÈd¨Ct7úhèÊÕÊ‘Éo%o^½³²çÕ¥úÃ:ªN¦ œÇº^ZÙítGÛ.™¾ÞþÍVNu:ýø9P»Øê¶BGìô®¼,;÷•úkÛNª -å$—~üÔÞ~Á Ý.Ñí¤96§0nÇåK2dõ,¥ïºöÛ骫º>°½nÐ}£/#•ôÛÆ·t×ðC!&6Û‚¹\{Í8lq˜í½5ýc‡™Ò•ŠãÓ×íâ¢m[4ÆÒÄÖ>3OÖ2u¶‰ÕöÕf£O×G(Dâ0º¢ksÕõæý5„á»Eã¶¼q`ÿ&÷ç1ú¶Î¸/Oþ2õû±¹L!„B)O0€ÓbóP»6¤ç«6§‹©2›ƒxHž±Ã%D\† pÏ›æ{‡÷h-’< ´F—ج›tøzè¯Ñ•&W”2êßý‹†¾\ÙüÚtÁ|[®!üõòAY%»©®6ùuýa—?Âør†~<¡!-Œ.u‹Ëj9u½Ü„­î䵋·M/ÄÃF„qûQN±ºÊ‰ }:õøy©Io{¿Ç@¶¾Åô®ɤ`æ¾Ñ¸ê/!˜[-€›ÆOE#ŠASÒ±@ë>:,Z#¼Ž… ^ÿÆ&}­40\ ˆÐßöM4n£9ëKíº@kÔ´[(•û#ìcÖ,÷Ò®Š\×Ú„?@ª¨ÓËåÆÞaÎØìGFo¯‡í)³¼·6~°ŠÃ éJÄñªëÚ8¾BÛ–‹±±EŽ~Øô…}_ŒÕšû‰ê°ÑOôyT׿¥ž;³múp]¡˜ sªþíX}[SÜ·ùŸƒ¾„ À„B!„òÏÛó5üPýàÛ.S Ûçàq7ç!–Wçšå1n¦®óf;é-ê&Î]0ŸzèÅ×}¸ëwÛ‰!•L¦:lÊká¬a(W)G6¿!]êzˆû•z’`WvƒLònÁ2ýQ ÿ–æ¹æo:9u½ì|AQÝÉk¹ÏåD§ou°lºíøùƒ&½íý `ºažcj'ÂÝ ;ýÕ™äôŸ­þWBóLâÆì\ùXßlvѦm¢:ý-=6ëÏò„Y“ÐfwÅÆTã ­Ç`±ëz›`5–OÝ®£ìŽ›SÚÝ"ïo18™£0 š#¬0E7‘½Ðîª*m™=!þ·j‡aJþ$ß=^·ýzê0«‡éî­ÈŸKn¼±›®LŸëeŸUºmËÅXÊØÂ6F1Èj_ç?ŒÕV1QzǪ¼û[mÔécî²6Ø´#R¶…ÍV&yŒ¶s€A;¹çã)#ƒÀàÛ´>£Øóhîó¥é¹ÓvVõoYÿbÑfê>ˆ0¾aµ¡é8h__§whc“j›lܧÛÁ¯Šc$ÝLÉ“¼Ð*×uÙùîܘÄ"¦* ›§€ !„B!% 0Ÿ®0jÚ?üDã6.qkÜ]µÙévUl">ºÃ }\4ÆÅ­œ:sL½Þ®,ºr³rèòïÈ›<ØÏÑ%!rëZ®? 7Äpyû¤íš3ôo-Þ¨ÖÉy¬ëµë^»Ä“@©c×x·YhâÜ•ÿ-“Ÿ.=~témïW‚ÝÞ­o5½³ ž JO"Ýa¶:ņô¼¸²´1Äuk„ËËZ‹Ä.Òï‹èÖnûª6sLÝs4O¡é·ò÷eÇò¹ƒæh»“íq·aúúþ^T¨glÞ÷’q¦7cDñËn²chy†×ÊzÖÝÿC\{S̃¬¿0hÞãZÞ½”ì0ÜÊÇÕç·‰œÐž‚ñtPù'ÆaûŒÃŠÝ;Û?¶q˜.Ý~lßn_¦m‹ÇXV±…NOQMìb/uz¹S;V-Œ^¦I¯µÁv>Gö-êòM¶3¶• Óî%p+ß_çÛlåµÓcÝóe©çÎ}ø7Q¶™®Þ>Þoùë?ɉôm¬Õ¡ÂAŽût:’ÇDc\ŽZÛÞ‹Ö=Âl]‡¡½ï6ö™eLUh,.B!„B* GúXwM;u"ÜÍVXšo’¯Fhf¾siµûwg‚Ârñ±`‚ù^¯SZu~•¼ñ‘«¢‡y»ˆC,so4ô‡U~ùèþ»*?9ðÌô_ß.LDöÂ&a³íÄU#åB¥EºÔøÑ¥·½_©YžŒn«êkaª’=:9êíT³=;‰åìÍw¾ عòôqÕ±K’È ò7çOòè½"¾ìHDï°vý­.4.úp§s™ë',§n·¢®žû{=Óxõ$˜¯á_uâã:Ú66*^Ô˶³ôbD㢷֗Œn‰öšqØ~ã0ýwò«ûÇ6Ó§«Ùö)ãø²m[$Ʋ‰-lô´„¬V±—.½eL$ïHìNx§¹Ò†ÒçÙ`y—eûz©÷-ªò¶3¶•Ís¸òïy6߯gØèq™Ý¿EÇqUÿ¦ó/ª63õq•û)ßÔ6º¸O§#yqLã -LÑw.+Oï)â»M}fSYëæñá0!„B!¤èw&“*Òµ®ŸZ (þv€sƒóPó½ÃºÈ¢OªÞ­](? µS®JUþyÑAÏ[¡Ô'=‹ÖÕ¢?r'¼ÖÉÃoÃeÞ·ërä<Öõºõÿw¶í"CØb™êœ9évÆ.½íý ‘§ÛI}+ê]éþ9Ck5ÃÝ)oÏëL ÄžíbWÑôu·í˜JäCÿ´Ètòçú²#¼ßËIŠŽ¹+øë9˜¯¥];ßǃ׊ÝQþŒÃêŽ3lï÷Ï?ZƶñZ ¶ÏÇWhÛÜ+/¶Èë÷ò²ZÇ^Êô1Q4F»)}÷XÞ‘¨²a¦ôyÍ,íú|Ü=º«OÚòOÁv*ôx”ïピoŠûT:’Ç$/Àô07}¢ý{†1€ !„B!%ÙEz“Ì U=bµèîßhŒöÎdÎF¦ä8´èn†Uḛ̈°d¨Cê˜8C¹J9°{Ìœ&]4H“pæSÍd§Fv½Lv°Øäoœ¡µa»‰$ÕvòwÉtrëúžõÿW†v Ò÷¥Tãeó=+ô/¤~TMrdÒåŽEzãõ2ú¢¹õ=¬½ºòQ3ÝžÁ`€@±ÀY¿¾ÚNÞÁ›·€P4}¶“`qÛ]fwRźcÛ~!– lwpËgélEm¾l_dlnt7ÃÊë¡ÓéÁ;õ—ê¨ç~n†‹þóÁëÄf}›íPÞ«œ Œ½fV9ÓÞ;›_Õ?¿²ŒÃ´ñÚþãøªm[(Æ*£db¬R²½Jt„ÔiÑÝLZ RØ0cú¢¶øÑ·¤ÊQ•_ÒvV·ù9z\v÷oÏSûôo¦>Î.º–¹ožY=+fâ>ŽäÅ1уq„ÍBp_^àOêZVÿPP–§ÈÃÃH~¾üÊ„B!„§Á—_ùBŽçu?oÞ¼_ýõž¤…ïB€+üPú‹ïÆ×7?Þ"›Õ®ë‹P*Ç• È­C¶| É¿Þöš'"O&uBßÍÈ£.W'G6¿VÞ…gn'£ìšº†¾p«ô‡mþÐ.ýúÂMµ½®OŽu]¯WZM/ ;ævQô¤nºÑÓí¨K§?ºôÚrŠ·‹Q·uõÕÚ{´òeî©ש¿%BeóedÊ?¥ÛOÖ¡];ºÛ>9é«¶_j̰!ºöSô靈Ü*ùt÷/v]gô¾¬ µøÞÛ¬?ãGPbLí­‰üY]ÈÖ+û·Û][=vü•FŸ2fÛ|!¼m™ºß÷¤/Uú)ÇÆ1ÛC¦»w6¿®lã0]ºq¼©MqHñ¶-ciì¦9FÑÛQYÖ²u¶ŠÕ,b¢…'Éîy [”gÊô:lŠÃäº:’|‰ IDATH÷ÕÊ“g;M¿gÇQŸ¡Õc]››®guM¡cYy«ú7ÛüÒï&Hþæþæ7¥Û8W‡LmcŠût¾SÇlË’ílºß¶uU{ˆcžŠ,oß¾Å矎ï¿ÿ/^¼À«W¯ðÉ'éCœÇŽãì\w>|À·ß~‹Ï>û €&„B!„ÕÓæS½Î±òB!–gàl'þœ.°àŠaÆ8ŒçÌj„¦ãÀÔóQ‰h܆ã41Z±i?ö8æ¹ÅT/¨^„B!„’¥ƒ‰è1?!„béq&bÂv ŒÃ‡òÐb)†5¹„àÁ¸ŒcžaLÅ`B!„B>Þ¾}Ë:B½z6íBù(ÇëA½§|„BQÃ`B!„B>ø `B¨WÏ¥](åã8b=¨÷”ByNÏ_uÃoB!„B!„B!„BÈ3 À„B!„B!„B!„òLà0!„B!„˜ˆÆh·ÇˆŽ•ŸB}ÐS•?Àq8ŽƒAðŒÚ¾q!‡±u4†4·c[ÛÆ˜ÊNðëzŠíüúž À„B!„jH“»í‡ÍCQ0pà$“'6l'.Ryä{l¯°;M¢ÉP‡ènô/ÐЕ«•#“ßJ^ýÄŽZö¼º¢\Øæ·î7œÇº^ZÙítGÛ.™¾ÞþÍVNuºÇI¿¬¨]lu[Yßš'+3²ì”/õ×¶T“7Ê ýø©½ý‚Az¶Yc¸„!|·†X‰”çäg[+¿V&~QÙ©šcÔZýrAÙj¹÷žužhœÂ`B!„BH…g«œ.°›ÉÝå°!='µá8]L•ÙÜÀÃfŽ"Âør†~Eãg}ÿªï¿›~_qØþb¬|ý(«Ž}JŒ—½Æ%šXé#{­wÑ´1Är9„m3Šk vJ]N„q»ÂÂgÁºÔª§5Ü»ÎgÀ:Ûãp˜B!„Rþáj¾†NÐQ>'-S òƒàÍyˆåÕ¹ºÐæ9l^^Gg"í&jâÜÝ<ÈϧzñõÆEîúÝöÁ^%“©›òZ8kÊUÊ‘ÍoH—ºâ~¥ž,ß•Ý “¼[°LÈŸßo:9u½ìsQݱÕç÷«G9ÑéÁ[Ý#,›.ãfêázøMzÛûÀ8N…w3ìôWg’Ó¶ú_ yÌw0‰³såc}³ÙE»éÓ†1ý-=6ëÏòÄW“ÐfwÅÆTã ­Ç`±ëz›`5–OBå][úhÎIìR 0hްÂÝX¦ß¥v‘'>&Âør„Õj„f¼+.R¦ÛG[fwùÅÿVí0ŒwÿŒrÛßãuû#Þ=Ç8ì@q˜eì5«3ƲÐÓªu°Ž}ªŽ—=ÇJ²][x˜v/ä÷›1"kû¨óK6ùåûeN­“NÃkÓÄxsL½këÝËÁÀãÄõ’Æz1¿“çwwýZMYA;ÕÁDˆ[àÒ7J¾lÓï™—£´uÍw^çgwj¼·f\•‹5N5æÒÃ`B!„BH¤#ÎBë®é/ÂÝl…Õ¨ùøÆìj„f{Œ¿ßÓÂwW'{ã#QoËˤ¯C0ŸÂëuJˡί’7>rUô0¯cQcˆeîQnúþˆ¬òËÇk•é·ç«ÿúv‰'bRÇÿu0 û˜m'9›)*-Ò¥vŠêÒÛÞ¯ìD¬Ûªúš®×DöXÃäȶSYxÌöì$–³7ßù®[çÊÐÇUÇ.ýI"O2ßœ#<É#ôŠø²#½ÃÚõ·ºÐ¸èÃÎd®Ÿ4ò®™îÐít³MWuìõ‚ùþU'>¶úqñfãã‰ãl;K/F4.úpµp³KTÁ.3;ý8LÕ¿†ûïÛO,ƪSO«Æ>û–£ jc¥Ø®5ÏáÊ¿'~ÈÆ>êü’mþíýî0ƒ¢œNÞtó Ô7Ž›Í‚á¼§9ß)áwåݦå_|,i§C,·q£"¾‘_òëôàawÿhSWY×埚NTÙ÷½ËÄO)æŠá0!„B!¤¦I† ô; “‡VéY×Gx ü7ëäAªáRÿý5õÃü ÎCÍÃ~ôë"‹>©:Dx·vqÞ´)W%‡*޼è ç­PꓞEëªëÛÅ™hŒ›2ý¦“óX×ëÖÿßÙ¶‹t\`21³íœ9éÒ» émïWˆ<ÝÖx #£gh­f¸;åíy „Xl'5kO_wÛÙŽ©d’9ôOkL'®/;1Âû“?~0ñmùûÕ¦#!mÒÕ2æ®à¯ç`¾–&Àw¾ùޝ•"v™qØÁã°ä>eã°mÿÚÞ_£‡ŒÃªÄXVý^¶EcŸšÇË1°±&¿T‹}Ýœ†2ÒGýæå™Þ\qdÿüŽ¼Û´úŽà‚v*Yèœ÷jögûÞ\Ó½Uãê±Æ‘á0!„B!¤ÂÃç7ÉtÙ#Vgh­FؾÀo[N4F{g%™HŠšaÕ:3L¤ê:žÍP®Rìï¦IÒ$D€ùT3Ù©üÐÉTa‹M~S¿¥¾­¨“óX×÷¬ÿ¿2´K0¾¡¦ÒóÍ7ÃпúQ5‰’I§M'6'½ñz}QŒ]}sÛa?öêÊFÍt{ƒÅgýúbh;yoÞäoÑôUØNàÆm—:Þvsúhض_cˆåè:ÇÚ]k¶•}Ù¾ÉØÜèn†•×C§Óƒwê/7$H»Œ¢»Yz@~9À”®ÞFÅEù`Žub³¾Ív('ýñTCº2v™qØâ0Í}¬ã°ý«LÈ8¬ÆK«UbÕ±O-ãeñ|•g6m÷iüRQûÚ¸@êô+ënkùÅG‹únNQ¹.3‹…:¿#ù¦íõLÜ£õS5¾ôVÎNÅ‹¤—À­ Ì1uû¸ø\î3]]kØ…«j_T½·å¸*ÒçV2("ùùò+_B!„Bž_~å 9ž×ý¼yóF|ýõ×{’"¾ @®ðCé/¾_ßüx‹lV_¸®/Âäw¨ËIÈÖ![>áú¡b!¼í5O,DžLê:„¾—— .W'G6¿VÞ…gn'£ìšº†¾p+÷‡E~]¿…¾pSm¯ë“c]×ë•VÓ èŽ¹]} 逛nôt;êÒÅr¸Ù£K¯-§x»u[W_ÝõhåË”­ש¿%7ÏæKÆ‚íø)Ý~²)ìŸ<.mÒWm¿Ô˜)`Ctí·#RŽYn•|ºû»®³ z_V…Z|¯ÖWªmƒJVLÿ/<ÉFxžòo®ªÓ)t©–zìø+>gïo´ ámËÔý¾'}©¢g96ŽqØ1ã0Ó},â0¿«µ5rúúã°}ÇXæ¥|ŠÆ>eÆ‹>0µY¶M>M+ýÐýžgM~ÉÖ¾æêb¦®¦újY/¾Î?Éíœò[r,­ñS²_³×{ÍuƒÒë‚~Ìéu!Î#×EU×’ÏYÛ£lßZî?® õ¹•Lå|ÖÏ~øðA¼ÿ^|óÍ7â‡~?þøcêçááaûùç§Ÿ~?ÿü³øî»ïÄ›7o¶×‡‡‘,ÿÍßþñçCnd „B!ä ð—5ÆŸýé¯sÓ½ÿ/_¾Ä_|ñ¤ëûöíÛƒÖ!l¾5é'?yžzÅv¡|”ïã—G©G0ØóX£óaP>Æa„‘hŒö%p›û™–ãMB Oé‹=ø%87çöŸ®!u‹ÊÏ~þùçøþûïñâÅ ¼zõ Ÿ|’>ÄÙq!à8ÎÎuÇqðáÃ|ûí·øì³ÏðhB!„BQÍ*ø¦Ô>òB!–g }ÿ® ,¸âE‡1#Ï‹ÕMÇ3PŸŸÛpœ&F'rí¾ýR0ŸÂ»æ¢%!y¼`B!„BH–&¢sÄü„Bˆ¥Ç™ˆ Û0cFž%!–b˜“d qB»îÛ/u&á5éÖ’Íðœá0!„B! oß¾e¡^=›v¡|”ãˆõ ÞS>B!„¨á0!„B! ü0!Ô«çÒ.”òq±Ô{ÊG!„<§ç¯ºá7€ !„B!„B!„B!ä™À`B!„B!„B!„By&p˜B!„BLDc´ÛcDÇÊO!„>è¹×3Àq8ŽƒAÀ~!„p¬BHU¸L!„B©†4iÛg§W 4“.ÁÀ³ý[€A\†ã `5÷ÑÞæ‘ïW–B&C¢»п@CW®VŽL~+y8Æ™ï¬ìEÛͶ?lÛ:¯ÿóä<ÖõÒÊn§;©öj#Õ,EÓ§º¡ý¨')}ÉèP\†uú½­¶ÔÝþÅíÂN›Jí¿­»jrX9a¬?uÊÜG9å{Ec´“zäØœý¶åAêzüoUû™ú¡Î1XèºA'­l)¥G¹ã&À »† !0é°ÙŽÒOEƪÉ>¨ú{Çnýã¶³ë£rÆŸ:VIs½ï+æƒ —c‹È>×ÂWY¼ÌËk[¶1:þˆ3–êãÒ¾i¾øÉÇé¦þ9ìó”m= ·¥EL¤l»#Ù0B € !„B!å pºÀBl&m—ÆôœÜ†ãt1ÕLbÜÀƒ»I‰q» ,6eˆе™ ïÑJòˆZ£KlÖMË ý5ºÒDR&CâÛ ÑЗ«‘#›_›.˜?Ö]„ð×7ʉW•즺ÚäW÷‡}[çµ]žœÇº^{݉0¾œ¡&úÜÂè2Öç¢é34†Ë¸6? pÏ›ñ_½m¹B,1lÒ[ê\uóP_ûÂõJõNÚ#·Sí/„Às«IcÓø©ØJ4¥þ ´îC 3Á¢5Âëd­áõðo1lhÒ¬-'è4†X†>\×G(&èì‡ZÇ`ÁëZ´´e¤!–Ë!Œ-½Ã-œ±Ù„½ʵÖvî.ãoíI^,±«¨Æ¹Þ÷óÁ…ËÑŲ:Ÿ{ _¼vã¸' ÷q%ßTµÏ1N7öÏaŸ§ŠÄS…Ú2ç9ÌØv¶a„.B!„BJÌ×ðCõÃrc¸Ü<+êoÎC,¯Î“™ܯ<ô’B:=x«{ä.it&Ò.¡&ÎÝÍú|úXVã¢wýn;‰©’ÉT‡My-œ5 å*åÈæ7¤K]q¿RO‚ïÊnIÞ-X¸?ù5²›Û.OÎc]/GqÝIšë|›§hz#Ñ7S×¶“LrzK«hjmÿêD¸›a§ý;»IcÝø©¹ý;˜ÄÓ¹ò±¾#Úékuú玮ì¯ëuÒΖÙÝ×Êë†]bÇ’¹½Ñãv{ŒñÀÉõ`Ða…)º‰ìºzÖÞ–Ù]šñ¿U;BSò'ùîñº]ç÷ÁÖÕ`çì»K«ØØfÉ~VòÁ¹åbYÏÍõÅÆ—#¬V#4“]…6»•ÛcDª¼0•ý÷ììŠncå•SÑ.¨þ]t7ºÖFÊy-Æê3ŒÓ­8ÈóT±xªP[ꮳǰa„ .B!„BJ`>]aÔt¬¿Û۸ĭâÍè5ÞEòûüo ¢;ÌÐÇE¶ØÆZÆÅäœ:sL½Þîd†®Ü¬ºü;ò&ÇäÍÑ+»‹!·®Eúæ­‹÷¿QÎc]¯]ÿ.¯qŸ\oÎп¢Q8}ÎÝ_ÿJÒ•xñDwüÝNútnÏúYšx¢:5Ýa¶:ņô¼¸ï²¨1Äuk„ËËZ‹¤ éÑ–EãTýpJM¿ÕÉ’¶ì>wÐmw:=î€J_ßß‹ õèÓ}/Ù!éaz3F„&òî©å^+ëYwÿqíM1²þ:À yëdGXØÇ,Ù »•?«5Îo9a·kö$)ç‡ìíC5»U*VÙñ}Õ|p~9y±¬Îçš|qÃÛDZ±†j݌Ƹµ¶;/­{„;y»}žúû¿À$ôÑkÛ]ÑK yåäÇÅíœfüåêžiì«Ï"N/Ñ?ûzž:TL)ÉoÕv²a„.B!„B* +úXwM‹îf+¬FÍx’-ÞQÐ~‡«°ÙvÒ ‰Q¡…šøX.›ÉÊ‚uæSx½Ni9ÔùUò&Çäõ0¯cQcˆeîq«ºþ#ÒæÏÊ^¤ÿ?ý<¦.„ï®0JÎñ-œ^×uÙ¡L„þø;õnášuî”Èé—?랣y‚âv&±œ½ùÎ÷;W>€>®:vé÷Þ–E&¾uýðä}Ù‘ˆÞaíú[]h\ôáNç2×O}lnåÔî´ÔÔsc¯ça¯ó5ü«N|õã‚ÉÆ7Æ ÙvvJ}¸‡zÉeöCíCy»eˆUr³f}_IlUNc,«ó¹|±N7ghaŠn¼xe{²…*v¼õ×è:MÌú·–GöçÄeìœnüåéžqì«Ï)N/Ò?û{ž:“ä·´±a„.B!„Bê¡q¾qç®ô-0ù{IË!!–©ë¶ 5Î ÎCÍ$Jôë"‹>©:Dx·vqÞ´)W%‡*޼è ç­PꓞEëjê2mÛÿ9rëzÝúÿ»1nÖÉ"AÃ¥æ{qEÓË=±³›Wf÷è?sú :·Wý¬»ÎÐZÍpwÊ Ý „XÀ³]ì*šžØé¤­-;Â{¬Ø›%ÇÜüõÌ×Ò®·}|_ô¤ÇBq?t0;W8V±ô}|°U9›[IJ:Ÿké‹•º™,òõ0¯xlzã¬U¡s =\¨ŽÈûÜãtcÿìóyêþ;+y»ÁØ‹<7¸L!„B)ûŒž7ÅÍö{au±ºùÖúùèÑíÉŠLÉ‘ŽÑÝ «Ö™¡,CRÇ ÊUÊÝcÔ4é¢ñ@šh 0Ÿj5²ëeª°C!›ßÐÖê¶“¿­¨“óX×÷¬ÿ¿:Ck5ÂvѶ]Ц‡â•Pïæ GíeÇ¡"}y+Þ>ûkÿâò\ùÀ¨™nÏ`0@ X>˜¼ÑmyIÞ$kÑôÄB'÷áËö@#m+¢»V^NÞ©¿ÜPG=÷s3\ôטæX'qGæþÖCy¯r¶Íkǰ[Š“2 ûà"å4ô±¬ÎçZûâd·ªN7£1ã›Ýž!|yáMÞ骊)R;al6C+vŠêvÌšâ<¤2£»ÙæE–’ãòjÇ곋Ó-ûgßÏSûŽ)uu?f¬FÈ)ñðð ’Ÿ/¿ò!„B!äiðåW¾ãyÝÏ›7oÄ×_½')Bá»à ?”þâ»ñõÍ·Èfõ…ëú"Bˆ…·MçÊ…Hdë-ÿ1ïBxÛkžXˆ<™Ôu}7#‹º\ÙüZy¥º+ÛÉ(»¦®¡/Ü*ý‘ɯokMÿ‡¾pSm¯ë“c]×ë•VÓ èΦþªqQ0ýN;nòT~¹o5é-t®›‘ßþeÑÊ—i Õ¸Ný-©|6_2lÇOéö“ub׎¦Æ¥Múªí'L÷Vµ±';m®ºVLV•|º>(v]§“z_öŸÛ{ߨ6’üîóKËãÍ.v6šd7‹ÙÝÙД5a”` B@.7‘J ½p°‚ˑְxˆØ$@wÒÀF–°Èoî…üBzC6÷¹Ã]FzÝAÁƒÑ+“fn×xâ™gn8í±Ø÷‚ÝÍîfUwu“)êû¶šUÕ¿úÕ¯þtUׯºb§¾ºYgÛ,ßQ§!*·^åÃßiOÎ|9ëBÛ!ÌGK;+i\etê<¯%Í4eÿïV»ÛF9yÔU›|JíƒQ~~Û9õvÉ­onO볕ӑee}®âø/Ÿ´¤)´;k»fvk\»ý5ÿ™–l‘­Ö–ŽÒøÃ»?±–],™”´s‚öÌÍ^duW¡}ÈqºBùtû}Jµ/ªK¹ü6Ó«6ŒqÊ‹/´§OŸjÏž=Ó>üðCí£>²]µZÍü×z}üñÇÚ'Ÿ|¢½ÿþûÚ»ï¾kÞÕj5ÍX ¾»±¿û›e®ŠB!„røÇÊâÖÒ¢g¸§OŸâ•W^Áèèè¹ÎïÉÉÉ™æ¡ aoVÃf¢7ñÉ`ÚõBù(ßÅ©—=ÉG!…ÐÞ,´v>,ÊÇþ’Bé~?ûæ›oâƒ>ÀåË—qåÊ\ºdwâ … iB¡PËýP(„/^à½÷ÞÃo¼€.  !„B!D@{[IÌ&zŸBQìqR!sâ/4 äùå!„BÈ…ç2U@!„B!NØÔ=ŒO!„(ö8›´MêB!„4á0!„B!„““æÚÕÀè…òQ>Ö#æƒvOù!„"† À„B!„\x0!´«AÑ å£|¬GÌížòB!ƒôþÕix0!„B!„B!„B!„ \&„B!„B!„B!„ À„B!„âF%‹x<‹J¯âBa4èù,¤ … …*°\!„BÚ… À„B!„ö°LÚÆ³Î©ÐR¶ ÒRzØÆG#Šõ~ Js¿•,â–´šÏöJË)“{*¹`aYºR9ñ•ä !ä:óí¦O½ ònª „l2Û-®åï%g¯î6v5Û±é˰ñ€ámÅ·Ô«½ˆë•rø®¯¶Èí®ã8lµE§ý›y-äwº”Qý*¤ìõ±’EÜȇG›Ó]]¦P°Ý×ÿéÏ­:nKª÷]Ú¥¶Œ²#ÏzS@jú™²MÓ°™ Úz0˜“ŒÏ´ íAk·SA6î2Q³Øë»¼ô×ûNGiLbí{Ûú+C×±ž0ŒŠ]¨ŒíeùjGæ€c¼Û.!„œ%\&„B!„§BhÈkIÛýåˆùScÂl[-‘’fxMÛÇr(¤¦|ã^9sŒi•©r cy#<ÆÒ7ÐX7‘§%”É%úc°0‘§+‘Ã_®°g¦«iedŽï']E²ûÑ›¼<“kwḐ®½tç%g¯îAÝv*ÈÞØÁ‚¾¡åǾ¡O ú ï ²¼¯—AãÊ'XtDZ¯¤ám®¸Ù]׈eP¶äÛÐG%·é_Ó4ä±§4iܽ|±”¿–ÇX© $6‘KcÝXcXO™ûXŽHŸ™.7‘ˆ,c¿œA,–AYÛDÂg9tÚ–üÜ—¶ Šm @dûûËpÕhå1Ž1†kT{iíG|·*aËO;Ò*9ì ‰$v«x =[Ç,¢ú.ïýõžӉ7Û-L ƒ²¾·q Ÿ2ôëIè؅ ŒòX#˜Ìmñzd»„rÖp˜B!„˜ÂÞ12eñ¤IdyZ9ã:Ѥ§‚½­$fõD"3 ˆ?öþŠ>±iÙ%4‚hÌ;-‘Lnyh¤7†k—t…r8㻄³Ý/£t žo•ÝE&ënAò¨dã¸-c%ñ až IDATj½i/‘Ý]w^röê~0üÛŽ¡®¨ÇoxW*YÜÙJâ¶êB•5¼¢Íuõv ÛTÛA‹þ›^ö{ù°ê?M½p+ßÉ¢ÒRÖâðƒŽ¬ ÔïËÛµ¶¬pî¾Þï³hÆ®:ýßlʹ“®€ÔHØÂ´!»,Ÿ×¥sw¦þ·h'¨M~#^ ëñNîp¿ è‘ß±ìÖÍí +˜;ÀŽË*špÌ¢ÒF[ÚѶúbÏtÊ(4Û$f‘<(¡ì6Þ <ôcîb½ù ã‹6ÇîòÈÛsûŽí×Ë6l—Bz€ !„B!)`oëé‘ÏsûôI^™›ÍÈ5Œ“eªTrØÁf"~ÓòÈCa[ÉÙÖIBYºN9dñ[äÕÝÇ…ö0«\„ ·J6ޏïo·›){Àò—ÉÙ«û·ÿ–÷o£dÜÙÁÂýeD|‡÷xúzȬXlŽ^µ†ï€Íõ+iŒ8Ã*9ìôãÃf“zÙ9+Pd·ÇÒ¸qccy£Œ\Ÿ….ý,ƉʡŸTo¶ Aû²³ïsS#iÓCsÇ›ý~|p!·‰Ò¬±32‰­;YTÀ¦¹£\ƒ¶ ëÂ|vºü—q;¹…½‚³¿. 5RÂmsÇßv ¯ ¦üz}<8Fô¾!'¤ÞÎã³N¶¶>¹ñÎÂL‰Ù$vrB=³´ôíõÅÞéÀ1›A4fý[Ö÷vªOn-C½¹‡Q± Y•|“YfO¶Ûù1¤× =·]Bé\&„B!„´Åm[9ƒãi¯ ”65¹»ä`è.QÍüæ¡°·…äl"°âø"y#XÞ× i³ØëÄn…È2ö=Ý7VÛ9ÀAzDŸìLãà ‘xi|§ì~ËÿbØÓ-a™ØeòÑoxYÑ9w„zÔ+ánáÛ\?átíh¸ŸE1Ò‡â&6u9g÷ZÎIL¬d,`%¡¾ëºô³0!+‡èËz@å1ŽcÓ"3 ˆmí¡à¸ßïuÓ”SºÃR’ÏnÔ½Ù$¶ôàÂÞ12+ ÝusAªÑ7ê‹=N=ÇšrEfëèGFgÞùŸµÓ>ØÊÜòQ\bÉ‘+]—1‹gúÎ>0`_¬”N›åì˜ Ã#HÛ>>’õ½è“Ee¨¢7·0*váÆ+_Aev/osÿô òþr¦¶K!½ƒ À„B!„ΙÁ‚m—ƒNwÉ:•Ç8V^¨) ºƒhY²Øé+-g*x|CtD%]‘¢øò"Ùäéé7¯æ¤œe×X,ƒ²t‘ÆCvÕò—ÉÙ«û¶ÿŸgqçØX$ˆ`y_rîßðÖ’hÙÍë^¯Ü÷asçª}º†±~Ÿ˜MlBÓòHª.vù OÔÚß}Y)—pÀÒ XçV9ÞCì[¼rtjqèÜ"Ÿu©þUr;¾PH?ãVäJ×ï˜E±ôÑ+¥Ó84û69EcYßÛ©>Ù(C½©êVÅ.daTòåGf‰=U²ˆXÎrî†Gß¶K!½ƒ À„B!„€4\‘Þ1fÇT\¬RMyføF:†ÆJnc×¼wŠU²ˆ·,HúMË%67Í.é å@«›gI¸J6e™`,`oK²è,‘].S»:ñ]t-ÖõlE™œ½ºßeûÿ³k;Hc]bçêá!8£âݼÂz%ÜæÎw{µ’Ò#v}R)‹Ã·—ºfÝÁëõ¡‚ßðD¡Í Зõ‚ˆ½­¨ävpœEbÐvÉòÙ‡afá{©=/Ì4ê»ãùÊU¹«ržnýHçÖp[~{}÷i2oYðËwЕ®Àc†ï¾ØO:6U½‘tÛ’õ½ë“»Q†*iJÂ(å+°Ì.c<ËÎüJn§ÃÈœ¡íBH'¨ÕjšqýÃZF#„B!„œþa-£YÇó²ëÝwßÕ~ñ‹_tIв–‰A 1-S¶ü’‰é÷W2¯iZ9£Åœ÷4MÓ´¼–4ï'µ¼àIÎ<8Ó Å2e×´„2IòPÎÄôôÜe”ÉáŒ/•7ŸÈ$дPvI^Ë-¦Röh±XF+ âËu-)ÿrF‹Ùt/+“^Ý—Û•ÔÒ}ØŽÝέåà3|‹ñívéV¯$ál®Sm†§ÝD*ŸC¢zmûÍÈϨ ó¡®?«M´¶£¶z©¾]ýinÏé8©å[t.ºçOV‘|²2ðw_Ö&Èû²®Ø©¿Jäh›ò;ê4DåÖ«|ò;íÉ™/çomwÇòÑÒÎJÚW:ÏkI3MÙÿ»×î.'?ý‚Rû ký\K:y-éUñÜúè–>0`ß­œŽ¥>ÚâÈúÞ¶ÆþÊPZnJmŽKšAóÕ–Ìâö<Ÿ´ŒU“ÉÖ¸½¶]Bq¼xñB{úô©öìÙ3íÃ?Ô>úè#ÛU«ÕÌ­×Ǭ}òÉ'Úû￯½ûî»æýP­VÓŒÅà»Ûø»¿Yæª8!„B!ç€ü§,n--z†{úô)^yåŒŽŽžëüžœœœi ©öf5l&zŸ ¦]Q/”ò]œzÙ“|RíÍBë`çÃò |ì/ !„î÷³o¾ù&>øà\¾|W®\Á¥Kv'ΡPš¦! µÜ…BxñâÞ{ï=¼ñÆèšB!„B°·•Äl¢Wñ !„Å'2'þBÓ@ž_B!„\x.S„B!„â$M-ÑÃø„Bˆb³©AÛ¤!„BÎ;¿þõ¯ñË_þ~øaËo²ÀÃÃÈD"øÁ~`»Ï`B!„B.'''Ì!´«Ñ å£|¬GÌížòB!ƒÄ/ùKüÉŸü ~çw~Ǽ§i“|_¼xzд:4MÃéé)¾üòKÔjãÉ“2€ !„B¹¨ð `BhWƒ¢ÊGùX˜Ú=å#„Béý >øàsñ·±È[G]«C«køâ‹8==Åi½ŽÓ—§xþâ9>ùäS ÿö·ðë÷~Ý’&€ !„B!„B!„B!¤Ç;~ëõºíúò˯ðòåKœÖO ÀÏ_ ~ZÇéé©0.B!„B!„B!„BH iêuÍ\ü==­ãåéK¼|i\§Ðê4M3Œ\¢ !„B!Ä…Jñx•^Å'„Â>hÐóYH! ! !U`¹B!„´ € !„B!ía™´gS¡¤l¤¤ô°+{gx*YÄ-i5Ÿm}F ­óÈ‚g¸ä¡’Ûf‘¥+•Ã_IÞB®3ßnúåU!ï¦ BÉtï–G×ò÷’³W÷»šíØôå°q¿ámÅ·Ô‡½x”CKù*•[›xÔ³xf‹N-ù6õ'ZÈ.îøhŸÚÕS!e/¯Jq#g¥W¡.S(Øîë‹ôçV¬ƒ¾î»´ gQ'."J ¥¤¦‘)7v°l&¨¶ æ|ŒE<Ú¥ö@Ж¸5Ec{ýöÝGJú^ÿ}­ÊĪS]Ÿ±n !„ .\&„B!„§BhÈën‡ö—#æO ´ilµDJšá5mFyx åÆòF:yŒ¥o ±n2 è÷Ë™cL[&Ö„ÏpɃþ,ÌDäéJäpÆ—†+ì™éjZ™ã;ÂE‘ìnyU‰ßL'„;H"æS×^ºó’³W÷ƒ n;doì`A_ÈÐòcHßÐ'lý†wYÞ7]|iš†|ˆEG<Ë¡¥|Ë­m<êF׈eP¶èÉhg*Ù¸-ßš¦!=¥‰qßí“z#ŠÔˆ¥üµ<ÆJe ±‰üXëÆšÃzÈÜÇrDþÌt¹‰Ddûå b± ÊÚ&>Ë¡£uÐç}i›pVuâ"YÆþþ2\5ZyŒcŒáÕÞÃñœÚXij}èB["£ˆê·¿>RÞ÷úN'ÞlW´<0m,ÒÊtª¢ë3Ò-!„Á† À„B!„ÀöŽ‘)‹'–"ËûÐÊù¢b›á‘Ø´ìA4ìm%1«ßÌ, vüØ\L=Ã-ôÆp-â’®Pg|—p¶ûe”ē୲»ÈdÝ-è¡ßJ6Ž;Ñ2öW¢Ö›öøÙÝuç%g¯îÿíꊚqü†w¥’Å­$n/G\Ó•¯Z¹u׺qÖTÛAK¾›jzðÝ>ùÂZçØÔ•–XÉàøNKY»…tde ~_Þ&œYhÛŒ%»úœ»ûÉ5±±kQÿ7› 9\=Iã[˜6d?‹Ý‹•,â-»5õ¿E;CmòñJXwr‡{Q‹œ½ùÆ(*m²béÙ÷z¦SFé Ù® 1‹äA e7ö©® !„ \&„B!„¤€½­¤GB>ÏíÓ'y;éf³’Ã0ãœ@‹\Ø1$…=l%g[' eé:åÅo‘·‚l<„Ph³AwjxæU ¶l7pßßn7Sö€å/“³W÷;nÿ,ïßFɸ?²ƒ…ûˈøïñôõ4YAÂņÅå´Þv©Žvƒƒ4Fœ‹a•vúr’=Ù¤Þ&: "²ŒÛciܸ±ƒ±¼Ñ.¸„? ]úYŒ•C?©ÞlzT'´9©‘´¹«¾¹ƒÙ~¿{*tÆžJ³ÆNÉ$¶îdQA›æNE Úþ5¬ óÙéò_Æíäö Îþº€ÔH ·Ý”åì^LùõúxpŒè}CNH½7œ|ŽEü´Ú’@cå>R­ïUékc<6 ~јõo™N=tÝeÝB¹p˜B!„ÒwÎå Ž§½&ØÔ:íVw‰ª°hæ7…½-$gåÇÉÁò¾M›Å^'vE–±ïénµ‚ÜÎÒ#úägiŒÄ³¨Hã;e÷[þÃþ›nfËÈÄ6üøú/+:çŽPQº²òÝÃ'g^níÖQŸ8ÝaîgcQŒô¡%6u9g÷Z΃L¬d,`%¡¾ëºôóЬ¢/ë•Ç8ŽeL[ˆÌ, ¶µ‡‚ã~_c•SºãR’ÏnÔ½Ù$¶ôàÂÞ12+ ÝuóCµFÛ©<äÔs¬ùQKdf±Ž~dÔ |ŽEÚuSŒ€cϺ¢ÒG*ô½Jé$°Y^À޹0<‚´íc#™N=tÝUÝB¹(p˜B!„Ò"3X°ízð¢.a H…î Z–,vVãØÏ¢-<>Ž!:¢’®HQ|y‘ÀlòŽôô›WsòѲk,–AYºHã!»jùËäìÕýNÛÿϳ¸sl,D°¼/9ßÏoxkI˜;’ÜÊAV¾³øV[õ¶ÃuôÌÚ§k;ØA®Ÿ·ç%6¡iy$U»ü†'jmB×ëD‡)—pÀÒ XçV9ÞCì[<\øµ6Æ"k´}ŽQ|ö‘ }¯Z_ ý£;«œ¢±†L§ý kB!ƒ € !„B!i¸"½cÌ–©¸X-¤š.óÚuÉZÉ"Þ²°ÔÉpéXÉíà`ìšËd¡Kl.k]ÒÊV—·’p•lÊ2áXÀÞ–dÑY"»\¦6v;ã»èZ¬;ëÙŠ29{u¿Ëöÿg×0vÆz‹û Á•ìHò[Ô[t²Žö®½ZÉé»> © ‚ÅáÎÛ‹‹Ž¬;x½>Tðž(´™gX'Ú!bo+*¹$g‘HÌ"Ùï7t"ŸÝyfޱ—ÚÃñÂL£¾;ž¯\•»*g÷ >黌¨õ‘n}oྶ‚ì4 Û’L§£kB!]Åøª^¯£^¯CÓꨟÖÍ¿ëõSÔµ:êZ]žH­VÓŒëÖ2!„B!ä|ðkÍ:ž—]ï¾û®ö‹_ü¢KR”µL  ˆi™²å—LL¿ß¸’yMÓÊ-æ¼çÞ‚3Îð´X¦¬iZ^Kš÷’Z^óz†8åLLOÏ@œ®Lg|©¼ù¤k¾Ýe—䵜Ñb*åa€‹e´² ¾\×’ò/g´˜M÷²2éÕ}¹]I-݇íØíÜZ>÷è±ßn—îõPX¾ á;ÑfÈí¦}¤ò9ÚQ½¶ýfTgÓjµµÿò_>ÔÞ{ï}íÙ³÷´ÿüŸŸiï¾ûÿhÿú¯ÿIû¿þï#í?þÇCíÿü—í?üoÿ‡ö¯ÿúŸ´ŸþóOµ÷ß_{÷Ýw͹ P­VÓŒÅà»Ûø»¿YæÒ:!„B!ç€ü§,n--z†{úô)^yåŒŽŽžëüžœœœi ©öf5l&zŸ ¦]Q/”ò]œzÙ“|RíÍBë`çÃò |ì/ !„î÷³o¾ù&öööðãÿ¯¾ú*NO;}5­±#øÓO?Åéi4hõ:êõÆáÏ?ÿ•ÊcLNNâ½÷ÞÃo¼¸LµB!„Bˆ“ö¶’˜ÝìU|B!D±ÇI…0½eü•D^ã—G„B!ç‘ýèGxçwðáÿ÷¡rœá߯ïýÞïµÜoYþÍo~C B!„B.8 l¶5Þn|B!D±ÇÙÔ ñƒ#B!„sÏ~ð¼ù書rå .]ºdû- AÓ4„B¡–û¡P/^¼°ÝoYþ÷ÿ÷@BišÖLôòeüêW¿Â¯~õ+|ôÑG¦¢ðÎû„B! ëÊàµ×^ÃøCüð‡?¤‚.ÝŸœœœ{ BíŠz¡|”ïâÔKæƒù |„Bé- À—/·ïzhh¿úÕ¯ð§ú§NlB!„1}ôþå_þáp˜Ê¸`ˆ€/]º„K—.ahhCCCæß_|ñ…ïôy0!´«AÑ å£|¬GÌížòB!ƒôþÕiZV{_yå•@ 9wüñÇxíµ×P¯kúïâðÜL!„‹Œu ¥iêõS|ó›¯â³Ï> <.#ç·q°õ7Õ±ðËñ3!„B!„Bq£eØéShú• ÄCCC8==ÅW_}%LthhHêõºt07B΂K—†Ìö­^¯Kÿ_¯ŸRY„žQ¯kxù²ŽK—BæŽOr±…B¸|ù2.]º„z½Ž—/_š À\ø%„B!„B!*øò÷l,þþÕ_ý~ö³ŸI€ 4MÃéi]_T©SÛ„žqåʦ®Oâþàð?þOÿsËÿ§¦¦þïÿ¼|É`BHï¨×5œÖOp¡ï"séÒ%üøÇ?Æ;#˗/ãô”}SÏ©d¿Üß_F¤ñ !„°ô>¤Bhz ÌkØL°\Ça„…ú=’ÆA£ó€ÖÅΣ’c$} †LyËlPÎ[Ø‘ö¶‚l|é±–Ûû.©4ß~ûmçÑi¨kš¹Ì‹/^½º4MÃ[o½…x<.üÿýÑé®W©+^¼xõðÒøÑiðùçŸã/ÿò/ÏÏNðBÊÜ¥ÏVœ?"Ï¢býÛ²«9Š#[Ñ_Ö,÷[Ó‘¼à ãXŸ‘B¡U`‡Lîy¨äv€…DdézÈnÆW’7„Pªà¦l}ŠòªwS!„$¿Ióh»¯—¥ì¹B9{u?°±«ÙŽ›^„¶¦&g%·y0ìÅï}i=ì|ãÐaýÃw»Ð’?‹þM}T²ˆ;ËUtÏ¥þtRæx¶ÒÓú¬JñvÚK!×Ó·Èà´'›½Ëô×RíÚš¬ Tï»Ø¤k_FÚ²oÏzS@jú™²M;ÇßçšýÇa½‡)·]’üèg@ÇXʺö° ßO¸Ë ¬iŽEDíŒâ»ldyšVF&æwl§`ûgÙZõÝ®îÛãFsñ·‡rôÌnûiøòåËÂþáâ­·Þµk×Ô–5@ãd./^¼úb¸Žï|ç;~í5áÿ¿õÛ¿ M£žxñâÕãëôšËÑäbño|ÿ÷¡¡¡þ^.¤šòZã…ußò)tcbd[-‘’fxMÓ¿ž.—0–7îå1–¾á=ñ(‰SHMúýræÓ–‰<¡L.yЃ…™ˆ<]ÙøÒp…=3]M+#s|G˜w‘ìnyU‰opºƒ$b¾t]AöÆôÉ -?†ô Ùd XÎ^Ýöޝj;.z‘…7åÔòÀ´d2¡1ñ¤™W> Ä¢#¾ïKëaÇ›‡Îé?ÐD #•lܦMÓÇžÒ´[ýi{ÑeÄb/Zc¥2ØD~,u]¸ÂzÈÜÇrD¾£D°¼¯A+gÌ6¡’cdgÁ¢×<ÆÒ#j ¥Öò(/`g$ØÇ²2ðs_j“ýiÇœ–±ïµ§òÇÃ5ª½Çøì8ëñ8ÌGÛ%Ë£‹îü¶¹¢|¨êg ÆXt­d½Ÿèʘ=軬bžÊÄb”µM$úµì°îýŒ×Ó@f%A»U`hhW®\Á•+WðÊ+¯˜ÿ—Û|‘’ èË—/#ã»ßý.Þ~ûm¼öÚkJ‚=þÏŸ?Ç—_~…—/_rEéßúÖ«æÿ?ûìséÿ?ùäS*‹Ò3êõ:¾zùßøÆoQœ¡¡!|ï{ßÃÛo¿B¡€D"Ñ·»Ã {ÇÈ”÷…/µ‘å}h3 7Lž$6±iþ1‚h,hœö¶’˜ÕˆÌ, ¶ó$‘Èä–‡Fzc˜ÝtI×Uv#>€ˆ$œ-~¥ƒ1ÌFTôé"S%‹øÈ,îÉdåQÉÆq'ZÆþL®ù›3¾JùŒD%“V29Ñ£û‰@/êþm§U/âðe”’˜5n&f‘œÞCðX0ÉâÎV·µH€ûå³h:ªÿö© ·dÊöI¸ÄæfC7Ê¿sX'ýØÔu–XÉàÎ,*#p”8|7Ër= dÊÖI®6ËÄoäP™ñS‘®a ¥@RÈÊ@ý¾Ü&Ë*u¹°ººDycRÙvE÷~qh¸c¼ܸ,Œ¥‘ÖgÓn. Hé²O‡¶²ßnˆòÙq]–pÛL»€Th³Ú&6}ê®>ÑÈGCþ$òå(€Öã!lXÂ]¤ElŽÃz>+¨¶]²ù³Œå)„¦›}¸W¿îkxÕ™‘³s7=44„x<ŽÏ?ÿÜüûÛßþ6¢Ñ(®]»†¥¥%é|‘Òà—/_âwÞÁµk×ð»¿û»øú׿®$˜qðéé)^¾äÅ‹¯Þ]§§ÍFÐíÿÔ/^¼zÞ^½|‰ú)w_t¾ýíocll W¯^íëÅ߯ÄÎÒ#Mwfjü¶0íæª®’Ã0ãçMJ'r c%—å.<ö°•œm¥ë”C¿E^Ãåª>ùhuÄ+¯â œ¸ïo·›){Ëû·Q2t7²ƒ…û /À29{u¿ãö/Ó‹›­ãqÅ:)hý[òôÆgó­YÊ÷=êa§é¸þ]8HcÄê~1žE¥’ÃÎA?î0L`6©—…³,ãöX7nì`,o´ .á»¶€÷DZ í«Èp÷°‹b¤ToÊ´/;û>75’6w5wÓÙï[wn÷i”fxIlÝÉ¢¢L3vŠï_ú0Ÿ.ÿeÜNna¯àì¯ H”pÛºkÝØahʯ×ǃcDïrBêãüÐF¿ÀqXÆa~Û.<ûɇ/ýœ÷1–º®½uçÒÆ ÛTY_ai³òIlMßî;ãIÚ>Ç¢Øô˜¹c6?ÖèG…qEa…ñ½ú9Y^Û³Ÿqÿßn(냄åéØÕžCz½Ð¨C÷›ÏÛ_üN`Ý‹ÓWZ#¶0£¿7 dräUü,ÇMÃæŸZo§¼¶¯{ÏQì×[ÊÌ]ÇgÅéé)ö÷÷ñöÛo#‹annKKKø‹¿ø ×Å_@q°±{÷ŸÿùŸñÓŸþ¿õ[j»R ÀÆ„&wBzÇéé)^ýu|ó›ßþÿë_ÿºÞ^±­"„ô°­ª×qúòšÆs€/:ÑhßûÞ÷ðÖ[oáôôõz¡P¨O¥uî@J¡à:q–À¦¦é_À Ý@vÆúU°áÞtßÇ—´Ö8…Žæ¡°·…äì& ”n«ìÍøîá —«Ë( Šãq»»ˆ"ËØ×–½^½‘Û9ÀÁÁBéæÝ‘8PÞ—Å·ËnºöKT ½^Àò…:¼Ql;êE~³üñ‘ÒÖt=vß™¢RÏ9¢Ý•,Ð/ ÎVqSƒ¶ ý ºi ™7ϱkì¬òÜÂ÷%iŒL?íLm«/ë•Ç8Žep_*2³€Xz…•¨í~¿×MÓ–e^#dùÜLt¼<³ILï°™H4v­4<c [¡-›}”µË–#r–¼wö-íô ‡õfVðÙv¹å1ÈøÛ+IüWrŒåG×d]l "h=ÛT—¾¢ÙfE‹E›ÿ7â Û>ØvìÆ2?ö0BCߦ'AÜÈ,ƶ‡E> © IDAT{Î{†'WÙúßö4Û~ÿ¯T×;Ю¸õA‚ò4ócÝ9•{â ¢{aúuã¦+Ù³*±AÝ8HcdÄZ®•ûuë®æØßþ­·ŽÏj®ðô°½½Ÿüä'xûí·qõêUüþïÿ>êõÆ\Ù|Ñ%Õ‡|õÕW8==Å_ÿõ_ãùóçJqŒÀ/_¾äÅ‹¯ž^õz?úÑðꫯ ÿÿo|õ:Û+^¼xõö:5Û,î¾è\»v üÇlæÏ ‘,(|Uo™ÞhqÓ— ÝAÔפ›GœÊcûYô±å¡‚ÇÇ1DGTÒÉ!Šï•Çf“t¤§ß¼ç|j–®‹3Ù+YÜ96^š#XÞ—Ÿ›§$g¯îwÚþ®¨«­E–±o+w9Ûß™âV»¹xÕÃØÈ5Œì ×ÏÛó›Ð´<’[jçûßiÝ©–©±«¥œAì¬v·c“¾û²S.5'D‰Ï:·‚Ìñ (`ïØ²ó±åñM$.”büô ‡õl¸íræ1Èø[%³øV§ÆçvŒå¥k8Ë6^ÒöYw_î/ÿ7ØÔ4hÚ,öB!„B©ÆD7!›Çï‡wÖóÖÿ»¶G†ûå.yévúí<+–AÞé=D±_·Ùº¹;º7„¬ÞŒB!ÔëuÔëuüä'?ÁÐÐmñ×K~j,Çãq¥‰¨—§§xþü9¾øâ9¾üòK^¼xñêÙõé§Ÿá­ß÷¾õšðÿ_ûÚ7ðé§ŸQW¼xñêñõ¾úê%êÜ|¡©×ë¸yó¦ùaRŸÏœb6¹…;Ƭ‹Š‹ÕBªéZ˾’EÜïä“0NC&Ã¥c%·ƒƒ±k.»\ò`s…ç’®Lv§+=I¸J6e™¸*`oK2Ù)‘].S=û:ã‹d\ÃØAëÒò4&tdröê~—íÿÏdzQ©/3°`¸D³é±Yw¶’¸½,Ù¢r_V»Ð>tOÿþåYÉé»> © ‚Î3“·’EÜ:Aå5Aî7|GuÝÙ\A6\baUýE–±Ÿ¦{1Ù«ÐùêËz£Í­ävpœE"1‹d¿ÜЉ|vça˜Y8Æ^jÇF»ëìÛT«rWå<‚ô ‡õvæª;ûøAšÇ ãï3œß1VÇuí·Ú†ª¶}•,RÙ ^ÊÈÄŽñ’¸¢°?Üû»ÝþËì£ý»u½›} ÅKE%·cÿÀùA^纥ȵ1ìäì;†Ý>=+2ƒˆmvdyyL7Ž3د÷š¡¡!á"°¦i˜žž†¦i¦§8ëåä²ßõÕWøê«¯”Â~ù›/ñÉ'Ÿ¢^?E]ãNBHïxñ›ßP „þFCókÄ:€/2çí8‚Äfã†Û²2å}óEÑêBi$”F2¯as$Šã‘ŒW“d^CÂ|‘;ÀÅE[,Sv=KLg3ßø¢¼ñä5ˉ\"™$y¨äv€…ûæDUB’®LŽû°Ç—Ê{ H[î%óšpbH,»<¯Jñg¤²—3ˆ›åi/»ˆåìÕý ø±„L/²úRH!4½¥`÷úäe¦ìгÏû’zØùö¡sú÷…Õå°¥ –—÷QF#ÖÉ‘dH8]DÆ2(ï':R\‰Ì`áxM‘²F:Þ7¤BÓØ2ÓÞl¤mêÎâD3¯a_ß…µ)Ó_å±Ó(PÎÄ1Š7Ê$ÒfLø¼/m+ä}Yõ¸Ø´µ-Mù7ó{9ô~‘ç³Dfpœ.Ù]äÛž¯Ûó}¶ÆÖf2Ïþ”ý¿ÏÐ/pÖã0Ŷ+"Éc%+ûmsÛ Ò+ˆ®=ÛD_m¼¤ uöÇžñ >¶¡‘A4›¾2ö#@WöÏÊHM:î½™ÃN[²·'ø}—M( aº, •/GÛë}ê‘eÜ ™}T,™lîš,ãv2„éÐVÃÍ1¾ãÿ¹né+esÉé;ÈU–í­P&¯g5ζÚ]ògGû3‚8œï¬.ýz[ãçÎöûCCC¸téRË¢®±€í7™ èP­V3Wfïnlã¿ûoÿë`s––ÞË—/ãç?ÿ9~ô£7qåÊoáô”gÙB!„¨òå—_¢RyŒ?ÿó?§2ˆð‹ÎP(„/¾ø÷þ—ÿ·–=Óxúô)^yåŒŽŽžk]œœœœi ©öfƒ/ò´Ÿ ¦]Q/”ò]œzÙ“|RíÍvô\h–åã8Œ>¡ mü¹¦’Eüp_ê:½ãD¶ñÀ.ìš¿hEÇHé6mÙÑϾùæ›øàƒðꫯâÒ¥VΡPš¦I|Ÿ?Ž÷Þ{o¼ñÁ`·DU …BˆD"ø·û7Ôj5–!„Bˆ®\¹‚ï~÷»Ò ü”¯sñ—œìm%1»Ù«ø„Bˆb“ Aßà†3ÝmOÇa„°ï5†7†d¾«‹‰ÍÁ1d¨õ¶‰,ßG&>‚P*ÏE`¢Ý¿|Ï µ,wÊåÜ÷¿ÿ}|ÿûßgIB!„äË/¿ôõ9_p!·ßI`³­É•vãB!Š=Φ ]„ã0ŽÃÛø‹FdûÚò=jgô¨‹RxXÞ×@•ŠmÔ5ðµ™ÀéšB!„r~ðãšB!„B!„ô† è¯}íkÓ°º€¶-B!„B§OŸR „B!„B!€ !„B!„B!„B!dÀ¸DB!„B!„B!„BÈ`À`B!„B!„B!„B¸L!„B!„B!„B!€ !„ãÙ³gT!„BÇ`ÔõE¨7B!„\P¸L!„B!„B!„B!€ !„B!„B!„B!d@à0!„B!„B!„B!„ \&„B.Åô0®oT71œ.¶—puׇ¯Ã™t‡¤FzxÖ˞‡"Ò‚gÓö8⸢ôÛɇX–§-ql\oê[*j1-/ ·ßT~7Ãr¤Qôa3Åô°@Ç­vÚ "³ ·8*uáüتÿ¼¶aŸ]µß>·k×°Š2ú*KË3ª¸n-ã먺…÷•~«ý·ÿ€¶o³+·4ºY·¼úà²ÈlCÅfTâ6ÚXO[¶¶Ë¦ýtʶ%òØúz!z¶ŸzI!„B!=€ À„BÈ`rf‡'Ol÷йm,ÎL¶—px j°î–äX;ª¡V«¡V{€èê¸ç"çd¦~Ñÿ‘PÈæïGkÀêMÉÄ3˳}Š{zÙ«¸>_jæM·ŸNÙ¶X zõ–Í®äõÂYGýÔKB!„Bé\&„B.WG1±³Ln‘Û^D»ë…gË$2GkŽ|tŽðÒ wñ°ÊòìNñ-5P&g°ˆ*6]‡±ô¨†ZfF¿x»£sˆŠKÏ=®Á“NŒâj³Ð±¤¨³êÃ]`înÍ»nFŽ Ú’· l«-v *ûsL?صWXO•j*¥ Ì+¯WG%‹ÖÝ _Ìmcbn a®Ú¯ŠÍÃTñp÷Ðü)<5§÷Urû,Þ]Öî¹,°·cÛ2y€p8ìh— XGýÔKB!„Bé\&„B.á)ÌMl#g¬sØ^œ¹öesáiì‚i¸L§¯ë÷D®n&®@[\án¤[ÝWÓr—^ùè"6·À¶]Ç^.'uWúÒt,ºº¾±á¢GÁ®¤ó^žÕ J¾vñU±±¬,EÚ+ÔÉ,®â¦°x¸ ÌM…žšvÊóWÌa{qåLw öµ­Šôc-û–ø ™m²š6eµÏ³´_7™úÀ®}™²‚ŒÂòci%ŠÕñ4Š("=¾ŠèŠu§æ6æmî™=·”»WúrËm[‰•l\Àkþªv›¨Bð·‹;e›®*J:U¶Eå2u©ƒÂ¼ú´ %›1Â<ÁÉáF¯lÄîá"V$Û;wo6#lóÈÂt*(M¬ÁPGxi¥é~Òµ<ÎyÓãX>@FyF½ŠõRóYíׄ†ûΣ5”æÕîŸ ·³aLÍ«w‹6›lž<ŠuÙnA‡7ÏóÌ(,0œ_[5óêtá.‹?9ƒE3\¹Róù&gm¿2õÞ®½Q’QZÞÅÖ“•æBã¼àÃ…Fø†+`ixa¹¿ã™~‹ûg—Ö»{zù¶Ø„OÜêF'lѵÍл=Ú{Õ¼ÊlCÅfZÃøw1>7eä¿ñ€_/-2Øê±L½/¨ÕP›É5?Ä1ãž}%„B!„NÂ`B!ä¢`ì\,Zv3š,âA­9±,Ü £ïòº‡›í¹il‡êCìúß]$G²WÝ@csd µÚÖ&TÒ:0a_ ”Žjyœ¿ò¬n\Ç<ˆå‘ò'‡ÆÇ<¶qˆÕñëmìÚkæÿÞÚ„mW§˜"î®âpuÜÜy7¾zÈ΢Oan¢E¥A´U›ÎKŽ]¢ø“¸¥‡«n¬£$:óõÌíW.S_ÙuGëžS^Ë"æä-¬M¸-ôy…w–ûëáEîŸÛÖ *¥AèÜUê <¯2ÛP±™Ö0W1jm;ª”|ïö÷‘—»œŠòÞ϶ŽB!„BH§á0!„raÐw.ίZv3B?o[âºUÊÒ#­5ÝÃ‘Ž¹žVÝÀú¶À§å3€ 7š™î»c|r‚ÉQ\ôEg#³wźšÀܽGxË®Di:DWal"­n¬7w\*—Ç9+Ïbã»s8j™¤w9_@Ãm³Å51&°vôH?c×+®óQ–°U<Ü=Ä„×JC1‡í‰5YXjGò]jÕ‡Ø=ìä.õA°U«½­ j¸¢u‰ßØá~ww£®;<ϲ=ÊÔv ï<‰eeÒ¥¼múŒSLÏ[Ü4KÂKË]ž¾Óí¹·Ë8Ä®á¿]ßAܰ‰«µ~¸QÌIÜ9«êª¶¨T¡Üê ,¯ ¶¡b3Â0v Õ‡»8\ts¡<‰™ÅæG…â]¬úùÈËEþF=V”Çê^ÜŒëVG !„B!¤ÿ,7ÏÂöž-¦1œ.J&*:Ü£/À]í½—vlo;š"Zï;\Ó–•¥R$K[&‹W–°VTv óâ’wÕ4üÊá©W¿e=`õç¬ê¨a»¶¼¶«¿Î”ExjpD¦qpcÓÞDÆf±ÇñUÑ¢L#Ò¼žÆø.æŽÚ]¬µžy¸ŽÑ#çö3;ÖÏMÞÂV1><Œá›'ˆš;ˆÂXzôQ‹®œªšÌègÌ^ß@UšÎ$2±­ëê&æ,®CËã\•gëÛÀ¡® ¡îŒ6ÓØi5¬øa€¸“œ˜öÒpúÈc6¿Åí¬nSsÖÝÃ;ßÅœm‘@f£‚ûÊCœ?[µÚÕ­5`õ¦¾À"‹žÂ¶±-;³íQ‹L}b×®aUdtèMXÞN}ãØÇQó¥5=ZBX^f7p ¯¬!¨‡Bw­GˆžÜ¾ŠèËäjuO–°4)TÝî=ÂR¸ˆôð:Fm^¢{Ý2ȇݒ¡´rW7pýæ ¢(aô^'äuÊWDzxÛ‹^îßüæËËÎBïnv` /ûÿy©²^öÞC;~²«K4ŠéÆDJ-ƒ«×1~²‚ZfUóÿW±q}«ÑE,n—ìÏ®nàzËä¹äé´';¼²ˆ'%rW«‡›»{äiT¥y‘Êç' e9,i¥obwÊîû±ó^΢oh´³xPœ—×î3ÕËâÙ³gxýõ×9Ê9OT7p}ü+µ3ØÝLú·eJ#7SCf’¶JXÞ]ÈÀ"ƒ9ÆjJcúN½;ŠÞ1äïÒ÷†¢Ÿw½Ié;]1=ŒõÑ£ÆÇWÅ4†×GõFúEwýõŽãö>)Ô—³ÍvÏëö»OïÞã|ëB!d@¹däßt,þ@Øe°X}ˆÝèJoÆý C‡ä®>ÜænáÖšîº:Jã ñ Ù™uç¹ Î«œ÷|Zå™\jÊež£Õر±¨û› OÍéöÆÒ£j™™Ö×¹»«ÀÚ=…<ÊÒ–É"«â°æ¢«y_†,/.ò)§áGSØCTõ>égèú• Å»«M÷»ä¢Zrr K[x[qîPó¿ÃI-óWÞ磑 Ž×ûIǽcÈß=¤ï ¾ÞõdïtUTJ¯%WG1Ñ·ºë‹—mï“:Öã÷ù¼}÷  7B!„¥¹,;È| hu¥U}¸‹¨òÛµÄePu×[&.]Òéëú=¹;W» .n_Ÿ4ŸcuYL Üe‰ÒQp)«”™îªx¸ ÌM…õóÅZt­»¸)Šòàö›è°qV–á±°5ÿú.aÕžQ±ž|ÚM?2÷xößÜžë*CÕªŠprH”O‘ÍÚ~2ëÃí ì‹ik\Aøt±#vãOoþëˆX>²¯VPš˜ÃTø N¬ç †#ˆº¾°‘ÛžÀî*¸ÜRLÛ”E¥™‡­n¬cÛõü²6äóó*ë)GëÀÊRDñ¾w]¤úã.k[š.6¾Vnwíé6ïI\”¹Ô­Î–é×I=›ÛÔíEî'É`2‰L_­ö§­XϤ®¡æÛvdiœ÷òî×zDˆuø–³Ÿi-:ßÝ\Æ×AŽðõ>áç]OöNÆÒJ«ãiQDz|ÑŸíK7t§ö`Çû…à}C:ß¡0¿%”%Àûää WqÓöò¡ð^¶‘–§â6&z÷ñÖC3yÁñ629dïDÒ!„BÈ€b?Ø××ÝEÜ]ª]]¼‹Õès‚¡±Ë¸ˆôø.æŽôI‡Àºå\´Òè½ÆD„0®@i¸C¬®÷j5Ô,âpõ®ùb0™1&<`q{½1ø¥#MÛ2xUÉ‹LwՇ؅þ"žÂvaßlÉÃѰzÓ2pvûÍcФ%ÿ“ÈÔ`X;ª™nr„zòeú Þ=£5”æÁ~ÃÕîÜQ‹~åÏu³Eû³îaÛÂÉ¡Ö|ÚÑÏË-ï›ÛXlyI—ýäŒ%n1‡ÒDsgwõá.o$íØ_½ÉÃË눛|²²×½ ˜zŠ"âsÖp3úó±=ï¶£Å+m§,~Â6_vå®›½ðŸw¡\ªrïbUtV¢ì¾B]œú£"¿½lÏã&î™¶hí;Äí®=]÷sEÝdïtYþDß}xñ†Ú*ayr~°œûž›AÍü°B6&½»©Ž¯ÛÀó½Aý]OøN7y kÛ˜žÇ6Tw럵î,ϳ-*;ß/¬»Íw¨Îouâ}r™ÚævÇ ïny?ÄêÉŒàÇmþ õ=¤ñîã¥rÊ¡òNÔ÷pB!„ó}øðO¤ãÈŒe Æ„üÚ-õ «£˜Øžw|ÅWAÉ:¸žßÆá‰!Ã53®HY8L`íž.»ÓePÑøÂp¾9ˆ¥#MÛg^$ºk¸žÒõÆÔ°z·(ÎCx +‹‡0“wýM„åkHQþ…/‚’pªvP­ d}Á³Ê©ï>_-–¨È甡ZAib ·&G­x»Í•Úý MwAEäJÍt=Ëþê(&JTs%Ì­;»›»½Û²¿zs /«#nòIʾ˜ÇjôååÐÿ×¶sSÆJvc‚ W„äën÷´[dqÙqÙ*·et&Àµ¢‹|*;?á!GKUl¬—°Öj ’û.u5Hýå©_ê²¾õÀ’F‹»9¿í®Ÿ>£ m!„Bé!úÇzÎ#™dcBÙ»›l|휯 „÷{ƒŸw½ÖwºÆ‚âÉJsÁv^é«Ëº“=¯å#Çû¹í}Ãe¾Ce~KZ~Av®êïGk(Íë‹À®yŸh–¹m.Àmþ À¼J9 åpy'ê¨Þ!„Bæ°Ã5°Ê‹}ð{£¢ÁŸþå]x j5ÜÃM‡˜E<°º}þ(Œ+Aú Y66p}úó°6á’ŽRÚ yꮈ»«‡8\7ÝÝŒ¯ÒsJª¨”äe#ÿÍÄëe"Ë¿ªž„yé JòuYLâÖZ ëUT7ÖQ2éÊÞÜÉ]D®4‡©É)ÌáO¬»½Û²›vôæ‘|byª×1–<8Úk›àc²dôj³6_ÄÝÓn•E”†KXçdï—Hù$rx›£EŽ–4žàäИ1\q]ÇFUv¿ÃUE˜§>©?Aõíc²ÌµÝõU·!„BÈÀ^Â=}|lL¨:¾‚û{C{ïz½ú'ÖcÇ&oamÂÇ;V_ëÎÿ{“÷¼U›ïÒá%Ü[›ÐwþöIÞÏ„NÌAB!„ –Àº[˜yÇ´º ç™$ՇخÀþ!`‘è!Vo6Ïß(Þ]Å¡ã¼ÊðÒ#­M T©êgql Ü^ÊÆ¯–¸Bá\ßoNph¸½®>Äî¡w:Ò´Uó"’»˜ÃöÄŽlgp5w>M÷§­ç5»ýfÅp£/€xäßSO.eÐZ( ýä,g?¯oërê´èNE>‘ ᢇ«¸kº®à"ÈEô©9`÷.îîFÅ_¿J˾±“{÷¦ñ‚ÆÔ\ ¹»'ÍÝÞíØ_½ÉÂ+”[K¡§1¾;‡#ÛK·}7{õánK›à|)ŸY/[œDF?¿sxx71'q›êȧۋ¶±-= I^öá©9à°ù‚žšCiÛºs6¸Ýø×›$¼×$€@¾VyªØXß›õßH?¼tk¥ùFÝ1' Œ…ãËòæ¤ýdæÈ ?<_ÂÚ‘|Ǧ4m‰, ’„u,l̤.ÕäyËç' ?rtŠÁ«?hG~)ní®¢ž=eïpYMÏê1 †ÚÑ(*E`òÖ`;óØâP'ãœ0lüÝ< ÙêNÏz†Ø&JëÂ…®»«‡-zo¦¡·gªyð¼ÚÎÍL·ˆæ‡ ª•’9 hNÊ•±èÉ3Õ \¶¸p¬ÕP»<,ú«C®ù+¦õ> ùaÜÜî¸ã(‘ \·žýW«áAÔå8øÈ£¨ Ûƒ»ô£Gu›"„ÒLâÖôçecB—w7Ïñµê;Fëû‹4_ïz²w:çœ@°1t÷u'šÏPÛ‹ç;¼ç·àë}×MŒNLÙîºÍñHx +Ñml«~Ä߯ütÞg¥ùn3œƒâñ6ªïDmèBd«(K3IDAT!d@ Õj5Í_”"Ò×+¸ÕõEˆ~—á,å."=¼ŽQá®=·ß½ Ϋœ÷|^½¤Mîž={†×_]!+i ¯âHPŸ‹éa¬5&Ši çfnõ\âÈõ#ÓYã>Òè=û‚Y1ݘÚ.éñiT7p}ü+*®½=¯Õ \¿ ÜÓe­n\Ç]Ì¡tÁ#óÛ›À½fšÕ븉{¸‡›¸‰{‚KQ^šç÷e&ýÔë}¯üIž¡¦#õY’‡@öÔ.Õõ¨fSl¹ !¤¯Æ`„ºë¾ŠéaäfÚ;ÑÎ!„BÎ —üG™D¦ç ?ý ÃE’û"ØA«»Ç¦Fêzpíxìä"ç…¯Î3X<\ÅMÁΆÉ[kÀîÃÆ.‘õm,»þ]âeôÖ ¢Â]¸3îu×t¹"óÚ<7»‘æÃ]`t*‚èvNÖœØÜ,6ÂÌM…u—€ÕÜFqy®‚5²g„§0gœØ-9ÚP/Ó lS„B¹8T7°^ZÃ-n†%„B¹0\¢ ìçW†çĶÚ<1ì áZ·Å­[x +ÑUÜÝxˆ]X'‹\â¸bu§çüØ`3‹Ž3áà÷Ü틞×0"Qã\µ'8Á¦Â“˜YÔL‹9l[Ï?³>×¶x¬€qμRþkÞßÖÒgXÎŽ³„iœw;ÜÁ3oEeÔÚ¥²Ï¢þB!ä|¢»üßÅÜ=zñ"„B¹Hpø\0‰LMæ¾Ïí7B!gÛ&÷1Õ \îöcéQ 5ý¼.ëÔäÌ"¶WW]Yj9§^GŽõLÕÖ &o­¡´Þ8®xWôLyº£W/p^áÈC®ØXìFpuØ}Xm9ÿ·ÚØþ«?7Œ©9`õ®âŠæ¡×9»öós›çãúÈŸôâ0á¥GògHí!H±‡ v©®Çà6E!„ÁFgpÞˆB!äÂÁ`B!ä"^Â#·ÝÞá%Ü[›h, LÎ`ÑmÑQ'°|ú.Ô¢÷tՇص¹5¾€yµru¥ Š•’éÆ:<5œ<4Ý=7(âîê!WÇͥ㫇€é.ÚCvU·Û~°æOö [˜¢Ðw7·kûë“o{b—Ý´)B!„B!„2°p˜B¹¨7,îr«x¸{hÛ%Ú±8J„±´Åêüªegª« H¯"ú@qAï"ä5<…9¬b~Í…ìpÑíU¬Z‹9lO¬áȶ³ôkJ »a,­,bÛ¹ûµºÀ‹ÂÎüϰî’m„ÁÚ-=Ì$n­«ãgxvy7ì¡ciúµ)B!„B!„2È\¦ !„ Êd'ÃÃ6þ^|€š—o¸ qç™®êM¬áÑ’3í[X›"Òô¬i4Üã*»²»y cjn«¶ó_'1³l£yþo1·‰¹£W×SsXÍ‘™ôXRŸÌ v4ŠëãÝL¬áè‘ãóÈßdµi ›OÀâƒYD /=B-b3±v„LGV?EeÔ‚ØØ“iyÙ!„B!„B¹(„jµšF5B!ƒÃ³gÏðúë¯S„B!ƒQwÔ¡Þ!„r¡ hB!„sCiýÜÞæu†n !„B!„B!}]@B!„œ&‘©Õ¡"!„B!„B!èšB!„B!„B!„Bº€&„B!„B!„B!„áÿ¼rÖˆªHµIEND®B`‚dlt-viewer-2.18.0+dfsg/doc/images/ecu_dialog_serial.png0000664000175000017500000004133313001357026022376 0ustar potyrapotyra‰PNG  IHDRÈ1F¶¿ñsRGB®ÎégAMA± üa pHYsÃÃÇo¨dBpIDATx^í |UÅÙÿoBBa'‚JD¤Š¨µF\A4P+µmÕ¢mkíK´RûRÜZô­¢á£R¡›Xm[Á€-¸àˆQI‘]ÙYHÈrÿ3眻ßÜ{nî™›e¾§§x2wæyæù>'¿Ì³LÒT—k¡ËÚÎ=÷\Ï!ÿ… [öïß___¿oß>oí$·Û-~8ï¼óºuëv÷Ýw6,++Ë–1*A€€ËÕÐаãPù¥?üQí7øê+D «PÕ믿~âĉ¯m>%@hüQ§}¶÷«Ÿ_úM¡­RXGýì³Ï.ß|¨¶h@&¡ù¹×OºëÅç’ļêƒ>XV2h @ N';ø¶³r¥°.]ºtåÄiŽæ€ ÐãœÁwžsšÖ·Þzë¹µ% 8 dŒøÿ®¾T ë‡~ø—UŸÆiŽæ€ rfÎßñë_‹VN @ñhžóô5a}fõgñÚ£= í Ô ðç —XSÏ®ù<*·»1åÈçi'võìšêru8RYWÓi`c·ÁQR€@ò#‡Š·~zôˆÃ—Í»÷ì™7ìŒ={ wî{ÞøÃ¼½Ÿ9üuüÔÓÏý³éI'õ ›Ó£§e?{­gÄUXÝå¥}®8käÈÌÁ#“Ó{&%wl·W¯ºîêK‡ä ²ßÄNÍmÅÛÿùêÚQW\)*¿ôóýü®©ùœm§¡ý:ëßýè©G^ûԳхõoo|Ñ”]ñÁ¦7_©üª8¥S·¾]n¾ñÚþƒNs%%ïÚQú—ç–~u,éDåán§9j\RR’ýÎQЙÀ¯½|ÿ¯¶û`•³²23îÿýFûavÑ÷Ç-{ã…êÏ?qÖEç¡gNýý)/¬kö@^Ö?¾ç±>ÿŸmMù~íòìÌŒkÆMêüÅî¯^ùCt•?ÛYùƒëÚÿ¤^yéµÕµ ß¼xœ³` h¯Ö¼úò}wߺ+š°¾óÆê ï¼í…pî…£.}E&B¬xøé1WKaý뤂¥E¯úückÈ'_‹"7ñ_Qb¼%Å%ƒÆqà¨0ÉírËVî$ñØ¿l`V5:=ë»cxó’•a»±kP¿]wi²ù™l6µÞ»}ô¨oet¬OOªÎì\7bä Ü^ƒòz¼àÒ쓺¤ºª»§T ÏéùõîÒ Ý.ºlÈõžý¢¾ÞÏÓÎú¦§ü›™=d±¨™sVo… #4ŒÐñúž";#¢Ü`áòö!èÇ Ãw;\,Ý.Öu×ÖÒ6©¨>²bÝ®-ÕöÛF­Ùí¢Kœ•aTsÞxTïT€@Û# ÄOL3ºÝâß&w!£‹ÿ>ÿºÉÓÌ]¼DJü( #¶’Òj*€œ64â(÷qpÂØ×”|íÕkq¼ìÓÝA% ¢‰QÓÚEóú:w]°)¥³ Í §ëFc[ò?¼±ãø×üQ”‹O݆’ŠÝÓJ Z ;FšJX}€°&  ³×U=.ëÐŽ ¯¯Ù´oÄ Î {GØÖ£ag¯†/¯üqZÅ–.©µ¯~\ÿÉÇŸL\]wühSº}…]3²:Wí>ÆQPMû “ºö,¸xÐdc¿°i9㋳¾‘Ó×,,Èéh”ôÍruvŽ÷Ǭot5*{šäô”­d¡ÑÜüÔw, /<#kòÅ}$»œayœ|F†¿qÏÁÆ#ö-<ù°é 톀ÔG9{)´µÉý‚Ñco¿ç·B©6®û™??VWWwýþgdþ¨ˆ­Œ¹MCvÌ­A|ý7¾Å»¤&òßñz\Ö¿û¤üL „Åöçž4D‰(—ÓCV6'¬]¨j½»Nªª×Eh:Ns·Ö}¬ÿ|§,ì´Å±/7öÚ0ëî/»v­îÔ¥_¿Ž)ÝÒ“ÓSÅX[È}eíîÝ'2j+Ó*+65œu$ÿÑ.}øÙɸàBï½^Uï¿s`WF+‡¸Þý¨üX°3Q³Ç±Í{>µ®ýèrEjx’닲wÅ‹dE»¥Ãï¡ÿü¼Ê•yÒu§¹¤k—¿Mﱬi6ïÖ¿ßØl×gVsogjvÛµgÕκÀÍšQŒGë[XöB =x}ÙK·Ü[]³·ìxùñ}5ékdv¼`FFÏ“CŒˆÈROûFö5çËýò쎲Âáïl©èšk^“›´ï°ô²·ä«m®n—5ÏíT±¶¤&ØZø†5¼Ö¾Ñyß–Ã{Í»Œ‘«±{ÃÖl(9~ªÑ™ó’jöY­¤ú›=ìåòú5?|Ìêjnj¥¼Í@x©Ùw؈4ON:x¼Ûï[{ýÝ!.4M@Ž&;¤¦¥FÝ…ŠyïˆZ¹C1Rµ~ý¥°¦§§véÚÑØS3º‰cc—çwªußãæ.Ž/ïá*1ÄÔh"%ÕPUÙ°›°iÌ6„ͼ¶e]¼zuÃ^sâ tkll¨ª¬Øøú³IÅ/žÛ÷øÉêROTÊGR3ö×uysO§†Á׌¼ìºî½2;zfš2ÕªË;u½ôŒÔâ ‡™V6@@-åÿzñn›R¼¯"ª›Mo½ñéïŠjg|ó‚‘Ž\?÷”®OÌ_4þ{Eµy-zæá¯×­ŠêÂ^ëÑ«>—\9妻§¯|+l«ç:uÝ~Óå–°¾¶Ñ·"vPmq omÍñû÷lýhýá’:ßÕ7ÃíJîðuUJMǾ½ž;døÈ“ûõïÜ¥«˜Í°×¿ÖXëÔA§ŒìTñæ§•!w,´ÆÞÒ'´uBX§ß~sé¾Jg|JƼ'Ÿ1…uîU£ž_üÄ×oÉ»º Uô<Ô*×§6gCDùx«÷yUóqW¿ªÆ3­ró<ÑêêsÉØë'ÿ¢ðu߃¶þ!ü5­ËΛ=º|S“Âj¸7~Õ×Ö¯®¬¨9^}âD­»±QŒO;¦§gté––Þ)E^¶’ºmmK9mØI¹r\/¶š6irÜÞÖ£¿håÞX¾üê«.ê—ål?÷ìÚýêëo?^˜ýÓ ×Þ~ÇOF ÏsÖÅæ-ÅO>þçŸ>÷RX³ S»ìý±GXW|ýn2g;‡5@@g‡ÜôÞ»555ÎBHOOù­ zef ³{?ÞôÚÿÝ_yø³.ºôêýíÿ½ÿÔ³F†5ûT‡._ÿä2k*àõÍ_9ëk€4$07©ó¡ŸzF¬«>þZC„ @ÀYº;•ßâÖ¢O8kk€4$ðpcú1!¬"rqm*TXû¹·k…!Ø'°')xi™‡Ò×ìæyŒ}KÔ„ ˆVN@@XŠ9@+ç ‡ ¬Å „•s€€ÃV‡b€ÂÊ9@Àa«Ã@1@aå€ à0im&Ðåk66³¥úfãÇœ£Þ  WS´"¬Í<9„°þê—·5³±Êf<6aU ÛðP%¬­yà¦:ÿ«jÂØ‡@+' PXY8­E‚lîá·½#¬-’wœB õPûv«ê„oþdî\:l=©¥'€@k#À]­-#ôhóVñžìÙLö-âZ8MtæKæ]xá¼’D{Å Ðk‹¨›¬-¢­1Àš˜dmѵ,U!ÐJ ¨ÖÒùc{øocç—XTè+-,r‹jžOä§A?6¡šö„5¸¯å*´}Юնó¹rZÞ’IŦÁ÷Gi˜;ýw¦çÚ¶NE@ p@X…`4†ÝÄç=¸áw[9-§QH]ÏIîÅž²ÅîåE¦æx-ýÞt£÷Ëx“ÞeÜi+ O<ÏÓщð}ðvu±{’Pß&üz‹cÉåð!–R,XP úưÆÖ¥Î›&FµÓVzF¬1 scé u!åÖ&§ÅD¤[J o+}}™köö”Œ~ì±ÑAÕ´ 3~´7bõ4 °­£ ~ôá%ÑÆ¬¶3S0aêÂq†fzšˆ1ìÖY¦ýâIK¦3§ë ·N?›º+71rµº°bxáo[Ûn©´•Â*tõÃYßÌôlO—–½üá鹃DKFïWôcx…‹MXKM–¡h}(}ú±gÏÜÇ^ØOYÁ£ñ„eržUÈkɶ-.CjÅ–W¸~½1;?w†WSMÓÞ!븅®-Û¸le85!Ðâ,aO¶úï1u«¾¾þXØ­ª¶aä=ÿ.õl/ü S– èTY6ÔVy ƒ~ oú˜pjv²Iïþ ým6Õ‡g’ÜÎ骋®6á×["YYê늩 —ÉÁgþ\kÒU*®o”ê³)TÕ;3[<7?fg4€D ¬x:3b ?!ÙÐèr56ø–=`Ȧåol¬T-´U8ëþÌ¢M‡6ŠNøzÒTFþfu±±-þQvt‹Â ½MH¤w@ŒUó‡åå¾ÞÆ—ûüIã™Ù’åKÖÛsE-@ •ðk˜Zݯ†í3ÌwÊíöÜHTæ‹•çØš™m,7`q–mâT„@‹°^¸ú¿ü»"dýÜÛítN¼Ýêç·N)++³SÙÁ:999O=½HlïÂïò××ñŠ)´Eâ%,IRD}ÛƒõéëFvs`Ä*LÆ2Ôs¦®$ÎXŒÑJ[< è3 Ü`kJRA%öL&&=xZ9ÈwÄuõ*ÆÑžÕ±¶ò³îA@'Áw«Zs¬kþ{0@ªÜî¨s¬:¯`²jµs¬:ÐÄ %ÌßîO?~?²u1Çš8É:»>M̱z„uK °6ÚÖÖ©,J0cІ€X8.aM¸z5»N k˜9Vmè( x Ø}ò*ðæx½Ò€€nœ¹ÝJ7jÄ @ n·‚/ m Dœ ˆën+m‘8  =Eï О+ `*€€@ó (|òªù¢% ¶M Œ´zF¬I.ùø€woÛqÒ{@ "`*§ø×ÜÍ-àv+t5A©À  ÐŽ„ÞûÏk;J/¡@ 'ÀíV GŽC@ Ýˆ|»•ãS¬š+<[‹>Û +ÖÝ »”¦T Ð""X•¼À»Èó ×8³ErŽS@ %xï ð /Å‘Ã=)˜0uýÖbaTŒIýǰÆuÞ4Q$Vˆ.™7¥pýz¹4©aY1v8˜ƒ' ñLÄKXJæÍ^˜?,ϵrZ^áðrá¹ü³ÐR±­/Ü:A,(påN_47ßäzÖ2uœ!$‚€Ê»Œá§Øò–L*bY²mKþÜ2ªÜñ“ò.“Êê) ŽU.À&â À „ßàcE!ãÉm!ÖL Â]‰x¹Uîáë ç%Ë—¬Ÿ:Á¼næT¬¬Ákk>•è `ˆxW€ß#YŽ_»òd `œ[5&Ä\«˜V Úr§ÏšºP|ÎE+ÎY@ ­ð>Ìö‘VçǬï„ÎÈ™Ss3dUüX§`üL–1ÇÚVN+ú Ý Dx ‹ß Xœ¾ÙJwêÄ´c->ÐŽÙ  )ÈSšB!l@ŽHÈ“WŽ÷ƒ€ZHO^9éªuÄL/ (%À«R¼‡t$iŽ5ìg:B"f@±+žòÞ*qëè†íGýM®<ÑϽ=²ñåk6þê—·E¨Söå®’Ò²òò˱t˜º€&УG÷ÜÁ99²#Ø}ä±ù¦¸}úñû‘ÝïIÔ«KGÿ:wM^7²›%¬wÈß¡ „u×îi:öéÝÝa0˜ƒ Ð\_:z¬¢:7ç§„µw×aýe¹V•o·r¹PÕæfŸv€€Ž‹¯”ä £€€Î"^¼ò-‹-«éŒ‰Ø!Ø'ø+K<½(«}£Ô„  3–¤ÕÖ¦–de©VÏQb‡@û Ы|ÕµçMÖþÇþ(ƒËWʵƒVÑö­Iè}y«Yd®£el²]À‹]WNóýè5ê× }ä“( Ĉ<Ç*'V½»ªŽ‰åZÍ¥®Äæìïϯ\ªå8—±ü ÜV¸d[Q(Ñò” /̳3êÔ-³Å¯rënÉÏ÷˜5TwÜBŸæZF}kª »€@;'ù®•Ë_ûÀƤ¬b×ÜbßJ ÄñÊ9…®¹‹Ä«°-y«¸–,7ätØ„IÖ¡¨4|Ò$¯[ùÖìâ¹]¹l¡µ,Œ\ÓpË6SŠÙ öA è­(æêBk/aÉæ“2ÿcÿ°­r¹0Öð!µ*È¥^'÷/ô›;È›>k¸XUKWçÎoƒdSó6šRhÄ·Ù Ž…–8Øó„¯Ò®ïbè`ÊE°½Çþu}åùÃòb GÄãÄŠZ³¼CÚØÚShü•T©ªJV‘ViMÄb‚F¾ì+«K\ê²¾äû2-ǘ…r ëÓß‚â+Ø`Ã-mÛÁùD€€IÀÔSåª*tÕÏdc¾Á;åà}¤5àÒ–ÊÜ„»5@^]ò¿@oÖ"é*Ì󕯜&ŽÂ)Ö5*yñ?¯Ðå?7 çSC€õÈ7Ïv²AeìØ†G ªj X­‡ª¼¢0ð]ÆCW §y ¤ö/` ‘ô,˜-ÿŒsMk»ÊÂIKò¬cy}?t5Ø ÔIÝÎ+\¿¾P´’Ú¼`…+Â*܉Ë;ž 6O ì«õv«Ï÷VúÇ·óàñø_(Þn•uR8lâ6Òe¬q¥ÿ±ݦÊÛ|hY%eû|»UÿÌNþáÜú•[ùÛ­šÀ'Ƭ޻œüƒ¾°s'TËž~x‡¢ˆþv+õOX½,Xàûúî ¬~u¢G @-AÀºfå¹þovÁšc5oðÞàT÷Ä;e2…@ñP J–xzn¼’}´æX‹÷W¹ünªÝq :þ9Öªªš#U5ñƒÀ  ôÌHÏÈH`0¦¥YžÔYê¨G?oÙßè[šE «ß¶ãk„ÕA˜‚ 0± kŸÎþ»eŸVµK³$ Ž ´ˆ´¶Hp @ =HèûXÛ#@b‚´&Ðò+hŸà!mxo·Ò&b…  ˜@À}¬†¯¼-@qL˜‡ 8a._YÂêYýD¾e+1¯„I\Ôx‚  Œ€G<­ÿš~,a­kpûïÊú‹aÖk…u!!V<-a-¯®óîG«ëéŸ\65x}UG A@Å$ `“@Xñ´„µòx}eµWÔÔÛ´¥Zþ\k-UñRUÏò©ÎXÆ  ÖA ¬x&ä®€â­æª€Æ2Ôæf,Yí?Øô{+‰WS pFù¼i¢‰\J Ø‚(˜b½ÁZZô}l-‰m”xŽ[Gè Ðî ¨VãýÆ«ÿÅ¢©âÝÿòåÿÖï ¹šj8¸r©•á+ŒZÞ«×n ~– ®„XȾhn¾14~gzñ´¼­³Lbßò-í>‰´.*…Õ7à‘9ïˆrÜBWØ×XËÕýLöÛüK"Xm] %W’Œ…X¶[Zué–Ö•z´u*…ÕËÆ\PhbÞ’Iæ´«w4¿¨¼R.}D^R0&ÇT† „ëÊe ͪó­õTåò¨f'Íq¥˜<5KüV·öÕ ½†Xð‘mC&˜cád * à •Âê›cu­_Çs§ÏnͺNÙ:<ßøž¾hîóË»U"WPµ*yJüâ µ`™5UÎ\8/oÿš®\²ræ Á  3kÕŸð_öÚívÅ¿‚@Ì}¡ V@ ¦]K •ÿ·¶ëÓ}/ºn±Ð@턀ʩ€v‚ˆ0 ÄFaµ!D%€°FED@±@XcãEm@Q ¬QQ€@lÖØxQ€@Tjïc}òÉ'wïÞ][[µT€  š@ZZZVVÖí·ßÙQü÷±*ÖGæÌIOK›óÖù¥E…“ÜFɆ?TX$l‡–x=r@ ˆ€P ûúØìšj…Õ* gÚʃÌ>Ïånôü! -qÍÊŽ~ì±Ñfíy²åêå‹~T`”ä\qÍy[‹KÝ¡%ü¡†ô%Ð;ÜÖî§ä€Àœû—ˆãg¿/îzÍÌ,x:p ´èe×5W 4þ~XJ›{ú‡Û¶›{Jô=¥ˆ8pà@Ð0S”$^X> pÇw<ôÐC{öìñÅYöÌä»]/¾)Ç[Z"?ZwOÞüÁ«½õ¼?Šƒ5cŠw‰UGY\b~ÊèK /O®±'¶âbsQ=ßÖ¯_¿™3g>þøãèÄÿ€@⦌?¾ñ¥çoHh‰ø¤ÿà‘Þ‘íºYBd‹^˜2@67þgl;vl9¸˜þfCºضm›Pño(ˆÄüµQ+¬"ª€™c3Jÿ"ÿ’µ÷ָܳlÇÚ›òôÏLòÔàU¿QËmÔèÉ‹WuÖÇçεÓÙ; íT£ Ĉÿ>VµÂ:õ–[BA¤¤¤$%%544ˆg–þñkbμ@6 Ä/¬Ê§ŠþóŽÿþéç%Ï/}ïÞÇ^ÙûÕa!¯6㌡Zɼ /œWC{UU˜UaÓ^4Ô‚”P.¬¢÷ÙYYæÞ?;;wÐÀ¢·J7nÙWZv0¼° ¹›3 “A›bTÍf+¥™Ä8 Ðj$BXÍ`“““2{õxóƒí‡Ë«f÷>sèÉb* „ÃÊiyK&›op\1|kð ‹±s‹Ñ`îôwÞ™ž»Z@ðH„°vٻGzZÇ^=»-]õIrròäoŸ]YUÙD†±„­`Á‚YÇ7ä4†°ÆðpÞ4kT;m¥aÆ['¯p}°]û§­ôŒ=cæúuÕ¿ïÞñwhW› Ð Žóh[” kß>™•Õ®·7ì:¹O¯÷6}yàPUö©=G7èDí‰p¤ &L]8Nh¦ORÄsë,s[_1¼pŽ)ÞÛúÂ<Ï”E’¥æaºb'´«ôõ§mUôšP.¬§ôÍ|~ÙÆç^Ú°soå¿VŠájÒ÷ FˆI€´ôô°è ‚6a™T-!¯%Û¶¸ ©›Ð¯õÆì@þÜ¦æ “2*êxKBŒÆfÐÛÜ;Š·Ðµe[˜«aùs­ ¯š‡íjЮFPóÓ“ð!Ð6 (Ö#GÊ |‰PÅ™s^Û½¿¼Oï®—åç aMMM‰DLÊ¡Ž.“cE s7w“A¡†Þ©Þà!pÄ<uÕ¦Gl›ç½†@»$ \Xkkk»d¤5$É%׌ýF’Ë-¦YSS «P"ï$€Ü ËË2|}øïâ¾|È:K–£Ê’åKæX›gPªù¤ñÆTo°ÁgAخ٠íªÛå©GPh¿” kJ‡äòî+8óòüÁcFå]žŸWQYYUUÝ¡C8aÍ?i‹õ½?IŒ‰ ô ŠçzËš¸«`˜ 5¦<§l0ÇÚ<ƒ¹ÓgYöB Ffu5ŒÐ®Ú °ýž€DöH AO^ É\‰ÙHñÀ•ø×K’'¯ÚãIELhÛâòJ­°Ú¡Ë#­v(QHV-¬ £€#@ˆ_X•ϱ:-¦ ´ k›H„Ú„µ-e‹¾Bm‚ÂÚ&ÒD'!¶DamKÙ¢¯€@› €°¶‰4ÑI@ -@XÛR¶è+ Ð& ¬m"MthKÖ¶”-ú ´ <ÒÚ&ÒD'!ĈÿÉ+µÂÊò׉;ð8D ~aU>èå¯"Û3*ÖjuĦ#FšC„6Д€ra\[rùk›šÓÚömú¯ßm³Uû;› \[ í/ÅDB Âj:m¡å¯íäœ%²íPjn¦Vg¥ñæ¥]ë'aoùk9˜ô,ײršXB`M¸å¯ÅB­ž5SýÖŒ.™7E¬?(×cGß°4tYév±D¶w ècæ[šfyS †›«2„]TÜ<}ÜB–øvÁ·šw‰e}ÏJãaýú}hb͈Öÿ›Eµ& \Xã^þZ,ob-*èZ¹láÔYÓsB—¿¿ˆã\æò×nÿås§/š›o,Õ÷ÎôbïÙrý”im/KdËå³ä*¶b®áS]ÆBŒÅ[]ÃòÄÃ,uQq¿_ «¹XÉ1t±î øáVó–üÒhäq‚w¥ñX3×úw•àÛåÂïòׂ¥Ô=©¾ßÇà寗/qyÄnŠ½ßºÓb¬|sýWÏÖ^–ȤäRÝÅ[‡O˜1l‹QDmŽÅC º¨¸?IoóÐź…Šûûš·aÊ“F‘Ç-ÙŠe1ó6ô«EWu& \XXþÚú• ç(ÈZÛ_";o˜kk±.±º­X–qÙJ)±¾¡a²f¯¹µaS fÌ•b/ºg­€>…Å[ÖÙUgLB@5åÂïò׿`GüJŽ8Îñ##DÄÕôÙÆ·c—ß*ÓrEkÿ¯¢íh‰lIbölC¸äá²eæD@ÈÖì5·CÁdÙûiQtUþõ,f®úìÇ>P.¬q/m.¿½ç7=Αs©Þ%²¦O©=± ö…óò¼Ëhç_!f ½[{Z";wˆk½Ë%nf†nÍ^s;´aüH–%é…®YbQóH›o…ð¤¼BF¯Š~ó1«”@‚ž¼Šwùkqyö°âw¢üF*%…ñ ò¾l‚ÿåÈè.õ#ÿ“Wj…ÕNFì,Íï—’í¦ŽH÷¸…f4SW «í&¯m'V-¬m#=… à#¿°*Ÿc%]€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€nVÝ2N¼€€r«rÄ8€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€nVÝ2N¼€€r«rÄ8€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€nVÝ2N¼€€r«rÄ8€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€nVÝ2N¼€€r«rÄ8€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€nVÝ2N¼€€r«rÄ8€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€nVÝ2N¼€€r«rÄ8€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€nVÝ2N¼€€r«rÄ8€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€nVÝ2N¼€€r«rÄ8€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€nVÝ2N¼€€r«rÄ8€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€nVÝ2N¼€€r«rÄ8€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€nVÝ2N¼€€r«rÄ8€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€nVÝ2N¼€€r«rÄ8€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€nVÝ2N¼€€r«rÄ8€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€nVÝ2N¼€€r«rÄ8€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€nVÝ2N¼€€r«rÄ8€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€nVÝ2N¼€€r«rÄ8€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€nVÝ2N¼€€r«rÄ8€t#€°ê–qâ…”@X•#Æ  „U·Œ/  œÂª1 Ý ¬ºeœx!åVåˆqèFaÕ-ãÄ ('€°*GŒ@@7«n'^@@9„U9b@º@XuË8ñBÊ ¬ÊãЪ[ƉPNaUŽ€€n’DÀn·{õ'\òÐÚÜnW?÷öÈ,–¯Ù¨,â…4!ð«_Þ&"ýôã÷#Ç»'iN?ñ|°>}ÝÈnÍÖ3Î:_Ä„ èI „UOÐD @ÀK ©+s¬œ$€&€°: s€VÎ@@XŠ9@+ç ‡ ¬Å „•s€€Ãšÿ€@ÑÞµÓ—±—]`§u ´9Î?y%„uê-·„‚HIIIJJjhhhll\øÇ?"¬mî\¡Ã€€Mª(úÏ;þû§Ÿ—<¿ô½{{eïW‡…¼Úì\¤j;ßpÓâr¹4åHš2òöÃÃG|Kì¼mÛM[ Ív@T„@›&àÀkvV–¹÷ÏÎÎ4°è­Ò[ö•– #¬A¿ÿqÊAœÍýófÇTÔ:¢‚!ˆ²èkµûo7ù>5ëÜðün«¾jï>p{Éݯ¼·eó{÷ŠñÔŠÚÃíQh„Õtœœœ”Ù«Ç›l?\^50»÷™COSÍëS+mÕòsÏLî¹s#îX±Yjâ–Wî(¾=hÈ™uã3ÖG#<Õž»>˲ç5¾sg±+7'Š›&:a§‡­.Ý‚@»"à€°vٻGzZÇ^=»-]õIrròäoŸ]YUi—“g=ü€g4g}ÿõŽþ¾óøfÃÐÎçoñ où›œØý·{ß¼ùñqæ¸Ï7Z4?õÛb4âÈcÊÿþmvà°44T¡qB[ÿd{Ãl¾û€ŒwéÏÄxÖÄÝÃoIMô!B#ð±›'êAv Ä+¬}ûdVV»ÞÞ°ëä>½ÞÛôåCUÙ§öuÞ µ'ìvAÔÛ\2è·ÆhîÉï¾x»Ð©/yOzÆw†¡þ×ÿQVur~VÜuãoï0‡~Ï]¿ëï”M³†ŠcVÝë/g±šÊ qÇæÇ·_êéméìß?osÙ—1PU/¸ï+¨-¾Ñ±/„3J~6Û¸#r‚?šâ[ÿ¨ Ø!¯°žÒ7óùeŸ{iÃν•ÿZ)†«Iß+!&ÒÒÓí¸·êŒs‰ùåwÔÅ]%eïï,qÇÍA3ŒÞ1×íK]%;F¥òë³1Ê»ñùË™ø(&SæxÐ4êÈì®×`ÿœ1Ùܪ~!ô¿ḧ¾)­‘ûôi>Ííí âÖ#GÊ |‰¸N5sÎk»÷—÷éÝõ²üŒïï?v±ËŽY¿èd×]éÏFXƒøØéu  Ä+¬)’˸®àÌËó•wy~^EeeUUu‡aG¬bq̪ïXW~Æ­³b–ñ\–q Êøöíúƒœ[¼à>1‘jT›¹#WŽOûOž–kÕ±JÌÂëä À Ïg‹©IqÞººpßkŒ¦Þº0Œ#ûL½ŒøË W<÷Kù KO1orâÕŒnÜœÜ?˜ÄbÛ|$"§î Ž­Ô†€Fâz¤Õû䕫ЮĢ„â+ñ¯—Ÿ­'¯Ä·ï{]E½“I£¤* Ð6(y¤ÕNèÑiEXíp¤ Ðú8/¬­/Fz@ ¡T½+ ¡Aà €@[ ïÅ«¶#}„ PkBqã ЪC–‰H(„5¡¸qè@aÕ!ËÄ$”šPÜ8ƒt €°êeb„J ù´&´›8ƒ@!°¦¤úÍíÕ_W5´‘þFéfŸŒê<&·s„z+VýçÐárñ>¦örZZZï^=Æ]y™pxòÊ%ê@ .«‹«ïKu?"µk$%ŠËGb×UT»Þß<ù”º+ò2Âz^úZQ·®Ý'Ožœ™™™Ø®©òvðàÁÅ‹«8úÝoêaŠˆ ˆ—ÀoŠ~}éÅgg¦ßܽ>^[­£ý_¦|t°¦ÏÚ7^7=ÿ¯3fôèÑ£¦¦¦ut9Þ^¤§§———Ï™3gÊõß‹j aŠˆ ˆ—À­K¿Jš4þÿ|"·c¼¦ZIû’®;÷wt/Yþôwû†íÒŸžyáÑG­®®n%v¤;w¾ë®»~zÓ÷£Zã]QQÎoÎlO[T(í)Xo,Q£Ž\»âHs„p»ÄÿÚÇ."±³µ3mµ2Â?%,@À>CRÛ‡¬!\6ĵu kéü±cç—ÆÑ'ûÉnª&#Öøb>B‡Ýn‡÷’ùc2»w1÷‚ù%Ò~éSWô·–Nxïȱ¯äþÏ¡ÿ;bü|¡¨ÆXRü§ô©ñ?ýÝÆcsÆ8éÔ²ec¸*@4Ïqé®ê=Ùý‚¸¿ÉØ^p/_Ýé¡ÚÌô—WG¸x5{öì²²²í¦ÃÎsrrfÍšÅÅ+‡±bñ£ÈÆv²Ûx>@¢jÖ¸°õ6Š'ûf[¦âgˆøÈ™€xn¡lem{¢Ì²¶².;Ó8Ïi¦âHsøˆ÷±î¼à‚!]:\ÛáHûàòRCÏm• ýß}7ÂûXñ‹_ˆ÷ìíÚµ«}„œ-Þ‚øÄOð>Öö‘P¢hóÄ ÿØ›RwÎð¤Nim>#÷ñÚÔ[~pj}S+,{µ(£K׉'vïÞ½}„|ôèÑ_|±ª²bÂÕ¬ Ð>RJmŸÀëÛªÞÜ~üðñv²æU¯NbÍ«NW ¿.‹™®—^YUQQYWW×ö³'#HMMíڵ˵߹ÒN8¬ `‡u Ä@€b€EU@ñ஀xèÑ€@+§ ‡ ¬Å „•s€€ÃV‡b€ÂÊ9@Àa«Ã@1@aå€ à0„Õa ˜ƒ €°r@p˜€õÚÀ¢O8ls€ô#0½ñÄçgg1bÕ/óD (&€°*Œy@@?«~9'b@@1„U1`ÌCú@XõË9CŠ È»†~´[±ÌCÐ…€¸+@—P‰€@Âüñ+4ÓF³o%IEND®B`‚dlt-viewer-2.18.0+dfsg/doc/dlt_viewer_plugins_programming_guide.txt0000664000175000017500000003304013001357026025212 0ustar potyrapotyraDLT Viewer Plugins Programming Guide ==================================== Alexander Wenzel 0.0.2, February 2016: Updates and improvements for current DLT Viewer state // 0.0.1, 2012/10/23: Initial version image::images/genivi_chrome_1_transparent.png[width=128] Overview -------- The DLT Viewer's functionality can be extended by plugins. There are currently four different types of plugins: Decoder Plugins:: Interprets DLT messages and translates them into human readable data. The decoded message content is also used to filter the messages. Viewer Plugins:: These plugins create UI widgets which can display additional graphical information about DLT messages. They can be used with individual selected messages or whole log streams and DLT files. Control Plugins:: These plugins are able to control the message table of the DLT Viewer and to communicate with target applications. Command Plugins:: These plugins can read command line arguments passed to the DLT Viewer. Each plugin can be a mixture of the types listed above, depending on which interfaces the plugins implement. Interfaces ---------- The plugins can implement several plugin interfaces: QDLTPluginInterface:: This is the standard DLT Viewer plugin interface. This interface *must* be inherited by each DLT Viewer plugin. QDLTPluginDecoderInterface:: This is an extended DLT Viewer plugin interface. This interface must be used by decoder plugins. DLT messages are passed to and can be decoded by the plugin. The plugin decides on its own which messages to decode. QDltPluginViewerInterface:: This is an extended DLT Viewer plugin interface. This interface must be used by viewer plugins. The viewer plugin gets full access to the loaded DLT file. Viewer plugins provide a UI widget to display additional information or other graphical content. QDltPluginControlInterface:: This is an extended DLT Viewer plugin interface. This interface must be used by control plugins. Control plugins get informed about the available connections to DLT daemons. They can send control requests to and receive responses from target applications. The plugin can also "jump" inside the message table in order to guide the user's focus to specific messages. QDltPluginCommandInterface:: This is an extended DLT Viewer plugin interface. This interface must be used by command plugins. The command plugin interface can be used to receive commands passed from the UI or command line. The QDLTPluginInterface must be implemented by every plugin. The other plugin interfaces are optional. A Basic Plugin -------------- The following code samples show the minimal code needed for a DLT Viewer plugin. + (You can find these files in the DLT Viewer project.) .dummyplugin.h ---- #ifndef DUMMYPLUGIN_H #define DUMMYPLUGIN_H #include #include "plugininterface.h" #define DUMMY_PLUGIN_VERSION "1.0.0" class DummyPlugin : public QObject, QDLTPluginInterface { Q_OBJECT Q_INTERFACES(QDLTPluginInterface) public: DummyPlugin(); ~DummyPlugin(); /* QDLTPluginInterface interface */ QString name(); QString pluginVersion(); QString pluginInterfaceVersion(); QString description(); QString error(); bool loadConfig(QString filename); bool saveConfig(QString filename); QStringList infoConfig(); }; #endif // DUMMYPLUGIN_H ---- .dummyplugin.c ---- #include #include "dummydecoderplugin.h" DummyPlugin::DummyPlugin() {} DummyPlugin::~DummyPlugin() {} QString DummyPlugin::name() { return QString("Dummy Plugin"); } QString DummyPlugin::pluginVersion() { return DUMMY_PLUGIN_VERSION; } QString DummyPlugin::pluginInterfaceVersion() { return PLUGIN_INTERFACE_VERSION; } QString DummyPlugin::description() { return QString(); } QString DummyPlugin::error() { return QString(); } bool DummyPlugin::loadConfig(QString /* filename */ ) { return true; } bool DummyPlugin::saveConfig(QString /* filename */) { return true; } QStringList DummyPlugin::infoConfig() { return QStringList(); } #ifndef QT5 Q_EXPORT_PLUGIN2(dummyplugin, DummyPlugin); #endif ---- .dummyplugin.pro ---- # include global settings for all DLT Viewer Plugins include( ../plugin.pri ) # target name TARGET = $$qtLibraryTarget(dummyplugin) # plugin header files HEADERS += \ dummyplugin.h # plugin source files SOURCES += \ dummyplugin.cpp # plugin forms FORMS += ---- Additional interfaces and thus additional functionality can be added by deriving the plugin class from any of the other interfaces. Remember that the QDLTPluginInterface must still be implemented, even if you add one or more of the optional plugin interfaces. ---- class DummyDecoderPlugin : public QObject, QDLTPluginInterface, QDLTPluginDecoderInterface ---- You also have to declare the interfaces you use with the +Q_INTERFACES+ macro in the plugin's header file. ---- Q_INTERFACES(QDLTDecoderPluginInterface) public: /* QDltPluginDecoderInterface */ bool isMsg(QDltMsg &msg, int triggeredByUser); bool decodeMsg(QDltMsg &msg, int triggeredByUser); ---- All interface functions are _pure virtual functions_, so they must be defined in the plugin's +.cpp+ file. If you also implemented a widget for viewer plugins, add a form to the plugin project and return an instance of the widget in the +initViewer()+ function. [IMPORTANT] If you return a UI widget in the +initViewer()+ function, this widget will be owned by the Qt framework, which will handle the widget's destruction. Do not try to delete this widget on your own! QDLTPluginInterface description ------------------------------- This is the standard DLT Viewer Plugin Interface. This interface must be inherited by each DLT Viewer plugin. Most of the functions in this interface are called when loading the plugin the first time. Function +QString name()+ ~~~~~~~~~~~~~~~~~~~~~~~ The plugin must provide a name. This name is shown to the user in the project configuration. Function +QString pluginVersion()+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The plugin has to return a version number in the format +X.Y.Z+. * _X_ should count up in case of really heavy changes (API changes or purpose changes) * _Y_ should count up when the module is reworked internally, functions are added etc * _Z_ should count up whenever a bug is fixed Recommendation: +#define _PLUGIN_VERSION "X.Y.Z"+ in your plugin header file. Function +QString pluginInterfaceVersion()+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The plugin has to return a version number of the used plugin interface. The plugin interface provides the +PLUGIN_INTERFACE_VERSION+ definition for this purpose. Function +QString description()+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Currently not used by DLT Viewer. Function +QString error()+ ~~~~~~~~~~~~~~~~~~~~~~~~ The plugin can provide an error message for the last failed function call. In some cases the DLT Viewer can display this message to the user. You can also just return an empty +QString+ if you don't care about this. Function +bool loadConfig(QString filename)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The plugin can use configuration stored in files. This can be a single file or a directory containing several files. This function is called whenever a new file gets loaded. Function +bool saveConfig(QString filename)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Currently not used by DLT Viewer. Function +QStringList infoConfig()+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This function is called after a call to +loadConfig()+. The plugin can provide a detailed list of the loaded configuration. This is very useful for checking whether the configuration was loaded successfully. QDLTPluginDecoderInterface description -------------------------------------- These functions are called in the following cases: * A new DLT message is shown in the table * A DLT message has been filtered to create the internal filter index * A DLT message is being exported to ASCII Function +bool isMsg(QDltMsg &msg, int triggeredByUser)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The plugin checks whether this DLT message should be handled by the plugin. This is called before +initMsgDecoded()+ and +updateMsgDecoded()+. Function +bool decodeMsg(QDltMsg &msg, int triggeredByUser)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This function is only called if the previous call to +isMsg()+ returned +true+. The function can access the message reference to alter its content. The function should return +true+ if the message was successfully converted, and +false+ otherwise. QDltPluginViewerInterface description ------------------------------------- The following sequence of functions is called for every viewer plugin whenever a new DLT file is loaded: * +initFileStart()+ * for each DLT message in the file: - +initMsg()+ - +initMsgDecoded()+ * +initFileFinish()+ Before calling +updateMsgDecoded()+, the functions +isMsg()+ and +decodeMsg()+ are called for each decoder plugin, possibly altering the messages' contents. The following sequence is called for every plugin when new DLT messages are received by DLT Viewer: * +updateFileStart()+ * for each DLT message received: - +updateMsg()+ - +updateMsgDecoded()+ * +updateFileFinish()+ Before calling +updateMsgDecoded()+, the functions +isMsg()+ and is +decodeMsg()+ are called for each decoder plugin, possibly altering the messages' contents. Currently the DLT messages are iterated from the first to the last message in the DLT file. It is possible that in future versions the calls will arrive in a different order when multithreading is introduced. Function +QWidget* initViewer()+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Called when loading the plugin. The created widget must be returned. [IMPORTANT] The widget will be owned and destroyed by the Qt framework, so don't delete it yourself. Function +void initFileStart(QDltFile *file)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This function is called every time a new log file is opened by the Viewer, or a new log file is created, and *before* any messages are processed with +initMsg()+ and +initMsgDecoded()+. Function +void initFileFinish()+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This function is called after a log file was opened by the Viewer, or a new log file was created, and *after* all messages were processed with +initMsg()+ and +initMsgDecoded()+. Function +void initMsg(int index, QDltMsg &msg)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This function is called every time a new _undecoded_ message is being processed when loading or creating a new log file. Function +void initMsgDecoded(int index, QDltMsg &msg)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This function is called every time a new _decoded_ message is being processed when loading or creating a new log file. Function +void updateFileStart()+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This function is called every time a new message was received by the Viewer and *before* the message is processed with +updateMsg()+ and +updateMsgDecoded()+. Function +void updateFileFinish()+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This function is called every time a new message was received by the Viewer and *after* the message was processed with +updateMsg()+ and +updateMsgDecoded()+. Function +void updateMsg(int index, QDltMsg &msg)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This function is called every time a new _undecoded_ message was received by the Viewer. Function +void updateMsgDecoded(int index, QDltMsg &msg)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This function is called every time a new _decoded_ message was received by the Viewer. Function +void selectedIdxMsg(int index, QDltMsg &msg)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ An _undecoded_ log message was selected in the message table. The Viewer plugin can now show additional information about this message. Function +void selectedIdxMsgDecoded(int index, QDltMsg &msg)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A _decoded_ log message was selected in the message table. The Viewer plugin can now show additional information about this message. QDltPluginControlInterface description -------------------------------------- Function +bool initControl(QDltControl *control)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This function is called once during initialisation of the plugin. It provides a pointer to the control object. Store this pointer inside your plugin for later usage. Function +bool initConnections(QStringList list)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This function is called when the user changes the connections to available ECUs. Function +bool controlMsg(int index, QDltMsg &msg)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This function is called whenever a control message is received by the DLT Viewer. Function +bool stateChanged(int index, QDltConnection::QDltConnectionState connectionState, QString hostname)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This function is called whenever the connection state changed for an ECU item. Function +bool autoscrollStateChanged(bool enabled)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This function is called whenever the _AutoScroll_ option was toggled in the DLT Viewer. QDltPluginCommandInterface description -------------------------------------- Function +bool command(QString command, QList params)+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This function gets called by the DLT Viewer framework when the *-e* command line parameter is used. dlt-viewer-2.18.0+dfsg/doc/dlt_viewer_user_manual.txt0000664000175000017500000004442513001357026022276 0ustar potyrapotyraDLT Viewer User Manual ====================== Alexander Wenzel v0.0.4, February 2016: Updates and improvements for current DLT Viewer state // v0.0.3, April 2013: Added Filetransfer commandline description // v0.0.2, December 2012: Converted to asciidoc :toc: image::images/genivi_chrome_1_transparent.png[width=128] Introduction ------------ Purpose ~~~~~~~ The DLT Viewer tool can decode, view and store DLT messages generated by DLT Daemon. The DLT Viewer tool enables the software developer and the tester of the device to view and control the log and trace information. It is not the goal of GENIVI to provide full functional analyzing tools for traces, but to provide a basic set of utilities to visualize, control and test all features of the DLT Daemon component in a simple way. The DLT Daemon component and the DLT Viewer are based on the AUTOSAR 4.0 standard DLT. We try to keep the GUI simple for an effective and efficient workflow, but also to integrate as much functionality as needed. Feature List ~~~~~~~~~~~~ - Graphical User Interface * Menu and toolbar * Project widget * DLT Message Table * DLT Viewer Plugin * Footer with information about the current file etc. - View DLT files * Drag and Drop support * Recent files selection * Temporary files support * Append files * Index cache of already opened DLT files * Default DLT file loading * Open multiple files (v2.10.1) - Retrieve DLT messages from targets and store them in DLT files * Serial connections * TCP/IP connections * Multiple parallel connections * Autoconnect to targets * Configure log levels and trace status * Store configuration in target * Reset the target's configuration * Organise connections in projects - Filter DLT messsages for analysing * Support to show only a defined subset of the messages * Complex filter configurations * Save and restore filter configurations * Multiple default filter configurations * Markers to highlight specific messages * Filter index cache of already filtered DLT files * Regular expressions * Sorting by time (v2.10.1) - Clipboard support * Copy selected DLT messages to clipboard - Export of DLT files in multiple formats * Supported formats: ** DLT format with selection ** ASCII format ** CSV format * Select the messages to be exported ** All messages ** Filtered messages ** Marked messages - Search DLT messages * Step by step search * Search export view * Search by regular expressions - Project configurations * Control log levels * Organise configurations in projects * Save and restore projects * Recent projects selection * Select displayed columns * Default project loading * Automatic timezone synchronisation (v2.10.1) - Plugin configurations * Decoder plugins to decode messages * Viewer plugins to show more detailed information and analyse logs. Viewer plugins provide extra widgets to visualize data * Control plugins to control applications on the target * Available plugins ** DLT Viewer Plugin ** Non Verbose Mode Plugin ** Filetransfer Plugin ** DLT Statistic Plugin ** DLT System Viewer Plugin - Command line support * Silent mode * Loading project * Loading DLT file * Using filter configuration * Export DLT files to ASCII * Execute commands in plugins - Plugins programming guide DLT Viewer GUI -------------- Layout ~~~~~~ image::images/main_window_plain.png[width="100%"] The screenshot above will give you a quick impression about how the Viewer could look. The Viewer is based on Qt, so there are widgets you can move around and resize as you like. Your settings of position and size of the widgets are stored when you close the Viewer so that you have exactly the same window when you launch the Viewer the next time. To get a better understanding about the DLT Viewer parts the screenshot below marks the relevant areas followed by a description. image::images/main_window_annotated.png[width="100%"] [width="100%",style="asciidoc",cols="<5%,<15%,<80%",frame="topbot",options="header"] |============================================================================= |Nr|Title|Description |image:images/Mark1.png[width="64"]|Menu and Toolbar|In the window title you can find the absolute path of your project file (if a file is used) and the project name. If you start the DLT Viewer with no default project file it will create an unnamed project. After the project name you can read the version of the DLT Viewer. In any case of contact with the development team, please report the version of the DLT Viewer. The menu consists of: * *File* + Open and save files, access DLT Viewer settings etc. * *Search* + Search for specific messages in the current log. * *Project* + Create, open and save DLT Viewer projects. * *Config* + Add, edit and remove ECUs, applications and contexts. * *DLT* + Additional functions concerning the DLT daemon and the current configuration. * *Filter* + Create, open and save filters for the message log. * *Plugin* + Enable, show and edit plugins. * *View* + Select the visible components of the DLT Viewer. * *Help* + Get information and help for the DLT Viewer. The menu provides main functions to the user. Many menu functions are also easily accessible through the toolbar. Hover the cursor over toolbar buttons to see their functions. |image:images/Mark2.png[width="64"]|Project Panel * Config * Filter * Plugin |The project widget allows you to configure and control the project, load an existing project, save a changed configuration to the DLT Daemon and more. The project panel is split into three tabs: * The "Config" tab, which contains all connected ECUs/Devices. Each Device contains its connected applications. Each application contains its used contexts. * The "Filter" tab lets you configure filters and markers, which are used to show or mark only a defined subset of DLT messages in the log. * The "Plugin" tab shows the available DLT Viewer plugins. The development team provides a plugin SDK to you. You are able to write your own DLT Viewer plugins to decode messages, display an extra GUI panel or control the Viewer and target applications. More information about the Plugin SDK can be found here: + http://projects.genivi.org/diagnostic-log-trace/sites/projects.genivi.org.diagnostic-log-trace/files/dlt_viewer_plugins_programming_guide.html In the settings you can select a default project, which is loaded during start-up. |image:images/Mark3.png[width="64"]|DLT Message Table|In the DLT Message Table you see all DLT messages in the current DLT log file. Newly received DLT messages are written to the end of the log file. If the _AutoScroll_ option is enabled in the settings, the table will scroll along with new DLT messages while they are received. The columns in the message table are: * *Index* + Index of the DLT message in the DLT log file. * *Time* + Time when the message was received. * *Timestamp* + Time when the message was sent, measured since the startup of the target. * *Count* + Cyclical counter, one per context. Can be used to detect lost messages. * *Ecuid* + Name of the sending ECU. Defined in the "Projects" tab. * *Apid* + Indetifier of the message sender application. Defined by the sending application. * *Ctid* + Context indentifier of the message sender. Defined by the sending application. * *Type* + Type of the message (Log / Trace). * *Subtype* + Log level or trace type. * *Mode* + Verbose or Non-Verbose. * *Args* + The number of arguments in the payload of the message. * *Payload* + The payload shows all parameters of the log message as text. If a filter is configured, you will see only DLT messages which match this filter. Remove or disable all filters if you want to see all messages. If there are decoder plugins and a DLT message matches one of these plugins, the decoded payload is displayed instead of the raw payload. DLT log files can be loaded and saved in the file menu. |image:images/Mark4.png[width="64"]|Plugin Widgets|Viewer plugins provide one or more widgets to display additional data. You can choose which plugins are to be shown in the "Plugin" tab. |image:images/Mark5.png[width="64"]|Footer|The footer shows information about the current log file and the build version and options of the DLT Viewer. |============================================================================= Project Panel ~~~~~~~~~~~~~ Config Tab ^^^^^^^^^^ image:images/project_widget.png[] In the config tab you can see a hierarchical list of all configured devices, applications and contexts. * The ECU item lists the ID of the ECU, its status (red = offline, yellow = connecting, green = online), a description of the ECU including the connection interface, the default log level and the default trace status. * The application item lists the ID and the description of the application. * The context item lists the ID, the description, the log level and the trace status of the context. Double clicking an item lets you configure it. Right clicking an item gets you a context menu, depending on the type of the item: - Right click on empty space: + image:images/ecu_add.png[] - Right click on an ECU: + image:images/ecu_context_menu.png[] - Right click on an application: + image:images/app_context_menu.png[] - Right click on a context: + image:images/ctx_context_menu.png[] Filter Tab ^^^^^^^^^^ image:images/filter_widget.png[] The Filter list gives you an overview of all configured filters. Only DLT messages which match the enabled filters are displayed. Double clicking a filter item lets you change the filter. Each filter can be customized to include or exclude messages, to check for specific ECUs, applications or contexts, for header and payload content and more. It is also possible to create marker filters, which don't include or exclude any messages but highlight them in a selected color. By right clicking you get the following context menu: image:images/filter_context_menu.png[] Both the "Load Filter" and the "Append Filter" option will load a saved filter file, but "Load Filter" will reset your current filter list while appending keeps it. The filters you set will apply to all incoming or loaded DLT messages. If you also want to apply the filters to previously logged messages, hit the "Apply Configuration" button on the top of the "Filter" tab. Plugin Tab ^^^^^^^^^^ image:images/plugin_widget.png[] The plugin list shows all loaded plugins. Plugins are used to decode DLT messages, to provide additional graphical widgets, to control the viewer, to send injection messages to target applications or a mixture of all these. Double clicking a plugin item creates a popup window which lets you enable/disable the plugin and select a configuration file for it. * The "Name" column shows the name of each plugin. This name is provided by the plugin itself. * The "Interface" column tells you the type of the plugin (or more precisely: what interfaces it implements). For each plugin this column shows a combination of "View", "Decode", "Ctrl" and "Command". * The "Status" column shows which plugins are enabled and visible. Only plugins that implement the "View" interface can have the status "Visible". * The "Info" column lists the number of description items for each plugin. The description items can be seen by expanding plugin items that have an arrow next to them. * The "File" column tells you the path of the configuration file or files for plugins that have such a file or files selected. Double click on plugin items to choose configuration files for them. Plugin overview ~~~~~~~~~~~~~~~ The feature set of the DLT Viewer can be easily extended with DLT Viewer plugins. Plugins have full read access to trace messages, they can decode messages, provide additional representations inside the DLT Viewer GUI, control the Viewer or send injection messages to target applications, depending on which DLT interfaces the respective plugin implements. It's easy to write your own DLT Viewer plugin, examples are provided in the DLT Viewer source code. Plugin SDK ^^^^^^^^^^ You can find a more detailed documenation of all plugin interfaces in the "Dlt Viewer Plugins Programming Guide": + http://projects.genivi.org/diagnostic-log-trace/sites/projects.genivi.org.diagnostic-log-trace/files/dlt_viewer_plugins_programming_guide.html Here is an overview of the some useful plugins: Non Verbose Mode Plugin ^^^^^^^^^^^^^^^^^^^^^^^ Interface:: * QDLTPluginInterface * QDLTPluginDecoderInterface Description:: Decodes the DLT non-verbose messages after a catalog file has been loaded. DLT Viewer Plugin ^^^^^^^^^^^^^^^^^ Interface:: * QDLTPluginInterface * QDltPluginViewerInterface Description:: Advanced visual representation for selected log messages. Screenshot:: image:images/Viewer_plugin.png[] Filetransfer Plugin ^^^^^^^^^^^^^^^^^^^ *Widget:* Interface:: * QDLTPluginInterface * QDltPluginViewerInterface * QDltPluginControlInterface Description:: Files like screenshots, coredumps etc. logged by a DLT Filetransfer application can be viewed and saved with this plugin. Screenshot:: image:images/filetransfer_plugin.png[] *Command line usage:* You can use the Filetransfer Plugin to extract files out of a stored dlt file. To do this, call the Viewer with this command: [dlt_Viewer.exe] -p project_filetransfer.dlp -l filewithattachements.dlt -e "Filetransfer Plugin|export|[path_to_extract]" * [dlt_Viewer.exe] + The executable of the DLT Viewer. E.g. dlt_Viewer.exe in Windows, dlt_Viewer in Linux * project_filetransfer.dlp: + A project, which has the filetransfer properly configured, by setting a valid plugin xml. * filewithattachements.dlt: + Path to a dlt trace file. If it contains embedded files, they will be extracted * -e: + triggers a plugin command * "Filetransfer Plugin: + Filetransfer Plugin will be called for the command interface * export: + the export function is called * [path_to_extract]": + Path to the folder where you want to extract all file dumps. If you apply this for a lot of files, think about using individual paths, to avoid overwriting files with identical names. Install, remove, enable and disable plugins on Windows ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The DLT Viewer will look for plugins in two places. The first place is the "plugins" folder inside the main application path. After that, if "pluginsPath" is defined in the DLT Viewer settings, the application will also look in this specified location for plugins. You can install plugins by putting them into one of the directories mentioned, and uninstall them by removing them from these directories. It is also possible to enable or disable plugins in the DLT Viewer itself. To do this, double-click or right-click on a plugin in the "Plugins" tab. You will get a drop-down menu for enabling and disabling the plugin. When enabled, messages are passed to the plugin. When disabled, the plugin will be ignored in the message processing chain. For plugins that implement the "viewer" interface, there is also a third selection, "Enable and Show", which brings up the UI widget of this plugin. Install, remove, enable and disable plugins on Linux ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Under Linux, organizing plugins works in a similar fashion. In addition to the previously mentioned folders, the Linux version will also look into "/usr/share/dlt-Viewer/plugins" for any plugins. You will need to have root permissions to modify the plugin directories that are installed system-wide. To organize plugins without root permissions, you can set the user defined plugin directory in the DLT Viewer settings to some other path, e.g. somewhere in your home directory. Best Practices -------------- Connect to ECU ~~~~~~~~~~~~~~ Press the connect button to connect to the target: image:images/connect_button.png[] If no ECU is configured, the ECU configuration dialog appears. Select the "Interface Type" you want to use (TCP or serial). image:images/ecu_dialog.png[] If you choose a TCP connection configure the Hostname of the target ECU. image:images/ecu_dialog_tcp.png[] If you choose a serial connection, select the serial port. Check the COM port, where your serial device is connected in your Windows configuration. A drop down list provides a list of examples for the port configuration. image:images/ecu_dialog_serial.png[] If you select "OK" the DLT Viewer will try to connect to the ECU. The ECU Id shows "online" (green) as soon as the DLT Viewer is connected to the specified device. All received DLT messages should then be displayed in DLT message table. Available List of Contexts ~~~~~~~~~~~~~~~~~~~~~~~~~~ When you are connected to an ECU, you can get a list of available contexts in the ECU. Select an ECU item in the Config window. Right click on the selected ECU and select the context menu item "DLT Get Log Info". The DLT Viewer then sends a request to the target and receives a result with all available contexts and their log levels. The list of available contexts is added to your "Config" list. Working with DLT Log Files ~~~~~~~~~~~~~~~~~~~~~~~~~~ When you start the DLT Viewer, a temporary log file is created. All received DLT messages get stored in this temporary log file and shown in the DLT message table. Select the menu option "File"->"Save As" to copy your temporary log file to a file you have selected. Select "File"->"New" if you want to create and save a new, empty log file. Non Verbose Mode Description ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you receive DLT messages in non verbose mode, you need to decode them to see their plain text. To do this, go to the "Plugin" tab in the "Project" panel. Double click on the plugin "Non Verbose Mode Plugin". In the dialog that appears, you can open a configuration file to load. Use this to load a non verbose XML description file, which corresponds to your software on the ECU. Hit "OK" and the Plugin shows a list of all available non verbose messages. As soon as you select a DLT message you can view the decoded information. Incoming messages that fit the description file will now get decoded. To also decode the already received messages, hit "Apply Configuration" on the top of the "Plugin" tab. dlt-viewer-2.18.0+dfsg/doc/dlt_viewer_user_manual-docinfo.xml0000664000175000017500000000122713001357026023667 0ustar potyrapotyra Alexander Wenzel Alexander.AW.Wenzel@bmw.de BMW Simon Brandner simon.brandner@partner.bmw.de Lassi Marttala lassi.lm.marttala@partner.bmw.de Sven Hassler Sven_Hassler@mentor.com dlt-viewer-2.18.0+dfsg/parser/0000775000175000017500000000000013001357026015514 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/parser/mainwindow.ui0000664000175000017500000002717613001357026020244 0ustar potyrapotyra MainWindow 0 0 1000 595 DLT Parser 3 3 3 3 0 Messages 1 1 1 1 true false false true ID Define ID Context Context ID App ID Log Level Linenumber Filename Payload Applications 1 1 1 1 true App ID Description Contexts 1 1 1 1 true Context Context ID App ID Description Message Ids 1 1 1 1 true ID Define ID 0 0 1000 21 Help Read Parse Convert Check Write Update TopToolBarArea false Info... Commandline options... Read Fibex... &New &Save Save &As... Exit Write CSV... Parse File... Parse Directory... File... Directory... Check double IDs... Append Fibex... Parse Configuration... Write IDs Header... Write Fibex XML... Check double IDs per application... Write IDs Header per application... Update IDs.. Update IDs per application... dlt-viewer-2.18.0+dfsg/parser/qdltparser.cpp0000664000175000017500000014530013001357026020404 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author * Alexander Wenzel * * \file qdltparser.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "qdltparser.h" #include #include #include #include #include #include QDltParser::QDltParser() { clear(); } void QDltParser::clear() { applications.clear(); contexts.clear(); messages.clear(); messageIds.clear(); } bool QDltParser::parseFile(QString fileName) { QByteArray data; QString text; QFile file(fileName); int linecounter = 0; qDebug() << "parseFile" << fileName; // open file if(!file.open(QFile::ReadOnly)) { errorString = "Cannot open file " + fileName; return false; } // run through whole file while(file.bytesAvailable()) { data = file.readLine(); linecounter++; text = QString(data); if(text.contains("DLT_REGISTER_APP")) { qDebug() << "parseFile" << "DLT_REGISTER_APP"; if(!parseContextsRegisterApp(text)) { return false; } } else if(text.contains("DLT_REGISTER_CONTEXT")) { qDebug() << "parseFile" << "DLT_REGISTER_CONTEXT"; if(!parseContextsRegisterContext(text)) { return false; } } else if(text.contains("#define") && text.contains("DLT_MSG_ID_")) { qDebug() << "parseFile" << "#define DLT_MSG_ID_"; if(!parseMessageId(text)) { return false; } } else if(text.contains("DLT_LOG_ID") || (text.contains("DLT_LOG"))) { QFile empty; if(!parseMessage(file,empty,linecounter,text)) { return false; } } } // close file file.close(); // everything is ok return true; } bool QDltParser::converteFile(QString fileName) { QByteArray data; QString text; QFile file(fileName); QFile fileWrite(fileName); int linecounter = 0; qDebug() << "converteFile" << fileName; QFile::remove(fileName+QString(".bak_dlt")); file.rename(fileName+QString(".bak_dlt")); // open write file if(!fileWrite.open(QFile::WriteOnly)) { errorString = "Cannot open file " + fileName; return false; } // open read file if(!file.open(QFile::ReadOnly)) { errorString = "Cannot open file " + fileName; return false; } // run through whole file while(file.bytesAvailable()) { data = file.readLine(); linecounter++; text = QString(data); if(text.contains("DLT_LOG_ID") || text.contains("DLT_LOG")) { if(!parseMessage(file,fileWrite,linecounter,text)) { return false; } } else { /* write output file */ fileWrite.write(text.toLatin1()); } } // close file file.close(); fileWrite.close(); // everything is ok return true; } bool QDltParser::parseMessage(QFile &file,QFile &fileWrite,int &linecounter,QString text) { bool withid = false; QDltFibexFrame *frame = new QDltFibexFrame(); QStringList list; if(text.contains("DLT_LOG_ID")) { withid = true; } frame->filename = file.fileName(); frame->lineNumber = linecounter; list = parseMessageLine(file,text,linecounter); if(fileWrite.isOpen() && withid) { /* write output file */ fileWrite.write(text.toLatin1()); } if(fileWrite.isOpen() && !withid) { /* write output file */ fileWrite.write(QString("DLT_LOG_ID%1(").arg(withid? list.size()-3 : list.size()-2).toLatin1()); } parseMessageStringList(frame,fileWrite,list,withid); if(!frame || frame->context.isEmpty() || frame->messageInfo.isEmpty()) { errorString = "Missing parameters in message: " + text; if(frame) delete frame; return false; } if(fileWrite.isOpen() && !withid) { if(list.size()==2) { QString hashString = fileWrite.fileName()+"_"+QString("%1").arg(frame->lineNumber)+"_"+frame->context; QByteArray hashByteArray = hashString.toLatin1(); QByteArray md5 = QCryptographicHash::hash(hashByteArray, QCryptographicHash::Md5); frame->idString = QString("DLT_MSG_ID_%1_%2_%3").arg(frame->appid).arg(frame->ctid).arg(QString(md5.toHex()).left(8)); fileWrite.write(QString("%1);\n").arg(frame->idString).toLatin1()); } /* write output lines to do not change line number order */ for(int i=0;i<(linecounter-frame->lineNumber);i++) { fileWrite.write(QString("\n").toLatin1()); } } // only if not coverting if(!fileWrite.isOpen()) messages.append(frame); qDebug() << "parseMessage" << frame->filename << frame->lineNumber; return true; } void QDltParser::parseMessageStringList(QDltFibexFrame *frame,QFile &fileWrite,QStringList &list,bool withid) { for(int i = 0; i < list.size();i++) { QString argtext = list.at(i); argtext = argtext.trimmed(); qDebug() << "parseMessageStringList" << argtext; if(i==0) { frame->context = argtext; QDltCon *con = contexts[frame->context]; if(con) { frame->ctid = con->conid; frame->appid = con->appid; } if(fileWrite.isOpen() && !withid) { /* write output file */ fileWrite.write(QString("%1,").arg(list.at(i)).toLatin1()); } } else if(i==1) { /* message info */ frame->messageInfo = argtext; if(fileWrite.isOpen() && !withid) { /* write output file */ fileWrite.write(QString("%1,").arg(list.at(i)).toLatin1()); } } else if(withid && i==2) { frame->idString = argtext; frame->id = argtext.toUInt(); } else { /* argument */ parseMessageParameter(argtext,frame); if(fileWrite.isOpen() && !withid) { if(i==2) { QString hashString = fileWrite.fileName()+"_"+QString("%1").arg(frame->lineNumber)+"_"+frame->context; QByteArray hashByteArray = hashString.toLatin1(); QByteArray md5 = QCryptographicHash::hash(hashByteArray, QCryptographicHash::Md5); frame->idString = QString("DLT_MSG_ID_%1_%2_%3").arg(frame->appid).arg(frame->ctid).arg(QString(md5.toHex()).left(8)); /* write output file */ fileWrite.write(QString("%1,").arg(frame->idString).toLatin1()); } if(i < (list.size()-1)) { fileWrite.write(QString("%1,").arg(argtext).toLatin1()); } else { fileWrite.write(QString("%1);\n").arg(argtext).toLatin1()); } } } } } void QDltParser::parseMessageParameter(QString argtext,QDltFibexFrame *frame) { int begin,end; QDltFibexPdu *pdu; pdu=new QDltFibexPdu(); frame->pdureflist.append(pdu); if(argtext.contains("DLT_CSTRING")) { begin = argtext.indexOf('"'); end = argtext.lastIndexOf('"'); pdu->description = argtext.mid(begin+1,end-begin-1); } else if(argtext.contains("DLT_STRING")) { pdu->typeInfo = "S_STRG_ASCII"; } else if(argtext.contains("DLT_RAW")) { pdu->typeInfo = "S_RAWD"; pdu->byteLength = 0; } else { begin = argtext.indexOf('('); pdu->typeInfo = QString("S_") + argtext.mid(4,begin-4); if (pdu->typeInfo == "S_BOOL") { pdu->byteLength = 1; } else if (pdu->typeInfo == "S_INT8") { pdu->byteLength = 1; pdu->typeInfo = "S_SINT8"; } else if (pdu->typeInfo == "S_UINT8") { pdu->byteLength = 1; } else if (pdu->typeInfo == "S_INT16") { pdu->byteLength = 2; pdu->typeInfo = "S_SINT16"; } else if (pdu->typeInfo == "S_UINT16") { pdu->byteLength = 2; } else if (pdu->typeInfo == "S_INT32" || pdu->typeInfo == "S_INT") { pdu->byteLength = 4; pdu->typeInfo = "S_SINT32"; } else if (pdu->typeInfo == "S_UINT32" || pdu->typeInfo == "S_UINT") { pdu->byteLength = 4; pdu->typeInfo = "S_UINT32"; } else if (pdu->typeInfo == "S_INT64") { pdu->byteLength = 8; pdu->typeInfo = "S_SINT64"; } else if (pdu->typeInfo == "S_UINT64") { pdu->byteLength = 8; } else if (pdu->typeInfo == "S_FLOAT16") { pdu->byteLength = 2; pdu->typeInfo = "S_FLOA16"; } else if (pdu->typeInfo == "S_FLOAT32") { pdu->byteLength = 4; pdu->typeInfo = "S_FLOA32"; } else if (pdu->typeInfo == "S_FLOAT64") { pdu->byteLength = 8; pdu->typeInfo = "S_FLOA64"; } else if (pdu->typeInfo == "S_STRG_ASCII") { pdu->byteLength = 0; } } qDebug() << "parseMessageParameter" << pdu->typeInfo << pdu->byteLength << pdu->description; } QStringList QDltParser::parseMessageLine(QFile &file,QString &line,int &linecounter) { QStringList list; int level = 0; int pos = 0; int start = 0; QString text; QByteArray data; QChar character; bool quotation = false; /* always set when inside of a string */ bool backslash = false; /* is set to true, if the char before was a backslash */ do { for(;pos0) { data = file.readLine(); linecounter++; line += QString(data); } } while(level>0); return list; } bool QDltParser::parseMessageId(QString text) { QStringList list; list = text.split(" ",QString::SkipEmptyParts); for (int i = 0; i < list.size(); ++i) { if((list[i] == QString("#define")) && (list.size() > (i+2))) { messageIds[list[i+1]]=list[i+2].toUInt(); qDebug() << "parseMessageId" << list[i+1] << list[i+2]; return true; } else { errorString = "Define Message Id wrong format: " + text; return false; } } errorString = "Define Message Id wrong format: " + text; return false; } bool QDltParser::parseContextsRegisterApp(QString text) { int begin,end; QStringList list; QString argtext; QString appid,appdesc; begin = text.indexOf('('); end = text.lastIndexOf(')'); if(begin>0 && end>0 && end>begin) { text.remove(end,text.size()-end+1); text.remove(0,begin+1); text = text.trimmed(); list = text.split(','); for(int i = 0; i < list.size();i++) { argtext = list.at(i); argtext = argtext.trimmed(); if(i == 0) { /* app id */ begin = argtext.indexOf('"'); end = argtext.lastIndexOf('"'); appid = argtext.mid(begin+1,end-begin-1); } else if (i == 1) { /* app description */ begin = argtext.indexOf('"'); end = argtext.lastIndexOf('"'); appdesc = argtext.mid(begin+1,end-begin-1); } } } if(appid.isEmpty()) { errorString = "Application Id is empty: " + text; return false; } qDebug() << "parseContextsRegisterApp" << appid << appdesc; applications[appid] = appdesc; return true; } bool QDltParser::parseContextsRegisterContext(QString text) { int begin,end; QDltCon *con = 0; QStringList list; int i; QString argtext; bool withapp = false; if(text.contains("DLT_REGISTER_CONTEXT_APP")) { withapp = true; } begin = text.indexOf('('); end = text.lastIndexOf(')'); if(begin>0 && end>0 && end>begin) { con = new QDltCon(); text.remove(end,text.size()-end+1); text.remove(0,begin+1); text = text.trimmed(); list = text.split(','); for(i = 0; i < list.size();i++) { argtext = list.at(i); argtext = argtext.trimmed(); /* DLT Embedded mode */ if(i == 0) { /* context */ con->context = argtext; } else if (i == 1) { /* con id */ begin = argtext.indexOf('"'); end = argtext.lastIndexOf('"'); con->conid = argtext.mid(begin+1,end-begin-1); } else if (withapp && i == 2) { /* app id */ begin = argtext.indexOf('"'); end = argtext.lastIndexOf('"'); con->appid = argtext.mid(begin+1,end-begin-1); } else if ((!withapp && i == 2) || (withapp && i == 3)) { /* con description */ begin = argtext.indexOf('"'); end = argtext.lastIndexOf('"'); con->description = argtext.mid(begin+1,end-begin-1); } } } if(!con || con->conid.isEmpty()) { errorString = "Context Id is empty: " + text; delete con; return false; } qDebug() << "parseContextsRegisterContext" << con->context << con->appid << con->conid << con->description; contexts[con->context] = con; return true; } bool QDltParser::parseCheck() { QDltFibexFrame *frame; // check application ids if(applications.size()<1) { errorString = "No application is registered!"; return false; } // find an application id QString appid; QMapIterator i(applications); while (i.hasNext()) { i.next(); appid = i.key(); } // check and set context ids and application ids in frames for(int i = 0;icontext]; if(!con) { errorString = "Context not found: " + frame->context; return false; } if(con->conid.isEmpty()) { errorString = "Context " + frame->context + " has no context id!"; return false; } frame->ctid = con->conid; if(con->appid.isEmpty()) { if(applications.size()>1) { errorString = "Context " + frame->context + " has no application id and more than one application is registered!"; return false; } con->appid = appid; frame->appid = appid; // when common api is not used, the register context macro does not contain the appid; use global one } else { frame->appid = con->appid; } // search id uint32_t id = messageIds[frame->idString]; if(id!=0) { frame->id = id; } } return true; } bool QDltParser::writeFibex(QString &fileName) { QFile file; qDebug() << "writeFibex" << fileName; /* open selected file */ file.setFileName(fileName); if (!file.open(QFile::WriteOnly | QFile::Truncate | QFile::Text)) { /* file could not be opened */ errorString = "Cannot open file: " + fileName; return false; } /* open xml writer */ QXmlStreamWriter xml(&file); xml.setAutoFormatting(true); /* write start XML document */ xml.writeStartDocument(); xml.writeNamespace("http://www.asam.net/xml","ho"); xml.writeNamespace("http://www.asam.net/xml/fbx","fx"); xml.writeStartElement("http://www.asam.net/xml/fbx","FIBEX"); xml.writeStartElement("http://www.asam.net/xml/fbx","PROJECT"); xml.writeAttribute("ID","projectEntry"); xml.writeTextElement("http://www.asam.net/xml","SHORT-NAME","projectEntry"); xml.writeEndElement(); // PROJECT xml.writeStartElement("http://www.asam.net/xml/fbx","ELEMENTS"); xml.writeStartElement("http://www.asam.net/xml/fbx","ECUS"); xml.writeStartElement("http://www.asam.net/xml/fbx","ECU"); xml.writeAttribute("ID","Entry"); xml.writeTextElement("http://www.asam.net/xml","SHORT-NAME","Entry"); xml.writeStartElement("http://www.asam.net/xml/fbx","MANUFACTURER-EXTENSION"); xml.writeTextElement("SW_VERSION","unknown"); /* Applications */ xml.writeStartElement("APPLICATIONS"); QMapIterator i(applications); while (i.hasNext()) { i.next(); /* Application */ xml.writeStartElement("APPLICATION"); xml.writeTextElement("APPLICATION_ID",i.key()); xml.writeTextElement("APPLICATION_DESCRIPTION",i.value()); /* Contexts */ xml.writeStartElement("CONTEXTS"); QMapIterator j(contexts); while (j.hasNext()) { j.next(); QDltCon* con = j.value(); if(con->appid == i.key()) { xml.writeStartElement("CONTEXT"); xml.writeTextElement("CONTEXT_ID",con->conid); xml.writeTextElement("CONTEXT_DESCRIPTION",con->description); xml.writeEndElement(); // CONTEXT } } xml.writeEndElement(); // CONTEXTS xml.writeEndElement(); // APPLICATION } xml.writeEndElement(); // APPLICATIONS xml.writeEndElement(); // MANUFACTURER-EXTENSION xml.writeEndElement(); // ECU xml.writeEndElement(); // ECUS xml.writeStartElement("http://www.asam.net/xml/fbx","PDUS"); for(int i = 0;ipdureflist.size();k++) { QDltFibexPdu *pduc= frame->pdureflist.at(k); if(!pduc->description.isEmpty()) length += 0; else length += pduc->byteLength; } for(int j = 0;jpdureflist.size();j++) { QDltFibexPdu *pdu= frame->pdureflist.at(j); xml.writeStartElement("http://www.asam.net/xml/fbx","PDU"); xml.writeAttribute("ID",QString("PDU_%1_%2").arg(frame->id).arg(j)); xml.writeTextElement("http://www.asam.net/xml","SHORT-NAME",QString("PDU_%1_%2").arg(frame->id).arg(j)); if(pdu->description.isEmpty()) { /* all parameters except constant strings */ xml.writeTextElement("http://www.asam.net/xml/fbx","BYTE-LENGTH",QString("%1").arg(pdu->byteLength)); xml.writeTextElement("http://www.asam.net/xml/fbx","PDU-TYPE","OTHER"); xml.writeStartElement("http://www.asam.net/xml/fbx","SIGNAL-INSTANCES"); xml.writeStartElement("http://www.asam.net/xml/fbx","SIGNAL-INSTANCE"); xml.writeAttribute("ID",QString("S_%1_0").arg(frame->id)); xml.writeTextElement("http://www.asam.net/xml/fbx","SEQUENCE-NUMBER","0"); xml.writeStartElement("http://www.asam.net/xml/fbx","SIGNAL-REF"); xml.writeAttribute("ID-REF",pdu->typeInfo); xml.writeEndElement(); // SIGNAL-REF xml.writeEndElement(); // SIGNAL-INSTANCE xml.writeEndElement(); // SIGNAL-INSTANCES } else { /* constant string only */ xml.writeTextElement("http://www.asam.net/xml","DESC",pdu->description); xml.writeTextElement("http://www.asam.net/xml/fbx","BYTE-LENGTH","0"); xml.writeTextElement("http://www.asam.net/xml/fbx","PDU-TYPE","OTHER"); } xml.writeEndElement(); // PDU } } xml.writeEndElement(); // PDUS xml.writeStartElement("http://www.asam.net/xml/fbx","FRAMES"); for(int i = 0;iid)); xml.writeTextElement("http://www.asam.net/xml","SHORT-NAME",QString("ID_%1").arg(frame->id)); int length = 0; for(int k = 0;kpdureflist.size();k++) { QDltFibexPdu *pduc= frame->pdureflist.at(k); if(!pduc->description.isEmpty()) length += 0; else length += pduc->byteLength; } xml.writeTextElement("http://www.asam.net/xml/fbx","BYTE-LENGTH",QString("%1").arg(length)); xml.writeTextElement("http://www.asam.net/xml/fbx","FRAME-TYPE","OTHER"); xml.writeStartElement("http://www.asam.net/xml/fbx","PDU-INSTANCES"); for(int j = 0;jpdureflist.size();j++) { //DltFibexPdu *pdu= frame->pdureflist.at(j); xml.writeStartElement("http://www.asam.net/xml/fbx","PDU-INSTANCE"); xml.writeAttribute("ID",QString("P_%1_%2").arg(frame->id).arg(j)); xml.writeStartElement("http://www.asam.net/xml/fbx","PDU-REF"); xml.writeAttribute("ID-REF",QString("PDU_%1_%2").arg(frame->id).arg(j)); xml.writeEndElement(); // PDU-REF xml.writeTextElement("http://www.asam.net/xml/fbx","SEQUENCE-NUMBER",QString("%1").arg(j)); xml.writeEndElement(); // PDU-INSTANCE } xml.writeEndElement(); // PDU-INSTANCES xml.writeStartElement("http://www.asam.net/xml/fbx","MANUFACTURER-EXTENSION"); xml.writeTextElement("MESSAGE_TYPE",QString("DLT_TYPE_LOG")); xml.writeTextElement("MESSAGE_INFO",frame->messageInfo); xml.writeTextElement("APPLICATION_ID",frame->appid); xml.writeTextElement("CONTEXT_ID",frame->ctid); xml.writeTextElement("MESSAGE_SOURCE_FILE",QString("%1").arg(frame->filename)); xml.writeTextElement("MESSAGE_LINE_NUMBER",QString("%1").arg(frame->lineNumber)); xml.writeEndElement(); // MANUFACTURER-EXTENSION xml.writeEndElement(); // FRAME } xml.writeEndElement(); // FRAMES xml.writeEndElement(); // ELEMENTS xml.writeEndElement(); // FIBEX /* write end XML document */ xml.writeEndDocument(); /* close CML file */ file.close(); return true; } bool QDltParser::writeCsv(QString &fileName) { QFile file(fileName); qDebug() << "writeCsv" << fileName; /* open selected file */ if (!file.open(QFile::WriteOnly | QFile::Truncate | QFile::Text)) { /* file could not be opened */ errorString = "Cannot open file: " + fileName; return false; } //file.write("ID;BYTE-LENGTH;MESSAGE_TYPE;MESSAGE_INFO;APPLICATION_ID;CONTEXT_ID;FILENAME;LINENUMBER;ARG0;LENGTH0;ARG1;LENGTH1;ARG2;LENGTH2"); for(int i = 0;iid).toLatin1()); int length = 0; for(int k = 0;kpdureflist.size();k++) { QDltFibexPdu *pduc= frame->pdureflist.at(k); if(!pduc->description.isEmpty()) length += 0; else length += pduc->byteLength; } /* write length in bytes */ file.write(QString("\"%1\",").arg(length).toLatin1()); /* write message type */ file.write(QString("\"%1\",").arg("DLT_TYPE_LOG").toLatin1()); /* write message info */ file.write(QString("\"%1\",").arg(frame->messageInfo).toLatin1()); /* write app id */ file.write(QString("\"%1\",").arg(frame->appid).toLatin1()); /* write context id */ file.write(QString("\"%1\",").arg(frame->ctid).toLatin1()); /* write file name */ file.write(QString("\"%1\",").arg(frame->filename).toLatin1()); /* write line number */ file.write(QString("\"%1\"").arg(frame->lineNumber).toLatin1()); for(int j = 0;jpdureflist.size();j++) { QDltFibexPdu *pdu= frame->pdureflist.at(j); if(!pdu->description.isEmpty()) { /* write message argument */ file.write(QString(",\"%1\"").arg(pdu->description).toLatin1()); file.write(QString(",\"%1\"").arg(0).toLatin1()); } else { /* write message argument */ file.write(QString(",\"%1\"").arg(pdu->typeInfo).toLatin1()); file.write(QString(",\"%1\"").arg(pdu->byteLength).toLatin1()); } } file.write("\n"); } /* close CML file */ file.close(); return true; } bool QDltParser::writeIdHeader(QString &directory,bool perApplication) { QFile file; QMapIterator i(applications); if(!perApplication) { file.setFileName(directory+QString("/dlt_id.h")); qDebug() << "writeIdHeader" << directory+QString("/dlt_id.h"); /* open selected file */ if (!file.open(QFile::WriteOnly | QFile::Truncate | QFile::Text)) { /* file could not be opened */ errorString = "Cannot open file: " + directory+QString("/dlt_id.h"); return false; } file.write("// generated file, do not edit\n"); file.write("\n"); file.write(QString("#ifndef DLT_ID_H\n").toLatin1()); file.write(QString("#define DLT_ID_H\n").toLatin1()); file.write("\n"); } while(i.hasNext()) { i.next(); if(perApplication) { file.setFileName(directory+QString("/dlt_id_%1.h").arg(i.key())); qDebug() << "writeIdHeader" << directory+QString("/dlt_id_%1.h").arg(i.key()); /* open selected file */ if (!file.open(QFile::WriteOnly | QFile::Truncate | QFile::Text)) { /* file could not be opened */ errorString = QString("Cannot open file: ") + directory+QString("/dlt_id_%1.h").arg(i.key()); return false; } file.write("// generated file, do not edit"); file.write("\n"); file.write(QString("#ifndef DLT_ID_%1_H\n").arg(i.key()).toLatin1()); file.write(QString("#define DLT_ID_%1_H\n").arg(i.key()).toLatin1()); file.write("\n"); } /* add all DLT messages to list */ for(int j = 0;jappid==i.key()) file.write(QString("#define %1 %2\n").arg(frame->idString).arg(frame->id).toLatin1()); } if(perApplication) { file.write("\n"); file.write(QString("#endif /* DLT_ID_%1_H */\n").arg(i.key()).toLatin1()); /* close CML file */ file.close(); } } if(!perApplication) { file.write("\n"); file.write(QString("#endif /* DLT_ID_H */\n").toLatin1()); /* close CML file */ file.close(); } return true; } bool QDltParser::checkId(uint32_t startId,uint32_t endId,uint32_t &id, bool perApplication,QString appId) { bool ok = true; if(idendId) ok = false; else { int found = 0; // if found more than once set false for(int j = 0;jappid) { if(id==frame->id) found++; } } if(found>1) ok = false; } if(!ok) { // find new free message id bool found = false; id = startId; do { if(found) { id++; found = false; } if(id>endId) return false; // generate new id for(int j = 0;jappid) { if(id==frame->id) found=true; } } } while(found); } return true; } bool QDltParser::generateId(uint32_t startId,uint32_t endId, bool perApplication) { qDebug() << "generateId" << startId << endId << perApplication; /* go through all messages */ for(int j = 0;jid; if(!checkId(startId,endId,newId,perApplication,frame->appid)) { errorString = QString("Error: Failed to check and generate new id for context %1 in range %2 - %3").arg(frame->idString).arg(startId).arg(endId); return false; } else { if(frame->id!=newId) { frame->id=newId; messageIds[frame->idString]= newId; } } } return true; } bool QDltParser::readFibex(QString &fileName) { QFile file(fileName); qDebug() << "readFibex" << fileName; if (!file.open(QFile::ReadOnly | QFile::Text)) { return false; } QDltFibexPdu *pdu = 0; QDltFibexFrame *frame = 0; QList pdulist; QXmlStreamReader xml(&file); while (!xml.atEnd()) { xml.readNext(); if(xml.isStartElement()) { if(xml.name() == QString("PDU")) { if(!pdu) { pdu = new QDltFibexPdu(); pdu->id = xml.attributes().value(QString("ID")).toString(); } } if(xml.name() == QString("DESC")) { if(pdu) pdu->description = xml.readElementText(); } if(xml.name() == QString("BYTE-LENGTH")) { if(frame) frame->byteLength = xml.readElementText().toInt(); if(pdu) pdu->byteLength = xml.readElementText().toInt(); } if(xml.name() == QString("SIGNAL-INSTANCE")) { // nothing todo } if(xml.name() == QString("SIGNAL-REF")) { if(pdu) { QString text = xml.attributes().value("ID-REF").toString(); pdu->typeInfo = text; #if 0 if (text == "S_BOOL") { pdu->typeInfo = DLT_TYPE_INFO_BOOL; //pdu->typeInfo = QDltArgument::DltTypeInfoBool; } else if (text == "S_SINT8") { pdu->typeInfo = DLT_TYPE_INFO_SINT | DLT_TYLE_8BIT; //pdu->typeInfo = QDltArgument::DltTypeInfoSInt; } else if (text == "S_UINT8") { pdu->typeInfo = DLT_TYPE_INFO_UINT | DLT_TYLE_8BIT; //pdu->typeInfo = QDltArgument::DltTypeInfoUInt; } else if (text == "S_SINT16") { pdu->typeInfo = DLT_TYPE_INFO_SINT | DLT_TYLE_16BIT; //pdu->typeInfo = QDltArgument::DltTypeInfoSInt; } else if (text == "S_UINT16") { pdu->typeInfo = DLT_TYPE_INFO_UINT | DLT_TYLE_16BIT; //pdu->typeInfo = QDltArgument::DltTypeInfoUInt; } else if (text == "S_SINT32") { pdu->typeInfo = DLT_TYPE_INFO_SINT | DLT_TYLE_32BIT; //pdu->typeInfo = QDltArgument::DltTypeInfoSInt; } else if (text == "S_UINT32") { pdu->typeInfo = DLT_TYPE_INFO_UINT | DLT_TYLE_32BIT; //pdu->typeInfo = QDltArgument::DltTypeInfoUInt; } else if (text == "S_SINT64") { pdu->typeInfo = DLT_TYPE_INFO_SINT | DLT_TYLE_64BIT; //pdu->typeInfo = QDltArgument::DltTypeInfoSInt; } else if (text == "S_UINT64") { pdu->typeInfo = DLT_TYPE_INFO_UINT | DLT_TYLE_64BIT; //pdu->typeInfo = QDltArgument::DltTypeInfoUInt; } else if (text == "S_FLOA16") { pdu->typeInfo = DLT_TYPE_INFO_FLOA | DLT_TYLE_16BIT; //pdu->typeInfo = QDltArgument::DltTypeInfoFloa; } else if (text == "S_FLOA32") { pdu->typeInfo = DLT_TYPE_INFO_FLOA | DLT_TYLE_32BIT; //pdu->typeInfo = QDltArgument::DltTypeInfoFloa; } else if (text == "S_FLOA64") { pdu->typeInfo = DLT_TYPE_INFO_FLOA | DLT_TYLE_64BIT; //pdu->typeInfo = QDltArgument::DltTypeInfoFloa; } else if (text == "S_STRG_ASCII") { pdu->typeInfo = DLT_TYPE_INFO_STRG | DLT_SCOD_ASCII; //pdu->typeInfo = QDltArgument::DltTypeInfoStrg; } else if (text == "S_STRG_UTF8") { pdu->typeInfo = DLT_TYPE_INFO_STRG | DLT_SCOD_UTF8; //pdu->typeInfo = QDltArgument::DltTypeInfoStrg; } else if (text == "S_RAWD") { pdu->typeInfo = DLT_TYPE_INFO_RAWD; //pdu->typeInfo = QDltArgument::DltTypeInfoRawd; } else { pdu->typeInfo = 0; } #endif } } if(xml.name() == QString("FRAME")) { if(!frame) { frame = new QDltFibexFrame(); frame->id = xml.attributes().value(QString("ID")).toString().mid(3).toInt(); } } if(xml.name() == QString("MANUFACTURER-EXTENSION")) { // nothing todo } if(xml.name() == QString("MESSAGE_TYPE")) { if(frame) { QString text = xml.readElementText(); #if 0 if (text == QString("DLT_TYPE_LOG")) { frame->messageType = DLT_TYPE_LOG; } else if (text == QString("DLT_TYPE_APP_TRACE")) { frame->messageType = DLT_TYPE_APP_TRACE; } else if (text == QString("DLT_TYPE_NW_TRACE")) { frame->messageType = DLT_TYPE_NW_TRACE; } else if (text == QString("DLT_TYPE_CONTROL")) { frame->messageType = DLT_TYPE_CONTROL; } else { frame->messageType = 0; } #endif } } if(xml.name() == QString("MESSAGE_INFO")) { if(frame) { QString text = xml.readElementText(); frame->messageInfo = text; #if 0 if (text == QString("DLT_LOG_DEFAULT")) { frame->messageInfo = DLT_LOG_DEFAULT; } else if (text == QString("DLT_LOG_OFF")) { frame->messageInfo = DLT_LOG_OFF; } else if (text == QString("DLT_LOG_FATAL")) { frame->messageInfo = DLT_LOG_FATAL; } else if (text == QString("DLT_LOG_ERROR")) { frame->messageInfo = DLT_LOG_ERROR; } else if (text == QString("DLT_LOG_WARN")) { frame->messageInfo = DLT_LOG_WARN; } else if (text == QString("DLT_LOG_INFO")) { frame->messageInfo = DLT_LOG_INFO; } else if (text == QString("DLT_LOG_DEBUG")) { frame->messageInfo = DLT_LOG_DEBUG; } else if (text == QString("DLT_LOG_VERBOSE")) { frame->messageInfo = DLT_LOG_VERBOSE; } else { frame->messageInfo = 0; } #endif } } if(xml.name() == QString("APPLICATION_ID")) { if(frame) { frame->appid = xml.readElementText(); } } if(xml.name() == QString("CONTEXT_ID")) { if(frame) { frame->ctid = xml.readElementText(); } } if(xml.name() == QString("MESSAGE_SOURCE_FILE")) { if(frame) { frame->filename = xml.readElementText(); } } if(xml.name() == QString("MESSAGE_LINE_NUMBER")) { if(frame) { frame->lineNumber = xml.readElementText().toInt(); } } if(xml.name() == QString("PDU-INSTANCE")) { } if(xml.name() == QString("PDU-REF")) { if(frame) { QDltFibexPduRef *ref = new QDltFibexPduRef(); ref->id = xml.attributes().value(QString("ID-REF")).toString(); frame->pdurefreflist.append(ref); frame->pduRefCounter++; } } } if(xml.isEndElement()) { if(xml.name() == QString("PDU")) { if(pdu) { pdulist.append(pdu); pdu = 0; } } if(xml.name() == QString("DESC")) { } if(xml.name() == QString("BYTE-LENGTH")) { } if(xml.name() == QString("SIGNAL-INSTANCE")) { } if(xml.name() == QString("SIGNAL-REF")) { } if(xml.name() == QString("FRAME")) { if(frame) { messages.append(frame); frame = 0; } } if(xml.name() == QString("MANUFACTURER-EXTENSION")) { } if(xml.name() == QString("MESSAGE_TYPE")) { } if(xml.name() == QString("MESSAGE_INFO")) { } if(xml.name() == QString("APPLICATION_ID")) { } if(xml.name() == QString("CONTEXT_ID")) { } if(xml.name() == QString("PDU-INSTANCE")) { } if(xml.name() == QString("PDU-REF")) { } } } if (xml.hasError()) { errorString = "XML Parser error: " + xml.errorString(); return false; } file.close(); /* create PDU Ref links */ foreach(QDltFibexFrame *frame, messages) { foreach(QDltFibexPduRef *ref, frame->pdurefreflist) { foreach(QDltFibexPdu *pdu, pdulist) { if(pdu->id == ref->id) { QDltFibexPdu *pdunew = new QDltFibexPdu(); frame->pdureflist.append(pdunew); pdunew->byteLength = pdu->byteLength; pdunew->description = pdu->description; pdunew->typeInfo = pdu->typeInfo; break; } } } } return true; } bool QDltParser::checkDoubleIds(QString &text,bool perApplication) { int i,j; qDebug() << "checkDoubleIds" << perApplication; /* empty text first */ text.clear(); /* check if double Ids are found */ /* compare each Id against all following Ids */ for(i = 0;iidString == cmpframe->idString && frame->appid == cmpframe->appid) { /* double id found and add it to list */ text += QString("Error: Double Id Text: %1 (%2:%3,%4:%5)\n").arg(frame->idString).arg(frame->filename).arg(frame->lineNumber).arg(cmpframe->filename).arg(cmpframe->lineNumber); } } else { if( frame->idString == cmpframe->idString ) { /* double id found and add id to list */ text += QString("Error: Double Id Text: %1 (%2:%3,%4:%5)\n").arg(frame->idString).arg(frame->filename).arg(frame->lineNumber).arg(cmpframe->filename).arg(cmpframe->lineNumber); } } } } /* check if double Ids are found */ /* compare each Id against all following Ids */ for(i = 0;iid == cmpframe->id && frame->appid == cmpframe->appid) { /* double id found and add id to list */ text += QString("Error: Double Id: %1 (%2:%3,%4:%5)\n").arg(frame->id).arg(frame->filename).arg(frame->lineNumber).arg(cmpframe->filename).arg(cmpframe->lineNumber); } } else { if( frame->id == cmpframe->id ) { /* double id found and add id to list */ text += QString("Error: Double Id: %1 (%2:%3,%4:%5)\n").arg(frame->id).arg(frame->filename).arg(frame->lineNumber).arg(cmpframe->filename).arg(cmpframe->lineNumber); } } } } if(text.isEmpty()) { return true; } else { return false; } } bool QDltParser::parseConfiguration(QString fileName) { /* parse configuration file */ QFile file(fileName); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { errorString = "Cannot open file " + fileName; return false; } while (!file.atEnd()) { QByteArray line = file.readLine(); QString text(line); text.remove(QChar('\n')); text.remove(QChar('\r')); QStringList list = text.split(" "); if(list.size()<1) { // do nothing } else if(list[0]=="clear") { clear(); } else if(list[0]=="read-fibex") { if(list.size()<2) { errorString = "Missing parameters in line " + text; return false; } QString filename = list[1]; if(!readFibex(filename)) { file.close(); return false; } } else if(list[0]=="write-fibex") { if(list.size()<2) { errorString = "Missing parameters in line " + text; return false; } QString filename = list[1]; if(!writeFibex(filename)) { file.close(); return false; } } else if(list[0]=="write-csv") { if(list.size()<2) { errorString = "Missing parameters in line " + text; return false; } QString filename = list[1]; if(!writeCsv(filename)) { file.close(); return false; } } else if(list[0]=="write-id") { if(list.size()<2) { errorString = "Missing parameters in line " + text; return false; } QString filename = list[1]; if(!writeIdHeader(filename,false)) { file.close(); return false; } } else if(list[0]=="write-id-app") { if(list.size()<2) { errorString = "Missing parameters in line " + text; return false; } QString filename = list[1]; if(!writeIdHeader(filename,true)) { file.close(); return false; } } else if(list[0]=="check-double") { QString text; if(!checkDoubleIds(text,false)) { file.close(); return false; } } else if(list[0]=="check-double-app") { QString text; if(!checkDoubleIds(text,true)) { file.close(); return false; } } else if(list[0]=="parse-file") { if(list.size()<2) { errorString = "Missing parameters in line " + text; return false; } QString filename = list[1]; // parse file if(!parseFile(filename)) { file.close(); return false; } // update message ids and application/context ids if(!parseCheck()) { file.close(); return false; } } else if(list[0]=="converte-file") { if(list.size()<2) { errorString = "Missing parameters in line " + text; return false; } QString filename = list[1]; // parse file if(!converteFile(filename)) { file.close(); return false; } } else if(list[0]=="update-id") { if(list.size()<3) { errorString = "Missing parameters in line " + text; return false; } uint32_t startId = list[1].toUInt(); uint32_t endId = list[2].toUInt(); // parse file if(!generateId(startId,endId,false)) { file.close(); return false; } } else if(list[0]=="update-id-app") { if(list.size()<3) { errorString = "Missing parameters in line " + text; return false; } uint32_t startId = list[1].toUInt(); uint32_t endId = list[2].toUInt(); // parse file if(!generateId(startId,endId,true)) { file.close(); return false; } } else { if(!list[0].isEmpty()) { errorString = "Unknown command " + list[0]; return false; } } } file.close(); return true; } dlt-viewer-2.18.0+dfsg/parser/main.cpp0000664000175000017500000000636713001357026017160 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author * Alexander Wenzel * * \file main.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include "mainwindow.h" int main(int argc, char *argv[]) { bool noGui = false; QApplication a(argc, argv); /* parse arguments */ QStringList args = a.arguments(); for(int num=1;num, Original Author # set (CMAKE_AUTOUIC ON) # cmake 2.8.12 doesn't have AUTOUIC ?? QT5_WRAP_UI( UI_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/mainwindow.ui ) #message( STATUS "UI_HEADERS=[${UI_HEADERS}]") add_executable(dlt_parser main.cpp mainwindow.cpp mainwindow.ui qdltparser.cpp ${UI_HEADERS}) target_link_libraries(dlt_parser Qt5::Widgets ) install(TARGETS dlt_parser DESTINATION deploy) dlt-viewer-2.18.0+dfsg/parser/qdltparser.h0000664000175000017500000000672013001357026020053 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author * Alexander Wenzel * * \file qdltparser.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef QDLTPARSER_H #define QDLTPARSER_H #include #include #include #include #include typedef int pid_t; typedef unsigned int speed_t; typedef float float32_t; typedef double float64_t; class QDltCon { public: QDltCon() { } QString conid; QString appid; QString description; QString context; }; class QDltFibexPdu { public: QDltFibexPdu() { byteLength = 0; } QString id; QString description; int32_t byteLength; QString typeInfo; }; class QDltFibexPduRef { public: QDltFibexPduRef() { ref = 0; } QString id; QDltFibexPdu *ref; }; /** * The structure of a Fibex Frame information. */ class QDltFibexFrame { public: QDltFibexFrame() { byteLength=0;messageType=0;pduRefCounter=0;id=0;lineNumber=0; } QString context; QString idString; uint32_t id; int32_t byteLength; uint8_t messageType; QString messageInfo; QString appid; QString ctid; QString filename; int lineNumber; QList pdureflist; QList pdurefreflist; uint32_t pduRefCounter; }; class QDltParser { public: QDltParser(); void clear(); bool parseFile(QString fileName); bool parseConfiguration(QString fileName); bool parseCheck(); bool converteFile(QString fileName); QString getLastError() { return errorString; } QList getMessages() { return messages; } QMap getContexts() { return contexts; } QMap getApplications() { return applications; } QMap getMessageIds() { return messageIds; } bool checkDoubleIds(QString &text, bool perApplication); bool checkId(uint32_t startId, uint32_t endId, uint32_t &id); bool checkId(uint32_t startId,uint32_t endId,uint32_t &id, bool perApplication,QString appId); bool generateId(uint32_t startId, uint32_t endId, bool perApplication); bool writeFibex(QString &fileName); bool writeIdHeader(QString &directory, bool perApplication); bool writeCsv(QString &fileName); bool readFibex(QString &fileName); private: bool parseContextsRegisterApp(QString text); bool parseContextsRegisterContext(QString text); bool parseMessageId(QString text); bool parseMessage(QFile &file, QFile &fileWrite, int &linecounter, QString text); QStringList parseMessageLine(QFile &file, QString &line, int &linecounter); void parseMessageStringList(QDltFibexFrame *frame,QFile &fileWrite,QStringList &list,bool withid); void parseMessageParameter(QString argtext,QDltFibexFrame *frame); QString errorString; QMap applications; QMap contexts; QMap messageIds; QList messages; }; #endif // QDLTPARSER_H dlt-viewer-2.18.0+dfsg/parser/mainwindow.cpp0000664000175000017500000005703513001357026020406 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author * Alexander Wenzel * * \file mainwindow.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include #include #include #include #include #include #include #include #include "mainwindow.h" #include "ui_mainwindow.h" #include "version.h" const char* commandLineOptions = "" \ "Call: dlt_parser [options]\n" \ "DLT parser is used to generate Fibex XML files for non verbose DLT messages.\n" \ "Each option can only be used once. For more complex configurations use a configuration file.\n" \ "\n" \ "Options:\n" \ " --no-gui start without gui\n" \ " --parse-file filename Parse a source code file\n" \ " --parse-dir dirname Parse a complete directory recursively (*.h;*.c;*.cpp;*.hpp)\n" \ " --parse-cfg filename Parse a configuration file contianing special commands.\n" \ " --converte-file filename Converte a source code file\n" \ " --converte-dir dirname Comverte a complete directory recursively (*.h;*.c;*.cpp;*.hpp)\n" \ " --read-fibex filename Read a fibex file to append new messages.\n" \ " --update-id startId endId Update the message IDs.\n" \ " --update-id-app startId endId Update the message IDs unique per application.\n" \ " --check-double Check the mesage IDs if they are unique.\n" \ " --check-double-app Check the message IDs if they are unique per application.\n" \ " --write-fibex filename Generate the fibex XML file.\n" \ " --write-csv filename Generate a CSV file containng all parsed log messages.\n" \ " --write-id dirname Generate the id header\n" \ " --write-id-app dirname start without gui\n" \ ""; MainWindow::MainWindow(bool silent,QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); /* show warning about limitations of software */ if(!silent) { QMessageBox::warning(0, QString("DLT Parser"), QString("Warning: This tool is a reference tool for parsing non verbose DLT messages.\nNot for usage in production.")); } filenameWidget = new QLabel(); statusBar()->addWidget(filenameWidget); checkDouble = false; checkDoubleApp = false; noGui = false; } MainWindow::~MainWindow() { delete ui; } int MainWindow::argsParser() { if(!argReadFibex.isEmpty()) { /* read Fibex */ parser.readFibex(argWriteFibex); } if(!argParseCfg.isEmpty()) { if(!parser.parseConfiguration(argParseCfg)) { std::cout << "Error: Parse Cfg: "<< parser.getLastError().toLatin1().data() << std::endl; return -1; } // update message ids and application/context ids if(!parser.parseCheck()) { std::cout << "Error: Parse Cfg: "<< parser.getLastError().toLatin1().data() << std::endl; return -1; } if(!noGui) /* update tree */ updateTree(); } if(!argParseFile.isEmpty()) { /* parse file */ if(!parser.parseFile(argParseFile)) { std::cout << "Error: Parse File: "<< parser.getLastError().toLatin1().data() << std::endl; return -1; } // update message ids and application/context ids if(!parser.parseCheck()) { std::cout << "Error: Parse File: "<< parser.getLastError().toLatin1().data() << std::endl; return -1; } if(!noGui) /* update tree */ updateTree(); } if(!argParseDir.isEmpty()) { /* create progress dialog */ QProgressDialog progress("Parsing Directory...", "Abort parsing", 0, 100, this); progress.setWindowModality(Qt::WindowModal); progress.setMinimumDuration(1000); /* go through all files in the directory */ if(!parseDirectory(argParseDir,parseTypeContexts,false,true,progress)) { progress.close(); std::cout << "Error: Parse Directory: "<< parser.getLastError().toLatin1().data() << std::endl; return -1; } progress.close(); // update message ids and application/context ids if(!parser.parseCheck()) { std::cout << "Error: Parse Directory: "<< parser.getLastError().toLatin1().data() << std::endl; return -1; } if(!noGui) /* update tree */ updateTree(); progress.close(); } if(!argConverteFile.isEmpty()) { /* parse file */ if(!parser.converteFile(argConverteFile)) { std::cout << "Error: Converte File: "<< parser.getLastError().toLatin1().data() << std::endl; return -1; } } if(!argConverteDir.isEmpty()) { /* create progress dialog */ QProgressDialog progress("Parsing Directory...", "Abort parsing", 0, 100, this); progress.setWindowModality(Qt::WindowModal); progress.setMinimumDuration(1000); /* go through all files in the directory */ if(!parseDirectory(argConverteDir,parseTypeContexts,true,true,progress)) { progress.close(); std::cout << "Error: Converte Directory: "<< parser.getLastError().toLatin1().data() << std::endl; return -1; } progress.close(); } if(!argUpdateIdStart.isEmpty() && !argUpdateIdEnd.isEmpty()) { /* update Ids */ if(!parser.generateId(argUpdateIdStart.toUInt(),argUpdateIdEnd.toUInt(),false)) { std::cout << "Error: Update IDs: "<< parser.getLastError().toLatin1().data() << std::endl; return -1; } } if(!argUpdateIdAppStart.isEmpty() && !argUpdateIdAppEnd.isEmpty()) { /* update Ids App */ if(!parser.generateId(argUpdateIdAppStart.toUInt(),argUpdateIdAppEnd.toUInt(),true)) { std::cout << "Error: Update IDs App: "<< parser.getLastError().toLatin1().data() << std::endl; return -1; } } if(checkDouble) { /* check for double Ids */ QString text; if(!parser.checkDoubleIds(text,false)) { std::cout << "Error: Check Double: "<< parser.getLastError().toLatin1().data() << std::endl; std::cout << "Double Ids: "<< text.toLatin1().data() << std::endl; return -1; } } if(checkDoubleApp) { /* check for double Ids App */ QString text; if(!parser.checkDoubleIds(text,true)) { std::cout << "Error: Check Double IDs App: "<< parser.getLastError().toLatin1().data() << std::endl; std::cout << "Double Ids: "<< text.toLatin1().data() << std::endl; return -1; } } if(!argWriteFibex.isEmpty()) { /* write Fibex */ if(!parser.writeFibex(argWriteFibex)) { std::cout << "Error: Write Fibex: "<< parser.getLastError().toLatin1().data() << std::endl; return -1; } } if(!argWriteCsv.isEmpty()) { /* write CSV */ if(!parser.writeCsv(argWriteCsv)) { std::cout << "Error: Write CSV: "<< parser.getLastError().toLatin1().data() << std::endl; return -1; } } if(!argWriteId.isEmpty()) { /* write IDs Header */ if(!parser.writeIdHeader(argWriteId,false)) { std::cout << "Error: Write IDs Header: "<< parser.getLastError().toLatin1().data() << std::endl; return -1; } } if(!argWriteIdApp.isEmpty()) { /* write IDs Header App */ if(!parser.writeIdHeader(argWriteIdApp,true)) { std::cout << "Error: Write IDs Header App: "<< parser.getLastError().toLatin1().data() << std::endl; return -1; } } return 0; } void MainWindow::updateTree() { QTreeWidgetItem *item; QString text; QDltFibexFrame *frame; QDltFibexPdu *pdu; /* clear ID messages list */ //frames->takeChildren(); ui->treeWidget->clear(); QList messages = parser.getMessages(); /* add all DLT messages to list */ for(int i = 0;iid).arg("DLT_TYPE_LOG").arg(frame->messageInfo).arg(frame->appid).arg(frame->ctid); item = new QTreeWidgetItem(0); //frames->addChild(item); ui->treeWidget->addTopLevelItem(item); item->setText(0,frame->idString/*QString("%1").arg(frame->id,10,10,QLatin1Char(' '))*/); // message id item->setText(1,QString("%1").arg(frame->id,10,10,QLatin1Char(' '))); // message id item->setText(2,frame->context); // context item->setText(3,frame->ctid); // context id item->setText(4,frame->appid); // app id item->setText(5,frame->messageInfo); // log level item->setText(6,QString("%1").arg(frame->lineNumber)); // line number item->setText(7,frame->filename); // filename text.clear(); for(int j = 0;jpdureflist.size();j++) { pdu= frame->pdureflist.at(j); //itempdu = new QTreeWidgetItem(item); //item->addChild(itempdu); if(j!=0) text += " "; if(!pdu->description.isEmpty()) { text += QString("%1").arg(pdu->description); } else { text += QString("%%1").arg(j+1); // arg(pdu->byteLength).arg(pdu->typeInfo); } //itempdu->setText(0,text); } item->setText(8,text); // payload } updateTreeApplications(); updateTreeContexts(); updateMessageIds(); } void MainWindow::updateMessageIds() { ui->treeWidgetMessageIds->clear(); QMap messageIds = parser.getMessageIds(); QMapIterator i(messageIds); while (i.hasNext()) { i.next(); QTreeWidgetItem *item = new QTreeWidgetItem(0); ui->treeWidgetMessageIds->addTopLevelItem(item); item->setText(0,i.key()); item->setText(1,QString("%1").arg(i.value())); } } void MainWindow::updateTreeApplications() { ui->treeWidgetApplications->clear(); QMap applications = parser.getApplications(); QMapIterator i(applications); while (i.hasNext()) { i.next(); QTreeWidgetItem *item = new QTreeWidgetItem(0); ui->treeWidgetApplications->addTopLevelItem(item); item->setText(0,i.key()); item->setText(1,i.value()); } } void MainWindow::updateTreeContexts() { ui->treeWidgetContexts->clear(); QMap contexts = parser.getContexts(); QMapIterator i(contexts); while (i.hasNext()) { i.next(); QDltCon* con = i.value(); QTreeWidgetItem *item = new QTreeWidgetItem(0); ui->treeWidgetContexts->addTopLevelItem(item); item->setText(0,con->context); item->setText(1,con->conid); item->setText(2,con->appid); item->setText(3,con->description); } } bool MainWindow::parseDirectory(QString dirName, parseType type,bool convert,bool create,QProgressDialog &progress) { QFileInfoList list; QStringList filter; QDir dir(dirName); /* create filter list for files */ filter.append(QString("*.h")); filter.append(QString("*.c")); filter.append(QString("*.cpp")); filter.append(QString("*.cxx")); /* parse files in current directory */ list = dir.entryInfoList(filter,QDir::Files); progress.setMaximum(progress.maximum()+list.size()); for(int i = 0;isetText(""); } void MainWindow::on_action_Open_triggered() { QString fileName; /* request filename from user */ fileName = QFileDialog::getOpenFileName(this, tr("DLT Non verbose Fibex file"), "", tr("Description Files (*.xml);;All files (*.*)")); if(fileName.isEmpty()) { /* no file selected from user */ return; } /* update file name */ fibexFileName = fileName; filenameWidget->setText(fibexFileName); /* read Fibex file */ if(!parser.readFibex(fileName)) { QMessageBox::warning(this,"Open Fibex",parser.getLastError()); } /* update tree */ updateTree(); } void MainWindow::on_actionExport_CSV_triggered() { QString fileName; QFile file; /* request filename from user */ fileName = QFileDialog::getSaveFileName(this, tr("Export to CSV"), "", tr("Description Files (*.csv);;All files (*.*)")); if(fileName.isEmpty()) { /* no file selected from user */ return; } /* write CSV */ if(!parser.writeCsv(fileName)) { QMessageBox::warning(this,"Export CSV",parser.getLastError()); } } void MainWindow::on_actionExit_triggered() { QMessageBox::information(0, QString("File Exit"),QString("Feature not supported yet!")); } void MainWindow::on_actionCheck_double_IDs_triggered() { QString text; if(!parser.checkDoubleIds(text,false)) { /* double Ids found and display list of double Ids */ QMessageBox msgBox; msgBox.setText("Double IDs found. Please check the details for further information."); msgBox.setDetailedText(text); msgBox.setIcon(QMessageBox::Critical); msgBox.exec(); } else { /* no double Ids found */ QMessageBox msgBox; msgBox.setText("No double IDs found."); msgBox.setIcon(QMessageBox::Information); msgBox.exec(); } } void MainWindow::on_actionCheck_double_IDs_per_context_triggered() { QString text; if(!parser.checkDoubleIds(text,true)) { /* double Ids found and display list of double Ids */ QMessageBox msgBox; msgBox.setText("Double IDs per context found. Please check the details for further information."); msgBox.setDetailedText(text); msgBox.setIcon(QMessageBox::Critical); msgBox.exec(); } else { /* no double Ids found */ QMessageBox msgBox; msgBox.setText("No double IDs found."); msgBox.setIcon(QMessageBox::Information); msgBox.exec(); } } void MainWindow::on_actionParseFile_triggered() { QString fileName; /* request filename from user */ fileName = QFileDialog::getOpenFileName(this, tr("Parse Source file"), "", tr("Source file (*.c *.cpp *.cxx *.h *.hpp *.hxx);;All files (*.*)")); if(fileName.isEmpty()) { /* no directory selected, return */ return; } // parse file if(!parser.parseFile(fileName)) { QMessageBox::warning(this,"Parse File",parser.getLastError()); return; } // update message ids and application/context ids if(!parser.parseCheck()) { QMessageBox::warning(this,"Parse File",parser.getLastError()); return; } /* update tree */ updateTree(); } void MainWindow::on_actionParseDirectory_triggered() { QString dirName; /* request directory name from user */ dirName = QFileDialog::getExistingDirectory(this,tr("Parse Directory")); if(dirName.isEmpty()) { /* no directory selected, return */ return; } /* create progress dialog */ QProgressDialog progress("Parsing Directory...", "Abort parsing", 0, 100, this); progress.setWindowModality(Qt::WindowModal); progress.setMinimumDuration(1000); /* go through all files in the directory */ if(!parseDirectory(dirName,parseTypeContexts,false,true,progress)) { progress.close(); QMessageBox::warning(this,"Parse Directory",parser.getLastError()); return; } progress.close(); // update message ids and application/context ids if(!parser.parseCheck()) { QMessageBox::warning(this,"Parse Directory",parser.getLastError()); return; } /* update tree */ updateTree(); } void MainWindow::on_actionParseConfiguration_triggered() { QString fileName; /* request filename from user */ fileName = QFileDialog::getOpenFileName(this, tr("Parse Configuration file"), "", tr("Configuration file (*.*);;All files (*.*)")); if(fileName.isEmpty()) { /* no directory selected, return */ return; } if(!parser.parseConfiguration(fileName)) { QMessageBox::warning(this,"Parse Configuration",parser.getLastError()); return; } /* update tree */ updateTree(); } void MainWindow::on_actionConvertFile_triggered() { QString fileName; /* request filename from user */ fileName = QFileDialog::getOpenFileName(this, tr("Parse and convert Source file"), "", tr("Source file (*.c;*.cpp;*.cxx);;All files (*.*)")); if(fileName.isEmpty()) { /* no directory selected, return */ return; } /* parse and convert file to find all log entries */ if(!parser.converteFile(fileName)) { QMessageBox::warning(this,"Converte File",parser.getLastError()); return; } /* update tree */ updateTree(); } void MainWindow::on_actionConvertDirectory_triggered() { QString dirName; /* request directory name from user */ dirName = QFileDialog::getExistingDirectory(this,tr("Parse and convert Directory")); if(dirName.isEmpty()) { /* no directory selected, return */ return; } /* create progress dialog */ QProgressDialog progress("Convert Directory...", "Abort converting", 0, 100, this); progress.setWindowModality(Qt::WindowModal); /* go through all files in the directory */ if(!parseDirectory(dirName,parseTypeMessages,true,true,progress)) { QMessageBox::warning(this,"Converte Directory",parser.getLastError()); return; } /* update tree */ updateTree(); /* information about end of operation */ QMessageBox::information(0, QString("DLT Parser"), QString("Parsing and converting directory finished!")); } void MainWindow::on_actionGenerate_Id_Header_triggered() { QString dirName; /* request directory name from user */ dirName = QFileDialog::getExistingDirectory(this,tr("Generate Id Header Directory")); if(dirName.isEmpty()) { /* no directory selected, return */ return; } if(!parser.writeIdHeader(dirName,false)) { QMessageBox::warning(this,"Generate Id Header:",parser.getLastError()); return; } } void MainWindow::on_actionGenerate_Id_Header_per_context_triggered() { QString dirName; /* request directory name from user */ dirName = QFileDialog::getExistingDirectory(this,tr("Generate Id Header per application Directory")); if(dirName.isEmpty()) { /* no directory selected, return */ return; } if(!parser.writeIdHeader(dirName,true)) { QMessageBox::warning(this,"Generate Id Header:",parser.getLastError()); return; } } void MainWindow::on_actionGenerate_Fibex_XML_triggered() { QString fileName; /* request filename from user */ fileName = QFileDialog::getSaveFileName(this, tr("DLT Non verbose Fibex file"), "", tr("Description Files (*.xml);;All files (*.*)")); if(fileName.isEmpty()) { /* no file selected from user */ return; } fibexFileName = fileName; filenameWidget->setText(fibexFileName); if(!parser.writeFibex(fibexFileName)) { QMessageBox::warning(this,"Save As",parser.getLastError()); } } void MainWindow::on_actionUpdate_IDs_triggered() { /* start with message id provided by user */ bool ok; uint32_t messageIdStart=1; QString text = QInputDialog::getText(this, tr("Update IDs)"), tr("Start Message Id:"), QLineEdit::Normal, QString("%1").arg(1), &ok); if (ok) messageIdStart = text.toUInt(); else return; uint32_t messageIdEnd=1; text = QInputDialog::getText(this, tr("Update IDs)"), tr("End Message Id:"), QLineEdit::Normal, QString("%1").arg(0xffffffff), &ok); if (ok) messageIdEnd = text.toUInt(); else return; if(!parser.generateId(messageIdStart,messageIdEnd,false)) { QMessageBox::warning(this,"Update IDs",parser.getLastError()); } /* update tree */ updateTree(); } void MainWindow::on_actionUpdate_IDs_per_application_triggered() { /* start with message id provided by user */ bool ok; uint32_t messageIdStart=1; QString text = QInputDialog::getText(this, tr("Update IDs)"), tr("Start Message Id per App:"), QLineEdit::Normal, QString("%1").arg(1), &ok); if (ok) messageIdStart = text.toUInt(); else return; uint32_t messageIdEnd=1; text = QInputDialog::getText(this, tr("Update IDs)"), tr("End Message Id per App:"), QLineEdit::Normal, QString("%1").arg(0xffffffff), &ok); if (ok) messageIdEnd = text.toUInt(); else return; if(!parser.generateId(messageIdStart,messageIdEnd,true)) { QMessageBox::warning(this,"Update IDs per application",parser.getLastError()); } /* update tree */ updateTree(); } dlt-viewer-2.18.0+dfsg/parser/mainwindow.h0000664000175000017500000000711313001357026020043 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author * Alexander Wenzel * * \file mainwindow.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include "qdltparser.h" extern const char* commandLineOptions; class DltCon { public: DltCon() { } QString conid; QString appid; QString description; QString context; }; class DltFibexPdu { public: DltFibexPdu() { byteLength = 0; } QString id; QString description; int32_t byteLength; QString typeInfo; }; class DltFibexPduRef { public: DltFibexPduRef() { ref = 0; } QString id; DltFibexPdu *ref; }; /** * The structure of a Fibex Frame information. */ class DltFibexFrame { public: DltFibexFrame() { byteLength=0;messageType=0;pduRefCounter=0;id=0;lineNumber=0; } QString idString; int id; int32_t byteLength; uint8_t messageType; QString messageInfo; QString appid; QString ctid; QString filename; int lineNumber; QList pdureflist; QList pdurefreflist; uint32_t pduRefCounter; }; namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: enum parseType { parseTypeContexts,parseTypeMessages }; explicit MainWindow(bool silent,QWidget *parent = 0); ~MainWindow(); QStringList parseLine(QFile &file,QString &line,int &linecounter); bool parseDirectory(QString dirName, parseType type, bool convert, bool create, QProgressDialog &progress); void updateTree(); void updateTreeApplications(); void updateTreeContexts(); void updateMessageIds(); int argsParser(); // options QString argParseFile,argParseDir,argParseCfg; QString argConverteFile,argConverteDir; QString argReadFibex; QString argWriteFibex,argWriteCsv,argWriteId,argWriteIdApp; QString argUpdateIdStart,argUpdateIdAppStart; QString argUpdateIdEnd,argUpdateIdAppEnd; bool checkDouble,checkDoubleApp; bool noGui; QString fibexFileName; QLabel *filenameWidget; private: Ui::MainWindow *ui; QDltParser parser; private slots: void on_actionInfo_triggered(); void on_actionCommandline_options_triggered(); void on_action_New_triggered(); void on_action_Open_triggered(); void on_actionExport_CSV_triggered(); void on_actionExit_triggered(); void on_actionCheck_double_IDs_triggered(); void on_actionParseFile_triggered(); void on_actionParseDirectory_triggered(); void on_actionConvertFile_triggered(); void on_actionConvertDirectory_triggered(); void on_actionParseConfiguration_triggered(); void on_actionGenerate_Id_Header_triggered(); void on_actionGenerate_Fibex_XML_triggered(); void on_actionCheck_double_IDs_per_context_triggered(); void on_actionGenerate_Id_Header_per_context_triggered(); void on_actionUpdate_IDs_triggered(); void on_actionUpdate_IDs_per_application_triggered(); }; #endif // MAINWINDOW_H dlt-viewer-2.18.0+dfsg/parser/examples/0000775000175000017500000000000013001357026017332 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/parser/examples/example_5/0000775000175000017500000000000013001357026021211 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/parser/examples/example_5/mainwindow.ui0000664000175000017500000000504613001357026023731 0ustar potyrapotyra MainWindow 0 0 400 215 DLT Embedded Test TCP Server Port 8888 Message: All Types of parameters Message: All parameter combinations Message: Multi messages Send SendFile 0 0 0 400 23 TopToolBarArea false dlt-viewer-2.18.0+dfsg/parser/examples/example_5/example5.cpp0000664000175000017500000000474413001357026023446 0ustar potyrapotyra#include "example5.h" #include "dlt_id.h" DLT_DECLARE_CONTEXT(DLTtest1); DLT_DECLARE_CONTEXT(DLTtest2); DLT_DECLARE_CONTEXT(DLTtest3); DLT_DECLARE_CONTEXT(DLTtest4); void example5_init() { dlt_user_init(); DLT_REGISTER_APP("ALOG","Test Application for Logging"); DLT_REGISTER_CONTEXT_APP(DLTtest1,"TES1","ALOG","Test Context for Logging"); DLT_REGISTER_CONTEXT_APP(DLTtest2,"TES2","ALOG","Test 2 Context for Logging"); DLT_REGISTER_CONTEXT_APP(DLTtest3,"TES3","ALOG","Test 3 Context for Logging"); DLT_REGISTER_CONTEXT_APP(DLTtest4,"TES4","ALOG","Test 4 Context for Logging"); DLT_LOG1(DLTtest1,DLT_LOG_INFO,DLT_STRING("Hello BMW")); } void example5_test1() { const char data[] = "Hello world"; DLT_LOG1(DLTtest2,DLT_LOG_INFO,DLT_UINT8(255)); DLT_LOG1(DLTtest2,DLT_LOG_INFO,DLT_UINT16(65535)); DLT_LOG1(DLTtest2,DLT_LOG_INFO,DLT_UINT32(4294967295)); DLT_LOG1(DLTtest2,DLT_LOG_INFO,DLT_UINT64(18446744073709551615)); DLT_LOG1(DLTtest2,DLT_LOG_INFO,DLT_INT8(-128)); DLT_LOG1(DLTtest2,DLT_LOG_INFO,DLT_INT16(-32768)); DLT_LOG1(DLTtest2,DLT_LOG_INFO,DLT_INT32(-2147483648)); DLT_LOG1(DLTtest2,DLT_LOG_INFO,DLT_INT64(-9223372036854775808)); DLT_LOG1(DLTtest2,DLT_LOG_INFO,DLT_INT(109)); DLT_LOG1(DLTtest2,DLT_LOG_INFO,DLT_UINT(110)); DLT_LOG1(DLTtest2,DLT_LOG_INFO,DLT_BOOL(111)); DLT_LOG1(DLTtest2,DLT_LOG_INFO,DLT_STRING("STRING 112 message")); DLT_LOG1(DLTtest2,DLT_LOG_INFO,DLT_CSTRING("CSTRING 113 message")); DLT_LOG3(DLTtest2,DLT_LOG_INFO,DLT_CSTRING("Foo"),DLT_INT(1),DLT_CSTRING("bar")); DLT_LOG1(DLTtest2,DLT_LOG_INFO,DLT_FLOAT32(1.1)); DLT_LOG1(DLTtest2,DLT_LOG_INFO,DLT_FLOAT64(1.2)); DLT_LOG1(DLTtest2,DLT_LOG_INFO,DLT_RAW((void*)data,sizeof(data))); } void example5_test2() { DLT_LOG0(DLTtest3,DLT_LOG_INFO); DLT_LOG1(DLTtest3,DLT_LOG_INFO,DLT_INT(21)); DLT_LOG2(DLTtest3,DLT_LOG_INFO,DLT_INT(31),DLT_INT(32)); DLT_LOG3(DLTtest3,DLT_LOG_INFO,DLT_INT(41),DLT_INT(42),DLT_INT(43)); DLT_LOG4(DLTtest3,DLT_LOG_INFO,DLT_INT(51),DLT_INT(52),DLT_INT(53),DLT_INT(54)); DLT_LOG5(DLTtest3,DLT_LOG_INFO,DLT_INT(61),DLT_INT(62),DLT_INT(63),DLT_INT(64),DLT_INT(65)); DLT_LOG6(DLTtest3,DLT_LOG_INFO,DLT_INT(71),DLT_INT(72),DLT_INT(73),DLT_INT(74),DLT_INT(75),DLT_INT(76)); } void example5_test3(int repeat) { for(int num=0;num * * \file dlt.c * For further information see http://www.genivi.org/. * @licence end@ */ #include #include #include #include #include "dlt.h" /* Global variables used for DLT implementation */ DltUser dltuser; unsigned char DLT_BUFFER[DLT_BUFFER_SIZE]; /* Variable to check if DLt is already initialised */ int dlt_user_initialised = 0; void dlt_set_id(char *id,const char *text) { id[0] = 0; id[1] = 0; id[2] = 0; id[3] = 0; if (!text) return; if (text[0]!=0) id[0] = text[0]; else return; if (text[1]!=0) id[1] = text[1]; else return; if (text[2]!=0) id[2] = text[2]; else return; if (text[3]!=0) id[3] = text[3]; else return; } int dlt_user_init() { /* allocate buffer memory, dynamically or statically configured */ dltuser.buffer = (unsigned char*) DLT_BUFFER_ALLOCATE; /* initialise buffer pointers */ dltuser.buf_write = dltuser.buffer; dltuser.buf_read = dltuser.buffer; dltuser.buf_end = dltuser.buffer; return 0; } int dlt_user_free() { /* free buffer if dynamically allocated */ DLT_BUFFER_FREE(dltuser.buffer); return 0; } int dlt_register_app(const char *appid, const char * description) { DLT_SEM_LOCK(); /* initialise DLT, if not done already */ if(!dlt_user_initialised) { dlt_user_init(); dlt_user_initialised=1; } /* no more implementation done in DLT embedded */ /* app id must not be stored */ DLT_SEM_FREE(); return 0; } int dlt_unregister_app(void) { DLT_SEM_LOCK(); /* nothing to be done in DLT embedded */ DLT_SEM_FREE(); return 0; } int dlt_register_context(DltContext *log, const char *appid, const char *contextid, const char * description) { DLT_SEM_LOCK(); /* initialise DLT, if not done already */ if(!dlt_user_initialised) { dlt_user_init(); dlt_user_initialised=1; } /* reset message counter */ log->mcnt = 0; /* store ids for verbose mode */ log->appid = appid; log->contextid = contextid; /* set the default log level */ log->loglevel = DLT_DEFAULT_LOG_LEVEL; DLT_SEM_FREE(); return 0; } int dlt_unregister_context(DltContext *log) { DLT_SEM_LOCK(); /* nothing to be done in DLT embedded */ DLT_SEM_FREE(); return 0; } int dlt_set_log_level(DltContext *log,int loglevel) { if(loglevel == DLT_LOG_DEFAULT) log->loglevel = DLT_DEFAULT_LOG_LEVEL; else log->loglevel = loglevel; return 0; } int dlt_log(DltContext* a_context, int a_logLevel, uint32 a_dltId, int a_numberOfArguments, ...) { void * data; int len; if (a_logLevel <= a_context->loglevel) { DLT_SEM_LOCK(); if (dlt_user_log_write_start_id(a_context, a_logLevel, a_dltId)) { int i; DltArgumentType l_argumentType; va_list l_arguments; va_start(l_arguments, a_numberOfArguments); for (i = 0; i < a_numberOfArguments; ++i) { l_argumentType = va_arg(l_arguments, DltArgumentType); switch (l_argumentType) { case DLT_ARG_CSTRING: dlt_user_log_write_string(a_context, va_arg(l_arguments, char*)); break; case DLT_ARG_STRING: dlt_user_log_write_string(a_context, va_arg(l_arguments, char*)); break; case DLT_ARG_INT8: dlt_user_log_write_int8(a_context, va_arg(l_arguments, var_sint8)); break; case DLT_ARG_INT16: dlt_user_log_write_int16(a_context, va_arg(l_arguments, var_sint16)); break; case DLT_ARG_INT32: dlt_user_log_write_int32(a_context, va_arg(l_arguments, var_sint32)); break; case DLT_ARG_INT64: dlt_user_log_write_int64(a_context, va_arg(l_arguments, var_sint64)); break; case DLT_ARG_UINT8: dlt_user_log_write_uint8(a_context, va_arg(l_arguments, var_uint8)); break; case DLT_ARG_BOOL: dlt_user_log_write_bool(a_context, va_arg(l_arguments, var_bool)); break; case DLT_ARG_UINT16: dlt_user_log_write_uint16(a_context, va_arg(l_arguments, var_uint16)); break; case DLT_ARG_UINT32: dlt_user_log_write_uint32(a_context, va_arg(l_arguments, var_uint32)); break; case DLT_ARG_UINT64: dlt_user_log_write_uint64(a_context, va_arg(l_arguments, var_uint64)); break; case DLT_ARG_FLOAT32: dlt_user_log_write_float32(a_context, va_arg(l_arguments, var_float32)); break; case DLT_ARG_FLOAT64: dlt_user_log_write_float64(a_context, va_arg(l_arguments, var_float64)); break; case DLT_ARG_RAW: data = va_arg(l_arguments, void*); len = va_arg(l_arguments, var_uint16); dlt_user_log_write_raw(a_context, data,len); break; } } va_end(l_arguments); dlt_user_log_write_finish(a_context); } DLT_SEM_FREE(); DLT_CALLBACK_DATA_AVAILABLE(); } return 0; } int dlt_user_log_write_start_id(DltContext *log,int loglevel, uint32 messageid) { #ifdef DLT_USE_STORAGE_HEADER /* optional write storage header "DLT"+x01 */ DltStorageHeader *storageheader; #endif /* DLT_USE_STORAGE_HEADER */ /* check if message fits buffer */ if( (dltuser.buf_write < dltuser.buf_read) ) { if( (dltuser.buf_write + DLT_MESSAGE_MAX_SIZE) > dltuser.buf_read) { /* buffer is full, discard message */ log->mcnt++; return 0; } } else if((dltuser.buf_write + DLT_MESSAGE_MAX_SIZE) > (dltuser.buffer + DLT_BUFFER_SIZE)) { /* message could exceed end of buffer */ /* check if message fits beginning of buffer */ if((dltuser.buffer + DLT_MESSAGE_MAX_SIZE) > dltuser.buf_read) { /* message does not fit, discard */ log->mcnt++; return 0; } else { /* message fits beginning of buffer */ dltuser.buf_write = dltuser.buffer; } } #ifdef DLT_USE_STORAGE_HEADER /* optional write storage header "DLT"+x01 */ storageheader = (DltStorageHeader*) (dltuser.buf_write); storageheader->pattern[0] = 'D'; storageheader->pattern[1] = 'L'; storageheader->pattern[2] = 'T'; storageheader->pattern[3] = 0x01; storageheader->seconds = 0; storageheader->microseconds = 0; storageheader->ecu[0] = 'E'; storageheader->ecu[1] = 'C'; storageheader->ecu[2] = 'U'; storageheader->ecu[3] = 0; dltuser.buf_write += sizeof(DltStorageHeader); #endif /* DLT_USE_STORAGE_HEADER */ #ifdef DLT_USE_SERIAL_HEADER /* optional write serial header "DLS"+x01 */ dltuser.buf_write[0] = 'D'; dltuser.buf_write[1] = 'L'; dltuser.buf_write[2] = 'S'; dltuser.buf_write[3] = 0x01; dltuser.buf_write += 4; #endif /* DLT_USE_SERIAL_HEADER */ /* write standardheader */ dltuser.standardheader = (DltStandardHeader*) (dltuser.buf_write); dltuser.standardheader->htyp = DLT_HTYP_PROTOCOL_VERSION1 ; #ifdef DLT_VERBOSE_MODE dltuser.standardheader->htyp |= DLT_HTYP_UEH; #endif /* DLT_VERBOSE_MODE */ #if (BYTE_ORDER==BIG_ENDIAN) dltuser.standardheader->htyp |= DLT_HTYP_MSBF; #endif dltuser.standardheader->mcnt = log->mcnt++; dltuser.standardheader->len = sizeof(DltStandardHeader); dltuser.buf_write += sizeof(DltStandardHeader); #ifdef DLT_VERBOSE_MODE dltuser.extendedheader = (DltExtendedHeader*) (dltuser.buf_write); dltuser.extendedheader->msin = DLT_MSIN_VERB | (DLTYPE_LOG << 1); if(loglevel < DLT_LOG_OFF) dltuser.extendedheader->msin |= ( DLT_LOG_OFF & 0x0f ) << 4; else dltuser.extendedheader->msin |= ( loglevel & 0x0f ) << 4; dltuser.extendedheader->noar = 0; dlt_set_id(dltuser.extendedheader->apid,log->appid); dlt_set_id(dltuser.extendedheader->ctid,log->contextid); dltuser.buf_write += sizeof(DltExtendedHeader); dltuser.standardheader->len += sizeof(DltExtendedHeader); #else /* DLT_VERBOSE_MODE */ /* write message id for non-verbose mode */ memcpy(dltuser.buf_write,&(messageid),sizeof(uint32)); dltuser.buf_write += sizeof(uint32); dltuser.standardheader->len += sizeof(uint32); #endif /* DLT_VERBOSE_MODE */ return 1; } int dlt_user_log_write_start(DltContext *log,int loglevel) { return dlt_user_log_write_start_id(log,loglevel,DLT_USER_DEFAULT_MSGID); } int dlt_user_log_write_finish(DltContext *log) { /* set len parameter to correct byte order */ dltuser.standardheader->len = DLT_HTOBE_16(dltuser.standardheader->len); /* update pointer to end of buffer */ if( (dltuser.buf_write >= dltuser.buf_read) ) { dltuser.buf_end = dltuser.buf_write; } return 0; } int dlt_user_log_read(unsigned char **data) { uint16 length; DLT_SEM_LOCK(); if((dltuser.buf_end == dltuser.buf_read) && (dltuser.buf_write < dltuser.buf_read)) { dltuser.buf_read = dltuser.buffer; dltuser.buf_end = dltuser.buf_write; } *data = dltuser.buf_read; length = dltuser.buf_end-dltuser.buf_read; DLT_SEM_FREE(); return length; } int dlt_user_log_read_ack(uint16 length) { DLT_SEM_LOCK(); if(dltuser.buf_write > dltuser.buf_read ) { if(length > (dltuser.buf_end-dltuser.buf_read)) { DLT_SEM_FREE(); return -1; } else { dltuser.buf_read += length; DLT_SEM_FREE(); return 0; } } else { if(length > (dltuser.buf_end-dltuser.buf_read)) { DLT_SEM_FREE(); return -1; } else if(length == (dltuser.buf_end-dltuser.buf_read)) { dltuser.buf_end = dltuser.buf_write; dltuser.buf_read = dltuser.buffer; DLT_SEM_FREE(); return 0; } else { dltuser.buf_read += length; DLT_SEM_FREE(); return 0; } } } int dlt_user_log_write_buffer(DltContext *log,const void *data, uint16 length, uint32 type,int with_length) { uint16 lengthvalue; #ifdef DLT_VERBOSE_MODE uint32 *dltype; #endif /* DLT_VERBOSE_MODE */ #ifdef DLT_VERBOSE_MODE if((dltuser.standardheader->len + length + (with_length?sizeof(uint16):0) + sizeof(uint32)) > DLT_MESSAGE_MAX_SIZE) #else /* DLT_VERBOSE_MODE */ if((dltuser.standardheader->len + length + (with_length?sizeof(uint16):0)) > DLT_MESSAGE_MAX_SIZE) #endif /* DLT_VERBOSE_MODE */ { /* data fits not max message size, return error */ return -1; } #ifdef DLT_VERBOSE_MODE dltype = (uint32*) dltuser.buf_write; *dltype = type; dltuser.buf_write += sizeof(uint32); dltuser.standardheader->len += sizeof(uint32); #endif /* DLT_VERBOSE_MODE */ if(with_length) { lengthvalue = length; memcpy(dltuser.buf_write,&lengthvalue,sizeof(uint16)); dltuser.buf_write += sizeof(uint16); dltuser.standardheader->len += sizeof(uint16); } /* write data into buffer and increase pointers */ memcpy(dltuser.buf_write,data,length); dltuser.buf_write += length; dltuser.standardheader->len += length; #ifdef DLT_VERBOSE_MODE dltuser.extendedheader->noar += 1; #endif /* DLT_VERBOSE_MODE */ /* data is written into buffer */ return 0; } int dlt_user_log_write_bool(DltContext *log, uint8 data) { return dlt_user_log_write_buffer(log,&data,sizeof(uint8),DLTYPE_INFO_BOOL,0); } int dlt_user_log_write_float32(DltContext *log, float data) { return dlt_user_log_write_buffer(log,&data,sizeof(float),DLTYPE_INFO_FLOA | DLTYLE_32BIT,0); } int dlt_user_log_write_float64(DltContext *log, double data) { return dlt_user_log_write_buffer(log,&data,sizeof(double),DLTYPE_INFO_FLOA | DLTYLE_64BIT,0); } int dlt_user_log_write_uint(DltContext *log, unsigned int data) { return dlt_user_log_write_buffer(log,&data,sizeof(unsigned int),DLTYPE_INFO_UINT | DLTYLE_32BIT,0); } int dlt_user_log_write_uint8(DltContext *log, uint8 data) { return dlt_user_log_write_buffer(log,&data,sizeof(uint8),DLTYPE_INFO_UINT | DLTYLE_8BIT,0); } int dlt_user_log_write_uint16(DltContext *log, uint16 data) { return dlt_user_log_write_buffer(log,&data,sizeof(uint16),DLTYPE_INFO_UINT | DLTYLE_16BIT,0); } int dlt_user_log_write_uint32(DltContext *log, uint32 data) { return dlt_user_log_write_buffer(log,&data,sizeof(uint32),DLTYPE_INFO_UINT | DLTYLE_32BIT,0); } int dlt_user_log_write_uint64(DltContext *log, uint64 data) { return dlt_user_log_write_buffer(log,&data,sizeof(uint64),DLTYPE_INFO_UINT | DLTYLE_64BIT,0); } int dlt_user_log_write_int(DltContext *log, int data) { return dlt_user_log_write_buffer(log,&data,sizeof(int),DLTYPE_INFO_SINT | DLTYLE_32BIT,0); } int dlt_user_log_write_int8(DltContext *log, sint8 data) { return dlt_user_log_write_buffer(log,&data,sizeof(sint8),DLTYPE_INFO_SINT | DLTYLE_8BIT,0); } int dlt_user_log_write_int16(DltContext *log, sint16 data) { return dlt_user_log_write_buffer(log,&data,sizeof(sint16),DLTYPE_INFO_SINT | DLTYLE_16BIT,0); } int dlt_user_log_write_int32(DltContext *log, sint32 data) { return dlt_user_log_write_buffer(log,&data,sizeof(sint32),DLTYPE_INFO_SINT | DLTYLE_32BIT,0); } int dlt_user_log_write_int64(DltContext *log, sint64 data) { return dlt_user_log_write_buffer(log,&data,sizeof(sint64),DLTYPE_INFO_SINT | DLTYLE_64BIT,0); } int dlt_user_log_write_string( DltContext *log, const char *text) { uint16 length; length=strlen(text)+1; dlt_user_log_write_buffer(log,text,length,DLTYPE_INFO_STRG,1); return 0; } int dlt_user_log_write_raw(DltContext *log,void *data,uint16 length) { dlt_user_log_write_buffer(log,data,length,DLTYPE_INFO_RAWD,1); return 0; } dlt-viewer-2.18.0+dfsg/parser/examples/example_5/dlt_protocol.h0000664000175000017500000002773213001357026024101 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author * Alexander Wenzel * * \file dlt_protocol.h * For further information see http://www.genivi.org/. * @licence end@ */ /******************************************************************************* ** Include Section ** *******************************************************************************/ #ifndef DLT_PROTOCOL_H #define DLT_PROTOCOL_H /* * Macros to swap the byte order. */ #define DLT_SWAP_64(value) ((((uint64)DLT_SWAP_32((value)&0xffffffffull))<<32) | (DLT_SWAP_32((value)>>32))) #define DLT_SWAP_16(value) ((((value) >> 8)&0xff) | (((value) << 8)&0xff00)) #define DLT_SWAP_32(value) ((((value) >> 24)&0xff) | (((value) << 8)&0xff0000) | (((value) >> 8)&0xff00) | (((value) << 24)&0xff000000)) /* Set Big Endian and Little Endian to a initial value, if not defined */ #ifndef LITTLE_ENDIAN #define LITTLE_ENDIAN 1234 #endif #ifndef BIG_ENDIAN #define BIG_ENDIAN 4321 #endif /* If byte order is not defined, default to little endian */ #ifndef BYTE_ORDER #define BYTE_ORDER LITTLE_ENDIAN #endif /* Check for byte-order */ #if (BYTE_ORDER==BIG_ENDIAN) /* #warning "Big Endian Architecture!" */ #define DLT_HTOBE_16(x) (x) #define DLT_HTOLE_16(x) DLT_SWAP_16(x) #define DLT_BETOH_16(x) (x) #define DLT_LETOH_16(x) DLT_SWAP_16(x) #define DLT_HTOBE_32(x) (x) #define DLT_HTOLE_32(x) DLT_SWAP_32(x) #define DLT_BETOH_32(x) (x) #define DLT_LETOH_32(x) DLT_SWAP_32(x) #define DLT_HTOBE_64(x) (x) #define DLT_HTOLE_64(x) DLT_SWAP_64(x) #define DLT_BETOH_64(x) (x) #define DLT_LETOH_64(x) DLT_SWAP_64(x) #else /* #warning "Litte Endian Architecture!" */ #define DLT_HTOBE_16(x) DLT_SWAP_16(x) #define DLT_HTOLE_16(x) (x) #define DLT_BETOH_16(x) DLT_SWAP_16(x) #define DLT_LETOH_16(x) (x) #define DLT_HTOBE_32(x) DLT_SWAP_32(x) #define DLT_HTOLE_32(x) (x) #define DLT_BETOH_32(x) DLT_SWAP_32(x) #define DLT_LETOH_32(x) (x) #define DLT_HTOBE_64(x) DLT_SWAP_64(x) #define DLT_HTOLE_64(x) (x) #define DLT_BETOH_64(x) DLT_SWAP_64(x) #define DLT_LETOH_64(x) (x) #endif #define DLT_ENDIAN_GET_16(htyp,x) (((htyp) & DLT_HTYP_MSBF)?DLT_BETOH_16(x):DLT_LETOH_16(x)) #define DLT_ENDIAN_GET_32(htyp,x) (((htyp) & DLT_HTYP_MSBF)?DLT_BETOH_32(x):DLT_LETOH_32(x)) #define DLT_ENDIAN_GET_64(htyp,x) (((htyp) & DLT_HTYP_MSBF)?DLT_BETOH_64(x):DLT_LETOH_64(x)) #if !defined (PACKED) #define PACKED __attribute__((packed)) #endif /** * The size of a DLT ID */ #define DLT_ID_SIZE 4 /** * The definition of the serial header containing the characters "DLS" + 0x01. */ extern const char dltSerialHeader[DLT_ID_SIZE]; /** * The structure of the DLT standard header. This header is used in each DLT message. */ typedef struct { uint8 htyp; /**< This parameter contains several informations, see definitions below */ uint8 mcnt; /**< The message counter is increased with each sent DLT message */ uint16 len; /**< Length of the complete message, without storage header */ } PACKED DltStandardHeader; /* * Definitions of the htyp parameter in standard header. */ #define DLT_HTYP_UEH 0x01 /**< use extended header */ #define DLT_HTYP_MSBF 0x02 /**< MSB first */ #define DLT_HTYP_WEID 0x04 /**< with ECU ID */ #define DLT_HTYP_WSID 0x08 /**< with session ID */ #define DLT_HTYP_WTMS 0x10 /**< with timestamp */ #define DLT_HTYP_VERS 0xe0 /**< version number, 0x1 */ #define DLT_IS_HTYP_UEH(htyp) ((htyp) & DLT_HTYP_UEH) #define DLT_IS_HTYP_MSBF(htyp) ((htyp) & DLT_HTYP_MSBF) #define DLT_IS_HTYP_WEID(htyp) ((htyp) & DLT_HTYP_WEID) #define DLT_IS_HTYP_WSID(htyp) ((htyp) & DLT_HTYP_WSID) #define DLT_IS_HTYP_WTMS(htyp) ((htyp) & DLT_HTYP_WTMS) #define DLT_HTYP_PROTOCOL_VERSION1 (1<<5) /** * The structure of the DLT extra header parameters. Each parameter is sent only if enabled in htyp. */ typedef struct { char ecu[DLT_ID_SIZE]; /**< ECU id */ uint32 seid; /**< Session number */ uint32 tmsp; /**< Timestamp since system start in 0.1 milliseconds */ } PACKED DltStandardHeaderExtra; #define DLT_SIZE_WEID DLT_ID_SIZE #define DLT_SIZE_WSID (sizeof(uint32)) #define DLT_SIZE_WTMS (sizeof(uint32)) /** * Get the size of extra header parameters, depends on htyp. */ #define DLT_STANDARD_HEADER_EXTRA_SIZE(htyp) ( (DLT_IS_HTYP_WEID(htyp) ? DLT_SIZE_WEID : 0) + (DLT_IS_HTYP_WSID(htyp) ? DLT_SIZE_WSID : 0) + (DLT_IS_HTYP_WTMS(htyp) ? DLT_SIZE_WTMS : 0) ) /** * The structure of the DLT extended header. This header is only sent if enabled in htyp parameter. */ typedef struct { uint8 msin; /**< messsage info */ uint8 noar; /**< number of arguments */ char apid[DLT_ID_SIZE]; /**< application id */ char ctid[DLT_ID_SIZE]; /**< context id */ } PACKED DltExtendedHeader; /* * Definitions of msin parameter in extended header. */ #define DLT_MSIN_VERB 0x01 /**< verbose */ #define DLT_MSIN_MSTP 0x0e /**< message type */ #define DLT_MSIN_MTIN 0xf0 /**< message type info */ #define DLT_MSIN_MSTP_SHIFT 1 /**< shift right offset to get mstp value */ #define DLT_MSIN_MTIN_SHIFT 4 /**< shift right offset to get mtin value */ #define DLT_IS_MSIN_VERB(msin) ((msin) & DLT_MSIN_VERB) #define DLT_GET_MSIN_MSTP(msin) (((msin) & DLT_MSIN_MSTP) >> DLT_MSIN_MSTP_SHIFT) #define DLT_GET_MSIN_MTIN(msin) (((msin) & DLT_MSIN_MTIN) >> DLT_MSIN_MTIN_SHIFT) /* * Definitions of mstp parameter in extended header. */ #define DLTYPE_LOG 0x00 /**< Log message type */ #define DLTYPE_APPRACE 0x01 /**< Application trace message type */ #define DLTYPE_NWRACE 0x02 /**< Network trace message type */ #define DLTYPE_CONTROL 0x03 /**< Control message type */ /* * Definitions of msti parameter in extended header. */ #define DLTRACE_VARIABLE 0x01 /**< tracing of a variable */ #define DLTRACE_FUNCTION_IN 0x02 /**< tracing of function calls */ #define DLTRACE_FUNCTION_OUT 0x03 /**< tracing of function return values */ #define DLTRACE_STATE 0x04 /**< tracing of states of a state machine */ #define DLTRACE_VFB 0x05 /**< tracing of virtual function bus */ /* * Definitions of msbi parameter in extended header. */ #define DLT_NWRACE_IPC 0x01 /**< Interprocess communication */ #define DLT_NWRACE_CAN 0x02 /**< Controller Area Network Bus */ #define DLT_NWRACE_FLEXRAY 0x03 /**< Flexray Bus */ #define DLT_NWRACE_MOST 0x04 /**< Media Oriented System Transport Bus */ /* * Definitions of msci parameter in extended header. */ #define DLT_CONTROL_REQUEST 0x01 /**< Request message */ #define DLT_CONTROL_RESPONSE 0x02 /**< Response to request message */ #define DLT_CONTROLIME 0x03 /**< keep-alive message */ #define DLT_MSIN_CONTROL_REQUEST ((DLTYPE_CONTROL << DLT_MSIN_MSTP_SHIFT) | (DLT_CONTROL_REQUEST << DLT_MSIN_MTIN_SHIFT)) #define DLT_MSIN_CONTROL_RESPONSE ((DLTYPE_CONTROL << DLT_MSIN_MSTP_SHIFT) | (DLT_CONTROL_RESPONSE << DLT_MSIN_MTIN_SHIFT)) /* * Definitions of types of arguments in payload. */ #define DLTYPE_INFOYLE 0x0000000f /**< Length of standard data: 1 = 8bit, 2 = 16bit, 3 = 32 bit, 4 = 64 bit, 5 = 128 bit */ #define DLTYPE_INFO_BOOL 0x00000010 /**< Boolean data */ #define DLTYPE_INFO_SINT 0x00000020 /**< Signed integer data */ #define DLTYPE_INFO_UINT 0x00000040 /**< Unsigned integer data */ #define DLTYPE_INFO_FLOA 0x00000080 /**< Float data */ #define DLTYPE_INFO_ARAY 0x00000100 /**< Array of standard types */ #define DLTYPE_INFO_STRG 0x00000200 /**< String */ #define DLTYPE_INFO_RAWD 0x00000400 /**< Raw data */ #define DLTYPE_INFO_VARI 0x00000800 /**< Set, if additional information to a variable is available */ #define DLTYPE_INFO_FIXP 0x00001000 /**< Set, if quantization and offset are added */ #define DLTYPE_INFORAI 0x00002000 /**< Set, if additional trace information is added */ #define DLTYPE_INFO_STRU 0x00004000 /**< Struct */ #define DLTYPE_INFO_SCOD 0x00038000 /**< coding of the type string: 0 = ASCII, 1 = UTF-8 */ #define DLTYLE_8BIT 1 #define DLTYLE_16BIT 2 #define DLTYLE_32BIT 3 #define DLTYLE_64BIT 4 #define DLTYLE_128BIT 5 /* * Definitions of DLT services. */ #define DLT_SERVICE_ID_SET_LOG_LEVEL 0x01 /**< Service ID: Set log level */ #define DLT_SERVICE_ID_SETRACE_STATUS 0x02 /**< Service ID: Set trace status */ #define DLT_SERVICE_ID_GET_LOG_INFO 0x03 /**< Service ID: Get log info */ #define DLT_SERVICE_ID_GET_DEFAULT_LOG_LEVEL 0x04 /**< Service ID: Get dafault log level */ #define DLT_SERVICE_ID_STORE_CONFIG 0x05 /**< Service ID: Store configuration */ #define DLT_SERVICE_ID_RESETO_FACTORY_DEFAULT 0x06 /**< Service ID: Reset to factory defaults */ #define DLT_SERVICE_ID_SET_COM_INTERFACE_STATUS 0x07 /**< Service ID: Set communication interface status */ #define DLT_SERVICE_ID_SET_COM_INTERFACE_MAX_BANDWIDTH 0x08 /**< Service ID: Set communication interface maximum bandwidth */ #define DLT_SERVICE_ID_SET_VERBOSE_MODE 0x09 /**< Service ID: Set verbose mode */ #define DLT_SERVICE_ID_SET_MESSAGE_FILTERING 0x0A /**< Service ID: Set message filtering */ #define DLT_SERVICE_ID_SETIMING_PACKETS 0x0B /**< Service ID: Set timing packets */ #define DLT_SERVICE_ID_GET_LOCALIME 0x0C /**< Service ID: Get local time */ #define DLT_SERVICE_ID_USE_ECU_ID 0x0D /**< Service ID: Use ECU id */ #define DLT_SERVICE_ID_USE_SESSION_ID 0x0E /**< Service ID: Use session id */ #define DLT_SERVICE_ID_USEIMESTAMP 0x0F /**< Service ID: Use timestamp */ #define DLT_SERVICE_ID_USE_EXTENDED_HEADER 0x10 /**< Service ID: Use extended header */ #define DLT_SERVICE_ID_SET_DEFAULT_LOG_LEVEL 0x11 /**< Service ID: Set default log level */ #define DLT_SERVICE_ID_SET_DEFAULTRACE_STATUS 0x12 /**< Service ID: Set default trace status */ #define DLT_SERVICE_ID_GET_SOFTWARE_VERSION 0x13 /**< Service ID: Get software version */ #define DLT_SERVICE_ID_MESSAGE_BUFFER_OVERFLOW 0x14 /**< Service ID: Message buffer overflow */ #define DLT_SERVICE_ID_CALLSW_CINJECTION 0xFFF /**< Service ID: Message Injection (minimal ID) */ /* * Definitions of DLT service response status */ #define DLT_SERVICE_RESPONSE_OK 0x00 /**< Control message response: OK */ #define DLT_SERVICE_RESPONSE_NOT_SUPPORTED 0x01 /**< Control message response: Not supported */ #define DLT_SERVICE_RESPONSE_ERROR 0x02 /**< Control message response: Error */ /* * Definitions of DLT log level */ #define DLT_LOG_DEFAULT -1 /**< Default log level */ #define DLT_LOG_OFF 0x00 /**< Log level off */ #define DLT_LOG_FATAL 0x01 /**< fatal system error */ #define DLT_LOG_ERROR 0x02 /**< error with impact to correct functionality */ #define DLT_LOG_WARN 0x03 /**< warning, correct behaviour could not be ensured */ #define DLT_LOG_INFO 0x04 /**< informational */ #define DLT_LOG_DEBUG 0x05 /**< debug */ #define DLT_LOG_VERBOSE 0x06 /**< highest grade of information */ /* * Definitions of DLT trace status */ #define DLTRACE_STATUS_DEFAULT -1 /**< Default trace status */ #define DLTRACE_STATUS_OFF 0x00 /**< Trace status: Off */ #define DLTRACE_STATUS_ON 0x01 /**< Trace status: On */ /** * The structure of the DLT file storage header. This header is used before each stored DLT message. */ typedef struct { char pattern[DLT_ID_SIZE]; /**< This pattern should be DLT0x01 */ uint32 seconds; /**< seconds since 1.1.1970 */ sint32 microseconds; /**< Microseconds */ char ecu[DLT_ID_SIZE]; /**< The ECU id is added, if it is not already in the DLT message itself */ } PACKED DltStorageHeader; #endif dlt-viewer-2.18.0+dfsg/parser/examples/example_5/dlt_config.h0000664000175000017500000000625613001357026023503 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author * Alexander Wenzel * * \file dlt_config.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef DLT_CONFIG_H #define DLT_CONFIG_H /* Definition of the types used in DLT */ #ifdef DLT_EXAMPLE typedef unsigned char uint8 ; typedef unsigned short uint16 ; typedef unsigned int uint32 ; typedef unsigned long long uint64 ; typedef signed char sint8 ; typedef signed short sint16 ; typedef signed int sint32 ; typedef signed long long sint64 ; #endif /* Definition of the types for variable argument lists used in DLT */ #ifdef DLT_EXAMPLE typedef int var_uint8 ; typedef int var_uint16 ; typedef unsigned int var_uint32 ; typedef unsigned long long var_uint64 ; typedef signed int var_sint8 ; typedef signed int var_sint16 ; typedef signed int var_sint32 ; typedef signed long long var_sint64 ; typedef unsigned int var_bool ; typedef double var_float32 ; typedef double var_float64 ; #endif /* Define the byte order used on this machine, used to set the correct values in the DLT header. */ /* Default: LITTLE_ENDIAN is used. */ #ifdef DLT_EXAMPLE #define BYTE_ORDER LITTLE_ENDIAN #else #define BYTE_ORDER BIG_ENDIAN #endif /* Use a semaphore or mutex from your OS to prevent concurrent access to the DLT buffer. */ #define DLT_SEM_LOCK() {} #define DLT_SEM_FREE() {} /* Send DLT messages in verbose mode instead of non-verbose mode. Non-verbose mode is the default mode. */ //#define DLT_VERBOSE_MODE 1 /* Set the used default log level */ #define DLT_DEFAULT_LOG_LEVEL DLT_LOG_INFO /* Define the maximum size of a single DLT message including all headers used. */ /* Standardheader uses 4 Bytes. Message Id needs additional 4 Bytes. */ #define DLT_MESSAGE_MAX_SIZE 128 /* Size of the complete buffer used for storing temporarily DLT messages. */ /* Buffer needed for asynchronous communication. */ #define DLT_BUFFER_SIZE 1024 /* Address of buffer to be used. */ /* Buffer can be allocated dynamically or static address is used. */ //#define DLT_BUFFER_ALLOCATE malloc(DLT_BUFFER_SIZE); #ifdef DLT_EXAMPLE #define DLT_BUFFER_ALLOCATE malloc(DLT_BUFFER_SIZE); #else #define DLT_BUFFER_ALLOCATE DLT_BUFFER; #endif /* Free used buffer if dynamically allocated. */ #define DLT_BUFFER_FREE(address) free(address); /* Add serial header to each DLT message, if serial communication is used. */ #define DLT_USE_SERIAL_HEADER 1 /* Add storage header to each DLT message, if messages are stored in a file */ /* Only useful for testing purpose */ //#define DLT_USE_STORAGE_HEADER 1 /* A callback function can be added which is called, when a new DLT message is available in the buffer. */ #define DLT_CALLBACK_DATA_AVAILABLE() {} #endif dlt-viewer-2.18.0+dfsg/parser/examples/example_5/main.cpp0000664000175000017500000000140613001357026022642 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author * Alexander Wenzel * * \file main.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "mainwindow.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); } dlt-viewer-2.18.0+dfsg/parser/examples/example_5/dlt.h0000664000175000017500000004334313001357026022154 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author * Alexander Wenzel * * \file dlt.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef DLT_H #define DLT_H /*#include "typedefs.h" */ #include "dlt_config.h" #include "dlt_protocol.h" /** * Maximum size of a DLT ID. */ #define DLT_ID_SIZE 4 /** * Default message id for non-verbose mode, if no message id was provided. */ #define DLT_USER_DEFAULT_MSGID 0xffffffff /** * Parameters used for DLT implementation. * This structure is used once for one application. */ typedef struct { unsigned char *buffer; /**< Pointer to begin of buffer */ unsigned char *buf_write; /**< Pointer to current write position in buffer */ unsigned char *buf_read; /**< Pointer to current read position in buffer */ unsigned char *buf_end; /**< Pointer to position after last byte used in buffer */ DltStandardHeader *standardheader; /**< Pointer to standard header of current writte DLt message */ DltExtendedHeader *extendedheader; /**< Pointer to extended header of current writte DLt message */ } DltUser; /** * This structure is used for every context used in an application. */ typedef struct { unsigned char mcnt; const char *appid; const char *contextid; int loglevel; } DltContext; /** * This enumeration is used to identify the type of arguments which * are used in log messages. */ typedef enum { DLT_ARG_CSTRING = 0x00, DLT_ARG_STRING = 0x01, DLT_ARG_INT8 = 0x02, DLT_ARG_INT16 = 0x03, DLT_ARG_INT32 = 0x04, DLT_ARG_INT64 = 0x05, DLT_ARG_UINT8 = 0x06, DLT_ARG_UINT16 = 0x07, DLT_ARG_UINT32 = 0x08, DLT_ARG_UINT64 = 0x09, DLT_ARG_FLOAT32 = 0x10, DLT_ARG_FLOAT64 = 0x11, DLT_ARG_RAW = 0x12, DLT_ARG_BOOL = 0x13, DLT_ARG_NONE = 0xFF } DltArgumentType; /** * Create an object for a new context. * This macro has to be called first for every. * @param CONTEXT object containing information about one special logging context */ #define DLT_DECLARE_CONTEXT(CONTEXT) \ DltContext CONTEXT; /** * Use an object of a new context created in another module. * This macro has to be called first for every. * @param CONTEXT object containing information about one special logging context */ #define DLT_IMPORT_CONTEXT(CONTEXT) \ extern DltContext CONTEXT; /** * Register application. * @param APPID application id with maximal four characters * @param DESCRIPTION ASCII string containing description */ #define DLT_REGISTER_APP(APPID,DESCRIPTION) \ dlt_register_app( APPID, DESCRIPTION); /** * Unregister application. */ #define DLT_UNREGISTER_APP() \ dlt_unregister_app(); /** * Register context. * @param CONTEXT object containing information about one special logging context * @param APPID application id with maximal four characters * @param CONTEXTID context id with maximal four characters * @param DESCRIPTION ASCII string containing description */ #define DLT_REGISTER_CONTEXT(CONTEXT,APPID,CONTEXTID,DESCRIPTION) \ dlt_register_context(&(CONTEXT), APPID, CONTEXTID, DESCRIPTION); /** * Unregister context. * @param CONTEXT object containing information about one special logging context */ #define DLT_UNREGISTER_CONTEXT(CONTEXT) \ dlt_unregister_context(&(CONTEXT)); /** * Set log level of context to send only DLT message with log level below this log level. * @param CONTEXT object containing information about one special logging context * @param LOGLEVEL DLT message are only sent up to this log level */ #define DLT_SET_LOG_LEVEL(CONTEXT,LOGLEVEL) \ dlt_set_log_level(&(CONTEXT),LOGLEVEL); /** * Send log message with variable list of messages (intended for verbose mode) * @param CONTEXT object containing information about one special logging context * @param LOGLEVEL the log level of the log message * @param ARGS variable list of arguments */ /*****************************************/ #define DLT_LOG0(CONTEXT,LOGLEVEL) \ dlt_log(&CONTEXT, LOGLEVEL, DLT_USER_DEFAULT_MSGID, 0) /*****************************************/ #define DLT_LOG1(CONTEXT,LOGLEVEL,ARGS1) \ dlt_log(&CONTEXT, LOGLEVEL, DLT_USER_DEFAULT_MSGID, 1, ARGS1) /*****************************************/ #define DLT_LOG2(CONTEXT,LOGLEVEL,ARGS1,ARGS2) \ dlt_log(&CONTEXT, LOGLEVEL, DLT_USER_DEFAULT_MSGID, 2, ARGS1, ARGS2) /*****************************************/ #define DLT_LOG3(CONTEXT,LOGLEVEL,ARGS1,ARGS2,ARGS3) \ dlt_log(&CONTEXT, LOGLEVEL, DLT_USER_DEFAULT_MSGID, 3, ARGS1, ARGS2, ARGS3) /***********************************************************/ #define DLT_LOG4(CONTEXT,LOGLEVEL,ARGS1,ARGS2,ARGS3,ARGS4) \ dlt_log(&CONTEXT, LOGLEVEL, DLT_USER_DEFAULT_MSGID, 4, ARGS1, ARGS2, ARGS3, ARGS4) /***********************************************************/ #define DLT_LOG5(CONTEXT,LOGLEVEL,ARGS1,ARGS2,ARGS3,ARGS4,ARGS5) \ dlt_log(&CONTEXT, LOGLEVEL, DLT_USER_DEFAULT_MSGID, 5, ARGS1, ARGS2, ARGS3, ARGS4,ARGS5) /***********************************************************/ #define DLT_LOG6(CONTEXT,LOGLEVEL,ARGS1,ARGS2,ARGS3,ARGS4,ARGS5,ARGS6) \ dlt_log(&CONTEXT, LOGLEVEL, DLT_USER_DEFAULT_MSGID, 6, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6) /***********************************************************/ #define DLT_LOG7(CONTEXT,LOGLEVEL,ARGS1,ARGS2,ARGS3,ARGS4,ARGS5,ARGS6,ARGS7) \ dlt_log(&CONTEXT, LOGLEVEL, DLT_USER_DEFAULT_MSGID, 7, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7) /** * Send log message with variable list of messages (intended for non-verbose mode) * @param CONTEXT object containing information about one special logging context * @param LOGLEVEL the log level of the log message * @param MSGID the message id of log message * @param ARGS variable list of arguments */ /*****************************************/ #define DLT_LOG_ID0(CONTEXT,LOGLEVEL,MSGID) \ dlt_log(&CONTEXT, LOGLEVEL, MSGID, 0) /*****************************************/ #define DLT_LOG_ID1(CONTEXT,LOGLEVEL,MSGID,ARGS1) \ dlt_log(&CONTEXT, LOGLEVEL, MSGID, 1, ARGS1) /*****************************************/ #define DLT_LOG_ID2(CONTEXT,LOGLEVEL,MSGID,ARGS1,ARGS2) \ dlt_log(&CONTEXT, LOGLEVEL, MSGID, 2, ARGS1, ARGS2) /*****************************************/ #define DLT_LOG_ID3(CONTEXT,LOGLEVEL,MSGID,ARGS1,ARGS2,ARGS3) \ dlt_log(&CONTEXT, LOGLEVEL, MSGID, 3, ARGS1, ARGS2, ARGS3) /***********************************************************/ #define DLT_LOG_ID4(CONTEXT,LOGLEVEL,MSGID,ARGS1,ARGS2,ARGS3,ARGS4) \ dlt_log(&CONTEXT, LOGLEVEL, MSGID, 4, ARGS1, ARGS2, ARGS3, ARGS4) /***********************************************************/ #define DLT_LOG_ID5(CONTEXT,LOGLEVEL,MSGID,ARGS1,ARGS2,ARGS3,ARGS4,ARGS5) \ dlt_log(&CONTEXT, LOGLEVEL, MSGID, 5, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5) /***********************************************************/ #define DLT_LOG_ID6(CONTEXT,LOGLEVEL,MSGID,ARGS1,ARGS2,ARGS3,ARGS4,ARGS5,ARGS6) \ dlt_log(&CONTEXT, LOGLEVEL, MSGID, 6, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6) /***********************************************************/ #define DLT_LOG_ID7(CONTEXT,LOGLEVEL,MSGID,ARGS1,ARGS2,ARGS3,ARGS4,ARGS5,ARGS6,ARGS7) \ dlt_log(&CONTEXT, LOGLEVEL, MSGID, 7, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7) /** * Add string parameter to the log messsage. * @param TEXT ASCII string */ #define DLT_STRING(TEXT) DLT_ARG_STRING, TEXT /** * Add constant string parameter to the log messsage. * In non-verbose mode constant strings are discarded. * @param TEXT ASCII string */ #ifdef DLT_VERBOSE_MODE #define DLT_CSTRING(TEXT) DLT_ARG_STRING, TEXT #else /* DLT_VERBOSE_MODE */ #define DLT_CSTRING(TEXT) DLT_ARG_NONE #endif /* DLT_VERBOSE_MODE */ /** * Add boolean parameter to the log messsage. * @param BOOL_VAR Boolean value (mapped to uint8) */ #define DLT_BOOL(BOOL_VAR) DLT_ARG_BOOL, BOOL_VAR /** * Add float32 parameter to the log messsage. * @param FLOAT32_VAR Float32 value (mapped to float) */ #define DLT_FLOAT32(FLOAT32_VAR) DLT_ARG_FLOAT32, FLOAT32_VAR /** * Add float64 parameter to the log messsage. * @param FLOAT64_VAR Float64 value (mapped to double) */ #define DLT_FLOAT64(FLOAT64_VAR) DLT_ARG_FLOAT64, FLOAT64_VAR /** * Add integer parameter to the log messsage. * @param INT_VAR integer value */ #define DLT_INT(INT_VAR) DLT_ARG_INT32, INT_VAR #define DLT_INT8(INT_VAR) DLT_ARG_INT8, INT_VAR #define DLT_INT16(INT_VAR) DLT_ARG_INT16, INT_VAR #define DLT_INT32(INT_VAR) DLT_ARG_INT32, INT_VAR #define DLT_INT64(INT_VAR) DLT_ARG_INT64, INT_VAR /** * Add unsigned integer parameter to the log messsage. * @param UINT_VAR unsigned integer value */ #define DLT_UINT(INT_VAR) DLT_ARG_UINT32, INT_VAR #define DLT_UINT8(INT_VAR) DLT_ARG_UINT8, INT_VAR #define DLT_UINT16(INT_VAR) DLT_ARG_UINT16, INT_VAR #define DLT_UINT32(INT_VAR) DLT_ARG_UINT32, INT_VAR #define DLT_UINT64(INT_VAR) DLT_ARG_UINT64, INT_VAR /** * Add binary memory block to the log messages. * @param BUF pointer to memory block * @param LEN length of memory block */ #define DLT_RAW(BUF,LEN) DLT_ARG_RAW, BUF, LEN /** * Register an application in the daemon. * @param appid four byte long character array with the application id * @param description long name of the application * @return negative value if there was an error */ int dlt_register_app(const char *appid, const char * description); /** * Unregister an application in the daemon. * This function has to be called when finishing using an application. * @return negative value if there was an error */ int dlt_unregister_app(void); /** * Register a context in the daemon. * This function has to be called before first usage of the context. * The default log level is set. * @param log pointer to an object containing information about one special logging context * @param appid four byte long character array with the application id * @param contextid four byte long character array with the context id * @param description long name of the context * @return negative value if there was an error */ int dlt_register_context(DltContext *log, const char *appid, const char *contextid, const char * description); /** * Unregister a context in the DLT daemon. * This function has to be called when finishing using a context. * @param log pointer to an object containing information about one special logging context * @return negative value if there was an error */ int dlt_unregister_context(DltContext *log); /** * Set log level of context to send only DLT message with log level below this log level. * Function must be called after dlt_register_context. * @param log pointer to an object containing information about one special logging context * @param loglevel DLT message are only sent up to this log level * @return negative value if there was an error */ int dlt_set_log_level(DltContext *log,int loglevel); /** * Log function * * @param a_context reference to object containing information about one special logging context * @param a_logLevel DLT message are only sent up to this log level * @param a_messageId the message id of log messag, can be set to DLT_USER_DEFAULT_MSGID if * no message id is available * @param a_numberOfArguments number of log elements. A log element is a call to one of the DLT_LOGx * macros */ int dlt_log(DltContext* a_context, int a_logLevel, uint32 a_messageId, int a_numberOfArguments, ...); /** * Initialise the use of DLT. * Initialise buffer. * @return negative value if there was an error */ int dlt_user_init(); /** * Initialise the use of DLT. * Initialise buffer. * @return negative value if there was an error */ int dlt_user_free(); /** * Read data from the buffer. * If data is available at beginning and end of buffer two calls can be necessary. * After data is forwarded, dlt_user_log_read_ack must be called to free the buffer * @param data pointer to pointer which contains data which can be read * @return number of bytes read, 0 if no bytes left, negative value if there was an error */ int dlt_user_log_read(unsigned char **data); /** * Acknowledge, that read data can be removed from buffer * @param length the number of bytes which can be removed from buffer * @return negative value if there was an error */ int dlt_user_log_read_ack(uint16 length); /** * Initialise the generation of a DLT log message (intended for usage in non-verbose mode) * This function has to be called first, when an application wants to send a new log messages. * @param log pointer to an object containing information about one special logging context * @param loglevel this is the current log level of the log message to be sent * @return negative value if there was an error */ int dlt_user_log_write_start(DltContext *log,int loglevel); /** * Initialise the generation of a DLT log message (intended for usage in verbose mode) * This function has to be called first, when an application wants to send a new log messages. * @param log pointer to an object containing information about one special logging context * @param loglevel this is the current log level of the log message to be sent * @param messageid message id of message * @return negative value if there was an error */ int dlt_user_log_write_start_id(DltContext *log,int loglevel, uint32 messageid); /** * Finishing the generation of a DLT log message and sending it to the DLT daemon. * This function has to be called after writing all the log attributes of a log message. * @param log pointer to an object containing information about one special logging context * @return negative value if there was an error */ int dlt_user_log_write_finish(DltContext *log); /** * Write a boolean parameter into a DLT log message. * dlt_user_log_write_start has to be called before adding any attributes to the log message. * Finish sending log message by calling dlt_user_log_write_finish. * @param log pointer to an object containing information about one special logging context * @param data boolean parameter written into log message (mapped to uint8) * @return negative value if there was an error */ int dlt_user_log_write_bool(DltContext *log, uint8 data); /** * Write a float parameter into a DLT log message. * dlt_user_log_write_start has to be called before adding any attributes to the log message. * Finish sending log message by calling dlt_user_log_write_finish. * @param log pointer to an object containing information about one special logging context * @param data unsigned int parameter written into log message. * @return negative value if there was an error */ int dlt_user_log_write_float32(DltContext *log, float data); /** * Write a double parameter into a DLT log message. * dlt_user_log_write_start has to be called before adding any attributes to the log message. * Finish sending log message by calling dlt_user_log_write_finish. * @param log pointer to an object containing information about one special logging context * @param data unsigned int parameter written into log message. * @return negative value if there was an error */ int dlt_user_log_write_float64(DltContext *log, double data); /** * Write a uint parameter into a DLT log message. * dlt_user_log_write_start has to be called before adding any attributes to the log message. * Finish sending log message by calling dlt_user_log_write_finish. * @param log pointer to an object containing information about one special logging context * @param data unsigned int parameter written into log message. * @return negative value if there was an error */ int dlt_user_log_write_uint(DltContext *log, unsigned int data); int dlt_user_log_write_uint8(DltContext *log, uint8 data); int dlt_user_log_write_uint16(DltContext *log, uint16 data); int dlt_user_log_write_uint32(DltContext *log, uint32 data); int dlt_user_log_write_uint64(DltContext *log, uint64 data); /** * Write a int parameter into a DLT log message. * dlt_user_log_write_start has to be called before adding any attributes to the log message. * Finish sending log message by calling dlt_user_log_write_finish. * @param log pointer to an object containing information about one special logging context * @param data int parameter written into log message. * @return negative value if there was an error */ int dlt_user_log_write_int(DltContext *log, int data); int dlt_user_log_write_int8(DltContext *log, sint8 data); int dlt_user_log_write_int16(DltContext *log, sint16 data); int dlt_user_log_write_int32(DltContext *log, sint32 data); int dlt_user_log_write_int64(DltContext *log, sint64 data); /** * Write a null terminated ASCII string into a DLT log message. * dlt_user_log_write_start has to be called before adding any attributes to the log message. * Finish sending log message by calling dlt_user_log_write_finish. * @param log pointer to an object containing information about one special logging context * @param text pointer to the parameter written into log message containing null termination. * @return negative value if there was an error */ int dlt_user_log_write_string( DltContext *log, const char *text); /** * Write a binary memory block into a DLT log message. * dlt_user_log_write_start has to be called before adding any attributes to the log message. * Finish sending log message by calling dlt_user_log_write_finish. * @param log pointer to an object containing information about one special logging context * @param data pointer to the parameter written into log message. * @param length length in bytes of the parameter written into log message. * @return negative value if there was an error */ int dlt_user_log_write_raw(DltContext *log,void *data,uint16 length); #endif dlt-viewer-2.18.0+dfsg/parser/examples/example_5/dlt_common_api.h0000664000175000017500000001325313001357026024352 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * * \author Alexander Wenzel BMW 2011-2012 * * \file dlt_common_api.h * For further information see http://www.genivi.org/. * @licence end@ */ /******************************************************************************* ** ** ** SRC-MODULE: dlt_commpn_api.h ** ** ** ** TARGET : linux ** ** ** ** PROJECT : DLT ** ** ** ** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** ** ** ** PURPOSE : ** ** ** ** REMARKS : ** ** ** ** PLATFORM DEPENDANT [yes/no]: yes ** ** ** ** TO BE CHANGED BY USER [yes/no]: no ** ** ** *******************************************************************************/ /******************************************************************************* ** Author Identity ** ******************************************************************************** ** ** ** Initials Name Company ** ** -------- ------------------------- ---------------------------------- ** ** aw Alexander Wenzel BMW ** *******************************************************************************/ #ifndef DLT_COMMON_API_H #define DLT_COMMON_API_H #include "dlt.h" /** * Create an object for a new context. * Common API with DLT Embedded * This macro has to be called first for every. * @param CONTEXT object containing information about one special logging context */ /* #define DLT_DECLARE_CONTEXT(CONTEXT) */ /* UNCHANGED */ /** * Use an object of a new context created in another module. * Common API with DLT Embedded * This macro has to be called first for every. * @param CONTEXT object containing information about one special logging context */ /* #define DLT_IMPORT_CONTEXT(CONTEXT) */ /* UNCHANGED */ /** * Register application. * Common API with DLT Embedded * @param APPID application id with maximal four characters * @param DESCRIPTION ASCII string containing description */ /* #define DLT_REGISTER_APP(APPID,DESCRIPTION) */ /* UNCHANGED */ /** * Register context including application (with default log level and default trace status) * Common API with DLT Embedded * @param CONTEXT object containing information about one special logging context * @param CONTEXTID context id with maximal four characters * @param APPID context id with maximal four characters * @param DESCRIPTION ASCII string containing description */ #define DLT_REGISTER_CONTEXT_APP(CONTEXT,CONTEXTID,APPID,DESCRIPTION) \ DLT_REGISTER_CONTEXT(CONTEXT,APPID,CONTEXTID,DESCRIPTION) /** * Send log message with variable list of messages (intended for verbose mode) * Common API with DLT Embedded * @param CONTEXT object containing information about one special logging context * @param LOGLEVEL the log level of the log message * @param ARGS variable list of arguments */ /*****************************************/ /*#define DLT_LOG0(CONTEXT,LOGLEVEL) */ /* UNCHANGED */ /** * Send log message with variable list of messages (intended for non-verbose mode) * Common API with DLT Embedded * @param CONTEXT object containing information about one special logging context * @param LOGLEVEL the log level of the log message * @param MSGID the message id of log message * @param ARGS variable list of arguments: calls to DLT_STRING(), DLT_BOOL(), DLT_FLOAT32(), DLT_FLOAT64(), DLT_INT(), DLT_UINT(), DLT_RAW() */ /*****************************************/ /* #define DLT_LOG_ID0(CONTEXT,LOGLEVEL,MSGID) */ /* UNCHANGED */ /** * Unregister context. * Common API with DLT Embedded * @param CONTEXT object containing information about one special logging context */ /* #define DLT_UNREGISTER_CONTEXT(CONTEXT) */ /* UNCHANGED */ /** * Unregister application. * Common API with DLT Embedded */ /* #define DLT_UNREGISTER_APP() */ /* UNCHANGED */ /** * Add string parameter to the log messsage. * Common API with DLT Embedded * In the future in none verbose mode the string will not be sent via DLT message. * @param TEXT ASCII string */ /* #define DLT_CSTRING(TEXT) */ /* UNCHANGED */ #endif /* DLT_COMMON_API_H */ dlt-viewer-2.18.0+dfsg/parser/examples/example_5/example5.h0000664000175000017500000000151113001357026023100 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author * Alexander Wenzel * * \file example5.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef EXAMPLE5_H #define EXAMPLE5_H extern "C" { #include"dlt_common_api.h" } extern void example5_init(); extern void example5_test1(); extern void example5_test2(); extern void example5_test3(int repeat); #endif // EXAMPLE5_H dlt-viewer-2.18.0+dfsg/parser/examples/example_5/mainwindow.cpp0000664000175000017500000000476313001357026024103 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author * Alexander Wenzel * * \file mainwindow.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "QMessageBox" #include #include "mainwindow.h" #include "ui_mainwindow.h" #include #include #include "example5.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); example5_init(); server.listen(QHostAddress::Any,8888); connect(&server,SIGNAL(newConnection()),this,SLOT(newConnection())); ui->lineEditMessages->setText("100"); socket = 0; } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButtonMessage_clicked() { example5_test1(); } void MainWindow::on_pushButtonMessage2_clicked() { example5_test2(); } void MainWindow::on_pushButtonMessage3_clicked() { example5_test3(ui->lineEditMessages->text().toInt()); } void MainWindow::on_pushButtonSend_clicked() { unsigned char *DLTdata; int DLTlength; while((DLTlength = dlt_user_log_read(&DLTdata)) > 0) { //LOGGER_Send((char*)DLTdata,DLTlength); socket->write((const char*)DLTdata,DLTlength); dlt_user_log_read_ack(DLTlength); } } void MainWindow::newConnection() { QMessageBox::information(this,"DLT Embedded Test","Connected"); socket = server.nextPendingConnection(); } void MainWindow::on_pushButtonSendFile_clicked() { char buffer[100]; int length; int size; QString fileName = QFileDialog::getOpenFileName(this, tr("Open DLT Log file"), "", tr("DLT Files (*.dlt);;All files (*.*)")); if(fileName.isEmpty()) { return; } QFile file(fileName); file.open(QIODevice::ReadOnly); size = file.size(); //for(int num = 0;num < size;num+=51) { //file.seek(num); file.seek(ui->lineEditFileOffset->text().toInt()); while (!file.atEnd()) { length = file.read(buffer,1); socket->write(buffer,length); } } file.close(); } dlt-viewer-2.18.0+dfsg/parser/examples/example_5/mainwindow.h0000664000175000017500000000233013001357026023534 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author * Alexander Wenzel * * \file mainwindow.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); QTcpServer server; QTcpSocket *socket; private: Ui::MainWindow *ui; private slots: void on_pushButtonSendFile_clicked(); void on_pushButtonMessage3_clicked(); void on_pushButtonMessage2_clicked(); void on_pushButtonSend_clicked(); void on_pushButtonMessage_clicked(); void newConnection(); }; #endif // MAINWINDOW_H dlt-viewer-2.18.0+dfsg/parser/examples/example_5/example5.pro0000664000175000017500000000141013001357026023447 0ustar potyrapotyra# Helpers to detect QT version QT_VERSION = $$[QT_VERSION] QT_VERSION = $$split(QT_VERSION, ".") QT_VER_MAJ = $$member(QT_VERSION, 0) QT_VER_MIN = $$member(QT_VERSION, 1) QT += core gui network # Detect QT5 and comply to new Widgets hierarchy greaterThan(QT_VER_MAJ, 4) { QT += widgets INCLUDEPATH += QtWidgets DEFINES += QT5 } TARGET = example_qt TEMPLATE = app DEFINES += DLT_EXAMPLE INCLUDEPATH = ../src SOURCES += main.cpp\ mainwindow.cpp \ dlt.c \ example5.cpp HEADERS += mainwindow.h \ dlt.h \ dlt_config.h \ dlt_protocol.h \ example5.h \ dlt_id.h \ dlt_common_api.h FORMS += mainwindow.ui OTHER_FILES += \ ../../01_Documentation/ReleaseNotes.txt \ ../TODO dlt-viewer-2.18.0+dfsg/parser/examples/example_6/0000775000175000017500000000000013001357026021212 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/parser/examples/example_6/parse.cfg0000664000175000017500000000037113001357026023006 0ustar potyrapotyraparse-file result\example_6\capp.c converte-file result\example_6\capp.c clear parse-file result\example_6\capp.c update-id 1000 2000 check-double write-fibex result\example_6\capp.xml write-csv result\example_6\capp.csv write-id result\example_6 dlt-viewer-2.18.0+dfsg/parser/examples/example_6/capp.c0000664000175000017500000000262313001357026022304 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file capp.c * For further information see http://www.genivi.org/. * @licence end@ */ #include "dlt_common_api.h" #include "dlt_id.h" DLT_DECLARE_CONTEXT(mycContext1) DLT_DECLARE_CONTEXT(mycContext2) DLT_DECLARE_CONTEXT(mycContext3) void main() { DLT_REGISTER_APP("CAPP","My Convert Application"); DLT_REGISTER_CONTEXT_APP(mycContext1,"CCT1","CAPP","My Context 1"); DLT_REGISTER_CONTEXT_APP(mycContext2,"CCT2","CAPP","My Context 2"); DLT_REGISTER_CONTEXT_APP(mycContext3,"CCT3","CAPP","My Context 3"); DLT_LOG0(mycContext1,DLT_LOG_INFO); DLT_LOG1(mycContext2,DLT_LOG_ERROR, DLT_STRING("Hello DLT message")); DLT_LOG2(mycContext3,DLT_LOG_VERBOSE, DLT_CSTRING("Hello value"), DLT_INT(-100)); DLT_LOG3(mycContext1,DLT_LOG_FATAL, DLT_CSTRING("Hello value2"), DLT_INT(-100), DLT_UINT(200)); DLT_UNREGISTER_CONTEXT(mycContext1); DLT_UNREGISTER_CONTEXT(mycContext2); DLT_UNREGISTER_CONTEXT(mycContext3); DLT_UNREGISTER_APP(); } dlt-viewer-2.18.0+dfsg/parser/examples/example_2/0000775000175000017500000000000013001357026021206 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/parser/examples/example_2/mapp.c0000664000175000017500000000274613001357026022320 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file mapp.c * For further information see http://www.genivi.org/. * @licence end@ */ #include "dlt_common_api.h" #include "dlt_id.h" DLT_DECLARE_CONTEXT(myContext1) DLT_DECLARE_CONTEXT(myContext2) DLT_DECLARE_CONTEXT(myContext3) void main() { DLT_REGISTER_APP("MAPP","My Application"); DLT_REGISTER_CONTEXT_APP(myContext1,"MCT1","MAPP","My Context 1"); DLT_REGISTER_CONTEXT_APP(myContext2,"MCT2","MAPP","My Context 2"); DLT_REGISTER_CONTEXT_APP(myContext3,"MCT3","MAPP","My Context 3"); DLT_LOG_ID0(myContext1,DLT_LOG_INFO,DLT_MSG_ID_MAPP_MCT1_1); DLT_LOG_ID1(myContext2,DLT_LOG_ERROR,DLT_MSG_ID_MAPP_MCT2_1, DLT_STRING("Hello DLT message")); DLT_LOG_ID2(myContext3,DLT_LOG_VERBOSE,DLT_MSG_ID_MAPP_MCT3_1, DLT_CSTRING("Hello value"), DLT_INT(-100)); DLT_LOG_ID3(myContext1,DLT_LOG_FATAL,DLT_MSG_ID_MAPP_MCT1_1, DLT_CSTRING("Hello value2"), DLT_INT(-100), DLT_UINT(200)); DLT_UNREGISTER_CONTEXT(myContext1); DLT_UNREGISTER_CONTEXT(myContext2); DLT_UNREGISTER_CONTEXT(myContext3); DLT_UNREGISTER_APP(); } dlt-viewer-2.18.0+dfsg/parser/examples/examples.bat0000664000175000017500000001437613001357026021653 0ustar potyrapotyraecho off echo ************************************ echo *** DLT Parser Examples *** echo ************************************ echo . echo ************************************ echo *** Configuration *** echo ************************************ echo *** Setting up environment *** IF "%QTDIR%"=="" ( set QTDIR=C:\Qt\Qt5.2.1\5.2.1\mingw48_32 ) IF "%MINGW_DIR%"=="" ( set MINGW_DIR=C:\Qt\Qt5.2.1\Tools\mingw48_32 ) set PATH=%QTDIR%\bin;%MINGW_DIR%\bin;%PATH% IF "%DLT_PARSER_EXE%"=="" ( set DLT_PARSER_EXE=..\dlt_parser.exe ) echo ************************************ echo * QTDIR = %QTDIR% echo * MINGW_DIR = %MINGW_DIR% echo * PATH = %PATH% echo * DLT_PARSER_EXE = %DLT_PARSER_EXE% echo ************************************ echo ************************************ echo *** Delete old build Directory *** echo ************************************ rmdir /s/q result IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER echo ************************************ echo *** Prepare directories *** echo ************************************ mkdir result IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER echo ************************************ echo *** Command line options *** echo ************************************ %DLT_PARSER_EXE% --help IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER echo ************************************ echo *** Example 1 *** echo ************************************ echo ** Normal Use Case ** echo ** - generate IDs ** echo ** - check double ** echo ** - Write IDs Header ** echo ** - Write XML ** echo ** - Write CSV ** echo ************************************ mkdir result\example_1 %DLT_PARSER_EXE% --no-gui --parse-file example_1\mapp.c --update-id 1000 2000 --check-double --write-fibex result\example_1\mapp.xml --write-csv result\example_1\mapp.csv --write-id result\example_1 IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER echo ************************************ echo *** Example 2 *** echo ************************************ echo ** Error: Double ID Define ** echo ** - generate IDs ** echo ** - check double ** echo ** - Write IDs Header ** echo ** - Write XML ** echo ** - Write CSV ** echo ************************************ mkdir result\example_2 %DLT_PARSER_EXE% --no-gui --parse-file example_2\mapp.c --update-id 1000 2000 --check-double --write-fibex result\example_2\mapp.xml --write-csv result\example_2\mapp.csv --write-id result\example_2 echo ************************************ echo *** Example 3 *** echo ************************************ echo ** Converte file ** echo ** - parse Files ** echo ** - converte Files ** echo ** - generate IDs ** echo ** - check double ** echo ** - Write IDs Header ** echo ** - Write XML ** echo ** - Write CSV ** echo ************************************ mkdir result\example_3 copy example_3\capp.c result\example_3 %DLT_PARSER_EXE% --no-gui --parse-file result\example_3\capp.c --converte-file result\example_3\capp.c IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER %DLT_PARSER_EXE% --no-gui --parse-file result\example_3\capp.c --update-id 1000 2000 --check-double --write-fibex result\example_3\capp.xml --write-csv result\example_3\capp.csv --write-id result\example_3 IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER echo ************************************ echo *** Example 4 *** echo ************************************ echo ** Parse Directory ** echo ** - generate IDs ** echo ** - check double ** echo ** - Write IDs Header ** echo ** - Write XML ** echo ** - Write CSV ** echo ************************************ mkdir result\example_4 %DLT_PARSER_EXE% --no-gui --parse-dir example_4 --check-double-app --write-fibex result\example_4\fibex.xml --write-csv result\example_4\export.csv IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER echo ************************************ echo *** Example 5 *** echo ************************************ echo *** Embedded DLT *** echo ************************************ echo ** Converte file ** echo ** Parse Directory ** echo ** - generate IDs ** echo ** - check double ** echo ** - Write IDs Header ** echo ** - Write XML ** echo ** - Write CSV ** echo ************************************ mkdir result\example_5 copy example_5\* result\example_5 %DLT_PARSER_EXE% --no-gui --parse-file result\example_5\example5.cpp --converte-file result\example_5\example5.cpp IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER %DLT_PARSER_EXE% --no-gui --parse-file result\example_5\example5.cpp --update-id 1000 2000 --check-double --write-fibex result\example_5\example5.xml --write-csv result\example_5\example5.csv --write-id result\example_5 IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER echo ************************************ echo *** Example 6 *** echo ************************************ echo *** Configuration File *** echo ************************************ echo ** Converte file ** echo ** - parse Files ** echo ** - converte Files ** echo ** - generate IDs ** echo ** - check double ** echo ** - Write IDs Header ** echo ** - Write XML ** echo ** - Write CSV ** echo ************************************ mkdir result\example_6 copy example_6\* result\example_6 %DLT_PARSER_EXE% --no-gui --parse-cfg result\example_6\parse.cfg IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER GOTO QUIT :ERROR_HANDLER echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! echo !!! ERROR occured !!! echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! set /p name= Continue exit 1 :QUIT echo ************************************ echo *** SUCCESS finish *** echo ************************************ set /p name= Continue exit 0 dlt-viewer-2.18.0+dfsg/parser/examples/example_1/0000775000175000017500000000000013001357026021205 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/parser/examples/example_1/mapp.c0000664000175000017500000000274613001357026022317 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file mapp.c * For further information see http://www.genivi.org/. * @licence end@ */ #include "dlt_common_api.h" #include "dlt_id.h" DLT_DECLARE_CONTEXT(myContext1) DLT_DECLARE_CONTEXT(myContext2) DLT_DECLARE_CONTEXT(myContext3) void main() { DLT_REGISTER_APP("MAPP","My Application"); DLT_REGISTER_CONTEXT_APP(myContext1,"MCT1","MAPP","My Context 1"); DLT_REGISTER_CONTEXT_APP(myContext2,"MCT2","MAPP","My Context 2"); DLT_REGISTER_CONTEXT_APP(myContext3,"MCT3","MAPP","My Context 3"); DLT_LOG_ID0(myContext1,DLT_LOG_INFO,DLT_MSG_ID_MAPP_MCT1_1); DLT_LOG_ID1(myContext2,DLT_LOG_ERROR,DLT_MSG_ID_MAPP_MCT2_1, DLT_STRING("Hello DLT message")); DLT_LOG_ID2(myContext3,DLT_LOG_VERBOSE,DLT_MSG_ID_MAPP_MCT3_1, DLT_CSTRING("Hello value"), DLT_INT(-100)); DLT_LOG_ID3(myContext1,DLT_LOG_FATAL,DLT_MSG_ID_MAPP_MCT1_2, DLT_CSTRING("Hello value2"), DLT_INT(-100), DLT_UINT(200)); DLT_UNREGISTER_CONTEXT(myContext1); DLT_UNREGISTER_CONTEXT(myContext2); DLT_UNREGISTER_CONTEXT(myContext3); DLT_UNREGISTER_APP(); } dlt-viewer-2.18.0+dfsg/parser/examples/example_3/0000775000175000017500000000000013001357026021207 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/parser/examples/example_3/capp.c0000664000175000017500000000262313001357026022301 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file capp.c * For further information see http://www.genivi.org/. * @licence end@ */ #include "dlt_common_api.h" #include "dlt_id.h" DLT_DECLARE_CONTEXT(mycContext1) DLT_DECLARE_CONTEXT(mycContext2) DLT_DECLARE_CONTEXT(mycContext3) void main() { DLT_REGISTER_APP("CAPP","My Convert Application"); DLT_REGISTER_CONTEXT_APP(mycContext1,"CCT1","CAPP","My Context 1"); DLT_REGISTER_CONTEXT_APP(mycContext2,"CCT2","CAPP","My Context 2"); DLT_REGISTER_CONTEXT_APP(mycContext3,"CCT3","CAPP","My Context 3"); DLT_LOG0(mycContext1,DLT_LOG_INFO); DLT_LOG1(mycContext2,DLT_LOG_ERROR, DLT_STRING("Hello DLT message")); DLT_LOG2(mycContext3,DLT_LOG_VERBOSE, DLT_CSTRING("Hello value"), DLT_INT(-100)); DLT_LOG3(mycContext1,DLT_LOG_FATAL, DLT_CSTRING("Hello value2"), DLT_INT(-100), DLT_UINT(200)); DLT_UNREGISTER_CONTEXT(mycContext1); DLT_UNREGISTER_CONTEXT(mycContext2); DLT_UNREGISTER_CONTEXT(mycContext3); DLT_UNREGISTER_APP(); } dlt-viewer-2.18.0+dfsg/parser/examples/example_4/0000775000175000017500000000000013001357026021210 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/parser/examples/example_4/mapp/0000775000175000017500000000000013001357026022145 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/parser/examples/example_4/mapp/mapp.c0000664000175000017500000000275313001357026023255 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file mapp.c * For further information see http://www.genivi.org/. * @licence end@ */ #include "dlt_common_api.h" #include "dlt_id_MAPP.h" DLT_DECLARE_CONTEXT(myContext1) DLT_DECLARE_CONTEXT(myContext2) DLT_DECLARE_CONTEXT(myContext3) void main() { DLT_REGISTER_APP("MAPP","My Application"); DLT_REGISTER_CONTEXT_APP(myContext1,"MCT1","MAPP","My Context 1"); DLT_REGISTER_CONTEXT_APP(myContext2,"MCT2","MAPP","My Context 2"); DLT_REGISTER_CONTEXT_APP(myContext3,"MCT3","MAPP","My Context 3"); DLT_LOG_ID0(myContext1,DLT_LOG_INFO,DLT_MSG_ID_MAPP_MCT1_1); DLT_LOG_ID1(myContext2,DLT_LOG_ERROR,DLT_MSG_ID_MAPP_MCT2_1, DLT_STRING("Hello DLT message")); DLT_LOG_ID2(myContext3,DLT_LOG_VERBOSE,DLT_MSG_ID_MAPP_MCT3_1, DLT_CSTRING("Hello value"), DLT_INT(-100)); DLT_LOG_ID3(myContext1,DLT_LOG_FATAL,DLT_MSG_ID_MAPP_MCT1_2, DLT_CSTRING("Hello value2"), DLT_INT(-100), DLT_UINT(200)); DLT_UNREGISTER_CONTEXT(myContext1); DLT_UNREGISTER_CONTEXT(myContext2); DLT_UNREGISTER_CONTEXT(myContext3); DLT_UNREGISTER_APP(); } dlt-viewer-2.18.0+dfsg/parser/examples/example_4/mapp/dlt_id_MAPP.h0000664000175000017500000000037013001357026024372 0ustar potyrapotyra// generated file, do not edit #ifndef DLT_ID_MAPP_H #define DLT_ID_MAPP_H #define DLT_MSG_ID_MAPP_MCT1_1 1000 #define DLT_MSG_ID_MAPP_MCT2_1 1001 #define DLT_MSG_ID_MAPP_MCT3_1 1002 #define DLT_MSG_ID_MAPP_MCT1_2 1003 #endif /* DLT_ID_MAPP_H */ dlt-viewer-2.18.0+dfsg/parser/examples/example_4/capp/0000775000175000017500000000000013001357026022133 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/parser/examples/example_4/capp/dlt_id_CAPP.h0000664000175000017500000000042413001357026024346 0ustar potyrapotyra// generated file, do not edit #ifndef DLT_ID_CAPP_H #define DLT_ID_CAPP_H #define DLT_MSG_ID_CAPP_CCT1_944ef165 1000 #define DLT_MSG_ID_CAPP_CCT2_4451f8f2 1001 #define DLT_MSG_ID_CAPP_CCT3_545fc245 1002 #define DLT_MSG_ID_CAPP_CCT1_387ba9d6 1003 #endif /* DLT_ID_CAPP_H */ dlt-viewer-2.18.0+dfsg/parser/examples/example_4/capp/capp.c0000664000175000017500000000302613001357026023223 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file capp.c * For further information see http://www.genivi.org/. * @licence end@ */ #include "dlt_common_api.h" #include "dlt_id_CAPP.h" DLT_DECLARE_CONTEXT(mycContext1) DLT_DECLARE_CONTEXT(mycContext2) DLT_DECLARE_CONTEXT(mycContext3) void main() { DLT_REGISTER_APP("CAPP","My Convert Application"); DLT_REGISTER_CONTEXT_APP(mycContext1,"CCT1","CAPP","My Context 1"); DLT_REGISTER_CONTEXT_APP(mycContext2,"CCT2","CAPP","My Context 2"); DLT_REGISTER_CONTEXT_APP(mycContext3,"CCT3","CAPP","My Context 3"); DLT_LOG_ID0(mycContext1,DLT_LOG_INFO,DLT_MSG_ID_CAPP_CCT1_944ef165); DLT_LOG_ID1(mycContext2,DLT_LOG_ERROR,DLT_MSG_ID_CAPP_CCT2_4451f8f2,DLT_STRING("Hello DLT message")); DLT_LOG_ID2(mycContext3,DLT_LOG_VERBOSE,DLT_MSG_ID_CAPP_CCT3_545fc245,DLT_CSTRING("Hello value"),DLT_INT(-100)); DLT_LOG_ID3(mycContext1,DLT_LOG_FATAL,DLT_MSG_ID_CAPP_CCT1_387ba9d6,DLT_CSTRING("Hello value2"),DLT_INT(-100),DLT_UINT(200)); DLT_UNREGISTER_CONTEXT(mycContext1); DLT_UNREGISTER_CONTEXT(mycContext2); DLT_UNREGISTER_CONTEXT(mycContext3); DLT_UNREGISTER_APP(); } dlt-viewer-2.18.0+dfsg/parser/version.h0000664000175000017500000000132713001357026017355 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2014 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author * Alexander Wenzel * * \file mainwindow.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef __VERSION_H_ #define __VERSION_H_ #define PACKAGE_VERSION_STATE "Alpha" #define PACKAGE_VERSION "0.0.5" #endif dlt-viewer-2.18.0+dfsg/ReleaseNotes_Parser.txt0000664000175000017500000000101013001357026020656 0ustar potyrapotyraDLT Parser - Release Notes =========================== Alexander Wenzel Version ------- Version 0.0.5 ALPHA Known issues ------------ * If started with GUI, a commandline window opens (because als concole mode possible) Changes ------- 0.0.5 * Updated qt to version 5.4.0 * Parser: Added Windows build script. * Parser: Added missing command line options and examples. * Parser: First version of convert and update id functions. * Initial version of reference DLT parser. dlt-viewer-2.18.0+dfsg/README_Parser.txt0000664000175000017500000000226713001357026017241 0ustar potyrapotyraDLT Parser - Readme ==================== Alexander Wenzel Overview -------- DLT parser is used to generate Fibex XML files for non verbose DLT messages. Each option can only be used once. For more complex configurations use a configuration file. Documentation ------------- - DLT Parser Release Notes: ReleaseNotes_Parser.txt Command line usage ------------------ Usage windows: dlt_parser.exe [OPTIONS] Options: see --help Software/Hardware ----------------- * Developed with: QT 5.5.1 (http://qt-project.org/) * MS Windows 7 / Intel PC Dynamically linked open source software --------------------------------------- * Qt 5.5.1 (LGPL - Qt) * GCC (GPL) * (Optional) Mingw (GPL + BSD Variante + Public Domain) License ------- Full information on the license for this software is available in the "LICENSE.txt" file. Source Code ----------- git://git.projects.genivi.org/dlt-viewer.git + http://git.projects.genivi.org/dlt-viewer.git Homepage -------- http://projects.genivi.org/diagnostic-log-trace Mailinglist ----------- https://lists.genivi.org/mailman/listinfo/genivi-diagnostic-log-and-trace Contact ------- Alexander Wenzel + dlt-viewer-2.18.0+dfsg/sdk/0000775000175000017500000000000013001357026015001 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/sdk/doxygen_dlt_viewer_qdlt.cfg0000775000175000017500000021002313001357026022410 0ustar potyrapotyra# Doxyfile 1.7.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "DLT-viewer_qdlt" # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 2.8.0 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = "./doc/DLT-viewer_qdlt" # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = "The $name class" \ "The $name widget" \ "The $name file" \ is \ provides \ specifies \ contains \ represents \ a \ an \ the # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = YES # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this # tag. The format is ext=language, where ext is a file extension, and language # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = NO # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penality. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will rougly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = YES # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = YES # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = NO # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen # will list include files with double quotes in the documentation # rather than with sharp brackets. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen # will sort the (brief and detailed) documentation of class members so that # constructors and destructors are listed first. If set to NO (the default) # the constructors will appear in the respective orders defined by # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. The create the layout file # that represents doxygen's defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = ./qdlt \ ./sdk/mainpage.h # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = *.c \ *.cc \ *.cxx \ *.cpp \ *.c++ \ *.d \ *.java \ *.ii \ *.ixx \ *.ipp \ *.i++ \ *.inl \ *.h \ *.hh \ *.hxx \ *.hpp \ *.h++ # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = doc \ examples \ .git # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = * # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = doc/ # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. # Doxygen will adjust the colors in the stylesheet and background images # according to this color. Hue is specified as an angle on a colorwheel, # see http://en.wikipedia.org/wiki/Hue for more information. # For instance the value 0 represents red, 60 is yellow, 120 is green, # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below # 100 gradually make the output lighter, whereas values above 100 make # the output darker. The value divided by 100 is the actual gamma applied, # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting # this to NO can help when comparing the output of multiple runs. HTML_TIMESTAMP = YES # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = YES # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated # that can be used as input for Qt's qhelpgenerator to generate a # Qt Compressed Help (.qch) of the generated HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to # add. For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see # # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's # filter section matches. # # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files # will be generated, which together with the HTML files, form an Eclipse help # plugin. To install this plugin and make it available under the help contents # menu in Eclipse, the contents of the directory containing the HTML and XML # files needs to be copied into the plugins directory of eclipse. The name of # the directory within the plugins directory should be the same as # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have # this name. ECLIPSE_DOC_ID = org.doxygen.Project # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open # links to external symbols imported via tag files in a separate window. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are # not supported properly for IE 6.0, but are supported on all modern browsers. # Note that when changing this option you need to delete any form_*.png files # in the HTML output before the changes have effect. FORMULA_TRANSPARENT = YES # When the SEARCHENGINE tag is enabled doxygen will generate a search box # for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets # (GENERATE_DOCSET) there is already a search function so this one should # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. SEARCHENGINE = NO # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client # using Javascript. Doxygen will generate the search PHP script and index # file to put on the web server. The advantage of the server # based approach is that it scales better to large projects and allows # full text search. The disadvances is that it is more difficult to setup # and does not have live searching capabilities. SERVER_BASED_SEARCH = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. # Note that when enabling USE_PDFLATEX this option is only used for # generating bitmaps for formulas in the HTML output, but not in the # Makefile that is written to the output directory. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include # source code with syntax highlighting in the LaTeX output. # Note that which sources are shown also depends on other settings # such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = YES # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = NO #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is # allowed to run in parallel. When set to 0 (the default) doxygen will # base this on the number of processors available in the system. You can set it # explicitly to a value larger than 0 to get control over the balance # between CPU load and processing speed. DOT_NUM_THREADS = 0 # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = YES # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = YES # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES dlt-viewer-2.18.0+dfsg/sdk/mainpage.h0000664000175000017500000000124613001357026016736 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \author Christian Muck 2011-2012 * * \file mainpage.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef MAINPAGE_H_ #define MAINPAGE_H_ #endif /* MAINPAGE_H_ */ dlt-viewer-2.18.0+dfsg/sdk/create_sdk.bat0000664000175000017500000000457413001357026017607 0ustar potyrapotyraset MINGW_DIR=C:\MinGW set QT_DIR=C:\QtSDK\Desktop\Qt\4.8.1\mingw\bin set SOURCE_DIR=C:\data\git\DLT-viewer set BUILD_DIR=C:\data\git\viewer-release\release set TARGET_DIR=c:\DltViewerSDK cd %BUILD_DIR% ECHO Create directories mkdir %TARGET_DIR% mkdir %TARGET_DIR%\plugins mkdir %TARGET_DIR%\sdk mkdir %TARGET_DIR%\sdk\include mkdir %TARGET_DIR%\sdk\lib mkdir %TARGET_DIR%\sdk\src mkdir %TARGET_DIR%\sdk\src\dummydecoderplugin mkdir %TARGET_DIR%\sdk\src\dummyviewerplugin mkdir %TARGET_DIR%\sdk\src\dummycontrolplugin ECHO Copy files copy %MINGW_DIR%\bin\mingwm10.dll %TARGET_DIR% copy %MINGW_DIR%\bin\libgcc_s_dw2-1.dll %TARGET_DIR% copy "%MINGW_DIR%\bin\libstdc++-6.dll" %TARGET_DIR% copy %QT_DIR%\QtCore4.dll %TARGET_DIR% copy %QT_DIR%\QtGui4.dll %TARGET_DIR% copy %QT_DIR%\QtNetwork4.dll %TARGET_DIR% copy %BUILD_DIR%\dlt_viewer.exe %TARGET_DIR% copy %BUILD_DIR%\qextserialport.dll %TARGET_DIR% copy %BUILD_DIR%\qdlt.dll %TARGET_DIR% copy %BUILD_DIR%\plugins\dltviewerplugin.dll %TARGET_DIR%\plugins copy %BUILD_DIR%\plugins\nonverboseplugin.dll %TARGET_DIR%\plugins copy %BUILD_DIR%\plugins\filetransferplugin.dll %TARGET_DIR%\plugins copy %BUILD_DIR%\plugins\dltsystemviewerplugin.dll %TARGET_DIR%\plugins copy %SOURCE_DIR%\ReleaseNotes_Viewer.txt %TARGET_DIR% copy %SOURCE_DIR%\qdlt\dlt.h %TARGET_DIR%\sdk\include copy %SOURCE_DIR%\qdlt\dlt_common.h %TARGET_DIR%\sdk\include copy %SOURCE_DIR%\qdlt\dlt_protocol.h %TARGET_DIR%\sdk\include copy %SOURCE_DIR%\qdlt\dlt_types.h %TARGET_DIR%\sdk\include copy %SOURCE_DIR%\qdlt\dlt_user.h %TARGET_DIR%\sdk\include copy %SOURCE_DIR%\qdlt\dlt_user_macros.h %TARGET_DIR%\sdk\include copy %SOURCE_DIR%\qdlt\qdlt.h %TARGET_DIR%\sdk\include copy %SOURCE_DIR%\src\plugininterface.h %TARGET_DIR%\sdk\include copy %BUILD_DIR%\libqdlt.a %TARGET_DIR%\sdk\lib copy %BUILD_DIR%\libqextserialport.a %TARGET_DIR%\sdk\lib copy %SOURCE_DIR%\plugin\dummyviewerplugin %TARGET_DIR%\sdk\src\dummyviewerplugin copy %SOURCE_DIR%\plugin\dummydecoderplugin %TARGET_DIR%\sdk\src\dummydecoderplugin copy %SOURCE_DIR%\plugin\dummycontrolplugin %TARGET_DIR%\sdk\src\dummycontrolplugin copy %SOURCE_DIR%\sdk\BuildPlugins.pro %TARGET_DIR%\sdk\src copy %SOURCE_DIR%\sdk\dummydecoderplugin.pro %TARGET_DIR%\sdk\src\dummydecoderplugin copy %SOURCE_DIR%\sdk\dummyviewerplugin.pro %TARGET_DIR%\sdk\src\dummyviewerplugin copy %SOURCE_DIR%\sdk\dummycontrolplugin.pro %TARGET_DIR%\sdk\src\dummycontrolplugindlt-viewer-2.18.0+dfsg/sdk/dummyviewerplugin.pro0000664000175000017500000000135313001357026021321 0ustar potyrapotyraTEMPLATE = lib CONFIG += plugin # Put intermediate files in the build directory MOC_DIR = build/moc OBJECTS_DIR = build/obj RCC_DIR = build/rcc UI_DIR = build/ui CONFIG(debug, debug|release) { DESTDIR = ../../../plugins QMAKE_LIBDIR += ../../lib LIBS += -lqdltd } else { DESTDIR = ../../../plugins QMAKE_LIBDIR += ../../lib LIBS += -lqdlt } TARGET = $$qtLibraryTarget(dummyviewerplugin) # Defines and Header Directories DEFINES += QT_VIEWER INCLUDEPATH += ../../include # Project files HEADERS += dummyviewerplugin.h \ form.h \ ../../include/qdlt.h \ ../../include/plugininterface.h SOURCES += dummyviewerplugin.cpp \ form.cpp FORMS += form.ui dlt-viewer-2.18.0+dfsg/sdk/dummycontrolplugin.pro0000664000175000017500000000135613001357026021503 0ustar potyrapotyraTEMPLATE = lib CONFIG += plugin # Put intermediate files in the build directory MOC_DIR = build/moc OBJECTS_DIR = build/obj RCC_DIR = build/rcc UI_DIR = build/ui CONFIG(debug, debug|release) { DESTDIR = ../../../plugins QMAKE_LIBDIR += ../../lib LIBS += -lqdltd } else { DESTDIR = ../../../plugins QMAKE_LIBDIR += ../../lib LIBS += -lqdlt } TARGET = $$qtLibraryTarget(dummycontrolplugin) # Defines and Header Directories DEFINES += QT_VIEWER INCLUDEPATH += ../../include # Project files HEADERS += dummycontrolplugin.h \ form.h \ ../../include/qdlt.h \ ../../include/plugininterface.h SOURCES += dummycontrolplugin.cpp \ form.cpp FORMS += form.ui dlt-viewer-2.18.0+dfsg/sdk/BuildPlugins.pro0000664000175000017500000000015613001357026020126 0ustar potyrapotyra# TEMPLATE = subdirs CONFIG += ordered SUBDIRS += dummyviewerplugin dummydecoderplugin dummycontrolplugin dlt-viewer-2.18.0+dfsg/sdk/doxygen_dlt_viewer_plugininterface.cfg0000775000175000017500000020706213001357026024634 0ustar potyrapotyra# Doxyfile 1.7.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "DLT-viewer_plugininterface" # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 2.8.0 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = "./doc/DLT-viewer_plugininterface" # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = "The $name class" \ "The $name widget" \ "The $name file" \ is \ provides \ specifies \ contains \ represents \ a \ an \ the # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = YES # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this # tag. The format is ext=language, where ext is a file extension, and language # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = NO # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penality. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will rougly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = YES # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = YES # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = NO # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen # will list include files with double quotes in the documentation # rather than with sharp brackets. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen # will sort the (brief and detailed) documentation of class members so that # constructors and destructors are listed first. If set to NO (the default) # the constructors will appear in the respective orders defined by # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. The create the layout file # that represents doxygen's defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = ./src/plugininterface.h \ ./sdk/mainpage.h # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = doc \ examples \ .git # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = * # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = doc/ # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. # Doxygen will adjust the colors in the stylesheet and background images # according to this color. Hue is specified as an angle on a colorwheel, # see http://en.wikipedia.org/wiki/Hue for more information. # For instance the value 0 represents red, 60 is yellow, 120 is green, # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below # 100 gradually make the output lighter, whereas values above 100 make # the output darker. The value divided by 100 is the actual gamma applied, # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting # this to NO can help when comparing the output of multiple runs. HTML_TIMESTAMP = YES # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = YES # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated # that can be used as input for Qt's qhelpgenerator to generate a # Qt Compressed Help (.qch) of the generated HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to # add. For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see # # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's # filter section matches. # # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files # will be generated, which together with the HTML files, form an Eclipse help # plugin. To install this plugin and make it available under the help contents # menu in Eclipse, the contents of the directory containing the HTML and XML # files needs to be copied into the plugins directory of eclipse. The name of # the directory within the plugins directory should be the same as # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have # this name. ECLIPSE_DOC_ID = org.doxygen.Project # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open # links to external symbols imported via tag files in a separate window. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are # not supported properly for IE 6.0, but are supported on all modern browsers. # Note that when changing this option you need to delete any form_*.png files # in the HTML output before the changes have effect. FORMULA_TRANSPARENT = YES # When the SEARCHENGINE tag is enabled doxygen will generate a search box # for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets # (GENERATE_DOCSET) there is already a search function so this one should # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. SEARCHENGINE = NO # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client # using Javascript. Doxygen will generate the search PHP script and index # file to put on the web server. The advantage of the server # based approach is that it scales better to large projects and allows # full text search. The disadvances is that it is more difficult to setup # and does not have live searching capabilities. SERVER_BASED_SEARCH = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. # Note that when enabling USE_PDFLATEX this option is only used for # generating bitmaps for formulas in the HTML output, but not in the # Makefile that is written to the output directory. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include # source code with syntax highlighting in the LaTeX output. # Note that which sources are shown also depends on other settings # such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = YES # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = NO #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is # allowed to run in parallel. When set to 0 (the default) doxygen will # base this on the number of processors available in the system. You can set it # explicitly to a value larger than 0 to get control over the balance # between CPU load and processing speed. DOT_NUM_THREADS = 0 # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = YES # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = YES # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES dlt-viewer-2.18.0+dfsg/sdk/doxygen_dlt_viewer.cfg0000775000175000017500000021004213001357026021365 0ustar potyrapotyra# Doxyfile 1.7.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "DLT-viewer" # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 2.8.0 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = "./doc/DLT-viewer" # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = "The $name class" \ "The $name widget" \ "The $name file" \ is \ provides \ specifies \ contains \ represents \ a \ an \ the # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = YES # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this # tag. The format is ext=language, where ext is a file extension, and language # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = NO # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penality. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will rougly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = YES # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = YES # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = NO # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen # will list include files with double quotes in the documentation # rather than with sharp brackets. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen # will sort the (brief and detailed) documentation of class members so that # constructors and destructors are listed first. If set to NO (the default) # the constructors will appear in the respective orders defined by # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. The create the layout file # that represents doxygen's defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = ./src \ ./plugin \ ./qdlt \ ./sdk/mainpage.h # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = *.c \ *.cc \ *.cxx \ *.cpp \ *.c++ \ *.d \ *.java \ *.ii \ *.ixx \ *.ipp \ *.i++ \ *.inl \ *.h \ *.hh \ *.hxx \ *.hpp \ *.h++ # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = doc \ examples \ .git # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = * # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = doc/ # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. # Doxygen will adjust the colors in the stylesheet and background images # according to this color. Hue is specified as an angle on a colorwheel, # see http://en.wikipedia.org/wiki/Hue for more information. # For instance the value 0 represents red, 60 is yellow, 120 is green, # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below # 100 gradually make the output lighter, whereas values above 100 make # the output darker. The value divided by 100 is the actual gamma applied, # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting # this to NO can help when comparing the output of multiple runs. HTML_TIMESTAMP = YES # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = YES # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated # that can be used as input for Qt's qhelpgenerator to generate a # Qt Compressed Help (.qch) of the generated HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to # add. For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see # # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's # filter section matches. # # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files # will be generated, which together with the HTML files, form an Eclipse help # plugin. To install this plugin and make it available under the help contents # menu in Eclipse, the contents of the directory containing the HTML and XML # files needs to be copied into the plugins directory of eclipse. The name of # the directory within the plugins directory should be the same as # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have # this name. ECLIPSE_DOC_ID = org.doxygen.Project # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open # links to external symbols imported via tag files in a separate window. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are # not supported properly for IE 6.0, but are supported on all modern browsers. # Note that when changing this option you need to delete any form_*.png files # in the HTML output before the changes have effect. FORMULA_TRANSPARENT = YES # When the SEARCHENGINE tag is enabled doxygen will generate a search box # for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets # (GENERATE_DOCSET) there is already a search function so this one should # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. SEARCHENGINE = NO # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client # using Javascript. Doxygen will generate the search PHP script and index # file to put on the web server. The advantage of the server # based approach is that it scales better to large projects and allows # full text search. The disadvances is that it is more difficult to setup # and does not have live searching capabilities. SERVER_BASED_SEARCH = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. # Note that when enabling USE_PDFLATEX this option is only used for # generating bitmaps for formulas in the HTML output, but not in the # Makefile that is written to the output directory. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include # source code with syntax highlighting in the LaTeX output. # Note that which sources are shown also depends on other settings # such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = YES # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = NO #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is # allowed to run in parallel. When set to 0 (the default) doxygen will # base this on the number of processors available in the system. You can set it # explicitly to a value larger than 0 to get control over the balance # between CPU load and processing speed. DOT_NUM_THREADS = 0 # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = YES # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = YES # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES dlt-viewer-2.18.0+dfsg/sdk/dummydecoderplugin.pro0000664000175000017500000000125313001357026021424 0ustar potyrapotyraTEMPLATE = lib CONFIG += plugin # Put intermediate files in the build directory MOC_DIR = build/moc OBJECTS_DIR = build/obj RCC_DIR = build/rcc UI_DIR = build/ui CONFIG(debug, debug|release) { DESTDIR = ../../../plugins QMAKE_LIBDIR += ../../lib LIBS += -lqdltd } else { DESTDIR = ../../../plugins QMAKE_LIBDIR += ../../lib LIBS += -lqdlt } TARGET = $$qtLibraryTarget(dummydecoderplugin) # Defines and Header Directories DEFINES += QT_VIEWER INCLUDEPATH += ../../include # Project files HEADERS += dummydecoderplugin.h \ ../../include/qdlt.h \ ../../include/plugininterface.h SOURCES += dummydecoderplugin.cpp dlt-viewer-2.18.0+dfsg/qextserialport/0000775000175000017500000000000013001357026017306 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/qextserialport/LICENSE0000664000175000017500000000724213001357026020320 0ustar potyrapotyraFrom QextSerialPort 1.2-beta on, we use MIT license for QextSerialPort project. == License == Copyright (c) 2000-2003 Wayne Roth Copyright (c) 2004-2007 Stefan Sander Copyright (c) 2007 Michal Policht Copyright (c) 2008 Brandon Fosdick Copyright (c) 2009-2010 Liam Staskawicz Copyright (c) 2011 Debao Zhang Web: http://code.google.com/p/qextserialport/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. == Why license needed? == Many users complains that, without a proper licence they can not use this library. * http://groups.google.com/group/qextserialport/browse_thread/thread/0e8756920b01da82 Hi, we are considering using a modified version of QExtSerialPort in one of our projects (Qt Creator, http://qt.gitorious.org/qt-creator). Would it be possible to add license header information or a license file to the QExtSerialPort code base? - This would make re-use of the code base easier. If that is not possible, could we redistribute the source code with BSD- license headers manually added? And I am also considering packaging the software for Debian, but I couldn't do it yet just because of the license. * http://code.google.com/p/qextserialport/issues/detail?id=8 Questions: Can I use qextserialport in a commercial product? If yes, how? Compile it in? I guess no. If I can use it as a library, how should the README be formulated? Is the "MIT license" from 2008 appropriate? == Why can we use MIT? == Form the history of [http://lists.trolltech.com/qt-interest/2004-12/msg01022.html qt-interest mail list] * Wayne Roth, the original author of the project, had said that: the code is in the public domain. Do whatever you like with it. Right now I have too many other things to do to put any serious time into fixing it. Trolltech should be aware of this already; they asked about a license when they offered to host the tarball. * Stefan Sander, the maintainer of qextserialport on sourceforge, said that Hello, My project registration at !SourceForge have been approved. http://www.sf.net/projects/qextserialport I thought an initial licence of Public Domain would be best solution. Someone wrote: - Because its public domain, some could fork it under different licenses - And from [http://groups.google.com/group/qextserialport/browse_thread/thread/fbcddbfb4a0b5a51?pli=1 this thread] on qesp mail list, we can see that, current maintainers and users agree with a MIT licence. * Brandon Fosdick, I would vote for BSD or MIT :) * Liam Staskawicz, That works for me - let's call it MIT and go for it :) dlt-viewer-2.18.0+dfsg/qextserialport/qextserialport.pro0000664000175000017500000000021413001357026023113 0ustar potyrapotyraTEMPLATE=subdirs CONFIG += ordered include(common.pri) qextserialport-library:SUBDIRS=buildlib #SUBDIRS+=examples #include(doc/doc.pri) dlt-viewer-2.18.0+dfsg/qextserialport/ChangeLog0000664000175000017500000003173113001357026021065 0ustar potyrapotyraChange history for QextSerialPort (formerly QwSerialPort): (Lines beginning with + represent new functionality, * represent changed or fixed functionality, - represent removed or deprecated functionality) Version 1.2 beta1 (2012 Debao Zhang) * D-pointer and Q_PRIVATE_SLOT are used to moving private members from QextSerialPort to QextSerialPortPrivate * qdoc3 instead of doxygen is used for generating documents * MIT license header add to all sources files + add a helper class QextWinEventNotifier for windows user, when user's SDK doesnot contain Qt's private files, this class will be auto selected. + Support platform custom baudrate. Macros such as B230400 / B460800 can be used directly if you OS support it. Version 1.2win-alpha (2007 Michal Policht) + Added QextSerialEnumerator pre-alpha. Works under W2k and later versions of Windows. + Event driven mechanism (alternative to polling) is now available on Windows. - Removed default (=0) parameter from open() functions. * Fixed bug #1714917 in Win_QextSerialPort::close() method (by Kurt). * Fixed problem with lack of proper blocking in readData() on win32 (by Brandon Fosdick). * Removed QT_THREAD_SUPPORT option. Now QextSerialPort must be always compiled with threads support. * Mutexes are not static. * setTimeout() now accepts only one parameter. * bytesAvailable() on POSIX now shows 0 bytes instead of -1 when no bytes are available. * bytesAvailable() is const. * native POSIX file descriptors instead of QFile->handle() calls + POSIX: Save and restore original termios when opening and closing the device * POSIX: Only disable special characters on systems that support it * POSIX: Use cfmakeraw(3) to get a non-canonical termios + POSIX: Call close(2) in close() to actually close the device Version 1.1 (official release) Version 1.0.1 * Minor changes (mostly in test application) Version 1.0.0e (by Micha? Policht) * Fixed bytesAvailable(). Includes buffered bytes to the result. + Added isSequential() method. + Provided test application Version 1.0.0d ( changes by Micha? Policht ) - Removed isOpen() overriden declaration/implementation from qextserialport's classes. isOpen() relies on QIODevice now. - Removed bool portOpen variable. Replaced by internal QIODevice.openMode. - Removed getChar(), putChar() overriden declaration/implementation. QIODevice can handle this. * Calling open() with specified OpenMode invokes QIODevice::open() which result in proper openMode setting. * readData(), writeData() are protected as in QIODevice declaration. * QIODevice:: read() and write() function are working now (use them instead of readData() writeData()). * readData(), writeData() don't check if port is open any more (read() and write() assures that). The same behaviour can be found in QFile for example. * Fixed readLine(). * Fixed randomly crash on deletion bug on Windows ( by Stuart Nixon ) http://lists.trolltech.com/qt-interest/2007-02/thread00340-0.html#msg00351 Version 0.9 (March 3, 2005) Stefan Sander : + Added a new precompiler constant, _TTY_FREEBSD_ to support FreeBSD port names. + Added _TTY_WIN_ constant in qextserialport.pro win32:DEFINES to have Windows port names as default when compiling on it. - Removed construct() call from QextSerialBase constructors, it is called indirectly through Win_QextSerialPort::construct() and Posix_QextSerialPort::construct(). + Added construct() call to Win_QextSerialPort constructors. + Added setTimeout(0, 500) call to Win_QextSerialPort::construct(). - Removed setTimeout(0, 500) call from Win_QextSerialPort(const char* name). * Fixed Posix_QextSerialPort::open(int) control flow, now the port settings are only applied if the associated file could be opened. * Fixed masking CR to NL, in Posix_CommConfig.c_iflag Version 0.8 (, 2003) (Alpha release): * Added code to set the port timeouts in Win_QextSerialPort's default constructor. * Fixed Posix_QextSerialPort::construct() to set up the port correctly. * Fixed syntax errors in 2 ioctl() calls in posix_QextSerialPort. * lastError is now initialized to E_NO_ERROR in the QextSerialBase constructor. * The select() call in posix_QextSerialPort::bytesWaiting() is now properly coded. Previously it would always time out. * Fixed runtime errors in the ioctl() calls for Posix_QextSerialPort::setDtr() and Posix_QextSerialPort::setRts(). Thanks to Marc Pignat. Version 0.7 (June 15, 2002) : (0.61 - unofficial release) * Fixed a small bug in the initializations of the static members when QT_THREAD_SUPPORT was defined. * Fixed a bug that caused Borland's compiler to choke on Windows platforms (which perversely actually stemmed from a shortcoming of Visual C++ that Borland doesn't have). (0.62 - unofficial release) * Fixed a bug that gave Q_LONG the wrong typedef for QT versions prior to 3.0. (0.63 - unofficial release) * Fixed 2 incorrect references to Posix_Comm_Config. * Fixed scoping of Posix_QextSerialPort::operator=(). * Posix_QextSerialPort::construct should now be coded correctly. * Fixed return type for Posix_QextSerialPort::size(). (0.64 - unofficial release) * Fixed all the port settings functions to work properly when opening the port for the first time - previously none of the settings were being applied when the port was opened. * Fixed an oversight in Win_QextSerialPort::open() that caused the setting of port parameters to fail on NT and 2000 systems. (0.7 - official release) * Fixed some calls to QextSerialBase constructors that no longer exist on the POSIX side. * Fixed the bad memcpy()'s in the POSIX copy constructor. * Fixed the Offset scoping problem under gcc 2.95. * The CBAUD flag has been deprecated on some POSIX systems. Fixed Posix_QextSerialPort::setBaudRate() to reflect this. * Added construct() calls to all of the Posix_QextSerialPort constructors. * Fixed double (and conflicting) typedefs of Offset when using QT versions prior to 3.0 * Changed the call to CreateFile() to CreateFileA() in Win_QextSerialPort.cpp. This should get rid of problems for those using Unicode or other multibyte character sets for their string literals. * A few tweaks to the documentation. - Removed the protected Posix_Handle variable from Posix_QextSerialPort. Version 0.6 (March 11, 2002) : + Added a new precompiler constant, QTVER_PRE_30. QT3 changed the return types of some QIODevice functions. Therefore, if compiling on versions of QT prior to 3.0, you should always define QTVER_PRE_30 in your project. Also had to add some preprocessor blocks to support both 3.0 and earlier versions of QT. + Added implementations of 2 of the new constructors added in 0.5 to both Win_QextSerialPort and Posix_QextSerialPort. * The scoping of the enums used in the PortSettings struct has been fixed. * QObject inheritance has been removed. This should not affect the functionality of the classes. * Replaced a few stray references to mutex->unlock() with UNLOCK_MUTEX() in the Windows code. * Fixed several runtime errors caused by calling nonexistent members of QextSerialBase. * Fixed a whole bunch of little things that were causing MSVC to choke when compiling for Windows. Version 0.5 (February 15, 2002): + There are 4 new macros (LOCK_MUTEX, UNLOCK_MUTEX, TTY_WARNING, and TTY_PORTABILITY_WARNING) that replace most of those ugly #ifdef blocks in the code. + In place of the old namingConvention stuff, there is a new function, setName(). It is used to set the name of the device to be associated with the object. The new name() function can be used to retrieve the device name, which is stored in the new member variable portName. + There is a new version of open() that takes a const char* as a parameter. It can be used to specify the name of the device when it is opened rather than at construction time. * 3 constructors have been removed and 3 more added. There is now a copy constructor (and operator=()) as well as a constructor that takes a PortSettings structure as a parameter, and another that takes both a device name and a PortSettings structure. As a result of these changes the PortSettings structure declaration is no longer local to the QextSerialBase class. All of the removed constructors had to do with the setNamingConvention() system. * The static mutex member should now be reference-counted and only deleted when it is no longer referenced. * Most of the object construction duties have been pushed back into QextSerialBase * Fixed a couple resource leaks, mostly to do with unlocking the mutex properly - Removed the setNamingConvention() nonsense. - Removed all QStrings and calls to sprintf() for thread compatibility. - Removed setNumber() functions as well as the portNumber member variable, as they were only necessary under the setNamingConvention() system. I am grateful to Jorg Preiss (Preisz? Sorry, American keyboards don't have an ess-tset character ;)) for his invaluable input on most of the changes that went into this version. Version 0.4 (March 20, 2001): + All of the classes now derive from QObject as well as QIODevice. This is pretty much useless at the moment - signals and slots may be used to implement asynchronous communications in a future version + Added configurable timeouts via the setTimeout() function. The default timeout for read and write operations is now 500 milliseconds + There is now a functional .pro file for the library (thanks to Gunnstein Lye) + The prefixes for all of the classes have changed from Qw to Qext, in compliance with the qt-addons project standard * Fixed a bug that caused port settings to be restored incorrectly when switching ports with setNumber() * Minor changes to QextSerialBase::setNumber(). Functionality should now reflect the documentation, which has also been updated to reflect the changes that went in on version 0.3. * Some fixes to the documentation. The Posix_QextSerialPort and Win_QextSerialPort classes should no longer have any unnecessary references to inapplicable platforms, and the documentation for open() has been updated. * Should now compile without QT_THREAD_SUPPORT defined (ie, in single- threaded environments), although it will require slight changes to the makefile (tmake "CONFIG-=thread" should work) * Fixed a few compilation issues, especially on the POSIX side (should compile under Linux now :)) * POSIX code is a little cleaner and more efficient * Various small fixes to the documentation * Constants now follow a consistent naming convention, with underscores at the beginning and end of each. For example TTY_POSIX has become _TTY_POSIX_ Version 0.3 (Feb. 14, 2001): + Added a warning that appears when QwSerialPort is compiled on a POSIX platform that does not implement 76800 baud operation. In this situation QwSerialPort will also switch to 57600 baud. + Major code reorganization - there are now 4 classes instead of 1. This should remove a lot of the #ifdef...#else...#endif constructs and hopefully make the code easier to read. Including the class in your project is still done by including QwSerialPort.h and instantiating a QwSerialPort object. * The serial port associated with a QwSerialPort object is no longer opened on construction, or upon calling the setNumber() function. You must now explicitly call open() to open the port. Version 0.2 (Jan. 3, 2001): + Added lastError() function with rudimentary error codes + Better documentation + Added ability to examine the empty/not empty state of a port's input buffer with atEnd() + Added ability to retrieve the number of bytes in a port's input buffer with size() (thanks to Olivier Tubach) + Added ability to turn off portability warnings by defining TTY_NOWARN_PORT in your project + Added ability to turn off all warning messages by defining TTY_NOWARN in your project + Added ability to select POSIX serial functions in Windows NT/2000 by defining TTY_POSIX in your project (untested) + Added control over RTS and DTR lines with setRts() and setDtr() respectively + Added ability to query line status using lineStatus(). + Added readLine() functionality (thanks to Olivier Tubach) + Added bytesWaiting(), a non-const/thread-safe version of size() + The class should now be thread-safe through the use of a recursive QMutex (untested) * Fixed a bug that could cause hardware flow control not to work on some POSIX systems * Put in a few missing fileno() calls in the POSIX code * Fixed a few syntax errors that caused compilation to fail on POSIX systems - BAUD0 is no longer a valid baud rate setting - to drop the DTR line, call setDtr(FALSE) Version 0.1 (Dec. 11, 2000): Initial public release. dlt-viewer-2.18.0+dfsg/qextserialport/src/0000775000175000017500000000000013001357026020075 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/qextserialport/src/qextwineventnotifier_p.cpp0000664000175000017500000001650013001357026025423 0ustar potyrapotyra/**************************************************************************** ** Copyright (c) 2000-2003 Wayne Roth ** Copyright (c) 2004-2007 Stefan Sander ** Copyright (c) 2007 Michal Policht ** Copyright (c) 2008 Brandon Fosdick ** Copyright (c) 2009-2010 Liam Staskawicz ** Copyright (c) 2011 Debao Zhang ** All right reserved. ** Web: http://code.google.com/p/qextserialport/ ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the ** "Software"), to deal in the Software without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Software, and to ** permit persons to whom the Software is furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ** ****************************************************************************/ #include "qextwineventnotifier_p.h" #include #include #include #include #include #include #include class QextWinEventNotifierPrivate { Q_DECLARE_PUBLIC(QextWinEventNotifier) public: QextWinEventNotifierPrivate(HANDLE hEvent, QextWinEventNotifier * q) :handleToEvent(hEvent), enabled(false), q_ptr(q) {} HANDLE handleToEvent; bool enabled; private: QextWinEventNotifier * q_ptr; }; /* \internal \class QextWinEventNotifierThread This class works more or less like an EventDispatcher. The api function WaitForMultipleObjects() is used in the new thread to wait for the registered handle. */ class QextWinEventNotifierThread:public QThread { public: explicit QextWinEventNotifierThread(QObject * parent=0); ~QextWinEventNotifierThread(); void stop(); bool registerEventNotifier(QextWinEventNotifier * notifier); void unregisterEventNotifier(QextWinEventNotifier * notifier); protected: void run(); private: HANDLE hStopEvent; //stop thread when this event signaled. HANDLE hUpdateEvent; //make sure eventlist updated. QMutex mutex; QList winEventNotifierList; }; Q_GLOBAL_STATIC(QextWinEventNotifierThread, notifierThread) QextWinEventNotifierThread::QextWinEventNotifierThread(QObject * parent) :QThread(parent) { hStopEvent = CreateEvent(NULL, TRUE, FALSE, NULL); hUpdateEvent = CreateEvent(NULL, FALSE, FALSE, NULL); start(); } QextWinEventNotifierThread::~QextWinEventNotifierThread() { if (isRunning()) stop(); CloseHandle(hStopEvent); CloseHandle(hUpdateEvent); } void QextWinEventNotifierThread::stop() { { QMutexLocker locker(&mutex); SetEvent(hStopEvent); } wait(); /// Is this an good idea? } bool QextWinEventNotifierThread::registerEventNotifier(QextWinEventNotifier *notifier) { QMutexLocker locker(&mutex); if (!notifier) { QESP_WARNING("QextWinEventNotifier: Internal error"); return false; } if (winEventNotifierList.contains(notifier)) return true; if (winEventNotifierList.count() >= MAXIMUM_WAIT_OBJECTS - 3) { QESP_WARNING("QextWinEventNotifier: Cannot have more than %d enabled at one time", MAXIMUM_WAIT_OBJECTS - 3); return false; } winEventNotifierList.append(notifier); SetEvent(hUpdateEvent); return true; } void QextWinEventNotifierThread::unregisterEventNotifier(QextWinEventNotifier *notifier) { QMutexLocker locker(&mutex); if (!notifier) { QESP_WARNING("QextWinEventNotifier: Internal error"); return; } int idx = winEventNotifierList.indexOf(notifier); if (idx != -1) { winEventNotifierList.takeAt(idx); SetEvent(hUpdateEvent); } } void QextWinEventNotifierThread::run() { forever{ HANDLE pHandles[MAXIMUM_WAIT_OBJECTS - 1]; DWORD nCount = 0; { QMutexLocker locker(&mutex); nCount = winEventNotifierList.count(); for (int i=0; i<(int)nCount; ++i) pHandles[i] = winEventNotifierList.at(i)->handle(); pHandles[nCount] = hUpdateEvent; pHandles[nCount+1] = hStopEvent; } DWORD ret = WaitForMultipleObjects(nCount+2, pHandles, FALSE, INFINITE); if (ret >= WAIT_OBJECT_0 && ret < WAIT_OBJECT_0 + nCount) { QEvent *evt = new QEvent(QEvent::User); QMutexLocker locker(&mutex); ResetEvent(pHandles[ret-WAIT_OBJECT_0]); QObject * notifier = winEventNotifierList[ret - WAIT_OBJECT_0]; QCoreApplication::postEvent(notifier, evt); } else if (ret == WAIT_OBJECT_0 + nCount) { //ResetEvent(hUpdateEvent); } else if (ret == WAIT_OBJECT_0 + nCount + 1) { //qDebug()<<"quit..."; return; } } } /*! \internal \class QextWinEventNotifier \brief The QextWinEventNotifier class provides support for the Windows Wait functions. The QextWinEventNotifier class makes it possible to use the wait functions on windows in a asynchronous manner. With this class you can register a HANDLE to an event and get notification when that event becomes signalled. \bold Note: If it is a manual reset event ,it will be reset before the notification. This is different from QWinEventNotifier. \bold Note: All the registered handles will be waited under a new thread. This is different from QWinEventNotifier whose event handle will be waited in its affinal thread. */ QextWinEventNotifier::QextWinEventNotifier(QObject *parent) : QObject(parent), d_ptr(new QextWinEventNotifierPrivate(0, this)) {} QextWinEventNotifier::QextWinEventNotifier(HANDLE hEvent, QObject *parent) : QObject(parent), d_ptr(new QextWinEventNotifierPrivate(hEvent, this)) { setEnabled(true); } QextWinEventNotifier::~QextWinEventNotifier() { setEnabled(false); } void QextWinEventNotifier::setHandle(HANDLE hEvent) { setEnabled(false); Q_D(QextWinEventNotifier); d->handleToEvent = hEvent; } HANDLE QextWinEventNotifier::handle() const { return d_func()->handleToEvent; } bool QextWinEventNotifier::isEnabled() const { return d_func()->enabled; } void QextWinEventNotifier::setEnabled(bool enable) { Q_D(QextWinEventNotifier); if (d->enabled == enable) return; d->enabled = enable; if (d->enabled) notifierThread()->registerEventNotifier(this); else notifierThread()->unregisterEventNotifier(this); } bool QextWinEventNotifier::event(QEvent * e) { Q_D(QextWinEventNotifier); QObject::event(e); if (e->type() == QEvent::User) { emit activated(d->handleToEvent); return true; } return false; } dlt-viewer-2.18.0+dfsg/qextserialport/src/qextserialport_unix.cpp0000664000175000017500000003423713001357026024743 0ustar potyrapotyra/**************************************************************************** ** Copyright (c) 2000-2003 Wayne Roth ** Copyright (c) 2004-2007 Stefan Sander ** Copyright (c) 2007 Michal Policht ** Copyright (c) 2008 Brandon Fosdick ** Copyright (c) 2009-2010 Liam Staskawicz ** Copyright (c) 2011 Debao Zhang ** All right reserved. ** Web: http://code.google.com/p/qextserialport/ ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the ** "Software"), to deal in the Software without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Software, and to ** permit persons to whom the Software is furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ** ****************************************************************************/ #include "qextserialport.h" #include "qextserialport_p.h" #include #include #include #include #include #include #include #include #include #include void QextSerialPortPrivate::platformSpecificInit() { fd = 0; readNotifier = 0; } /*! Standard destructor. */ void QextSerialPortPrivate::platformSpecificDestruct() { } bool QextSerialPortPrivate::open_sys(QIODevice::OpenMode mode) { Q_Q(QextSerialPort); //note: linux 2.6.21 seems to ignore O_NDELAY flag if ((fd = ::open(port.toLatin1() ,O_RDWR | O_NOCTTY | O_NDELAY)) != -1) { /*In the Private class, We can not call QIODevice::open()*/ q->setOpenMode(mode); // Flag the port as opened ::tcgetattr(fd, &old_termios); // Save the old termios Posix_CommConfig = old_termios; // Make a working copy ::cfmakeraw(&Posix_CommConfig); // Enable raw access /*set up other port settings*/ Posix_CommConfig.c_cflag |= CREAD|CLOCAL; Posix_CommConfig.c_lflag &= (~(ICANON|ECHO|ECHOE|ECHOK|ECHONL|ISIG)); Posix_CommConfig.c_iflag &= (~(INPCK|IGNPAR|PARMRK|ISTRIP|ICRNL|IXANY)); Posix_CommConfig.c_oflag &= (~OPOST); Posix_CommConfig.c_cc[VMIN] = 0; #ifdef _POSIX_VDISABLE // Is a disable character available on this system? // Some systems allow for per-device disable-characters, so get the // proper value for the configured device const long vdisable = ::fpathconf(fd, _PC_VDISABLE); Posix_CommConfig.c_cc[VINTR] = vdisable; Posix_CommConfig.c_cc[VQUIT] = vdisable; Posix_CommConfig.c_cc[VSTART] = vdisable; Posix_CommConfig.c_cc[VSTOP] = vdisable; Posix_CommConfig.c_cc[VSUSP] = vdisable; #endif //_POSIX_VDISABLE settingsDirtyFlags = DFE_ALL; updatePortSettings(); if (_queryMode == QextSerialPort::EventDriven) { readNotifier = new QSocketNotifier(fd, QSocketNotifier::Read, q); q->connect(readNotifier, SIGNAL(activated(int)), q, SLOT(_q_canRead())); } return true; } else { translateError(errno); return false; } } bool QextSerialPortPrivate::close_sys() { // Force a flush and then restore the original termios flush_sys(); // Using both TCSAFLUSH and TCSANOW here discards any pending input ::tcsetattr(fd, TCSAFLUSH | TCSANOW, &old_termios); // Restore termios ::close(fd); if(readNotifier) { delete readNotifier; readNotifier = 0; } return true; } bool QextSerialPortPrivate::flush_sys() { ::tcdrain(fd); return true; } qint64 QextSerialPortPrivate::bytesAvailable_sys() const { int bytesQueued; if (::ioctl(fd, FIONREAD, &bytesQueued) == -1) { return (qint64)-1; } return bytesQueued; } /*! Translates a system-specific error code to a QextSerialPort error code. Used internally. */ void QextSerialPortPrivate::translateError(ulong error) { switch (error) { case EBADF: case ENOTTY: lastErr = E_INVALID_FD; break; case EINTR: lastErr = E_CAUGHT_NON_BLOCKED_SIGNAL; break; case ENOMEM: lastErr = E_NO_MEMORY; break; case EACCES: lastErr = E_PERMISSION_DENIED; break; case EAGAIN: lastErr = E_AGAIN; break; } } void QextSerialPortPrivate::setDtr_sys(bool set) { int status; ::ioctl(fd, TIOCMGET, &status); if (set) status |= TIOCM_DTR; else status &= ~TIOCM_DTR; ::ioctl(fd, TIOCMSET, &status); } void QextSerialPortPrivate::setRts_sys(bool set) { int status; ::ioctl(fd, TIOCMGET, &status); if (set) status |= TIOCM_RTS; else status &= ~TIOCM_RTS; ::ioctl(fd, TIOCMSET, &status); } unsigned long QextSerialPortPrivate::lineStatus_sys() { unsigned long Status=0, Temp=0; ::ioctl(fd, TIOCMGET, &Temp); if (Temp & TIOCM_CTS) Status |= LS_CTS; if (Temp & TIOCM_DSR) Status |= LS_DSR; if (Temp & TIOCM_RI ) Status |= LS_RI; if (Temp & TIOCM_CD ) Status |= LS_DCD; if (Temp & TIOCM_DTR) Status |= LS_DTR; if (Temp & TIOCM_RTS) Status |= LS_RTS; if (Temp & TIOCM_ST ) Status |= LS_ST; if (Temp & TIOCM_SR ) Status |= LS_SR; return Status; } /*! Reads a block of data from the serial port. This function will read at most maxSize bytes from the serial port and place them in the buffer pointed to by data. Return value is the number of bytes actually read, or -1 on error. \warning before calling this function ensure that serial port associated with this class is currently open (use isOpen() function to check if port is open). */ qint64 QextSerialPortPrivate::readData_sys(char * data, qint64 maxSize) { int retVal = ::read(fd, data, maxSize); if (retVal == -1) lastErr = E_READ_FAILED; return retVal; } /*! Writes a block of data to the serial port. This function will write maxSize bytes from the buffer pointed to by data to the serial port. Return value is the number of bytes actually written, or -1 on error. \warning before calling this function ensure that serial port associated with this class is currently open (use isOpen() function to check if port is open). */ qint64 QextSerialPortPrivate::writeData_sys(const char * data, qint64 maxSize) { int retVal = ::write(fd, data, maxSize); if (retVal == -1) lastErr = E_WRITE_FAILED; return (qint64)retVal; } static void setBaudRate2Termios(termios *config, int baudRate) { #ifdef CBAUD config->c_cflag &= (~CBAUD); config->c_cflag |= baudRate; #else ::cfsetispeed(config, baudRate); ::cfsetospeed(config, baudRate); #endif } /* All the platform settings was performed in this function. */ void QextSerialPortPrivate::updatePortSettings() { if (!q_func()->isOpen() || !settingsDirtyFlags) return; if (settingsDirtyFlags & DFE_BaudRate) { switch (Settings.BaudRate) { case BAUD50: setBaudRate2Termios(&Posix_CommConfig, B50); break; case BAUD75: setBaudRate2Termios(&Posix_CommConfig, B75); break; case BAUD110: setBaudRate2Termios(&Posix_CommConfig, B110); break; case BAUD134: setBaudRate2Termios(&Posix_CommConfig, B134); break; case BAUD150: setBaudRate2Termios(&Posix_CommConfig, B150); break; case BAUD200: setBaudRate2Termios(&Posix_CommConfig, B200); break; case BAUD300: setBaudRate2Termios(&Posix_CommConfig, B300); break; case BAUD600: setBaudRate2Termios(&Posix_CommConfig, B600); break; case BAUD1200: setBaudRate2Termios(&Posix_CommConfig, B1200); break; case BAUD1800: setBaudRate2Termios(&Posix_CommConfig, B1800); break; case BAUD2400: setBaudRate2Termios(&Posix_CommConfig, B2400); break; case BAUD4800: setBaudRate2Termios(&Posix_CommConfig, B4800); break; case BAUD9600: setBaudRate2Termios(&Posix_CommConfig, B9600); break; case BAUD19200: setBaudRate2Termios(&Posix_CommConfig, B19200); break; case BAUD38400: setBaudRate2Termios(&Posix_CommConfig, B38400); break; case BAUD57600: setBaudRate2Termios(&Posix_CommConfig, B57600); break; #ifdef B76800 case BAUD76800: setBaudRate2Termios(&Posix_CommConfig, B76800); break; #endif case BAUD115200: setBaudRate2Termios(&Posix_CommConfig, B115200); break; #if defined(B230400) && defined(B4000000) case BAUD230400: setBaudRate2Termios(&Posix_CommConfig, B230400); break; case BAUD460800: setBaudRate2Termios(&Posix_CommConfig, B460800); break; case BAUD500000: setBaudRate2Termios(&Posix_CommConfig, B500000); break; case BAUD576000: setBaudRate2Termios(&Posix_CommConfig, B576000); break; case BAUD921600: setBaudRate2Termios(&Posix_CommConfig, B921600); break; case BAUD1000000: setBaudRate2Termios(&Posix_CommConfig, B1000000); break; case BAUD1152000: setBaudRate2Termios(&Posix_CommConfig, B1152000); break; case BAUD1500000: setBaudRate2Termios(&Posix_CommConfig, B1500000); break; case BAUD2000000: setBaudRate2Termios(&Posix_CommConfig, B2000000); break; case BAUD2500000: setBaudRate2Termios(&Posix_CommConfig, B2500000); break; case BAUD3000000: setBaudRate2Termios(&Posix_CommConfig, B3000000); break; case BAUD3500000: setBaudRate2Termios(&Posix_CommConfig, B3500000); break; case BAUD4000000: setBaudRate2Termios(&Posix_CommConfig, B4000000); break; #endif } } if (settingsDirtyFlags & DFE_Parity) { switch (Settings.Parity) { case PAR_SPACE: /*space parity not directly supported - add an extra data bit to simulate it*/ settingsDirtyFlags |= DFE_DataBits; break; case PAR_NONE: Posix_CommConfig.c_cflag &= (~PARENB); break; case PAR_EVEN: Posix_CommConfig.c_cflag &= (~PARODD); Posix_CommConfig.c_cflag |= PARENB; break; case PAR_ODD: Posix_CommConfig.c_cflag |= (PARENB|PARODD); break; } } /*must after Parity settings*/ if (settingsDirtyFlags & DFE_DataBits) { if (Settings.Parity != PAR_SPACE) { Posix_CommConfig.c_cflag &= (~CSIZE); switch(Settings.DataBits) { case DATA_5: Posix_CommConfig.c_cflag |= CS5; break; case DATA_6: Posix_CommConfig.c_cflag |= CS6; break; case DATA_7: Posix_CommConfig.c_cflag |= CS7; break; case DATA_8: Posix_CommConfig.c_cflag |= CS8; break; } } else { /*space parity not directly supported - add an extra data bit to simulate it*/ Posix_CommConfig.c_cflag &= ~(PARENB|CSIZE); switch(Settings.DataBits) { case DATA_5: Posix_CommConfig.c_cflag |= CS6; break; case DATA_6: Posix_CommConfig.c_cflag |= CS7; break; case DATA_7: Posix_CommConfig.c_cflag |= CS8; break; case DATA_8: /*this will never happen, put here to Suppress an warning*/ break; } } } if (settingsDirtyFlags & DFE_StopBits) { switch (Settings.StopBits) { case STOP_1: Posix_CommConfig.c_cflag &= (~CSTOPB); break; case STOP_2: Posix_CommConfig.c_cflag |= CSTOPB; break; } } if (settingsDirtyFlags & DFE_Flow) { switch(Settings.FlowControl) { case FLOW_OFF: Posix_CommConfig.c_cflag &= (~CRTSCTS); Posix_CommConfig.c_iflag &= (~(IXON|IXOFF|IXANY)); break; case FLOW_XONXOFF: /*software (XON/XOFF) flow control*/ Posix_CommConfig.c_cflag &= (~CRTSCTS); Posix_CommConfig.c_iflag |= (IXON|IXOFF|IXANY); break; case FLOW_HARDWARE: Posix_CommConfig.c_cflag |= CRTSCTS; Posix_CommConfig.c_iflag &= (~(IXON|IXOFF|IXANY)); break; } } /*if any thing in Posix_CommConfig changed, flush*/ if (settingsDirtyFlags & DFE_Settings_Mask) ::tcsetattr(fd, TCSAFLUSH, &Posix_CommConfig); if (settingsDirtyFlags & DFE_TimeOut) { int millisec = Settings.Timeout_Millisec; if (millisec == -1) { ::fcntl(fd, F_SETFL, O_NDELAY); } else { //O_SYNC should enable blocking ::write() //however this seems not working on Linux 2.6.21 (works on OpenBSD 4.2) ::fcntl(fd, F_SETFL, O_SYNC); } ::tcgetattr(fd, & Posix_CommConfig); Posix_CommConfig.c_cc[VTIME] = millisec/100; ::tcsetattr(fd, TCSAFLUSH, & Posix_CommConfig); } settingsDirtyFlags = 0; } dlt-viewer-2.18.0+dfsg/qextserialport/src/qextserialport.h0000664000175000017500000001551013001357026023336 0ustar potyrapotyra/**************************************************************************** ** Copyright (c) 2000-2003 Wayne Roth ** Copyright (c) 2004-2007 Stefan Sander ** Copyright (c) 2007 Michal Policht ** Copyright (c) 2008 Brandon Fosdick ** Copyright (c) 2009-2010 Liam Staskawicz ** Copyright (c) 2011 Debao Zhang ** All right reserved. ** Web: http://code.google.com/p/qextserialport/ ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the ** "Software"), to deal in the Software without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Software, and to ** permit persons to whom the Software is furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ** ****************************************************************************/ #ifndef _QEXTSERIALPORT_H_ #define _QEXTSERIALPORT_H_ #include #include "qextserialport_global.h" #ifdef Q_OS_UNIX #include #endif /*line status constants*/ // ### QESP2.0 move to enum #define LS_CTS 0x01 #define LS_DSR 0x02 #define LS_DCD 0x04 #define LS_RI 0x08 #define LS_RTS 0x10 #define LS_DTR 0x20 #define LS_ST 0x40 #define LS_SR 0x80 /*error constants*/ // ### QESP2.0 move to enum #define E_NO_ERROR 0 #define E_INVALID_FD 1 #define E_NO_MEMORY 2 #define E_CAUGHT_NON_BLOCKED_SIGNAL 3 #define E_PORT_TIMEOUT 4 #define E_INVALID_DEVICE 5 #define E_BREAK_CONDITION 6 #define E_FRAMING_ERROR 7 #define E_IO_ERROR 8 #define E_BUFFER_OVERRUN 9 #define E_RECEIVE_OVERFLOW 10 #define E_RECEIVE_PARITY_ERROR 11 #define E_TRANSMIT_OVERFLOW 12 #define E_READ_FAILED 13 #define E_WRITE_FAILED 14 #define E_FILE_NOT_FOUND 15 #define E_PERMISSION_DENIED 16 #define E_AGAIN 17 enum BaudRateType { #if defined(Q_OS_UNIX) || defined(qdoc) BAUD50 = 50, //POSIX ONLY BAUD75 = 75, //POSIX ONLY BAUD134 = 134, //POSIX ONLY BAUD150 = 150, //POSIX ONLY BAUD200 = 200, //POSIX ONLY BAUD1800 = 1800, //POSIX ONLY # if defined(B76800) || defined(qdoc) BAUD76800 = 76800, //POSIX ONLY # endif # if (defined(B230400) && defined(B4000000)) || defined(qdoc) BAUD230400 = 230400, //POSIX ONLY BAUD460800 = 460800, //POSIX ONLY BAUD500000 = 500000, //POSIX ONLY BAUD576000 = 576000, //POSIX ONLY BAUD921600 = 921600, //POSIX ONLY BAUD1000000 = 1000000, //POSIX ONLY BAUD1152000 = 1152000, //POSIX ONLY BAUD1500000 = 1500000, //POSIX ONLY BAUD2000000 = 2000000, //POSIX ONLY BAUD2500000 = 2500000, //POSIX ONLY BAUD3000000 = 3000000, //POSIX ONLY BAUD3500000 = 3500000, //POSIX ONLY BAUD4000000 = 4000000, //POSIX ONLY # endif #endif //Q_OS_UNIX #if defined(Q_OS_WIN) || defined(qdoc) BAUD14400 = 14400, //WINDOWS ONLY BAUD56000 = 56000, //WINDOWS ONLY BAUD128000 = 128000, //WINDOWS ONLY BAUD256000 = 256000, //WINDOWS ONLY #endif //Q_OS_WIN BAUD110 = 110, BAUD300 = 300, BAUD600 = 600, BAUD1200 = 1200, BAUD2400 = 2400, BAUD4800 = 4800, BAUD9600 = 9600, BAUD19200 = 19200, BAUD38400 = 38400, BAUD57600 = 57600, BAUD115200 = 115200 }; enum DataBitsType { DATA_5 = 5, DATA_6 = 6, DATA_7 = 7, DATA_8 = 8 }; enum ParityType { PAR_NONE, PAR_ODD, PAR_EVEN, #if defined(Q_OS_WIN) || defined(qdoc) PAR_MARK, //WINDOWS ONLY #endif PAR_SPACE }; enum StopBitsType { STOP_1, #if defined(Q_OS_WIN) || defined(qdoc) STOP_1_5, //WINDOWS ONLY #endif STOP_2 }; enum FlowType { FLOW_OFF, FLOW_HARDWARE, FLOW_XONXOFF }; /** * structure to contain port settings */ struct PortSettings { BaudRateType BaudRate; DataBitsType DataBits; ParityType Parity; StopBitsType StopBits; FlowType FlowControl; long Timeout_Millisec; }; class QextSerialPortPrivate; class QEXTSERIALPORT_EXPORT QextSerialPort: public QIODevice { Q_OBJECT Q_DECLARE_PRIVATE(QextSerialPort) Q_ENUMS(QueryMode) Q_PROPERTY(QString portName READ portName WRITE setPortName) Q_PROPERTY(QueryMode queryMode READ queryMode WRITE setQueryMode) public: enum QueryMode { Polling, EventDriven }; explicit QextSerialPort(QueryMode mode = EventDriven, QObject* parent = 0); explicit QextSerialPort(const QString & name, QueryMode mode = EventDriven, QObject * parent = 0); explicit QextSerialPort(const PortSettings & s, QueryMode mode = EventDriven, QObject * parent = 0); QextSerialPort(const QString & name, const PortSettings& s, QueryMode mode = EventDriven, QObject *parent=0); ~QextSerialPort(); QString portName() const; QueryMode queryMode() const; BaudRateType baudRate() const; DataBitsType dataBits() const; ParityType parity() const; StopBitsType stopBits() const; FlowType flowControl() const; bool open(OpenMode mode); bool isSequential() const; void close(); void flush(); qint64 bytesAvailable() const; QByteArray readAll(); ulong lastError() const; ulong lineStatus(); QString errorString(); public Q_SLOTS: void setPortName(const QString & name); void setQueryMode(QueryMode mode); void setBaudRate(BaudRateType); void setDataBits(DataBitsType); void setParity(ParityType); void setStopBits(StopBitsType); void setFlowControl(FlowType); void setTimeout(long); void setDtr(bool set=true); void setRts(bool set=true); Q_SIGNALS: void dsrChanged(bool status); protected: qint64 readData(char * data, qint64 maxSize); qint64 writeData(const char * data, qint64 maxSize); private: Q_DISABLE_COPY(QextSerialPort) #ifdef Q_OS_WIN Q_PRIVATE_SLOT(d_func(), void _q_onWinEvent(HANDLE)) #endif Q_PRIVATE_SLOT(d_func(), void _q_canRead()) QextSerialPortPrivate * const d_ptr; }; #endif dlt-viewer-2.18.0+dfsg/qextserialport/src/qextserialport.pri0000664000175000017500000000373513001357026023707 0ustar potyrapotyraexists(../common.pri) { #For case: # someone want to copy all file in the src/ directory # to their project src/ directory and they does not like # the common.pri file. #In this case: # they can just include this file (qextserialport.pri) too. include(../common.pri) } INCLUDEPATH += $$PWD DEPENDPATH += $$PWD qextserialport-library:!qextserialport-buildlib { # Using QextSerialPort as shared or static library. LIBS += -L$$QEXTSERIALPORT_LIBDIR -l$$QEXTSERIALPORT_LIBNAME !qextserialport-static: DEFINES += QEXTSERIALPORT_USING_SHARED } else { # Building library(shared or static) # or including source files HEADERS += $$PWD/qextserialport.h \ $$PWD/qextserialport_p.h \ $$PWD/qextserialenumerator.h \ $$PWD/qextserialenumerator_p.h \ $$PWD/qextserialport_global.h SOURCES += $$PWD/qextserialport.cpp \ $$PWD/qextserialenumerator.cpp unix:SOURCES += $$PWD/qextserialport_unix.cpp unix:!macx:SOURCES += $$PWD/qextserialenumerator_unix.cpp macx:SOURCES += $$PWD/qextserialenumerator_osx.cpp win32:SOURCES += $$PWD/qextserialport_win.cpp \ $$PWD/qextserialenumerator_win.cpp # For Windows user who doesn't have Qt4's Private files win32:contains(QT_VERSION, ^4\\..*\\..*):!exists($$[QT_INSTALL_HEADERS]/QtCore/private/qwineventnotifier_p.h){ DEFINES += QESP_NO_QT4_PRIVATE HEADERS += $$PWD/qextwineventnotifier_p.h SOURCES += $$PWD/qextwineventnotifier_p.cpp } # For building shared library only contains(TEMPLATE, .*lib):contains(CONFIG, shared): DEFINES += QEXTSERIALPORT_BUILD_SHARED } macx:LIBS += -framework IOKit -framework CoreFoundation win32:LIBS += -lsetupapi -ladvapi32 -luser32 dlt-viewer-2.18.0+dfsg/qextserialport/src/qextserialport_global.h0000664000175000017500000000500713001357026024656 0ustar potyrapotyra/**************************************************************************** ** Copyright (c) 2000-2003 Wayne Roth ** Copyright (c) 2004-2007 Stefan Sander ** Copyright (c) 2007 Michal Policht ** Copyright (c) 2008 Brandon Fosdick ** Copyright (c) 2009-2010 Liam Staskawicz ** Copyright (c) 2011 Debao Zhang ** All right reserved. ** Web: http://code.google.com/p/qextserialport/ ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the ** "Software"), to deal in the Software without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Software, and to ** permit persons to whom the Software is furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ** ****************************************************************************/ #ifndef QEXTSERIALPORT_GLOBAL_H #define QEXTSERIALPORT_GLOBAL_H #include #ifdef QEXTSERIALPORT_BUILD_SHARED # define QEXTSERIALPORT_EXPORT Q_DECL_EXPORT #elif defined(QEXTSERIALPORT_USING_SHARED) # define QEXTSERIALPORT_EXPORT Q_DECL_IMPORT #else # define QEXTSERIALPORT_EXPORT #endif // ### for compatible with old version. should be removed in QESP 2.0 #ifdef _TTY_NOWARN_ # define QESP_NO_WARN #endif #ifdef _TTY_NOWARN_PORT_ # define QESP_NO_PORTABILITY_WARN #endif /*if all warning messages are turned off, flag portability warnings to be turned off as well*/ #ifdef QESP_NO_WARN # define QESP_NO_PORTABILITY_WARN #endif /*macros for warning and debug messages*/ #ifdef QESP_NO_PORTABILITY_WARN # define QESP_PORTABILITY_WARNING while(false)qWarning #else # define QESP_PORTABILITY_WARNING qWarning #endif /*QESP_NOWARN_PORT*/ #ifdef QESP_NO_WARN # define QESP_WARNING while(false)qWarning #else # define QESP_WARNING qWarning #endif /*QESP_NOWARN*/ #endif // QEXTSERIALPORT_GLOBAL_H dlt-viewer-2.18.0+dfsg/qextserialport/src/qextserialenumerator_osx.cpp0000664000175000017500000003066313001357026025765 0ustar potyrapotyra/**************************************************************************** ** Copyright (c) 2000-2003 Wayne Roth ** Copyright (c) 2004-2007 Stefan Sander ** Copyright (c) 2007 Michal Policht ** Copyright (c) 2008 Brandon Fosdick ** Copyright (c) 2009-2010 Liam Staskawicz ** Copyright (c) 2011 Debao Zhang ** All right reserved. ** Web: http://code.google.com/p/qextserialport/ ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the ** "Software"), to deal in the Software without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Software, and to ** permit persons to whom the Software is furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ** ****************************************************************************/ #include "qextserialenumerator.h" #include "qextserialenumerator_p.h" #include #include #include #include void QextSerialEnumeratorPrivate::platformSpecificInit() { } void QextSerialEnumeratorPrivate::platformSpecificDestruct() { IONotificationPortDestroy( notificationPortRef ); } // static QList QextSerialEnumeratorPrivate::getPorts_sys() { QList infoList; io_iterator_t serialPortIterator = 0; kern_return_t kernResult = KERN_FAILURE; CFMutableDictionaryRef matchingDictionary; // first try to get any serialbsd devices, then try any USBCDC devices if( !(matchingDictionary = IOServiceMatching(kIOSerialBSDServiceValue) ) ) { QESP_WARNING("IOServiceMatching returned a NULL dictionary."); return infoList; } CFDictionaryAddValue(matchingDictionary, CFSTR(kIOSerialBSDTypeKey), CFSTR(kIOSerialBSDAllTypes)); // then create the iterator with all the matching devices if( IOServiceGetMatchingServices(kIOMasterPortDefault, matchingDictionary, &serialPortIterator) != KERN_SUCCESS ) { qCritical() << "IOServiceGetMatchingServices failed, returned" << kernResult; return infoList; } iterateServicesOSX(serialPortIterator, infoList); IOObjectRelease(serialPortIterator); serialPortIterator = 0; if( !(matchingDictionary = IOServiceNameMatching("AppleUSBCDC")) ) { QESP_WARNING("IOServiceNameMatching returned a NULL dictionary."); return infoList; } if( IOServiceGetMatchingServices(kIOMasterPortDefault, matchingDictionary, &serialPortIterator) != KERN_SUCCESS ) { qCritical() << "IOServiceGetMatchingServices failed, returned" << kernResult; return infoList; } iterateServicesOSX(serialPortIterator, infoList); IOObjectRelease(serialPortIterator); return infoList; } void QextSerialEnumeratorPrivate::iterateServicesOSX(io_object_t service, QList & infoList) { // Iterate through all modems found. io_object_t usbService; while( ( usbService = IOIteratorNext(service) ) ) { QextPortInfo info; info.vendorID = 0; info.productID = 0; getServiceDetailsOSX( usbService, &info ); infoList.append(info); } } bool QextSerialEnumeratorPrivate::getServiceDetailsOSX( io_object_t service, QextPortInfo* portInfo ) { bool retval = true; CFTypeRef bsdPathAsCFString = NULL; CFTypeRef productNameAsCFString = NULL; CFTypeRef vendorIdAsCFNumber = NULL; CFTypeRef productIdAsCFNumber = NULL; // check the name of the modem's callout device bsdPathAsCFString = IORegistryEntryCreateCFProperty(service, CFSTR(kIOCalloutDeviceKey), kCFAllocatorDefault, 0); // wander up the hierarchy until we find the level that can give us the // vendor/product IDs and the product name, if available io_registry_entry_t parent; kern_return_t kernResult = IORegistryEntryGetParentEntry(service, kIOServicePlane, &parent); while( kernResult == KERN_SUCCESS && !vendorIdAsCFNumber && !productIdAsCFNumber ) { if(!productNameAsCFString) productNameAsCFString = IORegistryEntrySearchCFProperty(parent, kIOServicePlane, CFSTR("Product Name"), kCFAllocatorDefault, 0); vendorIdAsCFNumber = IORegistryEntrySearchCFProperty(parent, kIOServicePlane, CFSTR(kUSBVendorID), kCFAllocatorDefault, 0); productIdAsCFNumber = IORegistryEntrySearchCFProperty(parent, kIOServicePlane, CFSTR(kUSBProductID), kCFAllocatorDefault, 0); io_registry_entry_t oldparent = parent; kernResult = IORegistryEntryGetParentEntry(parent, kIOServicePlane, &parent); IOObjectRelease(oldparent); } io_string_t ioPathName; IORegistryEntryGetPath( service, kIOServicePlane, ioPathName ); portInfo->physName = ioPathName; if( bsdPathAsCFString ) { char path[MAXPATHLEN]; if( CFStringGetCString((CFStringRef)bsdPathAsCFString, path, PATH_MAX, kCFStringEncodingUTF8) ) portInfo->portName = path; CFRelease(bsdPathAsCFString); } if(productNameAsCFString) { char productName[MAXPATHLEN]; if( CFStringGetCString((CFStringRef)productNameAsCFString, productName, PATH_MAX, kCFStringEncodingUTF8) ) portInfo->friendName = productName; CFRelease(productNameAsCFString); } if(vendorIdAsCFNumber) { SInt32 vID; if(CFNumberGetValue((CFNumberRef)vendorIdAsCFNumber, kCFNumberSInt32Type, &vID)) portInfo->vendorID = vID; CFRelease(vendorIdAsCFNumber); } if(productIdAsCFNumber) { SInt32 pID; if(CFNumberGetValue((CFNumberRef)productIdAsCFNumber, kCFNumberSInt32Type, &pID)) portInfo->productID = pID; CFRelease(productIdAsCFNumber); } IOObjectRelease(service); return retval; } // IOKit callbacks registered via setupNotifications() void deviceDiscoveredCallbackOSX( void *ctxt, io_iterator_t serialPortIterator ) { QextSerialEnumeratorPrivate* d = (QextSerialEnumeratorPrivate*)ctxt; io_object_t serialService; while ((serialService = IOIteratorNext(serialPortIterator))) d->onDeviceDiscoveredOSX(serialService); } void deviceTerminatedCallbackOSX( void *ctxt, io_iterator_t serialPortIterator ) { QextSerialEnumeratorPrivate* d = (QextSerialEnumeratorPrivate*)ctxt; io_object_t serialService; while ((serialService = IOIteratorNext(serialPortIterator))) d->onDeviceTerminatedOSX(serialService); } /* A device has been discovered via IOKit. Create a QextPortInfo if possible, and emit the signal indicating that we've found it. */ void QextSerialEnumeratorPrivate::onDeviceDiscoveredOSX( io_object_t service ) { Q_Q(QextSerialEnumerator); QextPortInfo info; info.vendorID = 0; info.productID = 0; if( getServiceDetailsOSX( service, &info ) ) Q_EMIT q->deviceDiscovered( info ); } /* Notification via IOKit that a device has been removed. Create a QextPortInfo if possible, and emit the signal indicating that it's gone. */ void QextSerialEnumeratorPrivate::onDeviceTerminatedOSX( io_object_t service ) { Q_Q(QextSerialEnumerator); QextPortInfo info; info.vendorID = 0; info.productID = 0; if( getServiceDetailsOSX( service, &info ) ) Q_EMIT q->deviceRemoved( info ); } /* Create matching dictionaries for the devices we want to get notifications for, and add them to the current run loop. Invoke the callbacks that will be responding to these notifications once to arm them, and discover any devices that are currently connected at the time notifications are setup. */ bool QextSerialEnumeratorPrivate::setUpNotifications_sys(bool setup) { kern_return_t kernResult; mach_port_t masterPort; CFRunLoopSourceRef notificationRunLoopSource; CFMutableDictionaryRef classesToMatch; CFMutableDictionaryRef cdcClassesToMatch; io_iterator_t portIterator; kernResult = IOMasterPort(MACH_PORT_NULL, &masterPort); if (KERN_SUCCESS != kernResult) { qDebug() << "IOMasterPort returned:" << kernResult; return false; } classesToMatch = IOServiceMatching(kIOSerialBSDServiceValue); if (classesToMatch == NULL) qDebug("IOServiceMatching returned a NULL dictionary."); else CFDictionarySetValue(classesToMatch, CFSTR(kIOSerialBSDTypeKey), CFSTR(kIOSerialBSDAllTypes)); if( !(cdcClassesToMatch = IOServiceNameMatching("AppleUSBCDC") ) ) { QESP_WARNING("couldn't create cdc matching dict"); return false; } // Retain an additional reference since each call to IOServiceAddMatchingNotification consumes one. classesToMatch = (CFMutableDictionaryRef) CFRetain(classesToMatch); cdcClassesToMatch = (CFMutableDictionaryRef) CFRetain(cdcClassesToMatch); notificationPortRef = IONotificationPortCreate(masterPort); if(notificationPortRef == NULL) { qDebug("IONotificationPortCreate return a NULL IONotificationPortRef."); return false; } notificationRunLoopSource = IONotificationPortGetRunLoopSource(notificationPortRef); if (notificationRunLoopSource == NULL) { qDebug("IONotificationPortGetRunLoopSource returned NULL CFRunLoopSourceRef."); return false; } CFRunLoopAddSource(CFRunLoopGetCurrent(), notificationRunLoopSource, kCFRunLoopDefaultMode); kernResult = IOServiceAddMatchingNotification(notificationPortRef, kIOMatchedNotification, classesToMatch, deviceDiscoveredCallbackOSX, this, &portIterator); if (kernResult != KERN_SUCCESS) { qDebug() << "IOServiceAddMatchingNotification return:" << kernResult; return false; } // arm the callback, and grab any devices that are already connected deviceDiscoveredCallbackOSX( this, portIterator ); kernResult = IOServiceAddMatchingNotification(notificationPortRef, kIOMatchedNotification, cdcClassesToMatch, deviceDiscoveredCallbackOSX, this, &portIterator); if (kernResult != KERN_SUCCESS) { qDebug() << "IOServiceAddMatchingNotification return:" << kernResult; return false; } // arm the callback, and grab any devices that are already connected deviceDiscoveredCallbackOSX( this, portIterator ); kernResult = IOServiceAddMatchingNotification(notificationPortRef, kIOTerminatedNotification, classesToMatch, deviceTerminatedCallbackOSX, this, &portIterator); if (kernResult != KERN_SUCCESS) { qDebug() << "IOServiceAddMatchingNotification return:" << kernResult; return false; } // arm the callback, and clear any devices that are terminated deviceTerminatedCallbackOSX( this, portIterator ); kernResult = IOServiceAddMatchingNotification(notificationPortRef, kIOTerminatedNotification, cdcClassesToMatch, deviceTerminatedCallbackOSX, this, &portIterator); if (kernResult != KERN_SUCCESS) { qDebug() << "IOServiceAddMatchingNotification return:" << kernResult; return false; } // arm the callback, and clear any devices that are terminated deviceTerminatedCallbackOSX( this, portIterator ); return true; } dlt-viewer-2.18.0+dfsg/qextserialport/src/qextserialenumerator_unix.cpp0000664000175000017500000000744113001357026026135 0ustar potyrapotyra/**************************************************************************** ** Copyright (c) 2000-2003 Wayne Roth ** Copyright (c) 2004-2007 Stefan Sander ** Copyright (c) 2007 Michal Policht ** Copyright (c) 2008 Brandon Fosdick ** Copyright (c) 2009-2010 Liam Staskawicz ** Copyright (c) 2011 Debao Zhang ** All right reserved. ** Web: http://code.google.com/p/qextserialport/ ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the ** "Software"), to deal in the Software without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Software, and to ** permit persons to whom the Software is furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ** ****************************************************************************/ #include "qextserialenumerator.h" #include "qextserialenumerator_p.h" #include #include #include void QextSerialEnumeratorPrivate::platformSpecificInit() { } void QextSerialEnumeratorPrivate::platformSpecificDestruct() { } QList QextSerialEnumeratorPrivate::getPorts_sys() { QList infoList; #ifdef Q_OS_LINUX QStringList portNamePrefixes, portNameList; portNamePrefixes << QLatin1String("ttyS*"); // list normal serial ports first QDir dir(QLatin1String("/dev")); portNameList = dir.entryList(portNamePrefixes, (QDir::System | QDir::Files), QDir::Name); // remove the values which are not serial ports for e.g. /dev/ttysa for (int i = 0; i < portNameList.size(); i++) { bool ok; QString current = portNameList.at(i); // remove the ttyS part, and check, if the other part is a number current.remove(0,4).toInt(&ok, 10); if (!ok) { portNameList.removeAt(i); i--; } } // get the non standard serial ports names // (USB-serial, bluetooth-serial, 18F PICs, and so on) // if you know an other name prefix for serial ports please let us know portNamePrefixes.clear(); portNamePrefixes << QLatin1String("ttyACM*") << QLatin1String("ttyUSB*") << QLatin1String("rfcomm*"); portNameList += dir.entryList(portNamePrefixes, (QDir::System | QDir::Files), QDir::Name); foreach (QString str , portNameList) { QextPortInfo inf; inf.physName = QLatin1String("/dev/")+str; inf.portName = str; if (str.contains(QLatin1String("ttyS"))) { inf.friendName = QLatin1String("Serial port ")+str.remove(0, 4); } else if (str.contains(QLatin1String("ttyUSB"))) { inf.friendName = QLatin1String("USB-serial adapter ")+str.remove(0, 6); } else if (str.contains(QLatin1String("rfcomm"))) { inf.friendName = QLatin1String("Bluetooth-serial adapter ")+str.remove(0, 6); } inf.enumName = QLatin1String("/dev"); // is there a more helpful name for this? infoList.append(inf); } #endif return infoList; } bool QextSerialEnumeratorPrivate::setUpNotifications_sys(bool setup) { Q_UNUSED(setup) return false; } dlt-viewer-2.18.0+dfsg/qextserialport/src/qextserialport_win.cpp0000664000175000017500000003502313001357026024547 0ustar potyrapotyra/**************************************************************************** ** Copyright (c) 2000-2003 Wayne Roth ** Copyright (c) 2004-2007 Stefan Sander ** Copyright (c) 2007 Michal Policht ** Copyright (c) 2008 Brandon Fosdick ** Copyright (c) 2009-2010 Liam Staskawicz ** Copyright (c) 2011 Debao Zhang ** All right reserved. ** Web: http://code.google.com/p/qextserialport/ ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the ** "Software"), to deal in the Software without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Software, and to ** permit persons to whom the Software is furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ** ****************************************************************************/ #include "qextserialport.h" #include "qextserialport_p.h" #include #include #include #include #include #include #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) # include # define WinEventNotifier QWinEventNotifier #elif !defined(QESP_NO_QT4_PRIVATE) # include # define WinEventNotifier QWinEventNotifier #else # include "qextwineventnotifier_p.h" # define WinEventNotifier QextWinEventNotifier #endif void QextSerialPortPrivate::platformSpecificInit() { Win_Handle=INVALID_HANDLE_VALUE; ZeroMemory(&overlap, sizeof(OVERLAPPED)); overlap.hEvent = CreateEvent(NULL, true, false, NULL); winEventNotifier = 0; bytesToWriteLock = new QReadWriteLock; _bytesToWrite = 0; } void QextSerialPortPrivate::platformSpecificDestruct() { CloseHandle(overlap.hEvent); delete bytesToWriteLock; } /*! \internal COM ports greater than 9 need \\.\ prepended This is only need when open the port. */ static QString fullPortNameWin(const QString & name) { QRegExp rx(QLatin1String("^COM(\\d+)")); QString fullName(name); if(fullName.contains(rx)) fullName.prepend(QLatin1String("\\\\.\\")); return fullName; } bool QextSerialPortPrivate::open_sys(QIODevice::OpenMode mode) { Q_Q(QextSerialPort); DWORD confSize = sizeof(COMMCONFIG); Win_CommConfig.dwSize = confSize; DWORD dwFlagsAndAttributes = 0; if (_queryMode == QextSerialPort::EventDriven) dwFlagsAndAttributes += FILE_FLAG_OVERLAPPED; /*open the port*/ Win_Handle=CreateFileW((wchar_t*)fullPortNameWin(port).utf16(), GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, dwFlagsAndAttributes, NULL); if (Win_Handle!=INVALID_HANDLE_VALUE) { q->setOpenMode(mode); /*configure port settings*/ GetCommConfig(Win_Handle, &Win_CommConfig, &confSize); GetCommState(Win_Handle, &(Win_CommConfig.dcb)); /*set up parameters*/ Win_CommConfig.dcb.fBinary=TRUE; Win_CommConfig.dcb.fInX=FALSE; Win_CommConfig.dcb.fOutX=FALSE; Win_CommConfig.dcb.fAbortOnError=FALSE; Win_CommConfig.dcb.fNull=FALSE; /*flush all settings*/ settingsDirtyFlags = DFE_ALL; updatePortSettings(); //init event driven approach if (_queryMode == QextSerialPort::EventDriven) { if (!SetCommMask( Win_Handle, EV_TXEMPTY | EV_RXCHAR | EV_DSR)) { QESP_WARNING()<<"failed to set Comm Mask. Error code:"<("HANDLE"); q->connect(winEventNotifier, SIGNAL(activated(HANDLE)), q, SLOT(_q_onWinEvent(HANDLE)), Qt::DirectConnection); WaitCommEvent(Win_Handle, &eventMask, &overlap); } return true; } return false; } bool QextSerialPortPrivate::close_sys() { flush_sys(); CancelIo(Win_Handle); if (CloseHandle(Win_Handle)) Win_Handle = INVALID_HANDLE_VALUE; if (winEventNotifier){ winEventNotifier->setEnabled(false); winEventNotifier->deleteLater(); winEventNotifier = 0; } _bytesToWrite = 0; foreach(OVERLAPPED* o, pendingWrites) { CloseHandle(o->hEvent); delete o; } pendingWrites.clear(); return true; } bool QextSerialPortPrivate::flush_sys() { FlushFileBuffers(Win_Handle); return true; } qint64 QextSerialPortPrivate::bytesAvailable_sys() const { DWORD Errors; COMSTAT Status; if (ClearCommError(Win_Handle, &Errors, &Status)) { return Status.cbInQue; } return (qint64)-1; } /* Translates a system-specific error code to a QextSerialPort error code. Used internally. */ void QextSerialPortPrivate::translateError(ulong error) { if (error&CE_BREAK) { lastErr=E_BREAK_CONDITION; } else if (error&CE_FRAME) { lastErr=E_FRAMING_ERROR; } else if (error&CE_IOE) { lastErr=E_IO_ERROR; } else if (error&CE_MODE) { lastErr=E_INVALID_FD; } else if (error&CE_OVERRUN) { lastErr=E_BUFFER_OVERRUN; } else if (error&CE_RXPARITY) { lastErr=E_RECEIVE_PARITY_ERROR; } else if (error&CE_RXOVER) { lastErr=E_RECEIVE_OVERFLOW; } else if (error&CE_TXFULL) { lastErr=E_TRANSMIT_OVERFLOW; } } /* Reads a block of data from the serial port. This function will read at most maxlen bytes from the serial port and place them in the buffer pointed to by data. Return value is the number of bytes actually read, or -1 on error. \warning before calling this function ensure that serial port associated with this class is currently open (use isOpen() function to check if port is open). */ qint64 QextSerialPortPrivate::readData_sys(char *data, qint64 maxSize) { DWORD bytesRead = 0; bool failed = false; if (_queryMode == QextSerialPort::EventDriven) { OVERLAPPED overlapRead; ZeroMemory(&overlapRead, sizeof(OVERLAPPED)); if (!ReadFile(Win_Handle, (void*)data, (DWORD)maxSize, & bytesRead, & overlapRead)) { if (GetLastError() == ERROR_IO_PENDING) GetOverlappedResult(Win_Handle, & overlapRead, & bytesRead, true); else failed = true; } } else if (!ReadFile(Win_Handle, (void*)data, (DWORD)maxSize, & bytesRead, NULL)) { failed = true; } if (!failed) return (qint64)bytesRead; lastErr = E_READ_FAILED; return -1; } /* Writes a block of data to the serial port. This function will write len bytes from the buffer pointed to by data to the serial port. Return value is the number of bytes actually written, or -1 on error. \warning before calling this function ensure that serial port associated with this class is currently open (use isOpen() function to check if port is open). */ qint64 QextSerialPortPrivate::writeData_sys(const char *data, qint64 maxSize) { DWORD bytesWritten = 0; bool failed = false; if (_queryMode == QextSerialPort::EventDriven) { OVERLAPPED* newOverlapWrite = new OVERLAPPED; ZeroMemory(newOverlapWrite, sizeof(OVERLAPPED)); newOverlapWrite->hEvent = CreateEvent(NULL, true, false, NULL); if (WriteFile(Win_Handle, (void*)data, (DWORD)maxSize, & bytesWritten, newOverlapWrite)) { CloseHandle(newOverlapWrite->hEvent); delete newOverlapWrite; } else if (GetLastError() == ERROR_IO_PENDING) { // writing asynchronously...not an error QWriteLocker writelocker(bytesToWriteLock); _bytesToWrite += maxSize; pendingWrites.append(newOverlapWrite); } else { QESP_WARNING()<<"QextSerialPort write error:"<hEvent)) QESP_WARNING("QextSerialPort: couldn't cancel IO"); if(!CloseHandle(newOverlapWrite->hEvent)) QESP_WARNING("QextSerialPort: couldn't close OVERLAPPED handle"); delete newOverlapWrite; } } else if (!WriteFile(Win_Handle, (void*)data, (DWORD)maxSize, & bytesWritten, NULL)) { failed = true; } if (!failed) return (qint64)bytesWritten; lastErr = E_WRITE_FAILED; return -1; } void QextSerialPortPrivate::setDtr_sys(bool set) { EscapeCommFunction(Win_Handle, set ? SETDTR : CLRDTR); } void QextSerialPortPrivate::setRts_sys(bool set) { EscapeCommFunction(Win_Handle, set ? SETRTS : CLRRTS); } ulong QextSerialPortPrivate::lineStatus_sys(void) { unsigned long Status=0, Temp=0; GetCommModemStatus(Win_Handle, &Temp); if (Temp & MS_CTS_ON) Status|=LS_CTS; if (Temp & MS_DSR_ON) Status|=LS_DSR; if (Temp & MS_RING_ON) Status|=LS_RI; if (Temp & MS_RLSD_ON) Status|=LS_DCD; return Status; } /* Triggered when there's activity on our HANDLE. */ void QextSerialPortPrivate::_q_onWinEvent(HANDLE h) { Q_Q(QextSerialPort); if(h == overlap.hEvent) { if (eventMask & EV_RXCHAR) { if (q->sender() != q && bytesAvailable_sys() > 0) _q_canRead(); } if (eventMask & EV_TXEMPTY) { /* A write completed. Run through the list of OVERLAPPED writes, and if they completed successfully, take them off the list and delete them. Otherwise, leave them on there so they can finish. */ qint64 totalBytesWritten = 0; QList overlapsToDelete; foreach(OVERLAPPED* o, pendingWrites) { DWORD numBytes = 0; if (GetOverlappedResult(Win_Handle, o, & numBytes, false)) { overlapsToDelete.append(o); totalBytesWritten += numBytes; } else if( GetLastError() != ERROR_IO_INCOMPLETE ) { overlapsToDelete.append(o); QESP_WARNING()<<"CommEvent overlapped write error:" << GetLastError(); } } if (q->sender() != q && totalBytesWritten > 0) { QWriteLocker writelocker(bytesToWriteLock); Q_EMIT q->bytesWritten(totalBytesWritten); _bytesToWrite = 0; } foreach(OVERLAPPED* o, overlapsToDelete) { OVERLAPPED *toDelete = pendingWrites.takeAt(pendingWrites.indexOf(o)); CloseHandle(toDelete->hEvent); delete toDelete; } } if (eventMask & EV_DSR) { if (lineStatus_sys() & LS_DSR) Q_EMIT q->dsrChanged(true); else Q_EMIT q->dsrChanged(false); } } WaitCommEvent(Win_Handle, &eventMask, &overlap); } void QextSerialPortPrivate::updatePortSettings() { if (!q_ptr->isOpen() || !settingsDirtyFlags) return; //fill struct : COMMCONFIG if (settingsDirtyFlags & DFE_BaudRate) { Win_CommConfig.dcb.BaudRate = Settings.BaudRate; } if (settingsDirtyFlags & DFE_Parity) { Win_CommConfig.dcb.Parity = (BYTE)Settings.Parity; Win_CommConfig.dcb.fParity = (Settings.Parity == PAR_NONE) ? FALSE : TRUE; } if (settingsDirtyFlags & DFE_DataBits) { Win_CommConfig.dcb.ByteSize = (BYTE)Settings.DataBits; } if (settingsDirtyFlags & DFE_StopBits) { switch (Settings.StopBits) { case STOP_1: Win_CommConfig.dcb.StopBits = ONESTOPBIT; break; case STOP_1_5: Win_CommConfig.dcb.StopBits = ONE5STOPBITS; break; case STOP_2: Win_CommConfig.dcb.StopBits = TWOSTOPBITS; break; } } if (settingsDirtyFlags & DFE_Flow) { switch(Settings.FlowControl) { /*no flow control*/ case FLOW_OFF: Win_CommConfig.dcb.fOutxCtsFlow=FALSE; Win_CommConfig.dcb.fRtsControl=RTS_CONTROL_DISABLE; Win_CommConfig.dcb.fInX=FALSE; Win_CommConfig.dcb.fOutX=FALSE; break; /*software (XON/XOFF) flow control*/ case FLOW_XONXOFF: Win_CommConfig.dcb.fOutxCtsFlow=FALSE; Win_CommConfig.dcb.fRtsControl=RTS_CONTROL_DISABLE; Win_CommConfig.dcb.fInX=TRUE; Win_CommConfig.dcb.fOutX=TRUE; break; /*hardware flow control*/ case FLOW_HARDWARE: Win_CommConfig.dcb.fOutxCtsFlow=TRUE; Win_CommConfig.dcb.fRtsControl=RTS_CONTROL_HANDSHAKE; Win_CommConfig.dcb.fInX=FALSE; Win_CommConfig.dcb.fOutX=FALSE; break; } } //fill struct : COMMTIMEOUTS if (settingsDirtyFlags & DFE_TimeOut) { if (_queryMode != QextSerialPort::EventDriven) { int millisec = Settings.Timeout_Millisec; if (millisec == -1) { Win_CommTimeouts.ReadIntervalTimeout = MAXDWORD; Win_CommTimeouts.ReadTotalTimeoutConstant = 0; } else { Win_CommTimeouts.ReadIntervalTimeout = millisec; Win_CommTimeouts.ReadTotalTimeoutConstant = millisec; } Win_CommTimeouts.ReadTotalTimeoutMultiplier = 0; Win_CommTimeouts.WriteTotalTimeoutMultiplier = millisec; Win_CommTimeouts.WriteTotalTimeoutConstant = 0; } else { Win_CommTimeouts.ReadIntervalTimeout = MAXDWORD; Win_CommTimeouts.ReadTotalTimeoutMultiplier = 0; Win_CommTimeouts.ReadTotalTimeoutConstant = 0; Win_CommTimeouts.WriteTotalTimeoutMultiplier = 0; Win_CommTimeouts.WriteTotalTimeoutConstant = 0; } } if (settingsDirtyFlags & DFE_Settings_Mask) SetCommConfig(Win_Handle, &Win_CommConfig, sizeof(COMMCONFIG)); if ((settingsDirtyFlags & DFE_TimeOut)) SetCommTimeouts(Win_Handle, &Win_CommTimeouts); settingsDirtyFlags = 0; } dlt-viewer-2.18.0+dfsg/qextserialport/src/qextserialenumerator_p.h0000664000175000017500000000752213001357026025056 0ustar potyrapotyra/**************************************************************************** ** Copyright (c) 2000-2003 Wayne Roth ** Copyright (c) 2004-2007 Stefan Sander ** Copyright (c) 2007 Michal Policht ** Copyright (c) 2008 Brandon Fosdick ** Copyright (c) 2009-2010 Liam Staskawicz ** Copyright (c) 2011 Debao Zhang ** All right reserved. ** Web: http://code.google.com/p/qextserialport/ ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the ** "Software"), to deal in the Software without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Software, and to ** permit persons to whom the Software is furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ** ****************************************************************************/ #ifndef _QEXTSERIALENUMERATOR_P_H_ #define _QEXTSERIALENUMERATOR_P_H_ // // W A R N I N G // ------------- // // This file is not part of the QESP API. It exists for the convenience // of other QESP classes. This header file may change from version to // version without notice, or even be removed. // // We mean it. // #include "qextserialenumerator.h" #ifdef Q_OS_WIN // needed for mingw to pull in appropriate dbt business... // probably a better way to do this // http://mingw-users.1079350.n2.nabble.com/DEV-BROADCAST-DEVICEINTERFACE-was-not-declared-in-this-scope-td3552762.html # ifdef __MINGW32__ //# define _WIN32_WINNT 0x0500 # define _WIN32_WINDOWS 0x0500 //# define WINVER 0x0500 # endif # include #endif /*Q_OS_WIN*/ #ifdef Q_OS_MAC # include #endif /*Q_OS_MAC*/ #if (defined(QT_GUI_LIB) && QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) || defined(QT_WIDGETS_LIB) # define HAS_QWIDGET #endif class QextSerialRegistrationWidget; class QextSerialEnumeratorPrivate { Q_DECLARE_PUBLIC(QextSerialEnumerator) public: QextSerialEnumeratorPrivate(QextSerialEnumerator * enumrator); ~QextSerialEnumeratorPrivate(); void platformSpecificInit(); void platformSpecificDestruct(); static QList getPorts_sys(); bool setUpNotifications_sys(bool setup); #ifdef Q_OS_WIN LRESULT onDeviceChanged( WPARAM wParam, LPARAM lParam ); bool matchAndDispatchChangedDevice(const QString & deviceID, const GUID & guid, WPARAM wParam); # ifdef HAS_QWIDGET QextSerialRegistrationWidget* notificationWidget; # endif #endif /*Q_OS_WIN*/ #ifdef Q_OS_MAC /*! * Search for serial ports using IOKit. * \param infoList list with result. */ static void iterateServicesOSX(io_object_t service, QList & infoList); static bool getServiceDetailsOSX( io_object_t service, QextPortInfo* portInfo ); void onDeviceDiscoveredOSX( io_object_t service ); void onDeviceTerminatedOSX( io_object_t service ); friend void deviceDiscoveredCallbackOSX( void *ctxt, io_iterator_t serialPortIterator ); friend void deviceTerminatedCallbackOSX( void *ctxt, io_iterator_t serialPortIterator ); IONotificationPortRef notificationPortRef; #endif // Q_OS_MAC private: QextSerialEnumerator * q_ptr; }; #endif //_QEXTSERIALENUMERATOR_P_H_ dlt-viewer-2.18.0+dfsg/qextserialport/src/qextserialport.cpp0000664000175000017500000007576513001357026023713 0ustar potyrapotyra/**************************************************************************** ** Copyright (c) 2000-2003 Wayne Roth ** Copyright (c) 2004-2007 Stefan Sander ** Copyright (c) 2007 Michal Policht ** Copyright (c) 2008 Brandon Fosdick ** Copyright (c) 2009-2010 Liam Staskawicz ** Copyright (c) 2011 Debao Zhang ** All right reserved. ** Web: http://code.google.com/p/qextserialport/ ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the ** "Software"), to deal in the Software without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Software, and to ** permit persons to whom the Software is furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ** ****************************************************************************/ #include "qextserialport.h" #include "qextserialport_p.h" #include #include #include #include /*! \enum BaudRateType baud rate values support. */ /*! \enum DataBitsType */ /*! \enum ParityType */ /*! \enum StopBitsType \value STOP_1 \value STOP_1_5 \value STOP_2 */ /*! \enum FlowType */ /*! \class PortSettings \brief The PortSettings class contain port settings Structure to contain port settings. \code BaudRateType BaudRate; DataBitsType DataBits; ParityType Parity; StopBitsType StopBits; FlowType FlowControl; long Timeout_Millisec; \endcode */ QextSerialPortPrivate::QextSerialPortPrivate(QextSerialPort *q) :lock(QReadWriteLock::Recursive), q_ptr(q) { lastErr = E_NO_ERROR; Settings.BaudRate = BAUD9600; Settings.Parity = PAR_NONE; Settings.FlowControl = FLOW_OFF; Settings.DataBits = DATA_8; Settings.StopBits = STOP_1; Settings.Timeout_Millisec = 10; settingsDirtyFlags = DFE_ALL; platformSpecificInit(); } QextSerialPortPrivate::~QextSerialPortPrivate() { platformSpecificDestruct(); } void QextSerialPortPrivate::setBaudRate(BaudRateType baudRate, bool update) { switch (baudRate) { #ifdef Q_OS_WIN //Windows Special case BAUD14400: case BAUD56000: case BAUD128000: case BAUD256000: QESP_PORTABILITY_WARNING()<<"QextSerialPort Portability Warning: POSIX does not support baudRate:"<isOpen()) updatePortSettings(); break; default: QESP_WARNING()<<"QextSerialPort does not support baudRate:"<isOpen()) updatePortSettings(); } void QextSerialPortPrivate::setDataBits(DataBitsType dataBits, bool update) { switch(dataBits) { case DATA_5: if (Settings.StopBits==STOP_2) { QESP_WARNING("QextSerialPort: 5 Data bits cannot be used with 2 stop bits."); } else { Settings.DataBits=dataBits; settingsDirtyFlags |= DFE_DataBits; } break; case DATA_6: #ifdef Q_OS_WIN if (Settings.StopBits==STOP_1_5) { QESP_WARNING("QextSerialPort: 6 Data bits cannot be used with 1.5 stop bits."); } else #endif { Settings.DataBits=dataBits; settingsDirtyFlags |= DFE_DataBits; } break; case DATA_7: #ifdef Q_OS_WIN if (Settings.StopBits==STOP_1_5) { QESP_WARNING("QextSerialPort: 7 Data bits cannot be used with 1.5 stop bits."); } else #endif { Settings.DataBits=dataBits; settingsDirtyFlags |= DFE_DataBits; } break; case DATA_8: #ifdef Q_OS_WIN if (Settings.StopBits==STOP_1_5) { QESP_WARNING("QextSerialPort: 8 Data bits cannot be used with 1.5 stop bits."); } else #endif { Settings.DataBits=dataBits; settingsDirtyFlags |= DFE_DataBits; } break; default: QESP_WARNING()<<"QextSerialPort does not support Data bits:"<isOpen()) updatePortSettings(); } void QextSerialPortPrivate::setStopBits(StopBitsType stopBits, bool update) { switch (stopBits) { /*one stop bit*/ case STOP_1: Settings.StopBits = stopBits; settingsDirtyFlags |= DFE_StopBits; break; #ifdef Q_OS_WIN /*1.5 stop bits*/ case STOP_1_5: QESP_PORTABILITY_WARNING("QextSerialPort Portability Warning: 1.5 stop bit operation is not supported by POSIX."); if (Settings.DataBits!=DATA_5) { QESP_WARNING("QextSerialPort: 1.5 stop bits can only be used with 5 data bits"); } else { Settings.StopBits = stopBits; settingsDirtyFlags |= DFE_StopBits; } break; #endif /*two stop bits*/ case STOP_2: if (Settings.DataBits==DATA_5) { QESP_WARNING("QextSerialPort: 2 stop bits cannot be used with 5 data bits"); } else { Settings.StopBits = stopBits; settingsDirtyFlags |= DFE_StopBits; } break; default: QESP_WARNING()<<"QextSerialPort does not support stop bits: "<isOpen()) updatePortSettings(); } void QextSerialPortPrivate::setFlowControl(FlowType flow, bool update) { Settings.FlowControl=flow; settingsDirtyFlags |= DFE_Flow; if (update && q_func()->isOpen()) updatePortSettings(); } void QextSerialPortPrivate::setTimeout(long millisec, bool update) { Settings.Timeout_Millisec = millisec; settingsDirtyFlags |= DFE_TimeOut; if (update && q_func()->isOpen()) updatePortSettings(); } void QextSerialPortPrivate::setPortSettings(const PortSettings &settings, bool update) { setBaudRate(settings.BaudRate, false); setDataBits(settings.DataBits, false); setStopBits(settings.StopBits, false); setParity(settings.Parity, false); setFlowControl(settings.FlowControl, false); setTimeout(settings.Timeout_Millisec, false); settingsDirtyFlags = DFE_ALL; if (update && q_func()->isOpen()) updatePortSettings(); } void QextSerialPortPrivate::_q_canRead() { qint64 maxSize = bytesAvailable_sys(); if (maxSize > 0) { char * writePtr = readBuffer.reserve(size_t(maxSize)); qint64 bytesRead = readData_sys(writePtr, maxSize); if (bytesRead < maxSize) readBuffer.chop(maxSize - bytesRead); Q_Q(QextSerialPort); Q_EMIT q->readyRead(); } } /*! \class QextSerialPort \brief The QextSerialPort class encapsulates a serial port on both POSIX and Windows systems. \section1 Usage QextSerialPort offers both a polling and event driven API. Event driven is typically easier to use, since you never have to worry about checking for new data. \bold Example \code QextSerialPort* port = new QextSerialPort("COM1"); connect(port, SIGNAL(readyRead()), myClass, SLOT(onDataAvailable())); port->open(); void MyClass::onDataAvailable() { int avail = port->bytesAvailable(); if( avail > 0 ) { QByteArray usbdata; usbdata.resize(avail); int read = port->read(usbdata.data(), usbdata.size()); if( read > 0 ) { processNewData(usbdata); } } } \endcode \section1 Compatibility The user will be notified of errors and possible portability conflicts at run-time by default. For example, if a application has used BAUD1800, when it is runing under unix, you will get following message. \code QextSerialPort Portability Warning: Windows does not support baudRate:1800 \endcode This behavior can be turned off by defining macro QESP_NO_WARN (to turn off all warnings) or QESP_NO_PORTABILITY_WARN (to turn off portability warnings) in the project. \bold Author: Stefan Sander, Michal Policht, Brandon Fosdick, Liam Staskawicz, Debao Zhang */ /*! \enum QextSerialPort::QueryMode This enum type specifies query mode used in a serial port: \value Polling asynchronously read and write \value EventDriven synchronously read and write */ /*! \fn void QextSerialPort::dsrChanged(bool status) This signal is emitted whenever dsr line has changed its state. You may use this signal to check if device is connected. \a status true when DSR signal is on, false otherwise. */ /*! \fn QueryMode QextSerialPort::queryMode() const Get query mode. */ /*! Default constructor. Note that the name of the device used by a QextSerialPort is dependent on your OS. Possible naming conventions and their associated OS are: \code OS Constant Used By Naming Convention ------------- ------------- ------------------------ Q_OS_WIN Windows COM1, COM2 Q_OS_IRIX SGI/IRIX /dev/ttyf1, /dev/ttyf2 Q_OS_HPUX HP-UX /dev/tty1p0, /dev/tty2p0 Q_OS_SOLARIS SunOS/Slaris /dev/ttya, /dev/ttyb Q_OS_OSF Digital UNIX /dev/tty01, /dev/tty02 Q_OS_FREEBSD FreeBSD /dev/ttyd0, /dev/ttyd1 Q_OS_OPENBSD OpenBSD /dev/tty00, /dev/tty01 Q_OS_LINUX Linux /dev/ttyS0, /dev/ttyS1 /dev/ttyS0, /dev/ttyS1 \endcode This constructor assigns the device name to the name of the first port on the specified system. See the other constructors if you need to open a different port. Default \a mode is EventDriven. As a subclass of QObject, \a parent can be specified. */ QextSerialPort::QextSerialPort(QextSerialPort::QueryMode mode, QObject *parent) : QIODevice(parent), d_ptr(new QextSerialPortPrivate(this)) { #ifdef Q_OS_WIN setPortName(QLatin1String("COM1")); #elif defined(Q_OS_IRIX) setPortName(QLatin1String("/dev/ttyf1")); #elif defined(Q_OS_HPUX) setPortName(QLatin1String("/dev/tty1p0")); #elif defined(Q_OS_SOLARIS) setPortName(QLatin1String("/dev/ttya")); #elif defined(Q_OS_OSF) //formally DIGITAL UNIX setPortName(QLatin1String("/dev/tty01")); #elif defined(Q_OS_FREEBSD) setPortName(QLatin1String("/dev/ttyd1")); #elif defined(Q_OS_OPENBSD) setPortName(QLatin1String("/dev/tty00")); #else setPortName(QLatin1String("/dev/ttyS0")); #endif setQueryMode(mode); } /*! Constructs a serial port attached to the port specified by name. \a name is the name of the device, which is windowsystem-specific, e.g."COM1" or "/dev/ttyS0". \a mode */ QextSerialPort::QextSerialPort(const QString & name, QextSerialPort::QueryMode mode, QObject *parent) : QIODevice(parent), d_ptr(new QextSerialPortPrivate(this)) { setQueryMode(mode); setPortName(name); } /*! Constructs a port with default name and specified \a settings. */ QextSerialPort::QextSerialPort(const PortSettings& settings, QextSerialPort::QueryMode mode, QObject *parent) : QIODevice(parent), d_ptr(new QextSerialPortPrivate(this)) { Q_D(QextSerialPort); setQueryMode(mode); d->setPortSettings(settings); } /*! Constructs a port with specified \a name , \a mode and \a settings. */ QextSerialPort::QextSerialPort(const QString & name, const PortSettings& settings, QextSerialPort::QueryMode mode, QObject *parent) : QIODevice(parent), d_ptr(new QextSerialPortPrivate(this)) { Q_D(QextSerialPort); setPortName(name); setQueryMode(mode); d->setPortSettings(settings); } /*! Opens a serial port and sets its OpenMode to \a mode. Note that this function does not specify which device to open. Returns true if successful; otherwise returns false.This function has no effect if the port associated with the class is already open. The port is also configured to the current settings, as stored in the Settings structure. */ bool QextSerialPort::open(OpenMode mode) { Q_D(QextSerialPort); QWriteLocker locker(&d->lock); if (mode != QIODevice::NotOpen && !isOpen()) d->open_sys(mode); return isOpen(); } /*! \reimp Closes a serial port. This function has no effect if the serial port associated with the class is not currently open. */ void QextSerialPort::close() { Q_D(QextSerialPort); QWriteLocker locker(&d->lock); if (isOpen()) { // Be a good QIODevice and call QIODevice::close() before really close() // so the aboutToClose() signal is emitted at the proper time QIODevice::close(); // mark ourselves as closed d->close_sys(); d->readBuffer.clear(); } } /*! Flushes all pending I/O to the serial port. This function has no effect if the serial port associated with the class is not currently open. */ void QextSerialPort::flush() { Q_D(QextSerialPort); QWriteLocker locker(&d->lock); if (isOpen()) d->flush_sys(); } /*! \reimp Returns the number of bytes waiting in the port's receive queue. This function will return 0 if the port is not currently open, or -1 on error. */ qint64 QextSerialPort::bytesAvailable() const { QWriteLocker locker(&d_func()->lock); if (isOpen()) { qint64 bytes = d_func()->bytesAvailable_sys(); if (bytes != -1) { return bytes + d_func()->readBuffer.size() + QIODevice::bytesAvailable(); } else { return -1; } } return 0; } /*! * Set desired serial communication handling style. You may choose from polling * or event driven approach. This function does nothing when port is open; to * apply changes port must be reopened. * * In event driven approach read() and write() functions are acting * asynchronously. They return immediately and the operation is performed in * the background, so they doesn't freeze the calling thread. * To determine when operation is finished, QextSerialPort runs separate thread * and monitors serial port events. Whenever the event occurs, adequate signal * is emitted. * * When polling is set, read() and write() are acting synchronously. Signals are * not working in this mode and some functions may not be available. The advantage * of polling is that it generates less overhead due to lack of signals emissions * and it doesn't start separate thread to monitor events. * * Generally event driven approach is more capable and friendly, although some * applications may need as low overhead as possible and then polling comes. * * \a mode query mode. */ void QextSerialPort::setQueryMode(QueryMode mode) { Q_D(QextSerialPort); QWriteLocker locker(&d->lock); if (mode != d->_queryMode) { d->_queryMode = mode; } } /*! Sets the \a name of the device associated with the object, e.g. "COM1", or "/dev/ttyS0". */ void QextSerialPort::setPortName(const QString & name) { Q_D(QextSerialPort); QWriteLocker locker(&d->lock); d->port = name; } /*! Returns the name set by setPortName(). */ QString QextSerialPort::portName() const { QReadLocker locker(&d_func()->lock); return d_func()->port; } QextSerialPort::QueryMode QextSerialPort::queryMode() const { QReadLocker locker(&d_func()->lock); return d_func()->_queryMode; } /*! Reads all available data from the device, and returns it as a QByteArray. This function has no way of reporting errors; returning an empty QByteArray() can mean either that no data was currently available for reading, or that an error occurred. */ QByteArray QextSerialPort::readAll() { int avail = this->bytesAvailable(); return (avail > 0) ? this->read(avail) : QByteArray(); } /*! Returns the baud rate of the serial port. For a list of possible return values see the definition of the enum BaudRateType. */ BaudRateType QextSerialPort::baudRate() const { QReadLocker locker(&d_func()->lock); return d_func()->Settings.BaudRate; } /*! Returns the number of data bits used by the port. For a list of possible values returned by this function, see the definition of the enum DataBitsType. */ DataBitsType QextSerialPort::dataBits() const { QReadLocker locker(&d_func()->lock); return d_func()->Settings.DataBits; } /*! Returns the type of parity used by the port. For a list of possible values returned by this function, see the definition of the enum ParityType. */ ParityType QextSerialPort::parity() const { QReadLocker locker(&d_func()->lock); return d_func()->Settings.Parity; } /*! Returns the number of stop bits used by the port. For a list of possible return values, see the definition of the enum StopBitsType. */ StopBitsType QextSerialPort::stopBits() const { QReadLocker locker(&d_func()->lock); return d_func()->Settings.StopBits; } /*! Returns the type of flow control used by the port. For a list of possible values returned by this function, see the definition of the enum FlowType. */ FlowType QextSerialPort::flowControl() const { QReadLocker locker(&d_func()->lock); return d_func()->Settings.FlowControl; } /*! Returns true if device is sequential, otherwise returns false. Serial port is sequential device so this function always returns true. Check QIODevice::isSequential() documentation for more information. */ bool QextSerialPort::isSequential() const { return true; } /*! Return the error number, or 0 if no error occurred. */ ulong QextSerialPort::lastError() const { QReadLocker locker(&d_func()->lock); return d_func()->lastErr; } /*! Returns the line status as stored by the port function. This function will retrieve the states of the following lines: DCD, CTS, DSR, and RI. On POSIX systems, the following additional lines can be monitored: DTR, RTS, Secondary TXD, and Secondary RXD. The value returned is an unsigned long with specific bits indicating which lines are high. The following constants should be used to examine the states of individual lines: \code Mask Line ------ ---- LS_CTS CTS LS_DSR DSR LS_DCD DCD LS_RI RI LS_RTS RTS (POSIX only) LS_DTR DTR (POSIX only) LS_ST Secondary TXD (POSIX only) LS_SR Secondary RXD (POSIX only) \endcode This function will return 0 if the port associated with the class is not currently open. */ unsigned long QextSerialPort::lineStatus() { Q_D(QextSerialPort); QWriteLocker locker(&d->lock); if (isOpen()) return d->lineStatus_sys(); return 0; } /*! Returns a human-readable description of the last device error that occurred. */ QString QextSerialPort::errorString() { Q_D(QextSerialPort); QReadLocker locker(&d->lock); switch(d->lastErr) { case E_NO_ERROR: return tr("No Error has occurred"); case E_INVALID_FD: return tr("Invalid file descriptor (port was not opened correctly)"); case E_NO_MEMORY: return tr("Unable to allocate memory tables (POSIX)"); case E_CAUGHT_NON_BLOCKED_SIGNAL: return tr("Caught a non-blocked signal (POSIX)"); case E_PORT_TIMEOUT: return tr("Operation timed out (POSIX)"); case E_INVALID_DEVICE: return tr("The file opened by the port is not a valid device"); case E_BREAK_CONDITION: return tr("The port detected a break condition"); case E_FRAMING_ERROR: return tr("The port detected a framing error (usually caused by incorrect baud rate settings)"); case E_IO_ERROR: return tr("There was an I/O error while communicating with the port"); case E_BUFFER_OVERRUN: return tr("Character buffer overrun"); case E_RECEIVE_OVERFLOW: return tr("Receive buffer overflow"); case E_RECEIVE_PARITY_ERROR: return tr("The port detected a parity error in the received data"); case E_TRANSMIT_OVERFLOW: return tr("Transmit buffer overflow"); case E_READ_FAILED: return tr("General read operation failure"); case E_WRITE_FAILED: return tr("General write operation failure"); case E_FILE_NOT_FOUND: return tr("The %1 file doesn't exists").arg(this->portName()); case E_PERMISSION_DENIED: return tr("Permission denied"); case E_AGAIN: return tr("Device is already locked"); default: return tr("Unknown error: %1").arg(d->lastErr); } } /*! Destructs the QextSerialPort object. */ QextSerialPort::~QextSerialPort() { if (isOpen()) { close(); } delete d_ptr; } /*! Sets the flow control used by the port to \a flow. Possible values of flow are: \code FLOW_OFF No flow control FLOW_HARDWARE Hardware (RTS/CTS) flow control FLOW_XONXOFF Software (XON/XOFF) flow control \endcode */ void QextSerialPort::setFlowControl(FlowType flow) { Q_D(QextSerialPort); QWriteLocker locker(&d->lock); if (d->Settings.FlowControl != flow) d->setFlowControl(flow, true); } /*! Sets the parity associated with the serial port to \a parity. The possible values of parity are: \code PAR_SPACE Space Parity PAR_MARK Mark Parity PAR_NONE No Parity PAR_EVEN Even Parity PAR_ODD Odd Parity \endcode */ void QextSerialPort::setParity(ParityType parity) { Q_D(QextSerialPort); QWriteLocker locker(&d->lock); if (d->Settings.Parity != parity) d->setParity(parity, true); } /*! Sets the number of data bits used by the serial port to \a dataBits. Possible values of dataBits are: \code DATA_5 5 data bits DATA_6 6 data bits DATA_7 7 data bits DATA_8 8 data bits \endcode \bold note: This function is subject to the following restrictions: \list \o 5 data bits cannot be used with 2 stop bits. \o 1.5 stop bits can only be used with 5 data bits. \o 8 data bits cannot be used with space parity on POSIX systems. \endlist */ void QextSerialPort::setDataBits(DataBitsType dataBits) { Q_D(QextSerialPort); QWriteLocker locker(&d->lock); if (d->Settings.DataBits != dataBits) d->setDataBits(dataBits, true); } /*! Sets the number of stop bits used by the serial port to \a stopBits. Possible values of stopBits are: \code STOP_1 1 stop bit STOP_1_5 1.5 stop bits STOP_2 2 stop bits \endcode \bold note: This function is subject to the following restrictions: \list \o 2 stop bits cannot be used with 5 data bits. \o 1.5 stop bits cannot be used with 6 or more data bits. \o POSIX does not support 1.5 stop bits. \endlist */ void QextSerialPort::setStopBits(StopBitsType stopBits) { Q_D(QextSerialPort); QWriteLocker locker(&d->lock); if (d->Settings.StopBits != stopBits) d->setStopBits(stopBits, true); } /*! Sets the baud rate of the serial port to \a baudRate. Note that not all rates are applicable on all platforms. The following table shows translations of the various baud rate constants on Windows(including NT/2000) and POSIX platforms. Speeds marked with an * are speeds that are usable on both Windows and POSIX. \code RATE Windows Speed POSIX Speed ----------- ------------- ----------- BAUD50 X 50 BAUD75 X 75 *BAUD110 110 110 BAUD134 X 134.5 BAUD150 X 150 BAUD200 X 200 *BAUD300 300 300 *BAUD600 600 600 *BAUD1200 1200 1200 BAUD1800 X 1800 *BAUD2400 2400 2400 *BAUD4800 4800 4800 *BAUD9600 9600 9600 BAUD14400 14400 X *BAUD19200 19200 19200 *BAUD38400 38400 38400 BAUD56000 56000 X *BAUD57600 57600 57600 BAUD76800 X 76800 *BAUD115200 115200 115200 BAUD128000 128000 X BAUD230400 X 230400 BAUD256000 256000 X BAUD460800 X 460800 BAUD500000 X 500000 BAUD576000 X 576000 BAUD921600 X 921600 BAUD1000000 X 1000000 BAUD1152000 X 1152000 BAUD1500000 X 1500000 BAUD2000000 X 2000000 BAUD2500000 X 2500000 BAUD3000000 X 3000000 BAUD3500000 X 3500000 BAUD4000000 X 4000000 \endcode */ void QextSerialPort::setBaudRate(BaudRateType baudRate) { Q_D(QextSerialPort); QWriteLocker locker(&d->lock); if (d->Settings.BaudRate != baudRate) d->setBaudRate(baudRate, true); } /*! For Unix: Sets the read and write timeouts for the port to \a millisec milliseconds. Note that this is a per-character timeout, i.e. the port will wait this long for each individual character, not for the whole read operation. This timeout also applies to the bytesWaiting() function. \bold note: POSIX does not support millisecond-level control for I/O timeout values. Any timeout set using this function will be set to the next lowest tenth of a second for the purposes of detecting read or write timeouts. For example a timeout of 550 milliseconds will be seen by the class as a timeout of 500 milliseconds for the purposes of reading and writing the port. However millisecond-level control is allowed by the select() system call, so for example a 550-millisecond timeout will be seen as 550 milliseconds on POSIX systems for the purpose of detecting available bytes in the read buffer. For Windows: Sets the read and write timeouts for the port to \a millisec milliseconds. Setting 0 indicates that timeouts are not used for read nor write operations; however read() and write() functions will still block. Set -1 to provide non-blocking behaviour (read() and write() will return immediately). \bold note: this function does nothing in event driven mode. */ void QextSerialPort::setTimeout(long millisec) { Q_D(QextSerialPort); QWriteLocker locker(&d->lock); if (d->Settings.Timeout_Millisec != millisec) d->setTimeout(millisec, true); } /*! Sets DTR line to the requested state (\a set default to high). This function will have no effect if the port associated with the class is not currently open. */ void QextSerialPort::setDtr(bool set) { Q_D(QextSerialPort); QWriteLocker locker(&d->lock); if (isOpen()) d->setDtr_sys(set); } /*! Sets RTS line to the requested state \a set (high by default). This function will have no effect if the port associated with the class is not currently open. */ void QextSerialPort::setRts(bool set) { Q_D(QextSerialPort); QWriteLocker locker(&d->lock); if (isOpen()) d->setRts_sys(set); } /*! \reimp Reads a block of data from the serial port. This function will read at most maxlen bytes from the serial port and place them in the buffer pointed to by data. Return value is the number of bytes actually read, or -1 on error. \warning before calling this function ensure that serial port associated with this class is currently open (use isOpen() function to check if port is open). */ qint64 QextSerialPort::readData(char *data, qint64 maxSize) { Q_D(QextSerialPort); QWriteLocker locker(&d->lock); qint64 bytesFromBuffer = 0; if (!d->readBuffer.isEmpty()) { bytesFromBuffer = d->readBuffer.read(data, maxSize); if (bytesFromBuffer == maxSize) return bytesFromBuffer; } qint64 bytesFromDevice = d->readData_sys(data+bytesFromBuffer, maxSize-bytesFromBuffer); if (bytesFromDevice < 0) { return -1; } return bytesFromBuffer + bytesFromDevice; } /*! \reimp Writes a block of data to the serial port. This function will write len bytes from the buffer pointed to by data to the serial port. Return value is the number of bytes actually written, or -1 on error. \warning before calling this function ensure that serial port associated with this class is currently open (use isOpen() function to check if port is open). */ qint64 QextSerialPort::writeData(const char *data, qint64 maxSize) { Q_D(QextSerialPort); QWriteLocker locker(&d->lock); return d->writeData_sys(data, maxSize); } #include "moc_qextserialport.cpp" dlt-viewer-2.18.0+dfsg/qextserialport/src/qextwineventnotifier_p.h0000664000175000017500000000512513001357026025071 0ustar potyrapotyra/**************************************************************************** ** Copyright (c) 2000-2003 Wayne Roth ** Copyright (c) 2004-2007 Stefan Sander ** Copyright (c) 2007 Michal Policht ** Copyright (c) 2008 Brandon Fosdick ** Copyright (c) 2009-2010 Liam Staskawicz ** Copyright (c) 2011 Debao Zhang ** All right reserved. ** Web: http://code.google.com/p/qextserialport/ ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the ** "Software"), to deal in the Software without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Software, and to ** permit persons to whom the Software is furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ** ****************************************************************************/ #ifndef QEXTWINEVENTNOTIFIER_P_H_ #define QEXTWINEVENTNOTIFIER_P_H_ // // W A R N I N G // ------------- // // This file is not part of the QESP API. It exists for the convenience // of other QESP classes. This header file may change from version to // version without notice, or even be removed. // // We mean it. // #include #include #include "qextserialport_global.h" class QextWinEventNotifierPrivate; class QEXTSERIALPORT_EXPORT QextWinEventNotifier : public QObject { Q_OBJECT Q_DECLARE_PRIVATE(QextWinEventNotifier) public: explicit QextWinEventNotifier(QObject *parent = 0); explicit QextWinEventNotifier(HANDLE hEvent, QObject *parent = 0); ~QextWinEventNotifier(); void setHandle(HANDLE hEvent); HANDLE handle() const; bool isEnabled() const; public Q_SLOTS: void setEnabled(bool enable); Q_SIGNALS: void activated(HANDLE hEvent); protected: bool event(QEvent * e); private: Q_DISABLE_COPY(QextWinEventNotifier) QextWinEventNotifierPrivate * d_ptr; }; #endif // QEXTWINEVENTNOTIFIER_P_H_ dlt-viewer-2.18.0+dfsg/qextserialport/src/qextserialenumerator_win.cpp0000664000175000017500000002465713001357026025757 0ustar potyrapotyra/**************************************************************************** ** Copyright (c) 2000-2003 Wayne Roth ** Copyright (c) 2004-2007 Stefan Sander ** Copyright (c) 2007 Michal Policht ** Copyright (c) 2008 Brandon Fosdick ** Copyright (c) 2009-2010 Liam Staskawicz ** Copyright (c) 2011 Debao Zhang ** All right reserved. ** Web: http://code.google.com/p/qextserialport/ ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the ** "Software"), to deal in the Software without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Software, and to ** permit persons to whom the Software is furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ** ****************************************************************************/ #include "qextserialenumerator.h" #include "qextserialenumerator_p.h" #include #include #include #include #include #include #include #include "qextserialport.h" #ifdef HAS_QWIDGET #include class QextSerialRegistrationWidget : public QWidget { public: QextSerialRegistrationWidget(QextSerialEnumeratorPrivate* qese) { this->qese = qese; } ~QextSerialRegistrationWidget() {} protected: bool winEvent( MSG* message, long* result ) { if ( message->message == WM_DEVICECHANGE ) { qese->onDeviceChanged(message->wParam, message->lParam ); *result = 1; return true; } return false; } private: QextSerialEnumeratorPrivate* qese; }; #endif // HAS_QWIDGET void QextSerialEnumeratorPrivate::platformSpecificInit() { #ifdef HAS_QWIDGET notificationWidget = 0; #endif // HAS_QWIDGET } /*! default */ void QextSerialEnumeratorPrivate::platformSpecificDestruct() { #ifdef HAS_QWIDGET if( notificationWidget ) delete notificationWidget; #endif } // ### This url has broken, anyone can fix it? // see http://msdn.microsoft.com/en-us/library/ms791134.aspx for list of GUID classes #ifndef GUID_DEVCLASS_PORTS DEFINE_GUID(GUID_DEVCLASS_PORTS, 0x4D36E978, 0xE325, 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18 ); #endif /* Gordon Schumacher's macros for TCHAR -> QString conversions and vice versa */ #ifdef UNICODE #define QStringToTCHAR(x) (wchar_t*) x.utf16() #define PQStringToTCHAR(x) (wchar_t*) x->utf16() #define TCHARToQString(x) QString::fromUtf16((ushort*)(x)) #define TCHARToQStringN(x,y) QString::fromUtf16((ushort*)(x),(y)) #else #define QStringToTCHAR(x) x.local8Bit().constData() #define PQStringToTCHAR(x) x->local8Bit().constData() #define TCHARToQString(x) QString::fromLocal8Bit((char*)(x)) #define TCHARToQStringN(x,y) QString::fromLocal8Bit((char*)(x),(y)) #endif /*UNICODE*/ /*! \internal Get value of specified property from the registry. \a key handle to an open key. \a property property name. return property value. */ static QString getRegKeyValue(HKEY key, LPCTSTR property) { DWORD size = 0; DWORD type; ::RegQueryValueEx(key, property, NULL, NULL, NULL, & size); BYTE* buff = new BYTE[size]; QString result; if(::RegQueryValueEx(key, property, NULL, &type, buff, & size) == ERROR_SUCCESS ) result = TCHARToQString(buff); ::RegCloseKey(key); delete [] buff; return result; } /*! \internal Get specific property from registry. \a devInfo pointer to the device information set that contains the interface and its underlying device. Returned by SetupDiGetClassDevs() function. \a devData pointer to an SP_DEVINFO_DATA structure that defines the device instance. this is returned by SetupDiGetDeviceInterfaceDetail() function. \a property registry property. One of defined SPDRP_* constants. return property string. */ static QString getDeviceProperty(HDEVINFO devInfo, PSP_DEVINFO_DATA devData, DWORD property) { DWORD buffSize = 0; ::SetupDiGetDeviceRegistryProperty(devInfo, devData, property, NULL, NULL, 0, & buffSize); BYTE* buff = new BYTE[buffSize]; ::SetupDiGetDeviceRegistryProperty(devInfo, devData, property, NULL, buff, buffSize, NULL); QString result = TCHARToQString(buff); delete [] buff; return result; } /*! \internal */ static bool getDeviceDetailsWin( QextPortInfo* portInfo, HDEVINFO devInfo, PSP_DEVINFO_DATA devData , WPARAM wParam = DBT_DEVICEARRIVAL) { portInfo->friendName = getDeviceProperty(devInfo, devData, SPDRP_FRIENDLYNAME); if( wParam == DBT_DEVICEARRIVAL) portInfo->physName = getDeviceProperty(devInfo, devData, SPDRP_PHYSICAL_DEVICE_OBJECT_NAME); portInfo->enumName = getDeviceProperty(devInfo, devData, SPDRP_ENUMERATOR_NAME); QString hardwareIDs = getDeviceProperty(devInfo, devData, SPDRP_HARDWAREID); HKEY devKey = ::SetupDiOpenDevRegKey(devInfo, devData, DICS_FLAG_GLOBAL, 0, DIREG_DEV, KEY_QUERY_VALUE); portInfo->portName = getRegKeyValue(devKey, TEXT("PortName")); QRegExp idRx(QLatin1String("VID_(\\w+)&PID_(\\w+)")); if(hardwareIDs.toUpper().contains(idRx)) { bool dummy; portInfo->vendorID = idRx.cap(1).toInt(&dummy, 16); portInfo->productID = idRx.cap(2).toInt(&dummy, 16); //qDebug() << "got vid:" << vid << "pid:" << pid; } return true; } /*! \internal */ static void enumerateDevicesWin( const GUID & guid, QList* infoList ) { HDEVINFO devInfo; if( (devInfo = ::SetupDiGetClassDevs(&guid, NULL, NULL, DIGCF_PRESENT)) != INVALID_HANDLE_VALUE) { SP_DEVINFO_DATA devInfoData; devInfoData.cbSize = sizeof(SP_DEVINFO_DATA); for(int i = 0; ::SetupDiEnumDeviceInfo(devInfo, i, &devInfoData); i++) { QextPortInfo info; info.productID = info.vendorID = 0; getDeviceDetailsWin( &info, devInfo, &devInfoData ); infoList->append(info); } ::SetupDiDestroyDeviceInfoList(devInfo); } } static bool lessThan(const QextPortInfo &s1, const QextPortInfo &s2) { if (s1.portName.startsWith(QLatin1String("COM")) && s2.portName.startsWith(QLatin1String("COM"))) { return s1.portName.mid(3).toInt() QextSerialEnumeratorPrivate::getPorts_sys() { QList ports; enumerateDevicesWin(GUID_DEVCLASS_PORTS, &ports); qSort(ports.begin(), ports.end(), lessThan); return ports; } /* Enable event-driven notifications of board discovery/removal. */ bool QextSerialEnumeratorPrivate::setUpNotifications_sys(bool setup) { #ifndef HAS_QWIDGET Q_UNUSED(setup) QESP_WARNING("QextSerialEnumerator: GUI not enabled - can't register for device notifications."); return false; #else Q_Q(QextSerialEnumerator); if(setup && notificationWidget) //already setup return true; notificationWidget = new QextSerialRegistrationWidget(this); DEV_BROADCAST_DEVICEINTERFACE dbh; ::ZeroMemory(&dbh, sizeof(dbh)); dbh.dbcc_size = sizeof(dbh); dbh.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE; ::CopyMemory(&dbh.dbcc_classguid, &GUID_DEVCLASS_PORTS, sizeof(GUID)); if(::RegisterDeviceNotification((HWND)notificationWidget->winId(), &dbh, DEVICE_NOTIFY_WINDOW_HANDLE ) == NULL) { QESP_WARNING() << "RegisterDeviceNotification failed:" << GetLastError(); return false; } // setting up notifications doesn't tell us about devices already connected // so get those manually foreach(QextPortInfo port, getPorts_sys()) Q_EMIT q->deviceDiscovered(port); return true; #endif } LRESULT QextSerialEnumeratorPrivate::onDeviceChanged( WPARAM wParam, LPARAM lParam ) { if (DBT_DEVICEARRIVAL == wParam || DBT_DEVICEREMOVECOMPLETE == wParam ) { PDEV_BROADCAST_HDR pHdr = (PDEV_BROADCAST_HDR)lParam; if(pHdr->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE ) { PDEV_BROADCAST_DEVICEINTERFACE pDevInf = (PDEV_BROADCAST_DEVICEINTERFACE)pHdr; // delimiters are different across APIs...change to backslash. ugh. QString deviceID = TCHARToQString(pDevInf->dbcc_name).toUpper().replace(QLatin1String("#"), QLatin1String("\\")); matchAndDispatchChangedDevice(deviceID, GUID_DEVCLASS_PORTS, wParam); } } return 0; } bool QextSerialEnumeratorPrivate::matchAndDispatchChangedDevice(const QString & deviceID, const GUID & guid, WPARAM wParam) { Q_Q(QextSerialEnumerator); bool rv = false; DWORD dwFlag = (DBT_DEVICEARRIVAL == wParam) ? DIGCF_PRESENT : DIGCF_ALLCLASSES; HDEVINFO devInfo; if( (devInfo = SetupDiGetClassDevs(&guid,NULL,NULL,dwFlag)) != INVALID_HANDLE_VALUE ) { SP_DEVINFO_DATA spDevInfoData; spDevInfoData.cbSize = sizeof(SP_DEVINFO_DATA); for(int i=0; SetupDiEnumDeviceInfo(devInfo, i, &spDevInfoData); i++) { DWORD nSize=0 ; TCHAR buf[MAX_PATH]; if ( SetupDiGetDeviceInstanceId(devInfo, &spDevInfoData, buf, MAX_PATH, &nSize) && deviceID.contains(TCHARToQString(buf))) { // we found a match rv = true; QextPortInfo info; info.productID = info.vendorID = 0; getDeviceDetailsWin( &info, devInfo, &spDevInfoData, wParam ); if( wParam == DBT_DEVICEARRIVAL ) Q_EMIT q->deviceDiscovered(info); else if( wParam == DBT_DEVICEREMOVECOMPLETE ) Q_EMIT q->deviceRemoved(info); break; } } SetupDiDestroyDeviceInfoList(devInfo); } return rv; } dlt-viewer-2.18.0+dfsg/qextserialport/src/qextserialenumerator.cpp0000664000175000017500000001322113001357026025063 0ustar potyrapotyra/**************************************************************************** ** Copyright (c) 2000-2003 Wayne Roth ** Copyright (c) 2004-2007 Stefan Sander ** Copyright (c) 2007 Michal Policht ** Copyright (c) 2008 Brandon Fosdick ** Copyright (c) 2009-2010 Liam Staskawicz ** Copyright (c) 2011 Debao Zhang ** All right reserved. ** Web: http://code.google.com/p/qextserialport/ ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the ** "Software"), to deal in the Software without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Software, and to ** permit persons to whom the Software is furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ** ****************************************************************************/ #include "qextserialenumerator.h" #include "qextserialenumerator_p.h" #include #include #include QextSerialEnumeratorPrivate::QextSerialEnumeratorPrivate(QextSerialEnumerator *enumrator) :q_ptr(enumrator) { platformSpecificInit(); } QextSerialEnumeratorPrivate::~QextSerialEnumeratorPrivate() { platformSpecificDestruct(); } /*! \class QextPortInfo \brief The QextPortInfo class containing port information. Structure containing port information. \code QString portName; ///< Port name. QString physName; ///< Physical name. QString friendName; ///< Friendly name. QString enumName; ///< Enumerator name. int vendorID; ///< Vendor ID. int productID; ///< Product ID \endcode */ /*! \class QextSerialEnumerator \brief The QextSerialEnumerator class provides list of ports available in the system. \section1 Usage To poll the system for a list of connected devices, simply use getPorts(). Each QextPortInfo structure will populated with information about the corresponding device. \bold Example \code QList ports = QextSerialEnumerator::getPorts(); foreach( QextPortInfo port, ports ) { // inspect port... } \endcode To enable event-driven notification of device connection events, first call setUpNotifications() and then connect to the deviceDiscovered() and deviceRemoved() signals. Event-driven behavior is currently available only on Windows and OS X. \bold Example \code QextSerialEnumerator* enumerator = new QextSerialEnumerator(); connect(enumerator, SIGNAL(deviceDiscovered(const QextPortInfo &)), myClass, SLOT(onDeviceDiscovered(const QextPortInfo &))); connect(enumerator, SIGNAL(deviceRemoved(const QextPortInfo &)), myClass, SLOT(onDeviceRemoved(const QextPortInfo &))); \endcode \section1 Credits Windows implementation is based on Zach Gorman's work from \l {http://www.codeproject.com}{The Code Project} (\l http://www.codeproject.com/system/setupdi.asp). OS X implementation, see \l http://developer.apple.com/documentation/DeviceDrivers/Conceptual/AccessingHardware/AH_Finding_Devices/chapter_4_section_2.html \bold author Michal Policht, Liam Staskawicz */ /*! \fn void QextSerialEnumerator::deviceDiscovered( const QextPortInfo & info ) A new device has been connected to the system. setUpNotifications() must be called first to enable event-driven device notifications. Currently only implemented on Windows and OS X. \a info The device that has been discovered. */ /*! \fn void QextSerialEnumerator::deviceRemoved( const QextPortInfo & info ); A device has been disconnected from the system. setUpNotifications() must be called first to enable event-driven device notifications. Currently only implemented on Windows and OS X. \a info The device that was disconnected. */ /*! Constructs a QextSerialEnumerator object with the given \a parent. */ QextSerialEnumerator::QextSerialEnumerator(QObject *parent) :QObject(parent), d_ptr(new QextSerialEnumeratorPrivate(this)) { if( !QMetaType::isRegistered( QMetaType::type("QextPortInfo") ) ) qRegisterMetaType("QextPortInfo"); } /*! Destructs the QextSerialEnumerator object. */ QextSerialEnumerator::~QextSerialEnumerator( ) { delete d_ptr; } /*! Get list of ports. return list of ports currently available in the system. */ QList QextSerialEnumerator::getPorts() { #if defined(Q_OS_UNIX) && !defined(Q_OS_LINUX) && !defined(Q_OS_MAC) qCritical("Enumeration for POSIX systems (except Linux) is not implemented yet."); #endif return QextSerialEnumeratorPrivate::getPorts_sys(); } /*! Enable event-driven notifications of board discovery/removal. */ void QextSerialEnumerator::setUpNotifications() { #if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) qCritical("Notifications for *Nix/FreeBSD are not implemented yet"); #endif Q_D(QextSerialEnumerator); if (!d->setUpNotifications_sys(true)) QESP_WARNING("Setup Notification Failed..."); } dlt-viewer-2.18.0+dfsg/qextserialport/src/qextserialport_p.h0000664000175000017500000001537113001357026023662 0ustar potyrapotyra/**************************************************************************** ** Copyright (c) 2000-2003 Wayne Roth ** Copyright (c) 2004-2007 Stefan Sander ** Copyright (c) 2007 Michal Policht ** Copyright (c) 2008 Brandon Fosdick ** Copyright (c) 2009-2010 Liam Staskawicz ** Copyright (c) 2011 Debao Zhang ** All right reserved. ** Web: http://code.google.com/p/qextserialport/ ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the ** "Software"), to deal in the Software without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Software, and to ** permit persons to whom the Software is furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ** ****************************************************************************/ #ifndef _QEXTSERIALPORT_P_H_ #define _QEXTSERIALPORT_P_H_ // // W A R N I N G // ------------- // // This file is not part of the QESP API. It exists for the convenience // of other QESP classes. This header file may change from version to // version without notice, or even be removed. // // We mean it. // #include "qextserialport.h" #include #ifdef Q_OS_UNIX # include #elif (defined Q_OS_WIN) # include #endif #include // This is QextSerialPort's read buffer, needed by posix system. // ref: QRingBuffer & QIODevicePrivateLinearBuffer class QextReadBuffer { public: inline QextReadBuffer(size_t growth=4096) : len(0), first(0), buf(0), capacity(0), basicBlockSize(growth) { } ~QextReadBuffer() { delete [] buf; } inline void clear() { first = buf; len = 0; } inline int size() const { return len; } inline bool isEmpty() const { return len == 0; } inline int read(char* target, int size) { int r = qMin(size, len); if (r == 1) { *target = *first; --len; ++first; } else { memcpy(target, first, r); len -= r; first += r; } return r; } inline char* reserve(size_t size) { if ((first - buf) + len + size > capacity) { size_t newCapacity = qMax(capacity, basicBlockSize); while (newCapacity < size) newCapacity *= 2; if (newCapacity > capacity) { // allocate more space char* newBuf = new char[newCapacity]; memmove(newBuf, first, len); delete [] buf; buf = newBuf; capacity = newCapacity; } else { // shift any existing data to make space memmove(buf, first, len); } first = buf; } char* writePtr = first + len; len += (int)size; return writePtr; } inline void chop(int size) { if (size >= len) { clear(); } else { len -= size; } } inline void squeeze() { if (first != buf) { memmove(buf, first, len); first = buf; } size_t newCapacity = basicBlockSize; while (newCapacity < size_t(len)) newCapacity *= 2; if (newCapacity < capacity) { char * tmp = static_cast(realloc(buf, newCapacity)); if (tmp) { buf = tmp; capacity = newCapacity; } } } inline QByteArray readAll() { char* f = first; int l = len; clear(); return QByteArray(f, l); } private: int len; char* first; char* buf; size_t capacity; size_t basicBlockSize; }; class QextWinEventNotifier; class QWinEventNotifier; class QReadWriteLock; class QSocketNotifier; class QextSerialPortPrivate { Q_DECLARE_PUBLIC(QextSerialPort) public: QextSerialPortPrivate(QextSerialPort * q); ~QextSerialPortPrivate(); enum DirtyFlagEnum { DFE_BaudRate = 0x0001, DFE_Parity = 0x0002, DFE_StopBits = 0x0004, DFE_DataBits = 0x0008, DFE_Flow = 0x0010, DFE_TimeOut = 0x0100, DFE_ALL = 0x0fff, DFE_Settings_Mask = 0x00ff //without TimeOut }; mutable QReadWriteLock lock; QString port; PortSettings Settings; QextReadBuffer readBuffer; int settingsDirtyFlags; ulong lastErr; QextSerialPort::QueryMode _queryMode; // platform specific members #ifdef Q_OS_UNIX int fd; QSocketNotifier *readNotifier; struct termios Posix_CommConfig; struct termios old_termios; #elif (defined Q_OS_WIN) HANDLE Win_Handle; OVERLAPPED overlap; COMMCONFIG Win_CommConfig; COMMTIMEOUTS Win_CommTimeouts; # ifndef QESP_NO_QT4_PRIVATE QWinEventNotifier *winEventNotifier; # else QextWinEventNotifier *winEventNotifier; # endif DWORD eventMask; QList pendingWrites; QReadWriteLock* bytesToWriteLock; qint64 _bytesToWrite; #endif /*fill PortSettings*/ void setBaudRate(BaudRateType baudRate, bool update=true); void setDataBits(DataBitsType dataBits, bool update=true); void setParity(ParityType parity, bool update=true); void setStopBits(StopBitsType stopbits, bool update=true); void setFlowControl(FlowType flow, bool update=true); void setTimeout(long millisec, bool update=true); void setPortSettings(const PortSettings& settings, bool update=true); void platformSpecificDestruct(); void platformSpecificInit(); void translateError(ulong error); void updatePortSettings(); qint64 readData_sys(char * data, qint64 maxSize); qint64 writeData_sys(const char * data, qint64 maxSize); void setDtr_sys(bool set=true); void setRts_sys(bool set=true); bool open_sys(QIODevice::OpenMode mode); bool close_sys(); bool flush_sys(); ulong lineStatus_sys(); qint64 bytesAvailable_sys() const; #ifdef Q_OS_WIN void _q_onWinEvent(HANDLE h); #endif void _q_canRead(); QextSerialPort * q_ptr; }; #endif //_QEXTSERIALPORT_P_H_ dlt-viewer-2.18.0+dfsg/qextserialport/src/qextserialenumerator.h0000664000175000017500000000475413001357026024543 0ustar potyrapotyra/**************************************************************************** ** Copyright (c) 2000-2003 Wayne Roth ** Copyright (c) 2004-2007 Stefan Sander ** Copyright (c) 2007 Michal Policht ** Copyright (c) 2008 Brandon Fosdick ** Copyright (c) 2009-2010 Liam Staskawicz ** Copyright (c) 2011 Debao Zhang ** All right reserved. ** Web: http://code.google.com/p/qextserialport/ ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the ** "Software"), to deal in the Software without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Software, and to ** permit persons to whom the Software is furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ** ****************************************************************************/ #ifndef _QEXTSERIALENUMERATOR_H_ #define _QEXTSERIALENUMERATOR_H_ #include #include #include "qextserialport_global.h" struct QextPortInfo { QString portName; ///< Port name. QString physName; ///< Physical name. QString friendName; ///< Friendly name. QString enumName; ///< Enumerator name. int vendorID; ///< Vendor ID. int productID; ///< Product ID }; class QextSerialEnumeratorPrivate; class QEXTSERIALPORT_EXPORT QextSerialEnumerator : public QObject { Q_OBJECT Q_DECLARE_PRIVATE(QextSerialEnumerator) public: QextSerialEnumerator(QObject * parent=0); ~QextSerialEnumerator(); static QList getPorts(); void setUpNotifications(); Q_SIGNALS: void deviceDiscovered(const QextPortInfo & info); void deviceRemoved(const QextPortInfo & info); private: Q_DISABLE_COPY(QextSerialEnumerator) QextSerialEnumeratorPrivate *d_ptr; }; #endif /*_QEXTSERIALENUMERATOR_H_*/ dlt-viewer-2.18.0+dfsg/qextserialport/CMakeLists.txt0000664000175000017500000000321213001357026022044 0ustar potyrapotyra# Copyright (C) 2016, Jack S. Smith # # This file is part of GENIVI DLT-Viewer project. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # # For further information see http://www.genivi.org/. # # List of changes: # 01.Oct.2016, Jack Smith , Original Author # set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) list(APPEND QEXT_SERIALPORT_SOURCES src/qextserialport.cpp src/qextserialenumerator.cpp) # Process conditional here # I suspect there's a better way to do this. if(${CMAKE_SYSTEM_NAME} STREQUAL Linux) list(APPEND QEXT_SERIALPORT_SOURCES src/qextserialport_unix.cpp src/qextserialenumerator_unix.cpp) elseif(${CMAKE_SYSTEM_NAME} STREQUAL Darwin) # OSX list(APPEND QEXT_SERIALPORT_SOURCES src/qextserialenumerator_osx.cpp) elseif(${CMAKE_SYSTEM_NAME} STREQUAL Windows) list(APPEND QEXT_SERIALPORT_SOURCES src/qextserialport_win.cpp src/qextserialenumerator_win.cpp) endif() add_library (qextserialport ${QEXT_SERIALPORT_SOURCES}) # Make sure the compiler can find include files for our qextserialport library # when other libraries or executables link to qextserialport target_include_directories (qextserialport PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) # Refactoring GUI components out of this is a good idea #qt5_use_modules(qextserialport Core) qt5_use_modules(qextserialport Widgets) install(TARGETS qextserialport DESTINATION deploy) dlt-viewer-2.18.0+dfsg/qextserialport/doc/0000775000175000017500000000000013001357026020053 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/qextserialport/doc/index.qdoc0000664000175000017500000000730513001357026022037 0ustar potyrapotyra/*! \page index.html \title QextSerialPort Manual \section1 Description QextSerialPort provides an interface to old fashioned serial ports for Qt-based applications. It currently supports Mac OS X, Windows, Linux, FreeBSD. From QextSerialPort 1.2-beta on, license of the project has been changed to MIT. \list \o Revision 0.9.x is Qt 2 & 3 compatible. \o Revision 1.x.x is Qt 4 compatible. \endlist \section1 Classes \list \o \l QextSerialPort encapsulates a serial port on both POSIX and Windows systems. \o \l QextSerialEnumerator enumerates ports currently available in the system. \endlist \section1 Usage The package contains a qextserialport.pri file that allows you to integrate the component into programs that use qmake for the build step. All you need is adding following line to your qmake project file: \code include(pathToPri/qextserialport.pri) \endcode \section2 Using QexSerialPort library Although QextSerialPort can be directly compiled into your application, You may prefer to use QextSerailPort as an library, which is very easy too. 1. Write a config.pri file.(read config_example.pri for reference): \list \o shared library \o static library \endlist 2. Changed to subdirectory 'buildlib', run \code qmake make \endcode shared or static library will be generated. 3. Add following line to your qmake project file: \code include(pathToPri/qextserialport.pri) \endcode \section2 Build documents Run qdoc3 from the doc directory. \code qdoc3 qextserialport.qdocconf \endcode Note: qdoc3 has been renamed to qdoc under Qt5. \section1 Examples \list \o \l examples/enumerator \o \l examples/qespta \o \l examples/uartassistant \endlist \section1 Resources \section2 Nokia(Trolltech) \list \o \l {http://doc.trolltech.com/qq/qq12-iodevice.html} {Writing a Custom I/O Device} \o \l {http://doc.trolltech.com/3.3/qiodevice.html} {Qt 3.3: QIODevice Class Reference} \o \l {http://doc.trolltech.com/4.7/qiodevice.html} {Qt 4.7: QIODevice Class Reference} \endlist \section2 MSDN \list \o \l {http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/communications_resources.asp} {Communications Resources} \o \l {http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/about_communications_resources.asp} {About Communications Resources} \o \l {http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/using_communications_resources.asp}{Using Communications Resources} \o \l {http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/communications_functions.asp} {Communications Functions} \o \l {http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/communications_structures.asp} {Communications Structures} \endlist \section2 TLDP \list \o \l {http://www.tldp.org/HOWTO/Serial-HOWTO.html}{Serial HOWTO} \o \l {http://www.tldp.org/HOWTO/Serial-Programming-HOWTO/}{Serial Programming HOWTO} \endlist \section2 Other \list \o \l {http://www.easysw.com/~mike/serial/serial.html} {Serial Programming Guide for POSIX Operating Systems} \endlist */ /*! \page classes.html \generatelist annotatedclasses */ /*! \page functions.html \generatelist functionindex */ /*! \page all-examples.html */ dlt-viewer-2.18.0+dfsg/qextserialport/doc/style/0000775000175000017500000000000013001357026021213 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/qextserialport/doc/style/style.css0000664000175000017500000000436013001357026023070 0ustar potyrapotyraa:link, a:visited { color: #00732F; text-decoration: none; font-weight: bold; } body { font: normal 400 14px/1.2 Arial; margin-top: 85px; } h1 { margin: 0; } h2 { font: 500 20px/1.2 Arial; } h3.fn, span.fn { -moz-border-radius: 7px 7px 7px 7px; -webkit-border-radius: 7px 7px 7px 7px; border-radius: 7px 7px 7px 7px; background-color: #F6F6F6; border-width: 1px; border-style: solid; border-color: #E6E6E6; word-spacing: 3px; padding: 3px 5px; } table, pre { -moz-border-radius: 7px 7px 7px 7px; -webkit-border-radius: 7px 7px 7px 7px; border-radius: 7px 7px 7px 7px; background-color: #F6F6F6; border: 1px solid #E6E6E6; border-collapse: separate; font-size: 12px; line-height: 1.2; margin-bottom: 25px; margin-left: 15px; } table td { padding: 3px 15px 3px 20px; } table tr.even { background-color: white; color: #66666E; } table tr.odd { background-color: #F6F6F6; color: #66666E; } li { margin-bottom: 10px; padding-left: 12px; } .cpp { display: block; margin: 10; overflow: hidden; overflow-x: hidden; overflow-y: hidden; padding: 20px 0 20px 0; } .footer { margin-top: 50px; } .memItemLeft { padding-right: 3px; } .memItemRight { padding: 3px 15px 3px 0; } .qml { display: block; margin: 10; overflow: hidden; overflow-x: hidden; overflow-y: hidden; padding: 20px 0 20px 0; } .qmldefault { padding-left: 5px; float: right; color: red; } .qmlreadonly { padding-left: 5px; float: right; color: #254117; } .rightAlign { padding: 3px 5px 3px 10px; text-align: right; } .title { background-color: white; color: #44A51C; font-family: Verdana; font-size: 35px; font-weight: normal; left: 0; padding-bottom: 5px; padding-left: 16px; padding-top: 20px; position: absolute; right: 0; top: 0; } .toc { float: right; -moz-border-radius: 7px 7px 7px 7px; -webkit-border-radius: 7px 7px 7px 7px; border-radius: 7px 7px 7px 7px; background-color: #F6F6F6; border: 1px solid #DDD; margin: 0 20px 10px 10px; padding: 20px 15px 20px 20px; height: auto; width: 200px; } dlt-viewer-2.18.0+dfsg/qextserialport/doc/doc.pri0000664000175000017500000000050013001357026021327 0ustar potyrapotyraOTHER_FILES += $$PWD/qextserialport.qdocconf #name of qdoc3 has been changed to qdoc under Qt5 QESP_QDOC = qdoc lessThan(QT_MAJOR_VERSION, 5):QESP_QDOC = qdoc3 docs_target.target = docs docs_target.commands = $$QESP_QDOC $$PWD/qextserialport.qdocconf QMAKE_EXTRA_TARGETS = docs_target QMAKE_CLEAN += "-r $$PWD/html" dlt-viewer-2.18.0+dfsg/qextserialport/doc/readme.txt0000664000175000017500000000155613001357026022060 0ustar potyrapotyraNote: If you are using qextserialport-XXX.tar.gz, the qesp.qch and html files have been provided. Open the file "html/index.html" using your web browser. Or integrated the "html/qesp.qch" into your QtCreator. == How to generate help files? == Simply run following commands at toplevel directory. qmake make docs Or run the following command at this directory qdoc3 qextserialport.qdocconf Then a folder called "html" will be generated. Open the file "html/index.html" using your web browser. == How to integrated into Qt Creator or Qt Assistant? == Once the html files are generated. run following commands cd doc/html qhelpgenerator qesp.qhp A file called "qesp.qch" will be generated. For Qt Assistant: Edit ==> Preferences ==> Documentations ==> Add... For Qt Creator Tools ==> Options ==> Help ==> Documentations ==> Add... dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/0000775000175000017500000000000013001357026021017 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-uartassistant-main-cpp.html0000664000175000017500000000406213001357026030132 0ustar potyrapotyra qesp : main.cpp Example File (examples/uartassistant/main.cpp)
Home · All Classes · All Functions ·

main.cpp Example File

examples/uartassistant/main.cpp
    #include <QApplication>
    #include "dialog.h"

    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        Dialog w;
        w.show();

        return a.exec();
    }


Copyright © 2000-2012 QextSerialPort Project
QextSerialPort Manual
dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/index.html0000664000175000017500000001243313001357026023017 0ustar potyrapotyra qesp : QextSerialPort Manual
Home · All Classes · All Functions ·
  • QextSerialPort Manual
  • QextSerialPort Manual

    Description

    QextSerialPort provides an interface to old fashioned serial ports for Qt-based applications. It currently supports Mac OS X, Windows, Linux, FreeBSD.

    From QextSerialPort 1.2-beta on, license of the project has been changed to MIT.

    • Revision 0.9.x is Qt 2 & 3 compatible.
    • Revision 1.x.x is Qt 4 compatible.

    Classes

    Usage

    The package contains a qextserialport.pri file that allows you to integrate the component into programs that use qmake for the build step.

    All you need is adding following line to your qmake project file:

        include(pathToPri/qextserialport.pri)

    Using QexSerialPort library

    Although QextSerialPort can be directly compiled into your application, You may prefer to use QextSerailPort as an library, which is very easy too.

    1. Write a config.pri file.(read config_example.pri for reference):

    • shared library
    • static library

    2. Changed to subdirectory 'buildlib', run

        qmake
        make

    shared or static library will be generated.

    3. Add following line to your qmake project file:

        include(pathToPri/qextserialport.pri)

    Build documents

    Run qdoc3 from the doc directory.

          qdoc3 qextserialport.qdocconf

    Note: qdoc3 has been renamed to qdoc under Qt5.

    Examples

    Resources

    Nokia(Trolltech)

    MSDN

    TLDP

    Other


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-uartassistant-hled-cpp.html0000664000175000017500000006023213001357026030123 0ustar potyrapotyra qesp : hled.cpp Example File (examples/uartassistant/hled.cpp)
    Home · All Classes · All Functions ·

    hled.cpp Example File

    examples/uartassistant/hled.cpp
        #include <QtCore/QTimer>
    
        #include <QtGui/QColor>
        #include <QtGui/QImage>
        #include <QtGui/QPainter>
        #include <QtGui/QPixmap>
    
        #include "hled.h"
    
        class HLed::Private
        {
        public:
            Private()
                : darkerFactor(300), color(Qt::green),
                isOn(true), offPixmap(0), onPixmap(0)
            {
                offColor = color.darker(darkerFactor);
                timer = new QTimer;
                timer->setInterval(250);
            }
    
            ~Private()
            {
                delete offPixmap;
                delete onPixmap;
                delete timer;
            }
    
            int darkerFactor;
            QColor color;
            bool isOn;
    
            QColor offColor;
            QPixmap *offPixmap;
            QPixmap *onPixmap;
    
            HLed::State state;
            QTimer * timer;
        };
    
        HLed::HLed(QWidget *parent)
            :QWidget(parent), m_d(new Private)
        {
            setColor(Qt::red);
            setState(Blink);
            connect(m_d->timer, SIGNAL(timeout()), this, SLOT(blinkToggle()));
        }
    
        HLed::~HLed()
        {
            delete m_d;
        }
    
        QColor HLed::color() const
        {
            return m_d->color;
        }
    
        HLed::State HLed::state() const
        {
            return m_d->state;
        }
    
        int HLed::darkerFactor() const
        {
            return m_d->darkerFactor;
        }
    
        void HLed::setColor(const QColor &color)
        {
            if (m_d->color == color)
                return;
    
            if (m_d->onPixmap) {
                delete m_d->onPixmap;
                m_d->onPixmap = 0;
            }
    
            if (m_d->offPixmap) {
                delete m_d->offPixmap;
                m_d->offPixmap = 0;
            }
    
            m_d->color = color;
            m_d->offColor = color.darker(m_d->darkerFactor);
    
            update();
        }
    
        void HLed::setState(State state)
        {
            if (m_d->state == state)
                return;
    
            if (Blink == state) {
                m_d->timer->start();
            }
            else {
                m_d->timer->stop();
                m_d->isOn = (state==On) ? true : false;
            }
            m_d->state = state;
            update();
        }
    
        void HLed::setDarkerFactor(int darkerFactor)
        {
            if (m_d->darkerFactor == darkerFactor)
                return;
    
            m_d->darkerFactor = darkerFactor;
            m_d->offColor = m_d->color.darker(darkerFactor);
    
            update();
        }
    
        QSize HLed::sizeHint() const
        {
            return QSize(20, 20);
        }
    
        QSize HLed::minimumSizeHint() const
        {
            return QSize(16, 16);
        }
    
        void HLed::toggle()
        {
            if (m_d->state == Blink) {
                return;
            }
    
            setState(m_d->state == On ? Off : On);
            update();
        }
    
        void HLed::turnOn(bool on)
        {
            setState(on ? On : Off);
        }
    
        void HLed::turnOff(bool off)
        {
            turnOn(!off);
        }
    
        void HLed::blink()
        {
            setState(Blink);
        }
    
        void HLed::blinkToggle()
        {
            m_d->isOn = !m_d->isOn;
            update();
        }
    
        void HLed::paintEvent(QPaintEvent* /* event*/)
        {
            if (paintCachedPixmap())
            {
                return;
            }
    
            int width = ledWidth();
            const int scale = 3;
            QPixmap *tmpPixmap = 0;
    
            width *= scale;
            tmpPixmap = new QPixmap(width + scale*2, width + scale*2);
            tmpPixmap->fill(palette().color(backgroundRole()));
            tmpPixmap->fill(QColor(Qt::transparent));
    
            QPainter paint;
            paint.begin(tmpPixmap);
            paint.setRenderHint(QPainter::Antialiasing);
    
            QColor color = m_d->isOn ? m_d->color : m_d->offColor;
    
            QBrush brush;
            brush.setStyle(Qt::SolidPattern);
            brush.setColor(color);
    
            paint.setBrush(brush);
            // draw plain
            paint.drawEllipse(scale, scale, width-scale*2, width-scale*2);
    
            QPen pen;
            pen.setWidth(2 * scale);
    
            int pos = width / 5 + 1;
            int lightWidth = width * 2 / 3;
            int lightQuote = 130 * 2 / (lightWidth ? lightWidth : 1) + 100;
    
            // draw bright spot
            while (lightWidth) {
                color = color.lighter(lightQuote);
                pen.setColor(color);
                paint.setPen(pen);
                paint.drawEllipse(pos, pos, lightWidth, lightWidth);
                lightWidth--;
    
                if (!lightWidth) {
                    break;
                }
    
                paint.drawEllipse(pos, pos, lightWidth, lightWidth);
                lightWidth--;
    
                if (!lightWidth) {
                    break;
                }
    
                paint.drawEllipse(pos, pos, lightWidth, lightWidth);
                pos++;
                lightWidth--;
            }
    
            pen.setWidth(2*scale + 1);
            brush.setStyle(Qt::NoBrush);
            paint.setBrush(brush);
    
            int angle = -720;
            color = palette().color(QPalette::Light);
    
            for (int arc=120; arc<2880; arc+=240) {
                pen.setColor(color);
                paint.setPen(pen);
                int w = width - pen.width()/2 - scale + 1;
                paint.drawArc(pen.width()/2, pen.width()/2, w, w, angle+arc, 240);
                paint.drawArc(pen.width()/2, pen.width()/2, w, w, angle-arc, 240);
                color = color.darker(110);
            }
    
            paint.end();
    
            QPixmap *&dest = (m_d->isOn ? m_d->onPixmap : m_d->offPixmap);
            QImage i = tmpPixmap->toImage();
            width /= scale;
            i = i.scaled(width, width, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
            delete tmpPixmap;
    
            dest = new QPixmap(QPixmap::fromImage(i));
            paint.begin(this);
            paint.drawPixmap(0, 0, *dest);
            paint.end();
        }
    
        bool HLed::paintCachedPixmap()
        {
            if (m_d->isOn && m_d->onPixmap) {
                QPainter paint(this);
                paint.drawPixmap(0, 0, *m_d->onPixmap);
                return true;
            }
            if (!m_d->isOn && m_d->offPixmap) {
                QPainter paint(this);
                paint.drawPixmap(0, 0, *m_d->offPixmap);
                return true;
            }
            return false;
        }
    
        int HLed::ledWidth() const
        {
            int width = qMin(this->width(), this->height());
            width -= 2;
            return width > 0 ? width : 0;
        }


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-qespta-qespta-pro.html0000664000175000017500000000336213001357026027113 0ustar potyrapotyra qesp : qespta.pro Example File (examples/qespta/qespta.pro)
    Home · All Classes · All Functions ·

    qespta.pro Example File

    examples/qespta/qespta.pro
        TEMPLATE = app
        DEPENDPATH += .
        QT += core gui
        contains(QT_VERSION, ^5\\..*\\..*): QT += widgets
        HEADERS += MainWindow.h \
                        MessageWindow.h \
                QespTest.h
    
        SOURCES += main.cpp \
                        MainWindow.cpp \
                        MessageWindow.cpp \
                        QespTest.cpp
    
        include(../../src/qextserialport.pri)


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-qespta.html0000664000175000017500000000422313001357026025017 0ustar potyrapotyra qesp : qespta Demo
    Home · All Classes · All Functions ·
  • Examples
  • qespta Demo
  • qespta Demo


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/portsettings.html0000664000175000017500000000422113001357026024451 0ustar potyrapotyra qesp : PortSettings Class Reference
    Home · All Classes · All Functions ·
  • Modules
  • PortSettings
  • PortSettings Class Reference

    The PortSettings class contain port settings More...

        #include <PortSettings>

    Detailed Description

    The PortSettings class contain port settings

    Structure to contain port settings.

        BaudRateType BaudRate;
        DataBitsType DataBits;
        ParityType Parity;
        StopBitsType StopBits;
        FlowType FlowControl;
        long Timeout_Millisec;


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-qespta-qesptest-h.html0000664000175000017500000000703013001357026027111 0ustar potyrapotyra qesp : QespTest.h Example File (examples/qespta/QespTest.h)
    Home · All Classes · All Functions ·

    QespTest.h Example File

    examples/qespta/QespTest.h
        /* qesptest.h
        **************************************/
        #ifndef _QESPTEST_H_
        #define _QESPTEST_H_
    
        #include <QWidget>
    
        class QLineEdit;
        class QTextEdit;
        class QextSerialPort;
        class QSpinBox;
    
        class QespTest :  public QWidget
        {
          Q_OBJECT
        public:
          QespTest(QWidget *parent=0);
    
          virtual ~QespTest();
    
        private:
          QLineEdit *message;
          QSpinBox* delaySpinBox;
          QTextEdit *received_msg;
          QextSerialPort *port;
    
        private slots:
          void transmitMsg();
          void receiveMsg();
          void appendCR();
          void appendLF();
          void closePort();
          void openPort();
        };
    
        #endif


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/style/0000775000175000017500000000000013001357026022157 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/qextserialport/doc/html/style/style.css0000664000175000017500000000436013001357026024034 0ustar potyrapotyraa:link, a:visited { color: #00732F; text-decoration: none; font-weight: bold; } body { font: normal 400 14px/1.2 Arial; margin-top: 85px; } h1 { margin: 0; } h2 { font: 500 20px/1.2 Arial; } h3.fn, span.fn { -moz-border-radius: 7px 7px 7px 7px; -webkit-border-radius: 7px 7px 7px 7px; border-radius: 7px 7px 7px 7px; background-color: #F6F6F6; border-width: 1px; border-style: solid; border-color: #E6E6E6; word-spacing: 3px; padding: 3px 5px; } table, pre { -moz-border-radius: 7px 7px 7px 7px; -webkit-border-radius: 7px 7px 7px 7px; border-radius: 7px 7px 7px 7px; background-color: #F6F6F6; border: 1px solid #E6E6E6; border-collapse: separate; font-size: 12px; line-height: 1.2; margin-bottom: 25px; margin-left: 15px; } table td { padding: 3px 15px 3px 20px; } table tr.even { background-color: white; color: #66666E; } table tr.odd { background-color: #F6F6F6; color: #66666E; } li { margin-bottom: 10px; padding-left: 12px; } .cpp { display: block; margin: 10; overflow: hidden; overflow-x: hidden; overflow-y: hidden; padding: 20px 0 20px 0; } .footer { margin-top: 50px; } .memItemLeft { padding-right: 3px; } .memItemRight { padding: 3px 15px 3px 0; } .qml { display: block; margin: 10; overflow: hidden; overflow-x: hidden; overflow-y: hidden; padding: 20px 0 20px 0; } .qmldefault { padding-left: 5px; float: right; color: red; } .qmlreadonly { padding-left: 5px; float: right; color: #254117; } .rightAlign { padding: 3px 5px 3px 10px; text-align: right; } .title { background-color: white; color: #44A51C; font-family: Verdana; font-size: 35px; font-weight: normal; left: 0; padding-bottom: 5px; padding-left: 16px; padding-top: 20px; position: absolute; right: 0; top: 0; } .toc { float: right; -moz-border-radius: 7px 7px 7px 7px; -webkit-border-radius: 7px 7px 7px 7px; border-radius: 7px 7px 7px 7px; background-color: #F6F6F6; border: 1px solid #DDD; margin: 0 20px 10px 10px; padding: 20px 15px 20px 20px; height: auto; width: 200px; } dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-uartassistant-dialog-h.html0000664000175000017500000000766513001357026030126 0ustar potyrapotyra qesp : dialog.h Example File (examples/uartassistant/dialog.h)
    Home · All Classes · All Functions ·

    dialog.h Example File

    examples/uartassistant/dialog.h
        #ifndef DIALOG_H
        #define DIALOG_H
    
        #include <QDialog>
    
        namespace Ui {
            class Dialog;
        }
        class QTimer;
        class QextSerialPort;
    
        class Dialog : public QDialog
        {
            Q_OBJECT
    
        public:
            explicit Dialog(QWidget *parent = 0);
            ~Dialog();
    
        protected:
            void changeEvent(QEvent *e);
    
        private Q_SLOTS:
            void onPortNameChanged(const QString &name);
            void onBaudRateChanged(int idx);
            void onParityChanged(int idx);
            void onDataBitsChanged(int idx);
            void onStopBitsChanged(int idx);
            void onQueryModeChanged(int idx);
            void onTimeoutChanged(int val);
            void onOpenCloseButtonClicked();
            void onSendButtonClicked();
            void onReadyRead();
    
        private:
            Ui::Dialog *ui;
            QTimer *timer;
            QextSerialPort *port;
        };
    
        #endif // DIALOG_H


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/qextportinfo.html0000664000175000017500000000544713001357026024461 0ustar potyrapotyra qesp : QextPortInfo Class Reference
    Home · All Classes · All Functions ·
  • Modules
  • QextPortInfo
  • QextPortInfo Class Reference

    The QextPortInfo class containing port information. More...

        #include <QextPortInfo>

    Detailed Description

    The QextPortInfo class containing port information.

    Structure containing port information.

        QString portName;   ///< Port name.
        QString physName;   ///< Physical name.
        QString friendName; ///< Friendly name.
        QString enumName;   ///< Enumerator name.
        int vendorID;       ///< Vendor ID.
        int productID;      ///< Product ID


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/qextportinfo-members.html0000664000175000017500000000412013001357026026074 0ustar potyrapotyra qesp : List of All Members for QextPortInfo
    Home · All Classes · All Functions ·
  • Modules
  • QextPortInfo
  • List of All Members for QextPortInfo

    This is the complete list of members for QextPortInfo, including inherited members.


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-enumerator-enumerator-pro.html0000664000175000017500000000303213001357026030655 0ustar potyrapotyra qesp : enumerator.pro Example File (examples/enumerator/enumerator.pro)
    Home · All Classes · All Functions ·

    enumerator.pro Example File

    examples/enumerator/enumerator.pro
        TEMPLATE = app
        DEPENDPATH += .
        CONFIG += console
        include(../../src/qextserialport.pri)
        SOURCES += main.cpp


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/images/0000775000175000017500000000000013001357026022264 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/qextserialport/doc/html/images/uartassistant.png0000664000175000017500000005042113001357026025701 0ustar potyrapotyra‰PNG  IHDRh¶DQíÜsRGB®ÎégAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<PIDATx^í |ÕÙÿ(K}«o+-©ŠuA­uÃZ­ î * ¨QQA@Ù" ,îÛ«–ÚV[kÕúÚ¾í‹mß÷­UÀ°…€ˆˆ`BÈz³$wIrïÍý?çN˜ 3÷Þ™¹ëÌœŸç&sÏœ9ç{î™oΙm@ dÿL(0`­x‡²Õƒô}8d[:HøÖ Áç§Ÿ ø‚¯W8P(½ÇrñÑ/øz°oþ€6=ÚiòC -ûCÒ-þFߥ!BO”VÏ@aÈ·Ø:ÁÇÂTÞ`Òâ·‚‰¿%xBwsàË×¥¬¾|êÄ)þ0¡ˆbÈ\çÐ%þáÏ~ø‹³—Îûm`Ì[1ï®~‡ÅØ÷Y\ÿAØ @@“@„o>9Íï€@H7ÑJQ[ÒOQdê`š;>HdÃ! |Âõ%˜[i[—*Ysà´²æÀíC—õRRÉgþ:@AúüÉïûƒ<*†|%–A@@ UÈSbˆ—Eÿ‰ƒ@QgRÐJù¯âpQ уCŸðSt ×”ô‹S¸1W˜\'ܳoÀìƒÂÜÃbD-r z¢‡T*,õZ —é§´R\WYÜKV1%@âB`À‚^h /¥m%ZIŒé=gwšç4»}À —ðH‡ð`ðçCôkßšm‚b?éÓ´Váƒ,h ŽõÂÍ¥ÂØª¾'çùƒúcz“0«E”(éS &Ñ0Á>¥2I1»Ê‡TxôÐ Š™Ìl¥YU áÁ&ዴƾ #ŠqO-‹É5&V wP” ã¾aA dÍ+ó„S> ÎÕ^¶}Lâ¼g__ˆ ºSÒgß0t~‡ ű)}Ä+×µèghhF€€@ü!:RåÅcj<&HR£¢)I“tjsìî¾ k’.)~°"(NŠséÊ pâ§p峸¢,Ù˜Îl¦·° ƒ XbÑçˆÀàçüñ`ãa¯t«Î…9ï|_p9¹nðÝ5sÞijý_]¿_ÝýÞšîåÿ×õÔu-ú kÞœMCLñ„%erè·Oùûïþï{mZ~ð·Oµ¾±¨õÕy-¯ÌiyqVós4?7½ù©©MKîs,šÜ8ïö†×פ]VtÛÙî¼´±µ§oÄyaNq²Y]:Íùàž-ûÁ+Ußy¾òÛÏU{®òĪNz±êä—*Oxnß°g÷ Kʇ<³OXZ.¼Ð$Ì)1=‹¡è$ßc+r³1ˆ“Wä¼Ù¿÷|°®ûO™=¿þW÷ó+º–ü©káûäήÙo3wÎü­gÚo¨ï=ž'<^,,*ZR2x1- ÙÏ' oø QH/¼åonúÅô«pWÞqç5u1‘ @@´·ø¥›”ùەݯü½kñ‡]éïvýauwm‹_:ÙYÓìõ]4yKÃÍ«—8/_ÐqÁÌúSÆofΛX/гyÙ¤Ì#ýöðû¯üÍâÖ×Ó[^z¬ùÙéMK§6=q¯cá”Æyw6λƒMÞθ¾þá«kdŸ^q Ë䊢8égßTíñâ,8P•UR‘Uº/«dûÉ¢‚­¡_K*6–gW¬+,ÿWIý•¿Ý#LÊ8û/kÖú %€€€~ä­»_s?÷ß]/~Ĭ9÷®ß}ÚÝéî¥õåuþÂ*ß¡v¶|ÄÙ»ìOžË8Ç<î¼t~û…³NŸð¹\œMOÜ}èç½û"YÓ³û+ú¨iÉÔ¦…÷4ΛØðØm ÜXÿÐÕõSNë;7¯¬KsàžKK']¸òêÓÈ󇟳Aè54â¬bsÊiA÷èˆÀ¬¿×…§ô‡€~:†R*®ª2´­"±˜•žä;•Ò«¯ïÒ“UìiâH ö H8)‚Kt¬£ ‚è¼æ“Á±æ¬·ºJ°±æšÞqϸoXâºãwÎ7>Z³c¯ïÂù®‹æ».žßqᣠqÒAßXtð7OÒXS:~­9®á‘Èšu÷].­¯»û¢w_\:1”8û."qÒ ô†à½,4OÛ'Îî@€B¡Oi •›I~öß œ’+Lmî‹à%µâ¾O8åuýN ×ëBæ å/í‚bé·´¹ÎBîQ]ž¨ cˆX9G]`l  %@ºÛžsÑM²æì·»¦ÿÚã8ÜÛx¨÷Áåž›Ÿr]ìºb‘sÁ]”¬°ÚÞ×ó\Îï¸`VÃi¶°Aѱ©ÚÆÙ·ÑM6Cûòìæg¦KŽl˜ysô±õ\ÑoÍIçÕM¾ fÊ…¥/XyÕi,“Ÿ—3Kþ¸H6U+'ýEÓ/Nr8Ýõaè˜÷×ÊASòM£g´ˆî”[äXVºÆs!ÑK¹É?U¬Ô¯½¸´®ºHò5! ¬¿†6WïWÿŽ@,A@'Ý‹2ë·]3Þô<ô†çÞ×<“^t{Ö}ã2×Õ‹]—/r.ÿ˜u¼JÿYs\£çº~<¯ãÇ6œzgPœwöã$q6??£™®¡¥ŸËjZt¯dJ:£Ùo͉çÔÝyVÝÄÑ5“¼gÂW]ujŸ8VFœt¿ ûä'.ÕƒÎã<šþ_ßç!ö@?™8ÙSþÒZe÷þ_«”k¤¢KJkXуʳ•¯‘¯—ç!«p™+6QìEQ#E5ë®<òÂ(ʯ®¦š­æ~#çE¸½c=€$®]⤋féÒÙi¿öLý¥çžWÝ“^v{Þuã³®«—¹þ¸¡§#xÊóÝ ÞÍwŸ5Ï5z~ÇèYŽ‘w~ÁÄA#Ήõ´P?íZºh–]:ûô4:»éxâžÆÇ')Œ SÎk¸ëìú ?ªŸxVí]£Ëî½úÊ‘ýâô vq]&DãÐÛØ)„à3mƒyi(3¨Uïã.4y78ƒƒNæÎþ#xðÙ¸ò_¥åþYÜãÓÈжòyѾa¥ø¼]ÙV¬JǯSö¹G•Xü”MÌ?:nêUG>ê Jk¤òW_ù&òòD®¯TMu} q>ΑÇóWsSï4Îkd %¡b –#@‡¬+9§¼ê¾9³&ý¼ûUö„q/¸'½æÉÝÇÎnÒ¿_z/Xâõ¸ûŒt÷™égÎrŒ¸=(Î)ImLœS¯lZ8¥yÉýÍtíâû‹îfA˜;N:$6Þaã=ç6N>«qâ¨Æ‰gÔM:sïíg®þÙ– =Øýê AtÒUµÃß<^œÁÇÀëç‹NÎ4£ž1Ïâ6™)Û¿ª=Aõ'£ǬÃVªsWJ!;З‰ÜaŠ|¤=J™( ,®—rVaÌ‚¡ë®¨¯¢²šõUT_^õ²œ¶¸ßpüÃ壨~ä Ôe;ï|Éuïëîû~áI{ÝCÙNü÷ø—ÜŸ3kV7ûù ëÜ¥ž3{N{Â}ÚB÷iéÎÓf:N¿õ˜8Ù®îÞËçßÙôä½M‹ïk~2.²u,˜¨8*6¥Ût÷™ŽI§9&žV?á´½·öÙOOf™\S'\SÃÄyö^6âdâ<ƒb[ÅFœt+E¿8éì&•)òµµÞÅÜ=ÎqÎt³×²Ð[Zt©Î¢I«ÒZŒ¸^úHJÙ§aÙ&ÒÅBÿA_GþÒîä™ÈsPïWý©ž5òJ)ê®þH³0†êshq9$pÀzHz"‚KtPúÉ'Ý£9é7)óž×ÝSHœ¯zÆ¿â>¼•ó¶7<=ï9÷Ï™Ë<§.öœ²ÈsJºsÄ#Mÿ>îKæ¼´vaÊQZ¨½ë't¦ãñI¤Ì¦'îq,š"›f—{]íÍ÷žÙ<ùÔ¦‰§4ÜqÊ77X3æßY&76 7Ô2w^\ÅÄùƒ?ÅI¿3q¶²éÖGDÃiZ“œê[ú^ÎÀ{ Iœbˆ/6“¾rSÊ×KË!Ó‹+©WªH»S䝨µ<«É‹-Ï3\‘Ôi"—-ByÂe¥(s,œåú$©‡lq}Büc  áÐ!kô¬Î±Kã_pMú÷d:ÁùªûÎÿp{Å]Rã?ÜÙ{Å+ž‹^ôœû\מñŒ\êñ„gø|çw§5ŸpËÖ>q¦µÓBÍ£ë§mœ;Þ±`’cáä~kλ©iöµÍ³ú¯ªm™<²yˆ†qÃ˯ÿnÆE'ô‰“ÜIãÎ~qÒØ“‰³•ÍÓ«;ûÄ)fËNdʵÇ/û—~°kà}ô‚Pбf°PÅ•êõŠQi+)½|“™Ð&}žaòWì”!Uqב?RsPd./v¸úF(bun!±È5o”³TeE{±Qò1JX £Ó¨itÏ =Øýö\ôP½;^öŒÙ}ë+îÿÃ}Í+8_òŒ~¾kÔ3]ÿoi×÷zNœãü·©MCn Ž8i˜žæ¤…·Žª{àŠ†Y75ν]:â9æÝÚ4÷ƦǮižõ³ÖéIë[îøžã–¿¹æß2~2„e2îS¤èNöZ1qŠâ¼“ÞÆÄIãŒ7¼sò5¿9ùêß°Ÿ×Êã×'_{\ ¿òÙ” Lï¥÷kS³ý¢AåR×H륩ZõÅGŠ!3aãˆù‹…‘G¸|äY)6?Ò\)/I¸úF(O¸úª³ÕŸ‰T)uáÅ5Êr¿X É' Ìð!ø$@Þ:ejçÅóœW/vÞôŒë¶ç]·>ï¾ù÷/ºóªØTíe/y.x±ëœç»N¦ëK»NZÐõíGƒïkx}pÄùp·0•Ýå¹ÿ†Sj§\Lwž;]ÛÖÓÇ웳ot<6¶iÖÏ›g\Öòð­SÏ¡õžµŒ?©ñ†osÅàÏÎØ'Nr'‰óç­ìÁ{Ǧjë„;é*Ó6Qœg4£iУÍCk2·uÈüƒ,æ6™ï`1·qð‡ƒõZ° —‚ ªé`­þk@@@'ñr‡È[ß¿¯sô,ö,½«;Ç.s]æ¾æ)×UO»\]ì.” ŸõŒ~ÆsÆÓž‘K<ß[Ôõoó<ƒg8Þã06xU-ýÉõ0›­¾öû4[[{ï˜ú‡®j˜>¶á‘± Ó¯iœ~Uãô+Ó.kzèÂæûG·Ü{ÍÓÒp³ù–k;xïO®>wËdBgß “ÄIO¨eâüa!~ÅIÖ¤S•4ï:h^ϠǽCžèú„Èâ^Š¡KüC—õÊC\?hI /È bèì H  ·Nš|ø´‡ŽœÿèÑKæýéãí—/h³ cÌÂŽ‹Ÿè¸àÉŽÑOvžñDçÈ…ÎáéNš¤:£sàƒG…‰uÂÕÁ·£ç*h¡üÊ“*o>­zÂùûï¾ä@ÚOk&mLÍ}cjﻸ.킆{F7L>£qÂÈÆñÃo>±áº¡5?X|‰ð¯³…>qŠî$qöMÕ/NÑLœóz†,ð‘8Y5Uâ$‰Fp§$Q,€@88^€€@dmþó§~×SÓœù`Ýè‡kÏVsÎõgO¯;szݨéu§>Ò8bzãðiŽ“jüöŽoÝë0©N¸µôŒI™óh¢b†¯ñ°?ÿöówÿ|øîëN-¼åÌÂq£ Ç[xÛ9EãÎ.¾íÌ’[G•ÝzjÙM#öÞ0¼lìI{¯úvÙϾU|逯.>¹ö –Égß S'»E&Nº¸\tŠãÎ!éÝJ}.郆³&¾   sÿê.Ú×~þ}ÛO¼~Ã÷nÙrò­›¿kÖÉ·d ¿õóá·mùî­_œxë—'ܺmØ-Ûéj A×9àúíÂ5_œ1)«°üðœ?»DqÎùÐÕ¶·hý-çÿïONüôÒï}2æä/ûþÇ—žüéeÃW^6|Õ˜ïf\zâš‹OXwѰŒ †dœ?hÝyV#|zí­{ ç¼K7´„']<Ç|ˆý¤g°`COgŸ>É A‰ŠA¹ê1‰£Uhàð„ ª  `ˆÀà9^òŸú¦†Èkhˆ9çÃÎÁ3=ìzà‡»O÷Ìùc§áLùÈšƒïê8î§lÄ'=ÓÞŽ|Éø$a»\hÐìö¾`•‚]F«é’Ú^»Œ][Š.•úni³Ô×eN:º†6x5]IËn ¥{Qîw xXÐBš“ÅŸâ‚SŽ ŽÐ£ú>¥3šâIME?U[¼#¥F»[¸¹pÀ-Eoe!ÜQ.Æ€‰Ub“k˜_éqðbÐû;¥eq!øD]€Ä“Àmt¯9´Åèu(!¿*7W±·gRГòĸn_߯âz q ý¤'ÓRÐSÜÅGÔÒý$K†çÍ…LœAwJú%ª1 )½lÃþO¥dXú²!@@¾ãŒxA€@xz¾NQ¦¹×wUíÈ¡—ï‘Þ6,­úPK9@@@@A@ß.\³O8ócaø[‚qâψHâÄÀ@@ €8 ÀÂ|€€@œ'€€ q€…¿³@@@â„8A@@ÀˆÓ,ü  'Ä   @œ`áï,€8!N0@ zq¾ò—,€ð@À®c,Ú.Š:j6wLâ4úJ3¤Ë #¯æ‘Ô¢ ¨j–kŽDXOs+ÅùmÝyñD·ò0=GRˆÓ -® Ž6_q?·¼ûëRÏÖ¢®-žM»óÜ™¹®õ9žµ;]«³UŽnÊAOs3qÒËÈN_Ñ÷wˆÓÌͲ$Ÿ€ž#)Ä™üvÑ¿G²fmkï>GïžZfТj_A¥Ÿ"·ÂŸSîÍÞëûªÔ÷yAOÖ®NˆS?U¤° N«9h¬IÖ,¯÷ïïóå®rEv™/»”Yó‹"&NƒBœVok”@À NS4C … Zq¬™_É|I‘Sæ¥ _n.ð‹Aâü|7Fœ1PƦ  )NAöÏ¢ó´TlÅ¥*òJ‰Õ—ÖȕևL£Þ*åß%:¯É¦g«ƒs³{½R/7åû²ò½ô“âLyK¡ 6!nÄIR•)-è4¨Ñô:³"™\œT*©ÁÄåk¤"¤Qä“òï\œg.Wˆ“Ö@œ)o#@ÀV’ ÎT©4œ8¥¡¤Z¥V']FK“´äH1ÄéYkJkh#N[õ[T@ …"ˆSœÉ”õäk¤eõÊT™R1*]œ—òk ›vM·ÐyÍÜrº#Å/™r[i¿53Å [\”ÚvÂÞAlC@sÄ)ÙH=y«6kS»QÌÁêÜ$ qJS¸ê‰\y‹›ÇšT*ºYSšž•ûR”è†/‹|oV.²M¯EE@RJ Fqªf’á¦ââ µêÂõTœÝŒ¼aJ›®oçërÜìÎYHãÎ-¥Akx×ç÷¬Ç}œfh-”@À8gä 䟚ߚô ÌØé¦›5éAbl/óUÆÎwnÚã[Sè##¯gmŽ‹ë¹ûO²A¿F@H òí(Š¥ÎÓ™Š)ÜTAÃÝŽ"?s)U\£V¦ø©ôOL£X“À¶Ñ—uHq’;!N}ü @ Ð3ÑyNÑlÉ8yäøÊínzÖ :Y”õ‰3³Ô·¶Ø·:ß»:¯gMN´O6¦bDzÛ°´jÍ愸Á.†ä v#qZ½EIœt§&¹s[ {ZÚ¤ kn(fó´$Ε»º3vD{qÄiõ¯Ê _g|y&?·O¶93óº³ ¼ì¹zÁÈ*ôRЕ´kòÙÙM²æªÏgÙT6=Í­<Ç q&¿Q±G3Ðs$Õœ¢3gN&+ë»2w´oÜÕAï?ƒ–)èj š¡¥±&Y³¢Þ qš¹'¢l –!qZ¦©âQP=Íg•wëŽoÆV §¯†¿%# qq}»?j  ˆâ„8£é9Ø@€['Ä qrÛýQqh@œ'ÄMÏÁ6 Ü€8!Nˆ“ÛDCÀÆâĽ(! hþ¡€«j£éHØ@€ö'?í¨³¦zš[)ΡcÊñw|‘ @€zޤšcs&àä‘{Ž6_q?·¼ûëRÏÖ¢®-žM»óÜ™¹®õ9žµ;]«³UŽnú>ëiî>qŽ:v; ÄÉÃuÐO@ϑԜ^Ô,'â$kÖ¶öîsôî©e-ªöTú)r+ü9å^zµ5½nŒ=ù}—Á·£@œú{R‚pEâ´zsÓX“¬Y^ï+ÞßçË]å>Šì2_vð%ô¢1'A1â´z[£ü ¦ qš¢b(ÍЊcÍüJæKŠœ2/ùrs_ öº±ÝqÆ@›‚€€D ¤8Ù?ÍQuqkZc>QìZ¾‰|ªV*‰TñèÖ˜ð›Cç5Ùôlupnv¯W ò%½à:+ßK?) N¶Š `IáFœ¢ùDùE!0õæ‘ó‰n/‘ &‰“2—û’–¥5êéSõVæl`¹8'Î\®'­8ÍÙp(€€U XHœFåªGœ ¡Š¿ŠÊ´Š8é2Z𤥠GŠ!NÏÒXSZCËqZµ‹¢Ü f#AœÒŒ«4°“¯QÌÇ*ÒÈGœ‘ó‘ÏèÊGê­Œ|#‹S1UaTª¨ÙZn;¡óš¹åtGŠ_2å¶Ò~kfж¸8Èl-‡ò€X”€þg„ÙWÍäƒÅ“ÀŠÑdŒÅ¢bCžã 7š´®8éfMizVîKQ¢ ¼,ò½Yy¸8È¢}Å0ýâT 5})?Eªp§b@©§4"4:Д҇¼Ó~â\—ãfwžÈBwn) Z³À»>¿g=îã4Y×Cq@¬J@¿8£Ó¤ž­Ô— =R®Šgäó—ÖqfìtÓÍšô 1¶—ù¿*cç;7íñ­)ôŠ‘‘׳6ÇEôÜ}„'Yµ3£Ü É!`èvi¨>…r|Ô¨>?ªt•jŽD9¹%¤8Égrzö À=CME™3'Ü[¹ÝMÏ: A'‹²þ qf–úÖûVç{Wçõ¬ÉÁ“ƒ¸ëݨ0€@B@œ ÁšÄLIœt§&¹s[ {ZÚ¤ kn(fó´$Ε»º3vàâ $¶ v `c§Õ÷“mÎ̼î¬/{®^0² ½t%íš|vv“¬¹*ÇóYvÎqZ½­Q~S€8MÑ 1¢²¾+sGûÆ]ôþ1h™‚®¢ Zk’5+êÝg ˜±)€#qrõ]ÐÓܸª–«¯*  `˜€ž#©9¯ýÑ,U ¡& É â4Ü‹°€Wl,NMC AH'WGT@À0ˆúT€8 ÷"l Àˆâ„8¹êò¨,€@¬ Nˆ⌵a{®@œ'ÄÉU—GeAb%qBœg¬½ÛƒpEÀÆâĽ(! hþ¡€‹ƒ¸: ² † Ø[œ†qØ}=Í­ç°1å#ÒÛ†¥Uk*—“ÇêÛýK‚úhÐs$Õ<`š3'‡qG›¯¸ÆŸ[Þýu©gkQ×–ϦÝNŠyîÌ\×úÏÚ®ÕÙÎ*G7}ô47çuUÂé Ãß„‘…'Ž"  ' çHjN/j–Šq’5k[{÷9z÷Ô2ƒUû *ý¹þœr/½Úš^7Æžü¾ËÈÛQ N&@@ ˆÓêß k’5Ëë}Åûû|¹«ÜG‘]æË¾¤“^4Fâ¤1(FœVok”@À NS4C … Zq¬™_É|I‘Sæ¥ _n.ð‹Á^7¶#Î(cS„§ û§9#!A¸|h},ÙêÜV>U+•Ä~MOç5Ùôlupnv¯W ò%½à:+ßK?) Nû5=j áFœ’Û"KNSñÊG§,åÉ$qR$¸òåÔ÷^åâœ8s¹Bœ´âŒ7rä À7 ‰SSÒ ¹r"NºŒ–&i)È‘bˆÓ³4Ö”ÖÐ2Fœ|wtÔ@ ~ ‰Sœð”ü$ÍÊ¥™F‘€¶Uç—¹bN¦jé¶:¯™[Nw¤ø%Sn+í·f¦8a‹‹ƒâ×k€×ô‹3䤫b¨N£g+Ñ ûF17Ë爓nÖ”¦gå¾%º¡ÀË"ß›•‡‹ƒ¸îé¨<€@Üèg¸¡¡òI§ÇF‹âúèÄ)í+}r2U».ÇÍî<‘…4îÜR´fw}~ÏzÜÇ·NƒŒ@ø& _œz¯§|68jwr"ÎŒnºY“t Æö2ÿWeì|ç¦=¾5…^12òzÖæ¸è›®çî#<9ˆïCj  EÀÐí(!O=†;©)O¬yfT1Ä ·#CåägHq’;!N­ï>>¨è‚Ò•ysòȽ•ÛÝô¬t²(ëgf©om±ou¾wu^ÏšœhŸ4yªka#»€8­Þ²$NºS“ܹ­„=-ˆ‚NmR57³yZçÊ]Ý;Œ\4¶Zuì!ï§Õ¿"(?€@| @œñå™üÜ>ÙæÌÌëÎ*ð²çê#«ÐKAWÒ®Égg7Éš«r<Ÿew8Ç q&¿!±G«€8­ÒRáÊYYß•¹£}ã®zÿ‰´LAWQÐ -5ÉšõnˆÓêmòƒ˜‚ÄiŠfHV!ô4wðEÖ˜ªMV“`? –# çHjžë} •„ª†PÐdqZ®£À I%`cqj B€8“Ú±3Ë€8¡O峟0Uk¹nŒƒ$“Ä qBœÉìqØ€€å @œ'ÄiùnŒ €$“Ä qBœÉìqØ€€å @œ'ÄiùnŒ €$“€Å‰{QBÐüCWÕ&³b_ Ö#`oqZ¯=\b=Í­ç0<ä=Á­‚ìA¬E@Ï‘TsŒbΜ¼ÅÑæ+®ñç–w]êÙZÔµ¥À³i·“bcž;3×µ>dzv§ku¶³ÊÑMßL=Íg•pú aø[‚0²â´V—FiAM@ϑԜ^Ô,'â$kÖ¶öîsôî©e-ªöTú)r+ü9å^zµ5½nŒ=ù}—¡·£@œ‰îyÈ@À² NË6]_Ái¬IÖ,¯÷ïïóå®rEv™/;ø’Nzщ“Æ qZ½­Q~S€8MÑ 1‚fhűf~%ó%EN™—‚|¹¹À/{ÝØnŒ8c ŒMA@@"Rœ‚ìŸæŒ¨òfA0ºI‚ÒKSµbm¨ÊRµËÒ¯òõrâææüGç5Ùôlupnv¯W ò%½à:+ßK?) Ns6J `=áFœ¤ ÑgÒBÔz‹=‡èv-?Ç)™O2¨ÔTŠDwŠŸªLØÀrqNœ¹\!NZqš°ÕP$ 0‰8!W…8åÊ” åvThUmY¶4]FK“´äH1ÄéYkJkh#N¶Š `IÄ)ÎUÊG{ò5ÒrÈ•ÒVÒ„§4~ ¹atcÊÈ[ÅEœÒ4¯i[—n;¡óš¹åtGŠ_2å¶Ò~kfж¸8È´Mˆ‚X‹€æˆS®@Åä­Ú¬!§vÕö×$°!qŠS¯šSµrSZbÄI7kJÓ³r_ŠÝPàe‘ïÍÊÃÅAÖêš(-€€Y è§(EÅøR­.õ¤kHq&bnVQõ9ÎèÄiÖ¦ë+׺7»óDÒ¸sKiКÞõù=ëq§ÉŰ ýâ”T§^PLçj^gr¨÷ÙZN.ÊØé¦›5éAbl/óUÆÎwnÚã[Sè##¯gmŽ‹¾“zî>“ƒ¬ÒyQNÔˆ|;ŠZÒ S1úTŸÂ wrTÏtn\$ª¸E1ï*•_ä.ÿUJ)¯ljšGÇ^CŠ“Ü qꀇ$  `œ€ž!H\4yT÷]P†œÇ³v§ku¶³ÊÑM_N=Íguÿí(§åz5  Pzޤæô¢f©8'Y³¶µwŸ£wO-3hQµ¯ ÒO‘[áÏ)÷Ò«­éucìÉï» ½âLh·Cæ V&qZ¹õXÙi¬IÖ,¯÷ïïóå®rEv™/;ø’Nzщ“Æ qZ½­Q~S€8MÑ 1‚fhűf~%ó%EN™—‚|¹¹À/{ÝØnŒ8c ŒMA@@"Nœâ§c|ït¸Lh½æDkì Sµ´S[¶;×dÓ³ÕÁ¹Ù½^)È—ô‚ë¬|/ý¤€8mÙú¨€@ „§\lá–uŠMÚ<²,¡R¹8E…§€oâw)çÄ™Ëâ¤5gâ{à‰€¦8傌Boq§Ñ½s2â¤Ëhi’–‚)†8=KcMi -cÄÉS·F]AI òT­Âšê™[ùš³êùÞp™(†¶±Os"Nºí„Îkæ–Ó)~É”ÛJû­™)NØââ Dö#ä  ÀÈ)yá~U+#¬!«ÇŽ‘w¤sZX‘ŒqÒÍšÒô¬Ü—¢D7xYä{³òpqGýUH Í«j#œã4äËÈçJCªÔèÜ,Ÿâ\—ãfwžÈBwn) Z³À»>¿g=îãL`7BÖ <Ð<Ç™*qŠŒÅœŒ83vºéfMzÐÛËü_•±ó›öøÖzÅÈÈëY›ã¢ïµæßIŒ9žÄÓu0L œ8ÃbTœ¡ ù«|$îgä!f¸Ó¥†ælÕWÕÚòÂÚâ$wBœ†;6=ô Aôë*–¢þ½èLÉÉ#÷VnwÓ³hÐÉ¢¬?Hœ™¥¾µÅ¾ÕùÞÕy=kr¢}rа1å#ÒÛ†¥Ukr焸ž~…4 6&GqÆ~¬æ‘ÙPNã$NºS“ܹ­„=-ˆ‚NmR57³yZçÊ]Ý; ]TÕÿwˆÓÆýUˆ‚@ÅiÈjIH̉8?ÙæÌÌëÎ*ð²çê#«ÐKAWÒ®Égg7Éš«r<Ÿew9Ç qFÑ™° € N«·se}WæŽö»:èý'bÐ2] DA3´4Ö$kVÔ»!N«·5Ê ` §)š!Y…ÐÓÜÊYcª6Y­ƒý€Xƒ€ž#i¦U± ªBM@5Äi®‹R‚¤Š€Å©i$IâLUgÄ~A¬Aâ„> Nkt]”@ U NˆâLUïÃ~A,Iâ„8!NKv]@ U NˆâLUïÃ~A,Iâ„8!NKv]@ Ul,NÜ‹’€æ ¸8(Uû°{‹ÓmÄRêin¥8‡^V‡¼'±°+³Ðs$Õ£˜3'Ϫu´ùŠöûrË»¿.ñ|Yäù¼ {Ón'ÅÆà§_ ªü¹þœo¼ôjë¯JéùïÝô [ˆ3µ} {° ˆÓê IcM²æ7õ~²¦èˉ3—ï*÷e—ù¾.¥wù¶ûÄa(Äiõ¶FùALAâ4E3ÄPš’%M’/)v}ã#kб‘Þ,VÀbc¾/+ß»)âŒ26‰@HqJ¯¤¤IQù²æLiÊ(¦j©ðòv—êhõ/ÈÌÙë¥Ø¹×+YS\ÅÉ"ß›•‡©Z«75Ê `áÄIÚ5™Y&b/rqŠš”‡[6G›+…$NÉš_–ôâ4F©A@@“@„©ÚDÈ,Ü0T½¯Ø÷aÄiKqÒˆ“®ÚVê%qRd›ªÅˆS³ €  _œêi[i¶S®CE2qÌ*YPZV¯ŒÝ” +Ç(Nù|µ|¨j¶9^ùT-Äi૤  ýâTLÛÊ'rå^íehM‚&„c'!ǦÒUq¢4:æñÝjcž‡]Tî§ …¯ö7ܤ•™¸8(¾Ä‘€çâ.NÅ0TA-$NQ¢¦Ò§|Ĺ}OßT­4OK󷘪弣ú q&wq*Ÿ~ì¢Üµ–8Å0;#_qƹà ;'NõùËCIù„­4Iòl¨úGïžZfТj_A¥Ÿ"·ÂŸSîÍÞëûªÔ÷yA=´â4{oDù@,Aâ´D3E($5Éšåõ¾âý}¾_Ï™]æË.eÖ¤‘8i qZ½­Q~S€8MÑ 1‚fhűf~%ó%EN™—‚|¹¹À/‰óóÝqÆ@›‚€€D œ8…cÿ4gD %s¥M¤…›ëIasiªVª -„kz)”@½Fü(B&)ù^ÑyM6=[œ›Ýë•‚|¹)ßG︦ŸgJZ;°!âÝ&†|Ù#C?@܈8cÜ»ü§d»ÈÚSj6Mª¿‚rqNœ¹\!NZqڰߢJ )$`iqF–:'â¤Ëhi’–‚)†8=KcMi -cÄ™Â^†]ƒØŠ€Nq†›b•ϦªÓÈç{åó¥ê©Zõ¬¬z®ØèÌ­BœâæòÆ ¹FѺ‘7 7 ¬gr8^_#ºí„Îkæ–Ó)~É”ÛJû­™)NØââ xG> œÐ)Nù¬©4Î ¹ *Òˆ¿ÊêÏÙèÔqȧü¦úœ¥ž©ZµJù蜎×nÖ”¦gå¾%º¡ÀË"ß›•‡‹ƒâ…ù€ðM œ8åÃG…±ä.TŒ Õs§!8ÕcÐÈç\S%NúB©Ç²‰û–­Ëq³;Od!;·”­Yà]Ÿß³÷q&® 3€W"83±á ùJ"u&щÓè¥I©§zØšÐoTÆN7ݬI:c{™ÿ«2v¾sÓßšB¯y=ks\T =wáÉA m/d `y†nG‘Ÿº“$*›†< )††œª ywJä}é™¶Uߎ¢>)ŸVUœ˜”ÿªN&MÏJƒKÅBÒ!ÅIî„8-ß9Qsˆ< )B£#?õü­Ñ¢KŸªGîÉGœI}®Üî¦gР“EY83K}k‹}«ó½«ózÖäàÉAæì‚(€€Õè™»‹Î[:Ÿru暦JœÒ9Î$X“öEâ¤;5ÉÛJØÓ‚(èÔ&YsC1›§%q®ÜÕ±Y­s¢¼ æ$Pqjº-¡ R(Îd¶õ'Ûœ™yÝY^ö\½`dz)èJÚ5ùìì&YsUŽç³ìœãLf»`_ ¶%qZ½i+ë»2w´oÜÕAï?ƒ–)èj š¡¥±&Y³¢Þ qZ½­Q~S€8MÑ É*„žæÆUµÉj ì@ÀšôI:¡š¸Ì©j5Mà§5»2J  ,6§¦! ôƒøÇ· ×U £>†¿%# ‡©‘Þ6,­Z“'g•“Õ7±“€85uÀ[Œ8MÚWQ,“€8yó¢f}!N“ôM@À¤ NM‘ð–â4i_E±@LBâäÍ‹šõ…8MÒ7Q “€85EÂ[ˆÓ¤}Å0 Mqlþf×ÎMïüþ7O-[º`Á‚'Ÿ|ò™gžyöÙgÿó?ßÛœõYC]‰Q¯´4•5(¨­Î­©ÚeŨÚû•UBÂK´ëöçv‚¯Ù^§Iú&Š `R‘ÅYY¾ë_¾úØcÍš5kîܹ üéôô–-#q¾öÚk¯¿þúÿø^nÎ$WÍñ”€ߎڢçßÿçèû_®]†H_žû«Í %š-q𴝢X &!Aœ¥ÅÛÓçÏ›:uêô‡~süøÜ³Î:tÒIí'œpôÄëøÃÏÇ{ûùçß~ûí?üá/¶¬×ïNú5Ï›¸|øˆó šø™4/¼ÿ1Fœ&éw(€€… „'5ÓçÏ%kÎ2%ÿÔSýN8!pÊ)Q£XŒ8ñD÷I'­›9óÝ?üá¯ýëÎ[4‡2b'5ÉŸïq#’I€°nݧÙLqZ¸?£è I Rœ­M{—ÿâÑš '<8ð£ÆŽ Lš˜<™ý¼é¦À˜1dPÿw¾“=mÚ_ÿò—V¬Ø_Y yP¦t¾&'7•º6•º}쟑h›J\ô— a?rø€fAœIèwØ€€… „环3zè¡x ÿ‡?dÖüñwßXº4ðÚk,žy&0{v`Ê”À5×Î9Ç;|ø†W^ùä“O¾ÜºIó ,Ž8éNÇñÅΞžnDâ tm,vm,rö£m5šmqZ¸?£è I Rœoþæ4Ü\~ãl†–ÆšdMòå?ÿX·.ðé§? ¼þzàñÇÙú«®¢-W]µêÓOW¯^]WS¬y\Ź.¿s}AgW—ÛBA/¦¶Pi¥¢z<®uâˆâLBŸÂ.@lN ¤8<ž>mÚ´gœÁÎk^{-k’5‹Š»wrs>¼ôRà±Ç·ß¸ä’Þü`ë_ÿºyóæÊŠBâ¤ãxF^‡ÛÝ™¸ ωÿâ² y>RÎâÊøî(.¥•gâruêŒÝ§Í;3ª !ÅI7Ÿ<:sfëw¾Ã®¢3š4ܤ±&YóW¿ 6o¬XxãÀÂ…lÐùóŸÓÉÎo^}õË/¿,)ÎÕ)Ε9GWîlw»É ‰ Òúr–/G½;)“p9Çe/Q/†.WûÊG1âLN‡Â^@ìO ¤8çÌ™³`ÆŒ£ßþ6»€–®"qÒ -5Éš;w2‰þ÷3q>ùd -]4töÙž}vÇŽe{´¯’ÎqþsÇQ:¦'(HcRÎòå¨w'e.·¸ì%êâEØÐé<úqö Œ8íߟQC$=UKOš?ÿ8IœwÝÅ®¢óš4CKcM²æÿý_àý÷¯¾ÊNsÞs›Ë=çœÆ_ýª´´´ºj¯Îçÿl;ü¯Ó1=AA“r—åó«òŠëÅ5Ò(rS[¾Gynò ¥ü+A̶³óÈÿloÈ3 ½ »à‚@Hq. þ«¥yZº_“î<¡khéj :¯I3´4Ö$kþò—§ž Ìš˜0!pÅt}PÝ?þ±gÏžÚÚ’Fœ+¾8DÇô)JÊYZŽnò ™›¢äò4òMÔ;P°DÐèèhûè‹Ã}q#N.º4*  h!Åù»ßýæé§ŸÞpà ô”v¿&ÝyBƒKºˆ¦g)h¬IÖœ3‡ÍÓ’V/¾ØÉ%-55MMM­ÍU:Gœÿµ¹õ/ŸììlKPuÕ—¹´rAŠé#$V$P”\¾Çùˆ+Sì=4::ÿeóAŒ8Ý•?€/BŠsúOèIî¿X´ÈEâ¤ÙZº_“.¢khéj :¯I¥±&Yó¶Û?ûYଳºÞx£¹¹¹¥¥éPK…NqÒqü?7¶Ð1=AAB’r––#,èI,¦ ™³b½üWyzEêA£½ýЇ[‰6Fœ¼ôjÔ@ ¡Bг¾¶øÍ7MqÿtêTz6Âd÷kÒ'¤Oò%פZk’5G¦ñh¯›=¨íp½¦5¥ ¼·®ù½µÍíí‡Ò`NÚ…z }$_©^( ©ÈG~fTžX\¯Þ{È•‰ãpôè¡÷×5cÄ™Ð~„ÌA8"îYµÙÛ³–/ÿÅòåË·¤¥õœ|2{ Â%—°;OèZºˆÎk^|15{&LpíßßÛÛëõzô<Uþä w24JfelQlbt‰NôèÁw2šˆ6FœulT@ q‰“Þv²aýÊßÓ¿·ßþdéÒ†Ë/§§°iÛ³ÏfÐýÈ{ÑE‡_|‘NmÒ$­Û툓7/jÖâL~7ÄA¬DâÔ o N+u`”@ ù NÞ¼¨Y_ˆ3ùÝ{°ˆSS$¼%€8­ÔQVä€8yó¢f}!ÎäwCì@ÀJ NM‘ð–â´RFYA’OâäÍ‹šõ…8“ß ±G+€85EÂ[¥8‡Ž©‘Þ6,­Z}™¬ôÝGYA@ *§¦xKqFÕ“°€7 NÞ¼¨Y_ˆ“›ÞŠ‚DEâÔ o Ψz6à†ÄÉ›5ë qrÓûQQ¨@œš"á-ÄUOÂF Ü€8yó¢f}!Nnz?*  ˆSS$¼%€8£êIØ@€'o^Ô¬/ÄÉMïGEA¢"qjŠ„·gT= pCâäÍ‹šõ…8¹éý¨(€@T NM‘ð–〉'a#n@œ¼yQ³¾'7½ˆŠÄ©)Þ@œQõ$l À ˆ“7/jÖ7(ÎjáôÂð·ad!ÞŽÂÍÑÐEâÔ o N]=‰@¸%qòæEÍúBœÜ Pq] NM‘ð–âÔÕs@€['o^Ô¬/ÄÉíÑÐEâÔ o N]=‰@¸%qòæEÍúBœÜ Pq] NM‘ð–âÔÕs@€['o^Ô¬/ÄÉíÑÐEâÔ o N]=‰@¸%qòæEÍúBœÜ Pq] NM‘ð–âÔÕs@€['o^Ô¬/ÄÉíÑÐEâÔ o úÄ9 y×Õƒ@€;'o^Ô¬/ÄÉÝQ0DâÔ o NC=‰A¸#qòæEÍúBœÜPaC NM‘ð– &qÒ÷  ¶'À›PßÈ¢'È‚€€‡ Îr[UˆšÄ q‚€€€§XQÿy‚ A@lCâ„8A@@ÀˆÓ,Ûü¹„Š€€DM zqÚþtT@DQa±¡- Ä$NC7#1€X‘ÄiKùÅR)&Îëª<äÝŠýeHˆ3ÇØr[ˆ3 ý»°0ˆÓ–ò‹¥R§…û3Š g,ޱå¶gúv `a§-åK¥ N ÷g@  ÎXcËm!Î$ô;ì@À N[Ê/–JAœîÏ(:€@@œ±8Æ–ÛÆMœBðŸø%–/Ë¿Öâz)™”R¾Fg7Pg¥sCE2)£eˆœ>BMî(ºza+x€8m)¿X*7qŠ”Äá+«6‡Q—(Ôk¨{„ÛÖhôìT‘§N>êœQ6=åG"qÆâ[n q&ðÈq&.²d€8m)¿X*gq†›¢TLتçKCΠ†ëFêébõ²z®8ÂÞ¥ÍÕùh–Y-NÅLµ4Y-ÔÅM"—9Y‡ ì@€€8cqŒ-·³8Sµ!''5§j5§4CŠS½•$¡ÈÚE%¥ ™Ote7âŒq_8˜$“ÄiKùÅR©„‹3ä4òˆS8åAùpM1¤Ó^H‡)ÊòcÈœ#ï=Ba"W9d’yàÀ¾@€gg,ޱå¶AqV £>†¿%# ‡Ž©‘Þ6,­Z³¶ôe ç?£72 ' yþö¥9âŒ<ÐT;5ÂÈUÏØâäùà‹º[—Ä©©ÞÄMœêÓrŠ têN>ž“–ÕcµÈÃ,õ@Vž¿ü4¡"gõGáHÞœ@îWEuBÖTý׆âï€pÜÈŽX÷¨„’ƒ€É @œ¼yQ³¾qgJ¾új¥¥¤Ø)€€ @œš"á-µÅi㾊ª˜„ÄÉ›5ë qš¤o¢ &%qjŠ„·§Iû*Š `'o^Ô¬/Äi’¾‰b€˜”Ä©)Þ@œ&í«(€€I@œ¼yQ³¾§Iú&Š `R§¦HxKq𴝢X &!qòæEÍúBœ&é›(€€I @œš"á-ÄiÒ¾Šb˜„ÄÉ›5ë«ç°žUk’o9Š q$qjŠ„·}â<}EßCÞ!Î8ö7d `'o^Ô¬/Äiƒ~*€$Ä©)Þ@œ ìoÈ@À NÞ¼¨Y_ˆÓýUH ˆSS$¼%€8Øß5€€ @œ¼yQ³¾§ ú5ª @§¦HxKq&°¿!k€8yó¢f}!NôkT@  NM‘ð–âL`CÖ 6 qòæEÍúBœ6èר€@ @œš"á-Ä™Àþ†¬Al@âäÍ‹šõ…8mЯQ€85EÂ[¥8‡Ž)‘Þ6,­Z}™øUEÖ  `§¦xKÀÄ9¶JõQßCÞ!NstU”@À, NÞ¼¨Y_ˆÓ,å0'ˆSS$¼%€8ÍÙUQ*³€8yó¢f}!N³tN”@Àœ NM‘ð–â4gWE©@ÌBâäÍ‹šõ…8ÍÒ9Qs€85EÂ[ˆÓœ]¥0 ˆ“7/jÖâ4KçD9@ÌIâÔ o NsvU” @À, NÞ¼¨Y_ˆÓ,å0'ˆSS$¼%€8ÍÙUQ*³€8yó¢f}!N³tN”@Àœ NM‘ð–@)Îac*ðwsö^” @ % NÞ¼¨Yßcâ\Ñ÷wˆ3%=;0-ˆSS$¼%€8MÛ[Q0S€8yó¢f}!NSôL@À´ NM‘ð–â4moEÁ@LAâäÍ‹šõ…8MÑ3QÓ€85EÂ[ˆÓ´½0ˆ“7/jÖâ4EÏD!@LKâÔ o NÓöV @À NÞ¼¨Y_ˆÓ=…0-ˆSS$¼%€8MÛ[Q0S€8yó¢f}!NSôL@À´ NM‘ð–â4moEÁ@LAâäÍ‹šõUŠsèexÈ»)ú*  `§¦HxKÀÄy]•púG}y‡8MÒWQ “€8yó¢f}!N“ôM@À¤ NM‘ð–â4i_E±@LBâäÍ‹šõ…8MÒ7Q “€85EÂ[ˆÓ¤}Å0 âli*k8PP[[SµËöQµ÷+»†ÔvÔ”uûó¨M©e5ÿ€8MÒ7Q “)N:Â:j‹žÿŸ£ï]¸vÂêFL|yî¯V47”P@œ&íŠ(€€U„'NÈši/ýíËÂj«TåŒ@ ì@3µæ ïŒ'¾'  +p⤱æÖ‚ª^ü³ ÿÖ‚JjÓíû0⌵Ï`{Î „'£ÉI¿ßGüçEXš€×ÛãvvP›9|âä¼Ë£ú ±7⤃lû×°>.—³ãh[+µéѶˆ3Ö>ƒíA8'Aœ]]ž®.7Âê<Wg{ÛáVÄÉygGõAâC ‚8Ýng0:-‚ìŸÑŠˆ›ÝÊlé]®Žö£6×E)Îacð÷øt6ä `Å)*³ÃºÔ^_ùåËúkÝVúóOBJ—«½ýhëÁæZâ[%ŒZÑ÷wˆÓ]µˆˆâì Á v­¤½ {1 öÍΣG´´6Õ@œñê5È@€kÄ)²é°ké§[U¯”ÏåÊ“Ië-]}*|gç‘#mÍ-ˆ“랎ʃÄ@qŠÂ Ã® ‚,(ÕBZ6´`]mm‡›š`Ä·nƒŒ@x&QœGœN²f›="¨IVùSZ£¹`]‡Û;š÷Cœ<÷tÔ@ n"ˆSTv­äH©ðÒ²|¥ø©ú£‰-G£½ýÐáCM Õgܺ 2à™@qÒE{ûaë†|p)¯…´žVª—Ŕᶵ£G:Øè¨‡8yîè¨;€@üD'ÑxaiG:¶ þšˆ ]ŠD”áXžô¬ÞÄ…!zF‹aˆaB37TMJ|úGÆÂXþ†¾Z-¹¡ôƪi£¡o‹áĉì¡(ŒÑ/F\Ò'ô«k¸M öÓæO_õ¿3úç 8¿ÿ!û    ƒÀÿDñlþH|"IEND®B`‚dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-uartassistant-dialog-ui.html0000664000175000017500000002320713001357026030302 0ustar potyrapotyra qesp : dialog.ui Example File (examples/uartassistant/dialog.ui)
    Home · All Classes · All Functions ·

    dialog.ui Example File

    examples/uartassistant/dialog.ui
        <?xml version="1.0" encoding="UTF-8"?>
        <ui version="4.0">
         <class>Dialog</class>
         <widget class="QDialog" name="Dialog">
          <property name="geometry">
           <rect>
            <x>0</x>
            <y>0</y>
            <width>604</width>
            <height>485</height>
           </rect>
          </property>
          <property name="windowTitle">
           <string>Dialog</string>
          </property>
          <layout class="QHBoxLayout" name="horizontalLayout_2">
           <item>
            <layout class="QVBoxLayout" name="verticalLayout" stretch="3,1">
             <item>
              <widget class="QPlainTextEdit" name="recvEdit">
               <property name="maximumBlockCount">
                <number>800</number>
               </property>
              </widget>
             </item>
             <item>
              <widget class="QPlainTextEdit" name="sendEdit"/>
             </item>
            </layout>
           </item>
           <item>
            <layout class="QVBoxLayout" name="verticalLayout_2">
             <item>
              <layout class="QFormLayout" name="formLayout">
               <item row="0" column="0">
                <widget class="QLabel" name="label">
                 <property name="text">
                  <string>Port:</string>
                 </property>
                </widget>
               </item>
               <item row="0" column="1">
                <widget class="QComboBox" name="portBox"/>
               </item>
               <item row="1" column="0">
                <widget class="QLabel" name="label_2">
                 <property name="text">
                  <string>BaudRate:</string>
                 </property>
                </widget>
               </item>
               <item row="1" column="1">
                <widget class="QComboBox" name="baudRateBox"/>
               </item>
               <item row="2" column="0">
                <widget class="QLabel" name="label_3">
                 <property name="text">
                  <string>DataBits:</string>
                 </property>
                </widget>
               </item>
               <item row="2" column="1">
                <widget class="QComboBox" name="dataBitsBox"/>
               </item>
               <item row="3" column="0">
                <widget class="QLabel" name="label_4">
                 <property name="text">
                  <string>Parity:</string>
                 </property>
                </widget>
               </item>
               <item row="3" column="1">
                <widget class="QComboBox" name="parityBox"/>
               </item>
               <item row="4" column="0">
                <widget class="QLabel" name="label_5">
                 <property name="text">
                  <string>StopBits:</string>
                 </property>
                </widget>
               </item>
               <item row="4" column="1">
                <widget class="QComboBox" name="stopBitsBox"/>
               </item>
               <item row="6" column="0">
                <widget class="QLabel" name="label_6">
                 <property name="text">
                  <string>QueryMode:</string>
                 </property>
                </widget>
               </item>
               <item row="6" column="1">
                <widget class="QComboBox" name="queryModeBox"/>
               </item>
               <item row="5" column="0">
                <widget class="QLabel" name="label_7">
                 <property name="text">
                  <string>Timeout:</string>
                 </property>
                </widget>
               </item>
               <item row="5" column="1">
                <widget class="QSpinBox" name="timeoutBox">
                 <property name="suffix">
                  <string> ms</string>
                 </property>
                 <property name="minimum">
                  <number>-1</number>
                 </property>
                 <property name="maximum">
                  <number>10000</number>
                 </property>
                 <property name="singleStep">
                  <number>10</number>
                 </property>
                 <property name="value">
                  <number>10</number>
                 </property>
                </widget>
               </item>
              </layout>
             </item>
             <item>
              <layout class="QHBoxLayout" name="horizontalLayout">
               <item>
                <widget class="HLed" name="led" native="true">
                 <property name="sizePolicy">
                  <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
                   <horstretch>0</horstretch>
                   <verstretch>0</verstretch>
                  </sizepolicy>
                 </property>
                 <property name="minimumSize">
                  <size>
                   <width>20</width>
                   <height>20</height>
                  </size>
                 </property>
                 <property name="maximumSize">
                  <size>
                   <width>25</width>
                   <height>25</height>
                  </size>
                 </property>
                </widget>
               </item>
               <item>
                <widget class="QPushButton" name="openCloseButton">
                 <property name="text">
                  <string>Open/Close</string>
                 </property>
                </widget>
               </item>
              </layout>
             </item>
             <item>
              <spacer name="verticalSpacer">
               <property name="orientation">
                <enum>Qt::Vertical</enum>
               </property>
               <property name="sizeHint" stdset="0">
                <size>
                 <width>20</width>
                 <height>40</height>
                </size>
               </property>
              </spacer>
             </item>
             <item>
              <widget class="QPushButton" name="sendButton">
               <property name="text">
                <string>Send</string>
               </property>
              </widget>
             </item>
            </layout>
           </item>
          </layout>
         </widget>
         <layoutdefault spacing="6" margin="11"/>
         <customwidgets>
          <customwidget>
           <class>HLed</class>
           <extends>QWidget</extends>
           <header>hled.h</header>
           <container>1</container>
          </customwidget>
         </customwidgets>
         <resources/>
         <connections/>
        </ui>


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-qespta-mainwindow-h.html0000664000175000017500000000656413001357026027430 0ustar potyrapotyra qesp : MainWindow.h Example File (examples/qespta/MainWindow.h)
    Home · All Classes · All Functions ·

    MainWindow.h Example File

    examples/qespta/MainWindow.h
        /**
         * @file MainWindow.h
         * @brief Application's Main Window.
         * @see MainWindow
         * @author Micha? Policht
         */
    
        #ifndef MAINWINDOW_H_
        #define MAINWINDOW_H_
    
        #include <QMainWindow>
    
        class QMenu;
        class QAction;
    
        class MainWindow : public QMainWindow
        {
                Q_OBJECT
    
            //@{
                QMenu *fileMenu;
            QAction *exitAct;
                QMenu *helpMenu;
            QAction *aboutAct;
            //@}
    
        private:
            void createMenus();
            void createActions();
    
        private slots:
            void about();
    
        public:
            MainWindow(const QString &title);
    
        };
    
        #endif /*MAINWINDOW_H_*/


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-qespta-mainwindow-cpp.html0000664000175000017500000001407013001357026027752 0ustar potyrapotyra qesp : MainWindow.cpp Example File (examples/qespta/MainWindow.cpp)
    Home · All Classes · All Functions ·

    MainWindow.cpp Example File

    examples/qespta/MainWindow.cpp
        /**
         * @file MainWindow.cpp
         * @brief MainWindow Implementation.
         * @see MainWindow.h
         * @author Micha? Policht
         */
    
        #include <QMessageBox>
        #include <QMenuBar>
        #include "MainWindow.h"
        #include "MessageWindow.h"
        #include "QespTest.h"
    
        MainWindow::MainWindow(const QString &title)
        {
                setWindowTitle(title);
            //central widget
                QespTest* qespTest = new QespTest();
            setCentralWidget(qespTest);
                //bottom dock widget
                MessageWindow* msgWindow = new MessageWindow();
                addDockWidget(Qt::BottomDockWidgetArea, msgWindow);
    
                createActions();
                createMenus();
        }
    
        void MainWindow::about()
        {
            QMessageBox::about(this, tr("About "),
                    tr("<B>""</B><BR>"
                                        "author: Michal Policht<br>"
                        "<a href='mailto:xpolik@users.sourceforge.net'>xpolik@users.sourceforge.net</a>"));
        }
    
        void MainWindow::createActions()
        {
                //File actions
                exitAct = new QAction(tr("E&xit"), this);
                exitAct->setShortcut(tr("CTRL+D"));
                exitAct->setStatusTip(tr("Exit the application"));
                connect(exitAct, SIGNAL(triggered()), this, SLOT(close()));
    
                //Help actions
                aboutAct = new QAction(tr("&About"), this);
                aboutAct->setShortcut(tr("CTRL+A"));
                aboutAct->setStatusTip(tr("About application"));
                connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));
        }
    
        void MainWindow::createMenus()
        {
                fileMenu = menuBar()->addMenu(tr("&File"));
                fileMenu->addAction(exitAct);
    
                helpMenu = menuBar()->addMenu(tr("&Help"));
                helpMenu->addAction(aboutAct);
        }


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/qextserialenumerator.html0000664000175000017500000002557313001357026026204 0ustar potyrapotyra qesp : QextSerialEnumerator Class Reference
    Home · All Classes · All Functions ·
  • Modules
  • QextSerialEnumerator
  • QextSerialEnumerator Class Reference

    The QextSerialEnumerator class provides list of ports available in the system. More...

        #include <QextSerialEnumerator>

    Inherits: QObject.

    Public Functions

    QextSerialEnumerator ( QObject * parent = 0 )
    ~QextSerialEnumerator ()
    void setUpNotifications ()
    • 29 public functions inherited from QObject

    Signals

    void deviceDiscovered ( const QextPortInfo & info )
    void deviceRemoved ( const QextPortInfo & info )

    Static Public Members

    QList<QextPortInfo> getPorts ()
    • 6 static public members inherited from QObject

    Additional Inherited Members

    • 1 property inherited from QObject
    • 1 public slot inherited from QObject
    • 1 public variable inherited from QObject
    • 8 protected functions inherited from QObject
    • 2 protected variables inherited from QObject

    Detailed Description

    The QextSerialEnumerator class provides list of ports available in the system.

    Usage

    To poll the system for a list of connected devices, simply use getPorts(). Each QextPortInfo structure will populated with information about the corresponding device.

    Example

        QList<QextPortInfo> ports = QextSerialEnumerator::getPorts();
        foreach( QextPortInfo port, ports ) {
            // inspect port...
        }

    To enable event-driven notification of device connection events, first call setUpNotifications() and then connect to the deviceDiscovered() and deviceRemoved() signals. Event-driven behavior is currently available only on Windows and OS X.

    Example

        QextSerialEnumerator* enumerator = new QextSerialEnumerator();
        connect(enumerator, SIGNAL(deviceDiscovered(const QextPortInfo &)),
                   myClass, SLOT(onDeviceDiscovered(const QextPortInfo &)));
        connect(enumerator, SIGNAL(deviceRemoved(const QextPortInfo &)),
                   myClass, SLOT(onDeviceRemoved(const QextPortInfo &)));

    Credits

    Windows implementation is based on Zach Gorman's work from The Code Project (http://www.codeproject.com/system/setupdi.asp).

    OS X implementation, see http://developer.apple.com/documentation/DeviceDrivers/Conceptual/AccessingHardware/AH_Finding_Devices/chapter_4_section_2.html

    author Michal Policht, Liam Staskawicz

    Member Function Documentation

    QextSerialEnumerator::QextSerialEnumerator ( QObject * parent = 0 )

    Constructs a QextSerialEnumerator object with the given parent.

    QextSerialEnumerator::~QextSerialEnumerator ()

    Destructs the QextSerialEnumerator object.

    void QextSerialEnumerator::deviceDiscovered ( const QextPortInfo & info ) [signal]

    A new device has been connected to the system.

    setUpNotifications() must be called first to enable event-driven device notifications. Currently only implemented on Windows and OS X.

    info The device that has been discovered.

    void QextSerialEnumerator::deviceRemoved ( const QextPortInfo & info ) [signal]

    A device has been disconnected from the system.

    setUpNotifications() must be called first to enable event-driven device notifications. Currently only implemented on Windows and OS X.

    info The device that was disconnected.

    QList<QextPortInfo> QextSerialEnumerator::getPorts () [static]

    Get list of ports.

    return list of ports currently available in the system.

    void QextSerialEnumerator::setUpNotifications ()

    Enable event-driven notifications of board discovery/removal.


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/classes.html0000664000175000017500000000372513001357026023351 0ustar potyrapotyra qesp :
    Home · All Classes · All Functions ·
  • PortSettings

    Contain port settings

    QextPortInfo

    Containing port information

    QextSerialEnumerator

    List of ports available in the system

    QextSerialPort

    Encapsulates a serial port on both POSIX and Windows systems


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-qespta-messagewindow-cpp.html0000664000175000017500000003241513001357026030455 0ustar potyrapotyra qesp : MessageWindow.cpp Example File (examples/qespta/MessageWindow.cpp)
    Home · All Classes · All Functions ·

    MessageWindow.cpp Example File

    examples/qespta/MessageWindow.cpp
        /**
         * @file MessageWindow.cpp
         * @brief MessageWindow Implementation.
         * @see MessageWindow.h
         * @author Micha? Policht
         */
    
        #include <stdio.h>
        #include "MessageWindow.h"
        #include <QMessageBox>
        #include <QCoreApplication>
        #include <QMutexLocker>
    
        const char* MessageWindow::WINDOW_TITLE = "Message Window";
        MessageWindow* MessageWindow::MsgHandler = NULL;
    
        MessageWindow::MessageWindow(QWidget* parent, Qt::WFlags flags)
                : QDockWidget(parent, flags),
                        msgTextEdit(this)
        {
                setWindowTitle(tr(WINDOW_TITLE));
                msgTextEdit.setReadOnly(true);
                setWidget(&msgTextEdit);
    
                MessageWindow::MsgHandler = this;
        }
    
        //static
        QString MessageWindow::QtMsgToQString(QtMsgType type, const char *msg)
        {
                switch (type) {
                        case QtDebugMsg:
                                return QLatin1String("Debug: ")+QLatin1String(msg);
                        case QtWarningMsg:
                                return QLatin1String("Warning: ")+QLatin1String(msg);
                        case QtCriticalMsg:
                                return QLatin1String("Critical: ")+QLatin1String(msg);
                        case QtFatalMsg:
                                return QLatin1String("Fatal: ")+QLatin1String(msg);
                        default:
                                return QLatin1String("Unrecognized message type: ")+QLatin1String(msg);
                }
        }
    
        //static
        void MessageWindow::AppendMsgWrapper(QtMsgType type, const char* msg)
        {
                static QMutex mutex;
                QMutexLocker locker(&mutex);
    
                if (MessageWindow::MsgHandler != NULL)
                        return MessageWindow::MsgHandler->postMsgEvent(type, msg);
                else
                fprintf(stderr, "%s", MessageWindow::QtMsgToQString(type, msg).toLatin1().data());
        }
    
        void MessageWindow::customEvent(QEvent* event)
        {
                if (static_cast<MessageWindow::EventType>(event->type()) == MessageWindow::MessageEventType)
                        msgTextEdit.append(dynamic_cast<MessageEvent* >(event)->msg);
        }
    
        void MessageWindow::postMsgEvent(QtMsgType type, const char* msg)
        {
                QString qmsg = MessageWindow::QtMsgToQString(type, msg);
                switch (type) {
                        case QtDebugMsg:
                                break;
                        case QtWarningMsg:
                                qmsg.prepend(QLatin1String("<FONT color=\"#FF0000\">"));
                                qmsg.append(QLatin1String("</FONT>"));
                                break;
                        case QtCriticalMsg:
                                if (QMessageBox::critical(this, QLatin1String("Critical Error"), qmsg,
                                                QMessageBox::Ignore,
                                                QMessageBox::Abort,
                                                QMessageBox::NoButton) == QMessageBox::Abort)
                                        abort(); // core dump
                                qmsg.prepend(QLatin1String("<B><FONT color=\"#FF0000\">"));
                                qmsg.append(QLatin1String("</FONT></B>"));
                                break;
                        case QtFatalMsg:
                                QMessageBox::critical(this, QLatin1String("Fatal Error"), qmsg, QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton);
                                abort(); // deliberately core dump
                }
                //it's impossible to change GUI directly from thread other than the main thread
                //so post message encapsulated by MessageEvent to the main thread's event queue
                QCoreApplication::postEvent(this, new MessageEvent(qmsg));
        }
    
        MessageEvent::MessageEvent(QString & msg):
                QEvent(static_cast<QEvent::Type>(MessageWindow::MessageEventType))
        {
                this->msg = msg;
        }


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/qextserialport.html0000664000175000017500000013306413001357026025002 0ustar potyrapotyra qesp : QextSerialPort Class Reference
    Home · All Classes · All Functions ·
  • Modules
  • QextSerialPort
  • QextSerialPort Class Reference

    The QextSerialPort class encapsulates a serial port on both POSIX and Windows systems. More...

        #include <QextSerialPort>

    Inherits: QIODevice.

    Public Types

    enum QueryMode { Polling, EventDriven }

    Public Functions

    QextSerialPort ( QueryMode mode = EventDriven, QObject * parent = 0 )
    QextSerialPort ( const QString & name, QueryMode mode = EventDriven, QObject * parent = 0 )
    QextSerialPort ( const PortSettings & settings, QueryMode mode = EventDriven, QObject * parent = 0 )
    QextSerialPort ( const QString & name, const PortSettings & settings, QueryMode mode = EventDriven, QObject * parent = 0 )
    ~QextSerialPort ()
    BaudRateType baudRate () const
    DataBitsType dataBits () const
    QString errorString ()
    FlowType flowControl () const
    void flush ()
    ulong lastError () const
    ulong lineStatus ()
    bool open ( OpenMode mode )
    ParityType parity () const
    QString portName () const
    QueryMode queryMode () const
    QByteArray readAll ()
    StopBitsType stopBits () const

    Reimplemented Public Functions

    virtual qint64 bytesAvailable () const
    virtual void close ()
    virtual bool isSequential () const
    • 33 public functions inherited from QIODevice
    • 29 public functions inherited from QObject

    Public Slots

    void setBaudRate ( BaudRateType baudRate )
    void setDataBits ( DataBitsType dataBits )
    void setDtr ( bool set = true )
    void setFlowControl ( FlowType flow )
    void setParity ( ParityType parity )
    void setPortName ( const QString & name )
    void setQueryMode ( QueryMode mode )
    void setRts ( bool set = true )
    void setStopBits ( StopBitsType stopBits )
    void setTimeout ( long millisec )
    • 1 public slot inherited from QObject

    Signals

    void dsrChanged ( bool status )

    Reimplemented Protected Functions

    virtual qint64 readData ( char * data, qint64 maxSize )
    virtual qint64 writeData ( const char * data, qint64 maxSize )
    • 5 protected functions inherited from QIODevice
    • 8 protected functions inherited from QObject

    Additional Inherited Members

    • 1 property inherited from QObject
    • 1 public variable inherited from QObject
    • 6 static public members inherited from QObject
    • 5 protected functions inherited from QIODevice
    • 8 protected functions inherited from QObject
    • 2 protected variables inherited from QObject

    Detailed Description

    The QextSerialPort class encapsulates a serial port on both POSIX and Windows systems.

    Usage

    QextSerialPort offers both a polling and event driven API. Event driven is typically easier to use, since you never have to worry about checking for new data.

    Example

        QextSerialPort* port = new QextSerialPort("COM1");
        connect(port, SIGNAL(readyRead()), myClass, SLOT(onDataAvailable()));
        port->open();
    
        void MyClass::onDataAvailable() {
            int avail = port->bytesAvailable();
            if( avail > 0 ) {
                QByteArray usbdata;
                usbdata.resize(avail);
                int read = port->read(usbdata.data(), usbdata.size());
                if( read > 0 ) {
                    processNewData(usbdata);
                }
            }
        }

    Compatibility

    The user will be notified of errors and possible portability conflicts at run-time by default.

    For example, if a application has used BAUD1800, when it is runing under unix, you will get following message.

        QextSerialPort Portability Warning: Windows does not support baudRate:1800

    This behavior can be turned off by defining macro QESP_NO_WARN (to turn off all warnings) or QESP_NO_PORTABILITY_WARN (to turn off portability warnings) in the project.

    Author: Stefan Sander, Michal Policht, Brandon Fosdick, Liam Staskawicz, Debao Zhang

    Member Type Documentation

    enum QextSerialPort::QueryMode

    This enum type specifies query mode used in a serial port:

    ConstantValueDescription
    QextSerialPort::Polling0asynchronously read and write
    QextSerialPort::EventDriven1synchronously read and write

    Member Function Documentation

    QextSerialPort::QextSerialPort ( QueryMode mode = EventDriven, QObject * parent = 0 )

    Default constructor. Note that the name of the device used by a QextSerialPort is dependent on your OS. Possible naming conventions and their associated OS are:

        OS Constant       Used By         Naming Convention
        -------------     -------------   ------------------------
        Q_OS_WIN          Windows         COM1, COM2
        Q_OS_IRIX         SGI/IRIX        /dev/ttyf1, /dev/ttyf2
        Q_OS_HPUX         HP-UX           /dev/tty1p0, /dev/tty2p0
        Q_OS_SOLARIS      SunOS/Slaris    /dev/ttya, /dev/ttyb
        Q_OS_OSF          Digital UNIX    /dev/tty01, /dev/tty02
        Q_OS_FREEBSD      FreeBSD         /dev/ttyd0, /dev/ttyd1
        Q_OS_OPENBSD      OpenBSD         /dev/tty00, /dev/tty01
        Q_OS_LINUX        Linux           /dev/ttyS0, /dev/ttyS1
        <none>                            /dev/ttyS0, /dev/ttyS1

    This constructor assigns the device name to the name of the first port on the specified system. See the other constructors if you need to open a different port. Default mode is EventDriven. As a subclass of QObject, parent can be specified.

    QextSerialPort::QextSerialPort ( const QString & name, QueryMode mode = EventDriven, QObject * parent = 0 )

    Constructs a serial port attached to the port specified by name. name is the name of the device, which is windowsystem-specific, e.g."COM1" or "/dev/ttyS0". mode

    QextSerialPort::QextSerialPort ( const PortSettings & settings, QueryMode mode = EventDriven, QObject * parent = 0 )

    Constructs a port with default name and specified settings.

    QextSerialPort::QextSerialPort ( const QString & name, const PortSettings & settings, QueryMode mode = EventDriven, QObject * parent = 0 )

    Constructs a port with specified name , mode and settings.

    QextSerialPort::~QextSerialPort ()

    Destructs the QextSerialPort object.

    BaudRateType QextSerialPort::baudRate () const

    Returns the baud rate of the serial port. For a list of possible return values see the definition of the enum BaudRateType.

    See also setBaudRate().

    qint64 QextSerialPort::bytesAvailable () const [virtual]

    Reimplemented from QIODevice::bytesAvailable().

    Returns the number of bytes waiting in the port's receive queue. This function will return 0 if the port is not currently open, or -1 on error.

    void QextSerialPort::close () [virtual]

    Reimplemented from QIODevice::close().

    Closes a serial port. This function has no effect if the serial port associated with the class is not currently open.

    DataBitsType QextSerialPort::dataBits () const

    Returns the number of data bits used by the port. For a list of possible values returned by this function, see the definition of the enum DataBitsType.

    See also setDataBits().

    void QextSerialPort::dsrChanged ( bool status ) [signal]

    This signal is emitted whenever dsr line has changed its state. You may use this signal to check if device is connected.

    status true when DSR signal is on, false otherwise.

    QString QextSerialPort::errorString ()

    Returns a human-readable description of the last device error that occurred.

    FlowType QextSerialPort::flowControl () const

    Returns the type of flow control used by the port. For a list of possible values returned by this function, see the definition of the enum FlowType.

    See also setFlowControl().

    void QextSerialPort::flush ()

    Flushes all pending I/O to the serial port. This function has no effect if the serial port associated with the class is not currently open.

    bool QextSerialPort::isSequential () const [virtual]

    Reimplemented from QIODevice::isSequential().

    Returns true if device is sequential, otherwise returns false. Serial port is sequential device so this function always returns true. Check QIODevice::isSequential() documentation for more information.

    ulong QextSerialPort::lastError () const

    Return the error number, or 0 if no error occurred.

    ulong QextSerialPort::lineStatus ()

    Returns the line status as stored by the port function. This function will retrieve the states of the following lines: DCD, CTS, DSR, and RI. On POSIX systems, the following additional lines can be monitored: DTR, RTS, Secondary TXD, and Secondary RXD. The value returned is an unsigned long with specific bits indicating which lines are high. The following constants should be used to examine the states of individual lines:

        Mask        Line
        ------      ----
        LS_CTS      CTS
        LS_DSR      DSR
        LS_DCD      DCD
        LS_RI       RI
        LS_RTS      RTS (POSIX only)
        LS_DTR      DTR (POSIX only)
        LS_ST       Secondary TXD (POSIX only)
        LS_SR       Secondary RXD (POSIX only)

    This function will return 0 if the port associated with the class is not currently open.

    bool QextSerialPort::open ( OpenMode mode )

    Opens a serial port and sets its OpenMode to mode. Note that this function does not specify which device to open. Returns true if successful; otherwise returns false.This function has no effect if the port associated with the class is already open. The port is also configured to the current settings, as stored in the Settings structure.

    ParityType QextSerialPort::parity () const

    Returns the type of parity used by the port. For a list of possible values returned by this function, see the definition of the enum ParityType.

    See also setParity().

    QString QextSerialPort::portName () const

    Returns the name set by setPortName().

    See also setPortName().

    QueryMode QextSerialPort::queryMode () const

    Get query mode.

    See also setQueryMode().

    QByteArray QextSerialPort::readAll ()

    Reads all available data from the device, and returns it as a QByteArray. This function has no way of reporting errors; returning an empty QByteArray() can mean either that no data was currently available for reading, or that an error occurred.

    qint64 QextSerialPort::readData ( char * data, qint64 maxSize ) [virtual protected]

    Reimplemented from QIODevice::readData().

    Reads a block of data from the serial port. This function will read at most maxlen bytes from the serial port and place them in the buffer pointed to by data. Return value is the number of bytes actually read, or -1 on error.

    Warning: before calling this function ensure that serial port associated with this class is currently open (use isOpen() function to check if port is open).

    void QextSerialPort::setBaudRate ( BaudRateType baudRate ) [slot]

    Sets the baud rate of the serial port to baudRate. Note that not all rates are applicable on all platforms. The following table shows translations of the various baud rate constants on Windows(including NT/2000) and POSIX platforms. Speeds marked with an * are speeds that are usable on both Windows and POSIX.

        RATE          Windows Speed   POSIX Speed
        -----------   -------------   -----------
         BAUD50                   X          50
         BAUD75                   X          75
        *BAUD110                110         110
         BAUD134                  X         134.5
         BAUD150                  X         150
         BAUD200                  X         200
        *BAUD300                300         300
        *BAUD600                600         600
        *BAUD1200              1200        1200
         BAUD1800                 X        1800
        *BAUD2400              2400        2400
        *BAUD4800              4800        4800
        *BAUD9600              9600        9600
         BAUD14400            14400           X
        *BAUD19200            19200       19200
        *BAUD38400            38400       38400
         BAUD56000            56000           X
        *BAUD57600            57600       57600
         BAUD76800                X       76800
        *BAUD115200          115200      115200
         BAUD128000          128000           X
         BAUD230400               X      230400
         BAUD256000          256000           X
         BAUD460800               X      460800
         BAUD500000               X      500000
         BAUD576000               X      576000
         BAUD921600               X      921600
         BAUD1000000              X     1000000
         BAUD1152000              X     1152000
         BAUD1500000              X     1500000
         BAUD2000000              X     2000000
         BAUD2500000              X     2500000
         BAUD3000000              X     3000000
         BAUD3500000              X     3500000
         BAUD4000000              X     4000000

    See also baudRate().

    void QextSerialPort::setDataBits ( DataBitsType dataBits ) [slot]

    Sets the number of data bits used by the serial port to dataBits. Possible values of dataBits are:

        DATA_5      5 data bits
        DATA_6      6 data bits
        DATA_7      7 data bits
        DATA_8      8 data bits

    note: This function is subject to the following restrictions:

    • 5 data bits cannot be used with 2 stop bits.
    • 1.5 stop bits can only be used with 5 data bits.
    • 8 data bits cannot be used with space parity on POSIX systems.

    See also dataBits().

    void QextSerialPort::setDtr ( bool set = true ) [slot]

    Sets DTR line to the requested state (set default to high). This function will have no effect if the port associated with the class is not currently open.

    void QextSerialPort::setFlowControl ( FlowType flow ) [slot]

    Sets the flow control used by the port to flow. Possible values of flow are:

        FLOW_OFF            No flow control
        FLOW_HARDWARE       Hardware (RTS/CTS) flow control
        FLOW_XONXOFF        Software (XON/XOFF) flow control

    See also flowControl().

    void QextSerialPort::setParity ( ParityType parity ) [slot]

    Sets the parity associated with the serial port to parity. The possible values of parity are:

        PAR_SPACE       Space Parity
        PAR_MARK        Mark Parity
        PAR_NONE        No Parity
        PAR_EVEN        Even Parity
        PAR_ODD         Odd Parity

    See also parity().

    void QextSerialPort::setPortName ( const QString & name ) [slot]

    Sets the name of the device associated with the object, e.g. "COM1", or "/dev/ttyS0".

    See also portName().

    void QextSerialPort::setQueryMode ( QueryMode mode ) [slot]

    Set desired serial communication handling style. You may choose from polling or event driven approach. This function does nothing when port is open; to apply changes port must be reopened.

    In event driven approach read() and write() functions are acting asynchronously. They return immediately and the operation is performed in the background, so they doesn't freeze the calling thread. To determine when operation is finished, QextSerialPort runs separate thread and monitors serial port events. Whenever the event occurs, adequate signal is emitted.

    When polling is set, read() and write() are acting synchronously. Signals are not working in this mode and some functions may not be available. The advantage of polling is that it generates less overhead due to lack of signals emissions and it doesn't start separate thread to monitor events.

    Generally event driven approach is more capable and friendly, although some applications may need as low overhead as possible and then polling comes.

    mode query mode.

    See also queryMode().

    void QextSerialPort::setRts ( bool set = true ) [slot]

    Sets RTS line to the requested state set (high by default). This function will have no effect if the port associated with the class is not currently open.

    void QextSerialPort::setStopBits ( StopBitsType stopBits ) [slot]

    Sets the number of stop bits used by the serial port to stopBits. Possible values of stopBits are:

        STOP_1      1 stop bit
        STOP_1_5    1.5 stop bits
        STOP_2      2 stop bits

    note: This function is subject to the following restrictions:

    • 2 stop bits cannot be used with 5 data bits.
    • 1.5 stop bits cannot be used with 6 or more data bits.
    • POSIX does not support 1.5 stop bits.

    See also stopBits().

    void QextSerialPort::setTimeout ( long millisec ) [slot]

    For Unix:

    Sets the read and write timeouts for the port to millisec milliseconds. Note that this is a per-character timeout, i.e. the port will wait this long for each individual character, not for the whole read operation. This timeout also applies to the bytesWaiting() function.

    note: POSIX does not support millisecond-level control for I/O timeout values. Any timeout set using this function will be set to the next lowest tenth of a second for the purposes of detecting read or write timeouts. For example a timeout of 550 milliseconds will be seen by the class as a timeout of 500 milliseconds for the purposes of reading and writing the port. However millisecond-level control is allowed by the select() system call, so for example a 550-millisecond timeout will be seen as 550 milliseconds on POSIX systems for the purpose of detecting available bytes in the read buffer.

    For Windows:

    Sets the read and write timeouts for the port to millisec milliseconds. Setting 0 indicates that timeouts are not used for read nor write operations; however read() and write() functions will still block. Set -1 to provide non-blocking behaviour (read() and write() will return immediately).

    note: this function does nothing in event driven mode.

    StopBitsType QextSerialPort::stopBits () const

    Returns the number of stop bits used by the port. For a list of possible return values, see the definition of the enum StopBitsType.

    See also setStopBits().

    qint64 QextSerialPort::writeData ( const char * data, qint64 maxSize ) [virtual protected]

    Reimplemented from QIODevice::writeData().

    Writes a block of data to the serial port. This function will write len bytes from the buffer pointed to by data to the serial port. Return value is the number of bytes actually written, or -1 on error.

    Warning: before calling this function ensure that serial port associated with this class is currently open (use isOpen() function to check if port is open).


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-uartassistant-hled-h.html0000664000175000017500000001106313001357026027566 0ustar potyrapotyra qesp : hled.h Example File (examples/uartassistant/hled.h)
    Home · All Classes · All Functions ·

    hled.h Example File

    examples/uartassistant/hled.h
        #ifndef HLED_H
        #define HLED_H
    
        #include <QWidget>
    
        class QColor;
        class QTimer;
    
        class HLed : public QWidget
        {
            Q_OBJECT
        public:
            enum State {Off, On, Blink};
            HLed(QWidget *parent = 0);
            ~HLed();
    
            QColor color() const;
            State state() const;
            int darkerFactor() const;
    
            void setColor(const QColor & color);
            void setState(State state);
            void setDarkerFactor(int darkerFactor);
    
            QSize sizeHint() const;
            QSize minimumSizeHint() const;
    
        public slots:
            void toggle();
            void turnOn(bool on=true);
            void turnOff(bool off=true);
            void blink();
    
        private slots:
            void blinkToggle();
    
        protected:
            void paintEvent(QPaintEvent*);
            bool paintCachedPixmap();
            int ledWidth() const;
            void paintSunken();
    
        private:
            class Private;
            Private * const m_d;
        };
    
        #endif // HLED_H


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-qespta-main-cpp.html0000664000175000017500000000531713001357026026526 0ustar potyrapotyra qesp : main.cpp Example File (examples/qespta/main.cpp)
    Home · All Classes · All Functions ·

    main.cpp Example File

    examples/qespta/main.cpp
        /**
         * @file main.cpp
         * @brief Main file.
         * @author Micha? Policht
         */
    
        #include <QApplication>
        #include "MainWindow.h"
        #include "MessageWindow.h"
    
        int main(int argc, char *argv[])
        {
                int exec;
    
                QApplication app(argc, argv);
            //redirect debug messages to the MessageWindow dialog
                qInstallMsgHandler(MessageWindow::AppendMsgWrapper);
    
                MainWindow mainWindow(QLatin1String("QextSerialPort Test Application"));
                mainWindow.show();
                exec = app.exec();
                return exec;
        }


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/qextserialenumerator-members.html0000664000175000017500000002325413001357026027626 0ustar potyrapotyra qesp : List of All Members for QextSerialEnumerator
    Home · All Classes · All Functions ·
  • Modules
  • QextSerialEnumerator
  • List of All Members for QextSerialEnumerator

    This is the complete list of members for QextSerialEnumerator, including inherited members.


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-enumerator.html0000664000175000017500000001243713001357026025711 0ustar potyrapotyra qesp : enumerator Demo
    Home · All Classes · All Functions ·
  • Examples
  • enumerator Demo
  • enumerator Demo

    Files:

    The example demonstrates how to use QextSerialEnumerator.

        int main()
        {
            QList<QextPortInfo> ports = QextSerialEnumerator::getPorts();
            qDebug() << "List of ports:";
            for (int i = 0; i < ports.size(); i++) {
                qDebug() << "port name:" << ports.at(i).portName;
                qDebug() << "friendly name:" << ports.at(i).friendName;
                qDebug() << "physical name:" << ports.at(i).physName;
                qDebug() << "enumerator name:" << ports.at(i).enumName;
                qDebug() << "vendor ID:" << QString::number(ports.at(i).vendorID, 16);
                qDebug() << "product ID:" << QString::number(ports.at(i).productID, 16);
                qDebug() << "===================================";
            }
            return 0;
        }


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/qesp.index0000664000175000017500000007522313001357026023031 0ustar potyrapotyra dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/qesp.qch0000664000175000017500000027000013001357026022463 0ustar potyrapotyraSQLite format 3@ \-â!û û  ÙÙ%Qcom.google.code.qextserialport.120   ç\ûöñìç[oZ\YJX;W   ŒŒrdindex.htmlLQextSerialPort Reference Documentation BB¬)—¤ ƒh)) tableNamespaceTableNamespaceTableCREATE TABLE NamespaceTable (Id INTEGER PRIMARY KEY,Name TEXT ){55tableFilterAttributeTableFilterAttributeTableCREATE TABLE FilterAttributeTable (Id INTEGER PRIMARY KEY, Name TEXT )l++tableFilterNameTableFilterNameTableCREATE TABLE FilterNameTable (Id INTEGER PRIMARY KEY, Name TEXT )h##tableFilterTableFilterTableCREATE TABLE FilterTable (NameId INTEGER, FilterAttributeId INTEGER ) !!‚ tableIndexTableIndexTableCREATE TABLE IndexTable (Id INTEGER PRIMARY KEY, Name TEXT, Identifier TEXT, NamespaceId INTEGER, FileId INTEGER, Anchor TEXT )c))tableIndexItemTableIndexItemTableCREATE TABLE IndexItemTable (Id INTEGER, IndexId INTEGER )x--#tableIndexFilterTableIndexFilterTableCREATE TABLE IndexFilterTable (FilterAttributeId INTEGER, IndexId INTEGER ){''5tableContentsTableContentsTable CREATE TABLE ContentsTable (Id INTEGER PRIMARY KEY, NamespaceId INTEGER, Data BLOB )  È"©.– ŠÈX''qtableMetaDataTableMetaDataTableCREATE TABLE MetaDataTable(Name Text, Value BLOB ) 33/tableContentsFilterTableContentsFilterTable CREATE TABLE ContentsFilterTable (FilterAttributeId INTEGER, ContentsId INTEGER ) 77#tableFileAttributeSetTableFileAttributeSetTable CREATE TABLE FileAttributeSetTable (Id INTEGER, FilterAttributeId INTEGER )f '' tableFileDataTableFileDataTableCREATE TABLE FileDataTable (Id INTEGER PRIMARY KEY, Data BLOB )t ++tableFileFilterTableFileFilterTableCREATE TABLE FileFilterTable (FilterAttributeId INTEGER, FileId INTEGER )| ''7tableFileNameTableFileNameTableCREATE TABLE FileNameTable (FolderId INTEGER, Name TEXT, FileId INTEGER, Title TEXT )t##/tableFolderTableFolderTableCREATE TABLE FolderTable(Id INTEGER PRIMARY KEY, Name Text, NamespaceID INTEGER ) «SûöñìçâÝØÓÎÉÄ¿ºµ°«PMLJ865+) & " !  öVûöUT õõ qdoc ÊîÊ"%3CreationDate2012-03-18T21:41:06!qchVersion1.0 /½‚ø\FÈDhOÈÑ O3äXâ°å̱œ[Ï“Îs˜…ìnÄJ„€¥¤¾"T:‹O‰GBÄ9J&F•+Æv±Œt"Vºy>DËCcØÅä% TÆE™¿jî2žÔó™~‚‰ît~Qò6 ‚$ ùöhfœÈ`)™r%ÇX FçqÄ+BR ¸iñOL ã1ÙN¥ÆwÉ\¬€W þ¢é—++äG¹NlFüáÉù&uéä?P럛± ïNÐøÓËëé\R©eš§—£ôУu…ŒSÆ»õ§ïý„z3+ØyxøÜê3½,ñCcT-eVÓõ™·ÜosØpì­`4m¤´òvyNÃp ÍÏâ9µrŠ›ï’ZXÌ3»–ƒñx5‘q¬ë£)Þnÿÿr-0 `Ôûè|ŽÚØMîØõIiV@a¯Ï“ ˆsy“òlCÙ7N2üdÿ£§.÷‚x™ë+Ъ•MßV Ÿ’ç¥êWRÕ¦o—8JÒO¢Äý²Œýδ#ÂØbG1 +¶?UëôöíÛµ­SÙ.eØçFØÈZÄÇþΆih¡ît¥u Üìkï5½_ûã;ÞšN˸xô+ FžÆ}“ÝZ9žx²àc—ìw:Ö~go¿èC›Êû å{msµW# =6fÚyÜ.»Æ†ß•\eÆ¢Á œ_ósœc>Í߸‡ËsÇ`“mÁ‘.©Zºøžëœ«2#âB/]½˜Çž ¸-þsÀ]oý°áü¹3–Ã_úu\h®Õq<–‹ïE€-~HgÅHEg#z\à(Îõ¿Žh7ˆkù8&ˆ©¡7=Sœ¥jËåjÌDWO†[ÏF»9â(Šw4ÕÔDmæT™wTS¶òݘ›¹KÊ¢&s÷•1 Ê`tž‰äk¹OIÅëDkñØÐº†Dêî‚\SÕXÈê­¤I¦² ÝP&Nì«Ð¼¡†«xûZŠ )ÑhBe%Õ³˜È(Wîsíïk{·„öLƒOP €¸5‘í!>É"mõƒ£~¸CÔÏ¡€gXð€º5‘í¡d‘¶ƒúáÎQ?ÚåÊË€¹5-®í:Îv?Ú9âÇ;DüNÐä…Ìsk"ÛÜg‘¶ƒúë£þz‡¨ß¦ˆ-?Ðà%ü©[3Ùìy¨íà~¼sÜÝ!îc!ù•òP·æñ{Q¿Kpl]˜8WcÛ'“§÷÷¸Qª’Nñgd²yOÇjOa£ÅÎA§¿a+áé>˜}-}è÷zw4žì—y%èN dkOváÆ ’Ô²;×¾O˜] ,OÙzî>¡=C §õÕ5 ,‹c‰(ðl5ÓY30ÍEõ ÝP‚}Ë~sIT±%š „ê^ŸÞ‰K¼X¹3k³(6[Ë”eœŠÃÔË:Í&¥öò«Rë4KnEÛëÓÔüh›‚Yí¹ôòš‘ïw}'¾rÛ aKÁW°MÇÏ ö9ÿá[ÿ9ߤ<Ý\ï[.)ësìhã‚Ò8Ã6…l„ 4Ï„þ{ç•:ŸÙ4¥ž0¡*ÛÒÀ†‰ôhZ¶?¹j˜@6f+«Õ\ñ’ {˜òÖ‰õoѲ)^}•ôkßJŸrA#cW¼)U½_¬ë÷R?kÏfàBÈ\kòíŸF‘ž¹Ìmz:5”/JÝ0+Ꜹf_½°á8{Y5”Iå¤Ú㨠Uâ4e>âÕŒÑ8F¦Ý£ÑÊR¬ž²tê} ð,ë¿xÿþýcý¦ç"®7€A mso2õ¨ú0*=.yCM¹K¦ÖBStÛxÁòþŒL¹cúi2GJ>³Aнp¼M–L-&`ß—·§à@~uzýÝÕR>( ךp²æ(Ÿ¨;¥tªšƒhä&îƒ,Ž˜ _P9Þ­|¾ÓÏê\Ü0ú¯L²j/©,{«}tÖ’”‘* ?À8…Ä€’i\ëÌÉV¹w'4Xê&oï?¬J‡Ð ñûñ‰”3xœµX[S7~çW¨jÊ@§¶ ÉC‚×Û4†vHâLÚ§Œ¼:¶U´Ò"imh&ýí=Ú‹³_ ?hVÚs¾ó‹¤=Ž~¾I™‚uÒèÝkw(!õ¸G? Ž[¯éÏñVôÝáYð×ù™x”?ÿðîô×>¡-Æ>¾ì3v88$ž ÞŸ —ÞÊÄ3vô;%tâ}vÀØl6kÏ^¶³Áì& ìµê±å ¶ð‚¢µÂÓ®·`ïÍ›7¥ BŠ® )™? à"Þ"$JÁsPZpËiöö }kp›%I9ëQ7žÔ.I&Ü:ð½ÜРôôŽœ&‡xœÍZ[oÛ6~ϯà„.؀ٲséÚÄV»8 2 ]“Æí¶§–‹+%*$åKýx‘,Y¢7‘‡øAÏý;¤%ò Þ-"fˆqLã¡Óïö€bŸ8žÏãËÎç·7øáüãhü÷Í…ä¿ù|výû8×ýópäºçãsð×ÕøÃ5 À`Ø®{ñ‡œPˆäÄuçóyw~Ø¥lêŽ?¹ ¥¥¯Ä²Û×2Ý@Ž´¦HÇb>´(è¿}ûÖÈ9Šé„@å+аºS: ¼=(-ôâÙÐÑX XtÆË9À7OCG …p•ÖSà‡q$†©¸—ñWëXä= ž€`Hè´›bp±€QB¸Äòò2OÜM!sÌŒ…»bÿyà=J#ÁñWÀ:\,¥Pˆp€neÞøœ; dè>ãpõµ«ÉÒ©k‚8‘Æ'”ˆ  ¡I``PÌžyýüyŽJ¸{½U®S—øDº{˜9„ã-ºïŠFhàBìG8¨8+6­ñŒñ7BÀÈPøïÓØ²Ë—9mMFf2ðä…©‹J€7ûy:ÉŽg‡Iæ­/– ‰s~AB:—ÓÎǪ8íá«4žVð)ˆ[˜%pIÓ rWgtq­éuôBÊð7¹xBb8þ9°{†Šjy³û²Á˜,QýÜT6.ÃCÂýpxÿ;­¦ppp¨$¦¶ÀaÎ[U—“°)‚†ð㸜™DtþAÓö,‚¶Ÿ=€*`¢;z 9ÏFã+’±åѬ3NŒµH8KÀh»³¥í¾*‘?1§ ¬¥ÈøX<ƒµ Dl—q9O¬áƒ#É\±T䃶£Vz¬™Z"†,‰Ï²ì°'ŠË&ë3ýòã »Cd`;7÷þ“Ò €<š3þÇà{s°ótè³ü ƒ,œ„Ê2â$˜ý„=jCÿŠÊAýy4Ê`½Ój„“»£éàÝñ©þˆÐžÓ¯t›óuD_À_xîÝ<e—Š áÎÑV²nµ-ÒF7ÍÛ‡û‹«×H¬Ì­RÒSö²2ð0’ôÄòú*ü…À†… Ô”ÉÒÕ–yz¢¬8ÝI‹›K,©SçyÄ´ö ·ÞüV‰™ð›¿WìðŸŠ~?><ØL’É[ÿÊ›Ša‘¾!åðv·@…3Q¤Í†LÜÝžnÀF%»9mO[Q¬¨d¼¶V3Œ~"Hx—zù QÇõ$‚­åˆ ¤¬ÇgÙ`ÓÏ}fQ1Ï{s/\[BïÓ±g}Ç’ä¸Äè©U¥²·›NSÃX žÜ5T¯@•Þ{ûË€ z½#ö¿,‚êõŽ@8ø¼ ª×;¡r°Ü¢p°Ñ«,ñu«íæ…JZÅp¼Þ£Jl}ZÏÛ\*‡…óªyu–M–×'ßT¯|EY ÍF#;ÐéÝpöçÙUvT¯œíÀŸR) Aá×l4NZ'¿æ«…ÎÿóóÿüŽæÿÛóÿíÍÿËóÿ²¹ó/ÒŸ ÉÜÂä˜.Á1–ãm«yýPÉWŽ…Î?]V4>ÿ½œàÙ#|øYÅè×̶á17äEÞú§S׌Ë9­Çg$ÁùªM±¨õa­hp ÿÖ‰\d˜œ•Î&ÖÊ4¤Çf»­GY“êôtÞ¡àqˆÂì´Xäà-Ö KVÛ?LhûG¹Ñ\öœt\ì0-6“<<Ë…ªsèc{¶WÙß}=´R["A;‰ðM¨?ÂôA:oœvë–Î'$µ:¿lÞ?4ÏÏ“ÚÍĨbôs‚‘Ÿ ^YÏâæ¨oPÙÅ#-`pî̵PGÖµnQ7™ã3 ’ó1»ø÷ÕÉ¥nFB´z;bÍ:þ¢Ž M*Ù¡_6[:sN^RR˜jŽ€$mêߎkŸ“BÁHŽîߎFÀK¡€$‡ÉoÈmÀK¡€¤ß‘›™B!Q! ó¸Ÿi@ *ñÒ²œ‰Öˆ‡bWÒ…>xbQßÍ.`9KEE¼š"}¦_~ý+Ü[$˜œZüð¡S·™ §ž”ÌIkœ65Ÿ`¶©ajƇ©û¯i&ŽµÞ ÝŽGX8—E“i‚!=ß ¶†êeöØîü°qzh¡´ÜàãÑ!¼½§ŽÅ-UJ~—wQƒôØÌ–ŸY jç|ÿWðuPo;]:{'b›È°¶õG™Ú+aÄ&0c¡è3j÷}©ægú«ŽŸyX~å!ª{¸ðø´2Ô “…àåX2œ ²“$1 Òì†sÔÉêîf –¨E&—*.ÕB‰%u 8y¸x¬I­·úËaéåDrìvh)+¢£ ÌnÿëÓSÐ!ÙìÚØ³Ã¨åpiê?s7Ö„`a¢"ÌreIˆ'æÙõ6î¹G3ÛLªÿ>ªª¾F(ÁT«ç¸´-òKéÕŒ RÄ-NýåBÜT‘Š>¥š›—È]§ªfʲ j½L«A.‚€`"dD×Ãwê·{;VdD%é©Ôƒ®˜Ó¼J]8*ÊË?È” Z§ÐFlèúè^˯’fSÄ•)[µN…Œèzø./¡åyô¿)bË”S[§ØBFt=|——Øò<éß±eKü­SncNt=Û1ϸc2ÎõX~S„œ%§©~ß¾.|¨´íZæ9/£–5Ÿ3Rø£ÍÖU¸ì«6öLxj+‘˼Uævù¤³ïS“„Ä‹fÃÎHPÉ¿{ˆÈÈ«­È|Å‹üRóM6n?·Ò[ÂZUýmF¯èúNR½EÂ×K–Äæ¬þrªÌ‘˜ËMÞ;¯÷ãËA^h1w“ÁZöbÆéL¡Yª4Ù¶Ì ¹×Î:§“3õ‹ØÕ%Í®mL…5Qå1Lg=WaÕÌß% ”‡ÊëLñÍ‘‘lt~¶¦`9rˆ·È>"?üŽT¹"I„ MoXÏ'®»2†˜w<Å’HDPÝñh‹ô'‘¥’E½©*ëÜL8o?¿š›_¾ÄùGÞî…³Ÿ‹}aÖ\kbcKÇÈ G(Ih*bóq$C0¶“>¦¶UÁÎôŽb¶Õq¢üm@¢À ø÷hsµ§Çú¤îqÁøòŠ£®ï3}ãêvU³ä’AÎ+ÿ(.7 `M%\ofmÎz“ÌEYU-̉mÇm,R«†Ë‰ºzÑ¢ýàò¿¯_¿&^þ7ºðÏE bYœQ«v¹zT—Nݱ^è½¥ñÕŽ“ÛkUÉÃùĵÑ}Ž}Õ?Ã&mðâuæ9ít%Ú6áíÚÛÝÝ-ííVöü[£÷"_]HÕ?Tî0ÖQ—S‚`]#~!ž6åeÐ5gÿ#fP³05`”[ŸG-RðÑÁoØñ°=’J@1v3dðÅ{ã‘YCÿMйÚÖß’$¹[ KÖK|¡|9pxœå[ísÚ8ÿž¿BëívMgÁíÍ´ °%®¡²Ý›Û›Œ°èj,Gf÷îo¿G¶6áÅ!8ÉæüĶôüž÷G/Vù—Û±‹¦„ ʼŠQ* D<›9ÔVŒ«^3ÿÎø¥zTþ®Ñ®÷þÑ9G# í;Wg­Oud䔨:U xœí\áSâÈÿî_1—·ÏŠ["®··*r« ï¬rEW<ßûdÉó ™83©­½¿ýzB I Êz~@3==¿îžîéi¦úûKÏF}ÂeαV)ïjˆ8&³¨Ó9ÖîZç¥/Úïµ­ê/f½õßë3Ô•Ðþúîôò¢Ž´’aܪF£Õ@ÿù£õít+95¥aœ]iHëJéÆ`0(>•ï­ïÆ‹¢RQÝ‚·%á÷)[ÒÒ`4`ÌÇ3TFý4ÕèÐÆŠWâhhüNÑ Øªm!T퉑¢R"ÏíkuæHâÈRkè ™£§cM’i(ªGÈìb.ˆ<ödæ ŸŽ¤Ò&µg"\tˆ,ŠmÖ)›®‹Î^pϵ :§ð¢“Ñ“0<Ì%‚ ‰iLÚïT%EÓ¦ÎâÄ>Ö„B¯.!RC ø1…ÐP—“vÐÂð_ËþÇÀVÕM³*ñ#ŒþȸEø±B4‰m»ØÉ1x.6Ãçµd¾»ûO…–äêÅB¦ <k.RQ&\C}lÓè† (Ás­Š†¨c‘—²/‡Ú¬Gª®¡íµ,&и™O’ˆ á‰m£úè“9íÛžcJÐÆhóð³X@ÒªÁ W/ €Zµ[ §àƒ¬Õæ €«ÀŒ'ì zضKÂ{ z&J²j¨îÊ8J%ôáÇÄ%‹“SWÍ•JÐÓ¢-ëëÏuËjôè·½Ï-Ð¥äÔ––u~a c$¥bY³Ù¬0û¹ÀøÐêu­[E¥¤ºEÿæEЧàHÇ´óDe Òû÷ïÃ~†jtâbÅ+ñ ´øOÑ Ø©!T‰‘¢’'7:­uæIâÉ|oîÙá]ÅäVZŠê)²G˜ "+9ù‘БTº¤zC„NÐøÓ#BlßGç·xì»5)ü˜$¼–j*±oš+[!EÐ¥Þ7ĉ[1„œC‡!Ò@¸Š˜±…0Ј“AÔ ~ Ácà©l…2–%îpŸq‡ðŠ´‰ëúØ Ý Ûú~F9k‹?(UI®~d»X€Æ}&¤¢L¸¦Ø¥Cp T÷Õ2Ž¢žCn ªÙ˜”-\E¯ÇÔq˜¡iRÊcJ¾-½÷"q’)~%`Šé[šIÙwÕËO¿¨µLÛ¥ö7☹…ã²Õî-0>‹!tÙÑO`üÈ/_ˆí»¡4©LŸ<ËG‡5ü¨ÏnÝ`b¥5õæáTëÃzÉÃ.Ohó”’$õ¦ù~pÃŽÎ>V’@.s¼„ç¥-%õ.j5Ÿcù¨w_Hò¨wSå -o6)û>ÌêÝçW)ZÍbçV3•µ¼YÚ¹Õ|ü°ËÎ6wÍÒ°äü€ÉZ‡ûª—d¥].mMrê1[¿ÚòÔ Cq÷BRFDI•4–2g“6ý`µëÙ•‡À _ˆ¹ëJ–TöŽIÁ€[ü@…‚ÙÍ2¡ù>`â^†}.s¬˜Ë­Ö‰hbá\Åð ­¢vÊãKlz.€[KÜ}À¦w\à×}œy/®Z­„kÒÊ”Qg¹A™NÌÄRtB”5Ô“š>ÝÉñAl8ãTS'¡“Suhó8« [±š°)5wÇÖîdG×#³ìo(Gær@˜yhƒã(¿²~ÿð¦¹,\9¾¶¾ë[‘E}B¨Qú“Á`Â?׉¥w6KÅã·ÛÅþ×ÚB½=¼€úÙ\±’°õãÇ ¾¾‚ªM1uÕ§{æ¦ÏIŽôXnŸ1´K«¹ý4°‹lL³Ï"Óq‚s‹þ´êéÍÌ2|·¿õÚÜ!ÞBÙk ¨¯ñFwÔý|@»Qýñ÷â»ãq¡Ã]ß-í›5ŠéRFvÞg"&~= ?§ŠO¤ÒÌ-“ßb)µm›ª>|x,¦›w‡ÄE!ž˜pRŸpÁø¯TЕ,(=ë:$i„u–¾w-^“N…omˆg2xXî²­:j,G=Aîó]âï·ÅÆÚEÇ,dW;OÏKöÚ#È[M]#üA*{ñèy ¤Ö ŸÓÔû@&[îxde1…°ÿ×õ”9dJm¢ æ§v#¸ßý)ÎBÄ. ¿ª©ï¦ºúçƒWÀå•§ê8áÄù¿vî²ås¢Nz9t7úðáöãFá#Y`+Çáa«åW·êØÑÊi.}t,~ìÎa±å¹²jYrÍ~DÜOŽEÞªþ†KÒ¨Ö™?çt8’èµ ÿž¢ãb±˜?.–Žƒó[ñÎDZÎwŽ›EÖ¶Á³ CƆêÜ·’ˆÔ‘¯ø×ó¨ÃÙ¿‰­i¯Æ¹ x4JŠ­üŒ½ vCƒDgТ Ý[}æÌƒ³zàŠÕ£ÿÛìA rr‡ Ž2xœU[oÛ6~ϯà¸,p†I´Ó>4±¬¦st@»¥«‹möÀP'š”IÊ ûï;”(ÇNì¥~ tÈï|ç~œ½]ÍY€uÒè¤}J@ SH=Ñ/“›ä }›eß\ý2žüq{MJøÛ/?~øiLhÂØo¯ÆŒ]M®Èïï'?$ Ÿ½•Â3vý3%´ô¾º`l¹\¦ËW©±S6ù•­Ë ¨ÅÏÄ5:iá ŠÖ#è˜v£=ƒóóóVÐ…âÁWДl¾ð"?"$›ç$°$0¯åbDÇF{Ð>™¬+ D´ÒˆzXyX‡D”Ü:ð£Úßcü„5<^zù\E.ÈŒKŠª"×+>«‰GZɱš[Ï“ÎsíY‡>ÍXËø”ÔÄ‚QçרSxJ<:}ÎQRZ¸Öœis.e¬ 1óümß[€Q, ¥*^´5Œ²«¸èä¥,|‰Åî÷¿ ™ò6 =ÑÊ8˜ÁR²àJN±/få<ãÑ!© X¥M ò÷fã99™É¢0~H6°†\¾SŠŒÛ›øûZ ¸­qÓÝíè`&‹Ž€<+]M’i¾·H˜¶Æ‹ùÐÜ͸R‰«ï¢Þ UÌXPC‘$äøøøxR€VV!’$¨WÈEgºy£yÈ€æ3žKå0ÕíQVYè H…@üíøŽ€ÊÎäùVj¡êȉòÃOïªJIÁƒá“iHYë÷WsÌkLt!¹2Ó´l¥Žã9Ih\šKí#¤‘ÞÿC¸Š„©Àr¼ø¡Ãìaã¹÷ùQýûøŽ FÈç¿âóiê?Íy èMûÆ]5÷©6’§ÂÌXa{¾asþXØÝÛ åÞ¤¥÷5‰ ¡7~]5u"ËÇ›å†42¸Ò,{Ȱ?´X/q¥ÐÜ‚¯­ÞX}V zÑ­3†­6v|œ—ËËË楑 W\†;ÌbWâhÛ †¹y²ºí·½Òží»ÇÕ˜ã²ë|ä´]~‘àuÐ6Ü{šMµ¶rZzr"ðsHÎúý~rÖœ5+h[ùlKùÙÆŒ½­N™†MŽíQ±9îzËW‹?¡ü¹‘oQ&·Öü ·ýñÄà¶·t'Iñê áG®k®ÚšDÆ56¹gw¦X77Ø´ùÑ+‘µ•6ÐÎ&LMŠÁ›s庻 u~~^Úa j jce9FË;ËÁh!M˜¡È²l:ã÷]Ü“¹a¹ ‹‚a””­.6ìÁËÚAIF•f¦;3#˜?"V€ af¦¨‘*œ¦2AAàn‹§L¨]à>›Èˆ”£'xþ )&ºX›…`:cÌ`d ï<Ñ£L±‘Gw ]·”sŠ  ††R¥Lu1d,aB4-“æÛº IÕžóÔdÝfó+Qö’¢DP RËÌF÷Tð1B’@;ލˆç){èñ;9a¡1:™ð4•¦ƒ–0GÉ´þ ê•=[ð£Yž(½ºÅUÕ·fJ¦1\”½XbtŸ/“© sù‰Ó0‘9"¯Ã7„ °:)Ä2²Kß´."DG–íIòÜ@Öª”r¹ÄOaY ` x^õlè±±ý¾€Ž«8ÈŠ$H™N/ìœ]ME)¿¯˜ÜŽ­b90Ûa(Ú2S€ñºvD hÍD9‘¥,•» ænBy$Eá¥Ø± ëòìd­ÝJîà®=E¬y .ú"d yC”‚¾9¼¨aerŽŒD3ÍV4…G3Å©¨ñ–Ά¡;7t¹²îÂR«B±Jd˜)H ¿µ$Ú'Ç<7>‡ÈªÒ8=²À¿Üu‹É³Šr*¸6U¤7p_*á<­qÊ¢ Ç'Â>açv+•¹ÎGrz¼D£ mv+ÔFÁ6Û´ÛÞhÌ\ºqÚYIò¬ù›±C*œ_Oûl8ã¸ü·R4N·Å[“a?bÄ~frps2Á+ŪŽä¨T§]öy³Îæü~b‹9¼vq<²¥T:hì.¾Wöµq~h_¼Í*íõYº)lÁ…¤ùŸ Ò„øÜ·»E­†OkÅHÙ¶¹wèz¦¿ŒßçèOMƒŸîÁXžcç %)ÎòT,^¼Ìe ‡+t‘-4O¨xñBÛ@WæÚBï¥ mC=\¡ïái‘¯ûÿ†Äÿx…VÆX­Ñî\kÿ*m¹4*?å/•áR£ëþØw;—­ï«¯÷aìÒYbþ¯/ÛR¤ÿh‰t÷ÿ¶,ñ?ïYì+ff*ÞrÝQ}†¦bvK ;y¿÷¿¸¸Ø°.÷û"Ppiª˜Öq”)Û´gcª“ŸúqΓ³žÕ±PUÅéÉqyðã ^[{ïC°‘ÁqO ÅÇ™A' ÜvÐY³Ù Κ­3wüR7>«?9-ò¥’È”…c)Çö ª¥ «íº-úúÝî"Ñ­’°Äo…9¬GëbÄk"ù®G„ïi>£¢Ìƒg\;BòKíÉP¦ wÔuý ¸ú· ØF؈[‘: ÏxœVmSã6þž_±ÕQ˜ÚJ¸ûp€c¸nZèå†v:ý ØŠ£¢Hޤ0þ÷®l9o$wLýÁcI»öåÙ]'çó±„gn¬ÐªK:q›W™Î…*ºäkÿ:úHÎÓ‰/’bxœíX]oÛ6}ϯà¸,p°I´ÓbhlYÍf'h€´ËÛi‰¶¸Ò¢LÒq¼¡ÿ}—eˉ?‚¡bl~EòÜs/Ͻ’HFo&Ý3¥¹Ì»¸61by"Sž»øãà*xƒßÆGÑWýŸzƒßo/QfûñÇ›ëÂ!¿¾êÒôÑoïïo ;£xb¹ü€ÎŒ)Ú„Ìçópþ*”jL¿ËÒ²fþVòÃ寽þ÷W0r(ÿõçÛÏ= ¥ï{”^ö/á÷›þÝ- |qFdŽÒ«_‘så)¥³Ù,ž½µ)hÿ7:÷(¯>#[éÄ¹Ë ÞV]‚†)ÛÝÐ999©õˆ:•ÌÛÊÅ—Çà,O[ɘ;%â“©xî’žVŽ+õ_JN «W]âøÜQzÙˆË]wê†è?Ð Ç 'y:á¶„S3¡â¬,ájÎÆ¥äp-ðuÀë•¥^Ì1Úˆ&´V÷@R¨'0\v‰u/(<âÜphM0"³–ÀÈða Õ;®¶Ñ–„Ö¾%Ž ðÒ697]‚™Ë¸”%Ëëä…µ-YÖ¬g"w#Ìr»ý£‘3þ•C&™ÅH—Ú:Ì g&E„È04¸N *çó¸ ~z£Ç<¡,…ý±ÈsíÎ`!VAr?I ½zg‡üpª2‡\Õ¸nöÖt0’yŠ/ã_>i2ê4.TA&éÖì`Ø:è/ÆC5âv̤Œìtôv¥/¡^Ë—AÁÞÞÞ.¹(ç63¢ôVC¡B.ž›Ëª3’zŸs¿á˜ƒ‹þµ’ÒðF¡PŸ5k3=c:HJŽZþŽàbèy×Ü¿ØÁ‡p‡ÛàâÅ›º‘6p'âçp¯%~¸pJ7[¯®FÛJ£3n­FÞ •ÉiÎa_º³‡Oe‰(Ìû¼_øüÔ oƘL1«ÞÔG䖞ţzçâà6+øv¨×X¾èH*” "U$¾-ÂL‘­Iè’æ¼1?52[|OÙz¼T? çxÃó‘?ƒÈŽã¿Âñaåê?ubÃóm¯øœgg­ï),ê5t剋•~,FnÒ\gôCü‘NØ’¡œWIâÙ¾ˆeY¼%ž>"‡g­­–-Ë‚ž Ã39L ×d°à4`gƒ5r@.˜ÔÅ*ÍðoòÒR˜¬<|7ù¬¬Ãfrg‹¦ré{æë=ïúÁš;?= vaܸÊáÑ`¬¸9ÜÈѲn*êÖŸ·iÕñƒXët¶ÕIëÊxÀqó…ŒÄ½6úÜ:X­çÕò9\I€–÷íp"Šv„&m({ºí*ƒî ;¾ía6¡×TžøË ç#I wS£ÖÙî¥ÿM(6?T±U‡qq±«Ã×]½Ä1œàœ5˜J?Æ/}§ßšÍ„^»¯fòr|§8»8©tøàõÃ’‘ò=]¾QŒìgøyÇív;:nwŽ«1¹ª|¼¢üjª¢ã ­ ÿ·\/Ñý¹³AJ$ò:aîþë­.é W­­l$kA [€wLM™¬“×F}8XÄžtþRýa¦­ÿaŠÆg”i_â˜-ÕLñ  J%`!p=“2,Ë(Þ¬ˆ Dþ%ùi=¡”!ñ Cã’H„s¹®+d×UÎ.¹Ý $>¯nt¾l™LŠL¹†L¨Ë.jЪô„eÞn4RÎ\ÃUòñÀR¼©qYb­À½"tÉ7+¬ð^$Š8«îJÑcd\:“gJô¤eY§Æ‹B'؇h‡pà„À'è—â½Ä`4>šÙZñ31WLmÚt0]3²¤SX&qä 3©¬–éý @ŒNÏ9$B!|È,Jb˜ÔÙ³wêÔü‰‰ÉÙç ®( ”SgIiÝc¶(:'÷`•Š8¥Lb´Îôõd›ïA•@ú0"àB,[¶žšnô3_cÁA;‹ô±àFåOú¥Hcw´ 5»Q "¾1^ï•2p´­ox@ÕHôøgKRTûyTU즗åâz¢‡&ÝeãúÜwÛä:¿ä…ÝéI Ê(€—Iò?$½ÅÒÇ‹[at‡è¯l)hgZrŸWPO8‚qT5¨Clóìœâ½¼&¢Ü6ï¥áÎT{"õ0 ËÛ±VعÐéþ‹ó§ ØÑ¶{H½vC»N©FÅ¿uX43!ïwœ8­ jž »©_~M·bÊ Ji[˜›&z“KýÓGqŒ{ñŸ7c€F¶—‚ùF!é Ó7ÞÓÌãY3óÄ‘ãrîcó´f¬iáÕþ }!ì7bî‚¡ÂC»‹ÁQ¥ ²ë$œÂ±•ØÍÎFÁ(¼ºa›Æ/—“im´nÖá¼)]÷]äiðë]‹àð·-ÒÏM®“¢òéÅñû¯KA.b%µ\ë’«ea¬ÊLÀtù¼RÙ¤à…_é\–!u¾!jåUÑ´¾Ÿ[†ªõf¡Ã•/Aõ¯8Ææ²2Ÿ¿ìÞK’ïè¤í¾âdÝ3|G'o¸·ý½+ŽÏÑÿÖ1mT›Jí ßE;½s™,);{höîøì+{ˆnZHËÞµ¼~œMú)óí‹ÛÕõØ¡/ã²ÛÞYÝ|çÔfÖ­ÝÎÔ­5úâ·Ž½§h"œÒû7„H}ž^Ù4ý‹KÖ°ûÓ²ëÍï~UÛ¯þšÚšf.êï«[ž†‰¸v7/^¼ØÞ Ô·%„è_’`u4N½ÒMÂ{˜æÒ§{“sëšg{#jZgÜ«ï|œ§¤ïÖÈøÂ·ÊËÔÀ£a¸¿¿ï÷C{óÒUv”o]9Œc<‚¥”KºÀB˰ßåܺ9«Ûž v½µ>z=ÜÐŽë‚ßYìݹ‰ûp.“½eÃäDþeæ7 ¥¥ŽP $xœÝXmoÛ6þÞ_qÓº®")¶;lMlõ%i×M%.Ú}*h‰¶¸H¢BR±ýe¿}w%KIÜ6À°+ G"ïŽwÏ=<ž8~¾Î3¸æJ YL¼A°ï/b™ˆb9ñ>ÌÞø¿yÏ£ãާG³?Ï^CjPþìëw'Gàùaøqt†Ç³cøôvvúÐ\%b†¯ß{à¥Æ”a¸Z­‚Õ(jÎÎÃ5Yš{ôµÕ “x¸š]+ôäƒgÏžÕz dŒ|å…íÙà,‰ŒsnŸ_UâzâÉÂðÂø³MÉ=ˆë·‰gøÚ„dõâ”)Íͤ2 ŒBÀ÷A _W‰ŒÁ÷­m#LÆ£+®K8€?ÐÀW‚egR8eEŲqXËt&ŠKP<›xÚl2®SÎÝp«ÇZ{*¾p¡ý ì09ÖA ›gæR%\MÜ¢à'\ÇJ”䨥Ã8×;çEfÁrN†‰L“A†¢ÛáÖF3•£ãí(:7ÄÁr›‡+ŒAÛJŒÁ¡ÖÌÂV*y-Ð>`X‚r¹`1#Af ,˜NÑ:O 6dKÃB*øÃøs¦q†•e&bV'N Ä•RÈŠlº*k…SÃô>íÁGDF®ô¼EµÞƒ7ŠóWÇÁ8,­ÿo”ÌáÞA ‚¡?§ý+‹=@ox¡9È ])À¿xl e朴k‹%:Ž1žžÌÜÊU†?Ȇs~-¨ÆÁ~ðìÑë!?\ƒÐ- áËËCa)ÈKŒ©8uÁº¯øô…Юפ×m†NjÛÍ`ÓÚ8wo\°D³RW3”àn), &…³éÅÉ'L~Ò¤ôFžëNlw¬Ë‹*犩n­þºr>Ô¯èAM†-?Ø5’ÝÖ(QØ\ÕKß R¥Ù’w ú@ï-ï 1Ÿ1ˆ] ‘>xœµWmS7þίPUÊfβI>|¾PŒÒgÒ~bäÓÚVÑI~›NûÛ»:ëˆ 8vÊàòíiŸÕ£}ó:þ0Ë™€±Rç-Ú¨Õ)<ÕBæÃýÒ;ÞÓ#†^ @òxœ}UmSã6þž_±ÕЮ­­„»Î°}ÐÄ 7C €éµ3L;±®²¥“þý­d4õddíúÙgWû¢$ŸV„n¬PmJFñoKU‰vž’›â$ú|ÊÉ“‹qñ×,‡Ú!~vóûÙç1ˆÒ/Æ”NŠ üyZLÏ àÚQ:Jós¤vNPº\.ãå‡X™9-®èʳŒ¼Y¿l°‰+Wôœ``­Mÿƒ`´¿¿ßÙ:ÌÇÊ[O;ÏÁY• ’†;ž%âßâ!%cÕ:Þº¨xÔœ@ÙI)q|å¨g=„²fÆr—.Ü=žhàqÂIž}ãVÃø—c±6 òk´äp"pÙådi‡ ÏÀ÷ í(<™í¿`¸L‰u¯9wFÔRZK 6ü¾GаÆAñ$´;_âØº½S¦â&%X½’K©YÕ°—­fåZ^ŠÊÕXéáðGŸ&güRA)™Ålkegæ†À“bŽMQbzPÎÖ$ÚŠ¯âP€ìT5<¡,ƒw¨*åá (¹íÇR¸ÓlÁß/ÚÒanZœ¬u/l0“U†‹ñ‹O@–Ô£õB’I¶¥B˜¸ž3Ò® läŒìâ®·Ü^„z;?Q;;;Û‘QÅmi„ö±C¡I%ÖÃ7’ù“·¬á^á˜SŒ§$Úð5´Ôøùtvv\äÓzàU“|–ŸOfÇÅ)üœBt—…ß— æ T¾Á™híîeñÏùÕõç‹ó_àï_ooãø§°¼?èͰ5æÜÙ`ušOìÕS´þ‚5W˸†Ûðõõ3åÖ²9ß‚ºÄ´ܺ¸ýõÅÍÕ8Ü rÇxÈm¼Ï®ÿôÂùvÜSém)ßcŠ?kJ¬àÊYn“Z‡•8¶X?qXÁ¾ôGGGÛKß•[ã”&8†ƒÃî4^ô-ðj¦Ö¼9•oFöyº3œ×ukô䤛ߞࣷï}H~ïH6Vúшyíà]‰ÛC؇ÑÞp´¦hÓxoÃøÍÐ÷÷0þ5ðx®ÔÜ_Fª¡úUÊHv‰òug(Ą̃¯¼t¾³ß8ÜŒ6ÄH^$©W½"œ²vÁdWŽžñÅMÐxÊ=½SÕc¸1ñVÉߎ1.ÉNüÓÙ§vïÏë9Ô¿þrzù±MhĨ׷mÆÎzgä‹ÞÕ%A䯙:Æ:¿SBGÎÇŒM§ÓÚômM›!ë}f3o¥áaá1²%¦&œ xZyËm룣£Žz¥cÅ=WÈ)yxò6€‹d‡8lj·ÁýXNZ´­s¹‹zó(IR‹:˜9æ­6I:âÆ‚kÝïOXiÇI§ ¹[cÒůXW‘ÎŒg…r.qy É2¯è8û¦¸³… oLÉüŽP-jÝÕGއŒ‘ÔZJFAƒ•k­||b¶¸_ìxík#À´(F/¥ . ²-xZÉS)Ü#]¯ÿâÝäŒ_I·èíB[ç-ƒ¡d•bR¤è”“˜B20«•H.t1ã ÙˤÚ5ɃZilPüU)Ò^¼Y£?ç©Ã4\FœWïV0èI‘àbüâÄ£Fu…ÒÉ4Y!t\oŒÉ+€Í¸R‘÷r}cæq¾¢ˆìîî®×ŒØÔÈÂs'Q„!'ÕåMüÍsžá¸T]Œ·Ü‰ •jZ¨ˆŸÆ©Î2 MØ).ÏÜñz[}Xu“'¦ñìÂè¬ÕHñg9ÀXÈm·ssÝëÜôn/n·…"Næð,tó±yªÆÈžrÍîW)†àö†>îëðw0Ÿb Ф”ƒÞªŠ/®¥$}åÞÕr}'y }Ê„NÙ»Ú{vå ¤ ™Ø½D¹ƒ²O0Þ|u¾,“è¡üIt{Fru­{}î¶y_WM¢{ƒâ©ž­0ßžú¢¨°ë®Q/Æ}%Ósž–yVQ^dÝã’ïßåJH÷öÓéovï;—Xau\áÂeÞ¼ËU2ºÃ/©ƒ°_pƒcR+(­lçã¬ïÛ=lî‡Ð­»÷D7æjŸÃþƒCö¿›…‘îà‘7_³¾792Ã^ŇÐ|)••² ø<À^Ìf‹ž³É1R·™6Ò~¹ýlÌѲEm k”¬ÒÎnN˜‰–¢2ä Ïm&Ý•ú|Ü ®û#^‹öç\žo H•¶à]½5£/þy.~¥‘“TYÊpÓÏ¥8ç„éäädý€´Š œecV šÄÎxÑJ&ÏjÌ]ž]Ÿ ¶ßfà§ÚŠr0NSn0ðÎãà 8Hµu17r8rd/ÅÇ&9¬×ëÑa½qXΚËàÃ%ð“Ñ8þ‚ÚPë¡Ù±¾ tÀÌÙ²|vûñt¥"®þ ÒPf\f[r¤+N ¯¼âyÙ„}8‚Å•y9l<øžõµ˜—ÿ+°ð“ÿ¿Ÿ‚%—yètžl\ÇUsô B˜ujb%H}%– Æ^:š;†ãJ>š )]± 0 Ý¥˜bMʨJlïQò{ÝÜ)™f¤èÅKÊÖŽñ÷x¨t.*äñ=aC‡>fûÉ÷ÌâæWñTƒè–ǯ|Ï -B¬“*úÿqKB³=ŸÙ‘r!þb®úô]Éó3"„QZ¯y5'ýÀªÊ:ÔbB[&ÊË¿~zufñ±xA­ŽRö%)ÑEÕ„­0ž}[Î÷Ïf jDßõ׃"^Šå²®yxÅ䞣¥%ï®Ãbœ&wÊ*VئÑR‹O邟;Û—6kh.vÆ:#…þÏ"J¹¹HIÓ¹Jëó¾™ •‹à#·Ž Š]t!÷m-Ð2?Ì™¿žAÓn#ŽÝÑ)å´*½|¯a;e‰o[¬¦_g‹‚§IüùʧIÈõÊäõ‚_]Zµ¦™´,¸3Õ׳‚nA9{sëemC‚i|©éhÔ‘|Ô"tEÑB„Šów©´¼“P 0ï $ò[ ¢Ìi†Ì5oÓv¡TK„Z¹í½jù@/Êâýe ‡V§yË7Ñ”NÄßÍj>2&éâErÑ)ß”%F¬´"ºÀ ¬Lz³Y’ô.$¢€l3•¬_³Fd­ÑH¹—Í ª4îE“ˆb–n—5¡ˆ YDóT¯ùƒ¬ñëÊdÅ£Úd/ùÿ„öì .±‡ÜsÀÜ-‘‹HMŠã6‘¸•A’ªæb³ª²¬l•¨Ú†KÀÒ=[ÞôÑÅÇg¿õ<FЪŠ}YÕ$b­Â0÷ðÛ&¢™PƒÌ™Â " TޱµõÄé|%ÍÊn`!gR¾âHé]+³/»°”ì_d?®œ}¨SQHÌxh6…¸OŦ®*ª%¢U%­ót±ÀvÅ2|Ò×5ݸµÔÒQ ¨AµêKZ–Ó/(âªÝð„p¢Œ(Ĺø‰Yýµœ‹ÿpnp¿¾{[£µFá"H¬•M¬£ky™|„ËM× rÌÏY Ó“åˆÅ<* h Y‰]äáJŠt¬»iiåF#m3)¶Ë ªú„@pµá`øëûÁeýPÖž•UŽåqµ–Š¥9ݺ©Md+÷Wõ²¡ú5Í]TaŸðëµ*h«J3KÁ¬î¶µÂlR©ÿóh³÷V/¢×ÛóÛaGG YíèˆÇš:ã˪TÔ«Æ4¾1Sä 7•A…lŠí{%é üê„ÊâîÙ30 TIèÑÓ¬½dÍÙßeþU­“ånQ73j%‡ËøLJQ.lUkdT4àE·K^_ÇÚ‹”ü>±Üy€ðÛ =–/bEØÓ‚ ~(û~*»Û–²›«¾“NÐb¯rX}‡ŽÉÁÀµšÙ’Üíô¼,ðJTtaDÕ½öªS™ìÏsÌlóm­PÄo«Jõ)®®’Õ‰”šhî̘b^n9ÑÚVQ¸Ö¡f ©Ò$еªÎ´нNëÕÓ‡Y€ |…С_Eø~‘wécLçc~ìÎÊŸ(»Ö®ñImRòxZn¥ø>šaÚ¬’ö”`?^v¨S³žŽ{ŠE&]°Q*OŽtîÛ*’o5y3Šq[ªÉV€¥Ð] q¹·V»_2ßLxÍéUqTŽìC ·•­î-´ìÔZ ¥õШÒtnm«økJÑ"õÿ䪿+ÿ—\8Z—$üX9÷lå”w°ttoþ¹±›ˆVë;þÿmËŽyÍŒxæá ðÄzøùú# Ìç B½v¶”êœïLÓ'dù¹€ÕÑ-õ«»TŽ6LYÇ€+é‘X©vÊí…eU£JþtèûÐ ä7¢»è&¹—ûåË—Š{¹ã»¸CÃfÛu Œ¢ÑpNø#¿Ÿ{íâóô–uùêô{ÕWW°†”¤4'ÀÍø’õÀS>?ÁáÁ)5G§8ü7ÃkÌ)þÛë³§†Ùµí¯ONmûÍøñ¯÷ãg`\R‚jÛo?™†9§4Øör¹ì-Ÿô0™Ùã/ö-‡rȧ%»‘˜Ós©k2l #,ˆN >þ<žgòApZa`Ù'wt`CR`p(]x½@7'æ)( hwü-„¦áÄO'&…·ÔæP gHéÉ‚Nÿ†-àPD=8º†Qh Œ¹Ýž†ÆÛ[à‡4Þ!öfÁø)²€PE(¢ `P“Ñ¡Cáð<\z'fD¿±9s©iPFTB‹E¦1'pšŒ°Å{O|ÍHÚ1‹C & ÷’“)О7Öaò…ÀIŸ—È¥s¦ì~ÿo\R”ð7×pËò^ÌÃV©/¸4Oêâ—.&¤À`4†ùWöbÕišjXß±‘°¤)ˆ˜ÇÄñra¯H2‚8äÈɉ¹`9a*”©s¾ùg $påq®õaù½7ĺ5)ݺ})òèÀm(e•Hn ­²f•U¯ïHßÅFñp è®´µ³O*Q=(d%tÃKHøgi_Mšd‡TîLHýx~h%ú¨ÐÝ~“tË|t—X÷øvÇ,ÝìAln†¦ÞÙÜ}_ýŒõ«¨¼…:±â®Ý¸f胜ÅÕÊŸ‰Õ]‘VœîÖ`»f“,²$4ÝG€0ÿ€çœ•«OmÕЕ[oƒÖ'cROÖ-%Î[×jLÅB¯-#±Ç,>¢à¶ï\Á˜xš×0]c5*ˆ./H3u±ÂK)Â:yYª—z2*;}›~–AhНl«_«ægóW3 3ékÝÅ6î…,ιDº_à:Œ°²bЦO§“>¬KË¥ °¤Ö(¶ô@'¯x’Å’+Fžœã¶¶Û䔆Ã:” «UF*ù×ìD(-óPç¦Æ˜ÎD–Çys=$8S&¦1#´'rm¤ …”Le"5ØÃ áTd0Óé=ÔɘÀdŸ>„Õp¿È[]¡ i°¬X—³À­J³–í”±ð¸5ùŒžAç v‹Qx󜃃‚Õ§›ùpÃèo%eéA,z4¶Á– Ä Ü…!WïpPି¬+e›üÓð1gKX?<å¾þ£2ÄY8ÅÀ{CÁÌû—EÙ.bXj¢Žp‡3’þ“´ 0n¬£áƒÍpŸ>—Z!‚ãµâ­mBÓ}>-–…®ÆÄÀÚzi·ÆúV äzCHUEöØŽ8ä ®H˜KD»l¦¹N¤p êü™§‘+Ãϧ+òË£cúð¢ð¦©”ÆYíý-›Œ…=¤l\X÷vÁã‚­Z$»x»0ÔØCZ)cìêìýÇ£ó­Y‡ÙjV*ÕlTÆó¢‡@ÆMØÞ~€™2ÌÝ_21Û‰ŠpþézK¤'ÿ~;¹XüŸ5Òwåû°HøEUnq—T¹×íZ©"!awݨØZi¬Gô(pý7ìxÞc“’þIàô¶¹­Åƒ¸PD¸%lŒá™&ñ’KûÔtD[+LõmcçCÙȳˆ·©‚ ø¨á¸Ôv™`1ÛÎH M!csbDxP€*nÓ,Ãc4ë×y9Íwñ†™_*ÿX¤!ËtNcÿ(ĽpèØ>P©dþч›wÜ4q7v–òÃ!Í4“7¯n”­±7{®×ú˜ž ˜rDs=Ä °þ‚ܘ\ @jCý’œsš+MÕ-óðv’;-yðT¡5h9¤añv¹3NNª;ȱÑüŠ™/4ÚýmÁ‡ž^X&†ûUWÆKséBÅ4½N³–HbQ³!½õô–|ÑGAzÁ6»‹òcL,ˆB óX¡„/®ÖÄòa¡ 6iÓþÔÖn¯x¼äÌÙ¸É^·g㥆\²©ÿ(k.8pæœ*ð±Óïj냮+q‰œgÛ˜ºgßšBSÛ(\®Í¹6Û¸Þ¼/ãfò2ÈÖ¨ãù–½ˆ»?¼,fVÀß¹¦e­ò«íèëøpWôˆ@Ó[à¡!…rȦê¢Ã(µÍ‹l½G46’äï1ƒ»p7É€0ÝŒå¯UH(å¸#‚”ЖöÅp¤¢&,ᎸR=ÕFTš¬î­³mpT×5y©{õ$-‘Ûúý³D?„sÎ:¦1Eᛦ;ûõÎ1¨¤ª&×t¶¬ùe±TwÉâéRß›î"-p»oÞu3Ûkkñ4s"´²ëOwÅÊŠg½Ò²Ìxå{¦ë{½¥½$4å2ÙnÚ&iÚv–«[ÂmÞ5ëæ›¿ÔMÞ¿ÎLÒIs­Äéût UØÐà— xâKôh×U¶HzשgÄÑ£Hd:C‰·ØœÏ|ÊWœTV?œûRpúQaÐѲ<Õ´Ä=ûÙ #ð ç»5bÖ×ø\61‡šd3„ËC²·³³ÓÚÛÙÝ3§‰ÕÉ{•ÉsߺèBdØ1pØ)ó§ù]¯Ú{¡KU¡éÜ‚Un ^MIîÑ Á š³zvk º¥îýžˆ&æCMÝ`ã?+ù áá” ¨$+{xœåZmsÛ¸þî_2©kg"Ñ/™NbK¼¸¶“xÆNœØ™»öæÆ‘„š$h”¬vÚßÞ]¤H‰’eGé¥Sù,ö}÷Øùé>‰ÉˆIÅEÚõvÛ;ai("žºÞ×ëw­×ÞOÁFç'ŸŽ¯ÿzyJ†Æ_~ýËùÙ1ñZ¾ÿóþ±ïŸ\Ÿ_>\_œ @®´ä¡öýÓñ†Zg¾?Ûãý¶ÿú‹Tvqš»l)3§éȃÕÌ"ÀXªº vß¼ycçy8è ¦È+K=R^! F£`ƒNÂ4%H¥Åîr>êzÇ"Õ,Õ­ëIÆ<Ú»®§Ù½ö‘ê! ‡T*¦»¹îƒüÄG´ZäF(&9Yš'LR-d;Ì2Òj™•4×1 î˜ÊÈù ƒ¯ÌàÓr09Ž©Rä ë3 ZfßNÁÉ1Oo‰dq×Sz35dL{D޵P) %뻾ùm›ÇÈ¡o%îhÚ‹é 1ÙõÀž!‹ãŒFÖ¤î^e4,îÇ<ÒC°ýÎÎQqZâODBäµëeBi¤Ì¤GF4æp“÷A‡:†x±û¶1IðA$  Èf£HèCR3$™râØ*„©ãûyjpÌêŒwųÚÐdÀÄT@ òçœèN·SqËi;‰‰ÐÕ~í'"Êã’© {‡Ä;>Ø@:M¶to#>'½ª§nÆTD<)”¨Ù¶8¹uŠõž*/ä$£ê…$I*ÀÝ`ñFPpêHA¯‚DŽY„ßúïð*æùÐfïÅ•^©(^*øæ&$³L§ß–6ïOQöeÙXÐS C·7#Y‘XÕ.NRUõ†T–Áýœ‹W€Ûvào,Ý*+:K­œy8§Gà46JøÁ¼®úM#m8u%š:;ûLJ–!8Šë[+‘¹ÎàL møn‹+zs&A¯:ØÖî'Ÿtq'K!·.1µÛîÕpJVðü²à°£bHÌ’˜~5o¥ÙT5j¶õ×’i,¾eI<ó݃³œôÙ‚j.yžìÐÌZŸ¹V_*Òp±AµÖÝŒxT²¬0§”¿såκi…Øf}Ò—®pЯ Êe5¤Þ°nïòô磥Ñõ à²<½¤XçnP‰à‹ ‘¢€üÔ7ìZŒpËi$õXgçrõé×ϧ")§qcëûr­ÎÓ/½F”2AAÛ|\•WiZÔå•nÿçÄÒy¥ûÐËf–sÔ?Zµaû¬¨˜[¦é?6±Ö ý÷3Ë^ã^¶5Ú‹è’Æ¨Fjwm"fæ{»±Ê-?søP’`ª=׳ƒÿ L p¥x¾Ò ¢ýw¥êm­£ügt”K-¹.8U³Ê8¹µÃ²ýýýúa™CÑŽc_a0âj©†fsI7þ,Ï4ž÷³Ñ0Ü™b…{fúi¼UüVGJиº¬¸ƒ 0‚‹þî¡ÝV«ÕÜmíìêd™y·Ä¼02µ'b1õ‡Œ Õ(zON˜J¸0'$- Cßõ•^ŸÃsöT-Ó†æ–ÑjŒ^ÅIöÕœÀ3’IjŽÄJ¬ÌQíÆÌ÷¸Ïâ;=o†¶nü ߉óŽ Ñý?Ñ¿Eÿ¶4xœí=ksÛÊ­ßó+öê´©sF–äG^Ž£Ö±ãÏMlGršôv:Š\Yl(R!—vÔNûÛ/°/î’IÙŒëôœ|p(r‹°X,€ûü6È? _v¶zƒ¡¡-‰3’jxœíXmSã6þίPu”Ihm%ÜMçHÃ59fà %7m?*¶«(–#É„´sÿ½+[Î „i¯3dZ>KzöÑî³[Þàäa,Ð=SšË´ƒ›~#–F2æé¨ƒ?÷Ͻ÷ø$Ü ¾éýÔíÿv}†øëÏ?^^töùåm—^¿‡~ýØ¿ºD@€nâ‘!äìF81&k2Nýé[_ªéÿL,KÓš¹[O6~,‹x—t8xœÕXYWÛ8~çWh<˜‰hÚà¸@€iÏ–%=yTl%ñ`[FRH8sæ¿ÏÕì,P˜%>‘u—ï^ÝE¾Á‡i–¢[ÊEÂòŽ·ã·ìx_{'ÍwÞ‡p#øáèK·÷ûù1I ?ÿzxú©‹¼&ÆßÞt1>ê¡ß>öÎN@W’'‘Äøø³‡¼‘”EãÉdâOÞøŒqïO•”Åfÿ6…æñc{ M+`¹è,°óþý{Ãç)¢vJVš{höOÉ $7 2* RRšôfœÜv¼.Ë%Íe³wWPEfÕñ$J¬¤î¡hD¸ ²3–°a-G&2¥á j£3’äß’>.í°µµ¾²£ùå`4÷ ÆÌPdY<6Éù}wejXj¼þ,cE娃 {0IJ¶Q”P¥™éäfñ#Rðn 'Lg¨…Æ”§~”eèìŽ3ÁÐ9‡K•#MXš™¢F*RAë)),™àéRLt°630H3ðÈ9iQ¢ØÐ!Hqõ‹ið' e|¡Øx UÌTCö"&DFã2n¬3Uã)M™n4¾µ2e/1ŠÕ v&µ±ÌLatOAQD ŒÃ€:‡x³¿H@øQŽY@hˆÆ<Ž¥i£9¬ dÚ?ºåÌü0O#e¸lq^Í­Ø€’qe/V€0HšU…È8|6C [â=Ò ®ÇTOçg·)…±–öçàyhÖ‹™ŽϬ÷ÈóÀ(æ÷Õ¦Åmì)3;a(D†8÷‚L± T„¿¯#9CZpH÷ì*:D§C[ƒÕþóÙâlˆ®`Y€?_ ¹I¤BWÊý]K7Æ­’*Ô½'[ƒo™’ÓZBox‰¿wl6…‡+‡ ŒÛ ¶¹høVÙWÖAø}¼6*GÖ,GY„°ç;æ0HâkpßmµZ®/ÿ.eÛJT<_W3ýuö}‰þÔÔx} Æò|Û;)ñ^.i,f¯^æÒÑÝ:KfšGT¼z¡­£»+óâÔòê…¶®î®Ð÷ðk‘/zÿ†Äû„VúXÑn‹ÑöSÚühT¾Êk_+Ã¥F½5°ï7'š?ToïÝ,8ÍÇydþ¯ÛR¤ÿh‰t¶ÿ­9âÙrØWÌä*}Ùq½ úøµ}øÊw ‚ÓÓÓM ‚²)!•Ç ¾\à Qvhz/U£g¹{󤵳è…Q•ÃŽ—}GðÎÚ»=ve6S|”tÁm5 ï¨Ñ<*º-ËÆGKÆOšC®f"3$åÈ6­ l2²h ØêÇáâÛÓ~N¢k%g‘û&~´á²·…xE$7õˆðЦ9eBãJÇÈ-̵'ÏŠÎt¸÷ð ð.y~xù²óáâxóYçÃûÿstvxñ—ó×dÆ ýù‡WoOIg³ßÿ¸sØï]‘Oo.Þ½%€ŒY컬ß}Ú!c‹½~ÿúúºw½Ó‹âËþŨÿ ¡la7y¹™ð>=yˆ…ÉË[ÏŸ?ý:Øh/pWvˆ¾BÔñ†ÙŸS愲I¿¦þÕËÎa2²Í‹å‚vˆ+~½ì0úõê âΜ8¡ìeʦ0ÒGln’¯Ð"¡±ï‹(f=w± ››| æ³€¿ÒdAöÈ{h6æÍΡ9 œ$!#:¥1P–î÷EcìøáÓàe'aË€&3JY‡0ÀK¢ã&I‡Ìb:•-úüoßF¬úb–ûÌ™”L¢Ø£ñËðÐ¥A°p<ÁFù;Y8®ú}í{lü ~Äb1þñˆ‹¸¾ì,¢„!dwÈ•ø— . ~÷‰zô[³aø&šÃÄœ!y8÷=/b/ˆnÆAÒD6<Aš¬h?MC—0š=ŽÕ=«PÒŸÿ †@Ð ?)8_Y/Œ¾øNÏæ}/rû»½gýyä¥Fêø…À÷ûâ±¹(ï{þ•¢‹\.f;8bèÌ©¼%¥KBƒÇöÓ€ƒT=zEƒ-ƒ’?-ÒIà»›Èø¤3<ç¿ЧS-M; Ä¢\s@I± È5€°8ô‹‹¦ãÆ£.£ž5usíix°æ}Äâˆ_„#š¸±¿@ «al›0ÒŤáü¯a±…Ãü‰øl‰¢`ü4@ô¹@ôA˜P€¶´D¡^è ëÔÇlKª£ßýîwvÛÍIìÓ)×Iû‹áÅŒæUõ»³HÒÀa4! J#QJ„ÍÈùÙøäqB|„e]'$Y&ŒÎ“)!ò»(¦½^OÌp!±ûÓŸþ”]àS5_П!û ™B­{b ÂàÒ$‰@Ûüä‡nz”< Ø ÞÃKTØGaõ/†û“áI8ƒ&,Ù#ûýI3mðÕ]TBxë'@Ì)q@yÉ']"¦®8Ž –òaA8”J±56‰ÙΩ¸¡¶ID®³©—¤ó¹/¥†7< {ì|K§ŒÄþåŒ`¢¿¶Ð0¡a ÝFØ…EsÙ~²Š2œ"?½Oi¼=K70Xý3Ÿ É?ÉyÀ†xÙ%¯¯@Å>üGþ•iùJÍÈcèŒ<‰ Íñ=ÈÔ"…,áΫM¦ ¢IGöýᜓÐ’—&ÕºäýÙäï :ÉÏØhá€ê`²Ù€<2Iz_&¼¹]1e°/Ñ`=½GÃVÏCg¾xóBÀYuÿ[i²SK¼9¦Œ]’Œ0‰¼ó_MœÝÛ̯z‹â^^Éü{o…ô+'õF`]àöÔâ &lg¨® |Goƒõ‘ÜW`8´Œµ'Áv†êªU¬•Œ·‡0ã(P;CãGKÂqD×-“x ñØG`z?Z%ôUä{­âœ&3Äþk‰²iµ*П½Fþw†ú²U’¶Ž°Ò1sX ‹-»n‰º“( ZÄ5Z › ÿÛÖü,l5·ÂúÜsƲåõ¶à@;Cñÿ=Wgxu û> +¯ÚE83ZCù«‚Ù~-œ“ZAúՒу8v–-bSÇ;@Ë‹–ÖÝ®¿Ã¶œH°¡ºª¤páäS¾è½¢ÞfÅ9td6$ws*½òc–:ùê‡ìÉn›&ÈMrpåø" †˜õ»ÝýVΡå}× ¢çÿµ$¡ Ó–w?SXþ!ƒ»¡ù«™¤æ¼ÎSrg‡I%ZR _Ô4Žæä³ï³åA+8N•íç-¡ñ“×JDÄÁ¬Î¿&ýÝyç‘t|—%Ú®XÙõ•>? ãÂ>•ùÆ!ê¶FFûs9Ò‡&ã‡1û¬æG«{8‹i0Ãz–Ê‚;¤§€Å)½o¸›'+û·1—ìHçóã×}ä¹´Yõ¥¿i$ûÚª½‡sЦ¬ñ£¹×ë¾Mç}fæš¿j]Ý÷l#©¦F–†ú1Ö÷8³‚³Æ,lãÛ7låûLJ N£”ñ©Èkc&ÂÕRäŸP·8ƒ*ÃiK+h(´f§H«£ÎFѯԵy¢ß­ÿ–‰—ć3'¼¤^g˜]—­é­Y‡/»D§ 3VÓ¹ÞzÝ’ãÞ^²Ak¤ wà,‹—Xuæ, £ø¡ŽèQ@“OøðÊÜõfN,^¼xü¾´QÀzw¾ý´±q|¯É]£üˆÙé˦~ÃIV­ÇD QËÇÁ2Ù¬_SÏÚÃÇÒµ¥Ø¬Xl³áçùØ X}¢Ç~§Â4Êâ¹äG ³e+#$Ÿ–"ºbcº«•¯æ¶6'°Oên@Bâ"ƒZZPެò®I°õøü&Ù«i³mà¢YÜ&.•rcoi:€Ll\å1m^¸'"ÈŒLþ¬#ö¼òH?¾Í}¯X8¦f#ãå&¼£¹ÆXä£ú¢éWÀñxä„b\ñDôÓÁùIOD¨;~‚ñÁ¾ëÁ’P'ñi »IÚ›$t)YF) JLfÎŇ×Q/‰3‹6ê~Á±¦Q Í® î'r&<~îõ7m<'î–DìåÂÌø=Ô]׆?Ëèòb5ºjvã“_NÞn }³ÁŸGêºÌ—<6´òÛ³‹(D³B{꺜bn›*º²ü±ÙüMçŒû ô‰ñ!ž<Öï*'··'ÛæEþÉ¡¯ÁǸ1€ƒ}j¥²òØoI6$å (j¡÷§²ãF5–Æv“0Ų3¨§&YV¦™¬ãT|q¨Beõ›D¡åÅpi2AµòÂSÞ\1—žìÓ,Ù >ïG/ê6ø‰+çn؉#m4› 6Ù¨]ÈÍ`qº<ª¢I™U‘åæòÃ5‡ˆÒ>¥×¸Arøýë}õ/ªíš¹y½{æbçå.Šû8lu1¹öƒ€L( #æO}Øõ£)á±J ßDQ’øh #ÃORS°#4C^n2NÉdI<:uÒ€é]ð¶F*¶Á.ñ§°A;‹ôt¸2sÄÁ#¯>m= ºäz†;3ÃÍàâ` ×ߺ|Cæø^RÛnDרdÄ ¡×t—åÑŠj.ÇÙÓ6‰³bô"IÒߌջŸ½R¶ã¤¬ÈzAz˜Ý„‚Máy\èägirâO%}>û¹ãÆyÿz|þùôìóǃÑ)Ù;[ó¶-f<"N5=?]¼:y{rñ—’n&3³î>ÓA,@ù6l˜2)›aÈÒd¸GÆ ˜’±ƒŒé’w>œ¨ 9‡ Ö%¯bxÌ=ŽÏw¿tÉ[ß™C''ùâ\ûî?º`VNœˆüº¯Ä2£"×ÁÌüÜR‡I¼OŽ"7E7c˜«ÊVÎo¸–¡ñpeÆÆóAf;¦y¯×U>àé·ÝËI»`¸â¥èåç'"3çC’uqõ%„‡©ôЋ¥<±Œé=A2Ëßtå) üŒ¥}ë<3-:ZUy>œi*N‚Ct‡ð,+8¢ög³\‹+|]þg^òÐã눀mÊ\B™ïgŸ±ažl’#Г ó¾ »ç ¦“,CwGa”&`Ós…:Œ;ƒV{¬ªÑ3ĤŠ[5mšb¨ÝMjQè÷7\TåŠ1–\íU¡\”•+Úì_#8ë‘ãmý­ðL# ¢?W¯™Ü!×L“å’;kU»QidÝ GFîÓ«ƒÐolԘܡ]Œ¹"ª]*…#±{ GeœºgNN#»Ã 6ZÔÍH'Ü¡ñZøS„š€=é<וäp—õ('<<ƒ¤Àþ“³q´¹Üõa<܆#¤÷¶ ¼Âð~L€<‘ë1;èì8˜ÕÞê(M#͘|ç_jçT u¨‡*nÛ˜¿=þŽ‹æòýÂï×úø7®üöøWò˜o ï?Ÿ?<9ÍÎÈê§þ¡7²Îem¶3p'£“Oºûø—“½û²·Ù¼¦)ìÖ5-[NkÑmecÂoÎ?d~s^Cw£m;ÞZ îbÆÛ‹A6åñÙÛƒÑÉXò8 ÏÆ5ÆûI[S^åju“lºgããŒgGþ¥Ïà(ùáTnc îDh†Ð^¿~5>S:Ž)Õ?Zš’w'Rém\:}ªgÙKmOip'SSz{ršé‹·~˜~kYyŒïdJã­ªƒVÓmÃ(¤ üÃÿ~$¢äü™Æ™Ï…þ%œC*?·¢2w†úqÂô[b¼£\až|9Ü#cJù“þÄæ@ º”ÅKZhÐñÕœƒ=Êk¼À=¢ÎÕæ‰P^Ë…`¹œað·Üé„S §s;A7çnaM^m=˜R—Ná'Ÿ l~x§–™¸¥[GdÝØÙ"Þ<+Rš©Õb€’b¿GÒ¡Z#ùH ‡1ljÅÂ]ýx3[q“%guÏŠu÷“ž'|[ã»3lp- o¾`7%<·KhïòáOß¶é‹|p¾©W}€ÕçjKüî™älSæÍ ·ü;|dŒªž!¥Àœ@©˜ÛÕ6~¢ÎÅùÚg3õ"RH-z,3!ÏQê»(Ö–%n÷Tµ¿Éø÷–qK¤µºîZ@Ñ¿©Àÿ»êíпË:®æÒ‚9 ºPWGJ´ùÖD·¦µßHÖXD)œ¤Šzáo“CÝ­¤CVv‡ó¾(Lfb©šieù§Š8*™Y’hDñÍ¿ 6&1¢*7sÃ>è ØpH ‹îéà˜ üEs=¨40J¿c”°ømsfÚñNDv9Áusp7Ù¼²)¯˜dʼnåXe=«fX.IÛšévD'…)xƯFTì ÅoS%4á{®f@ŽûŒ É_e²Åßä{i-fZË£¸óôÑÜ{{Åzšq¶<ŠP Þ…\;>•µ…ú‡Ð¥ ƒ1<"û”9U¬¶ ’":À3¡6m¡U1â¦1ªÖ`ÉOˆ]´>7·ðÀÉròT"Rªx©[˜ø­J’eVˆŽ¨Ù€ã²Ø‚ÖߟÅ}ƒ³ºàƒÁÐC¼—;l乄Ñ^aD(œÍ]¦¸dN²×É|Ãçât]ÊF›m#$·T&»Í0u·zÃÒIó+ØffͯÁ¾,¹¾¢Îv#DZ½ëW¾RaKM-…êcp£[§ÄÍÞX‰¯,>Wâ6W2uŽcŽ…ú>Ox¬d¤‘2ÙÎ 4/•q]13 J+#“/Z‘­˜[³|Á¨|È„Ð¹Ïøj˜Q‘†ƒ,ÇÅ×’+Ð H6„jñ/QJæÎÅD°[‚Ó>ÏVÀU'rÂeòL“Œ¿¦<ÍšdGZ(=Sé‘»öšã¦¦‘ÅO£žÍPãA%7­zz·Ú‹ëÎ3 ÁªçW0JÕBlÒ¹nb¤ßOÌ$¹Þ*SláPE¸Oär}—óüh%‰k볉k<¨$®UúoqUyŠ5Èdl õx8$ûñ/ Þw§öÔ o¬òjê|ä_;ši2Ë3nÕ°WBlGÑÉzŠÉ>Æû¸×ƒÍ…¡c(ˆ'ý3åQüy$ ÍBO6)Í'•µ+G­ ¬©ëÖ®?uç6»=%îË×Å*³×qG°öDwéf»\‰Ø%ðNÆc«”Dö2áºv–‰†ƒãöÈ!ß¾óœ‰gFËòܾyc20\ÎùM[$Å/P•>mÙÓ·+/È*†¶wèäUB³3'ÿ¹æ®dåK+•¹Ð¨|šÂŽå‡.~8CÀ”op9ú(bê"¤9jêûÕä4ê™Þ/zÅUWÜH@³Og 'á „ÒÚõâYu:Ž}z%ö>n-&ú¬Î£Á1’=rtxÔ%‡ã.Ú}]îBôÈY(xeÒn7×ÛÉÒý9 õ sÁ>‹Øä €7BÈc Rã9ñ’\|:cd·FŸŽpr;ÏvsƒI&¼¼†(DczB]qHòaS #|Ê_P tXÅ3ÿr&@gx»2,ˆ:‹ÒÀCœ¹Á;æ.!ámªáW¾—ª™V„=¿s’/FýÁcš+Ãî.òïíø3ȧ@.Ô=<¦ˆ(§ñHß;”a4p¡îN$GF'ú–‡BΣ0X>Òp.l¸(k0¾@-Ñ.o:*4åšæ¢+¸ºne<åÕ¨ÔºØÐÖ·xçLÕV®Ò¸ÏUnÇbŠxÆsÅiû&6šE¦¿ÕU/ƒ2ÅŒ- ¯Öñ%#EõÃ’)Õ¡62±óBL áé‹Èo¡—RJKKÉôHÞ¤KRsP§iðb¥!×Àœ¯E'à™ù ÃSËÏX˜Zê_¦q£ å–¨wX]cÿ“Nbýå ñ&zÛâÍã‚LÁ• mÑ÷*…Z•ë^!ÖYõÃ5„[I\ãl,1½»Sq6±Ÿ‹K«FæOÃ& §dqƯäÝjné"ÿi_‘¤™ßçdB6Ý¸Ž¥qx[›Sµ0·,&H~é2ë6þÚù‹+8f”k¯cÙ_ï7`—Q*~¿~öd™º37&uEÝÎ<±s”Ô–âmZË›•”Ö%æoµ4šÕ°h@q]è¾ä äxÂÙäèwrü}w€˜Áh¸«ýÊÇMÈ̈¼Å4V¸±®%êȘ"Gñ!Š&¼8ˆ"D„ÎlÙ g· ”@7§Óç°|ïD85®ñ…€6ð2R¡ÿ‰Ë¿§<ËNXy·äÇ4|S”4¼‹5õ~–Eôê¤NÔç»goÒ³bˆV&ÎÒ ØÉ ÞÕT  MaVìûx3î4³Œ¤å1äË–L‚Èý¢ßaê5[á%–'LŒg ]Á”`¿‰ð€2¢PIà¸Üˆ™+«p’b8´ðù¼ÁœÄÊX¤KZ¿Ò¿à—"8.Uf鯈à*_Uáe&'tŠîB¬*†*À¶ÍáÔ¶©X„ÕŽo|=§,fûàF6ðíÞͼ güP&þ—ZEãf¾#T9Ž÷¨¨ß–v0Btla<°ŠæW) +ø§wVQÅ /‹¿*Ö÷ïoƒˆå–Ù˜²ú+yŽ3Ašg9<¸áf‹2z ,²`*sîPÒ:£“¼'KIf˜Éb'LG¤ìK4° `Gü ¿Ì÷°eöäFöuÕÓ‹þö`0xĘðNƒ”Â"Ÿ;ñ%¸@П9Ö‰x&¶›jj¼PŸJÔÔp+j÷Œ.^g)2ª'~ ¬ø¯Ü·vÿF×ûøø7®|G3¯IöxP’¤g¤@Û[¬ùõxP€óôñ à<}lÂY³ª Ê+¨mÐ- íò¹ˆ5í²™líìVͤÎÎnïqRqë •Ð6¨µálkÒv§8J)äA3Úî¬Á“† žªòó¢<Õµ3¸¹›#t9w‹tF®7–ËçÛMFy^ËÚvµÃ³&óä­``¶3ö" pý¼Õ-hùøé“&£<-HEm;c7|R²È?UÁá=ÖÞ [b±b‹{œ—Šúv†|o?ÔÁ­â‰ØÃv¤(R®qx‡â^˜’ò¾•2Âáì>YT…èPb? kÁŠpžæ…¿ÎÓ'epžoo·Ñ*8¢C‘‰}Z F¶/ÂábµѾ̖ZŸtÞ^s^Û+æµ½&>Û+ðÙYŸøì¬‰ÏÎ |v×Äg×Â'‹éXë=Q–58©Hƒ3\\y×ÜQi"ŒñÀúdkî¨.5f}×ÜQ>+¦Ì5W–qSü\e­k®.©¦è©3G0 cÊwêÏ]©.€ytpqðYž4Ëu–š–Æìî÷¤¢ß“Š~O+ú=­è÷¬¢ß³B?K°ÃˆQQ(ÚöëcàoÊsmU`G渌1…×^‘$”_>6å:!úGU|÷8nc(È‚?ïéÏ´ ·z³ûüÍFUÙ= ÈFÏg5ãÁÔ]ª"0¢\HdÏú8ËšëÏ•\Žù$fó@5xw0ú_%bïœøKþùéÙ©~ ÷ôõŸ_ë:ªXò$ÿüì(«FxæyDQûF¨Â(+5? ÒWh<°ÊðÔ a]„à Ä0êwç¥wšˆ±ÙÜ®&_&Ù¢DŠQ΋äëyu+ zÝ(8.‹ÝÌb'ËŤ,Ñ ¦+HJV‰©QL¢¦×šœä¿ r_9¨ ÌLö1¦Zê1ÂyfŸê =Ð’°e`dš»³ë.ð¨õí=üæù¡=g±ˆ#Çå­/©>™:ÐÒŒ;yJƒ–2Ó=çiÂMò˜b+#yý$,öƱN",LÆÉðBJ7Ä¿ì!¿G› ¹‘ñ.´¿]Â÷‹¥JôðçsêášÄÐ>ñõ"ly°‚kŒÉÈâ'Žûå2ŽÒÐëŠäJ†äÿÀ€W”þC„{gQJ8S4)`4æ9Oœ#Ö0žÌ(À\»ÊRœ†˜ø ßá¡.úË'2;,±¶OÎǤG>ªÂ<3—‡,b€v?Â*”KÐñQˆ”˜"Ï;eÝ{' †ä$@~šœ·À³ÆuÑ…q`:üA<ë$õ— .KylÕq Âþp¼+'dÎ¥H"Èãt|F.Ú"ð( XÓ(?C>y)?mŽåS zƒ=£> ý•„ÁA ËJæ¸ $³£~áãòÏp–.`>YT·àQD8Ü4ö)¨¤%HBÀfQz9t0¾/&IqBL lh=#'ÉŒ1¹¢2QÒ 9SÞ6äÛˆoÿZìmîùmTâȃ{MNù£VÝv£Ý­Nù˜†WuÊ7nàÑÞøøÜŸòGEW̘E‹R—«z þorTRm[äYÉ@G“‘ºïº.×Ì#Wír5G(=÷«5ç¦ñÅÙùç­ Wæ–š–ÂìAÖMøjË»ép–lJYÏ튷 ý¾§ïtÛö|™åЂï´Ðï QUÊú h–†(?”h½•£4Ñë!”Rª8¿:/ü9RVXœò>Ï+¯Y“²i‹KRB¬\‘¢À@f؃bóêÖ¬DÌ üúßÔJÉ–¦ýý9 ÏÉùᬱÔ(ô’B&ªÏ«”Òxó%À´AóMî¿Gå RƒçÚ‹þ‰Þœø8>å;–i¯¡u¹X)¯gQ '¢mU¹ÈQ…Tq»DR®âÿQ”4Lrs[Ïã ‰6¨°€åh_&"ÇkâH „æê‘ƒp©ïa†_šsÔ÷Xñ¹*˜„ö ¬tÂ`#š¡Äìc:cV/x>|'E1D¨¤Lœã°H•_fP )èúøñÀâ¯OÂ0¶Gžbev亖¡&³‘´Ø ¨ Ö70K4øWÓ–' #1Œ $€ÉÅ[~ªáÇž©5G˜Ø¦V#nͦT @þ-O~Z6Á³Ü+‘F"Odœ"#Åú:®Œgÿ^kSfFc­QƒJs_ÃSÇ ®ÞUºÜQ"£WUò‚Ì$wîÛ!*;üpf&Œ³S80q(§ Ð%8Ûp“?DÂÈïð¦1Ù¸o³2k=.€GåJª¼ ÀLž­ƒ•q€É6K¹ÿØ{e¹km««öÈ:£µÌºl²Sæ-×f%4ËMÏæ5kSäÍéÜ88³ô-½Ä¸)³l¸ì“4õmN§¦©šº×½ËÕÔ˜5p±ÿÚS6 .9›­¤Íx¿˜µY_ÙOØp|»(ÉÔ\™‡Y y­ÔL“­¬èüëËÎÔœµ>½ }mσ£b2ÜŸÅø?-¿î¢Åøñh‘@xí{lö²³5ü¾C\óäzÙtÈ$Š=ã%ÿÖ¸\?8‡á)»Ø_ŽÐ)ÿÖøbû—3Fºpù‚`áæö`k›ûÚì¼mtVæÉêâ>vE—å”]ôm½š÷D“sñe{±Ÿ׊lÀX©›äcJ ©´ÍjF¿-.³Oôs9*~˜ÿv±øëæ ©Úß|;¿úå‚ÐŒ±?Ž/›/æäϯ‹ë+‚È3²rŒ}ù•Z;מ2¶Ýnóíq®ÍŠ-nÙ£2ñni™Ùà“ '(f I°°ÆÎÞ0999‰~Ô*îk…†’ÝÊÇ.Ê!Å'>JÜÌè…n4.[<µ@I¥uðè˜:%UÍ7ëÜÏO˜ ËÈZX0’«V—WmK²,äpÒ)(À¶ä”Ü òœC-¹PÜZr K0ˆ+,šz'%›ïÄ€šQëžØÀQâ°ªTLe-%µe²`ះm_‹g,¿W@îµ`f;XR-±‰I¶-¯zy+…«±Ûãñ*güOÊ×:£­¶ÎGCɆ+¹BbTÊeÁSA²ð˜‡&”_õÆKr¸–Bh7%;³l2üY©Øwì—]S9¤âÐã²ßÛóA$E‰?ã€}®/ÑæÁåþ.y^é5ºbóOl­E§vE]GÉ/†ù8æ]!7=BNWbÇ>_Ã×¶³R,TŠN…€½§‚ ¨ÉÇé)•¥å<,@9ØÊÈÖyP ‘Vá3Ov¥x:Ñò¿9WOƒ†–Ù½‘° $.ÚrQÃ>wCŠpA¸lˆç<±½î\kyžÇšÛ”ñììl/fÌe ¯/- ~´ÙQÐ@ktÖj$ÝÙTª@•›£®<¼£Ïh îg|}Õ}ÑÙÖ÷8êR㯤uD/ GŽ%ÍO$¦Bk\Õx×6$)_5£ïýoñ6Ðâ¹§‚›‚.ðéè âÿ6(v -qw•ëp§ß¶Ì“é=9ç¸åü¤Ü Ó‘W͹ãçÒÙ ê…¨ºáÛSPÄeܾsºÝyôBT]*½ Û~á/‘Ñ*jöXáG#-•nV©éd!× ;÷÷µTJZ¨¦‘»{ò>q€8! R¬,jãEß’㮟­Ãùjš>ÞGi_l NãhM>zÿ”CÁÒù‘Ñ>¹ª9¬p9%Gãñ8;OŽÂ€: œ_Íã4ïðå†|¥õÊ¿8òZ¶ÿhÑòw”ï‚ìQ!7Fÿ•‹Ü~‘pXm¨‘î”¶^¼æMÇUl@Џ7¤“b‡=»×â)b€]¥kÙÍ'ìËì2{ÍÞ”ÅçOgß®/ ñ„¿þòׇ÷S`ç__N9?ŸÃ¿ïfW€à³·²òœ_|dÀïÍ ç«Õ*_½ÌµóÙ?|XÆaYúÌ\\“×¾f”-&!a›üÁøøø¸_ÇèD‰ ;›¯À¢.н€À’áb)ï&lª;Ïf÷TýhÂ<®=¬§P5Â:ô“¥¿¥ÿ È2X 3^ä‹ZWe‘ÜK¯° p’æá[]ð~&`”쾃E5aÎß+t ¢gà){JZ9Ç ±x›<>ó¹yÿ/…7 áFÛí„Q¥*Tʈº/V;#ªa¼’µo¨ª£ÑŸÁoã†J GÎí|`FËàN(9§ P‘4. ‘É®ÆuÍ.ßé .JxÑʺÖþ6°H‰.ß*Ó>òþvÙUž¶ÜöŠË!¶³†œ¬KzØð”d胾´=>ïôw)òJ·œêÃ_对P*õhÚ(»HâàDtØv ƒÍxp)Ö‘íBš1AÈèn¹åMÂ<ÄÓ†9<<òóž «ÑUVšðŸqµ¼Xâ+ƒKh1¼ÊVAPS^J¢:)¸¡ÑRõâ7V ©²”ª²[Qýô*«ŒIìéáWúA9vmy só{Þæ©¬èœ˜ãï%÷¸ç«ÞáTøûSµÇ:ÿ ÙŸè5#È3oX»á|²ÇT–_h ÓÏÕ'2cõ#|©c`‹‘ÇkÊYƒ@M窣K@ÐïB£Wà5,>4Œ5J‡V e´õ)Ý' ~ŽÁk †y68ªtÏÎÎöTõçÎPk-¨wZªwY46 ÃYÜk„C×Ýn¥?õÙ‡–\R“Žs"g}ÓM¯Âú”Cá­gåT›{+ç‡}žÂÑh4ÊŽFã£Øú¶m-þ©S§NHw7æs­çá¡fhø®uû®ÁµÕÿaåûí%ÜV5²“RhðJtK¡ú$Æö&6Þó]ßÇkŽŠZüb1å8t”éa+T©µ• Œÿ,£Q°ƒ?f†"‹â±‡”Oš¸%…aÂx½yÂ0 ³Y63Ä¢6P8¢J3ÓLÍø#âp 71 ˜NPEœÆrX¡Ó'1Cg†}–Í4I©2Tk® †Ò>ÉP,^ÌÅ=R,nbmæ 3bÌ`dÀ¨Ü–PkŒFŠ r âÆŠ[“|’Qô íÃÞ}©"¦š²8Nh”Å0Ÿë„†Å|Ê#3‚`W«¿XOe‡…1XÜÄ‰ÔÆ"3…Ñ„Æ|ç"Á<ðin›U\ ‚s9f>¡Úó(’¦b’é\ðK£V¶²F~ŠÐÀI\Ö8+ÖJ:àÉ(€AÙÁ: ðGµ‚‚s2V ÜV¾àQˆë1cO§ý\oK}b•í¥ð<´»»»EÜ‹˜O,äy ñI±µû†ëAÇÌ.Êc ®¶;~¢X!& ¯d;$J†Lk 8?óf€Ú_¿\\ývw^˜ºM t¸`ÏÔ¶êqÆiÄÐ^l¶#¼7´ÁY§ÏæS8¨8°lí™d¹,ºåèo'¿^ÇÍ ùl·†SùgÃF%¥’ˆ½jKG:O4¦"ä=§•PŽI$Cò±ò ù˜©üPvzvbã“Ã6^º}®u—)°üZ*ÓØäŸ\!í¬–MÒ~ÌÃæXØŒd¶çKgìcˆ:wW'¿Ÿ¶z›H” «o‰.›% ÌM™ôþ›é@–2SÐùîfKtÊVÈ„)jì™þ5ÿžPIoTs%ŠHÇ}›&«ù׃ÆjÎ8ÿæ’9Ùƒgnža¡aÑffNšH^ÈÙ÷L Ùé½ÝŸÌªîtX¯ð&ÛÆŒO¨Yä‚Î]÷âª×}1?)ì}ú)¥å˜Fûk.¼"æ‡ï‰­UÄâžtÝì®ØƒW¢ÈŒ6û­;«èÐ4º­¤—)p±`Æ£ÙkÀ¯©âfþ.Ðmjè 7ú]À»F&ïÞI™š_Êè}\n_™š—aCöì«„‰V,5;I‘ð—‡÷°Ç«<ËDôví(çvؚΖ/ýãe¿åknP½^Ê–ÛrNÊ7ý?<üÛ,pÊF”Ÿÿ­+\y³ÊO*1ˆ BžÖp>AÛ,@Ñ™—¬ÇÇÇ[JÖ¬LM Ëð¡P°T×ÊNméú¤'(å®âYËñØÐorpœõ9ÀG«Ÿï³ÁAK&sŇ#ƒöBøÛ@‡ÕjÕ;¬Ö]°¬|¸¤ü¬iÉ Ý-« ¥Úf bÀÛ63ÚÆ:]Ôµ’Á»›þɆËÖ:qÉIùÒÀK*Rg1ÉKLþaá{Ò—ÑÜu|pƒÿbæ+ U7U‚š.QxœÌ¼T•_÷.JJ Ò€t‹Ô¦K¤7Ý¥¢t¸IéR:¥6!Ý!݈ %¤Ýt+)}Þþô;÷üã»güïw ÆØï»ÖœkÍùÌç™ka˜:X› WQá¡&Šr& ð›‡;sÀ?ÈΚò2Hå0ê à4KiUi$¤ªœ‹'èÀÏtæ šªHHžÌHHþ¯Î€_ù¯#!¹ÞGBÚ|Œ„$ò ‰ì´IC I=Fñ¡´öKÓt,o’ñék VeŸG.¿¢pWé2׆e8»Øìt…ÒRÓ÷²8wgK’ftlÇÏfÚv"ìOÊt:*_û‡†ÄƦ?–!ìõ¬F `tWtÚ¼”\¿½Íw²Ò¸õJ›¹FÄì<^óÚMq„¥ØKÑáã?»¾¥ÂJ~ÿ1~æË÷ãA·}@ÏÈîŠ(üœ û°V‰z û'j`…9Hœ³µÇéÇžŸ(ž˜•Ž”Wþ‚Èâ3Ö±(h(û²Ø\ç1²#\WóèebÔÈ t‡¤žôÖO‰|èé¤Ò^x<¯ kgz‰*ãîüu`2¯´Í{“( ‹íŠêþ»Ð§½ÆkÃLW߆0|RFT'cÀÎí6 àÝC/÷ éž:10¾–žÂ'¢“’Š—zåH ‚,Œ<¸GHè/¥ ôEIÃhDMãÙæãTQ ?âgéq¼;˜:ßÒ¡Z%££³8­!}¿Ú¾#›|¤©Ù—ny%"%}vÑ·w$ÆìÍ”$„&|Ñé õj= EÇO–» ’Ò°ÔV:­€¿ÐÀþD,›ù] óŽ ödÂa„V¯Þ[c–¹jÇŽí âιOcbp9ázf‡h³sÝ1$ÌÂOÞ(¨Ñ4Æ×Ã3˜SFÕåeBAL—yÜhІiE˜ÅC•G`Ïd¨‰¼!Žjé~'uš¿Ù§ã9‰>“µxœµWmSã6þίPUÊ@g%Ü}8ÇÇ‘@¹„„¹ö£ØJ¢âHF’ó2ö·w%Û!†¼WòAÉ»öÙ•V»þçÙ8F¦4—¢‰k•*FL„2âbØÄ·½3ïþìø?µ¯Z½?¯OÑÈ€üõíÉÅ×Â!ß?´i÷ÚèóÞåÔ5Ї†Óoá‘1IétZ™~¨H5$½2³(5«–ÿõ´Ó©D&°›Û º¹ vt7:vòw…￯ÉÒÚ.¦RØ’ß¡}*¹1Z£û- ˆÓ ·»õ¨s0¯sª¸€…h-ý´3ãÌÜ3þ~‰\ë†Ömæ/÷?Hä=PämNïABÆG|h¾<¦ OÁÀøl—g ƒýíó7dŒˆšOmt á5®ˆ>bTf],wõœ¥¶'Ò8Ï9^iI`ÁÆMë¢|Tà-–ff¡·p›´F,ï»ø†ÐuW°ùtsLÖ®[îà[Ü}ä„é/uKFB/¢¹Òmn#Ƭ ™CžÍ¦Oìbã¼½ÛFgû†›Í·ò+8œÊy£?뜸àÅJuC6ç4%å[˜I~}eVP–þÓ/k˜ø¿Œ èøŠAµvñãñÒ“ šØká=jo³ÔÂß眬mÄž‰Å áÝn³¢²ŠžþðÐC:ÿÅn4$ã ý]×4-D žðŒíà9‘2…)/ZÒ§N}$ddë`4:üPHðט¨»Q1å¥òõ˜À—Ú Ï‘™[Œß‚ëèh¹Q†«I}B·@„Á…K@<|Äeí4Fxè­Ûò~£S"M W³·åƒj 5ûñBÉu-÷s¬!© >O— ?pùm^&Ë—çúý¤ o:÷í‡g(Û2g˜¹nQÈûæ¶<ƒQa¼ƒd$vGzŒ(£¤Uå-öìÞ}YâÝÕ×Õüîÿàe[|÷牫Ä}ú|ï„0Y`™‘0»’‘ü:;̰î!SšI\š™´›Í_.¤î®\Où¹reÙ.Њ9û18zä·o¤œqœø ÌÇ›9/^eo'‹/@Ž?%K@UeU~¼bzî´^¯F{z¾sµçeïgèû½^­¶­ªðh܃«â³µD÷À9†_R¨õ´¨HUy×™3u´wL19™k¢ë2;MµÛRSU[àØåñŒ yo`"2xú5€(ƒëü‡Î¢GÛþìžWù~Y1سjs9™]í¥Ãb¥å –rˆXµš¾!wË0ãg¶;¼âïH0×ñÍ9œªy‘CãõP–[¦ÛO¼+ËÏÕRÄÛ¯ôN8š’.Šl¿/ÃʧùÜae–3ŽbZ‹//›¼:vÓ2!&…Kò›~/ŒH½Zî„€™aIz´—?ƒŽÕ®ÇŽ“Íh=×Nƒ¹­MÚ*WÆ=y†˜Ýý«>M±ÈÉhhæõ‘ù˜#4 n}¿}p}4J[©bUœØušC=ë v8|D¢pO<ƒEÌ”““”ôŽ¡æƒ—¼\d888ÓC,ØŽ?³4xZVüκK^è-@Ö\ïòÆÝ¾Á$´ÌØú»?óÒNgç;+.Zm„˜lì¹]>qu·0™6Ýö;¢5á÷Pþ8X’ â1†|ø|¦õÉÑ–¦Ï^í1šû™öòøûyõÅ |brÔÈÔ³ôtzCU¹@PRaþ-ᓇ» ¬9HuÖÐvõ­Äv·¹åY'z¦){`9œ4´Am¹¨½óÎ ROÔÑŒÓiâ)yF{Þ—XöÎL™]8É’T¯”ƒóZOñ2±}žA¥?tÎc;qFHÇ„ˆF_”å²f3gÉ“Eß®Rá“ôòEŸ™ùݼ£׫NöÅwnuÞ]ÓÍÛj¤ ±Ýßó×Õ”àÌïÆPUµ9Ÿõô5¼Öó{£Õçg…Ö}cù¯OøaiSß§ìqcæô¯‡Ç´üÀ[¢B¥ÊTÎ_3”•YLö7G?†„dVK¯ ðÃKŸ:÷[GIG¬‡v”¶O¾&.8 ñ÷ Öd//~PSv¯êmbõ²hâHIÅÞH¼Î¶5\_À…¨ŒâRšƒ¸Þ²ÿ¡jµ´¾IéNeÕj*Íd¨ÁQÞ´„î’0¬6¯Øë<-XmæÎX„|ˉ†Œ Kc,ê»|RÑ×ñ½U&\þ-Žª7ÕõÄ„»¬¢ù<ÕÝÌX„7tÎw2Bwüµ•“_m–¶+å/óNÍ71MÑ÷xï6ô ‡ŠýnÄW¦Zx›hÅõŒ=¹%³J·Â³Hút£¾¦F-³«a’QˆcªO-,oòØ… ‹I £i6Ãù …êûÕíúæüë™%ÐÜìË“+i™NQ&ÛMOãœ?`˜$”VÎø-PO¢“Áöë~´&ª«”þRU4óiºx_Pö|{Õ2_9Úî­‡óÇšª£;Æ_ׯUÛ²,ú_çñè{Œ[sÆg&ó)_5(êp±\Êò€@óG„OÖ)ÞžLöKkíc¨æXÒÔ„î&-ëë6}r¦ÿ¢ÜØ'©S:VÑÚPSÞ¤°/@Sê×,¨·§wKˆÈNi)b–ùˆ[õ&| ‡b‡Ák “bñ¦.1^>K&Ç#L’yœ¸¯ßÞr hQº6p6ÎYkò«XꉄzZªCÝÓ—!‚’’9)åïò2îÚºTÇ8¹2‹‰*I°ÍÍV¦R²ÕÿDÑ_XW‘¼FK_ò"…CPc[NƒAŽF`‹ª\l¿“µ¿¢õ°°áEâjÁl¶¶Ï°$‹3_êî˜ä ì’·žõÇ]‰1Òo£¹AðM˜. ÏRN±½úÊgäaÍÊW¨³·äÇMÅï! ¯Â®^~ŸnØ7Ë[¹2˜[í%®Û÷øÒö$ïg‹É´n©ROÖq£|¢þE‚êç[’"›:ò›ØJ¶¹·b÷ïè™2ïï?,¯ÐVuõÁ…HÀâzôœµöøa¶Ïün3½ÃxJlƒTH)™pAËf›Ÿp5óe˹Î1ù+OKëjß|Ìa¤ÄÌ“G~÷¨á<Òå$e#ÝæÙ Î cÃP´WjUØ‚ò<ú.](vàç4»1ÒoEÁ"Œ‚ ~O–Ä×Á%xá§0Ë1Uç½Ëò«iÌ$,ñ©ËMlij—Ú‹b¦Ð=[dkw"naü9é¼CðÁ¶Yâöb qé€#–´žÒºÅÎDzJô¢Ã´ÉasO½sÅ•RX±9Ë“tý(ŸD}|·U^X‘ý>õHGÛÌ”ðè=´®añÅÅÇ•œ)_t[&ÊB{#ºçÝ纷µ{îûMÑk^–l|qçägò\&Ÿ­®Ð9íiÖÖ\^™Ø«ÓgFæÄz6j!¾Û~ô4_¾»0@¹¶8}¸Üª±gëû Šû½+çÛB»`^ú,°LÑŠÂ̺’ßjZëÓ§ÕÔ,RŒµXŒµ>vy› ŸÁÅ‚î>5êbžC®´±ÍœÈ¶_[»Ðí7' ƒÀ\ª'ßÞu)Šeã)–Œ F6˜ž)(M<™f¡ì–¹–6“¿Ù]NéuVßÓ»,ÊØWbÛ,¿R¨¾¼y7ÀÙ r÷Ž0cÔ ôO|…»Èž$÷ت~ÖGÍ2Ÿ#¼A"Äv19¯¥­ðüÔ—ÀoI<¨#ß>¡J+à>†¾ïuVjrîbP½–ØU^m©q{Ò¯aXغÅâ“¿ôC1÷s>Ë.„3õ ašE I²—ÉÎàIÆ´ØéX~Xÿ¤_H(JŸouÑ€YHGh컩qw×i$Z·b;¤îýÆ„üÃÖ†ñÐM£3SX‡Ž"ôi(`<^›“Vÿ¤òýh m‘^1‘B³ÖrÅT­XI,m_ןqܘõ½d.Îçy¬ÎœÐ•3Æ¢;2ˆ¡Ì…92‹¿aÓÛ–ª”Ó—Ì^¨žÝ9y&òá´øvý"Æ«ÛDsIrnÚ«›##Âôzn<“ñ#Òx“â=Ç+ËŸÞkî™/&$ ùµ£2ƒé9[1öPÑ…ªÇoÌ¿-ûÚš‹¬k«Ï*ŠíSÄÞ{t†C>T\;|’c9 ‹ŸS\‚ùBF¦âêÑGKDÏ»Ø,ÀÏúïÔöðœ'ûVÚ~õA? TGŽ©Â·¨T§NïNÜ< §Ð°æ`kõŽMfö!Êx²¯·@©C™Œ“ÔtVÆÍãÖpöˆ5æ)‘«}U¯€cBµös9¯*}^%ýAL˜•3Zhî2„H¯c2ãCõVQÓãH¿iŸ-Ž]ªë>ƒ»™q ³ýHß6Û1>“kGëÉRO0t颾HUÖáv4ÈúmÆjîkÔúèb¯¯áÁB°V¸ðêü ÿɧüžrëŒ£ê‰ 2Å-£ÝŸKIDí«‹|¼zþ`S+w|lÈK ‡·Ä/ êR\Š$jqÞh>Ý\¬Ìœì_šd1ó2¾Ý¾?p'á¶Ê^Þ‰­fõ%q¶ôŠ&ñ¤ÂV^‘áe·|8=ß“9¡§¯ãä¼— Ø $GŒÙxK ÖpV\=ž¦Íæú­[€ ŸÂ©] ¥…îówúŸŒR "ÏmÖº z/ºN_ÔßOœ_i¼Ö²)0Vqψ5™¥ìÙN£©vt¬³žJ³4žØÿŽ^¦5ôî(#ж6R²èG°£Ÿs÷×!Õ ؉%ì`­lûƒWO¾ÍÖ+Ñ öQA (ª%5%ŽõpÎ ±ì][Šõ®½Aœ«‚x){yë!ß©CȃHð ‰É+³’ocn<.»Â´E°T)ä1Nh!h½F‹í·œÇœ­%¤¢=ÜÎQ&«m«l“:jÍÆ&ÛÜ 8™G‘¾Ÿœ?fÄ)‹-9ˆY‚0–Èï ¾Ôáºì;ºŸ†VÖv|Îodäµ÷ö,¤Üæ­DÝ·¸*ÜÑ k¨¯ÎÒ!Í(·­çzçê¹|ýœ×­ÁёէI~¶ä¢/÷Ô0Ê%Ü‘žÉX.fÅw)ª>‡_<¡§ò½Õ­8‘«•È¿'be:”ÕÓ*›±NqöʯnþNùýý²Æ’VŠY<¤è½YO×·o+ÜB¤)ðE°opª÷ÏšhèõúåUšË¥d+Úê,óÏÑ™ë _û¢¿¨¹eüx¸ÖûömœšK#’ãü5Hþu˜kçø‡ú´5v«wýñìŽež€‚j[–šQ³Ýmoa¶Wô1·ÙknàÞ öz$¤"‘éìýôã#•£DÕ·¦w’´úÞaß+ª_K@>Âw!ǪãwyÀ_ÒU žÁœßã@±:pưG/ 58ý¥@( Ó¡ý %Êþê €–Üw2@kzúx~=Äv(]×ö±ÖR­BÔÙs¾põ@bôÔsé»utü]›‹cÔhÇù-òûEà†ÚÃHEª”«ì§Á?*%¯ܯ½în¹ZV>wBrpzÒ^Î Ë-Á¸Ûv>¿1’Oœ÷´™Ve8^¸ßb·­èUqæ6=Ô¦ã½á_Á/Ñx|;©Ø-b–f9fpSƒ1¥KøŒ~c^ɇ{ƒ*(¸š¹ ãךÓá“¡8_orÏLú^ù̪µø~t­ÄÚæÆÜËÕXŽßß 0†Yrë…ÆOHAÙˆ[¬‹ö†¦]Äå½Ë5ÌÓ%f1y¤_C¼¬ÀÛµa@i«dkEÁ6:2Ò¾…&E÷í^¨´/áÎѲmîó£~íM^ö((Á­ä}d[ì´7ÕúôaÁ9§&†nž'#ëv¾n,#cê„·Î ®ìd¥œ»Ø¦Ä=Jm‰µš5>ØœcĆ(i5l†{D¤õ¤j³7h¥f$žk&¬£ðDx;êÞåÆ{¯Z!'D¥¦Ý#H1Å›oùp8]ífgú‘6t>²å‰RZ¹ãÚ–ÓÜ6ŒÈ@a Æ•'mKúrrí¤´ÇjaÅ•€ x{ Dl¹Œã·œ™º˜zˆûyj#?M`Cã©ÏŸÎ'˜»ÃÌ’‘Ö: C…¥}táVã9¦Þ{éöG$ÀÔ„ tû;¬áÈy°Ñ”p¶9í(éóÑ÷$ÙHuŒstóª©äèÇwÔ}IvU€¼¥û\Äbßäá0Úð»>ÇòÏþÏ d\ƒ„#Œ0¾ê±úº©z‘Åf‘ KUp¥`þÓ‡ž³•56ƒ·V_5|à^vÙ bØ*§u)`nt6Âò2ÄGOŸÉ¥³u`µ8¨a„%67ñ¹=ô‚àwYU`öß ‰ ¾¥·³d½Z0ßAS5vËv£ç‡^öCÍáÄÛýéiÕ÷«ÅÔC–Ó4Ú‚âƒeb=Xæv*y 9ùˆ†Ç¡Ù|–(`f<Ž­æî5ŽsãÒ{’AIlë6tØ©ïòª˜ ª³p!©,ÙvÍJ˜˜_×PŒ"°S`¸ uN %°æ¯Y­­-ð*ÕŸY(t´mžF@) dª­Q|ü7H]1ѯŀÅÚV0H"Ñ}+Ú‘ì“.VA~p;&ëÓ,ip|\äP"§r6„§€°ô7ºA&ˆÓì¥ÈU«|ë¢Pú X5Gˆ§ÐøÙݘð $̇²Ÿà]­¬ôXV@WïüKlr6n¡E9&e‘Ü)¬Î÷L5bƒ½3ïÿëžîèDúc xF禚;3]ŽóúwqèLbËzW-â&ŠÝÕ÷1É€’a5©¡¸1¨é' œÑv¢îx×ùp·èù-®âcí36'Ž áSÏZV‡HñSŸd€@IAϼ4‘0_È!Ák-9H¡áб5¤5—ÐØ6l ó.ÖeÓþ±>ñö{šìšÀô¡ë · =ì}¦Ö¯"‹Ê’lt`¢:šp4 Ú+¢|{Í>}x*Gÿh5î Ì'‡9,þAòù›¤KYhpú+ 0½–¾ôÑJ±<û]x{xM8hãajn|8=xhD_ËPv€bX‘=¸fÁ€/ ‰,ᯌ¯ÐøÜÃ>Ò+;ˆZï—Ý,‹ÄófˆÐâÕ¡z¢][8më úî µqÅE>ÜìÁJ݈¯­E8Q]¨×Ž+d¨Qú þW–¯¦õc–ƒºcã;¿<‹$êÎ~*›±t[(µ¦´a¡jí©»«¬‘M…ݹßjà¼íCÜ} ¨QÈ—pí;¸>l’rÅ/ žJ‘ðßãN i‰õ…'/Y¸gôÊPº;°áVw4K´[Šï.ñLÊB€€/U’jåŒæf”%ÓQˆ§Sh–‡X.$OÐ@,¶]FS³Pyë’OÛÙÍ×D…v~”±†ÇÅMV öÈ¡Îù¼bÁ0¨åËA¬Kýãu7bkâB‰×NQÞc…’Åw]()m¢ 7Ò0å‚úÒñ-<ñQPè:hÅeñUåRøYbæŒçU‡D²¤Y"Þ_ÑA,’Î&HÏu×¼ôÖŽJû>Ä5lÍÞ˜µ \XR»Tþk ú Ïb¬Ãv˜Ãcsü‚qª“x{Øç–ÝR¯rÓûï±[‰]˜vR½ÝÜâKÙ{ Ü0`¼•iøˆ¡Ð Õ/·y‰³ß·q8ËŸ2¡9¼"âµJ ,¿• ”TJÛ7›óø–·ßV±!H5€NG&ãs ÅI%hì8À¼oj_$\qù…“D÷sV.œ.¢xAÍŽ¬*K'­ ‡ž<’6)Pî r¦`J'÷ì€ÂÜAò e7÷ 9ÏK¢ü"²–ì‰`dù/”éÓI–¶§LH(¾ei+æl"Uÿe"‚ADP²ÞŒ5e †Lù €K¼VÉ»Â02œ§cËžß³9{©x0+|úŠ=Nv&"ŸVÑð)ÓháÒµÈÒVc2 e(å±ûÙxòŒzh&½||Æ./äCrÈ/D´æªÓ¹A‹õq‘ðUÜk|–è{7$ƒ%kMÁÌc“Ny#`käu"ìy2ö ˆTç›ý’¸‘ä êÄÓ:“j*ô)ã¢m wVƒLÍ|sîK °ÀÍE\Ä¢lùtŸŸ{7–ÌÉÇ™¬àµåÆ›ò?‚çò²>ú÷¸ÏS¡:*9«¹‚*Æb¾". ;/f ¤—nð¶òáœÞœÓ•ÐáHìòUUûÏàæ\@Ü€›XJܼ™½§ Ö øÑ/_À¹ÒÇѤ`lØ_Ã91]CAÎ2К[ðH!§e `K…q´´F°î›"“˜­Ùz㞆ŽVóO$L ?xõvw» øì‹v;L ú=á‚qЯ?*/åQœÎQrãSp¾ÍF‘HEŠØ=÷'“–ÇN½E>èIDD|Ò6–ˆ®I´Ã¾åÜ’§Ä…àKŽ/éØçx…ÖBã&ò-WÚˆ™šÞu Ü[LK "cw£P ¯9Ìu2ˆwïö zEÀÏÖ»Øv8H}œè4s÷ îŠÅ½æßÓ¤¬±p÷ñòœë¡¨E;ô“9Ë êIL^APà-²qwº‹Lwh2ˆ¿ëB÷éøÁµÞómïµ|ñ6צ¼ö='VÖÓÊ×vÄ„C÷dQl¢%×1¼ÃJ¯&,ZĦVêa¡ÍÛu»žA–pe™Úò“)Û“@°ö€BÌuŠ@ò‘DBçýÞÖÄÙùÃRTJ—÷¬[w--Ší«]ÛÜ]M‡R¡V™ÔüÄwKK¡¾Ô'±Ìçîä  CCaJ€T.ÑüÖo`°˜Ø˜ã³TŽçyF^£"­‡ª1|›+J /•äÈnû¨} eß"uY‡[(èÒò»—›x[¬ªÿXò¦ÈžŒ-ŸÛ‰¯ŠƒÕ‰†ŸaB ËÉr:€Ï™›Cl(Q°dÿâgP«øn¤?èÚJuæ}ÛF‡H`tÆx$€¢È@û¶!Sd@Á[ÁºëS‡Hlÿãcÿ¨î0/ Âá Yd½qæjÔ§fÀì !†â„ÆOoð侨²ø‡²ÀmJ墡íù†m¡éþ²ÊBQþc-ÉÝÏdsÚp¬6¯£Úº>þ©y†(ßd­DOµ[­k]uÿÕEñAbËÄgØMyÿ=>¼F7ù‘50"¡êÿ;êòA]Âv=z°ð€…A³Öÿ§„ýùìù…<,þSùÿY-¬º«,|™˜äÀ)ÉÞ<·¼æ§"AæY‘ª±*u_¸¹Y¸oqKú~“bàˆ²VíSûÂ~ÍZ⑊ý#'Løêê…ü†)΂´Jˆb%ŽÀ”\ì/–#2cžâ!ën\’=l)j Ç´Ãcº‡g“©Lu8AÀÐFcz°!*$µr\°‡è~ˆˆ^ï5h¥?!†nÅMÛJÇÞ€¨Žÿ?TAL§_Þk_`Ä©7qDwäU¿/nãóþ^£n9è…µQòF`jTCz¡á¿ªU.Õ½\6SJ_à6~5ÉXI תHÕªuÒ2|Ú¥(d«4ZídN8¯þõyÜÞ`ÿÇné‰ÍTV. Ú °ÖÉ Xåºj–qåÚ*@˜Ÿ:èj ÃÖ»¬'ò·8&›¨…š’Ž48+[§¢/ŠoAh ú¨»_‰ P íSu•5SK*§BÊ“iC07^ÿ£°Úâ=w%:ãƒJG<4ÀºŒá‡z‹†ŒdiñžigvÞvwÒrq0f,n ‘ãÝcO4[æ¾ÖQb«°³I•ï1• ŸÃ‚lú‡0"ŠÜc¨½‚1?©‡6剉z0TÌÉqÅMH|ËÿV:gÿYPWŠÁ¦‘ѶQúžIúd53Ë †N¤‚#U’nÙ´_ha XŒ2LFh_J.IÌw(õ§ÿšæ·€¬´¯eè‰ìq#‘¡(’¬f1EcÖXf¡)óè¦ÇÆ­Ÿ‘x²­+Íœno38ëD¯Uo㙯èaäͤ‚¶Vr -—ÑÿZ-êÔ’C˜K4*i@Œ ÈCÔÒ¡õƒêìbú14þ4@5èÓ>‚™òF %cüh„¯‘ Ìwžº G °'™Ìþfמzó4•qÃRŽœ›¼÷‹Ó¼÷¤:FÖç—ÎšÉæÈ!üw>nš‹Æ­Þ¡SÛ·é=uX_š°‹GK2D4|„ˆ•¨–öqÊÿ-±’‰´ÌÀ7 åz½ÃŠ_°â)€} êѶz˜mQ"`1¨®«uÏÌqWãâ³Ò¨­ÈQ‹3ú6Äv2RR¶áj¾Ý·×|»•®bU/» Ø®Ë (ÙÆ#ýéÿÐ …S˜{ï¹4¨Xµ®>´ÝÆ"Öª­Ñ2ªMŸ|6Z=þ¡qºÕ”­7ù0p«Ô›Cç2×d?}VH Cle2¶û–ä®:#öž“èf#Hîu¿#Ül­+e€ž+€o §BöÖ×0ÿ|ÐJ`¤Œ#„¸àK«óxõ›¤@j¶`¸²¹ª5.—yWŸVý#Â+Òík—u¦n¦¦ÆUož.¼Ha ®«R#vÓÎ+˜íjÒ( ›o_¬ÒyY x Ïzx̰Œ +‚€^2 ¶[ß|uîp0”ÒS”ôDǹç:êÇEAFSGKç’³ ¿4XöªÞÁ—¿¤ÔAGÆW C,±a€.ñ/ô®)É­ÏqfþgºIå±Ì°IbÃb=)ìpÒÈîth$ˆÏ­ ÐižÃä³f‰UéiÇ?'ˆ=»{{· Ò–²÷jW#…3¨»F \iï«ÐAAÓŸjCßÝ>-ñf¤Ü¥¶\¦·hÍ ^µ×ŸÙ…3ºË@ƒEQoº›âh‡·¥·Ø“³¯Z×UúúNtÜG«ñ¬†û²K% )ymµÝmã§ ãâ¶NÙ>NÃ9¾ÓÚ«† ß×üˆž3¾<ä“/MéjÜ´: oé¿æE·M¨µÇ¯½ÌO—´:ˆÎI u·u¯¢Âç0äË‹„^ôèKJ%@Oi­Ìzçç>z«ÑÇQÍ"ë—,O‡ ›à>”æ«áŸ`´Õk¦ž@ôcê-•Þà5 ®úÉ Ì‹ Ê‚.¢9ÐWÖ„ù:DU8Å”2ªRD]ÖQåˆFEn8@WЬ11‘à*:–]¾B"èë³Ûº˜$ÞÜ(½QT*:{p*"šÏô`e7bÊçc@ÄÍE¾ñ_¥Ån±ê¤œ›Zy Ù+b”Ò>¶KsÓÚ!bªÒÂRUÉì_õM_‹:ç- ¬†Š]kNÃÏšÛ¹x,Ÿ¶dy:°ts·(·õ‰¹Ûrbàf©c.äCvÄ/Ôe} ŽØÊmnÒ´l-4`w)N”Úï̯­ÏkmqH|-0Ã)¾¸‘SŽ-‡6[J§{ó‡·Bùj}p½(…@y\EsÕ÷«BG¾ïó×Âø’÷ØOž'Ÿ¶qç¹GÖ‘žw=aí²>ª{t ¸­,¿_—:fê&Õ7K ¶áUq œºOÍÛx8›ÙîÀ#"nQ ‡I)@”*rIÉr5N߯ªX÷±æÛ}ßwKÞ´:âAMïý<½•7Õ8Éa eŒßÝw#CŠ K„~í7Ê·.Å"jæ§›£‡|ê]ë]hS'lzªÍÕeýµ$&÷æ@ŒÑ`Q™ígqZ1%Þyn¥ÈüÊœŒ…ž¤'S’Í/²úcÞÆ<#È’Ý‚¬×ÇÔBs¹‰)@P´uÅQ¯¡Á¹ÁÝ÷µc¤¹ÁÙù#Þ]>j‹ÚeüjÊõo‹WZbrÎ€É ÌøîöLrßíì9Ì[µI î[÷cDÌ¨Ñ Ÿ?Ò‰"T+& øèt VVñôU¿"Õ¾]ᙘÕò³ªÌ}m3ŽúôÕ"¥SÆ2ïb]çŒ~E÷£Q…+ïžu â—.|‚ ƒð¯ÁZ/ïHá;> û( {rÓo,ñSVÊIK˜|Les»ù¨>ËæîïˆÏ­Ö?sþ(ã8¶ ®Äy ¨9ÝMX¯à>Ò«­âWT¿¥Ò ‰(฀`«QÍ©~œi—Cöî¥ Éá0ªuwÖsOí᳋»šÌ—Jœ7Ý—ç…ÓÕŸ~xÓò”ETO6¿—¦.è_—wXLRDg„v7³N2C¥ÙyÄÁgæ–,¿zÀNS4ž–ÿ$,ë’/¤:çÏJ Ô|,Ìuá7„¾*ŸêÞô€-š¥ Ìëɬ(ÀgaXSúÐÔ`©ÀX ߉Nôˆq¹€|¿®uúÛ˜úY`tØ= vÞ&ÿ’H«;™¬ˆ1K¤Nàã€ããÿ]A¥Ö7g?Cté•PYÔŸUÐ8/í]Pg½ ”Z,Àh›hÏ)þñò»Â3ÞÝWsû»ÊâFMuÄ/wÜ4í>;RõL¬½œØu)ƒ¹é 7m¤å4ÒÃÆÜ·iG¶Ñ©7ä5!÷Àÿí¡ÓñR8¿—ãÃÓ›»~q{È'Çʈ +GmðKŸ6b³¡“Õîç¹dQq ëÛØÿ& ;8øßû½PÐkók~ˇ¸LøÎyª¹¯1Ó¶‰ž8[ëãp½²õd‹Jj}tÁ*ÃÌvjúÅCUP܈š6¿• ȶ(¿×ŸI Dš!"Ò*ébáÄóÌÁÞÓ± ²’Rs¡ ó¹æ ê‚gͽ3Z~6‚ªÅíÿ¢šf*³•€ågc|l y”$Âòò’”NÓ`€ìN…ûƒ!ÁiO‡ò‹G{×¼Vò6‹ JK=˧Ö?—É@á«ûŸp}iŠÂÂ*µt™š1üg|å%¼05”h˜ |ZZÄÃiÌ"Gg mï÷Ûš^ƒô\çŸAó2Š k•HNס¤Ñ“d1ÿQûEþšúqÌ© ¬çÊGù×UËÜÚ‘8ãÎô4é qóáÞ5c-&ð™LQÏû°ó¤²Hµ¨Ú3ú(Ñú„[e_M2«ïž@˜Ëqcùn“÷b@$|UßnSž*Ýseþ6ºž§XDXà9•:ì¨ý ,4_ªxGßÜ+åºä[›óèÝÅT™ r €l8kßw§ýÖ'eÏó Àr”`ù¸Ì¦xFvÚ´`1\6Úà`h1®‡»Ò²ÏFJÎbt¶„[¦®ômÂu1˜YuH)H¹[fäV:}·âî+×¢°¢¤8†Š¡a±Éä0H]”}¡ÎVÎ,–ß퓇*’û”eI3œ/gà âSö±ð)9h-9ðœXþÚ'½ºxÓßÇ\OiŽ€‰d:á»®¦Rå+AG„aŒúñÇrð\Q¾ôY¥©Ñ@Öõ1ftgYÞ´&HùÜxz*†A™sv °_«Œ±ê›&®wXš¬°guGÿ­¸‚.©X4?F´Iê˜ggÖÿÍ1Öÿ#úØ_e¬~t‹ î6É©ˆL&y—Úð¹ÈSYõ+~@ó%€úÆr¢’äÓÇÒýTÔ¤VŽá¯c«¨"ò›³{Ãx2ËÄøq¡*„J‹^ÀµÃÉ= Ä9z<0¯ÇA¶…=8þP•˜3€AÕ¸ïI°6“«@AE ¾<‘zô¤:"¤qûŸ¡ä:PBGs}HºQÜÇBV…ܵ»²˜„©î]\ ©q5=þȒ齟b™áq›¸øƒê¾H£ßÄÿ}Æ–3Ãù¾—Ûãþ„I4˜p¨÷Ï`=ÓÓåxµ¶¹&Ń,ÎhÐ&¸çGT7,#Ãá!ËÅžÓÍžÓ‰à8Ç^ Õí÷Êñj•ŒÎØw)Ê.8éSê3ÕýÉk ýzîïw$o·\y~ýÑ3}VRžÆ¥gR»9ª¦Waj¢§UêaLÚÝÈÝîì#m©—<+#Í“_§n—í)VG{™ÌNn ¬íÀt¹ 2± û™štK蘭©•íˆp”fw 'gT Š€;˜-‡š_«zPêï6,¿Y ½x¼evÝäq°Ú.“Ï]zùÈ4dv>¥n(ìþÇCBïÿ¹ËÊ—h wrÅߌœ§Á/å+Ʋ–À9¡L1g‹-÷¶å·²ùRùçr<8ÐkÇ&&ÃtÄ+Õ'x¹ÕÑùÚnøô s´æhês4ÀÓÎÉgƒ% ËëíÚ¹7÷¥c…eœ9%ñÈ·Š²Å¿îyΣAÆÓÌ­wÞŸ.Ï W‡tš"·Õ?×>§T?þ™³x%ØìŸT~ëdäWƒGÔýAØÕ‰DâôW” ¿Ëñ4F†[O4Ís¯šŠ;o`+ç ‘|VsMØþJ¡;ËsBîú†m¦M¸ÜÔð†Øä˜;´³˜©! °1F|Lqe5ÌTÉkÌ("Ô}¾ðò •_V!@®/;^ž V´õƒœï¤ ˆ¯A?™]×ÔÔ4ÙTÀÖ®íD/b*ðFyÅ¥¥)ãH“WJöÓ÷ºFX´ÈŒÚä=öqó.H8ˆÐ¤?×Uô^Û9~ åÃjÅjF´5Â}ûª$ÏðÉ,~Wì­Õ† H…â/©yµŸPý9•äí}úÝ$.>êó’WU–C3¨31øoA9Ú@{ÑÐÙ”ú £ö±RÒ²—÷ù÷UÇD£Ô+¯¯[¯G|¤õ`2€¹›øÙ±€µvö´yñru£ sáÅGÜÃT·væy™ å&ÊÐ|K6ÄE(_Èàè]ž¶)¿>&.UUÕ²AyèumãO&íö¶²:šëxrc µ“4%zø£.£z‚q[Oìi( ºÖ¶8¿ˆÞõóéHÑ|b¬$PÃyÐdÂ?6©­+î¶ë×ôõmá;7Jö?¾"JÎAÝ,Šä¹Á×Òꦅ—9yyêʯÁÈ…¤PÝ0bÉeÞ8%%1p®+ræc¥T?m½Ðóð”ÃÛŒ!”Îi½¡2 |tæ ‡ßóV·ÕýGòS\»lj{ â§w>;±IgÉUÛgJŸÌýuv*“ÿê"MµpçEk¾@]K}ùikíàÎNÙÈcðÌkO\F³"SR"Vì¢^y_ í }㊯Þİ¥‡ëïN&v6ìûê3 A÷ðw j§g«“x®»÷WêsóŽ Þ¼nw2%WŠª­Sk$´7o”€³Ê‹ÅÅÙÙ­#ÏC1 «å,÷ÔüäJhQÏíb4잺…ý×?¸?H ¼£vµÓ&¼ƒ u†Å/¸½rÙ¿8Ú^¿xõlc$x€§ €ºÒz¶zÈu˜ö²×ë‹\ˆ™wØ~„±lvGÌɪ=ã[>#l±ÌíÂA‡f4žt¤á¾µ_t4µ5ý 9À»ˆè-Ú†ùðeyãÁ@Õ‚×ɼäõéÐ!ùÉЂ¯èÞFÁ §¡öx„ׂ_»Ý‰CÓu×·5u ¼z3"Fk¦âãÁD\ù˜º{„ª_ŒøÞù:»š¿è2(9=ÁÍИ¤GªE(1%ºýˆÒ :#ƒŒzßùM]ï‹=%ºe†õ4âôV³uöLLL^'»Ö…ò%økz‚êÔbS/C_£ÆÑ¡Ÿ|ŒË‹Ìábœ@,¸+°n -…f¡|®ó^ˆmAAÕÒblaò• C4!Î~þ¡¿°1Wùm `½±ÿÐß™9 `pMù?ôWk’¦Êò£~Ñßÿ)£é˜";eʆnl[&úcÛ²»ì6ðz‡Ò_Û41 WÔþØ¿ˆ{sÍAðÇ6%òçˆV·Ä_Û|…ºî"l{ø×6×Ç ´;ýkÛé<¾àS%áß ÐÐýŸ0*ý8!BóI)=œ—G¼#EǤC>ÞKe$È£ñøJ ª ý±(>m!&ˆÃ‡rÿ˜ +ô$dÇ×`¤®¾42-ˆÓ蹆ÆÍu)hê½o\È]:j×ñþªOIvl Iþ¸–³©8…‰&åO…‚Ïâh:VÊÓÕ§º'/Ø” ä†Mø«z4|Kmq,ª$̲0CÒ~Dž&~Áës¾p<€O¢ƒ3ºj¥ß’ðŒÆ !…Ÿfr­)çÑqN,‰i€¬ÁÜÒ§6°§‡1Šn£Öv+bÔÏ“¤$ %Ýb‚”É*Ч¤ÙOªP™ï™?™’xÚ'àžl) šm,…Ô-óœeå°Ñæ<…JȨFí²6y>á’é%¸ölíúì$BpÒ„.Šo%‚!ɬc¶…^¯f'¬(·µã À›P" AñyJ`u¼ù'7rÀ0ïE‚0ãs¿¿ðìÏH–à´lm•©â5eYXVðÁ£¨Í§GÔï=ËA yƒã§VI\àn•Z~®¨±nÕ{ÉÂ!8ˆ–ˆ?0Š9$’«>ªD¢UKÏÂ"P`#PÀ/®ÕšÈø®w†TŽ)+EÍå9ž<bzðë¦ËÍV½ŠàI[&çßÕŠ­ JŸ¾PåÍ%6Uaë§Þ'6ï…2ì‰Ë<¹§'ü ùÇ׎6)ËvA¢‹ó·ÁòêëŸc¯IæPb =Àa¹íqEpœ' ÖèìÕš¢„/Ÿ~h2J  u°Kº9êå² –ȈO7¯íýÈy$¥›Ñ~Áÿîžå‘ü7B……(¨Ô®žœ«Ì„öåd0|Ïÿê\¯_´þIá«7Aþ}X¿Bd©Ôvf“——K>Å„qÖ/ä ¨í¶^j /Fô _ýÁÇÔ\ÇlrD»ƒéX+P6E HÇô{ÀEs¸ñÍ_Õð1‰ýsÆô{\ÕY#û¿¨¿ÇÕ:T!F,RÍ_gíå>Hý:×ü§‘ù…Oñ_ÚŒþu¶¦•ý¯³rCéï)ÿqvôX—øöï+§¿%'zô?`”N¸óúó—½ÍlgìØÈ¿’ò&&;ºU)À\½deÄQ»ñ¥Ž2”oB"hÑ?`Á—†š˜d”s –‹ÝÕ³ôšý¦‹ÑÕça)|—¥ Í;XÞᢠÜÎüšF9ßo·aR}œƒqGpR¬ßcO~º.£›u… ›½úcÁ˜©ÙéÊÀ™-ñ¼îÙšŒRrIë¥ÕÖ‡UCÔ†oøëïÃîšÐÔ"hY@(|;ë6[Un+9­/)Ýñ`:,G>¦¦Fp\ úcS Qùl÷î¾ß¨´ÝÀ/0"щ­HZéWÜâ2ña÷¶\‹c°ä ßʈî¤WW”$¼3ëc9n '브¡`ÍcL{û´Tª;»(ên.ó¾dÆ×€ÊCÁï-ÒÄï*ê’âkæ4Þ<2‹'šJu" ;qCð ÄŸci£#Ì]V(ú>òÞ;ïgÑYf—<¢?ôM6Jwßr® ÷‚§6ŒÓÊy?Ù ö~ÁVñº&C·8¹;á[]-uTŽü‘©õÂÇîz¡èÍÿVõ˜…*êËKô'Ö(ò1wÅ\*?h˜½&°¼8ÃuB øáT]ÖGîδhjká)ÃE}=,ˆÓÜ WÄQ0A(,‹Ë@—Eê$»FpRpL­Û dË ö%’ÌE9bJªL¸˜Ë0äûcôtúœç¯H°ÔjïÛî–-ÈÂíK‚@;!´ˆn&&ìW?Ãc 6ׄêe{¼W4oö“ƒ0«NT]GóTõ*˜Ë¨PUt–ßòM3¹B(ôÝÓúF µ(wNß“½’‰®þGúÉR_&ÿ×R[o™÷ÄùýÅüÿ³"¹TÛ@c{öAÇ:ξW\ã‡<ÖñRôùË@Û's÷ùƒOäÚ`Ëøuâ—‚×û”ÛùK¶™ïŒm·}§ûnq¬Üm7ÿþÛë³·ö½[×§çÿ{âáßÂ~g×L„nºdyãÚËy!tk`ÅÛãL¦LÃÉ}MžjÊ*ÐÃÊ;1[Ê?𹡆€–Ë îø¼ ÝT Z©e&4` bÿÎÁìè~Äe2Í`Þð¡\ º;´EàùÉró>ð"IÛ/ëœ~rj€Ú¾—óÂçoz¿íp7×"ï~ù{Û‚CoEïïÚx'€ãz¨4Ç­•vi9Ö÷¬ëquÊÎZbðëõé—|xg]Èw26ÿ–kxiNúåšÝ=ÓŽ\Ø~ÑÀùs‚a°´d’_go¢ù©;ÂmΔÖòÜà¸^GHïOŒÄ×rðŠä¤©Y®vVÛþÍêX+Ñå2åaļ/kîiU¬rëNìHâëUóËýØ¡ˆmû¢Ø„¥uw.ürlU¦Àâ…ùÝt¾Y¨ÑsQß-æ’ú—ÕÙ;|y¿]fyæÿu¿qýÜ_ÏXìÿ¯ø›ŸºÕUaAóÿì.sÿyÔ(1§«ŸË:§„&_4rá pp‡ Ž©xœ•UkSã6ýž_q«Òhk+íƒ`{¡!,;KHL3L;Š%bmå’L’¿W~Є´ÖãÑøJ÷Ý·ƒw«LÁ“ÐFyH~Ÿ€È“‚Ë|’»øÂû™¼‹zÁWç7£øÉR‹ú“»_®>Œ€x”þv4¢ô<>‡ß/ãë+@˜Y-Kéø#’Z[)].—þòÈ/ô‚ÆSºr,k?=Sc|n9ÁÛêKа܄ÿB08>>npÄ) s¶ŠœÀó—ãŒG=€ –cñÄc%ŸB2*r+rëÅëRH)$V¬,u¬'¤LaÃÊ> ÿ@k+­Ñ£0% ¡bÚ2c¤±,·~© ¯XV*—}ÑH†n)ÒØA@^wƒ’ùß … ‰±k§BXÍl­KŒ!jñÐjÐzõëm42 Óes4b^h.tH0¥‰Pªd¼Éj+›’%¼”ܦ˜þ~ÿ;«ÝÂ!QhlHÊÂXÇ,4'¦ä+%Á˜¡¬5Hæ\¬ü:+Ñe‘‰€²Þd’óžÀ³ZM)L«x¦ŒšÿШòÄbmn".º½- F’G¸h·¸DA:è\¨ƒL¢ÿOÆo€Žc`òg2¦”gªyKðÚ¼Ô±¸Æñ<ØÛÛ{-ÎãÂ$Z–Î=ð<$àò©3¦>#‘ NÎ2á6,“Ê`0½ Ô¢SMÊñùÚûÒ§WÚ&ºø$ ‰Ì ó5ÜÚ‘ ‡ýÁÀ÷ÿc|8ý4|;ØùÍ5î6†æù.ÄæD—•¬\§2™›ýÛø¯_ÇÓÙ‡›ßß?Üßûþ·õr0t`„a9/„5 _|6}?Ž!ÜîÙæh|=¹:‹ÇxÈʲQ—y¢*.ö}ŸâktB±õŒÐ’©²Ð.Kò QÝÜMGã™»1CÃ| ú}6Ž˜b±»Ÿ*ÁÝnCs9>;Gwj‡[D Û€gPÚ@.n¦×³6F-¤’ÅpSK¦­¼ÓÓÓ×V^Sm%Α…Æ`ÿh'º |Ñõ݈ٜ;CåŸùáDé*³%'Í„i Þ:|{‡–D£¢\k¹H-¼Iðó‹­ß÷°âë>ßn€wÆRûûÀ?šðE±pã²Èhù"«$ºEyVË”»Âwµsᦵµd+HíÖ Âk–WL5Éi·fU{ð{:/øºžé8÷¢ÞgÉÓ`ÃãFôÓÑE·ÿçå1Ê,è_~ùôù¬‹p@ÈÍû.!Gý#ôÇi¿÷tm5O,!ÇçáÌZµGÈl6 gïC©G¤ÿ;™;/-gæ_SØ„©M1D+‚@b¹é¬pÐÚÝÝ-í°SÚÔåÊrŒoΣiÜ@(3K‘ó°û ŸvpWæ–å6è?(†QRJlÙÜçµ’ŒjÃlgb‡P?"…Ë­`ñ=3 í¡åù ÏS9 3t<§c%:áðØb¥dˆSµ”ÔUßE¤tã žß!ÍDûc# Yùdc0Ê4z R<ÃbrŠHYcdé¤N™î`è`„P4-›èe£hRÉ3žÚ ºÝlþâ ²Ú=R”jq%už™ÆhJÁ`$ÈqD}BP›‡EâS9f¡1Úó4•¶j…Kf¼â¡¨[®¬ÑNòÄÂ(Ö-Nªµ%@2á¡ÝÃGY«*¡Çk»е fÀ$¯L̘ ˜ÉÀÛ¾ÔÆˆ8Kw,‚mll¼¤¤Ì$š+W 0Jù´ ZìáØÕŸÓ1s –rah¨µ)Í*ÕD)P„ßRÖ‰¡58&ÛÛ ·‹¶ÑÁÐÍa=‡ÅÎ@s6D‡J žP—ѯ¦PD^s¡hXÝÃb™Nl&5êq8!ûèR‚›Ìú]R¡Òx–%”¡´L˜1ªý™ax†¨wxv~sv~tqs{z[¿f †îØÃ ŽŽ Ùë-«¸3[;þʺ·a.ï8 ¡I$• ù~$÷Ю‰î«¼»F{§í=8-Rþ°–xkàÁe¸Z_M0ßDšù9ö¨-b×R/ÿZŽ¢ÿ]Ý^|úí¸Ûo,V×rðµîe¥öjñ²S©˜¦Öæ¶ßwG×™´Wçü{ýZ&lÎ-µÿsH2&Ôÿ:“eLÖÔ·7Ü'Jó)µÌkî½TÞTò´J2Ñ ¬"fëÝ‹ <·*K.ìÞœØ%#¤5ÿ4÷Á×¢×ïGϧ~kÍý…Ùï¾nÍGÕˆ\ÒFd@õ )DUã·Uµ>ù,±<åCD¶—>j‹ïiD@ݱ=à žr¼D9Jš¡€#F@5„n¤è¨ÇFWÑÇ:'|F¹e l±*Ã;Ç%{ô>8{C°!‡®Tš2‹6xm£f³ì4[;‡«ïÔŒŸQNß7øs‘”#G…¡u ˜[Ã4§BI ¯@¾.äKÑ¥–±Ä–]|°žm‘#^É/=qØ£ù„в!Þãõ ìÉ@¦_‡©Šñ±^Ÿ ‡’‡†Œxœ…TÛrÓ0}ÏW,šÂÀ0¶’–ÚÚ¦%I)3½êð¨ÚÛD [ª¤4éß³ò¥¤-ÐLFã•÷íž=ròa])¸E뤮S6Ї °.t)ëyÊ.ó£è=û ’“óqþc6……§üÙåÇ“Ïc`çßvÆœOò |?ÎOO€àÂ[YxΧg ØÂ{³ÇùjµŠW;±¶sžåëÀ2 °î1r &.}Éè´æ*¬vé_F»»»-Ž…¤=%B­X3¸ (ÊlTè–o–ò6ec]{¬}”ßdP´QÊ<®=¬ûP,„uèÓ¥¿¦þ7<^z…Ù :{¤Ñ²B+¼¶±±¦kQ…p$iymäøŸ,þð&á-] V²þUÊœ¿#ØÑ3ðT]WTჅÅë.ƒ7kÜlSm o{M¼¸¢ã¯´-ѦŒ&Y RF”í0»ØQôñJ–~AS_ɼ K …Ž”7ÚùÀŒ–Á­PrN)H*гDtɺÄuÜ #;Ö&\dðª’e©ý>ܧ5”èºÄC¥`Üîü#ÿzYž,¹‰8ê÷`HÉ2£Å†%%‹QßB#2Ëþ3-oD]“*ur•P*rË«ýì8ðášDlmm=ˆJt…•&ôQDÐRÞö4ïXÔ¨E…aà ©ÉNc±O-Œ¡DúåÓÓÙÉa>…„1ƒ°5™Î¦g“Ùa~ oSˆ›½ñùÙÑçO!&ß;­°Ù•u¡–%¾ŽcNg ~C¾sh¥PF[OË7MæÅùå×ñô"TBÖ1Ÿpª'¸:è$888x^‚¶mCNÈ¢£ÉÙ)ù­7÷¦cŸØùó3òr/QGÎZowï¾;CáµgÙX›;+ç ¯ z܇íápmGÛÃ6ÁÛà'¢û^Ñ'ã¹ÖópQuÅÍ#IYö…â‹&žQ 3«báÄŸ¸YmS#{ R·õˆðTÔK¡Ú±tŒnI÷â^{~¥Ë»ækB7.üµáZˆ_‘B txœÍW[Sã6~ϯPUJYfl%ì>,Ä1°:.%;´OŒb+±Šb I¹0;ûß{dËÁèìvÚp\v œrtiI÷òh¬I¬­l9’ȿ„„Ka÷œ­|,k.Ÿ¾ù¤Qöþ®ÖlÖ)Ó ù ísMi¤j¦Cþe|–¼ãïó^öN†vpâxœVMsÛ6½ûWl1nn$$'‡Ø&»²=éL>ÜFž¶G˜„I4  $ÿû.@P–µ¶{áÐÛ·‹·‹GeÖ­„%7V¨.'ÓtB€w¥ªDWçän~“¼'Š£ì§«¯³ù_·×Ð8ÄßÞýòéׄÒ?ÞÎ(½š_ÁŸçŸ?À7gDé(½þB€4Îé3JW«Uºz›*SÓùïtíY¦>,¾&6Ĥ•«f I°°Î榧§§Cñ 3É|­¼#°yóœUÅ@ÖrÇÀ³$|Ñ‹eNfªs¼sÉüQså°Ê‰ãkG=ë9” 3–»¼wx~ ^€$žǬֱΥ‹J•$!‡NòbÁ­†3¸CØåƒ+ÞªŒ•¢û†ËœX÷(¹m8wÖK(­%Ðþ4<Ó°í+¡ÃÉ2Çî%‡{e*nr‚}+¹”šUCëâÚjVŽë•¨\ƒ=žL~ö9ã”Ï”­¬óÌÜX2)j‡…Áu‘±Xè*¾NƒôÅGÕòŒ²Þ´¢ª”;‡ ,Pr—RÂlØùüCß•p;âfÜÛ‰A%«Æ?¼ úT_–…K;õ]°´T-Å6Ñwé{ʤLøšµZn*»ŽKŸ"£HtäÙõ/üÖLG±B;ÉAd3E$ÊÞXÛßGxFý~¦ãã㱺3XIÅmi„ö‡ó•Ub9’…ßHá¥ëXËý†cBZOΪ‹ŒgÕ¸êåp¢>cÆd/£`RÕI©uæpetÀ¥ˆÛUì…ü͋؛ÿÅÝ‹‘÷âuìäÕóºxÔëU ÜÏh˜_©HËD÷|ÍõúšwWÚ¨ÿN²ë˜ßÊFÃtêbÞpˆáPáêð[À·Ð¨8½åON±@‡´Ü`3µ2.&ÿ 7¿…Í[Üô)Òaþõxm#»ô®†7E´5XS¢µ¬Þ¯9Õ]íÖ3d86Ëx_/..r¸£Ú‡ ùnm‘5Æ/ý½ÝsÒѶ·½ø£~òô]z>æüÁ‘b¦ô£uãàM‰¯çp2™L’“Éô$xçvðÉVðV­ÿ ð´VªöŸ tSMw[°¯>Üõ7/ÝÐ轄ÛՆɎHqkð3ëz&‡VDÆÿ?l´§÷ªz ßIŽâè! VÓè÷“ñßW§¬òhõå·‹óÆ!þÜ?b4±¿>Œ//`×ÞªÒ qú‘3^yß q{{›Þî§ÆNÅø³¸£(r‹Ÿ‰ >©ô’c¶5nøD€ÁÁÁAçÇÉèP„ÎÖ_ ™÷Ëjð£( Ìæj1ä'¦ñÐød¼l³² ¹‡;/(ê+«Â:ðùŸàú™ ’„ÍÐÂU…†f^ƒ-¼±iÙ¶,IB&¯¼†|®e‡ì_ëÏ›‰a'ºpŽ}† Xd2Ñ™’“VÍWfA¹óK ®ðœyÄ!•ÎqVY˜D ÞiøMÈD·ÒÌ7رìcKк-dWÊ8vmQ®Æ·Jú kÞïÿL„yK/ÉJÂ:ä­qž"ƒålQh5Ey”HŽó¬ˆ€T#á. ¥È?˜Väl·VRÄÖf!$¸hø«Ö!àž±ŸÌ›Ò£ 7=ÎVÿ¶|I™ãËÒ‹È‘Ð{|Q<3Ÿ6æ«*ÒÒÔBšR¼M߉Úȹ^ƒºìF<¢Gq6kÿJµX1äM„¶Où𢆸+ê+ÆÂé^6×!àÊSÃô`ƒÇ7Eª´ãù(|€d#p¥U--y”‘¢ Ìƒ5’Ï¿¯¹ju¼³³³i™ÜX“ â¬ÍÇlk7¤Û¤P j‡µ8ÃNÙº x){b—ÆBš¦ô6&>>>Þ Ý¥´°Zî%ž3|2Ôi³V¢…Öšœ3¨½7ª)õ\ÛÕþh3Úî”ä@Ž”Ñ¢"ë÷4Ó&ô>©¡¾Ás/ÖÿB9ÏÌ„(µ8ó ëRÑšUSáÆ÷X—8ù¨&+ ¬ ‹§ù–÷¥í(ØU˜ ²Ú{F 8ñëÔ¢Íñ€ž—~N¼¿lýRuè¤â¯Ûq3:å›idüÓuuD†² ‘Å£‡I0J[ŠçBª;£UÂÓèÛûUK÷J`h©ÊBÿ@pܾìà}ÜY°ÔËŽ:åë˜;]÷ÔWÁS_åXࢌ=QŽGÖòü¬Ùùè_dÀóGâ–Y§xA5¦Ø:ÖçöóG!6ô ;¶Å³.Ï*KC:´ßU¯ßlàºûýE Ç־ƒó®ÕÇoÉ?æÐ0ñÔÂÚ¥UÓʳÝ?Ø^¿ßOöúƒ½Ðp7÷6œÝ¢tð> éÔ˜)Ý[P=­¸¿JÑžï:×u‡ þ¥ï„ô á&Ú€‘o‘=xY4óBwˆ·. qbͽ¸1r.W(ì¼÷ pU­0—ðF<4Îyà¿ñÞú·ør33±e "EÕ¿eöØß篗¿ýÑíô÷J½;+¢Ë0Űæjäa.(±åÝ ¨üUDÒ÷uôá‚°¬ÅEãVrϽ-QÞ.¨ÄÀS*ˆÒ˜;˜Ë‘ ­ìQ¨".™¸^O¶³žXÓ’×G/Ìvx“m¶ôÏû»íüŸ9 LÝ÷J¸Þ²T°)QÔrÔK;ûä1Õ»§d”ógZEp®üYaðû|Nl_ìž"£ˆHdTx–ÉFn—&“8Ÿ ÛE´ôоúa (Á¬}ÙØ.Ä\Ñ«ÀöA^.Ô‹¿ƒ¬Pãš>‘ŠÇ@uõ—^9‡aLD–i b•Ád¬’lVísÐ1ð*ÈüUé»ÞS&Ô„Dkü?å,w“ÕÚ(³;¸ŒÍ9º¬6Õüe‹ëV} íÚ|ž‡³ñ{è©Ð±õäÄßÅ3õºÿ"©ø¾]áïÀg2W®®;' ’I¤JKK­ù§Dð©U²ví܆q‘‘´ Yc§)¥êî/os–¶8›0nÍ̺ý-W[?ÇêZü¨¥!7ë1ؼ>5ñÉ¢ô$»Sgˆ~HSŠûh»ƒ†™ Ø!<èážÂyï†\ Xˆ¥šH¥wß1ÕªÀük¶J²âÐy z•‹&!¡4Ä:IA±Ë¨ D‚YVíþ­ó}ÍSüX µ<…#¡+ÉÂ`¢ á EÓI¶Kú¹tc+.\hçLv·òã–¤»¨âŠ”…=wyùÿ=O…{·É‰+.Õ<®vuà2Dˆþ–Éz"ÎS/br}ÆHR9‰pÛ\™¹\– Ìâš |ðnÆÌgmjΑ€UNüsaz¯ú¡ôÄ-ÔÏÕïG†yå­ Ñ÷p,½ò¯>¸ÉŸ²‘€;æf¥’†¹\è3ºè0*5ç11¨˜ÁôaäOYŒÿñ!ËÚäÂÑÊÓvÍ?òƒÜX†ü<¥œœ›¿è«KÞè[ƒ•Óꢠ!…Ù»H¿²C¾{š?ê à!ÝöIœ6 ¾Åœ«L¹…ãK\KÙüƒÅ3ع•M9ô5EȦö”üøøxÃ)yv2ž‚v‡¡ÀÁvs,tSŸ–/ÜFäWÅûŒ¥Ëއ{‘vS‰Ü+ÜÉn>¬€7šßÎÑ!¡ÃÓ{ÁFcû¾6à¨V«¹GµÃ#sÿPd>*0/]—ØØ<¤Þˆó‘¾ÆÁð¥è…;…_cŒD)8ágl÷Lû Ûp%¸^ð²H.LXÔÖè蔜d»^Ä|Ãë˜X‰¥;;0÷½?àá½¹kBdµ÷þ“[ÖŽ ŽýŽ`¡D5 xœí[[sÛ¸~÷¯À2YWvW¢Ý‡nI|k<ã[6ò¸éÌD@Ö A eµ“ÿÞ^dR"EJ¶ã8©4|ç‚À!Ù}wçqtK¥bÂïY»­ Qß„ùnϺQx›t6xœíYÝsÚ8Ï_±çö2m¦¶IÚ‡–¯¦GÈ%7M“tr÷Ô¶]lË‘$Óéÿ~+Y&6` ¤÷ЙãÁXÒîj?~»’¥æû»8‚)’ñ¤åz5hð%£–ó¥ê¾uÞ·÷š¿œ\vú_ua¬þêËoÏ;฾ýºãû'ýøë¬ñPô”`òýî'œ±RiÝ÷g³™7{íq1òûúwZÊ¡f³¯®4<^¨Bg3“ b‰l­pøîÝ»ŒÏÑDõˆh]iâÀüMË $lï4cªh).½°iËéðDÑD¹ýû”:d­–£èòµÔc"$U­‰¢ýà9Š©ˆ¶o©L¡TJ2¢×, ùÌC÷ŽÄiDá”áãÍZÒ×ÔŠø Ô/›~&L‹Xr‚F-Gª{äSªP¨›U)Ò± CKá›§gºQ³¦ŸYÚTd€s¸©h9Ç€FQJÂ,”¶-Säí Õc^«ýª¦„~„DD¢ßS.•–L…S±Â#@Ga»Ý$V!4ˆÞy&í3Ó¦OÚ°³0äªs2#’JKø!Š “õTÐ'I EŽÓ¼¯Äƒž Ûøú¡ÐnŽsŒ“öºX¡÷ÑltK’sɘD‘+'˾!˜M_3ëq]xþüùr7¤2,Õ¦€ë"_ȦùÔfÌikG$$¦ºCIô8½×LÍIƒ4EBü•txcŒœ¶p°§Gᎇ“ jÌ‚Ña> vx>*éç|„LÔ˜ ¸`˜+ïáŠGø¢ì¨ŸûdoIA´ <@‘ }Ɔ œ¾Ûë}ø½{}þéäòúëÙל;ò²„V²ož> ¢IHa?RÏ'<¸¹fሪý‘Öv*”Dô1_»!Û]@wŠÑ+r/³¯ ñBøàŒ$!Ö•P!¸€Mà˜ÍâŒRz‹¡Zšç†Þϰ–8mÓ¶de0Ô+8ÒÉá³”ht]+Ô[Üo•OR5·Þõ7º?œïþuqˆÆÚ_\îï#«iÛW¿îÛöÁàýóãàôôYKæhÛ><³5Ö:hÛöd2iM~m éÚƒ?ì;#e×tK.›*êÓ"šX0Z4óU¯@ÀîÛ·oã~–iÔæØ`¥¾…fWFŤ¿P×£##¥IoBvÛ³ö…¯©¯›ƒi@-äÄ¥ž¥é¶ÔrÆX*ª{¡þÈŽäh¦9íßP 6:¥Ja—^1ŸˆIË tx‡½€StÄà¯Aã’²M{í…ö[];hDsæ_#IyÏRz ½Æ”j iÀ—Àr”²ÐXÒQÒÂŽþ[Ñm@×µcm»aô¡„Êž¾t(ç&±;“² °“–'Œè1ø}gçgc4-ÍAÇ l¥d*-t‹9s!D0”û]œ•è]+rGÿ£ðhׯ}´é1B„î Y³H$UIÜ£ýøNIûQè;‚2Ûã(½—ë–$}ø“æÏ ßï¦*DF¶úËýöÛÅÁ0~ÚOy˜ó¦ ‡‰€J‡vmÓÝL•f½~ýº²C“PåH…P³ = »M‡ê¬¾1‡=jnh̸»ƒêÝ@Ò´)ˆ‚†ðËáw„秬¾½½½ajÑ6z?2±¹dV=”ŒŽòõèØ(a$aƒ³5k«è¼¤ñ¬‡z,$:e0Þ¡ ÁáB'µvj§È S …B¨þŠù E›\w”&L´Æ›®ñvÜ¿v÷›bdj|seQ€äS"iOÜ­…ƈØ’~0KdԵ圆@'¹¦2+cQÈ5N€¬>ÒI»|C6PÄ—TçjE@%ÖÁvÚ;gÑ’ÆívÒúêøìàüêÏÁñàä•4îâ2 ƒïZýœQ-&Cšë,b2–l” ² Ëc:w3¶’‰“þžjŽV:VçK›Þ/­° wJÉ{•hŒ‰.ÄÏQ)…«¢Å' Öˆ™ä8¶×ŸÆ.CÌ#¼¯bÙлIýÐKÇ‚rV#}%VYgÕ*óûö}¤Í âqÕ„igœJn˜Á¶æ:.à`EN˜Ë-}@‡¡ 73¦nB\URJ?ûéâÚßc%$ù9½r+q þ=©Ï 7é|c6½ÂÒlÏfÕdüïήû’]bþl†M|w–=ÂúÍþUmJè‡\}U/}Iáúì?” /9ŽG>²ú_mûq+YkGTêª+‰áR~w›…ª“Ðj›…¬/ÖŸçž9Ó§»À耟5KTÛ)G³òH<Ê䯋 ÙQãFµ6òFÀü¾Ø^l4ÛX=òÿ§åîÍÓ·Vàœ‹¥•L)8(ƒÌdkDÊ=xÎ_@T%%ªkdâLÙb¦«Ÿ ÂÑn ÄgdêcoM§.1ñv!­,qUÙt¬ï«{º|‚Ùš#ïÿo§¶©Ê˜ÝÀ€•yÀç]eê¬Ë?Rj()¾Î%`¿×H ™¬ Uó|Ïðjí¨!Уó³r²÷ïøî«££ø%%CgùÓhÉáz  ÿ¯„Ó6@WóòBãñòZe»£•v1¥ Åý9röÌz…gnN¢Tõ3©*¦[9=‡¥²V>å—,Û¯óô­–žÁüÇ®/dÕ"ò¢4ú0²ê1ê‹RèLì…Z ÿÁûçV$òLñaþ‡MÓÆV§4' ë’¤ˆ„^PÇ¥OµBîE«Î‹\*MaïX4öÈâÇX#=Ñjøìö<¿þÖ¦ÿRpVpD5wÊÙЈ§|ºœÈ¿”Ÿ\3™þ›BÌ „R̼™¬…y·Úw)úÇå1"LRGÃH#)<¤Á^˜ ¡ÇTBäÁò0ó“ª"¥OÆ2¹–Ù:ê;8P!ÍNQ6÷dPÍ ¨£tº iX˜_ÛåÆªøþåÏÔïsï„®à|£gABi^*àÓÉ\¶$ÎpÌ\f»FJ¯0A¹þa§* Tã¡U”‰i?Žw—fÒ1áýUSý3—ÕLš?,O]ÿQBud¯”ö­ÌB›$Ú»6ìJÍw„Ý&¯ü¿ÿ¾ò•ÿø5ÿÙà,B$T÷»ciŠæÕÿ¹,Ò¯9²Ÿh,|¿qÿ©G¿«eŠ=nÅs$~3ý“18Mî‹`*™;ÖhÓËzûâæ›Ý7Ñ'ÙÎo2¾I΄¶\!\óe Ä\v¸ÓŠJ†y+”?Gå (£ )þ‚ À¹³h#ŒVÎHÉ­9§Ø1½’HÌ}’TÌlo™FŸÏÀ|èoüKY÷ YY…$ŠL yxœÕUMÚ0½#ñ,í•Ð$¨¼'Tv¥J=õл;`áxRÇ|mÕÿ^çÃ&N–Õ¶§n"Dä™yö<¿™!Xpy˜!‚O¼âšQôk:AæÉ@€Âè! ׋øù±]Ôì¢Ê2PDsI¬³å upf|·×¥ ¨Yÿ=L')ЫE­ê(U–aˆ¢eyùÍc´Qœˆª jÇe ¡ÄèsR^,Ò>²8­F¡3Åþ‰ÁŽÃv빘çr†ª’Hóa£‚^‚e*P„òc…Ѻ¼ôÝáLŽéë÷9¿Ï‰d‡‚£¤eýyU¿>È™S½Ç(‚Wú*FN}‹E{ZÕog;[`²Ï¸Üa´ph%¡Ô.¡隤‚ÍP©ØÇáªa©edýAʪ¦•ĨÙSqÅ_Œ%ŠÝ®¦FX°ï´måë4­¡À(N\@g,¯†l"íÊÌc½vl>jå"Ôœ˜“똆óž»$,3«úy¥÷q|:_GܯCÇ@åd)ˆo ͳ²´ñ”W¥ WÓ0d‡G¿¸£°[€S¹€3F{N)“ƒåàrÏpÛ5Á(ìþÜÁrÍÔ ·¦ %½ ™¬øªYñÍd6¸Æ@µYŒ½¿×–·oývŸ…ø?2£,'G1ʼ½ç[tbB|1)FûxŠ R\ÿð!N–Q´v ËFð|•oKwO¬Í\#uÄmƒKs-ØßUÝr¹I¢/ý~’“‚ Ãô¦(‘dÜj½4ûc´”¶ 5„„þE¹ÒKîUÞjdh÷JÌäoÆ9IMÏ<ºŒ:5Û-›¸›4dnæŽïæƒ ‰ív;¨­NûQèKÅ/¦v›¯ŸvP£;tÛÙ‡®ü/æ­u O÷‘"°FÚ£F³Ob Kexamples-qespta-qesptest-h.html qesp : QespTest.h Example File (examples/qespta/QespTest.h)b Kexamples-qespta-qespta-pro.html qesp : qespta.pro Example File (examples/qespta/qespta.pro)- !Eindex.html qesp : QextSerialPort Manual[G{examples-qespta-main-cpp.htmlqesp : main.cpp Example File (examples/qespta/main.cpp)5=9examples-enumerator.htmlqesp : enumerator DemojU examples-uartassistant-main-cpp.htmlqesp : main.cpp Example File (examples/uartassistant/main.cpp)hO examples-qespta-qesptest-cpp.htmlqesp : QespTest.cpp Example File (examples/qespta/QespTest.cpp)pYexamples-uartassistant-dialog-cpp.htmlqesp : dialog.cpp Example File (examples/uartassistant/dialog.cpp)mW examples-uartassistant-dialog-ui.htmlqesp : dialog.ui Example File (examples/uartassistant/dialog.ui)dQexamples-uartassistant-hled-h.htmlqesp : hled.h Example File (examples/uartassistant/hled.h)   4”G×q0óÄX&ž4hO examples-qespta-mainwindow-h.htmlqesp : MainWindow.h Example File (examples/qespta/MainWindow.h)g-examples-uartassistant-uartassistant-pro.htmlqesp : uartassistant.pro Example File (examples/uartassistant/uartassistant.pro)0=/images/uartassistant.pnguartassistant.pngjU examples-uartassistant-dialog-h.htmlqesp : dialog.h Example File (examples/uartassistant/dialog.h)-51examples-qespta.htmlqesp : qespta Demo;/Sportsettings.htmlqesp : PortSettings Class Reference?3Wqextserialport.htmlqesp : QextSerialPort Class ReferencedOexamples-enumerator-main-cpp.htmlqesp : main.cpp Example File (examples/enumerator/main.cpp)nSexamples-qespta-mainwindow-cpp.htmlqesp : MainWindow.cpp Example File (examples/qespta/MainWindow.cpp)K ?cqextserialenumerator.html qesp : QextSerialEnumerator Class Referencej U examples-uartassistant-hled-cpp.html qesp : hled.cpp Example File (examples/uartassistant/hled.cpp) ˆK›"+style/style.cssstyle.csswYexamples-qespta-messagewindow-cpp.htmlqesp : MessageWindow.cpp Example File (examples/qespta/MessageWindow.cpp)qUexamples-qespta-messagewindow-h.htmlqesp : MessageWindow.h Example File (examples/qespta/MessageWindow.h);/Sqextportinfo.htmlqesp : QextPortInfo Class Reference;C?examples-uartassistant.htmlqesp : UartAssistant Demov[examples-enumerator-enumerator-pro.htmlqesp : enumerator.pro Example File (examples/enumerator/enumerator.pro) ZÝÆ¯–}dI, îϰ‘pO. ì˪‰lO0øßÆ«uZ BAUD9600BAUD9600BAUD4800BAUD4800BAUD2400BAUD2400BAUD1200BAUD1200BAUD600BAUD600BAUD300BAUD300BAUD110BAUD110!!BAUD256000BAUD256000!!BAUD128000BAUD128000BAUD56000BAUD56000BAUD14400BAUD14400##BAUD4000000BAUD4000000##BAUD3500000BAUD3500000##BAUD3000000BAUD3000000##BAUD2500000BAUD2500000##BAUD2000000BAUD2000000##BAUD1500000BAUD1500000##BAUD1152000BAUD1152000##BAUD1000000BAUD1000000 !!BAUD921600BAUD921600 !!BAUD576000BAUD576000 !!BAUD500000BAUD500000 !!BAUD460800BAUD460800 !!BAUD230400BAUD230400BAUD76800BAUD76800BAUD1800BAUD1800BAUD200BAUD200BAUD150BAUD150BAUD134BAUD134BAUD75BAUD75BAUD50BAUD50!%%BaudRateTypeBaudRateType HãÆ©ŠgP9" ðÕ°nS:çÄZí¸kH!;%%QextPortInfoQextPortInfoK:-I5Timeout_MillisecPortSettings::Timeout_MillisecTimeout_Millisec-var399%StopBitsPortSettings::StopBitsStopBits-var-85!ParityPortSettings::ParityParity-var<7#?+FlowControlPortSettings::FlowControlFlowControl-var369%DataBitsPortSettings::DataBitsDataBits-var359%BaudRatePortSettings::BaudRateBaudRate-var!4%%PortSettingsPortSettings3PAR_SPACEPAR_SPACE2PAR_MARKPAR_MARK1PAR_EVENPAR_EVEN0PAR_ODDPAR_ODD/PAR_NONEPAR_NONE.!!ParityTypeParityType!-%%FLOW_XONXOFFFLOW_XONXOFF#,''FLOW_HARDWAREFLOW_HARDWARE+FLOW_OFFFLOW_OFF*FlowTypeFlowType)DATA_8DATA_8(DATA_7DATA_7'DATA_6DATA_6&DATA_5DATA_5!%%%DataBitsTypeDataBitsType$!!BAUD115200BAUD115200#BAUD57600BAUD57600"BAUD38400BAUD38400!BAUD19200BAUD19200 @Ë[&5í´]ùÒ‡@EJ;;)QextSerialPort::PollingQextSerialPort::PollingQueryMode-enumII??)QextSerialPort::QueryModeQextSerialPort::QueryModeQueryMode-enum%H))QextSerialPortQextSerialPortbG7c?~QextSerialEnumeratorQextSerialEnumerator::~QextSerialEnumerator dtor.QextSerialEnumeratorUF1]1setUpNotificationsQextSerialEnumerator::setUpNotifications setUpNotifications7EIgetPortsQextSerialEnumerator::getPorts getPortsFD'S'deviceRemovedQextSerialEnumerator::deviceRemoved deviceRemovedOC-Y-deviceDiscoveredQextSerialEnumerator::deviceDiscovered deviceDiscovered1B55QextSerialEnumeratorQextSerialEnumerator 3A9%vendorIDQextPortInfo::vendorIDvendorID-var6@;'productIDQextPortInfo::productIDproductID-var3?9%portNameQextPortInfo::portNameportName-var3>9%physNameQextPortInfo::physNamephysName-var9=!=)friendNameQextPortInfo::friendNamefriendName-var3<9%enumNameQextPortInfo::enumNameenumName-var 3±~9Ü£g+ÂŒS,ÿÌ–f31\=readDataQextSerialPort::readDatareadData.[;readAllQextSerialPort::readAllreadAll4Z?queryModeQextSerialPort::queryModequeryMode1Y=portNameQextSerialPort::portNameportName+X9parityQextSerialPort::parityparity%W5openQextSerialPort::openopen7V!A!lineStatusQextSerialPort::lineStatuslineStatus4U?lastErrorQextSerialPort::lastErrorlastError=T%E%isSequentialQextSerialPort::isSequentialisSequential(S7flushQextSerialPort::flushflush:R#C#flowControlQextSerialPort::flowControlflowControl:Q#C#errorStringQextSerialPort::errorStringerrorString7P!A!dsrChangedQextSerialPort::dsrChangeddsrChanged1O=dataBitsQextSerialPort::dataBitsdataBits(N7closeQextSerialPort::closecloseCM)I)bytesAvailableQextSerialPort::bytesAvailablebytesAvailable1L=baudRateQextSerialPort::baudRatebaudRateMKCC)QextSerialPort::EventDrivenQextSerialPort::EventDrivenQueryMode-enum >Ĉ[à¤e8üÃZÙ¶Ÿ„m>-o11UartAssistant DemoUartAssistant DemonSTOP_2STOP_2mSTOP_1_5STOP_1_5lSTOP_1STOP_1!k%%StopBitsTypeStopBitsType3j77QextSerialPort ManualQextSerialPort Manual Ji+K3~QextSerialPortQextSerialPort::~QextSerialPortdtor.QextSerialPort4h?writeDataQextSerialPort::writeDatawriteData1g=stopBitsQextSerialPort::stopBitsstopBits7f!A!setTimeoutQextSerialPort::setTimeoutsetTimeout:e#C#setStopBitsQextSerialPort::setStopBitssetStopBits+d9setRtsQextSerialPort::setRtssetRts=c%E%setQueryModeQextSerialPort::setQueryModesetQueryMode:b#C#setPortNameQextSerialPort::setPortNamesetPortName4a?setParityQextSerialPort::setParitysetParityC`)I)setFlowControlQextSerialPort::setFlowControlsetFlowControl+_9setDtrQextSerialPort::setDtrsetDtr:^#C#setDataBitsQextSerialPort::setDataBitssetDataBits:]#C#setBaudRateQextSerialPort::setBaudRatesetBaudRate ¶×¶q##qespta Demoqespta Demo'p++enumerator Demoenumerator Demodlt-viewer-2.18.0+dfsg/qextserialport/doc/html/portsettings-members.html0000664000175000017500000000415613001357026026110 0ustar potyrapotyra qesp : List of All Members for PortSettings
    Home · All Classes · All Functions ·
  • Modules
  • PortSettings
  • List of All Members for PortSettings

    This is the complete list of members for PortSettings, including inherited members.


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/qesp.qhp0000664000175000017500000003060613001357026022506 0ustar potyrapotyra com.google.code.qextserialport.120 qdoc
    examples-uartassistant-hled-h.html examples-uartassistant-dialog-ui.html examples-uartassistant-dialog-cpp.html examples-qespta-qesptest-cpp.html examples-uartassistant-main-cpp.html examples-enumerator.html examples-qespta-main-cpp.html index.html examples-qespta-qespta-pro.html examples-qespta-qesptest-h.html examples-uartassistant-hled-cpp.html qextserialenumerator.html examples-qespta-mainwindow-cpp.html examples-enumerator-main-cpp.html qextserialport.html portsettings.html examples-qespta.html examples-uartassistant-dialog-h.html images/uartassistant.png examples-uartassistant-uartassistant-pro.html examples-qespta-mainwindow-h.html examples-enumerator-enumerator-pro.html examples-uartassistant.html qextportinfo.html examples-qespta-messagewindow-h.html examples-qespta-messagewindow-cpp.html style/style.css images/uartassistant.png dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-enumerator-main-cpp.html0000664000175000017500000001243213001357026027406 0ustar potyrapotyra qesp : main.cpp Example File (examples/enumerator/main.cpp)
    Home · All Classes · All Functions ·

    main.cpp Example File

    examples/enumerator/main.cpp
        /**
         * @file main.cpp
         * @brief Main file.
         * @author Micha? Policht
         */
    
        #include "qextserialenumerator.h"
        #include <QtCore/QList>
        #include <QtCore/QDebug>
        int main()
        {
            QList<QextPortInfo> ports = QextSerialEnumerator::getPorts();
            qDebug() << "List of ports:";
            for (int i = 0; i < ports.size(); i++) {
                qDebug() << "port name:" << ports.at(i).portName;
                qDebug() << "friendly name:" << ports.at(i).friendName;
                qDebug() << "physical name:" << ports.at(i).physName;
                qDebug() << "enumerator name:" << ports.at(i).enumName;
                qDebug() << "vendor ID:" << QString::number(ports.at(i).vendorID, 16);
                qDebug() << "product ID:" << QString::number(ports.at(i).productID, 16);
                qDebug() << "===================================";
            }
            return 0;
        }


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-uartassistant-uartassistant-pro.html0000664000175000017500000000365113001357026032134 0ustar potyrapotyra qesp : uartassistant.pro Example File (examples/uartassistant/uartassistant.pro)
    Home · All Classes · All Functions ·

    uartassistant.pro Example File

    examples/uartassistant/uartassistant.pro
        #-------------------------------------------------
        #
        # Project created by QtCreator 2011-11-06T21:37:41
        #
        #-------------------------------------------------
    
        QT       += core gui
        contains(QT_VERSION, ^5\\..*\\..*): QT += widgets
    
        TARGET = uartassistant
        TEMPLATE = app
    
        include(../../src/qextserialport.pri)
    
        SOURCES += main.cpp\
                dialog.cpp\
                hled.cpp
    
        HEADERS  += dialog.h \
                    hled.h
    
        FORMS    += dialog.ui


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/qextserialport-members.html0000664000175000017500000004431513001357026026432 0ustar potyrapotyra qesp : List of All Members for QextSerialPort
    Home · All Classes · All Functions ·
  • Modules
  • QextSerialPort
  • List of All Members for QextSerialPort

    This is the complete list of members for QextSerialPort, including inherited members.


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/all-examples.html0000664000175000017500000000234513001357026024275 0ustar potyrapotyra qesp :
    Home · All Classes · All Functions ·

  • Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-uartassistant-dialog-cpp.html0000664000175000017500000005241113001357026030446 0ustar potyrapotyra qesp : dialog.cpp Example File (examples/uartassistant/dialog.cpp)
    Home · All Classes · All Functions ·

    dialog.cpp Example File

    examples/uartassistant/dialog.cpp
        #include "dialog.h"
        #include "ui_dialog.h"
        #include <QtCore/QStringList>
        #include <QtCore/QTimer>
        #include <QtCore/QVariant>
        #include "qextserialport.h"
    
        Dialog::Dialog(QWidget *parent) :
            QDialog(parent),
            ui(new Ui::Dialog)
        {
            ui->setupUi(this);
    
        #ifdef Q_OS_WIN
            ui->portBox->addItems(QStringList()<<QLatin1String("COM1")<<QLatin1String("COM2")<<QLatin1String("COM3")<<QLatin1String("COM4"));
        #else
            ui->portBox->addItems(QStringList()<<QLatin1String("/dev/ttyS0")<<QLatin1String("/dev/ttyS1")<<QLatin1String("/dev/ttyUSB0")<<QLatin1String("/dev/ttyUSB1"));
        #endif
            //make sure user can input their own port name!
            ui->portBox->setEditable(true);
    
            ui->baudRateBox->addItem(QLatin1String("1200"), BAUD1200);
            ui->baudRateBox->addItem(QLatin1String("2400"), BAUD2400);
            ui->baudRateBox->addItem(QLatin1String("4800"), BAUD4800);
            ui->baudRateBox->addItem(QLatin1String("9600"), BAUD9600);
            ui->baudRateBox->addItem(QLatin1String("19200"), BAUD19200);
            ui->baudRateBox->setCurrentIndex(3);
    
            ui->parityBox->addItem(QLatin1String("NONE"), PAR_NONE);
            ui->parityBox->addItem(QLatin1String("ODD"), PAR_ODD);
            ui->parityBox->addItem(QLatin1String("EVEN"), PAR_EVEN);
    
            ui->dataBitsBox->addItem(QLatin1String("5"), DATA_5);
            ui->dataBitsBox->addItem(QLatin1String("6"), DATA_6);
            ui->dataBitsBox->addItem(QLatin1String("7"), DATA_7);
            ui->dataBitsBox->addItem(QLatin1String("8"), DATA_8);
            ui->dataBitsBox->setCurrentIndex(3);
    
            ui->stopBitsBox->addItem(QLatin1String("1"), STOP_1);
            ui->stopBitsBox->addItem(QLatin1String("2"), STOP_2);
    
            ui->queryModeBox->addItem(QLatin1String("Polling"), QextSerialPort::Polling);
            ui->queryModeBox->addItem(QLatin1String("EventDriven"), QextSerialPort::EventDriven);
    
            ui->led->turnOff();
    
            timer = new QTimer(this);
            timer->setInterval(40);
            PortSettings settings = {BAUD9600, DATA_8, PAR_NONE, STOP_1, FLOW_OFF, 10};
            port = new QextSerialPort(ui->portBox->currentText(), settings, QextSerialPort::Polling);
    
            connect(ui->baudRateBox, SIGNAL(currentIndexChanged(int)), SLOT(onBaudRateChanged(int)));
            connect(ui->parityBox, SIGNAL(currentIndexChanged(int)), SLOT(onParityChanged(int)));
            connect(ui->dataBitsBox, SIGNAL(currentIndexChanged(int)), SLOT(onDataBitsChanged(int)));
            connect(ui->stopBitsBox, SIGNAL(currentIndexChanged(int)), SLOT(onStopBitsChanged(int)));
            connect(ui->queryModeBox, SIGNAL(currentIndexChanged(int)), SLOT(onQueryModeChanged(int)));
            connect(ui->timeoutBox, SIGNAL(valueChanged(int)), SLOT(onTimeoutChanged(int)));
            connect(ui->portBox, SIGNAL(editTextChanged(QString)), SLOT(onPortNameChanged(QString)));
            connect(ui->openCloseButton, SIGNAL(clicked()), SLOT(onOpenCloseButtonClicked()));
            connect(ui->sendButton, SIGNAL(clicked()), SLOT(onSendButtonClicked()));
            connect(timer, SIGNAL(timeout()), SLOT(onReadyRead()));
            connect(port, SIGNAL(readyRead()), SLOT(onReadyRead()));
    
            setWindowTitle(QLatin1String("QextSerialPort Demo"));
        }
    
        Dialog::~Dialog()
        {
            delete ui;
            delete port;
        }
    
        void Dialog::changeEvent(QEvent *e)
        {
            QDialog::changeEvent(e);
            switch (e->type()) {
            case QEvent::LanguageChange:
                ui->retranslateUi(this);
                break;
            default:
                break;
            }
        }
    
        void Dialog::onPortNameChanged(const QString & /*name*/)
        {
            if (port->isOpen()) {
                port->close();
                ui->led->turnOff();
            }
        }
    
        void Dialog::onBaudRateChanged(int idx)
        {
            port->setBaudRate((BaudRateType)ui->baudRateBox->itemData(idx).toInt());
        }
    
        void Dialog::onParityChanged(int idx)
        {
            port->setParity((ParityType)ui->parityBox->itemData(idx).toInt());
        }
    
        void Dialog::onDataBitsChanged(int idx)
        {
            port->setDataBits((DataBitsType)ui->dataBitsBox->itemData(idx).toInt());
        }
    
        void Dialog::onStopBitsChanged(int idx)
        {
            port->setStopBits((StopBitsType)ui->stopBitsBox->itemData(idx).toInt());
        }
    
        void Dialog::onQueryModeChanged(int idx)
        {
            port->setQueryMode((QextSerialPort::QueryMode)ui->queryModeBox->itemData(idx).toInt());
        }
    
        void Dialog::onTimeoutChanged(int val)
        {
            port->setTimeout(val);
        }
    
        void Dialog::onOpenCloseButtonClicked()
        {
            if (!port->isOpen()) {
                port->setPortName(ui->portBox->currentText());
                port->open(QIODevice::ReadWrite);
            }
            else {
                port->close();
            }
    
            if (port->isOpen()) {
                if (port->queryMode() == QextSerialPort::Polling)
                    timer->start();
                ui->led->turnOn();
            }
            else {
                timer->stop();
                ui->led->turnOff();
            }
        }
    
        void Dialog::onSendButtonClicked()
        {
            if (port->isOpen() && !ui->sendEdit->toPlainText().isEmpty())
                port->write(ui->sendEdit->toPlainText().toLatin1());
        }
    
        void Dialog::onReadyRead()
        {
            //EventDriven test.
            if (qApp->arguments().contains(QLatin1String("--debug")) && port->queryMode()==QextSerialPort::EventDriven){
                ui->recvEdit->appendPlainText(QString::number(port->bytesAvailable()));
                return;
            }
    
            if (port->bytesAvailable()) {
                ui->recvEdit->moveCursor(QTextCursor::End);
                ui->recvEdit->insertPlainText(QString::fromLatin1(port->readAll()));
            }
        }


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/functions.html0000664000175000017500000012074213001357026023723 0ustar potyrapotyra qesp :
    Home · All Classes · All Functions ·
  • A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-qespta-messagewindow-h.html0000664000175000017500000001606613001357026030126 0ustar potyrapotyra qesp : MessageWindow.h Example File (examples/qespta/MessageWindow.h)
    Home · All Classes · All Functions ·

    MessageWindow.h Example File

    examples/qespta/MessageWindow.h
        /**
         * @file MessageWindow.h
         * @brief Message Window.
         * @see MessageWindow
         * @author Micha? Policht
         */
    
        #ifndef MESSAGEWINDOW_H_
        #define MESSAGEWINDOW_H_
    
        #include <QDockWidget>
        #include <QTextEdit>
        #include <QEvent>
    
        /**
         * Message Window. Handling errors and other messages.
         */
        class MessageWindow: public QDockWidget
        {
                Q_OBJECT
    
                QTextEdit msgTextEdit;                          ///< Main widget.
                static MessageWindow* MsgHandler;       ///< Set in constructor.
                static const char* WINDOW_TITLE;        ///< Window title.
    
                private:
                        static QString QtMsgToQString(QtMsgType type, const char *msg);
    
                protected:
                        /**
                         * Handle custom events. MessageWindow hadles custom events listed in
                         * EventType enum.
                         */
                        virtual void customEvent(QEvent* event);
    
                public:
                enum EventType {MessageEventType = QEvent::User};       ///< Custom event types.
    
                        /**
                         * Default constructor.
                         *      @param parent parent widget.
                         *      @param flags widget flags.
                         */
                        MessageWindow(QWidget* parent = 0, Qt::WFlags flags = 0);
    
                        /**
                         * Append message wrapper. Since ISO forbids casting member functions
                         * to C functions, wrapper is needed to use this class as QtMsgHandler.
                         * This method is thread-safe but not reentrant.
                         *      @param type message type.
                         *      @param msg message string.
                         */
                        static void AppendMsgWrapper(QtMsgType type, const char *msg);
    
                        /**
                         * Post message event to the main event loop. This function encapsulates
                         * message into MessageEvent object and passes it to the main event loop.
                         *      @param type message type.
                         *      @param msg message string.
                         */
                        void postMsgEvent(QtMsgType type, const char *msg);
    
        };
    
        /**
         * Message Event. Custom event used by @ref MessageWindow to provide multi-threaded
         * access. Encapsulates message inside @a msg variable.
         */
        class MessageEvent: public QEvent
        {
            public:
                QString msg;    ///< Message string.
    
                /**
                 * Contructor.
                 *      @param msg message to post.
                 */
                MessageEvent(QString & msg);
        };
    
        #endif /*MESSAGEWINDOW_H_*/


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-qespta-qesptest-cpp.html0000664000175000017500000003456013001357026027454 0ustar potyrapotyra qesp : QespTest.cpp Example File (examples/qespta/QespTest.cpp)
    Home · All Classes · All Functions ·

    QespTest.cpp Example File

    examples/qespta/QespTest.cpp
        /* QespTest.cpp
        **************************************/
        #include "QespTest.h"
        #include "qextserialport.h"
        #include <QLayout>
        #include <QLineEdit>
        #include <QTextEdit>
        #include <QPushButton>
        #include <QSpinBox>
    
        QespTest::QespTest(QWidget* parent)
                : QWidget(parent)
    
        {
                //modify the port settings on your own
            #ifdef Q_OS_UNIX
                        port = new QextSerialPort(QLatin1String("/dev/ttyS0"), QextSerialPort::Polling);
                #else
                        port = new QextSerialPort(QLatin1String("COM1"), QextSerialPort::Polling);
            #endif /*Q_OS_UNIX*/
                port->setBaudRate(BAUD19200);
                port->setFlowControl(FLOW_OFF);
                port->setParity(PAR_NONE);
                port->setDataBits(DATA_8);
                port->setStopBits(STOP_2);
                //set timeouts to 500 ms
                port->setTimeout(500);
    
                message = new QLineEdit(this);
    
                // transmit receive
                QPushButton *transmitButton = new QPushButton(tr("Transmit"));
                connect(transmitButton, SIGNAL(clicked()), SLOT(transmitMsg()));
                QPushButton *receiveButton = new QPushButton(tr("Receive"));
                connect(receiveButton, SIGNAL(clicked()), SLOT(receiveMsg()));
                QHBoxLayout* trLayout = new QHBoxLayout;
                trLayout->addWidget(transmitButton);
                trLayout->addWidget(receiveButton);
    
                //CR LF
                QPushButton *CRButton = new QPushButton(tr("CR"));
                connect(CRButton, SIGNAL(clicked()), SLOT(appendCR()));
                QPushButton *LFButton = new QPushButton(tr("LF"));
                connect(LFButton, SIGNAL(clicked()), SLOT(appendLF()));
                QHBoxLayout *crlfLayout = new QHBoxLayout;
                crlfLayout->addWidget(CRButton);
                crlfLayout->addWidget(LFButton);
    
                //open close
                QPushButton *openButton = new QPushButton(tr("Open"));
                connect(openButton, SIGNAL(clicked()), SLOT(openPort()));
                QPushButton *closeButton = new QPushButton(tr("Close"));
                connect(closeButton, SIGNAL(clicked()), SLOT(closePort()));
                QHBoxLayout *ocLayout = new QHBoxLayout;
                ocLayout->addWidget(openButton);
                ocLayout->addWidget(closeButton);
    
                received_msg = new QTextEdit();
    
                QVBoxLayout *myVBox = new QVBoxLayout;
                myVBox->addWidget(message);
                myVBox->addLayout(crlfLayout);
                myVBox->addLayout(trLayout);
                myVBox->addLayout(ocLayout);
                myVBox->addWidget(received_msg);
                setLayout(myVBox);
    
                qDebug("isOpen : %d", port->isOpen());
        }
    
        QespTest::~QespTest()
        {
            delete port;
            port = NULL;
        }
    
        void QespTest::transmitMsg()
        {
          int i = port->write((message->text()).toAscii(),
                               (message->text()).length());
          qDebug("trasmitted : %d", i);
        }
    
        void QespTest::receiveMsg()
        {
                char buff[1024];
                int numBytes;
    
                numBytes = port->bytesAvailable();
            if(numBytes > 1024)
                numBytes = 1024;
    
            int i = port->read(buff, numBytes);
            if (i != -1)
                        buff[i] = '\0';
                else
                        buff[0] = '\0';
                QString msg = QLatin1String(buff);
    
                received_msg->append(msg);
                received_msg->ensureCursorVisible();
                qDebug("bytes available: %d", numBytes);
                qDebug("received: %d", i);
        }
    
        void QespTest::appendCR()
        {
                message->insert(QLatin1String("\x0D"));
        }
    
        void QespTest::appendLF()
        {
                message->insert(QLatin1String("\x0A"));
        }
    
        void QespTest::closePort()
        {
                port->close();
                qDebug("is open: %d", port->isOpen());
        }
    
        void QespTest::openPort()
        {
                port->open(QIODevice::ReadWrite | QIODevice::Unbuffered);
                qDebug("is open: %d", port->isOpen());
        }


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-manifest.xml0000664000175000017500000000101113001357026025154 0ustar potyrapotyra uartassistant,demo examples/uartassistant/main.cpp dlt-viewer-2.18.0+dfsg/qextserialport/doc/html/demos-manifest.xml0000664000175000017500000000000013001357026024442 0ustar potyrapotyradlt-viewer-2.18.0+dfsg/qextserialport/doc/html/examples-uartassistant.html0000664000175000017500000000434213001357026026431 0ustar potyrapotyra qesp : UartAssistant Demo
    Home · All Classes · All Functions ·
  • Examples
  • UartAssistant Demo
  • UartAssistant Demo


    Copyright © 2000-2012 QextSerialPort Project
    QextSerialPort Manual
    dlt-viewer-2.18.0+dfsg/qextserialport/doc/qextserialport.qdocconf0000664000175000017500000000441313001357026024661 0ustar potyrapotyra# Run qdoc3 from the directory that contains this file. project = qesp description = QextSerialPort Reference Documentation url = http://code.google.com/p/qextserialport outputencoding = UTF-8 language = Cpp #Paths are relative to the location of this file headerdirs = . ../src sourcedirs = . ../src exampledirs = ../examples .. imagedirs = ./examples/images images Cpp.ignoretokens = QEXTSERIALPORT_EXPORT indexes = $QTDIR/doc/html/qt.index qhp.projects = qesp qhp.qesp.file = qesp.qhp qhp.qesp.namespace = com.google.code.qextserialport.120 qhp.qesp.virtualFolder = qdoc qhp.qesp.indexTitle = QextSerialPort Reference Documentation qhp.qesp.indexRoot = qhp.qesp.extraFiles = style/style.css #------------------------------------------------------------------ outputdir = html outputformats = HTML headers.fileextensions = "*.h" sources.fileextensions = "*.cpp *.qdoc" HTML.templatedir = . HTML.stylesheets = style/style.css HTML.headerstyles = " \n" HTML.endheader = "\n" HTML.postheader = "\n" \ "\n" \ "
    " \ "Home ·" \ " All Classes ·" \ " All Functions ·" \ "
    " HTML.footer = "


    \n" \ "\n" \ "\n" \ "\n" \ "\n" \ "
    Copyright © 2000-2012QextSerialPort Project
    QextSerialPort Manual
    " dlt-viewer-2.18.0+dfsg/qextserialport/doc/examples/0000775000175000017500000000000013001357026021671 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/qextserialport/doc/examples/uartassistant.qdoc0000664000175000017500000000024113001357026025443 0ustar potyrapotyra/*! \example examples/uartassistant \title UartAssistant Demo The example demonstrates how to use QextSerialPort. \image uartassistant.png */ dlt-viewer-2.18.0+dfsg/qextserialport/doc/examples/images/0000775000175000017500000000000013001357026023136 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/qextserialport/doc/examples/images/uartassistant.png0000664000175000017500000005042113001357026026553 0ustar potyrapotyra‰PNG  IHDRh¶DQíÜsRGB®ÎégAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<PIDATx^í |ÕÙÿ(K}«o+-©ŠuA­uÃZ­ î * ¨QQA@Ù" ,îÛ«–ÚV[kÕúÚ¾í‹mß÷­UÀ°…€ˆˆ`BÈz³$wIrïÍý?çN˜ 3÷Þ™¹ëÌœŸç&sÏœ9ç{î™oΙm@ dÿL(0`­x‡²Õƒô}8d[:HøÖ Áç§Ÿ ø‚¯W8P(½ÇrñÑ/øz°oþ€6=ÚiòC -ûCÒ-þFߥ!BO”VÏ@aÈ·Ø:ÁÇÂTÞ`Òâ·‚‰¿%xBwsàË×¥¬¾|êÄ)þ0¡ˆbÈ\çÐ%þáÏ~ø‹³—Îûm`Ì[1ï®~‡ÅØ÷Y\ÿAØ @@“@„o>9Íï€@H7ÑJQ[ÒOQdê`š;>HdÃ! |Âõ%˜[i[—*Ysà´²æÀíC—õRRÉgþ:@AúüÉïûƒ<*†|%–A@@ UÈSbˆ—Eÿ‰ƒ@QgRÐJù¯âpQ уCŸðSt ×”ô‹S¸1W˜\'ܳoÀìƒÂÜÃbD-r z¢‡T*,õZ —é§´R\WYÜKV1%@âB`À‚^h /¥m%ZIŒé=gwšç4»}À —ðH‡ð`ðçCôkßšm‚b?éÓ´Váƒ,h ŽõÂÍ¥ÂØª¾'çùƒúcz“0«E”(éS &Ñ0Á>¥2I1»Ê‡TxôÐ Š™Ìl¥YU áÁ&ዴƾ #ŠqO-‹É5&V wP” ã¾aA dÍ+ó„S> ÎÕ^¶}Lâ¼g__ˆ ºSÒgß0t~‡ ű)}Ä+×µèghhF€€@ü!:RåÅcj<&HR£¢)I“tjsìî¾ k’.)~°"(NŠséÊ pâ§p峸¢,Ù˜Îl¦·° ƒ XbÑçˆÀàçüñ`ãa¯t«Î…9ï|_p9¹nðÝ5sÞijý_]¿_ÝýÞšîåÿ×õÔu-ú kÞœMCLñ„%erè·Oùûïþï{mZ~ð·Oµ¾±¨õÕy-¯ÌiyqVós4?7½ù©©MKîs,šÜ8ïö†×פ]VtÛÙî¼´±µ§oÄyaNq²Y]:Íùàž-ûÁ+Ußy¾òÛÏU{®òĪNz±êä—*Oxnß°g÷ Kʇ<³OXZ.¼Ð$Ì)1=‹¡è$ßc+r³1ˆ“Wä¼Ù¿÷|°®ûO™=¿þW÷ó+º–ü©káûäήÙo3wÎü­gÚo¨ï=ž'<^,,*ZR2x1- ÙÏ' oø QH/¼åonúÅô«pWÞqç5u1‘ @@´·ø¥›”ùەݯü½kñ‡]éïvýauwm‹_:ÙYÓìõ]4yKÃÍ«—8/_ÐqÁÌúSÆofΛX/гyÙ¤Ì#ýöðû¯üÍâÖ×Ó[^z¬ùÙéMK§6=q¯cá”Æyw6λƒMÞθ¾þá«kdŸ^q Ë䊢8égßTíñâ,8P•UR‘Uº/«dûÉ¢‚­¡_K*6–gW¬+,ÿWIý•¿Ý#LÊ8û/kÖú %€€€~ä­»_s?÷ß]/~Ĭ9÷®ß}ÚÝéî¥õåuþÂ*ß¡v¶|ÄÙ»ìOžË8Ç<î¼t~û…³NŸð¹\œMOÜ}èç½û"YÓ³û+ú¨iÉÔ¦…÷4ΛØðØm ÜXÿÐÕõSNë;7¯¬KsàžKK']¸òêÓÈ󇟳Aè54â¬bsÊiA÷èˆÀ¬¿×…§ô‡€~:†R*®ª2´­"±˜•žä;•Ò«¯ïÒ“UìiâH ö H8)‚Kt¬£ ‚è¼æ“Á±æ¬·ºJ°±æšÞqϸoXâºãwÎ7>Z³c¯ïÂù®‹æ».žßqᣠqÒAßXtð7OÒXS:~­9®á‘Èšu÷].­¯»û¢w_\:1”8û."qÒ ô†à½,4OÛ'Îî@€B¡Oi •›I~öß œ’+Lmî‹à%µâ¾O8åuýN ×ëBæ å/í‚bé·´¹ÎBîQ]ž¨ cˆX9G]`l  %@ºÛžsÑM²æì·»¦ÿÚã8ÜÛx¨÷Áåž›Ÿr]ìºb‘sÁ]”¬°ÚÞ×ó\Îï¸`VÃi¶°Aѱ©ÚÆÙ·ÑM6Cûòìæg¦KŽl˜ysô±õ\ÑoÍIçÕM¾ fÊ…¥/XyÕi,“Ÿ—3Kþ¸H6U+'ýEÓ/Nr8Ýõaè˜÷×ÊASòM£g´ˆî”[äXVºÆs!ÑK¹É?U¬Ô¯½¸´®ºHò5! ¬¿†6WïWÿŽ@,A@'Ý‹2ë·]3Þô<ô†çÞ×<“^t{Ö}ã2×Õ‹]—/r.ÿ˜u¼JÿYs\£çº~<¯ãÇ6œzgPœwöã$q6??£™®¡¥ŸËjZt¯dJ:£Ùo͉çÔÝyVÝÄÑ5“¼gÂW]ujŸ8VFœt¿ ûä'.ÕƒÎã<šþ_ßç!ö@?™8ÙSþÒZe÷þ_«”k¤¢KJkXуʳ•¯‘¯—ç!«p™+6QìEQ#E5ë®<òÂ(ʯ®¦š­æ~#çE¸½c=€$®]⤋féÒÙi¿öLý¥çžWÝ“^v{Þuã³®«—¹þ¸¡§#xÊóÝ ÞÍwŸ5Ï5z~ÇèYŽ‘w~ÁÄA#Ήõ´P?íZºh–]:ûô4:»éxâžÆÇ')Œ SÎk¸ëìú ?ªŸxVí]£Ëî½úÊ‘ýâô vq]&DãÐÛØ)„à3mƒyi(3¨Uïã.4y78ƒƒNæÎþ#xðÙ¸ò_¥åþYÜãÓÈжòyѾa¥ø¼]ÙV¬JǯSö¹G•Xü”MÌ?:nêUG>ê Jk¤òW_ù&òòD®¯TMu} q>ΑÇóWsSï4Îkd %¡b –#@‡¬+9§¼ê¾9³&ý¼ûUö„q/¸'½æÉÝÇÎnÒ¿_z/Xâõ¸ûŒt÷™égÎrŒ¸=(Î)ImLœS¯lZ8¥yÉýÍtíâû‹îfA˜;N:$6Þaã=ç6N>«qâ¨Æ‰gÔM:sïíg®þÙ– =Øýê AtÒUµÃß<^œÁÇÀëç‹NÎ4£ž1Ïâ6™)Û¿ª=Aõ'£ǬÃVªsWJ!;З‰ÜaŠ|¤=J™( ,®—rVaÌ‚¡ë®¨¯¢²šõUT_^õ²œ¶¸ßpüÃ壨~ä Ôe;ï|Éuïëîû~áI{ÝCÙNü÷ø—ÜŸ3kV7ûù ëÜ¥ž3{N{Â}ÚB÷iéÎÓf:N¿õ˜8Ù®îÞËçßÙôä½M‹ïk~2.²u,˜¨8*6¥Ût÷™ŽI§9&žV?á´½·öÙOOf™\S'\SÃÄyö^6âdâ<ƒb[ÅFœt+E¿8éì&•)òµµÞÅÜ=ÎqÎt³×²Ð[Zt©Î¢I«ÒZŒ¸^úHJÙ§aÙ&ÒÅBÿA_GþÒîä™ÈsPïWý©ž5òJ)ê®þH³0†êshq9$pÀzHz"‚KtPúÉ'Ý£9é7)óž×ÝSHœ¯zÆ¿â>¼•ó¶7<=ï9÷Ï™Ë<§.öœ²ÈsJºsÄ#Mÿ>îKæ¼´vaÊQZ¨½ë't¦ãñI¤Ì¦'îq,š"›f—{]íÍ÷žÙ<ùÔ¦‰§4ÜqÊ77X3æßY&76 7Ô2w^\ÅÄùƒ?ÅI¿3q¶²éÖGDÃiZ“œê[ú^ÎÀ{ Iœbˆ/6“¾rSÊ×KË!Ó‹+©WªH»S䝨µ<«É‹-Ï3\‘Ôi"—-ByÂe¥(s,œåú$©‡lq}Büc  áÐ!kô¬Î±Kã_pMú÷d:ÁùªûÎÿp{Å]Rã?ÜÙ{Å+ž‹^ôœû\מñŒ\êñ„gø|çw§5ŸpËÖ>q¦µÓBÍ£ë§mœ;Þ±`’cáä~kλ©iöµÍ³ú¯ªm™<²yˆ†qÃ˯ÿnÆE'ô‰“ÜIãÎ~qÒØ“‰³•ÍÓ«;ûÄ)fËNdʵÇ/û—~°kà}ô‚Pбf°PÅ•êõŠQi+)½|“™Ð&}žaòWì”!Uqב?RsPd./v¸úF(bun!±È5o”³TeE{±Qò1JX £Ó¨itÏ =Øýö\ôP½;^öŒÙ}ë+îÿÃ}Í+8_òŒ~¾kÔ3]ÿoi×÷zNœãü·©MCn Ž8i˜žæ¤…·Žª{àŠ†Y75ν]:â9æÝÚ4÷ƦǮižõ³ÖéIë[îøžã–¿¹æß2~2„e2îS¤èNöZ1qŠâ¼“ÞÆÄIãŒ7¼sò5¿9ùêß°Ÿ×Êã×'_{\ ¿òÙ” Lï¥÷kS³ý¢AåR×H륩ZõÅGŠ!3aãˆù‹…‘G¸|äY)6?Ò\)/I¸úF(O¸úª³ÕŸ‰T)uáÅ5Êr¿X É' Ìð!ø$@Þ:ejçÅóœW/vÞôŒë¶ç]·>ï¾ù÷/ºóªØTíe/y.x±ëœç»N¦ëK»NZÐõíGƒïkx}pÄùp·0•Ýå¹ÿ†Sj§\Lwž;]ÛÖÓÇ웳ot<6¶iÖÏ›g\Öòð­SÏ¡õžµŒ?©ñ†osÅàÏÎØ'Nr'‰óç­ìÁ{Ǧjë„;é*Ó6Qœg4£iУÍCk2·uÈüƒ,æ6™ï`1·qð‡ƒõZ° —‚ ªé`­þk@@@'ñr‡È[ß¿¯sô,ö,½«;Ç.s]æ¾æ)×UO»\]ì.” ŸõŒ~ÆsÆÓž‘K<ß[Ôõoó<ƒg8Þã06xU-ýÉõ0›­¾öû4[[{ï˜ú‡®j˜>¶á‘± Ó¯iœ~Uãô+Ó.kzèÂæûG·Ü{ÍÓÒp³ù–k;xïO®>wËdBgß “ÄIO¨eâüa!~ÅIÖ¤S•4ï:h^ϠǽCžèú„Èâ^Š¡KüC—õÊC\?hI /È bèì H  ·Nš|ø´‡ŽœÿèÑKæýéãí—/h³ cÌÂŽ‹Ÿè¸àÉŽÑOvžñDçÈ…ÎáéNš¤:£sàƒG…‰uÂÕÁ·£ç*h¡üÊ“*o>­zÂùûï¾ä@ÚOk&mLÍ}cjﻸ.킆{F7L>£qÂÈÆñÃo>±áº¡5?X|‰ð¯³…>qŠî$qöMÕ/NÑLœóz†,ð‘8Y5Uâ$‰Fp§$Q,€@88^€€@dmþó§~×SÓœù`Ýè‡kÏVsÎõgO¯;szݨéu§>Ò8bzãðiŽ“jüöŽoÝë0©N¸µôŒI™óh¢b†¯ñ°?ÿöówÿ|øîëN-¼åÌÂq£ Ç[xÛ9EãÎ.¾íÌ’[G•ÝzjÙM#öÞ0¼lìI{¯úvÙϾU|逯.>¹ö –Égß S'»E&Nº¸\tŠãÎ!éÝJ}.郆³&¾   sÿê.Ú×~þ}ÛO¼~Ã÷nÙrò­›¿kÖÉ·d ¿õóá·mùî­_œxë—'ܺmØ-Ûéj A×9àúíÂ5_œ1)«°üðœ?»DqÎùÐÕ¶·hý-çÿïONüôÒï}2æä/ûþÇ—žüéeÃW^6|Õ˜ïf\zâš‹OXwѰŒ †dœ?hÝyV#|zí­{ ç¼K7´„']<Ç|ˆý¤g°`COgŸ>É A‰ŠA¹ê1‰£Uhàð„ ª  `ˆÀà9^òŸú¦†Èkhˆ9çÃÎÁ3=ìzà‡»O÷Ìùc§áLùÈšƒïê8î§lÄ'=ÓÞŽ|Éø$a»\hÐìö¾`•‚]F«é’Ú^»Œ][Š.•úni³Ô×eN:º†6x5]IËn ¥{Qîw xXÐBš“ÅŸâ‚SŽ ŽÐ£ú>¥3šâIME?U[¼#¥F»[¸¹pÀ-Eoe!ÜQ.Æ€‰Ub“k˜_éqðbÐû;¥eq!øD]€Ä“Àmt¯9´Åèu(!¿*7W±·gRГòĸn_߯âz q ý¤'ÓRÐSÜÅGÔÒý$K†çÍ…LœAwJú%ª1 )½lÃþO¥dXú²!@@¾ãŒxA€@xz¾NQ¦¹×wUíÈ¡—ï‘Þ6,­úPK9@@@@A@ß.\³O8ócaø[‚qâψHâÄÀ@@ €8 ÀÂ|€€@œ'€€ q€…¿³@@@â„8A@@ÀˆÓ,ü  'Ä   @œ`áï,€8!N0@ zq¾ò—,€ð@À®c,Ú.Š:j6wLâ4úJ3¤Ë #¯æ‘Ô¢ ¨j–kŽDXOs+ÅùmÝyñD·ò0=GRˆÓ -® Ž6_q?·¼ûëRÏÖ¢®-žM»óÜ™¹®õ9žµ;]«³UŽnÊAOs3qÒËÈN_Ñ÷wˆÓÌͲ$Ÿ€ž#)Ä™üvÑ¿G²fmkï>GïžZfТj_A¥Ÿ"·ÂŸSîÍÞëûªÔ÷yAOÖ®NˆS?U¤° N«9h¬IÖ,¯÷ïïóå®rEv™/»”Yó‹"&NƒBœVok”@À NS4C … Zq¬™_É|I‘Sæ¥ _n.ð‹Aâü|7Fœ1PƦ  )NAöÏ¢ó´TlÅ¥*òJ‰Õ—ÖȕևL£Þ*åß%:¯É¦g«ƒs³{½R/7åû²ò½ô“âLyK¡ 6!nÄIR•)-è4¨Ñô:³"™\œT*©ÁÄåk¤"¤Qä“òï\œg.Wˆ“Ö@œ)o#@ÀV’ ÎT©4œ8¥¡¤Z¥V']FK“´äH1ÄéYkJkh#N[õ[T@ …"ˆSœÉ”õäk¤eõÊT™R1*]œ—òk ›vM·ÐyÍÜrº#Å/™r[i¿53Å [\”ÚvÂÞAlC@sÄ)ÙH=y«6kS»QÌÁêÜ$ qJS¸ê‰\y‹›ÇšT*ºYSšž•ûR”è†/‹|oV.²M¯EE@RJ Fqªf’á¦ââ µêÂõTœÝŒ¼aJ›®oçërÜìÎYHãÎ-¥Akx×ç÷¬Ç}œfh-”@À8gä 䟚ߚô ÌØé¦›5éAbl/óUÆÎwnÚã[Sè##¯gmŽ‹ë¹ûO²A¿F@H òí(Š¥ÎÓ™Š)ÜTAÃÝŽ"?s)U\£V¦ø©ôOL£X“À¶Ñ—uHq’;!N}ü @ Ð3ÑyNÑlÉ8yäøÊínzÖ :Y”õ‰3³Ô·¶Ø·:ß»:¯gMN´O6¦bDzÛ°´jÍ愸Á.†ä v#qZ½EIœt§&¹s[ {ZÚ¤ kn(fó´$Ε»º3vD{qÄiõ¯Ê _g|y&?·O¶93óº³ ¼ì¹zÁÈ*ôRЕ´kòÙÙM²æªÏgÙT6=Í­<Ç q&¿Q±G3Ðs$Õœ¢3gN&+ë»2w´oÜÕAï?ƒ–)èj š¡¥±&Y³¢Þ qš¹'¢l –!qZ¦©âQP=Íg•wëŽoÆV §¯†¿%# qq}»?j  ˆâ„8£é9Ø@€['Ä qrÛýQqh@œ'ÄMÏÁ6 Ü€8!Nˆ“ÛDCÀÆâĽ(! hþ¡€«j£éHØ@€ö'?í¨³¦zš[)ΡcÊñw|‘ @€zޤšcs&àä‘{Ž6_q?·¼ûëRÏÖ¢®-žM»óÜ™¹®õ9žµ;]«³UŽnú>ëiî>qŽ:v; ÄÉÃuÐO@ϑԜ^Ô,'â$kÖ¶öîsôî©e-ªöTú)r+ü9å^zµ5½nŒ=ù}—Á·£@œú{R‚pEâ´zsÓX“¬Y^ï+ÞßçË]å>Šì2_vð%ô¢1'A1â´z[£ü ¦ qš¢b(ÍЊcÍüJæKŠœ2/ùrs_ öº±ÝqÆ@›‚€€D ¤8Ù?ÍQuqkZc>QìZ¾‰|ªV*‰TñèÖ˜ð›Cç5Ùôlupnv¯W ò%½à:+ßK?) N¶Š `IáFœ¢ùDùE!0õæ‘ó‰n/‘ &‰“2—û’–¥5êéSõVæl`¹8'Î\®'­8ÍÙp(€€U XHœFåªGœ ¡Š¿ŠÊ´Š8é2Z𤥠GŠ!NÏÒXSZCËqZµ‹¢Ü f#AœÒŒ«4°“¯QÌÇ*ÒÈGœ‘ó‘ÏèÊGê­Œ|#‹S1UaTª¨ÙZn;¡óš¹åtGŠ_2å¶Ò~kfж¸8Èl-‡ò€X”€þg„ÙWÍäƒÅ“ÀŠÑdŒÅ¢bCžã 7š´®8éfMizVîKQ¢ ¼,ò½Yy¸8È¢}Å0ýâT 5})?Eªp§b@©§4"4:Д҇¼Ó~â\—ãfwžÈBwn) Z³À»>¿g=îã4Y×Cq@¬J@¿8£Ó¤ž­Ô— =R®Šgäó—ÖqfìtÓÍšô 1¶—ù¿*cç;7íñ­)ôŠ‘‘׳6ÇEôÜ}„'Yµ3£Ü É!`èvi¨>…r|Ô¨>?ªt•jŽD9¹%¤8Égrzö À=CME™3'Ü[¹ÝMÏ: A'‹²þ qf–úÖûVç{Wçõ¬ÉÁ“ƒ¸ëݨ0€@B@œ ÁšÄLIœt§&¹s[ {ZÚ¤ kn(fó´$Ε»º3vàâ $¶ v `c§Õ÷“mÎ̼î¬/{®^0² ½t%íš|vv“¬¹*ÇóYvÎqZ½­Q~S€8MÑ 1¢²¾+sGûÆ]ôþ1h™‚®¢ Zk’5+êÝg ˜±)€#qrõ]ÐÓܸª–«¯*  `˜€ž#©9¯ýÑ,U ¡& É â4Ü‹°€Wl,NMC AH'WGT@À0ˆúT€8 ÷"l Àˆâ„8¹êò¨,€@¬ Nˆ⌵a{®@œ'ÄÉU—GeAb%qBœg¬½ÛƒpEÀÆâĽ(! hþ¡€‹ƒ¸: ² † Ø[œ†qØ}=Í­ç°1å#ÒÛ†¥Uk*—“ÇêÛýK‚úhÐs$Õ<`š3'‡qG›¯¸ÆŸ[Þýu©gkQ×–ϦÝNŠyîÌ\×úÏÚ®ÕÙÎ*G7}ô47çuUÂé Ãß„‘…'Ž"  ' çHjN/j–Šq’5k[{÷9z÷Ô2ƒUû *ý¹þœr/½Úš^7Æžü¾ËÈÛQ N&@@ ˆÓêß k’5Ëë}Åûû|¹«ÜG‘]æË¾¤“^4Fâ¤1(FœVok”@À NS4C … Zq¬™_É|I‘Sæ¥ _n.ð‹Á^7¶#Î(cS„§ û§9#!A¸|h},ÙêÜV>U+•Ä~MOç5Ùôlupnv¯W ò%½à:+ßK?) Nû5=j áFœ’Û"KNSñÊG§,åÉ$qR$¸òåÔ÷^åâœ8s¹Bœ´âŒ7rä À7 ‰SSÒ ¹r"NºŒ–&i)È‘bˆÓ³4Ö”ÖÐ2Fœ|wtÔ@ ~ ‰Sœð”ü$ÍÊ¥™F‘€¶Uç—¹bN¦jé¶:¯™[Nw¤ø%Sn+í·f¦8a‹‹ƒâ×k€×ô‹3䤫b¨N£g+Ñ ûF17Ë爓nÖ”¦gå¾%º¡ÀË"ß›•‡‹ƒ¸îé¨<€@Üèg¸¡¡òI§ÇF‹âúèÄ)í+}r2U».ÇÍî<‘…4îÜR´fw}~ÏzÜÇ·NƒŒ@ø& _œz¯§|68jwr"ÎŒnºY“t Æö2ÿWeì|ç¦=¾5…^12òzÖæ¸è›®çî#<9ˆïCj  EÀÐí(!O=†;©)O¬yfT1Ä ·#CåägHq’;!N­ï>>¨è‚Ò•ysòȽ•ÛÝô¬t²(ëgf©om±ou¾wu^ÏšœhŸ4yªka#»€8­Þ²$NºS“ܹ­„=-ˆ‚NmR57³yZçÊ]Ý;Œ\4¶Zuì!ï§Õ¿"(?€@| @œñå™üÜ>ÙæÌÌëÎ*ð²çê#«ÐKAWÒ®Égg7Éš«r<Ÿew8Ç q&¿!±G«€8­ÒRáÊYYß•¹£}ã®zÿ‰´LAWQÐ -5ÉšõnˆÓêmòƒ˜‚ÄiŠfHV!ô4wðEÖ˜ªMV“`? –# çHjžë} •„ª†PÐdqZ®£À I%`cqj B€8“Ú±3Ë€8¡O峟0Uk¹nŒƒ$“Ä qBœÉìqØ€€å @œ'ÄiùnŒ €$“Ä qBœÉìqØ€€å @œ'ÄiùnŒ €$“€Å‰{QBÐüCWÕ&³b_ Ö#`oqZ¯=\b=Í­ç0<ä=Á­‚ìA¬E@Ï‘TsŒbΜ¼ÅÑæ+®ñç–w]êÙZÔµ¥À³i·“bcž;3×µ>dzv§ku¶³ÊÑMßL=Íg•pú aø[‚0²â´V—FiAM@ϑԜ^Ô,'â$kÖ¶öîsôî©e-ªöTú)r+ü9å^zµ5½nŒ=ù}—¡·£@œ‰îyÈ@À² NË6]_Ái¬IÖ,¯÷ïïóå®rEv™/;ø’Nzщ“Æ qZ½­Q~S€8MÑ 1‚fhűf~%ó%EN™—‚|¹¹À/{ÝØnŒ8c ŒMA@@"Rœ‚ìŸæŒ¨òfA0ºI‚ÒKSµbm¨ÊRµËÒ¯òõrâææüGç5Ùôlupnv¯W ò%½à:+ßK?) Ns6J `=áFœ¤ ÑgÒBÔz‹=‡èv-?Ç)™O2¨ÔTŠDwŠŸªLØÀrqNœ¹\!NZqš°ÕP$ 0‰8!W…8åÊ” åvThUmY¶4]FK“´äH1ÄéYkJkh#N¶Š `IÄ)ÎUÊG{ò5ÒrÈ•ÒVÒ„§4~ ¹atcÊÈ[ÅEœÒ4¯i[—n;¡óš¹åtGŠ_2å¶Ò~kfж¸8È´Mˆ‚X‹€æˆS®@Åä­Ú¬!§vÕö×$°!qŠS¯šSµrSZbÄI7kJÓ³r_ŠÝPàe‘ïÍÊÃÅAÖêš(-€€Y è§(EÅøR­.õ¤kHq&bnVQõ9ÎèÄiÖ¦ë+׺7»óDÒ¸sKiКÞõù=ëq§ÉŰ ýâ”T§^PLçj^gr¨÷ÙZN.ÊØé¦›5éAbl/óUÆÎwnÚã[Sè##¯gmŽ‹¾“zî>“ƒ¬ÒyQNÔˆ|;ŠZÒ S1úTŸÂ wrTÏtn\$ª¸E1ï*•_ä.ÿUJ)¯ljšGÇ^CŠ“Ü qꀇ$  `œ€ž!H\4yT÷]P†œÇ³v§ku¶³ÊÑM_N=Íguÿí(§åz5  Pzޤæô¢f©8'Y³¶µwŸ£wO-3hQµ¯ ÒO‘[áÏ)÷Ò«­éucìÉï» ½âLh·Cæ V&qZ¹õXÙi¬IÖ,¯÷ïïóå®rEv™/;ø’Nzщ“Æ qZ½­Q~S€8MÑ 1‚fhűf~%ó%EN™—‚|¹¹À/{ÝØnŒ8c ŒMA@@"Nœâ§c|ït¸Lh½æDkì Sµ´S[¶;×dÓ³ÕÁ¹Ù½^)È—ô‚ë¬|/ý¤€8mÙú¨€@ „§\lá–uŠMÚ<²,¡R¹8E…§€oâw)çÄ™Ëâ¤5gâ{à‰€¦8傌Boq§Ñ½s2â¤Ëhi’–‚)†8=KcMi -cÄÉS·F]AI òT­Âšê™[ùš³êùÞp™(†¶±Os"Nºí„Îkæ–Ó)~É”ÛJû­™)NØââ Dö#ä  ÀÈ)yá~U+#¬!«ÇŽ‘w¤sZX‘ŒqÒÍšÒô¬Ü—¢D7xYä{³òpqGýUH Í«j#œã4äËÈçJCªÔèÜ,Ÿâ\—ãfwžÈBwn) Z³À»>¿g=îãL`7BÖ <Ð<Ç™*qŠŒÅœŒ83vºéfMzÐÛËü_•±ó›öøÖzÅÈÈëY›ã¢ïµæßIŒ9žÄÓu0L œ8ÃbTœ¡ ù«|$îgä!f¸Ó¥†ælÕWÕÚòÂÚâ$wBœ†;6=ô Aôë*–¢þ½èLÉÉ#÷VnwÓ³hÐÉ¢¬?Hœ™¥¾µÅ¾ÕùÞÕy=kr¢}rа1å#ÒÛ†¥Ukr焸ž~…4 6&GqÆ~¬æ‘ÙPNã$NºS“ܹ­„=-ˆ‚NmR57³yZçÊ]Ý; ]TÕÿwˆÓÆýUˆ‚@ÅiÈjIH̉8?ÙæÌÌëÎ*ð²çê#«ÐKAWÒ®Égg7Éš«r<Ÿew9Ç qFÑ™° € N«·se}WæŽö»:èý'bÐ2] DA3´4Ö$kVÔ»!N«·5Ê ` §)š!Y…ÐÓÜÊYcª6Y­ƒý€Xƒ€ž#i¦U± ªBM@5Äi®‹R‚¤Š€Å©i$IâLUgÄ~A¬Aâ„> Nkt]”@ U NˆâLUïÃ~A,Iâ„8!NKv]@ U NˆâLUïÃ~A,Iâ„8!NKv]@ Ul,NÜ‹’€æ ¸8(Uû°{‹ÓmÄRêin¥8‡^V‡¼'±°+³Ðs$Õ£˜3'Ϫu´ùŠöûrË»¿.ñ|Yäù¼ {Ón'ÅÆà§_ ªü¹þœo¼ôjë¯JéùïÝô [ˆ3µ} {° ˆÓê IcM²æ7õ~²¦èˉ3—ï*÷e—ù¾.¥wù¶ûÄa(Äiõ¶FùALAâ4E3ÄPš’%M’/)v}ã#kб‘Þ,VÀbc¾/+ß»)âŒ26‰@HqJ¯¤¤IQù²æLiÊ(¦j©ðòv—êhõ/ÈÌÙë¥Ø¹×+YS\ÅÉ"ß›•‡©Z«75Ê `áÄIÚ5™Y&b/rqŠš”‡[6G›+…$NÉš_–ôâ4F©A@@“@„©ÚDÈ,Ü0T½¯Ø÷aÄiKqÒˆ“®ÚVê%qRd›ªÅˆS³ €  _œêi[i¶S®CE2qÌ*YPZV¯ŒÝ” +Ç(Nù|µ|¨j¶9^ùT-Äi૤  ýâTLÛÊ'rå^íehM‚&„c'!ǦÒUq¢4:æñÝjcž‡]Tî§ …¯ö7ܤ•™¸8(¾Ä‘€çâ.NÅ0TA-$NQ¢¦Ò§|Ĺ}OßT­4OK󷘪弣ú q&wq*Ÿ~ì¢Üµ–8Å0;#_qƹà ;'NõùËCIù„­4Iòl¨úGïžZfТj_A¥Ÿ"·ÂŸSîÍÞëûªÔ÷yA=´â4{oDù@,Aâ´D3E($5Éšåõ¾âý}¾_Ï™]æË.eÖ¤‘8i qZ½­Q~S€8MÑ 1‚fhűf~%ó%EN™—‚|¹¹À/‰óóÝqÆ@›‚€€D œ8…cÿ4gD %s¥M¤…›ëIasiªVª -„kz)”@½Fü(B&)ù^ÑyM6=[œ›Ýë•‚|¹)ßG︦ŸgJZ;°!âÝ&†|Ù#C?@܈8cÜ»ü§d»ÈÚSj6Mª¿‚rqNœ¹\!NZqڰߢJ )$`iqF–:'â¤Ëhi’–‚)†8=KcMi -cÄ™Â^†]ƒØŠ€Nq†›b•ϦªÓÈç{åó¥ê©Zõ¬¬z®ØèÌ­BœâæòÆ ¹FѺ‘7 7 ¬gr8^_#ºí„Îkæ–Ó)~É”ÛJû­™)NØââ xG> œÐ)Nù¬©4Î ¹ *Òˆ¿ÊêÏÙèÔqȧü¦úœ¥ž©ZµJù蜎×nÖ”¦gå¾%º¡ÀË"ß›•‡‹ƒâ…ù€ðM œ8åÃG…±ä.TŒ Õs§!8ÕcÐÈç\S%NúB©Ç²‰û–­Ëq³;Od!;·”­Yà]Ÿß³÷q&® 3€W"83±á ùJ"u&щÓè¥I©§zØšÐoTÆN7ݬI:c{™ÿ«2v¾sÓßšB¯y=ks\T =wáÉA m/d `y†nG‘Ÿº“$*›†< )††œª ywJä}é™¶Uߎ¢>)ŸVUœ˜”ÿªN&MÏJƒKÅBÒ!ÅIî„8-ß9Qsˆ< )B£#?õü­Ñ¢KŸªGîÉGœI}®Üî¦gР“EY83K}k‹}«ó½«ózÖäàÉAæì‚(€€Õè™»‹Î[:Ÿru暦JœÒ9Î$X“öEâ¤;5ÉÛJØÓ‚(èÔ&YsC1›§%q®ÜÕ±Y­s¢¼ æ$Pqjº-¡ R(Îd¶õ'Ûœ™yÝY^ö\½`dz)èJÚ5ùìì&YsUŽç³ìœãLf»`_ ¶%qZ½i+ë»2w´oÜÕAï?ƒ–)èj š¡¥±&Y³¢Þ qZ½­Q~S€8MÑ É*„žæÆUµÉj ì@ÀšôI:¡š¸Ì©j5Mà§5»2J  ,6§¦! ôƒøÇ· ×U £>†¿%# ‡©‘Þ6,­Z“'g•“Õ7±“€85uÀ[Œ8MÚWQ,“€8yó¢f}!N“ôM@À¤ NM‘ð–â4i_E±@LBâäÍ‹šõ…8MÒ7Q “€85EÂ[ˆÓ¤}Å0 Mqlþf×ÎMïüþ7O-[º`Á‚'Ÿ|ò™gžyöÙgÿó?ßÛœõYC]‰Q¯´4•5(¨­Î­©ÚeŨÚû•UBÂK´ëöçv‚¯Ù^§Iú&Š `R‘ÅYY¾ë_¾úØcÍš5kîܹ üéôô–-#q¾öÚk¯¿þúÿø^nÎ$WÍñ”€ߎڢçßÿçèû_®]†H_žû«Í %š-q𴝢X &!Aœ¥ÅÛÓçÏ›:uêô‡~süøÜ³Î:tÒIí'œpôÄëøÃÏÇ{ûùçß~ûí?üá/¶¬×ïNú5Ï›¸|øˆó šø™4/¼ÿ1Fœ&éw(€€… „'5ÓçÏ%kÎ2%ÿÔSýN8!pÊ)Q£XŒ8ñD÷I'­›9óÝ?üá¯ýëÎ[4‡2b'5ÉŸïq#’I€°nݧÙLqZ¸?£è I Rœ­M{—ÿâÑš '<8ð£ÆŽ Lš˜<™ý¼é¦À˜1dPÿw¾“=mÚ_ÿò—V¬Ø_Y yP¦t¾&'7•º6•º}쟑h›J\ô— a?rø€fAœIèwØ€€… „环3zè¡x ÿ‡?dÖüñwßXº4ðÚk,žy&0{v`Ê”À5×Î9Ç;|ø†W^ùä“O¾ÜºIó ,Ž8éNÇñÅΞžnDâ tm,vm,rö£m5šmqZ¸?£è I Rœoþæ4Ü\~ãl†–ÆšdMòå?ÿX·.ðé§? ¼þzàñÇÙú«®¢-W]µêÓOW¯^]WS¬y\Ź.¿s}AgW—ÛBA/¦¶Pi¥¢z<®uâˆâLBŸÂ.@lN ¤8<ž>mÚ´gœÁÎk^{-k’5‹Š»wrs>¼ôRà±Ç·ß¸ä’Þü`ë_ÿºyóæÊŠBâ¤ãxF^‡ÛÝ™¸ ωÿâ² y>RÎâÊøî(.¥•gâruêŒÝ§Í;3ª !ÅI7Ÿ<:sfëw¾Ã®¢3š4ܤ±&YóW¿ 6o¬XxãÀÂ…lÐùóŸÓÉÎo^}õË/¿,)ÎÕ)Ε9GWîlw»É ‰ Òúr–/G½;)“p9Çe/Q/†.WûÊG1âLN‡Â^@ìO ¤8çÌ™³`ÆŒ£ßþ6»€–®"qÒ -5Éš;w2‰þ÷3q>ùd -]4töÙž}vÇŽe{´¯’ÎqþsÇQ:¦'(HcRÎòå¨w'e.·¸ì%êâEØÐé<úqö Œ8íߟQC$=UKOš?ÿ8IœwÝÅ®¢óš4CKcM²æÿý_àý÷¯¾ÊNsÞs›Ë=çœÆ_ýª´´´ºj¯Îçÿl;ü¯Ó1=AA“r—åó«òŠëÅ5Ò(rS[¾Gynò ¥ü+A̶³óÈÿloÈ3 ½ »à‚@Hq. þ«¥yZº_“î<¡khéj :¯I3´4Ö$kþò—§ž Ìš˜0!pÅt}PÝ?þ±gÏžÚÚ’Fœ+¾8DÇô)JÊYZŽnò ™›¢äò4òMÔ;P°DÐèèhûè‹Ã}q#N.º4*  h!Åù»ßýæé§ŸÞpà ô”v¿&ÝyBƒKºˆ¦g)h¬IÖœ3‡ÍÓ’V/¾ØÉ%-55MMM­ÍU:Gœÿµ¹õ/ŸììlKPuÕ—¹´rAŠé#$V$P”\¾Çùˆ+Sì=4::ÿeóAŒ8Ý•?€/BŠsúOèIî¿X´ÈEâ¤ÙZº_“.¢khéj :¯I¥±&Yó¶Û?ûYଳºÞx£¹¹¹¥¥éPK…NqÒqü?7¶Ð1=AAB’r––#,èI,¦ ™³b½üWyzEêA£½ýЇ[‰6Fœ¼ôjÔ@ ¡Bг¾¶øÍ7MqÿtêTz6Âd÷kÒ'¤Oò%פZk’5G¦ñh¯›=¨íp½¦5¥ ¼·®ù½µÍíí‡Ò`NÚ…z }$_©^( ©ÈG~fTžX\¯Þ{È•‰ãpôè¡÷×5cÄ™Ð~„ÌA8"îYµÙÛ³–/ÿÅòåË·¤¥õœ|2{ Â%—°;OèZºˆÎk^|15{&LpíßßÛÛëõzô<Uþä w24JfelQlbt‰NôèÁw2šˆ6FœulT@ q‰“Þv²aýÊßÓ¿·ßþdéÒ†Ë/§§°iÛ³ÏfÐýÈ{ÑE‡_|‘NmÒ$­Û툓7/jÖâL~7ÄA¬DâÔ o N+u`”@ ù NÞ¼¨Y_ˆ3ùÝ{°ˆSS$¼%€8­ÔQVä€8yó¢f}!ÎäwCì@ÀJ NM‘ð–â´RFYA’OâäÍ‹šõ…8“ß ±G+€85EÂ[¥8‡Ž©‘Þ6,­Z}™¬ôÝGYA@ *§¦xKqFÕ“°€7 NÞ¼¨Y_ˆ“›ÞŠ‚DEâÔ o Ψz6à†ÄÉ›5ë qrÓûQQ¨@œš"á-ÄUOÂF Ü€8yó¢f}!Nnz?*  ˆSS$¼%€8£êIØ@€'o^Ô¬/ÄÉMïGEA¢"qjŠ„·gT= pCâäÍ‹šõ…8¹éý¨(€@T NM‘ð–〉'a#n@œ¼yQ³¾'7½ˆŠÄ©)Þ@œQõ$l À ˆ“7/jÖ7(ÎjáôÂð·ad!ÞŽÂÍÑÐEâÔ o N]=‰@¸%qòæEÍúBœÜ Pq] NM‘ð–âÔÕs@€['o^Ô¬/ÄÉíÑÐEâÔ o N]=‰@¸%qòæEÍúBœÜ Pq] NM‘ð–âÔÕs@€['o^Ô¬/ÄÉíÑÐEâÔ o N]=‰@¸%qòæEÍúBœÜ Pq] NM‘ð–âÔÕs@€['o^Ô¬/ÄÉíÑÐEâÔ o úÄ9 y×Õƒ@€;'o^Ô¬/ÄÉÝQ0DâÔ o NC=‰A¸#qòæEÍúBœÜPaC NM‘ð– &qÒ÷  ¶'À›PßÈ¢'È‚€€‡ Îr[UˆšÄ q‚€€€§XQÿy‚ A@lCâ„8A@@ÀˆÓ,Ûü¹„Š€€DM zqÚþtT@DQa±¡- Ä$NC7#1€X‘ÄiKùÅR)&Îëª<äÝŠýeHˆ3ÇØr[ˆ3 ý»°0ˆÓ–ò‹¥R§…û3Š g,ޱå¶gúv `a§-åK¥ N ÷g@  ÎXcËm!Î$ô;ì@À N[Ê/–JAœîÏ(:€@@œ±8Æ–ÛÆMœBðŸø%–/Ë¿Öâz)™”R¾Fg7Pg¥sCE2)£eˆœ>BMî(ºza+x€8m)¿X*7qŠ”Äá+«6‡Q—(Ôk¨{„ÛÖhôìT‘§N>êœQ6=åG"qÆâ[n q&ðÈq&.²d€8m)¿X*gq†›¢TLتçKCΠ†ëFêébõ²z®8ÂÞ¥ÍÕùh–Y-NÅLµ4Y-ÔÅM"—9Y‡ ì@€€8cqŒ-·³8Sµ!''5§j5§4CŠS½•$¡ÈÚE%¥ ™Ote7âŒq_8˜$“ÄiKùÅR©„‹3ä4òˆS8åAùpM1¤Ó^H‡)ÊòcÈœ#ï=Ba"W9d’yàÀ¾@€gg,ޱå¶AqV £>†¿%# ‡Ž©‘Þ6,­Z³¶ôe ç?£72 ' yþö¥9âŒ<ÐT;5ÂÈUÏØâäùà‹º[—Ä©©ÞÄMœêÓrŠ têN>ž“–ÕcµÈÃ,õ@Vž¿ü4¡"gõGáHÞœ@îWEuBÖTý׆âï€pÜÈŽX÷¨„’ƒ€É @œ¼yQ³¾qgJ¾új¥¥¤Ø)€€ @œš"á-µÅi㾊ª˜„ÄÉ›5ë qš¤o¢ &%qjŠ„·§Iû*Š `'o^Ô¬/Äi’¾‰b€˜”Ä©)Þ@œ&í«(€€I@œ¼yQ³¾§Iú&Š `R§¦HxKq𴝢X &!qòæEÍúBœ&é›(€€I @œš"á-ÄiÒ¾Šb˜„ÄÉ›5ë«ç°žUk’o9Š q$qjŠ„·}â<}EßCÞ!Î8ö7d `'o^Ô¬/Äiƒ~*€$Ä©)Þ@œ ìoÈ@À NÞ¼¨Y_ˆÓýUH ˆSS$¼%€8Øß5€€ @œ¼yQ³¾§ ú5ª @§¦HxKq&°¿!k€8yó¢f}!NôkT@  NM‘ð–âL`CÖ 6 qòæEÍúBœ6èר€@ @œš"á-Ä™Àþ†¬Al@âäÍ‹šõ…8mЯQ€85EÂ[¥8‡Ž)‘Þ6,­Z}™øUEÖ  `§¦xKÀÄ9¶JõQßCÞ!NstU”@À, NÞ¼¨Y_ˆÓ,å0'ˆSS$¼%€8ÍÙUQ*³€8yó¢f}!N³tN”@Àœ NM‘ð–â4gWE©@ÌBâäÍ‹šõ…8ÍÒ9Qs€85EÂ[ˆÓœ]¥0 ˆ“7/jÖâ4KçD9@ÌIâÔ o NsvU” @À, NÞ¼¨Y_ˆÓ,å0'ˆSS$¼%€8ÍÙUQ*³€8yó¢f}!N³tN”@Àœ NM‘ð–@)Îac*ðwsö^” @ % NÞ¼¨Yßcâ\Ñ÷wˆ3%=;0-ˆSS$¼%€8MÛ[Q0S€8yó¢f}!NSôL@À´ NM‘ð–â4moEÁ@LAâäÍ‹šõ…8MÑ3QÓ€85EÂ[ˆÓ´½0ˆ“7/jÖâ4EÏD!@LKâÔ o NÓöV @À NÞ¼¨Y_ˆÓ=…0-ˆSS$¼%€8MÛ[Q0S€8yó¢f}!NSôL@À´ NM‘ð–â4moEÁ@LAâäÍ‹šõUŠsèexÈ»)ú*  `§¦HxKÀÄy]•púG}y‡8MÒWQ “€8yó¢f}!N“ôM@À¤ NM‘ð–â4i_E±@LBâäÍ‹šõ…8MÒ7Q “€85EÂ[ˆÓ¤}Å0 âli*k8PP[[SµËöQµ÷+»†ÔvÔ”uûó¨M©e5ÿ€8MÒ7Q “)N:Â:j‹žÿŸ£ï]¸vÂêFL|yî¯V47”P@œ&íŠ(€€U„'NÈši/ýíËÂj«TåŒ@ ì@3µæ ïŒ'¾'  +p⤱æÖ‚ª^ü³ ÿÖ‚JjÓíû0⌵Ï`{Î „'£ÉI¿ßGüçEXš€×ÛãvvP›9|âä¼Ë£ú ±7⤃lû×°>.—³ãh[+µéѶˆ3Ö>ƒíA8'Aœ]]ž®.7Âê<Wg{ÛáVÄÉygGõAâC ‚8Ýng0:-‚ìŸÑŠˆ›ÝÊlé]®Žö£6×E)Îacð÷øt6ä `Å)*³ÃºÔ^_ùåËúkÝVúóOBJ—«½ýhëÁæZâ[%ŒZÑ÷wˆÓ]µˆˆâì Á v­¤½ {1 öÍΣG´´6Õ@œñê5È@€kÄ)²é°ké§[U¯”ÏåÊ“Ië-]}*|gç‘#mÍ-ˆ“랎ʃÄ@qŠÂ Ã® ‚,(ÕBZ6´`]mm‡›š`Ä·nƒŒ@x&QœGœN²f›="¨IVùSZ£¹`]‡Û;š÷Cœ<÷tÔ@ n"ˆSTv­äH©ðÒ²|¥ø©ú£‰-G£½ýÐáCM Õgܺ 2à™@qÒE{ûaë†|p)¯…´žVª—Ŕᶵ£G:Øè¨‡8yîè¨;€@üD'ÑxaiG:¶ þšˆ ]ŠD”áXžô¬ÞÄ…!zF‹aˆaB37TMJ|úGÆÂXþ†¾Z-¹¡ôƪi£¡o‹áĉì¡(ŒÑ/F\Ò'ô«k¸M öÓæO_õ¿3úç 8¿ÿ!û    ƒÀÿDñlþH|"IEND®B`‚dlt-viewer-2.18.0+dfsg/qextserialport/doc/examples/enumerator.qdoc0000664000175000017500000000026013001357026024720 0ustar potyrapotyra/*! \example examples/enumerator \title enumerator Demo The example demonstrates how to use QextSerialEnumerator. \snippet examples/enumerator/main.cpp 0 */ dlt-viewer-2.18.0+dfsg/qextserialport/doc/examples/qespta.qdoc0000664000175000017500000000016513001357026024040 0ustar potyrapotyra/*! \example examples/qespta \title qespta Demo The example demonstrates how to use QextSerialPort. */ dlt-viewer-2.18.0+dfsg/qextserialport/buildlib/0000775000175000017500000000000013001357026021074 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/qextserialport/buildlib/buildlib.pro0000775000175000017500000000120013001357026023400 0ustar potyrapotyraTEMPLATE=lib CONFIG += qt qextserialport-buildlib # Include .pri file before using "qextserialport-static" # and after CONFIG += "qextserialport-buildlib" include(../src/qextserialport.pri) qextserialport-static:CONFIG += static else:CONFIG += dll mac:CONFIG += absolute_library_soname win32|mac:!wince*:!win32-msvc:!macx-xcode:CONFIG += debug_and_release build_all TARGET = $$QEXTSERIALPORT_LIBNAME DESTDIR = $$QEXTSERIALPORT_LIBDIR win32:!qextserialport-static{ DLLDESTDIR = $$[QT_INSTALL_BINS] QMAKE_DISTCLEAN += $$[QT_INSTALL_BINS]\\$${QEXTSERIALPORT_LIBNAME}.dll } target.path = $$PREFIX/$$[QT_INSTALL_LIBS] INSTALLS += target dlt-viewer-2.18.0+dfsg/qextserialport/config_example.pri0000664000175000017500000000066713001357026023013 0ustar potyrapotyra# This is an example config.pri for building and using qextserialport. # # When using the qextserialport, all you need is to add following line # in your .pro file: # include(pathToQextserialport/src/qextserialport.pri) # # uncomment the following line if you want to use qextserialport as library # QEXTSERIALPORT_LIBRARY = yes # uncomment the following line too if you want to use it as static library # QEXTSERIALPORT_STATIC = yes dlt-viewer-2.18.0+dfsg/qextserialport/common.pri0000664000175000017500000000144313001357026021314 0ustar potyrapotyrainfile(config.pri, QEXTSERIALPORT_LIBRARY, yes): CONFIG += qextserialport-library qextserialport-library{ infile(config.pri, QEXTSERIALPORT_STATIC, yes): CONFIG += qextserialport-static } # Though maybe you have been fimiliar with "TEMPLATE += fakelib" and "TEMPLATE -= fakelib", # but it don't work when you using "qmake -tp XXX". So I use another variable Here. SAVE_TEMPLATE = $$TEMPLATE TEMPLATE = fakelib CONFIG(debug, debug|release) { QEXTSERIALPORT_LIBNAME = qextserialportd TEMPLATE = $$SAVE_TEMPLATE QEXTSERIALPORT_LIBDIR = ../../debug #$$PWD/lib } else { QEXTSERIALPORT_LIBNAME = qextserialport TEMPLATE = $$SAVE_TEMPLATE QEXTSERIALPORT_LIBDIR = ../../release #$$PWD/lib } unix:qextserialport-library:!qextserialport-buildlib:QMAKE_RPATHDIR += $$QEXTSERIALPORT_LIBDIR dlt-viewer-2.18.0+dfsg/qextserialport/config.pri0000664000175000017500000000066513001357026021276 0ustar potyrapotyra# This is an example config.pri for building and using qextserialport. # # When using the qextserialport, all you need is to add following line # in your .pro file: # include(pathToQextserialport/src/qextserialport.pri) # # uncomment the following line if you want to use qextserialport as library QEXTSERIALPORT_LIBRARY = yes # uncomment the following line too if you want to use it as static library # QEXTSERIALPORT_STATIC = yes dlt-viewer-2.18.0+dfsg/qextserialport/examples/0000775000175000017500000000000013001357026021124 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/qextserialport/examples/examples.pro0000664000175000017500000000013313001357026023461 0ustar potyrapotyraTEMPLATE = subdirs SUBDIRS = qespta enumerator \ uartassistant win32:SUBDIRS += event dlt-viewer-2.18.0+dfsg/qextserialport/examples/event/0000775000175000017500000000000013001357026022245 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/qextserialport/examples/event/PortListener.h0000664000175000017500000000053013001357026025046 0ustar potyrapotyra #ifndef PORTLISTENER_H_ #define PORTLISTENER_H_ #include #include "qextserialport.h" class PortListener : public QObject { Q_OBJECT public: PortListener(const QString & portName); private: QextSerialPort *port; private slots: void onReadyRead(); void onDsrChanged(bool status); }; #endif /*PORTLISTENER_H_*/ dlt-viewer-2.18.0+dfsg/qextserialport/examples/event/main.cpp0000664000175000017500000000071313001357026023676 0ustar potyrapotyra/** * @file main.cpp * @brief Main file. * @author Michal Policht */ #include #include "PortListener.h" int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); QString portName = QLatin1String("COM1"); // update this to use your port of choice PortListener listener(portName); // signals get hooked up internally // start the event loop and wait for signals return app.exec(); } dlt-viewer-2.18.0+dfsg/qextserialport/examples/event/event.pro0000664000175000017500000000022713001357026024111 0ustar potyrapotyraTEMPLATE = app DEPENDPATH += . CONFIG += console include(../../src/qextserialport.pri) SOURCES += main.cpp PortListener.cpp HEADERS += PortListener.h dlt-viewer-2.18.0+dfsg/qextserialport/examples/event/PortListener.cpp0000664000175000017500000000233313001357026025404 0ustar potyrapotyra #include "PortListener.h" #include PortListener::PortListener(const QString & portName) { qDebug() << "hi there"; this->port = new QextSerialPort(portName, QextSerialPort::EventDriven); port->setBaudRate(BAUD9600); port->setFlowControl(FLOW_OFF); port->setParity(PAR_NONE); port->setDataBits(DATA_8); port->setStopBits(STOP_2); if (port->open(QIODevice::ReadWrite) == true) { connect(port, SIGNAL(readyRead()), this, SLOT(onReadyRead())); connect(port, SIGNAL(dsrChanged(bool)), this, SLOT(onDsrChanged(bool))); if (!(port->lineStatus() & LS_DSR)) qDebug() << "warning: device is not turned on"; qDebug() << "listening for data on" << port->portName(); } else { qDebug() << "device failed to open:" << port->errorString(); } } void PortListener::onReadyRead() { QByteArray bytes; int a = port->bytesAvailable(); bytes.resize(a); port->read(bytes.data(), bytes.size()); qDebug() << "bytes read:" << bytes.size(); qDebug() << "bytes:" << bytes; } void PortListener::onDsrChanged(bool status) { if (status) qDebug() << "device was turned on"; else qDebug() << "device was turned off"; } dlt-viewer-2.18.0+dfsg/qextserialport/examples/qespta/0000775000175000017500000000000013001357026022421 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/qextserialport/examples/qespta/QespTest.h0000664000175000017500000000105313001357026024341 0ustar potyrapotyra/* qesptest.h **************************************/ #ifndef _QESPTEST_H_ #define _QESPTEST_H_ #include class QLineEdit; class QTextEdit; class QextSerialPort; class QSpinBox; class QespTest : public QWidget { Q_OBJECT public: QespTest(QWidget *parent=0); virtual ~QespTest(); private: QLineEdit *message; QSpinBox* delaySpinBox; QTextEdit *received_msg; QextSerialPort *port; private slots: void transmitMsg(); void receiveMsg(); void appendCR(); void appendLF(); void closePort(); void openPort(); }; #endif dlt-viewer-2.18.0+dfsg/qextserialport/examples/qespta/QespTest.cpp0000664000175000017500000000615513001357026024704 0ustar potyrapotyra/* QespTest.cpp **************************************/ #include "QespTest.h" #include "qextserialport.h" #include #include #include #include #include QespTest::QespTest(QWidget* parent) : QWidget(parent) { //modify the port settings on your own #ifdef Q_OS_UNIX port = new QextSerialPort(QLatin1String("/dev/ttyS0"), QextSerialPort::Polling); #else port = new QextSerialPort(QLatin1String("COM1"), QextSerialPort::Polling); #endif /*Q_OS_UNIX*/ port->setBaudRate(BAUD19200); port->setFlowControl(FLOW_OFF); port->setParity(PAR_NONE); port->setDataBits(DATA_8); port->setStopBits(STOP_2); //set timeouts to 500 ms port->setTimeout(500); message = new QLineEdit(this); // transmit receive QPushButton *transmitButton = new QPushButton(tr("Transmit")); connect(transmitButton, SIGNAL(clicked()), SLOT(transmitMsg())); QPushButton *receiveButton = new QPushButton(tr("Receive")); connect(receiveButton, SIGNAL(clicked()), SLOT(receiveMsg())); QHBoxLayout* trLayout = new QHBoxLayout; trLayout->addWidget(transmitButton); trLayout->addWidget(receiveButton); //CR LF QPushButton *CRButton = new QPushButton(tr("CR")); connect(CRButton, SIGNAL(clicked()), SLOT(appendCR())); QPushButton *LFButton = new QPushButton(tr("LF")); connect(LFButton, SIGNAL(clicked()), SLOT(appendLF())); QHBoxLayout *crlfLayout = new QHBoxLayout; crlfLayout->addWidget(CRButton); crlfLayout->addWidget(LFButton); //open close QPushButton *openButton = new QPushButton(tr("Open")); connect(openButton, SIGNAL(clicked()), SLOT(openPort())); QPushButton *closeButton = new QPushButton(tr("Close")); connect(closeButton, SIGNAL(clicked()), SLOT(closePort())); QHBoxLayout *ocLayout = new QHBoxLayout; ocLayout->addWidget(openButton); ocLayout->addWidget(closeButton); received_msg = new QTextEdit(); QVBoxLayout *myVBox = new QVBoxLayout; myVBox->addWidget(message); myVBox->addLayout(crlfLayout); myVBox->addLayout(trLayout); myVBox->addLayout(ocLayout); myVBox->addWidget(received_msg); setLayout(myVBox); qDebug("isOpen : %d", port->isOpen()); } QespTest::~QespTest() { delete port; port = NULL; } void QespTest::transmitMsg() { int i = port->write((message->text()).toAscii(), (message->text()).length()); qDebug("trasmitted : %d", i); } void QespTest::receiveMsg() { char buff[1024]; int numBytes; numBytes = port->bytesAvailable(); if(numBytes > 1024) numBytes = 1024; int i = port->read(buff, numBytes); if (i != -1) buff[i] = '\0'; else buff[0] = '\0'; QString msg = QLatin1String(buff); received_msg->append(msg); received_msg->ensureCursorVisible(); qDebug("bytes available: %d", numBytes); qDebug("received: %d", i); } void QespTest::appendCR() { message->insert(QLatin1String("\x0D")); } void QespTest::appendLF() { message->insert(QLatin1String("\x0A")); } void QespTest::closePort() { port->close(); qDebug("is open: %d", port->isOpen()); } void QespTest::openPort() { port->open(QIODevice::ReadWrite | QIODevice::Unbuffered); qDebug("is open: %d", port->isOpen()); } dlt-viewer-2.18.0+dfsg/qextserialport/examples/qespta/MainWindow.cpp0000664000175000017500000000264613001357026025211 0ustar potyrapotyra/** * @file MainWindow.cpp * @brief MainWindow Implementation. * @see MainWindow.h * @author Micha? Policht */ #include #include #include "MainWindow.h" #include "MessageWindow.h" #include "QespTest.h" MainWindow::MainWindow(const QString &title) { setWindowTitle(title); //central widget QespTest* qespTest = new QespTest(); setCentralWidget(qespTest); //bottom dock widget MessageWindow* msgWindow = new MessageWindow(); addDockWidget(Qt::BottomDockWidgetArea, msgWindow); createActions(); createMenus(); } void MainWindow::about() { QMessageBox::about(this, tr("About "), tr("""
    " "author: Michal Policht
    " "xpolik@users.sourceforge.net")); } void MainWindow::createActions() { //File actions exitAct = new QAction(tr("E&xit"), this); exitAct->setShortcut(tr("CTRL+D")); exitAct->setStatusTip(tr("Exit the application")); connect(exitAct, SIGNAL(triggered()), this, SLOT(close())); //Help actions aboutAct = new QAction(tr("&About"), this); aboutAct->setShortcut(tr("CTRL+A")); aboutAct->setStatusTip(tr("About application")); connect(aboutAct, SIGNAL(triggered()), this, SLOT(about())); } void MainWindow::createMenus() { fileMenu = menuBar()->addMenu(tr("&File")); fileMenu->addAction(exitAct); helpMenu = menuBar()->addMenu(tr("&Help")); helpMenu->addAction(aboutAct); } dlt-viewer-2.18.0+dfsg/qextserialport/examples/qespta/MessageWindow.cpp0000664000175000017500000000544113001357026025705 0ustar potyrapotyra/** * @file MessageWindow.cpp * @brief MessageWindow Implementation. * @see MessageWindow.h * @author Micha? Policht */ #include #include "MessageWindow.h" #include #include #include const char* MessageWindow::WINDOW_TITLE = "Message Window"; MessageWindow* MessageWindow::MsgHandler = NULL; MessageWindow::MessageWindow(QWidget* parent, Qt::WFlags flags) : QDockWidget(parent, flags), msgTextEdit(this) { setWindowTitle(tr(WINDOW_TITLE)); msgTextEdit.setReadOnly(true); setWidget(&msgTextEdit); MessageWindow::MsgHandler = this; } //static QString MessageWindow::QtMsgToQString(QtMsgType type, const char *msg) { switch (type) { case QtDebugMsg: return QLatin1String("Debug: ")+QLatin1String(msg); case QtWarningMsg: return QLatin1String("Warning: ")+QLatin1String(msg); case QtCriticalMsg: return QLatin1String("Critical: ")+QLatin1String(msg); case QtFatalMsg: return QLatin1String("Fatal: ")+QLatin1String(msg); default: return QLatin1String("Unrecognized message type: ")+QLatin1String(msg); } } //static void MessageWindow::AppendMsgWrapper(QtMsgType type, const char* msg) { static QMutex mutex; QMutexLocker locker(&mutex); if (MessageWindow::MsgHandler != NULL) return MessageWindow::MsgHandler->postMsgEvent(type, msg); else fprintf(stderr, "%s", MessageWindow::QtMsgToQString(type, msg).toLatin1().data()); } void MessageWindow::customEvent(QEvent* event) { if (static_cast(event->type()) == MessageWindow::MessageEventType) msgTextEdit.append(dynamic_cast(event)->msg); } void MessageWindow::postMsgEvent(QtMsgType type, const char* msg) { QString qmsg = MessageWindow::QtMsgToQString(type, msg); switch (type) { case QtDebugMsg: break; case QtWarningMsg: qmsg.prepend(QLatin1String("")); qmsg.append(QLatin1String("")); break; case QtCriticalMsg: if (QMessageBox::critical(this, QLatin1String("Critical Error"), qmsg, QMessageBox::Ignore, QMessageBox::Abort, QMessageBox::NoButton) == QMessageBox::Abort) abort(); // core dump qmsg.prepend(QLatin1String("")); qmsg.append(QLatin1String("")); break; case QtFatalMsg: QMessageBox::critical(this, QLatin1String("Fatal Error"), qmsg, QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton); abort(); // deliberately core dump } //it's impossible to change GUI directly from thread other than the main thread //so post message encapsulated by MessageEvent to the main thread's event queue QCoreApplication::postEvent(this, new MessageEvent(qmsg)); } MessageEvent::MessageEvent(QString & msg): QEvent(static_cast(MessageWindow::MessageEventType)) { this->msg = msg; } dlt-viewer-2.18.0+dfsg/qextserialport/examples/qespta/MainWindow.h0000664000175000017500000000102613001357026024645 0ustar potyrapotyra/** * @file MainWindow.h * @brief Application's Main Window. * @see MainWindow * @author Micha? Policht */ #ifndef MAINWINDOW_H_ #define MAINWINDOW_H_ #include class QMenu; class QAction; class MainWindow : public QMainWindow { Q_OBJECT //@{ QMenu *fileMenu; QAction *exitAct; QMenu *helpMenu; QAction *aboutAct; //@} private: void createMenus(); void createActions(); private slots: void about(); public: MainWindow(const QString &title); }; #endif /*MAINWINDOW_H_*/ dlt-viewer-2.18.0+dfsg/qextserialport/examples/qespta/qespta.pro0000664000175000017500000000042713001357026024443 0ustar potyrapotyraTEMPLATE = app DEPENDPATH += . QT += core gui contains(QT_VERSION, ^5\\..*\\..*): QT += widgets HEADERS += MainWindow.h \ MessageWindow.h \ QespTest.h SOURCES += main.cpp \ MainWindow.cpp \ MessageWindow.cpp \ QespTest.cpp include(../../src/qextserialport.pri) dlt-viewer-2.18.0+dfsg/qextserialport/examples/qespta/main.cpp0000664000175000017500000000076213001357026024056 0ustar potyrapotyra/** * @file main.cpp * @brief Main file. * @author Micha? Policht */ #include #include "MainWindow.h" #include "MessageWindow.h" int main(int argc, char *argv[]) { int exec; QApplication app(argc, argv); //! [0] //redirect debug messages to the MessageWindow dialog qInstallMsgHandler(MessageWindow::AppendMsgWrapper); //! [0] MainWindow mainWindow(QLatin1String("QextSerialPort Test Application")); mainWindow.show(); exec = app.exec(); return exec; } dlt-viewer-2.18.0+dfsg/qextserialport/examples/qespta/MessageWindow.h0000664000175000017500000000375413001357026025357 0ustar potyrapotyra/** * @file MessageWindow.h * @brief Message Window. * @see MessageWindow * @author Micha? Policht */ #ifndef MESSAGEWINDOW_H_ #define MESSAGEWINDOW_H_ #include #include #include /** * Message Window. Handling errors and other messages. */ class MessageWindow: public QDockWidget { Q_OBJECT QTextEdit msgTextEdit; ///< Main widget. static MessageWindow* MsgHandler; ///< Set in constructor. static const char* WINDOW_TITLE; ///< Window title. private: static QString QtMsgToQString(QtMsgType type, const char *msg); protected: /** * Handle custom events. MessageWindow hadles custom events listed in * EventType enum. */ virtual void customEvent(QEvent* event); public: enum EventType {MessageEventType = QEvent::User}; ///< Custom event types. /** * Default constructor. * @param parent parent widget. * @param flags widget flags. */ MessageWindow(QWidget* parent = 0, Qt::WFlags flags = 0); /** * Append message wrapper. Since ISO forbids casting member functions * to C functions, wrapper is needed to use this class as QtMsgHandler. * This method is thread-safe but not reentrant. * @param type message type. * @param msg message string. */ static void AppendMsgWrapper(QtMsgType type, const char *msg); /** * Post message event to the main event loop. This function encapsulates * message into MessageEvent object and passes it to the main event loop. * @param type message type. * @param msg message string. */ void postMsgEvent(QtMsgType type, const char *msg); }; /** * Message Event. Custom event used by @ref MessageWindow to provide multi-threaded * access. Encapsulates message inside @a msg variable. */ class MessageEvent: public QEvent { public: QString msg; ///< Message string. /** * Contructor. * @param msg message to post. */ MessageEvent(QString & msg); }; #endif /*MESSAGEWINDOW_H_*/ dlt-viewer-2.18.0+dfsg/qextserialport/examples/qespta/README0000664000175000017500000000016413001357026023302 0ustar potyrapotyraThis is simple application using QextSerialPort library. Port settings are in QespTest constructor (QespTest.cpp) dlt-viewer-2.18.0+dfsg/qextserialport/examples/uartassistant/0000775000175000017500000000000013001357026024031 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/qextserialport/examples/uartassistant/hled.cpp0000664000175000017500000001215213001357026025452 0ustar potyrapotyra#include #include #include #include #include #include "hled.h" class HLed::Private { public: Private() : darkerFactor(300), color(Qt::green), isOn(true), offPixmap(0), onPixmap(0) { offColor = color.darker(darkerFactor); timer = new QTimer; timer->setInterval(250); } ~Private() { delete offPixmap; delete onPixmap; delete timer; } int darkerFactor; QColor color; bool isOn; QColor offColor; QPixmap *offPixmap; QPixmap *onPixmap; HLed::State state; QTimer * timer; }; HLed::HLed(QWidget *parent) :QWidget(parent), m_d(new Private) { setColor(Qt::red); setState(Blink); connect(m_d->timer, SIGNAL(timeout()), this, SLOT(blinkToggle())); } HLed::~HLed() { delete m_d; } QColor HLed::color() const { return m_d->color; } HLed::State HLed::state() const { return m_d->state; } int HLed::darkerFactor() const { return m_d->darkerFactor; } void HLed::setColor(const QColor &color) { if (m_d->color == color) return; if (m_d->onPixmap) { delete m_d->onPixmap; m_d->onPixmap = 0; } if (m_d->offPixmap) { delete m_d->offPixmap; m_d->offPixmap = 0; } m_d->color = color; m_d->offColor = color.darker(m_d->darkerFactor); update(); } void HLed::setState(State state) { if (m_d->state == state) return; if (Blink == state) { m_d->timer->start(); } else { m_d->timer->stop(); m_d->isOn = (state==On) ? true : false; } m_d->state = state; update(); } void HLed::setDarkerFactor(int darkerFactor) { if (m_d->darkerFactor == darkerFactor) return; m_d->darkerFactor = darkerFactor; m_d->offColor = m_d->color.darker(darkerFactor); update(); } QSize HLed::sizeHint() const { return QSize(20, 20); } QSize HLed::minimumSizeHint() const { return QSize(16, 16); } void HLed::toggle() { if (m_d->state == Blink) { return; } setState(m_d->state == On ? Off : On); update(); } void HLed::turnOn(bool on) { setState(on ? On : Off); } void HLed::turnOff(bool off) { turnOn(!off); } void HLed::blink() { setState(Blink); } void HLed::blinkToggle() { m_d->isOn = !m_d->isOn; update(); } void HLed::paintEvent(QPaintEvent* /* event*/) { if (paintCachedPixmap()) { return; } int width = ledWidth(); const int scale = 3; QPixmap *tmpPixmap = 0; width *= scale; tmpPixmap = new QPixmap(width + scale*2, width + scale*2); tmpPixmap->fill(palette().color(backgroundRole())); tmpPixmap->fill(QColor(Qt::transparent)); QPainter paint; paint.begin(tmpPixmap); paint.setRenderHint(QPainter::Antialiasing); QColor color = m_d->isOn ? m_d->color : m_d->offColor; QBrush brush; brush.setStyle(Qt::SolidPattern); brush.setColor(color); paint.setBrush(brush); // draw plain paint.drawEllipse(scale, scale, width-scale*2, width-scale*2); QPen pen; pen.setWidth(2 * scale); int pos = width / 5 + 1; int lightWidth = width * 2 / 3; int lightQuote = 130 * 2 / (lightWidth ? lightWidth : 1) + 100; // draw bright spot while (lightWidth) { color = color.lighter(lightQuote); pen.setColor(color); paint.setPen(pen); paint.drawEllipse(pos, pos, lightWidth, lightWidth); lightWidth--; if (!lightWidth) { break; } paint.drawEllipse(pos, pos, lightWidth, lightWidth); lightWidth--; if (!lightWidth) { break; } paint.drawEllipse(pos, pos, lightWidth, lightWidth); pos++; lightWidth--; } pen.setWidth(2*scale + 1); brush.setStyle(Qt::NoBrush); paint.setBrush(brush); int angle = -720; color = palette().color(QPalette::Light); for (int arc=120; arc<2880; arc+=240) { pen.setColor(color); paint.setPen(pen); int w = width - pen.width()/2 - scale + 1; paint.drawArc(pen.width()/2, pen.width()/2, w, w, angle+arc, 240); paint.drawArc(pen.width()/2, pen.width()/2, w, w, angle-arc, 240); color = color.darker(110); } paint.end(); QPixmap *&dest = (m_d->isOn ? m_d->onPixmap : m_d->offPixmap); QImage i = tmpPixmap->toImage(); width /= scale; i = i.scaled(width, width, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); delete tmpPixmap; dest = new QPixmap(QPixmap::fromImage(i)); paint.begin(this); paint.drawPixmap(0, 0, *dest); paint.end(); } bool HLed::paintCachedPixmap() { if (m_d->isOn && m_d->onPixmap) { QPainter paint(this); paint.drawPixmap(0, 0, *m_d->onPixmap); return true; } if (!m_d->isOn && m_d->offPixmap) { QPainter paint(this); paint.drawPixmap(0, 0, *m_d->offPixmap); return true; } return false; } int HLed::ledWidth() const { int width = qMin(this->width(), this->height()); width -= 2; return width > 0 ? width : 0; } dlt-viewer-2.18.0+dfsg/qextserialport/examples/uartassistant/uartassistant.pro0000664000175000017500000000066013001357026027462 0ustar potyrapotyra#------------------------------------------------- # # Project created by QtCreator 2011-11-06T21:37:41 # #------------------------------------------------- QT += core gui contains(QT_VERSION, ^5\\..*\\..*): QT += widgets TARGET = uartassistant TEMPLATE = app include(../../src/qextserialport.pri) SOURCES += main.cpp\ dialog.cpp\ hled.cpp HEADERS += dialog.h \ hled.h FORMS += dialog.ui dlt-viewer-2.18.0+dfsg/qextserialport/examples/uartassistant/dialog.cpp0000664000175000017500000001205413001357026025776 0ustar potyrapotyra#include "dialog.h" #include "ui_dialog.h" #include #include #include #include "qextserialport.h" Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); #ifdef Q_OS_WIN ui->portBox->addItems(QStringList()<portBox->addItems(QStringList()<portBox->setEditable(true); ui->baudRateBox->addItem(QLatin1String("1200"), BAUD1200); ui->baudRateBox->addItem(QLatin1String("2400"), BAUD2400); ui->baudRateBox->addItem(QLatin1String("4800"), BAUD4800); ui->baudRateBox->addItem(QLatin1String("9600"), BAUD9600); ui->baudRateBox->addItem(QLatin1String("19200"), BAUD19200); ui->baudRateBox->setCurrentIndex(3); ui->parityBox->addItem(QLatin1String("NONE"), PAR_NONE); ui->parityBox->addItem(QLatin1String("ODD"), PAR_ODD); ui->parityBox->addItem(QLatin1String("EVEN"), PAR_EVEN); ui->dataBitsBox->addItem(QLatin1String("5"), DATA_5); ui->dataBitsBox->addItem(QLatin1String("6"), DATA_6); ui->dataBitsBox->addItem(QLatin1String("7"), DATA_7); ui->dataBitsBox->addItem(QLatin1String("8"), DATA_8); ui->dataBitsBox->setCurrentIndex(3); ui->stopBitsBox->addItem(QLatin1String("1"), STOP_1); ui->stopBitsBox->addItem(QLatin1String("2"), STOP_2); ui->queryModeBox->addItem(QLatin1String("Polling"), QextSerialPort::Polling); ui->queryModeBox->addItem(QLatin1String("EventDriven"), QextSerialPort::EventDriven); ui->led->turnOff(); timer = new QTimer(this); timer->setInterval(40); PortSettings settings = {BAUD9600, DATA_8, PAR_NONE, STOP_1, FLOW_OFF, 10}; port = new QextSerialPort(ui->portBox->currentText(), settings, QextSerialPort::Polling); connect(ui->baudRateBox, SIGNAL(currentIndexChanged(int)), SLOT(onBaudRateChanged(int))); connect(ui->parityBox, SIGNAL(currentIndexChanged(int)), SLOT(onParityChanged(int))); connect(ui->dataBitsBox, SIGNAL(currentIndexChanged(int)), SLOT(onDataBitsChanged(int))); connect(ui->stopBitsBox, SIGNAL(currentIndexChanged(int)), SLOT(onStopBitsChanged(int))); connect(ui->queryModeBox, SIGNAL(currentIndexChanged(int)), SLOT(onQueryModeChanged(int))); connect(ui->timeoutBox, SIGNAL(valueChanged(int)), SLOT(onTimeoutChanged(int))); connect(ui->portBox, SIGNAL(editTextChanged(QString)), SLOT(onPortNameChanged(QString))); connect(ui->openCloseButton, SIGNAL(clicked()), SLOT(onOpenCloseButtonClicked())); connect(ui->sendButton, SIGNAL(clicked()), SLOT(onSendButtonClicked())); connect(timer, SIGNAL(timeout()), SLOT(onReadyRead())); connect(port, SIGNAL(readyRead()), SLOT(onReadyRead())); setWindowTitle(QLatin1String("QextSerialPort Demo")); } Dialog::~Dialog() { delete ui; delete port; } void Dialog::changeEvent(QEvent *e) { QDialog::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); break; default: break; } } void Dialog::onPortNameChanged(const QString & /*name*/) { if (port->isOpen()) { port->close(); ui->led->turnOff(); } } void Dialog::onBaudRateChanged(int idx) { port->setBaudRate((BaudRateType)ui->baudRateBox->itemData(idx).toInt()); } void Dialog::onParityChanged(int idx) { port->setParity((ParityType)ui->parityBox->itemData(idx).toInt()); } void Dialog::onDataBitsChanged(int idx) { port->setDataBits((DataBitsType)ui->dataBitsBox->itemData(idx).toInt()); } void Dialog::onStopBitsChanged(int idx) { port->setStopBits((StopBitsType)ui->stopBitsBox->itemData(idx).toInt()); } void Dialog::onQueryModeChanged(int idx) { port->setQueryMode((QextSerialPort::QueryMode)ui->queryModeBox->itemData(idx).toInt()); } void Dialog::onTimeoutChanged(int val) { port->setTimeout(val); } void Dialog::onOpenCloseButtonClicked() { if (!port->isOpen()) { port->setPortName(ui->portBox->currentText()); port->open(QIODevice::ReadWrite); } else { port->close(); } if (port->isOpen()) { if (port->queryMode() == QextSerialPort::Polling) timer->start(); ui->led->turnOn(); } else { timer->stop(); ui->led->turnOff(); } } void Dialog::onSendButtonClicked() { if (port->isOpen() && !ui->sendEdit->toPlainText().isEmpty()) port->write(ui->sendEdit->toPlainText().toLatin1()); } void Dialog::onReadyRead() { //EventDriven test. if (qApp->arguments().contains(QLatin1String("--debug")) && port->queryMode()==QextSerialPort::EventDriven){ ui->recvEdit->appendPlainText(QString::number(port->bytesAvailable())); return; } if (port->bytesAvailable()) { ui->recvEdit->moveCursor(QTextCursor::End); ui->recvEdit->insertPlainText(QString::fromLatin1(port->readAll())); } } dlt-viewer-2.18.0+dfsg/qextserialport/examples/uartassistant/dialog.ui0000664000175000017500000001214613001357026025633 0ustar potyrapotyra Dialog 0 0 604 485 Dialog 800 Port: BaudRate: DataBits: Parity: StopBits: QueryMode: Timeout: ms -1 10000 10 10 0 0 20 20 25 25 Open/Close Qt::Vertical 20 40 Send HLed QWidget
    hled.h
    1
    dlt-viewer-2.18.0+dfsg/qextserialport/examples/uartassistant/main.cpp0000664000175000017500000000024413001357026025461 0ustar potyrapotyra#include #include "dialog.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); Dialog w; w.show(); return a.exec(); } dlt-viewer-2.18.0+dfsg/qextserialport/examples/uartassistant/hled.h0000664000175000017500000000147613001357026025126 0ustar potyrapotyra#ifndef HLED_H #define HLED_H #include class QColor; class QTimer; class HLed : public QWidget { Q_OBJECT public: enum State {Off, On, Blink}; HLed(QWidget *parent = 0); ~HLed(); QColor color() const; State state() const; int darkerFactor() const; void setColor(const QColor & color); void setState(State state); void setDarkerFactor(int darkerFactor); QSize sizeHint() const; QSize minimumSizeHint() const; public slots: void toggle(); void turnOn(bool on=true); void turnOff(bool off=true); void blink(); private slots: void blinkToggle(); protected: void paintEvent(QPaintEvent*); bool paintCachedPixmap(); int ledWidth() const; void paintSunken(); private: class Private; Private * const m_d; }; #endif // HLED_H dlt-viewer-2.18.0+dfsg/qextserialport/examples/uartassistant/dialog.h0000664000175000017500000000137113001357026025443 0ustar potyrapotyra#ifndef DIALOG_H #define DIALOG_H #include namespace Ui { class Dialog; } class QTimer; class QextSerialPort; class Dialog : public QDialog { Q_OBJECT public: explicit Dialog(QWidget *parent = 0); ~Dialog(); protected: void changeEvent(QEvent *e); private Q_SLOTS: void onPortNameChanged(const QString &name); void onBaudRateChanged(int idx); void onParityChanged(int idx); void onDataBitsChanged(int idx); void onStopBitsChanged(int idx); void onQueryModeChanged(int idx); void onTimeoutChanged(int val); void onOpenCloseButtonClicked(); void onSendButtonClicked(); void onReadyRead(); private: Ui::Dialog *ui; QTimer *timer; QextSerialPort *port; }; #endif // DIALOG_H dlt-viewer-2.18.0+dfsg/qextserialport/examples/enumerator/0000775000175000017500000000000013001357026023305 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/qextserialport/examples/enumerator/main.cpp0000664000175000017500000000146413001357026024742 0ustar potyrapotyra/** * @file main.cpp * @brief Main file. * @author Micha? Policht */ #include "qextserialenumerator.h" #include #include //! [0] int main() { QList ports = QextSerialEnumerator::getPorts(); qDebug() << "List of ports:"; for (int i = 0; i < ports.size(); i++) { qDebug() << "port name:" << ports.at(i).portName; qDebug() << "friendly name:" << ports.at(i).friendName; qDebug() << "physical name:" << ports.at(i).physName; qDebug() << "enumerator name:" << ports.at(i).enumName; qDebug() << "vendor ID:" << QString::number(ports.at(i).vendorID, 16); qDebug() << "product ID:" << QString::number(ports.at(i).productID, 16); qDebug() << "==================================="; } return 0; } //! [0] dlt-viewer-2.18.0+dfsg/qextserialport/examples/enumerator/enumerator.pro0000664000175000017500000000015413001357026026210 0ustar potyrapotyraTEMPLATE = app DEPENDPATH += . CONFIG += console include(../../src/qextserialport.pri) SOURCES += main.cpp dlt-viewer-2.18.0+dfsg/qextserialport/README0000664000175000017500000000454313001357026020174 0ustar potyrapotyra = About QextSerialPort = QextSerialPort provides an interface to old fashioned serial ports for Qt-based applications. It currently supports Mac OS X, Windows, Linux, FreeBSD. http://code.google.com/p/qextserialport/ == How to use (1) == * Download the source code. Note: [http://mercurial.selenic.com/downloads/ Mercurial] is needed . hg clone https://code.google.com/r/dbzhang800-qextserialport/ * Put the source code in any directory you like. For example, 3rdparty: |-- project.pro |-- .... |-- 3rdparty\ | |-- qextserialport\ | | * Add following line to your qmake project file: include(3rdparty/qextserialport/src/qextserialport.pri) * Using QextSerialPort in your code. Enjoy it! #include "qextserialport.h" .... QextSerialPort * port = new QextSerialPort(); .... == How to use (2) == It's very easy to compile QextSerialPort directly into your application(see above section), however, we would prefer to use it as a static or shared library. * Download the source code, and put it in any location you like. |-- yourpath\ | |-- qextserialport\ | | * Create a config.pri file, and put into qextserialport's directory. |-- yourpath\ | |-- qextserialport\ | | |-- config.pri * Contents of config_example.pri # uncomment the following line if you want to use qextserialport as library # QEXTSERIALPORT_LIBRARY = yes # uncomment the following line too if you want to use it as static library # QEXTSERIALPORT_STATIC = yes * Goto qextserialport/buildlib, and run following command to generate library. qmake make (or nmake) * Add following line to your qmake project file. Enjoy it! include(pathToQextserialport/src/qextserialport.pri) == Build (optional) == * Run qmake from the toplevel directory.(If your has create a config.pri file properly, this will generate the library, and then all examples will use the library. Otherwise, qextserialport will be directly compiled into the examples) qmake (or qmake -r) make (or nmake) * Run qdoc3 from the doc directory. qdoc3 qextserialport.qdocconf dlt-viewer-2.18.0+dfsg/examples/0000775000175000017500000000000013001357026016036 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/examples/dlt-speed-app/0000775000175000017500000000000013001357026020475 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/examples/dlt-speed-app/dlt-speed-app.c0000664000175000017500000002373713001357026023314 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * * \author Alexander Wenzel BMW 2011,2012 * * \file dlt-speed-app.c * For further information see http://www.genivi.org/. * @licence end@ */ /******************************************************************************* ** ** ** SRC-MODULE: dlt-speed-app.c ** ** ** ** TARGET : linux ** ** ** ** PROJECT : DLT ** ** ** ** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** ** Christian Muck christian.muck@bmw.de ** ** PURPOSE : ** ** ** ** REMARKS : ** ** ** ** PLATFORM DEPENDANT [yes/no]: yes ** ** ** ** TO BE CHANGED BY USER [yes/no]: no ** ** ** *******************************************************************************/ /******************************************************************************* ** Author Identity ** ******************************************************************************** ** ** ** Initials Name Company ** ** -------- ------------------------- ---------------------------------- ** ** aw Alexander Wenzel BMW ** ** cm Christian Muck BMW *******************************************************************************/ /******************************************************************************* ** Revision Control History ** *******************************************************************************/ /* * $LastChangedRevision: xxxx $ * $LastChangedDate: 2010-12-13 10:07:42 +0100 (Mo, 13. Dez 2010) $ * $LastChangedBy$ Initials Date Comment aw 13.01.2010 initial cm 27.04.2011 fixing */ #include /* Definitions for network database operations */ #include /* ANSI C Standard Library for the C programming language contains declarations for character classification functions*/ #include /* for printf() and fprintf() */ #include /* for atoi() and exit() */ #include /* for memset() */ #include /* for close() */ /** * Include the dlt header file for using dlt functions */ #include #define DEFAULT_DELAY 500 #define DEFAULT_MESSAGES 1000 /** * */ int maxMessageCount; int delay; int hflag = 0; int gflag = 0; int aflag = 0; char *dvalue = 0; char *fvalue = 0; char *nvalue = 0; //For injection callback - delete if interface does not provide injection /* char *message = 0; char *text = 0; int dlt_user_injection_callback(uint32_t service_id, void *data, uint32_t length); */ /** * Create logging context */ DLT_DECLARE_CONTEXT(mycontext); /** * Print usage information of tool. */ void printUsage() { char version[255]; dlt_get_version(version, 255); printf("Usage: dlt-speed-app [options] mode\n"); printf("Generate DLT messages with current speed information.\n"); printf("%s \n", version); printf("Mode:\n"); printf(" 1 Ramp up and down from 0 - 100 km/h\n"); printf("Options:\n"); printf(" -d delay Milliseconds to wait between sending messages (Default: 500)\n"); printf(" -f filename Use local log file instead of sending to daemon (absolute path) - don't forget .dlt\n"); printf(" -n count Number of messages to be generated (Default: 1000)\n"); printf(" -g Switch to non-verbose mode (Default: verbose mode)\n"); printf(" -a Enable local printing of DLT messages (Default: disabled)\n"); printf(" -h Print usage\n"); } /** * Parse arguments from program start, see printUsage for possible options */ int parseArguments(int argc, char* argv[]){ int index; int c; opterr = 0; while ((c = getopt (argc, argv, "hgad:f:n:")) != -1) { switch (c) { case 'h': { hflag = 1; break; } case 'g': { gflag = 1; break; } case 'a': { aflag = 1; break; } case 'd': { dvalue = optarg; break; } case 'f': { fvalue = optarg; break; } case 'n': { nvalue = optarg; break; } case '?': { if (optopt == 'd' || optopt == 'f' || optopt == 'n') { fprintf (stderr, "Option -%c requires an argument.\n", optopt); } else if (isprint (optopt)) { fprintf (stderr, "Unknown option `-%c'.\n", optopt); } else { fprintf (stderr, "Unknown option character `\\x%x'.\n",optopt); } /* Unknown or wrong option used, show usage information and terminate */ printUsage(); return EXIT_FAILURE; } default: { /* Generate an abnormal process abort*/ abort(); } } } //For injection callback - delete if interface does not provide injection /* for (index = optind; index < argc; index++) { message = argv[index]; } if (message == 0) { //no message, show usage and terminate fprintf(stderr,"ERROR: No message selected\n"); usage(); return -1; }*/ if (hflag) { printUsage(); return EXIT_SUCCESS; } /* DLT is intialised automatically, except another output target will be used (i.e. -f option is used to log into file - don't forget .dlt) */ if (fvalue) { /* Log to file */ if (dlt_init_file(fvalue)<0) { return EXIT_FAILURE; } printf("- output: %s\n", fvalue); } else { printf("- output: daemon\n"); } if (gflag) { DLT_NONVERBOSE_MODE(); } printf("- nonverbose mode: %i \n",gflag); if (aflag) { DLT_ENABLE_LOCAL_PRINT(); } printf("- local printing: %i \n",aflag); if (nvalue && (atoi(nvalue)>0) ) { maxMessageCount = atoi(nvalue); } else { maxMessageCount = DEFAULT_MESSAGES; } printf("- messages: %i \n",maxMessageCount); if (dvalue && (atoi(dvalue)>0) ) { delay = atoi(dvalue) * 1000; } else { delay = DEFAULT_DELAY * 1000; } printf("- delay: %i ms\n",delay/1000); return EXIT_SUCCESS; } /** * Main function */ int main(int argc, char* argv[]) { // Current speed info int speed = 0; // Increase or decrease speed int direction = 1; // Generated messages int generatedMessageCount; if(parseArguments(argc,argv) == EXIT_FAILURE) { return EXIT_FAILURE; } else if(hflag) { return EXIT_SUCCESS; } //Register the application to dlt DLT_REGISTER_APP("SPEED","Speed Application"); //Register the context to dlt DLT_REGISTER_CONTEXT(mycontext,"SIG","Speed signal"); //Register injection callback to dlt //DLT_REGISTER_INJECTION_CALLBACK(mycontext, 0xFFF, dlt_user_injection_callback); //For injection callback - delete if interface does not provide injection //text = message; //Loop for generate speed messages and log to dlt for (generatedMessageCount=0; generatedMessageCount < maxMessageCount; generatedMessageCount++) { // Output to console printf("Message %d: Speed %d\n",generatedMessageCount,speed); // Log to dlt DLT_LOG(mycontext,DLT_LOG_INFO,DLT_STRING("Speed"),DLT_INT(speed)); // Increase or decrease speed depending on direction value speed += direction; // Limitation: 0 < speed < 100 if(speed>=100) { direction = -1; } else if(speed<=0) { direction = 1; } if (gflag) { /* Non-verbose mode */ } else { /* Verbose mode */ } // Wait between sending messages if (delay>0) { usleep(delay); } } // Unregister context from dlt DLT_UNREGISTER_CONTEXT(mycontext); // Unregister application from dlt DLT_UNREGISTER_APP(); return EXIT_SUCCESS; } /*int dlt_user_injection_callback(uint32_t service_id, void *data, uint32_t length) { char text[1024]; printf("Injection %d, Length=%d \n",service_id,length); if (length>0) { dlt_print_mixed_string(text,1024,data,length,0); printf("%s \n", text); } return 0; }*/ dlt-viewer-2.18.0+dfsg/examples/dlt-speed-app/CMakeLists.txt0000664000175000017500000000436613001357026023246 0ustar potyrapotyra####### # Dlt Speed App - Example Spped Application # @licence make begin@ # # Copyright (C) 2011, BMW AG - Alexander Wenzel # # Copyright (C) 2011-2012, BMW AG - Alexander Wenzel # # Contributions are licensed to the GENIVI Alliance under one or more # Contribution License Agreements. # # This Source Code Form is subject to the terms of the # Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with # this file, You can obtain one at http://mozilla.org/MPL/2.0/. # # @licence end@ ######## # Minimum cmake version required CMAKE_MINIMUM_REQUIRED(VERSION 2.6) # Name for the entire project PROJECT(dlt-speed-app) # Set version parameters SET( ${PROJECT_NAME}_MAJOR_VERSION 0 ) SET( ${PROJECT_NAME}_MINOR_VERSION 2 ) SET( ${PROJECT_NAME}_PATCH_LEVEL 0 ) SET( ${PROJECT_NAME}_VERSION_STATE "RELEASE" ) SET( PRINT_VERSION ${${PROJECT_NAME}_MAJOR_VERSION}.${${PROJECT_NAME}_MINOR_VERSION}.${${PROJECT_NAME}_PATCH_LEVEL}) SET( PRINT_VERSION_STATE ${${PROJECT_NAME}_VERSION_STATE}) # Print version information MESSAGE("VERSION ${PRINT_VERSION}") MESSAGE("VERSION_STATE ${PRINT_VERSION_STATE}") # Use PkgConfig to check for automtoive-dlt FIND_PACKAGE(PkgConfig) pkg_check_modules(DLT REQUIRED automotive-dlt) # Set CMAKE variables to given values if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") SET(CMAKE_CXX_FLAGS "-std=gnu++0x") endif() SET(CMAKE_CXX_FLAGS "-Wall") SET(CMAKE_CXX_FLAGS "-Wextra") #SET(CMAKE_CXX_FLAGS "-pedantic") #SET(CMAKE_LD_FLAGS "-ldlt") SET(CMAKE_BUILD_TYPE Release) # Add include directories to the build INCLUDE_DIRECTORIES( src ${GLIB_INCLUDE_DIRS} ${DLT_INCLUDE_DIRS} ) # Specify directories in which the linker will look for libraries LINK_DIRECTORIES( ${LINK_DIRECTORIES} ${DLT_LIBRARY_DIRS} ) # GLOB will generate a list of all files that match the globbing expressions and store it into "SOURCES" FILE(GLOB SOURCES "*.c" ) # Add an executable to the project using the specified source files ADD_EXECUTABLE( dlt-speed-app ${SOURCES} ) # Link a target to given libraries TARGET_LINK_LIBRARIES( dlt-speed-app ${GLIB_LIBRARIES} ${DLT_LIBRARIES} ) # Installing files INSTALL(TARGETS dlt-speed-app RUNTIME DESTINATION bin ) dlt-viewer-2.18.0+dfsg/examples/dlt-speed-plugin/0000775000175000017500000000000013001357026021213 5ustar potyrapotyradlt-viewer-2.18.0+dfsg/examples/dlt-speed-plugin/speedplugin.h0000775000175000017500000000275713001357026023721 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * * \author Alexander Wenzel BMW 2011,2012 * * \file speedplugin.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef SPEEDPLUGIN_H #define SPEEDPLUGIN_H #include #include "plugininterface.h" #include "form.h" class SpeedPlugin : public QObject, QDLTPluginInterface, QDltPluginViewerInterface { Q_OBJECT Q_INTERFACES(QDLTPluginInterface) Q_INTERFACES(QDltPluginViewerInterface) public: SpeedPlugin(); ~SpeedPlugin(); /* QDLTPluginInterface interface */ QString name(); QString description(); QString error(); bool loadConfig(QString filename); bool saveConfig(QString filename); QStringList infoConfig(); /* QDltPluginViewerInterface */ QWidget* initViewer(); bool initFile(QDltFile *file); void updateFile(); void selectedIdxMsg(int index); /* internal variables */ Form *form; void show(bool value); private: QDltFile *dltFile; QString errorText; int msgIndex; }; #endif // SPEEDRPLUGIN_H dlt-viewer-2.18.0+dfsg/examples/dlt-speed-plugin/form.h0000775000175000017500000000220713001357026022333 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * * \author Alexander Wenzel BMW 2011,2012 * * \file form.h * For further information see http://www.genivi.org/. * @licence end@ */ #ifndef FORM_H #define FORM_H #include #include #include #include #include "plugininterface.h" namespace Ui { class Form; } class Form : public QWidget { Q_OBJECT public: explicit Form(QWidget *parent = 0); ~Form(); void setSpeedLCD(QDltArgument currentSpeed,unsigned int time); private: Ui::Form *ui; QwtPlotCurve *curve1; QwtPointArrayData *dataArray; QVector< double > speedX; QVector< double > timeY; }; #endif // FORM_H dlt-viewer-2.18.0+dfsg/examples/dlt-speed-plugin/form.cpp0000775000175000017500000000375513001357026022677 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * * \author Alexander Wenzel BMW 2011,2012 * * \file form.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include "form.h" #include "ui_form.h" Form::Form(QWidget *parent) : QWidget(parent), ui(new Ui::Form) { ui->setupUi(this); dataArray = new QwtPointArrayData(timeY,speedX); //ui->qwtPlot->setTitle("MySpeedPlugin"); ui->qwtPlot->setAxisScale(0,0,100); ui->thermo->setMaxValue(100); ui->thermo->setMinValue(0); curve1 = new QwtPlotCurve("Curve 1"); curve1->attach(ui->qwtPlot); QwtLinearColorMap * colorMap = new QwtLinearColorMap(Qt::green, Qt::red); colorMap->addColorStop(0, Qt::green); colorMap->addColorStop(80, Qt::red); ui->thermo->setColorMap(colorMap); } Form::~Form() { delete ui; } void Form::setSpeedLCD(QDltArgument currentSpeed,unsigned int time) { // Push data for speed and time to container speedX.push_back(currentSpeed.toString().toDouble()); timeY.push_back((double)time); // Set currentSpeed to lcdNumber ui->lcdNumber->display(currentSpeed.toString()); // Copy the data into the curves dataArray = new QwtPointArrayData(timeY,speedX); curve1->setData(dataArray); // Change color if value is bigger than 80 if(currentSpeed.toString().toDouble()<80) { curve1->setPen(QPen(Qt::green, 1)); }else { curve1->setPen(QPen(Qt::red, 1)); } ui->thermo->setValue(currentSpeed.toString().toDouble()); // Replot curve ui->qwtPlot->replot(); } dlt-viewer-2.18.0+dfsg/examples/dlt-speed-plugin/speedplugin.cpp0000775000175000017500000000400513001357026024240 0ustar potyrapotyra/** * @licence app begin@ * Copyright (C) 2011-2012 BMW AG * * This file is part of GENIVI Project Dlt Viewer. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * * \author Alexander Wenzel BMW 2011,2012 * * \file speedplugin.cpp * For further information see http://www.genivi.org/. * @licence end@ */ #include #include "speedplugin.h" SpeedPlugin::SpeedPlugin() { form = NULL; dltFile = 0; msgIndex = 0; } SpeedPlugin::~SpeedPlugin() { } QString SpeedPlugin::name() { return QString("Speed Plugin"); } QString SpeedPlugin::description() { return QString(); } QString SpeedPlugin::error() { return QString(); } bool SpeedPlugin::loadConfig(QString /* filename */) { return true; } bool SpeedPlugin::saveConfig(QString /* filename */) { return true; } QStringList SpeedPlugin::infoConfig() { return QStringList(); } QWidget* SpeedPlugin::initViewer() { form = new Form(); return form; } bool SpeedPlugin::initFile(QDltFile *file) { dltFile = file; return true; } void SpeedPlugin::updateFile() { QByteArray buffer; QDltMsg msg; QDltArgument argument; if(!dltFile) return; for(;msgIndexsize();msgIndex++) { buffer = dltFile->getMsg(msgIndex); if(buffer.isEmpty()) break; msg.setMsg(buffer); if( (msg.getApid().compare("SPEE") == 0) && (msg.getCtid().compare("SIG") == 0)) { if(msg.getArgument(1,argument)) { form->setSpeedLCD(argument,msg.getTimestamp()); } } } } void SpeedPlugin::selectedIdxMsg(int index) { if(!dltFile) return; } Q_EXPORT_PLUGIN2(speedplugin, SpeedPlugin); dlt-viewer-2.18.0+dfsg/examples/dlt-speed-plugin/speedplugin.pro0000775000175000017500000000151213001357026024256 0ustar potyrapotyraTEMPLATE = lib CONFIG += plugin #CONFIG += qwt # Put intermediate files in the build directory MOC_DIR = build/moc OBJECTS_DIR = build/obj RCC_DIR = build/rcc UI_DIR = build/ui CONFIG(debug, debug|release) { DESTDIR = debug/plugins QMAKE_LIBDIR += debug LIBS += -lqdltd } else { DESTDIR = release/plugins QMAKE_LIBDIR += release QMAKE_LIBDIR += /usr/local/qwt-6.0.0/lib LIBS += -lqdlt LIBS += -lqwt } TARGET = $$qtLibraryTarget(speedplugin) # Defines and Header Directories DEFINES += QT_VIEWER INCLUDEPATH += ../../src \ ../../qdlt \ /usr/local/qwt-6.0.0/include # Project files HEADERS += plugininterface.h \ ../../qdlt/qdlt.h \ form.h \ speedplugin.h SOURCES += speedplugin.cpp \ form.cpp FORMS += \ form.ui dlt-viewer-2.18.0+dfsg/examples/dlt-speed-plugin/form.ui0000775000175000017500000000345613001357026022530 0ustar potyrapotyra Form 0 0 791 485 Form BlankCursor 48 75 true ForbiddenCursor Current Speed false 3 0.000000000000000 0 QwtPlot QFrame
    qwt_plot.h
    QwtThermo QWidget
    qwt_thermo.h
    dlt-viewer-2.18.0+dfsg/build_parser_windows_qt5_MSVC.bat0000664000175000017500000001223513001357026022561 0ustar potyrapotyra@echo off echo ************************************ echo *** DLT Parser *** echo ************************************ echo . echo ************************************ echo *** Configuration *** echo ************************************ setlocal enabledelayedexpansion rem parameter of this batch script can be either x86 or x86_amd64 if "%ARCHITECTURE%"=="" ( if "%PROCESSOR_ARCHITECTURE%"=="AMD64" ( set ARCHITECTURE=x86_amd64 ) else ( set ARCHITECTURE=x86 ) set USE_ARCH_PARAM=false if "%1" NEQ "" ( if "%1"=="x86" set USE_ARCH_PARAM=true if "%1"=="x86_amd64" set USE_ARCH_PARAM=true ) if "!USE_ARCH_PARAM!"=="true" set ARCHITECTURE=%1 ) echo Target architecture is !ARCHITECTURE! echo *** Setting up environment *** if "%QTDIR%"=="" ( if "%ARCHITECTURE%"=="x86_amd64" ( set QTDIR=C:\Qt\Qt5.5.1\5.5\msvc2013_64 ) else (set QTDIR=C:\Qt\Qt5.5.1\5.5\msvc2013) ) IF "%MSVC_DIR%"=="" set MSVC_DIR=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC set PATH=%QTDIR%\bin;%MSVC_DIR%;%MSVC_DIR%\bin;%PATH% set QTSDK=%QTDIR% IF "%DLT_PARSER_DIR%"=="" ( set DLT_PARSER_DIR=c:\DltParser ) set SOURCE_DIR=%CD% set BUILD_DIR=%CD%\build\release echo ************************************ echo * QTDIR = %QTDIR% echo * QTSDK = %QTSDK% echo * MSVC_DIR = %MSVC_DIR% echo * PATH = %PATH% echo * DLT_PARSER_DIR = %DLT_PARSER_DIR% echo * SOURCE_DIR = %SOURCE_DIR% echo * BUILD_DIR = %BUILD_DIR% echo ************************************ IF exist build ( echo ************************************ echo *** Delete old build Directory *** echo ************************************ rmdir /s/q build IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER ) IF exist %DLT_PARSER_DIR% ( echo ************************************ echo *** Delete old SDK Directory *** echo ************************************ rmdir /s/q %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER ) echo ************************************ echo *** Configure MSVC environment *** echo ************************************ call vcvarsall.bat %ARCHITECTURE% if %ERRORLEVEL% NEQ 0 goto error echo configuring was successful echo ************************************ echo *** Build DLT Parser *** echo ************************************ mkdir build IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER cd build IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER qmake ../BuildDltParser.pro IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER nmake release IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER echo ************************************ echo *** Install Parser *** echo ************************************ echo *** Create directories *** mkdir %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER mkdir %DLT_PARSER_DIR%\examples IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER echo *** Copy files *** copy %QTDIR%\bin\icuin54.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\icuuc54.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\icudt54.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER rem copy %QTDIR%\bin\libwinpthread-1.dll %DLT_PARSER_DIR% rem IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER rem rem copy %QTDIR%\bin\libgcc_s_dw2-1.dll %DLT_PARSER_DIR% rem IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER rem rem copy "%QTDIR%\bin\libstdc++-6.dll" %DLT_PARSER_DIR% rem IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Core.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Gui.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Network.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Sql.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Svg.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Widgets.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5PrintSupport.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5Xml.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %QTDIR%\bin\Qt5OpenGL.dll %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %BUILD_DIR%\dlt_parser.exe %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\ReleaseNotes_Parser.txt %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\README_Parser.txt %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\LICENSE.txt %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER copy %SOURCE_DIR%\MPL.txt %DLT_PARSER_DIR% IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER xcopy %SOURCE_DIR%\parser\examples %DLT_PARSER_DIR%\examples /E IF %ERRORLEVEL% NEQ 0 GOTO ERROR_HANDLER GOTO QUIT :ERROR_HANDLER echo #################################### echo ### ERROR occured ### echo #################################### set /p name= Continue exit 1 :QUIT echo ************************************ echo *** SUCCESS finish *** echo ************************************ echo SDK installed in: %DLT_PARSER_DIR% set /p name= Continue exit 0