x2goclient-4.0.1.1/appdialog.cpp0000644000000000000000000001443612214040350013262 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "appdialog.h" #include "onmainwindow.h" AppDialog::AppDialog(ONMainWindow* parent):QDialog(parent) { setupUi(this); mw=parent; media=0; dev=0; edu=0; game=0; graph=0; net=0; office=0; set=0; sys=0; util=0; other=0; startButton->setEnabled(false); loadApps(); } AppDialog::~AppDialog() { } void AppDialog::slotSearchChanged(QString text) { QTreeWidgetItemIterator it(treeWidget); while (*it) { QString exec=(*it)->data(0,Qt::UserRole).toString(); QString comment=(*it)->data(0,Qt::UserRole+1).toString(); QString name=(*it)->text(0); if ((*it)->childCount()==0) { if (text.length()<2) { (*it)->setHidden(false); (*it)->setSelected(false); } else { if (exec.indexOf(text, 0,Qt::CaseInsensitive)!= -1 || comment.indexOf(text, 0,Qt::CaseInsensitive)!= -1 || name.indexOf(text, 0,Qt::CaseInsensitive)!= -1 ) { treeWidget->clearSelection(); (*it)->setSelected(true); (*it)->setHidden(false); treeWidget->scrollToItem((*it)); } else { (*it)->setHidden(true); (*it)->setSelected(false); } } } ++it; } } QTreeWidgetItem* AppDialog::initTopItem(QString text, QPixmap icon) { QTreeWidgetItem* item; item=new QTreeWidgetItem(treeWidget); item->setText(0,text); item->setFlags(Qt::ItemIsEnabled); item->setIcon(0,icon); return item; } void AppDialog::loadApps() { QTreeWidgetItem* parent; foreach (Application app, mw->getApplications()) { switch (app.category) { case Application::MULTIMEDIA: if (!media) media=initTopItem(tr("Multimedia"), QPixmap(":/icons/22x22/applications-multimedia.png")); parent=media; break; case Application::DEVELOPMENT: if (!dev) dev=initTopItem(tr("Development"), QPixmap(":/icons/22x22/applications-development.png")); parent=dev; break; case Application::EDUCATION: if (!edu) edu=initTopItem(tr("Education"), QPixmap(":/icons/22x22/applications-education.png")); parent=edu; break; case Application::GAME: if (!game) game=initTopItem(tr("Game"), QPixmap(":/icons/22x22/applications-games.png")); parent=game; break; case Application::GRAPHICS: if (!graph) graph=initTopItem(tr("Graphics"), QPixmap(":/icons/22x22/applications-graphics.png")); parent=graph; break; case Application::NETWORK: if (!net) net=initTopItem(tr("Network"), QPixmap(":/icons/22x22/applications-internet.png")); parent=net; break; case Application::OFFICE: if (!office) office=initTopItem(tr("Office"), QPixmap(":/icons/22x22/applications-office.png")); parent=office; break; case Application::SETTINGS: if (!set) set=initTopItem(tr("Settings"), QPixmap(":/icons/22x22/preferences-system.png")); parent=set; break; case Application::SYSTEM: if (!sys) sys=initTopItem(tr("System"), QPixmap(":/icons/22x22/applications-system.png")); parent=sys; break; case Application::UTILITY: if (!util) util=initTopItem(tr("Utility"), QPixmap(":/icons/22x22/applications-utilities.png")); parent=util; break; case Application::OTHER: if (!other) other=initTopItem(tr("Other"), QPixmap(":/icons/22x22/applications-other.png")); parent=other; break; } QTreeWidgetItem* it; if (app.category==Application::TOP) it=new QTreeWidgetItem(treeWidget); else it=new QTreeWidgetItem(parent); it->setText(0, app.name); it->setToolTip(0,app.comment); it->setIcon(0,app.icon); it->setData(0, Qt::UserRole, app.exec); it->setData(0, Qt::UserRole+1, app.comment); } treeWidget->sortItems(0,Qt::AscendingOrder); } void AppDialog::slotSelectedChanged() { startButton->setEnabled(false); if (treeWidget->selectedItems().count()) { startButton->setEnabled(true); } } void AppDialog::slotDoubleClicked(QTreeWidgetItem* item) { QString exec=item->data(0,Qt::UserRole).toString(); if (exec.length()>0) mw->runApplication(exec); } void AppDialog::slotStartSelected() { if (treeWidget->selectedItems().count()>0) { QString exec=treeWidget->selectedItems()[0]->data(0,Qt::UserRole).toString(); if (exec.length()>0) mw->runApplication(exec); } } x2goclient-4.0.1.1/appdialog.h0000644000000000000000000000406412214040350012723 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef APPDIALOG_H #define APPDIALOG_H #include #include "ui_appdialog.h" class QTreeWidgetItem; class ONMainWindow; class AppDialog: public QDialog, public Ui_AppDialog { Q_OBJECT public: AppDialog(ONMainWindow *parent = 0); ~AppDialog(); private: void loadApps(); QTreeWidgetItem* initTopItem(QString text, QPixmap icon=QPixmap()); ONMainWindow* mw; QTreeWidgetItem* media; QTreeWidgetItem* dev; QTreeWidgetItem* edu; QTreeWidgetItem* game; QTreeWidgetItem* graph; QTreeWidgetItem* net; QTreeWidgetItem* office; QTreeWidgetItem* set; QTreeWidgetItem* sys; QTreeWidgetItem* util; QTreeWidgetItem* other; private slots: void slotSelectedChanged(); void slotStartSelected(); void slotDoubleClicked(QTreeWidgetItem* item); void slotSearchChanged(QString text); }; #endif // APPDIALOG_H x2goclient-4.0.1.1/appdialog.ui0000644000000000000000000001076112214040350013112 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) AppDialog 0 0 510 400 Published Applications 22 22 true true true false false false 1 Search: &Start Qt::Vertical 20 40 &Close closeButton clicked() AppDialog reject() 475 372 468 286 treeWidget itemSelectionChanged() AppDialog slotSelectedChanged() 180 121 468 144 startButton clicked() AppDialog slotStartSelected() 462 18 453 78 treeWidget itemDoubleClicked(QTreeWidgetItem*,int) AppDialog slotDoubleClicked(QTreeWidgetItem*) 266 226 459 200 lineEdit textChanged(QString) AppDialog slotSearchChanged(QString) 167 378 444 314 slotSelectedChanged() slotStartSelected() slotDoubleClicked(QTreeWidgetItem*) slotSearchChanged(QString) x2goclient-4.0.1.1/AUTHORS0000644000000000000000000000016512214040350011660 0ustar Oleksandr Shneyder Heinz-Markus Graesing x2goclient-4.0.1.1/brokerpassdialog.ui0000644000000000000000000001051712214040350014504 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) BrokerPassDialogUi 0 0 311 176 Dialog Old password: QLineEdit::Password New password: QLineEdit::Password Confirm password: QLineEdit::Password Qt::Vertical 20 40 TextLabel Qt::Horizontal 40 20 Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok buttonBox accepted() BrokerPassDialogUi accept() 292 143 157 153 buttonBox rejected() BrokerPassDialogUi reject() 286 143 286 153 lePass1 textChanged(QString) BrokerPassDialogUi slotPassChanged() 167 46 103 113 lePass2 textChanged(QString) BrokerPassDialogUi slotPassChanged() 215 79 208 105 slotPassChanged() x2goclient-4.0.1.1/brokerpassdlg.cpp0000644000000000000000000000423212214040350014155 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "brokerpassdlg.h" #include BrokerPassDlg::BrokerPassDlg(QWidget* parent, Qt::WindowFlags f): QDialog(parent, f) { setupUi(this); statusLabel->setText(QString::null); buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); } BrokerPassDlg::~BrokerPassDlg() { } void BrokerPassDlg::slotPassChanged() { bool passEq=false; if (lePass1->text()!=lePass2->text()) { passEq=false; statusLabel->setText(tr("Passwords do not match")); } else { passEq=true; statusLabel->setText(QString::null); } buttonBox->button(QDialogButtonBox::Ok)->setEnabled(passEq && lePass1->text().size()>0 && leOldPas->text().size()>0); } void BrokerPassDlg::accept() { QDialog::accept(); } void BrokerPassDlg::reject() { QDialog::reject(); } QString BrokerPassDlg::newPass() { return lePass1->text(); } QString BrokerPassDlg::oldPass() { return leOldPas->text(); } x2goclient-4.0.1.1/brokerpassdlg.h0000644000000000000000000000321512214040350013622 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef BROKERPASSDLG_H #define BROKERPASSDLG_H #include #include "ui_brokerpassdialog.h" class BrokerPassDlg: public QDialog, private Ui_BrokerPassDialogUi { Q_OBJECT public: BrokerPassDlg(QWidget* parent = 0, Qt::WindowFlags f = 0); virtual ~BrokerPassDlg(); virtual void accept(); virtual void reject(); QString oldPass(); QString newPass(); private slots: void slotPassChanged(); }; #endif // BROKERPASSDLG_H x2goclient-4.0.1.1/build_win_plugin.bat0000755000000000000000000000041612214040350014634 0ustar mingw32-make copy release\npx2goplugin.dll d:\share\plugin\x2goplugin\ d: cd \share\plugin\x2goplugin\ idc.exe npx2goplugin.dll /idl npx2goplugin.idl -version 1.0 midl npx2goplugin.idl /nologo /tlb npx2goplugin.tlb idc.exe npx2goplugin.dll /tlb npx2goplugin.tlb x2goclient-4.0.1.1/clicklineedit.cpp0000644000000000000000000000350312214040350014116 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "clicklineedit.h" #include "x2gologdebug.h" #include ClickLineEdit::ClickLineEdit(QWidget * parent) : QLineEdit(parent) { } ClickLineEdit::~ClickLineEdit() { } #ifdef Q_OS_LINUX void ClickLineEdit::mouseReleaseEvent ( QMouseEvent * event ) { QLineEdit::mouseReleaseEvent(event); emit clicked(); setFocus(Qt::MouseFocusReason); } // void ClickLineEdit::focusInEvent ( QFocusEvent * event ) // { // QLineEdit::focusInEvent(event); // x2goDebug<<"focus in"; // } // // void ClickLineEdit::focusOutEvent ( QFocusEvent * event ) // { // QLineEdit::focusOutEvent(event); // x2goDebug<<"focus out"; // } #endif x2goclient-4.0.1.1/clicklineedit.h0000644000000000000000000000330512214040350013563 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef CLICKLINEEDIT_H #define CLICKLINEEDIT_H #include /** @author Oleksandr Shneyder */ class ClickLineEdit : public QLineEdit { Q_OBJECT public: ClickLineEdit ( QWidget * parent = 0 ); ~ClickLineEdit(); signals: void clicked(); #ifdef Q_OS_LINUX protected: virtual void mouseReleaseEvent ( QMouseEvent * event ); /* virtual void focusInEvent ( QFocusEvent * event ); virtual void focusOutEvent ( QFocusEvent * event );*/ #endif }; #endif x2goclient-4.0.1.1/configdialog.cpp0000644000000000000000000005226612214040350013752 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include #include #include #include #include #include #include #include "x2gosettings.h" #include #include #include "onmainwindow.h" #include #include #include #include "configdialog.h" #include "x2gologdebug.h" #include "printwidget.h" #include #include "x2goclientconfig.h" #include "connectionwidget.h" #include "settingswidget.h" #if defined ( Q_OS_WIN) && defined (CFGCLIENT ) #include "xsettingswidget.h" #endif ConfigDialog::ConfigDialog ( QWidget * parent, Qt::WFlags f ) : QDialog ( parent,f ) { tabWidg=new QTabWidget ( this ); QVBoxLayout* ml=new QVBoxLayout ( this ); ml->addWidget ( tabWidg ); QWidget *fr=new QWidget ( this ); QVBoxLayout* frLay=new QVBoxLayout ( fr ); tabWidg->addTab ( fr,tr ( "General" ) ); embedMode= ( ( ONMainWindow* ) parent )->getEmbedMode(); X2goSettings st ( "settings" ); #ifndef CFGPLUGIN gbTrayIcon=new QGroupBox(tr("Display icon in system tray"),fr); frLay->addWidget(gbTrayIcon); gbTrayIcon->setCheckable(true); QHBoxLayout* grmainLay=new QHBoxLayout(gbTrayIcon); QFrame* frTray=new QFrame(gbTrayIcon); grmainLay->setMargin(0); grmainLay->addWidget(frTray); cbMinToTray=new QCheckBox(tr("Hide to system tray when minimized"),frTray); cbNoClose=new QCheckBox(tr("Hide to system tray when closed"),frTray); cbMinimizeTray=new QCheckBox(tr("Hide to system tray after connection is established"),frTray); cbMaxmizeTray=new QCheckBox(tr("Restore from system tray after session is disconnected"),frTray); QVBoxLayout* trLay=new QVBoxLayout(frTray); trLay->addWidget(cbMinToTray); trLay->addWidget(cbNoClose); trLay->addWidget(cbMinimizeTray); trLay->addWidget(cbMaxmizeTray); gbTrayIcon->setChecked ( st.setting()->value ( "trayicon/enabled", false ).toBool() ); cbMinimizeTray->setChecked ( st.setting()->value ( "trayicon/mincon", false ).toBool() ); cbMaxmizeTray->setChecked ( st.setting()->value ( "trayicon/maxdiscon", false ).toBool() ); cbNoClose->setChecked ( st.setting()->value ( "trayicon/noclose", false ).toBool() ); cbMinToTray->setChecked ( st.setting()->value ( "trayicon/mintotray", false ).toBool() ); #endif #ifdef USELDAP if ( !embedMode ) { ONMainWindow* par= ( ONMainWindow* ) parent; gbLDAP=new QGroupBox ( tr ( "Use LDAP" ),fr ); gbLDAP->setCheckable(true); QHBoxLayout* grmainLay=new QHBoxLayout(gbLDAP); QFrame* frLdap=new QFrame(gbLDAP); grmainLay->setMargin(0); grmainLay->addWidget(frLdap); ldapServer=new QLineEdit ( frLdap ); port=new QSpinBox ( frLdap ); ldapBase=new QLineEdit ( frLdap ); port->setMaximum ( 1000000 ); QHBoxLayout *grLay=new QHBoxLayout ( frLdap ); QVBoxLayout *laiLay=new QVBoxLayout(); QVBoxLayout *setLay=new QVBoxLayout(); setLay->setSpacing ( 6 ); laiLay->setSpacing ( 6 ); grLay->setSpacing ( 20 ); grLay->addLayout ( laiLay ); grLay->addStretch(); grLay->addLayout ( setLay ); laiLay->addWidget ( new QLabel ( tr ( "Server URL:" ),frLdap) ); laiLay->addWidget ( new QLabel ( tr ( "BaseDN:" ),frLdap ) ); laiLay->addWidget ( new QLabel ( tr ( "Failover server 1 URL:" ),frLdap ) ); laiLay->addWidget ( new QLabel ( tr ( "Failover server 2 URL:" ),frLdap ) ); ldapServer1=new QLineEdit ( frLdap); port1=new QSpinBox ( frLdap ); ldapServer2=new QLineEdit ( frLdap ); port2=new QSpinBox ( frLdap ); port1->setMaximum ( 1000000 ); port2->setMaximum ( 1000000 ); QHBoxLayout* aLay=new QHBoxLayout(); aLay->setSpacing ( 3 ); aLay->addWidget ( new QLabel ( "ldap//:",frLdap ) ); aLay->addWidget ( ldapServer ); aLay->addWidget ( new QLabel ( ":",frLdap ) ); aLay->addWidget ( port ); QHBoxLayout* aLay1=new QHBoxLayout(); aLay1->setSpacing ( 3 ); aLay1->addWidget ( new QLabel ( "ldap//:",frLdap ) ); aLay1->addWidget ( ldapServer1 ); aLay1->addWidget ( new QLabel ( ":",frLdap ) ); aLay1->addWidget ( port1 ); QHBoxLayout* aLay2=new QHBoxLayout(); aLay2->setSpacing ( 3 ); aLay2->addWidget ( new QLabel ( "ldap//:",frLdap ) ); aLay2->addWidget ( ldapServer2 ); aLay2->addWidget ( new QLabel ( ":",frLdap ) ); aLay2->addWidget ( port2 ); setLay->addLayout ( aLay ); setLay->addWidget ( ldapBase ); setLay->addLayout ( aLay1 ); setLay->addLayout ( aLay2 ); gbLDAP->setChecked ( st.setting()->value ( "LDAP/useldap", ( QVariant ) par->retUseLdap() ).toBool() ); ldapServer->setText ( st.setting()->value ( "LDAP/server", ( QVariant ) par->retLdapServer() ).toString() ); port->setValue ( st.setting()->value ( "LDAP/port", ( QVariant ) par->retLdapPort() ).toInt() ); ldapServer1->setText ( st.setting()->value ( "LDAP/server1", ( QVariant ) par->retLdapServer1() ).toString() ); port1->setValue ( st.setting()->value ( "LDAP/port1", ( QVariant ) par->retLdapPort1() ).toInt() ); ldapServer2->setText ( st.setting()->value ( "LDAP/server2", ( QVariant ) par->retLdapServer2() ).toString() ); port2->setValue ( st.setting()->value ( "LDAP/port2", ( QVariant ) par->retLdapPort2() ).toInt() ); ldapBase->setText ( st.setting()->value ( "LDAP/basedn", ( QVariant ) par->retLdapDn() ).toString() ); frLdap->setEnabled ( gbLDAP->isChecked() ); frLay->addWidget ( gbLDAP ); connect ( gbLDAP,SIGNAL ( toggled ( bool ) ),frLdap, SLOT ( setEnabled ( bool ) ) ); connect ( gbLDAP,SIGNAL ( toggled ( bool ) ),this, SLOT ( slot_checkOkStat() ) ); connect ( ldapBase,SIGNAL ( textChanged ( const QString& ) ), this, SLOT ( slot_checkOkStat() ) ); connect ( ldapServer,SIGNAL ( textChanged ( const QString& ) ), this, SLOT ( slot_checkOkStat() ) ); } #endif //USELDAP #ifdef Q_OS_DARWIN QGroupBox* xgb=new QGroupBox ( tr ( "X-Server settings" ),fr ); QGridLayout *xLay=new QGridLayout ( xgb ); leXexec=new QLineEdit ( xgb ); leXexec->setReadOnly ( true ); pbOpenExec=new QPushButton ( QIcon ( ( ( ONMainWindow* ) parent )->iconsPath ( "/32x32/file-open.png" ) ), QString::null,xgb ); xLay->addWidget ( new QLabel ( tr ( "X11 application:" ) ),0,0 ); leCmdOpt=new QLineEdit ( xgb ); leCmdOpt->setReadOnly ( true ); QHBoxLayout* cmdLay=new QHBoxLayout(); cmdLay->addWidget ( leXexec ); cmdLay->addWidget ( pbOpenExec ); xLay->addLayout ( cmdLay,0,1 ); xLay->addWidget ( new QLabel ( tr ( "X11 version:" ) ),1,0 ); xLay->addWidget ( leCmdOpt,1,1 ); frLay->addWidget ( xgb ); QString xver; QString path=getXDarwinDirectory(); if ( path!="" ) { leXexec->setText ( findXDarwin ( xver,path ) ); leCmdOpt->setText ( xver ); } else slot_findXDarwin(); QPushButton* findButton=new QPushButton ( tr ( "Find X11 application" ),xgb ); xLay->addWidget ( findButton,2,1 ); connect ( findButton,SIGNAL ( clicked() ),this, SLOT ( slot_findXDarwin() ) ); connect ( pbOpenExec,SIGNAL ( clicked() ),this, SLOT ( slot_selectXDarwin() ) ); #endif //Q_OS_DARWIN #ifndef Q_OS_WIN clientSshPort=new QSpinBox ( fr ); clientSshPort->setMaximum ( 1000000 ); clientSshPort->setValue ( st.setting()->value ( "clientport", ( QVariant ) 22 ).toInt() ); QHBoxLayout* sshLay=new QHBoxLayout(); sshLay->addWidget ( new QLabel ( tr ( "Clientside SSH port for file system export usage:" ),fr ) ); sshLay->addWidget ( clientSshPort ); sshLay->addStretch(); frLay->addLayout ( sshLay ); #endif if ( embedMode ) { cbStartEmbed=new QCheckBox ( tr ( "Start session embedded inside website" ) ,fr ); frLay->addWidget ( cbStartEmbed ); advancedOptions=new QPushButton ( tr ( "Advanced options" ) +" >>" , this ); connect ( advancedOptions,SIGNAL ( clicked() ),this, SLOT ( slotAdvClicked() ) ); advancedOptions->setVisible ( ( ( ONMainWindow* ) parent )-> getShowAdvOption() ); advOptionsShown=false; conWidg=new ConnectionWidget ( QString::null, ( ONMainWindow* ) parent,this ); setWidg=new SettingsWidget ( QString::null, ( ONMainWindow* ) parent,this ); conWidg->hide(); setWidg->hide(); X2goSettings st ( "sessions" ); cbStartEmbed->setChecked ( st.setting()->value ( "embedded/startembed", true ).toBool() ); } /* #ifdef Q_OS_WIN else { tabWidg->removeTab ( 0 ); } #endif*/ frLay->addStretch(); defaults=new QPushButton ( tr ( "Defaults" ),this ); ok=new QPushButton ( tr ( "&OK" ),this ); QPushButton* cancel=new QPushButton ( tr ( "&Cancel" ),this ); QHBoxLayout* bLay=new QHBoxLayout(); connect ( this,SIGNAL ( accepted() ),this,SLOT ( slot_accepted() ) ); connect ( ok,SIGNAL ( clicked() ),this,SLOT ( accept() ) ); connect ( cancel,SIGNAL ( clicked() ),this,SLOT ( reject() ) ); connect ( defaults,SIGNAL ( clicked() ),this, SLOT ( slotDefaults() ) ); bLay->setSpacing ( 5 ); if ( embedMode ) bLay->addWidget ( advancedOptions ); bLay->addStretch(); bLay->addWidget ( ok ); bLay->addWidget ( cancel ); bLay->addWidget ( defaults ); ml->addLayout ( bLay ); setSizeGripEnabled ( true ); setWindowIcon ( QIcon ( ( ( ONMainWindow* ) parent )->iconsPath ( "/32x32/edit_settings.png" ) ) ); setWindowTitle ( tr ( "Settings" ) ); #ifdef Q_WS_HILDON QFont fnt=font(); fnt.setPointSize ( 10 ); setFont ( fnt ); QSize sz=ok->sizeHint(); sz.setWidth ( ( int ) ( sz.width() /1.5 ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); ok->setFixedSize ( sz ); sz=cancel->sizeHint(); sz.setWidth ( ( int ) ( sz.width() ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); cancel->setFixedSize ( sz ); clientSshPort->setFixedHeight ( int ( clientSshPort->sizeHint().height() *1.5 ) ); defaults->hide(); #endif pwid=new PrintWidget ( this ); tabWidg->addTab ( pwid,tr ( "Printing" ) ); #if defined ( Q_OS_WIN) && defined (CFGCLIENT ) xsetWidg=new XSettingsWidget(this); tabWidg->addTab(xsetWidg, tr("X-Server settings")); #endif } ConfigDialog::~ConfigDialog() {} void ConfigDialog::slot_accepted() { X2goSettings st ( "settings" ); #ifndef CFGPLUGIN st.setting()->setValue ( "trayicon/enabled", gbTrayIcon->isChecked() ); st.setting()->setValue ( "trayicon/mintotray", cbMinToTray->isChecked() ); st.setting()->setValue ( "trayicon/noclose", cbNoClose->isChecked() ); st.setting()->setValue ( "trayicon/mincon", cbMinimizeTray->isChecked() ); st.setting()->setValue ( "trayicon/maxdiscon", cbMaxmizeTray->isChecked() ); #endif #ifdef USELDAP if ( !embedMode ) { st.setting()->setValue ( "LDAP/useldap", ( QVariant ) gbLDAP->isChecked() ); st.setting()->setValue ( "LDAP/port", ( QVariant ) port->value() ); if ( ldapServer->text().length() ) st.setting()->setValue ( "LDAP/server", ( QVariant ) ldapServer->text() ); st.setting()->setValue ( "LDAP/port1", ( QVariant ) port1->value() ); if ( ldapServer1->text().length() ) st.setting()->setValue ( "LDAP/server1", ( QVariant ) ldapServer1->text() ); st.setting()->setValue ( "LDAP/port2", ( QVariant ) port2->value() ); if ( ldapServer2->text().length() ) st.setting()->setValue ( "LDAP/server2", ( QVariant ) ldapServer2->text() ); if ( ldapBase->text().length() ) st.setting()->setValue ( "LDAP/basedn", ( QVariant ) ldapBase->text() ); } #endif //USELDAP #ifdef Q_OS_DARWIN st.setting()->setValue ( "xdarwin/directory", ( QVariant ) leXexec->text() ); #endif #ifndef Q_OS_WIN st.setting()->setValue ( "clientport", ( QVariant ) clientSshPort->value() ); #endif pwid->saveSettings(); if ( embedMode ) { X2goSettings st ( "sessions" ); st.setting()->setValue ( "embedded/startembed", ( QVariant ) cbStartEmbed->isChecked() ); st.setting()->sync(); setWidg->saveSettings(); conWidg->saveSettings(); } #if defined ( Q_OS_WIN) && defined (CFGCLIENT ) xsetWidg->saveSettings(); #endif } void ConfigDialog::slot_checkOkStat() { ok->setEnabled ( ( !gbLDAP->isChecked() ) || ( ( ldapBase->text().length() && ldapServer->text().length() ) ) ); } #ifdef Q_OS_WIN QString ConfigDialog::getCygwinDir ( const QString& dir ) { QString cygdir=QString::null; QSettings lu_st ( "HKEY_CURRENT_USER\\Software" "\\Cygnus Solutions\\Cygwin\\mounts v2\\"+ dir,QSettings::NativeFormat ); cygdir=lu_st.value ( "native", ( QVariant ) QString::null ).toString(); if ( cygdir!= QString::null ) return cygdir; QSettings lm_st ( "HKEY_LOCAL_MACHINE\\SOFTWARE" "\\Cygnus Solutions\\Cygwin\\mounts v2\\"+ dir,QSettings::NativeFormat ); return lm_st.value ( "native", ( QVariant ) QString::null ).toString(); } #endif #ifdef Q_OS_DARWIN QString ConfigDialog::retMaxXDarwinVersion ( QString v1, QString v2 ) { QStringList vl1=v1.split ( "." ); QStringList vl2=v2.split ( "." ); for ( int i=0;i<3;++i ) { if ( vl1.count() vl2[i].toInt() ) ?v1:v2; } return v1; } QString ConfigDialog::findXDarwin ( QString& version, QString path ) { if ( path=="" ) { QString dir1="/Applications/Utilities/X11.app"; QString ver1="0.0.0"; if ( QFile::exists ( dir1+"/Contents/Info.plist" ) ) { QSettings vst ( dir1+"/Contents/Info.plist", QSettings::NativeFormat ); ver1=vst.value ( "CFBundleShortVersionString", ( QVariant ) "0.0.0" ).toString(); } QString dir2="/usr/X11/X11.app"; QString ver2="0.0.0";; if ( QFile::exists ( dir2+"/Contents/Info.plist" ) ) { QSettings vst ( dir2+"/Contents/Info.plist", QSettings::NativeFormat ); ver2=vst.value ( "CFBundleShortVersionString", ( QVariant ) "0.0.0" ).toString(); } if ( retMaxXDarwinVersion ( ver1,ver2 ) ==ver1 ) { version=ver1; return dir1; } else { version=ver2; return dir2; } } version="0.0.0"; if ( QFile::exists ( path+"/Contents/Info.plist" ) ) { QSettings vst ( path+"/Contents/Info.plist", QSettings::NativeFormat ); version=vst.value ( "CFBundleShortVersionString", ( QVariant ) "0.0.0" ).toString(); } return path; } void ConfigDialog::slot_findXDarwin() { QString version; QString path=findXDarwin ( version ); if ( path=="" ) { QMessageBox::warning ( this,tr ( "Warning" ), tr ( "x2goclient could not find any suitable X11 " "Application. Please install Apple X11 " "or select the path to the application" ) ); } QString minVer="2.1.0"; if ( retMaxXDarwinVersion ( minVer,version ) ==minVer ) { printXDarwinVersionWarning ( version ); } leXexec->setText ( path ); leCmdOpt->setText ( version ); } void ConfigDialog::printXDarwinVersionWarning ( QString version ) { QMessageBox::warning ( this,tr ( "Warning" ), tr ( "Your are using X11 (Apple X-Window Server) version " ) +version+ tr ( ". This version causes problems with X-application in 24bit " "color mode. You should update your X11 environment " "(http://trac.macosforge.org/projects/xquartz)." ) ); } void ConfigDialog::slot_selectXDarwin() { QString newDir=QFileDialog::getOpenFileName ( this,QString(),leXexec->text() +"/.." ); QString version; if ( newDir.length() >0 ) { findXDarwin ( version,newDir ); if ( version=="0.0.0" ) { QMessageBox::warning ( this, tr ( "Warning" ), tr ( "No suitable X11 application found " "in selected path" ) ); return; } QString minVer="2.1.0"; if ( retMaxXDarwinVersion ( minVer,version ) ==minVer ) { printXDarwinVersionWarning ( version ); } leXexec->setText ( newDir ); leCmdOpt->setText ( version ); } } QString ConfigDialog::getXDarwinDirectory() { X2goSettings st ("settings"); return st.setting()->value ( "xdarwin/directory", ( QVariant ) "" ).toString() ; } #endif void ConfigDialog::slotAdvClicked() { if ( advOptionsShown ) { advancedOptions->setText ( tr ( "Advanced options" ) +" >>" ); conWidg->hide(); setWidg->hide(); conWidg->setParent ( this ); setWidg->setParent ( this ); tabWidg->removeTab ( 3 ); tabWidg->removeTab ( 2 ); } else { tabWidg->addTab ( conWidg,tr ( "&Connection" ) ); tabWidg->addTab ( setWidg, tr ( "&Settings" ) ); advancedOptions->setText ( tr ( "Advanced options" ) +" <<" ); } advOptionsShown=!advOptionsShown; } void ConfigDialog::slotDefaults() { switch ( tabWidg->currentIndex() ) { case 0: { if ( embedMode ) cbStartEmbed->setChecked ( true ); clientSshPort->setValue ( 22 ); #ifndef CFGPLUGIN gbTrayIcon->setChecked (false); cbMinimizeTray->setChecked (false); cbMaxmizeTray->setChecked ( false); cbNoClose->setChecked (false); cbMinToTray->setChecked (false); #endif } break; #if defined ( Q_OS_WIN) && defined (CFGCLIENT ) case 2: { xsetWidg->setDefaults(); } break; #else case 1: break; case 2: { conWidg->setDefaults(); } break; case 3: { setWidg->setDefaults(); } break; #endif } } x2goclient-4.0.1.1/configdialog.h0000644000000000000000000000650712214040350013414 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef CONFIGDIALOG_H #define CONFIGDIALOG_H #include "x2goclientconfig.h" #include class QLineEdit; class QCheckBox; class QSpinBox; class QPushButton; class QRadioButton; class QButtonGroup; class PrintWidget; class ConnectionWidget; class SettingsWidget; class QTabWidget; class QGroupBox; #if defined (Q_OS_WIN) && defined (CFGCLIENT ) class XSettingsWidget; #endif /** @author Oleksandr Shneyder */ class ConfigDialog : public QDialog { Q_OBJECT public: ConfigDialog ( QWidget * parent, Qt::WFlags f = 0 ); ~ConfigDialog(); #ifdef Q_OS_DARWIN static QString findXDarwin ( QString& version, QString path="" ); static QString retMaxXDarwinVersion ( QString v1, QString v2 ); static QString getXDarwinDirectory(); void printXDarwinVersionWarning ( QString version ); #endif #ifdef Q_OS_WIN static QString getCygwinDir ( const QString& dir ); #endif private: QTabWidget* tabWidg; QCheckBox* cbStartEmbed; QLineEdit* ldapBase; QLineEdit* ldapServer; QSpinBox* port; QLineEdit* ldapServer1; QSpinBox* port1; PrintWidget* pwid; QLineEdit* ldapServer2; bool embedMode; QSpinBox* port2; QSpinBox* clientSshPort; QPushButton* ok; bool advOptionsShown; QGroupBox* gbLDAP; QPushButton* defaults; QPushButton* advancedOptions; QLineEdit* leXexec; QLineEdit* leCmdOpt; QSpinBox* sbDisp; QLineEdit* leXexecDir; QRadioButton* rbX[3]; QPushButton* pbOpenExec; QButtonGroup* bgRadio; ConnectionWidget* conWidg; SettingsWidget* setWidg; #if defined ( Q_OS_WIN) && defined (CFGCLIENT ) XSettingsWidget* xsetWidg; #endif QGroupBox *gbTrayIcon; QCheckBox *cbMinimizeTray; QCheckBox *cbMaxmizeTray; QCheckBox *cbNoClose; QCheckBox *cbMinToTray; public slots: void slot_accepted(); void slot_checkOkStat(); private slots: #ifdef Q_OS_DARWIN void slot_selectXDarwin(); void slot_findXDarwin(); #endif private slots: void slotAdvClicked(); void slotDefaults(); }; #endif x2goclient-4.0.1.1/config_linux_plugin.sh0000755000000000000000000000013212214040350015203 0ustar #!/bin/bash make distclean lrelease x2goclient.pro X2GO_CLIENT_TARGET=plugin qmake-qt4 x2goclient-4.0.1.1/config_linux.sh0000755000000000000000000000004612214040350013631 0ustar #!/bin/bash make distclean qmake-qt4 x2goclient-4.0.1.1/config_linux_static_plugin.sh0000755000000000000000000000025212214040350016555 0ustar #!/bin/bash make distclean export X2GO_LINUX_STATIC=x2go_linux_static X2GO_CLIENT_TARGET=plugin /usr/local/Trolltech/Qt-4.7.1/bin/qmake -config release -spec linux-g++ x2goclient-4.0.1.1/config_linux_static.sh0000755000000000000000000000021112214040350015172 0ustar #!/bin/bash make distclean X2GO_LINUX_STATIC=x2go_linux_static /usr/local/Trolltech/Qt-4.7.1/bin/qmake -config release -spec linux-g++ x2goclient-4.0.1.1/config_mac.sh0000755000000000000000000000006212214040350013230 0ustar #!/bin/bash make distclean qmake -spec macx-g++ x2goclient-4.0.1.1/configwidget.cpp0000644000000000000000000000310612214040350013763 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "configwidget.h" #include "onmainwindow.h" ConfigWidget::ConfigWidget ( QString id, ONMainWindow * mw, QWidget * parent, Qt::WindowFlags f ) : QFrame ( parent,f ) { sessionId=id; mainWindow=mw; miniMode=mw->retMiniMode(); embedMode=embedMode= mw->getEmbedMode(); if(embedMode) sessionId="embedded"; } ConfigWidget::~ConfigWidget() { } x2goclient-4.0.1.1/configwidget.h0000644000000000000000000000323612214040350013434 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef CONFIGWIDGET_H #define CONFIGWIDGET_H #include #include "x2goclientconfig.h" /** @author Oleksandr Shneyder */ class ONMainWindow; class ConfigWidget : public QFrame { public: ConfigWidget ( QString id, ONMainWindow * mv, QWidget * parent = 0, Qt::WindowFlags f = 0 ); ~ConfigWidget(); protected: bool miniMode; bool embedMode; QString sessionId; ONMainWindow* mainWindow; }; #endif x2goclient-4.0.1.1/config_win.bat0000755000000000000000000000011612214040350013421 0ustar mingw32-make distclean lrelease x2goclient.pro set X2GO_CLIENT_TARGET= qmake x2goclient-4.0.1.1/config_win_console.sh0000755000000000000000000000013612214040350015011 0ustar #!/bin/bash make distclean /usr/local/Trolltech/Qt-4.7.1/bin/qmake -spec win32-x-g++-console x2goclient-4.0.1.1/config_win_plugin.bat0000755000000000000000000000007512214040350015003 0ustar mingw32-make distclean set X2GO_CLIENT_TARGET=plugin qmake x2goclient-4.0.1.1/config_win_plugin.sh0000755000000000000000000000020012214040350014635 0ustar #!/bin/bash make distclean X2GO_CLIENT_TARGET=plugin /usr/local/Trolltech/Qt-4.7.1/bin/qmake -config release -spec win32-x-g++ x2goclient-4.0.1.1/config_win.sh0000755000000000000000000000012712214040350013267 0ustar #!/bin/bash make distclean /usr/local/Trolltech/Qt-4.7.1/bin/qmake -spec win32-x-g++ x2goclient-4.0.1.1/connectionwidget.cpp0000644000000000000000000001362412214040350014663 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "connectionwidget.h" #include #include #include #include #include #include #include #include #include "x2gosettings.h" #include #include #include #include "onmainwindow.h" ConnectionWidget::ConnectionWidget ( QString id, ONMainWindow * mw, QWidget * parent, Qt::WindowFlags f ) : ConfigWidget ( id,mw,parent,f ) { QVBoxLayout *connLay=new QVBoxLayout ( this ); #ifndef Q_WS_HILDON QGroupBox* netSpd=new QGroupBox ( tr ( "&Connection speed" ),this ); QVBoxLayout *spdLay=new QVBoxLayout ( netSpd ); #else QFrame* netSpd=this ; QVBoxLayout *spdLay=new QVBoxLayout (); spdLay->addWidget ( new QLabel ( tr ( "Connection speed:" ),netSpd ) ); #endif spd=new QSlider ( Qt::Horizontal,netSpd ); spd->setMinimum ( 0 ); spd->setMaximum ( 4 ); spd->setTickPosition ( QSlider::TicksBelow ); spd->setTickInterval ( 1 ); spd->setSingleStep ( 1 ); spd->setPageStep ( 1 ); QHBoxLayout *tickLay=new QHBoxLayout(); QHBoxLayout *slideLay=new QHBoxLayout(); slideLay->addWidget ( spd ); QLabel* mlab= new QLabel ( "MODEM",netSpd ); tickLay->addWidget ( mlab ); tickLay->addStretch(); tickLay->addWidget ( new QLabel ( "ISDN",netSpd ) ); tickLay->addStretch(); tickLay->addWidget ( new QLabel ( "ADSL",netSpd ) ); tickLay->addStretch(); tickLay->addWidget ( new QLabel ( "WAN",netSpd ) ); tickLay->addStretch(); tickLay->addWidget ( new QLabel ( "LAN",netSpd ) ); spdLay->addLayout ( slideLay ); spdLay->addLayout ( tickLay ); QFontMetrics fm ( mlab->font() ); slideLay->insertSpacing ( 0,fm.width ( "MODEM" ) /2 ); slideLay->addSpacing ( fm.width ( "LAN" ) /2 ); #ifndef Q_WS_HILDON QGroupBox* compr=new QGroupBox ( tr ( "C&ompression" ),this ); QHBoxLayout* comprLay=new QHBoxLayout ( compr ); #else QFrame* compr=this; QHBoxLayout* comprLay=new QHBoxLayout (); #endif packMethode = new QComboBox ( this ); quali= new QSpinBox ( this ); quali->setRange ( 0,9 ); #ifdef Q_WS_HILDON quali->setFixedHeight ( int ( quali->sizeHint().height() *1.5 ) ); #endif QVBoxLayout* colLay=new QVBoxLayout(); QVBoxLayout* cowLay=new QVBoxLayout(); QHBoxLayout* spbl=new QHBoxLayout(); #ifndef Q_WS_HILDON colLay->addWidget ( new QLabel ( tr ( "Method:" ),compr ) ); #else colLay->addWidget ( new QLabel ( tr ( "Compression method:" ),compr ) ); #endif colLay->addWidget ( qualiLabel=new QLabel ( tr ( "Image quality:" ), compr ) ); cowLay->addWidget ( packMethode ); spbl->addWidget ( quali ); spbl->addStretch(); cowLay->addLayout ( spbl ); comprLay->addLayout ( colLay ); comprLay->addLayout ( cowLay ); #ifndef Q_WS_HILDON connLay->addWidget ( netSpd ); connLay->addWidget ( compr ); #else connLay->addLayout ( spdLay ); connLay->addLayout ( comprLay ); #endif connLay->addStretch(); connect ( packMethode,SIGNAL ( activated ( const QString& ) ),this, SLOT ( slot_changePack ( const QString& ) ) ); readConfig(); } ConnectionWidget::~ConnectionWidget() { } void ConnectionWidget::loadPackMethods() { QFile file ( ":/txt/packs" ); if ( !file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) return; QTextStream in ( &file ); while ( !in.atEnd() ) { QString pc=in.readLine(); if ( pc.indexOf ( "-%" ) !=-1 ) { pc=pc.left ( pc.indexOf ( "-%" ) ); qualiList<addItem ( pc ); } file.close(); } void ConnectionWidget::slot_changePack ( const QString& pc ) { bool ct=qualiList.contains ( pc ); quali->setEnabled ( ct ); qualiLabel->setEnabled ( ct ); } void ConnectionWidget::readConfig() { loadPackMethods(); X2goSettings st ( "sessions" ); spd->setValue ( st.setting()->value ( sessionId+"/speed", ( QVariant ) mainWindow->getDefaultLink() ).toInt() ); QString mt=st.setting()->value ( sessionId+"/pack", ( QVariant ) mainWindow->getDefaultPack() ).toString(); packMethode->setCurrentIndex ( packMethode->findText ( mt ) ); quali->setValue ( st.setting()->value ( sessionId+"/quality", mainWindow->getDefaultQuality() ).toInt() ); slot_changePack ( mt ); } void ConnectionWidget::setDefaults() { spd->setValue ( 2 ); packMethode->setCurrentIndex ( packMethode->findText ( "16m-jpeg" ) ); quali->setValue ( 9 ); slot_changePack ( "16m-jpeg" ); } void ConnectionWidget::saveSettings() { X2goSettings st ( "sessions" ); st.setting()->setValue ( sessionId+"/speed", ( QVariant ) spd->value() ); st.setting()->setValue ( sessionId+"/pack", ( QVariant ) packMethode->currentText() ); st.setting()->setValue ( sessionId+"/quality", ( QVariant ) quali->value() ); st.setting()->sync(); } x2goclient-4.0.1.1/connectionwidget.h0000644000000000000000000000375212214040350014331 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef CONNECTIONWIDGET_H #define CONNECTIONWIDGET_H #include "configwidget.h" #include /** @author Oleksandr Shneyder */ class QPushButton; class QLabel; class QSlider; class QStringList; class ONMainWindow; class QComboBox; class QSpinBox; class ConnectionWidget : public ConfigWidget { Q_OBJECT public: ConnectionWidget ( QString id, ONMainWindow * mw, QWidget * parent=0, Qt::WindowFlags f=0 ); ~ConnectionWidget(); void setDefaults(); void saveSettings(); private slots: void slot_changePack ( const QString& pc ); private: void loadPackMethods(); private: QLabel* qualiLabel; QSlider *spd; QStringList qualiList; QComboBox* packMethode; QSpinBox* quali; private: void readConfig(); }; #endif x2goclient-4.0.1.1/contest.cpp0000644000000000000000000001235412214040350012776 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "contest.h" #include "x2gologdebug.h" #include #include "httpbrokerclient.h" #include ConTest::ConTest(HttpBrokerClient* broker, QUrl url, QWidget* parent, Qt::WindowFlags f): QDialog(parent, f) { socket=0l; setupUi(this); this->broker=broker; brokerUrl=url; timer=new QTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(slotTimer())); connect(broker,SIGNAL(connectionTime(int,int)),this, SLOT(slotConSpeed(int,int))); start(); } ConTest::~ConTest() { } void ConTest::resetSocket() { if (socket) { socket->disconnectFromHost(); socket->close(); delete socket; socket=0l; } } void ConTest::reset() { timer->stop(); lhttps->setText(""); lssh->setText(""); lspeed->setText(""); prhttps->setValue(0); prspeed->setValue(0); prssh->setValue(0); httpsOk=false; resetSocket(); buttonBox->button(QDialogButtonBox::Retry)->setEnabled(false); } void ConTest::start() { reset(); testConnection(HTTPS); } void ConTest::testConnection(tests test) { time=0; timer->start(100); resetSocket(); currentTest=test; if (test==SPEED) { if (!httpsOk) { slotConSpeed(1,0); return; } broker->testConnection(); return; } socket=new QTcpSocket(this); socket->connectToHost(brokerUrl.host(),test); connect( socket,SIGNAL(connected()),this,SLOT(slotConnected())); connect( socket, SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(slotError(QAbstractSocket::SocketError))); } void ConTest::slotConnected() { x2goDebug<<"connected\n"; timer->stop(); QPalette pal=lhttps->palette(); pal.setColor(QPalette::WindowText, Qt::green); switch (currentTest) { case HTTPS: prhttps->setValue(100); lhttps->setText(tr("OK")); lhttps->setPalette(pal); httpsOk=true; testConnection(SSH); break; case SSH: prssh->setValue(100); lssh->setText(tr("OK")); lssh->setPalette(pal); testConnection(SPEED); break; default: break; } } void ConTest::slotConSpeed(int msecElapsed, int bytesRecived) { timer->stop(); prspeed->setValue(100); double sec=msecElapsed/1000.; int KB=bytesRecived/1024; int Kbsec=(int)(KB/sec)*8; QPalette pal=lspeed->palette(); pal.setColor(QPalette::WindowText, Qt::green); if (Kbsec<1000) pal.setColor(QPalette::WindowText, Qt::yellow); if (Kbsec<512) pal.setColor(QPalette::WindowText, Qt::red); lspeed->setPalette(pal); lspeed->setText(QString::number(Kbsec)+" Kb/s"); buttonBox->button(QDialogButtonBox::Retry)->setEnabled(true); } void ConTest::slotError(QAbstractSocket::SocketError socketError) { QString error; if (socketError==QAbstractSocket::SocketTimeoutError) error=tr("Socket operation timed out"); else error=socket->errorString(); x2goDebug<<"Error: "<stop(); QPalette pal=lhttps->palette(); pal.setColor(QPalette::WindowText, Qt::red); switch (currentTest) { case HTTPS: prhttps->setValue(100); lhttps->setText(tr("Failed: ")+error); lhttps->setPalette(pal); testConnection(SSH); break; case SSH: prssh->setValue(100); lssh->setText(tr("Failed: ")+error); lssh->setPalette(pal); testConnection(SPEED); break; default: break; } } void ConTest::slotTimer() { time++; if (time>150) { if (currentTest==SSH || currentTest==HTTPS) { socket->close(); slotError(QAbstractSocket::SocketTimeoutError); } } QProgressBar* bar=0l; switch (currentTest) { case SSH: bar=prssh; break; case HTTPS: bar=prhttps; break; case SPEED: bar=prspeed; break; } if (bar->value()==100) bar->setValue(0); else bar->setValue(bar->value()+10); } x2goclient-4.0.1.1/contest.h0000644000000000000000000000406212214040350012440 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef CONTEST_H #define CONTEST_H #include #include "ui_contest.h" #include #include class HttpBrokerClient; class QTcpSocket; class QTimer; class ConTest : public QDialog, public Ui_ConTest { Q_OBJECT public: ConTest(HttpBrokerClient* broker, QUrl url, QWidget* parent = 0, Qt::WindowFlags f = 0); virtual ~ConTest(); private: enum tests {SSH=22,HTTPS=443,SPEED} currentTest; void reset(); void testConnection(tests test); void resetSocket(); private slots: void slotConnected(); void slotError(QAbstractSocket::SocketError socketError); void slotTimer(); void slotConSpeed(int msecElapsed, int bytesRecived); private: HttpBrokerClient* broker; QUrl brokerUrl; QTcpSocket* socket; QTimer* timer; int time; bool httpsOk; public slots: void start(); }; #endif // CONTEST_H x2goclient-4.0.1.1/contest.ui0000644000000000000000000001650012214040350012626 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) ConTest 0 0 336 161 Connectivity test HTTPS connection: SSH connection: Connection speed: 24 false false 24 false 24 false 255 0 0 255 0 0 146 145 144 Failed 255 0 0 255 0 0 146 145 144 Failed 255 0 0 255 0 0 146 145 144 0 Kb/s Qt::Vertical 20 4 Qt::Horizontal QDialogButtonBox::Close|QDialogButtonBox::Retry buttonBox rejected() ConTest reject() 281 132 286 146 buttonBox accepted() ConTest start() 242 122 4 84 start() x2goclient-4.0.1.1/COPYING0000644000000000000000000004310612214040350011645 0ustar GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. x2goclient-4.0.1.1/COPYRIGHT.x2go-logos0000644000000000000000000000154012214040350014100 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: X2Go-artwork [~X] Upstream-Contact: Heinz-M. Graesing Files: x2go-logos/mksizedsymbols.sh Copyright: 2006-2012 Heinz-M. Graesing License: GPL-2.0+ x2go-logos/x2go-logo-colored.svg x2go-logos/x2go-logo.svg x2go-logos/x2go-logo-rotated.svg x2go-logos/x2go-mascot.svg Copyright: 2006-2012 Heinz-M. Grasesing License: GPL-2.0+ Files: icons/16x16/x2goclient.png icons/32x32/x2goclient.png icons/48x48/x2goclient.png icons/64x64/x2goclient.png icons/128x128/x2goclient.png Copyright: 2006-2012 Heinz-M. Graesing License: GPL-2.0+ x2goclient-4.0.1.1/cupsprint.cpp0000644000000000000000000002422712214040350013350 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "cupsprint.h" #ifndef Q_OS_WIN #include "x2gologdebug.h" #include "x2gosettings.h" #include CUPSPrint::CUPSPrint() { ppd=0l; num_dests= cupsGetDests ( &dests ); } CUPSPrint::~CUPSPrint() { cupsFreeDests ( num_dests, dests ); if ( ppd ) ppdClose ( ppd ); ppd=0l; } QStringList CUPSPrint::getPrinters() { QStringList printers; for ( int i=0;ivalue ( "CUPS/defaultprinter","" ). toString(); if ( defPrint.length() >0 ) { cups_dest_t *dest = cupsGetDest ( defPrint.toAscii(), 0l, num_dests, dests ); if ( dest ) return defPrint; } cups_dest_t *dest = cupsGetDest ( 0l, 0l, num_dests, dests ); if ( dest ) defPrint=dest->name; return defPrint; } void CUPSPrint::setDefaultUserPrinter ( QString printer ) { X2goSettings st ( "printing" ); st.setting()->setValue ( "CUPS/defaultprinter", QVariant ( printer ) ); } bool CUPSPrint::getPrinterInfo ( const QString& printerName, QString& info, bool& acceptJobs, QString& location, QString& model, printState& state, QString& stateReason ) { cups_dest_t *dest = cupsGetDest ( printerName.toAscii(), 0l, num_dests, dests ); if ( !dest ) return false; acceptJobs=qstrcmp ( cupsGetOption ( "printer-is-accepting-jobs", dest->num_options, dest->options ),"0" ); info=QString::fromLocal8Bit ( cupsGetOption ( "printer-info", dest->num_options, dest->options ) ); location=QString::fromLocal8Bit ( cupsGetOption ( "printer-location", dest->num_options, dest->options ) ); model=QString::fromLocal8Bit ( cupsGetOption ( "printer-make-and-model", dest->num_options, dest->options ) ); QString st=cupsGetOption ( "printer-state", dest->num_options, dest->options ); state=NDEF; if ( st=="3" ) state=IDLE; if ( st=="4" ) state=PRINTING; if ( st=="5" ) state=STOPPED; stateReason=QString::fromLocal8Bit ( cupsGetOption ( "printer-state-reasons", dest->num_options, dest->options ) ); return true; } bool CUPSPrint::setCurrentPrinter ( QString prn ) { currentPrinter=prn; QString fl=cupsGetPPD ( prn.toAscii() ); if ( fl.length() <=0 ) return false; if ( ppd ) ppdClose ( ppd ); ppd=0l; ppd=ppdOpenFile ( fl.toAscii() ); unlink ( fl.toAscii() ); if ( ppd==0l ) return false; ppdMarkDefaults ( ppd ); loadUserOptions(); if ( ppdConflicts ( ppd ) !=0 ) { x2goDebug<<"There are conflicting options in user settings,\n" "loading defaults"<defchoice ); if ( !choice ) return false; } value=QString::fromLocal8Bit ( choice->choice ); valueText=QString::fromLocal8Bit ( choice->text ); // x2goDebug<<"getValue:"<num_choices;++k ) { ppd_choice_t* choice=& ( opt->choices[k] ); if ( choice->marked ) { cur_val=values.size(); } //if no choice is marked, return default if ( !qstrcmp ( choice->choice,opt->defchoice ) && cur_val==-1 ) { cur_val=values.size(); } values<choice ); descriptions<text ); } return cur_val; } int CUPSPrint::getOptionGroups ( QStringList& names, QStringList& texts ) { names.clear(); texts.clear(); if ( !ppd ) return -1; for ( int i=0;inum_groups;++i ) { ppd_group_t* group=& ( ppd->groups[i] ); names<name ); texts<text ); } return names.size(); } int CUPSPrint::getOptionsList ( const QString& groupName, QStringList& names, QStringList& texts ) { names.clear(); texts.clear(); if ( !ppd ) return -1; for ( int i=0;inum_groups;++i ) { ppd_group_t* group=& ( ppd->groups[i] ); if ( groupName.length() >0 && groupName != QString::fromLocal8Bit ( group->name ) ) continue; for ( int j=0;jnum_options;++j ) { ppd_option_t* option=& ( group->options[j] ); names<keyword ); texts<text ); } } return names.size(); } bool CUPSPrint::setValue ( const QString& option, const QString& value, QString& conflict_opt, QString& conflict_val ) { if ( !ppd ) return false; int conflictsBefore= ppdConflicts ( ppd ); QString valueBefore, textBefore; if ( !getOptionValue ( option,valueBefore,textBefore ) ) return false; ppdMarkOption ( ppd,option.toAscii(),value.toAscii() ); if ( conflictsBefore==ppdConflicts ( ppd ) ) { return true; } //find conflicting option for ( int i=0;inum_consts;++i ) { QString confOpt,confVal; if ( option==ppd->consts[i].option1 && value==ppd->consts[i].choice1 ) { confOpt=ppd->consts[i].option2; confVal=ppd->consts[i].choice2; } else if ( option==ppd->consts[i].option2 && value==ppd->consts[i].choice2 ) { confOpt=ppd->consts[i].option1; confVal=ppd->consts[i].choice1; } else continue; QString selectedValue, selectedText; if ( getOptionValue ( confOpt,selectedValue,selectedText ) ) { if ( selectedValue==confVal ) { //conflicting option/choice found conflict_val=confVal; conflict_opt=confOpt; break; } } } //set previous value ppdMarkOption ( ppd,option.toAscii(),valueBefore.toAscii() ); return false; } bool CUPSPrint::getOptionText ( const QString& option, QString& text ) { if ( !ppd ) return false; ppd_option_t* opt=ppdFindOption ( ppd,option .toAscii() ); if ( !opt ) return false; text=QString::fromLocal8Bit ( opt->text ); return true; } void CUPSPrint::setDefaults() { //don't use ppdMarkDefaults here //ppdMarkDefaults do not unmark //already marked choices if ( !ppd ) return; for ( int i=0;inum_groups;++i ) { ppd_group_t* group=& ( ppd->groups[i] ); for ( int j=0;jnum_options;++j ) { ppd_option_t* option=& ( group->options[j] ); ppdMarkOption ( ppd,option->keyword,option->defchoice ); } } } void CUPSPrint::saveOptions() { if ( !ppd ) return; X2goSettings st( "printing" ); QStringList options; for ( int i=0;inum_groups;++i ) { ppd_group_t* group=& ( ppd->groups[i] ); for ( int j=0;jnum_options;++j ) { ppd_option_t* option=& ( group->options[j] ); QString val,valtext; if ( !getOptionValue ( option->keyword,val,valtext ) ) continue; //something is wrong here if ( val!=option->defchoice ) { QString opt=option->keyword; opt+="="+val; options<setValue ( "CUPS/options/"+currentPrinter, QVariant ( options ) ); } void CUPSPrint::loadUserOptions() { X2goSettings st ( "printing" ); QStringList options=st.setting()->value ( "CUPS/options/"+currentPrinter ).toStringList(); for ( int i=0;i #include #include CUPSPrinterSettingsDialog::CUPSPrinterSettingsDialog ( QString prnName, CUPSPrint* cupsObject, QWidget * parent, Qt::WFlags flags ) :QDialog ( parent, flags ) { m_cups=cupsObject; printer=prnName; ui.setupUi ( this ); setWindowTitle ( prnName ); QList sz; sz<<250<<100; ui.splitter->setSizes ( sz ); if ( !m_cups->setCurrentPrinter ( printer ) ) { //message here close(); } setGeneralTab(); setPPDTab(); connect ( ( QObject* ) ( ui.buttonBox->button ( QDialogButtonBox::RestoreDefaults ) ), SIGNAL ( clicked() ),this,SLOT ( slot_restoreDefaults() ) ); connect ( ( QObject* ) ( ui.buttonBox->button ( QDialogButtonBox::Save ) ), SIGNAL ( clicked() ),this,SLOT ( slot_saveOptions() ) ); connect ( ( QObject* ) ( ui.buttonBox->button ( QDialogButtonBox::Cancel ) ), SIGNAL ( clicked() ),this,SLOT ( reject() ) ); connect ( ( QObject* ) ( ui.buttonBox->button ( QDialogButtonBox::Ok ) ), SIGNAL ( clicked() ),this,SLOT ( slot_ok() ) ); } CUPSPrinterSettingsDialog::~CUPSPrinterSettingsDialog() { } void CUPSPrinterSettingsDialog::setCbBox ( QComboBox* cb, QString optionKeyword ) { QStringList values; QStringList descriptions; int cur_val=m_cups->getOptionValues ( optionKeyword, values,descriptions ); if ( cur_val==-1 ) cb->setEnabled ( false ); else { cb->addItems ( descriptions ); cb->setCurrentIndex ( cur_val ); } } void CUPSPrinterSettingsDialog::slot_optionSelected ( QTreeWidgetItem * current, QTreeWidgetItem * ) { ui.optionsTree->clear(); if ( current ) if ( current->childCount() ==0 ) { ui.gbOptions->setTitle ( current->text ( 0 ) ); QStringList valueNames, valueTexts; int selectedValue=m_cups-> getOptionValues ( current->text ( 2 ), valueNames,valueTexts ); for ( int i=0;isetText ( 0,valueTexts[i] ); ritem->setText ( 1,valueNames[i] ); if ( i==selectedValue ) ui.optionsTree->setCurrentItem ( ritem ); } return; } ui.gbOptions->setTitle ( tr ( "No option selected" ) ); } void CUPSPrinterSettingsDialog::slot_valueSelected ( QTreeWidgetItem * current, QTreeWidgetItem * ) { if ( !current ) return; QTreeWidgetItem* optionItem=ui.ppdTree->currentItem(); QString option=optionItem->text ( 2 ); QString newVal=current->text ( 1 ); QString prevVal,prevText; m_cups->getOptionValue ( option,prevVal,prevText ); if ( prevVal==newVal ) return; //we need change current item //do it outside this function setNewValue ( option,newVal ) ; QTimer::singleShot ( 1, this, SLOT ( slot_reloadValues() ) ); m_cups->getOptionValue ( option,prevVal,prevText ); optionItem->setText ( 1,prevText ); optionItem->setText ( 3,prevVal ); setGeneralTab(); } void CUPSPrinterSettingsDialog::setGeneralTab() { disconnect ( ui.cbPageSize,SIGNAL ( currentIndexChanged ( int ) ), this,SLOT ( slot_changePSize ( int ) ) ); disconnect ( ui.cbMediaType,SIGNAL ( currentIndexChanged ( int ) ), this,SLOT ( slot_changePType ( int ) ) ); disconnect ( ui.cbInputSlot,SIGNAL ( currentIndexChanged ( int ) ), this,SLOT ( slot_changeISlot ( int ) ) ); disconnect ( ui.rbNone,SIGNAL ( clicked ( ) ), this,SLOT ( slot_changeDuplex() ) ); disconnect ( ui.rbShort,SIGNAL ( clicked ( ) ), this,SLOT ( slot_changeDuplex() ) ); disconnect ( ui.rbLong,SIGNAL ( clicked ( ) ), this,SLOT ( slot_changeDuplex() ) ); ui.cbPageSize->clear(); ui.cbMediaType->clear(); ui.cbInputSlot->clear(); setCbBox ( ui.cbPageSize,"PageSize" ); setCbBox ( ui.cbMediaType,"MediaType" ); setCbBox ( ui.cbInputSlot,"InputSlot" ); QString valueName, valueText; ui.rbNone->setChecked ( true ); if ( m_cups->getOptionValue ( "Duplex",valueName,valueText ) ) { if ( valueName=="DuplexTumble" ) ui.rbShort->setChecked ( true ); if ( valueName=="DuplexNoTumble" ) ui.rbLong->setChecked ( true ); } else ui.gbDuplex->setEnabled ( false ); connect ( ui.cbPageSize,SIGNAL ( currentIndexChanged ( int ) ), this,SLOT ( slot_changePSize ( int ) ) ); connect ( ui.cbMediaType,SIGNAL ( currentIndexChanged ( int ) ), this,SLOT ( slot_changePType ( int ) ) ); connect ( ui.cbInputSlot,SIGNAL ( currentIndexChanged ( int ) ), this,SLOT ( slot_changeISlot ( int ) ) ); connect ( ui.rbNone,SIGNAL ( clicked ( ) ), this,SLOT ( slot_changeDuplex() ) ); connect ( ui.rbShort,SIGNAL ( clicked ( ) ), this,SLOT ( slot_changeDuplex() ) ); connect ( ui.rbLong,SIGNAL ( clicked ( ) ), this,SLOT ( slot_changeDuplex() ) ); } void CUPSPrinterSettingsDialog::setPPDTab() { disconnect ( ui.ppdTree, SIGNAL ( currentItemChanged ( QTreeWidgetItem*, QTreeWidgetItem* ) ), this, SLOT ( slot_optionSelected ( QTreeWidgetItem*, QTreeWidgetItem* ) ) ); disconnect ( ui.optionsTree, SIGNAL ( currentItemChanged ( QTreeWidgetItem*, QTreeWidgetItem* ) ), this, SLOT ( slot_valueSelected ( QTreeWidgetItem*, QTreeWidgetItem* ) ) ); QString info; bool acceptJobs; QString location; QString model; CUPSPrint::printState state; QString stateReason; QString valueName,valueText; !m_cups->getPrinterInfo ( printer, info,acceptJobs, location,model,state,stateReason ) ; ui.ppdTree->clear(); QTreeWidgetItem* ritem=new QTreeWidgetItem ( ( QTreeWidgetItem* ) 0, QTreeWidgetItem::Type ) ; ritem->setText ( 0,model ); ui.ppdTree->addTopLevelItem ( ritem ); QStringList grName, grText; m_cups->getOptionGroups ( grName,grText ); for ( int i=0;isetText ( 0,grText[i] ); gritem->setText ( 2,grName[i] ); QStringList optName, optText; m_cups->getOptionsList ( grName[i],optName,optText ); for ( int j=0;jsetText ( 0,optText[j] ); optitem->setText ( 2,optName[j] ); m_cups->getOptionValue ( optName[j],valueName, valueText ); optitem->setText ( 1,valueText ); optitem->setText ( 3,valueName ); } } ui.ppdTree->expandAll(); ui.ppdTree->header()->resizeSections ( QHeaderView::ResizeToContents ); slot_optionSelected ( ritem,0l ); connect ( ui.ppdTree, SIGNAL ( currentItemChanged ( QTreeWidgetItem*, QTreeWidgetItem* ) ), this, SLOT ( slot_optionSelected ( QTreeWidgetItem*, QTreeWidgetItem* ) ) ); connect ( ui.optionsTree, SIGNAL ( currentItemChanged ( QTreeWidgetItem*, QTreeWidgetItem* ) ), this, SLOT ( slot_valueSelected ( QTreeWidgetItem*, QTreeWidgetItem* ) ) ); } bool CUPSPrinterSettingsDialog::setNewValue ( const QString& option, const QString& value ) { QString confVal,confOpt; bool res=m_cups->setValue ( option,value,confOpt,confVal ); if ( !res ) { QString textMessage= tr ( "This value is in conflict with other option" ); QString txt; m_cups->getOptionText ( confOpt,txt ); QString val,valt; m_cups->getOptionValue ( confOpt,val,valt ); if ( confOpt.length() >0 &&confVal.length() >0 ) { textMessage+="\n("+txt+" : "+valt+")"; } QMessageBox::critical ( this,tr ( "Options conflict" ), textMessage ); } return res; } void CUPSPrinterSettingsDialog::slot_reloadValues() { if ( ui.ppdTree->currentItem() ) slot_optionSelected ( ui.ppdTree->currentItem(),0l ); QTreeWidgetItemIterator it ( ui.ppdTree ); while ( *it ) { if ( ( *it )->childCount() ==0 ) { QString opt= ( *it )->text ( 2 ); QString nval,ntext; m_cups->getOptionValue ( opt,nval,ntext ); if ( ( *it )->text ( 3 ) != nval ) ( *it )->setText ( 1,ntext ); ( *it )->setText ( 3,nval ); } ++it; } } void CUPSPrinterSettingsDialog::slot_changePSize ( int ind ) { changeFromCbBox ( "PageSize",ind ); } void CUPSPrinterSettingsDialog::slot_changePType ( int ind ) { changeFromCbBox ( "MediaType",ind ); } void CUPSPrinterSettingsDialog::slot_changeISlot ( int ind ) { changeFromCbBox ( "InputSlot",ind ); } void CUPSPrinterSettingsDialog::changeFromCbBox ( const QString& opt, int id ) { QStringList vals,texts; m_cups->getOptionValues ( opt,vals,texts ); if ( vals.size() isChecked() ) { changeGeneralOption ( "Duplex","DuplexTumble" ); } if ( ui.rbLong->isChecked() ) { changeGeneralOption ( "Duplex","DuplexNoTumble" ); } if ( ui.rbNone->isChecked() ) { changeGeneralOption ( "Duplex","None" ); } } void CUPSPrinterSettingsDialog::changeGeneralOption ( const QString& option, const QString& val ) { if ( !setNewValue ( option,val ) ) QTimer::singleShot ( 1, this, SLOT ( setGeneralTab() ) ); slot_reloadValues(); } void CUPSPrinterSettingsDialog::slot_restoreDefaults() { m_cups->setDefaults(); setGeneralTab(); slot_reloadValues(); } void CUPSPrinterSettingsDialog::slot_saveOptions() { m_cups->saveOptions(); } void CUPSPrinterSettingsDialog::slot_ok() { m_cups->saveOptions(); accept(); } #endif x2goclient-4.0.1.1/cupsprintersettingsdialog.h0000644000000000000000000000525612214040350016306 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef CUPSPRINTERSETTINGSDIALOG_H #define CUPSPRINTERSETTINGSDIALOG_H #include "x2goclientconfig.h" #ifndef Q_OS_WIN #include #include "ui_cupsprintsettingsdialog.h" /** @author Oleksandr Shneyder */ class CUPSPrint; class CUPSPrinterSettingsDialog : public QDialog { Q_OBJECT public: enum tabs{GENERAL,PPD}; CUPSPrinterSettingsDialog ( QString prnName, CUPSPrint* cupsObject, QWidget * parent=0l, Qt::WFlags flags =0 ); ~CUPSPrinterSettingsDialog(); private: CUPSPrint* m_cups; Ui::CupsPrinterSettingsDialog ui; QString printer; private: void setCbBox ( QComboBox* cb, QString optionKeyword ); void setPPDTab(); bool setNewValue ( const QString& option, const QString& value ); void changeFromCbBox ( const QString& opt, int id ); void changeGeneralOption ( const QString& option, const QString& val ); private slots: void slot_optionSelected ( QTreeWidgetItem * current, QTreeWidgetItem * previous ); void slot_valueSelected ( QTreeWidgetItem * current, QTreeWidgetItem * previous ); void slot_reloadValues(); void slot_changePSize ( int ind ); void slot_changePType ( int ind ); void slot_changeISlot ( int ind ); void slot_changeDuplex(); void setGeneralTab(); void slot_restoreDefaults(); void slot_saveOptions(); void slot_ok(); }; #endif #endif x2goclient-4.0.1.1/cupsprint.h0000644000000000000000000000537412214040350013017 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef CUPSPRINT_H #define CUPSPRINT_H #include "x2goclientconfig.h" #ifndef Q_OS_WIN #include #include #include /** @author Oleksandr Shneyder */ class CUPSPrint { public: enum printState {NDEF,IDLE,PRINTING,STOPPED}; CUPSPrint(); ~CUPSPrint(); void setDefaultUserPrinter ( QString printer ); QString getDefaultUserPrinter(); QStringList getPrinters(); bool getPrinterInfo ( const QString& printerName, QString& info, bool& acceptJobs, QString& location, QString& model, printState& state, QString& stateReason ); bool setCurrentPrinter ( QString ); bool getOptionValue ( const QString& option, QString& value, QString& valueText ); int getOptionValues ( const QString& option, QStringList& values, QStringList& descriptions ); int getOptionGroups ( QStringList& names, QStringList& texts ); int getOptionsList ( const QString& group, QStringList& names, QStringList& texts ); bool setValue ( const QString& option, const QString& value, QString& conflict_opt, QString& conflict_val ); bool getOptionText ( const QString& option, QString& text ); void setDefaults(); void saveOptions(); void print ( const QString& file, QString title="" ); private: cups_dest_t *dests; int num_dests; ppd_file_t *ppd; QString currentPrinter; private: void loadUserOptions(); }; #endif #endif x2goclient-4.0.1.1/cupsprintsettingsdialog.ui0000644000000000000000000001577512214040350016154 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) CupsPrinterSettingsDialog 0 0 503 551 0 0 Dialog 0 0 0 General Page size: 0 0 Paper type: Paper source: Qt::Horizontal 40 20 Duplex Printing None Long side Short side Qt::Vertical 20 211 Driver settings true Qt::Vertical false false true true true false Option Value No option selected false false true false text QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::RestoreDefaults|QDialogButtonBox::Save false x2goclient-4.0.1.1/cupsprintwidget.cpp0000644000000000000000000000631512214040350014552 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "cupsprint.h" #include "cupsprintwidget.h" #ifndef Q_OS_WIN #include "x2gologdebug.h" #include "cupsprintersettingsdialog.h" CUPSPrintWidget::CUPSPrintWidget ( QWidget* parent ) : QWidget ( parent ) { m_cups=new CUPSPrint; ui.setupUi ( this ); ui.cbPrinters->addItems ( m_cups->getPrinters() ); int defind=ui.cbPrinters->findText ( m_cups->getDefaultUserPrinter() ); if ( defind!=-1 ) { ui.cbPrinters->setCurrentIndex ( defind ); slot_printerSelected ( defind ); } connect ( ui.cbPrinters, SIGNAL ( currentIndexChanged ( int ) ), this,SLOT ( slot_printerSelected ( int ) ) ) ; connect ( ui.pbProps, SIGNAL ( clicked() ), this, SLOT ( slot_printerSettings() ) ); } CUPSPrintWidget::~CUPSPrintWidget() { delete m_cups; } void CUPSPrintWidget::slot_printerSelected ( int index ) { if ( index == -1 ) return; QString info; bool acceptJobs; QString location; QString model; CUPSPrint::printState state; QString stateReason; if ( !m_cups->getPrinterInfo ( ui.cbPrinters->currentText(), info,acceptJobs, location,model,state,stateReason ) ) return; QString stText; switch ( state ) { case CUPSPrint::IDLE: stText=tr ( "Idle" ); break; case CUPSPrint::PRINTING: stText=tr ( "Printing" ); break; case CUPSPrint::STOPPED: stText=tr ( "Stopped" ); break; default: break; } if ( stateReason.length() >0 && stateReason != "none" ) stText+= " ("+stateReason+")"; ui.lState->setText ( stText ); ( acceptJobs ) ?ui.lJAccept->setText ( tr ( "Yes" ) ) :ui.lJAccept->setText ( tr ( "No" ) ); ui.lType->setText ( info ); ui.lLocation->setText ( location ); ui.lComment->setText ( model ); } void CUPSPrintWidget::slot_printerSettings() { CUPSPrinterSettingsDialog dlg ( ui.cbPrinters->currentText(), m_cups,this ); dlg.exec(); } void CUPSPrintWidget::savePrinter() { m_cups->setDefaultUserPrinter ( ui.cbPrinters->currentText() ); } #endif x2goclient-4.0.1.1/cupsprintwidget.h0000644000000000000000000000336412214040350014220 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef CUPSPRINTWIDGET_H #define CUPSPRINTWIDGET_H #include #include "x2goclientconfig.h" #ifndef Q_OS_WIN #include "cupsprint.h" #include "ui_cupsprintwidget.h" /** @author Oleksandr Shneyder */ class CUPSPrintWidget : public QWidget { Q_OBJECT public: CUPSPrintWidget ( QWidget* parent =0 ); ~CUPSPrintWidget(); void savePrinter(); private: CUPSPrint* m_cups; Ui::CUPSPrintWidget ui; private slots: void slot_printerSelected ( int index ); void slot_printerSettings(); }; #endif #endif x2goclient-4.0.1.1/cupsprintwidget.ui0000644000000000000000000000601012214040350014375 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) CUPSPrintWidget 0 0 362 292 0 0 Form Name: 0 0 Properties State: Accepting jobs: Type: Location: Comment: x2goclient-4.0.1.1/debian/changelog0000644000000000000000000010460612214040350013711 0ustar x2goclient (4.0.1.1-0~x2go1) unstable; urgency=low [ Nicolai Hansen ] * New upstream version (4.0.1.1): - Update Danish translation file. [ Terje Andersen ] * New upstream version (4.0.1.1): - Update Norwegian Bokmaal translation file. [ Oleksandr Shneyder ] * New upstream version (4.0.1.1): - Use "127.0.0.1" instead of localhost to avoid wrong IPv6 hostname resolution. (Fixes: #151). - Wait for x2gocmdexitmessage to return before closing in hidden mode. - Support for published applications in X2Go Plugin - Support for "shadow" mode in X2Go Plugin [ Mike Gabriel ] * New upstream version (4.0.1.1): - If a priv SSH key has been specified, skip the autologin procedure. Let's consider a given SSH private key that fails to log the user in as an overall login failure. (Fixes: #141). - Avoid multiple selectUserSession requests when in broker mode. - Properly set the remote server address received via selectUserSession method when in broker mode. (Fixes: #226). - Fix segmentation fault that started occurring since the custom trayIcon patch was applied. Segfault only occurred if the tray icon was not used. - Show session name in notification bubbles. - Update German translation. - Add cmdline option --broker-autologoff: Enforce re-authentication against X2Go Session Broker after a session has been suspended or terminated. (Fixes: #179). - Enable full access desktop sharing across user accounts. (Fixes: #222). - Make X2Go Client aware of the MATE desktop environment. - Make X2Go Client work in SSH broker mode without the need of a auth-id file. [ Heinrich Schuchardt ] * New upstream version (4.0.1.1): - Call ssh_clean_pubkey_hash() for deallocating public key hashes instead of just calling free(). Required under MS Windows as documented in libssh2 API. (Fixes: #243). (For further details see: http://api.libssh.org/master/group__libssh__session.html). * Provide bin:package with debug symbols for X2Go Client. (Fixes: #255). [ Ezra Bühler ] * New upstream version (4.0.1.1): - Fix auto-resume when session type is »Single Application«. (Fixes: #183). [ Ricardo Díaz Martín ] * New upstream version (4.0.1.1): - Fix detection of maximum screen area available for a session. (Fixes: #165). - Use the session icon as tray icon, pop up notification bubble that informs about current session actions. (Fixes: #177). - Allow for setting maximum available desktop size as window size via the session profile card. Unfortunately, this feature is for now only available on Linux. (Fixes: #214). [ Otto Kjell ] * New upstream version (4.0.1.1): - Enable debug mode through cmd line parameter. (Fixes: #142). - Standardize output to stdout+stderr and make it parseable. [ Orion Poplawski ] * New upstream version (4.0.1.1): - Instead of using a hard-code DPI of 96, use local DPI settings for new sessions if not explicitly set in session profile (Fixes: #164). [ Daniel Lindgren ] * New upstream version (4.0.1.1): - Update Swedish translation file. [ Ricardo Díaz Martín ] * New upstream version (4.0.1.1): - Update Spanish translation file. -- Mike Gabriel Wed, 11 Sep 2013 12:06:02 +0200 x2goclient (4.0.1.0-0~x2go1) unstable; urgency=low [ Frédéric Motte ] * New upstream version (4.0.1.0): - Add French translation file. [ Oleksandr Shneyder ] * New upstream version (4.0.1.0): - Launching parec to init pulseaudio input only on Windows. - Hide profilecard area on broker authentication. - Fix ONMainWindow layout in broker mode. - Set passphrase for key to reverse SSH connection. Fix closing client after getting passphrase (Fixes: #137) - Support for recent cygwin API on Windows. - Add checkbox for -noclipboardprimary argument for internal vcxsrv. [ Mike Gabriel ] * New upstream version (4.0.1.0): - Fix position shifts of broker login widget on repetetive authentication failures. (Fixes: #71). -- Mike Gabriel Fri, 22 Mar 2013 23:15:45 +0100 x2goclient (4.0.0.4-0~x2go1) unstable; urgency=low [ Clemens Lang ] * New upstream version (4.0.0.4): - Add scripts and additional files for building X2Go Client disk images for Mac OS X. (Fixes: #131). [ Mike Gabriel ] * New upstream version (4.0.0.4): - Update man page: Add broker relevant cmdline options. -- Mike Gabriel Mon, 04 Mar 2013 05:46:16 +0100 x2goclient (4.0.0.3-0~x2go1) unstable; urgency=low * Fix version in version.h, VERSION and x2goplugin.rc. -- Mike Gabriel Wed, 13 Feb 2013 14:37:24 +0100 x2goclient (4.0.0.2-0~x2go1) unstable; urgency=low [ Mike Gabriel ] * New upstream version (4.0.0.2): - More icon updates needed. Discovered during Debian package update. [ Orion Poplawski ] * New upstream version (4.0.0.2): - Fix .desktop file, fix FSF address. (Fixes: #88). [ Oleksandr Shneyder ] * New upstream version (4.0.0.2): - Fix support for RSA Keys in X2Go Broker code. - Set autologin as false by default. Quote session ID in SSH broker code - Support for session key "usebrokerpassforproxy" - use broker pass for authentication on proxy. - Fix X2Go Logo. - Terminate nxproxy from X2Go Client if connection to server is lost. (Fixes: #100) - Fix building x2goplugin. -- Mike Gabriel Tue, 12 Feb 2013 19:29:53 +0100 x2goclient (4.0.0.1-0~x2go1) unstable; urgency=low * Bugfix release (4.0.0.1): - Replace symlink at svg/x2gologo.svg with copied file. Fixes tarball release esp. for MS Windows builds. -- Mike Gabriel Wed, 02 Jan 2013 12:19:01 +0100 x2goclient (4.0.0.0-0~x2go1) unstable; urgency=low [ Christoffer Krakou ] * New upstream version (4.0.0.0): - Update Danish translation. - Update Danish translation (SSH proxy feature). [ Daniel Lindgren ] * New upstream version (4.0.0.0): - Update Swedish translation. [ Ezra Bühler ] * New upstream version (4.0.0.0): - Make it possible to resume a session using the keyboard only. Also fix the tab order in the resume session dialog by changing the focus policy of the main window. (Fixes: #80). [ Heinz-M. Graesing ] * New upstream version (4.0.0.0): - Update refurbished X2Go Logo set. License for the X2Go Logos is GPL-2.0+. The inner X2Go logo background is now white (non-transparent) which should fix poor display results for X2Go icons in application menus using a dark theme. (Fixes: #59). [ Jan Engelhardt ] * New upstream version (4.0.0.0): - Fix Debian-like Qt path (qmake will handle it internally). [ Oleksandr Shneyder ] * New upstream version (4.0.0.0): - Translation files updated. - Russian translation updated. - Add support for pgp cards in broker mode. - Fix displaying ssh proxy box in session settings if sessions type changed. (Fixes: #61). - Init config.brokerAutologin with false. (Fixes: #72). - Make sure x2goclient closes if broker has no sessions. Fixes appearing session profile dialog if client is configured to minimize to systray. (Fixes: #73). - Update license headers. - Add "author" entry in UI files. - Add OpenSSL license exception. [ Ricardo Diaz ] * New upstream version (4.0.0.0): - Update Spanish translation file. [ Mike Gabriel ] * New upstream version (4.0.0.0): - Update German translation file. - Get rid of br html tags in client<->broker communication (Fixes: #81). - Bump version to 4.0.0.0 (for Baikal bundle release). [ Terje Andersen ] * New upstream version (4.0.0.0): - Update Bokmal (Norway) translation file. -- Mike Gabriel Sun, 30 Dec 2012 15:34:02 +0100 x2goclient (3.99.3.0-0~x2go1) unstable; urgency=low [ Mike Gabriel ] * New upstream version (3.99.3.0): - Rebuild i18n files, add x2goclient_dk.ts for the new Danish translator (Christoffer Krakou). - Update German translation. - Run X2Go-proxied RDP session with fullscreen mode as sessions of X2Go session type "D". (Fixes: #22) - Allow pass-through of username and password for X2Go-proxied RDP sessions. The strings X2GO_USER and X2GO_PASSWORD in rdpoptions will be replaced by username+password enter into X2Go Clients login dialog. Only replace username+password if they received a value from the login widget of the main window. - Drop i18n idea to translate English to English. - Fix creation of session profile icon on desktop. The .desktop files need the x-bit set. Also: add a compatibility profile name rewrite for PyHoca-GUI profile names containing a slash, PyHoca-GUI uses a slash as separator character for submenu cascades. - Use ,,printf'' instead of ,,echo -e'' (Bashism). Fixes creation of xinerama.conf files. - Add XFCE as possible session type. (Fixes: #51) * /debian/control: + Maintainer change in package: X2Go Developers . + Add rdesktop and xfreerdp to Recommends. + Priority: optional. + Bin:package x2goplugin-provider: depend on x2goplugin. * New bin:package (all): x2goplugin-provider. Provide basic Apache2 configuration for a demo x2goplugin website. * Bump Standards version to 3.9.3. [ Daniel Lindgren ] * New upstream version (3.99.3.0): - Update Swedish translation. [ Terje Andersen ] * New upstream version (3.99.3.0): - Update Norwegian Bokmal translation. [ Christoffer Krakou ] * New upstream version (3.99.3.0): - Add Danish translation to x2goclient. - Proof read Danish translation. - Update DirectRDP in Danish translation. [ Oleksandr Shneyder ] * New upstream version (3.99.3.0): - Add settings for direct RDP connection. - Implement direct RDP connection using standalone client. - Build direct RDP feature only for linux. - Add DEFINES += __linux__ to project file when building linux binaries (need to define Q_OS_LINUX in moc generator). - Update "ts" files. - Fixed label "SSH port" and "RDP port" to "SSH port:" and "RDP port:". Update "ts" files once again. - Add translation for label "RDP port:". Update "ts" files updated Russian translation. - Add translation for checkbox "Direct RDP Connection" and update Russian and German translation. - Restart pulse server on windows if it crashed. - Show "Advanced Options" button only if RDP session chosen. - Fixing kbd focus issue for all kinds of sessions in thinclient mode. (Fixes: #20). - Add command line parameter --ssh-key and --autologin. - Disable check box "use default sound port" if sound disabled. - Add support for HTTP proxy - developed by Heinrich Schuchardt (xypron.glpk@gmx.de). (Fixes: #34). - Add support for SSH proxy in class SshMasterConnection. - SshMasterConnection emit signal to GUI thread if it need a passphrase to decrypt a ssh key. GUI thread use input dialog to read a passphrase from user. - Add support for SSH proxy (HTTP and SSH) to X2Go Client GUI. - Clean some broker code. - It is possible to add several ssh keys from commandline in form: --ssh-key=[user@][server:][port:] it can be useful for TCE or login over broker. - Improve broker code, add support for "usebrokerpass" config variable to use broker pass for ssh auth on X2Go server. - Commandline options --broker-noauth. - Support for SSH broker. --broker-user removed, use username in broker url instead. - Reduce listen interval for ssh-tunnel to 100 msec. - Fix visibility of SSH-proxy box with direct RDP sessions. - SshProcess is only usable over SshMasterConnection. - Fixing SSH proxy support for Windows. - Hide system tray icon before close. - Fix error "Failed to resolve hostname" in plugin mode (Fixes: #55). - Do not show "RDP Settings" group box in plugin mode (Fixes: #56). [ Ricardo Diaz ] * New upstream version (3.99.3.0): - Add Spanish translation file. - Update Spanish translation file. -- Mike Gabriel Wed, 07 Nov 2012 16:07:43 +0100 x2goclient (3.99.2.2-0~x2go2) unstable; urgency=low * Add Conflicts/Replaces for x2goclient-gtk. -- Mike Gabriel Mon, 20 Aug 2012 09:58:47 +0200 x2goclient (3.99.2.2-0~x2go1) unstable; urgency=low [ Mike Gabriel ] * New upstream version (3.99.2.2): - Drop Encoding key from .desktop file (as it is deprecated according to latest FreeDesktop.org specs). - Correct spelling for mis-spelled work ,,authentication''. - Allow QMAKE_* parameters that are needed for hardening x2goclient (see http://wiki.debian.org/Hardening). - Provide CPPFLAGS for QMAKE_CFLAGS _and_ QMAKE_CXXFLAGS. Provide them as first build parameters. - Allow x2goclient to connect to user accounts that have other shells than /bin/sh and alike configured as default shell. Also: removal bashisms in shell execution commands. - X2Go resume session slot: double click on a selected session is supposed to resume that session. To make this feature functional for running sessions the session has to be suspended first. [ Oleksandr Shneyder ] * New upstream version (3.99.2.2): - Fixing X2Go Plugin - Cleaning code: double click on running session. Instead of using function "sleep" starting resume-session after suspend-session is returned. -- Mike Gabriel Fri, 10 Aug 2012 10:08:52 +0200 x2goclient (3.99.2.1-0~x2go1) unstable; urgency=low [ Oleksandr Shneyder ] * New upstream version (3.99.2.1): - Not starting smart card daemon before users are loaded in LDAP mode. - Merging onmainwindow_part*.cpp into onmainwindow.cpp - Support recent pulseuadio on windows - removing %USERPROFILE%\.x2go\pulse\.pulse\%COMPUTERNAME%-runtime\pid if exists under windows - --user= set username in session mode if this field is blank in session settings. - --autostart= launch "app" by session start in "published applications" mode [ Daniel Lindgren ] * New upstream version (3.99.2.1): - Swedish i18n update for published applications. [ Terje Andersen ] * New upstream version (3.99.2.1): - Norwegian (Bokmal) i18n update for published applications. [ Stefan Baur ] * New upstream version (3.99.2.1): - German i18n update for published applications. [ Mike Gabriel ] * New upstream version (3.99.2.1): - Add Ubuntu-2d (Unity) support to X2Go Client. -- Mike Gabriel Fri, 08 Jun 2012 12:52:07 +0200 x2goclient (3.99.2.0-0~x2go1) unstable; urgency=low [ Oleksandr Shneyder ] * New upstream version (3.99.2.0): - Support for "published applications". Sponsored by Stefan Baur (http://www.baur-itcs.de). - Command line argument "--session-conf=": path to alternative session config. - Fixed bug "light font colour on light background" by dark colour schema. - Make X2Go system tray icon not transparent. - Replace text on buttons "Application", "Share folder", "Suspend", "Terminate" with icons to fit in dialog window. - Support for SVG icons for published applications - Set "nofocus" policy for tool buttons. - Some improvements when using pgp card. - Setting TCP_NODELAY for sockets on reverse tunnel and ssh session. - Support for category X2Go-Top to display published applications on top of application menu. - Exporting PULSE_CLIENTCONFIG when running published applications. -- Mike Gabriel Wed, 04 Apr 2012 11:52:07 +0200 x2goclient (3.99.1.1-0~x2go1) unstable; urgency=low [ Oleksandr Shneyder ] * New upstream version (3.99.1.1): - not including on Q_OS_WIN platform. - not updating Xinerama configuration in "fullscreen" mode. - command line argument "--xinerama": use Xinerama by default. - improved support for use in TCE command line argument --thinclient - running without window manager command line argument --haltbt - button to shutdown the thin client - Fix comments in copyright headers. [ Mike Gabriel ] * New upstream version (3.99.1.1): - Update copyright year in about window. Including all translations. - Power button icon: make inner part transparent. Needed for people with a dark GUI theme. - Prettify x2goclient.pro. [ Mihai Moldovan ] * New upstream version (3.99.1.1): - Use the Mac OS X 10.5 SDK instead 10.6 to remain compatible with Leopard. - Add .gitignore file. - The default of a 10 seconds SSH connection timeout is pretty low, especially when using tcp_wrappers with the identd option turned on. Wait for a 60 seconds timeout. - On Mac OS X connect to Xserver via Unix file socket. - Properly set DISPLAY environment variable on Mac OS X. [ Daniel Lindgren ] * New upstream version (3.99.1.1): - Update/improve Swedish translation after testing x2goclient on Windows. -- Mike Gabriel Wed, 07 Mar 2012 20:42:36 +0100 x2goclient (3.99.1.0-0~x2go1) unstable; urgency=low [ Mike Gabriel ] * New upstream version (3.99.1.0): - Update German translation file (thanks to Stefan Baur). - Build .qm translation files on the fly during build. - Fix for zh_TW translation: add qt_zh_TW.qm file from Qt4.8. - Add language property to the French translation file. - Update qt_.qm files from Qt4.8 (as in current Debian sid). - Rename x2goclient_nb.ts to x2goclient_nb_no.ts. - Update all translation files (lupdate), translate unfinished translation tags in x2goclient_de.ts. - Provide empty translation file x2goclient_en.ts. - Fix misspelled word ,,Authentification'' -> ,,Authentication''. - Fix misspelled word ,,recieved'' -> ,,received''. - Update date and release version in man page. [ Mihai Moldovan ] * New upstream version (3.99.1.0): - Mac OS patch: Raise the stack space to 2MB for secondary threads. It previously used the 512KB system default. [ Daniel Lindgren ] * New upstream version (3.99.1.0): - Add Swedish translation file. - Fine-tune Swedish translation file. [ Terje Andersen ] * New upstream version (3.99.1.0): - Add Norwegian (Bokmal) translation. Qt4 lacks Norwegian/Bokmal support, so some of the widgets may stay in English. - Fine-tune/fix Norwegian (Bokmal) translation. [ Jan Engelhardt ] * New upstream version (3.99.1.0): - Use /cgi-bin/man/ path in web'ified man pages. - Use ,,${MAKE}'' instead of ,,make'' in Makefile. - Include in sshprocess.h to fix missing struct sockaddr_in. [ Oleksandr Shneyder ] * New upstream version (3.99.1.0): - Get new ports from x2goresume-session if reserved ports are busy - Fix segmentation fault by failed SSH connection to X2Go server -- Mike Gabriel Wed, 22 Feb 2012 14:49:49 +0100 x2goclient (3.99.0.6-0~x2go1) unstable; urgency=low [ Oleksandr Shneyder ] * New upstream version (3.99.0.6): - Update copyright section in ssmasterconnection.h/cpp and sshprocess.h/cpp. - Traditional Chinese(zh_TW) translation for x2goclient from Liu Arlo . -- Mike Gabriel Wed, 01 Feb 2012 13:52:40 +0100 x2goclient (3.99.0.5-0~x2go1) unstable; urgency=low [ Mike Gabriel ] * New upstream version (3.99.0.5): - Rename in human readable text strings ,,X2go'' to ,,X2Go''. - Fix version string on man page. [ Oleksandr Shneyder ] * New upstream version (3.99.0.5): - Waiting for SshMasterConnection thread to be finished before deleting it (segfault by wrong authentication fix). -- Mike Gabriel Fri, 27 Jan 2012 12:43:04 +0100 x2goclient (3.99.0.4-0~x2go1) unstable; urgency=low [ Oleksandr Shneyder ] * New upstream version (3.99.0.4): - Enabled support for Xinerama -- Mike Gabriel Wed, 18 Jan 2012 14:53:20 +0100 x2goclient (3.99.0.3-0~x2go4) unstable; urgency=low [ Mike Gabriel ] * Rename icon title in /debian/menu file. * Also split package dependencies for x2goplugin. * Add libxpm-dev as build-dependency. * Revert version number in version.h and x2goplugin.rc to 3.99.0.3. [ Guido Günther ] * Split package dependencies for SSH server/client. [ Oleksandr Shneyder ] * New upstream version (3.99.0.3): - LDAP: ssh port for every x2goserver can be specified in Server entry, parameter "l" - Change title of proxy window to session name - Change icon of proxy window (only on Linux) - Multi-display support: x2goclient can be configured to fit proxy window on one of the existing displays. - Multi-display support: support for xinerama (temporarily disabled--support in x2goagent needed) - Add -lXpm in project file. -- Mike Gabriel Wed, 18 Jan 2012 14:50:31 +0100 x2goclient (3.99.0.2-0~x2go1) unstable; urgency=low [ Oleksandr Shneyder ] * New upstream version (3.99.0.2): - QTcpSocket working not correct with some Antiviral software ( for example Avast) under windows. Fixing this by replacing it with Winsocks - Connectivity test dialog to use with a broker -- Mike Gabriel Fri, 25 Nov 2011 11:27:42 +0100 x2goclient (3.99.0.1-0~x2go1) unstable; urgency=low * New upstream version (3.99.0.1): - Set TCP_NODELAY (equals: turn Nagle off) for SSH graphical port forwarding tunnel. - Include cups/ppd.h in cupsprint.h, fixes build on Debian wheezy/sid. - Add build_man/clean_man stanzas to Makefile. * Explicitly use source format 3.0 (native). * Build-depend on libssh-dev (>=0.4.7). * Update menu file in /debian folder (rename title to ,,X2Go Client (Qt)''). * Do not run man2html from rules file anymore. -- Mike Gabriel Wed, 12 Oct 2011 11:11:50 +0200 x2goclient (3.99.0.0-0~x2go1) unstable; urgency=low [ Oleksandr Shneyder ] * fixed loadbalancing in LDAP mode on multiply X2Go servers * fixed session crash by pulling out of smart card -- Mike Gabriel Wed, 20 Jul 2011 16:33:08 +0200 x2goclient (3.0.1.21-0~x2go1) unstable; urgency=low * changes in windows plugin -- Oleksandr Shneyder Thu, 30 Jun 2011 18:45:25 +0200 x2goclient (3.0.1.20-0~x2go1) unstable; urgency=low * support menu * custom background * custom icon on broker auth dialog * fixed creation of desktop icons on windows -- Oleksandr Shneyder Fri, 08 Apr 2011 19:18:30 +0200 x2goclient (3.0.1.19-0~x2go1) unstable; urgency=low * Support to get sessions from for web broker -- Oleksandr Shneyder Thu, 29 Mar 2011 18:34:08 +0200 x2goclient (3.0.1.18-0~x2go3) unstable; urgency=low * Add ssh (server) as runtime dependency * React to Debian bug #627990, prefer man2html-base over man2html. * Use x2goumount-session instead of old x2goumount_session command. -- Mike Gabriel Thu, 14 Jul 2011 09:07:59 +0200 x2goclient (3.0.1.18-0~x2go2) unstable; urgency=low * adds man page skel (TODO: options) * fixes all open lintian issues -- Mike Gabriel Tue, 17 May 2011 20:16:55 +0200 x2goclient (3.0.1.18-0~x2go1) unstable; urgency=low * change of version numbering pattern * adds x2goclient-cli project as example file to x2goclient package -- Mike Gabriel Tue, 22 Mar 2011 01:50:27 +0100 x2goclient (3.01-18) unstable; urgency=low * Support for custom X-Servers under windows -- Oleksandr Shneyder Thu, 17 Feb 2011 18:15:03 +0100 x2goclient (3.01-17) unstable; urgency=low * Minimize X2Go Client to system tray thank Joachim Langenbach for patch -- Oleksandr Shneyder Thu, 27 Jan 2011 12:32:29 +0100 x2goclient (3.01-16) unstable; urgency=low * qtbrowserplugin sources shipped with x2goclient * removed x2goclient.pri, export "X2GO_CLIENT_TARGET=plugin" to configure x2goplugin -- Oleksandr Shneyder Thu, 13 Jan 2011 19:24:50 +0100 x2goclient (3.01-15) unstable; urgency=low * add support for libssh-0.4.7 -- Oleksandr Shneyder Tue, 04 Jan 2011 18:48:43 +0100 x2goclient (3.01-14) unstable; urgency=low * use libssh instead of ssh -- Oleksandr Shneyder Fri, 03 Dec 2010 18:31:45 +0000 x2goclient (3.01-13) unstable; urgency=low * workaround for "Full Screen" mode in windows * x2goplugin based on qtbrowserplugin * support for clipboard in windows -- Oleksandr Shneyder Tue, 03 Aug 2010 17:12:05 +0200 x2goclient (3.01-12) unstable; urgency=low * portable mode -- Oleksandr Shneyder Thu, 29 Jul 2010 17:43:06 +0200 x2goclient (3.01-11) unstable; urgency=low * plugin config options sound, exportfs, adsl, compression, quality, dpi, kbdlayout, kbdtype -- Oleksandr Shneyder Tue, 29 Jun 2010 18:12:48 +0200 x2goclient (3.01-10) unstable; urgency=low * plugin config options showstatusbar and showtoolbar -- Oleksandr Shneyder Thu, 24 Jun 2010 18:48:27 +0200 x2goclient (3.01-9) unstable; urgency=low * fixed dir export in LDAP mode -- Oleksandr Shneyder Tue, 08 Jun 2010 17:14:11 +0200 x2goclient (3.01-8) unstable; urgency=low * embeded mode for firefox plugin * fixed "host key varification failed" message * updated interface * support for fs encodings -- Oleksandr Shneyder Tue, 13 Apr 2010 18:15:30 +0200 x2goclient (3.01-7) unstable; urgency=low * fixed connection to localhost * fixed undefined shadow mode by ldap sessions -- Oleksandr Shneyder Mon, 01 Feb 2010 19:19:54 +0100 x2goclient (3.01-6) unstable; urgency=low * fixed ldap support * shadow sessions * xdmcp sessions * commandline option for printing in LDAP mode -- Oleksandr Shneyder Fri, 28 Jan 2010 19:38:11 +0100 x2goclient (3.01-5) unstable; urgency=low * fixed gpg-card with older gpg version -- Oleksandr Shneyder Fri, 27 Nov 2009 00:00:31 +0100 x2goclient (3.01-4) unstable; urgency=low * set x2goagents dpi option * fixed rsa/dsa keys with password * session limit error message * warning by terminating session * fixed help message * save pulseaudio client.conf and cookie on server * in session directory not in ~/.pulse/client.conf * (do not owerwrite local pulse settings for remote user) * copy pulse cookie-file to remote system * try to load module-native-protocol-tcp * dependency for openssh-server in deb * set keyboard layout by default * add ssh option ServerAliveInterval=300 * check if port free when starting tunnel for nxproxy * windows: * Start own build of X Server * Start one X server per x2goclient * Start own build of PulseAudio * Start one PulseAudio server per x2goclient * Start one sshd per x2goclient * printing and viewing pdf in windows using ShellExec * make x2goclient work if username have spaces and unicode symbols -- Oleksandr Shneyder Wed, 14 Oct 2009 10:10:25 +0200 x2goclient (3.01-3) unstable; urgency=low * smart card works with gpg 2.0.11-1 -- Oleksandr Shneyder Thu, 24 Sep 2009 21:31:45 +0200 x2goclient (3.01-2) unstable; urgency=low * Use x2goclient as SSH_ASKPASS program -- Oleksandr Shneyder Fri, 31 Jul 2009 19:49:02 +0200 x2goclient (3.01-1) unstable; urgency=low * create desktop icon * start rdesktop session * start LXDE session * fixed error "ssh password with special symbols" thank Phillip Krause -- Oleksandr Shneyder Mon, 15 Jun 2009 19:35:38 +0200 x2goclient (3.00-1) unstable; urgency=low * Client side printing support -- Oleksandr Shneyder Tue, 24 Feb 2009 21:50:45 +0100 x2goclient (2.99-3) unstable; urgency=low * make sshfs mount work if user home is not in /home/ -- Oleksandr Shneyder Mon, 02 Feb 2009 22:05:49 +0100 x2goclient (2.99-2) unstable; urgency=low * fixed ssh key in path with -- Oleksandr Shneyder Mon, 26 Jan 2009 23:15:46 +0100 x2goclient (2.99-1) unstable; urgency=low * PulseAudio support * you can use running arts or esd daemons * use blowfish cipher for ssh tunnels * reverse ssh tunnel for fs export (sshfs) -- Oleksandr Shneyder Thu, 15 Jan 2009 19:03:58 +0100 x2goclient (2.0.1-24) unstable; urgency=low * command line options: * --session= start session "session" * --user= preselect user "username" (LDAP mode) * --hide do not show x2goclient (start hidden) -- Oleksandr Shneyder Tue, 09 Dec 2008 21:30:07 +0100 x2goclient (2.0.1-23) unstable; urgency=low * fixed: use listed in ldap x2goserver for "x2gogetservers" request instead ldapserver itself * fixed: do not display error by initldap in slot_rereadUsers * fixed: libldap dependencies in package -- Oleksandr Shneyder Mon, 08 Dec 2008 22:28:27 +0100 x2goclient (2.0.1-22) unstable; urgency=low * xorg dependency in control file -- Oleksandr Shneyder Tue, 25 Nov 2008 19:21:18 +0100 x2goclient (2.0.1-21) unstable; urgency=low * fixed pass error with gpg card -- Oleksandr Shneyder Thu, 20 Nov 2008 19:10:33 +0100 x2goclient (2.0.1-20) unstable; urgency=low * fixed resizing by session selecting -- Oleksandr Shneyder Wed, 19 Nov 2008 18:56:10 +0100 x2goclient (2.0.1-19) unstable; urgency=low * Fixes in traslation -- Oleksandr Shneyder Tue, 04 Nov 2008 19:57:59 +0100 x2goclient (2.0.1-18) unstable; urgency=low * Fixed check for sudo config error -- Oleksandr Shneyder Mon, 13 Oct 2008 22:20:21 +0200 x2goclient (2.0.1-17) unstable; urgency=low * Fixed: command with arguments * Error massages (sudo config, can't execute command) -- Oleksandr Shneyder Thu, 09 Oct 2008 21:45:05 +0200 x2goclient (2.0.1-16) unstable; urgency=low * LDAP factor -- Oleksandr Shneyder Thu, 09 Oct 2008 21:52:21 +0200 x2goclient (2.0.1-15) unstable; urgency=low * Fixed sess_tv columns * Change Xmap for hildon -- Oleksandr Shneyder Wed, 01 Oct 2008 22:57:35 +0200 x2goclient (2.0.1-14) unstable; urgency=low * fixed editconnectiondialog -- Oleksandr Shneyder Wed, 01 Oct 2008 21:18:08 +0200 x2goclient (2.0.1-13) unstable; urgency=low * Fixed "black buttons" on button focus with new qt -- Oleksandr Shneyder Mon, 16 Jun 2008 21:08:01 +0000 x2goclient (2.0.1-12) unstable; urgency=low * Client ssh port in settings dialog * Sound system selections in session dialog * "Mini mode" for modes < "800x600" -- Oleksandr Shneyder Fri, 14 Mar 2008 21:03:48 +0100 x2goclient (2.0.1-11) unstable; urgency=low * Mac OS X support * Fixed Error '"visual != -1" in file itemviews/qheaderview.cpp' by compiling with qt >=4.3 * Fixed mouse tracking on SessionButton -- Oleksandr Shneyder Thu, 10 Jan 2008 21:54:24 +0100 x2goclient (2.0.1-10) unstable; urgency=low * russian translation -- Oleksandr Shneyder Mon, 1 Oct 2007 22:23:58 +0200 x2goclient (2.0.1-9) unstable; urgency=low * Added widget for ssh port select in editsessiondialog * ssh port to connect in command line options * client ssh port (for sshfs) in command line options -- Oleksandr Shneyder Fri, 21 Sep 2007 19:31:59 +0200 x2goclient (2.0.1-8) unstable; urgency=low * Fixed export directories with " " in path * Fixed SessionButton frame size by empty session * Compare session and display color depth * MS Windows support -- Oleksandr Shneyder Thu, 13 Sep 2007 19:30:59 +0200 x2goclient (2.0.1-7) unstable; urgency=low * esd support -- Oleksandr Shneyder Tue, 7 Aug 2007 18:33:32 +0200 x2goclient (2.0.1-6) unstable; urgency=low * OpenPGP smart cards support -- Oleksandr Shneyder Fri, 3 Aug 2007 19:40:27 +0200 x2goclient (2.0.1-5) unstable; urgency=low * extern auth (usb, smartcard) support -- Oleksandr Shneyder Tue, 26 Jun 2007 21:54:48 +0200 x2goclient (2.0.1-4) unstable; urgency=low * minimized reaction time by many LDAP users -- Oleksandr Shneyder Thu, 1 Mar 2007 21:15:14 +0100 x2goclient (2.0.1-3) unstable; urgency=low * Failover LDAP Server config * reload new users from LDAP -- Oleksandr Shneyder Thu, 1 Mar 2007 22:15:14 +0100 x2goclient (2.0.1-2) unstable; urgency=low * Updated German translation * Add "wrong password!" in ssh error message -- Oleksandr Shneyder Mon, 26 Feb 2007 20:25:02 +0100 x2goclient (2.0.1-1) unstable; urgency=low * Initial release -- Oleksandr Shneyder Fri, 2 Feb 2007 21:36:59 +0100 x2goclient-4.0.1.1/debian/compat0000644000000000000000000000000212214040350013226 0ustar 7 x2goclient-4.0.1.1/debian/control0000644000000000000000000000626312214040350013442 0ustar Source: x2goclient Section: x11 Priority: extra Maintainer: X2Go Developers Uploaders: Oleksandr Shneyder , Mike Gabriel , Build-Depends: debhelper (>= 7.0.50~), libqt4-dev, libldap2-dev, libssh-dev (>= 0.4.7), libcups2-dev, libx11-dev, libxpm-dev, man2html-base | man2html, Standards-Version: 3.9.4 Homepage: http://code.x2go.org/releases/source/x2goclient Vcs-Git: git://code.x2go.org/x2goclient.git Vcs-Browser: http://code.x2go.org/gitweb?p=x2goclient.git;a=summary Package: x2goclient Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, libssh-4 (>= 0.4.7), openssh-client, nxproxy, Recommends: openssh-server, rdesktop | freerdp-x11, Suggests: pinentry-x2go, Conflicts: x2goclient-gtk, Replaces: x2goclient-gtk, Description: X2Go Client application (Qt4) X2Go is a serverbased computing environment with - session resuming - low bandwidth support - LDAP support - client-side mass storage mounting support - client-side printing support - audio support - authentication by smartcard and USB stick . x2goclient is a graphical client (Qt4) for the X2Go system. You can use it to connect to running sessions and start new sessions. Package: x2goclient-dbg Priority: extra Section: debug Architecture: any Depends: ${misc:Depends}, x2goclient (= ${binary:Version}) Description: X2Go Client application (Qt4), debug symbols X2Go is a serverbased computing environment with - session resuming - low bandwidth support - LDAP support - client-side mass storage mounting support - client-side printing support - audio support - authentication by smartcard and USB stick . x2goclient is a graphical client (Qt4) for the X2Go system. You can use it to connect to running sessions and start new sessions . This package provides the debug symbols for the x2goclient application. Package: x2goplugin Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, openssh-client, nxproxy, Recommends: openssh-server, rdesktop | freerdp-x11, Suggests: pinentry-x2go, Description: X2Go Client (Qt4) as browser plugin X2Go is a serverbased computing environment with - session resuming - low bandwidth support - LDAP support - client-side mass storage mounting support - client-side printing support - audio support - authentication by smartcard and USB stick . x2goclient is a graphical client (qt4) for the X2Go system. You can use it to connect to running sessions and start new sessions. . This package provides x2goclient as QtBrowser-based Mozilla plugin. Package: x2goplugin-provider Architecture: all Depends: ${misc:Depends}, Recommends: httpd | apache2, Suggests: x2goplugin, Description: Provide X2Go Plugin via Apache webserver X2Go is a serverbased computing environment with - session resuming - low bandwidth support - LDAP support - client-side mass storage mounting support - client-side printing support - audio support - authentication by smartcard and USB stick . This package provides an example configuration for providing the X2Go Plugin via an Apache webserver. x2goclient-4.0.1.1/debian/copyright0000644000000000000000000001325212214040350013766 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: x2goclient Upstream-Contact: Oleksandr Shneyder Source: http://wiki.x2go.org Files: * Copyright: 2005-2012, Oleksandr Shneyder 2005-2012, Heinz-Markus Graesing 2005-2012, obviously nice - http://www.obviouslynice.de License: GPL-2+ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this package; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA . On Debian systems, the full text of the GNU General Public License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. Comment: Quoting from README.OpenSSL-Exception... . * In addition, as a special exception, the copyright holders give * permission to link the code of portions of this program with the * OpenSSL library under certain conditions as described in each * individual source file, and distribute linked combinations * including the two. * You must obey the GNU General Public License in all respects * for all of the code used other than OpenSSL. If you modify * file(s) with this exception, you may extend this exception to your * version of the file(s), but you are not obligated to do so. If you * do not wish to do so, delete this exception statement from your * version. If you delete this exception statement from all source * files in the program, then also delete it here. Files: qtbrowserplugin-2.4_1-opensource/src/* Copyright: 2009, Nokia Corporation and/or its subsidiary(-ies). License: BSD-3-clause Contact: Nokia Corporation (qt-info@nokia.com) . This file is part of a Qt Solutions component. . You may use this file under the terms of the BSD license as follows: . "Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." Files: Makefile.docupload Copyright: 2010-2012, Mike Gabriel License: GPL-3 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program. If not, see . . On Debian systems, the full text of the GNU General Public License version 3 can be found in the file `/usr/share/common-licenses/GPL-3'. Files: debian/* Copyright: 2007, Oleksandr Shneyder 2011-2012, Reinhard Tartler 2011-2013, Mike Gabriel License: GPL-2+ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this package; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA . On Debian systems, the full text of the GNU General Public License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. x2goclient-4.0.1.1/debian/menu0000644000000000000000000000030212214040350012712 0ustar ?package(x2goclient):\ needs="X11"\ section="Applications/Network/Communication"\ title="X2Go Client (Qt)"\ icon="/usr/share/x2goclient/icons/x2goclient.xpm"\ command="/usr/bin/x2goclient" x2goclient-4.0.1.1/debian/rules0000755000000000000000000000077512214040350013121 0ustar #!/usr/bin/make -f export CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS) export CFLAGS:=$(shell dpkg-buildflags --get CFLAGS) export CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS) export LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS) %: dh $@ --parallel override_dh_auto_clean: dh_auto_clean # clean stray .qm files that are not handled by clean rule in upstream Makefile rm -Rf x2goclient_*.qm override_dh_auto_install: override_dh_strip: dh_strip -p x2goclient --dbg-package=x2goclient-dbg x2goclient-4.0.1.1/debian/source/format0000644000000000000000000000001512214040350014537 0ustar 3.0 (native) x2goclient-4.0.1.1/debian/x2goclient.dirs0000644000000000000000000000034412214040350014772 0ustar usr/bin/ usr/share/x2goclient usr/share/x2goclient/icons usr/share/icons/hicolor/128x128/apps/ usr/share/icons/hicolor/16x16/apps/ usr/share/icons/hicolor/64x64/apps/ usr/share/icons/hicolor/32x32/apps/ usr/share/applications/ x2goclient-4.0.1.1/debian/x2goclient.docs0000644000000000000000000000001612214040350014755 0ustar HOWTO.GPGCARD x2goclient-4.0.1.1/debian/x2goclient.examples0000644000000000000000000000001312214040350015640 0ustar examples/* x2goclient-4.0.1.1/debian/x2goclient.install0000644000000000000000000000104612214040350015477 0ustar client_build/x2goclient usr/bin desktop/x2goclient.desktop usr/share/applications/ icons/x2goclient.xpm usr/share/x2goclient/icons/ icons/128x128/x2goclient.png usr/share/x2goclient/icons/ icons/128x128/x2gosession.png usr/share/x2goclient/icons/ icons/128x128/x2goclient.png usr/share/icons/hicolor/128x128/apps/ icons/16x16/x2goclient.png usr/share/icons/hicolor/16x16/apps/ icons/64x64/x2goclient.png usr/share/icons/hicolor/64x64/apps/ icons/32x32/x2goclient.png usr/share/icons/hicolor/32x32/apps/ x2goclient-4.0.1.1/debian/x2goclient.manpages0000644000000000000000000000002612214040350015621 0ustar man/man1/x2goclient.1 x2goclient-4.0.1.1/debian/x2goplugin.dirs0000644000000000000000000000003112214040350015003 0ustar usr/lib/mozilla/plugins/ x2goclient-4.0.1.1/debian/x2goplugin.install0000644000000000000000000000006712214040350015521 0ustar plugin_build/libx2goplugin.so usr/lib/mozilla/plugins/ x2goclient-4.0.1.1/debian/x2goplugin-provider.dirs0000644000000000000000000000005412214040350016640 0ustar etc/x2go/plugin-provider etc/apache2/conf.d x2goclient-4.0.1.1/debian/x2goplugin-provider.install0000644000000000000000000000014712214040350017350 0ustar provider/etc/x2goplugin-apache.conf etc/x2go/ provider/share/x2goplugin.html etc/x2go/plugin-provider/ x2goclient-4.0.1.1/debian/x2goplugin-provider.links0000644000000000000000000000022212214040350017014 0ustar etc/x2go/x2goplugin-apache.conf etc/apache2/conf.d/x2goplugin.conf etc/x2go/plugin-provider/x2goplugin.html usr/share/x2go/plugin/x2goplugin.html x2goclient-4.0.1.1/desktop/x2goclient.desktop0000644000000000000000000000040012214040350015722 0ustar [Desktop Entry] Version=1.0 Type=Application Name=X2Go Client Exec=x2goclient Icon=x2goclient StartupWMClass=x2goclient X-Window-Icon=x2goclient X-HildonDesk-ShowInToolbar=true X-Osso-Type=application/x-executable Terminal=false Categories=Qt;KDE;Network; x2goclient-4.0.1.1/Doxyfile0000644000000000000000000002402012214040350012312 0ustar # Doxyfile 1.4.1-KDevelop #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- PROJECT_NAME = x2goclient PROJECT_NUMBER = $VERSION$ OUTPUT_DIRECTORY = CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English USE_WINDOWS_ENCODING = NO BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = YES ABBREVIATE_BRIEF = "The $name class" \ "The $name widget" \ "The $name file" \ is \ provides \ specifies \ contains \ represents \ a \ an \ the ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = YES STRIP_FROM_PATH = /home/admin/ STRIP_FROM_INC_PATH = SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO DETAILS_AT_TOP = NO INHERIT_DOCS = YES DISTRIBUTE_GROUP_DOC = NO TAB_SIZE = 8 ALIASES = OPTIMIZE_OUTPUT_FOR_C = NO OPTIMIZE_OUTPUT_JAVA = NO SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- EXTRACT_ALL = NO EXTRACT_PRIVATE = NO EXTRACT_STATIC = NO EXTRACT_LOCAL_CLASSES = YES EXTRACT_LOCAL_METHODS = NO HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = NO HIDE_FRIEND_COMPOUNDS = NO HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO CASE_SENSE_NAMES = YES HIDE_SCOPE_NAMES = NO SHOW_INCLUDE_FILES = YES INLINE_INFO = YES SORT_MEMBER_DOCS = YES SORT_BRIEF_DOCS = NO SORT_BY_SCOPE_NAME = NO GENERATE_TODOLIST = YES GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES GENERATE_DEPRECATEDLIST= YES ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES SHOW_DIRECTORIES = NO FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- QUIET = NO WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_NO_PARAMDOC = NO WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- INPUT = . FILE_PATTERNS = *.c \ *.cc \ *.cxx \ *.cpp \ *.c++ \ *.java \ *.ii \ *.ixx \ *.ipp \ *.i++ \ *.inl \ *.h \ *.hh \ *.hxx \ *.hpp \ *.h++ \ *.idl \ *.odl \ *.cs \ *.php \ *.php3 \ *.inc \ *.m \ *.mm \ *.dox \ *.C \ *.CC \ *.C++ \ *.II \ *.I++ \ *.H \ *.HH \ *.H++ \ *.CS \ *.PHP \ *.PHP3 \ *.M \ *.MM \ *.C \ *.H \ *.tlh \ *.diff \ *.patch \ *.moc \ *.xpm \ *.dox RECURSIVE = yes EXCLUDE = EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = EXAMPLE_PATH = EXAMPLE_PATTERNS = * EXAMPLE_RECURSIVE = NO IMAGE_PATH = INPUT_FILTER = FILTER_PATTERNS = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- SOURCE_BROWSER = NO INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES REFERENCED_BY_RELATION = YES REFERENCES_RELATION = YES VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = NO COLS_IN_ALPHA_INDEX = 5 IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = .build_doxygen/doxygen/html HTML_FILE_EXTENSION = .html HTML_HEADER = HTML_FOOTER = HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO CHM_FILE = HHC_LOCATION = GENERATE_CHI = NO BINARY_TOC = NO TOC_EXPAND = NO DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 4 GENERATE_TREEVIEW = NO TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = NO LATEX_OUTPUT = .build_doxygen/doxygen/latex LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex COMPACT_LATEX = NO PAPER_TYPE = a4wide EXTRA_PACKAGES = LATEX_HEADER = PDF_HYPERLINKS = NO USE_PDFLATEX = NO LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = NO RTF_OUTPUT = .build_doxygen/doxygen/rtf COMPACT_RTF = NO RTF_HYPERLINKS = NO RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = YES MAN_OUTPUT = .build_doxygen/man MAN_EXTENSION = .3 MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- GENERATE_XML = NO XML_OUTPUT = .build_doxygen/doxygen/xml XML_SCHEMA = XML_DTD = XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- GENERATE_PERLMOD = NO PERLMOD_LATEX = NO PERLMOD_PRETTY = YES PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = PREDEFINED = EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- TAGFILES = GENERATE_TAGFILE = x2goclient.tag ALLEXTERNALS = NO EXTERNAL_GROUPS = YES PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- CLASS_DIAGRAMS = YES HIDE_UNDOC_RELATIONS = YES HAVE_DOT = NO CLASS_GRAPH = YES COLLABORATION_GRAPH = YES GROUP_GRAPHS = YES UML_LOOK = NO TEMPLATE_RELATIONS = NO INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES CALL_GRAPH = NO GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES DOT_IMAGE_FORMAT = png DOT_PATH = DOTFILE_DIRS = MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1024 MAX_DOT_GRAPH_DEPTH = 1000 DOT_TRANSPARENT = NO DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO x2goclient-4.0.1.1/editconnectiondialog.cpp0000644000000000000000000001220112214040350015473 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "editconnectiondialog.h" #include "x2goclientconfig.h" #include "x2gologdebug.h" #include "onmainwindow.h" #include #include #include "sessionwidget.h" #include "sharewidget.h" #include "connectionwidget.h" #include "settingswidget.h" EditConnectionDialog::EditConnectionDialog ( QString id, QWidget * par, int ind,Qt::WFlags f ) : QDialog ( par,f ) { QVBoxLayout* ml=new QVBoxLayout ( this ); #ifdef Q_WS_HILDON ml->setMargin ( 2 ); #endif fr=new QTabWidget ( this ); ml->addWidget ( fr ); ONMainWindow* parent= ( ONMainWindow* ) par; QFont fnt=font(); if ( parent->retMiniMode() ) #ifdef Q_WS_HILDON fnt.setPointSize ( 10 ); #else fnt.setPointSize ( 9 ); #endif setFont ( fnt ); sessSet=new SessionWidget ( id,parent ); conSet=new ConnectionWidget ( id,parent ); otherSet=new SettingsWidget ( id,parent ); exportDir=new ShareWidget ( id,parent ); fr->addTab ( sessSet,tr ( "&Session" ) ); fr->addTab ( conSet,tr ( "&Connection" ) ); fr->addTab ( otherSet,tr ( "&Settings" ) ); fr->addTab ( exportDir,tr ( "&Shared folders" ) ); QPushButton* ok=new QPushButton ( tr ( "&OK" ),this ); QPushButton* cancel=new QPushButton ( tr ( "&Cancel" ),this ); QPushButton* def=new QPushButton ( tr ( "Defaults" ),this ); QHBoxLayout* bLay=new QHBoxLayout(); bLay->setSpacing ( 5 ); bLay->addStretch(); bLay->addWidget ( ok ); bLay->addWidget ( cancel ); bLay->addWidget ( def ); ml->addLayout ( bLay ); #ifdef Q_WS_HILDON bLay->setMargin ( 2 ); #endif setSizeGripEnabled ( true ); setWindowIcon ( QIcon ( parent->iconsPath ( "/32x32/edit.png" ) ) ); connect ( ok,SIGNAL ( clicked() ),this,SLOT ( accept() ) ); connect ( cancel,SIGNAL ( clicked() ),this,SLOT ( reject() ) ); connect ( def,SIGNAL ( clicked() ),this,SLOT ( slot_default() ) ); connect ( sessSet,SIGNAL ( nameChanged ( const QString & ) ),this, SLOT ( slot_changeCaption ( const QString& ) ) ); connect ( this,SIGNAL ( accepted() ),this,SLOT ( slot_accepted() ) ); connect (sessSet, SIGNAL(directRDP(bool)), this, SLOT(slot_directRDP(bool))); connect (sessSet, SIGNAL(settingsChanged(QString,QString,QString)), otherSet, SLOT(setServerSettings(QString,QString,QString))); ok->setDefault ( true ); #ifdef Q_WS_HILDON QSize sz=ok->sizeHint(); sz.setWidth ( ( int ) ( sz.width() /1.5 ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); ok->setFixedSize ( sz ); sz=cancel->sizeHint(); sz.setWidth ( ( int ) ( sz.width() ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); cancel->setFixedSize ( sz ); sz=def->sizeHint(); sz.setWidth ( ( int ) ( sz.width() ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); def->setFixedSize ( sz ); #endif if ( parent->retMiniMode() ) setContentsMargins ( 3,3,3,3 ); fr->setCurrentIndex ( ind ); slot_changeCaption(sessSet->sessionName()); #ifdef Q_OS_LINUX sessSet->slot_rdpDirectClicked(); #endif } EditConnectionDialog::~EditConnectionDialog() {} void EditConnectionDialog::slot_changeCaption ( const QString& newName ) { setWindowTitle ( tr ( "Session preferences - " ) +newName ); } void EditConnectionDialog::slot_accepted() { conSet->saveSettings(); exportDir->saveSettings(); otherSet->saveSettings(); sessSet->saveSettings(); } void EditConnectionDialog::slot_default() { switch ( fr->currentIndex() ) { case 0: { sessSet->setDefaults(); } break; case 1: { conSet->setDefaults(); } break; case 2: { otherSet->setDefaults(); } break; case 3: { exportDir->setDefaults(); } break; } } #ifdef Q_OS_LINUX void EditConnectionDialog::slot_directRDP(bool direct) { fr->setTabEnabled(1,!direct); fr->setTabEnabled(3,!direct); otherSet->setDirectRdp(direct); } #endif x2goclient-4.0.1.1/editconnectiondialog.h0000644000000000000000000000432712214040350015152 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef EDITCONNECTIONDIALOG_H #define EDITCONNECTIONDIALOG_H #include "x2goclientconfig.h" #include #include class QLineEdit; class QPushButton; class QCheckBox; class QSpinBox; class QComboBox; class QRadioButton; class QSlider; class QLabel; class QTabWidget; class ONMainWindow; class QStandardItemModel; class QTreeView; /** @author Oleksandr Shneyder */ class SessionWidget; class ConnectionWidget; class SettingsWidget; class ShareWidget; class EditConnectionDialog : public QDialog { Q_OBJECT public: EditConnectionDialog ( QString id, QWidget * par, int ind=0, Qt::WFlags f = 0 ); ~EditConnectionDialog(); private: QTabWidget *fr; SessionWidget* sessSet; ConnectionWidget* conSet; SettingsWidget* otherSet; ShareWidget* exportDir; private slots: void slot_changeCaption ( const QString& newName ); void slot_accepted(); void slot_default(); #ifdef Q_OS_LINUX void slot_directRDP(bool direct); #endif }; #endif x2goclient-4.0.1.1/examples/x2goclient-cli0000755000000000000000000003222512214040350015201 0ustar #!/usr/bin/perl ############################################################################ # Copyright (C) 2006-2012 by Oleksandr Shneyder # # oleksandr.shneyder@obviously-nice.de # # # # This program is free software; you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ use File::Path; use Proc::Simple; use Term::ReadPassword; use Getopt::Long; use strict; my $user; my $server; my $geometry="fullscreen"; my $link="lan"; my $pack="16m-jpeg-9"; my $type="unix-kde"; my $stype="desktop"; my $kbdlay="us"; my $kbdtype="pc105/us"; my $setkbd="0"; my $accept=0; my $sound=1; my $cmd="startkde"; my $ssh_key=0; my $port="22"; system ("rm -rf ~/.x2go/ssh/askpass*"); sub printpass { my $prog=shift; my $pass=shift; open (F,">$prog") or die "Couldn't open $prog for writing"; print F '#!/usr/bin/perl $param=shift;'; print F " open (F,\">$prog.log\");"; print F ' print F $param; close (F); if($param =~ m/RSA key/) {'; if($accept){ print F 'print "yes\n";';} else{ print F 'print "no\n";';} print F ' } else {'; print F " print \"$pass\\n\"; }"; close(F); chmod (0700, $prog); } sub checkstat { my $prog=shift; open (F,"<$prog.log") or return; my @outp; my $ln=; for(my $i=0;$ln;$i++) { @outp[$i]=$ln; $ln=; } close(F); if(join(" ",@outp) =~ m/Are you sure you want to continue connecting/) { print "@outp[0]@outp[1]"; print "If you are sure you want to continue connecting, please launch this programm with --add-to-known-hosts yes\n"; exit; } } sub hidepass { my $prog=shift; open (F,">$prog") or die "Couldn't open $prog for writing"; print F "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; close(F); } my $pack_methods= "nopack 8 64 256 512 4k 32k 64k 256k 2m 16m 256-rdp 256-rdp-compressed 32k-rdp 32k-rdp-compressed 64k-rdp 64k-rdp-compressed 16m-rdp 16m-rdp-compressed rfb-hextile rfb-tight rfb-tight-compressed 8-tight 64-tight 256-tight 512-tight 4k-tight 32k-tight 64k-tight 256k-tight 2m-tight 16m-tight 8-jpeg-% 64-jpeg 256-jpeg 512-jpeg 4k-jpeg 32k-jpeg 64k-jpeg 256k-jpeg 2m-jpeg 16m-jpeg-% 8-png-jpeg-% 64-png-jpeg 256-png-jpeg 512-png-jpeg 4k-png-jpeg 32k-png-jpeg 64k-png-jpeg 256k-png-jpeg 2m-png-jpeg 16m-png-jpeg-% 8-png-% 64-png 256-png 512-png 4k-png 32k-png 64k-png 256k-png 2m-png 16m-png-% 16m-rgb-% 16m-rle-%"; sub printargs { print "Usage: $0 --user --server [Options]\nOptions:\ --help Print this message\ --help-pack Print availabel pack methods --user Connect as user 'username'\ --server Connect to 'hostname'\ --command Run command 'cmd', default value 'startkde' --port SSH port, default 22 --ssh-key Us 'fname' as a key for ssh connection --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established, default value 'no' --use-sound Start sound server and ssh tunel for sound connections, default value 'yes' nxagent options: --geometry x Set window size, default value 'fullscreen' --link Set link type, default 'lan' --pack Use pack method, default '16m-jpeg-9' --session-type Session type, 'desktop' or 'application' default 'desktop' --kbd-layout Use keyboard layout, default 'us' --kbd-type Set Keyboard type, default 'pc105/us'\n"; exit; } sub printpack { my $m=$pack_methods; $m=~s/%/[0-9]/g; print "$m\n"; exit; } sub check_pack { my $p=shift; if($p =~ m/%/) { return 0; } my @arr=split("-","$p"); my $pm=$pack_methods; if(@arr>1) { my $qa=@arr[@arr-1]; my @vals=unpack('cc',$qa); if($qa ge '0' && $qa le '9' && @vals == 1) { $pm=~s/%/$qa/g; } } my @met=split("\n","$pm"); for(my $i=0;$i<@met;$i++) { if(@met[$i] eq $p) { return 1; } } return 0; } sub getindex { my @sess=@_; print("Number\tStatus\t\tCreation time\t\tDisplay\tClient IP\n"); for(my $i=1;$i<=@sess;$i++) { my @vals=split('\\|',"@sess[$i-1]"); my $status=@vals[4]; if(@vals[4] eq 'S') { $status='Suspended' } elsif(@vals[4] eq 'R') { $status='Running ' } print "$i)\t$status\t@vals[5]\t@vals[2]\t@vals[7]\n"; } print "Enter numer of session to resume or 'n' to start new session: "; my $answ=; chomp($answ); if($answ > 0 && $answ <= @sess) { my @vals=split('\\|',"@sess[$answ-1]"); if(@vals[4] eq 'R') { print("Session is already running on @vals[7], continue? (y/n): "); my $nansw=; chomp($nansw); if($nansw eq 'y') { return $answ; } else { return -1; } } else { return $answ; } } elsif ($answ eq "n") { return 0; } else { print "Input Error\n"; return -1; } } GetOptions("user=s" => \$user, "server=s" => \$server, "command=s" => \$cmd, "port=s" => \$port, "ssh-key=s" => \$ssh_key, "add-to-known-hosts=s" => \$accept, "use-sound=s" => \$sound, "geometry=s" => \$geometry, "link=s" => \$link, "pack=s" => \$pack, "session-type=s" => \$stype, "kbd-layout=s" => \$kbdlay, "kbd-type=s" => \$kbdtype, 'help-pack' => \&printpack, 'help' => \&printargs) or printargs; printargs unless (($user and $server)); if($ssh_key) { if ( ! -e $ssh_key) { print "Error, $ssh_key not exists\n"; exit; } } if($kbdlay or $kbdtype) { $setkbd=1; } if(($link ne "modem" )&&($link ne "isdn")&&($link ne "adsl")&&($link ne "wan")&&($link ne "lan")) { print "Error parsing command line, wrong \"link\" argument\n"; printargs; exit; } if(! check_pack($pack) ) { print "Error parsing command line, wrong \"pack\" argument\n"; printargs; exit; } if($accept) { if($accept eq "yes") { $accept=1; } elsif($accept eq "no") { $accept=0; } else { print "Error parsing command line, wrong \"add-to-known-hosts\" argument\n"; printargs; exit; } } if($sound != 1) { if($sound eq "yes") { $sound=1; } elsif($sound eq "no") { $sound=0; } else { print "Error parsing command line, wrong \"use-sound\" argument\n"; printargs; exit; } } my $nxroot="$ENV{'HOME'}/.x2go"; my $dirpath="$nxroot/ssh"; eval { mkpath($dirpath) }; if ($@) { print "Couldn't create $dirpath: $@"; exit; } my $askpass="$dirpath/askpass"; my $pass; my $sessions; if(!$ssh_key) { $pass=read_password('Password:'); printpass $askpass,$pass; $sessions=`DISPLAY=:0 SSH_ASKPASS=$askpass setsid ssh -p $port $user\@$server "export HOSTNAME&&x2golistsessions"`; hidepass $askpass; checkstat $askpass; } else { $sessions=`ssh -p $port -i $ssh_key $user\@$server "export HOSTNAME&&x2golistsessions"`; } my @sess=split("\n","$sessions"); my $newses=0; my $snum=-1;#index of session+1,-1 - error, -0 - new session if (@sess == 0) { $newses=1; } else { my @lines=split('\\|',"@sess[0]"); my $status=@lines[4]; if($status eq 'S' && @sess == 1) { $snum=0; } else { while($snum==-1) { $snum=getindex(@sess); } if($snum == 0) { $newses=1; } else { $snum--; } } } my $disp; my $snd_port; my $gr_port; my $cookie; my $agentpid; my $sname; my $t="D"; if( $stype eq "application" ) { $t="R"; } if($newses) { my $outp; if(! $ssh_key) { printpass $askpass,$pass; $outp=`DISPLAY=:0 SSH_ASKPASS=$askpass setsid ssh -p $port $user\@$server "x2gostartagent $geometry $link $pack $type $kbdlay $kbdtype $setkbd $t"`; hidepass $askpass; checkstat $askpass; } else { $outp=`ssh -p $port -i $ssh_key $user\@$server "x2gostartagent $geometry $link $pack $type $kbdlay $kbdtype $setkbd $t"`; } my @lines=split("\n","$outp"); $disp=@lines[0]; $cookie=@lines[1]; $agentpid=@lines[2]; $sname=@lines[3]; $gr_port=@lines[4]; $snd_port=@lines[5]; # print ":$disp $cookie $agentpid $sname $gr_port $snd_port\n"; } else { my @lines=split('\\|',"@sess[$snum]"); $agentpid=@lines[0]; $sname=@lines[1]; $disp=@lines[2]; my $status=@lines[4]; $cookie=@lines[6]; $gr_port=@lines[8]; $snd_port=@lines[9]; if($status eq 'R') { if(! $ssh_key) { printpass $askpass,$pass; system("DISPLAY=:0 SSH_ASKPASS=$askpass setsid ssh -p $port $user\@$server \"setsid x2gosuspend-session $sname\""); hidepass $askpass; checkstat $askpass; } else { system("ssh -p $port -i $ssh_key $user\@$server \"setsid x2gosuspend-session $sname\""); } sleep (1); } if(! $ssh_key) { printpass $askpass,$pass; system("DISPLAY=:0 SSH_ASKPASS=$askpass setsid ssh -p $port $user\@$server \"setsid x2goresume-session $sname $geometry $link $pack $kbdlay $kbdtype $setkbd\""); hidepass $askpass; checkstat $askpass; } else { system("ssh -p $port -i $ssh_key $user\@$server \"setsid x2goresume-session $sname $geometry $link $pack $kbdlay $kbdtype $setkbd\""); } } my $tunnel = Proc::Simple->new(); my $snd_tun; my $snd_server; if($sound) { $snd_tun= Proc::Simple->new(); $snd_server= Proc::Simple->new(); $snd_server->start("artsd -u -N -p $snd_port"); } if( !$ssh_key) { printpass $askpass,$pass; $tunnel->start("DISPLAY=:0 SSH_ASKPASS=$askpass setsid ssh -p $port -N -L $gr_port:localhost:$gr_port $user\@$server"); if($sound) { $snd_tun->start("DISPLAY=:0 SSH_ASKPASS=$askpass setsid ssh -p $port -N -R $snd_port:localhost:$snd_port $user\@$server"); } } else { $tunnel->start("ssh -p $port -i $ssh_key -N -L $gr_port:localhost:$gr_port $user\@$server"); if($sound) { $snd_tun->start("ssh -p $port -i $ssh_key -N -R $snd_port:localhost:$snd_port $user\@$server"); } } sleep 2; $dirpath="$nxroot/S-$sname"; eval { mkpath($dirpath) }; if ($@) { print "Couldn't create $dirpath: $@"; hidepass $askpass; exit; } my $nx_host="nx/nx,composite=1,root=$nxroot,connect=localhost,cookie=$cookie,port=$gr_port,errors=$dirpath/session"; open (FILE,">$dirpath/options")or die "Couldnt't open $dirpath/options for writing"; print FILE "$nx_host:$disp"; close (FILE); my $proxy = Proc::Simple->new(); $proxy->start("LD_LIBRARY_PATH=\$X2GO_LIB nxproxy -S nx/nx,options=$dirpath/options:$disp 2>>$dirpath/session"); if($newses) { if(! $ssh_key) { system("DISPLAY=:0 SSH_ASKPASS=$askpass setsid ssh -p $port $user\@$server \"setsid x2goruncommand $disp $agentpid $sname $snd_port $cmd arts $t >& /dev/null & exit \""); } else { system("ssh -p $port -i $ssh_key $user\@$server \"setsid x2goruncommand $disp $agentpid $sname $snd_port $cmd arts $t>& /dev/null & exit \""); } } #hidepass $askpass; #checkstat $askpass; while($proxy->poll()) { sleep(1); } $tunnel->kill(); if($sound) { $snd_server->kill(); $snd_tun->kill(); } system ("rm -rf ~/.x2go/ssh/askpass*"); x2goclient-4.0.1.1/exportdialog.cpp0000644000000000000000000001221612214040350014015 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "x2goclientconfig.h" #include "exportdialog.h" #include "editconnectiondialog.h" #include #include #include #include #include "x2gosettings.h" #include #include #include #include #include "sessionbutton.h" #include "onmainwindow.h" #include ExportDialog::ExportDialog ( QString sid,QWidget * par, Qt::WFlags f ) : QDialog ( par,f ) { sessionId=sid; QVBoxLayout* ml=new QVBoxLayout ( this ); QFrame *fr=new QFrame ( this ); QHBoxLayout* frLay=new QHBoxLayout ( fr ); parent= ( ONMainWindow* ) par; QPushButton* cancel=new QPushButton ( tr ( "&Cancel" ),this ); QHBoxLayout* bLay=new QHBoxLayout(); sessions=new QListView ( fr ); frLay->addWidget ( sessions ); exportDir=new QPushButton ( tr ( "&share" ),fr ); editSession=new QPushButton ( tr ( "&Preferences ..." ),fr ); newDir=new QPushButton ( tr ( "&Custom folder ..." ),fr ); QVBoxLayout* actLay=new QVBoxLayout(); actLay->addWidget ( exportDir ); actLay->addWidget ( editSession ); actLay->addWidget ( newDir ); actLay->addStretch(); frLay->addLayout ( actLay ); QShortcut* sc=new QShortcut ( QKeySequence ( tr ( "Delete","Delete" ) ), this ); connect ( cancel,SIGNAL ( clicked() ),this,SLOT ( close() ) ); connect ( sc,SIGNAL ( activated() ),exportDir,SIGNAL ( clicked() ) ); connect ( editSession,SIGNAL ( clicked() ),this,SLOT ( slot_edit() ) ); connect ( newDir,SIGNAL ( clicked() ),this,SLOT ( slotNew() ) ); connect ( exportDir,SIGNAL ( clicked() ),this,SLOT ( slot_accept() ) ); bLay->setSpacing ( 5 ); bLay->addStretch(); bLay->addWidget ( cancel ); ml->addWidget ( fr ); ml->addLayout ( bLay ); fr->setFrameStyle ( QFrame::StyledPanel | QFrame::Raised ); fr->setLineWidth ( 2 ); setSizeGripEnabled ( true ); setWindowTitle ( tr ( "share folders" ) ); connect ( sessions,SIGNAL ( clicked ( const QModelIndex& ) ), this,SLOT ( slot_activated ( const QModelIndex& ) ) ); connect ( sessions,SIGNAL ( doubleClicked ( const QModelIndex& ) ), this,SLOT ( slot_dclicked ( const QModelIndex& ) ) ); loadSessions(); } ExportDialog::~ExportDialog() {} void ExportDialog::loadSessions() { QStringListModel *model= ( QStringListModel* ) sessions->model(); if ( !model ) model=new QStringListModel(); sessions->setModel ( model ); QStringList dirs; model->setStringList ( dirs ); X2goSettings st ( "sessions" ); QString exports=st.setting()->value ( sessionId+"/export", ( QVariant ) QString::null ).toString(); QStringList lst=exports.split ( ";",QString::SkipEmptyParts ); for ( int i=0;isetStringList ( dirs ); // removeSession->setEnabled(false); exportDir->setEnabled ( false ); sessions->setEditTriggers ( QAbstractItemView::NoEditTriggers ); } void ExportDialog::slot_activated ( const QModelIndex& ) { // removeSession->setEnabled(true); exportDir->setEnabled ( true ); } void ExportDialog::slot_dclicked ( const QModelIndex& ) { slot_accept(); } void ExportDialog::slotNew() { directory=QString::null; directory= QFileDialog::getExistingDirectory ( this, tr ( "Select folder" ), QDir::homePath() ); if ( directory!=QString::null ) accept(); } void ExportDialog::slot_edit() { const QList* sess=parent->getSessionsList(); for ( int i=0;i< sess->size();++i ) { if ( sess->at ( i )->id() ==sessionId ) { parent->exportsEdit ( sess->at ( i ) ); break; } } loadSessions(); } void ExportDialog::slot_accept() { int ind=sessions->currentIndex().row(); if ( ind<0 ) return; QStringListModel *model= ( QStringListModel* ) sessions->model(); directory=model->stringList() [ind]; accept(); } x2goclient-4.0.1.1/exportdialog.h0000644000000000000000000000401312214040350013456 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef EXPORTDIALOG_H #define EXPORTDIALOG_H #include "x2goclientconfig.h" #include class QListView; class QPushButton; class QModelIndex; class ONMainWindow; /** @author Oleksandr Shneyder */ class ExportDialog : public QDialog { Q_OBJECT public: ExportDialog(QString sid,QWidget * par, Qt::WFlags f = 0); ~ExportDialog(); QString getExport(){return directory;} private: QListView* sessions; QPushButton* editSession; QPushButton* exportDir; QPushButton* newDir; QString directory; ONMainWindow* parent; void loadSessions(); QString sessionId; private slots: void slot_activated(const QModelIndex& index); void slotNew(); void slot_edit(); void slot_dclicked(const QModelIndex& index); void slot_accept(); }; #endif x2goclient-4.0.1.1/HOWTO.GPGCARD0000644000000000000000000001032112214040350012474 0ustar x2goclient smartcard HOWTO: 1. gpg card configuration: user@x2goclient$ gpg --card-edit Application ID ...: D2760001240102000000000000420000 Version ..........: 2.0 Manufacturer .....: test card Serial number ....: 00000042 Name of cardholder: [not set] Language prefs ...: de Sex ..............: unspecified URL of public key : [not set] Login data .......: [not set] Private DO 1 .....: [not set] Private DO 2 .....: [not set] Signature PIN ....: forced Max. PIN lengths .: 24 24 24 PIN retry counter : 3 0 3 Signature counter : 0 Signature key ....: [none] Encryption key....: [none] Authentication key: [none] General key info..: [none] Command> admin Admin commands are allowed Command> sex Sex ((M)ale, (F)emale or space): M gpg: 3 Admin PIN attempts remaining before card is permanently locked Admin PIN Command> login Login data (account name): beispielb Command> generate Make off-card backup of encryption key? (Y/n) n Please note that the factory settings of the PINs are PIN = `123456' Admin PIN = `12345678' You should change them using the command --change-pin PIN Please specify how long the key should be valid. 0 = key does not expire = key expires in n days w = key expires in n weeks m = key expires in n months y = key expires in n years Key is valid for? (0) Key does not expire at all Is this correct? (y/N) y You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) " Real name: Bert Beispiel Email address: bert.beispiel@x2go-test.org Comment: Test user You selected this USER-ID: "Bert Beispiel (Test user) " Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O gpg: generating new key gpg: please wait while key is being generated ... gpg: key generation completed (17 seconds) gpg: signatures created so far: 0 gpg: generating new key gpg: please wait while key is being generated ... gpg: key generation completed (14 seconds) gpg: signatures created so far: 1 gpg: signatures created so far: 2 gpg: generating new key gpg: please wait while key is being generated ... gpg: key generation completed (13 seconds) gpg: signatures created so far: 3 gpg: signatures created so far: 4 gpg: key 8CE52B35 marked as ultimately trusted public and secret key created and signed. gpg: checking the trustdb gpg: 3 marginal(s) needed, 1 complete(s) needed, classic trust model gpg: depth: 0 valid: 8 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 8u pub 1024R/8CE52B35 2009-09-24 Key fingerprint = 2475 8498 7FF4 2727 B476 F72E 7BF2 CFE9 8CE5 2B35 uid Bert Beispiel (Test user) sub 1024R/C7151669 2009-09-24 sub 1024R/593801C0 2009-09-24 Command> quit IMPORTANT: login Name is a name of user on remote system 2. configuring ssh connection 2.1 start gpg-agent with ssh support Be sure, that pinentry-x2go is installed. For test purposes you can use other pinentry program, but for x2goclient pinentry-x2go is requered (pinentry-x2go-gtk if you are using gtk version of x2goclient) user@x2goclient$ gpg-agent --enable-ssh-support --daemon --pinentry-program /usr/bin/pinentry-x2go GPG_AGENT_INFO=/tmp/gpg-Xh4lY7/S.gpg-agent:24620:1; export GPG_AGENT_INFO; SSH_AUTH_SOCK=/tmp/gpg-LO41WU/S.gpg-agent.ssh; export SSH_AUTH_SOCK; SSH_AGENT_PID=24620; export SSH_AGENT_PID; 2.2 export SSH environment variables (copy gpg-agent output in console) user@x2goclient$ GPG_AGENT_INFO=/tmp/gpg-Xh4lY7/S.gpg-agent:24620:1; export GPG_AGENT_INFO; user@x2goclient$ SSH_AUTH_SOCK=/tmp/gpg-LO41WU/S.gpg-agent.ssh; export SSH_AUTH_SOCK; user@x2goclient$ SSH_AGENT_PID=24620; export SSH_AGENT_PID; 2.3 You can check the key on your smartcard with command: user@x2goclient$ ssh-add -l 1024 ef:d5:8c:37:cb:38:01:8d:c2:30:00:ac:93:a2:43:98 cardno:000000000042 (RSA) 2.4 Copy public part of your key to remote computer user@x2goclient$ ssh-copy-id beispielb@x2goserver beispielb@x2goserver's password: Now try logging into the machine, with "ssh 'beispielb@x2goserver'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. 2.5 Testing ssh connection x2goclient-4.0.1.1/httpbrokerclient.cpp0000644000000000000000000005250412214040350014703 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "httpbrokerclient.h" #include #include #include #include #include #include "x2gologdebug.h" #include #include #include "onmainwindow.h" #include "x2gosettings.h" #include #include #include "SVGFrame.h" #include "onmainwindow.h" #include #include HttpBrokerClient::HttpBrokerClient ( ONMainWindow* wnd, ConfigFile* cfg ) { config=cfg; mainWindow=wnd; sshConnection=0; QUrl lurl ( config->brokerurl ); if(lurl.userName().length()>0) config->brokerUser=lurl.userName(); if(config->brokerurl.indexOf("ssh://")==0) { sshBroker=true; x2goDebug<<"host:"<sshBrokerBin=lurl.path(); } else { sshBroker=false; http=new QHttp ( this ); if ( config->brokerurl.indexOf ( "https://" ) ==0 ) http->setHost ( lurl.host(),QHttp::ConnectionModeHttps, lurl.port ( 443 ) ); else http->setHost ( lurl.host(),QHttp::ConnectionModeHttp, lurl.port ( 80 ) ); connect ( http,SIGNAL ( requestFinished ( int,bool ) ),this, SLOT ( slotRequestFinished ( int,bool ) ) ); connect ( http,SIGNAL ( sslErrors ( const QList& ) ),this, SLOT ( slotSslErrors ( const QList& ) ) ); } } HttpBrokerClient::~HttpBrokerClient() { } void HttpBrokerClient::createSshConnection() { QUrl lurl ( config->brokerurl ); sshConnection=new SshMasterConnection (this, lurl.host(), lurl.port(22),false, config->brokerUser, config->brokerPass,config->brokerSshKey,config->brokerAutologin, false,false); connect ( sshConnection, SIGNAL ( connectionOk(QString)), this, SLOT ( slotSshConnectionOk() ) ); connect ( sshConnection, SIGNAL ( serverAuthError ( int,QString, SshMasterConnection* ) ),this, SLOT ( slotSshServerAuthError ( int,QString, SshMasterConnection* ) ) ); connect ( sshConnection, SIGNAL ( needPassPhrase(SshMasterConnection*)),this, SLOT ( slotSshServerAuthPassphrase(SshMasterConnection*)) ); connect ( sshConnection, SIGNAL ( userAuthError ( QString ) ),this,SLOT ( slotSshUserAuthError ( QString ) ) ); connect ( sshConnection, SIGNAL ( connectionError(QString,QString)), this, SLOT ( slotSshConnectionError ( QString,QString ) ) ); sshConnection->start(); } void HttpBrokerClient::slotSshConnectionError(QString message, QString lastSessionError) { if ( sshConnection ) { sshConnection->wait(); delete sshConnection; sshConnection=0l; } QMessageBox::critical ( 0l,message,lastSessionError, QMessageBox::Ok, QMessageBox::NoButton ); } void HttpBrokerClient::slotSshConnectionOk() { getUserSessions(); } void HttpBrokerClient::slotSshServerAuthError(int error, QString sshMessage, SshMasterConnection* connection) { QString errMsg; switch ( error ) { case SSH_SERVER_KNOWN_CHANGED: errMsg=tr ( "Host key for server changed.\nIt is now: " ) +sshMessage+"\n"+ tr ( "For security reasons, connection will be stopped" ); connection->writeKnownHosts(false); connection->wait(); if(sshConnection && sshConnection !=connection) { sshConnection->wait(); delete sshConnection; } sshConnection=0; slotSshUserAuthError ( errMsg ); return; case SSH_SERVER_FOUND_OTHER: errMsg=tr ( "The host key for this server was not found but an other" "type of key exists.An attacker might change the default server key to" "confuse your client into thinking the key does not exist" ); connection->writeKnownHosts(false); connection->wait(); if(sshConnection && sshConnection !=connection) { sshConnection->wait(); delete sshConnection; } sshConnection=0; slotSshUserAuthError ( errMsg ); return ; case SSH_SERVER_ERROR: connection->writeKnownHosts(false); connection->wait(); if(sshConnection && sshConnection !=connection) { sshConnection->wait(); delete sshConnection; } sshConnection=0; slotSshUserAuthError ( sshMessage ); return ; case SSH_SERVER_FILE_NOT_FOUND: errMsg=tr ( "Could not find known host file." "If you accept the host key here, the file will be automatically created" ); break; case SSH_SERVER_NOT_KNOWN: errMsg=tr ( "The server is unknown. Do you trust the host key?\nPublic key hash: " ) +sshMessage; break; } if ( QMessageBox::warning ( 0, tr ( "Host key verification failed" ),errMsg,tr ( "Yes" ), tr ( "No" ) ) !=0 ) { connection->writeKnownHosts(false); connection->wait(); if(sshConnection && sshConnection !=connection) { sshConnection->wait(); delete sshConnection; } sshConnection=0; slotSshUserAuthError ( tr ( "Host key verification failed" ) ); return; } connection->writeKnownHosts(true); connection->wait(); connection->start(); } void HttpBrokerClient::slotSshServerAuthPassphrase(SshMasterConnection* connection) { bool ok; QString phrase=QInputDialog::getText(0,connection->getUser()+"@"+connection->getHost()+":"+QString::number(connection->getPort()), tr("Enter passphrase to decrypt a key"),QLineEdit::Password,QString::null, &ok); if(!ok) { phrase=QString::null; } else { if(phrase==QString::null) phrase=""; } connection->setKeyPhrase(phrase); } void HttpBrokerClient::slotSshUserAuthError(QString error) { if ( sshConnection ) { sshConnection->wait(); delete sshConnection; sshConnection=0l; } QMessageBox::critical ( 0l,tr ( "Authentication failed" ),error, QMessageBox::Ok, QMessageBox::NoButton ); emit authFailed(); return; } void HttpBrokerClient::getUserSessions() { QString brokerUser=config->brokerUser; if(mainWindow->getUsePGPCard()) brokerUser=mainWindow->getCardLogin(); config->sessiondata=QString::null; if(!sshBroker) { QString req; QTextStream ( &req ) << "task=listsessions&"<< "user="<brokerUserId+ " --task listsessions", this, SLOT ( slotListSessions ( bool, QString,int ) )); } else { sshConnection->executeCommand ( config->sshBrokerBin+" --user "+ brokerUser +" --task listsessions", this, SLOT ( slotListSessions ( bool, QString,int ) )); } } } void HttpBrokerClient::selectUserSession(const QString& session) { QString brokerUser=config->brokerUser; if(mainWindow->getUsePGPCard()) brokerUser=mainWindow->getCardLogin(); if(!sshBroker) { QString req; QTextStream ( &req ) << "task=selectsession&"<< "sid="<brokerUserId+ " --task selectsession --sid \\\""+session+"\\\"", this,SLOT ( slotSelectSession(bool,QString,int))); } else { sshConnection->executeCommand ( config->sshBrokerBin+" --user "+ brokerUser +" --task selectsession --sid \\\""+session+"\\\"", this,SLOT ( slotSelectSession(bool,QString,int))); } } } void HttpBrokerClient::changePassword(QString newPass) { newBrokerPass=newPass; QString brokerUser=config->brokerUser; if(mainWindow->getUsePGPCard()) brokerUser=mainWindow->getCardLogin(); if(!sshBroker) { QString req; QTextStream ( &req ) << "task=setpass&"<< "newpass="<brokerUserId+ " --task setpass --newpass "+newPass, this, SLOT ( slotPassChanged(bool,QString,int))); } else { sshConnection->executeCommand ( config->sshBrokerBin+" --user "+ brokerUser +" --task setpass --newpass "+newPass, this, SLOT ( slotPassChanged(bool,QString,int))); } } } void HttpBrokerClient::testConnection() { if(!sshBroker) { QString req; QTextStream ( &req ) << "task=testcon"; QUrl lurl ( config->brokerurl ); httpSessionAnswer.close(); httpSessionAnswer.setData ( 0,0 ); requestTime.start(); testConRequest=http->post ( lurl.path(),req.toUtf8(),&httpSessionAnswer ); } else { if (config->brokerUserId.length() > 0) { sshConnection->executeCommand(config->sshBrokerBin+" --authid "+config->brokerUserId+ " --task testcon", this, SLOT ( slotSelectSession(bool,QString,int))); } else { sshConnection->executeCommand(config->sshBrokerBin+" --task testcon", this, SLOT ( slotSelectSession(bool,QString,int))); } } } void HttpBrokerClient::createIniFile(const QString& raw_content) { QString content; content = raw_content; content.replace("
","\n"); x2goDebug<<"inifile content: "<1) { cont=lines[1]; cont=cont.split("END_USER_SESSIONS\n")[0]; } mainWindow->config.iniFile=cont; } bool HttpBrokerClient::checkAccess(QString answer ) { if (answer.indexOf("Access granted")==-1) { QMessageBox::critical ( 0,tr ( "Error" ), tr ( "Login failed!
" "Please try again" ) ); emit authFailed(); return false; } config->brokerAuthenticated=true; return true; } void HttpBrokerClient::slotConnectionTest(bool success, QString answer, int) { if(!success) { x2goDebug<errorString(); QMessageBox::critical(0,tr("Error"),http->errorString()); emit fatalHttpError(); return; } QString answer ( httpSessionAnswer.data() ); x2goDebug<<"cmd request answer: "<key=sinfo.mid(keyStartPos, keyEndPos+endStr.length()-keyStartPos); QString serverLine=(lst[1].split("\n"))[0]; QStringList words=serverLine.split(":",QString::SkipEmptyParts); config->serverIp=words[0]; if (words.count()>1) config->sshport=words[1]; x2goDebug<<"server IP: "<serverIp<<"\n"; x2goDebug<<"server port: "<sshport<<"\n"; if (sinfo.indexOf("SESSION_INFO")!=-1) { QStringList lst=sinfo.split("SESSION_INFO:",QString::SkipEmptyParts); config->sessiondata=(lst[1].split("\n"))[0]; x2goDebug<<"session data: "<sessiondata<<"\n"; } x2goDebug<<"parsing has finished\n"; emit sessionSelected(); } void HttpBrokerClient::slotSslErrors ( const QList & errors ) { QStringList err; QSslCertificate cert; for ( int i=0; ibrokerurl ); QString homeDir=mainWindow->getHomeDirectory(); if ( QFile::exists ( homeDir+"/ssl/exceptions/"+ lurl.host() +"/"+fname ) ) { QFile fl ( homeDir+"/ssl/exceptions/"+ lurl.host() +"/"+fname ); fl.open ( QIODevice::ReadOnly | QIODevice::Text ); QSslCertificate mcert ( &fl ); if ( mcert==cert ) { http->ignoreSslErrors(); requestTime.restart(); return; } } QString text=tr ( "
Server uses an invalid " "security certificate.

" ); text+=err.join ( "
" ); text+=tr ( "

" "You should not add an exception " "if you are using an internet connection " "that you do not trust completely or if you are " "not used to seeing a warning for this server.

" ); QMessageBox mb ( QMessageBox::Warning,tr ( "Secure connection failed" ), text ); text=QString::null; QTextStream ( &text ) <ignoreSslErrors(); x2goDebug<<"store certificate in "<. * ***************************************************************************/ #ifndef HTTPBROKERCLIENT_H #define HTTPBROKERCLIENT_H #include "x2goclientconfig.h" #include #include #include #include #include "sshmasterconnection.h" /** @author Oleksandr Shneyder */ class QHttp; struct ConfigFile; class ONMainWindow; class HttpBrokerClient: public QObject { Q_OBJECT public: HttpBrokerClient ( ONMainWindow* wnd, ConfigFile* cfg ); ~HttpBrokerClient(); void selectUserSession(const QString& session ); void changePassword(QString newPass); void testConnection(); private: QBuffer httpCmdAnswer; QBuffer httpSessionAnswer; QHttp* http; int sessionsRequest; int selSessRequest; int chPassRequest; int testConRequest; QString newBrokerPass; ConfigFile* config; ONMainWindow* mainWindow; QTime requestTime; bool sshBroker; SshMasterConnection* sshConnection; private: void createIniFile(const QString& raw_content); void parseSession(QString sInfo); void createSshConnection(); bool checkAccess(QString answer); private slots: void slotRequestFinished ( int id, bool error ); void slotSslErrors ( const QList & errors ) ; QString getHexVal ( const QByteArray& ba ); void slotSshConnectionError ( QString message, QString lastSessionError ); void slotSshServerAuthError ( int error, QString sshMessage, SshMasterConnection* connection ); void slotSshServerAuthPassphrase ( SshMasterConnection* connection ); void slotSshUserAuthError ( QString error ); void slotSshConnectionOk(); void slotListSessions ( bool success, QString answer, int pid); void slotSelectSession ( bool success, QString answer, int pid); void slotPassChanged ( bool success, QString answer, int pid); void slotConnectionTest( bool success, QString answer, int pid); public slots: void getUserSessions(); signals: void haveSshKey ( QString ); void fatalHttpError(); void authFailed(); void sessionsLoaded(); void sessionSelected( ); void passwordChanged( QString ); void connectionTime(int, int); }; #endif x2goclient-4.0.1.1/icons/128x128/audio.png0000644000000000000000000001215512214040350014471 0ustar ‰PNG  IHDR€€Ã>aËsBIT|dˆ pHYs7]7]€F]tEXtSoftwarewww.inkscape.org›î<êIDATxœí{”ÕÇ?ÕM÷<†a`@Fkx‹"¾BñP &¨G1®&1Ù¸‰n¢ëîQcÌ–{’ÊîQ‰»FÝœ×Ą쉮Šq‰<Š FyLŽ0 00ÀÀ<û±TOvì鮾·ªzzÆîï9ýOWÝû»U÷[¿ßïÞû»÷§Äãq È_rÝ€r‹òä9 Èsç( ÏQ @žcH®0Ø éV˜ Ìæçu‰ËÅ@ p höëõ¦¡îéÿÖf†R˜ƒ¦[ o×%.ª8ü xÊ4TË϶yAH|í·wS|ª6¬–›†ú†OuºFi éÖR`90)‹b^î1 õƒ,ÊpDIÐtk,ð_ÀÂ~žî5 5ÒO2ÿ‚zAÓ­ÙÀËÀ¸ˆ_ ÜhjK - Ðtëz`¹é|€ÅÀŸ4ݚܟB 4Ýzx(ÍqS&c“`q Ìk éVð4ð×¹nK"À·MCýi¶å-4Ý*ÞÀžÌ¨Xnê}ÙÏ&àvçÜ«éÖ²l ÈK  éÖ½À#~ÔUQ ®ºˆºê0uÕaÆW†hl‰PßÔI}Sõ‡»8~:êED'0ß4Ôwüho2òŽšn-ÂVýA·upÝÅå|u^Õ¡Œ÷7·Fxvà žßtŠ®ˆ«÷Ý\hj³›ÂNÈ+hº5xå¶Ž+Î+ã¶Å•Œ«ÌÜñÉ8r2ÂÓoçµ­­Ää_ûjàó¦¡zR'ÉÈ$<þµÀ%nÊϪ-æî«ª˜<¶Ès[öéâÇ«šÙTß.[ôaÓPï÷Ü€^È''ðq\vþ3Ëxüë5¾t>@íè0~m,K/*—-úÄ„•oÈ  éÖ—€gÝ”]zQ9÷^SE  øÜ*O¾ÞÌÊ 'eŠ´3LCýØùŸz  éVxÈMÙ›æç;KGe­ó¾½¤Še‹FÈ|ß/ùƒššn4ݺ<Ãmwµ²u/[4‚;—T¹i–4nYXÉÝW”)r³¦[Óý=h ˜/ßÌp¸gð=ÙºÍÊ- +=´N_œSÁµ½=ü‹r4Ýš¦éÖ+Àÿb¯Ü=ãpû=Hùª†¹ïZ×£DO¸ëÊ*ÆÓ\ªé–æUæ !€¦[£4Ýú ð>puâï7 µ-Íý£•ó½ëGS^êzŽÈJ‹À Â?~AØ™‰ý¡¸“å¶`6 éVð0i¶ëÓP÷¦©£¸QFîµÅœ?ÑM¨ö V±`Z)k?Léâ$ãVìE‚òšnÐtë߀dî|€Ç®]HÍÙÞ|™ÔDL¿AÂX éÖx72rª³tßÂvØDŸ¶ø“Ãõ¯È´aJMQοt˜>¾˜ Ï.áÝ}àËÀdeH@Ó­Ràg ~à"@•,óߦ¡¦ô\1ýRñü7/¨ß¿¸ù² €Müìûå~YVˆÏxÙáÚ—0kgU…¸lÚPï-Ê".VK™6®ˆf\ éÖTÓPwÊÔ/ë,‘¼ßoœÁŒH)õÿµùY]èñ ¾€Ôóƒ<®”à3þ`jÊO!1‚¸X´¢âÂggJÍå ó§–RQ*ÔUÒÃAa$^°¬½öNê_êá/T:`Æý™(Ì›*dªê4Ýþ@ÎH©þ'U‡™1¡XF&`‡E½÷Q‡L‘(ðªÃu)õ·`€Ûþd,˜6”W¶´ŠÜú@8‚X†)Õÿ²E•Ìwñ2}å¨,ÌtQ±šnM¦ŠV ÀÜ)sè—«%‡:º3NÝ_ ü½h½B:PÓ­ pyòÿE!…KêÜÍ ½»W: ò‡kRjoÖÄÊKr³âçE¡—N"í9šn 3ˆÁ¤Ø8ù—vôøéûvËsRkÉT´`úàRÿ=0[ÂïC´÷RFÓºµ£.¾~°W½ÒáB™Š›ýïÁÜ)¥ÅzÌwôQ±^ìè–}R¶ ÉÁþ°OíB]u˜1ÃÔ˜0ÊK‚Ì ÇIýKÙuLXVö€B]µPûÏÒtK( @DÌ"EpŹ.Æþûä?ð‘uÕƒ[¨c„Û/ô^Dp~ª?§w÷"÷érSÌÉä•8{tX4hÔ7œÝ·!ÊŠÝÙÿ½òˆ¦º˜Ÿ˜%ZÑȲ C×ø?á! ª„¢Ý„Aw¸6ùãÝ©p¥ö˜†šnØ0‰ƒí§Nœ‰²öÃ3üqÇâñ8—Ï(cþÔR*˲7Ò¨æ£Ì¦4‹piÿÁ•Øîp­F¦"¿Õÿ?8þÛÃD{ÅãnªogùËðà £ùÜyÂ;}¤ Ž)bõö3™n+R—ˆ ¨Mþ㬑ò‡#ôà˜üq)‡®Ió©>:€ïXm<øÜ';¿±8/ÁÜ•±“\AP“[ãáHM·J€1ÉÿW‹o_ú:»c¸Ø†à´wZŠ~MYMÜ¿²‰ˆ—£1xàÙÃìÌÉ# ‰çÈï–Iô‰É(0ºÜÝ‹lïrµ Å7”û³þÿ˵'„ž¥+ço÷EfoH<‡gô±±£Ë‡tFÕÞíjóÊ)‡kýN€æÖk>8-|ÿúm:ájî#-†ö#úL±ºUÿ¹ÖEÞ ðûwN¥´ûé‹ÃïÞvâ°<†Š?GÆ÷#M/v´½Ë•ð¥>`ÕV¡¨Ïeœ (”„…´°g ÐgÝ´$ìþ%æÒ() z‹îŽÄ9tBþHÿc§£œétEþ´Ôþ›€ð÷/1—ÀûßäÁ–7µøë>gÐG…Ü@ ž-|q%§´htñõÿ¥l‹¿É@ à¿(¬ÀûÈÃWÜè³ðËdòèúLù ¶ÑÐ > êX§+ò¸–„ê²Û·;Í*gÆÁƒAÀÝtò¡¦Clß~À“üÞWîϦ–L賦}û¹V*<µìÅžtnt ,hi÷~JU™û:ª†ú{Ë)±°Ê™nȤGú #âÞ\ÙA§óT…,µœñ:ÑoœhªÏ´¹Sã ¸:èÚ;í½F–Ʊó>ÊÃo#tÆ÷#M€Ó®zl(1WŽ/8%ˆÜC‚0ÒEG/ŽSì~5%މÀ pÚƒˆE#(ò_/¼æÔÊk±ÏÔúŸò¤O>€´x¬M!JMçLGÎÅãq*Jâ´´K‘È7 o3r Ô«v !{E‰sy¯9dˆœñýd"@Ÿ öQÍȬÏÒ‘¡¦Zä6ùF€¸'ÛT”Àì QÞi[9¿&æÊl8B&€g ÐüÇÑÖEÅ¥Äc¶Zùê{cÔ°€H]NQ-RˆÆ¾‹vå´ï7éÌ0" ã\=Ýß €¸øSx&@ʤ]Qš4%,J„‘C$=iß4@{$ÈP0¾"Îs»xb]˜h,5 ‚JœÛµ.&VúkWL8²Ù›˜HdÜg&®¥#D(äî7\쨓ÞîpMЧ(ŠâËoÆØ8·Íé& ôí`E‰óK»™Yãï `Žž2?QÓP3®C‹ÔÔ|"9AÓ©“F¥÷œ´Áði;œê¨Ø4ÊT´û0L«JÿõÈž›|ÑD˜2¦›­¼û±MìÙb\0>Fy1¤ÊLçÇÙÌûÄ’Ç ZWø 1Îâiaiû0rØ©q…‘6!öÐmî ØÚã 3ý=¨b(,œ §Ä{=oöΊÇãüù ‰Þ¹I¤¥}ÁVJ D8&§U÷=×{ß3®R:¢h’¦[)ÕM"‡Þ{¢5¡CƒÁŒ¿@ ý©×»Œ!lûXè"€HoìJþ£;ªP߬0süÿÕ£BPQÚ&:— öŠädàƒ4×7™3Ît‡^ä¿gžŒlÃß  `³ÈM"Hɤ·÷F˜}vßóDˆ0­&ÄÆz©9åé8@‡[*%3‚ôGNQÇÛƒšPß°{úìæbýîî\â|Qº‡š<¶H–3€çÒ\“"À¾æ8çÖÛç'ü–Ñ ¶Í Á4Ô£"7f$€i¨­šní&é¶Ã'£hsÆÈ;ƒ“kJH¿ÄŸNŽà.졪P Áû¢,å.¨#Û„©{£Ð´²ðG!ꮦ¬pãn{ï[¦1s²#3uœôæÒ´H¤JÙ"ZÑ{ :¢î2Y'Ïïú£Ù°[Hs 9€à‘vKŸõÀØ!ÊK¤†JiG ?0ÀŽCqO›«‚Õ¬I3ó˜a :&KYᶆNwD]1µ¦ˆ·-áU¡!À4ÒŸ"å¬ÝÙV—Ú d¿À¬jÈ úL¸Dcðv};‹Î•Pœ2NŠWžÂgã‚ý";£e”xq‡þ!KœH Öì"À^ÓP…w¤ À4ÔNM·V×$_ûå[-lvqðãGG¥C‹®"M¦0ÓP÷hºµÁó‚£1…m¢Ì©K^À@Ó;›"´‰½2§Õû@fZîUR`OS{š<ĉ‰c¾¦[Ã8V?­lýîNæNö/SX¶ cî>lb¥L½2žØk2g!l3¿–©lýÎv¢q¥ßjîæÉ?“ng6ðó5-ìj¶bßM,‰»Â€%@LC}Ï4ÔÏb{ÿ½ø¸]Ó-§Ã $OyaÓ©œ;„Û:dlÿ:ÓP’ifÄ€'@LC]…¼bö~€Ñ8¤‹5 õð¯²rþùÅ#œjów3§(Ú:cüàùÃÄÄçšî÷*sÐìèÓPLnÉPäG€°1hnòÈËRE|Ã㫚9(~šØK¦¡š^e*ýµ¦ hº5h5 5­ÞÖtëï€Çdë^¶h·,NÀé¿Ýx‚Ç^öA¢Ày¦¡îð*wP@šn…±GkeËÞ4w8w.©ò½MÉøùšã<ý¦Ô\Ä3¦¡fÒ~BT&À LCíÂ¥­üõ†“<üÒQbFYO¾Þ,Ûù­ØÃ\_ð©'€i¨¿žrSö¥Í§øþóGˆDý%A,çá—Ž²rƒð\¾žXš÷ƒ3‡ª;Ü…a,ed'ü϶Ómp÷UULë=íÌþ#]üxU3›ê¥g6 õEÏ è…O½ÐšnMÀ!ʪ™ WœWÆm‹+W)ìב“ž~ó8¯mm•êõ`5ðùĆXßWÐtkð©6ï "€ë..ç«ó*¨®ÈL„æÖÏn8Áó›NÑqõ¾€ Ó%Ðö‚¼#€¦[÷øQWEi€ºê"êªÃÔU‡_¢±%B}S'õM]Ôîâ¸|¦´ÞèæËÆú‰"/  éÖsØq·š†út¶*Ï‹Q@|ؘëFdÀòlv>ä1LC= ,þ3×mIp»i¨÷e[PÞš€ÞÐtëà‡øïè-À¦¡&/g$ éÖõÀ¯HFì®1 uw , 4Ýš½·n\įÆþòû5@1o}€T0 u öÆ’5ý(6нZ¹¤¿;  -4ÝZ ,ÇŽ=È^î1 5ÝXYGHœJrp'0ŧjãØê~¹i¨oøT§k M·ßÄÞ˜âf_ù!l'ó)ÓP-?ÛæH"¡fó€9Ø&“°‡ÅØÃ¸cØ\öëõ¦¡îÉE{3¡@€aËsBIT|dˆ pHYs7]7]€F]tEXtSoftwarewww.inkscape.org›î<pIDATxœí{œU•Ç¿çV÷ôLÏä1yÎ$1“ÀvŰ» &A”wÀE݇¢®îJøÀØáCxÈŠ«ÈC`?º.„Tå‘É‚Š]‹¨™ L˜<É{2“™ª»TUOuuOOwM÷LõtÿòéIÝGÝ{ëžSçž{î¹·DkM£K’o%LÔ÷€]µDÏxªuÆ{ƒÝ)}³ª$’[NШ‡Æ͇•9”Té›VE©‘Hniý¸C|€íS­C¯çso•ʉä“4ú  É}ÿ[=’ÏýÕ! DH$7Ÿ¨EæÇÍGžøÜ¼žRÔññdg¢ å‰6Á¼7ß2¤ªgܲy\o·lP Ÿ:мç¼ß\ubo®{ÉÍÌ• ©Ó´eCëâ¾ÁòCË#ÀYÞx<º±uÖùù¶µ:”=¦—TßÊ™c:'Ü' ¹îf^)È—5ü#´|~°:4³îÄG|ó®BÚZe€àÙ-þ䉺hqróm¹îÑÈ¥žàŹò&’m_ô§²$ýq}ëÜ ù·´@ ‘l;ø6ãˆçÿ|® I/'¬ØÐ:û&¤ 7‚xÆfùÜéɶϴξٟwiróQ 'y¢.M¾½`]ëÌßûó&’[®Vˆ@c½Á{M´pw¡/Thçgyþèz°¼¹ÒË «ɶsý‘‚d¼‰V.^Ùöi¼™þö;qæþ¸Å+Û—iô·Üð§Nk¤«ÇrƒãÚüA¡2X%Fc½1i|½1q\ܘ8.n4Ž­ScêÔø1µjlC­[S õ1Õ¯Q u5*^•xmTêbQ‰ÕD$V‘hÔhĈ¡ÄP ¥%åöþÛx(‘l{¿7"Šõ,3§=’æ;§'7ŸãÝà°ßèþç— ½·%’›OmýÀÕ-.Ñ:o¡ ÂZ)¤¶Fêë¢R_W#ñXTâµQUWUu5Q©‹E¤¶&"µQ›Ð5Qƒš¨Kp•"zÄPÎO"J)%"j0)|¨Ö$’mÓ܈§[çîRƘ³O€€Òȯl_ ¸aˇ€™'ΩãÏgÕ9wè9K’m‹–&ß^òc àŒ… \µd¾è¥·.HùsQ¨ %²•3'GYuÑÔ õ–-~ý§.®yp{¶¤‰ÀºD²íÄ ­³lÔpœÍ­ÃÒðóÿ=mýhI²}©—ºÌ~æ îÕ¼Ôv }a"ùæ»`ühøÀœ:þeÙ$~Ûv˜ŽÝöÌRÃs[çþ.Èó’€UfohÑQ9Ÿ|ðH"Ù&Ú£¼¼¥›/ýÍ$>4?îF1±ôyñÅç×sÚ‚zOòI0~Ì8ª¹†•L!¢„G_èûzû{ †þñªr1}è³€[úbê9íô×K[ºQ×}b '´Ô 0pÚqõ̘:ÅæºÃMÀqÍn¹¤‰ºÅö}}<ÿF—›§só{}ž@@KÊoœ. ¢Fzx€>øJ"¹ù²ç¾:sèW¶ì8ÂæGˆª‹¦2¯©&톜к>ýÏêÓÒÆÇ n½´‰Æz»òŸþæVj®¤ïÌʘ A¦6T¤0|`^s 'Í‹gÉ)ÿ‘H¶ýµBž»ã®]½½]&ñ˜âÖK›˜Ö`ÆÄ( ©ðÁùqêjlÒÔF…›.žÊŒ vÞ^Só„­GôE‰Þ7”ç ²äèö¿JCÔǦ+/˜Âg¾»•öi/¢¬Ñ˜'q6°pÛÞ>®{h߸Ü~›¿û™iüâ]œ|L<­'ëj7_<•µÿw¥Ç70z,•¶áw‡ØÛe~;8Vöž~ÛÇj+2ô<Ðs5jèy¢•>ãus~3ÐóaKU¡À¯ô™šXD¸ýòfþöέìsˆã Œ'-Ã:S™j ÐôÚ;Ý|ý§»Xqîdêc*Mô{±°¥6M*¸ð*ÎŒíïÝ«1¤ß~&ˆÇ–¦,¹‚[+”ü:@¯iwvc½Á7?Õ”!!€eªû|èXûêAxnoÁuï9dòû­i+ËõäVÅ›J}?W™Agºb%€òK€þëY“k¸ñâ©Ùúå þäJ7âþgöðìïTw¼FÑ<¾_h‹,˜céñ \~ÚxæNMS,û}áÿ\×òrÎç)¨6´ºWmŠlC€‹æÔqõG'òÍ'vûoý´ _Ñè@®ÓÀªŸì¤i|„£›cþ¼Y‹ ÷ÿýt:ÞëcZc„úXÿûûð¯÷ñÖö”Fô§Ÿ¹~Γƒ•Pˆ‘Š”~ïg€e‹Æ²lÑØŒx ÿ<ú‡=½š«·³ë€™‘w ÔÕ(ŽjªI#þӯ䮧ûý?µð¥ ×ÏYOyu€J$>€1€àÇÕgMäÄ9uþhùÈÍ^Ø}ÀdÅêmôô[ý廸õ±µOß°ñúÙßÉ÷þÀ:€e»t7dJ€ìù¸ñ¢þù»1àA®:þÔy„¼£àuðWÚ»YùÈQˆ;7´Î¹¡2‚Zun“øèE†` L¶XDøöÍŒ©ÍèæÉ ÅyÀA€çþÐÅ}ë÷Ô–»×¾Ç‘>oýúØÅ+Ûþyi²íø|Ë.¨ÌY€kñ"›àb|½Á·¯˜–m áxmq½ÀeîzÁƒ¿ØËӯ̻-Mãü:¼,ÍM&ü6‘lkO$Ûî_¼ró‰ä“*#Èr°£T¦ö0ÐãyózMs‘¨er”/œÂWØîóçháUàZ47Üöø.¦5F8~f¦ÈkÎÌÒ… ¼øæa^x«‹Î=iŽÄÍÀrѲ¢:‘Üò’F¯1`í¾æ÷~í®’â®¸y4 süž“æÅù‡3'd&h®Wð¶ ß[š\÷ß;üÄÌŠšˆpÊ1q¾ð±‰<øù÷ñ_Ÿ›ÁÕgMää£û×è÷ |Õ‚õc:'lK$Ûn9ÿaŒ þ»ùM³á9޳þ"Óô«5Zª÷n Ïìë2¹fõ6õäÁYLŸåœEcYyÁ¾¾¼‰SÔô’޾¸óõ·æór AÊùN³áËŸLÇî>^}»Û+²A c‘6­Ç@ÏißÙKòáÜ|IS†ÎáÇ®&¯wtózG¯wôðÆ»=iCÔXWSß°%˜%¬2ôÛ+‚J°ûìëË›¸ü;lÛ›&æÇhÓ|älà`Ü‹o控vóùNÌZÖC¿ÚÇ7ígçþÜÃ…†#/ƒÞj°iCë¬v¸h?Iå*~ 7C`Ýw]9K¾Ýáuëh}‡.ÍOÈO^ØOˤh†eqÿa‹{Ö¸ûûm`È&`S|BßËíO < ¨d ¹ T¸Ï^uÏVÌt[©¢9OÐ_ÒÈ·¾õän¦Oˆz]ňDŽ£›c¼Ñ饫|øá†ÖYÛòmGðY•¬¦‡ Ѽ˜3%JòüÉÙ^¤Ïj»wï°4|íá´ïêw8‰(á¶åM¾@ýO¬ Óc.›ˆ= ¨Tø‡3 œrL=W.iÌ–t‡ŠÈcÀ€C=×<¸ý‡û‡Œ1uŠ»¬‰ÙSRL0«Y—H¾9=ßúƒê»™ ðŸÏîe|½ºß/G»×4Úö¦k4öR¯oAHY}úI1ÌhÓ˜ ÌïÜÓǵ«·sÛò&bQ» ãâ߸¬‰/|¿“ö½ÌcÝ’;–¬¿vÆ»ƒ>KÏnÛK`¥*~xáÍÃ¥ª*¦MãžƲ>Ì_“^{§›+îÚJâ¸z>´ Î1ÓbŒ¯7¸ýòf¾ð½NÞ¶‡‰¹V_ïºSWµ/yvEKg® ‚­ˆíX¡ôgBƒ1x¦â¡amëÌ6Ë€}ïîéå_ìå³÷¾Ëß|‡;žÚÍ;»z¹my“wõqžÑk­M$·4 X2AW‘Šu øÄ_Næ`}ëìêÃR›MvìëãG›ösõ÷:¹êžw™>!âmÛÑ ×,]Õ6àþ½ :@Å:…ÌŸã¡/¾W¶t£5©-¾©QQlßÜô°7]²ä·Ã¯¶w³ú—û¼Õ¥–×·¶¼,YºªmªÙ'Gëe@ˆìí2Ù”9ÍïëÕk>’|ë gÃj‚Út%Û¦ŒpÆÂì.ÝCAWÏà3Šu+foîî=ã–Íãúz8 -çÆöNƒ Ž OŸ|{ÇÉ¿úâŒ4 ¶/ Âׄµÿ:g°X}òíuµú–j­ÏÑð1ïòãq5Ìiûƒî ²Bƒ·»ŠÀy»O$7FDfžªµ,Óp&ȶhÌÜè¿'ðù•¼\pŽ™{Æù ˆ€³gXe€²ÇÐÎ(rcª~ÚàžPå€òÇöÈ ž*U„Aug_@•ÊA×*Ú`4aH{«ô/ m_@•Ê=‚¤j %¨úV8ë¶?@•Ê%U%pT °Wp%{&:)T·°*”?‚Ÿ^%þ¨@0ÀÿÕµ€òGUT8yÕ}c·un£«Öäùç3>lUd›bzãüé£%¼u«ãä;,zR¨hËÄ4MŽÉëµ"WÇM+V9#Q‡ÖÃ+ZƒžÈ0ZˆTÊr†Û¸l_€ ½G’gÃh$R©êH 7@ÚZ€Í#Ý#õ¶I,¿æ©Uð/†ˆ½=\©þ‰ÄHwnØ!XYágK­”¤Æ¬r&R±ê(^=6 ×÷sï ´ Ï€Ài³œb••-Í~±ì$†A%€¥œ!À}ˆ0©XuŒD{ÝK´sxHI1´½>Ê—ÂÐ^pô*ÑXºÿ4Jˆ ³[ TÙ%€?<Ò;˜S{E4)‹¶÷`d4¾ˆÂùöçÉüJ`Ø:6ŒmÊ™¦…‰éékÿóuW{8”N/fY#Å‚…ÇÊ: îgãmÕ/`x¡Ðü#Íœù¦)¥Pbº§Ç…N¸  ¥”ži`1Ë ;#ˆ8Ÿ…µ“ÊC@øˆ]®Œ "(GèÐIHi{‘JY‡Ëy±€J€Ô#”rÏ Ì”…†ËH¥,G$mÇUˆ%™¦`aíÜáªc¨y :‰"  Z)Òt£‘HŪ#Ÿ²Dy˜ ­û°h[Ìô ð‡ÃLÀR•´,r j”k³Î¥úÃ#M¤R‰íb·ÉfJ;x‰r§‚P^oëPê(u{}yB'À9,ÚHÙÂG¤bÕ1íµ- "!¶8DØ–ÀÒb¸$KXÚ”z©ì¨ÐI€ÔæÐ~;@8ÞÖ°ŒßC-Çf‚ë€åj«ùJx4»˜uØËìᜀë¦ì! ›ò2ŒP̲F’RC« ð|4*Ó-ÂOì°3‚R qýÂ*píyº„ùÃ…¤³¬r`IéUáô×@y–âtì`éa!R)ËQ¢l°ƒ¡•–ÁèVhþJb„”"ÒY€{\|Þ;ƒ²Å•;‘JY‡;ØB*DÄR§¢úÃa&àpµ5’Z ¥€ÔæÐt%F/‘JFì,ÜA !”)K Q„Í¡…ä-'F*„Kq A2°8Xx¤‰T¬:J”B ¶Gc ,|sh!yGš²…K —ø¡—©)K‘¼‚Gš²…G ⌄P¸ `A–À°ëa‚M{Al-0¼À;Œ4Ë•ØÁóaîÐIðì RJ¶‡ø/K8â_Bºàî 4ÝY@X¦£¶ ä@R^ÁùOÃ2Ç.á•Z T¦å¢‰lâ§ú œ±½‚ýD@•ØC†cP!•ŽG8ûT^ÓÀlá*†ÝUa•J¡ ¥²*UB â8„…[@R«ÙvW1)w{†AúhTJ¨¾íE‡-ýeØÖ}2F –k°¨¢øPý† ÐIp‡ð+ª(2B(ìC"–§‘U¾åàpÎÄ9+àHŸÝ¾´VfirΧÐnúÀ¹tÆE¡eçÌ’³°ï×öŸ\åZö¡n÷(q“CÇZ)´ôôj~×Ñckít´ÖîO§‡)<Þr.ìk<×ö…¥S4p®Óã ª/•–åYоúÝëþøô¶h_»Òã½õ¡µ¯½iħèíãˆiémZ#Vv‚‹¿£|¶uÃÊè€Xâ/Ã!‚ø™ÃÉ'¾ûsÄk_;}ñY˜Àïe‚œù ¬§lÓÒG¡Ѐ^ÿÚÁÍë_;øIR‹—¨,×ÙâòÉ[HAë(Ezв»/t p˜Ì†’%NrÄg{ø|â³Õ›«Ã‡Ro®òýñAŸ!Ÿ¼{³“¢8=\ß&©"”¨Úq+U¨pT ÂQe€ G•*U¨pT ÂñÿÉ(;Q¥/õIEND®B`‚x2goclient-4.0.1.1/icons/128x128/delete.png0000644000000000000000000001745212214040350014637 0ustar ‰PNG  IHDR€€Ã>aËsBIT|dˆ pHYs7]7]€F]tEXtSoftwarewww.inkscape.org›î<§IDATxœí{p\Wç?çÜÛu«õòC¶üJÛ±Ll'Ží,v#•°•ÊN†ñ»E†ÌðØ%ðÇBm-lÕ a`k¦v€ X„E L† ,Œ^á'v‚_Ķ";–²V«_÷qÎþqjI-©%KV·­oխ}û^ïùý¾¿ßùs…Öše\»K}ËXZ,àÇ2®q,àÇ2®q,àÇ2®q˜K}³¡£«w-p'€žžÎôÀÒ^ÕÕQ­‰ Ž®Þ•À×ñ_”ü) |øxOgzl)®íjBU £«·xHÇLÁîtœU &g‡ž9™;üqOgúø’]èU€ª#@GWoð[`ëŽõ1>ö–VZêðïÇú‹|ê±^°F€ÿØÓ™þ—¥¹ÚÚGU £«WÿüûmmQþþ¾µDÍ©:5o)>ùè??šPÀ_õt¦ÿúÊ^íÕj#À'€ÿÑ””<ôîu¬j˜^£j­ùÆÏ/ñÕžaü;ø.ðŽe]07T :ºzß ü£!á3÷®å¦Mñо÷ës<ðݲEð{<]pb/õªBUä:ºzw_¸ÿŽ7>À«·&øÂ»ÚØ´2°ø]GWï‹qW#–œ¾è{ ¨¿cW=÷¼²¡ìq3Yªõ+"<ø®6^÷Š@3ðÏ]½Z„˽갤.À}oòD_QSL9N)Å /¼ÀöíÛ‰D"Óž¯Œ.èîëéLgå®,µxxSSBòñ·´–m|×ufÿþý …iO&„àíÿ¶‰O¼­•DLìžîèêݲ5`ÉÐÑÕû§À‡¥€þÙê¿ëº lÛžõÜ·¶'øâ»ÖºàF<]pÇ‚\øU†%!@GWïNà«ï»s»6ÕÍx|@€X,†RŠ¡¡¡YuÁ?¼³×Žë‚vtõþ÷¸ü« W\ttõ6¿¶Ü±«žýñªÏd2\¸pÓ§O°zõjq]—æææ uÁ_í tÁw€¿XÖ®(|Ñ÷ÏÀík£|ö/ÊgúúûûbddÇq¦=_}}=mmm´µµÍúÛOÿ!Çß»@®¨žîééLŸœï½\-¸Ò.àÀ㢯üÏÇãñ oš&RzǦR)¶mÛÆ­·ÞÊ-·ÜRQãÃ]pž.xãåßRmãŠY_ôuKŸùó5³úý|>Ϲsçhnn¦±±‘§Ÿ~˲¸þúëY¿~ý¼¯#WT|ò±~á#¸À‡{:Ó3ïÖ8®|Ñ÷k ùþ;[ø“W5ÎùO>ù$Û¶mcíÚµ—u=ZkþÙ_}r$Øõmà/{:Ó¹Ë:q bÑ]€/ú’w쪟Wã—êÃ0f8²2!¸÷ß5ó×ãù‚·¿êèêM_öÉk ‹J_ô=li_åw­˜×yLÓ䦛n"‰„Z`!pk{‚/¼k=]° O¼aÁ~ °ØàÀ³ˆ¾JÐÒÒž={H$ wuÀ†|g¯Ù–X<ÑÑÕûÁý‘*Æ¢i€Ž®ÞíÀ R ?}ïn¾nfÑw¹8uêRÊy Ä2ºààW».XL ð1@¾ùU ‹ÞøƒƒƒœG]ð6à—]½×-ðåV“oxÛk›ñ'}š^x!?H&“ìÙ³‡––À+0 tÁ|È¿aE„öµQ€8Póáá©èéLx pê`_w?t†cýsóǧOŸf``€L&óÏ>ËȈ—±“RÒÞÞζmÛÂ^?44ÄþýûÉf½Î‰D¸é¦›Ø¸qcx¾@X–5çû)©_œ¾©FpÅ Bz:ÓÏ·OŒº¼ÿ+ýüø`åº`åÊ•á8€eY|˜'N„æ~õêÕìÞ½›xÜ›}T,9pàýýýÝï_Ìqâ¼p¯¶±¦±dC:ºzï¾Äo¾.ÎG÷­¦11{ÖPkM__}}}a£¦R)vîÜöþ þ/mÔææfvìØizæÛ¶m>ÌððpxL[[[·n ]Éd g]ÞýÅ3\̸èéLÿݼn¾Š°dóz:Ó_^œ>ðR÷øõsì+°ie„û:š87âðҀ͉s½Îì}ü§xÓÐNUtñK€ª$€_˜ù7økþÙ­¼û ÍéÇq8r䃃ƒá¾rºÀ4ÍiËÌ?û/ƒ|ï·£¤ê$÷ßÑBSÂÀ4¦¦h¼qãg‹9cqäÌ´Ì%àîžÎôÏ*¿û+‡ª$€?‹è;L\ ’½›=]ÐP7ÿ|ÁŽ;Â$ÐtøÑÁ Ÿzì"†„û:š¹nUSŠ ðÞ L ¦!¸pÉ቞<œÃr¦üO‡?êéL­ü¿pePuèèêÝ ÊVÞ¬i2yà­­liVt¾Éº òªW½jڞ³Ø®æ®=)nÙR7©ÑË x?8æòà‡8ðÒ”šÄãÀN¿X¦j°Ô+„”Ãû˜ÔøRBÌ)¼<üý_î§çPåù‚Ý»w‡¥b›6mš¶ñG².õÏc»š=é87_WùbU<áÚÊ}·M)†½ø“9Ÿp‘Q˜²’‡ž˜«‹ ¢&ÍÇþq€‡~2„ªÀ‚¥b[·n¶ÀUšv_``Ôe]‹Éí7^^ÁÏ[þ¨‘ÛwN9GÕ­RR˜6'„ “$½ú<ùå%>ôÍódò³ËqÓ4g,yðÇCì+P—Ü}Kü‹VJñº¦Ìbš>Õ¸D¨FÌZÆ[•´ÔH¿;‘ç?©ŸÞ s×ðヾû›Q wíI‘Œ-Ì¿åðËSÜýüJ”ÕH€MÞQÎÊGMAk£AÔô;ü—/÷óÔá¹Wgë/ò·ÿä…‹·mO²¦ia¡ðËc9ºŸ¼{ʽ-5ª‘1)éæ*pÜ©,0¤`m“AªNR´=þ¥ŸV¦ À}ñEßÎ 1nX_YÆq&XŽæK?âãߘœ9ÃDª*Tz:Ó¿ÁKO€£¼Õ=,GO¨åBÐÚhÒÚh"€oýâþÖyÆ 3ë‚@ô]uYÓdrkûåÍ:Îßf”÷~¹Ÿïÿ®l¥ÓGz:Ó#åþ°”¨ÖGÆ|xóäJC®¨É5‰˜&•@Ð\oˆ N_´ùíñ<ïy¨ŸÞÚJzuù|Á?üÈ}‰˜àöÉy‰¾lQqò\‘#gŠüüh޼5£åy|Î?pP­˜1w®lQ“-ºˆ Ä"‚d\’ŠK®_åÔ Mÿ°Ã{¿ÜÏûî\Á7ׇ 츚ÿõÃA6ƒ!áõ;’ÔE+3„™¼KßE›“ç-Nœ·834ý fmÍÞSN|Z¼<ãÁK„ªËøóïæ5/_‰˜ÀQP´½{[×bòжŽ‚gOæÉ†„×¾"AzuØ.8JaÛ`¹š¢£(Úš‚­É[Šþ!'¨šQSp÷ÞÿáßÔóöÏõ õt¦ç·<Ê"£* ÐÑÕ;´,æoD /Âpæ>mpZ¤WGøÌ½khL9Säþÿ}àùžÎô®…û•…CÕ‰Àô.öx½~þß—Ö4yie!À”°ws]XÄ20ºˆª‹ÿT«èöVzpSRÒPgpêâì‹IÏRÀ¶¶»6ÅØµ)ÎÎq¾ó«Ktÿz!@ ÁŠ’\•¸ŒªôÿPݘSE"*ùÚ{×1’uyþTá1—LA1šSŒæ].åÇßæ™Âx×—ê$ ƒÆ„G$ﳤ±Î !!im4Ù¾>6E0ZŽ&È€©q”X€eÌs"@Þò´)i^eà !†?\ÛP''4žÒšL^aHA}|þžÐr4ñˆð&­ h*©a¼8ºl.}s98oé°²×q5E[£Ñh iD¨+I H!**8 ¶«‰E¤o 11N¦Ì²¸ÌÉlRjœ~ÆPã+ý2©ä…€«ð-€Gª†e °`˜s!e¶`“ˆ™XŽKÞÒ^=™‹LO†¤JÜÉ@  jÃÀžÎô`NåSù¢Âu]GQ°\ –"_ô^íE´±ˆ ‘Ôż¢€K97øÍLOgzʰ`µ j àcN: [pQÊ#A¾èR°Kù¯î¼„˜ ZC<"‰E-I#œ]T ½ªÛ€çÚ+=8WtPJ¢´¦h+!°j„…Zp: TÌô#€d©ÿ¯þ$Ô*FÎw®ëõzð|³ÖP°dH€ Z¸\"Ø®&j ¤dJ8PI ¸Ê·¼^®”gò=@P°\\×EJ‰Þ~×Õ ˜@× • LIO6”„€k ÕO€¹åŠ.JÀx pŸZë¶‹w„ß'…&Zam@’Òsõ5@õ`n.Àò\€VÊ×¾ý‚¢­¦¸Ë¥…o¼¿™¦$jV– ²]| 0& ’@p• PêB àõæ¼OŽR`Ù[1aŸ©‰¨?ÏWiâj€Òjâe °08WT‘MÎÙ@TX "„—.Ø¢Œ ÐX¡ P¦Àue(g"B4@éXC­h€ªÎøóè.Ìz  $ÐXŽWÕS°EG“/Ž[/Rp±—¢Ÿ#ÈжWtZz\ð¾\Ak&¼W(¹¢"çÕz:ÓƒS¾XE¨v žl­äÀp<=®ü¥ % ØlGS´)Ù4þxÏ/ K¿ ^‘j©ŒE‚$Pmä 6p xe%,×OÔøK{ä-=a­aТń}Z‹)Z! B9Ä"CxX#†·¯ AÔ *BÁÖ¸®ÂÒ×­)XLˆ¤”á¨aÐû…hdhò'÷üÉû´ÖÄLüºoŠ8ÔF!H€«ŠÅÀ ±]ä,=Áh­q5Áxa£RÆŒ. Z5Á^:8@­DP¨8T°ñ (Úü4BøÖa¢ ð G&€Ê\€ÖÚ#€áY€xÄÿm)—-À£r àxëB`¹ÏxZ WƸÊËæ•6´¢b Ðþ !šˆ¡ÃïÕJ5E€ÙÓEÇï…›¢Ôø,ÓÒŠ¡q–ã©ÄñýLqÓYC(¤!0¤""Ç VK. ªó=é‹@®’\P@å·¼íz›å@Î"Œÿƒc”RØŽÂq5¶3þ~ò1å¾çº.R("Òëý†ÿ^­ŒBmXð¬À+f;( @ ê-×÷ÕB íò. èŒ‡ta6pRÆp:k` RaJ‰ ¥À²£y`3‡$ÖRáª"€åˆq¡'Gû´Ç÷í\€+°IéB!(_7PN˜ÒG@¡T†ó Îöt¦pÒÙâ –0+,·¤‘ÑX¡%öÇv\L£¤1•¤h—f\\wªâŸ.œLªZòÿp•ÀÕ^vÏ4Qcªh´/M4¦«Àv= lP¹ (GŒ 5@í â\@ÞR$¢‘SoŠ¶Â”ã§µð×ûÕ~ãkЕ»€rÄÌ„V™ ˆ9ä4qS1¦Îå·…ŠŒ÷h×uC(Bc¡p]5§F/=æâز X Tœ (ØŠ*¢e,€åê «µÄq½ó 1JЗå–-Àâàe*, B¿¨1U€ÛŽB©ñ9„JÉ0¸¥õ¬.`&b fCâÕª>ÐÓ™¶€³•$ƒ¼0¾œˆ .0,òP GyåÝÁ«]’L*W2SbÈu]†kŒµbÀs³>¶ÝöMz¤ — =J«I@ ÔÔA£Êu€`Ä{N…Î.äÍ/j¯ží Ë'@TNuÞøÀø@V®‚ ñA£äÔŒa¥:`8çé à|Ogzæ%εF€Yºsªüä…€­\lŸ'A 5S’;•Zƒ¡1‰ïUkÂüÃUH[Mo”žª!‚çþŒ§ƒ©¸$lò¾Álxþe,*J VæÎ5‘]ò8¸ñçV\0Å„šz™ …îîî:Ó4[®+žmB¢Q3D¡(º“v á¥Cø^Ãq½µƒæì²Þ¿³1Z(tww¯³m;×ÜÜœ{Ó›ÞTU‰)EUàk_ûZ¼±±1é8NR)•,‹É½+^'Fµš%œ1 ˜ä¤WM=r1gpvÔ;תxÖq]w³aÙ±±±ì·¿ýíœRj,‰d÷íÛ7ÿ,ªŠ?üp2§’Éd½eYI!D½¢H®¬+$ã†s¶àFf CP†S-€žB `|q)­§4øt¡ «}CÞœÂ/d¤”›„Y¼eâ³Bˆ1Ã0Æ}ôѱH$2v×]wÍk)Ü…FUÀ7ó©h4šR@=ÒZ× !RBˆz­u}k]ötßXS›ðçý–ƒZ€2.@OÌ{IAÙ‡?–ž;ˆf ¿¸žœ-I˜Öàúú±„b=^ãI)3À˜eY­õ˜ã8™Gy$cšæèR[„¥ÎŠo~ó› †a¬°,k…Öz¥Öz%°J±ZJÙŠ7+¨Xóúµ'_LšVF#HEÊ=Ì5 @¬ÌßÉÏÿ•†“·r+Éh­ËfþlGñã ~ÕW‡D©×¯í}hSJ­ÑZ·›bµb•iš+•R+MÓ\áºîÊîîîʉºHXJˆîîîÃ0‹Åb£”²IJÙ$„hÒZ7k­›ñ‹nV+ë"ªéŽõÇŤãd,“˜¡hˆMÌ·Ø*HϾœ¼Mg]`"Nš<ø›žêM"ÐúÖÖÓ§6¦2`¥b¥ÖzÐ"„hÑZ7K)›•RMRÊ&×u›„@ã~ðƒÔåü#/Kæ~øáD2™L ©µNj­¿ŸRJ©z AÑ4h­Ö$rÑ·lþýÙíO¯y9×)º5\\åùá˜ßðeE š,uÙÅ¢gZLj kÒw)Îsg“œÉx˜©7‹úöu'/­­Ë(­E …Rk-|÷¡…/E¬´ÖÊ0 p¤”N6›uº»»‹Ká–„]]]r×®]¥T7!DL)BÄ´Ö1!D(Ýê”RuɈ»kãÜã£-‘Ck¸X>ß‹ƒq>¸ŠEÖ7X¼<:¾<èd(…. µ†óÙ}#1ú.Å鉑µÇ}KasSËyv6ŸQCEA$ðŠAm­µ%¥´´ÖE­µX@\QBÄ€¨ëº1Çq¢Bˆ¨eYqÿ˜+Š%!ÀöíÛ…mÛÒu]ô!„”RNøŒç¢‚Íðÿfà-Êilmbkã/gSœm¡?—bØŠsb¸ŽÃuh ©0¥&QôÔñC1êL—DDQQÜvݽÃ1ÎgM¤Ð4Æ5ÿçàjò¶AÖ–aT Î°iKdØX?ÂÖ†!Œñº#¸ÎàU{Ò¿!„J©)÷ Ã0.ÿA…óÀ’`ß¾}nww· LÙ´ÖŽÿÞÑZ;B[áh­íà3^/³€Àúd†õIïAMÇàl>E.ÅÙ\Š‹… IÆ6ÈØ‘Y¯­0éÉs ‘kc¬MdX›ÈÐ6§cù×e¶ÂÖZ÷Ü“+¥t”Rá} !\ÀÍf³K’,Z2 P___( 1Çq J©ÀüG¥”Q­uˆ!LÀTJ™RJ#èýZk)¼¼­ÀÓ!â¦K:5B:å= ËQ‚¼¡àš]Ã5)ø›Ò‚¸á3â†ë¿zŸë ‡X™Ò²22þë˜"«µÎâÅÿ9­uN‘òJ©‚¢„Ã0 ®ëæßñŽw, –ô‘1ÝÝÝu@£RªAkÝ`FƒR*%¥lÐZ7!RZë 70ùs½Ö:å'ŠRx:âJ£@Iã !2ZëŒÿ9£µBd€Œ"£”BŒ*¥2BˆQ)å¨išÃ÷ÜsÏåbÚ+€%fPwwwÔ4Í&˲RRʔ뺩€@ "‚z_éû¤Ö: $ñ¬A‚ŵl6Þ­²Z묟íË2Þó'[ƒ 0¦µÎh­3RÊŒã8£¦ifb±ØÅ»ï¾{Œ%j|¨øÝÝÝI QJ™²m»^Jdëñz{ÒÏ&…¥ žê„ ü(¡$zˆù[”ù‘"ÐE+ø[Þßr‰g!JÒÀá¦”Êø¯C¦iïÛ·¯²Ç-"ª…Äã?^gYV£mÛ™O†Qš'H!Zë ·×ù[1­u<µ€¨Ö:"„0µÖ&žJ7JtÚ“åZk­„ Oœ9ZëRÁ¡´Ö/Ïk­sRʼÖ:ð÷Y!DV)• Þ†1*¥²m;S  ÚâÉ'Ÿ4’®ë6!꥔ ×uBˆ°·uZ블2®µŽû¹ƒÒ^ñ?¢µ6…ãá¤ÀÍ´÷O’5®ÖZŽ¿ÙZkÛ>,­uQZ!DA)Z)eNkSJå ÃÈ—êëëG«uH¸j 0 ¢»»;‰D…B!eFÊuÝ„añ · $Jz½”2 À„ž§ ŸÞx¯Ð ø¡ZÆYJ©ÐH)‹> ~²'/¥6MsÔqœÜáÇ‹U?9´V0ÝÝÝ5M3Ô PÒø†aD\×5¥”ædø½Þ{êð¸ÀËÓ¨Á¦”r¤”¶Âv]×ÖZ[±XlÌuÝL¡PÈmذ¡xÛm·ÕDèdÔ,¦CWW—ܾ}»Œl6+ Ã0âñ¸ ¦išZkò,ÏZëÒD”Ç!„kÛv˜ÀYµj•zê©§Tggg`)® \uXÆÜ°ÔõËXb,àÇ2®q,àÇ2®q,àÇÿDßwŸ gIEND®B`‚x2goclient-4.0.1.1/icons/128x128/edit_file.png0000644000000000000000000001411312214040350015310 0ustar ‰PNG  IHDR€€Ã>aËsBIT|dˆ pHYs7]7]€F]tEXtSoftwarewww.inkscape.org›î<ÈIDATxœíy”\UÇ?÷Uuwõ’NÒ!é,lI'!ìk04pÁ¨,ŽÊ!8"*z\ÎQ¢Ä3‚ÈQÁ‘uâÌ8¬âQD$2€6KdH"aé4Ù{K:]½TwU½wçû^Õ«ª÷jyµtuª'9ý¶zïÞw÷w¿¿ïïwïRJ&¤rEëLÈØÊ„T¸L(@…Ë„T¸L(@…Ë„T¸L(@…‹?—‹—¯í8 x¥8Âö7›í\Î'ùöÆ5sïëBx•\-€4ÿ¶¿nÛ™®Mw~<ÉíË×v\1Ö…ð*9YS ŸFuc­6ÍPM%¤ i¶ªD€Dªsó˜Ìk„É@ ·{Œ/‘/_ÛqÞÆ5s_ë’ä*^@j¨ÒêÍÆFJI|› Û)ÁÊÒk ó8j 0Æ•ˆjà™åk;NÛ¸fîþ±.M.’«˜¦ZH!รª¸cåÌb”«lååw†¹åÁ.§SÓ@>»|mÇÙ×Ì •º\^Å‹ …Àã ªHüZºŠ‹A>¶|mǸy;^ÀЄ@«@-ðû2ÕY¬ygI Sñd0• ÛŸ*_6W‰›–¯ÝùÙb—¥âÅ 4„‚)¾$ °`V5çίuºô×Ë×vœW’Bå!ž¼P 2-@b¥u¾we3_üÅ>võFlg„圲qÍÜ]É÷i]ÝþYà œ¹ûÿÍmëZ~V”Êà‘ÀlüJ´É ªKjü‚Ÿ|nŸ»w/Áa?Ý áùåk;Nݸfî€u°uuûEÀz²{ÿ×´®n?øRÛº–HÆ«s/n 5 T¤$c€ˆ®‹©õ>î¹v_øÅ>"zü¼€ã$òÏË×v\¸qÍ\£uuû|àQÀÅâFÎ_‹aò$†ÃäItCrp@gýÆ>ÂQyÐÒººýŸÚÖµ*d}—0½ÑÏ}×Ïáüê¦O·®nÿ|!êã)(Dåò> ,__qgÍ j<7¤Â?X9‹™Sª3îöÙM¿a&UVû_¶6†C€Q±Aàlöô†ùÎC]膉øÏtFüá¨dgw8ÖðÉ=ÝNY ¯®FKÜ6 PzÀJÞ¯T%HƇ‡ nz “,ÿÛF G„Þnx†ŒG†”4|öÆŽI¡,€·h °ò*Sì!)%wÿ©'#âx·3Ìàˆ&@h‰=]˜þ•ªsI “¾ÓoÉîxîÁx ‚ÄpÔlÛ3ÊÔz?Lƒøw÷†é F¿tÄu5‚ú€ó½‚!UvZ»åSOA–P¡ 6Ø9þ;VÎd– âï FÙÙFÓDlvŒÍ>Þcö~“÷ŸZïܱuCòÝGºØ{0°¸.¯ºxøMlúV%+€aÈ8ÇŸñŽèlÝ3¢”hRÄ&ËèR‚æô)4$>¿ÆŒF¿ëðú³¿äÕö@'pyÛº–¼æ xc…b+´ý‰è’ˆÙø™ÿæ!"Q™‘á3L†oÎT¿kêùŸ^ òH[?@øDÛº–½ùÖÅ«P±I¡!w;GXšñK)Ù²s˜!3Âk|Ž_J˜ÝTEM•s“lÛ3ÂÿÐcíÞж®å¥BÔÇk4°"?ª+ŽhÔ ¥¹šÛÒ þ7vÐÔSÜ=7÷¯yŠŸÉuÎã~O0Ê·ì´r ïn[×òŸ…ª“7 0•73èÇŸñïìóÎ0Ò¡·'=†„Æ:Ÿ+e<1¸ùN ê€ Y'¯Ñ@YiCÀï^íçñWƒO0Êæöa¤”èN½ÔLŸy3ª]Ÿ{ûï{رà]àʶu-.)(Þ$/ RdSû0?É’ãþCDu÷ÞnØâþ> Í®qdúþç…>6¼1.m[×ÒWèºå ¬ °§7Ì­gæø£ºä¹íƒ ;†wS>'Î ¸‚¾¿½5Ä}²¸W·­ky³õó¸>@eä „tn¼_qüé?ÀóoÑŒ*šWŠ©“B÷¢¸€…³j˜âBö¼×fÍoÕÜM°õ¯ßky²(ÄëÜ@¡ˆŠ#W¢ºä;w±ç`$#âmgˆw;Gñi"Æã«Þ®H™%R(è˜iUÌirÆÁÎM`8,ÑTù´¢ô|KÐÄù'Ô«ŠY‰çœÀñ @qünÉœRÂÙóêX4ÇÙ’ÄhÞQÉOkàŸ/œZ”úå"ž£ã5-<ÄÿÆ®ØLÉßÓ]R¹çΨæ‚EΠÏNó.š]÷/Ÿ^Ìjf-Þ¢bü®-âßßaýÆ>tCÅí­iZöÞnïýG5øøøÙ“2Ò¼M >î¼z¦k¸ÔâшqÉ<–%â1øéŸ{5ÒÆô• ©©|jÉd×FµhÞ*ÜqÕL¦7zy‹#žW ‡ñ5ljæž,¿nH~ö—^:G½a8=Ÿ\2™i“œuëîx6ïªK§sªËsÇJ</`<Í ²#þ«—¦Gü¼x˜­»GR{»ñËø$ÎKΘDK³sx·»_eóFu¸²u2=«±XUô,ž0@Àm<Ðy€¡>¶¶´@Nc¨ýXòùLû¡ˆÆ^˜Äàˆ¥‹êøÒÝÿÆíƒ<õ÷4ÍÛ 5Ì©ñ^¦dúœÓRK«‹gѼ}C:'5ë,ŸÓɶmië°w¯(/à‘ ”B:†®‰fýb¯œîœ!ë_m gÈ—ñïØ?Ê}*"Gªð®@!â™>VìÞô*®8w²k},šwzƒÁ¿¼/d#™ë!eiͪç|€|Š™mæ«o­çƒÕL©×Ò"þÞ`”;žè&•æN³·£büqÄ/A šê4®Y6Õæ}^Ѽ¿äËçÐP#²¯W‰ÇUOA1 ‹²¢±½(‹5´íª­Î醸G#ë~×Í¡AŸ–”ȉ™Ñc.Ò£I•©óù‹›\¹ûÍ‹äú%£Ì™’˜;™i(õd¯ß èÊlâ>;ºý<±]Íé?ÀŸìåíý£ø4e~íé]`fôXC‚|öÂ)3ÍyŒî°h^à§E9ýh°ÞRöئü@b­h’AÅ¿½Þ§k@ã¿¶4`H‘ñ?ø×Ã<·}P¥`Yù{vª“2Ï]zÖ$ΞçÌôC:«Lš÷}Çé¬8ÙúbnusÃ(Å’<¾`~9̶`]1;EE4~ùJ=¡ˆ–ñ·½5ÄÝÙƒ¬zà}C:§Ì†•‹ãq‘|ë-!± EV¯ÑÀX0H˜ž€5hš–²omçrm.çÞêR¤ŒÛ„Ëd©­ÖøÉ5³Y² V}ªÞ “:N=6À.v÷ ¾ÿDoÓÜ_}¿úšh®uq¿VÑÎ"þ®ËR¤Ðân`þ•övÎú¿/¨^×ÉGgîý–ÔT î¼zËNª!ˆ’¨a0s²Ÿ[?1#-ÍûìÖAj«àÆÙ×3›ºav,“l+; K Õ„@hÞÐkc;íkšFH5Vº|'©ò þõÊf>tZ Ð ÁÍ—Ïp§yá+Ë5Žnò¼ÞV¢Ù0e‡ë£Q!dAˆ \÷íÛ=ñt­% sϰõi‚ï~²™Þ×:Bìê‰pŠðëèsÛ£Šæ½j±ÆÙÇÅ•¤øG²¬-¨yÊ …ëÉ^qÂæÝª õÕÂóÌMÀ “2Þ°u0å|pXgÕýjц¥ó5.?Ó_¡ÌéZÔ¿’aO !¤9\¥usÝ÷rnG—ÚŸ=-;è&žXO•O°egˆÃÃ:SÌaÀúþϾ¾(ó¦ nXoüBÖߦ¡ ¬3—§À\'Ч¥ŽÇ¹ôäB€Â½ýêMä²êF¶ÒÐX<¿Ýüïö¡ØñŸþYѼSjaÕ‡«©©*.¦±º¾HZ©Xâù³qš­ñ“ÿ—ÒìV…:ßÃøŸ,ŸÒ¨éß hÞG_îǯÁªKj˜Þ˜èó2ìY1Ê“ TÀC,JKuÕbŒ Y² 7ÀI.X¤†×ß ñ⎡Íû¥åÕ,šU¹”5×ë•B”Îx^&. TYâùŒ{^aÓ.õnêj4ü.K¯ä" sç×ò··†¹íÑ.¢:\zFOÉ¥±½Ô;¦%ò®9¿Æôy)o6ûʳ*_/À@© UXM‹—¯Ôа§O=û¤@'yáC¬ßxˆw:G±^}Cà¦u1F°u˦ÞB³¬€,_ ÀP, ޽£TŠÐ?¬ÞÍy r€Áaæ ÏndxÔzÇ‚@,]XŵKL ¤~®­ØŠ ö\ ²³‰@KÌa+¥ù?ÐoÄ`ë ÙÀßT©`öÞ’c§ù¸zI€ÖÕE)o¶ç4“ N——€âtÁ‹%¥P„—wšSGû¨ÊƒÃ:?ßp o 2¶õv¿`éB?×^PÇä:gJ»Š`ß[UY–^¨•o ywó}±Û÷ªeó;·>Åu×Ýǽ÷ÞK Èá¿øæ¿ÚxˆwØ{;Ûäãªó\°°z̬۾âb¥-; ‹ Q˜„¯/v×!¥C¶ñë§cË–-<öØc4Ï™ËÏŸ9È3ɽ½ –.¬áÚ¥¦ÔûƼ±ÓŸ3Tž>MC‹!Öâ#ääc‡‡U2çàm¼½oˆK¾ö ÓÏü4B‹»…ÇNÓ¸jI-ËïSnŠ brölŸŽu ²±“Ïï?¬cH4¢4Ì:…y¹IÇœ;_ã‡óVsý…uLmðÆà™"Ó Pûåj„ayɼ¿¼LûÖvÛ;ê³mBóÓòñÄÎÓäãªójY~b äf»P÷Qˆ2e%Š ŒQÁÙ&„亟î\{Oü»I5~5¶_¿¬ž© éÇö\ž1VŠ L`N¿,W `QÁÙÀäý|¯õk‚SŽö³âôZ.>¹6ëßy)O)!á8±q”¥{N ù ^_àª5â÷>­Ôí$ [ÅvËΘ®‰PËÅkÙ…|¹vê¡Ìvº}/"hån|i†€±îe㩱D3qehÀ𮥂@(¯F*.)…Œ -ÏŠPj1ÍÙæXÀð%åZ2ž¡\DŒ/@B(Ú²ÀL`©ÆïrA,'ÊЀé¸Y(/E"(_ `1†²åµFБ ÊüÇL@™Z!¤Ï§Å&‡Žw·«ÜDµ¿(K VN È/0ÑØîb[Š¿<-€"-”¼_ÎnW¹JYc;ËäЉÆÎ,Šåí¡æƦ43a )ã€*ìâNˆw1]@KÊnv°¹>€Hɘ‰4Q/ÀÓúš¹>ÀDÓ^DÜ(ßõ¬Õ,':q$I ÊJlL`1Š3!óÊw^€0g„£†ëÊÖn%Ïu%l§ës¿·ó‰b–Ý˽­‰ª¥²^×á¨dûžÑØ2mÖG• þ}=µ-mÛÙ·–ËŽ}²-¶é¸õy7{¹Ü'>ßÚNü*¸ýÞnÏÌæ¸õŽÜŽÛ’BËÓDtÖ :¥DX `}YCmK‘ü2Íë„ý£‹æµ ãŸæ±Ý)ͼ¨Ä{ ž›ª†TÙÔ¶ûº7ÔŒÔ:ëËàöçÛ'5žP¿—Ö}­ß¹Þ?EÌò¨¿Ý LZ Èç¶ í|nÛЧ ¶¤æ°ít,›ks¹‡×gã¼×{eú]Ù)@ˆÔ‚âpL¤9îTùlŽ;=7Ý Ïç¹éîŸ|Ük²¹ö°sSF„eæ&¤2¥<¾a>!c& Pá2¡. Pá2¡. Pá2¡.ÿuþÆã $ IEND®B`‚x2goclient-4.0.1.1/icons/128x128/edit.png0000644000000000000000000001320112214040350014306 0ustar ‰PNG  IHDR€€Ã>aËsBIT|dˆ pHYs7]7]€F]tEXtSoftwarewww.inkscape.org›î<þIDATxœíy”Õ½Ç?·º{6f˜˜”Ð,²$ ¶#FÅ%. …h’Gž‰'/š ‚M4Bó‚zŽc¢aѸây®,6ADE0H²³ïK/ußÕKõÌÐ5ÐS³u}Ï™ÓÓ5UÓuû~ë·ÿîRJ,¤.”ž¾ = ‹)‹)‹)‹)‹)‹)‹)‹)‹)‹)‹)‹){Oß@Ëís“…_õ?mözœGzæncV:8y¸Ü¾bà}`ø)\ÖÜäõ8_6ç®:‹IÂåöe›€)gvPRà@JP%¨ªÔ^¥ö*ÃÇZT”@“?÷zœôÔý[H.·Oë€ÙÃòí¬þQ yl ¯ †´ïû¯›ªxìíšÈáG€Ÿx=Π‰·Û!,#09ü˜•.X9·ØpòAIH•H ßýÆ –ÝXˆÃ&~üÃåöåuÃ=ÇÁ’§ —Û7X§ÄʹEœ7v@Âóƒ!‰?(Q(ŠÐ^ì9ÚÊ‚5¥T7†>®òzœ¾n`I€Ó‚Ëí›<ˆÛgtjò›üªÎФ€&ŽÈà±ùÃq¦œlw¹}ÓLDN.·o8ð"yÍW2Û•Xj«ª¤±UÕ&<,l#†aÄ(,ÊsðȆsþ¸,€àu—Ûw«¹#Ñ`©€S€Ëí˶“'!ƒ?Ü: »¦Ã;„”’š&U•(ŠÀ&@Q@[øU°) „@U%«6Vò”·6ò/~,òzœ¦M’%:‰°Åÿ$0yø ;÷~»(áäÔ5«‚aq/#.!171üðEžAEüôòÁ,¸zŠö¯O˜7*‹§03;Cá·s‹˜•Øâ¯oÑØªé} QNüLj $‚k§ äÞ›Š"oMµ,t.·o°XðëÙ…œ9$-áùÍ~•êÆPÜ$륀žƒPm#äÏ–ù51Ó’„E¸Ü¾©Àc?»r0çŽÎJx¾?()¯Óâ9úIÖ?鲈BÕ±@‰ÍŒ©°’A àrûÎ^Òg;Y_ËMx~H•¯ } Rh¬½E ‚ˆ R"Ýã¨ÄÌ Kô\n_6°(œâÌä§W 6¼æXu°­±óý#ÇÑÙ ‹xØb °ÐÝp¹} °8ûŒÁ~=»ÐÐâ/­ ÐЬFu¼~’õV¼á§³+",1b°u“ °Ð1î®ÎÉÔ,þœÌÄsPÕ¤¼.ÔFÇëŒ?dôiêý°D°)‡½=¹Ñ=À²Ú [`SàÞoQRàHx~c‹ÊáÊBD'_žd",Ô°(Âç)6Èpt,Y, Ðp¹}ÜyÕ¾2*3áù­•}¥­„ÔxQ'þ‰ÿQ‚ÈNWâô¾–èf¸Ü¾‘Às@Úçårí” Ï©’ÏŽûñ‡´ ŸŠ)ˆ0 bR@"ÿ)´c9övz_Kt#\n_ð0dê˜,nŸQ`x;R?õ-¡8_Ý/Õxß_/r³lê}=U"¿ZÀL„-þõÀ¤‘Cxn,Ô»`âP…Ÿòº öä‡;Ö÷H‰ ¡=é …~ïÈÎPÈLKüÜÕ5‡øÅšã‘·Ï&1"âÛùþm²ƒsì ÊNü·øU®-¥¦Qx¸£+ÆÚY¤€€Ëò(¬œ[død–×Ùy°YÓëJÇ“¬¹y±c»``†Â°üÄ_¯”’_?WÆÞã~€}ÀÝÝ’2*ÀåöÍnwØà77Sœgã÷îmÒ¼è,ý8—¯ã Ÿt»`Ô䓆y#xüjÞú¤ ¸ÚëqVuÅXO)A—Ûw1° `áµCùÒ Ï%›ö4ÐâWc“¬Ê¸IÖBï*B0¦8Ý0}¼iw«ßª-Nt³×ãÜÓc=Uô{àrûÆìß™–Çåçä^óîÞFjC(B "Í‹õšË'Q¥ÇýaLqš¡jÙWÚÊÒgÊ"oy=ÎWN„É¡_K—Û—fñçO?€ùßdxÍŽÍ*Īwˆ=ñÄåùõ>šd9ÔahôÕ4†X°¦”–€Xãõ8ïOfŒÉ¢ßÀåöÙÑžü±cŠÒøåõC uòþ­ì<ØÜa—>²mŠ9¥dè@;# W C’EëJ)­ ‚¶žÀ¼.jRèÏ*`pñ l+æ&`*ê‚lÚÝMÙF 8#éÜXgûàÀ,㇧'ú÷üîå v~Þp ¸Öëq¶$7ÄäÑ/%€Ëí»˜ï° VÌ)¢071Ï›ZU^ÝY?$㌺XIW|gÄ T%¤ÙçŒÌ0Œ'<»½–ÿUÐ\çõ8uÁP“F¿#€Ëí» ÍßgñÌ!L(Ilñ‡TÉ«ÔÓТBÛ‰o“Љ&€Ð~_•Iº#ñ×øïýÍ<ðJEäí¼ç{I´‹Ð¯àrûÆ£EúlßûF>—~ÉØâsWǪq>½>Öß®ÀSçž}f¦az÷hU€ÅëK#jc…×ãü[²ãìJôÀåö Yü¹Ó'`Þô|Ãkvìoæ“Ã-š»ÕëZdˆk.åBH¤Œ¹…c†¥¦¬9N]³ ð pw2c4ý‚.·Ï–ÝsŽ–Ž{–±Å ÌÏÛ»ÚM²Þ§úþÄb0,ßÎĉU‹”’¥Ïœà@Y`Z°GMn¤]þ¢.œccÅœ"C\Yä…÷k ©mu||H·}öO’“©ö<òF[?m¨F óÖ%?Ì®GŸ—.·ï`^š]°bN1CgßžÞVK‹_¢(D 9bIžx) Oú¤9ÓÆ0 ó¾þQ=Ol®mqȽç¾.ª)èÓÀåö]VÓÇ’YC9ËÀ—RòìöZ*ꃺxz«¿m-?À´ Ùdg$6ú>=ÚÊò磅wx=Î7N„æ£ÏÀåöMB«æUæMÏgú¤lÃk6~ØÀÞãþøIVõ–~|”Oï~mL–a<¡²>È]kãJ€Ç¼ç“¦éè“p¹}CÐ,þœK¾˜Í÷/ê\Œë§È°ŸÞ¯ðÑD†§3nXbéâJ®-¥¼.°¸-évúœ àrûÒÐ:xFN(IgÑuC ¯9Táçù÷jchuú±ÂÍö¡_íÚ’|SÇ}÷¿XÎ'GZ³¼§ÿtÇØè‹àQà‚¡mܳ±Å_Ûâ/ïTãêsø jùuÒ!7KáÒ/e†y×½[Ã?vÖ4¡•r—%¼ ¡OÀåö-nÍpVÌ-¦ '±ó%~»Šºfµ}(7üz²Ð¯Ã&¸âË9†ûçgM<´±´w«×ãÜÙ5£íô¸Ü¾«Ñúöùåõ…Œ-6ξ­{·†C“úôz _¶96ãœÃÜþçå~–<}"¢.–y=Îg’d OØ.·ïl´;”ù— â ‰—fØøa=ÿò5EÅw¤G?Vȉ.ÊKõJ_?€/ MœÛ¯oÖ ;ZTÐl’¥I ±ÇÐë àrû ÑÖêÉžqv6·L3Žñx°™ ÿ Þ:˜d©õß·1U)˜T’Îgb£/¤J–<}‚ÕÐú÷n1s5O3Ñ«U€ËíKG[¥ëŒ/ŽHgáµC ¯9Z`õÛUÚ²ìÐÆåë ÂGçË·3ãlã âC+Ù¾¯ûú÷ÌD¯&Úú|S‹ríÜwsiíU -!þø šýmWâŒ7þ ^ß«RkÛ¾~j®a˜÷ÕêXïöïÍêŽþ=3Ñk àrûs2Ó+çd!Uòàk•”Õã,ü“Õòëëùm Ìvå†y?>ÔÂý/Fü?özœ[º`¨=Š^I—Û7ð`é …8‹Œ-þ'6WóɑָIŽÿÄ‹½[8óÜ\†å'Îí—Õ¹{])z=Î?%=Ð^€^gºÜ¾Éh«r‹Û.+à‚³Œ-þ7>®çõtkõ´©åGÄâûmZ·/œ4€I"­•»Ö–RÕ­ïgI³× W ¼ýÚ ëªÉ9̹Àx ÝGZxLë°‰_’UÆ–h‹Uøh–>h™8"ƒK¾hœDZþ|9ÿ9Ö à£ú÷ÌD¯!@xûµá眙Á/¾eã?Qdņr‚!^\YèÖêѪwôeÞz‰P˜gg¶+×°r诛ªyãã€zz¨ÏLô  ¼ÃãÀ”aùvÈpA…f¿Êòçʨk uиÛŽE¿$kÄ-®0ï¢|Ã0ï–=<òFÄú÷vwÅx{z8Åíפ”üþå –û㌺è=莵‰õ !øþô|ò ¼Šý'üüꙑ·‹{z‡O³Ðã* ¼ýÚm3†"Ã,À“[jðîmÔ­Õ£ åiÜŒz5 JÉlWÎÂÄ^EmSˆkŽÓì—k½ço’iïDJ€¶Û¯u&ï¾iwk¶Ô´[’N¾"wD LŸ˜Íù㌷x[¼¾”cÕÑþ½ÿJj½=F€SÝ~ à³ã­¬ØPÞá$GŽA|eoäœñÃÓ¹ajâ þðj;´§—ô!@xûµ @ñä/dpçUÆ›1T5Y¼¾4"–Ûéø“sJ 0×Îüov¼ð~-Ͻ×ûú÷ÌD·Ûúí×J Ú~-”,^‚µ‘åYÃÛ±Dt¼Î͋ٚ]0 MðÓ+®úÁf~÷r´ï‡^s{’Cíè Ý~måœ"Ãí×~ûR9j9i(7~­žx»àÇ—†yWX´¾”Ö·³Òëq>™ÜûºUœ·xß ÁbÂOîOþ| »Mà° ì6ÝFô÷ÈkYm€ƒå~Âñ»v¡Ü¸O]ïžn¾ ³ VmjUY°¦”Ú&àU´ÍSÝ«„¸=<“4¶ª4¶vú°¯_œ!úÕt@Ûݸ.š˜Í·¾’xP)%Ëž-ÃwÂÚÎÝ7õÆþ=3Ñ­‚3~xq>×LÉ%’C’`Hs¿¢ïU¢¿7ûU~ûR9ÕjÔ¿o_áƒú ûþc‹ÓùÑ7W]ýV5›÷4B/ïß3ÝF€ÉKþ“!íYÉŒsrÈ7ˆöé1¡$ƒùåD]Y¤1šâíϧƒ³m,¼v¨a(ù­] <þN5hý{³½çg§?º¾‹n33Uûu°+‚"ƒEÛ¢0×Îêù%Œoàíê%¾ª×a¸g 5$×޵ây6Zº§×ã|ýÔFÓÐmPá2À°–ÿd(ȱñȇ3º0 „V¤õõE<ÉW 1 óV5¹kÍqZcý{ÿ{Z7ÔOÐmðU€ÑEƱþ“!/ËÆÃó†3¡$CB+þ”0ç‚|¦Oæ %w¯;A™Ö¿÷.}¤ÏLt$œnÅf„ì …U߯—Gf‚€`ÎÉ-ÓŒCÉ+Ãñ´þ½™}¥ÏLt ¦ÿbß@!ÈÉô‰Æ8FÈLSøý-ÅÚš¿B0¡$ݰ°ã)o /ïè›ý{f¢[Ð’!®mßœ¡=öEºC0Û¥%w¶ìiNxî{ûšXõZ´ï»}­ÏLt ¤dЩM“N®±ÈLSøäHKdùÕv8\áçž§¢ý{¯Çù÷.½‰>Žn!€L -ôSEºCpþ8­†àÍ] íþÞØ¢êû÷ž~Õ¥7ÐÐM@Ž˜âLÎ쇗†yóãx¨ªdÉßOð¹¶çGÀwújÿž™0__²?D&hñù®Æyc³ÈJWøôX+G«¢Û­òðëUlÛÛý ÏL˜N€ ÊuBh Ñn§ƒ4»à‚°—oóÚÎzÖn­­ïz¯Çy°Ë?¸ŸÀt¡^0¤‹ @=¢j`W»´pß Ñþ½Ÿx=Îͦ}p?€é’/êï;]L“Å€t…}¥~~þD)xÈëq>jÚ‡ötƒÐ"€ç,º vÁ¸aZˆ¹º9ðð?¦}`?‚©éàóî:8‡ÈH.šhÜäyª¨¬òÐÆJÞÙÝÙƒUÀ ý©ÏL˜JÅœ)…ÀaSN; Ø^ÛYÏ_6Us¨"fõ#¥D°SÊ-[—êWý{fÂTH¸º&XQdÕÆJ6ïnŒ¤r#ŸQ‹d­]QmY6ª&éJ1˜]4`Là+;êxrs ‡*úÃØ*–l[>êÕän1µa6JFåÕE¾¨¬.ȃ¯U°yO#þxM^ƒäo­rñ[+G§\ýž‘}ðºçÝupiÁJ!%{ÿô žüËj.¿üò„×¼¼£–'7Õp¸*áòápÍç¿¥Ê=ÿ\îü?Sn6…ašiÁY h®ôQYvŒ+¯¼’E‹±téRl¶˜MPZàÁ•lý4þi—Èj$O´*¡{v,×>Óc¡K`¤äR! áø®ð{ÉòåËñz½¬[·ŽÎ`Í–ŽèŸv)U!x_ o[6úM³îÍB æI¡E}û°ŒìiÁŒ_í$sðèØÉRVO¨-÷l`R“Y÷d¡=L”¢Dh(ÝENÉd '›‚ W Ø3"'¨ ¶ EÞý®gÌ&³îÃBb˜bž»äóÁ6(Zª“‘?Bûƒ”HD‚Çí¢vÉ–e“ûuï}_€)À&ý׉pš!#© )¶IEY¸mÙ¨­f|¦…Óƒ9*@ŠAR€@–ÙEÝÒ-ëiï0…BˆmÀH¯gtŸ^H9`Z ÈBß@oY'ÐBÁ"@ŠÃ"@ŠÃ"@ŠÃ"@ŠÃ"@ŠÃ"@ŠÃ"@ŠÃ"@ŠÃ"@ŠÃ"@ŠÃ"@ŠÃ"@ŠÃ"@ŠÃ"@Šãÿô>´U ÜñƒIEND®B`‚x2goclient-4.0.1.1/icons/128x128/edit_settings.png0000644000000000000000000001325612214040350016240 0ustar ‰PNG  IHDR€€Ã>aËsBIT|dˆ pHYs7]7]€F]tEXtSoftwarewww.inkscape.org›î<+IDATxœíw˜åÇ?3’¶{{õÚÆ¢ØØˆ¸P=ˆB sÔ£÷#!¹@È“ãr¹S”Às$áBà’'jh-˜(cŠ1˜fcÜnëíZíjµj3÷Çhµ3’vUwW²ôy=»zgôÎ;óûÎ[~oTU¥Dñ"ÎvJÌ.%9%9%9%9%9%9%9%9%9%9æÙN@ªØ®»€«€*´t €ø`è\ÀýN»õ­YJjA!BgÐWoÛö½±éŽ4æÖ÷9íÖ§¦!Yûy+Y–ÍÀó€ôü' •ïvÍÉ&ºðpÓn}?éÛ_È[Ȳ¼Xëëï^Û‰¢ ¹ˆö à§Ýº'‘:y-Y–O^ÜÚ_.>º¡­è×0‰pß5sQ•O{ƒì²n»mû„•)£U€g€Ëvëèt¦?ßÉ{Ȳü=àŽ·v×ðò¶ô"¨°ñòÌZwûñ'½Ç ðm§ÝúÀ4%=ï)Ȳü0pÉ‹[xgo z4Õ˜xü¦y˜ÅÄ­Ú¿náž—ú›4[ø­Ón½6×i. IÀjàè‡>laÇ`¥áø!íeüÏ?wNÇ£¯ òÐê!¡„÷üpœÓn å(ÉAÁ@–åN`Ðþ˵ ø,†ãÒÒ*~t^Û”q(ŠÂ/^ìç…÷Fî–S±  Ëò1À߃aÊïZÓ‰/d2¿äÄz®>¹!iòšWO i<_<¤šGþe>uUq øÀæpܳɄ‚¼II’~ÜSW¡påç{0æb¯v§O[™§ožÏâ¹e±‡Ú×rÔ¼§ áf`÷¼ºÇÌóìs§^3‹"÷_ÛÉÂKì¡ãl×gÊ<§` IR­ã‡yµÆ,Л~EþëæR]÷8n°9\—d˜Ä‚ `a/@{Qþ©Ý€‰(3‹üúšLñOäý¹>Pè7ÖÐT]=`lrÏß”Ìo.ã?Ïi ®îÉ,yùO¡ `ïø?¢®Ÿ(I?À”¬XZ´´:6øz›ÃU“y¬ùË~#€2“Ñê»ú“7'ã–¯7Çfࡌ#Ìc ]]ãÿT˜Ùþ¶}™  ¢LdåÑqãVÚ®©}ÍH¡ šÔ”kþŸö³Šø›§6Rn1Œ?€ý®YXèˆæµåaÃ=Ù @E.—êcƒmYEš‡´$IF+9@÷Pöz[k¨\u6‡kQÖç-€{ZªŒoü 7œðätE‘ùMqÂÍ:â<"ëaá6‡ëàL`p¶ÓnÝ”uªÒ£ 88ÖäÉÀ”ˆ“«æAÙзpzN"βÊl×iÀÙhBZ¬›…šr$¡wù¹À¹ÇÔŵۮæœDžd[ľ •À›ÃU›e¼éÐ ŠúAbʾ ¦B¤±Æ¼27±Ï>i @–eýÓ80Á) À&›Ã5S³Ž¢MA‹Éè èóäftWkmœö›Š`&9À²,¯ˆü?’s:3KRÚìxe{°±Êž«z@[}œ–ÈIÄy@&8xV–åC€¸žKm×êÌ’•]/liàÍ]µè J‹Àmq=2bnC\K`^N"Î2@'мª¡†”`xÕ‰6‡ëÉ Ó–w¼1÷;ëb†‰ À÷ÎÊ]=-Á`‘©„_Pd*€CÐ*}€öк¡“ª²¸é[çÙ®»3KÞÔœìØñŒ7h:Ë`|~ra+'ž»Î»ƒÛËcƒâ\„…J60`¡¶ÊÌo¯ïÄWgâ;6‡+§”“;þ¬"œ­7¾(ÀÏ.nãøÅqݹYÑZW¨Èéf‘œ `¼¾£Á½WuĺPþËæp]žÁõâ°9vÈ*Âiú0“w_ÑÎQUåâvöÅõ,&œTPˆ¤%Y–k€hß,N4»TÀ=â' r`‹‰[/hŠü.â<Ê›cÇZVèÃ,&øå­Úa& æüãêöÅ&c ›{È'Òm«Öe&Õ0±âý¶ÑR£‰bpÓI"÷®®Ð7ÏDà›Ãµèö  ìÜlÖO6[W—§~Âçôáµ ß:ч2äâ“¡4ï&EÜ}&brý}Ós¥™'-H’4&Ëò š³‡J³Âhp¢Àò Q,lT¸æ?÷¿Y®ŸÛoB«@’è6‡KL,ûÒ ìõh ާyua¾uâÕqu´Ü24WžíšÞ+ΙԢóæªËŒþVwüƒbI{˜KŽò)ÔÑ^·f4ÛñÀ±Æ_ØæÛ+¦ßø  ;×ô_ufÈDQ×k}…ÑÕºk0¾úpô‚0— ¶"7ž¹ƒšÃÜpÂU¹ñó$eGÜ}mœ™+O?™øë£9ÀòöÖwO´·7t™8ûˆÄ?ú‡Bµ ÄOÀ3&04ùëÓþŠüïñƒJâå`·†¹îØ1Êf¨§Áë‡í}†÷Dž›™«O?™<Æh°°!€YP©Úêéh›“8»h¨Ri¨šº8+à3 exLÀÚfQ«’¨‰9mlè2ÇŠq‡ÓnÍ|Äiž‘‰6ë¿tÖølh¢†¼a¯™¶ÅÙÇ3‰© e&X¿7.û¯¶9\-N»µw6Ò“k2©¼€VKà s‡ 7t%®"|Üw?í€ls¸æÎB’rNÚˆ Ä|uüûm>Ãôìý";M‚PðŸwvš * Ë›%Àë6‡ËšÁ3Ï+2ô´þ‹q<žÀ?´`6› úVM¼´9®PxÍæpšá3Ì 2Àÿ¡ó ®<´ ¹€‰÷v‰˜L¦‚ý¼¼Ù„g,éãéVÛ®ÏgøgŒ×’eypêø÷ÿ}¿ÕPlªV¸ýl1Ñtë¼ÇãSùþ3Ä0š7pºÓn]3Éš²1Ͻú/ç.íCŸ ô{Eþü‘:ëYy&ŸÇÞV£Æ¿ÊÖhPh,õÀ+6‡ëä,žç¬Õ*a²,¿|yüûS›ØØ;ÑoUn9ÝÌ’Ž‚Y•ž—×xx­\|B×|©‘=An~h_*³Æ€óœvë ÓŸÒÜm}íXyh?¢0!¨"ð‹WB¸G…Y/ÓSùlêRxìmÍøÇ-ªŠ.7×Ùháž+;˜×˜TÈÀ36‡ë‚,ŸëŒ‘õ:²,ÿ øæø÷u{«yaK#ú‘:­sTî¹xsþVznnˆ@X›vë…­y@¼ñ!…@H?¤2êW¸oÕï:–Ê¥~ê´[oÉiâsD. Oç‡yÆDî}{.AÅXö[Lðƒ•·(ñÞ ~çtóä[#¨´Öšøé%í,l™|€?¨àçÚÇPøýßݼ³=nÌ`"~…¶7Áì÷péÈébÑ‘%Ýÿ;æ ˆ<ðn;| úøE|ÿ¬fª+f®r¸ÏÄñt[÷åÖ þíìšçL^ÃWT£áÇÿסðÔonIiã‘«vkަ®fOÎW —e¹X¤ðƒ\î ˆè! ðÕe5ÜxFÓ¤>äÏhˆÛžíãímÚÛZY&ðS9ó É'2‡•Ä†× â¥÷‡Y½9%< \ä´[³ë3ÏÓ²\¼,ËmÀÑÆóEùËö:Þˆ™Ã7N™ Î?®žKWÔQ–Ãæ¢{4ÄÏ÷óÆÇ£Q?eg£™;/ë -~ÂGBBáÉ ?®²z³—¿}äM%Ê?ç8í֔ʎédÚö e¹ mU-ÃV,›z*yö㦸zž¹ f¤¥Õ\x\mÜ^@©°g Àc¯!oòâõ'¾¿oœÚÈùÇÆ-þ‰€Ö ˆ5ü„ ÞÙîãÕ )‰@ÎtÚ­ÃIÏœF¦}ÃY–¿‰¶ÔjÔ’Š«¶×óÎÞ9I·‚k¬1ÑQo¦¹ÖD{½™ùM4[h¯·°³/Èξ »ûô …é±g ÄÈä{¸è„:®ýRcÒó’~<\;ç£]~^]?’Ê8è·Óœvë`J žfdÇY–%àQb¦•Bð§›ØÔWE¢ba&8cù¾ûµ&DaòëgûÉ ¯ߺ/À_7Œ $¼ëSgk‡’Û2F–å*´5þ¿Ü„Ã~‘·6â¬À˜i1¬XRÅÏiMè RÕô ¯ÊξÎÞTÖ.Þœâ´[g|ÂÉŒï$Ër;ð´ ã*½^3oîªek#A™‰A¥¡"DKU­•“1׳ÜZÁ­¶QYfLÒx Y+ >‡ÐÄÑåñÚf/Áä ¿Ï€/9íÖíÜpÆÌÚ¦Q²,ø1pÐ-8ÙÒ_AŸÏ‚ÛgÆ0á ˜ð…DBŠ@™¨PiQ¨) 3§M§ŸCÛ¬!ÔÈ'úÚøÌ<²¾%n¯ÁD´Öš¸ãÒv4—E8ž¥'6|äx‚p¿NÃ>…?KeC p†Ón}=ÃûO™¼€Y–E4oâÀ‘‘¿ "‡ÕŸ0ÚñþùíKhëš[úÑ -ìN>£´¶Räg—´cmµLix¿.W˜Ìðúp¯_aÓn "PGAXé´[ÿ’úSKŸ¼@.eù0`ºæg ,ðäÆf¶ $,°ŸÛÊ’yå~ò"ÃPض/Šü \è´[ÿ”Ý“˜œü¢“$IÚœ€6`еø§Ã{9²-ù*/¾€Ê<ÑÍ›Ÿh>~UEd9ªöI®eJ“/  š-TX’µN„rPŸ²9\¥yë)³_ @’¤OÑDðþx˜I„³— p‚äKŠÃpÇs}üuÃHÄ*ã¹fbOnx-\EøÛêÌ©ˆÀ êÃ6‡ëºôî<5ö{H’Ôœ„¶ûx”Sâ«Äí<‹¢Â¯ò»Ú•“XM’C¨†p€º*eæ¤"Ѷ¯ûnŠ·œ2E!I’<ÀW€çõá_œ7¹Kû1 S‹àÉ5ž\ã™Äðj’¢AMP].bè6‡ËžÒ™)R4m#à‰Ùì°ÖQ.9¢‡rSrŸí_ÖðÈj7aEÕeéÉ ?U‘¡ýµ˜…T}ž?²9\?OíÔä•$I W†ÕK­ ~®\ÖÍœ²ä+Œ¯Ýæã!ÙM0¬Naø‰·~ê"cB@SôGÅr³Íáº?å³§`¿n&C–ånÕ‡¹ÇL<²¾•¾Ñ䣅-–è˜‚Øæßd]Çã¾X¿Âøß4­qf¶³Š.Ð#IÒmÀ7Ð&rP_æªeÝÌ«M>äûÓÞ Ên¼~E÷ÆGÞz"o½Î¢‰ŠŒè‡4ÖQ‹ÐX¼)ÍŸÄQÔ$é~à" :F¯Ê¢pù‘=,jJ>Ư{(Äc¯»ñøÂ ?Q¨†V€Þð±BIQ`aú¿Š‰#Ûö$Izmã«èX.‹IåÂÃûXÞ‘Üa4èUxjÍ#á8ÃG}ÕS~¢¢˜!EÈzÙú’"H’´ 8ˆÏ8kñ+Hî0òúUž[7L¯'¤3°Jl+ >‡˜(2Òe,$f=±¢$’$½œˆn)<€“­CœqHr‡‘?¤²êúÜ!£Ñ#­€xëY°µýJˆ!Òp<°M~tççÖgX!=a^ÛìewhŠ7>Þð™ ¦,œu®$€èú>Ї/iñqé=T˜§v)*¬Ûáã³¾`Â:A¢Jb&–œSÎzrII“ IR7ZÿÁkúðêý\µlµåÉF›vûù´71pÄé3‰ 2¡Â¬ôeöË J˜‚Èšˆ_A[3Jkuˆ«—uÓR•|ÅXWO=$9Af (3©®Œ~¨£$€$H’äCÛ÷}x]Äa´ .ùôð}`ÔÛüË4è˜x9³_NP@ Dú.C›á¥Ò¢ré=,iNî0ô†ÙÙDQÆ[Æ®ãti¨±âÏãéÿÒHI)"I’*IÒÀêÃ-&8ï°>Žš›|ŠßȘÂÞÁÖ“ˆ±c(]oõúÐvlÏŠ’ÒD’¤Ÿ7 ë?øÚ¢Al Ý“ÿ0ÂXdžÀøl¡LD *‹š|÷K’TjÎ’$݇6|ÝÐ “z8k±q©¼DÃàö†'r‚4¯Ü|~]àÇiþ,!%dˆ$Ig† Àò/Þ‹ELî+õ«Ñ:Aª4W9qç.I’’g7)P@H’ô21ý‹šÆ¸ìÈ*ÍSOTÁ°í^2DAåÌE£åfµ4"(_$i °m^_”ùu®^Þ·±V¦ˆ‚Ê9Kú8 Þÿ3I’r¶qeI9@’¤Ðú 3{›«B\½lmÕÙm14nüÃZ}«ˆÁ”-E=$,×DÖFZ…6•-ÊXHàñZøÔþžÓ5ea¾¾¸ŸCšÆ¶_ÌUÙ?NI9F–å:4×ñ úðÏn6®¦žŒeí#œzÐ •uÍøŸä6µ%L ²,WO¡­}EUáåmõ¬Ý3ùÒt‘6>ÇÌfa½À¬ŒT8sNIÓ„,Ëfà÷hþkvÍáõµxƒ&TjËÃ4Wi [Þ:J•%Ú4Øœ'IÒ{Ó•Î’¦‘Èò¹÷ߎ=¦¨à3S[šlVгÀ•‘Éi£$€@–å[€ÛH­Õåì’$ÝôÌPÀ !Ëò)À¯ƒ'9e ðà I’RZs6”0ƒDŠ„“€Åº`x#âK˜qJ(rJžÀ"§$€"§$€"§$€"§$€"§$€"§$€"§$€"§$€"§$€"§$€"§$€"§$€"§$€"§$€"çÿDÚí.5IEND®B`‚x2goclient-4.0.1.1/icons/128x128/file-open.png0000644000000000000000000000772312214040350015253 0ustar ‰PNG  IHDR€€Ã>aËsBIT|dˆ pHYs7]7]€F]tEXtSoftwarewww.inkscape.org›î<PIDATxœí][lÕþÎìÚk¯íØNœø’ q¡$Jš¢ʦTJA½ ¡J Q©@o¢j%x¡¼X‹­€V-UQ[*µyé[)méÂ-E*4U+D#qIØ@ÒÜoÎÅNìÝ9}˜Ý™særfÎ?³vf>Éòîü;³gç|óÿßùÏqΑ#»0:]€EN€Œ#'@Æ‘ ãÈ qäÈ8rdE“+ÕÚSîÀ`‘‰ ¯½ŽEµ/%œðñé©É:]UèÞ`Àþ‹ÇtíK)SµÀË•jm ÓQ…–@³ÂúJ¬¿«Àz›5Å8xóû=gð<œsû=8·-¥Úob#¡R­}nzjÒìtaÂ@A³»ÈJ=]FŸÙ¬-Î9Ú¯Ñzmrë½û5o¾fpœspf¿^Zn€íààÏøN§Ë]gŒqÆ€v ã¶-ý—\:øþïŽâõ÷f¥ã ìÁJµöÖôÔä/;P,eèj;†ƒ1ýÂ,E æg+ÕZ%¥¢Ä…ÊæŒÛò=k(µð¿Tªµ+Ó*OTx€eÔ°ßÍzüµR­ §Qž¨ ó,›a Kðw}r™t ÀÀ_ªTkš‹$y ôA¸LQ4ÀÚÝxâîQpȶ|WJÅR8cVs=÷@½ÁqãGzñ½ÛWx|šÝS©¾ÿH:%SY&0«@ÔõfÒãKÛ–áËÛä„ {¢RÝ÷…T §"`‰@–Áv€í”ÕwoÁ z]v0Àø}¥Z»6ò…Jä"°‰F£ýšxâîQ¬YÞ%àÕJµ¶*áâ…‚¢hU>Ei– ÄàôP*2ŸM˜®Tk©ÜQªVÏbºš~î+àg÷£ ×Â'8ð[Í¢)ª/Yõ…‚˜Švþ†U%T¿"'ðÕJµö°NÙT@Ö˜wYh(†'>µ©_ÿ¬çx‘§n}¬¶3^ÉÔ@6ÀJgbSÁª¸çÓC¸mkŸx˜1Ž?}æñ½c]Tt {u@u™Þ¹ WOH]]F£°»R­-‹ePõ€!›™@¯!qÁüäkãX1 5°»R­AŽÝ1jvo`f=€¨^À_8Žæœ—öD—Ö{îzoÿkã,âä9IM^ÅÁ_ðyÒò\£Õ%œEˆBÎÍ™xéÍó‰|Û¹£ºû+Sëß º&ÉxÃNgCåBÊbMÒ©W$ö P‚‹-5,ï/`ǵéM‡ã`(¯G2;ØžÅê·ðè+qÇ 8:S·‚fÇXk¤k‹dÉΘÇgÛïþÒ)8¹XÙIfgyb`ýî­—z÷H°ëog¹®  ´ꦉ‡vÁ[^Ò¼|8Ɔ xÑßCÞBÊè2Žƒ¿zùt*•GÎ4ðíç¥ò]—#<=@¥Z{ÀT/²Ðà.÷¿{ïœvÁ¢àà©:ÞÜ?‡ëÖ÷†8‡ $‹0Ù³ƒm9S§¸l$üèÅ“©çå’Ùª¶be`˜¯›¸¸àN‡nÛØƒ¡röÊäÎ¥`ÜïƒìÜõ¾vlÇζ³eN.`Ï‹øèÚdÄØå ²eØì§ÿµ·ååRFú‹(@Á`„¿ »Û¶a´KÊ;<ýçT?'3 ò¬5 ä !þw¬qsÞO9 ñAv£ƒ™i{ýÇðîáK¸j¼£“m–È,°Ó¡ïr«ÿ^ÃYÖýݾºýÊñn™s­ öäOà×ß²Öš¦ »wÖttÓÚ¯e‡ÙÒeâ¦miÎþ>“»Ëgã-xûsÎÿvHs^¿õ}œ;®Ì^’ú—¯k.4a{o炚â§í_ÓS“’‹$Ó6D82PDÁð®T{y8/› ! ÃÀèPGδ½À¾£ó¨Tk?k±â1Ï3+ÕÚO§§&r$kŒa¡! Àµ#]¾ñ¼h0 –­XŠšï­ã*ökÖ”2Ù€oˆéZ Øs@NþŒ›.ͽ$ýâº^`l¨ˆÃhz.AH‰2 ÀðöÿÜ(­§T­Òv·ø3CqýdöÎá„<ˆ"‡§Ä4 ùwà”»×j°Ü€€‚ð· ­…›®*ØýsÎåkE›ÿùܵ„mP¾"šû”5žýØÙº8Sé §Ï»ëøPQjªT¸š¦5aø*ZóÔY©,¤Òƒìë%»>+žloÈñ5ñ‘`hpŽù:wß0ÖÒ‚+UÝn6/£Ûƒ¡c±Òýí¦i74]£ Ñ 8>#Ómb¸«Y¨¸O¹ºÝì:I&Ù¦CÜaÃý$šœŠê^`î’TýæôÔäëâA2 plÆ­Â{ºXËý» þ”'GÖ†¡ ­°fg‚ޱîóÜ‚”@’ @èffÝ_¸¼¿ÐrÿÞ?"ȕф¿JM',„Ùé†!‚sHùx@€ÐÌλ °vÄʆ¹ªè„е«7?£<åN{TBØ÷CLë„AÁCDàÜDCð8W—P l†UºÓ.WZç£ó”Û —=~X0ÍöŽ-x®FFB€™ ò„¸u+»C*<Ì èx ý°‘ !¨ åíff%Aî)"œ™s ÜÍZîßYH¯§Ü­“"„®>l$Iˆ³sj "À¬ÐäYVl­zæÊd…¬ÂìÖsnNEGˆ0{zaÃm·îå…‹< @D14¹²Kè¦oçªÚ Ôa£M°Å6.) @€ˆ¢àغ®Å‚w¥D%„}c[Òé‚:l¾vý°‡ “K‚ËÑ&²…Éähw Û£p–]',øÛM"B$6ÔÉsR·¸¯ @_©)#¹}]»~Ø0<í4a#ž‰<Öð€@,6Ýüvìb „º ¯Ôv˜Ð!”¿p­3²€@Ø8Þíh†¹2Jb§ Þ:¤óaÃÙ¥-fd pã†ÞV0|Ðg’aÞK´ÃD´¬¥êS®«C x À?øTb0ÇK­›}°…úS¾¡nW«T¹K;¡Ÿ–Ö0§§&—“!%@ÑtÿÎ ó:^B',„ÙõÂF'²–c @L€ñáb³H½Ù"N®Ð#DÒvJ/à´ëti·¯}Jn @€˜×¬)5›€ê•jxÞô°JwÚƒŸr“/VBèx oœ—g @€˜7]YvŒ^½fîÁᄉjwvfE ”:¢nr¯½  @9/À¦Õ¥fÁ½ ªó”ëúLÎ Dî½ùémwÿÞŽ{fC×$#€5 ”Ad&U¶Ëì´aà ,´í}J "ÀyL%„ð{ÊÛ•šæ` };]ØpÚÎ\€’ˆpËfš.EBá^"ÉÁéFOÎ×MÌÇ€€MÉ-Îx9‡ B¼{XŠÿÊ €ŸL q†ÚÐí0{š^Ài ï’ÖeR€T`RP ñ†n‡Ùuº´ésPN¿åþi`ë‹om޴Æ~—v°=hhÝÉóÑ»€Ð&ÀÍW§¶Óyl¨† “ˆÔ^ÀohÝ|Ý”fe!‚4 ´L ~aÃÊô%3…Ì"mXØó¡ž4 0˜²Li„ êuŒÞ:(mÌIšè´L‹³ùé¶ï?¦'MlY„0)·6膬Cü q⬔Š$M,˜$’ðá:Ä:o¾nzM$ 0¶4`’H3lüû})þG€€{/˜’ ÿÙ/ecíš›—³LT^b߉Ê]ÀNÄ&@–`’ˆKˆcÐ À-›ûâžš#^aCZwiAÞ™1 “Œ!ß™+EˆCë^OÚš/–bî” ÀÎâ½ÅC±·MU“¹ì,Ä­ùS1 °õŠ|“æNÂcoæXˆI€›‰Ææˆ¯½™S1 ÀÎÂcoæØˆÑ XÖÃÐðX‹aËsBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î< ¿IDATxœí{°VUÀ ¸¢€¯ I øF"Eߌâ#Ì2‘uTÌuÊGfZ3šå#Kò™™ibQ:Š¢–¢P$âADÅ >H÷êu¾áãz¹ß9ûœ}öù¿™=âܳ×^çìõí³Ï^k¯-ªJƒú¥]h„¥Ch€ˆtúÝËÊÀ‡À"`!0OUgeÞvã?"Ò8øfTú£êkÀH`”ª¾Ÿ‰. ÈéŒ~ì”BÔ2àUýGj"r:p°KF"×#TõÞ4BêÒ¢_bU]á¹­­»c=ˆÿ襪K]ÔÍW€ˆì""׈ÈT`9ð9ð¹ˆÌ‘«Ed+mŸÎØ ø^* ªZÓè üXhåu O†í ¬¬ÐfeR=kú "Ý€GýcV™ PÕ5)Û Œ6M#'&¯¨ê®•kö "MÀãÄï|€~¤REäàòé|€®i*׬—êéÚ ˆl<tr•áÀ‡i*פˆÈæÀ…ŽÕHÑô]À6)ê»0#Måš4lÖí:÷‘m“V‘ïßrl3 h…á)ë'DdSઔmº°“F@Í€ˆl•RL—„ןBÊɘ#cUõ­4 ç ‘vÀ®ØbÍ"‡O²CŽ)Õø(áõç¥lÏ•Ò (Ì "½Eän`1æõz˜'"ˆHOY‰,Vôb€ˆ öʠͤLSÕ§ÜD¤ˆ\ÌNº•ýy;ÌÊÿ”@dç ÔJ2Tí¯»ŒàýÄ[ò<&¦Ì‹bÊk«t‰ÙV/Ì+ç{¹·eY4eÑ¡G€b^{EÌë’NàZò¾Æ÷® ´OÙž 7ªêê,3€è½~i‚*DdhŒëV:ªTbb‚kÓ,¹ò Y ÿ„ìž°Îb\3ÇA—ržLpmŸ”m%åàä´ÎªrBÀÉuö‰qÍl¹åÄ2Ù Ø>e[I9KUçe)0¤4;Ôé*"•ú›˜ïß…Ù?Ør7ârfŪ::k¡! Àõ{}ï¶þ ¯;Ê—àÚ¯8¶áÂlà‚«ÑöŒqÍßä®nIp}^ïÿÀIªºÜ‡ðàzCqzîÀ¾—“0JU$¸¾GBù.¬ÃÞû3}5Òžõ%XUçÿLPep]Âf>Mx}RÖg¨ê(ŸÔ¤Dü1Áµ©jÒyÃ’„×'a-pšªþÅc@XxƳü1Às1®ûø‘ƒü…uâ°8EUïñ$BÀ«À;õbÍ¢¥Òá´ýK] SÕ÷ôxÞ¡N%Vc¾û<Èn•Ô ÆP¹]DÆE›,v¨TOÍ›r£C“¯Ä½PUßÅöâmlBxŽªNqÐlÅñ¿Žu[c50\UÌPfeRzóº/òEoÕràøõ»`1‰'¬·ƒžÃ°¡¾$ãclvöþG&Ô}ce.0(KOkì{Hqó]€imÜÔ2  9×$xPKvŽúv‡ÓÝCflÂæÚñkëN!:ßÙ€&`BŒ|èVAV30/æ{:ÔƒjCÿ;bêÞ²¼\Ç›>;ÁÞCÞAØ;°’¬ï„~`­èÞx*ÁóX üèZ÷4p_Âa{«2/® g°Iè¶Ý›{*èÿ?àN _h}ËKâÍ¡Q Ç"’퀹HUCîUÀ%´îeû©ª&]­Ë9‹rú*.ö.ðöÉ8FU—T¯U\  0?a;o»hŒÆDäh`º‹'CTÕÕÍÛ`#¸@{ì3o“„mõUÕXÑ:"ÒŒôÅ"tï× £`¬Ç)?€ˆÌ’îI?CUïNÜX¯¸®ºÄÝèØV¸€Ë†Ä†×W@lùr‡Õ>VÕn•/óO”Èa祶¥¼ei‡Eã.iQæa  ¦«§hðUý[hE6JË q7c.Èxùuk,’g*?çâÉ«<ìzÙ·Õç˜AG¶rWé!<˜QÇ÷nÅÜÍ¡;6IY†åö Þé™@™Tòë_œ²C±wkÿ{貆˜ÛÜ«ÊÊ:élÌëÕòÆç]e ¼P€Î˪,ö Ýñ¥’yªØ(;ö¹ØÞyÅR¾ WÕwÊéŽÅêŸFq&uY±›¤ÝÊžšÂå ŽœMçW[VÇ''ªêý¡•!dDd¶ºvµÝù`ù‚S˜@DF·“_’åЬz¨êâJD¤IDnÁVÎê¥óÁr íZ‰ ‰"£‰ÞhlÙ¶ >¹ f"Òx‚|¶Y•à#p"ÝcÔwçC=@t8Ócäï¥+">·˜Ç"WˆÒª#yßœþñõ ¨µ@?`ž¼šé|ð7Êã•’ÙØZþÔЊøÀ×ðš'¹y²¸ ;ô¢&;ü¯z’›OßÕäGÉU¾F€´G¸‡âs,ñÔ zè|ðç j‡¥Š‰sÌkQx ûÕWÅ~Vx¢ˆ×Â>V`9ðCàÐzë|ðò¨GÙY1;Âåf-J¦Œœñi.G¸çÅr,‘ÕáªúVheBâ;,üe Ÿ·Üxªªÿ ­Hð\4ßø³ÀþÎ_ï 3–W¿«·Fâó v*·÷Ü|ÑWPOlE°šóаï›CEäÀå^©Ì`°¯‡/"{`ÛÞûG¥­»ÄW`É­'UõYú$Âw*Rì׿”p©YßÀ1Mm…ûꜽV\u|9ïô°ÜG.À :-°{Æ÷ÒÑ>ÉHÇ—€Îµn½0qÞ0&ãûؘèAÏóC@.ùÔ"gBœšñ›¬‰È®Ø¯õˆ¬d–qŒ™±È3E̵˜µçÅÍÖ{-þÒÚÅ=r'sr3µccÈ«=²¨>“[}ìQv›ä'ð\,IBdwØgŠ›'<Ên“\ @U?FÏ« )ú>Ï Ÿ9}‚9ÎrϪª€ësjîWÊòuþß UïIvEB媽›Qûfˆˆ L+$ZÒöµÙe¼'¹±bªº Ë´,‡ænÎ1JÃÁø‹ŸëIn,‚e«V‹¹;?‡¦úÿŠÎ&påȬ”iÁSªú¼'Ù±~dŒˆÜ Ï¡©7€¯iÂí\ѱ´³ñóp˜ªNö 76ÁóÕgyDåô¦DSÅBD;¥ÔGçO Ýù@>¾€kìÛc{ìórýh® SgláÊ—C?wÕœœA1 ðzNF ÀGÀÍÀ`ìTó’=±½s<¶=>ôó.•às€rDd[ÌÛÖ7ç¦WbÞÊØ ¢ÏüF‹±íf‹<¶›B€ˆ”\®µxªÈ:à(U}2´"%Š0 ܵåâñTkµÆÕEê|(àPBDš À>¡uÉˆÉØg¨¯%e' 7”PÕ%Ø-|àdzJ‰# ÕùPà „ˆ4a¾ƒK 8‘‚iÀ×#ƒné \ÜÊŸ¦ªêX9VUÇF×vvД+‰…J¨êjU½Ø¨¶TlÏaáèqÏ\…}~ÎN>‹þ½8ògÜ-N %‹|Ì¡¿C®4?'L€iÒ2Ø<Ž΢,¢›+ppôÿã€ÉiŸiáG€r¢ÑàJ`_ ¨Û» ƒ?BU?ËPnlD9^D6vzE»œ©*(¡ª/ûc£A‘RÒ-¾¡ªª¹¼³¤?ðklb<Û}ý&Ð'Ъ4U]£ªWaŸ‰ã±_^HÆ{ªE<ù`oàyàEà ÌO1”ŸÉUk%Tu¦ªöîÁ_èÖÆ˜§ªCTõC ˆHG ›ª.Äî±k4ûŸŽ½©z(Â)ÀnÀMø>~ì­ª{ÿë#¦¶FGÿžÈú˜ÊçH¬ZøuW¢ÃªÃ>•†iÃÂÀ:äqà¯ÀÃZ¯f  œh1i?lâXúï®1«/ĶžTÕ^” D]@kD +=æ²²%'0¿TTuy0%s n  Q3“ÀnüWš (âÑh²IEND®B`‚x2goclient-4.0.1.1/icons/128x128/kde.png0000644000000000000000000003373012214040350014135 0ustar ‰PNG  IHDR€'úÊsBIT|dˆ pHYsààb·ÖÁtEXtSoftwarewww.inkscape.org›î< IDATxœíw˜Õyðgnݽw{Uo  „$Š1¸á€ ŽKB 8°lcÌg“b°1Ä-ÁÁ…Ä‰íø³ãú9.€ycS„°@€„„º„¤•´*[µíîÝ{gÎ÷ÇÌ™9SnYíÆÉ~Ÿg÷Μsæ=gÎûž·2BJI9sïì®Þ&§s€V!eõ{¾ìr÷Â÷q/¼{ IÅûrí;åöŠp~ÅöWÙÞ)µ_Dµ¿8ìEð¸€Ç=w÷1Ê€(Åbî5À瀿ÄOgò{âŸRû#‰u/¯ øûCëïΑ æÞy!ð°´rc~Oüÿ¥Ä×ïw×w¯¿{ð1€˜{g¸¸ˆ©Ê3u²Ù ™ºZj³µ†Äã‚ôW½DøºlùJ¸ED!-- ·Ð®ý¸¢•nW¹òÁvéÏŠ(\ø èíðy¥@J 91ùQäÄ(äGuf4{|òà³wTr<€éSÀß©›šÚ4§Ÿ±„ºúldÅáûòÄ ¿HéòqWè”)áÚ=ÜSxǪpF´ÎÄQåEM½{må†áèn(æb¦­Üá–W@̽s °gäÏž×É‚Eó0b†[ñì¶Z–-j`ÙâFΩ#f”5å Øðòe0ÅjË›¹S-[fäO¡žªž¯ðžªMS²§g”-†Ùr`„C½9—´,è;CG”ª1‹®»ûypÀ1ø6]`Ñi ÜŠf·×òñ›V²²«eš¯ø{ø]À »ùè7·ÓÝkÛ}R8±1t»€UÖÝS*às8įͤY°hž‹ìÝ—.äæ«Ï &gxt’g6åÅí½lÙ3ÀøDñwù^¿‡P›Ž³âôfÎ;³KVÍâ‚¥Müòž ùÜöðÀ“6Ñi]„À˜Ìt!øðÁœ;faûŽB°bõr²uÞõ–|ì†üb}7øì:Žödj’ 'JÆŠòR–½­˜UÂÈŒ*eT•´Dåò•êZû*=+ñ޶7,‰ÌM@ÑdVk-_ûøÅ¼ý¢ùÜñÐNzÊf91‚ѽIyRÀœ8p%Ø~~6›q‰ßÙVÃÍל Àÿ¶‘{ÚBC6ͪ®Ù¤“‰ps#© £ÓC®g \0_¿×®eÉ_áÞKôrnáÎWF”xÆ}.œ¯ðùÊj¸Êá‰Â¡Òñ=¯åéÏç'9~ôï¾ýWÜ~Ý >ý¡óùøU§ñÔ«ýt÷M@ºÒYåWƱ#|€í}ü/WR›ŽóÄ G¸ïá­Ìïh¤³µž¶æ4kW¶3»½–DB 7œ2”`=¿Ìm¹Ò‘¼º:ïÕ[ýÑ#WDJ‰’eKàó{¥%’òEÉk'r<ºy€Ã©$ôpßÃ[yã¹³¹ô‚9|áÆ3ù“{_¶Ë§ë0ò£ªê·Å…`‰B–Íf@kSšÕg´2>Qä–ZOc] ³ÚXÑÕÌŸ½s ÉdŒƒ•¦kKO±ºªËWVwUáŽT!Õà*¯ÊÖœÖÀ»Îoç³?;À3€ÈMpË?­çå'µËšèlLql(LeuTKâØ±}j²µœ±¨€—wõql ÇéóÛi¨Oò'W.ƈ Š–U®¥¿¨0‡1ó„¶KDŸN±þJuÊ2wQ)ñ|ìŠùìèÙI_G ǺóÒÎ>.^ÙÉŠ…uÝœG¤2z­sâ@ Ø?Ãñë—-n`óîâ±éT’å]Í1ƒÉ²†¿Œ¼œy¨¾ž©ÇJ=¡‰ëŠþyµùþ¸dõϕ΋ůïjà§Ã“ˆXŒWö pñÊNÎYTÏ/7÷!…áÕ,h‰C8ö¼`–ùÛy`ˆÚšÂ´µÖ0iZL dèbæ ‚D¨¶f~0ö¦Z‡ßª´§†Ïß y-)„ˆš; °¤3ã/å4!$¾bNô¯`ZÄâ0 Šæ47¥‘Ze=‹EÍ/20V` W``¼ÈÀx‘Á\‘ἉäMÉŸ¯îàÌŽLlåkÓÓrEÉpÁ¢£6^_©¼RjCgϘ$FLPpm<&¼ç´G½¹€n6 aOüAÑ’LO]³ÎLÑ* 9EžÝÝÏᡃcsE,)IÆ jR1ÚêRt6ØËggélHÒYŸ¢³>IK&‚ï¿|œ ¯pZKÍ”Z-!Ãy“Þ<ÀëæeÙÚ{Ë„®æ$Ë,ªO7¢êGTjÛR4%B‚a®Z·Ë‰Ð|\\]EI3Cb˜¬é*Ü©KÒ’½4®Wº‡ËOrë¥ èlHÓÑ"/=ƒ––´(˜•eS¥4‰ÅW6÷óõ+æ³fŽ-QNN˜lègý‘ÿ±g”¾±"ó³q–6$YÚ'›0$Žb‚@]Mi;®1!Jël5 ˆ—">( lr *`A©~ªG46Qdùœ:Î_ÜtêÕJ‰´ °{¦"šUÚÏ÷ óÞ-.ñÒ1.[\Çe‹ë0-É+½¬?’㉞{&ÉÆKëãœ^§³&V&¶à¯Ó´¤«Œˆ ;E|€x0[z†Àˆ À–“Ó±B }?Sz®Â3ÓµU,)1-é“Õ~{´ªô݃y&€Û.l/[_̬î¨auG µÚN;4R`}OŽõ=üôµ“‹²qV6Æé¬1𤂿¦eçÄ B `{1^šÏF¼t P tF4Ì”OQp êÅ4­ª½‚’ؤ=ÍZ(zÜT™áíÿ#“Gö óô_,ó•ÊL‚DL”RŸW—àš®×tÙsü£“ëzr|ð×'ø»eµ!«»¢i!ˆ²krDEÀæLá0‡iU篖„SÐçþìêŒÀ™ö: [ L•ð`K¶ð÷,¦©Ægù‚Åø¤Db¹<šˆ ïÏá˜d“íãÒ¶E3Ð.7Â(°¤’Eÿà;¨*ÊÚÂ0|^@e PD²b‰hlÕ<¢á.ZÓ—–%1MË•ÑLàùóACìW†¹þ¼6ÖÌ˺åMK’+Z,)@H¤´cùEiÛÒfˆTÜ >í¹?¼c˜m=c¼cvÊ“ ÆLS‚”†í¾ûÚ,üqŸÀÃÀ¶„À”PˆY§"®+¬FÜ—)cVòVª)mO Šéu« j¢hÿÉ<"ã¶‹fiø$¹‚åv¾‡‰Cɤ)©MøÐ²µw‚ϵÀÄšcUJé‚¥œÛ ò‰c“'»GxæCgûðåM5Nm¢Ø‹óCHç‚lBIy£ÿdÞäºGð®Î¤ížúIîk—„À¥ÝßÊ6€²" àg€©ÂT\ÃjËFKSVSGy°¤Ä*£ö¢\2)%?Ú>È7ÿt)MµÞØ*š˲;ÜùHOkLÂ'ú¥”ÜðØέ3H ¢½ßàN@‹ù%€Ñ6@À`0 ƒ˜£,Ç*ž2LaKÿ¿SÃé¶sú^€e•ÆÅëðþ ;X3¿ÎM·¤´ "ðv†”XÄ„¤±&æ3?¿¡ÜHž9ÍI'#CwG¿óßrÝ@ZÂ/%lE|-Ó',IÁ,Ñ[‘]Rm±jí€jl ;Á’åm„jÀƒ_2ê€îá<étŒÛÞ0ׇCùäÞh·õ°åÌÈèLMÅ|náûGxøå>þpNMÄÈ÷Ǥ6xMÓrBÁ  MDaö²pa»VÅ’ÆÕz{F š)fBX–=r jíC™öä ŽŽ²îÖU¡æ‰¡mñoH?$ɘG­C''ùðc‡x{GÊžÐq ì÷<Âì)°`DHl@·J`¶!!ß2Ú¿ž ñ§Y¶ÒãNþ 8HÛ“òÞY7\uEJÝ=È·¯?ƒ¦€é.„c#V`‚¸!HkþؤiqÍࢦÊ« Œø`³”*š ÕØ²( ` {7A±ÒbÎrPíȇʌRÊpž3-kFŒ@Ó,¯@ò‘nºx6k6„p!0X˜ &aøôþ­¦É4©‹Åµ€OðC¸’Ák§åLÙsA T $bl 3–r}6À{¸QMK2ÎÒÓ²˜œÌs×;»Ä¨MÆøËµ¬]XÇ76œ`lÜ$Z³V™B£ö@: bPšHÉ+=Ã|èMóX³¨qJ8…³T ‰¹¥”\÷ý,J’ÂvãºÞ?ùãI„€m ¼I»è8€ŸÞ> ØmʰÅj”EL©„`O°ä'rÜó®%,lIG–Z>«–zÇ|¾¿©Ÿßì&… $ÈdèBóf@8(‚aåÃyÚãÜöÖ…§„×öª¤Oïú7GèïËÑUŸÄrgÕN }èxénN”$hn ¾ç}ì´BÕ%€t$@Õý.kš“ùq>ýîÓXؽÖNA*npýùm¬]˜åk¿í¥¸@i«€ij[èï,ynoß»yM™êô~%880Á¸‡5)LÓ6ôtbÚW„Ñé*͵ŒÀq2 "m€ÃÛ–жà—†Qâ¸HNž<Éÿt‹Új+A"&¸fe kægùú†îËc¥=›šŒ1»½†Ë—ÖóL÷8{wO"­ ³4u°E±t¥ÞŽ£ƒüÕ[°fÉ©¯3Ô!_´¸úÁ¬ÈÄíаS_$á+HéPÔM³$BJgEPÄ\€v÷ˆfÝ °OÀ­|”>df°¨}êÄ×aQsŠO_>—Ÿïâ§[9kV-oëjàìŽ4B~{hSÎT$Бôä˜Ó”à¶Ë—T~°J¸åÇ{HæŠÔÔı,K#lت·G}TºßNPA!²×j櫓 Ž6 á­ ´¤r¯ªè݆-ÄxfG?—œ1½SFb†àÝg5ñ¶®Ò¥ÞÒ™¿Ÿ™É ßÄd‘ƒ}C<÷©K¦‡Pƒoþ¶‡õÛúYÞ˜v>¨~bFx°u€ICøÖ(Ú†‰/Ceˆ`.öèWû,”oLù?+:½&›åßž8Hn²jC¢,‰óâÞj°PRðÒ¾ã|û«iÊ$§…OÁKÝÃÜóÈ>άK:íµg¥e¹×–%‘¦Ó—ν÷§¥›Ò}g_YÇ6*µ,\· ç¾D(Ø^.„ãIáÿ³¦e/wÿ¤ú“ö¯“nIÁ¸Hóà3‡f¤#£@ª:§o ¥dwÏ·^¾ˆ5§5ÏHûÆ ¼÷[¯rv6…´lÓ2%¦ –éÌ@*ïòÜ|¯œÇn9Sb9Ìc:…IK ûÀwê˜ðÙa¡o “h r}Úe<•æ§/÷rÙŠvNÓˆ¬Ú²¥”œ¡@ÐêYn»âôh™MÜ?ûÖV:…½òW«|:%úýúÞ¯ó¥K¿`{£C u=8ß²ðÀ<€Q*þ}ö”pð¯”ø÷$D°\²®/ýbï4º2LK2>YÄrt÷tEÀü–Z¾}så8µp÷cûè9š£!÷úISö/HG%èêÁñÒ’X¦(cç÷3pt=ÓT@”ýnÇüi¾ÃÞ’0‚Öu ƒ«Ñ»0bìì·ø¯WŽóçtT×{`ÃÁQ¾¿©Ÿîy·s§«®Ó¢iÀ/¶öò­'qNKÆ›PÓÂêºè^k’@"µ³Œé ¥Ï égt0§9yÊ Œá¥ãZyŸpFrÉžUŠp¢vißÇk³üû¯ºy]W Ùtð°ÒêáàÀÿ¾þ8;{&(ä=ü•N@ÿ]ÂþÞq>ôÀVÎlÊø'©ô¾”ºuï]ë˼"½aK…‘¾1&F&:J××n SøKÛúÙF gL©c#Ëz.I.žá?žØÏG®<5ûËíüÇúãŒçÂñ[üÏ3AnÒäOþíefj{9·Ké€$ÀÏv–Ä?' Ÿ ʼn"#½£˜ËóålÁ¶e$€"E<4h5pýHµ ªp”T(' œò"™âÑ-¼mõ]³ë¨ò‹/ýúëöŽašÞIO–Ú:ñÜüàV¬qH×Þè÷QYëáçRE% r‚Ü }$¬š[ðF¸].f½ÀF³\gZ„’cxópѾDl€À_‰øA,ÛÀ}ì©zú67iòÉŸíã©]ã͘­£OZ¸3xáå’¿{Rrx G:n8m“Z[¥×VKúòêÞòÊjʼn"c=ÃäDZc´ œÈŸp…j60,¤'+ˆŠêÂÍ p­ÿ9ÕºÁ|ýe] è4Õˆ±wÈà‘VìÐñ¼Éÿ¹—ÍGŠ˜ÄÂ^ŠÙ3àL„Œ92°´Ñ~­¥TAT$p‰_ÒP æb»œ^ZU‘—Ño9ÄrD´*gæ'¸lyõ%ÖÖ=»³ŸnìÇ2RŽ!¢áAë@Ëÿ;]ظ»oZÏëðù?9“š:ÁDÑ ëw_Û%VÁÄ<9Añø0rxaJt±®kß—VF‰P°¢"ÒðÏ(  D‰ÐäŒâ !qDR!4»9¼¿ÂðW½Î;ž^‡Ñ‰"÷>öV¢N“0N;#l § ¿Øx˜oÿjf"–ɸÁÃ\M÷ظ£ãÃÀš(bŽcõ!s“è“tA"ûÒʨ‚ H­œBf”">( p‚bìÅ7î^wá‘Á@ºÐñú™Á¾6 .\fA{†(xèén†­Z?ÓàzL ¤‰ne,tŠ á£ÿñÝ'F§‡ÇÓ;³|þš3è÷ÚZ0±ÆòXãÈá (˜NG»«ÛI’U¨§¬®|½¡ûÊ5Ú>&ΑZ:Û<°%„păÎ,Î{¸ K‚ÂÉ!®¾xAdÝGsüøÅ^d<P1ºª‘N?“M$­mm¼ïKÏÍXdñº×Ïãâ³›9yr9è=Wt¬aáï(íÚù•UÝt퀈2V~¤  ¿ªŠØ@ lA~Ñ ìJ‡!lîZƒõŠ–i±0Sàü¥Ñ Dxò“Ézߨ÷F»æ‚jñR=0m= !Nq`PpÿÏwN™_½~Ŭám´„ ÁÕªÝ ,i⩟ ì3;ì,…ÿ×pp¸ŒáK³%ƒý GN2y¼‡kß=úÇ&Š<ñêÄ“áÑ/||Aû”q%N $³:ZùÜv°ëðÉÁXW“àÁŸËYð *Õiúù1STîcƒLÙ‚ab°ϞuÂÂaÇÀOp¡¥Q,?9ÄXÏF÷ï¥uð olá#7ðí›Wðö æFÖû«ÍǘˆÕz-Öfη•³ÏጅM¤«üÐÄ#/tKÈ(uZ [ÖKÔñ+3á ˆ¼‰+RƒàÄp‚Ïþ` Ÿ¸våô·]¾„_¿ÚËÑÃd èRú™B½«³,Ë?žF外åúÞ}=@„Î)a†£ÿcÂѳ*_Âpo?…žC,Ÿ—eeW+N_Ìò%-ÔŸâºÑ\'ŠÄš ­AQÕÚ45Ý »c¤½%\X£|“SéŒ(§®Ž¦F¾úÈ>®¼`«N›þçó„|ë¦Õ\xçS¤sê3­Î?%Á"!8Híó¼Í£Þy꘸Àki6B­(eÃv 0U¾;5l#(:Àc_x; u©Sî ¶ìD$ÒnÇ»ìæÄ„#……å¼²«„ÿfÂp×t0À¢ÎYÜøÏÏòü—¯$5ŸÍioHñõ¬âº/lä´D“^ªN]•‰(F°‰ Ë%@y‰l€XLŽÄ„Äpþb†ý7·)=cÄØòÚ ±T ö¨ˆKAÌ„¸%ˆY¶Qi¨‘ ~"-êé€;=Ã,‘HP43ÜùÀË3Spéòv®¿|!}¦©™ð彂J¡²b1ç/Ð9ÄwmD%*°œP¥ZY¢ÖÄ„m€:ój¦`Û!j’5¤¤ !í+qu|j¹?Vô´%€3Ò\‚Ø ÖÒØÀw~s˜u[M·>}Õ4Í«eB‰Õ*¡ƒP­,ÊxwëOL€çÂ&„rí3„mñ1Ó3oƒ£âη†úuÿ"F½úUr-(:O\‹Wø™X<{7}y£¹Ò3˜SxÌàáŸG¡NÐÆw”T ÄÜä€[¨b(Á×ÒPØ«‚£ˆï!P‘@A %ñ,˜~È5'sEw[³"º2BÕV5¡†(0#ZÀñ7Ærõ¦Äc1‰z>úõf¢"µg¸ïÆt¯r˜.ðrJJKúÉ$>PvÖ}8æŒø˜aÝ>}Ê 3ÎÀ|Fs¦ãqh£ßKƒ’*Á~Å™ pǘÓùîŠ[!hª«ãÑç{y|ãáéÕ£ÁÕkçòÖ×ÍbȲðqqTl "BÑR@‡ ½ËÚ¶ N@HØÄ7 n(ÝÌŒ¯À-8§i»£ßÙâ’¥T‚˜ÀÁ‡×ùÁ(‹fÏâÃ÷?ÏÀp~fêî¿~¢%NA¹½å Bð;(,Íe‚h@+ öÙÅ”þ7qÇŒ9L1Ó ÐXãx5à·ÜPt¤JÓçé•Üzû:f4Ôµòáynš•yP›ŠóÐ-çqÐÒì‹Rv@@¥€Ú0â{-íqØAPQWCx¥ ´ë™f€¦Ú˜{@¥"x,ÈJ%Þœ„ˆÓ7ª¢IÝ(‚úL-ë·ðƒ§^›±jÏYÐÈWŸAOQ›/pÛ– ¥¤@pNl6€3â AÜùSö@~†vû*h«O‚´4;@ˆî©„˜(aø^÷!è’éÆ˜g €,˜ÕÉǾþGûǧW§·\¶„åË›µJÄߥ€š5…Ò½QÞp.ŽÞ Ï Œ;LÑ;ç³_{Ž-»OÌÈé\­ i¬B±¬èS¾k‡ fB¸–A{À0-üÅ}ÏÎT¥ü߬f¤VÌ¢1`•R@:KÌuð…úý6€P"Ä–‰˜Aܰw·Æc¶$xýœÏ+ƒinùÊˬ¹þG¼÷oá_¾û2/m?úäZ50¯=ÃdnÜí:ѽ‘´ „/F4+/ ^%êö€ SSÃŽC“|ã±™[;ÐR—â›7ŸÇk…¼¿:DH– ÒS³œËx)âƒc@8”TôÏH óÏbî"ûó(…É"ëôóŸ_etpÅi.<{kÏ™ÍÊ®öŠ1ô7¬œÍ7žx‘†–&]˜9WÎ&U¤Ë¹ÞµWV¸è“1εšvV¶‚U -çv´s׃[¸tõͪ~·S9xÙm|à§ñƒÇöÓsæît•¤½§ÓRÔ쀔º&>@ÜómÕ+BÇ¢«3÷¢Bª{I2göüfÍï@J(M^81Ècíbx` [RœVo¹`«–…¿¥7¿³ŽædC“âö’4ýUµ9I_Ž…=o1mPbWu¶3ëæ¾¼Î NäQ‚¹³¹ñ Ïð›{ß^v*v*ðÉ?:ƒ§¶`¼;GZáH§ð˜A·€¢"Aо%î»Õ¡¶ax¡_w P{Ï4wÍM÷Äs"£cv+g­êâÂ7¯¡íì¼<æ¯ï[_Òf¸äìvr£cÇTs^<ÀÖõQ×î’´iƒ¦|Æš.IIDAT¢¿¼*¨I§8Ò/øâ·Î@lˆ‚‡n¹€cqÓ^s‰¸€ý+#m_Yw@„Ç9BÅA*þïùåCèÌsÓ5Ï!`ÌÅc1ÚÚ›¨ijfã¶è •KÏŸËà‰¾;èÚ!ãÐÇÈé«_H>ŠðzÇù½‚ÙímÜûƒl?88½6h0¿µ–/¿‹“¥=‚@tPº!h‚Z¨ º“A†ø 5b† ³D3œ…<¶näËž½¤…šâXfÄh‚t&˜¹p€ô«(FвQÎËõÿø´ïË£Ó…÷¬™Ã;.™Ë ~bg3¨;Ç„ At ¢Ó|‘À(Q$ºÀ'¢A•klªgÝ–ã‘"JÁ­¼œžý‡C®_©h Ï[ Ä›O“rÕ0‚²íiÒIRÉ$#5|ú;3·v $ÏŠù +*z‚èH ¯¸ˆ°Âý&÷‹úÐ(÷MG3‚R!ÉÆ&žÜ}jإ̣56†éÄ¢|~ýÞ¯¢ßäT@-q÷1‚ûã—©ú×¾©“‹/h%–2èhmækîgãÎÞS®¿»wŒ¯<¶›·Üõ$Ë>ø ¾øðNO×Iø \nŠóJe¿`i6€gì ×Â.àÝ ;D- %„o-¡t<‡¥g-â_ø o¾ ú‹»v%ýæ6N;k)hÎ Î2C»Ç˲½…éß““}‡†ØÛ=H,ÞêùV®Gå ØRhùu\}N ''Šì:ð²šK ~z‡¾äk˜óg8•¹+®ª¤¤ 2‚ÐA1”ÛnÒY+OçþïnâÂÏ…à3ZËÕŸø/RµgL¥CL8Ò@¸D±§‰%ƒC9v½ÖÇîýýöß~öõŒÒsÒDÔf©m¨§¦¡ŽÚ†VÒóçӾР=¸ Q”'õК겜6w¾Ÿé g×¥À5âÓ8X0$>ˆðYÁ:¸ _Hø}~ÝZýn Ç?¥«¦q_zn{ýjZ+@â╳¹ùÊEléU¤e†<5úõX€½k9#Å Bt‰{áu–“œµ$Η®]JK¶ô$.˜Ÿåò ZIÔÆ©©IÓÙÚL*™ðãõu¿^–jZ€`"üÁ@›ý߈¥žQ:D<ú¹Ä~·Ðu½3ëƒñ‚¾ãƒ´Ç'x÷¥KKv^®½¬‹Ïܸœ]/¾ÂäÄDÄŒ`øZ۸縌á‘tù|÷SÅ ¼ùœZ¾pMmu•w@ݸ¦EKë<<"Œ×¥z©4ù‚ ÷\¦0x’ tVpðh¤· Èe„Áõy‚(FpË9ÌbY¿ýõ‹|áoÞ\¾ç"à’Usxèo o÷NN•Ùª_<)áÏ7Ò!jŽ=D F,ÇolåŽ?\B:QÝî L2Æ_½i6õsj©›UK¶= ñœºD°>í'tãcˆ8ïRö¨çõ í>TÔ“Ú¨÷²(U ÒÃQ;¥žf+·_·ŠŽÖè“A*ÁÂYõüàÓÀ,«Ÿ}Ûvc ¾Ñí1Ÿb¡j¢3Lƒ”P÷&éø(wýÑ®{ýÜH_VÌÎp÷{ò•Nç}—Ï!Ý”Š¨Ë©/¤´7;bÔ»ÒÀ)qý•œËÐYÁ:(2 ¡Yüža‡p˜D76XR¸÷`—±¤¤÷赓Ã\så[«è¶Ò­Mðå^¦]½Üûð&zеÌZ8‹án•"tm¨žŽ'"¥k/D„Òœ Á8o[ÙÌÕ-fNsõ¼ ÂêyYæ5&yj÷I¶>ß‹t¿Ã£¨á¸ë. ÔÒô"ö ùÒƒû|Å‹x)âƒgDÄÞÞKÍÕ“Ò‹øÙ¿ I§­*v Å ’'~þ[~ñïT¡«ª‡U]m|÷ž?à×ñ¥½J.QOS[+éŒú@ŠÀ¾¹Æpšé´[båG©OðG¯ëäÝvÑ8C_ HÄ þbmwv2|xÌn™.•ÇdÿDxA7PB%—`ýYßYÁA4öl’=à¹2ÂýÃö“#8˜Ü¨¡ã>=ûëW¸õÚs˜Ý13«etxËùóxóysÙ¼»_m<ÄÓ[0b¦¨om&U[‹ˆ'Øþ¼Í öÂiY˜…<æä$f±€4 Ì­·¸ö²\~î,RUêù©Â9s2¼qU ¿ÈS/è'„wÒ„·y¦„4Àq}õú¼Lß 1‹“àJèŽpÓ¥ °ƒB±!ì´cG‡(œàÆ«¦'úË‚U]m¬êjão€=‡†xòåºO Ðwr‚Á1““’á¼àª[dk fÕ¥éZÚÀÙ‹:9ka# Ú3SÖñ§7\ÐÎÆ=ÃÝ9¤ÞÀSA†ˆTîMii}Y `9„u%€6ùc9Ê^Ù6ìðMü`[ý?ûþS<òµ?®Ø)3 §ÏkäôyáïûZ–œ±åZÓ–L‚k×vðÕ9ry¼€S95 Ò£>"(¤ŽÐõ§úm€È8€¥C”«§Ïÿ‡‚C†Ð¦‚ý>ÿ‹¿ÝÉûÞ}& æLícË¥`º›Q¦Kü¢i11Cû!®8«‰eË|‡:Ûôœ´€ÎŽ 9IêTVôh DÆ´kiíRkÿ‚ŒàŸû÷˜bl$GkÓÌ|$jý¦Ã¼õÿ?ýÛÇx~kåSÆgЦţ{¸ö‹ùó¯¼ÈƽÓÆ3,¬'‘QÚXDø¦Nºú ¹ˆQE…3ãQ4H|¿ jÏê7„·m:Wwÿ`9\‡iHgHpñ›—óO_ú9çœÙÉÙË:«îŽ÷ñÉû×±ó„Åê7¬A"ø‡¾Fënã¦wÉÚ³þÛôv._ä‰ÍÇx虣K b ->öàÞ¾ª‘›/_B]™ ­rÐ7Zàé]Æ ”õü‰þt_’箕[ì·Ê©Ô@‹R8*GcÝÝs›å­ÙÏfÒ¼ï–+xïm?ãá/¾sJL`š_ÿáf¾ùó]œ{ÉJ^¿¢ÉÔ9ãìÅXþå‰^>÷ð«¬9½w¼a1ç,m«)(-žÛ~‚ÿzùöç)&ê0ŒŒ„ývH‘¨çñWr<¿çe>ú‡K¸hÙÔê䎟¼ÆîíÃöÀAŠEZººT0ËÏàØÄWϨ@‚{4ŒO”^î“ohÈð~‡ ¶î¬îx• ›séßã‰ã\qõ›è˜Õìøí*ˆfGõ:æ´±xÕrÐÆGþ}+ÿø­Uá/ïýü:>þ£#¬?–ÁªiÁˆ'#D³@)r>þÝ}Üó£ MV…¿ot’¿ÿ{Ù½}«5N£lü >‰&døKoZ1×dú—…{{}zÝ5þëþD€1"©ëú*™ w`ŒÜñ(»ÿ.ºòbV·”˜a¸ëý‚1Uo&“æÌÕ]¼<5xýÃy J’uMa”‘^ï !± ¿~u’ëÿe¿yõDYü}#“üí÷°g÷V1‚B%mº,Á%6-­€  ¾@Ÿ 4 t}R(r´ë³3õ W™À²$_ûî‹\zãHÎ]È;®º˜L¦Æ7™£×écT¾ »??­ª/íê%Q“õ&‰‚=ëVèO"ÎÐx-÷üèw|o}#áƒ#zG&¹ý{»Ø·7‡,Qû /"®Â^A¸yjvÐ9B1”¹`¨zùž*ðMý†nlßvG¾ÇBøó"˜à…͇yÃÕßâW¯žäÏ?t% wú§n…÷n*voD¤’Ù:ötŸú¦Œwö’¬ÍD ÂÒ#ÓésÇ­aýŽ7üëfßä1yïpžÛÞÁþydЋ,iÀFz‚7Z¾–^ÂÔ‹ÅK´8€¡¢€¶•/p–w ‡Ã¤wRˆ¾;ͳbœÂ^µ ¶$¸ñÃWpÝÇ%e˜ˆL–?üÓKÉÖgÜÕ;аNEŽ”ò&pÅöÐÜÚÀ¦'èZxj}~iÏ ‰†Eþ/ªIPg­s•ct,Í?þ¤›ßlëã‚Óšxä¥t÷X¶»ä3â¢p;é¡ V¯û<‘aá¨É _‘àYÁÂ_Šòyn ñ¸D×­~EèðÎ]¯£,¼Y¹†† ·üÍ{ÈO‰Åcîò-¯µÚDŽoG߉烛n hnkbóή¹|YD§–‡¡Ñ<ÝCMN“E`–Pï,‚Äñ˜ß#lŠ; ¼¸«iÆš¨ñ$¤´÷ìƒ#Ò5¶$t™AÚ ‘QnDHRÀe—Qdž-ò“æ”Ïô}aÛqj²õ.Ãé=Z xïXvTúòÊ¿Üüm%uàKåãN{Êž¬¬¯°ñ-ï Zúš»èYîÁeYŠx¢Äµ*ãùû†v-ÐVöhiƒØiõM lÛ;õ/½´»ŸDm¯“Ê@éàOáôPRY#PDàaÑ’ìtÝ„Q ¸´ê=ävbɾ ž‘ž@Øç÷¥S~Á¦ß§š‹d E Ÿ¹_#Á+ßÜÑĦÇKtj4ŒŒOr ¿èŽ Å˜ÑPŠ)4n1Fy‚E×Q*[„o¸JÎh8R[D %õ¬îÙ×ݽ Q#—nk#ÞD®ÕsšˆúiŒüHkioæåíS;ÐùÅí'H×7øpEtµ?3Х» å…n«!~©¼ˆÛPqŸ †"~à9÷W©€r¿ ø_u„‰&B4‚iÓø ­®¥ÔfÒì80ÄTà…mÇÈ46¸B¯Ïë¹2S?¡QM°’0XéÊÔåA©­a:ß…f¡}¡`Ë‹D7Dl§ãTz”Þ×ñøE¿&r}Äþ>ÑËáá&˜ æÃcÕãúÂö¤³YÿÀtqº•êÒ)ŒúÈÂU@I®ˆÄ'¥MÃrhçÚ9¦³R5ƒ‚)Cñý0øÿD(/¬ 0jõ爖 !ÃOx}©:ZxêùöXßûûMw±H€þe@kD©^Ý–Á:e SŸ)1Ç *Zásƒ…Ð6‡ê(öµO¼\МäÙ=〳„JÚ‹ KUª¶hG¯²Õ]4¿ëf3†Ôò 'Òè>£Eõ8€úŽ e ¬Öµb wÿ3<øÓ­ˆ˜À†#aÂpÎvTÛîž1:»Îôh຀%ânÇ•³AÚD¸†"˜Œ(ã–« Ê ‘J± Ù^ͼóXÎ_ÄiWA¿€)íÝõ¯ì`I{’‰‚¤w´HG}Âóó ?¸µ ïÚ¨Aù›öì¢K4!^ðGg´òn£¸‹'¢ú@@2•ä­W½SzŸ–7Õ¯ô>ÝnZ°hž—æÒ?ÃùêP•FÒK½D°] u“Kä•ÅWŒT ƒ%í6l<8b§KK2ý†€#îm~ l9`3@WgŠÆš½2Rj–´äÆL]äãqœOçGˆmý—Ȳ^¡=ë/VλÕäž–÷ï½ñKðrŠa ‡Ô¹”Ç-ö#žÓÊ%;Úh¬‰ÑÕiŸYðâÁ1j,ß·À>õ°œ°3åÙ°stÂà#omáÕ#<½kŸŸÿL¿±áÏèèL£•!@H:‘õ÷U8ÂD à 2Aà·dÿºåDEâ F6e‹ ¾óonÄÈføÈ[[H' žÞ}’ž¡I$µ†½Gû àqUb€Û¿µñ¼Éù‹j¹ê¼~üÒ0ÿwÝC9+4Êcèý¤ˆh„ ŽºÐhÕÝG´NŽÒ Ó„óDô3Z[§N®@EQy‘I§Â% #>»“x{W×Àù‹jË›¼ÿÁ½®æÈ˜¶*púåq1gí'g [  VBÚÞ¹sÃ[æq÷{»xþµqîûeýc&õ5³âÄcj¦ ߯D[¨ÒT[zùNvdY_™Q^åË©áTe¤Œh§†GÃï6Üwí¿—QyÁr•òKåùìÛÉ$"§%ãÿ\ÖÊšÅö*ì¿þþkÜÿ”˘ì߈s”®æ)%ó^w×—Ü ’µ°`Â9!ú/.[ÀíïYL:c,o±åð»Žåy­w’‰Èµl¿‡ß5¤‚ÅmIº:S¬˜›&“2˜(XÜù³nî{¢ iqÎøódä˜zìËÏ~瓱ࢻj€MìáÞ<ѶÈ=9tIg-_|ÿ™¬\Üð?ñ~¿‡) ûG¸þÛ{ÙyÜsýä÷0·pPÝîB¬Z÷Ð'rBMÌ¿è®5Àz„ý[šçAëÜÏ 8­3Ê…u¬XXÏÒÙï«”`:r"üé©>ÿ;|6ÐÔé´}*u-Éö£9^<8Ê‹GÙy,ç.ÒbÞäkÌ-P­1…­{èÏÛùZàaþëïú ðqÕl™ª…ÎeÈt¶dãB Iƒ/R¡SBåË• á:uÜ6¾Òå§Œûá{fÌaN›ØNVzƽâ³ëúÄê>¸åSÂŽÄÞŽ &&Ç¡{¢¦™®ƒtV*ëJ…¨†è)ê£[zÃËç{±éjÊFáZ~°m¾ûÄ¢ŠgC¸ Ó ~XŠøÓÊ?&-j­²æ0Yk˜¬y’˜wÒ˜)„¸ø”¯º¨– .¾ëBàKõút-ò>t™}÷AW«Ü}ÐÃ*w¯»™•ÚÙþ*ï«n¿8ÅöÏh{w !®_÷Ð'6#˜ppÝݬDðet&ü=ñ§ØþÿqâKàËBˆ•Qć@‡…—ÜÕ)à oNæhý=ñ+Ýÿ¿8"{ÇÇžýÎ'Ë®ŠùÿåÁ{WþE#¤IEND®B`‚x2goclient-4.0.1.1/icons/128x128/lxde.png0000644000000000000000000002715612214040350014333 0ustar ‰PNG  IHDR€€Ã>aËsBIT|dˆ pHYs7]7]€F]tEXtSoftwarewww.inkscape.org›î< IDATxœí}w|åöþ33ÛK¶¥’JH¡ƒ@( M½WôÚ@¯¨àOA)WPQn r-`¡~/*‚R¤©¹**Ué%ôÒw7e“í;3¿?f'[² ©„’óùä ›Ý™÷œó<§½ï,Ë¢]n_!ÛúÚ¥m¥Ýns´õÜBáýÒý' lsp»´’x)ðúñF\CD›Ñ¶¬¸ï­pÎÙ(÷¿3\œî?™¶2‚vh!ñS<¯p!1‰û58X˜ÁQÛVHÐ6Cð^.§h5€PQâ$HZ¸páØãÇo\³fͽ¤à …ø×AÚ  âÅïÞ/çéRJ*¹\®{ûí·ÿ‘–––fqQ”\Èàûï¿/s¿ßŒ64€ö €ßy˜—S¼€®ÿþ‰ï¾ûîĤ¤¤Ä"Až+fq±„…ƒ&0%ÕÅÄÆÆÞ €€ÝÐŽ /Åó/ÇírA4‚Ÿyæ™”3f<v¦ÁªßYäYØœ Ô2 ÿ¼ƒ…^¯ÏüÑàÂ6óÂv¨CüÒ8ïHž‡y8Åk¿ÿþû=ðÀ÷¥AŠÃWh|y’F©‰E……†ÙÎ J'ÄàxÑAVûàÁ£2T°3¶= ¸ÄÏãy˜÷çwJ¥ŠX»víÓýû÷ï_í ½Ìàhž åf•f6'§Ó ºEHëäb_}õµ%z½þ*€JxÀõ¿KNÚ ÀKêP<óJp0¯ëׯ_âûï¿?1)))!·Œ ¿9Æàl! “•F¥…‹öèS&"Láþ4vîܱû›o¾Ù@h#îç¥=D-ÅSðåwÜ0ÿì³Ïž>}úã!¡a'óiüq‰Ež‘ÉÊ ÊJƒ °”Ib<ÑÀš[œššú"€ Á!@›ÀmŠ7þŠ×ýàƒ¹ÿþûïˆ•ŠƒWh|vÔ }“…ÙÎÔùù!H5£q²)÷<ü€eàR?'ÚXùÀmj~y¼wï­ø°ŒŒŒ{&Nœ8ÖÊJ¥ÿ»Àà¯*,,Lv×µõ¦RˆÕ20Uz½¾@98å;Àq›Ëmg^^ÏGõ|·Ç?ýôÓCæÌ™3Q(U«vg18pÙ‰J õt œ¯Cd"ÁrÅÅÅÅà ß ÀŽ6Žü½å¶1€ž¾Š9rd%K–L×…D„ï½À`ï'ŒU *,4˜º‘¾N‘‰H¨eNùóJ¸Ú¿îæO‹ÜT È-oà^O:§š¸nݺãg3Xýƒ¥&åfÚ'¢o¬ÈÄ$4¿ÿþûip°ïB¦|ä–6€:àÞ»Q¾sçÎú÷ïßïTK,ÞíDA9ƒ²jŽp|}"‘ÐÉYˆ(†Ý¼ysv3o¥Õä–4€iÜó^øìÙ³ï™1cÆSÅÕBñ²_\¸RÊ ÜÌÀêhtVËHD©hTTTØái‹Á­¹7 ÜRPGtÏ—mµÂ:wîœôÕW_ÍÖ…EEî:IãàeÊÍ4ªl-«¡€€ÉNA¡TK222îY°`A><¸€ö4°¥ÄÏë½Ó:5€ŸþùÄ¿ýío#Žæ±äÚL'J+i”›iЭà‹y'dbb O<9þ.«ÕjX¼xñð‚ü H›M·€øy½wt¯„îÇ7dÞ¼yS­¬B±j/ % ŒU®šZ}kÉùB;„”BJމ'>VUUUñé§Ÿno'ÐÙ–s7µøyÞÓ8Z¡*•*fÇŽ¯Äwê’ø¿s4ö^p¢¬šÉB_—Pœe3WmRRH…JbÆŒ“Ž9’}äÈÜ•@pHàj+#¸){uy|/@ÄâÅ‹;vìC— ¤`Û1º&ºoNZ×Tu–aH¬j[ÓÒÒ¦8Î TÀÝdYöº†7ðz>§×9rdï¥K—¾(”ë´ÛÓ8q•S¼¥žšýõ¹˜Ä°®2¤Æ˜P^x¾à¾ûî› à2€b&¸+„×nðkÜðƒrpÅœ‘;vìx¡_ÿý÷]bˆÝgiL\¯­o‘ ’ÂÔ ë"AJ‡rüþËîßg̘ñ.€lpM¢j¸ÓÃëi7ÅT°Ÿ×‹Áñ¼@$€ø‡~øo—.]ú4¦sÿË~v[ޏ£çÒ»¶T>Nñ£‰Æ™|ÎU6|dÚäɓ$ðì¸~×x##@=^¯·p¶mÛö¯þØ{!öœ¥¡7µ|NßX!àñz­|ï×)‰2ôr¡ƒ¨„7nܬ³gÏ.¸®TpÃ@\ÏÏàE<øàƒ/^<ÓÌ(ä›þráR)ƒ‰†«ݺÖÒ‚ ¾  ï&Gß°*Tž-¹ï¾û&¸.¨à¼^á —^ÃëCDnݺuFJÊ ”½YbÏY'ôU4ª¬mìõõx¼ÿk–NæÚ„αÃ{챑_ýu8å;ÐA\—vñ …׈ð#î¿ÿþK–,™eaŠMG\*¥a¨j›Ô®æšqm¯ëõ€DúGÙÀV^6>|"€óàÆÅL×nˆ Ðk{_Æ•‚ ŒBÄè¼yóæôU«>Íø«@¦øø'¯:Q\áj3å×x$ÿCxý ݯɀ¯ $¬|; v´Áòôôôǃ3x1Êo[yëÜG[#@¼¾ÿ’%K^´° Å–# .–r^[z}C½¼!tÐ=Z‚q ¤ö\WJJÊ3Î ù¡ÑVM ÛÌÀõ6mÚ4}ð!ƒ~¿È{²X”Vº`jC®o Ïû¿&ØPûú*¯ÐãÀo?:uêkà D¥à¦ˆ\­imBuäõZÄß{ï½#/\¸ðiR¯!ƒWýÆ;ŽÓÈÑ;ÛLùþù<åV^c^{S…7ÀÙ|;* Ø'&&¦#8'¨Ù9ÜšTp] !^ÿõ×_OKMKüïõ&•–¶ ½V>_×0„àÿíîžJ$•ãøá_Ï?ýôÓ/€K õàP Õê×- ¼V ÿž{îé÷ÑG½l'•ŠOcq©”AIeÛy-Éóµ^£öÿ_*¶#J¥D×®]Àƒ¥àvÙÑŠH[á'mذaÎÚµŸ½q²D©Xö3ƒãy.”9ÛDùZÑz}¯½£ÿÓƒOfÀ½..wÂB‹!ÒR¯¼òÊ#ðЀÙZ4Ъ€ëåðâú¿ÿýïÃÏ;·ªÛÃR×üÁÛŽÓÈ.u¶ ä·&Ï7ä5yzœ¤wÝu×ÝîuR€p!ÑJ=‚V¡€S:ÞýúP‘6l˜š–64õÀ‚ؓФ’FE)¾¡þøã—\•rí~Š”Vºàl¸oÏ“*BR„j9 ¡ ¡.–‚™–Âì Q\á¹;ì.¶^ž¿VÌ`s0(51ˆ RbÚ´i<ø¸@°¦UÜÒkÐbP‡×ËàUÃ_¿~ý”aƧÌñïõæ6ðúlr1‰AI2D«it•CFÙa6W»JòK* …´cp°”•Kˆh…ñ¡Jœ¹jCv©óš^_ß÷çèˆÑ*Э[·hpN®(d‡-::Ö"i`=^¯1räÈ>Ë–-›M ÔAÛŽ38_¢¤âú{½/Ü×Ç21‰a]åHÒš¡¡ÊØýû÷Ÿyçw6äææƒ«ÐQd³fÍ5f̘¿+5á¢rZü .ZÀ0+Õ  z(.w"¤ƒ=zôè.ž’C-( 6?Èç·Xóy}‡?üpÜè1c8’K?cQ\A£¬º~¯' HJ!XI!8ˆB¼–FB°Q*'*+ÊÍYYY7ïßñ‹/¾È³X,![·n}8,¢¯2H*¬ýYhÏû×í¥"ƒ’¤ˆ‘qùâ¹¢ôôô•à”o§üš’,ï}î5aÝÿ^S®=sæÌŸkÖ¬ùzúŒíÞfò ÎF!RI¥ ½b¥ˆ• Ëå’¹×½EOkôàÆ±ÃU*U\ffæºð˜èg •×ïõ21 ‚S|´†ERˆ ñ:;\v³ãܹsç^\¸pÉ'òÀyœ@0EQdbb¢b“Ëçóš[·'I`Pgb”Õ°W•:ž|òÉ×PÛóîuKë~O58[¬X±âëž={ö~çß» èŠjƒ*+Pñ®Õlg`u’+‚0kÖ¬GÞ{ï½+îµ§Ü*i‘¢P½`Ã%?˜ b„ weddL½j WîòËhè«\G±…:’BD¤PƒmR&777ï­¥ÿݺaÆ¿À£Ã7Ap(#ÿý÷‡UÓR¢ ’Bi¥Í}}Mãy‚€O¾G´ñZJ¢Œ=oÞb‹Å’ßfL½Dz,K ˆ§L™òfffæê¸$‘<µ‹ÿ;] †ad””TºÐI+Å Aƒ‚£Z¾EL¢…ŠBu€—ò½7\jà>{Ó¦M/ôO”òËyû.³(*wÕ:1‹$µŒSzˆ‚Db(Î!„È]lII‰qÛ7?ýoþüùßSz¸çQ"à>Ì!...ä®»îêóW± ¹÷ÙMäyÿ×á!zÅ..Á¶­;~Ú½{÷àR.Ÿƒ¯åmn#`Ü×^.eO™2%cóæÍ‹Õ¡r@‚‡/Yk¥uŠJ*]H “ !!A ·#ÀC<ý4K€äûz}ûöí¾nݺ F¤QÿßWJ–»jO"(¤Äk:³èêB¬ÆSe…ù¯Cý™žž¾Ñh4–€Sº œ×XÜ7ær·ÌýÝÚÕ«WÏ*±*ˆ+F ùF(2°çˆ…$ºG‹a¨¢QTî¬Åóþ^&“œ$E„؈ çÎÎ;÷Spé^9<ûø3’Å‚3;8æääœùðÃÿ›‘1wBœ6åá"d—:êôzoC¨0Ó`tÁ!Äã?>bÆ 9à €— 4›j€—ò…𜪠rÑ¢E=ñÄž*¢ÈÈ/w¡ÜèI„´ …X Ð%ŒFBˆ¬Óâ8þüù'§ýç«Ã‡_·¸•à”n§t~Ï<íþn©û»usæÌº7W†3ù¶:½&.Dˆ1h¤ NæsÞSŸòIÒYŠY,•ÅαcǦƒÛ¬éî5ªêæF¸ïÅæ¾Ï¢/¿ürgŸ>}ú=<úÑž=cCQ쮂6¡ô&ár Fuφ ¶¸×†?e´Ùâc~Êç÷Ý… …¸={öÌ‹ŒéÔiÛIàD>PP怋tJÎÓÃH$‡Óèê„Bè`òòòòÿ³àó­Ÿþùax”ÎC¼œÒù´ŠçXu¤´*•*vìØ±c²Œr\,q¡ÚÆ€$k{uÏ zÇè¨,C¥S‰PÄ¡DsxôŠ‘ VCCÆ”±³æÎ}Ïétæ¢6ï7Z¼¨Àé¾×r…/½ôÒâ”””µQñ Ar”g®Ú¹ëµã€(µÉÉÉaàâ/ÿ8 E€ç|)¸ÂN‡Q£F \ºtéüR‹X²z«Ff;‹0•Á Ia º†Óè ´£¬ÌX–¹}ϯéééÛÁˆY Ä[Áy…ž½ñÞ7ÀŸœáE|ñÅ&ZIe—‰p¹Ø÷{ÄHÐ'†Dgµ€ìjrõVP„oqÅ{q#µBôˆBGcó¦owÿüóÏMâýºÄϪÁ¡Jц v¼<ûÕщáaÈ-uÂæ T%ô5Zc ’’ ::š2dH·}ûöeÃ3#Ðl©1€Þ¯›4iÒðôôô7ç Èß.°»X¨ezG³èÁ )Ô‡µÚvâĉããÓÓ¿ÊÍÍåOÃ4ó$ž×½DðÉ™ù¯‡ghD ô¹çžŸs¨ë²ps¿gºGKpG,‰„ #—&F f;’ ìUr ‰A‰R È:sª`Þ¼y«¡é¼_—xÇUôË—/ÿ桇•ÜC!í#ÆÑl[½ðïîü¡ÌÌ@#’`̘1îÛ·ïxâ€f§ƒÞàÃýÏ>ûlߌŒŒ7~¹@’‡sIh¤,ºE]#\Q:;;;çßï¯Ú´eË–ã¨ây¥óÏÂϳ¼²Ã …Q“&Mz:»RËz®Œì ýt‹’ _‰NJ#²Îœt%wï%ÐW)‘U` ¬|p8©e•T¡ÊXèï7™÷ë/p¹×£@ñÊ•+ÿoñâ%ÏÇË‘­§Pm¥¯™V˜iË„HHHˆs¯ÚÑÜë Dáã?>:§Œ m.àñ;\è ¢Y}i©aÛ×™{ÞxãïáIÝLð(‡xÿ§a|H¢_ªÉÓNÄçŸ>‡j„Ùz ÎZjñ~b„ýâ(tRðí–o*G¤·áb± f[ þùßíÝQ‚(•B§³çÎ}×ápäÂïèöæ.¨·ø¥†ÕŒ[¶lùßøñãŸ0h¨ªG´ ‡.Z®™²VZh”±±±rp©1¿•¼Ùq@ 4àŠˆˆè*—3[ªOœ8qø‘™37ëÁy:Å{C<¯toooÈð‚ô3fh·=»œ4áìU;h†åµ´ôï(B¼R];¾5èt:%Õ¥&ÎV×™"Fi…è)„Š(†͛3ýõ×ýhAÞ¯Gx*ೂÒwÞyç£õë{½¦“#L%€±š®·zYmcAQDFF’ááá¡ÅÅÅ5âͽ8ÿ`áŽ^KKKZ¸pá¸äääûÇŽûFqqñ1p›¯€K—JÁ¡àñϰ,˰n©ë‹Å:¼ôÒKÓ ÍAÈ1rícï}uZ…!I2tT–áä±?+ׯ_Ÿ3tèÐ ƒS3y6°`k&u½'o• “dÐFœ>u¢`Á‚kÐ:¼_KÜŸé8ptÿþ}EŒÃŒn1’:÷ò£,¸¸F$cܸqüãæxh x#o©ÕÇO癸rxýðž^/Ä×%u@ØêÕ«_)B$WKe8}µéÛ#OK–#>¨Æ¢lÛøñã÷fffþÝ 5 *IV8ý ß“ïî,ƒNhB¥±Ð9~üø øòþõxh n íà(³tΜ9ÿIIIù08\FDé„(®pÕ›š¬ äAôìÙ³'¸I‹ô!´˜À-’ž”®¾ß o¯C¼¡?døðáRRöÍ© ÂÙ|;œ´g§­ˆ"‘ÖEŽxU\ÕÅô#<²kÊ”)#£ãÄå® œÌ±Õ9oß;Žã}ÊaÀ믿þžÃáÈ/ï·ú~3¾i,Êòóó/ÿøã—h‡]:ˆ! Ý#æŒ" TYiP…øøxZ0¬1¯‹¤á±V+<Á]K(=P¥Q rþüù/AÄÕrWΚy{A``’46È;iÒ¤í6›Í:a„n´Š\°8˜€óöQZ!ºE ¡`øöÛo÷üüóÏûÀÈÔÚ¼HüÓBÃË/¿ünIq!+Òˆ Õ»w ÚÆ‚$)ÄÇÇó”)§ Ôd#ðA/¥2ðÀkÖ¬!‘Ñq²*V…“¹ÖZ‹E‘@Ý£„0Flß¾ý·ÌÌÌ_q}òýÆ T0®X±b­Óa‡NIB)¡üŽñÜ›ÙÎ “$&&Êài—ó¡àWð:t耡Æ ,²jp¶À«ƒI‹ ë*G¤´ú«¶Ñ£G¿ Z"‘ˆüñ434¸Pä„ÅÁÖâ}¹ˆÄ $)dlΞ>iÈÈÈXO¾oÁuæý@âl× Ào¿ýöç‘#Gl`hDë„5¼Ï7¿H7µYí4@ˆ‹‹#"##ÃÑq@«@Ðùæ›o¾\Ũ‰B‰ìH €Ôd9¢Õ Í%ôO<ñpåfbÅŠOK”Ád…CŠó…ŽÚ¼Oƒ»È T£ÒPèzæ™gþ Ï\_[ó¾¿ðTÀgÆ7~ϲ ÂÕˆ„µñ°9Œ;öh‚P«@ŸðeË–ÍTwéíA8–máæý‰rÄ©ì»ôì+¯¼²¬¨¨(€+555¡_ÿþ±B‹¹6¬üs‹Ó=V‚HØ xûí·—™L¦+hþ~kˆ_,`P±fÍšÍçÏŸgH‚E¸FPG€šC¯ûôéÓ B½–ëA>Ð?bĈ”´¡Cû—:48“o‡ÅÁ€" ôŒ•")”Š4bÅŠ›öîÝ{gK^ýõgh¡…•J*µ¸1\#DÏh!D.#vîܹçÎ{pãñ¾¿øW;wî< °ˆÐAñ™á{Ž!&11Q‹(µšÔõ¿ñÆ/›Y Qh¢]Ê)3>L„Þ1´”;¶oûcõêÕ»Ày®àµ×^{8*¦£ÜF¨p2ÏVë`©ˆÄà$Ät9²Îœ*û÷¿ÿý¸|¿ 7ï×#Þ=‚²ùóç/---…DÈíŒ ” ØÜµJLL  B­buAÿòåË_Ô„DJËœJsCD¨˜ †Ž2àÏC.½öÚk«ÁmP«ÕÁ?üðH;©Áù"¬öÚ¿Áe¢ªQ®/ 'L˜Àóþï×+~Á  €Éét–üøãEw´|­Â ¸€fFƒ|pš¶&ø|î¼óÎA©iiw]ZœÎwÀê` ’‘Hí"C°ÀˆÜ+çËŸyæ™…àòu'ùŠ+^”…•N‰»âçËûݢňT1`¬¼÷Þ{+ËÊÊ.áåýzÄ{t¬ìÝwß]n±Z¡»SBÿN¡ÍÉ¡À°aÆÁSâúHŒZÜêŠúçÎû’•ÔE&Ù¥ˆ…$†vU XT‰ª²Bç£>úop¼m ~àöêÝ;ÊAip"× À×BUBôŒAà0b×®]nÙ²%ÓýûÞ;xo4Þ÷‘(P™••uö×_~1@ˆ’rÇî3ˆÜ™Ãý°«ääähøU{ -j _ |ÅŠ/kB"%•.%ŽdÛ î,C„Ü Â¦gfÍšµÐjµæ †(ÚY³f=ËŠ´È/J+iŸ´O*$1¤³BW9²Îž®|å•WÞ‡§Î£ó¾¿ÔJ ?ûì³ Ã@%£ 9‘r ßIDATµN%sÐ5 _âÁFë³5(Àúï¾ûîÁCRSûT²:œÊsÀî`Ð3V‚ŽZZeË–}þ矧<@ТE‹ž‹ˆŒÛ %NåÙjUÅ&É  Ì(×2'NôÎ÷Ûä±+Í‘åáŠ-[¶ì9r䈋 ­‚¬¸ 66–P«ÕøfmCuEý³”E&9z:† Ñ3Z% عcÇïŸ}öÙvp¼ï ‹í4jÔ¨A.¡YØ]ŒÏÍ'GI¥f@[ŒX²dÉj½^ØÇwƒŠw«¸€qÇŽ€RJÕ*zh†…@ ÀèÑ£GÀ7h”´ˆÔý+W®|E)11J½bEH¥‚ÇŽÎMOO_ï è–,YòªDLTÚE¸\êðQ~H½b„ ìeøþûïmܸñ;Üd¼_ø†/^¼¶¬¬ BŠ€Däßî\îð¶gÏž½à› 4*lI ð™ð5jTÚà!©½ª-Næ9@@Z² *² ù¹—ªÇ—n¶° œñ¨Ÿzê©Qݺ÷¡…jËá6Qò–/rù>å¬@ÖÙÓ¦_|ñ÷ï—¡ úû-)‚Á*«Õj8pà@5($T­ !Ú}›;vŒçtM ›m&|t:Ì™3ç—@‹¢J F†v‘C'ª‚¹¼È5~üøWÁ»RÎkB'Mšô$ÄäT˜iŸÏ”D)ä Êô…ÌsÏ=h®ï¦T¾ŸxŒTìڵ뀛‡ä៧þ¤‚˜˜¾+(D[<{ jNÌZ¹rå]h”¸š ÂÑl+$ÈÐAé¬z6##ãýÒÒÒ à‚6þÑêº?þø¥Ðˆ(¡ƒPàôU{âIè)F¤p™ËðÁü·¨¨( ï×qOzIII ð h°4É~ãÆë¤4((çŠ=J¢ÅùÙ¶G}ôexÎÚ³ƒC µ@ ˆ?~üäDƒìRîäm>ÍIŠ#R8,eøè£ÖçääœG· ï×!>tTüñÇ  |DMAHƒ&‚MEï]¾|ùKêàp r¨d´" Ìå…Ì”)S2Àr©Çû8èûä“O^ ‹¤á\½¦®SÐ3FÖVÌ~8·nݺÍਃ?:ýVâý@â32¶fÍšÏ].W­!^Ë111b41l´ø}d´ÉÉÉSSSû¸Z(¡r'K)-Z´ìüùóÇÁyn8~“Ð :t@ZZZ)QãôU–›ñ I L’‚pšuö´eúôéo·¿S•z+~Ù€€éСC'Oœ8áéÞ.æõ;QQQ„T*UÀ·'Ъ1€wä¯]´hQºH®(1$¤”£7nønëÖ­™ðx®Óý;jééé3% - f…å®Þï/…œ²£ÜPÌ>ÿüósÁQHó-Çûuˆw6`Pñ믿^¸Ãþ"‹ñÐC¥¡ M¡¦ÿ"Š'Ÿ|2­Kr×Z¨'=¶oÛ¶áÂ…«à úìîïR3gÎ3»t•CäžòᬺS˜QK9>ú裗/_>…[,ßo„øÐÀǼÖjµÖùæ¾}ûöEJÂ2€GŠxàG T€$¡S=?í>ñꫯ¾ Îs à`à8J§T*cÿùÏÞMIT¸T⬙òÑ*è+Íñþ¥µk×~ O¾;ð~øevUyyy9‡¶×õ;ñññQð3€†|Wsëllll,H„N=îßwaÚ´i¯ƒ úøqlZ¨À5ˆæ‡F6VŒËÅܾ>±€DJ¢„³ç²ÎئNú8Þ÷9¡ûvP¾—ðPsÚØž={޾4À/ILLŒM›j<ñÈ”ŠÙ3f¼Û“÷‰ÏÌàâÅ‹?+//øÆ˜˜¾ 'B#*‚2€…ŠÊÔÔÔ”-›6.3fÌ£ráál‡ûó¥p?*núôéÿO,W£¨‚…ÁÄäØ1D„h »¥K—.Ýš••Åg ·#ï×H¨¶Z­ú˜ÚÁ`HH’““cÐÈž@SÀû¢LôsæÌùdëáQ>Ü£þÉ'ŸÌ‰í(`(9wâ§{`¯X1h» ™?ü³råÊ/áÉnµ:SÅ»4\¹k×®Ÿ½‰ Ü{ï½ÃáW¾Ö‡7Úüö¹ó'‰ð'†™Áë¾€à»îº+íî»ïNHUÈ*°ÁI" 2ÀeFÖÙ3ŽI“&ñó·E¾ß Ô!üä“O6|—.]:ÃoLüZ™@“b?#°{ý8á9ò•ouHOOÿ—\æý†°°°`p:¹f1¨% Øùóç?C‚¥‘Ÿ—ËNž ±€kêðO åŸ!Ø®ü?àÏØPTTÄ€Ýngà™ªj=p#ÿ(Xï'‹ñdÛ•ßjâ?›YºgÏž páÂ…4´ÉÖ ÜÔÎõ×/àKÃqzmÛ¶-·OŸ>CÁÅ`*¸O­ësˆv½yÅï„ aËsBIT|dˆ pHYs7]7]€F]tEXtSoftwarewww.inkscape.org›î<IDATxœí{p[ÕÇ?çJ–dǶ’؉c“ĉ“ã4N $$$ ˆMh ;<:PZ–íBKYJvÛÙívöÕ¬X Ó™î´ÝÂtÛmél[XvéN»[B€  )IJ‚“çAlçaÇÄOIÖ=ûǽ’e=léèJº¶ôÑHç¡s÷œßýßãœs…”’ŠZ¡ (¡°(1@‘£ÄEŽ9J Pä(1@‘£ÄEg&•}þöà9 Æ1ßéüΤ|2áowlYøX¡‰PE¦@š=æ;Õï‰êŽW>™ð¨Ïß~{¡‰PEFÀ„îÐpU—k5º1TBJ æ¨JH¤Q&0ó$`Ö¦R¤jcrA>ãó·¯Ý±eáÞBS’)T@já)Ó¦™ƒ”’ÑßLð["%èÒôš]ÂÌǘôIżäó··îز°£ÐÔd‚LÀÕB µeûÚ¼•”%€Å*ÆÞtX‡‡ïª£±¶,®¦p`Xy#Nj:€9øÅ(âu€‘°Äí|ûÞzªËº³RÂk>{UÞÌÊžÀ"{ Q… ‡ÅŒi¾{_}B¹€F‰Üæó·Û2î¢$H!¢ç€x3p$<ú{Á,ßøl]B0C Ö?Ì9q PÕ¤“/jc’M±Xµ¨‚/ßT“ì¯_ðùÿyî(Sƒª@j%%Hd€ÛVUsëªÄi_"¾ëó¿¿1gÄ)@I¢xýŽ:@<¾rS-W.ôŒÉ $Ús>û’\Ñ—)²“VS3 (’×À£wÏá²™Îø|·„ßøüí3rDbFÈBE)t€q–n§àñÏ7PéÛÍf|ÍçoW‰ÆZŠ,¬ŠÒ $ú?’éLŸæàñÏ7àLèi±xÖbò2†² @ÄO©ô€g•ñÈgê’Ýæó·û­£,s¨z%§'’Mÿçš%lþøÌdE_÷=|üNKS€ÚzÅ Ž S0îXãå“­L,âiŸÿØ +hËJÑ@L X%@º¦`2|õ–Y,ŸçŽÏv‚ãuŸ¿}vÖÄeE+@íŠ P—`(‘ßú\=uÞ„…UÀ[>{wäªV€±€¿H™ ^¥ð¤‚Ë)ø×/^F…+¡—²¡-S¨Y"² 89 1 ”ùæéÓ|ï 8G`ƒÏßþ}eâ2„²'°XƒA:$œ)šf»ð:qÚ—ð Ïßþ%¥F3DVV@‘ €„) ¬Èë–NãþÆz… ‘û>~rÃiBigææøéÎ^¦Os»«)²ÆÈ“qéØrcS»L2’@hH^ôù.ݱeÉÉœÝK†õ£:@±ƒ ‘Þ:–³} n‰ói`]®. jí¢P€™•i­ ·2‰çÈ:¨F‹vðîXS7é'àt.ÛWÒ„@çÎ €æ7ÏüÅ<~b)1Vz`<‚HZÄ¥cËE’úFúÃüÇ®c®&úsy/j:@4œŠ& fW;ÙÔj½t ¤Y²YùJ˜üÈÂP\@JÉùK#…&Ãr(G¡¸¢?½—Oû4¿Ús©Ð¤X 5+@ q€âà€Ž‹!~¶³€gßü©tÀ¶r4°˜¦€y¾;ñë¸8ÂþÃ…%ÈB(® ƾëé±Þ8<ÀîcCTºƒÜ¼ìÏïë+0UÖAMˆâP‡C:ßÛÖ À¯>Èm+Ž"¼Ö6@ßP†‹lЬöNuülg/ç.…Y2«‡MÍ'˜U9Äʹg …aûB“g ²ðˆ)mœºä¿v}ˆ@òàÇöGïuS³˜ÛºwjLj{Í}SY |gk7#:|¢å8‹j{£ù«;¨öxÿl#Rh ²Ú0UÕÀWö³ïÄ0^Ï0´ªmLY™Crý’SÀÔ%O`:O¼ØÀ½kPé%ÔÙÔ|€—ô3ʯïÞjd ˜Š:À“;.ÒÓ¦eÎ|—'ÄΛÑÇÒÙÝ %¯¾;¹•Aåó¦âŠà÷Ïùå[—Є΃ë÷[w£)&û4 .˜ZS€”’ïl½€.á–åǘ?sü]¿è<ΞpêB0OTZ¥Ó£ÛÃ-'';Œ„%C $ƒþaÁ€Î@ä3l|dBÞ@@g((©™6È]WšðZåeaÖ/ú€íG°uo?_º1éÆOÛCí´paÏó¾ü“NQ7ͦ¹‚lÞ°—ò²ô¼|›O°ýÈžßׇ»LÐ:ßòynÊ]¶<.)%€°¥`š{´ã›ëº™Q1D…k„ WˆŠ2ã»Ü5Â4Wˆò²Qùv…ð”d¤Ø6×õÐ\×Íá³5Ñh¡&`ñËç{Ì›™•?$%T÷ö›¾~Ç,6ÿ¸“ÓÝ!ªÜA¾ºñ­œ[*ÿxÓ¼}zm5´uÕr²ÇË{AÞë òß»µ 3œ´6 Ñ:ßÃÜšøce 5 Ðí¸3¨ªÜÁcw×ñÐ:Øsªž'ßlåþkßÉé5=eaÖ5a]Ó†‚NÉ¡®ZuÕðÞ¹™t\„Ž‹ý¼°ßXß9½B3˜¡ÑêEå4Îr唯ñ ¤x#Õ] \ ³kWÛ„ÊÉôŠØ¼øòdé{V:ùÁn/Ï\L}u?7严4އr×WÎ;Ç•óÎ0¢ Þ??ƒ¶®Úºj8ÜUCï ›×òúáAÊ’Gÿp˜ “>øÀä!u)¤F‡ …=e*ÈtÇ+›[5ÂgÞñòã7W0»jU]–Й)œšdi]Këz¸}ÅQ¤„_ì[ÊS¿[À‚™aÜŽ0ºyú²”ù«Êë²!3rΰMÓÐ4mLz¼²të®lrã’t)øç—Wsü‚7 Š­”ðŸ{›yêw-¬]â¡õ1tç{^U¦½/ ›ÁΖþ`ñWÏfxÄÉ#/\K÷€gb‚s„áƒoþß5<óv š€;V¹gÕ.§6¶lÎ Œ%5ö&¬ìøv3içŽå,ª Ñ3XÎ?m»–¡P>÷õ8{©‚¯ýÏõüöÄeT¸$›?Ä·$œ´¿òm[)¿1D3[)¶sÑN™Sã¾UÌ® s¢g:ßÚ~ á<ðtÔòW¿ôq²ÇK}µÎ×6i©gœ{±?DO Õ’ D6Ok®¡Â¬ Ò¥óöé9ühW~NdÛz°‰-[×Óp³¼!Ì_o QW=±”Ìç»S•ö aœ¢Å v,2ÕÚ³-K§nm%Ü¿fˆ'Þ¨`[Û"ê½ܲüXªûÌ ¡°ào|”íGð‰–0·¶êhbôyKEodSi¾¶¨F£çäKü[q¦ZÉ=WkúŸÚÓ’“© wÐÍ?<·íGPæÜíŸZ)qhéÒ+"¯P¾ž/—PÈø§ßʧ5Û²ñêÖ{G«ÂJvBWVhïöòÈ ké¨`z¹äÏ®Ói¬Iñ¤§¢×|°Ìãd"»±sµX€¹ DÓ„©¹Ž"ߌi;GÏV@kÃy¬ÆOw/£{ ‚¦ZÉæë$Þòćc"z5 Ò<(jtf® ¦Ä(É$@|ÚŒÉ;|Î`€sÏ%”g‹Ýx>µ¦W¨éF‰Ò˜l+ˆƒd‚hñŸª¾®ÃÑóÆ -ÏðzŒ•Aý±æ\&}bH€¨7Àv"K´Q30‚B<õ™Ô?Ý«14xû˜UiýÉ^ÞrCÁì d!…Ž™-c>9ƒªhHmÔ‹\0‚m:käµ^fýÓP]nH€¾ãêFñé1 b]Ãn_ ™RI€øt®7º‡Ï´¶6X?ÿx=Ær´¾áô$@2Z5! ì)ÀØhXBKz£ùìLÚ …ïŸ7ú5Ýù¿gÐÃéž*Zê»)sLl’{ËMd¡ {룯×LQ•¨›(Ë©äX—ñj—¦Ú‹TyÆ_Ãðng ÛÞ]Ä›í „¥Fƒ·Íö²¬¾{ÜÿE`eÝÈ¡ih"úrf{JÌsI%@v2Û:~Leÿ‡¼zt>ÛÚš8Ùc¬ЄdFt|XÅßýz¿¢?¹æ ®ä‡EE¦€KCëF)ÓÂX‘,âÎcÊÔŠ©iæAˆYNùb„C]FǶ^6vþ?Ó[ÉómMì8ÒÈ`ÈX¬é-‡š5n¸ÂI•~µ/̯÷‡yñP{NÖó§ë÷sÍ‚NâQe©,#1–°3"`;0¦ˆ¶Z`O`:×èHNvKœšdY}7aöœªçùwñΙYDfÜ¥s›Z¬Z¨Qã'¾kµƒkëüðµ ÇΕóØKkY»ðX÷{fTŒîC¨t‡Ð„Î@PC—àÐÔLA!ì+¢DF å(¦ jÙ¡N‰DÐà½ÄÿXÌ‹‡r¡¿·Ö/q°i™ƒù3µ”í̯qððí^<æ™ÝAÞlŸË;gfsßšl4ª=Az‡<ô ÃÌÊÌMÁ(ØÙ кÈLÛ-#´uâÿÔE/Oí1æ÷†é‚M-N6,uDßÝ3Q;pó «›œüÛ«öŸvñøÎ«xíØ<Ú°úê¼åƒ‚šªÌMAò²¯ #„Ô„A¬¦Å¼äÀFŒ›îè•f®^ qã2'Ëç:'ü_ª¼:¯“¿¿ÕÉÎ#!~òú:fó•g7òÙ«Û¨rΠKCj¦à¨sMÚWÐEŒX(Ó.Ýv>³ÚE[§Î†ËÔV9Æ­›Iúú+Ü\¹ Œ'w±óüûîåÑ2USP bWÚNŒÕ4ÒzRhnÐhn°Ž†Ø´·ÂÁ_~²Šë¯òý—9ßgèD&‘é\C3ýBi_+@6”À±ÊK…f„B\窅nž¸×ÍÏ3À®÷‚\^_–¶›<6=*U¥-­] ?€¦næâi̶­li(wÁ}UaËsBIT|dˆ pHYs7]7]€F]tEXtSoftwarewww.inkscape.org›î< IDATxœÜ½w|ÅÝ?þžÝ½~º¦Þ‹­fY’›\1clª©¡xHàIžä›ÆB’'O!¤:„¡˜&`cŒ{•eÙ–lI¶z¿ÓõÛÝùý1·ºÕiït6¶á÷|^¯}íÞÞÌìÌ|>ói3óB)ÅÿU „DÿÑ O”'Qúÿ¿ù¿Ö.Iô‚êTu#6šÄåKšçÿüŸ"¹èÅ«ž e")ú¬t€’NPåC4¬J¯ä¡ÿAø¢+0¤ÊÆ£é¤ë裗¬ yaA!0Ä’h=“*¢ÿG¢WXõ,B´ê´ž_6øR€W_JgÊ„Љ#X```^f†èÿa^£Üª¼$šÆ ÀÀF·ð‹ÞýѲdεD@•z~ áKGqlœ»”Ž•À£°rDÿW˜ ‹7Z²2*VT¥åÏšfÉ*Ï7;‹sÄ°ïØ¶GÏûblÑo™8 nXXrÎ}ÿíìñéñö8:zdÃAOWc€ýˆ‰’ˆRíè÷Õ⃪¾!‚‹ |¹8—ŠTÈWظlDÀØ2‡‰l<ÆÊeÄÀ^qá«3ªÎ»U0;ò Çñ±qN ‹„òy½)O Ñ2”¼¶ÒùçðkŽ%«2Ç’U9;sÆùÀòï@ù·€+úmB ‘¦p ‚Ñ.ŠAÀĆ'ZOEt|iˆàKCªÑ/€!Û '«æ‚ÙY3W/×Y3òôf—K0;lýËß»·ÿc}´®Šå¡6A¿0à¦NròhbÚ3ÀT¸äöù®ªׂãuuy¹jV˜ÜuFÜ}fˆp °/Xâ*;c€,0Í]ÑøT£&óñ(߭ʦà`ræí¹% F¯{Ñü:df&ä:ÎîKÃ&rËιµ%³¢Æ(€|÷#¹é #ÉJ#ÄhË-(¿àϾõå{ÀÄ„b‘(íþBá´@×j'€‰šó¸3æèÖ';¨‰À•õ!,. £2KBy¦„Å¥"!„ã‹Ï¾÷jùrÁFt:•"h Ш)ˤá¸ôÊs¨Œ¶ZU¦¥å̘3 á…0B³‰¨Ly–ÌéUy ×_€\³@‡9ÅΫðÛk­˜],Âðv0ÂQ;¦ †Ó§E¨|µ¹$Ce?K¯é8fΘ6­u€Çœy¼cίŽÐ­<±å×Ugϼhqß¾·¶ƒé&¹r$dIT—¹@k?EÑ__\²ì? F›A ŽCÑQèÐ åY“@J)#€ yˆäÌò‹~~#¯·˜*s9¬œ©ƒÒ:ìe"øÀû»1™(9wã¾…Ó¡$žr aÚ™ÀFŒ}ºÓòuÑ´€ˆ·§©õóÊL3R²¢R@HáÒo¬PepäÏ)\tÛ…5Wý隬ڋfƳjr(½5Ã(ÓŒ ‚1ÍdÉ®t•Ù„ z… Bõe¿¹Ø5mé0®Q?ÿk+í…sªu<ÈgêATßìuËè’ …Î-Oï“ÿ RÕ¦® 1RÑ/N 78¥ òšfvÛÒJæÙûv½Ò æ™ó!ÆBÇ74gÕ®^Õ2È㊃å"Ùp˜§È¬ÈZðßf°ç[”£ÐñNËäT’¬®)tÅévè ðÒï%ÈwLn‡ÀyvBºÝ@VíêYµ««#GG›×vä̺¬¹rž¹n¶€z»÷”"A/˜ÿ@xŠ«Ú€áG¢i?ƒH‘O%'8Õ" Þ®w€ÉÍÌÂ3¾¾¨hÉ7Nàű µ~rÌÓææ‘ö½Ý^qáÏÂC>£aÄOàR1vƒ\P#‘wj´ç[(I—P• TdË(Ká9¥ ª àâºØ3’c#ȱ‰œ^~y¥m”lh•é¦Ã"³ÈU¸øV@QšApa½nRæÍG˜£p¨õã=`Πbng=˜RhϬZYà:ì÷³L”Á#éTÁ)#€8»Þ†ü<ƒ3¿¼zõ¯n±/h@@€ÊKýÓ=ÏÞðs_ß¡C`Î À ËÎÛ°×–__|hÇBËDÓyq©¤4ƒ¢4BÏÇx*¸gi&AY–@®_(`çQ™n8$¡©["w,Óƒ‹ûÜW¦GúdÈ‘`¤gÛóó8£w;€¬ìºÕ³Ê/üÙRI ^ûПzw½²@Ø` `Î$zª8Á©æŠ]o^ºü;çå5\‡`H³säìé!èÐE]3¯þëww?yõoBcýÇÀFŠ €Ísl׈-¿¾¸¥ŸÇÂâ‰À`U5{w:•gžæ—òd~)ˆD ×èÅmí(÷±Ýbد8·KÀ 3oî5K§­úwr:£¨¸ðç?qÎ[sàï¿€Øì¥½Ô_' N‰¨a×g^ýç+‹–Þu¿`H³çÙDrÏœ_Àm |H·ÈÄè(È­ýêßïáôÆœ /›¾êG«òæ]; hŽc_ÐB>ln€‚×[ÌæÌéE`–C€RåEKî¼túy?ù&'‹§ëɹ3 „p<Ÿ=ûÊËç}ýíZ³+JÀ'ÂN*œÔ!qZ+ýYéåËæÏ¼ú/Çëî^â&…i<ýp€§ü4 ÞÁÈ‘íÝÛžmš¶ò‹ŒÎ"@QŸ'Ჺqš'³øTî'’çóä%„àÉOCX»/LeJ ‹!q éÝíG>xh]80*]~ß‚¢%w¬á¸óë ¸m™„…ñèZ/ IRÈÛ»ã¯|%0Òݦ„œt1pR nÄCuçeÿ¦Õ^ÿĺʖž]™!·6Œ!]nž>ºÑ‚cJéf WÔ‡0#GOw²(Ê€'È!,`ÖŸ\€îQŠç? ÒLLEü#ϱ½é•+Jàê…F\5ߤô!øþ‹n앨çØÎµ»ž¸ê§Ž‚@_FˆV>~ –2é0mנДQ6wÞk~É Fã7{Pæ’Æ ­CÛÌl·³§‡±²*Bt=!„ˆ2AËA/;ÄÁ<‚Ñ;HáOä¨:°›(&‡ °›‡™Àiªr—…Ké»ZuÝß-Óg6Ð6À#ÀíËÌXYkœÐþö‡è#k}T ù¼;»ä^ÿpÇÝ` L?ÃÉ †ÏE*ä `²J™ We¢Æ泟Vué¯ïÌ®»ty‰+B¾¹Ø;¡!hîa¦ÈJ““vªÖÝ&Øß+ ±›Cs‡°”Xl Íèy w NÞ%鳋æ8§&Dà¸ÑP |r0‚W¶‡pÃLÓMÈã Rú­gÜðdÚ¹éï/^û«çAÌ4VúR=¸>÷J£&€8ä;xLÎl ²,yÿ¡5ˆ9‚D0¤›8SæOÔ^Ãöž¨Fÿ¸ ¿â‡îå –,[áÜ•sn_³¸gç o^û«Á¼[€‹ô{Ñœ|€bØÏÃ`r6UèåñF“-ƒ ñP_ÀXsmƒ0±ÃµžÕÈ×úOù­¤ã9 ®€C]‡—±û(ÅŽ#2þµC‡Í.Ÿ#à¬Ja’S(P üõ#¥” ¿éíƒC­ë{[i¤GÌ“jã´‚æ$âØˆ²°• êeŒÖ÷¸ˆàD9€2ú ˆŽþÂÅ·¯H+˜µˆENšHº¨ÅZ°è¶k]Ë—yÿ¡7†Z×÷r‚ÞZwÃ3WÛ çèy·-ð‡i‚‹?! û9¼{ÀˆÝ:P¤€Kçð8«‚€f'D{´Å#<òã !>P–AP–Apù‡€nq¨OÆŸŠxoŸ„«æé0·$5Ë WF÷¨DJõ¶l'èͲN›nVÖAZØ\ÓÎ()9û;›3ʪvüí’o†;Ú£Å(³©bJUÁqëªÑoólåí¹õsï|óׂÑn_^æ#ç”û°£Ó„÷Yàp€,ÉýMoÔÛ²mŽâù ù^”ÆY‰»[ŒØÔn€D=¬ªápA“nòh=Y EñïÕÏ»ŽR¼¸MD÷(SÔ˳9\»@‡ŠlnJÝæ@„׌Ñ`ðtî:²ç™ë—Åp{×9KO+>ëî ì…sg) ÅhÛ¦ö: ¸lžWÎÓƒ›¢O´þû¬%DÿçM7$™ÒÑŽÍë÷<}ï´óœ\ ÒúÕ—BêMEú´ÌÚÙ7¿t¿ÑQ™k ãŽùnb&vžVc ðÜN+$™Éû»– Pò%«ß‰jÿÇ«ô©Ÿ&Q­ç›"xf“I¦XR®Ã·VYG¦@ÇaãÁ ýõÛH2¥#G6lÚûÜ-ƒ¹‹{›1£uN©S’Šò•MV0ÓÏfÿ£IÃ<ᱞÆçoùgx¬ß×ãÑá¹ö)W0ôzy¼°›!ÕLß>7†üd ù©p ­ßñˆMÅ?ª¢+jtø¯ °6¶Dð¯m¡¤éÕ°ñ`¿~›üá–·ï}î–¿ƒ!~“ç !„#QHVnBP!_ñöÙ]¶¡"l‚Ç & xÔ?Ô6ôt{Àf”“ºx|a‚gvØ άàpí|Juµä¾jÙ¯õŸ{O„tU{–9LEŒjÔäñø•FðÁ«ÛÃØ|xjßÍž£üúm7•d`°ù½ý/Üñ"˜Ö?„(Û&Uß*{-xÖ´ÄD IÑ jsÏ ÇV ¶PtƒI^ÂI býÊBŽ,¥5W?zWFÕ¹çZt2\&‘tºõʦIÈRXôtîê¥:Gɼ{ßX0JÑVþ65á­æ4èŠ]¤C‘k²®eâ©!{‡dD’Š¢w"o³”ïHøÅ[!ìïQ‘Íã§—[¡ãµ  Ï#Óo<1 I”ä]Ï|õaÏÑ;ÁÖ sÍëð®ò³l×4ÛòÄN011M7ÉK˜HÝߥ ÀU¸ðæ¥+VJÉWj†Qæ ÃäÐ<`&M&ÑëÅ ŠÙîI—ÎK8ÈŽ ëñö+€;ÏœŒüD÷dŽž© 'ÑZïÕyµÌ½df`"q:žÃ·Wñƒùp¨OÂcë¸ëí©Ñ\‡@Ω1Ѓ\ÉYw_°÷Ù›Ü`³°ç´Å9®òåU¶¼ºiæô²bÁìpHaßpãk7‡ü#êGÊêâX}48€‚|+¢«x–|wû‚Ñž¾¬tŒœ]ê0¾±„x#<Ýßg@c¯‘ØEœ_éÕùæÂ€WÀêY.ŸÃO9“iìɸB<$bãS½O…0¦âJÊÂø÷#?|ÅHñàVTæ šý70&Ó;þ>Q¢´{ë³{­9Õi–ìªlÁh›L5„ gç‹zóÿ=¶®pŒ LØd’ˆŒ›‹nž!˜éizg•x4[uYPÀ‚Â@Rùº½Ëˆ¯€Á%³“#_¹'B¸–Ò–LΧ:ÚS1SQÕGKt¥óX=[—·…ðìgAò±û©Ì½Tí{­òSA¸Ö¨NZßUò\4KµMì±õH ¦é5˸j‘…ìl¡2OOk õ˜Yh@aº0¡¬îQfZê-YPYZå%òPDã5þã–'÷¿÷²,…C-CFúÈæ,|Øj£"å‹>ë0c,ÈcZ&ÐP§4òÙû‰dz2äOU†–~1•BšŠN’Ì‚Pç7ê®ZÀL¡l BNл. ‡¿Ý–û/´“Uu&Ràâ ¥tü€;ׂÉaW>w- ˆEâò‰A_oÓËßzb÷S×üÀslÇ™úI‡oÊBS¿)%"ðGÖ·31uÍa¼Ñ>z‚˜øg­Ñ>—Iô¬.÷xuõ©>Ÿ]% ßÉ£kDÂGûS÷*@¡Ç†D<¿‘‰jÁdOƒÊ&;fqey‘,"V×XWã®]O^ó?ßø¯Gƒ£}î G_ltâ‰íN:àKî»]wÄŠ°ÈaN1AyÖÄ¥¾+ω:S‹+$bï‰ ‘¦®'¢ôiåO„ðxàpýbàÅ-A„c× W¦¿}{w>Ö‹M‡”J‘ðرkÁ¦ˆƒÐ°€Ä~õ€Ì«”fvärœPZ¼ìž óæ]¿X0ZõGÉ÷Ï€A˜¸BFC~¿1Áƒ—òȵ'g›Ç3ÂA2Ó+Uí?þ½Z“W×)ÞüK”7¾ uõÿ„üøU/š»E|u‘ W4˜–cAŠ7yéÛ»üˆHei¤cËööÿ÷yOçÞ}`ë—q˜51u+@™ù“À¨È…ËÚöÑo?ã¶ìüy_­žî Ã0y `S‡²L°¬’$E~2V›*ò§’͉´uÚ©ÊN¦¯P‚®_lÂÿû×ÞÜÄeóL Wz ˆ?¼7J PP÷±;Ö=üêHû¦ÝzÁÖ *柈8äqýê‘oD,Š…ÊDÀq‚žËœq~14útÐ<`,«â'tB2¶;U§*0•)— «O•=k}Gë›ÉÊV>Õw*rx¥ 8:$â@·ˆùÚãT’Ù†•ˆo8x`;1ܺabÓÃC`sDƒ[k•1N‚*Ö¯Þì‘6óW l{s>€œÜ¹×ÌÖ›]f§ID¹K[aéõê0ರ:‰Fw"?^ÐÒâ5v­÷Z²x¶{H ¬ ·ƒHM û׃y23ªÎ½U0;ó1±ñÑSðDÆœ‚@–72˜]kp|¤¢ N¥${— ’’ЩFîçUNÁ´,N ‡>‹4V’¡-j X× ÎÒÅÓFºl}×aĶŸ‘ &- `å–,ÁhÏ!”b~ÁóýOƒdZ%b´ç²Ý!==Œz 2'Öñ åhIRAr²4î ¥Ã>‚ÒôÉì1H¤É'ª_*JŸóËtx¿1„m‡Ãš@)ÅŒBÖ5`Í®ž&®y0"P"©{Á–‹"¶Eo|™m€Zþ ÌéÓÎ,Gx›^$ç—»•†’É&vãö_—O h¨±'bîi!8URŠn7è‡Í G‡)úǼAJ@(t<à4ù`N¡KËcJD´Ê‰fÕéâŸS…y¥z¼ßÂÖ#|evšš(µæÕθòWq¼>Hx!Lˆ Ž9Á ùšö¿ô­g;»@ÙY¬)tŒÖœ™¥ @¦UT{\-hdnÍÙE‰}ôêß©êêç©L:@qÏ žºÌ±YÏdõ9UP[Àìãp¸_ÄWFºu2)N`5rð¦ϜqA¥ºŠBñÔøÌ±§„«“Ðx¾¢pÞœ1-²,/P ´ëAÔL½13™ªÒ—è¹×CèŸ?é!(¤à˜ÏÛ»ÿÐHÛ§{:7>±[R挕…™µ—6¤eWUšœÅymCßû—H.ŸËÑ fòãØOÆ}NóD¨¦B¾ò.©É̯xÙüØ™±à IDAT†|Y ‹ûÿuÏ|°ÌC6‚Ø¢J æû°wnyn¨wÇ«ó¾ñö÷éÅù¯n—ÈÂR¦[˜LD¤§ŠœVÖ—ÃÞã;_‚²ý™´2G‡æÎlùu¥P!_I§*L1p÷ï~íÏž£Û×Eü#C!‘Ð&úÖ!~ÿY6Þ”Eß=dG"ð†X±vÓd§Šúw2ä+ Fj"'N|>B6;Y«:6<òÂà>ÛAs Œ;vf̉Ò Cý­Ûÿ|á/äH0‘ ~÷¤)’‰¡“NKtN% ÐBõdH”0g• 64Þˆx ‚) #-ï?ø€-2% *3ªV6¤åÕΰdW Á(øû8zA¥G“ä=!FµvóÔH>ž÷É:ê<² <¿•5Ó×w°µcý#ïƒ!·ª’ˆq=Æ Âˆž#(Š~Ý‘zjúyÜyt„à£f‰.¯æ'pÓÎht²!oj»½Ž‰tKk[Zhî C¦,üœÑQT€X»Ç &£ R8‰& p¶omßÒ ÈQÜ0¯þƬ¶êWh,*œ¦©½iê{üûxHE€öaÀ(•é®'¯ú ؤÈT¾qõ|9Àܹå¹ÏòÜr±ÉU’·­’åÕ“¿{ªuWTŒŽø“‹€Ç×yðé?ís+ç`‚‚R90z쨯ïàö‘–ßClûØøÔp¼ @ìl<%ĹÕ`/ÀœŒ`¤ t²¿^ y‰t€dHÜßË:M y½bplÌ 2}Zëã•Ø<°Îë;pÐä*ÉëvOL{ºu€‘)DÀ{»}Ô’!…|á±Þý힣Ûw÷îyus`¸ãñBcfPË TLAe*xÂÝ`Ë6€UHL‘ã:@4‚¿ò‰“;Ç3 üN¤ ¶²@ZaOO∱wÍ*q\P9ëÏ?Ðøú¶¬êóÎö'{óÂɃ˜ôa¾…Õ˜¬|‚­9ÿÙ°»w?˜®£¿râ©ÒãÜŽ‹V^A°z‹‘²0@NôÊäiéÀ *Ð^[7¡Ú ÄC|ú©¯¤ër³»·kw+K¸$J(bQº#û?8Y–%hdvö‰p«Ï.‹"´ûœ¢4Œ&îºÀb výÁÄÙÁIsʨWvp­þIç æÌìÚKêÅ ê­ÙÕåÆôâ 6”Ø3(Dýa)5ÿDœ@ê²Ô&éu¼5ËŽWKuhªÓA0ñ  dX˜H;ÝŠ. ÓóÚMF(õ‡(¨,J¡±~%Æ 2âÕ§–NBÜ<€€#oîW8K.7gNŸcr•”^§œ¤Mx"£ÈÆôôċӌL<¸ýÉ5ûdŠ¡ò¬…äd0Ÿ~Ç0`Í,/†jËTOK (Ÿ@l0 –Ü2 „E'sšcŽ–S9âÕ@ŒFG¾bÆCŸ›QHØ7è‡,ë;“À„ÉÊ®bù˜Ì eç~÷g¼ÁšJA’e ÌÄôŒ0ŠA¢‹-#ѬPZT<ŒøbïÔ ÞžOñ£=‘¨Pïë+ÏæðÙ@oÉHÛßh‰¶MY9éèÖ81¨¬ƒ´:KϨ§yâwNµö¯ÀX@†(1Ù¯KÀú¢qCž¾b§šQ0pƒ±åÔså9^ ßíê1gUä,,#g!jò©¾ž¼á ¸ƒÌÿžÌÑ“’åIÆ!¨Ê–(ÀN0²kW×õ5¾Ñ¦ )Š Àˆ@ÝxÈ Ãš3£ ]“·‰BP´—9ñöù^7k’-¿>sá½nñölóvïiØÿÞ_‹Ú BŒPBˆæ¢PÎ?ÔÖkΪ€Ž£°è¤(#H}JÓfˆŠ€4òHäøÑú/>O"@ù?ÃRà:G*.~ðÖ¾Æ7‹¢Lö¨E låÔ]ÿôͼ1ÍB@±ºžŸ ÑÒMN(ŠŸËš¸üâ ó§™È¾c! [NšÁ–S—>ý¬Úâ3ï¹&ìíïõwì ´l8ôöO^ÇÄãk©–+Xôõî?½^¶=éxg5°J&ÿ§UV"ÂÐ"„D®àøßw-•¨Ž'àõVóœ[^þbë3À[¥!Û}¶#z ,€ÂŒª• ÓÎXgWZ’Á51Ÿ.ö±¾tX/&©+2à§Wºðò½¹ä·7dâ†3m¨+ÒOˆÞš•ã(ž¿"³æ¢ÛÁÄ¡¢ 60Ž|Á‘£[[@zÇÆUf—R!†´(ð&"(þYù­õZ&a"?!™i Îd—V4§nÎ-/Àt¥`MòÀL\ÅÌ-ˆþ7½ø¬o]:ãʇï&„‡‰âÆÅüI=Zçx`Ô«p€©#¨pAu¾ž\·ÄF~}}6^½¿W-²PŠàhg/T«º¡LG Šíàswlo“#Aß5X~¹!_q Œ4rq•u9AÄCšžÀˆêmY‰ ‘‰§ü§•>.¨‘°¯›Gë­hnÝÒìýý¡7øx_ã{Áö8„X›ØÙF‚1-söÍ/}Ý’U9„…Ÿÿö¹|´‹NÒÃã:Àñ}›RJ GE‰ðHâ¦ü‰®`Åæ0 F;ô¶œêÌã±@Æ”öŒ ¤.gòÇ …Y/ÃæÐërl㕚p«pRç΄'ÐÔe)é¾·RÆš½ÞßÏz«¹úòßÝ]yñ/BaÿÐw ¥Cò¸­ùõÓõ¶ÜlÁ`µÂP 8âÛ+8ê4Ç–ÁNí_ÃýLmÉq¦C)Q~o³rß„-b (@!€þ½ÏÜp/}•D+•%¨l T²PYrf×^ÒPzÎý û¼ºqÅ(*3ƒØÕeÆÞN‚œ‰9Ösü=ÕY@u>5Â.­§XT*Ò?®çI¯›€Ó› F}AžÑQ_o£¸ºÐU,ÊZ"ßÅé ‚Q?EK¯£@P[ ½*˜RÀ–A¥ ”ª"£½?‚áÃ!n90q6"¶!¾¡¶0ؼ¹±A6yc½6 û“l ‘®.3vuœ[=Ñq¼Ï«UÎ䎙HpYi ^,£oŒÒ½Z@:G€€ä¤”fPZ›Ï¡*„çÉø´oü¢ÏÓ© lo ƒ˜U,$ô¬oà×o¨*5!)ìóøzš; &(ˆ÷(Š 2Ys`š£ LfÜÇvvP*Ëî Ï…e=7¹SÊÒCxmCž …͘|/àxõ§`ïñÿ%zŽ/K,+ȹÕçVÇF3ǰ¬§Ç´K¶Eã 7”M^ ¨Àƃ,.½,†$J©D@h”P€„ÈßÐÄ–ÁM8},¦æÓ ³aŠHÁ$ªºsr8ˆ°§Ïk°çØú½:Ø&o_ÒqÓ]a0¢±‹`É4í$òô%{ŸªHˆñé’‰›Ó !h쌀#ÀÜRfš°ìhgË7ö°»#Œ°HQ§CZ‚)àÝm!Š!wϰ§{ï^‡ìнplVPYA”ýÉ·‡+ǾÚÁ¢…娋çו.»÷r[ñ¼jB ¼ ‹>q'UfAˆ Í}aÐ ‰YõT‚"ÕïRaýñ;rÕ÷TB¾}Q„°5zô|Ã4íÑŸµ0O›ûØöƒ`ËÝz¢wåÄ1Å·£xÿ&Íjm'ˆùÄmòlyµ5¥Ëï¿Î^º žã % ¼8«ÌK̺ÄcÖÉ(²GÐ1ªÇþ‚ú‚˜2¨…ð©ªN›ˆõÇ{Lfr&³L’å?Õ Ê;ÚÌ/ÕEA°¥5´ÿ»Í`~l”+"@på`)…ÓÐæ±IAH¯¿îé{ìsÎ'¼ ' dV®ËËÆ`3ˆ*zI u9AtŒêñ~3úB *ËšHN¦¨w€†Y–Ì\Ó"­‘¯.û‹RÿÝÄ„˜ž% Û®ínê c,Hñ‡¬ElúW™õ&"žR jÖ*=61"Ši¶‚Y+/è+2‚ä› piõl1å^™›ï‡Ã$¢c˜`GG Ij„Çsõ{­tj˜ê]ª a|Þ/ÊD(^ÞÊt§k¦k<ÊÒè,.SÝuO¬6;‹ÊÀ\ÚY`úšLŒ«O‰fÆE„Çú`~ž™æèqîä9`Å45|M#Qšˆ ¹­ŸŒ+ħ'˜øüZå+¿§Êsº`͎ܵ:Ô%–ÿW/²â–e6¢(œÓ–NŸ}çšï”sÿÊÀæ:2À&¹ÆƒD ªN'@ÈÝÝ~íÊH8êÖ¡c4qeërƒÈµE0äåðI«ö6çDV‚Vºøß© /‘’ùeBþˆâ­Ý!_;Ô4-G€Ë,øËm9˜S¢‡ ·š —ÜyeÃ7Þù‰³tñ|°É­tLä“ËÑx§ö„üà ÷ íÓÓGmô™Ý.úó³ècÛÒéó»4Ѧ'`U9ãïî'ð‡'#H>Õ;©’Spd\AöË‚|€…† ‰KÊõ(ÍLÍ÷ŸmãȃWg໫°›8bÎ,/›yÝã?­¹ê‘[ƒ%lÊ[94% žðuíj!80R‰%h&˜Ò2j¯}âr[Á¬,'ãâ*&òȲH¸ªÞƒgwÚ°fŸ¹v`FÎD"PƒWH„ðø|Z‘¹’‰ŽÓþ0Åÿ¾€/D±hš—7h»|ࣦ mí!Ýþ#kùØQnOO£èéiÜ Àl°çÚ ÞZï(YPuèýþ64„ØæžÈ„‹UÚ"Q]êãdœ L®Â™3¯}üÛæôÒ“ ‘çºQhŸ|x´Ö}}›ï´À¤¾}vÙi‰çTõJTßI„¡õM-ñì~*D@ð?ï°û˜„Ò ÿ}¹zAû{!øÆCtØGqtãïµ}ü»—;*6„‰Fqˆqnõ†PÍÑ@’ƒ#i7‘€ØDQº­`Vuý/|Ïœ^Z`7²“à 푔ùé²²få…ˆÛh@ ›6N¦Ùk±w-Å.Y¾/žÛÆîcì&‚û/0AŸ„¿¼ÅaŸŒÀPÛhÛú?ìFt×2‚GÁ¡l3è1°èà`‹^“"Háôð¸ŒãÓÄÙµ««ë¾úø iÙYY‘Ü1Y–Ô縢֋‡ˆA‡ß|d@ߨäù‚h=¦ôñké ZΦ/ $øÛú0ÞÙ†Ž#¸ï|3Ò“¬÷€Ñè¾}Z¶%£âì"0KíJ%¤riîÖ‚ã:>*1P¼ìžy“ÝeÖɸ­aãä­Ëc!¯í³¢}$1‰ ÅMóÆPà1à%øíÇF4õNœ÷×Br<µ<€J:å÷)÷=ŠŸ½ĺuÿ±Ê€Šì©»ÿ[«ÒpF¥¼Þ¬«ºì·WdÎXU‡Øæb„ a¨æþ“!8~¢"áð=GÅpÈáÐ:8QeB?:l¡ÿû‰“ní4ÒçvÙ¨;˜øSV½Œ¯/ô`v~ÁÁ_7êñïCÚsñÏɸÂTïOt ÉøákAê“™FðÀe&Ì-Ná„l°wß6²pº¼Îl¨¼änϬ>·læÏعÍ@L\+|ʧDª‚ó08t𣶾½¯¿o´Eú³ÛDÿwC:>lµ "óˆøGB¾0§w¤ÑH’èrGqÍ,/Ϋbg¼±Og·ê Æ1–_$ò·¶Iøé𠆼U¹<¼Ü„"×ñ;Žß»Øy¥zð:³±ò’_ßQ}îl0N võ˜$¶“BÊ[ž¢j½²…Ü <_>ÿëïýÌ”^RZê “ È¡‡m'£ÁÑÎÁöõød¤m³gî­¯\©OËJ«Í áº9^B\ÃnÐã…„$‚b§„›„àˆ†œ;žã]ãÍÀÑèOÔ (°f§ˆ×w‰ –W ¸y©<—¸LŽãÐÒ'ᣦ®[b…Í«;ÇqˆH”þìõQìj S)ìózë‡ßëß÷Ö§`Q@Æ·Þ/8®=o$vª¨l#ekÚ’¹3¯yìA"è …ëÝý¯¯ýå:Èr€ÉYº¸¦æš¿ÞÌëŒú•å~œSΕNÖ‰}^On³bØÏC g•‹XY%Â(Líñ&ž!œ(O4ï¶v /m•Ðë‘£A鱪Fû4PõwvµGè¯Þö ,V#Á×ΰbU$”†DিôSo µoÜúÈŠ»Á¬’Øû qzœ (Ê™.¹5W>|MzÕÊFÚ6®myãk‚c}`š¨ æJ.Ìk¸~åôó~t G¹~®—ÔæD¦ìÌ€ÈãõFvwé@ `ÑS¬¬±´,OŒðøçÓE-}2þ¹UBK?“[y‚›ÎУ&OZ>!ÿÞ¤þЙ„¼ý~ƒ5Ë å¹î:džé9ÌKøòžÙॲô5½t׽í¶‚mà9õ Ziã ÙØ¥‹rFÚ6¹³SCÑt.¥jfßòò­¶‚úìªÌ¹e¾öùÂZ÷.€·öÑ:ȧt‹Œ‹kDÌ*Á%àZþþSE½nŠ—¶KØÑÝÊm&¸|®€e•82uù¯nÒç? íÛ÷æî¯ßÿqÑ¢Û+ —ܾL0Ú-„€\Po¬~±f”Ê´cÝþÒþÉ#¯‚ùúß$_ÿ”ø< ÀÄ8:ˆO ¨Ž'ÓP³”g×^|^Õ¥¿¹Žç(¹ï,ɰÈÇ–Þj6 ËÍFT‘CŠÊfäÈãKÎÕé•çSEíCëÊø¤…B’)L:‚‹ëy¬š)Œ{ö’—Ïáñõ~úîÞ (@»¶<õïÃï?ô6˜ƒ†´¬ŒŠ‹~©kÚY Á@FoX¿÷¹›óö#ò¸Ø?pm€B 7¢¿LØPâPÈL3çßµö§†´ìôTu€„wB°ó˜ïÐcØÏúDà(ª³eÌÌQ›ÏÌÊÏ+ǵòJ8ØìýØ©_Ã`ƒÈ À™UsþÌÒß»Þè(( {úÚ·þeÕIïQ0Ö¯„?îÑ$Ÿ JÑC x±›Ê¥ƒjΠꢇ.1¤e»²¬–M›6$"ìíÖan¡2yÂjs #˜] bs»»ºâÐØÃ£±‡Ç?w%é2êòdÔåKÈN;‘Æ aA§w“±·‹"¨:>!ÃJ0§ˆ`åLYi$q! `Fž€wö’–~pL‘Õ!0ü õ7½Ûßßôî–š«Y1ØüÞ)à=ÆöÇúõxásG¾PÔSå'b±vœŠ\•ËÏœù•?ý„ãÝ =(u±¹etùÃOl³Ò޹6 _©¢Ä%§‰¿k½ó…¦^{8èã¡ö7èy ‡ °™ØÝndA¬í& ‡™@ÏîÇŒ ÜÀFýìî MìÙât`N!‡9% ‰¹K|}µÒp‡¼þƒÉQPÞP"WÖzÄ-yÂ<}l³}c@)@(–DpጱèÇË¿OÅVEJp°—ÇÞûz8xCÇ?2ÕÀ 2‡`vÁì"ŒûîGo)°®9‚¥UT<—ã8êé÷_¥’ÔøÜÍ¿iÛô ˜lF,‚‰ZÌ*n_E×:aä'(R€«¹ê‘sMÎÂé …öñ“)ôy9<¾Õ†ÑAÈÝ3ÚôÊ=äÏ»®2kæÅ37µëùÆn^R&ó ïÈÌÌ“P›ÏÄaH$ð„8¸ž à¸ÇG:ADf\Áaìf‡‘q»pš lFïx"£KöéS‚蕱åHß»ÈBt|LO¨ÈÈârý¬\ÙŠï^ºã±Ëö€ %¬}$z©+t·ÏñÀ©âf®ü†ë–žq× ¶ìé 5Ù!rymC~Onµ" r40ÜÞ½÷ù[ž Ž w”.ª˜¾ê—X²ª²Š‚d. P~ ݩ6µòôQúÜÆ ¶¶©ƒjSœY©ÇÝ+-L‹Žæé£ôî§G!RB[ßûÙ/º¶<ý6€£`Ö@ÚÑ>Ëå›N6(:€M$›çõÅ«qCFÍùqœNgdˆ2AD&ðö5ÚûüÍD¼C`ÔnÏq|Õâïíú:¯3 ?:×OÒ­1ïß—"Áš]aúæî0",†"}{^Û3|xC_õe¿]Éé º‹gpã¦qý‰Bý·6iØÓdÓï–ÜfßGûE:ÈÖ‚S!Ôë ‡%)Ì7¿vß“é{×ì˜~þoAzIxŽíܼ÷¹¯=*E‚=` €ÉY~¶‰×™x—Y†Ë"q+šE™Eðú²A׈Œ_½¢ƒ^Vg÷Ñí-‡ßpÍXOSþð?~Á×¼¹+ÄÛÍ—Í5QQ¢xikïQ€€7X,ÎiKÌ#‡7·Iw"pR @eŠˆ.+GtQéÐáOƆþ¼ª©æ²ß] ˜¶=ÏÜð,˜)£.PæÄŒÊsŠ ˆØš5Œý‚5¯¶)Ï'– à…:¦^M½<þÉSÌÈ–èÜbŠÚ[Ú¥¸Ôǃ9ª6’îŠ#‚ñ5`š­Â¼Õ1k90xÑdq•“9Àgm=2ÄC Œ;·>³7½rE5»*gO·Àíé¦Ðñ”^>K&gM?9ÜsËŠ£#2zF)íqSô±e]ÌfüakæO\Ê]Ë£ß#!£òœœÑ¶MÄ–kIˆn8øÆ÷Ÿ4Úóxgé’‹ÝG·¯o~õ;ÏÝÝÊá'ÅÁ“*œ²ñ'Æ7›b¢ËXÁ”>úžÏž}Õt¢Óës¬2l†XÛ=ABßhÔ=úÙß><¶ñ±Íëÿ6e”fä;jQFÕªYp¤õ{Æ]Ñã Sàû¯s@MzÀj,Ñ»QGÁ+粓:ÕðÔg"‘h´-°h™¢Ôtwù­95™ïï‹ÐU3…ñs *—ÇúƒÒrk‹³ÛEÄsŽîyöÆ_.ºiͱMO# b+yC8 6~*p fÌL‰rƒÉÚ‚Øfš^~f@à43¾RÆ«FEB½=M­Ç6>ö.k Ûl‡×þjDÐ,¼Ióˆå#£†Èhë8"¡tv!•“£ž•>‚ÙIDATR€ cý·{ûšx:w¶…½CAÖY_{þj{Éü²5;EÜtFŒ Tå2gΘ^ˆØ$Al¿¥½»mzª;Z—0€Pù•ÿkjù×ý ë?%È_úˣΠÿU4¾wª†PÅô‰reî@áA)è¥rsŸÀ=µÕH®DË €Ý°Î´Ðq‚Á7ùË öv1Dµ|ÜÞ½å™-z{ޤ3§›É阶¤Ú–?+»¹´2G“@iÏ®—6‡<½ûÁX´ÀÖþÉÃoÔ?{ÏGÍ"w~OsìŒ}äØ98̣Ėæ,[”;rdS+b;ª”S»#ˆ)¾ãïóf^º9oæí”ʯ }-ú½Ï «8œ)€+xÈ%Æ™>- 5UG‰@é€0ïþWþãåâÁÃá¢Å·ß¾»Ëhì5#Uú_ÇÓ¹kØÚ÷aÄ8‡‡ãuaLÙ öv±Ï Z·}øÈ§ŸYWÞXïˆ-ÖeÝ—ΞXU¥(ÂñÃÑoöFëimßBGÛ7ïr”.šó¯í"ùÖ9üx»ªryl>""£ú¼Š‘#›6"¶«JÙž¥î7ûJ8ºŒ², òûe´à¤×ßÿÉ´ã"5Ò ¸3 ¨¢{U§;í ÊèW‚öw¬øo÷Þ¾Š‹þÍ’ Awwû¡w~ò"Øò§a0YÉ)—!p|ÔdPä5{òÚãá KáHÿþ7·hæ'ÜýÍŸÿÓ‹;†xÁ5ë'!¼L> Khÿèw/×ßÜP·©¼R™Œ$´ ­}2lyõ¥˜¬Èij¨”RzöGnåqÓÙN¬kòñ»ÚgËg‡Áý!bÐB:G€Ù¥&,«±à©G0ähY}ˆMpøÙC-ëB;þzQÛÌk¿ÕšW»´cÃI: ¶ëE y*Dó…8NÇ•ÆÐG`o7#K›SŽU@ý#¶ÀpG—9£¬ø@/Åœ¢8ü„ !†xe·Þݵ«ÉݾåÇ´3–?¼6C2!€,Ex“G줒ñÍ™Éd»À\4' ÍIƒÛ/aC³ëö'&Hˆô,­6Ã=næ¹OF'/ RN Ä­-Pf¿$Á°odtçß/ÿQþü zw¾ÜfN)“$ŠàçtÆÁúžêãH¡ (tPl?J¸»vï3±”ƒ•u #ÞÞ¦挲¢¦n9EñfáxåÀEQu kû÷o¯/žß FÜ‘£Ý¾þ–ö±®=ÍûßÝ#…ý=ˆ³é§êO@Æšmœ9ç…ÇEsÓpÑÜ4Œú%|ÚìÇÇM>~w{ŒX Òg•˜pvgT›áP14â“ðÉ~<ÉÌç '`’ɨˆ„ñ`Õ][ŸíDÌ—R¥ã¢é<‘ÀpKÄ;xT09óº<œÐå6ƒ!ŸPÐ}o¬Cš²mŠDËw¶mÜ‘U»zåžNJ3öÒ6DÑ6@™ H@ /¨·Z)<Ô ßÓÓÙô«9«E1hŠ–©p²10ÓN1ëRpêí°œÿûw†ø?¼;„úb#–ÕXpfµ61|Ôäã`y"¤7û°®É‡=Á¨ç@¶OøâµaB TV2©¤\@ÌžV$e£jXD¬,^oÌrUœSiËŸUfɬÈ3¹ŠsÇ6ÿþÌ{Áô‡06έXÊæy}Ùâïí|†Ó-JOÐH0ön|ökßñ µVåUæè•(ê0n¢6÷Ô×øþü©L»‰rœž €'˜UlÄY5œUmâ=2ê“°¾Ù‡õM>ìV!‚$Ô¾T @!¨GÊ¥€ú¨7óÿ×Ýã& Qôp."RZ*j”cäT´Aât Ð ‚Dt‘RŒ?;^a(–cËÖ6ž·³ãÝÙYÌ BíeÐì0ׯS5µ¾ÞÆò_úïÃÖãóëág¶Ü¯¾ÛÅxº™~~c»oׄãWeL©Îá°V¯_¾Â­eTC³½7ßÝ€‘Å LæVl‚3F÷ª$R”nä?bö^‰© Ö#²{EÉ9ÕËW b«:I,!ìºUô¿#Ôßõ¨ ¨7™Ë?p±Ñ½* @9oÑ$À {?ɤÊÙŠÆÕF©íOä·]+Gnü8ü@X¨{Mãz²GWÍ@ €œü56Lî7,ÇÇ‚Fîû×µ½ëÊܨx]Ò##pbhnîÆ«¨ÚpNASW£{ýœç· üHIEND®B`‚x2goclient-4.0.1.1/icons/128x128/rdp.png0000644000000000000000000002527512214040350014164 0ustar ‰PNG  IHDR€€Ã>aËsBIT|dˆ pHYs7]7]€F]tEXtSoftwarewww.inkscape.org›î< IDATxœíw$÷uß?Ý=9mÎy÷ör·D$@ ŠD‘¢HI¦%QeI”]¥’T¶UR9P¶KeE–MZ&i‘&-  ár¾Û»ÛÅæfw'çéö=½Ó;;3;³3{Gàî[Õõ›ÝÓÓïûÞû½÷ûý^ Š¢pw/Ä;}÷pgqw9îà.Ç=Üå¸G€»÷p—ãîrÜ#À]þõ ‚ ÿ³€SÖd¶”{Ù®œ~žžMa Y¶\PH ëç{dX;NеV$-h1µIºÏúýÝ&ë¶Ì¿eî‘aî2„žMت{2ÆŒÖ@š4Á&u["c‹§Ú$d¸›‰p[ ¼~Ó4[/lSj3–ÔfÖmFÝy°ZËõÂŽ¥¶HÆMý_;V;÷®´·¥¨Óx½–I \¶°¥6;` fgõ–‡Ú]m»íu½mæŠæAWß·¢Èñˆ×-yã·'êŸ[Œx&ÝÁ…Á¹àìÍyE‘ý@ÐÚ F%ÄŠeá®#Á¦[Ökš® \¶p¤6§h0U4ìýèŽêž÷:švoµT47’qÃDMFAïøù+3—¿óÖBß‹}À2àIm~T2DP­‚æî·°©Ð _Óx+ªÀ]@%PTVtíªßõÄAWËþ¶úÞNÉh5¯\h¬”èª3ÐY+ÑV-b”dYFQd’I™DRa9˜d)¨°RXÂrHÝ‚±tW!ê›™_>y~òÌW^ ÌônTBxQ‰EµÞóáv@BÕzªÐkz³«©­ó}¿÷XÍÖGî79jõç5U8Ücå`§‰½íF¬FH&“Ȳ¼¦Íö?};ì83fàÒ”‘p\%ƒ¢ÈòÒÀëoõ¿ð§ßŠ&€` ð!Ò}„÷¼5Ø4è´ßˆ*üj ©nç‡4þÕU´:*Ì&›Id—…£=V÷Xi©6nHàùöEã2}³.L™¹5oFâ¡eßÄ©/güÍ/¾Ì¢aÕ5hýƒä=läÂií7£j~SeçñCûýë_µS¸·ÃÂ/qñÀ1mªE)YàùöMxD¾³’i¿ ÿôõþÁ—þükÞ‰ }À4*¼¨Å8ïaw°™Ð:}v èÜöÌ_~¶éÀ³Ïîl5óožª¥»Þ”õÜ·Øã‰$ç¦ì¼:RE4)"'cñ…¾—^êáO¾&Ç#£À<ªKˆ¢º}²é=C†M Êèü™P{øÕ­|ì˜+§ðAµÚóÍÖê·|ÿË·OàP“Ïgg­Q2ö>óôñÏ¿ù×M?¾µ£jeuþÁúM‚†2=²;†Í P˜pX«;š­µÝIàD¯-çI… 5ß1…’AQl†Oo™á—·# &{M‹h´4 À…©¸'j_FŸŒºíDÖBÔÿQìõ6+¤û-€³ùð¯Q<ØeÁfÎÍ»b´¸c²mÙΫ2G‘9Í\ø¦UðéôqµOJµ1t!£öì7Ã5¬3^:÷$BQéí² ‹ù·®Ê®ãûÜn_÷Åjq±„ɶMúU«rMˉ¨¨6Ùk«·=ó…G½3‹ƒ?ú‹7åd܇Ú9ô¢f3‰ ‚Pr‡1˨h®ñ2éñ$Ed57Óh€Ã䨭uÔoë¸o[~ó_Š—b=&RðO_LÝwõîO~é3®–}‡j·?öñ‰S_þîÄÉ/ŸBM -‘N e³ú¡èbŸ]6¡g/1¤ŽI¢†­Zz;F$Ø h7m$åÿ›}òˆ  ;[-T;¤¼'—¢ÅÅž§ß7P °4ôÖ`1»šjœM»81üÎúÆžÇÿôwöþÂG^ûoß^xý:éL¢ÕDÐ:®Šò<3ý³Ë&ôÌñ+* ÔHÅG:Í­}_2ïæÌÈÈûk WUσÜž[û ®Â`Lb1bFND‹ý?™Ì͇?qP%©Ñà£]\[jàüB#4îèÙó‰/ý‘wòòÍésÿôÊÜÕç.‹¤‰bõØÂšágý#Óµ™B×´\º=µ9E£µ¢åȧö×l}t¿£aûVA2Ü·^ù§›ßýï³zè[f ´YÀ€ÊX»h´V:›vö<¸c}híí$ðWí—foÌȉX0×ô>²  ·bIP8T¿ÀžZg書²P%T´ÜYÑvpgçÿ?5wõ¹×ÇÞü‡7”db‘ìnaÅ7³–z¿žm°Ì8¬5 {?º¯ªë¾}Φ]½¢n¼ aÏÓŸ[ìÿÉ•ù¾µ®(© !Ÿ(72{ÿŽæÃŸ<(­æîzÍUÆœ'–Û¤C†a¯€å‘S£€`©j«´7îh…×ZŸÌj”y´m†ÍK\Z¨æò\Tw¶t>üùOµýôSî[/Ÿýéßü4ê›] M‚lóÖ _óíÀ&­ÎÆýÛ]ÕuÿgÓ®^KeK#B:]ÚUoâí6îßfã‹//qe,"VmyèÀ|ß‹—HOšY›a4óoœ5½x í×ÚÛA†¤ c>•ó×^ÄæCŸØ!¢Ðbób3$i…‚ à0%x¸}‘Û=\[¨àÌTKTW4ü•5ìýèûÃKc³1ÿ‚;ê›/Ïçûg½cçfâaOˆ ,.³¥¢ÙirÔ9öjWEûánWËþ­¶º-í¢Á¼¢1Q`g«™Ûl<¸ÝFKuZ™f< –ߘ ÈÜNÙòÿ›M€MÄ góží°~ø·Yþ}½kN,D“Ϥ'8ßï 5[éØZ±¸Jðú À$Á‘f?ÇZC ,Ù85áddÙb´×ok³×okËø…ÄÃÞ@2‹‹I2ZL¢ÑbDCÎ^qG­ƒ]u[ØßiÃnY{èÄbœyo9‰.Üzy’´›¹#y€Uá_ýž§v,.{C…-ùS¿Z[“^̾¯ïø… @±×õVÚë¶Ö™.§'«à3ÿ'°³>ÊîÆ8¾˜‰Å°å°wPÂ’Xˆ,°V:ŒÖJ‡þ·K"ØL6³€Ý$Ð^kà@‡‰ƒÝjDQD’$D1»bŸ~'@`¾HIÆõQHACÙå$€¾÷o5[=p¬×š÷Ärû÷lûr‘Bóÿ‹¯ŽÔïyºAZíL’ ˆy­@æÿªm2µŽ’¤ ŠâŠAÄ•ÄDìf‡EÂn±š¥UBÖÎö}™8=À;~¾5Ñ^­‹² KøgœÎæ};ŽåÉýk(E˜…œŸí̈;l! ÅÝ7_žÄÊ®ãííoNkm¾}™Çˆ¢@ê]êgIRÛB¯™ á˜ÌÕñsW¾{‘tï_ŸƒÈ‹r­ ÿlu[­UmFIàPWn °³ï¼Böi­þù§¯MËÉX\4˜Î¦]M¯ú£ x1dØè53qa8B"©ñLÎfoN¡@sY€r 3ü³7îÿÅC‚°¯Ó‚Ù˜ªœ&½2 {Tÿ¿³ýÓQ<¡$‰°7°pã¥~Ö¦‹B9\ÀJø×¸ÿ—öˆF‹¹£ÎHCEþa†ršôbÈ0äQÍ¿gôô ;›÷T™].“˜¤ÉTT™Mz¡×,Ä ¬„³7ÞA5ÿúð¯(ó¥@ïÿ­€£zËCûàç7û'ë:€ó}/¢úÿn€V»w%üƒ;—ðɧýÿ–GN]emøW”ðaƒHù&VFÿölƒõGÿÊiÒ‹é;Lù­„bù€wìÜ Tuª£úÁŸb…›O‹K!C&<Á$ýÓQ9‘œ¹ôÿ.‘ÿ´ôoÑ(Õh“mÎæ½­fWSÍ,²§Ýœó¤r›ôbÎ×Ì¿wüÂL6“½qG#@[Fü¯µÕôRÉ gÃ(@hqd"æŸwSBø§a£д_"5úW¿û#ûö´™W-õÎD©Z\ †¼.û_äÚmh%“Tmã0&J6Ûå$C6¬„“—oRbø§¡” !«:€®¶ƒ;õ6û'W¸<áúDŒ9o‚E¿Ìb@Æ–AQ§JI"D¨q48ê"M.…žš$¡øìßRÄL2ŽÏ÷ý`Pªºïoh¶ùs §\Ï·o=ÍHÊ ç‡Tÿ¿Ð÷C-ûWôè_&6J}Ð,¢ÍQ¿µàHÈ ÜœŒp~(Ä…á7¦¢$ ôZË!œ×Œ•„A4±¥6Áöº»£8Më[!ÏJöoRNÄ¢€èlÙ×Ðb÷%¸b´y#dȆ¾É(ˆL<¸èYüÙ«Gÿ6äÿ¡4 °²H±aïG;%³ÃVë”è¬KOþœXŒsa8Ì…á0—F"£éûTY »‡}S—§ÃKcKÏ´7¼<æ /ŽúA‘EÉ„h0K’Åit4×m©µVµWÛ¶5Y«:ªoÍ„[ó^¸aes”;üÔX“9ÝÅPª÷¿<üö 0˜[mw@‹=ܹ„O!V@ëýûgú2ÿ’êM!ËVmy¨`[³™+cÞºäí[¡•ùꢾـoòòÌòðÛ“î›?ƒ¬]9#“1§-0Ó7…n…µº£¢~÷S½U=tW´î¸0e.LYØYæv/ ¶ð*áG’SŠ"+³W¾Û$kw|°U b9„ÕDÄ .ß1!C.œPýÿòðÛWH‡%™(Í(©/£ÈA€·ûC¼ÝZ9 öFý3×ç=£§gÜ7_ž .¼ãcõZ9ÁRÙêr¶ì­0Z«L‚ (ˆ‚ )Éx(Y÷½±À|D÷}±ðÒ˜{ì¿[{ãï.:švÕu¾ï÷Öô>¼õÆ‚Uº±`¥«2̉–%ÚAEa`É…¬„܃3Qï´Pªºïkh±û˦ÅùŽ)Æ…dbÁ—`x>†’Œ'f.~ë2e2ÿP:’@tàÅÿ’¥ªm—­¦{¢$¥åá·'毿8¹8ðêв²ÆV·ÅY»í±¦ŠöC ÖªöJsE“S2Ùs/HANĉ°'{‚!÷ðÜüµçûnþhHfúf¯ó·h­é:Õõð©ÝñøŽÕ0âi¡ÉáX£›+ U,ö¿z Us,Îæ½­ î\§+ ™ÿàÂ;£‰ˆo‰ôäÏ ‡Jí €’Œ—þ׳_š€ÔfkM§³vÛcÍGœÍ{êÍΆ5˃¬&æJ§E»°‚€B< ‹Aµèc“Áä¬w™œõ.{ýÖ¦ºÚ.–GOÏ]}îÖbÿ«SáÅ‘åßùü+fgéÎGþð`ý®'÷Ì`7?7Ø €‡ÇßþoQ£µÒe­î¬Pýÿfû÷BÏÏ…•ðoâÒ VOþÜPúW¢òÿéÅŒúõêÀR½å}mMŸÝãj=Øjv5®Zc3 ìn5±§ÍDwHs¥@…5_Hµ\\(*ã(,æD.NX¦ÆQ¿ëɽõ»žÜõÏù¦Î|õÜøÛÿóZÔ?çíþ_~å ot>ú‡{ö<}Ä`v9§/~ë[‰°w°Öï~ªM%±ÆÂ,¥×þ#ÜbLz)ÚŸH*\V-Àܵç/.m[²ÿ‡â-€^øZåÏzkU{wë‰ß|¼¦÷‘#–ª¶•ªŸjVÐÂþ3{ÛMt×Päµ¥ÛÖËþ™ M.™z{’mµ2OlO2²$riÒȵY >\Ýø£÷7úı·¾xræÂ7oÄÃï;/þÙ‡_ùËçêw?U1sñ[7S·%Vvß×Ðbó•Íl—ƒ Ùpy,B$®õÏ-zÇÏQ†ìŸ Cû-¨E”ö}æŸþ ²ã裂h08­"ïuð=¶6›…ÕuÿÊ“ýk¯ˆÓêŒò¡^/¦¬¼6섪¶êmOý§´ûõC£?ýï//ÜøÑµd,䟹ø-íÁ§³iך`¹žoßzdÈmî`úz?éðo¥&Q)抷Úä;P]ÙylWU׉Ça§…'9yh‡}ÍL RsøùÈ p°)Àî:?g&ì¼5Qõ[›v>û·¿6{éÛ¯ö?ÿ'ßNÝFP,•­¢¥¢¹ @IeÂËaÚKu!¹p:Õ\zó2YÒ¿È,/Š Ð:~fÔN^MËÑÏ<‚ðènõ™&Þ¿Û‘UøZ[Ž\d™c-~÷ÐGš–Il:øñÇÿ΋¿g­éªAµ\²ÙÕ Ä‚îi€—&zøét EÊ©•·ƒ ¹0½gr1ŽœˆFg/ý³~öOÉំ‚2ÿ+©_À)HƚʮãG>|À‘óÜrèdÛ§?Æ$&y´}žgz&1II;vo{ê?þJê¾ïø÷™¿~ä/æ¯=ÿSENÊ×kù?7{é[¬B!w2Hk7“ ™xá¼¢†ßIÆÃ‹¨ lþŠ·Úägëñß8f´Vº+ ì.mõO>ߟï¼|ÇôVù¨4ÅXzk„t¤"&ãáèï|þÅkßø_ //zc&~4ÚÌ—®vsi®1¯à´¶Ó^¬öÇ 'ûCüþÿžá›'½€¢Ì^ýÞ ¨…¨”)üÓPh@ëüi“?\5½øà>GÎ÷¸•"ÔRɈݭ(Éxbêü×ÇQÝ– 0‹“SNÄÄ¥Á7&ÏþÝc_éxàw4úÄa¯«Ñõ£ázNN%¸¿ÍÇá–fis>úÍ–9=â­þçCDâêïãáÈ|ß¿;yê†J-u^ó eþõ°ŽÆ[î/ ô‹ÖnĤ³OMmêwp~`&öŠ@Eï‡ÿìxó‘O}\‘IwÿO.¿ò_.F<¡ÑŸýí¥±7ÿázëñßÜÙrô×QÙZõÒ`5¯TÑY¥·6Nom‚–J¥ld˜ñ$9=âä@˜ëãd.G°sîÊ÷® ¿ú_Ï%ÂÞàÔÙ¯]Ÿ:ûµ>GÃöÊÚê®l?ÒáhÚÙâ§ÂzqRä⤺àµÖ®`5(ˆ¢:<â 'ñ„”¼ó’±PÂ;qa~iàõ©ùë/LÄ‚‹ÚŸö¢Š é·œékÿ”MûaèÌÿêÒ/-jé—ã[ Ÿû_ªI/† ÓA ‘¤D,°à÷M\\ŒÕ[ÚÐéðÒh ñTç0·gšóÙ͇?y¸~÷GvÏ\øæÅ±7ÿþr"âæn¹s·æ³€¡ªëDcͶ÷w»Z¶;¶7ºƒ#ÁU¿zÕçD؉ñÀB(æŸ E|3á¨g*^ -ž^V’qPlµ=–Æ¿¼µªëx½a[µ"ËáÉÓÿø•‰“_ž&= º)ï/*Ô¬Lý²×÷6¯”~ÉÓû/·I/æššù÷M^š@}pFWëþN€]å¯F{„g·Ž1tò³‰:fpYÚîÿ­ûZŽ~úˆgìÌÈÜ•ï]Ÿ»þƒa9D—GN/œšŒ‚d0W´® &‚( "HJÌ7 ºr<’„Uó' ‚ÁÕz ªí¾Ïv»š÷U;[öÔ˜]M™©ªÎ‡?ÿ¯¦Î|í-93¦®±)Xúø_]û·ÿÙC‚p Ë‚%Oé—Íôïë]S+ý¶4øæ( Tvm09êV)Aƒ-Dfå¯WˆßØ;ÉÀ’“³3•Œ{-Æê-ïÛZ½å}[{>øožÑÓ#¾©ËSKƒoL…€ $Šgôô"¹ßg ˜ Öªž+Ú68wÖÙê¶TI&Ûªçî°ˆìë°p°ËÊžv Ÿûò4˜l.[mOm`îæ$›øbœÒAjfé—ݰþÒ/­ÝìÎ^æ¾PÂÀ\ÈŠ’Œ'ç¯?? u»žèhwxRþ:{çmG]ˆ] ¼13Wçì\š±±L­£~÷GöÔïþÈ>ÉX0–ŒcÉX(–ˆâÉX0.’ LQ2I‚Á$‰’º “d´VX2yQç’ØÕjaW›…=ífz›Ô1P³IY! øs7Ãl¢öÃú`õÚ?£ueí߉"ü¾ÿe¶…’!×µG´ÂÏóýs‰ˆ?H•Ç:aué­ÍF†jk‚÷÷ø@oˆIŸ…á%c#ãËAì¦B&±h0JÐÓ`dG³‘­fvµYh¨4å,üxs2 @Ô35CöÓeE!.`Åü7ø¥}¢Ñbî¬3ÑXYÚÚ¿|ÂÌwÞzÇŒ®”~9;È&g½ÓVß[/ _A1ºö?Q謊ÓS+#Š1$I"—ˆ&%¢ ‘pB$–1Hf£„Ù(`1I˜"£Z²ÊnÀlZ]2Φ¦~û¦®ô³úM¦ ›@„|RÔ÷þ-€£ºç¡ýÇ·_÷o3÷i­¬(ŒúUÿ¿pã¥a€†=Ït ‚(4Zý˜ 2êÛì6žÃwYÔpO’@I|SÅWWýTÛÂsÿ pn0¬ÝÿeVÏü)[öO¬v(KöO+ý² ò›¸sÙ¿™€…HB"p¼ã±z˃ÝÎükÿ6’Ã/%œ ƒ³1–ƒIâ¡%ïÒàÏFÈXù›÷¡oùz—«Ò¿U]'ºLÎúj§Edw[þÒ/å4韒QŸªý¾ÉK“@R%£³e+¨(w?óøB¯™ gµ¥ß7µ¹ÿE~,¹°Æü×ízâÀÑ-6ò,ý+Y‹K!ÃH*þ_zc fÛû[ f‡ÙeŒReŽlXS7ƒ Ùp6eþ=£§õ•¿Ê2÷/Ö@þé_ùîpµØ p4Oé—vìÊA†p\d.hC‘òüµŒBíöÇ{:ʤýùöås!™ÇdC(&sc"‚"'åÙËß)ëÜÿ|ÈeV…³³ÊV¿¥SŽæYüYn“^Ì5G}N 8×?—ˆx£€TÑ~8µömÝÿb´¹ûÖ3ÿ‡#$d/NF}³nnƒÿ‡ü.`åÅžÝ'J&ÃÖf3•öÜaÌfú÷õÎIþ²½®·ÒZÕ^eeZk×þiíí"ƒ¾ÍÍÿû§®ö³zhÓü?d'@æà£ªû¾½G·¦ý›áß³íÓ£þ-ÜüÑ@ýž§»Úì> âZ|§È šÿw¼ºáÂÏÁ*¤ü¿¦ý+p6íÞ pllvg/×1³A ¡„Xp1è;çĪ®û:@üIý¶•¶d(…(™wÇ™ó&HD|Á…¾–\ù«ä²+“?*ÚtháߎÖÜáܹìŸ6ûG ÿ$“ÍìhÚÙÐé,.ûWM/VûÏ¥²¹[C”yé×zÈ$@æèŸ½~÷G‚Zù#Wø·&½2Œ¤âÿåÁ7Æêw?Õ!̆ZKh¥ô Ü™„O!@Íÿ{ÇÏõ± sÿóa…BúWUþrµ©áß±-›ŸýËw~®ãà ‘Ù U ÿ®ÿ`jzé‚õ³ùöm²!–P¸2EQf/¯zïϦ†2-ÀªðO2Ù+íu½p¤ÿ¿ÙBý6ð[-| .IDATæs  œ˜‡=@rµlƒwGöïÊX„hB!¼<1^™#ýæ¯M ÿ4dséÊŸ~i¯h0{MÔäyëw©Z\ 4ÿï;;ÈGëLöZ»UJPo nXS !C©ÚéÊ™5kÿ65üÓ 'Àšôou÷û ¿ù/·I/– c©Ñ?÷ÍB}ªòg»Ó»jòÜþ„O!þÿdŠîþW³-ýº= åÿõ០p:švõBáñ¿ÖÞ.2̇,ãâ¡¥gôÌ VvkèLeÿR¿¯hÓ¾Ñ}¹ŽÉ†‘ù³5ü›¿öýlð½?¥ ÓháŸÍÕv°Íìj¬µ™Evµ­_ùSûœÙ–B†õŽÑzÿ¾‰KS¨“?l¶úÞ:QPhw¤K¿d¶·› ¹p²_3ÿ}©÷þèçþüÞŸR Ÿ¢_üioØó´þu[‘rÄ…:‘Tð‡üa™`TÆiVpYÊÿk³–†ÞhØóL§ ˆB“Õ·2ùc#·BLz©¾Òæ?Uù+3ü»-РwfÀªUþ,$û7<ãÜp„“1¼¡$Á¨B "Œ*DkÏ3Dêuz‡L­]¤Æ§Å%#¬£ýZIˆÌ„l(rRž¿þÂ8 T÷<Ø êèܹ„O!.ÀLrs*Š’Œ'¦/~³l•?‹…Þ¬ô$£Õf¯ëí†ìþßJr~8ÌÙÁ0ç‡Â,’9¿@NÆr,IÆCQ9mÕN,.û¤G`Ò#¥¾ÀŒÝ$s¢=±¶ 6C~íóÙ‘à€;ZŽ¢dpµîo†wGöïÔ;!E­ü.-r›Fÿ2aÐuW¶Ö㿱U4˜Mu&ê\’²Bßd”sƒaÎ …˜‰¢÷Nñ°Ç˜¹1䛼8õÍ-Æ‚n_Ì7ë /ùR±ùJ©8@2;Çš ÛZ,•mfWcƒ¹¢¹žŠæšŸ Úx}Èʾ¦0'ZýÔZÕ—#g’adeòç¹qÔÂÏ­’Ùav™¢T[¢äšûWŒrL!×̆SýZöïüu6¡ôK¡0(Š¢‚ @ºðc<ì]UÓ¿ðÜ'BøÃº2¯Éx"äšðM]½é¾õãË‹¯£v`¨½Xm›~Z³F1êŸ3Ì_{Þ4 jÈiœ {žÙÕrô×ÞïjÝ¿ýâ´M¸8m£«2±ÝU$] ÿ^”ší©Ù¿2ÕýÏ<~£×̆xRYÉÿÏ^þÎ9J|ïO)лUháéó_¿Üóø/-c¯þñu,=êŸsfúÞY9umöÒ?_MD|Ë© ²7ÂêiÌúŠ ú¤­¤1~߀°Í]ûþøÜµïŸ®h;ÔÓþàç>\Õ}ÿÁÅ4âi¤ÍæÑ¶9ê¬!=N‚q#ñàb`yä¤úÚ÷ö#ïšìߥµòWÄ39矾6I™+šöÇR7ã¾ùÝý{ÍG>õ´H3¿uqqൠTAS[Uã#©óô5eÝ5µëkÐ\ÍJ±iÒч px'.Ì^ûÆgoš+šÚ:ß÷×ï~ò¡ ŸÝúÕ¾NvT{q‡Õ°tîÚóg°½a[ƒ¥ª­Ò(&i¶ûÑ÷þËM†RµÒ½ßÔ•€öÚ×ÛnþaµS7÷­W.»o½òjbHIí‹Öt½Ðµž«&xíäú!‚®Õ,‚„jM¼À2°õθûŸÿãññ7ÿþǽOüùǪz÷õoȉhìO%_½¹•ós5ÄeÕƒÝ2¬çû~r5 ®]p ÅCËs¤ ?Þ¶Ñ¿L”òˆۂñô®AßéÔÒ×ÒÀ‹ÿîs×_¸¶í©ÿð/©ÝÒýÓ‰NÏÔr¤É˱V?Úr†Í"ƒ~Ÿ‰¤Âk׃|ûŒ—wfÔ•ékgH~\‰ÿo·’wà;KFŠ úÉ«N  ¨ÚîûìCMå [mw;€QTØRfg}„ ql&²,ã³þ¯˜c´ÏÚÒN½æ‡ý,Õ±’DÔðŽž}mè•/|5äH[Û2ü»æY¾ kH°²„•5@mó¡Oi9öé'íõÛz´óDA¡§:Îî¦{›’TÚ²“¡‹¢È‚_áâh”óC.f¼!-♜]¸ñÒë£?û›W’Ñà$0‡j|¤\@ÊÝÝv¼k «H Me[É&¢¾Ï ¨®h?ÔÕ¸ÿOT´Ùg«éjCP'8@Gu’}ÍI:j¬&«QÄf±šDl “ArRñG¼ao¼ð†Ôâ×'bL/¯÷Žùç³7Ü·^9=}áÿ^$Ýyõ &»VÍþ½ÚïrÀ ô©e-­¬½ÊÆj*—­nKsó¡O«ì<¾ß^ßÛ)ˆ†¼5[$Q­ó‰ç¿d, Î û&/Ýœ¿þƒË¾ÉKã¨îC5ó~Ò)t-“zÛfþ仞rA³ Úˆ£Fà2»ëZŽ~úpe׉}‹«R”Œ&A2EÉd%£QLQ2ANDc‰¨?”Œ‚‰ˆ?ˆøü‰°×{<¾ÉËCsמëW’ MÈ™ã%™£¤+“>î¤ðá=DX!¬cÐÈ`"m¬¨™Dí³™t’IÒ]Éd—’± >®¥Äã¤3–ú-ÊÚñ’ÌÔyÙi¥à=E DÐ6‰µÃÐúMû¿VôQk5h‚Kflz2èDz ‰—š6/;Þ“Ð#ôCÑ’îïÌŠŸ™ÈÌC¬É–’}¼äçJèz¼ç  G2dn°ZðzdŽxfŠ­Úÿó*t=î*è!¬NÙåx¦Ȇ²ŽÝNܵ(z’¼…[îà.Ǧ•!¿‡wîà.Ç=Üå¸G€»÷p—ãîrÜ#À]Ž{¸Ëqw9îà.ÇÿåήvÏLIEND®B`‚x2goclient-4.0.1.1/icons/128x128/resolution.png0000644000000000000000000000635412214040350015577 0ustar ‰PNG  IHDR€€Ã>aËsBIT|dˆ pHYs7]7]€F]tEXtSoftwarewww.inkscape.org›î< iIDATxœí{pTÕÇ?÷înžKHȃ(O/P ¨ÀðPA|”ú¶j;£ª± iÚÑ©3ª•©eÀúD¤2 b Šb-Þ‘G² ’}žþ‘äî&»wo²›„s>3›™½÷¼öü¾çÜß=÷wn4! yÑ»»ŠîE @r”$G @r”$G @r”$G @r”$G @r”$G @r”$G @r”$G @r”$G @r”$G @r”$G @r”$Çn%SaQÙuÀDàâæO¿®l”Â45À·ÀV XSRœÕF-š!…EeyÀ2àÚh*QÄ À/KŠó™Í`Z…Ee3€¡F{O§¸«¤8­™Ä¦Ð<ò@¿·P ”çÿ)¡Y'pÊø½‰¾À«…EeZ¤„Ðìð©k~ïc 0'R"33ÀÄηEÑMD´\Ü Qtm§pfsQ$?ÀŒ”ó×{IÃ%PKÁ’£ 9J’£ 9J’£ 9J’£ 9J’£ 9J’£ 9J’£ 9J’£ 9J’cikX8R4†ç%’—á@‹”¬0ƒP^ãew¹›w×þ‹Ÿ.@‚]ãÞILÊY™t]Y>!8XíeÓŽz–}z··óbè´Æ J䉛r’ÐéÆ(£iƒ³¸ãŠ®íäïV²í§ÆN•Ù)`ˆ^¾o 2~70(ÓÁÒ¹˜4:µSåX@Ÿ$ß]Ÿ­¦ûnD×5æÏÎ&=Åú8¶| xxfY}¢ÏþâGÙ°­Ÿ_à €×/ðùSÆ8yúæþV›WÖ~{‚«F¥Ò'ÙÖÝM!#ÕÆ£×eóä›.Kù-I§O²Î5ö±TaM}€£'ýÔ4¨k àö üô¢`ùÕžæ¾|˜}.Ow7€)ç9ÉtZ£%ŒÈ »×@ U{¹ïï‡ØXZ×ÝM`ä@k6±$€Q+;Ó8å,xÃÅËWtï 6r@04GyýmYþY ó_«àä)·µÁªM,9v[¨ç_æróii}ļ{*ÜíßWéaÙ'Ǭ4'îì« ½öoÞÝä,¾-—aýã?@Ê,ú#]¶¼Ïå៷œ¥—ý•Öó÷NûE7å0iŒ3nõî:âfå¦KyÕà.&Þ~«ÖÇü•åxýÖêRˆË?«añšª˜ÖQïðèŠrŽž´î{(Ĉ‰#Sx`zfÌÊ÷O¾QaùÚš.,;I¯Éâ†qi1­çùµGùjï©N—ÓeÈpÚ¸pHRÄtª<¯„OOÑÒKn/Ë\Nž ý £&²hNgeÅöw¼öy ï}}ÂpìœÜöVD?t™ÆKaì°”ˆéŠWU²þ»“!Ç/–Lñ-¹]Õœ˜2oE9›w7´|×5¸ëÊtæNî×î-rW²±´Ž%VŽ ÉvpçÄt½Suyê`[Ï)7ÝÎÂ99\pvrÌëÝ~¨1ÄÈé):ÏÝ•giôƒ€%ôæX·«/p2oV6©I±÷¥Ë{™¿²¯õvÏaƒÅwä1 áO2RmFæÂi7¥; ¼>¿àÅà2.ñ3ó<˜:ÊÖ’ç“6ì0º¸»ÐÁ‚Õñz éèºyÃÜ1N°§JPYgnzš˜`Æhö|Ôž<‚;“÷¥M>vºŒ†7DãÎñö–•Çå^ÝlL“ä€Ç®v Û¬……[@@hØíƬá~hª î¿Š× "|‡ Í„{Çë´ý=½aw&ß[_{ù|¯Ñ°C³4ššˆÃÞ”§ªžßàÁox)xhj"Csüh|>dk@Çf³EÕÃsáÆ «þÛñu*- æM·‘’ÔµÜb0{nãN/oo5:ºýR5Š®KÁ™Ü46z‹×5p2hè—'QxnS8¸³ÂKð‘€ÝÞ*E³4çÁ÷G|ìv…6V×à‘irÒô|áÊ´r>ç¬äýá%Ÿ£¤íðÔõ©d÷=mÖÕq Ú0áÜn/lÝß´±&áÀn÷µ{.\'ØlðÐTóÞj¤Ñ¸´Í½ îøn!Þbˆõ¬q蘟g×6àkcW øý¬>Œh³Écù¦z¾,3vÖÐl^Û[›çÒxΧü6ìv;B„_thïÜÀ~pß•ðâZç³)£Ì¾Èø<½7NçfÏÕ4xêÝÔ½íã¾ÉN&Œh ªÙ¸£‘7¾2†}õMÖyfN?œÉÆK°Ûgm½Ä’Ê\^ÆIÀïo­4šÎQ`çÛŸü|±ÇË9ýmüfš»=¾Svw9‰ŸàéÕÇ©¨5Né³.JáÖ¾-ßwñðܺZC]ƒEsú1(Ó¸ LÓ4Ê*­ÅZÀÎÃnRR²8uªãJ#uàÃ3ÒpÕÖ²ðÆ4’m¦ò™)×JÞx EÁŸÖV³ý°qJ;,‰ßÎÌÄÖü®…cuŠÞ9†'è*ûÐ5ŒÍAÐu‡Ûßq KØUîÆáH àó5µ2ÚNLwÚøë=M?º» cö|gË|iÃ16n7š!Ùþxk.I M×sOðÄ›®XÿÙcÓøùøŽÿƒß®#q@ƒ[°jË æ\–Fc£ñÞ$šÎ ®¼§àhÏ·åý­'Xù¹qJ?Ï×öE‹×T±=h4 NbÞ¬¬Ë^óÍ jB£”› ëšÀ~`hðÁ¿}TÍøá) HO4ømé †‰_—5ðçw µç;ÍÊM5|ø?cÄtÿ¾vž½-GÑÆ5^^ü Ã@šò’âü°Sƒl¥4zϾ[É_îÎ#Ánn"éi†‰û\¼î ZÁ çûbW/m0.ç%:4ßžK¿Þþáñ ž]]îÝ[#µÏL@È·øî@#¿XrˆïºÑ4-âG6ŽÕùxtE9õn£õçNÎ`zAë+vöWzXø¶‹à½¤ nÈ1¬ ´eû¡FîYzoö…õþ;´ÝiÌ ÝµÀ3¥=Xíåþe‡ùÙ¥iLãdx^b\¤{:žóWVPQktå§8™;¥Õ™«mð3e A"¹óŠt¦=þzw€Ýån6í¨ç­Íµ!‚ ¼©š™ÈÖ¢²…À¢ˆ ›9+ÓÁ€ yƒ„ì©ÝçLÒ50¡åéž‚G<œÚfÖ7EgD^"m'Íò«½Dˆ¼¸¤8ÿñH‰Ì ÀlÆš®^µÛd-øp´lÆ•çG 05W—çû€ÙÀúN5KцöB¶E³¿Ô©‚?fš1>˜œÚRXTö+ày ~ï@9ãdh!ù ÀcÀÒ’â|ÓFZ…EeÉÀ…ÀÅ͟ؽ ¡÷ ÃGÐñjàHË7!t iÁ>]üeÇiòô·ß•ç7DH‚%(ÎÔýšä(HŽ€ä(HŽ€ä(HŽ€ä(HŽ€ä(HŽ€ä(HŽ€ä(HŽ€ä(HŽ€ä(HŽ€ä(HŽ€ä(HŽ€ä(HŽ€ä(HŽ€ä(HÎÿ=ÏDzGöIEND®B`‚x2goclient-4.0.1.1/icons/128x128/session.png0000644000000000000000000001151012214040350015045 0ustar ‰PNG  IHDR€€Ã>aËsBIT|dˆ pHYs7]7]€F]tEXtSoftwarewww.inkscape.org›î<ÅIDATxœí{xÕÝÇ?3³·d7HH(·)"BA„Z]•JUP«µZ­¼mµO«m•¶Z­Å§ÚµoÝêûzk±}{GK­XjkQKQ‘‹ ŽR„²A!H¹l6ÙëÌûÇf“™½o„væó<û$ó›sΜÝóÝsùË š¦aa^Äc‹c‹%“c ÀäX09–LŽ%“c ÀäX09–LŽ%“c ÀäX09–LŽ%“c ÀäX09–LŽ%“c ÀäX09–LŽ%“c ÀäX09–LŽ%“c ÀäX09–LŽ%“c ÀäX09¶cÿD¼¾€Ôµ½£@Sï«Yñ˱c—Ã~ë„Áãõdàlà¬Þ¿'ˆ¢-$Åð:ð°VñËÑ£™ÏlX ^_ ø*ðu@‚$ƒÀ³À `•â—;‡ Í‚X(¯/pðmàJÀy”÷m!X(¯/P<\U(¬$Bu¹Dµ[b˜;ù7Si &h Æ9Ò• ¡õØVÀüúh5– àõìÀMÀO¶0›À´89uB3'”1uŒ ‡MÈ™¦¦i´…4ŠòÒŽ/ï ÑҙȗàûŠ_~bo%+–òàõF‘l“OÏvÜ;Ÿ]ÉE3+¨(“üMÓØÙá¥!Vm r¸+§– ‡ra ^_àTài`Lú½)õNmá¼aÖIJ!n8ªòçW;xlC;¡Hf;!ÀF .SürëP<Ï@¼¾À•ÀR \ow;Åø7ç·}fV%¢˜»Š×£ª=É‚¬*‹Ž×Ñ`éKmümS±´ Aاj|ZñËÛ‹J,–Òðú €e¤yIÏœ\¾ã²:Wµ;wUߌóFC›=ìm‰ÒJÐÙ£¢ªÉÏX*ËDªÝF8˜-—1kbµ¹ýq DY´¬™mqƒ]èÖ4.TüòË·– x}ó•€Co¿fNuâç —!óÛ‹k¬§‹çÞꢱu`õ±µ.˜áaîTö,ÇŽîw,?È–½aƒÝ&Œ'˜©øåÀ€Œ%€>¼¾Àl`=ºž¾±;¯¨æÏÈüŠFb*/î±z[í¡¼=ø¢©vKÌ›îᜓÝ8íÆišxBã§ÿheÅëF·@¹SØ×Ѧ Ô_` ðúÃw€Q:³ê¿jdäÜižŒžÞþÃ1ÛÐFkph >Ú ‰/=Œ15öŒ{¬?Â’um[…K|9Vç*~¹8ï‚k2(ÉC ŸoÎôËG,¾ÜƧ¦yøÄGËÐ7=_;œ÷[b¼°½«Ï «sÜNq1pc©Ï2} àõ.žÑÛ.˜áÙ{ç#'¤‡]÷vïì§›*SǸøÔ4£ÿ)S¹aÉÞ=é³  U•‹³W}–RÒ7µ¼¾@5ɪtÊ6Ü-5<½hÜD)m¸¶¹¡›û# ¦Œq2{¢aDJKgœ¯þj¿Ái4~„}Ïã7ŽTJÚfÀÀwu¦è¿5&"tVèÃý«9bø¶ NídÒ Æ¹§M{º¹ùÍéá®xä†1O›®iàõ†èzý—ŸVùÆ­—Œ˜¥ «lÙÛñþ”àÔ e¸]ÆÑÁMKðz §ïú„j[Ks{|¤â—‹Êòw½¾@ªît¯R®·”´¾Ž®ðEƒß¹¨vzúû9Ø£*óg Äâ*Ííqì’ÀÈ*[Qƒí1äQÆZ`á¼¾ò«ý}×ÍíñSÇ8o$Ù±-HNx}ÿ œIñô¿-—̪Üm“„9z[(¬b· Tç™Ù+…÷[£<ÿf»Fi:ë«Uì6˜PkgÊͬÈ;º…UC-0y´“ó?æ1Œ BÕG‘ÈÙx}ÕÀùÅ$ò@çê;ÆK—äÖC•„:øÊ?‘ÐX¶±åJ…’«,øÖüZæœìÎz_ÜNc3°ÿHŒÏÿ´Ñ`ûÒYÕÓί)8W³¨,Ïèì)Ù¯ðoÉÕgWWz\™ßºôz êˆó½Çšù×ÁâÜÄ=÷<ÕÂë =ü಺¬®átÆ ·3¥ÞÉΦþŽêá®ø"àêBqs @øp{Q¹ÎCʇ!èþOÙ“6!‹­?½­Kê>iiöµABZ8}Z†8Év O©à*¯Áß3d$TÛ—ÌWøM€¨N¿ñ¶.j=³‚ï}fDžÂ4¨ÙylC¿\}Ä`³‰´ÆUnÖ(~ùô­*¾ ¸ã:Cõ×_«OLëÊô §ÑØeÁCûúŸ#ÁouýÂy5òÅËYÇ)~¹'¡²Ho{öÍ ŽÄ°ÛlRÿKDQ° _Çþ#1~·ÖXøckìÿŠ«œ¨øåÇS… øå€â—ïN%94M!Þ¶¬¹£˜~ÈØZêúuO@(¬~7O”äò݌ĵ%—Ø—!Uƒ_¬>\03°jKаÃãã=1õ“Š_nËGñË;H.5ï+ñŽnµö•]Ý»‹y擌ބªy ÅÉÛ¾(~Yõú7ÿHÙ^ÙÕÍÖ÷z8eœ«˜<¨Ói0Ϊ3®>ü;ûz ÷æž\¾úû—lN“Žâ—×z}Àå)ÛÚíÁ÷O—í…6›Pã1ÖÀ]áÄèAû(ØÁPüòªó¼÷õPDýxÊvÿŠýÜ~þ±uïìÜïBïùh­ZÊ$ÍËè°³©§f÷î•@¤SB¿–¥­#T_(NQãœPD]¨¿~ïˆÈæÆ£3úŸ@0]ÑþÂcíKKHâ-ýÅÁv5ërôt*]Æ«½G+X¾E @ñË›]vá)½mÅv;*"¢Øÿ!çk{³Ä}kÜõ¼“†ÃýaÊ›M"¬sðßÏ9il;¾:ŸN ¡¿0TM`ÏÁðÉ%$Q§¿pØ(ªº­*3  ­[óS‹ž Ç´[DKT  ¥K`CƒyS2æ·­]ð[E$OÔO_tðã‹UFT䎓¥A`É«"š–LïÁõNî½4Ž'ÇF­ôÓþ;í0ºR£©£_˜ÚÕk€¿™œaBjò(±¨}Ncž;Ãàt:';rÅ)ZŠ_Þ;ç‡_ªßNÙžÙ&2÷$‘rGöo ¦ihšÆ#¯iDt‹Z#q‡_“øÁ…™µ@¡~Ý.ß+fçzb«vØùâiùßÇ)„ µÐÔÑoÿgCbÎuEÄ÷ú¤m?›^/”ÙíýC¼\yJ¤ù›œ6¡+kà^JòuÆU~$‰t§®ƒX¹]Àn·g}9^Ü#±#Kß÷݃°f—˜5N®ô^xWä‘´ÂOñ»ÐÖcË7•v¾ô‡"N*üô1Æš÷íjÝ-ÞûÍ">æûqºëĬ±ÚÄbòÔ7ú‹†• ÔÕÕ' Ò(i:Xñˇ½¾À]$g Xµ=ÁÅ3]Ôz2µôA‡Êc¯å^Bõø¦³'8©–]‡z¥?ùF”e¯å^„™Pá‰74nžçÈ&WÚÅRJœ9“5VçPœýmêϼ¾€x@ñˆ7Ó»>á!Òü÷çlkY%Ö+æÊWWTú“æâ9¢ô1õÙ$n‰'’•h–oŠqóÆŽª¦iüb}°±õJ-]®LÅý¿uîý|éK°ôüñ•nþüÏŒf°øp}ʰqO‚Ë?.2i¤­èÂ:ZB°7/qËòî>‡PBE$ùåù²×xØBrMÂ,`i¿ª2áÈug;F3!ŒÆÐ  Ú-õä¤d(~9ìõn~Ÿ²­ÝåŠOÀD+òé-ÝlÛ—!À[{søpÊðns‚§·Æ¸êôìÓŸ¿Yäo›3:ÁAàb`ð `fêÆÒî[\É]Já !LiçÚ9ðëõÝé·¦ô¾rb—Pïü¬g¸»„M§Áˆ±†¬,“:ríc +‚µ‰,Š«É7¡¿ÔÍ}_¨à@[œ‡_Ìè{¼ øåßx}ËO§nüñ•gNv|Ùš¦ñÐs<³%CÄmÀ…Š_ÞÔ›Ö"à…ÔÍmûbl~/Á“\†´Še0½ÿl\~šÚJ;?[ÝIgOqi¯•‹.®”äºÂ?={[B«pIûríc@ÞŠ_Vã*·èm¯7„yk_»ÝÎý+Û Ç úNð×€¾™’Xî]ÙŽ &;q’dãU<³%”þèàS©ÂïÍËà9} ß­"J¶uäÚéËæÜU°ôúQœ3%ÿnb‡ ®>«‚ß^7R:©¾¼¤çh‚Í{Íd]•ýOyÈ …žug`ª17u}â .šYÁâUFßPüòoõ†ÞM˜† ^;w_þä0~ô×XûvFá7ç*~ygú ¯/ð1àMt‚¾íÒ\:»r o+ƒ¡¬AZ:ã¼³?®>ˆâ°‹œ8ÊÎäÑN¦Ô;ñ¸ŠûN¦?gã®nn_ÞÒw]W%©OÝ:Þ äíJ½{è7£sz d ÓÖ(~9ëÒ2¯/ðɳv˜1ÎÅÖ÷Œ#öi07ß&H¯/ðð•ÔuG≛ÇRæ0ÇQˆþ'ñì›Á¾ë¹SÝ;ï^0ª ÷qP«‚¿¼Åë ü øBÊ–VøéU: 9ÀHHN7§¾$²7¡òIÅ/jÏ|À  àpW‚Ÿ¬lå”ñùg-6¹S=ؤãË\ ñ„ÆÆ]ÆsüÇãÅÄô¾¯/0^€ÝZrä“ÎõŠ_þMø—’<'/‡MØkg+~ù`‘y¹›,c›RïäÁ«O ßÞÿ㙕[:¹gEõ_Y&j÷~qTÕŒqeÁ<Ñ€!8*VñËïiðó,·Ö*üÞøO¦ÛÝNaw4®Qlá÷r/É“µJbgS„_<¸àéx$SY’¶òè¤zç›Å> ÝYÁwíºëBU:7úöýÕPD;­Ôspz÷Èß ”¼œù[ƒîÆÖè¿Ý"‡¿¾ÖÁ!Ý c› y\â—Š?d[ü¾À ’ž’®ÎgKŒï¾CòH´§¿œá=)!­óHöK ü< oÑÄI£»¹aLÁ•7Ç = ®üI#Áp¿ÞOŸT¶î'׌>·Ø4L»7Àë \üEo»ósu]œRQÔŒcÍÿô3›KæÉM†Â˜>Öµ¬”“  —ë¾±gBÅuÓÒæ¶pôøÝµ¹¡›Å«ŒÝ£j·Ø®ìîþZ©i™^Š_ÞFÚÑ*‡:ãÃn~´9‰"Ø$ÆË?0œ5ì° ‰hL;GñË%wbM/€ÞIªezÛ[ï‡+ny´9z<‰ ±5ÊÍ8@0mÏæptÍßÄ·rDË‹%€~®'9?ßÇÖ÷ÂŽ›–6G;{ŽÎi`¥°iO7×ý¦‰¦#F×~ýpÛƒû¼~Ù0õ( ÞãâÖ [_PW)%~¼`”4í#¥o† þ¬´óóçgl-¯p‰Ï<Ç„K“¶UèPüò’¾­zû¡Î„tÃ’&mÙ†¶!9/ XZƒqþû/ðг™…o—„ǃaõÊì1‹Çª²Ð[¬ÎH¿7~„oͯÁ;9û ¦¡ VylcË•"±ŒòÑÛ^¹K¾(že ½?qÉSÄ2¦ gM(ãŠÓ«8srùÍ$†Â*+·t²ô¥6:º3;Ÿ’HwBåJÅ/¯’b   ^_à"’‹Ok³Ýæ–˜7ÃÃ3*˜4ÊQôqð)ÚB 6ì ñ⎛º‰çîo¾|¾wña  ¼¾ÀHà.àZ çœq¹C`J½‹©qR?ÜNU¹Du¹HU¹D$®ÑÚçpW‚–Î8‡ƒÉŸŒÙÖ¦@ ypÄÒô¥äC%€ðúS€ >„ÇuœÞ^¬øå‚Ë»Š%€лîZ’3Žçû ’]$'¨+~ù¨ŸÆa `x}ð9ೀݙÃ% Ñÿë¡Oe[ôz4±0„x}q$Ö<•ä.ŸÝ+BÿoÐý¿YñËyr:šX09–'ÐäX09–LŽ%“c ÀäX09–LŽ%“c ÀäX09–LŽ%“c ÀäX09–LŽ%“c ÀäX09–LŽ%“c ÀäX09–LŽ%“c ÀäX09–LŽ%“c ÀäX09–LŽ%“c Àäü?ùî÷\¹ ïIEND®B`‚x2goclient-4.0.1.1/icons/128x128/unity.png0000644000000000000000000004232612214040350014543 0ustar ‰PNG  IHDR€€“®½ˆbKGDÿÿÿÿÿÿ X÷Ü pHYsHHFÉk> vpAg€€0á1šC˜IDATxÚíw`TE÷°Ÿ¹÷nͦRH ôÞ;ŠˆAŠŠ DÅ†ŠŠ•*vQ”*"UA:"¤‡IHO6Ù¾w¾?Ä/ù½ø¾H È>ÿÜdvæÌ9³;çÎ;sFH)¥”¸RÔ”]eW)å>9_·Â©_g ðü\ÜÄ} ŸHÊŽ—%qñ&p®Ï²;ÁU»`kq¸Oþêh N[nlÑ÷à;èÔ<ÁŸ—Z¼d{}¤\úO¾|ÍÏüŸ¾e®Áޣ硧‡ÎüU À|oXZP/P—êk?‚eBÄFÛÐÞ°t7¶óÞ°VA ÁØ2ø„å}Ý(ô° ‹ó…÷ˈøàÎúDÅØèÝ ¦ßÑì`®:.¨¼eýµ\¯(e­@€Ê­¬¸fé/wP[J_¸«²ç FÝ*§Ã‰ò›ZüñSI¶“Ѿù£èA¾t3ÈÞqàô©5àw½îY ž÷Š…{!è›|…þ'@~毩ÛA¶C¥d9½\2J.3Þ²Pþ²‚ÞVnù¡L”–²‹”@®¬Gy¹•‘Àv>“™À<Ù7ÎËÂè3W ÀûZÑD× OñèÇkeÕ Dw8.î~Ô[„„UÙ®| ¢@yA<â²^9 "Y­¡´-Ú²Àxl}ËÝ6DJíKccoˆ}±~Nò{ ¤i‡ÔÏ !¼¹·j‹RJ©µÓ7KÄ¡F‹<\ =åwDIéýÆy«ûÈL}| RŠWgîîQ’í¸õ—Ž{Nƒ¾Ç÷‚?2ëîy u3ø–»{"Á7Á™ä‰}€¿~ª¬ºrhÍÍßCÀv îÙp â­ML‘ohT¥( Ú­j$nðÔ¼µ¤\ìÝ &'kÀñ¹H 8€‹%àþ ¾¶Îž>R:Úf>λrŸ*Ú '~ÛàÙ¯ƒ¯£{¬÷dtýýë£GA~K9œ“³µ¿["ÇsÚÞÁy/Èdyú‚o±ë)OÈú=r/Èdý&}ð=½™ZÖV_9ıD4¥»áwõBQ”>`H²Þ`Šñ”Ø/Þc†Mš+””‹˜Vmp¼1]tÇ!)¹íƒµVa¬õ)ÓóPîó$çÉr£e;(µµ­ê¡â èpÿIÀü¼‘E»\¤´J·äUGÌÄ‚­phÆÒÛìàå´yv@jÏ ßíÀQù#ÛÀWÁÕÁS·¬µÿ÷ñJåâØŽÀG¢¾Ø Õ޾뫦MÁ0ǶÌl†¤¾m&Ô”`^¾ÊÖ ÔE†åÚ£ º(w‹ðŸ\·À]XxÊy¿”žÏŠš;o‚ü.)¦L/d¥î-N}œ{r&=9 6H‹ÿïžÞÞû¡øÖÓ ú€üVP¯ Îv¹o¥2)yH ßVÖÖý{1Ô°v1Õêr?m!(¼\FØ"Pæk/*@èüDctGÐ1Ï0Z!öËJòQût˜ÂgVú±\U°=g oBQz)ßHT>‡®?qÝ:‡ží·w–Ò™—{Äþ!d®Þ=ãøzHµ­+ØgÇKYy…# ³ÿÞ©÷È l­e«²Ö>ÀÃ2<¬­ícPÞ5ìW_€äÇÛW¬Û B·Ul±_4Øž¼ÂÇTÛ”g´žêã &«ß+Óà_ƒÿ5·ÛW[J9C¿]¯™½wq|6ØO§UÎý òsRjg (t¢zv¸Úåž*E-Ò¿ÊKß!×RÏ]à|+O)ê ÀiNð?”µuþêýÆ>ÚDRIW„àUñ†ˆ-`l¼Ð¼B*Å‹¨ –µQß…¼½*[‘ÕªWMh æßÃöm[Z|Ýð=ÿ~‡ð¯uÞ¦ÅO¹-Rú×yGù²áÈK÷üî‚Ì{–¦.ƒlßožúri’^@~À$@0P,kí\.Œ=ló-_ƒa±õIãÓPþÛ]«W†¤±m«ÖnÁÇâ“"¶@ô͵«'öý÷;€Í:‡3;ÇÞXJ}‹oªß §‚~}àÀ4(ž•uGÁ.È*Þ‘ªƒýóSOæ:ÀY#÷.ûq Z“óXÌ_ÏîKËÚš— ÿ¯ž ÞÏÇå&½:dþÇÐS7‚÷7çDÏ b,ß&²;Μ™ÿ‘”–ÇÛضAôÒ:£“Æ€xX¬ãAÌWïS†_ûâ_3ȹñÀ[§þÒ;ÛÙÙc‚¯~1âç<ȹé =m¸ßȸøað¾è|Ïó~Ykàj%´JÒmÑ» Nkd®Ô‡W:X®%ÔZÞsZ›xË•ç•P;§hù×¾¸F:º”ÀÇ|\’˜;ì/}!è÷ûÐWÁ‰~ë?Ù¯§«=Ïéû†´—òÚ€wqqc÷ WñmÔ:S¸IY›àjÅó[чΗ ݱљwo¿ónÏ$86å¨]'Á8-¨¹;ÄUhҮʃRŠá"H,ÃÜ %¦¼kÏ!\ #>)AªR-Iܽæ·ënŸË•ïyö5›]´.Ss¾² rœ¾Gr°¬Éà²6!ÀµŠÁb}À$!Øœ°%"‚çÇŽX-?bºçPڨ㔼»ü¤È^מ¸úF‡XÍ.)å)=L~ÌæùdõÝ;ìÄ“%Ùò–9š>|O¸×zƒÁ7Øý¨/ä£2LnÙ[®dð9ÊÚ¤×.r£¾ ¼î¢ç\·ƒSɉ·o…4Ûo‹¯uñmhyÖgLJn¥–¬ˆý¶»jÜI“«×1\}#€÷hÄ@)}Ϲ7yǃLÓ×É!°jÿÐÅ_—Zawbøº:ûßÿÃÞI¾;ËZé× "CÑEÐ-ÁƵ`ü6h¤Ù í>|Ëtÿ%ù¿nÕ±ÆÀPŠ˜sõ:€²ld ßJ)kè]änÐ;ûÆø[@Áö㞬OAZô›äoà®^8Õ1®¤˜|Vjr[Ö¸®ø]~ÀO ƒüõw@ßâkà ŒÇÓ³v•d‹\gv… ¦»Ð¤4~ko*VŠ7„ùêqeîþêø¾`W¼çepùóW/_Ÿ·°xO†ÉeþÀoGŽ ù?ESÖÚ¸ÞwÈg¤.¼¯€o¿ëïØüý„¶?|V’/¸R|›ˆhw)¡â[Hp4{¹ZCP1¡í/k+J¸òAN²™CR2›Î¼'¥žï;௮óËwýü›Šëƒ£ûßpðïñ¼ç›\ÖÍ ÀÁIEÀ{²‘XruÙóço×®ü'‹?_ºk¾§3ø¹WùlRrƒ" ËþáûÊτɊrµ”þïAÈ/Jù!s5lXóîÒoÿâ;™¿îÚ’ˆWàEqkvÕ˜ 'Ú6Ö¨g,˜Ãà ºâ^o´¾’ ŒÓƒ_µ4.»G‚+ÑÅþzïÃ'¥üVÞÏX^½@NÊëåZàCYUö¦Ë¶rhY5G€—'ù.ò°ƒTtŸü dªþ“|äëÒÁ­Àl:1\JNò+®üˆàJŒ>äC)Aö—ý!{Áœª»#fVYû*¸ŽåÝSü¤z×=¶÷¾+m~€Wm¼)ÁÐxQd‹…Ðö‹×wvïaß'ÿ^.BG$-^ Æ÷ƒŸ³ô¾r#‚À ;@€ë˜Ë>È=v¸[ú)ÓNnmxx8ä=22ý 8ðÔ‰[â€rº ÿ{^»ÿ­²nŽ.˜Â³€…HB Ø”P?âhï˜b û¡iËý;-€Ø¨†A•~ã³AÇMŸƒºÉ4ÞpÇå\ö×€²·¾|]<“Àw·k‚7ü)ž)¾YÀ{—[ƒ®ó4Kþõ-t¼ë9úÞÅþ¦ î­ë›ò½¥î9W Ó™Ìw\>µ.ù#€clÖM…RfÚ×ìÄ£R¦ú×ú÷¶„½Ïì¼îvHu¯m·oøå3(@€kwJáZÇà´ç¦Í}³ü²) 6Mì°h&œž²sOÊN ®ìE])™B-¦\ú±ú%wú"osÿ÷à}Å1Õý¸û>èüýs:w_ûSŽYW¢‰¸zÑŸñÕ€®ø þÛÁ™‘ûmѳ`_˜Þ8ÏÞŽi®,»ä×r!w’qéõ¸èGý!ïOþפÔ;ù'ëËáTÓ-û=G_[q`Ç,(2d”Ï›rµ¾G/Wj“M:üEÑ»i‘¹Áਗy_A.¤5Ùšr¸pøÂêVô•a$bÞ¾tõ^´>Ý!g€ÞÕ7ÿÏe5-ì9ï´§µß+ÎÆž§@¾&k’D`w^€ƒ·¾Ãç`¹à°dÇnƒ"W†-/¬'¢ Bî ÿ¥¬÷¢@vÇ?¶žì C»³î‡ìá¬8õ+¸+ØÛ9ƒ,ðÝè_Àf^ñv àš${Ñ~ó ;8R²'Þ Â.~T ô$=Z—R-2¦kù ³$#.ü-ÁEÏ…fÌÍ»²»ü‘ròa(jrºUÞhðís{îÿ_g ãp^Ø—¤7Î3BV½}¾­ÁÞ ½^îà}Á™é)[ï0·‹¯ç¼€§‹½ƒs™”Α9#ìû¤Ì{÷pËŒÙk×ì”(>rºi~ã²n¾®mäZSYôSÞ›ýû¡ àx|Öb89qcÄnÈ[}äpúò‹¯ç¼<…öq®Áód±Õõä;Vîô Èê³ïÆ[@žÖï“G•‘¨ç+=@€2EIï 2V ð–“æœù–òÛ›‡Û¢=!–†TºˆzÎ{Ïñn™^ÈüewÄñõà\ž;ÖÞdU}©¬ LæÛw¸¤¸›å,¾òk§ôȬöÃiËsSÁ¥å™Š>”Ò3·¨»ë¦ó_'pÞ#€¬{N}²ªíyÂöéMòÖ‚< ;ÊÀ3T㙲n®þ]̲Œƒâï²)|‚ú”û2Ìöôô˜¼§ÁÔ2x°å{Ø0Ÿ‡ÜsŽþ:&û¯Ór唳'CqåÌŽ À·Â5ÄS§¬›'@€=ûÙ ç3<£ì9†ü1Çžv@Q¿ŒùkÏ_è9€£mvaáóð×1ÙÙËÜ6 2ÞóRê×àl›;´(¤¬Û&@€=ó˜ºÉ{ÁþÓÉ·s8zóOuw®‡Œæ;^=ºøü…žÓ8_ÏsÕÇY¿ÞþÏTïkðÿOË-943@€Wï>܇ ^sÏqûG®^à¿Çý•7WJÝêòåž{NàœàäÓ÷h‡Ÿ^¾ï÷7ÀñVæ (}Lvà´Ü®0Ž÷³÷~†·uBöàý÷ðƒýËôvy>p„f'ÙÿÁ:³Àò™+%Íär§”¾*®ÏPðõq<îyôoôZzhY› ÀuŽ4ìÀQ¹’£ ÷òÍÓïÏŽî¯À»ÁùŒ'êÜbÎz à½Í±É²¿¾TVƒ4±uêá{ 7úÐü´ÇÁï÷6ó%SÖm ÀuËlîa6ÈJ™ ÅÙ™Ïæ»áHùå÷o_ Aî˜vaã!œJ”ûbÎHƒn•sAfê{äHà[ù¸œ •Ø8È¥¨¬­àye ñ¥¸Q1@Ä@:P¿¬•¼æË{xäq}®2^OÒWàÂ%e©ëÿá,p¢üÆ>”âÕ™{îçäܼ¢·À—äiê­ ò.eàxí×(AScj‡¾ÏWM‹k¶çãz…÷ãîà/,+A›n>b|®¬µ<í³g¶ƒc¾ŸBvö´¡›z@𤠀ŠT<»\ (h€×1gúnزo<¤Ôú¥û. ¸ß³G;‹ËZÍ.ÉWâ+@Š<‘µCî«tÃwÐÉöqÆ“áÐvîëí{œ€ú鯾i$¶hm¬Ñµ¤¸šbX­eƒµkÔôp»¡âŽ˜ÑP»ú}õnð@Ï»µð”µ‘à{Âå5@ÑöŒqy‰PØýÔS9Ñs×ONýy7šþÊÙåÎrz¶ï€?ü?xûø7c‰•—µy\0AØ'T£±¾Ö ¬?™­›e‹Ñj'ÓLm (ÁZuo©ÒMÄt±\y^øATQïV&ƒj26ÐnåW÷ÚÕp@í/Œ`&Ȫ²—Ü 2H¯¬/ý ½èkôáú­gÓdWÿ ýÕ’Éœö¦uçáÜ׋^ŸÕù‹çýQÖVpžž•ÏÈZ„ÀáãKo{²mûž>±³rZÚ;‚c\ÖÍ…Ïg½®3ÏbÃik'“"¾­:)®ÇÌ[õÞêukÛöàz³à5‡ö1·Úú²¶µ¾fΞ ñÁŽu)_ƒáeK‚±>DU#a^I>MΗ=e©(½þ÷0ïbðtmôôÙR.‘iËÚ¨.€“œ,ùÇU8Ù9ì³Ó}ycÁýGás¸:Ì,¾ ü‡ÝÛ½¾?Oâ§bPõS[Ã0t¶V1¶sqøi[=`ƒè-êûÙË©²6µ¦W+ÁÛÊÑÜ=ø7;ÎΧ<¼FÖ¨’o²c´»øîtõôNY Ÿ=€U¼ZÖF•¦Þ¸^›Ûµ-ÂÒÈ8D3e ² ¸E¼Ëç//¯èÈG÷Âé]ߥ$ƒ¿—{©7\ï„;Æ–µµŽ!ËlJ…òO¶Š®±Ä1e©háéɱån¸p¹ùî”g2«‚kjÞ âÑPP%uH–Šg¬Ê»íoôØnù´Ì#ÂöƒšiÜcˆK£ðǃ^*…¢9zX2Œ A.æi>ßמKÕ;êh÷Ì(ƒåaÙÜ9MŠƒÌÕ×Ë0{¯$k7*nЛ*Ö‚Œù £ Ç­k} @kÙÛ˜ãjÿ7*Ó V©-•WAÝh|Nëq›Ì¯\û¿×ë]SÔØ] dWýeé·R¨9bAOð5÷ßA£û†ÜÚg–V¦¡ jêmY/€ãÛì >·]ê4ËÚR0ÞlIã¸Q–Áoõ¼èjÃkj= —oi_2â×R_Sž‡âÃY_üÙQ“þVÅÚÓÊ£`hoM0MÍnN3ZÀ¼0¼·-„®NWÆ€ñàÌ}Aòq>Ï#ÅÉ®¸9ö¸“æ™&‡ÈBýÅV1ä8ø'›áÅåm%Ä“j[e (“ÔÕ'A©® VG‚¨¦¼-¾tæðÅß°Q•XàfF1Äjå¤r?XŠ"ž ¾ý|å”?@ÐÊ/@é ò½þg¼S}LCfZ£ÀX<Üò(ÏË쑨ÿlä-ò”BÑÔš¦éš”Άcê- ÷ë§ô ƒõHÙ@®”Þ’rZá '†f—ò°2ͧWÆ]Ž(ä—ŽÈÁ5^MHs½éÖQ Ô1LQ' D®Øxþò\›òkoCWë-¦Ú ó¯Õ1emí…£ÄnVó ¤Bb¯¨4PÞTç+Ï@L›º*l¿p¹ž·‹¬®d ±²´?þvVð)Ÿþ]þˆ;ªZâ^‚:‹ïÿ¡m} Ãx ÄTñ˜X ²@ï¥ÏϧŽÛÜ{A¬d‚ð€š`.oø DNåÂ[j4¬;© »§ÏX°v¸ÛÙrLûÌ“s›ÏèZíù›‘`ôƒµc_„ò­ZÆU¿ ËlýŽoËú Ÿx3[Gãl ÿÎDZ‹Ö ¾QnWB@M40¬‡ ÛÛN¨Ý‰ÿJaĉ‡³ï=ÁWÃÿ0¤þ¶ìÈ1p¿o/ï8ÆÞT¾N8DÝX--¡=üQóûo7WwÏ_#ð~]ÜÁµ ¢©Õ9±/¨£ •µ|ðMue{;{oá\GuÀû÷vN%*±œ ôR+?@øû•+Ä6â¿ÓJ$_ÿÞš¾—!+ÓÒ(uxÞt´Wì1»ÊɸÃëk\¹™i¶ßî,¥±†­¹9è½Íý­Šg¹;œ-ÞÐÛ¼ÖXB‡'-ŒúLKC¾´ÞÁkfD¤ƒ2Y«©þMÜÍu(oZQpI‚l¬Ï—»«Ü¸¶qý\ÐÍqÒïú-ôð`ð¾âü̳N¯Ø™‘R xB´f hû,S™%åê4¹ÿÐ A©¥ªÊLˆ©V§A…Lð»ò= P¸ñøþlxØÛ;/‡â¿3\~2SߦïïŽ7Ü'`ÏK3ï^»òØw¤èuÝü¿ÊNPPéøò¬Tð¶rõò(àü)gSQopuΛV¼TJã£Á–— |_¥ª±§ oÂÑÇOW熼Y·_«myøB*$ªQY v '[!/êðçé(kŒ´`1ET¶õ+UÎSp“ãpI‚ì*ÇJ¼¢¿‡×ž}EãœOCÆ›;ÓŽ©à™bÇÙŽuXõÃîÀbÂÙ HqHüTR.ÑÝ:µFP–j Ôúá©ZßDˆ’ êÁ¡y?žüíó3™g_Å÷2•y £ü§õÀâêíY›/ Úú¿ÖÕ6§ûèÇ#gÒ^Îñpõ,x·x¸šÜ_< §‚™Ÿ‚¢DSÔ#àlŸ³Úž ¼ ì<[¼ú®©©áØ2b[…­ïtG®;²_Ùìä&ÐÖ˜Û»CTn­á‰ÇKÊ)î“…›­à¯+wÉO¤õrýœ.9AŽ/¹ï9Ý´àm(~îôóù´“æC0µ >a b êPòËZõóÇñqÖÉÂiPp2µgv¨Ë£µõZ¾ÂœèT0}6%èó’üb‘ø@ƒ²I“ê<0T¶L5‚uSÔ¸`lôˆ¹/Øç:•Ûì÷¦5ɽ <=ì­œóJ®šÓ–[´°D°LÒoзp”kpSD€ Nœ€`0ƒK sNôÉ~ÄÕ¡‚„£-šUÿŒ{méæ] ü¦MQ[œÉ|o9®4ö´SOçžÕcÚ`Xáƒ*­)—¡yIG¢l5oOPªÔ¢3ûAW¼¢+(÷,ª .ëzók`ëKø»à÷4ô /ã葌æ`°}iêÎOsç•Z¡øº‚½/Ã_Wù‘lÁ eÝü=z7_Wÿ½ ;úùÛ€¸U¤‹gAY¡®W#AôÓZÖZž?ÎùyñEñP”žñbÞ2 ›.÷‚¹}諌ýƒwXö‚qtP¨ù0Ýú‚5¬ÆÈE!»ÁøBðzK.è9þÆzðopïôÍWp~|ñíàб|]‹=K®š+¾àHñË%ŠÈ–òs™ì§r`í_€« ÿN·îÍ}±ºVÙê@m‡º Ô¯ ýU;p³h&&³þŒ¡{­PP)eçéžàø*»}ÁN(¿´Y­ª› Ø02²ÅŇïëçÑMC^ÓÒàa–*`½)zThwî7-|#øR\Ç=?ƒç@q+W2¥º³?ã¤àÙ–-àÊËŸ\VR¯&Gú-zéŽ^_.æwÑâ¼làßÇfË­À™.ƒA~'›q;ˆaJ b£è!–ØÇ”Zc/Gp #?ú¹«ñx–úVƒhç<ê9ž¸¢8—<1öºÎi ^Rë*ÁZ!zeÈ=`¼1h„%Ìiaï͵œ±¾Ö\Ÿæ-+®îf…FÇcÀJùª|ðÈ¥rÈ ÿí²cI½šwÈŸ‡ þÆÉòò  ;Û Àõ„ü@ò0èË}Íõ§@šýƒô± F¨U”[@lК+«AìWg)¥6ËI£ßªö?'3ÿ7Îi9Kí.p> DBî3‡ßLo¶ÃñŸF4C¢µ•i6T¸§Ýô:§A}ÐôŽÁ †cÖŒá ƒüdKH«½5ûÐ(*ʨ”פO¾.‡€ÌÑmz'ðµwÍ÷,*©W£¿>R–~az'I+ëfà*á%™#ÛƒÞÝWÍßä“þ4ývñ¬¸DQ^XÁp¯5ÎÔª¤˜ç!ûç½ O²•C ü¨ÍW‡-y…® oô÷Ñǃ- ²ÇÙÕzO9ð´·(ÜèlòQ}— Æ[±¥¨ýŒ?¨‚f®o||ÛœÂS\Îâ¹®jà s:< ¿"çpˆ4 ½)K­ïÑ|S\ƒ=¥Þ_ÊÞrž|øN€×5þt÷6ßb(>žÙ³  VK;Óràw±D¬B}ݸÂÐAÊĸÖ+k–ŠÂ{¬æÏoììr‰<"›mBljXˆõÅ E?§ÏÊÛþ­ž‡}ÓÏNß¼Ãpl.ÌX”7*õíøyƒ#P¹É­ù s€}r0Í@öÑCõmõèÞ©¿ÂÞžs;¬ÿ|/8×x¾ ŽÆÀdYƒ'Á»ÙÙûÿŽÊ5ÿgÑ“øËºÙ¸JXÏ9äËzG9 äi}£þ2è›| ý'¥Ô[ûgúGÖÙix­¤˜!ÊÚÜäé—©‚vÊô«áUkÔ\Å¢H™¤Ô ˜¾À_¯=Á‡d}ÙSù…ÿ.½=Èþþ£r ÐY¾/ß–Ëš’Çòq}£ r§ÞRÞ²œ^WúȦ1 ãEÒÙFz‰žš¿’¯•¿ôùÂËhÈÒ²nõ®¼C =_@þÆcœŽoQÑC®Ç`¯mNåõ³@[möêC»¢áî/µ·¢p)9ŽUYó •Rëo£×€å埉ül$d¿sÀ~j ä=îÖã{¾‡üV)'3ÍOʇ™!ä@¢)êˆùºnפӠx4»6Ô ã íåž¾¥à=È<¼'&õ)àA¹‚m4;ä—rènßZýD‰^  \Çh†–±ÆRk­½[SÝkA>#‘0"@€ÒûôçQ;GAê¼µ§÷Uy£l"‹@ßåûÈ ¤È‡äÄsË9,—Fl¯ lQŽÎ_aØñ `£‹¨ ¾Îî0ÏÑ3™_>»üξütåO°kï×÷¬~ä,ÙO®©ë^ýK཮œŒúûúZö÷…¡°ùë‰}<Í~q#l3©õâ‡JÚXczÛ0£¢ˆï­®wÝ ’OÉ}àM+Žsï¾–ÁòÏÃuäÇ’zÄDQQT¿Š_A¯å»U¯¾VÎ~ÞŽ`ÿ1Ýrú È‘†ŸÚ…á'ëå,„L—Nüµ¡Í_JƒxY䋉`¸Õ:ÖXjóŸF;1Œ;KY¸‹*×vŒW#zGÿÛúÇ ãÄÝpœù òÌžÓ>¬ —ÿ¦"¡„ÁÄdð; ×ÈáòGNý]ù,èÇ}?ú{ƒœç/Ö5°cÿyF‚1óg†Rý]Ón³¬>4Á†Ö¦ÆÚµb«˜m`Ê I¶[ýrÍÃV€9-ì• Æ!!Ë- ÌÕ(;À¾ãÔ©œ½phì’_¶Í}…g™ïÏ|½ùüoô|Käˆù`H¶>eªU’¬‰UÊW¢ôQH‘Ô‰@&'倲nÝ®rœäPr¼,/û—JwËÂÿsF™¿nP»w>­‰åIã0ÙC¤u˜«† šÖð¨›BKÿÈÛªCñwòµ@Ýû¡¯-xêÚ·8¿ÞÖ3åÏÀÔÿ¢g9j’â¤ø?ý]3ÜiýØ´£$At_1d_`uY·n€ÿN”͆õª”WŒ!Ú¯ ½k®j¸ ó-1Æ(š™žœ» n814k|züù¬“_îøS™ ÀùV®»èK¯ùZèÙ óè!f‘üwá{ÅH%‰U`\bæÇK顬Ð^PZÂ_WêÐ3° @€ËÌe¦î*k­øgˆUâ5áe„Á¢öÓŒàd‹ʽY¯V…Sݰ֗åÿ&ÎÇY@yÔ°ZíêtCmˆÂzUÆ\$_àk`>ýù(àäEMRVáVjƒè&æÐh)Óá"äpÓ”¶"”­¹ê±A§¼¢¯8$>z‰ â³Ëå*íí0·þH¨:ª“­ñG`z,t]Pµ²6ïl|?¸Ûy÷‚·³s‚çÕåPé»py J?ÐZz¿µºñn-0ýàÁ|8|™íH2´±Ôjñ-}Yå}0|ekd,„!Ò*MŸ—¼ÿÿ‹@PЮcÎr¡©IßD«>¼’/ön¿½Ê˜Øhˆx¥JvlG0Ô°~R:¤PYáãhä:¾ªŽ®îÖ +ê‘ú'.O]a>b| ,+#žžÆ”à'̯]¸¼®$A]¢3Cï…ÊŽ[SއòÑ- ª‹s—ÓÎJyKXY"P@ M„EJ>f±¨+¤3ðVö•¡Åä<Ö‚Ü'=r%°ˆL¿pq¢"¨,_r°§Åí̧yÚ À?á~±„×AÔWž¡ Š”\qâÜÅÎù”|ÜZ« ÚÛw­kÚ‚Âcf†-:·àË磢.ÜÆÂ ×­ Wú_Õ]¸<ƒÝ6Ú\BЬ‘ ÀÒ;¢npàŒÄW)†-Œ#!¨G¹qá“ liò„r¯CBífQU§C´¡Îà¤ÐÎé c­MσaNÐT³”ùÚ呲6¤E—[@ê§ôï€LcÝ…Ëib¥hJ‚­¦ò”ºJ±_¸¼.+óE?áe‰6^y”G ™j_PíæZ†w@­c¯ýƒý¼çt±m¼”<*Ô¾¡{­ š–Ô3:,Ã÷Øõ~†cWÞþ¢œŒ÷ó`?˜þJî³àÿÊÛÏ?ëÂ噲CëZ'BxÛä›Ë ‚ ¬˜^¡‘WÞ®þ ¡™I»£û@µŒ;o²ê6»¿j PÆj±jWmÕ×”#ç–sN`júŒU³/Üm †g-VÓ- ¼k¼Sû„T¢ÅóW¾|ýÝo6ø¢]ý\«VÒ!?@€‹ ¬Zrµ˜¹¼ïæ¾õ¢!ê‘Zjùé TW++@ìPÌʼ®>o`{8î›ð7 |L•Gbw‚íƒØÙa7‚yQØA‹@ÛbúÀpóùJ=Š7gM*| ŠS2ɯ ºôùýU/BàCŒå!!8$nç¦Ú! -{!ª|ÍYåÛBØïš Œ°É¸iáû ¶O£ðJ­!´RÅfÑ€CJq»|"†“qîgþÿä¼€˜/1D‘òŒ(‚ˆ_ª|׿nµºÆç8#j9C ÀmÜvéĹ-§–½8¼Y¯Ö×½uŠï÷þÂ&”RøRô¦%Ç5Ÿ/¦ Ð~ÖÃ3´Îé¤pˆ|«†³|7>¿"¢5*×2,à\&Ì'ÂB‚:@ðC M"ËAÈ»‰ã¢ß€°Õ=1E`Ù7¤ËÅ×sþ{V‰DV !BÄd"Dä”êr Â'í–×^aïUü4f= Å(1t÷\úrÈnVè…â‚Ì^+ÀõNî»EõÁŸ· ¸üÛ|CüYñlK :å5x>¹ÄŒª—TBZ$ ‹R!¸Wü—á]¸üþ–EáKƒAèª$Ct„Y“?‹ùÂ{W¾=¶•Ö1ÑO„üpþwüÿD»XÆ•¶|sà üN~ ¶Ÿãf†Ïƒ°Y~‰‰÷ëö1Ž_ÀùEö—¯Á ]i_æ.°‘¦n!fË&о2c¸ò‹x”Êê-ÊN0Õ yÆZ 75O®Ö|‰ÎÏÖåt©ø úý8Î6^>û\Û(ÕŠJ °X<% ¤jÒĨÖ\3¿|]°-ˆM è,¹tõ^´°¼¹"x¶" ¢×n•TAJç-9·Ûg@Þ›G¦gXÀ™”Óær.¬ËzyÏ Ôµ`ÿùÔ¾œû ´c…ÑKÁüU8¶ ¹S.Z³KºFlQ±‡²®©×3í*§Šýç£u³,9Ò?K? …ož$gO‰½–¿›ç ÀÿD™b¨­>Êjí-õMˆ­Û09y Tª~ËØ•ÁÔ'd·õ¢{ëÙ\r‘–vᛂFBØ‘ä»ÊÍï+ÅÅîB0|tÚ´ä}¾Oôàëé~Ý{ ƒŒ:Ngï*TÁ÷½«¯'Ü÷Ù㜟€o”³…Ç.¥ºÅ¸FS@|¯¾ª ¼€¡S{ž]AIRŠ•f ÞdüQ{BËWØíùš• ýšÍ­zc)½vd» ÷€ì"“e{ð»¿ómúËu².È:z¹äbzÊ gW+ÖŠJ(ˆo”ÛHqTñ)7€ˆU†‰‰ B•å~P Ú|å}kÄJWÃAíQ0¯ Ûg=ÖþQUC¶‚2Y­®Ü ÖyQ/¯¾øgýÿÆ¥TÜ*fð"ˆ1Êv‘ÆIA?™çAph\­ðÞà˜˜“m¢é/å}üÄ‹ò Bòƒ ¯V.–73D'VÊÀ9?ïHñPüÑé=ù+À8'èó 0ÆýlŽ•’Þb.Cûø„A— Ø°‚X®<¯Ä”$:Y§˜ÆãÑ7ƒ?$´³ï ÐÛùý“@Ï{ÿÈÊz¨ž|¶X¥¥¶NmÊfm“:ÔîÆµZ(¨ÍL=µ`P“Œ›µz`Ø`lJKm–z¨ïoÔ~¥¦:R¹‡à²bz2ØiqƒøY®<¦!/Z_Sàù–º Œ24R'^~=„”R^øË²sãÙSÔÎõ ”ÎÄœéö >Û²#sáWeÂ7?œù–_è‡ÁóJq+þâëû‹ðÞ•ÖÄžÓÒA–ÖP?ýÑ{Úw‚ò}ZuªQÔí{u:ˆÓjOåñËçaÿ­bõë{ÚH™÷äÑäŒ7!µåÚ“û^ô‰Ûm]ÖÚ]ýT{Û‰FëÁòeäËÁ¯BØ®[ø!¢r•´¸nWî÷xÙC‚‰á"H,¥:NYê2ã(íW0*¶8ó= ýf™cœtc6ÀNLáÙ‹¯W~ W×­ }ÁþÛÁ÷¾ÓíÙÞÈ¢t×÷àKõÌð} ”¨+%óèÉèËé \Ϩã qÚ$PÖifÐî6¯4a¡u¬i (/ªn¥ öÔ\†yÅÿ‹anÐSž‚0ÆíÁ-)CâË†ü)u3ÂzçèJ B€÷d”ì ¾çÜx/¢Þ|[Jlf8Êz>„ßïý´æOëáßÚüT¸cwãL¨˜Û>®îNP¥ñcí aÆðÊ•jþ× åǵL¬îÍl~Û8ä>Öòæ§ ¤GbFT"ˆ…Êcbá•×+4@€ë˜Ë>p©¬a¯”¬ä¾Ïtû>§€ŒW·÷;ö+¸ óO§ÂÚ”kæ¶Šä ²À_ÎÓÄ{1áÉoe"}@Ô÷‰6`hlš†õVÍtb6ÖsWü*Ìm{¢ÖTþ2nrÄïŸÚtPÕ·€V ¡°NŒbÝu0gPSv‘]¤ä ‹Y E1uò¦/ÉÕÚ;RúýòúžTÈêXòéý9yÏ'©• O?ú^ÆeXú}­Q¾v‹îÕ‚xY0Ú=÷Ö7÷ 0· [`{ÔÆ9Ú8`¶x žy½$Pÿ¢9€³H¢µ… 7[#cD’X¢ºÒU| ¤„‹@0‰D6ñçõbYγ|r¼Œ•‚´èÁrèïûãudšƒþÈžú<rÜ™|>é’>Àÿo­²Ã‡÷û] 7ËI,¹L–ŸË,¿8óÿ4à8käÞ²VúêᯎÏPQ$æ€0(aÊS b”¦bЖ7èÁŸÏœšWºãÿ=¯øà?¹CŽ–º”þG¼ü·ƒÿm×.¯N•ÛüÙï@ê'å8X½ü­nsN•ó%8úºgƒœ(Cä}`øQMl† +K@eè¥}ê$SC1+lù‚?ˆß!Áì s탄ߚ~X¥7¨ßÒ~‚ðµ•GÆ-ñ¤øƒ)`3Çå„7,©Ç8#øK%/‰\ñ (­ M´eÀ³ÂÀŠ øÂ›K³Ü%¥Tü£äÛà3ºð¼®…Ï8†ƒ¿¦'ή;r3ŠòAïäûÐÿ 8ªçÜmdsý1y ¶ÿ9Ó\"6÷Æ#dô­7•› pø‰öY÷ƒ˜÷  øòœ =á çû“õpð=êúØ›zœ?Ñè¼!þAóEú¯£mÓê4CíH|¤Í„[KÒÛ$¼Ó-„P4¥X2#vÏQC,fõÂ-@0ˆ,»eÙ;€ÿ@¯àU|¥<ýëÎ-) ÈúWòXžþÜï_´-Éç}¹ÈèZ r¸Ì•í/¼¾ÿ†¡CÐaó$ú-¦CèH°ø"ܶfT»MšT“1DkQa5*–? âÅ?=}ðGåkF>]"ÇüV¨Ô-BXêHcŠ¡0LTg÷|ñåõMrž”zª¿‰Þ|Ã]z6spÞ˜¢êàßâé᎚Y =ÒWMïÅ)™«ó?Y^¯#—BÞ®#ߥ×/›m?pøTGNÝ#¿€ü•G¿<} ü ¼-}€ßãnè}¤ªo’#¯Ðá@u-’ëÝ|k½¨’ôë¿Õë# "”â P6žSç­ù€û®žGÈ«Îð¸\N’”ÞŽêîzÀÛR“ÝàÄ‘ …¬*ɶåÓÉï/öƒ·µ£«û.pMÍ«UtèÕüwêÏ^‚†© tQ>õ.Ã*µ3ˆ,m¯ò ˜Ú[V‚˜©Ü!NÖÑ<ÎhâhBPÓŒhUJÉùXk¬6iEuÐö›GF€X£ÌÑ j*¿(«A<Å41 äò5é–ʪrøŸõÞåŸúnŸêv0Z.ÖÉ'˜2H¯)çƒ^×?Ì?d9Yƒžîá>”õþ¯|íýË€íò3¹ü=ÝC½¥6•xW8g{î~e?‚ÿ÷ oÈ'äY d/}¬4[Íweý#¹¢´  y_LÓþ–' BtÛšµ-ÙÒ߸ êµ~8ñ¦R›ÀB_H¬• ÜÀktz ;ïSæwüÿäêsÿÉôáC)s[z)ýž’äUß }îë,ðDù\ßCñÝ™Ÿ4}¦¯“ÕÖuÐYÚØ­lÕAª´TZ£Å±äƒz„\ |-3eGð¯ò˜|³Áƒ7Ïw ö8onå6@Šåb9X†÷¶Ù¡ú›e³Î`xÎl¼ ®ïûXÇ ’B¯x„Ÿ’gü«”«ßd°cRz_*žæ¾§TríåN=Å÷µ_ƒƒ ‹fl®¹ùMŠ:@ÎøƒŸ¥îc…ãu/´òK謦({@ÜÄû<¼(Š…@-ÚÑØ&ûñ p‚9r#HŸ^EÎYEÝ„—õSC3m&h-ŸM¼$>6B@rÆÍïÔûŒ¶ª–îðIóÆUƒò¸ºK±Cè›'Çì,%¨3ŸÓ™+>«¾\ýà¿àëã8â+¥üPÆÊðûïŸn^ÑŠ‹3ΧšnYx(3³´ÂŸËZÛ× ÚfÓ$Ã]`¼)x¸e D¾TmC¼êoí½öæûÀpºɴbZÔy&鹫·cÿc{ËZ E]nôjÛA:A5HžÚ~d= ÞWœÝñÔ7fnØp(öŸž—¿²íŸsr Ø—¤{ó¶¾Û7Ót³/Ô_ÿâõ pmby>¼žmXît‡@hÝ F;!Îßød•1`Œ|7„ÉŠzL6(‰ZKÕUÖZ_:®Y Nh5”B óU=*üùQ%Ýå]ë×¥,}zSþoà,Ÿ[¹(Çs>µ'‚|D_%sèr=½Þð1µå™[€í·¸ŠáIU®fëÄ!\ýæ±õÒAûδÔ0ÌåÃ[µNš}'XêD4¶Vs/ÄüR·O…ró±×OÇAAÍT-Ë ®fù-ŠCÀ12kMÁ- ÷ËìæÑƒyemM€ Eóš;¿¥@³)k ì™äAå !¸iÜÞp„N©pG´Â>HnT®Ø¾Í OcÛs(·jcÕ?ÃíÍÔ²¶æÒsÍΜ/ÞGŠW¹ßÒ÷‘»÷81|½s_8Õqˇï„üÚ)™«!뻽ÛRmÀ|Ù“ù »ÉYòÞ²Ö>À…bŽ ?ô hvs+ãGPéÉîú³!vW£a•æ@ØêŠoÆAxïJkc[]ûÏôçË¿vðŸ(Í ƒÔ"ÐÆ‹£¬„К¦F—9_¯¬@HjùNQó ¤FùN‘«ÁÓ­h¼+ì½ÓÆæ¾þÛÜC½{Á>*meÞ,à¾aH·þ±~{Y[wýb:aý „E©(ž‡°=‹bšƒa‰e¤iØRDŒÓmÁ',{!jzÍïÊ Á–xgDm0í ^`ýëõêem͕纜 ï³Å)î;¥t½]`,ž‡SûdåÁqÇšv{w‚s\NŠý(¤Ü¾ú·=À§2JÞþÇ=i¾oÊZûë—ˆç*¯‹}”éÆ~Ú÷P£e—-_›7¶aØ.ˆn[³fbO°¤DEïñR]| âÐ%‰upgðG¹kx'IéY^üœ{!8ºe (¨™I»×Ÿ®Ñ»S!=}›åˆô¦¾ÛüO@QRÆÃy€i²5C¡xÏé‡óG—Èõ=áÞæ5¿ð3ËÚÊ«˜8QÄ0á¿ŸŠ¦b/X¦„×´¥—d ªS®iè: ·Ø"Þ(CÍYå7€j4VÖBâäV‹kÜ –á m:„Ü’¨FyÀä©aýè/vи‹O¸+àࢷñÞà–Ò±,{náAðu|ì^ G½?Åî0\êï§·„ƒÉ?vúíý’rEÛÓ?ËKYUÞ!w^xýÿzº1‡a ,Ðz©#A±jÑê^HŒiU£F©à±ÕŽvžÕ¬?ˆÛ•yb;$ÔnÚ£Ê:Pí¦4C?•±ÊX 5/òb ƒŸ‹ëfà¢#*±ÔG ùZ/)&Ÿ^¬ó£ß y dWýY9"¯B\©È.ZUSˆá…úor%xßsE{NÉúMrøš¹xÖ‚>Kï¬W½¥§‹?ôgü¿ù·/É\n9VÆÊ‡Ëºþ'å)@ å@<¨~¥ìå5^© ʯêê0Pk˜ÞמÑOýEÉ-Ï´ÌÐD¤ú¨ò.¶%›‡‚²J}C!»ËŠìUR‰ñiÛóM ÌjUe·bUV€h,úŠ­À4ÚÒö‚ô¿. Œ..òpI)Mz¨4•$g?´÷@ªôq~·~ 2{î^p¼¼ã‰žÓóËÁ×Óz‚»zagÇH(<~");\–üÅÅ›À»g’¯1è?øúø7–µ‘ÿÉ&ˆÁâ90e?liæja«ƒƒ%8rOð|³%?ó2˜Ê‡[WA”¬~cÂ`øÌÚÛô4”{³þ1ZI[ÀôV¨=¨}àN~¹Œ. €ˆE\©Ä¾†rZˆ[”[ôxÐ&Y›ò…O¼ ¦=Á‡--f‹!ཥ¸Ø ÊNu¦rüS=»}ËÀßÛ{‹ÿ÷ËO¤¨£ß o9AVãq5õÇä> ‡=¤›xU.räAÒ€ÉÔäÉÿ¡}¥!F¦Q€â>"¨J<ˆç…K̪rÍAX”He 0FİÄnµƒ²Älå€ò%Ÿ²0×óÄÖª`®ê JãËÁå, ÁødÐTó¯ ™Ì Ï‚ZÃø‚ÖÄå[¥>ˆ•bK·Êúkýw\åx^³;]¥ô¼\\àú <= u¶ç§¹±ö…gÇ ½ÞQªàÿÉ»ÈïÚË‘Ò ÞåÎÁžÿÿI9­íTNq4& ·Z&u`•xUXÀ0ƺߴÄ«j3¥%½úÞ 5}–¾ÁÁ87¤…e(h­Ô»A©£nS–îàW+  \Çü?‹¬'R"„š%tEXtdate:create2012-06-06T22:37:01+02:00l;%tEXtdate:modify2010-11-05T14:17:07+01:00À—É[tEXtsvg:base-urifile:///home/mike/MyDocuments/4projects/x2go-upstream/x2goclient/svg/unity.svgÉ·K|IEND®B`‚x2goclient-4.0.1.1/icons/128x128/x2goclient.png0000644000000000000000000004532612214040350015454 0ustar ‰PNG  IHDR€€Ã>aËsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<tEXtAuthorHeinz-M. GraesingóQBtEXtCreation Time12.06.20071¢"tEXtSourcehttp://www.x2go.org/artwork²rÛPtEXtCopyrightCC Attribution-NoDerivs http://creativecommons.org/licenses/by-nd/3.0/e‚Š, IDATxœì½IŒeÙ™ß÷;çoŽ7Æ<äXY™UÅb‘E²›=‘Ý‚Zj’% ‚!K /Œ†¼0àZ ZÛÚØÞHŒ6`²%A’ÕR[­l²ÙÍ&‹EÖ<å™1ÏïÞ{Îñâœ;¼/"^&Ç…ðâŽoˆû}çÿßw„1†âBøòæÍC¯T"y”E¨Xx&ôdÙ(Áÿ?~aÇ©ðŒˆ”ö£NM‡º7û‡ñÝ»õþ©6CÅc!„äÍßõ:{ËQó¥–VIdÍó©ÕK^)…Qæ|&ÙŸÑ—ÆgnÏÿç¼MŒØ{žÏ»ü]cÜñBÓHœ=*œž0hÁÞÑé^©#ÐGÒó÷bú»æHl7OøÁ?Rƽ'e!þ¾¼zõ›ái{²aT2øâú¯}núï¶'ª/µ&ªÍ‰zÍ÷<éîÙ+=ÞŠÂ8|ÿð=—]»èÜ8ß÷Óú}ãüæŸÕï+n•Ò¬ol¨•µõ£•Õûÿäßù{§ýä¾ðüg僇¿ó÷48H‰Xé´½@,ݾRû[¿üÚÒÛnÖýâ—imPZ#‘ïÛÏ\ƒóÞìŸçÞÂÃqÇÙ¾}Ùkùç\ro*JD~œî§ŸQ¼vù½îÿ?Ç…ß2νéçïûLñdeMýŸÿòÿø´ü{*æQýd{'eÞü]Fï´ŒŠ®ÿæsÿók·¾âûO7öúZxG3³KâöÛ­R)¹ñ}˜ìÏsŒ±Dý/Î0Æ µáø¤¯=¼¿×?> ³“µÛ/ßð”Rüëÿ÷›ïýoÿòOWxå{Oe{—ü£DÀßð:7ÃZP=^º}¥þ»þ—^þï<Ï£Åfÿ„íßþí¿ÐšlS¯U©”C|óÕ+õZµÊßþ«¿õß¼õáÿñoípó°ïO–êgtëW_éýÝV³œ¨pç+_|½sea†‰z?ðBÀÏï?N‰« ªÚ—CâÞ0(Ç‹÷Œ¢°#ŠçÎ!xz,Å/3cÀ“ø‚À§T Ãêÿé?ý§½¿ø[¿Ò\X˜óþæï¼ñ÷ý·'Kõ=¿"ƒSã7[Õ—V×wOþÊ_û¹é.*a åϗųYn,á‹3^Íú3ÒÀýy`F0Aº¯Åfø9عáÂHdÒš¨3?Óã‹o~¥ùñ'w“Û/ßôf§®k™4+" ü¾ µf£Ò(UGÓ“ÊD£Fø?Wâ ®b‚Âñ™}Ȉ^ùfhgX@€üÔ9³~#H‘3ƒbˆŸõÎ; Ÿf£Æôd›wÞþþÑí—o6æ¦k k}¾ „WVTµJðÒíÛ•F­b‰ÿs’g)‘õÁ³Ù@NüÂ~ñ³/Åy@ü÷Ç ¾.œ“âçÇRÂ0 Q¯QªÖ5ÀÌô”W)yµ#´ç›Ä“• )%'§}³8¿X+•B¤”?s]_$üñÇaÎÃj °9wŒ´αŠº€ø$9ñÍÏ‘„xžG¹²tõzS)…çy4ªaSíÇÒ7F c ´±Ïû™Šþó?j˜ ΓEâTŃáYŸî_ÂzHŒ"~‘ðŒ 66B¦ |j¥$ã$Áó<´A£„?üäyñ/N.]6´­àBFÐ&c‚t¿ÈBH"#ºvÒ_õ\nàsˆÿtß“â ñ‡%€‘`táøE—Œb4P 9R¥Ÿa€á‘þ8cÌÀ-ž?ïÜy×ì ”#¼ÒÆ26Á•1á•6‘•#ºR¥4Ú´û<Ï(W*ø~ØèWœ(ŒÖ#Àånà€0,Îa)' ‚ß“H)FJ#œT ŒÆh…V côOŒ¬Ø—ø¾çyç‡Ç…  µ&Iúý>I’ ”r!G=ð*ž»èºR­ ‰Ò$‰&Qv_)C¢ *±A ¥A+2¥Œc »M%A¢”=¯ì{¤'iwÛ,^¹B«ÝEkÍîî.{;»ŸbÜgÇ ? °Ä,J)A i4êLNMÒhÔ @ H£‰£>»»ìììr||C“ìE†%¾ Ùl05Õcb¢qáýç2€1†8IØÞÞæéÓ§ìïïEQÆJ©ýQ¯Á{Q¬ˆcm÷#M+T¢PZ£"»AÚ¬La¦IÒ\„'Ò“xž%Àc¿Šç‡„å''§Üýä.÷>ú€í”S µ(î)þlÆ·¢0ƒR"Ú'…ôåP29;ɾôE®^»ŠžgÅ¿“ZiööùôÓû|øÁÇìl’ÄÆ}ÇÙ™:˜ ¸R8o†³³m¾üåÏS._ÂóÈ| Ä1{{{#þ…et•hOxøh…7¿p‹F£~áwœ·=ïÜ7¿ùÖ×·XZZÄóÏôç^BÍf“k×®ÑívÏ|”>—$ I¢HM?VD‘ÕËQ¤IbE;  …U:ÕéqÆÝB¤†ŒÈô­” …Äóð%a¥N¹ZÇà¡5$ú'£SÇÆ ´AiH4xœÿžáìŸD”úiý”ñÔÉ¥ Ðívi4$Ir®Þ¿è|¢4Jâ$×ûqbíXi’ÄXƒNçö€Ö†DçûZk÷`SÁÙ¹ ¥ ÕíОœFú!A¥ÆÔì,Ÿ}øŒÓÃÊ¡¤^ XZh!åyÿõóÃÃ>üx•ýƒ>F@{jЉV#=”ÃÜŒÿR4’r¥Êìü ßù³9><Á÷$ÓSm¾øÅ;Ôj•çú-wï>äÞ½eö÷899¥Õªqûö-|ß»0žs¡(„ÈÀaˆ÷"‡:oÜl°\îf…I÷qç¬útÖhç (mPÎHRÃQkkð9f±^€µ-mŸv¥R%(UAú”k ®½DµÑâ`oŸã£c¶·vùÎW¸2 ׯvžëï|÷.‹W¸z¥E­V¡ÝmÓžFÊeDæêÅꀤR«sýæMšÍœŸ°½µËÿõO¿Ãç_ŸçKo¾réïxòdo|ã‡ø~ÀÂB7zÔjez½6ss3”J¥ ƒ_—zý~ŸãããLü[k~´7¾Tjåk;Ã¥³—R†XiKh•KKøtß½ÎÊÏGgŸã¶‰ýNáA«Óf^A«kÒ§T­39[¢3­1Zs|tÌæ³gÜûäOþô_û•ùç"z:Þ{™í“*_ú•Ï3·¸@­V#ß#´°À ßùÿF8õ”hwz4[mŒNPIÌñá!33øÖý€«Wf™šêžû;>øà3¾ûÝOxóÍ[\¿¾@·Û¦\.áû>¾û-žç‘\ g.4第¬°³³C¿o¿8ŽQ*qú=)èú„8NˆâØn£„8QÄq’LkVÁ(÷`”Ádp'¤ú^ =ÄÒ3¤ÀsFœçÙ}Ïx¾äþ»}6ן25¿H–-pEJ‚°Dµ6A¹Þ`¡Ö \kðÉ»ïô˜×_~nx°|ÀµÏ}‘Ù+×h¶ÛÖßNhRØ ¥ÿ©ûç˜ÁÚ0!ž0xÂZñÕJ…D)®>^ãáõs`kk‡?û³OøßøÛæÑÇo±þäc¤ç#¤Dza©Akj‘¹+/Ñ›^ ;3Ï exç»Ç¬=Ýgn¶ù\ pp"©6&KUŒð1H”q®¡>'øSÿ^QHÎ)•B ¼€°T¦\)±»·?òû“$á_ü‹o󕯼ÂíÛ×éõ:AðB¹›KÀV«Å7˜žž&Ž‹† ûVlj"ŠÝÌORÿ?!I†ŒÁÄÚq¬H”¡kT¢Hú6ø¤í"eö`tì~› bð<‰”)žç3=YÂó<|ßCJ‰/%~ÐG=fw«A½=E­Þ¢=5ÇÕÛ/ñÎ÷¿Çô”Á÷Çx¥Pd–¾6‚DŽûŸ'þÈ=ÈÁ¸ØÉiÄþÁ ·®–N¿ÿûßæúõ9îܹN§Ó~aâÃ% àù>­V‹Z­6àãÃÙÐn‘¸±¶ÛTßêãÔ33ưŒ`=å˜ÄESõ‘:³lðHÙ—Q€v¿ÇJ¤Xk@P®Ö «¢XÄ¿T¥7·HgaOï=â•—'Ç~h•Ðpt|B?N()ƒ‡°é_9"ê—ºä×l¶È2Eq«1ÄqÂîî>ëë{ü…ßzíÌw?}ºÁÑ‘â×ý&SS=J¥ðÇÊÚ^êHicÊRÊs‰o e@¤gÚàù6¼ë9k߆} ¡1™®•±³H[FɌǂ¡g™D9FH™G寡“>ºà(m¥‰v¶‰ÖŠ(lmìptQk6iv& +u¦ùè{O¸skü‡67Sew{—ã£cJ•:!ÒJƒ‹O I”ÐIª [¡ßOØÞÞÇ1þˆÎø?àsŸ¿Åüü,ÕjåÇNÙerzzšÅò®Ül5Nä[ÂÙÙœ{*ù;ë>uýlŒ_d!Ë ¨T‚‰nGÅc•Ý£\žÁ%V´ròTcÐH¡‘€P*y„µ³·Þ`fñ*Ý)š3‹|üÙ#^½=5ÖC»ýÒ ÿú[ëìììR›h#¤5eA·£ûÜ¢4GÇ'llì03=qæ{?ýô!åZƒ«×©O4ð¼‹}üqÆX^Àòò2[[Ûœžž:ëÞz§§}úQD¿oÏEQL”Ä$qLR˜‰Æh—º5 ÂeSl2Efñw)SkßYþÂYü.»Vö¤µú}‰,I|_âIÏn½bx׿ÐX<8Šøá'R®OÐhuéÍ/ðÙ÷qç–Áó. •JHU°±öŒöä ^P}eÇâù¦3@³³³ÃÝ»÷\(øˆÓ~D¿Ñb—pF`’ Tâl„¥ ¨.%Òò2!ðœ4ñ<鎵/%)¨úžÍõ‡Ö\´òÏÞs‡‘ÓããÖY_yLe¢KXoÑžYàÞåë_]ë~ñõþï¿ÊÌÒU*õ‰Ì%„¡ÀÃÏ(MElnlððî#þÚo¿:ðÙ''§|ö耯ý¹×h4›ÏÏfûHÐÖèü‰0@:¤””J¡C¬x„§ÇÁ)â¤ôB¼È2"FH#&‘H¬o e €Æ%h,*Fz6E,(aJ!¤´Ì‘€'µõ ¤±^'3—ÏóÀ/_t¼öR—?xg…£Ã›Ô;SLLÎr÷á}úý„rù|(U:êµ2Sõ#Ö×Öhö¦ñƒþ™`Å­c‚D+X~¸L§399h{|ëÛï²xm‰É™iÂRÜìÏŒ?÷‘Úm…ižÏ ¼Ð Ãv»çyÌÎÎÒ‘C÷ĉÅôÅÊn‹FÜ@¨è¤i_còàPŠHCƒDN]°' ú$§Xª\tÐ¥§m¾@Yë“ÄZ()µµP„±Éið=/ ¾åŠOµ7®¸Pd‰¥ˆc•¹}±2(Sp³$OîêÅW¯(gèŦŠr¨¸rŒ`MkH*‡ 2ƒ¹€”ðNè ¨âÅ©[hŒÃß›‚Ô°Áª¨¿M¢$I­9I¥ÙÃoÎñéýMî¼4^xøÍW:|÷Á*½ù%J•*Rzƒ:¿ÀF;Ý¿¾Î“ûø¯ÿ‹ÁÙxxÄÃg1¿òµ…|öˆÑõ H‹@¥ØÛÛcss‹½ƒCúý¤`õ‰ê<‚4ýë@ é~ U*å³ßœ¹fIƒV Zå³ÕQŒr‘D;C=a.à#q[ ¾ƒŒ§ ?°adßÙï9H¹ÇÆî:÷ïÇ̾T",ÕhLÍñö'¹óÒxòöK³|û‡³³¾Nm¢ƒçx¾ÉJ+ööXy´ÌõiÁÄD}à³þã7ßcá꽩iü0Ìtÿ8³ÿy¥À¥°ðÝÝ]îÞ»ÇÊÊûû‡œœö‰âˆ(Jˆ"[0’¨Ä˘¼Ãg¡Ø€…3`‘{Ò³¿”HOà•=»•YüÖêÿq!ÜÃçç¦ ïýûÏ8èÎК½F¥=ź7ÍêÓ=æg[—>H!Ÿ¿YáÓµ5Ú3s„¥Ší¦R ÷ ±![ëë<}ô˜¿ü_¾>ð9{{<ÞÐ|õÕª Þ€å?Îì)p¡ `=€2íNm$ÍvŸ~ÅI¶c·búql B ³ºÛAÆ´Æ8, 1Ú¢„´Á;«…—²ÌaƒÁR8ôÚzéLN D||ëB>‡9,¥äÕÅ„Gû;Ô'—«M&¦æøþû?‹¾ðúßÿçØÝºJµÑFz>¾ózR  ´âpÕåe^^ ¨VËŸñÿè}®]¡=9em !³j¨qˆžmIÁu˽€N/,33çf½ÓíQ’«‚Øy‰ÒDqQE Bsî˜úL+B¾sc0ÎÊÆ ÛX£NÓÁÊ…†µ;¶Á" :F…6Xä vë ƒçJ!øÕº q¢KUª-798ìÓœ¸¦] ^šNØ~ºJ«7C–iý­K÷ÆýS6Ÿ=cýñ#þúßzcàýÛÛ{<Ù’|åÕyjõógÿ…[÷UéñesàB#PJI©\¡é…Të†8qîš‹ûÇ™.7Yn@)C¬ÓOêgüÙãÜÌ“AJÛÏÍÜCCž(ä,ˆh…ЉNЉµúUb÷­Gcb• uâð†@•©kÉéñ12¨ÖÛÔ'çyëÝùs¿víRøê›KüÞ¿[ará •zÆ»… J%îí±öx™ÏߨR)—Þûþèæ¯]¿töÚfÄ/›1DÀ%é` Q:íÇv–ëœ bg´ [ý©„ˆckÝŒ©‹˜ ¾gÐ,>²XAêòY¨—…”;PŠqõ©{˜¢£˜ Àâ WTîçWëÉôñ1q”Ð¥ÚÕî,ï¾߈axiÜŒv»ÎLõ!ÛëϘèNã‡%„ðœßÊÖ³5vÖó·þöÞ·¹¹ËênÈ—?·@¹Úx®Ùo.9÷B `Œ!Šv¶wyº¾ÁîþSÊØ{&ù+ƒfù‚ô8N™ÀYþI¢Hbë««8q%â 0Íc²Zƒï ëK{yÀ—>o²ÿé¢qíÊ¥?y—g4Ú]¤ç¡¢¶ž®q¸þ„¯þΛ÷?[ßæÙQ™7ßX \«Ûì&c¿@t3LüT ¼€çùTkuffçËUNNûôûñèwœI‚A  TB¿“$1‘‹˜XgµÿF¥è!+ç„ÑWh!\;ç ȼ®Àz^æç{žÄw³Ýs³ß϶A`.­“KÇõ+=êŸlpz¼OPmQš˜d»<ǽ›¼tc¼ÀÐ/¿ÖâO¯Ñ™Y@J“ýž-?櫯M¶áMÇ~ócæ®Üf¢ÓÃóà ìñ<Ä/ž7 2ÃELp¾R‚ i·»”Ê5fN#ëâ%Ú³ ÿÓàP¡éCœh§.Œó” ö8´Üfu„:?VÊÁÒ\½`¤ 6AúŠ ¡`•{ZkgZ½oÏE­Fã …4 O¤PøBãI|M©"‰ÃidœXÀH¥I}rž?yÿ{c3Àë¯.ò~ÈÞæž'Ù}¶Jû _ù+_¸oum““oÌ-P®Ö@æ³ÿ"÷î~È×¾ÐÅÊ×þá}ÊÌ•×h¶{È „Âì?c øœŸIs¹8_`­ë~?âä´ÏI?¶µýYØW»L`nÉÃÄY‘ˆJ‹>tO2&)ÀÁ‡ŠES‰ ‹ ¤®b¢ %nÆ'9N1K9FH÷µÒ m¦Pš”ŠÐÅ| oð¤!ð¡äÓß=fÖÂ-üJ‹úäüöûüõ¿8^)Ù/¿yoÿÞ»œlãŸlòæ¿>p}yyÍh‚7fæªU„³üÇ룈œºx>=~.0Æ?ŠÙÙÙfeeí]N\ƒ‡$‹ó=A &Ž`ÄG´+ØPÊX`g9 8°™ íV–¶T󥤔é™GK¿fõŠð=IàÛ¸êç•.0ÏŒ‡ÇÿË¿ý”ÒDjkšr{†÷>¸ÏïGÔj¥Qn`ÔjenM+þä÷ø;óÍ3×ÿÝ·î1{õs4º=‹#@œ5ä†‰Ì C ÜLjû.‘£ ؈㄃ýVWWXY]áèàˆ~YO ŽQ‰5µv¨]l‡ žå\·@Xë_J,‹Œ€Ã¾ˆéÿIZüiHùyG£Vâåö*+ÛO 'zµåî<ö£üÖ¯^ë3þܝ߿ý÷óùÏ ’<\cW·Y˜™',×HÓ½Ï5ãSz] ²{Îù}çJ°°ðF³ÉÒ•k4Û=úQlEì2~ÅW<(¢8qb?õ ä;q¡}‡®uÆ; IDATL4*±zšBJWb @B Hci«é°~à!2O Í øo $gaf¡ƒ›¾g%„/ B$Bö׿0Éÿþö>IVjT:³|÷³û|ý«f¬N#33þ‡ÿþ?;ã}üá·0uå 4ZÝÌò5k/ëçžsÞ36@ oµ:”+ Gp›ÏŠ@ìt~jýǹ âÿc—ó/ÂËÞ@ „”•¢ƒQæ)è,–ª©Ø<ÁÈ`ùK£‚Z Û}E ¬‡HM$Ôšud³GÇpb’ƒúï|¸Ê›¯/^Î@¯7h3|vo•}ÑcazÎÎ~!ÏÎxFÏæó¤H€Œ1Æe€ü Ö×BB#<ƒÔ •Ás†œ|e_‰2. TŽÊs9:«( ‹”¶ •ˆ:C 0Fæî™C¹m2 U”RˆÌòW— :q ÄJc@NL©ќ”üC‚ýMür ¿T£Ò›ãÛï>æÍ×G=½ËÇ~g™Ék_¤Ö´EEÝžX87D§Â¤?s\”c1@Î=6î~rrÊþÁǧ}kø Íò"î D]˜8I ¥á‰.ÀÄò$QÚö%õ,º(Ï!¨“ 9m,•ƲŒ`®VÐ £ו#A;«=¡‘hßIiðð}A oCË/}A(J•u¾÷äˆc?¤Ö[ 41Åæê4mrýêøeå}²Ì‘×ãÊôaÅêþ Åü¨sf £ˆ>ÎìÉé§h— ØÞÞæÉ“'lníp|ršá¢(¶ ÇÖ6ˆ#¢~B’ØÈ_jªÄÖ jVëæ¿H€- 5†¼ œÕë¥ÌZ/´ñR˜¸õ|ÏFù¼LÏ{îXà{y¿Á`ŒPðÅF¤`™o¯?¦ÜèâWšÔzs|ëí>7ü»?^¦{ãKT-¤Ør²‘ÏÕåC„¼Li™Ý?†Qš(ŠØÝÝesý)‡¶YGô£ˆ$Î;‡f¥ÙƸ\€Á7®%@ø©[çzýdýt-±¤sßRáÇõ~Òã—^Ÿåÿl™þÑ5üÎåö Ÿ¬N°½sD·S¿ü€O?[aó¸Äl³…_*#\º÷<‘}®QWüÐao/Çé¸0èÍV‹k7nÒ›šã4гp°MýæŸq–³×ƒÞAŠ2òú©*HÏÒÁ‰²E:eE¹ýñÚ‰u ¶Ì$m¦Ðs•@RWaæ¼ß·ÍœÓŸy.CèKÂÀfßÃ$aÚm+ô¨TB¾r=áÃÓª@PïP›\àÛo}Â_ýíÛç?ÆÂX˜ï"xê"”f,‘=RŒ_ ÎÐúñc‡6)•jôU€8D°Á†~Søw!œGs[ÀbrTpìCY^Àõ Ês jÀðˆ¤¤¼€Îì ¥5:)ì«ÁâQ£m¡¨kÌF¹wÅcgg‹hî„r¥ŒñüçÙémÃD¿Hç?¿X|ƒKãJiÆ Hcð°ÏMHë³ ç» m+~,ÈÚà y "Ñà„¯‘‰F8†À3 ì±ˆ5ÂwûÊ …TéB˺Ùý(IÆsYFÊÕ¢0(ŒQ!ÐBgÍ„g+mÒÒFØê#F"PôOcüg”ë=‚î¥F— 5Ïwß~Ì×åæùO¹0¾þÕküã³ÊÔµzã{g üÏç—‰ÿq¯Æ%°ð„£Ã#v÷88v š¼1T»ÏZÂÔAÞf¸X4ŸíIœKëX_>Ãüå0Æfø„e>›é³U@¶¼ÌXh¸Äª ( $¡ï‚E~ᄞGxîšÇúî¿ÿÙg¶/q­Nµ7Çw>|Àoü²èÍÞ˜šl3]¾ÇÞæ3Ú½I ñˆü³>@Åú{ßû±ÂüæoÿçÄ1»;;<|ðµgë¹âP[ Ú· !£˜8Ilf-V(“ÆúŒ1`Ò>=–Ë¥‹K)Ȭ-L¹ÐÆó\·Àˆ©àgÈk,ž5½‘ÿx€ñŒÍÅyÁ½wŸÓÝ9ÊÕ:åfÃÊ,|¼Æë¯Ž‡úÚ—çø—ß_ajÎv՞Ĝª¾T Ÿ¸düÿÓ?À“‚ƒC“€Ì£ŸiK—Ñ?Â~•\oº_7Ð8»7/\´ûÂÖ¤×Ü/"½¯ðWìa¯ {Mà`ã/Vý“¿õz…þÁZÅå:ÕÎßüþÆØïéæ<áé{[ëÄýÓŸÊ´?ïÓ®®é¸<Ünsõ†¤;=çbƒ ¨`¨åå`y8É4f ª—õ tFŸJÒVqN=Ä…¶qIqß~*Áe;ôéÄ1EãJÏ-ÀÓƩ'Éľï‰Lüû¾$ ¤]òÅ©‚ÐåÂÀsñ…|vº£‘^¿TáîSÍ·¿ý=jµ|åîâ³,n*ì²µ¶Êäì<•jÁh#ò"†/N²ìÄÙÝ ÇÅ à{Ôêuü L«“Æísˆµèóv1J“Çý·æõ“ôZš ˆMÆ,y¡¼_`œ¤5‚Î{HÏ«¼b8½W%y-a¢ Q†+ЮÄLe©hÕO»œš,þÚy ÂÙÂDmI¯‘à‡!õÉ:צñ‚:‰ˆŽ)© Þyçô÷»Ì]½J³ÝÆ>ce—~Âc4ÙÇ…œ²<Ƶz·½™œ;UØãŠ2\gïb2(.$ OÅH™ÒvA gô¥÷ŒªÎÜiU¯vU½vË`l“ÔÌZJQ’P2æìöÜëò¦?µ+ÉAp›éj!=¢ƒ-öŸ>¦ã=|¡Ïó=ÅþÓÙ~v“ÞÔ4•rÉ6Á*P$Q‡®â”)òÜ ô½ž$ CZ­‰2T6Ôl“È(Vôû}×3Èv M¢ÈBÁ›~Mb˪sÒn^„vŒ‘8±)üãù ÎöE¾M‹pÓ™þÓ'ÓT¯ß Ôè`TÄÉözãjC³ß˜ñJ³Jf••æ–©7ê'_$ø50 -†ÕÆÐ½Ãã,¸›¤„A@§ÝÁJLͦƒ-@$‡|§ $Š…¢ƒ} Á l«ÒÂYÝaòÍKÆt–"NóƒðpÛ3P¡“9¤o‚Ö1" ÷¢²À‘ÀPƒídPW@*ƒ¥€¸÷:ÓW ÑÁ:OÓšýÆÀGŸI^¹¥Ï<Ú‘ Dl=þˆ›×èNNR)‡ºH œa1¨† ~ž7q†²6‰R©VðÂõØVéfñþ´ß¿ܦ=Ç`±hÁ+H½†¼¥Ìh@H\`„¸À©‡3=g=‚$+Õ…Å,´ËZ !…„;{¶ӹå4A©Dµ3Gköµö4è„“í5ÌÆûÔꃳk¯Dßo°¸ÇD=‹ ÄécÖŸ¬0»°@½V?MA_ F÷\fx^ ýã`Vq;ß…ªBm@b2ë‚ ÀÄ ¥ä™«Xðûó.ã¹G0¸ª¨Îf|*9Š«†emãµÉŠC2ˆ˜RÎCÑE¡–o­Aiœë—€ŽÄÖò¯t©Lt©¶fðƒ§»+>{L7x4ðÜŒcÿ:s/÷8ØzÀãyÕÒ!ëî²{ón—r)ÈÊÕÄÂç¶³3{¤0çóÀ¥"÷övyölƒ½ýúqâÐ>®& m Û”oš(‰aãÉ“$‘õÏã(¶„+ÎZbù]j•¶‰q®›pÉVLm_°äH{Á¾O can~îŒÒÝëÑÒÿ%|?Ä$§œl­ÂÆûTëýûv[´¯~ŽÖTÍR•þÎ3JÁxR Þ»ËæÚkÌ.,P«ÙÀPQ ö 3Œ˜õÃ×Çf€ÔðŠã˜ýÝ]=¼ÏêÚ*û‡Îè³mblÀµ‡OìªWiÏ|Ad=`ðÙßfŒ—‘10qÞ¯ûÙŽ8‘†·˜©¶ð¤,õ=Õp—µ÷Y¼v…V«¡OÚXó #Œ:W8fÄñyã|O­QgvvŽRZÅYaÈ0ð#)nÝÌŽ]™8ŠI[Àª´¤+]ŒRZÌkÇ4Úê_ãQi5±ÓU€5‚Ô—œéé~êÓ§3þyÇF†ÆÒM*]„Š8ÞZ­÷©Ö†fÿI‹Ö­[´¦æ¨M4ÑÑ1;“wHöVð½Ë B! Ï>aóéfæf©ÕÊ9œ7ÛÅ9ǘ—ò>ç{Ï•RJaH·Ó¥R©1wÙTpæ(F÷òãáÒ°´iD OAƒ+„Øýš·‹)´IÄDeF_Iòþ€IV¦sÃO¹ð¯mA‚Ñ&õ tìÀ IælÑhP)á;Asö*a©ÌéÞ:kèú#fõósKÔ&Ú”ÊeíIºóWx¶Þ£]]¿”JÞk³tm‰VkÈz#Xº\0û‡˜a˜aÆf°EaóÕÂ#+ƒo5ïN[Žƒb!h¬ ÐïäqmcDöžDYÜ€rFcZ)œ‡¦L¶“O”kH¥ pðty›LÊ$Ceû•Xuår:ý£ñÊU*Ý9&f®SoOaT̉›ý•Z4ð¬vŽ;tîÜ¢Ù›!,•ñƒ€J­A{f–ÍÖ-L#Ër^4|O±¹ü›Oo0=3Mµb{ $!ç}çù—¬è£ˆÓ“SŽ]yxV:TŸS$š¨2ž>\Ñhš1L{ÿ«T¨´Pºš(Ϊwy€‚ë—•…ëb£(•m‹Ò ³Mt‚Ib06N Mâ\@ óMàõ(×_¦ÖìáûÇûëì?}DwH§k#Hê¯Ð™]¤:ÑÂëû“£Ç<]^añê [<"…˜ýçÍüQç_H n7[\¿~No2+ O×n•…¼Áã4Ðc2i'1I¤]æ/7ÜÔÀp&ó ŒIIPîË-ü4H*Hû¥¦,HT¼…áÀž¹BgáÕ‰¨>G[+èÍ÷(W‡fÿiîvö—ËøR: ®3¹Oc¢ÅÔü[OÆb€rxÈ“ûw¹ùò5¦&{ þ±Ï3¥°ÝÅ_Œ€v§M¹VÏcý™Q7ñK÷ãÁø1y#ÚÉäÑÜQˆû§žAªë5y[8cœ‡FÿÒ®àνÔÚE óƦ`Çh)À¡T)Ó¼ºD{î¥RÈÑÖûkFÌ~‰i½Jo~‰Z£Iàû6ÈT¬^¯R¥35MgáŽ> D£øÐ8ܺÇÚ“W™_œ§V+#Ex–ø#ˆ-†®¿° Û¨)l\Íóì* Kغàj2æH÷Ó$Oê9èB£ÈB'<)”{ … i£H¥]×ðt›‡|-l,q+åK£E¦Þ@Ú(Rƒ_ªPïÌÒœZ¢Úì¢âS7WÐïQªFôvO{ônݤٛ¦T*¹eîl;/c&:]¦çùøÑ,%Å%‡'÷qãÖ5z½6”‚Ñj`ˆØ£˜à…@kMÿô”ýƒcNú—·Šµ½ò$ΙV±éL7ƒ1€áV±™û—2€l›¾PšÂÏ•…•vèd[—O;×Ï!},(büÀ ›ü©9ʵ¾'9ÙÞboí­`eà¹(-íWéÍ/RkLØî#3Ÿ\àQ©V™œåéÜúkO𽋄²B6V>æÙÊ-æçg¨WËß?—øç1ÁeãÒná;ÛÛ<~²ÂÖÖÇ'ý'gšEŸ¦ ¤£ÈE× ".è÷´Û§vk:|@4d–~ŠF …‘‡°RB€!,èòÔ po+¬¼ù¶>ðÐÑ›«¨÷(Ugÿ^Šé;nö—Ëvö ¾'l<Å—%š³W–øøÉ$uïéå?fƒÇ÷sýæUº&"ôtžì5Ì©Jü@kM¿ÊÎö«+kº a»p”EE9*(ó¬È6&]¤A€>Œý¤#ªGN4Æüá?éqùxÓ¯Ñhõð=Éáλ+hùC³_Iüîkôæ©7&l_ÂQ³_©)$õFƒ©ÙYžLÝÂì<30”°òàcÖ×^b~nŠj9<#†_Ï£ÿaÌ•CoܸÁäÔ4§ýÂJ ™¡—§rSË¿ï,ÿá#òÅ"´‹ìé¼@´$Jñ€Y»y‡.²=’Bw<á„VòåãH½‚´’Ü3È¢ê ¦¯Þ¢Ñêa’>‡›+$ëïV’ç²M3wå:­ÞԀ¢ìOJ$!í©)æ¯]ãÓgïQ+íŒAP§«,?XáÚõ%šÍ:‚\ \¤ Æm‰tñšA¾O«Õ¢V«¹¢._2&*èúŒYt±í }ƒÓ%c2ÀGb¥GšKH+޳6piî_¬~¶‹É—‡1:—bá¦K‚J…Éî4¹«”J!»ëOØ~ò‰`uà™$Ê£<ù“ ‹ÔM‚àììÅR€ø4Ì.̳ܾÇoE  èóà³¹ýêufgzV ï™?Žñw)¤L`‘AvÅ­XÙåYe}m¥±ËÁIAb+GÇ ñ5Yë˜â¢QY 1ÙºÃÅõRt±JC¿Yo@×/0ín Îp ­óèb– R ­…Û·vFX©2Ñ›¥9¹@¹Ö$>9â`c•hý}åÁÙO³tízVÓ—êþRÙA¹R¦;=Å—¸÷ƒ¨„Gcéh÷O®pýÚ͉²Àç©‚qÇ…6€RŠ££#ö÷÷999É–Æÿ»lœ²=ãlæ:ŸÝäа´å‹Åô™÷gDÏÔFÞ2m £Ý’5J%èĺu:qñ~CÆm)/&…?0Tš]êÍ¿Hx°¿¿ÉöòC&ü³³¿2ý:“óv!§âìOgþßói¶ZÌ-ͱüɈ>‹HapȽOîrûÎU¦§ºTJRÈ ¥ÀO„b·rè£GØÚÚæðð˜ã“¾ízÚç4ÅD±ˆÄ¶eL I2,^âê -4ÜàšC·²©H¡NΡ„ Ç™NiS3).`t¬ùì88­âK‰/%êôÝgOè?{—êÐì?Lf¹~ííÞå¡Ù?Ì£l‹D’T«¦ff™¿~›ÇïÝ# úçü²Á±ùì.+˯põÚß½¼/ 0tÍ÷˜˜h07?ËÌÒm´rž—p÷ÓX}²ÆññF«Öýé¸Ô<88`gg‡££c—ów>¹lâTLÞ»wæu90W ƒ*@e^„‹¤ÕÀIâI±-ñNm´ÿ¿ÖCâ_9›#Ùð²Âó µV‡ðK‰îÔ,Â(Žv6xöèµ3³? {ÅÍþzƒ ðÎ ¿uð(ï`Ø#ðJ!SÓ=®Þ¼ÊÚÃ%¹5ÁNŽV¹ÿ ·n-ÑiÕ‘.0ô¢c,/àîÝ{¬®®qp°ÏÉI 84Jãý.'–IŒQ9@³Ð}Äîçß‘„¶P:ëb²¨ÝÙßw. „QÇéIͶ‘‚äô€í§O8\{F88ûûÌóÒµ+t'')—C»$­ÌÁd9x<*H$„ÇD³ÉÂâ,ÝénǾßç£÷?æµW®27Ó¥V±¡—®õzn·C­Vµ®^Çq¶˜Dßõ Š¢ÜŒ£ˆ8õtºØ³.,-K¶Ä¬6´ÕÍÚéj «%º‹EX^[ ŸK÷Å* {õ :Ý)O°·±ÉÓ÷©zÏïK|zW?ÇÌü<õz-Óý£€g˜à<(ÚžDTJLÏLríæ5~ðôÂ`¼ÀÐöÖCî~ö˜×çiMTñ½2㬅4j\êt:Â0d~~ÞæÚ †Vf•+3Ø`(4 õÖûÔ†3]#żH ÉŒÀ¤p-qµ€.ö “Äåâ EdŒ& 5;Çõ;¯ÒêöH¢S6W–Ù_}úÐìÄ, Wéôz”Ê%¿Ð£H ¦]/Tçy¼À§Ýn±°4ÃûÕiL|<¢ùÇüèGpûöS“-Â0«CÙs3€'%Õj•R©4 Æ‹[clÃÈT¿§kü ƒŽe !©UËÌÌL²tí&>~ˆ”ãUoo=ࣲ´8M½^£\.¿P‹Ü‹{;W*í<ŠòûLæ¯Ç:Åþå «ìM žÆÒdP\4ó$P¶ÍPA c($„\œßµvÑ®–0ÅAXb¢Õ¤;³ÈD«‡”»[ë<[~ÌþÓw©…ƒý4nrcqŽN·K¥\Â÷DFða´Mšw¿L ŒVÖìöÚ,.ÍðÙ„rLø¸wÊÛo¿ËÍ›sôz‚ -(}>UpI£HÅÞÞ[[[ÇIfÔ)—ç/úÚq<¸–`4°Ž   ,—V ;$QÛ%j£((ðÈ€p(—ÆH¬áˆð¤‰3(í²õ¥r_üóÌ,\! <ú''l®=áñ'R ¶ÏüÕiR«Wíì÷ ÄfÎ_ŒÍ60ԨטžîP®´ÑÉx °·÷˜ýè³³“T«êõÚs«‚K½€ÝÝ]îÝK½€ƒ¬8´ßïE}G´Øåïg'¤)ÛÔ 0´µøój•3íÏ‚íÅ; Ê(•+ %žô Ëz ·éMÍS)—1IŸ­g+<úô.ý¨”Î~·6¨”K¶y´'²æ]£`×r3œ'FÙA¹P¯WiLtØÛ/4 àyo¿ýss]šÍKKó”Ë¥çRÚRJÊå2Ýn)%§§ý!bÇ™zPiHœ¸õÜšnV[Ÿ tÿP®4Í÷[§@‚Næ tÖ[(wIƒM.øTo÷¸zç ô¦gñƒRúaHm¢E£ÙÁó=v6Ö¸ÿÑG<þðO©–F[Ý*9%‰úÄ.€äYâJqÆV©­0’Šú?Íu¸ð´¸•Þwlð­o½E«U' ff¦(•¬³éeãXxH§Ó¡\.EQæŒzC¯™gà4 iIDAT©•ëÜ‚/Zúyà(]ëGg)b]x)C¾ïlŠôž´Ê8]3PxÐj·˜]¼B³ÓÃóg—X› Š"6WŸðÙ‡ŸðÉ[J58—§N¶X_YefvÏÃ"|áyx¾o]8Î2ÁFÁ·‚¹Q$Fc’˜ÝímÖŸm°³5^éðØÙùŒo|îKôÚk}¦¦ºT*‚ÀÇ÷/Î÷]¨T*„axÆ ~:Ÿ/[Ìz9«ÂymDŽ÷ÏΧ„Ï»„è 4bKЂr¥J³Ó£Zk ÅáÁ>û;Ûìmï°µ¹ÅòýÇ,ö•àÙEÿ6ꟾó#@³°4ÏDÓÚõ‰ Ú6A¥êzŸÊ5óÝlï÷9ØÛåèà€“ãSNŽŽxº¶Î»ï|ÊÉñ2¥Ë»ÎŸž§xüø-þÕ¿ÚåéÓm®_ŸezºËôtn·œßZíR/ I’‘³?ŒŒJº‹HŸÔÇO÷Ó²ñ¬iTŠøQ)T,Mí kOyisH!¡ÝíR«× R!:=bíñ>zï}–ï?dg“@lP /ïØ!„¡Ä]>yk{ïOÓhµi÷º\»y•[¯¼ÂôÜž’âôGÿL|ƒJbö¶¶øèÃyp÷1[›{ìíî³»ý­v(ñÛΞ§88ø„?øƒ5Z­ׯ/òå/¿Æ¾ð ½Éî¹ï»ØLìšAëëëìïïEÑ€]ÔÿçKÁiEq¹UGcMÜOè'‰µÒ®|¾,\^4j—rÛ´U©-úô<˜ž¿ÎoTÿ õj•ÓãCV?âÁ»¿hªÏÙ_PC¥tæÓXÛÃí—™™bzz O†6½Ëù Ìa11Ší­M¾÷'Ìêã÷râ¹$ÑObÁ>GGû¼÷Þ}âøˆÅÅZíV¡6sp\êìííñàÁVWW9::"Š\«ø(ÊB©ah“Eƒ Q”/:žÚ¦CÃÎÖ3N³FI1®‡1Έ£>F'xÂàË‚Á7Ê#8# £¢þx( wD‘¥Ëyć1BÁÍf“+W®Ðn·3Up‘% W2Þï'® Dõ]ÁhŠóò.¥”Ë ¤Ì£ ¶Æ d,•ž4tº=êåR€ªU˜ŸŸáéüìn'¼/¤õ åŠÇµ—nÒn5 C/g€±€ó$@É—tÚÜyåÉñQŒAfɯËmöñ†çA£ðÊ+/ÓjMœY±¼8.e€n·K½^ˆ^䌺ž5šN¸´V0³ô@‰X¢Š:ßyÎ(4†Ì0Ô&‡…KOÒî¶™›Ÿ¥R)ø>·n¿L·×ãøè8{/¼Èx"ûc „>­v“©éi*¥ ‹'†Îg,ÌÍÍðµ¯ý*o|þ5â8É`pžx1@Ǩ!¥ T èõÚLOO¹(áhûb¬l`Ö>œ :7|m tœYû.žV;¨r9í<“žÏ˜@gL µ­6²ñþŠmçV )—&'{ŽqÝï¸äáeFŽýÀ#ô*E|Q`ègEøtc3°§ýȤÿŠF á_øJG‡Æ€'OVVŽï¼t¥š-ûÿµwí°aøûgvÇñ+‰ç.â Ê¡Hˆæ@º %¢LCCw ‚Q£ÐÐ]E{Ð $J$ „L9”Ë…DD—ر{ýšÙ™Ÿbc³qì<$.ɉ|…eÏzý˜ïû_;³3çøk!êø! #_ !}¸8Üýçß}(¤Ãíq«?âþñ¯N#‚óF/)ïtºXYY©!Ï ˜QÖyÒ°u-ã¬VªX,¯½òr*¯Çáyò¼åŠáB8Ž|7@ø°¸wÿÇF€3„8á£Dp‡c†ÖA³«X0Ú²hIÃÖK°6¨¦¶TQ’g¶6Ž•öj(ä&P>ÈÃÙŒù4è aùGÂÐ'x”8xˉe 0Úõ¾:DŒ‹%ˆò9cB4‚6vËUTË3 è*€k&84^Û¥ŒdWﻚQ˜ñÑÿö»ï˹w ¾ï!›NFËŸ±ø/·(À¨0 xþÃéËÀ³æq·‘èϾf†Ñ!êA Û;{¸wïËRB†Ó C¬ çí·I¯Ô Ì”ÈÔUäR6¾®<¨+?ç»uK3³š¹6…L:‰„ïG›7Òň`(â Çã;l?á#‰†œoqÜž6Ë|BèÍ¡p.Z²¿Ñha{§ŒŸŠ¿¶v¶þ,Hèz}O|f|QÛk†€E™ŸWi?Õš½>nߛ䉀В{á¥W+ï¼ýVazjÙt*º…º? zIDÃ/€¤ŸPj:& \&ôÈ·7ó6šmì–ªøêëoÊ›Ÿòˆø«&–vëâ ÓJmVÖt3в·ïx3®:ÉV??_àOs)~£÷' Æê³7ç; ™goÜHy^´æÓ‚¡ñþ´’\f°chc°±¹Ù\.þÒú{k=¥H§Èª-úq­L‘TëE®†å»!E¥Þ'bnî$ó9éÛÙkã¼øL–ßWÞὬëÙÓÔ-ÿ'0 ƒ K}èz»!>ß­{÷­áÍL»RÝØxS3쨿üÚ:¹é,Ûðºvîf$|¼¨$ç}u]ߎ‚9*õ´¥J×`õQKÎÉ ’ÞÎXµÔè‘¿>LD·ïÈüþV’Ò2ëštÒ'ˆ4æ’>2ÌLçv‰ð g„qÛ S„@XQ7~·ÆMÛ¨L<ׯò]ËÌýÑ! "Åü|àí'2¾-Œ”o IVZ0«+?pI‘Ð!ͤ•“>Ûk£\ÊLt³¶– ûŽÿ“b«²£õÇÖIEND®B`‚x2goclient-4.0.1.1/icons/128x128/x2gogroup.png0000644000000000000000000000343112214040350015321 0ustar ‰PNG  IHDR00Wù‡bKGDÿÿÿ ½§“ pHYs  šœtIMEÖ  +‹’‡¦IDAThÞÕ™kˆUUÇçžsgî<îÌ茎WMSÊ(Jj–‰%Q}¬Q}êAJ/¿ô%íS Aô$Á°ÂO’D‰X!i­ÉGši$©ÍTæ ó1Σ/ëÄbsî½çŽ"ã†Ã½ûìs÷Ùký×úÿ÷Ú7‘&à`)pÞ®ñÜš€xXÏÛõ302Î ˆ·"Ù,VÕ]\FMDnV€#æùË­ýŒ&ÀYUºD^K€Ä⸜Uux Ó ƒIÆKÚvë€ûhÊîñ)î{;°:n  è°yZ’='S"²øøTUO4bEâ^&E{1–í=ö2lQ-ö½dý4±&Ùg~ú€à´-65´ÜÜi×<à ई,ÞUÕÁ<D"²YU:CšœÇ ·§°jcÝÀ.U=×@HÅÀõÆ(·›Ã†UÀ²Z¡%"%`keûL ŠAl ›å *‰ÈIà °QUOÖ2À¸]DîÖ ŧ€/í^¾RÕƒ{Ø7Æm÷9!"§ó„ª‘g­6Gx¡!À•.¶¯¶xè5DÒêš­ßâ¾'ö›%À†œ>Ø |,¶þ<¹JU÷½cðx‡ §’]çEPUGDd½3 îöçE 2ïw:zŒ ¢õ{ìòÌCC%–Ô‘ˆ<©ª?ä´£/èOÊBÖÎ{.Þï<;cBÈ4m •ŽýÑF’x8+"“ï·8®5!µ^÷½lãsDäUÈa@wƒr%q:Q1c¡þ™4î[œFL àOk¹U¯uý¶†iÔ 9îži6ï§Ï'U„¬·J8µÓE¤£ž.;l”²Ù"y»– U£Ñ)n|¶Ëi6à 7×ä@ÔÚ\Þt[¡´¶‘uÀ#vë.C¯ïBhô«œBÖê‰b#·ÿID$²\«Õ^î¶|k^‘{Uõl^:l‹.dŽƒÔ Y à…,ÓàÛuÖBaŸˆ¬°’16-X¬l_Ü3jx½ËuKN±«p '¾,2Q++Dd“ªöå²IöÛ&n²-¬`±ÜíÕ^E²r  Z8쮃 ˆ,æ»PZ-" TõßzBvøÓ%d«*d"2䫦Jnû܈N1£¸ )Ô‘›DdI=a‘l{¶slÍ$î©¢²^”Z/öT‹ÌÈ$…šÂ&"k ÁQàCàiU=S3‰EäˆÝ;n H‘˜·c·¸æ ”ª!åC©)'5/vÏ^ÊZ|ÓmaEózÙ;Ù¶Éî•ÍÓE[`”V‚ͯä8…Ø <è¢ap8æ¥9Ã}H…‚æCñ<ðSŽi×XY9×}¸5׺{³\Ìv3Ýþg†£PÏÿ‰Åzz:QrÆ4+ê`t¾ É y·~òí9ȪIJ¼_úTµÞ”[pŠê ðbÞŠ,ªt!iL§tÚen±±Øq{k•-÷Ca…ª~“ƒÿ‡E¤ß™cûíÀº<Ù)»j‰—ó*âKÎ!à“Rk™#ƒš»ØPÈŠn Ôµf—Q 4RJ]¥ªÿä Éàfwëwc¥\õ€_|OÍŽË'c^È|(uÙ!W#G÷3ƒùwÔ:í …ì¨ ‡cÆuŽ'ºgC!Ûš×ûéyPPJîl¤&žá¼Yq4ÚLuô8űDµ¸O Ÿ&ó€åæ„à7;üh'Û‘ËMÔÄþioΘM)2 ›Q` „_D¦›C0ê~8d%ë÷¶#ˆ-Àw 0Õ¼ÐêjƒØò¡Ëm'z]˜Ýáodh%æÙû¬H÷í!·øÓÀ㪺Íú‡mcúÀ8dW#[ _JFRpFUeüd‘Ïóø˜[(dÓ̃©öØbZÝAnl(eí8?·¸=öŽ¢ý𹚣Èoèhñˆ]Ðïî×ÚJû$î«óG9`¯\` …¬-¨²ºª5ÍW§…Ë)Ûn²œñ¾R€ÜÁ‹f€%±?¸íª"VÞ°8PkL¸¾­ñNÿ§EÿÅD`$(ó.`Þ•\¢Všì϶˭€bªª³/C®Šq¥R)ÏW*•-•JåDÿèx^µˆ$•Jå:#Š÷àUÛhÇëƒãÜó%Ó§UÀ;ÿc´Ðo³yh!IEND®B`‚x2goclient-4.0.1.1/icons/128x128/x2gohosts.png0000644000000000000000000000330312214040350015323 0ustar ‰PNG  IHDR00Wù‡bKGDÿÿÿ ½§“ pHYs  šœtIMEÖ # ìÖÄPIDAThÞÕ™]ˆTeÇsÎÌÎìÎÎì÷®£f)”´‰ÔSXz kDhÑEDIFB`WÝD†!ØBAT`™ m7ÑÞÈk‘k™B}¬é亱9º®;]ôxx93;;; î‡3ç¼ï9ó|þÿÏûž„ˆ´ÏÏWô¸–¥H{€ýIà9à1=~f®qBàVàM€„ˆœ¶8玳ˆDDîö@I=¿Øä{ —œsӋЀ«ÀT2&4í@»^@¯ž²@ÎL_b~·SÀ¡&(8 |ìuΕ«MJÅ H=z;¡„zÝ´êïŒ^G…Õ§çœ"ÅMúì|ä>àyÜ9wµ¦ιàŒÂê9_= ÌX‹ëþuÎ]‘ @xxxžF< ?Öœž“ЦÑèÒ1tl¥1(|$"ÿeà0ð$ðq0¹X£×­&#f€§€µ¤©¨&ÎÇ€MÎ&#À·Æ€šàã5ß4"Q iã©´yoØ|ÜY¯BúßuÃzµœlÀãy“N=Î9çÊ"òŽÖCÓÅF ¡Þï0ðªGRzÝk%Bb*©y›‘§€À`i:MGÔo€Ê%}Á„¹wÚ¼04Æø<kPQT{ØT‡NgGI¡ pIDúLÁµ¬÷9Á'µó;§ã(ü |©C§@ŸYÙhG˜žŠQÔΉò¾ÕpD·³ŽXëœ;""ï[gÑé­ÃÆŠX ¹`æ¤ÕûÑüd"¨’N­ÀrÉû€-Þs¾tk1]bÆW™Xf¢‘®3ïê÷H-kê¦GJ¸«é(TF¿®“ÈÚŒgC…Ø„!µ¤6h¯/×xÕQÏ1sŽ@ÞP¨•Ž!²Ðû#KdÕ Òs»dœlõÒ±¡übæªáõNs™1Œ]Í€¢snRDŽëŠÈúôjׯŠšË=F©ö*œW0%"›´˜_2sæo€!²ß€¿LA&½y™*hãÃh·© Ë'yçÜ 9<ÝÌ"®ˆÈ´aP€N£pÊkk-WØÅH>Ü&"Û€ýÀÆ Iàq¯*ŸÕ”ÈRŠ”oÓ1ÛuxcaBksGãM…Q)é½ ª@´‰TT…CÓV¤½Tª)›JÑùkV7³ˆ`¹*–R¯çTÙ~-ؽ—SO¦TÁDLZµéœ(Ò}:ïUçÜUÙnÆ›FdÅVb§ˆOh¶á»ŒŠÈ*]nÒìÜlî­4¹Ý\oúŸB-þ'5×C›1Ƥ]ºÚÚåµåM‹À¨û¡ÎÄ­Ä⼟Óõñš¹ôûs%²ˆ¨"E¢œŽà´S=턦­n«Òrwivéb}ç|¡³‘MêQ‹¼ì˜eYß»äœ>xÀW"›Í²nÝ:²Ù,£££‹E*•JCD–2ôž¬Ajiõl©Õ¢Aê>çÜß"²'®}bxx˜‰‰ 6nÜH¥R¡X¬O|"³Ê÷廌ò-Fùh,4dS©S7¹Ž‹ÈàQ_|>O©Tb||œ™™†‡‡l˜È룮 RgÙVì6s}"Qb|#n·áâÅ‹äóy‰•J…ÞÞ^&&&†ÑÆ›£Y݉àq‰Áþjyº^‘ç¡Ø-èéiJ¥›7ofrr’®®.<Ø0Œž6c'ë„Ñ"CoaSѵÅà•ZÈ322B¤ÓiÊåò¼ˆl©¦C›Y„Z¦0i’2›¿Q#˜TåïnÑ•XM™™™™³òqø]¹´v)™Ð”Jeçܸˆìð`xA·—©E—‰ÚÌFn¨QŠë8¿PÌÿø\DîÕý}Ü•’ `ÌܯÕJÛ">¦8ÀíÀÛMб œ¯—ȲÞ*«³ÊN[Úã‚}×O"Ò ¼lðžoT¾NÔ[ĶCì¬BVÖ°Ðcëh±¿¢‘ÖÜ“Ëüÿ•gw­¯¨qÛ*‘œiä_õÓÝMðüt=Ÿ“@‹ˆ„Õ¾ÎU¢]n^ ±ê*Ÿ¬Ra¡PÈÏ …ï …ÂÄØØXåZÖZD’…Baxx/ ìֱú½>u{>£ü´ØûÄV–¢©'ÞIEND®B`‚x2goclient-4.0.1.1/icons/128x128/x2gomailclient.png0000644000000000000000000004532612214040350016317 0ustar ‰PNG  IHDR€€Ã>aËsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<tEXtAuthorHeinz-M. GraesingóQBtEXtCreation Time12.06.20071¢"tEXtSourcehttp://www.x2go.org/artwork²rÛPtEXtCopyrightCC Attribution-NoDerivs http://creativecommons.org/licenses/by-nd/3.0/e‚Š, IDATxœì½IŒeÙ™ß÷;çoŽ7Æ<äXY™UÅb‘E²›=‘Ý‚Zj’% ‚!K /Œ†¼0àZ ZÛÚØÞHŒ6`²%A’ÕR[­l²ÙÍ&‹EÖ<å™1ÏïÞ{Îñâœ;¼/"^&Ç…ðâŽoˆû}çÿßw„1†âBøòæÍC¯T"y”E¨Xx&ôdÙ(Áÿ?~aÇ©ðŒˆ”ö£NM‡º7û‡ñÝ»õþ©6CÅc!„äÍßõ:{ËQó¥–VIdÍó©ÕK^)…Qæ|&ÙŸÑ—ÆgnÏÿç¼MŒØ{žÏ»ü]cÜñBÓHœ=*œž0hÁÞÑé^©#ÐGÒó÷bú»æHl7OøÁ?Rƽ'e!þ¾¼zõ›ái{²aT2øâú¯}núï¶'ª/µ&ªÍ‰zÍ÷<éîÙ+=ÞŠÂ8|ÿð=—]»èÜ8ß÷Óú}ãüæŸÕï+n•Ò¬ol¨•µõ£•Õûÿäßù{§ýä¾ðüg僇¿ó÷48H‰Xé´½@,ݾRû[¿üÚÒÛnÖýâ—imPZ#‘ïÛÏ\ƒóÞìŸçÞÂÃqÇÙ¾}Ùkùç\ro*JD~œî§ŸQ¼vù½îÿ?Ç…ß2νéçïûLñdeMýŸÿòÿø´ü{*æQýd{'eÞü]Fï´ŒŠ®ÿæsÿók·¾âûO7öúZxG3³KâöÛ­R)¹ñ}˜ìÏsŒ±Dý/Î0Æ µáø¤¯=¼¿×?> ³“µÛ/ßð”Rüëÿ÷›ïýoÿòOWxå{Oe{—ü£DÀßð:7ÃZP=^º}¥þ»þ—^þï<Ï£Åfÿ„íßþí¿ÐšlS¯U©”C|óÕ+õZµÊßþ«¿õß¼õáÿñoípó°ïO–êgtëW_éýÝV³œ¨pç+_|½sea†‰z?ðBÀÏï?N‰« ªÚ—CâÞ0(Ç‹÷Œ¢°#ŠçÎ!xz,Å/3cÀ“ø‚À§T Ãêÿé?ý§½¿ø[¿Ò\X˜óþæï¼ñ÷ý·'Kõ=¿"ƒSã7[Õ—V×wOþÊ_û¹é.*a åϗųYn,á‹3^Íú3ÒÀýy`F0Aº¯Åfø9عáÂHdÒš¨3?Óã‹o~¥ùñ'w“Û/ßôf§®k™4+" ü¾ µf£Ò(UGÓ“ÊD£Fø?Wâ ®b‚Âñ™}Ȉ^ùfhgX@€üÔ9³~#H‘3ƒbˆŸõÎ; Ÿf£Æôd›wÞþþÑí—o6æ¦k k}¾ „WVTµJðÒíÛ•F­b‰ÿs’g)‘õÁ³Ù@NüÂ~ñ³/Åy@ü÷Ç ¾.œ“âçÇRÂ0 Q¯QªÖ5ÀÌô”W)yµ#´ç›Ä“• )%'§}³8¿X+•B¤”?s]_$üñÇaÎÃj °9wŒ´αŠº€ø$9ñÍÏ‘„xžG¹²tõzS)…çy4ªaSíÇÒ7F c ´±Ïû™Šþó?j˜ ΓEâTŃáYŸî_ÂzHŒ"~‘ðŒ 66B¦ |j¥$ã$Áó<´A£„?üäyñ/N.]6´­àBFÐ&c‚t¿ÈBH"#ºvÒ_õ\nàsˆÿtß“â ñ‡%€‘`táøE—Œb4P 9R¥Ÿa€á‘þ8cÌÀ-ž?ïÜy×ì ”#¼ÒÆ26Á•1á•6‘•#ºR¥4Ú´û<Ï(W*ø~ØèWœ(ŒÖ#Àånà€0,Îa)' ‚ß“H)FJ#œT ŒÆh…V côOŒ¬Ø—ø¾çyç‡Ç…  µ&Iúý>I’ ”r!G=ð*ž»èºR­ ‰Ò$‰&Qv_)C¢ *±A ¥A+2¥Œc »M%A¢”=¯ì{¤'iwÛ,^¹B«ÝEkÍîî.{;»ŸbÜgÇ ? °Ä,J)A i4êLNMÒhÔ @ H£‰£>»»ìììr||C“ìE†%¾ Ùl05Õcb¢qáýç2€1†8IØÞÞæéÓ§ìïïEQÆJ©ýQ¯Á{Q¬ˆcm÷#M+T¢PZ£"»AÚ¬La¦IÒ\„'Ò“xž%Àc¿Šç‡„å''§Üýä.÷>ú€í”S µ(î)þlÆ·¢0ƒR"Ú'…ôåP29;ɾôE®^»ŠžgÅ¿“ZiööùôÓû|øÁÇìl’ÄÆ}ÇÙ™:˜ ¸R8o†³³m¾üåÏS._ÂóÈ| Ä1{{{#þ…et•hOxøh…7¿p‹F£~áwœ·=ïÜ7¿ùÖ×·XZZÄóÏôç^BÍf“k×®ÑívÏ|”>—$ I¢HM?VD‘ÕËQ¤IbE;  …U:ÕéqÆÝB¤†ŒÈô­” …Äóð%a¥N¹ZÇà¡5$ú'£SÇÆ ´AiH4xœÿžáìŸD”úiý”ñÔÉ¥ Ðívi4$Ir®Þ¿è|¢4Jâ$×ûqbíXi’ÄXƒNçö€Ö†DçûZk÷`SÁÙ¹ ¥ ÕíОœFú!A¥ÆÔì,Ÿ}øŒÓÃÊ¡¤^ XZh!åyÿõóÃÃ>üx•ýƒ>F@{jЉV#=”ÃÜŒÿR4’r¥Êìü ßù³9><Á÷$ÓSm¾øÅ;Ôj•çú-wï>äÞ½eö÷899¥Õªqûö-|ß»0žs¡(„ÈÀaˆ÷"‡:oÜl°\îf…I÷qç¬útÖhç (mPÎHRÃQkkð9f±^€µ-mŸv¥R%(UAú”k ®½DµÑâ`oŸã£c¶·vùÎW¸2 ׯvžëï|÷.‹W¸z¥E­V¡ÝmÓžFÊeDæêÅꀤR«sýæMšÍœŸ°½µËÿõO¿Ãç_ŸçKo¾réïxòdo|ã‡ø~ÀÂB7zÔjez½6ss3”J¥ ƒ_—zý~ŸãããLü[k~´7¾Tjåk;Ã¥³—R†XiKh•KKøtß½ÎÊÏGgŸã¶‰ýNáA«Óf^A«kÒ§T­39[¢3­1Zs|tÌæ³gÜûäOþô_û•ùç"z:Þ{™í“*_ú•Ï3·¸@­V#ß#´°À ßùÿF8õ”hwz4[mŒNPIÌñá!33øÖý€«Wf™šêžû;>øà3¾ûÝOxóÍ[\¿¾@·Û¦\.áû>¾û-žç‘\ g.4第¬°³³C¿o¿8ŽQ*qú=)èú„8NˆâØn£„8QÄq’LkVÁ(÷`”Ádp'¤ú^ =ÄÒ3¤ÀsFœçÙ}Ïx¾äþ»}6ן25¿H–-pEJ‚°Dµ6A¹Þ`¡Ö \kðÉ»ïô˜×_~nx°|ÀµÏ}‘Ù+×h¶ÛÖßNhRØ ¥ÿ©ûç˜ÁÚ0!ž0xÂZñÕJ…D)®>^ãáõs`kk‡?û³OøßøÛæÑÇo±þäc¤ç#¤Dza©Akj‘¹+/Ñ›^ ;3Ï exç»Ç¬=Ýgn¶ù\ pp"©6&KUŒð1H”q®¡>'øSÿ^QHÎ)•B ¼€°T¦\)±»·?òû“$á_ü‹o󕯼ÂíÛ×éõ:AðB¹›KÀV«Å7˜žž&Ž‹† ûVlj"ŠÝÌORÿ?!I†ŒÁÄÚq¬H”¡kT¢Hú6ø¤í"eö`tì~› bð<‰”)žç3=YÂó<|ßCJ‰/%~ÐG=fw«A½=E­Þ¢=5ÇÕÛ/ñÎ÷¿Çô”Á÷Çx¥Pd–¾6‚DŽûŸ'þÈ=ÈÁ¸ØÉiÄþÁ ·®–N¿ÿûßæúõ9îܹN§Ó~aâÃ% àù>­V‹Z­6àãÃÙÐn‘¸±¶ÛTßêãÔ33ưŒ`=å˜ÄESõ‘:³lðHÙ—Q€v¿ÇJ¤Xk@P®Ö «¢XÄ¿T¥7·HgaOï=â•—'Ç~h•Ðpt|B?N()ƒ‡°é_9"ê—ºä×l¶È2Eq«1ÄqÂîî>ëë{ü…ßzíÌw?}ºÁÑ‘â×ý&SS=J¥ðÇÊÚ^êHicÊRÊs‰o e@¤gÚàù6¼ë9k߆} ¡1™®•±³H[FɌǂ¡g™D9FH™G寡“>ºà(m¥‰v¶‰ÖŠ(lmìptQk6iv& +u¦ùè{O¸skü‡67Sew{—ã£cJ•:!ÒJƒ‹O I”ÐIª [¡ßOØÞÞÇ1þˆÎø?àsŸ¿Åüü,ÕjåÇNÙerzzšÅò®Ül5Nä[ÂÙÙœ{*ù;ë>uýlŒ_d!Ë ¨T‚‰nGÅc•Ý£\žÁ%V´ròTcÐH¡‘€P*y„µ³·Þ`fñ*Ý)š3‹|üÙ#^½=5ÖC»ýÒ ÿú[ëìììR›h#¤5eA·£ûÜ¢4GÇ'llì03=qæ{?ýô!åZƒ«×©O4ð¼‹}üqÆX^Àòò2[[Ûœžž:ëÞz§§}úQD¿oÏEQL”Ä$qLR˜‰Æh—º5 ÂeSl2Efñw)SkßYþÂYü.»Vö¤µú}‰,I|_âIÏn½bx׿ÐX<8Šøá'R®OÐhuéÍ/ðÙ÷qç–Áó. •JHU°±öŒöä ^P}eÇâù¦3@³³³ÃÝ»÷\(øˆÓ~D¿Ñb—pF`’ Tâl„¥ ¨.%Òò2!ðœ4ñ<鎵/%)¨úžÍõ‡Ö\´òÏÞs‡‘ÓããÖY_yLe¢KXoÑžYàÞåë_]ë~ñõþï¿ÊÌÒU*õ‰Ì%„¡ÀÃÏ(MElnlððî#þÚo¿:ðÙ''§|ö耯ý¹×h4›ÏÏfûHÐÖèü‰0@:¤””J¡C¬x„§ÇÁ)â¤ôB¼È2"FH#&‘H¬o e €Æ%h,*Fz6E,(aJ!¤´Ì‘€'µõ ¤±^'3—ÏóÀ/_t¼öR—?xg…£Ã›Ô;SLLÎr÷á}úý„rù|(U:êµ2Sõ#Ö×Öhö¦ñƒþ™`Å­c‚D+X~¸L§399h{|ëÛï²xm‰É™iÂRÜìÏŒ?÷‘Úm…ižÏ ¼Ð Ãv»çyÌÎÎÒ‘C÷ĉÅôÅÊn‹FÜ@¨è¤i_còàPŠHCƒDN]°' ú$§Xª\tÐ¥§m¾@Yë“ÄZ()µµP„±Éið=/ ¾åŠOµ7®¸Pd‰¥ˆc•¹}±2(Sp³$OîêÅW¯(gèŦŠr¨¸rŒ`MkH*‡ 2ƒ¹€”ðNè ¨âÅ©[hŒÃß›‚Ô°Áª¨¿M¢$I­9I¥ÙÃoÎñéýMî¼4^xøÍW:|÷Á*½ù%J•*Rzƒ:¿ÀF;Ý¿¾Î“ûø¯ÿ‹ÁÙxxÄÃg1¿òµ…|öˆÑõ H‹@¥ØÛÛcss‹½ƒCúý¤`õ‰ê<‚4ýë@ é~ U*å³ßœ¹fIƒV Zå³ÕQŒr‘D;C=a.à#q[ ¾ƒŒ§ ?°adßÙï9H¹ÇÆî:÷ïÇ̾T",ÕhLÍñö'¹óÒxòöK³|û‡³³¾Nm¢ƒçx¾ÉJ+ööXy´ÌõiÁÄD}à³þã7ßcá꽩iü0Ìtÿ8³ÿy¥À¥°ðÝÝ]îÞ»ÇÊÊûû‡œœö‰âˆ(Jˆ"[0’¨Ä˘¼Ãg¡Ø€…3`‘{Ò³¿”HOà•=»•YüÖêÿq!ÜÃçç¦ ïýûÏ8èÎК½F¥=ź7ÍêÓ=æg[—>H!Ÿ¿YáÓµ5Ú3s„¥Ší¦R ÷ ±![ëë<}ô˜¿ü_¾>ð9{{<ÞÐ|õÕª Þ€å?Îì)p¡ `=€2íNm$ÍvŸ~ÅI¶c·búql B ³ºÛAÆ´Æ8, 1Ú¢„´Á;«…—²ÌaƒÁR8ôÚzéLN D||ëB>‡9,¥äÕÅ„Gû;Ô'—«M&¦æøþû?‹¾ðúßÿçØÝºJµÑFz>¾ózR  ´âpÕåe^^ ¨VËŸñÿè}®]¡=9em !³j¨qˆžmIÁu˽€N/,33çf½ÓíQ’«‚Øy‰ÒDqQE Bsî˜úL+B¾sc0ÎÊÆ ÛX£NÓÁÊ…†µ;¶Á" :F…6Xä vë ƒçJ!øÕº q¢KUª-798ìÓœ¸¦] ^šNØ~ºJ«7C–iý­K÷ÆýS6Ÿ=cýñ#þúßzcàýÛÛ{<Ù’|åÕyjõógÿ…[÷UéñesàB#PJI©\¡é…Të†8qîš‹ûÇ™.7Yn@)C¬ÓOêgüÙãÜÌ“AJÛÏÍÜCCž(ä,ˆh…ЉNЉµúUb÷­Gcb• uâð†@•©kÉéñ12¨ÖÛÔ'çyëÝùs¿víRøê›KüÞ¿[ará •zÆ»… J%îí±öx™ÏߨR)—Þûþèæ¯]¿töÚfÄ/›1DÀ%é` Q:íÇv–ëœ bg´ [ý©„ˆckÝŒ©‹˜ ¾gÐ,>²XAêòY¨—…”;PŠqõ©{˜¢£˜ Àâ WTîçWëÉôñ1q”Ð¥ÚÕî,ï¾߈axiÜŒv»ÎLõ!ÛëϘèNã‡%„ðœßÊÖ³5vÖó·þöÞ·¹¹ËênÈ—?·@¹Úx®Ùo.9÷B `Œ!Šv¶wyº¾ÁîþSÊØ{&ù+ƒfù‚ô8N™ÀYþI¢Hbë««8q%â 0Íc²Zƒï ëK{yÀ—>o²ÿé¢qíÊ¥?y—g4Ú]¤ç¡¢¶ž®q¸þ„¯þΛ÷?[ßæÙQ™7ßX \«Ûì&c¿@t3LüT ¼€çùTkuffçËUNNûôûñèwœI‚A  TB¿“$1‘‹˜XgµÿF¥è!+ç„ÑWh!\;ç ȼ®Àz^æç{žÄw³Ýs³ß϶A`.­“KÇõ+=êŸlpz¼OPmQš˜d»<ǽ›¼tc¼ÀÐ/¿ÖâO¯Ñ™Y@J“ýž-?櫯M¶áMÇ~ócæ®Üf¢ÓÃóà ìñ<Ä/ž7 2ÃELp¾R‚ i·»”Ê5fN#ëâ%Ú³ ÿÓàP¡éCœh§.Œó” ö8´Üfu„:?VÊÁÒ\½`¤ 6AúŠ ¡`•{ZkgZ½oÏE­Fã …4 O¤PøBãI|M©"‰ÃidœXÀH¥I}rž?yÿ{c3Àë¯.ò~ÈÞæž'Ù}¶Jû _ù+_¸oum““oÌ-P®Ö@æ³ÿ"÷î~È×¾ÐÅÊ×þá}ÊÌ•×h¶{È „Âì?c øœŸIs¹8_`­ë~?âä´ÏI?¶µýYØW»L`nÉÃÄY‘ˆJ‹>tO2&)ÀÁ‡ŠES‰ ‹ ¤®b¢ %nÆ'9N1K9FH÷µÒ m¦Pš”ŠÐÅ| oð¤!ð¡äÓß=fÖÂ-üJ‹úäüöûüõ¿8^)Ù/¿yoÿÞ»œlãŸlòæ¿>p}yyÍh‚7fæªU„³üÇ룈œºx>=~.0Æ?ŠÙÙÙfeeí]N\ƒ‡$‹ó=A &Ž`ÄG´+ØPÊX`g9 8°™ íV–¶T󥤔é™GK¿fõŠð=IàÛ¸êç•.0ÏŒ‡ÇÿË¿ý”ÒDjkšr{†÷>¸ÏïGÔj¥Qn`ÔjenM+þä÷ø;óÍ3×ÿÝ·î1{õs4º=‹#@œ5ä†‰Ì C ÜLjû.‘£ ؈㄃ýVWWXY]áèàˆ~YO ŽQ‰5µv¨]l‡ žå\·@Xë_J,‹Œ€Ã¾ˆéÿIZüiHùyG£Vâåö*+ÛO 'zµåî<ö£üÖ¯^ë3þܝ߿ý÷óùÏ ’<\cW·Y˜™',×HÓ½Ï5ãSz] ²{Îù}çJ°°ðF³ÉÒ•k4Û=úQlEì2~ÅW<(¢8qb?õ ä;q¡}‡®uÆ; IDATL4*±zšBJWb @B Hci«é°~à!2O Í øo $gaf¡ƒ›¾g%„/ B$Bö׿0Éÿþö>IVjT:³|÷³û|ý«f¬N#33þ‡ÿþ?;ã}üá·0uå 4ZÝÌò5k/ëçžsÞ36@ oµ:”+ Gp›ÏŠ@ìt~jýǹ âÿc—ó/ÂËÞ@ „”•¢ƒQæ)è,–ª©Ø<ÁÈ`ùK£‚Z Û}E ¬‡HM$Ôšud³GÇpb’ƒúï|¸Ê›¯/^Î@¯7h3|vo•}ÑcazÎÎ~!ÏÎxFÏæó¤H€Œ1Æe€ü Ö×BB#<ƒÔ •Ás†œ|e_‰2. TŽÊs9:«( ‹”¶ •ˆ:C 0Fæî™C¹m2 U”RˆÌòW— :q ÄJc@NL©ќ”üC‚ýMür ¿T£Ò›ãÛï>æÍ×G=½ËÇ~g™Ék_¤Ö´EEÝžX87D§Â¤?s\”c1@Î=6î~rrÊþÁǧ}kø Íò"î D]˜8I ¥á‰.ÀÄò$QÚö%õ,º(Ï!¨“ 9m,•ƲŒ`®VÐ £ו#A;«=¡‘hßIiðð}A oCË/}A(J•u¾÷äˆc?¤Ö[ 41Åæê4mrýêøeå}²Ì‘×ãÊôaÅêþ Åü¨sf £ˆ>ÎìÉé§h— ØÞÞæÉ“'lníp|ršá¢(¶ ÇÖ6ˆ#¢~B’ØÈ_jªÄÖ jVëæ¿H€- 5†¼ œÕë¥ÌZ/´ñR˜¸õ|ÏFù¼LÏ{îXà{y¿Á`ŒPðÅF¤`™o¯?¦ÜèâWšÔzs|ëí>7ü»?^¦{ãKT-¤Ør²‘ÏÕåC„¼Li™Ý?†Qš(ŠØÝÝesý)‡¶YGô£ˆ$Î;‡f¥ÙƸ\€Á7®%@ø©[çzýdýt-±¤sßRáÇõ~Òã—^Ÿåÿl™þÑ5üÎåö Ÿ¬N°½sD·S¿ü€O?[aó¸Äl³…_*#\º÷<‘}®QWüÐao/Çé¸0èÍV‹k7nÒ›šã4гp°MýæŸq–³×ƒÞAŠ2òú©*HÏÒÁ‰²E:eE¹ýñÚ‰u ¶Ì$m¦Ðs•@RWaæ¼ß·ÍœÓŸy.CèKÂÀfßÃ$aÚm+ô¨TB¾r=áÃÓª@PïP›\àÛo}Â_ýíÛç?ÆÂX˜ï"xê"”f,‘=RŒ_ ÎÐúñc‡6)•jôU€8D°Á†~Søw!œGs[ÀbrTpìCY^Àõ Ês jÀðˆ¤¤¼€Îì ¥5:)ì«ÁâQ£m¡¨kÌF¹wÅcgg‹hî„r¥ŒñüçÙémÃD¿Hç?¿X|ƒKãJiÆ Hcð°ÏMHë³ ç» m+~,ÈÚà y "Ñà„¯‘‰F8†À3 ì±ˆ5ÂwûÊ …TéB˺Ùý(IÆsYFÊÕ¢0(ŒQ!ÐBgÍ„g+mÒÒFØê#F"PôOcüg”ë=‚î¥F— 5Ïwß~Ì×åæùO¹0¾þÕküã³ÊÔµzã{g üÏç—‰ÿq¯Æ%°ð„£Ã#v÷88v š¼1T»ÏZÂÔAÞf¸X4ŸíIœKëX_>Ãüå0Æfø„e>›é³U@¶¼ÌXh¸Äª ( $¡ï‚E~ᄞGxîšÇúî¿ÿÙg¶/q­Nµ7Çw>|Àoü²èÍÞ˜šl3]¾ÇÞæ3Ú½I ñˆü³>@Åú{ßû±ÂüæoÿçÄ1»;;<|ðµgë¹âP[ Ú· !£˜8Ilf-V(“ÆúŒ1`Ò>=–Ë¥‹K)Ȭ-L¹ÐÆó\·Àˆ©àgÈk,ž5½‘ÿx€ñŒÍÅyÁ½wŸÓÝ9ÊÕ:åfÃÊ,|¼Æë¯Ž‡úÚ—çø—ß_ajÎv՞Ĝª¾T Ÿ¸düÿÓ?À“‚ƒC“€Ì£ŸiK—Ñ?Â~•\oº_7Ð8»7/\´ûÂÖ¤×Ü/"½¯ðWìa¯ {Mà`ã/Vý“¿õz…þÁZÅå:ÕÎßüþÆØïéæ<áé{[ëÄýÓŸÊ´?ïÓ®®é¸<Ünsõ†¤;=çbƒ ¨`¨åå`y8É4f ª—õ tFŸJÒVqN=Ä…¶qIqß~*Áe;ôéÄ1EãJÏ-ÀÓƩ'Éľï‰Lüû¾$ ¤]òÅ©‚ÐåÂÀsñ…|vº£‘^¿TáîSÍ·¿ý=jµ|åîâ³,n*ì²µ¶Êäì<•jÁh#ò"†/N²ìÄÙÝ ÇÅ à{Ôêuü L«“Æísˆµèóv1J“Çý·æõ“ôZš ˆMÆ,y¡¼_`œ¤5‚Î{HÏ«¼b8½W%y-a¢ Q†+ЮÄLe©hÕO»œš,þÚy ÂÙÂDmI¯‘à‡!õÉ:צñ‚:‰ˆŽ)© Þyçô÷»Ì]½J³ÝÆ>ce—~Âc4ÙÇ…œ²<Ƶz·½™œ;UØãŠ2\gïb2(.$ OÅH™ÒvA gô¥÷ŒªÎÜiU¯vU½vË`l“ÔÌZJQ’P2æìöÜëò¦?µ+ÉAp›éj!=¢ƒ-öŸ>¦ã=|¡Ïó=ÅþÓÙ~v“ÞÔ4•rÉ6Á*P$Q‡®â”)òÜ ô½ž$ CZ­‰2T6Ôl“È(Vôû}×3Èv M¢ÈBÁ›~Mb˪sÒn^„vŒ‘8±)üãù ÎöE¾M‹pÓ™þÓ'ÓT¯ß Ôè`TÄÉözãjC³ß˜ñJ³Jf••æ–©7ê'_$ø50 -†ÕÆÐ½Ãã,¸›¤„A@§ÝÁJLͦƒ-@$‡|§ $Š…¢ƒ} Á l«ÒÂYÝaòÍKÆt–"NóƒðpÛ3P¡“9¤o‚Ö1" ÷¢²À‘ÀPƒídPW@*ƒ¥€¸÷:ÓW ÑÁ:OÓšýÆÀGŸI^¹¥Ï<Ú‘ Dl=þˆ›×èNNR)‡ºH œa1¨† ~ž7q†²6‰R©VðÂõØVéfñþ´ß¿ܦ=Ç`±hÁ+H½†¼¥Ìh@H\`„¸À©‡3=g=‚$+Õ…Å,´ËZ !…„;{¶ӹå4A©Dµ3Gköµö4è„“í5ÌÆûÔꃳk¯Dßo°¸ÇD=‹ ÄécÖŸ¬0»°@½V?MA_ F÷\fx^ ýã`Vq;ß…ªBm@b2ë‚ ÀÄ ¥ä™«Xðûó.ã¹G0¸ª¨Îf|*9Š«†emãµÉŠC2ˆ˜RÎCÑE¡–o­Aiœë—€ŽÄÖò¯t©Lt©¶fðƒ§»+>{L7x4ðÜŒcÿ:s/÷8ØzÀãyÕÒ!ëî²{ón—r)ÈÊÕÄÂç¶³3{¤0çóÀ¥"÷övyölƒ½ýúqâÐ>®& m Û”oš(‰aãÉ“$‘õÏã(¶„+ÎZbù]j•¶‰q®›pÉVLm_°äH{Á¾O can~îŒÒÝëÑÒÿ%|?Ä$§œl­ÂÆûTëýûv[´¯~ŽÖTÍR•þÎ3JÁxR Þ»ËæÚkÌ.,P«ÙÀPQ ö 3Œ˜õÃ×Çf€ÔðŠã˜ýÝ]=¼ÏêÚ*û‡Îè³mblÀµ‡OìªWiÏ|Ad=`ðÙßfŒ—‘10qÞ¯ûÙŽ8‘†·˜©¶ð¤,õ=Õp—µ÷Y¼v…V«¡OÚXó #Œ:W8fÄñyã|O­QgvvŽRZÅYaÈ0ð#)nÝÌŽ]™8ŠI[Àª´¤+]ŒRZÌkÇ4Úê_ãQi5±ÓU€5‚Ô—œéé~êÓ§3þyÇF†ÆÒM*]„Š8ÞZ­÷©Ö†fÿI‹Ö­[´¦æ¨M4ÑÑ1;“wHöVð½Ë B! Ï>aóéfæf©ÕÊ9œ7ÛÅ9ǘ—ò>ç{Ï•RJaH·Ó¥R©1wÙTpæ(F÷òãáÒ°´iD OAƒ+„Øýš·‹)´IÄDeF_Iòþ€IV¦sÃO¹ð¯mA‚Ñ&õ tìÀ IælÑhP)á;Asö*a©ÌéÞ:kèú#fõósKÔ&Ú”ÊeíIºóWx¶Þ£]]¿”JÞk³tm‰VkÈz#Xº\0û‡˜a˜aÆf°EaóÕÂ#+ƒo5ïN[Žƒb!h¬ ÐïäqmcDöžDYÜ€rFcZ)œ‡¦L¶“O”kH¥ pðty›LÊ$Ceû•Xuår:ý£ñÊU*Ý9&f®SoOaT̉›ý•Z4ð¬vŽ;tîÜ¢Ù›!,•ñƒ€J­A{f–ÍÖ-L#Ër^4|O±¹ü›Oo0=3Mµb{ $!ç}çù—¬è£ˆÓ“SŽ]yxV:TŸS$š¨2ž>\Ñhš1L{ÿ«T¨´Pºš(Ϊwy€‚ë—•…ëb£(•m‹Ò ³Mt‚Ib06N Mâ\@ óMàõ(×_¦ÖìáûÇûëì?}DwH§k#Hê¯Ð™]¤:ÑÂëû“£Ç<]^añê [<"…˜ýçÍüQç_H n7[\¿~No2+ O×n•…¼Áã4Ðc2i'1I¤]æ/7ÜÔÀp&ó ŒIIPîË-ü4H*Hû¥¦,HT¼…áÀž¹BgáÕ‰¨>G[+èÍ÷(W‡fÿiîvö—ËøR: ®3¹Oc¢ÅÔü[OÆb€rxÈ“ûw¹ùò5¦&{ þ±Ï3¥°ÝÅ_Œ€v§M¹VÏcý™Q7ñK÷ãÁø1y#ÚÉäÑÜQˆû§žAªë5y[8cœ‡FÿÒ®àνÔÚE óƦ`Çh)À¡T)Ó¼ºD{î¥RÈÑÖûkFÌ~‰i½Jo~‰Z£Iàû6ÈT¬^¯R¥35MgáŽ> D£øÐ8ܺÇÚ“W™_œ§V+#Ex–ø#ˆ-†®¿° Û¨)l\Íóì* Kغàj2æH÷Ó$Oê9èB£ÈB'<)”{ … i£H¥]×ðt›‡|-l,q+åK£E¦Þ@Ú(Rƒ_ªPïÌÒœZ¢Úì¢âS7WÐïQªFôvO{ônݤٛ¦T*¹eîl;/c&:]¦çùøÑ,%Å%‡'÷qãÖ5z½6”‚Ñj`ˆØ£˜à…@kMÿô”ýƒcNú—·Šµ½ò$ΙV±éL7ƒ1€áV±™û—2€l›¾PšÂÏ•…•vèd[—O;×Ï!},(büÀ ›ü©9ʵ¾'9ÙÞboí­`eà¹(-íWéÍ/RkLØî#3Ÿ\àQ©V™œåéÜúkO𽋄²B6V>æÙÊ-æçg¨WËß?—øç1ÁeãÒná;ÛÛ<~²ÂÖÖÇ'ý'gšEŸ¦ ¤£ÈE× ".è÷´Û§vk:|@4d–~ŠF …‘‡°RB€!,èòÔ po+¬¼ù¶>ðÐÑ›«¨÷(Ugÿ^Šé;nö—Ëvö ¾'l<Å—%š³W–øøÉ$uïéå?fƒÇ÷sýæUº&"ôtžì5Ì©Jü@kM¿ÊÎö«+kº a»p”EE9*(ó¬È6&]¤A€>Œý¤#ªGN4Æüá?éqùxÓ¯Ñhõð=Éáλ+hùC³_Iüîkôæ©7&l_ÂQ³_©)$õFƒ©ÙYžLÝÂì<30”°òàcÖ×^b~nŠj9<#†_Ï£ÿaÌ•CoܸÁäÔ4§ýÂJ ™¡—§rSË¿ï,ÿá#òÅ"´‹ìé¼@´$Jñ€Y»y‡.²=’Bw<á„VòåãH½‚´’Ü3È¢ê ¦¯Þ¢Ñêa’>‡›+$ëïV’ç²M3wå:­ÞԀ¢ìOJ$!í©)æ¯]ãÓgïQ+íŒAP§«,?XáÚõ%šÍ:‚\ \¤ Æm‰tñšA¾O«Õ¢V«¹¢._2&*èúŒYt±í }ƒÓ%c2ÀGb¥GšKH+޳6piî_¬~¶‹É—‡1:—bá¦K‚J…Éî4¹«”J!»ëOØ~ò‰`uà™$Ê£<ù“ ‹ÔM‚àììÅR€ø4Ì.̳ܾÇoE  èóà³¹ýêufgzV ï™?Žñw)¤L`‘AvÅ­XÙåYe}m¥±ËÁIAb+GÇ ñ5Yë˜â¢QY 1ÙºÃÅõRt±JC¿Yo@×/0ín Îp ­óèb– R ­…Û·vFX©2Ñ›¥9¹@¹Ö$>9â`c•hý}åÁÙO³tízVÓ—êþRÙA¹R¦;=Å—¸÷ƒ¨„Gcéh÷O®pýÚ͉²Àç©‚qÇ…6€RŠ££#ö÷÷999É–Æÿ»lœ²=ãlæ:ŸÝäа´å‹Åô™÷gDÏÔFÞ2m £Ý’5J%èĺu:qñ~CÆm)/&…?0Tš]êÍ¿Hx°¿¿ÉöòC&ü³³¿2ý:“óv!§âìOgþßói¶ZÌ-ͱüɈ>‹HapȽOîrûÎU¦§ºTJRÈ ¥ÀO„b·rè£GØÚÚæðð˜ã“¾ízÚç4ÅD±ˆÄ¶eL I2,^âê -4ÜàšC·²©H¡NΡ„ Ç™NiS3).`t¬ùì88­âK‰/%êôÝgOè?{—êÐì?Lf¹~ííÞå¡Ù?Ì£l‹D’T«¦ff™¿~›ÇïÝ# úçü²Á±ùì.+˯põÚß½¼/ 0tÍ÷˜˜h07?ËÌÒm´rž—p÷ÓX}²ÆññF«Öýé¸Ô<88`gg‡££c—ów>¹lâTLÞ»wæu90W ƒ*@e^„‹¤ÕÀIâI±-ñNm´ÿ¿ÖCâ_9›#Ùð²Âó µV‡ðK‰îÔ,Â(Žv6xöèµ3³? {ÅÍþzƒ ðÎ ¿uð(ï`Ø#ðJ!SÓ=®Þ¼ÊÚÃ%¹5ÁNŽV¹ÿ ·n-ÑiÕ‘.0ô¢c,/àîÝ{¬®®qp°ÏÉI 84Jãý.'–IŒQ9@³Ð}Äîçß‘„¶P:ëb²¨ÝÙßw. „QÇéIͶ‘‚äô€í§O8\{F88ûûÌóÒµ+t'')—C»$­ÌÁd9x<*H$„ÇD³ÉÂâ,ÝénǾßç£÷?æµW®27Ó¥V±¡—®õzn·C­Vµ®^Çq¶˜Dßõ Š¢ÜŒ£ˆ8õtºØ³.,-K¶Ä¬6´ÕÍÚéj «%º‹EX^[ ŸK÷Å* {õ :Ý)O°·±ÉÓ÷©zÏïK|zW?ÇÌü<õz-Óý£€g˜à<(ÚžDTJLÏLríæ5~ðôÂ`¼ÀÐöÖCî~ö˜×çiMTñ½2㬅4j\êt:Â0d~~ÞæÚ †Vf•+3Ø`(4 õÖûÔ†3]#żH ÉŒÀ¤p-qµ€.ö “Äåâ EdŒ& 5;Çõ;¯ÒêöH¢S6W–Ù_}úÐìÄ, Wéôz”Ê%¿Ð£H ¦]/Tçy¼À§Ýn±°4ÃûÕiL|<¢ùÇüèGpûöS“-Â0«CÙs3€'%Õj•R©4 Æ‹[clÃÈT¿§kü ƒŽe !©UËÌÌL²tí&>~ˆ”ãUoo=ࣲ´8M½^£\.¿P‹Ü‹{;W*í<ŠòûLæ¯Ç:Åþå «ìM žÆÒdP\4ó$P¶ÍPA c($„\œßµvÑ®–0ÅAXb¢Õ¤;³ÈD«‡”»[ë<[~ÌþÓw©…ƒý4nrcqŽN·K¥\Â÷DFða´Mšw¿L ŒVÖìöÚ,.ÍðÙ„rLø¸wÊÛo¿ËÍ›sôz‚ -(}>UpI£HÅÞÞ[[[ÇIfÔ)—ç/úÚq<¸–`4°Ž   ,—V ;$QÛ%j£((ðÈ€p(—ÆH¬áˆð¤‰3(í²õ¥r_üóÌ,\! <ú''l®=áñ'R ¶ÏüÕiR«Wíì÷ ÄfÎ_ŒÍ60ԨטžîP®´ÑÉx °·÷˜ýè³³“T«êõÚs«‚K½€ÝÝ]îÝK½€ƒ¬8´ßïE}G´Øåïg'¤)ÛÔ 0´µøój•3íÏ‚íÅ; Ê(•+ %žô Ëz ·éMÍS)—1IŸ­g+<úô.ý¨”Î~·6¨”K¶y´'²æ]£`×r3œ'FÙA¹P¯WiLtØÛ/4 àyo¿ýss]šÍKKó”Ë¥çRÚRJÊå2Ýn)%§§ý!bÇ™zPiHœ¸õÜšnV[Ÿ tÿP®4Í÷[§@‚Næ tÖ[(wIƒM.øTo÷¸zç ô¦gñƒRúaHm¢E£ÙÁó=v6Ö¸ÿÑG<þðO©–F[Ý*9%‰úÄ.€äYâJqÆV©­0’Šú?Íu¸ð´¸•Þwlð­o½E«U' ff¦(•¬³éeãXxH§Ó¡\.EQæŒzC¯™gà4 iIDAT©•ëÜ‚/Zúyà(]ëGg)b]x)C¾ïlŠôž´Ê8]3PxÐj·˜]¼B³ÓÃóg—X› Š"6WŸðÙ‡ŸðÉ[J58—§N¶X_YefvÏÃ"|áyx¾o]8Î2ÁFÁ·‚¹Q$Fc’˜ÝímÖŸm°³5^éðØÙùŒo|îKôÚk}¦¦ºT*‚ÀÇ÷/Î÷]¨T*„axÆ ~:Ÿ/[Ìz9«ÂymDŽ÷ÏΧ„Ï»„è 4bKЂr¥J³Ó£Zk ÅáÁ>û;Ûìmï°µ¹ÅòýÇ,ö•àÙEÿ6ꟾó#@³°4ÏDÓÚõ‰ Ú6A¥êzŸÊ5óÝlï÷9ØÛåèà€“ãSNŽŽxº¶Î»ï|ÊÉñ2¥Ë»ÎŸž§xüø-þÕ¿ÚåéÓm®_ŸezºËôtn·œßZíR/ I’‘³?ŒŒJº‹HŸÔÇO÷Ó²ñ¬iTŠøQ)T,Mí kOyisH!¡ÝíR«× R!:=bíñ>zï}–ï?dg“@lP /ïØ!„¡Ä]>yk{ïOÓhµi÷º\»y•[¯¼ÂôÜž’âôGÿL|ƒJbö¶¶øèÃyp÷1[›{ìíî³»ý­v(ñÛΞ§88ø„?øƒ5Z­ׯ/òå/¿Æ¾ð ½Éî¹ï»ØLìšAëëëìïïEÑ€]ÔÿçKÁiEq¹UGcMÜOè'‰µÒ®|¾,\^4j—rÛ´U©-úô<˜ž¿ÎoTÿ õj•ÓãCV?âÁ»¿hªÏÙ_PC¥tæÓXÛÃí—™™bzz O†6½Ëù Ìa11Ší­M¾÷'Ìêã÷râ¹$ÑObÁ>GGû¼÷Þ}âøˆÅÅZíV¡6sp\êìííñàÁVWW9::"Š\«ø(ÊB©ah“Eƒ Q”/:žÚ¦CÃÎÖ3N³FI1®‡1Έ£>F'xÂàË‚Á7Ê#8# £¢þx( wD‘¥Ëyć1BÁÍf“+W®Ðn·3Up‘% W2Þï'® Dõ]ÁhŠóò.¥”Ë ¤Ì£ ¶Æ d,•ž4tº=êåR€ªU˜ŸŸáéüìn'¼/¤õ åŠÇµ—nÒn5 C/g€±€ó$@É—tÚÜyåÉñQŒAfɯËmöñ†çA£ðÊ+/ÓjMœY±¼8.e€n·K½^ˆ^䌺ž5šN¸´V0³ô@‰X¢Š:ßyÎ(4†Ì0Ô&‡…KOÒî¶™›Ÿ¥R)ø>·n¿L·×ãøè8{/¼Èx"ûc „>­v“©éi*¥ ‹'†Îg,ÌÍÍðµ¯ý*o|þ5â8É`pžx1@Ǩ!¥ T èõÚLOO¹(áhûb¬l`Ö>œ :7|m tœYû.žV;¨r9í<“žÏ˜@gL µ­6²ñþŠmçV )—&'{ŽqÝï¸äáeFŽýÀ#ô*E|Q`ègEøtc3°§ýȤÿŠF á_øJG‡Æ€'OVVŽï¼t¥š-ûÿµwí°aøûgvÇñ+‰ç.â Ê¡Hˆæ@º %¢LCCw ‚Q£ÐÐ]E{Ð $J$ „L9”Ë…DD—ر{ýšÙ™Ÿbc³qì<$.ɉ|…eÏzý˜ïû_;³3çøk!êø! #_ !}¸8Üýçß}(¤Ãíq«?âþñ¯N#‚óF/)ïtºXYY©!Ï ˜QÖyÒ°u-ã¬VªX,¯½òr*¯Çáyò¼åŠáB8Ž|7@ø°¸wÿÇF€3„8á£Dp‡c†ÖA³«X0Ú²hIÃÖK°6¨¦¶TQ’g¶6Ž•öj(ä&P>ÈÃÙŒù4è aùGÂÐ'x”8xˉe 0Úõ¾:DŒ‹%ˆò9cB4‚6vËUTË3 è*€k&84^Û¥ŒdWﻚQ˜ñÑÿö»ï˹w ¾ï!›NFËŸ±ø/·(À¨0 xþÃéËÀ³æq·‘èϾf†Ñ!êA Û;{¸wïËRB†Ó C¬ çí·I¯Ô Ì”ÈÔUäR6¾®<¨+?ç»uK3³š¹6…L:‰„ïG›7Òň`(â Çã;l?á#‰†œoqÜž6Ë|BèÍ¡p.Z²¿Ñha{§ŒŸŠ¿¶v¶þ,Hèz}O|f|QÛk†€E™ŸWi?Õš½>nߛ䉀В{á¥W+ï¼ýVazjÙt*º…º? zIDÃ/€¤ŸPj:& \&ôÈ·7ó6šmì–ªøêëoÊ›Ÿòˆø«&–vëâ ÓJmVÖt3в·ïx3®:ÉV??_àOs)~£÷' Æê³7ç; ™goÜHy^´æÓ‚¡ñþ´’\f°chc°±¹Ù\.þÒú{k=¥H§Èª-úq­L‘TëE®†å»!E¥Þ'bnî$ó9éÛÙkã¼øL–ßWÞὬëÙÓÔ-ÿ'0 ƒ K}èz»!>ß­{÷­áÍL»RÝØxS3쨿üÚ:¹é,Ûðºvîf$|¼¨$ç}u]ߎ‚9*õ´¥J×`õQKÎÉ ’ÞÎXµÔè‘¿>LD·ïÈüþV’Ò2ëštÒ'ˆ4æ’>2ÌLçv‰ð g„qÛ S„@XQ7~·ÆMÛ¨L<ׯò]ËÌýÑ! "Åü|àí'2¾-Œ”o IVZ0«+?pI‘Ð!ͤ•“>Ûk£\ÊLt³¶– ûŽÿ“b«²£õÇÖIEND®B`‚x2goclient-4.0.1.1/icons/128x128/x2go.png0000644000000000000000000001370512214040350014251 0ustar ‰PNG  IHDR€€Ã>aËsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<tEXtTitlex2go Logo}hûptEXtAuthorHeinz-M. GraesingóQBtEXtCreation Time12.06.20071¢"tEXtSourcehttp://www.x2go.org/artwork²rÛ±IDATxœí]{L×÷ÿì.°¼YQT¤¼Ôú¨/¬ˆƒT…¢VÁÖô¡?¿Æ&Ú¦¶ICúGÛ4iš|Õ¶ßVkÕj©Ö*XÅÖ‚HÕ@}`P @QyyɲËþþ¡;;³»wfgwÝOrsæÎ½gçž¹÷œ{Ï=W¦×ëa µZ½ÀJ“Œ `erB ÐhPà EQ;3È @­V8 Ò^:aWTˆ§(ªž& €Z­þ€üÚe2™V¥Rý=eÊ”‡ ~!!!ÃÁ±ÂP]]ÝvæÌ™Î›7oz´´´ŒÆ¿½¸ÀFŠ¢þ Àà—_Cgò÷÷oرcG€‡C¸wBT´¶¶voܸ±³»»{Ô I ”¢¨zù á,?==½jïÞ½cÿä À+;;{TLLLå IGmYJJÊ:ßÀÈ‘#ëvîÜâ >°222îôÿ'Ç#m2™¬oÇŽ£ÇšöÀŽ;|ðh€•r<2õÖ T*]Æ™vA@@€—J¥ú{ðr²ì|DGG;Ž+'ìŠI“&õþ;BŽAå/!!!Èq,9aO¼øâ‹>ƒÿ*h+@ïïïïé(†œ°/"""†ÓÿËÍetâɇSžr8à)‡‹£à½^þþ~FÒh4ÐjµèïïGxx8d2™£Ù”Ì ÀÀÀë…›KtC˜j ’g5É2u:9vqøða¸¹¹ ]755aÿþýâ¼)BlذžžüõéÝ»w£µµUt~–/_ŽÐÐP“÷%ÕðŃPXXh×:×®]+H._¾ŒÆÆFÑù‰.r¹J¥J¥RtÆ„ÀÒàêÊœÈôôôDHHššš ÑhlÆ—\.‡¿¿?X<"22r¹íííèê겚'Œ9>>>fóÉRRRôôE=±ƒ§^¯Gkk+jkkqèÐ!TTTˆRîsÏ=‡¤¤$Ì™3 …xNSmmm8{ö,Ž?޶¶6âçæÎ‹´´4Œ;ÖlÃwuuõeff*'| !“É R© R©…ÂÂBìÙ³ÍÍÍ‚Ë\¼x16lØ "—ÿbøðáX±b¢££±eË<|øÐlþÈÈH¬_¿ãÇç]—$Í@½^Fƒîînttt ¥¥MMMàòoäÂüùóñé§ŸÂÛÛ[Pýxë­·=ËÁÁÁHJJ2›G¥R!++KPã„V€¡&n¬Ñ›»¶ô?i¹Æ÷8ù5¶Ì!00o¿ý6>þøcÞ/mÒ¤IËíóíDDD˜¼çââ‚­[·Â××WpùDC€^¯JŒkN7”×Z­v(™3I“%3ð矆««+ärùPR(À´iÓàååÅÈ?gΨÕjPÅë¥9’W~k`N·xóÍ7ù4$i𢮮.\ºt ±±±¬ºfÍ¢½½˜{÷î‰ýÓLâÚµkœôY³f!99Ùêò%¥Êd2¸¹¹wó$pssCzz:¾ûî;âgD«ß®^½Ê¢Éår¼þú뢔/I%Pl$&&bØ0r¯÷Û·o£¥¥Å†=B[[§°-Z´ãÆ¥Iõ¿aÀÔÔôĉ1qâÄ¡2é^`÷îÝÄ<œ?Ë–-³ÕÏÀýõ»»»#33S´:, ×ì›5kÖ>§Õj­þÑcÆŒÁ—_~ÉÐäñË/¿ ££ƒ¨Œ‚‚› @II ‹–––Ñê0+ýýýxøð¡à¯M, ±ø ±±%%%ˆ‰‰¢)•J¤¤¤/Õ××£¬¬ 3fÌ/CÔÖÖ²Àßßééé¢ÖcV\]]Ïm‹ k»~ãÄ5»–˜˜ˆC‡¯Pe38pàkb+##îîî¢Ö#À€1|||‡üü|¢ü¥¥¥hllĘ1cD壪ª üñƒ6zôh$$$ˆZà´XP«ÕÄyõz=ïI$8p€EËÈȰÉì£dz:ŽÑÕ;¦œK é+V¬`¬œcÆŒ(++#â§  ¯¾úªàucܼy¥¥¥ Zpp0bccE)ßÄV€9OÃ{ÖР“.øÂÛÛ/¿ü2ƒ¦V«‰ ¯¯ùùù¢Y\JèêÕ«mæêf¶Oéï4ÚÝÝžžôôô ··½½½C×===xøðáP¢ï÷öö¢¯¯3 €F£a$®µ­V N'zã@^^úûû´™3gbìØ±Äe?~\+åêÕ«¸qテ¹sçZ]¶)HÆ L[¦´~ÒÆ¿ÿþ!!ÿnŠ–ÉdHIIÁ×_MÄWKK Š‹‹1þ|«~ß?üÀ¢Ùòë$¦ØÃ ±páBìß¿Dù)вJ._¾ŒÊÊJmüøñ˜={¶à2Ià´L@©TbñâÅÄùoݺÅj@RèõzNÍÿ•W^THª½,>Î#¤ÃCPP–.]ʨ+99G%ß;†wß}—÷o*..Æ;w´É“'cúôé¼Ëâ â}\/Ò’£ÉË'm0C…ÐP(˜7ocž= óæÍÃï¿ÿNTFqq1ZZZ R©ˆëÕëõøñÇYt{|ý!ÀÐ ÈÆuß”÷!N´'Is=À:yyy,zjj*¯2Ž?ΫÞóçÏ£¾¾žA›6m&OžÌ«¡”GÀžâ³`i€k} 22'N$v%ÏÏÏǪU«ˆÞ™N§sè×HPP(P(¢/Š˜Cjj*±tuu¡  ‰‰‰óž={wïÞeТ¢¢0aÂA| Ó ÀܹsHœ?77×⤕V«ÅÁƒ4™Lfׯ`0‡SSË\k¤I­VãÙgŸªO.—#99ßÿ= (--ŬY³LæÉÏÏgmL‰ŽŽFXX˜°—"ÄnáÆ/‰k×/×<>Iã˜ZÔ1•l1%lFƒ?üA[¼x1²³³-îÒ¡AQ”IÐh48tèƒ&“ɰzõja [‹Aô\¿µæž¼†t[7º!®\¹‚¦¦&ý7ËÓÓñññÄZ~YYêëë̺———ÇrCŸ?¾hŽž|`q-ÀÏÏ~~~öâÇ$HµÒ9 Ky¯]»ÆàÑ*᯿þJ,ŒE±ööööâÈ‘# š\.GFF†u/H $£8Bû7FPPfÏžK—.å?wîÖ¬YÃð7 ( <`ä‹‹‹Ý«ˆN+€'øL i4œÃkêÔ© EMM ¯ÇGzz: Ž=ŠžžÆýE‹Ùu¯¡1¬Þ`ÊúÒIòØ/^ļyó4µZÿþ÷¿DÏ·µµ¡¨¨Ó§OGnn.ãž««+ËÉÞx¬öØzCˆäää° 66{öì!ÞDBQnß¾Í2!—,YÂkáÈ”GBÇwý ¯¯ 1WWW$%%!;;›ˆïªª*Ör¯R©ÄŠ+D}?B )àqȤ¤$>|˜xH2^ÉLNNæµ!ÕVpZáçç'ØUÛÃÃÃæû I!©€—s¨ÐÙHÒadÞ¼y,!µZ³gÏòæ_­V[ ßf/ð²„̨ —Í=oKÇShhh@BBÃ!544S§NÅõë׉ËñòòBZZš-X³ ÕjÑÛÛkÓ©W>åÙs=À8wîËQ455•—ÄÆÆ²b9fÀÅÅå±éªö2°˜ÂE’·¨¨ˆ%³gÏFPPšššˆ~Õ+W ÓéD ,i $¥<ëÆÉdP«Õøæ›oˆò777‹²‰D,8­Ï+@ô±cÇlÈ ?HªÈ,RT¨¿BVVcõÎÝÝ‹/f-ô˜Bee%***qŠ^çðÙa‹çe#''‡µÎŸœœŒcÇŽ™ŒbÊUÆÖ­[mÁ/ð¸öXÚ`œÏ¾ã(¤¤/×Ö(((`yôòÚÅ[RRb×€“¦ðÄî ’‡OÞ²²2,\¸Á[\\.\¸@ô;››‹µk×Úâ5Cr:Àãh Ðà{:ÉéÓ§‘™™)脱à´DB}}=ñB½½½8uê”8"ƒdz’P5–ºm¾Ïr¹·{{{cûöí¬?ýô“ ™Ê¼¼<¨Õj»…Ÿ7†`‡¾§Yûìã ýÀÊ•+Y_WW‡¢¢"AåÝ¿ŸÓëÈ^°èâââÂÙ8nnnf¿"sléYK&¤£Öüýý±dÉ=;;Û*ž¸¼Žì‹C€=òÂÒܹÐqÖX )))¬÷PSSƒ‹/2h~~~˜:u*q¯pëÖ-ܺuË®›BiHF0„‹‹ \\\àáááhV8¿þeË–aÆŒ¼†…œœ¼÷Þ{b³gN+À ܹs‡3 sRRBBBxžxñ"îß¿/6‹!©ÀÔ$­&{èÿ}}}‘••ŠׯÜaùòåCÃDZZqÀÉäååá7Þ°þEñ€ +€ïx*V$G)ëׯg5~uu5k‹˜J¥b(‰3fÌ@HHêêêˆê9uê222ì:´™\]]áíí //¯¡äéé xzzšLŒäîîÎH†4zªY©T²h´òI_;‰" €3J7×׿bÅ –×2Ÿ­d===8}ú4&­€ä¬ÒX|’¹‰¢E‹±µ²²W®\aÐ9eÁ‚Ø·oþùç¢ß—››‹¥K—ÚmbHR:ðx$WPÇU«VqöP®®®HNNæ|† ÷îÝcfbK8­ž¨¨¨`)vAAAˆ‹‹3ùLbb"/ÍÉÉÌ_H¦ O"µ¤±óÑîÍÝ ĦM›X|˜:ÌÁœ~âëë‹… 2¶Š›CEE*++­>”¼BĉüÉÇ:0÷¬½-€-[¶°håå嬣܂ƒƒ±`Á‹å¥¦¦"??Ÿøw ;ËD!b|}}‰*{²µ0˜:¡ƒKóÏÈÈ ç>fÌÌš5‹¥<šBqq1š››1bÄ¢üBA4<Š—!¸öˆ)dñññ¬F½~ý:kHHH¯Eœ—^z‰Xèеbk ’Ñ á¯ ®¯?33“×aS§NEXXk«¸)äççÛä¨8C8­\½zååå Zxx¸ £\øì ´ÇÄäz±œB¹è*•Šó\^.Í_hPÇùóçcïÞ½hmm%ÊOO ÙêØ^ûHM(RÍ^ˆå`KKë.--eŠ?~<¢¢¢Õ¡P(œœŒ}ûöå¿{÷.JJJlvpï!ÀPe2ÙP2Îc‰.—ˇ’!Ýø¾q^[!<</¼ð‹n‹pîK–,á5®Ûr+™äö¯X³ Ì0-X°€%°W®\a$ÆQ.ÞÞÞ¼ÂÎÞ¼yÕÕÕˆˆˆ°ª^.HN°§IÊõõ‹Ð955•WØÙœœ¼óÎ;¢Ôm§`—.]Buu5ƒ6mÚ4L™2E”òG…èèhâü.\@KK‹(uBR=€-<‚F…äädF=¦r;œ{jj*Ë¡Ô艡×^{MT…ˆ+Vß¼¶°¸1KJJX“53gÎ};÷¤I“‰ªª*¢üôyDbN ™\\\XA´W éÞÞÞœD¦òß§=ˆ¸¼Œ¼¼¼ T*EµÆÇZw×ëõœ mu” Ÿ‰¡îînAQÉÌArA¿ù sy¦L™ÂÒü‹‹‹Q[[Ë =ÿüó6ÑÀ &&#FŒ`c E!))I´‰!Ié4ležr}ý¶>ÊE¡P %%»wï&ÊßÔÔ„K—.aΜ9¢Ôï´ PTT„¿þú‹A‹‰‰Ahh¨MëMHHàå ,¦ÇäzSÇÙ’†¡Ñjµ>|8k×Ô×ϵ6 6<==‘@<ãW^^.ÚÄo+€Ëœ²æ¾÷ÄÃ5çþüy4440h±±±œ‡>Ù)))ÈÍÍ%þ}EaóæÍV×Kdpiê†~þ†¾ý´Âèææ6Ý›ÞeL'z=ŸN¦Ö°b Y‹gžy†5ç?00Àyˆ£=s äµÀTXXHœÒˆ¬€Çi=ÀÿFƒI“&±4èß~û Úœ9sìöõÓˆ'>J§ÓaÿþýVû JN{g°V«å´ûÎ}öìÙðññAgg'Qþ¢¢"¤§§#<<\pO½››Ë ×ᘽú..¼Î ÐëõØ»w¯uuZõ´aÉÔÔñ³2™ qqq,ßýÎÎNÖ®çÛÑÑÑÄËÄðçŸâêÕ«˜6mš ú, €©Y7S/ÛÐ-œ+Iƒ™¢[ÒgΜ9¤TÒ}||˜˜È¹q#;;ÝÝÝ,º5]ªµˆŒŒ„L&ã¥ð~ûí·øâ‹/éiÍ@ãM!æLB­Vˈîi1ûG¡Ppæ1ô2´èzL½œ>ø€xʺ¬¬ 'Nœà¼çÈioOOOòŠ"Z__]»v±Â×’ÀâyÞÞÞ¼ µ5è^ÉXI”ª««ÃgŸ}f2òXUU§{˜= ÕjÑÖÖÆû¹üü|LŸ>w°)I*ôZ€——† •J…   ¢’úúz|ôÑG¬< qæÌ–Yh/¡¿_Øá˜Û·og…¬±I €twwc×®]Ø´i“EÏšÎÎNdee¡°°Z­}¬ìééÁ‰'°mÛ6«Êøä“O°mÛ6N݆ ²””==EQ¶q<–‚C„‡‡3z––ìß¿555¨¯¯Ô˜¾¾¾ˆˆˆ€¿¿?&L˜À'Pîܹƒ3gΠ££ííí¨¨¨UØd2Ƈ &`ãÆŒ{]]]}™™™J@ྒµv®"yÖ\8WKÑB>ÌPàZ[[QPP ø%ÀƒPZZ àQð± ¦¦yyy¢”Ž^ºº:ÔÕÕ±À’šà Q÷Ø‹95ìççg—ýÿ– ©}–†c+`ܸqøüóÏÄ­yDEE Þ]$&$Õ<ŽîiRÇSc8Á §<åp ÀSZd<0=5æÄ…ººº¡¨•r:8}ú´õþENH§NêüW'Ð /^tÜÑÜNØ7nÜ ÷–5Ë”@uuõ­VûxÌã„ÍÐÙÙÙÛÒÒ2zð²\à xlÞ¼™,®¹’ÅÆ[õz==ÿsPNQÔNUP[[vòäÉZ‡qç„M±gÏžªööö±ƒ—UEí¤­€x *ƒ_}õÕ3›6mºãžôõõõ¯[·®îÈ‘#‘ƒ$µ9d´{•Z­þ€ —Ë{#""çÎ+[´hQ¯¯¯ãÎ7u‚7ÚÛÛ{N:Õ4ë`¬^¯§tt6Rõ?À@@­V8 ’U"à´¤.ÿŽ*ñEÕeâr°T«Õë¬0À ö NH:<2óËÔ÷øíïHýо&ƒIEND®B`‚x2goclient-4.0.1.1/icons/128x128/x2gosession.png0000644000000000000000000002215412214040350015653 0ustar ‰PNG  IHDR€€Ã>aËsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<tEXtTitlex2go mascot "phoca".T²tEXtAuthorHeinz-M. GraesingóQBtEXtCreation Time02.06.20099e„›"tEXtSourcehttp://www.x2go.org/artwork²rÛ IDATxœí}{|TÕ½ïw?fÏž™Ìd&† Ä R±êL(½ðQÄz+ÒÞ~ z´rlOÕ«žÞ£­×c9ýœ~¤ïãí­µ¥µ^m-|€EBâ£*Z¤‚„„¼Lh&Édžû}ÿÀ½LöÌìyAlòý|ög­½ÖÚk¯µ~ßõ[½öZ„¢(˜ÆÔy¾0ó‹iLqL`ŠcšSÓ˜â˜&ÀÇ4¦8¦ 0Å1M€)ŽiLqL`Šƒ>ß 8ðù|$MÓÍ Ã¬Eño¯½öÚÎó¦ó…)C€eË–­·Ûíÿ\^^Þ¸téR+MÓP0e @ü# \¾|ùWNç6·Û½˜¢(’a¹±±‘Z´h{ì1 $I1“ÉTB’$EžE’$!‚LJc±Xw<?ÎóüA^mmm=r¾óUHüà±±±¦´´ôûë(Š¢\.±jÕ*bÕªUZI’°wï^¼÷Þ{p:p»Ý°Z­`YV3qêÔ)ô÷÷+ÃÃÃÇq0™L”$Ir0ì ƒ‡b±Ø3‚ ìnoo—Ïc–óÂgŽMMMY­Ö¯ïÛ·ï–D÷+VÜéñxîq»Ý•’$É«V­¢6nÜe±X Š¢Àb±€¢¨œßÿ—¿üÀÉ“'Y–)|kddäð™"À•W^ùH}}ý}CCC]Ï<óLmSSÓÂÒÒÒÿôz½«ÕÕÕÄ–-[¯× ñx Ã@QȲ ‚ @dY†¢(PóŸXª (Š‚ ´{“ɳ٬…=tèž}öYI–ejtt4vúôé;8ðÏQ‘äÏü~ÿÌY³fµº\®Z–eÉ`0E1ît:ËÈëÖ­£®¹æ-<Çqày ÃhÂ+$$I‚(Š())A?¾ýío+±Xl¬¯¯ïß^}õÕü…EĤ477/khhØÏ²,ñðÓ?ÿùÏ‹ÅØ¥K—Ú¾ô¥/¡¬¬LÓç<σã8˜Íæqµ´ÐP…O"‘hšF<áµ¢½´H˜Ô ¥¥eÓ‚ vVWWãþûïO9i%b±ÌfsQj¼ÞûH’„Åb bûöíÇqdoooëÐÐÐ mmmgŠž`Ò`åÊ•÷ÏŸ?ÿß/½ôRbË–-μÉdÒÂȲŒH$’VÕ˲Œp8 AP^^žSZE$I éñ “çy«Õ ‚ ðþûïã'?ù‰HÙÕÕõ»`0øÕööv>§—ž#LJ¬Y³æç555[Ö­[G¬[·Š¢ ìv»vOÓtÊ=Çq…BˆD"Peeep8†Ó ( ¢Ñ(¢Ñ(b±<X–Õ «ö ¬V+(ŠÂË/¿Œ§žzJ wuu}wÿþýf]瓎×\sͪªª6lݺ•¸ì²Ë 8ŽÃ0àyŠ¢Àd2$õ[Y–1::ŠP(4ν²²rB Nõ|8F0„,ŸÞ3 ud‘éYQÁ0 †Á¯ýk;cÆŒ ÃBµÆ‡Ãa¤+ƒÒÒRØívgûêPSÕN*L&L&“¦þ“Áó<Ìf3víÚ…—_~Yîèïï_ÖÖÖöqÆLç+V¬ø— |ÿºë®#Ö¬Yƒh4 Š¢&ÌÂé!‰`tt4¥Õg=6zP¯v3Áãñ€¦iD£Q„B!ˆ¢˜2¬EQ°X,`Yf³YÓbŠ¢@EÄb1<øàƒÏó8qâÄͯ½öÚÿ˘"áœ`åÊ•ÿêp8Öíڵ˿|ùò­ ÿgõêÕĆ ÆÕ|Žã0::Š™3gêÆ366†±±1U~"‚€ËåD£Qp—Uzív;¢Ñ($IJK=?•Àf³4Mƒa˜L&(Š‚’’<þøãxë­·”>úè¡ýû÷;«„ç”~¿ß}á…Äb±pOOÏ?544ünÙ²eĦM›4•ª( ‚Á "‘Ìf3<ϸ8EÁèè(¢ÑèøŒd A¾ÈTN© wo·Ûár¹`2™ðüóÏã…^@ggç^xá…òNh–8§KÂ<Ï‹ ÃP$IÒ ¿»ôÒK±iÓ&‚ M¶ ‚ Ý1þðð0b±˜öQG½LpKôKçŸî2ò¬ž²[â½Ýnך¤Ý»w‹¢(ÊN§sEKKËæâ”|jœ³o---7444,5›Í`ÆVYY©lݺ•E¢(B û—Œp8¬©ðTµÚHm7&]:’Ã%‡IvK¾ƒÚ42I’éìì¬joogLXqN4€Ïç£çÎû«úúz¬X±E)wß}7!Ë2xžÏóã>×ãU¨:³—©Æ§r7Z«ÓùåRóõüc±‚Á `ÇŽ´ÕjuVVV~P¬òO‡sÒX»víï*++¿ð‹_ü‚R¿ž1 ƒh4 žç1::úi‚„@QfΜ I’044¤ÛÎêÕÐsñAÈH›Ÿì–ì_^^»ÝŽ‘‘Ü}÷Ýr x{×®]—>µ©Qt ÐÔÔ´¸¦¦æ¿ßrË-”  (J›‘eY« z5H–emj7Q%ç[ ó½ŒÆŸ.ŒŽŽÂårᡇ"Ýn÷Òë®»îÍbË$E'@eeå‹v»]¾âŠ+´¯gÑh4Mcxx&V¢}hh¢(´ð‹!üd÷t÷‰öÑÑQŒŒŒ ²²ßùÎwH·Û½týúõ/[.*ŠJ€åË—µ´´´âÁ¤Ô¹q‚ 4á'×j=»^ÍÏtŸèžÊo2_½ÆÆÆ …PYY‰{¬¬¬\³|ùò¯O2Ÿ¢¨˜9sæÃsçÎ%l6xþÓÏâcccš60Z[“Ãdº/¤6P‘KÜFÓ¥~˘?>–-[FÔ××ÿ¨±±qA1å‘ÍÍÍËÊÊÊ*¾öµ¯‚ hóãê7öT…“è–ì¯þ\‘ÀhœFÓ gP›6m‚ÓéDuuõë>Ÿ¯¨Cõ¢ÀívÿØjµÊ.—K» ‚0nú61ózn¹5Ûð…¬ùÉnFò”h—$I+Ÿï~÷»$˲%‡£¨+Œ‹B€ÆÆÆ¯×{Ñm·ÝF‰¢¨ÍzƒÁ ˬó)°\IÎßh˜B _µAEP…«¯¾šš3gÎfŸÏ§¿©( œNçɲ,Í›7Ç Î®žMìÍg[ûSÙs!A¢õ°óÉ u^ä†n€,˰ÛíE[j^pøýþ’ªªª«nºé&8;Õ©~‚R \Ï- “ÝS…+ô•é=FÒ‘)ÿ±X ‚ €ª¾âóù&.2( F€ÆÆÆJ())yTE¥¥¥<σ¢(ŒMPýªi„¹ =“!„Ÿîùä1‰8«E!JJJ~P(Y%¢`p»Ý»}>SYYù¥+VPÀ§¿f©Í€Œ…‘è–FÈE@…~ªtÍS¢Fµ9¿ßOÍœ9ó¦‰j FdzØår=g2™˜Í›7k‹9?àd"ÑÚ’Ê^,‰3›´¦sSMEQ‹Å×^{-œNg©ßïw@TãP466Ö”””Põõõk,‹ ñxÑhTû§"]¦Us2‘ÀH\Ù¤1[²ŸºèÅív#‹I,ËÞÖÔÔty.2J…‚L20 s}0†¡W¯^­©ÿä FH*¬Q»Þ}*·TÈ´&1]˜D÷tkôL5ÇA–e$ ›Í–e›KKKop¡áLd@A4˲Ëjkkqíµ×j½þ|„oTd[ËÓ‘K˜tÏêù¥Ë‹‘|«£—ËE•——7VTT4rDP8Ž%µµµô=÷ÜŠ¢´E”ÉȦT3Õž‹_6Ï$ÞëÙÓ¹É'm²ÇãÛí¶±,K°,{[vJ‚ ¤¤¤â’K.A$$Iºª¿¦h7"Ðdœá'¾;ªX¹r¥öÛšËåºeBÀ‘7ü~¿ÇjµÒ—_~9xžG0ÔýY ‘+]|éÞ›mþT$º« ¡¡ÇaÅŠp»Ý I'3ò&Ã0¢Ñ¨d2™Àó¼6Q á«æù A¦xÒ¥-3±)ݼy36mÚX¶lÙË(È›,Ë®dYVQ‚ 誱b‘ ¡ZàF‰™¯©þq ^x¡º|^f¦Ù€2 ïa Ýn¿¤ªªŠ–$)£jKD¡ +“[ªûtH·¼;yø¦çVFFF`2™ÇÁó<É0ÌÃIƒ¼5€ÙlžQUU¥Ûë2·wéÂd«Ò¹e«Ò=gäÝù˜Ée£þO¨þœêõzI›ÍV¯SÜY#o˜L&ˬY³4ä"h#aÎ% Ò…×{6Ÿtë!]A0oÞ`y(Šš/‚€ÐÛ^ÈœáH$‚÷Þ{Á`ååå¸øâ‹µm×Ò=g$îä0F ZE.pß“ÊÏH˜tÏ©$I!IrNÆŒd@¾¨SE@êe"Én‡Âþýûµ™CØ·o6oÞŒººº”ÏéÅ™I¨É5>]øLC»TñçCˆtq&"¡¢)EÍ2Y äÕÐ4]£n½–íO¦­­­xé¥—Æ 8ûçìO<±±±¬Õ¥QÕœ®YHt7ú=dë—MøOÛ(Eå¾{Õ'ÈKÐ4]e³ÙHàSfQ¯±X þóŸSú ‚€7ß|‰{ü§Câ;EQÄÁƒñþûïãôéÓêªZøý~¬\¹RÛðIOˆéji®*;ÛZo ÃEå=Ì™ŸüùSép8H ½H&ʼn'Òn¶ £¿‚Á {ì1ôõõs…BØ»w/þú׿â›ßü&l6Û¸t¥j׋%¼t0úN«ÕJQ•ÛÞ· ȹ ¨¨¨xÒb±T«;`¥êê!ÓNÞf³—_žýʧýû÷O~"úûûñ«_ý*åÞ=É8;¨y'AEQQ%ï}ˆs&€Éd2{½^m§lvЪ¯¯GUU•nعsçâ¶ÛnÓvö25þÎÎÎŒa=ŠÁÁAí¹äK/½‰nÙ’¢X$ŠÇã²$I|ãɹ $‰‹Åb(++›° F¦~I’غu+Þxã ôöö‚eYÔÖÖ¢¶¶vÜŽžFößIļyóÐÝÝöÝŠ¢àƒ>H¹ý\b¸D3Û0Ùn)g$-‰EQ‘$éŒÏç#ó9³(D«ªª°`Á‚´{ä¥r£iMMM2÷ªŒÉ`ùòåxûí·Çm9£uÓéäw¦jR™é¦ÊG.~‰H˜"H’tY­Öp¿¡‡us ŠbX’$lܸ± j1Ÿg·Û±eË–”û«p¹\ãâJVÿéš#d0šÞ\ü@Ì™3çÐ4=7] Lȇ¡x<®ˆ¢¨ý÷—«*4RFÃÌž=÷ß?š››u5ŠÃáÀ’%KtL={6¦Ñ¼&‡Iç§þki³Ù(»ÝN“$™Ý6æIȹ e9Çe’$©äI£*;ªßÇ »Ý®ÙÓÅ£g²,‹7béҥسgº»»AjjjpÓM7iPíý'÷qr1Ó½'RP…#GŽ€$I„Ãa$iKù°äÓãy^I·{:¡§ ÏóøÙÏ~ApÁàŠ+®ÀÂ… ¡õšIø‰ãèêêjlÛ¶MsO×Þë¥=Õ}®$(„Æ£( K—.…$Ixî¹ç000pÞ4@PE-Øljxº0&“ EçyœÂá082mA ®®×]w<OÖÂ×ÓR©”M§PÏÍH˜tïUMu׈Åb²$IÅ#€ßïw××ל5kqï½÷’ƒƒƒÚ,[!„žø¬^<«V­ÂŒ3°gÏm³u8·hÑ",^¼%%%ã (¹ôŠM‚t~FH¡~xã8N‘e9¯JÓ€eÙ¯Úl6óàà H’œPÃŒ 9éžIv[²d æÍ›‡ï}ï{p8¸ýöÛµs{“Ã'¦-Ùž£ÍAºÎX¶ö|H ×·´s {3f$ Ò€a˜y‚ àÞ{ï%Μ9“SÍÎÆT3—ìg³Ù`·ÛQ[[«}ËÏFà‰Èg¨ç~>H Î½˜L&Z„}†2“) °råÊ›7oÞ–[o½•0›ÍˆÇãEºŠtaìv;ª««ÇF:á§‹?dÒÉ÷Ù6 zn™L’$ÑÛÛ ’$ÑÚÚú~VJ‚î4žÏç£çÏŸÿ 6µµµZû«‡\Õ˜¢›cO$@MMÍ„ç’íz÷©ÜŒ\FâJ•#ùÕ‹'“I’$ÚÚÚV?Âä]°,ûO<Ï+k×®Õ~÷6š8£f¶aÔµ™„©ç—.üd A6eò‰|ðá‡"‰téÉ/è6N§s‹Ûí&DQÔvûP”Âþñ:66†ÒÒRCM,Z´h‚r˜B©ýTЋ'Ñ-Ù?Yp©ìéÂ%›$I‚atww‹¡Pè@ΙùºÀjµÖÔ×ײ,£¿¿_›‘+dÍ·ÙløðÃÓÖY–ÑÝÝcÇŽáĉã>;©Ù™üà «ÆHz2…IUFz&˲‡Ã0›Ít4ý~Ù‚®‡ÃÇ¿„aNŸ> ǻݞwÍWíêÙAGŽÁ’%KÆù…Ãa¼ýöÛ8räFGGµÉ&š¦ÑØØˆ––P5NxÙÎü%Ïc$"“ÆÈ>SO´g«, žy挅>|:mB @—###ÿ+ ½ÐÑÑÅ‹ãõ×_G?JKK1cÆŒ gûf+|Õ¬©©ÁñãÇñä“O¢®®ñxü1ºººP__«¯¾µµµ0™Là8‡Fkk+pã7j3b¹ßH³.Ìù"ÅbÁ[o½%×2fÀR·nݺ½WÝqÇduu5Þzë-ð<’$Q^^—Ë¥GÕÚ”ÊÌä&Ë2Ž=Šh4 ‡ÃúúúqKÇŸ9sæ vîÜ Çƒ/~ñ‹ºKÌõf)“Ýb2‘Àl6ÃëõbÛ¶m’ Dggç/C¡ÐmíííÙÿDñ Òž¸fÍš_UWWéꫯ&V¯^×_]Û¾Ôd2¡¼¼\ëȺQBd²ƒAìܹV«›7oNIõŒB³Ùœ“ðUäJ#~Ù¸Ùív”——ƒ <ÿüóxöÙg%Y–¥Ó§O?ðÊ+¯üG¶ù2V¬Xqß‚ q»ÝÊ}÷ÝGvuu¡§§GëR§Ó‰ÒÒR]AZø*"‘~ó›ß€ lذGóç8ÇŽÓ†Žù_EªrÒsϦ槲§r+++ƒÕj…$I I¿ýíoÑÞÞ.÷ööþáÅ_¼1Û|:9´¹¹¹eöìÙ°ÛíeN§Sùò—¿LÚl6ôõõ!‰h'‚Ùl6¸\®´ÿßBøê}<ÇîÝ»ñá‡bÁ‚š&òz½Xºt)X–-ˆðU%A>MA¢=•›ÍfƒÇãI’ày§NÂŽ;”ãÇóÕW_Ý‘Mž²::vÙ²e×»Ýî‡***òW»jò<@ €ÎÎNÄãqTTT ¥¥…¨¯¯ÿO¿ß_bD^E970\'˲ôÃþn· ÃŒûËç| ߈à o6éÏ¥pàÀõöö¾´}ûvYÐ4 —Ë¥"KAe+\ù?!f+h£$ÈDŒ‘‘ȲŒ /¼‹ÅÐ cE=>~Ïž=ׄB¡Þ»îºKzâ‰'”x@ž9s¦všX¶µ&ù>Wa‹Ù†Mç¯ç—è¦gD"eµµµ`YÖйBE%ôöö^Çù·ß~›&Ÿzê)ÔÔÔ ¯¯O;L:Wáë¹Sø¹¼7›|‰7“=£¶¶f³™0r¸TÑ ÐÖÖ6ÚÑÑыńcÇŽÝßÞÞ®p‡K/½Á`ƒã4‚š™É(|Y–ÑÓÓƒžž bdd‘H‚ œFí*AÀÀÀ€úù\¡(*ãñr970Z[[ßmjjº¤µµõèõ×_ÿ•o}ë[u?þñ)uKµ ÕJ‰Èf™W¶Ë¿ôæ2=?<<Œ±±1]?’$a2™À0ŒfªöÄõÞeÔ/UúB¡€¶ù–(Š I’UÞM—ŸsBhmm= ~–eOÜqÇÎG}”ºüòËÑÑÑãÇãÌ™3p8p:Ú?p‰ÈWøÙÌüéÕ0uØ¥Y–Áq8Ž›à—H†a0cÆ p§-jÑ{ŸÁG£QŒŽŽjïdY`2™Y–;Ófç  HF[[ÛpWWל`0Øÿõ¯]êîîÆ\€ÆÆFí3çÈÈ:;;100 ”‘‹Úç8@@ët¦ —®­WŸá8}}}Y퇘•$IbÁ‚¨««EQèîîÆàà 6„Ë”õ‡Ü@ €ÞÞ^ Ž#\UUxžÃ0„$I'2¥«àSÁFáóùHÇÓêõz¯¸è¢‹°mÛ6BQüíoCWW׸‚6›Íp:p8âÉ4­{êÔ)mí‚Ùl†ÅbÑ.“Éd(­ÃÃÃʪyI†ÙlFCCªªª°wï^Àš5kðÎ;ïhB$IR»(ŠÒì¢(jGɦ‚ËåBcc#þøÇ?b÷îÝÂã?ž±xÞ ¢¥¥å¦šššÇiš¦ïºë.º¡¡ápï¾û.‚Áะ4M£´´‡C[—˜A``` e›MQ, X–÷ Y]kÇÕðsΟÙlFuu5êêê°gÏüéO’H’$(’$)ëׯ§×¯_>ø}}})Ï^Ê»Ýަ¦&P…Ûo¿]êîîÞûüóÏgS^^þǪªª«].—|çwR^¯èèèÐÖØl6Äb1Ȳ «Õ ›Í›Í–²¯œ]C˜L¤s›Í†ÚÚZÌ;¿ÿýïñâ‹/J$I¢»»û·¡PèvEQd»Ýþ£Ù³g®¼òJzõêÕà8Á`¥¥¥Zs‹Å´Ã$IÒúf³,ËbÖ¬Y˜1c`ûöírGG‡rìØ±…‡ž¼M€ššš.Ÿ9sæã§eYyÛ¶mÔ\€žžttt`îܹ˜1cÞyçqµÚl6Ãf³i½íO¶NA,ÃÀÀ@^ª;ÄÙÍ-jjjàõzñä“ObÿþýAJww÷¶ß.[BIDAT¡PèŸÛÛÛã‰Ïø|>Úf³}¯²²ò¶ÒÒR ÇqŠ(Š’Õj%8Ž£(ŠR¬V«2{ölrΜ9˜?>êëëAQ:::pòäItwwãã?FOO@9qâÄU‡2´jxR@ESSÓEn·û ¯×{ EQò-·ÜB]|ñÅxúé§ÑÚÚ*?üðÃd @__ÆÆÆrî˜qöïåY³f¡ºº‘HO?ý4Þ|óMIQ¹§§ç±p8ü/FVîú|>†¦éF†a–1 ó9«ÕÚÇ»(‹¥Öb±xX–µZ, xžWâñ8Çq\ˆã¸3Á`ð÷Ñhô¡l¶Ž”PÑØØXS^^þDeee³¢(’(Ф,Ë"EQô7ÞH®Zµ ‚  ¯¯£££…BˆF£¡È&“ N§eeeƒ8sæ ¬V+\.<ºººðÜsÏ)'Ož”Ìf35:::ræÌ™_F"‘ÿ™Ï>¾©àóùX‚ ȶ¶¶h¾qMj¨ðûý3ËÊÊ~YUUµ¦££ãG²,Gëêêî¥(JöûýôÆa±|zŠZ<G @8ÖÚOu½¢(Š);Zêr«Õ »ÝŽŠŠ „B!ìܹSéïïÇŽ;ˆÑÑQ¼þúë8vìz{{¥x<š¦É@ pjxxø©X,¶ã“SŸ |& Âï÷—á>|øð‰ÆÆÆz‡Ãñ]·Û½Æn·[9Ž“JJJÈŠŠ ²¶¶‹/Æüùó‘n#KI’ IdYÖ~º€>ømmmxã7D³ÙL ‚ Ó4M‰¢(3 C†Ãáx$é‡ÃïÇb±ÝÇ=QŒš~.ð™"@*455-dYöË Ã,¶Ùlõ,ËVØl6+˲„$IEQ‘e²,+²,+@ò)EA€ã8X,ZE9 = …î³Z­ß q÷²(Нåó'ÎdÃ?RÁçóÑA”QF’¤“ 'A¥Ÿ˜v’$íª €á]žç_8|øpÇùNû¹Â?4¦‘çü[À4&¦ 0Å1M€)ŽiLqL`ŠcšSÓ˜â˜&ÀÇ4¦8¦ 0Å1M€)ŽÿÏw­)—DªIEND®B`‚x2goclient-4.0.1.1/icons/128x128/x2gouser.png0000644000000000000000000000335312214040350015146 0ustar ‰PNG  IHDR00Wù‡bKGDÿÿÿ ½§“ pHYs  šœtIMEÖ "erèÀxIDAThÞÕ™{ˆTuÇ?3÷Îîìcöá¾5Ë-•L¤ÎF=þЈ )(ú#zA”D/Šhû§@¢—%IöÄû#’PI" cÍ|@Kjki¾Ð\wW·Î…ÃmföÞQd÷ÀeæÎï7wÎóû=ç7©†ìËRd€%Àòx¸Û®ß€³cÜ€¸x #"»ÛUuãHDäZ`y8džoò#0ª:|¼¡åq8 ªê™*w KüH#Ðh·Y Ý^€‚Û>ѽoVƒÀ}@3дMöœz o{à8pBDvß_¨ê±4V„Nñ,Ð ä쇱jo·Ôª³÷y» «Ã^ À=À ûn™ <‘€wTu0•ªz8`°zÐEà÷„eÝZ[kNªêiéŠÀëÀ)Ú¼ L‘EIR«T öZ4Šú ÐjkØÚ4gPøTDާ€õ–Jt§„ɇ€¯€Õ©#`×î* ´1VÏ«\&‘ðd*\šKœ7¦[¾tYD¢êjí¾Î½í; / ¦¯H铹"r™ªî©&;«ðx“K§¼]Uõ¤ˆ¼gõF2@°'i2æýfE#g÷íY"ä¡B…VÔyX <í¢—T:§É€á¸Çâ=γ3&Î% F¬VO¤4`$M"Òá ®Îa}œâ¤ÖåÞlãƒ?¥ÀãÎIäp5Eaz®„¢~O”÷uŽ#&ÄÂ;GU7ˆÈj`A ª!²,pÔí©5ïGûÃ2DÖU&ê€)"Òd-ð­±ïU’›EäíJ„VF'ºõnöÉ. ÀEîY1RkpuÓfƒÒ*ë"¯NhÀMÀ`ë¹ÀèÆ„DVï<Äf©…À°MRŸ$4 xMDæ«ê@Ò4Y‹)2Ô'² Odå ˜¬vÙs“H°Xœ&»Üžu¼ÞânóޱËЧªGEäcॄd^Ù ª[“Y‡½ÖÄušbYËå6§TcN(UY`PDæïÏ%AÝå"r½ªžÈö¹‚ cûòeÐ&£\Mx>iRÕ_Ed…„$î€5e‰LD†ƒbÓTÞuˆm±þ?Wb¸‰#RœG®‘…ÀûÀ½Î£ÉsìÿòËq»)ß`)‘w¤)_ok¾?jŽ­es\"˜£ª?INBF€€KUuKÅ"‘CöÙQS :Dê3…×VÔÆR©\¤|*E¯Ed03a;ñ¼ªžJ£SL±œy½`ÊvZÁÖØgódÎÌ”H«zÛEºÃö½¬ªgDd‘[­˜ ìO£}ULbÙ˜"qBó ß°]DºmÜL"yà àš$¸Ü}6Íåv3p±ë¦:õøZ®¶7zm:ëµå£IkÒVb»[û)aJMb¥¼_°žf6pg åg“NdQEŠD9Ái‹y¸ÎÖ×V×—i¹[- ½À·¦L] j¬ÿ,ÉDv®Jäå×<ËÆ ñ#ç0ð¹‘Ñ­)ËlÈNüFŸÈD$çè=¬@jµ./3¢Aê2UýGD–¤h"ùø:é<à•o¥A­ ikl-päS©Å¹¶‰Èlà®*qVÕÓ‰ŠXD»t8â¢o”cÅ noœÈ¾3b|3å<É/ifâ©Î›E£ À$ö—ËûÈÐë yT¡ü0°!ÍLì‘v&„Ñ"ƒØ`3b ØðbäÙn'ÓûldjAl¾OI–õn6¬Z\;ÑåÒ$ç£F04åo±#Åye~ÿ_à~UÝl÷ûÍUý?`ØgWšVÂ’K© pJUˆÈS1&V[8‰Ùdó`ÖÐ%j¯ëÝAn`Q*Õq®µ¼Ý¬‘Û*üþ:;P;wLÙ•úcÇÝåZi_Ä[펌‘ÖòsA˜´)4"" ±)«¥ÌI[mŒ ÚìY;D¤`ÓVOìû¥dïy3ÀŠØwˆ-eÈÊÄØ#®Mv&ýç3Ñ±ŠŸA«•Å\ É5"0þ$ ä"Ví‡ÌrA±X,‹ÅMÅbñXÿÈXÖZDÂb±8 øø0^±µõv¼>8Æ=Ÿ7~Z,ýºg”i“ÿsIEND®B`‚x2goclient-4.0.1.1/icons/128x128/X.png0000644000000000000000000001415712214040350013603 0ustar ‰PNG  IHDR€€Ã>aËsBIT|dˆ pHYsnnУ²htEXtSoftwarewww.inkscape.org›î<ìIDATxœíwœÕÙÇ¿¿»Ks•”²«"`oX(}QÁ"`P "ˆ¨±Œ¯•¼¬“4QŠCS¤XXHÀ’hÀ‚ÂR„E JYö¼œÙe÷Þ;sçÞ;g?»ßÏg¹ÌÌ™3çÎyî)ÏyžçÈCµ—XM Žš¥Nj9uPË©€ZNÔrê –S'µœ:¨åÔ @-§Nj9uPË©€ZNn¶HŠͼS•W—2ýåsó1Ïd[Ο’FÇø\Þ\eŒY—õƒŒ1Yÿgc+ÍÅ_)ð?Q”óçò IñNnˆêYŠj9XÒhàšH2Kd9pŒ1¦ÄQþ» ’Ú|’¼bŒéÙó"€†ÀàˆH2Ld’1æD< 0Æ,n2Ï8“t˜Ãük I7}’\í½ßhŸµI˜$¯="Íx'K€NÆW-Mµ#éDàügecŒ1—:y¶ ›@I-°Õ<òÌ-£1×9Ê»Z‘Ô ø°O’Å@gcÌO.žïDdŒYʸâZI½æ_-x:”qøWþFl¿ï¤òÁ¡&Ðó:ð¤«ü±’ æ_ŒN ¸>ijÔi +4b»WJ¢·€XM+n2|7ݲ€ïöhu”ÃÉ 2’ŽŠp”¤HªÌ:ù$Y gŒù®:ÊS-«Æ˜ÑØ©¡ rqžíçÀ#øW~pauU>Tïrð`µ£¼ÛO;Ê;2$õ® Hr¯1fvu•p;L2ð9“àO¶CjzpðÝ6”}&50 ­–1@e$= u”ý±ýçŽòÏIyÀGÀá>I¾Ž5Æ|_}¥²Ô„EÐmXí– ò€ Þ@kWâiü+;p~MT>Ô€«Ã€]ÝrÁ±ÀaþpßqõÙ~7Gå@Ò•À…In1Æ¼ï² AT{Pñ`é*à÷޲7@Ïõ·µ é6‰|D>1å#å#Ë~6D±CÒFÄF¼OI‰±é‡òó_!-Fü{÷ëßO9G—Ô˜4ðIRã65&’¦®túk€£×ßÑî ‰ó‘l{g+yŸ¾Ç±ªÇHhçñ6¤Ï$– -&Æb¤ÅyWΫhÆ%5Á*{Zû”o)ÐÞD¼¾Ÿ.5-{cUÅŽ1kÙ‡÷kš—[„t°O…oDLô:b1mEì.©1¢1•>mK¢½‡# ±8)Fš”wżë©X[Édü„]ás5 M €¤Ó±S 9zÄ-%ÃÚÍDúÑ(î—üÒiùÃ~›n¦›Ÿ<¡¡b†t$â¤#%Eº ïŠy§AêéK1c2þFRã éaà&GÙoN(~t;Äs•à{Äùí‰òa’º³Ÿ$c1—DùÌl¨qÇ5—´mtBˆÀ:zD=`|“ûÿx¡Òù*¿å/yjÈÁ·my±ÛÛ[^êvý–q§îåó3¡Æ`ÍÅmv_3¤íÍ ¯þvVá5ÀÀŽw ðp5ð‰w.Ò—/)˜´ðI²8ï’®…§'Oßnê['žægâœjïVjOL×IŠØËë‹B:ºÅs˺tøøA%wS$±€˜J­ò‡-ÚEÆ’nHÒÏó À–»íƒ¸érÅÈGÚŽ˜€ôpƒ~³#7ü ¢Ú`õÀÖyˆ[‘®GäÇO»æJœÜüÙe¯ç8*Æ&àØ ÷Ó iâÖüa‹Ê6SI}€ÉI7ÆÜrËøS÷ø5öǰR™Ä¤;êŸ;km¶å CµÀªû÷QLOz_2é¼Ûœ]ßüÙeã°SCWæ^EÀ‰î=ö ¤¾ˆÖùw.Ü’if’Ú =}’¼œdܱuâiõ7" —ȳÊ'@Œ®ÿË™¥™–- NÇ«ú·jµjÀþS“ý‚ÒÊþ3bÍåþ\DUÑ(éŒnÄ.Â\iFž7Ô+øWþ÷X= Ö°Á¯ælkpþœC@|à1`Éö)ÝOÏ´|apÒ¬:¿¤#ˆ)/”æMZJŒ_5ûÓÒEªOÍœ±á¾ã¾D¼-éøÆw,X•n&’ž.ó¹\ô0ÆÌJ7ßm“ÎèJL£‡{ïi,Ò5õz͈|ý$ò ¸ß~{#f"F!ò „†GLD´/¯|;±ªTøËžÃmn äâQ• ¤ÁøW>ÀÈL* þ¹³ÞÚÏz§†mŸÞãLò "Ò ø¼}CzU1ö÷ѡǷ[†6³,©5¤ƒ±BY!«ò:pö¿m?Н6¾mÁßÃÜ$é(àCü=xgÝ1eÙpû”îC¿GjˆØ,éòÜž¯Ï6ßr"kŠÏÝwbbÿP7ˆ/¿ð«|ϰÕñÀYÀ ˆÛ€ì˜ò}HÚÛïûUþ ¬]_Ö•P¯ÏcÎÀ—XÝŸÒ×ÏúCé=#±yˆDŠûîóðgü_J<ã€öÍÇ|™r1Äó,ðjÅKŃùw,<Û œ"ýà`Ÿk¥ØA_¤S¸z½ßø'¶K(²­(W¯–Îìé·Ì𬻀â¾û<î)5|›ü*Ç1oñÂWÒ*¤ÔkE´oV…õçs ýt8±´ñ-Eë}Ê1;:÷ã&cÌ£NJlŸÞcOÅ4ÑÞ¾OÍDü2÷Œé³jVžSøv•‚ŠaàßÉÀgг;5Œ¤YMÂ!ÀïßZô(©ŠXRg HiôªËʨwöŒ À òu“3ÓwÌUSÆ-ÀÊs G îžÞU1®øéøþ*cÛ7I÷cm ]Ñß31És›a£~-ÐRl䎖­‚Ò=÷B¼t”׺¾‡è™sÚ´Íéæ•Q °²wÁo€»wž‘Ïg€žÙT¾Ç]Ø*®xZRëÊ'<Þ—ð¯ü-X=µT>@n×Öa-©6x§NBdd_¶¬ì]Ðñ =J1÷–íÀ¹-þòõ¿Ó/^U<Ú mII>Ö˨r †» mܵÆWKÙ¾äví ²]A¿oõr:IJZ°²WA>0”N|Á«Z¼øõ[éËcÌ€ë£Ê/ ’Ά¤}ÞóœÃ²’{æô¿!FWú>Rövïéä‘n ð4þFŽUúƒñ-_ú&òdŒ ü5ê|=c} öÃ6ý~ïèc²XGˆÿÅF¨¼\öN¿µ‰B ÀÊ^C€_¥Q°ÿ·¤‘>]®Ò¶åKÁF °x÷íM8ŽÜ–œÓ§o¥j‹ØöþP°²WÁî$™)þ êà–ã¾qæåjlÐÈD;5¼Ìëb~îÒ]Éý,ç´ió€7+Pöî9íÂܶ¸ØÛ÷jâX°x8dÞcŒy¸?¢ìž4ÆüUÒù@Pªßc\u?Ù0Â~x ëâÞ07¥Ôx¿þ¯(€pÎ#[NX><£¯‘&Þˆ}>þ>÷aøè‚m>‹€=|Ò}œ”j}¿¦ØñVï9’Nõ4® :źL. º'L üëO¤ŒË˜Î1Æ”b§†™Úö­ÎÇš˜„å¯#„qG óX\W<2Õ °²WA=’Ùë'ö÷§Y-',ÿ&Õƒ£Ä³ŒàfÛ÷Và"cÌ7XcÔ 8ÇeXƒ]™7±ƒïrÎ(›{ŽŸW2º8‰ø_BÅ'hƒŒ#aŒy˜æmc^“t0(EÚfÀó^$Ô]’œnS·ñF(¶© g•£„aRæ¦ÈÓ%Wa[Ÿ÷€;%‡µÑÙ„ZüªQ¦Åg%Iœë€¥ÈÓž>~ vÄ ?¶¿÷íd<àÅôßU™wÜ¡lî9¾Ž'¾°²WÁAø‡.OŽx¿åÄå5êlhŒ™‡5Éò£ ;h\…5bi“æ#ã%…5~©Vb§LY‹ý!–# ·oú€¼ºeðü¨5si#©/6 §÷cÞÄj)3Mp80*Ã{«ƒâ¸ã“ü @j;þÊöDµx³ø!é@ì¦ ~ÌFJ:øm–»F’Ÿÿ £xH¿ ¬gNÕ!A @%' ¿€‘+°±zšcg ~¼é0Æ ¿k!VÆÕ‹o] @pԎ亀 ‰ «§€£}®•b²J°•ß2¢gîªSÃøíä@rj$\«¤‹©jÏíÆ˜ùØfÿäˆß·ö ™¿ܨlî9I—ˆƒ iÒ³Z@ù-Ÿ:Û’E›bŒyØë÷]-O?¸‹M “©î“Ög$îÑ—R è#4ŽðD9i|\ìý!°ÌQQ`MÉ\…ÄO—fIÎ%Ýs1Hªpªâ”A~®x]ÅV¬±æcÌfìüß•>ÿv©a|=ìÀg|^ÂdD)’n‚‚,ÞhŒYXù„1¦p¹L}­¤ž©“¹£ìÝ>mI´dZë29©‚.HÒ³æ±cƒ¦«.hå¼ðœ4‚~mŒ1ð¹6 »ÕŒ+jzj˜Ì.·.ƒ üU{„ M²Æ .9ý+Ÿ¿ö»ßsÚDâT)*šc7´ª©©a2 ®o] €¯«tŠEÁkW ØßÉ—÷œ4^Ä_Kù#ÖX3ÐoÀ³p²£G2³OÈŠ²wú4% Lí[—¾P8­x©–V“WóaØeS K‘÷ÕÆ˜O®W`Œ™øuQð G :¹±[’z™ïwCªåà7’žõÑT"!"V¶x!eïH2Æ3 I‡›€Ï2/U ©Æ©aÙÛ}꣤ÛÑ|ë2ùk¿ûR @¢¿Y¸ÆýŒÕ¶ŽlyIû줱„à½x’âÙõ÷ÇÝŽçGìQâ’ko} pZñG쌬é[ùªrQå‘Döð¬~_&¹r¬1h¿L4Œ1ã.Àu’Îr˜9¿Ir®”ªáqcl]»**?¥'pù©«µŽbóè®_–­“†1æIÜmkvVàj#mv¼Ýût ™*úµX—É;µ…€g«Ã¶ý•’5^X}Q›ŒƒPxÆÉ$»œÑƘ—3Í?Ž!X+!4'ØN!cv¼Õ»©àOI.BØ<¤¬œÂiÅ›©ð:  ÒÀ°’¨tÇúô§MãŽ"" 1ïÅõŒ»•gIŠtj¸ãÍ^åÓâÖI.¿œÊ)»†= øû÷7w­Ü&­>0„qG ÖIc[:ù¦Â‹ëç2ÌËCÞ^ÊQqVçÏ6àŽ0„€Â©Å¥XsèDGÌÔ=ƒ€×\Ü6ãËÑøw`°1æë4òK‡;Øén5‘M wÌéÕÿÖuT¬Ëä/Ãäº.œ²r0<œk@M“Ö\Ò6å÷Œ;‚´t£Œ1ñ¶ï‘áµ*PÕÃ&JŽ‚ò+™±cöÙm°Ó⸈¤Ñí¦$ªø—ûL$æíÂ.,\¥c½ˆÜü¹eI]ºCDàœ tóü"é2à‡8Ë3#Ý›Jg/ êØ„À\1}Ž8>ÖerèxEéÐÅÒÞÞ¥BPS×\v`‚¦sþ•¿ÅËyåCE€ÊW>"í©aé̳ÛÞ›pQlz§Sù¼ºâG žpÕ6¨’n üWŸHO`þÚ_Ø*îüü;Ê·U_™ny³ärÜù:´ …–®2¥oô<Û:–pQìúÇNšœ¶>$£9zÁ¤˱ÆÛËKW T|´öòƒŽ‡PÆ÷cædRÖlp…¤2=%¥Ta—Îèy!Öó·ª6tçÔû–ØÉSffR€Œ•4¯|÷¨ª5lêE¢Šd@ Ä;ãz'ظc6p_†ÅÌ/ IЀÙ2J’ïºIéëg݃ëWõ_Üùž_ˆ2%ã©kÖ±‚W¿ßHO"êyQ)ÂlQeׇ®ç‘…ëÙ‘X”ØmÕkÚã(ëMÜÙÑ#>:zk°}zÆHOKôO`ïŒÌò”ÄÐXש‹"Ù/`UÿV'"&!µØÀlj¥¶1lþZÞú¶bç¸R «çìYãHjƒüºò}xÂ3tûÔî1¤K#‘š'̰ìg+âêœS§e½ûh$áâ[NX>ŸòpærP“úLìµ//õ,ä€=ëܱ«T>€1æ+à*‡¸þþÁ‡ÜŒ5_ÿvý`';»×•À)QT>DÔ”³jÀþ %þˆ48¨ÉOÞE¨âK–BYnL+¦{÷zü_Õƒ7 ’þLêh"i±³†ÜñÁœwbAò–sg“ÿDߜӧÇ;fŒ“M£Vl}âa¤\DB4±øˆâ ÝÆÎnb Ò0ÄØ½ý¬Zæÿ©ðôÿÈ6¯ÝæpsßÖ íÝš† rR•žCº:÷Œé‘®8Û7põ Ö]‰éE‰BªüÂ}4‡BÂjIA<ßôáO?uRà4Ô kg—NÌä º¾'ƒ»Ò·sKòåø·Œöüˆtsn÷ׂÜß2ÆéÆ‘«·ÙMÒMˆ[v+)’Eˆ±Ši|“>®1odI·“Æôpߦ xrƒN)à€‚¼àïS‹ÅžGžÛã5g °jÙ9tͶ->-Ùöü!MêwÏ͉¬,UÇ[“‘Æ"æ4ùíWÊš¤x&ês€®~iԋѧÃÞ\tJ!ÝŽlB,'â;Š™‹Ö2⥥_,üÏí*O |êϸcÁëåë¸=ÛäE!•¯¯—ô!â¤íyÏ?·ž±ê<§Ø–ùõét@c:ИN6¦}ÛÆäí–ãßêÅu‹¿ÞÈmÏÁ[‹+|V’î9éwp-ÞÚ÷ûÀ1åçŽoÑ÷¦}‹†)^ñƒÂI¼®Dñy%¡øñqþ #HþøL—FHÇÍù´ä²M[v\ÜéÀ=Øw¯FI…5Y…W.ÿ·ë¶0bÜR^zw%qÕa°»f¤æ CuÀ³ø¬ïŸÝ&{NhöY«ÆõEŠùŽâ^fâÔ±Ò=þ­Ä6Iëë‘JëÓzï¸ü³Db3R>¢)RS‰&HM‰U7Ejê]Ï ¼ùVxùñ'Ë7ñÂ;Å<ýÆ·lÝîÛƒ­Ú¹Ò†:ϸ#È®o¬1æ’ï¯>¸ibR»ÄAaÕ——ž$9öQY‡É×ð®K[Q²•‰óW1î½U|²<ôÎ7ÓŒ1¾¡Þ²Á™„0îø8>Þžÿûë=Jb1 @Ú'TEE3ŽÈ0ßÄÖ'>Íæ-¥ü­h-ãç­âOKâ›ù°\cŒ‰|*èD|OÝ·Ÿæ 6gnÇÙÌ•úgÂþ'À4¸zïZó­‘ žpx Dƒ¾šï†œ–æä‘Zz@r;ºN¬-™À{Φ]d ÂÓ…L•äp³…tO(¦[ê­v€Dº€­$-ÐPÙ>ñrƒ÷“|HæðÔ™ø l£j©ÝÔÑhW±° +Íüü*kkà`ii‰lJpꚪ=ö•æ“æjkk+{÷ì.EíSJe4–eÑß¡ê+Òæ60M“LÞ@A¬¢€¹„=ûÙ𶕬<°àX|W Ç:݈MÊE„G/òÙÅ*A¡$w¯Œ&ÞnÙx8+J=^È÷öþdãølÁÛ.Hp.oº&Å̧i;üS”Do(6`Ã0¦þê˜v‚¯«ðçJÄc™–IEND®B`‚x2goclient-4.0.1.1/icons/16x16/create_file.png0000644000000000000000000000112212214040350015452 0ustar ‰PNG  IHDRóÿasBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î<ÏIDAT8“;hTQ†ÿ™sÎ}äÞøÈ-´Pb,ØIË€•µ Z˜ÎB±·[ "Zll±“€‚• jDÐB„ „˜¸Éz7Þ󴈻îu³ëL10ÿwþ™áP£Ä……Õ–½m­ %õ^×ξ!àʽÆSéœñ ã¨WümÝŽëR˜Wû}ÑÑ=¢\mº[  –KyùìÄ̠ן½maé#!Âûëç&ëŸåúâËÍKž0Av˜}!Wçjü³tõÏ7ÞÍN§µ<晋w7%¨ÿ"Ixúº…SÇÆÔ£W[Ç“xãÍÖ/еÍÛ¤€8]Ï0;•‚™@L?–¾ŸŸžHNb_zd$`,æq˜ÀVØûó‡– §šÍfŸ™ÿBhç0ÆhÑÛ# ¥öÁåå/`æn !*u'·‹(¸ í,˺B"êtê$†lIY s'ÖFP¾PJyž÷ÙÝmŒ,)ívT„ V²È²x °³@PR{¡Ã?€X¶:#ô6ï’)ˆÈW.ˆ•¯kö…ñ cÈ8°µ d\`ëAÚzþ¼¢mI®»õ;Šß[€§¼†È IEND®B`‚x2goclient-4.0.1.1/icons/16x16/delete.png0000644000000000000000000000125012214040350014454 0ustar ‰PNG  IHDRóÿasBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î<%IDAT8’?hqÇ¿÷»»¤w±ÿj¤(X¬õÏ ®qrè ¸ˆ¸8ˆ:êàà`:‹Jq…"â Ñ¢K¶à`)!‰ü»$M“»Ëåþýžƒ¤Æš†|àÁûñïý"B‡ØƒŒ<¦²é­_KÄ'ÿúADÛñäCu±XwøóÄæëÙÇÙÑîÚn±Ì-UîÕ–—J¥Èu]z¿Ú\¹³P89àþËÒ¹¬f7ˆˆ à ˲ˆsNk™Ö¯‡¯ÊWú x£I€ªªÐ4 ¹\GÊÑk±ñù¹¥êÍÝVÀàÑåýo—·nýȵ‹º®ƒˆÀ9G>ŸGdL 8¾›@è¾Âí…BìÌThé©`¨T*!ãíwŸg*¶–*»é´ižÿz÷ˆþß2š{âÙÇš0ÿÉÀ‰CHfìQvéìhd*˜Ž•«;'º²„¤O‚º¼nšE›\ŸAbdÕD|²ÑWjP0ÚG¶â Òô`»%ÈXygoOÁP@Ø´B¡î¢¢{°\Žá!Su ÄX©írˆL@ÝðÑvÿœ¹eóÊ@ǧc k‹ ¨›>,›c£h×Òšó®—àŸÔáÆ|~f<$ÎåK ïËÓëÉ^‚ߘeŒx§!ÒIEND®B`‚x2goclient-4.0.1.1/icons/16x16/edit_file.png0000644000000000000000000000121112214040350015133 0ustar ‰PNG  IHDRóÿasBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î<IDAT8¥“»OAÇ¿ó¸ÙÝ›õ |`qÁHlL,ÔFr&ÄØØZØ©6Ú_´5þ6vvFCb,L(5‡<ñ|À!wÙ]vwà†ƒ†_2Åd¾ó™Ïo2C¬µØMq¸vÿǽï¼6 J[jŒ%›CóÔž…¿iýáÑɾ€AÉù•‰Á£Û25ÓËÙð\íÑâó³ãž|ÝŒ§n^º“8³j'MÆ.ž*Ñ¡‚alÄ=yæö܃éZež®莀85p8A/4°ÖâK;iDð–2ƒ#év›{‘Áá!•PƒQ`±«Í“—Ý[¯jûC  ék E£µŠN ñéWŒÑrõ¯Qo¦¿ýŸY7H Ng àM (zžÖWpµZÆ·…U9[E 7s ”fcvyŒàîã6®O–ñ¾¹„±½]|„».¾É€³PJ J)c „€…%;ä¢zÜt‚ñ} ®ðá9P€Ê8#9@g•¢\ráp@)aßbÀ_[wœT Ä&‚¾ïgúÏÞ-ãó÷‚ð.öÀùFkE7R‘èÚ| …B ¥›….WK ´’Í ÙxÙ‚'†%&(º^OÊâ–p¿âŒX&d ´ýÙl«ie@e©2 Ijh¢-Õ$Ñ–j’¦–~ü«˜èìÈn¿ó?uîÏínƾwIEND®B`‚x2goclient-4.0.1.1/icons/16x16/edit.png0000644000000000000000000000122612214040350014142 0ustar ‰PNG  IHDRóÿasBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î<IDAT8S]HSQ?ûh…‰&"ZAƒ"¢(¢E¯¡õàKƒÞ""zê!!‚YÖP(°z›EÍ@BfJßcK!g¤L2wÅ}y×¼·uï¼g÷ÞÝûë¡&n×8‡ß~ç²\L;k*,{8Q›jn¬éY$.wêxœSx*kø™Qe¾£Àš›%vGi$K5Ä9"Ícxj-ðæRcŸ¼­nðïÝê:3pG´œzòÙìÖô½j‰Dò”2 WO¶øÝk$p@£syÏŸ¾«nÏ–­{$r©=à!š¦š¼L´„6š”;üÝ—]äzž’Î@ªZ€EJÅ·ž„5s¥ôMѰ,¯¯ÉÕÛÁ‘• #“”7;¤Ã_ǯë;»âqЕõ¿[H&'úSŸJ¢Àõì‘ÍWð*]Âý¡6” Š›£óø1¯erúlø]%³ÁÞ! óÝÀ¤ª£E0g—CÛ€ï J·,¿8¾+×-Мù:]DÙ¤` àT{l Ëòø‘öÜ¡ÝÍ ¥¹¼7Ç zèLµ^óêF?@Qøùåg„0mÿ½¯Z³Á¿°æÖâXˆÐ•ÍSpIEND®B`‚x2goclient-4.0.1.1/icons/16x16/file-open.png0000644000000000000000000000112312214040350015067 0ustar ‰PNG  IHDRóÿasBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î<ÐIDAT8¥“ÍkQÀo÷í¦IpkRŒ?°(hr6¤‡xðo=ùx󦧘«ñäɃô¤G!è¡ ‚Š5T¬X,¡RkÒ$»ow<¤»ˆ1±àÀðÞf~3óÞ<%"üh€¹»­C•£Þ«óÅ” CQA(ÖŸŽÏ?tgvƒ½sOo—¶GN/”j9›®U¼Óã2u|aù«õ¾Ñàx½NÛ“LŽV{9•w¸q5WøxxíÝïv ÀÍΈ¶˜ø²éÓþâ¥UyþþÚƒ¤…+Õ ×—ZrláÙ¶Aó—=j•ép«v„H„ÚEOÝ|´îÅvU½óùšÀã“y›Kg3Ð÷#^¯öI»Ã²Ddj·F&ÂOtLQœ)¸øFBaÚÁ72N­öNànîš!@@ÛPÌ9 L4)0Iðí{ ÃC  ”p"ïPÌëÄá_¥V×4ë³o4€¶Õr–b..{rƒ@#ö`RŽb®”ÀÕ WÛÉí›p°Ý1˜H6À”£È¸#Ó;|g[¡mE&5<‡‘ðb¥K`d1¤©1ÁÛR¼üÔ“a!® ¤€{‹[†¬´}iÖg߯€ÞÖOã7—;þ׬Çû_'7$41ST¨IEND®B`‚x2goclient-4.0.1.1/icons/16x16/gnome.png0000644000000000000000000000071712214040350014326 0ustar ‰PNG  IHDRóÿasBIT|dˆ pHYsvv}Õ‚ÌtEXtSoftwarewww.inkscape.org›î<LIDAT8…Ó¿K•aðÏñ^4®‚ ¨›D 68*¡ÑÖà4µµÔèäB£þMBC Ðp×¶¦œ…†ˆ „L8 >W®÷}{áðrÏ÷Çóå<‘™š¾ˆÏÌóª_ÃüÀËÌLM…;ø†Ò?G–ú…nfRœŠˆ÷±{¸……ˆ˜À«êèqf^À°êrQØÅ*þâ>æ*õϘ¾Âà]| úxZæóåßÅìa®íK½¢¸”™ÊuzXˆ8ÇÛÌüx-éÊþf‹›ü¬lêàZØC<ÄÙà ¾4`§-àij6‚Íàw<¹/ÁJ¸…Æ…«¦\®h ~&±…Gÿ ñEþN™•Ùn¶tð¡"y‡íªßouPmÝþˆ,¾bÚåû¸=8MÏ9"VÊ^,ãýÌ̈˜Á"N2óÏ? ¼aUú%ׂIEND®B`‚x2goclient-4.0.1.1/icons/16x16/kde.png0000644000000000000000000000160312214040350013757 0ustar ‰PNG  IHDRóÿasBIT|dˆ pHYsüü0|·q§Þå£ïoóÓò¹¤G*nXÇÅkuZ[;ÔWï5Ô(ªF‰Å ³É>'v:!_\ °áˆ_ øö7£Â‡ ¶zÄz q¨UÆ’¼\äìñ®®7Ih ±»D t~ƒívŸCYN¿t<Ô9G!cx÷Ü*Ÿ|}ŒçØ“Oõ?¢ŽÐ$yããeÎ+2wd a˜ Ï£iC”(ðO7âød–ÉØM*j(}~™¿ü>ñD’Wž½Ÿ¥sW©n÷Yßh¡¢8@OîËöjÌìßÃû¯ÎóØŒ²Þ‰177FéÔÇŽŒrò™"¿ÿÝeœ †òi„zÅrýVƒÏ~ð™.$xýÄAîTÞ>¿Á G»<:7B&§Ù qVžCȧ=ðf§¹°Ò#>Và’_cøñJ…ÕFœÒ…ô}lׂ*Ö)ÎwÓotÊÛaj2GxÜC#K,“ãÍO¯àwxêŠâĵˆ1dóinmmu¼å?þ\D¥4¹o$åD†•EîU7F‹é¸@Ü®ŽâW+meñ_F1EºOdwkIEND®B`‚x2goclient-4.0.1.1/icons/16x16/lxde.png0000644000000000000000000000131412214040350014147 0ustar ‰PNG  IHDRóÿasBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î<IIDAT8cøÿÿ?1¸bñã°ìÙóÑÅ™€’…]Vy±'ȘmÁÏ? ÑåYpitl¼Ïê¡ËÖoÑ*%À$ðìÿoüLü ±97sÖC£%ûŸí{ùêÍÿ7oxíÑçÇî1#«eA³•ÑAƒµ,Þš#_EœYÝ2UVË{¯þ–000tÂÄàa8õ‘b„9û¦{Ž6%1„æçþ}Y~âç”ËOþÜffb`PevC6”‰¡fÙg[5Öb|L|kÏüê;pã÷ýÿ~ýa`Øvé×”o©Ü]W~§Þ{ý÷¹’(³YÔćrpÂúª|úþ?ðÐÍß¾VößýËÏÉÈsóùß/;.ÿÚ¼ýÒ¯*†¶h™ƒ§îýY,'ÌÄ£+ÃŒ5“§=_²ÿÙúå¾ôònúŒ‡2Èò‰SÊœ¼öòÍÜÝϦbM*bÌ}·^üÝd¦ÌªxèæïÖérOåçeÉ=¹öìïv>FeŒ@,ZðØöã÷ÿœRL‚ÏÞÿ=\"=#ÎÎ=ø³ø×ßÿ¨86ÞgüðíÑßÿ'³23Zž¸û'›f†ËOþì~ÿõÿo¿ÎÊp¸ex9«D˜*ž~øÛ<'Sî%.ö×+þgab8¨*Îì7`}©Âc6¥·_þª •YŠK3 Üxþw»£&J¼üø/àð­ß±„43000\xôgë÷ÿDÑèÐp…جýÿÿ†ˆþ†ÿÿÿgÒàrùÈß~IEND®B`‚x2goclient-4.0.1.1/icons/16x16/mate.png0000644000000000000000000000140612214040350014143 0ustar ‰PNG  IHDRóÿasBIT|dˆ pHYs|4k¡tEXtSoftwarewww.inkscape.org›î<ƒIDAT8¥S]H“a=ï6לûqêf®re:§­¢™”V$…†¦L»,* ‰."!è¢ûòªû„òBºJ ¤’¼p†éœÎ™â6ÙüÙŸúíÿéÂöñIë"z®Þ÷p8œsFDøŸ‘d JÔÍÚâ¼JL+‹sC›;îÈæÎ„g9ø’ˆ8!— 0Ƥ¥å…ƒí暊ãÅj!1à0Ô?e[ž÷ßßðíŒep–(­@DñT2=0÷Ýë‰q‰=®Tš\Xï±Ô7W ˜OVvîqÐØf^ˆq‰ùE»ï‰g)hcŒ©Êªu½:½ÊL¥šByùù&c™T¶›ø}ßôü—!»…ˆ¶%P ÍKY7-Úý§-õGÞèqÍøn ¢©WÝu2y.µ\(Õ à¶Ä ¬Z§m¿[ÛÕz«fÜtJÿ€1Æ~G §¸>úÎé¹B ¥Ffâ;nR$f¨»|ÔÔÞU÷üb‹i¤Ô¨k‡Ã ¢ž'%/mÑdŠ€£Ô%3O±x×Ýn+ÉD ãŸm®iß3»ÍÓŸÁ­V«B®ÜW•ùÇ9òò”N3˜µyÝ?¾¹û&¿.=%¢¸ DE…Yÿº£»Ö1.ðFl–_㹫FclÂ5çïYýX*9Xp­¸TùX$%‘NGÕE Ã…–J“LžøðjÚùyØn!¢- ÌL¬Ü ®s#EEòÆû‡¯t;[eÑ«²u3öѹôÅÑ!¸Î@,ÆÅÁÔQ±äÏnkÛéÁ7S“«Ë‡k«‘Q>^¶kÔR7çkrÛ”ùrƒˆQN8õ7¹I¿;ôBØÍ_þe~âµÃ ~IEND®B`‚x2goclient-4.0.1.1/icons/16x16/new_file.png0000644000000000000000000000112112214040350014777 0ustar ‰PNG  IHDRóÿasBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î<ÎIDAT8¥“AkQÇÿ3³»ÝÍK´ˆX¡âÑ"-(xó(¹èÍàI<ü^Qâµüzñ¦/ÆK‹Pki4%) McÈî{o¹¹ùÌœwíaåôÀ¢ÙÀçÞ2Æ£0>/òÓf†ˆ€ˆ "0n„Ì3T íá.ž[Ä^ °e@ Tü±8èÎãc¯UîÁ—ŒÁÜ\f#L| E2ªV«¥˜×–çó·‚‚J<¶ãh_Ë+„áȘ8-˜DO©—Ô—•8S™ ÿ«!•È”Öé÷­®}k=(µÊÖƒÒÌsꔥNÙyP–)·:;!—߀ŽúÿPÖ9¤÷œIEND®B`‚x2goclient-4.0.1.1/icons/16x16/preferences.png0000644000000000000000000000052412214040350015516 0ustar ‰PNG  IHDRóÿasBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î<ÑIDAT8cüÿÿ?%€‰"Ý£Pdž˜ÉOê¥Y<¹Ù™~«ñîË_\ßþvdøÿÿ?ƒCÃ=¡¼ùÏÎ}úö÷?1`å±O’§?‰ÿÿÿ?ÃÿÿÿI2dî¾wâ§>öƒéƒ@ÈÿÿÿŸ¸í͘Im‘õ €Ë?ÿýïØðêzhß#=tõ òó÷¿ÿ «_^ôj ˆM-#®ÌäØx_HOžc7;Óßã·¾yï¯W|…MN †ð200üß_¯ø—¼y6$+Yš¸IEND®B`‚x2goclient-4.0.1.1/icons/16x16/rdp.png0000644000000000000000000000136212214040350014003 0ustar ‰PNG  IHDRóÿasBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î<oIDAT8¥“_HSqÇϽí^ïþèæîš¬Õj[hþ¡5AâCR)EE½…°W ‘„òÉB‚Œ‚©^*1 ²‘Â,§¬›ks¼·ÍÍ9ïïn÷×K›P }á¼ü8çÃùžs~ÆþGŠõÖÆvF¯Õ´–3Þ‘ž—0Æ…hëê}ïC\HÀ¼³øÆƒWkM®õ笢ØÂÓÑO©sÍN Àó<‚·†çB¦rIRS áøCÓVíaÛcˆ¼{Üu»`áÈÙî–÷;5!@$IÀ'8‡[Z«X–mÞ¢b›­f” ZܽãdàØ³ÓmbU Iä!ÞÙhÆR™UÓ4 4MƒQKƒ’¡a|ò›È—î– ±¼ÒX?8>•ñse9—cêmÝìB|ñ˜ÓdËòñÕçroïÈ…¬í*$Ši„$\mßeT*•Ì çG8š@‹&ƒš (ªPŒ€™ùàÇ’5ÖÙÍݽWZ«ÅÌ ð<V}–¡È\ÕX<|≄,l Œ†˜*’$¤hB\ó~ñ·•µ–ã´‚€Ôï!ðqáøºmû]Û©hºLVk* Ía#F&BÃ7ûVK;¨¶ÙQQ1B‚ E¶É¥£˜2\f–dYô:|ßC¾â;"ž¾~Æå¨Q{¼ydbN ÿa9K9’*ÞRB„ißÏ’S&eqúRGŸ;‹?ã<}+ûO]=¯×U\´›µ‡ò…ù!¾~7½:ù¼ûQ1€øÛgržì8ÑPcéÙ[kÛÍ0err%#|ž™ºw¹sS€ÍŠÜ8åßú ë6Ñp >©IEND®B`‚x2goclient-4.0.1.1/icons/16x16/resolution.png0000644000000000000000000000067612214040350015430 0ustar ‰PNG  IHDRóÿasBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î<;IDAT8Õ“ÁJa€¿ÿwM·M£¨”„b1'ª„EE:æúéØg-•j<Ô ã=A»+1 ƒäŒËDXj!|)¥¤Úr)·-zJŸ’žà¼hU6–f²«Íþ÷Ù]—“[\̲ÎÁÙ[e èö­l¾PÏI‰øñôŠ„r]‡@@\;¯ s þÿ3}£½eÇ7²‚bIEND®B`‚x2goclient-4.0.1.1/icons/16x16/session.png0000644000000000000000000000151612214040350014702 0ustar ‰PNG  IHDRóÿasBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î<ËIDAT8u“[HaÇÿß÷ÍìÌŽ—YÍ[Ziº®jÊj-1 )„À)„.tµ¢‚ ’Š¥è¥‡z**º@=ø$$’RI¤¤•劋Kºåµuo3;óõ¤¸¦çñpþ¿ÿá\ç …³Á-¬Î‘Ï Æ"Ū‚é*»T_™òbº†,p6¸3‹-M‡¶&•”ÚÂ(A—'Œ'ïÆѹVœ-WÛ¾¨ù?@m-Ø`û„U$õ5¥‰+⬠EK%4uúQ½^…=Âó‡14¡NG¼ƒÎuöô»(Hç&‡BNîHAíÆD\~îCK·_»ðtx@)ê6Û ¬g0Ü(ºòÕ¹9ÅÁ ªK@)òÒ%ÄɌ؀UÙ2(þ†ÌeÂl@¼!S^>òÍñ­ËU²(%8¿+û‚¢Ó¡Ø 1¡ZÔ¤1ð¨>bèîò„Íé|V²ˆêRé6ð¦'€¡±(2øp­p”ƒÒTv¿n‹­h¾ítyBxÒ6JÇ…¹é*MÛWžT±&Ç*€wLÃËO~@¿OÃçL“AHýÛK¹-1€Ý7<ªÖ¨ûK²å„[M#“ËS-ñ[Ç™w, °Šð…tÜð¬Ý•ûfU×Ê7Ø­WoKNmþ2…¦Î©{!Í<­ñ25MÎÚÎ+Ú]yßg›R(¿ì¶çgXœ­JÉ|ÿ3ˆ‰ 4•í ëœÅIÔ4L¾'á9­WbÅ@6]ìK^™%µÝ<˜Yèù£áÜ£¡Wa÷Š §¦"\€YÒë»Ç—TÎ7Tac¾u­n@¾Þø{² SJE+)ñ‚M¡ºÀˆ÷׸Þ1Ÿ˜õLÎ7)Z*­õŽ fÞ› š–8‰è/kwå-˜¹ƒvW¿stI‡(Œ–™$„U…iªB,$€œ åV’Â>IEND®B`‚x2goclient-4.0.1.1/icons/16x16/tbshow.png0000644000000000000000000000045612214040350014527 0ustar ‰PNG  IHDRóÿasRGB®ÎébKGDÿÿÿ ½§“ pHYsììu85tIMEÙ  t³ü®IDAT8Ëc`F†èIë¥Y<¹Ù™~«ñîË_\ßþvd````ph¸'”7ÿÙ¹Oßþþ'¬<öáIòô'ñ(&kÈÜ}ïÄO}ì‡ÕYø ù÷ÿÿÿ‰ÛÞ܉™ôد߰òçï¿ÿ^]í{¤GT!òó÷¿ÿ «_^ôj ˆ3p¢'ϱ‡›éïñ[ß¼4(½"9Žîñ:4ÜãæI¹—¼ÂË~vIEND®B`‚x2goclient-4.0.1.1/icons/16x16/unity.png0000644000000000000000000000260212214040350014364 0ustar ‰PNG  IHDROc#"bKGDÿÿÿÿÿÿ X÷Ü pHYsHHFÉk> vpAg\Æ­ÃDIDATHÇ­•kPÔUÆç¿7Ø•E•«( °^ÀQÐÆe¼5¡Ø¨HšyÅKy+/d]L» fS:΄Y¶#ŠN2*dN‰ŠHhM1 \`aOJ)ц™ø}9ÞsÞç™÷<3¯RJ)éL.ëÈ”²zÑ¥àòµpeÔÁ¸³‘P1±0¯¤?4†[ëëRõ´€ñÿ Ïð·G§…ú‚iVB͘3à±0×’“ñê»Ð7:ÂÚÿ¹Îþ£ƒRaööìä “ ß']6 Óâ„°1Vðô ½ê—}oGëo†À×Ç9g‚At|èw \”1[¹usÝ ŽÆÊBÕ9¥zÄù îõ8¨Âµ©š;PåèÒµc¡Ç ïD# f\«¿Õ³..ÓÇÝ gߥ ,"FÜ€»ïÕ|`Û.ñZƒîæÝz©¡Ôâ¼È¬û?#¯:|±¢l4Ù«5wŽƒ-åfÛí­àüµmU»è×xÍ3êAßâu­ªöþØTž j£>`½×>¨ã:Ö‡÷VuÅ@[jË ‡´Æö=ÐŽcS{ŸŽz7‹jÿ:©Í†@avY ŠyôæÐªŽ‹r‡,S@®–5r<(%j½²¿ûÂy?C¥Ñ†ºbÒ&Ìy T?kN¨›¡-Å^КŽ€&Ss)ô Îò¶uŸ°K‘û1C%„L‹û&2Ø rïvöûÜZ³ZNÙ¦Ùcámùæ+&^’”8i9˜¾Qã‡Æ Ò¾QgC’º.,¾3Å-ˆšöBLÜNpñí¹É0[5: 脹"y݉RÚ’+‚kÀ÷ß¾y`Œ®Y©žzF(Ë"&ÕM¦ºìÚ;Û“àºõ„¶x<´EÚCZsÕÿŽ’8"V Ãf>³Ë¦°™icÞø»¸ó!ËȹÀñi{‚”ű{ä‡â‚Œ˜¼íàXhÿ¬% Ä2qL¼òyy]FüǨ›{N4 …Qæ>Síæ7=6ú6ˆÞÊHñÚC–Ñ£hºSQ¿[Ê«§¨¸z¾OÉÇÐj-­[¢P¤ nÙþîžOAÀä¿°ù0° þ§(+è4ÆÑ®?t^Ã÷ø²´·}z—O %tEXtdate:create2012-06-06T22:37:01+02:00l;%tEXtdate:modify2010-11-05T14:17:07+01:00À—É[tEXtsvg:base-urifile:///home/mike/MyDocuments/4projects/x2go-upstream/x2goclient/svg/unity.svgÉ·K|IEND®B`‚x2goclient-4.0.1.1/icons/16x16/x2goclient.png0000644000000000000000000000166512214040350015302 0ustar ‰PNG  IHDRóÿasBIT|dˆ pHYs»»:ìãâtEXtSoftwarewww.inkscape.org›î<tEXtTitlex2go Logo}hûptEXtAuthorHeinz-M. GraesingóQBtEXtCreation Time12.06.20071¢"tEXtSourcehttp://www.x2go.org/artwork²rÛPtEXtCopyrightCC Attribution-NoDerivs http://creativecommons.org/licenses/by-nd/3.0/e‚Š,EIDAT8“1K#Q…¿™¼„™™H´Ð ¬V±ðX…••µEþ6vÛ$¤,»-2‚ €JŽ5óÆÉl¡™5¤Xv/\x<¸‡÷ûŽR­V–J¥åX,¦ðAhYV[”J¥åÝÝݾïó½ ÃÀó¼h@×u4MÃu]|ßîUUUU)%Žã`Û6N‡ÛÛ[ºÝ.———ìííqppÀýý=ìïïÓl6?‡b±š¦a™L†l6ËËË óóó”Ëe„,,,ÉdØÚÚb}}ýó_! ~GÃ0 §ÎŽãP(¸ºº¢×ëM ŒR©étšl6K.—‹0fffX\\Ä0 Æ´@ ‡ÃÈý~¿ÏÓÓ¶m#„àüüœíím*• §§§ ‡ÃiUUQU!Bâñ8š¦‘Ïç)‹$ 666ð}Ÿ³³³i„x<Ž®ë$“I ÃÀ4M–––¸¸¸ˆ>i𬮮R«Õøøø˜Dð<×uq‡~¿O*•²,®¯¯±m)%‰D‚ÇÇG ÃPQŽïþ¦qÆW½^ÿ%,ËjŸœœð?q¾¹¹iÿÓa53y") IEND®B`‚x2goclient-4.0.1.1/icons/16x16/x2go.png0000644000000000000000000000152612214040350014077 0ustar ‰PNG  IHDRóÿasBIT|dˆ pHYs»»:ìãâtEXtSoftwarewww.inkscape.org›î<tEXtTitlex2go Logo}hûptEXtAuthorHeinz-M. GraesingóQBtEXtCreation Time12.06.20071¢"tEXtSourcehttp://www.x2go.org/artwork²rÛBIDAT8•“1Kë`†Ÿ|ùZ’ÒÄB ­*ÂÕ-ƒÀA¡h\œ\œœŽ.îw©t7E‡d(È…‚ AiÁبÍ?sÛ«t¸xàÀáÀyáy¯±··÷Ûó<Ï4Mƒ”Ö:ó}ß—žçy[[[¿Ò4åk;ŽC’$£Û¶±,‹8ŽIÓt´¦i ¥Q†!N‡v»Ííí-çççloo³»»ËÝÝ÷÷÷ìììpqqBÓ4±, Çq(•J”ËežŸŸ™™™aee)%sss”J%Ö×ש×ë†øäA)ÅÛÛqÓï÷yzz¢Óé°¼¼L·Ûåòò€V«ÅæææA†ÁÇÇZk´Ö¤iŠRŠ$IÃÅÅEšÍ&SSS¸®K¡Pøç€b ¡Z­R«ÕPJ±¶¶FÐh4¾}C~Exyy¡ßïÇñ¨___©T*LOO#¥Ä¶íoâ+B–edY66GQD­VãêêŠn·;.0D(‹LLLP.—©T*#ŒÉÉIæççq‡V«5. µf0ŒÜïõz<>>†!RJNOOÙØØ Ñhp||Ì`0GB „@J‰”’\.‡eYT«UfggÉç󬮮’¦)'''ã¹\Û¶) 8Žƒëº,,,pvvF½^Àu]–––h6›¼¿¿GH’„8މ¢ˆ^¯G±X$®¯¯ Ã¥ù|ž‡‡ö÷÷ÑZÆáááÍÿÂ4 Òð#Ã:::ú#}ß÷?óðã8Aàÿq3>!…±IEND®B`‚x2goclient-4.0.1.1/icons/16x16/xfce.png0000644000000000000000000000117712214040350014147 0ustar ‰PNG  IHDRåjë©bKGDÿÿ«1Í pHYsHHFÉk> vpAg\Æ­ÃFIDAT8Ë­’±KÔqÆ?_t G³OZËM"\]ƒÈN¡’ŽMÏ@·ˆÔ”ô3„ 0‰Ah(èu7ð èqç \3 ÄKh­¾›<Hì¬Ý le®”3­=­ªdîY—µ^WUŒ›±‘±ú ¥Îs8¬ª7W¯;<=ýÇ£çNHþ/Œ·ªî%¦GÚC^Ÿí©ˆÛŠÛ—JëýhòGèþë/ý[%v|bfÂë­v•(ˆH°ús¤¾×ØÖc[u¦Òª5¶%ƶÞ]Š¥ª{îÄÛÓ³9®¨êÙ"À¿šù{ÈŸí‹ß-ªýçfIEND®B`‚x2goclient-4.0.1.1/icons/22x22/applications-development.png0000644000000000000000000000172112214040350020215 0ustar ‰PNG  IHDRÄ´l;sBIT|dˆ pHYsaaÁ0UútEXtSoftwarewww.inkscape.org›î<NIDATxÚ¥•kLSgÇÿoK‹Ð*6J)-¢C4Ó(NLÜB¢DÜ>Í ,©—Ä/ ÆíƒU˜ºðaÂ>Ì-N"Íʼ ÔxMœDƒT‰›Z#Njk­Ò{OOm{^_Ìiì!§î—üó|yÎÿ<·“C(¥‹[7o‘Ç«ƒà¶ôôôüââbEAaA” s‚ wFQÑq…Rù/ÞÁ¸ÆÕkª~Ÿ_ÇLi¶6›èõäètX·Ö•*¶ÁAÞãñ™–—·oªNçE2ŒAOOQ¤)Ž †]ç»ÚlmÁäÉY­Ç…-w,aô%¦nï³X†ëêê!VqJjo;~ÆjµÒÏSŸÇC­Òþþ~ºcÇWjjj䉼4¤H\ˆËجæ8tvÇ3û3°&PYY9'áƒ&“élf¦j“8ciÔ××Ï3~i<­Ï×óf³9—UÞÆî9Î%¡PȸjÕJRUµíím?I6nhhP–-,³L/*˜ÛÝÝý0&ÐO·nÝò"FãÚK” ËYµƒ/^¸>A"jµzÿÇåesG\®¨Ínß0MPZZú¹V›Óìt:j;;;ã’vøÐÎå>· ÐÆÆÆ½ãåJ^ÞµfyûÆòY_Øú&Žüå˜õ¤¤¤ä$0þiíA­ÿ÷<¸‘O‡ÎÊiSí”]RÏrÌ·l'‹?[¢iJŸ`À ûó¸wØ1rÒx·ñ·›‰¶ª\yr¢F—ð¹áö†ðÛøñûSôŸÿe\¤‡Ù`È-ä9?Â!7®ÜÆßÑ8öñÞÆÍµd÷²ò©JEڛ؜v'LÍ4 ‘T—ÇL1ßq.#ôªwu]ÒÐ{Ç@¿®Æõ䜔—÷óN¢\úZ'ir3CA8¦ûO1"“aRçíORá AŸSJ@²8€Û°»åW:‘”Gqf?>q^PÇb½³éó‹YôîQкõ87V›’¿¼²ÙäuV®Üãu#à÷ÁîÂÇc#D!‰îdLr1’DmLB’â£ñqUÓW¡â?x7ž§oà»W1óP)Æ[¢L±Ñ(*ÂÄ‹Šˆ¦1ÊøÏ?ÏüÊèõqMþ0.›ã¯˜8¦ÃI&Qöœ€qx ÞŠlâ WsƒIEND®B`‚x2goclient-4.0.1.1/icons/22x22/applications-education.png0000644000000000000000000000120412214040350017642 0ustar ‰PNG  IHDRójœ sBITÛáOà pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<PLTEÿÿÿ qqqÊÊʧ§§µµµþþþ>J=ZpW\rY]R?^t[`u^bw`dybf|di~fk€irnseNv’r~™z€Ÿ|ƒ¢…£…¤†¥‚‰‚u‰›†‰§†Œª‰«Š¬Œ­Œ®•²’•³’—²•—´”™¶–›¸˜¸š¡Še¥½£¨À¥©À§ªµ©®Ä¬¯²¯³È±³É±´È²µÉ³¸Â·¸Ì¶¹Á¸Á¦yÂÒÀÈׯÉÙÈÊØÈÍÛÌÏÛÍÖáÕ×áÖÙÖÒÙàØÜæÜÞ¼…ÞåÞâéáâêáãêâåæåçíæíñìðõðóöòøø÷þýýþþýÿÿÿ|7<2tRNS3:?HJKSZƒ¾ÂÍõÈÇjsÁIDATxÚ­ÐÅ‚…al°»E±»»[ÄÞÿ9¹âˆ.ý7gæ[ä?ùÄ1õÏfQÀÞÂG^‹“6ܾٓߜÇY6~=ÀîL×jdª%~ÝÀ®TçrZÔöË.»³´ Ø™8ΓñÜtTá6îv9ò¿`;F!;°]ü•ت3=_蕘^˜æ–¦†·{Yt•Šý1ʬlǪ9ŠaFÆ U¿ÃP9Â&Ó›tä+©B£Ñ83@J-àöIEND®B`‚x2goclient-4.0.1.1/icons/22x22/applications-games.png0000644000000000000000000000126012214040350016765 0ustar ‰PNG  IHDRÄ´l;sBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<-IDATxÚ•ËK[AÆÏ˜hÑDIUº±þ ¡] ¢m*.Ì¢ núWH±`P©¯Vp!ÅÒm¡Ë.J¡ … X›ì$à®”Òºób„43Îý®ã;Þ¹/|9çäÜùæw'‡&„ ».ÆXB†'Ôüu½^Ø%C2䯧œóOö¶ /‰¼ˆj ó¶eù¼Û:êh¡ÇîÙ aÝ@3)šÚ¾DCpæFáÆ£bR)‚©nx26‚Ø“ý©›ã³EßKÙ.ĹÁNÄ·Cql¤ˆ=JAs Gk+ .VöKh¾Û-#.å*ND¿¯Üð=nÛðseN,\BB DÈ 2êpb-ç+Äq¶RÜ;g¿Î¬ƒÏx1ÕA´¨¥Hæ&±€NÓ£[£H £ùíªš ëÓaÆgç›!vß¶; 䑀Z‡žI ÄÂ$&<öl¶¦Sœ¼a`m'^M?˜ ,ÖˆÙk›S1½Q7G ôD· êû;R»N?lG?pŽ×^¶ÂìÃxq}"‚¨ÌtÂÒê ¤®Þ³2úSñæÇlðú{¤“ß8jVå‰Í-ÿ»£;ó[?Þ—WuUúìíÕtCëÛ­ç´tósÆXªP(äÿ^H:Ý€¹\¾¤~#”Éd>ËôkØ‹þƸZ­ælDf‹Å§dþÑj«E±X$1×6èO ÿ…¢ãd2)Õ1N'ÌTñ½þ,åºó°®÷{æÌ'mbIEND®B`‚x2goclient-4.0.1.1/icons/22x22/applications-graphics.png0000644000000000000000000000276312214040350017502 0ustar ‰PNG  IHDRÄ´l;sBIT|dˆ pHYsaaÁ0UútEXtSoftwarewww.inkscape.org›î<pIDATxÚ” L“gÇ?Š˜Þ†z1S<ë$*;`“¨,"ŠN@E.acÒ)GE:‘Uä(TŠ––ÓR«–JËM Ê}‹Š“«0ç6§D÷ß[6M43ò%Oò|Ï÷>¿ç|? ÀDdÒ¯ý=ºÔœÎ;eyuE²6µŒ7¢4~ŸÏ€Ô¤Ç ›»×#×I£Ñ¤HB¥ä *²CѬL@uNèßÕWÃ[zî\ÿxÂàQר.7@]‘æ‡69uIè*æ¢]É…¦å2 sÁ9s ü³L¨2™t+^÷AðÃòpzµ˜ù{µ$ç¿Úˆ½zS‘î‰î2>FZ$¾+B¶D ¹\vÈ)ô©.@•å?V# Yü^po)‡Qžvl¬¡€žœp¤,YÖäÉðÛl:žéöVðÑU%ÂÕ,$ÉaiNG·"Šdï¾ÿ÷”G/”‹ü_TJ0Øzšæ ¤úØã²‰1®ÅÇ`½ÝåqÐ4¥BÓŠÑÖt,“ØxPÅCKá9”¦ørÞkêc§)S˜£Šk´¶6¢ªüd1è­ŒÇpc:ÔIè)‹!z24w…mI'mIãZ« i£»$¼ƒÏ(Jç ¸Zì׬Ê<†Ž;rT«Ê0<<„ìËÉãÙ ÔÄ¡CÁÁpƒD×4$b¤I„¾Ú$<¬Œ†2I¹œéhÈg¡Xx7=çC¯:—Š| ŽÄÊe®øü³ƒèìê"ðad CÑ^øns1 ŠÂ°:†8O*ááQCÔfÏE[¾j® "Õ‰ì½.”ƒ¥£xõµÝ<ívÝùb•×,󙳯ih–†’ÒYP‹™(à:¹ßlp±á4Gmû´~ï‚'iKx ÕʶmË?’ ¼ŸÉ/ºã°³¬¶/Gis|{ n¸dûÊœN{ð­ÝÎç¶›6™NøÌ`PSR«ó"ö£,ù(ÊÉ®’dqà»gÍCc#=纺[­V›vxíuèÛÁ`LŸX[ÅjÚ,ZÆYû§Rž3Dl»—ŽVÆu&óõ}õô(švÿ[lµvUŽÛ®oò'~×!{G_4o†½®.ea@Q³µ@mÐwÎM]·t© ƒa?!ð»ý |ŸêëÏ}­ÿÙ츙 ã^íIEND®B`‚x2goclient-4.0.1.1/icons/22x22/applications-internet.png0000644000000000000000000000251312214040350017523 0ustar ‰PNG  IHDRÄ´l;sBIT|dˆ pHYsvv}Õ‚ÌtEXtSoftwarewww.inkscape.org›î<ÈIDATxÚ•]lSeÆŸóýQºvk;ÖŽ›C˜Œ „ñ)"¢7*„„Ä@41&ê…rÃáÂ{/vc"7Äxgâ…õBC B„„ ¸•eu@·víÖÍv]{ÎNÏ×ë¿‹[‡°'yO/ÎùÿÞ'ÏóžS0ÆV½šãŸµ¬öY®qù?µ$Nï”eáD$>œXÛÒ'ˆ‚æ2q|,7\­—ã~-åÏý…'õt0•ÖÖ¦Ž í§ß<ÒÃ)šŒ\®ŒRÙDÍtàû>ꎃ‰Ì42™ü×Ìó?§ ¬g‚ ºååíÝLvD!)2þ¼šÆèØ,^@(¬Á«™ÐרhŠèÉ"uónÆvœ· >ºÌƒª-‘Ð…>|=™+,@V(Ht¶ÂWÈÞÞv”‹†…™™vïÛQ7Þº>òÍw7œ?^kx÷Ä ¢$Àçy´%BPd…f Å’‰‰©y<¸œFj8 ]æ! "¶lnÅý›À3oãõ+C_8óH´[_Ï 7NÜÇqäìµC›aû@vÎÄ7& j˜™­"=>ƒ9ÊšQ7iÑaÐo˜6âí*K ?ÜC®oòøOª*ìØØÆ1žÃ޾$L—¡l¸pÁakw²®`<¿€YËCaPP$Ôê á¶0¤– ´H”ÓuùH+à¶Öð«éûs(†ñÉ2¡îúà‘†éÙžGÀ$pª h*]z(€P$1 ÀóüWVÀoY^ÏÖžÎw‹`4LÎ³Ó p6–ý xöô&À)2|Z’*@ÐDÜ×Ý&Ê`œÐÓà-—oo¨÷3eÌ6|0ä‹5ü=^Dk%“à¾("HN¡ÉPDl0›ƒç*Á ^…j6êñepçaK†ÌÈíõTr¸wóóHM›È-ØÐ&/@RxÐ^hðUÊ:à1Q 6›¢p­%HÔ¢o‹£’Ð`¸r+‹m]|{i ù PIÍÍ:ÊT ªt¶¨‚"¢ÿ¥8ïLctxÅ\‘À¸Óà­”—/”® e+K"®ŽÌàØÞ$†¦ªøà`'>>Ü…£»Ö¡=†K÷e¼‹Î°a{¨š|FÅZ\§~í‘SQ®˜ß/Uæ8>êf¿f‘ŒpêÀz4¤¥¥Îì›cèßÃûû’ˆ6)ÍÎÃuYôQ*”€“ýÁ©Â̹ äAו%øÀ/wÑ¿¾ 6ªP¾:­æ ‚÷úbeîá»^£O؆J©r®ÁY¯ˆz8Ë[Õ\WTƒ¨«àÃW ¦óè Kè‹*8˜PQ¶<\£7P¤û™ðl éÉIÆØYžÓnff²øÖÃá{Ùc[B8¾w=Žl[‹éªƒ¸.B‘xÜ«¸ÈÖêäRB8¬"fW1wctÒs½cùç}5]“±è§kvts½û_ġ퉥œy*‰ÙR#y ]ºÔà½o*ó Aç}èWéùâfÕOÒIÙ©ÊJ§ ËV©âX‹õŒ AÓ.íÿÈÎâà1‰x†Ä;&p?ùÎâˆa–»«µù \28ÅkëÒ’ó˜˜F¹Þ`8OýkZ­8[åÀ¿pÊmDöJ°ÏIEND®B`‚x2goclient-4.0.1.1/icons/22x22/applications-multimedia.png0000644000000000000000000000251112214040350020023 0ustar ‰PNG  IHDRÄ´l;sBIT|dˆ pHYsaaÁ0UútEXtSoftwarewww.inkscape.org›î<ÆIDATxÚ•”[LTGÇÿç¶ËÂî²Ë®,E„XA(–ZSŒFW$1MŠIKz{¨/µé›MjûЇÚ6¾Ø4¶±iµMIIè6x15Zl)ˆˆ¢,ˆxApwYöçìíì¹töHˆ6«¦ÿ“/ßÌÉÌofþßd(UUñ4s[â½R\mUðìµäo1èhgßÅs¯x§§¶=\y"ÿÚõVOØ£~¥ÞQçðœ@j38ÚùÛÏGÞº:x©àXS³jÎÒ»9Fírßp~&xé¢áZ§ìkÉŽ×F»¾?tà½Dc‘Fû>:pË’m)}{Ï»±‹U}b$*f}sëýDwÓ¤íj¢ÿŸ æƒÞ`çÙŽÒþ¿þÌûXƈ,8뚟(~uoý…¢k»Ý^ ËŠŠ/?ûtݺêßö»<²twžkO ^àÃqÿœeå¥&&!r±PŒúáÅ&¥c¦M8:z¤¢¸÷¾¼kwcÙÈu·êñxׯ͖ª^“¾ì÷ÏÒmmÇÅ´—”¬nahæ ‡£¹$ñç/nûW!5öNõMp –ËvHII)Ir’dÒ&Yz˜h¤QŽuÙM«Õ‘LÔQ:(ЉdY‚õ† ‚‡BÚäÿc¡ª©¬BU”ô¿´©&×h4’À¬av» »77  #‘ˆ£Ãr ÛvÔi 9òò055E–H_Ör à·¥_èꞥhU• 6&áõz1mšÁÅîH&¾“Àܬýý—à¬Û‰ßO·aG¦¬L47»R§ ¤³Bó*)ŠGTŽkÇ$^j±²lŒ&#x~rÊEÑ+-)Ѽ&»Öjñ°@ÅÁƒŸ#(,h`²˜ö.ÇÚŒZÌÏÏk@…€†ÖÚ†L+?ùWTVXôz´´¸ÝGv¶ŽÜ\¬«®Æ$w³çC°XmX¿ÁŠå……X[µ}—!’Åk6mF<5§OÞžŒÒˆ(Ī ÚÛNáˆl±qluÖ¡§ë<îÝ™EG£QR؈Rvį¡2 I<Ÿ_¿±\7AŒã±)Љœ¢™YF(êë%ð<òË´£ Íš¡¡¡%750E´¾5õ+ê\˹ҕý ãÊð¢÷È #Ÿ¤Y"Å“–îêêòrD"¨©OôÆÔçƒ41 ÙXêuŠ)oÂÕLÝþ7ÍRa½÷–MÀ`D` ákWÁ²lªâÚŽú4¨FÂRZ´BØ¢5¨xìñ]¦ÚíÇ0cÃ8uœЧà~ KȆÍfÃrK“U©.µµ¼Ø‰ÇãK+ÈLÆ@…Âat>8ŽÆŒ’Ü"1î>„oIàh`"¨|¸Å›Ä q1‡HŒ“¸ =B+?a¿¥óÔ½™ÏQ¬5Ï„L‡»Ã üý菉h¿ìp†DÏÖÒÛ¬I팦MìZ®©Ý–èĨ¬Sb˜p—Ä4‰{d\ÿCÿ‚­º¥ÃTIEND®B`‚x2goclient-4.0.1.1/icons/22x22/applications-office.png0000644000000000000000000000144412214040350017130 0ustar ‰PNG  IHDRójœ sBITÛáOà pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<}PLTEÿÿÿ\Œ”\Œ”\Œ”\Œ”\Œ”\Œ”\Œ”(n&júŸauš°ºœIEND®B`‚x2goclient-4.0.1.1/icons/22x22/applications-other.png0000644000000000000000000000140712214040350017015 0ustar ‰PNG  IHDRÄ´l;sRGB®ÎébKGD^’Òè*³ pHYs × ×B(›xtIMEÜ ,“¡í‡IDAT8˵TMHTQ=wxÍä<5G7š5N -2’臂ĂĊ"×!Ô"ÑÆ¢U!Q‹ .‚ µÌBå¢(tD‚ô«?äÌhêü¾iæ½ïkãL3Ž3>%/|ðî}—Ã9ç~çÌŒXR®B×:0=Ìì‘ò\pÑÛ䆙³ È>“åÂ&“ Iå•x¯ç.Òm5ÕǼråe³²L4ëºÎš¦q¾‰„9q(dÌlœñ*zÒʀ˲ióF1ÆÿfœÍÄè=‘î_WßXûÔœÚ9ˆ+„»Òjj=ì@mµ ³Ùœ6 .)#”””61ó»Tò®=ù:0î6Ÿ:äÀέ2ˆoÓaÜ~6†ýî"tœ®ÎÙšÿ´lVtõµ{£ÍWZݰšM ˆV3£¢HÇûÏ‹Øç.F}MÉ Ò3S˜<9§vž8¨À"™0:y>4ã‹…çmN¥øÀ¤7€*‡ /?þF}Í–Ôc®–@ fqÅ¥X‘Ð}C3>Íù£¥¿­­á|÷ð›³Çv¡P¶àÑëit¿ø…Xœ .U,NPißqÊNHèDòÌb– ”Z¡¯oÛ 7ù¿ÏD*)G«{¢;N^í·5ì.CB#x|Ql+· £¥"ç¸Lú[z ’Â$€b³ÜxõÁ_±jp:dG]m•ƒ¨ÄŒ`TÇàè<.ßžgÒe(:`"ÕÇz> zþÔÝkGUÙfÓs*†¿,@ŠLý|zóL¯Áìû däòƒ‘‹ó*]Fu;-´ó>ì½sî1ZÃPñ¦€…2€rv ,˜]bá7üf ìå*bi†IEND®B`‚x2goclient-4.0.1.1/icons/22x22/applications-system.png0000644000000000000000000000257312214040350017225 0ustar ‰PNG  IHDRÄ´l;sBIT|dˆ pHYsvv}Õ‚ÌtEXtSoftwarewww.inkscape.org›î<øIDATxÚ•{LSwǧü!îð“Ímjpq—XœÉAô,¼ÜÊ&ïàPLÇ™ÅâèÉ(RJÀ€¥åi°V¨<ÈÓA‘GE^¥@PJi/íÙù\ˆÀI¾¹÷Üžó¹÷w~çwúl(´÷¹Ü‚¿JJä1.èoÙ(g-ÈÔžÈȘˆ Âýñ~êäì¬ÖhII¬dômQöwîdÿW³ð{IƒØd¢`|\©FßéÐ!‡ïÇǧ_ƒÙìL>;Q\\^´¼l†ÙYýÏ7Þçãã÷«^o£‘‚……Ey QÔ2 F³N·¸Lüšš§˜ã¼.í“]»>t&e8pà`èðð„07§ƒöö.àóË '§žK®®îfgg†ÑÍí´98øÒRLL¤¥eÂÌŒs ˜3 ŬùìÙó7ÉW¿Ó¬­·ÿ”›Ëo™šRÁàदf@ll"E§{¿JݹsÏ·ýðá/¼\]¿ñõ Zb±Ò ¶¶0Ë%›;vÌéwŒñ%ÌÕ-v<++ïñ訪ªAffx{Ÿ£œœè^klðV77ïÑøx¦ ûäò ,[)C y9‰!¶/1ñFQA_ÚÙÙ¯…‡Å’’Nyy}÷l½àî~ú\pp˜©¼¼ °Œ000fÁü';›'¶·ÿôÿÐÜÜ¥’Ë'¡»{Z[ŸCcc $&Þ\òõ ÌYìïïof‘J›¡¥¥ Õ „Ý..ôLöe6¥§Œòx"}vv)ôõ½€üüBchhxÅzਨ«ûccã-ÃÃ/¡´ô1`.ddM²Ù¼—vvûÙü1ê73"âš4+KýýrÉÌ‘‘Ñ3tzø¶µÀÑÑ¿p‹ŠFµZyy•Àá”èuõÍê ¡Ÿ:åYÌáñ´±Š ‘)!!©îúõëÖ«¡,û<“™B K TÎ"”Lfæ2®¾}@¾äñ {ž?¢„B ܽ[ S¯puõ#SRSÅd²*Y¬ÔÜè32²¨ùy…ü^RRB¡êë;qú44Úg©«ÁØì¿eAÖ¶BUVöØtÿ~%LN*Øââ"îúÕÑÑEĮ́,h8GL¸²fª °P4-5YÊÊê÷îµã’é÷|ÐÆf×Ç'@²u«‡Nw¯‹)>¿ÚÚ:p¹3@‘Ùl­v*+«qÕ‘~´²²âÐhGø..ŒÈúñí!äˆ F9ØØØò¤Ò¶…ÞÞ!J›ðt‰A$ªÆ²Ô"¬Ÿ5@OO/¼x1¡¡aõd³PߢΠv¬76ãâÚe296~¯ÞÝÝ£ööíÛ= …¤T*q†ˆÇBBBê¹ÜÜþW¯&ûXCºj3óø­­­ðÖ­?e~~ +íÓÉdóZ­ †ý8#G?Q‹þÏ›ýk:‰ÊZé˨ôüü|¹D"™¢Ñh5+½ï‹â’š¢lÖo(´£¨bT ê Êj£œÿ.›kÌ+È|IEND®B`‚x2goclient-4.0.1.1/icons/22x22/applications-utilities.png0000644000000000000000000000157012214040350017710 0ustar ‰PNG  IHDRÄ´l;sBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<õIDATxÚµUMhAþö'I·mpB~´´x4„ô$1‹˜-Üøö¯î|55Õ;88Ø “É€”0ÐàÉ}¯d{/N9<2†|ýün ”˜˜øÇ,ñ0ƃ²S×’á²¶¶¦~‰Åf7ù,í2dgå€dnVïÔߦ€¨‰´ÑiïZ ww÷ýIII?ÍKç=pØâ,=[Þ¨½¹ŸBÛXYW›*¯nƒUÚŠþ¬=CCCéQQQCCƒN­m-pÀìx{{¯§ô‡è¸iJ\„á_ŒzsÚ¸ó7a|û®©Û¡aaa‡âââzZ[[l»º»€fd ÁÁÁêüüüL4:õ> ¸xxÃÚ gõ®Þcåé«£üÑlv¡Á¸™—œœl‰›bîRüEtÊã äââ‚*++µžžž—Àh˨ü·¡êq# Íc ´:yýþèï%Àíç°¿Á©©©Ç:::ž|x!¹zá¶F:Ÿ Âýmç0½” R ¥_"Õ¤’¶ª‡o6ápVV–COO¢¼¼y~±X,TRR¢ )€—v:á¬Íá•»‰ X¸H~ÿe´6iD$ô}" øæ_@(öUWWi4­““ÓGt: ÔUUUEcÐê. D>` ìëQð ðXlhhÀ8Æ„åY9<¡H2ÑZ­ö“ÉÌ^YYÉvuuÕ‰Åâ6 ÝjðF¿¨„é‹_ƒ[} ÌQhXªŠš¤ûq &H„)éééGGGg|¶¢þþ~YQQ‘/^(‡=hëܶ(‰Ñ XuNC^z9äÌ0÷òòºÎf³Óˆ‡ˆ,þïu«½M æý 8†9QIEND®B`‚x2goclient-4.0.1.1/icons/32x32/apps.png0000644000000000000000000000320012214040350014146 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<ýIDATX…ÅWiPSW=/É{YH ‘°£`EE«¶.hÅÑÁº€ÚVEí―*¶:Šuuª”jŠãRFE«¸o,.‡¢vœŽ;ÚêЧjC„@’—äÝþP(XBßNÏÌýóå{ÎÍýîyïR„üŸ¼ iÁnmüòƒº‚)5‘°hoõþ¤íÖ×f 6C30õ”¡ôó\]1øÈó2>òŸÑÛO–8!íi@Ì`¯˜7CÅ3 q·6.5ÏPöÅþêU]6Y©ŠÎ¬T±"{ITñQ=F$îÔžè!†Ëމ͞ñ¶âç ‘^Aaj‰$yv{5½)%NÝÏÍ Ô–Ö¹å©¦lÔDމP曚]uOô®”q$'¾œîjwHhªCŽÅÎàæ«m÷ņD…LÔ¬”qYY’ƒtÄyrÆp^å Wj¬ß¨ ¥Öó³£=x¹äùbߪv™m.×ðp©Ï¦ÓÆ@Þÿ@BvåD/™ð[“Ù½.À‡Ißš0̳ä#-¿¦üFy KO™8òxJHq§>Ëy–¿5!è½›l#Ã¥=¼eÂ.È 672ÎË"‚Ue­Ó^r¿qdQjxcë„vcR–ÞkÍ1Ý]BÛ£´¢¹!yϳ­/ëµöÀÂݬžrjEo…û×0™²KËîºz—³±‰;Y©R8Ù°¢õá÷€6M(bùš÷}G‰%e^)Ÿ:Ť!reiEóÁÉ*ZøPk·´É ³`êš#ú£VÙ›QWÚ®cP°rº:¤Þê¾ÝRÏ'PÆ.²:ÝL7-ëvõàúCkñ®¤à„–’|%ô„¥“½3{«iÊOé1Ú¡ÜÀº o™5N7q~0Ú»D ÃüG$¤¢¢Ç¬:¢+4Z¹S“ƒóà%"®¢»Mwþ¨tÔò7˜]Øg8t¹Ò<üžÛoDZ~MÖ_:–åÃ]?Û/"%N=M"¤æh ¿;Ws•Ï‘Ê.6>ÿu™¼…ŸG„é…^G7÷SŇ;ª–E§?òm=†‹~Юí£fâÆòêÏgbE ¥€,zˆî­¤ùpš\MõIÁ•u!µÀ‹&”ˆ¨ð©Ã#Ur¡7ŸIfR‡z“=3´>ÒîË} Þ1+J·ûñ8ïþ‹cÄ·å<; ¼ˆâI›A.‹¥_Ÿ@fÅþ%Aq|&ª·¸QXbÖ:\Ä¥ óçټǮ™õuMNö÷ Çû’ƒWþÁ›4½æh¯Øînà¶£Æìdv=[Û¶ïZƒhPˆìbö‚€(ZØý!Ô“•cÅBjÈØÍ-µVv'ždœ­-^v ú¶ÍÁu»¸ÃEP^ò_Íò©’_j©·nÜΤÀ8˜Ÿ]±´´Ò>xt?™´; ½bzšwÕœ žÎQäÞ¿ À´Œòè¹cU뉥 ¬«¯?ï³x ¼Öiu3LÙÞÅAWÚÖÛ½ödlsÉõÖ'NÖìË8c¼¨7»º¼u7ɹT¯K‰UGöQ ^þ½Ý óR²M’¸«jUƒÕ£VÅ"Á«5¦åš_{M£}RZ¡ßÁ:¹ÂN Hl¶FÜ_îõ©€¢¸e¹º«ƒ™^K&û„ñ5ÒÌr(¸ÕT7gt_9%÷uª ©I˜Óѳ~y- wÝ 2O·ïN ŠÑèØß„ çïZLº—Ç»œåÀ`åaÝC×kc¾)¨)³98ú&mô÷Äñx/h‹ÕGõ7'V¼±ï²)…ÛμõЮÓèí命¤}CýDþ[ÎÕ±nN¼e~@Ì÷?Õ]Ø4×ú”tc`£ÔÞp#%¤ÙÓܼ¾½ôu®'¯›òòRBŽÓ4JªŒNrûqsÙÊiêñWØJí‚'Õì¶*ccüÆ‚šû¦&NÅëÔºÎÄN.&mqxyH €xÜH¦Ÿ5T‹)‘t&ç™ÜËõµ"¹üÑÅÕaCùÌÙ^[ð:ñ7m¢¼æñµ¨IEND®B`‚x2goclient-4.0.1.1/icons/32x32/attach.png0000644000000000000000000000147712214040350014465 0ustar ‰PNG  IHDR szzôsRGB®ÎébKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÙ 3Úp•¿IDATXÃå—OHTQÆç¾1§4QÌŠ("#Ët‘›L4›Z´¨enjÔBŠ([ F. ‚ÚiDѦED–¯?”ýÑ ¡Ò$+ƒLƒÒ´FuÞ;-ʘp&lÆiŠÎæ\Î÷}÷œsïû.üï&‹ÒªÎ5®‘:”• ÄS 5;Ém0W¤>Áà.@ܺ‰€ KæÿÁÊD"”Ö›daÒ x"ÓR fš©9. º¿&•fQS1Ÿ‚…Þ„ìöÙÛ ûνgp؉܂íe™ (\äe{ifôÈÉð$¼ç½ãÉ»CÜjJ¶î G/~˜Ô‚Ÿjž.ƒ¼yóqÚÁû‡ÁÙaG‰¡¡íSt)2N øýkMù±÷#ã±ëV(ï•Ñ1€ƒ…×ëú±p?•œªpüÊ(… …œL‹ÆŽ1v­O£úR 2@ÈKnFêoE˸6HŠÇbÓªÙ¸ÐOmźû] 21»=4cm~6 S ÷ávöÎí=Õ[ç±§¾‡ý[æR¸83M½ÁIî<Þ¼÷¼Rº|3gÄ~@:ÞÒø4À¶ÒL*Ïô’· •ŸCì>ÝÃ㮀«“~‹ÅþÎ +D¥Š‰O”¨¦ ² ô•ªI7¢Y(OTÐoiÚ¬±ñÚ{5+¾ü]š0’•zy( @µñþ‘ecÒ*îÁ¸E¨1U1 ’‡‡óšEµ1Žú6Ü?¼ôQ\ŠHENÅŒïÈÉidйþF) a™ÿE®ëŸ">TËì }"7µåÚMþ¼×“O_M±óªÈRñ)êÊ€XeRhÄvDífki+~q§| Öù»¼Á[®Ï >…¢_´ÎhuQŒíõ˜¦Ûþ%Á˜ïH¶úÀólËxÊA|€ï{ص7t³åh~ß?õ:þ ö™îá„üOIEND®B`‚x2goclient-4.0.1.1/icons/32x32/audio.png0000644000000000000000000000267112214040350014317 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<6IDATX…Í—klUÇgg¶ÝÒ÷cÛB[n¡XBä•„h  bøBHP jL$j­µ˜hbT01ŠFMÐ/õ„ AK)¦b@(†v¡–¶¡¥Øòh÷9×»3»Ûm±Z#žd2sÏû?ÿû¿ç¾D)ÅÝ4Û]èÿÈܪæ4ñ³aµ S€^F”úèø›®½J1¬Ì2Ú!˜ûrs™M“#@î0~H¿Áòƒ»J¼CÕjæV¸'Ù49Ü® iIX%²´7oîæWû0ÿ™T4MÔÐkB€’üÖÎË`qY2»ÐÐ<À¾78záv8’|]x¡x]M Áhœ¿¥À’ªË ·7¥hè{ÌàEÙv>Ø0ŽÇÊSIqØÐ5a~éÞz:Ÿ§&‡+õd[iËsƒ1G¤À’ªuO h3¨?ë%å üîrCÔ/éc4vo* ({H…ñú[>ëàì@ËqÝ5YUbŒXyÍ+|Á¢³»lÈU‰^4ë7=’5lp€D»ðê*+E\óýÍË£ë­i¸è•Ö±[àdt¥€&HNX$êó9U—óuÔ|é´”¿êãv¦ÝãàÌï”ÈKÀ>³ÎRÀ/E@Þó˲ó¶­pæm[áÌ[:=%' §öXuI‹l–LM!Å1²4Z>+Íü\<¯ââ½q €,*ÈÒY· Ãò¸¯ú¢ ¤@!Ó%ìytfꈂ<|_2ïì|"Ó€ób,˜íJŠit®Ýc}+hT±é+ÎM1¤c3Ãý5d‚é·Í! \ìŒ( )†Ð‚“™¬Åiíö³ùÓv¾<Ú‹1ÄäÊK·›Xc„V)ÉÌNzüþ`Ei[¸½)UA@nšŽ1öþÁküÖêáÃï{8ÅÃ`ËK×ÍÞÄ*àLÍ$cL4Ø.5{›$&Xò[`aó§Z¬rC˃-B@YtÍ®kÁ€¢çÊ9zZC{†B€l«ñí[×½iI‘¤+HóÓØØh•A0 ’¥««‹ÆÆöÉñIkö%tôûÀçó…¯gJD…TGj¡òúÜfùÒµX…t &;#¾²¼˜%€k·Âc¦är úw €þŽÛ)8Në™æ ëÞ.½)p  ¥Û@%ÁÚ™~Jr‚¬ž`|–Á`ëè (,ÑÙyºÓîZVžúG)ò2<€×,…Ú*7H΀O‘˜”‚&æ~R<^/´JÅŸuZºp|.ÅPÈñ“m†+++ÛÊîÜÌëQ„ ˆ[`ÀÍ€ƒqéfÀøyí pñj81m*^ªö–G­ÿª®×Z^;þDЄY¡—: òÀ¡óŠgJ2à`" î¾~ÓqÆ‚5-¬¸Tj`\!d>-`Ï÷:ŒD=lvaïÖ"’c÷ƒ¡ˆ¼ðÅUNµz~ª¯v=§@]õÄ&Ì9¶5kÐÚ§´lTŠ* ßÐýO4Tº>™Wá®Ôz_qøì+g§q'kíö›Á¥Þ‹®»ãVVSCðخ݉ºwPmÀãšb§ùÏîC×iëñ‹áõ+v|×e[êí%ûGLÀ´#•e·ê«]¯um£R·£øp  ¯?ÈÖ=ôõÇÏ{¥ êÛ«æi;£OCð?8”Žê^0·Â=ɆªòMŸ]’ìÂ莪¾®¾U'>ž7Vwýb2j¹š‰ÈJ` pã?»šÖîúíøO †$@}¸IEND®B`‚x2goclient-4.0.1.1/icons/32x32/auth.png0000644000000000000000000000322612214040350014154 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYsvv}Õ‚ÌtEXtSoftwarewww.inkscape.org›î<IDATxÚÅWkH•gÿûÅKžã%Å C¥R;–ö¡m]X0¶¾ÈhÔ·‚¶UŠàìË` rcm¶I±±j ŒFP›­Í©eY:»LC«áÒY™šz<·÷øžýþ/öboÛ~œóœó>Ïÿ÷¿?¯!‰àÿ3æ)çÏŸ/ oZ,–Wìv{¾Á`ÀøøøÍf§Óyzçέx™ŒõõõšL¦ ·Ûm ƒÆää$’““5ôöö†‰ªíÛ·¿@}‘Œ.\¸D«×MLLàñãǰZ­x*²×çó!cãÆ¸wï^ÛæÍ›‹BˆY¤¡¡á]½®¿¿^¯6›í6€mTœJB©£££Û¨ü˜˜ÔÖÖ">>¾°±±ñÐ ñ@]]ݡ£žÚ¨ôBuIIÉ~1üßgQ*ƒî—p-ž­Y".å¡‘­[·ŽaÙ·oŸ<£ŒŒŒ™ØÅÐËŒ™ù =%„qäȰz®‹" 1e%`¾"ÏJ¯8vì˜xa-+£‰$^ÿϰ%£¹¹YKܨ¨¨·Ùž&‰½Ï5 hÅ‚B }€"ccc£ìï•——ßIMM­"‰lå «:k#úö“]¡åËV˜úŒþ (J)I.¶` ú.Ïf0¤à‡ŸÛðõ÷ç âtØðîŽ á‡ÏYÊÊÊÞ žã555õ,×!1#ªÊm‘· ‰ ñHi܉é°;£aÔ”ªPÃ!"£ÙƒÉ9"¤(øàÀ œ9[‡ÁÁAˆD;mðú‚ÔqÏž=kYžª««s½wÖ¨*˜Í*ƆQ´‡3ŠD– *6fûR(AÞaøÇ"à÷âz×}XmN£©©I*B†(?Ñý¯Ré5’ØÁ’>Éu/×fLB£ñ)ŒÈ\:#a‚É jdÇÿ úÉñh^^†††™™ Їh¦Ò †àlBBBinnîG\¿5g² ¤¶Ÿùn äS”éÕb·Jö 4Âqqq !!žÈpEJ’{oÚ´)­»»û(×ÏZ†|@ÇôßXºw„”ÂŒu%!11^—F"--Mþ×IP’‰ß¸¿„cþ òúbÁ¸Q÷ˆü.Jƒ¶x¶ly t±pˆb 4§§gD'¹WîaîýÎ8³û5ëâj¢P< k÷ &ÄÄ%jV3É䚦{B±#ÊeEš“$ô oUó3“†TÍ2ŒTQ¦ƒ up­{Ƈ%ÈÌÎÁÇ´µÇãïX¾,K#L%â 1¤ƒJw¥¤¤dX%Ýý…ÜŠõè(“èw#>y).·^…\Ë’’4Rèÿë"#X±TAkO0—Ë“'OþœsÌ‘zeˆôG#9#míbµ$¢öL×k8sâSö /,f#ú(¢üyÇñt7Nëù$§g¡åR <ùܽ{Wj_S^W[ ûCt4—ö˜½ ô¤“4ˆf2e íJ+òWåãv×m¬Ì[‰í-8êK8í€Ý•¨5(¯_Y8I5‚0Ûpˆ1–c †`4Q¹Á8e=õ=üu™4(b›uIEND®B`‚x2goclient-4.0.1.1/icons/32x32/contest.png0000644000000000000000000000236312214040350014673 0ustar ‰PNG  IHDR D¤ŠÆsBITÛáOà pHYsvv}Õ‚ÌtEXtSoftwarewww.inkscape.org›î<UPLTEÿÿÿ[[[¯¯¯ÿÿÿ€€€'''±±±$$$¤¤¤"""ˆˆˆ™™™777}}}qqq:::444vvv[[[¯¯¯~~~£££???„„„<<<€€€AAA„„„qqqKKK„„„LLLsssœœœÂÂÂXXXqqq¬¬¬ÑÑÑÏÏÏ[[[¯¯¯ŠŠŠ®®®™™™ºººÄÀÀËÏËDDD………˜˜˜™™™ššš¶¶¶¸¸¸¹¹¹¹¹¹gggyyy„„„žžžIII[[[fff}}}ŒŒŒ£££§§§«««¯¯¯ÃÃÃ+++111666777999;;;<<<@@@BBBDDDEEEFFFJJJNNNOOOQQQSSSTTTWWWYVD_\JeaEfffggghhhifTjfJjjjmmmnnnqqqro]wsWxxxyyy|||}}}~xU€‚€‚‚‚ƒ‚‚…e………†††‡¯ìˆˆˆ‰‰‰ŠŠŠ‹‹‹‹Ô‹ŽŽŽ’’’”””•Y–––———›››Äÿ   ¡ç¡§§§¬¬¬¯¯¯²²²³³³´´´µµµ···»»»¾¾¾À×ÀÁÁÁÂÌÐÇÇÇÇàÇÈÈÈÉËÔÍÍÍÎÎÎÑÑÑÒÒÒÓÓÓÔÔÔÕÕÕ×××ØØØÚÚÚÛÛÛÜÜÜÝÝÝÞÞÞÞíñßÏÏßßßàààáááâââãããäääåååæææççççëõèØØéééêêêëëëì¼¼ìììíííîîîðððòòòôôôõõõöööùùùúúúüýÿþÐÐÿÿÿ=PúKtRNS $$:kkppss}}››žž¬´´¼¼ÃÃËËáâãääêêëìììííïïïïïïðûûûûþþþþþþþþþþ@K*w¹IDAT8Ëc` ,ß¾}Ǯݻ÷ìÙ½{׎í«1,kÛµgï¾ýìß·wOÛr, ¶ƒ<R° —‚ yiùq*ØÑÛç úvïÀ¢`é¶í>0°k;K6oóõõóð÷óݾm)¦‚Å›6G…„……EnÛ¼SÁ¢ ›‚Cãbb¢Â£7oZŒ©`áú ±qñ)Y)ñá7,ÂT°`íºˆ„Ô즒ìÔÈõë¢J2ñ¼Õk¶Áöí@bíšù(òZj,’s–¯X½z ¬^½b.²<—ö¾Ƈ§6/_¾|,_Þ‚¬€ÏpÇòGŽMš=f"ÉÛLŸ8¥feû‘CX“ŸõôžÊÂiå[Ž1b“çµÊçì_;kçÖªØä-ÁòÇö¯Z¾O‹ýé=ué@ùÜÚþíšì˜òlJ­Õ‰“òÝ“ 8± jïÕ\Q‘””·àÁæDÓú®²ºÆ†îIæXå4\ÝË’«:º'™qcÏ ò¥ÎEŽn8å¥=3m]LìõpÈËzf:É©+‹°âÈkº™NRxò¢€¸‚Ž ¾ÌÊ,(&„?;3ñã•P®ÄD9Ú+IEND®B`‚x2goclient-4.0.1.1/icons/32x32/create_file.png0000644000000000000000000000217412214040350015456 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<ùIDATX…½—]h\EÇÿçÌÜ»qc’&͆¤m ÚˆŠÒPõA4DAK‘ú…hÓ V¡-j±(ˆ>Æ&B…èƒXj¢O†ªÕ$›ÄÚ$M·Ý|íÞ;s|Ød³ŸÙt¯ÍáóqÏoÎùϽ3$"ØH‹¼}aiIf_ÛÚ|3œ<~b¬ëÑ÷Æž€®ãÑ»ö½;1Ö5·Ç–ôÓÊXZ‰ÀCû/†L£þ[1ÂPÖB[!mEÔz3ËIMøÄýŠh_]µzÙáØ‚¼ÑTÃ_-&åâZ;VÆëÌÉÕaå ¼Ôº©Ü•?ýÑƯø/& ìl ]YLØOÂ!c­© IßÎm<øËÜ‘Ì9i€[7oRã¦\çríaœûmþÃcþÙgï¯íØÕv‹ë×!ê>59[_ÅOí;ݯ¶ly¤?“¡ah¦@Ž"tí®Á½wTÒLÜìùìÜÕ ×Œ4ÖhÚV8údSÝíÍ¡™ðkÈ!l­¾ôFÑÖàèéëf{oÿÔhl>µ®Öz?ÿ¹ETÙùö_÷>¯ÓÃÀÿÏO‰úãçš©ª‚ª/Å|ýzßåKž„]Æ+{*ëªÔ3 >[YÑv0+Š%€fÀ3)­Ÿ>ßBÚF.'¢G¾œšŽ-=3uý÷ÉD$Ö4[óõ«[ßM‹°â¶¢1(õÕ†f‚@Jú¸çÂdâð[§§z¸³ªþ‡áù“|µv7€kYÛ¦àÀÛÑÓY "€ðr¥ûÔÄÜLÜžž‰'>˜˜Mv…CªÛ7úM3† UsÀj+ó¿Y´üüþж€Ï— €Ì]0h’@)(ÇrD,´Úx€´ªšw K4F $¢¼gn03D$«kü̲v#‰ê‘‘Ò“™9]/VÖ3RÁ«R, p¬ZŒëºe;*6–™Šžz²" ùÅ2_¾öRP+ý¬Œ’¥“ç8NàçEÖïŒB aÇqÔèšXïŠóسž6k€Ö”,•‚r¢£Ô¼aëPì9—í¨x ذ.|ü^€îéHº®´úBýJÁ°_ €«Øs'ðþÏsÂ$ÉRhoˆ£§¹(³c†eß-ëäܨ³B¦˜li p5']×-ÛQ1ÓŠ¤$@/€o•–Êꑲ>ãÙwIÊo§ì>"²¥Ex2þ÷ãàP<ž0V_8é‹ò ”°oDy¾(cDùå™TÝØTŸ±©âYRÖ¦Úˆ2VxnÑ.ø°;´Ñ·ã\»)·ã±ÿ6§›T@èµ0IEND®B`‚x2goclient-4.0.1.1/icons/32x32/delete.png0000644000000000000000000000266012214040350014456 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<-IDATX…Å–]ŒœUÇgæ}ßétè®mwwÜ¥$Kv©Dí•4ƒZÑ^ôf…–+-‘x†¤‰j ~+.mLP‰ a4Ähµ»R iÀâÚ¯ýhÝÙéÌìÎÌÎÇû5ç=çñ¢TÝ·¸„“œäÍsÎó?¿°Ú5§šƒcß|n ³a"rÍ}ÿ“—öþþíË""•–NþueúžGÎ ­ç—v_óð ?XÿÉV.ˆˆ4›M±ÖJÔ·òØïj³÷þ¬|çû °ûñ¥ü¡ß\~U'VÖÖÖäÔ©S277'Æyf¦µôÕ#K½o_ÿåò±ÕnbED´Ö²°° qËÕëäyíÁ£ËOßóÈ gC3¹eú¾Ç—?~½EðŽ~½ýÓ'þØxq±Þï¿i Àr¹L±X¤ÑhpñâED„¼—áðTqçŽáìðÜáý§¾2º÷GϯùÛ¬ßp]—r¹ÌÐÐÝn×uÉårœ={ö `l‰´4®@É:¿âƒ?/ßç­…ÇøôÖq¥`qq‘$I Ñh099‰ëy|ë·ÕäßKñ«}mOš OýõÛ7_Ú€ÏoáÑÝ´ù;Þ;’)ä2ÔëuªÕ* ~5ÓÂZÈ{ŠJ+ÑÇOûZ9xü»ãÏ®§ªèD=|z)Êz¦ÊB­ÏÈÈäóyfÎøtCÃí7æøÄxžw º‡¿<²9ç¨Tù ç©ÀkëmÍŸ_áø>…BrÓpâ_>“Å+cD8W‰9ú—†ö\ü4Ú©šÑ`>óF½/{Z¾eÍ×öÈŸ›ö…׺™°/8ì³/·M;0?’lÎS²w×çµ…è… °V½ì]7ç2_Û³-3W™«jQ g玜sÛ˜ÇØV—V¸ë#›9yÞ?³a­@Ï€:ÄcnÍñÅ][ÔÛï d úÖÔ:6@ª왜ƒÀ•z_Y ¹Ü 1æÇc…ñaj+ik«ÿ“F;Urƒ”_tœ(/ì[š˜Øh:½ ½~†áÁ›<‡ÄÀDÑc¾ÖïYã,§ÑN?=4»B€8Ú~LµÕ'B–Wº½8ŽIŒá¦íÝÈú'Gi´SE@)Û…ì`¬Á5Õ5‹•F†á‚ÅQ ¢¶mvcÓM«{C©Yˆ ‘¦Þ±AHµÕ§ãG„aˆÑ.1½0é¤UMD­ˆ€I4‘vÂ•Ž¢ç' x I’ µÆ¿€ÔPJë‹6B†¬ö,½ "‚  ç‡}›º+¦HDý=£ÞŒUˆ5´èø1a†!•fD¬9·¡¥RéÃ_Úq¦³m“BF)«P@;Êk!Š"zAÄ‹³t?[œÍ—J¥Ï;vlûzÚë¶ãR©t°ÛZ»ÛO6Ý=Û»]©,Uß㎑Óõ£…ˆMYƒ±†[n¨±Å_‘“À+ÖÚ—öïß_{7ý4IF)¥opãà“Û¯X·AdFG!ï$o÷ÑJ©Xív»Ík‰§H¦§§f³y£1fÂZûQ¥Ô.à`+àpø§Rj8çºîü¾}ûÖÖÓNðn¾¥RɘššÒÀ{ú6dýŒ8¨±È·IEND®B`‚x2goclient-4.0.1.1/icons/32x32/detach.png0000644000000000000000000000154612214040350014446 0ustar ‰PNG  IHDR szzôsRGB®ÎébKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÙ 0'³š»:æIDATXÃÍ—MhI†Ÿ¯j’´&f²þ Š˜@Ö89èEW2‚èxYA¢xÑ£°D‘°—& Y<(xWe/‚øƒ?í:‹˜ƒ‚:IˆDfAÆãÌdº¿=¨!!3:gv¬K5U_×÷T½oUWC™‹úšöÞkBA¢@ôs³êùAæfwgË›¢lpŸ;ÉL j¨ÂjÀ䍯sB&vÛ]ž, ÀU³ÖXmU¢ŠFàÌr…“@LÏõîÛ¦‡¸̈¸ýo¢ŠDQÝ4”Hò7ˆÜÔ36ðbnó³oJqû}ßGÙR ».Y싹ÍϾۄa7^ùS¦ê†~’#cÅÆB©Mq7œ.Ú.XÓ>Ðl­ö~Å€“Fô}iéîlêÏg\“/@wgS¿Šv}+NE»òM^€ñÍ©bÄÌÀb#æ‡*“&lûã鯑(+K˜OÔì¹w¸±{šÈÉ'ÿ2á0œÈæ–ÿqåó2a)¤7å6aÙBÙ«« ¦Èh~ã©àëõÕ–#»^â”d¶O^$9xö%cã~v vFêJ– u©ÃζºÜ˜_*¹æ#ï&Êg»}¸ÿP€øP’ήW3$˜¶æ52Æààë¢'÷‚Ïîu†+ñ·¹*d‚D"Qø±&‚ˆL>O­?N^³l^¡ô½TRi“ÀÇâ8NÎÁ¦Öùô© Ç.¦h]"̯³\ïK³wS5çÙ‡ÆÚª‚åê;~uŒŠå·Uóh?7ÊÑ]?34ÙÒ^O¦r}K y'šZO-gî¼£gاcûBöæÐ¶´.«átläËËt+wzÇ·øKiûe.s*g¿AúþIqýq‚muì?=Bóâ*^½Ïðû©a<ÿpyÆgq­û´Öfدb¾ïR¢ZÈ*ÐUScDëQ© Ÿº‰ÛôÄÑ¿¬ø÷‡¸þDÑ8ĸåIEND®B`‚x2goclient-4.0.1.1/icons/32x32/edit_file.png0000644000000000000000000000246612214040350015144 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<³IDATX…å—[lUÇÿ眹ìµÛ¥…¹¥Zxˆˆ”L£ÔˆH4ÄøbTàÉÄc!©â%JHÄP)(hEŒJ«Ho[ ¶í.Û½ÍÌ9LJºÍN™Ùn[ü’ɞ̜ïû~ç»Í‘Râ^ ½§Þ(ùEÃë:O*] Ä' ™P$@…„"„d¥$Nï­~­äýù4¸®ûM½ï«×ÍÖ dÇÁè6!ÝÍûª—¢3Àˆ!I¹Îgêt ²Òæ«©7íí쨞¯¯ X= ÆÍc_¼ºøsW`„Ì @eϬ ß:³gž^Š?±:X™3šÛSk_jºùÀ' Þ)Ô±¡B!f 0‹Kì¨/Ç–U>ek]°r4Å‘1%6¯ Tn_ܳþí®‡m:6:ûŒ¦8~ìHaOC%bI ‰´€_§ði@UHõY€ÇæÓFC1+J€³cxySñ4Gïm†%A  «äF!Ĉ#@×üŒd³L%$7W€  µ'ƒœ)!%Pd¸ÍfN^J6µ¼»´½Pç?KÁñ 슄Q`8Õ6.$JP=OElŒãƒï†Ï}úÊ¢·&ëÙSÀfð˵4ʼ 5 =8Õ6†Ø †)±ì>”ì?6Ä£}ÆNº6F¦Ÿ‚î!ƒ¶¬ àlG ×úsÈYËè˜RðÑé %x†kĘ`ºE˜Hs|ûG/¬/GkOg®ŽÁ°$–Tj¨YèÁ—?'°ye”¸¿ñfœ‹K|vv»"aD‡Mù)Žœ%1ÇÏ©õãü_i„ +èEíLa°?)•¥¦/:n$„Ø~·<·¡ †%ñþ7·aXUÏ>R޾a—»âØ^§`h( Àýefï™-ëî¾B! ”N¬ ¯‹ýeˆ<´a?ÛG0·ò1ìÜp¤¹OÕ¦‹ï‡ôP€L Àᚦ9:ÍôDu æBøó–‰£çïàRoÅ‹ʱ¸BÃ{_ßĶZ½Ð\kÀ 0Xnùë /í®‚É“W¢Yl]ÄcËýh:9„ ÷çò«6hF¹kwM ¦ªªEÃσW£ðxþѸˆÔpâb ËrX2÷î0*8aÂ1 sk6J…õ€…¦ØÿÅ=YW†Ã?Œ`Ž×@Ã*g]F A¹s+Ú# £À¯]5‹¼û›ÛR8Ö2ŠعÎëZ;ŒRn2ç:°Pjª*µ);×1€Ø•1’lDoÌăU önóÁça®)#„@a„—U¡†¦)®†iÙyÔ/SQ÷x°h·LºÇ)+)ÌTUÕõ4WL9#òƒªP•’r­8@m;¤VÏr“k ˜#'gNÂ(F)Ð5å.€é:s`¤´.Ð4jhš6cGn¢Hª”R„ŒYùmn³Óí[ÒuÖJ€QjM°ä¡ïsçOü.“†)KjÁLK2.@-.Ç×\2‹KfJ0‹?ã\2.ÆŸ™’0!þ½/$ôNF¤-ÇqLþ÷_Çÿõ7õvVÄöIEND®B`‚x2goclient-4.0.1.1/icons/32x32/edit.png0000644000000000000000000000232012214040350014132 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<MIDATX…í—yLUÇ¿3{° ,Pjã®.Gñ¢kµI+õD[*4©ZB´Þ±­U«b¬¦Õ&5T$­5•4”&­Ñb´…­¢´x)G¡ìr®À²ÇìμùùÖĆåܦ&úKæŸyù}?Ÿyï%ï GD¸œÅ_Vú¿A@èÀô·º®×i±DÆõñòÕÇ'm ¢€=wt߬hií¨¥G Êz‡#ou/@œ¿žÂ›B7è­%™d™hÔÍÈã“©Ãæõ=õQ÷W·o´j'ê Èà Á'.ˆ(7­ŽY¢Tp“ ˆ2D‰`ˆT©M—Î… ÉõD 7ÚZ²å¡¨»Ãƒ°9$ŒºÇá"#ðµŠã™Ì+.‰ÀcX6<~OdNlŒZ=ìdè!²q¸FÅç1,*x™M0—u_½Ë²âó{7‘ÃÍèd³“j[]ÔpÞCý#" :$zbo÷³žô–¸[ã5ï¯I‰¸Ê+Nµ»!øÆ¿\­ä¦„(¶UØêÚúÄ9³H}¥E—¬W•¿˜•(Ë€¹Ù…Q7_sžCü|58xçèm ]®UU&£0®ü¢…ºŠ­Yó+x'ϺÐ3,B”24P)9”}gïm°¸×W™º'Ë›±@ޕݾ¶2:M§åñK§ ç=ïød£:-š—ãø×»åŒÕSåÍH ·ÄºùÉå‘®P)Ï øpì×1ˆŒàc„$ƒúH,ƒ¢´¿Ú^~à}Ñt2§-³»ëÌ[Â7Ý–68&¡Ìl‡ D‰­F²Q § cû›y¿~ýts§%¹³cá²ø¢¬¥a ŸŒâÊ!Œ¸$FˆÔ)±â¦PÛÛëÚ¼Yd‚0%[:“ôÁ_¸?*A&`wå,ƒ"$FRqX“•‚Cqå`g}—óÓŽ¸Ñé§ÈΆbi¢æPþª˜›y(3ÛqºÝ ŸD Xwç<„+pôg‡­¶CxéëWggŸR |yϾ×WF§…ñø¦Ñ‰O¿O"HŒ°65±1j4Z÷áÓŽ=Ÿ=§¯˜)˜äB²,¿ýÁ$ƒæ‘cõNˆPÕä‚ÈJÜ—¬Cêu!°9$*®ú²ôi½i6pþÏ‚{ßîok·š-[Žu]ÿzë¡òG6­št̓âãŽÌZ×t;^Þuý¾É S¦´¨ÓS{Í:1N_ñìS ¾s§ƒÏlâdÔrÅ]§`ÆÏc¸wÖd<Øè„¦2¼²¬µ¥f ºÛ¦ðCKÞõÙsŽtuuÕ2ƶstrkÏŽ"»ŒšRõåü2pâLaŽy·[±éÉr¨2CÊ … œ Øùc§i¨2 ³;6ÞÍ àâ3]ן÷Ç• ‡ýõƒ+")M`Š##R†Œ†j+6=1‚€¡°¡‰Ó!ß÷Äp6œ& Ò3:=S¹\‘Jm’$ÉBˆAI’&Ç3ì“]=e…¤Šº2 ^¼ ±´À™‹aÝ}I„&, ›¦6½ÝS54!€+™®ë Žöݽ¥å§†-(qªXÛVŒ¤!p&l^‚ðe`pMFÒª© _½ZÕw¹Î„[2—ËÕkU¥æ5³ýý3KãŽxÿ»|'˜‚À9A–1dLf3ŒtÏX¼z–––~F¢ù±i¡Þ{*GJs|±?z Âàçç#,‚+"y7¥n·û,¹Zë"û—Ü‚àú‘‚#¦ üïO¬0ðëp"âp8îoªˆÿ°zV28>”F,) .¬¯J„;K¿ÝhjjJ8ŽGê‹{žn<Mˆ&ÎoX‘N UűÕcß›ð_ð&éºþQ .¯ÛñëpÁ0­$!ׯ]ú@ó¶ ëúKDôcì(€×\.׉+ùÝ0€lí¦_Íþø « h×¼5IEND®B`‚x2goclient-4.0.1.1/icons/32x32/exit.png0000644000000000000000000000357312214040350014171 0ustar ‰PNG  IHDR szzôsBIT|dˆtEXtSoftwarewww.inkscape.org›î< IDATX…Å—IleÇï«êÍnÛé¶ãqÛ11mÅ K4ÉD€fÄ¢DB9pä€ „R a D‰¸À+B‚’d2ec&[J<΂ÛYìv§»Ý]Õݵ̡ª«[s‹æ“J_-¯Þÿ_ÿ÷¾÷½×u9(²˜Æ0÷wT€)`â¨ëž¿ÃÞ®XìøßzˆCCDtý¾¢—-‹‹7orzf†œaìÓ‰¿nÙÂøÆ\™Ÿg>“¡jYk¾,"h"(¥ÐüC)…&œ+¥P¾Më¬+E"çÑ¡!\×åë‹'t`||p«é4ùáaR¯¾Š‰¬…ŽJDPþ=%‚øÏ¤åœÆûÕ*¥3gÈÍÎ2>8È×/Žë@8¬i¤3R¯½†¯Ænpêê"ÜÝM(‘@ëê²mÌL)ÐVVpVVµ¤u…ˆ?ñùË—Yçá„u×u©Ú6®mcùZÁã##$wíBÅVììï¯Ç¸XäÆéÓ$  Ô fÇ\× `‹ˆ¦5Ç<£÷©§è]3/ZG¤½ÑçŸçÆä$29I»RupÄqP­ÿÂ.Á' @|x˜þýû 5„űm–æç¹37Çݹ9Ú"CCtÓ=0€ò7=òÅÍ›¹öÕWôW*×qPJ˜Ç šÏ#¡J=_~í·ßø×§Ÿ²)b}<ÎH,†R ¹qƒÜ÷ßs+¡oÿ~z·l }Ý:xá¦>úˆ-‰„§€ë¢DL`û·Nž¤º¼Œ]*Ñ¿o_^5MþññÇœ;r„?··ó@{;€kš¸†kD,‹d©„õÅ\ÿòKªå²G"‘`ýsÏ‘ËfÁ4ÓDDLÕ‚\Ž¥~ cd„uÛ·_~ê“O¨^¸Àc==„,Ë5M"Dq ÃsîÏ‘ÉIòß|¼ŸÚ³‡tw7ød•H€( À“³ZeèÅë²ÿú+7Oœ`$ó€K%à ùì³ô¿ñ}¯¿Na×.Œ\×4¡TÃÀ:s†ÂÌLàçÑ—_æòü¼§@ƒêª–µŠÖ‘JN&ƒ„;þÁìèìôØ—J‰øÎóMO>ÉÕ;w TòHåÏ?ǵmb]]dÃaœLY•®”ÓuÛ¶Žï^¹Bxf†h 8¦‰4TËp,F®P€¸i‚iâÌÏSM§»è† TÓi”vcÇ jyWôÔ]ŽC5ÆZZòä­4×…JÊe¤\ˆiâÌÍf½©÷,k j!PŠŽ‡^Xøýw’¡·¶ {y÷Þ=ÜbÑm•JðõR*A>›Íb]º˜üiëV2Õ*J© tÛ¶Ñ”BjUË"B\׃ÝLͽ¯lR.#†QßüªÅ!+¶í-C?7€å‡@S cz:°ß8>N±AÆí¶u(P5€‹¡±±Àfñòeá0J«)¶ø« Ø@ Û6 µühÙÛW)°¸AO¥ê¦§Y‰¬VÀvœ Ñ0ÖîúT «¯oÍ£UƒFÐÚ¡õõ¡††›ÌÌL@kŠ/oåúu*Ù¬÷PÓxüý÷)ø;X#‰F¢w.]"¢iÍ!Pж‚ÝÕÈfQé4ºR« ‘eÛuç"¤ œïÞ±o_ÐýÔìJŸ}Æ­äæùóœ?vŒ‘¶¶&ððÞ½èããŸs‡1{ʉ`ù!Ðk ¨Z_'BéôiObýÓO°ûí·ù·®“8y2 aÏÎ"ï¼C¾ZeO(D[4Úyå•|öÛo)Ÿ=ËXooЦ­ Ak¢åŽÃÌdÅbìx÷]‡Sîé©ÇY)ú¢QÚtÝk^6l ýɽù&* ´¸ÈÏGŽð—dÒo! ×B ‡›bìærÜ}ï=z&&hëé ÷nœ;)^»FåÊäêU"š†6:ŠJ¥mÚÔÔQ•ùçÁƒl×4ÚC¡Üm AS4ÌöÔ /½Dä­·|æO2]§#•‚†åµÖøÏwß1yô(é:õÎØoJV€µ{ù•ÔáÃÌž=ËÆˆ%ÿØÈf9wèêÂö&„5­Ü·k&à8¸°æz×”BDè8žÅsç¸ÝÛ‹%66F÷Ö­€Wá2ÓÓTfg‰.,0‹1ÐÝÝóÆ„ªm•P*¦e…‹¦I´³sMðZÒµ)ŃËËÈO?¡~ùÓqÈY Mcs8ì­ñd²¸¸ˆ^ZÂôþ¾*:0u»Px\Ãë„“(×EüÖ¹&Ymïsü¿"Çu‰*E›_ÙÄ¿'®[¬ûþlÛf~q‘« Ü.¦t`âf>Üʶ͂_ï×°]—ÅR‰?òy€ ùÿžÿÅÖ=š°ókèIEND®B`‚x2goclient-4.0.1.1/icons/32x32/file-open.png0000644000000000000000000000205412214040350015067 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<©IDATX…Å–Mh\U€¿sï›ß8¡´%-‰µRkëv¥¸QS‚K+(ºPÐE‹"jÈÆR\ˆ..ÜÔE”(b7RÚ¦ˆÄ4¡mliÓd’™¼wïqñ2ɼäM31ôlÎ;—{ïùÎÏ=3¢ªÜN1·Õ;4OŽï¶?%¢9U ¼ªuŠUU°-ݨ ÈÛÃGËÇZÙ.%xlh¬¼¯'8õÙ«}Ûo!ˆ„<ûᕪW÷Ìð{¾_o¢Æ©Z#¾]繌ðÈÞ¢öÛƒC£{o P d¬ðÆÓ[Ø×›µ¢œyîØõR둪±Òѳ¬9å“—ûØ\´ÅùÚÜÒÀb tX‚ŒÂH1_¼Þ‡µìxbèâO-˜¨s€À@èâ$vç-Ÿ¾Ò‹zíï?ú÷G©ûA^ÑŽ¶vùê¬^U0"¨ðÖSǯ¾ÿÃám•¦+þÇó³œ<=›r½ðÒã›8°«Ð`ð…*UK…7<|<\¬,dVïúG¿¡P -7Eä•l ñ\!ޤÁ{__åä;»šd¬°©kíÌHmîDTb⹪çàý]tå ΃óŠóP =¿þ9ÏkŸ_¦|㕚PÔ\ÝfßûGk‹ ç‡ʇ’%P¨ÔâôõmÎ,;®ëbV¸ï®W¦"T•¥ä ,Mà%½bë²Ëˆ{TÁ©9IeªâèÊ ¥B2úº~`Gž{û궦îYOOürcÞWÖ”…ÙyÇÖR@wÁµqy]G®9`)^Ií…Pyh{–RÁvääfz1R€_R3°ÁÃw¹#oÚŽ>©×®…€kDîéÍÝôÒ¨ ‰é@‡ʧS3P*š¥lßIäÀk£½ò}nÆa ËS. °{[¶é H:iðÚL„ú¸×wæ1"Oµøm·ùRz`rΩÂÏ©^áÑý]¬!°ño}]Ök´fºªß¤q Zkkê§’5oöTÿš¨AÜ€gRJ…öÿ¥·R¶‘ñ*Öp£ñ\ ÜÓZô­HZÙ.\©á•s ð•âÜH»©êJBCœ*ûïÌ21mÀì‚9‘°Å(\št\šœßç×f"tx <Ò¸^ØÂo*)Gÿ™˜ „¹Õ뀢=a$œ½XÝ0Äp6@ÞÝ8ªòæêåÿÓÞUä–4Û´IEND®B`‚x2goclient-4.0.1.1/icons/32x32/gnome.png0000644000000000000000000000151612214040350014320 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î<ËIDATX…µ–_dÖQÇ?ÏûŽ%½ûC[‹ÌJzK“d5jêfD»ì&ÆË’D$QTº\MÝEL¤¤›.ÊÔ.bS´›(3)#‹³ºX{ÛŸ§‹sÞuvúýëááxÎsžç{ž爪ò¿HDªV LoUuq•’ªfb  ØÔìå€>`P‡G€ªUºo>[£_€ZoÿŽçØåíÿ@¿gt§³w<ÂùPçÚÊ%ÈãI‘ýŽx—§V°º9àB„¹‡ª:»JsÓƒúaG>æÈ V^Œ¸ý4Ðâûˆ‹@“³î‘Z»~éȇTõ«]W…Ø™ºTuÒ߈0í¬óÀ²]?JÖpŒ=ºUõu /ä ˜ðÞpZí½5òÓÓÝ´y²õÀwþ„}8™fÏÀ-çð+k>—vH0œšbõ½Ã·Ž<ä²­(ö‹æf‚ Ðâ¤i©¼‘pèÄŒÙz&OÀ ª> ÌyT ØÛžÆÛOÞ <~Þj.¿Ö¦Jã¬Xg×À}`)¡c—¯gàiƼbi—ùEÚX!Ù‚8›å2˜>ÄjDÜþ^Æ[—¹ìÍZ͘—«½‰æF€Ë8žŽfeÚ›»`zô¨êTÒaQuJÇóÀ 3s>ߥ°1œPÕ‰4ŽW(¤Ú‰Ïõ2pJÞ‚¨6ŽÐp¦ˆù’ aþ ׈ÇQv>÷¿èo~èöDý©ê80²]‘OÖ‹ýœzô&ÌGÙQT ÀTHžy«—FtF3×€Úñ“ÀMÌ›T¤‡+`AÔØ§™ˆgóu˜ÙòWÇ$oóKºjo÷]ôÎuG€S>ˆô} mÀ]`Îs¼<Šgvcºª ht÷Ä*¤&Ylµ<Œ©ê\Z;¿öqícxŠ@IEND®B`‚x2goclient-4.0.1.1/icons/32x32/kde.png0000644000000000000000000000430512214040350013755 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYsøøht‡ætEXtSoftwarewww.inkscape.org›î<BIDATX……—kŒ]UÇkŸçw;3)3í”–ÅRk *­µˆ­#‰‰‚ᑨÀ¢&¨<£Q#¡¢1‰Ð"A4„@‡°H)––¥L[ZK¦Óiç}_眽üpÎ}Í@ÜÉÉÝgís÷ú¯ÿZk¯µEU‘þ;®7FnijWŠˆA@²©ÉL*«®‹Pû}^[7d2AD-åÂAÝzlÇún¿¡»§óþË6¯áâÏö‚RõóÉ|¹~¤L׳W‹á™ÿŒðÖ®½˜é7ˆYrÇ;×^{ɹ­…¶…µ­´2Í& 6ÛÔŠ X›}aE°*`‘T.’ÉSÙ©©½nÌXÞ²ïÏp›[›ÎÞ¼¾Ÿöœâú+Ï­¡n0½Î–:yb•ÓùˆB¬,YÎcB3Ú´^&pç£C\ñéöíh>Û㺆 )`t:þ¿J}8ÉËÛén XÝß¿ޛdtª\§X80UfÃòv†N—8UH QúsÇaè:‚ÆEÀ¡¬Âx>ž§»a¢ (+l:¯»î;e|&ª~~|6â{ûȹ† {sø®0Y²Ü½c”3BC+bÒ(uÓ¨"NåíÇ*®1¡˜ØR?lbŸNÌ”6­íbAÎ¥YâD =aëŽQ𢄱È%)1Pe F˜*$ VÕ+×:Y«i V™ÌǨ*Ýݯh'NÏržáž'ˆÆ LH´‰Å˜4uÝ”!Â0U²uÁ§´øðíu‹xöI†† i&©Ò4…µÊT!Áš˜Ÿ~á,\G0/šd÷þÓxŽSÍ”$¶é™@V„™rÅJ³c¹yÓRºZ}Îéiâ¥ÃSüy×):Û’©â<Æf üêšsqL-ÿM”øÝ Çð"’T9RÇ€àŠÆ1äË5Ú­(¾[ÛlãŠ6Ö-kex:bÛÓã ’$áºÏ/fñ‚°*+E–Û})©â €ØbŒA„4EC1–*E|y˜›.¨ åÅ“XÛè‚Ë/XLkÎkmy|ˆ©±ªŠEHDH€é‰"q!ÊÎêÌb‡R’™ŸÏ •øÒêiVõµ2•¸åñÿrôdÌ ƒp®òNxupœœÖ¢ªÄ±ef¼H¹”ÐÔ`LZ[Œd1 ®¡l…²­ü euyïDžÄ*·>~”ƒ£–(mÔϱљ†÷¾…9¾¾®‡r9¡œ)ÍRžDŠŠk2† Eè<ÑÔOí6Ïæ5Ýüsð$ûF I ±‚ÎqÁ˃£ü饣 ²›.;“þ.;YDK àªâ¨â™Z5’•Ëœïàá3­ÓüàB‡‡®ZÄß_ïžÜ3˜Ôò$¥µ~ˆUîûÛ0Œåk2î¾a ¦ÅcÀ4c@0& S)ì9Ïs„«Ö/æ+-a ·µºÙð郃ƒÁÔJbe¨"&à¶÷5ˆ{:Bn»îÄ©ŸUSÇ€*äˆÖ1黆»n\‹ œÔšž)Õ4T p M~ "çšC—æE‹x}p„«/ Œf \!p“m~bl†WvçÍCaå™Íl¸h€ß>õ.#§ lî0?ûÃÛhBµQ¬´i.™ÛW«Ä‰;J QœÐÞðÍumlÛY p}Ç<6myƒ8hF<’Ä$ô,0üâêå´†ßy`œ+ò*ðD IpEÐJ+W‰° ¾'4ùY6ø)Ý…QÖ¯í`ÃÚ3øáÛiŽ&iéZH{ï"š[rcPž¸ëšet¶xø®áŽ+V°òœ|ßË">Ëw“õš¦ªKÖ0®!pRËãD;þ!7mUƒ«×œÕů—t°sÿ(OžŒéh2¬^ÚÆÆó{*á²Î›/_ÊÞýãLOQ#`S •F²~@|r¾!¶J+¦˜§9çW7|ãíþºk”ó—6óåõlü”[]›-Æ<ñÚ0¯žå[÷rÞ’6ÚB—å-ì,U3@*´î ²š–ÞŠ BϰríYü|ÛŒœœá®‡Þä© I{ÿkâ‘çsý¾gŽpï+Ev½ßÝþ>÷<{”|)áÎ'°÷©ZúeOêÍ:"SË‚Ð38F3—–¯9›G^'è[ŠF–b¤ÄV86Vn°ïx 1ͨµà8<öÚ O¾þå‚ÎQNæ‚ZºŸøŽó';£T…®® ‘%±Bl7Æ 5_OL—É{’:eQä ’dé–V>­KA[ICAíl!6N „žA$]¶–L)¸‰à:à$‚c” ­{$ô]Ž—›;È—m €JƒS³¸j}å¢é¸L¬Óvƺ«&ÝήUË»™)Yʱ2]L˜)YfJ–ÙRB¾dÉ—-…²RŒ,‘ CÏx|X ˆÍÛÚuNÒ³¶FŠŽï³ùsKøËžüÑýﺂþrÏÎ7ïG„¯nXJè{Õ“>|À'£NpjÕ â.>zÌ½ÄæK Ü9ÌÉ¡ÝôÝ*ªÊÀ†]‘[ZVŠ`*WñÚ5¼výNYœó>g^½²3MÀ¶èôAǰõ•‡·<ð?íù©RFöMIEND®B`‚x2goclient-4.0.1.1/icons/32x32/lxde.png0000644000000000000000000000330312214040350014143 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<@IDATX…½W{PTuþν˽û`—eUP …Ö5˜Úò­tÌiHÒ tœÔJSŒ =¬¡&{Œ–câ8ˆ¢–ã =Mñ•£YišE”IŠº DË»°{OìâðØ_ufî?÷þîù¾ó}çw~÷3ã¿ ""î@ø@"ÒQäÖ­[ÇQ¯ª›,Ðdeeº}âì/•þQzéìQ´…|ïF- " [µví“:óÖTËšÊ:Ƥaв,mp4€úÞl¸!ˆHJII±NMçØáJ½áb‰ +PK“·¢ @S_=p]¾ò>ù*ߎ1–(Ôîó]y®“°ÇY€úÊuMrËK—.µ%Ü?oÏÞrIjpùz¬«wùPuïøåË—§Ñvf#çÕö@ ÉŒùEß<åLý{µŸú]$౑ÍÊ‚G¨ eEŸUkß^µ*M7ø±üƒe‚ØäQB®IESbŒ*ŒÑ”^X0+y83·[ßë%"Õ!Cb ¾üéÌymjÁÎR„@#´²­,@' hmcøL£ã-Z4)Ô<ª@ j}nޖך"'d.¹Ûƒ 䝨 ®ÀÌPÿ=IE0êD U•\š“69!˜ =šˆ¤ÔÔÔ¡“Ÿ~ã衳úðê‹ B™ÔÒO/bR|m›óbù‘1ÖÄ ³TëT ©ü› "Ú:€ 4Ž’»±hC}÷Ó…¿úÕ±D‹°šÜŠI£à@…N¨kòvñ9\-`b‚Ó÷Jú4KUUU}Aañ)]ÔØè†f? o˜‘–,Y2›ˆr™¹‹”B'pӆϖþÔ:ö™ŠZ¢+0ËQ ¤Œ"¸Ú€1ñapž).^ùöë»fVˆèÇYó²Üúj Ñ()))–ˆœg‚*Àø8€™¼Ý†î©¬÷N¯‘i‚•1@nâ_«gÑß[朽hîÌ€ìÁ¢egѦ9 ²ßÝq©YÄ0Øl¶eûöí› ÀÛ¥˜YaæöÎàD¤Z±âýe—èÖˆQ±¹þûóç\ýH+ ¸#úoåÕ矠)8˜YÉÏÏßÛTw®Ý à0ú®{RºÛ|8QllìÀAwN{%\Ñ\±ëH¿„;ãkœŒq·ú°gûêv»½¦¯“@˧Û6e2x&n‰3ëÑmë‡DºüÏy#nà«>R! ÝýÇ[L:àÒ©¯fgÎKîEúî¹ô'~þ­Ás›Jð4°5!&’™ÿ ©©^=ç9S숆ÖÓM{¿ØòR”uœETdן®ìÌy_-x Zwïü¬À¨ =%''Ƕ½?˜ùÊÿùµÿX…²óPI;ë§{~t¯Ý[Çû•ûÌfsL‡j×r0Ùÿº¨4»½œ““ó1üÍfî¡€º p÷/‰('ûÙ±o¾µr1­òð(/>Û¼jŽÝn¯½ ߃…ûü¹3­I€Ífëڈݘê¿;ñ»/===@ôãÊî“ üÁGùG¨¯µòNy…ÌÌÌÝn7—••yè¯<ënÁ°aÃúÐmú¸¨ò@©“¿,þ¶@Äõ‚wÊm´ÛíŠÃáP:ç ÊvêÔ©ãNüáà~.W,‹ùz|’WS\\\ïr¹811ÑÜðÝßüÐzªÂÁiiin¼£°ùóçÏliiáÅ‹¿@ jAFFÆ#ªjxáÂ…»õ&‘ˆ¬­­åÜÜÜ#¤`»€¢âânÙ¸yóŠuëÖmdf/nn¸KJJê""""ødï2ÙŠm xòSúÂSTT”d2™b´7á×ìZ£c vÌ“ÿ@÷ø;ú½^võÛIEND®B`‚x2goclient-4.0.1.1/icons/32x32/new_file.png0000644000000000000000000000212512214040350015000 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<ÒIDATX…å—ßk\EÇ¿çÌÜÙÍÝ&Ù´M$‰¦¤-¡©¥(F ¶jÛ‡¶/­ à“ˆߊø4-¨ÿ@J<J_D|èC‘Bƒˆ¢Åúb(Øü ¨ ’m²Ý½wæø°ÙuïÝìCî03çÎg¾çœ¹sIDð( ?ÒÕè|ãÄäݘMé9òD9-;vNTÔaòæ¹Á³‘çç]pbòn,Ä–>ï‰î¦¶PTÞ¸¸Œ¥û8351øi›‚ ¶­f…ìV€˜!=>>vnöPS ˆZðá•ç;ñÒp‚È㩱–û›Ð × €V„РοڃÁž˜f §\˜1‘˜[W s1õÑÛ½”ˆsgŸò‰  ¹µÐ 6 á³wú „}ãï/|QÓ&ߘëMË3èlÉ;;4>üò/h&8l&Y'§Ç/Ì Ü˜Ø½XhÝïžÜ·Žu ¼ÙxóÒòƒû)çW³)Ðjë¯/`thFö´WŒQ»²4ÜZL/­£ßÿ ?Ï®4mÛr:¾úiG‡î ïa=ÓÜšvÁFÆáÊ׋М…‹tÖa|ï-€Cƒ3¸|s7N>Û‹^]é+ÚWR¢÷þâbE ˆ¨ð\_OáôÁoÐå§Kæl÷Ó8>t ÓwúpýŸ¬¦;ñÚsÝjÌJ³@vÌÏ߈ÀÌ…vqí#\ùag‡¸W*Úvÿ!ï™ÃÔïI;‚U@â\++¾Æä«çy…ZÜïÇ Æ†ÚpõÇ‘ŠŠ®Þ~À0Ɔ}c@„š·ž²@˜3¨Üu±*Ðá´ª ¸•µ:âã©SPP±­™exžWWþ|_%ì{,—v?𑱠ý)´ÇXÅQì,)WU…@÷þ#¢ÕB]Š¡fÿ\Ç®.Æå[/"¹-‰ $8»ŒSE:2€¬c[ýòYª€¦l#äAz’!âþ(^!^èÿc-‰O¾ïF›!+©˜m ªÇA)sày\uÇåõÈþdÔ®nÂÙãƒØÈÆüg«ÙH xš³Æè†»o4UôYV‘\ Ïó.Ò¤¼(akê<91/«Ly 4‚‰R“ËFQ ft@³‹UP- Œá¬1uï[*𠬣¡Ra~Z­³³Ö¿dͳVÅp68?¹t#óíµÛ’ÊN‡Ž8ëœ BQÖC+¹¶ZQ@…67f­(ërcrn³ß‰r^K»®êqLÿû¿ã¬th.IEND®B`‚x2goclient-4.0.1.1/icons/32x32/open_dir.png0000644000000000000000000000073412214040350015013 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<YIDATX…í—1KÃ@Çÿwm¢¢F Š‚C¿„SÅÑÕÍÑo "º‰8èîæ7ÜDqpœ,Zk´CkÛÄË=‡£i®‘¢`zBò_÷îùñòÞãŽLŠýzðòÑEiï¡H›ø&ν؞+'À:]°´Sqÿtg&­foÐsMØ‚âåÖüÓ_„ð ìa‹‹“õé±Þ £ó7ÿì¶¾_Ú-“Š:àÊ2‰°—YèË®öxçŒÅ^¯6g_bý´º0nßWýå¶\"b@Ðgˆìbt÷"†$Ø{Cú¦~àŒäp¼VýIl?5Ú+­¨Ïx €00í¿¥+ª õÂMWÔ€Hs Qlz¥,¦”¤i]D<Ým¨%í>ñ»Š—@½Ä|!À#j¹¦u½qê#`[ü&ºfÙÓ,0 ðk}ú߃ĈIEND®B`‚x2goclient-4.0.1.1/icons/32x32/preferences.png0000644000000000000000000000476112214040350015521 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î< nIDATX…•W{X”Uÿ½çûæ3ã0Ã0BÂr1/’º–x)QCRKÅÌÜ]wËÊZ/ë“mµ••µiv[3]Óµ,­Ô0/]ÌÅëzÅ 1ÄU.Ã\¿ïìà âö>Ïy¾yæûÎù½ç÷¾ï'8çø-FD@@ À@ ÀØùo]s~Û@À @`Úœ7ÖeýõËâžÈ`Êxú³¼‰‹·  îøV€n·6»Ýn‰HŸ±âþ…kŽ”e®Üw@t¸%úÁ—50q©1nü¸ñiLŒO–2ãï_¼þ”uÒc·¸bàªþ)Å@sEA]Œùõ]ñaÚö'w2ƒMjtϘ„Ç Ú1!1XyêZ‹4aÑÆ/cââ£ÿ’eÑãœC" @„AŽ#¼*A­”1%A…e3cTvǦœÁQEÕ ·»ºèä"*ò³ÀüÔ‘€âôî—m>ÒÔ6&V`Z%Ç·Å:X̘ö+xE×<5B¸þ [» S3¬ûs‚&5Î æ_¾öË•œBOT©³^yÝrçˆGê«*ª•*¸\«FB¤ ƒÃX7°®€ŒùÞùYñ;"€1¯¸pRjšÜ¨*>ÿ½qȽƒBÂSb‰h7çÜM“ƒ¦­Ü_øØÄ~f…@ dpË".Ô‘=JÙn?8u‚ù3Æ:""‚€}y^Œ‰S⎠oì*õ„ðÒêv÷KR#9ç~!²ûô¹¬µ» KŠk<²È8NUê1#EÙ›*Þò)Ër§³~F2ȹèðìÜ8…,Kd-+-à‘ˆXhÚÃq‘±É«$ˆêÐ %“8Á¨ yç{.Þ5 ]“²§‰!Æ,¢ÉΤ¾Ï=÷óÁ~ÿ/‘@“6{åâ¹ã½/É ÑrÔ´)a2haÖõN=՛ި½?8%­ZdáFüïý!ð~i–a1)p¥Ò«I›1«_ÄKÅåïŽ0œÚ~È«mºVå Æ®Æ@uï:*š8Þþººaï¦%©{ÞÎúÁþ²ŸO–¸;)é©®F†ŠF ðê’Ô«K`¶ Í d¼¿záÝ«˜T`µµ€[ Qùb*Ër·9çØuº]ºzhÝÌúü£Wm•%?fÊÞ³mÞ[…A`Yö­±á«7{ÅG9'o}€] »ð½­Q‘–±)±:pÜ\ë~p"‚B ÒУCGTzs (°^Ï¿u࣡±ÕSvá»íu…‡‹p€ Ñè#'$šƒT"'@B Âƒ¦v5tJ¹3î]y(U)\«|äSó\-U-ƒï[þ嬻4B¯È<‡Â—"xâ!qïïÜwôêO9oÍ-¼ê°¼cgŠÊ­­Ú!éÃúi‰€f§f¿)ã@«&¤ Ô¨œº¤9ÑÃÓ>™¬ƨ·$"”7p*î0ŠØùŸJo}³K²^¯²–žùêß"ç\"¢óaÉÓû+Æ«Ý!DãÁ¹Z º×6ð«òõ×ÉX–¡|€·dP\çÅïâT¸Ñ*a÷ÞÃ'Žo_º@»_ˆ4wOfûÒ)Az8Ú^Ø}‹çü&{šË T6ÉÐ24ØÜ<È¥eÐÎ9ç~ä¶–æÆ*«×îo´¹¼„{¢ÚðÍ•îைž!é+ùöœwcFŠ./Giƒ¯_6Ù2yÁ›‡áë;#Ûõ³è“|åÃ’ú‰ÃÃeŠ18p–_wÚ¬/̯ô"LOÖ6䔸¶lÙ²6.atº£µîg§œs™ˆìÃ2_\0uÒ¸IQÁD•M@|ˆ¹å*œ±©–ßÖmç]—PXÃ1ŒP^×îµÕýømîÆ·¸:F·®Ø[u—¬öæ|v¹à£ÖÚv =Ú“ðÅE­Nôª]ÍáæøìŒǼQJ4Ú%¼¿ÿºç¹ì„Àô¹ÏílP;;"Î9'¢Êœ sï„ͦ9gÍöVG´Ù¨Ҹi”ðCq•„p=G¤ 0úæ¶¹€ëÀõ&­. 3Q„Q+ÀááXµù|cîîõ_ÌêµÚòü~êýÖ­%ëE“!&5üB}]â‚‚oümôüõïÕÙ(üla]íî×gNË~~ÏÁ¨pShQÞ‰Þ(9òÝë¦÷¹%…€ÓzbãǽX’–1BñÕ¯êò*¼Ç Â$ŽŸ¨O:|©mzŸ'˜ßˆHߨ:2{PhdÂ"xeyûVo=ݺsxÚ¥³G/?öá9Z2ç\ž¼¶V­—–Fű!zqÔÛ¼ù7¼ÇÊZ„õÿ—=œaðÝ–9|·a>i•úš{Ïš’È][ïÿŠÇ¦IEND®B`‚x2goclient-4.0.1.1/icons/32x32/rdp.png0000644000000000000000000000335012214040350013776 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<eIDATX…Å—kL›çÇÿç}^ßÁ€ ¶Ác˜[€ÜÈ…­©ÈÒÑnê4mªÝ¤VTMju—¨“6MÛ—MÓ>ôë´5•ºTS”®ê’fÙÔf“šFBꬰ0;6¾ðí½<û® ±,ª”G:¬÷±ÎïüÏyþïóçr 4;ñA6‘@³¹ŸäÈüs¯,ÀfR#ƒ­÷©NKËÀk} êŒáÀô»Ñ‰¿\ ¢5«œséa¨TDDUUö†¡oÿúM§}w_GcÍÁ>»ÆÈ P¤®Î­¨ŸøWò‹·RÉ«þõ•ðÄ[ïÈ>”"œó{€ÎûåŸ8%®rι$I7w7Ô©bëpºpdXÔèàm®‚­Î£Ñ…ß<ñv€RLVªúî]_xñK»íB%UU1c< Ïu4tŒ1ì'x ;]ZÔšD0Æ@D¸ê_åþë“gd+èœÎæµ&†JŠ¢à¿‹™‚Åbmî¶+ÂV€RçÇyÿå?¿@* @DBMûWg«£@ÉžCVDb+i›ÍÞdÒòŠÉ‹`d%­pÎÕr è<}£ßûÊ!¶X½¬(ˆÞ–‘\Û3Ÿ ¾èŸžpX«‚ ”M,A@,-cqaÞ‡ ýlÝ=„¢ÝÕ9tnlI:y6)'’©|*•^OÄoEµ¢ ¸Üí^w­q· ì?sÙçr¾Ç©Ñ0†ûVÿÞø’<;yñ5¹Jòôøßßˆß ä:¼}ýkµ³ÑfÒŠöÈr²‹'Öþö¾?øO½–qy‡»gŸ«Fcúm—ðÍ„Ö"×ÞöqÎå’DÄl½Oí~úû¯¼vü]OƒˆL&ƒL&ƒl6‹LÆ(f2VãPKÃ;cÉôåœü™wøÙWƒwô¼¯šQ9ùcÈäUÃÑðÝÕß­€¡cÏèON<Ûch©×"ŸÏ—>W­Bû½Õ5Ó×zv.Í^>2lîè:p¸¯Ê°g£*ÆÀ‰anYÁå›A%N‚‘Dâ㳯°VÀÓî=ØR¯EqËÅÔRVª³X~ë‰é°T˜_X ÿîÒ>WëŽnS•¹6/ ˆÇãI“s‹Õœ+B±™ ×9çJI"jÝ{›½ž¦š»“—:ЉdzÕfw´¶[²ÔßlÔÑÚ®…vµFnK 8¸Ónf½ž‡×m%Kµˆïþâ ÷ˆ{VQ}çÁg~øõÃ;t÷«>º&"^˜ÚÓ¿‡±u„£; ‚Á`ŒÆ Û5 Ð뵸â_C`æ“s¥ú¿ ÀÝÞ{¤§ÙPQ~UUá[”I.[¶¿rÓÿ¯«K…ïÂ)…RÂæÛOïvÚ-D•ÝOQ£«¹Fgk—Ó,=û-†cë+K“Ñ­î· €¦í±cOêoÖ߯ÿÙ‚ŠD"¯·ÔÕå¯ä€y‰#|k9\®úb tÝ»~¸¯^˜ä1öiX¹Hâ‰TVÔhuÝ®jC_HQ0ùrlyidŸÇ-åý_6þÃé¿á»ô'lyû•Ó©èØs¿^uSk*Œ+w"¬V5WŠøîÄìW}ÚûH/ŸwP¥èÁ̉ÓòÐSéJÓt· ²¹ åT‹>w‘Ée©`Sê@$joî2†«›òäáV»)`êÇ‚lžuÎ*T9-p{S,õ“Ë @x@‘ö.JWŠò pã5´ånzÌ›»mFá–Ô* ÉŒŒväý¦énŸF~hW~äwý5ÀõÀR Ø œ-Â,Ô‚±òÝÀ !ÒšZ™¾\…„ž|ê›ZSᢴ_äWÿÀoßß¶6;-Ê”wuFb¶ ¼êùÛóëùï\ˆDí—Ce#p`JPiÕDÁçÊ^kÇ·²+¾ä×3O·|ñ9 ¼¾&šõ½ãݛ󎂑Ürr•Þ\X  È#øœôUˆ°âÁ‹^³ÃŠ]÷ñB§¡ý^«°t ¼SÍBB(/tÇ—üx¨ž¥4µØßWd}ÞYæó÷yÍò¾¢: Ê~úßÉdòÛ×—•ó争GN>º°¢œd2ùçRØZígÍ’lvGÉáÿøI&“ ðûû~ìÕ9S°EËP‡ÎMðYÞó½E5•.ûù8q®ôês{]–ûèLû©›ïü§Çä˜êà äK€/ÏÃyÏ]ËTá­#¹ .ã”&àä9ƒ¿÷äÆÔΛ”þÊPPô ô ¹3å÷-¯žø v¾+]}¾o •Z€žß@d±s67‰J.ɧFù÷'æ‚·ø«²n®`/­Ö¹¨ª’øÂWžCêÞK¨±qcÉ!ßú‰,/ü¸""»?6 ¿W/õnè;•n¨vGTèXu…^µâÁåy\ñ2TDœý¾º@ °çý”¹îZÈý#¡ïfŸXp³ÇuÝ}»ûÇý›rDl‚-~°ž­?‰ÙÏ+²¬¡¡¡o©p)Û-†ÈxÖÉW&cùeëôîšXñà®HÌ>¥|>¢oªj u€O„AUÝ«ot·×Xb`ÌæÄûÀ7q’žÍéøõY`K¶ÿ£Š .¿g¹•IEND®B`‚x2goclient-4.0.1.1/icons/32x32/resolution.png0000644000000000000000000000152712214040350015420 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<ÔIDATX…í—KHTQÇçÞ+Îè Ê!"J£"+Ë„È6--­(*‚h×®"z(½$Z$-£¨èAˆÀÈEÙ“0"Ë" šùHËI»óžûµ¨1¯Ž5D6ÿ›óïøÿÎw퇣D„TJK©û8À8`ă¥û[ò5C«F¤œ±µvLÛûôHn£à§ùš12ŽK!¬Òt  †®ôÇÊÿ„Òx8´Ôÿó†vl=ÝEIA¦ë﯉æÎ÷š,6,Íf×ÙNrsÒhë°©¦¶Þ ¹Ÿ«âï‚e»Ûݘá͈”£ÐÿÚe€Ì> d¢˜ Âk¥ÀVPÒ3Î7TMñ;R¥”_Çãã)øÌbf0;lzåIEND®B`‚x2goclient-4.0.1.1/icons/32x32/session.png0000644000000000000000000000223112214040350014671 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<IDATX…í–}luÇ¿¿ßÝíÚk»µl³íXªGgÐÈÌ^š£0ýCç ™/€o‰â^œÉ™&j”,4“à$'DDâP$–¹—nné¶²®k-[Ûµw÷óÖÑ1˜14Ù?ý&—ûå¹ßó<Ÿ{ž»çŽ0ưœ¢Ëš= Hà¬`ÇE!%ÃXA€|Pd G‘ÙÑÉ®\ør}ôv>$ƒˆâºŽÒ‹Y 戚œôãÐD„]qÍÎú§eu¥)ååï[&€âZçFWñѶ{¬F§¹:ƨ/ «IÀ«4pû£hþΣ¤J´óÐ.[eBJê­+ |å×oÛî?Û¤çûƒPãBR®–P¾V»_¹±BÏ}ÖòBÖ›w  ð|÷³'ÿ ¹>f ¶h ¬ò¦¿‘®!`§Oì±óc¾¨Ñå]ØæXdÀ–.@¯¡Øq`T-X£+hznå¥y€Ú÷öŸºgÎļټ7‹¿FØ ;cÛ7˜új7;deáùÍŽsE–Õ™mLrUaš™çü8…áÉhWË–Ì2`î-˜ò˧RµœÚ¾ÓJmfa¾ñ…Y¢U€çnÜtœ (L%…0£ŸvzO”åIn›YÈÊ·‰¸0Z»(ð[Ǿ¡Jhë«E!€gš€ÈÐßL<â#Ð m·ÓñpD[Ý¥õÎc/qe9Ó_ˆ ©SÄ©ú\ €ÍÏ_GÈ+"­š’MªtŠ=ÇÃaJ˜ðñ §€?‡U´‰(f‰ýÕ)”ΰøÊÄÖåy*êŽ)i϶¾è¨BIyÉ}DkÐd*ž1Ì="\cc#àµÇ Ñ_zƒâe+wz¹‰ÞñÈ·½ì ‹÷jµ’¦íäLTHE0‚uf½ùá\#/It:$IBl­ÓéaÒÁjÈ€G}&U¢w?•&®³§j%IBŸ‡Ç¸_ñU®Ok]ÔÛêjp¡‚a·Zñܬã:LªV ]ÕŠÄb1òOz#ûliÃà#<ÅÉ'Òk²<={4O—ìIœöŸ„/¨œn®Î¬X…õ½víjÎu@I]Ÿ•@à»öÚ‡c{Jk7«² O޼“Ã[L¼ñ¿’÷ŒÎâ½Ãn¥È¡Y]÷tæÐ|ßîæ(ªíß½yßßýþYaKȈ²­ŸŒ°½G¯5Äûß5c ÅuMÍN×ÏÝÓ3ªº8ù÷—lÓ¾!yW»ëó[}ò1€²úÁM„âCHí›È²Œ¼~h"BúÇg‰AË_K×Óªö¶ßoõK@LEï88j%P{dE¾x¾%Ï{§ý ø¿Zö?¢$@ ð/œÿ:Ò,™JûIEND®B`‚x2goclient-4.0.1.1/icons/32x32/stop.png0000644000000000000000000000224612214040350014201 0ustar ‰PNG  IHDR szzôsRGB®ÎébKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÙ 4 ’)"K&IDATXÃí—_LÛUÇ?÷×–ùױѲéÖ±A20Ê?™Ù”¸÷`Ô(j²Å?‹ã‹6!a,îq&[œ$Æ'}![0Å c›”‘èF ™aEÉÜÈÆ ýƯ-Ò•H|ñ>ß½çwÎ÷~ï¹çœ ÿñP+ý±ªÙ¿G49  ¡^ë?ä:»;Z2Êî–ÑG Y498§ 'ÂÀ¼þòdlšÚ­×÷¼Í —F±VòÈE·Ç7$JÚÏ·}¾*5­þM¡ |"B}’Ì–)QŸ¹=¾ƒ&³zå»V×oIA¥×W Ê÷q^â´""ÇDäê¿õE䪈-vX£§ëCA¹Xåq'„•Þ+J´¯t{¦™·òØUšRá³^ôϹ6×øêÒ Çz®óçtÈX¾%Jü|Û¶ Ë2PÑ:R¨Dë6œ;¬tt²»,â<îµR°»,ƒß(d[A˜t%Z·»å²sY¦ úXàZŸBÇ~öLsÒ×+ÿ>3ûlÎO1¦Ö¡Lq¸=þ½™i¼°t«¶â$“‘ªqäÅ d¤†mì«öøŸŠÃ€¼gH/×åà̵¬:ÓæZhªÍëQ>¨ô\)1">7ÃÄ3Yk–nŸug“c3Ÿ;+<þ¢ h» ©®Ä†Õ¢Ö @ªEQ[l Ç©†þÄ j ¹z»mÍ‹Nuqzä Q51 i“ݲæî·§D%µ9•gHöLÓšXlSì±jnc¾_Ñu=®Áœ´TnÞ¾'¹éÂððpü¥i€u‰¯h&"âò ¼T>ONš›.4=2¿|Ý×%³À2! òÝ‚…øFw„8ÒJøfC–è/ H¨ç~ X¨ßjCD–5œˆÀc)À¬q ú–ÐÍtiAŽªûçO–Ú0)IÊɽôB¢8=x;¬f2ÏwÅ,ÇU_Ÿ,äƒw²h(³®xÇѺ=—îpô‹icºoàÐÖº˜‘(ñ ªàTï4•Û3päXVEýÄ_ANõÞˆ£ÒZâ6$nÏH7¨½[Ö§pòU'¶VÄ™Y×?ºÆØäœÑ,t´¹ãöʬã£ÌñVg€É©`ÒÎ'§‚¼Ùˆ8‡qsP?XKÖ<ò°ÒTŸÑåešx§Á¾¨%»×оšáxÏunÌDZ2”Ô ´ &ü0©òúËEä4à0æŠ ¬ìy(“ÚÙ‹»¤ÀÍyú~¹Å™Á)|¿ÏE/]ÓDíëowýôËÈÝrÙ)˜>UбJl~Ö]“™—Ê7&K°©¿µ8°ª§Y¥g¤Q¡Ú †À°ÒÕûç»Î¬éÛ°Æ;ú`H—§QòJˆ¶DÆ(¾Õu­ëÂá-Cü?ÿý@g"ô-n‹IEND®B`‚x2goclient-4.0.1.1/icons/32x32/stop_session.png0000644000000000000000000000210512214040350015736 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<ÂIDATX…Å–]LSgÇÿÏÛs(U§AšZ ”th/£B=΋%ì3¸Â_Ù f‰7[B[RÄdÉ®f¼Ù•,zcæÄ%»à‚QVÜâ.LÔÖ³X?¨¶´¸)BOϳ Ö‘ö@i»6û''y“÷yŸÿïý:ïCÌŒÿSR©;s-H“Ä˜ŠŒyΕšG|,¨µgÚIïð0áÌV1eP‡£^_P»áPäû.˜êÞ}ñŸnð+€IŠ|ßÔn¨ÃQo!¹)ß8>üdnIi“©çãêpâPÍ¿}7ï¾ÄçK€Ù‹ž¬q?¿Äßý•ߖҖ—š_lå±å t†´F]èÓÞæêžñ¡Æ,óítâP Ƈám®îÑ…>ÝÒ‹ð…bî*CÌœï®k½rÚ—].Ø<#—]Æ•Ó.œï®k­2ÄŒ/sp$s =<®¸ûU‚ŠöÞHN@¿ª`ðÅ-ôtøH(æÜ@Öõ ÛQÕtê={éÎ9:Õe‡ÛQÕ$ëz0/€Ð<$謿ÏÙò¦ž#ÙBð÷9@‚Ϊ-ëÄf00: *òþkÙÌ3Úß`Å€ªÈ Œn ИkD'ûU¥ìæ­Ÿ):Ù˜k1H,<ÐT-ì;-°ï´à@SµX>h` ý°ÇV1óŒ{l``ã—žiq›S)ü¾·5X!YÅž§"ƒˆÛL ´Õ×þ8îsYñí'nì²õž¡¾Vf0Š^ÿ[qæ›ymd Š/-ë¥%,BKË:@708¾LU`!™ƒÍ…ïþ¶Rq€u ›ˆõ‰ÏÞpâUºbæ‰WiIw=:eX`©KRÒ.…´(ÃóF`dôñ 2QÏ«¿5<–wÿyW–7üµ÷HºÛ@è ÜÀW•R>ˆHO§‘.%€ˆä  º»† " î®GÝ-ÄìC¿ Ì,ÀÝ¿03à¹Tzªabf5¥¤f¦G 03P[kšRÒÖšæœÃ (€šsVwWf¾pi2³f–mÛdÇñf`]W™¦Iø-«xžçJÿ”Û?£žžOÛ„¦ô|^VIEND®B`‚x2goclient-4.0.1.1/icons/32x32/suspend_session.png0000644000000000000000000000034512214040350016436 0ustar ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<bIDATX…cüÿÿ?Ã@¦µ}Ô ,„86ÞÇH$ûë)UK´ † [B5µ ƒ F0ê€QŒ:`Ô£uÀ¨F0ê¢ZÅÄ´nÉQËÀÀÀÀ8Ú7ñÆÈ IEND®B`‚x2goclient-4.0.1.1/icons/32x32/tbhide.png0000644000000000000000000000236212214040350014452 0ustar ‰PNG  IHDR szzôsRGB®ÎébKGDÿÿÿ ½§“ pHYsììu85tIMEÙ  :ƒ¥mrIDATXÃí—ÍoTUÆŸ÷œû}çvÚ¡¥ÓLÁ¦ ¥­š–!¢%FlÐ#1îLX‰[&Ѹ1bH\蕉ý ±Ø’H$¤#™ÒJIa:R¦3tîtæÞ™s\ðU¤´Ó žÍ]Ýó{Îó¾÷œ÷Ïõ\Ïõ‹Öûâ¾ãISqM¼¡ÞZ×QÖk ±Ië2TÞ¯)ä¨ù’/pñ_1‹'B- ê~³÷5…6j ¥½Š4÷Å'¦†ãÑÙµ¬Å× ïþ4ÙÕÞhîm·÷´[»:ZõÆöf-`jL/ûÂö}ìO^Ú ¥ŸÄS7‹'BíÖápP=ÚÛnõ tØÎ‹­!U/”Exn¡ú‚ÆQÜкñgj°ˆÛ?VW5ðÞ©=ýuÍ;ïZƒ}Q»gGDwZîV3‚ÊI«·XÀÒ¸Q•Ì oU¦›>Èz‰ïVlL^ |éÎû¢vÏ@‡ý~_u&GëU+ù2œuÅf…S¹)¨¦ïlþÐ]¸ô­·j¾{r *'-[g¨J ¯"qnl¡«5hèZƒÛZŒèŽˆî8&[~7Œ°¥Y7‰è…k75~.qlìâk½Îœ¦ò®ÀÅ*¼ªD2•{h@J@.yš*ÃÈä\h{Kà@8¨ÝÖbD:ì'Âï+\¯ ¹^1UN{²…J’ Tɾì&ßèwnq¶¸´ ÛŽAác€®NæŸXóZN7M!Å1¹mjÌ„€i2ºpÕu>žt{Þl%_ [(?40~öêbÁPT\ÉäW­ùj²u†HHU* %Ñ*b„;ú‚nC€åo*þ¼ãÑÏð&ëcmm›vmk¶ßŽmµíÝjï޹ɰ7×}`"`0´x°ÎâVÀ`uu Ë—ªåÔ¼_¾yîï‘•c¯ôÖÛ:YãìH$¤E÷nµÌÕj^ƒìˆèD@4çVêò‹UM ÇàÀ˜‹'0ïÄ¡/&ÛÛmël—¨)“ó1:UÊ© I¿*$$’5Þ`¦@&_aÙB•ç]±³*ˆ:/tryR‰wÞ«(œº …9œQêú¬?Êú‹ zбÿDŒ‘BÒ¢h[Faêƒaš€"Œ`-úBä¥'ä}¾\×í-!A X:ASˆU¢K|ªñ@k0€pPÅëÝ:l,×U!qa¼ˆóÉ"fæ}Üœ+ãBr©ï_zr2ËÁþ®‘x'ÆÒ%Ìä}\M—0tÅÅÄÌ£§k*ëã×1cÓe¤ç=\Ÿ-ãÌï¹ÇàGNN­"ZšÄÁn¯ÞK«HŒŒñË…»ðLg~˜®¾µzo¬[)‰É[†®¸8›(à|ÒÅõY霉Œ‡3_>çËkOo&ŒÅ莡qM!h ÝMáZÃñèÚ¾ŽZ`Ë%‘ž÷‘ÉWÉW0“ó1=ï/ ?øYò™MÅ ˜"À50t¢óÙÍïË%±¢ÁøÄÿãÇä/é¥Âî—›RÐIEND®B`‚x2goclient-4.0.1.1/icons/32x32/tbshow.png0000644000000000000000000000160612214040350014521 0ustar ‰PNG  IHDR ¡YžDsRGB®ÎébKGDÿÿÿ ½§“ pHYsììu85tIMEÙ  äæCÄIDATHÇí•ÍkGÆŸ™ý,KQBb·uÀ)¥šBiñÿ ¹äÚcn¹÷¤CO¡)=”Þzi¡ÅÐ4È%.qCŒ¢8’lË»–V_–I»;³;oÅÆ ù”Üšç40ϼïïa€7ú¿‹í.Î}]:ihìT2ÆŒGx,$R" ¡ ÚoXC,Â`ꌷ{*ÑqC&BZÎÙ­%}ÏH8NÀ,N09fpv` .Û­à•Ä9#¥ˆi‡ø "+{ôüÐŽ3žñLE;1uÔL¾? ‘ IþE0(ˆÌÔ§ð­†ðD@Õ¶Er¯€¹/Nn̦²IŸŒGù̱ƒFòôÛу‰1þZf³}ÙóÃ^Ç ï—[ô[׳«_Ím¿ÉâûSSo‰x”wÆ#<Ú÷鸡1#ÓF>¸ë)A[ ¹VÞ‘ í¾J·½ð޽#mëÖ·Bÿ;ý¹šKcy6•ÝhvÃàåñdbúи–•DÁb©à–­†üsÝñÝjˆ{éÔtiwÿ™­Y|çê3úQƒ·ÇLf>ñhBã,r8>8‰Z'ÀË÷ ‘Y¯Šßí¦L?Úö–o}YØ®¨]Ÿþ¼€ÕKïeÆSYy`³&'LKê‘ 5é-®õìr3X°ªòZÁös‹—OÕžö¾°¥QHTZ2%ÏÍWÄrÑñ笆Lg×½Õ¥oÞ­?˯¿¬›aH„ŠPp|w!×߬ìÈy«îÿüWîIÑþ~¦û¼ü†: »)±²éö—Å|Å¿¾Yé›·Öø°û¢l}ÐKõ4 ¶„yGtçï÷ŠåqcÃéÿtãǼµ3âe¹C=ðý$Ä´H«¯&¬¦4KuÙ)Õåí‡ÛÞ/yGÌß¼¼òöY9Ôg4ŒfSÙÜH~fjü¼©³£¦ÎÊ" «‹Åþ•Û©éêH¿á°úôRñ£¨¡}bê,ahh{’î^½øÎÒ°9ú¨Ôk"Ãq]1ÍT o4‚þÖ ·­M'u®IEND®B`‚x2goclient-4.0.1.1/icons/32x32/tbshow.xcf0000644000000000000000000000411412214040350014512 0ustar gimp xcf file B4 B4 $gimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 32.000000) (yspacing 32.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) p Eingefügte Ebenepÿ     Q e u?þZ?øV[jurlji iðhisyj\V.UZit{€€ð‚€m\V.JVaq›ÅÊÅÅþÄÅÅõÄÅËË´—z^R.ú9Um²òÿÿúש‰aFúJg—ºáÿ ÿøóÖ¹˜b9ú9Um²òÿ ÿúМ€_Bþ9ú.UŒ²Ûÿ ÿùêʪ‚f; ú9Um²òÿÿùþÊ‘x\9þ9ú.UŒ²ÛÿÿùçÅ£x\0þ_ú9Um²òÿÿùüćoS þ9ú.UŒ²ÛÿÿùäÁnO þ\ ô9Um³òÿùÀfFþ9ö.U’²¼¼ fBþSø9gmsys:þ9úNV\aYþFú:;=@@þ9 þ:'?þ‘?øŽ‘›¢¡œ››ð¢¦›’t‘š¢¦ª«ªªï¬ª’Žt†Ž– ¼ØÜÙØ ØÜùͺ¦”Œtú€žÌöÿÿú䯱–…ùBˆ›ºÑëÿ ÿø÷äѺ«˜}ú€žÌöÿ ÿúཪ“€þ€úv³Ìçÿ ÿøñÜÆ«˜{ú€žÌöÿÿúܶ¤Žsþ€úv³ÌçÿÿùïÙÂ¥‘nþ“ú€žÌöÿÿùýذŸ‹c þ€úv³ÌçÿÿùíÖ¾Ÿ‰YþŽ ó€žÌöÿûÖ«šƒ& þ€õv·ÌÓÓÀ›ƒþ‹ø€›ž¢¦¢€þ€úŠ“–‘þƒúuvz€þ€ þ€'?þã?úâãåçæååþäå åîäåæçåâáÑâãåçèèéèèðéèåâàÑßáãæíõöõ õöùòìçâßÑúÔàåòýÿÿúøïéáÜù Ýãìóúÿ ÿøýøóìèáÙúÔàåòýÿ ÿú÷îéâÜþÔúØàêòùÿ ÿøûöðéäÛ¸úÔàåòýÿÿúöëçâÛþÔúØàêòùÿÿùûõïæáÙþâúÔàåòýÿÿùþôêåÞÑ þÔúØàêòùÿÿùúóíäÞÎþâ óÔàåòýÿþôèâØ´ þÔõØàìòóóîãÜ«þÞøÔãåæçæÜþÔúÞáââáþØØüÖÔÔþÔ þÜ'‚ú!FZdb\\ó^kl:;¬ÈÉÀÀî¿ÀÑÊk RŸãòïîìëì ìõëìííïçѧSûnÎòÿÿúúä¦_'ú2rºöÿÿùþÖ a) ûnÎòÿ ÿúùàšNû-n¶òÿ ÿùøËSûnÎòÿ ÿú÷ÜŽ= û-n¶òÿÿúöĆH ûnÎòÿÿúö׃. û-n¶òÿÿúô¾|= ûnÎòÿÿúóÑx!õ-n·óÿñ¸r4øqÎäËrú4kxi4ú  K  Hintergrundÿ      , <ÀÀÀÀx2goclient-4.0.1.1/icons/32x32/unity.png0000644000000000000000000000565012214040350014366 0ustar ‰PNG  IHDR #ꦷbKGDÿÿÿÿÿÿ X÷Ü pHYsHHFÉk> vpAg ‡úœ jIDAThÞÕ™{\”UÇ¿ï;30Ü„aQAYE3/Ú¶éšZ‰]6u[·4·L×Ì-ÍL«µÕuµÚ³"5Ý-ÂÐjE¼`¨€(A‘î—¹ÏÙ?ÖÂõj´Ô÷Ïgžçœóûóyç\$!„‚Ž‘¯¨¢}·ñáæ7áüÉì„¢l0,9WõSŠTåCkž!·áØŽ™XG „CL•Þc¦«4©A~Ð}:htÈ*èe>³ß㜻9ÜTçÔ‰’Ô#@ºYDƒ³L¬¢vÍÉ•ÙP¸áÝYÕPñ׬e§fƒÝl^c!9©€v,7ÐAø¼I/'‚ësÞZ¹qûÝ¡·äAäˆiį¯7ƒÏùÅ¿`nܘ6 m\ÍìÆ}B|¹vØŒ·¡ì“½Ùy·€MÛžo©ýo m]5?WðRéé}Pö(ðŒ…A«“ïI˜Q‹gÌLpU€û×ۯ߈ΠHe&/ Q¥ûrFÉF8|tmún¨K?ã~! Ä,‘)Â~<Á!»+µŠãÐ;9á@ä#—“2vòÐÄïñû²s#®m@&)¤ Q®úb^a ܼzúŽ|h]mi\Ó}‚¯É/y‡ßAÀ]Ñ®}–@¢ý9Ó}#À§0,Úñµ¸¦†ÖãA¥ç„ø|ç3ÿ~ç h5WOmhîn•×A DCà“CŸ K€qš—ô®³Ï[W!_hRýqãD!m~é–]F¿¥‚,ò¡Z›·öl ää½–òÑpäZ_´¯¿rª¿3@8œFñ7!Ž7ny2s8Ôm9Óta`w«¹yÄL±G„BY徕)PzòÓª.Wæ}g@mE¡®¢”T}Rpì7 ˆz1ª»eüpZ£m3àDø›g÷Knó*“ªc%ÈT“K‰…Om³ey€õõöq–7»{Ø]OsÒ¹Sßh Ä5CylwG\nYëlª‡ŠÛ³Ô§^~äÿñ®B™çúU,(*\TÊðÎóë§ Î<¿ûÙœL²ÈB>§Ëþ´hØfõ©î–uý袢ïmÿðè ÐqºrtP” øô ÍìùêµëŽ”N¬®ƒÆ£å÷Õn¥aþñâÒ] ÌÎþ"°c¾Z¡ï𾳄Q+–L›öH;äÅ’œyà_iG{ÁWÆ]áG®_À5>v9„ JL‰šÖÚÖ#¦áÐC/¿²;¼—èk´îà_0dzŸ;ÁQj[o†S±iÕÙV°O7í³ni‚¢L®]räþÞÛ D-½†ÒÜJ"€­"D<¥}3—å-Íú‘Ú à¶‰Ž?‚\ßT\cøíEáÖkXõœG„: ǨÂf@Àò$ÉkO`oÁÏ wYÈ“ººŽvüËg„ºƒªÖ=Íe¼s ,.„yÿŒZV\Ø[ŸýfMÐůwƒVû‚÷gúRÝÀv î…³ñŸÊ?uûý 3Á³:pk(ð3‡/ìõ<ècâm·Bãò³½jAn]`ˆi¨þ,Úä-ÇÓ`^×diß ¢´Àð¸ ó-ñ}eº8Ê3¼Ö~ÍU¦x°ŒhI4½ 6Z\½§$L Þsô·iÇCyåž'‚ÒšÑVh~(ºâXü#!6‰`fzéÒ­€àžKoÛUãlœÁ‡GF8R’¢EšFkÑk•nyÿô°øùЬ8?ÌØ æM[ÛePJçe”t±•=Ý-³ƒ¯ß­Ì©Ó;u¡ÍÛ­4Rz¾^úÏýGCÀ–dZby$ƒ(»íÙöFó:0…ÔÏkY Î™Ž³ÎƒàRà9×-Z«ç6„ŠñY*$Ý“ÞcAéºKsØ}´ßiôjžÛݲ;h®«|Íø0xhd°ÝÞž`98€§ÈfþÅ¢t¨*ý’’tPE¹ot þ¿3iXÏžN>ׯw‹&Už_Eߌ€í Ô¼¡OÒê ýC㡟Ӗ¿3l†öM– 8½h‡|ØÆàµDƒ&YT{+Ⱥaçé] }éuS}¹u·ØA~U1X~_‡¿”ràÖáúÎù¯Šò°ï©´c Xi»t§ U)&JKº[Öõ£Øà:Feƒ€ô!£û<²>$¾vàûàºÓg§Ç®k:ïrd8÷#ß~Èѳ#®Úæ±N½»»e]?ÁëbgE¬u‹o„ç:I’•¡êeªIŠ˜rwÿ6–J’ôÑ•…ö*óë,°e¶?aÉéˆû, 1èv·¬ÎQ<âZªúxLɉuíˆwŽ|lÚ–ø>àþ®Vs•%mÞÔp¾u´ ©¥©°#®Ý9JžKýÃ|\øÉ¸phdXèSãÎ0]ůø rßdÿÀ_Æ,¹Ÿr¦â’Ï›¹ anÛ:0ÈÇ|K/Ù2«öÎðè ±ûOÞnjßG½Ž.xþ>êc>§<`ØÓsÛ&Œé¼ÒWNï¸S~—©çè%)2yZâH­Õ3ò,eP>÷³–“s@lÑâ1(Ú¼cú!;ôcÿ4hŸïú?ësA’úþj¼4D+„.c€%øÔè Ë5`íÙ2Ë´+Õ³U­à>Éw½×_ §z*dÓž×v½pÅßUw+w@ôø‡zŒ­‡€ˆè¢ÐipùQ_yy¡2ËÍèR*Iq¦E£&¿#„yE}jëÇ`ˆ>1¯L ¢l}u8ðàÊ‚ë!.6E÷0!¼w„làÞ±Ú`IÒÐû^íÿ6ý\À¥.-\à‚µµ‡ý8ÿè°8Í7'\> X)χˆ½“[nQËïs›7Ð&•~yå¥h§ïMIåyµ%BdízÁ¸}5æäšJA¼.‹yàÕ”ì×ú}4!aèAÜóvX¸µø.óÚÒÊ·i –:ò§Á4½>µµZ4ž…º˜â U_CýÅy%ëŠÜ+›Ái‰·½w3ž«Ú¯”a€ù×y±i0bÂ|ù®jpIöJP;nâZürÚ—}ó‡æ)BäÚ7.Íð‚âÂô¬Ü `¿Ë²Ì–s•†÷Ki’7H)–ÈUàìeOrÜb#uÞßõâ–Óã˜çTš={ÒøU0pÕTÃÈOA9U}\åø!#×À9Ü6Ý,DÙ¯ö~Çǽ¡Ê ‚¦šŠ§¾é N£ýc‡ºë^Ž2Z½Â¥V Ñôiƒáã~b¢üSç…¬ ¤­R@W>u‚]Ñî°ê„(ÍÜ»jxÔC¸mý½l?Æ”)g⺞×ǽ÷®ÜqЋµ±hQÚ@©Ré¨x!åšO±\£»»L©\¦V­²g×Ò8aîå7qp÷ Ìš16KP,üÔA§¤:a9¼ÿþÇÜqÇjLÁþýí=V¢«§LµV'NRŒHe¡”Ķ,ÛÆv,r¶ÅîM¦0y.Z—˜ØjSíÓäI¢!5YøNcë¶÷XûµÕ'åÂ`ÇAH„… #¬Ì>¡0ÈÁ§F¢µÄhÁ˜Q9ö·gL:k o¿ü<õ0so¯¾ðs.˜ŠÌ†eÉ<\=°à’ù̘3/€R=¢ìE”j!Åj/ÅRb±DµR£·V¡\¯¢}iìà#jV¹ýë´ºUêáBÎhÙºý–^·– '‰ŒÁáÿÜÌÞ}‡8v¼H©âÑÛë'P!R!¥ÂRŠf¥°óǶ ããØÝÃ'GžeÚÔVfÏšÀ;Þbæ—.cïëϲjÉ$vJbp„VæG‚DC’mˆã?ð ƒ>ß#ðk$AezÉ)Ÿ¦\L¡ÉpöøFÊ[ÿÀîÃiv"K’¯¾Oo¨9w¼dó¶L¿¨((͸$NOð€60ç‹;yE/¤X é,Öé)y”‹5jõ>ü ÂBjQDÚA=EšW…ØJàM½Žry3­­æÏÀÆ—å–³9~8Ÿ‘XÚ ¡c€Æ-ȸýÝw÷ñÁÁOèêªÒS©Sïõ³LN©#‘Fã”¶%q”µ¡ýxÛº*¬¸¢À¨Qynºr:omë`ââuÙ¦ý'Fè<Ðçûx^J­Dµ\ÅójÄQŒ1)臡"o+r9›|Φ©!GSSž¦ÆÍ];Ø«® á8®ëPn˜Åx0퇥¦–ïÚ˜0ñ,bÝêÑSö©T=íìD¦1c4˜,K‘£3æÒ†4Õ`25FcdŠN Z¬fËÇeâÞ×RR:·fkŸDA°eÛß‚ìïéêäP{;GŽvÓÕ]¤V©á‡q‘Ä :MÐ:Aè)4Rh”4ø ,eH5Ø‹D|à»ì­ù(•m¹eãÓ\½z-R Õ ý5ÏPdW©¢!ß@ss(‘H«‘\”'2ƒNbˆ“„8JH’„DkŒN&Eè1n.jïß(¸!e33hàðÎM¨5kQ”ººåp”„Ù³gÑræzj!¥ZÃî¢G±ìQ­Öñê>}½>Â÷! I¢4ò! Ú0ñüÅx›¤×Âå·ÿ€í¿»•Ɔˆ¼ÕÃ;ߦmñB,•í5 #<°çì}¯ƒ#Çzèî.Q©V ü8NH’ö³‡ÑH ®Ð4ˆ !Aþ*»ÿB£1ùš;Õ”Ç*Ì€hJþýâ3,Yº[1¨dBK‚K Ç&çæÈåÉ54“k(kƒÓ0+߂ʵ œ´ÕB OcÞšoc•và«iL>g |eíÝ„QÆ·:ò?þå÷Ë´L°}ûxw_Ÿí¦³«D©R¥¯/$Ž5ijЩFkƒ6ý—<e43ç}™íú+²q:S§Mŵ!oCÞ+o\æg~ˆRšîãû‘iˆk¹# 8‚(Š@G cŒŽ1i :F˜$SR0 ’~bwîÅì{ýil•²|Ý}4ç¡9M.49piÛ¥h‘Õ»ù\È/~òðIEêI%Yª %/¢ì…Të!¥j=¥]ÝEzzŠTŠª• –›ãÂ…ËØøèƒwB-öŠË´Ûp®¦¢‹µgrûÖfæ¥w2ÉŽüi² ƒ;Û³<³یDz¦Øãwík–çô=à™Ý퉬õmb­abÄ6ˆÛ\˜ՉuÞ­¬+õ¶Bâm`À¤Ay#¯;£vÄs»ázjç¸YöÄÝ?µÈq" "nà𤘡EÙ©‡º´wÛXbp¯Øæ²qY¥jSjÙv©¸Ä«.Ócú\¹åÍNî“ïbÏÙ[¬Ý}#kê€aªzîa ¬–¯«ê'5‹û¦bͱL¶ô·é)¶IÛ ®B¶©—uåŽ/àùò g|ÑaO›Ëå÷ÂËž2Uµ.*yœàÍvAU9I PYØ?>.6¶1ÆòZæJâ’ã·ÃjL†ûfUuÛø7í‘ÿšýOà/½GLQ%ºIEND®B`‚x2goclient-4.0.1.1/icons/48x48/x2goclient.png0000644000000000000000000001132112214040350015302 0ustar ‰PNG  IHDR00Wù‡sBIT|dˆ pHYs11·í(RtEXtSoftwarewww.inkscape.org›î<tEXtAuthorHeinz-M. GraesingóQBtEXtCreation Time12.06.20071¢"tEXtSourcehttp://www.x2go.org/artwork²rÛPtEXtCopyrightCC Attribution-NoDerivs http://creativecommons.org/licenses/by-nd/3.0/e‚Š,|IDAThÍš{Œ]Å}Ç?3s÷îÃëlìP›— ø °YÛ±“6á „J’6©š¦´ª¢D‰ªªi¤„B+µi"R’¦´! B ¤„ÆŒŸ³¶ÁÀÞõ>î=ïÇÌôsöFNÿiGÍÙ»÷Ìï÷ßû7WXk7:=­fÿ†ÅónïöeB( „ ^;O|&§| ¤8á)Ï'ì3±ÇÉþ73mD;Jv=öòàCöˆ}ê©R°aƒsÍiç|uÅ’…£¤í0mK%@ åA½BH„¨7D€˜l‚ñš*3=‹jƒzŸ‰£ ³Ÿ¬iPÓ, „’‹Ým¬á‘Ç~u×÷ö¿ô×¢gѺ9_¼eý7ò•/Ý9§»«ÑaæT‡Œm«ÕÖNÿŽ +¾Q¤„ߎ Xkiµ#ûý>ÔZ²øÜ¾Ïÿåýóœõ—œw›@ˆ¯|éÎ9gœÖ÷[1¯ ”¦Z'˜¶¢^mõÔŒ 05+Yp$(yê š _üþ§ní{yû‹\»îü?tº )«w•RÕ;Rà8æ3Ÿýd3‰L²aÃzÖ­[[ë°í̬´%¤¥%+ N â$#J2Ò´ I3Ò,göéspý&íX1«¼o6†‹ëº(¥pÇqxó­Þ>pÁÊËHµÀ•4%’ž¾Óxû.½ä,˜×yçàÁ79xð-æÏŸ‹”âDÆžß²•]»ö2<<ÂØX›4M‰“Œ¢(k%–8Ê©NE(”ë ”ì08\°b5ç^2ÀyK/㉇¾ÃU+O›¦ZF²~>|Ûí4.™–*žRÜðÉ[ºàÁû¿Ç‚óضm›6­gíÚÕ(%É‹rf ¬]»†«0¦:ù0ÉiGí0%ŠsÂ$'Œ3Â(¥Õ‰Â˜0ŠIâ„4IèR9oÄbȬäª~–Á'¿ËÒ%ó§é°UŠÂ:ˆR¢-h§r¿Æ‚ç(”°8Ž Š”r™=»§Ö}`&Æöì{•×^;ÄÈÈí !ŠS‚0&IrJcAH¬è •-M¥¾£PF÷mfèíwþyäy@³©jcŒ¿s(³h¦x1gŠ+JæÍëà‰'¶ð…?ùô$óÇ!óæÍÅ÷]Ò,gd,âØXÈx+¦D (&/4E¡ÑZ×ÁË`M­ÖRUäTâø0W\ÿvýò[¬ºlA‡èy fÑ S¬ìA×'?Á¼Öš§ûZw!ƒƒoò{½”‹±•;~t` !h6›Ìš5 ¿ÙCO_?½}§ÑÝÛ‡ß5 ¯ÙÛèA(ƒÂ‡Ò¬‘u\0”¥¥0†ÒTÏ]²àõ×vÑrb¦†óÏËÖÇ&JK’Ò²²ša\2ËKQJ²sï[Ì>}…®\÷{JÀÃààAöîdh¸ÍØx@&$IF^uŠ A¨iy‚”G ”Hiq…ã(\Gຊƒ;ŸdÉ5Îþ½pñÒ³:ïÕ“¥¦Dn£5Ï=önþðö¾rˆß½é¬P互¨’'»iF|É%+XtÑ2’ âÂÄATreÀ9Q’'9í0$ "Ò8%Kb¢4Ag:+H4’ ÄøxÀðQ‡‹—N^¹|¿Øö4_µ©£Y™sö\‰‚=ƒÇ¸`UWżG×ûdŒ1ü÷ÓÏðÒö= 166NœdäYAY(ÇÁUNµº®ãâ8ІãÐã(Ü.Ïsq]…ç9øžÂó\žýõƒœ9ð9~óÎqÎÂ3*ÂŽ¢¼J”®GH­5;ÿ·t;w`íµŸÀE¡+¦]M'bŸTk×­ç’Ë×åç–8³$Eµ¦$$¹%-I®‰’œ(Έ“Œ4ËOs²4&Obt£³“HÙOn¶ïow\¹r/~‹.@”ËÏöØ{8æ¬ËU®%¡TuÞ¥«çhmØüë­¼ôòŽÐkÓBÒ4¢, êú >y§:aߣé7h4}z}—fÓ§«ËÇ›íâyÕTÊÅu»øáÓ?¢yîGh·wÐßß@__7ÁÖ'ˆßw6¯?ûŸ½i9Û_äý¼[Ÿ¾«*W;5iœ€’+V°då*ââÌå–(3$9•$rHsHJQIdBBIÆp’‘¦9iš‘ŒäiD™EؤyˆÛ;›žþ…lÙñ3®Ù¸¸ÃÀª‹ç±ç讼°k-{ß6¬½Ì§Ô ÕqÙn=…™@Yžyz3/¿¼›#CÇÚ!A‘e1º,B๎ëâ9¾ï×z^tOm¾ïáõºø§»ø¾‹ï{ø~¥Jþõ…_Ñr–Q1ŽS‘^¸à ^~ì\ø±«yá¥A–­ÿ8u©k;9…B2°v=+/_G˜Y¢ÌVv[¢TÓ 3¸ ˆ3‚8#Š+ot,NˆÂˆ"KÈ[1:O1yа’WÆ8Òâ;‚¼áнøz¶ï~€5Wž×!}ó ëÑÚ°÷ˆËûW¸Ó‚ÛLSÎ@ÃÖç·ñʾ§Õ®rœ$É(ò kAJ…TR „P(åÐPŠnJ _âv+B”ñN¼˜ €¨m`ÑÒK3ZAF+Ê:É\¥Œ·" "Œ"²$!LRÊ„ò9£g¨Ã Þ úºû‘r²“1•ù©R˜ŒÖðÜæÍlß¾›#CÃŒ· ƒ8ŽÈÒc4‰²Ó"”BÔ.µÒÚn=¢n}[ÙcëgËoÌ¥È"dVþ*FJú—_‹ï»¯=ˆ¬{W3ã‰ÿ6·ßùe¤PÓt€È8Žäë×sÙ•U2—d–03Ĺ!• Jè2Kœ⬠I2’4'MSÒ8$I#ò8¤ŒÇ1yˆÛèæü˯ãðÏîa~Wα Ÿõ7ÒpÏì|„ÙÝ­S#‡wbŠ ÕÝÕi€Mô’ÔÉTHÔxñ¥Ý 2::F†ÄQDšÄ”ºìˆNJQ'wU¯Gv šªÃÖÐ%ì4BCÅj“Л¿†’¹—ÝHÓwñ8}ÑUèwÞùnw3â©GÄ-·ßŽ#Õ$ˆÚ“6 $7¬çŠU3§ÓInIKHj)„IN”VéD’æ$iF–ådiJ…¤iL™†äÑ8–,Ùx¯>rsº Ž…§³aàž¢ášîà±{Ÿ¦·;©SÀ+[ ·ÝŠ#Δê„÷>€1†ÍÏnæ¥í{8rt„ÑÑq¢8!M2²,£,K,-õºe~œS«ñ!ª)±tIK2ëRœ2¦«8@)$ WßBw—KÃß×kÒ;o Û;{ùN‹Û¶°qÓp¤ìôN ùLRòÁ«7°z`ÝŒ%eg„IQ—”­VHЉ¢ˆ8ŠÉÓ¬ªò SNÆ!WÞx'/þÇ]ÌnæŒFsX3°‰¦'ñðð”ä#·ý1?¹ï‹4uõ§ ?ø!®¾zWyóê=TÈÃŽÝ{Ø·ïï12Ðcâ(%Í2ŠR£5+0Æ¢ÅhÖ£5Æh¨cÖ€Õ€¡É&dà¦)]ÉEo¥§Ë­¯øŽ ÷Ì3ðzBy°Ã\™ ñöá78}ùb\%p«ÆNÀâÅç3þ™uôÍ9606Ò"‚ "ˆâ8!MRò¢¤,5e¡Ñ¥ÆƒÖF›úôᲫoâWÞMO³`<™ËŠÕ éI\UU[p•âºÛ>ÃOïÿ:®[õP<¯äú6ÿwã*gÆö{ç#k-I’i´Æh¶F‰ƒ1â E¶)’SdcV#­©•°u'”°(4+7~ Y„¨äE!¹âÚ;˜ÕåÒô˜œ.4hº‚eË–€š;Áá¡ÃÄaÏ9žõã$`­åÈ‘!öï?Øi-¶ÚaTµóBSj‹ÖT§®«îœ.«œÇ˜J¬1€)Y¼t9?ý—»i6 ‚ô V^¹Š†?i)Ô’p…âŠ5ìØòãƒÍFÎÝw÷}ó¯ð<÷½Uhùò¥,]zÑds7ÎiE)AT¥U%–&)££AeÄu¾Ç1yš’g)B9\÷é;9°g2}<8kÑÅô6®S¢{<§îNß|Ï?õ(Ƥ¯9tp/{öìçÒK—p6ÝnÙ®]{:V¹Ñ }ÏrÊÒ`Œ­«!Qçè‹E ±Ö ],Z~%¿sÎb ~ýÈ·éi–眿˜¦cq]‹£DÇ«¸r€²%nO„ÏTgéyßøÆ}|ÿûÿ@³éŸ\kÖ °zõª/8 K®!׿¶sÁwYFžÌê?¯ÙÃ÷ÝÓßOO3ª÷†-?ÿ7íÝÆG>~ .]Ž«DG®[f<øû9tà  *e9Ä'>ñG¬[·š;ÿìf–À³ÏlfÇŽÝ=:L«ÐnDQHš¦EÁD¨š¸ó•‰HóÏYÁõŸüãG"…"N»:„¤°{{mOý‚•Ë—â¹jš-„qÄÖçž®¥Ù@ÏÐÌ¢dË–-|ñO?3³6mºš7œò%_Y_òå¥&Nòªåâ7¹÷þN»+žH¥×‘xîd~3a ½sûùχ€çˆÛè“ ªD€[Zc:¥Ý{&Ó…™¼f- ôõ6;ÅNÓs§ÖÝáÀDŽ?‘ÛtlA é½'í‰')¥6ÀɌه£³£$£ÙðOé¢ÛQÕ,ÕôËn3¥ŸsR5%§ƒ8Õa­%Š3ò¸=;7æѳhݜųß=gÑÒá¿ýú׿ý¯~j`'f0Áüñ7õSÕHÊóúSg>åË_ýú‘w~spÎsƒå|Á† Φ÷/ú»¹KAWOÿ¸;Q¤þ?y^È$ï·ÖÚ±ˆ¯½ ƒoŠ©?·YÚ§nö$Kí{šÑÿÝ›öíké‡Ã¾dÌ>õTù?ÃW [Ñ=%BIEND®B`‚x2goclient-4.0.1.1/icons/64x64/audio.png0000644000000000000000000000551712214040350014333 0ustar ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î< ÌIDATxœí›{pÔÕÇ?÷·¯°›$ æ±( #Š6’X±UkmëcZ™ŠâÈ8Ný£Óú ľZÿQ;>F[«LéT«‚µZ«‚y Ht“å‘G!BˆI6ÙýþvÙÝßýíf“è:#gfgîÞ{Î=ç~﹯sïO‰ßf2rm@®é¹6 ×ä̵:š¿24'*æõ .™ÊÒ‰°G š Øèvxõ½ú…‘±êRߤI0P×Àà>„k2s«(~WÜm¾øö“þðhu~#XÔ°;?õ¼ŒðãQˆ·"Æõ«+6FwΘßÐrf4"ë€óÇPM?"KWûÿ–­`N'Á@]¨:‘ÍŒ­ñPê¯Á{³Ì™T×5ŸáTlJÒñMÊwàŸâ¦Èç th½CD¢ö6‹pëÆÕU/ÔŽœp^ÃnwaĽTµÏü™>–/žDE©;)(*¬ÛÚßÞ;JWoT'Ú’ÚÆýÛGbKN¬h~¸]W6Ñë`õO§0·bBÚ:úMžú×Þø¸GSªBŽˆó¢ œy4“-_ûPS¼›Æ—:yzYYÆÆLpüö‡%ÜrY±¦T*¢ÎÁ?ŒÄž¯€yõ¡Åóî ÎŽý¿é&ÊPêx'z<³¬Œò·®Ø––/žÄÒ:ÔÏ+ƒf’ÿJv‚óî Î6œêqT5zü³bù­3[–"ÌÖÉÜ}] eÅ®Qé»íòIl õóéþÄl¥L®L';®PÛÐ\¨k~Æp¨O®2‘ßK=&À¢†½yˆ4èä~0·€³}£ÖkPC)ÜÉÍ¥ê[¾›VvÔZhQÃÞ¼ÀŠà½!ˆb9à:Š»Yã G"¿¦§ÊæçüêªÓÆlCY±‹_,´eÊé䯀R¨ÀÊ–›Ã‘h¨‡‚„âRöè·èê¸þ’"òóÆÇR]h©KàÒKV4UØÉhç€y ÁB#b| ˜*š:£må¦âÍX:ÐÐì×­ù—⦚¢t*²"¯Çà†KŠøóÉ«ŸSœK€Õ:-ŽAc¾r"mûÛ=DÛGVmsEÔ¥áýÞœŠ}Ž :²£kŠX³¡›¨yRŸ(nÆ­ï‰! béi“\̘êÑþ|½ë*dm’%7ëø.?/?cƒ²¥bŸƒ ÊóR³gÕÜœ«ã·[ÆÏ.›Æä}/-yê¡Cƒ–|ÓTëbé@C³áìTžü<ƒ¹VCÇ….›éckKRž¡ÔÕÀ¶T^K^zwS0 ¢ÔmÛø¾°É¾Nk㜦ë£XZE¹XÇSs¶§#Ó]¦YRÅÐÛaÀt;k^ƨöÛoI÷´‡1õS@{âܽây3¼¶u•¦99«$eSec‡AÆÒÕUöFî:`…R;“þ¡W<ãtmÝãAšú§U7ì==5Ó€BÍp:”n2‰Óî¶m¾ ŸÆë^F,“Ë¡(Oí¡q¦Ê)Ö3…3bZ:C7 –œ;ÝcÙZ&ÒîVPÄ=`Þ{Ï"’´9 ¼Ô=¢ñ¬/ÊÓÿîb{¨Ÿ9åyÜqåä/›~ ço%fÙpÖiö§²HTèìÑG¤ ‘öXZE#Åhö•¥™{`HøõšŽ8Э]C|Ñ1È3ËÊÒvLŒR)'Œ›lÉÒÈ–zí• ÙQL%Çâ•+5QÇSèÍÜ‹omë±xÙça^߬ €X©H§C”å°ÔÊ‹ïi)Ü0|>·£¾AÓ¶LE\qÌ(Zì6P‰ôÚ¦cYåëtç“ô8]ý6ž A{0<áx‰v£Ÿ €þA“}CÚ²ŽîÇûí; FJ Ÿ I„ô(% ØÙŸÆŽ÷†ã]¤LýÈ@[Wú¯ÿuëÁI¥‚”“¡RÖ!4 *Ä›´œmìØÑŸÊ@_Äè×ñIù]¯©J\]ìܹ߶¼µÛ°­  >’9˜;q‚Žîô<ÉDÕ9Z82ävŽ¥û†ìç3:d{P6ÑÂXZ Z2x°Ç §êA˜ì5ñºGÊïú2™O)Ò`¶9Kw‡]äååÅ'þs»ÝäçéCâÚ)»(ó&hÑ í¥‡m~*†AÔ‚¡JÀ–ç.zwàóùðù|x½Þx:öj¡M#L)8™­ôè§–$ª­ˆR19¹g ü#|`hT±¿¦®¹(LäÙ¶/ÊòZ·¥îT=Å.XVË >¥7WcÀþ£. 9^¡àÓm{€ït÷ _ºñ—:µWL°(P "H`ÛHˆ0ÁðVzHyð:3çlï.cü͇­C4bª­©yDÉz%êç[B&ç—'Çb üSÀq«Šs“2[d:{øKF ;XÀmý衊ƒ©™̈±ÞáV¸ñ‹~n»Âr€àìi LëL;[)”Ȱ+ت3ÿã}&³ÊFÈ„¾AØÕ–Ò9Ão,dé‚MW~hêÛÝÁ“çR6™â«­ Ń â`‹Nþ?»Â8œ.\®‘ýÜn÷ˆyw¶[Ý_™z;ô³ŠRë¹Qn¾Ír¨ˆÑÁný’d"ßšë«‚µ+›?—”Èð±>“–ÊYeÙÝÏŽÄÞoê³Ú$ò¶Ž×F»¬nhëÙÁ#…®ž8©\½¢°Þѽ¿'ÌœroÖcìèé7Ù´G>Ûøß›‹3j¬ÏÚ¢$’s~óI|Ç®œò×?¶÷Ò;hdåÞ™†Ä[úˆ˜©ë?¯ØY:¦'2ßÓRär™÷*Ô]@RUë6®òÇoˆ+‚›t÷ƒKsû“FmC"õ…M~ôø>z’gæ(‘ÊM«Î édÆt-»åÑÊcWùïq8Õ9Àv6 nKaYWÇk›ŽY -ý}s¥.Ú5Æé}À†úÊý«ªnAÉEïžP}õð­ð0yœÎ?­©²½&OþÓ²CÍšÚñâûÖ7Qb¨ÒÉë ‘ÆýÛWW]a ®>#±²÷êËPª^'÷Ö¶ã|°ûËQë5Mhxõ%R¥DÞil¨|7ìWòHêÃU•oOoªš#JUÂûô=•/¡Ø­“yìÍNÚŽjÅáùÿv¥¾1¸;“ì×þN°¦.x­Rj­®¬¤ÐÉ·NÍê¥Ø³ïtñòzÝs@y¥q•I&ù¯ýàÆÕþuÀsº²Îžw¼ÐζPæ€Aÿ ÉïÖvÚ4^…÷š+ç©§²§Kçî{@]¨e®¦ŒCurã*ÿ#Ùú`b JÇ…6ÔWî÷8õ(^e­ˆ±p4‡o€$Ò·ö£©T:ùÙç(˜/¨¢oÅgs¹ œÏ¹¦SäÚ€\Óÿoù+²зIEND®B`‚x2goclient-4.0.1.1/icons/64x64/create_file.png0000644000000000000000000000504312214040350015466 0ustar ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î<  IDATxœí[{Œ”Õÿs¾yììƒ}ÁºHe+ŠQÚJA‹“¦M¥Ú¨Á`CkllZS+ƪãkK¬µFã«ÚÖ`•V’R4,¢EM\ Xm@+»HÁ‘}°°ß=§Ì ;»;3ËìÎìPèIfç›{Ï}œß=÷wϽß]23œìml¹š`¿ ÃõRìÌC©y\¬N–Ì^üñl"{ZŸ 4¼btj82ã±æ@ùžêÇXþjlÒ{©ys–~4Ù Þú;'mOM6¶Lâ¿83Ï=œ®Þÿ˜¼§„˜pk/]ÚÚšGðVˆaUjZ´±e¢°­qf&ôHXÿ®^Jdzîøh¬„äm„`Àú>œæ¹b¿jŠMþÌYÒ²VÕ¢žÐNvnæÚØ”½—.m=›nM˜óÕ¦XÖhãöZáàßk˽/´wúÒëìÉ ±I?JW{ZP©1ê*¤¾¦ÜWU*µU©®(‘ʲ0—GB\rIÈ£`@È!f*ŒùÝ]Òz=˜Zˆ„øte~ù’û·•³s "!ö#Aö ví·÷D„-/¡ ó.,÷|gädª=#Lk+¼ÀÃ?_£†–e«öaÝ–ÎøÕ§¢÷¶l¨ 0Ü4·Zz¹ýë ®cêÜóÊ<_ k7wÎï²#ç=ž¾|A½÷àKíê1½óÊ] ïej't€£‚êÐâõw)oëçï¢îý>î›_'Ât±SŒ›;½ sÎ+ƒ¯Vτ˗ͯó˜­;{¸×ô¡¬ídÊ “""à%å[T`Í»pfñå-ÇXñû×.|pa=ß;¿ŽßÜÖs'„`\<5¢sÏ/ã/5„ñë—Ú!LíAukf/ùhš©w&{ÃGž~ã¶©ÉvÒs@°Ô@¦\Ä5“8ø c¸ãª±Éäñ¤öU¼}û³mþ5üä5"`éµu|é´RøjX·¹SUmÌa’}¦²°•föËÀáÐäÔvÒ›ØÑ¹2Û’œN ³Ï-Åõ³*\è`»»Ž¸=·=Ûæ>ªƒÊ ®¼¨‚̪ôn¿b,Í<+ ÐÍM±†-©º™Ç˜àŠ$$=Àwñeza´ ³Î)g®õžÿdÿÑž%+÷éÀ•œÜ0» £Uè:¢Ø´½ Äšb l'­^¨ÌæŠ:mû)|ÏÕã0¹. ³E ÜÿÖ‡Ýxô•iëhþø0~»¦} Ì/¦ÓÉâ¤\D”„8×7¼à‘Æ£²Tâ? ‹Xöü›Ÿãoïv ª£¶Â×'—¸€àlvºuî’–ÖhãŽG/[¼ãª¯Ý·³ ÈÀ! NNp¦xÐ#<þÃñz~ ¢'XÝ®›[zúéN¬ `ù‚Ódõíù׆SJê|Ÿ +GÜžhcËÍM$¢âÆIÐÁ¡zm¹‡¾W„‡Všé6þü¹6×Þczûùx浃¸ó¹6m\¹×ëÃn ¶ø±mHH¨ÌÈ©+æH‚eÚ„]QƒûVí@_TCËÑ^m]ôǶ‰Þ8Þ+3^ÙÚ‰§7|vÑSÄôv ¤¤yí­u]Éz²­ÅŽ-ƒ™u.Ÿ^ŽkfVÌl®o¶±íóޮ؟öªSÃ53Çà’³K„‰}ý] S2E‚Ÿ(#'ÅŒ‘àúvbëΘj–øìØÇÀŒnTØ-[Z{–ݳrŸ]wñŠ}w,ßó‚aÓöî¢-W6ÅÖök'mãa5\)çŸFM™ ½ÓáÐá£Ç]ÎŒz@:Ó¶®'ÞøWWyu™çÏœZâU• ìr¾lñŽyîžôjR?Ë^ ¸S`BMOÜt:t8€âK ¥<Ç;ÉËWïGóLJЧëïž´jÆcÍ«+>­‰¶wúóÖü£ó;N­@P/Î^ÒòÍõw5l²@ÅÝ @eDP9¾s–p _ß¹ñ‚^ë¬klÄ_ã_¤ÊóˆèJU\ ;0sD'ljq,¦l° Àm©yéCá°¨¸›¡Ñ’Ì Åž£!éø w34Z’ÖÄ@I¥Š –dãÂSà2:u§Û©» x%•ƒcœq@6ɵ#èC»v}‚×_ÈJ(Á™¾¦¥ÓË–?TD„ŽŽ†óv.=퀌ƒÕþûÑ¡:2‘”®¤ ©6P—2Ù£S, 2•É q‰“ ˆÄÈ|›ú=ܳ‹ ì(ì„9#…6òxÊöއï¹ÒvF`°‰{@¾ŒÍ…s­WX2%ä¶t¥ XZc n'Ü€át8_F¥Ãl`˜iŽ·¾²ù™ÈÔ™ã1¤P@Ä=€T‘ÚÚ€ N„³PC†[žÙÁ4íŸ\•5²#Îc3eDs-Ÿ8/T"ÉÓàøfèxIp4€ÈVF„Á u–Ü ` àP€—JŒ—P®`!±iÐhVfyÛ]úvçÛ4ÒÍ•¡Šü«nÍLß¾ÝÿþßsNŸî¾#ÖZÞÏPï6wÿ/À»MàÝF&ÍÆvt÷.Ï{ÞW Rc[´öèOí½Z§ÙGÚ´‚àŽî¾^FýÛ®- ™Ž6×ýÉÁRyxR÷”лŸ¾sýX*œ¤"ÀU_ï_“Wöà·nnoºüB <øäDTüÙÔdÉ®'öv=¿äŽÎ–nèÊ78üçç¯[Ö0;x>}M«÷åßY¹ÂóxzçÝGn^j_çKÀdãG>¶)ßùÛÛçÚ ‚`îþG7æå¾Ï^Ph+dî»þ›ý{Sg©}¦‰% ðñ?;ú¥ŽçÚ?Þ½|îÕ'IÂsÏ=‡Öoƾ®.ß½­³°©3û©êáþÿ¹¾{ m)ý¦‰s`GwßNßU_¹çæö†Œ#såa¢µfbb‚¡¡¡¹ò_ñí[Ú Ÿ¸¢i›xúÐÎî#›—F=œSÜÑ}ô"ßãà_ÜÒÑ|éê,•J…žžJ¥žçÑÖÖÆš5kÈf³óžÿïW*öžÇNTãØ~濾vÑ÷—>ŒsÇ¢¸¡{(o²Ñ Ÿ¿®míîmó,hbbÏóxî¹çغu+MMMoÙNßhÄT*‘¹ÿʨëOöîŜۖ†E»€ÉÆ\µ)ßyúàZ[[) xž‡ã¼}¬[»ÒãÁÛ: ¿Öîýá/²G÷íè>Ú²X.©ÀZ{Ö×µÝ}Ÿ¹õ¾ã¥81ö톡ÕZÏý=99ù–ucíßýèD°ëGïøÓ×.] Ÿ4®EY@ÞW·Ýº³µ!£ämëjår™ÐÓÓƒ1gZ¹øÂÇ—eÿèË:²÷g×|½Ïb8-g-€€TBsùÚUÞY7E…B72::ÊÁƒ‰¢hÁº×^Ö ó©ŽB‹/ýÖ7ŽÞ#õ\ê¼ã¬°`³®<úÏÏN/<‚Óë[Ë8tè+V¬`Ë–-„aÈþýû™ššZð™ íÞÖ™_»Êûâî?ï/ž-·¥`Q.P6ò¥ùùté‘g¦â·«g­EDX·n“““<ÿüó¸®ËöíÛÉårwnÃ:{,züÉÞ ÂêöGƒýô}ÇËCg.÷[[[)•Jìß¿€+®¸‚ææf^|ñEذa_|1ÃÃüð ƅ—…•j˜©m‰ÝÔýŠWòòûZ2W~û–véh™¿Ý811Á+¯¼‚ëº\vÙexžÇðð0«W¯ž«óŽÓ;rÓ‡›éxu0âØx}Ò±ð†`¿ðÔÞµÿ‘ iRàš»_aú…ߺoZÉéq!:DµZåòË/§¥åÍôÿGË<¸o‚[¯i¥¹ ð]…ï ¾§è yä§“ôÄ5•q7<ñåÕÇÓàÚ¶¸5ꛀ,ƾú½~fr^ß÷Ù²e íííäroŠóê`Èßÿxœ=jât÷ØÜåóWÐÁÇ.)䬎÷¦Å;Ås» êù«!ç)¾ÿÓ)¾úýNÍÇaÆ s~?YI¸ë{#\sy¶†·^A p冺hÆÊ¥i±NQy ÀZ0D 1§xe ä³÷ghòÌ|AË—aC{–uï°Æè9òÐÓu‹R"O¤Å:52*ùËYã "K90Ä ´ÆZ>wÿqö÷Õæ=óÇOh˶5þ™ ÆXzC¾õØ îxx„áI ‚õ\þ!-Þ)ŒõE¨Zkç9±#÷9O(× [Öäøõy~ð|‰R-açæ²®`“X´“¥„¾±ˆ¾‘˜0®§Ê®#ìùP#Åg§õ“_[ãÙúÑÃ’‘š;ï>&†w\/ûžDGE0æ­94øŠJh¸ã†ål¾ÐçÖûýà΋V¦Å9Õ³ÁŒ£&cV^~ý¯7  ¼q"f:H¨ã@œX,–¬+ä\E>«hÌ)Ö·{\±ÆgËE>÷3œ:øS­at:1’rçA€l3ᄜ±¹W‹ ž2€C¤mÝ×5TCC´fÞ gg¥'+6ƒ“¤²|*R‚ß¾>1gœâDÜ ˆ“Y ÐT#K5²Q2/Îû]k*¾I2© ¾ ‘ѺN-‹5ç:­5Zד$¢­“] T18’©=±wM°`‡KášvƒJìë ó0‚çÔÓÜd&]¶ÖR‹¥.ÀL\XÈÿO”2¸*s^>¸NÝŠÅb.#É‘Ìü8H|ª˜º"–0-sñÔ<`Ö' ®£ÇŠÅbg±X<ûotΩY@±Xl7Ƭ‘ö®›ÛFÔG»†*"vƒˆÊc<ÉcD)E†¦X,öÝxãÉÂ,Ï£¾ïg1>à‹HȉH(`Maó²Qï’ÖqúË- –¬6‘s…“5—{ÞŽŸIèhˆ(LJøß&r™„Î|‰ŽÜZ7EΉkmADòÖZÈYký™þàW/PVJU¬µ  ”€)i€¼«’öõMã¬o@E8„&C”d0Y¥ñçè™dé ŒÀ$0=ÓW(;ŽsbÏž=çüõÈ’O†ŠÅ¢t&IÒ5:¬µ@»ˆ´‹È*kíJ`9‹<Æ€Q`dæ‘!kíµöõ\.÷Ú 7ÜPZ ÿÔŽÆxà·µµµ¸ÐZ» XA}ÐË€Viš©[FÎZ›µÖºRÿ2ÊZDBkm•úÛ²ÖNŠÈ„ˆŒcNÃÀá(ŠŽÜrË-•4x§z68‹}ûöe&''Œ1mZëkí*iœõaÉZk]À±ÖŠˆX ‘ØZˆHÕSQJ Ç3™Ì ß÷§víÚ•ê÷Apžx«¾ŠÅ¢¢°œl6›1Æ8J©D)•8Ž“är¹äꫯNHéô÷Iý xOâ}ÿ¯³ï{þmÙ°ÊEVIEND®B`‚x2goclient-4.0.1.1/icons/64x64/edit_file.png0000644000000000000000000000576112214040350015157 0ustar ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î< nIDATxœí[}pTÕÿ{ßÛMvÃ&_¢ ¢õ•/pêtè(ƒµØ¥ÃÔ:Î8Ze€P±~L­Ó:jKqTŠ–Vk«2£XRÄŠRIÚX¥ lòµ»Éî¾{Oÿx»o³aß²6,¶ž™7÷í}÷ÝsÏïžó»ç¾·˜ÿÏ"Š=€bËW{Å#SåÜGTɘÜÍ€$°H2 H"Ãùˆ~¼vÝÙ÷ Mß.Șf)$*Ëdf@iÐ̤™ÀšI3À (fb´fè!áSqïü>ß¿}ݤ‡¢÷ŒØBzdÀ0ŸþÁ˜¡Ð{Ryäõcxç!mœ¿þ‹O·¯™¸»Ðz²p+"*´¾œÅýt3K­yû܇×\Û"R²xöÃH0Ê¢KØúq74Ã'âúÙO6MÙu÷¸^˜¹îÐf])ZChk°úû®‡Î=’³žL•Òãg¶âZq0èO¬6ñ“%ÕXÿÇV0ÆÛcÕ¸jöÚ7JŒç/œà³l>bÄ£¾)ªfþôóëw=4iONzÜ.±g@(͘‡UàÅ÷:æ+çÞè ¯)çÿjÙߔѧÒÀ‡‡z±æ÷-Ûg¯=°lçƒS¶œLëH‰¢†€­ÜRöÒrÛ¼á˜sž`À”´hÝMÕŽñZá(CiÆŒ³KñÜò±þ€ÏØ8ïCkO¦'#FŒDª¨!ÐméTÝêÅÕ(ñn™S޹çùØKqGXÁR KJ“GyðÒãýÕcŬ5‡n˦'‹h]Ì P*•\<ü§V\uŽ·ÍáÔë±Ð×°´íɲ²LbÖ4¿à'tÞOÜç˜Ï P ØXÛæN «o¬rÚ´õXèŽh(´#)R€Ê’ëdó:C8@3jëCxó£n<ú½Ñ0 »¾+¢ì°ä—:fâ^SЬ³¦èÑ {5ût‘W„­]ÞØÛ§nƒe¶-‘¨ÆÁ–Ù3ni@h ÀçMÍi\3DVp_âæ‚>ø,‚Õ7V!ÉøqŨk샶W( hÁî7ôÚ†£Q¼¶»+,„~5«×+LJц”À·¯.Çœ~ŒÿÉá>„£¦$ÇUÓqýöÂÝ/ýq½ôƒõSê³iɼ F5±*¦ý;"¸ê\n7Ü©«kìCK—uéU•(+±M‰+ÆÝ/C‘¸þùë§üådz\œ‹k;ÐQX·¤Ú©;ØÃgÁháYšQá—¨¤ùg¯µÆ‚ñíï­ü@.º\MTœ¨­á­ºñØÒã·vYØs â̸•(}IUçÞÍ;;±³!ÒÖ¡J¾›«>Wà"„À§G£xü6XÉUgf(Ñ,Ns"ÔÞ£°rs3VÞb|K1Þú¨¡¾ôd \<±^Óž¡¦ãq¬y¥JRR[>z³rÀé ˜ÅXñ» –\™b|غ¯ÁÎôdÇRŒ‹Î*q<$ÕX±©ã*M &qË’ òió€‡^kÅÄ*n™SáÔíl£¾±ÏÙæ&˜:Æ‹‰‰¸× ¬ûC ®˜RŠš sPº3šhöiÑiá€çÿÖ–. +oHåøÿlŠâÝý!Ûpe‡‚Ò@Íp—N*uÚ=÷n;bqÆ]×´~÷L‡>jëCxso76Ü>Îaü`§…—ßï3ƒPd“^ TbÁô2$‡´í“jëÂØpû8œŠ§º/ƒÚH2þcKkÒâù¹míˆDuÚ’gJ¢Ëð$@j8Å/¶¶á±¥£(=µAº“àîÆï—ãk <»­­Ý–³§WšÁÌøæå¤öª—›±êÆ*LªödS““d »T± ’Ý`ãOK1þ¦¨oŒžì,¼p&' [ŒU››±xF³ûÝ{*âÊ¡¼MMÿÁŽu9u”|‡@DiçËMûÊ1¡²"ñßÝÂÖ{à5ÈNt›œ‹'–bæTŸÓîÑ×[à\2ü8öïoJë·§Ç‹Á¼s'AÁšÀÐZ§×g1.Û5ØvÀ^öaõâQNõ}xv[;ˆ–b²wyã+MÜte¹Óî•÷;ÑÐÆ½×Æ2ê ½5#f¯bfj¢ ;™‘nmö5±÷¨ï›–㯵Ñ8Ã4Ed?Ï+•X¾`„óPdÏÁ^lÚq«®‹ÁkˆÄ‰:e~öwƒJ )å f»›¦.¯Ö•á—ËÆ:dÖg¬z¹m!´—:E€„;¯¯D¹ÏnרÇý[‚¸cv•~ÛøLºÄ Ûb%\Ȉ'ÞóÃ4 ?~)SLˆDí=–ýT‡È`ù‚N¦ŽjÜ÷ÒQ,ùšÂÔÑf= €ˆt¾ÿøq@0))mÈÇØu­=qüyÅÄ#f1âÐØÚ--°,†¶,¾º³¦Úì®X»¥ç²0ojæYï¯S’5ˆò‚ #%ƒ"J J`0@ì="ð Ç¥“rV•‰_/‹m8‚˜Å˜5Õ¥sROžy§ ápî¸N8ï²é‚Ò ¼È²V’"‡úäù¿IL™9a9§Æ‹ßüÐNƒ—];ÜÙͽóIµu=¸kÓÌU7@ZS~dá(Cfö€\K"B°›ðKJ\ÕLªö`Áô2ìú4‚‰U4‰â©­Ç°v‘€ïĸϤ¤°@/ dôoX³ ›’ˆ»•Ù!º{kÎÏžµ-¼hþZB{Haåæ n¿ÆÄ„J#gRJ²=€ æ`%p@¾«A°Ðlaúxw€Ë'•âÁ. ÷¼x_¿ÀÀŒÉfÞž&%ˆ5¸P0+C¤P¾@ì>laXIöÝZgDã™·ÛÑÝ«1:Üt…PË®)M¢0!”!5¤tÓÍοŽÂYÓJm]jã‹Ö*ü7_^‚oÍð&f2ÿåV šòüïoFÚŠ+˜y@îD4°<ìAEh7´^!:#O¿ÝŽíu!Ä,óÇšxbiçŽ2N9Û”‚@DùE@ÖÍ2$˜ë`–áaÇoïÇ܆÷1nþj4v ”—_VŠïÌ(…iæVn¥ . )Cž¸¨Ü­¾ñ¸d .Xº:0¿'•cZMæÙ>U ì Eœßß53àí¶˜ª¤eéä3È`—ÂH¿Â™âûW—å<ÛƒiØ›("hU0`vvƒƒäì©>Ì™æ+˜‘ýÍ$D€†@ŠTä;ÈB¹v>"€(  KæI‚§ÒæT…¨€Ë`é‹Y ˆ¡A´"£@‰‘e$òíÁÎöé"T &aÉÄnðL36“"°&Q(;cYãW¦!3n†ÎD!ˆH“.@Ä©LðË ’`çyz€»uÒÞY„äû@ÄÕ !”ý†ÆîÏµ× ÜÚº -Ÿ¾Ýªí¾I“(‡jz¹Š+,K#¼ï‹>hm?¥µ?’”Ò¤¿5Û/6€¥4iNµµïÓPN}²Žc%ûÖ¬Ñÿ^¥@Š9ÕWò^mëPýô&ú$[”çCQWhhжÜóBóB%”’4I% IL’ ‚HH°–  ’ -ìëšX“‘ƒø­IK âD{ÐIÜÿ=–ÚþtOH&Î%Ût,aŸ‹þçÂÊ€|—Íÿ9ùrPüÊW{Å–ÿfc!?ÒRY¤IEND®B`‚x2goclient-4.0.1.1/icons/64x64/edit.png0000644000000000000000000000534112214040350014152 0ustar ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î< ^IDATxœíZ{pTÕþι÷îãæ½„„‡dIQ«4š@HµŽÅÔWµHmÒi_h d»|ÕŠÐjkŠ8¥µŒTQ D±ÚB 4DƒlvC²»»÷žÓ?v³»—)Ân6lùfv6¹÷Î=ßùÎï|¿ß9g çßdÐTH5Î j©ÆyRM ÕøÆ ¦šÀ™p‰ý€a•ÿ(ŠÆœ—©A•C rH œößžfok?£UÛÆwÆÓΰàêÅm—Ê&ì~~~aÚE£‘ëªÆqÒË €@ $!ô¡xi»+¸¡ÞÕë h×ìYváÁ³mkØe)ö–<ÙÄ·þú¦\9¶óŒ'ÜTÆ¡1€q€q-ì ?ž‘#UNLÏÈuñ´7¬øÞ/en½£";§jRzdÒs8úTøƒŒqhlàÐXè>¤›B8âisX Ì_»Òj.¹o¦E—ž'U¸-<â¡Ñužœƒ„¥(!_SfÔ´Úò³„kísóÍ$jø8ѯ¡§_cˆŒ¸Æ¢¡oiD‘Ê8ûú 0uië-f‰.Z5¯0Í“îú} í=p磡ÏXÈd#éA"òJ°¢úÈ·ÍaýÊÈ#2¢Ü• Ç¡ãþð„P0 hÈ2RĨXŒ{[}^ÒOû)€i‹¿(0KÂKoÉ“K £Ž¯1Žýí ” :q}Æa–2Ìzê«ÞëQÚºü7ŠÖãᲘaÿÜd”ÙÖ;*r²¦OLÓÝÛß®à¤Wƒ$0h$dt”ÈF‚‘™zÚï|ÖÏ6ÚïPúƒ³ùS`ñðHYˆãªbÙ:FŽ®7‡ŽùqÌ¥êF\ ÏyJ€Ñ 4Æ$›Ž*XùN·Ûç×*ëŸ*í—GJ¨¬i[^h‘ªªçä›b¯é âà1%ltá<‚Ÿg€$D{ßÕ§âáõ%ÀonXVÒ’—s.ÀT[Ëm&ypå=r¬‰9Ýö4{#£=î\|®„4c”®?ȱpm‡Û§²Å ËŠëåsN=`ê’ÖÉF#}yÕ¼B³%=Æñ uMnT‘†BP€rÆB‹„ÜSæýoÞtx»ûÔ·?¬¶® §sKšG dËoæäÉ%£ ‘ëŒïïs£Ï§E_ãˆäzKºkžA÷®—w¸‚{[½‡z:ç–×9`²½CN3IÛæMÏÉúîEzÇß~ÀcÎ`$ôCŸùÉF‚KÇ™[î:èá¯íêu¼ìºO^¼28XnC.! ÑÿVÅù‚»§e몴¶ú°¿]‰Ô÷ŒóÈjO¤e%2ÄÓkq`Ëáq+˜µóñ’îdðr˜QÓúä‹áš%·äé¿­+€mMn”€-œç 8€ò ²Îôz½®íðøTÌk\Q´/Yü†T€©¶Ö»rdú‹gï)0K§8þ›'¡i¡u, —¹á ˜l•‘—¥¦j¯ïôøüì¹»uc29Ù(¯>|•Q"kž›WhÎNÓ×øëwºàQÔ9ÞØ`(-4"¶,€ßnêöµ÷wÖÙŠ–&›çP¶¤e¬Yß«™›o.Î:8çÀ†].töF+½PµÊûÙ"*Jõ&¹ñ£“ZÝÏ1§jœ“èÎïW!é\öȾ´ #©»ofNÆ”RYwoÓ'}h:ªÄ,m£O†‰âúË3teî§m>¼ð¾³_Qyå'¶o²¹I€¼ìŒ·§_œ6öΩzÇo<ìÅ–}ýÑ<Ï£k|Q ¸¹,&C”ÎqW½Öéõøù»lÖödòŒERMpfM볌4Vúߌ4×Ý_5"ãê õŽÿÆî^Ô5¹uµý@ºË0Qü¤Ò¢[Û:îÇowy<µj×ã\ƒá€ØAÍ™†M3'¦ÞVž¥{Ïîf/^ÚîŠæùð>>c\;Y1Så„[Ãë:¼Š‚Ûã9ÖJÎ3iÛª¢\CÙ¢ïçê¿­+€š·P5¢s}ÌŸaÁøÜèT ª¬ëðø‚ü‰†Ö̓èKBHèptJõ‘d½>œ4¡¿>ƒ/À‡—ÀÀ3’@0·< wLÉÖ½«ºÖáÛÓì{÷ƒ%ãoMV§âAbÀé­Ey"[»`, j•càû³6Omê†Æ8(% á‚§|‚ŒÛ+ôß°«WÝsØÓ¦jô®dt&$$€ `òıf*†GÞcþ…9r3,ÚÐ U …~QžÞ0R·±±§Ù‹Wv¸úœUo+UÛ‘D‘ 2ÎFULO{¿¬DÆïï-„$R% ûÜ|]™ûEwÕµ¯/ȯ«·•O„C²·U·åsFÄŠÒÓ “Æ™ðä£0"]À¨ìh ¹†…ëŽ{¼ÜßPcÝ?åä"nü~Ì1¨›ÃO‡ïXÍè÷1=Úºc Xôj‡§ß§­i¨)z5~ºÉGÜhœÍ#Õ³„3/IǶýnÀÊtû;{ë˜õ¡xÛ*Äm‚’À'Ok<ë#èÊKÒðäß»1"Sdï~æv¸™6›Ûâ;¿JÄ-€ª‘ü)_a€§ââ1&ôôkXùN·Oá¼²ÑVÒo›C‰¸˜¶ø`§±|BÚŸuºUüa‹“×ýÇÍÔ (¿·½äHÂL‡q   †¹f‰j¢€ÓNwÿÕWvôª_ž”¢ œ¯nKžæ6¨ƒ§›|Ä%c¼Êýy=u:³`±X"×»ûT¬ÞâäpsM' u„á¡úeÅMIgœdÄ%U=e-{ÿJ®¸b)jkká ßÂÚ½j‡+(”vª®qEñ3œ“;â›@®âj‡X8 ^U¸1³‹Ò÷E‘?²ÓVt°|HxÎz5Xf?0JT \ Ð:ƒütCuÕ×i´ÿÎ:UÊ!f&ãï>²Y›ö!ãuÎ0,,}.1,~(™Jœ ÕRó¤š@ªq^€TH5þŠmæšu/ÿIEND®B`‚x2goclient-4.0.1.1/icons/64x64/edit_settings.png0000644000000000000000000000561312214040350016074 0ustar ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î< IDATxœíš{pTÕÇ?çÞ»w³y“„M€ðö…¢¢mÅ@|¶VKê£:ÖQ«¢NvÆqª€ ÖG¡:ëø˜Z Në«V©¨’Ý4à‹u( @Á¼!aw“}ÞsúdžìF’l³,NùÎܙݳç÷ý}ïïwÎïþÎJ)þŸ¡¥›@ºqL€tH7Ž né†1Üþì‰-ãZÛ›"¥BEZ§@6+Áª=ºlÕ='|=Üv‡ 1œÛ Ûí>»¡Ã\÷ô'%¶¾Æ(@Cì14ãº5 JÝÃf|ˆVÜn÷üwwŽxòý9à–ó ™2ÚNõf|¤é` @6f‘‹ÒÃ.€Ûí~æÅM#oھ߆`ÙuÅœ>Á€·S²äµf>© bÒ uá{¿\=ìD€”àñxl~¿퓟””µt˜ºà/·•2fD|ÉÙ³?ÌÏ5â Z(PèúÍ®{Ç=;ìd’ %¬_¿ÞŠX–®=¶3¬QZ`cÅ¥=Æ„£’ùÏ5°³)  lš­òH¯ )Û§OŸÞ¬!ºò”Z|ÑÃÆ˜†Æs·Œa‚Ó^=óñ­£RÅ©7¤ºØW’ |¸ÿÝxú¦Qädè „]÷f¼žbN=R¤”õ¦B€RŠÎ°ìuœih,¾ª¸ëOü`ÖÃ_MK%¯D¤TÓ4 [g¶×Gú;uœ)cì @†­©ä•ˆ” P__ßH»»óuÍ¡~Ç/ªr 'õŒ'3•Ü!©•÷í~hÖ;.ÊäUUUМi‹ °·5Üïøâ<ƒ\‡ r›ŠîŠÍÁ¢_ÊÜ5¡îV¯W<°ëÚ!Ú¨Ï1c+`C›•tðé2P*:oˆö…>¨®®>Ñ–gw±BñÂÜûwÍ‚ú3ÓÖ‘\€³ëŠ|)ŽÈvاš¦=›ŸeÍNøJDà­Á®ÐÏyJNÛçµpÉ´ì¤ã'—‡ä ÆÎPÑ_ LγGçœs|&EÙ:€¡B²¶|Éž‰™üâßí\·ÏgŽÀ³ ¸dZnÒÿLŒE±ñmѫǔ8lʰ¤äùù£Èu@eK}6ý±}ýM|჻>êŒhÓ…€ùs ¸òœl,ËJz5´uíJõS: zmˆÔÕÕI§Ó©ò±œuàc÷Îý,˜OÔ8ØÛ®åÚ½‘¦Y÷ïò*!ÚP4 Ô>»Ú—¦Îía‹©†b~Y‰9{Ùºu`„ö¶k€þár²?ô*@UU•åv»G:ÂcZ:b’aƒ[Ë‚,¯É Þ« Pª˜+ubãÂdšŠÛÊ‚ŒÑ{õ×öwˆØÅ!y4Hô×ûúäâÀ˜~¡ø²Y'»9vÅÝsø‚oPã`Ú]Ÿà j à’SŒΜóÛšb”¬¢OƒBŸ!>55ùýÓÂ6ØÒdpƘè!räf(r3,Jûš`P 6ÖëHÄØ‹þ¸ÃþöÇõ_>~Kô¹ X–õ*À‰…AÖÕ躞ÒëÓ¯møB±¨Yú[ç/mÊJ‹­­­. uîñЄâ‹f­Í6ìv{J.ôóƦÃz©³C5s©Ë;âTUUYJ©'M ¦Ž-È+?Ö‘ÂL‰/md˜6îúq6]tó¨éÑ ¨žùÐŽ‘© ß–˜ÇãÉôûý_JóHm)¡¨Æ¤‘ðpUòŠn0X»5Ì ë¢,¿a“œ&í°èå&B‘87Û ŒÙk­NÛI{‚555W+¥^l <õÑh$0u¬Î}óò‡åYúÃA~ÿV «Š™qRì9 Qxê<ø–MÚcéz¥ûÞñ»†ÁtlÎ4EÝn÷2à×››³xmK! pæj<ñ‹"ò3‡~¸ôìÚƒ¬ÝäÞy#9s¢£ûûΰÄlÙbÙ¿Zñ{ˆÐ¨Ð*«MØ6dà hWXs»Ý¯—miuðê‹J`è‚«ÎÍãúŠüAÝüUˆE¯43ºÀÆ}UNŠrô¿ûƒ_0&ÂΦ0O­Ù7AC0»zÑ„Ïe¸ ¸-ÞÕë_ü²%`ð¼§„Îh, 2M™'gråô<Æ4{ý0*YYsU¼x»MðüüRFå÷Œ øoÀêaïþ­i§=áqZÊo }®kÁø†äy}.àv»oÌê]yÔîÍÅ’ñUÛaä84r3ulºÀ°ð%ހ䛦œyK¯-ala|û³¤êvÜ8 £¼ö¡·GOA@¡.Y»pÒûCq†x0R[[;IJù¨Rê§ÿìÉasS&-[ìöSS„ÄÈËÔyôšbNëD-Õí¸/`á ÄÓ¡Õeõç~øEPQ)Äå®…W Ú¾åÉPMMÍt¥Ô-Àe@¶R°Ç›AS‡A[§°¥1Âedf˜ÒÜÙ¦äó¦,ÞÜVˆ•`6ÓÔXr¥“3&:EUðº®`LŒ¶‹uÛ:¿ B*øyõ¢ ?¢BW½p1p6p*0° ¯âc¥Ô9À”m^Ú\DØŠGƒM,˜çä¬Ißp<–‰Qáí”|¶;H{gB‹M 4¸ùý…u¾˜²³ÁÞàr¹2„/?ª÷™¬Üä¤3¯&4·_PÈ9'd–1Aâ ãÁ€dGc_Âî€]×~óÞ‚ñ(§#úŠLEEEP)u9°btN˜›ÎldDF¼ñ#<ñÎ~ÞØàEJ…T±ï¤©T÷gKÅNšœ¹3Á–”Ëæ,Þ¹x œŽh$Úu¹\ !~ÕÖX¹ÑIƒ¿çö9ç{ÙœwZvwîûzYEE{‡$*{úá0äò·ï™|G2"ézIJUTTÜ ,Ì2%ןÑÄä‚`ÿÞèç•bY$D‚ꊆžQ!ÄáQíöKÞ±4‘´¾%V^^¾¸ÍÔ•¼ú´f¦wôø}C]€W?:H$ªz¦„êr^Ò-HoÐ5yC2iM®¼¼üOÀ5º ò“)û9wœ·ÇïÛ¼¹ÁG8ªâw=1”Bö‘ƺP½—¥ H»ååå.Ð9gR;×FbT×·EX³ÑO0"§;*úZÆlº°'³}TP^^þŽ”r.ÐþÃRóNnEKPá€ß¢v['°ìr<¾+ô •´+{ÔPYY¹NÓ´r ñg'×NmÆÔã··#+€áx XýìbY6ÙšÌæQ%ÀŒ36Z–UÔMÌrÙMä˜ñŠ/Ulo ˆÄ"¡¿]|j±÷ÝdöŽ:fÍšµSÓ´2`SqV˜§5Q舿]bIEc{”P×ÂØ&Õé£#K’Ù:*˜1cFƒ®ëåÀyö(7Nk¦47~D T¬qÒ[ à¬QþÕeeeuÉìµ”••µeggŸ'„Xí0,®›Ú̉…c¾é¿©+.ŸÒÚ1¥¨ãÖØHW)<(x<›Ïç[!„¸B!XõÅ>m8¼3]èˆrÅ©-²Èº¨²²rõ@æþNÐÍív/npíΣö«\²l’ñùA&ä9Õٲ̟9sæŸ:éwI\.×}Bˆ{]*k…íRÊ«*++=ƒ™ï;'€Ëå:Uq—¢@)åSJ½ØÒÒòN×[iƒÂwR€áÄQ½   ÝÒc¤›@ºqL€tH7þîþn®ÂRéIEND®B`‚x2goclient-4.0.1.1/icons/64x64/file-open.png0000644000000000000000000000376712214040350015115 0ustar ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î<tIDATxœí›]ˆ]WÇkŸû5“ÉÄÉ$MœLB>ÛØ´4´Zƒ†ÐD« }ŇŠ(‚ô%ZÔ6L¤‚¤_TÄFðÅ‹%5­¥öÃj“*&&;f2“ÎWrç~ìåÃ9çÎ;çó~ôf¨ ûì{ö^{ïÿ^ë¿×Þç\QUÞÏbºÝnËÿèvº-™¨‡œ}P”§Ô€8€£àˆ žï¦î÷v‹ááçžØñ»v+Ž@T5ŸsrýÙ¨ U‹XUÄjU¬«`Q± Ö*àU±ð›OŽŒíÿãñmçÚ©8AÀ=½Ùcmhg»‰å‹'¯peª J¶JõìÑ‘+»~|xº]ú#ÍUTÕ€5"íj/µd̲¶?°Héå?õj¶]ú#¨JFEÔvqüd7ýìGû½_d÷Ú‰Á¶qA¬bMWpÿÄÝ}K ¨~úÈÈèÚ¡?ƒ"t×<ô+UåëG¹og ÇŸ¸ð¥VõG`U¬é¢ ø.PµnúýG634àr·ªùé¡‘Ñû[ÑÍ[i¢5©Y€u×V#ð“¯m¡¯`0<è;ç?جþØ ELw]Àñ8 Z] .zó†uÈç‡'Wxíó#çrÍèw‘jw—A7õ]À—-ƒY¾÷…Mx]ÛyäÄÅÏ$ÖõP¬ªÓÝPس€§Ÿ»Î¯Îθ&©î†ËÛ˜aU©ú¢ˆ"§|ìâÆÓOÕõP *]„îíåÙ¿Ísu¶ÂÕÙÄÕ²•3´€u€{zùù7†Y(Z7¤îD¼ áѧÿÃÌÂHªÆÝ ˆÀÔ|…/ÿhœ¹¢ª²Böm-pò+MÇ)lZ—uÉʦ¬‡G.}©þ¡ ”«#¯_šM=x€·.9snCw®I]÷½H ×´xkl€5÷ïîYABKy­ýþæX‘ù¢åä³Ó«#06]`C¿C.# Ô§Rdï–<½p“ÉÙ gÿµÀÇowA¨Ù‘]–`­ |¾¼ ejϵv·áÐÏ/¬[p @©ÇMÿpl׸zUbpÉF˜»á*Þ:˜#Ÿ•Á/O2}Ã|ÑòÝ_^mª½"¯83æýŸæÜä‘Ñëß±’l†€‰w+øaÈÐ@†|ÆÏHÝž¿g{έvø.â/%ã€ÑI×üóY©›}iðýƼk®×:å…²¢+0wmÍlj„Î2lÿ¯ “s.²‚ppoë§¹ír›°ó(·©…ÀyçTPߢ¸{[z H"¡nÓ$åÏ¿³nû§Ç¶½ÔH °“Ò ·ùû¥¢§œ©°v#HB€’VÜÆ¿þýß’§+˜!€f°“’ÖmÞñö"æÏa:#øX°“ç6þ»L[) D½¸§CØ)Ü·Ã#œ/¹ˆØçOÜþJXPÞK센øö‚ %@ˆ ›ØùÇåEÿöŸQåB9àŽ¡7Óp«Èå)—Ñp„vÜ–cÌÛI­F™+ºg§üÛ¨rÁˆû"tlju06UAì ïy9ªl yG¸¼Šgÿµ‹7Plì_k‚Èš%Z…2î½Í&†!VµÿÏûäúÀ|Ѻßå­R±VÈ(‘uX©ì3ê?Qßå®Äž>¾ý/qåjPymáÂêµû±¢¿HRNÞïŸÿ/ܸ—ŸÈrIEND®B`‚x2goclient-4.0.1.1/icons/64x64/gnome.png0000644000000000000000000000323112214040350014326 0ustar ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<IDATxœå›k¨UEÇsíÞ«¢˜¦™¤qÍ åVZ!%i}*è…ÏÀÀ MÃJý‘DQ„¡d†õÑJ$Œ¤(#뢔&F^#-)¯>òq}¬>Ì\=fÏž™=gŸ+ýaq8{¯Y¯=³æ±×V"Âÿ—ÔÛ€"PJ Æ7˜ßÁ@ð3°ZDöä ‘‹Ž€V`3 : ÌÍ“¥ê1”Rý©@ôÓj‘³ízK€§FUg‘"²;“£Oo)pœ ŸÖ v=oq?uMsÊ-Ùù†NÌi»&Ây&»ä6xt£$PJ žu°Üêh»˜©ú×ÍÒ<(Çýël•RC€—"uv?º’LƒJ©Và6 /𖈵°e>aƒ3®ÏÃ/áÙ°JDN89ŒëEÀIι_¾ ¸ÇêÒŒÄבÓ.‹Žƒòì/4”Rw¯M—¯6A©F“åZ%¾·\» g+E¤#—«àÓß„=ú,¼¯dð pèei󜣋~š||(š‡g\d²~%>sÈù@DŽ[®_aÓ1`ºˆtú0 €+9¨ú¿mœ k2®_lÌ‘v_æ¢øÉqï¯Ê?"r=dª±hËq Àž‘Õm `³ãÞŸ–k/£7)]`¾dïvyÚ!èÏžü-ÝI®X|,§jzú±ïÄ2dÎþ64?Gÿ4‹ìj:ÌŠNäå x·JYÐXÅ7ÇbÔþÇú==f™àk‡ómÀ5…f2‡ò;3”έâël«ây½ˆQUòG£·Ì•ò·›À«ÂòŠ—d`‡…w8zîà7`XªTè¸ }†08©\‡Â…Ž®g[ê6¢¥ú§v¾–äÚ msÜkA'±s‘Sä켺#\ø=öF[îµ »|0”R}IÀõÀåU4ÈØ´ÇÐnCíÀ&1]-)rÆÝ\¸Ó뢧Æ®BßgÐY»Ó"χvÓɘ^“ç€ ¦gªŒyØ£ÝUÀ›èÕ\ŒÃYÔL--Æ™9èÅM×£ÅÁ{°2£ç¤¤Y¥À86xŸqÿ2ô‰ï±;ÞEÀÒœGÃ%9^I‹‹Ú^èLP)Õ„îî‘S­ED@)Õ |‚žÒ.ZDm‡•R ÀZêïüÞ¢bÏ–÷Už–‘ðÆr~J¬'}^ê4hœWè³½z;¿3 “€ñmR£xP|Îü=€)”Äù&™´€îß„~ÓZ¯nx(E·]] \åâØ‰îö®cø(„ ~©•{â=`\-œ‡î€ƒèßt±¿nO‚Q"òN­…ä€C5³âoNåS¯·ÖÀùÀ-e;»ÜÈï‚Ë€±I6 ÀÆDzÏ VI^ST*kÎv# è< Ì‘uz“щû$úõF9\À–°`‚õÅÆü}žzZ€€ïÐ5¿6Y¿­¥%AcX3°?Òùž:&¡_½ùÈ\_fDt©ËòÐv¾9dºøÂY…Z^ˆ=[½®/¹›)¥TôX÷Åö;Î!*¢ßÏ »¼5 ³•RyKê¡2? ä¿ÑER"² XØl°Ú¼OÈBu}¡ GÐGóñ(º’Þ'<nÀRH^n‡|ñ|aû ðiDޝ¡§»Ààã€ö€¾u@ÅÔ¸>"Böï¢À„$¶§b‚Ь‹ BhÀ¦$³;• „¦[Çàô’}lž¡¥zª[üBþ?ŒþÀb\ÄÐknF—áõƸڔþé¬RJ¡“Õˆ Žîæ[ µ‹Ç§´Iì);Ý ÿu¹žF$ª¡IEND®B`‚x2goclient-4.0.1.1/icons/64x64/kde.png0000644000000000000000000001313512214040350013770 0ustar ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYsððØåJÄtEXtSoftwarewww.inkscape.org›î<ÚIDATxœÕ›i”]U•ÇûÜûÞ«W¯†T†Jª2ÏDH˜:¢€4]4â€.¥Ð(ºœ°¦¡»Ñ¥,YºBÓÒ q¡ âˆJË"€š„@BB „$¤æ!Uõ†{ï9ýáÜéÕ{U/~ô¬uß¹÷L÷ì}öþï}ö¹OŒ1DI\· Ø(ÂëÓEh ëëåB:—IÏ©|ºqjr™büiòšq$zžvˆ°ØôêS7¾Ó1@\wð-ÇQ…Bkææ<¢ bO4hÕsôò¨<"0aeÕ$M.îö«*O:HªOTlHÆ ‘°_ŠÑø¢]C¡Ç¾|è‰o ®û °©sÞl–­\B&ë²|a æªN›ÊkËS³¯Wž.«ºnÛ+81©Ü/÷L°çðžçAï‹Èñ^6¾²ùÆÛ„ù×.žíœ7»°rÍr6¼¡›Ï}èd÷Œ³ïОLæßWr”°jQ;Ýs[¸égûøÕ–^äØ ÈhÏ8Â:بUXºb1ž=Ÿ+/]Í»¿ô0/¼|œŽ¶<ªfHSgéMuž´Œ¯äÙ.‘幪:lksÁZ¤¶ Á¤ûKTnÛè°ôÈqÎZRàž›7 ”â'=ÔX_A½Ña}Kk¦|–«?t —ýë&>ÿ‘Uœ¶º夀 †òtñÔu5ü’ªêT.Ó–Õö“ê¶’îkûáñ}#Üûøa>vÓãüôæ·ðÛ§{ðs-P]ï§777±lA+=CEöãÊK×òæsæOKóÔÉÔ½¦¨~¹H-ã¦}žºýåol¢î¿'ýC¬šßÂóGš‘òèé®QBwg3{_aF{žeKÚ™(ë:C1ÓJD*•¼€Á Ÿ ŸÁ¢Ç¬B†“çR=«%"}¯ (IK…ÔmÝŸ¶¸…ûÛ ì}e„ÅsòøÆùœµ¼cÊ!üÀP,ëº&2*ÛÞ[âËošÇ’¹¸îµ1'Ù=P¦÷xZ³¼Å¡#§â¾EÏà*P’T×ÞØg¥@)EÉÓý: ¨¡ÏLóXe_×X‰É)К¢çO ˆ=ãç­hcÉŒe_ãiCF s .]áÒ°í„§ùÔ£=œ%¶·(V%(•H•nÚKs”ช²o(UjMZ µué©_^òc‚ñ ¥”ØÑ¬jzZSá’5Ú0ái´† £Ñ:@:š]²ŽðÈ+ãtê€bEÅc”}R–Æ8 ¸±K ˆ²*P¨•€«WWReeO7ÄÅ@kJ!öLöv•øÞe+1XirD@Ð6Ï*EÖö–y`G?«Z]Š• ¶&eÏà*AB¬‹Üe7 *d€çkJþTæl*±¯×ÞÄYÅ74â€èPRL,Hxq¸Ìµo_BÎUøADPb,Êà hor˜ð4×=z”•MV#抩@µ›î¦7J N‚n$² W~êUO·±0ýP:€bEÇ ÃpÉ碵3Y9'O\ öG¡9«¯þáóÑ”*&Vè•åŠÆ•ÐïC H”•‚V-S ¼Cí6ǤL¨ R 5e?ˆû!“w¸üŒ¹qîÁ:%8Jøßmý5£R^cÂ„Š¯C ¨vîÝ´UP"8Žƒ§C‘ äÂäùšóOj¥9ëðûÝø‘ÝJI… àùšF"šŠgâþGÆKüø²µUmTJ÷®¶ã·[{èÊ»TÒ¢-†Ø÷;ÊšúókÓV@¹‚€“öƒêlr<Ïçâuí¼ëÔ9üâ~ð×>^é)Uo ÂÕôôT M’Ö&–¼c#%þë²ä³NM»ˆ J„qð ó2ŠŠT‰~¤ÿð|ƒ#[‰1 µ°VÀ¥ÄŸ<Û„ÏxϺ¶˜x€ÎÖ,×lèæÑý£Ü·}¿¢Óz@åD$À×TŒa¬äqÉú9¼®»uʶJ­ Ÿýù:CYëXô«˜>W¼ Ú ’b °VÀ7‚Dq€:ÎÏ9 ³\rFgͤD„·¬jç´ùÍ|ÿ/}<¸È™+Ú˜Ù’åþÿo,\äøP w~µž`Ú% 0‚ÑQÅ$0fŒâ»Æ¸èÔ Ín®™èïv pÇã}”+ö9LCh”~³ã[wSÈ8ø:´2FW¹Í:”h¯0Þ?ï‘˜Ç ˜¶*º1X}PJ F a.F…—$—“绽R3ÑÇöò?ö2Q ÛiÐcx¡^:{ÅLp A@xm^GWESìgâèx~¸T 0(™˜ô¬Âí°1L" 0&ɵm³·Ïm¼MÏåÃ7NÜÆ^¡ ˜žK³Z³üçûV3R®hM  Aæ~€?Z¤|lsÜ:cb,áb,ʹ“6C‚„€¥„¬«P"‰5c¬ŽV30b¼uu3Y×BêDÙçß~uˆ²qÑamL|߈·<ðüôÎ_3›·¿~ž¯ÑF{þH¿w =ZB&\uc‰'”SíDÖߪGj7˜q%à 8a˜ÌAPÆ$ØÆ(ôÄï}CW<¹_myáJ£-†#­ÐZ04”€'÷ òý‡ö7dÂõ—¬¢µMÐC%ôPJ¾­æeB¤2&4Œðª0PLRLF…ƒ½D@ÄêOÔ4(1£C\¸TÑ=Ó`Å×ܳm-…µXdÖ!6ëFÔ®ãpÛ#G8Ø3Ö â¶ŸÆ„k¢ VŒÚ…2!ñ„‹gBšêD„ªà*\¥ãšJ¹Ìøà0óšVÏmâu [X·|.«¶“Í$•?<óý~³=‘-FìØʆ  iÍ´põíÛøå çŧ»õÒ²Î_úоýÃÝ4©ÛQŽ]yƒ%ܾYp”J$@&Å#+q®hkKáܶQ®þ—Si+d§ûÞÃã(•Å„†Y…à!”ߘþÈIíɲé×{ùì»×LÛþýg/à±çzÙ½µ? DÄ$8`Œ=yŽX•NE«¨_É8q„Œ2d8iAkCâ^(“Å3‚c,n‚H¨G*bó4ÉØpW6›áGå…WG¾÷–¯EffªU!¼"&Hˆ*E{Ä+±ÝØ÷Û „‘–Œ²Rp"éØˆ&§W ®#H"1˜46ƒâÉ·¶´óùÛ·54­ù ßþäiŒ‰©Ë€»'‰¬qb f‹ÆÎ5ë@ÎrJ0'x<><à:‚ëX{ëF€‹\í9s](±º/ÂH)Ï-?ßݰÛúå|ðâ¥x-©+ÄûÓìŒ% vzŬ#dEÖQ',yå…„KÈË'Í„†c%«("d2~öXϾ4Øðý_|çJºV´†@’ÚíH‰®b£`UÀêJ“£È¹BΞÜ=ÀŸw¡Ü`çWp<»ú!á13¢-è4ˆ^•Ò"¬„¶Ö6¾ð?;˜âtÝ„ÿþÔ锚j± ’ŒŽÔH´ˆ”2®Xp ·h9?ÚRäƒß|šOßòßùéNžØq„bä|„iÅœ&!E¼e†ª„s˜Æ€ôUÖn¾ûÙ†¼ëêÈsÃG×2®uØ—*)ˆ$ Š€Õ¸%VŒ“\®:f´°tÕ"ò —rP:¹k{…+nÝÉ]î_~Á]x¥b"þNµuœIGRS2`²ccUÁq\~ù—!¶îík8Ä;Ïìâü슿I"“6¤) °)ò%,ñ$Lpª™ÒÒÒÄÂ¥Ý<ò\¢›o8ejb8^}'â¼±D³’ª\DhmmåKwì¤TñqóÖ’ëÌUaA$Q +ªªÚ ª@H|B8UÀ– ó¦YüùÙ£ä2W]¸€ÒøŽSËGý‘ÄÈlàä.¾¨ɶsÃÏLÙ}¼äóÀ_^å³wlgx¨\ã" á3“"BÄVG :m¬7¥°"D*Ö1£…Ÿ:Ä×upþ™óùÓÎm¦Nè~…ƒ;qÈ" “á…—Øwh„ƒ=¼:èqd"G~†Ä§:¶«æ=çwò™ó»>îñ»‡_â;_ã¼Sí&lðx™ßüõUþ°½—g÷PP2í:aBÿÉ,lJ} ZeÈ(•b@xéø –@ ¢í屯j¾ø¾µ\µéòs»-a-_ÈóÍï¤ô“½ôªÐB®­7Û¦ òš|“}Q§X<¿‰+χˆpõ†nž?0ʵ?|ŽË/âO;ûÙ÷ê­My„¹|£,#2J4]2ÂúS’x@”Î9µ‹[®XNvä(W±XàØ¯3¢ã)«j$›“”Ù2^·PqÛGW°xv¾jì7¯jgùtt5Ç}$Ý&˜B¤$€D "+àFû´It³öò®ý|áÃgÔ¥s[¹ísë¹p‰Çø@¿ ¬¤1:¨TŠ*mrÊüóYyn½b3[êo¾ö¶…ܵñd:RV-$bB¸ä&aqUTØJ€ÝêøŒ±÷)<é=2Èo^H!?ý.QD¸â­«yÓ©£Üû§ƒl90ʰç’+´àäóÖ4U*¯Â¼6áâÓÛ¹ø¬å F”mMŸxÛBnþá^´'Vç#÷NLèê™DÂø@:¸[X B¼È8’Šéa£º!ð­¡ï(|øüi'™NKºÚøÊÖp¸wŒž¡"ý#%šr.‹æv2VsUpåDÓ[V·óÐé³yzKo5áÔ¹—IJ%¶©ž«¯éÕWb™ ‡ösé…«¦˜Ö†»·Þ³a…|&®[ÐÙ‚ΖiûŽUøÍ–×hivyïYÝSF†D„÷Ÿ3—§·ö%‡6Ѫ‡`ßúáÖ6©þ‘MÜ$P³úbOŒ—,ëdÓ=[ùfw;sfj&µsoßýùÚ-Á8.¿þövÖÎs¸üŸV°rÑôÇ^»^â¾§^ãñ—*i­yl÷×\²œù³ò5í'*wo~-qw#5˜B"³ž€#i+éEdæ­Tms3®pÞEëùÊ­OÐ70Ofäx‰6=Áíö²è”5Zòä².‹V.b y>×ݹkZâK•€w¾Äã‡siA”B”bׇ޾—ûþ|Z½‰JÀµ?;À¶g†’A$!,¿ä~ò7Bì„f"‚‘­vuI Cp]áM!zûǸ÷ÁÝ\}ë_i^º’%KçÕ˜9%dšúXý¹PM­uQÝ rlzx€Ïý`7¯)Vþõî}lß=š"4­&õ™ú(f£Â©÷c#BGjDßFø¬žÞtÑz¾qÏ~fÍíàŒ³çákƒØð³ZGÙƒ‘ÙsfòÌ }\°~a]lÛ?ˆ›Éákk¯ãZx/F±ëáÊM{˜QPô)B%…©¾T〠qêÄ#ê‹~ØHvw¶ü”u‹™=§ÍÚvIÙw áž5rìzq`J xöÐxx"-ˆÔ•†ŠïÒ;4¹ž¸^¢öéPWJ"5H$ ‹h®~hþìás4X\Œ€Å`”õ”11ñޱ$*\…—ŽNÔ%Þó5ú5N{äÀE+J튒 |üXº}•%¨~®²!Ü4!ŽêhDG¼ ¿4ö^ëÁ)ž¶˜ðèL╱̳`¯ÃÇ뇵vèÇin­YÔ4a‚`Ò&.bD=âÓA¿ÔAX:"U«Ht膔øG›™äÞº´ÕâTaY:®a?mœæV©õ?ù\¹æ|jTÉq®¸ˆYé.u€P‡óÒ¡WJãbLáP_‘…3³übû(g-mF$¼5´28ÆŠŽ$@=W’’‚[nU ka'×üø~¥ªµ]èÀÉ' ”zk]P«’‚É ]# I¥ÓÖ™Y^ì+Ù#3aÜØa*Ås÷£­É¶í;î3§Õ%úäÄZK¼V¡žR„JL¸TŽÅTùÜ%]øx©¹bÌ‘ñiñ¦ÎýdfÔ¨AXšËpÊŠ™´6 Ï`¥G`‡‹°Õ”ÆÎ-—=n¼{_»l5ÿñÛ^NîÎÙ“]Mø]€±#èÔGÚº¾~TžÎͤç¨,ˆê“:?z‡ƒé¹€r@i ÆF¥ü&‰Ú8úñ}x.YhfÍò\óöN>ïËø^…}„­®À&П0}/xÊ~ØpÓV18n8<äLâäß[rtdè((®¾ç%~²¥Ÿåý8¢ÇEd“cXtÎ ŸAØDû\ÌœåärYNYÜÊ’¹ùx#ñ!µ•˜ôÕ‡å2¹|rÿêöÓ¶‘Ú¶uç"“Ë­ ìë-±ýОWaiy?sý£ˆÈÆÍw][üçéÅçÞp·pœ‚ɵ ¹šôŸšô´ôÄJizªI}µoc’Q«þT]õ"¹Ä —Ä(HB¬L">½p‚¦ÙLÐ G+ÿåÍw]Ÿüy:JKλaŠ¿ÏKÕKÒѦÊÛªþòºãÉ4ãO›Oì@Ø""›6ßu}ü÷ùÿi|q‚87ñIEND®B`‚x2goclient-4.0.1.1/icons/64x64/lxde.png0000644000000000000000000001067112214040350014163 0ustar ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î<6IDATxœå›yTgºÆÕ]ÝìKD@PD±ÑDEçÆeÜ211f3ãÉÄct2ëÍdŒ79fÔ»ŒYŒ!11&hF½5n!ÑqAAÜPz­ïþQ%i¡hœ;ï9uÎéþê]žçy߯IÁ²É?µ-1I’¤›‹VVPúwA€´„Z4ÐÀ(-M„îGóð.™¤šp( ×âÅ‹'}ýõ×ckÖ¿o) U\Ü? 411qÄø‰S[.‚‚ÃÛHÒ'ï-‹ŠŠ–Ÿç~£€$I:ÔÀ=€6@û… ¾ÐgàããN¹{ìÉQˆ Ôópà‰¬‘#G< \BX[|¾û%ZàÀ hëëëÛñÃ?ü³_Dß.¢?œ§P^ãÀÇCÏ+ƒʨÝ1›Í‡€ !„ÒÒóþäp‚ºÐnذaýf¼ñæ_*Ý:Fï>-¤œªÍŠö]x¸³ÄÑo×i6›ÏÕ­ ~BhëPÅ-È××7úË/7Ì«òŒé¹)ËÎÕ2Û­¾ù¸ë˜>È¡<Ò?êà_@UkÛàO‚ îFà CJJÊ«]û=>vC¦r®Z°ÚŽÉÃM‡Á^R”ÖÖ÷¸ j-Íø]'ì;rngEÛÑÏ-Øn—²/Ùî<@ˆŸDÁÅS—´uÎQKíž @sTªìÁ‘‘‘=W}´vÁ%[x‡»mܨ²àJ-k,bŠ3õêÕ+öèÑ£@`o•ow[4¸»@äÚµkßð8,-Ã.]*q`s4ïü±nŒ6•Øž5è±ÒÒÒÃ@¹ÂÑbÿîVœÔÝŸ1cÆo†?øÛm'õòÑ‹vj­-oI‚!&7zùŸ)y|äGS´¢Ü•hUwÚvêÔ)î£OÓ–+iÛnÇ ;å5ZsFîF‰±} ØòwLœ0á °´DTÔD΀ªî¦äää™ï~™þåê£íÖgX)kEð’² ²ª{;N Ú›~Ñwúôé“P'F}‹Öý±à\õ¨¨¨^«?M[žUòu¶*s«fô:Ðë¤Û>loäáÐ+¶áû Ž¡R¡YµõªÞuÞ¼y3Þ]·7-õh› ÖV¯×Q–0ÊýíG^‘ ³1Ì0wîÜ×QwŠÍîj­B€SÕƒ¢¢¢â>üxÝòì²à¯³íTÖ¶ýÅu[þµéË3íÃ×´QV­B^§ƒ=?62uŽb¯Uº_þbÓœ¤Çf]ÍÜx>ÔïÖÀëçƒLF §Ê’’’þä•B«Â”gÞzë­×³ö}}bhŒw£î‡N¡HpÃbdâĉI¨3‰K“á- Aþf{ë¼~ýúd{`¿ëÙ)®T÷ñÐÞFOÿN‚ÏJ[Á¹#Þ|óÍŹ¹¹y€ÕÏÏïÁÏ·X³ú §t½Ü^S/Š6‡¸¥ŸÇ´wc`Ø51îÉ‘c ¾Êêïî´júÝ·íØó =<2òìèêQ!"Ð@˜|Ié÷ÐÃ@¦¢¦©Ô!@ Þ0`ÀÈôƒÇ·tôðáw6*Í áží£gÚ@»øeè±3–¿ú»aý»?œ››»S«œîƒU©³2®zKÅ•öºê„<``@´'åV „øË îXêóç*€Û†m§Wœûí´Ä)ú"Ñ©QE•ÓLPRi§]H{ÝèÑ£‡â" d§àÝ€Ðyóæý!vȸ©g©´ÆA|'=Û+ø8.íÜö¿k§Ïž†*P7€jÀ¦%2(11ñWrpϨÃûôzD‡ czØù×Eù‡jy%Fv—8úÝÆôÔÔÔTÔþmo¤})@ÙÙ³g÷}õÅ'[~=éÕQ%’&ª?¬[Z+óÌØ±S7nܸ(o(¡Î& !$I‚Þx㩱#¦Ì̺¢#&X¡­[Y͹ì};_{íµ”ÒÒÒËš“•€uبÂïÄ~ó}Ö7›ÎÊç mèuæÎ¨˜jôzk©¬UêÚ݈WefÙ£FŒNãÂ«Ê è™¾ÿð^‹g´>¯ÈvKBñW.)q=»÷Ž !Ì"à&ïMÏO˜ø×Ë%V{œ{ö‘9¯ÍYqàÀãÀu-“f-èºûpÚo@hêš5Kr+å E6Œ2˜BÝÙ¹si¡ãŒ­›¾Úb­C@L˜ánʘ'Ç=œj\\„B’$3pñÓÔ>zmæì‰×*t(â‡ÖZmQèÞ!D‡:Ë’$I­]Ç‘±cÇöûüÓ5S~ñ³¨~cÆŒwàÀÀ T¸ßTeG½Åt€ÿsÏ=÷D»Îý{ì?¯ kb4"ºšm_¥^ÖûwÑŸÌ·i¼‡`?™þáU¼·|þ¼’’’£Ü÷˜¸‘’’ò³§[M¡Æ[tE — Œ7n*­½pz3¶áÇ/™1cÆ:ÔKL—P«nB4ÈK­úž@Ôäé|ëû žT[‚|eÐκU ŽŒxì¹ö‡ó 8„Ú½Üt 7 îÙ¸/55õ#šæým¦}×\NY¶è0_ÞîR]‚ z‰Z«DŸ>}F Ò¥Q!Ôi :€ZTQ3kAßñ–³S» III™wƒ0ãÙB¾zï©ãXzÚé®]»úWÊ!ÒÅb{]uþ+ÚHÅÕcIII¿®ÐÂËX¨ˆ)OKK[—qè@u§¶†[f«éÒ¥Kª65žP³êl.8 ü 44ægÃ|Ÿ FyÈ@å¥ýE+W®ÜÑwðèN‡/d-ø˜P#íäñÒ”Ihï2íwVàê'¯~/ÄWÁÝðCK¬µ ºšºy£^m:Í1­ú@ä_f¼=?³Ð‡ŠjCº¹ámÎ1ÿêÙ§fÿ}þârË}©¨U0è!ÈO¦ox-ÿXšüN~~þ!\hO.˜T~öÙgŸçåWÂÚ@€]v³;Ýú­Y p‚~prrò›Šo'Ï“Wlô‰r§£ûUåùqOÿùÅ_ŒoÛ±‡Ï Mø<Œ:†DCúŽõ‡RSS?@»™ÑÚÛZN(¸²!í‹Ýí|•:ª©W^u$$$Œ¤ !l.t€o=â㇌~d_žžÎí Äß`ækIoÝ?qÚ³YWÝUø~ÞÅHÉ嬪¤¤¤—|ZÎû†Ì”Íš5ëoµÕøÈuBh¶*ÄÅÅ £ !t9N£r‡¿Í]°<·² ²^b`d-­|gåÞ½{ýã½÷fXÜBu—KÔêw 5 +ÓTÞçÒ Þ7dÚZfàò?¿Úà%êh $™.]¢;Ñ„624sæÌ?ù„tó»P¤0Âä`׿O·­\¹rÍàÁƒê;`„)ó2duRËÊe –]ºté ?ï2P’œœü†›^ÁËM‡A/aW &&Æ‹¦„PÑä¡-Ð&$$dtú¡“ʲ­ÅbϱëâƒVŸC¶lÛU½á@©xë‹kbî†ëâè¹b±téÒL U4%WÎÕ’•ç=·oÿ¦æF¥M\*¶ŠÂ2«0›ÍºµoðüM"Ài£¾tYÊ»7”¶RT[(»p¸tÒ¤¦U¯¿þúË!ôÌ)°a%úv6P˜›UûòË/¿Dëú½«fжlÙ¼Õ]V;N’@’HHHx•º ¡+ÀW^yejxן»ô«ÎÚÆÿz쯀‚€€€cž}~Ìñk:ñçºxõ•i“sü±¸` P±hÑ¢å55Uxºé0ʇB\\ÜPÂF í§½¼½½cÆŽŸ<Å!ûâ«ä‹W¦MžTUU•x/\¼t™Ý-X*,³ࣧg¨™w—/\™““ó=w÷·˜SK,Ø»gO©Q/Ô–h0b2™"iLáÕMÕïþñšµç³Î—‹ŒãçÅÓO?=èD<ùä“ÿs*·@¬ÜQ"–n-'òJÅŠ+Žݹ˼¿ƒNµ?~ü«Õ*¬6E(Š"òòò ?àÞàïYPOœ8qVVÎU‘}öŠøýïÿÐõ>Ü€]{÷[·g–‹%[ŠÅ¾ÓbûÎ=fTQôEÝgÜ“à æ <œŸŸ¯(Šš‹ÅÒ¨6¶ 0íØ½¯öäùb1þüon¨ûìÎo¿ýö®Snˆ”í%bsF…8q:W1™L @ ¿—Á;ùlº¬Zµê²Õj­K@BBÂb­h·¥©t=rì”òÙgëÎ=µàƒ"""ž=žs^¬?P.Ö¤—мüb1mÚ´€Úïîô AÀ°aÃþÛf³ EQ„Ùl‹/ÎÖ|“›“ðÀO<1ˆÔ`í ôJ[¿©4ã\…Xµ»DœË/)))9Àƒ÷š÷wðÛˆ?}ú´CQáp8ÄÖ­[«4ÿŒ.'@[L¯UÔ }†OŸ>}UÞ•±&½T9W)ö|ûø¹†Ž{ÊûFh¹hÑ¢f³¹I!l´|eYšyü´²+»Rì>^)Îä^±±±PoGý$¼¿rM&Óo,‹PEÔÖÖ `àUÿû®îô@Prrò|ïB$›¢-,Zð÷Õ™™™»QïÞÜõ~ïŠ uèª=}úô‰'N8$IB–e† ê_puö”e¹ó£?[R+Ó#ÌNʲE;V¬X1¸Ø„–þûÄì@Ñ®]»Ž›Ífìv;ñññÃPçš[cv‘SQK–,É*,©…ÅbÁ‚™¨¢âÅ}Àû|–ÿèèèñV«UØl6ñþûï_:Q¯¸²ŸŸßÐÜ ù¢²Æ"V¯N½ Ä¡—?u°øîôÉÌÌ´ !ÄÎ;k€‡¨× šZD/X°`WeU­Ø¸is9ªšúßÏÁk¾Ë@ÇwÞyç˜Bœ:uÊô¥^'p)ÿÜ´© ý»}µZðm¸O¿ ßu€¿ÉdzÞf³‰k×® Ôvíќܜ¯ÃÜÜÜ¢´Êß6Mݯ‡FƒÞÙÙÙöòòrÄ×G@£]@¨«Ô×,ËEÔ÷sZõxú=6;p===ýhNNŽ…nÃ5ù”˜–„§ MnlÞ¼ùshàºûæ­±»eÚã>ÆÞ½{{eddTRïU›ÿ÷ €[^»¢^Àÿ hÌîûw‡ï¶ýÞÎè/ðIEND®B`‚x2goclient-4.0.1.1/icons/64x64/new_file.png0000644000000000000000000000461012214040350015013 0ustar ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î< IDATxœí›ŒUÇ?çÞÙ·¿·Ûn»K·µÝÒb)´Û µµÑ˜M´ ÄDþÀˆþHŠQAŒMÒ 1MK‰5.¿M ´Š”-ý±´µÛ–ÒÒîîëîÛwïñyÛ}»yÝ÷vv_QN2™ys|ïùÎ9çž{gž¨*ÿÏbÊ=€rˇ”{å– êæŠûvM³»EÁ jA¬‚° &âzÄ?ðô=sc°¯ÖXšêìt¯à<¢€W¯‚z¯  NUTÁ{ÅK<5ß^µnïk÷ÌùÍxôI@(â§6|½ui€ºÊjRYjRª+2Ô¤2̨ëãÆEoŸÑnÅÜýüöåEÜýû}´Ïi`Ѭj.8/…Mp™IÀÉj§M¤[ .˜YÅesZª;¹åªm£nWÊò‹/lf{×4Þ8Ð̦WZ8r²’ù­–Åmõ,š]Mû¬ªÓ+ÇR$ÖRÆU8°çŸß>ªŽß!ˆÈ°ëÁógæë_jå/ Ýܸð̧'“kúX>w?Ëçî '“âÍ®)léœÁcÏÎæÖ«úioutwWRÊÛ¹ø hÔ Š÷~Ø¡ªäS0¨°ˆ`Œö;ÿ¨ `í¥ÝüiÛ…¼ôNéo›êRZêÓ¼v°…ëdhŸáC¢K´Öèið”Sö*fŒÁZ[ð8[¦Zá«—¥yø™¥¼ýîä’¼¥³•ïm\Éꅖϵ+6‡Yªˆóâl„Bc%böX³d€þuïöÔÄÃþ°õ"Ö¿¸”ÛWÂåmŒÀ,‚ø QgMåÓƒçBequ–Ìô¼~ØòÜ®pÓ’gd&ð³Ž+x/ÝÄ]Ÿê«@Ä ë×_l⟨8kÃ'9e£ÊŽôÀê…ÇF5È÷¶r,=•;¯3§·ÊFökÅ#¨G¤( " HÕ6)’vÖÈ0F£d”²#Ûœ€®ž7<ñ‰“ÚT–ê”’ â­ÑñŠgì„›ì` 8›’…”j³«K˜ßü>)°ã™'õUýôöSÐñâ$D‚ l´ŒöW¶ã°gÉ̃ÃàÒ™ :v¶q¤»†5—¾I]jh°¡*ÃɌİ&‹¾Ø(I@e¯W39Œƒs{±Jªóf—ãÓ óØ$6½~/îžÁ™B]Êpûgqë²­\9çàiºûlÁ‡aDÄ‹$@@(ê̈ï§áxZؼžõ/,åHw-×,Hqÿš€)µ!Ù;{Ö?sÏí:ʭ˶ÒXÝOÿx*rïÌ΂VQ&åª.0æôKÊb#}Üù?'”ô€eó[—rÃâ*–¶Y;\©­–ŸÞ<‰'¶UqÇãM¬½üUê*=éË”Ê3 0Æâ¼˜d0ƸÀz¬,Õü?6[øå—-Së Wká‹WV°|~ üíNö ½aj^ºßÎAÀK‘ßþFp´Ái£j.ˆ' "òÏÍ“ 'WùýΞf¹ÿKÍl?0Àœæ"qAPOqP`4ꂼ XÊ,P Ag+[ÒV˜4c ˆzInä2Á±ÎýIWº€8Ñâ>׌žOfU¦Ùl '`¬ƒ¯:Æ"$˜©ºb3Á‰ "NDÀ ÉAk†\`<MY1b0 Æ“µEÁ±Ô«ˆ$8 VOɪzãGK!b<$÷šÜ; J„D²An·¥Ô§=‘"HB b²6·<×”#‚A½˜b@ݱŒÚéµ®"°‘‹¡sQ$̽øòÑ¡Lðƒ Vó€"- ^;.‡?("9ÙŒqFÂÏÕ¡À#¢ ®nÜЊé;îvØ·x1 °gú)¦Ù¬§÷_}x?ômžSp΋Ëýö >·Ë:/>ï;¾°ÇyNß¼§¹?c öíÕ“ßÖ9Ä©õ5ØÖ‡.7×§š•¤6Eß:Ðø[¿>t­ÁgŒ/ÖàŒcEÅ Þ(cQo1ˆXÅ›°ãE­¨XD,ŠûíÅ[AŒh®>b¼`Eóÿ¢§VãÿîAlîÚjŽ-áµÉ¿¶˜¢¾«)vÚüŸ“FˆGù€r Üò_ÿWs_ÓÌ„žIEND®B`‚x2goclient-4.0.1.1/icons/64x64/personal.png0000644000000000000000000001166612214040350015057 0ustar ‰PNG  IHDR@@ªiqÞgAMA¯È7ŠémIDATxœÅ›{Œ]G}Ç?3s÷žûÚ»»×»^{õúÛqÀ!4ODJ@‚h Ä•(­h«ª”>$þhE_¨T•R+µÑTh5 (ŠCHBäe;~Ûk{^¯÷u_眙þ1çÜ{vq°½»IFšsï¹÷êü¾óßüæ÷ý­àl7þ›Œ–Þ‹QŸÕZüª6€”© £5è)@šðIcZ_hÌì˜ý÷6ßÐgKšxC~uï^UÐ÷|<ÒæOP7Še±u¨ÂÆu%FÖXßãã9‚vd8w±ÅÉ©ENOÎsäì‹ó³ ÃgÑþ×ús_û/NîCXs‚»¿þvmÜÏãæ?píÈ:~ý¦ |pO?[sÔŠòu¿7µ 9:Ñ䡟OsÿÓg8pbÑžÿ±jžÿë…‡>óÄZ?gÚÖ€ÂG÷ýVhô¿ öýѯò›· 2Xv1FiƒÖ`^ç!¤%RJ&fC¾ý|ùÁcœ9svÞ g>»ðÀy-Ÿ5mj­~(Ï·>kñ·ïÙüÓï_ÏûßÞ[šFÛÐ íÈÐŽ/Ñ#{¿Ñ6Ô[GÁ;6—¹ýº'gŒ|ªý!wäÝíèȃk΄5 ´wßïFš¯¼ïæmâï?±‹ÁŠÃ\3¦•18Œ¡­¡_¢Gvl%ŸmE¸jàpû®gç Ç&Ã÷:ÃïªGG|r-ž9m« ¸wß»¢Ø|óm;G½¿ºgE_²ÐÖ„1„;ÆƦÓ#ݽnG™ëô³ õ¶FIÁÛFz94©™škßAïÎCñ©ý¯®…ñ°Z>ðÏe×)üOOmý¦OèZ®é÷Xl"1X¢ÔðKÐ?\ÖÛKFhD†œ#è¯yñL¨Ú7¶ç.>Ìü‰é·€àúO~Æ)T~ç¶=£¼÷º ­H[ƒµ!Ê0 J¨þ’n—C–&-ÍÈPÎ;Œ×%³ºªý’ >ò# ~Ë>øµAá¹_©­ªÜ¶{€ =ŠVdˆµ58Œ íììkËŒHClè\‡1Æ$ô×f)8‘Á ¡äìlD«ÙÞÎÏí׳GO¯g¥_4žww.¨  ôx‚ŶFØ­NˆL„¤› Èl¾&Ù Œ}mmÀÓ‰E '¨ö”hôõ.ŽÞ²7:õȳ@k¥6À*@ŠõôV(óÄÚÒ4ÖÖ)¬Á²‚@ˆÄøÎŸ¤%m0Æ Aƒ0 ¥!2†|Þ£Z­0S¾« _Ž®ØV€×·JáÜÐW-â:‚Fdh„!l@#DˆÎõë `23o’™×´NGP¡ÁQ‚R9O¾Ø?:³ù®=丅îM@zþN×óz+•®‚ù–a±e’äP“ŒR …I@°Ë"šäNŒ×ÆFŒËGÁ|Óà* ð)Vzr^udwû8+>/¬l H5š+–|ÏÔÛšÙ–¦àKk8,…0H):óž=è€dúã%3ß¡Þ2,¶5ž#‘ÂP*÷ r•Q ð¦ 5}¾ëó)0Æ0ÓÐ¸Ž°ñ<Ö`¥í(£AHæùªÓ%'´uw¼ÐÔ ÀqB(r9Çñz[€Ç+c@ Ç‘x®DH‚ØÀBÛx%@%[Aêà Öx»+t}@êôRÏg@°ÝPobmð\6ÖÇxŽB #w¥Æ¯„0Æ Tz‚WÙ‡kkƒ'K-É·DǦ#Ð"q|t² bcg¾ƒÆ/"Ë¥$Æðúçë+l+@Ý Ã‰Áuìvç:GÙ.eÚYv 2`ñ‘Ú M'¤¬±~@ëH„0l@e´ýh¶Úo „ÍÓz£5žc=¼ë\e»J€PR :ç| ‚ ŠÀ^¥{¾y-±¶Ûi¬R¤´APŠ›ˆ!ÆÐl4Ћ“€ðÍ 1q¤±8X¯7ZAoO‰ÁIH™ -)ˆ¬vûÓ­±4ÄFdž86K¢ÉÎ7„u¨sÎëö…cgYe$¸¢5Ô|á¾CqØ:3>9‡çÊ%Æ»Jâ%Òs$¾›v±lì¾ïe_'ßu]çtí0Ì•„͘¹‹S³Œýì«Øa¥ XxmšæÌ£g&æ¶ÅQDÞwpp•´šñ]&X „èDvëC‡ú‘›.S–…ÍBÃÅÙçO¼ð´NÕ°R/jÂñ—ÿwj|¼uv|–¼¯È¹Öø,ÂIŒSÊ:F¥º'Ç”òB€›Äö¬ ˜›5ü䩟GÇú·©O>œâÒ‰æ7Ìôkãôl홉zoY_+±a Hà Os%Ž’¨Ô%ÆÛe";ñ‚’®÷$q …À_ <)Ú Áó/Mòô÷¿ôãðèÃßžê«yþU´ãÓ?9Vwï<ß*mÙ0Xb°?Oàò®¤àI‚ŒHgÞ$ñÝißó$äÃa0ÚPo^:0ÇcßûúÁ ÿãçVk<¬MZ|.:÷ìáÅ`Ûž‰ùüP_À@- ïrŽ]Ã+È;‚@A 錹¤û |)p¥@ ›Š Ô#˜›¼ðêß¿ïÔØþö›˜øà5Ö k€!jž>üóùÒî·›p‡”R (¾O \ ~Öhi׸d2Gö ÐÔ†¹œ›0<õì>x߉“÷ýÙ×0ñ€—Xeð“mk¥ E¹;ÿaDÏss¥ÉɈ£c  $•jŽ|Nâ%{ÉŒ{‰ñ{<Ž€¦Ì6alJóÒ« žxú /9E;ÖJIõ`cü•ï³Ê}y[Š{÷í2^ßw††7l|Ç×âä‘ó± o¨£ò¾¬nÛ“ëÛúøüÑý«ÎgÛªÅÑÒGîí …ÿÃuµ~寭 \nÜ”ã=ÛòÌ×#ŸkrrªÉbK#• ¸ä=‰’¥$íHÐhiâXãS+ÁæŸ ýy^›Šxà•fC&ÎL371v`úÀ¾œâ¯­…ñ° P»>þ•rµz×-7nÁõsÜtMŽ;¶ær¾d°×có@ž ýyú+^’ɱ[¤”w ëJ‚‘šÃµsl^Ÿ§Xð5ô$ƒeÅ™Yã{´#§æä·ž?ºï´VwXòû柸^þ/o}çJ• ;Ö9Ü<’ïHbíØŠ!B@à *yEQ±®ä0PqXWqX×ãÒ_v).BŠD%Ò„‰HZòÕ@rvÞàzŠVèn+ ÝN¿xÿco)…»¿µÛ ¾ñ¶ë®ÉŒ¬§ì nÉV‹5D¦;FqW ʦ¾"m?oe1i­«µcCÁ·û…–Dh‡Î;ýÞ‘ggï?²ZV,ŒÄÆ|~ph º{ÇÂØ°cÈÇõÐf;¹?a:ŽFtraÙèÕ&U;ïšnž0½g WÆf# D»5ˆð¦Ï¤ð<,N¬ÔX!ò÷|k¯ëùsÇÍ[ÈE*yÁ5½n¢ûb-:ú_7¹ ‘1ö¾™¼Ÿ z²ŸRÖdØJh›Ï•´Bg¸´a×ÔÔK¬ª^નíÝWlÅúë;·oصc˜0Ò •O$ˆ.Å¡cì¥3¾Ýe’&A#“§KǾµ ›gé*´†P{×6¦N?ܸp|êM€íw²P®üÁ{n݆T.ŽÔJög–Ÿ\§¯mÚ;™y’÷5ÝÏhÓ!Nf?(Š a¢4#[Há¹’väTÜbuaü…ûc…òØUPÛ»¯Ø‚¿a÷¦-›£˜œ+ <‰!18ÉêÚÄ­èH^1öž†% ±ß1KXkCDˆd‰¤€´¹ÜqË‚PÌMùasúÔŠ|ÁU v|ôž Püô·oEH»myŽÀS¢c¸9º dNk„Zi’0†eK$Ë î"Ý­Õq$­È-»NqjüÅž`,¸šŒÔFüáöÑz*E07Ih´uRÍ¡!4™Ž¥p[C3¹&M~HIT¥–NfW[ºw~KÛ­±l•’”;y‡r9Oe㎽ø•MWk<\JwãfÇË}îÎÛ¶)?g÷{'U†Ò*ivBX‘^§éñ¬^Ðí2‘×R½ Ã ”ˆŽn˜nªiÝÐlPóòÅ—§=þüÕpÅq@dœ{6o¨yëJ,¶´@Ñ£“Ú’¢#‹«DèÖdÄe¿m`4™âˆE"Ž&ßÉdÌìÑYòy‡rµ—þÍ7~¸˜Ysjwü]±®ÔwnéC)%âŽ.è,@‰¥"ˆLÒ\b‰*”1ž®2ld×x­-¡bRb!ˆ…µ„+ ’ :tsïÆ]Û.Œ½úÓ«àŠ|@»²ý– ðvlé¥jÙMl:’®¦½ÒÌî²TyšÞîôŒèáü’¾ä~’Hu¦C¡Ò;°ùÖ¿‹«tìWÄ€HqçÈPMTŠy›&cxWôè¬iµt)tä°NÁTFð0ÈŒF¨A'³/D÷Ú,a!]¾/)”KT6î|7p/WQ/pÜáé¼otcå(¤ŒºšŸ²ŽÐÉ:µËð‹ê°5ºãäãuB}™¡~*¯w¤õAÏ•ø¾¤Ô?¼Ç ‚a½~Å\v >ü‰k•ël®Fº;ãË|€¥gwithŸ^'"‰“y½d¹,§ù%ºJ¨ŸN@*½+ ¹¼$”×o½ý·¯¿»ÒvYÇÛÙ[­TÖõhc… ±Äû/ù%NQdj2»Az(LOi‰ŒÎÌ~J‘–•$­[O(:u‰Žx®¡Pîóªƒ;v>W˜;¼,1έµ¾"¥À§Þ´B½¦K{Guãå5iõÈò¥m†„ö¦k¼NèÞå{¦pÂÐ92kÓÚ¾Àó¥þ»Êš „º~h]ßSÄI ÚÖ&Ùö²Î/è(;ûËkÒ‡ÍÆXç–' aŠ… õ˜¢Ã%!§ìoä=‰ãjJ½C£@_ „£ÜZ5@ ðKqÛè,Í9 Tê—Gˆîh™Ni¬N÷ÿØ ¤°§q—úD‰™VŽ(;% q a,P®À J½@vu\ölpY0ڴØBNAã:VÑmÄ y³lè8ÅŒ_PË–@wV»¢q²þ…ÎF|Ýõn£…ϲ+Q[M" ³ :–@~!à¼d»œ·Ô„sÏ=÷ê$ &墋+yWP }$ŸÔФ§^Yew„LÐâˆe=q–ös²ät„ÓL•¯ š¬ %_à)ð›D™khÐ.3gŽquC—š„ÑÓMøC“sª¸c´‡Z5‡4GBÞ•”õ‰cÏýx¸p%ÆÃ•Kc(»Š#·ÝUØþþäv^70|Mi˦*×Vؾ1` âÒ_ö¼®³“ ÍÉl'ï Ò¤i·‡†L*Ì&SCÃlÝ0ß\\,,¢áüÙSõ/ÿøø³}õg'_Þÿ3àyàö8lÖ€´y@ Øâõl¸¡8úîwö\_¨*}•¡¡A5Ø›c}oŽáZžZÙ¥Vr(ú6ô-¸ÖQBrÞbm ÚZЊ M¨·a¡ ­&´BX¸0§.NÏOœzeâð³?:rè™ï¼pîØ!à0öŸ&ÆYAÁÔÕ¢ ÃN¾¼9X¿{4¨mÙ”ïß:\èßX Š}e/W̹¹¼W.n¡P”=•Ž”H)OoER©Íf›¨ÝÔa«™¨Æíz³¹p~anòô…éÓ/Oœ|åÜØÁŸŽ5gÆ€³À™ÄèVQ/°R²ß÷"v‰T¾d¬½Ã½^©Vö‚jÑõƒ¼Êó#m¶,%R tØˆÂæb#jÌÕ/N.ÌŒ™fyà"v]gßk±Šÿɰ–-$—éùdô±Ìy=Ç«±nc«'½…­m³Fe1Ùöÿ]ÌuòX‚ºIEND®B`‚x2goclient-4.0.1.1/icons/64x64/preferences.png0000644000000000000000000001553012214040350015527 0ustar ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î<ÕIDATxœÅ{y|EÞþSÕ=÷LŽÉ}‹Ü!$@Ã)§Š(ê+¨‹îºîê*¾êº*²î®‹×Ïk_Áu‘UQ<H á†î„Ü!$™\“9»»Þ?z&é™L±úþêó™OÏTOWÕóÔ·¾WuÆþ¯ !„ žŸ cŒ±¡êÿOÆôsôã/Ïo€Öóá8ØÔ TÜž{N¢²Ÿƒ”ŸŒÅ,ªwgZ\HÐŒ,ŽˆŒ2&1Ò\¾¥Z1~ê—…ÒüYPhs3€„Ô럜OÕT~½f+[Kù¿µNý%xXZ@x›¸öŒ%†ºq]ººä×j)Ï„è).ôè`6Ê3ÉS`~.%zîÿ­´Ûºïä5AšßÎ6rp¬Q€`mn·6ŸlõÓ‡'Ĺí=‚»¯ë"€NBˆóJtÕJ` ŠÏ/Ⱥá™çÃcÓ³‡¾¶jSÓ¡÷¿stž×‹}ìu–0SjCA‚„¨ СGyÂ)·³zÂl·ÓfŸ°â퇧æEÌF¡º¿¿V·gÓÕ;_x²úiP¬y΃I¬+ýÛ§ÁÑ& £™.²tŒšñÒ­ccíìæ±5jïL+K¯è°ô89tÚn‡¬Gƒ´ fC¨ž 20eÃí!t[Y^äáW‰¢ -¹&˜¿íZ#é´1öÅag覆y:¾lƇu„<à5BÕj£Ùå²Ú!³›:þž÷ߘ7%'sAŽ@ !èvp0BˆÏ§ÓΡ¼™Ã‰f­½ÑA@¨ž DÏf  ”¡ËF`±IèêZ{ Œj†‚D‚‚$Ф0:¨ÍP}QÂø5!x~›EܽûÇýeÜû€JÏ œ¦!A) ç&"zÌM7dÌ]ýüùÃ[¶TïøÓ6šÆ²ÏO—Ž(Èœ›e…ŠBt¬"PÛAñõY,6Š1 7dGp\¿Ùòë“ëAm;p¤^Â?ŠE0HXZÀc|òÀ¤ëÆ%«'λQ^Ó'œþüÉô00B­ÖÀå²`@1$a¸%@èx^›š1ó‘5“F’àSºÛWÆdM]T[úÞ‘ÌyϾmŒ“ðÔ÷¡‹VŠoÎêp¡W…[Æs(H”bŒR_ðŒ±þYõ~€‘##8ÜR@QÕ||PÀWÇ;®Q!3–óéÏîb!Ô•‘ê´¶Õªf}ê¬'nΙ3ãÌWkŸj)ûìK!ǃA%„@Dέo¬ËÌ/¼ûá)=<@HI­–í<§eËÆ8I^¬›(E³¸V‡’Zåq˜–ð À”RŸY÷~W*9o;Jr¼åp=ÖC2£)VNÑ@Å,}Õnöêö‹îóåÛOÆç/ÌÉŠÕp‰Ñzº}OmSц)·8 /\Š€Ø1KnÌ\°æõec\šQQNBÈ(TÜÀ€%Fðùi.öiðð,!:_ JðƒEŸ "Âÿ¾÷ž Q¼UäF¯ƒáѹ:˜´äï=çbE'{ÙŠéf’®"½N°»Þ¼(Õ¿ùPÍî—7è¹,ü´¾@\LÞÍ+²­}tå›*9LðQH⃲`D†¨±²ï1Êv•³ª$F ~8Sé½O)ðÙ7J«D<¹P˜`n’ìs¾Û"Tž,->úÞ½«T7P¿Ž(ä$@2äÈNh)ÿwiݾw~T¦ññ°$|x,™±jÜ?•Þ°ÿÚW.åý@àûÿÏ–¨°d¬ ÞnG¯Ã÷™>'êw›Ä3G8rô½{ÿ ²5à !ñcš*:òjý¨„‰+ï,|´h{úÂçŸ ŠÍKyMf|þ‚Ñs³Ÿ‡·Ÿ5Á¤çqËxnhè¾¼’¨á®Þ6 3T˜œÊaÃ76âÀó<ôØóG·ÐY’#ÄAŽ0µJˆ¢a Ì=mü/>ØX˜Fô­]‚XÝ¥‡ÛÖéŽ3ë4¿â ÞìoÔãh³«© á‡oåàýK ¥ç¿(¥>ÿ÷^9ŽðÊ÷N5¿ž©ïþ«2{ó߇›J__ôœ64Þ5jq^hò„LkkeiÕ÷|ÀEƘ۟€ø±w¿ÿæ5c³g-ÝK !DbÕD%„é%BÐëâðÖ¬^¤B¸¯¼* ñ_ûC‘âUžþõþ·Hðø–><0Cìx!$à®×›D»Õb‡6R$I QîðÉúó;ÿRx€3Œ1æïˆ³ëÐJ‡›D:.ÎŽá.Ï`åÕš05ƒ Þû;{¯ê¼ÿ 4óþ’BFEpûD ÞßëÀŸn•#GðÔÒ(Î-F³âÔ0h8îB·ÄÊÎu…AáûT*A@×ÑM+ÖœÚöôÚ/ŽØÚ^Ù$4v©|j·ñ¨hÓ`A7,På÷ᔢ?aJr=ç/5Œ1LJUƒ`Õ€¯3*^±IèÕuí{ñË ¢ NÈ9È~eî¯TLµÞÈy«9aÙØ§¯ï¤”Èrʌщ:ÌÌ ìÕª©ô ü¥Á_ã++ÿO)í—Je‡¨¢EÄ[»lxmEHÿ3½†×¾n“רÜMǶ{nç_^úº°0ÆÀã {´¢r¢#Ês5‚#qvÈq¼[¢¨êPã×3/ >$rˆüÝà@z!Ð}ÿe’˃ ¶]DJ„¼²mN ªÝ(}yÆó.kûw3Í=J ðê@Hê¼5+ã³§þ‚‰n$ *Upbè5‰]ý½Tµ«‘Æ á¼ø.Þˆÿì+%d(wY Ô[ü‰€ñ#58Påê' :„‡–gÌ›«í¨Ü-AN㉬Ä ) 0#’f姆ŽÈ‰tB@Ô´f¯Î8ݦóDaàC™C—ì¯e8{p¹Ò£yLLBõƒ—F  J”e|·vÙpû$}]VÚÜEó áéáœZßC(mªÙõâV¸xøS†`slRz¸ƒ¤šíd`í tRÙ®Æòë†?ÔÌ+ 8ÙBð÷%ær ¢ÝÚÞ! .wy]dÄÖ#:ÍÒ±<›?z•¿ós©’ãÇÁÐa•n’£ÆYcB¹ÛœQ„ÌÍ«ê ¤aïß k7!Äí•ÀMŒQAIÇK4!ØExEäé(Bt¾â?ø@K£ºâµÝ m%%åÜó€6ÈëÑœ~ú»>‘î¸]d<[˜G‰wI\J ”…ˆ áÐÚ%öP˜¡Ã”ÌDŽÂQJÙm/Õº#s4Ú|@Ïc„À…šÝ¯?Ý“³ |ĨqÔ²8ÇNÇÄ:½.Îå‘Aà†òñ•÷ !x³HBg}Ù±òîy@ ä@[ùÕêV0F>£ËoŸ”Jnðmçr$ÌF‚NÛà¤ps§Àœ³Ã%bNž”Ð|h3€%(èl(ýç§Èw×;O Ù¹ñbÑëà¤õµÝÃi|ÿÙ¯ï$°:;òöÒç0°ï'zs8_ùõ³›â –Þ´çœQ³8‘Ë}_8´÷úpÏ’¥×é¶¶ž®l«-û®åÔCÞ˜íW‚Þ|¿Êså5F³Î¨h¨×IjÞIÊ"Bp¦‰‰v—x|w~%v–¾ž íg›µñ7æ«.[ô} °X}ëÚ¬%²Npt—h``cŒI¼ÇÒéc2Ó¢2çß:bÔÌà˜Ì^¤7©z\FÊ Š€$ È›S% <Âyn Dáy¯RÑþç™ÀáŠ(Êcõ›K 2ÁÑÝYó÷@‘6ç=R sW\öŒû''ÙTia.D›Ú UX“ZB§Ý¸¤?pÿ (7øU«õÁ± ¶îæ3÷õÏ#ä÷"5†ˆðÌh0ÆñúW"}¢ƒ´÷Ån„‰H,|`‘¥¶DÕ{þÄ Ú !NžÍµ125.mÂôe£»9“Fê_ýZ‡›M˜‘qi=T4À¡zÂô#goÜ·©òäe %ïÎkŒ‘ÉIÍPŽ´{%Ÿ§\ÈŠUcD˜œ)â9‚˜P 5Ææ¥jÓ–ÎY¸r)gŠëí8·û'…l†m•?œ°2=WÚ„’+©7²ÓmÚ~&µ„.{àçRA‘·<8M"ºÐø¸k)zO;ÀãL.¸wë[æ´©Sî+ä æ®j£`é“:àÁ¤¥˜›oÀúÿÁoû}2i6š$g_<ÀkÎΦJKUÉ–­Õ,ž‰n ¨*"1}LBN¤“Ç WIhí!ˆ2ù¦¾ü£²Ny0ë2¼òC|¬vUÉ;.&I œF­U<0²Ü8ïóWZ‘¡¹KBtèÀ%‰y÷!.t3ÒY³·rš¼ß ¸´ß¼òIÈow„iƒc&‡ýn÷:[¿ÆÊ³£ü¼³³†{‡²Þßà‹A.ôGÕ*—› w!é‘ð]þm]n9y^@|(‡`Ý€â\µé¼TÝ΀1"¹m5%§ ¿‡$À“!6ÈvÙÀ ¸`¢S²Ø8nÍuv¤Å :ÌÊìõƒ“J-î/ ÑAÀü£çÕ̺²ªsãšÔüE¯ƒ¡®lÏ ãÖŽž“sÎ𠆙z#o•2ý±_Çç-˜Ÿî¢ZÕ€ÙK uaëiŠ^‡“vüP` Büë)Ï«) Àá7Ö/Õõ׬v2WGe‹àè)Pæ!Àíùˆ€o>€3ùÁ'šIЂl+e‰2 ¢iÃÎ û­¼ö³ Ü òjÜÝ@å@•€È ‘Aâ¿çtz»-"§ÕGŠ›òÞ¡ €äu”^`àˆÄÏÍtp‘F9nwS8Ùð©ÉVì­¡CZeñJÇpõþ®óÕAbø`¯ w^«õ©ÿÍÜ02yòäøiì~%®àŽå’!û¾iqEF(ûÚ¶mžœ—˜A ²³¨Ø-è¹Ls/–H‰ÕÁêÖàÎñ98åÌJ{ù÷Oiyïû§À†ú(#ÅoO¸qò¼O,0üoI…“½öÕEábÍ/oºû¿41OZÜ«½aG¥µôP•ÙÔV¼¢»þà‰Žªb½ÿ³Gê:Uêd³ì¸MN°â•R-ªÛ‘áƒÅ8^PꀡôÁÕKçGœX·ÄØ_WÓ&`Í–‹ÒÄ4¦å“ë2´¨i5ÑÛ#“1àýH€grÊ8 ²gæÝðOO™óäãù…Ë Þ×/ç:´øì´ «¦;aÖË$p7¤.PΨ²^9“W*n‰`ÍgvLJãqãXmÿ½‡ßm÷ïÞvœÖØÌÉÙœ6<ˆAt~÷¾_uÖîÝ 16 =Rà5…NÈûé: 1c–MJ{þ”T—Ï¥‡;Q˜Äáí}:<<Õ5?xæEsCÕ_MùÛ.;ÂÑô×í©t²†Önû¹¯ž}Mt;*Ï\hÒ5q¦øUgíÞt#@RTIƒlUÌ)×?qkҵ˼=ßÎgE:‰79ÑŽö>›ªq÷'ÔüH%XÿòŸ‚g>ÜïBgðô"_Å÷¯=ÖtrG¥èv´¨`í¬;p¼³î€yr]L!¦ƒbMÏM@“}ý cbÝ43ÂAŸ×²wh™¨È7,ʶBϹðr‘—+ÿ™Æw¸^ùÞ‰Ú6 ÿ=O žómë‰#iʸ%£S¦ýîFÈ›¢ ²ù³úƒH€§Hl§¾xæåcͼp¸ÙÀ6„­û;»ŽŸ®¾ð/Å69%À’\ÆÆ¹ðâ. j-t‚S‚÷ÿ~%¥Íʰv›Ázà÷7h`Ð €?wÁ Abˆ7sxay4—1ýþå)×?qdמ0Æ$ðÀÐïIº»êöïo.ûü/„w4ühKõ/|§ÒÅé‚¶­‹ š–êîÁuID6î×#3RÄü7Bt€ÿow3|}BBÑY7Žå1g”ªÿ}#Ø^fc›~´²c,Œ ù ŒO×s½]sæ×üð—b˜×æ†{EÆkÂU†w_W/d÷1'çæÿX0qFîo¦¸¨¿fv‰?ÖêPZ£Â¤$ÓÒÜýnó¥ì¹¿pÀÞjà«ãòF,)PÁl >Ͻ[be_î°Ý|ÿ߃'F¥NûåM©1Uu‹ÍupãŠ{{ËvèðjýË&@A‚÷u ""kÖm¹·¼ºþ‘©V>Ò(« «›C°Ö7muQì¨TãX“F†Q1òâ$DaXºÇŽ52Ô´Ù1ÀÍWL€‚Ù,f®*útv~PܬtÁ¦©Ê¢ÁÜ,™™.ŽÎ$U·s8ÞÂãD3‡>A°–!D„ꎺí6 Ýv JrãÆ%ŒŠ§Ðªü$ƒtÛ0£œñy|s›Xòí‡_U}»~ äl³÷Mv7äüß°/O_É»Â$~Âà‘¢ä„]àØ?JUR]]]cÅ÷¾wÍêÆ}Õqá^/R“Â2Q¤GJȈrãÖ1‰¢Û!ƒîq0F¬“j$ÕzµÒ5ö@M›ÈÞÚÑ-]´òäÏ·Ó„0¿N-Ëf7ýh£íbu=€.ÏßAÏ ®@T¢ÂR gf-|úuHr¢õüѲ#›îZ+ŠÎ^µ!lÒu–¬a±“ã9y¦è0žÜåèïwA"øçn«´¿Æ-6ø¨˜¹íbÆ´ûf¾´"œc xl³E¨;õãÿœüð¾Õ·¾®÷@å²$À+¸´uÔ”|¿çÕ9§“§­šP[ôR)ä·°LÑùKc£ ‰£„€Ww2ÉêXa–†ŽÁH°nØ.|ûÐi$‰!2ˆ€Ø[CptãŠ×{˾Àta Âc›çÍvºk>õÝöŠÏÿð6ä,Ï#ºì%à!Á y?¯»¶è¥ ȧ€ÐðÔ‰ùy‰*p°g5Í–¾ªÝo}WŸwÃØmñc“œš%·µã VfÒZ5Hnœ\¤N‡ûzÅ.‡†@Dƒ†r¯­0Qž#ˆ1º¥¤IúžÆ²F]'?yd5ã Mí§¿ß›ÄSŒæÄè–.&õ89úÉ"VìxùÖòÏv4ù(aêï¾Ùà“†ó]Ÿês÷µœhR냵jóȈgë¸f‚–n°êÓG*¾Y÷¶££¾»ðÁ/¿ëtNÜì\5“¢§§Æf5ÈcîpîÔÇ¿\ @œüPq®*(*|Ë—Â0}mO‘8ƒˆbïëR÷]Õ¡)Þm-€¥|Ë£`K_xáDKBBO㡽­åŸ} yV¡¼BÀHùyÆ:ž<öÁýÀYþÏߟjž–= 0ÑÕæè¨ß ³²è­Ð-á]§âFIøˆì4ÈæX„¼•f.4~t|¸f½Õ–Ò·dCCqO¯ø¶Hëwï~všàÍI‰ÓƒLܽÁú”)&glìp?àêð+€®î¦²Ò’7æ-µìwV}¿~3ä@Ä ‹p*ÇÑF‰Q¶¯Êí¶ÔÙà(ÚÕx¢ø`Õ„ôy¹A<áTNÈû‡ÍN|ýMÏÔnzvëˆtgWS³¥µ¶žhNiÚ¦­­cÓ´š{g˜5åõŽ›¾+·N?R“".}±¡‚õ)S RtÜœM™ l.2(¥˜óSyáJ×tqË—öîøî[/ÖÞõ½§lNbJÁ’YvIXBˆ ‰,d`PÀ€[‰„B\€`(ßüð®"=CÊ-|š2Ø\î )®¸‰qõ¿:×ü•z¸©¦x½ÑöhKÅÆ{¿6züÙ_Ï^8ü6€‹Hf !dÉ5–Ò1‡Dê5(ËWv<Ön¬ÜXá|ïè\ÿ+g‘HÁrÁ¤Dÿ"ûúÎ=û7[Ò,'Ø\0å×@͇b!c¬joØQzf-eܶR½ù‡O7ÜõÇ'»_~mòä¿¿.Ç#‹B"Ä$x€À`°7¯±m8x§­¶½ÃXÖZoÔq¬^«"ÝSé\ÿ+— !iX¾@’7±YÖlnîl5¦™R!æ¾\?¼ P×h×Xé¦CMF.LL‚ŽáÑ^êÅUavÔg,:f}ä5;þì4²ˆœ.sbJŒ|¬J¯á^£1ZŒ¥õ•Dm54”€îÙXÌ~±Q‡J+gß[¤ÝgbB&¬ùÀÐÙ[ïÛ¢¾Î®JSfœË:†µŠsà­+5;ÛÚj ²„BÀ0 X† ¥$ŠM2–Ex¢f³;j3;ý­õÁ¨BMz1éUÄ fQWªÂ†µh8î:¬®~·ì¾z¦ ÷¹¡üΗ€¥xÝžÎët7˜!€Suž(‡ˆÄRÏ•ãómý´¬Æ4†aÀ0 –ˆXf `3*ày<ÏŽSžç‘68©q.QàðS8Î>‹„ëÜP_äÌ)éÏZV¿uË®ó æŸ/àåºQ™‡¥n—]`bRÅ‘j™ÈȦg˜ë> î–ãa'€s’ÂH~F£³Ö¬¦´hK&M™Ír¹ÃÀ3fÎÿ¶¿´iwCcqtUþ¿ÜRåý^³ÚÙ_9ˆÍv–ýýh\Àâ8÷ë«ÓþêǵOîóDÝUk¹ƒÍQ¦DÈîûË Q@pájôùè;½>éJ×sÿ`y¶×Wr¥ò×n¬h[·«Ù¦\mõG)Å Kç/¿sµf÷_=P½û‰‡BŽþ©‘÷zrâÌ/Ÿ?ð·;ƽ_Ù`VÇÑVIØÖr‚†Òe`)Á¼_',a!$ãì K¹0‡^;FNÌœÿïßyÇϽ `yø&X†ŠÍ_ÛnÑóljù›«Ù™Í""WÒ“ù¾—g¶ýÅÿ~sOå,)+«6•?³6äžôŒu=wnèÍ<]¼þKåC ;ë×n­†Æ¦å‰–(T¡1SxÂ*!I‰¸caßlØ1xÚ±8ôö„ÆÖÀÊ6Ä$):À•ïÛ¿€”ÙŸµ´eßÞ½›Ò›Ÿ…”»Ëuc>-D÷7aU*Þ\mm0_‚V`Èö52è±XO”üpàÀÓ±‰s¿;?ÓýRïÐëÿp „p*M‘,Ã(²Dc`*×[jwTY«¿P^¿íP}ýÞ'7Ø ÁƒÑâµîÃOœE–Ê/—\k~Z×¶oèl1¤…ØOÒûr©”¹á®a{ÛýuÖKU¬BXp °¹4ˆ­U1vܧמ*}d‡3øØö€$0D‘"EJx†°<«€# CHm1hG“…ÙX­Cs•­ŠÁ}?‘ßF"𭚀ÞÖz°]4Bc™~µ½?EQ0á7ÀyñÍ‘Æ}OíZg‹°ËCšlq´–S&Ñã“•y6,³Z5š‡^ËàUAÅó„ã8°l¢=1+t®ÿè 2´¾rbþ–²æûv·n0ÿÕvaD1*úgz¼†ÊM•µÆÉ¼"¼QC`åð< žgÁq ˜ª¿Þ‰(âÞñYȲ9&?Ëey PloèØÒÙjºÁüó5÷üß«‡gü㉢úÎRcQÇoj÷çìe¯âëíEâ'ö‚\0ËŽ5†òÖZ*Xת¯)>IïRŠËN^v±7ïo¬1ùozõ×=¦ÞÉs!±ò$ëä',“½õ¾Îær†rìõ›’î–»BLÜq™¿øÚ¸­a{}ƒ%”qöWÈTxIƒ2‚1ÀÕ÷ZËn Z[ÀiÕ_QYã¶mûVh~®¶÷7á×!æ¹êá5fÕÙu•úÐMýõŽG!û§æd9æAðH¦?–l‚µ±úŽúë½ÿ\þˆTÊüÐÉ{Û}õe‚KòzÃÙÈH•sC>en¬§yN~2ÀЗl~ Ã¤%(1]ÏŽ…¦¼åç¯zõÔyéѲ¦ÎÆu¶h^þŸk*œ*gG‚ŠwüìiäÑüX‘€”¹¿¹¤~çÎÝ­¦U÷þ—ë#*ˆqQ :.ù4ö{µ1°ª†g¦îïÄ‚ˆpT’Ý/}Œ ¿ýå.å¯ÅV»¥íÎæôôŠJè‹`Þ+Â–àÆ©×§F-CÊL ±j€b ³Â4ùªWÏÔÇÓÅëöWê¸t¼Bø‚, ÛÛﺄo¦oÀVáÿKÀ Ö´¦½„Vãú #Ž8ÎŽñAï¢4éašñD|ó áÏ|bÌV©Æ"{u•`´—@m54tÖƒ)b×,àÒ<'Ï]ú`¤dýÝ E!6ß·œOô€wºåùᮥÞÖæg6(Y{dJpÏÆ('"ÞÙa×è¹³s½Gº¢žé9$L,†Ä4“&¿«`Ð×UÏí~âÁÁù½»m:ž¿«6À ã8/¿qµiß“»kÍîU<+EoXÆŒ‡ÂqáÅXEþO%âÁ…Ñá#ß{paø]IŽ…ÃÉ‹zè¬Äøq‘¦Œ¥µ9|xaôâÀ‘§?Tikj:Ÿ|Èú“T\1ïŸî¾¤±TQNmJu³+öþV]ý G úÆfãA÷,‹VµœŽ£”R’X—çšï?ú~”’,%Ó‚Kò;KOAÂ:¼r<ì¸òö†§Îþçó¥m÷·xÆÎ8Ë6º§Të£Ì'|ûËÍÿÝîevðô)$üUæ$- …„´.J¶‹.ÓI„‰‰H æwÌNtý⣩ö‹UΈñ#Fµ»)ÕŸ(SôM˘ëù=$ëÿÕ€¿F@.°ùHòû2!DA‚ˆ€ÈÔÉ_å5–Š#âW-7)ê{×…˜2®ºúsù%¼pÂCiÔ½˜îÀ*Óß’Ü”ý/N‹Äòù2VkX¿îÀß=no½÷€U+’­Õ”ÝT!£ÄÈ^[ãÃqnX÷Ãóp€ ãq¼×³(9$¦/ôŽùÍÏç/¾ú'¥4¯þߊÏx+ ®-°V!±€Ñ®2XëÊÛ¿y ´éÎ=Z{KY-£²Ä æˆQ'ƒ–#¡¨B~QY ÈÔ$$S”°khÜ9váœãüoß 9¯ !±xÒ öI¬÷–¤m®HÛcÀª´¥nL¥• +è• ãx Ç"!1âq‹a·+ìšv¼v ’äF"ßûp=%â=Ÿ ×n– b©ó´´Âsùî‚„O‹H€\KAú¦n·ùT H»ñu2R÷é{Œ–öQÜ¢¥ó·€LB!·hÆû}Öø´ås¿qòÜî¸Ýò¹'àÿi…x4¿˜ÁêIEND®B`‚x2goclient-4.0.1.1/icons/64x64/resolution.png0000644000000000000000000000341512214040350015430 0ustar ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î<ŠIDATxœíš{lTUÇ?çÞ¹G2­}P`¤”Uø"Êåaª«5Æ5ÙU1ÆM¶Ñ]²FðEÄkÖ%üa`Äd7ºn(Ä6H,ë²<ÖBkKÊÌô5}Ìtfî½gÿh¥öÞqÚÒ¹²Ì'™dî9çÞûý}çwιçÜRJ.g§8MΧ8MΧ8MΧ8MΧ8MΧ8˪pÙoÜ]SÄó@0ß®Ý%€œj¹nç_æÄG6#CƒÁïfGcÖ8ˆÈ[Gš0ª þòÿoÁ,Œ-«1 * bœApßÈ"+ægAŠ3H®Yô俵áEV\ª^&ÿ´+Õá—ý4˜3ÀiN“3ÀiN“3ÀiN“ñœ_àU(âB1™z&Œ”’p·A$jdÔþ; X4ÛKõŠbf•äMX\6iiKòçm8MÛ.m¸íš|ÞzlÚ%<À‹5Þ|´œŸü芴íl3@S««J°ËøU›ÎRßG7`íý¥Üy]ú•C1n¬ðNè:ÏÝ]Ìç_õ‘4¬ßÚf@EY…ùª]5Ñ„I<)1ÌÉy¹í7©~ï­íšÐuù*eöl›Ó‹†MM¡}©ƒJ,a¦ÔnŠMDç(šÃ L6ìjçdkœÕU¥¸µñ À~}O·5`xêoÙÛÉîã½¶Ù²·“-{;Ç%.>=ÚKs8Éú‡§R6el‹Õƒ Q¾lê·­¿džêÏÅÙºol&7<ÿ· éþ‘‘ŸÊÔ@jÓ¶}°WòU<ãLO;ú’®Á¹<ß­ðÛåÅ,[àÏøü¶g·¶›Ì(Ò8Ó‘´l—‘Õ+Š©^QœRöèÆoh8Ÿ¨_^|Ñg]Gzxù£•3=¬¹¿Œò@æ©K˜<÷þy‚›æøð{[¾·]À­ žºëJ6þjú˜‚7MXóAúsqf—åñêƒe&9m¯ðèƒAÛu]¿ð=‰ öe,2æ|Â!{ V¼³/Nm}’€O°úç§Ï†øâ¤ý ek@AžA8l?è躛o¨»»›p8³gïÉdÏI;Žih*¬º5F²/Æë{òè‹c´£¹CA7 }(¯B=‚¯Ûª"˜Yh¦9ûâ1rQvôœÊ‡G4„€_ߢ3·TáíZ- Þ?†aX YZ)8vÆdy¥‡iEÚ¤œ®îO;º8|:IWaýC%ú]T¿&Øm2£ÈÅK+Kðz„4·Ù¯(m h %HâÃëNØ {á^7Bdg ~¼u_;Žô¡©‚מJE¹—õ5a޵ÄÉw+üñ‘r ýKàö^ƒ¦ÐÐèm×SFi+Î3tC²n[oÁӛϲ¿>eOð³QñŽ\*.~¡¡B¢™?¼Ü›§PR Ún‘M6º!9ßi`H‰Ï­PâWÑ¥¤µSÇ4(+P‘Úz ¢ñ‘d¢O`VÖ¾2§1¥Ôj­|ËšS7 Ä»Hqõd•5„üJ"ûâå¹GWÙlˆ—PnÖOÍS¤:Ej–²G©D”(˜Ñ‹)§!Ä,ù_¤½p1EÒƉ®¹õr-–Ïè¶\.|o÷²EΧ8MΧ8MΧ8MΧ8MΧ8MΧ8Íÿòÿ=–·è;)IEND®B`‚x2goclient-4.0.1.1/icons/64x64/session.png0000644000000000000000000000505612214040350014713 0ustar ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î< «IDATxœí™ypUÕÇ?¿»¼5û’Á€@1C­@D)3u;TI«Ý¢8í(Z« Ð:µD¬X§Û¢‚¸v H".LeË È²'/y/Ë[îé ð’°ÎÍŒùΜ7sïïüÎùþ¾ïÜsçwE)Å·šÝìÆ€v°ØMÀn `7»1 €ÝìÆ€v°ØMÀn `7»aØMàRŸ~ztépeˆñ”^˜ÞüuÇ”þ\¹þ÷ÇÓCZxŽˆ\…Rc€ÀÕ¥QÁw5#üÞŽÂÑå—:G¿`êâCC"ã1QÜ ¸ÎÞä#â4E¯i Ó:Ï]@†¬i ©Ç?}:ûd_çêWä磟SöG÷NuÝ•ÞÆ߉‰ÏL1ÉH6q;Îo[µMŠ4³óP€]‡š EºFØÔ䙢E#)ÅEƒë7Œ_|Ðv®~¨É9ž¦û7"ÍÑ©ŸÕAW“Îþg¼²¥–M{ý(I1úö@kó-E…cý½ÍÛ/Èûí)7Þ¶ ÀºFÓ‹s†Jn–+Àסè@€cÕAŽW9Q 3Ù$+ÍÁˆT7ŒóïÑ(>ÜLᛕø[-½úÑú*cü®eÃZzšÛvòóÑO.ÛL3uixuÞ0çé·¥`{I€ö4Òì£Û!Ü21Žë¯ô¢ œ¬ ñÐê3”ׇÈJ1‹×ÎÏÌëÉ×vò–ÍVšT¿þ›Œ¸ái¦Ó×áíÏ©i _ÒX)q3¿G¼GçXU¹«NÓ´ŸéZöÊ=CîÎÇV&/.ÓÂrH[xû ÿÞ”“kY°õ€Ÿú@䲯LôêLƒ¦ÁÖý~ ÖUãÒ¬±ƒ¼C–ÏM«ìÚÿ²!„EȬ@õ¸mÒT+­CÜ’Yë–dCÚ|†ãuù«%)ÆP³.a.áM)Ò½úÞ›rcrŽ×‰÷èçžéÞ [h"zçñxMi¦ášÏù´¬Eï¾AÑ+ oaÙÚwa‰jt¹î²ÿ~m¨•s‡›å +š{ÿç•‚ÿìõóÞ>ÊëˆY)&³¦Ä“—ã9×/Á£cÂá3mÌ~ù§¦îº!6~ε)MÑãuZiñÆ-U¾pt¦Õ+¤C éø‘èkÎ]‹H'?t ~œ— ²\#LCHë}Q¬«dëþö7›.´E,ÅѪ óÙwª¹}R|ý÷¦$F÷ÏIw2j°ƒÒŠ 46¨€?ô(@’ÇXPå ¯Lô꬟‰Û!QAH§ ìÀû{šØºßOœ[·Ü†6»¡åèÚØÚaº/A~©Ë×ïö%æåx*¦äxGûM㥴"HyCäNºÐé4ø·_]•žhž®Dذۇ©·?_º&hZ{ò!J©Ën–e]vÛ°»€¼ÑÞß^ù¢ÂiáWŒjÛ¹$ûÕØóÖ‹D"D·‰ÃÛu•/<¢«¨¬·ˆÅl`óëÛë[NŒÓþD @)¡´Ò…ˆâú+¬W»Ú­ˆ¼©ëêéŠúð’’’N6@u­ž®~Ô6>’¹%#ÙÜÓ‚:0MÓ41 Ã0°0x~›“Û] º®wÛüA¥E.Vlw‚hhÚù&"ݶ‹H€©)”[ÚÒ»ZÅP±†®B]mñÇ©†V¡ºº:&ÚÖíŽSQ«~¦‰ØVªÉm Žk'§”bÃn‹’Êöúý'w]£Ÿ³Em@ñÜÖg|Â''ÝÌsa€=å ÝÝWJ1*ö•Cñµä¶Il޶kí(ri­.—«Ó8‘`G°ø|¾Pjjê9¿¡üçOlðz½x<žNÍëõv{ÿ¬-úú»Ù1Ì›ƒ¦ 5þÈ]JÉ.AŠ€; ]‚¿»5–‘ƒ<®®c4´µo‚ £µkœ½¦Â3—žX^ÙšŸ;ÜMNº#òF±Oá°ò;sñ¥¡¶pF1puþ”xuëÄ8™ÿZ9õn‡¶Û²ZfŽõO-(l‰; ±Þz(SK޽ð‘éí_ïî~YeˆŸ5r¸"ˆ¡ Wurû¤XÇëÝö_þïz6~îçÆ ž/žœ•~uŸ¸êѽ޴øØÊ@›åí¸e¡¸n×ÓÙ»&?Q:VÓeàˆqiâoµHŠÑwZ™VT8üœÚyO}¥fMëmº{ZblôƒLbÝßlmvæŸSé 3÷†Ä{çLOúk´í¢‡¡Ÿùj~cKd9€ˆ,Û¹dd§SÕ”‚²"< 0,Éüô`£ÿºý…cƒÑ}®]Xš­Àì:¾×©Y/ÍÊâìsz)Øv0Àk+H3"ï<šå:åÚ•¾-ôÕK ›€mÊï(èjÏ8œ½TàEà9Š3óº°ó©QeJÉÝÀ…úòlCq4Ðfi®>sÚ².?Èž±+7×0q„ûŸt l>wT‚öÙ?ÉKØÿÀMÉãÿŸã¯ÚRÇêëIO4Ú&dâ g]øçØúadײa-šÆ=€ZWÜ0ê‹£-Muê#¶°úãz4á©Îûº úÁ—¡‹³‹µR)\¼VîÚô¥¿Çú]_ñÑ~?‹×·×>®Êr­ZúóÁ¯õÔ×v†u¿Rò²R˜‹Þªtý½¨¾ÑºŒ'3Q¼¼©–…ë*i )²RÌw_úÕÐûzó±½&¼‚²GþÈ x£mö´Dç͹±˜FïçKÁGûü¬ÚRGy}TF’ã™=˜qÁ¦ÝýJ€¼‚²™ˆ,5 Þ­gLˆuœý0’™bbèBMc„Óu!Š4óÉáæs•¤X·v"ÐfÍÞ±8»¨/óõ; ½T~2§ìûâã4å«`„%»´‘«U!}~©öK¢qmÁ‘ë•h“\!íGGu˜ÊÎ(Ø¡¡½»ã©‡.gü~/À7~ñ°ØMÀn `7»1 €ÝìÆ€v°ØMÀn `7»1 €ÝìÆ·^€ÿùì)ÙÚÈá1IEND®B`‚x2goclient-4.0.1.1/icons/64x64/unity.png0000644000000000000000000001611112214040350014372 0ustar ‰PNG  IHDR@@úù­bKGDÿÿÿÿÿÿ X÷Ü pHYsHHFÉk> vpAg@@êóø` IDATxÚíg|”ÅÚ‡¯çÙ–M6=!!@’@è%Dª `@JP@ÎQ" *ˆX±€T©ŠÒQ¤JP¡B …$¤÷žlv³eÞçñ9 -Èáú’ßoçž¹ï¹çŸIæÙyf$!„‚¿n"P Qôîל'!¿{ìé%PœœòtN ”~”–7 Ê_ÍœR< ªC*¶Uõ³É`0}Ö+æ}–ñÿ¯Å×”µ3Ô[À.°–ʱ/Øo÷zÆå 8Mðý²V"Ôòo²Æ;Ü[5Éõ®í2—öî’TÓé¸]¤VÛÎ|!Lj½Î¨…Te¤66ÒfþÒ'v9äÔI΃i¨~X3¿lY"Ð:DDÅ¢ Ä b‡ðöˆÑ|œa9AdŠ“"åÿyTHm¤W¤^À\Éà ­’zK) EÊŸI® yÈ-åé Ð©Ã•CÁ©±Ÿ·G-¨Ü~X#{ðžÓAZ µf5•} €áeæƒ+FÖ§MS-áB~”àŸñáÛŽŸèißÿ7ª;–-Ò7s¼ñeÓ'`er²,ÑSÌj €82ïcÀmx•> ¯R RD€"O}Qi u[ekpp®öç°¥OFkøIÝLM=@c´ïc,“l9Tó¨1˜Þ1 ‘?#vKZˆsØrð„#d¹žÎ»ÒŒSËüôþ`~²jAõdãÄ6á[Óéºu+U•ë@-tcl¦€ý:)®Ù° ÷?Zƒÿ„'¢›ç€íp·Ïí?6K_H>÷_÷MÖÍæg-g„(ú<á¹ìpùéZïN¶MÐBUzALÙ20íÑ¿lÜ@ 1÷;÷¹@±Y±lBœ7ØÇoûhôy¿Ú~>Ou^ÓäG°™íüŒÝÙû'„{.ãgeuôG„H{â(—¿Ëž›[E_%>–ÝŒneáúÉœåìýêvÍ#×WöPä]õNûÀgdG—à*ü*â@h$¸d|ã5¤Nòd)éÞ â^`ë„(u¿z>/;ï^y& ’Çý´êü¯PÖ'}Qþ~°|fʶ̼çyþÛ`ä4À.<¤f¶¾u èÒÀ íàÎÌ6¶eŠ­‹úÂÝÂ]€˜i}M ‘óJtxJÄ'mïÕ2ÜŽ+ã  È=[²Äç âóšHñßeµMˆj¸¾Ýp½W 4\×wY»Žà·âqB–öG×1ö#îžîX¢‘¥¯u¬YÁ§S®èáRĦÇŽAæé¨9 Ù` .ËÒ¬é´þý‚åùòjpNñÇc*ˆ = õïµ·Åó`ÛÌíG‡®w.ùv+Š,ëi1SˆÌçOŽN †‹[7Y ndz⢠ü".Y'X‡Aqa’OŽ3ÄMܲúx_¸²p·Ã™0ÐOÎ_QöÒÏÝÊÛ¨³ŽuB䌛–q [Nˆ…¬9Qa‰û¡zVåƒM§ïáAØŠâ4»%s÷CÜè­ë£dÝT}•0ö­ª„ÐhFÚjÿúŒð—g€Ò—RßÉk ñ·Íj™‹OJ û zVåÚGïÓ„Fô€’cWëæ6‡„;ªOÖ†ôࣣ/7Ë/ÕSÌ“þúŒpË0v*I®Œ"1tWÄ™o Í|äÒ¥³`H-y¦ò­šNÏÿÂÖê&>‡¢ŸµY¯C\ç­kO…ܧ£ŸOé lç¶ßºn*ÑÕò‰u³iÒ‘—ÎArÌ~èb¨,Í]2©¦Óñ¿‹e‚)Å2òÆjÒ?¸IÛ’£’ ":{hqÖ­·sÓU@qí+;sÚ q´éŒÜÍäÌ?%¥X#Í{,¥5†GüݘÚ}{B“ÓÏÖëØ š4vX'gP(Õ¥êÆÿÜp0ë ;L#…ˆ÷ÚþMT(ZŸ48'æÑÀ?¨T¾›»±D Iìk=Šò¯¼”c{óz7@AÃK¦ç@j÷Ãc¿ƒSÉùЍšîæ#n„ðµjÅ6(³¤ÛøBüêm®'΀¥‰q°i÷çøë–ÿùZ6.o«ÿ‰Ð/.XWVø“Ã75ÝÍGÜ ctÙ½d¬;òãb{§ŸOZâ~½ýu3@áW ³ÆCæ 'g&΀êy•5Ý­GüNq ªì Ë…¸œíáQ¡ [~°î¹~&¸&€U4g‚ñêI'·Cõšòw«ž²¯eÿW¨^PYiè Y†SM›BéÙ´yùºëí~@µù°ªîöÓá¸Ø` Чkº1ùA@ ´lpFw§þŽó¬á ø>ÓÕ?¤$ì(ϹÞN_Up°ÌâOnÏŠš•Ny>¥Ûî]þ=¦7µó™ uö´ÛÝh:Ø–»}à°õz»ªù…/—ûCFö‰œøPÈzáõ«y ˆU}¯,ÇÅÞÝz€]ŠGªóP·Çæ8˜Jô©ÆÎPÐýòæŒyPµ«pIùÇ †‰­¢Eu‘E²:€tAî,ǃ´Cz^ ©Žl‘2ÎF©V‚ë— K¼–ƒ·ÇCÁËÁ’kÔ™†ÁZ¬¨|Ä1@¼ Šmª”_ûrót¯kýç(Båæ`“è2N× ªµž†qøá'„2¯ßÅÒÀZjù‡ePL wáo‘Ó4¿·=t ?Óª¤MÊ‹Šú×Û•”§ Ï}®þ“•9yÑ÷òA£ýɺ-ÝFƒÏÉ.Mϧ†¾m=.\oWº,­e¾ʤ̅[!wî>º†µ—9çA×nÓÿ#Ì9Æ^¦vPõDahE ¨ë:µ?ƒ6Ñù¢®/üº{¶Û–>Ûö\xÊB°¼aÚm~¹>uºõ ¨ª*WñÇvv8ÕÄHjƒ´@j-ùg·—êû‚ÝU­Ó04(î\ùdçŸÙ{%äIÊ>Ѝ=§õÐëàøà9µ·CåùÙeûAÕÖöuM¨ŸÒ#¶E7ðýؼÀ" Z$‹rP–vHÉÏmb¥u¸¸DòÁÝH´âzò¨uº%Úy *ÊúëŸI«lí|m´BH*y“ü8°ƒQÜ;(žTý ÕjÛÙ6a Ô=gó'›.Õ­liV¡S]P$M€*P,RµW,›ýÎít_@lêFùh$¤-,MYRS®‡öé“z÷‹‚ þ_ ;Eµâûf5 ¥»Í€M7çïu/‚õ'ËgÖµ ŸUì“g°— ZX‹¬#!-2R #~q*¬zó^Ë!0.-?\õ3xF6ÿÂ?lœéÜÀmLТzý¡’üi±€ÒIÛQ½<¬ÍZù\†¢„Dÿ¬ `ÿaÝ™®M@YZ™6) ›HUÀG÷.ùâMKº5*ZeO,®†¢W’Zçüëkñ'èY_š}%êÿÒ«]Ës ¢²WL€_nÁÁODð&TnÊïRÚ óò³¦ü®üGB*–eo.:z¯¼¯K£À³m‹e~ mÅ‘^—Þu¹n³Í$pîâÕs+œ|óGŸ=Á別^ @YþjöÌb{iVñ¯eBK×tzÿ–X±°½Pùi^xi¨Ñk‚tIž áöö`ý*–å^)I„â)?ä~uŸ!¯ÓÅïRǃáJɶʕ`,,m¯×€l~U¿ÃX â˜øP|WÓi{„ie[Ãz°¼lJ³¬Ý ÏOœÆ]¶û*G@õ¶6Y-@ÕÑ.V3¬LM-‡ Äýêþ¼d(tKh–yRzÜú¸ ÞQ÷ H]uxþE%ˆ—¬§D˜Âô®Æ-»Œ¦W€ËläXMwÿú}…uÊ­P0 ®NÆRpêé÷¢‡´Î»¡×ih¹uLEO7¨×¤ýÄÀË aèwç7,]9uÏ-N™¶ËÝÞsŠ™GÕÈ{úRR,Ç6΀ålõ s9ÈTÈ#åñ€o\jºû>UßûWŽ€ØAߟ8ºŠó’Gæ ¹Þ®p{b~öw3ý[ïÈ:`Ú¦ïnüúZyÊÓ‡²/|mŽ¿Ÿ Æä²×ô™`ŠÖG·ÀÕï…Çü ©y‡›Ä.cã²…U{A,¶Œ·sû¦ßíÏ0·2t5„ ûœÕ%«¡¼(û…âç oMLTjèë+ë¸ÐOÇ+’ä\PªŽÙÕ‹ÁÒÉô¡©.+B8RÓi~p©:Y4²¼)œg5? 7Z²œ¾ì–¡._ÈØ Ô'ð÷åWÊö8ŸMýù.‹"ã•Ù1P|*9%g9È ŠH “i\E±úò8uôíåÑ솹«Ö‚Ë› ?óU' Ï•ÿIò>¿sj>Åt•*GÛºš/@VÏÔ­µQ‚ô_H£k:½ø#ÂÙê'ƒ¥©§Y€¥³é1³Ôí—ÚÏ‘ÍßñÝ~»¿Óìcp™Q¿·g6džŠ:¿ò:ÆlJûâw >ÅRi,¨ëè”6£A©]ïnŸåÑY›Š× ñrMwû7Ã²ÌøŠy TÄæv)ÝÖ8Kët(›œQ0 òjméˆ4Kz´ä¡Ez_Ê—V€*T[®Þv=9†€ÒE`ãÕ¤tÙ*ù "¦šûw i¥bÜœ"ý&yx4W‘,WJ’ì9¦ùj¿xPôÔtU5B™Ês÷56›ÿ¬[ÓIz˜QLUù*fƒg×sü;^û\Ö$8î´}G’œ#ý.×Ò¼C9@q ,ï„ãR9€!wÞÜ#þ€Wt /S UîÂæ¯ù]¼VüÛ–0¯ïÛ¹5šŠHÕN¥å.8. ™\ ›‹"íÆfÒ*©‹¤ù e¦RUÓÙzøæK¾ÒQP ]ž?ÔÞ×ü+¿Å×Ê@@Qø•VÇAyÁf­ªË;¶3[,Oƒ¥¾é²eþ P+»H@é¨õQ¥Üró¸E”K´Õ¡ÞÒ°A]A5['Ùô»¶ÿá78éý’jÍçÍ {.ÅJÕ(åºÛwl=`RX†¥VõRÓ ÛÉJ¡86¯9nµ;PÓézøPw¶[«y|ºZ›L¿¾üÚ‹!Ý™ËpI ØÔÛ¶µj¡{ÂfÊ_ðôÌÓŒÓZ0M¯ÒšþËQ1ŠÇ4Ý•¯ƒnsí…Îão½ýGüwäUfÅpXãýl-_ðÊm3£A÷?±ûãþg»ïo–Iõ¦¸¹@©RœþëcÊô9Pu¬È¥\}c;ek›Eê3àü¾ßG»‘ïÚΓuzhôÒSé­Wƒb„&]õ'Gé^'u„ý:íZ £õZ°ìô£ÝÒ¿€¡qñŠÊÚ /Ê/.3ߨNuÎܪ‚_«— ê2]ºM“šNßßÅVUr8÷÷õö8¾¿<Þ®© hÃXú_¿÷ñú×Ã'’Á2Iòÿ¼§óàöB`X7P~¤±ªo=ʶù=Jw@™_†sÁÀÛIMåÇ¥`WXëKGøÛt?ÚüÑLpÛØ}éyÐé hôö€ôÐQ ¹à8Éöàíox>€ö Ë‹ºËt6¢Yû—À.Åóç-C ½y Uý z”M…bKÒc9=Á˜UQåø'ï©{PIÒ¼ãhkA;:··×­ {õ®étþ}P{ëÞÔ‚Úë[¶¨_ÞŸt ê‚âÐäÌÜiŸš6êÆöò“Êo!àšÐh”Woh7ìõ¯ûî¿vwkfÅQէʆ€M©sÿÿ+ȯ*ålp™Ý`çü°x»0P›šhºù±q7Ý£ªîe蘆“¤ÀÌÛBÇ QþfÖ·EnrüP|˜ÏFTko\¿Ø.¹2g¤]>ÒõÒBp÷n<®Þ%!4.‹mƒ`#úÑZ’»4*•¢Î̶ϸƒí.Iö©àûF—fM¾„¢ƒ‰?da_ñ•Š9`©U=ß¼ Ä÷¢“øïªÊ”o²Z›ªÚjì>°¹šÝ/Ù÷ƒM"½'ƒ¹Ö/ŽÑ5=|wŽÃ‚zCÝúAÃcOmj“ îAOÕëtëõoy“²KHý!žC!¨dÀØÐŽPU^ôYÅ\Èíb·ÔY`f9hÝt}=£¹ì'}(dM=¹0q*¸'w«7üüdiËYBH¿(åf¿BcÂi#IòZe¥¢ ¸Ëêè…p°¢öPÙ5RiO0åVºw‚Õß\m ]XÒEcùPÌSïP>Ê8M°JÊ÷´CÕõAõ³­£f!ÈoªF+–×ü… ·‹Ýîm·‚ï±®o…Lßy]ú…´ÅÍSª7o½_ù¬`³Ÿ¾¨º©I½÷×?×.&~»=r:öJ|6«øÚ9vDi±©V½µÆ„Ìõ}BÚ íäÞÑ=‚"@¶ªÌÊ΀”¶ºz(o…Ña+/L„¸&ÛVFUÕtT ë|Qwüœ×7 Ml‡nìô 8§5xÞ3ö>œúŸcË}Óº\m2 £L}œKü‡yži¿´Sjw}=³Â 6Mƒ¼¬˜v©-àü¢5Ÿü\—'mQŸxJ^J“{VæãËü¸Ãä$‹X$„åÓjS¾U_·«èÕe†s÷=šëÐØ9¸Ûî†zs›TÝ"ê…–óÜ;=ïà}Ž;>-¼*°`my-!’zí_yîCˆ¹Í3*ŠÛ]©Ìëç–«ÖKâ8B>)ç€] ûe‡þPwzØúÀCàÕ©MD€8OñSÖêÚïÜú;Œî›C ˜ ¹ªÚÒ`…‡Ü ¨KWšý‰òÿ)^ÄVsŠ!¯º TO©L3¼¦©•ñÆÑ`Rö†þS0)™Q¹ ªº-ªHƒª“…e¡ä“Ôáù/@Žê\ýäYPú}jAþ×7ËÆÝGûó\ êÍì09È‚ › ž£š_õͶH;$ÕíÏœwí¾Ã´â¡'„HyþˆYñm·.ŽÚ³âdÌ‹¡ºÄü_n‘¿Tô–û€]J­.N/C­Ò&iõâÁ>¬ÎÛ®/ƒÍçaºjPíѾ¢ž ŠoµíÕó@Òi*p‚fL«—y‚å‹,笕P=¸2ßà ÆwK~Õ/Ã{¥{ô‹ êjÑør5TîÊWòàÝvA཮êà§Am²×ßÊ“»»Mßj]m~ܲWˆÒS©ó³ 1qWÚéH9pË…c`¨[ܳ¢TGT~hôk}sË8 „«äݱû;G-H¯HñÒ P¾n“ªõVÝY%¸u ~²nK*ØÞ~x-ikmØTi¶9ê@3žûÓUÌ}¢ÆðGÄaëÑAˆ —ì^Åõ eüéüH Ùÿι(›ž_Ô ¬µ«›™e°Ì3y™¿kši«E "LLù@:Ǹ|WBÒ ³Ÿ /Qú+@®ÌRôÅvu_åP5°¡usC³„ú{{ù´0€WEëòú¼X¬ÔuhC›ç×'€ë0cÀ,NÂ'Èß;3mä|w®SÊ"ÈxþÛ”ÎP0óR¯ôN`p+±T怵ƒåEËÇ ž³îÇ ØÉ±8#–°Èä$ €Ot@ ÔŸV@W>åy&JùÒà€|TêÊ$›ÇÕ¹àô¡Ï<÷ð(má«ÏÅÍÇú„ÚQ­&ûÏÍHÇvnÎߌ_‘ª½E*V Q>,½Oá(·ÉjZ¸Œñ£ Ál®ZZ=éß×ÇK UȹR(ZªG(íAÝÐn«ÍЪ\7Ú§€£Õ{®;`U;ÊÙžª±Šä¿Ïߌÿ±ñ‰ÑÄ7õ%tEXtdate:create2012-06-06T22:37:01+02:00l;%tEXtdate:modify2010-11-05T14:17:07+01:00À—É[tEXtsvg:base-urifile:///home/mike/MyDocuments/4projects/x2go-upstream/x2goclient/svg/unity.svgÉ·K|IEND®B`‚x2goclient-4.0.1.1/icons/64x64/x2goclient.png0000644000000000000000000001566712214040350015317 0ustar ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î<tEXtAuthorHeinz-M. GraesingóQBtEXtCreation Time12.06.20071¢"tEXtSourcehttp://www.x2go.org/artwork²rÛPtEXtCopyrightCC Attribution-NoDerivs http://creativecommons.org/licenses/by-nd/3.0/e‚Š,bIDATxœÝ›Y°dřߙ'Ï©ín}ûÞÞièVß^¡é„„¡Å" ‚’0'l‡ÇŽðüN„ÂöƒCvÈ~²áelc&bF£•1’BÍ¢†Þ 5ˆ¥¡÷îÛ·ïRUgÉ<'ÓyªnÕ]@Û‹'#òfÕ©[§òûç·ßÎ9vî|8šÙ ç ”«@Äß·Qä&‚渫L¿ñÆw4€pÎqÕU×F®‘7rçÚ¿Y=6¼v°Q“BJ„H)@çZg.u]ö|þQ×ßèÿ—½^îò3„èîI.ØëÔ•i÷Îû§.ÿÉ#œ~½ù‹Ó§¿“v<m’·>pçÖ§sDõ‘©;?sÇàªñ±š,7úûÎè¬=C”Pâþ{ÖZ&'§’WŠ·lZ?*åþíúî=/Ÿk¾ VïþÒªû?µñèÊ‘Á5<ø°Ø±õZÙ¨W ~Ä[Ö–kI´ëY{‡è!^R”SúõwyQÐŽSÞ|ûd>uáTðÞÉS—ÿÃ_ül§²J ­\[^ueçÄucCõß釬ƒÂö¯Öy‚;k‡öï%^t°” ¿¡R 6رõõ15±yÓ˜UjHNGõZEÞuçþázµò;ž[OtgvˆïpA—–R„K¹îá‚’ø@‚’¿=Bõ*7íÝW¯ª\…­(4Xëƒà7gûÎIçv1…uä…Ã:Böq@Gt¨= ôr@ïéŠ ”üÍõ… ÆÇWÖæ®\ðï{ÑqΑ¦)Y–a­ÃZ‹s®<5×7r+°V;(¬ / /À&wh“iònÃUÖ27ÛÂZÿ›=ô—{(OVôŸ¾ `åÊ"Kÿ¾`°´[M\Qt÷´ÜBP­F45z•»êý§,Ëxå•C¼öÚq¦§g‰ã„$IIS1š¢(pÎ!$BH©R ”BJEH‚ @ •"N2îûGÊ䥋~æ1œ ¥ô¦T áM zÌW $d:åGþãã+Q²ä: íf‹oýõ7ñzKtï'K³éWÊ=Ifg›|õ«_êçˆÞ7•J…}ûö²mÛiš¡µ&Ë2²L÷½nųs1í$£ÝNHRM–f$©&׆Xœ³8[àœ¡R«RåŽ0” 4ª¬*Aó€õÎÞkÍf»ïŸ!5åžðÂyöÏrGQ8Ö­gýú5T«þ‚ûž?‰©©i¦§çYÅ‚!¥$ C„T*êõ:ÖZ¬µ˜Üb ‡ÉAç]€1S²¾É-™)È2C–ÒÌ AH06`lí&®¿ûŸÒœkqøç?aËUŠñ±%YÖ9Ç~ò·Üy·|îêƒ#€ÀPH¨Öyð«DsvŽãGßdlT²eËÕÝ{$IÊ£þœ»îú»wïæÖ[of` —g–@kÍÑ£Ç8zôU¦¦¦h6[´Û1Y–bLáEÀ ”òhwX^Jå¯A@†JÒl¥¼wâM*õªlܼƒ[ï{~ø}ÆÇ–¤ŸwÞ½À­÷~M×n¢Z‰0\^Z 6€PJjƒ# Q©VøÞ7¿ÝÀ“O¾ÈÃß˦MëQJu]–¢(âÆ÷°cÇvŠÂvO>Ó†VœÑN4Iªi'Iš“jCœhâ$£ÕlÓnÇÄIJšiL–aZ†Ühœuê,ÎZ¤tL^8þÏ<Èõûïãí£±}bõ"‚@"Â:¹Sdù¼蜾uà‚R‘'êõj÷û|p–={v³qãÚ.ñKå?)‡7[RU¨Ô"DhQUG½pd¹CçŽ4ËIM’iÒΚfd©!Ë4Y–’Æ:K0:cvÆpèÙŸ2qó~fÄUdYL½ôýîUVòꉷ^9F½V%(OÝ:¿vý çÍøÌlÂ5›ÖP–C‡ßæŸÿÉ?$Š>:¨[RŽ9ÆÔԚͭVLœÄd™¦°98gÿ0T¨ #ÂH…!Q¢”B…Šš  j î(9¯ œKxýÕC\µsG~—ÛnÞØ·±(R\>ù³×ï!«}Ú¿÷ô^Ö¾ð wß~Ï=w„{ïÿ,CCw¾-:·dÆ’jKf©)ˆSíÙ>Õ$åšf†$ÉHKå׊Ò$&›ÍÐY†Ñ6OpE޵9ÂY¢0 ²Ò!£:fxY6»ˆ &®bòâµa",{úW.MS ÚDQÈôô,ÑÀ«×¬¢p’Üz‹±ÜXò#ç…u^ÃÛRö¬À‰'ÈÐÏ !T¡*DÈ¨ŽŒ‘QšŸABDDä. 5=w…sgN±zó ¼ñöÅEûØ|íjN|†¹¹6:÷fPç ‹ùÙl%<ðŸºu'Ï<û*×ï½VºÖé£|¤%¡#GŽqéòšs-ší˜4MÉsC‘ç8W ¥ +¨0$T!*R„*¤R‰ˆBE#RŒF!ኅv~°ÏÎ+¥xþÈê·þgZ£ì³– ˜ç!›VæLOÏQ©býÁ”µ\™œfl@E!—/O³öší {ÏÔBPΰŸ¹– R©póÍ7±s×.’Ì’çÙ?÷boçµqè2mI2C’’T“¤†4Ó´RÍT–“¥š,N¼EÈr“ኗç8kPÒ!k5V‚U»>Ã;ï=Îö‰µ}¼a÷F;ø#H£QÃõ’¤1‡üœ¯Ü·ÍŸþsÇ¹ë‡ »ÄwAX&€ZÒ x–>˜±Þ¯O3C»#û%Ñi–“d^$©&‰Ò$!K5Zgä:¥0›¬ÍÁH*R 8sì)Ví¼“×?ÌÙ>Ñ¿—0TŒrŽ™Ù9T¥J'rpÖ2=9ͦՠTÀ… —Yû‰=4†‡)œK‚N,!}p&—à‚E"ðòˇxåð1.MN3×lÒnÇè,#/,Ö€ó7UJE„*@…Š(ôÎÏ*­@U†Þ2„a…(j T°H¤”¼ûÁ´¥²ù.Î_8Äúu+ú6yóž«yêWo104‚¨ù=ÍÚ¼þÒÓüã/îð§ÿü/¹íþ‡A„]âƒ%¸`!,÷ÝÄæ‰]ÄÚ’f–D¤K;2ã-‚ÎYN÷µ6¥?jRmJ‹ É2ic0ZSè„"×`R\‘ ¬¦R WgiŒ¬âÐñ+‹ª#.ann*ªàlÁì¥+lß"¥äìÙIÆ·ÜL}h¤äÜžÜõ‡è -Â"°ÎÉZй'¨ãvE 7qœ·b’4E§)Æraóœ"Ïp¶@âCÝHB t(%QIJB%™}ï‡$;þ˜ÖÐM4[çnôíë“7¬çè¹ó4‡Éò”w=ÍŸ<è5ÿÓ/¼Í-÷=‚áGo—°}$©·‡còòZÍ6©ÎÑ:%79¶°@ÂkutýþJP—* P5…RA)Þ2Da@ªÒaR‹¢¶L<úö{4V_ǡ׎pÏí›û6ºaýJžú»g[»Ýšaï–BÀ‡^`|âST†½ÍïîX”™*¬#–@…n¸q›¶ì é²i Œ· ‰¶dÚ–ìoѦcŸ½H˜ÿ½,÷ ‘Ì Û†Lgä&÷b4.O!Ï ÏlF¨,j¦®j¼ÕÚÀþ¼è3‰û¶ñîÙÓ´Þ;È}ìö§ÿ‹÷¹ñ>9úËÞ“ž[ky^$)­XÓŒ3Z±÷üZqF\B­¹˜v“ÆYVz{F“ç9Î`ÎÙ2ÅåP8" *>HŠ@‚H„a@¨$È78z~„úÕ7óÚsËÞM}›Ýµãj~úžàýÞm~ÿýsŒm»ƒjchIbûï™Ë MΉ'8~üM.OÍÐlµi·}ŠÌC‘lQøžH ¤$Q(I $*H);b $¡R%¡QäãˆJ¤£(ôïƒ àݧ^B<ÄË'nÙÛ¿Y)_Ü¿žÛ}Èûô˧ÙõÙ;A¸$á½™hkçß/ €u Â‰m;X{Õu$Ú–b`IŒêÞ¸À•î©#3  áÅÀ@Z”.kî#Fc¬O’´ŒçcÈK@]a ÐH« ÑD ®¾“wÞ‘‰-ýŽÑÄVOüÛïœaåö»¨6çk ïþÌô":E«ÕbrršfÛ‹Áì\Ìl³M³Ù&n§´“”4I1&÷ÎŽ1Ý\¡sá(ËT! *`@J‚Òù ƒÀ³# R’0 ˆÊé¹"æ‡Ç%Úz?/¼>»€Îøù¡ lÿì= ÕâÓî –z^÷f–cr.\¼È['Þõ±@+¦ÝJH3ŸÔÚçkЩÇI¤ð áÙÔ›ºN2Rx™Wa(=»«€0 J'É‹BTZ‡( ùôuxÙ ¦GoãÒä{¬YÝïÌζ±#› ÂJ— ¥*O‹ÖñKqx¸æÚë_O;-HtуN,jÏÖ©é°¹˜ãÈ 6ŽvitWDð1DìÈLÑÚ[ƒÂ ‹™Ç.C ¡`õÖYF7pàÈþ|?Ãà ñQ²äµ.K/¬=v¯÷м$œ={EÁ…óç9ùÁ¦¦f˜m%4[>5ž$I’¢ßxž{Mï¥fqóÊïçJQr€ð®sàž°ê•by P)OÞs€"Š*¼tì N7¾ÂI»$Õ 4j} Üvãz^¿2ÅŠÃ8ôµèu@qàÀ Ìœ={–[ÞÄJp¶ä=ÛýÌ×4\YÐÝ2ˆ¾ª¯¯)øÿ‘B dG|¼I!¹i×jtM¨ z’,nìÞ—žèA°fíZj+–7çx'¨žõ;ï{Y?Ÿ· :wè‘i‹nçèŽCdRD‘©›³ ¬eà kÐÓgyýµÃ|øî‹‹ˆ˜‡hÍ=ÀÈÈ` ñâ!º–.£õé€ÜN¾÷.'N¼ËäÔffZ´Ú1Iœ’öH¬-(:vÕ‚sk]Yé8Ae Í!–Çœç!²g éW8_|kR&}› lIâ«M~ùÒÓ¬Zýµ¨±¨ÄÞå¸y z¸r ” 'w’UÍ„v¢™›‹™™kÑl%´Û1­VBR&Iu–‘é[¸"ÇY‡- ¬-p…Åb})­,§á DáÀYÖÐ]]™´p4‹Fo¾Óœbؾ@œHêµ~?VJǹÏ“Ü}/#ƒub1ñ Aéáˆ>¼ J†‡‡!¨0áN¾ù*«VÝŒª‹ªË×}s)ŠÜðÖ‰79~üM&§fh6cÚí˜v“¥Þß7Æ` ÛcfD·z åê:†§]+J$Ž ”knG‰‚‹¯|“õåéçÃ׳êê먆_áâóß åý ¹pêCV#EØWZ_ȼ`ôöºV«‚ŒP•:Õ†·Ãe(œšùpXwÒÕYî §YY–“i_'ð¬ïhn y™²&Åê—§§Xw-¶ßN:yšN0Ójð‰bxÅ(õHðÁók¨p¦ˆJ¤9øä÷øÄĵ ÕWt }³çÚ²¹æ×^åðÑW¹xqŠf«Eœd$I‚Îtòšù£sôK”ë¤,{º¾RB„£²€Ý»Cøo̹(§™<ô-ÖÖ2û±½¬_åc†Á6íý<—ýo”êWˆÉôûÌ\¾Ìª•CHt;Jz»L:@, @µ±çÆ=lžØN’YZ‰¦Ùî¤Ã ­8õ•¡T“¦†$3´ã”¸Õ&n'%PYš–YáŒÜh¬ñìîlQšJ ¶è·õQ®Ýv+é̆;§ßdû|™ÁaaXáºÝû8uèQ†Ôå>BêÕ„ÿ›6þKkC>)*û‰_*5¾('H¥¢RA@µZ DE–jc°›õ…Ñ2)jzФe®0ë$EµFëcrL¦1YŒÉRŠ,¡Ð)EžD’MŸüõZ…~ú-VU5ÎA´öfFÇLj¢€(€0„ìùħiøÄN:ò8ÍÙÆWHѯUȲŒ£‡}Züâ¥+ÌÎÍÑjµI“Ô{n¹ñŠÍÚҜȮF¿y¯-v=ÊÇQŽ* FÓñJ†GFiNžaÐ}x/oÏ 1Ð(‰‡(U¯qãþ{øÉŸ?Ã@­Ùw«Z¥ÉÁgŸeúiTžð |$•J…[n¹‰m;vuÝÞDûÜ`\f…ÛeVØŸ¶)Ká†8Íh7cÒ$%I|qÔd†4ó•¡Ühlnp¶À:‹pg-* Y³ënBYpêÅo²²¢qNÐØøiFÇVR‹T¡,AP’ÑÑV¬ß…¹òR1B8Ž¿òŸÿÂç©{.XÀÛ"ô!§¤g½j% ¢ˆZÍyM¯‹²BdˆSÍàpNši’$ëŠ@š$¤í¥è4)«EÚ×\ÎØ5ÛØ¼çÓLý€zñ!„0— qëþûlªÎægu¨Áí÷}™þ¯cÔ«IßÞ¥»Â¯¾Æ†µ·£ªUT0ßR·ÔøÈâèìÌs­¶?Ñ4!79yáOQ‰”ìÄ|´×ê„]äpôÛ\°VP­îC)ï=ÿ-†«k£›ÿcc£TC9O@„AÀšµã4V\ƒK~ÙO*xêG?àöÛndÅ`µKür•KGwïÞE^FnIÇî—ï3Sèœ8ñ'߃Ìõ(Á4Õ$­˜,IIÒ“¦£=äW ŽŽ1±÷ÓL;CÅ|h¦#ܽÿ^ëžø —çged€{¾ô0?ú«Gö»Çiû§?<źÕè(\Rö»³ÔEŸñ… Ü@¨ªlX”Â!\$G¸Î,üj Â(2lÖš6…iãL‚5 VLjB# M½.¹ñÎ?¤VQ¼õÜ·©V ÎIÖïÜÏØø(ÕHR !RP)g¤¼"Œ¨WB®¹v#AeÍ¢ýG‘æ»ßüI«Yîyy–í»|yŠÙÙ9šÍ6­v›4MÑ&#Ï;n¨(Ÿ'èôä÷úÙóÚ¿cªúD@A’Œ±bt”K§?@™SA3â3wÜÃÐ`½Oy©ÞÙÃ+FìÿÜý<ûøŸÈ~Çèü¹÷8uê kÆ}#ǯÀR]bEщ‹2¹a}lÑ)ŠZ’,'M4í4ó¬ßi—I32mHÛ1qœ¥ YšU"v츞ÀjŽ<ñ×4"ÏÂ+Ömettˆj(–lîÕ*VÙ³ïz~öë•Va•(áü׿äÚÿø5Ö¬ï>üñ‘,5„\ŽÍ5YÙçÛåæµ¿o“‹i¶Ú$Iê{ “”4M}s„I°¶À9Rì¾ûA®ºv+/þôÇ]¿>ÓŠ;ï¾á¡:¡ZÜ$ÝË} ÁÈpÁáqLÚZ´÷©©“<óÌË|ùË÷øøæãèÉÉ)æææh·[>ª}×g^ä>ûSF¼h c^{SS>ðÒðš­T«UF×^Å5×maòÂyN¿þõªg]m"FF¨†ªÅ⋸ ¢^ ؼu‚¯\Lœ*øÛ¿ý>{÷î`Ë–«ÕÐ+y^”"P,j•õ-2–Yßï[e]Ù*ë9$ë´Ê ËÕ›'pB2=5Å›‡räÙ3P‹»¿Ý¨Åxü1>ûÅ/2ºr„‘‘B, @ &Kˆ“„©ÉËœ8~|ÉÓâ _ÿúãÏþì_°~ý8+V /@g8çÈó|Q³´Öš$õy¹fL³•ÑlÅÄqJ;ö©sß4]ö ä9EQÐh0±c;ÏçÛÿý(Ñb Öï’I 3gð7ÿù ¡qþô_}•£].è 7ÏýìIžxìQŒN³(Ê›ææ~Å×¾ö¯Y¿~ßøÆ¿Y€y8Æ•+³´J'(I|Tk_¶Öö”œ|FHg†Ê *‹#¤ËN#%hÓ·@)•ÖC‡-2¢ÀQéÑ ä–,nùhR†Xaíò¶Î·Ì[²,ýõ{…?ê‰ÎÈ­ ( wåjE÷鑺2)¢±®`Ýꕬ_Á¦ÿ_|&yá&™Ï×)#+FˆÂEØ£kUyäK|ù‹ŸG~„›»p(%âÊܼèõGBjµµZmÉ,5:Ï åÅâÖ”¼ð —ÖBâ Ô+åï- 7{+Çð}ñI ¨  äÀoüìsþ`çˆ@H¸23›Åz¥Ô2…Ë )¼gˆÅ}9a (¬XT¦^®ss©§ÆšÃŽømŸ+¬åâ¥ÉG @Âé¼ xü‰'§wNløõO¿wt6gÝâ•ÞZý¯õÜà‚|Þïã±¹ÎhÇ)?øágsKT2S2æSœ:|ðù o½{¿Ø¼QÖj•ßúÁIÁ¼Ó²T·,®Ðv¾×÷Ø\ùz!ÑólÔ²£°–8I9ñ«“ö—¯K8%ó|N°ã¡èj¥o™XgŸAwÓ'oŸ¾ïÞÏŽ®V˹¿íèÑóÞSw,•ºþ]‡sŽé™YóØž˜yõЋ+œs¼uNÞùa½Ü}x:Z©÷]µÊýU-tU@àìÇßøÿ§!$äEbĩӗÄ?ÑSÑáÓ§¿“ˆ%ŸGüý{v(pZ,x|þÿ–˜ëˆï–ÏjIEND®B`‚x2goclient-4.0.1.1/icons/64x64/X.png0000644000000000000000000000577212214040350013444 0ustar ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYs77÷DÂtEXtSoftwarewww.inkscape.org›î< wIDATxœí›yT幯Ïwº‡a‡a„° Áx HLCPãÅ…€æC@Ô¸á’E“2–I Á% Á¨)­Ñh*¥•Ñ ™ ¼â’\\¢@‚$AE6a›éî7œž™ÓëœîA§*á©:5Ýßò.O¿ß÷žï=gdfü;Ãu¶ct¶ct¶H{$ F sµ™m/Þ¤â!é+@·äWšYsÞIf–÷zï'†¹^¼öäí ¸:ÍŽ¹¡æ…þe Q ³?fçG‡ú_"G€¤’» Œû˜œ/6toú†ž_€¢àÏð.Pù1°(ø3 š_ ²“°ð#vþ¦4}?(XFJ¯*€®ýˆœ?hèyÐGN@Rù‚8 ?ÊÎWÛ:¶»ÜŠ5 ØZ J’óx6 û0¶hy0d</€„_eÊA6W Þ;Òä^ßB•Z$ýø~Øñ½»{5ÿ¸aøLŸÂså’zàIrj”Ó>’—s|€ç­G¬3çÖußý;?~.&é<`) ¤ÈÇÍlzÑ@‡ ˆ>rJÃÒC¯;}p·Zœð·‡ç~“s“t2ðp é5àÆÖoW¼´¿dêÊۻȅ³Ò¦ÃñõÍOŸ{C!>…ÛkäÕ«ÿ—ºø˜³Z? ¢FaOxAÜ_Ù;.=1gAÒ4àú@Ó<3{<Ÿ}f¶ ’Õ¦p8•RcÜ~èŽÀœæ¦÷gÐï™úçµzR8•H ß«Ð5}ž¤a¤nT&XÀÌ3[<fl¡RcbåÄiÉ=m£WŸ>&k=À‰éÀî”Æ6&F•tÎCmIÝðïîZÊZ{)fv¤=#øþÓž0h75ÆVLú’Iw%í>è‹ê·ˆD5ÐܲR"Á¸tוCj·\>¸4Ùò þL @×õÂ!ÝÝÝLNN¢( †aðøñcÂá0¦iât:@ü]„—$ QÙÝÝ¥««‹û÷ïsxxH,C–eîÞ½‹¢(ȲÌíÛ·9sæ N§“©©):;;+™¦Yâ¹\Ž|>ϧOŸX\\$366@<'N—ìO¥RÄb1îܹSò½"#›Í†ªªÔ××ãp8p»Ý´´´ÐÞÞN.—c``MÓÈd2¬®®–ì_\\äêÕ«x<žr APU•¦¦&š››ñz½´´´àñx8{ö,v»MÓ¨­­EQööö¸víÏŸ?Ç4Mt]çÅ‹ܺuëçø)ƒUüt:a=‰pãÆ æçç‰F£„Ãaz{{ \¹rMÓÊ€ÊR'Š"¢(bš&™L†££#‰ÛÛÛlmm‰Dxýú5º®Óßß@ ààà€••|>_HE |>O>Ÿ'—Ë<›Í’ÍfKX-//322À‡ðûý R[[{2 QQ‘$ I’°Ùl(ŠB]]v»§ÓI&“¡¦¦†óçϰ¾¾^®d6k!Ë2ªª"Ë2555ÔÕÕ¢Ïf³$“IR©TÁÓé4_¾|add„õõuR©TüDŒ,+nZ«§¬´ZëD"AGG†a ÍÈ0ŒŠ#H×õÿUà¥K—XXXÀãñF ƒŒŽŽRUUõkFV}Škd’L&988`ggÃ0ðx<¼zõŠ ª*‰D‚—/_ž,uÅ)²g©¯˜ÍÐÐOŸ>exx˜ÆÆFïR·øDŒ$IBQ4M+(­¹¹™¶¶6._¾Œ¦i¼yó†ááanÞ¼‰$ID"ÖÖÖ*×ÈAªªß{)“É ëzAeŪóz½<{ö ŸÏGuu5‡ƒ¾¾>B¡@€žžžr âô«ñ“ÏçwïÞ111Qr˜Ïç# ±¶¶Æææ&­­?îÔŠòÎår¤R)ÙÝÝ%óíÛ7677q»ÝÌÍÍqýúudY.ÙwîÜ9ÚÛÛ˜››;¾F?ßG–8¼^/CCC,//sáÂ…J1rñâEB¡ïß¿?žQ1¨Õ ‡ƒ?â÷û©¯¯çÉ“'lll”ü¿´´ÄÛ·oihh ¡¡Gý{0üÝ 3 šb,‹Çê4,‹Emûûûgggÿt8îS~?bš&ñxüŸýýý‡ÿ´êO‰zFIEND®B`‚x2goclient-4.0.1.1/icons/hildon/x2goclient_40.png0000644000000000000000000000350412214040350016267 0ustar ‰PNG  IHDR((Œþ¸msBIT|dˆ pHYsSS¯î¥tEXtSoftwarewww.inkscape.org›î<ÁIDATX…Í—kHTíÇ{¶Îxa&ãõÂH3‘‘˜ZM&ÚUÈ˨P‡Ð Þ'ˆ"ÂEôå$c}ó:]òF¡ÝDû£Ž"ŠTŽ—™föùpØ›Ý3μï§³÷zžÙÏŸß^ëYk ÇŽÓ›Íæ[‹‹‹V“É´†ßÀFGG¿ÅÅŵ8ÎÇdddü§°°ð_%%%‚ðÿÖ€$I)‡£¶««+Vãv»Ë~'q‚ PRR‚Ûí.Ó˜Íæ?~'q² ‚€Ùlþ#FvH’„×ë 9~þü¹âZ’$ ™ššbvv6ì†&“‰„„å~nnŽññqÕµIII¤¥¥£º"JÄf³199¹bN§Ó±eËjjj‚ÎÌÌðøñc>~üÈ‚â_·nGŽY)Ðï÷³´´Ä ÌÏϳ´´–¤EEEÑÓÓÃõë׃?~œªªªÂׯ_OCCíííܹs€††,KÐ:E (Šèõzôz½2éóù¾b¯×ˇذaìÚµ‹¾¾>åk×® Ðh4ìÙ³g…¸ >Ÿùùy…ž<ä{ù×ëõâñx‚DÊ£ººš“'O200€ÇãàíÛ·‡Øßß^¯§¶¶Vu>,A5S&½^OJJ ÅÅÅ<}ú€®®.jkkUŸ;22›7o8}ú4k֨׈Ýn÷ šjdå8õxN§“K—.EÜÞ©”Ï@y£p¤ÂÑÊÊJòóó•ò'Š"¹¹¹‰ ¨ÑhÐéth4´Z-z½>¢WnÍää$ÓÓÓX­VE ÏçÃáp¨6j¶"ÇAX_öÎ-÷i4eˆ¢¨\»\.rrr‚B§­­ ¿ßÁÀvKNŠÕ(…ër¼^/±±±äææÒ××Ç?”M§¦¦èííe÷îÝ‘ ×n©Åb ˜Àù@¿ÑhDìv;ÌÍÍ155@ssstå$Y~ĸÝî \Mpàù'NÇ•+Wèééáëׯ444066ƽ{÷€ÿuáCCCdffþu‚ËM>¨C+~ƒÁ€(Š455‘™™‰Åb!;;»Ý®´øÍÍÍœ;w.:‚áÚ­åDåR·üët:nݺEww7###\¾|€„„8@kk+===LOO“œœüÏT3µf!&&N‡Ýn'''‡mÛ¶)ë­V+íííøý~|>mmmœ8q"z‚Ñ´[C§ÓÑØØÈ«W¯åÚµkA¦¥¥‘ŸŸOoo/=z”¸¸¸_C0°a•Û~Q±Ûíäåå©Vªª*E ÛíæÙ³g”——GGp5’rV¶[¢(rõêUº»»çÌ™3ª›nÞ¼™M›61<< @kk+eeeªõùÉâÀsO«ÕÒÔÔÄöíÛÉÊÊ ù¬ªª*nܸÀÄį_¿&???2‚¡(¶[Ë+ˆ$IÔ××óòåK\.uuu!Å`0øþý;OžÄb±ùC¶[‰‰‰«6’$!Š"]]]Ü¿_©³N§“‹/²wï^ÕoÞOŸ>ÑÚÚJßívsêÔ)ÊËË©©© øwlãÆªk0T×§¦¦RZZJii©ê|||¼r­­V‹V«Z ÑhÄh4F¼>999ly 4ÍØØØ7I’¢õ«M’$ÆÆÆ¾i C‡Ãáàw)I‡ƒÁÐ#IÒŸýýý±ÏŸ??˜žž]ûEær¹~$%%=•$éÏÿciˆ(ŽÛIEND®B`‚x2goclient-4.0.1.1/icons/hildon/x2goclient_64.png0000644000000000000000000000541212214040350016275 0ustar ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î< ‡IDATxœå›L[eÇ?m/P@ZV¡€lê˜2YÆØo'‘¹Á&:hu“L–7ƒ?œËÍbâûwã›èÞÄß$¸ ýc:ÚòNXæ4™.A²ãÜØ4„l ]˯íúþÑ´i{ïmo £¼úMž@Ï}~œç<ϹÏ9ç9Wåõz1›ÍÂC=ôo—˵{xxØàñxTü ¡Ñh¼YYY#Z­¶åæÍ›‡¬V«[e2™„ììì>dz¬¡¡AU\\Ì¢E‹Íë=Ýn§§§‡¦¦&¯F£¹644T¤:xðàQ§Óyà½÷ÞC¯×'šÇyÃáàµ×^C§ÓýG=55UßÐÐð™<€^¯§¡¡©©©zõÐо¸¸8Ñ<Í;Š‹‹Ò«Ýn·êïªó‘°hÑ"Ün·JhF !œ033£¸LOO+ª·nÝ:üqfff¸xñb\ŒnذF#ùìÒ¥KLOO+êgõêÕhµZy¨T*Ù¢V«E£Ñ ^¯W²ÃÏøää$ï¿ÿ>cccŠ' Õjinn&55Uòù'Ÿ|ÂÀÀ@Ô~222x÷ÝwÉÍÍ•€ ‚ ;Øl ÓéhiiÁáp`µZimmeffF¶~YYµµµ,]ºTvõ>øànݺEgg'Ÿ~úiȳôôtêêêØ¾};iii¢¶óª~èõzöìÙƒ^¯1`LhllÄ`0ÈN<999˜ÍfΜ9Ãü ïÛ·§žzJ¶HáP¢†»wïÊ–þþ~îܹƒÇãAV¯^Ñh¤ººš³gÏrãÆ Ñ¸ƒAñäƒa4())‰8yI$%%‘””óÀñ@­V³ÿ~Þ|óMÑ{ãöíÛ “••¥¸?ÇCoo/à›Ç«¯¾µMTp»ÝQ·¸Ûí–T‡Hm333yýõ×yì±Ç¨¨¨àìÙ³"æ._¾Lyy¹büú미\.vîÜÉ<µÈßæRÏ‚OµZ-R‘¢ùO»ÝΟþ ÀîÝ»%_rgΜQ„~åÊ~ÿýwy䑨}üöÛotuu°wï^!êë ˜Cˆ÷ùÁƒY¼x1f³Y$«ÕÊ¡C‡¢N䨱c²qãFE“‡T ’A®á[_Jü;­»»€åË—SXX(bðüùóØíöˆ“èíí ôóòË/+ž<,𣦦†wÞy'„æñx8}útĉ?~€+V°fÍš˜Æ ÒvÍVT§¼¼œªª*JKK¹ÿþûù믿Bxúæ›oعs'ÉÉÉ¢ \ºt‰+W®P__ÓäAB"Ùô‘ì~¯×+2€¤êJÕéêêÂëõ¢Ñh¨ªª1ét:ùþûï%'pâÄ Àgô¬\¹2f$Ô’Bee%_~ù¥È»³Ùl<ýôÓ!´ÎÎN®^½ Ä·ú ðPjóÇâC„«Bnn.‡&##ƒ­[·ÒÑÑÂ×Í›7éî¤ðí8ÿê¯_¿žåË—Ç%E‘Hþ€”a$wŸá´ÁÁÁ€ad6›%ù°X,ÿøánܸJ¥ŠùÍŒ§K–,aÍš5üüóÏ!ô‹/200@^^---lÚ´‰eË–Å=–bC(\ ‚·pð3%ôàgÁt·ÛÍ[o½…ÑhÄl6‹àõz±Ùl2000ëÕ‡ ¡pû_Ê-–Ûúá4¿½^Ço ®]»–üü|ÃçÎ ¬þæÍ›yðÁg%€eC¥Ra2™øðÃCè.— —Ë…Z­¦®®nÖãÄì Hmݹ*þ>ëë멬¬¤¼¼œcÇŽ1>>.b¼¼¼\r‡ÄŠ˜Ýa)ˆt„¿í¥üpuð=Z­–ÊÊJIÆã=ö±`UÀªª*Z[[¹{÷nýôéӲ‰sâÏÆ7++V¬àðáÃdggóÄOðã?†ðÙßßÏåË—YµjÕ¬WDH©A4õøå—_¸}û6€¤ÐÚÚ:«ÉÃÿ \¿~]’î7Œfó2LXP4ZÛðä“O255ÅÉ“'%™÷z½X­VEÑ_9ÌÙ娔JDz\'\Erss)--|±€;wî V«ÉÌÌ{îÜ9FGGãæ{Aú~¸\.¾úê+¶lÙÂÒ¥Kùì³ÏBêLMMÑÑÑ¡8 Žå ÌÌøÜâ#G޾£Îáp Ñh¨««C¯×óÅ_011Âs[[µµµïå—/ eóKÙö~ZRRR௿$''K“ÉøVßçß¶m¹¹¹¤¦¦Š‚"###’e%X°§@[[N§Ax饗t“É„ÍfÃãñ„Ô·X,lÙ²%æqDPÔ_öíÛGII “““œ:u ð…Ȃﳳ³%/Q®]»FoooÌqÁ9=ÂG:‚ë¨ÕjrrrVÍfctt”äädvíÚ%«¦¦F’‡àˆ‘R,8˜˜˜Xx;vìLÚ,,,¤¨¨ˆ¾¾¾úO?ýÄàà yyyŠÇ›w_@* šŸŸÏo¼ø®ÂÆÆÆÐjµ¼ð ²Œ?÷Üs"ø £W^yE±æD¢m÷pŸ ¼žÿå511ØÆÕÕÕ“77mÚ’ëãÇ·ß~+?Â2„, ãã㤥¥ñüóÏG¬«R©0›Í|üñÇ!t—ËEGGGÔö~$ä^ ¸ìß¿Ÿ‚‚ÆÆÆ«_SSÃ}÷Ý•ùmÛ¶qâÄ ÑŠ·µµQSS£È0RdErcã:ÁÆN$Ã'%%…Å‹SPPøVbb‚ŒŒ Ù·|8ä"FÃÃÃ\¸pAQ âÅjµP[[+™Î&‡êêj,‹È0jmm¥¬¬,jû„%H°gÏž³“““èõzª««O|Ù%eee¢ËÓ«W¯Ò××GQQQÄöqG„ä"?J¯ËÖ®] øVßf³°}ûö4V¥¨¨¨¤û³F"!á*ÐÜÜÈìÚ¼ys\}¬\¹’´´4‘—ØÛÛËwß}ÇÖ­[eÛÎË)’’hNNN õ­³³3 ¶dÉ~øá¸ ÑhX·n¤GØÔÔÄÆIOOW&¹ˆTnP¤ìÐईU«V±~ýúqìv;G üžžžÆãñÄåÓ² •‡ƒÏ?ÿ\6l6ï*àr¹¸pዧӠߺu‹“'OòÌ3ÏÄôùŽÛí¦¿¿ŸöövÙ:íííèt:víÚ%2òT&“Éë?‚àÞ&KŽŽÒØØÐy9ñöÛoGüG}D{{»è”CRRìØ±ðå!Ìë÷)))ìÝ»7*£Jw߆ b¾~ôÑGC~Ï« $''óì³ÏÎYþ£t6øÇ3¤Á-óï»ÝŽ ^µÑhtöôô$šŸyGOOF£Ñ©ÎÌÌ<ÕÔÔ„ÃáH4Oó‡ÃASS™™™§4ƒá¿ƒ¡Ñf³é :.á!ñ{»ÝNWWGŽ!55uàúõë*ÿçó%%%Í###5ƒƒƒén·;ѼÞ‚@^^Þ¸Á`°twwÿËjµºÿåaÐßËT;IEND®B`‚x2goclient-4.0.1.1/icons/hildon/x2goclient_hildon.svg0000644000000000000000000002052112214040350017332 0ustar image/svg+xml x2goclient-4.0.1.1/icons/x2goclient.xpm0000644000000000000000000001401512214040350014526 0ustar /* XPM */ static char *x_goclient[] = { /* columns rows colors chars-per-pixel */ "32 32 242 2", " c #353B54", ". c #3B3E52", "X c #343D5A", "o c #383F5A", "O c #3D454F", "+ c #3E4155", "@ c #3A425E", "# c #374263", "$ c #3E4562", "% c #33426E", "& c #3C466C", "* c #3E496E", "= c #2F4575", "- c #2F487C", "; c #314373", ": c #3C4A73", "> c #33467A", ", c #374B7C", "< c #3F547F", "1 c #42434F", "2 c #4D4D4D", "3 c #444553", "4 c #464851", "5 c #434559", "6 c #47495B", "7 c #404561", "8 c #444A65", "9 c #494D63", "0 c #434C6B", "q c #494F6D", "w c #4C5165", "e c #47516E", "r c #4B546D", "t c #545564", "y c #555C65", "u c #54556A", "i c #555A6E", "p c #5D5E6A", "a c #444F76", "s c #484F70", "d c #4C5471", "f c #4D5872", "g c #46537B", "h c #525672", "j c #545B72", "k c #5B5F73", "l c #555E7B", "z c #595E7B", "x c #5E656D", "c c #5D6074", "v c #57627F", "b c #5D637A", "n c #636474", "m c #656B73", "M c #6A6F76", "N c #62667C", "B c #66697C", "V c #6A6C7C", "C c #6D727A", "Z c #777777", "A c #72757E", "S c #73787F", "D c #797979", "F c #334E85", "G c #3C5183", "H c #37548C", "J c #3C5489", "K c #3D5A93", "L c #345A9D", "P c #415587", "I c #455887", "U c #4E5D85", "Y c #455B8A", "T c #4A5E8B", "R c #475F95", "E c #485E91", "W c #4F628E", "Q c #516186", "! c #5A6482", "~ c #53648C", "^ c #596789", "/ c #5B6A8C", "( c #476196", ") c #496093", "_ c #466199", "` c #4B659C", "' c #4F689E", "] c #526491", "[ c #546993", "{ c #596992", "} c #536C9E", "| c #5E6F99", " . c #5F7194", ".. c #646A83", "X. c #696D82", "o. c #626B8A", "O. c #6F7287", "+. c #6B718C", "@. c #6D788F", "#. c #747583", "$. c #767A83", "%. c #797D85", "&. c #75778C", "*. c #747A8D", "=. c #7C7E8E", "-. c #616D92", ";. c #667394", ":. c #6A7696", ">. c #6D7891", ",. c #6A7A9C", "<. c #717792", "1. c #7A7F96", "2. c #787F9A", "3. c #4F6DA4", "4. c #546DA1", "5. c #5770A0", "6. c #5C74A3", "7. c #5774A9", "8. c #5C7AAE", "9. c #4372BF", "0. c #647BA7", "q. c #6E7DA2", "w. c #627EAF", "e. c #4976C0", "r. c #487CCD", "t. c #7E828A", "y. c #7E8293", "u. c #7C829A", "i. c #7284A3", "p. c #7C86A1", "a. c #7184AB", "s. c #7887AA", "d. c #7A8DAC", "f. c #6683B3", "g. c #6C89BB", "h. c #728AB7", "j. c #7E8FB1", "k. c #4580D8", "l. c #4C85DB", "z. c #7492C2", "x. c #7F9BC7", "c. c #7393C9", "v. c #6693D7", "b. c #759EDD", "n. c #78A0DE", "m. c #518BE2", "M. c #69A1F2", "N. c #78ABF6", "B. c #83848D", "V. c #84898F", "C. c #838591", "Z. c #858990", "A. c #898D93", "S. c #86899D", "D. c #8D8D9B", "F. c #8F909C", "G. c #93939E", "H. c #868FA2", "J. c #8C92A2", "K. c #9296A5", "L. c #9C9CA2", "P. c #9D9DAB", "I. c #8193B4", "U. c #8A95B2", "Y. c #8194B9", "T. c #939CB0", "R. c #9EA0A4", "E. c #9FA0AC", "W. c #8EA1BF", "Q. c #A4A4A5", "!. c #A2A4AD", "~. c #ACACAC", "^. c #A9ACB0", "/. c #A3AABF", "(. c #ADB0B5", "). c #B3B3B4", "_. c #B1B3B9", "`. c #BBBBBD", "'. c #879DC5", "]. c #859FCB", "[. c #8EA2C7", "{. c #94A5C2", "}. c #95A9CB", "|. c #87A5D2", " X c #88A6D3", ".X c #8FABD9", "XX c #94ADD3", "oX c #93AFDE", "OX c #ABB7CE", "+X c #ACB8CF", "@X c #B1B8C4", "#X c #BBBEC4", "$X c #B7BECA", "%X c #A4B6D2", "&X c #A7B9D4", "*X c #8BAEE3", "=X c #9BB7E0", "-X c #9BB8E1", ";X c #85B7FF", ":X c #8FBDFF", ">X c #91BEFE", ",X c #BBC1CD", "XE.J.qXfXlXnXNXBXA.", "x BXcXpX5X2XXXx.g.8.7.3.` ( E T Q ~ m.Q.).).;.#X|.0XdXgXbXMXBXA.", "x NX,XT.p.>./ / { ~ ] ~ ) ] { { | +.e.:.`.`.`.S.1X9XwXgXzXnXNXA.", "x NX@XJ.>.! f w e r r f c N V #.C.D.&.r._.`.eXc.1X8XqXgXlXmXNXA.", "y NXuX+X{.Y.a.f.6.} ' ` ` R ( ) ] { { e.y.`.eX,.1X8XqXfXzXmXNX%.", "O NXuX&X{.j.i.f.6.4.` ` R R E E W ^ / 3.I Z Z k 1X8XqXfXzXnXNXO ", "O NX,XH.>.v r * $ # X X . + 1 + r.+ 4 2 2 0.8XwXfXzXnXNXO ", "O NX,XE.p.;.^ Q T I P G F > > = ; % L H 4 : 2 2 7 8XdXfXzXmXBXO ", "O NXnXaX5X2XXXx.g.8.4._ K H F - = = l.+ & N.3 2 2 '.dXgXbXmXBXO ", "O BX`.J.*.b r $ $ @ o @ o o + . + , J 4 v.;Xg 2 2 q fXkXbXNXBX1 ", "O BX,XF.*.b j f e 0 * & & & & & # M.3 : ;X>X*X4 2 4 4XzXnXNXBXO ", "O BXBXMXnXgXsX3X-X|.z.f.} T P : 3.I 4 b.>X1X7Xs 2 2 l bXMXBXBXO ", "O BXrXR.y.X.k w 0 8 8 $ $ $ 7 @ b.5 a à‰xÐê‘]Î/ãµtEGÂZ5ëÀN¸î˜U3èѲ̰ZÏÊð“8þi2Ë=*¼»ù‚5ÿ7™Tö÷È(®25­!oóëØÆ‰úÏUB—q*OÀ_(”ô6Ò±4u ¥êÜŸG,Gh'1¦ËË`<þpß äÜÿSß’%ù"Ãì>4œ~žR,Âh„UáÞJƒáp´8zÒ*6è²ój5æS‰È|²¤™§ 6›g•†ë£u\ŠIqt³¯sâ¤q/o÷ ÆH¢\{È6q{~È¡0%Œ±Î& Î,2Èhí•éCNÛÿ ˆ~;²èa8{mÈÃë˜?Lr“béýtŒl àÄÖŽC°£3sxìúîRïH¡šn ßêüœ‰•]$›’ÐŒywqšÕ4*Ü]çœB¾€Y&9cWß’ù"Cì@4œnf{œØ«jºý…ßÉ ÂÑÚñÃ/YÕªJ´leø‹Cñzz(MHºëÆànO}Ìže+ÐíŠ`ͶƒpÎH¢\z{ʴ ¬©I­må!™|» LîB¾1òÚÚy=j˜s¦MÄB{®Ei‡>Œ ÀìsŸmüçdÞåŽïarBàÃcƒf|r{±ÅÆü=®ž@½âaÔ÷—Ï98áÐ"Õ¢ŽyOBΔ«üû¬’n²F‘‹oG7]AlIËϼšüˆãð4d[ \ žš_NsЮ¶ô²Ñ¡"`bqë٥Ŗ¿ÄëÞ‡ab¿MC}ÊÂ9‡¢ÖŸÍ]æèŸ{Ãu~*›0öÔ·X§öòŸÅ²'^Ah¸’LËKä\v6Vð°pÖx4j ÁÅϾ՟}Á}Žpg?¶7¢‹ÏƤ~ؘ°®©jG|F¤a, TBðIž{1Ó&œd½%PyúŽ4SÑ^§eúđɊZ1{ ‘‚†¨<IK檾&‡6G²^pYkˆ¤bäýR#’* ÙhIJ h_“ÙÛR"קߤˆüÎOÖâ†ûØŠFæCÖÚ%D³©2¶Æ¹xç²ö€+2‹„š…¼ ð) Û/sþê‡x}¶ìÔÁÞaªõøuw'P8¾TbµGö2wÈ£Uâ)þü×ÀX™Dº´‰“¬‹2M©æÅÛ¾ÃF€ÿP²mû‚mHôú`9ìm…¡3.^¬.ú5¤'å {¹ÊŒf&—‡}Cû»ØÃO­]röyaÉÐUù$9^mNŒ³æðÚÿtý¤ƒ¡óö »-Y¨-ã=om™2Ï„¸ÁröÄ6§ª¯é  ;q22]YöH=eðÕ¡_mu$Dä"€ÊÆ3äO6vÉ@bÓ¥ý6_å@ §(¬eqĉQ+'²c¹˜ÊX“°àÕæ™jÐßL7Q…y«4Ñßéùâ®ÿRGñ3¥ Ý…Åb ÄŸ†nN#»b¾–)ÿaδ»%&ØM½'‡Ú mÚóãÁ,”ÙÍNR )x/ÅÄ–Š3äIãï ÝÝo]žóq1Î$Í6&‹MmÿKþ‹µqÆÖ6¼ÇÈÁ7´B6”æ§û7õõ ⽎PÉÔâ¡ÊÂO"™Dm"†im;>®Vs#  Ü—l´ENÉL¼ Á¥OçPÍywKí½€å¤ðÃýÙ2 s¤Äqn½Á`»ò‡cG`*P¤ALù÷ƈ>CQšrhÏ‹òø,ßϾ՟}É}˜pg?±hh ¨kr}«*­ä’Ýrè5¸Z!jqC/ZñËc;üÂÃum+•1LJëó4㈩Ì×KGI+ ðt†°>te‰kÉÏ­ ähˆÝì˜ÝQ’âs”PétkIþìÿÈÌñ3vkKP›áýã”Ó¾ŽXš}Ã9’ü¦=4C€ä©I¶ÔÍõÚgÕƒ¯ím.‡ö³*Á2Ãs¿ÑG²i•Fǃñ¼‘sbÀ 6Þb¦ì´LÝQþ3‡OØlÍJ»T·Å;2M©æÅÛ¾ÃF€ÿP²mû‚mHôú`9匽`ó¥h`<›NE:aÒøˆ¥Æm§H’<{õ<Ì.Ô²9E'&tn ôžeuýü§¿Ÿ/ްDó^.ò ©¬Ü#*}›±ÿ@ø,C·ëò¿þå"Å<Ðʉpìn]ó‘ëÔÿ!4ïÁy'漄¬Rº·†-Èîƒz³^:‚~Ø©Ÿu $‹Üºšd ò7ðíH‡È7@¬6FdªŠïªË7Ü?cæ·¿œ6 ”ÄWÈ¡›;uÒéÎ\|æ¢J±ÿ=ù¦Õù?A¶/1 ÞàÓ·ß³“¡LÂÓÛåʇt1ešiÄ[!ªÑÈ®?å¦Ìcø!di1Ò²¸Ÿ—¼ÑòСƒòË£/î¡,WÚÅœ]éjàö.vZ<©.`LGJ› jT2Tß¼ýã&Ž×ž·Y*î–‹teÏ÷›Ot»«1ånFÕ9Z ~j&ñ:càù¯Ÿù¼ÜVJ¯´õœ@ñ›Ö-l&uÕà)½•Â;)®ÛØÊgÏSÏhª‚Ñ!q{åÓA‡Õ-\Ͼܟ}Õ}žpg@jŒrvÒz|„u dU£ì¶õ™.auß¾ÿ|Lâß-胼5J§:N=/Îý ~\\ÃÐð¤?ËüZ£3œxÓ8uï™]û8äyŤ ¬ÞØz:Àškc‡9P”kkwÀsBÌ¥®e7+&¡ãPp?Þà·ös#©µ¨eEøg]Dkc½ø¾eúP‰º‚ûÕ(y4:Î5"ué«Ù­»ª>üŠÏô;Ô`L0?w—c‘ ø¸2îZi¯ ˆÄúÜ,|ylÜYç£Ú:æ«À³Ý2EjtQX:ÁʵI±Èñyns~"Ö˜ÖVG? Ü”‘Uåm ^1…bs—³ìyþ™… 0ÏFk¦<À×üþý.ãÔ·Þ ˆ !]ñŠcrÿ@µÑkUÉñ&Ÿ²\š9pF²<aöÅ›_i»ž·êÍ|ß²·J—¿A–ë@Æ NŒlÕ¶Ó‡¹ÿ.Ç¡|IC ÝvÀ%“êºÁGÝŸb9e g=¶<"ëȲ£'A «»îëeI˶uz½Ü¯t'V;x!1ý2Ãhq©Vb.1—â½I˵ðó9Eëyžêše,ÓNÎ-‰Ô5G‡9í¹æiB %ÈNwCxÚo›r~wÔÝ5ò•§E%OÉD[õÂJ(zÈF«SacguÛÍpŠü§È]p.h/ÆÅÑž†b”=Îã›ò8gñÆ• ñæ gp­šµvž‰IÎû*}Y¨8%„zD<ƒ‡ lmŒí?t™“ i«p'¶ˆ#+H2&J¶e °©›_DÒ¤¥hbãÿaIý`Ëâ0‚õÙðï¨ÄqË\âAõ|¤p/ÏÁ†ü×#ðLe]¹´òìǪN11ë G˜ðÝ¿‘ˆ¥ ¦wÂøp¥õD[—żéßSßÅ¿»™VÙ§æÞ×oÎó ‰EàÂ?Ü ´«ÒøÅ›N¾F”ݽ¯Ôžå%nÎÈÂè~déÝy¦*!&¬"ᆨg‘šSüÚ„ÈsêÙÈOP8Ç|Ãyi*E~Èß§4Ê¥Dˤ9€zèÀ=áà;{´Ækûñ»½cE»z{—ˆ·öT÷þ¾J/³9a[c]äº ¥Z/aäè ö@}4÷‘à¨hÇ™›îg`:póSšÅ’!âü£QVÜžá)Þ´XŠE€3¤¨¾—DÓtɈnŒgYQ.NÏÃ¥ûòë–?—@Èôéæ&G¬9üŒƒ¿r3&Ù7$eêd¸‰w9?[lcá@£Â>zFj›>’>Ÿ|×<çÜ-ð,[›Ð}éT\ öÕ X•ì|†µ¢*ªîA@j¬éãKT(tÅvž¡À†W·}Rsš;2§Vë†ÍÅ \ãSÁUA¹4*Æ…e] Ö5"œÓD%Ïo”õ£n¾Éh+AïEé°é]ß º~ÙQöwÚÙ-„È}ÃûýÝd‚¶“fæÚ¿Èn]¦°^»^n8’ËÔ]j‰·ŽNד$÷y2Ž‘ ýrëú3ùn8ÖOJ-E… 6iÚ“¶~„Pç ‹ÐPîÇT¥Ø,J~QRíÍºŽ«m8úNKž¥ÈPð€÷*°@ÕôoHÖ(T÷s×Ŧ¨ïÇŠXs·)Ń´ÓÑ>ÙÍhZ–›{¶ä 6ò&˜ BŒñ¬=»ôc‹J6!mƒìO1ù¿ïœì8¶šüÜèÚÜ©¯siã5z;QУ˜#S±|/—K•ðü|Pæ—CÒ4J1ÿÆdÃ.f¯ôâÇËñ[ºÂ¤JIúÍ:¿7¸gØöT¨²áVÉ›/èKO6¡­jp&lð|p`&¥4ŸqÈ(·™Í¦[^®nyiäé[øfÝöL& e4Â`Ä%ÕRÝŽv€¶©Ù€‹‡Ö„•á4`ÿ%2<Ù‚Rµ[·\ëÿ8DOpÅóS’ûBËFC¢lR߇ÜÁ–FÊq¥4‘¹ Já&_ff”•V³™Ñd¥”/€íž§ É "êš|Ê“²(+`<ð³ÃíÉÞ4™Gßúo£dÚÈX”÷CFøâ¢«åPé[¸lûF[€ôö»ÛŽBߣ5:±€ŸŠ‡I¿’>M]!•Ä<ø¡g7¸pÝÄO¢À[·‰#½ƒ ?n=6½<Bذ‡bÕq(ÆPVÑ$ö8aSmŽçвíÜð&È£P÷ÙTí Ôª·u9OÒÕøÃpˆG¡ôƒ¢ÆŒÊC?ôÄ…ø®3Ð#“YÕòŸ+åTÈÝêÈà¼Ïßg,NeôG,®P€(¨æJȇè;ϧÌE™jÇNg>÷Û ¸Þ2Y˜Õ Ôް5v¥™³ô…å­0uµÂcÉ×o—:­ÅЧþ¦Å«Á—/š Ý–¡˜Å‰MÁäšÐ“#fM³É¼]âg®GÐNLL‰Š…ß›«Ê§lu<ò†]EÁÏ€n&&öྊ¦ò¢î M=z™JIK››bÂSsæcæ4œì[•M‚>‰ÝžÜ ò™.®>½¬“+ï.³ µ¨Ýã Ì¨é'R±R?¹NÀäRýo_Àª2?ïÁÅß$+rLYa®AZ›üÝ|’ž­P;Å=ÝmÍê#ÌÞf]Tõg<3I¶§¡^Lz¤ç±,>°/Ä ÎŒNoƒUiÚqè*bˬ™–p ÁJ<п˜Õ{ÂtB”ŽþíÉý ï lª[Ïâ‹kþ˜4Oű,,Ÿ U%(•œY9 {—!À7íüOÀÙ.j„gtÑ]†å%v ­UÃÉô äEÔgȹZ¸ s[­Þ1Ckï&2ÁÖP="‰T^ÝMg4u®1Mð,¾K¼8kR‘ÀGB‚e?¯ÇâêŒX·3yÄ@â:OÑ~„†çÝÈñž ìf/«&,á.÷&J0%ûS“Š•ˆW¹R‚éžÎ-7°ÜÆ!°Ü ^/#}Òb««ºÎ³ËÈÁgÓ{Œ*¦ƒÏ»Ò/™€¼‘ë 3‡% B{ë:¢¹ñ¦Nå%?¼k­IÊZ™’wˆIY$§§ºÙ«mû쯃6u§…`Nû¨]ce²”¡ ¼£OÎ÷ f ÕA3˜ ¯¼šÊaœ_IÞf: ¢e÷°aõ6ƒb'p㤕(Z©Û nÅ¥÷s¯ëf¼ý2ÒM~ëË¡ú­ùð•¼&Ñ@ò¸Åþ”V@YåÚGƒŠ× ~­ÈJÁë»mÚˆw6ÜY+Éÿd)*ãz3d(G=€6Í¿5ïÿ2ÄšHQ¥-3ŠÑ+Ì[,„–ŸM¡¸÷ + Ýùa7õ¶'‘Ò 5ã0R÷îâ¿ð©“(µdd&®ô'¥i¿k6ð´þ ÷×OÌÔåƒÙ€¼/o@>OH,“hÏ¿¦»óë¾?š@Èôéæ&G¬9ûës5Gˆš™U+2[¨‡vƬSp_‡H€‡¦e˜DítÆ9zN>îìµH!óõ‰øüÕ&Y®ÕZÐ<+º”õŒjD†lp¾˜ùÜPµ@X¡‘ÉTlÏ ¢â¨à'¤ÚsŒ·ÝÛ¿:£”~HAäX¿ºU[í?>MrºLöq>þÕÇÆ¬üÅP]™“]áùö[Ù¥>o`Ä„ãˆi[°úO ]¦‰Ã÷-°ý” ðìT·×[ƒ`Ì.ö~"ôÄâ7ÅB9ŽÄÊaž!³EAýƒ:k?œÛ©ü„4€ŒÒ¡€£Ê¹t¸K¡eWÆéº}`ìü²‹ñÉ¥çGÚ¦ÍÑóªK툺ó¸ùÁÉTX02'E‰«<22„5äÚ3Õîñ=´O©;|Žl‚È5Ïvð:J&UÚ'˺ݺ).yQ2»–¸¡Ò Jj§‰`dwW¸ß°ðþú>Q7Aø8õÿ¤L÷6v£HŠkwjúÉ9w¸Ð,q“ëÔI×i¯gϼ¤mг;„l#¥ë’äHú¢ÌÉß.äHݦ" Žsöíž”ÝÔA€5OfwÔwµåóSZîrHeªdDAGzËö¤>oÄE‘B.ˆ6º^Å#Þ-çïV…S§ðô.±Ày®·5Î|Î1Â8M¶Ó›‚6ãR¦ïð“F»}9­}‚:#Ì•q¤Ü¿r+]Í< dfA“œY¾äÃÖáÐ¥°áLжBý„5”ÌSX¡À×é=×ôBr‰Ö«Á·râÑAÏ%ãÍ÷í_ ĵÑ)º¸Æëª\ÍÆß„÷b©Ú”8—În]Mr‘‰ÿWd/‹û4›r¯‡†À*Ü5òk²k)ðû ƒ»‰Î¯ò‹Vôú÷è‡jƒ^é0ûôŸVî[>9.PaÀªß¡‰ÐM´¼8Ðÿ–¼®Ù@Â?+ó¨¥ïñm¯Y÷-øÍ—üÇ/`žO%ç?ŽŠºoä£ GÊZÒµØ“ËøÆ¸ñúäÁ&‘Má¤Ý}¬Cº¿mifR2gÖð©w̤ÍòzŽ.òëÀpò ùŠ[CÝ-àé}º¡TÁ"qVßoK Œt´0 ¿Êôê‡&¿F%›s"íZ7ïé3!"]WEçè_asÃ9ÄIjI%CÁ-ñXs’®ž”„{4Ê |?¢ó$å#ëLáu “þ½ìòЕkIH×`!¶u ž•£ß€øˆí”sØ5Õðôš'Þ¯ 4\Èñ35ëMê–õ¨° ]ÁÃS¬ãT£=d¢ÍØñ¾·Ù~ ]‚®ï™"üfóLÚø¬¡$*ýÁ½DÈÛ¼Hž4pðK¦S˜ŸñT²Ìq-@ Õ4 Œ…T˜žª 6¶àáÓ׿ì©/8Ž^ÐHf5˜%{HW¤íP¨Y"_ZZ4F5Lܲ²Ñ‹¸}µÂô‡×Çw^‚z(Ê-VĉÝVpAb¯O²­Í˶“X^„-oa½CUëo0`9‡Mº*úŒM:î;ÔgõØÖ:MÆdÇšû«ÔÖOf›7ši­Ç±!ÅfNQu­‰¿ÍÎŽ–ü¯!•p`þÚ¤D¥™ §x&½@»¾_õÐò³t¹ ²—1ÏÂ_0ÅÐÖ&ÐÒåÜ»Ýp—#Ô¬—Ž-v¸´SLÈQ g«(¿0 ƒx„ÆjÔsÁQÇ‘ŠÎ%rVA: ÿ ŠÁ3®Çp„óÔM™"œ4¶V à„m Sõ¼D'Xðøê”Ëo÷•.î[Þ°ž$ýVɲ÷3£jšâõ“ ‡¯H§ü‹Æ·.]€Ÿh&Û¶8òºö§Ž¾¿3–zCï'Yhšÿ=æq€8 ¤5ö§W¤»¤|‹.Q7焯íQ1þVÞ§ÄŠo8îg|!º¶ÔrC™cuO5S]XøÁ¡ePzìW÷|z.ƒeÚ«E‘G¡?-å¹Ü04^Y+.”e‡•€ø+Ô_¦Ø4‰#Є׃TK›—ÃãÖ+¯E»UñÞß4bc|â½uÀ®À]ƒÝþà„´Lš¨é5;Š¡éÇ@/Ù1ë€|ÑïÇÒ×gÏy-:ÁþJ7–·YFÕŒ–,'Xr⥇E&±Ñòé›ßŸNwå×Ô}ý5€Á†Ì#²¨Î_Ž«š Žk}×ÒNZîô`š„ÈsßÞCOÊå 5Ç©ÅÚ6"¼.ë·Ž~Êc¹!.Æëóõöž²Ioób3|“²®*÷8…öBjž ƒDžÃÓH)Ç–\ÞÜF!ÑwþÊžò8ỨÁ `ö{À$µnzðJ`«,[°…‡-÷_‡á*¨ÁœSnBr1ñzŽøÁœìTÄUÎŒ†´@VTHëa?ü)ÿ2çRޏ¢ÕÉ6÷ôa°ϰða#@.“úþßÑÁá«£(!R_iu3opŠ#ð¦ƒvX4³C¼ÔÐiNòÑKΈçá  ØXwªV|ÿ_Ô#Ú>(þ 1]Oà6ïVÁR;a>»‚‹±=xUóÄõJ›pl‡O`•¡Kz¤Ä¬ìŽú±J¤·<é·‹FŒçÍÉê8é0‹XÒb¤¤C Ë£âr? (#ô„ -Ò•ÃÿaÕ…èÞúÃjL´¤C-c¢ÿ?‚¤«)ƒ>·ÓâTá½–ç–|Ø÷5Ü,ŠùƇWLŒYÖ¾cá^8:©„•ZÎбQkZæA.(½Ë©4ô\9¯e±lÇ(,xæ8r» :TYû^qż‚¶a„0‘J² xI;…RL"ǧåb.ª:í Â[ÓàØ¢‡"x"åÅ÷àÅvý6D–¦ ôùÚRä½=iû»^Õ×–žy'‚GÝð]*äðHs Ó©û¿$ Ì­­JÌíû€Ñ†SU=^g—Ø+ýŸîÊ’Qlß ³4Ù½pH±#)M\qšÄ4}Ó–WDO5£õHMÝXèìÖ¯ˆ‹èœç°«Ç^5Lz²u vÉøH¸£tÕú>îJÃèYÇ9̳ÖD®îÝÃeO6²øºÄ#{‰âNzö'{„®+Ú–Q(Žc õ®iHW¿…ê‰k D¥rÓ è™ý­Kê9:9ˆ¨$°“ÐcC³o•qW¨¤H~ÙøÑ¿‰‹'Õ'÷j¬,c`w/îä;#§æi`ÑÚú¸ä*»ÄG:2×)5œmßë6,DøKr–uD @ôR7¡þW åα°žI™†gÃzgG¥>ç`pKÁ:6Îö™zTÎMÏQÛº2G³²£YùÀ#›UÉ›o|$(˜3TÌΨÿ,k ¿³ÜUëÓ?œ(ùA)ao¯£h£¬Qèm}km|ÖL&+Óxuõáf,,SÐÙ¹‘]2M»}+¯Ó¢Öp.oí¤‰€Þ¹.…ßÝÒí{h¶ÞýXí¨Wp÷à“[(•V‘_÷”×Ö W-ºg<[4ü*[Ù[A¸æImÔ’Ü+:h7¾.49«º‚€iŽþ/5¥ŒÃN|ÁP zï0$¨1 Фc£D~ßBüC„ %H‡AŽE_ˆ³±2µ†>ÖQÖÑzÊ0ÑëÎEÂ0HEãhâm?]ƒhDvMA”jm`)|ŠÄŽ@‡åqN‡g¶·õßôðŒ§Â(Œ˜^Ǐχš†DÜbä n /ÉæõõT*òR¯œ÷ žE0èâ«Ï#Á¡l”œOƒ"gî¸D§ ú‚t|¨õœ…è×2ýlï†À¢¿_²(1s0N%¤?2¬ˆä²Fï †Ü‘ñÄáýôç#Õ˜è ù­/ªÏÚz.ãm,›¯!&KÏÃÚfüþ„(ü=–ÎK o´hM ©€£ùný{H%¼,N°zåo@ƒ7ÒnaÕ¦bš-;GáÈsêœ3熿žVÞ3Å«P “á’ÐÏà»úæ Ù<ÄZ^0CX"÷M¯µû=ó*•ù*¸‚*Ïu#ìU$âÞî q¹þCç<ü”þNt²aÊÐ|×ЈûÕðŽ¸°>ò¾Ä‘Hþñkn°ê*ïú{  ¿ˆ¬jz/JKbÎ7a“Cm7JÎÀ|y™5º°­À7¨f­¹â¯º Ad£„ö›Ø ÍèáF£#­޾4àÉ«Oœ;+Æ%K8ÉÁ÷ ^w¬CªçÊaz ‹öóIñ¥³hÎãÛLrñÂ%(ïg( ¡Üè<h­4aƒ2RÑü——ïŠ[U’‘µQ׈ŽI©l†1—B—¡O‹vxnäÑe娥ºviè9õ9œâÿhiÏø(SéÏq_9sn½œ4ÒîI[Fƒn:š¡þK*Sre†K2ƒì´ˆÖ™ÅvwF5¢j‘ 6¹Ûƒ‰7Ô¾"Kð{ äGÂqåP7äœíФ›1ø`«²YÂ~L ÈÚaóœH:Éx©4“@3Õ$¼¾í«Jëmœ$ òîЉ´Ì1õ¨ÂR{5#ʃ=·˜ p¹9 Þú~+u4æXnýpýb&Ìëj ¬ï` <Ö}8Òawu.1"Ä]Xÿ€ÜS°Òƒ7Ò!”Ô0Ò[þ ,úïætLBšùJ8Êà¬B^¸EëDO{ sÞ8°&_›õ-O£%=¶ÐÜÊy0¾þJE#X>8Úyàv¤¢Ì6Óy=µw™ ˆ6•ŠíIë!C)\†W|ÑL(j2…Îß• †{޹±å›‹9![~y›3>¤iT¸zJh¥‹@šú«•M‚?óÜW%n±ý™X”φl–NáØÉºžñnÌü be‡|´JWí$P³¬žT9=¥@f³—>v‰¹(êMøR’Í”¶qÄ”z¿ä3=ŸfN*·âÕ56‰*H:ô–X"p*Ç`«?Cø"ò©‰mPÌÜILvÇ|™Ï YÑ;Ôgƒü…©½d¶…uõn›Šó/N}ìV·Îí¤!x”µ)/Pu‹\›wŒØ·š-:ªXµçvL«ÄÒ1爉ò ø½S@Õ _Lad‚Ê é‰aVèµ­àâ›ñõ“²†Ë^úöYex,zìhM¬_›jÐ1.K8´)2v«ÛQœ}¾ù›Jù…ÀYœg´´„ºòX³‹ª˜žÅD "Îfj·bëVc¹«ûÍË•¯g¢W8£¡ ¤ £¬™Pð[é¿÷Ž’5AWj;Š!ïëå$Ëç8‡)ò[†Éû2]Ëw(fõ‹)U£Ñ2h,­`$:;) Ì:Ýh‹ƒ.“Ù5’ôÏÔ—”ÀÜÅ蘈‚)Ž5Ø1dÖ@§´§†Ë¡å¯Qƒn‚{âÙ2[õÈxÎéØù̘Q–œè-aç­>Ÿü=Žrnáaõa‹Úë´Ô¬#Â> —¾ Ö”SBGy,%ÝÀå­ëë´ ¢LeŒ.‰è×ÄÑî[oØààÁ_ÂØ«A!×üSQþwŒ4Pc%Üó¯ ž/Ceà˦¥GBbÔ6Õ—Ú‹ÑTo¢œíê%¸1´ôtŒÝme_¼Û73 ){¾2ItRõí]‚i´ô>êÍÏ)Kyæ»oŠ—U­U¾éu䀋:¯Ø Ð×r‚¯¶Ò–ϯæ½-R èÃy^†uÜTÚ’/AäÚû2JH<˜M‘§å·©´VüË›e$çþú‡–Ë=³ï9ûÙªN“˜¼¾Z:ÇâˆÇÿTùËBºšt} w½d3îF¨×†e7»,8²Ê¶ª«ã† „¦LTƒËɬŸ º±Öxç•GT ÍéœMý+5µY4¶1\u3k"2‚F㯔»·=ïHúK±}uºèœ>Ã"<þ™&º›—ŠŠq7}Ü-EÙ[ýý瀦eH 9Ñm£±D_I“3ÿ@—‡Ûs å¢9k›D]nº]«6I­bb³Á†ä²û!3åaj¨ç´+›…áR÷JÖ;ì§èŠ­((3="ÅUrÀýTt·VÕ…Lð…3¶<Ö_4èx¶‚£˜5W8ë“rÓ5: ¡Uqno¶ßZÄvdûë¼ô×L»Ì¦øÏ‰òy¿i^] . I>ÃxãͦTèÖH¹n;ç>6З¦$Ç Ê™ê55b£W–:¥vøóÝ=íô¥j É;ÝÙnO° ØD·•8œ™ÌüÏ‘û‡Õ{>_úÉEpËë­Ä¥#Éaë·æÏ77€Ì¢_ f9—HVÑà݆ƒs‰>æˆÉ‰A¾2H™s½Ï6•ß²Ïå1k€° $¾uœ@2 ÆõJÊõµáì7u¡S ”Z6Áø¸Ÿ· ­ã…mÌ_døêÍ1ɽ¬oHÍ®Ï×B€»ÓqS²@ÎU4u…ŸÄf•y÷™‘ý/h& |ìkQJÎp׋‰ÇOzZü”ŽXUH$ËÑœ¬Ûêª!‚«Ó”âä†D·ó…€øv?(d}X¾Ë›¯•!"²Ã%Æ4>žš’Ë‘JaY m¸?Vq#ZŠ{'ù9½LB:3Zïãê&{Agó¶›ùÕMK|œZÁ¢À{1\j^yÆ›’¶`Ó„Ð+3e¿KrHAï-Á—W €ûÞ©. ‚¸H 84ÒÜ5ò&[ ð›µâÚlø0ŠŠ‚t·ŽI"+޵øš·©ãòÒeÚmCX&B¨¢Öäµ½Yï\ÕT:c|WÆV¢³•Š"Ë4§«ŒPª¿ÝâxŸùž‡Ü^P5dÙÓîXeö‚LÞ î7BQ\ÀŸÉ­Jg÷øhÈ$¨~¿Ü{üÆŒ·“¾[þjV–'<†ÚïH\/þ'¥.Fìc¿ IÖ¬ðD<´ríf»í$öŠÁN¼ûopH¨ åšv£ÌsEŒù›¨ ÇBôˆyi#e9B¡–"Ã㔾QMSôÞÆÑ“Q«É×§(†  Ü#öä ]’Z¼èKdñ¼™±ª·­€É iâO€Cø+:üFp™P„ß0È'OZ7Åɶ“ØÓžþèþàIÒvs‚ßÎy;¸–c…tt9”#̬è +Áä9ž¢Ëž¤<ã«£y>ŽFÖƒ¥ÒÄ—0ÚÒ3há.hÄ=™À>é¦Þ›œ­dÝ®Vƒ£x$1ÉJzãS·0€ÖO„K.›æy>ú¾Ó³’ĈñPB:½9Pùf‹›`†ùhìS ­²À;–ƒ ‘Ml㸮ýØ›$Ù@ã{®åXÏvÐÏ–©™Ñ²>ì½S²ÛQ|xÁðxv­°º{`âu{CÚη¸†Eûw¤l^M4kãÐ¥‚^Üç¯:צXfLº“¹¸“·O¸3ß'­@5£²©âœÜ@^¹x9CN_Cª¦µ2³£Mí§oVÌÊGÏ[QGÙŠô¨â·ÈAe7£Ûœz'Ÿa‹è¨È±íQCÎõ€Œ’£èùa`? «¹—³c²ç‰ÅÌ2ú )Åœ§³š(? ¬.ÚÛt?‰R ÈZxÀqîù%̼®hÜßüˆÚ¦IXûlRëQBlH©d÷¡dƒà1€|Úªâ¸}_è|Ž.½,` ¥êº–·¦|ßâ¥LµAíOÿ EÞԽǟ”ŽsΔ°: €€ê€òžTMèOf§Áº3ŸªózÏŒPçY•!ÝBÝèä<š¹#âªxÔÑGn:ýmê‘ÀÔ£.éV¯`ã–¹£‹s@!óà&pùG’busÇyZs:{6ËìÒŸÕÛÚ¦Evâ¸:Ÿ¦/_2=w0"(ñŒvDW§`MIXƒc•MŸïÛ„dª”[ˆ7S©á)AAžˆY¥¬Ó³øËXå}˜²Útšyƒ)E[ßœwÑYñ¦¥NávÍÙ«¨£Ïœ£—¨V½È„ŽÆˆ¸° A n=¥@ÔJ(}ˆ.p Qœ±µÔ¨øhXêd­:iŒ­‰ðúƒ%3ßRƒó¼ ÿH!%ÎØ)lQ=ÅX?yθuÀÒ’HÏ2úÓWNp˜V‘dð =­ôj[&ÈË‚M$M•>»3áÚØ/'õ"µ‚q˽p¾§t1œ´œäkäâl>[ÇVâ%®Áþ£xbìêÐŒ@~â#1‘OöÝJéަ¶çªeç ·Êöı&Sš0ÎÞ zÁ¯MV±QÎB·0?eÙ¥ í«t^³>¤Ê-–h‹ª›pÓ?µ9¼’¯ìeU´„ê´…óínˆÐSq¤T… ˜ T@X”†¡K½Ëª ïûæ+ëhG˜_éŸ5Þ‰gôþêÉpq]Ûù¥£oˤ÷»Äð :¢ŽŽÞÈÚD¸ú›äãźý I{y³G!ÅŠN;Õ´s}Eá±pïV/½1B BØ%%ü>œÀÉv‰>aí7;áÑaTñ ÿš ·¶ Œ°Êb'Š»áçØ®0B…Y”«H¯‘¾æÇw#F1Ý àb^¡êó×Mä{³¢Õj*°^ÐùˆáßXÖczM·sn=­ ýÔG•ú__CŒ·¨ß[sôž>ÁÐÏÅÖþw'ËÐgäX›½Ú NF)¯J)™““H÷®‰„At›ÒêÑ®á»02ý;TïÈÌ¿å“Æy=dŸÔmq‹HñÑW‹OTÿü•—âžà8п+"BT»²G'‚º ÇIE{‡oÕUùÇs{Ê.r$ž3#-=\Ø+5Çiºì`}‡ÛêñGQ«*+§˜”þ¹F¤’êÅ«*øiKýp·ºÊf0îü™Ð˜UÓ-´^¿~΄k…e­r¸‚}žh+¬Örév Ç ¬ÿI>ö¸£ïбÏ‘‹˜îíêîñ¥íySëØ|§ƒ{Ù}€½àK‘Gû³±ÝݽóT‘¶_låöT…£&æÂZÕÕ]ÿ'×wH33³6#»àå'".ô¡â}ØÝ¡¥›Gr½yÀ°Òºé$œ†ý:Ç-»@Üçèd5½.zø>PÊóÑ häYlDZ¹æ3Ûc(lC#ü•Ö}Ô†6Lã7Ó®ªBÕ„•ú£©Õ Ð.—`/Ð"L/Æ`î[<ãýûd:1‡×˜—=Þš -{¬âÃy.&š ÌOäk3¡ d4Ï:óB Õoä$óí5·j#¬•”¼4é¤1ýë)f1 ±^=H°ÔÎ˓ճùiä;„?žYÔŽ¼òÍ(‹r_°yraiùâ(ØZÈ‹T-[K^Ýß¶Çvi÷°µ6öİ(»{S??puíOÇ3pŠ µCîÍöã\òOž›Ò|Ê gøù*KuabEÓ¿ÂÙ‘ž¥~º !Î*ør°?þ"»”Ä™>oÏÜM~³u ÷6"œ¨õαîN­,LAl È=íug…±ç†¿Œ|£°7íè0ë²ó¶@1œLp YHˆm·‰™£n&'üÔ+SË¿&.éÏý³1itÝÆl± C<ïȵH:óI¢õÆG]M Ž\kvóuøñä²ç±nˆàDà9»?Ù4`´Ëôò¤Oç‡!ßÝ‚Ý«¿‘3¤EøÿOB>~\*Bv¼-ÿ!w—@ñU㹈’åVQmrÖ®º©ç“÷y]±dÚ i£–³Õ¨!ë³ÜŸ}uC*ÂÞ½ƒúy_Ué;agŠïL¸1ü¹¯tK̤û˜X[e<¯ïJ ¦ð±èž.Þ6ïš…wA°Uìõ9*’¶º%ܽèþ­÷¶B…Ñü~ïÅpîšço]H(Êu•8&=ã<Æ* „h& wÈûH."”÷Øštäü¤)€¨B¨ßéOÔY`s%§k.P£ ýŠ9*ÜÀ|ºíÅhÈþÏj(í:" •œDuLåLF t ¤˜$·KŠŠké"¾Ög‰z’è°«1ZøjÏc€rn{µ÷ˆiru‰'°!çJÍmãáÁnåÇ/6†‰‹­Ý 1âbªq¡ì§…*"bÝš’2_¹b8Jð7«¤Va‘ŸÏ•ybƒPúx‰Bp(Â-Ýù‡n‡ó­j÷º±Ò6E*ÔÉû¬…¡>ÐhQvþr¿o¥´º„‘ ñnì¼ @a›ëR]8¬ñÌsvçf4dH¼ ÓÕ¦´{Zl’Ìl{8ºHÛ¹¡ÏÂluJõʆڥ—ë0;\Zņ̢©`µõ¿³ã¸jçN LÃüh‡¡p5b'# ­àXàç}^Q4ãÇÿmŽå#ô«8C WZú¢ÄdÃXŽæÉ~ ¥ÍеÙD®•Rzk?^’"-©s4Æ Ðz¿*¥|ïð¤d ÝЄŒÏ?à¿ÏÃÛ:üþ†Xü=žÀÎK o´hMÂ&Ùd‘9žòîe°P.AØ ø£/ Ú¿³ûÆ‚È:ÙD»6ox>¾ø»¾³ÊˆÜ&Pspï0ÙÃ? ˜HÖ'wv¡#˜ä¢bX®Ä,ÙJAù)O£eØ y$^6|*7ÕC ™ÅH¬r¯†U·š‘ ~èÈqÿH€á!¿-²½içÅ}õªÇ‘îôý(L‚.Rh„T†ãæò«¿ï¶“Ú=G+2âÛt\l ðL nöAB„Þp( ƒöÔë›DålÝÂ’`l@²ÑÙÿA^_åî‚‘¨þ b† r¨/­éñ”Ì@hµqf­ªX¯ûN‘T“© #ô<"£Ì˜ßÕD³¸¾ßïOç`@‘¬G4‹›}Æ2;ÖÚâOÀ‘µçªj ä@àšN´¡–S mm§éûêîAþ@Eg m«»³'߬¡¯ÚÝ×ÿÞ<ÈßÌøÏÙšh¶Í·D2 ªhZÔå”ݹ ñ E.lm"{%¦Àœ¥~´[À2©®ÔõJü˜:t–2 -5Õ§?âh÷o§£‘öq³M‰aF¡NÀ‡‡ëŠ[´½?uHÏËÉ ê‚3åÁ“yÙH$Éܦ"kB)SÙ…~•K9ºÙÐ]P U…k´Ší…q3ô q,qëc¨Ë…´ú•Û|=þ¢ž­4GæiJ¹D4˜$Î+¶Évß3(ëü³Þc™Ã©Øìß*q;RYzdVSÔ!2kšpGÙ3*`ÈP¶7³ˆÙCû¶_ Mò©U ŽÃÌÒB#¶²®–:T+ÿ&jsy¨å\ôí=hÊYÄù æêšk -o„¹Ñ Ðb«¦ Öýû±…Šy*iÌlšµá5 AÙIë¦>=êš¹m “G&;J+­ƒ'ÊÜé$`»4›ÓyòZZC¾Èå#Vù·,8Ëñ‚»¯«¤žE&äÑí%t{ÑéT êÁŒàÌú T› ßGuôK°o{å¥^¯e˜­Í×Ã)e,6ÕÞ÷@ȉ½tžÏbddFY‚³yM›l€;3ÿJÝ EÓ x3ÒaÔ‰fÃ×^1HcžÔ^={L:`<Ô¨š¾§3³|JîE‘ÊVéÉ!«¬þÁ„½Uþ£±1ת·ñ¥›¸Œªåí¬%èõ\Hg î˜Ä+°DGÞÉÖªFa]–Ye[¤ä£† V-]Ñþ“_»lä:pF¾o¤Ü÷*ýM>ÔQúßc2×ý×Îar‹ðfsþŸfÙ~ÞÎÝQ»7¶¦T4x„U‘A¾¶@.;¿ YhšøBÓsÍ-SÐB•eˆi¿äÄ5NÆ·LR)k;RìÆÈøLVÅÓb~Ôd½·dÜ®À2¨5A3š¯…13âo]nwSïaZé’|¤ëÕ¹Ðc+b/Ȭ¼ÿxvOö±ýÌl€Bð“†í¯º ²k <¿ò}ŠËýÿ…Z/l(ol¿?ÏÝ¡ƒ.ß0zLh9gÊ&á´á¢LÂÃØ/WÍEƒ´f&P·&š’ø¿½¢]ƒÑfÿv|ôI阜­¢„²º†Ü/Gö¾$V °Ì6ñÍɪ1¡¥&ÌC sà x>mqýP~pEߌbxmBÚÔL½bÜž›ñÄ`‰VÇ\üÏä™’ «ˆmPhEZLÖ¦„Ãvz¼½^.Œn¡sƒŸ"ìeÚÞ!‘¹f‹.ÿs$ê­»7’­ ý„ߟó"õš–H´jz z1+ŠžÅÀ3µ7…d¬8R±çdW*«)¹^mÓêìÿ‚ËP‰,ô¬Ëê¶ÐÍkÝc8›!Ó"]OÀô¼ä1{¶Û{ ýº4¤-¡§ÓÞDÇí@7·Ñ„ãE uü ®ÔŽL21Ùs)†`×dš š)Ä£@M ¦+%›½µÈ?IXcMpµ!ð­Hvj¸s ò4JÒ2#<WÞ?Ôº ³L&ªg[±z²_žÌl_»3œXy´.ÏéÃWûŸΨ” ²*€F§’a1ûÀñû‚éJÁÿcÏ~ZŽý×8†!žÿÒ#h"=ü8y€ Jôw?ézÅ<µ™H‡ˆ£þkKôÍR„¯bÄAm`h½Qƒ_•ƒ¬ˆ×©G+„FàB0F\ïîæ¡õjîö[Ö2(WxKüBqðŒ䀇…’ïçÐͬM þ¤â³(ϯüØ>¨ )¹«â#Û)Ê%VM=ckÊÙÑ#‹é\ÿb§ÜÎÁŽa@ChM=D îf(#@4­~PS¢ˆã”³â­0,³4SÀ¥ð[Ê9Wµu#Ëð¸\…wt'`ÄCÌ~NIþåF‘™ø³Û…÷üûR¶žjäÜôÄFYËŽ7¶éÙ½B«þd”å¦SN}å–¦±}[ÅÒ%*S¨Èpñ…âA$¾%^ïH[%bð…@…p£”ˆêvO±íU™‚"ÊjþoCجr¼©ž[nú'ßÞy›ü3à•g½åU‹½ÑUjM]LÔK0"üŸ•fg_##ÙŠŠy©ÕϳFP‚Ë|š»²}&1ìö‰w:jCÑ‘>ÂO¸Ÿ‰PÒþÕÒ|¾Q„Ù=¬œJ<ÑдƒfÛ7l¤æ^xøj¯›6cs •ø õdž´œ‰¥] oËZ©Áç5¸³_Lßçuή–'õŒü>T«:ùC-2ë”|&wVD‘x8ÀG}pƒ„*†ÚêÀxñAZŠKç³¹¿Ã¹CI1¼¦qLqÙ—g0 Ñš¿Ôõƒ‡ÞzZ°Þ#?ðÝy½°ÈÖ—™ÒjÌ+î½H(ý§Ì7y,¹Vžø „¸È›B>Èù¦Þ uDˆ‹±ðf«bXÂ@Žÿ1baíŠÇ¤ôËv÷eëŸ;Á›|ß®ò©k-ól¢%‹ÇYQä~*“ƒ+?]b–PS B2|ÙÑžUÆÒ;”#Ïë>|~ÅjOIs.(>“’ô+vÄLzún1cRÄ<‰Ù´Ìëë θHbŠ~Xà=ˆc5òoq=ç­¸¤Ñß?ý ƒŠ„æÑ´&£3R,1]ç‰7e…K=šÔ™Ân?‘ãI‹ Q ¦Ñú<¹òzÍÖ“–騋úr›dr"X&ôÇâ—Ìž"ó¼ºöŸ3¦n$Ýç¶‘¤ XBd¿SVmrᜱ¹Xöeà3õ°ñ:½¡íAŸpñ”]¶wà†šAŠW¸ñr(ULŠñ¥ÍNÖwF&ö|ßoLËâN=ÍF…–øÐ!¡¼Á20–I…M—àZ22ïÃÃæa89²»a·Ã—p×ìOw&˜QÚs>ÌÖ¥¾aš¡´îá„v®öåDzÚì—|xlÑÔÇžS‚Ù‡M†# ‰™£%ÖÄÄ9/DìÌ=–dséX¯ÄýbÀ•0Ä.ÄE`Õîj~¦YL+ܞĴ¯áryà-™†âüù:ÒI¢¬NÒÑyv¿íœ½!>òÕEsX½A/À8Œ©|&ÉÃZ*´yüœÆœ3Lž4Á¹Ãz ð*C³ˆ Ü. •ô½Ë3´úAKV°kš¡ST±Î0ñ´U/Œ¥`ƒAnìZÂã-*doÕ§ª d˪U)!_Õl“_xÓž1)øKUŒþ‹ÍÑVK—㑪ŠíÂs’Ò*ýg¼E¶çZ/£N:¼Èe”Ä2éòYˆù×J(ñÇŠ«X;Œ©„LU—!(3ÉÕ0Q“|·U:H5‘Dß5Ž/ix¶**ºžÎjôÆ<Ë.úÄê‘4’Qœ+ïÚI@Z` M-ÉÒør§qr­IžO¼Ô<Ÿ™Ã”ÏÃ8bÿZ–¶üª³w½sŽlùR“Ôv÷«S¿b?|BA3ØCÒ– „c/2êÃslt¸šžX;;­|ú}¸•ü¶óVãéã2(ø ”5‹ÆQ" Igâ³»ÎpÎî Í–ïu$fÁ »­cäÃuvâ»JYQŒ›wö¾O{¨¤TÀ8Øa–h »1°”É¿wæÞsM‰aQ@ÔΣ¯°l€ö†(MIrÁò£T-ŸòÎ7hx•ÇÉ$ ˜)ÙêΫ4òöü$¨uE¥p⯎¦ÇvÃQØÄ%‘ê³õ¬MèÖ§Ü›ÉÙ^4á´$λß#0.+ª¸ÁÊ )#û-ÿ)`+.‰?C™†ãäwŸ´‘®¶>‰¦o— ?OhìHÆÏEJX± éçðhHïÏ´¾ÈU¬¨³3ðãóŽ!fyžføsÁnòýÆÏ€W¿µ9¼’¯ìeU´„ê´…óínˆРÊ;ÆIŸomw;I°eHª5!”'i•›Ð@ã¯b“7Á í@ d+_¡’7wgIï…”xW²ª›¤ÛÕeZI¡¿å ’Îñôâ¥2X/­ØNzÆR÷_ 4äV•×Ãζj Nù»2‹5òoÛ$¢¸Õ1ç6/äÑ^òDylaêUvÈZ ¯ñ$»ý_WqdäŒBŒ£ q‚‹ &ZwÀK_¾nk ò.E]! ùËUÕ•;ž…¹ò+§yóäœß@î£Ô›²X‹KF»d/Aë—wñÿQBÆ ‰ef#ÿrü°~mXm=‹V’Ê ã¯ìú›êûн]ñå´Ïø–å*3uUG°˜£Ê¼Í-pŸï'Æþ>bX'ϸqß’è“’ù'î˜C …Úo®‡Oâcü}ùD E1unÉã M7DEI¹€xI‰€“ðò%ûp'ÏݲZ¦×¥I“Á~àò’rÔ£tÞ–Ï>Ä0¶ôô"ÂdN©cp¸ ¹aóRC+6$”è¹|Pç”Ô#+Aõ´.êÉ9ò(¡ÿVÓ=e†=Ô2ö„¤ÐZhŽ¢¸û\HÕ®l Ø\×—Íœ B%Ï ÷„ýŽFüì™(™r¹¢8_zØcës$¥;kãµQ‚üûwpß<ÅÃ$ DPÞÜÌsRZSW­Bñ!Й›Ý/Ó]H¬pGŽs¦I½¡Zëô¬TDÏuÛvìÄaòp9w†Z³ó«ŠrzJAéq‰Qx>ÈzŠ\­¹XYþó6Mç–XíFUÉ?HŽ}ÄyÂXA¼$À`—y'¾fÒUÓÌäå­}xÞçªH¸ñÑpn=W;•Æhè,X&ëŵnç³ÿ íÍPõuÈ«âÌ+!˜±?½dª7'æÿ\ݪ÷6%o{»ëéÓEÄôÞû—ºE‰lCúÁJýÜÅ…&:FVÚ¶œ0½é˜å’±i·g*€¿i÷`Èó² kbÑ›ßëÿ(g IÂVŽÏ½qaCz3˜Ô"ÿ|ƒ~º]^a÷,‡bóPq0Øt\{¤9Fâ…ÞžôyáV[^ï¯óaOmZãRÄy¤LA|âÌÓ²,=“s—Çy’h¤œNØBHüM_]ÊQÇ åµgIÃLX²‘Sâ´{hi¶•Mà e}ì:KEmÿ4NVQ3Æ .x‹ÎlÿmªW  ´ :jDq¨—7Hkcê>{Ôã3âÔuì|3B¯ÉNs ;ÛK7½Îû+²wòüžòXZoêzè}™×†G·‰¬ ¸n® yZ]¨³wøHV\ ²L ÇÊ0†N´¹ìÐÖ†³Ÿ¼7S·“ðä´jøCÒF^’Eä“Ã+N§|%®©t(üv){ËÇ+ ö“¤=ÌžbÌT2ö‚”ÊÙ´ÿ3‰©&DlWÑÔ{]}– ,­]Q7Ð|ôÎ oþ <—Lw e­`ÈN鉿:ª«­Fð­TðÔÃ1l&ž¾­œ¡_­ßzŒ?50[ð¬ìÌÇȸiôìqÇ^Md±V'wŠ—"ôG:;@ ޤú`ôY;Uñƒ W$èŵ³»-lUœî°I¡ðÙeà—;üŽÙõ¾¨Í{Ć^‡K;½T“7{ì^aÊ‚WLj;sÙï…ÄŠ’3\ªB¬g;B,ã›8ˆTÉOZµ§d3´üŽn¡PT+µ¦©œÚ²_N ðÖÄÁ`O,ø9:þ¼µDÀ¶¨Öûþ½VÏ‘T[œ¥­Qìb’}®eNGycìïz~õ×íîs·Ê8˜¬]/r±ÝÕ’ŠÀ´ ´¾ñ®aüyEkƒ† XñcwaKèÜîˆOÌâZÓ«†®g76jú#4Ú ¦½¬üS¼W1Ú+Áþ¼Øeõy%â/7Ëd#טV®##þê…^ ¶æ>M@¹›èæØ ) fÍ/©Eñï‡ç‹ºýF^z ^V¯$e3Çù1›ŠÈ7“'oNó‡&5@¸rœÕPsd{l¿þ‡ªÙqÜ5­.d¾œ¢º©Ò}¬&rf‹µNVÉå²rUIƒ™la’šb2ƒ‹%ÁW©ðÉ H(U…7Ø*ÐI†–…©hxQÔú ²ãU<#—*å±–}4ã Ò—ã’œõp:¾0£ù¹”þ& D© á‚lÑX6)jô`–ãÞ¯ ûxvÛß.£À«Ê¿ËøxǬM¦·¶qZj"z” çÛˆ¨PaÃÉ`G:oôZ8ûb¦Ôf»^¿s„ß÷T3¸´ÒjŠ%Ø¥Ñ&•/†2dý…ˆBòèM1ñðŸÎœFÕ¸Á™¢*†P"Û(c5*úÍüªÚ¢æ9Ý©ÙðSÕ°;÷™ðôqB­Ò•‡É—ñì T#¯qWb+Å$`\ùÔ ”äObÅo1BÐ×!'^“Dqÿ|¸¢˜Ì|ìÛkú> Vv(*¢=‡< ã®ö>ã´e\âF—¢qÌߥ¢Zû˜>ÆèVAës LÂñŽª˜Â¬•ÔÄãO_í¥jö}sþ½Ö]¨hf¾ò2 ëÓWlTH§ «£»X6¡Xü TQˆé×Èà&ÚšøIK¸åгE-Áµ®jŽnæ°eÜÚp*íHP…`Xå6}Ή„0ßý'ø˜†ò~q™é<‰QúâÉðpt?Ë8àW·ˆòRÖ}E6ò>:©xš©®I û(¾QLI #+Y2 ,móâ“å·¡(YöwA.«í˜ZùÍ".Eu!¢"fÔÁKsË‚(8]AéǾÉ@‹µ™DÖç‘ÊE‰¡°EËgêeô¨N!³¤Õ½Öc“8y•rƒ¯ZôñUÉ®o†Vy!«„ý­‹\2öüÎͶîÉBðߎÁ¿Ñ0H¦íÛýµ£–™œ¡yÀ8à<1ÉGˆ@޶`_>X”kñ[kù;Þ¥œK =ø-ÉÞ#£›ÁÔfd'ÕDKè°"‰U˜OEŽeìàUG{·X²©¸áö ÷í% -:B\…Îçjb±QÄ®™Xà…¤T¹«Ïg©´£/ÀÄÿ.a'¼R ’ð÷¸×$¼0÷ &‡.¸¤œò¸óÎû)Å“ØSî€eXô˜ ÷¬<¼#7TËy>+°å”;sŸ“DJ’QÏi°POÒ“ogÚGØ”¬EÆ@ê÷¿±øÊúVûmÖÈÿ‚ höµx „5'=-ßso‰±XÚŒœ‚“è AÝìÔ[c¡2'VͰ£ÛÑvˆºå øa)G& 5ÍÐØ ¼dŒkãÙ+KK¤æò7¼.”Ö”¿–Ë]ð>ɸqŠÏ®±eZ®}“䨉!XÊâ•t™JanÚ>à§ëö)ôJvj"$}Œµ ”Gûë/Ã.ƒ=ϲAÒ‰b¬*ãÎe0áÑùëbÂ\Hb…Ti˜¢6#Ñ×âŠQoü"kÖ0žË0•ÒÌCÐÚãÛr÷ˆäyyJËI’Cp(Ÿ$Ö±z"À‰ Øõ<Dncà¥&ÄÜf9á`„ýf.¹Ê!j¬Ðha¯ažÎÊtøÂOÖ›,VwµÇÝù(ž'¿Ù—DZ®‡qÓÀ`ﳺ”0‰ Åâ‘RUŽÕUŽÖ\q²¶šfÛúÇc|{/£p¹±”q¿~“•Âú©iUâ{±Dq®ËƒÐô’‚óEYÉþ͆P¦…Ä£/J2väüX#AÛ ‹ÉqÁ/âöU8â¬~UˆNߦÁ"N[eÀ’„_7âõIE‚„.v)û=wªç)-Hô³ ;%¸Í²°ÿ]õ†ß¸I"Ö´0 2î\xÆo‰ŽÁÛªßM9}_¯™@µç¢%ƒ¨s¶ãB]Œ©½É½w&œˆ‘µ&­É‡CÇ´V²úl íëxëàÕõmvX½:AL,”Á\}¯fåS OÔÈC¢ÍÎ¥Î3ãépPêê,û†fJÀ}vq¯*žÉ5£¼g>åm†³&0§†àªW(šäà1èóKr˜ýî0Yõ:›'  +BoMNzp>’º °IÈúp!.¬E5¹°>oóZ7Þ"+)Ð3g±¾%eÝ5.‰aœÈ7 ÚX { TÁÜfª•@Á,gñé’ùš#7¶$¹Ýfý®ç;%"1ÜÀ‚ÍöÅ »òÇ¥†ÞTÕYoÏL–΋_-vtŸ5³Ë3¼™μÇ«ç'píä={DÒºyR†Ö'Œ–Ñ-xm ’ÝìŸU•Ô'~¾á=O¶UaÛÒOÆNßuW'#êª ÐŠ®B˜H,(뢲ǟ݀–…ëÐÛeëá ¾J”O˜‡¬¡dÞ­%P¸Ï–.#Ê åCRž(}”®áyo´þðEºolS-û,°á‡' )}õ°huÄ€ë¥ßÞfH M‚h¶rô—GýÃQ”é€dÖ”@ ¼Ô&-ên3ê>%ìu¥íwhÄÀ{¶"×D&Üf‹³¨‘G1ÂÓ7¥àè4bæ~h–±‰AX˜ºÞ¸*aúÓœ,Äž.n…m*™„pƒ¼ÑsT列ˆ 9¬eÙ¸DYö ½¦hƦko1×|qëÃûâà¹iÉÙÖ™¬ðóOÙ·æ`r]ÊpjŽRAŸŒ§ÔI‰Û^LKa Ï‚ºOŸÅ9_…jºG:•_w( Ÿ*†íÄœbñÂôE ãZr> ­zÌYaÊñt™l…b}ÕÎTBÄÌÿ£à+lÿmž¿˜”‹ºŒR $”;oÞ^… cçã;ÔR¾JuC?¤ âpˆtÌ©“Û>ù”‰[¦BvsÄ ˜T3¤+˜§}€#ǤëøŒó}ø)Ü?ÛÕþÜÿ{ÎÆÙ§ 5ó€áµ[i¿èxÖK‚3« ¬Ù$æÃwÇAÄ\î.T•щèQúç&U”o’xæBÂJVß6ò/!邏çHL&6ê«jþk©™¿âÖ}Hð‰~̨!ûÂf,h¢Î`‹V,Ö€Wã¹>ö¨‰à>€úš€7÷>Oc÷£ÑˆTz8ßRXGû)Ø•H2r]›.²,æ׸\µnþ‘§IƒÐ™öY˜ÇUêJîmàÛªÙ Fƒñ-}à(\é9ò=ËÌ <„}okHXáp! ‡â £¬è”ã³Ï#}idljÄ„ÍÏ÷f'ºQ`e)o&Ô5 kÐ'º8&'  -_kv™›‹öÜ£iñ‹b"Æ~-¹Þ|?"_Ú íÖ˜AÏQµOTL ã&‹’éî¨ \øöÓ( pWGD“+ú ²×éó7YUÞþOð‹¹ŒÕ‰„bŽ9ׯi&hµ)zñCMk²:àÓTeã³ÅLÅY§œÕ$©ÈxéP„É¥&IW#Æ'µ9¼’¯Ê— 'g ^RðÖAÄU]~ ÛÓ‡Ç}S(z‚ºI¾ýqc2ô^–f†cÔßÐúu„{ˆtÔÅÂH*—° j¨pªið4íàö>À@S”c~`5á%t=¢ç·»t¿YS÷üÌ)Р5=!ºi`%ð/¸=zÿ€ˆ¼T´ªÑTpK~¼º¼Ô{r™ýKO¡‰§‰â†Úè»@@H•Qhzæ` F1rtÖ $Ñd¨„|‹ž(ñ‡“ÞþCö©ŽC"¥¦9±‰][™}á7=†îBb\;âDà»U˜à±<ì×µ5ž?þk‡äÌŠ$€ë½ý¼.h‰Ná¨çO6£¼iò#”]Ï6góøà¸g㢕¾‘ 77jCø$i%"ùSU5cå‰äÞongƒêØ™§µN®u=®ë$y Ù$ʬÙ|aG[ âùZùsêüêC^:/£ô|Qƺ·´f^ØBŠ™"u»¦&[3ÒÈIiEUm[UX–´äëä¦[ºGŸ¾å’€šísrÍ$ʇhèÜm£Û1ûCÜ ‚†½Þ¬ûvÜQÍòµ¡Ç3LIï÷PÚ57²?o(©U³¥Û4\žJ{¤mønzêU Övq ]»ûIOs‡I ^}Ô­?q/ØnF¢­àèˆEÍ*Wþïß÷{ÈÄÙ.Ë>r¦m_Ÿ’‰×|[ÔŒðQWo˜j$ñ·:=OÔ¾ôì­$‰ûHX`ØàøÁ±ï‚jºA¼Ý“˜ß_î8Õ¢Äâ:ÛdÒƒÕR_=àÉCŒ=¿h²ƒüåµR‡QXÃjø!Ð÷¤C¹Ÿ”¯™¼Î¥«›&ÆzF@(ÇÅC¿xÓORN&Y±‚Wÿ ¶p±f¯7U2ž$E©Ý‹ ‘Zîx¤·CÝ?÷n*~=$¡Ï°+­êÔeða9 W•°ßJ.mغpݳ[ùÍW^®ç¾¾ÍÒøƒ¢p8mß5(”ãÑ–´Ÿ1õEÀ¾p€JŠßs¦Pjø¶3@Còh½MçjóZi…Çqܨ°7f˜À¾3ý Ûñ +Âg¾üT2GÍ’" OÑ«|Š›ÌÚCT<êzÈ·Q»‡•NË›¿HZYj(»{¶rY.U÷ˆE%•Å'Œô¼àކрûmq#sçú"èC…ˆ›Zf":y|Õ¢”I­ rÐbä°Ñ<'¡ œdUl¤¤ûEjRrÞªMêðßöE’‡èxÒ¶»8ó˜€Hû93ƒÆ ¡qC–ó—x­“ §Ö$ûÑg‚tìüÿxd2P†N”àžDiYdµ™`jWfá¯ÂaͲöõ˜:´šú¢»·;y”a¡Ìž¾æšÔG¤‡ ß èsŠý¸F´0 òrû÷zëèõ>o˳¥k¨8Á­Võ†ç¼>•SÎV˜KbXÞË¿õY ,°Q(c4'h•”ª«jo½7´Y°eÌÞkH ±íG?1¼÷oNHïÌ÷Jó6Û„¢NË*1¨ÁF!K¯åÃr c%y¿§]¯!Éâá]ù¿H ¿dĬâ‹ÎOÆ’•Ñ_X ŒIЦH”B÷RôÀ7x1¬öq‘/ܦ“ú÷׉P9²ò/¾Æ]©¼xìÞÕoЬÕå8UVñœp•a’TåT—×ZÌÍ1z­ó ˆØœ ñ¸b…‹Ýï±ýD¤»UE­˜p…4Í'æøŽ/k›OÛ§ÓNTÿçAñHÑ ¿²¾N°oÏâ‰øn\>ÝŠçõg?̧aü³fÀnþ`ô±î}€{ɧv§ô7Ù¥«ZÝÓy¥ëFúçî2ü±í¬ð¿cÿ~„ÔŽØÎÃèëgSþmüñ<ƒEË îÑ¿¹‡S»¶i„„Ø€!ŸØH£íy‹œA‰ò«|e(4zh%˜“‡ˆ…öüÊælÌ^ê°ÃŸíJÖQ­ÜW:œ«F‘¥æÀv—ÉÊUA£6®©X­úŽ„Â¶ÞymDD+âÝ"_ ÑZ8P_¸PA9È Þï¡"´„émÝ wÏÜð×Ý€žÇ}Za— f¤Å{6߉l{gw­«w¤Ñä|%›š­d´l•Ik½>BÙ»ˆaükiSŠrmìªo{¦Ýío¼Sø"\Q_Þ¨“¯w’(Þâ}!ïQ—ˆœéV%½N¡ €{û¿À|3aO8=]ñÕõ¾óõ^QVØ¢ÐäBBútÄp•æ",3ìÄÓéR—€‰> Ó¸-w¼ñ‹kå}ÄOÛàä~Éa#´c-h™Ñ’ÿZŒºÎм“ÈjR ’½¨:’oµGzž‚Ŭ&{¥ÆL å—ê j9¬úŸ÷…¨„àkƒÌ¹ù4(ð+’;-ƒ×>V˜4‘õa,³~2xµ=­0¯Ò‡ .™£-mG‰]ýQ6= ÏÔ¥×v}R€V) $•u‰æ< ŸhrŽïˆ7Æ· +…åDJ’ ‹ŽA.©Ý$Bà-‰fq{³’i}1rtƒÆB: °Gï$gP,©‹À4Ú—i|¯ü›9Vdì…  ± —/1zïBÉP)D¤vê²[…hÝ´qE6Å`º©óÊ>1§®ŸPoW!î66²<Ð="ëÖëp·U\^‹Z=#â0]j‰þVØ3:×ewÌL+qXÞ±Ò4ˆÝ^Ñ¡Wé pËÐkB«Ÿrë¤lw‘éF­Ý3Eĸ­tÁ’=|ùð¯3ÃÛŽëNiÍô³»ŽÚ†º w*)ªá¶ïâä!Ñ\Ç¡Y÷Îjæñ€rÆÔE™&°;e¯~n'àã`k=ÿ‚)ß­ÙJ 31‡À¿Üˆ*icžºÒœRõwB\Åæfà ì|Ê^üFç’9ά9j|9¸/§]Âçñ(ÿyúS+ßVbVŠt^]–ÜÿêEäò_‡Œæ"®ƒø;–Š! Àž·`@Iâ/t;\Ï$éùÐs¿¨ Ŭ14£])ö:¿2¶@§2KÈÀÝ!óMªÛ 2¨P qJš&r<ÿ„¯mïj‹‡”À @GK(D:ÚU’[1–g‹$úeçuOYšªQbýʺˆ )S¸vý ÃX¶Blb‰äî|—7bê šç¹tŽm'—){Án÷ŸçöÛzRT‹hï4¥hÙK¤êÊ4ÇVۚ혭@×xÞ5ަo@îŸà…' NˆPÜ2¿ª4°òÞó7P/£æè‡Þ§¦ø¶(bè„ÅÂi,½!–h>»´4¤T”– žzõDÛæÊŠ%}_ħ¿\–/i…ƒôßy8N¤J'Þ¾šP ›×ÌǸÖ ?ä'ÍY³7e3èøP*û¦ž¤©WÈqâ“æBC*¬±]‚¿¸f Ëak§3Ûn§’‚’ïçžçðî¾û{ë¾ßAëíï¯?‡®7ðïÂû}¤o·»?ojÿ[ÜOíôý½®€õäÿ˜ši”׸êe4•óä9j·ª8§Ï©ÂÓ­dœ€D‰Ó•ìŹ2Ò†^æ#~šŒ4 'µ[24‚+…›wjÚùýý4êÖ‚n­ñÞêàÜöÄn fùí@OeÇŸÉŸM±g9‰Îã†`µôãm4ò/TïØœ=HÓ¤|æC±âÂ$/Ì—MAîl›'(¯ì—žÂîx²jnå•Ù ,Íx-‘ˆIˆÞfOI„.ÜÁÀ5.M/Kñšx€ÒÙxýÖaHÔ=lˆp‘`ïO) s5¾A¨ñtƒeí€ùðI9×pòdõ1$ †PטÐ󆄒 üÀ¾ZEššt=ux€ƒÉ‹+6Ø7:‚ÏþíG‡D5ÅkÿëÒœjÑcµb)Ó*d‚*,úü­]‘X¨Í¡{»´8e°vÏŠ\¦sBu@!Xö»ƒà^q| Ã;¿;6ã”ÎŽ2D½rÝ0µ¾ ¡¬²^ðvž–ÐÙäŒ@kä”â³]L“üå¼af -=¬ÏR†p­dA»Ç¨øˆV)Öá÷ðÐräÀ~ÚþÅj¼ÈØ€²呌›åDMu!Œ¦(G;ÿ’ªÄ{ìÐCõ)‡‘†þ<¸m^½gb}"§RI•†Ãp©y.:H†1‘”ÆE{má ß®Ã7ÿ®Aöà1¶Uá1A[ÛåPÄ«·½]­q- ü¼†`ÜÞ6‘Å4Yòp÷nmBÃ[ЄŒ1–¼ ¾OÊGü©íö<ß SÚHh³Ö[ái’ˆQaad£DîÇUÃ!I*õM˜Ñ]ÏcÅ‚«Å}x5ÈÈP¶5M9Ò|ù zs;$êΨˆ9`b¹Þ:AS[F8$M9gR^ N,ù†Ça±º§¹KU4¼1þë~_ /P`6F¼Ô]nûø½jT{† Ïnc¡è°¼’°Cf‰¼õ5÷üfù)´½7¾5æÉKÀEçáî\ån¹\‰ßCzó§÷J°G0ý“$L40¬” ,ŒÝ› ÍD~É0-ØR•šx›ó !Ï™KqÆyWÇ=¬”Oªƒu¨©d`yO8îÍ]~ºGHÁ“gÏ“£PѺ¾å‘(T–8ü àPTäž›°òF¬œ#âf¶6£Øçäߪ÷Õ"ªà…f÷{H’¶*qÔ$ê,·ñopjª÷h ‚q5ºE*ÜHL x4Ñ‹fO€&ä†4÷ ©‘U˜ °k› ÔKS’¯"á[ŸÝÚX`´}س 8\;©&6×mfeeÁUÉü£h÷$gÛg'Ÿm=C‘ŽhÐ~øº,vUˆòyÿƤZ/‹ši£ÄC^S×¢L2Üm+)ˆÒ.$ïz.®ˆ@0ŠÅ=ÍTYš‡Àç%Ug³æNI£^&ÕAáãuâÂ쎔Îb9=íF-ŠÂÀìe$=9F]ÚA5@û×÷ pº¢üNüãT¼’ Ê2÷ê7‹ç˜˜Ò°óLú!"dÝõ–ŸIþd«0MÀv`!ŒL~hm.lV»Ó$rÜz"U ш݃Ѳ"SûÀ¿ÔMÊòÈá¿¥¤õ„üØýg³}}8ÌâÒÁO¯É ö]&!P­)ìh×vѪ¦¶­ýç¶aGœ"¯¡/~Ýw[Ú€yºdå{æÃÁ®+Ú{ Ê›ö_ÑN®a r°©K"'®œá·Ncs‘è4;³ò ¸˜±A|ëpQ9ñƒÄ‡wMFn^‘AîÖ‘ÃïM]æÛsþm˜üè‹õ8E™”’¬v…ÔpâÞò\ ».öìûõ)ÚÔ`[ú÷°&Ì/è_Œ•îö™¶²«xÖ ®›V šÇ(°¨ÓùT›Ð¶¼ó¸ MV¬¸v 'îUùá±gÅAb7 Óú¢7Dý¨ù8 ™ôÇ[¾:†*f€Ô¨Óã"œçñJƒcýYÄ+*$Ç©âéŶ ”Ûÿ{Sö²†T`öžÞ±ýLˆÈ;¹}"sÉ›'À?ó±þrêo&¿csó|üìf§7õŒ±6s0½ö¼À#N1c{ñ”¬œ&öø+g™u1Y •Á­`´(Qð .È éÌv4+÷å¼dí—†¯¯!ó¨:ä[Œ[eÒÍoADyã¨áÄ¥ t=º§V0»Ñ‡8êê>%“ìú"‘鋟À'C -î%SW3ì$…."Ãyay‰9X‚ŒË›ƒ©qùKþ5Ìñ0žZA‰ÁO=FéøŒ¶>øRBèU C¶ØŸ&¿tÓ‚xWFŒÇ7ÞºCtÃåW›ÍqòI‚Û5O®šUdµʹӤ+wHÖämó«’Ùy5¡?×4ìÀ˜V,wžãÆÅ/Z‚w„¸ÁŠÅã›¶Ý…ÁC¬*•ÎÀ–//å& X›Õ-Ñf â\þË’Î:Br¼fjd#‘Í3{‡§Çƈ±ó„‘†«vS¯xxÒK1Foz¶!AêÎ[½A]’Ëáë…‹âÖ&Œbb±þåJh©^„ÛÎW¦#÷~,/þ·ñÌ Jж>ª±mþ§œºEJfºýØ­¢|ÇIRð.Ímâ—É—$›¯¹Ô[ ÆßàžÉ¤?:¥0s“)Îæ³X+6¯„×Þ@óêœ`9AÊ€æT|·3¸ÁÙ•Þø=ÀÒVjW‹«7f —»Ý ‹*{ð`‹%µ$¼FË2rŸz”—I%‰zò]?£_PØO<óx¢v†G¤ŒîåèS:Æ;¥‘¡EW0HÁNÜ:`œYxcä›7¡Õ !!‚„ œDmž‚°·¾ú'ã2 ̆î"Ýâ®o\Wðh$z™ª êå0}:«[¨›Ç}FónÆdÛûÖ/wxñSDkÔùüòYÉйyÄäµßE £×&ºC‚yDB|å³€9XaIF»¨*«Í؇Ç+.ù&lÏW¿”P£'_£'õÜ4uÉ1ªäRž–yÁø×_FŒWBÆGM¯—ù忳À‚8—’)óh©µ|[­¥öò¢eóTŸfÙŸ4íÝÛ-`G!ÉKüR’ÊoýkZÈ3K nº"‰³þñv.Ö¼}†3êÌØGÜ"cw±„¡y]žÉ>{óféš\ýâõe"ïJ’ä?¢§Œs/¦¼ŸJ‘O‚Eï] ¯ˆ–°ÑÕ«ôA1Z:²‡™º\T®Æx GR‰ag˜÷2Ë8j:°H(“%?xjýÈ`D¦¾ƒ­ªÜˆ‡Ôv¥R¸B…øÍ¢Àžä(Áàx‡ƒfaw¸øŸ±8¶µBÊŒ¾¤ƒ8)q|·ãAÄH „hà8-@¸;ÛÆZyøŠÏV—¼#<’êIÒ"’Kv‚UØK¼¨qó³) 1ÚõOLE0(æ%v:ñ™+¨‘‡vŸ6hÃ!@Lïi DA’çÑ@…ÎÅ9™Ë§¸†ÿ[f`Ÿ›ÿ_÷hœØÐãщéÎDù’ÖáO.,¾U)Õ¬lçIŽ/€pŸ‹ i)¥úfç⌢—_)‚-mŒøé‹ ;ëËu犬`äÑ‘£s˜¬FÚnøËe‰œµ`ó‘ Qf^l¹Ôv8’£†µó’b[0ØÑø¸pø»PsÜ&»76¢È>eºc\¯GÎÎdk™d­ +…:ëE¸ëçOC¼³;2l)_ëŒD\ùíж¾‰H[”ÂgËæâI2ûnÐí¯¸(o<‚¬ƒf,ÉÑMìôe“©Ð¥ ¤°H•€”ø&‡<[.âò˜èË=ªÀ¡…P àC“YÞn‹â¦ßö#Ûøû!öŽñs–†P=§uX™½—¬âl~ ñ¸ù¤ÃÃ?pRÈB9Aš‘Þc­˜l ×a­÷Zбí#€”\®\ÅRK©Púï×wê὇¾ã¤c!ŸE‡úµ¸&ƒ2àÐÈed àUoÃ% Åö•±°Z׆Ãì='?ØtX„k×…^ñ€gÆ»±OD|Ñé¨pš{ ¡7þÃ:‚ ƒ¹ì“5lßÅ»õz ?ü‘"<‘«@¾ÚÁ )t”Êb–7¤êx—jY °â{€MÆ>wBÊvà2ìO Âñ·ÕÍ ÃødE÷Ø_íëÀ±ã2C•®‚XTžoûÔ$z)@NËÍ®xD«®ì»®‰ÄÞóOuR<Ãÿ^>vaÊXyÞC©Ö$¤ž‚Rñý°ý]š¡S&&¹íÄÞxƒÜèhB‡}ÉaoÂÚb\2ß?íýcØìʲKçM{å€vku¬u™SxÓUKuîÜå¼!À/¿¢º®ÿFŽs¡)_i$º½«§ŠMK%Œ×GÙ²OÒÿ#ÖEé¡#6ËÚ¡V)a뢳=ûÆ2ú¸Mg®~=ðåïûRð/$ TQÆrsK½ZàR3¹@|l`ÀgTób§Bžì~ý—ûÅäР4¶§ tëÀ›àS"X‡;+–XòòaÊ ˜jš‚ie˜dáÞ&Œ1ü¼3“ö¾„LëH=È,¦¾¸‹Æqií”™ÆÚºožœ½|ëF*¡/Uâ×i™ùf™þÕõ¬<Oµi¹ŸC°!†u^0§vMDV«}BOµ;³‰ÍçQ_yÀ;Q"=¦ÞI*Î"G›Ò™2'ý¤úGAt¾EsŸ“ø½W€1äÝà©€£5)ÿËÎH¯«ÓVCRYÿ&”T.»ŽéjLü–y=ê‘­ýœ<')âˆIÒ*à8Г8´SïŸËý­°Õ¿g­He푎9KÏ0ïÃi3po*5Љ1x T¡XÇ•°E8s]T7EìÇò ÞfA$8†È$N cÕQéUͲ3Š‘„ê”2¨¶Üt˜ qÉPéíÛ›!Ë 7D¾ÉÔ­,Ô™±ê¹hd­ÒÆŽ²Ô:5†7r§ìkhÆ‚ké”&Š¿‰•ŸŽÃ£Ò|_ç¡}ð¹³`â01ÄyŠÛ ]œ,þa`)£Îá5ïwä%~ÃcÅúW®H«z¨•G6ìhÒ… „íÑ,šˆêL«¸´èÙAw†øzã B±¬ uo'«àg_éâËç‡=!a2+pöˆµÐ+–Cé”ÿfeÛìe“^sœ›tH<< Õ™"cZ¢¿Ïx"éÜEž€ë7 §õx7 ¢‚ëxq‘ýÕÖ@ ¢½pÀº¥ ÙðKˆÓl¥ÜÕíÒÌ|Ö.ƹéè燵¤ä‡O(YHZM¬ ³§ûmÛ†gÅ€8P&{Pit.‹’â½8ÊãÙq}~ð<í­è-˜uƒçVÿcFx¸”û¼C±®&©äq;á`äÝÔV†&ôÎ ÀÞ`|&ÝÿÊ@8.’ó <‡·[!çlV^¬ç:C|.‚¡8b–Q'UÁStû[R'g”F˜q•ó’½êé¶ŸÿU2`N¬¶Kß\Á[³>™õoÁXuĽúžKœ#è>áW®ÊÊ’˜GéºÌ»üE®ùÅE~ݼø%ýó<»=7—e‡°g¿Dšl>¸.ê_é–Œ2PSì“ Û“¹“v#üé öV(OÈæØk‚í¼D4•AÕWQA–fÏØ@‡ûð"h™!˜Çgüð®rËMXà…{Ã7jÌ 1ÞÀè‘Ms­ðfQ­Ö–J§íDïõmª‘­ª{±LÄàtK»[™Æ”8pFÛãEÉáïf¨ GšòÑÈÁvf&6º=ª#ú ˜²$—äÀG[ÕŸ†Z9»DgÍ#’G7e¡é¹ôs9¦D¼½M2 ñ1wú»»ÞûÎÊ·ˆr\ôJÐÉ •×¶³ĨHÚ‘ç&3äˆ>=Ö²BåJ} NNÕ™?Ñ ñ´· ”ÏÞ¦\á\:k½³“œõ&´"ìk"Ôž\ÇSþ"×P”±ôðél²$Ðìü)†{§øØë `ì Ö ðBÀ´^$SKø?mãÒßÿ(åSDÎIÄâßy¤JI;AB P4“)¶ƒŸUû¯/4 ¶ðBº©Àz[ÄCω´LùºžR†0JÏM  KK.¹å*«ÛæÈýãÀ¸{ƒRŽ9Þ7åR°Žt¤$íhG9øŸbGB>‚ðWáŸx`hUïjXìüÿ%ŠÆ¼G>ÚðuæBýwòˆž TË7Oš¢Ä_1/ö‰½|Úéæœ5A² ]‘—¯x¨R¢b)h lÜ2{„“"& ìž|Á&…K¢´ 2Z°öR—"K1z½IZ«ÕgK&î,ö¥MºÚ2/â:y#¨‹Ã@kØË!†óÔ ,ÌÖüHL,œƒÄ5µÜl‡ð²¹˜3“&1QªkU†‚j4Y¡ÛÏÝ{Þi³ÓesãFÕë&=·0²ýÝ:ù툌þw&'0ZúþŠÁH?w Œ²Ñ8H°íÖª®há=(O§²Í ±Rólôn â¶Y®{YíöÓÎ~7@ Ú ¸²Eư?®’¹*nL°quܰyX×dch8úÓKüÇ静ބ·ºÕ/QÊ^º6žÝà9Dzw$ýx†Oó¹u&d|ÉJ€¢ôZÕbÚ¸³300l1aÈøª­ ¹ZÒ鳫³¹¬­÷æã#kƒÿ,uš9_o·¢Vï×YÿBÑ4å¯"ÖU;9¡É}âbÑ4Ó{6T'‡§XÆË5(³hÓ[¬¶²À„ná¤Æµ îÂ=¾ì”3I\–1RîbhÃ|eŽ\q§÷0:¿%_é zÛHN?ä0¼v¤Œ ó™ß/·do—Ę~ÚŽ´E žôû¡ù¼æ½ (cÇ|èAÌ'ÐùLkú]‘û©m“A9Ý¢‘Áž`±N¤)±caâ§ßc¦à …³öñ¤EŽËP7޹ ¦ñéh¤˜ò‡Mt§'{Y]·ˆ¢Œ.$iÿC¤EïŸMc¸÷HßG@äh0ÔMæ%÷E¬õšÕˆ/·xL⹢˴0y˜^–oIüžcç0ÚJ ñÙÕeàÀ£öh•<'%CNæyC°ÝóÎüÏ `?>»=)ç²_7–'wPšâæq‰š6(û9û(=øß:fñêŸç湪Á!¼]í”l(&ç-»|©„ò…ZùUµ+9œÏ¹ýž%T­s¾Pj žî"‰bð c!@f&À`f8¬…_ƉÖl3'ïñSáQí–©¬ Wùλ“|áwhcµËŸ± +‡x$÷zm®ÅÑ"ÂÚZqȨâ/¡h¹Î_Ñ[-”ý'=åEÛ9«[!¹ú(+"•4î•Ì´£I8µ¹;ð‘†óÞ²%ÿ,4gqt8º Ý£°•cDZª)4Sù…£LÌDi‚ð"¬¬(oÖé<àA ½– Öꢫ•ÉjöígWiòïGÏhB½O¸}Ýg¬¢_‰81v)®ÒýÛQCÝÇŸ»Oëlu†É=¼âÀ>-åd¾ïÌøC±øèNËÀÂô‚üùv-¤ÌªcíØ­"‰A]=ÚýóèݰF5{S[rN[\5Ã౞·‰U–¦ŽÁá© 'Gm4o¤µ€hGHYÅ‘F *ŸÈþ}ñˆ”ƒ”âœY¼HAßð™àãËk°]ïÕcTå)ɱgQ½uŠ%n4œ˜‰G«yWÝ&zÝ$£É›~øçá´‚$LîÙ0Œà Ý·u¡\“-ÂTÔûFþz¨¦£aMµ!ÐÐøñM•œ!3Z˜4NŒ Jý…qÒ¥ïyeøp©iä™xÏ=úcqÄR%Ù -­„t´§ä'%ñ@+ µrÒJâiH•ëhÁWabsyu!i²KÃCÚ’㎠¶5V ‹ªÁE¸80RHvVÊu€áüY¬qti‘ª‰!AO}çTC÷¢)X%5} ¯]=Bæª{Tññ™å£AUUï–I¦µÇh:¦ánê¨t%¶‘?]:ÎnÕŽH­"J{I" ¡H­ófTX­¸B’-ÏÑ™¨¨ç ˆ×5Ší¾ü´ ê¢ú$iZüÓ%½½1-©=kZ©b7©¾Ì(<¶iWŸ¬ç¾‹o%¿bB÷{Áœ9ì±YÅ XHî˜æÜ{êŽbà "q’äÚððP>¬Ã3·¨òŒ=Žfµ×€H{^á=˜×Ç©Íämò R°d;r`âòª¨T„>|ï0$×¶IaHBÜ÷ NyÜIÒ “vuæ¶! jÛû)Ñ»(lñã䟃ðãúö‘R¡~£3Á¸­ç-@ãò'j¹x ‚À$F%Juù0V?õøìZCÎC;%ŽáWš5ôŒ½mÀ¯YW ]BËnØy<Lâß÷Ôõv¦‘þ-ý\ᄪ=ZÎMôÌ^Æ,s,·,q$æ}ò_YŒ_ýP.HÁtƒ&*14–Öó=Ùh_*%û vqSÉïÕNXý|vU%o¼Ð¬¯¢?RB§Þ6ÐζbG]¦¢_•—¾žq5Œ\G… x¢Èa%#µÂ‡†¯¦<Û<èšóM¿Â&¼hÕÖ‚SÉcô`PžŒ´€™š_àÏ:nÅxVÕŒ<‹²674¸EØW ‡Í_…ò\«pî¹QëŒ23ÀœS%-«ØÂ„-SXø($I»v©öDš$Üä×þv ë9Mš gëÒ–/)V«äj{"‰ùîüîÿ!(½ìu}päèC=rFŸ2²ç’é`Üö” /åÒ¬aA“Ot骺tV·¤Gj|›~l4ãIœî}S¿úeMI7“’pAéžän¢”˜£X,ìL ­ˆÍã×tÔ“a5þœÕ têê­wqw²H/®"šL¹Mg¶ËΑ°€â“èVQL¬*ä\*àÜ×òíbÍèFµÕvTÞæ"Šy“ž•0ä æXiñiûÃ@“ þÍë¢dÍ*lK÷ÂÂP_ Íz’B•ìˆF‘ûƒ”ÊÃÓV…rïÃ=ŠfKÊJt+aªªÛ˜k‹a1µ‘oœ—‹âÒ" Ø3>lðK¢²ÌpYºepJ8ÏšO–û 8àık9fÁbÉ;ÃåÔˤzʤnÛ´åû‚šÐò¥–ÅeÓy/´s¯l~g×`qk9Ca¬î0]™(ù3Æ—…µsßG’Ø, (/œüÅRýñ[àXEøhi10±]³ßŒøËAÿòjFÎð ̲ò ÌâÖè~.žƒJ ‰tKÀPQ}ì;̘¸Wƒ& îL}jð‘Vh~'¤¨%y/¼©lÓ£¨ˆÎ¤Ï´J¥ÆïG± ÌíCÈE ±Dƒƒ?Ó14Å÷øûªÌjyó:ЕÃìËNÅZ(Ÿ¨‡Ôî)îÂëz*œZ6£Ù=òŸ©‹Fyô^Pï‹.&ZHûÎ+ G #‡ÚŸFBâ6Õ"ÄñÕdJÍ$h„‘¡KU›rºéôp¹ÙÄß³ÚvO›'Ô}ç?4fœÊyêiÖÛ²ë°k0¶=*36ËÆì÷‚|/—üSyP¥uÒ.'dûS fã$ž)©Q³ ¿)'&ݵ2&tÇ~Eò€âšMîÉ^åÖ̳ôŽ?â™ø¡‚›îPë|_ÃFÈ3—AIÊWွt)ÅT‚O!A¢ƒÛVs£O˜ƒ! ¥¿BÝ «G˜¤Ù¦ÚÒ¼G !QWE½´äÀ(  ŠÆålÚž¢šØ8‘knlëéïʦèäÁÒ$ýÛ‚\ýÒ°4vàyßñKO‹/þ‰¸;f‘îÀœ´\’Š**Ä¡;[ûœÊÒFÌÐ$mÇqþá“£ã7™hÂNa]½Gî¸P¦ÔDiÒùþìlѾœÚf¶ÀP´=pª0°Ã]IBL›PGû¾,ÉÈIñÌXAÌ[påîøòoÍ¥¥šŠ÷R_/,GÏݲ01âJ9(Ý?¼ói Ån§ß̆rÃÚSY$j@µ~XŸ »L!ù#¢ÍgoÕ)°ÙVêYàÛRË3y=ê¬=¥†8±ÏÚÓÎ}ë;QZˆ/½éwy€ìv-çn w:³å¢( …g«©ñzûMj³¼N¿g•0„²Ê5ÄMŸJJ¦'!û §ÜˆJ?:­Ô‚Á!9•±Cï-/y…0·êð½´O©ÀW4cr=ÊN½ëË[®¨Éi)AAà±E@‡ö‘` "î’#–¨whmª‹vºï ZŒd91A}ƒëhåñ®VA¿?ÛðxöŸ(€É‘/ÒRRå5¼[s:šé†:ïäÁ³k\e†Ï\øveöõœÄ'6Œ X´ ¥¡íC¶›µ’¯¡,¼<*ɈëÂ&ƒ·ŠïLÞ—Ü#ʳŠiˆf@ÞÓB~x)4Y–^_xQ04æiz˜·²¿XÒ!qí˜ô¹Þ/j¿ŠÎ7\–“e”ìúTÊfÓVÁÎçkT!§íü–¤iÜò± È¥+%WÍž_|-£MI3zÏÂͨì:wÓ«Á ä]S}Áß7ØìÓ*µÎ‹2‡¡!ùþ\ùóÕN°:Z‚ýË“”áë\Ú&À¹gÂ(3¦ ˜n½‚õ·b%K¬Ñ!äªu³½s Cx˜—VàvÌUäçä-ï¹2üLÊh .ü¸$H¡{è *töå°ñψ_„ ªv X¢‹ÙÇYôá8mDÛíŠÛŸis`[?Ù]Ͳ=›Ôå%cnB›5ÎnãÑscê[ÔÊÏôx8ð^ '®¶.¸µ¨¦ˆ³X3ÆÁ ÇI"£Sþ‚ÇMVKÞ=v»Wì+ð²Ý½}ïí,ìSÓ gû¹ÕoùN+VP´ï›ov„;±©d%]ýÔx¦\H謊ä ™Tj”O ŽnÝwZÖÏNq„l˜ÿdZz;‰î<’íp“£@‚ù²©çÌ”†8¤R_R]@Pl(Þw8¯Ó-¨f7ù‹›’ø£.†/wÍ“ñi{–-%ÔjŠ€­¶êW<}S«ÍšNñ"ð~žõé–6‚®õø‘—×üš­HW—lh6Ñð”[Bƒ¹p}·òòK_° «ô‘i>™¥T*m]oX(ÁJ¶(¯9=žm<•YÕ‚[4SµY2*%<-AÓ"Ì’ YTÄó†ÄæÇHW>ù;,:\‡ÄäAœ½M–GEó~¡LNéUšdòÂÍ¡ ÇÀÞîT­!¶Ûà Áú°èLÎÖD$ÑRÊU¨bßÿ+·¿î*¹xú-h†EÓI^îÅøÈƒ]:7?äÔ9»’þ L»9¿«“ý@.Ú„CtMV¸é5”ÙºQ±a"vë§$vo6Sàœ&ù‚‰³WCMuœPŸPFé¼€”•…Ña•ëpÅ.Yîœ µší‰ g©Ê=ÝmwÒ„|`á‹UR‰´"{#9œúCÛòж _øY`žÈ •¼š2ñªÿDß*Äòàó-{{×uæm°l(lïF¾›Að1£‰}†´ö³—_óU•E™ª«.3 †%üH]5™ gC©Bþî¬þPkcHtŒòZ^³ϘT;˜~ÿ\¹°f ﹡¨¾ü,ønÇ+ps™ïÏ«ìœqÈ,K3ˆY%æRµûVWÍ_Ù«š‡Ò™Ðmþ¬Zê¬æ»E‡ŽûLŠÕ‡±Ù´y<€æPvz`4!óNŒ‡¢'"ƒ ¯.¯NÕcÔG׌–Ôs€®´WV2U :ö²ªFÁF<$æi¤ °Ý×ùó-ʲwéþ¯[œý~MákLјO:³©n’„kâ /&œ,á|èe¢çӺƿ ]eëÂÒ!ëkX>d²ßAÔAÅ:¢ÐtÃäÏÖK¥ü\Ë­jгmŽ<÷Bɪ®±áéô v£cýÉog1CÄüí*„\Y嚌v±gîZtöﲌ¨•î³Ì,¯€¯œð€2ˆ±‘¬Úc !×õ }i¯švRäÓÃs¨öm¤œU©u~ Ø"e ÀÀƒ2tRuž*šµCð[’dì{1âsÙ’5| 2åS?d ‘‹Ó·Ò0Ï‘Ö~;sí5$W=%¹ÎËzœæÄõ—š»²Wj‚®Íý›«&œ•5c ‘&£™o3 ›¨2F¼7žça ø¤{¨U„ ³CUÍô’‚Xãqþöå–·`ñµ½Y6…ß#ëêøDC$ÑQœ/8ìm±*å†ÂžkÞÙ7kàÕiŽÇ´ý6Qf>ãIõcN‹N‹7æÇ–?=Û×Â$“§/¼ËVŸûÿ=>~¯ÿçðï.û{ó¾ßD{íôÏáëõü;è¾ßlKíîëÛÚííËöúþÞÜ€êð4ç`Ù¨° ýÄÅáLêœJh+*.8¤€{ bHfŠ»ãæBèŸ×ߕ҈/ƒi9*’–ÃS,hà}GšâÛZ°&ǹ¦N§ÊžfÑŠÇâˆÄ”«¢Í>Ðw~Å,7‹ã_‚ñ¯„úüÀ¾Z>×™€ë ‘â{ë¹&Y[„[â1mëoáø4ò“;Ì*BùˆÅª>0ª‹û»ÈYu‡ÝWJn†ù1#^fàŒE‚¬›À#&{Ÿ…mʨ#œßLY­š¹e½ì¿Fp.¶q6é}]ëy¬Xv `e²Ézñ³4JJVè L°µ½N \C‹uçG$ 0Èúv 3Zãµ¹Ç&ÐÖ¢À'ÅàNã@Ÿ…Î|K:ÍåÊï¨H`œŸÅ;&€,®¹ÚІS¢–ñÅä*hG|ç85ÌWPxŠèÍ܃Êö,ía³T—È3Dà6F‹ÈÒh1• Râg ãÐjö­¨N$sûr¯XüÒkWàíeŽÁû¼ËÆ r²Ûÿgs~ˆ4oÇB)Á•µ¯yCŒýS×?^µñ) I:Öx¥'SmiáDÉÛ¯ ‹VæHöU™(x…Ak…õy‘ï³PÁb´`,¶áýEKÝÄÚy¨`„DijrqFQÐ> ßrI¬e¢F$Ú³:fíäI‚îY{«ûvð'ù38*I¢¥ŽDˆ×å> Þ/ ,zxmm;Û”ÒÐ,úìÔ*I;W¦Ìãíé:f°¾n&„†Cm ŠEE-[u*’¨C«”[~3TD™µ<#Otg]´ŒëL•ÜÖJÖ1¯¿ã7È·ùXVF2®"E¿VÕ¾”ûqƒv*—–Ú˜Û~[hygÏÐR~†ŠÉŒ" Höóá䂸4Z-Ò+æ3­»ÚÏž{Òð7¦X1XHM$* M嫯=¹À­B Þ£åV­Å¼|. Αý/E¶,‚Ž Xus©ÍSeôMn°â“Žv´í©;òþsøDO±ó*Ö”øF2Å 1!9¿ò´Î»•…+ÚX`´}س6ÿ ^Áoúšíã“)AÇôÑu.aØ—P€oF\H‘|'œChê¢-ú’V‘üÁágç0:òk•ÿ!€\f'» äl›#”Ww¥µ¥;t<艼[m¤¨ñ˜Ô2›ŠÈ<–ÌîC aÊÕût2ú1LfœSM¡‘¼ípYÛ;ȼ­·fÞ™q®eÂjî&¼XIn[•þ?t©PÑ%3ß–OaÔóFÉ®º'ÚÆÜÌ Ù¿¢ ¡¥•BV‘ÁÙ,äâOrT*v—9ÔÚP[uúú‹+¦ÿVY¡vÈò/$˜20-*uBï݃é.zxUYyH̘jf¦|#nÛÈ@M êàL1àË2>GüLaTªC/jdÕÒôbëç`ÓÛÄ…”²èÛc¦8ª9ˆ¶…ž–¯8!tQºŽðÎéKÄPaìkÖ<Ì@úãä§(IrŒñ{3øU¨Ã–#âòÛL°'E4ºÝ±PzUö놀U„4êzâü¹€]¾P¤8 šÌÀ-ó˜?ÿ=~Tzã*ÌíÍú d¥+àpë^—Ð_#¢ªÏµ~%«ÖóŠ?…³y…†f·0%V[ŸbŸå®Í»#ƒ×.²Å+ilnL³íÍŽˆ>ƒTÈ”v0M­¤i›„Ø\bD’5ýPcJîOÙ6 ~Fm…Š"Ƶ«·Äxq>e»¹ó·åÇG\xÄô[/YŽêRb¤ì¶½¨W‘IËÖåáŸfåÓ„ê ÇÖì=‡ÙeÆ5ø»f'&§U¦K -S›2±]N¼,ÌÓñk%WmÂéÕsV¹Á®|‰p2tSí$êÔ¾ÿQÂ= ¤³óþ@kd&,ÜO[^¥<˜øÊ爗Ė $¶êÎĦ˜îwÃá4 ô›Éü‚¶Aýí^}t-vCÞQP[–Ž jŒ›£•&—‹~ª¸r>}Ô&£„/óA~6*ÀSN§É›w¢²n…`±ªÝ쨷m]¯Ù¡Ï<—ý=غ ×¹6p¬¤jضJú UlÝ ’YÓ–õ¾¶ÈŒKÕvÕ}ãùÁÆÕÐø”) ?r:b_˵ Õ.VEmk2OATÃAƒ ÞØj¾³#R B`ñO§¥•Ì©G‰áý,à Þ6¬×‡¸*|OUdµÊ8èóý–•œ«9ÎqJŒZÊÂJqT¡çÚ,÷ØÑ›Û;rÞùS¤;Ò]éOÀ²aþÙ9}™Ã9ûF@CNrU¾V`)[ܘ̮øq°#S=hM›ßÿ^ ìäÏÖŒöHOÈC1¬à¡P‹·3¨³[ªD"BQ4~ ¼©èúñ>ž‡j‡ˆ}Nݽ k{Ø"‰'ܬH2Hèõ!ê<vZ“ĘjÔºSî?SX£îW··üg@œ¾Î¤ @ìúu0ùœ°‹C±Ä÷<8`^èÐÿ0Ž©h‘pR|¸®/· ÄæàÄt?Œ>àCœ ‹(™ÒìØ½‹êæ¯'˸ä×#)ˆ èµa†ÃJÂl+øÖ^WöpSŽ$ŠÏ²·êc›XlšByW“²ß‰ëš‘¶Oö‡ -Û@âf¥¦ð5JmËXRa Šnü!®TP¢¼¾|ÙeÝÆ{µKöˆšØ$ªÂÉ­¸ö—1XÁœt©<šŽÛI±G%µ„Û¬ ˵#ŠfÞN)tqûÇ%AJN?œ}Uü§Ÿè?Ê0C‘6 œóoHœÂå½¾Ïi)q–=f Éð¬¶%ßÝÙ5Û­ô7ð¾÷„5 ƒw¬PÒH» sçÈ»m?J ‘ ¤ìMº.8º×{WƒèõÅ:l†AvÈ"ÛܦžWÄB§Ó{^ÞTÛNn2ÀÐÄÛSß¼”l£Ð Ð?Ã#O Ä)ª‡ {Ç—òÎ{·=ºjÒ´¹ô ±©©ßs$¸®®/¹ëø3ðžSæTí%©\5,ÍXkâÏße¡ž)žjzóË*-TºÇã4ä:RëIBAìu÷~Ôð£•ßù©†Å”ûuÖ«y±½_9œ¹Ãg¿#mUx{iU¹g ÇS9é†ó³Y”†›0yR¦3´¶ˆ`ã™&‘¶Èbh:Æù·SRçtfÊÊÙ‘®V]+uñ0¨ŽÏD”(+è¹nø ‹ñå— ƒÿ Ãf¬]ü`+ÞñóŸ>\ı.´^œ“wÍ“; ëÅýj‰tq‰¬‚ú镯5R«•X?P@ðª}'ê&VÛg{ퟆÉëv—׊ù3{ÆÇg¦ÇãuÆ^XP:x™@’èìË8» eœ§ãSÔ !9ˆ…¶HgȈ!‹#ùŽŒ¢õÛíL죒 ©ô£ËƒÙ¤'P–3*ø½€šlÚ |÷”1ï3iz¾ˆÊ€æ˜Mð®šr-C0åEl\*/ ¸@ïÔ¸¤Ž¥gýÕû\wÓ®Š7^R¹‡ñê×·Ít2ö±Ò“¿ö/lÕ£.B,<1Òý=zü3×HŒ¾mº; )<$‚ʱüÐ;Ö5öE»·pm1f·ìªWˆ®S%»/@çÞR9ᥙpš{ ‡¾E#þ’»8Ô€»6ܘijx‚ÿ½ ™ñM[â1ÅŽ¤*Ð+È–ß—}|Ã]©ûY2(ð{—Q¯û•<…;óç¢[8j¼˜.m[[mÅ¡ DIhý`¥ðhÞ *X–mfçc=Ù3 -Ð-ôfÆÔº§Ä6€¹S‹ÓŸÃ¥š9QÃÙÂZn†ûÿ4å|“Þ¸šÀZ*GªcgÓúû&#SCÐûµ³³–îT>½¤¸'Œ½7¼FÙp¨2.e7ƒŠM3=è¡-¹û–I`jìó`2!îÎÍE5Xž‡à%ù²×|Añ1æñÆdÅuã !¤—v¢sEŽ@Mœèì¢%óuèt]h¹t41}ÿQcƒ¼˜´0©ìt’ð"¾–Ío[KvŽƒILñx)\­ó;­f€tï9èÀ×@kMªƒàÏçeŠ–Ý] ƒ³è›ÓÕ-§}ñó3Ϊ9†¥ËzݽïûJøöÒP£fF«¾Ô-3ÆŒüò»fá·U× 8 ûà¢úx$i¥7¯«Á³Ð„cÈ/nî×Ã^~7Ú˜#•.ºF1;tˆ>ybLõ¤ì¯zX°ï£µ’¦fVŸØ¨)d”É`¹æ4ðc¨}¯p¶üûÞ¿:#àèòâ›DºÖ&93:{”0¦z6å¦l¤››Aq”iè7–÷Q·{“ržWÎö™~#gÏÐq\è›{}¹‰S»®Ôa¬«C^ÖùÿBádêÙúûŠphÛCCÞБÁ¬‡ ¶äÕOós 0lõsÔÒøm+!{ òZ©1¸Ù ]`†èB§¡Ê×BªŽQ=÷̪_C§6F£Ä4t%t¥Í72ß”8ÚòÚ­nHoO<ꉸ¼¿fZî ôâï‘Éy©Ý‚cS1bB@AFLU¤CøB±'7 … mk’bQm‚N,ˆÕ£ÿfgo“øï°G¥VPk;÷TÏf™ «´´?5“úgÑÖAYs¡œvwz Œ„_þãLWÔÐf"f!÷"+Ÿ‡Yœ—`™Sâ=³Æ›z«Î 8Çø²º£åŽåØ‘ï×Éæï­²~=üå·lÌŒ8‹ [¹S¢ÚÔ­ëÚ`ô¢g" ø5Þä>w<úB74YJÇ,/@ùuBs—Ò&ž??-W„¿}þÏÚGeJðí'2S>ç½ß±â‚ú ¶{¤ÛÕ®[ŒYAY´´ïú=“hJzË·–YÆÀþ“í¸+úWõ³ÜIŸÃêä½\píHJ‰ì“ûy¢ €æ rÚ~Z†“6éð}Šõ1Ìšð±äWO,gdzàD|3)e™´)ç$­i«Ö°WGr‹ž …Ž!Q£ùŽúïË\MNÏmÒäï/Bø_™>(¡H½Gh<̹˜•aY4’Z§pˆIà7æiÿ:»«2^F CÏ¥¸9˜€$zø›Þp~SÙþ´^Ñø S# äƒK@þkGz8q#Ø':wQWƱž©ë¤m ±±Iä OI¼ý¬¢N*>'›¥”HÁõ_(ÜûÒø °¸0¿|+þ‹(Œ(‹S‡‘gXù訉ëàŒþ6m+ÔQ„*&@ÂÝd§¯Yðü.ÚÛõ³¾ò6̧Á²¹kƒj³\¿‘d@‚M½Þ›ajœΈ™ˆËƒPÕ~<~þt³0º¡ªäÊ™p}dÕ/!ý†ë]ÎÅ¿w¶ÚŽw=b"}i`œîÝo@ÆÅ’&c§wiÚ4òǹ{x<¨åª*0„•èäÏøpÏ[âú£¬`úÈ#‡2åýo¤ÿd¹°X¨‰NNIJF:+Ž!g>íˆÓW(],óò ©lùOzYVYíÒîÆÿAÃO§bïù«qí~*DÏ$Ê}l»f»Ì–Õ‰KC€jy^]Û} @t<'÷2Èg¹ã²J5>\º’¬¯6Û±“ë¸À%D>È/)Ö>_@‘èT§Õÿ8Ï.’¯Ú3VSò:nÈu!ÊÎÔŠCfgdŠ ¤®øÚü‹ ôdŒgNSÈ>qdŽnb}DŽ2ïxsYã\VQr y¶×™ْ}@2§+ÄpTù‘Ü\Ö‡ ›ŽF”î=>Ã[¢œZ{d4ýqÌðz’×§¯qdQ/Òiüò —‚ræÏêð“áÒüŒ8¢ŽÃƒ¦ú²`ï,ê"™õ~ÊМ›?ÏêÄ^D¢ç Ö€½^ïL«‘Šõܧ¼¥xáH|S5lÊ\Ò¬ "}¬;ÛqånÀM`±\BŽ(07¥¼âøÑ>É“ºœÌ*.«Á?\| ÊV_ÞïB°ohœAz(b~œ=u÷ê#RL`çÁ%׫óÑóÔJ€Qo]Nî*ÒÄô«ÏõðR-Ì‹ê6åNO§dÊŽ1s`JFX<‹‘½î˜9¤µø”}rÐÏDNz%ÎÁHŒ°@ ²-á~FIªš÷âv¥†@î`]Fú®°p܃¨üTÒ˜*‰53й@§l·½Œôº¸áÛ$kâ×¹*‰îeð9F9·} ”©ûG ,ã D2S¬š h±J þ¤it]Ç8ùÄú+µCB¤:Ìv"Çok‹çªãïæ‘n†$½>â­ÁA[íª_¯ñ㲆¶•Û}%—Xþ¯Ø:1ƒ¡ßfÃmÚGë­-d™é¾à>QY½oÑZG/:­½PÃm5²k×< rt¯ª‚µ¥sÊ«ÇfÈáß Ÿý µ¦&í"þŠ_crnwhë4#^~½ÉSý O¢7cXºDƒä±*zÆŽKÓ…Æ@%(”êl­r ˇY‰#ÇH¾8Ø0~ “ħ٘uzÀ;%˜`Ž]™5SCòõ™„ç6˜ w)íæ´Ø&’ª$·$¡·ÛìFdÒù}ÕUiúI®¤ëY—B2gc3y·[OFGŠ\{`´A1øm]ýêÓë2‡º¡ÞŸeuüÉ8v gY•8&a`Unܵ¿©èÆÀ{õªìÀgQR޹Õ7„½k¬?ÂMB;Nab$Té¼@é£!- &Ÿ©œÕBxÏ Àt@cÅë&d‹ëÑnqsd¬]«Ï_«³,#¢—ï*ùÔ)EJbljañ˜_}—“ìÛןŠD_Dƒð踹#ÞóQpR"sr Óµ 3ð¨: ßâàÁ¦pþœBúÌp9zèT×.ˆ×(¶ÿ¤SbËD!×`\²ím Ei4‚Ê'VÏdVVŸªÄ#d¦’r‹ÌÐ,CÉCq¡e«ÇÊÇmÐîmo¥Qºœ]’MÎÊæ½äáaWžžàÍÊoÈ©-ûL›×B}é ö¥ÿ6x¾ß?Lß)¥&Iºýï}È4øãZ(&¢%ïq´‹&²OøAäz‚zÌnßh¡7$nÎ%?jMÑ(›g¬œð‡$ð­!úÓ3Ìí»é83Àö]·E«j&;¹0zGí‰)ç¨Íy÷®NÖ-–F™n’æ:‡ièq Ú§•€tÄÂËf¡Ó˜…Ò§+¹Ç€¨»¨‘!v,˜«l¥áz•5µ›Á$Wò ”A‚˜åf?¯zØnc#/«—¤ì/µ+›³vî¸êï8ñr{IäƒMZñ)²¨Í4²HRŸàVB‘8Á½€ó$ÞV•GïQP mÒv:ìC™a¢#iàš$;´T: ‚ Ža¢ö>8/û!€xÃWjL:÷¦‰LIGªXñlx˜Îˆd á/ޱÝ+6Ddñ‡²>¯çï|ûÿ!¹­LMíÈäSÎysòjFοñËÕX í-+™*l*½ÉŽurº|nÓµBÈõ æêHoCÂÜÖÜ¥²ºðY’IQ|qŸS ÖügHÈ ŒWÓ<º] ž@ÏKzÙŸ%bF=ƒ¬R¸}ÎK«SŒj««õÒŒzó;”:?1‹w‡D³BPêYV+Üfjx€.}øË:d‘–ùQãvz\ …ä ™I¥`£o“iE'm¢>Î×óÁËÂMÅÂ<Û`Ù¼õd†E`¨õÇÛF<ß²ªLj‚p˰5÷ú9ß2µ.‡|ïO¹Õ^Àèîº?ü‚œÄZ ´9¾Âoö{¨HnNñ;ÕaÄ’%À¸Å§Ø¸² Y‚Uü‰yîû¢wàâ¯*.0'JæèCÒZÊdîÝBA¢˜+ãá0%‰ð¹¾LÏiÖ\â»Ö*ØO'êQ)Y•f Þý Þqý'!‡'½Çê=H#­ØH-ncíìšå§ Êc­µú’ D',Í]ß ïH%(aF0‘¢xDè+&G)äwhzC3… #oò¥ž·L‹›)Y°ÄK*,•ÇUéš,¼3Ð7c¹ÿ€IØM…×!®OрĦ>qWÔÚ àÚÚl ²3XãË“fv6Çp7±N¢O(š-‹^oÛÉãÓm% K€78NíƒB"®{°Z"–ÎÄTA—óÜ`T’E½PÁb$ÑNäÿ§ý Ÿ7æÕBÄ9[ææ¶¬ù¹TÈCÕÇ.¼Ÿ®þ[3’FÊtΘPØJ-PAP*„…—zINïZ)—ES7þbÌÖ/f·†>ßuÅ• °Œ(Cnî‰ EöK‡#zw¸Ä´v´GMê »UÏ}=pNI[¥1=íáµ]ÙS9÷=äžYˆÞÚñ£ß›¬X%T½ûêS È–Ÿ¥¦jújäÂ~ySÜ 3ÒFÆ?Z€@êVU6~ǶyŠçtyŽ&P…–æÜCá4—&á¤cî”´=¥ïï5»Y*ùÏÄ ºxÚ|baÿ5!%Ó%¥G[ž€§5|éžÎ:º'uAM¥7&£Áç6­´Ä Éu”NÑÒõloH´dö“Ä›õ: ˧Kzœì ‡tHÜÍÎçkT!§íü–¤iÜò± È£ª]NÕ˜¹s6àsŽde¿`åľëª–vkKí—Õ¾DzÕ|oú³ù’ ×—äy¡~šyZ:8c€ð¶6U¢Zd Wcïó-N!OÛì º›P0Çòñ…4³—†ÑÄ­öÓâƒL!@ÈLì1ð¸m8§‡a£]3ƒœÈ¦jZúlýɲç1¨=­°Îˆ‡öâ@·‹”*´%@dQ-ûOf•Ý qRcŸþk¥Çóýc}½'ïÛ Ø-RWÞ‹ÿr©õªŠ‹Š­3,¶Ô]­€ÿ—†{À äò´O¹ZY0c!|ë+EîžCáãœYÑöX^¬tšòõª., ÒMhÔÚ)¢€»^DÁ+UzµMê4gßêl‘b’(—…½mnÊ¥wµR§uÊ`^ õdÇöj;ÂË$*ÀÞžù­jwfP$󣃀5—RáÉHaÉS‹–K1c\¨B3Ñýeëç`\¤ïÈŠM 9¨U€mH͊ϰáÀ…UkdÀXrHJ]ÊÁ£cÊ*õ̲T3ì¾Ð›š!]»›îÔ§¼ËRbáªqm:lÖbªÇ©2¯©› áÌ«šÆ}üÜ€ÊCºQ.m ó®|!«Q®çn‡×tx‡*Åy²Ûæ0טºV…Ctæ&‹D,é:ÆC–õ &·ªŠŠB¾èªmÏ ¤æï_>ê<à±Rü“?8Å£±*>Kþ—SçYì¾k@ÌRÑp‚g ]x˜×ã®Ì5ù7v6ÞG ›·T[Çûh Õ þ|MØ{§¢«y#Z'¬ŒÎ~Ô0A!/WÙíyFú”Ý¢Ãð^ö@Ÿ^®6‚^7ÕP!ϧ+‡?Z#æuƒöuõåª6˜8Aq0€Í¢Sýóôô£Zý쬒¢§uB ÂåîŒ$¢¬¹ø¨´†ÿ/õ À‚±¾^«¿ |űÅü‹YÒU\:5¶õ:HÇOfô\{\Œ³¥È GmD>,`7Y.à¦L|¬vGààû’Š®Ï4¥³w..žQuÜ÷“2Ä(]ªyÛ39ZËaÔXUbÊÙ cöêhp§F<©^Á3¯—-ÝU$/èQ×eš²J(ͼ6Q±[x6­µiõF¼„Khõà®6Õ®oØçêBöÓ‡•É‹¾o ÏzÃÖØúõ¥†©l9ñËù1'¦#ìd§’Pß9GÛ]n•3™’!ß<âc%¥íµÏä½´¬¥8g“ËQ*Y½—B#ö[øª¥¸`,ø¥Lè9|=I» póa¸û¨l³asÒa>µä iŸÛ59ƒb6Œk­ŽëMÁÑ ÚhT¿( ¢æhò¼€.LéÀ„aÆ@¨Æ´­&ïô¾Å%ÓÓá òÈ%æGÛ@âë0l²W“IžK©†‰ƒ¹¦K¬FÜh½ƒA*‚e}•Mê©Ó"ÛR‚ßÖ‚í Xi­Zœ|}HŒ8 ;>\ýãoé&Ú )Ó>šAá³[ºpõÈ|p®¤ {·ê©cÂà_¬ Ñ—è¾Á-æhIŸ±;™ÈZÛîdh\@• 2ÿ :ã>KQÚ°[h™¤æQyûèØ‚¬&ijö–Sˆ!F@†ZüÞŠØ:ÌÌN±aIÖ¿T þª°¥S('¡l2맦ûç7³_°‹Ÿš0PÐ1-»¼RCò 劜Ÿ¼Å}gÿb½š“æÀi¢³ÏŒy=eQTÜœRºo|èúm+Ï}`«Ì(5r'nü'ªËáº12(<ŸHÇyZÎø#’>SŸ’O:¾ tùPØÞfÙZþ¶7gßñ~Á8P 0¿ž+¨*ó}©8SIþãÉbñ¬kÙn+lôTPò EÄüiú§»gHI& 6§¶~wyÕüùVnÁB“ª TiëàSøÃ%#ÐÈᄬXêÞZvm¼!‰úÿbHXù›\œ;&¯•š%ø]ñ£ œEîÔ;c(ÆðòbìHò¾'{x¼. n'ýjjÖ"¿ÂÖ´×uW´ƒh±ýÊ<«–韖…»X¢´¼™K´S‰1¡AÁ9¹0 è!”!Š=þÌdiØÅJ|–üWy_Št‡‘,Ö´ˆ1ÂÖ"¯æƒ}..Fæ­¶n¶Ãôñÿ!òAC©Oÿ Ú^}Š“uÚÑW‹C¼foοÙ#“ZþÓ®…òì§&…—‰TaBUíëfå$5ñZh\ ~ø²Ì« Ý}Tc²6£?2yïjѳãEVšýÖ5ÊDž«kö<ëxvéæ{€7HH’%‰¢ˆ²ÄN˜Èu½ô´àè#/A»àÅ{v ¬|ìïPÕóôc£K¦3x«È­ûÅè·„PTë¿Ê®îT¿~¾¼±ßåm·mÀB0²þŒêi¸F×D¢VŠ/+g:ÆŒ@(aG9®üC$ÇìÈãk…×ìkJó3¿säË`3¤1~Å›0ûrÀ³äîxÕ>—Çp-®0NV‘QRºú"@6ŒïV*®× ®Œçha[Ó#&êf'3É­Pº³²n3¯¯AÓ“ŸÛrĺÐßÏ Òóô4™a•ËJüÿzh¾ä(B‚Š·ÿ8-Æ×^kù~elݹìž°6À îv'øÇäàIKA4©AÒv;½4+kËì¸ýrĵN:áªðP—®ÉoU¼Á.ÿb1–­·ñ´²P†¦Þ‘;¿=Oݳ_KS šo jЏESw@:_ XdazêÖGaðnxÝy‹LŽºHY–PhwÚMߣ”¼”ÎH×;Ò:…Úm}ÝÀLM6ƒ¢1ö ­I–FÙW³17*c†&zÀ‚F³ÞÆqàzت ÏeÝÛ!æ’ÚdóŒ\=²Ây'Ð;ßb1PÁ³-QYÅÝDÂÄ;ýqÙ Ô_~÷È2k Iz{TTêí†Q·æ<ã‰çpÜ-kƒÆ’œÉwÖ}±œÔÃÉÀ\z‚V¬îƒuóhtAyÃÜ©W©žåã¤È¬ }нq}Xçêà$M’\5_Kq¢†À…È´¼F.f¡¥¼¸Íüb›u0ÞùÍ“ÛYûƒÂi ô~Z^ÜëSTd»¤pxOàùÏ;“u,t$ˆ«h‡qU„1B‚6üРʦ`Y¾nk3Ò^ –Ù £Tb·ùÕaŽÆ»´ðe¥ú•¢×§,[¾yÃ/jõëp'/ãlšÞ?CèÍ{ ôFîãWë D±ÝåJ˜{„t­Ð`ÛA‚àô|¥ÇÝ0c¢1ÞK¶' ßçðî‚û{l¾ßCûíî?‡­Çðí»ø{sþþÝ0ý½þÞº¿o Çíì8êð4ç`Ù¨° ýÄÅáLêœJh¿*köâQ`S”F/£…AòG4¥§û°dªgÖµXˆøÇÿLp¡ï\:áÇÊg£‚õ‡è‹ùŽð]Á(Šâg°:-j©·DÕ¸‡XîÌOSÀÎë4WM'”o4m]Çh¨óɈ…ý!•˜›ù'’mT–Žœôx̾出G6 ‰BÝsn¯sNíWF¦o¾ý”8G„?Vº¡m€¦Z ÿ€¬§m›7Äl ×~¡÷@»"ØþËÑ1ÀòO Ú½]*½4Ž@ð×­²ê¾g}ÉŽtÈ'Cnö÷+PgïãÌ[¸w$¡Ú£uÛõgZÓQ%± “…æá6˜Íä;ŸŸS­]¹„Ø**@›ÿkØÈæíË©ë2†þu†P¬~lÖßùÌ®(è’™kzžz åE¡†n”2Yðæ—”+sG¼ˆwî<’ZdµH­ƒf¹JF&MV8Ѱ½¼–Ì9‚Ùn‰°vF1²Jb†´a§cšÇiÑEÊk •¥>á5ÜLÆâÜ''i~r—ušjóòã*s¼oª&Ý.c÷ 0‘EiÈ,ÔPŒ›]g õ*!²œ ¨îyN šfV†©NáM§“pº;<¡äh *>Œ*ã¼D~ ù¢áò†ñ›Çb¸­à«Š¦ âþßG¿$gÒDãÉ,@q,+ëï Ëå…a•SŽ’·™ß@'l*Øp}&“Lnt 3wßu ¦ÕÁ’@bD ë+½¹`º¬ñ1ïrëìæa§["V6ëÜ…ÿVè@|ªbÓ†µtS“k)?TyîÚ #ŽÝÕ€ª©&«©}âà$`æ4ŽYí¯Vï°–Ù>Nvò… «¸Bé&Pb>É=/œÓS`³«ÖÕËãD£ìã>Å7(ÓðÌõæ>RtW•æFTy#p9ïèiþ×ÞóÝ,~wS웡»{øk+0–äÃø5ãšFXPY~ÎÓǨÚGØ«Ù˃Ñï­âí*ww²ïe÷µƒt©g]oX}‰Žd¤ÔR6£.ØQ]>F6¾F†N¿F™ÓUü©)¿eâ$\àÂᬕÌM—bÀëÙÝ HÛ2Y¯Ö|`‡™êé,)d‰ô¯–"C¿PÅÚú5›œbH•=Gç*dþ»0Ãa Ï¢PmQ.œ×Ý­Ú¹1ØlìóíØ³BcYû½r’˜œnAÚX`´}س6ÿ nµü lÖq#î€W/ÿ2³Nî¾2zÝI:{âŸðÙè3çËuõ-ùÎüΆ½(8ÚQ9a²ZÁ¹àé.ÊØÑŽCä’Ä’y£«?Éõý8ŒÇ Eßeˆé’<üySjBëb¯È ·2ê©"¤œ!Œ?ƒÃá„AÓQ&ò%’ú¶7·ß;^»#óà„@ÝEƒ£›æ”?6ŒÌªÓíWAmù¶…B$SºÕ0çÈgqÎpá@ÿ}Ó6õ(Ì0Mùòý/`œ1Ö)«/HCS§^*_4>0ƲŸ8í[ Œ1–±Ýsíl媉>_ÖìÀDÔ'ùÏ7˜×dRL^Hߪ‹ÏÏy ¡¾0$0kæHLõh` _tjçþ*NçaÑÔ¢Øq^YTKr#AÌþ$ð`ëû`¬šÿKß•ø¦‚J…ƒÅ¼Z´ûŸ%¨^Жiù×yÏ×jÝî㨔–óÉû*ÇU‘Œ~µ>Ê. ¸êma`…ås‹ ôSÀkˆ6ºF— "`þ{ý>gô“³Š=}ÑÑÝKhî:kÑ#â‹~XÆþž§ã­–˜wyW¦á¿Þ¯pºÖÁÐÁŸßìóOAl ]ülðCѰ1 Ðó2žSO†º;ª; ?œáÇÐQ].‚g'‰_ŒÌEÏ?ßn²Å'€ª$áÔE.”-:š9»`ÖôÌm¶ [;Ÿ£éÁäàÇE[¿­¥{Í-nRˆÎ×Tì”8æï ÅtäÑÚµ>8b§8Ð<¸†Š¾ç%M„|"ÎïÜžÿK¯?ÈF ”¹@èj9÷˜Ð—ÿ5Àm‡`k‡Ì¬ –A™Q ÎvÆÂe7¹lYªZT&­Ø/Û™âÌ*ÖÝïͰÞ ik°ÄØãaéoàXµ¤y¹Òu:¯»¤–_!æ&²Ò¤Žt2¥ƒ¶¬‹ì'Õ¨‹,L®­)Ê,ë0ƒü|]PØÜ€toK¦’E{ð›²>”w#ò¦+DOZ0ˆÒŸ8 ðC„ð0LJÅd©-´€IrÅ3Àˆ¤ÿ AlÝõ?ù‹óˆ G©ÕŽf?‘úK K ú–+.ûp–$Nr†ýÁÙ‡“IÃ@³?Ud´ÿr@åÓêüؼD—`]PVt¦)ïCÐe"ø³‚·‹_…V>v©˜×?ê»$ÔÁSûê>_¸ï$ŒQ`ûØÌPú}Þ±±õ"4?Š7ˆ©_/ pLiŽ4çr4u¾þ.Ð2ú‘8âÜæ6=÷Z:ŒJ3* Êëid§`»ýÈôqRô‡ÏV:q³ï߃RKIë7)eåm!ÎÒ!‘éÅ#üt[ÕvHYᭆШÏtৈFóŷ˦æ~)¿æ`ÿ¼Ç[ÿmhý!Dáù©¼.ï#£ŠWÝE¬Wcñ‹öº‰ƒZu¸KÄ2·­„m·î<Íu ô÷`¹~ÒG<¤'Ð .ÓLÃ{/@ÖNèKe–{%FOê0UåÑŽ`–‘'ͳDTû³b#NO§AÆi}—À¤Uõù}LÓŸ9wrè¾½‡tuwß‹Ìá^.´±fâ…Ô8°b9“¨½€Óýñ:u\#K’ÉesšnÆÀñoØ=\J+ÙÝm7†k4;«mäÑݽ¦äùìÈ7î‡ÿl*ã°D¸Êø J*?O¤ó®`ú[ê½K Š$ÿ3Ý' €ºí‘o³ËBeÞ ^51ŸæÜ†a Dô^O` cæäWßµ¬8§0+—¦é¦PB‰&ˆIUojÜwÿTÚ;ì TmÛÆ•´à (Í­j–U&>Ÿo$uŽ^m6UƒC$k¿ÎÜ«Ô !3û4¤9ƒ™'{òËàÕ¿Ôbñk‘ÓÚ4¼àGöÉ÷´5¢´‰À"*ÔˆÝ9МHÑ0A­ïÞQo0Ög!n‚Øe(…ÊÑ'.‘õ”ÅZC2%àMôq´ÐG¸ÜÊU\Ϧݲi\¹Ù×-Ü÷J•Ÿ¶e×s2 ÿWeý!j H]w4àrЋ†5ây­ßH»Ÿs’9G°V‰t¿ að^ý|w†ÒNÖx}Ni£äjÓ™Óó&ñÑA‡EÞ•œjþ·ôôwÀV#užh9á˜G¯vÉC [ê¿¢ æ§p…Z{!Lj±hÂÁ:• ó-nï')Xs–Éü9éÞðÆ‹ý6}ÜV.0T".0B¸ç—{6}Å<ï°\Éd°Ro&S40¾›M`TuPøÝq=zXåñ!l¨±†u²óX'#¯ÔÓ*9vxhó¾· "’ ò8ajõ¬ÃÕôøzÝüzUgÍž  ¿U:úAÝ^´±ÌÏ™ƒÅ×û4ãlç’jò6?òyL›C¼ÿqó‰}òøÒ Çñ¼„÷8™?v¯6XYŸÂS|ù)·|[„œ%¯¦ÁHGQX‰wQñzqm2cYÖWE¯ÔoþcÝ §:ü™­ÉçÓÆ‹ç÷­ä>7tìýe ƒm?XmIÑ»Cß—FhúõxMÊ¢(çb"È¢˜÷ÎÿAŠ#T÷ýP‚®òF>~ Ÿ<Üä†L’7¢ËžM¨›]BîÕœ+F&+ñxXS©Tˆ%µ’ƒ%ðpñðG€ŒyðÝ]×Íä.ëÖqH¡†©bk±)Í»¶pqÇ“®çë£ÃC• ¥Úö´ûïSMß3«šköeh”’ûÂÁÚ%P/|è•ͤ9”Ú3ìRM¿ÄHöWö I »ûs®8®ý–ÕÔ4ƒŽ%ª‘×òclÈùL÷†ßQŠÿqi2§µçè¼Èz¤v s9røÇ‡ÀöÀíÇnŠÁéœ1÷WNœI‰Ÿã&¡<"“€Àb¡+”ÀÄf*nÅù[¶ÊÚý* àPU×ÃopÓÝo‘Ô™7‚ý‰°"ÍUjUZвâ홿éî9ÿXZ4|f§ Š›© w¡pyŒÙr¾UÒÚõØGbh™éWç ÿ8k>É´ÙJ•Ì\¦Â+ôHÅ¡Îf,¾ÏZ±@ÏÉÉMó¶y'MKö"yÙäÜìµõŽg®×öæ ªcÿfäj‘O;pÿ,h^®&TJ²‰:±¥e’®n<ûæ.-Œh`/bèÁ¤DÂÃXV½àØ8Тi‘FÁü[Oyç:R…ƒÛ5be±§‹%kΤdDIÔ0d´w¤ñºq/\'¤;ÑúCîŽÈ±Ÿßº,wEöë÷b¤ë𠸕Ñýºâß¡£èívÑ|#EFP¯Fx‘LF‰6‡¤ ¡è;y hõÚAÄâßÇ{ÖZ6&zȺî¦y…jàY¦Ï¯Íª—Y“µ þu/Á-]VÄðÑ«T6+º‰ õ½° Ô¶¤UmºL_á"smâ‡ÐmøHt…*‚Ðk[ºwãÎA&Îò,9RöµÊ»âÿ[U¡žð¹Ÿ .HIawö¹§pÖKGºK\£ÛYÚ(Ú ANíÚD§"aÜû~)_£Ž/úx³^7c{´— LÌyë€iºë7ßµY©ë^=¦»ú‚ëJbú°´ì¥´Áˆ»1 ˆÏÏ–’‚lîQf¹‚a\ù(¬4ߙҒdÔíùÙÇûI”f”Ò§?ŸÁ‡Lë7ãobé]V˜0ðÖ½ŽP`®d‚cúüÀÖ!öÂ{ ¤ƒßÑ·ç«úô’´?®¨:*Ö¨5l`7¯]ÝLØx çÍ™VD_E§¶Jq[Dh¤$„›@p*¾ž£/¼ó~Ñs”#^Ø}‰¤ÃŠi»ÙܰêűÔiØPjzÂÞrÙ¸¬<޽Øm¢—ˆ<'PO]©2\ž´Q Laf;Ô»Ð?¼7³ƒc¨ôÓ“À0$ ƒø×ÓÀöU,…×b‚d)ħú³~…JÒa×¾P¢hßÑZÙc÷Žiµño%+úY–HW.%‡SE ïG„%‰(y"ƒdá›fUi¯œ çË¥ú :„à¤p@„‹?Õ’¯%º&ˆM#Nû^4’šß¥hBHŒ„ù…ÚA‡c ï+%$ý3 OdŠ'œiAÎÇüòô6¬ð¥ŽžåÔe¼-Ó‚/†qùHÒ’Í)Ú{ùdköhkæÎÚÔ•0v†ÅOvQêuàÕ0Sá†VÖdº€§±I¼§.ãZ·QÍÉg^ãIx¼h±+ƒ×ï Ãʇ¥-3»ŒJF,Üw0’+dÂªÏ ‡>,ß$SkYp‚nÏL!Ùe@j¸DÀfAñ‚/¿I†ϲ<ƒî0Œ.wËu'%ÚA+É|s4·1–»Àö³Z$®Å~‰q+‘˜JR:h·Ÿ=0ž¢ªBCŸk]&Lº·«5´ †U÷©û&’:”ÿZ\èÅÉñ€ÕÊ.Øî¦ ×oxVÐ=C”€³·Î‰ÉŠ Óu‚^°¯)›ýXkžv©yD…ê0âµËÃ燜M£¼I:«Óð§³òXtØÚÚ"²þzçN­°ÐE‘ÊæÊožÖúxãÉîy£5ÙðÛÊjú€¼èoÒ°xÃ^ó¦jæýè‚uþ€Ìïd¦w•:ŠÑß²å4x–5UÏѸa” @%.ˆaÌØËóì‚Ì®x“´Ã¼]þÄ‘>2Áºù’X†ŽÎS*æ+²ˆqôwíbí—Û²™îÎÁ!¬=s4«HoAõd/åǽtž´³å<”ûÀ¥Æ}4m>ØñP0†Ã‘êjÏíÄà~KX,–ë®ü¹u&d|ÉAÆ`\«¯— :ÌÉ0¨o‰¯GM…êú€P0"=º D¢¢M…Ý+·¼ç¦¯Á«Ä8/Þ'­¯`Y£fhãra„y˜F›4OˆµW_u=ŸÐYG”°®N K©fp›ÛEK"ÿ>1úcëgø%=úšYÕÔœþÔÓ„Ž üøáyÈˬ@[åùN âùË *39Åk§º-‹àT¨^Î|áߤ v0]GÖå!{ÜÝ·ó‘ÚÍz!ã„n݈uµøÔ8â´Sü%Bê§,;„g9#B«§Múu.)——3íh‰ÒôhAÌêl’M%e®Êês·±›¡‚›‚MÎ8¡¹ðæ®å°#9 ÐÕ?j°Kc‹ô¥~u‰¥»÷D;H>W >Bü¶~˜½Ùg£úƒÓcÁÈŠ<çYnS Ù71“¤JJÆ-Ó¢èqºx^%טBÐðø}!§’’„:òÅ¢K4"˜Ñ»È•|ÎÞx‚ÿ6·–€ÚÑ/}þºÙ¹€æi¸Ì¿âŽ–5V\燚¦‘Y½-Ñ"©îªäBÖl4üÈv?xà4[c% ’õÇYY1J£˜õ&TZ9ñãàþlxö ³Y=MæQWôc“Ò)òl„Óž«ÀÖÒ]Ü¿°$qZ­Y¸¾§T™)™œë õn:¶1ëüxk ½í±¸»ùP:cצuL²žnJîq ?ÖßÅwi@^œÄ%V;%!,³ |qÞdÐàåát˜%qÎaE“¯;mq0Ò‚ÕÍÌkG´Ö¬í&®8},ÌåD@qy õÅ'õ§ƒ÷Œëç5”÷VDŠñ Ȥ̀‘«›ß-U°pF–¹®ÂL+nÇOz…ï­ú<Ó):1}’·²}Œ¬ã”eÿŽy hïaªÞñÿgÿ.4¢Ý×h6ÒXåú÷ˆ\™M;f €w‚nÍTò4#7.föô*ò#e|´b°ÊÞs™–Àr!%#‘ÄÖÛB/cYúï’­‡B5#¢Ý×ñ¨Æõ¸ Ž‚\ï¤^b^ë7. ZîÖ]¢T’NÄ7 ­ÅéÚež^©Ú•Ô¬¯ü—¤_÷^+]e,kqˆl‘‚Ž XçÞSÑ›¶’€®ÍÅ#g”míNí­ ÃÆÞ\%ÈÇá~÷ÀïjXç}?ÛZI¯ÏvŠ•Bf½#äX(|$Ý› n8w•ùÀgŽÆ?)mìj¡Èò¯ˆèÃéÛÚ_Móøî.Qh¸yerý­×L:OƒÈR«Úwr÷hì…6>>N5\s³½`‹9×ÜÔrÓú;,H²µiÆ#@e²Ïðñî³ —¯Áz·Ã+‹9+ᑳg$ä Htñ(,%…q²Tnéº+÷cS¿ô¬äSß\Áßç§N_¿X5ý‡'Áš ¼Z° ‡aJ.øÞ®ævœÍBýÛ?s¶˜ìB‡’µ¶œð4 ¨ˆÝHHÛØ‰Eq0‚†'àoƒb> 3+ ÷J.QåÚòuÞr ©2x‹€ ;—ÔƒhAMw¥è;ò¯BziÙ«´ïïÐß”Ädy¥¥™âSY{ï]âÿ«ÑÑ;9ûBÙ>®ï÷t[Ý“»áBòmp(Íòáuá™Ò-VHb®dx—,U¡õ ,´’΋øDýæ²mÕQ0( qùÏÚ¥5Õ¯™J&¨œø¼½IÔ1$•0€ÌÎA€‘B \I9±Œå·nL§ÄL{‚ºWzö¶¹8º¯"HØ| h†³†vô¨å6®lÚêìUË»äµ3ç]èWxÐÐÓãØ1 †Ttãa„˜ÉQ¸"QvPŒ¯Ep«™õx\S+;Ìé8˜omÚ ²uä3,J1é£C^%j˜úM–ÿ=ŒÓ\º¿‰KɬWëÀœwi‡*¢;<5*ëÓZëØÜ+ËòÒ&ˆP&0’Tn·Ë¢"'ÂýŽxXÕj±]t¥ËÊ‹˜‰Ó¤ö^!KeHæ”ì|ï»æ¥‘W>E¹÷GRž¿íà…o˧åúû<˜LVʦuͬ0´üÎ) ŸÄ¾ÚlQ¡ER’»œz9ZàÓÒÀ¨”l>nÌ{Wh Û{>¸Ïš)}®”Ê *:ˆÞ±€–•(,ÓL¤[üˆd$çRh(”-ÿPX”¥z°çæS$’Æ­úÐ"îæºü;‚+d¡å/~êî*IèÌš<!Š_­tg?„ßûØíd|äüûH–«ëjìÂrS?î;>züœ%ö=ì½®h^ HÀÖÂ/âœóöy$_w¤›µ½$æ¬Zò§ªp̨³þg—§ÒúPåšbÚ- â9̺4–¬® „ÀÐu¦‰©LJß<œ¶’H ¶HšÝê•àb‹›ÿ<ìbWñ£Ï9Ìœ|}'¨Nuèl³ÓlÉtæÉ¦ cˆ7Ø!âAu5ZˆÔnÔªnà¸nîz^f‚e•?Ã;Q6gÆPÏêsÃÙb«mÙ—Ôg½Cšê! úvã+LLü„éQ|9®ÃªW–ûN|ƒXo²“·2ÚÉPs3Ö£tÔ›Eûø²v ز½ú 7âþi¿bt«IÕÿ5KÞQUyþ½Â›žGºØ˜D/lJíÄpÛ¬›˜ öælËɋۿÉ•UWŸ°ªËtONùÿ/Ò Cqˆ=Å€ ê5%ˆ°7]É 'êRJíÁ¿?o¡ q&ª^­nRsÁ q:¾¥‰už5äŒvx¯Œ‰}o Y™ògž§þt^ó †cÐ3\P'ÇažâP™g:ëÚ¥bƒqÒ)­[0fXárþà"V “¥?(HÊ-i/ÖFñÙ]-)iÛÎý.œ8nö,03KŒKÖ' Ö7ß\M~1\“Øæ9?vÈK¥×Ï bmÌ´ÞÇ1•3×hÓiâŽOjÚ4,‰,tŸÝÄ«çÇÔtËÚzï†%¤¨ÉCŸöGÏJ¼Ñ Y˜¼[Üõêóì²W§·?o-=J6\KB³³C½¹óq>{ððq‰©‡™¤×~ 9ÑxÛG¼ÐUdö™5)ål¶ê•ÿw†˜z’¿XGEDcÐ$Õ‡Íõš8±x½)õj`Ç•ÊWB¶3â€B€pAžƒ^_HfÉ6‰« φjX±õ|ÆÊ×0²øcD²Æê¾g ó|üª® fSÍÄ&ry.±Ë9­Ê²Ñ6{Áƒ,ÇÌnðtŒ_Æ`Pö ¹sl…¦6°ksfØÈ#ÂT«8ˆ©…–XáEL!Ò¡àsý×S;î¬Q¹u(°‡%Æ1DèÔ”R¶;¸ýOàIn§šº×“\[%GB¾Ð{K£ Í\Å;o˜£9­íR€b\xáD¥ÕÅ)ð½Sxj³ªù úÀÓ†›ÂÏ= ÇL¼u¸ÑE’ðüÀò €y¼S?Ïúª–YmŽiÊœÊ&ÕÿJAˆôÅXç+‘IÏýj £@ 5/OȪýy&–1Vu³ùü©•@1‚_é¦Uœa@`é‹ÿ…vÑ¡ ž?)j5ÕÚ”×Æf‘Q`An¾¾¬í_·­ÐUœLC=0 _êb ×n›[.>@ ë¼ÐOW+TÞ¯6=¢Î¤Î2)w&VnTCN {Ôzâ,ck<|Á‘³Ðx¼Íà {F8môõ&[]6ì°!tÁ_¹*fµ|Þ„¥Hdÿ&qÎq‹ÔÇyex”\~{`ÈSí6²bjTT]ÈN!6溧~™p*LaGŸYUâ¨9ÓW€QëÅIßXO½³v$‘ŠM±tŨb(u-àJíÇ;6ú “3A•ºRz¥f&ûôñz{žvµÌ%ñwqô<1Ö[óƒp„ õHã™}Jl6Uº–x"H$f+Žyæ#bkfn-eþ¥>D\cÞ QA  L×7£a1j¤ï†-+£jTŸ›pŸÞ/¯ ”˜ß¦Ôk#OÙ½ì’dlAíôÏMüŒEÒÆöcš./ço8ÇÆúçOKù)šE°íém0äQv×®¹ €ºc£*æ†GúeÒ*g>\`ÚÑ”š3:?j8¡°õà »¼õ4kKùrneïbséFM““ßÞkv²UöÎçkT@>iäŒÝþͰ¨9ƒ>ü„0\=Œ‡yhÊÜ­·ÆxÀ¾Ÿ¹B-åzàÀÉ&^žÕÔŸ>móžÝ¯¤CXŒè©NŽ>ÍüW™Z“é¦9Œ‚YèfðâK…¹½Þ™w¾ÀÅà?Ï„C¶3¦íÎ8¡YR©kÎä¥Ð¥ÕñCós’3òªûe43ò:‡ À“ÿ /¤ Ý;¿T¿¢JDÖ™¾6º6Êí4ÑLo€Ñ{èÆÓ|1d¥JéX5Îνü;,Æäþ²€“–Ы1 @è,AB&;É«Ý-4,§dc“(—·ôLeO'þ°¯`¥{}ú>v´0vÁsšºb€NÒnôbÍ𫑪×Û–¨Õµ 3¢”óOfÙ ˜U§;k½øÞs§Â&–Äœ¨cì‰"ChQK:òÚÊŒ_0§u<Üòçì’׳7vÊ~v?w¦õP]\tÚ*¦ŸÞZBbûc~¯ x SVÆ€¬€l¤ðã.ÎYAbf¢õmèÁ‹-.£xÐ ˵¯÷šÎÑ)M¡xVŸz7åª "”…t†jò¼a¾ÿý>8÷"äé8Øþ‘}^$.LzNoÌ-‘@ìÓVQ_`5¨¨ÅRõ*|~v UTh“ê±à…ãèQ×eš²J(´1}¸¶ij#­lNázc¸Œã O ©æ0ë!Sò Ewêmú0Éa*¼#ꔇmï¢Å–ΔIôŸk&¾  ¬š»=mê´oÂ@JB[ù5 ;Æ¿ RLö@²S›] Þò÷J‰s »¼Dj±e‚i¥Kbå.î.#u0­ò¬ozm#,¢†ŒÇd’ ÌË8NæoX£šã6Q-•&F¤|÷b·c†AI­ÈqY0 …n¤¡Ž³oÓigx€yÝ?¤?.ûÅXzÛŸKöòœ³OäùmëAXE•˜ C4âЕ$<‹Ó$ÕŽ­Òıó+kÃtPæòG0¿Û.ðr}&'ÚŸŒVÀCJó¢P¼˜L—ÃVŒ/Ø7Þð# A¹é<¥Ú…~·ü\ÛѦél%ÏÑø,W\dŸ…¸&5u&Ëcyà“É;“h±nû_»½ºÌ1ΧƒŒàÊc=WîaEìC¦ºÉiå¬cPŸB§·n[àˆÍÀ çÁZK—ðzEq ýäËû®7Àá2Î~uãÝw&öà´‹!OMµ¿©«Í‘õŸéX~G¯SºíÐ0¸óÖTh7½,ÀõþLpÁ†Tq_2?†tn&‹‚j¯k( 4‰m×%=Aía‰I«"nÝT¦XG×!3ÄC»ß¢ÛÈÿ}¸|‡Þl }¿«vˆ !NÓú²dz! Óô´ %›µž=É%FËJ+éÇÀ§E—ÆüÜ.RjÛ#/:â*1z½¬ ¥°Ö¯ôÚnm¿;¡¬!'ÖŠÁ +§8R/Óisn#‹Ÿñp_†f‹èó³ Šrx ê%<¡Xœ´Y1çÖ:½/ÁÁ?Ryv´L°õ2\H¡°™ÑFç³Ùàíº»ûcœŠÄ}vž€"Âg¢ùÈL´qTwBŠm«¢Ù*3Á†âî©û©7!!)ÇdžMäå„lx$ã!Ðl–RÞv²^~òöh£ž°Õªb¸ž^9оÐ8PgÔêBÈ©“ÌuŽý\¬Ò+aCõÐt܆iù¶0Õˆ¤Ø"‰÷A¬ƒ=y•µÓL@ziN¥‘ i§¹?ä&qâCC!šžË¼‡në¡- N¨ nqn„(xwÒ³ñé½^¡w@Ž)¢xóoJz`Koq õXR[Vô‹L½vS^p¦‰-üåºîܬgøþ§½É½L©÷¶}àw-̃[Ï ÿn7Qa±ŸŠ¢î„Ä•õíûh¦ì]û¶yŽ:ÊÞyZ¹uEâ´û(浉$±Ëh[n”´:Ä~ÑI¶à(ótø¯µ°§&'æPgOAo8ê\Ôž8˜O-0ŽpĪAÝf-uªvÁ¨nÀàT!jº™kóÚœ&W+DV*5Œ†ÿj¸ä´l •š‹&J¡wTϼ9oíÀîµÆƒ,™™ùX=/¯f&+hUÕ ¤“ÔõaÜrm£€V»³zVi6Iœ¸½0µ¾>’×||uÚpŠ€hÐܸAùH~#ðâpå×½UgíGÁÊ9lèj­ ™zʼ"—³Ï´ÐÒÂMÍëŽÚf©¢?F!l9ð0²bÚÅ«ÔÆ .1ù2棎W6?ƒÚ¢s?ÑwC|ËŒROÈ-«6Ô)QKq5©g{4ÞB=‰¿¢­\ö}·¬]V’·órê½ã¶ —îãëbNÛPV2I}côoZp¿T⪨¥оË×÷žÄ3ú~{ ¯"f£âô?” ^e¤ùÚÓê¨ —màô…Â!’<–¤É¨ñÞ£ŠÕÃÈ3‹@G ´”òdš¸{"â…Ó?~͸²õЏ†ö+¤‚Æ{i©ª'Gxš8© |Á66Ÿ)¶Á©I+B1¸·³U7ÞœØÖz1ƒ,™Ødéõ<þaôÖo…¢Üþœ‰z@%ztüq›Î&B‡õ41Îc-i‘b×XääpÃjÒ+ŒU?ÉÆ Nb—ýàG•ˆå÷¯ ÷¬4rÔ•¸Î¹%…Ý÷pÚ€’ U-ò?ÏLÊŽL!®ùJ$¥Àÿ ~dƒ¤‘|ÚÝ7É;Ò)_fgõ‹’LA“â¸y<ßó¶pWÚñuŽŒ[‡Þ%áiIµtßuMHeŒátß­ŽŽµ }¼”æsÝ’q@­ù¯š*DøÙëÀ>PéãSzÚ…ã,wÿï^×Z˜ÈÓ7ûã O‡‚Ø,ó±#j ¿³û¨uIɈoťªb² gì¶J72‡šD›E –üé–7ÃßúÕÖ»GfŒ½œŒè0ä•Ð_%)ÎÕp!œ¸­ÎDïÃXgOR¶›K¥?˜» "z«û© ëÈ1ëgjM¸Û«P Ž…„3û°0ø²åkàÝÝiçq ²”áé•îÞÃuü@­žRÚDB€}ˆÃiÃH‡šŒPr÷FB˜Ó÷ó9½GDv4NŠB¦BÒÔ¾<ÆÚÎ<•ô³[FžÕʽ“#x’-Ùàâ{û7ž½hø¶#>Ó>,¾ª*uûkvßBº¢½(¹àj4JŒ”…™ç¶K‡?ˆ'*»¡7rräSÀÞ{)÷IH…XǧþH»LLZ©w0ø†&<5žµ<·À0ò–ÉÌB¯½pÔ p{ÚE‹®˜ïÍ;[ƒhɾáSlTZR”‘-]³°oBÚSòú¥”#U}žt»—RLäÖ´µ*mLdP0Ufiî"yõ†úž©WúzÖ€rʽ­ëñþQ›ÝÅ«-z%¾„È+¥ŒÏ¥퉬Þ&2žc\v‚kFľlEݺñiN›Û…Ša £Íålª€„Å~ëIʰ»Ñ€‰²w©¡ËõumÀt÷ô¤Å¡­Ü·Å½¬õ›M,2¶¼ Ã~z4ïs>$óæÑ²Ýˆä_‘–Â2¨ïZT‘à·hbd ´z¿Hq qMƒE^¢«È8xÃgŬ¬¾$öD#H£IäÇæZÜ\èmcº4ÄŠþMwûjS‹èl7n«_²UHL314D=0 ñÉêÜþ÷×`éZ+mϧ å{)‹=[Ü8v Eî{ŠGޝ'‡èh¤lü#àÖï³}$[ßÌξ‚Ô"liñ;]*Œcâ;âK'òc÷ÏXNÙÇ›ö¿µ‰’îo šH±ú¦±ð„'“Gù:ZÈž›:׌;ës#kXWÎ d’Æ@Bz&‚ó'CKZ“²Ó(2òDì×)4þREu¡½ÔÀ;œa|bx£Gæ©G™÷g©ÐÉ!NršÙUŸÌŒÒ\ÌŒÇ0ü )2Ì›ÝCß~W°ßc>4¥“Gåìº=†2ËóGòóR½¯ñX?‘pFµÎp…4Åi:Ýãœõ&“Kñ@oBŸà-jÁœ“iÖt"ÊÖ}[{d5A¯˜~2R>0ÆOòX5‡e•õ« —%'½~g¦¥è§ «­‡œ»aJ_l¶Ç¼rkV(ÁœÒ>^ÃãØ©Â,¢ŒTÕ‹…@Ž]˃òC´òÈkõâ—ûYÒÏõcòÆrd´¹•$`œðå…ö®[úo¿õ öæ]ÜüW”b­>p-ìÆdb^5ñÿ2ñ[•µîÿ"ö\Þ¤ç—Å€òôHª‰…ؽÓFqsBÕ±P¯¬^žÜ;IP °EŽ4®ñ5ocÍhø©%È^?÷ .@"û»» ¬ªJ/‘;G¥wPÕ€]‚j,Á·Áè éÿG7¡ž’Ú ªaQ"\ZfY§­<²õŽ~gÍ:#é|Üçll"ìV}$ j.mE&qÐåt¶HJ“*%‘Ñ|Ð÷ÕU•é–˜/ÿ5‚!7ÓP±Wð(Oh£90†æs vvÑ}R£g a: ˆ×é6rVa äÔÓAÐAkñÁÑö-â™¶Ôdd…¥DõÕfá@Áê®—ÿóoKBâ÷Èè)˜ÏšäÄŸÀu\ø À^…[ÌMT6>2¿¾Ö®±9ÔZ †0°ËÑ_ý›žé´‘ü‡ÝÐù¯2;êϳ´ïku¡yì;M¹²vàk×õ¢÷óïñýEßÅ Ú%¤›°›‘AB×ÚU‰8Z‹¯ˆOIq(ÏcA5À¨±ï±œHßÙ YÇ%ކ´Ãþ®wå(Šdœ‹?yôG^µ0ì ˆÁEÒÿE"D¾Ðü€ ”4“,F–§¥i@ºftÞ$jNŒ{íêbË oµÂà”~£1&˜Y?ì:É$:ˆ lþ]÷´5e‰úmƒÓà„+?=€HÙA¸á[ g¥Ö%BjryÝ ]i•Q/rßáÑR¤RÓlá…³f—Ñp¬(wð0wŽMíÖ¦jà‹FÍ”÷ÀM*0ÛUîÌTŒì%|vüA§õû¯Äùõ;çPƒ<k<' KªÅªÌ! Í(„'Dú¦'—Wñoññé ²‰-•'ct‰ ¥AuÔ d¹ƒuÀcžïŒîW8Ñj÷J¼rUdµs[aêù{O°f7ò«B_×ç1÷1îúz®`O«àlo·+e'“VEYhkxš,ÒyŒŒØ5⤼ϮÚD82dë^i(¢¬ v[ãDxÆdy0¹alÚøéÑc®ÇôaS¹¦ÈxZk&.„OCätJÌW 1„Ö×Ï-ʉo˜hË0ŽÒŒg9}YŒ€Òb3ßLذÑ€«ò!ÜZïß”§í®Ýöþó!ñêØ,­òÏ÷2¢®ЍlPœš0`ÿaN}¡‹¢Û¼³#=Ë’°Bðž'pcø’3‰˜¾¡S,3«zØ"‘ª7Ÿk žUº^ÇÝÅÎɃHóy½tï'fE@g¨üìNK™4´%¯pùþ2Ä£ AE¾o 7†îé˜7¬ìÁà.Æ+„ϸUð·Þ½ô¡A-XªÞ®½îs´RÃû§øñ+Eï›"€_œÜ¼]ô^´H¾?yû=— h3Ó˜§Àû0¯p“ ›tr„x _ò Б6wN¸¦—¤•geò¯E)×0œÁû µèô:Aqr+Õ«G³©é‹J²;IOÞºŒèRUÐybùÕ‚#Lƒã°]8¤˜ïvÈfúÇAt,æ``O ר/êØ𠮤lŽsÍøÍ?ö•kܤ¾¼ÇX„~ÃÏ1:ÿ{ßÉ ÷ÒãbKIF=t¨v‘ãš‘Π‚s X1¬ðné µ£ÉAðlHûb³vèi¥xÛêycz¬øÌ™ÿ1u½ð•aIÈúéì…Ƚq˜˜=Ú¬H…1P÷£ÈÙ^²ÚRËŸ•å¯/áÜò©¥£X«‹3»ŠºÃ&ž;s =…²±2´„ ý”·Í—Æèÿg _ ö2LƒïM‹‰Û +é`ÞÌýÚ³†ÙvÞ¤ž‘ª…¸©?JNÁXzÒ>á3äÌ…0=ÃØH€#„PŒ …DZ TS=“sË”÷C2¤ä°÷J_î—Çk½‘Ž"œÖŠª}äQ“ç³ìÀ^†_ÿܸ¹­“¯¡V”ªŽMíûeŽX}­o©°ì 6j¼ÑGA.-H? B<˜½¢ Í8;¹jŸ¹°Üì%ƒUôä¤J9BÔàøì^r¶Êgû^üñ¶Ä ¡7Û°òdºB3H÷ÊÞ˜zª¡Ç« ïÕLOÌZ íŽQl}BâÑ{oKÌ*ªTm}ñ˜#Fð›¶Çë)|x—ýFƒ¿õûÕ.TÁ­ðL–ßúj· …ÅÐ-ôm[T:”7W3«ÌùÚ#7¨“H­ï"͈WéoôI$Ƽ0ˆìéê!ûÖÈ1ÎÓëÝûv\RƒÌ\L¿†?ÝD¤x £DygyXVjŒ¿iÓjóÜm€ZÕG‘ph@M¼£è-úµ©®A^_p©Ê“®&‘ˆ¦§2i⛦ᚔJaw² CÏæ^5E¤Ë¨BÏàš^Že*ìý KJ^S3·öCYýíÆ#ýŽò[Cn4ÍíxðãG²ÿ(/)iäh3:²©òÕÐwøBìFcDE B ˜š÷¿`‡J_ÏÒF,¥×Ù.øVëV``ì€Y…Ÿø>ôÐçÍ*#ñ‚¬"-6ý† DM R´$ÿvƒÐ¸aXFÿhŒ×Ù߈ƒX²òm³íOAß­㉿dÎÊi/\°$úX .ãåøa=ì¤ ¹ ¥dt=à®aQZ·òŠþ³Q|7Òï|ôR1y-•õ^{–­ *}õ~¹£@ÄñRXq1|H(½£òX‡†Çœ} î IÌÙzÍ(\M_¶EÏ`ÚìEíëðEi'É}îr?€Ókö—5qßÉ$K™Oø1PÛ4ìñÊ=Ö˜Ž–3¬š½w¨öEiäö™Ø}·…¡ýpÿÙit32sjýýá  ),"ã #-03>ADOSUVWWXYZ[\]^V*Ð- )./9?@IPRTTUVWXYZ[[\]^_``a^XPMGHSgijkS À ",.2<>BMPQRSTUVWWXYZ[\]€^ZRLIC;?JS\gpy‚–¡´ÅÐáôýöÂwwc°4 (-.7=>FMOPQRSTTUVWXYZ[[\[VNJF>9ALU^irz…™§¹ÉÕçøýòžƒ„O 7"+-0:=@KNOOPQQRSTUVWWXYZXRJGC:9CMU^iqy„—§¹ÇÖéøûüüžý÷ ”. '-.;==GMMNOOPPQRSTTUVWWUOGE@7;GPYdnv‰›¬¼ÇÖç€ñðñ òóóôõö÷øùûüý盜M“/OLPQQRSTUURKEC=6=JR\hqz…˜¥·ÈÔæ÷ýýüûùøöõôóòñðïîî€í‚ìííîîïïðñòóôö÷øúûü›ý¼¨’WZ[K*:~’›«½ËÙëúýüûù÷öôóñðïîíìëëêé€èéêëììíîïñòóõöøúûü™ýس›‘_dd, ¡ü”ýüûù÷õôòðïîìëêéèççæ‚åäåææçèééêìíîïñóôöøúü˜ý鿱‘lp-¿•ýüù÷õôòðîíëêéçæåäããââ€á€à€áââãäåæçèéêìíïðòôöøúü–ýð˼m{Y€z”ýüûøöôòðîìêéçæåäâáààßÞÞ†ÝÞÞßàáâãäåçèêëíïñóõ÷ùû•ýòÖÆx‡"í“ýüù÷õóðîìêéçåäâáàßÝÝÜÛÚڀـ؀ÙÚÛÛÜÝÞßàâãäæçéëíïñóöøúü“ýôâщ‹G’ýüûøöôñïíëéçåãâàßÝÜÛÚÙØ×ÖÖ…ÕÖÖ×רÙÚÛÜÞßàâäæçéìîðòô÷ùü’ýõîÛ“}€p‘ýüúøõóðîìéçåãáàÞÜÛÙØ×ÖÕÔÓÒÒ†ÑÒÓÓÔÕÖרÚÛÝÞàâäæèêìïñóöùû‘ý÷ùæ‚€{ýüú÷ôòïíêèæäâàÞÜÚÙ×ÖÔÓÒÑÐÏÏÎ…ÍÎÎÏÏÐÑÒÓÕÖØÙÛÜÞàâåçéëîðóõøû„ýüóèàÛØÌ¾Ã€ýøý覌€uýüù÷ôñîìéçåâàÞÜÚØÖÕÓÒÐÏÎÍÌËËÊÊ„É#ÊÊËÌÌÍÏÐÑÒÔÕ×ÙÛÝßáãæ­¢™“Žƒztqj^UPNN€OPP €ýøý诖€oŽý9üùöóñîëéæäáßÝÙɽ±©¨ÃÎÍÌÊú´°­¦ž™–”Œ…€~{smhfb7>ÐÒÓÕ×ÙÛÞàâT€M€NOO€PQQRR€STT €ýøýèÅ¢€jý üïÜÒÀ²¨—Œ‚rk^Q€M ‰mRN’M ÌÎÐÒÔÖØÚÝß^UQQ€RSS€TUU€V@;³Íâ€ý÷ýèί€f€ý öäÛ˜sjXNM †e‘M"G31LhˆÉÊÌÎÐÒÔ×ÙÛÞááÇ”WVWWXXYYZZ>}ò„ý÷ýèÒ¿€ bè×ÍÌÏÑÔ×Ù€Ú€Û ÚØÖÕÔÒÑÐÏÎÍÌ̀ˀÊÈÆÄ ”‚e†M€NOOPME²ÀÂÃÅÇÉËÍÏÑÓÖØÛÝàãæ­€[\\]]^2°†ý÷ýèÖЀ`Šý$üú÷ôñíêçäáßÜÙÖÔÑÏÍÊÈÆÄÃÁ¿¾¼»£^NOOPPQQ€R$SST0¹»½¾ÀÁÃÅÇÉËÎÐÒÕ×ÚÝàâäh__``aa?Œ‡ý÷ýèÚà€[Šý$û÷ôñîêçäáÞÛÙÖÓÑÎÌÉÇÅÃÁ¿½»º¸·¶¯cSSTTUU€VWWKz¶¸¹º¼¾ÀÁÄÆÈÊÍÏÒÔ×ÚÝàâc€deZ?û‡ý÷ýèØè€V‰ý'ûøõñîëçåáØÉ¿·¨Ÿ˜Œ‚}riB%z¸¶µ³²±¤ZWXXYYZZ€[>³´µ·¸º¼¾ÀÂÅÇÉÌÎÑÔ×ÙÜàg€hi׈ý÷ýèÔí€P‚ýöæÜÖź´¤–tmbUN‰M 1]‚}k{­­¬†€\]]^^€_!E„¯°±³µ¶¸º½¿ÁÃÆÉËÎÑÓÖÙÜnkllmMqúˆý÷ýèÐñ€GëßѺ‚¸O·¶³±¯­«©§¥£¡Ÿžœš˜—•”’‘ދЉˆ…y¡©¨¦h``aabbccdUf«¬®¯±³µ·¹»¾ÀÃÅÈËÎÑÓÖ¿ooppoæøû‡ýöýèÍô€B‡ý&û÷ôðíéæâßÜÙÖÒÏÌÊÇÄÁ¾¼¹·µ³±¯­«©¨§¦¥¤‰dde€f&gghg 9§©ª¬­¯±´¶¸º½¿ÂÅÈÊÍÑÓŸssttE…ñõùü†ýöýèÉ÷€<†ý'üùõñîêçãàÜÙÖÓÏÌÉÆÃÁ¾»¹¶´±¯­«©§¦¤£¢Ÿ˜mii€j&kkll.œ¥¦¨ª¬®°²µ·º¼¿ÂÅÇÊÎуwwxt äïóöú†ýöýèùú€7†ý'úöóïëèäáÝÚÖÓÐÍÊÆÃ½°¨¢™Š„{uqjc_\T’ƒmm€n'oopp]]¡£¤¦¨ª¬¯±´¶¹¼¿ÂÅÇ˸{{||E‡éíðôøû…ýöýèñý4…ý÷åØÐõ«¤–Œ…~qie[RNM2U“qqrr€s&ttuŸ¡£¥§©«®°³¶¹»¾ÂÅÈ€z Þçêîòõùü„ýöýè8ëý0íÛËÁ»¬Ÿ—“‘‹Šˆ„€}yvtqomkihfecba``_^^]]\\[Y;“~uvv€w&xxyQq›Ÿ¡£¦¨«­°³¶¹»¿Â´‚ƒƒ„Hƒàäèìïó÷û„ýöýèæý-„ý-û÷óïìèäàÝÙÖÒÏËÈÄÁ¾»·´±¯¬©¦¤¡Ÿ›™—•”’‘ˆyzz{{€|}| .˜™œž ¢¥§ª­°³¶¹¼¿”€‡ ‚ ÕÞâåéíñõùüƒýöýèáý(ƒý)üùõñíéæâÞÚ×ÓÏÌÈž»¸µ±¯¬©¦£ žœ™—•“’Œ‹‹Š€~€€C–˜šŸ¢¤§ª¬°³¶¹¯Š€‹ M{ØÜàãçëïó÷ûƒýöýèÝý"ƒý)û÷óïëçäàÜØÔÑÍÊÆÂ¿»¸µ²®§œ‘‡†ƒ|srqldcc`Z3l€‚+ƒƒ„„……†{B’•—™œž¡¤§ª¬°³¶˜ŽŠ ÌÖÙÝáåéíñôùü‚ýõýèÙý"‚ýüùíÝÎÁ¾¶©œ˜“‰}xwoe^`ZRKRX€YZ[€\D2„€‡)ˆˆ‰‰ŠŠ3 Š‘“–˜›ž¡¤§ª­°«‘’““StÐÔ×Ûßãçëïó÷û‚ýõýèÖý&êÒ»¯¤’‚„ƒzwusrqnjfc`^]\[\]€^‚_`w€‹*ŒŒŽŽqTŽ“•˜›ž¡¤§ª­›––—’ÃÍÑÕÙÝáåéíñõùüýõýèÔý)‚ý.úöñíéåáÝÙÕÑÎÊÆÂ¿»·´°­©¦¢˜“Œˆ†ƒ}|zwutfkyzz€(‘‘’’“Š’•˜›ž¡¤§¥™š››XmÇËÏÓ×Ûßãçëïó÷ûýõýèÜý, ý/üøôðìçãßÛ×ÓÏÌÈÄÀ¼¹µ±®ª§£ š–”‘Ž‹ˆ†„~|zyxwwvv†“€”••––—af‰Œ’•˜›ž¡¥€žŸšºÅÉÍÑÕÙÝáåéíñõùýõýèðý/ý3ûöòîêæâÞÙÖÑÍÊÆÂ¾º¶³¯«¨¤¡š—”‘†wpic]WTWWTF73]x—˜˜™™€š%›˜*†‰Œ’•˜›ŸŸ¡¢¢£^f¿ÃÇËÏÓ×Ûßãçëïôøü€ýõýèâý4€ý'üùõñçÚζ« ”ŒŒ‡xoomic\Z[ZUPMPQSTV]chjkl€m S&nœœ€ž%ŸŸNt†‰Œ’•™œ ¥¦¦¢±½ÁÅÉÍÑÕÙÝáåêîòöû€ýõýèÖý;€ èЭŠxsnlkffkkji€j‚klmno‚p `|  ¡¡¢¢€£ “<ƒ†‰Œ’–™¨€ªd`·»¿ÃÇËÏÓ×ÛàäèìñõùüýýôýèÌýC€%øýýúöòíéåáÝØÔÐÌÈĽµ®¨£Ÿ›™”Іƒ}{xutr€qpononoH%6Yg¤¥¥¦¦€§)¨: {ƒ†‰“¢­®®ª ¨µ¹½ÁÅÉÍÒÖÚÞâçëïóøüýýôýèÃýJ€/òýüùõðìèãßÛ×ÓÎÊÆÂ¾º¶²®ª¦¢ž›—“Œˆ…‚|yvspnljhfedcb2…¨©©ªª««¬¬…M€ƒ†Š“¯±²²iY¯³·»¿ÃÈÌÐÔØÝáåéîòöûýýôýè¼ýP€6ìýüøóïëæâÞÙÕÑÍÉÄÀ¼¸´°¬¨¤ œ˜”‘‰†ƒ|yvspmjd_ZVRNKGDAOf«­€®¯¯€°'"}€„‡‹£µµ¶²  ­±µº¾ÂÆÊÎÓ×ÛßäèìñõùüýôýèµýU€6çýûöòîéãØÍ¸®¤›’‰€xph``_]YTPMOONLIEFJKKIIKRX\_bdZ[”±€²,³³´´µp^~…Œ·¹¹ºpS¨«¯´¸¼ÀÄÉÍÑÕÚÞâçëïôøüýôýè¯ýY€ʺ–xl^QIIRY\_``ensvxyz{{|}~€‚!Inµ¶¶€·*¸¸¹³){‚¤½½¾º ˜¦ª®²¶º¿ÃÇËÐÔØÝáåêîò÷ûýôýèªý]€'ÙüùôðëçãÞÚÓÈÀºµ±¬¥žš—•‘Œˆ†…„‚~}}~~}~€‚€ƒ„ ……Y-T§ºº€»*¼¼½½Yl|†¾ÁÁÂwM ¤¨¬°µ¹½ÁÆÊÎÓ×Ûàäéíñöúýôýè§ý`€)ÔüøóïêæáÝÙÔÐÌÇþº¶²­©¥¡˜”Œˆ„€|yuqnjgda^]\]^_^;KOP|¾¾¿¿ÀÀ€Á&«:z¤ÄÅÅÞ¢¦«¯³·¼ÀÄÉÍÒÖÚßãçìðõùüôýè‘úc€0ÏûöòîéåàÜØÓÏÊÆÂ½¹µ°¬¨£Ÿ›—“ŽŠ†‚~zwsokhda^[XUSPNMLK€JIJRºÂÃÃÄĀů@ {Ä€É~H˜œ¡¥©­²¶»¿ÃÈÌÐÕÙÞâæëïôøüóýè‘÷h€.ËúöñíçÝÔ˺±©¡™’‹ƒ|uoib\WQLFA<8424554321/036799€:4; JÆÇÇÈÈÉÉÊÊ—…ÌÍÍˈ—›Ÿ¤¨¬±µ¹¾ÂÆËÏÔØÝáåêîó÷üóýè‘õo€!µ·‡UCBFKMOPPQS[`ehjklmpu{€ƒ†ˆŠŒŽŽ‚‘€’ “34ZÉËËÌÌÍÍ€Î$$ÊÐÑÑ…C‘•šž¢§«¯´¸½ÁÅÊÎÓ×Üàåéîòöûóýè‘ów€ÅùôðëçâÜÐÇÁ¾¸¯©¦¤Ÿ™–•”Ž€ŒŒ‘‘’“‚”•4–sE§ÏÏÐÐÑÑÒÒÓ~wÔÔÕÓ!€”˜¡¥ª®³·¼ÀÅÉÍÒÖÛßäèíñöúóýè‘ñ~€$¾øóïêæáÝØÔÏËÆÂ¾¹µ°¬§£žš–‘‰„€|wspnllk€j>klnprux|ƒ‡‹,AmÓÓÔÔÕÕÖÖ×ÎÏØØÙŒ=ŠŽ“—œ ¤©­²¶»¿ÄÈÍÑÖÚßãçìñõúóýè‘ð„€/¹÷óîêåáÜØÓÏÊÆÁ½¸´¯«¦¢™”Œ‡ƒzvrmiea]YUQMIFC@=;9789<>BÂØØ€Ù'ÚÚÛÛÜÜÝÛ#y‰’–›Ÿ£¨¬±µº¾ÃÇÌÐÕÙÞâçëðôùòýè‘2³÷òè×ÑÊü¶°©£—’Œ†|wqlgc^YUQMHD@=962.+(%# =…ÜÜ€Ý'ÞÞßßààá”9ƒˆŒ‘•šž£§¬°µ¹¾ÂÇËÐÔÙÝâæëïôøòýè‘í€=™±zE::<=@DHKNPRTUWWXZZ[\]_bfiloqsuvwyz|}~€‚…ˆŒ‘”–˜šœC'IÙàáá€â%ããääã'rƒ‡‹”™¢¦«¯´¹½ÂÆËÏÔØÝáæêïóøòýè‘쀥öñíèäÜÐÉÅÀ¶±¯¬¥¢¢ œ›œœš›ž ‚¡€¢£‚¤¥¦ § <¢äå倿%ççèèœ/}‚†‹”˜¡¦ª¯³¸¼ÁÅÊÏÓØÜáåêîóøñýè‘õ”€.ŸöñìèãßÚÖÑÌÈÿº¶±­¨¤Ÿ›–‘ˆ„€~~|{{|}~€ƒ†‰’–œ¡§¨€©ª 05]èééêê€ë#ììF|…Š“˜œ¡¥ª®³·¼ÀÅÊÎÓ×Üàåêîó÷ñýè‘ø—€?šõñìèãßÚÕÑÌÈÿºµ±¬¨£Ÿš–‘Œˆƒzvqmhc_ZVRMID@<73/159=DMU\F'59=Âííîî€ï#ðð•]€…ŠŽ“—œ ¥©®³·¼ÀÅÉÎÓ×Üàåéîó÷ñýè‘L/€;–õñؽ¸´°«§£žš–’ŽŠ…}yvqmjfb^ZVSOKHDA=:63/,(%"!$9\„}#~~w'€…‰Ž’—› ¥©®²·»ÀÅÉÎÒ×Ûàåéîò÷áx‘€žX" €€€ !@K†M (p„‰’—› ¤©®²·»ÀÄÉÎÒ×Ûàåéîò÷ÚMI‘€õñìçáͼ°ŸŽƒwg]UH>7.%!!€"#$$%&''(()**++,,€./0.?H†M G;„‰’–› ¤©­²·»ÀÄÉÎÒ×Ûàåéîò÷ÚMI‘€(ŠõñìçãÞÚÕÐÌÇþºµ°¬§£ž™“†{si_XQHC>83/,)'&'€(€*+,,-..//01EL†M‰’–› ¤©­²·»ÀÄÉÎÒ×Ûàåéîò÷ÚMI‘€=…õñìçãÞÚÕÑÌÇþºµ±¬§£žš•Œ‡ƒ~zuplgc^ZUQLGA<730,**('),,.01'/@EK†M?O‰Ž’—› ¤©®²·»ÀÅÉÎÒ×Ûàåéîò÷ÚMI‘ €=õñÌ©§¤¢Ÿš—”‘Œ‰†ƒ€}zwtqmjgd`]ZVSOLHEA>:73/,(%"!$'+04;AEL‡M‰Ž’—› ¥©®²·»ÀÅÉÎÒ×Ûàåéîò÷ÚMI‘ €hŸM‚€  ‚ € 9BHˆM4eŽ“—œ ¥ª®³·¼ÀÅÊÎÓ×Üàåéîó÷ÛMI‘ €röñíèÖÁ´¡ŽƒqcXI=5(€$!!""##$$%&''(()**++,-..?CKˆML )“˜œ¡¥ª¯³¸¼ÁÅÊÎÓØÜáåêîó÷ÛMI‘€!möñíèäßÛÖÒÍÉÄÀ»¶²­©£“‡}od\QIB93.(#€" #$$%%&'(()€* +,,-,7AGŠM*{”˜¡¦ª¯´¸½ÁÆÊÏÓØÜáæêïóøÛMI‘-höòíéäàÛ×ÒÎÉÅÀ¼·²®ª¥¡œ—“І}xtpkgaYRKE@;730/-€+ *++,, )@CKŠMH?•™ž¢§«°´¹½ÂÆËÏÔØÝâæëïôøÜMI‘e÷ñ»„/ŽŒ‹Š‰‡†„ƒ}{xvsqnlhd`\WSPLHDA>;975454454:51/B  ‰  !"$'JOPM#Bgjm[†MIDª®²·»¿ÄÈÌÑÕÚÞâçëðôùüÝMI‘€AüøôíÔÀª“ƒl^J:+€ RSO€MGeimpm‡M!¡¯´¸¼ÁÅÉÎÒÖÛßãèìñõúýÝMI‘€';üùõðìçãßÚÖÒÍÉÅÀ¹¤–ƒtfWL=4( !€" #$$%%&' 2"€$!!""#%$ ehTEGIHotvy{~„‡Šg†MJJÂÆÊÎÒÖÛßãçëðôøüýýÝMI‘J!ýýüøôðëçãßÛ×ÓÏÊÆÂ¾»·³¯«¨£”…wi]OE90% !!""#HliCDFH(Euwy|~„‡Š…‡M#µÈÌÐÔØÜàåéíñõú€ýÝMI‘Kýî™MMU\djqw~ƒˆŽ’—›Ÿ¤§ª¬ª¦£Ÿœ˜•’Œ‰†ƒxncZQHA82-@@ y~€‚„†ˆ‹“–™œX†M;‰ÒÖÚÞâæêîòöúýÝMI‘ýúöòîêæâÞÚж£‹ycR>/€€(!!5|y>:<>&I€‚ƒ…‡‰ŒŽ‘“–™œŸ|‡M 0ÔØÜàäçìðôøüýÝMI‘ ýCüøôðìèäàÜØÕÑÍÉÆÂ¾»·¯›‹xjXK;0" p€`79;< ~„…‡‰‹’”–™œŸ¢ Q†M 0«ÚÞâåêíñöú‚ýÝMI‘Hýã‚-+7ALV_ir{ƒ‹’𡍮´ºº¶³°­ª§¤¡ž›•†zk`RH;2&(Uƒ„‚=58:$K‡ˆ‰‹ŒŽ“•—šœŸ¢¥¨t†M KOÜàäçëïó÷û‚ýÝMI‘€¡B"  Š1&-5,.0!O”•–—˜š›ž¡£¥§ª¬¯±´·¹]†M=•ìðôøü„ýÞMI‘!€Iåßx,9FR^it‰“¦¯¸ÀÈÈÅ¿¼¹¶´° |m[Mè‚ýßMI’€[‹ý<üûøõòïìéçäâßÝÛØÖÔÒÑÏÍÌÊÉÈ­Ÿ‹~k_MA1&&(-"ŸÅÆÇÈÊËÌÎÏÑÓÕ×Ù¬*JŠML’î€ýßMI’€ ê‹ýüûøõòïíêçåãàÞÜÚØÖÔÓÑÐÎÍÌËÊÉÈȀǀƸªžÂÉÉÊËÌÍÏÐÒÓÕ×ÙÛ݈MK"€UýýßMI’ €eŒýüûøõóðíëèæäâàÞÛÚØÖÕÓÒÑÐÏÎÍÌÌËËÊ€ËÌÌÍÎÏÐÑÓÔÕ×ÙÚÜÞàN‘M > 5ýýßMI’”ýûøöóñîìéçåãáßÝÜÚÙ×ÖÕÓÓÒÑÐπ΀ÏÐÐÑÒÓÔÕÖØÙÛÜÞàâäæèÙÎÀ²¤”†tfRŠMdýýßMI’&jêŒýüùöôòïíëéçåãáßÞÜÛÚØ×ÖÕÕÔ€Ó‚ÒÓÓÔÔÕÖרÙÚÛÝÞàâãåçéìîðóõ÷úü€ýõáÔ¿³‘|o[NMMVøýýßMI“FkФÃÞú†ýüú÷õóñîìêèæåãâàßÝÜÛÚÙØØ€×‚Ö×רØÙÚÛÜÝÞßáâäåçéëíïñóöøûü‹ýüêÛ÷€ýßMI”‡ 8Wp«ÉæüýüûøöôòðîìêèçåäâáàßÞÝÝÜ€Û‚Ú€ÛÜÝÝÞßàâãäæçéëìîñóõ÷ùü”ýßMI• ˆ$>]w”®Èåñïîìêéèæåäãâáààß߃ހßàááâãäæçèéëíîðòôöøûü•ýßMI–‚ˆ (B^x’®Åáèçæåääãã„âããäååæçèéëìíïðòôöøúü—ýßMIšƒ‰-G`|”±Éãƒæççèèéêëìíîðñóôö÷ùûü˜ýàMI£ƒˆ2Nfƒœ¹ÔëìíîïðñòóõöøùûüšýßMI¬‚ˆ  9Wq«Èçùúûüœý×MI´€  ˆ )Cb~›¹Óó—ý¶MB½  ˆ/Kh† ÀÚøŽýzM9Å "$&(++&" ˆ 5Sm§ÆâûƒýåyMM"Î"+.02468;=83,'ˆ  ;[kg>GMHÖ "-3>@BDGIKMKA:/(„IMMà *2ADOSUVWWXYZ[\]^V*Ð- )./9?@IPRTTUVWXYZ[[\]^_``a^XPMGHSgijkS À ",.2<>BMPQRSTUVWWXYZ[\]€^ZRLIC;?JS\gpy‚–¡´ÅÐáôýöÂwwc°4 (-.7=>FMOPQRSTTUVWXYZ[[\[VNJF>9ALU^irz…™§¹ÉÕçøýòžƒ„O 6"+-0:=@KNOOPQQRSTUVWWXYZXRJGC:9CMV_jr{†Ž™ª¼ÊØëúüüŸý÷ ”. '-.;==GMMNOOPPQRSTTUVWWUOGE@7;GPYdnv€Š’ž¯ÀËÛìö€õö€÷øøùúúûüüý盜M“OLPQQRSTUURKEC=6=JR\hqz…˜¥·ÈÔæ÷€ý üûúùùø÷÷öõõô„ó€ô õõöö÷÷øùúûûüœý¼¨’WZ[K*:~’›«½ËÙëúŽý üûúùø÷ööõôôóó€ò†ñ€ò óóôõõö÷øøùúûüšýس›‘_dd, ¡ü•ý üûúùø÷öõôóóòññ€ðˆïððññòòóôõõö÷øùúûü˜ý鿱‘lp-¿•ýüûúùø÷öõôóòñððïïîî€í„ì€íîîïïðñòòóôõö÷øùûüü–ýð˼m{Y€z•ýüûùø÷öõóóòñðïîííìì€ë†ê€ëìííîîïðñòóôõö÷øúûü•ýòÖÆx‡"í“ýüûúù÷öõôòñðïîîíìëëê€éèçç‚èééêêëëìíîïðñòóôõöøùúü”ýôâщ‹G“ýüûùø÷õôóòðïîíìëëêéèèçç€æ„倿ççèééêëìííïðñòóôö÷øúûü’ýõîÛ“}€p’ýüúù÷öôóòñïîíìëêéèççæåå€ä†ãääååææçèééêëìíïðñòôõöøùûü‘ý÷ùæ‚€{ýüûúø÷õôóñðïíìëêéèçæååäããââá€àáââããäåææçèéêëíîïðòóôö÷ùûü„ýüóèàÛØÌ¾Ã€ýøý覌€uýüûúøöõóòñïîìëêéèçæåäãââáàà€ß„Þ€ß ààáâããäåæçèéêìíî𲦜–’„ztqj^UPNN€OPP €ýøý诖€oŽý9üûùøöõóòðïíìêç×˾·¶Ôâáàß×ÍÆÂ¿¶­§¤¡˜Š‡ƒzrmje:"CãäåæçèêëìîT€M€NOO€PQQRR€STT €ýøýèÅ¢€jý üðÞÕĶ­›†um_R€M —rSO’M#áâãäåæèéêì_VQQ€RSS€TUU€V@;³Íâ€ý÷ýèί€f€ý öäÛ˜sjXNM!•i‘M"G33Tt—ÞßáâãäåçèêëíëϘWVWWXXYYZZ>}ò„ý÷ýèÒ¿€ bè×ÍÌÏÑÔ×Ù€ÚÛÛÜÛÛÚ…ÙÚÚÛÜÜÝÞßÞÝܱ£k†M€NOOPMOÊÚÚÛÜÝÞàáâãåæèéëìîð²€[\\]]^2°†ý÷ýèÖЀ`‹ý#üúøöôòñïíëêèçåäâáàÞÝÜÛÚÙØ×Ö¹cNOOPPQQ€R$SST8Õ×רÙÚÛÜÞßàáãäæçéêìîîi__``aa?Œ‡ý÷ýèÚà€[Šý$üúøöôóñïíëêèæåãâàßÞÜÛÚÙØ×ÖÕÔÓÌhSSTTUU€VWWKÔÔÕÖרÙÚÜÝÞßáâäåçéêìîc€deZ?û‡ý÷ýèØè€V‰ý'üûù÷õóñïíåÕËÄ´ª¤–‹†yoG*"ŒÔÔÓÒÑÐÀ\WXXYYZZ€[?¨ÑÒÓÔÕÖרÙÛÜÝßàâäåçèêì‚g€hi׈ý÷ýèÔí€P‚ýöæÜÖźµ¤—‘ƒuncUN‰M 2 f“Ž|‘ÍÎÍ™€\]]^^€_!FÏÐÑÒÓÔÕÖ×ÙÚÛÝÞàâãåçèéokllmMrüˆý÷ýèÐñ€GëßѺƒ¸N·µ´³²°¯®­«ª©©§¦¥¤££¢¡ ŸŸžžš‘ÁÌËÈl``aabbccdV{ÍÎÏÏÑÒÓÔÕרÚÛÝÞàáãåçÊooppoéúü‡ýöýèÍô€B‡ý&üúøöôòðîìêèæäâáßÝÜÚÙ×ÖÔÓÒÐÏÎÍÌËÊÊÉÈ dde€f&gghh FËËÌÍÎÏÑÒÓÕÖ×ÙÛÜÞàáãå§ssttFˆ÷ùûü†ýöýèÉ÷€<†ý'üûù÷õòðîìêèæäãáßÝÛÚØ×ÕÔÒÑÏÎÍÌËÊÉÈÇŽÄqii€j&kkll. ¿ÉÊËÌÍÏÐÑÓÔÖ×ÙÚÜÞàáã†wwxt ëõ÷úü†ýöýèùú€7†ý'üù÷õóñïíëéçåãáßÝÛÕǾ¹®¤—‹„vlgbX ¸˜mm€n'oopp]tÇÈÉÊËÍÎÏÑÒÔÕ×ÙÚÜÞàÇ{{||Fòôöøúü…ýöýèñý4…ýøçÛÕɺ±«’‹„vni^TNM2mºrqrr€s%ttu ÄÆÇÈÉÊÌÍÏÐÒÓÕ×ÙÚÜÞ•€{ èðòõ÷ùû…ýöýè'ëý0íÛËÁ»¬Ÿ—”’‘ŽŒ‰…‚|zxvtrpomlkjihg€f€e dba#'M¾uvv€w&xxyRÄÅÆÇÉÊËÍÎÐÒÓÕ×ÙÚÆ‚ƒƒ„H‹íïñóõøúü„ýöýèæý-„ý-üúøõóñïíëèæäâàÞÜÚØÖÔÓÑÏÍÌÊÉÇÆÅÃÂÁÀ¿¾¾½¼¼­yzz{{€|}|;ÁÃÄÅÆÈÉËÌÎÐÑÓÕ×Ù›€‡ ‚ ãëíðòôöùûüƒýöýèáý(„ý-ûù÷ôòðíëéçåãàÞÜÚØÖÕÓÑÏÍÌÊÈÇÅÄÃÁÀ¿¾½¼»»ºº¹‰~~€€D§ÁÂÃÅÆÇÉËÌÎÐÒÓÕÅŠ€‹ M…èêìîñóõ÷úüƒýöýèÝý"ƒýXüúøõóñîìêèæãáßÝÛÙ×ÕÓÑÏǼ°¦¦¡˜ŽŒŠ‚xuuof>”¢‚‚ƒƒ„„……†{V¾ÀÁÂÄÆÇÉÊÌÎÐÒÔ ŽŠ Ýæéëíïñôöøûü‚ýõýèÙý"ƒýûðâÔÈÆ¿²¥¢“†€wlee_ULSYZ[€\EE³ˆ€‡)ˆˆ‰‰ŠŠ3 µ¾¿ÀÂÄÅÇÉÊÌÎÐÑ’““Sãåçéìîðóõ÷úü‚ýõýèÖý&êÒ»¯¤’ƒ†…|zwvutrmieb`^]\€[\]€^‚_` ¨›€‹)ŒŒŽŽrp¼½¿ÀÂÃÅÇÉËÌÎ¥––—’×áäæèëíïñôöùû‚ýõýèÔý)‚ý.ûù÷ôòïíëèæäâßÝÛÙÖÔÒÐÎÌÊǽ¹µ²®¬ª§¦¥¤¢Ÿœ™Ž™®°«Ž€(‘‘’’“ ¹»½¾ÀÂÃÅÇÉËÁ™š››XzÞàâåçéìîðóõ÷úüýõýèÜý, ý/üúøõóñîìêçåãàÞÜÚ×ÕÓÑÏÍËÉÇÅÃÁ¿½¼º¹·¶µ³²±°¯¯®®­­™“€”(••––—aй»¼¾ÀÂÄÅÇÉ©žžŸšÒÝßáãæèêíïòôöùûýõýèðý/ý3üù÷õòðíëéæäáßÝÚØÖÔÒÏÍËÉÇÅÃÁ¿½»´«£›“‹„|y{ytdRLŒ£—˜˜™™€š%›˜:·¹»¼¾ÀÂÄÆ¾¡¢¢£^uÙÛÞàâåçéìîñóõøúü€ýõýèâý4ý&ûøöîã×Ì·¬¢šš–†}~|wogeeb]UQSRTUV^eikkl€m T;¨›œœ€ž%ŸŸP ·¹»¼¾ÀÂÄ­¥¦¦£ÌØÚÜßáãæèëíïòô÷ùü€ýõýèÖý;€ èЭŠxupnnghllki€j‚klmno‚p—€ ¡¡¢¢€£ ”Tµ·¹»½¿Á¼¨€ªdoÔ×ÙÛÞàâåçêìîñôöøû€ýôýèÌýC€9øýýüù÷ôòïíêèåãàÞÛÕÎǽº¸¶±«§£Ÿ››—’ŒŠ‰ˆˆ…‚€~}|W:52*/nŽb†M@l¹»¾ÁÃÆÉÌÎÑÔÖÙÜÞáäçéìïñô÷úÜMI‘ €=€ùöÒ°¯®¬¬ª©¨§¥¤£¡ Ÿœš™—–”“‘ŽŒ‹‰‡†„‚}|zxwusqponnoqtvy{~ˆŽV‡M¸¼¾ÁÄÆÉÌÎÑÔÖÙÜßáäçéìïòô÷úÜMI‘ €i¡N‡ € ƒ€ € Œ  xˆM5‡¼¾ÁÄÇÉÌÏÑÔ×ÙÜßáäçéìïòô÷úÜMI‘ €sùöôñàË¿¬š}mcRD;+€$!!""##$$%&''(()**++,-..=X‰M 7¼¿ÁÄÇÉÌÏÒÔ×ÚÜßâäçêìïòô÷úÜMI‘€!mùöôñîìéæäáÞÜÙÖÔÑÎËǶ¨wh^VH?8-%€" #$$%%&'(()€* +,,--}zŠM+¢¿ÂÅÇÊÌÏÒÔ×ÚÜßâåçêíïòõ÷úÜMI‘;hù÷ôñïìéçäáÞÜÙÖÔÑÏÌÉÇÄÁ¿¼¹·´±¯¬ª§¥Ÿ’ˆ€tleZSME>92,*++,, _ŽZŠMHRÀÂÅÈÊÍÏÒÕØÚÝàâåèêíðòõøúÜMI‘eúõÀ•—˜™›œžŸ¡¡¢£¤¤€¥€¦…§¥£ žœ™—•’‘‹‰ˆ‡…|xslwŒ}M/‡M ¶ÃÅÈËÍÐÓÕØÛÝàãåèëíðóõøûÜMI‘ € W¡L% €  † !#%'S‘\€MF9†MAnÃÆÉËÎÐÓÖØÛÞàãæèëîðóöøûÝMI‘ €_úøõòßÎÁ­¡‘ucWK:0..-,+€*ƒ) (('%$!„u‘M"V‡MÃÇÉÌÎÑÔÖÙÜÞáãæéëîñóöùûÝMI‘€9YûøõóðíëèæãàÞÛØÖÓѲ¨–Š~oeWJB2)%$$#""! +‘“`€MG¡X†M7‹ÇÊÌÏÒÔ×ÙÜßáäçéìïñôöùüÝMI‘€8TûùöóñîëéæäáÞÜÙ×ÔÑÏÌÊÇÅÂÀ½»¸¶³±¨™‚vm_UJ>6* $y“…M#m¤}‡M 6ÈËÍÐÒÕØÚÝßâåçêìïòô÷úüÝMI‘€8Nüó±}‚†‰“–™œž¡£¦¨ª¬®°²³µ··´²°­«©§¤¢ ž›™˜’†~sh`UQx“”–c€MG¢¥¡Q†M-©ËÎÐÓÖØÛÝàãåèêíïòõ÷úüÝMI‘€>C  ˆ  "%(+.1469BGKOTX\`eimrv{‰  mIKMI¦ª«­¯±³µˆ‡M 5ÖØÛÝàâåçêìïñôöùûýýÝMI‘1 ,ýýûéÏ» ŽtcL>+   ‚^£šIHKL)hª¬­¯±²´¶±R†M/°ÚÜÞáãæèëíïòõ÷úüýýÝMI‘" &ýýüú÷õòïíëèæãà͹¥j[F8%€$!!""#&&¡¥pEGIH§¬®¯±²´¶¸ºz†MJTÛÝßâäçéëîðóõøú€ýÝMI‘J!ýýüúøõóðîìéçäâßÝÛÙÖÔÒÏÍËȶ¦”ƒucVE9) !!""# p§ FDFH)g­®°±³´¶¸¹»«‡M$ËÞàãåèêìïñôöùû€ýÝMI‘Kýî™MNW_gow†Ž•œ£©°¶¼ÂÈÍÌÊÈÆÄÂÀ¾¼»¹·µ¥˜‰{o_UF<5Z ©©t@BEDª¯°²³µ¶¸¹»½¿l†MEtßâäæéëíðòõ÷úü€ýÝMI‘¡@  Š.%,29@GMSZ_flrx~„Š–œ©¬§D?AC(g°±³´µ·¸º»½¿ÁŸ‡MÝãåçêìïñóöøûýÝMI‘€ý öØÂ¥taI:"    ‡¡®y;>@@¬²³µ¶·¹º¼½¿ÁÂÃ]†M;•äæéëíðòô÷ùüýÝMI‘ýüù÷õòðîëéàŲ˜…m[D4€€( ""K±¬C:<>'f´µ¶·¸¹º¼½¿ÁÂÄÆ’‡M 4åçêìîñóõøúüýÝMI‘ ýCüúøöóñïìêèæãáßÝÛÙÖÔ̵¤Ž~hYE7$ ž³~79;<¯¶·¸¹º»¼¾¿ÁÃÄÆÈÂS†M 0¸éëíðòô÷ùû‚ýÝMI‘Hýã‚-+7BMXcmw‚‹•Ÿ¨±ºÃËÔÖÔÒÐÎÌÊÉÇÅĽª›‡zfYG:)0t´¶³C58:%f·¸¹º»¼½¿ÀÁÃÄÆÈÉË‚†M KUêìïñóõøúü‚ýÝMI‘€¡B"  Š1#-6@IQZclt}…•ž¦®·¹¹¸¸„2469²ºº»¼½¾¿ÁÂÃÅÆÈÉËÍ»‡M &Öîðòô÷ùûƒýÝMI‘€÷ýýùÜŦpZE*     Š&»¹D135#f»¼½½¾¿ÀÁÃÄÅÇÈÊËÍÏÐr†M FwïñóöøúüƒýÞMI‘€ò‚ýBüûøöôòìк†kT>%y¼½½‹-/24µ¾¾¿ÀÀÁÂÄÅÆÇÉÊÌÍÏÐÒ­‡Mêòõ÷ùû„ýÞMI‘€ìƒýüú÷õóñïìêèæäâàÜİ–ƒjWA-€#TÁÀÀ¿E,.0!g¿ÀÀÁÂÃÄÅÆÇÈÉËÌÎÏÑÒÔÕa†M=›ôöøúü„ýÞMI‘!€Iåßx,9GT`lx„›§²½ÇÒÜÞÜÚÙ×ÕÔÒнª“‚kZE4!¨Ã“)+-0 ¸ÂÂÃÃÄÅÆÇÈÉÊËÍÎÏÑÓÔÖׇM2õ÷úü…ýÞMI‘#€ŽC#  ‹ +7BMXbmw‚Œ–¡«µ¿¼ÆÅÅÄH'),S€ÄÅÆÆÇÈÉÊËÌÍÏÐÒÓÔÖØÙÓT†M2¿ùûü…ýÞMI‘%€ÙýýùÚÁ¢‡oU<  ‹"mÈÇœ$&(+ ’ÆÆÇÇÈÉÉÊËÌÍÎÏÑÒÔÕÖØÚÛÝŠ†MLNúü†ýÞMI’€Ò…ý üûùéË®”v^B*€ C­ÊÊÉJ#%'$»È€ÉÊËËÌÍÎÏÐÒÓÔÖרÚÛÝ߇M*·ýÞMI’Îýýêâòýüúøöôòðîìêèϸ›…kS=#€D‰€t¦ÎÍÍÌ–!$&€ËÌÌÍÎÎÏÐÑÓÔÕÖØÙÚÜÝßáâd†MIP‡ýÞMI’KËÎ]%5ETcq€Žœª¸ÅÓàçåãâàßÝÖ¼§˜ÔÔÓÒÑÑÐÏÂ1 "$ÍÍÎÎÏÏÐÑÒÓÔÕÖרÚÛÜÞßáâä‡M'ƆýÞMI’€‡M1 ‹5"0>LYgtŽ›¨´ÌÔÔÓÒÈN!#6ÌÏÐÐÑÒÒÓÔÕÖרÙÚÜÝÞàáãäæÔ‡MI9ü…ýÞMI’€Ã€ýçɧŠnS6   ‰ ‚×ÁO "€6«ÒÓÓÔÔÕÖרÙÚÛÜÞßàâãåæèéb‡M,œ…ýÞMI’€¾‡ý&üãÆ¤†iH-  €†!#"O£ÖרØÙÚÛÜÝÞàáâäåçèêëy‡ML à„ýÞMI’€¶Šý&üúø÷õòÖ»œeF-lÒ8 "$€wØÙÚÚÛÜÝÞßáâãäæçèêëëoˆM;7ôƒýÞMI’€™‹ý<üúø÷õóòðîíëêç˲–zb\ÄßÞ`-!#%'+*—ÛÛÜÝÞÞßàâãäåæèÈ+ ŠM$>è‚ýßMI’€[Œý;üúø÷õóòðïíìëéèçåäãâáàßßÞØÀ±š‹vhTF3'&(-&²ÜÝÞÞßàáâãäåæçè¶+JŠML’î€ýßMI’€ êŒýüúù÷õôòñïîíëêéèçåäããâáàà߀ރÝ̼®ØÞßßààáâãäåæçèéêMK"€UýýßMI’ €eýüúù÷öôóñðîíìëêéèçæåäããâáá€à„߀àááâããäåæçèéêëí”N‘M > 5ýýßMI’”ýüûùøöõóòñïîíìëêéèçæååääããâ€áâããääåææçèéêëìíïððàÔõ¦•‡tfRŠMdýýßMI’&jêŒýüûúø÷õôóñðïîíìëêéèèçææ€å†ä€åæççèééêëìíîïñòóôö÷ùúüü€ýõáÔ¿³‘|o[NMMVøýýßMI“FkФÃÞú†ýüüúù÷öõôòñðïîíìëëêééèè€ç„æ€çèèééêëìííîïðòóôõöøùûüŒýüêÛ÷€ýßMI”‡8Wp«Éæüýýüûùø÷öôóòñðïîîíìëëêê‚é€èéêêëëììíîïðñòóôõö÷ùúûü”ýßMI• ˆ$>]w•±Ëé÷õôóòññðïîîííìì‡ë€ìííîïïðñòóôõö÷øùûü–ýßMI–‚ˆ )C`{–³Ìéñð€ïîî…í€îïïððñòòóôõö÷øùúûü—ýßMIšƒ‰.Idš¸Ñíïð€ñ òóóôõõö÷øùúûü™ýàMI£ƒˆ4Qjˆ¢¿Ûòóôôõõö÷øøùúûü›ýßMI¬‚ˆ !:Ys‘­Êéûûüý×MI´€  ˆ )Cb~›¹Óó—ý¶MB½  ˆ/Kh† ÀÚøŽýzM9Å "$&(++&" ˆ 5Sm§ÆâûƒýåyMM"Î"+.02468;=83,'ˆ  ;[kg>GMHÖ "-3>@BDGIKMKA:/(„IMMà *2ADOSUVWWXYZ[\]^V*Ð- )./9?@IPRTTUVWXYZ[[\]^_``a^XPMGHSgijkS À ",.2<>BMPQRSTUVWWXYZ[\]€^ZRLIC;?JT\gqzƒŽ–¢´ÆÑâõþöÂwwc°4 (-.7=>FMOPQRSTTUVWXYZ[[\[VNJF>9ALU^ir{†š§ºÊÖèùþ󞃄O 4"+-0:=@KNOOPQQRSTUVWWXYZXRJGC:9DNWalu~‰’­¿ÍÛîü¡þø ”. '-.;==GMMNOOPPQRSTTUVWWUOGE@7;GPYeox‚•¡³ÄÐáó³þ蛜M“OLPQQRSTUURKEC=6=JR\hqz†˜¦¸ÈÔçøÄþ¼¨’WZ[K*:~’œ¬¾ÌÙìûÔþÙ³›‘_dd, ¡ýÝþ鿱‘lp-Àßþñ˼m{Y€{àþòÖÆx‡"îàþôâщ‹HáþöîÛ“}€páþøùæ‚€|ÕþýôéáÜÙͿĀþùý覌€uÇþº¬¡™•‘…{tqj^UPNN€OPP €þùý诖€o›þüêÞÑËËî€þýõéáÜÙÏĽ¸µ©Ÿ˜”„{tqj=&K‡þU€M€NOO€PQQRR€STT €þøýèÅ¢€jŽþ óâÚÉ»³¡–‹yqbS€M!«yUO’M(‡þaVQQ€RSS€TUU€V@;´Îâ€þøýèί€f€þ ÷åÜϾ·§˜‘sjXNM!ªp‘MG45_†­‰þûÚžWVWWXXYYZZ>~ó„þøýèÒ¿€ béØÎÍÐÒÕØÚÚ€ÛÜÜÝÞßàâãäæèéëíïòôöùüþʹ s†M€NOOPM]íþº€[\\]]^2±†þøýèÖЀa¦þÙiNOOPPQQ€RSSTCýþ üj__``aa?Œ‡þøýèÚà€[§þõqSSTTUU€VWWL¬’þ„c€deZ@ü‡þøýèØè€V’þ÷æÝÖźµ¤™“„wO1)¦ƒþè^WXXYYZZ€[?Í’þ…g€hi؈þ÷ýèÔí€P‚þ÷çÝׯ»µ¦™”†xqfVN‰M 2! u«¦–±üþþ³€\]]^^€_GÁ‘þýokllmMt‰þ÷ýèÐñ€GìàÒú¹Ž¸Š¹¸´ðþþús``aabbccdV™‘þÚoo€pï‰þ÷ýèÍô€CªþÂdde€fgghh X‘þ²ssttFŠþ÷ýèÉ÷€=¨þüòûvii€jkkll/ òþ‰wwxt öŠþ÷ýèùú€7—þøéßÚÍÀ¹²£™”‡zsl^# ï·mm€noopp^”þÜ{{||F–‹þ÷ýèñý4…þùêàÛ굦›•~tobUNM3óuqrr€sttu)ýŽþ€{ ø‹þ÷ýèëý1îÜ̼­ ˜••”’Ї…ƒ}|zyxvuttsrr‚q pmk.4gþ§uvv€wxxyS»þà‚ƒƒ„I–Œþ÷ýèæý.¬þâyzz{{€|}|Nþ¥€‡‚ ÷Œþöýèáý(­þ˜~~€€EÝ‹þ㊀‹N“þöýèÝý"™þ!öêÞÓÒÍÁ´²®£–‘…xM*ÍЂ‚ƒƒ„„……†|s‹þ¬Ž‹ öþöýèÙý"ƒþýõéÝÒÑË¿²°¬¢”ƒvnmeXNUZZYYZ[€\Faû€‡ ˆˆ‰‰ŠŠ5ô‰þæ‘’““TŽþöýè!Öý&ëÓ»°¥“…ˆˆ„€}{zzywrmieb`^]\[[\]€^‚_` ðÀ€‹ ŒŒŽŽs™‰þ³––—’õŽþöýèÔý)™þü÷óïëèåãáàßÞÞÜ×ÓÏÆÝúþñ€‘‘’’“!-ý‡þ陚››YþöýèÜý, ¯þ´“€”••––—c¾‡þºžžŸ›ôþöýèðý/žþýöìãÙÏÆ½³¯¯«£zqÏâ—˜˜™™€š›™R†þë¡¢¢£_Šþöýèâý4„þ øïåÛÒÈ¿µ¯¯¬¥›’’Šwttog]VXUUVV_gk€l€m UYþªœœ€žŸŸQà…þÀ¥¦¦£óþõýèÖý;€éÑ­‹zvrppjjonlj€i€j‚klmnop qæÕ  ¡¡¢¢€£•w„þí©€ªe‡‘þõýèÌýC€ùþ(øòìèäâááÜÕÏËÈÅÄÅÀ¹´¯¬ª©©¤ž™•‘k]‰àù§¤¥¥¦¦€§¨<õƒþÇ­®®«ñ‘þõýèÃýJ€ó°þ ˨©©ªª««¬¬‡‚þð°±²²k„’þõýè¼ýP€í¤þüôìåÝÕÍÆ¾¶¯Ö𬭀®¯¯€°$0‚þ͵µ¶³ð’þõýèµýU€èƒþ/ûôìäÜÕÍž¶®¦Ÿ—‘ˆ€yuwuqkd][][UOJKU\acdd\Aþñ€²³³´´µr€þñ¸¹¹ºq“þõýè¯ýY€Ë»˜|pbTJIRZ^_``foux€z{{|}~€‚$Õåµ¶¶€·¸¸¹´V€þÒ½½¾»î“þõýèªý]€Ú†þúñëæäãß×ÐÌÊÊŽ·³±±¬¤ž›™™“Œ†ƒ‚‚€ƒ„ ……\‹ý¿ºº€»¼¼½½\ãþóÀÁÁÂx~”þôýè§ý`€Ô£þýöïêæååÞÖÑÎÁôþþݾ¾¿¿ÀÀ€Á ­{þ×ÄÅÅÃí”þôýè‘úc€Ð¯þ ý÷÷øÂÂÃÃÄĀůBîǀɀz•þôýè‘÷h€ÌþFü÷ñëæàÛÕÐÊÅ¿º´¯©¤ž™“Žˆƒ}xrmlnnmie`[VUWXWTPLGB?(ýØÆÇÇÈÈÉÉÊÊš™ÌÍÍË ë•þôýè‘õo€!¶ºŒXEDGLNOPQQT\cgjlmnnpw~ƒ‡‰‹‹ŒŽŽ‚‘€’ “7¼ñÊËËÌÌÍÍ€Î&ËÐÑчw–þôýè‘ów€ÆƒþüòëçæáØÒÏÐÈÀ»º¸¯©¥¤¡˜“‘‘’“‚”•–vRþÕÏÏÐÐÑÑÒÒÓ€zÔÔÕÓ" é–þôýè‘ñ~€À›þ*øïêçèàÙÔÓÓËÃÀ¿¾µ¯¬«ª¡Bl³þëÓÓÔÔÕÕÖÖ×ÏÑØØÙt—þôýè‘ð„€º´þü×ØØ€Ù ÚÚÛÛÜÜÝÛ& è—þôýè‘;µþþøêçäáÞÛØÕÒÏÌÊÇÄÁ¾»¸µ²¯¬©¦£ š—•’Œ‰†ƒ€}zwtqnkheb_\YV\ùèÜÜ€Ý ÞÞßßààá—q˜þôýè‘í€=›¶G;:<=@EJMPRTVXYYZ[[\\]`eimqtvxyz{|}}~€„‰’•˜šœžŸG¨ùÞàáá€âããääã) æ˜þóýè‘쀧‚þúðêéåÛÖÕÑÈÃþµ°°¬£žž ‚¡€¢£‚¤¥¦ §‘:þèäå倿ççèèžc™þóýè‘õ”€¢–þ÷ïêêåÜØÙÓÊÇÇÁ¹¶·°¨¥§¨€©ª 3çôèééêê€ëììH.ý˜þóýè‘ø—€©þýõîëìäÝÛܽÍýþþêííîî€ïð𗾘þóýè‘L/€;™þþèÏÎÍÍÌËÊÊÉÈÇÇÆÅÄÃÃÂÁÀ¿¿¾½¼»»º¹¸··¶µ´³³²±°¯¯®­¬««ª©¨§§¦¥ðÔ„}~~y Q˜þäx‘€„¤]$ ˆ ƒ   !€"‹ù[†M+Þ—þÝMI‘€’þüêÚÐÀ¯¤˜…yq_QI;+!!!€"#$$%&''(()**++,,€./00 û¡†MHs—þÝMI‘€’þúèÚÒij©ŸŒ€xgYPB2)&'€(€*+,,-..//0ÃêO†M ó–þÝMI‘€ˆ£þöäÙÑÀ²«ŸŽ„}l`YK<3-WÉþþƒ†MA––þÝMI‘ €=‚þþÛº»¼½½¾¿ÀÁÂÃÄÅÆÇÇÈÉÊËÌÍÎÏÏÐÑÒÓÔÕÖרÙÚÚÛÜÝÞßàáâãääåæçèèêøþüe‡M)ý•þÝMI‘ €k¤P€€  € ‚ ‡ éþ¾ˆM7¹•þÝMI‘ €tþîÛн« |q^MD/ €$!!""##$$%&''(()**++,-..oþýj‰M K•þÝMI‘€oþûç×͹ªŸ‹}s_QG3&€" #$$%%&'(()€* +,,-.âþÅŠM,Ú”þÝMI‘jžþùå×͹¬¢ŽwdWM;.*++,,;¬þþpŠMIn”þÝMI‘ fþüÈ £¦ª­±´¸»¾ÂÅÉÌÏÓÖÙÝàäçêîñõøûþøåØÎ»Ø€þËM2‡M" ñ“þÝMI‘ €X£N% € † "&)-036:=ADH•þþv€MG9†MC‘“þÝMI‘ €`€þýëÜл°ŸŒ‚m_Q<1..-,+€*))**+)('$ €ÏþÓM#z‡M$ü’þÝMI‘€Zþ(ýíÜѼ® ‹€lZN8)%$$#""! Kþþ|€MH.üc†M9³’þÝMI‘€T›þóÞÒ¾­¡Š|kVI4" ?ÓþÙM%«þ¯‡M E’þÞMI‘€Oþ÷¶‚†‹–š ¥ª°µ»ÀÅËÐÕÛàåëðõûþößÓ¿«ŸˆƒÐ€þƒ€MI+üþóT†M.Õ‘þÞMI‘€>žD  ˆ !',17þþŠ€MI(û€þá‡M# íþÞMI‘€<ŒþøàѺ§–~pXI4  !€" #$$%%&' µþäN€M(£‚þ|†MD‹þÞMI‘7˜þõÝи¨•€rZL7&!""##$%%&"]ýþ‘€MI&û‚þȇM ûþÞMI‘4þø²sv~…•œ£«²ºÁÉÐØßçïöýþòÜÏ·©•‚t]xÜþþéNLMM* ƒþýd†M;®þÞMI‘ ,¤9 Š$%-4;CKRZaipx‡–¥¬´»ÃØþþ”IKMJ#ú„þ°‡M@þÞMI‘ -€þ(îÖ¨—|kRD-   ‚ ”þíLHKL+œ…þóU†M0ÐŽþÞMI‘ &ŠþýêÔÀ¨–|lRB)€!!""#&)÷þ™EGII ù†þ–†MJbŽþÞMI‘!•þ!ýçÔ¿©—oVG. !!""#ªþñKDFH+™‡þâ‡M$êþÞMI‘þïšNPZcmw€Š”¦°ºÄÍ×àêôü‰þýçÕÀ«š‚sZL@†ðþþž@BEEøˆþ}†MF…þÞMI‘¢@  Š! &/9CLV`is|†™£¬¶ÀÉÓÝæùþôJ?AC)•‰þʇMùŒþÞMI‘€þ ÷ÛÆª–zfM>$   ‡ ëþ¤;>@A÷‰þýe†M<¨ŒþÞMI‘Šþ öÛÇ«˜|iN; €€!$$ lþ÷J:<>(‘‹þ±‡M:ŒþÞMI‘ ”þ öÛÉ­›€mS@&!)ßþª79;=õ‹þôV†M1Ë‹þÞMI‘þäƒ-,8DP\ht€˜¤°½ÉÕáíùˆþøÝ˰Ÿ„rXF,;¢ûþúK58:'Žþ—†MK]‹þÞMI‘€¡B"  Š+7CP\ht€Œ˜¤°¼ÈÔàíùþ°2469ôþã‡M&çŠþÞMI‘€øþþúÝÆ§s]H+    Š 4ÃþüN135%Šþ~†MG€ŠþÞMI‘€óˆþ)ûßȪ“v]D(¡üþþ¶-/25 óþˇMø‰þÞMI‘€ì‘þ üáË®˜|eK2€h€þýQ,.0"‰þýf†M>¢‰þßMI‘!€æàx,:HVcqš§µÃÑßìú…þ ýçдŸ‚mQ<"Ø€þ½)+-0 ò‘þ²‡M5‰þßMI‘#€ŽD#  ‹ %3@N\iw…“ ®¼É×åóðþT'),k’þôV†M2ňþßMI‘%€ÚþþúÛ£‡pV=    ‹ ŠþþÄ$&(+ »“þ—†MLOˆþßMI’€Óˆþ ðÓµœ}eG-€ RØ€þV#%'%í“þÚ‡M*ЇþßMI’Ïþþëãó‹þýãˬ”w]C&€N£™‹Êþ·!$&ó”þi†MIP‡þßMI’ÌÏ^%5EUeu…•¥µÅÕåõ„þøÚ¦²ü„þ ï6 "$”þª‡M'ƆþßMI’€ˆM2 ‹&6FWfv‡–¦¶ÆÖóþ ó[!#Bú“þç‡MI9ý…þßMI’€Ä€þèʧŠoS6   ‰ ™þå_ "€AÏ“þd‡M,œ…þßMI’€¿‡þ&ýäȦ‰kJ.  —œ!#(_Ãþ~‡ML á„þßMI’€·þ!ýáÆ¦ˆlK0|ó? "$€ŒþýsˆM;8õƒþßMI’€™—þüßĦ‡lgÞþþm3!#%'++°‹þÚ. ŠM$>é‚þßMI’€[¤þ÷Ü˰Ÿ†u]M6'&(/,Í‹þÅ+JŠML“ï€þßMI’€ ë­þýêׯ÷Œþ•MK"€VþþàMI’ €fÁþ›N‘M > 5þþàMI’•Áþ ýëÜɹ©—ˆtfRŠMdþþàMI’&jëÊþöáÕ¿³ž’|o[NMMVùþþàMI“FkФÄßûÍþýëÜø€þàMI”‡ 8Wq‘«ÊçýËþàMI• ˆ$>^x—³ÐïÃþàMI–‚ˆ *Ed€»ÖõºþàMIšƒ‰0Mi‰¢ÂÝú±þàMI£ƒˆ 6UoªÈåý¨þàMI¬‚ˆ"<\w•±Îí þØMI´€  ˆ )Cb~›¹Ôô—þ·MB½  ˆ/Kh†¡ÁÛùŽþzM9Å "$&(++&" ˆ 5SnލÇãüƒþæzMM"Î"+.02468;=83,'ˆ  ;[lh>GMHÖ "-3>@BDGIKMKA:/(„IMMà *2BELT^kSŠ# !',29>?@IUbmx„™¤®¸ÁÌ×åîôùûÓ} „UB9HXep{†‘›¥°¹ÁÈÏÜéíìíîïñôøûˆüÉ?ƒh_sò‚üýýüùôðìéæäãââãåçêîò÷û†üè\ƒ}?#÷„üûöðëæâÞÜÙ€ØÙÚÝàäèíóù…üókƒœ0K„üúóíçáÜØÔÑÏÎÍÍÎÐÓÖÚßäçäæáÛÓÌÅ´éúvƒº:H€ü#úôëßͼ¬l‰Žˆ‚|wrnh^HÐÕÛ´bQQRSQZ~Ýûvƒ)ÒHCîäÚÑÊŽ¹µ±®«ž¤gMNNON&ˆ·ÆÌÒØÞ¹\]S_ôüüúvƒ$×V@üüùöïàϾ°¢–‹k‚­°oWXZG2´¸½ÂÈÏÖÔig7ë€üúvƒ$Î[8ðäÜÔÉÀ¹³­§¢—”Ÿ›dcdXª®³¹ÀÇκqO“ú€üúvƒà^4€üñàÏ¿°£—Œ‚zrkY:{nopƒ¥ª°·¾Ç™{9äô€üúvƒ)æd0ïä×ÍŽ³ª¢›”މ…}f…yz{O;›¡§¯¶¶‡ZŠäîøüüúvƒ)Ûj+õëàÏÁ²¦›‡~vqkgeG9‚…†ƒ†˜Ÿ¦¯ž7ÐÞéóüüúvƒ)Ún$óìÞÒÆ½³¨Ÿ—ˆ‚|xtlZ‘’GK—Ÿ¥›iyÎÙãîùüúvƒ)ârîÔǸ¬ž–‹…|xqnihee8A–œŒƒ—¡£:¹ÉÓÞéôüùvƒ)ÈyöíáÕȽ²¦œ“Š‚|uqmjZL…§¨©9X‡“®yj¹ÄÏÚåðûùvƒ)´ßÁ­¢™‰{vpnjhgeff&J¯³´‰ €£¹9¤´¿ÊÖáíøùvƒ)©‚õðäØÈ»®£˜Ž†}wqmjhhJ>™¾¿¿&mÁ‰\¥°»ÇÒÞêöùv„(„×°¤˜…€ytrnjihfeghh]ÈÊË}yÍ<‘¡¬¸ÄÏÛçóøv„(ŠïëßÑŸ¬¡•Œƒ{uplihik:6ºÕÖÏКO’ž©µÁÍÙåñøv„( Ϥ–…zuqnnlkigffhid|àáâá@~›§³¿Ë×äð÷v„(ŒéèÜÐÄ·«Ÿ”Šztpmkklpx-<ÚãäÒ~Žš¦²¾ÊÖãïór„ÃvdSE8-&%$#"!  L€S Y™¥±½ÊÖâîÃ(„äâÕɽ²¦›Œ{k]PE;3-)'*.B€L ;!™¥±½ÊÖâîÁ%„ »‹ubQB5+#„ HL t𦲾Ê×ãïÂ%„ÝÎÀ¹±¨ •Š~pcVJ@83/./$0\€L 'U­¹ÄÐÜèóÄ%„ º¹œƒnYE7)€#PL_nNLLE¬¼ÇÓßêöÄ%„µŽ„ƒ‚}zvqeZQIC=94SN@1pxa€L wÀËÖâíùÄ%„ ¿Ô¸œlUC2#€&YHgx€}MLL=+ÄÏÚæñûÅ%„k_cdgi€kgbZQJEABgG:6{ˆ_€L¡ÔßêõüÅ%„(ÁøÛ¼ …mVB0!!d<r„Š˜…MLL3KÚäïùüÅ%„(“`FBIOUZ^bdb]UNIK}D0<ŠŽ“™ ¥ZLLKÈéóüüÅ%„¹ûóݽž‚iQ<)rs0€”˜œ¢©°†€L)tïùüüÅ%„#‰X4+-5>EMTZ`ZRJ[œC'<œž¢¦«²¸¸RLLFë€üÅ%„­àÛßÒºŸgN7$ALŽ‚#b¦¨¬°µ»ÁÈ|€L ”€üÅ%„mH- -8AKSXp±w-/§³¶º¾ÄÊЯ€LCïüüÅ%„¡€üú὜|aE,U? |ÀÄÈÍÓµžL'[øüÅ%„l‚üûôìåßÙÎÏÀ®rr¾ÊÍÒ׳2BLK=¼Å%„ ³‚ü ûõîèãÞÙÖÓÑ€ÏÐÒÔ×ÛàÙ¾²¦–†udS<ŸÅ%„ @\y–³ÏäëìçãàÝÛÚÙÙÚÜßâåêïôúƒüõüÅ%…(B\uލÁÔâåæéìïôø‡üÆ%‚ -He‚ ¿Ýø†ü¾$•  8TqªÇáÍqœ #-362-$65¥ "‚£›  &,28>BELT^kSŠ# !',29>?@IVbny„™¤®¸ÁÌ×åîôùûÓ} „UB9HXep{†‘›¥°ºÂÊÓáïôóôôõöøú‰üÉ?ƒh_sò‚üýýüûøõóñðîîííîïðòô÷ù‡üè\ƒ}?#÷ƒüýüùõòðíëéèèççèéêìîñô÷û…üókƒœ0K„ü ûøôðíêçåãâ€áâãäæèëîïéèáÛÓÌÅ´éúvƒº:H€ü#úôëàÐÁ²¤—t•˜’‹…xtmbOãæé½cRQRSQZ~Ýûvƒ)ÒHCîäÚÑÊÆÁ¿½¼»º®·œnMNNON'šÏÝàäçêÀ\]S_ôüüúvƒ$×V@üüùöðäÕǹ­¡–v”ÉÎyWXZG:ÒÔ×ÛÞâçàig7ë€üúvƒ$Î[8ðäÜÕÌžº·´±­¬¨ÀºecdX$ÌÏÒÕÙÝâÆqP–û€üúvƒà^4€üóå×ɽ±¦›‘ˆweI‰nop¢ÉÌÐÔØÝ¡{:ìø€üúvƒ)æd0ïäØÑÌÇÀ¹´¯«§£ žœ†¨yz{OKÃÇËÏÔ̈Z’îôúüüúvƒ)Ûj+õëâÔʽ³©Ÿ—‡zuqQN…†„®ÁÆÊϪ:áëñ÷üüúvƒ)Ún$óíâÚÒÌļ¶±¬¦ œš—ƒ¡‘’Gd¼ÁÅÄ›j‡âèîôúüúvƒ)ârîÕÌ¿¶«¤›–‰‚€zxsrCa›œŒ³¼Á±£>ÒÞåëòøüùvƒ)Èyöðèà×ÐÈ¿¸²ª¥ š–“~£§¨©9{¸º¯y}ÕÛâèïöüùvƒ)´ßijª¤œ˜Œ‡€{ywstq/q±³´‰/³¸¹>ÅÒÙßæíôúùvƒ)©‚÷õîçÛÒÉÀ¸°ª£ž˜•‘ow¯¾¿¿&“ÉtÉÐÖÝäëòùùv„(„Ù´«¡—‘‡‚~zyxututsˆÈÊË}}ÍBºÇÍÔÛâéð÷ùv„(ŠòóëãÛÒʹ²ª¥Ÿš–“‘_vÆÕÖÏКj¾ÅÌÓÚáèïöøv„( Ò©–І}{{zywutuvvp¥àáâáG®¼ÃÊÒÙàçîõøv„(ŒíñêãÛÔËû´¬§¢™—•”•˜O~ÞãäÒ°»ÂÊÑØßæîõõr„ Æ’}l\NA4--‚,+,(#l€S {»ÂÉÑØßæíôÅ(„çêâÛÕÎÇÀ¶§˜Š}rg^UNIFD<}€L <-»ÂÉÑØßæíôÃ%„½{jZK=2)# !"#$$%&' JpL ™ÃÊÑØßæîõÃ%„àÕÌÉž¸±©‘…xlbYQKGCRH€L 1IÄËÒÙàçîõÃ%„(¸¢ŽygYJ;,!FsL$SLLK³ÌÓÚáèïöÄ%„˰¨¨§§¦¤¢”Š~rf\RH?DƒU>M|€L 'hÎÕÜãêñøÄ%„»½¢ŒxcO?/€BzL#–¤PLLEÊ×ÝäëòùÄ%„µ‰ŒŽ’”•–”‰~tjaXPQW@Mª¯u€L ‹ÙàæíôûÄ%„¿×½¤‹v_L9'€=H"›¯³¤NLL=1ÜâéïöüÅ%„kbhkqv{ƒ‚wme]W]œQ:N°´¸¼j€L±åëòøüÅ%„(Áøß©w_K6%0ˆ<  ¶¹½Â MLL4RèîõûüÅ%„(“`GDMU]eksyxtld]aªN1P¹¼¿ÂÆÈ^LLKÓñøüüÅ%„¹ûóàĦ‹rYC-”“0§¿ÁÄÈËЖ€L)xõûüüÅ%„#‰X4,.8BKU_hpkbXoÃL'KÄÅÇÊÍÑÕÏSLLFï€üÅ%„­àÛßÕ¿¥‰nU<&JX«œ$wÊËÍÐÓÖÚÞƒ€L ”€üÅ%„mH-"0BELT^kSŠ# !',29>?@IVcpz…𤮏ÂÌØæïõúüÔ} „UB9HXep{†‘›¦±»ÅÏÙèøþýÊ?ƒh_só‚ýˆþýé\ƒ}?#øƒýˆþýôkƒœ0L„ýˆþ†ý úðëâÜÔÍÆµéûvƒº:H€ýûõìâÕÈ»®¡~¦§¡™’‹‚|tgX€ý ÉeRQRSQ[ÝûvƒÒHDïåÚÑËÇÆÇÉÊÍÏÆÓ²xMNNON)´ðý üÊ\]S`õýýûvƒ×V@ýýúöñéÞÒǼ±¦†¯ðú†WXZGG„ýñjg8ì€ýûvƒÎ[9ñåÝÖÐ‚Í ÎÎÍÎÍðæfcdX,„ý×qPšýûvƒà^4€ýöíãÙÏÅ»±§“‰t^nopσý«{=÷ýûvƒæd0ðäÙÖÖÕÒÐÎÌËÊ€ÉÇ´Ùzz{Pc‚ýì‰ZŸ‚ýûvƒÛj+öìåÜÖÌžµ¯§ž˜ˆ‚_lœ…†„èýº?ù‚ýúvƒÚn$ôîèäâáÞÙ×ÕÔÐÍËÊÉÁ¾Ñ‘’H‰€ýñj›ƒýúvƒ!âr ï×ÓÊż¹±®§¤œ™’‡…S¢œŒ'øýýÈ£Döƒýúvƒ Èy÷ôòñíëéãáÞÙÖÔÏÌÊŵÅͧ¨©:®ýó²y™„ýúvƒ ´àɼ¶³­¬¦£ ›™“‘މ‡‚=¨³³´ŠCýÕºFõ„ýúvƒ©‚øþþý÷ôïêçâßÙ×ÑÏÊÇäÈϾ¿¿'ËÆŠ–…ýúv„„Û»¶®§£ š—˜•‹ˆ‰†‚-ÅÉÊË~‚ÍIö…ýúv„ŠöþýûúøõòíéäáÛØÓÐÌÇÄ”ÓÙÕÖÏЛ“†ýùv„ Õ±¨£žš–’ŽŒŽŽ‹‰ˆ‰Š‰0áàáâáPó†ýùv„Œòþüû÷ôñëçãÞÚ×ÒÎËÇÞäãäÓ(÷†ý÷r„Êš‡xi[M?889:;;<<==>=8A›€S­†ýÇ(„í÷õ€ö÷÷òæÙÌ¿³§›„zockÑMLLÌý÷ã몛„whkm2—«´¿Å|fóüýöãDÂêÛÍ¿²¥˜Š€yb|}iO§²£`¶êùýöØIºâ˵£’„{upmQr5›¦š`ÒâòüõÝM´×®žŽƒyrlif4— mY w™ÊÚëúõ¹S¬Î¹ªœ…{smhfHv°¯3†´[²ÃÔåöõ©W±ëÖ½§”‚rg`[ZMA¼Âh‡~¬½Ïàòõ‚[ŸÀ±¤šŠ„~zwvx,›ÒÄÃY–§¹ËÝïô‚_—·¥˜Œyvtsv{~]Hãä©a’¤¶ÈÚìó‚!ަŒubQG@92+%&-zbD¢´ÇÙë·‚‰£•‰|o^M?3*#"GMM"Ž¢´ÇÙëš‚”Ñ´œ†saRF;3.--+KKM5b¤¶ÈÚíš‚³—jWE7,"F=@ML.¨¹ËÝ{˜|hTE7.-**'!8M.iMM*‹¾Ïáòœ‚x“xcZXTNA81++S>Px^MHGÄÕæ÷œ‚s–ŽŠ}l]QF?97JJ1z„MM%¹Ûìúœ‚~Ǫ—ƒr_K:+[2]ˆ‘œ^MAlãóüœ‚j»œ{]B0$%-zD/–ž¨ŒMM+åùýœ‚c‡o\I:3)fÃÉÑ—lMM;fõœ‚ÜýýüøîäÜÖÑÎÌÇÎÒØß¡Žp_?nœ‚ &C_|–­ÃÙàÝÜÜÞâçíõû€ýûúœ…‚*E^y—¶×õƒý™Ž /EXnŠ•L• #%)€’ † !'*+9HXiy‰– «¶À˽F‚R3‚• «¶ÁËÓÚäðòòóõøûüƒý¼}1¦ýüûöòîëêééêìïóøü‚ýæ¡"Ú€ýüùóî€áÙÒÌǾÜëâµ²«¤ž¹öÏ.ÐêàÔĵ¦™†’lMNN<Îâß¾hZVÐøöÕ:ÌêßÓ󥙃¿z[]7ÑÕÚàæ‹PÅýýöÙ>ÌýøèØÉ»®¢˜Š}km3¸ÍÒØÙ}h÷üýöãDÂêÞÖÍﲦ•€ˆ}ieÅÊѱaÁòúýöØIºãÐÀ±¢–ŽŠ†„h‘:ºÃÈœgäí÷üõÝM´Ùʺ­ •Œ„}xrMž nz¼µw¯ßéóûõ¹S­Ò·®¤•Š…ƒd°¯@¶·fÑÛåïùõ©W²óäÑÀ±¢•‹…|lo¾Âh›žÍØâì÷õ‚[ Ç½´®§£Ÿš–“‘L·ÒÄÄgÀÊÕàêõõ‚_™¿±§ž•Ї„ƒ…‡ejã䩇¾ÉÓÞéóô‚!­—ƒrc\XTPLIHJCŠc_½ÈÒÝè󸂋ª¡š“Œ}naUKC<:5iX=žNM+¥Øâì÷œ‚x–lfhhfYOF>B|>z¯oMHQÛåïùœ‚s˜”•Œ}odZQJEoU=°¶¢MM&Ëéóûœ‚~ȯŸ€nYE3#"z2€¸½ÄeMAtî÷üœ‚j»žbH5)$,8 O9½ÁÅËŸMM,íûýœ‚c‡o^M?CLNCeœ$}ÆÉÎÓÕXM7üýœ‚_f[dneXP–«>tÏÒÖÛáML4öýœ‚eýýøÙ·˜z]ŽD6*tÛßã¡pMM;fõœ‚ÜýýüúôïêæãáàÚáäçì¥p_?nœ‚ &C_|—±Êâì€êëíðôùü€ýûúœ…‚,Hb}›¹Øõƒý™Ž /EXnŠ•L• #%)€’ † !'*+9IYiy‰–¡¬¶À̽F‚ R3‚–¡¬·ÁÌÖàíûŠþ¼}1¦•þæ¡"ÛƒþýôùüôíåÞÒòþﺳ¬¥žºöÏ.ÑëàÔȼ±¦–¦uMNN=”ëþôÊiZVÐùöÕ:ÍëàÕÊ¿´©”¹è‰[]?‚þPÇþþöÙ>ÍþúðçÝÓÉ¿µ¦›km4é€þõ~m€þöãDÂëäãáßÝØÏÆ¾¬˜}i…€þÄaÒ€þöØI»åÙÎŹ¯ª§¥¥‹¾BúþøŸrþöÝMµÝÔËø±§ –Žƒr¨ nªþÔxÏþö¹S­ØÏËÇÃÀ»¸µ°®Œ¶°¯Sú¼w‚þö©W³ýøîäÛÐÇÀº³®š²ÁÂh·Ì‚þö‚[£ÑÎËËÈÈÆÃ¿»¸´{ßÒÄÄ}ƒþõ‚_œÉ½·°ª§¢œ–“”p›ã䩽ƒþõ‚!”¸§˜Š}zz{|}}ysz¢c…ƒþ¹‚Ž´²³´´«ž’‡|qg\g¡MM0ù‚þœ‚šå×˾³§’…xk^T¡cKM5¨‚þœ‚„°ŸlZJ:( .²=fMLE‚þœ‚}£‚qeVNTX_^Q±hQêPM+Êþœ‚y›ˆyx€†‰|qfYc·>·þˆMHaþœ‚s›¥¡•Š€ukbZ¤eNýþÔMM'æ€þœ‚ɶ¬ ”ƒlU>),§2³þþýoMA€€þœ‚k¼ †kQ=0+7G×^Fý€þ»MM.÷þþœ‚dˆoaREMZ^S~Å$¡þø[M7 þþœ‚`‚g]iwpd\³ÐG‚þ—ML4÷þœ‚fþþùܾ¡…g¢L<-‡€þ±uMM;fö‚݈þöý€þ«’p_?n‚ &C`|™¶ÓðŠþüû…‚.Lgƒ ½Úöƒþ™Ž /EYnŠ–M• #%)€is32ø€ (8HXip}XÄÑÛÝÝâãêõüýýh¸~ñä̱¢ˆªÖ €È{ׄïЫŒŠgK«À¨›ü{ނܹ›…vhl¦Õù{ˀȥ‰vjR—jš‡Ïðz€Í©Œwkeq°šÄçzi¤eXQQ<±lš¾ãjH¯kŠhI3'&J<޾ãMB—iF/$7ELcÄèM@Œq]J86Cq^@ËñN?²|Q2'MT“‹J˜ùN8wXOGh<…°À]UûN%ôòÊ£™}…κrV‚N )E\rФÅìüýüM… $A[€ (8HXip}XÄÑÜáæíîòùüýýh¸~ñäÒ¼°‘‡ºã£€È{ׄðÕ·›ŸoMËÙ²ü{Þ‚ßÅ®œ€‡Ê…áú{ˀγžjŸv¸˜âõz×½§–‹‚Œ°•½Ûðzj­xoigWµ|ÃØîkIºkž…iRBDV=²ØîMBŸvT=2)TZMtÜñM@}o_LMS£kCÝöN?´„[;.cj¿¥JŸûN8wZUQzE¢ÐÙ_UûN%ôòϬ§‰’áÅsV‚N )E_x’­ÌîüýüM… $A[€ (8IYip}XÅÒÝçòýƒþ\h¸òæÚËÄŸ”Ñ÷¨€È{ׄñÞɱ¿{OøþÀ þ{Þ‚ãÖɾ´£¯üóþ{ËÖÈ»¯¢Œ«‡â¯þþ{‚åÚÏĺ­³°¢ñþþzlº¦”‹‡~º”€þDkKɼ®˜€hng@çþþNC©‰iRF;~xMŽþþN@—މiojì}GøþN@·iG9‚ŠþÉJ©þN8x€^(•RËþücVüN%õô׺º™¤þÖuV‚N )Fc€¹ÖóþþýM… $A[ich8 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùùúúúûûúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùúúúûûúúùùVøø÷÷+ööõ+úûÿÿÿÿÿÿÿÿùûûúúùVVø÷÷÷+ööõõõõõõõ+üÿÿÿÿÿÿÿùþúõõõõ$õ$õ$õõ$õõõõûÿÿÿÿÿÿüýõõõ$õõ*õ*$õ*õ$õ$õõõÿÿÿÿÿÿ¬üõõõ$õ$*õ*$*$**$*$*õõõõõöö++÷÷õúûÿÿÿÿÿÿüüõõö*÷÷VUúzUVVzùú€úû*$*Oûûûûûûúöúûÿÿÿÿÿÿüüõöö+++÷÷÷O÷NøUUü«ûûûýUN*$*õõ÷ûûõúûÿÿÿÿÿÿûüõõö*+÷UUVùz*NúûûûüüN**$**$*¬õúûÿÿÿÿÿÿûüõööö++O÷OUOUOUUNNûýN*N*N$*+úûVõúûÿÿÿÿÿÿû¬õöö*÷OøUVzzú«ùúúýUNN*N$*Uú¬õõúÿÿÿÿÿÿ¬õõö++*OUOUUUyUyUyyùúúû«NNN**NùV$õúûÿÿÿÿÿÿ¬õõ*++÷÷UUVyùz€ú€û¥ùùùùþTNNN*Uùü*$õõúûÿÿÿÿÿÿúýõõöö*O*OOUOUyUyyyyVVùü¤NNNNVz*$õõúûÿÿÿÿÿÿúýõö+÷OøUUVyzz€zú€úü¤VVøùýxNNøøü***$õõúûÿÿÿÿÿÿúýõõõ***ONUOUUyUyyyy£Uøøø¬zTNøú€**$õõõúûÿÿÿÿÿÿúýö+OøVUVV€yz€z€€ú€ú¬¤÷ø÷ù¬xO÷üNN***$õõúûÿÿÿÿÿÿùþõõ*$*NNNUUyTyyyyy¤£O÷÷÷ýy+ù€NN$*$õõúûÿÿÿÿÿÿùþö÷UøzVùù€zzúz€€ú€ú€ýy+++ùú+üNN*N**$õõúûÿÿÿÿÿÿùþõõ$***NNNTUxyyyyyyy¤£+ö+++V€NNN*$*$õõúûÿÿÿÿÿÿVþ+øøVzùùzúzù€ù€ú€ú€ú€ÐxõöõöüxNNNN**$õõúûÿÿÿÿÿÿVôõõ$***NNTNxyxyyyyyyy¥£ööõ+ýrTNN**$$õõõúûÿÿÿÿÿÿýô+Vù€¥ûü¬ý¬¬¬¬¬«Ð¬¬ý«Ð¬¤ûûûý€NNNN***$õ+¬ûÿÿÿÿÿÿýÿõõ***NNNNxyy££¤¤¤ªÎ«««£ûûüüÐNNN**$$õ÷ýûÿÿÿÿÿÿýÿ÷zúúûû¬¬¬ýýý¬ýýýýÐý¬Ð¤¤üûü‡þyNNN***õõ+ýûÿÿÿÿÿÿýÿõ+*ONONTNyxyy£¤¤¤¤«¥«¢ûûûüû¬«N*N*$$õõ+ýÿÿÿÿÿÿ¬ÿ÷øùùü¬¬ýýþþýýþóýýó¥£üýûûüûôN*N**õ$õ+ýûÿÿÿÿÿÿ¬ÿ+øUøUUUyUyyy¤¤¤¤««Ïœûü¥üûüý€N*$*$õ+ýûÿÿÿÿÿÿüÿ÷Oøùz¥«¬ýþþýþýþýýý«üýyxûüûüþN*$*$õõ+ýûÿÿÿÿÿÿ¬ÿ÷ùùùzVyVyyyy€y¤¤¥¥ªü¥xxzüûüýz**$õõ+ýûÿÿÿÿÿÿüô÷ö÷Uù€üüýýþþþþþýþ«yüýxxNyüûüü¬$**õõ+¬ûÿÿÿÿÿÿüÿVúú€ú€z€y€€€¤€¥¤xû¬¥xNNNûûüþU$õ÷ýûÿÿÿÿÿÿûÿ÷öOøz€û¬ýýþþþþô¬y¬ýxTrTNUüûû¬û*$õ+ýûÿÿÿÿÿÿûÿVüüûû€€z€z¤¤xû¬«NNNNNNüûüþ*õ÷ýûÿÿÿÿÿÿûÿ÷õö÷Uzúû«¬þþþþýyy¬ýyNTNNNNUüûü¬úõ+ýûÿÿÿÿÿÿÿùû¬¬¬¬üü¥¥€€¥€NüýûNNNN*N**üûüüýõ+ýûÿÿÿÿÿÿÿøöööö÷Uù€ûüýýû¥UUýþ€N*NN**$*ùûûüýVõ+¬ûÿÿÿÿÿÿÿùûýþýý¬üü¥û€€Nù¬ýþ«N*N**$**Oüûüüýõ÷ýûÿÿÿÿÿÿÿVö÷Vùü¬þ«þþþýþþz**$*õOøüûüûýû+ýûÿÿÿÿÿÿúÿúõõ$õ$*$*OOUùzú*$*$*O¬üûüûüûþü÷÷ýûÿÿÿÿÿÿÿÿôøõõõ*$õ**$**$*$*$õõ÷÷øVùúû¬ø+ýûÿÿÿÿÿÿÿûÿÿýüûúVøööõõõõõ*$õ$õ$õõõõõõõõ+ýûÿÿÿÿÿÿÿÿÿÿüýþôÿôôþ¬üûùVU+ö*õõ$õõõ+ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû¬þôÿôêþþ¬ûùø÷öõ÷ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúûû¬ýýýþþþý¬ûúùø+ö+úüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùúûû¬¬ýýþ¬ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿÿÿÿÿicl8ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùùúúúúúùùVVø÷÷+÷ûÿÿÿÿÿÿûùVVø÷÷++öõõõõõ÷ûÿÿÿÿ¬øõõ*$õ$*õ$õõüÿÿÿÿýöõ$*$*$*N+O*õ*÷øøøV÷õüÿÿÿÿ¬+õöö÷÷UVzVüûüüz*$*+ûû+õüÿÿÿÿ¬+õö++UøVzUTúû¬****$ùû+õüÿÿÿÿü+õõö*OUUUz€ú¬ONN**ú¬ÿÿÿÿü+õö*+ONUUyzyùú€NN*OOõõüÿÿÿÿü÷ööOUVUzVz€€yVù¬NNNV*õõ¬ÿÿÿÿûøö+OUøyzù€€ú¥VVúNUúU$õõõüÿÿÿÿûø++÷OUUyyyz¤yøø«N÷úN**$õüÿÿÿÿû÷õ**NUUyy€y€¤€÷+zùyN*$õõüÿÿÿÿûø+O÷UsUUUyyUyªO+++€NN**$õ¬ÿÿÿÿV÷UUVyùzz€ùùù¤õöøyNN**$õ¬ÿÿÿÿ¬VOVzú€‡¤¥¤«È«¥Îùùû¥NNN*$õ÷üÿÿÿÿþùøUVyy€¤¤¤««««Ï€ûü¬TN*$õõVüÿÿÿÿýVöOUVyz€¤¤¥«¥«¤¥üûü€NN*$õVüÿÿÿÿýù÷Uù€€¥«ü¬ýóýФü«ûüüN**õõVüÿÿÿÿýúVz€û«¬«««Ï¬£¥üxûü¬U$*õV¬ÿÿÿÿýúVù¤€¤¥¥«¥«y¬r€üü¥*$õõVüÿÿÿÿ¬úVVVz€ú€¥¥ü«¤ûüxNyûûý*$õVüÿÿÿÿ¬ù÷UUzù€¥ü«ýýz¬yxNNû¬ú$õVüÿÿÿÿ¬ú÷Vùü¬ýý¬«y«¬NNNNUûü¬õV¬ÿÿÿÿüùúûûü«û«ü¤UýzNN*N*ûü¬VVüÿÿÿÿüûùû¥VUüþ€*N*$*Vüû¬õø¬ÿÿÿÿüöOV€z«¬¬þ€*$*Vúüû¬V¬ÿÿÿÿþöõõõ$*$*$*$*$øùùúûüúVüÿÿÿÿÿüÿýüûúVø*öõ$õ$õõ$V¬ÿÿÿÿÿÿÿÿÿÿúûüýôþý«úV÷öõVüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúûü¬ý¬üûùVûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùúúÿÿÿÿics8ÿÿÿÿÿÿÿÿÿÿVVVVÿÿÿú++ööõõõõúÿÿúõõ+OUVzU$øú+ùÿÿùõö÷UUúûN*÷Vùÿÿùö+Uyz€ùyNù*ùÿÿú+OUyz€V€OU*ùÿÿù*OUyzzøVN*$ùÿÿUV€€€€¤÷€N*õúÿÿû÷Uz¤¥«ÏûüO*$ÿÿûV€¥«¬¬¤¥ü€*õÿÿûùz€¥«¥¥xü*ÿÿûøù«¬¤€NU¥Vÿÿûúûû¥€üUN*ûÿÿüõ+øUzV*OúûúÿÿÿúúúúVø+õÿÿÿÿÿÿÿÿÿÿÿùúúúÿÿicm8ÈÿÿÿÿÿÿÿøVøøøøøÿÿÿúõö*+*+õ++öùÿÿùõ+OUzüN*Oùùÿÿúö÷UUyzù€Nù*ùÿÿù+UUzz€VùUO*õùÿÿúOUy€¤€¤÷zN*õùÿÿûøz€¥««¥«üU*$ÿÿûøù€¥««¥yû¥*õÿÿûø€¥¬¤Nyü÷ÿÿûV€ûû«z**ûõÿÿúùV÷÷N+*$ö÷øøÿÿÿÿÿÿÿÿÿÿùùùùVúÿich4ˆïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïÝÝÝííÞÏïïïïïïïïïýÝÝíííÝÜÜÌÌ ÞïïïïÞÞÝÝÝÌÌÌÀÎïïïýý Ïïïþð ÀÀ ßïïþà ÀÌ À ÌÌÌ ßïïþàÌÌÝ×Í×Ýçì ÍííîÜ Ïïïþà ÌÌÌÌÌÌÞíîìÌ ÎÞà ßïïþà ÌÍ}|ÍíîìÌÌÀÞ ßïïýàÀÌÌÌ|ÌÌÇÞÞìÌÌÀÍí ßïïþàÌÌÍ}]ÞÝÝì|ÌÌÝà ÏïïýàÀÌÌÌ|ÌÇÇÍÝîpÌÌ}Ð ßïïþàÀÌÌÍÍ]ÝÞ]ÝÞ||ÌÞÌ ßïïýðÌÌ|ÇÌ|}|ÝÞÜÌÌÝ ßïïýðÌÌÌÜ×ÝÝ]çÜÍçÇÍìÀÀ ÏïïýðÌÌÌ|Í||×ÜÜçÌÍ|ÀÀ ßïïýìÌÌÇÝÅÝ]ÕÞ\ÌÞ|ÎÌÌÀÀ ßïïýðÌÌÌÇÌ|}}|ÌÎÜÝÌÌÀ ßïïýüÌÇÝ}ÝÝ]ÝÝçÌÍÜì|ÌÀÀ Ïïïýà ÌÌÌÇÇÇÇ×WÌ Ì|ÌÌÀÀ ßïïüüÌÜÜ]Ý]Ý]Ý^ÌÎÇÌÌÌ ßïïýð ÌÌ|ÇÌ||ÜÕ| ÎÇ ÌÀÍßïïþüÍ~Þîåî_^^ž]íïÇÇÌÌÀÎÏïïÿðÌ ÌÇÇ×]~næçîî\Ì ÀÎßïïþüÝÝ^îþþÿïéïWîîü|ÌÌÀÎßïïþðÌÌ|ÇÇ××U~^~îÞîpÌÀÎßïïþüÇÝÞîîïïŸÿ•Þîîî|ÌÌÎßïïþüÍÌ×Ì}]uÕîwî]íîÜ ÀÀÎßïïþüÌÝÞ^îþÿžïçîÇîîìÌÌÎÏïïþüÝÝ}Ý}WÝuå~î|ÞÞçÌÎßïïþüÌÍÝ^îïÿÿ•ÞçÇÎîîÌÌÎßïïþüÝ]ÝÝÝ}]ÝçÞ\ÌÅîîÌÉßïïþü Ì}ÕïïïÿíîÇÇÌÞîàÀÏÏïïþýîîîÞÝÕÝW}î|ÌÌîîìÎßïïýü ÍÕîŸÿüßì|ÇÌÎîçÎßïïýýÞîîî}ÕÞ|^\ÌÌÌÎíïÎßïïþüÌÌÌÝîží|ù×ÌÌÌÍîéÐÎÏïïýýÞïïîîíÜÞþìÌÌÌ îÞðÏßïïýýÌÝÕé^ïþþ|ÌÌÌîîîÎßïïýý ÌÌÝÝÀ îîÞîìÎßïïïÿÀÀÌ ÌÀÌ ÌÍÝîíÎßïïïïþîÝÌÀÀÀÀ ÎßïïïïýîïÿþîÝ|ÌÀÀÎÏïïïïïïïïýîÿÿþžçÜÌÎßïïïïïïïïïïïïýÞîþþþîÝÌ ÞïïïïïïïïïïïïïïïïïýÞîîïîßïïïïïïïïïïïïïïïïïïïïïïÏïïïicl4ïïïïïïïïïïïïïïïïïïïïïïÝÝÝÝÜÜÌÌßïïþÝÌÌÌÀÍïïì ÀÀïïì ÌÌÌ ÌÜÜïïì ÌÍÍ}ÞîÜ ÍíÀïïì ÌÝÌÞÞÌÌ ìïïì ÌÇÝ~Þ|ÌÍÐïïì ÌÌ|ÇÝÝÜÌ}ÀïïìÇÍÅÍ×ÝçÀÝÌïïìÌÌÍ}Ý]Í×ÌÜÀïïìÌ|ÌÜ}uÜÍ||ÀÀïïìÌÇ×\Ý|ÎÍÌÌïïìÌÌÌÌÇÝ\ÌÍ|ÌÀïïÝÌ|W]}Ý× ÍÌÌïïíÍÝÝÕåUåÝ]|ÌÀÎïïýÌ××]mîž~îÌÌÞïïíÌÌÝ×ççåÞî|ÌÞïïíÌÕÕîþÿ÷îíìÌÀÞïïýÍÞ~îîî]çîçÌÎïïíÝ]ÞÖææ~×ÞíÞïïíÜÝ}×îíîÌÎîÌÎïïíÌÜÝîžççÇÍîÜÞïïíÌ~îîþÎìÌÇîàÎïïîÝîîîçßÜÌÌÞíÞïïîÝíÝ^×^×ÌÀÞîÎïïí ÍÝÞîý ÞÞàÞïïÞÀÀÌÀÀ ÝÞíÎïïþþíÝÌÀÀ ÀÞïïïïïÞîïîÝ|ÀÞïïïïïïïïïýîîîíÝÏïïïïïïïïïïïïïýÝïïics4ˆïïïïïÜÝïýÌÀÀÏýÌÍÜÌÜÏýÀÇÍìÌÀÏý ÍÅ×ÍÀÏýÌÍ}ÍÍÏýÌ}}ÜÜÀÏýÌÝÝl×ÀÏþÍu^mìßþÍÞï~çÀÏþÍ]ççÞÀßþÍîåÜÎÀÏþÞÞ~ÌÎàßþÍÍ|ÍíÏïÝÝÝÌÏïïïïïÝÝïicm4hïïïüÜÜÍÿýÌÌ ÌÏý ÍÝì ÐÏýÌÌ}×ÍÏýÌ}}ÜÜÀÏýÌÝÝ\|ÀÏþÍW^nìÀßþÍÞé×íÀÏþÍÞç\ÎÀßþÝ^Þ|ÎàÏýÜÌÌÀÌÌßïïïïýÝÝÏich#HÿÿÿÿÿÿÿÿÿýV¿ÿþ­©/ûT€èøøøkØ}ð¡ø£p èJ¢àXøVªðJ° øŠµY0èE0`ø•mš(ø‰`ùUm†PèI”€éZ¶Â„ø$‰Héj¶Á@è„¡úÿÿÿÂøUÕ„7ûþí ø[ÛÄýýÝ@ù@Wµèè¿þÛbú“URàø¯ÿitû¨ªáÐ7øþÔxëtªÀèøý”|ûú«€ÔìóH^ûÿG€6èÿÒü@û_üŸ÷ þÿôˆÿÿÿòÿÿþ¿ú?ÿÿÿþÿßÿÿÿÿÿÿàÿÿÿðÿÿÿÿðÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿÿøÿÿÿøÿÿðÿà€ICN#ÿÿÿÿÿú©ôàà'à·áÇâ•D‡àEaàEòªaÁUVôJ’à›âAÅÔ®ˆåuì‡êW¬ áU·ë¶éojG÷]oÒ«Ã侇òö£‡ëÕõ[¡Çà7ŧð·ï@ÿ ÿÿ¿¯ÿÿÿ¯ÿøÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿü?ÿÿüÿÿüÿÿüøpics#HÿÓÀ…IÄƒŠ“É¡Ë#Õ‘Ë£­óË#ë³ÛÀÖƒÿë<þþþþþþþþþþþþþ?þ7.&   ""$%&'()+3(   !"#$%&(/DPZn|„˜¦®ÁÐ×éøþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþúûþûúþùøýûøüüøúþüýÿüüþÿþÿþÿÿûú“]PB4(   !"#$%&8IRbt~Œž©µÈÓÞñüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýúüýúûýøøýù÷ýú÷üþüþþüýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿûø‚bRA2%  !:ISix•¤¬¿ÎÕè÷þÿÿÿÿÿÿÿÿÿÿÿÿÿþüúýüúüüøúýøøþùøþüüþþüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüÓsaN<,  Bq™©ÀÌÙïüÿÿÿÿÿÿÿÿÿÿÿÿÿþûúþüúýúøüüøúýøùþüýÿüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüýŽo[G4% DÜÿÿÿÿÿÿÿþúûþûúþùøþúøüüøûþüþþüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ¶|fP<+ `þÿýýùýøõüüüþþüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿˇpXB0  3üþüÿÿýüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÓw^H4#ÇÿüÿÿþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÖ—~dL7&2ÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÙœ‚hO:( yÿüÿÿýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÛ …kR<* žüþÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÜ¢‡mT=* ´þÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÜ¢‰nU>+ ²ûÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿܤŠnU>, ªüÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݤŠpV?,  þÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݤŠpV?, ™ÿÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݤŠpV?, ˜ýÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݤŠpV?, –úÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݤŠpV?, “øÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݤŠpV?, øÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݤŠpV?, ŠøÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݤŠpV?, „ùÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŠpV?, |úÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŠpV?, tüÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŠpV?, jþÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŠpV?, fÿÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŠpV?, eÿýÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŠpV?, bÿúÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŠpV?, _ÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŠpV?, [ÿ÷ÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŠpV?, VÿøÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŠpV?, OÿùÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŠpV?, HÿúÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŠpV?, >ÿüÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŠpV?, 6ÿþÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŠpV?, 3ÿÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŠpV?, 1ÿýÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥‹pV?, /ÿúÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥‹pV@, ,ÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥‹pV@, 'ÿ÷ÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥‹pV@, "ÿøÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥‹pV@, ÿùÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥‹pV@, ÿûÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥‹pV@,  ÿüÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥‹pV@, ÿþÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥‹pV@, ÿÿÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥‹pV@, ýýÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŒpV@, úúÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŒpV@, ÷øÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŒpV@, òøÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŒpV@, ìøÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŒpW@, æúÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŒpW@, ÞûÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŒpW@, ÕüÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŒpW@, ÍþÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŒpW@, ËÿÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŒpW@, ÊýÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŒpW@, ÇúÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŒpW@, ÄøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÝ¥ŒpW@, ¿øÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒpW@, ¹øÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒpW@, ²úÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒpW@, ªûÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒpW@, ¡ýÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒpW@, šþÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒpW@, ˜ÿÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒpW@, –üÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒpW@- ”úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒpW@- øÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒpW@- ŠøÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒqW@- „øÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒqW@- ~ùÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒqW@- uûÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒqW@- lüÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒqW@- fþÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒqW@- eÿÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒqW@- cÿüÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒqW@- `ÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒqW@- \ÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒqW@- Wÿ÷ÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒqW@- PÿøÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒqW@- IÿùÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrW@- @ÿûÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrW@- 7ÿüÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrW@- 3ÿþÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrW@- 2ÿÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrW@- /ÿüÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrW@- ,ÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrX@- (ÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrX@- "ÿ÷ÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrX@- ÿøÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrX@- ÿùÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrX@-  ÿûÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrX@- ÿýÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrX@- ÿþÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrX@- ýÿÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrX@- úüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrX@- ÷úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrX@- òøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrX@- ìøÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrX@- åøÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrX@- ÞúÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrX@- ÓþÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrX@- ÅüÿÿÿýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ§ŒrX@- œýýÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ§ŒrX@- QÿüÿÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ§ŒrX@- àþýÿÿÿþúýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ§ŒrX@- NÿüüÿÿÿÿýüüþüþüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ§ŒrX@- „ÿýüþÿÿÿÿÿÿÿÿÿþþýþýþýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÞ¦ŒrX@- löÿýûüùýùüûÿÿÿÿÿÿÿÿÿÿÿýþýþüþþýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿݦŒqW@- ~»ßüÿÿÿÿÿüüúþúýüüýÿÿÿÿÿÿÿÿÿÿÿýþýþþþþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿܤŠpV?, $@c~ºÒòÿÿÿÿÿÿûþûþüüýüþÿÿÿÿÿÿÿÿÿÿÿýþþþþýþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÛ¢ˆnT>+  'F`z—­Êàûÿÿÿÿÿþûþüüýüþûÿÿÿÿÿÿÿÿÿÿÿþþþþýþýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿמ„kR<*   "#:Rp†¢ºÓïþÿÿÿÿÿþüüýûþûþûÿÿÿÿÿÿÿÿÿÿÿþþýÿþþþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÈ—fN:(   "$*H_z•«ÉÞùÿÿÿÿÿÿüüüýûýüüüÿÿÿÿÿÿÿÿÿÿÿýþýþþþþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüþ¬x`J6&  "$&9Ro„¢¸Òìþÿÿÿÿÿÿüýûþüýüüþÿÿÿÿÿÿÿÿÿÿÿýþþþþþþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýݘ„oXD1"  "$&+H^{“«ÇÜøÿÿÿÿÿÿþûþüýüüþûÿÿÿÿÿÿÿÿÿÿÿþþþþþþýþþÿÿÿÿÿÿÿþýÿÿò¡ŠwdP<,  !#$&(9Sn„¢·Ñêþÿÿÿÿÿÿþüýüüýûþûÿÿÿÿÿÿÿÿÿÿÿþþþþüýþýþÿú¦†xhVE4&  !#%&(-I^{’ªÆÚöÿÿÿÿÿÿÿýüüýûþûýüÿÿÿÿÿÿÿþýþÿÿ°|rfXI:+   !#%')+8Tn„ µÐæüÿÿÿÿÿÿÿüýûþüüþþÿÿþ¯jd\RG:.#   "#%'),.H^zªÃØôÿÿÿÿÿÿÿÿÚURNG@7-$   "$&(*,.8Tl„–œ†^@@@=:5/(!   "$&(*+,---,)&! h8mk   '.2)$ %0N^m|‹š©·ÅÓàëóøýýýýýýýýýýþþþÿÿÿÿþ»Q)¢Óãóýýýýýýþýýýýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷z>Éþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ•N-þþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¡V# Bþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¤Z% ;ÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¥Z% 8ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¥Z% 4üþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¥Z% -þýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¥Z% &ÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¥Z% $üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¥Z% ýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¥[% þýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¥[% þþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¦[% üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¦[% ýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¦[% þýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¦[% üþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¦[% ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¦[% ñþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¦[% ìþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¦[% èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¦[% âÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¦[& Üþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¦[& Øþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¦[& Óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¦[& Íÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¦\& Çÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¦\& Äÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¦\& ¾ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¦\& ¸ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ§\& ²ÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ§\& ¯ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ§\& ©ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ§\& ¢ÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ§\& Ÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ§\& ›þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ§\& ”þþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ§\& ‹þýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ§\& Uþÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ§\& ²þýýþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ§\& Ož½Úïüþþþþþþþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ£Z%  -Hcš´Îçüþþþþýÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿù”R!   :Wr¨ÁÚïúþþþþþþÿÿÿÿÿÿþÿÊuA  2Jf€›µÍäõýþþþþÏmM* *>Yt‡n?6&l8mk #3CScrd3 $5FVfv†”£²ÁÏÝëøþþþþþþÿãWjÜïüþþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¨7 ûþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¾G+þþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂL&þþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃL"ýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃLÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃLýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃLþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃL þþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃLýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃLþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃMûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃMõþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃMðþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃMëþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃMåþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃMáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃMÛþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃMÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄMÑþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄMËþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄNÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄNÀþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄN½ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄN¶þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄN˜þþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄNÊüþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃM *Ml‰¤¿Úóþþþþÿÿÿÿÿÿÿÿÿÿÿÿ¹G &C`|˜³Íæûþþþþÿþëz1  7Tp‹¦¤Y4s8mk)9JZk|Œœ¬µb ÐúþþþÿÿÿÿÿÿÿÿÙ&þÿÿÿÿÿÿÿÿÿÿÿÿá.þÿÿÿÿÿÿÿÿÿÿÿÿá. þÿÿÿÿÿÿÿÿÿÿÿÿá.þÿÿÿÿÿÿÿÿÿÿÿÿá.ýÿÿÿÿÿÿÿÿÿÿÿÿá.øÿÿÿÿÿÿÿÿÿÿÿÿá.óÿÿÿÿÿÿÿÿÿÿÿÿá.îÿÿÿÿÿÿÿÿÿÿÿÿá/éÿÿÿÿÿÿÿÿÿÿÿÿá/äÿÿÿÿÿÿÿÿÿÿÿÿá/Þÿÿÿÿÿÿÿÿÿÿÿÿá/Óÿÿÿÿÿÿÿÿÿÿÿÿá/:‹­ËæüÿÿÿÿÿÿÿÞ-+Ig…¢¾Ò}x2goclient-4.0.1.1/icons/x2go-win-48.ico0000644000000000000000000035267612214040350014343 0ustar 00hæ èNè6 ( ¦F 00¨T³ ¨üÁȤÊhlÑ ªºÔÖ00 ¨%~‘  ¨&· ˆ ÎÇ hVÑ(0`€ÿ€€€€€€€€€€€ÀÀÀÿÿÿÿÿ€†p€qqˆ™›€qhi›»»»»»€ph‰™¹»»»»»»»»€€Fˆ™››¹¹»››››»»»»›€›»»»»¹¹¹››››¹™˜ˆˆ €»»»»›¹¹™˜ˆ››™f…F0‰€»»¹˜…h©™›˜Fx»€€€€dˆ‰i™™›™dq »‘€ ¹¹˜ˆq™0i™™™˜q€‹»€€6ˆ†‰ai™™™–p»»€ ¹¹ˆˆ“©š™ƒh»»€†ˆˆˆˆ†‘™™™d… »»€ ¹™ˆd`˜©˜€i›»€ˆhhˆˆˆfˆi™–p™»»–@ ™˜„a'©„f™¹»€ ˆ‰ˆ‰‰hˆ†ˆˆ™d…››»€ ˜ˆhhqicci™™»€ ™™‰‰‰ˆ††dhFqi™›»–@ ˜†ah1™™™»€ ™™™™™‰h†„hdcg™™›»€ ˆ††Phh8 ©¹™»€ »™™™¨¦ˆdchEE™š»›‘€ˆhaa€*™™™»€ »™™™™™©©)†k›‘™™››»˜0 ‰‰h†ˆ(ˆHh™»–šš™™»¸€ »™™™™¨’š‰b¹¹™I™¹››¸™˜–‚ˆˆˆhˆ™˜‰iš™››¸€ ¹™™™™©)‰(‰™™ˆ™™»»¸` ™™‰†’ˆ‚ˆi™©‘™™›»˜€ ¹¹™™˜™©š‚™‰™–‹›¹»¸€ ¹™šˆ’ˆ(H˜˜©™™¹»˜€ ¹™™™‰©˜Š‰ˆ‘‰™™h¹»»¸€ »™™˜˜hh„hˆ€©š™…¹»»˜€ ¹¹™š˜™˜–˜ˆ™™¹ˆ‹»»¸€ »»™™‰‚†ˆˆ ›©™˜»»˜€ ¹™™™™‰™™hƒY™™¹˜»»¸€»¹¹™šˆ‰˜E„™™›˜…›»˜€{›™™™™™š„hY™¹¹–t‹»¸€»»»™™ˆ‰i†ˆhi¹˜‡‹˜€‹»»»»¹¹¹›™¹››¹¹¹¹™™¸€ »»»»»¹¹¹¹¹¹¹»»»»»»˜€››»»»»»»¹»¹»»»»»»»¸€ˆˆˆˆˆ™™™›»›»»»»»»»»˜ˆˆˆˆˆ‰‰™™™¹¹€ˆˆˆˆˆˆ€ÿÿÿÿÿÿÿÿþÿÿþÿþþððàààààààààààààààààààààààààààààààààààààðÿþÿÿÿüÿÿÿÿÿÿ( @€ÿ€€€€€€€€€€€ÀÀÀÿÿÿÿÿˆ†ˆ€ˆQh‰›»»»“Hˆ™¹¹¹»»»»»†€›»»¹»›¹›™ˆˆ„»™˜ˆc¹¹h5‹†ˆˆ„h‰Qi™›†»“gˆTX‰š™8»†˜ˆ5Fˆ™˜vi»x™‰ˆAF™¤c‹»†˜ˆ†ˆh™ˆa™»“ˆ†FT†Št»»†˜ˆˆFhx™» ™h& ™¹–™˜˜††Fi™»“™‰ˆ&h™™›†‰ˆhF†aaˆˆ©™»ˆ™¨)h‚ˆh›–™™»¶ˆ™™™©‰˜i™˜©™›³ˆ»™ˆ)ib‰˜ˆ™›»¶‰™™™™(–‰‘™i™»±ˆ™™¨‚ˆ™ˆ™‰™»°‰¹™‰ˆ˜hˆ©ˆ¹»¸‰¹™™¨’ˆˆi™–›»° »¹™š˜ˆ„©™˜‹»° ¹¹™ˆ™h€™¹¸»¸‰¹™˜˜ˆdf‰™˜ˆ›° »»»¹¹™™™¹™‰‰°»»»¹¹»››»»»»˜ˆ™™™»»›»»»»»˜ˆˆˆˆ‰‰™™€ÿÿÿÿÿ€ÿàÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀàÿðÿÿÿÿ(0€ÿ€€€€€€€€€€€ÀÀÀÿÿÿÿÿ‡€df†‰™¶…@ˆ‰™¹»»»¸€ »¹¹¹™¹ˆ„ˆ€Yˆˆ`™˜¸€ˆˆ†€™™‘Y¸€ˆ„dhi™„k¸€‰ˆddXšE›¸€˜†qa˜›¸€‰ˆh`ˆ†8»¶€i˜ˆq6J™¸€‰‚‚fh‰›¸€‰˜ˆ‚dh©™¸€‰™¨)hk™™™¹€‰™‰‰ˆ)‰i™¹€ ‰™–’†˜‰‰›¹€ ‰™‰‰ˆ˜i˜›¹€ ‹™˜¨(†™–»¹€ ‹™™˜ˆ†™¸‹¹€ ‹›™‰h™¸i¹€›»¹™˜˜›™ˆ™‹»»»»»»»»¸ˆˆˆ˜™™›»¸€ÿÿÇÿ€ÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€€€€Àðÿÿç( €ÿ€€€€€€€€€€ÀÀÀÿÿÿÿÿwwwwwˆªª`ªˆ‡ˆ‡pqqwx‡zp‡pXuzpwuuhSªp…q1Wˆp‡wUŠpˆ'7yŠp¨—yxˆŠpˆxr…‡ªpˆˆWw‡Šp¨‡‡XˆŠpªˆ‡xˆxpˆŠŠªªªpxwÿÃÀ€€€€€€€€€€€€€ÿÉPNG  IHDR\r¨f IDATxœì½y”Õ}/þ骮êêe¦g4‹FHBB#‹@2‹³:à݉oqâ,~Ž“ç—äÙ/¿çÙØxÉsÎIûœÄñÛ"Æa1¶Äf±„ØAB Ô³ö^{Uÿþ¨¾Õ·nßZºgƒŸ>ç̹µÜºU]Sßå~¿ßûý'p'p'p'p'p'p'p'p'p'ðkÔ«ý'p¯%|þæ›[ i ]‡¦ë¨Ö5´l=ÐÏ0 d2t|ÆF‡ñ?>ñ‰EEs‹êaNà^ |ö¦ÏµlË@£©Ã¶<Â5 ªªÂ0 ˜àZzø‚ì5¢×Ò!H \K‡¢(0@á·ßøÆ7^U<ÁNà5V W«Uh¦†at=‚ Š,@ד1‹L&ãߓާµ/¼ð}t/֮߈GzàU¡Å à^|ö¦Ïµšõ*,\)œˆp pM_C!ˆ€ùr"æ!-ç`›*Riвu¤å׈‚à÷µM÷Þ{/޼ø2.½äBÜsÏ=¯(Mž`'Ð7>óÍ-ž¦%a¬:Í¢MÌ¢v\¢Ð31A"iÐZEµZ…NýNUU}s¹†ŠE¬^½:ÑØ¿Øµ {vïÆºuëpàÀWŒ.O0€ÿ‡ñù›onUÊåX)Üá´¥0™ë:®‡0‰ÜË3±¿…@×uè†òÜ\ç~ŠQÊ"#¥:D-ÈXRÌ£X,¢X,bt|††ŠÈg144EQ°t醇‡0::†‘Ñ1€”ö$ýóÏ?½{÷bïÞ½Ð(Í&-)þ{€;wbÏîÝÈç øøÇÿŸùÌgŽ;}ž`¯q|þæ›[–í¢Y¯¢Z­úmàC7]Oª¢Ob¦ÁHfEz–Ê@ÄL™•¾†Õ‚cyšH¥R®*BQ /Y‚l~ƒyÅÛ†œÉ`tl)‡016Œ¡¡a¿?Ä )…Bab~ CÙ!‡Á²]Hi–í©ød›½®TšÄܽ{÷òÇq€oýë­8zô(FFF1;;s‚üºƒ¨Ñai]ªÔ@ÿsSÉL3ЛDŽjޱš„a0ì´f ªª¢ZW¡H2Š÷¢”…ciþ=‰:],1<<Œñ¥K1Ü–¼¹! æLLL`hh…Â&&–—iÐçÃúÒÄÇ’Üž|òIüø'wÀ¶Œ®sS““¸å–[Ñl6°|ùr=zô¸Òè °`¥0o.ÌJa±MæÅahŸ'ª5Ðß<™=Fž•&dÃ0P©VaX-d¤Wú*JŠ¢`ÉØ2 žä-‹Èd2FVéìÐЊÅ!d³^?EQP( FFÇB‰))A²ýyDŸd¬8Ñ+J¥IüÛ·þ –í¶ ¤%ï}Kiwß³?½ó'€7½éMÇÕ0x‚ hÌ"s´8)Ì¢iLæÄôܸŸ¹2+…iðæ¾ä8oþ›ËåDF±  8<†¡áaLŒ #?PÄÀà†²±ó_â$/{žŒÇö Û?ɹ°>QÌ#ɽY”J“øÿø~`:CpÓÿ¹ ³³3Èç øÈ|_üÂŽ ­þZ1bÔ¢£³X£ {ž—FIfJ*ëfose.!›. ­îÍÞï  UÕJ•J04TDqhÈW3O"ç¼¹n!¯`dÌ3d /ÁàÀQÄ@N†(å0\ÌCÌ{„<”Þ¤ˆ“æ½Hâ8IžDb‡Ý7n?ê¹âž—mŸ|òIìܹ³ëº»îº ·ß~;`ËÖ‹Ž[œÀ¢bDð¥q£i Y/'’Â,úž+süÊ|WT/ Ÿ›š髪*ª• Eñæ¿‚Œœ’†ªª>ÓX2< EQ0>>Ž¡áa !78ŽbNðæ¿ƒEŒŒŒ`hd)†ói_W´ñ’íãÕöƒ(›tMJ¼ýÎ飞©ßñïݹ‡ ?V*áÓûYئ†´œÅŸýÙŸás7-¼WàaŸþÛ¿myñZ¶Žºjø~á$juOA $2­vÉçÊ´õYUUˆ’÷åóæ¿CCC^²J&ƒb±èKßB¾}®=÷ÂðÈRd¤Eñ¥/ßMƒGÔôv¥m7ãm³-A’¾Ç“)$‘üýHdÞõ½Ìÿ{Qå“ü0€n‚N"™IARº¢½È\h‰Èm×¢µ†¶®zjò\ù0 ]÷_8™ÿ Úú¼lÙ2lܸѓÂm¢&¼tl…Â@—ÑŠ'-zEÑÄv=¯º™AØ5IïöìQèEÊ“ý8bf[Ò/ A³×$!hìuì½É6}ýÄÄRlذGŽö¿åÜÀÎ>ûlŸ<ûì³X•0¨¨ðgÿý¿·î¼óNÝÆ±.¢ç¸¢xse²€B7¦ ª*r¹\äü—¨ÎÙB¹ r¹ŠÅ¢OÀë3Ä F‡ `ÈêWÚëé6QR•íÇ»–·Fä¼q®cŸƒw<ŽIE1Âã—wŽ=O·ôøqF=v,Þ}¢úñž½—éÂúõë19Y ÷·§g+0 ŸúÔ§Z ©,8xï{ßÛzñh©Ë‚M±`®\FµRDŠä½”á%Kå¹¹Žõ¹XÄÐÈR,_¹…¼â«Ï¬õYÌal wwL‡O"e¢Æ:m’}ص,Øk{•Úa×±ûä>aL"l̸iBœÄíUúÝÒ—w]ÒcqžÇ\¢žƒlŒŽùÒŸ`Ù²eþv³îyå ÅðÜ”|èCj†YlKú¶ íÙgŸE©4‰ÙÙ™®k^÷º×὿ó~\ñÆË°bÅJÑþ_Içq¼ó<ÏþÓh “ì>ï>‰ô[âÕ-@‘‚ÛlKÎüó¼þIÀ›B$ýMI¦ qï?JC ÛŽ‹w®W N  Ç*¢RñÎ)’€¡¡¡ÀsêºÓ0–‚šÂ|лÎÌÁW¾ò•à-ƒÌårHË9Ü{。ÄιçbçÎøð‡?œHÒA‰œ„à€àÜ’\Çžãý£y÷S+“>ÔÇM[áÙcIA:lŸwœ9{ž=®[ý°qY„M!ÂìQÓúÿÀþß’´ìwÀnG]Ã#lÞ~Ø·vž7þÐÐo'±,4Ó , š/„<÷ÜsÓ€ÜÖ'~öÓ;pàÀnß‹.¾?¹ý'8å”SücQ/‰÷Ïà%Ø$ê?}¯(•e6aÏË‚þèyÒp>Vvš Yâd‰·—cQÛQ×'apIl<ð´­8 S÷Ùqî‰#ì( ê<ïÛ*Í*þ Ã0ü¤'ŸúÔ§ZÜÓ#æÍ¾ò•¯´äLäï»v…ÿòåËqË7¾‰‰¥±˜×|bã1ˆ( §þ‡Ëc(¼çáÌè6)¡ó»i¼Pc"IŸ‰§ôÊ¢$hXǨƒ@?[JôÏxà…©/æÍ^O`÷ã¸}Ô¼ëY»/OCH*õÃüáq14¡³†º$àu^î&hú8Û²ý¢EÜoaCÍ€ÞNâ"òך@@VDzÁ†¸ÐM›û3ú¼@iºìÿ±cÇBUø«Oþeè|>)w “ìô¹¸íÃ^ö<äEœ±+‰ôšÃ‡&Ê^ˆšnyÇéë¢ÆŒc½ØX$1˜òÄЖôºWÃ@@–CGa¡ óbºZC6›E6›ÅÞÇ í·nÝ:lÝözñsrÞ~Üqúoü(Õž½v>èUâ÷Bèd›ÝÏËÁ~aj=éÇ›>5Uàçi aà.yHqÈ"J|-i„ø …ÐPyÛT¹ÇûÁ¼mJû!Ÿ{ö¹Ð>×ßpC¨è]ˆRËB GI}Þ%ñã¬ï,Â$9Û' z Â4¢K/ ! qkh$ù¢®a¯}54ž'€Æ§ÿöoçí ˜ įišÍFh¿Ë.½Ôßæë›Àžâ xIWÀÅ<ÝòÎ…¥‘Ôæ@÷á!‰Vç5`ÑÆb²O·,‹0B%T!-mvÿp£—Ôé!˜h+:Ú'Ÿ/`õêÕܼX5Þ‡¶ô6nŽÏºÉxˆ"š~‰=lJÀªìQýú½g¿çyI,’2Ú^¦x‹E ßKü€çE:é ¢Öõ“>Q·˜4€0ÉÏJ¡¤Vý(ô*-ãÆam¼~<•=ìÞasü$Ï¥!„]ß‹6ÐË”`±kdÛiNž)̸˜$Å_ÆEÉ Pˆ”ЋM æÖ‹“ød›‡$†¶0ð p<Ë}ØØq¾v,öXسÄ7n’ë£i/¶(¼ÚÙf—¡¿˜×b ²Ô7.±G£Q÷S5³„'¥ÃXÐs¹¨ãô¸ôñ°–w-Oòó,Ïqî¼(5–µÚÇøØëâÜ|¤ï|”YÄÅ$7¼Ø½¬”Œ"¨¨oˆ=W*Mð¾éj]…®pmƒJûæ=ˆ—!JDZR †®#£xKÙ?òÄýÞ‰€gXÌ‹$QQxKI ?Œ[†iQL7ÙŽCÜÇgÕçIgú8½øò_ £`ïDÔtƒƒ×²[¡¨[€dN£ayÿÏ™)ï¡&)W™¡kP5Tôf¦¨uoÙ=§.W*¨T*¡Õ‘hÄU,"çžyæ?>f|b9>úÑè¶…ñŒã4ˆ €À4 d`Š0Oà=TZÎ…öq8Å’þñÔÈ8<ô’¤#Jê“9nîK÷M"A{a©ÓÒÇØó@t_Þóðâ xÌ)‰»0  ¸ùs7A­ƒi{~q¶¬·áJ€î™øÙ—yçÈê<^áv›miZà}—4xÆÊE©Þ•ŒFŒô¹WC Á3îõê׺Uý8„©öI®5Y"§¯Óe¨ëD š˜¦£Y†Ö¬Á0Mhª É©¡éd!¹uTuùT ÍFeæžyn?LqƒéRé,N?ç øÈþQ¬VÀcaýzÕv~G€GÌáÅW’T4¢¯ëe; ¢”‰Z³3ÓþB9öûÌç Ð $<ŸònæÅÈz½x“ jžµP¯O˜áF’T\IçùäCž:öÊ•4µèeTtSSÓPÕ&ŠŠ‹ª. ¨¸X²êlœwþ±DoX@e¦]Waš`V`X-èv -£C•J-}U]@KŸƒm4`Ú-XV'¼eëPu–Ý‚k«]U|{MÕjÜ?ç½üQ×ûa‰;lZÃöÕ- %åt~oQÓ`ÏÏ—°y ™}i8–ÁZ#£c¡Âɰ?îX$S€¸H%ýÿæ«Ð}¢Ôþ0K²nFs–i¢¦‹tÃ@½<‰#Ó&ÜÆQh†Ó²Q©TP™9†jÀ­Í…®ë¸çž{ºŽ_÷Ö÷à¼ó¿…Ÿþø{8ôäƒhÖËA•v!–€J…Xµ¸ôR!É|Ÿî—äÞqÇã½'P©çI,«/‘šK'Và¬Í›qÕUWAQ¬Zµ¹Â ? ï;sWÒÀBa^ %ÊÈHB,'2,þçxja6€ŠT'bz®†ZCƒexênéèTªUhš†J;/)JÒb<쇖ä:³-™›³G0;}¬§{Ñ}yÆ)âOú|Qc³- ‡2È%÷‡¹2IŸ¡á%¦›FËjúD8¯ÊÇ@°LSÑ©“äÖûÞu]Ç‘£S8tð tÝÀÙgoÆûßÿ~lݺ«V¯å~¯¼ïsvf:2&­,Ž)@;›o&‚–ƒ–ÓaåóµÀìŒ0ÑhÔÕºŠòì4*•²ï~€R©„jµŠr¹¿ÊB‘¿=‚жã`X€%YœyãG£Ï‡ÕŒ²lGý.ºx¨ªªHËYòC6?ˆug^Âý½I¥<¯ïÿùgº´£9‹Ã‡cÿ¾}xú±‡09SNk˜Z¤&À¤¢½ŒÖŠì}wä8-íŸ}öY>|†åàú·\ƒo¼gœq€xm4ìûæEÒ 5€E1 //›M^ †GÔ³3Ó˜™™Fµ®AkÖ•J¥R åJÅ/瞉”~œ>½‹#ò°{‡=GZÎBDH"à¤dÈRÚ·¶'e(½0ú|˜Äæõ›^žœEun •J¦+b劓pÑ•ïÆïÿå%X¹r„ÂÛß(íe èÅ Àöá!“ÁYg`Ãç⺷ý&žüÕN|ë_¾ÑUgÂlKp:u=[‡"¬bTµZÅ®]¡Ùl Ÿ/à›ÿò/xçÛƒy.xZ((@”’ú4æí("Ì65hšŽçŸÞ›'Wª¨TÊ]ÆA:¦€lOLL`5U …M›¬H‚ßF–fª•‚èêÞ±VŽmBL¿(IÎÀ2 Hrçw‰¢ˆ¦%"¯t^™›ê\—‘e4m ùtÇ:è(ã(M4Ü<וt[æ—t¬ê©hjÞ‰f£­>©zsÇa¼s<©Ï»öÙgŸÅsûú®©u§ƒ?ú‹ÏaëE—¡¦Ã'ú®{ŸY$‰%`Ag;>oÛ¥=·~õKЛƒ!MܽÔz|æÙgýŒWëÖ­ÃöíÛRà«öqFkº_Å€€M_Ì"›UüT`a/§ð¦½XûøL´Q~ý° "Ó' ÀBÎGF[.¹[.¹Îߟ«j0ëÇpøðzìÞÿ¤.©Öåþ¢Ç¢Á3˜i¦‹‡¼/°òóÍ×½ò¿þBaq`™]\|AmˆÚ°~-.¿ü2ü×·Ç>_Tuè}û÷ûÄ?22ŠíÛ·cÃÆÓ$ÿ澤-•&CmlÀBMæµ€$/ˆcšt²êO‘²çÙøê°—6n/+øâ†6¯%¿a·y¨évI1‹ÜèZl½è2\û»ŸÁ?ñ%œrΕ‰ŒwaA)QA+aF´jµŠ{wîÿ9[¶áOoú®¯êÓÒ¿–`ÑZT CRû@TÜù?^|ÅÛ¸¿™ýcϼð ¾k3Ÿ/àÖ[oÁgœÑõí‘m^ ð-ÿlŸ0¡˜–³ÐІE0/ ]Ò(ÞÀZ@Ù–G´qêRœe5 ¼Õ|½,Þ ÛŸÑÐÄD·]‹+ßõG¸øÚ÷![(vo?ĉviôgžy& …d¥€÷|ìK¡¿ÞŽb„!²Ì é‚©¤!Ä«×mˆŒÒ CµZÅÎûô÷?þñ?Á•W]€ÿ­²Çy}xߺe»±FÀãá˜7â_¨at@°㘼–§Ðûa’ŸÞN*ýãí°a¾qÒŸ–@âö`Ãù×ámú”W5y>>mfŸ¬îTd(²Ã0ü*µglÚ„õ›Î|FóÕ Â·.B·€Ññå½ `çÎ{}Æwιçâ¯oü4÷[âçîa!¿ì´ ‰ `¡RƒÏ‹ˆyo¾DVHñ$wXKúñÚ8 €Ïß‹äO‚8CUØ\w!fè¤ ØzÕ» ™Fûœ µ Zé¸ BW(²YD‡ ´Ý`/;Ö5ì©g]%ÍÏHÅÓ’ü®(F™dñS”66@ý“RéÎ÷JÖ±¤å\×ß¾ýûýz–ù|_þÒ—#¥xœM+Œq÷vÀBa^FÀ¡¬÷’&.ˆšÿ$‰î ‹`·i$­¾µŠ/nÙmÓªå²7Žn@tjhZÞ«­—§P)Ï@S½Ð]Umbß¾ç¡kÞ\ÚÑf1Us±fõüþŸ.cÐí”´þ{úy—ÁlLcÏ·Ãu\¢Z1@–Ûÿ1ø~ˆœ:{œ Ñì–6£+ÖûÏzútOm¢ÀcžqS®°HCÓr‘J+¶é•—¼Û¤Ô<9F\Í=ü+Ü?þo‚‹/¾(Q4jâ ÖQSbXTkÈâ…8@»ûÂ^BÒè>z –¡„I€_š‹·Î¼iÕÙ)Tª@ŸEY 95L×[hi³¨T«P›u¨ª[Obê ½ ×q× 5Ð…ÅÊ›å³#Þ`ûy)‚Óí”ßž±í-8üìn4ÊÇ`¶—_#ׂè5ÓL³^Ž}¦0fÀ³°v #à­b I¥>Бü<)H$i˜šÏËlVœóÖ€'„ͺ¼²”ÿŸ>G[ËÉöÚõ»î{ÿýk÷oKÀâ´"ý“Æ ° ÿgO>ó< ÈHK Ò’‚¬âýÙ–îoÀCÞëKY)à/?õ×þad@oñüq’Ÿ. ÒFÜæÍ’<¨¡ë‘1Ѽñ¢$\´_RÄ%î¤Ç…óÒˆb<¢R£Æ§ïóÒ±)¸Í)Ÿ`†W¼@‡€Ã\^IqòÉ«ÏÇ?·‡ì ½†ÂpûpÞÏS@þXDMÅ üÒ€kB‰r‹Ò>ôjµŠ§žzÊßÿ÷½KW¬ó÷ÃÂÇ“|¿4X;A¼ y‰Q/ H:OJD«þq…;xñýa;ÇfÕ%HºŽþÐu³…”1Ó´Ñ4Vi‚UÁ‹Õ*mªªÂ2 ´Ìš¶„´«AU›¨UÊHÛeì~ꦛô˜nFQüò\Û;¶o÷C~óù~ïcåÝŸI¥˜ÐŠ;‡Œ$.¾œ€4x#$Ý÷²fg¦Q®6¡ª ¨T+ågõ­T*¨Õj¨Væ ®ùåšh)?VŸÎ ,Pªí®Ê'`بä¹ Ã@&ÂêÕ«sWx졟böè>–žŠÌØiÈа­,”m¤%Å¿ŽXÌmKÇæÍ› îûñ×qù{þ¢ïE?,’ÄEÄ­#ØÿØý^àW›Hèĵd{jr2ðþÞóÞ÷á¤eã\Í‘7Åä%ùÆÙolGyšÍÆâË H8"YÆTµz»4‰F£îçÔõN n’#Ôg#)¹Ih/À'’…ÀB¤ÆŽJÂÖ7.Ô8*__&“Áš5k¹ù@oÌa×]ÿ†+Þ÷i6PX *Oÿ00.!@Óƒ­åtŒe¶FÊ(Xµz5Æ'–cªÔYpìŃxü¾ïãÌKÞ™èúÏÊx:’h<Âg™Le¦„òìdìýÙ¹ÿ>ò§û†L“™ãæú< @J pš“À?ˆ] ¸P˜w$ Ôž³ !”4 Ãð9g¡0€Ba+V¬ôÏ7u Ü–†åt^ŠãvªŽêïÃi÷3Uèn{Ò¯ÏBO½*=~Ç2 Ñ‹u'‰ýç6ƒÆM –ÌRm i7xÌ?§6‘’Ñ2½1IÂP:q(1îeä´¿m Y¤] º#@½)»íç¿HG¥RA¦0 %#C*ŒcéÉ vvt- FU¤‰U#Ã,åäœ$*8óŒÓpO)¸8èç·Ýâ3€¨„&Qö– DiQÀ‘'vt¤–2xù¥sÿ«ßò6¬Z½6ø\šÐÍ xZ@ÔÔ6 aç­ ˆ^bšÉd06 øÜI„hÙž DÂ!éÐaúº~C}yHâÖ›$¢Ž–‹;ê>F›±eÒÞöׄÞÖë70aìl¥G!‰}±Gáœó.ÀÎû hû»Ï7@Ò¿‹þ=Q+ÿ„ÚâB‰é±J/DeÖ3ަ%HlËð·ÀvìØÁÌý?•ø÷Ó„gHª^ ëå âH J`ÙntqJµ%/…ý£ÏÓ­ew§H 3ÈôìÓõ¼œq"-Ü!«° ˜¸(A®¿ÛŽÞg¡R¿;³b›OìRK„Μ™´…¼‚37èc›ºûß¹×GÅûÓˆ %ŽÊ@DÆ›Üÿ0¤´à<Ù¦¿µcÇŽæþo}çoa|Ù nØ7££B…Ùý8 ÀiNGöY”IAïaE)|rÄ&áµdö :,“Õ¢Šv²ˆŠñ§Á JáÕØøø8D&δƒ-„àU3Hüª ¤ °³+º˜4KØEáþñúž·e[×ú€]wÜŠZy*ò7ò†!*ŠaÊ•™’/ýà r–íbçÎþþÈÈ(~û÷:sÿ¤¡ßlt`E‹ÎxEîM·4^)¿?‹[w˜‘’Å«GùKé>Q¾~ºM¡óþÑýHþ(Ðp/ÒÞ»7IO“»Ï¬:;àþâ1£‡åØ+–/íZ`ê <ô³F>sÒI‰Ÿ¾¾ôÜý±óë™éI<þÄÓþþ›®~+V­=ÕßïG :ÆpúÛ ýí%|˜Æâ¶D<™„Y?é–îÇ2(?ÿ|çýqñý½H~ØhÁ(5ߨOùUuÕó¬¦wR°ªhZ"lu¶ZFÝHA6a¦jb®tª¦Atš¨V*H¹ÞþñÆÈŠpǶ ó½€kr]bìvÒR[·nír þò?¿Œ-×ü7^ÛN‘á|e=­àY›€Û(anú¥ÀutÒÒîܹ30÷ßGo \µ$œg¤Ÿ&@$¦ ÚÀ½ÿbŽˆ™$ö Ó¢òûñÐKñI’ª«„è­z Z³†Ù&`«sP› ÔkÁ|z)Û#èjµ ÑQQ­Tü¡J¶€¼PGÓ€ìÖàÚ*\Ç…¡yVÿL&ã¸$é¾Ò\bµŠÝ÷ü¬+{ì}?ü{¼õcÿÆ6Áš Fò¤¥Œo,#é¾ÂŒh6nÄÈÈhÀûóâáý8¼÷.œ~þ•±Ú 0«~Ôж ¼ðüã]Bˆ=à1ƒR©þ×¼åz,]6¸&¬a˜[0ihpXœÝ‡öªqïb‹ —h2îÄi½H^ñÉib¦æÐuºîeé:q fcµ˜U/_ æ\nÒgÐlÔ0ÛLÁÑfáꎈb^¤²B:‡t«ã KÎéÈ¡£²Ãi å9’×O Päxïo±XÄÒ±%]ùûŸÞu^ÿÎÿ…ü’åH] aú ¤ÅŽ4µ-Ùlš¦!›Í²]ßhÖùˆ3\f-¥³Ø¶m+n¿ýöÀ=ïú÷›qúùWúûD ài½ Ñšr¬Zž]~¾«?K0wÜyg@ú¿÷÷ÿ2ô^½ØâÐK<݇ ¸Pxe4ÊzÙ«PÑ€jez£‚JÃD³^A£Ñð“|´Õ†ágìmÔë¨6 HiïCÉ´—ŦíGÒA6D²beëÂÓ„¼DL1¹¸4Ð×{˜`l@¯É9£|´öÔ3º@½<‰g¾o¸á#h9ä‹'£Õx|â°š³_³>ýŒ³°cÇÎ@Ø‹ÏÅʵ%ÄIìQñQš@ùÈžðÁÛ(•Jõþ—\ó^¬Xçy2¢‹ÆiQ+Pi¡—4€ç>º# *õ”aµü¬½33Ó(•&Q*C¥R $ø$ÑÕjÕŸ6(ŠWù†Õ0L§ë6>±@«ýÝÔô +Š«µÐuáé–=Ï;×Âx²Û¤/}¬_³{~Ù’}ß¿„s¯þÀ™¸ÂóßJdJb˜Æé›6㑇ðÙ¦†û~ø÷xï'þ±«?ÇÀ‚%ú$ZAµ<»öb𠘊¢@×u(Š‚»ÖY³øðÂï–]˜w<Š D1ƒ¤v€°wÎz\^S6ÚC0::EQ°zõ*n_ÝjÁÐ5˜– ÛP¡Z)¸¶Çq`X.,ËñæÆn fÛPF4–£ÃuÛǬ Ä0Û ;Õf½½ï¶ Ûqýüþвu8í1Z¶Ç„L7 Y°{Žjx¦Çãmóö7œ¾ {Ù8樳(=ÿ&NÙ]šÀP¶ˆ–œÚð@Œgô6Ý\|ñÅ~u;޾|#†G—v¦8¦@Œç… ª<é¯H)èÈ@¡=QT‰³c¥ÝÓ±}\uíõXµ&õt{/ö£(&Ð=uê-2X¤•’BUU&!htrФÖÿ¤–^ÂÏ^óù…%ò`}ý5p›_xÃ{ÕÖ0«jl«sÌ3¦—[hš)¤¬:Z’—jl§‚­¨ò’ ½½¢‘Ï_v.–nú NÚ„âð(”ÑS°bé0ïšÌ_„ñÊ] ‹¸éslK°æä“ºV ÎL½ŒÇØŽ«ßõ¨¦gç -(F@¶C—×§á6Ž"‚ÄÏàî»ïÎýÿðÿ ,ŽJÿUx”FñÉrÐçi,ʵ˖M¤Z­V‹, ƒÁ© †¤ký{E7'kñ‹òãÍM‡FÆ;Ò,ãh9sçª µ „÷5  OÄ… noó4ÎQÎõ42cÊâ-ËI-ÏÛ.~c—KpïOnÆnøHè5q^‚8aùÈÈbt •'ýõ÷/¼ì*œ¼v·êPÒ¢ˆ?* š–Xº43kÂûR„Ù–ý#Æ6AÊbëùçtµû®¯öÉïäMXD…aë3ÏC‚0ôÑdy9]àóÜK~'¯Ý¼oŸ‚$‰À",20 +Âê=Ì›$ùºtÒ-}œ«—@òœþýÔŸÜ;d5_’4à4ؘ}„Èã$½ÿLVp[o–Q©”¡7˘œœBcr^8tS/€Þô“e)™ö²a1$j 4ù÷ ¦tä¸,¶ð†K/í²VÜ}^Ú÷«À1zÝ àIÿšX3Ow1(ö¹o»í¶ÀÜÿ÷?ú?üë£e ˆC”7 j}@RôZØ5¯ˆF\›ˆ‘»è'®ªO’Jÿ¨üüaƒaa°ä÷%Ôõ\½ Mm@·ZК5˜¦ Áª¡a´àêUÀ¬Â²,4U †iArjP5 ¹,õ•™Lí;}Oî;ÁªÁ²,¸¶ ×upÊ–ëpÝŸ~ÐTÖa4Õ‰  þÐxL‡¡bgžµ9à…0õvß»+N=¯ëð ƒì;ãý_2³AŒ!„Òäd ÊÏÛ®ÅI§œÈµ˜Äèôæ sýõ¢Þÿ¨ßjO<,°l×/<ÁC’òà4è—ׯ7÷'I=àŲygš¶ŸÄ´hí8|ÝtP­ÌBrê˜ii§‚¦Úv¶çbªÚDÚÕ1W7rThj²SÁLÌÕ7×Ö®ÑT:‡–­BiÇ;d²Èä0 /€I”Ï:˜'i¾et› ÙtRc˜™:Šû‚™q?ö3L½tã+ÖaZ<ycF3íPä¤ ­ÐíÕo¾?¶7à¶zô®¯zEM³Áo$): ¶2;…‚ vò!f )¸–Ž»ïÙˆ‡øÐÇnŒ,2«9H#éú€¤ñ½>°ˆC¥´ÐUz™=Iâe¥µ2 Ë4Ñlj˜mØ€>‹²& R©Bvª˜ª·ÐÒçPÕ´ô9LÕ\dÜ**•*j†€‚Ø@Ã)`0ã¢Ùì¸ÓLËFËÖ ·uOÓrPÈÉåävÐŒÀŸ3’Yò™ RiË ÓÎAN{DIªëo°7o:ö=è£7æðô/~€ñwý92€•=pŸôá7 ž¶àÅw¬Æª•'<zcßõ¯‘aL@6Žú÷"A]ì3Vê:vüüçþþÅ—]‰“מéUHêˆÓØ©k- )F®þh¶©¡Tò$Q£QÇät‡<‡Òä$žyúiT«UT«UŽˆŒèømT%“A±Xô#¯Þ(]-A@±A±Èéa ·‰°XÈ@Nwˆ2Ž8û%^^uØkÚ„¶ÕòÆZ¶lFÇOêJþÜO¿Œs¯ÿs€žÞ€Ag#R­k ]sÿ¨y79~õÕWãþáǽç\påïÀr(PKÛxC]ãë‡ ·µ'}I?‹éßýîw} DV xˇþ&~`ÂlqèU è'KðBaÁ@!®>Ò†!]÷Ôß7bÕªÕØ|Öfè– 8t]‡é®Û#P¶Û0mdä4Ôf †Õ‚©Ua;-˜v -³ËŸÅ–v‘å,±³mæ+¹“/ýÌtÚnš Dµìµdû´×mÂý ¨—'qð¡ïbíÖwÃJÃiå¡ëS‘óþ°c>Úá·3¸à‚ pË-·TðÒó`ÿ»°éü7ú®MqSÌìC±!×sÓ¥ÀÜÿ싮Ŧ³·øûIƒŒ€ðjÃì1vЯ`ÑNp—‹ئæçýã•çEþ…þ°Æ?¢æÿz£ ÕQ XUÔ­4$§Ó´PÓSH»ž-À²¼jº€AÅEM : 8b¢Ó€ÙNªª*Ò® Íý䟒SEÃÉ#íÖàæmš|B‡@ä¬ ¸f$A÷ƒÓ6¬Çž_>ˆf³´œE6?ip9Ê“Gü>‡R›qr,Ù€mB$®ÛòçÜŠ”‚îxy¦ àª«®Ä~ðƒÀ¥{~ü¬9ë\₉LÈ6ans §»È'™®Üu×]ÆóÛøWÉ~ø¶€$ÑaÙƒ{‰ |µ0o@~Ð@>yŠ6:IŒI-ÿ´ñO) ÃÔÁb‚£ÈB·Ï¿Ø¶ü™P_2\»åÊ"EºYw—®©°…r® ­YG6?­ õ%kX¤:ꆀ´C‡{1yÉFÓòþ¥¢]ƒ’ÍAÒT\òîå°ó«Y‹üè(Ùi !ôº $œhíZ U3A³Rþ{L•—C7œDžo¾êº®cÏ=|¬z|Ñ óóµGcŸ§T*¤ÿ¹ç_ˆõ›¶úûI#:“DöºJ0¬ªpÏA@ÇÁðŠ1Rä#.ô7i‰ï$‘ayþ’„ü†EüÑ­Fòßvx„OÇéGf<°ÄÍ#_cŠ©hV ‡RgÇ?’…+Š‚ÓN]‹uëÖ®mNíÇãlнÎ! Å¿à ;ïþy—ô ÜŠC­1©7€ÍL£—u1Ç ¯Èr`IÔž…Ê÷VÒ»W €^)HöûA’-ñ Á›º]kB²«0Úv­Yór#˜e¦‹´ë1[µáÙ Œvø¯V÷– ;f÷1ÈRÛ~ëópÄŽZËqVöñÐ8^L@TÌ@”K$(¡™o*¯=ŠŒÜÉ\Š$@·\(’ËM¡Y›Ãÿõcÿüú³.ÁúM[C“‰Ð ½×èÀ^¼½$ ‰Â¢´Äiz;AG˜á#ê-Ôü?L‚³!¿)cµÖh`]ÿKeÀR=+´jµ9wÓ3¾‘,½P.{}lÍ#:µQóÃxÀm¯`S5 –é=HŠò 膅”ëQ»k5áMØŽÇ2E=”ü 2OÒŠ¢!­@–DÈ’"O‚Âp;-ÚáÒ4ž|48Ï€eg\ƒ•g_ GÌá¾§)Óû„¸yÛ¼o`ÛEoÀw¾÷Ã@,BéùGp豟aÍYoìêÏb\žƒ"q–ƶ9¦Šï|ç;éÿúk¯O iáÒùä ëéÿ'xÅï£NbýdM0µ¦_Ú[ÓTè† M­ÃhÇϦ Mõ}ªj†iCU=·^­â£aÚеD»Šéz †i!ãÖP«7aš†Ÿ È1š³eOêde@=êsª&¡®C‘è¦ EöŠ£ RéŒΛN¡ Ò9,UT¤¤<0È‚ @ µƒ—–Bμj¶‚Œ´HÙIBüÞtÉkº¥ÏÁRاV*\ðøÏoÁʳ¯…n¶ðBæ¬Ñ_Ln üÿä Š’…®k,â oër î¾ëk> ?ÑZÀ˜þ(”|4T*ìÜy¯¿¿þ¬K°ù\¯<›=×€ 3H8âz7.ê8€8èºîW&‘€‡ƾ/âØË/ÁУêÚ³ãÒ-ïཻÓ7§Ÿx4Ðgö‰¢>7 ©0ŽZk f±Ë1Ëÿ~¾=ÀIhûÿ@j#.F1Epà 7t1€ƒ»ïÀÌKû0ºÂûOðbÆå9Ä™©î¼óÎ@Zr"ýÃÀs&Ñz!tz*$à5 èeжܕJ%¿%ÛË&&°fõj?©„Þ¬B·ZÐÕ,Û…mÁlBÎñ'RÞ¸)y-3è§“À,Ñ৉œ“=ÆÞ“·Æx8çÜ-] öýô‹xÝ[o‚n¶pÀ.by¾P½„Ý.Göéÿ}`»}ýÄÄ2lÙzQ o ©7ðØÏÿo|ßÿ´2À°¹JÖ»>,§bµZÁöí·ù×vÖ¶@qR ŒÑëzYÀ³°nÁ~"­ ÉP”,Î;ï¼Ð  ^2ÿð¦‚å¿Û Sþt€ t¶áÍ-M @,˜®Y°¸e´xVŽ+¬OؘQ襢ϩëVbùòå]éÃïÞŽS®ü$2¹Aq7°^ô 8@ü}â]ï¸îÙݵJðÂßüß‚!Á3•—¹ÉPécìÜÿúß½1Tš³5h&@_CãVÝv€¨êA4ÃüXÀHÀ8èV' ÊBåý³Ä<Š#yï@OZÚ;ÎõGú³I> ²×dÑ1ÒÉ>Õf(*É­Ã ¹æ”vUÏN‘RNg=ˬ÷\¦‹®êÃkiœ¾is€(…%Ȭ…QŸB&7ا®Â–Yy—œøÃ¤õÆÓÏĪի«õÆžyà;8û²÷øÇ°2µ…l´Î=9YÂwÞåï¯Ü¸ k6¿)TšG¾&ÊÔèµ6€§$Å¢´$þN¸ÿ+)ѳ‰?æ[ú+  æõzI> È0.+!ãõ‘‡½c HSÙ9[ð^¶ÆqKwÏ·Oüõ¢£"íxÌÃPëÈIL³sA.g@·ZPrm)gµPÄ y¡Ç²ƒº)¢€26l}+¨'alÛ[v&ÆVœÚårÜ/®Ä&J  Á+NÂcQ,dqý[®Á¿\ž¼ûö/ã´‹Þ ˜Uùû!k¸ãŽ;sÿwø/„0úÑœI– ' Â×Ðx5}ÿ4^±Œ@:Ge& ’ŸeIcÿ‚$ ùí¥Þ]¯~²R š•‚#æàˆí„òRÌ™-(ùNJò(€ïPT€£„±ÈCÚ ïü ÷~¤OIÍâh³€Ó—òsÑÅ©ç¼ý«¯º_ý§¯Ö̼ð$Ž=Ýq .—§“ZÈfV )MÓû•¦ÛnûOŒµg\ˆ5›ß y©±¤1ì4 ßµIЇÄáxØ^‘¤ Qý{Qù{]ø$WÿY$­aÏ‹ø ËéÇ2´ºÙÇ Ûž1O0%±,Ì›e¾Š¢ -gCk˜‘Ú‰êX€Ñœ…j+¾›@ ºöHYoÓ´ü†iCw¸FÝ/®« ¿– ®5 µu<ï>ÞvÆ­¡fˆ€Yƒáp­6¡¢žS½dŸ5CDM?ï!M`àº9tF!Èyd3iˆRiQ„˜ÉCNÙpR22ÔœTHËíˆA@:_XNI#•ÎAɤ‘I§Y:A ¤G µ­Ž9 QhW:NHí‡2ãPñÍo|- N@é‘[|pH] Õ:ˆ‘ÁnéFü¬§‘‘Rx÷»ÞÕµLxÝ^?Ÿ(6"AñÍ«Jjâ IDAT°‚œ¼>ý`Û¶­¸ýöÛÇšSû1÷ø`É™ï@ÝöLàŠAOÓˆ›ê%ÁÖ­[±rõz¼xx?€vÅž~)QFF`´3§Ä`û½ï}7À¬®úàgým– $‰èý†ÿFÿ«e XP (JWij‚Ùécxlï>|•J‚”Å9眃§®…f8€kÂÐuX©¤–ê_ÇúÃy©ÇhÍâÕ ®HZM—ÞçèdÇä£÷ûžŠœuÖYرcg×ÿíàß@î´·C‘RxxrWœò|¢!y’Û°\°Û-¼óïÀ?ÿ׿å¬<©ãj%}è¶\®àG?ú‘ßgõ†ÍX½¹3÷*0Ú‹7 æ“18Œ $ ] ÄJjÃCC8kó98ks°|T’À¦ Tg½`KEÓý¨?¥U…ž*v¢ÿô2Ôfu' ¹=n9:Rí;Ž¥zî$ÁDÝ !øI*æFI\aFo’ýãÇÀÄÄ·¤xùÀ}hN퇲üT˜â ö+àœe _J‡yàwH† àê7¿ßüÆ× ë:>ðÄ>êöÛ¶‚—.|ïç5xÓ€$ê?/,8É4 ‰€E’uQXôS€(Õ\7 ® Ií¿¼ ä—{œwdܯ~Wö‹gб '‹”1ã—Ò0Í s?m þò^Mmx‰@©óÂÐ0MdÓ4U „Ó å#dfEž¢(þòkEJumÓ­é¤pé%¯ïb¶©áÅ_|ùþŠ”Âå1œ³¬£%°K€iâN²’pbb).¿âJh†ƒÕd=H`5¡Ç\ÈñoÞúÍε§lÁ¦ó½¸¸Tâ½Æ„!.W`/ùúµ,j  Pˆ<¯iÝÞOüÔ1aV][ÌAÈùëf ´âRÓAä|;²éB‚€Ôö?_5=›µ @m/e­R®µI’ßOŸô±Î³¬*R–wŽÎ¥»ý‡¡îÅàŽO@’â'ù¤·éš~kV¯Æ²•kqìŃÞ…%Ç7¡0ºÖ÷@mGëǰŽ-@Ô+(&õ¾÷½¢(Ÿ¹Í˜Èo€¼%è÷ÃÛÿ@òZ ¤¹i¼< nˆÏБ¤öÏÈë'`ƒçþ óÓ€a)¿Â¢þe)Ԕ狯…¥òJ§¼EÏx¾{™$i?ƒà¶Ö×Ë–#ë^„vß´5Û\‚"¦`HKQмµ ’[GÚUqÞ¿:¨cèÔ+Q8é †:srB”¿zIƺ1>çMRMÈG{ öê•˺Ӌ1„J¥‚ïÿ?üýu§ƒÓ¶¾Åßç¥'Sçû1öS9(®‚p¯Ì`ÑO¢À®žKšûX8ÿúþãå¶cC\¬? ^„}½)R÷iA‘}5Ÿ0݇"µðŸ¨* Z§«O£´ [)(í€$ÝjawõÜ`=‰Œ’ *σH%F¦œ”aqøþ¶ûÞ8ï7>á×|¥¤z5‹OXX“¹þëÙòæäE$y!<ƒK?®6¨wOòóbþyê//,â¯øÄ@§ŠÎa.ÉÇLZrŸÝ/É)Eq…Y•>ù3´pë­·úû+W¯Çú׿Ûß*±;6ÅdÙï¢ßœIÖ¤$‰ s .jîÊ1R¶‹ i`/ÕzE’@Iÿ„eù¥Á“þ¦îýxÝÉB4gàÈ£0Ô`…!­Mh•N ší±d§‚ŠH™U´d¯€&à¹V»ž©…”Ý@+]@ÊîôD»cspÚU‘Ò)«½¯CÈŽ`âôË?+Š×¯yzÁêÔ h4êð²HÿèG? Dý½þÝZU¨WÄ1žá0Iá…@˜Gà5=`AKþje•rºí%yÔ]¢]GÓÉBiUQÖm)G"ÿ€vb[HȬ-ù¥ºª†|ÚBÓ–`[í$›FšãýéZ|$$×¢Bl5*”W7è,$U¨Ž ÑiBw:n’ØSo#–„±Uï\k2j¡Õ‘ÉÀÐø†AÀ ßu¥AV­ýŒ|c‡KE`ÑчB£3“BV Xò?÷CÃt£…}³ Î\ìC˜Þ#n¡çI«ë:¾ùÍ[ýþKVysÿ°º‚<;@?HIØoNÀ_K/ÀÈh´y¸Ñ4PрɗàðáøÿàÑ_ýíÝàòQ EFA fÈ ‘F¢”ñë×ÉÓ‰¹BB;3¯oMgî#JY¤%)p\E *AÉã×¢œ Œ?iÁ  ŸfÚ‘„‚(Àu\í¤ ~).êyíTyÙ馑SÚ‘ri’”†œN!é,´‘%ÑR$Çe)ø/§ÃvAÀc{÷âŸÿ)˜ÆÛÔ(ýòŒ_òP¤vÆ™ËË]„ Ä?ËÈ6Ûþhûö@ò+Þó‰®Ê±<ô Üëu<@X¯hÀØÀk<%X’0ÆÙécØ÷än;z•J«V,ÅÊ¥Wáâ‹/¡ÖÕ} «(]ÄJGÒ¬ÊÊ)ý–Y¸® ÄË‹½Íû\mœcq¹õãòí¿âh¿›-çž…íË»˜réÀS³C˜­Ï @-êã¹£ŽE1†F£Žüç[ükò㹜À","0ÎÀÓârðlqÙ†²Ý@aA‹VH²ÈGQ\¸m ,û\á6zî\®z9ÿ¬v^¾¦nC´ëpÒíKŸE£Ñ€e9°ÍŽÊž–ó°Í¦W,€K'ô”-(ùl$áÄJúÒ-û[ÃúÄÌúDà ’×â[ê…¶Kε:¿ñ —^Šïç[þÞú€ïá¤sß ÝJឃøÝeÁÇ DÌ~XŒO€í·ÝæÇ$À¥¿uc§§ hú)—ÄÀ¦Kj—ŠSÿ_s6€D+üL7Q?:`¸˜Çp1¦éù¤y€£ÆÐ®<Ûèp—&5§¼è¿‚S…ªªpoÀ&(€“nA·Sh¥ª0*,¤`é(¿¨J8Ç¡¢¦[RÝ‚1(ŠâO'X·,&ÜK/½ ?úá»lÇvý–œù.(R ¼”ÃÛšM ‡q¿h4ê¸õJúç 8õ¬‹;ç™úŠ<ð‚ã–!¨ß)D ‡üZjp“±Ç$Q€Q ?jTdM1“ ¸{2ts¹¡ÎµäŸnÀs››6@?Ny»á¥7×Õr’ Õ“:ï!mWáh^’Ð,Ñ—‘=‘!S‰@ËtÑ!pGì¤47!ZZrÓ I”vußÎÌþ¤]ýw|¤ˆm^‚ûwto@íà½h”ž&N¤üꈊ+NÇ‚âÎ;ïÄSO=åï7› <ûðí~)1á³óÿ¤ù¢Dkà“® š0M?¯) €6þEe²5Œ ,ŒûõÈ"É?/, 0ê:6P—&¼Rò2ÿ^ë?¿ í$H;uØâ@'TXD«‚tÙ³þç%O”çeï¹%­Úf*2d½ŽŒœ†,t˜€kéá5ÆàŠË/®ïóµ¥°Å3ÞlÆãº•ÂŽÃE\q:õ'‹‘Ñ1ÌÎL¶ÙVÌù ±h<|Ç×}ðëÒL ,?ÀñÈ À"‰g€Öè,Á¯9 Xµóx­Í“  :þèžoò€Âüÿl$ Ÿà„e ñÀ^ôß8êD0Øí€¿dZ÷ï¡?Ú!x«'óø.Ä¢â1‘Œ”Fº¥"'( 8'Ë2ri ckÎÃ)[®CU<§¿#kÎÜK‘Z8\U°çHç¬8}އ¡,pÃõ×ãË_úR`åßÜ‘=xî‘;°aËÕ=`xw?šÀB#.ÀkJ ˆ[Îh8Aß[’U€@PÚ'á®)@†Ÿ~+ÿÆeþeoò È©.$,tØ¿FjEFúUÚ©ÌK @‘Æ=Æ” C1m±ßüf, éG„96ˆsV5»C`Q\ºï~Ï{ðÅ/|!pü‰ßĆ-Wà{âñˆ¿O@ܪÀ°c4xy^³À½;wàðáC€j¥Ú¯ew’|$‚Ò~>…iðÔn.¸˜(À$)¿“Äÿ‡e÷KüaLRE¾ÇH~)‡ Þ‡tK xT¸ã'p›Ài7v]{p÷xùà8ií¦Dva’?ŠøÃ$?«YðòX¶‹F£ŽÛoÄ{6%ëÓÁ¢Ôî¸óŸ[“@ *^~GŽÍâ±G÷`jÊ[îY5D„:î$ÇS]›Ž7.]]§ª9¤Á¬é×nJGÒ0™ygMOaPi¡¦?^^SÕÏeýòßÜßn¯38ÓÇl î1 t ƒU+‡,jÐ0׬#/·Ð4Ã?Z:³_³VA~p(Ð&…ØòÞ‡“ÊøÛ4Òi#þ,?u t«…{ ‚ÔóßæŽE ‰ÛNxÁHîû:NZû÷}Mzµê÷›0 Â2>|_ýêWýý®EV‹Q •б4T4à…çŸÄcO<ƒ_Yta:d‘q™†¬¢…ø‡ áÈQ@oË‚ ÓMûÛ`ºi‚ŒŽÁÌÔË1ëûïFsj?òãëaÉcÇ/„8õ OÈ, Çè–ݦƒ¢(g"M½ÇØŽs¯þHÏ6€/ÍãlqÃBÙ¢4¦E©ôB(—_² —_² @|$à‘Ã1[Õa×bºÞBK›ÅtÝ…U•JÓÓ³h6ëК5˜–ÓrÐlÖajM8–„ÌEiâfŸì‹RpùÿBØôÜÕtÿ˜€ÛvÉ=@ü¢ 8m)NZŠ8Ô¢E`9dMC –“‚$¶üø Ÿƒ–i"Õn/ÆÁµE`è:Z‚Œ”kœÒ溮cÉ’%] ÀÔxñ_ÇÆþÎë·âä§ ô #î(M€î¿jõš®ä‡ïø:.¸òw×Wô“ NúóˆŸ Hc>¹nw9E©ôRŶ—UP«V¯Å*M³;Ò$, Þ(cºî ¥yùüjz i·‰ÙºúìK0Ó¨j.ôútÕÓTªÕ æÊ@Ÿ 0ÿðˆ^í:Î2„Ä`‰ŸÚæ¥ör,­äú }ñ"Ï´‰<åš0tøû¼ð˜ä ”Âè¹À˜³¿ü*ôk?ç% ZiÉXsÏq œ'õÃ4²¿ttù|! UÎÙƒ§vß‹ [®ŽŒ`Ñ 0‰€OúóÖ$Ñ^6^šî㉨¥0Œ• ¦{AÃ$Èï$ºÝñc‡yX‹w­<ÃrQŸ>Àc¶ê¥Ú*W*0k/òlèõi¿°)*"Ú˜Z» ˆãîhkI8–©Ç`:3Sñ³íò“–âÀ¾ 0õfþ'¬¸È ÒÑ–^ŽôÜs\çIø(éOö7lÜ€=»wîû«ÿü"νèêÀ±(â#ü~rÐHjd½+QB~¯ À'ÿòÏSðª_G"Ê=VÍJZ 8Ê}Åó»óúðÁ%€aê¾¼4`•ŠÇ$ ÂáW1²‘2«p´Y¨*\½ «éÙ훪W›Ì* mM$#ÈÜðiš6Jý'HQcÂfÓ´Ñçˆà·²R€©m<®ÑñZ¤N¾ xþ_«Ñ¾&õ °û<éO0<²´ë¾‡ÿ9؇ÕëNõEi µ"0#uçžì×ÏïÿšÐzÓœ²Ðá~²õ› 8É5,zÚê^~ äz~¼+¨'› €¾ÆiNÁR+Ðk%Œ·P­`5áj³h™Ud´Yv ‚î­M°LŠèÀКmÏý' ÿ?{_çÈUûi+•¶–Ô{OÏô6kÛãe<ÞÆ6Øã³˜›ø6B @œ€Ž~&üàBB¼àl`lÀÆ0˜Á6^0ï³x¦×™nµÔR«´”T¥õýQº¥[¥[‹zzìiÇßï×?I¥ªRI]÷ÜsÏùÎw*J5uÝ4»æ;x<çDWO/b‡óàø ¢§¾Cg½Áá³4ÇWû^בû”s™xú÷õûç>Ήuƒ}˜˜Ðž§ñUŒüÍ¿«¯­bíòXǰ„g—ËЃf’ï¾*<€åÂn?€M22Ë¡nÚa’Œ6d jÅÔ{|ž:S Ô®@/\^ ²Q¹(D zÎ% ظ~”"¦º˜PSzŽr åreŽJnibYB‡# ±!æ!à«‹(çãðDxjYÀ)ªžˆ?ÁàÎkÑyê»ì' ¢ÍžP¼ÞÅߘƌÜ£˜ÀÈú͘˜˜Ðü&{»¼ósjJðXÄXÇYiØ•2°Q àXà1Ëešm#°3óÛí¬K Ø v•€,ãåjô6Ê@™ëÕ¼Gò ÚU=àhÜà54+!ɹ{õ)4† ©+õGËAo' H?÷qN jêré8ž{ð»8ÿŸ¶5ûýo_)€è=€U½$ ù²]ÐF@ŸÝ;‰ßí~°…öÈBÉW4vQ¬zàs•Q¬zðó ÊQqøá®ðóÈëJ•¸Æ:-[ë@‡3‹l­A¯yÙZQ¨TmÞdgîZg³~¾PvÀï©+î=Zf¶Ä¡ƒ+![â z ä¢î*’B?æjaø¹ %{rS>¿ÅBrã9¼Gñ6ˆîóºPç£w€cægê6³€Ñ>úýÖ¬Õxèç·âüw|Z5Ìf1€åô`y f‰OM À, °ê—åB øÃ“{ðà¯~†‡~ÿ‡¶—f-Ç_níµOßåhqÂûîF0ÒlÐÁ{pNÜ¥{Y;€×ëE_w¡hr鸺¿˜8ˆCÞ… ç\e™°"éÛƒÙ‰#iÚ­ AbfY€c5fkI’ñô3{°´”ÆáùED£QœyÆéؼaKé42¹P-¡T%:}5õ9ýšõH@¿.1j RUœ_·Ë¥>§á¬É¨9½¨–›ÿˆZ¾9¢¨W­Ó’$ÁÉÀ9›ŸQª¹À…–Ç:Ì@§Ó¡»öûVûék~œ­ÜÙ|QÃônDxüO@'¸j¥¹‡à·±¾'¯õFÁêùºµk°—2ðûûïÀ†s®²óu[@{,E «Z»^³j@3àXàeõÎÜ~*†GšýæX1€XRD:>…XJD!5 ¹TAFv!½0‰ŒÆR2†L^FQ̩쿢˜E©TA­\@N‚:x.N30hTËÆ,FgM††…ëÒ[óv¨ªÁzÔœ^ø9$É{ô¢Ÿ„)È0.§ ÕZUÃ$0K ByTr2êÎægðœR©¦>?8yô­¸ö’ÏkÖÿ¼ÇyöQ¸‹sšŠc«ÙÝîìOž â¥û5^ÔÁg‘—þˆM[OožËæ]mgío8tŸõй©\‡/þ F<Õ,`Ç+03<Ï£³³SS$T)ñûûîÀ›ÞõiÛß[ŸXŽ*° «C0 Ä ¿ëªó¬à¨jUìÀ@OÑ\®((Ðzœ^ÀìG4äe…ˆB2´ýÎPÎ߸žÍí,>@6D­˜B9Ÿ@¡ ¢*5Zœå³¨egÀÕrää¼2kE>dƒ½qÖý÷¸êM£ÐðÌ@Ïüä¹Ü8žžý½±F·ö—Êuxc ¼t@û›P|`× Û6mk©|æ×ÿ³Þú1 tiS˜VeÀËõ¬¶±êXE@VLÀUá˜AÿŒ<=ŒØ€ôk–`¥ñgT ?ÆJÌ`3;¢Ý({àí٪ɎæºX´`(НX:¤ÔÄ„J öðT³¨ <å¸J ®UJ·_ÚJ5¤RIôŒ_ŠÎÓÞ‡îM€ 5iÜj{ðé{™.»Û¯]O€Þ ‡[R‚±Ã“8òô½è¼à*fp9`å=ú^7ÒdeŽk€VÅ1[Ðé3;㙆ÞXN=9N#€†]F Þ°Vâ „ÝWæ”Á¨$76§Îm<êƒÎ1®t..ÁYV–0¤¶ÀWÊ VLArõàÌ·|®¨RpÃ1Xõ…'Z"ÿ¬Ù?žH ÖRXÚÍèÌÆ±µØó”6%øàO¾“/ЦípX8V°<&àªðÌ$Á*¥"ʵ¦•#ƒÿ¡ßþ¿þõ.ìùããj£J‡Û¯6Øt:p¸•_Œó¸Qu‡áGVmvYrv€«eáàµúµ¼¿9§V]~ø\Š…pz›ì;RÊ\w7÷å}Š )–݈ø] UDü.äÑdúüA yøüAäd'BÞ*®æyËN­Zv+C‘UXSƒYÊÂdÖgV¬Ô‚Àè}M ѽX KÓóMßc°€ùX öÀÎ(絩ÀzNÓÕÓߢ0ùÂï1wà Œ¨-PZÚe¶2ù± à¸öÌ>Š\ÀsÏ¿€Ç~ÿîýÅ/ñ»Ý¿k)/ýŸZ+Ðét©ò\ž†¼WÍÓ¡ÙßE-'4ÆÆëUîÒx¸ÝÍ›ÄÃ5Œ›GÛ®ËÉé^»<-Û8·NosÆŽnºèU¼ µègá ¸3/¶(ë Âý ŠyÌÇSXÓ×ÕVq™qñºè\§I Àî c'~Gƒ£™ý­Œ‚ÕìoÄX€™& 8°‹8sû©†Š#“É@’e¤Š¦^*ÕਕP®:TQ ’·¯–e¸<^õ‘@o(‰F_ÍÉ.¤ ÏC3èÈ^.—᪗Ô×+Aå5:GÓÞÇ™ï¿àƒŠÐÁ3÷ ¦=SÏÇSêýŸŸÅš¾.u?»€™Ak1Ï>þk,&ÐÓ«¤íäòõ@»ë@;Øívb±Ë•¼ºbŸUãØÅæÍ[pöŽsÔ׬8@2ÃÜÜ<’¹ ¥QsH $“Èiˆù,dIDQ®B.*,@¹\·VÝi€ÖÀÓËd èsÒ°Rï•+¸ê%”ên¸ê2J ysBS&†IO?&ta#¦#Õ°P)¿bÍD€bËÌR³Þzº7©Å>P¡ž|VÝÇh¦>°÷ùæyÝ}¨úá¯%m³éséŸ+ƒEÆÀº1M'a)¿„'~þ \öþÏ3% ‚å²Y=ðW**­ÃSù\Õ,$¹‚TVFni!ƒ´WË"‘­¡¸4‹¥ä<$¹‚¦z~ƒ¦[â˜"V Ùv媔ÔôI¿‘tœÜÈÙåþ«PjøºI§¥ªÎÀ|(”x8k2»ù†‹}C—˲êE\õ±\u €|^·êùx=©&Ên·á >¥üà™¸C3û³xýôìã~£cÈüá_ÚäV†aýÈ ÆÀc÷݆KÞóù£ªŒ ‘*Õrc´Ð’þ<ž=âú³ŠXhHeëöàÊ~ÍçF?hÙ€;@_w¯§ ÛÔ} kÀ+äR1d„4J¹,f«ðÔrH òK1dR1W%ƒR¹‚Œ  V‘P-Uã@¿:ØË55÷Žj 8íw¦4ÿì€V–$ ~žo*µ:}Ïš³$Éày/$©¹tªWKê6zöï>émèܤ9§~ö'Ðß°5e w#¶^ü—(IEx}·A.æÔ÷–³þ§ÇÀ;à IDAT ‡ÑÕÕ­!,%óxn÷]8ãb%#@d;³¿UÐh /—@ ÿŽ«.`‰ªÁ?ÑgΖ§ hÆu Ô5଱h–M7sï…²r©‚Zf™Lb>‹š”F¡ ¢"&±”PËÏ5ŒE“±‡j©­ê.ΥȊ›‰„¶b x¾5^R-+"“kNÿn·џh9cê'ês£;Oirô§¾åå;ñ>pë^ù¥_¨ï'@ž k üþž¯ãŒ‹¯2ýywݲi¬¬(À,{ܪ€|¯U 7•U™¬þ¦µÛ t¹®ÕrÕXâ  ‡zUÂN¡´=h…^,T*ùøK¨He}ÝÍ.Π. H§Ó@)¹T†\ᨔËjLC_H4Gú÷´kÈDBfâÈåzËì>Cs,_N ÜÐþ7›¡éÙ¿cÝiÚþvõupËÛ›úPΛªÓ°2kð‚N8ôà¾g0õÌ.œröÅÚï £ÿêa'h¸\7ß,@Wm-€Jºï@çCõFÀNSK½À¢æ†ÀL!¸]@ U,”÷üÚMÊ­_DrúÃÔ¶’T„Tá©d —•``Fà§ drðU EÈ¥2j™IÈEÕœâm˜"Ñ ‰$É𸼪! JÆ=ã—blçÇáßðÆ–c¥nWcF®º~öß|þÑíV_;½ œ qöQS>@»ä ‘‘¼´ÿõøJ©ˆßÞ{k‹Яÿé ù/§àr3fXE€½°i­,©)@ëd„”fßB…çkŠg,G!0¡…ûGÀÒl§i¥žåÇñ>p¼ÅrJÄé퀳hܸ,…œ£.WMcQ("X!+¹PÍL6ê â(—$ȹ5ž²ˆª,ƒ<Áô¬¿ [.ø øžM-ç€éÄô³–kó™É¦ÂS(Ú‡­;ßÓr®è‰o‡8û(óx“ÐÎóuCC˜œœÐx1OìúŽ|üŸ±v@ñà¬Öÿv¤GÃüŸ€¶èa&–Â=wßî¿{Ÿ€’·w»\ͲÙFé+I¯9Ý8·oœÇ¥2]œ_e @‡·¦²iV ÇyT6 Í$ @GK  pu”<Ýð{j(”ê¹¼'¤Zó8 9ûI†Ó ì>»ªÁf7¯ÊŒlï"t{§áJM³œ…\®Áã¨cýy …9ûân¸ÊyÈ0ž…ãIA³ßò–Ç·ÞíÁ¾M-]„XK;€sb`ÍÚ‰¹‡îþ:ÞùÑϰ/ºàr« !“\ÌAÈ—PÌ&‘I¹úž*xžWh?.W#ÿåôø[;ö’§ Ý=*CO– LfMGvYôK,ËMæ§ÍÊúŸW\õ’úH«Õ¬©Ê¦‚-P€=k›12û—?¬\¯n@Íþ¡hNxóg@ˆÑPº'…Æ.€¸çNË«dˆá±-)ÁŸßùuœûæ«5Û–3ûöT€X0ô$&¦g¯Â@Qnð냟XDZ 1¶a£º†b•—Š"!b±I® XÈ!žXDl~ñDÞZ³ñòÉi¤’ äryrJ”»Z–Qmœ³Z É 2%‡z5—Çˤגéõ8³An  (1¯Ç§Ço¹žš‹†êÈU.jö¦Û‡Ó,CI’àô(± :–¢îêP®}~æÆ+Ûùñ–/Í>‡EÊnQ4ƒnó%ŸT+ÍÀ¯¿h€v‚~fײ¦¯ tU‚ÓžÁÁçÇIÛw^‹Ñìo·ЮÀ2«ž@`i¥¨B:À‚Y…óЫËlÔí£ ÉJ@-¿€……‰ …Ê% G&‘ˆK3(Š9HE¢(B.d©|{“5G{vEDÕïDåê9W­Å¸1;ë< 3OGÕ t¨Ç’ó¹œ.ª½¸Rs@þޱó1|ª¶ã®\Ȫ>Ìòõ/íUŸz7bÛÅïS_‡(;ÒÙÌH$ŠÀÐ9jF`¹3¿þõðØFì}þiͶŸ|÷fœ´ýG0ÂJVšuf‰€€àUËPi´ºÁO~;íÂŒ4í°³èÇš ýX³¡¹%ZÎ- žw‚¯¤P,ä‘Ê× Æ÷"“É@H/Á]“0?RH'P”dÔÊæÚú€v€·t}iW=˜€¥"L~*±Z«jdÂææµ‘‡ñ‹>Úrj>v?ÄrkÜ„pB&ƒdb¾yž Þ'•Q …Pô†N»û)A«™ß´Jpx°Å|êW82±6¦eþhõÈÀ§ÿªÔpy”oeÑ/6´æÍ–zè—G˰Ó6ÜêÇÚ(7rX:¶ŸÕrœ¾{p>qe1…LF@¥ T. ‚䦱” —Êð”È«(Íì®_ÁoÙS€¥"L ˆЈõ>†Ï¸Bó;”ó‹¨Ì4)»F,½ýšM;CÑ>œt©²Œ0ô@s–ôölA°ÿDä^d~Ör¥ÃÖ¯_¯i(*Šy—¤"ª¹y”ĪŠù jRÂâaE=8·¹T†·–…(æP/å5ýªµ*jžœþŽObðœ Ñr¤RW‹/þWËõèóòôÚ?íS×þF³¾úýuè¿©g¾‡b>ckpÛñÂzû5êÁ¢˜Çïîù&.ÿ_Q·ÍìÏrÿÛÍÿÓcAÿýV@·-Öë´ÑhdÒÔ/œJ.âG?úoüà‡?ľ½û4n+5eGRu.Wu'§›ƒÏëïS.Îσ:T aíqœ~^Î סÊeùý~p‡ªKÙÏç‚ó¸PóDàj(zúÑÁ7o–Ћ†²?¡³‚vjB^ À¯‡¯g=€&ËoˆÚ¯XvÀU-hê ¥ a U)·8ƒJ`gn¾ž «”Iñ€ò‡vkš|˜­ý7_òI„;{‘“›†KoÈwÕ’ oz3Š{î4Üí¦ ‡GF[äÃý“[ð–?}/Ü^›Êœ ÍþV°ÊÿÓ€¯: R*àСCؽ{7~ðƒ`÷C¿gÆ ÌdÅ^)p|N7‡ Ÿ‡ÇËÃír¡ìŽÀÏs¨;½à½x™ oP)~á½JÎÂ| g@!Ûp ªrX) "ú®£Ïï÷A¬p¸K¨8ü(ðúCÈ—œrŠÇDk—»Xv(bøÑÕÕ Úÿž®jù?ƒÙíæõz5k>Ø©®ýö<b»6íDzßÏU­€å2éçCƒ}Ø«›&öíÁ O=„SϹÔäjÁìvf@ড_ÿ³«Ç .ÔL0‘H`÷îݘžžÆÐÐ.x=05;!µ¨Ö¢KGŸ“4ù$ ,A¹\}Ù¨Ä$eörh˜ÒŒ=–`h‡·ª´'ó†@îÎãBÕÓ‰ §Œ¢§¾‚’+ÎãV)Å^w]¥;¸0ÆN¹Þž-jíÏSÇҡݨ䎠Ex“@ÃúK$4³ÿ¶K?¬"Öà7órH|$Ú݇®áS0¿ÿæq€vÒ…¬”à}w~ §žs©m÷ÿh”~ì®ÿi¬º,€]„Ãa• h³©ä"¦fç0¿°ˆŒ -d0d‡+¬À¢˜Å’‡\È"“«7:ãH‡”ÙÖáâÔ`¤žÝGJekåB£‘¨6²Nrü.WÓ6œÖã#‡Àëqix„™(ü;Ì<#°Ž¡CíЋLö”Y{ì”G4ƒ¿Xv ØXûӃЉé¦[Šöaë¥c:ëÆ3?ð–·ªX™lÀààš–ŽÂÿöÌN¾„­'°+õXñ°WòK{z*ðªñôn„RUKz ]Ý=èêî1m"‹)¤²U®JÉ\ÓÓ3jëp1ŸElþb±2K •&¬‡>­Fyµ,£ìâP¯–¬À’Zkà t àt0U‡ýœ£¥Ÿðä²Â(ô¸š•ŽçF©TQ+Õjƒ©(·ÄC€V!PåüÊQ+‰myD#gý9"k”Æe„µWÝ)§0ú¤ àp{[ AF,k4ø6ž÷nMÞŸÀh½O@b!´!èZ«M .'ÐòžÛáukZ2¿üÑw0ôé/µÝý—,ÚÉÿæT`ò¨ÿŽ«Æ`ͦ,=ÐŒ€@Ö€5úîµ%àÜgiÖgúµZ<¶€ÅØ4„tR ]˜?‚|j!ÝÂü#FÃét ZUTŽˆº®ÇãÕ(è8x #'3驳&£F}åBU‘,'p*AÏP Iòª„ Z¹ z5Æ!ª¹X#úO„KëNNãs|ÛÞþ¹–3,=ÿc%ÀêtÀëv(7 [;BìkŠnðÁNœsŵà-rýš«´˜+FN¾/pìÎüú×£££-àá_Þ‰?ÿËO£c [³Ý*úo4ðÍØzèÇÀªçÐ03T²,·x@«! £¦GÛ9¸o ‘nmÛh}Z/“N¢Tª (fQ*W‘OÍBHÌ žHB*ä‘ÉXŠM —IKJÙl½ZÒòØ=ØÙ¨0Rûm6ùlP‡­HAÕ¤ÆýR-W0vî»5*=P]xåôê5¨_®ÔU/ #–5Qõv¾|@Ëz°“Õ0Nñs€kød"j•àryôsžç[R‚ÉÄ<ÿõ±î=­ H+]ý§ú±x«Æ /ÜÌPÉ•z ÿÙˆx4°Ó=Xó\ Š¡*'hŽ—jÇ+b8êÂÍ”%Yf®RÉE<ø»‡±´¸§ÇÞ„?BÐïÇë‡ËÍ5¥·\^ðnPä%÷Nëö˜G +ñPo¨^JIc[ÔÅÌË€¼¸ÅBi!ƒŠ˜D¥˜†˜š…”[„ è®e‘͉àù¬ÚƒÀ.©Lãg\ŠSÞö9¬Ý|&-G?'©gÿ’,k]@ÓñºØ;Ù üq|ç\qms?ö‘Ý>=èmü~Æ@ò†z±fËy˜ŸxF%$Ùm&bælÞ²{žzJ³í§w|¯¿°•`6ÀÍ*ÿëÙß(`¦p¬°"À·Œ -Wjxü±Gqûí·áþ_ïné›óÁëq¡êàð:™,A·Ç§›C BÐÏ©:@¾a¾Š:ß §7„°Ï ¿?€ŠÓ¯2?^eMë t€ãܨ{»ÁsCAN³:–­Åi½@píäe`í&c]AAHÃS+hj ¤äAòY”Ëe”ó dRóð»qÆ{¯FxäLòÜrâyäæ•Fz#@<!“ÑÌþÛ.|'ø@Ô”ÙG×?°>=óÓÙ~9RSOªÍGÛ™í ë°G÷9/<ý8ö¿ð4NÙ¶M³Ýî,¯ÿþz–e¬b¬Z€c…—U¨P(à©§ŸÃ}¿¸ß½ýö–Ȭ*¥¢Úøån(LŒ“  ÀírÁT2^_^_^Î>¤Ðk; ÛëX£ï‹"ä­ÃíWŒ‹Ûß%TZq…Àyšÿ _ ©¨üs*ºVã€RGDuµµ¸ávÜòù?Þ ‰Ë Ò¹tÞŸvbÛ[>e:ëÓ0ø¬A4©Õ]ƒ›à‰n€Le€ögþ–XÀ–­ùpQÌãW?úNÙöMu›ÑÀ·Ãü£aÆþ#°[ p¬°"à†ë¯w ¡ÿdfµò¢Œ©‰—àóùpÕUW!‹avv±X ‹)b.£;¼3½øJ°Uã#æÑpÐä{ "¢š4b Eàõ…pä4tcoHañy8~ŸN_Ê®D¼exJ Óɇá*ÈåëBw äêDG´³%bŸ¿„|£ÓH²ŒÅxS·ï„ïG÷ÚV kÖg­÷ÉòÇhæšÞI ͬ¯_: ­ío‘ÿùÝwâC÷OG•ßg¹¼À÷ßN@¯ |¬ð²2=®:®¸â æ{¤8èàÁƒˆÇ b 8°¿"Ä‘É`IÈ#ÓHÃÑ,@ ÙˆHaUªU8k²ÊüšB¢dù4³´a!`¥^Ëo¥Û„“@éš'Xj=dÙ¸ò~Þ¢ø3÷¤¶âåLMNª×éæ|8ÿOÿ¦eý`×?² ü^Æ8zêÅ8üÄšp´ÏóèëéÔ,iD1ü×wð©kþžy­íðþ¨¿Fê?F1}-À±ÂËjTÕ_ƒ"ˆþþ>tuk«Ôh‹šR(—JH- Š$15=dü2™ Ï'ŒM!¾°€’Žò«´D€ç5º€4xžùÍi 0´Á û‘}ˆñ& ^ݘ šFªr¹Ú6“¯tŸ†áSߤ¹iåÅýfþ¨ÙO¢n@Þë…$Ëš²ýâw#ЩTõ>0›õé×v±î”7#óÐò„CžŽi¾üæÞïâ½ù{x=öf£º;@#@«&@Ã,_©§ËÒƒŸU©O†/º{(ÿ„suÇÐÿ¬Dì¦fލ,À¹ùy¤<AÍËÈeRÈåò¥‚:  ÈkÚPèéÁ*CÐ¥€P-h:ðŠgÂk¨r­?¹×ã(í~Õò»¸PÂ)$Y½¯Çš³ù‹ñ˜Æìxû5-7ëþG¾©(2Å\ˆ'ÀZûëq4³>Àžù&Wcø¤ qðI¥Jðhfú9«£ðÄKûðÐ/ˆ·ýÙ;4×a4ûëc+zQF³¿Ñ6õs^m€ž cä èµic`”{¦-vïÀZô¬Uߣƒ\¤|‚F©TF¡P@"‘@üÈAP…Bçç·HÓí´]:6 àÕС—# Ú´üÚ@Éÿë½-Q¨TujÿÀº1l=}§æ<å\鉇¿C½ÅH² ¹\׬ýOyýè^»‰Iè1k‰Ffÿvf}‚¬Dºz5U‚ËY÷³äÌX…z×--ÀHòÛHõ°—þ3}«Ò0Õž×ç•CêÉAF´`Œ‚5,^‚Qô›±-GVZOª8KŰxxAP…ã±#¨SŠÁs(ŠYH¢"áU-˺Ùß5§W¥­š~N’T`jýÀÒ¢¶ÑÆ©—ü%<¡>ͶéGo‡\®7~¶œÛÒbL³ö?çÊ0œå\~2è—3óÓ8iÇeJJp™,@©¦«§¿…ôÄ#»p`ß^l×2A­Òvƒ~zœÙìX{+A|Eb,ÀL.ÜNa# k;aé B¬›w×Á÷õ£§¯¿EU–ðré| •‚¢&¼”Î@ˆB:A)ŸBZH#Û‡LFP„Κ §Ç¯zKúVà,9qä†EûpÞŸÿ#κôݨ 9HÓÉ8æž¿_m?…BAÃæ IÑŽŸ{…ºöÚo‚ª‡Ñà' ˜üº×£{`sÓû5ûULÀí@ÿà:L¼´OsÎ;oý|îËß\ñÈ?ydÝëvTYX‰ò€7nÎgÈÒÿÏ>³ßýîwqàÐ:ç…Ëåïõ¢ê ² ìþCõ¬>Ú`IJ’PÝÛˆ@—ÂX +]lÈ̦HÎO¡RH"“ÉAÎ- yä%å2ŠK³¨U$¥RQ–”‹B2ônÄë/{?ÎzëÇÀûüšÁš—•Ù¿ )ì$ý 'ЯýϽⳚoÆå7z ˜ÏúV’܃ÛÞŽ¹éRγ̚ý²`th°Åìºÿn\ýW‹á±M¶óþFª?¬‰ÎjöV©àõ¸TÂŽ¢˜W¿øb®†îù>¾õíoãé=O/KŒtxžWAxžWY<Ï#ì€/‚Ë×…®@`ê|·ª‰D.Œˆß.ؿ߇¯ =!Jney@^")­7fLAú‘>WG´Qm-½^j¼’_€TÈC.Uà*ÁÌô¤ZK[Š¡¸4«T)8óüâä ß‹hwÓå§«»VÀÜó÷«ê̬™¿eíö%YÏΠ]}å7øí0"Y†`Ó¦ x±Q%¸… •˜çy j2©TÞÿ\ý××B#}³Ê?Ö#+ @_¹^+ÀqéXÌöwÞyWK¦]‚αÔ ‚àyœ¿^|¼¡ÀwÁç4„Iƒà‚]à¼^„ÃaµÝ¸ÛßW‡ÛßlÔíñGl ’²·—9+’ãçtö£C=| "›ØÏ<ü_(šX—ǧò8xJ³öýU7hΡÿl³u>ù.ô# Ú(Íþª\9׃M§_ЧwÝÞ<÷QT°R‚·çL`UóoFûµó¨/Z•€™&  ¸©§œr zûú d ˜™| S³óÈ,% 6 ­LT{r¢tÌ»üÒżò}ŽÂXÆaû]?·Ë—7§'ÐB)öùðxÜà:Ö€s;Qó„Fàö+©PŸ?ˆJ$‚Š«C-”23•üŽ<ýSͶj¹¨ü4ƒaëÙoÂ:“&³¿ÝYŸ¸²Œ)Å€·¿{n*Mu yÎJ &æðÀý?ÇŸ^~™ºÍhæìÍþz˜e¿Ôï¾cV8嬸øâ‹´®ƒâ8rä0°°° 2ãñ82y©á(‘ï@(¬!áК4K@Ûvœ¦ë±Ò„r®¦á2×õ[Üœ¾@ÖŸt..yÏèZ»E3h_|ô^ˆÙV#F{AP·AœwÅg4û²f{£ üv"ýÌÀ«®·7Ôƒu'^€C{hÙ÷h⬔à÷¾ýe\ú¦ËàìUüÙ™ýÍÞÓwÖë°p\zV¨Š‹@#-¥ÿQúûûÐ߯¼§˜Šph2E.—C*•ƒSHÄf‘ZJczz s3XXˆ«çS~@ d(Óª;áP3PH· ¾,hÞ£)ÆeYB±Å'^ Q.~¥<•H$Šó¯º'í|:ÃÍu=1“ø1dIbn‘”àÌá¦ÒïÆíoÀ¦­§kfx+þ¾Ob úH? £x ï®cüô‹qhÏGÍÐW >§ ^?½ç)Ìì} 'œºÃTÛXþÚŸ• °³8.=3M@»` ~@uz°¹a}Ï:}|J޼ô’‹‹˜›;‚Äb3ÓÓH&æÍf•œ}.ÝT†Âøc©ï¨´a‡A¿_½ZÒtîDš’eµEwµ„B©ŽÕòËåiˆœ5…ˆ“/HêMiä©tvvbû›?†7½ëÓ-ï“{èÑ»OÇ «6«å"2‚ Yû_òž˜Ïö€v°Ûøô6Ȭ¯Ÿý‰HËÐØ& ŽlѤ—ÃhÑ Ø8†_lVVJE¯yø IDATüÇ7ÿ _ýæÓn?V%¿Vô¾íbUzV,@½!0c8`óÖíØ¬;IfR ’\AlþÒ “˜^È¡šÅìì æOCCUa-¸É„J.äÒ=^’†H×(×ã€7ìÐè “:W>”ÃÕ_Ø…ŽN­æ!ŸST‰¦ÿ¨Ý™Y†€žýÉÚßô@—+Æ>VêÓh½Of}zͯÉÀl:ýªX©ú€88©ñ~ö³ŸáÆŠoPÏY0¢ý‘ÛŒ¼÷åUÈçsúLÝ#FÛÛé( 4éœb wõ"ÜÈÕÖ—ž#@ÈA³ûŸÀ|²€üÒ<ÒB±ÉçÒMæE&´`H€ÇÕ¬hçX+Z¾Óy—=½ýê ¤ ¦Ÿÿb±È"ƒŸ^г?Çqéÿú;ÍçÐçÖÃlðÓF E‡‘ÖÀ×wò€N߉=¿¾M‰å¬P}ÏóX³‡§›eÞ%)ï|ëßpíõÿWÝfGëÏl–7b²°*³ú¢+Øù!X°ê(lÄl‡áåõC[ÎÒôßš7÷R¦ˆR.†d¶‚ºœFüð!ÌÍÏ#+¤‘OÍ ;¢.iÕàåªk¾_ §¼îíÊuêRm´Ñs¿¹ ŽZó “O{ôì¿í¼·`póYšó蟳`Õ<Õ*Õ§ŸùõºŒzlÚ~)ž|ð‡Êµ­0¼®_càž{~Š¿úø§ÔB43ןµö§ïo³ ®z& ô%ÁBxö‰ßàk_ûg<öØãày/"‘ü¡(ÂAápáp~¿ápP¡Žüø!D£a}ên?x¯WÓU86× Ôƒ6f"‘äFv{}p{Ç0Ô%?Kû]+õFNÌ@&“ÁRlùBÉ#ÕÞb>‹|.‡¢$›ªÓáÓ/~7ºÍ;ÛìýÃXJÑlóò¼jä†)íö¾þª,»fÚˆz" Í€g ~ÖìOÎsú9á…?<€b>³b^@_o/³JðW÷Ý‹+ßyµiÅÑÒÖN @´\•€ˆ o»ýv<÷ü^ÍM¨'fØÇáq)Z~zF` @$FGHa‚G¢pððûGÂðr"‘0|þ<þNð¼WUˆ1µ¥oäÞ¡Í耓ÎlþT¤[H%Ô‚x"qé°ZC<üRɄҼ¤¬Ü¼õjÓßC®üºÚDÝN”~FàÀÁ¦ãø);°a“ñÚßì»ë×övf{;ë}=ÈïéîÇæñ“ð֭̓ÄÚê%ÈH ÞrË-øË\mZñgù§ß7ZÎêcv5W¥ðÌ3Ïàλî·¾ù­eð•¤ôN;c‡i±Ïr"ý¬íF¬Å–cGÀÊjI’„m§žŠÏýŸÏAH§±ÿ~Ä LMNB2żJ¿šÊ9E1û²· §©Æú¦v@‹‰ú¼nµù¨Ë€÷Á€—ó¨ÆDO'uDááöwªâHW/"Ð×XFà©ûþ˜ƒP<€øbSt¬»w ¶n?ŸyN³™žì:¯o4ã[õÙýkÇÔ”àÑÖÐÏGF†5)A¸å?þ§±ÃôÍbíļV%À [¶Œ·0É#aNO+i¸}û÷cfzñDé¥%‚¹\W9ÊU@Ì5 '÷_‰²Ëe¥©aþ9.Íw,ÅE5b¢+x^Ž¢££]ñ1\xÕgZgüàã˜<¸¿É;@+ÇA¿ö_òë ½ =ŒÜ|³Áoæê›­÷Œ Á¶óÿsÓ_P_¯D¥àèèh‹¸ïg÷àоgpúi§j¶Û‰ò›1—“ÿWÏqÓë6nÜ„H÷I%“ÁrŸ—ÐW Šb·Ür N?í_ÕmfÕ}V ,cñªÈØéaÖ.Šì·aÃuÛ¹;Î`’'„"phß3˜9¼€¥d 3ÓS˜;<Ùù$Ä|™¥2¹¢ê1У(fQ¤¶‘Y“¾÷èÎGŠˆhÓÛ Ç‘Ž¾%LJ‹Œ…®G Óå*˜4âP´\þA\ùîÂb“âǾçžÔlãy^ ”ʵÃ5´õB¦1±3˳`á¬×úV³>p4жž‚Gw+`%z z½^Œ·£¿{ûm¸æo¯Á†õ#†÷p;Õz£±ª³v„@ePY¹?VJf†#â6ŒŸŠÓOkåHe ŸŽ!•)Bʧ1;=‰©éi,.&±”Œazzó‡§ZÈ<,é-„.¬?ÎåñªÆƒôL”kJëñH$¬%^Iõ•«aÔju5£±é´‹ñæ«>Žîu㦿ï#wµe™Iª K(‰¨Ï­Ä9h°f}£Ùß*·¯‡ÙÌOge6Ÿþ<ºû~æA¾vµô…+¥"¾ñõ¯â+_ýšºÍh0m§#0RÀZ•€•$Év~ÔìG#¯YÚFà=ß;"¸yëvÍû4[pfò%LMM£^Lá¥Ãi$gŸG|aÙ¼Œ|:ÖU˜¦“ç—W©h¬Ó× *t£R¹ QÌ¡^Ê£îä0¼åLìü“«±±‘>¤—¾kñ³ï¾ž§¿1\xåªÒ¿EZ…&œ¦0‰Ùà×t²õ¨CÍøF³?+hv4Ocxt }k†ŸŸUÞ3Üíj°: ßyç]øð‡?Œ­[·2'2«ß.pÕUš)™Ä»vý^¯Ñh<Ï#Ü7†žu`…¼f•fÚa ²0<¶ Ãc цhꪵ馚°˜Áôô4â‰$*ÙØ™™ÁüÜ,$1«zýà'³~N”°v]/Þò×àœ‹VŸTq@Î-¢Tª€ãÜð†´}Œ\k‡œÄo¾cãótžJµ© ÀÅ¡Z.1—i51ðM# àí¬ímpÏ(È´fŒÖüdÖ§>MÜÚ~Æ9¸ïŘ¹övc^¯—©J%ñÕ¯~·Ür sàÁ,^ÀòVm5 h«F{ÿýã»ñoÿú5CPWW7"‘0‘:£Q•‰F‰DD‰DàëèA0DGÐ߀׉Œ? ÙS€‹.L{,8ѨJÂæÍ8ãuÍ÷i×TH.àðá¤ã3¦¦§Qs(•«Øqáå¸èò«áö6-ﮃ*ÔBz™ç¸ç¿¾ùÃSšæ$­ß× ©ÊöÒí}ç]tY+%×dv·ró­‚|Fë|»ËZ®ûÄí¯Ão~y·é n'@ÇOÇ#?¬ùÜ[o½ýØ'°}Ûɶ¾]€åà¸òh% ;ñ€C‡ák_ûš-i°T*Ù¶|á(9”`—çèèF8E$Ü¡2#‘"á0¢Ñ(ÀGF Gàó4£t=À6´Òp¤»‘î~ E˜žÙ–2Et†}¦üyý22Ÿÿ~s!£x…$IšÔ §~÷SœwÑe–ÜìZõ_#~Uvü¦Fôl±¤ô€ÚˆéƒJãO+ßn< £»w ’‰yÍñÿtÓçqç]?´\ó·³MU‚¦™€gŸ}øÀpÇÝyL›{ªR^G 7çC8Pj¢ˆF"ðBˆ6¨ÄCýpðˆD"à‚=è ûPu4Ö÷xÞš'ŒÎ°O³Î%ƒßŠNL w§ÉãìäK¸ýKeZC A•íÚ<ù›âà•Rc v èfÑ}À<­gìcA¯ÖK^Ÿ{îëT´ôc='8õä°k—ÖÜó³ûðÀ/ïÃe—]Övžß.1hUeȺV.WMã½}}xûÛÞ†7½éMØ·?AÀÌô4¦¦§‘UÎÛ“µó+‘w¯”ŠH¥ŠH¥’8Š›¾}KÜ|®~-o¶¶Z»ÞÀÙòëAŒ7^ñAôm¶è4Œf}+F=è?«GŸþ½õ›NÔ€•Èʽ°~ýzMÇ$¸ùË_Â[ßò&lݺ•éØ%± ‚VUÀn'ÓŠN0ÄŠ Dö)WjjûpÛ‰swœ¡Ù‰™éILOÏ`zzJ£*L<Z5hš´_òy®‰Àó^Ôœ^ø9 ¥:ªeb.C5íÔz&@«gdäȇ:Xöþñ·¸åæ¿ÇÞ矆›ó!Âè@½Zjí³È¸hT=ôé-¢˜ÇÝwÜŒ»ï¸ëÇOÃÉgìÄÖÓv wÝ„#Qôô5Yˆ¬oTÔ¶ê¶B$Üì²|´1½0>>Ž™Ãóšÿ[*•ħ>õ)ÜwÿÌ×÷f€~b´Óä¸òŒ'Y0J‹ØešYÐ 6¨”a=I(™ˆ¡M!™Îáà½8<;ƒù…ELOìÃÌáré–^|ô "³© (ƒ=»¤íÔK@N¢>¬×ÿ“$©”±7±û§ßÆ÷¿órituu«Ûëº žÇ¥0üXK³X@¤KYç[eW&öíÁľ=¸û%v°åÄ“ñåÿ|€ý2aèu¾~ðëÓ°V3?y½½ÍßÊj`/§F@/ »ví·¾ù |ø#`Ÿ ˜{V8®<£>szÈÐh-ddŒÒ)V…„"Ã@­íÖ“„ì߇#³3jÁÄÄ$É%ˆÙ$SYriæ 2 ¸¨êÂps>l?ó\|òe?3=ÝÒé—ý¹Êbt3®#«%Dºz‰„±°·¯¨”ŠÈ¤—P‘‹š, ;ù|;i=»3¿þ½Œ  \£µúÑÎüú8::Š……x‹á¼öÚÿ-[Æqþ; ï×v=€We €¸5fä»Ü+ª09‡hC°yË86oiòí QHSXXÌ@”*HÇ”‚ù¹ÃX\LaòÐ>f ]¬ÙˆþÝçñú7¾Ãt?³‚|¶ÞÓ Fƒi ÞÄÈÈ0$IBN” æ2Ë ^Ú™ýiŽ„Õ:ßhÖ§÷Z÷›;2ƒ·2nW*@?ß¶íTìÚµKsM¢˜ÇûÞ÷^ìÞ½[ã‹€,ËðûýÇ—@¯½Ì‹)³š«h”[5ò¬Y4×kR3 ïèÂp Á&ܲ ç6ÞÓ3ìÛ‹Ôáq$UÂüäs˜›;‚ŒV%½2¹¢êÆw÷®Áû?ô׸ü}×jÖÂróÕÁP3ÃH`T’$5^Á4„äâÐÓÅ£§+/ÏC*ÕËå[D2i´3è­¶åöõøíÏïÄõ×~¥š Á`~_ƒVÍBÌe°sç­Ÿ·‚ú*½Ó¶oÇž§žÒ|ÎÜÜÞøÆ7â»ÿy§£–ïÅè"G‹•‹Ð]ML|“ýû÷Û*˜¬ƒ(FÇYÑ/iØ© ¬úýºyü !5ü…ºÕ‹`óéoÀð蘺íŸzöEx§3ŒâÒ,’‰9,ÌͨHt|‚ Ù‹ Õ pÖd”ªK4R'@‚R4$Kzº:4܇P´ý»Ï£3ln=é™Þ ¬ßÌÝÿç›>ƒ[¾ýoj.—n¾çæ|ØvÚvæq+Á Ô/Ö ®Ó €‰‰ \þÖ7ã›ßüw\þ¶?°ü€•°Xñ,€U~}zzöïÕðìäGÍ– 4Œ¼–•ÕK<›õ í¡XF@³(Âá®^¸C½pÀÚõ'´î Ã¯{N>û -Á2¹¬Ô,Ʀ!¤“ȈK‡1»E>5ƒ¢˜E6›…(ŠŠˆhÃX˜Q„¦fÀNù½á²+ð‰øZƒÚ̆~f7SV¶;ã@"v×}â]-œ|@ø8yë¸æ{µ3¨— €mÛ¶©2v4R©$®¼òJüÅ_ü>÷¹ÏaxD1òíxf8.=€@H)Ž±Ê“‹b»wïÖ»¥ÀfÁ>«OÞ£h£.Cízú## ßOýM X“ú`Y"DºûÑ7Ðo:à ÉHR¥R…B‰#!ÄÔ ’¹:ò©É9¤—]@Z3Àåñ©â!¡h>zÍçð'W}¨åÚèµ¼ÕlO¾w;3~€æc |ù†¿Fl~ƒƒƒª „¢è퉂÷z™m9" vf~ýë;ÎÆc=ÎŒ›|ï{ßÃ/ù.¿üOðþ~gž±ÝÒ°£t\zÁ@Ó*™å˜à¶ÛoÇÇ>ö1Ûk#«% »žƒ˜€‘7X{€uÖ¾fÇÐŽ°¡~¦>eÛ6Kƒ±›FQÌ*•‹‚€º´„/{"ÝýÌ|½Ñs=Xé:«œ>y_.)Ž› ¡Ëså ìÎüú×<Ïãœ×=O>Á¼çS©$n½õVÜzë­èêêÆ¶m§â½ï}/Þõ®whõì(—@„R”±J_ìyê)ìÚõ5ebǰâQ·kDìàh¼ýëv<ý€1«:4„´‘ ÷ѹ ô ô«Kï¯?Ö fÆÌNtŸ~tÖK¶0`Ö_©NB^·;vœ©©©ŽT*‰]»vaË–-ªXÎ}¹’Àò ‘¸áúëÛÒ{þ̵ŸA*¹ÀØ a¶~F§·›—õ£[Y`µŽ¦or£â£cÌI;Ð £ü»‘1±cdh°®ßè‘u,븚ƒ3uÛéG»Ï&Àú|‚ÑÑQ\|ñÅD dQÈý¸ÀJ`Å •±F´ýàæ|ØóÔSøú×…UÖÀòôûÐ0² úãìZ\:>@þX ½#è׺v þx»î³]XÍäf0ú>,Ãgv¼Õwñrz{{™no;UFÑÿå>§ÏIoçyÛ¶mÃŽgã´íÛ188¨arêa–x9°¢D –z $PxÓM7á„“NÅ;ÿü æY«kŰ³/ #÷ßÊ+° °Šè“Ññí4<]X®¹•+O?Ú9¿ÑþcC½øâ?ÿ‡ú:™ˆ!±˜B!›DA*##ˆÇf!TÊŠd¼$fÔÙs%£ÿ-®?ã{S‘+ðÔ‹Èä ˆÍÍBdE…¼€X,!F&“YVL€@,ÙF ¯&Å<Î8û<|êW÷1šÐV€€ÎØ Å<®¼òJ|á‹_Â?z ">s^¿]À,Xh´YNÖHqØoÀn°p9³9Ëý¶Š!°< – ÷e t;3¼‘Ñ1;žþÝŒ oÑ­yôõ€öº·o;™yºÌüÈ‘ÃJ˜š©Ä<ÏÅ æ2(Jò¢ ±Á:Òz#¯€õÞiÛ·ãÞ»¤–»“k0òVàŸün¸þzÍX€nùg¯ý4îûÅÏð7ü£¦ ‚ ]Àl9`tn»ŒAz›YšÐ.ŒÙJ¸õF«mÇÕ7ûÌv×z£ßüæF$.=ŒŒ?ý>Ñ 0J+Š‘Èç•o’$aúp B*!Wª2¦¦§åæ’FY˜ñÆqÛ­·¶h]˜yF8®=€®¿Þqâ‰'ÖI:¤#ðÈÃã’K.ÆúMã¸ü­oÆŽ³ÏÆÈÈø@ÝÑtu·JU´Shå!Xy€}¡Ù²€ÖŒÌÚn†vƒŒfû´3øÍ²fçjgƧ_³ Œ–•ÉzMŒМ¹é¾¬sÑ^ÙŸžù­âT«2@ðâ‹/j8¥¢˜·$јxi¾ró>õu DxžG´³›6nÄÀÀFFFÐßß‘‘ô Ÿ€ž9YÈŠ8dÆ$`¥ ­Œ +C`‡Dt¬ƒ~V°Š7Ø™ùíÎøf°jc‡(F`F:32F÷ U¶¢·CU øÂ¿„Ï^ûiõu*•TƒÛ•ÕżFÂÊ(Ó122ŒÑÑQôööbdtýýؼy üÁ„C~•—M`•y0òô7_;Æ€¾ñÍj X³§ÙšßnàÏ.Œ\y£çíÌö乌\{£Y°·ë˜1IÍ&ÖkÖöW] €à³×~ÚqÝu×Õoºé&uYx=Ë3VÅ<^|ñE&‹È{“#kÄðÈúûú0<<‚‘Íè2ý°êÚ]°žyf"íãì<’ϳƒ•\ßÓ`ý–Vk}šóÁòæ¬bHízúçú÷YÆHÎåx+‰c*rÓM79 ««»NÜ:@ÈBä‹/A¿ßJ€–÷€=&ûbͺQlZ?Œ¾þ~e¹1<¬‰G¸=-3‘Ñàogi@žë=£Öë®Ý×Fçj'.°ÜAo´ÝjÖ§_ÛhV€ÙR‘u¼Ñ¹Û9îåÀË¢”J%5A2ÈéÁ®*ùjwI’Ôí<ÏsuÞ¹¹9ÌÍÍáÉÇiy/*^Dg/:#A atd놆ÑÝ;ˆ ýè; ðµüv ]Ï€5­$µìäðÛüÓשìV>À:¢o´Ö·šéÍf}£ó×ú÷ ¬\}£Ánõ`\ h%·¿\¼l’`À Î{ÝëêOïyÚp†'šú@kwZkŸ6diA»™‡vA®É¨!A Dÿà:ŒŒŒbxm?º×¬ÇðÚ>ŒŽŽ"íCW‡ˆÙ³†•gÀüì6¢üGÖõ°ºUJÏhð›øŒÜký6;ëmÖ{í°HÎo”y2»&£j@¹\¿‚k‚—]°Áüí5×Ôã Ø·?f¦gÚêÿ§7¬V`„‰H iMe—!QÌcâ¥}˜xi_Ë{n·H$Špȇp$‚®ž~ cxXñ"¢cØ:Öpßú€5ËZ‘ŽVúó/7ŠogЛE÷­uf)ÝvbFÛbvbí,MôA@Õãu®€å¦ð²_¹ùfÓ ÂÏßxcýÀþý˜™E¡P@|a©À‚™q Ù‰zÏ¡««[õ*Üœ¯±ÿÊ.7*¥"’‰"’ ë}{û±v²ÌèêêÂÚuë0::ŠþÁð>?º:#pZ ‘ ï ³œ<ËÙÕ gíÏ‚•ûL¿ÇÂrßcíg4Û³®¯€@–e8ÜÍŸÜ‹<§ìË­7ðŠ+X•_wÝuõX,†L&ƒ©éé¶½ Õ8è'tf’E0Zr+$æX˜Ãž'kyÄ#"‘ü¡(†Ö­ÃðȺûÖ¢¯§ ë7cppÞ†˜©QöÁì=;ëw#˜Å<¬{4Ìfuú}ú9k€Ù‰yVç·òBôÇÚ‰xÝÍÛÿXÝcǵ°É2˜áºë®«ïß¿ñD饥†Ú=/‚ŽG,m8H3P²bLŽ•'¡G<ù8{?ŽbÝÐ:¬Âðð0"ÑNlÞ8†Á!t÷ à÷# 3ãG3ËígfÕjvm‡¼cv^ýñÇÚ0¢Óåõ·°sÿ[aU;°ú‘h/bv.ŽÉƒûÛžÕiC°ãäI”“_ŽxDIjÆ#ô*ºýy(T–ƒCX³f-Ö ö¢pT£^l—ùÈ2v‚|FÇjàË*•GÃhð²fqÖq¬ë_®  ú8'|+ÄxÕ+Øõ"¦§§13;‹ôÒ$IÂÂBÜ6™‰ÞG?Ðâ€Ö8ËxÍØûüÓ†ûªñˆ¡5èêÀÚuë°~ýz†‰Dø€ÞÃÂ)úÑv"öôûV¾vèÀ¬Ï·ë¬„ × Áó<¼^ƒvN™IDATïŠ²× €-X‰Ïßxc}zjJõ"æO!¾¸´,ʳQ°œNÅ Ðñš‘%”¤cçI4ã­ïABaôt)ñˆ‘‘a¬[7„5kG0Ð׉¡±qlX×ÝRÐeæ®›=§7ÛÏŽ‘0ºýõ˜Íäíz¬ÏªÑ´<žoª¯Txͬìè!/"#‹A’$BÆvÐ’6&t<ÂÍù ŠyuIAbµ¬4qrpΪj,Xç[ ã•X ñˆV¹¾þ~…144„ërÑ®„C~ƒ¡–ò\3C`æ °Ž³ÚO«Ï2ÚÇnœ‚ìwpbÊð÷S–`+UDðšx™ÐN,"žH`jrÒv°R¥¥%uùP+‰ óéT¬  v"݆hJö±)욘˜hyO_¯Ñbxl†‡‡•eGïlÂðȘéz¾t›Õl®?Öh9±€ÞO(“Óšq€¥Œ¨þ.}”.¢çW$¼fŽ´‹ˆÇ㘧 ²„ $É¥Æ èYž¦UÐîXÌó¼Ú_4à ûK’¬¾G—c]¯¡`sß®®n ctdDñ"ÖaxdÃCÇ|èîî+Ѓžõ’‚X´ZÐûÒô>v=˜9°ñùY”Øi! @iI‡á÷ûWÔý€±"¯áøÀço¼±žh,12™ ¦¦¦B+,aÖ"ÌåQn0=õ¼å§v& â.wÙ]†Wt<"ÚÙ‰¾Þ^ mÂèÐU?bíÚuèêîYvÐÐ*-ht åJ ÿïæ›ñè#hzûöíÃÂBo|㥈tõÁÇ9‡Wlö^3ÿã@–‰DB&ƒB¡€Œ @’$µ»0«Ë0Óx4ŒÏóÊ5ðžæMïåyÈ’AÔcôFé•2n·áukÔxD¤«ã›ÆÐ?8Œþ>5A ;1»‚rEQúÑþ<ð@Ëy~ûÛÝØ±ãl Áï÷à ãK_\¹Á¼f^ƒÄ‹( H$˜ÅÉ ‰Š;jÞ¢¼ÕÔµ’ÚrœPYiÈ’¤¾O74•$ù˜Æ#¬ÐÕÕ­‰G aæ-èéŠbdd##ÃkÛ(WÝ‚{~úüÓ¿¿ßH8¬á™ ÒKKعs'EJÜãZò× Àkhú¥†$Ë( %©ÅІ@—LJj¹—G! x=ÚÛ’÷z5Ÿ@Í¢¨úÿÇ@`Æ.ôñˆÞ¾>ŒoÙ‚¾¾~D£Ú–yÏ<ó {ì1ÜsϽH¥’8mûvµw !“Á¦‰*Mw#‘HÛÝ·ìà5ðŽ þöškê¤IG<ÇRº!«Ý˜íYðûý( py|-F€«,V¢4¤pŒ,W–›MY š8Ë@у_Ï\³vÁ€wE#þ,¼f^Ã+‚/|ñKõäb\Ó C’$u¦gå»ÍêáÍ›4$IÂR:­z‚ ¨iPàå‰GAìØq¶áµŽŒŒ¬x°Ï¯€×pÜâºë®«gH 2“Q—€µ1 ¡Ÿ]ÍøöUƒOŠÇˆq±±-Z«¿ŽÿßÞë aþß `4ÆIÞSF:ò <1=§6.8è"5@ 5êÿ-”„é.×^ÒÓ÷¢(Ð4M²¸d ¯U[Û‰s8žÎÉ=!„$ƒ5õNÿk··d”e«ÍÛu6XïKüý¸CUu"‚Ë}k¡Û «b“}bÆÖçØ—åè9K` ¿V[Ûyï¡­Ïþ…œS· SÖŸ¿Ó§1mÛ~,™ˆFhàåTa5õ¼A×,ÑÚ›ƒ €èMZEˆĹAÀkw"Ïód§ûDDDDDDWQ ÙþJ[àIEND®B`‚(0` #0#. $ A#+"$$$*&#7(2)#***;,"1-+C/ D0!8/)30-;2,221;63F8/k<=96D:3;::_=&`?(D=9J>6JB;jD*CCCQD;vH(JGD^I:…L$OIEdK:tM2KKKVLDxQ5nP<‰S.QPN_QG]SLSSSfVL‡Z;xZE•\5eYPZZZ‚]Cl^Tb8b^\‰bHybRfb^§g;sdZdcc™iIkfcohc|i]§mE‡kW•mQkkkvlf©qI´tHÈw>~rj•t\Øz9ˆuhttt©yXÑ}Bxtà<”zhÅ~L·}Uƒzs{{{¨bŒ}sÞƒC‚}y¼‚Y“r™€n¦‚i”tš‚qŠ‚|ȇZ„ƒƒ¹‡e”…{ ‡vš‡yâSœ‰|‰ˆ‡¦‹w¨‹wÄh¥Œ{‹‹‹˜Œ„ €Ë’k”Ž­’æ–_Õ•j¹”{›’Œ¨”‡“““È—uç›gš–“¡—Øœs²›ŒÅ¢›–œ››¨–Ö¢}ñ¤n ŸŸ¦ œ±¡–Ë£‡ä¥y¬¢›¤££×§…»¥–²¥œÄ§’¨¦¦´¨Ÿú­w»©œç¬ƒ´©¢Ô¬Ì¬•«ªªú°|Æ­¼­¢Í¯šæ±Œ»¯¨Î±²¯®Ø³˜¸±¬û¸‰³³³ç·–ʵ§º´±Ô¹¦ù¼’»¸¶Ç¹°¼»»æ¾£Ë½²Ã¾ºû›ÛÀ®Ê¿¸ÓÁ´ÃÀ½êèË»ÞijÅÄÃÊÅÂÙÆºÔƼúɧåɶÙÉ¿ÕËÃóͳÜÌÀúΰÌËÊòϸÐÍÌüѳëнôÓ»âÒÆîÓÀÙÒÎüÕ¹ÔÓÓãÕËýؾí×ÈØÖÔÚØ×üÛÃäÚÒöÜÊÜÛÛýÞÉíÞÔâÞÜòàÔýáÍäàÝêáÛâââüäÓëåâýçØýéÛëèæôéâìëëýíãñîìøïéýðæôðíýóëôóóüöñüøôüûûÿÿÿ{{bP>0  >YB0  8Y{¦ÑìÓY*H00Jo™ÂçýýþýýþýþýýÂPH''B\Š¬Ìæô÷÷ùùûüüþýþýþýýþþþÆ>8 '>b‰²Óñöù÷÷ôððððïððôô÷ùûüýýýþýþþúþÆ>²þýþýþýüû÷÷ðïïííííéíííïðôëĸž‰vYH8 “Æ>YPþýýýýýüù÷ðïééØ¿¨Œ}ddØåéíïÁ'05050 ºÆ>P™ýþýýì”mK-@*zÝáåéíÁŸ0000>üþÆ>HoP0#-7@GlÐx ÊÔÚÚÝáéé¼005'úýþÆ>H¦ìäìߘ|Q7#19¤^ÊÊÐÔÚÚáåm500 ‰ýýþÆ>H{>%1=@LXND9V¾1.¾¾ÊÊÊÔÚÒ850*øýýþÆ>>ºýúêÄŸ|U=(‡‡¢¾¾¾ÊÊÔ…000aûýþþÆ>8†B*'57@GLV^VVNN;C¢63±±·¾ÊÊB000ÜùüýýÆ>5ÆüêÄ¡|d@1p —±±·¾–0507ï÷ùýþÆ>0“PEKQUX^ijjcZOC?;?ˆ6 3§§±·L000´íôùüþÆ>'Âམ|X@1 !g* ˆ §—505 áéð÷ûþÆ> ²||}…€ƒƒ‡‡p`ZIC:32t='/  ^005zÝéïôùýÇ> º½˜|XG6$  `0’500' ÊÝåíôùýÆ> ѰŸ¡›š‘‘~y`RA<2)"&e9 2Z050NÐÚáíð÷üÆ>¸™|aL=1  ,S07500«ÐÔáéð÷ûÆ>êÜÏËÅû³«¢‹‚nSMA<4/&&]7*000.¾ÊÔáéïôûÆ>„aQ=1$   ,R0500‹¾ÊÔÝåïôûÆ>ñòèãÖÐʾ±—‹n_SF<4,))&[500 ·¾ÊÔÝåïôùÆ>Ç„dQ@6% O888`±¾ÊÔÝåïôûÆ>†õ÷ðíáÚʾ·«¢——‹‹‚‚‚‡‡4WêììÛ §·¾ÊÔÝéïôûûY>†Ù£Š„uskhddd^XXXXXXU—ìììì-§·¾ÊÔÝéïôûýY>{úùðíáÖÊó«¢—‹‹‚~~yyoäµ£˜……}ssli^^^XXXXU nÑÑÓbfÓ%·¾ÐÚåéð÷üýY>oúüôïãÖλ³«š‘‘‹~~~yMTªÂº~ÇvVÊÔÚåíðùüýY>oçǵ£œŒŒzzwli^^XXXXR®²²{§¶º#ÊÔÝåïôùýýY>búúòèÞÕË»»¯šš‘‹‡~y`_–žž¦ Z±·®biÚáéð÷ûýýY>YõßÍÀ¹¡¡Œ€zxli^^XX(CŽ“{ ±·¾¨™#ÖåïðùüýýY>Púõîâ×ÏŶ¯¯¤––‡‡yg‘†††*C·¾¾ÊPséïôùýþýY>PúóìÙ̼´¡ŒŒzrl^XX63|ovo¢¾¾ÊÔ¡íðùüýýýb>HúìäÙÍÌÁ¶´ª¥––pšbbb5.¾ÊÊÔÔÒv>„ôûýýýýY>Bþýþúîâ̼´¡Œ€uhXG+uYPY‘ÊÊÔÚÝå˜b öüþýþýY>> õìäßÓÇļ¼´­­ª¥¤»³HHH> ÐÐÔÚÝåéÈY5‰ýþýýýY>>'þýýúúîÜɹ©•ŠX€ÎÐa>>>0ÔÚÝáåéïèPH óýþýýY>0'õìäÛÑÆÄ½À¼¼¶¨¶ŒU05555ŒÒåéíïðÄ>B8BúþþýY> 0ýýýýúóìÙİœŠ\…Š…|qda\QE7éïð¼H85888>bäþY>0þýþýþýýýüù÷ôðïííéééééííïðð÷÷òñìäÛÓÆ²óýY> üýýýþýýþþüûù÷ôððïïïïïððôôùùüýþýþýýþýþúPBoYúþþýýýþýýýüûùù÷ôôôôô÷÷ùùüüýþýýýýþýýýñ>Pv>>BHYbv†ž®ºÂÑÙëöûùùùûûüýýýýþýþþýþýþþÑ'voYYPB>>>JYbo™®¸ÆÑàìõúýýÛb5{obYPPB>BHPHPÿÿÿÿÿÿÿÿþÿÿþÿþþððàààààààààààààààààààààààààààààààààààààðÿþÿÿÿüÿÿÿÿÿÿ( @  .*"$##2)#:,"-,+>3+Q5!333=61F8.L9-g<]<$X=*;;;S=-D<6N=1^@+E?:zCcB+TB5BBBLC=TD9ZE7fF1kG.xI(QHBLHEbJ9rM4\MCLLLxO3qO8QMK{R5kQ?\PHdQD‡U3lUEdUJTTT…Y;¡[+zYBjXLuZF[XVeZS[ZZ…_D’a?`^^q`Tgb^’eF€dQŠeKmc]…eO~eSida±i8ddcre\zfY‹hQ†hTrg`khf¡lG›lKk[²oA¤oJylcllk‰o]²rFwnhqRuplŒsa…sfsjsss·{Q§z[xww«{[‰zp…zs“|k¤}b›}h³[||{¨b³€]„~zˆxª‚g”tšƒtƒ‚‚ƒ|¢…r¶‡g”†|ˆ‡‡À‹g¦Šv›Š}£‹z³sªzŒ‹‹—†‹¡Ž‚¶v»‘u´‘z“ަ’„Ç•r½•z±•‚”ޝ–„¦–‹–••š–”¶™…›˜–Ä›~©™Ž¢™’êžiµœŠÄƒ¾†Ìž~œ››ºžŠ¡šÕ¡|ªž—Т‚»¡Ž±¡–£ Ÿ¹¢’ˤŠÃ¤¢¢¢²¥œÈ§«¥¡½§˜Ð«’þ¯x´ª£ý°z¬««Å­Ë®š¸­¦¶¯ªÛ³—¶±­ü¶…¿³«Ç´¦´³³é¸—ûºŒ¼¶²Ö¹¥»¸¶ý½Â¹³»»»þÀ–è¿¢Ò¾°Ë¾´äÀ§Á¾¼ýÄœÍÁ¹ÔµþÆ ÂÂÂÞÅ´ÈÄÂýȤÑÇÀÝÉ»ÉÈÇþÌ«ÓÊÂäÌ»ÌËËëιþÒ´íѾØÑÌÓÒÑüÕºþؾå×ÍõÙÆÛØ×âÙÓþÛÄÜÚÚòÜÍþÞÈôßÐýàÍâÞÝôáÔðâÙîãÛüäÓæååþçØþéÛóêäýíâþðçýòëõõõþöñüøõýüüÿÿÿúúúúúúúúúúúúúúúúúúúúúúúúúyaaúúúúúúúúúúúúúúúúúúúúúa; &;X€=úúúúúúúúúúúd= &Bo¿áõùùøøøø›&úúúúú@l’¶Õëòðððòòóô÷øùøùøø›úúúúXäùøø÷öóðïíèèàèíïòª‡ta@a›úúúú*Kùø÷何g<ƒ _ãæí¢]**Qõúúúú@tK@I[L<0‘¬^ÙÙÞãè**õù›úúúúKya@-)) H“iÌÐÔÝÝ;*øù›úúúúX£oF%  ž0ÀÃÉÔ¡** òøù›úúúúlÓ´ŸƒrY9 cn·ÃÉP*`óöø›úúúúa’ŒŽ}hYD:/'!V4¯· *-Öðôø›úúúú lpWMTOE8,"bb­Y**1ãïóø›úúúúlu_A1  J9–-* ¥Þèòö›úúúútÁ¢ƒhM3! Z1**ÔÝèðö›úúúúâ˲™~m\C6.#74**mÐÙæðôúúúú‚®¢—†~e\?2$$R** ¼ÐÙæðô›úúúú ‡³Žs^H88..$$$$}tK>ÀÐÙæðôÂúúúúK’Ƹ«œ‹{{ssxxLSîî°zÀÐÙæðôõúúúú@£Ñʲ©¥˜“Š…„„+µÜÍÏMÃÔÝèðöõúúúú=ºôïÚǵ ‰zwkkSUÈÍQ—‡šÔÞèòöõúúúú5°Ûʹ±¦™Š…wwqE„º°·½MÙãíó÷õúúúú*ºäÕÆ±¡vhh_(Ÿ§XeÀ¾d²æðôøõúúúú*ÂîÛÆ¹¤vvN…€‡¼ÉÐPíòöùõúúúúÍîîßÖÎǵ¥˜Šm|lXGÉÔÙ¹@Ëôøøõúúúú×ø÷ñßÒ¾²¡‘{jXX»ÔÙÞàlQ÷øù÷úúúú×ñîÜϸ¨”xœÄf=@ÙÝãèï‚5ÏùøõúúúúÜîéÜϽ¨”xˆ[**-rØíçÆQ=5Üøõúúúúäùùùø÷ôòêíèàÚÖÎÅåð뽺°ª›Âõúúúú§øøøøøøöôòòððððòóô÷øøøùøùîúúúúú-€£°¿Í×Üâìôôôôö÷øøùøùùøùÂ;úúúúúúúúúúúúúú€tdaadlt€£°ºÍ×Â=úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúÿÿÿÿÿ€ÿàÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀàÿðÿÿÿÿ(0/+(E/ P4!M4#444<51G6*[9"S9'P:*B93>:7Z=*<;;M=2b?&R>0>>>ZA0_B.EA=AAAKB<EB@fE-lG.OE?WF:UG=FFF^I:IIIfL9mN8MLLRNKgQBsR;ZRMTSS†X9cVMiWJmXIXWVvZF›]1m[Nw\Ia7]]]…`F‹bF„bJga]baajc^dccŽgLhMpf_vg\hfefff}i\›lL’lS„l[lkjŽoYœrU¢sRspmqqpˆse”t^utsuuušx`xvu~ws—yd§{\zxvxxx„yq©|]‹{q“|m~{y˜~l¿V‘~p–n~~~€u«ƒg¥ƒj©ƒi†ƒ°‡k¤‡r®ˆm£‰v«Šs‹ˆ†‰‰‰¨‹xµrŒ‹‹“‰¶u™‰µ’z‘Ô•j®“€‘‘‘½”xº”{£“‰²•€»–}›”—”“š•’–•• ™”¼›„³œ‹œ›šÇž‚Àž‡°¸žŒÁ Š» Ï¢ƒµ¡“à¥|¢¡¡Ã¥©£¡¤££è¨|¶¥š§¤£¦¥¥Ä©–»ªž¬©§©©©þ¯xī𱫧ɭ𬫫¾­¡¸­¥µ®©Å¯¡®®®Ã±¤±±±É³¤ñ·¿´¬þ¹‰Â¶®Ì¸ªÆ¸®âºž¸¸¸þ½‘Ò»ªÇº²ø¾–¿º·þÁ—Ò¾±Ì¾´¾½½Æ¾¸ÔÀ²þÛøÃŸÔÁµÒÁ¶èéþÆŸèÆ®þÈ¢ÄÄÄÕÆ¼þɦÛȺýʨÉÇÅÕÈ¿ÕÉÁþͬçͼÙÎÇÕÐÌþÔ¹ÛÒÌåÓÇÓÒÒúÖ½þÙ¿þÙÀÚÚÚþÝÆîÝÑýÞÉàÜÚÝÜÜúßËðÞÒýàËáÞÝúáÏæáÞþãÐâááýäÒýæÖüèÚèççýêÝëêêýìáîííýïåýðæþñéóòòýôîþõðýøôúùùýûùýüüøøøøøøøøøøøøøøøøøøV94øøøøøøøøøøøøV4.Km‘ºÝë;øøøøe!9[€£Æßììðó÷÷÷÷öO`øøøë÷÷ôðèâγ¥ÞçÚ[OA!OO`øøø!¡tQ:(Z Á×à¿$!;÷O`øøø$ƒfR>+,ˆ{ÇÍÑ$å÷O`øøø)˜qW?,/G&²½Í:$8ó÷O`øøø.›uYB- C x¬Ž$©ðöQ`øøø4Ÿ}^E2" D'E$àêôO`øøø9£}_G/# 3]%h×çóO`øøø@«ŠjM7'  <$¾ÑçðO`øøøF­ŠhM7' 0$!<ÂÑäðN`øøøJ´nPD=665#T‡.•ÂÑäð`øøøUÌ® ‰|ogbd*ÈØ—ÄÖæð±`øøø`Ò¼ ŒogdPIÅpš\É×çò±`øøºeÒÀ©’…sid<†¦1ªl°Ûêô±eøø±mÜË®™‰vkcH‚eX·¢aæïö±`øø¨zåÒ¹¥~nS_e%µÇÃFÓó÷±eøø¦ƒíáÌ®ž‹ykJ@EÍÑÙ€fö÷±`øøœ‡íåй§Š a)%LÕÛç„)Ô÷±`øøƒ”÷õñãϯ¸®©¢–¼ê»‡ƒtº±øøøø@÷÷÷÷öòîìêêìïóö÷÷÷÷œøøøøøørmppw‡“¤¶ÊÔÝéñõñKøøøøøøøøøøøøøøøøøøøøømpøøøÿÿÇÿ€ÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€€€€Àðÿÿç( ;)9.'F2$G;2R=/@=<hB'nD&GC@RE<iL8JJJoM6OMKNMM€R3^QGQPP~T7jSCiTFTSS~W<^UOgVJVUUxZE^ZXi[Q_Jc_]‚cMbaaddd‡gQ˜iIŒjR}k^kjjoXmmm‰o]rnkpnm{ogrrrŽtcusr‰vi‡vj”xevvvxww•zhysyyy”|lŽ}q||{¢€i~~~­‚e€®…hŽ„}„„„¯‡l”‡º‹k™‰}‰‰‰³Œq¯v´v¦—Œž‘‰¤’…Ä–w¢•¯˜‡™™™±›Œ¾œ…»ž‰½žŠ ›ì£qªŸ—Ë¢…É¥‹¨£ Ï§Œº§™º¬£É®›¹­¤ç²ŽÄ°¢°°°À²¨È³¥·´²ºµ±â¸šÉ·«ÑºªÉº¯ñ½šþ¿“˼±Ú½©þÚÖŹÆÅÅüʦøË«ÈÈÈÖÌÅþаÖÎÉÒÑÑÚÒÌÞÕÐþؾå×ÍýÙÀþÛÄþÜÄøÝËÝÜÛãßÜþáÎóáÕçáÝ÷ãÖÿåÑæääòæÝýíâóîìþðçñðïþñéòññôòòõôôþõðþùõýúùýüüÿÿÿ˜˜˜˜˜˜˜˜˜˜>--4˜˜˜˜7(&*6L`vŒ–—–!˜˜ ’‘x^]EM„q/A ˜˜45 Yw~– ˜˜f@$mZ X– ˜˜K9) W%“ ˜˜X0.€ ˜˜kU?#a|‹ ˜˜+`J2'$"g8p|‹:˜˜>}o\ND=GcOlF˜˜>xeTH;$X1hPˆ“F˜˜>ƒq_SI;>Bs@…•F˜˜AŽ{iRU, t~dV–F˜˜<‰znbLCj‡[>uF˜˜3ry‚†Š‹”–––<˜˜˜˜˜˜˜˜˜˜˜QQQQ˜˜ÿÃÀ€€€€€€€€€€€€€ÿÉPNG  IHDR\r¨f IDATxœì½i¸$Åy&úFäRë©SuÎé^è Ô4tÍ& „$ „¸-¶lÙ–­¹²=s=’…æz<žëñ<¾WóXcyŒlylY²0²°$ÄÒØ @f_›¥Yº¡÷õì§¶\#î\*232«Î©Óržþ™ €câŸeËäý}¾ãó쬼^÷ñ¸dÀ-nÌ@Ñ!„8ÄëO€^ ï˜O€kPo3;M>Ÿæs<}<@ß`{)Cz,ÓkÙx<¢¹.šóqð[~7v^±Ù9Dˆ©Dó©9çZþdp¯²Ù–9ÑšX&ëWK϶Ìlò‰¦iº®ëEBˆÊ3 Ãh3ÆÒ4°Œâ€öqðòàXHâây¤$p2@¿`›¯:º•™m^¯@?^Zy¶0[휕7ŸûÙæu6¥”V«Õ‘\.7¢ªjR"„(¥êàà`µP(,PUµF) ”!ª®ë9ŸŸZŒ1«Ñhì8tèÐËØéºî!Ž®xg^zøN,Ap­A<" d6f«)u˜0ÍtóuÎ~®¥[™~š&?ÖZùXº§|„e¬9¥X,*•Ê"UU‡E$„ !9]×õjµºP×õ!EQª”Ò"!$GQÂ?Lˆt?Û<Ƙ»ÿþ™W^yåÍ©©©×< à<`ǵ¾#ìe[œÄã㈲~~²À|hÅù&ˆ¹€w®š6«l/åúl/eŽ¥6–åPUUÉår (¥UJi™’§”j¾^胶B)ÍBÔ\.—Ó4­¤(JÁ²J¡H8e²~ŸVƶmg÷îÝγÏ>k†ñ:€ð6:ŽƒÝNÙ‹d A¼QF'œz~//i¯ñ´s `ÏöÚz=îDjçž5t.—ËkšV ´,!D@Ëår¹T*-Ô4m˜RZñóõ|>Ÿ¯T* t]Q¥B)Bt¸³]Vù~<ßçk4ÖC=äB)­ùàÌQJµZ­6œËåFEòµs¢æóù¼¦iE¿mha8¾€+pÅ8cŒ¹®ë:ŽÃLÓdív›´Z-ͶmÊcŽã¸–e1Ó4AQt]G>Ÿw‡‡‡É²eË4MÓ(!$õ¼–e¹>ú¨½}ûö<€wÜ`?ä 7cé`Ÿe ¤6Nô.™Æ™6’í»Éf“?ÛóôKj³-C|S8eÞ×ÂJ©T* ,öA´…õ|>Ÿ\äkç°- €Î' Ž5ðN`®ërÇq`Û6u‡rι뺮mÛ®iš¬ÕjÑV«¥9ŽC !¶¢(Ž¢(ŒB8ç*!D×4•J%gpp###txx˜ +ƒƒžÏç644L†‡‡éÈÈ0­Õ†h>Ÿ¯mÿþ}îSO=M_~y1 Cúcìþûï7¶oß^„gü)<2@n¦ìE"¬7¶É¼O¤¿ðe[¼Œìø¬}¯²c¹ï©ŒªªŠ¯…RJ«¾Î+Š¢ Öòùü"EQj„ìj.—Ëëº^µ0åDš¼³=žùÁqDz,Ön·Ñn·Ó4õ@3û`æ­V‹´Z-Ýu]ªëºU*•ÜjµÊ+•AZ© hµT*º…BÑ­Õj|xxˆŽŒ,Pjµ$𦹹\ù|¥R‰ ’Ï牪ÎÏ`ÙÄÄ~ø!öÒK/QÙ½0MÓýÖ·¾å=zT0 àëÂ{xCH‹rÑöñ¦@¢?àx@?À§™˜aß!ôJ=[ÒÖákár¹¼PUÕ~[¸DÑr¹\~ppp¡¦i (¥ƒ”ÒdôHËd' È~`Œ1î¾Vc`Œ¹Žã¸¦iº†a Ùlj¶mkœs‡Rj«ªêúu)œóœ®ë4—Ë;ƒƒ644DFFF”Zmˆ ÕH¡Pt{šyH¦ ”âd ¯¿þ:î¹çGÜ4MDïáØØ˜óWõW¤Õj)ðš   øøãq‘K@lDp#>Q˜,àÓ”½¬¬¬NHâ²kHÍS…Öjµº®/ ”Z˜¢Öjµá|>¿@Q”a_^´…C- @#sì‘–ÉŽ¥© € ZÖñµ,m·Ûºëº$s ™›Í¦bÛ¶N)uŠÅ¢]©TxµZ%ÊÀ@E(“B¡èT*lxx„ )ÃÃôZ­’B¡À4Mã…B…B‹ER(H.—û1:tˆï{w¡ÝnGH¶nÝÚ~ä‘G ~òA[Ñ};¶-Ñ;S›Ç‹zð4ÏJ§ZA[˜RZ´°?.¼XQ”a߬.Bt]×sÕju‘¦i#¾¼äƒ7¡…ãé“ ­ì5~=à†í_ÆõeŽmÛ®a¼ÝnÓV«¥sÎ !ÄRÅU…„0ÆtEQt=—sÊå2«Õj¦ÃÃôZ«ÑJ¥Â ù‚388Ȇ††èÈȪÑj­FrºŽàrާ†9Õ‘#Gp×]wÁqìÈs4MÓý£?ú#^¯×Ux@ÿ€}è?¾‰DoÄýŽ;Ìü4cS4MÓjµÚ"MÓ–øZ¸ à÷Hår¹Å~[¸âka-—Ë…Ž!D’¯íX7«|/e:8v]Ó4™o2«¶mk"˜EÍÌ9'¹\Ψ¸ƒƒƒ¤28HK¥²Z¨¨…BÁp«Õ*†‡GhmhˆÖjC´\àš¦±\.‡@ó E’Ëç ( Hì-!þOâÁ 2‘þ ÒÃöíÛùO~òp¼ÿþû­{ï½W÷EOø1<°·$û€â–€¬)B±Hòy¯÷YÓuø÷)aØ{Ã;äÍ… &Šž"²)3áÄxš,çñ8É>ïÏJ¸è¢‹ÉÁƒ¡(^¾|¹²hÑ"vàÀÈXàUD]ƒmxnÎ6: W o"Ó‡ƒ[~ì&]wÝuÕ™™™ß­T*¿FóŽe[~»ÆnØþu]W᜻Œ1×¶mײ¬ÐdfŒÁ×¾®ªªŒBƒñß\.Ç*¨ÕjꊋhÐû\.—Y±XâÕê ñ4ðЄªª¼‡„”ó`Æ÷ú+DšW,+– Ê!F ²¼xˆ‹¢ÖàÀ4­/Öj~¡ª0+ÿoVP­V±nÝ:¾ÿþðär9²iÓ&I÷à€T“‘@~ öHçn¼ñÆóÜ1<<|>Зçœs'hç¶ÛmÒn·5Ó4uß—CÔÌJ«ÕÒðB¡`W*V«ÕÈÀ@… ”i©TF©TäR‡††éÐЭV«¤\.s]×Ô|¾ zmßBØûL)M»?Áí)„€FÔqÐËâ2ˆÌ舗'"©\ 2ÆeY@b/šþB^<•ýY «VN>_B°páBñ[Ï=Eà§ÿø5n¾ùæëE¹€´mÛN£ÑPÚív»Õj¹ÍfS·,K÷½µlæÀÀSU5ÇÏëºÆ‹Å«ÕjtxxDVªÕ*­VQ(Ùà`µZM¡µZÖj5R,yH';’qÌœƒØü~ñ4b@oD –ÏI¹Ù^³˜ áORë‡]Ð…âQs?fˆÖ‚HÊüŒ5†‡‡Q.Àqln,X`Ã=àõ›•áuòi±M$€^FÈÂÇ2opë­·~PQ”¿ ´füz½n¿ùæ›dïÞ½h6›„s^[³fýÙÏ~–\sÍ5åE‹óJ¥¢æóyhš¤SfbŸ4!¡ñÀ‹šÿX@–韕•Þã3V®WK ×¸ôíÄÏ är:'¤ã²téRÑÐà‘€ ô¢æâ2ð'¼À§?ýé劢|ßz8ŽÃ·oßn=÷Üs:çÉáÆ¥K—²Ûo¿Ýüõ_ÿ\!Þ{ª†à3ÌþT“¿ é„?BZv±h¤G(öHü<¢–´¾h$údͶhÈÞÖŸ•¦AµZ%SSS¡ò €" þ4ÈÒü‘ÛØ7|ò“ŸT5Mûªªª!ø]×u~øawß¾}R7®³Î:˼ûîÒ×®][åŸj!Uã§hù8È{"€ "ÄÓ`6æ¿ÌìC¢Ñ“§YiÖ@D»§ä'6á€w3 £Õjð,hß C7àgµÿÅ>о  T*}\Ó´›ˆg»À²,wëÖ­|ß¾}º¬üÅ_lÿð‡?ÒGFFNùg)Óò2i~™èNb:”q)v3‡ýº…À(«›y§ ›æd‰€à˜À*¬ƒÔí]JªªA÷†~Aªªñ¿€]F½¶ÿ£çì÷¢u]ÿ‚®ë¡©òØc9{÷î•jþ ¸ßýîÊ» üÁr‘} àg5Єà”OD¤Ié`’ɉf’––ì3­ô@öFƒs¿‹!$B1 €@ô^:üâõ„¡/øÜç>wa©Tº80ýwíÚe½ôÒKRðkšÆ¿þõ?ç+V¬˜÷÷ã2µ}À—5 Ä4ÒdþOÄô[’2½ü'™0|SÄöº_8Ôä<šIÇ´ºh¯m+ƒ¸Ik`±2ï†@i&ÑN¾,­ß­ýÞ²¾ T*}:¸`×uÙOúÓÔgñþ÷À¾þúëOêÞûnA:â=@÷+Ê"ˆ²X<î89Häý†”@hY?؇Z=.OIGò„óÆC’ 軀(¥Ð4-씬C5)N6Ýâs&€ßüÍßT‹Åâ%¼ùæ›îRþå/™hšvJ>&À#Ð ð%Z?î®æš<&¯[úgâAòTdŸ yb{?Ðôáqšß7ºwþÅêèÖ$®ñ”|Áü@)…®ë!¤XYfV@Ö˜»P,Wåóù5ÁEnÛ¶ÍAÊøüÊ•+Ë/¿\:Aåd!àÓ4½g݈À¯¬¯‘¼Ý ÕXi ISbZªù‘t1’ äom`E„}B<â†I¼ûX§* ¤6ºñ`øe}ŒT«ÕÁB¡0H)…ëºü7ÞH]¹á¦›n"§âXBË‹š?ž‡IRÀwíä!–ŸÖ6— %A6Z j|‰QóAzšQížI’ò²z"3^NA" „ÆGEb›l¨/üL"˜38Ž3¬Ö2::jX–•:¦Ùe—ŸRq &´;ŸEÀ ôÔ¦€pÑs%€D à;¢Ìx\ó‹21»¨Ýc×jyéë+Nm£i²SŒ(¥PU*)øÙ?”Ï™r¹Üò€­öíÛ—jÞ«ªê¬^}ú\OsÜCôsj“ K9ð¥Z?~)iñúEÐÏÿàÂB"»Pë2±/ ¢í9B¾ ¬ØÓißÇ÷þ1" Ó¶ø<×8œJM¯ à>£ Æã­WÓ? s&MÓÊA¥ëº)< °ry`®§9®A¦ñÃx< AÎSšq™¿À-Óö‰´Gp<’iQ&³æzÑúÝö ­/ä',˜EÐ ø€tÿ8‘ dDp²J; ï± ¦ýeAZfΠªªôX2ÆÄYK‘ ë: ,…“9ˆ&½TÛÇI@(¸¼i‰,ü’xBþd?A2f ò¤xޏÖÍë4Í\´bò{éñ—™û„{‡!CüN“Þˆ~²Ûû²<_¼h_û“?ÀÌô,Ë„m[°} z`uá2>Ë3 ØÁ–U¦[=óæ½Ò~ %@ê…¹®‹“"àiö4í÷ HóŒû¤âyþ…É¢L<>–†$…×u`[\Ç‚c{Ú“ù”sOãqÆ`´›h·ê0ÛMXF¶e„Z—¹^YǶÑnÕ199Ž·ÞÚJP¯yˆs/¼Ÿþµ/ŸøÉ&É‹·ý÷îÙ…™éÉ.O:zê\ʤ7;"˜[÷ú!€v0 Ð;y@¦ùÃ} ÀEPwmdžñ±£¨OO¢Ñ¨Ã² ˜†‰`¡Gä+N_-—| ›8G»ÕD»Õ€ÑjÀ4۰̶bßœå ̱ÑjÖ½2í&,Ó€epmË9sÁóÀ6áÚ6Ç‚ëkÏÔ<Î,=„ééiüëcEdTQÂ6zÂ2È"¤tú¡;HçÄóQæd s&€‘‘‘°@×õÔ˃란 Í/h0À4M4›Ma[Ð…išÅÔä8š: £ Çv0=5ÉÉqÔg¦`´[°- 2F¯7šxä''ä¹ñ8ïâàáÛ_zÂ×´–L&­ïTŒñ/ GÇᇓNg`*ðýRùþß|~®u¹®‹F£Çq`Y–,Y‚³Ï>W\q*•A,Y²CCC‰zÄ0—æZ¿aΰ`Á®iZ࿜eГ¡ €¿Þhbtth4:àÅÄÄ8ê33hmض Ë4Ñj5½#Ë3‘UplŒS£;¼ÿ˜çD—¹RˆtúÍ&Ê„-ÞÉTZ€ GÁu]í68ï(šceˆiÎ9öîÝ‹}ûö¡ÙlâüóÏÇ/þâ/ââ‹/ÁÊ•+eãø']˜órι¦iœRJt]÷»€’1FÄÓOàœ£Õjù=´lÛëºh6›8zô(¦§§P¯×ašlÛÂøø8ÆÆÆ033ƒV«Û¶çå:ŽEpŒé+‘ŸÄpÆa(¥¨-@¥:„Ê` gœu^hyum÷‹e„8båçËÿÝËó7  Ýjâ¯c×ÛoâÕ—žÇÑ#gÝsß q˜¦‰;và­·Þc×^{-þðÿ6l˜ë6Æ9–­X‹Ë¯¹¿úůaÉi+Q©!Ÿ/€Î8}pl*ÄFÒüüeùb 7mÁÙ›·àško妍ٮ÷ïüX–9oÁ¡C‡ðì³Ï¢^¯cppñwàÆoLóÛŸe8…: @Ó4R,³l|R¯7°gÏŒc||<¡‘…ú`èìEÁ¢E‹°téR(Š'‹> /z}E†hˆ/÷Õƒÿêð Ï—s½´4T%þ—»= iBý= ã„P€q„å¼8!„* D¨÷¿à˼ûàÜëwX°d%V®;dz\ÍúÓãÇ­#µP,ÛÆ®]»±ã­·Â&Ѻ çâ7¾ø'8÷¢+@)‰ŽïsyGGToûAÖ› ò@…&D._ÀE—~‹–,Å7ÿ×WÑj6ºþ׬ÿÏ9Ço¼çž{°víZ|ï{ÿˆsÎ9'åNž¡ €«ªÊu]G ¥R +W®ÄÊ•+û8ÝìCЙÇὈbG_¤ÇŸwʤÈÊgôä Ë€s/½›/½6ìj5ë¨OOàð¾xã…G±oçËsºóÑKÞh4ñø£Õl†²+>z+~ëÿþ3TªCéü—ØÅMoÒÚþñö¿Ló‡qŸ€Îý\µf=Þ凱õÞ»gýEÙo¼^xP«Õðýïß7&ÊŸj¡`š¦1]וr¹œi‡[–ÕÇiæB@# þÈx~ øã£Y> ¿?y) žçÿ‰\azaËVbÖbôÐn<ÿÈÝxë¥ÇÂöí|µm³dõz>ú(,Ë óÎÞr9¾øÇß‚ª©àC€”ö~\ž’‰<8Gd6 â9)€÷_}-zð°Xgt¯÷mÏž=xúé§Åb÷wß>&à?¥F8çLUU¦iJ¥Ræ¥[–¾Ç#ˆ‹µ_ð÷4iH,ã_Pš— €ðãN?pC‹Wჷü6­8O?øm8–ùïÇj¨ëå—_Ž€_ÏðË¿óß@T5\9ðÂs‘‚^²>þ‰&~mÏbåƒ{X ÞrÛk×½;ßÚ>ëÿ?=='žx"”}á _À5×\“({ª†¾À·P*•2ËÚ¶}Ü@£ÌäAtðË4}/NB²´4ž%ƒ„ü?ÖÙSl¼ø£XpÚzÜÿ7ÛjGîÁ|{·ÍÔ8|øPD~ÆÙbÝÆ ÁXG3‹{!Ø™ »Ñ™}‘¶?’éÈçoýs²`?²p1ÞÙùƬþ?ç>ú( Ã#ÙóÏ?ÿù?ÿAÄÿàT}5  PÈþÀOÇ%¤iûH2ë@Ú<@à•M¤$Ø3€/#€ÐE8Yº_ûY„ë>ùš”4†–‰.ÃÞW‰Ô<À@e0‘?1z(jÈšÂDµu ³úÒV÷!HÑüñ½ÇuPŸ™¥qg²äµmÏ<óLþ€bˆ IDAT˜¾ð¢‹qÃM7w†9ße ÐOÀà}Å4¦§gø|_ý £ééiLLL`jjÚwõmû®½½€¶S&ø˜‚®ë@DJò¨qÅ}!tSœ+¸!’:ƒ×šË 7KtŽáážKô‰xÜ@X°x9Öš70=9ޝ=3ι8i €àŒ‹?†ƒo=æDý.úmòÉŽ¯½;_‹xù‰>ŒËÚûAÜÏKí+ï]S´]/Z ðû{Øùúˉžû´ÿûúë¯ãèÑ£¼wë¿ü×?F¡Pì éâØ-0z"ôÕ¼XŠ¢dZ„€-[¶ Ë–-›ëé¤Al÷3aKK÷"OíøcÑÎÄø¨@ê(@¬=ß‹‡ !G红h… Vl¼{_~P¸÷Ùàï… /^š(spï›h5(ËÝGÐe€„~{ýƒ=°ûí×{jÿÛ¶:üÀ5¾_ò>ïtøþ]Õ˜3ø+Û ªj—&À±HëÌKë ”ºg_Ü#ƒ$„ M#z¬Œ Ê„2ÒA\´>ùòs>„#o?»=Þ'ñ¥ŸË0áðp ªªÁúFîÆ¡½;±êŒÍÐsô$™Níí窾± Röq Àh·qôàžžFž|êI´ÛžOEy`_þOŽ$w% w ÌÙ£AìT%ó^‹aÀ8@²H øYd<ø,-ŸF.YÖH·‘ŠxÙ¸;s·M/Õ°xý¥ þŒCoÖ!MÝdùq™B)V®:=úL-/?óPôüHùïHægýïPÎ$$-¹ïá3’¼c‡Ñ¬O§ÿ7ÿÍÌÔñꫯ†ÿïúŸÿ6l<'õZO„¹~,B?`sÎm {À4çw.@ä%@gcB|6Àžx{Ñ‚r,è½@äx&‘ùiËçYÇûÛ²WCQÃ%Û37Y™líºu‰çðøï;íú ó”|Yy‘PÒH1Íj‹Ëwïx%\=Höß‚ô3Ï<Ã×þ¹|ÿ×ïý>@h’¤}çæ7V™—&@7 À²¬yµ–º™ùqbH# Qk„¦º(KyÁB !å¼2ráñ|De©ÍØuɆmËDcz”ªZ%WÆðé[0¹ûÙĽ›kŸÀŠÓ–a` ‚z½Ó´ØóÖKؽcV®Û”>܇¤IÿÞÇ;ýDy·^.äGÚüB[8°ûÍ®íÿÉ©)¼òJg–åÿqÛ/bùò•Þ}'Q°Çß­S}T`ÎpÛm·1Ûö|zhÌÛmŠ€9…²š2M%—•AžÈG:pŒqX¦ Û2àØ¦?ïßñ>*ÁÚõ)Í)˜­:l³Û6ÀŒ90š30“°­^|é9¸é1XF °|Ý&üþ_¿‚…g\éýÛ]Æl®Ã‚¥Rk×­Ç‹/<yÜù§øÕÛ¿ BI¦@· AÜï+¢äiûû™Ï?„rGöí€ÑœîÚþüñÇÕ«kCÃø÷:„Â;õŠ}éÃŒ> B_+9ŽÃu]ïJŽãÌÄÙfA½æEÀ‹¨ÛA³>F} íV¦Ñ‚my€vÍú$Úi­:,ÓËc®·È‡m°ÃUzm)î öÞ‚Ž&&ŽìÈöíØ†¯>…5/A¾zJ#«ÑÛæ÷ë´yóæÛž¸£GöadñŠ€»Y¢VMïöôqÁâ‘íÅ^pÛÛï þÑÑ1¼ñúëaúÆ›oÊÓ×F­.HÞµÀÒïT óE€ðÌ’åÜy!É„9×Ü[¶ãøËˆY°L ¶cÃq¼GX¦…™™)Ô}ÀvdoÍüÆÌ$Zo]|M|æž8Á ,Y´;Ëe4c~ú}ïkXµábP ¯¿'Þ‰ä÷CÃCUœ¾fv½½#”×'GñäֿǵŸúRrâ8€$øeóϾˆUàוèõ—Xðë>ºÿmLŽöþËþÛOúÓp½Šb±„ÏÿÎïh~’|·D‹`>š'â•ê‹ü¯t]w,Ë’® ÈXÿà2†©©iLLz 6›-´ –mÁuêõºçhä/7f´Ûá§Ÿdža´½¯ÈXÞ2Û®¿öý©4MÅò+ñÆö×"òíÏ>ˆÑï`dÙ”m€Z3§Ì üñôæM›"þð/ñáÛ~TQ2Ûýaà @Obóü!ñõ'pÈÆùÛ3;_y”v®@ªýÇÆ°]¸·|â3X°pq§F½ `Äs‹Á©hôK጗|>玲üã8®Úh4`¦§§155z¶Zþ$Ça˜˜œœÀôô4êuo"ŽaÒo³h |¼ƒì^»vv¾õVd|¾UŸÄ“| ×~æTV_Š™7ïK­c¶$°fõéX¸h Žé¬0vhžì‡8ÿ7õÖæ´<É –îež?µ`òðLî•ÎÛ×ø{ìÑΪJCÃ#øÌ¯ÿv§mï_K¢Í¹EX:§Zè—BšËåR×t]W â¥R ÅbK–xÞeœóp Òñ½gæsa¨‰ v\ÞyÇ8×…ã2ÏÜwÝÎÞeÞ'˘ ×eþW]Ýðë®.ã¾?¾¸q,3Æçaœûù<¾1î¿ Éÿéiï- 5X˜ß¹¸÷­;æ¶+øºÏ¥Âää åAä‹äKƒX°|=˜|iÉ&4w?8ÑEC€¹YºN±qãF<|$º@Èc?úKlºô硤Xií&;L£³ÚO7?ËgœcÏëOÍÒÔÿqèð¼þF§íí ·â´«¦}üàèø’&ç©hôKas>ŸOµ§sQ.—Q.—çtžÔ1à.ãÊbÿ€8ͳÊÅû$ñp.£ˆu4"Öé(ä‹y@,?¶óÏeþOp] jÈ-Øëð ó21¶lÙ‚Ÿ>ö(l»cñíxéQì~ãy¬Þp¡¼Ðײe¾ãí}J:D1Ÿ#1Ï_̧&ìÁÔÑdÛ?þ?yä'þ×›€|¡ˆ_ÿ—äÀ&ë¥)ùógðîEæ9ôÕ6g¬3Æ”ËåR¯Þ¶9ÿ3ñæ&:ÿ{ñü8ØÄr)uö4B€lðÇ-õ#ˆ‘ŽØ‘Ù+©¥Õ!n. Ë/‘zûɼâºz* ygŸ³)úŒ-OÞÿ·!1gÞË‹=§´ÎÞnÏŽq`ß›OC¡IG&ñŒãµW;mÿ>þi,\´TªÕSGˆ2ÞËS)ôE¢MswNÜpDo|Bã"å‰/ ¢åÓ€×ÞL86KóËÊôbyÄ-•¸LjñH<#@c€:° t`Åœ<Ó<ç.¼ð¨jt–àS[ÿõ鉮XÜã²W2‹l’{<=~Íñ½™ÿƒ‚‡òÀƒÕ!|ú×~'áJ,%0Éû—¦ŒN•0o@ð©pY˜ëš€™`ò,d¾ŒÉãÖA¢ˆÕ“v=2M— (¤“@//¿XG/Z?}ÙE`¤ùÄ÷j%,Y¼+V­Š„ãN%è«€16³>:›AÄÐ óÎæ!ÉLËÔ—2¾ŒxÜJY¡–ˆ•Ó®ã}®Û±½o:¶~!˜ûÇ€c¶aMXFf««Ý@}f㣇`µ0ýÍj7pÓoÿ%Ÿ~6”Úz¸…aPk*¼¿ý¬H)Å%—¼ïìŒ >qï7qñG~…Ò@tU_â=„Ô¶?$¼3Kô ñ™ñýhŽwzþÓ®ûá‡Óô–7×sy|öÿü2ÒyWÄ6¿ìýóË„Ïw‹ ýâuöNDóá8Àì›]Ÿö ­Ÿ0Ô ø²<‰˜FíV­f=Ü­Ú­,Ëð{Ç9˜cÁ±Ú0Ûu˜­ŒÖ Ìv %Ðu ¥ `à® ×±àÚžË08 ¿ÅHŠ¿* €ƒOÍ๭$¾`üÔ½ë?ÿu@-€ÔÎ}rÎÃqÙ†3Ï@µ6Œ©ÉñPvdïëØñÒ#ØøÞ뢽ýÀ:€—Îóöiãþ|t÷  á§×d×|tt /½ôb(ÿÈ ·añÒ‰6bŒHtöÅå÷+$¦ã7$0ç3õKá—"²ÖœËš€]5¼DWÈcŒÃ²m¦˲‚¦ðñÍÛÁá=o`ÑÊ3¥_úõÆëc‹}ú·.®áýê@ËŠ„0±çùpÜ?íº:Œ—·m eW|øF¬ZsfDkçI½˜ïÿ¯8Qˆ„0{¿€leq,¼YY뚦ÉgffÐn·166†ƒàðáÃh4h4šh6½Å?&êõÌÌx &„¢\.!—ËCÕTïár€óì?Å—€0­f$Èi ršì‹FÜ/¨ùßê ¬= Ï¥þ•+NCy`útDþÔ=†-×~”ªà#[€}»¤ëÚÍ…F†k8kãÙxæé'Cg.û§ÿ‰}áë‘>#ƒˆ¹ÌØÞGš8Þ<ýÖôaXÓQ¯?ÙuÿË¿<Ãðœ¡4MÇg>;‚¶¿8ùH¦éÖf€Ôyþ‚†²-±)0sàe(IïüdzÏuVú½êÚ[°lÅOû“.}]¬€LæbßÐ/´ÂŠ2Ö´m›U*T*•îup»wgÉbrνa1žqLV™ø]Úˆc€ëxÄ‹ë{´˜ÿÁ€d<·b`BÂáûpÒ=€ŒæØà,˜J쀻68sq΂-¨uª‹× ºètÔ¯F®X ;¸fu3Š“Gî{?^‚«V,KÌœ?ˆ—ù\þ±ßŽøÿ½þ)û´É?FsîôîLíÏ9pÿýÀu¼ÎÑbi·ýêïvÚüiÚÙšýÝbôÛ-€Ô¿|\±— *Ø@ɦöðËd1yª€ Ëò#ˆ¬+9ŽDÕ P TÏ2L«)iÄ®Kر8ª–úÁ­ìÌÙôŸ[eœ‰Ç +ž.áË.»,1Kð©{ïÀûnü-oÄ‚#bj‹ýÁÿ µDð‹ñÖÁ— ª^Ù5>|$²†Á¥W]ÓוìퟶO“gÈNVè×(´²šÁ¸k· cXøiÁâN'‚ y¦³’`Š£ áD?r #ÜǽõbqÑŸ ›3MÄZaÉs°øyƒ¨hU6ÍÉ0M¶éì³±pÑ’ÈóÝÿ&Þxæ¾È}ɲÄ"¢ÇDî!ÌÆxc×kÜúà?£Õò^SEÕð©ß¼ Túüç2òÔ«¬§÷¿Çróú"€E‹õdØvòsU²¦¥$¼´Ò€Ý«¼ÛCïaËôVKÉïJ’r\RNvl/[»x&Qgí˜V¦T*`Ë–-‰gúô}ßð—;‹ýß^ï5¢„c޾•òÌkœšžÁSO>^ËeW߀å«ÏL?ïlÞYÈNæÐW T*…ÿ¯ tµ€¤”È‚²¢E€ ´y·—/òÂe9­9 ÕüÂËœ(I=ñÿ"Û/XP·ëúý¶·Ô˜ßÁÌõ:; •+ Àr ÐÒNC•íÐÝä陵pÕUWáÁ­DÖ'ØùâÃ8øÎËX¶vsÂég¶mþ óÓ õÝ £3œïàž{î •O¾X­ŸýRòÝèÖ¶O“óŒrâmd'c3 /°,‹‹ž“Jô´& {a×à¦I0u%XXv¤œ+£L¯$ Õ þÞu™çPd´a-Xf°oyËŽ™^Ü6Û°Œ6lË‹ÛfËßÚ`®íyR€Àa\€9à̆c›x{Ç›0ÛM-B¯Ãpí…7â#_ø6@€©ü ›ÑyýÀÜú!¨àÜó¶àÙg:#¶ÙÄ ÿòwX²fs¸úOÄã/£ÍY€CxMœ±WÓ¢¯®l¾ÿ3ÂW~.ºü£X}æ&ï9dõ϶Í/!HdœŸœ}€a¡ƒªªâs×í¾$XpÀð¤Éb¤[¹ŒÃ¶mضÓf´lØŽ'³}™mÛ0M¦á-1f-˜m¤–e‚3×ïù·àXÞJ¿àú{³ B84Eñ{€»¾· ñÜW @ÀA©‚B©Œ|¡„\>¢¦ASUP€æ½±t¯G=B:Hñ@ˆ7¾=yè¼}øH$o× ÷aìÀ›ZzÌÂj4ÚO¡¢ÎÏb!ðÁ«?ˆ^x6ìu€çü&®üÄï£PªÈçùÇöq @$ǘ„nô|52®qëÖCç$ª(¸ísÿ „R9¸‘pÄäY? ±x!Í<3Wú¦”¾-€ ®ëº@:%ÐuÝÌóÄÁ*f˜¦…V«…f³f»…V³…V«f«…v»V«…V»¶6Úm´Û^Úh·(Ô{Âõ™7<ç ÙÙplœ»Èå Ð5ÍoO(„€®½@8¤¥( 4=‡¼ê•Ut ’£  BÊJ~Ùôgt¬‚à_ãÙ眃·w¾‘›­)¼õø¸ðæßLæÎB•¿YßlÈ`ÍêUXuú¼½£s^³5ƒmü=.¼ösé«û –@Ü%7(Ç €©· RBÒWü™œšÆc>¦/zÿÏa庳7ÿ³dÁõú?ݬï"·íX„Y¥_ˆ¬ ˜VŽs®ÌÌÌø_6pøðaìÙ³{÷îÅ®]»pôè(š­&,Óò–$c ޝE:î¹ïf.—C©<€b±]×½I2Tñ‚Š”£XPÊS ¥çwÍlòçRÇÊåËP^€Éñшü•¹ç^ÿ%(Z3ú˜Æv”Ù}Q8rºŽ~ðêÀ³÷›®ürùR¶æ'rÍÏ0£rÛkû§ŸøÁ~ËòFžrù"nùìïekð4y†,=A øâ1¾ 'q3 /°m»'@9÷ÖÓ3 ÅbkÖ¬Áòå+pÁ†ŽãÂö5´ã¯Ï×Y;`ŒÃ4MX¦é­ðN—<úD'ß±&ͤ•OÄ5lÚt.yøÁH^kê0Þ~ö‡X{É-`´Œ ²Ëé®ÔzgÛ¸ø¢ ð÷ß©¢>Ó™z|t÷«Øóê¿bÝ–kt´¢¨áÓÆûƒ2êôvhš’yþÇà‰Ç;=ÿç¾÷CXóžóçÖæDäºÓÌ|.òÂ1â¹Òž\Äú=Na> sÂO>ŸÇàà`âáÉqa7–žm~šÌe€eybZþ¼{Ë÷Þ³m8®×ñÄend¡Ï€ñÛ‚c›pmÓ›®ëXa[è•Ç8wýã8êg.sæze˜ o -‡8‹°Ó§=7wá3Ö¯Á³Ï  Ù¨ƒP…Êaúè.ß38LÏÄr²Ô¯g®íÿ@–ÏyVÀ?Ýý½01OÝó?±æ¼k¼[AÙæOXÖ Êîᮟùºï­áçË(¥¸å×¾¢(³ëá¦~¨ñ%M´¦´Ã‘¤À‰ý@OK‚ÞGDr¹\ò¿óØC(?¼i)ùiǧu€ªå@ÕôBwÂHËã<æ:,È3Ó þ|ÑRñæ1pî‚1¾óW†èìÂ1À Ü5Á] œÙ³æø#ÞœbÂ8´aŽ‹oY^XŒÁ%ëQ\‚üÀ¨ª…`j#·†±(75ç€x¸ì²K±õûÑjuf ¾ý⃘8ü†–¬îh~íõûÓ¸ךï@W’mñüSÓ3xèŸ;ÖÎæ÷^ƒÕgž—VQ&‘‹÷=uø/¸ÈQdåŸL Ð/„¾ÝÀ4M^*•]|ȳ%‚Ìô|É$y²•…D°§¥½C%\Ý–phŒw†È‚÷@¼Ñ59B~Â>¼¯¾ìôåÂýöó™`¯ gb1yÆ‘˜ƒOŸvÚRl>÷\<ñøOCs<}ÏŸášÏ~Õûÿ¾<ü¨'G89‡‘N³Ûtvƒ ÓMd×ôßÿ>LÓóMÓry|ìWnO>Ó žB…ž5þ\Ò' Ì碠™ÿI1‚ ì@ps²dä%K¼èÝòÓ|2=cõ‰A2Á¸u!zØ¥Y1.ï89‰›Ëi² u·4kÀ´Õ„UEÁ‡?òÑÄ{ðú“w£1u4ñ¿Cï@ž$ØBë-ät5óü£cãxìÑGÃóœ}ÁUX{Ö…==·ð‹Ý÷Y½o=æGòN‚Ð8Ž#. –Y6 Þ{eÈsY98ØÎ>ëL¬Z½6òÌgF÷âõ'¾ŸéE§ÝÄ9Üõü÷Þw?f¦ƒO QÜôÙ¯€*jæóß%ÞySßÒˆçg¼×òpLØ!S1÷ûqОÖ¼)Á ¡ø ²Àžq³³òÇ÷ò@³È ­¼øâ¢³—ºCR>£¾P«3×¶`ÛËßlÓßp-Žã¥];ØÌpïØ9sÌ0®«8÷æÿ-W¬ÅF÷-èZöê:Ýdbú£ý(þüϾÉþ;pþG~#áé—X’ @ÉÚƒ¼ÊA2æûOÏ4ðÀ}÷†²³.¸kϺH®âm{_m¬_À;QPAò˜°·?Ï Ï)–ÝÇtb8v¡ß/õ´& н FâM‰3+„|)¨ãù²2BÚe v°ðˆÓY€Äq\¨1¹Ù¶í{þƒ¦Ë„å ܶŒÐ[бÌÈ̵á©fÏ9‰¹6¸k9&˜¿((sL0ÿVŠ¢"_,!—/BÏå¡iTUƒªP( ¥!  Äsb¢”bϾؾ­³(¦W!Å’³®Á²Mׂ¡€=æi8#×ñì—Þ÷ÞKð½»îÂèÑÃaÞÑÝ/ãmaõ¦«BàÑoî1Ä5±€ìE|¢iü\wÝuÚmoÆŸªåpÃgnOjaâÕ©ø2y@,'†”ŽBˆ@ÕáüÉ{˜”ë0oµ ´"€G:¸ŒÃ0L´ÛÚ¦vÛðÒ†#ÜL†·¨§a0 ÓÛ›&LÀé/øiY¦¿ï¤ƒµ-Ëû©ëx=éz.MÓ¡ú‹|RB¼á<ø‹w„=î ž·`.W@¡X‚žÏC×sÐT9U…¢P(:Íy $ÑAˆEõ×# < ƒö­ïêJ|{îÂA|n~k׿¯Ä €3ìxì›Xrε€=ö*¬åG e8Ût;—(«Uq饗E†à…îÀªs®ŒLÞ ÞÀ¨Xo£XP¥õáèÑQ<üп„é÷œ÷~¬;ç½á‹$›kæÃ¾Ú^Ì“B ÖCK@8?beß-@88kQP0 ƒÏÌÌ`ll GÅÛo¿ƒ]»wãí·ßÆ¡ƒa˜†çäÑ›†Óÿœ7à=|MÓP*•‘Ïç‘Ëå j:TUñ–Éã•÷ŽQU…b …Bƒ¥´Z ª:è_‹Iìdr景k¨ –±aãflõ¥ˆüÀK÷`ft7Ê#«0‰8jV±¼ÜÖ1R¸áÆñ£Þ ácÒxçÅ­Ý» Wž•0û€²6–èG#«ýÈê¾çÞû099äâúÏ|TÕ: KÓø)ir‹@bÊG,Ôë<¥œ€0o5öïßJ)<ˆññ10,[¶ +V¬UT€X¦¯ÉCO?ÏAÇ[JËóì ‚ø"ô¤ùêÉp ½ÖqÞyçbû«Û ØZàÜÅ;?ýkl¼á¿€€bGsV îìé½È–.^€ó/¸Ï<õD(³Úu¼úèwpŧþ(bØ À ÛR¾Óö—Õ[o´pÏ~¦×o¾ ëÎy_ÔªìaXλ þNB A~üxï¢ä$T™UÏÉú],œFÖ­ P© ²`Áˆà¦Ä=ú"k²Ž³M¢ÛEÛð&û˜¦ Ó4ý?ý5øXàJìÏu¯}n¶ý¯ï˜p`š¬÷Émpî{¨p`Y£2 IDATîÆ¼û¼…B¿˜°jmw-ÙK^/ùý–Y³út,YvÅ–ßýÔw°öªßB®<ŒýîjÌo£Zì¿0ûØÍxîÙ§Á+àÅ­ßÀû>~;ô| ´_ׯ }âßñºïü‡;Ñlx–Š¢j¸î—¾ø µx³2 ø³Í÷.D|“Çë‘DôNÍ© Еôk„µ$ü@¨lØ$ÌCÔK”ãÞÏ|± =_N ͇+qÐñç-è,êÉ|n‹°÷ ‰ÐóÞs,0ÇóÒãÌñ½n<âšÜiƒ;¸cÌq-€Û Ì ¯¬×L™?BÉé›6!­8„ÊÒ 0ãÐJÃÞl,Å%å#™uÉdiés6nÀ駯ÌN4Øþ¯ßæþR¤M>Ì÷ \ˆ~x4^÷èè|à0½öœK±~ÓåÒοÙ;3?¥S0|ïb…zz)w‚B¿€¸&`æ_±¬Îl3‘¡Cø¬ËñXYÈó¸¤Ù¨¡ MÔëxë¥Áƒ#YNØd_öå=¦9càNp ³fƒpÇßñ&=QJ@¸ â¶A™ Pfp0¬»ðz¼Ù8 ÕU`xÍ{QZ°&4µ÷àí•Øl¢”‹ÞϹÎ, øùnÀWÿßÿÉ{ñÿ… —Ý =—@¹‰U¥ÑÔ~˜@ö£ß‹±±Î,Çk?};MŸ³Æ—uÞ%€Ï;õÈ-Ö“xßRˆäD·ú"€_ø…_°n¹åÝ ². ˆR p»<…Âúbeƒì8ØD#ŠxÝ]ýd²È’<™ë°ìX ¦–À•R´|üšÒþ»xüýÆ[9y¿pÉî†;€= 6ä½ÊÄô‡®¾ ñŽV£ÊŽìz Þ| «Îþ8€å*€fÌ÷o4Ûøþ?þc˜^}Ö%XîÉg‡là :àŽO$y~=DhHÎ/~ŒHæ‘f]U_ž€Â9ûY_Ûî, \ Œ¤…2Ý4½ìåç±úMŒ8¤+¦מzY¹8ù‰syT.®4œ(“¶¥LlâAž¿¥Õçrà¥Éå¡çÝl<ÓÊ ”K¸îºŸ¼̵ñü}æ?ëJ‡ t©ç»wÞN5¦ŠŠ|ú+!Ég¼W)ïœô™ŠïUìýL(I9™›VŸ˜'^Ïñ }€ëz«Îw³Ç[Tvx\.#‚ÈÁs+'ó,‰ þ"¤Õß‹UÑ܈nñïÄ­„„õÀ$²”-’ÇüÏ’›-˜­i3£ÞÈ Žº q°®¥úûËdÝÊ|ô#F¾ýØéÎç~Œ™±ýXD÷c°¤fÖ3>1‰{|Oxìé.ƺs¯ˆ<ÓnÏ<’Ÿ@iÐñgƒX^".–‹¿§ñ÷퇾šàº. (ŠÂ !à\>Àá8N²KŒ™rãÄrñ‡)–ëå%À?¿çº.\Ç[¨Ä ãn¸x‰ÆýÏ•ùi7ž¾d[á>XWеípo©2/ù2×—1ד1`æZ~Ç£ò™c»ž<Ø3Çó6gpíäz€ëî±îÞ7Ý cK±¢v0Õi¶}ë×­Å\„Ÿ>ö“PÆ Ûîû¸á·?Ñu¾ÿîù1Žî,dú¡O|ªžŸ)¤+ô„ù’a¾ÈóuÞ¡\佘m9 òÎÎÃ*AóÒrè›c €¢ª*S%è®Ë0ñ“^,öy/ox°÷W#r]0ÁÎ¥Ð4ÝóÔ'&ª¬ÍO}Ó×7uÃ@%D©¢B×óÐKyhA]j ª6EQ=w`JAêy0ú^Œ[pàaèGÁùMÌLGžÕ¾'¾‰ÕW TQðNk¦Í£.ñH™¹* ÁM»9B°DÅP ™>ÿÍ–;¿ûÝP¶|ýù8cˇ"`¾\±<¯ÂNþ\Çïã€Î¬O8o\1È0€ @S…©ªš¡é™Òjµpèðì?p/¿ü2^{í5¼¼mvî| †a XyGQ(¨h:Úé&Þ8}gE1hòùô\Î\ l¡YITJPP¢@ˆ BTPR‚¢¨Ðsyóê üîUB•Ð÷žê¹ù† ëøáw\z»“öñv(zߥ—âþÿ0"kOìÆáWîÁâsn@›ä±íhW­ž™ó@<\ú¾‹°bÕìÝí}¦\Ïåñ+¿üK‘qÙqßýôÈŠRú¤°Ò/b_B ˆ¥û¿—uòɼü"X˜‘¿yüi¡oà¾{žªª\UÓ«£¯½ö<ˆññ 蚎M›6cýúõh·Û°mÁ! y‹}RíÀ] ‚é$¬ÚºÏ/PN¶ü~ëòÎ?ï<<òðCh +÷Àþ'þ 6^J)^_Š+WÏø++§×Ý+!(>þñãÿû“?|ôç~K/Ȭg|bÿôƒ»CÙiglÁúó¯–@¢·?È"À÷NÖ©'µœ ÐÂ1bœÇ#V¢"¡Ðñ óa8@w¨`Ëà|uÄqÓt|O@ÆÃ0Ñl6`m˜†ïñç8p]ÑOBà8ŒvÓ[ß_0”¹8w¿ !ÄkO»þ¬;=>ÎY¸Ü÷l¼úz)s²»/^4‚÷l؈ž‹~R|bç#˜Ù¿ •åçbš àÕ#œwš)ÓÏ<|øCøÛ¿ùk†_üô'#>ÿ²z~ðÃ{ppÇyéª[ª^jÔPŶ¾_¶ 3ËI€žÖ¤•™üéíþSÓ@êº:0‰wúE+“«ë9¨ZeŽt>0ilÛ‚íØpÇÿ”Vdz/x‰lÛ„c¶àZm¸ŽéOÑu€Àᆀ30»f·çÇ÷âcP(Âá+1œŒ–Áe—_ž fµpè¹ï`à´sÏ.ĹˆSsûm,Z¸W^u5 ÃÄÚÕ«2 À0,|ûïþ6L/9ýœq¡7{±gàKLv鸼_!É×1|ÌŽP2›Ç_ñ‡a>:mP%Ó0M3ü« F„ð€ÐyAfjyHâ ?>TÕ¡*:-0Ô8ÁÄÊñ˜õ ç1âqL0»n·½žwf‚÷^ØOà´· ê Üå6¸ „C!^¿å¾ P0ãa]q·á^,ƒ÷¬_%§­Ä¡ý{hå(-Þ½ºÜ»v7†°f§óÄñ½¦ã²O}êSPñ÷&~Üßßy'ÆFzyTÁ•·}”*¶?$Ï_lƒ©šXj²ÇËøÇÇå=Õ+^_†EAHÇ+̨ªJ²,Û¶“ ?N)Ð…D·qÿ8‘ˆà—+­—'ë••KŒ × –åJœäÀ´Z¶“ŽÚÝ©‡s0àÞ ÀàÞê¿ûG(3¡²n@… …ÛP‰ …0¨Ôë‰W) ²64´¡ÂÀyWþ^Üm¡¶þj”Ÿ…|u™×dò Àæ*ž9PÁšõ¾ÚÿbX·fU×ã&§¦q×?üC˜^²z3Öoùˆ´ãCèÄ{$)—PÄêpm¢o¡‡cŽg˜&€ \Ì"-ضÅã@Cq1ÈÊĉ@F¨³µR5Œxþ”ó&| „üHÚ—¥­6”e `4Îr`4éAÈ9Lj]Ãkf\’¯µ“³nÅÊûB¼3‚Î{ž[ŒëÍ) ´9ÌÖjø§ü{÷ì Óï¿å‹Ðò¥ž=§qyáÜ©m}¸ÝúÄ'–øùú s¢’ù°,¡·VZ°¬ÎŠ@RFÊŠ/n" E©wRQâü1à†ùq"A+)rxbÙnåÓÈ!¶Éæ„yb½’}Z Ä|pÍ¢‹h°B Ïì/áCg&?5_C„¢Ì0-üïÿý×azÁò÷àÌ‹o/²[ç[f¹@~õfÅÊ#–<Ã|X&à¹g€\0Q—$jäÜ=;­õ ¬¸ò‹pAðЮ*¶¬Š:ÍwŸÀ~ð#¼³ó­PþÞ›þ#ôü€.ÀMø^59$&|ÍŸ šÙj~iÖñoÌ'$pÃÄÄ^}åìÛ¿ÓSÓ8í´e®á’K.ñWèõtÀ9(%P%mèOÐà%¦JøÒ™2êmTAt/#/»Cݼ O´÷á|\ÃçoÂ.ÄØÑèj@£ÏK.ù è… ÞœÂáÉI,ÎIëíw”À´,Üñ;BymÉZ¼ç}Â# ¸Ad6zÂñ‘Ð#¨»j~IÝ2Â8þðŸhžõ‚©ªÊ.¸ðÂÿŸ½7“äªî|¿±äR¹ÔÒÕ]]½«º[jµÔÚ$„v„…ÄbccÀØ ^ð,l°y3óüæ}æ76Ø`cc 6@2$! í[ïµtך•{fdflïX2"2"+«+[ÝzoΧ²âƹKD܈ó»çÞ{î¹\réå¡>þÜyx›¯éµZz­F³ÙðE†N£^£Ñ¨¡µ,ÿ~¦¡ƒ`yÅÁ414]WÝ{Áã5ç$ ë©6ó]Kü`6͵×ßÄ7î¾Ëǯ/¼Dá•»è×ÑMÉò ZdYk¯Ýý¯Ÿ™r¼áŽ$[.ÂÂÔh‡o¥oá{mWÓò÷Ò »ÎJ€ñjRß@„®]€–ÚêàǼ$ "©t–d*ë7Ô q(º¦»^…5]³üù™¦û¡hšŠÚ¨¡µêèZÓÞ C,mÆ4TôfÍòݧ7m—Z’²,­¨ xéTƒÅjïáÆë¯åžý†î5ý5™ûùß³þÂ_GžšäÊ2ë2ŸÐZº¥r…òŒü'SÃl;÷‹Ò’w”"tÞô]¹}upûØÝ´ŠS€kY–ëÐÓ  ß`ZQ… & D ¢„—å$’ K=Á1±Õš;fÅjC­aØ~‚¡Z–z"H¢d™kuË7ŸÙBBC dQ@–DDt;Šhˆ‚(˜¾>y¬5Þ4ë× qÕÕ×ñÈÃúâÊG~LõØSd·]L¾9Àã“"·œ×Ýw_·k‡¥¹÷Û÷±ÿ•—\^£VàГßåò·üaÿ¦ÛV)È+Íç÷:¨ø*·ü==áš`Ë–-8UÑ×TC4 ­¢ùY+0ÂÙî‹ñžŸH…‡ZÊ ï´îÓ Û²/±&ÁÄÒ8tÓÔì)7Û͸]…’QGÒÛš¯…,èÈ¢‰,Y3ëÄÌ:qÄ•¸¨“LⲈ,GïíçÐJ`pã7ð³GŒ®YVC±ÁÍŒœ}+BlÀ­ãÉpëM_Yýì8ôÔýÏe·þ+Mè¥.ÂŒê0V Žï,¤å?]iÍ ªª™H$VÖTµë×µE_)ßjó2»"aÀÑë…»÷:¦C—b(!ˆ9êÛ¾ÛÐ#4³€LÓ$fÔˆS'N“˜h„h“Eb’@R¨‘’bƒ¤¨‘tâ2Äe‘˜,²~ûùìºäVЉ=Œì½ìŽ+‘Äö²k8Vä¹éã\41ૃµ€À[o¿O}ò¯™™žtù¹c/sø—÷sÖeíÆWÓò¯0¼-ÿ*ó†±{’W›Ö 𦙉DžFêš¹š®€—zÌ`†ˆ|½j¾$!š@8z)3Ts F˜áå›fH:OZËP@!CÍ´öL0õN A‡¬ÙöÏòDdTn½‰1†(à šàÔƒ}þàá4ï4#ÇDV cFyëÛÞÆ§ÿ擾ø_þÛ?°û’7#≷ükT½»j]îÅËʲ×nÇ«Hk€/|á Æàà …BÁ±í (OA^ZI¥ÌÒ¢Ÿ…ÄŠe…€Yð¾W @Ý4où+™̓(°í=úTâ8·áäõ ”<·æ;?ú1Y±íê;Œz€sÎ9Q’}ƒ“Ïþù£Ï²e÷EáõäáùÎ{¼+èåú+æó\£X(ðÔ/ŸtÓÍÎÎöPÚÚhÍðñÜl4¬-AЀxX:Ã0B¡X,ò䓳¸°`«¶¦»>ß c…MÓ6“5íÙI‡?½ÙÎc:çaiLÓÞ¬£Í3ít¦ÙNã^ÏÇÇ ›n^›ï9wîÓŸÆÞMÈ ¤3LLLÛòÏŸÎô¤3}åXyðäǾ|ùLûƒ6m‹@+õšö¹`sœ#s“m7~œá3®@Ñc|õáYâÓßXë§ä£­Ûv¸.ÃÔfç~t‡‚9èFki‘OBknÇŽ㳟ý¬Ëk6›ÑúDkAÜ•!¢(jº®‡€išRµZerrŠgž}–Ÿ>ú¿xìç¼ôâ x7ý<½I h)Øþü.ÊÀÓÂ9êqh>+Þ3Œæ;xrùÊòÝS;$M×bÂRÙú~C©Úvž()ÆàûþÁѶþ ±™o!˜‹„N”&Î8ƒc3“¾½ŸùÁ?rý»ÿ+©ìHh I«TýOH¾m-bŮӬ°fEÑ}C‚ DJ²¢(â3O?ÍK/½ÄR.ÇȺu\þº+˜˜ØI¡X \*R¯×i6,OãàÖ˜@ûÍuL½îI;™‰?!oÞû6¼…›!ï©ýfÛj«-˜#àm³]G¹p8ÂnÿóõeµÃk©èŸm ·ý&¶oÑ¡ö= þ{i'ó•;55M!ç7×.ü!Êâ+dÆÏÁH¬G½9÷ úEÙLŠÑÑ1–Û.À[*Ï=tWÜþGéO´Û× è˜Ákú¡hžp$Äb2W\y%¯¿êêÈùu¯ÀÅ…òù<ÅbjµŠ¢Ôi6›òËò9J…<Õj¥^£eo'ÞPê4mŸ€šÚr7õ´ï-xßÞ3 vöTºMsãÂÓ:ƒdþOÉ+ü¦é8ôp:Ùž4&~¾·/tæéåžr¡á±±±Лeæû»ßöWÖù¶[‘rO ÐmN`ç®>øåŸãâ›ÞO2í^À öýûI½‚†Ûuyõµ¡ß™ÎY…'Š+_2O°yëv6nÙº}x˜ÁŽªj(õ:u¥N³Ñ Ùj¡jš¦S¯V(–¨– Ô*% KÓPU•z¥H­¼L½’§Q¯ÐRj´Z Ë´ØérÃ+Q0Ÿ·ž¼exãœpðÁëö:Ç¿Ö<©„LzpµrÞÇ_xò&nùKÄdch/ffBõhä5VKÖ’Ê R¯–]ÞÒ±—9úÜCì½òö®yÿ¿Úb÷›úª'Y›º®‹œ“d™Tvdz°Ó48bÛpŸO¿ &b€R/S-.Q¯iÔË4•­fUUiT (ÕeÕ-¥‚Ú¨¡ªpè-­UÇPöN=šµNÁCŽ@‡J”ðGJ0D«ÉcÅlذ¡4¥ÀüãÿȶkþSŠ£o½ñ•¿[éUõL&;wîä…çžiß§aðó{?µ"üoêú tQb,ç}RûRÊ × ‘$–dpcøâ¥pà0Q›uZM«+¢·šhº†¦ih­:ÍÊ­ZU)¡5khª‚¦ªèJ­¾Œ®Ð[UŒVÍÚÞËÐ#[îµjÝ´Š`x0›&‘LÑl¸; )E7llºóà?"ènU»*Ú4>ÎÁþëN>ÿc§^dÓçFæëQI;©ßRÏe¯î&úÚYèÇ  kãÛíƒt4V¸ù^ŸLðVÒ÷ì4=Õœ€»GüªÈÎ'R"M"–FjaÀ¢x5]SÑ•e %ôf]m ©-Lµ†¡ä0›EÌf S«cª kþ\o‚® è ‚ÑÃZ f×n†Ã†ELFÇÆ™>‚”ftß[Ùò†?bpÛÅíÁD)‰±õf¤)ÿNCk¡d"ÆæÍ[8zä ç>--àíù\{ÐòÊ^ Hœ@qhÍx'+£5Ý0 ÝX•À®†Nøèá:'úkøÊé±)†˜GG0A4A2AŽXc`z T]S0íBMÃÚãPP+HÍeDµˆ¨U@¯#èMLCCR‹­<¢ZDP« ÕÁha:Éô›¯ÿc—üég»‚^27^Sßîááz§‰;}ðÊcß¡üžcŒŒm]¹HôòOH …~rß  ç‚úÑè,Zk»=W«înçQyBóE]3‚,g%Àï(‹ïÕpœtb#ÇŒ yÖØXÎ+Ÿè"“`ë'‰–yð¨©#Ê2ÎÖ÷/€¸ôDD%œ8¥âŒoaqþ¸Ë«xæGÿÌõïúSßõ½ÔU³ŸyOeSA}Ó4#èºfêšÖÁ?|ø üäÇ9|kØGð̉®˜¾7­eòé¤÷§1}eyy„¦1͈4¦¿L?…t6Ï2Çõó@£#Œ'¿?Έ(ÛMg§ñ=›ÏFwVÂr«ØAØ=â;§†‘7ÚoÆ~ zaæþûV 3ÎØá€Ç¿÷\÷Î?Ù³©h ߉ŽaÌ(§× § úÞŸÈçÐ4ͬÕjä÷ïç©_þ’üþäa¦§§Öz ÿ›Nóþ{Hž÷VŸ HSßFЪݲ0mehd”R¡½•yaa’~úM.¼ö«ÒíÃ4—^Ég*Á*·‡|§ú1 8n@KUyúé§É-/³¸¸ÈÐЗ½î vîÚM©T´]µ0L£ËœtTØ:õ-À1Ákèx#q8NZÓÖ‹Û|;]ÀÖÞÞ¶Æ1Û9W¶ÿ<ç€à¼vÁ;’ãœ[ë>Œ×ªÏßE|&nßaµŸ‘Й#PT½V¥^)¸Ñc{Ywέ®¢&¢ZFœ}0XRßHaÛÖm>xüþÏsþÞî·/:¿”H!ïÂ_±{ØíUôp‰Óú¡(žÓèõÀ¦i^|ñÅì˜ØÙ9 îÙ¼3·¼ÌÒâ˹år™j­F£Ñ ·¸Àòò"ÅÂ2ÕJŲlµPêUÛ°amê©i>»õ¨eªÏ÷¦ñ@ô‰X†…{MëšëÅq¥çZí=wäD&§ßùö?†(YŸŽSUâÜÊߑh¿iÇ;xå•—Ð<ÎeŽ>ÿ3ûŸ`ç¾+qn¨W ÓN¤+à+'B¥?]A ¯`šÑ†•Î `׊`ݺQ†GFÙufô4™ãPÓMªµ*õZ†¢ÐlµhµT …|nžR>G¹”G©×h4”Z•âòÕÒ2µr†RCm5\û„0£¯Žý¼+ÖÉj,ƒÓm½ç„]Ë¿’å`/‚‚  4u*¥¶PjìlFϽÝýè­¬F_§þ¢HÄ`ûŽ ŽÚïò4µÉã|‘û®\Q ÝøÕHc(ôÔmˆÒ"º"§‚Ö µZ­§.€³ÙFÜ8ãÙ|gž^Òé,¶ãÐP˾.O©×l`ÈS«hÔ-OÄJµD¹0RΣԊ´ìujKAmTÑZ wûp#äÙ<õbÝzÂÙ 0Vþൺ™"÷j!8¿0ç[­¹åšÿ€<0hZ¯I:þoÍ\äó÷“vlßÎÔä×UÀS?ügnýÿÁðºí„«TíWêÛ¯ÔpE±;ÊYmWä$Óš@Q”öž]4Ã00t% G=¬N€@$`táËq_¸ÍK ¤Ù°y7ë6…Ï« yZÍM¥J«©X 4UÕhTó(¥Eµ<ÍzÕ¶lÕò4Ê hJ‘–RFo)èZ[ g´nZF¿Ö 4Tƒr¡-ØñÁÍŒ]ü·þ]A:vrFþÃ(N²al#ó³Ç\ž¥ü#ozÏÇ€N•|Õª}”@‡iQÀÑE O'M ^MUUMÓ4Ã0Vì8™°‡–ß›4TÅ‹8¿àû€!&$ì”'Ç“ˆ±$‰( ¾‹¾ ï>Ý0iÕò4+‹¨õ-¥ŒÖT¬qŒú2ZuM) 7+.Nƒò IDAT`˜š‚Ѫaj L½ ¦Ö±NúµN@dq¡Ý§OŽîbÇÍÿ 9>ж5¤¥Ç«S÷p²HvîÜå€_<ð%®¾ýCdG"«Ââ½-.Ð+ÇJ]‘nE¼Ú´f$Éx3ÍŽÈK†aŽàÊ”X©å÷õÝVÑUòƒ× ˳âuí4¡NˆÛZz u¬gˆ¥G‘R£N=ÃÎuÃÄPôf ]k «–uŸ®kÊ2F}£QÄhU0TCkb6ò ,A³ˆÙ*[Àaøm1¢´€–fR*å>ëf6^ö~FöÜD<½Îmùã!y²¿ž€z¡Ñ‘!‡ÖQöŒM,Ïæå'þËÞø®hÁî"¸«iÙ{ihV¤P8ÔpæÄ,³P߆aˆ¦iD Êjy¥–Ü+¸Ýt5¼×ï{­·‡ܰ'Þ§yàÉ#ˆ±È)×$Ø0±Ö˜¿¦3õiC›‡i@3àƒZ±7?i!4–¡añõØ&.¼í ¬ßé ¼hߣ#üÒ£µ™—Ö&U3(”*ŒuM·:2™˜˜àÙgÚ`š&ã“\vã»üè _]ÛŒÐV¾ŠÒ ¼ï.J£ð&=…HÐp–‹¢¨† ¦i ®†` M£Ñàá‡â‡~Ÿgž~Aí5%{@g³M+lmv)»q‚hljֆ‚{´xÞ£`§·~2‚à ‹xøxù‚ öÑ:—@”í£oóL¡}nzâLÁ‰“©Cè½$ m4u;k~Õððƒ<'ì8ö4ìB\§ž8Úˆ™\ÉõîõœWâ¶n$œëÚÂîÜ«‚¡"ÍÜ·â÷177Ï¡C¹þúkûúoä@*R¯¹¼©—Ÿ`zÿ“Lì½ÔßRžÑ¡žZv³çôaÔ£öÑgZ±è~¬tÜ×K‚Ç?`XÒ†¢ð /ðÈ#ð½ïÞÇ£ü„ºçþÿ… rÁÉ(Ástãd: Áʳª×Ÿß „mÀ´U”XwÖ ¤ÇöøÔ)÷Bñ•®Ïi˜pðàAêµ2 ‹Œoë[Æc[¶nçЗ=\“‡þõ“L|âËwxîY°él©ƒB/éƒÀÓ-½ïž^eê« tq pàÀL@Qê\zÙelß¾\n‰J¹L½^GUUÛ‹®a躡ë膦ièšµ®^ÕÔcŸöVÛ6Óå;çvÀÍçzÚµ--¼–ßç§ëšuºu}]ï\ϰZ2 ÓÐ1ˆØ-é4"9µŽÑ=7¶ 9Ç©{Bûlmš_¢^³¼ùLMN²qlCOv½ÒÄÄ€ñ˳GÛº«SÕïEP ܯ&ª¥"N{òS¨ýýÕœp$µç,®¼òªÈe¬ª¦³°°@.·D±h9 m4ä—sä–(— ÔkUZÍŠR³ |”:ªÚDˆ ò¼n¾‚é‚ü¨´m²Ó˜øMwApy¦pì#ð1M Ãp†¡ÛS¦º >ÖÏ4u·oà8È ÞëyAÏ/¦®Wp¼nà LÃÀ4 ”Z­Õ¶üÛxÑo;Ë/ü…ç‹~Á ’¦ÜßN£'Dz۠z¬K®ÕQ2.³u›å=Ø¡z%ÏÏîÿ'ÞþÁ¿tyª{œø„ çJšC·ô¡q§˜ú Ý\‚µA(Þ:pÓ¬…ñM›ß¹§žV”µz ¥^§Õj¡ªµZ•åÅ9Ê¥eª•ÍFƒ†R§¸¼@¹°H­R¤¡Ô|¦¤+Í­GÓ8þõ £0œp˜DÅ;Õ!š¦ÕMde@Ž,«¤L‚nÖ}éí 7ÝÑI;,‚KR+·mþ%v\÷ýc˜H“ßb%š_X¤Z)¹çg¿ñÉlÛLõ©ÏvɵzÚ¶}›½ï‹ÜöOˆÇ» ¬¯•îÒ¯VsXuúnx’©/û¬Ð÷w©Ùjšnç,ddß„΋tòÉ$±D’Á¡Q?PœÓü¼nR.,Q*,Q)åiÔ«4› êÕ"åå9jå¬K¼æ)îôXáqZjË€NORkšÇï–.X.ø r"ÒA»`Ýg¸9ðJ>þ‚yÃâUÔ–íÚA¿è×Þq©;M( T'»oþ¡é¦¯ï?¼å\v^ñ.WhÒ»ßLýð÷15%ºUÒ¶­[xéÅh5Û®)޾ø =û(û.¿Á8益ذÀÈˆÎøn}}!&^}4xU»ö€±-VwÁï"Ðþ{ê’.¢¼0Cè/ô/'Rd6ì$µ~§0< aÚÚ†Þ¬£6*h­†ÕÝÐ5Zõ"­òju U)¡6ëhÍ ­Ò,Zm M) 6ª–©pEP %™|nØpÎ-l{Ã=눢賎|sŲ—r”Kíq„½7~˜DzÈ-'žÝDrü”c­XVÏdLLìbÿ+/º,]×øñ·?oíÙ×r{ÏñA/é‚ÌUFH¹§‚ú¡h€£çFûZ­–áN›LÓ$—Ë¡&Ö\µ‚=-ˆ¶ÁŸÐ»Ç  x4 oÅ»/9>‹=¦aËñj(žë˜ÞxBòÎ÷ðH!ÄSÄ@av9šö½º†VG­ÌÛ `Iu­:V[BoVP›uôV£Uư÷. 9Êæ+ÞÁö7|ˆÌøÙþút>ÔòÌÅîBk"pðÀ÷<3º=×ý."^ƒ"Á³oï/[·náÈ‘C¨­¶‹Ê'úËóÓŒmÞn=þ÷á0ñŸé‚€ŠSIýÚ´§.€ª¶L'•`Âüüß¾÷[Üÿ½ïòâ Ïcš¦eå'ж…Ÿ„d‡›/É2²CŽÅÝ£$Çå˜uŒÅ‘¤6_’­£(Ç$ë\´ù–¥¡u.ÊqD)fÿ,žà„¥‚·Ï-¾s.Hq1fÏ¢!8¿¾ÏºÏ“O<€!øÓbÇ™BÛÔW”dbC[‘·º `ÀñˆdjMŒVSµ@LËll·Þ{·?hsê»–«ñ.´¸”÷Ùçï»å?!Çâu1°ñ\bÃ;P‹S]Ë[ ¥lßıéI—gèësüÆïÿ_mí/ølNbÁÿn¼_rTËÝ5]°|:ó5„SAýÚÄ:%ó™gžá?øßüÆ7xê©_†úxM’ ÆëØÉ4‚ÜQŠ[ç¢ÅD?àˆ^ÀñDo¼ý³ÁÉÕ¨DÇ ADS†ŽZG$äA¤XÂ/ Ê"Ʊu}|Ý09°¿m84~g^õ^Ÿ)±7<¼÷6–~þé¾¾‚>xôþ»¸å7?ÂÈèX§ ³2ô2+šNè,Ï{ÝÓ…ú²7 `ïØÍ!ÀÌÌ4Ï<ý4†®sý 7²çì½ÌÎ'¿¼L¹\¦ÙlÚÖwºµ›ŽªÑR[ºnk‚­ˆH¢„ Šv?Uı4L0LÃ-K×4{ô¾ÕÕqÇšÈ4ѵ–oÿiC‚hi(‚Ug®I°Ã÷„_ÿ‘ï“ßãûˆ#÷À ›~.-(Ûþúξá÷HfÛ«ƒ Ùv9…çÖ£ÕúçHdh0úÑ1òË‹.oyaš§¹ßöÛÑ}|B€€ÏI²`¸áÓ úªts0>>n|àÀ °ÜÕAW”ÓÓÓÌÏÏ“Ï/S­ÖÈå–˜;~ŒÅÅÊeËyh­V¥V)£(uZÍ&º¡ú®ãä’E9.“ˆËBÚê^ˆb»«!Jˆ’è ‡(Š´ß àZèéºe¥§©*šÖÂÔ5¬Õ¢ˆ\@=_`[ÞÑ63Öut]EwÊs–é më>¯•Ÿé>£tmK>ð¬ù ÛÌØG¦©˜øë)Hc{obpÓ÷J‚fmcö']ó™`õýí~Gjx3ç¼ñC>¡÷i€80ÄàÎkÉ?ßßåÄgøà{_û7¼õý¢è{¶H À/œü„Ît /0œj è×îÀ=i-{ ˆŒÎ˜@2™d×™g1±ë¬Èé5]‡Z­JÙ^?Ðh4Q…ùÙr‹s ËÔkUJÅKóÇ(äæ©” 4”ºÏÆ4¼Óf½zʘ$€눳âM@SÇëoWp¾6kA BÜtµWðEÑ-ÛÑnì_Í™†‰‰i˜®ð›¶gå6 –àÖ^3S‡Q›Ötœ Jì¾á#«õ™€ÚÝp'·\¢˜oÏÃï{ó‹´ÿè"Ùs ùç¿ ¡Ö_'Fc6Îd©U+.oæÐó¼òô#ì»ôZ· }÷‚ˆ–¿C C€ €á}þS-õZ3§S°ƒÂÝ«FàÄC§À¯(t|ÿ§‚ú¦ ]ŸIUÕŽøP ™¿wÓ®FðW˜¿:¦ç$Y&3¸ŽTv]¤{®0ž¦jTò³”ó³Ô+õ*z™Jn¥¼ˆR-X^…5k޾YCW›F{c¯à`Õ…?mXž(_€Mͤ^m/Ô?›—ÿz[ýÀlЦ~ÐõLì%Þ¶ð&Ç8ïÍèr1‚@fÓ¹¤6œI}q×k­†b²È;w3yäËSje~ðÍ/ðï?úWá‚îÇß8‚ï-2Nê 8~VMSÝ.B7EÀoëO zü@^ß [)ÍJ†À@*Õ~nϽ[ý0ö½GoÞ¼žkvC8ÅÔ/ ÀxEQw¶Ú ’aèòÑ£Gyè¡ñ•¯|…Gy-dËðÓDQBŽ·FŽY‹y€$nƒ‡HÚ`b‰$·Ãb,‰$;á’lE)nùï½ÎHÛçÖQnËoŸ‰½n!‘FN¤Û¦À\€§7I‚f«ŠràÞÇ$ìÅuË–H¯ãÂ_ùÖðÏ-ü^ØxîÍ,½üoè­z^0¾qŒT:C½ÖžÆ<òÊÓ<÷øC\qÝ­>Õ>Lð{„h nÖ@Üé@ýÍŽ4µ›ŸŸçá‡bff†íÛ·sõÕWsüø,ËË9*kÞV’$û'»aw.Û¶ðÓuV«E«ÙðO-ž$2 V£F«ñ*80ÛËq÷®·K$Š’ "^ÍE´&ê|üìkÙrnûÒ@mæQ´Ê¬o !(ü…R•œ§e=ïM&™j«ùB[õ p\Àá mbxÛ…,þYÿêÒ4˜˜ØÉ‹/<ç² Ãà{_ÿ®¼þÖÎV9(È«ÕzÐÜò_]мäɀȶfxx„|à·} ~𢠈K$iD!c >Š"¢ÇÜWðJ‘‰m>¬[?]ÛôØ'A°Ll'ž&.`hjËÚ¬ÕD ”l0³Æ",=Û4²Ö:hjÓr*¢õ;¯ø †7ív[;€úô£¨e«õ²;(–«,-̹¼½×üƒ£[Bø‚€àë@`™0 mÞKzýµÜÑžž¡J&âlÞ¼•£ž)AÓ4¹ïîÏò‡ÿë$LP{Òœ4Qñü§ ½ªÐl6:À­”À Xp4^²Ù,éLÖgñwé•×Fn­¥&K‹s,Ì#Ÿ[¤Z­PÌçX˜&Ÿ›³¬ëUêÕ2õZ™VSASýäªÁ€áô… o?'hãž’$¶ŸËÔm›|ÿÒ'½Èq‘d|Ò¾¸n× †uhȈrœ—žû¥û,r|€‹ßö1$±ÇÔš_¸»ã¹}$8°Ã^käÒÛÿÄךwëx!Ì&@`ë…·±ÿÁ¿é¼öhbâ <ü½»y×ïüg6nÚÚ¡tSí;â<7M0ޭþ>Úš©ïÐTµ3™‹ˆv%™Áõäv.Šë7nf݆͡sò†š®S«”©UË4…f³I1¿ÀÒÜ4åµj…Z9On~ŠJa‘Z¹@³Õ€ˆ¹÷`8Õ¯>в4ìõJµ¨K¾ø=×¼ÁÑ­¾²ªÇŸ ¹|¸]É6yï³\©±8?랟wÓ¿'58êo݃­½WÐéø ¬ßySÙ1ÿ‚žµP:5ÀØÆM,z4—|nžGp¿ö¾?ŠÔÂΡ xÒ8 ;âûöTý¡¾àÚÁ ]¾ìV«å:¿ ’¯’óîaF?ÁJ]•±'¯$Id‡FHgGÂA£]¸®»tü ¥å9ÊÅz•r~‘Rn†Ja¥V¦Ù¨Ó¬—h*–g]S{Z'eÔã„í:­ßÐ|‚Är®í‹?™åÂ[ÿ#b ˆåg¾‚aèöjHÿ½9oÈÛ÷O mäâ[þÐùïz¯WH¤ß{“=ôO”vNLøàwþ ïxdÙÿ Ý€Àª tËCH|õÐ&ô?ú¥x á#oÒÉß)°€ßö?&äÞ<ÎDæóä',.dÀF/IbtÓŒŒŸá·ús€Ð4F­L£^±g+šT ó”s3ÔËË4ê”JžJnšzy‘Fµˆ¦6;̂è×uµºb9˶žs=—ÿÚÿÁˆÓ÷·©zü)”¥ý> %H•ZOë¿÷êßdxl‡_õwŽ^ ð :áBï‚‚]¿Ûο™É'þµ¯ëÖŽÉR­´ŽOæ‰G¿ÏU×ÿJ¸÷Àë¥{p’iMW8¹"ÐÖ:hiq‰‡~˜ù…R$R$R$“$R$IדŽ$Ç,Ó¶§ÇãŽ$Ŭ©2AŒÖ¼<ü/(JèŸkÌã1mYq7è´Ë2L%™TvÉ̺¶eßÄùávCÓ¨,ÏP+Σ”—i6êÔKóÔóÇPÊK4˧Ÿª”mïÁŽ­Ê|ã¢L¡˜cââ[¹üÁø™¯¡í.̺Y¥_~¹CðƒtèàA×™J,™æŠ·ÿihß?aýÿ0 À;c\ÏøYW1¿ÿ‘ˆ/iõ$‰"»víæÙgžòñÿ县áŠkÞdi¼th]ònÔ¯.€;ÇÒm=@«Õr¿2Ã0xì±ÇøÒ—¾Äƒþ€éé鮈Åb¶À²,ÛG/ÏâÇIÉ’É”uHO8@bã‰ñdŠxb ãK¤ˆÙñ±¸u.H1Àó"=ãÑ%ŒçèuêYfpl‚ì† ¿•Ÿ×ÒO×h)eT¥b™þªM$šÕ<­F•V-O=?œÝÄ%ï{w]Š(Ù¯:0 [™êÜ ¡]‡jJ“ù¹v7â¼>@vÝFëy"4€Žn!­?ÑqÛ/¸™…?%¸ËÑZhË–Í<ÿܳî &ÀsO>Ê‘Wžgïyu x˜àÓ…çh^0‚ÅiFýÒ¼NÞ#5EQÌ矞{ïýwÜqGŽéùªªZƒˆýs'ß3‰’D"ÙŽ„ ±Äñ¤0±dŠxÜ::Àáüäı¸•^N¤‘ãȱ¤ÇçŸÜv6*zýÊb wÏp¬ÕŠ™¶fa&ç·~ú,­=¸_¡Ãžò. ]VÿÁ÷ž²£\~ÛwUýƒ-zèy08ÇÑ­{Þ¼‡Âñî{®†$Q`çîÝòø/h(uîùÊg9çþC´€¯ øê¡]mî‰ §!õº9©×ë8p€t:Í»ßýfgsôèQX^^v7EÑjåíŸ(Iˆ‚`·€:-µ…RWÐzœó^+ºŽR« Ô*+'î•lj¨%è®óPO·ÆâÇ-ScL\ qÂ) Pâm ‘ãñ©á dýöÿµÅ”¦Ÿ¹µö×Z«7ü}ÿ7üë6íZ:Ô~:[ùP­À9—d¶Ÿ÷ƾÀÖ-[8zø°¯ëôýï|•|ì2<2²ªþ?"]Ÿšþ^KYÕÕúÕp ¸»uLÓ4~õW5*ŽÙ¹99ÊâÂ"…b‘cÇ35y”¥¥%Ê¥¥R‰r©h]mÀDlë?9&ÛÛOµ-ù4M¥ÙhÐl6!N²Z=,oµZ4 ªÚÂ2ÔDÑcéçøôÓuÍŸÕXøu>ð«êDô×?q?ÝìqnpüwbŽû°ökójGu·7“ã¼á×þ¬³ïOˆ àˆ^Í„½šÁŽó®ç•ŸÜI³Þö]°VÊf2ŒmÜÈÜìq—W¯U¹ç«Ÿç·ÿ£½µô'È[™^}5¡/ iZO@³ÙŒ”Aزy3›6mîܯÏ>¯T* EjµuEanö8ÓS“,ç–(•JÌÏãØô$ùekþÞY”$ËÎcšèšÖáXD’¤R®ãP¿ÅŸcágùÔTKmv4ɶÕMÅÐÑU•FCAS›ö^rÛLY°¬ Óº§V«I³QÇÐû¿8jýö}L\øFßÔ_ué0ù£íÍ9ÂÔÿfKg~ÖÓ÷¿î½ mØÞï%¤¥‡`ô‹j9EQ⌠nbÿÏ»/M^™LLLøà{÷|™wý»“ÌFöë}jþ*5…Ó•úÕjÕ•¨n@˜!P¹•h¶UIÇ&a¸% IDATЙr;÷¼‹"çì5Ý`q~Žc3GÉçr”Ë%æŽ1{lÒò X-S-—¨UŠ4 -K¯¶ãP|-£7ìXøY¦Äf¨à ‚@j ‰Žüí4"B"é0èñTÜ Ó¬õ šJ«Ù@m*p¹ †,cÃ4Yœ?Þ6 ^ÿö? ˜?ÃÌ/îBk)÷d}¾“S“.0$Óüþíÿ©£õ÷½«( ˆ8¤›¸ð&Ž4êUj•"FV³AiyŽåù)ª¥õj‰òò…ÅiªEË“°Gk <ÿÊÕ ‚D¹híÍ—]·‰×¿ý?sÙ-ôõýëÅãÌ¿ôÃH‹?APu“¹Ù—wÞ5ïbtÓ„bàkÙ=ç+Î ë·îaݦÝäçü zÖBñxŒ­Û¶qð€ßáÝwü=çý¯ÏE¶þ^ž«yîÛ'ñ§»ôs\‚ÑÅ' ®ë|UUyá…¸óÎ;yå•—Éd2¤Ó2™ ©t†´}žNgH§I§³¤ÒRäxYŽ[…ÆHrŒX,‹#Éq«@Œ  {ß_°ÿÌã¨Ô†`[ 0Îȸ–}[wßañ×66©),LQ--¡TËT ó§\WãÍz…FÍòÿ§k-wÄÞ!¥R™á±\v˹ò­!žLwl zô_¥Y/uÑ:¬Öß§Djk~íO|ƒÝú¹¯%t@8È Oy> À“ïëÞÂO¿õɰÏê„iâŒ3:àÁîáCügì8cgG‹Þ±ÉI@ÐÉ;©_€;(‚fšf”O@÷zµZ{/~ñ <ñÄ(Êê-|b±±xœx,n¹ëŠÅìcœx!‘ÌX.¸ä¸ûå8RÌ>Ê DAİÃÙöÛ4±¬“)Ÿ)0´µþó„ œ; pè§w¡6ë¡-¿Ã››CU-ÛQŠqã»ÿÜçÓ CC Bðµ¢^Ñ‚c©,»/¼žgþÚߨŸvíÚÅüܬ ïúâgøÝÿ'’Éx‡P»ÎL"Þ×Ex P¿ 'Ÿ€•J™}ûöñÑ~”b±ÄÑ£G˜™™aaar¹L­VÃ4M«5·¢(bš i*õºB£ñêÙ·š «?_8ñ]l%9fuSlÁ÷‡-G£‰ @Y 8Ü_Ö27Èwâód†DÊ:EÙ°RÎqô©û"—›¦‰ÈìqOßÿ ï`ãööf¡N«gå´þÐ!졼aïxü‚äüξìfžýñ×ûº>`hhÁ¡!JÅö”àÂüq~øÀ½¼åmï ½!ì™O}ëBt2 «yÜë_o|ãM¡qår™0;;K>¿Ìôô4‡fqa‘b©D!ŸG’JÄã(Äãqd9f;ÐuƒF£¢Ô9#‹#K2‚(`&j«E½^CU[ˆ¢„$µwôË*P³·ï隊®©4O¢¦"Ç’$2ì<ÿjnzÏ'ؼûB×¹ ÀÑ'î¡^ZÄ;«à%A8~ì¸k$Èpû>Ú!èVÚpM C#ð¶üa¼.ça³™¡uì:ÿj=ûã¾Õ›(œ¹ûLž|Òo}ç?ÍÍ·¾•d"ÝïÚA?ZÿS¡5ô zr  iZ`=Z›¹ôÒK}<§_Üji,ç ‹%êŠÂüüÐæ—óÂ3OrÙ¯ï­å ¶þÐ?pkn%PÕV$„‘S¡±˜ÌØØÖoØ€aÂ9çžÇu7Ü:g_­Ö8rèss–&1?wœ©£‡È--R)•(• Tʶ`³éÜwÇÑ4 ËêÎvÐéyF’É€uŸ©cšºu¯iji†‡²ˆØ !ˆˆè´šM”z0mÿ2’(ƒ bšªªZ^…–µž Z ¢Ú@¥ëÙ‘qÞðÖsÍÛ?B,‘ô-Op&d_þéר——;žÑMgš,.åÜ NEQâM¿õÈ^†ž—Ö!ìa¼€àyÝZÿ`Ëï†Ígìe|ûæ&_êõê‰vïÞÍË/·ËlµšÜñÅÏðº xŸÀ³¬¡õ?UÔ¯Õ€^}¹k¨êêmÝ}Zˆ% sQ'>NsîùqNˆ©°¦é”ŠEJ¥"Š¢_^bfê0‹ó³TÊEfg&™?>Eay‘F£m*µ_7+@kÃTÕ5¨ ¦K$â~¾©¹îÏ1‘D,ƒ0˜ED×m¹Ó›†‰(Éüöÿý}†7l‹ìÿ7ëe^ùÙ7|õÙ¡þ‹²¯ïî•oaëÎ}¾úwêØw¡ „ ~X\ Å÷ž‡ù  œÎ¹ì¦¾Àæ-›9tè ÏXíþïÜÃÒâ<ÇÇ{nù_còß7  'Ÿ€­V3Ò/`ù*ØSá"XsññÁ¼"–Kð‘ÑQ†ÖZF<&\zåõm£%`³ÙäØÔ!çS*.“_Zàøô! ¹yª•2Õrj¥H«Ñ^šÜݧ~o¦ÄAžièZ§'âKßôïX·q›@À70ùôŽv”ï½þÜÜœÛUŠ'ÓÜüÞ·…[ðÔaBïŽxÜ9öÁn€ö^|?àNê•BÇ3(¥ßÄÌLÛ1M³ÙàŸ¾øw|ì/þÏpa¹ÏµÑ«'Ã%XWj4¢Wv¿F òÍ>maw]xxòº{ôyòÆ &Î<—»ÏíØ¬Ó0LjÕ2•R‘†R§V+3ì(¹ùªå"ùÜKÇPXž§^«¸û¬Öp $SY.ºî]îü|˜`˜&O?ø¥®#ÿºa²èÙågß•·²cÏ%¡}«Œ• ¼PÏ@Áp(¢È¾ËoâñöÙqèÎ>¸÷wóá?øŒŽ®ëÞòêéÐ ]¾_€×%X×ÖÝë ,'!?ûÙÏøÌg>Í#ði~×Y`xt#{/áå§~ù|'B;wíôÀ—>ÿ÷¼÷·ÞçoõðZ¥WÕ' ÀÓO?Å]wÝÅ—¾ô”ËýÙÞ4MšMËóO…þí1 JeHgü‘JgIe†ìã )ë| %•´ÌŠSY{ûqÿOŠ'å8¢ ºV|‰D’ø†Í®…ß¶Ý´‚BÛâÏ„z9O½Zddl«ýì~‹?GÞ'ŸˆùÉãÿRççÚnÕëßñ Z¼Bîž÷  ô"øêðÜ“>lVàÒknë;lX¿žt:Cͳ£ðS¿|œÇ~ö(W½á þ{óü^«ôªúP”†yá…ðñÿ9Åb‘#GŽ055Éìì,…BF£A,#‹Å‘$ð |jµQfÆ'…L“z­B½Vaiavåô^»K’ K‹'l«¿r,N2•e e mÈ@fÈ>’°Î“©,Éô Ö:Oe‡I®óuGܰg Âã÷Ã0|}øü˜ËµwßÙ°…³/ºÆÞ{Eðć †ø CZ|¯v6f°yÇ™lÚ~sÓV÷nº,Ëlß¾—_öû"üÂçþŽ«®º Á^í½Ÿ×2õ ¼>»ÀÙgï1¢,‹Å"¯¼ò ³³³är9>Ä‘#GY^ΑÏç) (J0‰Ç-C°ÖÔj5t]·Ã2ÞM×i( õz Q-ãנ㎫ÕUU>!2MÔVÓ[ï $R¤³ë¸îm¿ËÛ~ûíþ¿ý1zæaŽyž(O¿‚ P©Tݾ?ÀY\ÍÐèXGkìê„ATëOàÝRÁMtM'o!I’k:ì–zÍ2ŽÅìý¤º¡Ól4¨×:=\2‰'xë>Æ5où€Ð5ÇîÿâŠ>r¹%ßùÞ‹¯C ysa-~]»Ð A-Aˆîÿ{Aa×Þ‹Ù@©àžµ(ŠlÙº•Ï^Õj•Ïîïù»¿÷»­S¿¼»­ÍJ@£Ñ<¡zK¥R¤R)÷üu¯{]‡‘iBµVçð¡CLOO‘Ϙœ<ÂÔäQæ)—KòËT+ Å7Ên­f“VÓoõ'I"²líÔ‹i¢i-÷YñÉÄ:$I&[BE Ó4QÕõZ ]×򾀦æai%–©°ã×ÏZ ØSŒ:j«åÛÀ =8›~õÃÜúÞÿL:;:xøÅG™|éñŽúóBKÕ¨×ü£ç»Î½¬£µ÷ >Ô|o¼G zmùCy]ºÁq‡ŸÉræ¾Kyò‘ûC¾š§Ý»vqüØ1Ÿðå;þ‰?ýÓ?cçΉ׼êïPß@ES×ua% `5ŽAW"÷#±Ï N±ïüó9÷¼óÛ^{l€h6[,ç–)WÊÔjuŽMO25y˜åå‹ óL=ÄüÜ1ªÕö¼=„êx§Ö4MuýÌ{ÓɲÔvÆiºU¦(¤’¤’îVÞŽb4Õê–ÈrŒä@šÝ^Ç›ßõ¶NœÓ±é‡WxôÛÿ€®k÷ë½ïJ¥sêlýÆm*­·ˆn€÷]t—¢ê‡j~”Ù­ À—]×wÈd2Œmd~¾½>BÓT>ù×ÿ‹¿ýÛOŸ”ÖÿT€J?5VM[Ù1hÏ×Ä?o/y‚màcóãñ8ã›616¾ Ó„}ç_äç¨i:Ó“G˜=6ÅòòK óL=ÀÒâ<•R‘r)ï®%z鉢 )q<‘´–Ë–7ß[&V«AS©ÑTjHrŒ‰=qÃ;~3ξÔ'øÎÈ¿{à…Ÿ}—C/<滟Nà)Ùnü”H$|Æ?Þ:v‚—&ü~7Áï&è‘ÐE+رëlF7lbyÉ¿ûïZ鬳ÎôÀW¿òÏ|øCbß¾}¹^[ÔwXi”^ÓôPiQ…ŸÿüçÄãq†††ahhˆl6»Âu#„ŸNpõèãçã•e‰3vÉŽgvlæ©éåRr©H£¡°´0ÇñéÃäç( ›:ÀÒÜ1JÅ|GK +õ ·îäïÿ(¿áW䚮Ӭ×h(5DI&3¼L ÚÅxgj•ßÿÚ_ÙiÃw h©-Z!ZX½’'•ά|`à}+~ÇÑÛÒ÷ üAíáüË®á¡ïÝÝñ\k¡¡¡!Ö¯_O.×öQ*•øÔ§>Éç?ÿ…¾^Ë¢W_è'è@Œ€ç« ýNNNòµ¯}¿ýÛ¿a~~¾#½$I>@pŽÃÃ# [Ç¡á!††F²Ž©t†D2I<ž´ ‚쟳Z¹HK?»9 šÕz²$2²n”¡‘QLvµÓ¼ÉÕ$¼+ ¹yŽO"¿¼H1Ÿcnæ0KsÓTÊE Ãà²kß›í÷bqWÀeIBv¼ãQó»|GÚñ?úæg˜Ÿ9äŽiDþ뚆SûŸflóv+]G>|ü“5Õ5èÅoÀ…—]ã~«ï³.{öìayyÙWŸwÜqùÈsÞyçõõZ¯ÖÒq/õM r0Ð0 `ÿþý|æ3Ÿáë_¿›¥¥è\]×ÉçóäójkI’D2™$‘HZǤs`hh˜ìà0CÃà 3hŸgíãàÐ0™ì0Ù¡2Ù!ÖÀ£¯õ#ÄâÏs}ÑÒuÆY?îßé×7 wù®Ó’ûæô?!$Î xöQ~|ï?®8òoš&’ ­³'r/¯»á­Âïy¸Õ€“îD áÎlßÌ–í»˜<ÔßU‚###¬ß°¥Å¶Í„®ëü÷ÿþ߸û3Fý¡×¾€ã jjìÅ_ßÿþ÷ñ/ÿò/4Ð4k%]שÕjÔjk÷À‹ÅÉ184BvpȆìÐÙìç|p„Ì Öä–Pb€X»Ï½Ô½vPðÁ/üQ@°` 0¶ðBô€`dëI¹ôÊëû‚ pÎÞ½üØ÷Ýw<ð·Þzk_¯÷jS?Àù²ºê1ëÖòÁþ·Ýv;ì'ŸÏ33sŒ£G°´´DµZ¥ZµæÖ‰„íöKF×uêõ:õz½[ñ}'Um‘_^"¿Üû<³$ËÖâ‰ñÄ€ÛI&Sd‡Ig-m#vÏ3Yë8ºq gœ¹/²µwš¦17sˆ/ý?L!7©öƒ_9ëè(µ2Ÿýâ/?÷ ™ì°'½§ûŸàat´þÞp·.Am ÌkPè¬@öžI/¯gÕ488ÈÆYXh{$VU•¿ø‹?çæ›oöì=ùÚ£~Þ¹ m Š²Ù {÷îeïÞ½¡ñóóóìß¿ŸãÇ3;{œ—^z‰ãÇ“ÏçYZZ"·œh8`­Û¯T*Ȳl/²¬UU£Z­ i’$Ù¾ELÚ§ï甤—tM£®Y&Ä«¥³Ï¿œOßý˜Ûò;ªÿòâߺëo¸çËŸ,§©ÃÃÃè![ˆ§-½À ËÉ*!Ï~äå§øÄ¿¿?ø?þ³ö]Ö.Óët G ¼°Ù¨Ößá¬eýØ&r‹ý 8çœsÈårèžeŸ{î9þú¯ÿšÿò_þK߯÷jQ?5ç‹ê ªªºkWÂh||œñññ~«Õ"—ËY[„—˼üòKLMM±¸¸ÈÁƒ9tèËËËÔë5¥]¼(Š$“I{qkÊÍòå'“HèÄbqË? Ý7n6TkU$Q$f¯GMU©Öüæ³'ƒ Cw­ûL¬–þ‡ßù w~ú¿±0; ÀðÈ(ÉD<ÔU™#üQÚ€aŒ®_O¥¾hêÈ+Ïð‰ÞÄ·¿[ãClÛ¹·Cè½ao\¨úo' ÓºŽDtþßö¾4H’ã:ïˬ£é»gzç>zf, ‚Ø@›¼d E„` ÊKv„H„‹–6E[,›@F8‚¶4‰á‡$2lø e `DM®À5a‹™]Ìîbv®ž»Ïª¬Lÿ誚¬êª>f»g/¢¦*_fWW×Ôûò{/_f…P8yêÖ@"‘ÀÔÔ–——=ú/}鋸Å_ü(n¼ñ¦¾çqH?À°÷mÛÆÑz]]×1>>ŽññqÍL@¿!°¼ü:––.`mm —._Æ«¯¾Šõµ5lmoc{k ûžžß00MÃsݺÍ,¸e¡a՜߇X4Šd"á¾x„**8·P«ÕP«V Ú“˜U`4(—÷!„°ßâKAà,,júã‚ 4àų?Àÿáoáµ—þÑh ©T‘hÔ^¹Øl¹×ݸBhª‚\~Û[ÁKWËûøÖŸ}ßú³/cþÔ¸íÌûqê¶»16½€lnÃ'ÆÝsú ÜÑu:Ç‚zü@`—3Ù|àoꇜ:u +++žçgss=ôžzêé·¤+ÐÏ+vºÆ¶Љ\‹B07WÄÜ\<«øT*U”J[ØÛßÇöÖ6^yõe\]YÁÆú:–ÏãòåeìïíÙëø Ï9ñuÆXsÕßzÍS¯išËdÿ:‘H¸¨Ò\~¼9»±† ‘ ÁAÀñô“_ßõa4êH§ÓÐ4–ÅÀ\° ¿…€sn¯pC°UjÛ¸ðÊOpᕟEÅÉÓwâ‹ò=DcÍô讇ëÑ:H«Á{\ƒ€²Ó>;@PU§NÂOúSþ™gžÁýÑÄoüÆÃûîAI?@WÜØ^¤§5*Θ?Íáx<ëo·$ù˜ÌÂ…¥×pùÒ2677péõ‹xýâ"¶¶JØÙÞÂîÎ6ª•2,Ë ]Ç84@goY–ýÊoê}F©¨îzïñпø"T…âêå ØÙÚ„3®oØt?,%9è:üâaœ#ŸË"™L¡TÚ@ù s¼Â²*» àï ì4à/öö>]/9„•r׃©©)w¶ª,Ÿÿüçqóͧñ¡}h ßßoh+{{»u‰>~o[q<Û&ˆ¤÷gjª‚n<…“7žò,íÅppp€m”Ë(mlàÂâ+ØX_ÃæÆ^_:Õ•ËžE$€V@ð뙘žÇ¯ÿËGqïûÿ.T;)¨Û¨~§™ˆíÚrΡ©“““0M†ƒƒT+”Ëá`Ð<‡èA~?|ån Ð@ëú”4ƒ¯W.]h{?®U(¥¸õÖ[ñÌ3Ïxô•J¿ò+ÿßûÞ3XXXè5  ºŸ ÀÔo{qKKKƒ ½‡ˆüðù3ûdãw÷Rç,¤ºT2‰d2Ù†›€{ß÷ïúõ..½ŠÕ•+ØÚÚÄå×—ðÆå‹ØÛÝÆîv {»¨Õš‹šJ‘Å'ÿÉgðK¿ü¢ÑØaÂi.#Ö-€¸¿µ 6Ô†[T…"—Í`8Ÿƒ‰Â²,ìííáò¥å–ûI‰ðÒy ˆp»2ü :â$^ |ó¿ü)~ÿ_ý& É¢Ñ(¸ÅQ. |°~ð÷¦Ÿ’H$ð®w½«ÅXYYÁÏý܇ñõ¯gΜéù¼Âg‘~2€®`mm-i†ÐuýX®çE“Pد÷†ÂÛÞŸñç¾åWÀÖ;u‘h7¾ 7Þì]Ò‹ `·9 Z-ccu«W/ãÎ{>ˆÉ™y·-±_¸ç}”R”ö±±z›«—±·»…j¥ùÝxݲv ƒÊ"„€Ñ¨ƒ‚\.ï€Ln¿öÏ¿€øPÂC½ý÷×ßÛËDzq·ð:þÃÁ×þøKnŒewç0†¢iîô½t"5IDATUj255…ÍÍM¬®zG.]º„~ôð•¯|ûØý€{$ðBúɪ@x °#.\à‹‹‹ÖéÓ§#ýúînÄyàƒF—{™øƒÊ‡Ù{2h¤3Y¤2Yœ¼éVOZ°ü9'ÏÿÎ{ßwßóþæuÈŒ„ l—Ö°¾r »Û›(ìcw{ë+ËØÝÞD¥¼‡Zµ‚jyõZ¦Ñh lzîK[vѬ£”â÷}¿þ¹/!_óoó‡­Û»0ü žÿêÊeüÖCÿ?~þû-ׯª*†‡GpË-§³“Ç!”RÜ~ûíî me)•JxàðÀà÷~ïœíP¯V«éÏ>ûlíôéÓýúê®…¸¼LðöøNàP¯{àÔûlüò\È`6ç‚ê]HíB F c)Œµ®`˜¦òþ®½ÊpõZëW/a§´†ƒ½Ôkl¬^¶ËÛh4ê®!@:›Ç§>û¸ïïýCw˜«-Hu=V°³µG÷7±¹z333îõEc1ŒŒ ë†¤…bŽSTUÅ™3gðãÿå²7þÃ9Ç7¾ñ |ç;ßÁý÷ß_ýÕŒ÷¼ç=}ž;píÒ7¨×ënäHÓ´ªa¡ÿ•¯~õ?ÑOúÓ×…2ÛåÝoà@û^? ü¬ÀÝ#œk!ÞžßéZÁç.:€ÑuèÃ÷wŸz×]î¹ZDlm\ÅÖÆUìï–P¯U±³µŽz¥Œßý…O 06éá-î”\ö;ºìù¨WËP` `æ]$‘Hà½ï}/^xá…ÀIm[[[xüñÇñøã#—ËáÌ™3øä'>ø`ÀÙº²‡¾Mß ‰l7ì,9!„Þ®í‹/¾¨?ýôÓÆG>ò‘¶í%LÀÞ{Ö÷Í£o1þ€ú£lhSZÁ hß‚Âè £^µûÝ@W êxƒäs¾™E×uÜu×]X^^ÆË/‡OFÚÞÞÆSO=…ùùù8~é(Šò’sL)µ:œ›üöoŽÜsÏ=œR{ê­óoþe¬ü[ Ám[6 (>ðy¥Íæ?gàù¨ïšámöÛœûô›ÝÏÔSD":2¹ü[&Í6ã¶ÛnÃûÞ÷>Ü~û혙™A*•òµê‰Ÿ TúvW …Âb¥RùŒ1g]ïNÑò…/ü;íæ›o6>ñ‰O\W84ò°H?BÏÉa8Ðas¾»Ý¹V _ƒÓwø_æŒ @:WPç4Ю“%Òñë%]/Àþrèžcãøƒÿ¸åØ\_Åvi{0¶JØÜXÇÞî:jµ*å2jµ*c‡=%±X SSS˜šš<ûì³8°³-ãñ¡Àϼ¥ó^~ùežËåþg­V»hŽ(ŠbZ–¼MSȧ>õkTUUããÿøuà0HÎ 9¤ø-A>!µAˆ¡K Ñ«ïæëwÚ#¤ì(–l%îŸN*ô 6x9lïÜÛC×€b|b¡¬ÌhÔQ)—Ѱ_Ù^­”±ºz[¥ªÕ ªÕ*VWW±±±r¹<°)á~q¢ÿwß}7~8xÎÀõÀª¾òªááá/|Ö4Í$çœjšÆ,Ëò¸§~)—Ëêƒþ}¾¸¸Xøá‡#‰Dâ:à`SœÊ5*ÛG‹ú; ÑKÏßÎàå<¹g—ãîz€hþñÉáuûo¢cøínnPßÏwˆ¬ë’ Èm Þ¯'‡n†G'•ýu±¨½Üº·ßvøÂS¿X–…õõu¬¯¯aõz¥R «««ØÝÝC½^C­VÃÁÁêõ:LÓ<2«x÷»ßo}ë/ËåëßÒ ^{íµ½ñññǯ^½úOÀ4M]×õ†a’~èïüοŽ|ó›ÿ£ñÈ#ÿF|øÃŽù—·:.qÒv‰?@0 ¸'ð=á à¯C‡cÿžøt)ûEvCÚ‰Ì < €xëÂ:~»aÂnâ4þ÷‰¢(žiæAÒ\pfµZÝ} ÝÊÊØÚÚF¥RFµZÃÕ«+(•JØßßwßt-Ë-·Ü‚'žx"Ôø¥»y¬Ò÷ÈŠªª_ˆF£÷ÕëõÀ4MM×õºaÑvŸB³gÏFï»ïç1;;[ûØÇî'÷Þ{¯677G‰Ïår4“ISM¼§ ?ôB{sy³­œH後HeùÑòƒï‹ x~cØo—üíB‡í?²¾åXbòÐ_/†ß ü“†ú!‘H‘ȈG×./sîº{{{0Œn»ívœ8q¢Ã7¿0Èýùõõõÿ%MfᚦÕÛ%… !„ÇãqžËåh:¦™LƘžž úØØ¸5çææ”b±¨ W®Eäå¾åô].·¤õ†éì½cÌnÙ_ï¯Ãágà×ûê$U‹²ÝãÕò äràÖC×@`ôý4þã”çž{=ö¨[n4üÛßþ¶C…€¿PP°à@ÚØú2€ €*šósê {3íóXö&2¶²¶¶ö—™L摽½½Ï !T!5M3¦ëºÁS8ç]çC !h¥R¡•JW®\™®{FÍ™™‹EurrR 6?¿ ÌÎÎ*Ùl–§Ó)äry’H$H·YˆhßïÊÿoWOàñõ=®@7=¿¬wêàÕÉ,Òw¢@ˆ±ûª==<àëÁ}çiéÝ¥Ïw :íÂÞÔ‰ ¼#ÝËÀW“Éä¿åœ'ö÷÷?4)¾aºªªLUU“1Îy»‚ž¥^¯kçÏŸÇùóçæ³à‚…ªªH¥RÈåòH¥R¼P(XÅâ-‹txxÄšžžÅbQ˜˜ þøƒß˜œä¡ `pšr‡Ú#|#!e8:[é;†ã@jë×{ê}¿Ã/A˜dð®>zb!†ßMÏô¡·‰ñË^ç5ËÀàÊ•+€–Ëåv÷öö>kYVc*PJy$1,Ë¢ªªÖcÔ²¬˜EÈíáþEcTzÁñÛ½”RžË嬅…:;;« 699%Ôññq$’IžNgI&›¥º®»CÞø€¼®€ÇÐ%fŸ^v ü  %ãOfð§?Hí¯o'AÍŽ2Ð ôlø’n¾þ›\ü†/|:¹+xzÕÈÈÈïsÎÿw£ÑøZ­V›wôœsÚh4t`Œ%@^RœUU™¢(uÆáœÇ4M30Ã0"Bˆ¾²ùºJ¥-•JøáxÇãÈf³Èd³H¥Rlzj³Å¢299-†‡‡­âüžžU©”ÇàÛ¨}ÌAmÀ@ªG›c™)ø¥§€\íØ@;2ø¶àìÛ€ÂÛL ^m=2p8þ¼ð¬¢(§‰Ä/1Æ>Ã;ÍkB9qÈ4Mjš¦»|X£Ñp?£iSŰÁ!¢iš €™¦ B˜‚pÎûùIµZUªÕ*VVV@}íÖAbÑh”MLL¢¸° ŒMàĉQ6=3Kgçæ•L&Ë“Í÷’D2E(!nŸ„õúA3FòЭ±ߟæûÛ]ÓH€¬ë¼ îí;õ ðµóȱ%X[–Õ(—Ë®ªê0ŸH$î0 ã.]×G…§cÓ¦iqλúßš¦©š¦é^£ÑˆÀRJÝK)ªªš„fš¦N)%Š¢˜œsØ`1g©^¯«.,áÂ…%G团(HÙ/8M¥3"ŸË³¹â<š™SFFN°±‰ ‹ Jat‚(j3^êþ—e@pt¾ïv‚þ `7B|ÿÍ!R£^@Öucø«ëò·ü Šj r€`@hû¯?öŒ±:€—ÊåòËþÔ0 ·CPUUÇã7Y–5ošæˆ®ëc„ÓŒ±QÆXJQ”<ç ÈAÓŸÁ²¬1Ó4“”Ò €ŒeY1Îy[ °Y†{Ÿep]œ`¥ÚÄO<‚7?ÒÿxÄîî.vww•<¼êflBD:“aŹy:=;§Nœ°ÆÆ&Ä‚261IRÉÏd2$›Ë’h$Ú]"‚Ááí*µZÛ5tjhœÎÆ º‚ëé´ d6àù˜´ ÛЩ®Z­.¸äè¥`%¥”¦dÄ"‘HNQ”˲Æ,ËJêº>/„˜2M3í»ºÍLÉ@pð‹ªª\Ó4ƒs.cQMÓÓ4M­Ãú G!ÙÝÙÑ^Ø9‹^8 ø|‰ÆbȤ3Èf³H¦RÖä䤘››§SÓÓdddØ*çÉÜÜœ’Ëf=txÇðÙßoy­™l°{hÍåc€À•7K @.wjëßÚ>z(wjëêLÓ¬Ø@l÷⯜6và¨íb,0ÆF„MÓæ9ç“,¢#PX–¥À6:Æ,ËŠ:ï dŒi„MQD£Q®ªªaY–`ŒETUµÐLžR9ç*!Äâœ;çë›íÕk5ºV«amm”ýOµûœéºn‹……erj ' kvv–ÌÏÏ+ùü°H¥R"›Í’t:Ý’’ý³./z_kV¯×-í šÆïlAL€Kû®â×€Vua¾K¯ŒuG9n‹z½þšÿ¸ÃfCº®§TU½Ñ²¬QÆX*‰L !ælø? Z”ÂꀥBJÑ"‘E¶B(Šb`FCE3Xi˜¦)F´Ý0뵈aÊòò2–——•œ†T*ÕÌ´ÌdD.—³ŠÅ"™››SFGǬ±±1qòäIerr’hÚ@ˆÎu“r¹Œ¥%/¾°ÕDó92qÈü`à¿+k—3àÍÀáE±N@ Èqì{Yf ›°Ý Ã0žsÚT«U·½ãb0ÆF9çI]ׄ†a¤)¥I{T#nÇnS€f¿>ÌÐZw-À¶ï(ºeÜϦëz*‰ÜÀ9?Á9OÅb±9BÈ ç66ÆOž¼NMMÒx|ˆ«ª*8ç¨ÕjôܹŸX?úÑè“O>ÉÔ;ï¼“ŽŽzz!Ξ={ammí»h¸CÃö3y 2~?ÈîÁ›ÞèFºý Ú] 8\‹kvÜ@«ï“ ˆ¦i1UUóТēÉä¥tZ‘L¥R㺮ÏB†…z¿ÁÍä(n±,‹X–eÖj5¾¿¿±ÁÜßßWœµ'Ž[šsHT!‡®N€&øå–[øÌÌL hmoo—ž{î¹ÿŠÃ±œuþj¾½\(l¡ÿx‹2€nå(¿íÍ ýfGe Aº®7]×ãÉdò$¥tŒ’J¥R“68dUUŠD"9Jé­¬A !¸íbðƒƒƒcŒ7 sooOm4ªeY–išh4G$“I~Çw 轘Œ±ÆóÏ?ÿõÝÝÝ+h®cÈN¯î¹ì´éäû¿- L®70éûÅ zŠ^ØD· q$°Ð4-ªiZž’T%’ÍfçUU$„dR©ÔÈÐÐÐ<¥t˜º‹E8ÀÐI„‚sî€eY–ÃêõºÊ3Ëå2?88ˆ\Kv4åsssbzzšèºxž—^zé¿_¼xñ,}䨿CŠïlN/ý‚Vö÷þ?3.À ä8A"¨®WFÑ-0\+“èÁ"¨®ë‘L&S´Á!•Ëå&¢Ñ謢(yMÓâ±X,G)MPJu? è‡pΙÍ\p¨T*|?âÄ#„DJ©Ð4MÉårV>Ÿ'…BRJ/†sn---ýÅùóçÿ M㔳ýd£–@Þõüm{àèUŽz¿úÉ :ézŠ£0‰£²‰£‚p¤”÷žvªªêÑh4O)M(ŠËçóS‘Hd–RšI¥RùT*UTå„Í"úúìÛ9\BˆPUU!HÁΟ?ÿŸ—––~ „pfü9†ë²‰V6 }ígh3sðŒ'ƒè•-t*÷ÂÚÕ•9t*…MxÀBUU5ŸÏÏëº>A)Íd2™‚íbä5MŠÅbYJi€ÞÉx¯Uööö^{ñÅÿdggç ¼ôÜéµýÙ~~ 0}zÿ< ‰BnRÐ;p¼òfdÝ2†°º^ÁÀ¿ï0ŽÊ"ºÚEÑl7"E‰ OF£ÑJi~hh(ÉdE9A)ÜŸ®¥\.¿¶¼¼üÔo¼ñC{r™µgó´lðò>(%Xž4A¨¿4èé‹ ‚=´kÓOètÜý Áp-‚6J©*¹ét:=œH$ŠŠ¢œP%‹Å’„…BÐZ­¶cÆæööö‹›››çJ¥Ò"Z%h¹/9ˆçŸ 6;PfAsœïzÞbòv‡ ]?˜ƒ|ÜÂôÝlMpPlPÑœpGkµÚ®Õœ<ô{ñ³g0?ÈÆÔãwêùW© ¸ˆwä­-ƒ‰võƒ‰~1‰ãb†|$a®€ A€ · [¤e=€wàí%Ç ݃_× «ë7Ht…víý×)‹ß`ýLÀOïƒt¡>¿´ñÿ`¡qàßpIEND®B`‚(0`  * >Yt"""‡n?6&  2 Jf€###›---µ333Í666ä222õ---ý$$$þþþ666þ555ÏmM*  :Wr ¨ÁÚïúþþþ þþ888þTTTÿqqqÿŽÿ«ªªÿÈÇÇÿâááÿÎÍÍþqqqÿÊuA -Hcš´Îçüþþþ þý0.-ÿMJHþjgeÿ‡„‚þ¤¢ ÿÁÀ¿ÿÞÝÝÿùøøÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿ¿¾¾ÿ$$$ù”R! Ož½Úïüþþþþ*)(þFDBþc_\þ€zuÿ”Žþ»¯¨ÿ×ÊÁÿíÞÔÿûìâÿýïåÿýðæÿýñéÿýóìÿýõïÿýøôÿýúøÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿÆÆÆÿ%%%þ£Z% ²þý ý@@@þ]\\þzyyþ–––þ´³³þÐÏÏþêæäÿ÷ðëÿýóìÿýñçÿýîãÿýìàÿýêÝÿýéÛÿýèÚÿýèÙÿýèÙÿýéÚÿýêÜÿýëßÿýíâÿýïåÿýòêÿýõïÿýøôÿýûúÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿõõõÿýüüÿÆÅÅÿ%%%þ§\& Uþÿ´³³ýýüüÿýüüÿýüüÿýüüÿýüüÿýüûÿýøõÿýôîÿýñèÿýîãÿýëÞÿýèÙÿýæÖÿýäÓÿýãÑÿýâÏÿýâÏÿýâÏÿýâÐÿýäÒÿýåÔÿýç×ÿýéÛÿýìàÿïâÙÿÊþÿ¹µ²ÿ¨¦¦ÿ—––ÿ†††ÿuuuÿdddÿSSSÿ<<<ÿ ŸŸÿÆÅÅÿ%%%þ§\& ‹þlllýýüüÿýüüÿýüüÿýüüÿýüüÿýûûÿýøôÿýóìÿýïåÿýëßÿýèÙÿ÷ßÎÿýâÏÿîÓÀÿÛÀ®ÿÆ­ÿ±œÿž‹ÿŒ|rÿ}rÿñÓ¾ÿýßÊÿýáÍÿýäÒÿýç×ÿ;³ÿ322ÿBBBÿLLLÿLLLÿLLLÿLLLÿKKKÿÿ===ÿ½¼¼ÿÆÅÅÿ%%%þ§\& ”þ¢¡¡þýüüÿýüüÿýüüÿûúúÿãááÿÄÀ½ÿ¦ œÿˆ|ÿmfaÿOIEÿ2.,ÿÿm_UÿPF?ÿÿÿÿ ÿÿ ÿ¦|ÿýÙÀÿýÛÄÿýÞÈÿýáÍÿýäÓÿÔµÿ³§žÿLLLÿLLLÿLLLÿLLLÿ'''ÿ[[[ÿùøøÿýüüÿÆÅÅÿ%%%þ§\& ›þÿmmmÿHHHÿ---ÿÿÿ#" ÿ30-ÿB<8ÿOGAÿ_SKÿl]SÿucXÿ™pÿô̱ÿ¨‹wÿ82-ÿÿÿF8/ÿðŧÿýѳÿýÓ¶ÿýÕºÿýؾÿýÛÄÿýßÊÿýãÐÿʺ¯ÿLLLÿLLLÿLLLÿCCCÿÿðïïÿýüüÿýüüÿÆÅÅÿ%%%þ§\& Ÿÿ­­­ýáààÿÜÛÛÿàßßÿØÕÒÿÆ¿ºÿ¯¥Ÿÿ“‰ÿyngÿ^UNÿC<7ÿ*&$ÿÿWJAÿiXLÿÔ«ŽÿÁœ‚ÿ$$#ÿÿ–wbÿýʦÿý˨ÿýͬÿýаÿýÓµÿýÖ»ÿýÚÁÿýÞÈÿƒ|ÿLLLÿLLLÿLLLÿ ÿ•””ÿýüüÿýüüÿýüüÿÆÅÅÿ%%%þ§\& ¢ÿ‰‰‰ýXXXÿ444ÿ,,+ÿ0.-ÿ;85ÿGB>ÿTKEÿaUMÿo_Tÿ{hZÿˆp`ÿƒkZÿybRÿnXJÿŒo[ÿüÜÿZLCÿ'''ÿaK<ÿýÄœÿýÅžÿýÇ¢ÿýʦÿýÍ«ÿýѲÿýÕ¸ÿòϸÿTSRÿLLLÿLLLÿFFFÿÿôïëÿýüüÿýüüÿýüüÿÆÅÅÿ%%%þ§\& ©ÿ¹¹¹ÿüûûÿõóóÿåàÝÿÍĽÿ²¦žÿ˜‹‚ÿriÿeYQÿLC<ÿ3-)ÿÿÿÿÿÿÅ”rÿ“sÿ000ÿÿß§€ÿý¿”ÿýÁ˜ÿýÄœÿýÈ¢ÿýË©ÿýаÿ¬–†ÿLLLÿLLLÿLLLÿ)))ÿxtÿýõïÿýûùÿýüüÿýüüÿÆÅÅÿ%%%þ§\& ¯ÿ“““þa``ÿHGFÿGDBÿRMIÿ]UOÿi]UÿteZÿk^ÿ‹sbÿ–ydÿ™xbÿ•t]ÿŒlUÿƒdNÿy]Iÿ‚aKÿëª}ÿ]NDÿ110ÿnP<ÿý¹Šÿý¼Žÿý¿“ÿý™ÿýÆ ÿùÈ¥ÿe^ZÿLLLÿLLLÿKKKÿÿãÓÈÿýñéÿýøóÿýüüÿýüüÿÅÅÅÿ%%%þ§\& ²ÿÂÁÁýúøøÿäßÛÿ̼ÿ¶© ÿ…ÿ†wmÿm_VÿWKBÿ?60ÿ*%!ÿÿÿÿÿÿÿD0!ÿ¼ˆdÿ<<<ÿ$ ÿâ rÿý¶„ÿý¹Šÿý½ÿý˜ÿÆ …ÿMMMÿLLLÿLLLÿ443ÿ[RKÿýèÚÿýîäÿýõïÿýûùÿýüüÿÅÅÅÿ%%%þ§\& ¸ÿžþlkkÿfb_ÿohcÿvkdÿqgÿ‰viÿ“{kÿœkÿ¥ƒkÿ¨‚gÿ¨bÿ wZÿ•mQÿ‹eJÿ]EÿwWAÿ„]Bÿèœgÿ_QGÿ;::ÿqN6ÿý°{ÿý´ÿý¸ˆÿý¼ÿzj_ÿLLLÿLLLÿLLLÿÿʱ¡ÿýåÔÿýëßÿýòêÿýøõÿýüüÿÅÅÅÿ%%%þ§\& ¾ÿÀ¿¿ÿÚ×Ôÿޏÿ¯¤œÿ˜‹ÿ…vlÿm_UÿYLCÿD92ÿ.'#ÿ"ÿÿÿÿÿÿÿÿ_=&ÿºYÿHHHÿ&"ÿæ›gÿý¯xÿý³€ÿݤ}ÿNNMÿLLLÿLLLÿ===ÿ:1+ÿýÜÄÿýâÏÿýéÚÿýïæÿýöñÿýüûÿÅÅÅÿ%%%þ¦\& Äÿ¶µµþ”Žÿ‘‰„ÿ˜ŒƒÿžŽ‚ÿ¦ÿ­’ÿµ”}ÿ½•zÿÄ–vÿÈ”qÿ½‰eÿ²~Zÿ§tQÿ›jIÿŽaCÿ€X=ÿqP9ÿzQ4ÿâSÿeWNÿA@@ÿuM1ÿýªpÿý¯xÿ“uaÿLLLÿLLLÿLLLÿÿ¦‹wÿýÙÀÿýàËÿýæÖÿýíâÿýôíÿýûùÿÅÄÄÿ%%%þ¦\& Çÿ¼»ºýý¹ÿ¬¢œÿ˜Œƒÿ†xnÿrcYÿ\OEÿK?7ÿ8/)ÿ#ÿÿÿÿÿÿ ÿ ÿ!ÿ!ÿnB#ÿ·zPÿMLLÿ(#ÿæ–_ÿñ¤nÿSPNÿLLLÿLLLÿEEEÿ!ÿöʬÿý×¼ÿýÝÇÿýäÓÿýëßÿýòêÿýùöÿÅÄÄÿ%%%þ¦\& ÍÿÍËÉþ·°«ÿ´¨Ÿÿ¹¨›ÿ¾§—ÿħ’ÿɦÿΤ‡ÿÓ¢ÿÒxÿÍ”mÿÄŠaÿ¸~UÿªrKÿœfAÿŽ\9ÿR2ÿqH,ÿ`?(ÿpD&ÿÞƒCÿbULÿ?>>ÿxM0ÿ¬|\ÿLLLÿLLLÿLLLÿ(''ÿ„hUÿýέÿýÕ¹ÿýÜÄÿýãÐÿýêÜÿýñèÿýøóÿÅÄÄÿ%%%þ¦\& Óÿ»¸¶ÿ¨¢ÿ—އÿ…yqÿtg_ÿeYPÿUJBÿD;4ÿ2,(ÿ%!ÿÿÿÿÿÿÿÿ"ÿ$ÿ#ÿ}F ÿ°sIÿLLLÿ+$ ÿ]SMÿLLLÿLLLÿKKKÿÿæ³ÿý̪ÿýÓ¶ÿýÚÂÿýáÍÿýèÙÿýïåÿýöñÿÅÄÃÿ%%%þ¦[& ØþåàÝþßÕÎÿÜÌÀÿàɹÿãűÿæÂ¨ÿê¾ ÿ븕ÿ鱊ÿæ©~ÿßpÿÔ‘cÿÈ…Vÿ¹xJÿ«l@ÿb8ÿY3ÿƒQ/ÿvK.ÿiG/ÿqC$ÿà<ÿ\RLÿIHHÿLLLÿLLLÿLLLÿ211ÿbI8ÿýÄ›ÿý˧ÿýÒ³ÿýÙÀÿýàÌÿýçØÿýîäÿýõðÿÅÃÃÿ%%%þ¦[& Üþ½»þ˜‹ÿ…{uÿvjbÿgZQÿXKBÿI=5ÿ<2+ÿ2)#ÿ*#ÿ& ÿ' ÿ)!ÿ+"ÿ-#ÿ/$ÿ0$ÿ2%ÿ3&ÿ5'ÿ. ÿ‡J ÿªpHÿLLLÿLLLÿLLLÿLLLÿÿΙtÿýÚÿýʦÿýѲÿýؾÿýßÊÿýæ×ÿýîãÿýõïÿÅÃÂÿ%%%þ¦[& âÿíçäþ÷êâÿõâÕÿöÛÉÿöÕ½ÿöβÿ÷Ǧÿ÷À›ÿò¶Œÿæ§{ÿÙ˜kÿÌŠ]ÿ¿}Pÿ³rEÿ§g;ÿ›^3ÿU-ÿ„N)ÿzI'ÿoF*ÿcD.ÿk<ÿÑ}BÿMLLÿLLLÿLLLÿ<<;ÿ?-!ÿý»ÿý™ÿýÉ¥ÿýѱÿýؽÿýßÊÿýæÖÿýíâÿýôîÿÅÃÁÿ%%%þ¦[& èÿÊÆÃÿš’ÿ‡}vÿxldÿi\Sÿ[NEÿMA8ÿ?4-ÿ8-&ÿ8-%ÿ9,$ÿ:,#ÿ;,"ÿ;,!ÿ<, ÿ<+ÿ=+ÿ=+ÿ>+ÿ=, ÿ8(ÿA#ÿ›lLÿSSSÿSSSÿSSSÿÿ­{Yÿý»ÿý™ÿýÉ¥ÿýѱÿýؽÿýßÊÿýæÖÿýíâÿýôîÿÇÅÃÿ(((þ¦[% ŒŒŒìþòíéþþñèÿþêÜÿþãÐÿþÛÄÿüÔ·ÿûË«ÿ÷ßÿô»”ÿñ´Šÿë¬ÿç§zÿã¢tÿÞpÿÚ™mÿ×—kÿÒ•kÿΔlÿË•pÿǘxÿO-ÿÞ~<ÿäÞÚÿãããÿäääÿÓÒÒÿ(ÿ÷°~ÿý»ŽÿýšÿýʦÿýѲÿýؾÿýßÊÿýæÖÿýîãÿýõïÿ÷õóÿrrrþ¦[% ñ þÕÒÏþ±©¤ÿ¨–ÿ£–ÿž…ÿšŠÿ–†zÿ’uÿŽ}qÿŒ{nÿŽ{nÿŽzlÿykÿ‹wiÿ‰ugÿˆtfÿ‰ufÿŠvhÿ‰viÿpdÿ0ÿá¥|ÿàààÿáááÿâââÿáááÿPG@ÿó®~ÿý¼ÿýÛÿýʧÿýÒ³ÿýÙ¿ÿýàËÿýç×ÿýîäÿýõðÿùø÷ÿvvvþ¦[% ŠŠŠ÷ÿöòïÿþóëÿýëßÿûãÑÿúÛÅÿøÒ¸ÿõʬÿò¡ÿí¹•ÿ鲌ÿ䪃ÿá¥{ÿÛŸuÿØšpÿÓ–lÿГiÿÌ‘hÿÇiÿÄkÿ”_:ÿÓv6ÿÙÆºÿÕÕÕÿÖÖÖÿÏÏÏÿÐÐÐÿ›ššÿ“jOÿý¾’ÿýÅžÿýÌ©ÿýÓµÿýÚÁÿýáÍÿýèÙÿýïåÿýöñÿùøøÿvvvþ¦[% „„„üþÛÙ×ÿ»´°ÿ¶«¤ÿ®¡˜ÿ§—ÿ£‘…ÿ €ÿš‡yÿ—‚tÿ˜rÿ•~nÿzjÿyiÿxhÿ‹ufÿˆteÿ‰ugÿ†thÿ‚shÿ-ÿň]ÿÉÈÈÿÊÊÊÿËËËÿ~}}ÿ‚}yÿÍÍÍÿIB<ÿöº‘ÿýÇ¡ÿýͬÿýÔ¸ÿýÛÄÿýâÏÿýéÛÿýðçÿý÷óÿúùøÿvvvþ¦[% ©©©‚‚‚þýø÷õþþõðÿþîäÿýçØÿ÷ÛÈÿôÒ»ÿïÉ®ÿêÀ£ÿ縘ÿâ°Žÿߪ†ÿÙ£}ÿמwÿјqÿÏ•mÿÊ‘jÿÇhÿÃhÿ¤oJÿÈw>ÿϯ™ÿ¾¾¾ÿ¿¿¿ÿ¿¿¿ÿ'&&ÿË“mÿÆÃÁÿЉ‰ÿ–t\ÿýÉ¥ÿýаÿýÖ»ÿýÝÇÿýäÒÿýëÞÿýòêÿýùöÿúùùÿvvvþ¦[% ´´´ ýþàßßþÉÄÁÿ¼³­ÿ¶ª¢ÿ³¤™ÿ­œÿ¬˜‰ÿ¦ÿ£Œ{ÿ ‡vÿ›pÿ™€nÿ“{jÿ‘yhÿŽwgÿ‰seÿ‡tfÿ‚qfÿ=/&ÿ¨qJÿ³±¯ÿ³³³ÿ´´´ÿЉ‰ÿC/ ÿý³€ÿÕ¸£ÿº¹¹ÿF>9ÿõŤÿýÒ´ÿýÙ¿ÿýßÊÿýæÖÿýíáÿýôíÿýúøÿúùùÿvvvþ¦[% ÈÈÈyyyüÿ÷ööÿôðíÿòèáÿñàÕÿí×ÈÿëнÿéȲÿ㿦ÿḜÿÞ²“ÿÙªŠÿÖ¥‚ÿÔ |ÿÏšuÿÌ–qÿÊ“mÿÅjÿµZÿÅ~LÿÍ£…ÿ§§§ÿ¨¨¨ÿ©©©ÿ:99ÿ®{Xÿý¸‡ÿóº“ÿ²¯®ÿyyyÿ™}jÿýÕ¹ÿýÛÄÿýâÏÿýèÚÿýïåÿýöðÿýüûÿúùùÿvvvþ¦[% ââârrrþ þïîîÿ×ÕÔÿÓÌÇÿÊ¿¸ÿŶ¬ÿ¼«žÿ¹¤–ÿ±›‹ÿ®–…ÿ§|ÿ¤‰xÿœ‚qÿ™€nÿ’ziÿxhÿ‡seÿ…reÿSC8ÿaAÿ¢›–ÿœœœÿÿŒŒŒÿ'ÿø³ƒÿý¼ÿýÁ—ÿȱ¡ÿ£££ÿD>:ÿöÒ¹ÿýÞÉÿýåÓÿýëÞÿýòéÿýøôÿýüüÿúùùÿvvvþ¦[% ÚÚÚnnnþ$$$ýôóóÿîíìÿèâÞÿäÚÒÿâÒÆÿá̽ÿÞijÿÙ¼¨ÿ×¶ŸÿÕ±—ÿÔ¬ÿЦˆÿÍ ‚ÿËœ|ÿÊšxÿÉ—tÿÁlÿ¾ƒZÿÑ¡ÿÿ‘‘‘ÿ’’’ÿHGGÿ‰dKÿý¼ÿýÁ—ÿýÅŸÿñÄ¥ÿ››ÿjjiÿ›‡yÿýâÎÿýèÙÿýîãÿýôîÿýúùÿýüüÿúúúÿvvvþ¥[% ÛÛÛjjjý+++þöõõÿìëëÿåâàÿÜÔÏÿÖÊÁÿ̽²ÿų¦ÿ¾©›ÿµŸÿ¯—‡ÿ§~ÿž‡vÿ˜qÿzkÿˆugÿ‚qeÿ_QGÿlN9ÿœ‚ÿ………ÿ†††ÿ„„ƒÿÿ讆ÿýÁ˜ÿýÆŸÿýʦÿýϯÿºªžÿÿ?:7ÿùáÐÿýëÞÿýñéÿý÷óÿýüüÿýüüÿúúúÿvvvþ¥[% æææ$dddü000ÿðïïÿäääÿÙØ×ÿÖÑÍÿÖÌÅÿÕǽÿÒÀ³ÿйªÿδ¢ÿ̯›ÿË«”ÿʧŽÿÉ£‰ÿÉ …ÿÉžÿÇœ}ÿ´†fÿÙ¨…ÿzyyÿzzzÿ{{{ÿPOOÿcK;ÿýÛÿýÇ¡ÿý˧ÿýϯÿýÔ¶ÿì̶ÿ‰ˆ‡ÿZZZÿŸ’Šÿýîäÿýôîÿýúøÿýüüÿýüüÿûúúÿvvvþ¥Z% ààà&^^^ÿ444ýýüüÿýüüÿýüüÿöóñÿíåàÿã×ÏÿÙÉ¿ÿϽ°ÿű£ÿ»¦—ÿ±›Œÿ§‘‚ÿˆzÿ“rÿ‰wkÿteYÿ^I:ÿ‰{ÿnnnÿoooÿpppÿÿÏ¢ƒÿýÉ¥ÿý̪ÿýаÿýÔ·ÿýؾÿýÝÇÿ«¡™ÿ{{{ÿ=:9ÿ÷ìäÿýøôÿýüüÿýüüÿýüüÿûúúÿvvvþ¥Z% ÎÎÎ-[[[þ988ýñððÿåääÿÝÜÜÿÖÕÔÿÐÌÉÿÍÅÀÿ͹ÿ;³ÿͺ­ÿÍ·§ÿδ¢ÿαÿÍ­—ÿά”ÿͨÿðÀŸÿ溛ÿfedÿcccÿdddÿXXXÿ,$ÿý̪ÿýÏ®ÿýÒ³ÿýÕ¹ÿýÙÀÿýÝÇÿýâÎÿׯºÿqqqÿPPOÿš–“ÿýûúÿýüüÿýüüÿýüüÿûúúÿvvvþ¥Z% ×××4VVVü@@@þýüüÿýüüÿúùùÿöööÿñðïÿéäàÿÞÕÏÿÒǾÿǹ°ÿ¼­¢ÿ±¡–ÿ¦–‹ÿ†vkÿ¯”‚ÿðÉ­ÿúΰÿ†yoÿWWWÿXXXÿZZZÿGGGÿG:2ÿýÒ´ÿýÔ¸ÿý×½ÿýÛÂÿýÞÈÿýâÏÿýçÖÿñàÔÿjiiÿgggÿ877ÿìëëÿýüüÿýüüÿýüüÿûúúÿvvvþ¥Z% ÒÒÒ8HHHýDCCÿïîîÿåääÿÚÚÚÿÑÑÑÿËÊÊÿÇÆÅÿÆÁ½ÿÇ¿¹ÿɽµÿʼ±ÿÍ»®ÿϺ«ÿÆ®žÿÓ·¤ÿ²œÿxngÿMMMÿNNNÿNNNÿOOOÿNNNÿ)'&ÿ´šˆÿðÏ·ÿýÝÆÿýàÌÿýäÒÿýçØÿüêÞÿÊÀ¹ÿ\\\ÿ]]]ÿSSSÿ`__ÿõôôÿýüüÿýüüÿûúúÿvvvþ¥Z% ººº;:::ÿHHHýýüüÿýüüÿýüüÿûúúÿõôôÿìëëÿâàßÿÕÐÍÿÈÁ¼ÿ»²¬ÿ®¤ÿ¡—ÿ~tlÿ¦•‰ÿ§˜Žÿ¡’ˆÿ™‹‚ÿ’…|ÿ‹wÿ‚xrÿ|tnÿtmhÿgb^ÿXOHÿýãÐÿýæÕÿýéÛÿɽ´ÿecbÿRRQÿQQQÿRRRÿSSSÿQQQÿ[ZZÿ~~ÿÝÝÝÿûûûÿvvvþ¥Z% œœœB000þLKKýýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿþûúÿþøóÿþôíÿþðçÿþíáÿþêÜÿþçØÿþåÔÿþãÑÿþâÏÿþáÎÿýáÍÿýáÍÿýâÎÿýãÐÿýäÓÿýæÖÿýèÚÿýëßÿýîäÿúïçÿðéäÿëèæÿâááÿÜÛÛÿÔÓÓÿÍÌÌÿÆÅÅÿµ´´ÿéééÿûúúÿvvvþ¤Z% }}}-???þ###þø÷÷ÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿþýüÿþüûÿþùöÿþõðÿþòëÿþðæÿþíâÿþëÞÿþéÜÿþèÙÿþèØÿýçØÿýçØÿýèÙÿýéÚÿýêÝÿýìàÿýîäÿýñèÿýôíÿý÷óÿýûùÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿôóóÿkkkþ¡V# hhh___Éþsssþóòòþýüüÿýüüÿýüüÿýüüÿýüüÿþýýÿþýýÿþüüÿþûùÿþøôÿþõðÿþóìÿþñéÿþðæÿþîäÿþîãÿýíâÿýíâÿýîãÿýïåÿýðçÿýòêÿýôîÿý÷òÿýù÷ÿýüûÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿéèèÿ\\\þ•NUUUBBB¢999ÓHHHãXXXóeeeýpppý{{{ý†††ý‘‘‘ý›››ý¦¥¥þ±°°ý»º¹ýÅÂÁýÏÊÈýÙÓÏþèáÜÿøïéÿþôíÿýóìÿýôíÿýôîÿýõïÿýöñÿýøôÿýúøÿýüûÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿÊÉÉÿ???÷z> , >N^m!!!|'''‹,,,š222©999·>>>Å???Ó@@@àIIIëVVUócbbøpnmýzyxý…„„ýýš™™ý¤¤¤ý®®®ý¸¸¸ýÂÁÁýÌÌÌýØ××þæååþïîîþõôôÿúùùÿüûûÿÔÓÓÿ}}}þ »Q) %0 <KZi x&&&‡,,,•222¤888²>>>ÀBBBÍEEEÛLLLçTTTï^^^÷kkkùSSSä H,  '.2)$ÿÿÿÿÿÿÿÿþÿÿþÿþþððàààààààààààààààààààààààààààààààààààààðÿþÿÿÿüÿÿÿÿÿÿ( @   7Tp###‹%%%¦)))¤Y4 &C` |˜³Íæû///þEEEþYXXþnnnþŠŠŠÿ–••þMLLëz1 *Ml‰¤¿Úóþ.,*þLHEþgb^þƒ}yÿ ›—ÿ½¹¶ÿÚØ×ÿöõõÿþýýÿþýýÿþýýÿþýýÿþýýÿþýýÿ™™™ÿ¹G Êü&&&þCCCþ`__þ|||ÿ™—–ÿ¶±­ÿÓÊÃÿðâÙÿþìàÿþêÝÿþêÜÿþêÜÿþëÞÿþíâÿþðçÿþôíÿþùõÿþüûÿþýýÿþýýÿþýýÿüûûÿûúúÿœœÿÃM˜þÝÜÜþþýýÿþýýÿþüüÿþúøÿþôîÿþïäÿþêÜÿþæÖÿþãÑÿþáÎÿþàÌÿöÚÇÿýáÎÿþäÒÿþçØÿþìßÿ«¥¡ÿ’Žÿÿpppÿ___ÿ???ÿnnnÿœœÿÄN¶feeþþýýÿþýýÿùø÷ÿÜÙØÿ¾·²ÿ¡˜‘ÿ…zsÿg]Wÿ¢ŽÿLD>ÿ<63ÿ-*)ÿÿ‡tfÿþÛÃÿþßÉÿþãÑÿ±¡—ÿuplÿMMMÿMMMÿ;;;ÿfffÿöõõÿœœÿÄN½`__ÿ‚ÿgffÿ][Zÿidaÿwnhÿpe]ÿdXPÿ\PHÿ³–‚ÿЫ’ÿG>7ÿÿtaÿþϯÿþÒ´ÿþÖ»ÿþÛÃÿþáÍÿ—†ÿMMMÿLLLÿ444ÿ÷ööÿþýýÿœœœÿÄNÀdccþˆ‡‡ÿoooÿa^\ÿRMIÿE?:ÿMC<ÿZLCÿ^NCÿSC9ÿ~eSÿÅœÿ$$$ÿ¡}dÿþÆ ÿþÉ¥ÿþάÿþÓµÿøÕ¼ÿ[XVÿMMMÿ777ÿ ›ÿþüüÿþýýÿœœœÿÄNÇkjjÿ¼»»ÿ žœÿ†{ÿkb]ÿQHBÿ=50ÿ0)$ÿ+$ÿ7,%ÿG8-ÿ× zÿ^ODÿF9/ÿý½ÿþÁ–ÿþÅžÿþ˨ÿ»ŸŒÿMMMÿMMMÿ.,+ÿ÷íåÿþûùÿþýýÿœœœÿÄNË~~þÉÈÇÿ¶¯ªÿ¬Ÿ—ÿ ƒÿ”€rÿƒn_ÿlYKÿUE:ÿ>3+ÿ)#ÿ,"ÿ§z[ÿ222ÿ³€]ÿþ¸ˆÿþ½‘ÿýÄœÿoe^ÿMMMÿAAAÿ€tlÿþîãÿþ÷óÿþüüÿœœœÿÄNÑsssþ›˜–ÿ”Žÿ¥•Šÿ¡Œ}ÿ•}lÿŠo]ÿ€dQÿuZFÿkQ?ÿbJ9ÿZE7ÿ¤oJÿeUJÿN=1ÿý°zÿþ¶„ÿÔ¢ÿMMMÿMMMÿ'&%ÿæË¹ÿþéÛÿþóìÿþûúÿœœœÿÄMÖyxxÿ›–“ÿˆxÿylcÿxfZÿ€hXÿ†hTÿ‰fNÿ|YAÿqO8ÿfF1ÿY>+ÿcB+ÿ·|Sÿ>>>ÿ·zPÿþ¯xÿˆo^ÿMMMÿHHHÿaQGÿþÛÄÿþåÕÿþïæÿþù÷ÿœœœÿÄMÛ}|{þ£˜ÿƒ|ÿ‚rhÿq`TÿeREÿVD7ÿN;.ÿT=-ÿX=*ÿ_@*ÿ^>'ÿQ5!ÿ±i8ÿhXMÿQ=.ÿêžiÿPNMÿMMMÿ++*ÿÊ¥‹ÿþؾÿþâÏÿþìáÿþ÷òÿœœœÿÃMá„‚ÿ¹³ÿ°¡—ÿŸŒÿzjÿgWÿlUEÿZF7ÿJ8,ÿ:,"ÿ( ÿÿ ÿ.ÿ²rFÿ===ÿfP@ÿMMMÿLLLÿE7.ÿþ˨ÿþÕ¹ÿþàËÿþêÝÿþõïÿœ››ÿÃMåš—”þåÙÑÿ×ôÿ˯œÿ¾†ÿ³sÿ§~aÿqRÿ’eFÿ…Y;ÿxO3ÿkG.ÿ^A-ÿT=-ÿ¡[+ÿcUKÿKKKÿMMMÿ555ÿ¨bÿþɤÿþÓ¶ÿþÞÈÿþéÚÿþóíÿœ›šÿÃM뎋‰þ´ª£ÿ²¡•ÿ³š‰ÿ´“|ÿ´Œoÿ«}^ÿžnMÿ’a?ÿ‡U3ÿ|K*ÿqC#ÿg<ÿ\:"ÿg<ÿ¡lGÿMMMÿMMMÿ0("ÿùºŽÿþÈ¢ÿþÒ´ÿþÝÇÿþèÙÿþóëÿœ›šÿÃM!!!ð”Žþ¸­¦ÿ§—Œÿ˜ƒuÿŠrbÿ}cQÿz\GÿzX@ÿ{T9ÿ|P2ÿ}L+ÿ}I%ÿyH&ÿsJ-ÿzCÿ¢Šzÿÿccbÿ…_Dÿþ½ÿþÈ¢ÿþÒ´ÿþÝÇÿþèÙÿþóëÿ¹¸·ÿÃM___õœ™—þÉ¿·ÿ±¥ÿ½§˜ÿ·žŒÿ°•ÿªyÿ§Švÿ¢‡tÿœ„sÿ–ƒvÿ“…{ÿ”‡~ÿpe]ÿ›jHÿãããÿäääÿ©©©ÿ½‡aÿþ¾’ÿþɤÿþÓ¶ÿþÞÈÿþéÚÿþóìÿõôóÿÃM[[[û£ ŸÿÑÇÀÿν±ÿË´¤ÿË®šÿȧÿÈ£ŠÿÆŸ„ÿÚ~ÿ¿–zÿ»“wÿ¸‘vÿ´xÿ{L,ÿß·›ÿÒÒÒÿÄÄÄÿÄÄÃÿ}gYÿþÀ–ÿþʧÿþÕ¹ÿþàËÿþêÝÿþõïÿõõôÿÃM©©©WWWþ³²±þýóëÿøäÖÿîѽÿäÀ§ÿÛ±”ÿТ‚ÿÇ•rÿÀ‹gÿº…`ÿ³[ÿ®|ZÿšlMÿ²oAÿÁ¾¼ÿÂÂÂÿhhhÿ·›‡ÿÿÌž~ÿþͬÿþؽÿþâÏÿþìàÿþ÷òÿöõõÿÃM¹¹¹SSSý­­¬þØÒÎÿϹÿË·ªÿÇ®œÿäÿÀ…ÿ»•{ÿ¸sÿµŠmÿ°…hÿ®ƒfÿŒdHÿ¶vÿ°°°ÿ¯¯¯ÿS@3ÿú¶†ÿ¼·´ÿwf[ÿþѲÿþÛÃÿþåÔÿþïåÿþùöÿöõõÿÃLÝÝÝ MMMþµ´´þÝÙ×ÿÔÊÂÿ˺®ÿížÿ¸ Žÿ±•ƒÿ§Œyÿ „rÿ–}lÿŽxiÿƒrfÿrM4ÿ¨ž—ÿ   ÿnnmÿªzYÿþ¼ÿÔµ ÿxwwÿϯ™ÿþßÊÿþéÚÿþóëÿþûúÿöõõÿÃLØØØIIIþ»ººþåãâÿÙÐËÿÎÀµÿű£ÿ¹¢’ÿ¯–„ÿªŽ{ÿ§Šuÿ¥†pÿ¥„mÿ‹hQÿ¾‘rÿÿÿB:5ÿúºÿþÛÿøÈ¦ÿŸœšÿrg`ÿþäÒÿþíâÿþ÷òÿþüüÿöõõÿÃLãããDDDýÂÂÂÿëêêÿäÞÛÿãÖÍÿáÍ¿ÿßIJÿݼ¥ÿز˜ÿϦŠÿÆ€ÿ¾•yÿ¬€bÿ˜ˆ|ÿ}}}ÿiiiÿ…eOÿþÅÿþʧÿþѲÿı£ÿaa`ÿÒÁ¶ÿþòêÿþúùÿþýýÿöööÿÃLÙÙÙ>>>ÿÍÌÌþþýýÿúø÷ÿðèãÿçØÎÿÝÉ»ÿÓ»ªÿÉ®›ÿ¿¢ÿµ˜„ÿ¦Šwÿ›}hÿkkkÿmmmÿ432ÿ鸗ÿþÍ«ÿþÒ´ÿþØ¿ÿõÙÅÿ~}|ÿmhfÿþ÷óÿþüüÿþýýÿöööÿÃLÕÕÕ":::ýÍÌÌþëêêÿàßßÿÕÓÑÿÊýÿ¿³«ÿ´¥›ÿ©™Žÿ”ƒwÿ¹‰ÿè¿¢ÿ‰zpÿ[[[ÿ]]]ÿ?71ÿþѳÿþÕ¹ÿþÚÂÿþàËÿþæÖÿ‹ˆÿPPPÿÇÅÅÿþýýÿþýýÿöööÿÃLÏÏÏ&...þÑÐÐþëêêÿàààÿÔÔÓÿÈÄÂÿ¼µ°ÿ±¦žÿ¦™ÿ–†{ÿ¦’„ÿulfÿMMMÿNNNÿNNNÿ=<;ÿ”sÿëιÿþâÏÿôßÐÿʾ¶ÿihgÿZZZÿVVVÿÐÐÐÿùøøÿöööÿÃL¡¡¡+"""þÛÚÚþþýýÿþýýÿþýýÿþüüÿþùöÿþóìÿýîãÿôáÔÿùáÑÿüáÎÿôÙÆÿíÒ¿ÿå̺ÿÞÇ·ÿÒ¾°ÿòÜÍÿþëÞÿïâÙÿºµ³ÿ³²±ÿ¬««ÿ¥¤¤ÿžžžÿº¹¹ÿöööÿÂL}}}111û¦¦¦þþýýÿþýýÿþýýÿþýýÿþüüÿþûùÿþöñÿþòêÿþîãÿþëßÿþêÜÿþéÚÿþéÛÿþêÝÿþìàÿþïåÿþóìÿþøôÿþüûÿþýýÿþýýÿþýýÿþýýÿþýýÿæææÿ¾GRRRj333Ü‚‚‚ï–••ü¡  þ¬««þ·¶¶þÁÁÁþÌËÊþÖÓÐþàÚÕþíäÞÿûðéÿþòêÿþòêÿþóìÿþõðÿþøôÿþûùÿþüüÿþýýÿþýýÿþýýÿþýýÿþýýÿþýýÿ¼¼¼þ¨7 $ 5FVf!!!v'''†***”+++£999²IHHÁYXXÏiihÝyyy뉉‰ø–––þ¡  þ¬««þ¶¶¶þÀÀÀþÌËËþ½½½ÿFFFãW #3CSc rd3 ÿÿÿÿÿ€ÿàÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀàÿðÿÿÿÿ(0  $ A^{—²"""¼ l,/Mj‡£¿Ù:87òWVUýqqpþˆˆˆþ¢¡¡ÿ¿¾¾ÿÛÛÛÿëêêÿ[ZZðg Æ(((åDDDúaaaþ~{yþ›”ÿ¸­¥ÿÕÆ¼ÿðÞÒÿýëÞÿþíâÿþñèÿþöñÿþûúÿþüüÿþýýÿýüüÿûúúÿuuuÿ€8þëêêÿþýýÿþüüÿþøôÿýðçÿüèÚÿúáÏÿçͼÿÒ»ªÿů¡ÿúßËÿþåÔÿîÝÑÿ~{yÿvuuÿeeeÿGGGÿuuuÿuuuÿ‚LIIIþ¬««ÿŽŽÿxvuÿic_ÿZRMÿKB<ÿ“|mÿB93ÿÿUG<ÿèéÿþÚÁÿýàËÿÔÁµÿMMMÿJJJÿcccÿüûûÿuuuÿ‚PMMMþ’’’ÿ…ƒ‚ÿ~wsÿpf_ÿcVMÿUG>ÿjWJÿÇž‚ÿ/+(ÿ½”xÿþÉ¥ÿþέÿþÕ¹ÿ´¡“ÿMMMÿ444ÿáßÞÿþýýÿuuuÿ‚VSSSÿ¦¥¥ÿ“‰ÿ„yqÿvg\ÿhWKÿWF:ÿM=2ÿw[GÿŽoYÿgQBÿþ½‘ÿþÛÿüʨÿkc^ÿLLLÿga]ÿþöñÿþüüÿuuuÿ[XWWþ¬©§ÿ™‰ÿ‹{qÿ}i\ÿmXIÿ^I:ÿR>0ÿG6*ÿ›lLÿ>:7ÿÔ•jÿþ¹‰ÿÏ¢ƒÿMMMÿ888ÿÈ´§ÿþðçÿþûúÿuuuÿ`]]]ÿ±«§ÿ ’‰ÿ‘~pÿ„l[ÿw\IÿfL9ÿZA0ÿP:*ÿZ=*ÿ’kQÿpS>ÿþ¯xÿƒm^ÿMMMÿOE?ÿýÞÈÿþëÞÿþøôÿuuuÿeba`þ·®¨ÿ¦•‰ÿ—oÿ‰mZÿuYEÿkM8ÿ_B.ÿS9'ÿE/ ÿa7ÿEA=ÿ¿VÿNMMÿAAAÿ¦‡qÿþÙÀÿþç×ÿþõïÿuutÿkhfeÿ¿´¬ÿ¯œŽÿ£‰vÿ“t_ÿ‚aJÿtR:ÿfE-ÿZ:$ÿP4!ÿ^: ÿŽdGÿGC@ÿMMMÿ<51ÿøÃŸÿþÖ»ÿþäÓÿþòëÿuttÿpmkiþ¶®ÿ²Žÿ£‡tÿ–t]ÿ„`HÿwR9ÿlG.ÿb?&ÿY8"ÿM4#ÿ›]1ÿMMMÿHHHÿ‡eMÿþÆŸÿþÔ¸ÿþãÐÿþñèÿutsÿGGGurpnþǺ²ÿ·¢“ÿ¨‹xÿ˜xaÿ“nUÿhMÿŒcGÿ‰aEÿ…`FÿoO8ÿ§{\ÿ›››ÿZWUÿè¨|ÿþÆŸÿþÔ¸ÿþãÐÿþñèÿ–•”ÿ„„„zzxvþÕÉÁÿ͹ªÿÇ«˜ÿÀž‡ÿº”{ÿ¶Žrÿ°‡kÿ«ƒgÿ¨ƒiÿ†X9ÿÛȺÿÚÚÚÿ§¤£ÿà¥|ÿþÈ¢ÿþÖºÿýäÒÿþòêÿ¸··þ~~~~}þÛÑÊÿÒ¿±ÿÉ®œÿÁ Šÿ»–}ÿ´rÿ®‡kÿ¨‚hÿœy`ÿ¢sRÿÄÄÄÿŒ‹‹ÿ¸¨ÿ˜~lÿþ˨ÿþÙ¿ÿþç×ÿþõîÿ¸¸¸ÿ€…ƒƒƒÿÛÔÏÿÒÁ¶ÿ˳¢ÿÃ¥ÿ¼™ÿ¶uÿ®ˆmÿ¨‚iÿŽgLÿ´›‰ÿ®®®ÿm[Nÿñ·ÿ‹ˆ†ÿ⺞ÿþÝÇÿþëÞÿþøôÿ¸¸¸ÿ€|||‰Š‰‰þàÜÚÿÕÈ¿ÿ͸©ÿÄ©–ÿ½‡ÿµ’zÿ­Šqÿ¥ƒjÿœrUÿ˜–•ÿÿ©|]ÿþÁ—ÿ¾­¡ÿ€uÿþãÑÿýðæÿþûùÿ¸¸¸þ€uuuÿäââÿ×ÏÉÿν²ÿÄ­ÿ» ÿ²•€ÿª‹vÿ—ydÿ–nÿ€€€ÿTMHÿø¾–ÿþʧÿèÆ®ÿlkjÿåÓÇÿþöñÿþüüÿ¸¸¸ÿ€uuu”—––þïîîÿâÞÜÿÖÊÂÿ̹­ÿ«›ÿ¸žŒÿ®“€ÿªŠsÿuplÿgggÿ…kYÿþͬÿþÔ¸ÿþÝÆÿœ•ÿ‡ƒ€ÿþûúÿþýýÿ¹¸¸ÿ€ppp™œ››ÿîííÿáààÿÕÐÌÿÊ¿·ÿÁ±¦ÿ°ÿɬ˜ÿ‘uÿSSSÿPOOÿˆseÿúÖ½ÿþßÊÿýç×ÿ ™”ÿTSSÿÐÏÏÿþýýÿ¹¸¸ÿ€SSSŸ¤££þþýýÿûúúÿòññÿæáÞÿÙÎÇÿƸ®ÿÒ¾±ÿ͹ªÿƱ£ÿ¾¬Ÿÿ¶¥šÿÔÀ²ÿþêÝÿƾ¸ÿœ›šÿ•••ÿÿ¿¾¾ÿ¹¸¸ÿSSS}ihhþûúúÿþüüÿýüüÿýüüÿýù÷ÿýôíÿýïåÿýìàÿýêÝÿþëÞÿþíáÿþðçÿþõðÿþûùÿþüüÿþýýÿþýýÿþýýÿ©©©þwUUU&&&^(((z877GGG¢XWW±hggÁxwvψ…ƒÞ˜”‘ì§¡ž÷³®ªý¿º·þÉÇÅþÓÒÒþÝÜÜþèççþôóóÿúùùÿóòòÿdddìM   /?P` p$$$...111ŽJÿÿÇÿ€ÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€€€€Àðÿÿç(  +I g…$$$¢AAA¾[[[Ò}: ‹)))­FEEËc_\æ€xrü’Šÿ¹­¤ÿÖÌÅÿóîìÿþüüÿþýýÿýüüÿMMMÞ-%%%Óõôôÿôòòÿ×ÏÊÿº¬£ÿº§™ÿ™‰}ÿ¤’…ÿþáÎÿÖźÿusrÿVVVÿ‚‚‚ÿNNNá/888Þxwwÿ^ZXÿ^UOÿ^QGÿ•zhÿRE<ÿË¢…ÿþаÿüÙÀÿc_]ÿVUUÿüûûÿNNNá/@??ä·´²ÿ„|ÿi[QÿG;2ÿ9.'ÿ‚cMÿŠjTÿþ¿“ÿÉ¥‹ÿJJJÿ©Ÿ˜ÿþûùÿNNNá/@@@é—ŒÿŽ}qÿ‰o]ÿ_JÿiL8ÿoM6ÿjSCÿì£qÿ}k^ÿGC@ÿøÝËÿþöñÿNNNá/CBB—ÿ‰viÿiTFÿR=/ÿF2$ÿ;)ÿ~T7ÿxZEÿMMLÿŽtcÿþÜÄÿþñèÿNMMá/KIHóɺ¯ÿ¼žŠÿ®…hÿ˜iIÿ€R3ÿhB'ÿnD&ÿgVJÿ@=<ÿ粎ÿþؾÿþîãÿNMMá.ljiøº­¤ÿ¦ÿ”xeÿoXÿ‹iQÿ‡gQÿ~W<ÿºµ±ÿ”|lÿþÚÿþؾÿþîãÿkkjá.‚€ýå×ÍÿÚ½©ÿϧŒÿÄ–wÿº‹kÿ­‚eÿ³Œqÿ°°°ÿ¢•ÿñ½šÿþÛÄÿþðçÿzzzá.ËËË€€þÖÎÈÿȳ¥ÿ»ž‰ÿ¯vÿ¢jÿŒjRÿ«Ÿ—ÿ‡vjÿ⸚ÿ¯˜‡ÿþâÏÿþõðÿ{zzá.ÞÞÞ ‚‚‚þãßÜÿÖŹÿÉ®›ÿ¾œ…ÿ´vÿ£€hÿÿ¯‡lÿüʦÿ…ÿóáÕÿþúùÿ{{{á.××ׄ„„þñðïÿÞÕÐÿÉ·«ÿ±›Œÿ¿ŸŠÿ{ogÿOMKÿøË«ÿþÙÀÿÀ²¨ÿ ›ÿþüüÿ{{{á.¸¸¸~~þòññÿæääÿÚÒÌÿ˼±ÿİ¢ÿŸ‘ˆÿ”‡ÿѺªÿ÷ãÖÿ¨£ ÿ€€€ÿÈÈÈÿ{{{á.}}}XXXÐÅÄÄúÒÑÑþÝÜÛþçáÝþòæÝÿýíâÿþîãÿþòêÿþùõÿþüüÿþýýÿþýýÿhhhÙ& )9JZ(((k888|IHHŒYXXœiii¬pppµb ÿÃÀ€€€€€€€€€€€€€ÿÃx2goclient-4.0.1.1/imgframe.cpp0000644000000000000000000000330112214040350013076 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "imgframe.h" #include "x2goclientconfig.h" #include IMGFrame::IMGFrame(QImage* ,QWidget* parent, Qt::WFlags f) :QFrame(parent,f) { //setBg(img); } IMGFrame::~IMGFrame() { } void IMGFrame::setBg(QImage* img) { if(img) { setAutoFillBackground(true); QPalette pal=palette(); pal.setBrush(QPalette::Window,QBrush(QPixmap::fromImage(*img))); setPalette(pal); } } void IMGFrame::resizeEvent(QResizeEvent* event) { QFrame::resizeEvent(event); emit resized(event->size()); } x2goclient-4.0.1.1/imgframe.h0000644000000000000000000000317412214040350012553 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef IMGFRAME_H #define IMGFRAME_H #include "x2goclientconfig.h" #include /** @author Oleksandr Shneyder */ class QResizeEvent; class IMGFrame : public QFrame { Q_OBJECT public: IMGFrame(QImage* img,QWidget* parent=0, Qt::WFlags f=0); ~IMGFrame(); void setBg(QImage* img); virtual void resizeEvent(QResizeEvent* event); signals: void resized (const QSize); }; #endif x2goclient-4.0.1.1/Info.plist0000644000000000000000000000107512214040350012561 0ustar CFBundleIconFile x2go-mac.icns CFBundlePackageType APPL CFBundleGetInfoString Created by Qt/QMake CFBundleSignature ???? CFBundleExecutable x2goclient NOTE Please, do NOT change this file -- It was generated by Qt/QMake. x2goclient-4.0.1.1/INSTALL0000644000000000000000000000045112214040350011637 0ustar Basic Installation ================== Before use this programm you need to install: Qt4: http://www.trolltech.com nxcomp+nxproxy: http://www.nomachine.com/sources.php You may want also install pulseaudio sound server to enable sound support http://www.pulseaudio.org/wiki/DownloadPulseAudio x2goclient-4.0.1.1/LDAPSession.cpp0000644000000000000000000002362312214040350013404 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "LDAPSession.h" #include "x2goclientconfig.h" #ifdef USELDAP #include ByteArray::ByteArray() { size=0; data=0; } ByteArray::ByteArray ( const ByteArray& src ) { size=0; data=0; *this=src; } ByteArray::~ByteArray() { _delete(); } void ByteArray::load ( const char* buf,int len ) { _delete(); if ( len>0 ) { size=len; data=new char[size+1]; if ( !data ) throw string ( "Not enouth memory" ); memcpy ( data,buf,len ); data[size]=0; } } void ByteArray::fromStdStr ( const string& src ) { load ( src.c_str(),src.size() ); } void ByteArray::operator = ( const ByteArray& src ) { load ( src.data,src.size ); } void ByteArray::_delete() { if ( data ) { delete []data; size=0; } } ///////////////////////////////////// LDAPSession::LDAPSession ( string server,int port,string bindDN, string pass, bool simple, bool start_tls ) { ld=ldap_init ( server.c_str(),port ); if ( !ld ) throw LDAPExeption ( "ldap_init","Can't init LDAP library" ); int ver=3; int errc=ldap_set_option ( ld,LDAP_OPT_PROTOCOL_VERSION,&ver ); if ( errc != LDAP_SUCCESS ) throw LDAPExeption ( "ldap_set_option", ldap_err2string ( errc ) ); if ( start_tls ) { errc=ldap_start_tls_s ( ld,NULL,NULL ); if ( errc != LDAP_SUCCESS ) throw LDAPExeption ( "ldap_start_tls_s", ldap_err2string ( errc ) ); } if ( !simple ) { errc=ldap_bind_s ( ld,bindDN.c_str(),pass.c_str(), LDAP_AUTH_SIMPLE ); if ( errc != LDAP_SUCCESS ) throw LDAPExeption ( "ldap_bind_s", ldap_err2string ( errc ) ); } else { errc=ldap_simple_bind_s ( ld,bindDN.c_str(),pass.c_str() ); if ( errc != LDAP_SUCCESS ) throw LDAPExeption ( "ldap_simple_bind_s", ldap_err2string ( errc ) ); } } void LDAPSession::addStringValue ( string dn, const list& values ) { list::const_iterator it=values.begin(); list::const_iterator end=values.end(); int i=0; LDAPMod** mods= ( LDAPMod** ) malloc ( sizeof ( LDAPMod* ) *values.size() +1 ); for ( ;it!=end;++it ) { mods[i]= ( LDAPMod* ) malloc ( sizeof ( LDAPMod ) ); mods[i]->mod_op=LDAP_MOD_ADD; mods[i]->mod_type= ( char* ) malloc ( sizeof ( char ) * ( *it ).attr.length() ); strcpy ( mods[i]->mod_type, ( *it ).attr.c_str() ); list::const_iterator sit= ( *it ).value.begin(); list::const_iterator send= ( *it ).value.end(); int j=0; mods[i]->mod_vals.modv_strvals= ( char** ) malloc ( sizeof ( char* ) * ( *it ).value.size() +1 ); for ( ;sit!=send;++sit ) { mods[i]->mod_vals.modv_strvals[j]= ( char* ) malloc ( sizeof ( char ) * ( *sit ).length() ); strcpy ( mods[i]->mod_vals.modv_strvals[j], ( *sit ).c_str() ); ++j; } mods[i]->mod_vals.modv_strvals[j]=0l; ++i; } mods[i]=0l; int errc= ldap_add_s ( ld,dn.c_str(),mods ); if ( errc != LDAP_SUCCESS ) throw LDAPExeption ( "ldap_add_s",ldap_err2string ( errc ) ); ldap_mods_free ( mods,1 ); } void LDAPSession::modifyStringValue ( string dn, const list& values ) { list::const_iterator it=values.begin(); list::const_iterator end=values.end(); int i=0; LDAPMod** mods= ( LDAPMod** ) malloc ( sizeof ( LDAPMod* ) *values.size() +1 ); for ( ;it!=end;++it ) { mods[i]= ( LDAPMod* ) malloc ( sizeof ( LDAPMod ) ); mods[i]->mod_op=LDAP_MOD_REPLACE; mods[i]->mod_type= ( char* ) malloc ( sizeof ( char ) * ( *it ).attr.length() ); strcpy ( mods[i]->mod_type, ( *it ).attr.c_str() ); list::const_iterator sit= ( *it ).value.begin(); list::const_iterator send= ( *it ).value.end(); int j=0; mods[i]->mod_vals.modv_strvals= ( char** ) malloc ( sizeof ( char* ) * ( *it ).value.size() +1 ); for ( ;sit!=send;++sit ) { mods[i]->mod_vals.modv_strvals[j]= ( char* ) malloc ( sizeof ( char ) * ( *sit ).length() ); strcpy ( mods[i]->mod_vals.modv_strvals[j], ( *sit ).c_str() ); ++j; } mods[i]->mod_vals.modv_strvals[j]=0l; ++i; } mods[i]=0l; int errc= ldap_modify_s ( ld,dn.c_str(),mods ); if ( errc != LDAP_SUCCESS ) throw LDAPExeption ( "ldap_modify_s",ldap_err2string ( errc ) ); ldap_mods_free ( mods,1 ); } void LDAPSession::remove ( string dn ) { int errc= ldap_delete_s ( ld,dn.c_str() ); if ( errc != LDAP_SUCCESS ) throw LDAPExeption ( "ldap_delete_s",ldap_err2string ( errc ) ); } void LDAPSession::binSearch ( string dn,const list &attributes, string searchParam, list& result ) { char** attr; attr= ( char** ) malloc ( sizeof ( char* ) *attributes.size() +1 ); int i=0; list::const_iterator it=attributes.begin(); list::const_iterator end=attributes.end(); for ( ;it!=end;++it ) { attr[i]= ( char* ) malloc ( sizeof ( char ) * ( *it ).length() ); strcpy ( attr[i], ( *it ).c_str() ); ++i; } attr[i]=0l; LDAPMessage* res; int errc=ldap_search_s ( ld,dn.c_str(),LDAP_SCOPE_SUBTREE, searchParam.c_str(),attr,0,&res ); if ( errc != LDAP_SUCCESS ) { i=0; it=attributes.begin(); for ( ;it!=end;++it ) { free ( attr[i] ); ++i; } free ( attr ); throw LDAPExeption ( "ldap_search_s",ldap_err2string ( errc ) ); } LDAPMessage *entry=ldap_first_entry ( ld,res ); while ( entry ) { LDAPBinEntry binEntry; it=attributes.begin(); for ( ;it!=end;++it ) { LDAPBinValue val; val.attr= ( *it ); berval **atr=ldap_get_values_len ( ld,entry, ( *it ).c_str() ); int count=ldap_count_values_len ( atr ); for ( i=0;ibv_val,atr[i]->bv_len ); val.value.push_back ( arr ); } ldap_value_free_len ( atr ); binEntry.push_back ( val ); } entry=ldap_next_entry ( ld,entry ); result.push_back ( binEntry ); } free ( res ); i=0; it=attributes.begin(); for ( ;it!=end;++it ) { free ( attr[i] ); ++i; } free ( attr ); } void LDAPSession::stringSearch ( string dn,const list &attributes, string searchParam, list& result ) { char** attr; attr= ( char** ) malloc ( sizeof ( char* ) *attributes.size() +1 ); int i=0; list::const_iterator it=attributes.begin(); list::const_iterator end=attributes.end(); for ( ;it!=end;++it ) { attr[i]= ( char* ) malloc ( sizeof ( char ) * ( *it ).length() +1 ); strcpy ( attr[i], ( *it ).c_str() ); ++i; } attr[i]=0l; LDAPMessage* res; int errc=ldap_search_s ( ld,dn.c_str(),LDAP_SCOPE_SUBTREE, searchParam.c_str(),attr,0,&res ); if ( errc != LDAP_SUCCESS ) { i=0; it=attributes.begin(); for ( ;it!=end;++it ) { free ( attr[i] ); ++i; } free ( attr ); throw LDAPExeption ( "ldap_search_s",ldap_err2string ( errc ) ); } LDAPMessage *entry=ldap_first_entry ( ld,res ); while ( entry ) { LDAPStringEntry stringEntry; it=attributes.begin(); for ( ;it!=end;++it ) { LDAPStringValue val; val.attr= ( *it ); char **atr=ldap_get_values ( ld,entry, ( *it ).c_str() ); int count=ldap_count_values ( atr ); for ( i=0;i LDAPSession::getStringAttrValues ( const LDAPStringEntry& entry, string attr ) { list::const_iterator it=entry.begin(); list::const_iterator end=entry.end(); list lst; for ( ;it!=end;++it ) { if ( ( *it ).attr==attr ) return ( *it ).value; } return lst; } list LDAPSession::getBinAttrValues ( const LDAPBinEntry& entry, string attr ) { list::const_iterator it=entry.begin(); list::const_iterator end=entry.end(); list lst; for ( ;it!=end;++it ) { if ( ( *it ).attr==attr ) return ( *it ).value; } return lst; } LDAPSession::~LDAPSession() { ldap_unbind ( ld ); } #endif x2goclient-4.0.1.1/LDAPSession.h0000644000000000000000000000577612214040350013062 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef LDAPSESSION_H #define LDAPSESSION_H #define LDAP_DEPRECATED 1 #include "x2goclientconfig.h" #ifdef USELDAP #include #include #include using namespace std; struct LDAPExeption { LDAPExeption ( string type,string str ) {err_type=type;err_str=str;} string err_type; string err_str; }; class ByteArray { public: ByteArray(); ByteArray ( const ByteArray& ); ~ByteArray(); const char* getData() {return data;} string asString() {return data;} int length() {return size;} void load ( const char*,int ); void fromStdStr ( const string& ); void operator = ( const ByteArray& ); private: void _delete(); char* data; int size; }; struct LDAPBinValue { string attr; list value; }; struct LDAPStringValue { string attr; list value; }; typedef list LDAPStringEntry; typedef list LDAPBinEntry; #endif class LDAPSession { #ifdef USELDAP public: LDAPSession ( string,int,string,string, bool simple=false, bool start_tls=true ); ~LDAPSession(); void addStringValue ( string dn, const list& values ); void remove ( string ); static list getStringAttrValues ( const LDAPStringEntry& entry, string attr ); static list getBinAttrValues ( const LDAPBinEntry& entry, string attr ); void modifyStringValue ( string dn, const list& values ); void stringSearch ( string dn,const list &attributes, string searchParam, list &result ); void binSearch ( string dn,const list &attributes, string searchParam, list &result ); private: LDAP* ld; #endif }; #endif x2goclient-4.0.1.1/LICENSE0000644000000000000000000000214512214040350011615 0ustar Copyright (C) 2005-2012 Obviously Nice - http://www.obviouslynice.de This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Copyright (C) 2005-2012 Oleksandr Shneyder o.shneyder@phoca-gmbh.de Copyright (C) 2005-2012 Heinz-Markus Graesing heinz-m.graesing@obviously-nice.de x2goclient-4.0.1.1/macbuild.sh0000755000000000000000000000263012214040350012726 0ustar #!/bin/sh NAME=x2goclient APPBUNDLE=./$NAME.app DMGFILE=./$NAME.dmg PROJECT=./$NAME.pro PKG_DMG=./pkg-dmg NXPROXY=`which nxproxy` LIBXCOMP=libXcomp.3.dylib LIBPNG=libpng15.15.dylib LIBJPEG=libjpeg.9.dylib LIBZ=libz.1.dylib set -e function phase() { echo echo "***" echo "*** ${1}…" echo "***" echo } phase "Cleaning" make clean rm -rf "$APPBUNDLE" rm -rf "$DMGFILE" phase "Running lrelease" lrelease "$PROJECT" phase "Running qmake" qmake -config release \ CONFIG+=x86_64 \ QMAKE_MAC_SDK=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk \ QMAKE_MACOSX_DEPLOYMENT_TARGET=10.7 phase "Running make" make -j2 phase "Copying nxproxy" mkdir -p "$APPBUNDLE/Contents/exe" cp "$NXPROXY" "$APPBUNDLE/Contents/exe" dylibbundler \ --fix-file "$APPBUNDLE/Contents/exe/nxproxy" \ --bundle-deps \ --dest-dir "$APPBUNDLE/Contents/Frameworks" \ --install-path "@executable_path/../Frameworks/" \ --create-dir phase "Bundling up using macdeployqt" macdeployqt "$APPBUNDLE" -verbose=2 phase "Creating DMG" $PKG_DMG \ --source "$APPBUNDLE" \ --sourcefile \ --target "$DMGFILE" \ --volname "x2goclient" \ --verbosity 2 \ --mkdir "/.background" \ --copy "./png/macinstaller_background.png:/.background" \ --copy "./macdmg.DS_Store:/.DS_Store" \ --copy "./LICENSE" \ --copy "./COPYING" \ --symlink "/Applications: " \ --icon "./icons/x2go-mac.icns" \ --format "UDBZ" x2goclient-4.0.1.1/macdmg.DS_Store0000644000000000000000000003600412214040350013445 0ustar Bud1((  B0blobt5d.pBB0blobt5d1ee87309f588c9;00000000;0000000000000020;com.apple.app-sandbox.read-write;00000001;01000009;0000000000000015;/volumes/x2goclient/.background/macinstaller_background.pngÀþÿÿÿð`¸à@Ð p Ô  (   T@ tÐÐ(€ðŒorRed^backgroundType_backgroundColorGreen[gridOffsetX[gridOffsetY\showItemInfo_viewOptionsVersion]labelOnB  @€ @€ @€ @ .pBBkblobÜbookP0XVolumes x2goclient .backgroundmacinstaller_background.png(<®)xˆ˜¨A¶ÇðîA¶Ç¾$95E5DD52-A053-35BE-ACB6-67344AF24E92aï? Usersclemens Developmentx2goclient-4.0.0.1x2goclient.dmg€ ´Ð¿óJObk˜7¹ýb$4DA¶Ç¼õ Macintosh HDp¤M.A³Øý$986B3431-9B22-3952-A999-CA7791732A7Eï?/Ä703061d927172fdc0074db8e2f38de7c992e4ace;00000000;0000000000000020;com.apple.app-sandbox.read-write;00000001;01000004;000000000362fdb9;/users/clemens/development/x2goclient-4.0.0.1/x2goclient.dmgÌþÿÿÿ èTà@p  œ Ð ° À ü0 À€ÀÀÐ(€ð4/Volumes/x2goclientTþÿÿÿð  œ Ð ° À üðLXdXXÃeb25c9f0e084ffc6b18f9593.vSrnlong .backgroundbwspblob®bplist00Ö \WindowBounds[ShowSidebar]ShowStatusBar[ShowPathbar[ShowToolbar\SidebarWidth_{{520, 74}, {770, 405}} "., GPLv3 applies to this file VERSION=`head -n1 debian/changelog | sed 's,.*(\(.*\)).*,\1,' | cut -d"-" -f1` DOC_HOST=code.x2go.org DOC_PATH=/srv/sites/x2go.org/packages/doc/x2goclient/man/ DOC_USER=x2go-admin doc: docbuild docupload docbuild: make -f Makefile.man2html build_man2html docupload: ssh -l${DOC_USER} ${DOC_HOST} "{ mkdir -p ${DOC_PATH}; rm -Rfv ${DOC_PATH}/*; }" scp -r .build_man2html/html/* ${DOC_USER}@${DOC_HOST}:${DOC_PATH}/ x2goclient-4.0.1.1/Makefile.man2html0000644000000000000000000000101312214040350013762 0ustar #!/usr/bin/make -f MAN2HTML_BIN = man2html MAN2HTML_SRC = man BUILD_DIR = .build_man2html MAN2HTML_DEST = $(BUILD_DIR)/html man_pages = `cd $(MAN2HTML_SRC) && find * -type f` all: build build: build_man2html build_man2html: mkdir -p $(MAN2HTML_DEST) for man_page in $(man_pages); do mkdir -p `dirname $(MAN2HTML_DEST)/$$man_page`; done for man_page in $(man_pages); do $(MAN2HTML_BIN) $(MAN2HTML_SRC)/$$man_page > $(MAN2HTML_DEST)/$$man_page.html; done clean: clean_man2html clean_man2html: rm -Rf $(BUILD_DIR)x2goclient-4.0.1.1/man/man1/x2goclient.10000644000000000000000000001174412214040350014364 0ustar '\" -*- coding: utf-8 -*- .if \n(.g .ds T< \\FC .if \n(.g .ds T> \\F[\n[.fam]] .de URL \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac .TH x2goclient 1 "Feb 2012" "Version 3.99.1.x" "X2Go Client (Qt4)" .SH NAME x2goclient \- Client application to launch server-side X2Go sessions. .SH SYNOPSIS 'nh .fi .ad l \fBx2goclient\fR .SH DESCRIPTION \fBx2goclient\fR is a GUI application for launching server-side X2Go sessions. .PP .SH OPTIONS \fBx2goclient\fR has the following options: .TP \*(T<\fB\-\-help-pack\fR\*(T> Show available pack methods and exit. .TP \*(T<\fB\-\-no-menu\fR\*(T> Hide menu-/toolbar (default: false). .TP \*(T<\fB\-\-maximize\fR\*(T> Start client maximized (default: false). .TP \*(T<\fB\-\-hide\fR\*(T> Hide client (start hidden, default: false). .TP \*(T<\fB\-\-client-ssh-port\fR\*(T> Local ssh port (for filesystem export, default: 22). .TP \*(T<\fB\-\-user\fR\*(T> Pre-selection of user at client startup (LDAP mode). .SH PROFILING SESSIONS GLOBALLY You can pre-profile sessions globally using the following options. They will override the options in the session profiles. .TP \*(T<\fB\-\-command\fR\*(T> Default command for session startup. .TP \*(T<\fB\-\-sessionid\fR\*(T> Pre-selection of session ID at client startup. .TP \*(T<\fB\-\-ssh-port\fR\*(T> Use this TCP/IP port for connection (default: 22). .TP \*(T<\fB\-\-link\fR\*(T> Set default link type (modem,isdn,adsl,wan or lan, default: adsl). .TP \*(T<\fB\-\-pack\fR\*(T> Set default pack method (default: '16m-jpeg'). .TP \*(T<\fB\-\-quality\fR\*(T> Set default image quality(0-9, default: 9). .TP \*(T<\fB\-\-set-kbd\fR\*(T> Overwrite current keyboard settings, no override by default. .TP \*(T<\fB\-\-kbd-layout\fR\*(T> Set keyboard layout (default: 'de'). .TP \*(T<\fB\-\-kbd-type\fR\*(T> Set keyboard type (default: pc105/de). .TP \*(T<\fB\-\-fullscreen\fR\*(T> Start session in fullscreen mode. .TP \*(T<\fB\-\-width\fR\*(T> Start session with this width (default: 800). .TP \*(T<\fB\-\-sound\fR\*(T> Activate sound for session, not enabled by default. .TP \*(T<\fB\-\-sound-system\fR\*(T> Which soundsystem to use: arts, esd, pulse (default: arts). .SH THIN CLIENT OPTIONS The following command line options are primarily interesting if \fBx2goclient\fR is used as a login manager on X2Go thin clients. .TP \*(T<\fB\-\-session=\fR\*(T> Pre-selection of session at client startup. .TP \*(T<\fB\-\-no-session-edit\fR\*(T> Disable session editing. .TP \*(T<\fB\-\-pgp-card\fR\*(T> Use openPGP Card authentication (default: false). .TP \*(T<\fB\-\-external-login=\fR\*(T> Authenticate via SMART card, path to login notification file. .TP \*(T<\fB\-\-add-to-known-hosts\fR\*(T> Add DSA/RSA host key fingerprint to .ssh/known_hosts in case of "authenticity of server can't be established". .TP \*(T<\fB\-\-read-exports-from\fR\*(T> Specifies a directory where some external mechanism (e.g. script) can notify \fBx2goclient\fR on new block devices (CD/DVDs, USB sticks, etc.). .SH BROKER OPTIONS In case you want to retrieve \fBx2goclient\fR session profiles from an X2Go Session Broker use the following options: .TP \*(T<\fB\-\-broker-url=\fR\*(T> Specify the of the X2Go Session Broker. X2Go Client can access http:// and ssh:// style URLs. .TP \*(T<\fB\-\-broker-noauth\fR\*(T> The X2Go Session Broker is accessible without authentication. .TP \*(T<\fB\-\-auth-id=\fR\*(T> Use this for authenticating against the X2Go Session Broker. This option mostly makes sense together with \fI--broker-autologin\fR or \fI--broker-ssh-key\fR. .TP \*(T<\fB\-\-broker-autologin\fR\*(T> For SSH based X2Go Session Brokers. If an SSH agent is available or default key files exist then try those for authentication against the X2Go Session Broker. .TP \*(T<\fB\-\-broker-autologoff\fR\*(T> Enforce re-authentication against X2Go Session Broker after a session has been suspended or terminated. .TP \*(T<\fB\-\-broker-ssh-key=\fR\*(T> For SSH based X2Go Session Brokers. Full path to a valid SSH private key file. .TP \*(T<\fB\-\-broker-name=\fR\*(T> Currently unused... .SH LDAP OPTIONS (deprecated) NOTE: LDAP support won't be continued in X2Go Client 2 (next generation of X2Go Client). The LDAP functionality already is fully available via the X2Go Session Brokerage feature. .PP In case you want to retrieve \fBx2goclient\fR session profiles from an LDAP server use the following options: .TP \*(T<\fB\-\-ldap\fR\*(T> Start with LDAP support (disabled by default). .TP \*(T<\fB\-\-basedn\fR\*(T> Base DN to search in LDAP. .TP \*(T<\fB\-\-ldap-server\fR\*(T> LDAP Server hostname. .TP \*(T<\fB\-\-ldap-port\fR\*(T> LDAP Server portnumber (default: 389). .TP \*(T<\fB\-\-ldap-server1\fR\*(T> Failover LDAP Server hostname. .TP \*(T<\fB\-\-ldap-port1\fR\*(T> Failover LDAP Server portnumber (default: 389). .TP \*(T<\fB\-\-ldap-server2\fR\*(T> Failover LDAP Server hostname. .PP .SH AUTHOR This manual has been written by Mike Gabriel for the X2Go project (http://www.x2go.org). x2goclient-4.0.1.1/ongetpass.cpp0000644000000000000000000000711012214040350013314 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifdef HAVE_CONFIG_H #include #endif #include "ongetpass.h" #include "x2goclientconfig.h" #include #include #ifdef CFGCLIENT #include #endif #ifndef Q_OS_WIN #include #include #endif #include #include #include #include #include #include #include "x2gologdebug.h" using namespace std; int x2goMain ( int argc, char *argv[] ) { QApplication app ( argc,argv ); #ifndef Q_WS_HILDON #ifdef Q_OS_LINUX app.setStyle ( new QPlastiqueStyle() ); #endif #endif QStringList args; if ( argc > 1 ) args=app.arguments(); if ( args.count() >1 && args[1]=="--dialog" ) { #ifdef CFGCLIENT ONMainWindow::installTranslator(); #endif QString type=args[2]; QString caption=args[4]; caption=caption.replace ( "NX","X2Go" ); QString text=args[6]; if ( type=="error" || type=="panic" ) return QMessageBox::critical ( 0, caption,text ); if ( type=="ok" ) return QMessageBox::information ( 0, caption,text ); if ( type=="yesno" ) { if(text.indexOf("No response received from the remote server")!=-1 && text.indexOf("Do you want to terminate the current session")!=-1) { text=QObject::tr("No response received from the remote server. Do you want to terminate the current session?"); int rez=QMessageBox::question ( 0, caption,text, QMessageBox::Yes, QMessageBox::No ); if(rez==QMessageBox::Yes && args.count()>9) { #ifndef Q_OS_WIN int pid=args[9].toUInt(); kill(pid, SIGKILL); #else QProcess::execute("bash -c \"kill -9 "+args[9]+"\""); #endif } return rez; } else return QMessageBox::question ( 0, caption,text, QMessageBox::Yes, QMessageBox::No ); } return -1; } #ifdef CFGCLIENT else { ONMainWindow* mw = new ONMainWindow; mw->show(); return app.exec(); } #endif return 0; } x2goclient-4.0.1.1/ongetpass.h0000644000000000000000000000304512214040350012764 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef ONGETPASS_H #define ONGETPASS_H #include #ifdef __cplusplus extern "C" { #endif #ifdef Q_OS_WIN __declspec(dllexport) #endif int x2goMain ( int argc, char *argv[] ); void askpass ( const QString& param, const QString& accept, const QString& cookie, const QString& socketName ); #ifdef __cplusplus } #endif #endif x2goclient-4.0.1.1/onmainwindow.cpp0000644000000000000000000116261612214040350014040 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "onmainwindow_privat.h" void x2goSession::operator = ( const x2goSession& s ) { agentPid=s.agentPid; clientIp=s.clientIp; cookie=s.cookie; crTime=s.crTime; display=s.display; grPort=s.grPort; server=s.server; sessionId=s.sessionId; sndPort=s.sndPort; fsPort=s.fsPort; status=s.status; } bool ONMainWindow::portable=false; QString ONMainWindow::homeDir; QString ONMainWindow::sessionCfg; #ifdef Q_OS_WIN QString ONMainWindow::u3Device; #endif bool ONMainWindow::debugging=false; ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent ) { #ifdef Q_OS_LINUX image=shape=0; #endif x2goInfof(1) << tr("Starting x2goclient..."); debugging = false; setFocusPolicy ( Qt::NoFocus ); installTranslator(); cleanAllFiles=false; drawMenu=true; usePGPCard=false; PGPInited=false; extLogin=false; startMaximized=false; startHidden=false; thinMode=false; showHaltBtn=false; defaultUseSound=true; defaultSetKbd=true; extStarted=false; cmdAutologin=false; defaultLink=2; defaultFullscreen=false; defaultXinerama=false; acceptRsa=false; cardStarted=false; cardReady=false; shadowSession=false; proxyRunning=false; // useSshAgent=false; closeEventSent=false; miniMode=false; embedMode=false; proxyWinEmbedded=false; proxyWinId=0; embedParent=embedChild=0l; defaultSession=false; connTest=false; defaultUser=false; defaultWidth=800; defaultHeight=600; defaultPack="16m-jpeg"; defaultQuality=9; defaultLayout<physicalDpiX(); int dpiy = QApplication::desktop()->physicalDpiY(); if ( dpix >0 && dpiy >0) { defaultSetDPI=true; defaultDPI=(dpix+dpiy)/2; } else { defaultSetDPI=false; defaultDPI=96; } #ifdef Q_OS_WIN clientSshPort="7022"; pulsePort=4713; winSshdStarted=false; #else userSshd=false; sshd=0l; #endif appDir=QApplication::applicationDirPath(); #if defined Q_OS_WIN && defined CFGPLUGIN wchar_t pluginpath[1024]; HMODULE module; module=GetModuleHandleW ( L"npx2goplugin.dll" ); GetModuleFileNameW ( module,pluginpath, 1024 ); QString ppstr=QString::fromUtf16 ( ( const ushort* ) pluginpath ); ppstr.replace ( "\\npx2goplugin.dll","" ); appDir=wapiShortFileName ( ppstr ); QDir::setCurrent ( appDir ); #endif homeDir=QDir::homePath(); #ifdef Q_OS_WIN pulseServer=0l; xorg=0l; xDisplay=0; #endif cleanAskPass(); setWindowTitle ( tr ( "X2Go Client" ) ); ld=0; tunnel=0l; sndTunnel=0l; fsTunnel=0l; nxproxy=0l; soundServer=0l; scDaemon=0l; gpgAgent=0l; statusLabel=0; gpg=0l; restartResume=false; isPassShown=true; readExportsFrom=QString::null; spoolTimer=0l; ldapOnly=false; embedControlChanged=false; statusString=tr ( "connecting" ); hide(); kdeIconsPath=getKdeIconsPath(); addToAppNames ( "WWWBROWSER",tr ( "Internet browser" ) ); addToAppNames ( "MAILCLIENT",tr ( "Email client" ) ); addToAppNames ( "OFFICE",tr ( "OpenOffice.org" ) ); addToAppNames ( "TERMINAL",tr ( "Terminal" ) ); #ifndef Q_OS_LINUX widgetExtraStyle =new QPlastiqueStyle(); #endif agentCheckTimer=new QTimer ( this ); connect ( agentCheckTimer,SIGNAL ( timeout() ),this, SLOT ( slotCheckAgentProcess() ) ); #ifdef CFGCLIENT QStringList args=QCoreApplication::arguments(); for ( int i=1; i0 ) { portableDataPath=u3Path; ONMainWindow::portable=true; setWindowTitle ( "X2Go Client - U3" ); } #endif if ( ONMainWindow::portable ) { if ( portableDataPath.length() <=0 ) portableDataPath=QDir::currentPath(); homeDir=portableDataPath; x2goInfof(2)<start(1000); } loadSettings(); trayIconActiveConnectionMenu = NULL; trayIcon = NULL; trayIconMenu=NULL; trayAutoHidden=false; trayEnabled=trayMinToTray=trayNoclose=trayMinCon=trayMaxDiscon=false; trayIconInit(); if ( embedMode ) { miniMode=false; useLdap=false; } if ( readExportsFrom!=QString::null ) { exportTimer=new QTimer ( this ); connect ( exportTimer,SIGNAL ( timeout() ),this, SLOT ( slotExportTimer() ) ); } if ( extLogin ) { extTimer=new QTimer ( this ); extTimer->start ( 2000 ); connect ( extTimer,SIGNAL ( timeout() ),this, SLOT ( slotExtTimer() ) ); } if ( startMaximized ) { QTimer::singleShot ( 10, this, SLOT ( slotResize() ) ); } QDesktopWidget wd; if ( wd.screenGeometry(wd.screenNumber(this)).width() <1024 || wd.screenGeometry(wd.screenNumber(this)).height() <768 ) { miniMode=true; x2goDebug<<"Switching to \"mini\" mode..."; } if ( usePGPCard && !useLdap) { QTimer::singleShot ( 10, this, SLOT ( slotStartPGPAuth() ) ); } //fr=new SVGFrame(QString::null,true,this); fr=new IMGFrame ( ( QImage* ) 0l,this ); setCentralWidget ( fr ); #ifndef Q_WS_HILDON if (BGFile.size()) bgFrame=new SVGFrame ( ( QString ) BGFile,true,fr ); else bgFrame=new SVGFrame ( ( QString ) ":/svg/bg.svg",true,fr ); #else bgFrame=new SVGFrame ( ( QString ) ":/svg/bg_hildon.svg",true,fr ); #endif //bgFrame=new SVGFrame((QString)"/home/admin/test.svg",false,fr); SVGFrame* x2g=new SVGFrame ( ( QString ) ":/svg/x2gologo.svg", false,fr ); QPalette pl=x2g->palette(); pl.setColor ( QPalette::Base, QColor ( 255,255,255,0 ) ); pl.setColor ( QPalette::Window, QColor ( 255,255,255,0 ) ); x2g->setPalette ( pl ); SVGFrame* on=new SVGFrame ( ( QString ) ":/svg/onlogo.svg",false,fr ); on->setPalette ( pl ); if ( !miniMode ) { x2g->setFixedSize ( 100,100 ); on->setFixedSize ( 100,100 ); } else { x2g->setFixedSize ( 50,50 ); on->setFixedSize ( 50,50 ); } mainL=new QHBoxLayout ( fr ); QVBoxLayout* onlay=new QVBoxLayout(); onlay->addStretch(); onlay->addWidget ( on ); QVBoxLayout* x2golay=new QVBoxLayout(); x2golay->addStretch(); x2golay->addWidget ( x2g ); bgLay=new QHBoxLayout ( bgFrame ); bgLay->setSpacing ( 0 ); bgLay->setMargin ( 0 ); bgLay->addLayout ( onlay ); bgLay->addStretch(); username=new QHBoxLayout(); bgLay->addLayout ( username ); if ( embedMode ) bgLay->addStretch(); bgLay->addLayout ( x2golay ); act_set=new QAction ( QIcon ( iconsPath ( "/32x32/edit_settings.png" ) ), tr ( "&Settings ..." ),this ); if (supportMenuFile!=QString::null) { act_support=new QAction ( tr ( "Support ..." ),this ); connect ( act_support,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotSupport() ) ); } act_abclient=new QAction ( QIcon ( ":icons/32x32/x2goclient.png" ), tr ( "About X2GO client" ),this ); connect ( act_set,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotConfig() ) ); connect ( act_abclient,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotAbout() ) ); #ifdef Q_OS_DARWIN embedMode=false; #endif #if defined (Q_OS_WIN) //&& defined (CFGCLIENT ) xorgSettings(); #endif #ifdef Q_OS_WIN winServersReady=false; saveCygnusSettings(); #endif initPassDlg(); initSelectSessDlg(); initStatusDlg(); #if defined(CFGPLUGIN) && defined(Q_OS_LINUX) x2goDebug<<"Creating embedded container."; embedContainer=new QX11EmbedContainer ( fr ); #endif if ( !embedMode ) { initWidgetsNormal(); } #ifdef Q_OS_WIN QTimer::singleShot ( 500, this, SLOT ( startWinServers() ) ); #endif mainL->setSpacing ( 0 ); mainL->setMargin ( 0 ); mainL->insertWidget ( 0, bgFrame ); hide(); QTimer::singleShot ( 1, this, SLOT ( slotResize() ) ); connect ( fr,SIGNAL ( resized ( const QSize ) ),this, SLOT ( slotResize ( const QSize ) ) ); slotResize ( fr->size() ); #ifdef Q_OS_LINUX if (thinMode) { QTimer *timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(slotSyncX())); timer->start(200); } #endif if (showHaltBtn) { QPushButton* bHalt=new QPushButton(bgFrame); QPixmap p(":/png/power-button.png"); bHalt->setIcon(p); bHalt->setFocusPolicy(Qt::NoFocus); bHalt->setFixedSize(32,32); bHalt->move(10,10); bHalt->show(); connect(bHalt,SIGNAL(clicked()),this, SLOT(slotShutdownThinClient())); } if (brokerMode) { broker=new HttpBrokerClient ( this, &config ); connect ( broker,SIGNAL ( fatalHttpError() ),this, SLOT ( close() ) ); connect ( broker, SIGNAL ( authFailed()), this ,SLOT ( slotGetBrokerAuth())); connect ( broker, SIGNAL( sessionsLoaded()), this, SLOT (slotReadSessions())); connect ( broker, SIGNAL ( sessionSelected()), this, SLOT (slotGetBrokerSession())); connect ( broker, SIGNAL ( passwordChanged(QString)), this, SLOT ( slotPassChanged(QString))); } proxyWinTimer=new QTimer ( this ); connect ( proxyWinTimer, SIGNAL ( timeout() ), this, SLOT ( slotFindProxyWin() ) ); xineramaTimer=new QTimer (this); connect( xineramaTimer, SIGNAL(timeout()), this, SLOT(slotConfigXinerama())); x2goInfof(3)<load ( filename ) ) { x2goWarningf(1)<load ( filename ) ) { x2goWarningf(2)<toggleViewAction()->setEnabled ( false ); stb->toggleViewAction()->setVisible ( false ); stb->setFloatable ( false ); stb->setMovable ( false ); statusBar()->setSizeGripEnabled ( false ); #ifndef Q_OS_WIN statusBar()->hide(); #endif act_shareFolder=new QAction ( QIcon ( ":icons/32x32/file-open.png" ), tr ( "Share folder..." ),this ); act_showApps=new QAction ( QIcon ( ":icons/32x32/apps.png" ), tr ( "Applications..." ),this ); act_suspend=new QAction ( QIcon ( ":icons/32x32/suspend.png" ), tr ( "Suspend" ),this ); act_terminate=new QAction ( QIcon ( ":icons/32x32/stop.png" ), tr ( "Terminate" ),this ); act_reconnect=new QAction ( QIcon ( ":icons/32x32/reconnect.png" ), tr ( "Reconnect" ),this ); act_reconnect->setEnabled ( false ); act_embedContol=new QAction ( QIcon ( ":icons/32x32/detach.png" ), tr ( "Detach X2Go window" ),this ); act_embedToolBar=new QAction ( QIcon ( ":icons/32x32/tbhide.png" ), tr ( "Minimize toolbar" ),this ); setEmbedSessionActionsEnabled ( false ); connect ( act_shareFolder,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotExportDirectory() ) ); connect ( act_showApps,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotAppDialog() ) ); connect ( act_suspend,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotSuspendSessFromSt() ) ); connect ( act_terminate,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotTermSessFromSt() ) ); connect ( act_reconnect,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotReconnectSession() ) ); connect ( act_embedContol,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotEmbedControlAction() ) ); connect ( act_embedToolBar,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotEmbedToolBar() ) ); processSessionConfig(); ////embed container//////// #ifndef Q_OS_DARWIN oldParentSize=QSize ( 0,0 ); #ifdef Q_OS_WIN oldParentPos=QPoint ( 0,0 ); #endif childId=0l; #ifdef Q_OS_LINUX connect ( embedContainer, SIGNAL ( clientClosed() ), this, SLOT ( slotDetachProxyWindow() ) ); embedContainer->connect ( embedContainer, SIGNAL ( clientClosed() ), embedContainer, SLOT ( hide() ) ); #endif #ifdef Q_OS_WIN embedContainer=new QWidget ( mainWidget() ); updateTimer = new QTimer ( this ); connect ( updateTimer, SIGNAL ( timeout() ), this, SLOT ( slotUpdateEmbedWindow() ) ); #endif embedContainer->hide(); mainLayout()->addWidget ( embedContainer ); #endif //end of embed container X2goSettings st ( "sessions" ); embedTbVisible=!st.setting()->value ( "embedded/tbvisible", true ).toBool(); slotEmbedToolBar(); showTbTooltip=false; if ( !embedTbVisible ) { showTbTooltip=true; QTimer::singleShot ( 500, this, SLOT ( slotEmbedToolBarToolTip() ) ); QTimer::singleShot ( 3000, this, SLOT ( slotHideEmbedToolBarToolTip() ) ); } if ( !config.showtoolbar ) { stb->hide(); } if ( config.confFS&& ( !config.useFs ) ) { x2goDebug<<"hide share"; act_shareFolder->setVisible ( false ); } act_showApps->setVisible(false); if ( !managedMode ) { #ifdef Q_OS_LINUX QTimer::singleShot ( 500, this, SLOT ( slotActivateWindow() ) ); #endif } #endif//CFGPLUGIN } void ONMainWindow::initWidgetsNormal() { username->setSpacing ( 10 ); username->addStretch(); username->addStretch(); ln=new SVGFrame ( ( QString ) ":/svg/line.svg",true,fr ); ln->setFixedWidth ( ln->sizeHint().width() ); uname=new QLineEdit ( bgFrame ); setWidgetStyle ( uname ); uname->hide(); uname->setFrame ( false ); u=new QLabel ( tr ( "Session:" ),bgFrame ); u->hide(); QFont fnt=u->font(); fnt.setPointSize ( 16 ); #ifndef Q_WS_HILDON if ( miniMode ) { fnt.setPointSize ( 12 ); } #endif u->setFont ( fnt ); connect ( uname,SIGNAL ( returnPressed() ),this, SLOT ( slotUnameEntered() ) ); QPalette pal=u->palette(); pal.setColor ( QPalette::WindowText, QColor ( 200,200,200,255 ) ); u->setPalette ( pal ); uname->setFont ( fnt ); pal=uname->palette(); pal.setColor ( QPalette::Base, QColor ( 255,255,255,0 ) ); pal.setColor ( QPalette::Text, QColor ( 200,200,200,255 ) ); uname->setPalette ( pal ); u->show(); uname->show(); users=new QScrollArea ( fr ); pal=users->verticalScrollBar()->palette(); pal.setBrush ( QPalette::Window, QColor ( 110,112,127,255 ) ); pal.setBrush ( QPalette::Base, QColor ( 110,112,127,255 ) ); pal.setBrush ( QPalette::Button, QColor ( 110,112,127,255 ) ); users->verticalScrollBar()->setPalette ( pal ); users->setFrameStyle ( QFrame::Plain ); users->setFocusPolicy ( Qt::NoFocus ); pal=users->palette(); pal.setBrush ( QPalette::Window, QColor ( 110,112,127,255 ) ); users->setPalette ( pal ); users->setWidgetResizable ( true ); uframe=new QFrame(); users->setWidget ( uframe ); mainL->insertWidget ( 1, ln ); mainL->addWidget ( users ); QAction *act_exit=new QAction ( QIcon ( iconsPath ( "/32x32/exit.png" ) ), tr ( "&Quit" ),this ); act_exit->setShortcut ( tr ( "Ctrl+Q" ) ); act_exit->setStatusTip ( tr ( "Quit" ) ); act_new=new QAction ( QIcon ( iconsPath ( "/32x32/new_file.png" ) ), tr ( "&New session ..." ),this ); act_new->setShortcut ( tr ( "Ctrl+N" ) ); setWindowIcon ( QIcon ( ":icons/128x128/x2go.png" ) ); act_edit=new QAction ( QIcon ( iconsPath ( "/32x32/edit.png" ) ), tr ( "Session management..." ),this ); act_edit->setShortcut ( tr ( "Ctrl+E" ) ); if (noSessionEdit) { act_edit->setEnabled(false); act_new->setEnabled(false); } act_sessicon=new QAction ( QIcon ( iconsPath ( "/32x32/create_file.png" ) ), tr ( "&Create session icon on desktop..." ), this ); if (brokerMode) act_sessicon->setEnabled(false); if (changeBrokerPass) { act_changeBrokerPass=new QAction ( QIcon ( iconsPath ( "/32x32/auth.png" ) ), tr ( "&Set broker password..." ), this ); connect ( act_changeBrokerPass,SIGNAL ( triggered(bool)),this, SLOT ( slotChangeBrokerPass()) ); act_changeBrokerPass->setEnabled(false); } if (connTest) { act_testCon=new QAction ( QIcon ( iconsPath ( "/32x32/contest.png" ) ), tr ( "&Connectivity test..." ), this ); connect ( act_testCon,SIGNAL ( triggered(bool)),this, SLOT ( slotTestConnection()) ); } QAction *act_tb=new QAction ( tr ( "Show toolbar" ),this ); act_tb->setCheckable ( true ); act_tb->setChecked ( showToolBar ); QAction *act_abqt=new QAction ( tr ( "About Qt" ),this ); connect ( act_abqt,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotAboutQt() ) ); connect ( act_new,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotNewSession() ) ); connect ( act_sessicon,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotCreateSessionIcon() ) ); connect ( act_edit,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotManage() ) ); connect ( act_exit,SIGNAL ( triggered ( bool ) ),this, SLOT ( trayQuit()) ) ; connect ( act_tb,SIGNAL ( toggled ( bool ) ),this, SLOT ( displayToolBar ( bool ) ) ); stb=addToolBar ( tr ( "Show toolbar" ) ); QShortcut* ex=new QShortcut ( QKeySequence ( tr ( "Ctrl+Q","exit" ) ), this ); connect ( ex,SIGNAL ( activated() ),this,SLOT ( close() ) ); if ( drawMenu ) { QMenu* menu_sess=menuBar()->addMenu ( tr ( "&Session" ) ); QMenu* menu_opts=menuBar()->addMenu ( tr ( "&Options" ) ); if (!brokerMode) { menu_sess->addAction ( act_new ); menu_sess->addAction ( act_edit ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) if ( !portable ) menu_sess->addAction ( act_sessicon ); #endif menu_sess->addSeparator(); } menu_sess->addAction ( act_exit ); menu_opts->addAction ( act_set ); menu_opts->addAction ( act_tb ); if (changeBrokerPass) menu_opts->addAction(act_changeBrokerPass); if (connTest) menu_opts->addAction(act_testCon); QMenu* menu_help=menuBar()->addMenu ( tr ( "&Help" ) ); if (supportMenuFile!=QString::null) menu_help->addAction ( act_support ); menu_help->addAction ( act_abclient ); menu_help->addAction ( act_abqt ); if (!brokerMode) { stb->addAction ( act_new ); stb->addAction ( act_edit ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) if ( !portable ) stb->addAction ( act_sessicon ); #endif stb->addSeparator(); } stb->addAction ( act_set ); if (changeBrokerPass) stb->addAction(act_changeBrokerPass); if (connTest) stb->addAction(act_testCon); if ( !showToolBar ) stb->hide(); connect ( act_tb,SIGNAL ( toggled ( bool ) ),stb, SLOT ( setVisible ( bool ) ) ); } else stb->hide(); #if !defined USELDAP useLdap=false; #endif if ( useLdap ) { act_new->setEnabled ( false ); act_edit->setEnabled ( false ); u->setText ( tr ( "Login:" ) ); QTimer::singleShot ( 1500, this, SLOT ( readUsers() ) ); } else { if (!brokerMode) QTimer::singleShot ( 1, this, SLOT ( slotReadSessions() ) ); else { QTimer::singleShot(1, this,SLOT(slotGetBrokerAuth())); } } } void ONMainWindow::slotPassChanged(const QString& result) { if (result==QString::null) { QMessageBox::critical(this, tr("Error"),tr("Operation failed")); } else { QMessageBox::information(this, tr("Password changed"),tr("Password changed")); config.brokerPass=result; } setEnabled(true); slotClosePass(); sessionStatusDlg->hide(); } void ONMainWindow::slotTestConnection() { ConTest test( broker, config.brokerurl, this); test.exec(); } void ONMainWindow::slotChangeBrokerPass() { x2goDebug<<"Changing broker password."; BrokerPassDlg passDlg; if (passDlg.exec()!=QDialog::Accepted) return; if (passDlg.oldPass()!=config.brokerPass) { QMessageBox::critical(this,tr("Error"),tr("Wrong password!")); return; } broker->changePassword(passDlg.newPass()); setStatStatus ( tr ( "Connecting to broker" ) ); stInfo->insertPlainText ( "broker url: "+config.brokerurl ); setEnabled ( false ); uname->hide(); u->hide(); return; } void ONMainWindow::slotCheckPortableDir() { if (!QFile::exists(homeDir)) { x2goDebug<<"Portable directory does not exists, closing."; close(); } } void ONMainWindow::slotGetBrokerAuth() { pass->clear(); login->clear(); QString pixFile=":icons/128x128/x2gosession.png"; if (SPixFile!=QString::null) pixFile=SPixFile; QPixmap pix(pixFile); if ( !miniMode ) { fotoLabel->setPixmap ( pix.scaled ( 64,64, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) ); fotoLabel->setFixedSize ( 64,64 ); } else { fotoLabel->setPixmap ( pix.scaled ( 48,48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) ); fotoLabel->setFixedSize ( 48,48 ); } if(users->isVisible()) { users->hide(); ln->hide(); bgLay->insertStretch(3); } QString text=tr("Authentication"); /* if(config.brokerName.length()>0) text+=config.brokerName; else text+=config.brokerurl;*/ nameLabel->setText ( text ); slotShowPassForm(); config.brokerAuthenticated=false; if(config.brokerUser.length()>0) { login->setText(config.brokerUser); pass->setFocus(); } if(config.brokerNoAuth) slotSessEnter(); else if(config.brokerurl.indexOf("ssh://")==0 && (config.brokerAutologin || config.brokerSshKey.length()>0)) slotSessEnter(); } void ONMainWindow::trayIconInit() { #ifndef CFGPLUGIN X2goSettings st ( "settings" ); trayEnabled=st.setting()->value ( "trayicon/enabled", false ).toBool(); trayMinCon=st.setting()->value ( "trayicon/mincon", false ).toBool(); trayMaxDiscon=st.setting()->value ( "trayicon/maxdiscon", false ).toBool(); trayNoclose=st.setting()->value ( "trayicon/noclose", false ).toBool(); trayMinToTray=st.setting()->value ( "trayicon/mintotray", false ).toBool(); if (!trayEnabled) { trayMinCon=trayMaxDiscon=trayNoclose=trayMinToTray=false; if (trayIcon) { delete trayIcon; delete trayIconMenu; trayIcon=0l; trayIconMenu=0l; } } else { if (!trayIcon) { trayIconMenu = new QMenu(this); trayIconMenu->addAction(tr("Restore"),this, SLOT(showNormal())); trayIconActiveConnectionMenu = trayIconMenu->addMenu(tr("Not connected")); appMenu[Application::MULTIMEDIA]=initTrayAppMenu(tr("Multimedia"), QPixmap(":/icons/22x22/applications-multimedia.png")); appMenu[Application::DEVELOPMENT]=initTrayAppMenu(tr("Development"), QPixmap(":/icons/22x22/applications-development.png")); appMenu[Application::EDUCATION]=initTrayAppMenu(tr("Education"), QPixmap(":/icons/22x22/applications-education.png")); appMenu[Application::GAME]=initTrayAppMenu(tr("Game"), QPixmap(":/icons/22x22/applications-games.png")); appMenu[Application::GRAPHICS]=initTrayAppMenu(tr("Graphics"), QPixmap(":/icons/22x22/applications-graphics.png")); appMenu[Application::NETWORK]=initTrayAppMenu(tr("Network"), QPixmap(":/icons/22x22/applications-internet.png")); appMenu[Application::OFFICE]=initTrayAppMenu(tr("Office"), QPixmap(":/icons/22x22/applications-office.png")); appMenu[Application::SETTINGS]=initTrayAppMenu(tr("Settings"), QPixmap(":/icons/22x22/preferences-system.png")); appMenu[Application::SYSTEM]=initTrayAppMenu(tr("System"), QPixmap(":/icons/22x22/applications-system.png")); appMenu[Application::UTILITY]=initTrayAppMenu(tr("Utility"), QPixmap(":/icons/22x22/applications-utilities.png")); appMenu[Application::OTHER]=initTrayAppMenu(tr("Other"), QPixmap(":/icons/22x22/applications-other.png")); appSeparator=trayIconActiveConnectionMenu->addSeparator(); trayIconActiveConnectionMenu->addAction(tr ("Share folder..." ),this, SLOT(slotExportDirectory())); trayIconActiveConnectionMenu->addAction(tr("Suspend"),this, SLOT(slotSuspendSessFromSt())); trayIconActiveConnectionMenu->addAction(tr("Terminate"),this, SLOT(slotTermSessFromSt())); connect (trayIconActiveConnectionMenu, SIGNAL(triggered(QAction*)), this, SLOT(slotAppMenuTriggered(QAction*))); if (sessionStatusDlg && sessionStatusDlg->isVisible()) { if (!useLdap) trayIconActiveConnectionMenu->setTitle(lastSession->name()); else trayIconActiveConnectionMenu->setTitle(lastUser->username()); } else { trayIconActiveConnectionMenu->setEnabled(false); } trayIconMenu->addSeparator(); trayIconMenu->addAction(tr("Quit"),this, SLOT(trayQuit())); // setup the tray icon itself trayIcon = new QSystemTrayIcon(this); connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(trayIconActivated(QSystemTrayIcon::ActivationReason))); connect(trayIcon, SIGNAL(messageClicked()), this, SLOT(trayMessageClicked())); trayIcon->setContextMenu(trayIconMenu); trayIcon->setIcon(QIcon ( ":icons/128x128/x2go.png") ); trayIcon->setToolTip(tr("Left mouse button to hide/restore - Right mouse button to display context menu")); } if (!startHidden) { trayIcon->show(); plugAppsInTray(); } } #endif } QMenu* ONMainWindow::initTrayAppMenu(QString text, QPixmap icon) { QMenu* menu=trayIconActiveConnectionMenu->addMenu(text); menu->setIcon(icon); return menu; } void ONMainWindow::slotAppMenuTriggered(QAction* action) { x2goDebug<<"slotAppMenuTriggered: "<data().toString(); if (action->data().toString() != "") runApplication(action->data().toString()); } void ONMainWindow::plugAppsInTray() { if (!trayIcon) return; removeAppsFromTray(); x2goDebug<<"Plugging apps in tray."; bool empty=true; topActions.clear(); foreach(Application app, applications) { QAction* act; if (app.category==Application::TOP) { act=new QAction(app.icon,app.name,trayIconActiveConnectionMenu); trayIconActiveConnectionMenu->insertAction(appSeparator, act); topActions.append(act); } else { act=appMenu[app.category]->addAction(app.icon,app.name); appMenu[app.category]->menuAction()->setVisible(true); } act->setToolTip(app.comment); act->setData(app.exec); empty=false; } if (!empty) appSeparator->setVisible(true); } void ONMainWindow::removeAppsFromTray() { if (!trayIcon) return; x2goDebug<<"Removing apps from tray"; for (int i=0; i<=Application::OTHER; ++i) { appMenu[i]->clear(); appMenu[i]->menuAction()->setVisible(false); } foreach (QAction* act, topActions) { trayIconActiveConnectionMenu->removeAction(act); delete act; } topActions.clear(); appSeparator->setVisible(false); } QString ONMainWindow::findTheme ( QString /*theme*/ ) { return QString::null; } QString ONMainWindow::getKdeIconsPath() { return ":/icons"; } void ONMainWindow::slotResize ( const QSize sz ) { if ( startHidden ) { return; } int height; int usize; height=sz.height(); if ( !embedMode ) { if ( !miniMode ) { usize=sz.width()-800; if ( usize<360 ) usize=360; if ( usize>500 ) usize=500; } else { usize=285; } if ( users->width() !=usize ) { users->setFixedWidth ( usize ); if ( useLdap ) { QList::iterator it; QList::iterator end=names.end(); for ( it=names.begin(); it!=end; it++ ) { if ( !miniMode ) ( *it )->move ( ( usize-360 ) /2, ( *it )->pos().y() ); else ( *it )->move ( ( usize-250 ) /2, ( *it )->pos().y() ); } } else { QList::iterator it; QList::iterator end= sessions.end(); for ( it=sessions.begin(); it!=end; it++ ) { if ( !miniMode ) ( *it )->move ( ( usize-360 ) /2, ( *it )->pos().y() ); else ( *it )->move ( ( usize-250 ) /2, ( *it )->pos().y() ); } } } u->setFixedWidth ( u->sizeHint().width() ); int bwidth=bgFrame->width(); int upos= ( bwidth-u->width() ) /2; if ( upos<0 ) upos=0; int rwidth=bwidth- ( upos+u->width() +5 ); if ( rwidth<0 ) rwidth=1; uname->setMinimumWidth ( rwidth ); u->move ( upos,height/2 ); uname->move ( u->pos().x() +u->width() +5,u->pos().y() ); } } void ONMainWindow::closeClient() { x2goInfof(6)<hide(); closeEventSent=true; if ( !startMaximized && !startHidden && !embedMode ) { x2goDebug<<"Saving settings..."; X2goSettings st ( "sizes" ); st.setting()->setValue ( "mainwindow/size", QVariant ( size() ) ); st.setting()->setValue ( "mainwindow/pos",QVariant ( pos() ) ); st.setting()->setValue ( "mainwindow/maximized", QVariant ( isMaximized() ) ); st.setting()->sync(); x2goDebug<<"Saved settings."; #ifdef Q_OS_LINUX if (image) XFreePixmap(QX11Info::display(),image); if (shape) XFreePixmap(QX11Info::display(),shape); #endif } if ( nxproxy!=0l ) { if ( nxproxy->state() ==QProcess::Running ) { x2goDebug<<"Terminating proxy..."; nxproxy->terminate(); x2goDebug<<"Terminated proxy."; } x2goDebug<<"Deleting proxy..."; delete nxproxy; x2goDebug<<"Deleted proxy."; } if ( sshConnection && !useLdap) { x2goDebug<<"Waiting for the SSH connection to finish..."; delete sshConnection; x2goDebug<<"Waited for the SSH connection to finish."; sshConnection=0; } if (useLdap) { for (int i=0; istate() ==QProcess::Running ) { x2goDebug<<"Terminating gpg-agent..."; gpgAgent->terminate(); x2goDebug<<"Terminated gpg-agent."; } } #ifndef Q_OS_WIN if ( agentPid.length() >0 ) { if ( checkAgentProcess() ) { QStringList arg; arg<<"-9"<kill(); x2goDebug<<"Killed the pulse sound server."; x2goDebug<<"Deleting the pulse process..."; delete pulseServer; x2goDebug<<"Deleted the pulse process."; QDir dr ( homeDir ); dr.remove ( pulseDir+"/config.pa" ); dr.remove ( pulseDir+"/pulse-pulseuser/pid" ); dr.rmdir ( pulseDir+"/pulse-pulseuser" ); dr.rmdir ( pulseDir ); } if ( xorg ) { x2goDebug<<"Terminating xorg..."; xorg->terminate(); x2goDebug<<"Terminated xorg."; x2goDebug<<"Deleting xorg..."; delete xorg; x2goDebug<<"Deleted xorg."; } if ( winSshdStarted ) { TerminateProcess ( sshd.hProcess,0 ); CloseHandle ( sshd.hProcess ); CloseHandle ( sshd.hThread ); } #else if ( userSshd && sshd ) { x2goDebug<<"Terminating sshd..."; sshd->terminate(); x2goDebug<<"Terminated sshd."; delete sshd; } #endif if ( embedMode ) { passForm->close(); selectSessionDlg->close(); #ifndef Q_OS_DARWIN // closeEmbedWidget(); #endif } if ( ONMainWindow::portable ) { #ifdef Q_OS_WIN if ( !cyEntry ) { removeCygwinEntry(); } #endif cleanPortable(); } SshMasterConnection::finalizeLibSsh(); x2goInfof(7)<ignore(); } else { trayQuit(); } } void ONMainWindow::hideEvent(QHideEvent* event) { QMainWindow::hideEvent(event); if (event->spontaneous() && trayMinToTray) hide(); } void ONMainWindow::trayQuit() { closeClient(); qApp->quit(); } void ONMainWindow::trayIconActivated(QSystemTrayIcon::ActivationReason reason ) { switch (reason) { // use single left click on unix // and double click on windows (Is it standard behaviour conform?) #ifdef Q_OS_UNIX case QSystemTrayIcon::Trigger: #else case QSystemTrayIcon::DoubleClick: #endif if (isVisible()) hide(); else { showNormal(); } break; default: break; } } void ONMainWindow::trayMessageClicked() { } void ONMainWindow::loadSettings() { X2goSettings st ( "sizes" ); mwSize=st.setting()->value ( "mainwindow/size", ( QVariant ) QSize ( 800,600 ) ).toSize(); mwPos=st.setting()->value ( "mainwindow/pos", ( QVariant ) QPoint ( 20,20 ) ).toPoint(); mwMax=st.setting()->value ( "mainwindow/maximized", ( QVariant ) false ).toBool(); X2goSettings st1 ( "settings" ); if ( !ldapOnly ) { useLdap=st1.setting()->value ( "LDAP/useldap", ( QVariant ) false ).toBool(); ldapServer=st1.setting()->value ( "LDAP/server", ( QVariant ) "localhost" ).toString(); ldapPort=st1.setting()->value ( "LDAP/port", ( QVariant ) 389 ).toInt(); ldapDn=st1.setting()->value ( "LDAP/basedn", ( QVariant ) QString::null ).toString(); ldapServer1=st1.setting()->value ( "LDAP/server1", ( QVariant ) QString::null ).toString(); ldapPort1=st1.setting()->value ( "LDAP/port1", ( QVariant ) 0 ).toInt(); ldapServer2=st1.setting()->value ( "LDAP/server2", ( QVariant ) QString::null ).toString(); ldapPort2=st1.setting()->value ( "LDAP/port2", ( QVariant ) 0 ).toInt(); } #ifndef Q_OS_WIN if ( !userSshd ) clientSshPort=st1.setting()->value ( "clientport", ( QVariant ) 22 ).toString(); #endif showToolBar=st1.setting()->value ( "toolbar/show", ( QVariant ) true ).toBool(); } QString ONMainWindow::iconsPath ( QString fname ) { /* QFile fl(this->kdeIconsPath+fname); if(fl.exists()) return kdeIconsPath+fname;*/ return ( QString ) ":/icons"+fname; } void ONMainWindow::displayUsers() { QPixmap pix; if ( !miniMode ) pix=QPixmap ( ":/png/ico.png" ); else pix=QPixmap ( ":/png/ico_mini.png" ); QPixmap foto=QPixmap ( iconsPath ( "/64x64/personal.png" ) ); QPalette pal=palette(); pal.setBrush ( QPalette::Window, QBrush ( pix ) ); pal.setBrush ( QPalette::Base, QBrush ( pix ) ); pal.setBrush ( QPalette::Button, QBrush ( pix ) ); QFont fnt=font(); fnt.setPointSize ( 12 ); uframe->setFont ( fnt ); QList::iterator it; QList::iterator end=userList.end(); int i=0; for ( it=userList.begin(); it!=end; it++ ) { int val=i+1; UserButton* l; if ( ( *it ).foto.isNull() ) l=new UserButton ( this, uframe, ( *it ).uid, ( *it ).name,foto,pal ); else l=new UserButton ( this, uframe, ( *it ).uid, ( *it ).name, ( *it ).foto,pal ); connect ( l,SIGNAL ( userSelected ( UserButton* ) ),this, SLOT ( slotSelectedFromList ( UserButton* ) ) ); if ( !miniMode ) l->move ( ( users->width()-360 ) /2, i*120+ ( val-1 ) *25+5 ); else l->move ( ( users->width()-260 ) /2, i*120+ ( val-1 ) *25+5 ); l->show(); names.append ( l ); i++; } int val=i; uframe->setFixedHeight ( val*120+ ( val-1 ) *25 ); uname->setText ( "" ); disconnect ( uname,SIGNAL ( textEdited ( const QString& ) ),this, SLOT ( slotSnameChanged ( const QString& ) ) ); connect ( uname,SIGNAL ( textEdited ( const QString& ) ),this, SLOT ( slotUnameChanged ( const QString& ) ) ); if ( usePGPCard && !PGPInited) { PGPInited=true; x2goDebug<<"Users loaded, starting smart card daemon."; QTimer::singleShot ( 10, this, SLOT ( slotStartPGPAuth() ) ); } } void ONMainWindow::showPass ( UserButton* user ) { QPalette pal=users->palette(); setUsersEnabled ( false ); QString fullName; QPixmap foto; if ( user ) { foto=user->foto(); nick=user->username(); fullName=user->fullName(); user->hide(); lastUser=user; } else { lastUser=0; foto.load ( iconsPath ( "/64x64/personal.png" ) ); foto=foto.scaled ( 100,100 ); nick=uname->text(); fullName="User Unknown"; } fotoLabel->setPixmap ( foto ); QString text=""+nick+"
("+fullName+")"; nameLabel->setText ( text ); login->setText ( nick ); login->hide(); pass->setEchoMode ( QLineEdit::Password ); pass->setFocus(); slotShowPassForm(); } void ONMainWindow::slotSelectedFromList ( UserButton* user ) { pass->setText ( "" ); showPass ( user ); } void ONMainWindow::slotClosePass() { if (brokerMode) { if (!config.brokerAuthenticated) close(); } passForm->hide(); if ( !embedMode ) { u->show(); uname->show(); if ( useLdap ) { if ( lastUser ) { lastUser->show(); uname->setText ( lastUser->username() ); } } else { if (lastSession) { lastSession->show(); uname->setText ( lastSession->name() ); } } uname->setEnabled ( true ); u->setEnabled ( true ); setUsersEnabled ( true ); uname->selectAll(); uname->setFocus(); } } void ONMainWindow::slotPassEnter() { if(!embedMode) shadowSession=false; #if defined ( Q_OS_WIN ) || defined (Q_OS_DARWIN ) QString disp=getXDisplay(); if ( disp==QString::null ) return; #endif #ifdef USELDAP if ( ! initLdapSession() ) { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Please check LDAP settings" ), QMessageBox::Ok,QMessageBox::NoButton ); slotConfig(); return; } passForm->setEnabled ( false ); x2goServers.clear(); list attr; attr.push_back ( "cn" ); attr.push_back ( "serialNumber" ); attr.push_back ( "l" ); list res; QString searchBase="ou=Servers,ou=ON,"+ldapDn; try { ld->stringSearch ( searchBase.toStdString(),attr, "objectClass=ipHost",res ); } catch ( LDAPExeption e ) { QString message="Exeption in: "; message=message+e.err_type.c_str(); message=message+" : "+e.err_str.c_str(); QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok,QMessageBox::NoButton ); slotConfig(); return; } if ( res.size() ==0 ) { QString message=tr ( "no X2Go server found in LDAP " ); QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok,QMessageBox::NoButton ); slotConfig(); return; } list::iterator it=res.begin(); list::iterator end=res.end(); QString freeServer; QString firstServer; bool isFirstServerSet=false; for ( ; it!=end; ++it ) { serv server; server.name=LDAPSession::getStringAttrValues ( *it,"cn" ).front().c_str(); QString sPort="22"; list sL=LDAPSession::getStringAttrValues ( *it,"l" ); if ( sL.size() >0 ) { sPort=sL.front().c_str(); } x2goDebug<<"SSH-Server("< serialNumber=LDAPSession::getStringAttrValues ( *it,"serialNumber" ); if ( serialNumber.size() >0 ) { sFactor=serialNumber.front().c_str(); } x2goDebug<<"SSH-Server("<setEnabled ( false ); QString passwd; if ( !extLogin ) currentKey=QString::null; QString user=getCurrentUname(); // get x2gogetservers not from ldap server, but from first x2goserver // QString host=ldapServer; QString host=firstServer; passwd=getCurrentPass(); if (sshConnection) delete sshConnection; sshConnection=startSshConnection ( host,sshPort,acceptRsa,user,passwd,true, false ); #endif } void ONMainWindow::slotUnameChanged ( const QString& text ) { if ( prevText==text ) return; if ( text=="" ) return; QList::iterator it; QList::iterator endit=names.end(); for ( it=names.begin(); it!=endit; it++ ) { QString username= ( *it )->username(); if ( username.indexOf ( text,0,Qt::CaseInsensitive ) ==0 ) { QPoint pos= ( *it )->pos(); uname->setText ( username ); QScrollBar* bar=users->verticalScrollBar(); int docLang=bar->maximum()-bar->minimum() + bar->pageStep(); double position= ( double ) ( pos.y() ) / ( double ) ( uframe->height() ); bar->setValue ( ( int ) ( docLang*position-height() /2+ ( *it )->height() /2 ) ); uname->setSelection ( username.length(),text.length()- username.length() ); break; } } prevText=text; } void ONMainWindow::slotUnameEntered() { QString text=uname->text(); if ( useLdap ) { UserButton* user=NULL; QList::iterator it; QList::iterator endit=names.end(); for ( it=names.begin(); it!=endit; it++ ) { QString username= ( *it )->username(); if ( username==text ) { user=*it; break; } } showPass ( user ); } else { SessionButton* sess=NULL; QList::iterator it; QList::iterator endit=sessions.end(); for ( it=sessions.begin(); it!=endit; it++ ) { QString name= ( *it )->name(); if ( name==text ) { sess=*it; break; } } if ( sess ) slotSelectedFromList ( sess ); } } void ONMainWindow::readUsers() { #ifdef USELDAP if ( ! initLdapSession() ) { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Please check LDAP settings" ), QMessageBox::Ok,QMessageBox::NoButton ); slotConfig(); return; } list attr; attr.push_back ( "uidNumber" ); attr.push_back ( "uid" ); attr.push_back ( "cn" ); attr.push_back ( "jpegPhoto" ); list result; try { ld->binSearch ( ldapDn.toStdString(),attr, "objectClass=posixAccount",result ); } catch ( LDAPExeption e ) { QString message="Exeption in: "; message=message+e.err_type.c_str(); message=message+" : "+e.err_str.c_str(); QMessageBox::critical ( 0l,tr ( "Error" ), message,QMessageBox::Ok, QMessageBox::NoButton ); QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Please check LDAP settings" ), QMessageBox::Ok,QMessageBox::NoButton ); slotConfig(); return; } list::iterator it=result.begin(); list::iterator end=result.end(); for ( ; it!=end; ++it ) { user u; QString uin=LDAPSession::getBinAttrValues ( *it,"uidNumber" ).front().getData(); u.uin=uin.toUInt(); if ( u.uinlastUid ) { continue; } u.uid=LDAPSession::getBinAttrValues ( *it, "uid" ).front().getData(); u.name=u.name.fromUtf8 ( LDAPSession::getBinAttrValues ( *it, "cn" ).front().getData() ); list lst=LDAPSession::getBinAttrValues ( *it,"jpegPhoto" ); if ( lst.size() ) { u.foto.loadFromData ( ( const uchar* ) ( lst.front().getData() ), lst.front().length() ); } userList.append ( u ); } qSort ( userList.begin(),userList.end(),user::lessThen ); delete ld; ld=0; displayUsers(); if ( defaultUser ) { defaultUser=false; for ( int i=0; isetText ( defaultUserName ); slotUnameChanged ( defaultUserName ); QTimer::singleShot ( 100, this, SLOT ( slotUnameEntered() ) ); break; } } } #endif } void ONMainWindow::slotConfig() { if ( !startMaximized && !startHidden && !embedMode ) { X2goSettings st ( "sizes" ); st.setting()->setValue ( "mainwindow/size", QVariant ( size() ) ); st.setting()->setValue ( "mainwindow/pos",QVariant ( pos() ) ); st.setting()->sync(); } if ( ld ) delete ld; ld=0; ConfigDialog dlg ( this ); if ( dlg.exec() ==QDialog::Accepted ) { int i; if ( passForm->isVisible() && !embedMode ) slotClosePass(); if ( sessionStatusDlg->isVisible() || embedMode ) { trayIconInit(); //if session is running or embed mode, save changes, //but not accept // return; } if ( !embedMode ) { for ( i=0; iclose(); for ( i=0; iclose(); userList.clear(); sessions.clear(); } loadSettings(); trayIconInit(); if ( useLdap ) { act_new->setEnabled ( false ); act_edit->setEnabled ( false ); u->setText ( tr ( "Login:" ) ); QTimer::singleShot ( 1, this, SLOT ( readUsers() ) ); } else { act_new->setEnabled ( true ); act_edit->setEnabled ( true ); u->setText ( tr ( "Session:" ) ); QTimer::singleShot ( 1, this, SLOT ( slotReadSessions() ) ); } slotResize ( fr->size() ); } } void ONMainWindow::slotEdit ( SessionButton* bt ) { EditConnectionDialog dlg ( bt->id(),this ); if ( dlg.exec() ==QDialog::Accepted ) { bt->redraw(); placeButtons(); users->ensureVisible ( bt->x(),bt->y(),50,220 ); } } void ONMainWindow::slotCreateDesktopIcon ( SessionButton* bt ) { bool crHidden= ( QMessageBox::question ( this, tr ( "Create session icon on desktop" ), tr ( "Desktop icons can be configured " "not to show x2goclient (hidden mode). " "If you like to use this feature you'll " "need to configure login by a gpg key " "or gpg smart card.\n\n" "Use x2goclient hidden mode?" ), QMessageBox::Yes|QMessageBox::No ) == QMessageBox::Yes ); X2goSettings st ( "sessions" ); QString name=st.setting()->value ( bt->id() +"/name", ( QVariant ) tr ( "New Session" ) ).toString() ; // PyHoca-GUI uses the slash as separator for cascaded menus, so let's handle these on the file system name.replace("/","::"); QString sessIcon=st.setting()->value ( bt->id() +"/icon", ( QVariant ) ":icons/128x128/x2gosession.png" ).toString(); if ( sessIcon.startsWith ( ":icons",Qt::CaseInsensitive ) || !sessIcon.endsWith ( ".png",Qt::CaseInsensitive ) ) { sessIcon="/usr/share/x2goclient/icons/x2gosession.png"; } #ifndef Q_OS_WIN QFile file ( QDesktopServices::storageLocation ( QDesktopServices::DesktopLocation ) +"/"+name+".desktop" ); if ( !file.open ( QIODevice::WriteOnly | QIODevice::Text ) ) return; QString cmd="x2goclient"; if ( crHidden ) cmd="x2goclient --hide"; QTextStream out ( &file ); out << "[Desktop Entry]\n"<< "Exec="<id(); if ( crHidden ) args+=" --hide"; QTextStream out ( &file ); out << "Set Shell = CreateObject(\"WScript.Shell\")\n"<< "DesktopPath = Shell.SpecialFolders(\"Desktop\")\n"<< "Set link = Shell.CreateShortcut(DesktopPath & \"\\"<show(); ln->show(); if(brokerMode) { bgLay->removeItem(bgLay->itemAt(3)); slotResize(QSize(width(), height())); } X2goSettings *st; lastSession=0; if (brokerMode) { if (changeBrokerPass) act_changeBrokerPass->setEnabled(true); config.key=QString::null; config.user=QString::null; config.sessiondata=QString::null; for (int i=sessions.count()-1; i>=0; --i) { SessionButton* but=sessions.takeAt(i); if (but) delete but; } st=new X2goSettings(config.iniFile,QSettings::IniFormat); sessionStatusDlg->hide(); selectSessionDlg->hide(); setEnabled ( true ); slotClosePass(); } else st= new X2goSettings( "sessions" ); QStringList slst=st->setting()->childGroups(); x2goDebug<<"Reading "<setText ( "" ); disconnect ( uname,SIGNAL ( textEdited ( const QString& ) ),this, SLOT ( slotUnameChanged ( const QString& ) ) ); connect ( uname,SIGNAL ( textEdited ( const QString& ) ),this, SLOT ( slotSnameChanged ( const QString& ) ) ); if(usePGPCard &&brokerMode&&cardReady) { if(sessions.count()==1) { slotSelectedFromList(sessions[0]); } } if ( !defaultSession&& startHidden ) { startHidden=false; slotResize(); show(); activateWindow(); raise(); } if ( defaultSession ) { bool sfound=false; defaultSession=false; if ( defaultSessionId.length() >0 ) { for ( int i=0; iid() ==defaultSessionId ) { sfound=true; slotSelectedFromList ( sessions[i] ); break; } } } else { for ( int i=0; iname() ==defaultSessionName ) { sfound=true; uname->setText ( defaultSessionName ); QTimer::singleShot ( 100, this, SLOT ( slotUnameEntered() ) ); slotSnameChanged ( defaultSessionName ); break; } } } if ( !sfound && startHidden ) { startHidden=false; slotResize(); show(); activateWindow(); raise(); } } delete st; } void ONMainWindow::slotNewSession() { QString id=QDateTime::currentDateTime(). toString ( "yyyyMMddhhmmsszzz" ); EditConnectionDialog dlg ( id, this ); if ( dlg.exec() ==QDialog::Accepted ) { SessionButton* bt=createBut ( id ); placeButtons(); users->ensureVisible ( bt->x(),bt->y(),50,220 ); } } void ONMainWindow::slotManage() { SessionManageDialog dlg ( this ); dlg.exec(); } void ONMainWindow::slotCreateSessionIcon() { SessionManageDialog dlg ( this,true ); dlg.exec(); } SessionButton* ONMainWindow::createBut ( const QString& id ) { SessionButton* l; l=new SessionButton ( this,uframe,id ); sessions.append ( l ); connect ( l,SIGNAL ( signal_edit ( SessionButton* ) ), this,SLOT ( slotEdit ( SessionButton* ) ) ); connect ( l,SIGNAL ( signal_remove ( SessionButton* ) ), this,SLOT ( slotDeleteButton ( SessionButton* ) ) ); connect ( l,SIGNAL ( sessionSelected ( SessionButton* ) ),this, SLOT ( slotSelectedFromList ( SessionButton* ) ) ); return l; } void ONMainWindow::placeButtons() { qSort ( sessions.begin(),sessions.end(),SessionButton::lessThen ); for ( int i=0; imove ( ( users->width()-360 ) /2, i*220+i*25+5 ); else sessions[i]->move ( ( users->width()-260 ) /2, i*155+i*20+5 ); if (brokerMode) sessions[i]->move ( ( users->width()-360 ) /2, i*150+i*25+5 ); sessions[i]->show(); } if ( sessions.size() ) { if ( !miniMode ) uframe->setFixedHeight ( sessions.size() *220+ ( sessions.size()-1 ) *25 ); else uframe->setFixedHeight ( sessions.size() *155+ ( sessions.size()-1 ) *20 ); if (brokerMode) uframe->setFixedHeight ( sessions.size() *150+ ( sessions.size()-1 ) *25 ); } } void ONMainWindow::slotDeleteButton ( SessionButton * bt ) { if ( QMessageBox::warning ( this,bt->name(), tr ( "Are you sure you want to delete this session?" ), QMessageBox::Yes,QMessageBox::No ) !=QMessageBox::Yes ) return; X2goSettings st ( "sessions" ); st.setting()->beginGroup ( bt->id() ); st.setting()->remove ( "" ); st.setting()->sync(); sessions.removeAll ( bt ); bt->close(); placeButtons(); users->ensureVisible ( 0,0,50,220 ); } void ONMainWindow::displayToolBar ( bool show ) { X2goSettings st1 ( "settings" ); st1.setting()->setValue ( "toolbar/show",show ); st1.setting()->sync(); } bool ONMainWindow::initLdapSession ( bool showError ) { #ifdef USELDAP x2goDebug<<"Initializing LDAP sessions..."; try { ld=new LDAPSession ( ldapServer.toStdString(), ldapPort,"","",true,false ); } catch ( LDAPExeption e ) { QString message="Exeption0 in: "; message=message+e.err_type.c_str(); message=message+" : "+e.err_str.c_str(); x2goDebug< attr; attr.push_back ( SESSIONCMD ); attr.push_back ( FIRSTUID ); attr.push_back ( LASTUID ); list res; QString searchBase="ou=Settings,ou=ON,"+ldapDn; QString srch="cn=session settings"; try { ld->stringSearch ( searchBase.toStdString(),attr, srch.toStdString(),res ); } catch ( LDAPExeption e ) { QString message="Exeption in: "; message=message+e.err_type.c_str(); message=message+" : "+e.err_str.c_str(); QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); return false; } if ( res.size() !=0 ) { LDAPStringEntry entry=res.front(); list str=LDAPSession::getStringAttrValues ( entry,SESSIONCMD ); if ( str.size() ) { sessionCmd=str.front().c_str(); } str=LDAPSession::getStringAttrValues ( entry,FIRSTUID ); if ( str.size() ) { firstUid= ( ( QString ) str.front().c_str() ).toInt(); } str=LDAPSession::getStringAttrValues ( entry,LASTUID ); if ( str.size() ) { lastUid= ( ( QString ) str.front().c_str() ).toInt(); } } attr.clear(); res.clear(); attr.push_back ( NETSOUNDSYSTEM ); attr.push_back ( SNDSUPPORT ); attr.push_back ( SNDPORT ); attr.push_back ( STARTSNDSERVER ); srch="cn=sound settings"; try { ld->stringSearch ( searchBase.toStdString(),attr, srch.toStdString(),res ); } catch ( LDAPExeption e ) { QString message="Exeption in: "; message=message+e.err_type.c_str(); message=message+" : "+e.err_str.c_str(); QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); return false; } if ( res.size() !=0 ) { LDAPStringEntry entry=res.front(); list str=LDAPSession::getStringAttrValues ( entry,NETSOUNDSYSTEM ); if ( str.size() ) { LDAPSndSys=str.front().c_str(); } if ( LDAPSndSys=="PULSE" ) { LDAPSndSys="pulse"; LDAPSndStartServer=false; LDAPSndPort="4713"; } if ( LDAPSndSys=="ARTS_SERVER" ) { LDAPSndPort="20221"; LDAPSndSys="arts"; } if ( LDAPSndSys=="ESPEAKER" ) { LDAPSndPort="16001"; LDAPSndSys="esd"; } str=LDAPSession::getStringAttrValues ( entry,SNDSUPPORT ); if ( str.size() ) { startSound= ( str.front() =="yes" ) ?true:false; } str=LDAPSession::getStringAttrValues ( entry,SNDPORT ); if ( str.size() ) { LDAPSndPort=str.front().c_str(); } str=LDAPSession::getStringAttrValues ( entry,STARTSNDSERVER ); if ( str.size() ) { LDAPSndStartServer= ( str.front() =="yes" ) ?true:false; } } #endif x2goDebug<<"Initialized LDAP sessions."; return true; } void ONMainWindow::slotSnameChanged ( const QString& text ) { if ( prevText==text ) return; if ( text=="" ) return; QList::iterator it; QList::iterator endit=sessions.end(); for ( it=sessions.begin(); it!=endit; it++ ) { QString name= ( *it )->name(); if ( name.indexOf ( text,0,Qt::CaseInsensitive ) ==0 ) { QPoint pos= ( *it )->pos(); uname->setText ( name ); QScrollBar* bar=users->verticalScrollBar(); int docLang=bar->maximum()-bar->minimum() + bar->pageStep(); double position= ( double ) ( pos.y() ) / ( double ) ( uframe->height() ); bar->setValue ( ( int ) ( docLang*position-height() / 2+ ( *it )->height() /2 ) ); uname->setSelection ( name.length(), text.length()-name.length() ); break; } } prevText=text; } void ONMainWindow::slotSelectedFromList ( SessionButton* session ) { pass->setText ( "" ); lastSession=session; QString command; QString server; QString userName; bool autologin=false; bool krblogin=false; bool usebrokerpass=false; QString sessIcon; QPalette pal; QString sessionName; if ( !embedMode ) { session->hide(); pal=users->palette(); setUsersEnabled ( false ); sessionName=session->name(); QString sid=session->id(); X2goSettings* st; if (brokerMode) { st=new X2goSettings( config.iniFile, QSettings::IniFormat ); } else { st = new X2goSettings( "sessions" ); } sessIcon=st->setting()->value ( sid+"/icon", ( QVariant ) ":icons/128x128/x2gosession.png" ).toString(); command=st->setting()->value ( sid+"/command", ( QVariant ) tr ( "KDE" ) ).toString(); server=st->setting()->value ( sid+"/host", ( QVariant ) QString::null ).toString(); userName=st->setting()->value ( sid+"/user", ( QVariant ) QString::null ).toString(); if (defaultUser && userName.length()<1) userName=defaultUserName; if(brokerMode) usebrokerpass=st->setting()->value ( sid+"/usebrokerpass", false ).toBool(); sshPort=st->setting()->value ( sid+"/sshport", ( QVariant ) defaultSshPort ).toString(); currentKey=st->setting()->value ( sid+"/key", ( QVariant ) QString::null ).toString(); autologin=st->setting()->value ( sid+"/autologin", ( QVariant ) false ).toBool(); krblogin=st->setting()->value ( sid+"/krblogin", ( QVariant ) false ).toBool(); delete st; #ifdef Q_OS_WIN if ( portable && u3Device.length() >0 ) { currentKey.replace ( "(U3)",u3Device ); } #endif } else { command=config.command; server=config.server; userName=config.user; sshPort=config.sshport; sessIcon=":icons/128x128/x2gosession.png"; sessionName=config.session; currentKey=config.key; } selectedCommand=command.split("/").last(); command=transAppName ( command ); login->setText ( userName ); QPixmap pix ( sessIcon ); if ( !miniMode ) { fotoLabel->setPixmap ( pix.scaled ( 64,64, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) ); fotoLabel->setFixedSize ( 64,64 ); } else { fotoLabel->setPixmap ( pix.scaled ( 48,48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) ); fotoLabel->setFixedSize ( 48,48 ); } if(currentKey.length()<=0) { currentKey=findSshKeyForServer(userName, server, sshPort); } if ( command=="RDP" ) { command=tr ( "RDP connection" ); } if ( command=="XDMCP" ) { command=tr ( "XDMCP" ); } if ( command=="SHADOW" ) { command=tr ( "Connection to local desktop" ); } QString text=""+sessionName +"
"+ command+tr ( " on " ) +server; nameLabel->setText ( text ); if ( userName.length() <=0 ) login->setFocus(); bool nopass=false; if ( !embedMode ) slotShowPassForm(); /////////////////////////////////////////////////// if ( currentKey.length() >0 ) { nopass=true; } if(brokerMode &&usebrokerpass) { pass->setText(config.brokerPass); slotSessEnter(); } else if ( currentKey != QString::null && currentKey != "" && nopass ) { x2goDebug<<"Starting session with key."; slotSessEnter(); } else if ( cardReady || autologin || krblogin ) { x2goDebug<<"Starting session via smartcard, ssh-agent or kerberos token."; nopass=true; if ( cardReady ) login->setText ( cardLogin ); slotSessEnter(); return; } if ( startHidden && nopass==false ) { startHidden=false; slotResize(); show(); activateWindow(); raise(); } if ( embedMode ) { QTimer::singleShot ( 50, this, SLOT ( slotShowPassForm() ) ); } } SshMasterConnection* ONMainWindow::startSshConnection ( QString host, QString port, bool acceptUnknownHosts, QString login, QString password, bool autologin, bool krbLogin, bool getSrv, bool useproxy, SshMasterConnection::ProxyType type, QString proxyserver, quint16 proxyport, QString proxylogin, QString proxypassword, QString proxyKey, bool proxyAutologin) { x2goInfof(8)<setEnabled ( false ); if(cmdAutologin) { autologin=true; } con=new SshMasterConnection (this, host, port.toInt(),acceptUnknownHosts, login, password,currentKey, autologin, krbLogin,useproxy, type, proxyserver, proxyport, proxylogin, proxypassword, proxyKey,proxyAutologin); if (!getSrv) connect ( con, SIGNAL ( connectionOk(QString) ), this, SLOT ( slotSshConnectionOk() ) ); else connect ( con, SIGNAL ( connectionOk(QString)), this, SLOT ( slotServSshConnectionOk(QString) ) ); connect ( con, SIGNAL ( serverAuthError ( int,QString, SshMasterConnection* ) ),this, SLOT ( slotSshServerAuthError ( int,QString, SshMasterConnection* ) ) ); connect ( con, SIGNAL ( needPassPhrase(SshMasterConnection*)),this, SLOT ( slotSshServerAuthPassphrase(SshMasterConnection*)) ); connect ( con, SIGNAL ( userAuthError ( QString ) ),this,SLOT ( slotSshUserAuthError ( QString ) ) ); connect ( con, SIGNAL ( connectionError ( QString,QString ) ), this, SLOT ( slotSshConnectionError ( QString,QString ) ) ); con->start(); return con; } void ONMainWindow::slotSshConnectionError ( QString message, QString lastSessionError ) { x2goErrorf(2)<< tr("Connection Error(") + message + "): " + lastSessionError; if ( sshConnection ) { sshConnection->wait(); delete sshConnection; sshConnection=0l; } if (!startHidden) { QMessageBox::critical ( 0l,message,lastSessionError, QMessageBox::Ok, QMessageBox::NoButton ); setEnabled ( true ); passForm->setEnabled ( true ); slotShowPassForm(); pass->setFocus(); pass->selectAll(); passForm->setEnabled ( true ); } else { // In order to get this interaction free, we need to free this from windows and stuff // if ( startHidden ) // { // startHidden=false; // slotResize(); // show(); // activateWindow(); // raise(); // } // completely quit the application trayQuit(); } } void ONMainWindow::slotSshConnectionOk() { x2goDebug<<"SSH connection established."; passForm->setEnabled ( true ); if ( useLdap ) { continueLDAPSession(); } else continueNormalSession(); } SshMasterConnection* ONMainWindow::findServerSshConnection(QString host) { x2goDebug<<"Searching for SSH connections..."; for (int i=0; igetHost()==host) { x2goDebug<<"Found SSH connection."; return serverSshConnections[i]; } } } x2goWarningf(3)<< tr("Couldn't find a SSH connection."); return 0l; } void ONMainWindow::slotServSshConnectionOk(QString server) { SshMasterConnection* con=findServerSshConnection(server); if (!con) return; x2goDebug<<"Getting sessions on Host: " + server; con->executeCommand( "export HOSTNAME && x2golistsessions", this, SLOT (slotListAllSessions ( bool,QString,int ) )); } void ONMainWindow::slotSshServerAuthPassphrase(SshMasterConnection* connection) { bool ok; QString phrase=QInputDialog::getText(0,connection->getUser()+"@"+connection->getHost()+":"+QString::number(connection->getPort()), tr("Enter passphrase to decrypt a key"),QLineEdit::Password,QString::null, &ok); if(!ok) { phrase=QString::null; } else { if(phrase==QString::null) phrase=""; } connection->setKeyPhrase(phrase); if(isHidden()) { show(); QTimer::singleShot(1, this, SLOT(hide())); } } void ONMainWindow::slotSshServerAuthError ( int error, QString sshMessage, SshMasterConnection* connection ) { if ( startHidden ) { startHidden=false; slotResize(); show(); activateWindow(); raise(); } QString errMsg; switch ( error ) { case SSH_SERVER_KNOWN_CHANGED: errMsg=tr ( "Host key for server changed.\nIt is now: " ) +sshMessage+"\n"+ tr ( "For security reasons, connection will be stopped" ); connection->writeKnownHosts(false); connection->wait(); if(sshConnection && sshConnection !=connection) { sshConnection->wait(); delete sshConnection; } sshConnection=0; slotSshUserAuthError ( errMsg ); return; case SSH_SERVER_FOUND_OTHER: errMsg=tr ( "The host key for this server was not found but an other" "type of key exists.An attacker might change the default server key to" "confuse your client into thinking the key does not exist" ); connection->writeKnownHosts(false); connection->wait(); if(sshConnection && sshConnection !=connection) { sshConnection->wait(); delete sshConnection; } sshConnection=0; slotSshUserAuthError ( errMsg ); return ; case SSH_SERVER_ERROR: connection->writeKnownHosts(false); connection->wait(); if(sshConnection && sshConnection !=connection) { sshConnection->wait(); delete sshConnection; } sshConnection=0; slotSshUserAuthError ( sshMessage ); return ; case SSH_SERVER_FILE_NOT_FOUND: errMsg=tr ( "Could not find known host file." "If you accept the host key here, the file will be automatically created" ); break; case SSH_SERVER_NOT_KNOWN: errMsg=tr ( "The server is unknown. Do you trust the host key?\nPublic key hash: " ) +sshMessage; break; } if ( QMessageBox::warning ( this, tr ( "Host key verification failed" ),errMsg,tr ( "Yes" ), tr ( "No" ) ) !=0 ) { connection->writeKnownHosts(false); connection->wait(); if(sshConnection && sshConnection !=connection) { sshConnection->wait(); delete sshConnection; } sshConnection=0; slotSshUserAuthError ( tr ( "Host key verification failed" ) ); return; } connection->writeKnownHosts(true); connection->wait(); connection->start(); } void ONMainWindow::slotSshUserAuthError ( QString error ) { if ( sshConnection ) { sshConnection->wait(); delete sshConnection; sshConnection=0l; } // if ( startHidden ) // { // startHidden=false; // slotResize(); // show(); // activateWindow(); // raise(); // } // hidden means hidden, we'll close the client afterwards. if ( startHidden ) { x2goErrorf(3)<< tr("Authentication failed: ") + error; trayQuit(); } QMessageBox::critical ( 0l,tr ( "Authentication failed" ),error, QMessageBox::Ok, QMessageBox::NoButton ); setEnabled ( true ); passForm->setEnabled ( true ); slotShowPassForm(); pass->setFocus(); pass->selectAll(); passForm->setEnabled ( true ); } void ONMainWindow::slotSessEnter() { if ( useLdap ) { slotPassEnter(); return; } if (brokerMode) { if (!config.brokerAuthenticated) { x2goDebug<<"Starting broker request."; slotStartBroker(); return; } } resumingSession.sessionId=QString::null; resumingSession.server=QString::null; resumingSession.display=QString::null; setStatStatus ( tr ( "connecting" ) ); if(brokerMode) { broker->selectUserSession(lastSession->id()); config.session=lastSession->id(); setStatStatus ( tr ( "Connecting to broker" ) ); stInfo->insertPlainText ( "broker url: "+config.brokerurl ); setEnabled ( false ); uname->hide(); u->hide(); return; } QString sid=""; if ( !embedMode ) sid=lastSession->id(); startSession ( sid ); } void ONMainWindow::continueNormalSession() { x2goDebug<<"Continue normal x2go session"; if (brokerMode) { slotListSessions(true,QString::null,0); return; } if ( !shadowSession ) sshConnection->executeCommand ( "export HOSTNAME && x2golistsessions", this,SLOT ( slotListSessions ( bool, QString,int ))); else sshConnection->executeCommand ( "export HOSTNAME && x2golistdesktops", this,SLOT ( slotListSessions ( bool, QString,int ))); } void ONMainWindow::continueLDAPSession() { sshConnection->executeCommand ( "x2gogetservers", this, SLOT ( slotGetServers ( bool, QString,int ) )); } #ifdef Q_OS_LINUX void ONMainWindow::startDirectRDP() { X2goSettings st ( "sessions" ); QString sid; if ( !embedMode ) sid=lastSession->id(); else sid="embedded"; bool fullscreen=st.setting()->value ( sid+"/fullscreen", ( QVariant ) defaultFullscreen ).toBool(); bool maxRes=st.setting()->value ( sid+"/maxdim", ( QVariant ) false ).toBool(); int height=st.setting()->value ( sid+"/height", ( QVariant ) defaultHeight ).toInt(); int width=st.setting()->value ( sid+"/width", ( QVariant ) defaultWidth ).toInt(); QString client=st.setting()->value ( sid+"/rdpclient", ( QVariant ) "rdesktop").toString(); QString host=st.setting()->value ( sid+"/host", ( QVariant ) "").toString(); QString port=st.setting()->value ( sid+"/rdpport", ( QVariant ) "3389").toString(); QString params=st.setting()->value ( sid+"/directrdpsettings", ( QVariant ) "").toString(); QString user=login->text(); QString password=pass->text(); nxproxy=new QProcess; proxyErrString=""; connect ( nxproxy,SIGNAL ( error ( QProcess::ProcessError ) ),this, SLOT ( slotProxyError ( QProcess::ProcessError ) ) ); connect ( nxproxy,SIGNAL ( finished ( int,QProcess::ExitStatus ) ),this, SLOT ( slotProxyFinished ( int,QProcess::ExitStatus ) ) ); connect ( nxproxy,SIGNAL ( readyReadStandardError() ),this, SLOT ( slotProxyStderr() ) ); connect ( nxproxy,SIGNAL ( readyReadStandardOutput() ),this, SLOT ( slotProxyStdout() ) ); QString userOpt; if (user.length()>0) { userOpt=" -u "; userOpt+=user+" "; } QString passOpt; if (password.length()>0) { passOpt=" -p \""; passOpt+=password+"\" "; } QString grOpt; if (fullscreen) { grOpt=" -f "; } else if (maxRes) { QDesktopWidget wd; grOpt=" -D -g "+QString::number( wd.screenGeometry().width())+"x"+QString::number(wd.screenGeometry().height())+" "; } else { grOpt=" -g "+QString::number(width)+"x"+QString::number(height); } QString proxyCmd=client +" "+params+ grOpt +userOpt+passOpt + host +":"+port ; nxproxy->start ( proxyCmd ); resumingSession.display="RDP"; resumingSession.server=host; resumingSession.sessionId=lastSession->name(); resumingSession.crTime=QDateTime::currentDateTime().toString("dd.MM.yy HH:mm:ss"); showSessionStatus(); // QTimer::singleShot ( 30000,this,SLOT ( slotRestartProxy() ) ); proxyRunning=true; } #endif QString ONMainWindow::findSshKeyForServer(QString user, QString server, QString port) { foreach (sshKey key, cmdSshKeys) { if(key.server == server && key.user == user && key.port == port) return key.key; } foreach (sshKey key, cmdSshKeys) { if(key.server == server && key.user == user && key.port.length()<=0) return key.key; } foreach (sshKey key, cmdSshKeys) { if(key.server == server && key.user.length()<=0 && key.port==port) return key.key; } foreach (sshKey key, cmdSshKeys) { if(key.server == server && key.user.length()<=0 && key.port.length()<=0) return key.key; } foreach (sshKey key, cmdSshKeys) { if(key.server.length()<=0 && key.user.length()<=0 && key.port.length()<=0) return key.key; } return QString::null; } bool ONMainWindow::startSession ( const QString& sid ) { setEnabled ( false ); #ifdef Q_OS_LINUX directRDP=false; #endif QString passwd; QString user; QString host; bool autologin=false; bool krblogin=false; bool useproxy=false; SshMasterConnection::ProxyType proxyType= SshMasterConnection::PROXYHTTP; QString proxyserver; int proxyport=22; QString proxylogin; QString proxypassword; QString proxyKey; bool proxyAutologin=false; user=getCurrentUname(); runRemoteCommand=true; if(!embedMode) shadowSession=false; applications.clear(); removeAppsFromTray(); if ( managedMode ) { slotListSessions ( true, QString::null,0 ); return true; } X2goSettings* st; if(!brokerMode) st=new X2goSettings( "sessions" ); else st=new X2goSettings(config.iniFile, QSettings::IniFormat); passForm->setEnabled ( false ); if(brokerMode) { host=config.serverIp; sshPort=config.sshport; x2goDebug<<"Server: "<setting()->value ( sid+"/host", ( QVariant ) QString::null ).toString(); } QString cmd=st->setting()->value ( sid+"/command", ( QVariant ) QString::null ).toString(); autologin=st->setting()->value ( sid+"/autologin", ( QVariant ) false ).toBool(); krblogin=st->setting()->value ( sid+"/krblogin", ( QVariant ) false ).toBool(); #ifdef Q_OS_LINUX directRDP=(st->setting()->value ( sid+"/directrdp", ( QVariant ) false ).toBool() && cmd == "RDP"); if (cmd =="RDP" && directRDP) { startDirectRDP(); return true; } #endif if ( cmd=="SHADOW" ) shadowSession=true; passwd=getCurrentPass(); if(brokerMode) { currentKey=config.key; sshPort=config.sshport; } if (sshConnection) delete sshConnection; if(currentKey.length()<=0) { currentKey=findSshKeyForServer(user, host, sshPort); } useproxy=(st->setting()->value ( sid+"/usesshproxy", false ).toBool() ); QString prtype= st->setting()->value ( sid+"/sshproxytype", "SSH" ).toString() ; if(prtype=="HTTP") { proxyType=SshMasterConnection::PROXYHTTP; } else { proxyType=SshMasterConnection::PROXYSSH; } proxylogin=(st->setting()->value ( sid+"/sshproxyuser", QString() ).toString() ); proxyKey=(st->setting()->value ( sid+"/sshproxykeyfile", QString() ).toString() ); proxyserver=(st->setting()->value ( sid+"/sshproxyhost", QString() ).toString() ); proxyport=(st->setting()->value ( sid+"/sshproxyport", 22 ).toInt() ); if(proxyserver.indexOf(":")!=-1) { QStringList parts=proxyserver.split(":"); proxyserver=parts[0]; proxyport=parts[1].toInt(); } bool proxySamePass=(st->setting()->value ( sid+"/sshproxysamepass", false ).toBool() ); bool proxySameUser (st->setting()->value ( sid+"/sshproxysameuser", false ).toBool() ); proxyAutologin=(st->setting()->value ( sid+"/sshproxyautologin", false ).toBool() ); if(proxyKey.length()<=0 && proxyType==SshMasterConnection::PROXYSSH) { proxyKey=findSshKeyForServer(proxylogin, proxyserver, QString::number(proxyport)); } if(proxySameUser) proxylogin=user; if(proxySamePass) proxypassword=passwd; else { if(useproxy && !proxyAutologin && proxyKey.length()<=0) { bool ok; bool useBrokerPassForProxy=false; if(brokerMode) { useBrokerPassForProxy=(st->setting()->value ( sid+"/usebrokerpassforproxy", false ).toBool() ); } if(useBrokerPassForProxy) proxypassword=config.brokerPass; else proxypassword=QInputDialog::getText(0,proxylogin+"@"+proxyserver+":"+QString::number(proxyport), tr("Enter password for SSH proxy"),QLineEdit::Password,QString::null, &ok); } } delete st; sshConnection=startSshConnection ( host,sshPort,acceptRsa,user,passwd,autologin, krblogin, false, useproxy,proxyType,proxyserver, proxyport, proxylogin, proxypassword, proxyKey,proxyAutologin); return true; } void ONMainWindow::slotListSessions ( bool result,QString output, int ) { if ( result==false ) { cardReady=false; cardStarted=false; QString message=tr ( "Connection failed\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) + message; } if ( !startHidden ) { QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } else { QString printout = tr( "Connection failed: ") + output.toAscii(); if ( output.indexOf ( "publickey,password" ) !=-1 ) x2goErrorf(4)<< tr( "Connection failed: ") + output + tr(" - Wrong password."); else x2goErrorf(5)<< tr( "Connection failed: ") + output; trayQuit(); } // currentKey=QString::null; setEnabled ( true ); passForm->setEnabled ( true ); slotShowPassForm(); pass->setFocus(); pass->selectAll(); return; } passForm->hide(); if ( !embedMode ) { setUsersEnabled ( false ); uname->setEnabled ( false ); u->setEnabled ( false ); } if ( managedMode || brokerMode ) { x2goDebug<<"Session data: " + config.sessiondata; if ( config.sessiondata.indexOf ( "|S|" ) ==-1 ) { x2goDebug<<"Starting new managed session."; startNewSession(); } else { x2goSession s=getSessionFromString (config.sessiondata); x2goDebug<<"Resuming managed session with Id: " + s.sessionId; resumeSession ( s ); } return; } QStringList sessions=output.trimmed().split ( '\n', QString::SkipEmptyParts ); if ( shadowSession ) { selectSession ( sessions ); } else { if ( ( sessions.size() ==0 ) || ( sessions.size() ==1&&sessions[0].length() <5 ) ) startNewSession(); else if ( sessions.size() ==1 ) { x2goSession s=getSessionFromString ( sessions[0] ); QDesktopWidget wd; if ( s.status=="S" && isColorDepthOk ( wd.depth(), s.colorDepth ) &&s.command == selectedCommand ) resumeSession ( s ); else { if ( startHidden ) startNewSession(); else selectSession ( sessions ); } } else { if ( !startHidden ) selectSession ( sessions ); else { for ( int i=0; i13 ) s.fsPort=lst[13]; s.colorDepth=0; if ( s.sessionId.indexOf ( "_dp" ) !=-1 ) { s.colorDepth=s.sessionId.split ( "_dp" ) [1].toInt(); } s.sessionType=x2goSession::DESKTOP; s.command=tr ( "unknown" ); if ( s.sessionId.indexOf ( "_st" ) !=-1 ) { QString cmdinfo=s.sessionId.split ( "_st" ) [1]; cmdinfo=cmdinfo.split ( "_" ) [0]; QChar st=cmdinfo[0]; if ( st=='R' ) s.sessionType=x2goSession::ROOTLESS; if ( st=='S' ) s.sessionType=x2goSession::SHADOW; QString command=cmdinfo.mid ( 1 ); if ( command.length() >0 ) s.command=command; } return s; } void ONMainWindow::startNewSession() { newSession=true; QString passwd=getCurrentPass(); QString user=getCurrentUname(); QString pack; bool fullscreen; int height; int width; int quality; int speed; bool usekbd; bool rootless=false; resumingSession.published=false; bool setDPI=defaultSetDPI; uint dpi=defaultDPI; QString layout; QString type; QString command; QString xdmcpServer; runRemoteCommand=true; QString host=QString::null; runStartApp=true; removeAppsFromTray(); if ( useLdap ) { pack=defaultPack; fullscreen=defaultFullscreen; height=defaultHeight; width=defaultWidth; quality=defaultQuality; speed=defaultLink; usekbd=defaultSetKbd; layout=defaultLayout[0]; type=defaultKbdType; command=defaultCmd; shadowSession=false; for ( int j=0; jid(); else sid="embedded"; pack=st->setting()->value ( sid+"/pack", ( QVariant ) defaultPack ).toString(); fullscreen=st->setting()->value ( sid+"/fullscreen", ( QVariant ) defaultFullscreen ).toBool(); //if multidisplay = true or maxdim = true we set maximun display area available for the selected monitor if (st->setting()->value(sid + "/multidisp", (QVariant) false).toBool() || st->setting()->value(sid + "/maxdim", (QVariant) false).toBool()) { int selectedScreen = st->setting()->value(sid + "/display", (QVariant) -1).toInt(); height=QApplication::desktop()->availableGeometry(selectedScreen).height(); width=QApplication::desktop()->availableGeometry(selectedScreen).width(); } else { height=st->setting()->value ( sid+"/height", ( QVariant ) defaultHeight ).toInt(); width=st->setting()->value ( sid+"/width", ( QVariant ) defaultWidth ).toInt(); } setDPI=st->setting()->value ( sid+"/setdpi", ( QVariant ) defaultSetDPI ).toBool(); dpi=st->setting()->value ( sid+"/dpi", ( QVariant ) defaultDPI ).toUInt(); quality=st->setting()->value ( sid+"/quality", ( QVariant ) defaultQuality ).toInt(); speed=st->setting()->value ( sid+"/speed", ( QVariant ) defaultLink ).toInt(); usekbd=st->setting()->value ( sid+"/usekbd", ( QVariant ) defaultSetKbd ).toBool(); layout=st->setting()->value ( sid+"/layout", ( QVariant ) defaultLayout[0] ).toString(); type=st->setting()->value ( sid+"/type", ( QVariant ) defaultKbdType ).toString(); if ( !embedMode ) { command=st->setting()->value ( sid+"/command", ( QVariant ) defaultCmd ).toString(); host=st->setting()->value ( sid+"/host", ( QVariant ) ( QString ) "localhost" ).toString(); rootless=st->setting()->value ( sid+"/rootless", ( QVariant ) false ).toBool(); resumingSession.published=st->setting()->value ( sid+"/published", ( QVariant ) false ).toBool(); xdmcpServer=st->setting()->value ( sid+"/xdmcpserver", ( QVariant ) "localhost" ).toString(); } else { command=config.command; if ( command=="SHADOW" ) { shadowSession=true; runRemoteCommand=false; } rootless= config.rootless; host=config.server; startEmbedded=false; resumingSession.published=config.published; if ( st->setting()->value ( sid+"/startembed", ( QVariant ) true ).toBool() ) { startEmbedded=true; fullscreen=false; height=bgFrame->size().height()-stb->height(); width=bgFrame->size().width(); if ( height<0 ||width<0 ) { height=defaultHeight; width=defaultWidth; } } if ( config.confConSpd ) speed=config.conSpeed; if ( config.confCompMet ) pack=config.compMet; if ( config.confImageQ ) quality=config.imageQ; if ( config.confDPI ) { dpi=config.dpi; setDPI=true; } if ( config.confKbd ) { layout=config.kbdLay; type=config.kbdType; usekbd=true; } } if ( command=="RDP" ) { if (fullscreen) { rootless=false; } else { rootless=true; } } if ( command=="XDMCP" ) { runRemoteCommand=false; } delete st; } if ( shadowSession ) { runRemoteCommand=false; } resumingSession.server=host; if (defaultLayout.size()>0) layout=cbLayout->currentText(); QString geometry; #ifdef Q_OS_WIN x2goDebug<<"Fullscreen: "<pos() ); geometry+="+"+QString::number ( position.x() ) +"+"+ QString::number ( position.y() + stb->height() ); } } QString link; switch ( speed ) { case MODEM: link="modem"; break; case ISDN: link="isdn"; break; case ADSL: link="adsl"; break; case WAN: link="wan"; break; case LAN: link="lan"; break; } QFile file ( ":/txt/packs" ); if ( !file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) return; QTextStream in ( &file ); while ( !in.atEnd() ) { QString pc=in.readLine(); if ( pc.indexOf ( "-%" ) !=-1 ) { pc=pc.left ( pc.indexOf ( "-%" ) ); if ( pc==pack ) { pack+="-"+QString::number ( quality ); break; } } } file.close(); if ( selectSessionDlg->isVisible() ) { if ( !embedMode ) slotCloseSelectDlg(); else selectSessionDlg->hide(); } QDesktopWidget wd; QString depth=QString::number ( wd.depth() ); #ifdef Q_OS_DARWIN usekbd=0; type="query"; #endif QString sessTypeStr="D "; if ( rootless ) sessTypeStr="R "; if ( shadowSession ) sessTypeStr="S "; if ( resumingSession.published) { sessTypeStr="P "; command="PUBLISHED"; } QString dpiEnv; QString xdmcpEnv; if ( runRemoteCommand==false && command=="XDMCP" ) xdmcpEnv="X2GOXDMCP="+xdmcpServer+" "; if ( setDPI ) { dpiEnv="X2GODPI="+QString::number ( dpi ) +" "; } QString cmd=dpiEnv+xdmcpEnv+"x2gostartagent "+ geometry+" "+link+" "+pack+ " unix-kde-depth_"+depth+" "+layout+" "+type+" "; if ( usekbd ) cmd += "1 "; else cmd += "0 "; QFileInfo f ( command ); if ( !shadowSession ) cmd+=sessTypeStr+f.fileName(); else { cmd+=sessTypeStr+QString::number ( shadowMode ) +"XSHAD"+ shadowUser+"XSHAD"+shadowDisplay; } resumingSession.fullscreen=fullscreen; x2goDebug<<"Executing remote command: "<hide(); return; } sshConnection->executeCommand ( cmd, this, SLOT ( slotRetResumeSess ( bool, QString,int ) ) ); passForm->hide(); } void ONMainWindow::resumeSession ( const x2goSession& s ) { newSession=false; runStartApp=false; applications.clear(); removeAppsFromTray(); QString passwd=getCurrentPass(); QString user=getCurrentUname(); QString host=s.server; bool rootless=false; QString pack; bool fullscreen; int height; int width; int quality; int speed; bool usekbd; QString layout; QString type; removeAppsFromTray(); if ( useLdap ) { pack=defaultPack; fullscreen=defaultFullscreen; height=defaultHeight; width=defaultWidth; quality=defaultQuality; speed=defaultLink; usekbd=defaultSetKbd; layout=defaultLayout[0]; type=defaultKbdType; sshConnection=findServerSshConnection(host); if (!sshConnection) { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Server not availabel" ), QMessageBox::Ok, QMessageBox::NoButton ); return; } } else { QString sid; if ( !embedMode ) sid=lastSession->id(); else sid="embedded"; X2goSettings* st; if (!brokerMode) st=new X2goSettings( "sessions" ); else st=new X2goSettings(config.iniFile,QSettings::IniFormat); pack=st->setting()->value ( sid+"/pack", ( QVariant ) defaultPack ).toString(); fullscreen=st->setting()->value ( sid+"/fullscreen", ( QVariant ) defaultFullscreen ).toBool(); height=st->setting()->value ( sid+"/height", ( QVariant ) defaultHeight ).toInt(); width=st->setting()->value ( sid+"/width", ( QVariant ) defaultWidth ).toInt(); quality=st->setting()->value ( sid+"/quality", ( QVariant ) defaultQuality ).toInt(); speed=st->setting()->value ( sid+"/speed", ( QVariant ) defaultLink ).toInt(); usekbd=st->setting()->value ( sid+"/usekbd", ( QVariant ) defaultSetKbd ).toBool(); layout=st->setting()->value ( sid+"/layout", ( QVariant ) defaultLayout[0] ).toString(); type=st->setting()->value ( sid+"/type", ( QVariant ) defaultKbdType ).toString(); rootless=st->setting()->value ( sid+"/rootless", ( QVariant ) false ).toBool(); if ( brokerMode ) { host = config.serverIp; } else if ( embedMode ) { startEmbedded=false; if ( st->setting()->value ( sid+"/startembed", ( QVariant ) true ).toBool() ) { fullscreen=false; startEmbedded=true; height=bgFrame->size().height()-stb->height(); width=bgFrame->size().width(); if ( height<0 ||width<0 ) { height=defaultHeight; width=defaultWidth; } } rootless=config.rootless; host=config.server; if ( config.confConSpd ) speed=config.conSpeed; if ( config.confCompMet ) pack=config.compMet; if ( config.confImageQ ) quality=config.imageQ; if ( config.confKbd ) { layout=config.kbdLay; type=config.kbdType; usekbd=true; } } else { host=st->setting()->value ( sid+"/host", ( QVariant ) s.server ).toString(); } delete st; } if (defaultLayout.size()>0) layout=cbLayout->currentText(); QString geometry; #ifdef Q_OS_WIN maximizeProxyWin=false; proxyWinWidth=width; proxyWinHeight=height; // #ifdef CFGCLIENT xorgMode=WIN; if (fullscreen) xorgMode=FS; if (rootless) xorgMode=SAPP; xorgWidth=QString::number(width); xorgHeight=QString::number(height); if (! startXorgOnStart) startXOrg(); // #endif #endif if ( fullscreen ) { geometry="fullscreen"; #ifdef Q_OS_WIN // fullscreen=false; maximizeProxyWin=true; x2goDebug<<"Maximize proxy win: "<setDisabled(true); } else resumingSession.published=false; if ( selectSessionDlg->isVisible() ) { if ( !embedMode ) slotCloseSelectDlg(); else selectSessionDlg->hide(); } QString cmd="x2goresume-session "+s.sessionId+" "+geometry+ " "+link+" "+pack+" "+layout+ " "+type+" "; if ( usekbd ) cmd += "1"; else cmd += "0"; sshConnection->executeCommand ( cmd, this, SLOT ( slotRetResumeSess ( bool, QString, int ) )); resumingSession=s; passForm->hide(); } /** * @brief ONMainWindow::setTrayIconToSessionIcon * @param info: message to be displayed in tray icon message * * set the tray session icon picture as tray icon picture and show a tray icon information message about something is doing * this message avoid the users think nothing is happend for some seconds while x2go session window is showed * */ void ONMainWindow::setTrayIconToSessionIcon(QString info) { //set session icon to tray icon if (trayIcon && lastSession) { X2goSettings* st; if (!brokerMode) st=new X2goSettings( "sessions" ); else st= new X2goSettings(config.iniFile,QSettings::IniFormat); QString sid; if ( !embedMode ) sid=lastSession->id(); else sid="embedded"; QString imagePath = st->setting()->value(sid + "/icon", (QVariant) QString(":icons/128x128/x2go.png")).toString(); trayIcon->setIcon(QIcon (imagePath)); QString name=st->setting()->value ( sid +"/name").toString() ; //send a information notification about the connection is done trayIcon->showMessage("X2Go - " + name, info, QSystemTrayIcon::Information, 15000); } } void ONMainWindow::selectSession ( QStringList& sessions ) { setEnabled ( true ); sessionStatusDlg->hide(); passForm->hide(); if ( !shadowSession ) { x2goDebug<<"No shadow session."; if ( !miniMode ) selectSesDlgLayout->setContentsMargins ( 25,25,10,10 ); bNew->show(); bSusp->show(); bTerm->show(); sOk->show(); sCancel->show(); desktopFilter->hide(); desktopFilterCb->hide(); bShadow->hide(); bShadowView->hide(); bCancel->hide(); // model->clear(); model->removeRows ( 0,model->rowCount() ); selectSessionLabel->setText ( tr ( "Select session:" ) ); selectedSessions.clear(); QFontMetrics fm ( sessTv->font() ); for ( int row = 0; row < sessions.size(); ++row ) { x2goDebug<<"Decoding Sessionstring:" + sessions[row]; x2goSession s=getSessionFromString ( sessions[row] ); selectedSessions.append ( s ); QStandardItem *item; item= new QStandardItem ( s.display ); model->setItem ( row,S_DISPLAY,item ); if ( s.status=="R" ) item= new QStandardItem ( tr ( "running" ) ); else item= new QStandardItem ( tr ( "suspended" ) ); model->setItem ( row,S_STATUS,item ); item= new QStandardItem ( transAppName ( s.command ) ); model->setItem ( row,S_COMMAND,item ); QString type=tr ( "Desktop" ); if ( s.sessionType==x2goSession::ROOTLESS ) type=tr ( "single application" ); if ( s.sessionType==x2goSession::SHADOW ) type=tr ( "shadow session" ); item= new QStandardItem ( type ); model->setItem ( row,S_TYPE,item ); item= new QStandardItem ( s.crTime ); model->setItem ( row,S_CRTIME,item ); item= new QStandardItem ( s.server ); model->setItem ( row,S_SERVER,item ); item= new QStandardItem ( s.clientIp ); model->setItem ( row,S_IP,item ); item= new QStandardItem ( s.sessionId ); model->setItem ( row,S_ID,item ); for ( int j=0; j<8; ++j ) { QString txt= model->index ( row,j ).data().toString(); if ( sessTv->header()->sectionSize ( j ) < fm.width ( txt ) +6 ) { sessTv->header()->resizeSection ( j,fm.width ( txt ) +6 ); } } } } else { shadowMode=SHADOW_VIEWONLY; selectedDesktops.clear(); selectedDesktops=sessions; if ( sessions.size() ==0 ) { QMessageBox::information ( this,tr ( "Information" ), tr ( "No accessible desktop " "found" ) ); slotCloseSelectDlg(); return; } sessTv->setModel ( ( QAbstractItemModel* ) modelDesktop ); desktopFilter->show(); desktopFilterCb->show(); sOk->hide(); sCancel->hide(); bShadow->show(); bCancel->show(); bShadowView->show(); desktopFilter->setText ( tr ( "Filter" ) ); sessions.sort(); if ( !miniMode ) selectSesDlgLayout->setContentsMargins ( 25,25,25,25 ); bNew->hide(); bSusp->hide(); bTerm->hide(); selectSessionLabel->setText ( tr ( "Select desktop:" ) ); filterDesktops ( "" ); desktopFilter->setFocus(); desktopFilter->selectAll(); } sessTv->setCurrentIndex ( sessTv->model()->index ( 0, 0 ) ); sessTv->setFocus(); selectSessionDlg->show(); } void ONMainWindow::slotCloseSelectDlg() { selectSessionDlg->hide(); if ( !embedMode ) { u->setEnabled ( true ); uname->setEnabled ( true ); } slotShowPassForm(); } void ONMainWindow::slotActivated ( const QModelIndex& index ) { if ( !shadowSession ) { QString status=sessTv->model()->index ( index.row(), S_STATUS ).data().toString(); if ( status==tr ( "running" ) ) { bSusp->setEnabled ( true ); sOk->setEnabled ( false ); } else { bSusp->setEnabled ( false ); sOk->setEnabled ( true ); } bTerm->setEnabled ( true ); if ( status==QString::null ) { sOk->setEnabled ( false ); bTerm->setEnabled ( false ); } } else { QString user=sessTv->model()->index ( index.row(), D_USER ).data().toString(); bShadowView->setEnabled ( true ); bShadow->setEnabled ( true ); } } void ONMainWindow::slotResumeSess() { x2goSession s=getSelectedSession(); QDesktopWidget wd; if ( isColorDepthOk ( wd.depth(),s.colorDepth ) ) { if ( s.status=="R" && ! resumeAfterSuspending) { resumeAfterSuspending=true; slotSuspendSess(); return; } resumeAfterSuspending=false; resumeSession ( s ); } else { QString depth=QString::number ( s.colorDepth ); int res; if ( s.colorDepth==24 || s.colorDepth==32 ) { res=QMessageBox::warning ( 0l,tr ( "Warning" ), tr ( "Your current color depth is " "different to the color depth of your " "x2go-session. This may cause problems " "reconnecting to this session and in most " "cases you will loose the session " "and have to start a new one! It's highly " "recommended to change the color depth of " "your Display to " ) +tr ( "24 or 32" ) + tr ( " bit and restart your X-server before you " "reconnect to this x2go-session.
Resume " "this session anyway?" ),tr ( "Yes" ), tr ( "No" ) ); } else { res=QMessageBox::warning ( 0l,tr ( "Warning" ), tr ( "Your current color depth is different to " "the color depth of your x2go-session. " "This may cause problems reconnecting to " "this session and in most cases you " "will loose the session and have to " "start a new one! It's highly recommended " "to change the color depth of your " "Display to " ) +depth+ tr ( " bit and restart your X-server before you " "reconnect to this x2go-session.
Resume " "this session anyway?" ),tr ( "Yes" ), tr ( "No" ) ); } if ( res==0 ) resumeSession ( s ); } } void ONMainWindow::slotSuspendSess() { #ifdef Q_OS_LINUX if (directRDP) { nxproxy->terminate(); proxyRunning=false; return; } #endif QString passwd; QString user=getCurrentUname(); passwd=getCurrentPass(); selectSessionDlg->setEnabled ( false ); QString sessId=sessTv->model()->index ( sessTv->currentIndex().row(), S_ID ).data().toString(); QString host=sessTv->model()->index ( sessTv->currentIndex().row(), S_SERVER ).data().toString(); if ( !useLdap ) { if ( brokerMode ) { host=config.serverIp; } if ( embedMode ) { host=config.server; } else { X2goSettings st ( "sessions" ); QString sid=lastSession->id(); host=st.setting()->value ( sid+"/host", ( QVariant ) host ).toString(); } } else { sshConnection=findServerSshConnection(host); if (!sshConnection) { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Server not availabel" ), QMessageBox::Ok, QMessageBox::NoButton ); return; } } suspendSession ( sessId ); } void ONMainWindow::slotSuspendSessFromSt() { #ifdef Q_OS_LINUX if (directRDP) { nxproxy->terminate(); proxyRunning=false; return; } #endif QString passwd; QString user=getCurrentUname(); passwd=getCurrentPass(); setStatStatus ( tr ( "suspending" ) ); sbExp->setEnabled ( false ); if ( !shadowSession ) suspendSession ( resumingSession.sessionId ); else termSession ( resumingSession.sessionId,false ); } void ONMainWindow::slotTermSessFromSt() { #ifdef Q_OS_LINUX if (directRDP) { x2goDebug<<"Terminating direct RDP session."; nxproxy->terminate(); proxyRunning=false; return; } #endif x2goDebug<<"Disconnect export."; /* disconnect ( sbExp,SIGNAL ( clicked() ),this, SLOT ( slot_exportDirectory() ) );*/ sbExp->setEnabled ( false ); if ( !shadowSession ) { if ( termSession ( resumingSession.sessionId ) ) setStatStatus ( tr ( "terminating" ) ); } else termSession ( resumingSession.sessionId,false ); } void ONMainWindow::slotRetSuspSess ( bool result, QString output, int ) { if ( result==false ) { QString message=tr ( "Connection failed\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) +message; } QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } else { if ( selectSessionDlg->isVisible() ) { ( ( QStandardItemModel* ) ( sessTv->model() ) )->item ( sessTv->currentIndex().row(), S_STATUS )->setData ( QVariant ( ( QString ) tr ( "suspended" ) ), Qt::DisplayRole ); bSusp->setEnabled ( false ); sOk->setEnabled ( true ); } } if ( selectSessionDlg->isVisible() ) selectSessionDlg->setEnabled ( true ); if (resumeAfterSuspending) { slotResumeSess(); } } void ONMainWindow::slotTermSess() { #ifdef Q_OS_LINUX if (directRDP) { nxproxy->terminate(); proxyRunning=false; return; } #endif selectSessionDlg->setEnabled ( false ); QString sessId=sessTv->model()->index ( sessTv->currentIndex().row(), S_ID ).data().toString(); if ( !useLdap ) { if ( !embedMode ) { X2goSettings st ( "sessions" ); QString sid=lastSession->id(); } } else { QString host=sessTv->model()->index ( sessTv->currentIndex().row(), S_SERVER ).data().toString(); sshConnection=findServerSshConnection(host); if (!sshConnection) { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Server not availabel" ), QMessageBox::Ok, QMessageBox::NoButton ); return; } } termSession ( sessId ); } void ONMainWindow::slotNewSess() { startNewSession(); } void ONMainWindow::slotRetTermSess ( bool result, QString output, int ) { if ( result==false ) { QString message=tr ( "Connection failed\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) +message; } QMessageBox::critical ( 0l,tr ( "Error" ), message,QMessageBox::Ok, QMessageBox::NoButton ); } else { if ( selectSessionDlg->isVisible() ) { sessTv->model()->removeRow ( sessTv->currentIndex().row() ); slotActivated ( sessTv->currentIndex() ); } } if ( selectSessionDlg->isVisible() ) selectSessionDlg->setEnabled ( true ); } void ONMainWindow::slotRetResumeSess ( bool result, QString output, int ) { x2goDebug<<"Agent output: "<Connection failed\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong Password!

" ) +message; } if ( output.indexOf ( "LIMIT" ) !=-1 ) { QString sessions=output.mid ( output.indexOf ( "LIMIT" ) +6 ); message="Sessions limit reached:"+sessions; } if ( output.indexOf ( "ACCESS DENIED" ) !=-1 ) { message="Access denied from user"; } QMessageBox::critical ( 0l,tr ( "Error" ), message,QMessageBox::Ok, QMessageBox::NoButton ); slotShowPassForm(); return; } output.replace ( " ","" ); QString passwd=getCurrentPass(); QString user=getCurrentUname(); QString host; bool sound=true; int sndSystem=PULSE; QString sndPort; #ifndef Q_OS_WIN sndPort="4713"; #endif bool startSoundServer=true; bool sshSndTunnel=true; if ( useLdap ) { sound=startSound; startSoundServer=LDAPSndStartServer; if ( LDAPSndSys=="arts" ) sndSystem=ARTS; if ( LDAPSndSys=="esd" ) sndSystem=ESD; sndPort=LDAPSndPort; } else { QString sid; if ( !embedMode ) sid=lastSession->id(); else sid="embedded"; X2goSettings st ( "sessions" ); sound=st.setting()->value ( sid+"/sound", ( QVariant ) true ).toBool(); QString sndsys=st.setting()->value ( sid+"/soundsystem", ( QVariant ) "pulse" ).toString(); if ( sndsys=="arts" ) sndSystem=ARTS; if ( sndsys=="esd" ) sndSystem=ESD; #ifndef Q_OS_WIN sndPort=st.setting()->value ( sid+"/sndport" ).toString(); #endif startSoundServer=st.setting()->value ( sid+"/startsoundsystem", true ).toBool(); if ( embedMode&&config.confSnd ) { sound=config.useSnd; } #ifndef Q_OS_WIN bool defPort=st.setting()->value ( sid+ "/defsndport",true ).toBool(); if ( defPort ) { switch ( sndSystem ) { case PULSE: sndPort="4713"; break; case ESD: sndPort="16001"; break; } } #endif sshSndTunnel=st.setting()->value ( sid+"/soundtunnel", true ).toBool(); #ifdef Q_OS_WIN switch ( sndSystem ) { case PULSE: sndPort=QString::number ( pulsePort ); break; case ESD: sndPort=QString::number ( esdPort ); break; } #endif } //Will be used in runCommand startSessSound=sound; startSessSndSystem=sndSystem; if ( newSession ) { QString sString=output.trimmed(); sString.replace ( '\n','|' ); host=resumingSession.server; resumingSession=getNewSessionFromString ( sString ); resumingSession.server=host; resumingSession.crTime=QDateTime::currentDateTime().toString ( "dd.MM.yy HH:mm:ss" ); if ( managedMode ) { //replace session data for future resuming config.sessiondata=resumingSession.agentPid+"|"+ resumingSession.sessionId+"|"+ resumingSession.display+"|"+ resumingSession.server+"|"+ "S|"+ resumingSession.crTime+"|"+ resumingSession.cookie+"|"+ resumingSession.clientIp+"|"+ resumingSession.grPort+"|"+ resumingSession.sndPort+"|"+ resumingSession.crTime+"|"+ user+"|"+ "0|"+ resumingSession.fsPort; } //change the trayicon picture setTrayIconToSessionIcon(tr("New session started") + ": " + resumingSession.sessionId); } else { host=resumingSession.server; QStringList outputLines=output.split("\n",QString::SkipEmptyParts); foreach(QString line,outputLines) { if (line.indexOf("gr_port=")!=-1) { resumingSession.grPort=line.replace("gr_port=",""); x2goDebug<<"New gr_port: "<id(); host=st.setting()->value ( sid+"/host", ( QVariant ) host ).toString(); } resumingSession.server=host; } localGraphicPort=resumingSession.grPort; int iport=localGraphicPort.toInt() +1000; while ( iport == resumingSession.sndPort.toInt() || iport == resumingSession.fsPort.toInt() || isServerRunning ( iport ) ) ++iport; localGraphicPort=QString::number ( iport ); sshConnection->startTunnel ( "localhost",resumingSession.grPort.toInt(),"localhost", localGraphicPort.toInt(), false, this, SLOT ( slotTunnelOk(int) ), SLOT ( slotTunnelFailed ( bool, QString,int ) ) ); if ( shadowSession ) return; sndTunnel=0l; if ( sound ) { if ( sndSystem==PULSE ) { startSoundServer=false; QString scmd; if ( !sshSndTunnel ) scmd="echo \"default-server=`echo " "$SSH_CLIENT | awk '{print $1}'`:"+ sndPort+ "\"> ~/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-client.conf" ";echo \"cookie-file=.x2go/C-"+ resumingSession.sessionId+ "/.pulse-cookie"+ "\">> ~/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-client.conf"; else scmd="echo \"default-server=localhost:"+ resumingSession.sndPort+ "\"> ~/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-client.conf" ";echo \"cookie-file=.x2go/C-"+ resumingSession.sessionId+ "/.pulse-cookie"+ "\">> ~/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-client.conf"; sshConnection->executeCommand(scmd); bool sysPulse=false; #ifdef Q_OS_LINUX loadPulseModuleNativeProtocol(); QFile file ( "/etc/default/pulseaudio" ); if ( file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) { while ( !file.atEnd() ) { QByteArray line = file.readLine(); int pos=line.indexOf ( "PULSEAUDIO_SYSTEM_START=1" ); if ( pos!=-1 ) { int commentPos=line.indexOf ( "#" ); if ( commentPos==-1 || commentPos>pos ) { sysPulse=true; break; } } } file.close(); } #endif if ( sysPulse ) { sshConnection->copyFile( "/var/run/pulse/.pulse-cookie", "~/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-cookie", this, SLOT ( slotPCookieReady ( bool, QString,int ))); } else { #ifndef Q_OS_WIN sshConnection->copyFile(homeDir+"/.pulse-cookie", "~/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-cookie", this, SLOT ( slotPCookieReady ( bool, QString,int ))); #else QString cooFile= wapiShortFileName ( homeDir ) + "/.x2go/pulse/.pulse-cookie"; QString destFile="~/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-cookie"; sshConnection->copyFile(cooFile, destFile, this, SLOT ( slotPCookieReady ( bool, QString,int ))); parecTunnelOk=true; #endif } } if ( sndSystem==ESD ) { #ifndef Q_OS_WIN sshConnection->copyFile(homeDir+"/.esd_auth", "~/.esd_auth" ); #else QString cooFile= wapiShortFileName ( homeDir ) + "/.x2go/pulse/.esd_auth"; QString destFile="~/.esd_auth"; sshConnection->copyFile(cooFile, destFile ); #endif } #ifndef Q_OS_WIN if ( startSoundServer ) { soundServer=new QProcess ( this ); QString acmd="artsd",ecmd="esd"; #ifdef Q_OS_DARWIN QStringList env = soundServer->environment(); QDir dir ( appDir ); dir.cdUp(); dir.cd ( "esd" ); env.insert ( 0,"DYLD_LIBRARY_PATH="+ dir.absolutePath() ); soundServer->setEnvironment ( env ); ecmd="\""+dir.absolutePath() +"\"/esd"; #endif //Q_OS_DARWIN if ( sndSystem==ESD ) soundServer->start ( ecmd+ " -tcp -nobeeps -bind localhost -port "+ resumingSession.sndPort ); if ( sndSystem==ARTS ) soundServer->start ( acmd+" -u -N -p "+ resumingSession.sndPort ); sndPort=resumingSession.sndPort; } #endif //Q_OS_WIN if ( sshSndTunnel ) { char* okSlot=0; #ifdef Q_OS_WIN if ( sndSystem==PULSE ) { parecTunnelOk=false; okSlot=SLOT ( slotSndTunOk(int) ); } #endif sndTunnel=sshConnection->startTunnel ( "localhost", resumingSession.sndPort.toInt(),"127.0.0.1", sndPort.toInt(),true,this,okSlot, SLOT ( slotSndTunnelFailed ( bool, QString, int ) )); } } } x2goSession ONMainWindow::getSelectedSession() { QString sessId=sessTv->model()->index ( sessTv->currentIndex().row(), S_ID ).data().toString(); for ( int i=0; istart ( proxyCmd ); proxyRunning=true; //always search for proxyWin proxyWinTimer->start ( 300 ); if ( embedMode ) { // proxyWinTimer->start ( 300 ); if ( !startEmbedded ) { act_embedContol->setText ( tr ( "Attach X2Go window" ) ); } } #ifdef Q_OS_WIN else { // #ifdef CFGCLIENT // // if using XMing, we must find proxy win for case, that we should make it fullscreen // if(useInternalX&& (internalX==XMING)) // #endif // proxyWinTimer->start ( 300 ); } #endif showSessionStatus(); QTimer::singleShot ( 30000,this,SLOT ( slotRestartProxy() ) ); } void ONMainWindow::slotTunnelFailed ( bool result, QString output, int ) { if ( result==false ) { if ( !managedMode ) { QString message=tr ( "Unable to create SSL tunnel:\n" ) +output; QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } // if ( tunnel ) // delete tunnel; // if ( sndTunnel ) // delete sndTunnel; // if ( fsTunnel ) // delete fsTunnel; // if ( soundServer ) // delete soundServer; tunnel=sndTunnel=fsTunnel=0l; soundServer=0l; nxproxy=0l; proxyRunning=false; if ( !managedMode ) slotShowPassForm(); } } void ONMainWindow::slotSndTunnelFailed ( bool result, QString output, int ) { if ( result==false ) { if ( !managedMode ) { QString message=tr ( "Unable to create SSL Tunnel:\n" ) +output; QMessageBox::warning ( 0l,tr ( "Warning" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } sndTunnel=0l; } } void ONMainWindow::slotProxyError ( QProcess::ProcessError ) { slotProxyFinished ( -1,QProcess::CrashExit ); } void ONMainWindow::slotProxyFinished ( int,QProcess::ExitStatus ) { //set tray icon to default if (trayIcon) trayIcon->setIcon(QIcon ( ":icons/128x128/x2go.png") ); if ( embedMode ) { if ( proxyWinEmbedded ) { #ifdef CFGPLUGIN detachClient(); #endif } proxyWinTimer->stop(); setEmbedSessionActionsEnabled ( false ); } #ifdef Q_OS_WIN else proxyWinTimer->stop(); if (! startXorgOnStart) { if (xorg) { if (xorg->state() ==QProcess::Running) { xorg->terminate(); delete xorg; xorg=0; } } } #endif if ( closeEventSent ) return; if ( soundServer ) delete soundServer; if ( spoolTimer ) delete spoolTimer; x2goDebug<<"Deleting Proxy." ; disconnect ( nxproxy,SIGNAL ( error ( QProcess::ProcessError ) ),this, SLOT ( slotProxyError ( QProcess::ProcessError ) ) ); disconnect ( nxproxy,SIGNAL ( finished ( int,QProcess::ExitStatus ) ),this, SLOT ( slotProxyFinished ( int,QProcess::ExitStatus ) ) ); disconnect ( nxproxy,SIGNAL ( readyReadStandardError() ),this, SLOT ( slotProxyStderr() ) ); disconnect ( nxproxy,SIGNAL ( readyReadStandardOutput() ),this, SLOT ( slotProxyStdout() ) ); proxyRunning=false; #ifndef CFGPLUGIN if (trayEnabled) { trayIconActiveConnectionMenu->setTitle(tr("Not connected")); trayIconActiveConnectionMenu->setEnabled(false); if (trayMaxDiscon) showNormal(); } trayAutoHidden=false; #endif bool emergencyExit=false; if(proxyErrString.indexOf("No data received from remote proxy")!=-1) { emergencyExit=true; x2goWarningf(4)<< tr( "Emergency exit." ); } #if ! (defined (CFGPLUGIN)) if ( nxproxy ) { if ( nxproxy->state() ==QProcess::Running ) { emergencyExit=true; x2goWarningf(5)<< tr( "Waiting for proxy to exit." ); if ( !nxproxy->waitForFinished ( 3000 ) ) { x2goWarningf(6)<< tr( "Failed, killing the proxy." ); nxproxy->kill(); } } #ifdef Q_OS_LINUX if (directRDP) nxproxy=0; #endif } #endif x2goDebug<<"Waiting for proxy to exit."; spoolTimer=0l; tunnel=sndTunnel=fsTunnel=0l; soundServer=0l; nxproxy=0l; proxyWinId=0; #ifdef Q_OS_LINUX if (directRDP) { pass->setText ( "" ); QTimer::singleShot ( 2000,this, SLOT ( slotShowPassForm() ) ); return; } #endif if ( !emergencyExit && !shadowSession && !usePGPCard && ! ( embedMode && ( config.checkexitstatus==false ) ) ) { x2goDebug<<"Checking exit status."; check_cmd_status(); } else { x2goDebug<<"Deleting SSH connection instance."; delete sshConnection; x2goDebug<<"Deleted SSH connection instance." ; sshConnection=0; if ( startHidden ) { close(); } } if ( readExportsFrom!=QString::null ) { exportTimer->stop(); if ( extLogin ) { currentKey=QString::null; } } if ( printSupport ) cleanPrintSpool(); if ( !restartResume ) { if ( brokerMode && (!config.brokerAutologoff) ) { x2goDebug<<"Re-reading user's session profiles from broker."; QTimer::singleShot ( 2000,broker, SLOT ( getUserSessions() ) ); } else if ( brokerMode && config.brokerAutologoff ) { x2goDebug<<"Logging off from broker as requested via cmdline."; QTimer::singleShot(1, this,SLOT(slotGetBrokerAuth())); } else if ( !embedMode ) { pass->setText ( "" ); QTimer::singleShot ( 2000,this, SLOT ( slotShowPassForm() ) ); } } else { restartResume=false; sessionStatusDlg->hide(); resumeSession ( resumingSession ); } x2goDebug<<"Finished Proxy."; setStatStatus ( tr ( "Finished" ) ); } void ONMainWindow::slotProxyStderr() { QString reserr; if ( nxproxy ) reserr= nxproxy->readAllStandardError(); proxyErrString+=reserr; x2goDebug<<"Proxy wrote on stderr: "<insertPlainText ( reserr ); stInfo->ensureCursorVisible(); if ( stInfo->toPlainText().indexOf ( "Connecting to remote host 'localhost:"+ /*resumingSession.grPort*/ localGraphicPort ) !=-1 ) setStatStatus ( tr ( "connecting" ) ); if ( stInfo->toPlainText().indexOf ( "Connection to remote proxy 'localhost:"+ /*resumingSession.grPort*/ localGraphicPort+"' established" ) !=-1 ) { if ( newSession ) { setStatStatus ( tr ( "starting" ) ); } else { setStatStatus ( tr ( "resuming" ) ); } } if ( stInfo->toPlainText().indexOf ( "Established X server connection" ) !=-1 ) { setStatStatus ( tr ( "running" ) ); #ifndef CFGPLUGIN if (trayEnabled) { if (!useLdap) trayIconActiveConnectionMenu->setTitle(lastSession->name()); else trayIconActiveConnectionMenu->setTitle(lastUser->username()); trayIconActiveConnectionMenu->setEnabled(true); if (trayMinCon && !trayAutoHidden) { trayAutoHidden=true; hide(); } } #endif if ( embedMode ) setEmbedSessionActionsEnabled ( true ); disconnect ( sbSusp,SIGNAL ( clicked() ),this, SLOT ( slotTestSessionStatus() ) ); disconnect ( sbSusp,SIGNAL ( clicked() ),this, SLOT ( slotSuspendSessFromSt() ) ); connect ( sbSusp,SIGNAL ( clicked() ),this, SLOT ( slotSuspendSessFromSt() ) ); if ( !showExport ) { showExport=true; /*connect ( sbExp,SIGNAL ( clicked() ),this, SLOT ( slot_exportDirectory() ) );*/ sbExp->setEnabled ( true ); exportDefaultDirs(); if ( readExportsFrom!=QString::null ) { exportTimer->start ( 2000 ); } } sbSusp->setToolTip ( tr ( "Suspend" ) ); if ( newSession ) { runCommand(); newSession=false; } #ifdef Q_WS_HILDON else { if ( !xmodExecuted ) { xmodExecuted=true; QTimer::singleShot ( 2000, this, SLOT ( slotExecXmodmap() ) ); } } #endif } if ( stInfo->toPlainText().indexOf ( tr ( "Connection timeout, aborting" ) ) !=-1 ) setStatStatus ( tr ( "aborting" ) ); #if defined( Q_OS_WIN ) && defined (CFGPLUGIN) if ( reserr.indexOf ( "Session terminated at" ) !=-1 ) { x2goDebug<<"Proxy finished."; slotProxyFinished ( 0, QProcess::NormalExit ); } #endif } void ONMainWindow::slotProxyStdout() { QString resout ( nxproxy->readAllStandardOutput() ); x2goDebug<<"Proxy wrote on stdout: "<show(); login->show(); } else { loginPrompt->hide(); login->hide(); } setEnabled ( true ); if ( !embedMode ) { u->hide(); uname->hide(); } sessionStatusDlg->hide(); selectSessionDlg->hide(); setEnabled ( true ); if ( isPassShown ) { passForm->show(); passForm->setEnabled ( true ); } isPassShown=true; login->setEnabled ( true ); if ( login->text().length() >0 ) { pass->setFocus(); pass->selectAll(); } else login->setFocus(); if ( !embedMode ) { u->setEnabled ( true ); } else { if ( config.user.length() >0 ) login->setEnabled ( false ); } } void ONMainWindow::showSessionStatus() { setStatStatus(); } void ONMainWindow::slotShowAdvancedStat() { if ( !miniMode ) { if ( sbAdv->isChecked() ) { sessionStatusDlg->setFixedSize ( sessionStatusDlg->width(), sessionStatusDlg->height() *2 ); } else { sessionStatusDlg->setFixedSize ( sessionStatusDlg->sizeHint() ); stInfo->hide(); } } else { if ( sbAdv->isChecked() ) { sessionStatusDlg->setFixedSize ( 310,300 ); } else { stInfo->hide(); sessionStatusDlg->setFixedSize ( 310,200 ); } } // username->invalidate(); if ( sbAdv->isChecked() ) { stInfo->show(); } X2goSettings st ( "settings" ); st.setting()->setValue ( "showStatus", ( QVariant ) sbAdv->isChecked() ); st.setting()->sync(); } void ONMainWindow::slotResumeDoubleClick ( const QModelIndex& ) { if ( !shadowSession ) slotResumeSess(); } void ONMainWindow::suspendSession ( QString sessId ) { sshConnection->executeCommand ( "x2gosuspend-session "+sessId, this, SLOT ( slotRetSuspSess ( bool, QString, int ) ) ); } bool ONMainWindow::termSession ( QString sessId, bool warn ) { if ( warn ) { bool hide_after=false; if (isHidden()) { showNormal(); hide_after=true; } int answer=QMessageBox::warning ( this,tr ( "Warning" ), tr ( "Are you sure you want to terminate " "this session?\n" "Unsaved documents will be lost" ), QMessageBox::Yes,QMessageBox::No ); if (hide_after) hide(); if ( answer != QMessageBox::Yes ) { slotRetTermSess ( true,QString::null,0 ); return false; } } if ( shadowSession ) { nxproxy->terminate(); return true; } x2goDebug<<"Terminating session."; sshConnection->executeCommand ( "x2goterminate-session "+sessId, this, SLOT ( slotRetTermSess ( bool, QString,int) ) ); proxyRunning=false; return true; } void ONMainWindow::setStatStatus ( QString status ) { setEnabled ( true ); passForm->hide(); selectSessionDlg->hide(); if ( status == QString::null ) status=statusString; else statusString=status; QString tstr; if ( statusLabel ) statusLabel->setText ( QString::null ); if ( resumingSession.sessionId!=QString::null ) { QString f="dd.MM.yy HH:mm:ss"; QDateTime dt=QDateTime::fromString ( resumingSession.crTime,f ); dt=dt.addYears ( 100 ); tstr=dt.toString(); } if ( !embedMode || !proxyWinEmbedded ) { statusBar()->showMessage ( ""); #if ! (defined Q_OS_WIN && defined CFGPLUGIN) statusBar()->hide(); #endif QString srv; if ( brokerMode ) { srv=config.serverIp; } else if ( embedMode ) { srv=config.server; } else { srv=resumingSession.server; } slVal->setText ( resumingSession.sessionId+"\n"+ srv+"\n"+ getCurrentUname() +"\n"+ resumingSession.display+ "\n"+tstr+"\n"+status ); slVal->setFixedSize ( slVal->sizeHint() ); sessionStatusDlg->show(); if (resumingSession.published) sbApps->show(); else sbApps->hide(); } else { QString srv; if ( brokerMode ) { srv=config.serverIp; } else { srv=config.server; } QString message=getCurrentUname() +"@"+ srv+ ", "+tr ( "Session" ) +": "+ resumingSession.sessionId+", "+ tr ( "Display" ) +": "+ resumingSession.display+", "+ tr ( "Creation time" ) +": "+tstr; #if ! (defined Q_OS_WIN && defined CFGPLUGIN) if ( statusLabel ) { statusLabel->setText ( " "+message ); } else #endif { if ( config.showstatusbar ) { statusBar()->show(); statusBar()->showMessage ( message ); } } sessionStatusDlg->hide(); } } void ONMainWindow::slotRestartProxy() { if ( !sessionStatusDlg->isVisible() ) return; if ( stInfo->toPlainText().indexOf ( "Established X server connection" ) ==-1 ) { stInfo->insertPlainText ( tr ( "Connection timeout, aborting" ) ); if ( nxproxy ) nxproxy->terminate(); proxyRunning=false; restartResume=true; } } void ONMainWindow::slotTestSessionStatus() { if ( !sessionStatusDlg->isVisible() ) return; if ( stInfo->toPlainText().indexOf ( "Established X server connection" ) ==-1 ) { stInfo->insertPlainText ( tr ( "Connection timeout, aborting" ) ); if ( nxproxy ) nxproxy->terminate(); proxyRunning=false; } } x2goSession ONMainWindow::getNewSessionFromString ( const QString& string ) { QStringList lst=string.split ( '|' ); x2goSession s; s.display=lst[0]; s.cookie=lst[1]; s.agentPid=lst[2]; s.sessionId=lst[3]; s.grPort=lst[4]; s.sndPort=lst[5]; if ( lst.count() >6 ) s.fsPort=lst[6]; return s; } void ONMainWindow::slotAppDialog() { AppDialog dlg(this); dlg.exec(); } void ONMainWindow::runCommand() { QString passwd=getCurrentPass(); QString user=getCurrentUname(); QString host=resumingSession.server; QString command; QString sessionType="D"; QString rdpOpts,rdpServer; bool rdpFS=false; QString rdpWidth; QString rdpHeight; bool rootless=false; resumingSession.published=false; if ( !embedMode ) { X2goSettings* st; if (!brokerMode) st=new X2goSettings( "sessions" ); else st=new X2goSettings(config.iniFile, QSettings::IniFormat); if ( useLdap ) command=sessionCmd; else { QString sid=lastSession->id(); command=st->setting()->value ( sid+"/command", ( QVariant ) tr ( "KDE" ) ).toString(); rdpOpts=st->setting()->value ( sid+"/rdpoptions", ( QVariant ) "" ).toString(); if ( user != "" ) { rdpOpts.replace("X2GO_USER", user); } if ( passwd != "" ) { rdpOpts.replace("X2GO_PASSWORD", passwd); } rdpServer=st->setting()->value ( sid+"/rdpserver", ( QVariant ) "" ).toString(); rootless=st->setting()->value ( sid+"/rootless", ( QVariant ) false ).toBool(); resumingSession.published=st->setting()->value ( sid+"/published", ( QVariant ) false ).toBool(); rdpFS=st->setting()->value ( sid+"/fullscreen", ( QVariant ) defaultFullscreen ).toBool(); rdpHeight=st->setting()->value ( sid+"/height", ( QVariant ) defaultHeight ).toString(); rdpWidth=st->setting()->value ( sid+"/width", ( QVariant ) defaultWidth ).toString(); } delete st; } else { command=config.command; rootless=config.rootless; resumingSession.published=config.published; } if ( rootless ) sessionType="R"; if ( resumingSession.published ) { sessionType="P"; command="PUBLISHED"; } if ( command=="KDE" ) { command="startkde"; } else if ( command=="GNOME" ) { command="gnome-session"; } else if ( command=="UNITY" ) { command="unity"; } else if ( command=="XFCE" ) { command="xfce4-session"; } else if ( command=="MATE" ) { command="mate-session"; } else if ( command=="LXDE" ) { command="startlxde"; } else if ( command=="RDP" ) { command="rdesktop "; if ( rdpFS ) { command+=" -f "; sessionType="D"; rootless=false; } else { command+=" -g "+rdpWidth+"x"+rdpHeight; rootless=true; } command+=" "+rdpOpts+ " "+rdpServer; } if ( managedMode ) return; QString cmd; command.replace ( " ","X2GO_SPACE_CHAR" ); if ( !startSessSound || startSessSndSystem==PULSE ) { cmd="setsid x2goruncommand "+resumingSession.display+" "+ resumingSession.agentPid + " " + resumingSession.sessionId+" "+ resumingSession.sndPort+ " "+ command+" nosnd "+ sessionType +" 1> /dev/null 2>/dev/null & exit"; if ( startSessSndSystem ==PULSE ) { cmd="PULSE_CLIENTCONFIG=~/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-client.conf "+cmd; } } else { switch ( startSessSndSystem ) { case ESD: cmd="setsid x2goruncommand "+ resumingSession.display+" "+ resumingSession.agentPid + " " + resumingSession.sessionId+" "+ resumingSession.sndPort+ " "+ command+" esd "+ sessionType +" 1> /dev/null 2>/dev/null & exit"; break; case ARTS: cmd="setsid x2goruncommand "+ resumingSession.display+" "+ resumingSession.agentPid + " " + resumingSession.sessionId+" "+ resumingSession.sndPort+ " "+ command+" arts "+ sessionType +" 1> /dev/null 2>/dev/null & exit"; break; } } if ( runRemoteCommand ) { sshConnection->executeCommand ( cmd, this, SLOT ( slotRetRunCommand ( bool, QString, int ) )); } #ifdef Q_WS_HILDON //wait 5 seconds and execute xkbcomp QTimer::singleShot ( 5000, this, SLOT ( slotExecXmodmap() ) ); #endif } void ONMainWindow::runApplication(QString exec) { sshConnection->executeCommand ("PULSE_CLIENTCONFIG=~/.x2go/C-"+ resumingSession.sessionId+"/.pulse-client.conf DISPLAY=:"+ resumingSession.display+ " setsid "+exec+" 1> /dev/null 2>/dev/null & exit"); } void ONMainWindow::slotRetRunCommand ( bool result, QString output, int ) { if ( result==false ) { QString message=tr ( "Connection failed\n:\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) + message; } QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } else { if (resumingSession.published) readApplications(); } } void ONMainWindow::readApplications() { sshConnection->executeCommand ( "x2gogetapps", this, SLOT ( slotReadApplications ( bool, QString, int) )); sbApps->setEnabled(false); } void ONMainWindow::slotReadApplications(bool result, QString output, int) { if ( result==false ) { QString message=tr ( "Connection failed\n:\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) + message; } QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); return; } sbApps->setEnabled(true); applications.clear(); QString locallong=QLocale::system().name(); QString localshort=QLocale::system().name().split("_")[0]; bool startAppFound=false; foreach(QString appstr, output.split("",QString::SkipEmptyParts)) { bool localcomment=false; bool localname=false; Application app; app.category=Application::OTHER; QStringList lines=appstr.split("\n", QString::SkipEmptyParts); for (int i=0; i")!=-1) { bool isSvg=false; line=lines[++i]; QByteArray pic; while (line.indexOf("")==-1) { pic+=QByteArray::fromBase64(line.toAscii()); line=lines[++i]; if (QString(QByteArray::fromBase64(line.toAscii())).indexOf("",Qt::CaseInsensitive)!=-1) { isSvg=true; } } if (!isSvg) app.icon.loadFromData(pic); else { QPixmap pix(32,32); QSvgRenderer svgRenderer( pic ); QPainter pixPainter(&pix); svgRenderer.render(&pixPainter); app.icon=pix; } } } if (app.name.length()>0) { if (app.comment.length()<=0) app.comment=app.name; applications.append(app); } } qSort(applications.begin(), applications.end(),Application::lessThen); plugAppsInTray(); if (runStartApp && autostartApp.length()>1) { if (!startAppFound) { x2goDebug<<"Autostart application "<setVisible(true); slotAppDialog(); } } } bool ONMainWindow::parseParameter ( QString param ) { if ( param=="--help" ) { showHelp(); return false; } if ( param=="--help-pack" ) { showHelpPack(); return false; } if (param == "--debug") { ONMainWindow::debugging = true; return true; } if ( param == "--portable" ) { ONMainWindow::portable=true; return true; } if ( param == "--clean-all-files" ) { cleanAllFiles=true; return true; } if (param == "--connectivity-test") { connTest=true; return true; } if ( param=="--no-menu" ) { drawMenu=false; return true; } if ( param=="--maximize" ) { startMaximized=true; return true; } if ( param=="--xinerama" ) { defaultXinerama=true; return true; } if (param == "--thinclient") { thinMode=true; startMaximized=true; return true; } if (param == "--haltbt") { showHaltBtn=true; return true; } if ( param=="--hide" ) { startHidden=true; return true; } if ( param=="--pgp-card" ) { usePGPCard=true; return true; } if ( param=="--ldap-printing" ) { LDAPPrintSupport=true; return true; } if ( param=="--add-to-known-hosts" ) { acceptRsa=true; return true; } if ( param=="--no-session-edit" ) { noSessionEdit=true; return true; } if ( param=="--change-broker-pass") { changeBrokerPass=true; return true; } if ( param == "--autologin") { cmdAutologin=true; return true; } if ( param == "--broker-autologin") { config.brokerAutologin=true; return true; } if ( param == "--broker-autologoff") { config.brokerAutologoff=true; return true; } if ( param == "--broker-noauth") { config.brokerNoAuth=true; return true; } QString setting,value; QStringList vals=param.split ( "=" ); if ( vals.size() <2 ) { printError ( param ); return false; } setting=vals[0]; vals.removeFirst(); value=vals.join ( "=" ); if ( setting=="--link" ) { return linkParameter ( value ); } if ( setting=="--sound" ) { return soundParameter ( value ); } if ( setting=="--geometry" ) { return geometry_par ( value ); } if ( setting=="--pack" ) { return packParameter ( value ); } if ( setting=="--kbd-layout" ) { defaultLayout=value.split(",",QString::SkipEmptyParts); if (defaultLayout.size()==0) defaultLayout<0) { if(authPart.indexOf("@")!=-1) { key.user=authPart.split("@")[0]; key.server=authPart.split("@")[1]; } else key.server=authPart; } cmdSshKeys<0 && defaultHeight >0 && o1 && o2 ) ) { qCritical ( "%s",tr ( "wrong value for argument\"--geometry\"" ). toLocal8Bit().data() ); return false; } } return true; } bool ONMainWindow::setKbd_par ( QString val ) { if ( val=="1" ) defaultSetKbd=true; else if ( val=="0" ) defaultSetKbd=false; else { qCritical ( "%s",tr ( "wrong value for argument\"--set-kbd\"" ). toLocal8Bit().data() ); return false; } return true; } bool ONMainWindow::ldapParameter ( QString val ) { QString ldapstring=val; useLdap=true; ldapstring.replace ( "\"","" ); QStringList lst=ldapstring.split ( ':',QString::SkipEmptyParts ); if ( lst.size() !=3 ) { qCritical ( "%s",tr ( "wrong value for argument\"--ldap\"" ). toLocal8Bit().data() ); return false; } ldapOnly=true; ldapServer=lst[0]; ldapPort=lst[1].toInt(); ldapDn=lst[2]; return true; } bool ONMainWindow::ldap1Parameter ( QString val ) { QString ldapstring=val; ldapstring.replace ( "\"","" ); QStringList lst=ldapstring.split ( ':',QString::SkipEmptyParts ); if ( lst.size() !=2 ) { qCritical ( "%s",tr ( "wrong value for argument\"--ldap1\"" ). toLocal8Bit().data() ); return false; } ldapServer1=lst[0]; ldapPort1=lst[1].toInt(); return true; } bool ONMainWindow::ldap2Parameter ( QString val ) { QString ldapstring=val; ldapstring.replace ( "\"","" ); QStringList lst=ldapstring.split ( ':',QString::SkipEmptyParts ); if ( lst.size() !=2 ) { qCritical ( "%s", tr ( "wrong value for argument\"--ldap2\"" ). toLocal8Bit().data() ); return false; } ldapServer2=lst[0]; ldapPort2=lst[1].toInt(); return true; } bool ONMainWindow::packParameter ( QString val ) { QFile file ( ":/txt/packs" ); if ( !file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) return true; QTextStream in ( &file ); while ( !in.atEnd() ) { QString pc=in.readLine(); if ( pc.indexOf ( "-%" ) !=-1 ) { pc=pc.left ( pc.indexOf ( "-%" ) ); QStringList pctails=val.split ( "-" ); QString pcq=pctails[pctails.size()-1]; pctails.removeLast(); if ( pctails.join ( "-" ) ==pc ) { bool ok; int v=pcq.toInt ( &ok ); if ( ok && v>=0 && v<=9 ) { defaultPack=pc; defaultQuality=v; return true; } else break; } } else { if ( pc==val ) { defaultPack=val; return true; } } } file.close(); qCritical ( "%s",tr ( "wrong value for argument\"--pack\"" ). toLocal8Bit().data() ); return false; } void ONMainWindow::printError ( QString param ) { if( !startHidden ) { qCritical ( "%s", ( tr ( "Wrong parameter: " ) +param ). toLocal8Bit().data() ); } else { x2goErrorf(8)< \t\t start with LDAP support. Example:\n" "\t\t\t\t --ldap=ldapserver:389:o=organization,c=de\n\n" "--ldap1=\t\t LDAP failover server #1 \n" "--ldap2=\t\t LDAP failover server #2 \n" "--ssh-port=\t\t connect to this port, default 22\n" "--client-ssh-port=\t local ssh port (for fs export), " "default 22\n" "--command=\t\t\t Set default command, default value 'KDE'\n" "--session=\t\t Start session 'session'\n" "--user=\t\t select user 'username'\n" "--geometry=x|fullscreen\t set default geometry, default " "value '800x600'\n" "--dpi=\t\t\t set dpi of x2goagent to dpi, default set to same as local display\n" "--link= set default link type, " "default 'adsl'\n" "--pack=\t\t set default pack method, default " "'16m-jpeg-9'\n" "--kbd-layout=\t\t set default keyboard layout or layouts\n" "\t\t\t\t comma separated\n" "--kbd-type=\t\t set default keyboard type\n" "--home=\t\t\t set users home directory\n" "--set-kbd=<0|1>\t\t\t overwrite current keyboard settings\n" "--autostart= \t\t launch \"app\" by session start in \"published " "applications\" mode\n" "--session-conf=\t\t path to alternative session config\n"; qCritical ( "%s",helpMsg.toLocal8Bit().data() ); if (!startHidden) { QMessageBox::information ( this,tr ( "Options" ),helpMsg ); } } void ONMainWindow::showHelpPack() { qCritical ( "%s",tr ( "Available pack methodes:" ).toLocal8Bit().data() ); QFile file ( ":/txt/packs" ); if ( !file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) return; QTextStream in ( &file ); QString msg; while ( !in.atEnd() ) { QString pc=in.readLine(); if ( pc.indexOf ( "-%" ) !=-1 ) { pc=pc.left ( pc.indexOf ( "-%" ) ); pc+="-[0-9]"; } msg+=pc+"\n"; qCritical ( "%s",pc.toLocal8Bit().data() ); } file.close(); #ifdef Q_OS_WIN QMessageBox::information ( this,tr ( "Options" ),msg ); #endif } void ONMainWindow::slotGetServers ( bool result, QString output, int ) { if ( result==false ) { cardReady=false; cardStarted=false; QString message=tr ( "Connection failed\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) + message; } QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); setEnabled ( true ); passForm->setEnabled ( true ); pass->setFocus(); pass->selectAll(); return; } passForm->hide(); setUsersEnabled ( false ); uname->setEnabled ( false ); u->setEnabled ( false ); QStringList servers=output.trimmed().split ( '\n' ); for ( int i=0; i1 ) { for ( int j=0; jConnection failed\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) + message; } QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); QString sv=output.split ( ":" ) [0]; for ( int j=0; jid(),this ); if ( dlg.exec() ==QDialog::Accepted ) path=dlg.getExport(); } else path= QFileDialog::getExistingDirectory ( this,QString::null, homeDir ); if (hide_after) hide(); #ifdef Q_OS_WIN if ( ONMainWindow::getPortable() && ONMainWindow::U3DevicePath().length() >0 ) { path.replace ( "(U3)",u3Device ); } path=cygwinPath ( wapiShortFileName ( path ) ); #endif if ( path!=QString::null ) exportDirs ( path ); } void ONMainWindow::exportDirs ( QString exports,bool removable ) { if ( shadowSession ) return; if ( embedMode ) { if ( config.confFS && ! ( config.useFs ) ) { return; } } fsExportKeyReady=false; directory dr; dr.dirList=exports; dr.key=createRSAKey(); QString passwd; x2goDebug<<"Key created on: "<id(); fsInTun=st.setting()->value ( sid+"/fstunnel", ( QVariant ) true ).toBool(); } else fsInTun=true; } if ( fsInTun ) { if ( fsTunnel==0l ) if ( startSshFsTunnel() ) return; } QString uname=getCurrentUname(); QString dst=dr.key; QString dhdir=homeDir+"/.x2go"; #ifdef Q_OS_WIN dhdir=wapiShortFileName ( dhdir ); #endif dst.replace ( dhdir +"/ssh/gen/","" ); dst="~"+uname +"/.x2go/ssh/"+dst; dr.dstKey=dst; dr.isRemovable=removable; exportDir.append ( dr ); QString keyFile=dr.key; sshConnection->copyFile ( keyFile,dst, this, SLOT ( slotCopyKey ( bool, QString,int ) )); } void ONMainWindow::exportDefaultDirs() { QStringList dirs; bool clientPrinting= ( useLdap && LDAPPrintSupport ); if ( !useLdap ) { if ( !embedMode ) { X2goSettings st ( "sessions" ); clientPrinting= st.setting()->value ( lastSession->id() + "/print", true ).toBool(); QString exd=st.setting()->value ( lastSession->id() +"/export", ( QVariant ) QString::null ).toString(); QStringList lst=exd.split ( ";", QString::SkipEmptyParts ); for ( int i=0; i0 ) { tails[0].replace ( "(U3)",u3Device ); } tails[0]=cygwinPath ( wapiShortFileName ( tails[0] ) ); #endif dirs+=tails[0]; } } } else { clientPrinting=true; if ( config.confFS ) { clientPrinting=config.useFs; } } } if ( clientPrinting ) { QString path= homeDir + "/.x2go/S-"+ resumingSession.sessionId +"/spool"; QDir spooldir; if ( !spooldir.exists ( path ) ) { if ( !spooldir.mkpath ( path ) ) { QString message= tr ( "Unable to create folder:" ) + path; QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } } spoolDir=path; #ifdef Q_OS_WIN path=cygwinPath ( wapiShortFileName ( path ) ); #endif QFile::setPermissions ( path,QFile::ReadOwner|QFile::WriteOwner|QFile::ExeOwner ); path+="__PRINT_SPOOL_"; dirs+=path; printSupport=true; if ( spoolTimer ) delete spoolTimer; spoolTimer=new QTimer ( this ); connect ( spoolTimer,SIGNAL ( timeout() ),this, SLOT ( slotCheckPrintSpool() ) ); spoolTimer->start ( 2000 ); } if ( dirs.size() <=0 ) return; exportDirs ( dirs.join ( ":" ) ); } QString ONMainWindow::createRSAKey() { QDir dr; QString keyPath=homeDir +"/.x2go/ssh/gen"; dr.mkpath ( keyPath ); #ifdef Q_OS_WIN keyPath=wapiShortFileName ( keyPath ); #endif QTemporaryFile fl ( keyPath+"/key" ); fl.open(); QString keyName=fl.fileName(); fl.setAutoRemove ( false ); fl.close(); fl.remove(); QStringList args; args<<"-t"<<"rsa"<<"-b"<<"1024"<<"-N"<<""<<"-f"<getSourceFile(pid); x2goDebug<<"Exported key: "<Connection failed\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) + message; } if (!startHidden) { QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } else { QString printout = tr( "Connection failed: ") + output.toAscii(); if ( output.indexOf ( "publickey,password" ) !=-1 ) x2goErrorf(11)<< tr( "Connection failed: ") + output + tr(" - Wrong password."); else x2goErrorf(12)<< tr( "Connection failed: ") + output; trayQuit(); } QFile::remove ( fsExportKey+".pub" ); return; } fsExportKeyReady=true; //start reverse mounting if RSA Key and FS tunnel are ready //start only once from slotFsTunnelOk() or slotCopyKey(). if ( !fsInTun || fsTunReady ) startX2goMount(); } directory* ONMainWindow::getExpDir ( QString key ) { for ( int i=0; iConnection failed\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) + message; } QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } QFile file ( key+".pub" ); if ( !file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) { printSshDError(); QFile::remove ( key+".pub" ); return; } QByteArray line = file.readLine(); file.close(); QString authofname=homeDir; #ifdef Q_OS_WIN QDir dir; dir.mkpath ( authofname+"\\.x2go\\.ssh" ); x2goDebug<<"Creating "<id(),this,3 ); if ( dlg.exec() ==QDialog::Accepted ) { bt->redraw(); bool vis=bt->isVisible(); placeButtons(); users->ensureVisible ( bt->x(),bt->y(),50,220 ); bt->setVisible ( vis ); } } void ONMainWindow::slotExtTimer() { if ( QFile::permissions ( readLoginsFrom ) != ( QFile::ReadUser|QFile::WriteUser|QFile::ExeUser| QFile::ReadOwner|QFile::WriteOwner|QFile::ExeOwner ) ) { x2goDebug<<"Wrong permissions on "<stop(); return; } QString loginDir; QString logoutDir; QDir dir ( readLoginsFrom ); QStringList list = dir.entryList ( QDir::Files ); for ( int i=0; iisActive() ) //running session { if ( logoutDir != QString::null ) { x2goDebug<<"External logout received"; externalLogout ( logoutDir ); } } else { if ( loginDir != QString::null ) { x2goDebug<<"External login."; externalLogin ( loginDir ); } } } void ONMainWindow::slotExportTimer() { if ( QFile::permissions ( readExportsFrom ) != ( QFile::ReadUser| QFile::WriteUser| QFile::ExeUser| QFile::ReadOwner|QFile::WriteOwner|QFile::ExeOwner ) ) { x2goDebug<<"Wrong permissions on "<< readExportsFrom <<":"<stop(); return; } QDir dir ( readExportsFrom ); QStringList list = dir.entryList ( QDir::Files ); QString expList; QString unexpList; QString loginDir; QString logoutDir; for ( int i=0; i0 ) { exportDirs ( expList,true ); } args.clear(); args=unexpList.split ( ":",QString::SkipEmptyParts ); QString passwd=getCurrentPass(); QString user=getCurrentUname(); QString host=resumingSession.server; QString sessionId=resumingSession.sessionId; for ( int i=0; iexecuteCommand ( "export HOSTNAME && x2goumount_session "+ sessionId+" "+args[i] ); } } void ONMainWindow::slotAboutQt() { QMessageBox::aboutQt ( this ); } void ONMainWindow::slotSupport() { QFile file(supportMenuFile); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) return; QTextStream in(&file); QString sup; while (!in.atEnd()) { sup+=in.readLine(); } QMessageBox::information (this,tr ( "Support" ),sup); } void ONMainWindow::slotAbout() { QString aboutStr=tr ( "
(C. 2006-2012 obviously nice: " "Oleksandr Shneyder, Heinz-Markus Graesing)
" ); if ( embedMode ) aboutStr+=tr ( "
x2goplugin mode was sponsored by " "" "FOSS-Group GmbH(Freiburg)
" ); aboutStr+= tr ( "
Client for use with the X2Go network based " "computing environment. This Client will be able " "to connect to X2Go server(s) and start, stop, " "resume and terminate (running) desktop sessions. " "X2Go Client stores different server connections " "and may automatically request authentication " "data from LDAP directories. Furthermore it can be " "used as fullscreen loginscreen (replacement for " "loginmanager like xdm). Please visit x2go.org for " "further information." ); QMessageBox::about ( this,tr ( "About X2GO client" ), tr ( "X2Go Client V. " ) +VERSION+ " (Qt - "+qVersion() +")"+ aboutStr ); } void ONMainWindow::slotRereadUsers() { if ( !useLdap ) return; #ifdef USELDAP if ( ld ) { delete ld; ld=0; } if ( ! initLdapSession ( false ) ) { return; } list attr; attr.push_back ( "uidNumber" ); attr.push_back ( "uid" ); list result; try { ld->binSearch ( ldapDn.toStdString(),attr, "objectClass=posixAccount",result ); } catch ( LDAPExeption e ) { QString message="Exeption in: "; message=message+e.err_type.c_str(); message=message+" : "+e.err_str.c_str(); QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok,QMessageBox::NoButton ); QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Please check LDAP Settings" ), QMessageBox::Ok,QMessageBox::NoButton ); slotConfig(); return; } list::iterator it=result.begin(); list::iterator end=result.end(); for ( ; it!=end; ++it ) { user u; QString uin=LDAPSession::getBinAttrValues ( *it,"uidNumber" ).front().getData(); u.uin=uin.toUInt(); if ( u.uinlastUid ) { continue; } u.uid=LDAPSession::getBinAttrValues ( *it,"uid" ).front().getData(); if ( !findInList ( u.uid ) ) { reloadUsers(); return; } } #endif } void ONMainWindow::reloadUsers() { int i; for ( i=0; iclose(); for ( i=0; iclose(); userList.clear(); sessions.clear(); loadSettings(); if ( useLdap ) { act_new->setEnabled ( false ); act_edit->setEnabled ( false ); u->setText ( tr ( "Login:" ) ); QTimer::singleShot ( 1, this, SLOT ( readUsers() ) ); } else { act_new->setEnabled ( true ); act_edit->setEnabled ( true ); u->setText ( tr ( "Session:" ) ); QTimer::singleShot ( 1, this, SLOT ( slotReadSessions() ) ); } slotResize ( fr->size() ); } bool ONMainWindow::findInList ( const QString& uid ) { for ( int i=0; iverticalScrollBar(); bar->setEnabled ( enable ); int upos=bar->value(); QDesktopWidget dw; int height=dw.screenGeometry ( fr ).height(); QList::iterator it; QList::iterator endit=names.end(); if ( !enable ) { for ( it=names.begin(); it!=endit; it++ ) { QPoint pos= ( *it )->pos(); if ( ( pos.y() >upos-height ) && ( pos.y() setEnabled ( false ); if ( pos.y() >upos+height ) break; } } else { for ( it=names.begin(); it!=endit; it++ ) { if ( ! ( *it )->isEnabled() ) ( *it )->setEnabled ( true ); } } } else users->setEnabled ( enable ); } void ONMainWindow::externalLogin ( const QString& loginDir ) { QFile file ( loginDir+"/username" ); QString user; if ( !file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) return; QTextStream in ( &file ); while ( !in.atEnd() ) { user=in.readLine(); break; } file.close(); if ( passForm->isVisible() ) slotClosePass(); uname->setText ( user ); slotUnameEntered(); currentKey=loginDir+"/dsa.key"; extStarted=true; slotPassEnter(); } void ONMainWindow::externalLogout ( const QString& ) { if ( extStarted ) { extStarted=false; currentKey=QString::null; if ( nxproxy ) if ( nxproxy->state() ==QProcess::Running ) nxproxy->terminate(); proxyRunning=false; } } void ONMainWindow::slotStartPGPAuth() { scDaemon=new QProcess ( this ); QStringList arguments; arguments<<"--multi-server"; connect ( scDaemon,SIGNAL ( readyReadStandardError() ),this, SLOT ( slotScDaemonError() ) ); connect ( scDaemon,SIGNAL ( readyReadStandardOutput() ),this, SLOT ( slotScDaemonOut() ) ); connect ( scDaemon,SIGNAL ( finished ( int,QProcess::ExitStatus ) ), this, SLOT ( slotScDaemonFinished ( int, QProcess::ExitStatus ) ) ); scDaemon->start ( "scdaemon",arguments ); QTimer::singleShot ( 3000, this, SLOT ( slotCheckScDaemon() ) ); isScDaemonOk=false; } void ONMainWindow::slotCheckScDaemon() { if ( !isScDaemonOk ) { scDaemon->kill(); } } void ONMainWindow::slotScDaemonError() { QString stdOut ( scDaemon->readAllStandardError() ); stdOut=stdOut.simplified(); x2goDebug<<"SCDAEMON error: "<kill(); } } } void ONMainWindow::slotScDaemonOut() { QString stdOut ( scDaemon->readAllStandardOutput() ); stdOut=stdOut.simplified(); x2goDebug<<"SCDAEMON out: "<start ( "gpg",arguments ); } else slotStartPGPAuth(); } void ONMainWindow::slotGpgError() { QString stdOut ( gpg->readAllStandardError() ); stdOut=stdOut.simplified(); x2goDebug<<"GPG error: "<kill(); } } void ONMainWindow::slotGpgFinished ( int exitCode, QProcess::ExitStatus exitStatus ) { x2goDebug<<"GPG finished, exit code: "<readAllStandardOutput() ); stdOut.chop ( 1 ); x2goDebug<<"GPG out: "<readAllStandardOutput() ); stdOut=stdOut.simplified(); stdOut.replace ( " ","" ); QStringList envLst=stdOut.split ( ";" ); QString gpg_agent_info=envLst[0].split ( "=" ) [1]; QString ssh_auth_sock=envLst[2].split ( "=" ) [1]; agentPid=envLst[4].split ( "=" ) [1]; x2goDebug<<"GPG-agent info: "<start ( 1000 ); cardReady=true; sshEnv.clear(); sshEnv<isVisible() && !brokerMode) { if ( passForm->isEnabled() ) { if ( login->isEnabled() ) { login->setText ( cardLogin ); slotSessEnter(); return; } } } QProcess sshadd ( this ); //using it to start scdaemon sshadd.setEnvironment ( sshEnv ); QStringList arguments; arguments<<"-l"; sshadd.start ( "ssh-add",arguments ); sshadd.waitForFinished ( -1 ); QString sshout ( sshadd.readAllStandardOutput() ); sshout=sshout.simplified(); x2goDebug<<"SSH-ADD out: "<getUserSessions(); } } else { if ( selectSessionDlg->isVisible() || sessionStatusDlg->isVisible() ) { QProcess sshadd ( this ); //using it to start scdaemon sshadd.setEnvironment ( sshEnv ); QStringList arguments; arguments<<"-l"; sshadd.start ( "ssh-add",arguments ); sshadd.waitForFinished ( -1 ); QString sshout ( sshadd.readAllStandardOutput() ); sshout=sshout.simplified(); x2goDebug<<"SSH-ADD out: "<isVisible() ) slotClosePass(); uname->setText ( cardLogin ); slotUnameEntered(); slotPassEnter(); } } void ONMainWindow::slotCheckAgentProcess() { if ( checkAgentProcess() ) return; agentCheckTimer->stop(); cardReady=false; if ( cardStarted ) { cardStarted=false; if ( nxproxy ) if ( nxproxy->state() ==QProcess::Running ) { x2goDebug<<"Suspending session..."; slotSuspendSessFromSt(); x2goDebug<<"Suspended session."; // nxproxy->terminate(); } } x2goDebug<<"GPG-Agent finished."; slotStartPGPAuth(); } bool ONMainWindow::checkAgentProcess() { QFile file ( "/proc/"+agentPid+"/cmdline" ); if ( file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) { QString line ( file.readLine() ); file.close(); if ( line.indexOf ( "gpg-agent" ) !=-1 ) { return true; } } return false; } #if defined ( Q_OS_DARWIN ) QString ONMainWindow::getXDisplay() { QLocalSocket unixSocket (this); QString xsocket (getenv ("DISPLAY")); if (xsocket.isEmpty ()) { // Mac OS X 10.4 compatibility mode. // There, it is possible no $DISPLAY variable is set. // Start X11 manually. First, find a free display number. x2goDebug<< "entering 10.4 compat mode, checking for free X11 display"; int xFreeDisp = 0; QDir xtmpdir ("/tmp/.X11-unix"); if (xtmpdir.exists ()) { xtmpdir.setFilter (QDir::Files | QDir::System | QDir::NoSymLinks | QDir::NoDotAndDotDot); xtmpdir.setSorting (QDir::Name); QFileInfoList xtmpdirList = xtmpdir.entryInfoList (); bool foundFreeDisp = FALSE; xFreeDisp = -1; for (int i = 0; (i < 2000) && (!foundFreeDisp); ++i) { QFileInfo xtmpdirFile (xtmpdir.absolutePath () + "/X" + QString::number (i)); if ((!xtmpdirFile.exists ()) && (!xtmpdirFile.isSymLink ())) { xFreeDisp = i; foundFreeDisp = TRUE; } } } // Control flow will go to error condition if no free display port has been found. if (xFreeDisp != -1) { xsocket = "/tmp/.X11-unix/X" + QString::number (xFreeDisp); x2goDebug<< "Successfully detected free socket " << xsocket << "."; } if (!(xsocket.isEmpty ())) { QString xname = ConfigDialog::getXDarwinDirectory () + "/Contents/MacOS/X11"; QString xopt = ":" + QString::number (xFreeDisp); QProcessEnvironment env = QProcessEnvironment::systemEnvironment (); QProcess* startx = new QProcess (this); x2goDebug<< "Starting the X server on free display port."; env.insert (0, "PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11R6/bin"); startx->setProcessEnvironment (env); startx->start (xname + QString (" ") + xopt, QIODevice::NotOpen); if (startx->waitForStarted (3000)) { x2goDebug<< "Sleeping for three seconds"; int sleeptime = 3; while ((sleeptime = sleep (sleeptime))) {}; x2goDebug<< "Leaving OS X 10.4 compat mode."; } } } // OS X >= 10.5 starts the X11 server automatically, as soon as the // launchd UNIX socket is accessed. // On user login, the DISPLAY environment variable is set to this said existing // socket. // By now, we should have a socket, even on 10.4. Test, if connecting works. // Note: common sense may tell you to change this if into an else. Don't. // We do not want to skip this part, if coming from the compat section above. if (!(xsocket.isEmpty ())) { if (xsocket[0] == ':') { // Be backwards compatible with 10.4. // Delete the ":" character. xsocket.remove (0, 1); // xsocket may now contain the display value (one integer), // or something like "0.0" - we're only interested in the // display value, so keep the first char only. if (xsocket.indexOf (".") != -1) { xsocket = xsocket.left (xsocket.indexOf (".")); } // Prepend the well-known socket path. xsocket.prepend ("/tmp/.X11-unix/X"); x2goDebug<< "xsocket in compat mode: " << xsocket; } unixSocket.connectToServer (xsocket); if (unixSocket.waitForConnected (10000)) { unixSocket.disconnectFromServer (); // Mac OS X 10.4 compat: nxproxy expects // a DISPLAY variable like ":0", passing // an UNIX socket will just make it error out. // Instead of altering the nxproxy code, which does // already try to connect to "/tmp/.X11-unix/Xi" with // i = display number, pass ":i" as DISPLAY. if (xsocket.left (16).compare ("/tmp/.x11-unix/x", Qt::CaseInsensitive) == 0) { bool ok = FALSE; int tmp = -1; xsocket = xsocket.mid (16); tmp = xsocket.toInt (&ok); if (ok) { x2goDebug<<"Returning " << QString (":") + xsocket; return (QString (":") + xsocket); } } else { return (xsocket); } } } // And if not, error out. QMessageBox::critical ( this,tr ( "Can't connect to X server\nPlease check your settings" ), tr ( "Can't start X server\nPlease check your settings" ) ); slotConfig(); return QString::null; } #endif #ifdef Q_OS_WIN QString ONMainWindow::getXDisplay() { if ( !isServerRunning ( 6000+xDisplay ) ) { QMessageBox::critical ( this,QString::null, tr ( "Can't start X Server\nPlease check your installation" ) ); close(); } return QString::number ( xDisplay ); } QString ONMainWindow::cygwinPath ( const QString& winPath ) { QString cPath="/cygdrive/"+winPath; cPath.replace ( "\\","/" ); cPath.replace ( ":","" ); return cPath; } #endif bool ONMainWindow::isColorDepthOk ( int disp, int sess ) { if ( sess==0 ) return true; if ( disp==sess ) return true; if ( ( disp == 24 || disp == 32 ) && ( sess == 24 || sess == 32 ) ) return true; return false; } #ifndef Q_OS_LINUX void ONMainWindow::setWidgetStyle ( QWidget* widget ) { widget->setStyle ( widgetExtraStyle ); } #else void ONMainWindow::setWidgetStyle ( QWidget* ) { } #endif QString ONMainWindow::internAppName ( const QString& transAppName, bool* found ) { if ( found ) *found=false; int ind=_transApplicationsNames.indexOf ( transAppName ); if ( ind!=-1 ) { if ( found ) *found=true; return _internApplicationsNames[ind]; } return transAppName; } QString ONMainWindow::transAppName ( const QString& internAppName, bool* found ) { if ( found ) *found=false; int ind=_internApplicationsNames.indexOf ( internAppName ); if ( ind!=-1 ) { if ( found ) *found=true; return _transApplicationsNames[ind]; } return internAppName; } void ONMainWindow::addToAppNames ( QString intName, QString transName ) { _internApplicationsNames.append ( intName ); _transApplicationsNames.append ( transName ); } void ONMainWindow::slotExecXmodmap() { #ifdef Q_WS_HILDON QString passwd=getCurrentPass(); QString user=getCurrentUname(); QString host=resumingSession.server; QString cmd; cmd="(xmodmap -pke ;" "echo keycode 73= ;" // "echo clear shift ;" // "echo clear lock ;" // "echo clear control ;" // "echo clear mod1 ;" // "echo clear mod2 ;" // "echo clear mod3 ;" // "echo clear mod4 ;" // "echo clear mod5 ;" // "echo add shift = Shift_L ;" "echo add control = Control_R " // "echo add mod5 = ISO_Level3_Shift" ")| DISPLAY=:" +resumingSession.display+" xmodmap - "; x2goDebug<<"Executing xmodmap with cmd: "<environment(); env+=sshEnv; xmodProc->setEnvironment ( env ); } xmodProc->setFwX ( true ); xmodProc->startNormal(); #endif } void ONMainWindow::check_cmd_status() { QString passwd; QString user=getCurrentUname(); QString host=resumingSession.server; passwd=getCurrentPass(); sshConnection->executeCommand ( "x2gocmdexitmessage "+ resumingSession.sessionId , this, SLOT(slotCmdMessage(bool, QString, int))); } void ONMainWindow::slotCmdMessage ( bool result,QString output, int) { x2goDebug<<"Command Message: " + output; if ( result==false ) { cardReady=false; cardStarted=false; QString message=tr ( "Connection failed\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) + message; } QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); setEnabled ( true ); passForm->setEnabled ( true ); pass->setFocus(); pass->selectAll(); } if ( output.indexOf ( "X2GORUNCOMMAND ERR NOEXEC:" ) !=-1 ) { QString cmd=output; cmd.replace ( "X2GORUNCOMMAND ERR NOEXEC:","" ); if(startHidden) { x2goErrorf(14)<< tr( "Unable to execute: ") + cmd; } else { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Unable to execute: " ) + cmd,QMessageBox::Ok, QMessageBox::NoButton ); } } if(sshConnection) delete sshConnection; sshConnection=0; if ( startHidden ) { close(); } } int ONMainWindow::startSshFsTunnel() { fsTunReady=false; x2goDebug<<"Starting fs tunnel for: "<startTunnel ( "localhost",resumingSession.fsPort.toUInt(),"127.0.0.1", clientSshPort.toInt(), true, this, SLOT ( slotFsTunnelOk(int)), SLOT ( slotFsTunnelFailed ( bool, QString,int ) ) ); return 0; } void ONMainWindow::slotFsTunnelFailed ( bool result, QString output, int) { if ( result==false ) { if ( !managedMode ) { QString message=tr ( "Unable to create SSL tunnel:\n" ) +output; QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } fsTunnel=0l; fsTunReady=false; } } void ONMainWindow::slotFsTunnelOk(int) { fsTunReady=true; //start reverse mounting if RSA Key and FS tunnel are ready //start only once from slotFsTunnelOk() or slotCopyKey(). if ( fsExportKeyReady ) startX2goMount(); } void ONMainWindow::startX2goMount() { QFile file ( fsExportKey+".pub" ); if ( !file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) { QString message=tr ( "Unable to read :\n" ) +fsExportKey+".pub"; QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); QFile::remove ( fsExportKey+".pub" ); return; } QByteArray line = file.readLine(); file.close(); QString authofname=homeDir; #ifdef Q_OS_WIN QDir tdir; tdir.mkpath ( authofname+"\\.x2go\\.ssh" ); x2goDebug<<"Creating "<isRemovable; if ( !dir ) return; QString passwd=getCurrentPass(); QString user=getCurrentUname(); QString host=resumingSession.server; QString sessionId=resumingSession.sessionId; QStringList env=QProcess::systemEnvironment(); QString cuser; #ifndef Q_WS_HILDON for ( int i=0; idirList; if ( !fsInTun && clientSshPort!="22" ) { dirs=dirs+"__SSH_PORT__"+clientSshPort; } if ( fsInTun ) { dirs=dirs+"__REVERSESSH_PORT__"+resumingSession.fsPort; } if ( !rem ) cmd="export HOSTNAME && x2gomountdirs dir "+sessionId+" "+cuser+ " "+dir->dstKey+" "+dirs; else cmd="export HOSTNAME && x2gomountdirs rem "+sessionId+" "+cuser+ " "+dir->dstKey+" "+dirs; #ifdef Q_OS_WIN cmd="chmod 600 "+dir->dstKey+"&&"+cmd; #endif X2goSettings st ( "sessions" ); if ( !useLdap ) { QString sid; if ( !embedMode ) sid=lastSession->id(); else sid="embedded"; if ( st.setting()->value ( sid+"/useiconv", ( QVariant ) false ).toBool() ) { QString toCode=st.setting()->value ( sid+"/iconvto", ( QVariant ) "UTF-8" ).toString(); #ifdef Q_OS_WIN QString fromCode=st.setting()->value ( sid+"/iconvfrom", ( QVariant ) tr ( "WINDOWS-1252" ) ).toString(); #endif #ifdef Q_OS_DARWIN QString fromCode=st.setting()->value ( sid+"/iconvfrom", ( QVariant ) "UTF-8" ).toString(); #endif #ifdef Q_OS_LINUX QString fromCode=st.setting()->value ( sid+"/iconvfrom", ( QVariant ) tr ( "ISO8859-1" ) ).toString(); #endif cmd="export X2GO_ICONV=modules=iconv,from_code="+ fromCode+ ",to_code="+toCode+"&&"+cmd; } } dir->pid=sshConnection->executeCommand(cmd,this,SLOT ( slotRetExportDir ( bool, QString,int) )); } void ONMainWindow::slotCheckPrintSpool() { QDir dir ( spoolDir ); QStringList list = dir.entryList ( QDir::Files ); for ( int i=0; i #include #include #endif bool ONMainWindow::isServerRunning ( int port ) { #ifdef Q_OS_WIN SOCKET ConnectSocket = INVALID_SOCKET; struct sockaddr_in saServer; hostent* localHost; char* localIP; int iResult; WSADATA wsaData; struct in_addr addr = { 0 }; iResult = WSAStartup(MAKEWORD(2, 2), &wsaData); if (iResult != 0) { x2goDebug<<"WARNING: WSAStartup failed: "<< iResult; return false; } addr.s_addr = inet_addr("127.0.0.1"); if (addr.s_addr == INADDR_NONE) { x2goDebug<< "WARNING: The IPv4 address entered must be a legal address\n"; return false; } localHost = gethostbyaddr((char*)&addr,4, AF_INET); if (!localHost) { x2goDebug<<"WARNING: gethostbyaddr failed: "<h_addr_list); saServer.sin_family = AF_INET; saServer.sin_addr.s_addr = inet_addr(localIP); saServer.sin_port = htons(port); ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (ConnectSocket == INVALID_SOCKET) { x2goDebug<<"WARNING: socket failed with error: "<< WSAGetLastError(); return false; } iResult = ::connect( ConnectSocket, (SOCKADDR*) &saServer, sizeof(saServer)); if (iResult == SOCKET_ERROR) { closesocket(ConnectSocket); x2goDebug<<"Port is free: "<stop(); slotSetWinServersReady(); xorgLogMutex.unlock(); return; } } xorgLogMutex.unlock(); } void ONMainWindow::startXOrg () { while ( isServerRunning ( 6000+xDisplay ) ) ++xDisplay; QString dispString; QTextStream ( &dispString ) <<":"<setEnvironment ( env ); xorg-> setWorkingDirectory ( workingDir); } x2goDebug<<"Running "<start ( exec, args ); if ( !xorg->waitForStarted ( 3000 ) ) { QMessageBox::critical ( 0,QString::null, tr ( "Can't start X Server\n" "Please check your installation" ) ); close(); } // #ifdef CFGCLIENT if ( !useInternalX || internalX!= XMING) { //check connection in slot and launch setWinServerReady waitingForX=0; QTimer::singleShot(1000, this, SLOT(slotCheckXOrgConnection())); } // #endif } void ONMainWindow::slotCheckXOrgConnection() { ++waitingForX; if (isServerRunning(6000+xDisplay)) { x2goDebug<<"X is started."; slotSetWinServersReady(); } else { if (waitingForX > 10) { QMessageBox::critical ( 0,QString::null, tr ( "Can't start X Server\n" "Please check your installation" ) ); close(); } else { x2goDebug<<"...waiting for X."; QTimer::singleShot(1000, this, SLOT(slotCheckXOrgConnection())); } } } WinServerStarter::WinServerStarter ( daemon server, ONMainWindow * par ) : QThread ( 0 ) { mode=server; parent=par; } void WinServerStarter::run() { switch ( mode ) { case SSH: parent->startSshd(); break; case X: parent->startXOrg(); break; } } void ONMainWindow::startWinServers() { x2goDebug<<"Starting win servers..."; QString etcDir=homeDir+"/.x2go/etc"; QDir dr ( homeDir ); pulseServer=0l; WinServerStarter* xStarter = new WinServerStarter ( WinServerStarter::X, this ); WinServerStarter* sshStarter = new WinServerStarter ( WinServerStarter::SSH, this ); if ( !embedMode || !config.confFS || ( config.confFS && config.useFs ) ) { dr.mkpath ( etcDir ); generateHostDsaKey(); generateEtcFiles(); sshStarter->start(); } if ( !embedMode || !config.confSnd || ( config.confSnd && config.useSnd ) ) { startPulsed(); } // #ifdef CFGCLIENT //x2goDebug<<"Xorg settings: "<< startXorgOnStart <<" useXming: "<< useXming; if ( useInternalX && (internalX== XMING)) { // #endif xStarter->start(); xorgLogTimer=new QTimer ( this ); connect ( xorgLogTimer,SIGNAL ( timeout() ),this, SLOT ( slotCheckXOrgLog() ) ); xorgLogTimer->start ( 500 ); // #ifdef CFGCLIENT } else { if (startXorgOnStart) { startXOrg(); } } // #endif } bool ONMainWindow::haveCygwinEntry() { QSettings CygwSt ( "HKEY_CURRENT_USER\\Software" "\\Cygwin", QSettings::NativeFormat ); return ( CygwSt.childGroups().count() >0||CygwSt.childKeys().count() ); } void ONMainWindow::saveCygnusSettings() { if ( ONMainWindow::portable ) { if ( haveCygwinEntry() ) { x2goDebug<<"Cygnus Solutions entry exists."; cyEntry=true; } else { x2goDebug<<"Cygnus Solutions entry does not exist."; cyEntry=false; } } } void ONMainWindow::restoreCygnusSettings() { if ( ONMainWindow::portable ) { if ( !cyEntry ) { removeCygwinEntry(); } } } void ONMainWindow::removeCygwinEntry() { QSettings st ( "HKEY_CURRENT_USER\\Software" "\\Cygwin", QSettings::NativeFormat ); x2goDebug<<"Removing cygwin from registry\n"; st.remove ( "" ); st.sync(); } void ONMainWindow::startPulsed() { while ( isServerRunning ( pulsePort ) ) ++pulsePort; esdPort=pulsePort+1; while ( isServerRunning ( esdPort ) ) ++esdPort; pulseDir=homeDir+"/.x2go/pulse"; QDir dr ( homeDir ); dr.mkpath ( pulseDir ); pulseDir=wapiShortFileName ( pulseDir ); x2goDebug<<"pulse template: "<open(); pulseDir=fl->fileName(); fl->close(); delete fl; QFile::remove ( pulseDir ); dr.mkpath ( pulseDir ); x2goDebug<<"pulse tmp file: "<setEnvironment ( pEnv ); pulseArgs.clear(); #ifdef Q_OS_WIN QDir drr(homeDir+"/.x2go/pulse/.pulse/"+QHostInfo::localHostName ()+"-runtime"); if (!drr.exists()) drr.mkpath(drr.path()); if (QFile::exists(homeDir+"/.x2go/pulse/.pulse/"+QHostInfo::localHostName ()+"-runtime/pid")) QFile::remove(homeDir+"/.x2go/pulse/.pulse/"+QHostInfo::localHostName ()+"-runtime/pid"); pulseDir.replace("/","\\"); pulseArgs<<"--exit-idle-time=-1"<<"-n"<<"-F"<setWorkingDirectory ( wapiShortFileName ( appDir+"\\pulse" ) ); pulseServer->start ( "pulse\\pulseaudio.exe",pulseArgs ); x2goDebug<<"Starting pulse\\pulseaudio.exe "<start(2000); } void ONMainWindow::slotCheckPulse() { //restart pulse server if(pulseServer->state()!=QProcess::Running) { pulseServer->start ( "pulse\\pulseaudio.exe",pulseArgs ); x2goDebug<<"Restarting pulse\\pulseaudio.exe "<value("useintx",true).toBool()); xorgExe=(st.setting()->value("xexec","C:\\program files\\vcxsrv\\vcxsrv.exe").toString()); xorgOptions=(st.setting()->value("options","-multiwindow -notrayicon -clipboard").toString()); startXorgOnStart=(st.setting()->value("onstart",true).toBool()); xorgWinOptions=(st.setting()->value("optionswin","-screen 0 %wx%h -notrayicon -clipboard").toString()); xorgFSOptions=(st.setting()->value("optionsfs","-fullscreen -notrayicon -clipboard").toString()); xorgSAppOptions=(st.setting()->value("optionssingle","-multiwindow -notrayicon -clipboard").toString()); if (QFile::exists(appDir+"\\vcxsrv")) internalX=VCXSRV; if (QFile::exists(appDir+"\\xming")) internalX=XMING; QString primClip; if(st.setting()->value("noprimaryclip",false).toBool() && internalX==VCXSRV) primClip=" -noclipboardprimary"; if (useInternalX) { startXorgOnStart=(internalX==XMING); xorgOptions="-multiwindow -notrayicon -clipboard"+primClip; if (internalX==VCXSRV) { // xorgWinOptions="-screen 0 %wx%h -notrayicon -clipboard"; xorgWinOptions="-multiwindow -notrayicon -clipboard"+primClip; xorgFSOptions="-fullscreen -notrayicon -clipboard"+primClip; xorgSAppOptions="-multiwindow -notrayicon -clipboard"+primClip; } } } // #endif void ONMainWindow::slotSetWinServersReady() { x2goDebug<<"All winservers are started."; winServersReady=true; restoreCygnusSettings(); } #include #include #endif void ONMainWindow::generateEtcFiles() { QString etcDir=homeDir+"/.x2go/etc"; QDir dr ( homeDir ); dr.mkpath ( etcDir ); QFile file ( etcDir +"/sshd_config" ); if ( !file.open ( QIODevice::WriteOnly | QIODevice::Text ) ) return; #ifdef Q_OS_WIN QString authKeyPath=cygwinPath ( homeDir+"/.x2go/.ssh/authorized_keys" ); authKeyPath.replace(wapiGetUserName(),"%u"); #endif QTextStream out ( &file ); out<<"StrictModes no\n"<< "UsePrivilegeSeparation no\n"<< #ifdef Q_OS_WIN "Subsystem shell "<< wapiShortFileName ( appDir) +"/sh"+"\n"<< "Subsystem sftp "<< wapiShortFileName ( appDir) +"/sftp-server"+"\n"<< "AuthorizedKeysFile \""<start ( appDir+"/sshd",arguments ); x2goDebug<<"Usermode sshd started."; #endif } void ONMainWindow::setProxyWinTitle() { if (embedMode) return; QString title; if (!useLdap) title=lastSession->name(); else title=getCurrentUname()+"@"+resumingSession.server; QPixmap pixmap; if (useLdap) pixmap=lastUser->foto(); else pixmap=*(lastSession->sessIcon()); #ifdef Q_OS_LINUX XStoreName(QX11Info::display(), proxyWinId, title.toLocal8Bit().data()); XWMHints* win_hints; QByteArray bytes; QBuffer buffer(&bytes); buffer.open(QIODevice::WriteOnly); pixmap.save(&buffer, "XPM"); int rez; if (image) XFreePixmap(QX11Info::display(),image); if (shape) XFreePixmap(QX11Info::display(),shape); rez=XpmCreatePixmapFromBuffer(QX11Info::display(), proxyWinId, bytes.data(), (Pixmap *) &image, (Pixmap *) &shape, NULL); if (!rez) { win_hints = XAllocWMHints(); if (win_hints) { win_hints->flags = IconPixmapHint|IconMaskHint; win_hints->icon_pixmap = image; win_hints->icon_mask = shape; XSetWMHints(QX11Info::display(), proxyWinId, win_hints); XFree(win_hints); } } #endif #ifdef Q_OS_WIN wapiSetWindowText((HWND)proxyWinId, title); // wapiSetWindowIcon((HWND)proxyWinId, pixmap); #endif } void ONMainWindow::slotSetProxyWinFullscreen() { #ifdef Q_OS_LINUX XSync(QX11Info::display(),false); XEvent event; long emask = StructureNotifyMask | ResizeRedirectMask; event.xclient.type = ClientMessage; event.xclient.serial = 0; event.xclient.send_event = True; event.xclient.display = QX11Info::display(); event.xclient.window = proxyWinId; event.xclient.message_type = XInternAtom(QX11Info::display(),"_NET_WM_STATE",False); event.xclient.format = 32; event.xclient.data.l[0] = 1; event.xclient.data.l[1] = XInternAtom(QX11Info::display(),"_NET_WM_STATE_FULLSCREEN",False); event.xclient.data.l[2] = 0; event.xclient.data.l[3] = 0; event.xclient.data.l[4] = 0; Status st; st=XSendEvent(QX11Info::display(), DefaultRootWindow(QX11Info::display()), False, emask,&event); XSync(QX11Info::display(),false); #endif #ifdef Q_OS_WIN wapiSetFSWindow ( ( HWND ) proxyWinId, dispGeometry ); #endif } void ONMainWindow::resizeProxyWinOnDisplay(int disp) { QRect geom=QApplication::desktop()->screenGeometry(disp-1); QString geoStr = "(x: " + QString("%1").arg(geom.x()) + ", y: "+ QString("%1").arg(geom.y()) + ", w: "+ QString("%1").arg(geom.width()) + ", h: "+ QString("%1").arg(geom.height()); x2goDebug<<"Resizing proxy window to fit Display: " + QString("%1").arg(disp) + " " + geoStr; #ifdef Q_OS_LINUX XSync(QX11Info::display(),false); XMoveWindow(QX11Info::display(), proxyWinId,geom.x(),geom.y()); #endif #ifdef Q_OS_WIN dispGeometry=geom; #endif QTimer::singleShot(500, this, SLOT(slotSetProxyWinFullscreen())); } QRect ONMainWindow::proxyWinGeometry() { #ifdef Q_OS_WIN QRect proxyRect; if (!wapiWindowRectWithoutDecoration((HWND)proxyWinId,proxyRect)) return QRect(); return proxyRect; #endif #ifdef Q_OS_LINUX QRect proxyRect; Window root; int x,y; uint w,h,border,depth; if (XGetGeometry(QX11Info::display(), proxyWinId, &root,&x,&y,&w,&h,&border,&depth)) { int realx,realy; Window child; XTranslateCoordinates(QX11Info::display(), proxyWinId, root, 0, 0, &realx, &realy, &child); proxyRect.setRect(realx, realy, w,h); } return proxyRect; #endif return QRect(); } void ONMainWindow::slotConfigXinerama() { QRect newGeometry=proxyWinGeometry(); if (newGeometry.isNull()) { x2goWarningf(7)<< tr("Error getting window geometry (window closed)?"); xineramaTimer->stop(); return; } if (newGeometry==lastDisplayGeometry) return; lastDisplayGeometry=newGeometry; QString geoStr = "(x: " + QString("%1").arg(lastDisplayGeometry.x()) + ", y: "+ QString("%1").arg(lastDisplayGeometry.y()) + ", w: "+ QString("%1").arg(lastDisplayGeometry.width()) + ", h: "+ QString("%1").arg(lastDisplayGeometry.height()); x2goDebug<<"New proxy geometry: " + geoStr; QDesktopWidget* root=QApplication::desktop(); QList newXineramaScreens; for (int i=0; i< root->numScreens(); ++i) { QRect intersection; if (resumingSession.fullscreen) intersection=root->screenGeometry(i); else intersection=root->screenGeometry(i).intersected(lastDisplayGeometry); if (!intersection.isNull()) { // x2goDebug<<"intersected with "<stop(); QStringList screens; foreach (QRect disp, xineramaScreens) screens< ~/.x2go/C-"+ resumingSession.sessionId+"/xinerama.conf"; sshConnection->executeCommand(cmd, this, SLOT(slotXineramaConfigured())); } } void ONMainWindow::slotXineramaConfigured() { if (resumingSession.fullscreen) return; if (xinSizeInc == -1) xinSizeInc=1; else xinSizeInc=-1; #ifdef Q_OS_LINUX lastDisplayGeometry.setWidth(lastDisplayGeometry.width()+xinSizeInc); XSync(QX11Info::display(),false); XResizeWindow(QX11Info::display(), proxyWinId, lastDisplayGeometry.width(),lastDisplayGeometry.height()); XSync(QX11Info::display(),false); #endif #ifdef Q_OS_WIN QRect geom; wapiWindowRect ( (HWND) proxyWinId, geom ); wapiMoveWindow( (HWND) proxyWinId, geom.x(), geom.y(), geom.width()+xinSizeInc, geom.height(),true); lastDisplayGeometry=proxyWinGeometry(); #endif xineramaTimer->start(500); } void ONMainWindow::slotFindProxyWin() { #ifndef Q_OS_DARWIN x2goDebug<<"Searching proxy win: X2GO-" + resumingSession.sessionId; proxyWinId=findWindow ( "X2GO-"+resumingSession.sessionId ); bool xinerama=defaultXinerama; if ( proxyWinId ) { x2goDebug<<"Proxy win found: " + QString("%1").arg(proxyWinId); setProxyWinTitle(); proxyWinTimer->stop(); if (!embedMode) { if (!useLdap) { X2goSettings *st; QString sid; if ( !embedMode ) sid=lastSession->id(); else sid="embedded"; if (brokerMode) st=new X2goSettings(config.iniFile,QSettings::IniFormat); else st= new X2goSettings( "sessions" ); uint displays=QApplication::desktop()->numScreens(); xinerama=st->setting()->value ( sid+"/xinerama", ( QVariant ) defaultXinerama ).toBool(); if (st->setting()->value ( sid+"/multidisp", ( QVariant ) false ).toBool()) { uint disp=st->setting()->value ( sid+"/display", ( QVariant ) 1 ).toUInt(); if (disp>displays) { disp=1; } resizeProxyWinOnDisplay(disp); return; } } if (xinerama) { x2goDebug<<"Starting Xinerama Timer."; lastDisplayGeometry=QRect(); xineramaScreens.clear(); xineramaTimer->start(500); } } if ( embedMode ) { x2goDebug<<"Checking rootless config."; if ( config.rootless ) { x2goDebug<<"Window is rootless."; act_embedContol->setEnabled ( false ); } else slotAttachProxyWindow(); } #ifdef Q_OS_WIN x2goDebug<<"Maximize proxy win: "<text(); } QString ONMainWindow::getCurrentPass() { return pass->text(); } void ONMainWindow::slotDetachProxyWindow() { proxyWinEmbedded=false; bgFrame->show(); setStatStatus(); act_embedContol->setText ( tr ( "Attach X2Go window" ) ); act_embedContol->setIcon ( QIcon ( ":icons/32x32/attach.png" ) ); #ifdef Q_OS_LINUX //if QX11EmbedContainer cannot embed window, check if window exists //and reconnect if ( !embedControlChanged ) { slotFindProxyWin(); x2goDebug<<"Proxy win detached, proxywin is: "<hide(); proxyWinEmbedded=true; setStatStatus(); act_embedContol->setText ( tr ( "Detach X2Go window" ) ); act_embedContol->setIcon ( QIcon ( ":icons/32x32/detach.png" ) ); QTimer::singleShot ( 100, this, SLOT ( slotEmbedWindow() ) ); } else { x2goDebug<<"Start embedded was false."; startEmbedded=true; } } void ONMainWindow::slotEmbedWindow() { #ifndef Q_OS_DARWIN #ifdef CFGPLUGIN embedWindow ( proxyWinId ); #endif QTimer::singleShot ( 1000, this, SLOT ( slotActivateWindow() ) ); #endif } void ONMainWindow::setEmbedSessionActionsEnabled ( bool enable ) { act_shareFolder->setEnabled ( enable ); if(!enable) act_showApps->setVisible(enable); act_suspend->setEnabled ( enable ); act_terminate->setEnabled ( enable ); act_embedContol->setEnabled ( enable ); act_reconnect->setEnabled ( !enable ); } void ONMainWindow::slotEmbedControlAction() { #ifndef Q_OS_DARWIN embedControlChanged=true; if ( proxyWinEmbedded ) { #ifdef CFGPLUGIN detachClient(); #endif } else slotAttachProxyWindow(); #endif } void ONMainWindow::slotEmbedIntoParentWindow() { #ifndef Q_OS_DARWIN // embedInto ( embedParent ); #endif } void ONMainWindow::processSessionConfig() { bool haveKey=false; config.command="KDE"; config.brokerNoAuth=false; config.sshport="22"; config.session=tr ( "X2Go Session" ); config.checkexitstatus=true; config.showtermbutton=true; config.showexpbutton=true; config.showconfig=true; config.showextconfig=true; config.showtoolbar=true; config.showstatusbar=true; config.kbdType=getDefaultKbdType(); config.kbdLay=getDefaultLayout()[0]; config.confSnd=false; config.confFS=false; config.confConSpd=false; config.confCompMet=false; config.confImageQ=false; config.confDPI=false; config.confKbd=false; QStringList lines=m_x2goconfig.split ( "\n" ); for ( int i=0; isetVisible ( config.showtermbutton ); act_shareFolder->setVisible ( config.showexpbutton ); act_set->setVisible ( config.showconfig ); if (!config.showstatusbar) { statusBar()->hide(); } if ( managedMode ) { QTimer::singleShot ( 500, this, SLOT ( slotStartBroker() ) ); return; } slotSelectedFromList ( ( SessionButton* ) 0 ); } void ONMainWindow::processCfgLine ( QString line ) { QStringList lst=line.split ( "=" ); if ( lst[0]=="command" ) { config.command=lst[1]; if ( config.command=="SHADOW" ) { shadowSession=true; runRemoteCommand=false; } return; } if ( lst[0]=="server" ) { config.server=lst[1]; return; } if ( lst[0]=="session" ) { config.session=lst[1]; return; } if ( lst[0]=="sshport" ) { config.sshport=lst[1]; return; } if ( lst[0]=="user" ) { config.user=lst[1]; return; } if ( lst[0]=="rootless" ) { if ( lst[1]=="true" ) config.rootless=true; else config.rootless=false; return; } if ( lst[0]=="published" ) { if ( lst[1]=="true" ) config.published=true; else config.published=false; return; } if ( lst[0]=="checkexitstatus" ) { if ( lst[1]=="true" ) config.checkexitstatus=true; else config.checkexitstatus=false; return; } if ( lst[0]=="showtermbutton" ) { if ( lst[1]=="true" ) config.showtermbutton=true; else config.showtermbutton=false; return; } if ( lst[0]=="showexpbutton" ) { if ( lst[1]=="true" ) config.showexpbutton=true; else config.showexpbutton=false; return; } if ( lst[0]=="showconfig" ) { if ( lst[1]=="true" ) config.showconfig=true; else config.showconfig=false; return; } if ( lst[0]=="showextconfig" ) { if ( lst[1]=="true" ) config.showextconfig=true; else config.showextconfig=false; return; } if ( lst[0]=="showstatusbar" ) { if ( lst[1]=="true" ) config.showstatusbar=true; else config.showstatusbar=false; return; } if ( lst[0]=="showtoolbar" ) { if ( lst[1]=="true" ) config.showtoolbar=true; else config.showtoolbar=false; return; } if ( lst[0]=="sound" ) { config.confSnd=true; if ( lst[1]=="true" ) config.useSnd=true; else config.useSnd=false; return; } if ( lst[0]=="exportfs" ) { config.confFS=true; if ( lst[1]=="true" ) config.useFs=true; else config.useFs=false; return; } if ( lst[0]=="speed" ) { config.confConSpd=true; config.conSpeed=ADSL; if ( lst[1]=="modem" ) config.conSpeed=MODEM; else if ( lst[1]=="isdn" ) config.conSpeed=ISDN; else if ( lst[1]=="adsl" ) config.conSpeed=ADSL; else if ( lst[1]=="wan" ) config.conSpeed=WAN; else if ( lst[1]=="lan" ) config.conSpeed=LAN; else { qCritical ( "%s",tr ( "wrong value for argument\"speed\"" ).toLocal8Bit().data() ); } return; } if ( lst[0]=="compression" ) { config.confCompMet=true; config.compMet=lst[1]; return; } if ( lst[0]=="quality" ) { config.confImageQ=true; config.imageQ=lst[1].toInt(); return; } if ( lst[0]=="dpi" ) { config.confDPI=true; config.dpi=lst[1].toInt(); return; } if ( lst[0]=="kbdlayout" ) { config.confKbd=true; config.kbdLay=lst[1]; return; } if ( lst[0]=="kbdtype" ) { config.confKbd=true; config.kbdType=lst[1]; return; } if ( lst[0]=="brokerurl" ) { config.brokerurl=lst[1]; managedMode=true; acceptRsa=true; } if ( lst[0]=="cookie" ) { config.cookie=lst[1]; return; } if ( lst[0]=="x2gosession" ) { config.sessiondata=lst[1]; return; } if ( lst[0]=="connectionts" ) { config.connectionts=lst[1]; return; } } void ONMainWindow::slotChangeKbdLayout(const QString& layout) { #ifdef Q_OS_LINUX QStringList args; args<<"-layout"<setMainWidget ( ( QWidget* ) this ); #endif username->addWidget ( passForm ); passForm->hide(); setWidgetStyle ( passForm ); if ( !miniMode ) passForm->setFixedSize ( passForm->sizeHint() ); else passForm->setFixedSize ( 310,180 ); QPalette pal=passForm->palette(); pal.setBrush ( QPalette::Window, QColor ( 255,255,255,0 ) ); pal.setColor ( QPalette::Active, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::Text, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::Text, QPalette::Mid ); passForm->setPalette ( pal ); pal.setColor ( QPalette::Button, QColor ( 255,255,255,0 ) ); pal.setColor ( QPalette::Window, QColor ( 255,255,255,255 ) ); pal.setColor ( QPalette::Base, QColor ( 255,255,255,255 ) ); QFont fnt=passForm->font(); if ( miniMode ) #ifdef Q_WS_HILDON fnt.setPointSize ( 10 ); #else fnt.setPointSize ( 9 ); #endif passForm->setFont ( fnt ); fotoLabel=new QLabel ( passForm ); fotoLabel->hide(); nameLabel=new QLabel ( "",passForm ); nameLabel->hide(); loginPrompt=new QLabel ( tr ( "Login:" ),passForm ); passPrompt=new QLabel ( tr ( "Password:" ),passForm ); layoutPrompt=new QLabel ( tr ( "Keyboard layout:" ),passForm ); login=new ClickLineEdit ( passForm ); setWidgetStyle ( login ); login->setFrame ( false ); login->setEnabled ( false ); login->hide(); loginPrompt->hide(); pass=new ClickLineEdit ( passForm ); setWidgetStyle ( pass ); pass->setFrame ( false ); fnt.setBold ( true ); pass->setFont ( fnt ); pass->setEchoMode ( QLineEdit::Password ); pass->setFocus(); #ifdef Q_OS_LINUX connect ( login,SIGNAL ( clicked() ),this, SLOT ( slotActivateWindow() ) ); connect ( pass,SIGNAL ( clicked() ),this, SLOT ( slotActivateWindow() ) ); #endif pass->hide(); passPrompt->hide(); cbLayout=new QComboBox(passForm); cbLayout->addItems(defaultLayout); cbLayout->setFocusPolicy(Qt::NoFocus); cbLayout->setFrame(false); setWidgetStyle(cbLayout); cbLayout->hide(); layoutPrompt->hide(); QHBoxLayout* cbLayoutLay=new QHBoxLayout(); cbLayoutLay->addWidget(cbLayout); cbLayoutLay->addStretch(); ok=new QPushButton ( tr ( "Ok" ),passForm ); setWidgetStyle ( ok ); cancel=new QPushButton ( tr ( "Cancel" ),passForm ); setWidgetStyle ( cancel ); ok->hide(); cancel->hide(); cbLayout->setPalette ( pal ); ok->setPalette ( pal ); cancel->setPalette ( pal ); #ifndef Q_WS_HILDON ok->setFixedSize ( ok->sizeHint() ); cancel->setFixedSize ( cancel->sizeHint() ); #else QSize sz=cancel->sizeHint(); sz.setWidth ( ( int ) ( sz.width() /1.5 ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); cancel->setFixedSize ( sz ); sz=ok->sizeHint(); sz.setWidth ( ( int ) ( sz.width() /1.5 ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); ok->setFixedSize ( sz ); #endif QVBoxLayout *layout=new QVBoxLayout ( passForm ); QHBoxLayout *labelLay=new QHBoxLayout(); QHBoxLayout *inputLay=new QHBoxLayout(); QHBoxLayout *buttonLay=new QHBoxLayout(); labelLay->setSpacing ( 20 ); inputLay->setSpacing ( 10 ); layout->setContentsMargins ( 20,20,10,10 ); layout->addLayout ( labelLay ); layout->addStretch(); layout->addLayout ( inputLay ); layout->addStretch(); layout->addLayout ( buttonLay ); labelLay->addWidget ( fotoLabel ); labelLay->addWidget ( nameLabel ); labelLay->addStretch(); QVBoxLayout* il1=new QVBoxLayout(); il1->addWidget ( loginPrompt ); il1->addWidget ( passPrompt ); il1->addWidget ( layoutPrompt ); QVBoxLayout* il2=new QVBoxLayout(); il2->addWidget ( login ); il2->addWidget ( pass ); il2->addLayout ( cbLayoutLay ); inputLay->addLayout ( il1 ); inputLay->addLayout ( il2 ); inputLay->addStretch(); buttonLay->addStretch(); buttonLay->addWidget ( ok ); buttonLay->addWidget ( cancel ); buttonLay->addStretch(); pal.setColor ( QPalette::Base, QColor ( 239,239,239,255 ) ); login->setPalette ( pal ); pass->setPalette ( pal ); connect ( ok,SIGNAL ( clicked() ),this, SLOT ( slotSessEnter() ) ); connect ( cancel,SIGNAL ( clicked() ),this, SLOT ( slotClosePass() ) ); connect ( pass,SIGNAL ( returnPressed() ),this, SLOT ( slotSessEnter() ) ); connect ( login,SIGNAL ( returnPressed() ),pass, SLOT ( selectAll() ) ); connect ( login,SIGNAL ( returnPressed() ),pass, SLOT ( setFocus() ) ); passPrompt->show(); pass->show(); ok->show(); cancel->show(); fotoLabel->show(); nameLabel->show(); if ( !useLdap ) { login->show(); loginPrompt->show(); } if ( embedMode ) { cancel->setEnabled ( false ); #ifdef Q_OS_WIN QRect r; wapiWindowRect ( ok->winId(),r ); #endif } if (defaultLayout.size()>1) { layoutPrompt->show(); cbLayout->show(); slotChangeKbdLayout(cbLayout->currentText()); connect (cbLayout,SIGNAL(currentIndexChanged(QString)),this,SLOT(slotChangeKbdLayout(QString))); } } void ONMainWindow::initStatusDlg() { sessionStatusDlg = new SVGFrame ( ":/svg/passform.svg", false,bgFrame ); sessionStatusDlg->hide(); if ( !miniMode ) sessionStatusDlg->setFixedSize ( sessionStatusDlg->sizeHint() ); else sessionStatusDlg->setFixedSize ( 310,200 ); QFont fnt=sessionStatusDlg->font(); if ( miniMode ) #ifdef Q_WS_HILDON fnt.setPointSize ( 10 ); #else fnt.setPointSize ( 9 ); #endif sessionStatusDlg->setFont ( fnt ); username->addWidget ( sessionStatusDlg ); QPalette pal=sessionStatusDlg->palette(); pal.setBrush ( QPalette::Window, QColor ( 0,0,0,0 ) ); pal.setColor ( QPalette::Active, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::Text, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::Text, QPalette::Mid ); sessionStatusDlg->setPalette ( pal ); slName=new QLabel ( sessionStatusDlg ); slVal=new QLabel ( sessionStatusDlg ); slName->setText ( tr ( "Session ID:
Server:
Username:" "
Display:
Creation time:
Status:
" ) ); slName->setFixedSize ( slName->sizeHint() ); slName->hide(); slVal->hide(); slVal->setFixedHeight ( slName->sizeHint().height() ); sbApps=new QToolButton (sessionStatusDlg ); sbApps->setToolTip(tr ( "Applications..." )); sbApps->setIcon(QPixmap(":/icons/32x32/apps.png")); sbApps->setAutoRaise(true); sbApps->setFocusPolicy(Qt::NoFocus); sbExp=new QToolButton (sessionStatusDlg ); sbExp->setIcon(QPixmap(":/icons/32x32/open_dir.png")); sbExp->setToolTip (tr ("Share folder..." )); sbExp->setAutoRaise(true); sbExp->setFocusPolicy(Qt::NoFocus); sbSusp=new QToolButton (sessionStatusDlg ); sbSusp->setIcon(QPixmap(":/icons/32x32/suspend_session.png")); sbSusp->setToolTip(tr ( "Abort" )); sbSusp->setAutoRaise(true); sbSusp->setFocusPolicy(Qt::NoFocus); sbTerm=new QToolButton (sessionStatusDlg ); sbTerm->setIcon(QPixmap(":/icons/32x32/stop_session.png")); sbTerm->setToolTip(tr ( "Terminate" )); sbTerm->setAutoRaise(true); sbTerm->setFocusPolicy(Qt::NoFocus); sbAdv=new QCheckBox ( tr ( "Show details" ),sessionStatusDlg ); setWidgetStyle ( sbTerm ); setWidgetStyle ( sbApps ); setWidgetStyle ( sbExp ); setWidgetStyle ( sbSusp ); setWidgetStyle ( sbAdv ); sbAdv->setFixedSize ( sbAdv->sizeHint() ); sbApps->setFixedSize ( 32,32 ); sbSusp->setFixedSize ( 32,32 ); sbTerm->setFixedSize ( 32,32 ); sbExp->setFixedSize ( 32,32 ); /* sbApps->setFocusPolicy(Qt::NoFocus); sbSusp->setFocusPolicy(Qt::NoFocus); sbTerm->setFocusPolicy(Qt::NoFocus); sbExp->setFocusPolicy(Qt::NoFocus);*/ sbAdv->hide(); sbSusp->hide(); sbTerm->hide(); sbExp->hide(); sbApps->hide(); pal.setColor ( QPalette::Button, QColor ( 255,255,255,0 ) ); pal.setColor ( QPalette::Window, QColor ( 255,255,255,255 ) ); pal.setColor ( QPalette::Base, QColor ( 255,255,255,255 ) ); sbAdv->setPalette ( pal ); sbApps->setPalette ( pal ); sbSusp->setPalette ( pal ); sbTerm->setPalette ( pal ); sbExp->setPalette ( pal ); stInfo=new QTextEdit ( sessionStatusDlg ); setWidgetStyle ( stInfo ); setWidgetStyle ( stInfo->verticalScrollBar() ); stInfo->setReadOnly ( true ); stInfo->hide(); stInfo->setFrameStyle ( QFrame::StyledPanel|QFrame::Plain ); stInfo->setPalette ( pal ); sbExp->setEnabled ( false ); connect ( sbSusp,SIGNAL ( clicked() ),this, SLOT ( slotTestSessionStatus() ) ); connect ( sbTerm,SIGNAL ( clicked() ),this, SLOT ( slotTermSessFromSt() ) ); connect ( sbAdv,SIGNAL ( clicked() ),this, SLOT ( slotShowAdvancedStat() ) ); connect ( sbExp,SIGNAL ( clicked() ),this, SLOT ( slotExportDirectory() ) ); connect ( sbApps,SIGNAL ( clicked() ),this, SLOT ( slotAppDialog()) ); QVBoxLayout* layout=new QVBoxLayout ( sessionStatusDlg ); QHBoxLayout* ll=new QHBoxLayout(); ll->addWidget ( slName ); ll->addWidget ( slVal ); ll->addStretch(); ll->setSpacing ( 10 ); if ( !miniMode ) layout->setContentsMargins ( 25,25,10,10 ); else layout->setContentsMargins ( 10,10,10,10 ); QHBoxLayout* bl=new QHBoxLayout(); bl->addStretch(); bl->addWidget ( sbApps ); bl->addWidget ( sbExp ); bl->addWidget ( sbSusp ); bl->addWidget ( sbTerm ); // bl->addStretch(); layout->addLayout ( ll ); layout->addStretch(); layout->addWidget ( stInfo ); layout->addWidget ( sbAdv ); layout->addStretch(); layout->addLayout ( bl ); slName->show(); slVal->show(); sbAdv->show(); if ( !embedMode ) { sbSusp->show(); sbTerm->show(); sbExp->show(); } X2goSettings st ( "settings" ); if ( st.setting()->value ( "showStatus", ( QVariant ) false ).toBool() ) { sbAdv->setChecked ( true ); slotShowAdvancedStat(); } #ifdef Q_OS_WIN if ( embedMode ) { QRect r; wapiWindowRect ( sbAdv->winId(),r ); wapiWindowRect ( stInfo->verticalScrollBar ()->winId(),r ); } #endif } void ONMainWindow::initSelectSessDlg() { selectSessionDlg = new SVGFrame ( ":/svg/passform.svg", false,bgFrame ); username->addWidget ( selectSessionDlg ); setWidgetStyle ( selectSessionDlg ); if ( !miniMode ) selectSessionDlg->setFixedSize ( selectSessionDlg->sizeHint() ); else selectSessionDlg->setFixedSize ( 310,180 ); QPalette pal=selectSessionDlg->palette(); pal.setBrush ( QPalette::Window, QColor ( 255,255,255,0 ) ); pal.setColor ( QPalette::Active, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::Text, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::Text, QPalette::Mid ); selectSessionDlg->setPalette ( pal ); pal.setColor ( QPalette::Button, QColor ( 255,255,255,0 ) ); pal.setColor ( QPalette::Window, QColor ( 255,255,255,255 ) ); pal.setColor ( QPalette::Base, QColor ( 255,255,255,255 ) ); QFont fnt=selectSessionDlg->font(); if ( miniMode ) #ifdef Q_WS_HILDON fnt.setPointSize ( 10 ); #else fnt.setPointSize ( 9 ); #endif selectSessionDlg->setFont ( fnt ); selectSessionLabel=new QLabel ( tr ( "Select session:" ), selectSessionDlg ); sOk=new QPushButton ( tr ( "Resume" ),selectSessionDlg ); setWidgetStyle ( sOk ); sCancel=new QPushButton ( tr ( "Cancel" ),selectSessionDlg ); setWidgetStyle ( sCancel ); bCancel=new QPushButton ( tr ( "Cancel" ),selectSessionDlg ); setWidgetStyle ( bCancel ); bSusp=new QPushButton ( tr ( "Suspend" ),selectSessionDlg ); setWidgetStyle ( bSusp ); bTerm=new QPushButton ( tr ( "Terminate" ),selectSessionDlg ); setWidgetStyle ( bTerm ); bNew=new QPushButton ( tr ( "New" ),selectSessionDlg ); setWidgetStyle ( bNew ); bShadow=new QPushButton ( tr ( "Full access" ),selectSessionDlg ); setWidgetStyle ( bShadow ); bShadowView=new QPushButton ( tr ( "View only" ),selectSessionDlg ); setWidgetStyle ( bShadowView ); sOk->setPalette ( pal ); sCancel->setPalette ( pal ); connect ( sCancel,SIGNAL ( clicked() ),this, SLOT ( slotCloseSelectDlg() ) ); connect ( bCancel,SIGNAL ( clicked() ),this, SLOT ( slotCloseSelectDlg() ) ); selectSessionDlg->show(); #ifndef Q_WS_HILDON sOk->setFixedSize ( ok->sizeHint() ); sCancel->setFixedSize ( cancel->sizeHint() ); #else QSize sz=sCancel->sizeHint(); sz.setWidth ( ( int ) ( sz.width() /1.5 ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); sCancel->setFixedSize ( sz ); sz=sOk->sizeHint(); sz.setWidth ( ( int ) ( sz.width() /1.5 ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); sOk->setFixedSize ( sz ); sz=bSusp->sizeHint(); if ( bTerm->sizeHint().width() > sz.width() ) sz=bTerm->sizeHint(); if ( bNew->sizeHint().width() > sz.width() ) sz=bNew->sizeHint(); sz.setWidth ( ( int ) ( sz.width() /1.5 ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); bSusp->setFixedSize ( sz ); bTerm->setFixedSize ( sz ); bNew->setFixedSize ( sz ); #endif int bmaxw=bNew->size().width(); if ( bSusp->size().width() >bmaxw ) bmaxw=bSusp->size().width(); if ( bTerm->size().width() >bmaxw ) bmaxw=bTerm->size().width(); bNew->setFixedWidth ( bmaxw ); bSusp->setFixedWidth ( bmaxw ); bTerm->setFixedWidth ( bmaxw ); sOk->setEnabled ( true ); sCancel->setEnabled ( true ); selectSessionDlg->setEnabled ( true ); setEnabled ( true ); sessTv=new SessTreeView ( selectSessionDlg ); setWidgetStyle ( sessTv ); setWidgetStyle ( sessTv->horizontalScrollBar() ); setWidgetStyle ( sessTv->verticalScrollBar() ); sessTv->setItemsExpandable ( false ); sessTv->setRootIsDecorated ( false ); model=new QStandardItemModel ( sessions.size(), 8 ); model->setHeaderData ( S_DISPLAY,Qt::Horizontal, QVariant ( ( QString ) tr ( "Display" ) ) ); model->setHeaderData ( S_STATUS,Qt::Horizontal, QVariant ( ( QString ) tr ( "Status" ) ) ); model->setHeaderData ( S_COMMAND,Qt::Horizontal, QVariant ( ( QString ) tr ( "Command" ) ) ); model->setHeaderData ( S_TYPE,Qt::Horizontal, QVariant ( ( QString ) tr ( "Type" ) ) ); model->setHeaderData ( S_SERVER,Qt::Horizontal, QVariant ( ( QString ) tr ( "Server" ) ) ); model->setHeaderData ( S_CRTIME,Qt::Horizontal, QVariant ( ( QString ) tr ( "Creation time" ) ) ); model->setHeaderData ( S_IP,Qt::Horizontal, QVariant ( ( QString ) tr ( "Client IP" ) ) ); model->setHeaderData ( S_ID,Qt::Horizontal, QVariant ( ( QString ) tr ( "Session ID" ) ) ); modelDesktop=new QStandardItemModel ( sessions.size(), 2 ); modelDesktop->setHeaderData ( D_USER,Qt::Horizontal, QVariant ( ( QString ) tr ( "User" ) ) ); modelDesktop->setHeaderData ( D_DISPLAY,Qt::Horizontal, QVariant ( ( QString ) tr ( "Display" ) ) ); sessTv->setModel ( ( QAbstractItemModel* ) model ); QFontMetrics fm ( sessTv->font() ); sessTv->setEditTriggers ( QAbstractItemView::NoEditTriggers ); sessTv->setPalette ( pal ); sessTv->setModel ( ( QAbstractItemModel* ) model ); bNew->setPalette ( pal ); bShadow->setPalette ( pal ); bShadowView->setPalette ( pal ); bSusp->setPalette ( pal ); bTerm->setPalette ( pal ); sessTv->setFrameStyle ( QFrame::StyledPanel|QFrame::Plain ); sOk->setEnabled ( false ); bSusp->setEnabled ( false ); bTerm->setEnabled ( false ); bShadow->setEnabled ( false ); selectSessionLabel->hide(); bCancel->setPalette ( pal ); bCancel->hide(); desktopFilter=new QLineEdit ( selectSessionDlg ); setWidgetStyle ( desktopFilter ); // desktopFilter->setFrame ( false ); desktopFilterCb=new QCheckBox ( tr ( "Only my desktops" ), selectSessionDlg ); desktopFilterCb->hide(); QVBoxLayout* layout=new QVBoxLayout ( selectSessionDlg ); QHBoxLayout* filterLay=new QHBoxLayout(); QHBoxLayout* blay=new QHBoxLayout(); QVBoxLayout* alay=new QVBoxLayout(); QHBoxLayout* tvlay=new QHBoxLayout(); selectSesDlgLayout=layout; layout->addWidget ( selectSessionLabel ); layout->addLayout ( filterLay ); layout->addLayout ( tvlay ); layout->addLayout ( blay ); filterLay->addWidget ( desktopFilter ); filterLay->addWidget ( desktopFilterCb ); alay->addWidget ( bSusp ); alay->addWidget ( bTerm ); alay->addWidget ( bShadowView ); alay->addWidget ( bShadow ); alay->addStretch(); alay->addWidget ( bNew ); alay->addWidget ( bCancel ); tvlay->addWidget ( sessTv ); tvlay->addLayout ( alay ); blay->addStretch(); blay->addWidget ( sOk ); blay->addWidget ( sCancel ); blay->addStretch(); if ( !miniMode ) layout->setContentsMargins ( 25,25,10,10 ); else layout->setContentsMargins ( 10,10,10,10 ); sOk->hide(); sCancel->hide(); bNew->hide(); bSusp->hide(); bTerm->hide(); connect ( sessTv,SIGNAL ( selected ( const QModelIndex& ) ), this,SLOT ( slotActivated ( const QModelIndex& ) ) ); connect ( sessTv,SIGNAL ( activated ( const QModelIndex& ) ), this,SLOT ( slotResumeDoubleClick ( const QModelIndex& ) ) ); connect ( sOk,SIGNAL ( clicked() ),this, SLOT ( slotResumeSess() ) ); connect ( bSusp,SIGNAL ( clicked() ),this, SLOT ( slotSuspendSess() ) ); connect ( bTerm,SIGNAL ( clicked() ),this, SLOT ( slotTermSess() ) ); connect ( bNew,SIGNAL ( clicked() ),this, SLOT ( slotNewSess() ) ); connect ( bShadow,SIGNAL ( clicked() ),this, SLOT ( slotShadowSess() ) ); connect ( bShadowView,SIGNAL ( clicked() ),this, SLOT ( slotShadowViewSess() ) ); connect ( desktopFilter,SIGNAL ( textEdited ( const QString& ) ),this, SLOT ( slotDesktopFilterChanged ( const QString& ) ) ); connect ( desktopFilterCb,SIGNAL ( stateChanged ( int ) ), this, SLOT ( slotDesktopFilterCb ( int ) ) ); selectSessionLabel->show(); sOk->show(); sCancel->show(); bNew->show(); bSusp->show(); bTerm->show(); sessTv->show(); selectSessionDlg->hide(); #ifdef Q_OS_WIN if ( embedMode ) { QRect r; wapiWindowRect ( sOk->winId(),r ); wapiWindowRect ( sessTv->verticalScrollBar ()->winId(),r ); wapiWindowRect ( sessTv->horizontalScrollBar ()->winId(),r ); wapiWindowRect ( sessTv->header ()->viewport()->winId(),r ); } #endif } void ONMainWindow::printSshDError() { if ( closeEventSent ) return; QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "sshd not started, " "you'll need sshd for printing " "and file sharing\n" "you can install sshd with\n" "sudo apt-get install " "openssh-server" ), QMessageBox::Ok,QMessageBox::NoButton ); } #ifdef Q_OS_WIN void ONMainWindow::slotStartParec () { if ( !parecTunnelOk ) { // wait 1 sec and try again QTimer::singleShot ( 1000, this, SLOT ( slotStartParec() ) ); return; } QString passwd=getCurrentPass(); QString user=getCurrentUname(); QString host=resumingSession.server; QString scmd="PULSE_CLIENTCONFIG=~/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-client.conf "+ "parec 1> /dev/null & sleep 1 && kill %1"; sshConnection->executeCommand ( scmd ); } #endif void ONMainWindow::slotSndTunOk() { parecTunnelOk=true; } void ONMainWindow::slotPCookieReady ( bool result, QString , int ) { #ifdef Q_OS_WIN if ( result ) slotStartParec(); #endif } void ONMainWindow::loadPulseModuleNativeProtocol() { QProcess* proc=new QProcess ( this ); QStringList args; args<<"load-module"<<"module-native-protocol-tcp"; proc->start ( "pactl",args ); proc->waitForFinished ( 3000 ); } void ONMainWindow::slotEmbedToolBar() { if ( statusLabel ) { delete statusLabel; statusLabel=0; } if ( embedTbVisible ) { stb->clear(); act_embedToolBar->setIcon ( QIcon ( ":icons/16x16/tbshow.png" ) ); stb->addAction ( act_embedToolBar ); stb->setToolButtonStyle ( Qt::ToolButtonIconOnly ); stb->widgetForAction ( act_embedToolBar )->setFixedHeight ( 16 ); act_embedToolBar->setText ( tr ( "Restore toolbar" ) ); statusLabel=new QLabel; stb->addWidget ( statusLabel ); #ifndef Q_OS_WIN statusBar()->hide(); #endif } else { initEmbedToolBar(); act_embedToolBar->setIcon ( QIcon ( ":icons/32x32/tbhide.png" ) ); act_embedToolBar->setText ( tr ( "Minimize toolbar" ) ); } embedTbVisible=!embedTbVisible; if ( proxyWinEmbedded ) setStatStatus(); X2goSettings st ( "sessions" ); st.setting()->setValue ( "embedded/tbvisible", embedTbVisible ); st.setting()->sync(); } void ONMainWindow::initEmbedToolBar() { stb->addAction ( act_embedToolBar ); stb->addSeparator(); stb->setToolButtonStyle ( Qt::ToolButtonTextUnderIcon ); stb->addAction ( act_shareFolder ); stb->addAction ( act_showApps ); stb->addAction ( act_reconnect ); stb->addAction ( act_suspend ); stb->addAction ( act_terminate ); stb->addSeparator(); stb->addAction ( act_embedContol ); stb->addSeparator(); stb->addAction ( act_set ); stb->addAction ( act_abclient ); } void ONMainWindow::slotEmbedToolBarToolTip() { if ( !showTbTooltip ) return; QWidget* widg=stb->widgetForAction ( act_embedToolBar ); QToolTip::showText ( this->mapToGlobal ( QPoint ( 6,6 ) ), tr ( "
   Click this " "button   
" "   to restore toolbar" "   

" ), widg ); } void ONMainWindow::slotActivateWindow() { if ( embedMode ) { QApplication::setActiveWindow ( this ) ; activateWindow(); /* x2goDebug<<"focus:"<hasFocus(); x2goDebug<<"activ:"<isActiveWindow();*/ QTimer::singleShot ( 50, this, SLOT ( slotEmbedToolBarToolTip() ) ); } } #ifndef Q_OS_WIN void ONMainWindow::mouseReleaseEvent ( QMouseEvent * event ) { QMainWindow::mouseReleaseEvent ( event ); slotActivateWindow(); } #endif void ONMainWindow::slotHideEmbedToolBarToolTip() { showTbTooltip=false; QToolTip::hideText(); } void ONMainWindow::slotDesktopFilterChanged ( const QString& text ) { filterDesktops ( text ); } void ONMainWindow::slotDesktopFilterCb ( int state ) { if ( state==Qt::Checked ) { filterDesktops ( getCurrentUname(),true ); desktopFilter->setEnabled ( false ); } else { filterDesktops ( desktopFilter->text() ); desktopFilter->setEnabled ( true ); } } void ONMainWindow::filterDesktops ( const QString& filter, bool strict ) { modelDesktop->setRowCount ( 0 ); bShadow->setEnabled ( false ); bShadowView->setEnabled ( false ); QFontMetrics fm ( sessTv->font() ); uint nextRow=0; for ( int row = 0; row < selectedDesktops.size(); ++row ) { QStringList desktop=selectedDesktops[row].split ( "@" ); if ( filter==tr ( "Filter" ) ||filter.length() <=0|| ( strict && desktop[0]==filter ) || ( !strict && desktop[0].startsWith ( filter ) ) ) { QStandardItem *item; item= new QStandardItem ( desktop[0] ); modelDesktop->setItem ( nextRow,D_USER,item ); item= new QStandardItem ( desktop[1] ); modelDesktop->setItem ( nextRow++,D_DISPLAY,item ); for ( int j=0; j<2; ++j ) { QString txt= modelDesktop->index ( row,j ).data().toString(); if ( sessTv->header()->sectionSize ( j ) < fm.width ( txt ) +6 ) { sessTv->header()->resizeSection ( j,fm.width ( txt ) +6 ); } } } } } void ONMainWindow::slotShadowSess() { shadowMode=SHADOW_FULL; slotShadowViewSess(); } void ONMainWindow::slotShadowViewSess() { shadowUser=sessTv->model()->index ( sessTv->currentIndex().row(), D_USER ).data().toString(); shadowDisplay=sessTv->model()->index ( sessTv->currentIndex().row(), D_DISPLAY ).data().toString(); startNewSession(); } void ONMainWindow::slotReconnectSession() { if ( !managedMode ) slotSelectedFromList ( ( SessionButton* ) 0 ); else { setEnabled ( false ); } } QSize ONMainWindow::getEmbedAreaSize() { if ( embedTbVisible && config.showstatusbar ) statusBar()->show(); QSize sz=bgFrame->size(); // sz.setHeight(sz.height()-statusBar()->size().height()); statusBar()->hide(); return sz; } void ONMainWindow::slotStartBroker() { config.brokerPass=pass->text(); config.brokerUser=login->text(); setStatStatus ( tr ( "Connecting to broker" ) ); stInfo->insertPlainText ( "broker url: "+config.brokerurl ); setEnabled ( false ); if(!usePGPCard) broker->getUserSessions(); } void ONMainWindow::slotGetBrokerSession() { startSession ( config.session); } void ONMainWindow::slotStartNewBrokerSession ( ) { if ( managedMode ) { setEnabled ( true ); slotSelectedFromList ( ( SessionButton* ) 0 ); } } #ifdef Q_OS_WIN QString ONMainWindow::u3DataPath() { QStringList env=QProcess::systemEnvironment(); QString dpath; for ( int i=0; i0 ) { dpath.replace ( "U3_APP_DATA_PATH=","" ); portableDataPath=dpath; return dpath; } return QString::null; } #endif void ONMainWindow::cleanPortable() { removeDir ( homeDir +"/.ssh" ); removeDir ( homeDir +"/ssh" ); removeDir ( homeDir+"/.x2go" ); if (cleanAllFiles) removeDir(homeDir+"/.x2goclient"); } void ONMainWindow::removeDir ( QString path ) { x2goDebug<<"removeDir, entering: " <size() || oldChildPos!= mapToGlobal ( QPoint ( 0,0 ) ) ) { QRect geom=embedContainer->geometry(); if ( gcor==1 ) gcor=0; else gcor=1; geom.setWidth ( geom.width()-gcor ); wapiSetFSWindow ( ( HWND ) childId, geom ); wapiUpdateWindow ( ( HWND ) childId ); oldContainerSize=embedContainer->size(); oldChildPos= mapToGlobal ( QPoint ( 0,0 ) ); x2goDebug<<"Updating embedded window."; } } #endif void ONMainWindow::embedWindow ( long wndId ) { childId=wndId; embedContainer->show(); #ifdef Q_OS_LINUX x2goDebug<<"Embedding window with id "<embedClient ( wndId ); #endif #ifdef Q_OS_WIN wapiSetParent ( ( HWND ) childId, ( HWND ) ( embedContainer->winId() ) ); oldContainerSize=embedContainer->size(); oldChildPos= ( mapToGlobal ( QPoint ( 0,0 ) )); winFlags=wapiSetFSWindow ( ( HWND ) childId, embedContainer->geometry() ); updateTimer->start ( 500 ); #endif } void ONMainWindow::detachClient() { if ( !childId ) return; #ifdef Q_OS_LINUX if ( embedContainer ) { embedContainer->discardClient(); } #endif #ifdef Q_OS_WIN wapiSetParent ( ( HWND ) childId, ( HWND ) 0 ); slotDetachProxyWindow(); updateTimer->stop(); if ( childId ) { wapiRestoreWindow ( ( HWND ) childId, winFlags, embedContainer->geometry() ); wapiMoveWindow ( ( HWND ) childId,0,0, oldContainerSize.width(), oldContainerSize.height(),true ); } #endif childId=0; } #endif //(Q_OS_DARWIN) QTNPFACTORY_BEGIN ( "X2GoClient Plug-in "VERSION, "Allows you to start X2Go session in a webbrowser" ) QTNPCLASS ( ONMainWindow ) QTNPFACTORY_END() #ifdef QAXSERVER #include QAXFACTORY_BEGIN ( "{aa3216bf-7e20-482c-84c6-06167bacb616}", "{08538ca5-eb7a-4f24-a3c4-a120c6e04dc4}" ) QAXCLASS ( ONMainWindow ) QAXFACTORY_END() #endif #endif x2goclient-4.0.1.1/onmainwindow.h0000644000000000000000000007027512214040350013503 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef ONMAINWINDOW_H #define ONMAINWINDOW_H #ifdef CFGPLUGIN #include #include #ifdef QAXSERVER #include #include #include #endif #endif #include "x2goclientconfig.h" //#include "CallbackInterface.h" #include #include #include #include #include #include #include "LDAPSession.h" #include #include #include "sshmasterconnection.h" #ifdef Q_OS_WIN #include #endif /** @author Oleksandr Shneyder */ #if defined(CFGPLUGIN) && defined(Q_OS_LINUX) class QX11EmbedContainer; #endif class QToolButton; class QTemporaryFile; class QLineEdit; class QFrame; class QVBoxLayout; class QHBoxLayout; class QScrollArea; class UserButton; class QTextEdit; class SessionButton; class QLabel; class QProcess; class QFile; class SVGFrame; class SessionButton; class QAction; class QCheckBox; class QModelIndex; class SshMasterConnection; class IMGFrame; class QStandardItemModel; class HttpBrokerClient; class QMenu; class QComboBox; struct user { int uin; QString uid; QString name; QPixmap foto; static bool lessThen ( user u1,user u2 ) { return u1.uid < u2.uid; } }; struct directory { QString key; QString dstKey; QString dirList; bool isRemovable; int pid; }; struct serv { QString name; float factor; float sess; bool connOk; bool operator < ( const struct serv it ) { return ( it.sess < sess ); } static bool lt ( const struct serv it, const struct serv it1 ) { return it.sess #include class ONMainWindow; class WinServerStarter: public QThread { public: enum daemon {X,SSH,PULSE}; WinServerStarter ( daemon server, ONMainWindow * par ); void run(); private: daemon mode; ONMainWindow* parent; }; #endif class SessTreeView : public QTreeView { Q_OBJECT public: SessTreeView ( QWidget* parent = 0 ) : QTreeView ( parent ) {} virtual void selectionChanged ( const QItemSelection& selected, const QItemSelection& deselected ) { emit this->selected ( currentIndex() ); QTreeView::selectionChanged ( selected, deselected ); } Q_SIGNALS: void selected ( const QModelIndex& index ); }; class ClickLineEdit; class ONMainWindow : public QMainWindow #ifdef CFGPLUGIN , public QtNPBindable #ifdef QAXSERVER , public QAxBindable #endif #endif { friend class HttpBrokerClient; friend class SessionButton; #ifdef CFGPLUGIN Q_PROPERTY ( QString x2goconfig READ x2goconfig WRITE setX2goconfig ) Q_CLASSINFO ( "ClassID", "{5a20006d-118f-4185-9653-9f98958a0008}" ) Q_CLASSINFO ( "InterfaceID", "{2df000ba-da4f-4fb7-8f35-b8dfbf80009a}" ) Q_CLASSINFO ( "EventsID", "{44900013-f8bd-4d2e-a2cf-eab407c03005}" ) Q_CLASSINFO ( "MIME", "application/x2go:x2go:Configuration File " "for X2Go Session" ) Q_CLASSINFO ( "ToSuperClass", "ONMainWindow" ) Q_CLASSINFO ( "DefaultProperty","x2goconfig" ) #endif Q_OBJECT public: enum { S_DISPLAY, S_STATUS, S_COMMAND, S_TYPE, S_SERVER, S_CRTIME, S_IP, S_ID }; enum { MODEM, ISDN, ADSL, WAN, LAN }; enum { D_USER, D_DISPLAY }; enum { SHADOW_VIEWONLY, SHADOW_FULL }; enum { PULSE, ARTS, ESD }; static bool debugging; static bool portable; ONMainWindow ( QWidget *parent = 0 ); ~ONMainWindow(); static void installTranslator(); QString iconsPath ( QString fname ); const QList * getSessionsList() { return &sessions; } static bool isServerRunning ( int port ); void startNewSession(); void suspendSession ( QString sessId ); bool termSession ( QString sessId, bool warn=true ); void setStatStatus ( QString status=QString::null ); x2goSession getNewSessionFromString ( const QString& string ); void runCommand(); long findWindow ( QString text ); bool retUseLdap() { return useLdap; } bool retMiniMode() { return miniMode; } QString retLdapServer() { return ldapServer; } int retLdapPort() { return ldapPort; } QString retLdapDn() { return ldapDn; } QString retLdapServer1() { return ldapServer1; } int retLdapPort1() { return ldapPort1; } QString retLdapServer2() { return ldapServer2; } int retLdapPort2() { return ldapPort2; } QHBoxLayout* mainLayout() { return mainL; } QWidget* mainWidget() { return ( QWidget* ) fr; } static bool getPortable() { return portable; } static QString getHomeDirectory() { return homeDir; } bool getShowAdvOption() { return config.showextconfig; } bool getUsePGPCard() { return usePGPCard; } QString getCardLogin() { return cardLogin; } QString getDefaultCmd() { return defaultCmd; } QString getDefaultSshPort() { return defaultSshPort; } QString getDefaultKbdType() { return defaultKbdType; } QStringList getDefaultLayout() { return defaultLayout; } QString getDefaultPack() { return defaultPack; } int getDefaultQuality() { return defaultQuality; } uint getDefaultDPI() { return defaultDPI; } bool getDefaultSetDPI() { return defaultSetDPI; } bool getEmbedMode() { return embedMode; } int getDefaultLink() { return defaultLink; } int getDefaultWidth() { return defaultWidth; } int getDefaultHeight() { return defaultHeight; } bool getDefaultSetKbd() { return defaultSetKbd; } bool getDefaultUseSound() { return defaultUseSound; } bool getDefaultFullscreen() { return defaultFullscreen; } bool sessionEditEnabled() { return !noSessionEdit; } const QList& getApplications() { return applications; } static QString getSessionConf() { return sessionCfg; } void runApplication(QString exec); SshMasterConnection* findServerSshConnection(QString host); void showHelp(); void showHelpPack(); void exportDirs ( QString exports,bool removable=false ); void reloadUsers(); void setWidgetStyle ( QWidget* widget ); QStringList internApplicationsNames() { return _internApplicationsNames; } QStringList transApplicationsNames() { return _transApplicationsNames; } QString transAppName ( const QString& internAppName, bool* found=0l ); QString internAppName ( const QString& transAppName, bool* found=0l ); void setEmbedSessionActionsEnabled ( bool enable ); void startSshd(); QSize getEmbedAreaSize(); #ifdef Q_OS_WIN static QString cygwinPath ( const QString& winPath ); void startXOrg(); void startPulsed(); static bool haveCygwinEntry(); static void removeCygwinEntry(); static QString U3DevicePath() { return u3Device; } #endif private: QString m_x2goconfig; QStringList _internApplicationsNames; QStringList _transApplicationsNames; QString portableDataPath; QString proxyErrString; bool proxyRunning; bool drawMenu; bool extStarted; bool startMaximized; bool startHidden; bool defaultUseSound; bool defaultXinerama; bool cardStarted; bool defaultSetKbd; bool showExport; bool usePGPCard; bool miniMode; bool managedMode; bool brokerMode; bool changeBrokerPass; bool connTest; bool embedMode; bool thinMode; QString statusString; QString autostartApp; bool cmdAutologin; int defaultLink; int defaultQuality; int defaultWidth; int defaultHeight; bool defaultFullscreen; bool acceptRsa; bool startEmbedded; bool extLogin; bool printSupport; bool showTbTooltip; bool noSessionEdit; bool cleanAllFiles; bool PGPInited; bool resumeAfterSuspending; QString sshPort; QString clientSshPort; QString defaultSshPort; QVBoxLayout* selectSesDlgLayout; SshMasterConnection* sshConnection; QList serverSshConnections; bool closeEventSent; int shadowMode; QString shadowUser; QString shadowDisplay; QString defaultPack; QStringList defaultLayout; QString selectedLayout; QString defaultKbdType; QString defaultCmd; bool defaultSetDPI; uint defaultDPI; QStringList listedSessions; QString appDir; QString localGraphicPort; static QString homeDir; int retSessions; QList x2goServers; QList applications; QList cmdSshKeys; QPushButton* bSusp; QPushButton* bTerm; QPushButton* bNew; QPushButton* bShadow; QPushButton* bShadowView; QPushButton* bCancel; QLabel* selectSessionLabel; SessTreeView* sessTv; QLineEdit* desktopFilter; QCheckBox* desktopFilterCb; IMGFrame* fr; SVGFrame *bgFrame; QLineEdit* uname; ClickLineEdit* pass; ClickLineEdit* login; QFrame* uframe; SVGFrame *passForm; QSize mwSize; bool mwMax; QPoint mwPos; SVGFrame *selectSessionDlg; SVGFrame *sessionStatusDlg; QLabel* u; QLabel* fotoLabel; QLabel* nameLabel; QLabel* passPrompt; QLabel* loginPrompt; QLabel* layoutPrompt; QLabel* slName; QLabel* slVal; QComboBox* cbLayout; QPushButton* ok; QPushButton* cancel; QString readExportsFrom; QString readLoginsFrom; QPushButton* sOk; QToolButton* sbSusp; QToolButton* sbExp; QToolButton* sbTerm; QToolButton* sbApps; QCheckBox* sbAdv; QPushButton* sCancel; QString resolution; QString kdeIconsPath; QScrollArea* users; QVBoxLayout* userl; QHBoxLayout* mainL; QHBoxLayout* bgLay; QList names; QList sessions; UserButton* lastUser; SessionButton* lastSession; QString prevText; QString onserver; QString id; QString selectedCommand; QString currentKey; QTimer *exportTimer; QTimer *extTimer; QTimer *agentCheckTimer; QTimer *spoolTimer; QTimer *proxyWinTimer; QTimer *xineramaTimer; short xinSizeInc; QRect lastDisplayGeometry; QList xineramaScreens; QStyle* widgetExtraStyle; bool isPassShown; bool xmodExecuted; long proxyWinId; bool embedControlChanged; bool embedTbVisible; QLabel* statusLabel; ConfigFile config; QStandardItemModel* model; QStandardItemModel* modelDesktop; QAction *act_set; QAction *act_abclient; QAction *act_support; QAction *act_shareFolder; QAction *act_showApps; QAction *act_suspend; QAction *act_terminate; QAction *act_reconnect; QAction *act_embedContol; QAction *act_embedToolBar; QAction *act_changeBrokerPass; QAction *act_testCon; QList topActions; QToolBar *stb; QString sessionStatus; QString spoolDir; QString sessionRes; QHBoxLayout* username; QList userList; QList exportDir; QString nick; QString nfsPort; QString mntPort; static QString sessionCfg; QProcess* ssh; QProcess* soundServer; QProcess* scDaemon; QProcess* gpgAgent; QProcess* gpg; LDAPSession* ld; long embedParent; long embedChild; bool proxyWinEmbedded; bool useLdap; bool showToolBar; bool showHaltBtn; bool newSession; bool runStartApp; bool ldapOnly; bool isScDaemonOk; bool parecTunnelOk; #ifdef Q_OS_LINUX bool directRDP; #endif bool startSessSound; int startSessSndSystem; bool fsInTun; bool fsTunReady; QString fsExportKey; bool fsExportKeyReady; QString ldapServer; int ldapPort; QString ldapServer1; int ldapPort1; QString ldapServer2; int ldapPort2; QString ldapDn; QString sessionCmd; QString supportMenuFile; QString BGFile; QString SPixFile; QString LDAPSndSys; QString LDAPSndPort; bool LDAPSndStartServer; bool LDAPPrintSupport; QAction *act_edit; QAction *act_new; QAction *act_sessicon; QProcess *nxproxy; #ifndef Q_OS_WIN QProcess *sshd; bool userSshd; #else QProcess *xorg; PROCESS_INFORMATION sshd; bool winSshdStarted; static QString u3Device; QProcess* pulseServer; QStringList pulseArgs; QTimer* pulseTimer; int xDisplay; int sshdPort; bool winServersReady; QString oldEtcDir; QString oldBinDir; QString oldTmpDir; bool cyEntry; QString pulseDir; int pulsePort; int esdPort; bool maximizeProxyWin; int proxyWinWidth; int proxyWinHeight; QTimer* xorgLogTimer; QString xorgLogFile; QMutex xorgLogMutex; #endif QString lastFreeServer; QString cardLogin; QTextEdit* stInfo; SVGFrame* ln; int tunnel; int sndTunnel; int fsTunnel; QList selectedSessions; QStringList selectedDesktops; x2goSession resumingSession; bool startSound; bool restartResume; bool runRemoteCommand; bool shadowSession; int firstUid; int lastUid; QStringList sshEnv; QString agentPid; bool cardReady; HttpBrokerClient* broker; #if defined ( Q_OS_WIN) //&& defined (CFGCLIENT ) void xorgSettings(); bool startXorgOnStart; bool useInternalX; enum {VCXSRV, XMING} internalX; QString xorgExe; QString xorgOptions; QString xorgWinOptions; QString xorgFSOptions; QString xorgSAppOptions; enum {WIN,FS,SAPP} xorgMode; QString xorgWidth; QString xorgHeight; int waitingForX; QRect dispGeometry; #endif #ifdef Q_OS_LINUX long image, shape; #endif // Tray icon stuff based on patch from Joachim Langenbach QSystemTrayIcon *trayIcon; QMenu *trayIconMenu; QMenu *trayIconActiveConnectionMenu; QAction* appSeparator; QMenu* appMenu[Application::OTHER+1]; bool trayEnabled; bool trayMinToTray; bool trayNoclose; bool trayMinCon; bool trayMaxDiscon; bool trayAutoHidden; QString findSshKeyForServer(QString user, QString server, QString port); void loadSettings(); void showPass ( UserButton* user ); void clean(); bool defaultSession; QString defaultSessionName; QString defaultSessionId; QString defaultUserName; bool defaultUser; SessionButton* createBut ( const QString& id ); void placeButtons(); QString getKdeIconsPath(); QString findTheme ( QString theme ); bool initLdapSession ( bool showBox=true ); bool startSession ( const QString& id ); x2goSession getSessionFromString ( const QString& string ); void resumeSession ( const x2goSession& s ); void selectSession ( QStringList& sessions ); x2goSession getSelectedSession(); bool parseParameter ( QString param ); bool linkParameter ( QString value ); bool geometry_par ( QString value ); bool setKbd_par ( QString value ); bool ldapParameter ( QString value ); bool ldap1Parameter ( QString value ); bool ldap2Parameter ( QString value ); bool packParameter ( QString value ); bool soundParameter ( QString val ); void printError ( QString param ); void exportDefaultDirs(); QString createRSAKey(); directory* getExpDir ( QString key ); bool findInList ( const QString& uid ); void setUsersEnabled ( bool enable ); void externalLogout ( const QString& logoutDir ); void externalLogin ( const QString& loginDir ); void startGPGAgent ( const QString& login, const QString& appId ); void closeClient(); void continueNormalSession(); void continueLDAPSession(); SshMasterConnection* startSshConnection ( QString host, QString port, bool acceptUnknownHosts, QString login, QString password, bool autologin, bool krbLogin, bool getSrv=false, bool useproxy=false, SshMasterConnection::ProxyType type=SshMasterConnection::PROXYSSH, QString proxyserver=QString::null, quint16 proxyport=0, QString proxylogin=QString::null, QString proxypassword=QString::null, QString proxyKey=QString::null, bool proxyAutologin=false ); void setProxyWinTitle(); QRect proxyWinGeometry(); void readApplications(); void removeAppsFromTray(); void plugAppsInTray(); QMenu* initTrayAppMenu(QString text, QPixmap icon); void setTrayIconToSessionIcon(QString info); protected: virtual void closeEvent ( QCloseEvent* event ); virtual void hideEvent ( QHideEvent* event); #ifndef Q_OS_WIN virtual void mouseReleaseEvent ( QMouseEvent * event ); #else private slots: void slotSetWinServersReady(); void startWinServers(); void slotCheckXOrgLog(); void slotCheckXOrgConnection(); void slotCheckPulse(); void slotStartParec (); #endif private slots: void slotAppDialog(); void slotShowPassForm(); void displayUsers(); void slotAppMenuTriggered ( QAction * action ); void slotPassChanged(const QString& result); void slotResize ( const QSize sz ); void slotUnameChanged ( const QString& text ); void slotPassEnter(); void slotChangeBrokerPass(); void slotTestConnection(); void slotCheckPortableDir(); void readUsers(); void slotSelectedFromList ( UserButton* user ); void slotUnameEntered(); void slotClosePass(); void slotReadSessions(); void slotManage(); void displayToolBar ( bool ); void showSessionStatus(); void slotSshConnectionError ( QString message, QString lastSessionError ); void slotSshServerAuthError ( int error, QString sshMessage, SshMasterConnection* connection ); void slotSshServerAuthPassphrase ( SshMasterConnection* connection ); void slotSshUserAuthError ( QString error ); void slotSshConnectionOk(); void slotServSshConnectionOk(QString server); void slotChangeKbdLayout(const QString& layout); void slotSyncX(); void slotShutdownThinClient(); void slotReadApplications(bool result, QString output, int pid ); public slots: void slotConfig(); void slotNewSession(); void slotDeleteButton ( SessionButton * bt ); void slotEdit ( SessionButton* ); void slotCreateDesktopIcon ( SessionButton* bt ); void exportsEdit ( SessionButton* bt ); void slotEmbedControlAction(); void slotDetachProxyWindow(); void slotActivateWindow(); private slots: void slotSnameChanged ( const QString& ); void slotSelectedFromList ( SessionButton* session ); void slotSessEnter(); void slotCloseSelectDlg(); void slotActivated ( const QModelIndex& index ); void slotResumeSess(); void slotSuspendSess(); void slotTermSessFromSt(); void slotSuspendSessFromSt(); void slotTermSess(); void slotNewSess(); void slotGetBrokerAuth(); void slotGetBrokerSession(); void slotCmdMessage ( bool result,QString output, int ); void slotListSessions ( bool result,QString output, int ); void slotRetSuspSess ( bool value,QString message, int ); void slotRetTermSess ( bool result,QString output, int ); void slotRetResumeSess ( bool result,QString output, int ); void slotTunnelFailed ( bool result,QString output, int ); void slotFsTunnelFailed ( bool result,QString output, int ); void slotSndTunnelFailed ( bool result,QString output, int ); void slotCopyKey ( bool result,QString output,int ); void slotTunnelOk(int ); void slotFsTunnelOk(int ); void slotProxyError ( QProcess::ProcessError err ); void slotProxyFinished ( int result,QProcess::ExitStatus st ); void slotProxyStderr(); void slotProxyStdout(); void slotResumeDoubleClick ( const QModelIndex& ); void slotShowAdvancedStat(); void slotRestartProxy(); void slotTestSessionStatus(); void slotRetRunCommand ( bool result, QString output, int ); void slotGetServers ( bool result, QString output, int ); void slotListAllSessions ( bool result,QString output, int ); void slotRetExportDir ( bool result,QString output, int ); void slotResize(); void slotExportDirectory(); void slotExportTimer(); void slotAboutQt(); void slotAbout(); void slotSupport(); //trayIcon stuff void trayIconActivated(QSystemTrayIcon::ActivationReason reason); void trayMessageClicked(); void trayQuit(); void trayIconInit(); private slots: void slotSetProxyWinFullscreen(); void slotCheckPrintSpool(); void slotRereadUsers(); void slotExtTimer(); void slotStartPGPAuth(); void slotScDaemonOut(); void slotScDaemonError(); void slotGpgFinished ( int exitCode, QProcess::ExitStatus exitStatus ); void slotScDaemonFinished ( int exitCode, QProcess::ExitStatus exitStatus ); void slotGpgError(); void slotCheckScDaemon(); void slotGpgAgentFinished ( int exitCode, QProcess::ExitStatus exitStatus ); void slotCheckAgentProcess(); void slotExecXmodmap(); void slotCreateSessionIcon(); void slotFindProxyWin(); void slotConfigXinerama(); void slotXineramaConfigured(); void slotAttachProxyWindow(); void slotEmbedIntoParentWindow(); void slotEmbedWindow(); void slotSndTunOk(); void slotPCookieReady ( bool result,QString output, int proc ); void slotEmbedToolBar(); void slotEmbedToolBarToolTip(); void slotHideEmbedToolBarToolTip(); void slotDesktopFilterChanged ( const QString& text ) ; void slotDesktopFilterCb ( int state ) ; void slotShadowViewSess(); void slotShadowSess(); void slotReconnectSession(); void slotStartBroker(); void slotStartNewBrokerSession (); private: void resizeProxyWinOnDisplay(int display); #ifdef Q_OS_LINUX long X11FindWindow ( QString text, long rootWin=0 ); #endif void addToAppNames ( QString intName, QString transName ); bool checkAgentProcess(); bool isColorDepthOk ( int disp, int sess ); void check_cmd_status(); int startSshFsTunnel(); void startX2goMount(); void cleanPrintSpool(); void cleanAskPass(); void initWidgetsEmbed(); void initWidgetsNormal(); QString getCurrentUname(); QString getCurrentPass(); void processSessionConfig(); void processCfgLine ( QString line ); void initSelectSessDlg(); void initStatusDlg(); void initPassDlg(); void printSshDError(); void loadPulseModuleNativeProtocol(); void initEmbedToolBar(); #ifdef Q_OS_LINUX void startDirectRDP(); #endif void filterDesktops ( const QString& filter, bool strict=false ); void generateHostDsaKey(); void generateEtcFiles(); QString u3DataPath(); void cleanPortable(); void removeDir ( QString path ); #ifdef Q_OS_WIN void saveCygnusSettings(); void restoreCygnusSettings(); #endif #if defined (Q_OS_WIN) || defined (Q_OS_DARWIN) QString getXDisplay(); #endif ////////////////plugin stuff//////////////////// #ifdef CFGPLUGIN public slots: void setX2goconfig ( const QString& text ); public: QString x2goconfig() const { return m_x2goconfig; } #ifndef Q_OS_DARWIN public: void embedWindow ( long wndId ); void detachClient(); private: long parentId; long childId; QSize oldParentSize; #ifdef Q_OS_LINUX QX11EmbedContainer* embedContainer; #endif #ifdef Q_OS_WIN QWidget* embedContainer; QPoint oldParentPos; QPoint oldChildPos; QSize oldContainerSize; QTimer *updateTimer; int gcor; long winFlags; #endif private: QSize getWindowSize ( long winId ); void doPluginInit(); #ifdef Q_OS_WIN private slots: void slotUpdateEmbedWindow(); #endif #endif //(Q_OS_DARWIN) #endif ////////////////end of plugin stuff//////////////////// }; #endif x2goclient-4.0.1.1/onmainwindow_privat.h0000644000000000000000000000764412214040350015070 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef ONMAINWINDOWPRIVAT_H #define ONMAINWINDOWPRIVAT_H #include #include #include #include #include "version.h" #include "x2goclientconfig.h" #include "onmainwindow.h" #include "userbutton.h" #include "exportdialog.h" #include "printprocess.h" #include "appdialog.h" #include #include #include #include #include #include #include "httpbrokerclient.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "x2gosettings.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "imgframe.h" #include #include "clicklineedit.h" #include #include "brokerpassdlg.h" #include "sshmasterconnection.h" #include "contest.h" #if !defined Q_OS_WIN #include #ifdef Q_OS_LINUX #include #include #include #endif // Q_OS_LINUX #endif // !defined Q_OS_WIN #include #include #include #include #include #define ldap_SUCCESS 0 #define ldap_INITERROR 1 #define ldap_OPTERROR 2 #define ldap_BINDERROR 3 #define ldap_SEARCHERROR 4 #define ldap_NOBASE 5 //LDAP attributes #define SESSIONID "sn" #define USERNAME "cn" #define CLIENT "registeredAddress" #define SERVER "postalAddress" #define RES "title" #define DISPLAY "street" #define STATUS "st" #define STARTTIME "telephoneNumber" #define CREATTIME "telexNumber" #define SUSPTIME "internationaliSDNNumber" #define SESSIONCMD "o" #define FIRSTUID "ou" #define LASTUID "l" #define SNDSUPPORT "sn" #define NETSOUNDSYSTEM "o" #define SNDSUPPORT "sn" #define SNDPORT "ou" #define STARTSNDSERVER "title" #include #include "SVGFrame.h" #include "configdialog.h" #include "editconnectiondialog.h" #include "sessionbutton.h" #include "sessionmanagedialog.h" #include "x2gologdebug.h" #include #ifdef Q_OS_WIN #include "wapi.h" #include #endif #ifdef Q_OS_LINUX #include #include #include #endif #ifdef CFGPLUGIN #ifdef Q_OS_LINUX #include #include #endif #endif #endif //ONMAINWINDOWPRIVAT_H x2goclient-4.0.1.1/pkg-dmg0000755000000000000000000014426412214040350012075 0ustar #!/usr/bin/perl # ***** BEGIN LICENSE BLOCK ***** # Version: MPL 1.1/GPL 2.0/LGPL 2.1 # # The contents of this file are subject to the Mozilla Public License Version # 1.1 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # http://www.mozilla.org/MPL/ # # Software distributed under the License is distributed on an "AS IS" basis, # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License # for the specific language governing rights and limitations under the # License. # # The Original Code is pkg-dmg, a Mac OS X disk image (.dmg) packager # # The Initial Developer of the Original Code is # Mark Mentovai . # Portions created by the Initial Developer are Copyright (C) 2005 # the Initial Developer. All Rights Reserved. # # Contributor(s): # # Alternatively, the contents of this file may be used under the terms of # either the GNU General Public License Version 2 or later (the "GPL"), or # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), # in which case the provisions of the GPL or the LGPL are applicable instead # of those above. If you wish to allow use of your version of this file only # under the terms of either the GPL or the LGPL, and not to allow others to # use your version of this file under the terms of the MPL, indicate your # decision by deleting the provisions above and replace them with the notice # and other provisions required by the GPL or the LGPL. If you do not delete # the provisions above, a recipient may use your version of this file under # the terms of any one of the MPL, the GPL or the LGPL. # # ***** END LICENSE BLOCK ***** use strict; use warnings; =pod =head1 NAME B - Mac OS X disk image (.dmg) packager =head1 SYNOPSIS B B<--source> I B<--target> I [B<--format> I] [B<--volname> I] [B<--tempdir> I] [B<--mkdir> I] [B<--copy> I[:I]] [B<--symlink> I[:I]] [B<--license> I] [B<--resource> I] [B<--icon> I] [B<--attribute> I:I[:I...] [B<--idme>] [B<--sourcefile>] [B<--verbosity> I] [B<--dry-run>] =head1 DESCRIPTION I takes a directory identified by I and transforms it into a disk image stored as I. The disk image will occupy the least space possible for its format, or the least space that the authors have been able to figure out how to achieve. =head1 OPTIONS =over 5 ==item B<--source> I Identifies the directory that will be packaged up. This directory is not touched, a copy will be made in a temporary directory for staging purposes. See B<--tempdir>. ==item B<--target> I The disk image to create. If it exists and is not in use, it will be overwritten. If I already contains a suitable extension, it will be used unmodified. If no extension is present, or the extension is incorrect for the selected format, the proper extension will be added. See B<--format>. ==item B<--format> I The format to create the disk image in. Valid values for I are: - UDZO - zlib-compressed, read-only; extension I<.dmg> - UDBZ - bzip2-compressed, read-only; extension I<.dmg>; create and use on 10.4 ("Tiger") and later only - UDRO - uncompressed, read-only; extension I<.dmg> - UDRW - uncompressed, read-write; extension I<.dmg> - UDSP - uncompressed, read-write, sparse; extension I<.sparseimage> UDZO is the default format. See L for a description of these formats. =item B<--volname> I The name of the volume in the disk image. If not specified, I defaults to the name of the source directory from B<--source>. =item B<--tempdir> I A temporary directory to stage intermediate files in. I must have enough space available to accommodate twice the size of the files being packaged. If not specified, defaults to the same directory that the I is to be placed in. B will remove any temporary files it places in I. =item B<--mkdir> I Specifies a directory that should be created in the disk image. I and any ancestor directories will be created. This is useful in conjunction with B<--copy>, when copying files to directories that may not exist in I. B<--mkdir> may appear multiple times. =item B<--copy> I[:I] Additional files to copy into the disk image. If I is specified, I is copied to the location I identifies, otherwise, I is copied to the root of the new volume. B<--copy> provides a way to package up a I by adding files to it without modifying the original I. B<--copy> may appear multiple times. This option is useful for adding .DS_Store files and window backgrounds to disk images. =item B<--symlink> I[:I] Like B<--copy>, but allows symlinks to point out of the volume. Empty symlink destinations are interpreted as "like the source path, but inside the dmg" This option is useful for adding symlinks to external resources, e.g. to /Applications. =item B<--license> I A plain text file containing a license agreement to be displayed before the disk image is mounted. English is the only supported language. To include license agreements in other languages, in multiple languages, or to use formatted text, prepare a resource and use L<--resource>. =item B<--resource> I A resource file to merge into I. If I is UDZO, UDBZ, or UDRO, the disk image will be flattened to a single-fork file that contains the resource but may be freely transferred without any special encodings. I must be in a format suitable for L. See L for a description of the format, and L for a discussion on flattened disk images. B<--resource> may appear multiple times. This option is useful for adding license agreements and other messages to disk images. =item B<--icon> I Specifies an I file that will be used as the icon for the root of the volume. This file will be copied to the new volume and the custom icon attribute will be set on the root folder. =item B<--attribute> I:I[:I...] Sets the attributes of I to the attribute list in I. See L =item B<--idme> Enable IDME to make the disk image "Internet-enabled." The first time the image is mounted, if IDME processing is enabled on the system, the contents of the image will be copied out of the image and the image will be placed in the trash with IDME disabled. =item B<--sourcefile> If this option is present, I is treated as a file, and is placed as a file within the volume's root folder. Without this option, I is treated as the volume root itself. =item B<--verbosity> I Adjusts the level of loudness of B. The possible values for I are: 0 - Only error messages are displayed. 1 - Print error messages and command invocations. 2 - Print everything, including command output. The default I is 2. =item B<--dry-run> When specified, the commands that would be executed are printed, without actually executing them. When commands depend on the output of previous commands, dummy values are displayed. =back =head1 NON-OPTIONS =over 5 =item Resource forks aren't copied. =item The root folder of the created volume is designated as the folder to open when the volume is mounted. See L. =item All files in the volume are set to be world-readable, only writable by the owner, and world-executable when appropriate. All other permissions bits are cleared. =item When possible, disk images are created without any partition tables. This is what L refers to as I<-layout NONE>, and saves a handful of kilobytes. The alternative, I, contains a partition table that is not terribly handy on disk images that are not intended to represent any physical disk. =item Read-write images are created with journaling off. Any read-write image created by this tool is expected to be transient, and the goal of this tool is to create images which consume a minimum of space. =back =head1 EXAMPLE pkg-dmg --source /Applications/DeerPark.app --target ~/DeerPark.dmg --sourcefile --volname DeerPark --icon ~/DeerPark.icns --mkdir /.background --copy DeerParkBackground.png:/.background/background.png --copy DeerParkDSStore:/.DS_Store --symlink /Applications:"/Drag to here" =head1 REQUIREMENTS I has been tested with Mac OS X releases 10.2 ("Jaguar") through 10.4 ("Tiger"). Certain adjustments to behavior are made depending on the host system's release. Mac OS X 10.3 ("Panther") or later are recommended. =head1 LICENSE MPL 1.1/GPL 2.0/LGPL 2.1. Your choice. =head1 AUTHOR Mark Mentovai =head1 SEE ALSO L, L, L, L, L, L, L =cut use Fcntl; use POSIX; use Getopt::Long; sub argumentEscape(@); sub cleanupDie($); sub command(@); sub commandInternal($@); sub commandInternalVerbosity($$@); sub commandOutput(@); sub commandOutputVerbosity($@); sub commandVerbosity($@); sub copyFiles($@); sub diskImageMaker($$$$$$$$); sub giveExtension($$); sub hdidMountImage($@); sub isFormatReadOnly($); sub licenseMaker($$); sub pathSplit($); sub setAttributes($@); sub trapSignal($); sub usage(); # Variables used as globals my(@gCleanup, %gConfig, $gDarwinMajor, $gDryRun, $gVerbosity); # Use the commands by name if they're expected to be in the user's # $PATH (/bin:/sbin:/usr/bin:/usr/sbin). Otherwise, go by absolute # path. These may be overridden with --config. %gConfig = ('cmd_bless' => 'bless', 'cmd_chmod' => 'chmod', 'cmd_diskutil' => 'diskutil', 'cmd_du' => 'du', 'cmd_hdid' => 'hdid', 'cmd_hdiutil' => 'hdiutil', 'cmd_mkdir' => 'mkdir', 'cmd_mktemp' => 'mktemp', 'cmd_Rez' => '/usr/bin/Rez', 'cmd_rm' => 'rm', 'cmd_rsync' => 'rsync', 'cmd_SetFile' => '/usr/bin/SetFile', # create_directly indicates whether hdiutil create supports # -srcfolder and -srcdevice. It does on >= 10.3 (Panther). # This is fixed up for earlier systems below. If false, # hdiutil create is used to create empty disk images that # are manually filled. 'create_directly' => 1, # If hdiutil attach -mountpoint exists, use it to avoid # mounting disk images in the default /Volumes. This reduces # the likelihood that someone will notice a mounted image and # interfere with it. Only available on >= 10.3 (Panther), # fixed up for earlier systems below. # # This is presently turned off for all systems, because there # is an infrequent synchronization problem during ejection. # diskutil eject might return before the image is actually # unmounted. If pkg-dmg then attempts to clean up its # temporary directory, it could remove items from a read-write # disk image or attempt to remove items from a read-only disk # image (or a read-only item from a read-write image) and fail, # causing pkg-dmg to abort. This problem is experienced # under Tiger, which appears to eject asynchronously where # previous systems treated it as a synchronous operation. # Using hdiutil attach -mountpoint didn't always keep images # from showing up on the desktop anyway. 'hdiutil_mountpoint' => 0, # hdiutil makehybrid results in optimized disk images that # consume less space and mount more quickly. Use it when # it's available, but that's only on >= 10.3 (Panther). # If false, hdiutil create is used instead. Fixed up for # earlier systems below. 'makehybrid' => 1, # hdiutil create doesn't allow specifying a folder to open # at volume mount time, so those images are mounted and # their root folders made holy with bless -openfolder. But # only on >= 10.3 (Panther). Earlier systems are out of luck. # Even on Panther, bless refuses to run unless root. # Fixed up below. 'openfolder_bless' => 1, # It's possible to save a few more kilobytes by including the # partition only without any partition table in the image. # This is a good idea on any system, so turn this option off. # # Except it's buggy. "-layout NONE" seems to be creating # disk images with more data than just the partition table # stripped out. You might wind up losing the end of the # filesystem - the last file (or several) might be incomplete. 'partition_table' => 1, # To create a partition table-less image from something # created by makehybrid, the hybrid image needs to be # mounted and a new image made from the device associated # with the relevant partition. This requires >= 10.4 # (Tiger), presumably because earlier systems have # problems creating images from devices themselves attached # to images. If this is false, makehybrid images will # have partition tables, regardless of the partition_table # setting. Fixed up for earlier systems below. 'recursive_access' => 1); # --verbosity $gVerbosity = 2; # --dry-run $gDryRun = 0; # %gConfig fix-ups based on features and bugs present in certain releases. my($ignore, $uname_r, $uname_s); ($uname_s, $ignore, $uname_r, $ignore, $ignore) = POSIX::uname(); if($uname_s eq 'Darwin') { ($gDarwinMajor, $ignore) = split(/\./, $uname_r, 2); # $major is the Darwin major release, which for our purposes, is 4 higher # than the interesting digit in a Mac OS X release. if($gDarwinMajor <= 6) { # <= 10.2 (Jaguar) # hdiutil create does not support -srcfolder or -srcdevice $gConfig{'create_directly'} = 0; # hdiutil attach does not support -mountpoint $gConfig{'hdiutil_mountpoint'} = 0; # hdiutil mkhybrid does not exist $gConfig{'makehybrid'} = 0; } if($gDarwinMajor <= 7) { # <= 10.3 (Panther) # Can't mount a disk image and then make a disk image from the device $gConfig{'recursive_access'} = 0; # bless does not support -openfolder on 10.2 (Jaguar) and must run # as root under 10.3 (Panther) $gConfig{'openfolder_bless'} = 0; } } else { # If it's not Mac OS X, just assume all of those good features are # available. They're not, but things will fail long before they # have a chance to make a difference. # # Now, if someone wanted to document some of these private formats... print STDERR ($0.": warning, not running on Mac OS X, ". "this could be interesting.\n"); } # Non-global variables used in Getopt my(@attributes, @copyFiles, @createSymlinks, $iconFile, $idme, $licenseFile, @makeDirs, $outputFormat, @resourceFiles, $sourceFile, $sourceFolder, $targetImage, $tempDir, $volumeName); # --format $outputFormat = 'UDZO'; # --idme $idme = 0; # --sourcefile $sourceFile = 0; # Leaving this might screw up the Apple tools. delete $ENV{'NEXT_ROOT'}; # This script can get pretty messy, so trap a few signals. $SIG{'INT'} = \&trapSignal; $SIG{'HUP'} = \&trapSignal; $SIG{'TERM'} = \&trapSignal; Getopt::Long::Configure('pass_through'); GetOptions('source=s' => \$sourceFolder, 'target=s' => \$targetImage, 'volname=s' => \$volumeName, 'format=s' => \$outputFormat, 'tempdir=s' => \$tempDir, 'mkdir=s' => \@makeDirs, 'copy=s' => \@copyFiles, 'symlink=s' => \@createSymlinks, 'license=s' => \$licenseFile, 'resource=s' => \@resourceFiles, 'icon=s' => \$iconFile, 'attribute=s' => \@attributes, 'idme' => \$idme, 'sourcefile' => \$sourceFile, 'verbosity=i' => \$gVerbosity, 'dry-run' => \$gDryRun, 'config=s' => \%gConfig); # "hidden" option not in usage() if(@ARGV) { # All arguments are parsed by Getopt usage(); exit(1); } if($gVerbosity<0 || $gVerbosity>2) { usage(); exit(1); } if(!defined($sourceFolder) || $sourceFolder eq '' || !defined($targetImage) || $targetImage eq '') { # --source and --target are required arguments usage(); exit(1); } # Make sure $sourceFolder doesn't contain trailing slashes. It messes with # rsync. while(substr($sourceFolder, -1) eq '/') { chop($sourceFolder); } if(!defined($volumeName)) { # Default volumeName is the name of the source directory. my(@components); @components = pathSplit($sourceFolder); $volumeName = pop(@components); } my(@tempDirComponents, $targetImageFilename); @tempDirComponents = pathSplit($targetImage); $targetImageFilename = pop(@tempDirComponents); if(defined($tempDir)) { @tempDirComponents = pathSplit($tempDir); } else { # Default tempDir is the same directory as what is specified for # targetImage $tempDir = join('/', @tempDirComponents); } # Ensure that the path of the target image has a suitable extension. If # it didn't, hdiutil would add one, and we wouldn't be able to find the # file. # # Note that $targetImageFilename is not being reset. This is because it's # used to build other names below, and we don't need to be adding all sorts # of extra unnecessary extensions to the name. my($originalTargetImage, $requiredExtension); $originalTargetImage = $targetImage; if($outputFormat eq 'UDSP') { $requiredExtension = '.sparseimage'; } else { $requiredExtension = '.dmg'; } $targetImage = giveExtension($originalTargetImage, $requiredExtension); if($targetImage ne $originalTargetImage) { print STDERR ($0.": warning: target image extension is being added\n"); print STDERR (' The new filename is '. giveExtension($targetImageFilename,$requiredExtension)."\n"); } # Make a temporary directory in $tempDir for our own nefarious purposes. my(@output, $tempSubdir, $tempSubdirTemplate); $tempSubdirTemplate=join('/', @tempDirComponents, 'pkg-dmg.'.$$.'.XXXXXXXX'); if(!(@output = commandOutput($gConfig{'cmd_mktemp'}, '-d', $tempSubdirTemplate)) || $#output != 0) { cleanupDie('mktemp failed'); } if($gDryRun) { (@output)=($tempSubdirTemplate); } ($tempSubdir) = @output; push(@gCleanup, sub {commandVerbosity(0, $gConfig{'cmd_rm'}, '-rf', $tempSubdir);}); my($tempMount, $tempRoot, @tempsToMake); $tempRoot = $tempSubdir.'/stage'; $tempMount = $tempSubdir.'/mount'; push(@tempsToMake, $tempRoot); if($gConfig{'hdiutil_mountpoint'}) { push(@tempsToMake, $tempMount); } if(command($gConfig{'cmd_mkdir'}, @tempsToMake) != 0) { cleanupDie('mkdir tempRoot/tempMount failed'); } # This cleanup object is not strictly necessary, because $tempRoot is inside # of $tempSubdir, but the rest of the script relies on this object being # on the cleanup stack and expects to remove it. push(@gCleanup, sub {commandVerbosity(0, $gConfig{'cmd_rm'}, '-rf', $tempRoot);}); # If $sourceFile is true, it means that $sourceFolder is to be treated as # a file and placed as a file within the volume root, as opposed to being # treated as the volume root itself. rsync will do this by default, if no # trailing '/' is present. With a trailing '/', $sourceFolder becomes # $tempRoot, instead of becoming an entry in $tempRoot. if(command($gConfig{'cmd_rsync'}, '-aC', '--include', '*.so', '--copy-unsafe-links', $sourceFolder.($sourceFile?'':'/'),$tempRoot) != 0) { cleanupDie('rsync failed'); } if(@makeDirs) { my($makeDir, @tempDirsToMake); foreach $makeDir (@makeDirs) { if($makeDir =~ /^\//) { push(@tempDirsToMake, $tempRoot.$makeDir); } else { push(@tempDirsToMake, $tempRoot.'/'.$makeDir); } } if(command($gConfig{'cmd_mkdir'}, '-p', @tempDirsToMake) != 0) { cleanupDie('mkdir failed'); } } # copy files and/or create symlinks copyFiles($tempRoot, 'copy', @copyFiles); copyFiles($tempRoot, 'symlink', @createSymlinks); if($gConfig{'create_directly'}) { # If create_directly is false, the contents will be rsynced into a # disk image and they would lose their attributes. setAttributes($tempRoot, @attributes); } if(defined($iconFile)) { if(command($gConfig{'cmd_rsync'}, '-aC', '--include', '*.so', '--copy-unsafe-links', $iconFile, $tempRoot.'/.VolumeIcon.icns') != 0) { cleanupDie('rsync failed for volume icon'); } # It's pointless to set the attributes of the root when diskutil create # -srcfolder is being used. In that case, the attributes will be set # later, after the image is already created. if(isFormatReadOnly($outputFormat) && (command($gConfig{'cmd_SetFile'}, '-a', 'C', $tempRoot) != 0)) { cleanupDie('SetFile failed'); } } if(command($gConfig{'cmd_chmod'}, '-R', 'a+rX,a-st,u+w,go-w', $tempRoot) != 0) { cleanupDie('chmod failed'); } my($unflattenable); if(isFormatReadOnly($outputFormat)) { $unflattenable = 1; } else { $unflattenable = 0; } diskImageMaker($tempRoot, $targetImage, $outputFormat, $volumeName, $tempSubdir, $tempMount, $targetImageFilename, defined($iconFile)); if(defined($licenseFile) && $licenseFile ne '') { my($licenseResource); $licenseResource = $tempSubdir.'/license.r'; if(!licenseMaker($licenseFile, $licenseResource)) { cleanupDie('licenseMaker failed'); } push(@resourceFiles, $licenseResource); # Don't add a cleanup object because licenseResource is in tempSubdir. } if(@resourceFiles) { # Add resources, such as a license agreement. # Only unflatten read-only and compressed images. It's not supported # on other image times. if($unflattenable && (command($gConfig{'cmd_hdiutil'}, 'unflatten', $targetImage)) != 0) { cleanupDie('hdiutil unflatten failed'); } # Don't push flatten onto the cleanup stack. If we fail now, we'll be # removing $targetImage anyway. # Type definitions come from Carbon.r. if(command($gConfig{'cmd_Rez'}, 'Carbon.r', @resourceFiles, '-a', '-o', $targetImage) != 0) { cleanupDie('Rez failed'); } # Flatten. This merges the resource fork into the data fork, so no # special encoding is needed to transfer the file. if($unflattenable && (command($gConfig{'cmd_hdiutil'}, 'flatten', $targetImage)) != 0) { cleanupDie('hdiutil flatten failed'); } } # $tempSubdir is no longer needed. It's buried on the stack below the # rm of the fresh image file. Splice in this fashion is equivalent to # pop-save, pop, push-save. splice(@gCleanup, -2, 1); # No need to remove licenseResource separately, it's in tempSubdir. if(command($gConfig{'cmd_rm'}, '-rf', $tempSubdir) != 0) { cleanupDie('rm -rf tempSubdir failed'); } if($idme) { if(command($gConfig{'cmd_hdiutil'}, 'internet-enable', '-yes', $targetImage) != 0) { cleanupDie('hdiutil internet-enable failed'); } } # Done. exit(0); # argumentEscape(@arguments) # # Takes a list of @arguments and makes them shell-safe. sub argumentEscape(@) { my(@arguments); @arguments = @_; my($argument, @argumentsOut); foreach $argument (@arguments) { $argument =~ s%([^A-Za-z0-9_\-/.=+,])%\\$1%g; push(@argumentsOut, $argument); } return @argumentsOut; } # cleanupDie($message) # # Displays $message as an error message, and then runs through the # @gCleanup stack, performing any cleanup operations needed before # exiting. Does not return, exits with exit status 1. sub cleanupDie($) { my($message); ($message) = @_; print STDERR ($0.': '.$message.(@gCleanup?' (cleaning up)':'')."\n"); while(@gCleanup) { my($subroutine); $subroutine = pop(@gCleanup); &$subroutine; } exit(1); } # command(@arguments) # # Runs the specified command at the verbosity level defined by $gVerbosity. # Returns nonzero on failure, returning the exit status if appropriate. # Discards command output. sub command(@) { my(@arguments); @arguments = @_; return commandVerbosity($gVerbosity,@arguments); } # commandInternal($command, @arguments) # # Runs the specified internal command at the verbosity level defined by # $gVerbosity. # Returns zero(!) on failure, because commandInternal is supposed to be a # direct replacement for the Perl system call wrappers, which, unlike shell # commands and C equivalent system calls, return true (instead of 0) to # indicate success. sub commandInternal($@) { my(@arguments, $command); ($command, @arguments) = @_; return commandInternalVerbosity($gVerbosity, $command, @arguments); } # commandInternalVerbosity($verbosity, $command, @arguments) # # Run an internal command, printing a bogus command invocation message if # $verbosity is true. # # If $command is unlink: # Removes the files specified by @arguments. Wraps unlink. # # If $command is symlink: # Creates the symlink specified by @arguments. Wraps symlink. sub commandInternalVerbosity($$@) { my(@arguments, $command, $verbosity); ($verbosity, $command, @arguments) = @_; if($command eq 'unlink') { if($verbosity || $gDryRun) { print(join(' ', 'rm', '-f', argumentEscape(@arguments))."\n"); } if($gDryRun) { return $#arguments+1; } return unlink(@arguments); } elsif($command eq 'symlink') { if($verbosity || $gDryRun) { print(join(' ', 'ln', '-s', argumentEscape(@arguments))."\n"); } if($gDryRun) { return 1; } my($source, $target); ($source, $target) = @arguments; return symlink($source, $target); } } # commandOutput(@arguments) # # Runs the specified command at the verbosity level defined by $gVerbosity. # Output is returned in an array of lines. undef is returned on failure. # The exit status is available in $?. sub commandOutput(@) { my(@arguments); @arguments = @_; return commandOutputVerbosity($gVerbosity, @arguments); } # commandOutputVerbosity($verbosity, @arguments) # # Runs the specified command at the verbosity level defined by the # $verbosity argument. Output is returned in an array of lines. undef is # returned on failure. The exit status is available in $?. # # If an error occurs in fork or exec, an error message is printed to # stderr and undef is returned. # # If $verbosity is 0, the command invocation is not printed, and its # stdout is not echoed back to stdout. # # If $verbosity is 1, the command invocation is printed. # # If $verbosity is 2, the command invocation is printed and the output # from stdout is echoed back to stdout. # # Regardless of $verbosity, stderr is left connected. sub commandOutputVerbosity($@) { my(@arguments, $verbosity); ($verbosity, @arguments) = @_; my($pid); if($verbosity || $gDryRun) { print(join(' ', argumentEscape(@arguments))."\n"); } if($gDryRun) { return(1); } if (!defined($pid = open(*COMMAND, '-|'))) { printf STDERR ($0.': fork: '.$!."\n"); return undef; } elsif ($pid) { # parent my(@lines); while(!eof(*COMMAND)) { my($line); chop($line = ); if($verbosity > 1) { print($line."\n"); } push(@lines, $line); } close(*COMMAND); if ($? == -1) { printf STDERR ($0.': fork: '.$!."\n"); return undef; } elsif ($? & 127) { printf STDERR ($0.': exited on signal '.($? & 127). ($? & 128 ? ', core dumped' : '')."\n"); return undef; } return @lines; } else { # child; this form of exec is immune to shell games if(!exec {$arguments[0]} (@arguments)) { printf STDERR ($0.': exec: '.$!."\n"); exit(-1); } } } # commandVerbosity($verbosity, @arguments) # # Runs the specified command at the verbosity level defined by the # $verbosity argument. Returns nonzero on failure, returning the exit # status if appropriate. Discards command output. sub commandVerbosity($@) { my(@arguments, $verbosity); ($verbosity, @arguments) = @_; if(!defined(commandOutputVerbosity($verbosity, @arguments))) { return -1; } return $?; } # copyFiles($tempRoot, $method, @arguments) # # Copies files or create symlinks in the disk image. # See --copy and --symlink descriptions for details. # If $method is 'copy', @arguments are interpreted as source:target, if $method # is 'symlink', @arguments are interpreted as symlink:target. sub copyFiles($@) { my(@fileList, $method, $tempRoot); ($tempRoot, $method, @fileList) = @_; my($file, $isSymlink); $isSymlink = ($method eq 'symlink'); foreach $file (@fileList) { my($source, $target); ($source, $target) = split(/:/, $file); if(!defined($target) and $isSymlink) { # empty symlink targets would result in an invalid target and fail, # but they shall be interpreted as "like source path, but inside dmg" $target = $source; } if(!defined($target)) { $target = $tempRoot; } elsif($target =~ /^\//) { $target = $tempRoot.$target; } else { $target = $tempRoot.'/'.$target; } my($success); if($isSymlink) { $success = commandInternal('symlink', $source, $target); } else { $success = !command($gConfig{'cmd_rsync'}, '-aC', '--include', '*.so', '--copy-unsafe-links', $source, $target); } if(!$success) { cleanupDie('copyFiles failed for method '.$method); } } } # diskImageMaker($source, $destination, $format, $name, $tempDir, $tempMount, # $baseName, $setRootIcon) # # Creates a disk image in $destination of format $format corresponding to the # source directory $source. $name is the volume name. $tempDir is a good # place to write temporary files, which should be empty (aside from the other # things that this script might create there, like stage and mount). # $tempMount is a mount point for temporary disk images. $baseName is the # name of the disk image, and is presently unused. $setRootIcon is true if # a volume icon was added to the staged $source and indicates that the # custom volume icon bit on the volume root needs to be set. sub diskImageMaker($$$$$$$$) { my($baseName, $destination, $format, $name, $setRootIcon, $source, $tempDir, $tempMount); ($source, $destination, $format, $name, $tempDir, $tempMount, $baseName, $setRootIcon) = @_; if(isFormatReadOnly($format)) { my($uncompressedImage); if($gConfig{'makehybrid'}) { my($hybridImage); $hybridImage = giveExtension($tempDir.'/hybrid', '.dmg'); if(command($gConfig{'cmd_hdiutil'}, 'makehybrid', '-hfs', '-hfs-volume-name', $name, ($gConfig{'openfolder_bless'} ? ('-hfs-openfolder', $source) : ()), '-ov', $source, '-o', $hybridImage) != 0) { cleanupDie('hdiutil makehybrid failed'); } $uncompressedImage = $hybridImage; # $source is no longer needed and will be removed before anything # else can fail. splice in this form is the same as pop/push. splice(@gCleanup, -1, 1, sub {commandInternalVerbosity(0, 'unlink', $hybridImage);}); if(command($gConfig{'cmd_rm'}, '-rf', $source) != 0) { cleanupDie('rm -rf failed'); } if(!$gConfig{'partition_table'} && $gConfig{'recursive_access'}) { # Even if we do want to create disk images without partition tables, # it's impossible unless recursive_access is set. my($rootDevice, $partitionDevice, $partitionMountPoint); if(!(($rootDevice, $partitionDevice, $partitionMountPoint) = hdidMountImage($tempMount, '-readonly', $hybridImage))) { cleanupDie('hdid mount failed'); } push(@gCleanup, sub {commandVerbosity(0, $gConfig{'cmd_diskutil'}, 'eject', $rootDevice);}); my($udrwImage); $udrwImage = giveExtension($tempDir.'/udrw', '.dmg'); if(command($gConfig{'cmd_hdiutil'}, 'create', '-format', 'UDRW', '-ov', '-srcdevice', $partitionDevice, $udrwImage) != 0) { cleanupDie('hdiutil create failed'); } $uncompressedImage = $udrwImage; # Going to eject before anything else can fail. Get the eject off # the stack. pop(@gCleanup); # $hybridImage will be removed soon, but until then, it needs to # stay on the cleanup stack. It needs to wait until after # ejection. $udrwImage is staying around. Make it appear as # though it's been done before $hybridImage. # # splice in this form is the same as popping one element to # @tempCleanup and pushing the subroutine. my(@tempCleanup); @tempCleanup = splice(@gCleanup, -1, 1, sub {commandInternalVerbosity(0, 'unlink', $udrwImage);}); push(@gCleanup, @tempCleanup); if(command($gConfig{'cmd_diskutil'}, 'eject', $rootDevice) != 0) { cleanupDie('diskutil eject failed'); } # Pop unlink of $uncompressedImage pop(@gCleanup); if(commandInternal('unlink', $hybridImage) != 1) { cleanupDie('unlink hybridImage failed: '.$!); } } } else { # makehybrid is not available, fall back to making a UDRW and # converting to a compressed image. It ought to be possible to # create a compressed image directly, but those come out far too # large (journaling?) and need to be read-write to fix up the # volume icon anyway. Luckily, we can take advantage of a single # call back into this function. my($udrwImage); $udrwImage = giveExtension($tempDir.'/udrw', '.dmg'); diskImageMaker($source, $udrwImage, 'UDRW', $name, $tempDir, $tempMount, $baseName, $setRootIcon); # The call back into diskImageMaker already removed $source. $uncompressedImage = $udrwImage; } # The uncompressed disk image is now in its final form. Compress it. # Jaguar doesn't support hdiutil convert -ov, but it always allows # overwriting. # bzip2-compressed UDBZ images can only be created and mounted on 10.4 # and later. The bzip2-level imagekey is only effective when creating # images in 10.5. In 10.4, bzip2-level is harmlessly ignored, and the # default value of 1 is always used. if(command($gConfig{'cmd_hdiutil'}, 'convert', '-format', $format, ($format eq 'UDZO' ? ('-imagekey', 'zlib-level=9') : ()), ($format eq 'UDBZ' ? ('-imagekey', 'bzip2-level=9') : ()), (defined($gDarwinMajor) && $gDarwinMajor <= 6 ? () : ('-ov')), $uncompressedImage, '-o', $destination) != 0) { cleanupDie('hdiutil convert failed'); } # $uncompressedImage is going to be unlinked before anything else can # fail. splice in this form is the same as pop/push. splice(@gCleanup, -1, 1, sub {commandInternalVerbosity(0, 'unlink', $destination);}); if(commandInternal('unlink', $uncompressedImage) != 1) { cleanupDie('unlink uncompressedImage failed: '.$!); } # At this point, the only thing that the compressed block has added to # the cleanup stack is the removal of $destination. $source has already # been removed, and its cleanup entry has been removed as well. } elsif($format eq 'UDRW' || $format eq 'UDSP') { my(@extraArguments); if(!$gConfig{'partition_table'}) { @extraArguments = ('-layout', 'NONE'); } if($gConfig{'create_directly'}) { # Use -fs HFS+ to suppress the journal. if(command($gConfig{'cmd_hdiutil'}, 'create', '-format', $format, @extraArguments, '-fs', 'HFS+', '-volname', $name, '-ov', '-srcfolder', $source, $destination) != 0) { cleanupDie('hdiutil create failed'); } # $source is no longer needed and will be removed before anything # else can fail. splice in this form is the same as pop/push. splice(@gCleanup, -1, 1, sub {commandInternalVerbosity(0, 'unlink', $destination);}); if(command($gConfig{'cmd_rm'}, '-rf', $source) != 0) { cleanupDie('rm -rf failed'); } } else { # hdiutil create does not support -srcfolder or -srcdevice, it only # knows how to create blank images. Figure out how large an image # is needed, create it, and fill it. This is needed for Jaguar. # Use native block size for hdiutil create -sectors. delete $ENV{'BLOCKSIZE'}; my(@duOutput, $ignore, $sizeBlocks, $sizeOverhead, $sizeTotal, $type); if(!(@output = commandOutput($gConfig{'cmd_du'}, '-s', $tempRoot)) || $? != 0) { cleanupDie('du failed'); } ($sizeBlocks, $ignore) = split(' ', $output[0], 2); # The filesystem itself takes up 152 blocks of its own blocks for the # filesystem up to 8192 blocks, plus 64 blocks for every additional # 4096 blocks or portion thereof. $sizeOverhead = 152 + 64 * POSIX::ceil( (($sizeBlocks - 8192) > 0) ? (($sizeBlocks - 8192) / (4096 - 64)) : 0); # The number of blocks must be divisible by 8. my($mod); if($mod = ($sizeOverhead % 8)) { $sizeOverhead += 8 - $mod; } # sectors is taken as the size of a disk, not a filesystem, so the # partition table eats into it. if($gConfig{'partition_table'}) { $sizeOverhead += 80; } # That was hard. Leave some breathing room anyway. Use 1024 sectors # (512kB). These read-write images wouldn't be useful if they didn't # have at least a little free space. $sizeTotal = $sizeBlocks + $sizeOverhead + 1024; # Minimum sizes - these numbers are larger on Jaguar than on later # systems. Just use the Jaguar numbers, since it's unlikely to wind # up here on any other release. if($gConfig{'partition_table'} && $sizeTotal < 8272) { $sizeTotal = 8272; } if(!$gConfig{'partition_table'} && $sizeTotal < 8192) { $sizeTotal = 8192; } # hdiutil create without -srcfolder or -srcdevice will not accept # -format. It uses -type. Fortunately, the two supported formats # here map directly to the only two supported types. if ($format eq 'UDSP') { $type = 'SPARSE'; } else { $type = 'UDIF'; } if(command($gConfig{'cmd_hdiutil'}, 'create', '-type', $type, @extraArguments, '-fs', 'HFS+', '-volname', $name, '-ov', '-sectors', $sizeTotal, $destination) != 0) { cleanupDie('hdiutil create failed'); } push(@gCleanup, sub {commandInternalVerbosity(0, 'unlink', $destination);}); # The rsync will occur shortly. } my($mounted, $rootDevice, $partitionDevice, $partitionMountPoint); $mounted=0; if(!$gConfig{'create_directly'} || $gConfig{'openfolder_bless'} || $setRootIcon) { # The disk image only needs to be mounted if: # create_directly is false, because the content needs to be copied # openfolder_bless is true, because bless -openfolder needs to run # setRootIcon is true, because the root needs its attributes set. if(!(($rootDevice, $partitionDevice, $partitionMountPoint) = hdidMountImage($tempMount, $destination))) { cleanupDie('hdid mount failed'); } $mounted=1; push(@gCleanup, sub {commandVerbosity(0, $gConfig{'cmd_diskutil'}, 'eject', $rootDevice);}); } if(!$gConfig{'create_directly'}) { # Couldn't create and copy directly in one fell swoop. Now that # the volume is mounted, copy the files. --copy-unsafe-links is # unnecessary since it was used to copy everything to the staging # area. There can be no more unsafe links. if(command($gConfig{'cmd_rsync'}, '-aC', '--include', '*.so', $source.'/',$partitionMountPoint) != 0) { cleanupDie('rsync to new volume failed'); } # We need to get the rm -rf of $source off the stack, because it's # being cleaned up here. There are two items now on top of it: # removing the target image and, above that, ejecting it. Splice it # out. my(@tempCleanup); @tempCleanup = splice(@gCleanup, -2); # The next splice is the same as popping once and pushing @tempCleanup. splice(@gCleanup, -1, 1, @tempCleanup); if(command($gConfig{'cmd_rm'}, '-rf', $source) != 0) { cleanupDie('rm -rf failed'); } } if($gConfig{'openfolder_bless'}) { # On Tiger, the bless docs say to use --openfolder, but only # --openfolder is accepted on Panther. Tiger takes it with a single # dash too. Jaguar is out of luck. if(command($gConfig{'cmd_bless'}, '-openfolder', $partitionMountPoint) != 0) { cleanupDie('bless failed'); } } setAttributes($partitionMountPoint, @attributes); if($setRootIcon) { # When "hdiutil create -srcfolder" is used, the root folder's # attributes are not copied to the new volume. Fix up. if(command($gConfig{'cmd_SetFile'}, '-a', 'C', $partitionMountPoint) != 0) { cleanupDie('SetFile failed'); } } if($mounted) { # Pop diskutil eject pop(@gCleanup); if(command($gConfig{'cmd_diskutil'}, 'eject', $rootDevice) != 0) { cleanupDie('diskutil eject failed'); } } # End of UDRW/UDSP section. At this point, $source has been removed # and its cleanup entry has been removed from the stack. } else { cleanupDie('unrecognized format'); print STDERR ($0.": unrecognized format\n"); exit(1); } } # giveExtension($file, $extension) # # If $file does not end in $extension, $extension is added. The new # filename is returned. sub giveExtension($$) { my($extension, $file); ($file, $extension) = @_; if(substr($file, -length($extension)) ne $extension) { return $file.$extension; } return $file; } # hdidMountImage($mountPoint, @arguments) # # Runs the hdid command with arguments specified by @arguments. # @arguments may be a single-element array containing the name of the # disk image to mount. Returns a three-element array, with elements # corresponding to: # - The root device of the mounted image, suitable for ejection # - The device corresponding to the mounted partition # - The mounted partition's mount point # # If running on a system that supports easy mounting at points outside # of the default /Volumes with hdiutil attach, it is used instead of hdid, # and $mountPoint is used as the mount point. # # The root device will differ from the partition device when the disk # image contains a partition table, otherwise, they will be identical. # # If hdid fails, undef is returned. sub hdidMountImage($@) { my(@arguments, @command, $mountPoint); ($mountPoint, @arguments) = @_; my(@output); if($gConfig{'hdiutil_mountpoint'}) { @command=($gConfig{'cmd_hdiutil'}, 'attach', @arguments, '-mountpoint', $mountPoint); } else { @command=($gConfig{'cmd_hdid'}, @arguments); } if(!(@output = commandOutput(@command)) || $? != 0) { return undef; } if($gDryRun) { return('/dev/diskX','/dev/diskXsY','/Volumes/'.$volumeName); } my($line, $restOfLine, $rootDevice); foreach $line (@output) { my($device, $mountpoint); if($line !~ /^\/dev\//) { # Consider only lines that correspond to /dev entries next; } ($device, $restOfLine) = split(' ', $line, 2); if(!defined($rootDevice) || $rootDevice eq '') { # If this is the first device seen, it's the root device to be # used for ejection. Keep it. $rootDevice = $device; } if($restOfLine =~ /(\/.*)/) { # The first partition with a mount point is the interesting one. It's # usually Apple_HFS and usually the last one in the list, but beware of # the possibility of other filesystem types and the Apple_Free partition. # If the disk image contains no partition table, the partition will not # have a type, so look for the mount point by looking for a slash. $mountpoint = $1; return($rootDevice, $device, $mountpoint); } } # No mount point? This is bad. If there's a root device, eject it. if(defined($rootDevice) && $rootDevice ne '') { # Failing anyway, so don't care about failure commandVerbosity(0, $gConfig{'cmd_diskutil'}, 'eject', $rootDevice); } return undef; } # isFormatReadOnly($format) # # Returns true if $format corresponds to a read-only disk image format. # Returns false otherwise. sub isFormatReadOnly($) { my($format); ($format) = @_; return $format eq 'UDZO' || $format eq 'UDBZ' || $format eq 'UDRO'; } # licenseMaker($text, $resource) # # Takes a plain text file at path $text and creates a license agreement # resource containing the text at path $license. English-only, and # no special formatting. This is the bare-bones stuff. For more # intricate license agreements, create your own resource. # # ftp://ftp.apple.com/developer/Development_Kits/SLAs_for_UDIFs_1.0.dmg sub licenseMaker($$) { my($resource, $text); ($text, $resource) = @_; if(!sysopen(*TEXT, $text, O_RDONLY)) { print STDERR ($0.': licenseMaker: sysopen text: '.$!."\n"); return 0; } if(!sysopen(*RESOURCE, $resource, O_WRONLY|O_CREAT|O_EXCL)) { print STDERR ($0.': licenseMaker: sysopen resource: '.$!."\n"); return 0; } print RESOURCE << '__EOT__'; // See /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Script.h for language IDs. data 'LPic' (5000) { // Default language ID, 0 = English $"0000" // Number of entries in list $"0001" // Entry 1 // Language ID, 0 = English $"0000" // Resource ID, 0 = STR#/TEXT/styl 5000 $"0000" // Multibyte language, 0 = no $"0000" }; resource 'STR#' (5000, "English") { { // Language (unused?) = English "English", // Agree "Agree", // Disagree "Disagree", __EOT__ # This stuff needs double-quotes for interpolations to work. print RESOURCE (" // Print, ellipsis is 0xC9\n"); print RESOURCE (" \"Print\xc9\",\n"); print RESOURCE (" // Save As, ellipsis is 0xC9\n"); print RESOURCE (" \"Save As\xc9\",\n"); print RESOURCE (' // Descriptive text, curly quotes are 0xD2 and 0xD3'. "\n"); print RESOURCE (' "If you agree to the terms of this license '. "agreement, click \xd2Agree\xd3 to access the software. If you ". "do not agree, press \xd2Disagree.\xd3\"\n"); print RESOURCE << '__EOT__'; }; }; // Beware of 1024(?) byte (character?) line length limitation. Split up long // lines. // If straight quotes are used ("), remember to escape them (\"). // Newline is \n, to leave a blank line, use two of them. // 0xD2 and 0xD3 are curly double-quotes ("), 0xD4 and 0xD5 are curly // single quotes ('), 0xD5 is also the apostrophe. data 'TEXT' (5000, "English") { __EOT__ while(!eof(*TEXT)) { my($line); chop($line = ); while(defined($line)) { my($chunk); # Rez doesn't care for lines longer than (1024?) characters. Split # at less than half of that limit, in case everything needs to be # backwhacked. if(length($line)>500) { $chunk = substr($line, 0, 500); $line = substr($line, 500); } else { $chunk = $line; $line = undef; } if(length($chunk) > 0) { # Unsafe characters are the double-quote (") and backslash (\), escape # them with backslashes. $chunk =~ s/(["\\])/\\$1/g; print RESOURCE ' "'.$chunk.'"'."\n"; } } print RESOURCE ' "\n"'."\n"; } close(*TEXT); print RESOURCE << '__EOT__'; }; data 'styl' (5000, "English") { // Number of styles following = 1 $"0001" // Style 1. This is used to display the first two lines in bold text. // Start character = 0 $"0000 0000" // Height = 16 $"0010" // Ascent = 12 $"000C" // Font family = 1024 (Lucida Grande) $"0400" // Style bitfield, 0x1=bold 0x2=italic 0x4=underline 0x8=outline // 0x10=shadow 0x20=condensed 0x40=extended $"00" // Style, unused? $"02" // Size = 12 point $"000C" // Color, RGB $"0000 0000 0000" }; __EOT__ close(*RESOURCE); return 1; } # pathSplit($pathname) # # Splits $pathname into an array of path components. sub pathSplit($) { my($pathname); ($pathname) = @_; return split(/\//, $pathname); } # setAttributes($root, @attributeList) # # @attributeList is an array, each element of which must be in the form # :. is a list of attributes, per SetFile. is a file # which is taken as relative to $root (even if it appears as an absolute # path.) SetFile is called to set the attributes on each file in # @attributeList. sub setAttributes($@) { my(@attributes, $root); ($root, @attributes) = @_; my($attribute); foreach $attribute (@attributes) { my($attrList, $file, @fileList, @fixedFileList); ($attrList, @fileList) = split(/:/, $attribute); if(!defined($attrList) || !@fileList) { cleanupDie('--attribute requires :'); } @fixedFileList=(); foreach $file (@fileList) { if($file =~ /^\//) { push(@fixedFileList, $root.$file); } else { push(@fixedFileList, $root.'/'.$file); } } if(command($gConfig{'cmd_SetFile'}, '-a', $attrList, @fixedFileList)) { cleanupDie('SetFile failed to set attributes'); } } return; } sub trapSignal($) { my($signalName); ($signalName) = @_; cleanupDie('exiting on SIG'.$signalName); } sub usage() { print STDERR ( "usage: pkg-dmg --source \n". " --target \n". " [--format ] (default: UDZO)\n". " [--volname ] (default: same name as source)\n". " [--tempdir ] (default: same dir as target)\n". " [--mkdir ] (make directory in image)\n". " [--copy [:]] (extra files to add)\n". " [--symlink [:]] (extra symlinks to add)\n". " [--license ] (plain text license agreement)\n". " [--resource ] (flat .r files to merge)\n". " [--icon ] (volume icon)\n". " [--attribute :] (set file attributes)\n". " [--idme] (make Internet-enabled image)\n". " [--sourcefile] (treat --source as a file)\n". " [--verbosity ] (0, 1, 2; default=2)\n". " [--dry-run] (print what would be done)\n"); return; } x2goclient-4.0.1.1/png/ico_440x180.png0000644000000000000000000000246312214040350013667 0ustar ‰PNG  IHDR¸´æ9|bKGDÿÿÿ ½§“ pHYs.#.#x¥?vtIMEÖ 3{%_zÀIDATxÚíݽ¥eÇáÏï€X±2D£…/Ñ PøZXH´`ƒ&FñPc¬LО‚H¥šXYQ ÁŠXHᆀ‰bcF¢‰¬6" qu÷¶˜YÝp1Qæ<¹®næœ9Å·ùä~Î3çLW`­UõÚêÃÕ'ªVo þ·ÎWOT§«{«‡fæ¹+ùù‚¸½ºúTõ•ê¶à²ªŸUwU÷ÏÌùÿ:pk­ë«oUwTWÙ€àlõÝêΙyæeîð’䛫ïWï²%'ð4wºúäÌœy9»±z z« 8Á®NÍÌŸŽ>°;&n×Vß7öÀ{«oÞ/òÒ«¾Z}Èfì‰;ª/ýå9½½¿z°ºÆ^ì‘ç«÷Ì̯/;Áïî7öеÕ]k­Ýe«>ÖÁµLØG·Wï»$pk­««/åÝØ_×TŸ¿ðÃîÝÜjéò$ûìÙê3óÔ…K”Ÿ76à5\ªl·ÖzUõQ›°§ÖZ»YkÝÔÁ'5{ÿ €-øKuã®ú€¸°!×U7瀞mÀÆÜ²Ëw¼°=oßU7Ù€yã®zƒؘ×Ï:üvSاw6`ƒ®86Ià88888@à@à@à@à@à888888@à@à@à@à@à888888@à@à@à@à@à888888@à@à@à@à@à888888@à@à@à@à@à@à888888@à@à@à@à@ààÅÛUÏÚ€yfW±ó‡]õ”ؘßîª_Ù€ylWýÜlÌ/f­õ–êñÜQ À6¼Pݰ«~W=a6âÑêÏ»™ù[õ#{°÷Ï̹ —%ï­ÎÛ€=÷Bõƒú÷ûn?ÍÍ&ì¿WOþ+p3s¶úfµlÀžúGõ™9ñ ®ê¾ê—ö`O><ÁuIàfæ¹êkÕ9°gÎVwÎÌß/ Üaä~xx’€}òõ™yø’¦}ÆZëúêÁêmö`½dfÎTŸ­þh3N¸'«ÏÛ±;ôhuªƒO9€“èñêöê7Ç=xlàf¦™y¤º­ú‰ 8AVõ@õ‘™ylfŽ}ÒüÇWYëºêËÕ«×Ù€WÐï«{ªïÌÌ__ê‰s%¯¶Öšê†ê3ÕÇ«[««ì ÀÿÁÙê‘>Vò¾êé;µ]쟑J¨uîž¼IEND®B`‚x2goclient-4.0.1.1/png/ico_mini.png0000644000000000000000000000136112214040350013667 0ustar ‰PNG  IHDRúd¯€-sRGB®ÎébKGDÿÿÿ ½§“ pHYs.#.#x¥?vtIMEØ 4öR„qIDATxÚíÚ;«\e†áûJñM©¥"ZF;+E;!ÿ@ C°´¶ÑJm„`)ž C-,Ó  OvÁ`¡ä³ˆHØq´«œYÕ3s³˜YßôÖZ÷VOVT÷TÇã(ú·Ÿû%“Ý¿TßWŸUÎÌŃ.œ¿³z¥zººÉžð¿·ªóÕ™™ùöº¡¯µªÎU÷Ù«çfæƒC_k=Z½[Ýf/8Ôw÷çgæõkB_k=X}RÝj'Ø„gfæ¿B_kÝ^]ìÊnÀ6ü\š™ov¾pVä°9Ǫ—«f­u²úº:aØœËÕ©]Wž“‹¶iWÞUÙ6íá]õ€`ÓN쪓v€M»e×Ç`íüNßÙŽ@é&¡B„: t@è€ÐAè€Ð¡B„: t: t@è€Ð¡B„„: t@è€Ð¡B„B„: t@è€Ð¡ƒÐ¡B„: t@è t@è€Ð¡B„: t: t@è€Ð¡B„„: t@è€Ð¡× }ÌÛ}Ï °i¿îªïì›¶·«>µlÚW»êýêw[Àf½½›™/«ó¶€Mú¼úhªÖZ÷W«›í›òÄÌ\ØUÍÌÕ‹6Mymf.Ô¾gèk­W«ì‡Þ{Õ³3ó[í;73gª—ªËv‚CëÍ«#¿æŽ~Õýñêên›Á¡q©:;3çö¿qàñ×µÖÕéê©ê®êXÎÆUÇÿÃŽc¯ú©ú¸zkf~ø»‹þþZó¤tIEND®B`‚x2goclient-4.0.1.1/png/ico.png0000644000000000000000000000655512214040350012665 0ustar ‰PNG  IHDRTdٟȬ pHYs.#.#x¥?v MiCCPPhotoshop ICC profilexÚSwX“÷>ß÷eVBØð±—l"#¬ÈY¢’a„@Å…ˆ VœHUÄ‚Õ Hˆâ (¸gAŠˆZ‹U\8îܧµ}zïííû×û¼çœçüÎyÏ€&‘æ¢j9R…<:ØOHÄɽ€Hà æËÂgÅðyx~t°?ü¯opÕ.$ÇáÿƒºP&W ‘à"ç RÈ.TÈȰS³d ”ly|B"ª ìôI>Ø©“ÜØ¢©™(G$@»`UR,À ¬@".À®€Y¶2G€½vŽX@`€™B,Ì 8CÍ L 0Ò¿à©_p…¸HÀ˕͗KÒ3¸•Ðwòðàâ!âÂl±Ba)f ä"œ—›#HçLÎ ùÑÁþ8?çæäáæfçlïôÅ¢þkðo">!ñßþ¼ŒNÏïÚ_ååÖpǰu¿k©[ÚVhßù]3Û  Z Ðzù‹y8ü@ž¡PÈ< í%b¡½0ã‹>ÿ3áoà‹~öü@þÛzðqš@™­À£ƒýqanv®RŽçËB1n÷ç#þÇ…ýŽ)Ñâ4±\,ŠñX‰¸P"MÇy¹R‘D!É•âé2ñ–ý “w ¬†OÀN¶µËlÀ~î‹XÒv@~ó-Œ ‘g42y÷“¿ù@+Í—¤ã¼è\¨”LÆD *°A Á¬ÀœÁ¼ÀaD@ $À<Bä€ ¡–ATÀ:ص° šá´Á18 çà\ëp`žÂ¼† AÈa!:ˆbŽØ"ΙŽ"aH4’€¤ éˆQ"ÅÈr¤©Bj‘]H#ò-r9\@úÛÈ 2ŠüмG1”²QÔu@¹¨ŠÆ sÑt4]€–¢kÑ´=€¶¢§ÑKèut}ŠŽc€Ñ1fŒÙa\Œ‡E`‰X&ÇcåX5V5cX7vÀžaï$‹€ì^„Âl‚GXLXC¨%ì#´ºW ƒ„1Â'"“¨O´%zùÄxb:±XF¬&î!!ž%^'_“H$É’äN !%2I IkHÛH-¤S¤>ÒiœL&ëmÉÞä²€¬ —‘·O’ûÉÃä·:ňâL ¢$R¤”J5e?奟2B™ ªQÍ©žÔªˆ:ŸZIm vP/S‡©4uš%Í›Cˤ-£ÕКigi÷h/étº ݃E—ЗÒkèéçéƒôw † ƒÇHb(k{§·/™L¦Ó—™ÈT0×2™g˜˜oUX*ö*|‘Ê•:•V•~•çªTUsU?Õyª T«U«^V}¦FU³Pã© Ô«Õ©U»©6®ÎRwRPÏQ_£¾_ý‚úc ²†…F †H£Tc·Æ!Æ2eñXBÖrVë,k˜Mb[²ùìLvûv/{LSCsªf¬f‘fæqÍƱàð9ÙœJÎ!Î Î{--?-±Öj­f­~­7ÚzÚ¾ÚbírííëÚïup@,õ:m:÷u º6ºQº…ºÛuÏê>Ócëyé õÊõéÝÑGõmô£õêïÖïÑ7046l18cðÌcèk˜i¸Ñð„á¨Ëhº‘Äh£ÑI£'¸&î‡gã5x>f¬ob¬4ÞeÜkVyVõV׬IÖ\ë,ëmÖWlPW› ›:›Ë¶¨­›­Äv›mßâ)Ò)õSnÚ1ìüì ìšìí9öaö%ömöÏÌÖ;t;|rtuÌvlp¼ë¤á4éĩÃéWgg¡só5¦KË—v—Sm§Š§nŸzË•åîºÒµÓõ£›»›Ü­ÙmÔÝÌ=Å}«ûM.›É]Ã=ïAôð÷XâqÌã§›§Âóç/^v^Y^û½O³œ&žÖ0mÈÛÄ[à½Ë{`:>=eúÎé>Æ>ŸzŸ‡¾¦¾"ß=¾#~Ö~™~üžû;úËýø¿áyòñN`Áå½³k™¥5»/ >B Yr“oÀòùc3Üg,šÑÊZú0Ì&LÖކÏß~o¦ùLé̶ˆàGlˆ¸i™ù})*2ª.êQ´Stqt÷,Ö¬äYûg½Žñ©Œ¹;Ûj¶rvg¬jlRlc웸€¸ª¸x‡øEñ—t$ í‰äÄØÄ=‰ãsçlš3œäšT–tc®åÜ¢¹æéÎËžwç|þü/÷„óû%ÒŸ3gAMA±Ž|ûQ“ cHRMz%€ƒùÿ€éu0ê`:˜o’_ÅFŠIDATxÚìÚ¿Ë•eÇáÏ98$˜bêhmVº*ˆ[S‚bµ(þêPˆ›ÐØR“ºÒlâ ¼ƒK ŽNa`©S9h’´Þ zÀâ=ö¾çLâumÏé;|¸yx&cŒ^âÝêHõAµ«ÚÀëå¯ê^u³ºVÝš÷âdNP·W_UG«7ì PÕ¨®WŸW¿®%¨û«KÕû¶XÕïÕÉêêË‚úaõmõ¦½þ÷´zª:¿ZP÷UßU›ì°fǪË/usÏ>´î² ÀºüYí­~™>¿qZL²¥úrvBÝQý\½e€…<­öN{öŸ©˜,nZŸVm°´“1Æíê=[,åÎdŒñ°Úf €¥ü6c<Ê7T€e=TATA@P@PATA@P@PATAT@PATAT@P@P@P@PTATA@P@PTATA@P@PATA@P@PATAT@PATAT@P@P@P@PTAxe‚úGµÕËõ~õŽ-–roZݵÀÒžL«ïí°´Û“1Æîê‡jƒ=öñdŒQuµúÄ ù±Ú7 êžêVµÑ.ëv¸Z™>¿ø©:c€u;W­TÍN¨3_WŸÙ`M®TŸV¯Ôª³ÕÕÔVs]¬NÌb:/¨U‡ª ÕÛ6ø—ÇÕéêÒÌ jÕ¶êxõQµ³ÚâÔ ¼¦žTªÕ7ÕýÕ^úÿÿÐãjò!É IEND®B`‚x2goclient-4.0.1.1/png/macinstaller_background.png0000644000000000000000000016504712214040350016772 0ustar ‰PNG  IHDRºñ‚Š+sBIT|dˆ pHYs Ï Ï/¶ƒ×tEXtSoftwarewww.inkscape.org›î< IDATxœìÝw˜de™6ðû=©ruu˜À “dÀ! ŠT@X\1»*+»®‰E?«®aA]Q†U\×°Š®ŠD\”œÓ0&wîÊáœó~œJÝ]U]étUuß¿½¸Üî®:uº¦ºê®·ž÷yÄÆËž’ """"Z`”NŸ‘t‰ˆˆˆhAbÐ%"""¢‰A—ˆˆˆˆ$]""""Zt‰ˆˆˆhAbÐ%"""¢‰A—ˆˆˆˆ$]""""Zt‰ˆˆˆhAbÐ%"""¢Iëô ÍEÀ«+ÐU@WtM@W4µð¿€”€Dþ%ƒ.u!Mù„½*B>!ŸEˆÆŽáÒ¹ÕMSúƒ*úü Â>>£õ []""""ê¯.0Ô0Tö+hlÅv. ºDDDD4oB>¥nýmXµ­…A—ˆˆˆˆ\£*@įb ¨¡?¨BWÛ»j[ ƒ.µ•¡ U UôùÕ†7‘µ ƒ.µ,àQŠá6èU;}:t‰ˆˆˆ¨ B}~ƒùpkhîÏ!Ëš™œ¬%!%`K@J [˜ÑWW0èQ}tU ?àÛH@…ª¸S’`K‰XÊF4e!ž¶‘ÎJ¤s6lÙØqt‰ˆˆˆ¨*ŸQ*Iû Í-ÀN°OXˆ&-ÄÒ6dƒ¡¶]""""*Be% ^Ý’Ë–˜LZ[˜ˆ[ÈYmH¶30è-rªR*Iè¨Ð\j–5mŒÇp;•´.Ehƒ.Ñ"äÑ -À4ôù—Z€%2N°‹[H¤mWn£]"""¢E"äUÐT1Ôà÷¸S’ ¥ÄdÒÆxÜÄxÜBÖtyÙ¶]"""¢J@¤X’ ÁÐÜYµÍYq ãq“I Öü.ÜVÅ KDDD´€Úô`nM%KfmLÄ-ŒÅMÄR]’lg`Ð%"""êq~‚Á Šþ ŠKSÉ$$¢ÉÂf2é\çJêÅ KDDDÔc„ú|j±¿­ÇÅ`‰R 0Óí6 mÆ KDDDÔ4uz 0·¦’er6ÆòÁv*eµepC§0èu)¯!0Ô0Pö+nM%K—úÛ&3ÝYoÛ ]"""¢.ö)N¸ ªðî”$ØRb2_’0ž°ë` 071èuªZ€9+·nN%›H8ƒ¦îO%ë ºDDDDóÌ£‰âà†>¿›SÉJƒâó<•¬0è̓ W)ŽÜ ¸8•lª0•,a!Ó-ÀÜÄ KDDDäE}þR 0Cs'ÜšV¡˜‰‰„ k1Ô$Ô‰A—ˆˆˆ¨MtÕ)I(´sk*Y*[ê’KY`´­ŒA—ˆˆˆ¨~C)®Ú†| àR °hªnSÙÅWoÛ ]"""¢„˦’y]œJ6™ï’0‘°`Z\·mƒ.ÑT¥l*YP…æâT²ñ|Û©doO%ë ºDDDDxuQÜö¹×,ž¶Š% ‰4•¬0èå…| N¸õ»ÔÌ–SÉ|IBÜBvN%ë ºDDD´h) )¶Ó »4•,gÉâà†É¤› ·ó‚A—ˆˆˆCÅd}~÷Z€%3…. &b‹p*Y7`Ð%""¢/à)µ zUWnCJ‰©”‰¸…±¸¹è§’u]"""ZpÄŒ©d·¦’Ùùd ‹Sɺ ƒ.-š*0o ¨P]j–Ε7DSlÖÍt‰ˆˆ¨gùʦ’…]œJKÙÅ. IN%ë ºDDDÔ3€PÙT2ŸáâT²d¾$!n!Ç©d=‰A·ŒÌ¥ ¥ E÷;Å=4§å“¿Á¦Ã €m[¸çÐd"'tø¬ˆˆh!q¦’)jè¨Ð\j–5K% SI ,·í}‹6èÊ\ þèƒXŽcÕe}:úû|PÃcQìKaç¡ vÉc ú6tút»ÖჾuÍ»Éd§]údf\fyôV¬è³Š_œÈaäóx–DDÔk†U /è¡I$³c1 »§|ˆ‡Ž‡bª^ßÎD‘›z¶t»þ!hÁåÎï›K!úâìóÀ¶öMäp(®c2xRÅãÚÙ8r“»œÿÈšö³ÜøvÈ\bÖu„æƒ1ÀOˆhaòêAÍ™JæW ÜšJ–.õ·MfXoKõëÚ {Xæ\ýö`ppÎdqÙu·c4rfí+Æ÷â'ìÁyg>FñÁ/ߊƒXÓÔyL&¦ÿA ¥öÇ/ÒÎaYìOøÛSûqÉk^SÜÐVü¹”øýïÀ÷nú-¢¹ýøô‡ÿ0<<ŒËox éþçU>®•ÃPìv\tRo¹øüŠmщþç·à¿n¹»½gL«;®u¾‘©;pÆ ¯¿ätœ°å•PÊ~GÛ¶qðàAüþÏ÷ã7wÞ‹ÇÆû‘é? B©ÿ¡³*s'¾üá—¿~ß~‡gP}SŸÅÑâ.¼õoŽÁyç\ ¿vøÇ¿ýsüö1 “‘3*g`êÏøö‡Î.ö^üøõ·ây.‚ãÂ+ŽSðž·^ˆ¥K§¿)ˆF£øÐÕßÂm‡6Á mœ~¼ø½øú•'Ã0 ¬\ù’â÷O;õDÜ|u¨â9|ý¿‹[R ºD´p„| ƒúƒ*ü.M%³¥Äd¢ÔŒSɨY]tG†.Äwù|÷Ú¿÷¶—îÃ5ÜXQùJRb‹ç|à²ÃÍ¥ïÿw|eÓï1û¼Óÿ¸Æc¹ª—µsIgýÿù…BÅË!ðÒ3_ˆ—žùBd³Y†S°ºwï^û+7DZæoñ­Ï¿CCƒUo?à’7¼¯ÿÛ4.ÿØWpëØ‰ê}‚íÌ$N·âºÏý–-«¼ ¬( V¬X·¼vÞòZàáGÛ>wÒ§V=n…_Ç{lé˜Úª^ÔˆoÃë6à×]U­¾z?00€O¼ÿmxí“ÛðŽ«ŽýSñr›7o.wÛºG$oÄ|âØ¸~mŎÃa|åê÷â†ÿŸ¿ùQ¤BÇNûùæÍ›áñx¦}ÏãñLûýÊEúïRU "¢®§*@Äïô¶íªÐ]œJ6‘p7L%8•ŒÚ£kƒ®Ptüuò8Üðã_â-¯uVÿ.}ㅸ察ø•vlF&nÿúMÅ{Ã…?ò̺l½úýÓ?¢‹™•ï5)qtæ7øï뮘¶yðàAÜyÏÃxð‰Ý¼xΫpú©Ç#‰CnMÒÂñ¸ß¿îJx½^€iš¸ëžûqû=Oaßxƒ!§¿/zÁÉðûýðz½øÚ5ïÅåûÜtÈÅ;»ÅMàÅÿÃׯùt]/~ÿþý¸óÞGñðÖ}ú4<÷¨58óE§ÃݪÃW@ÁýuÜsÓbOã/HàÝ—^RüÞM7ߎ;؆ƒ“LKbIX`óú%¸ä AQsô¸þ#¯Â›?õ{L¼¤ÆÑמ}4.:ÿ¬âý8<<Œ'žÚ çn>jÚêû[^{!n¿÷Zü9{ J+=öX~EweñòÙl[·n­x›“£MßDDbh¢Ø%!âW]œJfc{i1œMNNâ>ôUÜ—8jßÉŠ LIü×ã{qÔ¾Š¯|äÕØ°n „øÜUïÀöw^‹§ñÊYÇ="s3¾|íåÅ›ÍfñÞý:þ¸;‚”ÿ¨¾µÎùÞ·«þûkxþ‘~|äݯkö®œ“Mà%˶áÝ—¾€SBpå¿}· ;øÂÒÇ€_íÅî½ÿñ/—`hhGoڀלú|í‘I¨ÞHÕÛxÝ«œVq>¾×|ó7x|4€Im„è3Ž£Â‡ðíÏþ3§>÷#ïü[¼ò£@jðtÀDð$¼æ‹»oú3>sÕ;wÞuÞòù¡‡g¯žKe3Ôê§DDÔ5^¥8¸!è{?L3¤”˜JæÃmÂB†-ÀÈeî×´ÑHßY¸òêïBæ·U®_»¯9Å;U¾R&±E¿ ïúûWpêJ/ÿÔ ï?»¥Û^‡qá¹¥šàoýà×Ì®¡µsIœ¿Å‹ukœËåðÆË>‹›FNEzðÅÍaBÑ …V`jð,Ü™{9nøÅ]5oßJOâµ/²¥ÎÆ­h4Š×\ñu<¨]­ÿ'ä:G†Þ· ;àï>þK<½}À0 |èmgCL<1í¸êäc¸êÎÏçÄb1\ü®Ïá·cÏGvð¨¾ÒùFÖá@ß¹¸qß©8ïÝ߯O~qsƒ÷b}V&oÇç®z;ç‰ð¯ún‹Ÿ;¸~Öe…o÷Êópŧ¿SüÞ».yV¤ï®y–eášë¾‡7æNÜ#ÏCbð è}«¡…W!1p:îÃùxÏÇ¿Q¼ü†õkqÔ`iƒ™0BPŽ2p DÙ¦H)Ñ·¡ø³òÿÔës‰¨;)è¨Ø°ÌÀÉ|زƇUƒFÛC®iI GMlÝŸÆÝÛSx|o&M†\š]t!TÜ—:×ßðÓâ·ÞÿÎ7`“ùů#“Âgßÿºb-æg¿ü_xØ:}ÚGÎRb;ñÖóŽ.Ö‰Ú¶?>2 Å3{ÓÑPüN\q髊_ïÇ7áûL(žÖ–ò–¥îÂ¥o¼ øõõÿõ+ìð½ BÑ«^g$r®û^)Œžþü“°É÷Ì´Ë|§?¿´’üï_ÿ ž0^QsóšÐ<8Ô¾ôçÒþµMü6ÕÉ\ /Ù.®¤^ÿ½qòDµúï ¡âþáexüɧ8ÓëŽYYãòÞuÕ—ñÍG7 ÞZåCj^<1ìA*U*ª ×>&Q/ÑU¥}ŽZéÁó6úñœÃ½XÑÛ>z7•µ±o<‡GŸMãžíIl;ÁhÌ‚ÅÂ[šgÝtHÿáøÎG±k—󱱪ªøÄeÏ詼ñ´0Ö¯sº*ÜÿÐcøÑ½„Yó·gåðüÈ£xãÅç¿÷…눧íÊeÏYôõ9u°¶mã§·ï‚ðV¨ohб+õbø3M¿htÎöc€ÀÝ» ŒŒŒ¿sò¦A ÚÙ^tüáÅŸMMMá–Gš·®sÊ…6Áö.o왃/ú þéMç¿þݽjËdNÀ¯ÿPZÅÝ´ºÒ¬Þûm2ãâ«Ý"mkqÿƒ¿^æt "êm>CÁÊÇ­öây}8b¹ƒA­Í}n%¢) »F²xà™x&…]#Y§Ïmo…¨Q=t`¼ï%xÿg~ÛvŠÕOÚ²çnJãXÜŽË.} •JáC_ü%•Wìêµ2ú;\{եů{b+~ð×dÅð,Í46¯/…ÚzO&×¶tû ­ Ž8¼´‰ìÁ‡ƶԺº®;æ??ùU©³Á‹NÞ3êô“Õã[qþ™§ö­Ü„áàé-Ÿo+Vú£Åvi‰Dû¦ê+ІáÉtñë£7¬„™né\¤³ÆŠ_¯[µv&ÚÒ1‰ˆæ“@Ÿ_ź¥N\ïà ë|X»Ä@ȧ¢£w-[b,fâéܽ=…GŸMcßx©,7•Q÷èêÍhÓ‡¬ÓñÅëˆ÷¾ã€O~àï‹'Š% ºú›Øá}iKé=2y;¾ð¾s‹;ê“É$>ðùŸ!Úÿ·/Ÿ‹îà OÚTüúÉí{ øØPé¸/:ù¨â×Ûv„ðUo-VN1‚Øw¨4lã¸cŽD(w#RXƒ%êÖ¯/æ½#ñ:V‰Ýµz°TÇqìò4<Þ?ÕuÝ «Jƒ'– E Í=-‹¢û16Qjóæóz m³¥c¹MUúù©dAš‹SÉÆóým§’œJFÝË£9“úz'è€o)~x×Ó8÷%ÛpôQGÀëõ»üò·ÿ‡[v¯€©Ü¸¿Þ©‡ñÁWoÀ Ïu:-˜¦‰K?ð%<í=¯ê{`ÃŽbh Hw<{ªïˆ¦Ï¡@·âè/ ,صwŠ·¾]˜J–Ú¢…Ãa2ÿŒOâÇãq~OéÞ]¶lþós—7uœPÐÍž=¬Bó"–H¶t "¢ùà)›JÖçS\kO—7$8•ŒºXЫÛâ<Î«Þ º&#§ãƒ×þ?ÿúÿ+®äZ–…ÏÿOÈ ½¶éã*±gð–çåðªWœUüÞåýÜ“{1„·zýª „Ã¥M\Ѥé|nÔ" „B¥Ð>M—uY˜ÛT²ôd¤i<ªóµwÆÞª‰˜ t¸ Õ«·³‚¦Õå›ÏãDÔ¥BÅr ~ËSÉ&â²&—m©;)ù2B¸­´©²ç‚®´-èŠ=í«ªª8ñˆì=”€b>¦H<‹‹Ü+ßùöâ÷>ôo×ã–‘ã!üµ7•ÙÐÉ”6@yõö¼£¶¥€e•VeÝ4 Í˜\SØéjÏØñªvY•öŽ;ðÚ+ÿÞp3Þ$Dèä¶ŸQ§(ˆÔb¸uk*YÎ’ÅÁ “I‹oø©kéªS’Pf2W>ê¹ ;4q ¾ôÙ·ÍúˆæSø{<þî/c§Qyl5"¹®z Ÿþà{ŠßûðÕ×ãÆgŽ„ôϽó?#ˆÅbů#AȽ麻T“–¾iÇ]>‚<Ðê›ò –þi3™ ²ÒYÊMÎøØ©?¨itT:W:§%K–À ®Ç¡HsäÜy "š?†Vª·T(.•$$˦’Å8•Œº˜ßPÐT1Tò)häÕ¾ËÖójS¢Oã=‰•+œÕ¾_üîvlÛîôˆõûý¸êÒ3á›z þ¦†ñò¥às}wñ[¹æøéÎ#ê ¹`jìÞWÚé¿nÕR˜É±ר“g`Úq7®Y+Uçq¥Ä@°T011ŒâtpHæPì\8ÍÂ;-ž*Õ ‡ÃaDôÖêl盪*€ä‹5/àQ°jPÇs×xqò?6.÷` ¨µ5äJ)1™´°s8‹ûv&ñà®vær©ëÌìr| Cz&èJ3 mÅ/vú­ŽŽŽá³?|úÂOŠSÓ^ø‚“pÁ¦(d¶ŽvPɃxéàÝøâ'¯(®ÿËg¾‰ŸìØé_Y÷yéá•øË[‹_Ÿõ¢S°Ô|¢Æ5ê=îáøËÛŠ_³i|¹ý5®QbÆ÷ã9K¿Ã_î}I³‘m «°õéÒqÝxØŒ)sóïÙÑÜ´¯—VŸ[Ñ•¼†Hkî å‰|IÂú¥NZïÖµ>¬ra*™-15±u¿Óìñ=i˜Èq*uU i8ò0g˜ÉæU^¬è×[ÞÇÓ3A÷ðøÍøü¿ücñë÷_ý] Ÿ…‡²§àë7ÜXüþÇÞw ŽÌý¡Ò!J{ñŠåâºO¿Š¢@J‰ÿ÷ɯáÇÛ×Cú¯}Ý™„‚J»ôÃá0¶¬œ;ôHÛ‚´²5Ž+°ã@iesÆ 8n°¾@ºÆz¼üÅůï|p´ ÓØmÄon»§ø³7\|Ö™µG»m_f vïÞ]üú’ N„ßÞÁ3š[y¹…Ïk@Zï^ADÝMS–„5lZáÁ)ý8æp/ë×áië†\çùiÿDíq¦’=} ƒÑ˜É©dÔu<ºÀaý:ŽYåÅ)}شƒ%a­­íñz"èz&ÀGßvF±»Á~ö;üeò9Šá_Žþ8Œ ÃÀ'ß}>‚“•ÛˆïÆ«ÖnŵŸøg(ŠÛ¶ñ®7>ûœÆCnÞãcìÛ·¯øõû/½‡OýªêÇÙÆäÃ83p+®ùÀ›j÷±C>Ìÿ^𚳎j^ÇÎÆqÖ–†Sº`š&|¦Ä…îÃ,‹aàüSVÔµª+Í4VŽÿz´õër™È|íû¿+~ýò³NÃ);ÐHƒF-¾C~ÐÖóªe,VZ…^»v –h#5.MD‹Ua*Ù±«ò#ó`(Ôþ©d±²©d÷ïLá™á,ûÜRW y¬ÒqüZNZïÇú¥"~Õµöx]tíÌ$.Ø4…3_äLóÇW~±vp}ñ2c}/Æ?ûýâ×'n9¯|®™Ÿv,+5Ž‹×oÇ5W½Bd³Y¼õŠÏàæÑçAø›k ˆÏ^ÿóâ×Gl\‡~æÍ8YüKÇ eô>øFoÇêØ¯ñ|õ7øÆ;6â×\†åËj–ˆ÷Ÿ‚/|ógů/:ÿlœ5xDr_ÅËÛ™¶ˆ[qÅ?¼ºø½ýüwØ­l™v¹'’Gâ÷·ÝQüú=o{5þfåCPb;«ž‹6õ8^ù?Üð©×C7Û;)L¨þ¼ÍÄÄÄDñ{×¼ÿ 8YÜ$öÖ¼®LĆÄMøÄ…*žÜê¶žW-c±éuÅû¦ m–/-v@ا`í'¬+M% »1•,nbÛÁ îÙžÂ#œJF]JÀ@PÅÆåž·ÑãÖøpø áZ{¼™º¾ëÂQ¹?à_¯¼²øõ®þ.„_:ýéB¨¸kòüøç7㵯|à×½÷¿ósx¥‰fVj¯:÷ùůïøëýP„‚—.}¤¡sÆý8ª7’¿y·íY†ßÞúgœ{ö Ë—-žt%lÛÆîÝ»Ñ××Wœ¶8›v?»k׬ªz;Bõàæí¼úÁGqÒñÇBQ|íš÷áê/}¿º÷AŒ‰Õ°‚kô(å³8euŸÿ—+Š«¹££c¸þ¦íP"çN;®9 ×|ï8å¤ã‡¡i®ýØ»pä 7⦻~ƒ /ÆÅ +ƒaÓ’,ÞôÆ-8ïœ¿Åøøx…3mÝ¡Ðx÷Ç¿‰ÿú•PË–á_ºßúþÏñ‹¿Ü‚‘„†q¹ YáCÀGŸÅK³Ï^‡×¿êŸ¡iþúè·]9·Jö'CØ»o?_élZü꿾 oÿ—o`ÏTSr~{K} Èä0v.yÛ¼Í?U)´Ó0Pgµwl—¬i7L%-°ºÕ|u©GWÝÐøŸð™_\ n?ýÕ­¸slDHŸuY;´_ùÅoñò3OE__4MÃ5ï½oú·ÿC´ÿEæÏÇ™g<¿âÏjùůû~–)~/>W}ïÏÈd²¸èüÒÐ EQ°nÝô‰f»v=‹÷î‡0ÿ}݇8C/$foBHDNÁ¾ôKüç¿F°vÍ*!ðáË/Á•Ù,žÚú4îyè)<çˆÕØrÜðûK£|£Ñ(þá#_Ãð++®!ì¾ÿëðÏ]VLñOoyþé-@,ÃSOoC8ÀŠgO\á¡è¸;}:.ûèu¸ö£ï(þ›_ú¦WâÒ7¹\»wïÆøä[¶Ë–-+^¦§á£_üŸâ·ÁÁüô«D6›Å044„@ €|æ?±³¾=„DÔC<š(ö¶íó»;•l"aa,n!ÁîÔÅüƒùÔ¡6oªlE×–.ÈÄüÝéAl>úHÀää$þãÆÇ`†6V½ÎþàYøÐgo(~}ôQGàõ§ú “ÃU¯ÓNÑþâC?‰â’÷]‹Ûï¸ ¦9}ƒÒ3»vãS_ø.^ý±ßá!õoàñ¨i“Ž IDAT—d*•BÚ®Ü{wOßxËÇ~Š[oÿkñ{†aà¸c7ãÒ¿»/8õyÓBî£=…×_ñe<ª_¡T~/#TÒ.À«/ÿ*îøë}Ó~ …pò‰'`Ó¦MÓBn2™Äw~xrZdæáÚBxñÛ±âu—_‡;ï¾ÚÏt]ÇÆñ¼“NĪU«¦…ÜT*…ïÿä&<¾«½%µOVÅ_‡Wá³_þÞ´Á†a`Íš5\BDÝ-èU°zHÇ–µ>œ´ÁõË<ˆÚ[[hK‰‰„‰‡2¸wGïNãÙÑC.u!€ˆ¿Ô9äø|çn ¹SI bãeOu凑_Å/ÙR\î~ð©=xX¿B­½Š§GÇë÷! pzÆÞtû˜\÷ÈMíÁËîÅÒåÍ×ãÀÎ;q{úåPýCU.!!'·a‰½aŸ4cÉ,ƱfßÑÅa/ ߊ/ò]€»ï½¯¹nFÿú*ÇôØS8!´ /{Á‘8ÿœÓ§•BÄãqüáOwã·=Œ{ "=pjÝ¿} ÏíÛ…ŽÂù/9 Ë—-A8F*•Âèè(nÿëC¸ëñýxd…C¾S¡xûŠ×]=ñ¼øx§•™išøÙƒ@zÉôô±ßâ'–®ó»ûF1Hgm$,/¦¼› …šëÒÌ@D·#(&á±ã0)FÊ»ª°éã¶BÚ&äävøíxì8a# /RÊÌàF(÷Ë*êaç’ñ½è“ÃÈÁ@ýPëZžGDóKWE1غ:•,[¨·5K1ÙR÷ò Aa¿Ñå3H¥”Øq(‹CSΧê]]£»)±gð¢çm.~ýÄ3£Pô-5®Q¢ú‡ðŸŽ™óÃZýÇš8qñòÛkñ¸­Š1pÒ8jÖ¤ânª»Qt?Ð$âpJmø‡EÔ;ü†R ·Ž­—„D4Y ·il .ö)ÎæÊ  ŸÑM¯¶µ™–ÄûÒÓÞ<òõ¸C6ûŸÂ9/¹€ó‘ÿSû³@M#"êEBa_©$¡ÕÉKÕX¶ÄDÂé’0·`²Mu)Uqêm‚úƒ*t—:‡¸IJ‰'÷gf}B Û&ÊÄ£x^ø 슅±Oµo-*­ Ø™Imý¿â•ÅïÝø«[ñ¬r\W­P-$š" ªÎ®pk Ó¹R °hЍ{eC".v™/ÛeMÎîgÏ Û&Š4ññ+ÞˆU«Váö;ïÅïº{Æs˜LJ¤²6Â^`(¤`ÓQ}¸ìÒ÷A×iñx_ÿÅ£PújoÎ""¢ÆxuQüøÕ½ÚB‰XÊÆx~å6™a½-u¯€×i6TðtOw„VíÏaxʬø3Ý63 ç¼ä4œó’Óæ¼l<Ç¥ü öÏíòÒn"¢Þ*«-ô»T[hK‰É|°[ÈY\¶¥î4_C:)–²°{$[õç ºm”NÏÜ.U™”ÿûë[ñµŸ=€þs!TËgFD´0) ÐïwšÔ5×j ‹SɦœJFÝKWEþïAEÄßÝ-ÀÚaïx®æÏÙ^¬Md.þØÝ8,”ÁêAËû½X¾$‚•ËÐòcxl ûŽãÉÝcØ~0‹íæÑáus˜ˆˆ¦)Õªèó»×,‘±171·çÀêb¾|çA;‡t£dÖÆƒÏ¤j^†A×-Ò†ÃÊÄ Í4#ÅA181‹ˆ¨QO©XÐ¥ÉKRJL%Ká6cò呺“ö»ß9¤Ûm;˜©Z›[ÀÒ·Š'\u¢U'òµ…ƒ.ך–Ìo$31™°a±&º”ªLŸJ¦õ` °vÊš6F¢µC.À KDD]BS¥©dnÕ¦fL%c´¥nå)ëÒçëý`í´¬«}ƒ.uŒ¯l*YصÚB‰hªÔß6•e½-u¿e}6.çfõJl)qprîÕ\€A—ˆˆæ‘ò—7¸5^Ô²`cq  &[€Q‰šX=¤/È–`­Š&ë/3bÐ%""WÍWma&WÜ0•äT2êm¶žÍqU·‚É ЪaÐ%"¢¶sj Þ¶nÖÆÓ¥Á N%£fxÊÄŠݵá'½jŠA—ˆˆæ[Ð[èå©Áïqy*YÂÂDÜB–-Àh“vdqôJoÓǰl‰¬)aZ¦-‘³œn#¶tÕ0¡k†*àѺ½¯iɆúZ3èQSDŠ%  ÍÈœ%‹½m'9•Œ™ñ¸…hÊBØ7wÿèLÎF`Ð%"ZTÂ>Å ·A÷§’Z€å8•ŒhÁØ?‘Cȧ`(4ÿ2™mü¹„A—ˆhS•| °€†þ  Ý¥©dY³´j;•d 0¢…lç¡,úüî=ŸT“lb( ƒ.ÑãÑúóSÉ"þy˜J–°` 0¢E#gIì8˜ÁQ- ²h”iɦ>bÐ%"Z SÉ‚*wZ€ÙRb*Y¹Ë©dD‹×X~€K$àÎóÍLÉ&ëût‰ˆz"€>©˜¡¹So›³$&ò½m'“,.ÜQÞÁÉÜüÝ&Ê]"¢ž¡«…’wÇs&³¥Á ±“-U6ž°5m×Þh—cÐ%"Z€üFÙT2Ÿ¸ÐLB"š,…Û4§’Q¤FcVôÏCÐm¢ãÀ KDÔU„ÂeSɼ.M%³ì²©dq &Û$P—R „àä¼.MZXѯ»~;\Ñ%"êQªR6•,¨B›©d) ’¹º”¡•þ&"#QÛf;}ZTÁÔ<”7åšì¸0èu„WÅÁ aŸ[-À$b)ãù•ÛfWDˆæCÀS*Ó z§opZÖ§aÿ¸ÙôÎ{riI$³6ü.  ÐÒDE]"¢yò–¦’ù=î¼(Ø2?•,¿rË©dÔ­D¡sH~åÖS³LG`ÍOîËÌÛùQýb)ËÕ ÛÊ›t]""—( )¶Ó8•Œ=M-+Ó ¨P(ÓjûLDS–‹gHÍȸ¼5ÕäF4€A—ˆ¨­ŒüT²Á Š>¿{-Àãqãq qN%£.æ+ën±sÈÚ¥:ÙÍ Ûm2.I縢KDÔ1µj ÛEJ‰©d)ܺýÂBÔŠ°¯T¦ãkãGÚ!¯ŠÁбÃn7q{Jb++Æ ºDD 3¦’y\j–nZ2¿‘ÌÄd‚Sɨ{©  8%:šKe:°v‰ñxŠ]CºHÖåÒ…VÞØ3èÕASEqÓL¤ÁÚÂF¤fL%ãk9u+&Šõç}~·:‡ÌfhaŸŠ©$Wu»…›Ÿ0Y¶„Ù¦Z]"¢*ÚY[XD4UÚLÖJ"·½J1Ü\êR‰”“I #QçM ?Ýè.–-aÙÒ•€VC4ƒ.Qž*›JÖÎÚÂrÓ¦’%¬–V+ˆÜ¤Ì(Ó1\*Ó©&š²051ãßI·Ëš>Ã… ÛÂF4€A—ˆ9g*™³q¦ßÅÚÂLa*YÂiÆúBêVº*ŠÁ6p¯sH5RJ GMì7ù Gq‚nûÛjë2]"ZtÛ1ä.t½ýA·t‰¨c µ…A ýAÕµÚ¬é¬ÚŽåKXnKÝJS ÃLœÎ!ÝЬU&MÄRü´d¡ãŠ.毶SɨWøÊ¦’…;4•ÌM{Çr>r™¦ WžËÛ1„‚A—ˆ\ð*Å&õnÕÚRb*Y ·œJFÝJ••$tr*™ÛÒ9›‹‹€«¹Wt‰¨K)ùÚ—k s–ÄD¾·ídÒbË"êZª"Ð(uѺ¸X;M%9b1p£ãdÙuˆº…®æ[€Ü­-LfKƒX÷GÝÌ£Êt4ôùˆhÖnqN\ÜXÑ•R¶e³0ƒ.5m>j %$¢ÉR¸Ms*u±WAPÅ`Pƒß³pKêÕÍÃ+¨}\é¸Ð¦’]"ª›.+Ip«¶Ð²Ë¦’Å-˜l“@]J@¤X’ ¹V«Ø«tÞ‹B·v\t‰hóU[8m*YÊbÏMêZ†Vú›ˆzc*Y§0ø/öapE—ˆ\ã)›Jæ^m¡D¬0•,a!É`ÔÅüeSÉB=6•¬“ú|*ö®^à\YÑmS™ƒ.pj gܪ-´ei*ÙxœSɨ{ á„´B¸õ,à`nÒTÁ†‘¨ÙéS!¬Ñ%¢nS^[8Ô\ŸJ6·0Å©dÔÅ4uz™ÎB˜JÖ –Gt2E4þV2f{>åcÐ%ZDæ«¶0‘±171·Ø^ˆºš×È—éT„ý Ä›JÖ Â> … ”õ¹Wt‰¨N²ÚB·¦’I)1•,…Ûví–%rCاkÐ}KæÃ†ey6ÝéÓ ¸µá°Ã"]¢G¦’Ü­-4-‰ñD~*Y‚Sɨ{©J¡LÇY¹],SɺIȧⰈ†“,aXhÜ™Š&¹¢KD%óU[˜*›JåT2êbM7ôùçT²n³f‰ÁO| ·6¢µëQ KÔ£|Fa“{SɉhÊÆX~pC*ËpKÝ+XÖ9$À©d]GU6.÷àñ½,aXHÜ(]h×j.À KÔS棶pÚT²„“-À¨K)…2| ºáÒ¦jŸH@Åú¥vg;}*Ô&n”.´sÕŸA—¨‹ÍWma¦l*Ù§’QXÚ§aÃ2O§OƒtX¿ŽtNbÿD®Ó§BmàÊŠn›6¢ ºD]Ç£‰âǯnÖÆÓN°‹s*õ¦CS&Vèðr˜CÏY·T/Žý¦ÞæÆ†g®è-0óQ[X>•l"aµµЍ¤vä°iWu{À¦<±7ƒ©$Ãn¯® b.Q›¯Úœ%‹½m'œJF ÏhÌÄÊ´æZhr"žs¸[÷g¸²Û£\ë¡Ë KÔ{tUƒ­›SÉ’eSÉbœJFô*04ájÙ5’ÃæU­Ýœ%‘ÉÙ0mçͨ"!DÙÿï„3MÜér²ø(Bਕl;å˜àäVÐÍäÚ÷ÚÅ Kä"¿QšJr©˜”S©RÛL‹ø‰šò) iÌ,±¥Äý;S®•ËL%O,"Úa×–ñ´TÖF&'‘1¥ó¿9YSÖý‰‡ª8^‚ W…ßìÕÛ$#3 *ÀA”è)Ý>þ`Ð%j+!œ¹î…pëÖ&ÓšÞÌbMuXا`0¤a(4»G«uì8ä^K©]#Yl ø¦}Ï–NèhÒÂTÒù„£E,Îqˆ¦ø= ú|*–õið³oƒ6,óÀ«+Ø=’mÛ°r—Ã"L«þ7õ`Ð%j‘ªˆâà7§’¥ËZ€E“_¨ãúü*CÎô±¹>Â\Ö§aßDé¬;ÜDÆÆ¡© Mq‚mÊB¼MÁ¶R‰´DÚÆþ‰‚^Ë#†BškÏ ÑÊA¯‚­2ÈqÃl×ëöºƒ.QS¼º(nû§’Â-§’Q§ ôùòá6¤5´ÛZ5C¶îϸv~ÛvÏ‚xÚÆöƒY<3œÅ`HÃò> !7ÌգϯbË/¶îÏpÔx—sg*Z{ÿÍt‰ê*›Jæwq*Yy °§’Q‡ DÊVn[Z2Ò°Ï›C|m’´l`xÊÄð” ¿¡`ÕŽ¡_zçbh 6¯òb×HŽƒ%º˜+ºí®åç_Q !¯‚e ÁÆV¯‘5íâà†©$§’Qç)™È7rÞØimüè}ÍÇ÷¦Ûv¼^’ÌÚØº?ƒ½žÖ,ÑÑàKp-B¬[j ìS°í`–{º+ºíÞPÍ¿2¢TE`IXÅòˆîÚð†ÂT²ñ¸…§’QPÐ_nݪ+TôùÕE=$ ‘±ñÄÞ B¾Ö è󳤡–Á†€WÁÖý™Eõi@/p§tA—È…ÕÛ%a­í=nm)1•,…[N%£n (À@>ܺ¹‘²\Ö´ð*‹:èÄR6Û“F$ bÍΡ5xuÇ­f)C7Ñ5wZêq3Q›õU¬2Ú¾z[˜J6·0™´`q!‚º€ªýA CAýA÷—ú ãðAÝõ§^5Ô\«à)–2t”kSѸ¢KÔºÃúu¬ÒÛòQm4ea,æ„Û4§’Q—ÐÔ²pëW]ÚeÙNiÎD~e’Í“Ø3–ÃHÌĆeDX¿[‘‡¥ çÆŠ®e˶o:dÐ¥E%àU°q™Ñr-\Î’ž2qp2Çuêz1Üjèó+®†ÛDÆÂDÂÆDÂB,Ån!í–ÎJ<¾'%a ë–®u}ée…R†>¿Ó•Ád;Æye¸0ùÓý+ º´h¬Ô±zHZî0™°pp*‡ñ8_Ø©;èšÀ`Y¸måñ]KÎ’År„Iöxž7#Q§ÎÍË#z§O§+ 5lYãteˆ±”aÞôÂT4€A—‰õË Öô‹„ÄÁI{ÇsmïïGÔ C 9á6ìs'ÜJ)KÛÅ`ËZÈÎ1m‰‡²ŽšØ¸Ì¿Km{™GWpìj/væ°œ¥ óÁ•Öb.¼Æ2èÒ‚&pÄr–„›{¨'26vä*užG j ©®’ÍäJÁv2i³A—‰¥l<´;…ù=n–¦ô"!Ö-1Ðçc)Ã|è…ñ¿ƒ.-`Š6­ð` ØøÃÜ–ÏŽ:›X¢@âÕCN¸u£Çj¡¿óDÂé’Êò ]·“Ø7žÃD¦øº[É@PÖµùRv¿qGgéQǨŠÀÑ+=MMšH˜Øq(Ë2꟡äËT<í·ÉLiÕ6š²ÀEÛêTpÂe·½áMfl<¼;…5K ¬ègíîLÍ)eØ=’Ã>–2´¦WÚßq3QŽj2äîÏa÷HÖ…3"ªÎ_ ·ZÛWèLKb2i7’q*ßt†&ô*zø ^CGÐft90mg3ÞîÑ,ÒÙî¸m <3œÅD܇04®î–X»ÄéÊðô–2´“áÂj.À]¢º¬è×›ê=¹k$Ëwþ4oüC!gü®¿­“°$b)“ù¾¶üèv:]è8ƒ3úüJÍpØ+¥“I îJcã²öÀY(úŽÏ˜àßC{ôÊT4€A—¿GÁÚ%~Œçìh>8iºrND¯‚¡ †ÁÚÖ1¯Y³PŽàÜ^]¹ yXmò*èªèÌ]ëÜ«¥¦%ñÔþ –öYX¿ÔhË0œ…ÄÈ—2<;’Ã^.h´ÌhRJWÚ2èÒ‚!°é0OC;‘¥”Øv0‹‘(C.¹#èU0r­·M Ö¥”˜J•Æì¶;Χ¯tÿx4‰Œ…‡v¥[:¦¦ Düj1ÜÖ¶P(IX(¥ÃS&¢I Gæq­;G¯X³Ä@دbÛ {A·Àhnýí1èÒ‚±fÈh¸¾qû!†\j¿bx ªð´)ܦ²¥`;•²`÷n¶Eدb(¨b0¤Î*xT, k ÿ]<¥UÛÚ½…þÀ…û2ž²±ÐâN:'ñè³i>¨cÕáÒ‘^ÕP±e­[÷ge)CSÜXÑu£>`Ð¥"äS°r ±’…ј‰á)†\j°OÍ×ÜÎoͰìé›Èz¹ ˆ@>Üæk’çg»zHÇh̬Ùé@U"þR¸­uŸ/”ÒŽFH{Ær˜LXØ´ÂÓ¶7\ E¡”a÷h{ÇXÊÐ(76>rE·ËÙ™(²ã; b;¡§÷CH¾KœO" àé§êÿóm‰±ÇøRktMÀ« x B18ÿ5Ë´$²9‰Œ™¯UëåǧpV}<º€WwîŸ(œÿêáMÙ³J2TÕ™€åÑ„–0ç¿i$µ$²¦D6gôZÿuzUÀ}ÎÆ;†ÝŠúrÑdçë±¥Pó®€ ­‡1°Š'ÜÙªÁ•ñ¿.½™gÐm‘´2È>õ# X»pÌqÇcãÇaùáAQX5_ 6vO&mäz¼*só_U n5Chu¿-]Æ…PÖéZ µaÂB8] <º€Gh¥Í¦”Àx‚¦'0k€Rã·l‰¬é¬ å,É7±ø A/Ë*±¥D4%;úº`Ûî݉íO?‰Çù%ÆÕµ0Žz„êéØ9UãF{1·VtÅÆËžâÓA“²cÛ žü.¼èU8ýì‹:}:‹VÀ« Ø@mn2cs¤oé–' Y% 8Óy '¼Õ [uܲÍÙ¥U[—Ì×xXçþqV¶=ºÒrø¯—„S’PX·ºôOZˆÒý£(±¤¦œÖMWˆ_míq¼€Å36]òúpÇ­ÿ‹_þïGÿ#ŒÁ#:}:EŠ<ÿˆ@ÛûÔþ4Æbíÿø…+ºM²³qèÛ¾÷þËÕZvx§OgQó7ðÎRÂy"£ör3¬V  nÈD®;¥•ÐhÙ™\þctSž§ßÇÍû­pÿÌw¸5ËîËn^µÂùhד¿ÊïžÁ†xÆ)ËèÄùç,`,n!ìWàဉY‚†&0•è|)Ãég_„£Ž= ×^}ìÐUPŒ`gO(Ï­Ç kt»Lî±oá’7_ÊÛa®°¥²yqé5í¼‹æ5¨¶rSùpR˜ŒUnûœ –)¬4öâÆ§ RŠÈ¯lëN€›vÿ´÷¦Šl dr¶sÖQÚÑÉ5ÊB¸õêÆŒp;SÐãÜѤ…\ê‡m L&lø=NašÎPC¦’o77´ìp¼ñÍ—â;?ú<'\ÞÑs)p£ãàΰ€A·)™CbÓ Ž9áôNŸÊ¢ç5ûƒK-âÕÜv<…¸Z;ø:"Äô•Ûf£’i‚­ÝñF  /ÿ+!Š÷gÆýSïCa®Åp9ã+§ÎÖF&W½´£Ú {#÷|;^ªÇO>ÜjµÃíLš"0ÔÈØHthu7™±‘3m–2T § Y7”2sÂéØô§ßcë¡GáYvlGÏp+èJ®èv9ñN¿èe> fÍ£¯%gÉŽÖÆ¹©•§‡¶„W—_¤ÛyøiáMk®,Á–¥î™Üü•#Ô«¥Ö6Ü?ÓÎeŽ“±íÂýh#kÎx ’‰œi²”¡‚òR†DÚ^`Ï Õ9ÓÛ\ÖèUÐH0j¶Þ­Þ›h(ÐÎÃBn*Úrûµ(ùpëÓôòÝ縭ÒJ£í hÿ©uUðåÿ®Öÿ4¢Ð8mÚ°æèÐÌíÖ Ç­–-(ðΆÄé÷OéÈíÚ„7W¶íR¨u¦ºÕßF­Ò%ÝŒ ,e¨­“¥ à¼qæf4¢ya7PCYí…¤ íÖå0ÛLˆè††Fc¦¦ˆâÊ­^g+9«|YNÂZˆõyššÿØ]oYàL"Ëæ$Ò9‰¬Ù¾U«jÛºÚQ²”ëšâ”$xuš:ýç•®>×ßwóAØ)ç(¼Q¨ÚµcÆá«Ž¥žqÕκ]ˆb)ƒ!ò±”a¦ÅTÊàÖ'D™œ{ït©gÍ^§)ûÛ¬çZnZ·Ãl'JÚ¹>Z8BxóJ]áVÊüJãCj¤ñ«tŠª øòám®•ÛFs™-KÃZÝW;ˆ6vÜJÁ¸ÚãVS_~å¶VŸíf6–Õz^˜>­|àÂÇ™×­xfu&ÖVp+1%™•ÈZ&",e˜e±”2ôÚø_€A—zX#åŠU_\Ûj«ámಠ·™ãO¿­Öžt½]]-ív¯n ǵìÒGèÙÜÂÜDVNS•IŸ®44$¥žû%7³õW=÷e§ÐÎÒ…¹ÎãÇ©Inäþ©¥Ñ \Þ8““0ËÞp5R³[w®tÌ wz»Ã¯™/eûxYÊ0K ?`br–2¸òÉ‘ånûF]êY¶¬þäL…ý&u…ÚÚù³­„ضJYÞ šR{eRæÇC¦³ù𯫶 %óje+·åá­ÕßÏ–¥î™œ={Y=iö$æÚ ÖÀƲòp«Îñø™yÝv,«¬LÆ*½áš‚ë?—ºp «¿­†_)©¤K*Ò -â’–«Ý:aæÀvpû>bÐ¥žTø³°l9-$Uº _Ñ­œ º½9/çR mlå·¹'–Bl×Õµ|7]Týè³p¨Bë¯t‹CæÒM«Áå÷Ï´Çu+ç($²¦SWOiG«wG[†:T9˜¡–ºI4ûÑy+Axf׎j«Põ†ÕVp³«¿í ¿,e¨N@¤Pʱ»êy¦®ôÐ5Ý]úfÐ¥žPí9"gJh†˜óõSUj¤ÎÛšv™Ž—14ö¬Ùô“l‹OÎÎê†Ïp6”M[y›yYY¶²ê…òbQΨ#ü7ʲK÷cÆ…ÒŽvuG(¯ÆÁt­ìñ#*¯Ü¶sbñÌûª¼?°ÙÀà™VVkë ÀùÇ® gI¤²ö¼†_–2Ì¥PÊ0Õ¡iwíæÆT4·7ð1èRש/h:—JflxÙO®3Ÿ³UγòŒï·+ÔºSÆ0a¶éÞÚt­Ôêªjx+«iL×Ú‰îÂùuš¡ øò5ɵ½$JÝZÙDV÷Pƒ6Öß³ïBxó¢®~Ùí,W°ìü†¼|­­]ç/;sÜå …c:oŽœû¨üñchÑ”5ë¶Û~«ß™]¸¶;^Ö•¡×KÜXÑ͸<A—:®‘`;SÖr6}̽&àѤ³µßR·3ÔºhM<4û”3-Ü–¿ –Ð’¥r„Z+óùR0_«Ä†î„[Ÿ¡@){oÖl©‰i9åNë¯ê÷e#!ÏͲ…¹îgçþɇ[!*o¶jòjß¶DÎBñ1Y×T·ŠçVùzí Àž²p;­ª¥ì€N§ 'P•o†kºì¡Áà›ÌæLÔª%e‹•È—2$36â=\ÊàNéƒ.-@s=¬çÜ4VöãdÆ®kC„ßHgËocΫ´5Ôºh|Žhjá·Ê•/ÂÙDf#ï!ZëÐnÖNÍ?Œüô¶Yá¶ùÓÏ–mÈËÍ1¶ª r(žV“'Pþ§éÑK+ÿJ…ÇOåóªvBsÝpþb²4¬¡Ö®VzÛ:·Så¢u`EˆüÊíìp[K¥›íó+0thÒ)e¨¤ç:N³ÁW˜HXð{$Â,e˜¥Xʲ\ÿؾܨÏ€,K¨¹lgþXæWg¼FùF•Êð{ÄRv]çè§ŽËÔq$7­uÁÕŽ_-œ8Ç.+G0•ÆNLQké¶Z¸)À“_Õöê3ËS\iÌ5VZõÜ|]jå>¯’ +“…ÇÏô•É+‚Õ&¦ÕuûÓÍì\Ï@†Âv›pùãÇ£)ÓïÙüF; gÅ\j˜HZ³Zò5s4|“ç ZŸ_…¦Îõ6jqˆø{«”Áµ©h\Ñ¥^Q{å®}Á¶’DÆ®Ù߯p}¯® šª¼¤;ï¡¶ m­×êò• +·2ÿ9³|¥±Î7 m®|apîŸ|¸5ʉDÃ+ïYÓ¹Ó9 ³ð„ߦדù-[˜^¶áÜ? <º¨\¶ÑÀÇü³Î¥Â• õß™²7\åçSñœ›¬—~._PN¸-Œož«¥Y=çWªC!Ѥ…dvæ‹Ú·ÕŽà›³$Æã&Â>uÖÆaßÞ*epcEײecSN›À KMkiÕ¶Å`;óÐ…Ýû…?Äj×WÀg¤²s· šïPÛÎÒ‰fŽ+ÊÊ<3>6-­4:!bfë¯ùž¤VßAÛ|×m5w€¯ßâM8÷O©,¡Ö† ªÇ—¥îéœ=ï«6uˆ&îk!œàVn›9d½5¸ÅþÀ9ç­-eÅÕÝvÕjçÕHÛòǧÂFžVWkk«Òq¼†€¦ª˜HT^=lgð­ôk$3NI$ ÎÕ4kÎ Ûì9Ͼb“×sç0³Ô ·õžOùJcÆ”M†ÈƯ3×yµ¢p:BäGîŸFo¬²) ¥Îc²Ò®ZoP Á-•+”WQœÇ×ðjbÚ+o®0YíÜæ2ó8R¢X³ÜÌæ´¹B½«½¦%13ö«Å® ÍÜöBå7èjw–2¸2,bV°t©¢¦Ã­Ë«¶5.XÊ‚W×*?q– èQLÛ°ËŽÚŽ`Û‰P[ÏñeFYœ a,]a'ú| hñªÕYçA…|F!ÜÎNf²ËÞ$¤s•§º5j>Wtæ RŠ@~ô®’_™,ý¬‘0Xó y9»Ô!“³ë~\4ÒÚË9¿¹WWÿ?{o-Kr×w~#r«ª»½­¥Þ»µµ$$$±ÎÁÀø€Ç 4²„-±oÙÀ`6› ÇcÆsÃŒ™Aƒ­1 ØŒa`f8ÇÇÄ:’r·ZêV«ßë÷îV[.1DFfVVDfDfdUÖ½ù=ÒÑÓ͈_Deee~ò¿øýÔvWE ×ï’UÛ5®Ê&ð« ¾aVeý%A'½YÕ<[…90àø<ÆÒg8œP0¶ÚØÔS|Ñä9×\œLcÌ{ʰ‹åtÔ7¸mâñ¾<¶7¢µË—{#Š“Y…Wׂ·Ö&Ôš  $/Pà§pÆ çóDÛkÛh¢í»¬Ûèà^O)²L"f2°f>ÈÓU‰‚ }•ΣIv~y<»ØP¶jI4¯²mÚ‘–*ž‡l-;€T5/²kÍ X€]iÌ-M=]šçGƒlM¡àŸQÄÒ˪º­ÃãæÀWÕwºä~eÏY­¨é)¾ÈÐKMx= e¨ÚðÝTCè H½l¸p›÷åOç Æ~ý’ó^@q¾HòŸòÖÚ³³Þˆ‚I '¾KÀR¯íí³8݉ni‚Í›çý¶ÂPô¼­Ámø&²‹%ÃOÖîy]C/˜ÈÊ@q8¡YGÀ[kWw/¡ KÜ<]†ÙP1º‹ Å »£2\ËžXÛ€kn‹6!Ã4ž^âæIûP†®ŠE ÝAÀm·eÎcŒƒš,ãÕÒÎëµÅ›ºÆáÆ^tÞwƒPkp_*7 \’PÞð"Ú2 gÔµ}›ÜTIß²¼‰l åóc*Ú!^bÉK‚É'm ÅuÐW;F4//oí¬í‹©wÅêÀ¯Ì Oý•¤ù–×ÚÖBj=²ê¾M½½E¸§p»j¶Âƒª;ɹ <ЇwÎãUèoáå5 k˜-yZÈ«{<”aµÏå^‡¼øžGãö¡ Aр͋Ðí­Œ·¢Ó&×vx‚MÀ}¢8›'Ø­=VD p0¢8žÕä«m·m¼¶6ÀÖ&ÔV5 ¼¼H•lxåLg©ç¶8¯6·À®Õ†õ"ÜN|ºRGž1€% H‰XªžÙˈ¿ ÌÒøÐ&§ iq zã“|¬ú1FžðlS¬ì'ÓòØšÃ/!üÚåŠa" íÐŶǪ¯z¶WÞ*µzM¼¼%¸¾ïàd–†2h´Ö% 7O#NxV–õqšïEÙ´f#”¡›ªh›][jÝÊ–··€»!¯³¬ßÙ<Á^@koT“4|!Zsë6›‡l.f}«[´[ P+$<·2Ï[1>t&‰ÕšCKˆÝŽÏ–‹yc Ü–õ¯öâ¯~þ—àžûŸŸý­øÑÆ0[æðXó¼T]ûM‹;æÞZ¬ŠêdkðV£fð˨J?Ëç]±šôf&ÞÞº¾"Þd”z¶G>]±ÁóÕÞÖ^^Bp8qà»·ÏãFá&yyË}€ã)Á;;ÒëÆxëb…w vE(Ã_>½Ä3 BºÈ¸°Éb=èöH].·e:¶ª}·ªOœ0œÎŽ%oþ…Œ)nŸÇÕƒUjèÛ[-§oéá+[6 ãÈ ñ¡Õ6À¯qÕØ– Dß­.Â6ŠÚªán>ý¾ï­Ÿ‡ïýÉwãç¿`,Íœ{m«ÆTÉä#Öž|lÉÒs…}BrÏí¨ì¹­˜‡ŽTUQep¶ŒWJ?›f°ãí­ô¦çgìSŒ¼jø×ö[ôòÆ©|å›D›x†mïlÉF1®¤¡ ªë÷2†38”à‘{M(>ø´Y(C1º›òæèöB¶·Ú–ö¼ü`Ÿ·8ç³yŒ½€Ç‰VýÔ&>Åé,A$ñ:ö n7¶+cá6ȾŒ¥ERí<”LJò¶ú7º&·Ä®Ãm«ÌS MÀϽ·Už[•€ûï»ßÿ ¯Á7þÈ;q÷ó^¡ýpj¶ ±S×G:¶¼W.røç·²êÎôÂLÏ(ÏÚÁ½¶Yl`E ¬˜§jm¼½uÐËá–‡%Œ¼ÜskC«œk¥Õ{yY¡ª[¹?Á`Cà­‹á’´ÀÄ$ÏÊ zA¹ŒÀûÜ##ï5eè$‡îº—G]{q°²±·¯€«œ/€“Y‚+{Žôx±Ûá„âÙ´4ðNÁmÍ=DÛ[[PÙóV¼õÃÊoê]äë•ÍϨoó®JÑÞD¶“‡h6/Ʋ d³e‚×ñ›±pˆïý®×á+¾ç_à/ÿ´Vs¬[¨ékÂåæÈ €Œ½êóÓdãXÙZœ¬æZN˜½Í_å®6 —dÕÛ‚ôü¬ZÕ˜•ðZÓGr°¼<–ž—Ð^Vdíhƒ†À[·i¬…2ˆ¦¶€w×Ã&Å«áÕ eè$‡î†6¢ènU²¯¹^ÜMdQØtÜðtÁ7¥e¹]Æ…窗‰›½Hônëb&‹ž%¢™ð4ÚÊ¡š-Û¶Œ‚ÌkË=“…°M;aÌ_fËÕüÀâœþÍ·|&“ ¾õ›ÞŒ·|ÇÏâ%ŸôÙ5“RÒýhU£ì#JH–ãväʰŠ*Õy[Æ—CÅÆÆº•˜Jè’4èz)AVz7À 6ƒWµ½âÁb,ý"dˆ3xm ¼2€4Þbûr(ƒÐ/_8%ú¡ ]”ÿ<º\}óân"L¡/€[´}2Mpm_áÕ-Œ4qVÞz»ðÞv·MÀXõ,=·‹Ç†Š"ÏÕk`ÓN'¹Äù™¤»ÝWvõÅÅÐEꯢ5àÑ×}1Æ{{ø†¯ùR|ñßùI¼âÓ¿ º“®OdOmÖ'íD)¯nÇ_Ž$ð¦á­ÕciéçB‘ªk©«ü¶¦ÐËÃ6øÊHà‘UPSy7+l6ò–Jþ¼,Tuã©ÂÔ©;¾qŸ cjOju8CÊ0æaVª!.«w÷¹GiV†,0•„2øâ£{µ+{Q·8Èl™`Ñ•eYsß%y³¥9¨ö në @x–ÜF Ãù<É<·IM€¨M¨5º6¼_š6¥Üs; Vc&uUL¡Ö´¾û_ÿÜ×àíïx¾ò-oÀ|v†Oùk_bÔ_:g©Ô"8)üïn‹ƒÉÚ¯C†¤d¾IºñIÄÚVVªÃP[B¯CHæõydňŠª€OqHkþ…q‚,?ð2bHÖ¾„z©æ”­oÓpàx–`3,¼Á–ww×awâS¼òaž•ácÇ«¡ ¾³z½ÚÒºTF0d3]Çân"LaS€[Ôñ,Æ]nõyp8q0+•¶í½Ý4ÜŠeS‘‡“1îi¼sc¾\Ïj2nÝØ&vÌš{‰eC9Þ¸çMß~œðLÂÞ$Y»¬Ëgüן…_øåßÄ›ßð…XÌÏðé¯ùš•ãU#sbÃŽ“–`ò04_±‰LììW¯DÈ—ýe¶‹öy_õüšB¯ë¤šnæQŸŸZà“¥ê£8ÆdY„òÔ~m2hÍË ª€·*vw¾dˆJ¡ ²¹ÚJE¶K°K Á‹îp4vð—[d•(»ªŠ¶7Sþ@wc’ÃéàÅmÚÇÖ\…§m$K4^ø·ëìiÅ4Å||ż*û¨Tôib…e÷Ôó&RžDéÒ¯9 ëŒ«kC¿Q3˜­ëâdž[áyÓ³%bÅ&²&ù僰µ§è'}ò…8Oø IDAT_þßo|í«±œá³Þð-Ò9U©.ü@Ú‡¤ç'àp<“UШ+a"IXZ…Œ{cÅ[‚ NøÔÐ+ï[8Öz]Ê_Ç)ìTW‡nXÙ´UÑ'LÏåRÚ¡é1åãTC¤lºå?;NšMÂ#˜G|ŨösT|@ÙØu`^ePÍ•÷iïÝ­üN{¨ç¹ØS¼ïɦ‹¤»ªhƒG÷âH pä6kogžÅCdzUÐUu9sЕß_À%Yu)Ï!X„¼‚Ñ­³IÒÌû\5žn½f@ÛäÖIÓó#<·º¶¢ô%‡$¨=ÖTàã^öñøµó»xý£Ÿ‹ùô ¯þÒïVv3Ék›õ)ü[Àmùüä–Ô —ÏA=K=, 'R€­€VAo}_õœeÐâ8<&yPøŽl³uoÚ’dàŸ[œËrj?#[SÞ\ß»+^G>_¨ ã»]I›dêqk²°¼Ù¼ÿ]þ†ömÁ®—z¶Ç>³âr–êvù÷Ue°»º9‹¡ ²MY¦°k0í ­åºpqd+.פ­i¼«‰.:ä Ïcì¨âÆ–ÿ{äñ sÕ¶ó—…í®mïm-ÜV-+#/2ðŸþã¿Ç/þÔßÅK^öÊ ‹»¡kû.î½ïþÚv”PPš?º×ÅÏüó·ãÛþÛ·áßöyøûÿäWq×=êmZD$Oý¥zñªã>%¦µ6€5òòVïÈã›Ç%¸]¿ ¬ ÚÇ^D«±¶’©æ$°«²¯‚]Þ~ýe¢ vO”&¦in@Ò }Ø¥”gexöLv ¤ »qÜARÁ­©·S¥ÕøÎ4íW(I¨×Ì#©#™—q¥=É_GQü¾Ìæh"]Ø c†E”Æ,KRû)Œ·Ž×UédÆ+Mœ•6¼º—Iq²ùl6èv$So®‘må˜6,yJMdêm6 °x©øæš¾G+ì°4ýÅt™ÿÜéû¹6—<ŠIœDqž‡u¾L°ÍJÿ{%óÜêè‡~äÇpppˆ~Ûçã»~ü—ñЋ>>ÛD6_&˜Š ¬©"LÁz«áUí‰T÷Ycäóßâ^@A5«9Ù€ÝEȯËEÈJõ0^·¬Ì ò°¦ñ¡å"=ƒZÛÓ!(znÍඬoû®ïÅÞþþÁ7}!¾ü{þ7Üÿ"yìo×Àê€×(¤|SèžÏ7$ÒB_#¨QÙW|†0ÝD&àvðeöMÁÆì2Æ@ áa O–ƒ¹˜À—¹8Ûn«B;º„C¯.fe8‹q0ÊC¯®¾6¶  Û‰.š7×ÄF—ÐÞíù[?²H½^#¯:.Ësx¹Ôó¹|Í÷2AnàðêIŸ`/p¤1[&˜.ø’¥ôŒV\]ÞB7q{Îà¶ç¶¬„ñzò ãßËW¿õ›0ïá¾çMø›ßñsxÁ+>síßf˜ä1ðÖÅðRÂ=·9ܪF6ƒ]a_Ö寿%í#ÞÚ Þ]Bxéݽôú©)m » Ë0‡Ûò™ÎVü[À %$Ûp'àÖ–íÌ̽ºŒåù!C”¬çZæ6šyMËc©>#¥<&y2$÷àN“¥¡ ±(0q VSÃf´  . DÙèIØBËÊ6¥ó}E Ãù‡\ßwp:Op¦Ø Ü¥â„áÙÓc´.0qµP¼ò¡>øô;‘ä ï@褡„1œÌ\™Ô߸Ç·ÏâÚv[•á3Ÿ¤8ܲÔk{û<Ê6‘51mÇÛlÉ“ÛF",¡Ü®„#tœH]Æ6/Å«ðîßü?ñÆ/z5Ó3|ÞWþ`¡½…åf.åžÛIšêJ±i6o™ÄƧyk»v6{ê*£4û ÜíO’1`³ nÈmõÔ9Nê¹õH–Û¼Z#ËWØd1×]ëtc%C(ƒD%xÑ=Ž&þòc‹•œÉ]hÝAƒ4u6çêV¤öîÕ•%ß%­<|=—+— 'ÓóY Óéš|”Æp»š¡³Óhà±{Ñ#/ÁOýÌÿ‚7ýWã¾}"^ñ_Ôzx·pýŒ}¢?Å Ük›†ÉÄés¸Â¡À¸GpÇy– Uê¯MÊq„ç–4<‚‡.îœÇXla·ÿ"d¸uãÊ…×ð3\d=çÈÅÁ˜â½O.0]t÷ý  ;h¦ãE$®í×﬽2¡xæ¤ç^]‰(å9÷| Ï%˜‡ Î nžæq!•Æ×6#«åwuá-óÚ& ÚȀþâýïÅßþú¯Äg>úÖVëR`/p0 øÆ .àvqí,d[ÉÉÙFNúûêÜ20,–¢Y1?ðöæäR¾ánÜnËr(pýÀÁé 8ÝV(ÃYŒýÑÊ ÓØOC>¶ÄÓwº e@wÐ /ŒyÎÄ*<ŠÀM¶’JEK°ß±ÏoÂóe‚ÛÓÕͲOAiíÕÕäËÄ(|ÁtL·5É“)Ò~uìµ5”löúÇïÁ›^÷ùøäÏùŠ•]Þ¾þó:€ïdY¹-7ʼnȵÌ·qxè–Îqr϶ŸÂí¶X’o"ãðmì~—ÉMÏÏØ§p–ÕÕÑÁØïRÜ™ÆÊ<Ó‰g³aÊ0äÛ]%/|n€+øèRš™§ÐÔY !+@Er¯îƒz¯îÑžƒ¯¾¡ ­æöŸÅM—M}—€1`&xæ$cÝÍÏè³+Œ¨lX]ñìa«p+âëê¬oÅk+“â*ûóúÿo~ã£ø«oøÖ•¬ ¼½Ü!Nö2Ï$­×`ŠÙ3O+‘Í–<È ºd]Ó®nMmؘI¸Çv‘fš(®ÊX™GC#žƒ40…ë˜Fl7WàÜ8pq<Ý^(ÃÍ!”A©.öGï{rau#ẖeÅËe†Ìüröà°¯jò}Í– Q¾ô¨úŒË—àfËzûj8ÔŸŸņ ¤•¥’„Žr‹.çgj» 욎‹Â|Ç;%n)þEôÑNýµ .ü?ÿ×ïà«ÞòF|î—ÿ`–G7ï³ÞËs ö^º¹ o¦c—–R­VfS·¦í*©l˜À²˜Ÿëä©À<ǰ€ƒ…yp±• yaÔ"w—eyŽÈÌáVÈäšXp(pmßÁÙœàtž‡—Y™‡†‰¤ʰ?²¿²ëy¯xp„Çž ñäíЊÍt/™¬@t‡ nbÛŠçÐжÐñyŒçÕÿ|Ž&fËÍyu˶]‡Àw@øæ§óy²VA«ÎFý˜ë°kúÝ4]ÀÎyt(¯PVç5dè‘×V¨bÊUŸæ·~ó×ñ¶¯û²¬2ZÞgµW%ÜÖ ¤„Hð‘ŠN¤þ’µ7…\åWh®ú&øùáËîžÆ²{“$¼„ö2d˜GëÅLÆ4ùì:6|‡dÕÛ¬„%X<û#îm¿}¾ÅP†˜áhLk È\6Bð¼çø8šPüÅG—+Y}šhÝ2òxªØ6º».Ãú>?#égYD<7'ßM®þŒžÃó…žk,ØzMUíE’Âí4MÌmÇkj»²qUªj¯>ÐìÚ"à›Éôà¶kk6”]i< u—¿òK¿€oû–oÀ¿ù§ñÒOýÜ´_ÞÓwÓ"#‡{& Sµ_FIk»( Š>]C®¼þí»$Ë– ‚Û®½¹‹ô\ÎC^«<ÇZÛí¦ViDœŸ±GàÔœ2<¦íÜ ÷¸Áþˆâd&ß8lü+,·b†+^2oôM×ö]¼êaÊ »ú(Óº=ÕE _PÛî‡W×$‹±ºc_ë;¦˜ÎW«ÙI™hÚ.”ÜšxMmÌѪwëuh$-½ëÐú%ʤàµ-¥ð-©Éðÿòí?‹øžïÀ›¿óÅ ^ñ™Ù¹ð=’m(s«à¶fàâ¡8ÉKìΗLšËT ­Û\•ÿ¼`gÒ•Æ…‚ Q¢|I\Ÿ‹þ¨mæ¸#Ÿbâ+à¶Ãߊ‰i ŒDxGñ%¡ý›¾Üð¬ öGö$¡ —]KññŽð¡gB|øÙf¡ èv %”ôÄkªlk0?sê·W×ÒWx¾H²”1ªÏèP‚ý1]{#í"D@,ÁÙ 0#kÞ]YŸJoi.áq·UÏ ²×V¥ºç˜íBÛlð?ý³Šÿþ¿û|Å÷½¾ø“xÞÜÖŽY B|ÓÓT”~Ž˜1T^Û6êó³éÇÿÑ?À?ÿoý‘_Á#/}öF|Sbíœk¼·Qº‰Œ§þb+/Z&PÆûlß‹xnuç£kEd™G K™×¶CÈÕš;ÉáìSPZÑVë€ASƒsËÀ°e˜`­Vm”ŸÃî¼¹¦–íÓG“Š˜øK¬+{^õðïjã©~žút;ÒEóêZz%ÔÀ®áülÀ¸ª=!Ü[p6Op0¦+—=¤Ž&nŸ¯ÿ8{"`èÝ…¤‹Ê»[Ý'ÿ·®—wäæžÉ'÷Y%»º^Û‹¨úÞïÄ/ýâ¿Æ÷þÔoà‡©ïPù|MsÚ¦^Û°MøM<6!w”z&'iF’Jû†ó©~ÙB汇é&2•ד¹TÎð”\c/…["7d¨à²ðï(ÉS¨…‘üåÕä;ݤ77“ˆpû<Æþˆ&$ò]‚—?à‰[!>tS/”a] ÚU¯îE a°zU±°*Ø=™ñð…¢‡C6æþˆ—–í Ý&ìBÖÇл[e«2ºÞèâX²ñÆÅ^À·¼cùÏÿäðšW6Ï †ô?;'àkßú6¼æÑ×÷åéÑ|ç·þmü»ßþmüÀ?û·¸ëžÕU(ÊrÚ2Ì£rê¯ê¾¦ǺéØ\·qý”Œv¹ ÈbCçK¶^"ÜäÊέ)äŽüÜê ¬)! Œ1^!/ IÈ œÃª¹˜¨ (æ¡ Úy‰Æ.¤¸îãpÌCꊟ  Û¡L½º&Àl4ý az<-Á¸-ØÔžÈò_Nç Ž&«oß²1'·Oã´ßúù¸ëcÊÛËçYç-µ ¼&óåýªç¬êG Ü H– xUü¡w÷ >¯ý†Ëb•jðSØ4,ÿ¿¿õv<ù‘k·¥‰BE¾ñë¿ ÿùþßÿ?ü\¹~7o¤ñÀdI^…lVˆj ·¼¯9àVާ Âs+òÜJó$w¸QZÕm&X„ò{ŠtšöWÛ›d±9Aê¹õ%p[cÈP›C.C¥Ù&B†ÈBU·ª‚(•SѲmv@õÝ-"†›gÏÊÐaÕ¸]ÕÑ„‡2üÅS éj©Ðº–dêy3²mÉk*ƒÉm€¤ª}Ÿ`—·×÷šžÍcŒ$qk%¸Üó)NÝQĬΓ±yà­²W¯:^Þ•eåÀAù>&OcZÖÙ¿/ÿô×®ÍÑèØ÷ïÿèwkÛ”«·Àr¹ÀW}ùßÂ>ø8¾ç§~G×”ýÓ+‹0G(—­n¶¼¿eïmEÇçc·ã€ÀQ`~¨ê3+„#Du©¿Œ=ªöæK‡Û‰O1ò¨4ä§vžíM!7a ‹4fyQ("bã\ê@®€ÿ‘ÇóOëvlxZë¾»$nŸÅCF…<‡àãîá#φxüæRú\@×¢Œ€i ©Ò»ía—8žÅ¸ºçJ-ǽ2¡¸ygv éaêÝså}6¼’ƒMâky¿ÕýÈË7_ã1ÓE½§Q7ý’ô'bòðÚ0ðó•Ámi®³éo~ÓëpëxŠïþÉ_Çxï ëWT\xI˜…y‘ª8Ûâ*×° ·ÅC„ð°–IÀ_Q/NÛÜPT"K‹6/‰Ê!¶¹„ õÚ’ nëìo rxV„EÈä!^¦s4øŽ3øOS¥.Yÿ½€Âs îœÇHóïIîµ×ûy‚é‚!ŒÙàÝ•è¾kÇï{jE¸zí  kY*`2i|¹@R>GRï3 ±¯ ²ª1evÔ@¨ç‹#VØ­-ŸÿÈ£¼dåÇhk®&ó-Q5Žt, Ð+4ò p[h sð¥ßR|¨j^¥ñ‹Òà•>U7ð¼!(•&VŒyrrŒ7½î Ñ1¾ó¿ Áhœc9mÓÒ°±üÚT_;dž^Ûº±µáÖO=·5p[;žFŸ„ó´\ñ"L+òØÛ‚²¶€›Ÿ‚ ·•cX9þgõ<³MdQú’Àì$Pe‡¬µ1ÉW:Vêë;7\œL㵕&s4m% ïyl†ßàpìT´¼œ:óP†<µÀ­³<”aÝ$ƒ[ñº—vmͳ†lywÅÇÓ×\É‘Õq¯ì9xúN©4pÍ\n·jœº~¦Ð˾$]VÎá6Jø ƒ€ÛUˆ éw&ÿ³0Á2Jà»´tdµ½¨´4]&Æpn2ߪ9W°©‘GV×ÓKR¯-Á8 Ùw»W!¢lª.ÔÏÑÀ»"›3šÍLe”,À¸ä}«šÚÓ} _ôšÏÁ}/|¾ìÛ~' ‚Ùi(Ýgúm@-·ÓÜHo$צ+ðfn*âlça‚$ÉíÙ‚±ªù©ºT+¥È2%7Þè}Â2ä†1÷|‹õg³4®âï!Ù†;? K04½rþ÷G¾ Ÿ'êMù) IDAT”…k"àñ›!Žg ¹'B$ºçª‡Ã Å{Ÿ\  Û•L½‚Û‚]@" „H¬ †B3Ï âÔó”µ7gÝ\Máñxã®Ã²n}ôɃYXð´„ Ô¯¼O~ÔôÖõ¥tuY ˆ“çó$Û´S‹²[¸üæsn|: Ûòy•Áí^n*Ú.üW¥Ç _ôùÏÕgã5_ó£¸uÆ f®;5£2±Ú6Û*­x1{9ev·‹Ôk;×S5ñºnpiúò˜ÁmÁ‚Ò–rRvÚ3µaŒyÄò—„ª9IØxq „`ìñ˜Û:¸­3/û|—âÆ!Ái¼ö’n ¹M.Û;ç1ÞóØ Üàh2„2”µ8xÕCãt»Ô.À.o/ÏÆ´÷šÖ-…oË» ƒ¹Vò:ðŠ\™cŸJæ•ßÎ<‡a/ 8›'«‡̹é¼Ës_a3è-ÂÉ(y[„ wÎ9ܮćV„9Ô#SÝg•öQvW>JùùÙ ~~ ˆ„±¼ªÛÞÿ~¼îÑÏÁÇæðê/ýnåxM¼G&=´Ìk‚-Ÿž  ;¸âÜc»×_¸Ç-z«ìɾ;Gxnƒu¸­´¥¾5äf›ÈB&-Ïj¸&ãÊìPÂÃ58ü›]¦/âØÕ=ç‹4”UÍÓä -#†?{bŽnxx`eX“Cɺ]K (ý‡Ýªö6ç IŸ®½»us•­4µ¼ÇÓ8Û#Wjñhìà|Q*÷Ùxuæ]7÷âüuú–.㜄 ß°ssž`^ØDVæ HõŒ1`…éÔ~³ƒIÚ@‡Š°'ƒ]‰jnI!ÊåÏÿôñÆ×¾å ¾Ÿõ†o1²4{jŸ¦^3‡–_ŽêSù›~m"k‡€Ûr|¨ŽÝm®Cól '÷V¾¨kÇ<§-¯F¦þ4y9i¹!¥™$Dé\Óë£ äµ¤¡ Ó$/`QcÇ’2ºâdšà‘{‡P†²ÐÝäÞÎuo ²1ª¡Ðvù¸åöjˆ´Ê ·n®¦`.Ãp®U¶t€7ŠÎ ögÅVÙ¥‡c'³X=çŠyËæÑ&¾Vzn·¾KÒ]ý nŸóÔ_º ª¿’†UÏŸ¶Ëôª­9˜ø4‹)ÕU”ä™&¢k²ÿüŸþÞü†/Ä_û›ßOÍ׬ÎI{¹Œà@³­ª™€ÛIÀ=ouhÛä}$Œù¹\„i~`Õuan«lVÃ_~Ô¡y¶ߥæPZuÌÐC ¢ÂK‚y†Y{Õ‡¦.<ÏÍ5¹NÚB®ïR\ß'8ž&XDI¥.PôÎteiÝ J sŠ<»wCsÚÜä6ÊP=®|®¦`^9߀W>g‚ÓY‚‰O×nte{#¾PÜ¿ èÕù E1ÆÒ‡ ‡`2œÌx|Z9ËR›0…\.™M§H•C¶éCÈ¡é†;¸žFžÓ6A”&ãH$i«~ÿÿþ]|å[Þ€/üêÁ§üµ/1š[ãxbƒ~uMÊã‘'AàÊ=“™­ó©¿fiê/Ù9Ô±onëlŠßš[ðÜVÁm­=ò?‡qž!aé‡vtéÅ÷Ÿ±O¥^ËM{qeãRJpußÁùœðÕ:ƒqmh1üé<+ÃÊÀ5€î†e»š@¤)ìíCšzwMút¼6æ'"·®Si‚Ã1Åi¼v¬rî 篲«òö ÏRàeK†[§ñÚòœ°¶Á•ÙÔº7„a¥¹‚=ÇA o4…·z- ùç¡ÚÓXÔ¿û­ßÀ7|Í—â‹ÿÎOâŸþ g^’Eï—JžÃC&>AàÊS¥µù.Ä&2d*Õ±5¸uò°Ÿ ÞØl2ÿâŸ&6‘ñkRUE{Ó€ë:$Kæ+~_ÛôâÊšÇ ãå¸)O™¨3®m ¡ ¹ÐÝ‚Ô g»r;éß­@gƒØ]É »¼:ãËç°Úçd–`/  „T Žº‹q¼>{Ð+· |‡oxqhê% Y¾i.ë¿~óÔÉq«¿åùÔÙTÙÖê¤m$—çæa ¾ÞŠâéªòœ¶ÅüÀ¤b~Âçù«¿üN|ë7½oùŽŸÅK>鳫³ðLkb¢ø=º”d©äÊç§ Ô¢ª[dÊë¤ ØÖ4hì ÿÝxŽÂ3Ù"+«þó2ÎÈ¥û¨Ì`² Àu<[B¤mË‹[›±´ª[ÄS$Jöãmů:„2p  »EÉøµ2n’ ;ÜV÷±»²öUƒôx%UjmXNgÉÊMF:áÓž=‹š‡"Tu¬? Ï\—€‚$ak›äêÀ™Ï¯üÊìÕ=wšlFS¥cÄsHnëFâ‘Uu+{ žzÿê_¾ßû÷¿ _ù}ïÀ ^þiú%jó°­û>8¼¥çÇÑKå¤#dyXgKyiXù»·uvu¼¡e% Ã"DvM󿪢¤7¸<7ßP¦ãܶ7ŠórÅaÄC6««!”aÝ­K ÛñîŠ>]†34™o“>ÅÛ¶1¤Kj  ç‹ûc ‡’J›“€àtNVrxZ^Igq8/-Ë=eó%[il²±M6GnC~cÕ`µÝаƒë¹{>ÏSêÕÀm³,7ð¢äñ4Ʀ¡ W.Q(ú=’-àmæ­UþÝfxÀ†€WÖOgÞÒñ̽hs¶LpQ¸E¯—„*GEà&XD«v꼟Æà‹Â9P¼éxlÛn.3àܾ9×¹·ߨäµ-Ú²—BGwÝ·ýÃ_Ã{ŸgÕn“iŠ’Õ_ßó¶2¦¤Ë2’—~&Ä’·V£¡ °`nk—îU"^y1ié缛ʚB¸&àzéËÑÈ#Ö®ŸÊö•¶ÔG–¿ ,Âô^£úŒ;¸E…¢ÀÄuÞ¸¡ èöPj¯lE8Ö;mÂ[º©xXÝ%ta Uýt½¼²¹œÌb\?p¥ÇНì9xúx•t«òÛêŒÝÄãk~¥c*ìU ŸÚ¯¿1Ws½WdPÃ[Âò%ôy˜Ç‡ZˆJ¨Õ«ßüí ¤´‘«ã1‹çVÀÿ8Ðó¼Õ}-"4FlX‰ÿn„& m´8GAnq~Zد»Ð Œ ^Û0©êÍxoËýüÔs;jà¹Õ«nüu[ëGcYµeXŠÿ&jƒm!—€ÃàL%+›Ð·BœÌ?s¯¯t.Š{^®j®êbòd yÜsË—•×ãCÃRê¯6žä®eë$à_v~LÆàEÒJdK^²¸Ø_Û–E 5W0#/K 5ðoËk' ‹e’0V ¶¼«}¸­9ܦ1·mà¶i¿:À ã$+û,~ߺ/e[æã§aAàQíkqâó´|w¦ñÖB(î¿îo~ðŽ5€îŽi“ÀËíi›ÛXXCÕ¡JˆÆê ÊôÖŽ[ºÓLŒ¨êpfýpâ`º\¿ã5Ió¥ãõÕµÅíIþ(™[í]¾EX@¹«€·‰Ÿ/ EI!§m©È@å5¨Ð.ø<ÊßÑ Ü¶øÂk;[®/ý*ÍŽg?m¡VØÈÏ©mÛj>…ë‡vðëRćö nű@„%à¶®_“±*û)þ΀,§í2,ç67h ¸„ð°–ÀnËr‚ëîÖBê^êvUè¤S3x5ïÃûmÞË«žK³¾å©·7J¦Ë“€JÝÂ+¦ÌÊɰ¦Mï̞jn¹mYu{å …±¸çÃ-}gó(ÁbÉ0 ™´âœÌÞE“ðlËà_W¼2^’m$“.ýnvLšëÄ(ÓÂõ3RÀ­Î˜º` äùE©]†v`[ÕOgn:p;Ná–´„ÛVý$[Æj‘¼ˆH“—.Àµ·²±¶ÊpQ7¥  »ã2ÞŠN:à׫XØ-@¯¬¿‰·Wô?™%ûiÌ–Ê¥ `äà|± º€i ~¹-ƒ‰Ä.·]Ñz Ìá–ƒ ÌeÞ±4>´.+† mê¤=wR€[O¨£…$>Ôt2¶—¤åcèõ­Äõ3öÉÜj{† 0VØDòÔ_ÅMdJaC¯­Îüêàv”–Þ¹ý‚Û8_‘ có{’ ÀÍ=Û¼´u—X8ñyÆ;ç› e@wP¯U¼ÀæÂÌûmzåóQ÷­›S·WôO/±{0¢•©Æ(ÆÇç±t~ºóTÏW.]æ6 8û| yÛ¸õòÍaIL ©¿Ê•ŠŒžB ‰µŒELr nu!#Š‘…uÌKK¿kõøÐMºšdPyÞF>ÅØËáÖÔJ……p„0b+Ç»ðÚJ¦`Ô— Há?ðV onò y²Jdª~ºuÃSüÏ–°I¹t³¡ µbÚºLìÚ*¬Af³Éæµú~éÛÄÁÖðNSx¯ë+ï¯ß³y‚½`}I¹<Æ~@q>OVÁ7ðÖÊæ›µmÀܦWÙʾé²2¦þ^Ûe¹™ægk4¡ž‰ ÏdÀÎ,ã^Ûù2- »VÎÔ|NmN¡i:4¯åØçiÒMÏv¨ROc˜{mWî][Ûºþü|Rð··múŠnQœ{m—1_•©ÜWgP:ÇzÀ¥%Ïí6EÀC|É~ Û<ºƒvJÕ€ªÞbÇyyy_;ž^“9ÉçU:nÜŸ¬;›'8× Àá˜âÙ‚WW‡lÍ`UÑÖÀIj Áù¼'%üÁ;ñ)ø‚8ᛞ8©7™T±l—±·›ŠŸ#$=?©çvT‚ñøÐô\FIå9ËÆm6ÝU ¿“^üü +-(R9Ù­ø‰ÐŽE´^úyÝLýˆ]‚­èO(ɲI.Y±ºiÏ­˜SÂr¯í"J²r䄤³“Ø· ¸ëpK{ |cŸboD±tÉz8‘9ÆéwEè^©µ]v½¼Ü¦~¼oa®M¡W2po¯i™ó÷ê:Å\Ý’q&ÅÙbõ¡Úu úAfš#UfŸ`8©ç[X„ '3‹Wü¼ —.5Ôô±Ñõ6JH–Pö¼ÕIäU…v´zS€m:¾l8·"žq%lÃâdâ„ea˨œk¹lª{°­³!åpK¸ù‘mxmÅèa̲ ÅÔ~„lÞ{K)0r ‚4µWßåîuít·í¹îRè^"éxy~A¯¼oCè-,Üd^ò¹Uš—Ú8Ÿ²_ ]°Ü<ËKëÌÇ„jMX5¾rû”ã4,!ð€(áUãÎNcžÐ]1`°ª‚cÙÜú JS¸Mc’õÉb5´#Œê3Mµ…Ö[mújt^½~ ýÚšEê/’).JP«3-”’lC™€Û¶_o›þŒ!Ëi«Jí'³rB‡tà6Í$±k1©1㎀.äõЋmKè^Ré@oÓйÍÂ1¸¬ï«½²¾uƒ×A«Î:NÖYÈpóŠy›uCÏ—ÕÄN'Ãj^&1M<µåyP‚, ˜ç^d`™àöùzwÓÛmuØB·7o]®¥i‚´ÂTù,¨>EœˆOÊVxÌ`ÓU•lÁ6ñ›Ùùñiºì^ÓÁÀ¶PXHýµ”„vl j›Ø¡Ï­ß¸ £¼Y9õWc¸­iPšàPó¿kpËcéyæ“EÄp>OÀjBešj<ÚM5€î ë¡ u‡7½¼¿!øx{UsÔk™ãYŒëûn¡Íz+†Ã1Å3a¬l#Ú­© Àª æÆµ› 8¥›a‚“Y¼¶ì¦ó@­âɶ·ç66 -<“yØF½-‘ƒ•CY]|(´¬6—÷• ‡æ1Ûk1“†ãÊš'Œ¿d ¯­ˆÿæ¿«z¬µ¶ÁMÖì°8?"¦t›`Ç9-e¥Ÿ7 ·à<·îA\³l5!ŒëÛÛRã’miÝA™t¼¼Àv ·®¯¼¿eð•LÂtŽÒq,C†0JVâ¤d%ß%˜ fKu¬® Vͳî©ä¤Ê|—d;ûŸ=Á ®F•‰jÏlõ¸*é8\7y{wh!¦ÔÓ=JcE~à•¥_KóêÂñÝĤãäž[Ó¯ÎʃHý%ƒÕïF÷ÜØ‚Ú*[ŽSôܶûÒÚ†#¨]„ë«2uö»‚[AòãîÈÆª„åݪB·ºÖºƒ.¬@¯¤³.ôrÛF¦»_I4ñúбNf n¨K [‡c³eu¬®°¹:7õÌ‚‹öÝÔ³D ‡Ûy˜à|Q ŠÁ­n}|6]o+JÕÍÃ6|OÃkËŠ^[IhÇ–žGÖ†-r’ÆÜ’Ê8Á&ãÇ">4õ€W® 4 y¨lgÁë+à¿m6€¶×M”yóÔ_&ö+×õ½`p›WuKmÐk[¥t]j5†ÞšÎ&àjZͬÜ_f£ð•LF~Ã4ýÓÈ——¶\J°PL 0©óù³¶R»fìRëFHº¼\c7*û»:¸R¶n˶(Åó½·:,-o6ÙÈãËp×!Yu;ÏiK\º«ºÉ ¢  Õµ«eøçʚƔ¶Ûbê¯e!õ—îm¼¶ÜvÜ:<,!ظ“‚×6®~áÚ–Ð4(•.ôÝ…8pÛê¾ óÖÁWfC:É„TMNgI¾©bÿpL1[æuЫnQ:å¬m;”o*#„W%+VêQÝ·u¶Ê›{¯æÃÄÖí}eÙ½N„§Ql~J4B;:Wá ›ž“g’І7fQœŸK*ƵG›µ·ÊP:?"æ¶ ÜÚðôSE’V­Ó¢5 Ir¸y¤÷ù^€e”¤^[¶±¾m4d]4H¢z¬¹íÒñ €/·Ó-üÆ ÃlÁ0 ˆª@x~ÕýÅÙ|õª»ùMe[öyHú÷„AyÃÖñÉU%»jò®õŠlà¾]öLª>"ð±¬ÌnX—³‡Ïœ&ß‘€Û±lCPÃÏÈiŸ§)«tB;º‚Y#Û’†nÇ5Ú0e+|%I •È 7‘Ýzm V=·}‡Û(N½¶ß$ÚG¯m•ºðèF1Ãíówn5ÐdMÖ¼½¶ÁWdžÜNÇð àtž`äÅT·Ÿý_… h_aÈÏ+ôoã¡5] ®Ëk3VÕä¡”Á›_ o"õ×bɀŪn›ÙMÆóŠï×sÓ° ¯TÅÀƪø‹Á<[F—YM>ꦀ¶(ßá! #_oÙÝÖwH¿p‰óh’úKØhÓ ÎkKÀ¯Ÿ‘G1r há–‡v$YH¶6‘Ù%è$d%xÿS Ü™ÆxÁs}Ð-m0@wP'2ñö݃/Ã̆¾fð+³ð]¸ÓE‚ý‘SÙ–‚ƒ±ƒ“éz ¢I¸‚j:·¤ÎB`Æ+v #oëæ[é™ÌÆÄÊ&²r‘mm"3QÓsî»iù]ÜšÚ•È„·±é;‚é97jnÐ8pyHÂȯöLÚ¼F„©(.xm ›ÈéØüúyn·C:ÊC;6·‰ŒÔóïPt1lWa "çûÇŽ#œÎ¼äÞ“`óØÐ´m|ù¥6 ¼¾2;r[õð«²gs†‰Ïs­VµÝ (Î â²gFn6Ǻš€pÝ8ucꌫ´W»òßþƭ㙌"ó,5·ŽRöUü¾|7ß0ÕtYYôbÈwô—K?ëÎÇtÌ.:¬œŸÔs;öäžÉ. XÝD¶(l"#$mW1î¦À–{nyþè‘GÑWÇm’n"! › G „_?O0riç/É]mD+®¾Ì– þèñž÷w_ñ:O¥tmEUa€}ð•ÓÄë+³£oKå \·ÈÀp¶Hp8®~û%„oL»}®xÏoà©mÂ@wÖLµá·…-ø)ÜŽpË˙汶ëUÝú÷Ķy®7ß0%ƒ[“¡¢ ¯-Ð|Þº™z~í—{%G¸µ )2sÅMdaÄVÆT¯5­–`[4QôL=…[ ,„#DÜDFNq~d§§«ðˆM€.Àçÿ—O/qgãEw‹»@wÐÖ¥çm¾²&²f]ïܞ¼átc/¨ß„1ö¹WW»Ø€j›†,˜>ÐûRí,ðª<“,+¿)‹íñ*k#É>ŽïåynÛ,+½¶Mó7½‰çWs>~ ·cŸ®¬ÀØj Išµc!õ4²vH:i|‹`+æ²IÏdE ˲#lz!üå1¨€[¡.çÕUù_U<ý­Ógó^|o€ƒ‘a   ;¨wÒRCð•ÑKÒFc8ÅñºgóWöÖoå¶#ÏžGkíÔ¶³!ªÕQÈÐ uoöu¦¼|§4‘¸P°aQÊÚÃç´}¥_‘ L ·š'"«ê*^ÄÌÌ©ÕÔûkêÉYñ¼<;p«ó3 KèåMd&¶Lê†"¬ö©÷LnS¼bc’½ÀÊòw)¸-*ît‹9mjQñ›_„ ò¡9ºáã¾k݆2  ;h'Tç°•Ý7 ¿|Ìz[Ša¥6ç!C®SÝvä ʽ; ªœf™!Ö;ËÿÜä!gŽ…ø²;ͪ¸eã±¢§±"vQºç,(À¿ŽçN&¶ò’`!?p‹ï»yèƒ$$ƒˆ˜dŠÀ'—Ýu»BòtUiµ6öl@m•™¦ð¶)……sY.ý¼ Â_#—Àox~ºÌê°©Ð…²{f‰ãiŒÝ4.ŽR§tí¤šx}ná—)ù#Úðé,ÆÕýúåÃ1ÅÍÓ¸6NT•‘ U®Å \›a b³Ë¸oQa÷ty“I—W»Az~RÏ­8?fŸaå»ú7•¸Íw¤G-àmìó<®]¤"+ç/†ÈÄå¬oµ¹þÂm •È¢í¤þÊàÖ#ðÝöç'éðCtºšUoŸÇxÏc31Ç×=¦é8õ=¶šA;´c P›Û´ë™´¥8)xm·X‰,‡[Ú™gàeûRó® [Pé‰[!Žg ^|oíeaÝA—NMáhîý­jªh¾ò€Kí#ŸÊç‘Úw)Ï­;]¬¿þ+£4ïq]W;3]Îà6ÝÍ-v¢ÏCþð3ڼї§·%Q’æ(m¸Û=Ký•zÈŠgr›ž×-½Ç#ç¸õ=ýÙ˜{ÀÙJê¯ÈRh‡î<šž¢.=“MÅÀ+‘‰ÕU9òMˆR`ä>í,cAY¶rt—%Ò¾ÙVSЀ“iŒ?|lŽGîñqu¯=¦ ;hôyµ5ËŒj6?'|’îüV÷8SÌ–‰v\pÍÔòþÂZyæÀ¸gÒÏc—Ï7¼“5Oãe‰µ¢9nùù1‘؉.àVç%¡‹œÁ¶¾3™B‘›^? VÓMxEeEÂËÈ—> IDATðÞÐp>6NÛ¦<“&Ê6äm!õWY”æaQ]mšªRW¡ ]}–…f|®JQÌðç^àÞ« ¾ËkõÛ@wР iF+è°Êh…qÑeÏÒ2õèœÍ“µÍ :9ŽuÔÇŠf*Q‚¬:™É²{œð‡Ï‘X–®ªWç¬F}ðL†"õWXý"½ yN“Üw¸ÕÍüû¿÷[ W?Ãúø]xt7éÅæ$Âé<ÆKî °ÈŸ‡è6PðÜÇûþàwðgðûxÙ'Ú¿ð ÒÑ|ɰ°Úï’,{®šB1‡[Æ1œŽ‹l©å͵ËG¢ë,›Dõ²ru‘<¶7Èâšr;XvïS‘¶Ú¶g2aOc´ýÔ_ey…óSµÒÕU½pÉôgðûxß“ ŸøñÖçÒMU´ÍþÐæK†?z|އïòqïÕõP†tÊ{ù×à?ÿð­÷=ŒϽÛÓtIu6KpeOÇ«KqëLßíÒ4W¶;¸mîÒZP^¬ÕPÖå:yžÛ*xËv¢g±;®Æ6߯'²øö<“}*2ÐV^Ás»i¸å›Èr¯m_6‘廹çÖdþ¦Õ&?ðͧ?ŒwüüÏÂûÄïédnMÂêÔ¶XD1ü—-q<ñ¢»ƒ•ûíº Eý},_ôÕøG?ü÷ðèk_Ïøo^»í) º„ZD<Ž«.Ù»®yG7 6·Êúüº›y€u…<')UÁ-cù®þEÈÖ3cXЦÎ[ʳ°½¬Ü·"m幩gÒݼgRÚ'ù.ÉÊ÷nm„vüþo¿¿öîw½ôëàûûv'~¯ê"Ït×ñ¹Uzö,Æ{›á‘{¦¡}ä…ßôÞ^Ê»#/°|ï/àZü^öŠOÀ y)î¾ÿù ´ÞË6h ¹pUë' ·Ï×K_4mããy¸¾¥g’ïD绨迵غ@×áy’Và-Œ–Ü>h+Ïå×Oàa£ð&6ä…)Øö1´ƒp]‚‘Kà{<ö¿âY;Ò ó'IŒ~øƒøÀûÿ?üÙÿ!žu†ÿ’/qû/,ôª‡ÇÖí~èæOÜ ­Û5ðà ÷_÷е¥dq‚å³ rúAxó'AXïƒ.¬Ž&FNÁÓYŒÙbøÉÛ𼊘@Æ€eØÏè›PÝù1Q’ä1ËaOŠ ´•çæžj;gT…¢BÖŽ0F?I“¢ç–ö3›Jº’°LWfb /\ŒP„£{ÁžÿÚ @ƒÃöF+tuÏÁÇÝ?²n÷]àéãȺÝ&º2q†Ð[¢Á!F÷|pÏ'l{*ƒ.¡BŸâåÏÕ.C…1Ãþà´—ž›]Ðá˜âú‹|·L'¼LñíówÎcœÎVKÃöñYm[G×\ß—}%Œ¹}žàÎyŒÙ²”k¹íD· B€£qz~Üqc–]“wÎã• y}:„WöÜØwqíÀéežÛé"ÿ}ŸÌâÕ\ËìÝønåÚµbMtg ;hÐEÐl™àé;î¾R<Ûsî»æáC7·»¬´KÊáÍ]{0!âöyŒ¨«‚ô=Aáü´„·*ˆØUÂ=JâúÙDÆNfIvMž/úûVKܸ¸¶ïô.X”°ìáöy¼ñØSJ€ƒ±ƒãrÑKÚÅbM4€î ADOÜ ñœ#·6ÆïÞ«žº­xvåªò¼ ˆ@ÖgˆèJ„p¸½ÑÞ¢˜áÎt{Ñ•áKÂ×SxÛ„græ`{<{½bC)??7\\ÝëÜ2œÎósyVZ•Ù„(®¥×ÏÕ=Óe‚?~¼Ðí"ãÀ«5öIètA´Œ>òlˆ®û•íJðÀ |z¹¡™õ_Už·y˜ƒmß!¢+ÙYVf8%¸3qû,ÆéüâœHZ‚Û®á-íàÿ/ûe9¸ºÇC~®î;½Ê–°ŒÄï›_›ÛX•q(pußÅýõóÓå `Ý„u“E¦Ð4èé#Ïòð…º%ä»\<ùlØYº±]Êó' ÏžE™W粞#ËÊ}€ˆ®Tö¼u ·"´ãvÚÑ÷ y%¸¶Ï=ÿWöú·Œ1B;¦[Z•Ñ=?‚n¡4}\™@wР ¤8aøð­Ï{NµW—‚‡îòñ¾'šY?¤‚·óE‚§Ï£ˆ®ÔvY¹/Ñ•6陡b5¡Q–+àíÐÁ•‰Ó›\γe!´co-ŠëàVóüìšG·×麃]0=u'ĽW]^õ®÷.>2 qv–e’Á[”n"Û%ˆèJmá­/Ñ•6ç™ä¡YÖŽù]ºÁõ}îÙ¾2¡½€Û8Y íØF¥.!/ƒ[G ÎÏ®î6ϵJètÁÄðøÍÜSŸ¨æ¡»|üÙó Ìj³Z‡7àt–à#φ|“ÉŽ@DWjoq²º‰¬¶¶jâyk¢<´ƒ‡wô-¶Q%Ï!ÙfÍ£ í¤º–©Î1nŸ%¸=qºåUÏåð/à¶Mò±®@×uH'×uètõÌI„û®yØ ª½ºW&tîœï~y©2¼…1O ôþ§¸sž ÞˆèJ.%¸vÐ ÞÎæÄnŸÇ8_ÌÐá™lêyÓQÂN¦9ÜN—»óÂ廹ç¶-¼Ùø}‹s¹í,2¾ËáÿƋñ½óÓ8^–ÔbÀºƒ]X=öÌ/Ó¨zóð]Þ³£ [ô¼Žlé÷ñg‚ˆ®ÔÞú]ižÉÙr5kÇ.½o.Áõ׫ðÖDŒñÔ_â\öaUFœŸÆõeØ›¨3Ðí(§ó2Úþ÷RÖºƒ]P‰ëѤú¼8¸qèâæI?J6Ö©ožKp<ñäíïýÈb§ ¢+5·"DÜ>qÞˆèJ]{&w=´#ðRxÛïÞtµ(¤ö»3íǪLàÜHáÿ`ÔíùaŒu–©ä2TE@wР ¬ÇžYâ•kÛ=tÃíӨ·KÒÞ®L0ð²Žxz±sÑ•šÀ›€^d Ñ•V=“¶á¤Túyžôöw¤ÒÈË=“ûÃ[•êJ?oK#ŸàÆ>¿~6y~º è¬Xĺƒ Ú¤Îæ nžF¸qPýSyw_qñÔíþxu}—‡%Œ<Š„ñ¥ô§ïD¯TÔW™.+÷"ºR—ž·béç] íû4‹)­‹åïR}-ý<ö)¯þ·Åó³k€t ´=~s‰ëûõ›¸îãcÇÑV+.ÁÁØC8nÆãþÀ÷¶eº¬ÜWˆèJ£ÜÚô¼‰ÒÏ"aWK?O p;Ù¼õ¹ôó$Èávâoþ…v tØõr5cÝAƒ.¸æK†§yÅ´*yÁ}×<|èf¸¡™qù.ç8” Žnž`[”ɲrŸ!¢+uåy›‡…üÀ;\úy/Èáv¼xãñßâ\žÎúu"÷ p»ó£Ö®n7¢èt)ô¡[!žsäÖæK½÷ª‡§nGYŠu(O ' ËùÅ2é/+ó"¢‚Vß ¢+ež·}{žÉ,´ã,ÆíiŒùrw¯ÉýÍ^ŽF5…cºPßK?ïhæù߯ùÑÕ®n_÷L  ;hÐ%P1|äÙ\¯. ìP‚nxøàÓËÎç'¸Ð L¥»¬ÜwˆèJ]x&Ϲ§q×K?¤p» xÛ…ÒÏãn÷Úª‘ÛT±ôó³gÝ¥}¼,åt º4úȳ<|Á«ÉŸx÷‘‹'Ÿ 1ïéÛùE’¼íDt%ÛžÉ"D\„Òϼ8ÜÍÂÛ.”~>ç׿áó£¯Í—~v(餔u_OètI' OÜ ñüçT{u !xè.ï{r±¡™].éÀÛ.@DW:(œŸöž·ÍCD×:œ8¸±ïàú†á-NDÖŽ~ç>šðss}ßí,³@[m»ôóeʸ  ;hÐ¥ÒG÷ª[ë»qàâ#£°Õ‡.‚êàmW ¢+Ùô¼ ˆ¸}ãx a[)ܦ¦êVdlê|ãöY‚ÛÓ§= í 8;Y‘”Mž]e¥ŸÓ¢Û^•¹LÅ"€t ºTb øÐÍÜÔ¶}ø.úÄ|³º˜ª[V>›soNŸ!¢Kåž·vp›ADê!»¥Ÿ áççÆƒkû›ƒ·])ý\—~¾LÅ"€t ºtzæ$Â}×¼ÚTLGWöÜ9ïnCÄESÕ²ò®@DW"(ÀmKÏ›€ˆÛç1NzMEp¥°ì¾ x+–~¾s÷z‡àÊžƒû.®8pi¿àv—J?û][è4¨7zì™%^vÿ¨¶ÝÃwùxÏùl3ÚMU-+ïDt%[ž7â\ö"LDSx»žfp6o¢ôóówz^úYœŸ.®mèü˜ˆ¯Ê¤©ýv¨ôs¡ c½Í3€î A—Pb9íhR]€`/ ¸ëÐÅ3'C¡*xÁ‹ ô"º’ÏÃÙ|uÙ®@D(®¦p» xÛµÒÏ”òósãÀÅÕ½~ÁíE(ý \®ÔbÀºƒ]Z=ö̯|h\Ûî¡nžF4šH,+ Ï’€Û„1Ü>v"º’ ÏÛE™ \ÝãñÚ×þÿöÎl¹q-KÏÿÞØ'€³¤œ•uÎé®jwWG‡#ìWö;øÎŽð¥«º]sõIe¦fJ$ÅA$1ù éHl\_„Ã7Œ ö:LñãÂZë75)§¢¨ýÖ§mih¤PŸuÉKôósHt ‚8†ƒ¶µúÏ@Açx[×qÑM7xß¼&o㩇뾣ŒDÈb×Î[^%"Dã Íù¼v£"WÞTŒ~ëÓ¶‚]€¬Èm^¢ŸWqH©h‰.A4g·3´L ,æKæCKÇußÉý£x΀†ùTÞœH§Q‰Å®·¼K„ÆZ¹ûwµ=Áü÷b>T‘èg¡Eä¶,³>ë³íþß>£Ÿ…~~î®ûrFƨ£KÄÁ0±}\õ¼­ë+_§k ï›_;ùëêþRÞ€ÁÄÃE×VJ"d±KçÍóýÅ(Bw¼_‰ÅRNäÊ›ªÑÏa}Ú–@­Ì3!·áhG¢Ÿu-.‘ÔÊ A}®{rþÖr)sÏ$ºAd–oÇUûÇï}SÇeÏá?hëòü±rصýëåL)‰…à Mk»ÎÛhºì4î["d¡kóú˜µÊRN’Dåèç×äm_d-úÙËÎm­Ìê#ë=ÊKEËîç“D— Ûõqѵñ±µ:˜3†O-¿ž¥ôÎ’EDä¶VÖ~¿vl¥$BÛvÞ²&²ÐÅÓú¼$'»¢rôó:ò–Ù‹~6[ÈTKñõ™Iú±-+,"«©h‰.AÎïm¼©ë±GüOjç][™GÐÑ™·‚`è]\õüùrª”DÈb»ÎÛR"º9¿l¶ˆ&^GN6Eõèç¼>¼­>U(›åhG0Þ‘…èç‚>ÿü˜¬ ë£^Gwÿõ~ ]‚ àzÀ·»~8^ ÌÃiÛÀŸ/¦)½³Í å­>¿Ü»øûõT9‰Å6·P"ÂѲрà ‹Ht ‚xÆ—[ÿü!¾ÃõùÈÀÿ=¦ðŽ‚s`:·ªvÈd±þcÓgñè!Û_Oɰ7K œœ,CÔ~NKÞ^#ëÑÏf‘/~<Æu%…j£ YžÏHt ‚xFoä¢7vË\¯Q)pUnäwU]ÏÏ]ŠÖ.¬ûØ4ë!‹JDn“’·0d ÑÏû·¢Ÿ­H} )×+Ž2΋‘è¡g·3ÔOK±¯;mëè œL=^Ì+ëtÞTY˜E¾˜INBÞÂûÀy‰~Þ§¼©ýl•–ŸŸ‚¤ËëbKšye ±'$·!ëÿ6Ht ‚øɇÎÀAÛZý'¢ s¼­ë¸èæ/8 ¬Óy›ØO7ѳ(²Xȉ™„¼÷Ãð‹ú=Äj¡œ´v”·p´#¬eÖo|® c@½¢¡m 4- "æÇgD£Ÿû#N†Ç“xXŸ¹ÜÆý8O›qä×¾Yñ´@¢KD ç÷6ÞÔõØ®ÚI]à¢ë(}S4iVuÞ¦Ž‰†U7d`•@ü›æöò6œ5ìŽ\ &ùíH[ÞT‹~æ h˜A}•lÉ­ãùèG¢Ÿ³°°E¢Kñ®|ëÌðÃÉêh`†Ó¶Ž?]LSzgÙäµÇ¦žïGÄ6û! þLn·‘Û}ZË<Ýæ<¨OZò¦Zô³ÆF%XFl˜x̲lzÑÏáçr˜Á@–CLEHt ‚Xƒ«¾ƒwM=ö>iË0‹öÁ=z­óö8ópóà(#²àhÎåvyóý@"B±ÍÛç+Mys½§óß*ˆŠÆšóyöF%;r;s¼Å“®vâ ]€D— ˆ5ð}àìÖÆ¯ß­îêA4ð|›¤ð®öËKM]ïi§1 +÷…Ɔ)Ð6·“·©™•¸‰¾/Byk[êRåíYôóÄSb´C<“Û¸3‡i²„ŸKÕ®vÐèAÄ :ï'fqu4p­|1uGnJï,=~Ùy Â5.ºv |\™&»ÈÛ"d`<þÍ㬷à Mk^Ÿ²6-è ý±‹ë¾ƒ¿\N•’Yl'oAÈ@˜ú”å]‘-oáÕŽð1úd¦È?¬9†`‹ô¿ji¿r›Å«Áв.{¶”¿™†¤Ð ]‚ rÇhâ¡3pжVÿù(èoë:.ºÙå-ìP÷G.þózš›Ç•»²¼…!½‘§Ä&ú.„r"KÞT~.èA}Ú¦«?ò$‹¬^í(êËÏUÔàù¾´¿—2æsm×Wâ3I¢KÄÆœÝÎÐ2ãç1?¶t\÷LmÌ"K(žŒc\÷§JüÁNƒ§ò/'¾ï£™Um}S ú²3iÅ,fnJ¢ŸCyk[ZìâªL«½‘‹^†®v †¶|~ž×GæïC]DHt ‚Ø‚‰íãªçàmC_ù:¡1|h œuöÛÕ5C­¬AãAÆýÐÅÌQs~X›ÊÛc$δÿ¨ö&ú:È“·`´Cõèç’ÁѲ‚™íJaõ­mY„W;»¶YºÚQ2ø"ú{U}T]n0$ºAlÉ·;Ç5{üÿ]SÇeÏI½;e†‚`àóû¶ª.ÆÉ¢‘Û8y CB¹Uå ndÉ[8Ú¡zôs9RŸòžä6ËW;Ê…¥Ü–õê#óo¤Œe4Už8è±¶ëãüÞÆ§¶±òuœ1|léøûõLú{b ЃÆÇC®—Ÿ¶aÝÎ 'ËîØ`¢Þ|è6È7Ï÷ñ0^ ™ÊÑϕ²>¥5å-I²~µ£‘Ûmê£ZG7kõ ]‚ ¶æ¢kãmC–<© \té}p|ŠŒŽ¥Â¢³d®–·,n¢§ y{œ-»¶ªG?›E¾Ûˆ‹OžÈÕŽy KÖ0‹|ñdd×úØ$ºR Ñ%bk\øÖ™á‡“ÕÑÀ §mº˜¦ôΛuä-º‰Þ¹P÷;iy[D?Ï»ªvXóú$!o›¢ÂÕ«4—[SC!ÁúÌ$þß*㼘 a‰.A;rÕwð®©Ç~!¶,«hÓ8$Ö‘·p=Pw>t¬H}v—"’—èç…¼Y "=¹UåjGµ´üü’ê#«C*4&%‘:ºA¾DÿúÝê®.DÿÇ·I ïê0ˆ“·p½; D"K›èi¤¼Ù®¿µutÎÁ=V_Å*z¡Z, IDATySa]6IÉÛhºGxxÌn§qSx(oóúĹìÊâjÇ0¸6‘õ«i×g\ÏGg oœKFXDVÇO^‚D— ˆÄM=Ü>88ª®þÓRÐ9ÞÔu\t÷ ¼o^“7ß:ŽÕMtÙ$!'áhGØiT©g@à êӨȗ·‰‰~Vàjç@£’^}Ögyµ£;r1”|µ£@]‚ ˆäøÚ™¡mi±çl>¶t\÷ÌY&Íkòö8 ~$t3¾‰.›]å͇ácD"2ÞiÜJ°ŒØ05p g£B–W;‚§ *\íH³>›0sžþàJó©Ì!Çÿ$ºA$ÌÄöqÕs𶡯|Ð>4uœuäGï›—äM•Mô4ØUN¦Ž™Í~§qS4ÎМ_’hTäÊ[xµC¥Ñް>mKC]r}Ö%¼ÚŠí>¯vÈ™ÑÍþž]‚ çÛãšˆíÆ½k \öl¥ºëò’¼ '..»A×6Ë›èi°‹¼y¾‡ñR"Æ t7E<«Œƒÿ€º£‚34­¹Ü–åÕg²zµC†èª’Šè!Ûõq~oãSÛXù:Î>µuüí*]Ýçòæz@oäâoW³Ìo¢§Á.ò6žE–ÈÆù¼,4†–\Ú¨—¹$y ®v,RÝíëÓ¶jÒê³>*\íÐ8“ÒáVå@¢K„$.º6Þ6ôØ»Ç5ó{G‰ù¿—ˆÊ[­¬a4ôûíÎÎü&zl+o®÷ô\•J¤MÐ5¶(¨•9ä1ÄòóS+s ayS}´Cv}6a1Ú1tÑ«3Ú"Ctm×ϼàG!Ñ%B×}ï›:Šúê(Ö–)`•l ³û…Ê[cˆÑ{øùf¦l':i¶‘“}n¢§!Ú–@ËÒP-%/o³§ó¡ªýÞ*†–Äú¬‹²ääjÇ¡/¢$ºAHÄ÷³[¿~·º« ÑÀÿþu’»ZCc %ƒÃóþÈÅŸûSå$B›Ê[–6ÑÓ  òÖ65X¥øxìM¯v,F;28‡ÌúlBž¯vzX@¢K„d:ï'fqõYµ\'èå%­ƒ!je ‚®Ü]ÌŠ+ÙTN²º‰.‹bXK‹ýÌoƳю‰§ÔããyõYÕG;6áÐÃ"]‚ RàË­ùÿ¥ö¹m ;|Lá=Å ÷m]·$¶Q6‘6Ñ“¦dp´¬à@¥°zLgl×,‘©{µCV}6!ËW;„ƤíÄ-o‰.AÄ3Bñ©WVKR¹Àq\¸éËMÆ‚Ó;\™žÞ›È‰j›èIPŽÔ§œ¼…£a-UíQŸMÈúÕŽJaYŸþØÅ߯åœX”3£›­ZÆA¢KD*|¹áß*¥Ø×}jëè<8Ò;.¾lT;û”Èëʉê›èÛR.p´ç×$ÊF2ò–§Ñލ¼•ªÏúdÿj‡Yä‹'#Ñ]™O=, Ñ%"%FS·Žª«ÿìÇ›†Ž‹{;¥wvج#'yÛDß„J‘£m wIÈ[ÞF;^“·4Páj‡©Oá•úÈü¡H]]‚ Rä¬3CÛŠOÄúØÔqÝsrµýœ%Ö‘“› Úhg@à þ}5*òëB§ÅäC¢KÄ^ðý «ûëwÅØ×~>2ðï_')¼«lñZgib{¸8™ßD— g@c.oÛuÞò=Ú±{}ÖGÅÑJpf¯ajà1ge0säÕÉÿ›ýÿ®Ï!Ñ%bot.ÞO\˜ÅÕÑÀÕ’†¦©á~˜ÿ³—:Kªl¢§A('-+øLl*'yíØµ>› âh‡ÆšóeÍFe?rEÖ"@©h!$ºAì•/·6þåãjÑ€Ó¶ûác ï(}^ê,¦.{A×6Ë›èi°‹œ¨2° iÉ›ª£âY}âkÒ`æŸÉÎ@Þw] Ñ%b¯„ó¥ÊjÙ-8Žk7}y¹ðiò\N<èŽ\üýj†îØ•ÚéQ3´¶”UBva—ú¬Ïr´£7r1Ph´ChËúÔËû—Û´G;ƒ”%C]‚ ˆ-8»¡Q)"8–õ:§mG‰G¤/í,ÕÊÚâ~è÷;;ó›èi°­œ„£¡Däu´# y›9OSÝTíÐ5†¦¥¡m Ô*,æï‰lgËùï´G;dtsm×Wòɉ.A{g4õpûà⨺úO’!8Þ6tœßÛ)½³Ý‰ÊIÉàè]Ü<8øËå,ó›èi°­œŒ¦ËîXžG;d˛꣆~<¶-Z™#îDzL£óùï}Þœ¥E´%$ºAd‚³Î m+¾Kõ¡©ãºçÀɰ$†rÒœcôÇ~¾±)øbÎ6rb»D„"‘çÑ]?Ždɛ꣆`hYÁL{µ´O¹Íîh…E,!Ñ%"Lm—½à¶î*„Æð¡¥ãËm¶¢Cy+8<è]üùbªì˜EÒl*'>| —[ýyí)oy¸ÚQÐZfP«¿¼* ÛõbÛ¹°3:Ú!#,"«ÿ·ÆA¢KDføvgã¤&bï}¾m\tí½/F‚¡^Ö i žç£;tqÕËDz\l*'ÓH§±7Î~ÈÀ®"r›´¼…óß]…G;Šú²>q'e¡êh]\XB¢KDfp\ç÷6>µ•¯ãŒáS[Çß®Òïꃡ³Å}ÛÛ'3+³À&râù>úã¥ÂhGXŸ–¥ÁJPÞw¾D6tÑ»ÊJIÉàhYA¼u¥°¹U}´´Œ¦ègŠD— ˆLqÞµñ¦®Çþ¡>© \Ü;©$0qœsÒ8àx8ø8âçl"'*† ìJÑ`h›Ü&Õ™ôácøIuSx´£¼øü” «#Áe‡ÑŽçHéèÒèAÄîxðín†O 1¯d8=ÒñÇó©ü÷äžëÃÎ0ÛÚ¬+'Žç£?ˆîHÝN㦔 ޶ÄïV’·©ãEÔí(–õ)éËmF;VAÝ%$ºAdŽë~°”VŠùlšVɦkJ¬''>“ÈY†6Ñe“´¼¥2 ›J‘/:Ûqÿ¶“&/£ëbˆäëK]‚ ˆ„ðýàÜØoÞc_ûùÈÀ¿¤ð®“uädæxèæB6V+d`W*¹MBÞö2 ³ÈÑžÏ$õôä6O£›ÂèÆ›mE÷lIt ‚È$wƒ‰»°S-ihšî‡4Wqrâû>ú‘Ó_cE6Ñ“"Iy[„ Ì»¶Ót­Ò¼>¦†BŠr«ÊhGXŸ›¾#åŠCpZ,ùÑ…¬Ö3]‚ 2ËÙ­ùßš8=2p?|Láå—89yŒ,‘õ]x‡å¶ Ê[vCv¡ZÒæmMÊcó—Pi´£ZÖÐ6ŸÖGÖ)Bó¹@ Î*~VIt ‚È,ý±‹îÈA£²úOUÙà8© \÷}¶¶'VÉI¸‰>úU5iª%¾8•¶‹¼Íœ`>4ü¡‡Ñ†@ÞZ–†–)¤ÉÕsT¹ÚÖ'kÑ_ˆä•5',#,€²¦K¢KD¦9»µÑ¨hˆ{÷©­ãöÁÉì_ˆûòM]t‡ºcƒn¢¯C-yS5d Æ€Zi^ŸWä-iTí`,øü´- Msu}<ß—6 `Húç’è‘mFS7.Ž««ÿ\‚ãmCÇù½Ò;SƒU_¾¶ûT"TøÜ…¤ä-!/ÁPÈ¿.·ËÑ®v„õi[MS[»>2¯>H]PÔtIt ‚È<_;3Y[ýüCKÇuÏsàmÝ×ä$è4.Åö6Ñ£$!oy á ¨Wño™Zl$÷®„£áç2ë£a}B¹Ý¦>*Š®ª=]]‚ 2ÏÔöqÙ në®Bp†-_nÓÞ7¯ÉÉÔöÐ8ÁÙ8»›è²a¡œ˜MKƒØBNò2ÀИ~¶•·uQq´ƒ3 arÛ¨ì^EWãPòI‰.AJðíÎÆIMÄ~Á¼m\víLÏò%ÅKrâùáY eÞD—Í®·EÈÀ\Èò2À9М~’·U¨8Ú¡q Q –¦óDiTÝ’Á1sÔ;ãH¢K„8®ï÷6NÛÆÊ×qÆð±­ãoWùìê†_¾-+¸ÌÃxêáªç 7ï4hÓ@ oÊv·CÐ8Ð0ÚfòòEÕÑ34çgÀyõQStúc)ÿÓR!Ñ%B.º6ÞÖEì©§“šÀŽ“黚›ðüË×ó€ÞØÅ^ÏÐÍa§qSv鼩2° áç§mi¨K”7UG;ij_q»I ëß,còD7‰Xë}@¢K„2x^0ÂðãI!æ• §G:þx>Må}É@ã ­ù—o½¢a4ñл8¿³1Èa§qS¶•7•BvAh‘ú”åÈ›ãú‹:öÆjýàZøïK ^æ©ÈmYµ*èrRÑ$q½Ht ‚PŠë~°”÷G·i TK6ՙ嗯†’ÁÑ»¸}pñ׫Yæ7ÑÓ`[y{œ-Dz2°+ú¢>5 òæÃÇ ý¬Úh‡®±Å¹Z™ƒIÂu˜ØrjW”˜JW)’èAHÇ÷³Î ¿yWŒ}íç#¿ÿ:Iá]m®14- ÍŠÆ€ÞØÃ—[c6ÑÓ ”ÿMäm20vÑf;d`Wtñ´>Iwó¦¶YÈSo´ÃËέŒúlÂpÔPfÒ`ÐÑ•ƒ®1Ô+z#µÒHt ‚PŽ»‹ÁÄ…UÔV¾Î* [÷Ãlýa6DÐy«8<è\üùbšÛNã¦lÞy[† ôF.ØCõi[ÕR²òíè*zµÃ m+XØLº>›°@™¢ oj‚D— " ¾ÜÚøíÇÕ¢ §GºÃǽ‹!êå 9Éõ‚ÙÆ«ž³çw•6í¼Ù‘ùЮ!»R -+X¸³JñŸûMÏ"KdŠŽvôy}Ìäë³.¾ïcIuía´£¨Ë/hšt)•¢H¢K„’<Œ]tG•ÕÆÊÇqMຟ¾TCAçóCë>nŽ2›èiÊÛ:7Cv¥ /;“qO/6a1Ú1¯¥ª£E})ÿf‚õÙ„©½Û,²Èîè2Æp\JE­“è¡,_nm4*⺟Ú:nœT:Uœ4¸.ðð¨Öc>Ùl"o*† ìJÑ`h›A}’“·åhGwäb¨ðhGÉà‹±J!ý娬²%‹.|léè isÆIC¢K„²Œ§n\WWÿ)3ÇÛ†žJÂóÏó¡N¿C>ëvÞT Ø•’ÁÑžÏ$'%o3'²§øhG9"·å=ÈíxºüÁ•å@C°ØãI q†|[À¿g|Ñ7„D— ¥ùÚ™áÈŠ?5õ±¥ãºï(ý…¯ëvÞT Ø•ra.·f2ò–·ÑŽE},‘zPAý~.U¹l•Ò«Sµ¤á]SÇ…# $ºA(ÍÔöqÙ në®Bã š:¾Üæ38 ¬Óy %"2U$" *…e}’8¾?±ŸÞV}´£R䋱tà æ÷Ç.ºCWÙ@–jÊKxŸÛ:ÇÇÍC¶—jIt ‚Pžow6Nj_ÝÕ}Û¸ìÚÊ.ßd‘8yóácø™UT"¶Å,òÅØÆ®ñáhGø#!£f‘/f¶e_ ˆ2s¼ÅmàÞXíÑŽ4;º@°˜öo (è ßî²ÛÙ%Ñ%By×Ç÷{§mcåë8cøÔ6ð×+u£³@œ¼M/²Õ¿ÿMô´±"õ)ì(o£gó¡yí°JK¹-¤0S £ýHª[ÞY8Ì=Ì/À§¶‚Îðó½—ëœaåÜ4‰.A¹àâÞÆÛºˆ]Æ8®i8ïòÜ}ÑÉf•¼ECz#ãŒm¢§Aµ´¬Ï. AaÈ@¸HfçäéCµ¤Ígnw«Ï&„ÑÏáÕŽ<ÿÞ2‹ëGbËद£e |¿·qÙµ¥Öº¨3Ô*A x­¬¡;tW6/Ht ‚Èž|½³ñÓI!æ• §m<§®n«:o¡D¨2°+µr n-s{yóÃùМv0Õ²¶X(Ó5ùæzO—ÈT9•Õ”Ç^Bh Ÿ ¼k\vtÇ»‡fp,¶V Õ2G½üËÚqÍ ]‚ rÃMÏÁû†»ÈÒ4ª%ùŠ$©–5´Í_vÞ!c½¡º!»À‘Ûämj/ŸzH Æ‚ú´- M3¹NB±õ0˜äc´cšæ~3^§GN<¡èƒŽºíø˜¹>lׇíO‚gƒà€¦1èCÉ`(åGÉ`ˆpfø|¤ãß_n^è‘|g·3üæ}1öµŸ ü^‘;2y½óæc8Y.> Ø…¨¼µL±…¼!Ë®mÖBv1 ¾èloWŸMG;ÂÏeÖ£hÃÏÏã OÒö¢Áö{‡®1mK®n6*µ²ƒþø—=$ºA䊻¡‹Á£û‡ß*œï†‡—\öZçÍvƒSA=E$BŒõІ¶)д4ˆ˜k/1žEîçl´ƒÏëÓ²Z¦{íd|ßÇ`â¡;tyžÏës? þ=É".0çPø|¤ãwg$ºA_nmüöS|‡ãôÈÀýðñ :•aç­m 4M Bc¹ Ø…PNÂúl*oŽç£é4æm´ƒ3 1—·mê³ {ù#¡¯ÈhÇkõ™9~¾‘{»›D7À,ÿ~;ƒ§w}©:A䎇GÝ‘ƒFeõŸ¸’Áq\¸îgûàù¶¼$oÛÃíÀYl¢«2° œrÒ¶•Må-è4.–Èr8Ú¡ñà‘pËÒÐ45pI[ýÁhÇò*£qõq=ø>•úd¤öÂrÖ!sz¤ãnè<™Õ&Ñ%"—|¹µÑ¨hˆ[døÔÖqûàäæÑòóÎôÇ.Îngèæ$d`B9i[ÊÛÌñÐÍ;à9 xŽÆšóeÄFEžÜŽ#÷û Ý^·>SÛÃϧҟ’P7÷)E¡Yy:’F""—Œ§nú.Žk«ÿÌ‚ã]CÇw2Û_#ÚYjT4Lì`aççÓÜ„ ì¶òíÈcÈ@ˆÆZ‘úȸǪrôs´>õØÏ«žƒ³[Žä_φ`hW³¹„–&áY¹ûapÉäyD— ˆÜòµ3C»/6Z:®úŽRº¨¼YE¾²ŸofJI„,Ä3¹]WÞ&örñé!Ç£B‹È[Y†Ü÷W;X"‹²i}l×ÇMßÁU߯d–ο¿-]ZÇ=ëÌ÷Ã@nãÂ@Ht ‚È-SÇÇe×Áû¦¾òugøÐÔñåVîÒÈ®„¥ð@ìâû›]Yʉ@½Ì×’7׋·æ{´CךVpM¢Vá`±÷I7cæ,Ŷ7ò¤w4“fÓúLww'õ›ÜeƒãMý°.ñÇ÷×gýºC÷C½„F‡òY)‚ ˆ]oâI¤íKÄe¦ËDAì¥ÆÏîù¹‘†–Zkȉÿl>ôF; :CË ä-É”¬pÑ'<£6Ut´cÓú '.:wC'µ™ÛuÐ8Ã'«´«ÆxÎÛ:H!Ñ%"÷x>ðµcã§7…˜W®ÎLO_\g‹YQbIAŸwÞÌx9™Ú‘ùPEBv¥¨/;“f19¹N–b;˜xÊŽvlVŸàÂF8s›µ¦|k l¨}77¼fÊ­ì¹x]‚ ‚›~°”VŠù’hTª%ò¥Óõ0²l~©îƒuå$˜ß[6¨2°+%ƒ£eñÍ•B2rk»~d‰LíèçMêãÏ?C¡ƒûAöÿï>mÊŽ,8Þ|$aœK󇨚#‚ØÀÙí ¿y_Œ}íç#¿ÿJÝÕ´Xʉ@¥ðú‘ñÔ[Üb}Pt>tÊ‘ú”WÔg]ÂŽZø#AõèçMë3œ¸¸ì:¸ºÊ\†hW>´V_É{ylŸKŸ$ºA wCƒG7ö1¸UÒÐ2Ÿ¦ëÉ²Žœ8žþ\ÆºŠ… ìJ¹ÀÑž_“HâQõÄ^Šm¢Ÿw©c 7ê,wÖ+þá s¹Ál|(·ãŒ4 wIÓÆ*ÍåÍÔPØAÞ×_Ì,÷r4Ú‘T}VQÔ9NjWü!+4†ß¼+ VNî’Æ®l›J–Ht ‚88ÆS7}ǵÕ Áñ®©ãûÒ;S—…œX Ïî?Î"ó¡.<µ¾'¡ZÒæ3¥Zì=ç×yzx ˜p¬"™ú¬ëù+÷ÅI]à´m@×ö;ªT*Y Ñ%â ùÚ™¡]ÕÀÙê/”MW=ç੯ÃkrÞ…LöÌ,ÂTËÚbaj[q™9‘ûÀ#O™+q$UŸMÈrôsµ¬á‡cc¯ò-#•, èqL—Ýà¶î*4Îð±¥ãç›YJï,»¬’“ÑÔEw>k;ȘD¤cA®{ŽÄ»¸ÙL%Ë$ºA<7}ïšzl”h£"P-;x« •·FEÃÔ„ìOçS<<ª)I¢q†¦©-ê³®¼…³¡rÚùß¶>›~î\L3¸D¶ ßîl×Db5S!•, èqðøÎngø§÷ÅØ×~>Òñû3µD7*'V‘/„ìç›™Ò÷1“Bã ­y}êÈÛÄŽÜÎÑ9¦çˆgrË—ÛÈ~ž9>Îïm|l­Þ Xý¿¡V*Y Ñ%‚p? ÎbY¥ÕiDV1øÂ¿d[vCykZgxxtq~oçV"6Eh¹-¯'oáýî08W5™å·’ËúÔËÐ{\D+© PIDATøÛÕì`$"]chZÚ¦@­Â×Z M#ó¡9_êÑ5\Ú°jåõê³.áhG¸D–×¥Î8\ÏÇ·Î ?œ¼¾§T²,@¢K1'¸/é i®þÓX28NjW='¥wö:ºÆÐ¨hЃア‹ëþþßWVÐE ÿí¹¼ÅÝ,uܧ§¿ò.†XvnשÏ&LloÑý~ÈñhǦ\ÍwŠúr' ¯©dY€D— "ÂÙ­¦©!î ÿcËÀ̓o_Hº`(®Ft†ûyYÅ -+¸P-ÅÉ[°­vá>°!ÚV°_ŸõÉKôsµÌQ)p\våü`ôýàïÌǶžûT²,@¢Ka<ópÝwpR[}È ï:¾ßÙ©¼/KAœ3xs¡ –t†–ÈmÜœõÌYŠmäÁ9€ž‚>—3¾>›0š.ï«<ÚQ/süø¦€_hZSÛÃÿøß}Ì9Ú8è èÉKèA<ã[ÇÆQ5þ Ї¦Ž«ž#}–ð<`êù­’-(êËέY|]Þ¢!½ÑáÜ]·>›`»þâ6pwìÂVx´£ajøéÄÀçã•§õ)èÿõWEüŸ¿Ž÷ô Ñ%‚xÆÔñqÙu𾹺««q†-?ß̤¾uU"yJGËÒж4T ¯ËÛãlÙµU5d`–õ¨Vß…^?2Ú‘‡èç–)ðã¿:2P«¬–ÿÿò¡€ßŸMæ‡Q^!Ñ%‚xï÷6Nê"&Êôm]à¢kcªè<¢ ”#òV~EÞ\Ï_t{#÷ þ{¬SŸM˜ÚK±ÍCôóQUàÇŸ TËëw¶…Æñß~*áýa$ñݲ!Ñ%‚xÇõñýÎÆç£ÕÇÝc8møËe~¢³@¹ÀÑžŸºz9±ÎÇp²²ÁÄSv>t*…¥Ü–býâÎY-Ϩå!úù¤&ðã›>é;müã›~÷å½±ú59THt ‚ ^á²kã]CÀ«E⨪áüžç6ö5-*E޶\xIÞl×_vG‡yjùbæ6zšjÆS/8£6tsýü¶.ðÃI ·•„f’gøï?Uð??HäH]‚ ˆWð|àkÇÆOo^?îÀpz¤ãß©«»)f‘/N]=—·0d ì4â +"·…äÖñ|ôçuìæè>ð»Fй=më(¯˜ÙÞ…ÏÇŽª·t%AEHt ‚ Vp3?îþòãó%Š@­ìÐÙ¯5°Js¹5)o“È|hÿ@ç/êci(Ħ¼1 V d?*oŽë£3p# y™ÝÆ€Z(·¦€ØBngK±í?º¹ê4rüûùñØÀ‡–C¦Üú>:ƒy×¶3ÃeÆò ‰.AÄ =Ü4ÍÕ6KÇIMàê@¾8êå¹ÜÎå͇ᣇËp>ô€»cŒõІ¶)Ð4µå6í—ÈòvXpàôÈÀ'|l MžÜ>N]œwm|¿sðõÎÆ$gÔˆxHt ‚ ÖäìÖFÓÔn‚q„oÁaüø$žB¢K±&㙇뾃“Úêh`C0¼oèøvg§ôÎäÃИËmÓÔÀð0öðµc£7r>&•ó >mK QÙLnm×_Œ#äõ>°!€ÏGüplà}KßXþ×eðŒ#|ïØøv7ƒsØK$ºAñµcã¨*ÀÙê/ê÷MW=GiiáhÎå¶QÑ0u!ûÓÅã|„ ì‚Æƒ³rmKCÃÔb?!¾œþ Å6¯£†àøáDÇ¯Ž ¼kÈ‘[Ç –ȾßÙ8ëÌð@ fÄ3Ht ‚ 6`æø¸ì:xß\ÝÕÕ8Ç–ŽŸof)½³dÐ8Cà N]Y%ŽÁc d_nf˜èY34Í`¡¬^Y_n§‘ûÀ½q~G;й}ÛÐÁ%ÈíýÐÁù½¯—=;·#BD2èAlÈ÷;'uó%þ¶.pѵ3¿@Ê[ËÒ k ý±‹‹®ÁE~BvAp†¦5—Û²¶†Üz~¸D\IxÌñhGÑàøñÄä¶&À–Û©íá¢ëàÛÝ _o탓!6ƒD— bCÏÇ÷;ŸŒ•¯cŒá´mà/—Ù‹Z ·ÕR°Ô{øÛÕ,7!»"4†–ÌÜÖÊ|-¹O—]Û‡Ç|v” Žßr{RkÕg]|ÏÇí èÚžulÜôi‰ŒØ]‚ ˆ-¸ìÚx×±)VGU ç÷£ ó×5†FEƒ.|è]’ˆºÆ7€kes]Ãq}ô"©ny¿\)rütbàóQ ·HPnGçó$²owf´EF$‰.AÄx>pÖ±ño 1¯dø|dàÿ}Ÿ¤ò¾ž£ †ŠÁ¡ñà=ß ¸ä tnC¹]}:ÎÇàÑCo~×vð˜ÿBšEŽxSÀçcGVrrëz>®{6¾Ý;øz;CwDi‚„Ht ‚ ¶ä¦,¥•Õ]ÝzEC­¬¡?NçË\ã B þ× ºŽÄ’‚`Á `+Ýx]ÞfŽ·¸ Ü»1ÚQ-qüø¦€_hW“Ó„þ(èÚ~½³qqO§¿ˆt Ñ%‚سÛþé}1öuŸtüîL¾p2,BMm´J¶  3´çrkµW_çû>ú˘ÝqFNÒ ^^ÊmÓJF föÓÓ_y=£Fd›ÿ(ùõÑÙ—+IEND®B`‚x2goclient-4.0.1.1/png/power-button.png0000644000000000000000000000137212214040350014550 0ustar ‰PNG  IHDRfãOVsRGB®ÎébKGDÿÿÿ ½§“ pHYsÑÑ«$-ptIMEÜ'5ÁokŸzIDATHǵ–±K[Q‡¿›DxBÐ&ƒØÁA:X¡¦ˆqtV¤´ hqç.]Ü;Æ 89´“N¢q4DÓE¨!±-B H‰Þ$§Ë{íÍ}/Ík¤îðÎ9ïûåœsß¹Q"B·Õh4p]·-Pk­ÇéúnŒÿ¼: T«ÕÈ«««ÎN l`fii©æ?k­ÄÜZëßñ«««Ÿ™0V[J©„Rj 8l6›é¨4›ÍçÀ¡RjK)•0} +ö°ü€r¿žo=PJ½|Ü\Ëë€R* ą̈T*UŠJt]÷‹eÊyLü¦æÌ¦Ói¹¹¹!j“«Õ*}}}bÅäüolh™Î¶“ÐM@DØÜÜܰbZ›Ó177'öQ‹" µfddÄÎb!dÌâ­¬¬¨^:ë8‹‹‹o-s& Édz>>ïm€ŠŸ’ëºrO/%*•ŠWI)_.™Lǃ_P,ÆøøxÀf¯Û”86U¯¯¯CçS”}pp`gpÎLÉR©ÔsŠÅâËtÚˆù|~£W£££¯–©ðÂLËq¹¸¸øçòìíí‚Ç&œ›ŽÙÙYiµZ‘áõzááa~$üY4m‹õõõüÝÝ]Wx­Vc~~^BÆÄ´ˆ`ÞbÛvŠ£££rzzÚ¾¿¿Ïàà „”fÛQþÄóÆë9Ðvâñ8cccd³ÙÂäädVkM¡P¨Ÿœœ<*—Ëa½þ<‘Ÿ;˜.C~QÔ} Lµ1C.ü~`·ø.Ðàuª/°ÜFßk8êoÿì”RWÀkï2ò\ß2ðø$"?:1~s^£RKÏFŒIEND®B`‚x2goclient-4.0.1.1/png/sess_ico.png0000644000000000000000000000221112214040350013703 0ustar ‰PNG  IHDRT¾j:÷åbKGDÿÿÿ ½§“ pHYs.#.#x¥?vtIMEÖ /öœIDATxÚíÝ=ÌcÇáßý¨¶Úø¥KG‰Ù.„¥1¬‰Ä"‹Á&14‘&’‰A ˜¬,‚4TÕGßö½ ^‚¶´}NH¸®ùLÿá—û~ÎsrFç0çÕžê`uGu[usuMÿ/ßUŸVïUoTïW?1¶ÿüÁqŽ˜î®n¨ž¨îÜ +5«7«ÇªÆ?ž7¨sÎýÕíÕSÕM¶8§¯ªÇ«ÃcŒoÎ êNLﯞ­öÙ àoO«ÏTO1¾®ZvbzYuoõœ˜\Q=R=8ç¼â·êœó–êHuÀFåûêÐãÈ2çܳSY1¸xûªGçœ×Ž9ç­Õ;Õ~»\’YZª»Ä`•QݳôËKû¬sp©n´ÀjW/yM `v/6؈!¨"¨‚ ¨‚ € *€ *‚ ¨‚ Àï‚ºÛ «í]ª]vXíò¥_þ±€uNx† °!‚ ¨‚ ¨*€ *€  ¨‚ ¨*€ *€  ¨ÿdP÷˜`µ+Æœs»¶XeÛ•`ƒW~@P€óõ„Vûz©NÛ`µ-W~€ ^ùTAT@P@PTAT@P@PT€˜sžª.7À*?-Õ÷vXíÄR±Àj§=CØATAT@P@PTAT@P@PTATA@Pà?TQØ@OÇœs«Úe €U¶–ê[;¬vÌu`Sw~*€ *‚ ¨‚ ¨*€ *‚ ¨‚ ¨*€ *€  ¨‚ ¨œÔ½fXmßR ;¬6–ê;¬vÒ3T€ TATA@P@PATA@P@PATAT@P€?sέj—)V9µT'í°Úñ¥:c€ÕÎx† °!‚ ¨‚ ¨*€ *€  ¨‚ ¨*€ *€  ¨‚ ¨‚ € *€  ¨‚ ¨‚ € ü AÝ2Àj§—ês;¬öÝR}`€Õ>[ª×«m[¬rt©Þ­>´À¥ŸN«W—1Æñêéê”M.Éó¿^ù«ŽV/ØࢽV½4ÆØ^ªÆ'«'«—mpÁÞ®c«ß½Ø?Æø²zhçèêK*€¿öJõ@õÉoýó'æœWVwïœXØ àŽWW/Vߎ1æyƒºÕ]ÕuÕ}ÕÕõÕUù©*ðÿt¢ú¢z«:\}<Æ8ëW¦?Õ-Ëo([IEND®B`‚x2goclient-4.0.1.1/portable/manifest.u3i0000644000000000000000000000112512214040350014645 0ustar x2goclient.ico Portable X2Go Client for Windows x2go Portable X2Go Client for Windows 3 x2goclient-4.0.1.1/portable/stopu3client.cpp0000644000000000000000000000347712214040350015571 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * oleksandr.shneyder@obviously-nice.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ /* this is helper program to stop running in "portable" mode X2Go Client before U3 USB-drive will be unmounted */ #include int main() { HWND wid=FindWindowEx(0,0,0,"X2Go Client - U3"); while(wid) { HWND prevWid=wid; wid=FindWindowEx(0,wid,0,"X2Go Client - U3"); PostMessage(prevWid,WM_CLOSE,0,0); } return 0; } x2goclient-4.0.1.1/printdialog.cpp0000644000000000000000000000506412214040350013633 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "printdialog.h" #include #include "printwidget.h" #include #include "x2gologdebug.h" #include PrintDialog::PrintDialog ( QWidget* parent, Qt::WindowFlags f ) : QDialog ( parent,f ) { x2goDebug<<"starting print dialog"<button ( QDialogButtonBox::Ok )->setText ( tr ( "Print" ) ); pwidg=new PrintWidget ( this ); ( ( QVBoxLayout* ) ( layout() ) )->insertWidget ( 0,pwidg ); //x2goclient can stay under the nxagent window //we must start it as toplevel window and be shure //that x2goclient window will not be activated //so we must start print dialog as window setWindowFlags ( Qt::Window|Qt::WindowStaysOnTopHint ); connect ( pwidg,SIGNAL ( dialogShowEnabled ( bool ) ), this,SLOT ( slot_dlgShowEnabled ( bool ) ) ); } PrintDialog::~PrintDialog() { } void PrintDialog::accept() { pwidg->saveSettings(); QDialog::accept(); } void PrintDialog::slot_dlgShowEnabled ( bool enable ) { if ( !enable ) QMessageBox::warning ( this, tr ( "You've deactivated the x2go " "client printing dialog." ), tr ( "You may reactivate this dialog " "using the x2goclient settings " "dialog (Menu -> Options -> " "Settings)" ) ); } x2goclient-4.0.1.1/printdialog.h0000644000000000000000000000322412214040350013274 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef PRINTDIALOG_H #define PRINTDIALOG_H #include #include "ui_printdialog.h" /** @author Oleksandr Shneyder */ class PrintWidget; class PrintDialog : public QDialog { Q_OBJECT public: PrintDialog ( QWidget* par=0, Qt::WindowFlags f = 0 ); ~PrintDialog(); private: Ui::PrintDialog ui; PrintWidget* pwidg; public slots: void accept(); private slots: void slot_dlgShowEnabled(bool); }; #endif x2goclient-4.0.1.1/printdialog.ui0000644000000000000000000000316112214040350013462 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) PrintDialog Qt::NonModal 0 0 400 300 Print - X2Go Client Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok buttonBox accepted() PrintDialog accept() 199 277 199 149 buttonBox rejected() PrintDialog reject() 199 277 199 149 x2goclient-4.0.1.1/printercmddialog.cpp0000644000000000000000000000472012214040350014644 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "printercmddialog.h" #include "x2goclientconfig.h" #ifdef Q_OS_WIN #include "printwidget.h" #endif PrinterCmdDialog::PrinterCmdDialog ( QString* cmd, bool* stdinpr, bool* ps, QWidget* parent ) : QDialog ( parent ) { ui.setupUi ( this ); printCmd=cmd; printStdIn=stdinpr; printPs=ps; ui.leCmd->setText ( *printCmd ); if ( *printStdIn ) ui.rbStdIn->setChecked ( true ); else ui.rbParam->setChecked ( true ); if ( *printPs ) ui.rbPS->setChecked ( true ); else ui.rbPDF->setChecked ( true ); connect ( ui.buttonBox, SIGNAL ( accepted() ),this,SLOT ( slot_ok() ) ); #ifdef Q_OS_WIN QString txt=tr ( "Please enter your customized or" " individual printing command.\n" "Example:\n"); QString ver,path; if(PrintWidget::gsViewInfo(ver,path)) txt+=path+" -query -color"; else txt+=tr(" -query -color"); ui.label->setText (txt); if(!PrintWidget::gsInfo(ver,path)) { ui.rbPDF->setChecked ( true ); ui.rbPS->setEnabled(false); } #endif } PrinterCmdDialog::~PrinterCmdDialog() { } void PrinterCmdDialog::slot_ok() { *printCmd=ui.leCmd->text(); *printPs=ui.rbPS->isChecked(); *printStdIn=ui.rbStdIn->isChecked(); accept(); } x2goclient-4.0.1.1/printercmddialog.h0000644000000000000000000000330112214040350014303 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef PRINTERCMDDIALOG_H #define PRINTERCMDDIALOG_H #include #include "ui_printercmddialog.h" /** @author Oleksandr Shneyder */ class PrinterCmdDialog : public QDialog { Q_OBJECT public: PrinterCmdDialog ( QString* cmd, bool* stdinpr, bool* ps, QWidget* parent=0l ); ~PrinterCmdDialog(); private: Ui::PrinterCmdDialog ui; bool* printStdIn; bool* printPs; QString* printCmd; private slots: void slot_ok(); }; #endif x2goclient-4.0.1.1/printercmddialog.ui0000644000000000000000000001060412214040350014475 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) PrinterCmdDialog 0 0 462 542 Printer command Command Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet true Output format Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Qt::PlainText false true PDF PS rbPDF label_2 rbPS Data structure Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): Qt::PlainText false true standard input (STDIN) Specify path as program parameter Qt::Vertical 20 37 QDialogButtonBox::Cancel|QDialogButtonBox::Ok buttonBox rejected() PrinterCmdDialog reject() 230 519 230 270 x2goclient-4.0.1.1/printprocess.cpp0000644000000000000000000001733112214040350014052 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "x2goclientconfig.h" #include "printprocess.h" #include "x2gologdebug.h" #include #include "x2gosettings.h" #include #include "printdialog.h" #if (!defined Q_OS_WIN) && (!defined Q_WS_HILDON) #include "cupsprint.h" #else #include "printwidget.h" #endif #include #include #include #include "x2gologdebug.h" #ifdef Q_OS_WIN #include "wapi.h" #endif #include PrintProcess::PrintProcess ( QString pdf, QString title, QObject *parent ) : QObject ( parent ) { pdfFile=pdf; pdfTitle=title; parentWidg= ( QWidget* ) parent; if ( !loadSettings() ) { QFile::remove ( pdfFile ); return; } if ( viewPdf ) QTimer::singleShot ( 100, this, SLOT ( openPdf() ) ); else QTimer::singleShot ( 100, this, SLOT ( print() ) ); } PrintProcess::~PrintProcess() { } void PrintProcess::slot_processFinished ( int exitCode, QProcess::ExitStatus exitStatus ) { disconnect ( this,SIGNAL ( finished ( int , QProcess::ExitStatus ) ), this,SLOT ( slot_processFinished ( int,QProcess::ExitStatus ) ) ); QFile::remove ( pdfFile ); if ( exitCode==0 && exitStatus==QProcess::NormalExit ) { if ( !printStdIn ) { if ( !QProcess::startDetached ( printCmd+" \""+psFile+"\"" ) ) slot_error ( QProcess::FailedToStart ); } else { QProcess* proc=new QProcess; proc->setStandardInputFile ( psFile ); connect ( proc,SIGNAL ( error ( QProcess::ProcessError ) ), this,SLOT ( slot_error ( QProcess::ProcessError ) ) ); proc->start ( printCmd ); } } else slot_pdf2psError ( QProcess::Crashed ); } bool PrintProcess::loadSettings() { X2goSettings st ( "printing" ); if ( st.setting()->value ( "showdialog",true ).toBool() ) { PrintDialog dlg; if ( dlg.exec() ==QDialog::Rejected ) return false; } viewPdf=st.setting()->value ( "pdfview",false ).toBool(); customPrintCmd=st.setting()->value ( "print/startcmd",false ).toBool(); printCmd=st.setting()->value ( "print/command","lpr" ).toString(); printStdIn= st.setting()->value ( "print/stdin",false ).toBool(); printPs=st.setting()->value ( "print/ps",false ).toBool(); pdfOpen= st.setting()->value ( "view/open",true ).toBool(); #ifndef Q_OS_WIN pdfOpenCmd=st.setting()->value ( "view/command","xpdf" ).toString(); #else winX2goPrinter= st.setting()->value ( "print/defaultprinter", wapiGetDefaultPrinter() ).toString(); #endif #ifdef Q_WS_HILDON pdfOpenCmd="run-standalone.sh dbus-send --print-reply" " --dest=com.nokia.osso_pdfviewer " "/com/nokia/osso_pdfviewer " "com.nokia.osso_pdfviewer.mime_open string:file://"; viewPdf=true; #endif return true; } void PrintProcess::openPdf() { if ( pdfOpen ) { #ifndef Q_OS_WIN #ifndef Q_WS_HILDON QString cmd=pdfOpenCmd+" \""+pdfFile+"\""; #else QString cmd=pdfOpenCmd+"\""+pdfFile+"\""; #endif x2goDebug<0 ) QFile::rename ( pdfFile,fileName ); } } void PrintProcess::print() { #ifndef Q_WS_HILDON if ( !customPrintCmd ) { #ifndef Q_OS_WIN CUPSPrint prn; prn.setCurrentPrinter ( prn.getDefaultUserPrinter() ); prn.print ( pdfFile, pdfTitle ); #else x2goDebug<<"printing to "<setStandardInputFile ( pdfFile ); connect ( proc,SIGNAL ( error ( QProcess::ProcessError ) ), this,SLOT ( slot_error ( QProcess::ProcessError ) ) ); proc->start ( printCmd ); } } else { QStringList args; psFile=pdfFile; psFile.replace ( "pdf","ps" ); args<start ( "pdf2ps",args ); #else QString pdf2ps,ver; PrintWidget::gsInfo ( ver,pdf2ps ); QString wdir=pdf2ps; wdir.replace ( "pdf2ps.bat","" ); proc->setWorkingDirectory ( wdir ); QStringList env=QProcess::systemEnvironment(); env.replaceInStrings ( QRegExp ( "^PATH=(.*)", Qt::CaseInsensitive ), "PATH=\\1;"+wdir ); wdir.replace ( "\\lib\\","\\bin\\" ); env.replaceInStrings ( QRegExp ( "^PATH=(.*)", Qt::CaseInsensitive ), "PATH=\\1;"+wdir ); proc->setEnvironment ( env ); proc->start ( pdf2ps,args ); #endif } } } void PrintProcess::slot_error ( QProcess::ProcessError ) { QString message=tr ( "Failed to execute command:\n" ); if ( viewPdf ) message+=" "+pdfOpenCmd+ " " +pdfFile; else { message+=printCmd; if ( !printStdIn ) { message+=" "; if ( printPs ) message+=psFile; else message+=pdfFile; } } QMessageBox::critical ( 0l, tr ( "Printing error" ), message ); } void PrintProcess::slot_pdf2psError ( QProcess::ProcessError ) { QMessageBox::critical ( 0l, tr ( "Printing error" ), tr ( "Failed to execute command:\n" ) + "pdf2ps "+pdfFile+" "+psFile ); } x2goclient-4.0.1.1/printprocess.h0000644000000000000000000000417612214040350013522 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef PRINTPROCESS_H #define PRINTPROCESS_H #include #include #include /** @author Oleksandr Shneyder */ class PrintProcess: public QObject { Q_OBJECT public: PrintProcess ( QString pdf, QString title, QObject * parent=0l ); ~PrintProcess(); private: QString pdfFile; QString pdfTitle; QString psFile; bool viewPdf; bool customPrintCmd; bool printStdIn; bool printPs; bool pdfOpen; QString pdfOpenCmd; QWidget* parentWidg; QString printCmd; #ifdef Q_OS_WIN QString winX2goPrinter; QString winDefaultPrinter; #endif private: bool loadSettings(); private slots: void slot_processFinished ( int exitCode, QProcess::ExitStatus exitStatus ); void slot_pdf2psError ( QProcess::ProcessError error ) ; void slot_error ( QProcess::ProcessError error ); void openPdf(); void print(); }; #endif x2goclient-4.0.1.1/printwidget.cpp0000644000000000000000000001737412214040350013666 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "printwidget.h" #if (!defined Q_OS_WIN) && (!defined Q_WS_HILDON) #include "cupsprintwidget.h" #endif #include "printercmddialog.h" #include "x2gosettings.h" #include "x2gologdebug.h" #include #ifdef Q_OS_WIN #include "wapi.h" #endif PrintWidget::PrintWidget ( QWidget* parent ) : QWidget ( parent ) { ui.setupUi ( this ); ui.rbPrint->setChecked ( true ); ui.gbView->setVisible ( false ); QVBoxLayout* lay= ( QVBoxLayout* ) ui.gbPrint->layout(); #if (!defined Q_OS_WIN) && (!defined Q_WS_HILDON) ui.cbWinPrinter->hide(); ui.lWinPrinter->hide(); ui.lWinInfo->hide(); pwid=new CUPSPrintWidget ( ui.gbPrint ); lay->insertWidget ( 0,pwid ); connect ( ui.cbPrintCmd,SIGNAL ( toggled ( bool ) ),pwid, SLOT ( setDisabled ( bool ) ) ); #else #ifdef Q_OS_WIN connect ( ui.cbPrintCmd,SIGNAL ( toggled ( bool ) ),ui.cbWinPrinter, SLOT ( setDisabled ( bool ) ) ); connect ( ui.cbPrintCmd,SIGNAL ( toggled ( bool ) ),ui.lWinPrinter, SLOT ( setDisabled ( bool ) ) ); connect ( ui.cbPrintCmd,SIGNAL ( toggled ( bool ) ),ui.lWinInfo, SLOT ( setDisabled ( bool ) ) ); printers=wapiGetLocalPrinters(); defaultPrinter=wapiGetDefaultPrinter(); ui.cbWinPrinter->insertItems ( 0,printers ); int index=printers.indexOf ( defaultPrinter ); if ( index!=-1 ) ui.cbWinPrinter->setCurrentIndex ( index ); QLabel *rtfm=new QLabel ( tr ( "Please configure your client side printing settings.

" "If you want to print the created file, you'll need " "an external application. Typically you can use " "
" "ghostprint and " "" "ghostview
You can find further information " "here." ), ui.gbPrint ); rtfm->setWordWrap ( true ); rtfm->setOpenExternalLinks ( true ); lay->insertWidget ( 6,rtfm ); #endif #endif connect ( ui.pbPrintCmd,SIGNAL ( clicked() ),this, SLOT ( slot_editPrintCmd() ) ); QButtonGroup* bg=new QButtonGroup(); bg->addButton ( ui.rbPrint ); bg->addButton ( ui.rbView ); loadSettings(); connect ( ui.cbShowDialog,SIGNAL ( toggled ( bool ) ), this, SIGNAL ( dialogShowEnabled ( bool ) ) ); #if (defined Q_OS_WIN) ui.label->hide(); ui.leOpenCmd->hide(); #endif #ifdef Q_WS_HILDON ui.rbView->setChecked ( true ); ui.rbPrint->hide(); ui.rbView->hide(); ui.label->hide(); ui.leOpenCmd->hide(); #endif } PrintWidget::~PrintWidget() { } void PrintWidget::slot_editPrintCmd() { QString printCmd=ui.lePrintCmd->text(); PrinterCmdDialog dlg ( &printCmd,&printStdIn,&printPs, this ); dlg.exec(); ui.lePrintCmd->setText ( printCmd ); } void PrintWidget::loadSettings() { X2goSettings st ( "printing" ); bool pdfView=st.setting()->value ( "pdfview",false ).toBool(); QString prcmd= st.setting()->value ( "print/command","" ).toString(); #ifdef Q_OS_WIN defaultPrinter= st.setting()->value ( "print/defaultprinter",defaultPrinter ).toString(); int index=printers.indexOf ( defaultPrinter ); if ( index!=-1 ) ui.cbWinPrinter->setCurrentIndex ( index ); QString ver,gspath,gsvpath; bool isGsInstalled=gsInfo ( ver,gspath ); bool isGsViewInstalled=gsViewInfo ( ver,gsvpath ); if ( prcmd=="" && ! ( isGsInstalled && isGsViewInstalled ) ) { // x2goDebug<<"fallback to view"<setChecked ( st.setting()->value ( "showdialog",true ).toBool() ); if ( pdfView ) ui.rbView->setChecked ( true ); else ui.rbPrint->setChecked ( true ); ui.cbPrintCmd->setChecked ( st.setting()->value ( "print/startcmd", false ).toBool() ); #ifndef Q_OS_WIN if ( prcmd=="" ) prcmd="lpr"; #endif ui.lePrintCmd->setText ( prcmd ); printStdIn= st.setting()->value ( "print/stdin",false ).toBool(); printPs=st.setting()->value ( "print/ps",false ).toBool(); #ifdef Q_OS_WIN printPs=printPs&&isGsInstalled; #endif if ( ( st.setting()->value ( "view/open",true ).toBool() ) ) ui.rbOpen->setChecked ( true ); else ui.rbSave->setChecked ( true ); ui.leOpenCmd->setText ( st.setting()->value ( "view/command","xpdf" ).toString() ); } void PrintWidget::saveSettings() { X2goSettings st ( "printing" ); st.setting()->setValue ( "showdialog", QVariant ( ui.cbShowDialog->isChecked () ) ); st.setting()->setValue ( "pdfview", QVariant ( ui.rbView->isChecked () ) ); st.setting()->setValue ( "print/startcmd", QVariant ( ui.cbPrintCmd->isChecked ( ) ) ); st.setting()->setValue ( "print/command", QVariant ( ui.lePrintCmd->text () ) ); st.setting()->setValue ( "print/stdin", QVariant ( printStdIn ) ); st.setting()->setValue ( "print/ps", QVariant ( printPs ) ); st.setting()->setValue ( "view/open", QVariant ( ui.rbOpen->isChecked () ) ); st.setting()->setValue ( "view/command", QVariant ( ui.leOpenCmd->text () ) ); #ifdef Q_OS_WIN st.setting()->setValue ( "print/defaultprinter", QVariant ( ui.cbWinPrinter->currentText()) ); #endif #if (!defined Q_OS_WIN) && (!defined Q_WS_HILDON) pwid->savePrinter(); #endif } #ifdef Q_OS_WIN bool PrintWidget::gsInfo ( QString& version, QString& pdf2ps ) { QSettings st ( "HKEY_LOCAL_MACHINE\\" "SOFTWARE\\GPL Ghostscript", QSettings::NativeFormat ); version="0.0"; QStringList keys=st.allKeys(); for ( int i=0;iversion.toFloat() ) { version=v; pdf2ps=libs+"\\pdf2ps.bat"; } } } if ( version.toFloat() >0.0 ) { return true; } return false; } bool PrintWidget::gsViewInfo ( QString& version, QString& gsprint ) { QSettings st ( "HKEY_LOCAL_MACHINE\\" "SOFTWARE\\Ghostgum\\GSview", QSettings::NativeFormat ); version="0.0"; QStringList keys=st.allKeys(); for ( int i=0;iversion.toFloat() ) { version=v; gsprint=libs+"\\gsview\\gsprint.exe"; } } if ( version.toFloat() >0.0 ) { return true; } return false; } #endif //Q_OS_WIN x2goclient-4.0.1.1/printwidget.h0000644000000000000000000000373312214040350013325 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef PRINTWIDGET_H #define PRINTWIDGET_H #include "x2goclientconfig.h" #include "ui_printwidget.h" /** @author Oleksandr Shneyder */ class CUPSPrintWidget; class PrintWidget : public QWidget { Q_OBJECT public: PrintWidget ( QWidget* parent=0l ); ~PrintWidget(); void saveSettings(); #ifdef Q_OS_WIN static bool gsInfo ( QString& version, QString& pdf2ps ); static bool gsViewInfo ( QString& version, QString& gsprint ); #endif private: Ui::PrintWidget ui; bool printPs; bool printStdIn; #ifndef Q_OS_WIN CUPSPrintWidget* pwid; #else QStringList printers; QString defaultPrinter; #endif private slots: void slot_editPrintCmd(); private: void loadSettings(); signals: void dialogShowEnabled ( bool ); }; #endif x2goclient-4.0.1.1/printwidget.ui0000644000000000000000000002046312214040350013512 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) PrintWidget 0 0 559 497 Form Print true View as PDF Qt::Vertical 20 40 0 0 Print settings Printer: Print using default Windows PDF Viewer (Viewer application needs to be installed) Qt::Horizontal Printer command: false true false ... Qt::Vertical 325 2 0 0 Viewer settings Open in viewer application true Command: Save to disk false Qt::Vertical 20 18 Show this dialog before start printing true rbOpen toggled(bool) label setEnabled(bool) 249 120 165 150 rbOpen toggled(bool) leOpenCmd setEnabled(bool) 249 120 284 150 cbPrintCmd toggled(bool) lePrintCmd setEnabled(bool) 248 56 206 88 cbPrintCmd toggled(bool) pbPrintCmd setEnabled(bool) 248 56 327 88 rbPrint toggled(bool) gbPrint setVisible(bool) 62 22 296 64 rbView toggled(bool) gbView setVisible(bool) 62 46 296 188 x2goclient-4.0.1.1/provider/etc/x2goplugin-apache.conf0000644000000000000000000000007612214040350017402 0ustar Alias /x2goplugin.html /usr/share/x2go/plugin/x2goplugin.html x2goclient-4.0.1.1/provider/share/x2goplugin.html0000644000000000000000000000152112214040350016525 0ustar X2Go Application Service
x2goclient-4.0.1.1/qtbrowserplugin-2.4_1-opensource/src/qtbrowserpluginax.def0000644000000000000000000000033712214040350024030 0ustar EXPORTS NP_GetEntryPoints @1 NP_Initialize @2 NP_Shutdown @3 DllCanUnloadNow PRIVATE DllGetClassObject PRIVATE DllRegisterServer PRIVATE DllUnregisterServer PRIVATE DumpIDL PRIVATE x2goclient-4.0.1.1/qtbrowserplugin-2.4_1-opensource/src/qtbrowserplugin.cpp0000644000000000000000000014517512214040350023535 0ustar /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of a Qt Solutions component. ** ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ** the names of its contributors may be used to endorse or promote ** products derived from this software without specific prior written ** permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ****************************************************************************/ #include #include "qtnpapi.h" #include "qtbrowserplugin.h" #include "qtbrowserplugin_p.h" #ifndef WINAPI # ifdef Q_WS_WIN # define WINAPI __stdcall # else # define WINAPI # endif #endif #ifdef Q_WS_X11 # ifdef Bool # undef Bool # endif /* static void debuginfo(const QString &str) { static bool inited = false; QFile file("/tmp/qnsdebug.txt"); if (file.open(QFile::WriteOnly | QFile::Append)) { if (!inited) { file.write("\n\n*** New run started ***\n"); inited = true; } file.write(qtNPFactory()->pluginName().toLatin1() + ": " + str.toLatin1() + '\n'); file.close(); } } */ #endif static QtNPFactory *qNP = 0; static NPNetscapeFuncs *qNetscapeFuncs = 0; // The single global plugin QtNPFactory *qtNPFactory() { extern QtNPFactory *qtns_instantiate(); if (!qNP) { qNP = qtns_instantiate(); } return qNP; } // NPN functions, forwarding to function pointers provided by browser void NPN_Version(int* plugin_major, int* plugin_minor, int* netscape_major, int* netscape_minor) { Q_ASSERT(qNetscapeFuncs); *plugin_major = NP_VERSION_MAJOR; *plugin_minor = NP_VERSION_MINOR; *netscape_major = qNetscapeFuncs->version >> 8; // Major version is in high byte *netscape_minor = qNetscapeFuncs->version & 0xFF; // Minor version is in low byte } #define NPN_Prolog(x) \ Q_ASSERT(qNetscapeFuncs); \ Q_ASSERT(qNetscapeFuncs->x); \ const char *NPN_UserAgent(NPP instance) { NPN_Prolog(uagent); return FIND_FUNCTION_POINTER(NPN_UserAgentFP, qNetscapeFuncs->uagent)(instance); } void NPN_Status(NPP instance, const char* message) { NPN_Prolog(status); FIND_FUNCTION_POINTER(NPN_StatusFP, qNetscapeFuncs->status)(instance, message); } NPError NPN_GetURL(NPP instance, const char* url, const char* window) { NPN_Prolog(geturl); return FIND_FUNCTION_POINTER(NPN_GetURLFP, qNetscapeFuncs->geturl)(instance, url, window); } NPError NPN_GetURLNotify(NPP instance, const char* url, const char* window, void* notifyData) { if ((qNetscapeFuncs->version & 0xFF) < NPVERS_HAS_NOTIFICATION) return NPERR_INCOMPATIBLE_VERSION_ERROR; NPN_Prolog(geturlnotify); return FIND_FUNCTION_POINTER(NPN_GetURLNotifyFP, qNetscapeFuncs->geturlnotify)(instance, url, window, notifyData); } NPError NPN_PostURLNotify(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file, void* notifyData) { if ((qNetscapeFuncs->version & 0xFF) < NPVERS_HAS_NOTIFICATION) return NPERR_INCOMPATIBLE_VERSION_ERROR; NPN_Prolog(posturlnotify); return FIND_FUNCTION_POINTER(NPN_PostURLNotifyFP, qNetscapeFuncs->posturlnotify)(instance, url, window, len, buf, file, notifyData); } void* NPN_MemAlloc(uint32 size) { NPN_Prolog(memalloc); return FIND_FUNCTION_POINTER(NPN_MemAllocFP, qNetscapeFuncs->memalloc)(size); } void NPN_MemFree(void* ptr) { NPN_Prolog(memfree); FIND_FUNCTION_POINTER(NPN_MemFreeFP, qNetscapeFuncs->memfree)(ptr); } uint32 NPN_MemFlush(uint32 size) { NPN_Prolog(memflush); return FIND_FUNCTION_POINTER(NPN_MemFlushFP, qNetscapeFuncs->memflush)(size); } NPError NPN_GetValue(NPP instance, NPNVariable variable, void *ret_value) { NPN_Prolog(getvalue); return FIND_FUNCTION_POINTER(NPN_GetValueFP, qNetscapeFuncs->getvalue)(instance, variable, ret_value); } NPError NPN_SetValue(NPP instance, NPPVariable variable, void *ret_value) { NPN_Prolog(setvalue); return FIND_FUNCTION_POINTER(NPN_SetValueFP, qNetscapeFuncs->setvalue)(instance, variable, ret_value); } NPIdentifier NPN_GetStringIdentifier(const char* name) { NPN_Prolog(getstringidentifier); return FIND_FUNCTION_POINTER(NPN_GetStringIdentifierFP, qNetscapeFuncs->getstringidentifier)(name); } void NPN_GetStringIdentifiers(const char** names, int32 nameCount, NPIdentifier* identifiers) { NPN_Prolog(getstringidentifiers); FIND_FUNCTION_POINTER(NPN_GetStringIdentifiersFP, qNetscapeFuncs->getstringidentifiers)(names, nameCount, identifiers); } NPIdentifier NPN_GetIntIdentifier(int32 intid) { NPN_Prolog(getintidentifier); return FIND_FUNCTION_POINTER(NPN_GetIntIdentifierFP, qNetscapeFuncs->getintidentifier)(intid); } bool NPN_IdentifierIsString(NPIdentifier identifier) { NPN_Prolog(identifierisstring); return FIND_FUNCTION_POINTER(NPN_IdentifierIsStringFP, qNetscapeFuncs->identifierisstring)(identifier); } char* NPN_UTF8FromIdentifier(NPIdentifier identifier) { NPN_Prolog(utf8fromidentifier); return FIND_FUNCTION_POINTER(NPN_UTF8FromIdentifierFP, qNetscapeFuncs->utf8fromidentifier)(identifier); } int32 NPN_IntFromIdentifier(NPIdentifier identifier) { NPN_Prolog(intfromidentifier); return FIND_FUNCTION_POINTER(NPN_IntFromIdentifierFP, qNetscapeFuncs->intfromidentifier)(identifier); } NPObject* NPN_CreateObject(NPP npp, NPClass *aClass) { NPN_Prolog(createobject); return FIND_FUNCTION_POINTER(NPN_CreateObjectFP, qNetscapeFuncs->createobject)(npp, aClass); } NPObject* NPN_RetainObject(NPObject *obj) { NPN_Prolog(retainobject); return FIND_FUNCTION_POINTER(NPN_RetainObjectFP, qNetscapeFuncs->retainobject)(obj); } void NPN_ReleaseObject(NPObject *obj) { NPN_Prolog(releaseobject); FIND_FUNCTION_POINTER(NPN_ReleaseObjectFP, qNetscapeFuncs->releaseobject)(obj); } // Scripting implementation (QObject calling JavaScript in browser) - we don't use those bool NPN_Invoke(NPP npp, NPObject* obj, NPIdentifier methodName, const NPVariant *args, int32 argCount, NPVariant *result) { NPN_Prolog(invoke); return FIND_FUNCTION_POINTER(NPN_InvokeFP, qNetscapeFuncs->invoke)(npp, obj, methodName, args, argCount, result); } bool NPN_InvokeDefault(NPP npp, NPObject* obj, const NPVariant *args, int32 argCount, NPVariant *result) { NPN_Prolog(invokedefault); return FIND_FUNCTION_POINTER(NPN_InvokeDefaultFP, qNetscapeFuncs->invokedefault)(npp, obj, args, argCount, result); } bool NPN_Evaluate(NPP npp, NPObject *obj, NPString *script, NPVariant *result) { NPN_Prolog(evaluate); return FIND_FUNCTION_POINTER(NPN_EvaluateFP, qNetscapeFuncs->evaluate)(npp, obj, script, result); } bool NPN_GetProperty(NPP npp, NPObject *obj, NPIdentifier propertyName, NPVariant *result) { NPN_Prolog(getproperty); return FIND_FUNCTION_POINTER(NPN_GetPropertyFP, qNetscapeFuncs->getproperty)(npp, obj, propertyName, result); } bool NPN_SetProperty(NPP npp, NPObject *obj, NPIdentifier propertyName, const NPVariant *value) { NPN_Prolog(setproperty); return FIND_FUNCTION_POINTER(NPN_SetPropertyFP, qNetscapeFuncs->setproperty)(npp, obj, propertyName, value); } bool NPN_RemoveProperty(NPP npp, NPObject *obj, NPIdentifier propertyName) { NPN_Prolog(removeproperty); return FIND_FUNCTION_POINTER(NPN_RemovePropertyFP, qNetscapeFuncs->removeproperty)(npp, obj, propertyName); } bool NPN_HasProperty(NPP npp, NPObject *obj, NPIdentifier propertyName) { NPN_Prolog(hasproperty); return FIND_FUNCTION_POINTER(NPN_HasPropertyFP, qNetscapeFuncs->hasproperty)(npp, obj, propertyName); } bool NPN_HasMethod(NPP npp, NPObject *obj, NPIdentifier methodName) { NPN_Prolog(hasmethod); return FIND_FUNCTION_POINTER(NPN_HasMethodFP, qNetscapeFuncs->hasmethod)(npp, obj, methodName); } void NPN_ReleaseVariantValue(NPVariant *variant) { NPN_Prolog(releasevariantvalue); FIND_FUNCTION_POINTER(NPN_ReleaseVariantValueFP, qNetscapeFuncs->releasevariantvalue)(variant); } void NPN_SetException(NPObject *obj, const char *message) { qDebug("NPN_SetException: %s", message); NPN_Prolog(setexception); FIND_FUNCTION_POINTER(NPN_SetExceptionFP, qNetscapeFuncs->setexception)(obj, message); } // Scripting implementation (JavaScript calling QObject) #define NPClass_Prolog \ if (!npobj->_class) return false; \ if (!npobj->_class->qtnp) return false; \ QtNPInstance *This = npobj->_class->qtnp; \ if (!This->qt.object) return false; \ QObject *qobject = This->qt.object \ static NPObject *NPAllocate(NPP npp, NPClass *aClass) { Q_UNUSED(npp); Q_UNUSED(aClass); Q_ASSERT(false); return 0; } static void NPDeallocate(NPObject *npobj) { Q_UNUSED(npobj); Q_ASSERT(false); return; } static void NPInvalidate(NPObject *npobj) { if (npobj) delete npobj->_class; npobj->_class = 0; } enum MetaOffset { MetaProperty, MetaMethod }; static int metaOffset(const QMetaObject *metaObject, MetaOffset offsetType) { int classInfoIndex = metaObject->indexOfClassInfo("ToSuperClass"); if (classInfoIndex == -1) return 0; QByteArray ToSuperClass = metaObject->classInfo(classInfoIndex).value(); int offset = offsetType == MetaProperty ? metaObject->propertyOffset() : metaObject->methodOffset(); while (ToSuperClass != metaObject->className()) { metaObject = metaObject->superClass(); if (!metaObject) break; offset -= offsetType == MetaProperty ? metaObject->propertyCount() : metaObject->methodCount(); } return offset; } static int publicMethodIndex(NPObject *npobj, const QByteArray &slotName, int argCount = -1) { NPClass_Prolog; const QMetaObject *metaObject = qobject->metaObject(); for (int slotIndex = metaOffset(metaObject, MetaMethod); slotIndex < metaObject->methodCount(); ++slotIndex) { const QMetaMethod slot = qobject->metaObject()->method(slotIndex); if (slot.access() != QMetaMethod::Public || slot.methodType() == QMetaMethod::Signal) continue; QByteArray signature = slot.signature(); if (signature.left(signature.indexOf('(')) == slotName) { if (argCount == -1 || slot.parameterTypes().count() == argCount) return slotIndex; } } return -1; } static bool NPClass_HasMethod(NPObject *npobj, NPIdentifier name) { NPClass_Prolog; Q_UNUSED(qobject); return publicMethodIndex(npobj, NPN_UTF8FromIdentifier(name)) != -1; } static bool NPClass_Invoke(NPObject *npobj, NPIdentifier name, const NPVariant *args, uint32 argCount, NPVariant *result) { NPClass_Prolog; const QByteArray slotName = NPN_UTF8FromIdentifier(name); int slotIndex = publicMethodIndex(npobj, slotName, static_cast(argCount)); if (slotIndex == -1) { NPN_SetException(npobj, QByteArray("No method '" + slotName + "' with " + QByteArray::number(argCount) + " parameters").constData()); return false; } const QMetaMethod slot = qobject->metaObject()->method(slotIndex); QList parameterTypes = slot.parameterTypes(); if (parameterTypes.count() != static_cast(argCount)) { NPN_SetException(npobj, QByteArray("Wrong parameter count for method " + slotName).constData()); return false; } QVariant returnVariant(QVariant::nameToType(slot.typeName()), (void*)0); QVector variants(parameterTypes.count()); // keep data alive QVector metacallArgs(parameterTypes.count() + 1); // arguments for qt_metacall metacallArgs[0] = returnVariant.data(); // args[0] == return value for (int p = 0; p < parameterTypes.count(); ++p) { QVariant::Type type = QVariant::nameToType(parameterTypes.at(p)); if (type == QVariant::Invalid && parameterTypes.at(p) != "QVariant") { NPN_SetException(npobj, QString("Parameter %1 in method '%2' has invalid type") .arg(p).arg(QString::fromUtf8(slotName)).toAscii().constData()); return false; } QVariant qvar = args[p]; if (type != QVariant::Invalid && !qvar.convert(type)) { NPN_SetException(npobj, QString("Parameter %1 to method '%2' needs to be convertable to '%3'") .arg(p).arg(QString::fromUtf8(slotName)).arg(QString::fromAscii(parameterTypes.at(p))).toAscii().constData()); return false; } variants[p] = qvar; if (type == QVariant::Invalid) metacallArgs[p + 1] = &variants.at(p); else metacallArgs[p + 1] = variants.at(p).constData(); // must not detach! } qobject->qt_metacall(QMetaObject::InvokeMetaMethod, slotIndex, const_cast(metacallArgs.data())); if (returnVariant.isValid() && result) *result = NPVariant::fromQVariant(This, returnVariant); return true; } static bool NPClass_InvokeDefault(NPObject * /*npobj*/, const NPVariant * /*args*/, uint32 /*argCount*/, NPVariant * /*result*/) { return false; } static bool NPClass_HasProperty(NPObject *npobj, NPIdentifier name) { NPClass_Prolog; const QByteArray qname = NPN_UTF8FromIdentifier(name); const QMetaObject *metaObject = qobject->metaObject(); int propertyIndex = metaObject->indexOfProperty(qname); if (propertyIndex == -1 || propertyIndex < metaOffset(metaObject, MetaProperty)) return false; QMetaProperty property = qobject->metaObject()->property(propertyIndex); if (!property.isScriptable()) return false; return true; } static bool NPClass_GetProperty(NPObject *npobj, NPIdentifier name, NPVariant *result) { NPClass_Prolog; const QByteArray qname = NPN_UTF8FromIdentifier(name); QVariant qvar = qobject->property(qname); if (!qvar.isValid()) { NPN_SetException(npobj, QByteArray("Failed to get value for property " + qname).constData()); return false; } *result = NPVariant::fromQVariant(This, qvar); return true; } static bool NPClass_SetProperty(NPObject *npobj, NPIdentifier name, const NPVariant *result) { NPClass_Prolog; const QByteArray qname = NPN_UTF8FromIdentifier(name); QVariant qvar = *result; return qobject->setProperty(qname, qvar); } static bool NPClass_RemoveProperty(NPObject * /*npobj*/, NPIdentifier /*name*/) { return false; } NPClass::NPClass(QtNPInstance *This) { structVersion = NP_CLASS_STRUCT_VERSION; allocate = 0; deallocate = 0; invalidate = NPInvalidate; hasMethod = NPClass_HasMethod; invoke = NPClass_Invoke; invokeDefault = NPClass_InvokeDefault; hasProperty = NPClass_HasProperty; getProperty = NPClass_GetProperty; setProperty = NPClass_SetProperty; removeProperty = NPClass_RemoveProperty; qtnp = This; delete_qtnp = false; } NPClass::~NPClass() { if (delete_qtnp) delete qtnp; } // Type conversions NPString NPString::fromQString(const QString &qstr) { NPString npstring; const QByteArray qutf8 = qstr.toUtf8(); npstring.utf8length = qutf8.length(); npstring.utf8characters = (char*)NPN_MemAlloc(npstring.utf8length); memcpy((char*)npstring.utf8characters, qutf8.constData(), npstring.utf8length); return npstring; } NPString::operator QString() const { return QString::fromUtf8(utf8characters, utf8length); } NPVariant NPVariant::fromQVariant(QtNPInstance *This, const QVariant &qvariant) { Q_ASSERT(This); NPVariant npvar; npvar.type = Null; QVariant qvar(qvariant); switch(qvariant.type()) { case QVariant::Bool: npvar.value.boolValue = qvar.toBool(); npvar.type = Boolean; break; case QVariant::Int: npvar.value.intValue = qvar.toInt(); npvar.type = Int32; break; case QVariant::Double: npvar.value.doubleValue = qvar.toDouble(); npvar.type = Double; break; case QVariant::UserType: { QByteArray userType = qvariant.typeName(); if (userType.endsWith('*')) { QtNPInstance *that = new QtNPInstance; that->npp = This->npp; that->qt.object = *(QObject**)qvariant.constData(); NPClass *npclass = new NPClass(that); npclass->delete_qtnp = true; npvar.value.objectValue = NPN_CreateObject(This->npp, npclass); npvar.type = Object; } } break; default: // including QVariant::String if (!qvar.convert(QVariant::String)) break; npvar.type = String; npvar.value.stringValue = NPString::fromQString(qvar.toString()); break; } return npvar; } NPVariant::operator QVariant() const { switch(type) { case Void: case Null: return QVariant(); case Object: { if (!value.objectValue || !value.objectValue->_class) break; NPClass *aClass = value.objectValue->_class; // not one of ours? if (aClass->invoke != NPClass_Invoke) break; // or just empty for some reason QObject *qobject = aClass->qtnp->qt.object; if (!qobject) break; QByteArray typeName = qobject->metaObject()->className(); int userType = QMetaType::type(typeName + "*"); if (userType == QVariant::Invalid) break; QVariant result(userType, &aClass->qtnp->qt.object); // sanity check Q_ASSERT(*(QObject**)result.constData() == aClass->qtnp->qt.object); return result; } case Boolean: return value.boolValue; case Int32: return value.intValue; case Double: return value.doubleValue; case String: return QString(value.stringValue); default: break; } return QVariant(); } // Helper class for handling incoming data class QtNPStream { public: QtNPStream(NPP instance, NPStream *st); virtual ~QtNPStream() { } QString url() const; bool finish(QtNPBindable *bindable); QByteArray buffer; QFile file; QString mime; NPError reason; NPP npp; NPStream* stream; protected: qint64 readData(char *, qint64); qint64 writeData(const char *, qint64); }; QtNPStream::QtNPStream(NPP instance, NPStream *st) : reason(NPRES_DONE), npp(instance), stream(st) { } /*! Returns the URL from which the stream was created, or the empty string for write-only streams. */ QString QtNPStream::url() const { if (!stream) return QString(); return QString::fromLocal8Bit(stream->url); } class ErrorBuffer : public QBuffer { friend class QtNPStream; }; bool QtNPStream::finish(QtNPBindable *bindable) { if (!bindable) return false; bool res = false; if (bindable) { switch(reason) { case NPRES_DONE: // no data at all? url is probably local file (Opera) if (buffer.isEmpty() && file.fileName().isEmpty()) { QUrl u = QUrl::fromEncoded(stream->url); QString lfn = u.toLocalFile(); if (lfn.startsWith("//localhost/")) lfn = lfn.mid(12); file.setFileName(lfn); } if (file.exists()) { file.setObjectName(url()); res = bindable->readData(&file, mime); } else { QBuffer io(&buffer); io.setObjectName(url()); res = bindable->readData(&io, mime); } break; case NPRES_USER_BREAK: { ErrorBuffer empty; empty.setObjectName(url()); empty.setErrorString("User cancelled operation."), res = bindable->readData(&empty, mime); } break; case NPRES_NETWORK_ERR: { ErrorBuffer empty; empty.setObjectName(url()); empty.setErrorString("Network error during download."), res = bindable->readData(&empty, mime); } break; default: break; } } stream->pdata = 0; delete this; return res; } // Helper class for forwarding signal emissions to the respective JavaScript class QtSignalForwarder : public QObject { public: QtSignalForwarder(QtNPInstance *that) : This(that), domNode(0) { } ~QtSignalForwarder() { if (domNode) NPN_ReleaseObject(domNode); } int qt_metacall(QMetaObject::Call call, int index, void **args); private: QtNPInstance *This; NPObject *domNode; }; int QtSignalForwarder::qt_metacall(QMetaObject::Call call, int index, void **args) { // no support for QObject method/properties etc! if (!This || !This->npp || call != QMetaObject::InvokeMetaMethod || !This->qt.object) return index; switch (index) { case -1: { QString msg = *(QString*)args[1]; NPN_Status(This->npp, msg.toLocal8Bit().constData()); } break; default: { QObject *qobject = This->qt.object; if (!domNode) NPN_GetValue(This->npp, NPNVPluginElementNPObject, &domNode); if (!domNode) break; const QMetaObject *metaObject = qobject->metaObject(); if (index < metaOffset(metaObject, MetaMethod)) break; const QMetaMethod method = metaObject->method(index); Q_ASSERT(method.methodType() == QMetaMethod::Signal); QByteArray signalSignature = method.signature(); QByteArray scriptFunction = signalSignature.left(signalSignature.indexOf('(')); NPIdentifier id = NPN_GetStringIdentifier(scriptFunction.constData()); if (NPN_HasMethod(This->npp, domNode, id)) { QList parameterTypes = method.parameterTypes(); QVector parameters; NPVariant result; bool error = false; for (int p = 0; p < parameterTypes.count(); ++p) { QVariant::Type type = QVariant::nameToType(parameterTypes.at(p)); if (type == QVariant::Invalid) { NPN_SetException(domNode, QByteArray("Unsupported parameter type in ") + scriptFunction); error = true; break; } QVariant qvar(type, args[p + 1]); NPVariant npvar = NPVariant::fromQVariant(This, qvar); if (npvar.type == NPVariant::Null || npvar.type == NPVariant::Void) { NPN_SetException(domNode, QByteArray("Unsupported parameter value in ") + scriptFunction); error =true; break; } parameters += npvar; } if (error) break; NPError nperror = NPN_Invoke(This->npp, domNode, id, parameters.constData(), parameters.count(), &result); if (nperror != NPERR_NO_ERROR && false) { // disabled, as NPN_Invoke seems to always return GENERICERROR NPN_SetException(domNode, QByteArray("Error invoking event handler ") + scriptFunction); } // ### TODO: update return value (args[0]) (out-parameters not supported anyway) NPN_ReleaseVariantValue(&result); } } break; } return index; } // Plugin functions extern "C" NPError NPP_GetValue(NPP instance, NPPVariable variable, void *value) { if (!instance || !instance->pdata) return NPERR_INVALID_INSTANCE_ERROR; QtNPInstance* This = (QtNPInstance*) instance->pdata; switch (variable) { case NPPVpluginNameString: { static QByteArray name = qtNPFactory()->pluginName().toLocal8Bit(); *(const char**)value = name.constData(); } break; case NPPVpluginDescriptionString: { static QByteArray description = qtNPFactory()->pluginDescription().toLocal8Bit(); *(const char**)value = description.constData(); } break; #ifdef Q_WS_X11 case NPPVpluginNeedsXEmbed: *(int*)value = true; // PRBool = int break; #endif case NPPVpluginScriptableNPObject: { NPObject *object = NPN_CreateObject(instance, new NPClass(This)); *(NPObject**)value = object; } break; case NPPVformValue: { QObject *object = This->qt.object; const QMetaObject *metaObject = object->metaObject(); int defaultIndex = metaObject->indexOfClassInfo("DefaultProperty"); if (defaultIndex == -1) return NPERR_GENERIC_ERROR; QByteArray defaultProperty = metaObject->classInfo(defaultIndex).value(); if (defaultProperty.isEmpty()) return NPERR_GENERIC_ERROR; QVariant defaultValue = object->property(defaultProperty); if (!defaultValue.isValid()) return NPERR_GENERIC_ERROR; defaultProperty = defaultValue.toString().toUtf8(); int size = defaultProperty.size(); char *utf8 = (char*)NPN_MemAlloc(size + 1); memcpy(utf8, defaultProperty.constData(), size); utf8[size] = 0; // null-terminator *(void**)value = utf8; } break; default: return NPERR_GENERIC_ERROR; } return NPERR_NO_ERROR; } extern "C" NPError NPP_SetValue(NPP instance, NPPVariable variable, void *value) { Q_UNUSED(variable); Q_UNUSED(value); if (!instance || !instance->pdata) return NPERR_INVALID_INSTANCE_ERROR; /* switch(variable) { default: return NPERR_GENERIC_ERROR; } */ return NPERR_NO_ERROR; } extern "C" int16 NPP_Event(NPP instance, NPEvent* event) { if (!instance || !instance->pdata) return NPERR_INVALID_INSTANCE_ERROR; QtNPInstance* This = (QtNPInstance*) instance->pdata; extern bool qtns_event(QtNPInstance *, NPEvent *); return qtns_event(This, event) ? 1 : 0; } #ifdef Q_WS_X11 // Instance state information about the plugin. extern "C" char* NP_GetMIMEDescription(void) { static QByteArray mime = qtNPFactory()->mimeTypes().join(";").toLocal8Bit(); return (char*)mime.constData(); } extern "C" NPError NP_GetValue(void*, NPPVariable aVariable, void *aValue) { NPError err = NPERR_NO_ERROR; static QByteArray name = qtNPFactory()->pluginName().toLocal8Bit(); static QByteArray descr = qtNPFactory()->pluginDescription().toLocal8Bit(); switch (aVariable) { case NPPVpluginNameString: *static_cast (aValue) = name.constData(); break; case NPPVpluginDescriptionString: *static_cast(aValue) = descr.constData(); break; case NPPVpluginNeedsXEmbed: *static_cast(aValue) = true; break; case NPPVpluginTimerInterval: case NPPVpluginKeepLibraryInMemory: default: err = NPERR_INVALID_PARAM; break; } return err; } #endif /* ** NPP_New is called when your plugin is instantiated (i.e. when an EMBED ** tag appears on a page). */ extern "C" NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char* argn[], char* argv[], NPSavedData* /*saved*/) { if (!instance) return NPERR_INVALID_INSTANCE_ERROR; QtNPInstance* This = new QtNPInstance; if (!This) return NPERR_OUT_OF_MEMORY_ERROR; instance->pdata = This; This->filter = 0; This->bindable = 0; This->npp = instance; This->fMode = mode; // NP_EMBED, NP_FULL, or NP_BACKGROUND (see npapi.h) This->window = 0; This->qt.object = 0; #ifdef Q_WS_MAC This->rootWidget = 0; #endif This->pendingStream = 0; // stream might be created before instance This->mimetype = QString::fromLatin1(pluginType); This->notificationSeqNum = 0; for (int i = 0; i < argc; i++) { QByteArray name = QByteArray(argn[i]).toLower(); if (name == "id") This->htmlID = argv[i]; This->parameters[name] = QVariant(argv[i]); } return NPERR_NO_ERROR; } extern "C" NPError NPP_Destroy(NPP instance, NPSavedData** /*save*/) { if (!instance || !instance->pdata) return NPERR_INVALID_INSTANCE_ERROR; QtNPInstance* This = (QtNPInstance*) instance->pdata; #ifdef Q_WS_X11 //This->widget->destroy(false, false); // X has destroyed all windows #endif delete This->qt.object; This->qt.object = 0; delete This->filter; This->filter = 0; extern void qtns_destroy(QtNPInstance *This); qtns_destroy(This); delete This; instance->pdata = 0; return NPERR_NO_ERROR; } static QtNPInstance *next_pi = 0; // helper to connect to QtNPBindable extern "C" NPError NPP_SetWindow(NPP instance, NPWindow* window) { if (!instance) return NPERR_INVALID_INSTANCE_ERROR; QtNPInstance* This = (QtNPInstance*) instance->pdata; extern void qtns_setGeometry(QtNPInstance*, const QRect &, const QRect &); const QRect clipRect(window->clipRect.left, window->clipRect.top, window->clipRect.right - window->clipRect.left, window->clipRect.bottom - window->clipRect.top); if (window) This->geometry = QRect(window->x, window->y, window->width, window->height); // take a shortcut if all that was changed is the geometry if (qobject_cast(This->qt.object) && window && This->window == (QtNPInstance::Widget)window->window) { qtns_setGeometry(This, This->geometry, clipRect); return NPERR_NO_ERROR; } delete This->qt.object; This->qt.object = 0; extern void qtns_destroy(QtNPInstance *This); qtns_destroy(This); if (!window) { This->window = 0; return NPERR_NO_ERROR; } This->window = (QtNPInstance::Widget)window->window; #ifdef Q_WS_X11 //This->display = ((NPSetWindowCallbackStruct *)window->ws_info)->display; #endif extern void qtns_initialize(QtNPInstance*); qtns_initialize(This); next_pi = This; This->qt.object = qtNPFactory()->createObject(This->mimetype); next_pi = 0; if (!This->qt.object) return NPERR_NO_ERROR; if (!This->htmlID.isEmpty()) This->qt.object->setObjectName(QLatin1String(This->htmlID)); This->filter = new QtSignalForwarder(This); QStatusBar *statusbar = qFindChild(This->qt.object); if (statusbar) { int statusSignal = statusbar->metaObject()->indexOfSignal("messageChanged(QString)"); if (statusSignal != -1) { QMetaObject::connect(statusbar, statusSignal, This->filter, -1); statusbar->hide(); } } const QMetaObject *mo = This->qt.object->metaObject(); for (int p = 0; p < mo->propertyCount(); ++p) { const QMetaProperty property = mo->property(p); QByteArray name(property.name()); QVariant value = This->parameters.value(name.toLower()); if (value.isValid()) property.write(This->qt.object, value); } for (int methodIndex = 0; methodIndex < mo->methodCount(); ++methodIndex) { const QMetaMethod method = mo->method(methodIndex); if (method.methodType() == QMetaMethod::Signal) QMetaObject::connect(This->qt.object, methodIndex, This->filter, methodIndex); } if (This->pendingStream) { This->pendingStream->finish(This->bindable); This->pendingStream = 0; } if (!qobject_cast(This->qt.object)) return NPERR_NO_ERROR; extern void qtns_embed(QtNPInstance*); qtns_embed(This); QEvent e(QEvent::EmbeddingControl); QApplication::sendEvent(This->qt.widget, &e); if (!This->qt.widget->testAttribute(Qt::WA_PaintOnScreen)) This->qt.widget->setAutoFillBackground(true); This->qt.widget->raise(); qtns_setGeometry(This, This->geometry, clipRect); This->qt.widget->show(); return NPERR_NO_ERROR; } extern "C" NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream *stream, NPBool /*seekable*/, uint16 *stype) { if (!instance) return NPERR_INVALID_INSTANCE_ERROR; QtNPInstance* This = (QtNPInstance*) instance->pdata; if (!This) return NPERR_NO_ERROR; QtNPStream *qstream = new QtNPStream(instance, stream); qstream->mime = QString::fromLocal8Bit(type); stream->pdata = qstream; // Workaround bug in Firefox/Gecko/Mozilla; observed in version 3.0.5 on Windows: // On page reload, it does not call StreamAsFile() even when stype is AsFileOnly if (QByteArray(NPN_UserAgent(instance)).contains("Mozilla")) *stype = NP_NORMAL; else *stype = NP_ASFILEONLY; return NPERR_NO_ERROR; } extern "C" int32 NPP_WriteReady(NPP, NPStream *stream) { if (stream->pdata) return 0x0FFFFFFF; return 0; } // Both Netscape and FireFox call this for OnDemand streams as well... extern "C" int32 NPP_Write(NPP instance, NPStream *stream, int32 /*offset*/, int32 len, void *buffer) { if (!instance || !stream || !stream->pdata) return NPERR_INVALID_INSTANCE_ERROR; // this should not be called, as we always demand a download QtNPStream *qstream = (QtNPStream*)stream->pdata; QByteArray data((const char*)buffer, len); // make deep copy qstream->buffer += data; return len; } // Opera calls this for OnDemand streams without calling NPP_Write first extern "C" NPError NPP_DestroyStream(NPP instance, NPStream *stream, NPError reason) { if (!instance || !instance->pdata || !stream || !stream->pdata) return NPERR_INVALID_INSTANCE_ERROR; QtNPInstance *This = (QtNPInstance*)instance->pdata; QtNPStream *qstream = (QtNPStream*)stream->pdata; qstream->reason = reason; if (!This->qt.object) { // not yet initialized This->pendingStream = qstream; return NPERR_NO_ERROR; } This->pendingStream = 0; qstream->finish(This->bindable); return NPERR_NO_ERROR; } extern "C" void NPP_StreamAsFile(NPP instance, NPStream *stream, const char* fname) { if (!instance || !stream || !stream->pdata) return; QString path = QString::fromLocal8Bit(fname); #ifdef Q_WS_MAC path = "/" + path.section(':', 1).replace(':', '/'); #endif QtNPStream *qstream = (QtNPStream*)stream->pdata; qstream->file.setFileName(path); } extern "C" void NPP_URLNotify(NPP instance, const char* url, NPReason reason, void* notifyData) { if (!instance) return; QtNPInstance* This = (QtNPInstance*) instance->pdata; if (!This->bindable) return; QtNPBindable::Reason r; switch (reason) { case NPRES_DONE: r = QtNPBindable::ReasonDone; break; case NPRES_USER_BREAK: r = QtNPBindable::ReasonBreak; break; case NPRES_NETWORK_ERR: r = QtNPBindable::ReasonError; break; default: r = QtNPBindable::ReasonUnknown; break; } qint32 id = static_cast(reinterpret_cast(notifyData)); if (id < 0) // Sanity check id = 0; This->bindable->transferComplete(QString::fromLocal8Bit(url), id, r); } extern "C" void NPP_Print(NPP instance, NPPrint* printInfo) { if(!printInfo || !instance) return; QtNPInstance* This = (QtNPInstance*) instance->pdata; if (!This->bindable) return; /* if (printInfo->mode == NP_FULL) { printInfo->print.fullPrint.pluginPrinted = This->bindable->printFullPage(); } else if (printInfo->mode == NP_EMBED) { extern void qtns_print(QtNPInstance*, NPPrint*); qtns_print(This, printInfo); } */ } // Plug-in entrypoints - these are called by the browser // Fills in functiontable used by browser to call entry points in plugin. extern "C" NPError WINAPI NP_GetEntryPoints(NPPluginFuncs* pFuncs) { if(!pFuncs) return NPERR_INVALID_FUNCTABLE_ERROR; if(!pFuncs->size) pFuncs->size = sizeof(NPPluginFuncs); else if (pFuncs->size < sizeof(NPPluginFuncs)) return NPERR_INVALID_FUNCTABLE_ERROR; pFuncs->version = (NP_VERSION_MAJOR << 8) | NP_VERSION_MINOR; pFuncs->newp = MAKE_FUNCTION_POINTER(NPP_New); pFuncs->destroy = MAKE_FUNCTION_POINTER(NPP_Destroy); pFuncs->setwindow = MAKE_FUNCTION_POINTER(NPP_SetWindow); pFuncs->newstream = MAKE_FUNCTION_POINTER(NPP_NewStream); pFuncs->destroystream = MAKE_FUNCTION_POINTER(NPP_DestroyStream); pFuncs->asfile = MAKE_FUNCTION_POINTER(NPP_StreamAsFile); pFuncs->writeready = MAKE_FUNCTION_POINTER(NPP_WriteReady); pFuncs->write = MAKE_FUNCTION_POINTER(NPP_Write); pFuncs->print = MAKE_FUNCTION_POINTER(NPP_Print); pFuncs->event = MAKE_FUNCTION_POINTER(NPP_Event); pFuncs->urlnotify = MAKE_FUNCTION_POINTER(NPP_URLNotify); pFuncs->javaClass = 0; pFuncs->getvalue = MAKE_FUNCTION_POINTER(NPP_GetValue); pFuncs->setvalue = MAKE_FUNCTION_POINTER(NPP_SetValue); return NPERR_NO_ERROR; } enum NPNToolkitType { NPNVGtk12 = 1, NPNVGtk2 }; #ifndef Q_WS_X11 extern "C" NPError WINAPI NP_Initialize(NPNetscapeFuncs* pFuncs) { if(!pFuncs) return NPERR_INVALID_FUNCTABLE_ERROR; qNetscapeFuncs = pFuncs; int navMajorVers = qNetscapeFuncs->version >> 8; // if the plugin's major version is lower than the Navigator's, // then they are incompatible, and should return an error if(navMajorVers > NP_VERSION_MAJOR) return NPERR_INCOMPATIBLE_VERSION_ERROR; return NPERR_NO_ERROR; } #else extern "C" NPError WINAPI NP_Initialize(NPNetscapeFuncs* nFuncs, NPPluginFuncs* pFuncs) { if(!nFuncs) return NPERR_INVALID_FUNCTABLE_ERROR; qNetscapeFuncs = nFuncs; int navMajorVers = qNetscapeFuncs->version >> 8; // if the plugin's major version is lower than the Navigator's, // then they are incompatible, and should return an error if(navMajorVers > NP_VERSION_MAJOR) return NPERR_INCOMPATIBLE_VERSION_ERROR; // check if the Browser supports the XEmbed protocol int supportsXEmbed = 0; NPError err = NPN_GetValue(0, NPNVSupportsXEmbedBool, (void *)&supportsXEmbed); if (err != NPERR_NO_ERROR ||!supportsXEmbed) return NPERR_INCOMPATIBLE_VERSION_ERROR; return NP_GetEntryPoints(pFuncs); } #endif extern "C" NPError WINAPI NP_Shutdown() { delete qNP; qNP = 0; extern void qtns_shutdown(); qtns_shutdown(); qNetscapeFuncs = 0; return NPERR_NO_ERROR; } /*! \class QtNPBindable qtnetscape.h \brief The QtNPBindable class provides an interface between a widget and the web browser. Inherit your plugin widget class from both QWidget (or QObject) and QtNPBindable to be able to call the functions of this class, and to reimplement the virtual functions. The \l{moc}{meta-object compiler} requires you to inherit from the QObject subclass first. \code class PluginWidget : public QWidget, public QtNPBindable { Q_OBJECT public: PluginWidget(QWidget *parent = 0) { } //... }; \endcode */ /*! \enum QtNPBindable::DisplayMode \brief This enum specifies the different display modes of a plugin \value Embedded The plugin widget is embedded in a web page, usually with the or the tag. \value Fullpage The plugin widget is the primary content of the web browser, which is usually the case when the web browser displays a file the plugin supports. */ /*! \enum QtNPBindable::Reason \brief This enum specifies how an URL operation was completed \value ReasonDone \value ReasonBreak \value ReasonError \value ReasonUnknown */ /*! Constructs a QtNPBindable object. This can only happen when the plugin object is created. */ QtNPBindable::QtNPBindable() : pi(next_pi) { if (pi) pi->bindable = this; next_pi = 0; } /*! Destroys the object. This can only happen when the plugin object is destroyed. */ QtNPBindable::~QtNPBindable() { } /*! Returns the parameters passed to the plugin instance. The framework sets the properties of the plugin to the corresponding parameters when the plugin object has been created, but you can use this function to process additional parameters. Note that the SGML specification does not permit multiple arguments with the same name. */ QMap QtNPBindable::parameters() const { if (!pi) return QMap(); return pi->parameters; } /*! Returns the user agent (browser name) containing this plugin. This is a wrapper around NPN_UserAgent. \sa getBrowserVersion() */ QString QtNPBindable::userAgent() const { if (!pi) return QString(); return QString::fromLocal8Bit(NPN_UserAgent(pi->npp)); } /*! Extracts the version of the plugin API used by this plugin into \a major and \a minor. See http://devedge-temp.mozilla.org/library/manuals/2002/plugin/1.0/ for an explanation of those values. \sa getBrowserVersion() userAgent() */ void QtNPBindable::getNppVersion(int *major, int *minor) const { int dummy = 0; if (pi) NPN_Version(major, minor, &dummy, &dummy); } /*! Extracts the version of the browser into \a major and \a minor. See http://devedge-temp.mozilla.org/library/manuals/2002/plugin/1.0/ for an explanation of those values. \sa getNppVersion() userAgent() */ void QtNPBindable::getBrowserVersion(int *major, int *minor) const { int dummy = 0; if (pi) NPN_Version(&dummy, &dummy, major, minor); } /*! Returns the display mode of the plugin. */ QtNPBindable::DisplayMode QtNPBindable::displayMode() const { if (!pi) return Embedded; return (QtNPBindable::DisplayMode)pi->fMode; } /*! Returns the mime type this plugin has been instantiated for. */ QString QtNPBindable::mimeType() const { if (!pi) return QString(); return pi->mimetype; } /*! Returns the browser's plugin instance associated with this plugin object. The instance is required to call functions in the Netscape Plugin API, i.e. NPN_GetJavaPeer(). The instance returned is only valid as long as this object is. See http://devedge-temp.mozilla.org/library/manuals/2002/plugin/1.0/ for documentation of the \c NPP type. */ NPP QtNPBindable::instance() const { if (!pi) return 0; return pi->npp; } /*! Reimplement this function to read data from \a source provided with mime type \a format. The data is the one specified in the \c src or \c data attribute of the \c{} or \c{} tag of in HTML page. This function is called once for every stream the browser creates for the plugin. Return true to indicate successfull processing of the data, otherwise return false. The default implementation does nothing and returns false. */ bool QtNPBindable::readData(QIODevice *source, const QString &format) { Q_UNUSED(source); Q_UNUSED(format); return false; } /*! Requests that the \a url be retrieved and sent to the named \a window (or a new window if \a window is empty), and returns the ID of the request that is delivered to transferComplete() when the get-operation has finished. Returns 0 when the browser or the system doesn't support notification, or -1 when an error occured. \code void MyPlugin::aboutQtSoftware() { openUrl("http://qt.nokia.com"); } \endcode See Netscape's JavaScript documentation for an explanation of window names. \sa transferComplete() uploadData() uploadFile() */ int QtNPBindable::openUrl(const QString &url, const QString &window) { if (!pi) return -1; QString wnd = window; if (wnd.isEmpty()) wnd = "_blank"; qint32 id = pi->getNotificationSeqNum(); NPError err = NPN_GetURLNotify(pi->npp, url.toLocal8Bit().constData(), wnd.toLocal8Bit().constData(), reinterpret_cast(id)); if (err != NPERR_NO_ERROR) id = -1; if (err == NPERR_INCOMPATIBLE_VERSION_ERROR) { err = NPN_GetURL(pi->npp, url.toLocal8Bit().constData(), wnd.toLocal8Bit().constData()); if (NPERR_NO_ERROR == err) id = 0; else id = -1; } return id; } /*! Posts \a data to \a url, and displays the result in \a window. Returns the ID of the request that is delivered to transferComplete() when the post-operation has finished. Returns 0 when the browser or the system doesn't support notification, or -1 when an error occured. \code void MyPlugin::sendMail() { uploadData("mailto:fred@somewhere.com", QString(), "There is a new file for you!"); } \endcode See Netscape's JavaScript documentation for an explanation of window names. \sa transferComplete() openUrl() uploadFile() */ int QtNPBindable::uploadData(const QString &url, const QString &window, const QByteArray &data) { if (!pi) return -1; int id = pi->getNotificationSeqNum(); if (NPERR_NO_ERROR != NPN_PostURLNotify(pi->npp, url.toLocal8Bit().constData(), window.isEmpty() ? 0 : window.toLocal8Bit().constData(), data.size(), data.constData(), false, reinterpret_cast(id))) id = -1; return id; } /*! Posts \a filename to \a url, and displays the result in \a window. Returns the ID of the request that is delivered to transferComplete() when the post-operation has finished. Returns 0 when the browser or the system doesn't support notification, or -1 when an error occured. \code void MyPlugin::uploadFile() { uploadFile("ftp://ftp.somewhere.com/incoming", "response", "c:\\temp\\file.txt"); } \endcode See Netscape's JavaScript documentation for an explanation of window names. \sa transferComplete() uploadData() openUrl() */ int QtNPBindable::uploadFile(const QString &url, const QString &window, const QString &filename) { if (!pi) return -1; QByteArray data = filename.toLocal8Bit(); int id = pi->getNotificationSeqNum(); if (NPERR_NO_ERROR != NPN_PostURLNotify(pi->npp, url.toLocal8Bit().constData(), window.isEmpty() ? 0 : window.toLocal8Bit().constData(), data.size(), data.constData(), true, reinterpret_cast(id))) id = -1; return id; } /*! Called as a result of a call to openUrl, uploadData or uploadFile. \a url corresponds to the respective parameter, and \a id to value returned by the call. \a reason indicates how the transfer was completed. */ void QtNPBindable::transferComplete(const QString &url, int id, Reason reason) { Q_UNUSED(url) Q_UNUSED(id) Q_UNUSED(reason) } /****************************************************************************** * The plugin itself - only one ever exists, created by QtNPFactory::create() *****************************************************************************/ /*! \class QtNPFactory qtbrowserplugin.h \brief The QtNPFactory class provides the factory for plugin objects. Implement this factory once in your plugin project to provide information about the plugin and to create the plugin objects. Subclass QtNPFactory and implement the pure virtual functions, and export the factory using the \c QTNPFACTORY_EXPORT() macro. If you use the Q_CLASSINFO macro in your object classes you can use the \c QTNPFACTORY_BEGIN(), \c QTNPCLASS() and \c QTNPFACTORY_END() macros to generate a factory implementation: \code class Widget : public QWidget { Q_OBJECT Q_CLASSINFO("MIME", "application/x-graphable:g1n:Graphable data") public: ... }; QTNPFACTORY_BEGIN("Plugin name", "Plugin description") QTNPCLASS(WidgetClass) QTNPFACTORY_END() \endcode The classes exposed must provide a constructor. If Qt is linked to the plugin as a dynamic library, only one instance of QApplication will exist \e{across all plugins that have been made with Qt}. So, your plugin should tread lightly on global settings. Do not, for example, use QApplication::setFont() - that will change the font in every widget of every Qt-based plugin currently loaded! */ /*! Creates a QtNPFactory. */ QtNPFactory::QtNPFactory() { } /*! Destroys the QtNPFactory. This is called by the plugin binding code just before the plugin is about to be unloaded from memory. If createObject() has been called, a QApplication will still exist at this time, but will be deleted shortly after, just before the plugin is deleted. */ QtNPFactory::~QtNPFactory() { } /*! \fn QStringList QtNPFactory::mimeTypes() const Reimplement this function to return the MIME types of the data formats supported by your plugin. The format of each string is mime:extension(s):description: \code QStringList mimeTypes() const { QStringList list; list << "image/x-png:png:PNG Image" << "image/png:png:PNG Image" << "image/jpeg:jpg,jpeg:JPEG Image"; return list; } \endcode */ /*! \fn QObject *QtNPFactory::createObject(const QString &type) Reimplement this function to return the QObject or QWidget subclass supporting the mime type \a type, or 0 if the factory doesn't support the type requested. \a type will be in the same form as the leftmost (mime) part of the string(s) returned by mimeTypes(), e.g. "image/png". */ /*! \fn QString QtNPFactory::pluginName() const Reimplement this function to return the name of the plugin. */ /*! \fn QString QtNPFactory::pluginDescription() const Reimplement this function to return the description of the plugin. */ x2goclient-4.0.1.1/qtbrowserplugin-2.4_1-opensource/src/qtbrowserplugin.def0000644000000000000000000000012012214040350023465 0ustar EXPORTS NP_GetEntryPoints @1 NP_Initialize @2 NP_Shutdown @3 x2goclient-4.0.1.1/qtbrowserplugin-2.4_1-opensource/src/qtbrowserplugin.h0000644000000000000000000001267612214040350023201 0ustar /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of a Qt Solutions component. ** ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ** the names of its contributors may be used to endorse or promote ** products derived from this software without specific prior written ** permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ****************************************************************************/ #ifndef QTNETSCAPE_H #define QTNETSCAPE_H #include #include #include #include struct QtNPInstance; class QtNPBindable; class QtNPStreamPrivate; struct NPP_t; typedef NPP_t* NPP; class QtNPBindable { friend class QtNPStream; public: enum Reason { ReasonDone = 0, ReasonBreak = 1, ReasonError = 2, ReasonUnknown = -1 }; enum DisplayMode { Embedded = 1, Fullpage = 2 }; QMap parameters() const; DisplayMode displayMode() const; QString mimeType() const; QString userAgent() const; void getNppVersion(int *major, int *minor) const; void getBrowserVersion(int *major, int *minor) const; // incoming streams (SRC=... tag) virtual bool readData(QIODevice *source, const QString &format); // URL stuff int openUrl(const QString &url, const QString &window = QString()); int uploadData(const QString &url, const QString &window, const QByteArray &data); int uploadFile(const QString &url, const QString &window, const QString &filename); virtual void transferComplete(const QString &url, int id, Reason r); NPP instance() const; protected: QtNPBindable(); virtual ~QtNPBindable(); private: QtNPInstance* pi; }; class QtNPFactory { public: QtNPFactory(); virtual ~QtNPFactory(); virtual QStringList mimeTypes() const = 0; virtual QObject* createObject(const QString &type) = 0; virtual QString pluginName() const = 0; virtual QString pluginDescription() const = 0; }; extern QtNPFactory *qtNPFactory(); template class QtNPClass : public QtNPFactory { public: QtNPClass() {} QObject *createObject(const QString &key) { foreach (QString mime, mimeTypes()) { if (mime.left(mime.indexOf(':')) == key) return new T; } return 0; } QStringList mimeTypes() const { const QMetaObject &mo = T::staticMetaObject; return QString::fromLatin1(mo.classInfo(mo.indexOfClassInfo("MIME")).value()).split(';'); } QString pluginName() const { return QString(); } QString pluginDescription() const { return QString(); } }; #define QTNPFACTORY_BEGIN(Name, Description) \ class QtNPClassList : public QtNPFactory \ { \ QHash factories; \ QStringList mimeStrings; \ QString m_name, m_description; \ public: \ QtNPClassList() \ : m_name(Name), m_description(Description) \ { \ QtNPFactory *factory = 0; \ QStringList keys; \ #define QTNPCLASS(Class) \ { \ factory = new QtNPClass; \ keys = factory->mimeTypes(); \ foreach (QString key, keys) { \ mimeStrings.append(key); \ factories.insert(key.left(key.indexOf(':')), factory); \ } \ } \ #define QTNPFACTORY_END() \ } \ ~QtNPClassList() { /*crashes? qDeleteAll(factories);*/ } \ QObject *createObject(const QString &mime) { \ QtNPFactory *factory = factories.value(mime); \ return factory ? factory->createObject(mime) : 0; \ } \ QStringList mimeTypes() const { return mimeStrings; } \ QString pluginName() const { return m_name; } \ QString pluginDescription() const { return m_description; } \ }; \ QtNPFactory *qtns_instantiate() { return new QtNPClassList; } \ #define QTNPFACTORY_EXPORT(Class) \ QtNPFactory *qtns_instantiate() { return new Class; } #endif // QTNETSCAPE_H x2goclient-4.0.1.1/qtbrowserplugin-2.4_1-opensource/src/qtbrowserplugin_mac.cpp0000644000000000000000000004647212214040350024355 0ustar /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of a Qt Solutions component. ** ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ** the names of its contributors may be used to endorse or promote ** products derived from this software without specific prior written ** permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ****************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include "qtnpapi.h" #include "qtbrowserplugin.h" #include "qtbrowserplugin_p.h" static bool ownsqapp = false; extern void qt_mac_set_native_menubar(bool b); const UInt32 kWidgetCreatorQt = 'cute'; enum { kWidgetPropertyQWidget = 'QWId' //QWidget * }; class QMacBrowserRoot : public QWidget { Q_OBJECT public: QMacBrowserRoot(HIViewRef root) : QWidget() { // make sure we're not registered with Qt before create WindowRef window = HIViewGetWindow(root); QWidget *oldwindow=0; OSErr err; err = GetWindowProperty(window, kWidgetCreatorQt, kWidgetPropertyQWidget, sizeof(oldwindow), 0, &oldwindow); if (err == noErr) RemoveWindowProperty(window, kWidgetCreatorQt, kWidgetPropertyQWidget); create((WId)root); // re-register the root window with Qt err = SetWindowProperty(window, kWidgetCreatorQt, kWidgetPropertyQWidget, sizeof(oldwindow), &oldwindow); if (err != noErr) { qWarning("Error, couldn't register Window with Qt: (%s:%d:%d)", __FILE__, __LINE__, err); } QPalette pal = palette(); pal.setColor(QPalette::Window,Qt::transparent); setPalette(pal); setAttribute(Qt::WA_WState_Polished); } ~QMacBrowserRoot() { } }; #include "qtbrowserplugin_mac.moc" struct key_sym { int mac_code; int qt_code; const char *desc; }; static key_sym modifier_syms[] = { { shiftKey, Qt::ShiftModifier, "Qt::ShiftModifier" }, { controlKey, Qt::MetaModifier, "Qt::MetaModifier" }, { rightControlKey, Qt::MetaModifier, "Qt::MetaModifier" }, { optionKey, Qt::AltModifier, "Qt::AltModifier" }, { rightOptionKey, Qt::AltModifier, "Qt::AltModifier" }, { cmdKey, Qt::ControlModifier, "Qt::ControlModifier" }, { 0, 0, NULL } }; static Qt::KeyboardModifiers get_modifiers(int key) { Qt::KeyboardModifiers ret = 0; for(int i = 0; modifier_syms[i].desc; i++) { if(key & modifier_syms[i].mac_code) { ret |= Qt::KeyboardModifier(modifier_syms[i].qt_code); } } return ret; } static key_sym key_syms[] = { { kHomeCharCode, Qt::Key_Home, "Qt::Home" }, { kEnterCharCode, Qt::Key_Enter, "Qt::Key_Enter" }, { kEndCharCode, Qt::Key_End, "Qt::Key_End" }, { kBackspaceCharCode, Qt::Key_Backspace, "Qt::Backspace" }, { kTabCharCode, Qt::Key_Tab, "Qt::Tab" }, { kPageUpCharCode, Qt::Key_PageUp, "Qt::PageUp" }, { kPageDownCharCode, Qt::Key_PageDown, "Qt::PageDown" }, { kReturnCharCode, Qt::Key_Return, "Qt::Key_Return" }, //function keys? { kEscapeCharCode, Qt::Key_Escape, "Qt::Key_Escape" }, { kLeftArrowCharCode, Qt::Key_Left, "Qt::Key_Left" }, { kRightArrowCharCode, Qt::Key_Right, "Qt::Key_Right" }, { kUpArrowCharCode, Qt::Key_Up, "Qt::Key_Up" }, { kDownArrowCharCode, Qt::Key_Down, "Qt::Key_Down" }, { kDeleteCharCode, Qt::Key_Delete, "Qt::Key_Delete" } }; static int get_key(int key) { for(int i = 0; key_syms[i].desc; i++) { if(key_syms[i].mac_code == key) { return key_syms[i].qt_code; } } return key; } struct qt_last_mouse_down_struct { unsigned int when; int x, y; } qt_last_mouse_down = { 0, 0, 0 }; //nasty, copied code - static void qt_dispatchEnterLeave(QWidget* enter, QWidget* leave) { #if 0 if(leave) { QEvent e(QEvent::Leave); QApplication::sendEvent(leave, & e); } if(enter) { QEvent e(QEvent::Enter); QApplication::sendEvent(enter, & e); } return; #endif QWidget* w ; if(!enter && !leave) return; QWidgetList leaveList; QWidgetList enterList; bool sameWindow = leave && enter && leave->window() == enter->window(); if(leave && !sameWindow) { w = leave; do { leaveList.append(w); } while(!w->isWindow() && (w = w->parentWidget())); } if(enter && !sameWindow) { w = enter; do { enterList.prepend(w); } while(!w->isWindow() && (w = w->parentWidget())); } if(sameWindow) { int enterDepth = 0; int leaveDepth = 0; w = enter; while(!w->isWindow() && (w = w->parentWidget())) enterDepth++; w = leave; while(!w->isWindow() && (w = w->parentWidget())) leaveDepth++; QWidget* wenter = enter; QWidget* wleave = leave; while(enterDepth > leaveDepth) { wenter = wenter->parentWidget(); enterDepth--; } while(leaveDepth > enterDepth) { wleave = wleave->parentWidget(); leaveDepth--; } while(!wenter->isWindow() && wenter != wleave) { wenter = wenter->parentWidget(); wleave = wleave->parentWidget(); } w = leave; while(w != wleave) { leaveList.append(w); w = w->parentWidget(); } w = enter; while(w != wenter) { enterList.prepend(w); w = w->parentWidget(); } } QEvent leaveEvent(QEvent::Leave); for (int i = 0; i < leaveList.size(); ++i) { w = leaveList.at(i); QApplication::sendEvent(w, &leaveEvent); #if 0 if(w->testAttribute(Qt::WA_Hover)) { Q_ASSERT(instance()); QHoverEvent he(QEvent::HoverLeave, QPoint(-1, -1), w->mapFromGlobal(QApplicationPrivate::instance()->hoverGlobalPos)); QApplication::sendEvent(w, &he); } #endif } QPoint posEnter = QCursor::pos(); QEvent enterEvent(QEvent::Enter); for (int i = 0; i < enterList.size(); ++i) { w = enterList.at(i); QApplication::sendEvent(w, &enterEvent); if(w->testAttribute(Qt::WA_Hover)) { QHoverEvent he(QEvent::HoverEnter, w->mapFromGlobal(posEnter), QPoint(-1, -1)); QApplication::sendEvent(w, &he); } } } extern "C" bool qtns_event(QtNPInstance *This, NPEvent *event) { static QPointer lastWidget; static QPointer qt_button_down; static Point lastPosition = { 0, 0 }; if(event->what == nullEvent || event->what == adjustCursorEvent) { if(event->what == nullEvent) { qApp->processEvents(); QApplication::sendPostedEvents(); } //watch for mouse moves Point currentPosition; GetMouse(¤tPosition); LocalToGlobal(¤tPosition); if(currentPosition.h != lastPosition.h || currentPosition.v != lastPosition.v) { lastPosition = currentPosition; WindowPtr wp; FindWindow(currentPosition, &wp); QWidget *widget = 0; if(wp == GetWindowFromPort((CGrafPtr)This->window->port)) widget = This->rootWidget->childAt(This->rootWidget->mapFromGlobal(QPoint(event->where.h, event->where.v))); else widget = QApplication::widgetAt(event->where.h, event->where.v); if(widget != lastWidget) { qt_dispatchEnterLeave(widget, lastWidget); lastWidget = widget; } if(widget) { QPoint p(currentPosition.h, currentPosition.v); QPoint plocal(widget->mapFromGlobal(p)); QMouseEvent qme(QEvent::MouseMove, plocal, p, Button() ? Qt::LeftButton : Qt::NoButton, 0, get_modifiers(GetCurrentKeyModifiers())); QApplication::sendEvent(widget, &qme); } } return true; } else if(QWidget *widget = qobject_cast(This->qt.object)) { if(event->what == updateEvt) { widget->repaint(); return true; } else if(event->what == keyUp || event->what == keyDown) { QWidget *widget = 0; if(QWidget::keyboardGrabber()) widget = QWidget::keyboardGrabber(); else if(QApplication::focusWidget()) widget = QApplication::focusWidget(); else //last ditch effort widget = QApplication::widgetAt(event->where.h, event->where.v); if(widget) { #if 0 if(app_do_modal && !qt_try_modal(widget, er)) return 1; #endif int mychar=get_key(event->message & charCodeMask); QEvent::Type etype = event->what == keyUp ? QEvent::KeyRelease : QEvent::KeyPress; QKeyEvent ke(etype, mychar, get_modifiers(event->modifiers), QString(QChar(mychar))); QApplication::sendEvent(widget,&ke); return true; } } else if(event->what == mouseDown || event->what == mouseUp) { QEvent::Type etype = QEvent::None; Qt::KeyboardModifiers keys = get_modifiers(event->modifiers); Qt::MouseButton button = Qt::LeftButton; if(event->what == mouseDown) { if (lastWidget) qt_button_down = lastWidget; //check if this is the second click, there must be a way to make the //mac do this for us, FIXME!! if(qt_last_mouse_down.when && (event->when - qt_last_mouse_down.when <= (uint)QApplication::doubleClickInterval())) { int x = event->where.h, y = event->where.v; if(x >= (qt_last_mouse_down.x-2) && x <= (qt_last_mouse_down.x+4) && y >= (qt_last_mouse_down.y-2) && y <= (qt_last_mouse_down.y+4)) { etype = QEvent::MouseButtonDblClick; qt_last_mouse_down.when = 0; } } if(etype == QEvent::None) { //guess it's just a press etype = QEvent::MouseButtonPress; qt_last_mouse_down.when = event->when; qt_last_mouse_down.x = event->where.h; qt_last_mouse_down.y = event->where.v; } } else { etype = QEvent::MouseButtonRelease; } WindowPtr wp; FindWindow(event->where, &wp); //handle popup's first QWidget *popupwidget = NULL; if(QApplication::activePopupWidget()) { if(wp) { QWidget *clt=QWidget::find((WId)wp); if(clt && clt->windowType() == Qt::Popup) popupwidget = clt; } if(!popupwidget) popupwidget = QApplication::activePopupWidget(); if(QWidget *child = popupwidget->childAt(popupwidget->mapFromGlobal(QPoint(event->where.h, event->where.v)))) popupwidget = child; QPoint p(event->where.h, event->where.v); QPoint plocal(popupwidget->mapFromGlobal(p)); QMouseEvent qme(etype, plocal, p, button, 0, keys); QApplication::sendEvent(popupwidget, &qme); } { QWidget *widget = 0; //figure out which widget to send it to if(event->what == mouseUp && qt_button_down) widget = qt_button_down; else if(QWidget::mouseGrabber()) widget = QWidget::mouseGrabber(); else if(wp == GetWindowFromPort((CGrafPtr)This->window->port)) widget = This->rootWidget->childAt(This->rootWidget->mapFromGlobal(QPoint(event->where.h, event->where.v))); else widget = QApplication::widgetAt(event->where.h, event->where.v); //setup the saved widget qt_button_down = event->what == mouseDown ? widget : 0; //finally send the event to the widget if its not the popup if(widget && widget != popupwidget) { #if 0 if(app_do_modal && !qt_try_modal(widget, er)) return 1; #endif if(event->what == mouseDown) { QWidget* w = widget; while(w->focusProxy()) w = w->focusProxy(); if(w->focusPolicy() & Qt::ClickFocus) w->setFocus(Qt::MouseFocusReason); if(QWidget *tlw = widget->topLevelWidget()) { tlw->raise(); if(tlw->isTopLevel() && tlw->windowType() != Qt::Popup && (tlw->isModal() || tlw->windowType() != Qt::Dialog)) QApplication::setActiveWindow(tlw); } } QPoint p(event->where.h, event->where.v); QPoint plocal(widget->mapFromGlobal( p )); QMouseEvent qme(etype, plocal, p, button, 0, keys); QApplication::sendEvent(widget, &qme); return true; } } } else { //qDebug("%d", event->what); } } return false; } #ifdef QTBROWSER_USE_CFM static bool qtbrowser_use_cfm = false; static UInt32 gGlueTemplate[6] = { 0x3D800000, 0x618C0000, 0x800C0000, 0x804C0004, 0x7C0903A6, 0x4E800420 }; struct TVector_rec { ProcPtr fProcPtr; void *fTOC; }; void *CFMFunctionPointerForMachOFunctionPointer(void *inMachProcPtr) { if(!qtbrowser_use_cfm) return inMachProcPtr; TVector_rec *vTVector = (TVector_rec*)malloc(sizeof(TVector_rec)); if(MemError() == noErr && vTVector != 0) { vTVector->fProcPtr = (ProcPtr)inMachProcPtr; vTVector->fTOC = 0; // ignored } return((void *)vTVector); } void DisposeCFMFunctionPointer(void *inCfmProcPtr) { if(!qtbrowser_use_cfm) return; if(inCfmProcPtr) free(inCfmProcPtr); } void* MachOFunctionPointerForCFMFunctionPointer(void* inCfmProcPtr) { if(!qtbrowser_use_cfm) return inCfmProcPtr; UInt32 *vMachProcPtr = (UInt32*)NewPtr(sizeof(gGlueTemplate)); vMachProcPtr[0] = gGlueTemplate[0] | ((UInt32)inCfmProcPtr >> 16); vMachProcPtr[1] = gGlueTemplate[1] | ((UInt32)inCfmProcPtr & 0xFFFF); vMachProcPtr[2] = gGlueTemplate[2]; vMachProcPtr[3] = gGlueTemplate[3]; vMachProcPtr[4] = gGlueTemplate[4]; vMachProcPtr[5] = gGlueTemplate[5]; MakeDataExecutable(vMachProcPtr, sizeof(gGlueTemplate)); return(vMachProcPtr); } #endif extern "C" void qtns_initialize(QtNPInstance *) { qt_mac_set_native_menubar(false); if(!qApp) { ownsqapp = true; static int argc=0; static char **argv={ 0 }; (void)new QApplication(argc, argv); } } extern "C" void qtns_destroy(QtNPInstance *This) { delete This->rootWidget; This->rootWidget = 0; } extern "C" void qtns_shutdown() { if(!ownsqapp) return; // TODO: find out if other plugin DLL's still need qApp delete qApp; ownsqapp = false; } extern "C" void qtns_embed(QtNPInstance *This) { Q_ASSERT(qobject_cast(This->qt.object)); WindowPtr windowptr = GetWindowFromPort((CGrafPtr)This->window->port); HIViewRef root = 0; OSErr err; err = GetRootControl(windowptr,&root); if(!root) root = HIViewGetRoot(windowptr); if(!root) { qDebug("No window composition!"); } else { This->rootWidget = new QMacBrowserRoot(root); This->qt.widget->setParent(This->rootWidget); } } extern "C" void qtns_setGeometry(QtNPInstance *This, const QRect &rect, const QRect &clipRect) { Q_ASSERT(qobject_cast(This->qt.object)); WindowPtr windowptr = GetWindowFromPort((CGrafPtr)This->window->port); Rect content_r; GetWindowBounds(windowptr, kWindowContentRgn, &content_r); Rect structure_r; GetWindowBounds(windowptr, kWindowStructureRgn, &structure_r); QRect geom(rect.translated(content_r.left-structure_r.left, content_r.top-structure_r.top)); if(rect != clipRect) { QRegion clipRegion(QRect(clipRect.x()-geom.x(), clipRect.y()-geom.y(), clipRect.width(), clipRect.height()) .translated(content_r.left-structure_r.left, content_r.top-structure_r.top)); if(clipRegion.isEmpty()) clipRegion = QRegion(-1, -1, 1, 1); //eww ### FIXME This->qt.widget->setMask(clipRegion); } else { This->qt.widget->clearMask(); } This->qt.widget->setGeometry(geom); } typedef void (*NPP_ShutdownUPP)(void); extern "C" void NPP_MacShutdown() { //extern NPError NP_Shutdown(); //NP_Shutdown(); } extern "C" int main(NPNetscapeFuncs *npn_funcs, NPPluginFuncs *np_funcs, NPP_ShutdownUPP *shutdown) { qtbrowser_use_cfm = true; //quite the heuristic.. NPError ret; extern NPError NP_Initialize(NPNetscapeFuncs*); if((ret=NP_Initialize(npn_funcs)) != NPERR_NO_ERROR) return ret; extern NPError NP_GetEntryPoints(NPPluginFuncs*); if((ret=NP_GetEntryPoints(np_funcs)) != NPERR_NO_ERROR) return ret; *shutdown = (NPP_ShutdownUPP)MAKE_FUNCTION_POINTER(NPP_MacShutdown); return NPERR_NO_ERROR; } x2goclient-4.0.1.1/qtbrowserplugin-2.4_1-opensource/src/qtbrowserplugin_p.h0000644000000000000000000000564212214040350023513 0ustar /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of a Qt Solutions component. ** ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ** the names of its contributors may be used to endorse or promote ** products derived from this software without specific prior written ** permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ****************************************************************************/ #include #include #include #ifdef Q_WS_X11 # include class QtNPStream; class QtNPBindable; #endif struct QtNPInstance { NPP npp; short fMode; #ifdef Q_WS_WIN typedef HWND Widget; #endif #ifdef Q_WS_X11 typedef Window Widget; Display *display; #endif #ifdef Q_WS_MAC typedef NPPort* Widget; QWidget *rootWidget; #endif Widget window; QRect geometry; QString mimetype; QByteArray htmlID; union { QObject* object; QWidget* widget; } qt; QtNPStream *pendingStream; QtNPBindable* bindable; QObject *filter; QMap parameters; qint32 notificationSeqNum; QMutex seqNumMutex; qint32 getNotificationSeqNum() { QMutexLocker locker(&seqNumMutex); if (++notificationSeqNum < 0) notificationSeqNum = 1; return notificationSeqNum; } }; x2goclient-4.0.1.1/qtbrowserplugin-2.4_1-opensource/src/qtbrowserplugin.pri0000644000000000000000000000413212214040350023530 0ustar TEMPLATE = lib CONFIG += dll win32-* { # Uncomment the following line to build a plugin that can be used also in # Internet Explorer, through ActiveX. # CONFIG += qaxserver } else { CONFIG += plugin } INCLUDEPATH += $$PWD DEPENDPATH += $$PWD SOURCES += $$PWD/qtbrowserplugin.cpp HEADERS += $$PWD/qtbrowserplugin.h qtnpapi.h win32-* { SOURCES += $$PWD/qtbrowserplugin_win.cpp !isEmpty(TARGET) { TARGET = np$$TARGET } LIBS += -luser32 qaxserver { DEF_FILE += $$PWD/qtbrowserpluginax.def } else { DEF_FILE += $$PWD/qtbrowserplugin.def } firefox { exists("c:/program files/mozilla firefox/plugins") { DLLDESTDIR += "c:/program files/mozilla firefox/plugins" } else { message("Firefox not found at default location") } } opera { exists("c:/program files/opera/program/plugins") { DLLDESTDIR += "c:/program files/opera/program/plugins" } else { message("Opera not found at default location") } } netscape { exists("c:/program files/netscape/netscape browser/plugins") { DLLDESTDIR += "c:/program files/netscape/netscape browser/plugins" } else { message("Netscape not found at default location") } } } else:mac { CONFIG += plugin_bundle SOURCES += $$PWD/qtbrowserplugin_mac.cpp #target.path = /Library/Internet\ Plugins #INSTALLS += target } else { SOURCES += $$PWD/qtbrowserplugin_x11.cpp INCLUDEPATH += /usr/include/X11 # Avoiding symbol clash with other instances of the Qt library # (ref. developingplugins.html in the doc.): # # For Qt 4.4 and later, just configure Qt to use a separate namespace: # configure -qtnamespace SomeNamespace # # For Qt 4.3: Uncomment the line below. # It makes the dynamic linker prefer our own Qt symbols for the plugin, # provided that our Qt is statically built and linked into the # plugin. Note that to force the linker to prefer the static Qt # libraries (.a files), the dynamic libraries (.so) files must not # be present in the lib directory. # # QMAKE_LFLAGS += -Wl,-Bsymbolic } x2goclient-4.0.1.1/qtbrowserplugin-2.4_1-opensource/src/qtbrowserplugin_win.cpp0000644000000000000000000001566312214040350024410 0ustar /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of a Qt Solutions component. ** ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ** the names of its contributors may be used to endorse or promote ** products derived from this software without specific prior written ** permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ****************************************************************************/ #include #include "qtbrowserplugin.h" #include "qtbrowserplugin_p.h" #include #include "qtnpapi.h" static HHOOK hhook = 0; static bool ownsqapp = false; Q_GUI_EXPORT int qt_translateKeyCode(int); LRESULT CALLBACK FilterProc( int nCode, WPARAM wParam, LPARAM lParam ) { if (qApp) qApp->sendPostedEvents(0, -1); if (nCode < 0 || !(wParam & PM_REMOVE)) return CallNextHookEx(hhook, nCode, wParam, lParam); MSG *msg = (MSG*)lParam; bool processed = false; // (some) support for key-sequences via QAction and QShortcut if(msg->message == WM_KEYDOWN || msg->message == WM_SYSKEYDOWN) { QWidget *focusWidget = QWidget::find(msg->hwnd); if (focusWidget) { int key = msg->wParam; if (!(key >= 'A' && key <= 'Z') && !(key >= '0' && key <= '9')) key = qt_translateKeyCode(msg->wParam); Qt::KeyboardModifiers modifiers = 0; int modifierKey = 0; if (GetKeyState(VK_SHIFT) < 0) { modifierKey |= Qt::SHIFT; modifiers |= Qt::ShiftModifier; } if (GetKeyState(VK_CONTROL) < 0) { modifierKey |= Qt::CTRL; modifiers |= Qt::ControlModifier; } if (GetKeyState(VK_MENU) < 0) { modifierKey |= Qt::ALT; modifiers |= Qt::AltModifier; } QKeySequence shortcutKey(modifierKey + key); if (!shortcutKey.isEmpty()) { QKeyEvent override(QEvent::ShortcutOverride, key, modifiers); override.ignore(); QApplication::sendEvent(focusWidget, &override); processed = override.isAccepted(); if (!processed) { QList actions = qFindChildren(focusWidget->window()); for (int i = 0; i < actions.count() && !processed; ++i) { QAction *action = actions.at(i); if (!action->isEnabled() || action->shortcut() != shortcutKey) continue; QShortcutEvent event(shortcutKey, 0); processed = QApplication::sendEvent(action, &event); } } if (!processed) { QList shortcuts = qFindChildren(focusWidget->window()); for (int i = 0; i < shortcuts.count() && !processed; ++i) { QShortcut *shortcut = shortcuts.at(i); if (!shortcut->isEnabled() || shortcut->key() != shortcutKey) continue; QShortcutEvent event(shortcutKey, shortcut->id()); processed = QApplication::sendEvent(shortcut, &event); } } } } } return CallNextHookEx(hhook, nCode, wParam, lParam); } extern "C" bool qtns_event(QtNPInstance *, NPEvent *) { return false; } extern Q_CORE_EXPORT void qWinMsgHandler(QtMsgType t, const char* str); extern "C" void qtns_initialize(QtNPInstance*) { if (!qApp) { qInstallMsgHandler(qWinMsgHandler); ownsqapp = true; static int argc=0; static char **argv={ 0 }; (void)new QApplication(argc, argv); QT_WA({ hhook = SetWindowsHookExW( WH_GETMESSAGE, FilterProc, 0, GetCurrentThreadId() ); }, { hhook = SetWindowsHookExA( WH_GETMESSAGE, FilterProc, 0, GetCurrentThreadId() ); }); } } extern "C" void qtns_destroy(QtNPInstance *) { } extern "C" void qtns_shutdown() { if (!ownsqapp) return; // check if qApp still runs widgets (in other DLLs) QWidgetList widgets = qApp->allWidgets(); int count = widgets.count(); for (int w = 0; w < widgets.count(); ++w) { // ignore all Qt generated widgets QWidget *widget = widgets.at(w); if (widget->windowFlags() & Qt::Desktop) count--; } if (count) // qApp still used return; delete qApp; ownsqapp = false; if ( hhook ) UnhookWindowsHookEx( hhook ); hhook = 0; } extern "C" void qtns_embed(QtNPInstance *This) { Q_ASSERT(qobject_cast(This->qt.object)); LONG oldLong = GetWindowLong(This->window, GWL_STYLE); ::SetWindowLong(This->window, GWL_STYLE, oldLong | WS_CLIPCHILDREN | WS_CLIPSIBLINGS); ::SetWindowLong(This->qt.widget->winId(), GWL_STYLE, WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS); ::SetParent(This->qt.widget->winId(), This->window); } extern "C" void qtns_setGeometry(QtNPInstance *This, const QRect &rect, const QRect &) { Q_ASSERT(qobject_cast(This->qt.object)); This->qt.widget->setGeometry(QRect(0, 0, rect.width(), rect.height())); } /* extern "C" void qtns_print(QtNPInstance * This, NPPrint *printInfo) { NPWindow* printWindow = &(printInfo->print.embedPrint.window); void* platformPrint = printInfo->print.embedPrint.platformPrint; // #### Nothing yet. } */ x2goclient-4.0.1.1/qtbrowserplugin-2.4_1-opensource/src/qtbrowserplugin_x11.cpp0000644000000000000000000001154212214040350024214 0ustar /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of a Qt Solutions component. ** ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ** the names of its contributors may be used to endorse or promote ** products derived from this software without specific prior written ** permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ****************************************************************************/ #include #include #include "qtbrowserplugin.h" #include "qtbrowserplugin_p.h" #include "qtnpapi.h" #include static bool ownsqapp = false; static QMap clients; extern "C" bool qtns_event(QtNPInstance *, NPEvent *) { return false; } extern "C" void qtns_initialize(QtNPInstance* This) { if (!qApp) { ownsqapp = true; static int argc = 0; static char **argv = {0}; // Workaround to avoid re-initilaziation of glib char* envvar = qstrdup("QT_NO_THREADED_GLIB=1"); // Unavoidable memory leak; the variable must survive plugin unloading ::putenv(envvar); (void)new QApplication(argc, argv); } if (!clients.contains(This)) { QX11EmbedWidget* client = new QX11EmbedWidget; QHBoxLayout* layout = new QHBoxLayout(client); layout->setMargin(0); clients.insert(This, client); } } extern "C" void qtns_destroy(QtNPInstance* This) { QMap::iterator it = clients.find(This); if (it == clients.end()) return; delete it.value(); clients.erase(it); } extern "C" void qtns_shutdown() { if (clients.count() > 0) { QMap::iterator it = clients.begin(); while (it != clients.end()) { delete it.value(); ++it; } clients.clear(); } if (!ownsqapp) return; // check if qApp still runs widgets (in other DLLs) QWidgetList widgets = qApp->allWidgets(); int count = widgets.count(); for (int w = 0; w < widgets.count(); ++w) { // ignore all Qt generated widgets QWidget *widget = widgets.at(w); if (widget->windowFlags() & Qt::Desktop) count--; } if (count) // qApp still used return; delete qApp; ownsqapp = false; } extern "C" void qtns_embed(QtNPInstance *This) { Q_ASSERT(qobject_cast(This->qt.object)); QMap::iterator it = clients.find(This); if (it == clients.end()) return; QX11EmbedWidget* client = it.value(); This->qt.widget->setParent(client); client->layout()->addWidget(This->qt.widget); client->embedInto(This->window); client->show(); } extern "C" void qtns_setGeometry(QtNPInstance *This, const QRect &rect, const QRect &) { Q_ASSERT(qobject_cast(This->qt.object)); QMap::iterator it = clients.find(This); if (it == clients.end()) return; QX11EmbedWidget* client = it.value(); client->setGeometry(QRect(0, 0, rect.width(), rect.height())); } /* extern "C" void qtns_print(QtNPInstance * This, NPPrint *printInfo) { NPWindow* printWindow = &(printInfo->print.embedPrint.window); void* platformPrint = printInfo->print.embedPrint.platformPrint; // #### Nothing yet. } */ x2goclient-4.0.1.1/qtbrowserplugin-2.4_1-opensource/src/qtnpapi.h0000644000000000000000000005151212214040350021376 0ustar /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of a Qt Solutions component. ** ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ** the names of its contributors may be used to endorse or promote ** products derived from this software without specific prior written ** permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ****************************************************************************/ // see http://www.mozilla.org/projects/plugins/ for details regarding the structs and API prototypes #ifndef QTNPAPI_H #define QTNPAPI_H // Plugin API version #define NP_VERSION_MAJOR 0 #define NP_VERSION_MINOR 17 // basic types typedef unsigned short uint16; typedef short int16; typedef unsigned int uint32; typedef int int32; typedef unsigned char NPBool; typedef int16 NPError; typedef int16 NPReason; typedef char* NPMIMEType; typedef void *NPRegion; typedef void *NPIdentifier; // Java stuff typedef void* jref; typedef void* JRIGlobalRef; typedef void* JRIEnv; // ### not quite correct, but we don't use it anyway // NP-types struct NPP_t { void* pdata; // plug-in private data void* ndata; // browser private data }; typedef NPP_t* NPP; struct NPRect { uint16 top; uint16 left; uint16 bottom; uint16 right; }; #ifdef Q_WS_WIN struct NPEvent { uint16 event; uint32 wParam; uint32 lParam; }; #elif defined(Q_WS_X11) # include typedef XEvent NPEvent; #elif defined (Q_WS_MAC) typedef struct EventRecord NPEvent; #endif // Variable names for NPP_GetValue enum NPPVariable { NPPVpluginNameString = 1, NPPVpluginDescriptionString, NPPVpluginWindowBool, NPPVpluginTransparentBool, NPPVjavaClass, NPPVpluginWindowSize, NPPVpluginTimerInterval, NPPVpluginScriptableInstance = 10, NPPVpluginScriptableIID = 11, // Introduced in Mozilla 0.9.9 NPPVjavascriptPushCallerBool = 12, // Introduced in Mozilla 1.0 NPPVpluginKeepLibraryInMemory = 13, NPPVpluginNeedsXEmbed = 14, // Introduced in Firefox 1.0 NPPVpluginScriptableNPObject = 15, NPPVformValue = 16 } ; // Variable names for NPN_GetValue enum NPNVariable { NPNVxDisplay = 1, NPNVxtAppContext, NPNVnetscapeWindow, NPNVjavascriptEnabledBool, NPNVasdEnabledBool, NPNVisOfflineBool, // Introduced in Mozilla 0.9.4 NPNVserviceManager = 10, NPNVDOMElement = 11, // Introduced in Mozilla 1.2 NPNVDOMWindow = 12, NPNVToolkit = 13, NPNVSupportsXEmbedBool = 14, NPNVWindowNPObject = 15, NPNVPluginElementNPObject = 16 }; enum NPWindowType { NPWindowTypeWindow = 1, // Windowed plug-in. The window field holds a platform-specific handle to a window. NPWindowTypeDrawable // Windows: HDC; Mac OS: pointer to NP_Port structure. }; struct NPWindow { // Platform-specific handle to a native window element in the browser's window hierarchy // XEmbed: "In the NPP_SetWindow call, the window parameter will be the XID of the hosting // XEmbed window. As an implementation note, this is really the XID of a GtkSocket window." void* window; // The x and y coordinates for the top left corner of the plug-in relative to the page // (and thus relative to the origin of the drawable) uint32 x, y; // The height and width of the plug-in area. Should not be modified by the plug-in. uint32 width, height; // Used by MAC only (Clipping rectangle in port coordinates) NPRect clipRect; #ifdef Q_WS_X11 // Contains information about the plug-in's Unix window environment // points to an NPSetWindowCallbackStruct void* ws_info; // probably obsolete with XEmbed #endif // The type field indicates the NPWindow type of the target area NPWindowType type; }; struct NPPort { void *port; int32 portx; int32 porty; }; struct NPFullPrint { NPBool pluginPrinted; // true if plugin handled fullscreen printing NPBool printOne; // true if plugin should print one copy to default printer void* platformPrint; // Platform-specific printing info }; struct NPEmbedPrint { NPWindow window; void* platformPrint; // Platform-specific printing info }; struct NPPrint { uint16 mode; // NP_FULL or NP_EMBED union { NPFullPrint fullPrint; NPEmbedPrint embedPrint; } print; }; struct NPSavedData { int32 len; void* buf; }; struct NPStream { void* pdata; void* ndata; const char* url; uint32 end; uint32 lastmodified; void* notifyData; }; struct NPByteRange { int32 offset; // negative offset means from the end uint32 length; NPByteRange* next; }; // Values for mode passed to NPP_New: #define NP_EMBED 1 #define NP_FULL 2 // Values for stream type passed to NPP_NewStream: #define NP_NORMAL 1 #define NP_SEEK 2 #define NP_ASFILE 3 #define NP_ASFILEONLY 4 #define NP_MAXREADY (((unsigned)(~0)<<1)>>1) // Values of type NPError: #define NPERR_NO_ERROR 0 #define NPERR_GENERIC_ERROR 1 #define NPERR_INVALID_INSTANCE_ERROR 2 #define NPERR_INVALID_FUNCTABLE_ERROR 3 #define NPERR_MODULE_LOAD_FAILED_ERROR 4 #define NPERR_OUT_OF_MEMORY_ERROR 5 #define NPERR_INVALID_PLUGIN_ERROR 6 #define NPERR_INVALID_PLUGIN_DIR_ERROR 7 #define NPERR_INCOMPATIBLE_VERSION_ERROR 8 #define NPERR_INVALID_PARAM 9 #define NPERR_INVALID_URL 10 #define NPERR_FILE_NOT_FOUND 11 #define NPERR_NO_DATA 12 #define NPERR_STREAM_NOT_SEEKABLE 13 // Values of type NPReason: #define NPRES_DONE 0 #define NPRES_NETWORK_ERR 1 #define NPRES_USER_BREAK 2 // Version feature information #define NPVERS_HAS_STREAMOUTPUT 8 #define NPVERS_HAS_NOTIFICATION 9 #define NPVERS_HAS_LIVECONNECT 9 #define NPVERS_WIN16_HAS_LIVECONNECT 10 // Mac specifics #ifdef Q_WS_MAC # define getFocusEvent (osEvt + 16) # define loseFocusEvent (osEvt + 17) # define adjustCursorEvent (osEvt + 18) # define QTBROWSER_USE_CFM #endif #ifdef QTBROWSER_USE_CFM extern void *CFMFunctionPointerForMachOFunctionPointer(void*); extern void DisposeCFMFunctionPointer(void *); extern void* MachOFunctionPointerForCFMFunctionPointer(void*); # define FUNCTION_POINTER(t) void* # define MAKE_FUNCTION_POINTER(f) CFMFunctionPointerForMachOFunctionPointer((void*)f) # define DESTROY_FUNCTION_POINTER(n) DisposeCFMFunctionPointer(n) # define FIND_FUNCTION_POINTER(t, n) (*(t)MachOFunctionPointerForCFMFunctionPointer(n)) #else # define FUNCTION_POINTER(t) t # define MAKE_FUNCTION_POINTER(f) f # define DESTROY_FUNCTION_POINTER(n) # define FIND_FUNCTION_POINTER(t, n) (*n) #endif // Plugin function prototypes typedef NPError (*NPP_NewFP)(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char* argn[], char* argv[], NPSavedData* saved); typedef NPError (*NPP_DestroyFP)(NPP instance, NPSavedData** save); typedef NPError (*NPP_SetWindowFP)(NPP instance, NPWindow* window); typedef NPError (*NPP_NewStreamFP)(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16* stype); typedef NPError (*NPP_DestroyStreamFP)(NPP instance, NPStream* stream, NPReason reason); typedef void (*NPP_StreamAsFileFP)(NPP instance, NPStream* stream, const char* fname); typedef int32 (*NPP_WriteReadyFP)(NPP instance, NPStream* stream); typedef int32 (*NPP_WriteFP)(NPP instance, NPStream* stream, int32 offset, int32 len, void* buffer); typedef void (*NPP_PrintFP)(NPP instance, NPPrint* platformPrint); typedef int16 (*NPP_HandleEventFP)(NPP instance, NPEvent* event); typedef void (*NPP_URLNotifyFP)(NPP instance, const char* url, NPReason reason, void* notifyData); typedef NPError (*NPP_GetValueFP)(NPP instance, NPPVariable variable, void *value); typedef NPError (*NPP_SetValueFP)(NPP instance, NPPVariable variable, void *value); // table of functions implemented by the plugin struct NPPluginFuncs { uint16 size; uint16 version; FUNCTION_POINTER(NPP_NewFP) newp; FUNCTION_POINTER(NPP_DestroyFP) destroy; FUNCTION_POINTER(NPP_SetWindowFP) setwindow; FUNCTION_POINTER(NPP_NewStreamFP) newstream; FUNCTION_POINTER(NPP_DestroyStreamFP) destroystream; FUNCTION_POINTER(NPP_StreamAsFileFP) asfile; FUNCTION_POINTER(NPP_WriteReadyFP) writeready; FUNCTION_POINTER(NPP_WriteFP) write; FUNCTION_POINTER(NPP_PrintFP) print; FUNCTION_POINTER(NPP_HandleEventFP) event; FUNCTION_POINTER(NPP_URLNotifyFP) urlnotify; JRIGlobalRef javaClass; FUNCTION_POINTER(NPP_GetValueFP) getvalue; FUNCTION_POINTER(NPP_SetValueFP) setvalue; } ; // forward declarations struct NPObject; struct NPClass; struct NPVariant; struct NPString; struct QtNPInstance; // NPObject is the type used to express objects exposed by either // the plugin or by the browser. Implementation specific (i.e. plugin // specific, or browser specific) members can come after the struct. // In our case, the plugin specific member (aka QObject) lives in NPClass. struct NPObject { NPClass *_class; uint32 refCount; }; // NPClass is what virtual function tables would look like if // there was no C++... typedef NPObject *(*NPAllocateFP)(NPP npp, NPClass *aClass); typedef void (*NPDeallocateFP)(NPObject *npobj); typedef void (*NPInvalidateFP)(NPObject *npobj); typedef bool (*NPHasMethodFP)(NPObject *npobj, NPIdentifier name); typedef bool (*NPInvokeFP)(NPObject *npobj, NPIdentifier name,const NPVariant *args, uint32 argCount,NPVariant *result); typedef bool (*NPInvokeDefaultFP)(NPObject *npobj,const NPVariant *args,uint32 argCount,NPVariant *result); typedef bool (*NPHasPropertyFP)(NPObject *npobj, NPIdentifier name); typedef bool (*NPGetPropertyFP)(NPObject *npobj, NPIdentifier name, NPVariant *result); typedef bool (*NPSetPropertyFP)(NPObject *npobj, NPIdentifier name, const NPVariant *value); typedef bool (*NPRemovePropertyFP)(NPObject *npobj, NPIdentifier name); #define NP_CLASS_STRUCT_VERSION 1 struct NPClass { NPClass(QtNPInstance *qtnp); ~NPClass(); // NP API uint32 structVersion; NPAllocateFP allocate; NPDeallocateFP deallocate; NPInvalidateFP invalidate; NPHasMethodFP hasMethod; NPInvokeFP invoke; NPInvokeDefaultFP invokeDefault; NPHasPropertyFP hasProperty; NPGetPropertyFP getProperty; NPSetPropertyFP setProperty; NPRemovePropertyFP removeProperty; // User data lives here QtNPInstance *qtnp; bool delete_qtnp; }; struct NPString { const char *utf8characters; uint32 utf8length; // Qt specific conversion routines // (no c'tor as it would be misleading that there is no d'tor in spite of memory allocation) static NPString fromQString(const QString &qstr); operator QString() const; }; struct NPVariant { enum Type { Void, Null, Boolean, Int32, Double, String, Object }; Type type; union { bool boolValue; uint32 intValue; double doubleValue; NPString stringValue; NPObject *objectValue; } value; NPVariant() : type(Null) {} // Qt specific conversion routines // (no c'tor as the NPP instance is required) static NPVariant fromQVariant(QtNPInstance *This, const QVariant &qvariant); operator QVariant() const; private: }; #ifdef Q_WS_X11 extern "C" { #endif // Browser function prototypes typedef NPError (*NPN_GetURLFP)(NPP instance, const char* url, const char* window); typedef NPError (*NPN_PostURLFP)(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file); typedef NPError (*NPN_RequestReadFP)(NPStream* stream, NPByteRange* rangeList); typedef NPError (*NPN_NewStreamFP)(NPP instance, NPMIMEType type, const char* window, NPStream** stream); typedef int32 (*NPN_WriteFP)(NPP instance, NPStream* stream, int32 len, void* buffer); typedef NPError (*NPN_DestroyStreamFP)(NPP instance, NPStream* stream, NPReason reason); typedef void (*NPN_StatusFP)(NPP instance, const char* message); typedef const char* (*NPN_UserAgentFP)(NPP instance); typedef void* (*NPN_MemAllocFP)(uint32 size); typedef void (*NPN_MemFreeFP)(void* ptr); typedef uint32 (*NPN_MemFlushFP)(uint32 size); typedef void (*NPN_ReloadPluginsFP)(NPBool reloadPages); typedef JRIEnv* (*NPN_GetJavaEnvFP)(void); typedef jref (*NPN_GetJavaPeerFP)(NPP instance); typedef NPError (*NPN_GetURLNotifyFP)(NPP instance, const char* url, const char* window, void* notifyData); typedef NPError (*NPN_PostURLNotifyFP)(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file, void* notifyData); typedef NPError (*NPN_GetValueFP)(NPP instance, NPNVariable variable, void *ret_value); typedef NPError (*NPN_SetValueFP)(NPP instance, NPPVariable variable, void *ret_value); typedef void (*NPN_InvalidateRectFP)(NPP instance, NPRect *rect); typedef void (*NPN_InvalidateRegionFP)(NPP instance, NPRegion *region); typedef void (*NPN_ForceRedrawFP)(NPP instance); typedef NPIdentifier (*NPN_GetStringIdentifierFP)(const char* name); typedef void (*NPN_GetStringIdentifiersFP)(const char** names, int32 nameCount, NPIdentifier* identifiers); typedef NPIdentifier (*NPN_GetIntIdentifierFP)(int32 intid); typedef bool (*NPN_IdentifierIsStringFP)(NPIdentifier identifier); typedef char* (*NPN_UTF8FromIdentifierFP)(NPIdentifier identifier); typedef int32 (*NPN_IntFromIdentifierFP)(NPIdentifier identifier); typedef NPObject* (*NPN_CreateObjectFP)(NPP npp, NPClass *aClass); typedef NPObject* (*NPN_RetainObjectFP)(NPObject *obj); typedef void (*NPN_ReleaseObjectFP)(NPObject *obj); typedef bool (*NPN_InvokeFP)(NPP npp, NPObject* obj, NPIdentifier methodName, const NPVariant *args, int32 argCount, NPVariant *result); typedef bool (*NPN_InvokeDefaultFP)(NPP npp, NPObject* obj, const NPVariant *args, int32 argCount, NPVariant *result); typedef bool (*NPN_EvaluateFP)(NPP npp, NPObject *obj, NPString *script, NPVariant *result); typedef bool (*NPN_GetPropertyFP)(NPP npp, NPObject *obj, NPIdentifier propertyName, NPVariant *result); typedef bool (*NPN_SetPropertyFP)(NPP npp, NPObject *obj, NPIdentifier propertyName, const NPVariant *value); typedef bool (*NPN_RemovePropertyFP)(NPP npp, NPObject *obj, NPIdentifier propertyName); typedef bool (*NPN_HasPropertyFP)(NPP npp, NPObject *obj, NPIdentifier propertyName); typedef bool (*NPN_HasMethodFP)(NPP npp, NPObject *obj, NPIdentifier methodName); typedef void (*NPN_ReleaseVariantValueFP)(NPVariant *variant); typedef void (*NPN_SetExceptionFP)(NPObject *obj, const char *message); // function declarations NPError NPN_GetURL(NPP instance, const char* url, const char* window); NPError NPN_PostURL(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file); NPError NPN_RequestRead(NPStream* stream, NPByteRange* rangeList); NPError NPN_NewStream(NPP instance, NPMIMEType type, const char* window, NPStream** stream); int32 NPN_Write(NPP instance, NPStream* stream, int32 len, void* buffer); NPError NPN_DestroyStream(NPP instance, NPStream* stream, NPReason reason); void NPN_Status(NPP instance, const char* message); const char* NPN_UserAgent(NPP instance); void* NPN_MemAlloc(uint32 size); void NPN_MemFree(void* ptr); uint32 NPN_MemFlush(uint32 size); void NPN_ReloadPlugins(NPBool reloadPages); JRIEnv* NPN_GetJavaEnv(void); jref NPN_GetJavaPeer(NPP instance); NPError NPN_GetURLNotify(NPP instance, const char* url, const char* window, void* notifyData); NPError NPN_PostURLNotify(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file, void* notifyData); NPError NPN_GetValue(NPP instance, NPNVariable variable, void *ret_value); NPError NPN_SetValue(NPP instance, NPPVariable variable, void *ret_value); void NPN_InvalidateRect(NPP instance, NPRect *rect); void NPN_InvalidateRegion(NPP instance, NPRegion *region); void NPN_ForceRedraw(NPP instance); NPIdentifier NPN_GetStringIdentifier(const char* name); void NPN_GetStringIdentifiers(const char** names, int32 nameCount, NPIdentifier* identifiers); NPIdentifier NPN_GetIntIdentifier(int32 intid); bool NPN_IdentifierIsString(NPIdentifier identifier); char* NPN_UTF8FromIdentifier(NPIdentifier identifier); int32 NPN_IntFromIdentifier(NPIdentifier identifier); NPObject* NPN_CreateObject(NPP npp, NPClass *aClass); NPObject* NPN_RetainObject(NPObject *obj); void NPN_ReleaseObject(NPObject *obj); bool NPN_Invoke(NPP npp, NPObject* obj, NPIdentifier methodName, const NPVariant *args, int32 argCount, NPVariant *result); bool NPN_InvokeDefault(NPP npp, NPObject* obj, const NPVariant *args, int32 argCount, NPVariant *result); bool NPN_Evaluate(NPP npp, NPObject *obj, NPString *script, NPVariant *result); bool NPN_GetProperty(NPP npp, NPObject *obj, NPIdentifier propertyName, NPVariant *result); bool NPN_SetProperty(NPP npp, NPObject *obj, NPIdentifier propertyName, const NPVariant *value); bool NPN_RemoveProperty(NPP npp, NPObject *obj, NPIdentifier propertyName); bool NPN_HasProperty(NPP npp, NPObject *obj, NPIdentifier propertyName); bool NPN_HasMethod(NPP npp, NPObject *obj, NPIdentifier methodName); void NPN_ReleaseVariantValue(NPVariant *variant); void NPN_SetException(NPObject *obj, const char *message); // table of function implemented by the browser struct NPNetscapeFuncs { uint16 size; uint16 version; FUNCTION_POINTER(NPN_GetURLFP) geturl; FUNCTION_POINTER(NPN_PostURLFP) posturl; FUNCTION_POINTER(NPN_RequestReadFP) requestread; FUNCTION_POINTER(NPN_NewStreamFP) newstream; FUNCTION_POINTER(NPN_WriteFP) write; FUNCTION_POINTER(NPN_DestroyStreamFP) destroystream; FUNCTION_POINTER(NPN_StatusFP) status; FUNCTION_POINTER(NPN_UserAgentFP) uagent; FUNCTION_POINTER(NPN_MemAllocFP) memalloc; FUNCTION_POINTER(NPN_MemFreeFP) memfree; FUNCTION_POINTER(NPN_MemFlushFP) memflush; FUNCTION_POINTER(NPN_ReloadPluginsFP) reloadplugins; FUNCTION_POINTER(NPN_GetJavaEnvFP) getJavaEnv; FUNCTION_POINTER(NPN_GetJavaPeerFP) getJavaPeer; FUNCTION_POINTER(NPN_GetURLNotifyFP) geturlnotify; FUNCTION_POINTER(NPN_PostURLNotifyFP) posturlnotify; FUNCTION_POINTER(NPN_GetValueFP) getvalue; FUNCTION_POINTER(NPN_SetValueFP) setvalue; FUNCTION_POINTER(NPN_InvalidateRectFP) invalidaterect; FUNCTION_POINTER(NPN_InvalidateRegionFP) invalidateregion; FUNCTION_POINTER(NPN_ForceRedrawFP) forceredraw; FUNCTION_POINTER(NPN_GetStringIdentifierFP) getstringidentifier; FUNCTION_POINTER(NPN_GetStringIdentifiersFP) getstringidentifiers; FUNCTION_POINTER(NPN_GetIntIdentifierFP) getintidentifier; FUNCTION_POINTER(NPN_IdentifierIsStringFP) identifierisstring; FUNCTION_POINTER(NPN_UTF8FromIdentifierFP) utf8fromidentifier; FUNCTION_POINTER(NPN_IntFromIdentifierFP) intfromidentifier; FUNCTION_POINTER(NPN_CreateObjectFP) createobject; FUNCTION_POINTER(NPN_RetainObjectFP) retainobject; FUNCTION_POINTER(NPN_ReleaseObjectFP) releaseobject; FUNCTION_POINTER(NPN_InvokeFP) invoke; FUNCTION_POINTER(NPN_InvokeDefaultFP) invokedefault; FUNCTION_POINTER(NPN_EvaluateFP) evaluate; FUNCTION_POINTER(NPN_GetPropertyFP) getproperty; FUNCTION_POINTER(NPN_SetPropertyFP) setproperty; FUNCTION_POINTER(NPN_RemovePropertyFP) removeproperty; FUNCTION_POINTER(NPN_HasPropertyFP) hasproperty; FUNCTION_POINTER(NPN_HasMethodFP) hasmethod; FUNCTION_POINTER(NPN_ReleaseVariantValueFP) releasevariantvalue; FUNCTION_POINTER(NPN_SetExceptionFP) setexception; }; #ifdef Q_WS_X11 } #endif #endif x2goclient-4.0.1.1/qt_da.qm0000644000000000000000000033563012214040350012247 0ustar <¸dÊÍ!¿`¡½ÝB& *fõ+þ@ÞÊAß BßuCßÊDàEàˆFàÝGá2Há†IáÙPâpQâÇRãrSãÇTäUäqVäÚWå/XåƒYåÖ]CÃ;$E;8É;HÉ;«`;ê_MCçO#õO4£À)}D mD/¯ú–(5ï%+;»+;Eä+;Lƒ+O+OE´1úúE@ãF•æ)H4HY`HžIæÅJ¼¨JÄJÄKÓK<LDL“YPSôRcëZr(h[`[`eÇ\ݲ_Ã)î_Ã511ºMXÔEO¿Ã³¿ÃF>‡›q‡›Uú‡›>–$a–$Hì˜,|¦y/¦yK'§Ô%^§Ô˜Ÿ§Ô@6¨¥«Œ]¬9aµ›KÀ¶EDÓ¶Eh—¶ÞíÐ%Ð%WÙÓæÖÖ†Öõ|Ö÷vÖûì0$ì0Hì0§Îì0ªáì0mì0húö5™ DJë D_+Ô"V,£L!,£2é+¡iÜ+į%+į˜l+į?´+Çú;t7“[;®„Þ@ÑþWC:žµëF0iénFn4ÁFn4ÁŒG–”FmHw9#vHw9F£HâõXÚI'›`êIë›9EI뛵J+‚%4J+‚ýJ6•%ÈJ6•<J6•GJ6•K•J6•§¡J6•ª;J6•ïPJ6• J6• FJ6•&J6•jUJcbö*KQYKÅW¬LZÂ6Lƒ•äLƒ•<¹L™bçM5„KìMbÿèMe³MCMƒÃÃN‹»b:O|Š<PFE(€PFE¨ÖPFEjñQóÂcŒRŠþdR½|éHRýôd7S8^Ú:TÉóíTÉó#ÈTæÑ 7U?^‡YU¯|DSUÞ}eV1¼ë V1¼ùIVl'V†ÂØ_VŠ¥%VŠ¥ZôVŒ•%@Vñe:WŒ£6WŒ£@ýWTê‚WTóWT%©XÉÄIXÉÄ[©XË™I¸Xýô&‘YÄóeaY祩…YïÔ'‹Yö['Zg•'®ZkôO‡Zƒüfe\Šüw\]4±Ó\]4.P\ƒµÒ€\ƒµ ˜\ú¿Yat}égcðŽ|^¶„vDÿ„vf¨…éÃ,·‹fo{Ž4LÝsŽ5®Ý¿6CaE˜IA ÷¥[³IW§ë‹b¨œÕ°I´#2º«yäýɵn?uɵn„ɵnФɵnŸ€ÉµnÄ ÉµnÉ Éµn=ɵn1ËÔ3 ËÔr…Ð B±Ó*Î ;ãŽÞ%Úå˜ËQ•êMºØ“òEò’1òÎaÿ×÷Ëùugqùå¦ Á¥bõ¢>ަHÊ8‡<äw:pùá©×5°«#Qéåù%UT³ï(ÅŽ\ê*ä4Ê[-ct=—-ct;™2Àéáü5vQE?tvWCÅÝC„Éâ“CÎe9D"õ‹DÓ1m¸M—ÂSž’aR?TeöžôºfPárl‡‡ ×oR‡6qoÂr]Õw¶^«‚x¹É 9|{yà«Âc…Gñcc•ìéìã¡ÏWD<¨2©¸¨2k˜©G±{'Jµ´.L¨¶RÞ~b·AiHE·ÙR¿PXà dq-ÄyãAî²Äžòº„Tóur‹ÿ ¸äÅß YdL¡ öâÂ"l®x†)5À-À¤p[/=N(‰1Ø$° 5~ký< Ä×?—2¿?»NkáM¡ã[$Nkyã•U¿iÖ3W÷~Ÿ]Ýé`êAR`êÌãj•tT2lgÔœlyz)l}µS¿oiÁOêvty>Hvtyg1ýdd”"¾}—ú~™ú@™úX¥²)‰ª6•Eª6•¦¥ª6•iL´^¡p´ƒŠúÇ¶Š¥$™¶Š¥˜¶Š¥?I·RžÚÖ·TÞ º=«Ïº÷žú¼~.¾‚´=û¾œû&濾Ŀ¾\¿Eå¿Eå\ÌÀ‚´@À‚´]Ä{ŽBÇ=±º|Ê8A¼ÛAn8ÛÃ,Dß[yßíâL´È4ä¤5Qì‚në˜ó‚¤Aº󂤣!ó‚¤ÇÊó‚¤ÍPó‚¤Âó‚¤ jõØm§yõðM¦zõðMi$öE”j˜öE”t-w"ˆw' ÍIìH Žž‰—Úá:Ñžá/R ê‚!ÏeE½&¸ž")Õ)'*/e)j;„®dB‹yä?F±åDrO«Ò´ZõfA0\c.Í`ॵcÖƒ"ìfãÄ‚>g&4ÃjC\­q7Þtßu-Öu(µ»}ka1§½õeˆˆà×UÓ~|\—øÑlÚ£y¾ >©ßÒ™Š¯É$‘¯É$u°‚µp´àäa§ÀýêÃ( )¯Êþ”¶Êôr¿¬Î^u¥ÑKõ À֊†NYMájàYMátv^Á¾—h^*]iïÓ/Ýssc¬˜wÞ í€»Ñk1ˆxó`CŒ‡ÆKŽÛŠ;ì–´N8–»] €–»]I—ÌÅ÷å˜I¼¤˜I¼#;˜I¼#¥˜I¼FטI¼Q˜I¼28˜I¼3?˜I¼hŸI•ŸYÏŸi Ÿy CŸ‰­Ÿ™çŸ©!Ÿ¹[Ÿé9ŸùsŸI!ŸŸ‰ ·Ÿ™ ñŸ©!+Ÿ¹!eŸù }¡uDnò¡uDxÙ¦Dh9¦oÃö¯¬,¥¶¬,¥˜Ë¬,¥ ©¬,¥É¬,¥4¬,¥@e¬«]怴é„MعÊå×¹Êåñ!ɘezÌ5$ûÎ 4}6ÑfRïÑfRY¹á‚èNÀ=é•Zë˜Çb¿õ¬c-qöûâêøSÒdûPqqÒþV…HGþV…N^ÿfRSBœ”œ”œ”4x ‚ób÷ ‚óO» ×ä&çæ•R¾©è¶äŽ Â¼‚Œ·úÔƒ%CÉ*&‹~c³)È2‘x+­Âèë,ºÂé´?"£¡V?>uW2KN=MîêR¿ò¬V“|d¸]¿žƒ~]¿ž‰¼k¶Þ%cyô^'Ú€{yæéŒ5t&7Œ5t[tŒFÅZÂŒ¼Ž&m:PF“ådà˜G%i™ØµÄ¡šÇ¥ke›ˆ˜ ›ˆ˜'7œ+¤'aœ+¤2¹¡`ÅN঱tu§{yæM«”d=¬;åfŒ®xAf´¯rÉä”°9\f °ˆÁ(°sf1°ª½*8±Ï¾“îµÞ%9x½C--Â5Ë$AÆžÆC^ydƨ¥sƨ¥5˾äŠ<ÒzŠÔi:KÕ§?4,ÚZ>…eÛz‹OÓߺºÚãÄNMçf•¸aüä^þ!ž×ä Éyú$¤Î~bYv~b_9oÓSMz!뿈J+Öuv+ï36/ô…ëN/ô…ù“4~ÂÌ6Ï '? 2fUA£•öbDçz·G¾ñjGÎb^<LAU=’Or+¢PѧGBQ…îwSÅnÛpUô %UôúUô³”UÞT‚}ZËÑOZËÒ‡ZËÓ¿ZËÔ÷[ ä[he]k*YB^ãns˜_pÔôùe‘,ižäoBižäy*kQ¾…ôoÛN€ y;Ç [{øT{2r}u$ê}w}w*¿}wZº}¶¨ðÖ„ÃèP†Ò„(Šê‚pµÕäŽór°›—B›v£ûË›ƒtÙ›ƒtò† «.N «.*ð¡®3Ov¥Pèï¦iUîYµD„o‰µY´šé·Ýt2O·Ýtu·Ýt¯Gºç|ÎÀ_ $Ã+çc×ÉF±£Ê¢äBŒÊ¢äÎßÊÆ´ÎuÊçdCSÊçd£ìÊçdÈœÊçdÏ·ÊçdÕÂË0YÛÌ59‡|ÑçüØ+ÚNSÏGä‡4Äì»U¹PîdÐ(þ¯Bv”þáhÍ»w®Å–½” ×I> …‘‡Ý+ª¤{,ŒDX/ÿî‰2ìM6’Ñp£?;ÞÛ#CU]NDØvoJ0žÚ†KÕK¯\U|®\¬ñîarŦt‰7|(^\Q|ãX{|¬ò:}wZØ}š$Õ}š$*…}š$ZŒÏ—ü Z’üMŸ”VŸŸ±D}ä¡SIªÜqP¨´K<H€µf+K—·ƒ=:·ƒA·ƒ;<ů׳ø Îû ÞíÕ/w/ãûµê"ë»EhßuÛ%5^³›Tói~ÞÉéúi99%a>Ñäa¢ÿwIÎ#²Ñó%’¾€r'Õ½N.÷Ž‚É5kE„=ƒâ¤=ƒâ<½?ƒâš3?ƒâž§CtIaÒPËîŒûV%îrÖV%îÐqXU X@`ååÂbD(<bG·’Âf“dGVgŸA ŠhI•c+iê$ÇNx1 Õz*2£|QR_Ä‚¨dÉåŠU€I•zMœ•c.{wª?ªOµÞrce¸XÔL/ºmiÕºå^M»²e_P¼ìn"I½ŒÈ&†5dhÄØi`±ÇC¼J#Ê´5§Ê´5i§ʶթÌÉÅùáÓ^ ÚÔ„n4Û”#óîÝD„mâÜdråðF5(IðF5¨;ò»YÕNópÉ©üùI¼üùIXŒýAs0 äÑBë }$¥H qes+ Ú¤­® Ú¥÷£ ôd0Õ íE¡Ã íEÆë Acz Ac[R Úô-O 3š5¸Ü ó ý ­‚µ ¸æÉ‹‹ ¸æÉ¢­ ºnO ÉËÃJÉ ÊY+¿ ÜKç&> ÝÕC™ 팤Ã: ñ%'Bý ö ®§ ÷»¼!Ù =Žz÷ èqeà  DþÆ ü®Ó/ }´Ù° o´N³ )µžê¶ */ån .>¤¿ 7uóuT ;Ù”Ü =äiJ BÇéî J‰"¼¶ K2by RÛ®y Ty ב Tþ^ Uj4™Ó ]‘ž¹ô `±ƒþ `±6 `±, bÕ›µ c(åõê c·EðF dÐÍ3× eœÇH eœÇY e¨{6 fŽ1lh fü*öê g5Uñb gîntu kŸ,9 rD""À t>ñ è¼::à ëf – ëf TÕ ÷4‡ øÊ.g ý‡sn ý‡sW5 AAq# —9ØÛ ˜ÄG ÷9¦; ôd m, #-t· 0†N6÷ A›ù5ð CóUg° EÔ9) IßT¡ L‘¥KT Lö1ã Lög Mc\J` SÐˆÇ V× ]â$@ß f)à f)U f=¦ïƒ io>w× mû`)ý wǼ y¡rD˜ „‚^Ð ŒH ŒHS® Ü 5? ‘$þV, ’.@(È “þ’!† — iàB ¢×^U £Ü %‹ £Ü ˜÷ £Ü @” £ü ^ ¬ü%ç ¯ÙJ¬ ¯ÙJWr ´Ž}e ¿t.ËZ ÂkÔ>F ÃÓ‡%ò ÈMÄõ7 ÈÇ#Û ÊN>“r ̺óh¨ Ô-Di“ ÖØ.—, Û·åòÄ àrŒ âkÔŽ âkÔ]T èU)yÐ êéžT ðË<) óŸã> óŸã óŸã;î õ0Ë$ ö”ÄW¹ §éÖç z+YV  „n°  „x– ŒIbk ‚%gQ ö$f ©´H• xH~V ƒòžW .Éã:S 7F´t( >Ïòq– >ÏòrD >Ïòs† >Ïò}§ >Ïò޲ >Ïò—” >Ïò¹© >ÏòÛÞ ?t|F D€T ô IëË9² P@Þ ` RVŽ[¨ RVŽf% RV®îñ S.Ÿ3n SGù¾Ž SÀù Yåj Yçõ©ú [•›D‘ hÛ®aþ j7oR7 p¡Ã:™ ŒÑB‹' ŽèvÙ ½T?ò ½T  ½TÉŽ ½TÔ3 ‘ñÞB ’›¢Œ[ “èÄB* “èÄÎ ”Å b• –‚™çF )d·» Ÿ§TœÖ ©‰Cí ¬Á.@Z ¬Á.… ¬Á. Ë ¬Á.ÅV ¬Á.ÊÐ ¬Á.± ­—K °†Ô1^ ¸a´ì » y(µ Ò‚î~» àó æ%´Uš èíuU ë¬åª` ó|ô¹ úù!ñ ¿9Gý t× a9Ç :bz5 à€’™ Êœ8é #=—ý@ (I$+& +>º;¤ 0ÒEqù 64Ø ;ɾ?ê FgÑB K×9»™ Ptµ¨› Ptµj¹ fèe ­ fèeQ g­éÛ iFC¿ iØÄXÒ iØÄ jÓ®í m9ÄM³ n¤îƒH u®$à uüÁ9# v&¥ÙZ v{ðû w®] w®* w®Z w}¤• w}¤*H w}¤ZA |[®ˆb €®п ƒÈôk¯ ƒÈôtÈ ŽJ©€@ —Ã^« ¢}Ò– ªôREr ±žPe' ¶²¼4 ¾xN Ë ÇÒU›L ɰeíÜ Ûùžƒ½ ÜXµ ä&Þ‡ï êD¥ ë¼óZw ìÕ+õ ðt5§þ ðt5j òŽ ø¾©C ø¾k& ø)¤N ú¾)¾R`×w¤ÿmT4h‡ÛM{‡ÛhÃgT4Í*‡«2*‡«gÐ/ÇE3i/ÇE²P=êB‘ýIÌ_z›OO”œXRuDØ[Ÿ lûa.ÅGÕgc,ÚnyG‡vÉ…Qy$è€~¹|§ƒ>Š.ŽÞΑ…“ª4À;«Ó4F²´÷SŽK»®^Ü˽ǗYŒ¿ß:Ö¯ÇB¤0ÇÊæÂE,δpÜrµ™3Ý–þçò[yãê íÒ? íÒVŸlDÿ#–þ€Æ"# ‰$ÚUÊ%º4J¨%º4^i-v›CR0i)"Ä0’À#\1c³22wT"†D¢Ã*ËHúùoJd{æK¡ò0WL$.nÇc5‡c5[Ùg3ñ©pþÅÔõyƒC+Þ{~a"6$R'Y5 x&òºó&ò½í•`éáU¡[ô{T®þ¯¯·ô¯·Vî¹>bM載G­¾NQ>¿„`À E`#Â"~{ÉrÔ3ÜÉrÔ>ŽÐkyߘèó™éB÷÷(éPéåRøt27¦û¾Ÿû¾âû¾»û¾°þ”dïÚÿUµFRi•WLuk fane Close Tab CloseButtonTilgængelighed AccessibilityPhonon::Kommunikation CommunicationPhonon::SpilGamesPhonon:: MusikMusicPhonon::Meddelelser NotificationsPhonon::ÿÿÿÿVideoPhonon::ô<html>Skifter til audio-playback-enheden, <b>%1</b><br/>der lige er blevet tilgængelig og har en højere præference.</html>xSwitching to the audio playback device %1
which just became available and has higher preference.Phonon::AudioOutput¶<html>Audio-playback-enheden<b>%1</b> virker ikke.<br/>Falder tilbage til <b>%2</b>.</html>^The audio playback device %1 does not work.
Falling back to %2.Phonon::AudioOutput6Gå tilbage til enheden '%1'Revert back to device '%1'Phonon::AudioOutputäAdvarsel: Det ser ikke ud til, at base GStreamer plugins er installeret. Al audio- og videosupport er deaktiveret~Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabledPhonon::Gstreamer::BackendôAdvarsel: Det ser ikke ud til, at gstreamer0.10-plugins-good pakken er installeret. Nogle videofunktioner er deaktiveret.„Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled.Phonon::Gstreamer::Backend°Der mangler et codec. Følgende codecs skal installeres for at afspille dette indhold: %0`A required codec is missing. You need to install the following codec(s) to play this content: %0Phonon::Gstreamer::MediaObject<Kunne ikke afkode mediekilden.Could not decode media source.Phonon::Gstreamer::MediaObjectDKunne ikke lokalisere mediekilden.Could not locate media source.Phonon::Gstreamer::MediaObjectnKunne ikke åbne lydenheden. Enheden er allerede i brug.:Could not open audio device. The device is already in use.Phonon::Gstreamer::MediaObject8Kunne ikke åbne mediekilden.Could not open media source.Phonon::Gstreamer::MediaObjectUgyldig kilde.Invalid source type.Phonon::Gstreamer::MediaObject"Tilladelse nægtetPermission denied Phonon::MMFÈAnvend denne skyder til at indstille lydstyrken. Længst til venstre er 0% og længst til højre er %1%WUse this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%Phonon::VolumeSliderÿÿÿÿ Volume: %1%Phonon::VolumeSlider,%1, %2 ikke definerede%1, %2 not definedQ3Accel4Tvetydig %1 ikke behandletAmbiguous %1 not handledQ3AccelSletDelete Q3DataTable FalskFalse Q3DataTable IndsætInsert Q3DataTable SandtTrue Q3DataTableOpdaterUpdate Q3DataTablej%1 Filen blev ikke fundet. Kontrollér sti og filnavn.+%1 File not found. Check path and filename. Q3FileDialog &Slet&Delete Q3FileDialog&Nej&No Q3FileDialog&OK&OK Q3FileDialog&Åbn&Open Q3FileDialog &Omdøb&Rename Q3FileDialog&Gem&Save Q3FileDialog&Usorteret &Unsorted Q3FileDialog&Ja&Yes Q3FileDialogf<qt>Er du sikker på, at du vil slette %1 "%2"?</qt>1Are you sure you wish to delete %1 "%2"? Q3FileDialogAlle filer (*) All Files (*) Q3FileDialog Alle filer (*.*)All Files (*.*) Q3FileDialogAttributter Attributes Q3FileDialogTilbageBack Q3FileDialogAnnullerCancel Q3FileDialog0Kopiér eller flyt en filCopy or Move a File Q3FileDialogOpret ny folderCreate New Folder Q3FileDialogDatoDate Q3FileDialogSlet %1 Delete %1 Q3FileDialogDetaljevisning Detail View Q3FileDialogKatalogDir Q3FileDialogKataloger Directories Q3FileDialogKatalog: Directory: Q3FileDialogFejlError Q3FileDialogFilFile Q3FileDialogFil&navn: File &name: Q3FileDialogFil&type: File &type: Q3FileDialogFind katalogFind Directory Q3FileDialogUtilgængelig Inaccessible Q3FileDialogListevisning List View Q3FileDialogKig &i: Look &in: Q3FileDialogNavnName Q3FileDialogNy folder New Folder Q3FileDialogNy folder %1 New Folder %1 Q3FileDialogNy folder 1 New Folder 1 Q3FileDialogEn mappe opOne directory up Q3FileDialogÅbnOpen Q3FileDialogÅbnOpen  Q3FileDialogVis filindholdPreview File Contents Q3FileDialog$Vis filinformationPreview File Info Q3FileDialogGen&indlæsR&eload Q3FileDialogSkrivebeskyttet Read-only Q3FileDialogLæs-skriv Read-write Q3FileDialogLæs: %1Read: %1 Q3FileDialogGem somSave As Q3FileDialogVælg et katalogSelect a Directory Q3FileDialog$Vis s&kjulte filerShow &hidden files Q3FileDialogStørrelseSize Q3FileDialog SortérSort Q3FileDialog$Sortér efter &dato Sort by &Date Q3FileDialog$Sortér efter n&avn Sort by &Name Q3FileDialog.Sortér efter s&tørrelse Sort by &Size Q3FileDialogSpecielSpecial Q3FileDialog&Symlink til katalogSymlink to Directory Q3FileDialogSymlink til FilSymlink to File Q3FileDialog&Symlink til SpecielSymlink to Special Q3FileDialogÿÿÿÿType Q3FileDialogWrite-only Write-only Q3FileDialogSkriv: %1 Write: %1 Q3FileDialogkataloget the directory Q3FileDialog filenthe file Q3FileDialogsymlinket the symlink Q3FileDialog:Kunne ikke oprette katalog %1Could not create directory %1 Q3LocalFs$Kunne ikke åbne %1Could not open %1 Q3LocalFs4Kunne ikke læse katalog %1Could not read directory %1 Q3LocalFsLKunne ikke fjerne fil eller katalog %1%Could not remove file or directory %1 Q3LocalFs4Kunne ikke omdøbe %1 to %2Could not rename %1 to %2 Q3LocalFs(Kunne ikke skrive %1Could not write %1 Q3LocalFsTilpas... Customize... Q3MainWindowLinie opLine up Q3MainWindow8Brugeren stoppede handlingenOperation stopped by the userQ3NetworkProtocolAnnullerCancelQ3ProgressDialog UdførApply Q3TabDialogAnnullerCancel Q3TabDialogStandarderDefaults Q3TabDialog HjælpHelp Q3TabDialogÿÿÿÿOK Q3TabDialogK&opiér&Copy Q3TextEdit&Sæt ind&Paste Q3TextEdit&Gendan&Redo Q3TextEdit&Fortryd&Undo Q3TextEditRydClear Q3TextEdit &KlipCu&t Q3TextEditMarkér alt Select All Q3TextEditLukClose Q3TitleBarLukker vinduetCloses the window Q3TitleBar`Indeholder kommandoer til indstilling af vinduet*Contains commands to manipulate the window Q3TitleBarŽViser vinduets navn og indeholder kontroller til indstilling af vinduetFDisplays the name of the window and contains controls to manipulate it Q3TitleBar4Gør vinduet til fuld skærmMakes the window full screen Q3TitleBarMaksimérMaximize Q3TitleBarMinimerMinimize Q3TitleBar&Flytter vinduet vækMoves the window out of the way Q3TitleBar`Sætter et maksimeret vindue til normal størrelse&Puts a maximized window back to normal Q3TitleBarGendan ned Restore down Q3TitleBarGendan op Restore up Q3TitleBarÿÿÿÿSystem Q3TitleBarMere...More... Q3ToolBar(ukendt) (unknown) Q3UrlOperator¨Protokollen '%1' understøtter ikke kopiering eller flytning af filer eller katalogerIThe protocol `%1' does not support copying or moving files or directories Q3UrlOperator|Protokollen '%1' understøtter ikke oprettelse af nye kataloger;The protocol `%1' does not support creating new directories Q3UrlOperatorhProtokollen '%1' understøtter ikke hentning af filer0The protocol `%1' does not support getting files Q3UrlOperatortProtokollen '%1' understøtter ikke opremsning af kataloger6The protocol `%1' does not support listing directories Q3UrlOperatordProtokollen '%1' understøtter ikke upload af filer0The protocol `%1' does not support putting files Q3UrlOperatorˆProtokollen '%1' understøtter ikke, at filer eller kataloger fjernes@The protocol `%1' does not support removing files or directories Q3UrlOperatorˆProtokollen '%1' understøtter ikke, at filer eller kataloger omdøbes@The protocol `%1' does not support renaming files or directories Q3UrlOperatorDProtokollen '%1' understøttes ikke"The protocol `%1' is not supported Q3UrlOperator&Annuller&CancelQ3Wizard &Udfør&FinishQ3Wizard &Hjælp&HelpQ3Wizard&Næste >&Next >Q3Wizard< &Tilbage< &BackQ3Wizard$Forbindelse afvistConnection refusedQAbstractSocket,Forbindelsen timed outConnection timed outQAbstractSocket*Host blev ikke fundetHost not foundQAbstractSocket<Netværket er ikke tilgængeligtNetwork unreachableQAbstractSocketDSocket-operation ikke understøttet$Operation on socket is not supportedQAbstractSocket*Socket ikke forbundetSocket is not connectedQAbstractSocket4Socket-operation timed outSocket operation timed outQAbstractSocket&Vælg alle &Select AllQAbstractSpinBox&Trin op&Step upQAbstractSpinBoxTrin &ned Step &downQAbstractSpinBoxTryk påPressQAccessibleButtonAktivérActivate QApplicationBAktiverer programmets hovedvindue#Activates the program's main window QApplicationbEksekverbar '%1' kræver Qt %2, ikke fundet Qt %3.,Executable '%1' requires Qt %2, found Qt %3. QApplication8Inkompatibel Qt Library fejlIncompatible Qt Library Error QApplicationÿÿÿÿQT_LAYOUT_DIRECTION QApplication&Annuller&Cancel QAxSelectCOM &Objekt: COM &Object: QAxSelectÿÿÿÿOK QAxSelect(Vælg ActiveX-kontrolSelect ActiveX Control QAxSelectKryds afCheck QCheckBoxSlå til/fraToggle QCheckBoxFjern markeringUncheck QCheckBox(&Føj til egne farver&Add to Custom Colors QColorDialog&Basisfarver &Basic colors QColorDialog&Egne farver&Custom colors QColorDialog &Grøn:&Green: QColorDialog &Rød:&Red: QColorDialog &Mæt:&Sat: QColorDialog &Vær:&Val: QColorDialogAl&fa-kanal:A&lpha channel: QColorDialog Bl&å:Bl&ue: QColorDialog Ton&e:Hu&e: QColorDialogVælg farve Select Color QColorDialogLukClose QComboBox FalskFalse QComboBoxÅbnOpen QComboBox SandtTrue QComboBox&%1: Findes allerede%1: already existsQCoreApplication%1: Findes ikke%1: does not existQCoreApplication(%1: ftok mislykkedes%1: ftok failedQCoreApplication %1: nøgle er tom%1: key is emptyQCoreApplication2%1: Ikke flere ressourcer%1: out of resourcesQCoreApplication2%1: kunne ikke lave nøgle%1: unable to make keyQCoreApplicationBKunne ikke gennemføre transaktionUnable to commit transaction QDB2Driver8Kunne ikke skabe forbindelseUnable to connect QDB2DriverHKunne ikke tilbagetrække transaktionUnable to rollback transaction QDB2Driver<Kunne ikke aktivere autocommitUnable to set autocommit QDB2Driver2Kunne ikke binde variabelUnable to bind variable QDB2Result6Kunne ikke udføre statementUnable to execute statement QDB2Result.Kunne ikke hente førsteUnable to fetch first QDB2Result,Kunne ikke hente næsteUnable to fetch next QDB2Result0Kunne ikke hente post %1Unable to fetch record %1 QDB2Result6Kunne ikke forberede udsagnUnable to prepare statement QDB2ResultÿÿÿÿAM QDateTimeEditÿÿÿÿPM QDateTimeEditÿÿÿÿam QDateTimeEditÿÿÿÿpm QDateTimeEditÿÿÿÿQDialQDialÿÿÿÿ SliderHandleQDialSpeedometer SpeedoMeterQDial UdførtDoneQDialogHvad er dette? What's This?QDialog&Annuller&CancelQDialogButtonBox&Luk&CloseQDialogButtonBox&Nej&NoQDialogButtonBoxÿÿÿÿ&OKQDialogButtonBox&Gem&SaveQDialogButtonBox&Ja&YesQDialogButtonBox AfbrydAbortQDialogButtonBox UdførApplyQDialogButtonBoxAnnullerCancelQDialogButtonBoxLukCloseQDialogButtonBox"Luk uden at gemmeClose without SavingQDialogButtonBox KassérDiscardQDialogButtonBoxGem ikke Don't SaveQDialogButtonBox HjælpHelpQDialogButtonBoxIgnorerIgnoreQDialogButtonBoxNe&j til alle N&o to AllQDialogButtonBoxÿÿÿÿOKQDialogButtonBoxÅbnOpenQDialogButtonBoxNulstilResetQDialogButtonBox,Gendan standardværdierRestore DefaultsQDialogButtonBoxPrøv igenRetryQDialogButtonBoxGemSaveQDialogButtonBoxGem alleSave AllQDialogButtonBoxJa til &alle Yes to &AllQDialogButtonBoxÆndringsdato Date Modified QDirModelTypeKind QDirModelNavnName QDirModelStørrelseSize QDirModelÿÿÿÿType QDirModelLukClose QDockWidgetLåstDock QDockWidgetFlydendeFloat QDockWidget MindreLessQDoubleSpinBoxMereMoreQDoubleSpinBoxÿÿÿÿ&OK QErrorMessage,&Vis denne besked igen&Show this message again QErrorMessageDebug-besked:Debug Message: QErrorMessageFatal fejl: Fatal Error: QErrorMessageAdvarsel:Warning: QErrorMessage@Kunne ikke oprette %1 til outputCannot create %1 for outputQFile4Kan ikke åbne %1 til inputCannot open %1 for inputQFile0Kan ikke åbne til outputCannot open for outputQFile0Kan ikke fjerne kildefilCannot remove source fileQFile,Destinationsfil findesDestination file existsQFile,Kunne ikke skrive blokFailure to write blockQFile¤%1 Katalog kunne ikke findes. Kontrollér, at det rigtige katalognavn er indtastet.K%1 Directory not found. Please verify the correct directory name was given. QFileDialog˜%1 Filen kunne ikke findes. Kontrollér, at det rigtige filnavn er indtastet.A%1 File not found. Please verify the correct file name was given. QFileDialog\%1 findes allerede. Ønsker du at erstatte den?-%1 already exists. Do you want to replace it? QFileDialog &Vælg&Choose QFileDialog &Slet&Delete QFileDialog&Ny folder &New Folder QFileDialog&Åbn&Open QFileDialog &Omdøb&Rename QFileDialog&Gem&Save QFileDialogn'%1' er skrivebeskyttet. Ønsker du alligevel at slette?9'%1' is write protected. Do you want to delete it anyway? QFileDialogAlle filer (*) All Files (*) QFileDialog Alle filer (*.*)All Files (*.*) QFileDialogLEr du sikker på, at '%1' skal slettes?!Are sure you want to delete '%1'? QFileDialogTilbageBack QFileDialog8Kunne ikke slette kataloget.Could not delete directory. QFileDialogOpret ny folderCreate New Folder QFileDialogDetaljevisning Detail View QFileDialogKataloger Directories QFileDialogKatalog: Directory: QFileDialogDrevDrive QFileDialogFilFile QFileDialog&Filnavn: File &name: QFileDialogFiler af typen:Files of type: QFileDialogFind katalogFind Directory QFileDialogFremForward QFileDialogListevisning List View QFileDialog Søg i:Look in: QFileDialogMin computer My Computer QFileDialogNy folder New Folder QFileDialogÅbnOpen QFileDialog(Ovenliggende katalogParent Directory QFileDialogAktuelle steder Recent Places QFileDialog FjernRemove QFileDialogGem somSave As QFileDialogVisShow  QFileDialog$Vis s&kjulte filerShow &hidden files QFileDialog UkendtUnknown QFileDialog %1 GB%1 GBQFileSystemModel %1 KB'%1 KBQFileSystemModel %1 MB%1 MBQFileSystemModel %1 TB%1 TBQFileSystemModel%1 bytes%1 bytesQFileSystemModel¾<b>Navnet, %1, kan ikke benyttes.</b><p>Brug et andet navn med færre tegn og ingen kommatering.oThe name "%1" can not be used.

Try using another name, with fewer characters or no punctuations marks.QFileSystemModelÿÿÿÿComputerQFileSystemModelÆndringsdato Date ModifiedQFileSystemModel Ugyldigt filnavnInvalid filenameQFileSystemModelTypeKindQFileSystemModelMin computer My ComputerQFileSystemModelNavnNameQFileSystemModelStørrelseSizeQFileSystemModelÿÿÿÿTypeQFileSystemModelAlleAny QFontDatabaseArabiskArabic QFontDatabaseArmenskArmenian QFontDatabaseBengalskBengali QFontDatabaseSortBlack QFontDatabaseFedBold QFontDatabaseKyrilliskCyrillic QFontDatabaseÿÿÿÿDemi QFontDatabaseÿÿÿÿ Demi Bold QFontDatabaseÿÿÿÿ Devanagari QFontDatabasegeorgisk Georgian QFontDatabase GræskGreek QFontDatabaseÿÿÿÿGujarati QFontDatabaseÿÿÿÿGurmukhi QFontDatabaseHebræiskHebrew QFontDatabase KursivItalic QFontDatabaseJapanskJapanese QFontDatabaseÿÿÿÿKannada QFontDatabaseÿÿÿÿKhmer QFontDatabaseKoreanskKorean QFontDatabaseÿÿÿÿLao QFontDatabaseÿÿÿÿLatin QFontDatabaseLysLight QFontDatabaseÿÿÿÿ Malayalam QFontDatabaseÿÿÿÿMyanmar QFontDatabaseÿÿÿÿNormal QFontDatabase SkråtOblique QFontDatabaseÿÿÿÿOgham QFontDatabaseÿÿÿÿOriya QFontDatabaseÿÿÿÿRunic QFontDatabase$Forenklet kinesiskSimplified Chinese QFontDatabaseÿÿÿÿSinhala QFontDatabaseÿÿÿÿSymbol QFontDatabase SyriskSyriac QFontDatabaseÿÿÿÿTamil QFontDatabaseÿÿÿÿTelugu QFontDatabaseÿÿÿÿThaana QFontDatabaseThailandskThai QFontDatabaseTibetanskTibetan QFontDatabase*Traditionelt kinesiskTraditional Chinese QFontDatabaseVietnamesisk Vietnamese QFontDatabaseS&krifttype&Font QFontDialog&Størrelse&Size QFontDialog&Understreg &Underline QFontDialogEffekterEffects QFontDialog S&til Font st&yle QFontDialogEksempelSample QFontDialogVælg skrifttype Select Font QFontDialog&Overstreget Stri&keout QFontDialogSkr&ivesystemWr&iting System QFontDialogDÆndring af katalog mislykkedes: %1Changing directory failed: %1QFtpTilsluttet værtConnected to hostQFtp$Tilsluttet vært %1Connected to host %1QFtpHForbindelse til vært mislykkedes: %1Connecting to host failed: %1QFtp$Forbindelse lukketConnection closedQFtp,Dataforbindelse afvist&Connection refused for data connectionQFtp<Forbindelse til vært %1 afvistConnection refused to host %1QFtpDForbindelsen timed out til host %1Connection timed out to host %1QFtp2Forbindelse til %1 lukketConnection to %1 closedQFtpJOprettelse af katalog mislykkedes: %1Creating directory failed: %1QFtpDDownloading af fil mislykkedes: %1Downloading file failed: %1QFtpVært %1 fundet Host %1 foundQFtp&Vært %1 ikke fundetHost %1 not foundQFtpVært fundet Host foundQFtpXOpremsning af katalogindhold mislykkedes: %1Listing directory failed: %1QFtp*Login mislykkedes: %1Login failed: %1QFtp"Ingen forbindelse Not connectedQFtpJDet mislykkedes at fjerne katalog: %1Removing directory failed: %1QFtpBDet mislykkedes at fjerne fil: %1Removing file failed: %1QFtpUkendt fejl Unknown errorQFtp@Uploading af fil mislykkedes: %1Uploading file failed: %1QFtpUkendt fejl Unknown error QHostInfo Vært ikke fundetHost not foundQHostInfoAgent Hostnavn manglerNo host name givenQHostInfoAgent$Ukendt adressetypeUnknown address typeQHostInfoAgentUkendt fejl Unknown errorQHostInfoAgent0Autentificering påkrævetAuthentication requiredQHttpTilsluttet værtConnected to hostQHttp$Tilsluttet vært %1Connected to host %1QHttp$Forbindelse lukketConnection closedQHttp$Forbindelse afvistConnection refusedQHttpRForbindelse blev afvist (eller tid udløb)!Connection refused (or timed out)QHttp2Forbindelse til %1 lukketConnection to %1 closedQHttpData er ødelagtData corruptedQHttpXSkrivefejl mens der blev skrevet til enheden Error writing response to deviceQHttp4HTTP anmodning mislykkedesHTTP request failedQHttp²Der blevet anmodet om en HTTPS-forbindelse, men SSL understøttelse er ikke kompileret ind:HTTPS connection requested but SSL support not compiled inQHttpVært %1 fundet Host %1 foundQHttp&Vært %1 ikke fundetHost %1 not foundQHttpVært fundet Host foundQHttp6Vært kræver autentificeringHost requires authenticationQHttp2Ugyldig HTTP chunked bodyInvalid HTTP chunked bodyQHttp0Ugyldig HTTP-svar-headerInvalid HTTP response headerQHttp8Ingen server at forbinde tilNo server set to connect toQHttp8Kræver proxy-autentificeringProxy authentication requiredQHttp8Proxy kræver autentificeringProxy requires authenticationQHttp8Forespørgsel blev annulleretRequest abortedQHttp2SSL handshake mislykkedesSSL handshake failedQHttpPServeren afsluttede uventet forbindelsen%Server closed connection unexpectedlyQHttp:Ukendt autentifikationsmetodeUnknown authentication methodQHttpUkendt fejl Unknown errorQHttp>En ukendt protokol blev angivetUnknown protocol specifiedQHttp,Forkert indholdslængdeWrong content lengthQHttp0Autentificering påkrævetAuthentication requiredQHttpSocketEngine>Modtog ikke HTTP-svar fra proxy(Did not receive HTTP response from proxyQHttpSocketEngineNFejl under kommunikation med HTTP-proxy#Error communicating with HTTP proxyQHttpSocketEnginexFejl under fortolking af autentificeringsanmodning fra proxy/Error parsing authentication request from proxyQHttpSocketEngineHProxy-forbindelse afsluttede i utide#Proxy connection closed prematurelyQHttpSocketEngine2Proxy-forbindelse nægtedeProxy connection refusedQHttpSocketEngine2Proxy nægtede forbindelseProxy denied connectionQHttpSocketEngineBProxy-serverforbindelse timed out!Proxy server connection timed outQHttpSocketEngine<Proxy-server kunne ikke findesProxy server not foundQHttpSocketEngineDKunne ikke påbegynde transaktionenCould not start transaction QIBaseDriverLDer opstod fejl ved åbning af databaseError opening database QIBaseDriverFKunne ikke gennemføre transaktionenUnable to commit transaction QIBaseDriverLKunne ikke tilbagetrække transaktionenUnable to rollback transaction QIBaseDriver:Kunne ikke allokere statementCould not allocate statement QIBaseResultFKunne ikke beskrive input-statement"Could not describe input statement QIBaseResult:Kunne ikke beskrive statementCould not describe statement QIBaseResult<Kunne ikke hente næste elementCould not fetch next item QIBaseResult,Kunne ikke finde arrayCould not find array QIBaseResult4Kunne ikke hente arraydataCould not get array data QIBaseResultDKunne ikke hente forespørgselsinfoCould not get query info QIBaseResultFKunne ikke hente udsagnsinformationCould not get statement info QIBaseResult6Kunne ikke forberede udsagnCould not prepare statement QIBaseResultDKunne ikke påbegynde transaktionenCould not start transaction QIBaseResult.Kunne ikke lukke udsagnUnable to close statement QIBaseResultFKunne ikke gennemføre transaktionenUnable to commit transaction QIBaseResult.Kunne ikke oprette BLOBUnable to create BLOB QIBaseResult<Kunne ikke udføre forespørgselUnable to execute query QIBaseResult(Kunne ikke åbne BLOBUnable to open BLOB QIBaseResult(Kunne ikke læse BLOBUnable to read BLOB QIBaseResult,Kunne ikke skrive BLOBUnable to write BLOB QIBaseResult<Ingen plads tilbage på enhedenNo space left on device QIODevice:Fil eller katalog findes ikkeNo such file or directory QIODevice"Tilladelse nægtetPermission denied QIODevice6Der er for mange åbne filerToo many open files QIODeviceUkendt fejl Unknown error QIODevice*Mac OS X input-metodeMac OS X input method QInputContext(Windows input-metodeWindows input method QInputContextÿÿÿÿXIM QInputContext XIM input-metodeXIM input method QInputContext"Indtast en værdi:Enter a value: QInputDialogBKan ikke indlæse bibliotek %1: %2Cannot load library %1: %2QLibraryDKan ikke løse symbol "%1" i %2: %3$Cannot resolve symbol "%1" in %2: %3QLibraryLKan ikke afregistrere bibliotek %1: %2Cannot unload library %1: %2QLibraryÿÿÿÿCould not mmap '%1': %2QLibrary\Der var ikke muligt at lave unmap på '%1': %2 Could not unmap '%1': %2QLibraryjPlugin-verifikationsdata er sat forkert sammen i '%1')Plugin verification data mismatch in '%1'QLibraryPFilen '%1' er ikke et gyldigt Qt-plugin.'The file '%1' is not a valid Qt plugin.QLibrary|Plugin '%1' bruger inkompatibelt Qt-bibliotek. (%2.%3.%4) [%5]=The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]QLibraryÄPlugin '%1' bruger inkompatibelt Qt-bibliotek. (Ikke muligt at mikse debug og release-biblioteker)WThe plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)QLibrary¬Plugin '%1' bruger inkompatibelt Qt-bibliotek. Forventet build key "%2", hentede "%3"'OThe plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"QLibrary*DSO blev ikke fundet.!The shared library was not found.QLibraryUkendt fejl' Unknown errorQLibrary&Kopiér&Copy QLineEdit&Sæt ind&Paste QLineEdit&Gendan&Redo QLineEdit&Fortryd&Undo QLineEdit K&lipCu&t QLineEditSletDelete QLineEditMarkér alt Select All QLineEdit$%1: Adresse i brug%1: Address in use QLocalServer%1: Navnefejl%1: Name error QLocalServer*%1: Tilladelse nægtet%1: Permission denied QLocalServer$%1: Ukendt fejl %2%1: Unknown error %2 QLocalServer(%1: Forbindelsesfejl%1: Connection error QLocalSocket,%1: Forbindelse afvist%1: Connection refused QLocalSocket2%1: Datagram er for stort%1: Datagram too large QLocalSocket"%1: Ugyldigt navn%1: Invalid name QLocalSocket4%1: Den anden ende lukkede%1: Remote closed QLocalSocket0%1: Fejl i socket-adgang%1: Socket access error QLocalSocket:%1: Socket-handling timed out%1: Socket operation timed out QLocalSocket6%1: Fejl i socket-ressource%1: Socket resource error QLocalSocketN%1: Socket-handlingen understøttes ikke)%1: The socket operation is not supported QLocalSocket%1: Ukendt fejl%1: Unknown error QLocalSocket$%1: Ukendt fejl %2%1: Unknown error %2 QLocalSocketDKunne ikke påbegynde transaktionenUnable to begin transaction QMYSQLDriverFKunne ikke gennemføre transaktionenUnable to commit transaction QMYSQLDriver&Kunne ikke forbindeUnable to connect QMYSQLDriver6Kunne ikke åbne databasen 'Unable to open database ' QMYSQLDriverLKunne ikke tilbagetrække transaktionenUnable to rollback transaction QMYSQLDriver4Kunne ikke binde udværdierUnable to bind outvalues QMYSQLResult0Kunne ikke tildele værdiUnable to bind value QMYSQLResultHKunne ikke udføre næste forespørgselUnable to execute next query QMYSQLResult<Kunne ikke udføre forespørgselUnable to execute query QMYSQLResult0Kunne ikke udføre udsagnUnable to execute statement QMYSQLResult*Kunne ikke hente dataUnable to fetch data QMYSQLResult6Kunne ikke forberede udsagnUnable to prepare statement QMYSQLResult6Kunne ikke nulstille udsagnUnable to reset statement QMYSQLResult>Kunne ikke gemme næste resultatUnable to store next result QMYSQLResult6Kunne ikke gemme resultatetUnable to store result QMYSQLResultDKunne ikke gemme udsagnsresultater!Unable to store statement results QMYSQLResult(Uden titel) (Untitled)QMdiAreaÿÿÿÿ %1 - [%2] QMdiSubWindow&Luk&Close QMdiSubWindow &Flyt&Move QMdiSubWindow&Gendan&Restore QMdiSubWindow&Størrelse&Size QMdiSubWindowÿÿÿÿ- [%1] QMdiSubWindowLukClose QMdiSubWindow HjælpHelp QMdiSubWindowMa&ksimér Ma&ximize QMdiSubWindowMaksimérMaximize QMdiSubWindowÿÿÿÿMenu QMdiSubWindowMi&nimér Mi&nimize QMdiSubWindowMinimérMinimize QMdiSubWindow GendanRestore QMdiSubWindowGendan Ned Restore Down QMdiSubWindow SkyggeShade QMdiSubWindowBliv &oppe Stay on &Top QMdiSubWindowFjern skyggeUnshade QMdiSubWindowLukCloseQMenu UdførExecuteQMenuÅbnOpenQMenu Om QtAbout Qt QMessageBox HjælpHelp QMessageBox"Skjul detaljer...Hide Details... QMessageBoxÿÿÿÿOK QMessageBoxVis detaljer...Show Details... QMessageBoxMarkér IM Select IMQMultiInputContext<Multiple input metode-switcherMultiple input method switcherQMultiInputContextPluginœMultiple input metode-switcher, der benytter tekstkontrollernes kontekstmenuerMMultiple input method switcher that uses the context menu of the text widgetsQMultiInputContextPluginZEn anden socket lytter allerede på samme port4Another socket is already listening on the same portQNativeSocketEngine~Forsøg på at bruge IPv6-socket på en platform uden IPv6-support=Attempt to use IPv6 socket on a platform with no IPv6 supportQNativeSocketEngine$Forbindelse afvistConnection refusedQNativeSocketEngine,Forbindelsen timed outConnection timed outQNativeSocketEngineXDatagrammet var for stort til at blive sendtDatagram was too large to sendQNativeSocketEngine0Vært er ikke tilgængeligHost unreachableQNativeSocketEngine2Ugyldig socket-deskriptorInvalid socket descriptorQNativeSocketEngineNetværksfejl Network errorQNativeSocketEngine:Netværksoperationen timed outNetwork operation timed outQNativeSocketEngine<Netværket er ikke tilgængeligtNetwork unreachableQNativeSocketEngine,Handling på non-socketOperation on non-socketQNativeSocketEngine*Ikke flere ressourcerOut of resourcesQNativeSocketEngine"Tilladelse nægtetPermission deniedQNativeSocketEngine>Protokoltypen understøttes ikkeProtocol type not supportedQNativeSocketEngine8Adressen er ikke tilgængeligThe address is not availableQNativeSocketEngine*Adressen er beskyttetThe address is protectedQNativeSocketEngineJDen bundne adresse er allerede i brug#The bound address is already in useQNativeSocketEnginePProxytypen er ugyldig til denne handling,The proxy type is invalid for this operationQNativeSocketEngineBFjern-hosten lukkede forbindelsen%The remote host closed the connectionQNativeSocketEnginePKunne ikke initialisere broadcast-socket%Unable to initialize broadcast socketQNativeSocketEngineVKunne ikke initialisere non-blocking socket(Unable to initialize non-blocking socketQNativeSocketEngine8Kunne ikke modtage en beskedUnable to receive a messageQNativeSocketEngine4Kunne ikke sende en beskedUnable to send a messageQNativeSocketEngine"Kunne ikke skriveUnable to writeQNativeSocketEngineUkendt fejl Unknown errorQNativeSocketEngineDSocket-operation ikke understøttetUnsupported socket operationQNativeSocketEngine8Der opstod fejl i at åbne %1Error opening %1QNetworkAccessCacheBackendVSkrivefejl mens der blev skrevet til %1: %2Write error writing to %1: %2QNetworkAccessDebugPipeBackendJKan ikke åbne %1: Stien er et katalog#Cannot open %1: Path is a directoryQNetworkAccessFileBackend@Der opstod fejl i at åbne %1: %2Error opening %1: %2QNetworkAccessFileBackendLLæsefejl mens der blev læst fra %1: %2Read error reading from %1: %2QNetworkAccessFileBackendLAnmodning om at åbne ikke-lokal fil %1%Request for opening non-local file %1QNetworkAccessFileBackendVSkrivefejl mens der blev skrevet til %1: %2Write error writing to %1: %2QNetworkAccessFileBackend>Kan ikke åbne %1: Er et katalogCannot open %1: is a directoryQNetworkAccessFtpBackendJDer opstod fejl i at downloade %1: %2Error while downloading %1: %2QNetworkAccessFtpBackendFDer opstod fejl i at uploade %1: %2Error while uploading %1: %2QNetworkAccessFtpBackendpDer opstod fejl i at logge på %1: Autentificering kræves0Logging in to %1 failed: authentication requiredQNetworkAccessFtpBackend@Ingen passende proxy blev fundetNo suitable proxy foundQNetworkAccessFtpBackend@Ingen passende proxy blev fundetNo suitable proxy foundQNetworkAccessHttpBackendpDer opstod fejl i at downloade %1 - serveren svarede: %2)Error downloading %1 - server replied: %2 QNetworkReply4Protokollen "%1" er ukendtProtocol "%1" is unknown QNetworkReply0Handling blev annulleretOperation canceledQNetworkReplyImplDKunne ikke påbegynde transaktionenUnable to begin transaction QOCIDriverFKunne ikke gennemføre transaktionenUnable to commit transaction QOCIDriver.Kunne ikke initialisereUnable to initialize QOCIDriver&Kunne ikke logge påUnable to logon QOCIDriverLKunne ikke tilbagetrække transaktionenUnable to rollback transaction QOCIDriver4Kunne ikke allokere udsagnUnable to alloc statement QOCIResultZKunne ikke tildele kolonne til batch-udførsel'Unable to bind column for batch execute QOCIResult0Kunne ikke tildele værdiUnable to bind value QOCIResult<Kunne ikke udføre batch-udsagn!Unable to execute batch statement QOCIResult0Kunne ikke udføre udsagnUnable to execute statement QOCIResult6Kunne ikke gå til den næsteUnable to goto next QOCIResult6Kunne ikke forberede udsagnUnable to prepare statement QOCIResultFKunne ikke gennemføre transaktionenUnable to commit transaction QODBCDriver&Kunne ikke forbindeUnable to connect QODBCDriver:Kunne ikke slå auto-udfør fraUnable to disable autocommit QODBCDriver:Kunne ikke slå auto-udfør tilUnable to enable autocommit QODBCDriverLKunne ikke tilbagetrække transaktionenUnable to rollback transaction QODBCDriverðQODBCResult::reset: Kunne ikke indstille 'SQL_CURSOR_STATIC' til udsagnsattribut. Kontrollér ODBC-driver-konfigurationenyQODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResult6Kunne ikke tildele variabelUnable to bind variable QODBCResult0Kunne ikke udføre udsagnUnable to execute statement QODBCResult Kunne ikke henteUnable to fetch QODBCResult6Kunne ikke hente den førsteUnable to fetch first QODBCResult6Kunne ikke hente den sidsteUnable to fetch last QODBCResult4Kunne ikke hente den næsteUnable to fetch next QODBCResult8Kunne ikke hente den forrigeUnable to fetch previous QODBCResult6Kunne ikke forberede udsagnUnable to prepare statement QODBCResultUgyldig URI: %1Invalid URI: %1QObject Hostnavn manglerNo host name givenQObjectJHandling blev ikke understøttet på %1Operation not supported on %1QObjectbFjern-host lukkede forbindelsen for tidligt på %13Remote host closed the connection prematurely on %1QObject*Socket-fejl på %1: %2Socket error on %1: %2QObjectNavnNameQPPDOptionsModel VærdiValueQPPDOptionsModel@Kunne ikke påbegynde transaktionCould not begin transaction QPSQLDriverBKunne ikke gennemføre transaktionCould not commit transaction QPSQLDriverHKunne ikke tilbagetrække transaktionCould not rollback transaction QPSQLDriver8Kunne ikke skabe forbindelseUnable to connect QPSQLDriver&Kunne ikke tilmeldeUnable to subscribe QPSQLDriver$Kunne ikke afmeldeUnable to unsubscribe QPSQLDriver>Kunne ikke oprette forespørgselUnable to create query QPSQLResult6Kunne ikke forberede udsagnUnable to prepare statement QPSQLResultCentimeter (cm)Centimeters (cm)QPageSetupWidgetÿÿÿÿFormQPageSetupWidget Højde:Height:QPageSetupWidgetÿÿÿÿ Inches (in)QPageSetupWidgetLandskab LandscapeQPageSetupWidgetMargenerMarginsQPageSetupWidgetMillimeter (mm)Millimeters (mm)QPageSetupWidgetÿÿÿÿ OrientationQPageSetupWidgetSidestørrelse: Page size:QPageSetupWidget PapirPaperQPageSetupWidgetPapirkilde: Paper source:QPageSetupWidgetPoint (pt) Points (pt)QPageSetupWidgetPortrætPortraitQPageSetupWidget Omvendt landskabReverse landscapeQPageSetupWidgetOmvendt portrætReverse portraitQPageSetupWidget Vidde:Width:QPageSetupWidgetMargen - bund bottom marginQPageSetupWidget Margen - venstre left marginQPageSetupWidgetMargen - højre right marginQPageSetupWidgetMargen - øverst top marginQPageSetupWidget2Plugin blev ikke indlæst.The plugin was not loaded. QPluginLoaderUkendt fejl Unknown error QPluginLoaderX%1 findes allerede. Ønsker du at overskrive?/%1 already exists. Do you want to overwrite it? QPrintDialogP%1 er et katalog. Vælg et andet filnavn.7%1 is a directory. Please choose a different file name. QPrintDialog &Indstillinger<< &Options << QPrintDialog &Indstillinger>> &Options >> QPrintDialog&Udskriv&Print QPrintDialogB<qt>Ønsker du at overskrive?</qt>%Do you want to overwrite it? QPrintDialogÿÿÿÿA0 QPrintDialogÿÿÿÿA0 (841 x 1189 mm) QPrintDialogÿÿÿÿA1 QPrintDialogÿÿÿÿA1 (594 x 841 mm) QPrintDialogÿÿÿÿA2 QPrintDialogÿÿÿÿA2 (420 x 594 mm) QPrintDialogÿÿÿÿA3 QPrintDialogÿÿÿÿA3 (297 x 420 mm) QPrintDialogÿÿÿÿA4 QPrintDialogÿÿÿÿ%A4 (210 x 297 mm, 8.26 x 11.7 inches) QPrintDialogÿÿÿÿA5 QPrintDialogÿÿÿÿA5 (148 x 210 mm) QPrintDialogÿÿÿÿA6 QPrintDialogÿÿÿÿA6 (105 x 148 mm) QPrintDialogÿÿÿÿA7 QPrintDialogÿÿÿÿA7 (74 x 105 mm) QPrintDialogÿÿÿÿA8 QPrintDialogÿÿÿÿA8 (52 x 74 mm) QPrintDialogÿÿÿÿA9 QPrintDialogÿÿÿÿA9 (37 x 52 mm) QPrintDialogAliasser: %1 Aliases: %1 QPrintDialogÿÿÿÿB0 QPrintDialogÿÿÿÿB0 (1000 x 1414 mm) QPrintDialogÿÿÿÿB1 QPrintDialogÿÿÿÿB1 (707 x 1000 mm) QPrintDialogÿÿÿÿB10 QPrintDialogÿÿÿÿB10 (31 x 44 mm) QPrintDialogÿÿÿÿB2 QPrintDialogÿÿÿÿB2 (500 x 707 mm) QPrintDialogÿÿÿÿB3 QPrintDialogÿÿÿÿB3 (353 x 500 mm) QPrintDialogÿÿÿÿB4 QPrintDialogÿÿÿÿB4 (250 x 353 mm) QPrintDialogÿÿÿÿB5 QPrintDialogÿÿÿÿ%B5 (176 x 250 mm, 6.93 x 9.84 inches) QPrintDialogÿÿÿÿB6 QPrintDialogÿÿÿÿB6 (125 x 176 mm) QPrintDialogÿÿÿÿB7 QPrintDialogÿÿÿÿB7 (88 x 125 mm) QPrintDialogÿÿÿÿB8 QPrintDialogÿÿÿÿB8 (62 x 88 mm) QPrintDialogÿÿÿÿB9 QPrintDialogÿÿÿÿB9 (44 x 62 mm) QPrintDialogÿÿÿÿC5E QPrintDialogÿÿÿÿC5E (163 x 229 mm) QPrintDialogBrugerdefineretCustom QPrintDialogÿÿÿÿDLE QPrintDialogÿÿÿÿDLE (110 x 220 mm) QPrintDialogÿÿÿÿ Executive QPrintDialogÿÿÿÿ)Executive (7.5 x 10 inches, 191 x 254 mm) QPrintDialogbFilen %1 kan ikke skrives. Vælg et andet filnavn.=File %1 is not writable. Please choose a different file name. QPrintDialogFil findes File exists QPrintDialogÿÿÿÿFolio QPrintDialogÿÿÿÿFolio (210 x 330 mm) QPrintDialogÿÿÿÿLedger QPrintDialogÿÿÿÿLedger (432 x 279 mm) QPrintDialogÿÿÿÿLegal QPrintDialogÿÿÿÿ%Legal (8.5 x 14 inches, 216 x 356 mm) QPrintDialogÿÿÿÿLetter QPrintDialogÿÿÿÿ&Letter (8.5 x 11 inches, 216 x 279 mm) QPrintDialogLokal fil Local file QPrintDialogÿÿÿÿOK QPrintDialogUdskrivPrint QPrintDialog$Udskriv til fil...Print To File ... QPrintDialogUdskriv alle Print all QPrintDialogUdskriftsområde Print range QPrintDialog"Udskriv markeredePrint selection QPrintDialog*Udskriv til fil (PDF)Print to File (PDF) QPrintDialog8Udskriv til fil (Postscript)Print to File (Postscript) QPrintDialogÿÿÿÿTabloid QPrintDialogÿÿÿÿTabloid (279 x 432 mm) QPrintDialogj'Fra'-værdien kan ikke være større end 'til'-værdien.7The 'From' value cannot be greater than the 'To' value. QPrintDialogÿÿÿÿUS Common #10 Envelope QPrintDialogÿÿÿÿ%US Common #10 Envelope (105 x 241 mm) QPrintDialogSkriv %1 fil Write %1 file QPrintDialog lokalt forbundetlocally connected QPrintDialog Ukendtunknown QPrintDialogÿÿÿÿ%1%QPrintPreviewDialogLukCloseQPrintPreviewDialog"Eksportér til PDF Export to PDFQPrintPreviewDialog0Eksportér til PostScriptExport to PostScriptQPrintPreviewDialogFørste side First pageQPrintPreviewDialogTilpas sidenFit pageQPrintPreviewDialogTilpas bredde Fit widthQPrintPreviewDialogLandskab LandscapeQPrintPreviewDialogSidste side Last pageQPrintPreviewDialogNæste side Next pageQPrintPreviewDialogSideopsætning Page SetupQPrintPreviewDialogSideopsætning Page setupQPrintPreviewDialogPortrætPortraitQPrintPreviewDialogForrige side Previous pageQPrintPreviewDialogUdskrivPrintQPrintPreviewDialogVis udskrift Print PreviewQPrintPreviewDialogVis sideopslagShow facing pagesQPrintPreviewDialog4Vis oversigt af alle siderShow overview of all pagesQPrintPreviewDialogVis enkelt sideShow single pageQPrintPreviewDialogZoom indZoom inQPrintPreviewDialogZoom udZoom outQPrintPreviewDialogAvanceretAdvancedQPrintPropertiesWidgetFormFormQPrintPropertiesWidgetSidePageQPrintPropertiesWidgetSamordneCollateQPrintSettingsOutput FarveColorQPrintSettingsOutputFarvetilstand Color ModeQPrintSettingsOutput KopierCopiesQPrintSettingsOutputKopier:Copies:QPrintSettingsOutputDobbelsidetDuplex PrintingQPrintSettingsOutputÿÿÿÿFormQPrintSettingsOutputGråskala GrayscaleQPrintSettingsOutputBog Long sideQPrintSettingsOutput IngenNoneQPrintSettingsOutputValgmulighederOptionsQPrintSettingsOutput,UdskriftsindstillingerOutput SettingsQPrintSettingsOutputSider fra Pages fromQPrintSettingsOutputUdskriv alle Print allQPrintSettingsOutputUdskriv sider Print rangeQPrintSettingsOutputOmvendtReverseQPrintSettingsOutputValg SelectionQPrintSettingsOutput Tavle Short sideQPrintSettingsOutputtiltoQPrintSettingsOutput &Navn:&Name: QPrintWidgetÿÿÿÿ... QPrintWidgetÿÿÿÿForm QPrintWidgetPlacering: Location: QPrintWidgetUdskrifts&fil: Output &file: QPrintWidget&Egenskaber P&roperties QPrintWidgetVis udskriftPreview QPrintWidget'Printer QPrintWidgetÿÿÿÿType: QPrintWidgetZKunne ikke åbne input redirection for læsning,Could not open input redirection for readingQProcess`Kunne ikke åbne output redirection for skrivning-Could not open output redirection for writingQProcess6Fejl ved læsning fra procesError reading from processQProcess:Fejl ved skrivning til procesError writing to processQProcess.Intet program defineretNo program definedQProcessProces crashedeProcess crashedQProcess2Proces-operation time outProcess operation timed outQProcess<Ressource fejl (fork fejl): %1!Resource error (fork failure): %1QProcessAnnullerCancelQProgressDialogÅbnOpen QPushButtonKontrollérCheck QRadioButton2dårlig char class syntaksbad char class syntaxQRegExp0dårlig lookahead syntaksbad lookahead syntaxQRegExp2dårlig gentagelsessyntaksbad repetition syntaxQRegExp>deaktiveret funktion blev brugtdisabled feature usedQRegExp$ugyldigt oktal-talinvalid octal valueQRegExp(nåede interne grænsemet internal limitQRegExp6Manglende venstre delimitermissing left delimQRegExp*der opstod ingen fejlno error occurredQRegExp$uventet afslutningunexpected endQRegExpLDer opstod fejl ved åbning af databaseError opening databaseQSQLite2DriverDKunne ikke påbegynde transaktionenUnable to begin transactionQSQLite2DriverFKunne ikke gennemføre transaktionenUnable to commit transactionQSQLite2Driver6Kunne ikke udføre statementUnable to execute statementQSQLite2Result6Kunne ikke hente resultaterUnable to fetch resultsQSQLite2ResultNDer opstod fejl ved lukning af databaseError closing database QSQLiteDriverLDer opstod fejl ved åbning af databaseError opening database QSQLiteDriverDKunne ikke påbegynde transaktionenUnable to begin transaction QSQLiteDriverBKunne ikke gennemføre transaktionUnable to commit transaction QSQLiteDriverHKunne ikke tilbagetrække transaktionUnable to rollback transaction QSQLiteDriver&Ingen forespørgeselNo query QSQLiteResult:Misforhold i parametertællingParameter count mismatch QSQLiteResult2Unable to bind parametersUnable to bind parameters QSQLiteResult0Kunne ikke udføre udsagnUnable to execute statement QSQLiteResult,Kunne ikke hente rækkeUnable to fetch row QSQLiteResult6Kunne ikke nulstille udsagnUnable to reset statement QSQLiteResultSletDeleteQScriptBreakpointsWidgetFortsætContinueQScriptDebuggerLukCloseQScriptDebuggerCodeFinderWidgetNavnNameQScriptDebuggerLocalsModel VærdiValueQScriptDebuggerLocalsModelNavnNameQScriptDebuggerStackModelSøgSearchQScriptEngineDebuggerLukCloseQScriptNewBreakpointWidgetBundBottom QScrollBarVenstre kant Left edge QScrollBarLinie ned Line down QScrollBarLinie opLine up QScrollBarSide ned Page down QScrollBarSide venstre Page left QScrollBarSide højre Page right QScrollBarSide øverstPage up QScrollBarPlaceringPosition QScrollBarHøjre kant Right edge QScrollBarScroll ned Scroll down QScrollBarScroll her Scroll here QScrollBar$Scroll til venstre Scroll left QScrollBar Scroll til højre Scroll right QScrollBarScroll op Scroll up QScrollBar ØverstTop QScrollBar&%1: Findes allerede%1: already exists QSharedMemory<%1: create size is less then 0%1: create size is less then 0 QSharedMemory%1: Findes ikke%1: doesn't exists QSharedMemory(%1: ftok mislykkedes%1: ftok failed QSharedMemory*%1: Ugyldig størrelse%1: invalid size QSharedMemory%1: Nøglefejl %1: key error QSharedMemory %1: nøgle er tom%1: key is empty QSharedMemory$%1: Ikke vedhæftet%1: not attached QSharedMemory2%1: Ikke flere ressourcer%1: out of resources QSharedMemory*%1: Tilladelse nægtet%1: permission denied QSharedMemoryL%1: Størrelsesforespørgsel mislykkedes%1: size query failed QSharedMemoryT%1: System-pålagte størrelsesrestriktioner$%1: system-imposed size restrictions QSharedMemory&%1: Kunne ikke låse%1: unable to lock QSharedMemory8%1: Kunne ikke oprette nøgle%1: unable to make key QSharedMemory8%1: Kunne ikke oprette nøgle%1: unable to set key on lock QSharedMemory8%1: Kunne ikke oprette nøgle%1: unable to unlock QSharedMemory$%1: ukendt fejl %2%1: unknown error %2 QSharedMemoryÿÿÿÿ+ QShortcutÿÿÿÿAlt QShortcutTilbageBack QShortcutTilbage Backspace QShortcut"Tilbage-tabulatorBacktab QShortcutÿÿÿÿ Bass Boost QShortcutBass ned Bass Down QShortcutBass opBass Up QShortcutRing tilCall QShortcutÿÿÿÿ Caps Lock QShortcut'CapsLock QShortcutRydClear QShortcutLukClose QShortcutKontekst1Context1 QShortcutKontekst2Context2 QShortcutKontekst3Context3 QShortcutKontekst4Context4 QShortcut KopiérCopy QShortcutÿÿÿÿCtrl QShortcutKlipCut QShortcutÿÿÿÿDel QShortcutÿÿÿÿDelete QShortcutNedDown QShortcutÿÿÿÿEnd QShortcutÿÿÿÿEnter QShortcutÿÿÿÿEsc QShortcutÿÿÿÿEscape QShortcutÿÿÿÿF%1 QShortcutÿÿÿÿ Favorites QShortcutVendFlip QShortcutFremForward QShortcut Læg påHangup QShortcut HjælpHelp QShortcutÿÿÿÿHome QShortcutStartside Home Page QShortcutÿÿÿÿIns QShortcutÿÿÿÿInsert QShortcutStart (0) Launch (0) QShortcutStart (1) Launch (1) QShortcutStart (2) Launch (2) QShortcutStart (3) Launch (3) QShortcutStart (4) Launch (4) QShortcutStart (5) Launch (5) QShortcutStart (6) Launch (6) QShortcutStart (7) Launch (7) QShortcutStart (8) Launch (8) QShortcutStart (9) Launch (9) QShortcutStart (A) Launch (A) QShortcutStart (B) Launch (B) QShortcutStart (C) Launch (C) QShortcutStart (D) Launch (D) QShortcutStart (E) Launch (E) QShortcutStart (F) Launch (F) QShortcutStart mail Launch Mail QShortcutStart Media Launch Media QShortcutVenstreLeft QShortcutMedia næste Media Next QShortcutÿÿÿÿ Media Play QShortcutMedia forrigeMedia Previous QShortcutÿÿÿÿ Media Record QShortcutÿÿÿÿ Media Stop QShortcutÿÿÿÿMenu QShortcutÿÿÿÿMeta QShortcut MusikMusic QShortcutNejNo QShortcutÿÿÿÿNum Lock QShortcutÿÿÿÿNumLock QShortcutÿÿÿÿ Number Lock QShortcutÅbn URLOpen URL QShortcutÿÿÿÿ Page Down QShortcutÿÿÿÿPage Up QShortcutSæt indPaste QShortcutÿÿÿÿPause QShortcutÿÿÿÿPgDown QShortcutÿÿÿÿPgUp QShortcutUdskrivPrint QShortcutÿÿÿÿ Print Screen QShortcutOpdaterRefresh QShortcutGenindlæsReload QShortcutÿÿÿÿReturn QShortcut HøjreRight QShortcutGemSave QShortcutÿÿÿÿ Scroll Lock QShortcutÿÿÿÿ ScrollLock QShortcutSøgSearch QShortcutVægSelect QShortcutÿÿÿÿShift QShortcutÿÿÿÿSpace QShortcutÿÿÿÿStandby QShortcutÿÿÿÿStop QShortcutÿÿÿÿSysReq QShortcutÿÿÿÿSystem Request QShortcutÿÿÿÿTab QShortcutDiskant ned Treble Down QShortcutDiskant op Treble Up QShortcutOpUp QShortcutLydstyrke ned Volume Down QShortcutLydstyrke mute Volume Mute QShortcutLydstyrke op Volume Up QShortcutJaYes QShortcutSide ned Page downQSliderSide venstre Page leftQSliderSide højre Page rightQSliderSide opPage upQSliderPlaceringPositionQSlider:Adressetype understøttes ikkeAddress type not supportedQSocks5SocketEngineRForbindelse ikke tilladt a SOCKSv5-server(Connection not allowed by SOCKSv5 serverQSocks5SocketEngineHProxy-forbindelse afsluttede i utide&Connection to proxy closed prematurelyQSocks5SocketEngine2Proxy-forbindelse nægtedeConnection to proxy refusedQSocks5SocketEngineBProxy-serverforbindelse timed outConnection to proxy timed outQSocks5SocketEngine4General SOCKSv5 serverfejlGeneral SOCKSv5 server failureQSocks5SocketEngine:Netværksoperationen timed outNetwork operation timed outQSocks5SocketEngineBProxy autentificering mislykkedesProxy authentication failedQSocks5SocketEngineJProxy autentificering mislykkedes: %1Proxy authentication failed: %1QSocks5SocketEngine8Proxy-host kunne ikke findesProxy host not foundQSocks5SocketEngine8SOCKS version 5 protokolfejlSOCKS version 5 protocol errorQSocks5SocketEngineDSOCKSv5-kommando ikke understøttetSOCKSv5 command not supportedQSocks5SocketEngineTTL udløbet TTL expiredQSocks5SocketEngineDUkendt SOCKSv5 proxy fejlkode 0x%1%Unknown SOCKSv5 proxy error code 0x%1QSocks5SocketEngineAnnullerCancelQSoftKeyManagerValgmulighederOptionsQSoftKeyManagerVægSelectQSoftKeyManager MindreLessQSpinBoxMereMoreQSpinBoxAnnullerCancelQSql>Skal dine ændringer annulleres?Cancel your edits?QSqlBekræftConfirmQSqlSletDeleteQSql Slet denne post?Delete this record?QSql IndsætInsertQSqlNejNoQSqlGem ændringer? Save edits?QSqlOpdaterUpdateQSqlJaYesQSqlTKan ikke give et certifikat uden nøgle, %1,Cannot provide a certificate with no key, %1 QSslSocketjDer opstod fejl under oprettelse af SSL-kontekst (%1)Error creating SSL context (%1) QSslSocketfDer opstod fejl under oprettelse af SSL-session, %1Error creating SSL session, %1 QSslSocketfDer opstod fejl under oprettelse af SSL-session, %1Error creating SSL session: %1 QSslSocketTDer opstod en fejl under SSL handshake: %1Error during SSL handshake: %1 QSslSocketrDer opstod fejl under indlæsning af lokalt certifikat, %1#Error loading local certificate, %1 QSslSockethDer opstod fejl under indlæsning af privat nøgle, %1Error loading private key, %1 QSslSocketNDer opstod en fejl under læsning af: %1Error while reading: %1 QSslSocketFUgyldig eller tom chifferliste (%1)!Invalid or empty cipher list (%1) QSslSocket4Kunne ikke skrive data: %1Unable to write data: %1 QSslSocket&%1: Findes allerede%1: already existsQSystemSemaphore%1: Findes ikke%1: does not existQSystemSemaphore2%1: Ikke flere ressourcer%1: out of resourcesQSystemSemaphore*%1: Tilladelse nægtet%1: permission deniedQSystemSemaphore$%1: Ukendt fejl %2%1: unknown error %2QSystemSemaphore@Kunne ikke etablere forbindelsenUnable to open connection QTDSDriver4Kunne ikke bruge databasenUnable to use database QTDSDriver$Scroll til venstre Scroll LeftQTabBar Scroll til højre Scroll RightQTabBarDSocket-operation ikke understøttet$Operation on socket is not supported QTcpServer&Kopiér&Copy QTextControl&Sæt ind&Paste QTextControl&Gendan&Redo QTextControl&Fortryd&Undo QTextControlKopiér l&inkCopy &Link Location QTextControl K&lipCu&t QTextControlSletDelete QTextControlMarkér alt Select All QTextControlÅbnOpen QToolButtonTryk påPress QToolButtonJDenne platform understøtter ikke IPv6#This platform does not support IPv6 QUdpSocket GendanRedo QUndoGroupFortrydUndo QUndoGroup <tom> QUndoModel GendanRedo QUndoStackFortrydUndo QUndoStackÿÿÿÿ Insert Unicode control characterQUnicodeControlCharacterMenuÿÿÿÿ$LRE Start of left-to-right embeddingQUnicodeControlCharacterMenuÿÿÿÿLRM Left-to-right markQUnicodeControlCharacterMenuÿÿÿÿ#LRO Start of left-to-right overrideQUnicodeControlCharacterMenuÿÿÿÿPDF Pop directional formattingQUnicodeControlCharacterMenuÿÿÿÿ$RLE Start of right-to-left embeddingQUnicodeControlCharacterMenuÿÿÿÿRLM Right-to-left markQUnicodeControlCharacterMenuÿÿÿÿ#RLO Start of right-to-left overrideQUnicodeControlCharacterMenuÿÿÿÿZWJ Zero width joinerQUnicodeControlCharacterMenuÿÿÿÿZWNJ Zero width non-joinerQUnicodeControlCharacterMenuÿÿÿÿZWSP Zero width spaceQUnicodeControlCharacterMenu"Kan ikke vise URLCannot show URL QWebFrame.Kan ikke vise MIME-typeCannot show mimetype QWebFrame"Filen findes ikkeFile does not exist QWebFrame$Anmodning blokeretRequest blocked QWebFrame(Anmodning annulleretRequest cancelled QWebFrame"%1 (%2x%3 pixels)%1 (%2x%3 pixels)QWebPage %n fil%n filer %n file(s)QWebPage"Tilføj til ordbogAdd To DictionaryQWebPage*Dårlig HTTP-anmodningBad HTTP requestQWebPageFedBoldQWebPageBundBottomQWebPageXKør grammatikkontrol sammen med stavekontrolCheck Grammar With SpellingQWebPage Kør stavekontrolCheck SpellingQWebPage@Kør stavekontrol mens der tastesCheck Spelling While TypingQWebPageVælg fil Choose FileQWebPage,Ryd aktuelle søgningerClear recent searchesQWebPage KopiérCopyQWebPageKopiér billede Copy ImageQWebPageKopiér link Copy LinkQWebPageKlipCutQWebPageStandardDefaultQWebPage8Slet til slutningen af ordetDelete to the end of the wordQWebPage2Slet til starten af ordetDelete to the start of the wordQWebPageRetning DirectionQWebPageSkrifttyperFontsQWebPageGå tilbageGo BackQWebPageGå frem Go ForwardQWebPage@Skjul stave- og grammatikkontrolHide Spelling and GrammarQWebPageIgnorérIgnoreQWebPageIgnorér Ignore Grammar context menu itemIgnoreQWebPageInsert ny linieInsert a new lineQWebPage(Indsæt et nyt afsnitInsert a new paragraphQWebPageInspicérInspectQWebPage KursivItalicQWebPage*JavaScript alert - %1JavaScript Alert - %1QWebPage.JavaScript Bekræft - %1JavaScript Confirm - %1QWebPage,JavaScript Prompt - %1JavaScript Prompt - %1QWebPageVenstre kant Left edgeQWebPageSlå op i ordbogLook Up In DictionaryQWebPageNFlyt markør til slutningen af sektionen'Move the cursor to the end of the blockQWebPagePFlyt markør til slutningen af dokumentet*Move the cursor to the end of the documentQWebPageHFlyt markør til slutningen af linien&Move the cursor to the end of the lineQWebPage4Flyt markør til næste tegn%Move the cursor to the next characterQWebPage6Flyt markør til næste linie Move the cursor to the next lineQWebPage2Flyt markør til næste ord Move the cursor to the next wordQWebPage8Flyt markør til forrige tegn)Move the cursor to the previous characterQWebPage:Flyt markør til forrige linie$Move the cursor to the previous lineQWebPage6Flyt markør til forrige ord$Move the cursor to the previous wordQWebPageHFlyt markør til starten af sektionen)Move the cursor to the start of the blockQWebPageJFlyt markør til starten af dokumentet,Move the cursor to the start of the documentQWebPageBFlyt markør til starten af linien(Move the cursor to the start of the lineQWebPage8Der er ikke fundet nogen gætNo Guesses FoundQWebPage0Der er ikke valgt en filNo file selectedQWebPage0Ingen aktuelle søgningerNo recent searchesQWebPageÅbn faneblad Open FrameQWebPageÅbn billede Open ImageQWebPageÅbn link Open LinkQWebPage Åbn i nyt vindueOpen in New WindowQWebPage KonturOutlineQWebPageSide ned Page downQWebPageSide venstre Page leftQWebPageSide højre Page rightQWebPageSide øverstPage upQWebPageSæt indPasteQWebPage$Aktuelle søgningerRecent searchesQWebPageGenindlæsReloadQWebPageNulstilResetQWebPageHøjre kant Right edgeQWebPageGem billede Save ImageQWebPageGem link... Save Link...QWebPageScroll ned Scroll downQWebPageScroll her Scroll hereQWebPage$Scroll til venstre Scroll leftQWebPage Scroll til højre Scroll rightQWebPageScroll op Scroll upQWebPageSøg på nettetSearch The WebQWebPageMarkér alt Select allQWebPage@Vælg til slutningen af sektionenSelect to the end of the blockQWebPageBVælg til slutningen af dokumentet!Select to the end of the documentQWebPage:Vælg til slutningen af linienSelect to the end of the lineQWebPage&Vælg til næste tegnSelect to the next characterQWebPage(Vælg til næste linieSelect to the next lineQWebPage$Vælg til næste ordSelect to the next wordQWebPage*Vælg til forrige tegn Select to the previous characterQWebPage,Vælg til forrige linieSelect to the previous lineQWebPage(Vælg til forrige ordSelect to the previous wordQWebPage:Vælg til starten af sektionen Select to the start of the blockQWebPage<Vælg til starten af dokumentet#Select to the start of the documentQWebPage4Vælg til starten af linienSelect to the start of the lineQWebPage<Vis stave- og grammatikkontrolShow Spelling and GrammarQWebPageStavekontrolSpellingQWebPageStopStopQWebPageSendSubmitQWebPageSendQSubmit (input element) alt text for elements with no alt, title, or valueSubmitQWebPageTekstretningText DirectionQWebPagePDette er et søgeindeks. Indtast søgeord:3This is a searchable index. Enter search keywords: QWebPageÿÿÿÿTopQWebPageUnderstreget UnderlineQWebPage UkendtUnknownQWebPage$Web-inspektør - %2Web Inspector - %2QWebPageHvad er dette? What's This?QWhatsThisActionÿÿÿÿ*QWidget&Afslut&FinishQWizard &Hjælp&HelpQWizard &Næste&NextQWizard&Næste >&Next >QWizard< &Tilbage< &BackQWizardAnnullerCancelQWizard UdførCommitQWizardFortsætContinueQWizard FærdigDoneQWizardGå tilbageGo BackQWizard HjælpHelpQWizardÿÿÿÿ %1 - [%2] QWorkspace&Luk&Close QWorkspace &Flyt&Move QWorkspace&Gendan&Restore QWorkspace&Størrelse&Size QWorkspace&Fjern skygge&Unshade QWorkspaceLukClose QWorkspaceMa&ksimér Ma&ximize QWorkspaceMi&nimér Mi&nimize QWorkspaceMinimerMinimize QWorkspaceGendan ned Restore Down QWorkspaceSk&yggeSh&ade QWorkspaceBliv på &toppen Stay on &Top QWorkspace¨Enkodningsdeklaration eller fri deklaration forventet ved læsning af XML-deklarationYencoding declaration or standalone declaration expected while reading the XML declarationQXmlVfejl i tekstdeklaration på en ekstern enhed3error in the text declaration of an external entityQXmlZder opstod fejl under fortolking af kommentar$error occurred while parsing commentQXmlVder opstod fejl under fortolking af indhold$error occurred while parsing contentQXmltder opstod fejl under fortolking af dokumenttypedefinition5error occurred while parsing document type definitionQXmlVder opstod fejl under fortolking af element$error occurred while parsing elementQXmlZder opstod fejl under fortolking af reference&error occurred while parsing referenceQXmlDFejltilstand rejst af datamodtagererror triggered by consumerQXmlxEksternt parset generel entitetsreference ikke tilladt i DTD;external parsed general entity reference not allowed in DTDQXmlŒEksternt parset generel entitetsreference ikke tilladt i attributværdiGexternal parsed general entity reference not allowed in attribute valueQXmlfintern generel entitetsreference ikke tilladt i DTD4internal general entity reference not allowed in DTDQXmlPUgyldigt navn for processing instruction'invalid name for processing instructionQXml"bogstav forventetletter is expectedQXmlLmere end én definition på dokumenttype&more than one document type definitionQXml*der opstod ingen fejlno error occurredQXml&rekursive entiteterrecursive entitiesQXmlpfri deklaration forventet ved læsning af XML-deklarationAstandalone declaration expected while reading the XML declarationQXmlÿÿÿÿ tag mismatchQXmluventet tegnunexpected characterQXml2uventet afslutning på filunexpected end of fileQXmlZufortolket enhedsreference i forkert kontekst*unparsed entity reference in wrong contextQXmldversion forventet under læsning af XML-deklaration2version expected while reading the XML declarationQXmlBForkert værdi for fri deklaration&wrong value for standalone declarationQXmlF%1 er en ugyldig PUBLIC identifier.#%1 is an invalid PUBLIC identifier. QXmlStreamB%1 er et ugyldigt enkodningsnavn.%1 is an invalid encoding name. QXmlStream\%1 er et ugyldigt processing-instruction-navn.-%1 is an invalid processing instruction name. QXmlStream, men fik ' , but got ' QXmlStream*Attribut redefineret.Attribute redefined. QXmlStreamBEnkodning %1 er ikke understøttetEncoding %1 is unsupported QXmlStreamFIndhold med forkert enkodning læst.(Encountered incorrectly encoded content. QXmlStream:Enheden '%1' ikke deklareret.Entity '%1' not declared. QXmlStreamForventet Expected  QXmlStream&Forventet tegndata.Expected character data. QXmlStreamDEkstra indhold sidst i dokumentet.!Extra content at end of document. QXmlStream<Ulovligt navnerumsdeklaration.Illegal namespace declaration. QXmlStream$Ugyldigt XML-tegn.Invalid XML character. QXmlStream$Ugyldigt XML-navn.Invalid XML name. QXmlStream8Ugyldigt XML-versionsstreng.Invalid XML version string. QXmlStreamFUgyldig attribut i XML-deklaration.%Invalid attribute in XML declaration. QXmlStream,Ugyldig tegnreference.Invalid character reference. QXmlStream$Ugyldigt dokument.Invalid document. QXmlStream(Ugyldig enhedsværdi.Invalid entity value. QXmlStreamJUgyldigt processing-instruction-navn.$Invalid processing instruction name. QXmlStreamJNDATA i parameterentitetsdeklaration.&NDATA in parameter entity declaration. QXmlStreamJNavnerumspræfiks '%1' ikke deklareret"Namespace prefix '%1' not declared QXmlStream@Åbner og afslutter tag-mismatch. Opening and ending tag mismatch. QXmlStream<Dokument sluttede for tidligt.Premature end of document. QXmlStream2Rekursiv entitet opdaget.Recursive entity detected. QXmlStreambReference til ekstern enhed '%1' i attributværdi.5Reference to external entity '%1' in attribute value. QXmlStreamFReference to ufortolket enhed '%1'."Reference to unparsed entity '%1'. QXmlStreamJSekvens ']]>' ikke tilladt i indhold.&Sequence ']]>' not allowed in content. QXmlStream(Start-tag forventet.Start tag expected. QXmlStreampDen frie pseudo-attribut skal optræde efter enkodningen.?The standalone pseudo attribute must appear after the encoding. QXmlStreamUventet ' Unexpected ' QXmlStreamHUventet tegn '%1' i public id værdi./Unexpected character '%1' in public id literal. QXmlStream<XML-version understøttes ikke.Unsupported XML version. QXmlStreamZXML-deklaration ikke i starten af dokumentet.)XML declaration not at start of document. QXmlStreamN%1 er ikke en gyldig værdi af typen %2.#%1 is not a valid value of type %2. QtXmlPatternsNMindst en komponent skal være tilstede.'At least one component must be present. QtXmlPatternsvMindst en tidskomponent skal optræde efter %1-skillemærket.?At least one time component must appear after the %1-delimiter. QtXmlPatterns>Dag %1 er ugyldig for månet %2.Day %1 is invalid for month %2. QtXmlPatternsJDag %1 er udenfor intervallet %2..%3.#Day %1 is outside the range %2..%3. QtXmlPatterns†Division af værdi af typen %1 med %2 (ikke et tal) er ikke tilladt.@Dividing a value of type %1 by %2 (not-a-number) is not allowed. QtXmlPatternsRDivision (%1) med nul (%2) er udefineret.(Division (%1) by zero (%2) is undefined. QtXmlPatternsžElement %1 kan ikke serialiseres fordi det optræder udenfor dokument-elementet.OElement %1 can't be serialized because it appears outside the document element. QtXmlPatterns`Heltalsdivision (%1) med nul (%2) er udefineret.0Integer division (%1) by zero (%2) is undefined. QtXmlPatterns`Modulusdivision (%1) med nul (%2) er udefineret.0Modulus division (%1) by zero (%2) is undefined. QtXmlPatternsNMåned %1 er udenfor intervallet %2..%3.%Month %1 is outside the range %2..%3. QtXmlPatterns Netværk timeout.Network timeout. QtXmlPatternsPOverflow: Kan ikke repræsentere dato %1."Overflow: Can't represent date %1. QtXmlPatternsLOverflow: Dato kan ikke repræsenteres.$Overflow: Date can't be represented. QtXmlPatternsDTidspunkt %1:%2:%3.%4 er ugyldigt.Time %1:%2:%3.%4 is invalid. QtXmlPatternsÔTidspunkt 24:%1:%2.%3 er ugyldigt. Timetal er 24, men minutter, sekunder og millisekunder er ikke alle 0; _Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0;  QtXmlPatternslVed cast til %1 fra %2, kan kildeværdien ikke være %3.:When casting to %1 from %2, the source value cannot be %3. QtXmlPatternsRÅr %1 er ugyldigt da det begynder med %2.-Year %1 is invalid because it begins with %2. QtXmlPatternsˆx2goclient-4.0.1.1/qt_de.qm0000644000000000000000000102657312214040350012257 0ustar <¸dÊÍ!¿`¡½ÝB=*"Û+ƒ×@+ A+‰B,C,D,úE-‰F.G.H.÷I/lP0Q0 R1™S2T2U3 V3™W4X4ŒY5]iŸt‰““i•i,™iVÔd—ß;DK;[v;o3;é¹;;ÐMiÇOœ¼Oºj[·ýÀ©p}iïmj¯M×(5Až+;.]+;kü+;s)+O./+OkÊ1N;E@1F•5vH4„§HY‹MHŽðI6@I@h¨IAhÕICŒðJ Å©J¼JÄŒ·JÄôÁK3.LDŽCL“Ž™PS‘ûR®TÇeñZr§Y[`z¢[`è\Ǫ¬\ÝÆý_ëð_û1ºtÔEv¿Ã/s¿Ãlh.‡\‡›1E‡›A‡›‡:‰‡–$Œ`–$ð‰–[‰6˜,‰í¦yŒ[¦yóQ§ÔE§ÔÑè§Ôà(¨¥2«ŒŒ¬9ŒÌµ›rV¶Ejá¶E·“¶E$‘¶ÞàÏ·ÇÐ%4#Ð%@Ó…Ö!ÿÖHaÖJ‡ÖNeØ5ìì0Dì0nzì0åsì0é2ì0rì0$ìö5‘  Å Dqy DŠA+Ô˜O,£rÅ,£¸ž7gcClG¹éarUNƒâ|^öÄ|AôôcިȂüÅÆêƒÅÉW'„vk „v"”…éÃMÊ‹f^Œ)C«DW^¼ÿŽ4L)¢Ž5®)òŽã.—½6CŒŽ˜IA@‰¤È¾Çæ¥[³oÕ§ë‹û¨œ>¬œ¹$x°I´šµ,þúB·œü“º«y3ÀÆRn…ºÉµnc{ɵn·kɵn¿øÉµnÚ-ɵnÝɵnLɵnZ¨Éµn_/ËuøËÔTîËÔ ¼Ð BðnÐT5`˜Ó*δÞ'Ž”ãŽÞ cå˜ËþAéŠnÞ²êMº$@ñlN7ñïÙ"ÔòEòÊ@òÎaT0÷Ëù¤•Ë7qù4³².…pT†¾Û”†r Á¥ ¢>>ˆHÊ[48,%r<ä4pù/×5ïâ#Qé5(%UTóÎ(ÅŽ‡³)9]E*ä4–-ct`Â-ctÚË.ŽFñ2Àé/“3…¤æ5výÝdšI˜Ju®{û¡ÏWåÀ¦„.Ó2¨2矨2'ü©ë±{'òµ´.sT¶RÞ>¶·Aiî·ÙUϺ.¹~¿PO¬À0¾ê³ÂþNlÁà d-UÄy1HÇ,TsÇÇtÕYúʯ‰ü•Ó¬ÎYQçÔ‡çñe6ìØ`Ÿî²Ä³fïy#<ïÈ^ªžòº„Æ›óurÁáôt. ¢÷‡„©%øòAû0Ô ü°TVüß®þSIô³Î') ¸ä Š Ü~”Š Ydõ£ öâ†à$¥œäŽ"l®5‚)X-À¤žh/=N¨¹1Ø$ï 5~™,< ÄÇ(<Ž3s==þÀî>›„e[?—2à?»N(U@E®É@VîÐoB!þ„îM¡ã ÏNky1ÀU¿i!¬W÷~VP]Ýé>I`êfT`êÜj•t(lg•lyzÇ~l}µ›oiÁúðvtya‡vty~P‰hNe¨1ýQ%Ò8”"¾=&—ú4”˜ÆþfŽ™ú4R™ún£GÞ¤9çÕ¤¾¥4ž°¡¥²)Ã÷¦ì}¦ìûª6•k‹ª6•ãþª6•%P¬´Sí"´^¡ž ´ƒŠN¶Š¥D§¶Š¥Ñ4¶Š¥ß ·Rž&Ÿ·T*@º=ê8º÷žMN¼~.?q¾‚´Ý™¾œû£¿¾y¿¾O¿Eåyi¿EåÀ‚´y³À‚´åÄ{ŽâNÇ=±û¥Ê8A2®Ï„²ýÓgN)ÛA›ÕÛ“¾âÆÛïiß[y,¦âL´ >ãQtr'䤻4æ‘Þ ì‚n=îU¾J¸îþi`òø‘j”ó‚¤fØó‚¤ßfó‚¤ ó‚¤eó‚¤\8ó‚¤b^õØmåõðMãÁõðM%öE”—™öE”£+wBjww âþ1m^î8Ò ÍI=½ Žž­bÚáÖž®ŒXžá³ÇÅþ¨eü«z ê‚}í!ÏeèY&¸žAº)Õ©õ*/eª6*›ŽöÉ+¢NdÕ,N´Ãg6Ž?V;„ìÿ?†4Ä4B‹y2¶Ecšz:F±åjhIQñK~¾ÜO«¥ZõfáH\S~Ô$\c³`àâÌb—Þubœ¬»cÖƒ™ÎfãÄCg&4^jC‡xmÑne’q½çqÕK:tßu±±u(µ‘s{>¤·}ka¶Ž½õ‘ÿ‡R>rnˆà"òÓ~y¯KÄb¯É$Xâ¯É$1|°‚µ,l´àäŒú¼°š€ÀQƒÁ+³Œ4Ã( ªmÅušåÇ,.+Êþè¢ÊôrÎ^2ÑKõ*ÎÖŠÂ_bÚ*>\ÛS¾æÉÞ€.´[ã nãõÉÞ;ä,Ôº‘äÈ.\0å•ôý æhŽ׬êË‹êÝôQëÕÿ'úîà¾Ù£ñ;y+°õω€ùOž·wú-î"ýI$úŒµÇùA¾š –Cnj垺NÖ7^dû0Þ»à’ÆHpñ=¡€&H„¹Ð.Ž9•/¥Ä¹G0வë4r_5ì>¿ª8wKÈ?ÞžÃBMþUkIxS\ Jî#ÐLÙ‹JMþÀRÕ.ïRå>IXE% VYMá—ÿYMᣒ^Á¾-dÄK¢f¨Þ^h^KBiïÓQBn«ÅOr˜³½sscës¡®LiwÞv΀»Ñ˜\ˆxó‹z‰/^s‹2ŸÎŒ‡ Ž"%fƒŽN„ÝÉŽÛŠ^÷atXß‘;Tï–´NZÁ–»]vc–»]ð²—ÌÅK ˜I¼1v˜I¼C+˜I¼C˜I¼m ˜I¼Tº˜I¼·W˜I¼¸ö˜I¼#û™(²¯œZÂðÝŸI•NŸY•ŒŸi•ÊŸy–Ÿ‰”VŸ™””Ÿ©”ÒŸ¹•Ÿé“ÚŸù”ŸI—|Ÿ‰–„Ÿ™–Ÿ©—Ÿ¹—>Ÿù–F¡uDœ£¡uD¨‘¥ ÎB‰¦D$/¦oÃI˜«ŽögÇ«Ž÷h9¬,¥,¬,¥Ò$¬,¥e°¬,¥@¬,¥¹°¬,¥àg¬«]5÷°æ>d ´é„tŒ¹Êå"°¹ÊåC¬½r޼ý¿„N¦¿êþZ ¿ÿîÏ`Â.×ZÈ>ÔdÉÈq.%ɘeŽÀË“î Ì5$8—Î 4®dÏ8Ã6ÀÑfR6ÑfRƒ£ÕG>³TÖ*‚ˆØèµàUçg2á´á_®åÍ9†èNÀ>é•„ë˜ÇŽ`õ¬cNöû0ÇøSÒŽûPqŸõþV…n­þV…øÿfR{þ|•G¬TøÛœ”,yœ”’&œ”º; ‚óŽš ‚óúÁ ×äGA¼^µ"æ•ÿx©9’žÆ%¬å‘4äŽ_¼‚ÂÛàÂu úÔµ¦¤µÏÌ"o˜—%CÉKu&‹~r&§Þˆ)È2É)ðž“®+­Â9|,ºÂ:Ë5˜3t¼5åÆ˜¸8‘Ä™,?"£Ý'?>uÎ?½% Fuƒ7KNÜvMîˆ(NÚ>3IO£>S8R¿òê˜V“|ó]¿ž¶8]¿ž¾Öe”fÒg°^žk¶ÞŸyô^H€{y6j‚w? ‹ ²’Œ5t ðŒ5t 'ŒFńΌ¼Ž¡[:ûP‘Ξ0F“å‘'˜Þ΢G%•ó˜œn›Ï˜«ne˜«nqb™ØµÀšÇ¥'Ûˆ˜ul›ˆ˜£¨œ+¤£Øœ+¤¸b¡`ÅùÚ¢ú£n¾^X¦±t/3§{y5 §èÞÝU«”“¬;å“=®/þ K®xA“q¯rÉ31°9\’š°ˆÁ¦á°s’ઽK±Ï¾á°µÞ%\5¶ˆÕÑ)¸{α\¸Œ¼¨‹»Þ}%½C-X‚½Ôdý]Â5Ë4ÃU˜üNÈÆžÆC^©Nƨ¥,Ûƨ¥ºÛ˾ä¿jÒz5˜ÒÙ„…¼Ó)î‚âÔiÀtÕ§?¹ÝÚZ>G3Ûi}«Ûz‹võܳÞèÂߺº%ÖãÄtûçf•øþê—tÁ롥șì`ÚqÞòœ~ÃŽòœÞÐ8ómœéüä^þ!ž#}–äà ›mq ›râ É9£Ž_Îú$á›~bƒ^~bŠpoÓ7»MÇßtr‡ `Þ¼!뿼ò%?å¨S(ÞëQ)Ñžj+Öu¥ñ+ï3\È,8Îà¨/œ´i€/ô…<É/ô…Lº1õéÏ4~o6Ï £V<…Òm? 2"AA£•ISB>N{Dç:UEžÛžFgˆUG¾ñ—GÂÎ_GÎb‰YHU®¨LAUÝM~^0Or®¹Pѧm†Q…î§"RÌC‘®SÅn'-Tµ—/UôUôĤUôóqUÞT´ÍXŽP YÄ»…iZÎïbZËÑ‹ƒZËÒ‹¹ZËÓ‹ïZËÔŒ%[g[$a]k*ƒ"]ú®’.^ãn/Ò_PÔ¬N_pÔGÖe‘6Rižäižä© kQ¾H©m?$oÛN@‘xâÙdy;ÇÛ’{K‡{¸'}už}wxS}w­ª}w ¶}¶¨C]ž¸Y„Ã8„hs_;†ÒEƇp~Ô@‡z~ÓG‡Œ~y ‡¦~x‰ldŠê‚,íŒyÞâÕäÅÔr°{Å’'Õê'’¼î•p~ÒN•z~ÑU•Œ~w•¦~v—B™íÞ››v£O ›ƒt$Ò›ƒtE)žYdÕ «.x¡ «.­õ¡®3v†¥PèU^¦iU@¸©hRx®u 4²kî•FµD„+íµY´Ôœ·ÝtSî·Ýt¤?·ÝtŽ}ºç<ì¼ö©#(½-nºï½l´7fÀ_ ÖÀûþÊ#Âa±SJÃ+çÈ„~ÒÉF±ßôÊC¾=DÊ¢ägðÊ¢ä˜ʬ IÊÆ´ÊçdiÊçdàuÊçd ºÊçdÖÊçd!Ë0 “Ì59»ØÑçPØ+°ÚNS0ãdž#䇺éÎgëk˜¬Šì»Uú+îdiþ¯B3\þáhòw®/–½Ì 2þ5q ×ñ;^Nl?«õ …‘¼W!ž“pY'ô¾hT+ª¤«®,ŒD(/ÿîh2ìsÊ3”î³ä42ÞQÒ5@Þ¸5‰96’Ñž®7·D¾+9þåí:‰s:%TdP?;Þ&èCU]ø8DØ2ßIàNšÆJ0ž&YJùVòKÕ9K¯¥Q~®ƒÂU|ŠV7ÞIW‚î°\¬D…\¯DùarÅ]Te nÎg*.ÑwgýÎþSn8åÌÙnWW p&¡ûºqƒŽ,At‰8ÙwÛ²z5®š|(^ø|ã|¬D×}wZ#Ã}š$wþ}š$­X}š$ cîQ|ŒÏ—OhZ’O š‚œVNAAŸ”'Ÿ±D¯. L>6“¡§ãN©ÒªÜqü«èȲå®Ü—´nO´-nz´K<nìµf+óǹE.‚%¿Í®Ç3·ƒ`a·ƒ{g·ƒÚjýž€ÅVªÆ×³KÇÉ:N‡kÉ:n†ÊT~nýÎû +2Îþnó6Õ/¦¿Øéu ©ÚnùÚ-n$Úe“„NàŸwîã“t¥£ãûµ;ä½Uïƒè•ÞÕ'ë7¸°ë»E•°øvþÃöONYVu1¯%5‰ä›TA©Ètoý e~Gi~/ž’Î’ZÉ9¯úiÀ9%Ñäÿwñ®by×!áÞÂ:#²à%’¾A'ÕþÃ-å.˜Ú.÷ŽC¿5kEWÍ=ƒâc=ƒâƒo=ƒâÜ ?ƒâÓÖ?ƒâÙ6@JŠÏCtI5EfÄÓyNºP›ÎPËîQsA;V%î¡”V%îXU æZŒî]À`åå}•bD§bG·ÊËf®)f“dëafãî `gŸA@hI•ŽÎiê$ ekënmƒw÷Ùx1 Š\z*2‡ó|ÞZÕ|QR‚¨dƒJ„–Œ†®žf¥‡•åŠU€ˆ—ŠéciÔ‹(.Ö7‹¬ÙˆÈ•ztR•c.¬-›¯4³¢Ç^I(¨ƒ®½¼ªbƒªž­¯µ \µÞr‚¶°ãæ[¸XÔõ+ºm–ƺå^ö!»²e«¼ìnB'½ŒÈ ±†5ÂÄØi‹îÇC¼p¥Èq~ ŠÉUžÊ´5äyÊ´5%ÅÊ¶ÕæÏÌÉÅM ͳpÒûD!lÓ^ ²³Óž¶þÚÔ„*°Û”#F¿ÝD„*-ß'NhzâÜd/ðF5HqðF5åäò»Y —ópɱ!õ+>¦Üú&D„ÎüùI4ÔüùI‚6ýAs1 äÑhƒ }$â= qe¢ Ú¤ìE Ú¥JÄ ôdµœ íEݼ íE è îº@ Ac:F Ac…È Úô°Ú ýn\# 3š5ù— 6Å‘ “™ WMNÏv bÅMŽ bbâú b¾`zV b¾`„ dÇt gUòÖ iä3P@ laôèü o„kðL uáÎ’Ö xq;³ |o¾%ò Ã~_ä ‚|ÅõM ˆn¾ø ˆÇÞõæ ‰Á®vm Š·JNš ‹§¾ç` ŒtÓ9™ ŒtÓ… ŒÖôÆ Ž .?å Ží/á •».Ov –邉` ˜ŠÞN› ˜õ®àØ ™)þðÞ šF>[F šêÄB ž°îb\ Ÿ¥Þxg ¢³ÄTN ¢³Äî| ¦„„´| §²ðç ¨B¾ß ©Ò‰=a «å4mÐ ¬¯…“— ­>óaÏ ­‚µ5' ¯kƒì ²î¾:‡ ³¼žòf ¸æÉÁW ¸æÉÞÚ ºnר »óÎÊ ¼áNÐ ¼çÃí€ ¾9>c‹ ÀV´€ Á‚„Ð ÉËÃòÝ ÊY+‚( ÑY> ÜKçF¢ ÝÕä› á@Žºð 팤é îEćh îl~¡D ñ%'ã‹ óMNt ö ®- ÷»¼—º û/î~¾ ûC“. =Ž:¿ èq’c  DR{ ü®8 }´%u ü9‡; o´u{ ½Îsa Äôž ¬Ž”ô $¶Î.3 )µž<+ */出 .>¤Ø, 5ÝîAÆ 74®cC 7uó1¼ ;ÙÍ <žT9 =ä–) BÇé@( Bòn¬ Fõ‹ á GÝžt+ H Õ' IF.'ð J‰"þ K2~ RÛ®8a Ty #* Tþ^ˆd Uj4Ót ]‘žû ^&Ęè `±¶Ì `±Yq `±]ú bÕÕ˜ b¿®¯P c(åHÙ c·EBÉ dÐ͹| eœÇ5d eœÇ‚ï e¦esˆ e¨{‚Û fŽ1™Ç fü*Iç g5UCñ gîn0ÿ hþŠâ kŸ,< rD"B¦ t. ~ó”¾D …éÓOr ‡Î9=À Œÿ®³! ŽjþV ’$NÛ —¥Í ˜IœRà ˜IœZû ˜IœkK ˜àžë[ šÉ;>Ð œ› œ¬á œ¬cv Ÿfµ{Œ Ÿjñ ¢ÊI!å £!n4 ¨Jɥ⠪$a ª$}. ¬%pWÐ ¬,…-÷ ¬,…{Ç ¯=­Œ °ÌÕX¡ ²‡¾Mm ¹N4&X ¼Œtôù ½nr¢ ½o¢E ¿`­ ÂSdlÌ ÂÆnð; Äã§ Äpž Ô Äzž · ÆB‰· ÇvĦƒ ȯ'b Ét  ÉÌ$j~ Êl¦² Êpž š Êzž } Ë”•5 ÐP¸S ÐP¸"ú ÔàÄšå ÔàÄ¥4 Ý~tÆ9 Þ68V7 Þ>>i8 ä“ç× è¼:]Ñ ëf 0f ëf ~ ô¾ê ÷4»> ÷ŽÝÿ øÊ.“ã øûŽ4w ùä "p ý‡s3h ý‡s€„ ¶~ý¨ AAŸ8 —9$Œ ˜Ämï ÷9ã„ rÉr G- m,=* Ï5j6 #-t÷y 0†NYr 5ÎÎP 5\ù A›ù¼ CóU”ƒ EÔ99ß Ißµ L‘¥ó‚ LöS‚ Lö#‘ Mc\pð OîØ8 RÕî@› Sн­ V×Ã` W“åé ZƒœJ \Otùu ]â$eÍ `àïZ f)0´ f)~O f=¦B io>4× j®‹. l#¡º mû`JÈ n|nqÀ wÇ9^ xáR{Ì y¡rj¨ {nÚ ~LŽgN ƒô>é „‚% ‹æ‘" ŒH.» ŒH|€ Ü W€ Žýàgý n«e ‘$þq ’.@¨ð “’þ­ “þ’A( — i-! šË<Iæ ›…¦I ¢×¨ £Ü EÍ £Ü ÒV £Ü àœ £ü c ¬ü%6Á ¯ÙJ3® ¯ÙJ€É ´Ž= ·î7 ºçžZ ¿t. ÂkÔÝæ ÃÓ‡FJ ÇÉw ÈMÄH ÈÇCÕ ÊN>Ëy Ë/˜ˆý ̺ó•{ Ï&Þ¿œ ÒÏNUY Ô-D–| ÖØ.Ð Û·åEm àrÿ5 âkÔz âkÔ3 çÑî¾® èU)©â êéž ðË<IO óŸãb óŸã" óŸãÛ& õ0Ëœä ö”ÄÉ ÷îG¤ ÷ÎHf $r¢¸ §é"n ª~Ål z+ª  „œW  „¨D †î*“ ŒIì ø$ 9N߬ ‚%” Íç èNq¥ öƒ A>(‰ LŽE …sô ©´ïë xH¯º ƒòØØ "îÆk $¿lw %6bm .Éã]( 2¦¢ç 7F´0v =ÑŽk >ÏòŸ« >Ïò m >Ïò¢j >Ïò®ã >ÏòÅZ >Ïòб >ÏòúÄ >Ïò'§ >Ïò×1 >ÏòÚ ?t|èÉ A^-« B­~‰û D€T+ FÔnb] G’ô! IëË\m J>þ ® Mb⥠P@Þ ¯ RVކ2 RVŽ T RV®Ad R¿nƒ S.Ÿ¹' SGù SÀL' TŠ~î Yå&L Yçõçû [•›æ] \îÅw e±N!Þ hÛ®u j7ozà p¡Ã]n s©L_ vô’L †šžˆ¸ ŒÑBÀÝ Žè3± ½TdZ ½TÛ ½T0 ½T ‘ñ*w ’›¢Â_ “èÄg` “èÄm ”ܧ¾ ”Å Ž& –‚™6ý —/.Ç œ,Ò!" œ,Ò(™ )dø2 Ÿ§T× ©R^Ä… ©‰å5 ¬Á.dÜ ¬Á.¸P ¬Á.Ü4 ¬Á.• ¬Á.% ¬Á.[ ¬Á.` ­—â °†Ô¶= ±>D- µÑªÐ ¶ç.VH ¸aôÛ » yHç »±Žl« ¾e.¦Ù ¾x¹(L ÂÚCì¥ Ä'éÊ ÅÿNoâ ÇÙîl ÈØg ÉhNn ɾd2 ɾd Œ Ìôeƒø Î>7‹ Ò‚î? Ó´Ótd Ø¡þÈ ß¢.Ì àó¢ ã>•Ë æ%´ò èíuY ë¬åèk ñ­Þ™t ó|ô~Ê ô’Þgv úùA± ýXt > ÿün±m ¿9í½ tX& a¿ì ¢Ï ….+ „ÕP :bªƒ Uq•‹ à€Á+ ˆÇÀ Êœ[š $Ž~ º>K ñ”zÐ  õo $|{  Á?þ #$îÖð #=—Pà %™nrd '.¾ (I$®) (öN}  +>º^¯ +kž¥¬ 0ÒE. 64€ ;ɾßÈ CÙnÄð Fg K×9ü° Lc®د PtµæP Ptµ&ÿ Sì,§€ T»>$‰ `Kƒ dBâ[a fèev fèeüÍ g  ò g­:þ iFC iØÄ‚¸ iØÄ· jNÎf' j’Þý jÓ®>Ç kGn Ð lã"jø m9Ä÷F n¤îD¾ s'~Ì u®ž@ uþ§4 uüÁ¿F v îk£ v&¥% v{ð´ w®wZ w®¬º w® à w}¤w¬ w}¤­ w}¤  yÄnöÌ |[®K¡ €Œ# €®~ uªÝ ƒÈô˜Þ ƒÈô£ð „ÿ<Wy ŽJ©±Ì —Ã^é` ™%ÎEÛ žîo%  $× ¢}ÒÎ¥ ªôRçÚ ¯%7Ø6 ±žPþ ¶²ý‰ ¾xN  Ä"¦Ÿù ÇÒUÕ' ɰe?Å ÍïFœ ÛùžE5 ÜX6û ä&ÞK çxÔÄÈ êD8% ë¼ó„ƒ ìÕ+4 ï›åÁ ðt5å£ ðt5&Á ð¨©& òŽPx õ?ŽË ö¯>¢Â ø¾ç ø¾'x ø)¤+„ øÊÒ˜{ ú¾J}©$îmR€;‘jw¤SÔ @aZ¤TVƒ‡Û÷‡Û$½¤é%ì6þìæ<þì‡n€GgTVÜÚî‹  ¢ÎìË*‡«S¸*‡«#Æ/ÇEUh/ÇEñá4QtŒ=êBɸIEÎÛI‰.ÕÀIÌ_« K·õï3NžQ-OO”ÕïS×5~XRuæÐXщÕZoÞCM[ ä[Ÿ )ya.Ån-a‚.|sgc°!iÒÕ$nyGIõsWîjv6þîŽv<þíºvÉ…>•y$Y%H®€~¹­½%¡5%¸ƒ>¯ ŽÞÎiè=ÎÚY“ª40–}NÕ9½Nz £4^X-¨'«Ó4éÄ­Õûb³ym[³ø~]´÷SÄ÷»Nž›{»®^(Ƽ5ôh½Ç—ì¾èŽ~.¿ß:"8ÀÊ.ý®ÇDŸÇB¤RJÊæÂçjÎôYÔ”kQÖ’¾LæÖÃâ¼Ü þwBÜrµÒœÝ–þ7•ò[y2;÷Þ^šgýjkÿýjl; ¶Ù× ø.T íÒ2! íÒîG¾ùlDRên¾pߪîÍ–þAX"#aO$ÚU<Ð%º4q2%º4‰–*„ÎaG,-¤Ðm-v›ä(0i)™’0’ÀšN1có2wT™ZD¢ÃK¶F74ÁáG×ÔšHúù.楾·§)¥öeªnÞ}ü«Í£ŸÇ®þB_¯·2쯷€K¹>b÷s¼‰ë¾Ny¦¿„À EšÂ"~ÄÜLWŸÉrÔUáÉrÔÞ6Ì-1ÖÐky,+Ö ¡kÀß'T'càLnž³èFDè‡>IäéB÷J9éPé4;õÓØüøt2Z?û¾Ùû¾Kû¾Zû¾^šþ”dBaÿUµéDas Audiogerät <b>%1</b> wurde aktiviert,<br/>da es gerade verfügbar und höher priorisiert ist.</html>xSwitching to the audio playback device %1
which just became available and has higher preference.Phonon::AudioOutputÌ<html>Das Audiogerät <b>%1</b> funktioniert nicht.<br/>Es wird stattdessen <b>%2</b> verwendet.</html>^The audio playback device %1 does not work.
Falling back to %2.Phonon::AudioOutput:Zurückschalten zum Gerät '%1'Revert back to device '%1'Phonon::AudioOutputAchtung: Die grundlegenden GStreamer-Plugins sind nicht installiert.ÿü Die Audio- und Video-Unterstützung steht nicht zur Verfügung.~Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabledPhonon::Gstreamer::BackendðAchtung: Das Paket gstreamer0.10-plugins-good ist nicht installiert. Einige Video-Funktionen stehen nicht zur Verfügung.„Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled.Phonon::Gstreamer::BackendEs sind nicht alle erforderlichen Codecs installiert. Um diesen Inhalt abzuspielen, muss der folgende Codec installiert werden: %0`A required codec is missing. You need to install the following codec(s) to play this content: %0Phonon::Gstreamer::MediaObject`Das Abspielen konnte nicht gestartet werden. Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass das Paket libgstreamer-plugins-base installiert ist.wCannot start playback. Check your GStreamer installation and make sure you have libgstreamer-plugins-base installed.Phonon::Gstreamer::MediaObject\Die Medienquelle konnte nicht gefunden werden.Could not decode media source.Phonon::Gstreamer::MediaObject\Die Medienquelle konnte nicht gefunden werden.Could not locate media source.Phonon::Gstreamer::MediaObject˜Das Audiogerät konnte nicht geöffnet werden, da es bereits in Benutzung ist.:Could not open audio device. The device is already in use.Phonon::Gstreamer::MediaObject\Die Medienquelle konnte nicht geöffnet werden.Could not open media source.Phonon::Gstreamer::MediaObject@Ungültiger Typ der Medienquelle.Invalid source type.Phonon::Gstreamer::MediaObject$Zugriff verweigert Access denied Phonon::MMF"Existiert bereitsAlready exists Phonon::MMFAudio-Ausgabe Audio Output Phonon::MMFxAudio- oder Videokomponenten konnten nicht abgespielt werden-Audio or video components could not be played Phonon::MMF0Fehler bei Audio-AusgabeAudio output error Phonon::MMFZEs konnte keine Verbindung hergestellt werdenCould not connect Phonon::MMFDRM-Fehler DRM error Phonon::MMF"Fehler im Decoder Decoder error Phonon::MMFGetrennt Disconnected Phonon::MMF*Bereits in VerwendungIn use Phonon::MMF.Unzureichende BandweiteInsufficient bandwidth Phonon::MMFUngültige URL Invalid URL Phonon::MMF(Ungültiges ProtokollInvalid protocol Phonon::MMF Multicast-FehlerMulticast error Phonon::MMF\Fehler bei der Kommunikation über das NetzwerkNetwork communication error Phonon::MMF0Netzwerk nicht verfügbarNetwork unavailable Phonon::MMFKein FehlerNo error Phonon::MMFNicht gefunden Not found Phonon::MMFNicht bereit Not ready Phonon::MMF"Nicht unterstützt Not supported Phonon::MMFFEs ist kein Speicher mehr verfügbar Out of memory Phonon::MMFÜberlaufOverflow Phonon::MMFBPfad konnte nicht gefunden werdenPath not found Phonon::MMF$Zugriff verweigertPermission denied Phonon::MMFJFehler bei Proxy-Server-KommunikationProxy server error Phonon::MMF<Proxy-Server nicht unterstütztProxy server not supported Phonon::MMFServer alert Server alert Phonon::MMF6Streaming nicht unterstütztStreaming not supported Phonon::MMF$Audio-AusgabegerätThe audio output device Phonon::MMFUnterlauf Underflow Phonon::MMF.Unbekannter Fehler (%1)Unknown error (%1) Phonon::MMF0Fehler bei Video-AusgabeVideo output error Phonon::MMFHDer URL konnte nicht geöffnet werdenError opening URL Phonon::MMF::AbstractMediaPlayerLDie Datei konnte nicht geöffnet werdenError opening file Phonon::MMF::AbstractMediaPlayer^Das Abspielen ist im Grundzustand nicht möglichNot ready to play Phonon::MMF::AbstractMediaPlayer"Abspielen beendetPlayback complete Phonon::MMF::AbstractMediaPlayer\Die Lautstärke konnte nicht eingestellt werdenSetting volume failed Phonon::MMF::AbstractMediaPlayerRDie Position konnte nicht bestimmt werdenGetting position failed Phonon::MMF::AbstractVideoPlayerJDer Clip konnte nicht geöffnet werdenOpening clip failed Phonon::MMF::AbstractVideoPlayer2Fehler bei Pause-Funktion Pause failed Phonon::MMF::AbstractVideoPlayer8Suchoperation fehlgeschlagen Seek failed Phonon::MMF::AbstractVideoPlayer %1 Hz%1 HzPhonon::MMF::AudioEqualizerRDie Position konnte nicht bestimmt werdenGetting position failedPhonon::MMF::AudioPlayer8Fehler bei der Video-AnzeigeVideo display errorPhonon::MMF::DsaVideoPlayerAktiviertEnabledPhonon::MMF::EffectFactoryDHochfrequenz-Abklingverhältnis (%)Decay HF ratio (%) Phonon::MMF::EnvironmentalReverb Abklingzeit (ms)Decay time (ms) Phonon::MMF::EnvironmentalReverbDichte (%) Density (%) Phonon::MMF::EnvironmentalReverbDiffusion (%) Diffusion (%) Phonon::MMF::EnvironmentalReverb4Verzögerung des Echos (ms)Reflections delay (ms) Phonon::MMF::EnvironmentalReverb*Stärke des Echos (mB)Reflections level (mB) Phonon::MMF::EnvironmentalReverb<Verzögerung des Nachhalls (ms)Reverb delay (ms) Phonon::MMF::EnvironmentalReverb2Stärke des Nachhalls (mB)Reverb level (mB) Phonon::MMF::EnvironmentalReverb8Hochfrequenz-Pegel des Raums Room HF level Phonon::MMF::EnvironmentalReverb(Pegel des Raums (mB)Room level (mB) Phonon::MMF::EnvironmentalReverb¦Die Quelle konnte nicht geöffnet werden: Der Medientyp konnte nicht bestimmt werden8Error opening source: media type could not be determinedPhonon::MMF::MediaObject”Die Quelle konnte nicht geöffnet werden: Dieser Typ wird nicht unterstützt(Error opening source: type not supportedPhonon::MMF::MediaObjectStärke (%) Level (%)Phonon::MMF::StereoWidening8Fehler bei der Video-AnzeigeVideo display errorPhonon::MMF::SurfaceVideoPlayerStummschaltungMutedPhonon::VolumeSliderìMit diesem Regler stellen Sie die Lautstärke ein. Die Position links entspricht 0%; die Position rechts entspricht %1%WUse this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%Phonon::VolumeSliderLautstärke: %1% Volume: %1%Phonon::VolumeSlider6%1, %2 sind nicht definiert%1, %2 not definedQ3Accel\Mehrdeutige %1 können nicht verarbeitet werdenAmbiguous %1 not handledQ3AccelLöschenDelete Q3DataTable FalschFalse Q3DataTableEinfügenInsert Q3DataTableWahrTrue Q3DataTableAktualisierenUpdate Q3DataTable%1 Datei kann nicht gefunden werden. Überprüfen Sie Pfad und Dateinamen.+%1 File not found. Check path and filename. Q3FileDialog&Löschen&Delete Q3FileDialog &Nein&No Q3FileDialog&OK&OK Q3FileDialog&Öffnen&Open Q3FileDialog&Umbenennen&Rename Q3FileDialogS&peichern&Save Q3FileDialog&Unsortiert &Unsorted Q3FileDialog&Ja&Yes Q3FileDialogv<qt>Sind Sie sicher, dass Sie %1 "%2" löschen möchten?</qt>1Are you sure you wish to delete %1 "%2"? Q3FileDialog Alle Dateien (*) All Files (*) Q3FileDialog$Alle Dateien (*.*)All Files (*.*) Q3FileDialogAttribute Attributes Q3FileDialog ZurückBack Q3FileDialogAbbrechenCancel Q3FileDialog>Datei kopieren oder verschiebenCopy or Move a File Q3FileDialog,Neuen Ordner erstellenCreate New Folder Q3FileDialog DatumDate Q3FileDialog%1 löschen Delete %1 Q3FileDialogAusführlich Detail View Q3FileDialogVerzeichnisDir Q3FileDialogVerzeichnisse Directories Q3FileDialogVerzeichnis: Directory: Q3FileDialog FehlerError Q3FileDialog DateiFile Q3FileDialogDatei&name: File &name: Q3FileDialogDatei&typ: File &type: Q3FileDialog$Verzeichnis suchenFind Directory Q3FileDialogGesperrt Inaccessible Q3FileDialog Liste List View Q3FileDialogSu&chen in: Look &in: Q3FileDialogNameName Q3FileDialog"Neues Verzeichnis New Folder Q3FileDialog(Neues Verzeichnis %1 New Folder %1 Q3FileDialog&Neues Verzeichnis 1 New Folder 1 Q3FileDialog,Ein Verzeichnis zurückOne directory up Q3FileDialog ÖffnenOpen Q3FileDialog ÖffnenOpen  Q3FileDialog4Vorschau des Datei-InhaltsPreview File Contents Q3FileDialog@Vorschau der Datei-InformationenPreview File Info Q3FileDialogErne&ut ladenR&eload Q3FileDialogNur Lesen Read-only Q3FileDialogLesen/Schreiben Read-write Q3FileDialogLesen: %1Read: %1 Q3FileDialogSpeichern unterSave As Q3FileDialog4Wählen Sie ein VerzeichnisSelect a Directory Q3FileDialog8&Versteckte Dateien anzeigenShow &hidden files Q3FileDialog GrößeSize Q3FileDialogSortierenSort Q3FileDialog*Nach &Datum sortieren Sort by &Date Q3FileDialog*Nach &Namen sortieren Sort by &Name Q3FileDialog*Nach &Größe sortieren Sort by &Size Q3FileDialogSpezialattributSpecial Q3FileDialog6Verknüpfung mit VerzeichnisSymlink to Directory Q3FileDialog*Verknüpfung mit DateiSymlink to File Q3FileDialog8Verknüpfung mit SpezialdateiSymlink to Special Q3FileDialogTypType Q3FileDialogNur Schreiben Write-only Q3FileDialogSchreiben: %1 Write: %1 Q3FileDialogdas Verzeichnis the directory Q3FileDialogdie Dateithe file Q3FileDialogdie Verknüpfung the symlink Q3FileDialogJKonnte Verzeichnis nicht erstellen %1Could not create directory %1 Q3LocalFs@Konnte nicht geöffnet werden: %1Could not open %1 Q3LocalFsBKonnte Verzeichnis nicht lesen %1Could not read directory %1 Q3LocalFs\Konnte Datei oder Verzeichnis nicht löschen %1%Could not remove file or directory %1 Q3LocalFsRKonnte nicht umbenannt werden: %1 nach %2Could not rename %1 to %2 Q3LocalFsFKonnte nicht geschrieben werden: %1Could not write %1 Q3LocalFsAnpassen... Customize... Q3MainWindowAusrichtenLine up Q3MainWindowBOperation von Benutzer angehaltenOperation stopped by the userQ3NetworkProtocolAbbrechenCancelQ3ProgressDialogAnwendenApply Q3TabDialogAbbrechenCancel Q3TabDialog VoreinstellungenDefaults Q3TabDialog HilfeHelp Q3TabDialogOKOK Q3TabDialog&Kopieren&Copy Q3TextEditEinf&ügen&Paste Q3TextEdit"Wieder&herstellen&Redo Q3TextEdit&Rückgängig&Undo Q3TextEditLöschenClear Q3TextEdit&AusschneidenCu&t Q3TextEditAlles auswählen Select All Q3TextEditSchließenClose Q3TitleBar(Schließt das FensterCloses the window Q3TitleBarVEnthält Befehle zum Ändern der Fenstergröße*Contains commands to manipulate the window Q3TitleBarvZeigt den Namen des Fensters und enthält Befehle zum ÄndernFDisplays the name of the window and contains controls to manipulate it Q3TitleBarVollbildmodusMakes the window full screen Q3TitleBarMaximierenMaximize Q3TitleBarMinimierenMinimize Q3TitleBar*Minimiert das FensterMoves the window out of the way Q3TitleBarRStellt ein maximiertes Fenster wieder her&Puts a maximized window back to normal Q3TitleBarRStellt ein minimiertes Fenster wieder her&Puts a minimized window back to normal Q3TitleBar Wiederherstellen Restore down Q3TitleBar Wiederherstellen Restore up Q3TitleBar SystemSystem Q3TitleBarMehr...More... Q3ToolBar(unbekannt) (unknown) Q3UrlOperatorÄDas Protokoll `%1' unterstützt nicht das Kopieren oder Verschieben von Dateien oder VerzeichnissenIThe protocol `%1' does not support copying or moving files or directories Q3UrlOperatorˆDas Protokoll `%1' unterstützt nicht das Anlegen neuer Verzeichnisse;The protocol `%1' does not support creating new directories Q3UrlOperatortDas Protokoll `%1' unterstützt nicht das Laden von Dateien0The protocol `%1' does not support getting files Q3UrlOperatorŠDas Protokoll `%1' unterstützt nicht das Auflisten von Verzeichnissen6The protocol `%1' does not support listing directories Q3UrlOperator|Das Protokoll `%1' unterstützt nicht das Speichern von Dateien0The protocol `%1' does not support putting files Q3UrlOperator Das Protokoll `%1' unterstützt nicht das Löschen von Dateien oder Verzeichnissen@The protocol `%1' does not support removing files or directories Q3UrlOperator¦Das Protokoll `%1' unterstützt nicht das Umbenennen von Dateien oder Verzeichnissen@The protocol `%1' does not support renaming files or directories Q3UrlOperatorRDas Protokoll `%1' wird nicht unterstützt"The protocol `%1' is not supported Q3UrlOperator&Abbrechen&CancelQ3WizardAb&schließen&FinishQ3Wizard &Hilfe&HelpQ3Wizard&Weiter >&Next >Q3Wizard< &Zurück< &BackQ3Wizard*Verbindung verweigertConnection refusedQAbstractSockethDas Zeitlimit für die Verbindung wurde überschrittenConnection timed outQAbstractSocketHRechner konnte nicht gefunden werdenHost not foundQAbstractSocketBDas Netzwerk ist nicht erreichbarNetwork unreachableQAbstractSocketZDiese Socket-Operation wird nicht unterstützt$Operation on socket is not supportedQAbstractSocketNicht verbundenSocket is not connectedQAbstractSocketfDas Zeitlimit für die Operation wurde überschrittenSocket operation timed outQAbstractSocket &Alles auswählen &Select AllQAbstractSpinBox&Inkrementieren&Step upQAbstractSpinBox&Dekrementieren Step &downQAbstractSpinBoxDrückenPressQAccessibleButtonAktivierenActivate QApplicationPAktiviert das Hauptfenster der Anwendung#Activates the program's main window QApplication€Die Anwendung '%1' benötigt Qt %2; es wurde aber Qt %3 gefunden.,Executable '%1' requires Qt %2, found Qt %3. QApplicationDDie Qt-Bibliothek ist inkompatibelIncompatible Qt Library Error QApplicationLTRQT_LAYOUT_DIRECTION QApplication&Abbrechen&Cancel QAxSelectCOM-&Objekt: COM &Object: QAxSelectOKOK QAxSelect2ActiveX-Element auswählenSelect ActiveX Control QAxSelectAnkreuzenCheck QCheckBoxUmschaltenToggle QCheckBoxLöschenUncheck QCheckBoxRZu benutzerdefinierten Farben &hinzufügen&Add to Custom Colors QColorDialogGrundfar&ben &Basic colors QColorDialog4&Benutzerdefinierte Farben&Custom colors QColorDialog &Grün:&Green: QColorDialog &Rot:&Red: QColorDialog&Sättigung:&Sat: QColorDialog&Helligkeit:&Val: QColorDialogA&lphakanal:A&lpha channel: QColorDialog Bla&u:Bl&ue: QColorDialogFarb&ton:Hu&e: QColorDialogFarbauswahl Select Color QColorDialogSchließenClose QComboBox FalschFalse QComboBox ÖffnenOpen QComboBoxWahrTrue QComboBox*%1: existiert bereits%1: already existsQCoreApplication$%1: Nicht existent%1: does not existQCoreApplication6%1: ftok-Aufruf schlug fehl%1: ftok failedQCoreApplicationH%1: Ungültige Schlüsselangabe (leer)%1: key is emptyQCoreApplicationF%1: Keine Ressourcen mehr verfügbar%1: out of resourcesQCoreApplicationR%1: Es kann kein Schlüssel erzeugt werden%1: unable to make keyQCoreApplication2%1: Unbekannter Fehler %2%1: unknown error %2QCoreApplication¤Die Transaktion kann nicht durchgeführt werden (Operation 'commit' fehlgeschlagen)Unable to commit transaction QDB2DriverREs kann keine Verbindung aufgebaut werdenUnable to connect QDB2Driver´Die Transaktion kann nicht rückgängig gemacht werden (Operation 'rollback' fehlgeschlagen)Unable to rollback transaction QDB2DriverP'autocommit' kann nicht aktiviert werdenUnable to set autocommit QDB2DriverNDie Variable kann nicht gebunden werdenUnable to bind variable QDB2ResultNDer Befehl kann nicht ausgeführt werdenUnable to execute statement QDB2Result\Der erste Datensatz kann nicht abgeholt werdenUnable to fetch first QDB2Result`Der nächste Datensatz kann nicht abgeholt werdenUnable to fetch next QDB2ResultVDer Datensatz %1 kann nicht abgeholt werdenUnable to fetch record %1 QDB2ResultTDer Befehl kann nicht initialisiert werdenUnable to prepare statement QDB2ResultAMAM QDateTimeEditPMPM QDateTimeEditamam QDateTimeEditpmpm QDateTimeEdit QDialQDialQDialSchieberegler SliderHandleQDialTachometer SpeedoMeterQDial FertigDoneQDialogDirekthilfe What's This?QDialog&Abbrechen&CancelQDialogButtonBoxSchl&ießen&CloseQDialogButtonBox &Nein&NoQDialogButtonBox&OK&OKQDialogButtonBoxS&peichern&SaveQDialogButtonBox&Ja&YesQDialogButtonBoxAbbrechenAbortQDialogButtonBoxAnwendenApplyQDialogButtonBoxAbbrechenCancelQDialogButtonBoxSchließenCloseQDialogButtonBox0Schließen ohne SpeichernClose without SavingQDialogButtonBoxVerwerfenDiscardQDialogButtonBoxNicht speichern Don't SaveQDialogButtonBox HilfeHelpQDialogButtonBoxIgnorierenIgnoreQDialogButtonBoxN&ein, keine N&o to AllQDialogButtonBoxOKOKQDialogButtonBox ÖffnenOpenQDialogButtonBoxZurücksetzenResetQDialogButtonBox VoreinstellungenRestore DefaultsQDialogButtonBoxWiederholenRetryQDialogButtonBoxSpeichernSaveQDialogButtonBoxAlles speichernSave AllQDialogButtonBoxJa, &alle Yes to &AllQDialogButtonBoxÄnderungsdatum Date Modified QDirModelArtKind QDirModelNameName QDirModel GrößeSize QDirModelTypType QDirModelSchließenClose QDockWidgetAndockenDock QDockWidgetHerauslösenFloat QDockWidgetWenigerLessQDoubleSpinBoxMehrMoreQDoubleSpinBox&OK&OK QErrorMessage<Diese Meldung wieder an&zeigen&Show this message again QErrorMessageDebug-Ausgabe:Debug Message: QErrorMessageFehler: Fatal Error: QErrorMessageAchtung:Warning: QErrorMessage:%1 kann nicht erstellt werdenCannot create %1 for outputQFileN%1 kann nicht zum Lesen geöffnet werdenCannot open %1 for inputQFileVDas Öffnen zum Schreiben ist fehlgeschlagenCannot open for outputQFileRDie Quelldatei kann nicht entfernt werdenCannot remove source fileQFile>Die Zieldatei existiert bereitsDestination file existsQFile\Der Datenblock konnte nicht geschrieben werdenFailure to write blockQFileœEine sequentielle Datei kann nicht durch blockweises Kopieren umbenannt werden0Will not rename sequential file using block copyQFileÔ%1 Das Verzeichnis konnte nicht gefunden werden. Stellen Sie sicher, dass der Verzeichnisname richtig ist.K%1 Directory not found. Please verify the correct directory name was given. QFileDialog¼%1 Die Datei konnte nicht gefunden werden. Stellen Sie sicher, dass der Dateiname richtig ist.A%1 File not found. Please verify the correct file name was given. QFileDialog|Die Datei %1 existiert bereits. Soll sie überschrieben werden?-%1 already exists. Do you want to replace it? QFileDialog&Auswählen&Choose QFileDialog&Löschen&Delete QFileDialog$&Neues Verzeichnis &New Folder QFileDialog&Öffnen&Open QFileDialog&Umbenennen&Rename QFileDialogS&peichern&Save QFileDialog„'%1' ist schreibgeschützt. Möchten Sie die Datei trotzdem löschen?9'%1' is write protected. Do you want to delete it anyway? QFileDialog AliasAlias QFileDialog Alle Dateien (*) All Files (*) QFileDialog$Alle Dateien (*.*)All Files (*.*) QFileDialog^Sind Sie sicher, dass Sie '%1' löschen möchten?!Are sure you want to delete '%1'? QFileDialog ZurückBack QFileDialogBKonnte Verzeichnis nicht löschen.Could not delete directory. QFileDialog,Neuen Ordner erstellenCreate New Folder QFileDialogDetails Detail View QFileDialogVerzeichnisse Directories QFileDialogVerzeichnis: Directory: QFileDialogLaufwerkDrive QFileDialog DateiFile QFileDialogDatei&name: File &name: QFileDialog Ordner File Folder QFileDialog"Dateien des Typs:Files of type: QFileDialog$Verzeichnis suchenFind Directory QFileDialog OrderFolder QFileDialogVorwärtsForward QFileDialog Liste List View QFileDialogSuchen in:Look in: QFileDialogMein Computer My Computer QFileDialog"Neues Verzeichnis New Folder QFileDialog ÖffnenOpen QFileDialog4Übergeordnetes VerzeichnisParent Directory QFileDialogZuletzt besucht Recent Places QFileDialogLöschenRemove QFileDialogSpeichern unterSave As QFileDialog"Symbolischer LinkShortcut QFileDialogAnzeigen Show  QFileDialog8&Versteckte Dateien anzeigenShow &hidden files QFileDialogUnbekanntUnknown QFileDialog %1 GB%1 GBQFileSystemModel %1 KB%1 KBQFileSystemModel %1 MB%1 MBQFileSystemModel %1 TB%1 TBQFileSystemModel%1 byte %1 byte(s)QFileSystemModel%1 Byte%1 bytesQFileSystemModel<b>Der Name "%1" kann nicht verwendet werden.</b><p>Versuchen Sie, die Sonderzeichen zu entfernen oder einen kürzeren Namen zu verwenden.oThe name "%1" can not be used.

Try using another name, with fewer characters or no punctuations marks.QFileSystemModelComputerComputerQFileSystemModelÄnderungsdatum Date ModifiedQFileSystemModel(Ungültiger DateinameInvalid filenameQFileSystemModelArtKindQFileSystemModelMein Computer My ComputerQFileSystemModelNameNameQFileSystemModel GrößeSizeQFileSystemModelTypTypeQFileSystemModelAlleAny QFontDatabaseArabischArabic QFontDatabaseArmenischArmenian QFontDatabaseBengalischBengali QFontDatabaseSchwarzBlack QFontDatabaseFettBold QFontDatabaseKyrillischCyrillic QFontDatabaseSemiDemi QFontDatabaseHalbfett Demi Bold QFontDatabaseDevanagari Devanagari QFontDatabaseGeorgischGeorgian QFontDatabaseGriechischGreek QFontDatabaseGujaratiGujarati QFontDatabaseGurmukhiGurmukhi QFontDatabaseHebräischHebrew QFontDatabase KursivItalic QFontDatabaseJapanischJapanese QFontDatabaseKannadaKannada QFontDatabase KhmerKhmer QFontDatabaseKoreanischKorean QFontDatabaseLaotischLao QFontDatabaseLateinischLatin QFontDatabase LeichtLight QFontDatabaseMalayalam Malayalam QFontDatabaseMyanmarMyanmar QFontDatabaseN'KoN'Ko QFontDatabase NormalNormal QFontDatabaseSchräggestelltOblique QFontDatabase OghamOgham QFontDatabase OriyaOriya QFontDatabase RunenRunic QFontDatabase0Chinesisch (Kurzzeichen)Simplified Chinese QFontDatabaseSinhalaSinhala QFontDatabase SymbolSymbol QFontDatabaseSyrischSyriac QFontDatabaseTamilischTamil QFontDatabase TeluguTelugu QFontDatabase ThaanaThaana QFontDatabaseThailändischThai QFontDatabaseTibetischTibetan QFontDatabase0Chinesisch (Langzeichen)Traditional Chinese QFontDatabaseVietnamesisch Vietnamese QFontDatabase&Schriftart&Font QFontDialog &Größe&Size QFontDialog&Unterstrichen &Underline QFontDialogEffekteEffects QFontDialogSchrifts&til Font st&yle QFontDialogBeispielSample QFontDialog(Schriftart auswählen Select Font QFontDialog Durch&gestrichen Stri&keout QFontDialog&SchriftsystemWr&iting System QFontDialogRÄndern des Verzeichnisses schlug fehl: %1Changing directory failed: %1QFtp<Verbindung mit Rechner bestehtConnected to hostQFtp0Verbunden mit Rechner %1Connected to host %1QFtpLVerbindung mit Rechner schlug fehl: %1Connecting to host failed: %1QFtp$Verbindung beendetConnection closedQFtp\Verbindung für die Daten Verbindung verweigert&Connection refused for data connectionQFtp8Verbindung mit %1 verweigertConnection refused to host %1QFtpxDas Zeitlimit für die Verbindung zu '%1' wurde überschrittenConnection timed out to host %1QFtp2Verbindung mit %1 beendetConnection to %1 closedQFtpXErstellen des Verzeichnisses schlug fehl: %1Creating directory failed: %1QFtpNHerunterladen der Datei schlug fehl: %1Downloading file failed: %1QFtp&Rechner %1 gefunden Host %1 foundQFtpNRechner %1 konnte nicht gefunden werdenHost %1 not foundQFtp Rechner gefunden Host foundQFtpzDer Inhalt des Verzeichnisses kann nicht angezeigt werden: %1Listing directory failed: %1QFtp2Anmeldung schlug fehl: %1Login failed: %1QFtp Keine Verbindung Not connectedQFtpTLöschen des Verzeichnisses schlug fehl: %1Removing directory failed: %1QFtpBLöschen der Datei schlug fehl: %1Removing file failed: %1QFtp$Unbekannter Fehler Unknown errorQFtpFHochladen der Datei schlug fehl: %1Uploading file failed: %1QFtp$Unbekannter Fehler Unknown error QHostInfoHRechner konnte nicht gefunden werdenHost not foundQHostInfoAgent,Ungültiger RechnernameInvalid hostnameQHostInfoAgent@Es wurde kein Hostname angegebenNo host name givenQHostInfoAgent*Unbekannter AdresstypUnknown address typeQHostInfoAgent$Unbekannter Fehler Unknown errorQHostInfoAgent<Authentifizierung erforderlichAuthentication requiredQHttp<Verbindung mit Rechner bestehtConnected to hostQHttp0Verbunden mit Rechner %1Connected to host %1QHttp$Verbindung beendetConnection closedQHttp*Verbindung verweigertConnection refusedQHttpdVerbindung verweigert oder Zeitlimit überschritten!Connection refused (or timed out)QHttp2Verbindung mit %1 beendetConnection to %1 closedQHttp2Die Daten sind verfälschtData corruptedQHttp”Beim Schreiben der Antwort auf das Ausgabegerät ist ein Fehler aufgetreten Error writing response to deviceQHttp6HTTP-Anfrage fehlgeschlagenHTTP request failedQHttpÎDie angeforderte HTTPS-Verbindung kann nicht aufgebaut werden, da keine SSL-Unterstützung vorhanden ist:HTTPS connection requested but SSL support not compiled inQHttp&Rechner %1 gefunden Host %1 foundQHttpNRechner %1 konnte nicht gefunden werdenHost %1 not foundQHttp Rechner gefunden Host foundQHttp^Der Hostrechner verlangt eine AuthentifizierungHost requires authenticationQHttpnDer Inhalt (chunked body) der HTTP-Antwort ist ungültigInvalid HTTP chunked bodyQHttpTDer Kopfteil der HTTP-Antwort ist ungültigInvalid HTTP response headerQHttplFür die Verbindung wurde kein Server-Rechner angegebenNo server set to connect toQHttpHProxy-Authentifizierung erforderlichProxy authentication requiredQHttp`Der Proxy-Server verlangt eine AuthentifizierungProxy requires authenticationQHttp2Anfrage wurde abgebrochenRequest abortedQHttppIm Ablauf des SSL-Protokolls ist ein Fehler aufgetreten.SSL handshake failedQHttphDer Server hat die Verbindung unerwartet geschlossen%Server closed connection unexpectedlyQHttpHUnbekannte AuthentifizierungsmethodeUnknown authentication methodQHttp$Unbekannter Fehler Unknown errorQHttpXEs wurde ein unbekanntes Protokoll angegebenUnknown protocol specifiedQHttp,Ungültige LängenangabeWrong content lengthQHttp<Authentifizierung erforderlichAuthentication requiredQHttpSocketEngineFKeine HTTP-Antwort vom Proxy-Server(Did not receive HTTP response from proxyQHttpSocketEnginebFehler bei der Kommunikation mit dem Proxy-Server#Error communicating with HTTP proxyQHttpSocketEngine’Fehler beim Auswerten der Authentifizierungsanforderung des Proxy-Servers/Error parsing authentication request from proxyQHttpSocketEnginejDer Proxy-Server hat die Verbindung vorzeitig beendet#Proxy connection closed prematurelyQHttpSocketEnginevDer Proxy-Server hat den Aufbau einer Verbindung verweigertProxy connection refusedQHttpSocketEnginevDer Proxy-Server hat den Aufbau einer Verbindung verweigertProxy denied connectionQHttpSocketEngine’Bei der Verbindung mit dem Proxy-Server wurde ein Zeitlimit überschritten!Proxy server connection timed outQHttpSocketEngineVEs konnte kein Proxy-Server gefunden werdenProxy server not foundQHttpSocketEngineXEs konnte keine Transaktion gestartet werdenCould not start transaction QIBaseDriverhDie Datenbankverbindung konnte nicht geöffnet werdenError opening database QIBaseDriver¨Die Transaktion konnte nicht durchgeführt werden (Operation 'commit' fehlgeschlagen)Unable to commit transaction QIBaseDriver¸Die Transaktion konnte nicht rückgängig gemacht werden (Operation 'rollback' fehlgeschlagen)Unable to rollback transaction QIBaseDriverLDie Allokation des Befehls schlug fehlCould not allocate statement QIBaseResult~Es konnte keine Beschreibung des Eingabebefehls erhalten werden"Could not describe input statement QIBaseResultpEs konnte keine Beschreibung des Befehls erhalten werdenCould not describe statement QIBaseResult`Das nächste Element konnte nicht abgeholt werdenCould not fetch next item QIBaseResultJDas Feld konnte nicht gefunden werdenCould not find array QIBaseResultbDie Daten des Feldes konnten nicht gelesen werdenCould not get array data QIBaseResult‚Die erforderlichen Informationen zur Abfrage sind nicht verfügbarCould not get query info QIBaseResultZEs ist keine Information zum Befehl verfügbarCould not get statement info QIBaseResultVDer Befehl konnte nicht initalisiert werdenCould not prepare statement QIBaseResultXEs konnte keine Transaktion gestartet werdenCould not start transaction QIBaseResultTDer Befehl konnte nicht geschlossen werdenUnable to close statement QIBaseResult¨Die Transaktion konnte nicht durchgeführt werden (Operation 'commit' fehlgeschlagen)Unable to commit transaction QIBaseResultDEs konnte kein BLOB erzeugt werdenUnable to create BLOB QIBaseResultRDer Befehl konnte nicht ausgeführt werdenUnable to execute query QIBaseResultJDer BLOB konnte nicht geöffnet werdenUnable to open BLOB QIBaseResultHDer BLOB konnte nicht gelesen werdenUnable to read BLOB QIBaseResultPDer BLOB konnte nicht geschrieben werdenUnable to write BLOB QIBaseResultbKein freier Speicherplatz auf dem Gerät vorhandenNo space left on device QIODevicevDie Datei oder das Verzeichnis konnte nicht gefunden werdenNo such file or directory QIODevice$Zugriff verweigertPermission denied QIODevice2Zu viele Dateien geöffnetToo many open files QIODevice$Unbekannter Fehler Unknown error QIODeviceFEPFEP QInputContext.Mac OS X-EingabemethodeMac OS X input method QInputContext,S60-FEP-EingabemethodeS60 FEP input method QInputContext,Windows-EingabemethodeWindows input method QInputContextXIMXIM QInputContext$XIM-EingabemethodeXIM input method QInputContext2Geben Sie einen Wert ein:Enter a value: QInputDialog^Die Bibliothek %1 kann nicht geladen werden: %2Cannot load library %1: %2QLibraryjDas Symbol "%1" kann in %2 nicht aufgelöst werden: %3$Cannot resolve symbol "%1" in %2: %3QLibrary`Die Bibliothek %1 kann nicht entladen werden: %2Cannot unload library %1: %2QLibraryTOperation mmap fehlgeschlagen für '%1': %2Could not mmap '%1': %2QLibraryVOperation unmap fehlgeschlagen für '%1': %2Could not unmap '%1': %2QLibraryhDie Prüfdaten des Plugins '%1' stimmen nicht überein)Plugin verification data mismatch in '%1'QLibraryVDie Datei '%1' ist kein gültiges Qt-Plugin.'The file '%1' is not a valid Qt plugin.QLibrary”Das Plugin '%1' verwendet eine inkompatible Qt-Bibliothek. (%2.%3.%4) [%5]=The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]QLibrary0Das Plugin '%1' verwendet eine inkompatible Qt-Bibliothek. (Im Debug- bzw. Release-Modus erstellte Bibliotheken können nicht zusammen verwendet werden.)WThe plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)QLibraryôDas Plugin '%1' verwendet eine inkompatible Qt-Bibliothek. Erforderlicher build-spezifischer Schlüssel "%2", erhalten "%3"OThe plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"QLibrarynDie dynamische Bibliothek konnte nicht gefunden werden.!The shared library was not found.QLibrary$Unbekannter Fehler Unknown errorQLibrary&Kopieren&Copy QLineEditEinf&ügen&Paste QLineEdit"Wieder&herstellen&Redo QLineEdit&Rückgängig&Undo QLineEdit&AusschneidenCu&t QLineEditLöschenDelete QLineEditAlles auswählen Select All QLineEditL%1: Die Adresse wird bereits verwendet%1: Address in use QLocalServer*%1: Fehlerhafter Name%1: Name error QLocalServer,%1: Zugriff verweigert%1: Permission denied QLocalServer2%1: Unbekannter Fehler %2%1: Unknown error %2 QLocalServer*%1: Verbindungsfehler%1: Connection error QLocalSocketT%1: Der Verbindungsaufbau wurde verweigert%1: Connection refused QLocalSocket:%1: Das Datagramm ist zu groß%1: Datagram too large QLocalSocket&%1: Ungültiger Name%1: Invalid name QLocalSocketn%1: Die Verbindung wurde von der Gegenseite geschlossen%1: Remote closed QLocalSocketL%1: Fehler beim Zugriff auf den Socket%1: Socket access error QLocalSocketV%1: Zeitüberschreitung bei Socket-Operation%1: Socket operation timed out QLocalSocketJ%1: Socket-Fehler (Ressourcenproblem)%1: Socket resource error QLocalSocketb%1: Diese Socket-Operation wird nicht unterstützt)%1: The socket operation is not supported QLocalSocket,%1: Unbekannter Fehler%1: Unknown error QLocalSocket2%1: Unbekannter Fehler %2%1: Unknown error %2 QLocalSocketTEs kann keine Transaktion gestartet werdenUnable to begin transaction QMYSQLDriver¤Die Transaktion kann nicht durchgeführt werden (Operation 'commit' fehlgeschlagen)Unable to commit transaction QMYSQLDriverREs kann keine Verbindung aufgebaut werdenUnable to connect QMYSQLDriverhDie Datenbankverbindung kann nicht geöffnet werden 'Unable to open database ' QMYSQLDriver´Die Transaktion kann nicht rückgängig gemacht werden (Operation 'rollback' fehlgeschlagen)Unable to rollback transaction QMYSQLDriver\Die Ausgabewerte konnten nicht gebunden werdenUnable to bind outvalues QMYSQLResultJDer Wert konnte nicht gebunden werdenUnable to bind value QMYSQLResultbDie folgende Abfrage kann nicht ausgeführt werdenUnable to execute next query QMYSQLResultTDie Abfrage konnte nicht ausgeführt werdenUnable to execute query QMYSQLResultRDer Befehl konnte nicht ausgeführt werdenUnable to execute statement QMYSQLResultLEs konnten keine Daten abgeholt werdenUnable to fetch data QMYSQLResultXDer Befehl konnte nicht initialisiert werdenUnable to prepare statement QMYSQLResultXDer Befehl konnte nicht zurückgesetzt werdenUnable to reset statement QMYSQLResultfDas folgende Ergebnis kann nicht gespeichert werdenUnable to store next result QMYSQLResultXDas Ergebnis konnte nicht gespeichert werdenUnable to store result QMYSQLResultvDie Ergebnisse des Befehls konnten nicht gespeichert werden!Unable to store statement results QMYSQLResult(Unbenannt) (Untitled)QMdiArea%1 - [%2] %1 - [%2] QMdiSubWindowSchl&ießen&Close QMdiSubWindowVer&schieben&Move QMdiSubWindow"Wieder&herstellen&Restore QMdiSubWindowGröße ä&ndern&Size QMdiSubWindow - [%1]- [%1] QMdiSubWindowSchließenClose QMdiSubWindow HilfeHelp QMdiSubWindowMa&ximieren Ma&ximize QMdiSubWindowMaximierenMaximize QMdiSubWindowMenüMenu QMdiSubWindowM&inimieren Mi&nimize QMdiSubWindowMinimierenMinimize QMdiSubWindow WiederherstellenRestore QMdiSubWindow Wiederherstellen Restore Down QMdiSubWindowAufrollenShade QMdiSubWindow.Im &Vordergrund bleiben Stay on &Top QMdiSubWindowHerabrollenUnshade QMdiSubWindowSchließenCloseQMenuAusführenExecuteQMenu ÖffnenOpenQMenuOptionenActionsQMenuBarÜber QtAbout Qt QMessageBox HilfeHelp QMessageBox*Details ausblenden...Hide Details... QMessageBoxOKOK QMessageBox*Details einblenden...Show Details... QMessageBox0Eingabemethode auswählen Select IMQMultiInputContext<Umschalter für EingabemethodenMultiple input method switcherQMultiInputContextPlugin¬Mehrfachumschalter für Eingabemethoden, der das Kontextmenü des Text-Widgets verwendetMMultiple input method switcher that uses the context menu of the text widgetsQMultiInputContextPlugin^Auf diesem Port hört bereits ein anderer Socket4Another socket is already listening on the same portQNativeSocketEngine´Es wurde versucht, einen IPv6-Socket auf einem System ohne IPv6-Unterstützung zu verwenden=Attempt to use IPv6 socket on a platform with no IPv6 supportQNativeSocketEngine*Verbindung verweigertConnection refusedQNativeSocketEnginehDas Zeitlimit für die Verbindung wurde überschrittenConnection timed outQNativeSocketEngine|Das Datagram konnte nicht gesendet werden, weil es zu groß istDatagram was too large to sendQNativeSocketEngineTDer Zielrechner kann nicht erreicht werdenHost unreachableQNativeSocketEngine8Ungültiger Socket-DeskriptorInvalid socket descriptorQNativeSocketEngineNetzwerkfehler Network errorQNativeSocketEnginefDas Zeitlimit für die Operation wurde überschrittenNetwork operation timed outQNativeSocketEngineBDas Netzwerk ist nicht erreichbarNetwork unreachableQNativeSocketEnginehOperation kann nur auf einen Socket angewandt werdenOperation on non-socketQNativeSocketEngine4Keine Ressourcen verfügbarOut of resourcesQNativeSocketEngine$Zugriff verweigertPermission deniedQNativeSocketEngineHDas Protokoll wird nicht unterstütztProtocol type not supportedQNativeSocketEngine>Die Adresse ist nicht verfügbarThe address is not availableQNativeSocketEngine2Die Adresse ist geschütztThe address is protectedQNativeSocketEngine\Die angegebene Adresse ist bereits in Gebrauch#The bound address is already in useQNativeSocketEngine|Die Operation kann mit dem Proxy-Typ nicht durchgeführt werden,The proxy type is invalid for this operationQNativeSocketEnginehDer entfernte Rechner hat die Verbindung geschlossen%The remote host closed the connectionQNativeSocketEnginelDer Broadcast-Socket konnte nicht initialisiert werden%Unable to initialize broadcast socketQNativeSocketEngine|Der nichtblockierende Socket konnte nicht initialisiert werden(Unable to initialize non-blocking socketQNativeSocketEngineVDie Nachricht konnte nicht empfangen werdenUnable to receive a messageQNativeSocketEngineTDie Nachricht konnte nicht gesendet werdenUnable to send a messageQNativeSocketEnginebDer Schreibvorgang konnte nicht ausgeführt werdenUnable to writeQNativeSocketEngine$Unbekannter Fehler Unknown errorQNativeSocketEngineDNichtunterstütztes Socket-KommandoUnsupported socket operationQNativeSocketEngine>%1 konnte nicht geöffnet werdenError opening %1QNetworkAccessCacheBackend>Fehler beim Schreiben zu %1: %2Write error writing to %1: %2QNetworkAccessDebugPipeBackendˆ%1 kann nicht geöffnet werden: Der Pfad spezifiziert ein Verzeichnis#Cannot open %1: Path is a directoryQNetworkAccessFileBackendF%1 konnte nicht geöffnet werden: %2Error opening %1: %2QNetworkAccessFileBackendfBeim Lesen von der Datei %1 trat ein Fehler auf: %2Read error reading from %1: %2QNetworkAccessFileBackendfAnforderung zum Öffnen einer Datei über Netzwerk %1%Request for opening non-local file %1QNetworkAccessFileBackendLFehler beim Schreiben zur Datei %1: %2Write error writing to %1: %2QNetworkAccessFileBackend‚%1 kann nicht geöffnet werden: Es handelt sich um ein VerzeichnisCannot open %1: is a directoryQNetworkAccessFtpBackendbBeim Herunterladen von %1 trat ein Fehler auf: %2Error while downloading %1: %2QNetworkAccessFtpBackendZBeim Hochladen von %1 trat ein Fehler auf: %2Error while uploading %1: %2QNetworkAccessFtpBackend˜Die Anmeldung bei %1 schlug fehl: Es ist eine Authentifizierung erforderlich0Logging in to %1 failed: authentication requiredQNetworkAccessFtpBackendlEs konnte kein geeigneter Proxy-Server gefunden werdenNo suitable proxy foundQNetworkAccessFtpBackendlEs konnte kein geeigneter Proxy-Server gefunden werdenNo suitable proxy foundQNetworkAccessHttpBackendžBeim Herunterladen von %1 trat ein Fehler auf - Die Antwort des Servers ist: %2)Error downloading %1 - server replied: %2 QNetworkReply@Das Protokoll "%1" ist unbekanntProtocol "%1" is unknown QNetworkReply*Operation abgebrochenOperation canceledQNetworkReplyImplXEs konnte keine Transaktion gestartet werdenUnable to begin transaction QOCIDriver¨Die Transaktion konnte nicht durchgeführt werden (Operation 'commit' fehlgeschlagen)Unable to commit transaction QOCIDriver<Initialisierung fehlgeschlagenUnable to initialize QOCIDriver8Logon-Vorgang fehlgeschlagenUnable to logon QOCIDriver¸Die Transaktion konnte nicht rückgängig gemacht werden (Operation 'rollback' fehlgeschlagen)Unable to rollback transaction QOCIDriverLDie Allokation des Befehls schlug fehlUnable to alloc statement QOCIResult”Die Spalte konnte nicht für den Stapelverarbeitungs-Befehl gebunden werden'Unable to bind column for batch execute QOCIResultJDer Wert konnte nicht gebunden werdenUnable to bind value QOCIResultzDer Stapelverarbeitungs-Befehl konnte nicht ausgeführt werden!Unable to execute batch statement QOCIResultRDer Befehl konnte nicht ausgeführt werdenUnable to execute statement QOCIResultXDer Anweisungstyp kann nicht bestimmt werdenUnable to get statement type QOCIResultJKann nicht zum nächsten Element gehenUnable to goto next QOCIResultXDer Befehl konnte nicht initialisiert werdenUnable to prepare statement QOCIResult¨Die Transaktion konnte nicht durchgeführt werden (Operation 'commit' fehlgeschlagen)Unable to commit transaction QODBCDriverREs kann keine Verbindung aufgebaut werdenUnable to connect QODBCDriverêEs kann keine Verbindung aufgebaut werden weil der Treiber die benötigte Funktionalität nicht vollständig unterstütztEUnable to connect - Driver doesn't support all functionality required QODBCDriverX'autocommit' konnte nicht deaktiviert werdenUnable to disable autocommit QODBCDriverT'autocommit' konnte nicht aktiviert werdenUnable to enable autocommit QODBCDriver¸Die Transaktion konnte nicht rückgängig gemacht werden (Operation 'rollback' fehlgeschlagen)Unable to rollback transaction QODBCDriver(QODBCResult::reset: 'SQL_CURSOR_STATIC' konnte nicht als Attribut des Befehls gesetzt werden. Bitte prüfen Sie die Konfiguration Ihres ODBC-TreibersyQODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResultRDie Variable konnte nicht gebunden werdenUnable to bind variable QODBCResultRDer Befehl konnte nicht ausgeführt werdenUnable to execute statement QODBCResultLEs konnten keine Daten abgeholt werdenUnable to fetch QODBCResult`Der erste Datensatz konnte nicht abgeholt werdenUnable to fetch first QODBCResultbDer letzte Datensatz konnte nicht abgeholt werdenUnable to fetch last QODBCResultdDer nächste Datensatz konnte nicht abgeholt werdenUnable to fetch next QODBCResultnDer vorangegangene Datensatz kann nicht abgeholt werdenUnable to fetch previous QODBCResultXDer Befehl konnte nicht initialisiert werdenUnable to prepare statement QODBCResult$Ungültiger URI: %1Invalid URI: %1QObject,Ungültiger RechnernameInvalid hostnameQObject@Es wurde kein Hostname angegebenNo host name givenQObjectZDiese Operation wird von %1 nicht unterstütztOperation not supported on %1QObject€Der entfernte Rechner hat die Verbindung zu %1 vorzeitig beendet3Remote host closed the connection prematurely on %1QObject0Socket-Fehler bei %1: %2Socket error on %1: %2QObjectNameNameQPPDOptionsModelWertValueQPPDOptionsModelXEs konnte keine Transaktion gestartet werdenCould not begin transaction QPSQLDriver¨Die Transaktion konnte nicht durchgeführt werden (Operation 'commit' fehlgeschlagen)Could not commit transaction QPSQLDriver¸Die Transaktion konnte nicht rückgängig gemacht werden (Operation 'rollback' fehlgeschlagen)Could not rollback transaction QPSQLDriverREs kann keine Verbindung aufgebaut werdenUnable to connect QPSQLDriver:Die Registrierung schlug fehlUnable to subscribe QPSQLDriver`Die Registrierung konnte nicht aufgehoben werdenUnable to unsubscribe QPSQLDriverLEs konnte keine Abfrage erzeugt werdenUnable to create query QPSQLResultXDer Befehl konnte nicht initialisiert werdenUnable to prepare statement QPSQLResultZentimeter (cm)Centimeters (cm)QPageSetupWidgetFormularFormQPageSetupWidget Höhe:Height:QPageSetupWidgetZoll (in) Inches (in)QPageSetupWidgetQuerformat LandscapeQPageSetupWidget RänderMarginsQPageSetupWidgetMillimeter (mm)Millimeters (mm)QPageSetupWidgetAusrichtung OrientationQPageSetupWidgetSeitengröße: Page size:QPageSetupWidget PapierPaperQPageSetupWidgetPapierquelle: Paper source:QPageSetupWidgetPunkte (pt) Points (pt)QPageSetupWidgetHochformatPortraitQPageSetupWidget,Umgekehrtes QuerformatReverse landscapeQPageSetupWidget,Umgekehrtes HochformatReverse portraitQPageSetupWidgetBreite:Width:QPageSetupWidgetUnterer Rand bottom marginQPageSetupWidgetLinker Rand left marginQPageSetupWidgetRechter Rand right marginQPageSetupWidgetOberer Rand top marginQPageSetupWidget>Das Plugin wurde nicht geladen.The plugin was not loaded. QPluginLoader$Unbekannter Fehler Unknown error QPluginLoader|Die Datei %1 existiert bereits. Soll sie überschrieben werden?/%1 already exists. Do you want to overwrite it? QPrintDialog„%1 ist ein Verzeichnis. Bitte wählen Sie einen anderen Dateinamen.7%1 is a directory. Please choose a different file name. QPrintDialog$&Einstellungen <<  &Options << QPrintDialog"&Einstellungen >> &Options >> QPrintDialog&Drucken&Print QPrintDialogN<qt>Soll sie überschrieben werden?</qt>%Do you want to overwrite it? QPrintDialogA0A0 QPrintDialog$A0 (841 x 1189 mm)A0 (841 x 1189 mm) QPrintDialogA1A1 QPrintDialog"A1 (594 x 841 mm)A1 (594 x 841 mm) QPrintDialogA2A2 QPrintDialog"A2 (420 x 594 mm)A2 (420 x 594 mm) QPrintDialogA3A3 QPrintDialog"A3 (297 x 420 mm)A3 (297 x 420 mm) QPrintDialogA4A4 QPrintDialog"A4 (210 x 297 mm)%A4 (210 x 297 mm, 8.26 x 11.7 inches) QPrintDialogA5A5 QPrintDialog"A5 (148 x 210 mm)A5 (148 x 210 mm) QPrintDialogA6A6 QPrintDialog"A6 (105 x 148 mm)A6 (105 x 148 mm) QPrintDialogA7A7 QPrintDialog A7 (74 x 105 mm)A7 (74 x 105 mm) QPrintDialogA8A8 QPrintDialogA8 (52 x 74 mm)A8 (52 x 74 mm) QPrintDialogA9A9 QPrintDialogA9 (37 x 52 mm)A9 (37 x 52 mm) QPrintDialogAlias: %1 Aliases: %1 QPrintDialogB0B0 QPrintDialog&B0 (1000 x 1414 mm)B0 (1000 x 1414 mm) QPrintDialogB1B1 QPrintDialog$B1 (707 x 1000 mm)B1 (707 x 1000 mm) QPrintDialogB10B10 QPrintDialog B10 (31 x 44 mm)B10 (31 x 44 mm) QPrintDialogB2B2 QPrintDialog"B2 (500 x 707 mm)B2 (500 x 707 mm) QPrintDialogB3B3 QPrintDialog"B3 (353 x 500 mm)B3 (353 x 500 mm) QPrintDialogB4B4 QPrintDialog"B4 (250 x 353 mm)B4 (250 x 353 mm) QPrintDialogB5B5 QPrintDialog"B5 (176 x 250 mm)%B5 (176 x 250 mm, 6.93 x 9.84 inches) QPrintDialogB6B6 QPrintDialog"B6 (125 x 176 mm)B6 (125 x 176 mm) QPrintDialogB7B7 QPrintDialog B7 (88 x 125 mm)B7 (88 x 125 mm) QPrintDialogB8B8 QPrintDialogB8 (62 x 88 mm)B8 (62 x 88 mm) QPrintDialogB9B9 QPrintDialogB9 (44 x 62 mm)B9 (44 x 62 mm) QPrintDialogC5EC5E QPrintDialog$C5E (163 x 229 mm)C5E (163 x 229 mm) QPrintDialog"BenutzerdefiniertCustom QPrintDialogDLEDLE QPrintDialog$DLE (110 x 220 mm)DLE (110 x 220 mm) QPrintDialogExecutive Executive QPrintDialogNExecutive (7,5 x 10 Zoll, 191 x 254 mm))Executive (7.5 x 10 inches, 191 x 254 mm) QPrintDialogšDie Datei %1 ist schreibgeschützt. Bitte wählen Sie einen anderen Dateinamen.=File %1 is not writable. Please choose a different file name. QPrintDialog6Die Datei existiert bereits File exists QPrintDialog FolioFolio QPrintDialog(Folio (210 x 330 mm)Folio (210 x 330 mm) QPrintDialog LedgerLedger QPrintDialog*Ledger (432 x 279 mm)Ledger (432 x 279 mm) QPrintDialog LegalLegal QPrintDialogFLegal (8,5 x 14 Zoll, 216 x 356 mm)%Legal (8.5 x 14 inches, 216 x 356 mm) QPrintDialog LetterLetter QPrintDialogHLetter (8,5 x 11 Zoll, 216 x 279 mm)&Letter (8.5 x 11 inches, 216 x 279 mm) QPrintDialogLokale Datei Local file QPrintDialogOKOK QPrintDialogDruckenPrint QPrintDialog(In Datei drucken ...Print To File ... QPrintDialogAlles drucken Print all QPrintDialogBereich drucken Print range QPrintDialogAuswahl druckenPrint selection QPrintDialog(In PDF-Datei druckenPrint to File (PDF) QPrintDialog6In Postscript-Datei druckenPrint to File (Postscript) QPrintDialogTabloidTabloid QPrintDialog,Tabloid (279 x 432 mm)Tabloid (279 x 432 mm) QPrintDialog¦Die Angabe für die erste Seite darf nicht größer sein als die für die letzte Seite.7The 'From' value cannot be greater than the 'To' value. QPrintDialog,US Common #10 EnvelopeUS Common #10 Envelope QPrintDialogJUS Common #10 Envelope (105 x 241 mm)%US Common #10 Envelope (105 x 241 mm) QPrintDialog,Schreiben der Datei %1 Write %1 file QPrintDialog direkt verbundenlocally connected QPrintDialogunbekanntunknown QPrintDialog%1%%1%QPrintPreviewDialogSchließenCloseQPrintPreviewDialogPDF exportieren Export to PDFQPrintPreviewDialog,PostScript exportierenExport to PostScriptQPrintPreviewDialogErste Seite First pageQPrintPreviewDialogSeite anpassenFit pageQPrintPreviewDialogBreite anpassen Fit widthQPrintPreviewDialogQuerformat LandscapeQPrintPreviewDialogLetzte Seite Last pageQPrintPreviewDialogNächste Seite Next pageQPrintPreviewDialog Seite einrichten Page SetupQPrintPreviewDialog Seite einrichten Page setupQPrintPreviewDialogHochformatPortraitQPrintPreviewDialogVorige Seite Previous pageQPrintPreviewDialogDruckenPrintQPrintPreviewDialogDruckvorschau Print PreviewQPrintPreviewDialogBGegenüberliegende Seiten anzeigenShow facing pagesQPrintPreviewDialog,Übersicht aller SeitenShow overview of all pagesQPrintPreviewDialog.Einzelne Seite anzeigenShow single pageQPrintPreviewDialogVergrößernZoom inQPrintPreviewDialogVerkleinernZoom outQPrintPreviewDialogErweitertAdvancedQPrintPropertiesWidgetFormularFormQPrintPropertiesWidget SeitePageQPrintPropertiesWidgetSortierenCollateQPrintSettingsOutput FarbeColorQPrintSettingsOutputFarbmodus Color ModeQPrintSettingsOutput Anzahl ExemplareCopiesQPrintSettingsOutput"Anzahl Exemplare:Copies:QPrintSettingsOutputDuplexdruckDuplex PrintingQPrintSettingsOutputFormularFormQPrintSettingsOutputGraustufen GrayscaleQPrintSettingsOutputLange Seite Long sideQPrintSettingsOutputKeinNoneQPrintSettingsOutputOptionenOptionsQPrintSettingsOutput(AusgabeeinstellungenOutput SettingsQPrintSettingsOutputSeiten von Pages fromQPrintSettingsOutputAlles drucken Print allQPrintSettingsOutputBereich drucken Print rangeQPrintSettingsOutputUmgekehrtReverseQPrintSettingsOutputAuswahl SelectionQPrintSettingsOutputKurze Seite Short sideQPrintSettingsOutputbistoQPrintSettingsOutput &Name:&Name: QPrintWidget...... QPrintWidgetFormularForm QPrintWidgetStandort: Location: QPrintWidgetAusgabe&datei: Output &file: QPrintWidget&Eigenschaften P&roperties QPrintWidgetVorschauPreview QPrintWidgetDruckerPrinter QPrintWidgetTyp:Type: QPrintWidgetvDie Eingabeumleitung konnte nicht zum Lesen geöffnet werden,Could not open input redirection for readingQProcessvDie Ausgabeumleitung konnte nicht zum Lesen geöffnet werden-Could not open output redirection for writingQProcessBDas Lesen vom Prozess schlug fehlError reading from processQProcessJDas Schreiben zum Prozess schlug fehlError writing to processQProcess@Es wurde kein Programm angegebenNo program definedQProcess4Der Prozess ist abgestürztProcess crashedQProcessRDas Starten des Prozesses schlug fehl: %1Process failed to start: %1QProcess$ZeitüberschreitungProcess operation timed outQProcessLRessourcenproblem ("fork failure"): %1!Resource error (fork failure): %1QProcessAbbrechenCancelQProgressDialog ÖffnenOpen QPushButtonAnkreuzenCheck QRadioButton@falsche Syntax für Zeichenklassebad char class syntaxQRegExp8falsche Syntax für Lookaheadbad lookahead syntaxQRegExpBfalsche Syntax für Wiederholungenbad repetition syntaxQRegExpLdeaktivierte Eigenschaft wurde benutztdisabled feature usedQRegExp&ungültige Kategorieinvalid categoryQRegExp(ungültiges Intervallinvalid intervalQRegExp*ungültiger Oktal-Wertinvalid octal valueQRegExp.internes Limit erreichtmet internal limitQRegExp2fehlende linke Begrenzungmissing left delimQRegExpkein Fehlerno error occurredQRegExp"unerwartetes Endeunexpected endQRegExphDie Datenbankverbindung konnte nicht geöffnet werdenError opening databaseQSQLite2DriverXEs konnte keine Transaktion gestartet werdenUnable to begin transactionQSQLite2Driver¨Die Transaktion konnte nicht durchgeführt werden (Operation 'commit' fehlgeschlagen)Unable to commit transactionQSQLite2DriverhDie Transaktion kann nicht rückgängig gemacht werdenUnable to rollback transactionQSQLite2DriverRDer Befehl konnte nicht ausgeführt werdenUnable to execute statementQSQLite2ResultRDas Ergebnis konnte nicht abgeholt werdenUnable to fetch resultsQSQLite2ResultnDie Datenbankverbindung konnte nicht geschlossen werdenError closing database QSQLiteDriverhDie Datenbankverbindung konnte nicht geöffnet werdenError opening database QSQLiteDriverXEs konnte keine Transaktion gestartet werdenUnable to begin transaction QSQLiteDriver¨Die Transaktion konnte nicht durchgeführt werden (Operation 'commit' fehlgeschlagen)Unable to commit transaction QSQLiteDriver¸Die Transaktion konnte nicht rückgängig gemacht werden (Operation 'rollback' fehlgeschlagen)Unable to rollback transaction QSQLiteDriverKein AbfrageNo query QSQLiteResultFDie Anzahl der Parameter ist falschParameter count mismatch QSQLiteResultTDie Parameter konnte nicht gebunden werdenUnable to bind parameters QSQLiteResultRDer Befehl konnte nicht ausgeführt werdenUnable to execute statement QSQLiteResultTDer Datensatz konnte nicht abgeholt werdenUnable to fetch row QSQLiteResultXDer Befehl konnte nicht zurückgesetzt werdenUnable to reset statement QSQLiteResultBedingung ConditionQScriptBreakpointsModelAusgelöst Hit-countQScriptBreakpointsModelIDIDQScriptBreakpointsModelAuslösen nach Ignore-countQScriptBreakpointsModel StelleLocationQScriptBreakpointsModelEinmal auslösen Single-shotQScriptBreakpointsModelLöschenDeleteQScriptBreakpointsWidgetNeuNewQScriptBreakpointsWidget&&Suche im Skript...&Find in Script...QScriptDebuggerKonsole löschen Clear ConsoleQScriptDebugger*Debug-Ausgabe löschenClear Debug OutputQScriptDebugger*Fehlerausgabe löschenClear Error LogQScriptDebugger WeiterContinueQScriptDebugger Ctrl+FCtrl+FQScriptDebuggerCtrl+F10Ctrl+F10QScriptDebugger Ctrl+GCtrl+GQScriptDebuggerDebuggenDebugQScriptDebuggerF10F10QScriptDebuggerF11F11QScriptDebuggerF3F3QScriptDebuggerF5F5QScriptDebuggerF9F9QScriptDebugger&&Nächste Fundstelle Find &NextQScriptDebugger0Vorhergehende FundstelleFind &PreviousQScriptDebuggerGehe zu Zeile Go to LineQScriptDebuggerUnterbrechen InterruptQScriptDebugger Zeile:Line:QScriptDebugger(Bis Cursor ausführen Run to CursorQScriptDebugger:Bis zu neuem Skript ausführenRun to New ScriptQScriptDebuggerShift+F11 Shift+F11QScriptDebuggerShift+F3Shift+F3QScriptDebuggerShift+F5Shift+F5QScriptDebugger(Einzelschritt herein Step IntoQScriptDebugger(Einzelschritt herausStep OutQScriptDebugger$Einzelschritt über Step OverQScriptDebugger*Haltepunkt umschaltenToggle BreakpointQScriptDebugger¶<img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Die Suche hat das Ende erreichtJ Search wrappedQScriptDebuggerCodeFinderWidget:Groß/Kleinschreibung beachtenCase SensitiveQScriptDebuggerCodeFinderWidgetSchließenCloseQScriptDebuggerCodeFinderWidgetNächsteNextQScriptDebuggerCodeFinderWidget VorigePreviousQScriptDebuggerCodeFinderWidgetGanze Worte Whole wordsQScriptDebuggerCodeFinderWidgetNameNameQScriptDebuggerLocalsModelWertValueQScriptDebuggerLocalsModel EbeneLevelQScriptDebuggerStackModel StelleLocationQScriptDebuggerStackModelNameNameQScriptDebuggerStackModelBedingung:Breakpoint Condition: QScriptEdit.Haltepunkt deaktivierenDisable Breakpoint QScriptEdit*Haltepunkt aktivierenEnable Breakpoint QScriptEdit*Haltepunkt umschaltenToggle Breakpoint QScriptEditHaltepunkte BreakpointsQScriptEngineDebuggerKonsoleConsoleQScriptEngineDebuggerDebug-Ausgabe Debug OutputQScriptEngineDebuggerFehlerausgabe Error LogQScriptEngineDebugger Geladene SkripteLoaded ScriptsQScriptEngineDebugger Lokale VariablenLocalsQScriptEngineDebugger$Qt Script DebuggerQt Script DebuggerQScriptEngineDebugger SucheSearchQScriptEngineDebugger StapelStackQScriptEngineDebuggerAnsichtViewQScriptEngineDebuggerSchließenCloseQScriptNewBreakpointWidgetEndeBottom QScrollBarLinker Rand Left edge QScrollBar*Eine Zeile nach unten Line down QScrollBarAusrichtenLine up QScrollBar*Eine Seite nach unten Page down QScrollBar*Eine Seite nach links Page left QScrollBar,Eine Seite nach rechts Page right QScrollBar(Eine Seite nach obenPage up QScrollBarPositionPosition QScrollBarRechter Rand Right edge QScrollBar&Nach unten scrollen Scroll down QScrollBar Hierher scrollen Scroll here QScrollBar&Nach links scrollen Scroll left QScrollBar(Nach rechts scrollen Scroll right QScrollBar$Nach oben scrollen Scroll up QScrollBar AnfangTop QScrollBarV%1: Die Unix-Schlüsseldatei existiert nicht%1: UNIX key file doesn't exist QSharedMemory*%1: existiert bereits%1: already exists QSharedMemoryv%1: Die Größenangabe für die Erzeugung ist kleiner als Null%1: create size is less then 0 QSharedMemory&%1: existiert nicht%1: doesn't exist QSharedMemory&%1: existiert nicht%1: doesn't exists QSharedMemory6%1: ftok-Aufruf schlug fehl%1: ftok failed QSharedMemory&%1: Ungültige Größe%1: invalid size QSharedMemory4%1: Fehlerhafter Schlüssel %1: key error QSharedMemoryH%1: Ungültige Schlüsselangabe (leer)%1: key is empty QSharedMemory&%1: nicht verbunden%1: not attached QSharedMemoryF%1: Keine Ressourcen mehr verfügbar%1: out of resources QSharedMemory,%1: Zugriff verweigert%1: permission denied QSharedMemoryJ%1: Die Abfrage der Größe schlug fehl%1: size query failed QSharedMemoryl%1: Ein systembedingtes Limit der Größe wurde erreicht$%1: system-imposed size restrictions QSharedMemory6%1: Sperrung fehlgeschlagen%1: unable to lock QSharedMemoryR%1: Es kann kein Schlüssel erzeugt werden%1: unable to make key QSharedMemoryt%1: Es kann kein Schlüssel für die Sperrung gesetzt werden%1: unable to set key on lock QSharedMemory^%1: Die Sperrung konnte nicht aufgehoben werden%1: unable to unlock QSharedMemory2%1: Unbekannter Fehler %2%1: unknown error %2 QSharedMemory++ QShortcut,Lesezeichen hinzufügen Add Favorite QShortcut*Helligkeit einstellenAdjust Brightness QShortcutAltAlt QShortcutAnwendung linksApplication Left QShortcut Anwendung rechtsApplication Right QShortcut$Audiospur wechselnAudio Cycle Track QShortcutAudio vorspulen Audio Forward QShortcut>Audio zufällige Auswahl spielenAudio Random Play QShortcut"Audio wiederholen Audio Repeat QShortcut Audio rückspulen Audio Rewind QShortcutAbwesendAway QShortcut ZurückBack QShortcut(Hinterstes nach vorn Back Forward QShortcutRücktaste Backspace QShortcutRück-TabBacktab QShortcutBass-Boost Bass Boost QShortcut Bass - Bass Down QShortcut Bass +Bass Up QShortcutBatterieBattery QShortcutBluetooth Bluetooth QShortcutBuchBook QShortcutBrowserBrowser QShortcutCDCD QShortcutRechner Calculator QShortcut AnrufCall QShortcutFeststelltaste Caps Lock QShortcutFeststelltasteCapsLock QShortcutLöschenClear QShortcutZugriff löschen Clear Grab QShortcutSchließenClose QShortcutCommunity Community QShortcutKontext1Context1 QShortcutKontext2Context2 QShortcutKontext3Context3 QShortcutKontext4Context4 QShortcutKopierenCopy QShortcutStrgCtrl QShortcutAusschneidenCut QShortcutDOSDOS QShortcutEntfDel QShortcutLöschenDelete QShortcutAnzeigenDisplay QShortcutDokumente Documents QShortcut RunterDown QShortcutAuswerfenEject QShortcutEndeEnd QShortcut EnterEnter QShortcutEscEsc QShortcut EscapeEscape QShortcutF%1F%1 QShortcutFavoriten Favorites QShortcutFinanzenFinance QShortcutUmdrehenFlip QShortcutVorwärtsForward QShortcut SpielGame QShortcutLosGo QShortcutAuflegenHangup QShortcut HilfeHelp QShortcutHibernate Hibernate QShortcutVerlaufHistory QShortcutPos1Home QShortcutHome Office Home Office QShortcutStartseite Home Page QShortcut&Empfohlene Verweise Hot Links QShortcut EinfgIns QShortcutEinfügenInsert QShortcut6Tastaturbeleuchtung dunklerKeyboard Brightness Down QShortcut4Tastaturbeleuchtung hellerKeyboard Brightness Up QShortcut6Tastaturbeleuchtung Ein/AusKeyboard Light On/Off QShortcutTastaturmenü Keyboard Menu QShortcut(0) starten Launch (0) QShortcut(1) starten Launch (1) QShortcut(2) starten Launch (2) QShortcut(3) starten Launch (3) QShortcut(4) starten Launch (4) QShortcut(5) starten Launch (5) QShortcut(6) starten Launch (6) QShortcut(7) starten Launch (7) QShortcut(8) starten Launch (8) QShortcut(9) starten Launch (9) QShortcut(A) starten Launch (A) QShortcut(B) starten Launch (B) QShortcut(C) starten Launch (C) QShortcut(D) starten Launch (D) QShortcut(E) starten Launch (E) QShortcut(F) starten Launch (F) QShortcutMail starten Launch Mail QShortcut*Medienspieler starten Launch Media QShortcut LinksLeft QShortcutBeleuchtung LightBulb QShortcut LogoffLogoff QShortcutWeiterleitung Mail Forward QShortcut MarktMarket QShortcutNächster Media Next QShortcutWiedergabe Media Play QShortcutVorherigerMedia Previous QShortcutAufzeichnen Media Record QShortcut Stopp Media Stop QShortcutVersammlungMeeting QShortcutMenüMenu QShortcutMenü PBMenu PB QShortcutMessenger Messenger QShortcutMetaMeta QShortcutMonitor dunklerMonitor Brightness Down QShortcutMonitor hellerMonitor Brightness Up QShortcut MusikMusic QShortcutMeine OrteMy Sites QShortcutNachrichtenNews QShortcutNeinNo QShortcut*Zahlen-FeststelltasteNum Lock QShortcut*Zahlen-FeststelltasteNumLock QShortcut*Zahlen-Feststelltaste Number Lock QShortcutURL öffnenOpen URL QShortcut OptionOption QShortcutBild abwärts Page Down QShortcutBild aufwärtsPage Up QShortcutEinfügenPaste QShortcut PausePause QShortcutBild abwärtsPgDown QShortcutBild aufwärtsPgUp QShortcutTelefonPhone QShortcut BilderPictures QShortcutAusschalten Power Off QShortcut DruckPrint QShortcut$Bildschirm drucken Print Screen QShortcutAktualisierenRefresh QShortcutNeu ladenReload QShortcutAntwortenReply QShortcut ReturnReturn QShortcut RechtsRight QShortcut Fenster rotierenRotate Windows QShortcutRotation KB Rotation KB QShortcutRotation PB Rotation PB QShortcutSpeichernSave QShortcut"Bildschirmschoner Screensaver QShortcut*Rollen-Feststelltaste Scroll Lock QShortcut*Rollen-Feststelltaste ScrollLock QShortcut SuchenSearch QShortcutAuswählenSelect QShortcut SendenSend QShortcutUmschaltShift QShortcutShopShop QShortcutSchlafmodusSleep QShortcutLeertasteSpace QShortcut&Rechtschreibprüfung Spellchecker QShortcut"Bildschirm teilen Split Screen QShortcutSpreadsheet Spreadsheet QShortcutStandbyStandby QShortcutAbbrechenStop QShortcutUntertitelSubtitle QShortcut HilfeSupport QShortcut PauseSuspend QShortcut SysReqSysReq QShortcutSystem RequestSystem Request QShortcutTabTab QShortcutTask-Leiste Task Panel QShortcutTerminalTerminal QShortcutZeitTime QShortcutWerkzeugeTools QShortcutHauptmenüTop Menu QShortcut ReiseTravel QShortcutHöhen - Treble Down QShortcutHöhen + Treble Up QShortcutUltra Wide BandUltra Wide Band QShortcutHochUp QShortcut VideoVideo QShortcutAnsichtView QShortcutLautstärke - Volume Down QShortcutTon aus Volume Mute QShortcutLautstärke + Volume Up QShortcutInternetWWW QShortcutAufweckenWake Up QShortcut WebCamWebCam QShortcutDrahtlosWireless QShortcut TextverarbeitungWord Processor QShortcutXFerXFer QShortcutJaYes QShortcutVergrößernZoom In QShortcutVerkleinernZoom Out QShortcut iTouchiTouch QShortcut*Eine Seite nach unten Page downQSlider*Eine Seite nach links Page leftQSlider,Eine Seite nach rechts Page rightQSlider(Eine Seite nach obenPage upQSliderPositionPositionQSliderNDieser Adresstyp wird nicht unterstütztAddress type not supportedQSocks5SocketEngine`Der SOCKSv5-Server hat die Verbindung verweigert(Connection not allowed by SOCKSv5 serverQSocks5SocketEnginejDer Proxy-Server hat die Verbindung vorzeitig beendet&Connection to proxy closed prematurelyQSocks5SocketEnginevDer Proxy-Server hat den Aufbau einer Verbindung verweigertConnection to proxy refusedQSocks5SocketEngine’Bei der Verbindung mit dem Proxy-Server wurde ein Zeitlimit überschrittenConnection to proxy timed outQSocks5SocketEngine~Allgemeiner Fehler bei der Kommunikation mit dem SOCKSv5-ServerGeneral SOCKSv5 server failureQSocks5SocketEnginefDas Zeitlimit für die Operation wurde überschrittenNetwork operation timed outQSocks5SocketEnginefDie Authentifizierung beim Proxy-Server schlug fehlProxy authentication failedQSocks5SocketEnginenDie Authentifizierung beim Proxy-Server schlug fehl: %1Proxy authentication failed: %1QSocks5SocketEngineZDer Proxy-Server konnte nicht gefunden werdenProxy host not foundQSocks5SocketEngineDProtokoll-Fehler (SOCKS version 5)SOCKS version 5 protocol errorQSocks5SocketEngine\Dieses SOCKSv5-Kommando wird nicht unterstütztSOCKSv5 command not supportedQSocks5SocketEngineTTL verstrichen TTL expiredQSocks5SocketEngine|Unbekannten Fehlercode vom SOCKSv5-Proxy-Server erhalten: 0x%1%Unknown SOCKSv5 proxy error code 0x%1QSocks5SocketEngineAbbrechenCancelQSoftKeyManager FertigDoneQSoftKeyManagerBeendenExitQSoftKeyManagerOkOkQSoftKeyManagerOptionenOptionsQSoftKeyManagerAuswählenSelectQSoftKeyManagerWenigerLessQSpinBoxMehrMoreQSpinBoxAbbrechenCancelQSql*Änderungen verwerfen?Cancel your edits?QSqlBestätigenConfirmQSqlLöschenDeleteQSql2Diesen Datensatz löschen?Delete this record?QSqlEinfügenInsertQSqlNeinNoQSql*Änderungen speichern? Save edits?QSqlAktualisierenUpdateQSqlJaYesQSqlŠOhne Schlüssel kann kein Zertifikat zur Verfügung gestellt werden, %1,Cannot provide a certificate with no key, %1 QSslSocketnEs konnte keine SSL-Kontextstruktur erzeugt werden (%1)Error creating SSL context (%1) QSslSocket\Es konnte keine SSL-Sitzung erzeugt werden, %1Error creating SSL session, %1 QSslSocket\Es konnte keine SSL-Sitzung erzeugt werden: %1Error creating SSL session: %1 QSslSocketvIm Ablauf des SSL-Protokolls ist ein Fehler aufgetreten: %1Error during SSL handshake: %1 QSslSocketjDas lokale Zertifikat konnte nicht geladen werden, %1#Error loading local certificate, %1 QSslSocketjDer private Schlüssel konnte nicht geladen werden, %1Error loading private key, %1 QSslSocketRBeim Lesen ist ein Fehler aufgetreten: %1Error while reading: %1 QSslSocketPUngültige oder leere Schlüsselliste (%1)!Invalid or empty cipher list (%1) QSslSocket`Keines der Zertifikate konnte verifiziert werden!No certificates could be verified QSslSocketKein FehlerNo error QSslSocketxEines der Zertifikate der Zertifizierungsstelle ist ungültig%One of the CA certificates is invalid QSslSocket€Der private Schlüssel passt nicht zum öffentlichen Schlüssel, %1+Private key does not certify public key, %1 QSslSocketrDie Länge des basicConstraints-Pfades wurde überschritten QUndoModel WiederherstellenRedo QUndoStackRückgängigUndo QUndoStack@Unicode-Kontrollzeichen einfügen Insert Unicode control characterQUnicodeControlCharacterMenuHLRE Start of left-to-right embedding$LRE Start of left-to-right embeddingQUnicodeControlCharacterMenu,LRM Left-to-right markLRM Left-to-right markQUnicodeControlCharacterMenuFLRO Start of left-to-right override#LRO Start of left-to-right overrideQUnicodeControlCharacterMenu<PDF Pop directional formattingPDF Pop directional formattingQUnicodeControlCharacterMenuHRLE Start of right-to-left embedding$RLE Start of right-to-left embeddingQUnicodeControlCharacterMenu,RLM Right-to-left markRLM Right-to-left markQUnicodeControlCharacterMenuFRLO Start of right-to-left override#RLO Start of right-to-left overrideQUnicodeControlCharacterMenu*ZWJ Zero width joinerZWJ Zero width joinerQUnicodeControlCharacterMenu4ZWNJ Zero width non-joinerZWNJ Zero width non-joinerQUnicodeControlCharacterMenu*ZWSP Zero width spaceZWSP Zero width spaceQUnicodeControlCharacterMenuFDer URL kann nicht angezeigt werdenCannot show URL QWebFrameVDieser Mime-Typ kann nicht angezeigt werdenCannot show mimetype QWebFrame2Die Datei existiert nichtFile does not exist QWebFrame˜Das Laden des Rahmens wurde durch eine Änderung der Richtlinien unterbrochen'Frame load interrupted by policy change QWebFrame0Anfrage wurde abgewiesenRequest blocked QWebFrame2Anfrage wurde abgebrochenRequest cancelled QWebFrame %1 (%2x%3 Pixel)%1 (%2x%3 pixels)QWebPageR%1 Tage %2 Stunden %3 Minuten %4 Sekunden&%1 days %2 hours %3 minutes %4 secondsQWebPageB%1 Stunden %2 Minuten %3 Sekunden%1 hours %2 minutes %3 secondsQWebPage,%1 Minuten %2 Sekunden%1 minutes %2 secondsQWebPage%1 Sekunden %1 secondsQWebPageEine Datei%n Dateien %n file(s)QWebPage.In Wörterbuch aufnehmenAdd To DictionaryQWebPage,Linksbündig ausrichten Align LeftQWebPage.Rechtsbündig ausrichten Align RightQWebPageAudio-Element Audio ElementQWebPageBAudio-Steuerung und Statusanzeige2Audio element playback controls and status displayQWebPage4Ungültige HTTP-AnforderungBad HTTP requestQWebPageAbspielenBegin playbackQWebPageFettBoldQWebPageEndeBottomQWebPageZentrierenCenterQWebPagebGrammatik mit Rechtschreibung zusammen überprüfenCheck Grammar With SpellingQWebPage,Rechtschreibung prüfenCheck SpellingQWebPagebRechtschreibung während des Schreibens überprüfenCheck Spelling While TypingQWebPageDurchsuchen Choose FileQWebPageBGespeicherte Suchanfragen löschenClear recent searchesQWebPageKopierenCopyQWebPageGrafik kopieren Copy ImageQWebPage*Link-Adresse kopieren Copy LinkQWebPage Status des FilmsCurrent movie statusQWebPage*Abspielzeit des FilmsCurrent movie timeQWebPageAusschneidenCutQWebPageVorgabeDefaultQWebPage>Bis zum Ende des Wortes löschenDelete to the end of the wordQWebPageBBis zum Anfang des Wortes löschenDelete to the start of the wordQWebPageSchreibrichtung DirectionQWebPageSpielzeit Elapsed TimeQWebPage FontsFontsQWebPageVollbild-TasteFullscreen ButtonQWebPage ZurückGo BackQWebPageVor Go ForwardQWebPageXRechtschreibung und Grammatik nicht anzeigenHide Spelling and GrammarQWebPageIgnorierenIgnoreQWebPageIgnorieren Ignore Grammar context menu itemIgnoreQWebPage Unbegrenzte ZeitIndefinite timeQWebPageEinrückenIndentQWebPage4Liste mit Punkten einfügenInsert Bulleted ListQWebPage4Nummerierte Liste einfügenInsert Numbered ListQWebPage&Neue Zeile einfügenInsert a new lineQWebPage0Neuen Abschnitt einfügenInsert a new paragraphQWebPage PrüfenInspectQWebPage KursivItalicQWebPage.JavaScript-Hinweis - %1JavaScript Alert - %1QWebPage6JavaScript-Bestätigung - %1JavaScript Confirm - %1QWebPage.JavaScript-Problem - %1JavaScript Problem - %1QWebPageFJavaScript-Eingabeaufforderung - %1JavaScript Prompt - %1QWebPageAusrichtenJustifyQWebPageLinker Rand Left edgeQWebPage*Von links nach rechts Left to RightQWebPage Live-ÜbertragungLive BroadcastQWebPageLädt... Loading...QWebPage2Im Wörterbuch nachschauenLook Up In DictionaryQWebPageRPositionsmarke auf Ende des Blocks setzen'Move the cursor to the end of the blockQWebPageZPositionsmarke auf Ende des Dokumentes setzen*Move the cursor to the end of the documentQWebPageHPositionsmarke auf Zeilenende setzen&Move the cursor to the end of the lineQWebPageVPositionsmarke auf folgendes Zeichen setzen%Move the cursor to the next characterQWebPagePPositionsmarke auf folgende Zeile setzen Move the cursor to the next lineQWebPagePPositionsmarke auf folgendes Wort setzen Move the cursor to the next wordQWebPage^Positionsmarke auf vorangehendes Zeichen setzen)Move the cursor to the previous characterQWebPageXPositionsmarke auf vorangehende Zeile setzen$Move the cursor to the previous lineQWebPageXPositionsmarke auf vorangehendes Wort setzen$Move the cursor to the previous wordQWebPageVPositionsmarke auf Anfang des Blocks setzen)Move the cursor to the start of the blockQWebPage^Positionsmarke auf Anfang des Dokumentes setzen,Move the cursor to the start of the documentQWebPageLPositionsmarke auf Zeilenanfang setzen(Move the cursor to the start of the lineQWebPageAbspielzeitMovie time scrubberQWebPageJGriff zur Einstellung der AbspielzeitMovie time scrubber thumbQWebPage Stummschalttaste Mute ButtonQWebPage.Schalte Tonspuren stummMute audio tracksQWebPage2Keine Vorschläge gefundenNo Guesses FoundQWebPage:Es ist keine Datei ausgewähltNo file selectedQWebPageJEs existieren noch keine SuchanfragenNo recent searchesQWebPageFrame öffnen Open FrameQWebPage<Grafik in neuem Fenster öffnen Open ImageQWebPageAdresse öffnen Open LinkQWebPage.In neuem Fenster öffnenOpen in New WindowQWebPage&Einrückung aufhebenOutdentQWebPage UmrissOutlineQWebPage*Eine Seite nach unten Page downQWebPage*Eine Seite nach links Page leftQWebPage,Eine Seite nach rechts Page rightQWebPage(Eine Seite nach obenPage upQWebPageEinfügenPasteQWebPage<Einfügen und dem Stil anpassenPaste and Match StyleQWebPagePause-Knopf Pause ButtonQWebPage PausePause playbackQWebPageAbspielknopf Play ButtonQWebPage>Film im Vollbildmodus abspielenPlay movie in full-screen modeQWebPage,Bisherige SuchanfragenRecent searchesQWebPageNeu ladenReloadQWebPage"Verbleibende ZeitRemaining TimeQWebPage6Verbleibende Zeit des FilmsRemaining movie timeQWebPage,Formatierung entfernenRemove formattingQWebPageRücksetzenResetQWebPage<Setze Film auf Echtzeit zurück#Return streaming movie to real-timeQWebPage0Kehre zu Echtzeit zurückReturn to Real-time ButtonQWebPageRückspultaste Rewind ButtonQWebPage"Film zurückspulen Rewind movieQWebPageRechter Rand Right edgeQWebPage*Von rechts nach links Right to LeftQWebPage,Grafik speichern unter Save ImageQWebPage.Ziel speichern unter... Save Link...QWebPage&Nach unten scrollen Scroll downQWebPage Hierher scrollen Scroll hereQWebPage&Nach links scrollen Scroll leftQWebPage(Nach rechts scrollen Scroll rightQWebPage$Nach oben scrollen Scroll upQWebPageIm Web suchenSearch The WebQWebPageRücklauftasteSeek Back ButtonQWebPageVorlauftasteSeek Forward ButtonQWebPage2Schnelles RückwärtssuchenSeek quickly backQWebPage0Schnelles VorwärtssuchenSeek quickly forwardQWebPageAlles auswählen Select allQWebPageBBis zum Ende des Blocks markierenSelect to the end of the blockQWebPageHBis zum Ende des Dokuments markieren!Select to the end of the documentQWebPage8Bis zum Zeilenende markierenSelect to the end of the lineQWebPageDBis zum nächsten Zeichen markierenSelect to the next characterQWebPage@Bis zur nächsten Zeile markierenSelect to the next lineQWebPage>Bis zum nächsten Wort markierenSelect to the next wordQWebPageHBis zum vorherigen Zeichen markieren Select to the previous characterQWebPageDBis zur vorherigen Zeile markierenSelect to the previous lineQWebPageBBis zum vorherigen Wort markierenSelect to the previous wordQWebPageFBis zum Anfang des Blocks markieren Select to the start of the blockQWebPageLBis zum Anfang des Dokuments markieren#Select to the start of the documentQWebPage<Bis zum Zeilenanfang markierenSelect to the start of the lineQWebPageLRechtschreibung und Grammatik anzeigenShow Spelling and GrammarQWebPageSchiebereglerSliderQWebPage&Schieberegler-Griff Slider ThumbQWebPageRechtschreibungSpellingQWebPageStatusanzeigeStatus DisplayQWebPageAbbrechenStopQWebPageDurchgestrichen StrikethroughQWebPage SendenSubmitQWebPage SendenQSubmit (input element) alt text for elements with no alt, title, or valueSubmitQWebPageTiefstellung SubscriptQWebPageHochstellung SuperscriptQWebPageSchreibrichtungText DirectionQWebPage†Das Skript dieser Webseite ist fehlerhaft. Möchten Sie es anhalten?RThe script on this page appears to have a problem. Do you want to stop the script?QWebPagešDieser Index verfügt über eine Suchfunktion. Geben Sie einen Suchbegriff ein:3This is a searchable index. Enter search keywords: QWebPage AnfangTopQWebPageUnterstrichen UnderlineQWebPageUnbekanntUnknownQWebPage>Abstelltaste für Stummschaltung Unmute ButtonQWebPageJStummschaltung der Tonspuren aufhebenUnmute audio tracksQWebPageVideo-Element Video ElementQWebPageBVideo-Steuerung und Statusanzeige2Video element playback controls and status displayQWebPage$Web Inspector - %2Web Inspector - %2QWebPageDirekthilfe What's This?QWhatsThisAction**QWidgetAb&schließen&FinishQWizard &Hilfe&HelpQWizard&Weiter&NextQWizard&Weiter >&Next >QWizard< &Zurück< &BackQWizardAbbrechenCancelQWizardAnwendenCommitQWizard WeiterContinueQWizard FertigDoneQWizard ZurückGo BackQWizard HilfeHelpQWizard%1 - [%2] %1 - [%2] QWorkspaceSchl&ießen&Close QWorkspaceVer&schieben&Move QWorkspace"Wieder&herstellen&Restore QWorkspace&Größe ändern&Size QWorkspace&Herabrollen&Unshade QWorkspaceSchließenClose QWorkspaceMa&ximieren Ma&ximize QWorkspaceM&inimieren Mi&nimize QWorkspaceMinimierenMinimize QWorkspace Wiederherstellen Restore Down QWorkspace&AufrollenSh&ade QWorkspace.Im &Vordergrund bleiben Stay on &Top QWorkspace²fehlende Encoding-Deklaration oder Standalone-Deklaration beim Parsen der XML-DeklarationYencoding declaration or standalone declaration expected while reading the XML declarationQXmlhFehler in der Text-Deklaration einer externen Entity3error in the text declaration of an external entityQXmlFFehler beim Parsen eines Kommentars$error occurred while parsing commentQXmlZFehler beim Parsen des Inhalts eines Elements$error occurred while parsing contentQXmlXFehler beim Parsen der Dokumenttypdefinition5error occurred while parsing document type definitionQXmlBFehler beim Parsen eines Elements$error occurred while parsing elementQXmlBFehler beim Parsen einer Referenz&error occurred while parsing referenceQXml4Konsument löste Fehler auserror triggered by consumerQXmlrin der DTD sind keine externen Entity-Referenzen erlaubt ;external parsed general entity reference not allowed in DTDQXmlˆin einem Attribut-Wert sind keine externen Entity-Referenzen erlaubtGexternal parsed general entity reference not allowed in attribute valueQXml‚in einer DTD ist keine interne allgemeine Entity-Referenz erlaubt4internal general entity reference not allowed in DTDQXmldkein gültiger Name für eine Processing-Instruktion'invalid name for processing instructionQXml^ein Buchstabe ist an dieser Stelle erforderlichletter is expectedQXml>mehrere Dokumenttypdefinitionen&more than one document type definitionQXmlkein Fehlerno error occurredQXml rekursive Entityrecursive entitiesQXml~fehlende Standalone-Deklaration beim Parsen der XML DeklarationAstandalone declaration expected while reading the XML declarationQXmlXElement-Tags sind nicht richtig geschachtelt tag mismatchQXml(unerwartetes Zeichenunexpected characterQXml6unerwartetes Ende der Dateiunexpected end of fileQXml~nicht-analysierte Entity-Referenz im falschen Kontext verwendet*unparsed entity reference in wrong contextQXml`fehlende Version beim Parsen der XML-Deklaration2version expected while reading the XML declarationQXmlXfalscher Wert für die Standalone-Deklaration&wrong value for standalone declarationQXmlXFehler %1 in %2, bei Zeile %3, Spalte %4: %5)Error %1 in %2, at line %3, column %4: %5QXmlPatternistCLI&Fehler %1 in %2: %3Error %1 in %2: %3QXmlPatternistCLIunbekanntUnknown locationQXmlPatternistCLITWarnung in %1, bei Zeile %2, Spalte %3: %4(Warning in %1, at line %2, column %3: %4QXmlPatternistCLI"Warnung in %1: %2Warning in %1: %2QXmlPatternistCLI^%1 ist keine gültige Angabe für eine PUBLIC-Id.#%1 is an invalid PUBLIC identifier. QXmlStreamV%1 ist kein gültiger Name für das Encoding.%1 is an invalid encoding name. QXmlStreamt%1 ist kein gültiger Name für eine Prozessing-Instruktion.-%1 is an invalid processing instruction name. QXmlStream@erwartet, stattdessen erhalten ' , but got ' QXmlStream<Redefinition eines Attributes.Attribute redefined. QXmlStreamLDas Encoding %1 wird nicht unterstütztEncoding %1 is unsupported QXmlStreampEs wurde Inhalt mit einer ungültigen Kodierung gefunden.(Encountered incorrectly encoded content. QXmlStreamJDie Entity '%1' ist nicht deklariert.Entity '%1' not declared. QXmlStreamEs wurde  Expected  QXmlStream@Es wurden Zeichendaten erwartet.Expected character data. QXmlStreamZÜberzähliger Inhalt nach Ende des Dokumentes.!Extra content at end of document. QXmlStreamBUngültige Namensraum-Deklaration.Illegal namespace declaration. QXmlStream.Ungültiges XML-Zeichen.Invalid XML character. QXmlStream(Ungültiger XML-Name.Invalid XML name. QXmlStream:Ungültige XML-Versionsangabe.Invalid XML version string. QXmlStreamhDie XML-Deklaration enthält ein ungültiges Attribut.%Invalid attribute in XML declaration. QXmlStream4Ungültige Zeichenreferenz.Invalid character reference. QXmlStream(Ungültiges Dokument.Invalid document. QXmlStream.Ungültiger Entity-Wert.Invalid entity value. QXmlStreambDer Name der Prozessing-Instruktion ist ungültig.$Invalid processing instruction name. QXmlStreamxEine Parameter-Entity-Deklaration darf kein NDATA enthalten.&NDATA in parameter entity declaration. QXmlStreambDer Namensraum-Präfix '%1' wurde nicht deklariert"Namespace prefix '%1' not declared QXmlStreamÀDie Anzahl der öffnenden Elemente stimmt nicht mit der Anzahl der schließenden Elemente überein. Opening and ending tag mismatch. QXmlStream>Vorzeitiges Ende des Dokuments.Premature end of document. QXmlStreamXEs wurde eine rekursive Entity festgestellt.Recursive entity detected. QXmlStreamvIm Attributwert wurde die externe Entity '%1' referenziert.5Reference to external entity '%1' in attribute value. QXmlStreambEs wurde die ungeparste Entity '%1' referenziert."Reference to unparsed entity '%1'. QXmlStreamfIm Inhalt ist die Zeichenfolge ']]>' nicht erlaubt.&Sequence ']]>' not allowed in content. QXmlStreamŠDer Wert für das 'Standalone'-Attribut kann nur 'yes' oder 'no' sein."Standalone accepts only yes or no. QXmlStream6Öffnendes Element erwartet.Start tag expected. QXmlStream†Das Standalone-Pseudoattribut muss dem Encoding unmittelbar folgen.?The standalone pseudo attribute must appear after the encoding. QXmlStream8Ungültig an dieser Stelle '  Unexpected ' QXmlStreamr'%1' ist kein gültiges Zeichen in einer public-id-Angabe./Unexpected character '%1' in public id literal. QXmlStreamRDiese XML-Version wird nicht unterstützt.Unsupported XML version. QXmlStream€Die XML-Deklaration befindet sich nicht am Anfang des Dokuments.)XML declaration not at start of document. QXmlStream¶Die Ausdrücke %1 und %2 passen jeweils auf den Anfang oder das Ende einer beliebigen Zeile.,%1 and %2 match the start and end of a line. QtXmlPatterns¤Das Attribut %1 aus %2 muss die Verwendung '%3' spezifizieren, wie im Basistyp %4.9%1 attribute in %2 must have %3 use like in base type %4. QtXmlPatterns¦Das Attribut %1 in einem abgeleiteten komplexen Typ muss wie im Basistyp '%2' sein.B%1 attribute in derived complex type must be %2 like in base type. QtXmlPatterns´Das Attribut %1 des Elements %2 enthält ungültigen Inhalt: {%3} ist kein Wert des Typs %4.T%1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. QtXmlPatterns€Das Attribut %1 des Elements %2 enthält ungültigen Inhalt: {%3}.:%1 attribute of %2 element contains invalid content: {%3}. QtXmlPatternsœDer Wert des Attributs %1 des Elements %2 ist größer als der des Attributs %3.>%1 attribute of %2 element has larger value than %3 attribute. QtXmlPatternsrDas Attribut %1 des Elements %2 kann nur %3 oder %4 sein.,%1 attribute of %2 element must be %3 or %4. QtXmlPatternsžDas Attribut %1 des Elements %2 muss %3, %4 oder eine Liste der URIs enthalten.A%1 attribute of %2 element must contain %3, %4 or a list of URIs. QtXmlPatterns¸Der Wert des Attributs %1 des Elements %2 muss entweder %3 oder die anderen Werte enthalten.F%1 attribute of %2 element must either contain %3 or the other values. QtXmlPatterns”Das Attribut %1 des Elements %2 kann nur einen der Werte %3 oder %4 haben.9%1 attribute of %2 element must have a value of %3 or %4. QtXmlPatternsnDas Attribut %1 des Elements %2 muss den Wert %3 haben.3%1 attribute of %2 element must have a value of %3. QtXmlPatterns®Das Attribut %1 des Elements %2 muss den Wert %3 haben, da das Attribut %4 gesetzt ist.R%1 attribute of %2 element must have the value %3 because the %4 attribute is set. QtXmlPatternsfDas Attribut %1 des Elements %2 kann nicht %3 sein.*%1 attribute of %2 element must not be %3. QtXmlPatterns:%1 kann nicht bestimmt werden%1 cannot be retrieved QtXmlPatterns~%1 kann keinen komplexen Basistyp haben, der '%2' spezifiziert./%1 cannot have complex base type that has a %2. QtXmlPatternsh%1 enthält eine Facette %2 mit ungültigen Daten: %3.+%1 contains %2 facet with invalid data: %3. QtXmlPatterns6%1 enthält ungültige Daten.%1 contains invalid data. QtXmlPatternsv%1 enthält Oktette, die im Encoding %2 nicht zulässig sind.E%1 contains octets which are disallowed in the requested encoding %2. QtXmlPatterns´Das Element %2 (%1) ist keine gültige Einschränkung des überschriebenen Elements (%3): %4.L%1 element %2 is not a valid restriction of the %3 element it redefines: %4. QtXmlPatterns†Der Wert des Attributs %2 des Elements %1 kann nur %3 oder %4 sein.C%1 element cannot have %2 attribute with value other than %3 or %4. QtXmlPatternsvDer Wert des Attributs %2 des Elements %1 kann nur %3 sein.=%1 element cannot have %2 attribute with value other than %3. QtXmlPatterns„Das Element %1 hat weder das Attribut %2 noch ein Unterelement %3.9%1 element has neither %2 attribute nor %3 child element. QtXmlPatternshDas Element %1 ist in diesem Kontext nicht zulässig.*%1 element is not allowed in this context. QtXmlPatternsfDas Element %1 ist in diesem Bereich nicht zulässig'%1 element is not allowed in this scope QtXmlPatterns¬Wenn das Attribut %3 vorhanden ist, darf das Element %1 nicht im Element %2 vorkommen.G%1 element is not allowed inside %2 element if %3 attribute is present. QtXmlPatterns´Das Element %1 kann nicht den Zielnamensraum %3 als Wert des Attributs '%2' spezifizieren.Y%1 element is not allowed to have the same %2 attribute value as the target namespace %3. QtXmlPatternsâDas Element %1 muss entweder das Attribut %2 spezifizieren oder über eines der Unterelemente %3 oder %4 verfügen.F%1 element must have either %2 attribute or %3 or %4 as child element. QtXmlPatterns‚Das Element %1 muss eines der Attribute %2 oder %3 spezifizieren./%1 element must have either %2 or %3 attribute. QtXmlPatternsŽDie Attribute %2 und %3 können nicht zusammen im Element %1 erscheinen.6%1 element must not have %2 and %3 attribute together. QtXmlPatternspDas Element %1 erfordert eines der Attribute %2 oder %3..%1 element requires either %2 or %3 attribute. QtXmlPatterns¦Das Element %1 darf kein Attribut %3 haben, wenn das Unterelement %2 vorhanden ist.>%1 element with %2 child element must not have a %3 attribute. QtXmlPatterns”In einem Schema ohne Namensraum muss das Element %1 ein Attribut %2 haben.V%1 element without %2 attribute is not allowed inside schema without target namespace. QtXmlPatternspDie Facetten %1 und %2 können nicht zusammen erscheinen.-%1 facet and %2 facet cannot appear together. QtXmlPatterns˜Die Facette %1 kann nicht %2 sein, wenn die Facette %3 des Basistyps %4 ist.5%1 facet cannot be %2 if %3 facet of base type is %4. QtXmlPatterns¨Die Facette %1 kann nicht %2 oder %3 sein, wenn die Facette %4 des Basistyps %5 ist.;%1 facet cannot be %2 or %3 if %4 facet of base type is %5. QtXmlPatternslDie Facette %1 steht im Widerspruch zu der Facette %2. %1 facet collides with %2 facet. QtXmlPatternstDie Facette %1 enthält einen ungültigen regulären Ausdruck,%1 facet contains invalid regular expression QtXmlPatternshDie Facette %1 enthält einen ungültigen Wert %2: %3.'%1 facet contains invalid value %2: %3. QtXmlPatterns’Die Facette %1 muss größer oder gleich der Facette %2 des Basistyps sein.=%1 facet must be equal or greater than %2 facet of base type. QtXmlPatterns‚Die Facette %1 muss größer als die Facette %2 des Basistyps sein.4%1 facet must be greater than %2 facet of base type. QtXmlPatterns’Die Facette %1 muss größer oder gleich der Facette %2 des Basistyps sein.@%1 facet must be greater than or equal to %2 facet of base type. QtXmlPatterns|Die Facette %1 muss kleiner der Facette %2 des Basistyps sein.1%1 facet must be less than %2 facet of base type. QtXmlPatternshDie Facette %1 muss kleiner als die Facette %2 sein.$%1 facet must be less than %2 facet. QtXmlPatterns”Die Facette %1 muss kleiner oder gleich der Facette %2 des Basistyps sein.=%1 facet must be less than or equal to %2 facet of base type. QtXmlPatternsxDie Facette %1 muss kleiner oder gleich der Facette %2 sein.0%1 facet must be less than or equal to %2 facet. QtXmlPatterns”Die Facette %1 muss denselben Wert wie die Facette %2 des Basistyps haben.;%1 facet must have the same value as %2 facet of base type. QtXmlPatternsØBei %1 unterscheidet sich die Anzahl der Felder von der der Identitätseinschränkung %2, auf die es verweist.W%1 has a different number of fields from the identity constraint %2 that it references. QtXmlPatterns|%1 hat ein Attributssuchmuster, nicht jedoch sein Basistyp %2.7%1 has attribute wildcard but its base type %2 has not. QtXmlPatterns^%1 hat eine zirkuläre Vererbung im Basistyp %2.,%1 has inheritance loop in its base type %2. QtXmlPatternsT%1 ist ein komplexer Typ. Eine "cast"-Operation zu komplexen Typen ist nicht möglich. Es können allerdings "cast"-Operationen zu atomare Typen wie %2 durchgeführt werden.s%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. QtXmlPatterns.%1 ist kein gültiges %2%1 is an invalid %2 QtXmlPatterns¨%1 ist kein gültiger Modifizierer für reguläre Ausdrücke. Gültige Modifizierer sind:?%1 is an invalid flag for regular expressions. Valid flags are: QtXmlPatternsH%1 ist kein gültiger Namensraum-URI.%1 is an invalid namespace URI. QtXmlPatternsV%1 ist kein gültiger regulärer Ausdruck: %2/%1 is an invalid regular expression pattern: %2 QtXmlPatternsd%1 ist kein gültiger Name für einen Vorlagenmodus.$%1 is an invalid template mode name. QtXmlPatternsD%1 ist ein unbekannter Schema-Typ.%1 is an unknown schema type. QtXmlPatternsNDas Encoding %1 wird nicht unterstützt.%1 is an unsupported encoding. QtXmlPatternsJ%1 ist kein gültiges XML 1.0 Zeichen.$%1 is not a valid XML 1.0 character. QtXmlPatternst%1 ist kein gültiger Name für eine Processing-Instruktion.4%1 is not a valid name for a processing-instruction. QtXmlPatternsR%1 ist kein gültiger numerischer Literal."%1 is not a valid numeric literal. QtXmlPatternsÎ%1 ist kein gültiger Zielname einer Processing-Anweisung, es muss ein %2 Wert wie zum Beispiel %3 sein.Z%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. QtXmlPatternsL%1 ist kein gültiger Wert des Typs %2.#%1 is not a valid value of type %2. QtXmlPatternsN%1 ist keine ganzzahlige Minutenangabe.$%1 is not a whole number of minutes. QtXmlPatternsÀ%1 darf nicht durch Erweiterung von %2 abgeleitet werden, da letzterer sie als final deklariert.S%1 is not allowed to derive from %2 by extension as the latter defines it as final. QtXmlPatterns¶%1 darf nicht durch Listen von %2 abgeleitet werden, da letzterer sie als final deklariert.N%1 is not allowed to derive from %2 by list as the latter defines it as final. QtXmlPatternsÄ%1 darf nicht durch Einschränkung von %2 abgeleitet werden, da letzterer sie als final deklariert.U%1 is not allowed to derive from %2 by restriction as the latter defines it as final. QtXmlPatternsÈ%1 darf nicht durch Vereinigung von %2 abgeleitet werden, da sie letzterer sie als final deklariert.O%1 is not allowed to derive from %2 by union as the latter defines it as final. QtXmlPatternst%1 darf keinen Typ eines Mitglieds desselben Namens haben.E%1 is not allowed to have a member type with the same name as itself. QtXmlPatterns:%1 darf keine Facetten haben.%%1 is not allowed to have any facets. QtXmlPatterns¸%1 ist kein atomarer Typ. "cast"-Operation können nur zu atomaren Typen durchgeführt werden.C%1 is not an atomic type. Casting is only possible to atomic types. QtXmlPatternsÐ%1 befindet sich nicht unter den Attributdeklarationen im Bereich. Schema-Import wird nicht unterstützt.g%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. QtXmlPatterns0%1 ist nach %2 ungültig. %1 is not valid according to %2. QtXmlPatternsL%1 ist kein gültiger Wert des Typs %2.&%1 is not valid as a value of type %2. QtXmlPatterns\Der Ausdruck '%1' schließt Zeilenvorschübe ein%1 matches newline characters QtXmlPatternsœAuf %1 muss %2 oder %3 folgen; es kann nicht am Ende der Ersetzung erscheinen.J%1 must be followed by %2 or %3, not at the end of the replacement string. QtXmlPatternsèDas Attribut %1 des abgeleiteten Suchmusters ist keine gültige Einschränkung des Attributs '%2' des BasissuchmustersH%1 of derived wildcard is not a valid restriction of %2 of base wildcard QtXmlPatterns¬Das Attribut %1 oder %2 des Verweises %3 entspricht nicht der Attributsdeklaration %4.T%1 or %2 attribute of reference %3 does not match with the attribute declaration %4. QtXmlPatterns¼%1 verweist auf eine Identitätseinschränkung %2, die weder ein '%3' noch ein '%4' Element ist.A%1 references identity constraint %2 that is no %3 or %4 element. QtXmlPatternsx%1 verweist auf ein unbekanntes Element %4 ('%2' oder '%3').*%1 references unknown %2 or %3 element %4. QtXmlPatternsŽ%1 erfordert mindestens ein Argument; die Angabe %3 ist daher ungültig.Ž%1 erfordert mindestens %n Argumente; die Angabe %3 ist daher ungültig.=%1 requires at least %n argument(s). %2 is therefore invalid. QtXmlPatternsr%1 hat nur %n Argument; die Angabe %2 ist daher ungültig.t%1 hat nur %n Argumente; die Angabe %2 ist daher ungültig.9%1 takes at most %n argument(s). %2 is therefore invalid. QtXmlPatterns"%1 wurde gerufen.%1 was called. QtXmlPatterns¬Die Facetten %1, %2, %3, %4, %5 und %6 sind bei Vererbung durch Listen nicht zulässig.F%1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. QtXmlPatternsˆDas Attribut '%1' enthält einen ungültigen qualifizierten Namen: %2.2'%1' attribute contains invalid QName content: %2. QtXmlPatternsJEin Kommentar darf nicht'%1 enthaltenA comment cannot contain %1 QtXmlPatternsLEin Kommentar darf nicht auf %1 enden.A comment cannot end with a %1. QtXmlPatterns¼Es wurde ein Sprachkonstrukt angetroffen, was in der aktuellen Sprache (%1) nicht erlaubt ist.LA construct was encountered which is disallowed in the current language(%1). QtXmlPatternsÒDie Deklaration des Default-Namensraums muss vor Funktions-, Variablen- oder Optionsdeklaration erfolgen.^A default namespace declaration must occur before function, variable, and option declarations. QtXmlPatterns¢Es wurde ein fehlerhafter direkter Element-Konstruktor gefunden. %1 endet mit %2.EA direct element constructor is not well-formed. %1 is ended with %2. QtXmlPatternsnEs existiert bereits eine Funktion mit der Signatur %1.0A function already exists with the signature %1. QtXmlPatternsÔEin Bibliotheksmodul kann nicht direkt ausgewertet werden, er muss von einem Hauptmodul importiert werden.VA library module cannot be evaluated directly. It must be imported from a main module. QtXmlPatternsŠDer Parameter einer Funktion kann nicht als Tunnel deklariert werden.Can not process unknown element %1, expected elements are: %2. QtXmlPatternsˆDas Unterelement fehlt im Bereich; mögliche Unterelemente wären: %1.HChild element is missing in that scope, possible child elements are: %1. QtXmlPatterns4Zirkulärer Verweis bei %1. Circular group reference for %1. QtXmlPatternsFZirkuläre Vererbung im Basistyp %1.%Circular inheritance of base type %1. QtXmlPatternsVZirkuläre Vererbung bei der Vereinigung %1.!Circular inheritance of union %1. QtXmlPatterns Der komplexe Typ %1 kann nicht durch Erweiterung von %2 abgeleitet werden, da letzterer ein '%3'-Element in seinem Inhaltsmodell hat.nComplex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. QtXmlPatterns†Der komplexe Typ %1 kann nicht vom Basistyp %2 abgeleitet werden%3.6Complex type %1 cannot be derived from base type %2%3. QtXmlPatternsêDer komplexe Typ %1 enthält ein Attribut %2 mit einer Einschränkung des Werts, dessen Typ aber von %3 abgeleitet ist._Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. QtXmlPatternshDer komplexe Typ %1 enthält das Attribut %2 doppelt.,Complex type %1 contains attribute %2 twice. QtXmlPatternsÌDie Attributgruppe %1 enthält zwei verschiedene Attribute mit Typen, die beide von %2 abgeleitet sind.WComplex type %1 contains two different attributes that both have types derived from %2. QtXmlPatterns˜Der komplexe Typ %1 hat ein dupliziertes Element %2 in seinem Inhaltsmodell.?Complex type %1 has duplicated element %2 in its content model. QtXmlPatternsnDer komplexe Typ %1 hat nicht-deterministischen Inhalt..Complex type %1 has non-deterministic content. QtXmlPatternsZDer komplexe Typ %1 kann nicht abstrakt sein..Complex type %1 is not allowed to be abstract. QtXmlPatternshDer komplexe Typ %1 kann nur einfachen Inhalt haben.)Complex type %1 must have simple content. QtXmlPatterns”Der komplexe Typ %1 kann nur einen einfachen Typ als Basisklasse %2 haben.DComplex type %1 must have the same simple type as its base class %2. QtXmlPatternsºDer komplexe Typ %1 einfachen Inhalts darf nicht vom komplexen Basistyp %2 abgeleitet werden.PComplex type %1 with simple content cannot be derived from complex base type %2. QtXmlPatterns¸Der komplexe Typ des abgeleiteten Elements %1 kann nicht vom Basiselement abgeleitet werden.OComplex type of derived element %1 cannot be validly derived from base element. QtXmlPatternsrEs wurde bereits eine Komponente mit der ID %1 definiert.1Component with ID %1 has been defined previously. QtXmlPatterns6Das Inhaltsmodell des komplexen Typs %1enthält ein Element '%2'; es kann daher nicht durch Erweiterung von einem Typ abgeleitet werden, der nicht leer ist.pContent model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. QtXmlPatternsÀDas Inhaltsmodell des komplexen Typs %1 ist keine gültige Erweiterung des Inhaltsmodells von %2.QContent model of complex type %1 is not a valid extension of content model of %2. QtXmlPatterns¢Der Inhalt des Attributs %1 des Elements %2 kann nicht vom Namensraum %3 stammen.DContent of %1 attribute of %2 element must not be from namespace %3. QtXmlPatternsªDer Inhalt des Attributs %1 entspricht nicht der definierten Einschränkung des Werts.@Content of attribute %1 does not match defined value constraint. QtXmlPatternsŒDer Inhalt des Attributs %1 entspricht nicht seiner Typdefinition: %2.?Content of attribute %1 does not match its type definition: %2. QtXmlPatterns¨Der Inhalt des Elements %1 entspricht nicht der definierten Einschränkung des Werts.>Content of element %1 does not match defined value constraint. QtXmlPatternsŠDer Inhalt des Elements %1 entspricht nicht seiner Typdefinition: %2.=Content of element %1 does not match its type definition: %2. QtXmlPatternsPDaten vom Typ %1 können nicht leer sein.,Data of type %1 are not allowed to be empty. QtXmlPatternspDie Datumsangabe entspricht nicht der Suchmusterfacette./Date time content does not match pattern facet. QtXmlPatternszDie Datumsangabe entspricht nicht der Facette 'maxExclusive'.8Date time content does not match the maxExclusive facet. QtXmlPatternszDie Datumsangabe entspricht nicht der Facette 'maxInclusive'.8Date time content does not match the maxInclusive facet. QtXmlPatternszDie Datumsangabe entspricht nicht der Facette 'minExclusive'.8Date time content does not match the minExclusive facet. QtXmlPatternszDie Datumsangabe entspricht nicht der Facette 'minInclusive'.8Date time content does not match the minInclusive facet. QtXmlPatterns~Die Datumsangabe ist nicht in der Aufzählungsfacette enthalten.9Date time content is not listed in the enumeration facet. QtXmlPatternsbDie Tagesangabe %1 ist für den Monat %2 ungültig.Day %1 is invalid for month %2. QtXmlPatternslDie Tagesangabe %1 ist außerhalb des Bereiches %2..%3.#Day %1 is outside the range %2..%3. QtXmlPatternszDie Dezimalzahl entspricht nicht der Facette 'fractionDigit'.;Decimal content does not match in the fractionDigits facet. QtXmlPatternsvDie Dezimalzahl entspricht nicht der Facette 'totalDigits'.8Decimal content does not match in the totalDigits facet. QtXmlPatternshFür das Attribut %1 ist keine Deklaration verfügbar.,Declaration for attribute %1 does not exist. QtXmlPatternsfFür das Element %1 ist keine Deklaration verfügbar.*Declaration for element %1 does not exist. QtXmlPatternsÒErweiterung muss als Vererbungsmethode für %1 verwendet werden, da der Basistyp %2 ein einfacher Typ ist.TDerivation method of %1 must be extension because the base type %2 is a simple type. QtXmlPatterns†Das abgeleitete Attribut %1 existiert in der Basisdefinition nicht.;Derived attribute %1 does not exist in the base definition. QtXmlPatterns¦Das abgeleitete Attribut %1 entspricht nicht dem Suchmuster in der Basisdefinition.HDerived attribute %1 does not match the wildcard in the base definition. QtXmlPatternsºDie abgeleitete Definition enthält ein Element %1, was in der Basisdefinition nicht existiertUDerived definition contains an %1 element that does not exists in the base definition QtXmlPatternsÐDas abgeleitete Element %1 kann kein 'nillable'-Attribut haben, da das Basiselement keines spezifiziert.FDerived element %1 cannot be nillable as base element is not nillable. QtXmlPatterns¼Das abgeleitete Element %1 hat eine schwächere Einschränkung des Wertes als der Basispartikel.BDerived element %1 has weaker value constraint than base particle. QtXmlPatternsÄIm abgeleiteten Element %1 fehlt Einschränkung des Wertes, wie sie im Basispartikel definiert ist.KDerived element %1 is missing value constraint as defined in base particle. QtXmlPatterns°Der abgeleitete Partikel gestattet Inhalt, der für den Basispartikel nicht zulässig ist.IDerived particle allows content that is not allowed in the base particle. QtXmlPatterns\Das Element %1 fehlt im abgeleiteten Partikel.'Derived particle is missing element %1. QtXmlPatternsŠDas abgeleitete Suchmuster ist keine Untermenge des Basissuchmusters.6Derived wildcard is not a subset of the base wildcard. QtXmlPatterns²Die Division eines Werts des Typs %1 durch %2 (kein numerischer Wert) ist nicht zulässig.@Dividing a value of type %1 by %2 (not-a-number) is not allowed. QtXmlPatternsÊDie Division eines Werts des Typs %1 durch %2 oder %3 (positiv oder negativ Null) ist nicht zulässig.LDividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. QtXmlPatternslDie Division (%1) durch Null (%2) ist nicht definiert.(Division (%1) by zero (%2) is undefined. QtXmlPatternsBDas Dokument ist kein XML-Schema.Document is not a XML schema. QtXmlPatternstDie Gleitkommazahl entspricht nicht der Suchmusterfacette.,Double content does not match pattern facet. QtXmlPatterns~Die Gleitkommazahl entspricht nicht der Facette 'maxExclusive'.5Double content does not match the maxExclusive facet. QtXmlPatterns~Die Gleitkommazahl entspricht nicht der Facette 'maxInclusive'.5Double content does not match the maxInclusive facet. QtXmlPatterns~Die Gleitkommazahl entspricht nicht der Facette 'minExclusive'.5Double content does not match the minExclusive facet. QtXmlPatterns~Die Gleitkommazahl entspricht nicht der Facette 'minInclusive'.5Double content does not match the minInclusive facet. QtXmlPatterns‚Die Gleitkommazahl ist nicht in der Aufzählungsfacette enthalten.6Double content is not listed in the enumeration facet. QtXmlPatternshDer Elementname %1 kommt im Element %2 mehrfach vor.*Duplicated element names %1 in %2 element. QtXmlPatternsbIm einfachen Typ %1 kommen Facetten mehrfach vor.$Duplicated facets in simple type %1. QtXmlPatterns€Die Angabe der Zeitdauer entspricht nicht der Suchmusterfacette..Duration content does not match pattern facet. QtXmlPatternsŠDie Angabe der Zeitdauer entspricht nicht der Facette 'maxExclusive'.7Duration content does not match the maxExclusive facet. QtXmlPatternsŠDie Angabe der Zeitdauer entspricht nicht der Facette 'maxInclusive'.7Duration content does not match the maxInclusive facet. QtXmlPatternsŠDie Angabe der Zeitdauer entspricht nicht der Facette 'minExclusive'.7Duration content does not match the minExclusive facet. QtXmlPatternsŠDie Angabe der Zeitdauer entspricht nicht der Facette 'minInclusive'.7Duration content does not match the minInclusive facet. QtXmlPatternsŽDie Angabe der Zeitdauer ist nicht in der Aufzählungsfacette enthalten.8Duration content is not listed in the enumeration facet. QtXmlPatternsšDie Namen von Vorlagenparametern müssen eindeutig sein, %1 existiert bereits.CEach name of a template parameter must be unique; %1 is duplicated. QtXmlPatternsÜDer effektive Boolesche Wert einer Sequenz aus zwei oder mehreren atomaren Werten kann nicht berechnet werden.aEffective Boolean Value cannot be calculated for a sequence containing two or more atomic values. QtXmlPatternsJDas Element %1 ist bereits definiert.Element %1 already defined. QtXmlPatternsÀDas Element %1 kann nicht serialisiert werden, da es außerhalb des Dokumentenelements erscheint.OElement %1 can't be serialized because it appears outside the document element. QtXmlPatterns¦Das Element %1 kann keine anderen Element enthalten, da sein Inhalt festgelegt ist.DElement %1 cannot contain other elements, as it has a fixed content. QtXmlPatternshDas Element %1 kann keinen Sequenzkonstruktor haben..Element %1 cannot have a sequence constructor. QtXmlPatternsZDas Element %1 kann keine Kindelemente haben. Element %1 cannot have children. QtXmlPatternsRDas Element %1 enthält ungültigen Inhalt.$Element %1 contains invalid content. QtXmlPatternsZDas Element %1 enthält unzulässige Attribute.+Element %1 contains not allowed attributes. QtXmlPatterns`Das Element %1 enthält unzulässigen Unterinhalt..Element %1 contains not allowed child content. QtXmlPatternsjDas Element %1 enthält ein unzulässiges Unterelement..Element %1 contains not allowed child element. QtXmlPatterns^Das Element %1 enthält unzulässigen Textinhalt.-Element %1 contains not allowed text content. QtXmlPatternsdDas Element %1 enthält zwei Attribute des Typs %2..Element %1 contains two attributes of type %2. QtXmlPatternsfDas Element %1 enthält ein unbekanntes Attribut %2.)Element %1 contains unknown attribute %2. QtXmlPatternsžDas Element %1 entspricht nicht der Namensraumeinschränkung des Basispartikels.LElement %1 does not match namespace constraint of wildcard in base particle. QtXmlPatterns€Es existieren zwei Vorkommen verschiedenen Typs des Elements %1.-Element %1 exists twice with different types. QtXmlPatternsVDas Element %1 ist als abstrakt deklariert.#Element %1 is declared as abstract. QtXmlPatternsNBeim Element %1 fehlt ein Unterelement.$Element %1 is missing child element. QtXmlPatterns\Das Element %1 fehlt im abgeleiteten Partikel.*Element %1 is missing in derived particle. QtXmlPatternspBei dem Element %1 fehlt ein erforderliches Attribut %2.,Element %1 is missing required attribute %2. QtXmlPatternsdDas Element %1 darf nicht an dieser Stelle stehen.+Element %1 is not allowed at this location. QtXmlPatternsŽDas Element %1 ist in diesem Bereich nicht zulässig; möglich wären: %2.CElement %1 is not allowed in this scope, possible elements are: %2. QtXmlPatterns®Das Element %1 darf keine Einschränkung des Werts haben, wenn der Basistyp komplex ist.QElement %1 is not allowed to have a value constraint if its base type is complex. QtXmlPatternsºDas Element %1 darf keine Einschränkung des Werts haben, wenn sein Typ von %2 abgeleitet ist.TElement %1 is not allowed to have a value constraint if its type is derived from %2. QtXmlPatternsÀDas Element %1 kann nicht zu einer Substitutionsgruppe gehören, da es kein globales Element ist.\Element %1 is not allowed to have substitution group affiliation as it is no global element. QtXmlPatternsjDas Element %1 ist in diesem Bereich nicht definiert.(Element %1 is not defined in this scope. QtXmlPatterns|Das Element %1 hat das Attribut 'nillable' nicht spezifiziert.Element %1 is not nillable. QtXmlPatternsFDas Element %1 muss zuletzt stehen.Element %1 must come last. QtXmlPatternsˆDas Element %1 muss mindestens eines der Attribute %2 oder %3 haben.=Element %1 must have at least one of the attributes %2 or %3. QtXmlPatternsÐDas Element %1 muss entweder ein %2-Attribut haben oder es muss ein Sequenzkonstruktor verwendet werden.EElement %1 must have either a %2-attribute or a sequence constructor. QtXmlPatternstDas Element hat Inhalt, obwohl es 'nillable' spezifiziert.1Element contains content although it is nillable. QtXmlPatternsVDie Elementgruppe %1 ist bereits definiert.!Element group %1 already defined. QtXmlPatterns¬Es kann kein leerer Partikel von einem Partikel abgeleitet werden, der nicht leer ist.9Empty particle cannot be derived from non-empty particle. QtXmlPatterns–Ungültiger Inhalt einer Aufzählungsfacette: {%1} ist kein Wert des Typs %2.KEnumeration facet contains invalid content: {%1} is not a value of type %2. QtXmlPatternsJDas Feld %1 hat keinen einfachen Typ.Field %1 has no simple type. QtXmlPatternsÊEine Beschränkung auf einen festen Wert ist nicht zulässig, wenn das Element 'nillable' spezifiziert.:Fixed value constraint not allowed if element is nillable. QtXmlPatternsôDie feste Einschränkung des Wertes des Elements %1 unterscheidet sich von der Einschränkung des Wertes des Basispartikels.TFixed value constraint of element %1 differs from value constraint in base particle. QtXmlPatternsJDer ID-Wert '%1' ist nicht eindeutig.ID value '%1' is not unique. QtXmlPatternsjDie Identitätseinschränkung %1 ist bereits definiert.'Identity constraint %1 already defined. QtXmlPatternsÜWenn beide Werte mit Zeitzonen angegeben werden, müssen diese übereinstimmen. %1 und %2 sind daher unzulässig.bIf both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. QtXmlPatternsÀDas Element %1 darf keines der Attribute %3 oder %4 haben, solange es nicht das Attribut %2 hat.EIf element %1 has no attribute %2, it cannot have attribute %3 or %4. QtXmlPatterns0Es kann kein Präfix angegeben werden, wenn das erste Argument leer oder eine leere Zeichenkette (kein Namensraum) ist. Es wurde der Präfix %1 angegeben.ŠIf the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. QtXmlPatterns¼Im Konstruktor eines Namensraums darf der Wert des Namensraumes keine leere Zeichenkette sein.PIn a namespace constructor, the value for a namespace cannot be an empty string. QtXmlPatterns˜In einem vereinfachten Stylesheet-Modul muss das Attribut %1 vorhanden sein.@In a simplified stylesheet module, attribute %1 must be present. QtXmlPatterns¼Bei einem XSL-T-Suchmuster dürfen nur die Achsen %2 oder %3 verwendet werden, nicht jedoch %1.DIn an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. QtXmlPatterns˜Bei einem XSL-T-Suchmuster darf die Funktion %1 kein drittes Argument haben.>In an XSL-T pattern, function %1 cannot have a third argument. QtXmlPatternsÖBei einem XSL-T-Suchmuster dürfen nur die Funktionen %1 und %2, nicht jedoch %3 zur Suche verwendet werden.OIn an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. QtXmlPatternsBei einem XSL-T-Suchmuster muss das erste Argument zur Funktion %1 bei der Verwendung zur Suche ein Literal oder eine Variablenreferenz sein.yIn an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. QtXmlPatternsþBei einem XSL-T-Suchmuster muss das erste Argument zur Funktion %1 bei der Verwendung zur Suche ein Zeichenketten-Literal sein.hIn an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. QtXmlPatternsÆIn der Ersetzung kann %1 nur verwendet werden, um sich selbst oder %2 schützen, nicht jedoch für %3MIn the replacement string, %1 can only be used to escape itself or %2, not %3 QtXmlPatternsÌIn der Ersetzung muss auf %1 eine Ziffer folgen, wenn es nicht durch ein Escape-Zeichen geschützt ist.VIn the replacement string, %1 must be followed by at least one digit when not escaped. QtXmlPatterns|Die Ganzzahldivision (%1) durch Null (%2) ist nicht definiert.0Integer division (%1) by zero (%2) is undefined. QtXmlPatternslDer Inhalt des qualifizierten Namens ist ungültig: %1.Invalid QName content: %1. QtXmlPatternsPDer Präfix %1 kann nicht gebunden werden+It is not possible to bind to the prefix %1 QtXmlPatternsZDer Präfix %1 kann nicht redeklariert werden.*It is not possible to redeclare prefix %1. QtXmlPatterns<%1 kann nicht bestimmt werden.'It will not be possible to retrieve %1. QtXmlPatterns`Attribute dürfen nicht auf andere Knoten folgen.AIt's not possible to add attributes after any other kind of node. QtXmlPatternstDer Subtyp %1 des Elements %2 kann nicht aufgelöst werden..Item type %1 of %2 element cannot be resolved. QtXmlPatternsˆDer Elementtyp des Basistyps entspricht nicht dem Elementtyp von %1.6Item type of base type does not match item type of %1. QtXmlPatterns„Der Elementtyp des einfachen Typs %1 kann kein komplexer Typ sein.5Item type of simple type %1 cannot be a complex type. QtXmlPatternsˆDie Einschränkung des Schlüssels %1 enthält nicht vorhandene Felder.)Key constraint %1 contains absent fields. QtXmlPatternsºDie Einschränkung des Schlüssels %1 verweist auf das Element %2, was 'nillable' spezifiziert.:Key constraint %1 contains references nillable element %2. QtXmlPatternshDer Listeninhalt entspricht nicht der Längenfacette.)List content does not match length facet. QtXmlPatternstDer Listeninhalt entspricht nicht der Facette 'maxLength'.,List content does not match maxLength facet. QtXmlPatternstDer Listeninhalt entspricht nicht der Facette 'minLength'.,List content does not match minLength facet. QtXmlPatternspDer Listeninhalt entspricht nicht der Suchmusterfacette.*List content does not match pattern facet. QtXmlPatterns~Der Listeninhalt ist nicht in der Aufzählungsfacette enthalten.4List content is not listed in the enumeration facet. QtXmlPatternsBDas geladene Schema ist ungültig.Loaded schema file is invalid. QtXmlPatternsPGroß/Kleinschreibung wird nicht beachtetMatches are case insensitive QtXmlPatterns²Der Typ %1 des Mitglieds darf nicht vom Typ %2 des Mitglieds vom Basistyp %4 von %3 sein.JMember type %1 cannot be derived from member type %2 of %3's base type %4. QtXmlPatternstDer Subtyp %1 des Elements %2 kann nicht aufgelöst werden.0Member type %1 of %2 element cannot be resolved. QtXmlPatterns–Der Typ eines Mitglieds des einfachen Typs %1 kann kein komplexer Typ sein.7Member type of simple type %1 cannot be a complex type. QtXmlPatterns¢Modul-Importe müssen vor Funktions-, Variablen- oder Optionsdeklarationen stehen.MModule imports must occur before function, variable, and option declarations. QtXmlPatternszDie Modulo-Division (%1) durch Null (%2) ist nicht definiert.0Modulus division (%1) by zero (%2) is undefined. QtXmlPatternsnDie Monatsangabe %1 ist außerhalb des Bereiches %2..%3.%Month %1 is outside the range %2..%3. QtXmlPatterns\Für das Feld %1 wurden mehrere Werte gefunden.'More than one value found for field %1. QtXmlPatternsÜDie Multiplikation eines Werts des Typs %1 mit %2 oder %3 (positiv oder negativ unendlich) ist nicht zulässig.YMultiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. QtXmlPatterns¢Der Namensraum %1 kann nur an %2 gebunden werden. Dies ist bereits vordeklariert.ONamespace %1 can only be bound to %2 (and it is, in either case, pre-declared). QtXmlPatterns¸Namensraums-Deklarationen müssen vor Funktions- Variablen- oder Optionsdeklarationen stehen.UNamespace declarations must occur before function, variable, and option declarations. QtXmlPatternsŽDer Namensraum-Präfix des qualifizierten Namens %1 ist nicht definiert.5Namespace prefix of qualified name %1 is not defined. QtXmlPatternspDas Zeitlimit der Netzwerkoperation wurde überschritten.Network timeout. QtXmlPatternsdFür das Element %1 ist keine Definition verfügbar.'No definition for element %1 available. QtXmlPatternsExterne Funktionen werden nicht unterstützt. Alle unterstützten Funktionen können direkt verwendet werden, ohne sie als extern zu deklarieren{No external functions are supported. All supported functions can be used directly, without first declaring them as external QtXmlPatterns\Es ist keine Funktion des Namens %1 verfügbar.&No function with name %1 is available. QtXmlPatterns^Es existiert keine Funktion mit der Signatur %1*No function with signature %1 is available QtXmlPatternsnEs existiert keine Namensraum-Bindung für den Präfix %1-No namespace binding exists for the prefix %1 QtXmlPatternszEs existiert keine Namensraum-Bindung für den Präfix %1 in %23No namespace binding exists for the prefix %1 in %2 QtXmlPatternsšDer referenzierte Wert der Schlüsselreferenz %1 konnte nicht gefunden werden./No referenced value found for key reference %1. QtXmlPatternsbEs ist kein Schema für die Validierung definiert.!No schema defined for validation. QtXmlPatternsXEs existiert keine Vorlage mit dem Namen %1.No template by name %1 exists. QtXmlPatterns„Es ist kein Wert für die externe Variable des Namens %1 verfügbar.=No value is available for the external variable with name %1. QtXmlPatternsREs existiert keine Variable des Namens %1No variable with name %1 exists QtXmlPatterns†Für die Einschränkung %1 wurde ein nicht eindeutiger Wert gefunden.)Non-unique value found for constraint %1. QtXmlPatterns´Es muss ein fallback-Ausdruck vorhanden sein, da keine pragma-Ausdrücke unterstützt werden^None of the pragma expressions are supported. Therefore, a fallback expression must be present QtXmlPatternsLDie Notation %1 ist bereits definiert.Notation %1 already defined. QtXmlPatternsŒDer Inhalt der Notation ist nicht in der Aufzählungsfacette enthalten.8Notation content is not listed in the enumeration facet. QtXmlPatterns’Bei Vererbung durch Vereinigung sind nur die Facetten %1 und %2 zulässig.8Only %1 and %2 facets are allowed when derived by union. QtXmlPatternstDer Anfrage-Prolog darf nur eine %1-Deklaration enthalten.6Only one %1 declaration can occur in the query prolog. QtXmlPatternsVEs darf nur ein einziges %1-Element stehen.Only one %1-element can appear. QtXmlPatterns¨Es wird nur Unicode Codepoint Collation unterstützt (%1). %2 wird nicht unterstützt.IOnly the Unicode Codepoint Collation is supported(%1). %2 is unsupported. QtXmlPatternszAn %2 kann nur der Präfix %1 gebunden werden (und umgekehrt).5Only the prefix %1 can be bound to %2 and vice versa. QtXmlPatterns¤Der Operator %1 kann nicht auf atomare Werte der Typen %2 und %3 angewandt werden.>Operator %1 cannot be used on atomic values of type %2 and %3. QtXmlPatternsvDer Operator %1 kann nicht auf den Typ %2 angewandt werden.&Operator %1 cannot be used on type %2. QtXmlPatternslDas Datum %1 kann nicht dargestellt werden (Überlauf)."Overflow: Can't represent date %1. QtXmlPatternsfDas Datum kann nicht dargestellt werden (Überlauf).$Overflow: Date can't be represented. QtXmlPatterns Parse-Fehler: %1Parse error: %1 QtXmlPatternsnDer Partikel enthält nicht-deterministische Suchmuster..Particle contains non-deterministic wildcards. QtXmlPatternsšDer Präfix %1 kann nur an %2 gebunden werden. Dies ist bereits vordeklariert.LPrefix %1 can only be bound to %2 (and it is, in either case, pre-declared). QtXmlPatternsbDer Präfix %1 wurde bereits im Prolog deklariert.,Prefix %1 is already declared in the prolog. QtXmlPatternsxDer Präfix des qualifizierten Namens %1 ist nicht definiert.+Prefix of qualified name %1 is not defined. QtXmlPatternsŒDie Wandlung von %1 zu %2 kann zu einem Verlust an Genauigkeit führen./Promoting %1 to %2 may cause loss of precision. QtXmlPatterns˜Der Inhalt des qualifizierten Namens entspricht nicht der Suchmusterfacette.+QName content does not match pattern facet. QtXmlPatterns¦Der Inhalt des qualifizierten Namens ist nicht in der Aufzählungsfacette enthalten.5QName content is not listed in the enumeration facet. QtXmlPatternsvDer Verweis %1 des Elements %2 kann nicht aufgelöst werden..Reference %1 of %2 element cannot be resolved. QtXmlPatternsnDie erforderliche Kardinalität ist %1 (gegenwärtig %2)./Required cardinality is %1; got cardinality %2. QtXmlPatternsrDer erforderliche Typ ist %1, es wurde aber %2 angegeben.&Required type is %1, but %2 was found. QtXmlPatterns¢Es wird ein XSL-T-1.0-Stylesheet mit einem Prozessor der Version 2.0 verarbeitet.5Running an XSL-T 1.0 stylesheet with a 2.0 processor. QtXmlPatterns Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette 'totalDigits'.?Signed integer content does not match in the totalDigits facet. QtXmlPatterns˜Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Suchmusterfacette.4Signed integer content does not match pattern facet. QtXmlPatterns¢Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette 'maxExclusive'.=Signed integer content does not match the maxExclusive facet. QtXmlPatterns¢Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette 'maxInclusive'.=Signed integer content does not match the maxInclusive facet. QtXmlPatterns¢Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette 'minExclusive'.=Signed integer content does not match the minExclusive facet. QtXmlPatterns¢Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette 'minInclusive'.=Signed integer content does not match the minInclusive facet. QtXmlPatterns¦Der vorzeichenbehaftete Ganzzahlwert ist nicht in der Aufzählungsfacette enthalten.>Signed integer content is not listed in the enumeration facet. QtXmlPatternsŒDer einfache Typ %1 kann nur einen einfachen. atomaren Basistyp haben.=Simple type %1 can only have simple atomic type as base type. QtXmlPatterns¸%1 darf nicht von %2 abgeleitet werden, da letzterer die Einschränkung als final deklariert.PSimple type %1 cannot derive from %2 as the latter defines restriction as final. QtXmlPatterns†Der einfache Typ %1 kann nicht den unmittelbaren Basistyp %2 haben./Simple type %1 cannot have direct base type %2. QtXmlPatterns‚Der einfache Typ %1 enthält einen nicht erlaubten Facettentyp %2.2Simple type %1 contains not allowed facet type %2. QtXmlPatternsjDer einfache Typ %1 darf nicht den Basistyp %2 haben.3Simple type %1 is not allowed to have base type %2. QtXmlPatternsdDer einfache Typ %1 darf nur die Facette %2 haben.0Simple type %1 is only allowed to have %2 facet. QtXmlPatternsjDer einfache Typ enthält eine unzulässige Facette %1.*Simple type contains not allowed facet %1. QtXmlPatterns¸Der einfache Typ des abgeleiteten Elements %1 kann nicht vom Basiselement abgeleitet werden.NSimple type of derived element %1 cannot be validly derived from base element. QtXmlPatternsnDer angegebene Typ %1 ist im Schema nicht spezifiziert.-Specified type %1 is not known to the schema. QtXmlPatternsšDer angebenene Typ %1 kann nicht durch den Elementtyp %2 substituiert werden.DSpecified type %1 is not validly substitutable with element type %2. QtXmlPatterns¦Die Angabe von use='prohibited' in einer Attributgruppe hat keinerlei Auswirkungen.DSpecifying use='prohibited' inside an attribute group has no effect. QtXmlPatterns~Der Zeichenketteninhalt entspricht nicht der Suchmusterfacette.,String content does not match pattern facet. QtXmlPatternsvDer Zeichenketteninhalt entspricht nicht der Längenfacette./String content does not match the length facet. QtXmlPatterns–Der Zeichenketteninhalt entspricht nicht der Längenfacette (Maximumangabe).2String content does not match the maxLength facet. QtXmlPatterns–Der Zeichenketteninhalt entspricht nicht der Längenfacette (Minimumangabe).2String content does not match the minLength facet. QtXmlPatternsŒDer Zeichenketteninhalt ist nicht in der Aufzählungsfacette enthalten.6String content is not listed in the enumeration facet. QtXmlPatternsrDie Substitutionsgruppe %1 hat eine zirkuläre Definition..Substitution group %1 has circular definition. QtXmlPatternsŽDie Substitutionsgruppe %1 des Elements %2 kann nicht aufgelöst werden.7Substitution group %1 of %2 element cannot be resolved. QtXmlPatternsàDer Zielnamensraum %1 des importierten Schemas unterscheidet sich vom dem von ihm definierten Zielnamensraum %2.tTarget namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. QtXmlPatternsâDer Zielnamensraum %1 des eingebundenen Schemas unterscheidet sich vom dem von ihm definierten Zielnamensraum %2.tTarget namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. QtXmlPatterns`An dieser Stelle dürfen keine Textknoten stehen.,Text nodes are not allowed at this location. QtXmlPatternsœText- oder Entitätsreferenzen sind innerhalb eines %1-Elements nicht zulässig.7Text or entity references not allowed inside %1 element QtXmlPatternsZDie %1-Achse wird in XQuery nicht unterstützt$The %1-axis is unsupported in XQuery QtXmlPatterns–Die Deklaration %1 ist unzulässig, da Schema-Import nicht unterstützt wird.WThe Schema Import feature is not supported, and therefore %1 declarations cannot occur. QtXmlPatterns²%1-Ausdrücke können nicht verwendet werden, da Schemavalidierung nicht unterstützt wird. VThe Schema Validation Feature is not supported. Hence, %1-expressions may not be used. QtXmlPatternsJDer URI darf kein Fragment enthalten.The URI cannot have a fragment QtXmlPatternshNur das erste %2-Element darf das Attribut %1 haben.9The attribute %1 can only appear on the first %2 element. QtXmlPatterns%2 darf nicht das Attribut %1 haben, wenn es ein Kindelement von %3 ist.?The attribute %1 cannot appear on %2, when it is a child of %3. QtXmlPatternsŽDer Code-Punkt %1 aus %2 mit Encoding %3 ist kein gültiges XML-Zeichen.QThe codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. QtXmlPatternsžDie Daten einer Processing-Anweisung dürfen nicht die Zeichenkette %1 enthaltenAThe data of a processing instruction cannot contain the string %1 QtXmlPatterns^Für eine Kollektion ist keine Vorgabe definiert#The default collection is undefined QtXmlPatternsDie Kodierung %1 ist ungültig; sie darf nur aus lateinischen Buchstaben bestehen und muss dem regulären Ausdruck %2 entsprechen.‰The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. QtXmlPatternsöDas erste Argument von %1 darf nicht vom Typ %2 sein; es muss numerisch, xs:yearMonthDuration oder xs:dayTimeDuration sein.uThe first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. QtXmlPatternsÄDas erste Argument von %1 kann nicht vom Typ %2 sein, es muss einer der Typen %3, %4 oder %5 sein.PThe first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. QtXmlPatterns8Es ist kein Fokus definiert.The focus is undefined. QtXmlPatterns†Die Initialisierung der Variable %1 hängt von ihrem eigenem Wert ab3The initialization of variable %1 depends on itself QtXmlPatternstDas Element %1 entspricht nicht dem erforderlichen Typ %2./The item %1 did not match the required type %2. QtXmlPatterns®Das Schlüsselwort %1 kann nicht mit einem anderen Modusnamen zusammen verwendet werden.5The keyword %1 cannot occur with any other mode name. QtXmlPatternsþDer letzte Schritt eines Pfades kann entweder nur Knoten oder nur atomare Werte enthalten. Sie dürfen nicht zusammen auftreten.kThe last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. QtXmlPatternsFModul-Import wird nicht unterstützt*The module import feature is not supported QtXmlPatterns`Der Name %1 hat keinen Bezug zu einem Schematyp..The name %1 does not refer to any schema type. QtXmlPatternsÆDer Name eines berechneten Attributes darf keinen Namensraum-URI %1 mit dem lokalen Namen %2 haben.ZThe name for a computed attribute cannot have the namespace URI %1 with the local name %2. QtXmlPatternsHDer Name der gebundenen Variablen eines for-Ausdrucks muss sich von dem der Positionsvariable unterscheiden. Die zwei Variablen mit dem Namen %1 stehen im Konflikt.‹The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. QtXmlPatterns˜Der Name eines Erweiterungsausdrucks muss sich in einem Namensraum befinden.;The name of an extension expression must be in a namespace. QtXmlPatternsºDer Name einer Option muss einen Präfix haben. Es gibt keine Namensraum-Vorgabe für Optionen.TThe name of an option must have a prefix. There is no default namespace for options. QtXmlPatterns@Der Namensraum %1 ist reserviert und kann daher von nutzerdefinierten Funktionen nicht verwendet werden (für diesen Zweck gibt es den vordefinierten Präfix %2).ŠThe namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. QtXmlPatternsžDer Namensraum-URI darf nicht leer sein, wenn er an den Präfix %1 gebunden ist.JThe namespace URI cannot be the empty string when binding to a prefix, %1. QtXmlPatterns˜Der Namensraum-URI im Namen eines berechneten Attributes darf nicht %1 sein.DThe namespace URI in the name for a computed attribute cannot be %1. QtXmlPatternsºEin Namensraum-URI muss eine Konstante sein und darf keine eingebetteten Ausdrücke verwenden.IThe namespace URI must be a constant and cannot use enclosed expressions. QtXmlPatternsüDer Namensraum einer benutzerdefinierten Funktion darf nicht leer sein (für diesen Zweck gibt es den vordefinierten Präfix %1)yThe namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) QtXmlPatterns Der Namensraum einer nutzerdefinierten Funktion aus einem Bibliotheksmodul muss dem Namensraum des Moduls entsprechen (%1 anstatt %2) –The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 QtXmlPatternsrDie Normalisierungsform %1 wird nicht unterstützt. Die unterstützten Normalisierungsformen sind %2, %3, %4 and %5, und "kein" (eine leere Zeichenkette steht für "keine Normalisierung").‰The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). QtXmlPatternsŠEs existiert kein entsprechendes %2 für den übergebenen Parameter %1.;The parameter %1 is passed, but no corresponding %2 exists. QtXmlPatternsœEs wurde kein entsprechendes %2 für den erforderlichen Parameter %1 angegeben.BThe parameter %1 is required, but no corresponding %2 is supplied. QtXmlPatternsPDer Präfix %1 kann nicht gebunden werdenThe prefix %1 cannot be bound. QtXmlPatternsÆDer Präfix %1 kann nicht gebunden werden. Er ist bereits per Vorgabe an den Namensraum %2 gebunden.SThe prefix %1 cannot be bound. By default, it is already bound to the namespace %2. QtXmlPatternsˆDer Präfix muss ein gültiger %1 sein. Das ist bei %2 nicht der Fall./The prefix must be a valid %1, which %2 is not. QtXmlPatternsöDer übergeordnete Knoten des zweiten Arguments der Funktion %1 muss ein Dokumentknoten sein, was bei %2 nicht der Fall ist.gThe root node of the second argument to function %1 must be a document node. %2 is not a document node. QtXmlPatternsÆDas zweite Argument von %1 kann nicht vom Typ %2 sein, es muss einer der Typen %3, %4 oder %5 sein.QThe second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. QtXmlPatternsðDer Zielname einer Processing-Anweisung kann nicht %1 (unabhängig von Groß/Kleinschreibung sein). %2 ist daher ungültig.~The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. QtXmlPatterns`Der Ziel-Namensraum von %1 darf nicht leer sein.-The target namespace of a %1 cannot be empty. QtXmlPatterns¨Der Wert des Attributs %1 des Elements %2 kann nur %3 oder %4 sein, nicht jedoch %5.IThe value for attribute %1 on element %2 must either be %3 or %4, not %5. QtXmlPatternsœDer Wert des Attributs %1 muss vom Typ %2 sein, was bei %3 nicht der Fall ist.=The value of attribute %1 must be of type %2, which %3 isn't. QtXmlPatterns¸Der Wert eines XSL-T-Versionsattributes muss vom Typ %1 sein, was bei %2 nicht der Fall ist.TThe value of the XSL-T version attribute must be a value of type %1, which %2 isn't. QtXmlPatternsHDie Variable %1 wird nicht verwendetThe variable %1 is unused QtXmlPatterns–Es existiert ein IDREF-Wert, für den keine zugehörige ID vorhanden ist: %1.6There is one IDREF value with no corresponding ID: %1. QtXmlPatternsœ%1 kann nicht verwendet werden, da dieser Prozessor keine Schemas unterstützt.CThis processor is not Schema-aware and therefore %1 cannot be used. QtXmlPatternsPDie Zeitangabe %1:%2:%3.%4 ist ungültig.Time %1:%2:%3.%4 is invalid. QtXmlPatternsèDie Zeitangabe 24:%1:%2.%3 ist ungültig. Bei der Stundenangabe 24 müssen Minuten, Sekunden und Millisekunden 0 sein._Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0;  QtXmlPatternsòDie zuoberst stehenden Elemente eines Stylesheets dürfen sich nicht im Null-Namensraum befinden, was bei %1 der Fall ist.NTop level stylesheet elements must be in a non-null namespace, which %1 isn't. QtXmlPatternsœEs wurden zwei Namensraum-Deklarationsattribute gleichen Namens (%1) gefunden.Unbekanntes XSL-T-Attribut: %1.Unknown XSL-T attribute %1. QtXmlPatternsdDie Facette %2 enthält eine ungültige Notation %1.%Unknown notation %1 used in %2 facet. QtXmlPatterns–Der vorzeichenlose Ganzzahlwert entspricht nicht der Facette 'totalDigits'.AUnsigned integer content does not match in the totalDigits facet. QtXmlPatternsŽDer vorzeichenlose Ganzzahlwert entspricht nicht der Suchmusterfacette.6Unsigned integer content does not match pattern facet. QtXmlPatterns˜Der vorzeichenlose Ganzzahlwert entspricht nicht der Facette 'maxExclusive'.?Unsigned integer content does not match the maxExclusive facet. QtXmlPatterns˜Der vorzeichenlose Ganzzahlwert entspricht nicht der Facette 'maxInclusive'.?Unsigned integer content does not match the maxInclusive facet. QtXmlPatterns˜Der vorzeichenlose Ganzzahlwert entspricht nicht der Facette 'minExclusive'.?Unsigned integer content does not match the minExclusive facet. QtXmlPatterns˜Der vorzeichenlose Ganzzahlwert entspricht nicht der Facette 'minInclusive'.?Unsigned integer content does not match the minInclusive facet. QtXmlPatternsœDer vorzeichenlose Ganzzahlwert ist nicht in der Aufzählungsfacette enthalten.@Unsigned integer content is not listed in the enumeration facet. QtXmlPatternsnDer Wert %1 des Typs %2 überschreitet das Maximum (%3).)Value %1 of type %2 exceeds maximum (%3). QtXmlPatternspDer Wert %1 des Typs %2 unterschreitet das Minimum (%3).*Value %1 of type %2 is below minimum (%3). QtXmlPatterns¢Die Einschränkung des Werts des Attributs %1 ist nicht vom Typ des Attributs: %2.?Value constraint of attribute %1 is not of attributes type: %2. QtXmlPatternsôDie Einschränkung des Werts des abgeleiteten Attributs %1 entspricht nicht der Einschränkung des Werts des Basisattributs.[Value constraint of derived attribute %1 does not match value constraint of base attribute. QtXmlPatternsžDie Einschränkung des Werts des Elements %1 ist nicht vom Typ des Elements: %2.;Value constraint of element %1 is not of elements type: %2. QtXmlPatternsœDie Varietät der Typen von %1 muss entweder atomar oder eine Vereinigung sein.:Variety of item type of %1 must be either atomic or union. QtXmlPatterns^Die Varietät der Typen von %1 muss atomar sein.-Variety of member types of %1 must be atomic. QtXmlPatterns¦Die Version %1 wird nicht unterstützt. Die unterstützte Version von XQuery ist 1.0.AVersion %1 is not supported. The supported XQuery version is 1.0. QtXmlPatternsPW3C XML Schema identity constraint field(W3C XML Schema identity constraint field QtXmlPatternsVW3C XML Schema identity constraint selector+W3C XML Schema identity constraint selector QtXmlPatternsDer Defaultwert eines erforderlichen Parameters kann weder durch ein %1-Attribut noch durch einen Sequenzkonstruktor angegeben werden. rWhen a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. QtXmlPatternsœEs kann kein Sequenzkonstruktor verwendet werden, wenn %2 ein Attribut %1 hat.JWhen attribute %1 is present on %2, a sequence constructor cannot be used. QtXmlPatternsˆBei einer "cast"-Operation von %1 zu %2 darf der Wert nicht %3 sein.:When casting to %1 from %2, the source value cannot be %3. QtXmlPatternsHBei einer "cast"-Operation zum Typ %1 oder abgeleitetenTypen muss der Quellwert ein Zeichenketten-Literal oder ein Wert gleichen Typs sein. Der Typ %2 ist ungültig.When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. QtXmlPatterns6Bei der Verwendung der Funktion %1 zur Auswertung innerhalb eines Suchmusters muss das Argument eine Variablenreferenz oder ein Zeichenketten-Literal sein.vWhen function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. QtXmlPatterns”Leerzeichen werden entfernt, sofern sie nicht in Zeichenklassen erscheinenOWhitespace characters are removed, except when they appear in character classes QtXmlPatternsÐDas Suchmuster im abgeleiteten Partikel ist keine gültige Untermenge des Suchmusters des Basispartikels.PWildcard in derived particle is not a valid subset of wildcard in base particle. QtXmlPatternsp%1 ist keine gültige Jahresangabe, da es mit %2 beginnt.-Year %1 is invalid because it begins with %2. QtXmlPatternsleerempty QtXmlPatternsgenau ein exactly one QtXmlPatterns ein oder mehrere one or more QtXmlPatternsØDas 'processContent'-Attribut des Basissuchmusters muss schwächer sein als das des abgeleiteten Suchmusters.EprocessContent of base wildcard must be weaker than derived wildcard. QtXmlPatternsöDas processContent-Attribut des Suchmusters des abgeleiteten Partikels ist schwächer als das Suchmuster des Basispartikels.XprocessContent of wildcard in derived particle is weaker than wildcard in base particle. QtXmlPatternsÔxsi:noNamespaceSchemaLocation kann nicht nach dem ersten Element oder Attribut ohne Namensraum erscheinen.^xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. QtXmlPatternsœxsi:schemaLocation namespace %1 wurde im Instanzdokument bereits spezifiziert.Vxsi:schemaLocation namespace %1 has already appeared earlier in the instance document. QtXmlPatterns"kein oder mehrere zero or more QtXmlPatternskein oder ein zero or one QtXmlPatternsˆx2goclient-4.0.1.1/qt_es.qm0000644000000000000000000024125212214040350012266 0ustar <¸dÊÍ!¿`¡½ÝBà*¾+Ð]7‚;ä;.*;<þ;‰æ;·”M7ªOÝžOê Àä}7Òm7ú¯½x+;t+;9ç+;A +OJ+O9¹H4Ð8HÕZJ¼Ô*KiLDÔ¯L“ÕPS×ZrãV[`ÏÙ[`ý\ÝtÜ_Ãå_ÃêÎ1ºB'¿Ãž¿Ã:Y‡›f‡›H·›Ð_˜,Ò§Ô§Ô}Y§Ô󯨥´«ŒÔµ›@[¶E8жEçq¶EI¶ÞÔƒÏç©Ð% TÐ%J÷ÓÕºì0¶ì0g˜Åàà¡6¡?Ò¡S‡¦”g«`⢫`ιµÐ¹µ2šÀe:Àe@ÀeS¼įõpįö «y­È~‘ì¤^‘ì'(4²OJ(4òO€(5O¶(5‚Oì*¦y*¦y|*¦yòh*ÖTSí*ì0'‚*ì0+FÅ…¬+FÅG+f¾¨+f¾F+‹z0Á+‹¯w+‹¯|ñ+‹¯òÏ+˜z0ó+˜Å&+˜Å:+˜ÅF}+¡T.+¡†+¡²+į«+į}$+įó+Çú11;®#VF0i¶kG–”:ˆHw9ÿHw9:ÈIë›.ÈI뛾GJ+‚áJ+‚ÒÀJ6•J6•2J6•;;J6•@*J6•†`J6•ˆ—J6•ºÒJ6•ÉÆJ6•ËJ6•ÒñJ6•'KÅJÆLZÂÔÖLƒ•kLƒ•2AL™b $M5„@O|Š1àPFE]PFE‡«PFEÏTæÑNU?^&¾U¯|8"V1¼¸WV1¼¼ŠVl îVŒ•ß8WŒ£+<WŒ£ôŽWT·ÅWTßÃXÉÄ=fXÉÄþ XË™>)Xýôà¯YïÔâYöNlZg•â@\]4ã\]4æ¶\ƒµ¥\ƒµÊJaty|^”û„v9„vs…éÃ"’‹f[œ˜IA,¥[³=ª¨œ®°I´ÜÀº«y±Ùɵn2ÎɵnhɵnoHɵn~…ɵnžɵnÃGɵnÆIËÔ(ÚËÔ^¾Ð BãŽÞßøêMº¨GòEòvqù²~HÊ-è<äpù®m×5½#Qé²Ì%UT’ó(ÅŽP_*ä4Ÿ£2Àé®»CÅ@C„ɯGCÎešD"õìDÓ1Y­M—ÉaR?F²fPá l‡‡ÈKoR‡+ªw¶^Š|{y­t•ìé¹K¡ÏWù ¨2ˆ3¨2ˆµ´.AU¶RÞ·Ù¿à d ÿÄy¯øòº„ttóurp§ ¸äšQ"l®x)*ý-À¤\~/=Nã‰1Ø$5~XN< Äu?»NéNky°I]Ýéò`ê4»`ê¢q”"¾v—ú Ù™ú ‡™úK)£$Œ¥²)rKª6•9€ª6•…vª6•´^¡\!¶Š¥F¶Š¥|Á¶Š¥òœº=Šsº÷ž½4¼~.ž‚´ñ­¾œû῾ο¾ÿ¿EåÎr¿EåÿoÀ‚´ÎÄÀ‚´ÿ¿Ä{Žõ£Ê8AãÛAZ5ß[y¬ŒâL´ä¤êîì‚n¸ñó‚¤5/ó‚¤û󂤜–󂤢æó‚¤ÃÌó‚¤ÇÄõðM…9õðMÚöE”VÕöE”`;w wÌÚáï–!Ïeû¢&¸ž)ÕäE*/eäŽ;„TB‹y°ñF±å8KO«¥BZõfô¿`à„‡cÖƒÜxfãÄ `jCP"qí!u(µÖÉÓ~ʯÉ$Á™¯É$p°‚µ ÜÃ( äÉÎ^+ã n¦Kä,ÔjGëÕÿ©¡ñ;y«äùAíœ&H„i .Ž9/¥ÄiIxS/bRå>%‡YMáW%YMá`Œh^ fiïÓ%œssc‹^wÞËÍ€»ÑW~Œ‡šÑŽÛŠ1­–´N-w–»]ËF–»]ü˜I¼·˜I¼Ä˜I¼2˜I¼;˜I¼½ß˜I¼ç7˜I¼è¨˜I¼³ŸIØÓŸYÙŸiÙKŸyÙ‡Ÿ‰×㟙؟©Ø[Ÿ¹Ø—Ÿé×kŸù×§ŸIÚÙÿŸ™Ú;Ÿ©ÚwŸ¹Ú³ŸùÙáuDZÿ¡uDb„¦Då¦oûά,¥9¬,¥}‰¬,¥ÉI¬,¥ÔS¬,¥én¬,¥óâ¹Ê姸¹Êå» ɘeÕ*Ì5$ÑfR ~ÑfRM/èNÀÖ9é•M¡õ¬c#>öû¯¡ûPq]ùþV…<‚þV…ü‰ÿfREºœ”šœ”×7œ”éñ ×䬩µ®¼‚qi%CÉ —?"£€‡KNð´MîÑ+R¿òŠ¿]¿žg"]¿žn@k¶Þßeyô^›€{y³qŒFÅM÷Œ¼Žà}˜G%U1™Øµ™„šÇ¥Q›ˆ˜ÊÆ›ˆ˜á©œ+¤áÝœ+¤è¦±t\§{y³¯rɱE°ˆÁâÒ°ª½ 3µÞ%.÷½C-Á/Â5ËÝøƨ¥ƨ¥ê›˾änÆÒz Ôiï Õ§?é™ÚZ>#íçf•–ã ɧ~bLò~bSoÓ !ë¿ll+ï3ÄT/ô…¸›/ô…¼Ö6Ï ámDçùG¾ñV[GÎbQáLAUñ*Pѧ;qSÅn¨ØUôUôräUô’šZËÑÓ ZËÒÓXZËÓÓZËÔÓÈ[Ɉ[]k*L¼^ãnìe‘ Ãižä[WižäbÝkQ¾%oÛNÕy;Ç„{¼ {çÛ}uÞñ}wÍP}wæ1}wþN„õ`†Ò"„Šê‚ —Õät ›ƒt¨››ƒt»L «.ͤ «.æ‚¥Pè¾yµD„ )·Ýt(&·Ýta1·ÝtŽKºç6À_ ÞvÉF±‚Ê¢ä6Ê¢ä£ÜÊçd7Êçd‚ôÊçdŒÊçd¤TÌ59kdä‡ê?ì»U—Ôþ¯B`w®™ï–½x( …‘kÛ+ª¤dŸ2ìAË6’Ñ\¼CU]üºDØ KÕ˜U|Ò5arÅÄÖt‰V}wZ§ö}š$Ìù}š$åÝ}š$ýùZ’½¥´K<<»Å¿çÎû «Õ/aÜë»ETÔuî%5Rr›Tº:i~Éɶ %’¾R.÷Ž ÿ5kEÀpXU KzbDãbG·v¾gŸA«iê$›øx1 Ò†z*2ÐÜ‚¨dŸ ŠU€Ñ•zBmºmV¼ìn¾½ŒÈàDÇC¼>žÊ´5…ßÊ´5wÚÔ„ †ÝD„ÏâÜdðF5$ðF5‡ò»Y§DüùI 'üùIKÊýAs) äÑ6Ž }$„ qe_ Ú¤Œ– íE íE› AcÉ AcN¡ 3š5—^ K!?HQ bbö; b¾`Ï… b¾`| iä3$ laô‰ xq# ‚|Å”h ŒtÓ$ ŒtÓN- Ž .? Ží¯ Ÿ¥ÞB£ ¢³Ä(€ ¢³ÄŽ© §²– ­>óÇE ­‚µ „ ¸æÉp) ¸æÉ ÜKç ÝÕ÷ä ñ%'öÔ ö ®@ ÷»¼Û+ =ŽQ ü®¥Ç )µž·û */åЩ 7uóØ ;Ùy =äUe BÇé¹° RÛ® Tþ^Ñ{ ]‘ž˜† `±g¨ `±ÂJ `±ÅN c(廌 dÐÍé< eœÇ Ç eœÇLw fŽ1Xß gînÝ kŸ,” rD"? t A›ùë£ EÔ9d Lö'° Lö? Mc\>ã SÐm V×qÒ ]â$48 f)É f)Gò io>Ë mû`ê wÇå y¡r8• ŒHÚ ŒHF2 Ü *l ‘$þI ’.@ãÒ “þ’Ó — i¬à £Ü D £Ü }¹ £Ü ô ¯ÙJã ¯ÙJJ† ´Žë ¿t. ¸ ÂkÔò ÃÓ‡½ ÈÇh ÊN>w€ ̺óTŸ Ô-DUÈ ÖØ.{¬ âkÔÏ& âkÔ èU)c# ðË<ö õ0ËÝ  „Z±  „b5 öÞ- xHfK .Éã/à 7F´ˆ >Ïò]± >Ïò^q >Ïò_ˆ >Ïòf >Ïòs¼ >Ïò|D >Ïò˜/ >Ïò©P >Ïòð >Ïòðc D€TQ IëË/+ RVŽO RVŽ9 RV®º” S.Ÿè× SÀ¼I Yåä [•›ù¦ j7oDŸ p¡Ã0. ŒÑBoÅ Žè³ ½T3I ½T ½Tž’ ½T¦Ñ ‘ñ« ’›¢q “èÄ5« “èÄ£k –‚™³È )d–9 ©‰ø~ ¬Á.3» ¬Á.hš ¬Á.€ ¬Á. 4 ¸a“ò » y– Ò‚îk ë¬åˆÂ úùZ tÀÉ aî² :bc† Êœ.X +>º1e 0ÒE õ ;ɾó= Ptµ‡l Ptµ“ fèeˇ fèeý g­¶ÿ iFCÕ iØÄL& iØÄÕê n¤î!ž u®Þ® uüÁî. w®ÌK w®å5 w®ýO w}¤ÌŸ w}¤å† w}¤ý¡ |[®'õ ƒÈôX ƒÈô`æ —Ã^‰‰ ¢}Òzj ªôRû# Ûùž" ÜX \ ä&Þ'Ž êD ž ðt5†Ã ðt5W ø¾‡ç ø¾ ø)¤Ç ú¾¡T)‹‡ÛüQ‡ÛygT)ü*‡«'ì*‡«z/ÇE)4/ÇE‘d=êBucIÌ_dXRuú[Ÿ a.Å< nyG&svÉ…:y$€~¹ei´÷Ss3»®^ª;ÇB¤&ˆÊæÂú³Î“pÝ–þ´hò[y° íÒT íÒI–þª"#ÆÍ$ÚUQ%º4?'%º4R-v›÷q0i)Ü*0’ÀÝ1c’62wTÛäD¢Ã ÜHúùÜJdeL$. 7c5ÍÛc5þÜyƒC!Ë{~aÛn•`鮡[ô¬®þ¿¯·¯·Iü¾NCªÐky¬8éPé²-øt2,÷û¾~û¾™û¾ÂÁû¾ÅÄi(© Permiso denegadoPermission denied Phonon::MMFHLa secuencia %1, %2 no está definida%1, %2 not definedQ3Accel>Secuencia ambigua %1 no tratadaAmbiguous %1 not handledQ3Accel BorrarDelete Q3DataTable FalsoFalse Q3DataTableInsertarInsert Q3DataTableVerdaderoTrue Q3DataTableActualizarUpdate Q3DataTableˆ%1 Fichero no encontrado. Compruebe la ruta y el nombre del fichero.+%1 File not found. Check path and filename. Q3FileDialog&Borrar&Delete Q3FileDialog&No&No Q3FileDialog&Aceptar&OK Q3FileDialog &Abrir&Open Q3FileDialog$Cambia&r de nombre&Rename Q3FileDialog&Guardar&Save Q3FileDialog&Sin ordenar &Unsorted Q3FileDialog&Sí&Yes Q3FileDialogT<qt>¿Seguro que desea borrar %1 «%2»?</qt>1Are you sure you wish to delete %1 "%2"? Q3FileDialog,Todos los ficheros (*) All Files (*) Q3FileDialog0Todos los ficheros (*.*)All Files (*.*) Q3FileDialogAtributos Attributes Q3FileDialog,Precedente (histórico)Back Q3FileDialogCancelarCancel Q3FileDialog2Copiar o mover un ficheroCopy or Move a File Q3FileDialog.Crear una nueva carpetaCreate New Folder Q3FileDialog FechaDate Q3FileDialogBorrar %1 Delete %1 Q3FileDialogVista detallada Detail View Q3FileDialogDirectorioDir Q3FileDialogDirectorios Directories Q3FileDialogDirectorio: Directory: Q3FileDialog ErrorError Q3FileDialogFicheroFile Q3FileDialog&&Nombre de fichero: File &name: Q3FileDialog"&Tipo de fichero: File &type: Q3FileDialog.Buscar en el directorioFind Directory Q3FileDialogInaccesible Inaccessible Q3FileDialogVista de lista List View Q3FileDialogBuscar &en: Look &in: Q3FileDialog NombreName Q3FileDialogNueva carpeta New Folder Q3FileDialog Nueva carpeta %1 New Folder %1 Q3FileDialogNueva carpeta 1 New Folder 1 Q3FileDialog2Ir al directorio superiorOne directory up Q3FileDialog AbrirOpen Q3FileDialog Abrir Open  Q3FileDialogHContenido del fichero previsualizadoPreview File Contents Q3FileDialogLInformación del fichero previsualizadoPreview File Info Q3FileDialogR&ecargarR&eload Q3FileDialogSólo lectura Read-only Q3FileDialog"Lectura-escritura Read-write Q3FileDialogLectura: %1Read: %1 Q3FileDialogGuardar comoSave As Q3FileDialog2Seleccionar un directorioSelect a Directory Q3FileDialog:Mostrar los fic&heros ocultosShow &hidden files Q3FileDialog TamañoSize Q3FileDialogOrdenarSort Q3FileDialog$Ordenar por &fecha Sort by &Date Q3FileDialog&Ordenar por &nombre Sort by &Name Q3FileDialog&Ordenar por &tamaño Sort by &Size Q3FileDialog Fichero especialSpecial Q3FileDialog@Enlace simbólico a un directorioSymlink to Directory Q3FileDialog:Enlace simbólico a un ficheroSymlink to File Q3FileDialogLEnlace simbólico a un fichero especialSymlink to Special Q3FileDialogTipoType Q3FileDialogSólo escritura Write-only Q3FileDialogEscritura: %1 Write: %1 Q3FileDialogel directorio the directory Q3FileDialogel ficherothe file Q3FileDialog&el enlace simbólico the symlink Q3FileDialogJNo fue posible crear el directorio %1Could not create directory %1 Q3LocalFs.No fue posible abrir %1Could not open %1 Q3LocalFsHNo fue posible leer el directorio %1Could not read directory %1 Q3LocalFsdNo fue posible eliminar el fichero o directorio %1%Could not remove file or directory %1 Q3LocalFsPNo fue posible cambiar el nombre %1 a %2Could not rename %1 to %2 Q3LocalFs4No fue posible escribir %1Could not write %1 Q3LocalFsPersonalizar... Customize... Q3MainWindowAlinearLine up Q3MainWindowBOperación detenida por el usuarioOperation stopped by the userQ3NetworkProtocolCancelarCancelQ3ProgressDialogAplicarApply Q3TabDialogCancelarCancel Q3TabDialog&Valores por omisiónDefaults Q3TabDialog AyudaHelp Q3TabDialogAceptarOK Q3TabDialog&Copiar&Copy Q3TextEdit &Pegar&Paste Q3TextEdit&Rehacer&Redo Q3TextEdit&Deshacer&Undo Q3TextEditLimpiarClear Q3TextEditCor&tarCu&t Q3TextEdit Seleccionar todo Select All Q3TextEdit CerrarClose Q3TitleBar"Cierra la ventanaCloses the window Q3TitleBarTContiene órdenes para manipular la ventana*Contains commands to manipulate the window Q3TitleBarŠMuestra el nombre de la ventana y contiene controles para manipularlaFDisplays the name of the window and contains controls to manipulate it Q3TitleBarNMuestra la ventana en pantalla completaMakes the window full screen Q3TitleBarMaximizarMaximize Q3TitleBarMinimizarMinimize Q3TitleBar"Aparta la ventanaMoves the window out of the way Q3TitleBarfDevuelve una ventana maximizada a su aspecto normal&Puts a maximized window back to normal Q3TitleBarRestaurar abajo Restore down Q3TitleBar Restaurar arriba Restore up Q3TitleBarSistemaSystem Q3TitleBar Más...More... Q3ToolBar(desconocido) (unknown) Q3UrlOperator„El protocolo «%1» no permite copiar o mover ficheros o directoriosIThe protocol `%1' does not support copying or moving files or directories Q3UrlOperatorjEl protocolo «%1» no permite crear nuevos directorios;The protocol `%1' does not support creating new directories Q3UrlOperatorZEl protocolo «%1» no permite recibir ficheros0The protocol `%1' does not support getting files Q3UrlOperator‚El protocolo «%1» no permite listar los ficheros de un directorio6The protocol `%1' does not support listing directories Q3UrlOperatorXEl protocolo «%1» no permite enviar ficheros0The protocol `%1' does not support putting files Q3UrlOperatorxEl protocolo «%1» no permite eliminar ficheros o directorios@The protocol `%1' does not support removing files or directories Q3UrlOperatorŠEl protocolo «%1» no permite cambiar de nombre ficheros o directorios@The protocol `%1' does not support renaming files or directories Q3UrlOperatorJEl protocolo «%1» no está contemplado"The protocol `%1' is not supported Q3UrlOperator&Cancelar&CancelQ3Wizard&Terminar&FinishQ3Wizard &Ayuda&HelpQ3WizardSiguie&nte >&Next >Q3Wizard< &Anterior< &BackQ3Wizard$Conexión rechazadaConnection refusedQAbstractSocket"Conexión expiradaConnection timed outQAbstractSocket(Equipo no encontradoHost not foundQAbstractSocket Red inalcanzableNetwork unreachableQAbstractSocket6El socket no está conectadoSocket is not connectedQAbstractSocket2Operación socket expiradaSocket operation timed outQAbstractSocket"&Seleccionar todo &Select AllQAbstractSpinBox&Aumentar&Step upQAbstractSpinBoxRe&ducir Step &downQAbstractSpinBox PulsarPressQAccessibleButtonActivarActivate QApplicationPActiva la ventana principal del programa#Activates the program's main window QApplicationlEl ejecutable «%1» requiere Qt %2 (se encontró Qt %3).,Executable '%1' requires Qt %2, found Qt %3. QApplicationBError: biblioteca Qt incompatibleIncompatible Qt Library Error QApplicationLTRQT_LAYOUT_DIRECTION QApplication&Cancelar&Cancel QAxSelect&Objeto COM: COM &Object: QAxSelectAceptarOK QAxSelect<Seleccionar un control ActiveXSelect ActiveX Control QAxSelect MarcarCheck QCheckBoxConmutarToggle QCheckBoxDesmarcarUncheck QCheckBoxH&Añadir a los colores personalizados&Add to Custom Colors QColorDialog Colores &básicos &Basic colors QColorDialog.&Colores personalizados&Custom colors QColorDialog&Verde:&Green: QColorDialog &Rojo:&Red: QColorDialog&Saturación:&Sat: QColorDialog&Valor:&Val: QColorDialogCanal a&lfa:A&lpha channel: QColorDialog Az&ul:Bl&ue: QColorDialog &Tono:Hu&e: QColorDialog CerrarClose QComboBox FalsoFalse QComboBox AbrirOpen QComboBoxVerdaderoTrue QComboBox@Incapaz de enviar la transacciónUnable to commit transaction QDB2DriverBImposible establecer una conexiónUnable to connect QDB2Driver@Incapaz de anular la transacciónUnable to rollback transaction QDB2DriverLIncapaz de activar el envío automáticoUnable to set autocommit QDB2Driver>No es posible ligar la variableUnable to bind variable QDB2ResultBImposible ejecutar la instrucciónUnable to execute statement QDB2Result<Imposible recuperar el primeroUnable to fetch first QDB2Result@Imposible recuperar el siguienteUnable to fetch next QDB2Result@Imposible obtener el registro %1Unable to fetch record %1 QDB2ResultBImposible preparar la instrucciónUnable to prepare statement QDB2ResultAMAM QDateTimeEditPMPM QDateTimeEditamam QDateTimeEditpmpm QDateTimeEdit QDialQDialQDial$Asa del deslizador SliderHandleQDialVelocímetro SpeedoMeterQDialTerminarDoneQDialog¿Qué es esto? What's This?QDialog&Cancelar&CancelQDialogButtonBox&Cerrar&CloseQDialogButtonBox&No&NoQDialogButtonBox&Aceptar&OKQDialogButtonBox&Guardar&SaveQDialogButtonBox&Sí&YesQDialogButtonBoxInterrumpirAbortQDialogButtonBoxAplicarApplyQDialogButtonBoxCancelarCancelQDialogButtonBox CerrarCloseQDialogButtonBox$Cerrar sin guardarClose without SavingQDialogButtonBoxDescartarDiscardQDialogButtonBoxNo guardar Don't SaveQDialogButtonBox AyudaHelpQDialogButtonBoxIgnorarIgnoreQDialogButtonBoxN&o a todo N&o to AllQDialogButtonBoxAceptarOKQDialogButtonBox AbrirOpenQDialogButtonBoxReinicializarResetQDialogButtonBoxJRestaurar los valores predeterminadosRestore DefaultsQDialogButtonBoxReintentarRetryQDialogButtonBoxGuardarSaveQDialogButtonBoxGuardar todoSave AllQDialogButtonBoxSí a &todo Yes to &AllQDialogButtonBox&Última modificación Date Modified QDirModel ClaseKind QDirModel NombreName QDirModel TamañoSize QDirModelTipoType QDirModel CerrarClose QDockWidgetAncladaDock QDockWidgetFlotanteFloat QDockWidget MenosLessQDoubleSpinBoxMásMoreQDoubleSpinBox&Aceptar&OK QErrorMessage<Mo&strar este mensaje de nuevo&Show this message again QErrorMessage,Mensaje de depuración:Debug Message: QErrorMessageError fatal: Fatal Error: QErrorMessage Aviso:Warning: QErrorMessageœ%1 Directorio no encontrado. Verique que el nombre del directorio es correcto.K%1 Directory not found. Please verify the correct directory name was given. QFileDialog”%1 Fichero no encontrado. Verifique que el nombre del fichero es correcto.A%1 File not found. Please verify the correct file name was given. QFileDialogZEl fichero %1 ya existe. ¿Desea reemplazarlo?-%1 already exists. Do you want to replace it? QFileDialog&Seleccionar&Choose QFileDialog&Borrar&Delete QFileDialog&Nueva carpeta &New Folder QFileDialog &Abrir&Open QFileDialog$Cambia&r de nombre&Rename QFileDialog&Guardar&Save QFileDialogŽ«%1» está protegido contra escritura. ¿Desea borrarlo de todas formas?9'%1' is write protected. Do you want to delete it anyway? QFileDialog,Todos los ficheros (*) All Files (*) QFileDialog0Todos los ficheros (*.*)All Files (*.*) QFileDialog<¿Seguro que desea borrar «%1»?!Are sure you want to delete '%1'? QFileDialog(Anterior (histórico)Back QFileDialogHNo fue posible borrar el directorio.Could not delete directory. QFileDialog.Crear una nueva carpetaCreate New Folder QFileDialogVista detallada Detail View QFileDialogDirectorios Directories QFileDialogDirectorio: Directory: QFileDialog UnidadDrive QFileDialogFicheroFile QFileDialog&&Nombre de fichero: File &name: QFileDialog"Ficheros de tipo:Files of type: QFileDialog.Buscar en el directorioFind Directory QFileDialog*Siguiente (histórico)Forward QFileDialogVista de lista List View QFileDialogVer en:Look in: QFileDialogMi equipo My Computer QFileDialogNueva carpeta New Folder QFileDialog AbrirOpen QFileDialog&Directorio superiorParent Directory QFileDialogEliminarRemove QFileDialogGuardar comoSave As QFileDialogMostrar Show  QFileDialog:Mostrar los fic&heros ocultosShow &hidden files QFileDialogDesconocidoUnknown QFileDialog %1 GiB%1 GBQFileSystemModel %1 KiB%1 KBQFileSystemModel %1 MiB%1 MBQFileSystemModel %1 TiB%1 TBQFileSystemModel%1 bytes%1 bytesQFileSystemModelî<b>No se puede utilizar el nombre «%1».</b><p>Intente usar otro nombre con menos caracteres o sin signos de puntuación.oThe name "%1" can not be used.

Try using another name, with fewer characters or no punctuations marks.QFileSystemModel EquipoComputerQFileSystemModel&Última modificación Date ModifiedQFileSystemModel6Nombre de fichero no válidoInvalid filenameQFileSystemModel ClaseKindQFileSystemModelMi equipo My ComputerQFileSystemModel NombreNameQFileSystemModel TamañoSizeQFileSystemModelTipoTypeQFileSystemModel&Tipo de letra&Font QFontDialog&Tamaño&Size QFontDialogS&ubrayado &Underline QFontDialogEfectosEffects QFontDialog2&Estilo del tipo de letra Font st&yle QFontDialogMuestraSample QFontDialog8Seleccionar un tipo de letra Select Font QFontDialog&Tachado Stri&keout QFontDialog*Sistema de escr&ituraWr&iting System QFontDialogDFallo del cambio de directorio: %1Changing directory failed: %1QFtp&Conectado al equipoConnected to hostQFtp,Conectado al equipo %1Connected to host %1QFtpPLa conexión con el equipo ha fallado: %1Connecting to host failed: %1QFtp Conexión cerradaConnection closedQFtpRConexión para conexión de datos rechazada&Connection refused for data connectionQFtp>Conexión rechazada al equipo %1Connection refused to host %1QFtp*Conexión a %1 cerradaConnection to %1 closedQFtpRFallo de la creación de un directorio: %1Creating directory failed: %1QFtpHFallo de la descarga del fichero: %1Downloading file failed: %1QFtp(Equipo %1 encontrado Host %1 foundQFtp.Equipo %1 no encontradoHost %1 not foundQFtp"Equipo encontrado Host foundQFtpPEl listado del directorio ha fallado: %1Listing directory failed: %1QFtp4Identificación fallida: %1Login failed: %1QFtpNo conectado Not connectedQFtpJEliminación de directorio fallida: %1Removing directory failed: %1QFtpDEliminación de fichero fallida: %1Removing file failed: %1QFtp"Error desconocido Unknown errorQFtpFEl envío del fichero ha fallado: %1Uploading file failed: %1QFtp"Error desconocido Unknown error QHostInfo(Equipo no encontradoHost not foundQHostInfoAgent:Dirección de tipo desconocidoUnknown address typeQHostInfoAgent"Error desconocido Unknown errorQHostInfoAgent0Se precisa autenticaciónAuthentication requiredQHttp&Conectado al equipoConnected to hostQHttp,Conectado al equipo %1Connected to host %1QHttp Conexión cerradaConnection closedQHttp$Conexión rechazadaConnection refusedQHttp*Conexión a %1 cerradaConnection to %1 closedQHttp,Solicitud HTTP fallidaHTTP request failedQHttp(Equipo %1 encontrado Host %1 foundQHttp.Equipo %1 no encontradoHost %1 not foundQHttp"Equipo encontrado Host foundQHttp0Fragmento HTTP no válidoInvalid HTTP chunked bodyQHttpHCabecera de respuesta HTTP no válidaInvalid HTTP response headerQHttpfNo se ha indicado ningún servidor al que conectarseNo server set to connect toQHttp>El proxy requiere autenticaciónProxy authentication requiredQHttp,Solicitud interrumpidaRequest abortedQHttpZEl servidor cerró la conexión inesperadamente%Server closed connection unexpectedlyQHttp"Error desconocido Unknown errorQHttp<Longitud del contenido erróneaWrong content lengthQHttp0Se precisa autenticaciónAuthentication requiredQHttpSocketEngineJNo fue posible iniciar la transacciónCould not start transaction QIBaseDriver>Error al abrir la base de datosError opening database QIBaseDriver@Incapaz de enviar la transacciónUnable to commit transaction QIBaseDriver@Incapaz de anular la transacciónUnable to rollback transaction QIBaseDriverJNo fue posible asignar la instrucciónCould not allocate statement QIBaseResultdNo fue posible describir la instrucción de entrada"Could not describe input statement QIBaseResultNNo fue posible describir la instrucciónCould not describe statement QIBaseResultXNo fue posible obtener el elemento siguienteCould not fetch next item QIBaseResultBNo fue posible encontrar la tablaCould not find array QIBaseResultXNo fue posible obtener los datos de la tablaCould not get array data QIBaseResulthNo fue posible obtener información sobre la consultaCould not get query info QIBaseResultnNo fue posible obtener información sobre la instrucciónCould not get statement info QIBaseResultLNo fue posible preparar la instrucciónCould not prepare statement QIBaseResultJNo fue posible iniciar la transacciónCould not start transaction QIBaseResultHNo fue posible cerrar la instrucciónUnable to close statement QIBaseResult@Incapaz de enviar la transacciónUnable to commit transaction QIBaseResult.Imposible crear un BLOBUnable to create BLOB QIBaseResultFNo fue posible ejecutar la consultaUnable to execute query QIBaseResult.Imposible abrir el BLOBUnable to open BLOB QIBaseResult,Imposible leer el BLOBUnable to read BLOB QIBaseResult4Imposible escribir el BLOBUnable to write BLOB QIBaseResultDNo queda espacio en el dispositivoNo space left on device QIODevicebNo hay ningún fichero o directorio con ese nombreNo such file or directory QIODevice Permiso denegadoPermission denied QIODeviceXDemasiados ficheros abiertos simultáneamenteToo many open files QIODevice"Error desconocido Unknown error QIODevice4Método de entrada Mac OS XMac OS X input method QInputContext2Método de entrada WindowsWindows input method QInputContextXIMXIM QInputContext*Método de entrada XIMXIM input method QInputContextzNo fu posible establecer la proyección en memoria de «%1»: %2Could not mmap '%1': %2QLibraryxNo fue posible suprimir la proyección en memoria de «%1»: %2Could not unmap '%1': %2QLibrary|Los datos de verificación del complemento no coinciden en «%1»)Plugin verification data mismatch in '%1'QLibrarydEl fichero «%1» no es un complemento de Qt válido.'The file '%1' is not a valid Qt plugin.QLibraryŽEl complemento «%1» usa una biblioteca Qt incompatible. (%2.%3.%4) [%5]=The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]QLibraryæEl complemento «%1» usa una biblioteca Qt incompatible. (No se pueden mezclar las bibliotecas «debug» y «release».)WThe plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)QLibraryÖEl complemento «%1» usa una biblioteca Qt incompatible. Se esperaba la clave «%2», pero se ha recibido «%3»OThe plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"QLibraryZNo se ha encontrado la biblioteca compartida.!The shared library was not found.QLibrary"Error desconocido Unknown errorQLibrary&Copiar&Copy QLineEdit &Pegar&Paste QLineEdit&Rehacer&Redo QLineEdit&Deshacer&Undo QLineEditCor&tarCu&t QLineEdit BorrarDelete QLineEdit Seleccionar todo Select All QLineEditHNo es posible iniciar la transacciónUnable to begin transaction QMYSQLDriverFNo es posible enviar la transacciónUnable to commit transaction QMYSQLDriverJNo es posible establecer una conexiónUnable to connect QMYSQLDriverDImposible abrir la base de datos 'Unable to open database ' QMYSQLDriverFNo es posible anular la transacciónUnable to rollback transaction QMYSQLDriverRNo es posible ligar los valores de salidaUnable to bind outvalues QMYSQLResult8No es posible ligar el valorUnable to bind value QMYSQLResultDNo es posible ejecutar la consultaUnable to execute query QMYSQLResultJNo es posible ejecutar la instrucciónUnable to execute statement QMYSQLResult>No es posible obtener los datosUnable to fetch data QMYSQLResultJNo es posible preparar la instrucciónUnable to prepare statement QMYSQLResultTNo es posible reinicializar la instrucciónUnable to reset statement QMYSQLResultHNo es posible almacenar el resultadoUnable to store result QMYSQLResultpNo es posible almacenar los resultados de la instrucción!Unable to store statement results QMYSQLResult%1 - [%2] %1 - [%2] QMdiSubWindow&Cerrar&Close QMdiSubWindow &Mover&Move QMdiSubWindow&Restaurar&Restore QMdiSubWindowRedimen&sionar&Size QMdiSubWindow CerrarClose QMdiSubWindow AyudaHelp QMdiSubWindowMa&ximizar Ma&ximize QMdiSubWindowMaximizarMaximize QMdiSubWindowMenúMenu QMdiSubWindowMi&nimizar Mi&nimize QMdiSubWindowMinimizarMinimize QMdiSubWindowRestaurar abajo Restore Down QMdiSubWindow6Permanecer en &primer plano Stay on &Top QMdiSubWindow CerrarCloseQMenuEjecutarExecuteQMenu AbrirOpenQMenuAcerca de QtAbout Qt QMessageBox AyudaHelp QMessageBox.Ocultar los detalles...Hide Details... QMessageBoxAceptarOK QMessageBox.Mostrar los detalles...Show Details... QMessageBoxSeleccionar IM Select IMQMultiInputContextTSeleccionador de varios métodos de entradaMultiple input method switcherQMultiInputContextPlugin¾Seleccionador de varios métodos de entrada que usa el menú contextual de los elementos de textoMMultiple input method switcher that uses the context menu of the text widgetsQMultiInputContextPluginbYa hay otro socket escuchando por el mismo puerto4Another socket is already listening on the same portQNativeSocketEngine’Intento de usar un socket IPv6 sobre una plataforma que no contempla IPv6=Attempt to use IPv6 socket on a platform with no IPv6 supportQNativeSocketEngine$Conexión rechazadaConnection refusedQNativeSocketEngine"Conexión expiradaConnection timed outQNativeSocketEnginepEl datagrama era demasiado grande para poder ser enviadoDatagram was too large to sendQNativeSocketEngine$Equipo inaccesibleHost unreachableQNativeSocketEngine<Descriptor de socket no válidoInvalid socket descriptorQNativeSocketEngineError de red Network errorQNativeSocketEngine>La operación de red ha expiradoNetwork operation timed outQNativeSocketEngine Red inalcanzableNetwork unreachableQNativeSocketEngine8Operación sobre un no-socketOperation on non-socketQNativeSocketEngine,Insuficientes recursosOut of resourcesQNativeSocketEngine Permiso denegadoPermission deniedQNativeSocketEngine:Tipo de protocolo no admitidoProtocol type not supportedQNativeSocketEngine>La dirección no está disponibleThe address is not availableQNativeSocketEngine6La dirección está protegidaThe address is protectedQNativeSocketEngineHLa dirección enlazada ya está en uso#The bound address is already in useQNativeSocketEngineNEl equipo remoto ha cerrado la conexión%The remote host closed the connectionQNativeSocketEngineVImposible inicializar el socket de difusión%Unable to initialize broadcast socketQNativeSocketEngineZImposible inicializar el socket no bloqueante(Unable to initialize non-blocking socketQNativeSocketEngine8Imposible recibir un mensajeUnable to receive a messageQNativeSocketEngine6Imposible enviar un mensajeUnable to send a messageQNativeSocketEngine$Imposible escribirUnable to writeQNativeSocketEngine"Error desconocido Unknown errorQNativeSocketEngine8Operación socket no admitidaUnsupported socket operationQNativeSocketEngineHNo es posible iniciar la transacciónUnable to begin transaction QOCIDriver8La inicialización ha falladoUnable to initialize QOCIDriver4No es posible abrir sesiónUnable to logon QOCIDriverHNo es posible asignar la instrucciónUnable to alloc statement QOCIResultvNo es posible ligar la columna para una ejecución por lotes'Unable to bind column for batch execute QOCIResult8No es posible ligar el valorUnable to bind value QOCIResult^No es posible ejecutar la instrucción por lotes!Unable to execute batch statement QOCIResultJNo es posible ejecutar la instrucciónUnable to execute statement QOCIResult@No es posible pasar al siguienteUnable to goto next QOCIResultJNo es posible preparar la instrucciónUnable to prepare statement QOCIResultFNo es posible enviar la transacciónUnable to commit transaction QODBCDriverJNo es posible establecer una conexiónUnable to connect QODBCDriverZNo es posible inhabilitar el envío automáticoUnable to disable autocommit QODBCDriverVNo es posible habilitar el envío automáticoUnable to enable autocommit QODBCDriverFNo es posible anular la transacciónUnable to rollback transaction QODBCDriver QODBCResult::reset: No es posible establecer «SQL_CURSOR_STATIC» como atributo de instrucción. Compruebe la configuración de su controlador ODBCyQODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResult>No es posible ligar la variableUnable to bind variable QODBCResultJNo es posible ejecutar la instrucciónUnable to execute statement QODBCResult<Imposible recuperar el primeroUnable to fetch first QODBCResultDNo es posible obtener el siguienteUnable to fetch next QODBCResultJNo es posible preparar la instrucciónUnable to prepare statement QODBCResult NombreNameQPPDOptionsModel ValorValueQPPDOptionsModelJNo fue posible iniciar la transacciónCould not begin transaction QPSQLDriverHNo fue posible enviar la transacciónCould not commit transaction QPSQLDriverHNo fue posible anular la transacciónCould not rollback transaction QPSQLDriverBNo es posible establecer conexiónUnable to connect QPSQLDriver>No es posible crear la consultaUnable to create query QPSQLResultApaisado LandscapeQPageSetupWidget"Tamaño de página: Page size:QPageSetupWidget"Fuente del papel: Paper source:QPageSetupWidgetVerticalPortraitQPageSetupWidget<El complemento no fue cargado.The plugin was not loaded. QPluginLoader"Error desconocido Unknown error QPluginLoaderJ%1 ya existe. ¿Desea sobrescribirlo?/%1 already exists. Do you want to overwrite it? QPrintDialogv%1 es un directorio. Elija un nombre de fichero diferente.7%1 is a directory. Please choose a different file name. QPrintDialog><qt>¿Desea sobrescribirlo?</qt>%Do you want to overwrite it? QPrintDialog$A0 (841 x 1189 mm)A0 (841 x 1189 mm) QPrintDialog"A1 (594 x 841 mm)A1 (594 x 841 mm) QPrintDialog"A2 (420 x 594 mm)A2 (420 x 594 mm) QPrintDialog"A3 (297 x 420 mm)A3 (297 x 420 mm) QPrintDialogNA4 (210 x 297 mm, 8,26 x 11,7 pulgadas)%A4 (210 x 297 mm, 8.26 x 11.7 inches) QPrintDialog"A5 (148 x 210 mm)A5 (148 x 210 mm) QPrintDialog"A6 (105 x 148 mm)A6 (105 x 148 mm) QPrintDialog A7 (74 x 105 mm)A7 (74 x 105 mm) QPrintDialogA8 (52 x 74 mm)A8 (52 x 74 mm) QPrintDialogA9 (37 x 52 mm)A9 (37 x 52 mm) QPrintDialogAlias: %1 Aliases: %1 QPrintDialog&B0 (1000 x 1414 mm)B0 (1000 x 1414 mm) QPrintDialog$B1 (707 x 1000 mm)B1 (707 x 1000 mm) QPrintDialog B10 (31 x 44 mm)B10 (31 x 44 mm) QPrintDialog"B2 (500 x 707 mm)B2 (500 x 707 mm) QPrintDialog"B3 (353 x 500 mm)B3 (353 x 500 mm) QPrintDialog"B4 (250 x 353 mm)B4 (250 x 353 mm) QPrintDialogNB5 (176 x 250 mm, 6,93 x 9,84 pulgadas)%B5 (176 x 250 mm, 6.93 x 9.84 inches) QPrintDialog"B6 (125 x 176 mm)B6 (125 x 176 mm) QPrintDialog B7 (88 x 125 mm)B7 (88 x 125 mm) QPrintDialogB8 (62 x 88 mm)B8 (62 x 88 mm) QPrintDialogB9 (44 x 62 mm)B9 (44 x 62 mm) QPrintDialog$C5E (163 x 229 mm)C5E (163 x 229 mm) QPrintDialog$DLE (110 x 220 mm)DLE (110 x 220 mm) QPrintDialogVEjecutivo (7,5 x 10 pulgadas, 191 x 254 mm))Executive (7.5 x 10 inches, 191 x 254 mm) QPrintDialogšNo se puede escribir en el fichero %1. Elija un nombre de fichero diferente.=File %1 is not writable. Please choose a different file name. QPrintDialog"El fichero existe File exists QPrintDialog(Folio (210 x 330 mm)Folio (210 x 330 mm) QPrintDialog*Ledger (432 x 279 mm)Ledger (432 x 279 mm) QPrintDialogNLegal (8,5 x 14 pulgadas, 216 x 356 mm)%Legal (8.5 x 14 inches, 216 x 356 mm) QPrintDialogNCarta (8,5 x 11 pulgadas, 216 x 279 mm)&Letter (8.5 x 11 inches, 216 x 279 mm) QPrintDialogAceptarOK QPrintDialogImprimirPrint QPrintDialog*Imprimir a fichero...Print To File ... QPrintDialogImprimir todo Print all QPrintDialog*Imprimir el intervalo Print range QPrintDialog*Imprimir la selecciónPrint selection QPrintDialog.Tabloide (279 x 432 mm)Tabloid (279 x 432 mm) QPrintDialogDSobre US Common #10 (105 x 241 mm)%US Common #10 Envelope (105 x 241 mm) QPrintDialog(conectado localmentelocally connected QPrintDialogdesconocidounknown QPrintDialog CerrarCloseQPrintPreviewDialogApaisado LandscapeQPrintPreviewDialogVerticalPortraitQPrintPreviewDialogRecopilarCollateQPrintSettingsOutput CopiasCopiesQPrintSettingsOutputOpcionesOptionsQPrintSettingsOutputPáginas Pages fromQPrintSettingsOutputImprimir todo Print allQPrintSettingsOutput*Imprimir el intervalo Print rangeQPrintSettingsOutputSelección SelectionQPrintSettingsOutputatoQPrintSettingsOutputImpresoraPrinter QPrintWidgetCancelarCancelQProgressDialog AbrirOpen QPushButton MarcarCheck QRadioButtonVsintaxis no válida para clase de caracteresbad char class syntaxQRegExpBsintaxis no válida para lookaheadbad lookahead syntaxQRegExpDsintaxis no válida para repeticiónbad repetition syntaxQRegExpXse ha usado una característica no habilitadadisabled feature usedQRegExp*valor octal no válidoinvalid octal valueQRegExp8se alcanzó el límite internomet internal limitQRegExp<falta el delimitador izquierdomissing left delimQRegExp>no se ha producido ningún errorno error occurredQRegExpfin inesperadounexpected endQRegExp>Error al abrir la base de datosError opening databaseQSQLite2DriverHNo es posible iniciar la transacciónUnable to begin transactionQSQLite2DriverFNo es posible enviar la transacciónUnable to commit transactionQSQLite2DriverJNo es posible ejecutar la instrucciónUnable to execute statementQSQLite2ResultHNo es posible obtener los resultadosUnable to fetch resultsQSQLite2Result@Error al cerrar la base de datosError closing database QSQLiteDriver>Error al abrir la base de datosError opening database QSQLiteDriverHNo es posible iniciar la transacciónUnable to begin transaction QSQLiteDriverFNo es posible enviar la transacciónUnable to commit transaction QSQLiteDriver>Número de parámetros incorrectoParameter count mismatch QSQLiteResultDNo es posible ligar los parámetrosUnable to bind parameters QSQLiteResultJNo es posible ejecutar la instrucciónUnable to execute statement QSQLiteResult:No es posible obtener la filaUnable to fetch row QSQLiteResultTNo es posible reinicializar la instrucciónUnable to reset statement QSQLiteResult BorrarDeleteQScriptBreakpointsWidgetSiguienteContinueQScriptDebugger CerrarCloseQScriptDebuggerCodeFinderWidget NombreNameQScriptDebuggerLocalsModel ValorValueQScriptDebuggerLocalsModel NombreNameQScriptDebuggerStackModelBúsquedaSearchQScriptEngineDebugger CerrarCloseQScriptNewBreakpointWidgetParte inferiorBottom QScrollBarBorde izquierdo Left edge QScrollBar"Alinear por abajo Line down QScrollBarAlinearLine up QScrollBar,Una página hacia abajo Page down QScrollBar2Una página a la izquierda Page left QScrollBar.Una página a la derecha Page right QScrollBar.Una página hacia arribaPage up QScrollBarPosiciónPosition QScrollBarBorde derecho Right edge QScrollBar*Desplazar hacia abajo Scroll down QScrollBar(Desplazar hasta aquí Scroll here QScrollBar8Desplazar hacia la izquierda Scroll left QScrollBar4Desplazar hacia la derecha Scroll right QScrollBar,Desplazar hacia arriba Scroll up QScrollBarParte superiorTop QScrollBar++ QShortcutAltAlt QShortcut(Anterior (histórico)Back QShortcut Borrar Backspace QShortcut*Tabulador hacia atrásBacktab QShortcut(Potenciar los graves Bass Boost QShortcut Bajar los graves Bass Down QShortcut Subir los gravesBass Up QShortcut LlamarCall QShortcut*Bloqueo de mayúsculas Caps Lock QShortcutBloq MayúsCapsLock QShortcutLimpiarClear QShortcut CerrarClose QShortcutContexto1Context1 QShortcutContexto2Context2 QShortcutContexto3Context3 QShortcutContexto4Context4 QShortcutCtrlCtrl QShortcutSuprDel QShortcut BorrarDelete QShortcut AbajoDown QShortcutFinEnd QShortcut IntroEnter QShortcutEscEsc QShortcut EscapeEscape QShortcutF%1F%1 QShortcutFavoritos Favorites QShortcutVoltearFlip QShortcut*Siguiente (histórico)Forward QShortcutDescolgarHangup QShortcut AyudaHelp QShortcut InicioHome QShortcut Página de inicio Home Page QShortcutInsIns QShortcutInsertarInsert QShortcutLanzar (0) Launch (0) QShortcutLanzar (1) Launch (1) QShortcutLanzar (2) Launch (2) QShortcutLanzar (3) Launch (3) QShortcutLanzar (4) Launch (4) QShortcutLanzar (5) Launch (5) QShortcutLanzar (6) Launch (6) QShortcutLanzar (7) Launch (7) QShortcutLanzar (8) Launch (8) QShortcutLanzar (9) Launch (9) QShortcutLanzar (A) Launch (A) QShortcutLanzar (B) Launch (B) QShortcutLanzar (C) Launch (C) QShortcutLanzar (D) Launch (D) QShortcutLanzar (E) Launch (E) QShortcutLanzar (F) Launch (F) QShortcutLanzar correo Launch Mail QShortcutLanzar medio Launch Media QShortcutIzquierdaLeft QShortcutSiguiente medio Media Next QShortcut&Reproducir el medio Media Play QShortcutMedio anteriorMedia Previous QShortcutGrabar medio Media Record QShortcut Detener el medio Media Stop QShortcutMenúMenu QShortcutMetaMeta QShortcutNoNo QShortcutBloq numNum Lock QShortcutBloq NumNumLock QShortcut Bloqueo numérico Number Lock QShortcutAbrir URLOpen URL QShortcutAvanzar página Page Down QShortcut"Retroceder páginaPage Up QShortcut PausaPause QShortcut Av PágPgDown QShortcut Re PágPgUp QShortcutImpr PantPrint QShortcut"Imprimir pantalla Print Screen QShortcutActualizarRefresh QShortcutRetornoReturn QShortcutDerechaRight QShortcutGuardarSave QShortcut4Bloqueo del desplazamiento Scroll Lock QShortcutBloq Despl ScrollLock QShortcutBúsquedaSearch QShortcutSeleccionarSelect QShortcutMayShift QShortcutEspacioSpace QShortcut ReposoStandby QShortcutDetenerStop QShortcut PetSisSysReq QShortcut(Petición del sistemaSystem Request QShortcutTabuladorTab QShortcut Bajar los agudos Treble Down QShortcut Subir los agudos Treble Up QShortcut ArribaUp QShortcut Bajar el volumen Volume Down QShortcutSilenciar Volume Mute QShortcut Subir el volumen Volume Up QShortcutSíYes QShortcut,Una página hacia abajo Page downQSlider2Una página a la izquierda Page leftQSlider.Una página a la derecha Page rightQSlider.Una página hacia arribaPage upQSliderPosiciónPositionQSlider>La operación de red ha expiradoNetwork operation timed outQSocks5SocketEngineCancelarCancelQSoftKeyManagerTerminarDoneQSoftKeyManager SalirExitQSoftKeyManagerOpcionesOptionsQSoftKeyManagerSeleccionarSelectQSoftKeyManager MenosLessQSpinBoxMásMoreQSpinBoxCancelarCancelQSql:¿Cancelar sus modificaciones?Cancel your edits?QSqlConfirmarConfirmQSql BorrarDeleteQSql,¿Borrar este registro?Delete this record?QSqlInsertarInsertQSqlNoNoQSql8¿Guardar las modificaciones? Save edits?QSqlActualizarUpdateQSqlSíYesQSqljNo se puede proporcionar un certificado sin clave, %1,Cannot provide a certificate with no key, %1 QSslSocketFError al crear el contexto SSL (%1)Error creating SSL context (%1) QSslSocket@Error al crear la sesión SSL, %1Error creating SSL session, %1 QSslSocket@Error al crear la sesión SSL: %1Error creating SSL session: %1 QSslSocket>Error durante el saludo SSL: %1Error during SSL handshake: %1 QSslSocketPError al cargar el certificado local, %1#Error loading local certificate, %1 QSslSocketHError al cargar la clave privada, %1Error loading private key, %1 QSslSocket"Error al leer: %1Error while reading: %1 QSslSocketLLista de cifras vacía o no válida (%1)!Invalid or empty cipher list (%1) QSslSocketHNo es posible escribir los datos: %1Unable to write data: %1 QSslSocket"Error desconocido Unknown error QSslSocket"Error desconocido Unknown error QStateMachine>No es posible abrir la conexiónUnable to open connection QTDSDriverNNo es posible utilizar la base de datosUnable to use database QTDSDriver8Desplazar hacia la izquierda Scroll LeftQTabBar4Desplazar hacia la derecha Scroll RightQTabBar&Copiar&Copy QTextControl &Pegar&Paste QTextControl&Rehacer&Redo QTextControl&Deshacer&Undo QTextControl>Copiar la ubicación del en&laceCopy &Link Location QTextControlCor&tarCu&t QTextControl BorrarDelete QTextControl Seleccionar todo Select All QTextControl AbrirOpen QToolButton PulsarPress QToolButton>La plataforma no contempla IPv6#This platform does not support IPv6 QUdpSocketRehacerRedo QUndoGroupDeshacerUndo QUndoGroup<vacío> QUndoModelRehacerRedo QUndoStackDeshacerUndo QUndoStackHInsertar carácter de control Unicode Insert Unicode control characterQUnicodeControlCharacterMenuHLRE Start of left-to-right embedding$LRE Start of left-to-right embeddingQUnicodeControlCharacterMenu,LRM Left-to-right markLRM Left-to-right markQUnicodeControlCharacterMenuFLRO Start of left-to-right override#LRO Start of left-to-right overrideQUnicodeControlCharacterMenu<PDF Pop directional formattingPDF Pop directional formattingQUnicodeControlCharacterMenuHRLE Start of right-to-left embedding$RLE Start of right-to-left embeddingQUnicodeControlCharacterMenu,RLM Right-to-left markRLM Right-to-left markQUnicodeControlCharacterMenuFRLO Start of right-to-left override#RLO Start of right-to-left overrideQUnicodeControlCharacterMenu*ZWJ Zero width joinerZWJ Zero width joinerQUnicodeControlCharacterMenu4ZWNJ Zero width non-joinerZWNJ Zero width non-joinerQUnicodeControlCharacterMenu*ZWSP Zero width spaceZWSP Zero width spaceQUnicodeControlCharacterMenuParte inferiorBottomQWebPagePrecedenteGo BackQWebPageIgnorarIgnoreQWebPageIgnorar Ignore Grammar context menu itemIgnoreQWebPageBorde izquierdo Left edgeQWebPage,Una página hacia abajo Page downQWebPage2Una página a la izquierda Page leftQWebPage.Una página a la derecha Page rightQWebPage.Una página hacia arribaPage upQWebPageReinicializarResetQWebPageBorde derecho Right edgeQWebPage*Desplazar hacia abajo Scroll downQWebPage(Desplazar hasta aquí Scroll hereQWebPage8Desplazar hacia la izquierda Scroll leftQWebPage4Desplazar hacia la derecha Scroll rightQWebPage,Desplazar hacia arriba Scroll upQWebPageDetenerStopQWebPageParte superiorTopQWebPageDesconocidoUnknownQWebPage¿Qué es esto? What's This?QWhatsThisAction**QWidget&Terminar&FinishQWizard &Ayuda&HelpQWizardSiguie&nte >&Next >QWizard< &Anterior< &BackQWizardCancelarCancelQWizard EnviarCommitQWizardSiguienteContinueQWizardTerminarDoneQWizardPrecedenteGo BackQWizard AyudaHelpQWizard%1 - [%2] %1 - [%2] QWorkspace&Cerrar&Close QWorkspace &Mover&Move QWorkspace&Restaurar&Restore QWorkspace&Tamaño&Size QWorkspaceQ&uitar sombra&Unshade QWorkspace CerrarClose QWorkspaceMa&ximizar Ma&ximize QWorkspaceMi&nimizar Mi&nimize QWorkspaceMinimizarMinimize QWorkspaceRestaurar abajo Restore Down QWorkspaceSombre&arSh&ade QWorkspace6Permanecer en &primer plano Stay on &Top QWorkspaceºse esperaba una declaración de codificación o declaración autónoma al leer la declaración XMLYencoding declaration or standalone declaration expected while reading the XML declarationQXmlnerror en la declaración de texto de una entidad externa3error in the text declaration of an external entityQXmlzse ha producido un error durante el análisis de un comentario$error occurred while parsing commentQXmltse ha producido un error durante el análisis del contenido$error occurred while parsing contentQXml¤se ha producido un error durante el análisis de la definición de tipo de documento5error occurred while parsing document type definitionQXmlvse ha producido un error durante el análisis de un elemento$error occurred while parsing elementQXml|se ha producido un error durante el análisis de una referencia&error occurred while parsing referenceQXml4error debido al consumidorerror triggered by consumerQXml¢no se permiten referencias a entidades externas generales ya analizadas en la DTD;external parsed general entity reference not allowed in DTDQXmlÄno se permiten referencias a entidades externas generales ya analizadas en el valor de un atributoGexternal parsed general entity reference not allowed in attribute valueQXml†no se permiten referencias a entidades internas generales en la DTD4internal general entity reference not allowed in DTDQXml\nombre de instrucción de tratamiento no válido'invalid name for processing instructionQXml*se esperaba una letraletter is expectedQXmlTmás de una definición de tipo de documento&more than one document type definitionQXml>no se ha producido ningún errorno error occurredQXml(entidades recursivasrecursive entitiesQXmlˆse esperaba una declaración independiente al leer la declaración XMLAstandalone declaration expected while reading the XML declarationQXml.etiqueta desequilibrada tag mismatchQXml&carácter inesperadounexpected characterQXml2fin de fichero inesperadounexpected end of fileQXmltreferencia a entidad no analizada en un contexto no válido*unparsed entity reference in wrong contextQXmlbse esperaba la versión al leer la declaración XML2version expected while reading the XML declarationQXml^valor erróneo para la declaración independiente&wrong value for standalone declarationQXmlP%1 no es un identificador PUBLIC válido.#%1 is an invalid PUBLIC identifier. QXmlStreamT%1 es un nombre de codificación no válido.%1 is an invalid encoding name. QXmlStreamt%1 es un nombre de instrucción de procesamiento no válido.-%1 is an invalid processing instruction name. QXmlStream., pero se ha recibido ' , but got ' QXmlStream(Atributo redefinido.Attribute redefined. QXmlStream>No se admite la codificación %1Encoding %1 is unsupported QXmlStream`Encontrado contenido codificado incorrectamente.(Encountered incorrectly encoded content. QXmlStream4Entidad «%1» no declarada.Entity '%1' not declared. QXmlStreamSe esperaba  Expected  QXmlStream>Se esperaban datos de carácter.Expected character data. QXmlStreamNContenido extra al final del documento.!Extra content at end of document. QXmlStreamRDeclaración de espacio de nombres ilegal.Illegal namespace declaration. QXmlStream.Carácter XML no válido.Invalid XML character. QXmlStream*Nombre XML no válido.Invalid XML name. QXmlStream@Cadena de versión XML no válida.Invalid XML version string. QXmlStreamRAtributo no válido en la declaración XML.%Invalid attribute in XML declaration. QXmlStreamBReferencia un carácter no válido.Invalid character reference. QXmlStream(Documento no válido.Invalid document. QXmlStream<Valor de la entidad no válido.Invalid entity value. QXmlStreambNombre de instrucción de procesamiento no válido.$Invalid processing instruction name. QXmlStream\NDATA en una declaración de entidad parámetro.&NDATA in parameter entity declaration. QXmlStream^Prefijo de espacio de nombres «%1» no declarado"Namespace prefix '%1' not declared QXmlStream`Las etiquetas de apertura y cierre no coinciden. Opening and ending tag mismatch. QXmlStream<Final prematuro del documento.Premature end of document. QXmlStream8Detectada entidad recursiva.Recursive entity detected. QXmlStream~Referencia a una entidad externa «%1» en el valor del atributo.5Reference to external entity '%1' in attribute value. QXmlStreamVReferencia a una entidad no analizada «%1»."Reference to unparsed entity '%1'. QXmlStreamZSecuencia «]]>» no permitida en el contenido.&Sequence ']]>' not allowed in content. QXmlStreamJ«Standalone» sólo acepta «sí» o «no»."Standalone accepts only yes or no. QXmlStream>Se esperaba etiqueta de inicio.Start tag expected. QXmlStreamŽEl pseudoatributo «standalone» debe aparece después de la codificación.?The standalone pseudo attribute must appear after the encoding. QXmlStream No se esperaba ' Unexpected ' QXmlStream‚Carácter «%1» inesperado en un literal de identificación público./Unexpected character '%1' in public id literal. QXmlStream0Versión XML no admitida.Unsupported XML version. QXmlStreamlLa declaración XML no está al principio del documento.)XML declaration not at start of document. QXmlStreamˆx2goclient-4.0.1.1/qt_fr.qm0000644000000000000000000047417512214040350012302 0ustar <¸dÊÍ!¿`¡½ÝB+(*Šu+0@îQAîËBïBCï¹Dð0Eð»Fñ2Gñ©HòIòŽPó?Qó¼Rô«Sõ"Tõ™UöVö›W÷X÷†Y÷÷]IÂ;'ë;=-;OX;¹ƒ;þxMIêO=ÃOPÀC±}JmJ:¯¥(56+;Ó+;L+;Sx+O§+OKå1E@ô6F•øhH40/HYi]H5ZIù"J¼4JÄ3ëJÄk³KÊLD4¡L“4÷PS7Rm0ZrC[`(¡[`‰/\Ýšk_ÃDÁ_ÃPÐ1ºTsÔEVj¿Ãå¿ÃL…‡›¹‡›]ù‡›0V–$jN–$hl˜,1Ʀy3“¦yk§Ô)§Ô¤Ø§Ô\Ш¥ «Œ3Á¬9jºµ›R¯¶EJî¶EMW¶EŒ-¶Þ4yÏMÐ%§Ð%` Ó5¸Öæ Ö ?Ö KÖ)ì0'¿ì0N©ì0µ—ì0¸þì06wì0Œ’ö56¡ DQÔ DhK+Ô;¶,£S,£N@<¡=hF…SIF…NkH5®H5QþH5hÈH5áŽH5#]H5#ÖVE f¾"f¾AÜf¾Oƒf¾b f¾¸f¾ f¾]‰gÕ ‚lÀ?…‹¯^x‹¯_ ˜ÅP­˜Å@è¡•¡R&¡h÷¦”Æ«`B„«`‡F®yp9¹µ¹µB Àe!ÀeRTÀei,į^©į_= «yñU~‘RÖ^‘R9‘ò§žQÃ3îB™Ç¿$™èo(4²dÆ(4òdú(5e.(5‚eb*¦y(*¦y¤ *¦y[•*ÖTq5*ì05ç*ì0ŠÉ+FÅ´+FÅ'+LôŠô+f¾ý+f¾[*+‹z?¾+‹¯(v+‹¯¤p+‹¯[þ+˜z?ô+˜Åk+˜ÅLC+˜Å[–+¡qh+¡µ+¡˜+į(¬+ᤥ+į\4+Çú@47“- :9Î4È;®ªd@ÑÌC:žÄ,F0iüéFn4Î÷Fn4Ï_G–”L¶Hw9'Hw9LôHâõz I'›jIë›=ÅIë›PJ+‚(àJ+‚2SJ6•)ŽJ6•A‚J6•MiJ6•R~J6•µdJ6•¸4J6•gJ6•#J6•$PJ6•2„J6•ŽJcb óKQzQKÅ_ñLZÂ4ÈLƒ•¾Lƒ•A±L™buM5„RãMbÿû¹Me³m'MƒÃµN‹»kƒO|Š@íPFE,bPFE¶©PFEŽ·QóÂlÕRŠþmUR½|üÃRýôm|S8^éíTÉóßTÉó=’TÊ´ ÎTæÑ#ƒU?^­¨U¯|JbUÞ}nRV1¼ÿAV1¼2VlSV†ÂèVŠ¥>óVŠ¥|~VŒ•?"VñnyWŒ£:?WŒ£]¹WTþŸWT~WT?¹X~2£XÉÄO¸XÉÄ}3XË™PqXýô@¹YÄón Y祷jYïÔAùYöcðZg•B"Zkôo‡ZƒüoÂ[;^üÍ\ŠÀ\]4ÀB\]4I=\ƒµá½\ƒµ#–\ú¿9\ú¿CÙat¢Ûgc¯lG¹Kö|^ÄäcÞ)M„vK„vŠ…éÃ0µ‹fxÆŽ4Lí:Ž5®ífŽã.Ä6Cj|˜IA$W¥[³Oü§ë‹„ø¨œ!ó°I´<´º«yö¾ÉµnDÞɵnŽɵn”áɵn¬ɵnÑáɵn×Wɵn‹ÉµnÑËÔ79ËÔ{ÌÐ B¿vÓ*Î wÞ'Ž=]ãŽÞ?ðå˜ËqÇêMºèDòEò¼òÎan÷Ëù~Êqù÷© Á¥† ¢>ôHÊ<ë<äœpùò@×5¿#Qéø%UTÂP(ÅŽeÕ*ä4ØÖ-ctB‰-ctWÃ2Àéò±5vq[¨2·¨2n©f}±{'i½µ´.S£¶RÞ£\·Aig»·Ù¿PùPà d•¿ÄyôZÇtÕUìØ î²Ä‹ïy#ñ‰òº„šóur–L ¸äÓÀ Ü~• Ydl‡ öâÏÈ"l®V)9þ-À¤yˆ/=NC;1Ø$¾x5~uD< Äš–?—2Í?»NÇM¡ã|¬NkyôÎU¿iå¸W÷~þ]Ýé"7`êFÙ`êÛŒj•ttÆlgãùlyzšðl}µt/oiÁoðvtyC8vty+1ým­”"¾¡Þ—ú(™úÚ™ú`R£«”¤¾¶¥4ž×L¥²)˜ª6•K¬ª6•´Zª6•Œô´^¡y;´ƒŠÒ¶Š¥(C¶Š¥¤>¶Š¥[É·Ržê}·Tí’º=ºº÷ž¼~.¤¾‚´Za¾œûA ¿¾'¿¾~T¿Eå'X¿Eå~¢À‚´'¤À‚´~ìÄ{Ž^ÚÇ=±ÈùÊ8A8ÛAwyÛÃG'ß[yïÜâL´Ökä¤Pòì‚nÿÛòø‘ ó‚¤GQ󂤰*ó‚¤Õñó‚¤Üó‚¤ó‚¤!õØmµ<õðM´õðMŒºöE”sßöE”}Œw&w%Iâþç7^îî† ÍI¥ ŽžÔàÚáVVžáJ;ÅþÐÆ ê‚*¼!Ïed×&¸ž¦R)ÕD*/eDC;„¼»B‹yõ¼Ecš³‚F±åJO«áóZõf]ì\cI¶`à³:bœÔ3cÖƒ%D}kaLнõnÕˆàç Ó~¡<³Ý2—øÑv#£y¾ $£–þÕy©ßÒ¥í¯É$R¯É$™œ°‚µ”Œ´àäjàÀYÁ+³¿Ã( D‚ÊþK;ÊôrÍ«Î^šSÑKõTÖŠÂA%ã nããõɯ#ä,ÔêËw#ëÕÿëÎñ;yîîùOž6-ú-îá[ùATžº¦7^5="A&H„—.Žžû/¥Ä?ÞÉ×IxS>[Mþˆ*Rå>¬‹YMát+YMá}Ù^Á¾ß~h^.wiïÓ4sscºás¡®¯iwÞ%€»Ñt€ˆxóiЉ/^‹2ÊÈŒ‡Ô6ŽÛŠ@¸at°'–´N<|–»]$–»]h•—ÌŠܘI¼ ˜I¼&ߘI¼'O˜I¼M0˜I¼è˜I¼M˜I¼N”˜I¼‹—ŸI8ÕŸY9Ÿi9MŸy9‰Ÿ‰7埙8!Ÿ©8]Ÿ¹8™Ÿé7mŸù7©ŸI:ñŸ‰:Ÿ™:=Ÿ©:yŸ¹:µŸù9Å¡uDx=¡uDê¦D‹Ç¦oà €¬,¥†¬,¥¥¬,¥"™¬,¥4C¬,¥OT¬,¥]¬«]øã´é„U¹ÊåæÎ¹ÊåR½rŽ8òɘe5"Ì5$sÎ 4†cÑfRÙÑfRbXÕG>3‘Øè4዇á_sèNÀ6?é•bÐë˜Çlõ¬c1wöûóßøSÒmØûPq{þV…NÚþV…n6ÿfRZßœ”뜔7;œ”Oí ‚ól: ‚óo½ ×ä*·æ•rö©ûß’ž?äŽ ¼‚—úÔŒ“%CÉ.¬&‹~lü&§Þ¸Î)È2œ})ðžÂ+­Âü<,ºÂýy?"£®!?>uxVKNYdMî1NÚ>éR¿òºRV“|n]¿ž]¿ž“ãk¶Þ?Oyô^+¬€{yùFŒ5t@SŒ5t|þŒFÅcqŒ¼Ž@‰:pN‘Ξæ0“ån)˜G%rU˜œnÆû™ØµÒjšÇ¥7›ˆ˜$›ˆ˜A‡œ+¤A½œ+¤Mþ¡`Ån¸¦±t©§{yøŒ«”‡o¬;åoé®xAp¯rÉö3°9\oT°ˆÁB®°soаª½.D±Ï¾EõÞ%=ô¸{Î×ÿ½C-ðÂ5Ë>ÆžÕÆC^‚uƨ¥Kƨ¥P˾ä”iÒzdÔiU´Õ§?O…ÚZ>ªýÛz‹WZߺºé°ãÄU€çf•ÆÆómÆüä^‹þ!žç— Éž}ú$²1~bb ~bh|oÓ…M›E!ë¿’')Ñžà•+Öuô+ï3”,8ÎD/ô…ÿ…/ô…~1õLl4~Ð6Ï AI? 2‰ÅA£• /D短G¾ñscGÎbgKLAUYÜOrF‡PѧMŸQ…î€ÙSÅnë Tµ0Uô …Uô˜UôÁÿUÞTŒZËÑ2³ZËÒ2ëZËÓ3#ZËÔ3[["Þ[‹û]k*aÑ]ú®ÀÄ^ãn˜2_pÔ ¸e‘"ižäxižä‚;kQ¾¬'oÛN¥ y;Ç­{W{MÅ}u>Î}w&H}wEª}w|<}¶¨ý„Ãûk†Ò©ˆŠê‚•AÕ䙜r°)%—B™íÞ¢›v£ú›ƒtèÊ›ƒtë «.&Œ «.Eë¡®3Vï¥P肦iURµD„“ßµY´§d·Ýt6‡·Ýt~|·Ýt½¾¸°Ž¶cºç¡¦½-n7õÀ_ >mÃ+ç‡ ÉF±°¦ÊC¾òÆÊ¢äHCÊ¢äÝÎÊÆ´ÝVÊçdIHÊçd±!ÊçdÖÛÊçdÞÆÊçdå;Ë0{EÌ59‘#ÑçæØ+ˆ`ÚNSÞFä‡P;ì»UÇÉîdßCþ¯B›^þáhÜ€w®ÒÑ–½Ÿ½ 2þëE ×hÄ?,X …‘‘˜+ª¤„',ŒDyL/ÿîºÊ2ìT42Þú™6’ÑyÆ7·D9ú:‰"?;ÞêÆCU]ngDØ›IàNÆJ0žê5KÕóK¯}²U|1öV7ÞÛ”\¬'arÅt‰¯wÛØð|(^}ÿ|ãy­|¬‰}wZçÇ}š$&}š$Ej}š${ûŒÏ—<Z’„œVNõùŸ”w·Ÿ±D‡% L>ì[¡s§ãN*[ªÜqpº´K<Oµf+kq·ƒB4·ƒ(Ñ·ƒWlýž¹dÅäÆ×³•Îû îtÕ/€|àŸ±~ãûµþ3ä½ULóë»Er øvþ>¡u?%5gè›T¬©›Ö e~Þ)i~ÉücúiG9%ƒþÑ䄆ÿwifb³%#²á$%’¾¥’'ÕË;-å.ó.÷ލ5kE7=ƒâDy=ƒâ/ª=ƒâXÿ?ƒâ¦ ?ƒâ«,CtIkPËîÜœV%î|V%îßXU `ŸZŒî‹`åå*bbDBÚbG·žkf“dfÈgŸA#ÞhI•lriê$Õ_x1 2z*20ß|QR‚‚¨dØPƒJ„Ÿ†®žËŠU€1‹‹(.@¯•zT½•c.„ªªDª.)µÞr†“¶°ãJ¸XÔlºmsºå^m»²eмìn%˽ŒÈ@†5‡¤ÄØiiöÇC¼PìÊ´5´ÉÊ´5]ʶնáÌÉÅÜÓ^ Š\ÚÔ„’HÛ”# ÝD„‘“ß'N”âÜd—yðF5,)ðF5¶ò»YäÉópɈüõ+>'YüùIxüùI`ñýAs| äÑHº }$²Á qe|x Ú¤¼ Ú¥ Œ ôdK íE®° íEÔî î7L Ac( Acd% ÚôH: 3š5ÇK ¬ bÅ^ bb_n b¾`(Q b¾`• gUò¨Ù iä33 laô¸º uáÎË xq ¹ |o¾ãñ ‚|Åá Š·Jb ŒtÓ ŒtÓc© Ž .¤u Žíòÿ ˜ŠÞø! ™)þÚ šF>°— Ÿ¥ÞWÀ ¢³Ä6ß ¢³Ä¾ ¦„„JÎ §²¿ó ¨B¾C ©Ò‰5 ­>ó › ­‚µ× ²î¾ïý ¸æÉ•Ô ¸æÉ¯² ºn©Æ ¼áN\ ÉËÃj‘ ÊY+.Ÿ ÜKç* ÝÕa 팤Ñ îl~Ë ñ%'` ö ®… ÷»¼;- û/î·ü =ŽŸí èqo+  DG ü®âx }´é[ o´Uø ¬ŽÃ@ )µžþÙ */å0¤ .>¤ªB 5Ýîöˆ 7uóš ;Ù § =är‰ BÇé BònÓ„ J‰"Ê· K2…{ RÛ®ç Ty çB Tþ^1P Uj4¦> ]‘žÈy `±‹ `±² bÕ¨. b¿®/õ c(å ± c·Ec dÐÍO" eœÇ eœÇaŠ e¨{/4 fŽ1u³ fü* » g5U‘ gîn™ kŸ,× rD"&N t> L è¼:?ˆ ëf Æ ëf \² ÷4— øÊ.p_ øûŽêG ý‡sü ý‡s_z AAzN —9èš ˜ÄN ÷9³Þ   m, þ #-tÅw 0†N;E 5Î@: A›ùQ CóUpõ EÔ9Ç IßuM L‘¥k. Lö6 Lö‹% Mc\Q9 RÕîõQ SÐ’Ä V×—‰ W“åL% ]â$FV f) f)] f=¦  io>œ» mû`-ù wÇ> xáRµ y¡rJµ ƒô>áë „‚€þ ‹æÿ ŒH1 ŒH[] Ü 9i nÒ¿ ‘$þ^I ’.@Cv “þ’$ú — iðS ¢×€} £Ü )C £Ü ¥> £Ü ]< £ü €4 ¬ü%ù ¯ÙJ8 ¯ÙJ_µ ´Ž¢C ¿t.ÙÓ ÂkÔZ´ ÃÓ‡)¾ ÈMÄ ÈÇ'ƒ ÊN>Ÿ ̺óq× Ï&Þ:o Ô-DrØ ÖØ.£5 Û·å+ àrÚ° âkÔ'ú âkÔ@ èU)‚ó êéž ðË<- óŸãC… óŸã+­ óŸãX õ0Ë=é ö”Äxñ §éæˆ z+z”  „wû  „§ ŒIk² ‚%p˜ èN F ö>D ©´h xH‡ ƒòªÒ .Éã>Ù 7F´˜Â >ÏòzÑ >Ïò{ƒ >Ïò|Ý >Ïò†à >Ïò™S >Ïò£Å >ÏòÈ& >Ïòë >ÏòVÕ >ÏòW ?t|eG D€Tž IëË>& P@Þ b RVŽd‘ RVމ“ RV® S.ŸNÁ SGùÌc SÀõ YåÚ Yçõ·ù [•›bÛ hÛ®kI j7oY¼ p¡Ã?) vôC †šž»û ŒÑB•h Žè›± ½TEc ½T¬œ ½T×Ý ½Tã„ ‘ñíË ’›¢–¶ “èÄGË “èÄÜÝ ”Å kÜ –‚™ùÇ )dÆ Ÿ§T©I ©‰a³ ¬Á.EÕ ¬Á.Ž™ ¬Á.­œ ¬Á.Ó= ¬Á.ÙQ ¬Á.Y ­— °†ÔLC µÑ+S ¸aÃ5 » y,— »±Ž Í ¾e.ÐK ÉhN { Î>íI ҂ àó æ%´vŒ èíuuõ ë¬å¸_ ñ­ÞĪ ó|ô+[ ô’ÞŒ úù%o ýXt ß ÿün1È ¿9ge t’ aUB Í :bƒR Uqª à€< Êœ=Q  Áô° #$îAX #=—› %™n å (I$F (öN¶ä +>º@l +kž&! 0ÒE– 64,Ž ;ɾ\j FgàY K×9Éx Ptµ¶n PtµŽ T»>✠dBâÀ fèe$Á fèeq g­ý  iFC5 iØÄaO iØÄ5ì jÓ®· kGn!• m9Äm n¤î¨¬ u®>§ uüÁTª v î Õ v&¥é v{ð× w®%} w®Dè w®{w w}¤%¿ w}¤E' w}¤{· |[®®Ë €®ßä ƒÈôtø ƒÈô~/ ŽJ©‰™ —Ã^¹* ¢}Ò¢ ªôRdX ±žPˆ} ¶²Ê+ ¾xN Á ÇÒU§Å ɰe‹ ÍïF Ûùž© ÜXà ä&Þ®` êDù ë¼óc ìÕ+-¹ ðt5µÅ ðt5ŽC ð¨Ñg òŽùü ö¯>#q ø¾· ø¾Žì ø)¤ ú¾-®Rƒ{w¤ø @a T8ˆ‡ÛmW‡ÛŒ]gT8ûÚ*‡«6K*‡«‹\/ÇE7‹/ÇEÀ»=êBIÌ_ƒÆK·õL­OO”¨XRucNXѽ[ HJ[Ÿ ×a.ÅNVa‚.µÇgcGÃnyG­gvÉ…"yy$½€~¹…܃>ÖqŽÞΠꓪ4Î6¨'îÏ+«Ó4f´÷S˜Ö»®^ìb½Ç—z־获d¿ß:æJÇB¤4ùÊæÂcèεÜrµ¥ˆÝ–þúcò[yõE÷Þ^† íÒ© íÒ^ÊG¾»clD¢–þ¥æ"# %$ÚU %º4Q%º4gŒ-v›`¦0i)<&0’À=1cÁŸ2wT;äD¢Ã.éHúù Jd…-K¡òK6L$.’ñW÷¾ûÌc5&Ãc5}og3ÜpþÅä\yƒC/Þ{~a;t6$rYY5 &òËà‹{îE•`éñÌœ¿nã¡[ô D¢÷>ää®þ¦ç¯·z¯·_+¹>bm¼‰g¾NXÿ„ƒÀ E‚Â"~eÄÜLþxÉrÔ7üÉrÔ[ÐkyïeàLnHè "éB÷ ëéPé÷5øt2;ôû¾«û¾Ñ]û¾û¾Jþ”d÷ÿUµeªiM4Fermer l'onglet Close Tab CloseButtonAccessibilité AccessibilityPhonon::ÿÿÿÿ CommunicationPhonon::JeuxGamesPhonon::MusiqueMusicPhonon::ÿÿÿÿ NotificationsPhonon:: VidéoVideoPhonon::Ð<html>Utilisation de <b>%1</b><br/>qui vient de devenir disponible et a une plus grande priorité.</html>xSwitching to the audio playback device %1
which just became available and has higher preference.Phonon::AudioOutput¶<html>Le dispositif audio <b>%1</b> ne fonctionne pas.<br/>Utilisation de <b>%2</b>.</html>^The audio playback device %1 does not work.
Falling back to %2.Phonon::AudioOutput&Utilisation de '%1'Revert back to device '%1'Phonon::AudioOutputöAttention: Vous n'avez apparemment pas installées les plugins de base de GStreamer. Le support audio et vidéo est désactivé~Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabledPhonon::Gstreamer::BackendAttention: Vous n'avez apparemment pas installé le paquet gstreamer0.10-plugins-good. Des fonctionnalités vidéo ont été desactivées.„Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled.Phonon::Gstreamer::BackendºUn codec requis est manquant. Vous devez installer le codec suivant pour jouer le contenu: %0`A required codec is missing. You need to install the following codec(s) to play this content: %0Phonon::Gstreamer::MediaObjectLImpossible de décoder le média source.Could not decode media source.Phonon::Gstreamer::MediaObjectPImpossible de localiser le média source.Could not locate media source.Phonon::Gstreamer::MediaObject¨Impossible d'ouvrir le périphérique audio. Celui-ci est déjà en cours d'utilisation.:Could not open audio device. The device is already in use.Phonon::Gstreamer::MediaObjectHImpossible d'ouvrir le média source.Could not open media source.Phonon::Gstreamer::MediaObject0Type de source invalide.Invalid source type.Phonon::Gstreamer::MediaObjectAccès refuséPermission denied Phonon::MMFMuetMutedPhonon::VolumeSliderÐUtilisez le slider pour ajuster le volume. La position la plus à gauche est 0%, la plus à droite est %1%WUse this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%Phonon::VolumeSliderVolume: %1% Volume: %1%Phonon::VolumeSliderHLa séquence %1, %2 n'est pas définie%1, %2 not definedQ3Accel>Séquence ambiguë %1 non traitéeAmbiguous %1 not handledQ3AccelSupprimerDelete Q3DataTableFauxFalse Q3DataTableInsérerInsert Q3DataTableVraiTrue Q3DataTableActualiserUpdate Q3DataTableš%1 Impossible de trouver le fichier. Vérifier le chemin et le nom du fichier.+%1 File not found. Check path and filename. Q3FileDialogSuppri&mer&Delete Q3FileDialog&Non&No Q3FileDialog&OK&OK Q3FileDialog&Ouvrir&Open Q3FileDialog&Renommer&Rename Q3FileDialog&Enregistrer&Save Q3FileDialog&Non trié &Unsorted Q3FileDialog&Oui&Yes Q3FileDialogb<qt>Voulez-vous vraiment supprimer %1 "%2" ?</qt>1Are you sure you wish to delete %1 "%2"? Q3FileDialog*Tous les fichiers (*) All Files (*) Q3FileDialog.Tous les fichiers (*.*)All Files (*.*) Q3FileDialogAttributs Attributes Q3FileDialog,Précédent (historique)Back Q3FileDialogAnnulerCancel Q3FileDialog6Copie ou déplace un fichierCopy or Move a File Q3FileDialog0Créer un nouveau dossierCreate New Folder Q3FileDialogDateDate Q3FileDialogSupprimer %1 Delete %1 Q3FileDialog$Affichage détaillé Detail View Q3FileDialogDossierDir Q3FileDialogDossiers Directories Q3FileDialogDossier : Directory: Q3FileDialog ErreurError Q3FileDialogFichierFile Q3FileDialog"&Nom de fichier : File &name: Q3FileDialog$&Type de fichier : File &type: Q3FileDialog0Chercher dans le dossierFind Directory Q3FileDialogInaccessible Inaccessible Q3FileDialogAffichage liste List View Q3FileDialog Chercher &dans : Look &in: Q3FileDialogNomName Q3FileDialogNouveau dossier New Folder Q3FileDialog$Nouveau dossier %1 New Folder %1 Q3FileDialog"Nouveau dossier 1 New Folder 1 Q3FileDialog.Aller au dossier parentOne directory up Q3FileDialog OuvrirOpen Q3FileDialog OuvrirOpen  Q3FileDialog>Contenu du fichier prévisualiséPreview File Contents Q3FileDialogHInformations du fichier prévisualiséPreview File Info Q3FileDialogR&echargerR&eload Q3FileDialogLecture seule Read-only Q3FileDialog Lecture-écriture Read-write Q3FileDialogLecture : %1Read: %1 Q3FileDialog Enregistrer sousSave As Q3FileDialog.Sélectionner un dossierSelect a Directory Q3FileDialog:Afficher les fic&hiers cachésShow &hidden files Q3FileDialog TailleSize Q3FileDialogTriSort Q3FileDialogTrier par &date Sort by &Date Q3FileDialogTrier par &nom Sort by &Name Q3FileDialog"Trier par ta&ille Sort by &Size Q3FileDialogFichier spécialSpecial Q3FileDialog>Lien symbolique vers un dossierSymlink to Directory Q3FileDialog>Lien symbolique vers un fichierSymlink to File Q3FileDialogNLien symbolique vers un fichier spécialSymlink to Special Q3FileDialogTypeType Q3FileDialogÉcriture seule Write-only Q3FileDialogÉcriture : %1 Write: %1 Q3FileDialogle dossier the directory Q3FileDialogle fichierthe file Q3FileDialog$le lien symbolique the symlink Q3FileDialogBImpossible de créer le dossier %1Could not create directory %1 Q3LocalFs,Impossible d'ouvrir %1Could not open %1 Q3LocalFs@Impossible de lire le dossier %1Could not read directory %1 Q3LocalFs`Impossible de supprimer le fichier ou dossier %1%Could not remove file or directory %1 Q3LocalFs>Impossible de renommer %1 en %2Could not rename %1 to %2 Q3LocalFs,Impossible d'écrire %1Could not write %1 Q3LocalFs Personnaliser... Customize... Q3MainWindowAlignerLine up Q3MainWindowNOpération interrompue par l'utilisateurOperation stopped by the userQ3NetworkProtocolAnnulerCancelQ3ProgressDialogAppliquerApply Q3TabDialogAnnulerCancel Q3TabDialogPar défautDefaults Q3TabDialogAideHelp Q3TabDialogOKOK Q3TabDialogCop&ier&Copy Q3TextEditCo&ller&Paste Q3TextEdit&Rétablir&Redo Q3TextEdit&Annuler&Undo Q3TextEditEffacerClear Q3TextEditCo&uperCu&t Q3TextEdit"Tout sélectionner Select All Q3TextEdit FermerClose Q3TitleBar Ferme la fenêtreCloses the window Q3TitleBar`Contient des commandes pour manipuler la fenêtre*Contains commands to manipulate the window Q3TitleBarAffiche le nom de la fenêtre et contient des contrôles pour la manipulerFDisplays the name of the window and contains controls to manipulate it Q3TitleBarBAffiche la fenêtre en plein écranMakes the window full screen Q3TitleBarMaximiserMaximize Q3TitleBarRéduireMinimize Q3TitleBar8Déplace la fenêtre à l'écartMoves the window out of the way Q3TitleBar\Rend à une fenêtre minimisée son aspect normal&Puts a maximized window back to normal Q3TitleBar Restaurer en bas Restore down Q3TitleBar"Restaurer en haut Restore up Q3TitleBarSystèmeSystem Q3TitleBarReste...More... Q3ToolBar(inconnu) (unknown) Q3UrlOperatorŠLe protocole `%1' ne permet pas de copier ou de déplacer des fichiersIThe protocol `%1' does not support copying or moving files or directories Q3UrlOperatorzLe protocole `%1' ne permet pas de créer de nouveaux dossiers;The protocol `%1' does not support creating new directories Q3UrlOperatorpLe protocole `%1' ne permet pas de recevoir des fichiers0The protocol `%1' does not support getting files Q3UrlOperator†Le protocole `%1' ne permet pas de lister les fichiers d'un dossier6The protocol `%1' does not support listing directories Q3UrlOperatorlLe protocole `%1' ne permet pas d'envoyer des fichiers0The protocol `%1' does not support putting files Q3UrlOperator’Le protocole `%1' ne permet pas de supprimer des fichiers ou des dossiers@The protocol `%1' does not support removing files or directories Q3UrlOperatorLe protocole `%1' ne permet pas de renommer des fichiers ou des dossiers@The protocol `%1' does not support renaming files or directories Q3UrlOperator@Le protocole '%1' n'est pas géré"The protocol `%1' is not supported Q3UrlOperator&Annuler&CancelQ3Wizard&Terminer&FinishQ3Wizard &Aide&HelpQ3Wizard&Suivant >&Next >Q3Wizard< &Précédent< &BackQ3Wizard"Connexion refuséeConnection refusedQAbstractSocket"Connexion expiréeConnection timed outQAbstractSocket Hôte introuvableHost not foundQAbstractSocket:Réseau impossible à rejoindreNetwork unreachableQAbstractSocketDOpération sur socket non supportée$Operation on socket is not supportedQAbstractSocket8Le socket n'est pas connectéSocket is not connectedQAbstractSocket0Opération socket expiréeSocket operation timed outQAbstractSocket$Tout &sélectionner &Select AllQAbstractSpinBox&Augmenter&Step upQAbstractSpinBox&Diminuer Step &downQAbstractSpinBoxPresserPressQAccessibleButtonActiverActivate QApplicationRActive la fenêtre principale du programme#Activates the program's main window QApplicationbL'exécutable '%1' requiert Qt %2 (Qt %3 présent).,Executable '%1' requires Qt %2, found Qt %3. QApplicationJErreur : bibliothèque Qt incompatibleIncompatible Qt Library Error QApplicationLTRQT_LAYOUT_DIRECTION QApplication&Annuler&Cancel QAxSelect&Objet COM : COM &Object: QAxSelectOKOK QAxSelect@Sélectionner un contrôle ActiveXSelect ActiveX Control QAxSelect CocherCheck QCheckBoxChangerToggle QCheckBoxDécocherUncheck QCheckBoxH&Ajouter aux couleurs personnalisées&Add to Custom Colors QColorDialog"Couleurs de &base &Basic colors QColorDialog0&Couleurs personnalisées&Custom colors QColorDialog&Vert :&Green: QColorDialog&Rouge :&Red: QColorDialog&Saturation :&Sat: QColorDialog&Valeur :&Val: QColorDialogCanal a&lpha :A&lpha channel: QColorDialogBle&u :Bl&ue: QColorDialog&Teinte :Hu&e: QColorDialog0Sélectionner une couleur Select Color QColorDialog FermerClose QComboBoxFauxFalse QComboBox OuvrirOpen QComboBoxVraiTrue QComboBox%1: existe déjà%1: already existsQCoreApplication"%1 : n'existe pas%1: does not existQCoreApplication"%1: ftok a échoué%1: ftok failedQCoreApplication%1: clé vide%1: key is emptyQCoreApplicationD%1: plus de ressources disponibles%1: out of resourcesQCoreApplication<%1: impossible de créer la clé%1: unable to make keyQCoreApplication,%1: erreur inconnue %2%1: unknown error %2QCoreApplicationJIncapable de soumettre la transactionUnable to commit transaction QDB2DriverBIncapable d'établir une connexionUnable to connect QDB2DriverDIncapable d'annuler la transactionUnable to rollback transaction QDB2DriverLImpossible d'activer l'auto-soumissionUnable to set autocommit QDB2DriverBImpossible d'attacher la variableUnable to bind variable QDB2Result@Impossible d'exécuter la requêteUnable to execute statement QDB2ResultDImpossible de récupérer le premierUnable to fetch first QDB2ResultDImpossible de récupérer le suivantUnable to fetch next QDB2ResultVImpossible de récupérer l'enregistrement %1Unable to fetch record %1 QDB2Result@Impossible de prépare la requêteUnable to prepare statement QDB2ResultAMAM QDateTimeEditPMPM QDateTimeEditamam QDateTimeEditpmpm QDateTimeEditÿÿÿÿQDialQDialPoignée SliderHandleQDialTachymètre SpeedoMeterQDialTerminerDoneQDialog*Qu'est-ce que c'est ? What's This?QDialog&Annuler&CancelQDialogButtonBox&Fermer&CloseQDialogButtonBox&Non&NoQDialogButtonBox&OK&OKQDialogButtonBoxEnregi&strer&SaveQDialogButtonBox&Oui&YesQDialogButtonBoxAbandonnerAbortQDialogButtonBoxAppliquerApplyQDialogButtonBoxAnnulerCancelQDialogButtonBox FermerCloseQDialogButtonBox.Fermer sans sauvegarderClose without SavingQDialogButtonBox$Ne pas enregistrerDiscardQDialogButtonBox$Ne pas enregistrer Don't SaveQDialogButtonBoxAideHelpQDialogButtonBoxIgnorerIgnoreQDialogButtonBoxNon à to&ut N&o to AllQDialogButtonBoxOKOKQDialogButtonBox OuvrirOpenQDialogButtonBoxRéinitialiserResetQDialogButtonBox@Restaurer les valeurs par défautRestore DefaultsQDialogButtonBoxRéessayerRetryQDialogButtonBoxEnregistrerSaveQDialogButtonBox Tout EnregistrerSave AllQDialogButtonBoxOui à &tout Yes to &AllQDialogButtonBox*Dernière Modification Date Modified QDirModelTypeKind QDirModelNomName QDirModel TailleSize QDirModelTypeType QDirModel FermerClose QDockWidgetAttacherDock QDockWidgetDétacherFloat QDockWidget MoinsLessQDoubleSpinBoxPlusMoreQDoubleSpinBox&OK&OK QErrorMessage>&Afficher ce message de nouveau&Show this message again QErrorMessage(Message de débogage:Debug Message: QErrorMessageErreur fatale: Fatal Error: QErrorMessageAvertissement:Warning: QErrorMessageHImpossible de créer %1 pour écritureCannot create %1 for outputQFileFImpossible d'ouvrir %1 pour lectureCannot open %1 for inputQFileBImpossible d'ouvrir pour écritureCannot open for outputQFileRImpossible de supprimer le fichier sourceCannot remove source fileQFile:Le fichier destination existeDestination file existsQFile6Impossible d'écrire un blocFailure to write blockQFile˜%1 Dossier introuvable. Veuillez vérifier que le nom du dossier est correct.K%1 Directory not found. Please verify the correct directory name was given. QFileDialog˜%1 Fichier introuvable. Veuillez vérifier que le nom du fichier est correct.A%1 File not found. Please verify the correct file name was given. QFileDialogdLe fichier %1 existe déjà. Voulez-vous l'écraser ?-%1 already exists. Do you want to replace it? QFileDialog&Choisir&Choose QFileDialogSuppri&mer&Delete QFileDialog &Nouveau dossier &New Folder QFileDialog&Ouvrir&Open QFileDialog&Renommer&Rename QFileDialog&Enregistrer&Save QFileDialog†'%1' est protégé en écriture. Voulez-vous quand même le supprimer ?9'%1' is write protected. Do you want to delete it anyway? QFileDialog*Tous les fichiers (*) All Files (*) QFileDialog.Tous les fichiers (*.*)All Files (*.*) QFileDialogREtes-vous sûr de vouloir supprimer '%1' ?!Are sure you want to delete '%1'? QFileDialog,Précédent (historique)Back QFileDialogFImpossible de supprimer le dossier.Could not delete directory. QFileDialog0Créer un nouveau dossierCreate New Folder QFileDialog$Affichage détaillé Detail View QFileDialogDossiers Directories QFileDialogDossier : Directory: QFileDialog UnitéDrive QFileDialogFichierFile QFileDialog"&Nom de fichier : File &name: QFileDialog$Fichiers de type :Files of type: QFileDialog0Chercher dans le dossierFind Directory QFileDialogSuccesseurForward QFileDialogAffichage liste List View QFileDialogVoir dans:Look in: QFileDialog Poste de travail My Computer QFileDialogNouveau dossier New Folder QFileDialog OuvrirOpen QFileDialogDossier parentParent Directory QFileDialog(Emplacements récents Recent Places QFileDialogSupprimerRemove QFileDialog Enregistrer sousSave As QFileDialogMontrer Show  QFileDialog:Afficher les fic&hiers cachésShow &hidden files QFileDialogInconnuUnknown QFileDialog %1 Go%1 GBQFileSystemModel %1 Ko%1 KBQFileSystemModel %1 Mo%1 MBQFileSystemModel %1 To%1 TBQFileSystemModel%1 octets%1 bytesQFileSystemModelâ<b>Le nom "%1" ne peut pas être utilisé.</b><p>Essayez un autre nom avec moins de caractères ou sans ponctuation.oThe name "%1" can not be used.

Try using another name, with fewer characters or no punctuations marks.QFileSystemModelOrdinateurComputerQFileSystemModel*Dernière modification Date ModifiedQFileSystemModel.Nom de fichier invalideInvalid filenameQFileSystemModelTypeKindQFileSystemModelMon ordinateur My ComputerQFileSystemModelNomNameQFileSystemModel TailleSizeQFileSystemModelTypeTypeQFileSystemModelTousAny QFontDatabase ArabeArabic QFontDatabaseArménienArmenian QFontDatabaseÿÿÿÿBengali QFontDatabaseNoirBlack QFontDatabaseGrasBold QFontDatabaseCyrilliqueCyrillic QFontDatabaseÿÿÿÿDemi QFontDatabaseSemi Gras Demi Bold QFontDatabaseÿÿÿÿ Devanagari QFontDatabaseGéorgienGeorgian QFontDatabaseGrecGreek QFontDatabaseÿÿÿÿGujarati QFontDatabaseÿÿÿÿGurmukhi QFontDatabase HébreuHebrew QFontDatabaseItaliqueItalic QFontDatabaseJaponaisJapanese QFontDatabaseÿÿÿÿKannada QFontDatabaseÿÿÿÿKhmer QFontDatabase CoréenKorean QFontDatabaseÿÿÿÿLao QFontDatabaseÿÿÿÿLatin QFontDatabase LégerLight QFontDatabaseÿÿÿÿ Malayalam QFontDatabaseÿÿÿÿMyanmar QFontDatabaseÿÿÿÿNormal QFontDatabaseÿÿÿÿOblique QFontDatabaseÿÿÿÿOgham QFontDatabaseÿÿÿÿOriya QFontDatabaseRuniqueRunic QFontDatabase"Chinois SimplifiéSimplified Chinese QFontDatabaseÿÿÿÿSinhala QFontDatabaseSymboleSymbol QFontDatabaseSyriaqueSyriac QFontDatabaseÿÿÿÿTamil QFontDatabaseÿÿÿÿTelugu QFontDatabaseÿÿÿÿThaana QFontDatabaseÿÿÿÿThai QFontDatabaseTibétainTibetan QFontDatabase(Chinois TraditionnelTraditional Chinese QFontDatabaseVietnamien Vietnamese QFontDatabase&Police&Font QFontDialog&Taille&Size QFontDialog&Souligné &Underline QFontDialog EffetsEffects QFontDialog St&yle de police Font st&yle QFontDialogExempleSample QFontDialog$Choisir une police Select Font QFontDialog &Barré Stri&keout QFontDialog&&Système d'écritureWr&iting System QFontDialogFÉchec du changement de dossier : %1Changing directory failed: %1QFtp"Connecté à l'hôteConnected to hostQFtp(Connecté à l'hôte %1Connected to host %1QFtpBÉchec de la connexion à l'hôte %1Connecting to host failed: %1QFtp"Connexion arrêtéeConnection closedQFtp0Connexion donnée refusée&Connection refused for data connectionQFtp:Connexion à l'hôte %1 refuséeConnection refused to host %1QFtp@Connexion expirée vers l'hôte %1Connection timed out to host %1QFtp,Connexion à %1 arrêtéeConnection to %1 closedQFtpLÉchec de la création d'un dossier : %1Creating directory failed: %1QFtpNÉchec du téléchargement du fichier : %1Downloading file failed: %1QFtpHôte %1 trouvé Host %1 foundQFtp&Hôte %1 introuvableHost %1 not foundQFtpHôte trouvé Host foundQFtp@Échec du listage du dossier : %1Listing directory failed: %1QFtp$Échec du login: %1Login failed: %1QFtpNon connecté Not connectedQFtpRÉchec de la suppression d'un dossier : %1Removing directory failed: %1QFtpRÉchec de la suppression d'un fichier : %1Removing file failed: %1QFtpErreur inconnue Unknown errorQFtp<Échec du télédéchargement : %1Uploading file failed: %1QFtpErreur inconnue Unknown error QHostInfo Hôte introuvableHost not foundQHostInfoAgent&Nom d'hôte manquantNo host name givenQHostInfoAgent.Adresse de type inconnuUnknown address typeQHostInfoAgentErreur inconnue Unknown errorQHostInfoAgent0Authentification requiseAuthentication requiredQHttp"Connecté à l'hôteConnected to hostQHttp(Connecté à l'hôte %1Connected to host %1QHttp"Connexion arrêtéeConnection closedQHttp"Connexion refuséeConnection refusedQHttpFConnexion refusée (ou délai expiré)!Connection refused (or timed out)QHttp,Connexion à %1 arrêtéeConnection to %1 closedQHttp$Données corrompuesData corruptedQHttpNErreur lors de l'écriture de la réponse Error writing response to deviceQHttp0Échec de la requête HTTPHTTP request failedQHttpzConnexion HTTPS requise mais le support SSL n'est pas compilé:HTTPS connection requested but SSL support not compiled inQHttpHôte %1 trouvé Host %1 foundQHttp&Hôte %1 introuvableHost %1 not foundQHttpHôte trouvé Host foundQHttpHL'hôte requiert une authentificationHost requires authenticationQHttp,Fragment HTTP invalideInvalid HTTP chunked bodyQHttp>Entête de réponse HTTP invalideInvalid HTTP response headerQHttp,Aucun serveur spécifiéNo server set to connect toQHttpLLe proxy requiert une authentificationProxy authentication requiredQHttpLLe proxy requiert une authentificationProxy requires authenticationQHttp&Requête interrompueRequest abortedQHttp2le handshake SSL a échouéSSL handshake failedQHttpHConnexion interrompue par le serveur%Server closed connection unexpectedlyQHttpFMéthode d'authentification inconnueUnknown authentication methodQHttpErreur inconnue Unknown errorQHttp4Protocole spécifié inconnuUnknown protocol specifiedQHttp8Longueur du contenu invalideWrong content lengthQHttp0Authentification requiseAuthentication requiredQHttpSocketEngineNPas de réponse HTTP de la part du proxy(Did not receive HTTP response from proxyQHttpSocketEngineTErreur de communication avec le proxy HTTP#Error communicating with HTTP proxyQHttpSocketEnginenErreur dans le reqête d'authentification reçue du proxy/Error parsing authentication request from proxyQHttpSocketEnginepLa connexion au serveur proxy a été fermée prématurément#Proxy connection closed prematurelyQHttpSocketEngine4Connexion au proxy refuséeProxy connection refusedQHttpSocketEngine<Le Proxy a rejeté la connexionProxy denied connectionQHttpSocketEngineLLa connexion au serveur proxy a expiré!Proxy server connection timed outQHttpSocketEngine2Serveur proxy introuvableProxy server not foundQHttpSocketEngineNLa transaction n'a pas pu être démarréeCould not start transaction QIBaseDriverPErreur d'ouverture de la base de donnéesError opening database QIBaseDriverJIncapable de soumettre la transactionUnable to commit transaction QIBaseDriverDIncapable d'annuler la transactionUnable to rollback transaction QIBaseDriver>Impossible d'allouer la requêteCould not allocate statement QIBaseResult@Impossible de décrire la requête"Could not describe input statement QIBaseResult@Impossible de décrire la requêteCould not describe statement QIBaseResultRImpossible de récuperer l'élément suivantCould not fetch next item QIBaseResult@Impossible de trouver le tableauCould not find array QIBaseResultVImpossible de trouver le tableau de donnéesCould not get array data QIBaseResultdImpossible d'avoir les informations sur la requêteCould not get query info QIBaseResultdImpossible d'avoir les informations sur la requêteCould not get statement info QIBaseResultBImpossible de préparer la requêteCould not prepare statement QIBaseResultJImpossible de démarrer la transactionCould not start transaction QIBaseResult>Impossible de fermer la requêteUnable to close statement QIBaseResultJIncapable de soumettre la transactionUnable to commit transaction QIBaseResult6Impossible de créer un BLOBUnable to create BLOB QIBaseResult@Impossible d'exécuter la requêteUnable to execute query QIBaseResult6Impossible d'ouvrir le BLOBUnable to open BLOB QIBaseResult4Impossible de lire le BLOBUnable to read BLOB QIBaseResult6Impossible d'écrire le BLOBUnable to write BLOB QIBaseResultVAucun espace disponible sur le périphériqueNo space left on device QIODeviceDAucun fichier ou dossier de ce nomNo such file or directory QIODeviceAccès refuséPermission denied QIODeviceLTrop de fichiers ouverts simultanémentToo many open files QIODeviceErreur inconnue Unknown error QIODevice2Méthode d'entrée Mac OS XMac OS X input method QInputContext0Méthode d'entrée WindowsWindows input method QInputContextXIMXIM QInputContext(Méthode d'entrée XIMXIM input method QInputContext&Entrer une valeur :Enter a value: QInputDialogZImpossible de charger la bibliothèque %1 : %2Cannot load library %1: %2QLibraryfImpossible de résoudre le symbole "%1" dans %2 : %3$Cannot resolve symbol "%1" in %2: %3QLibrary^Impossible de décharger la bibliothèque %1 : %2Cannot unload library %1: %2QLibrarytImpossible d'établir la projection en mémoire de '%1' : %2Could not mmap '%1': %2QLibraryzImpossible de supprimer la projection en mémoire de '%1' : %2Could not unmap '%1': %2QLibrarylDonnées de vérification du plugin différente dans '%1')Plugin verification data mismatch in '%1'QLibrary\Le fichier '%1' n'est pas un plugin Qt valide.'The file '%1' is not a valid Qt plugin.QLibraryLe plugin '%1' utilise une bibliothèque Qt incompatible. (%2.%3.%4) [%5]=The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]QLibraryLe plugin '%1' utilise une bibliothèque Qt incompatible. (Il est impossible de mélanger des bibliothèques 'debug' et 'release'.)WThe plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)QLibrary¬Le plugin '%1' utilise une bibliothèque Qt incompatible. Clé attendue "%2", reçue "%3"OThe plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"QLibraryRLa bibliothèque partagée est introuvable.!The shared library was not found.QLibraryErreur inconnue Unknown errorQLibraryCop&ier&Copy QLineEditCo&ller&Paste QLineEdit&Rétablir&Redo QLineEdit&Annuler&Undo QLineEditCo&uperCu&t QLineEditSupprimerDelete QLineEdit"Tout sélectionner Select All QLineEdit2%1: Address déjà utilisée%1: Address in use QLocalServer"%1: Erreur de nom%1: Name error QLocalServer,%1: Permission refusée%1: Permission denied QLocalServer,%1: Erreur inconnue %2%1: Unknown error %2 QLocalServer.%1: Erreur de connexion%1: Connection error QLocalSocket*%1: Connexion refusée%1: Connection refused QLocalSocket2%1: Datagramme trop grand%1: Datagram too large QLocalSocket %1: Nom invalide%1: Invalid name QLocalSocket(%1: Connexion fermée%1: Remote closed QLocalSocket8%1: Erreur d'accès au socket%1: Socket access error QLocalSocket>%1: L'opération socket a expiré%1: Socket operation timed out QLocalSocketB%1: Erreur de ressource du socket%1: Socket resource error QLocalSocketF%1: L'opération n'est pas supportée)%1: The socket operation is not supported QLocalSocket(%1 : erreur inconnue%1: Unknown error QLocalSocket,%1: Erreur inconnue %2%1: Unknown error %2 QLocalSocketJImpossible de démarrer la transactionUnable to begin transaction QMYSQLDriverLImpossible de soumettre la transactionUnable to commit transaction QMYSQLDriverDImpossible d'établir une connexionUnable to connect QMYSQLDriverPImpossible d'ouvrir la base de données 'Unable to open database ' QMYSQLDriverFImpossible d'annuler la transactionUnable to rollback transaction QMYSQLDriverVImpossible d'attacher les valeurs de sortieUnable to bind outvalues QMYSQLResult>Impossible d'attacher la valeurUnable to bind value QMYSQLResultRImpossible d'exécuterla prochaine requêteUnable to execute next query QMYSQLResult@Impossible d'exécuter la requêteUnable to execute query QMYSQLResult@Impossible d'exécuter la requêteUnable to execute statement QMYSQLResultFImpossible de récuperer des donnéesUnable to fetch data QMYSQLResultHImpossible de préparer l'instructionUnable to prepare statement QMYSQLResultRImpossible de réinitialiser l'instructionUnable to reset statement QMYSQLResultTImpossible de stocker le prochain résultatUnable to store next result QMYSQLResultBImpossible de stocker le résultatUnable to store result QMYSQLResultbImpossible de stocker les résultats de la requête!Unable to store statement results QMYSQLResult(Sans titre) (Untitled)QMdiArea%1 - [%2] %1 - [%2] QMdiSubWindow&Fermer&Close QMdiSubWindow&Déplacer&Move QMdiSubWindow&Restaurer&Restore QMdiSubWindow&Taille&Size QMdiSubWindowÿÿÿÿ- [%1] QMdiSubWindow FermerClose QMdiSubWindowAideHelp QMdiSubWindowMa&ximiser Ma&ximize QMdiSubWindowMaximiserMaximize QMdiSubWindowMenuMenu QMdiSubWindowRéd&uire Mi&nimize QMdiSubWindowRéduireMinimize QMdiSubWindowRestaurerRestore QMdiSubWindow Restaurer en bas Restore Down QMdiSubWindow OmbrerShade QMdiSubWindow.&Rester au premier plan Stay on &Top QMdiSubWindowRestaurerUnshade QMdiSubWindow FermerCloseQMenuExécuterExecuteQMenu OuvrirOpenQMenuÀ propos de QtAbout Qt QMessageBoxAideHelp QMessageBox*Cacher les détails...Hide Details... QMessageBoxOKOK QMessageBox,Montrer les détails...Show Details... QMessageBoxSélectionner IM Select IMQMultiInputContextDSélectionneur de méthode de saisieMultiple input method switcherQMultiInputContextPlugin¬Sélectionneur de méthode de saisie qui utilise le menu contextuel des widgets de texteMMultiple input method switcher that uses the context menu of the text widgetsQMultiInputContextPluginXUn autre socket écoute déjà sur le même port4Another socket is already listening on the same portQNativeSocketEnginežTentative d'utiliser un socket IPv6 sur une plateforme qui ne supporte pas IPv6=Attempt to use IPv6 socket on a platform with no IPv6 supportQNativeSocketEngine"Connexion refuséeConnection refusedQNativeSocketEngine"Connexion expiréeConnection timed outQNativeSocketEngine^Le datagramme était trop grand pour être envoyéDatagram was too large to sendQNativeSocketEngine"Hôte inaccessibleHost unreachableQNativeSocketEngine<Descripteur de socket invalideInvalid socket descriptorQNativeSocketEngineErreur réseau Network errorQNativeSocketEngine6L'opération réseau a expiréNetwork operation timed outQNativeSocketEngine:Réseau impossible à rejoindreNetwork unreachableQNativeSocketEngine0Operation sur non-socketOperation on non-socketQNativeSocketEngine(Manque de ressourcesOut of resourcesQNativeSocketEngineAccès refuséPermission deniedQNativeSocketEngine"Protocol non géréProtocol type not supportedQNativeSocketEngine<L'adresse n'est pas disponibleThe address is not availableQNativeSocketEngine,L'adresse est protégéeThe address is protectedQNativeSocketEngine@L'adresse liée est déjà en usage#The bound address is already in useQNativeSocketEnginedLe type de proxy est invalide pour cette opération,The proxy type is invalid for this operationQNativeSocketEngineFL'hôte distant a fermé la connexion%The remote host closed the connectionQNativeSocketEngineXImpossible d'initialiser le socket broadcast%Unable to initialize broadcast socketQNativeSocketEngineZImpossible d'initialiser le socket asynchrone(Unable to initialize non-blocking socketQNativeSocketEngineBImpossible de recevoir un messageUnable to receive a messageQNativeSocketEngine>Impossible d'envoyer un messageUnable to send a messageQNativeSocketEngine&Impossible d'écrireUnable to writeQNativeSocketEngineErreur inconnue Unknown errorQNativeSocketEngine<Opération socket non supportéeUnsupported socket operationQNativeSocketEngine@Erreur lors de l'ouverture de %1Error opening %1QNetworkAccessCacheBackendbImpossible d'ouvrir %1 : le chemin est un dossier#Cannot open %1: Path is a directoryQNetworkAccessFileBackendJErreur lors de l'ouverture de %1 : %2Error opening %1: %2QNetworkAccessFileBackend8Erreur de lecture de %1 : %2Read error reading from %1: %2QNetworkAccessFileBackendRRequête d'ouverture de fichier distant %1%Request for opening non-local file %1QNetworkAccessFileBackend8Erreur d'écriture de %1 : %2Write error writing to %1: %2QNetworkAccessFileBackendbImpossible d'ouvrir %1 : le chemin est un dossierCannot open %1: is a directoryQNetworkAccessFtpBackendPErreur lors du téléchargement de %1 : %2Error while downloading %1: %2QNetworkAccessFtpBackendBErreur lors de l'envoi de %1 : %2Error while uploading %1: %2QNetworkAccessFtpBackenddConnexion à %1 a échoué : authentification requise0Logging in to %1 failed: authentication requiredQNetworkAccessFtpBackend$Aucun proxy trouvéNo suitable proxy foundQNetworkAccessFtpBackend$Aucun proxy trouvéNo suitable proxy foundQNetworkAccessHttpBackend|Erreur lors du téléchargement de %1 - le serveur a répondu: %2)Error downloading %1 - server replied: %2 QNetworkReply:Le protocole "%1" est inconnuProtocol "%1" is unknown QNetworkReply"Opération annuléeOperation canceledQNetworkReplyImplJImpossible de démarrer la transactionUnable to begin transaction QOCIDriverNImpossible d'enregistrer la transactionUnable to commit transaction QOCIDriver4L'initialisation a échouéeUnable to initialize QOCIDriver>Impossible d'ouvrir une sessionUnable to logon QOCIDriverFImpossible d'annuler la transactionUnable to rollback transaction QOCIDriver>Impossible d'allouer la requêteUnable to alloc statement QOCIResultrImpossible d'attacher la colonne pour une execution batch'Unable to bind column for batch execute QOCIResult>Impossible d'attacher la valeurUnable to bind value QOCIResultRImpossible d'exécuter l'instruction batch!Unable to execute batch statement QOCIResult@Impossible d'exéctuer la requêteUnable to execute statement QOCIResult>Impossible de passer au suivantUnable to goto next QOCIResultBImpossible de préparer la requêteUnable to prepare statement QOCIResultJIncapable de soumettre la transactionUnable to commit transaction QODBCDriverBIncapable d'établir une connexionUnable to connect QODBCDriverJImpossible de désactiver l'autocommitUnable to disable autocommit QODBCDriver@Impossible d'active l'autocommitUnable to enable autocommit QODBCDriverDIncapable d'annuler la transactionUnable to rollback transaction QODBCDriver QODBCResult::reset: Impossible d'utiliser 'SQL_CURSOR_STATIC' comme attribut de requête. Veuillez vérifier la configuration de votre pilote ODBCyQODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResultBImpossible d'attacher la variableUnable to bind variable QODBCResult@Impossible d'exéctuer la requêteUnable to execute statement QODBCResult.Impossible de récupérerUnable to fetch QODBCResultDImpossible de récupérer le premierUnable to fetch first QODBCResultDImpossible de récupérer le dernierUnable to fetch last QODBCResultDImpossible de récupérer le suivantUnable to fetch next QODBCResultHImpossible de récupérer le précedentUnable to fetch previous QODBCResultBImpossible de préparer la requêteUnable to prepare statement QODBCResult"URI invalide : %1Invalid URI: %1QObject&Nom d'hôte manquantNo host name givenQObject<Opération non supportée sur %1Operation not supported on %1QObject|L'hôte distant a fermé sa connexion de façon prématurée sur %13Remote host closed the connection prematurely on %1QObject8Erreur de socket sur %1 : %2Socket error on %1: %2QObjectNomNameQPPDOptionsModel ValeurValueQPPDOptionsModelJImpossible de démarrer la transactionCould not begin transaction QPSQLDriverLImpossible de soumettre la transactionCould not commit transaction QPSQLDriverFImpossible d'annuler la transactionCould not rollback transaction QPSQLDriverDImpossible d'établir une connexionUnable to connect QPSQLDriver0Impossible de s'inscrireUnable to subscribe QPSQLDriver8Impossible de se désinscrireUnable to unsubscribe QPSQLDriver<Impossible de créer la requêteUnable to create query QPSQLResultBImpossible de préparer la requêteUnable to prepare statement QPSQLResult Centimètres (cm)Centimeters (cm)QPageSetupWidgetFormulaireFormQPageSetupWidgetHauteur :Height:QPageSetupWidgetPouces (in) Inches (in)QPageSetupWidgetPaysage LandscapeQPageSetupWidget MargesMarginsQPageSetupWidget Millimètres (mm)Millimeters (mm)QPageSetupWidgetÿÿÿÿ OrientationQPageSetupWidgetDimensions : Page size:QPageSetupWidget PapierPaperQPageSetupWidget$Source du papier : Paper source:QPageSetupWidgetÿÿÿÿ Points (pt)QPageSetupWidgetPortraitPortraitQPageSetupWidgetPaysage inverséReverse landscapeQPageSetupWidget Portrait inverséReverse portraitQPageSetupWidgetLargeur :Width:QPageSetupWidgetmarge basse bottom marginQPageSetupWidgetmarge gauche left marginQPageSetupWidgetmarge droite right marginQPageSetupWidgetmarge haute top marginQPageSetupWidget:Le plugin n'a pas été chargé.The plugin was not loaded. QPluginLoaderErreur inconnue Unknown error QPluginLoaderD%1 existe. Voulez-vous l'écraser ?/%1 already exists. Do you want to overwrite it? QPrintDialog€%1 est un dossier. Veuillez choisir un nom de fichier différent.7%1 is a directory. Please choose a different file name. QPrintDialogÿÿÿÿ &Options << QPrintDialogÿÿÿÿ &Options >> QPrintDialogIm&primer&Print QPrintDialog@<qt>voulez-vous l'écraser ?</qt>%Do you want to overwrite it? QPrintDialogÿÿÿÿA0 QPrintDialog$A0 (841 x 1189 mm)A0 (841 x 1189 mm) QPrintDialogÿÿÿÿA1 QPrintDialog"A1 (594 x 841 mm)A1 (594 x 841 mm) QPrintDialogÿÿÿÿA2 QPrintDialog"A2 (420 x 594 mm)A2 (420 x 594 mm) QPrintDialogÿÿÿÿA3 QPrintDialog"A3 (297 x 420 mm)A3 (297 x 420 mm) QPrintDialogÿÿÿÿA4 QPrintDialog"A4 (210 x 297 mm)%A4 (210 x 297 mm, 8.26 x 11.7 inches) QPrintDialogÿÿÿÿA5 QPrintDialog"A5 (148 x 210 mm)A5 (148 x 210 mm) QPrintDialogÿÿÿÿA6 QPrintDialog"A6 (105 x 148 mm)A6 (105 x 148 mm) QPrintDialogÿÿÿÿA7 QPrintDialog A7 (74 x 105 mm)A7 (74 x 105 mm) QPrintDialogÿÿÿÿA8 QPrintDialogA8 (52 x 74 mm)A8 (52 x 74 mm) QPrintDialogÿÿÿÿA9 QPrintDialogA9 (37 x 52 mm)A9 (37 x 52 mm) QPrintDialogAlias : %1 Aliases: %1 QPrintDialogÿÿÿÿB0 QPrintDialog&B0 (1000 x 1414 mm)B0 (1000 x 1414 mm) QPrintDialogÿÿÿÿB1 QPrintDialog$B1 (707 x 1000 mm)B1 (707 x 1000 mm) QPrintDialogÿÿÿÿB10 QPrintDialog B10 (31 x 44 mm)B10 (31 x 44 mm) QPrintDialogÿÿÿÿB2 QPrintDialog"B2 (500 x 707 mm)B2 (500 x 707 mm) QPrintDialogÿÿÿÿB3 QPrintDialog"B3 (353 x 500 mm)B3 (353 x 500 mm) QPrintDialogÿÿÿÿB4 QPrintDialog"B4 (250 x 353 mm)B4 (250 x 353 mm) QPrintDialogÿÿÿÿB5 QPrintDialog"B5 (176 x 250 mm)%B5 (176 x 250 mm, 6.93 x 9.84 inches) QPrintDialogÿÿÿÿB6 QPrintDialog"B6 (125 x 176 mm)B6 (125 x 176 mm) QPrintDialogÿÿÿÿB7 QPrintDialog B7 (88 x 125 mm)B7 (88 x 125 mm) QPrintDialogÿÿÿÿB8 QPrintDialogB8 (62 x 88 mm)B8 (62 x 88 mm) QPrintDialogÿÿÿÿB9 QPrintDialogB9 (44 x 62 mm)B9 (44 x 62 mm) QPrintDialogÿÿÿÿC5E QPrintDialog$C5E (163 x 229 mm)C5E (163 x 229 mm) QPrintDialogPersonnaliséCustom QPrintDialogÿÿÿÿDLE QPrintDialog$DLE (110 x 220 mm)DLE (110 x 220 mm) QPrintDialogÿÿÿÿ Executive QPrintDialogRExecutive (7,5 x 10 pouces, 191 x 254 mm))Executive (7.5 x 10 inches, 191 x 254 mm) QPrintDialogªImpossible d'écrire dans le fichier %1. Veuillez choisir un nom de fichier différent.=File %1 is not writable. Please choose a different file name. QPrintDialog"Le fichier existe File exists QPrintDialogÿÿÿÿFolio QPrintDialog(Folio (210 x 330 mm)Folio (210 x 330 mm) QPrintDialogÿÿÿÿLedger QPrintDialog*Ledger (432 x 279 mm)Ledger (432 x 279 mm) QPrintDialogÿÿÿÿLegal QPrintDialogJLegal (8.5 x 14 pouces, 216 x 356 mm)%Legal (8.5 x 14 inches, 216 x 356 mm) QPrintDialogÿÿÿÿLetter QPrintDialogLLetter (8,5 x 11 pouces, 216 x 279 mm)&Letter (8.5 x 11 inches, 216 x 279 mm) QPrintDialogFichier local Local file QPrintDialogOKOK QPrintDialogImpr écranPrint QPrintDialog6Imprimer dans un fichier...Print To File ... QPrintDialogImprimer tout Print all QPrintDialog*Imprimer la sélection Print range QPrintDialog*Imprimer la sélectionPrint selection QPrintDialog<Imprimer dans un fichier (PDF)Print to File (PDF) QPrintDialogJImprimer dans un fichier (PostScript)Print to File (Postscript) QPrintDialogÿÿÿÿTabloid QPrintDialog.Tabloïde (279 x 432 mm)Tabloid (279 x 432 mm) QPrintDialog|La valeur 'de' ne peut pas être plus grande que la valeur 'à'.7The 'From' value cannot be greater than the 'To' value. QPrintDialogÿÿÿÿUS Common #10 Envelope QPrintDialogJUS Common #10 Envelope (105 x 241 mm)%US Common #10 Envelope (105 x 241 mm) QPrintDialog,Ecriture du fichier %1 Write %1 file QPrintDialog"connecté en locallocally connected QPrintDialoginconnuunknown QPrintDialog%1%%1%QPrintPreviewDialog FermerCloseQPrintPreviewDialog"Exporter vers PDF Export to PDFQPrintPreviewDialog0Exporter vers PostScriptExport to PostScriptQPrintPreviewDialogPremière page First pageQPrintPreviewDialogAjuster la pageFit pageQPrintPreviewDialog$Ajuster la largeur Fit widthQPrintPreviewDialogPaysage LandscapeQPrintPreviewDialogDernière page Last pageQPrintPreviewDialogPage suivante Next pageQPrintPreviewDialog0Configuration de la page Page SetupQPrintPreviewDialog0Configuration de la page Page setupQPrintPreviewDialogPortraitPortraitQPrintPreviewDialogPage précédente Previous pageQPrintPreviewDialogImpr écranPrintQPrintPreviewDialog.Aperçu avant impression Print PreviewQPrintPreviewDialog&Afficher deux pagesShow facing pagesQPrintPreviewDialogLAfficher un aperçu de toutes les pagesShow overview of all pagesQPrintPreviewDialog.Afficher une seule pageShow single pageQPrintPreviewDialogZoom avantZoom inQPrintPreviewDialogZoom arrièreZoom outQPrintPreviewDialog AvancéAdvancedQPrintPropertiesWidgetFormulaireFormQPrintPropertiesWidgetÿÿÿÿPageQPrintPropertiesWidgetAssemblerCollateQPrintSettingsOutputCouleurColorQPrintSettingsOutputMode de couleur Color ModeQPrintSettingsOutput CopiesCopiesQPrintSettingsOutputÿÿÿÿCopies:QPrintSettingsOutput(Impression en duplexDuplex PrintingQPrintSettingsOutputFormulaireFormQPrintSettingsOutputDégradé de gris GrayscaleQPrintSettingsOutputCôté long Long sideQPrintSettingsOutput AucunNoneQPrintSettingsOutputOptionsOptionsQPrintSettingsOutput(Paramètres de sortieOutput SettingsQPrintSettingsOutput Pages Pages fromQPrintSettingsOutputImprimer tout Print allQPrintSettingsOutput*Imprimer la sélection Print rangeQPrintSettingsOutputInverseReverseQPrintSettingsOutputSélection SelectionQPrintSettingsOutputCôté court Short sideQPrintSettingsOutputàtoQPrintSettingsOutput &Nom :&Name: QPrintWidgetÿÿÿÿ... QPrintWidgetFormulaireForm QPrintWidgetEmplacement : Location: QPrintWidget&&Fichier de sortie: Output &file: QPrintWidgetP&ropriétés P&roperties QPrintWidget PrévisualisationPreview QPrintWidgetImprimantePrinter QPrintWidgetÿÿÿÿType: QPrintWidgetlImpossible d'ouvrir la redirection d'entrée en lecture,Could not open input redirection for readingQProcesstImpossible d'ouvrir la redirection de sortie pour écriture-Could not open output redirection for writingQProcess<Erreur de lecture du processusError reading from processQProcessFErreur d"écriture vers le processusError writing to processQProcess,Aucun programme définiNo program definedQProcess*Le processus à plantéProcess crashedQProcess>Operation de processus a expiréProcess operation timed outQProcess<Erreur de ressouce (fork) : %1!Resource error (fork failure): %1QProcessAnnulerCancelQProgressDialog OuvrirOpen QPushButton CocherCheck QRadioButtonRsyntaxe invalide pour classe de caractèrebad char class syntaxQRegExp>syntaxe invalide pour lookaheadbad lookahead syntaxQRegExp@syntaxe invalide pour répétitionbad repetition syntaxQRegExp"option désactivéedisabled feature usedQRegExp,valeur octale invalideinvalid octal valueQRegExp0rencontré limite internemet internal limitQRegExp4délémiteur gauche manquantmissing left delimQRegExp>aucune erreur ne s'est produiteno error occurredQRegExpfin impromptueunexpected endQRegExpJImpossible de démarrer la transactionUnable to begin transactionQSQLite2DriverLImpossible de soumettre la transactionUnable to commit transactionQSQLite2Driver@Impossible d'exécuter la requêteUnable to execute statementQSQLite2ResultJImpossible de récupérer les résultatsUnable to fetch resultsQSQLite2ResultbErreur lors de la fermeture de la base de donnéesError closing database QSQLiteDriver`Erreur lors de l'ouverture de la base de donnéesError opening database QSQLiteDriverJImpossible de démarrer la transactionUnable to begin transaction QSQLiteDriverJIncapable de soumettre la transactionUnable to commit transaction QSQLiteDriverFImpossible d'annuler la transactionUnable to rollback transaction QSQLiteDriverPas de requêteNo query QSQLiteResult<Nombre de paramètres incorrectParameter count mismatch QSQLiteResultHImpossible d'attacher les paramètresUnable to bind parameters QSQLiteResult@Impossible d'exécuter la requêteUnable to execute statement QSQLiteResultBImpossible de récupérer la rangéeUnable to fetch row QSQLiteResultLImpossible de réinitialiser la requêteUnable to reset statement QSQLiteResultSupprimerDeleteQScriptBreakpointsWidgetSuivantContinueQScriptDebugger FermerCloseQScriptDebuggerCodeFinderWidgetNomNameQScriptDebuggerLocalsModel ValeurValueQScriptDebuggerLocalsModelNomNameQScriptDebuggerStackModelRechercheSearchQScriptEngineDebugger FermerCloseQScriptNewBreakpointWidget En basBottom QScrollBarExtrême gauche Left edge QScrollBarAligner en-bas Line down QScrollBarAlignerLine up QScrollBarPage suivante Page down QScrollBarPage précédente Page left QScrollBarPage suivante Page right QScrollBarPage précédentePage up QScrollBarPositionPosition QScrollBarExtrême droite Right edge QScrollBar&Défiler vers le bas Scroll down QScrollBar"Défiler jusqu'ici Scroll here QScrollBar,Défiler vers la gauche Scroll left QScrollBar,Défiler vers la droite Scroll right QScrollBar(Défiler vers le haut Scroll up QScrollBarEn hautTop QScrollBar %1 : existe déjà%1: already exists QSharedMemoryR%1 : taille de création est inférieur à 0%1: create size is less then 0 QSharedMemory"%1 : n'existe pas%1: doesn't exists QSharedMemory$%1 : ftok a échoué%1: ftok failed QSharedMemory(%1 : taille invalide%1: invalid size QSharedMemory$%1 : erreur de clé %1: key error QSharedMemory%1 : clé vide%1: key is empty QSharedMemory %1 : non attaché%1: not attached QSharedMemoryF%1 : plus de ressources disponibles%1: out of resources QSharedMemory.%1 : permission refusée%1: permission denied QSharedMemoryD%1 : la requête de taille a échoué%1: size query failed QSharedMemoryj%1 : le système impose des restrictions sur la taille$%1: system-imposed size restrictions QSharedMemory<%1 : impossible de vérrouiller%1: unable to lock QSharedMemory>%1 : impossible de créer la clé%1: unable to make key QSharedMemoryV%1 : impossible d'affecter la clé au verrou%1: unable to set key on lock QSharedMemory@%1 : impossible de déverrouiller%1: unable to unlock QSharedMemory.%1 : erreur inconnue %2%1: unknown error %2 QSharedMemory++ QShortcutAltAlt QShortcut,Précédent (historique)Back QShortcutEffacement Backspace QShortcutTab arrBacktab QShortcutGraves fort Bass Boost QShortcutGraves bas Bass Down QShortcutGraves hautBass Up QShortcutAppelerCall QShortcutÿÿÿÿ Caps Lock QShortcutVerr majCapsLock QShortcutEffacerClear QShortcut FermerClose QShortcutContexte1Context1 QShortcutContexte2Context2 QShortcutContexte3Context3 QShortcutContexte4Context4 QShortcut CopierCopy QShortcutCtrlCtrl QShortcut CouperCut QShortcut SupprDel QShortcutSupprimerDelete QShortcutBasDown QShortcutFinEnd QShortcut EntréeEnter QShortcut ÉchapEsc QShortcutÉchapementEscape QShortcutF%1F%1 QShortcutPréférés Favorites QShortcutRetournerFlip QShortcut.Successeur (historique)Forward QShortcutRaccrocherHangup QShortcutAideHelp QShortcut DébutHome QShortcutPage d'accueil Home Page QShortcut InserIns QShortcutInsérerInsert QShortcutLancer (0) Launch (0) QShortcutLancer (1) Launch (1) QShortcutLancer (2) Launch (2) QShortcutLancer (3) Launch (3) QShortcutLancer (4) Launch (4) QShortcutLancer (5) Launch (5) QShortcutLancer (6) Launch (6) QShortcutLancer (7) Launch (7) QShortcutLancer (8) Launch (8) QShortcutLancer (9) Launch (9) QShortcutLancer (A) Launch (A) QShortcutLancer (B) Launch (B) QShortcutLancer (C) Launch (C) QShortcutLancer (D) Launch (D) QShortcutLancer (E) Launch (E) QShortcutLancer (F) Launch (F) QShortcutLancer courrier Launch Mail QShortcutLancer média Launch Media QShortcut GaucheLeft QShortcutMédia suivant Media Next QShortcutMédia démarrer Media Play QShortcutMédia précédentMedia Previous QShortcut"Média enregistrer Media Record QShortcutMédia arrêt Media Stop QShortcutMenuMenu QShortcutMétaMeta QShortcutMusiqueMusic QShortcutNonNo QShortcutÿÿÿÿNum Lock QShortcutVerr numNumLock QShortcutÿÿÿÿ Number Lock QShortcutOuvrir URLOpen URL QShortcutÿÿÿÿ Page Down QShortcutÿÿÿÿPage Up QShortcut CollerPaste QShortcut PausePause QShortcutPage suivPgDown QShortcutPage précPgUp QShortcutImpr écranPrint QShortcutÿÿÿÿ Print Screen QShortcutRafraîchirRefresh QShortcutRechargerReload QShortcut RetourReturn QShortcut DroiteRight QShortcutEnregistrerSave QShortcutÿÿÿÿ Scroll Lock QShortcutArrêt défil ScrollLock QShortcutRechercheSearch QShortcutSélectionnerSelect QShortcutMajShift QShortcut EspaceSpace QShortcutAttenteStandby QShortcutStopStop QShortcutSystSysReq QShortcutSystèmeSystem Request QShortcutTabTab QShortcutAigus bas Treble Down QShortcutAigus haut Treble Up QShortcutHautUp QShortcut VidéoVideo QShortcutVolume bas Volume Down QShortcutVolume muet Volume Mute QShortcutVolume haut  Volume Up QShortcutOuiYes QShortcutPage suivante Page downQSliderPage précédente Page leftQSliderPage suivante Page rightQSliderPage précédentePage upQSliderÿÿÿÿPositionQSlider6Type d'adresse non supportéAddress type not supportedQSocks5SocketEnginePConnexion refusée par le serveur SOCKSv5(Connection not allowed by SOCKSv5 serverQSocks5SocketEngineNconnexion au proxy fermée prématurément&Connection to proxy closed prematurelyQSocks5SocketEngine4Connexion au proxy refuséeConnection to proxy refusedQSocks5SocketEngine4Connexion au proxy expiréeConnection to proxy timed outQSocks5SocketEngineDErreur générale du serveur SOCKSv5General SOCKSv5 server failureQSocks5SocketEngine6L'opération réseau a expiréNetwork operation timed outQSocks5SocketEngineBL'authentification proxy a échouéProxy authentication failedQSocks5SocketEngineLL'authentification proxy a échoué : %1Proxy authentication failed: %1QSocks5SocketEngine,Hôte proxy introuvableProxy host not foundQSocks5SocketEngineFErreur de protocole SOCKS version 5SOCKS version 5 protocol errorQSocks5SocketEngine<Commande SOCKSv5 non supportéeSOCKSv5 command not supportedQSocks5SocketEngineTTL expiré TTL expiredQSocks5SocketEngineHErreur proxy SOCKSv5 inconnue : 0x%1%Unknown SOCKSv5 proxy error code 0x%1QSocks5SocketEngineAnnulerCancelQSoftKeyManagerTerminerDoneQSoftKeyManagerQuitterExitQSoftKeyManagerOptionsOptionsQSoftKeyManagerSélectionnerSelectQSoftKeyManager MoinsLessQSpinBoxPlusMoreQSpinBoxAnnulerCancelQSql6Annuler vos modifications ?Cancel your edits?QSqlConfirmerConfirmQSqlSupprimerDeleteQSql<Supprimer cet enregistrement ?Delete this record?QSqlInsérerInsertQSqlNonNoQSql>Enregistrer les modifications ? Save edits?QSqlActualiserUpdateQSqlOuiYesQSql`Impossible de fournir un certificat sans clé, %1,Cannot provide a certificate with no key, %1 QSslSocket^Erreur lors de la création du contexte SSL (%1)Error creating SSL context (%1) QSslSocket`Erreur lors de la création de la session SSL, %1Error creating SSL session, %1 QSslSocketbErreur lors de la création de la session SSL : %1Error creating SSL session: %1 QSslSocketTErreur lors de la poignée de main SSL : %1Error during SSL handshake: %1 QSslSocketbErreur lors du chargement du certificat local, %1#Error loading local certificate, %1 QSslSocket\Erreur lors du chargement de la clé privée, %1Error loading private key, %1 QSslSocket<Erreur lors de la lecture : %1Error while reading: %1 QSslSocketbLa list de chiffrements est invalide ou vide (%1)!Invalid or empty cipher list (%1) QSslSocketHImpossible d'écrire les données : %1Unable to write data: %1 QSslSocketErreur inconnue Unknown error QSslSocketErreur inconnue Unknown error QStateMachine %1 : existe déjà%1: already existsQSystemSemaphore"%1 : n'existe pas%1: does not existQSystemSemaphoreD%1: plus de ressources disponibles%1: out of resourcesQSystemSemaphore,%1: permission refusée%1: permission deniedQSystemSemaphore,%1: erreur inconnue %2%1: unknown error %2QSystemSemaphore@Impossible d'ouvrir la connexionUnable to open connection QTDSDriverPImpossible d'utiliser la base de donnéesUnable to use database QTDSDriver,Défiler vers la gauche Scroll LeftQTabBar,Défiler vers la droite Scroll RightQTabBarJOpération sur le socket non supportée$Operation on socket is not supported QTcpServerCop&ier&Copy QTextControlCo&ller&Paste QTextControl&Répéter&Redo QTextControl&Annuler&Undo QTextControl2Copier l'adresse du &lienCopy &Link Location QTextControlCo&uperCu&t QTextControlSupprimerDelete QTextControl"Tout sélectionner Select All QTextControl OuvrirOpen QToolButtonPresserPress QToolButtonJCette plateforme ne supporte pas IPv6#This platform does not support IPv6 QUdpSocketRépéterRedo QUndoGroupAnnulerUndo QUndoGroup <vide> QUndoModelRépéterRedo QUndoStackAnnulerUndo QUndoStackJInsérer caractère de contrôle Unicode Insert Unicode control characterQUnicodeControlCharacterMenuHLRE Start of left-to-right embedding$LRE Start of left-to-right embeddingQUnicodeControlCharacterMenu,LRM Left-to-right markLRM Left-to-right markQUnicodeControlCharacterMenuFLRO Start of left-to-right override#LRO Start of left-to-right overrideQUnicodeControlCharacterMenu<PDF Pop directional formattingPDF Pop directional formattingQUnicodeControlCharacterMenuHRLE Start of right-to-left embedding$RLE Start of right-to-left embeddingQUnicodeControlCharacterMenu,RLM Right-to-left markRLM Right-to-left markQUnicodeControlCharacterMenuFRLO Start of right-to-left override#RLO Start of right-to-left overrideQUnicodeControlCharacterMenu*ZWJ Zero width joinerZWJ Zero width joinerQUnicodeControlCharacterMenu4ZWNJ Zero width non-joinerZWNJ Zero width non-joinerQUnicodeControlCharacterMenu*ZWSP Zero width spaceZWSP Zero width spaceQUnicodeControlCharacterMenu6Impossible d'afficher l'URLCannot show URL QWebFrameBImpossible d'afficher le mimetypeCannot show mimetype QWebFrame.Le fichier n'existe pasFile does not exist QWebFrameRequête bloquéeRequest blocked QWebFrameRequête annuléeRequest cancelled QWebFrame"%1 (%2x%3 pixels)%1 (%2x%3 pixels)QWebPage%n fichier%n fichiers %n file(s)QWebPage.Ajouter au dictionnaireAdd To DictionaryQWebPage(Requête HTTP erronéeBad HTTP requestQWebPageGrasBoldQWebPage En basBottomQWebPagejVérifier la grammaire en même temps que l'orthographeCheck Grammar With SpellingQWebPage,Vérifier l'orthographeCheck SpellingQWebPagePVérifier l'orthographe pendant la saisieCheck Spelling While TypingQWebPage$Choisir le fichier Choose FileQWebPage>Effacer les recherches récentesClear recent searchesQWebPage CopierCopyQWebPageCopier l'image Copy ImageQWebPageCopier le lien Copy LinkQWebPage CouperCutQWebPage DéfautDefaultQWebPage>Supprimer jusqu'à la fin du motDelete to the end of the wordQWebPage>Supprimer jusqu'au début du motDelete to the start of the wordQWebPageÿÿÿÿ DirectionQWebPagePolicesFontsQWebPagePrécédentGo BackQWebPageSuivant Go ForwardQWebPage>Cacher Orthographe et GrammaireHide Spelling and GrammarQWebPageIgnorerIgnoreQWebPageIgnorer Ignore Grammar context menu itemIgnoreQWebPage4Insérer une nouvelle ligneInsert a new lineQWebPage:Insérer un nouveau paragrapheInsert a new paragraphQWebPageInspecterInspectQWebPageItaliqueItalicQWebPage,Alerte javascript - %1JavaScript Alert - %1QWebPage8Confirmation javascript - %1JavaScript Confirm - %1QWebPage,Invite javascript - %1JavaScript Prompt - %1QWebPageExtrême gauche Left edgeQWebPage:Chercher dans le dictionnaireLook Up In DictionaryQWebPageNPositionner le curseur à la fin du bloc'Move the cursor to the end of the blockQWebPageVPositionner le curseur à la fin du document*Move the cursor to the end of the documentQWebPageVPositionner le curseur à la fin de la ligne&Move the cursor to the end of the lineQWebPage^Positionner le curseur sur le caractère suivant%Move the cursor to the next characterQWebPageZPositionner le curseur sur la prochaine ligne Move the cursor to the next lineQWebPageJPositionner le curseur au mot suivant Move the cursor to the next wordQWebPagebPositionner le curseur sur le caractère précédent)Move the cursor to the previous characterQWebPageVDéplacer le curseur sur la ligne précédente$Move the cursor to the previous lineQWebPageVPositionner le curseur sur le mot précédent$Move the cursor to the previous wordQWebPageNPositionner le curseur au début du bloc)Move the cursor to the start of the blockQWebPageVPositionner le curseur au début du document,Move the cursor to the start of the documentQWebPageVPositionner le curseur au début de la ligne(Move the cursor to the start of the lineQWebPage.Pas de candidat trouvésNo Guesses FoundQWebPage4Pas de fichier sélectionnéNo file selectedQWebPage0Pas de recherche récenteNo recent searchesQWebPageOuvrir le cadre Open FrameQWebPageOuvrir l'image Open ImageQWebPageOuvrir le lien Open LinkQWebPage@Ouvrir dans une Nouvelle FenêtreOpen in New WindowQWebPageContourOutlineQWebPagePage suivante Page downQWebPagePage précédente Page leftQWebPagePage suivante Page rightQWebPagePage précédentePage upQWebPage CollerPasteQWebPage&Recherches récentesRecent searchesQWebPageRechargerReloadQWebPageRéinitialiserResetQWebPageExtrême droite Right edgeQWebPage&SAuvegarder l'image Save ImageQWebPage,Sauvegarder le lien... Save Link...QWebPage&Défiler vers le bas Scroll downQWebPage"Défiler jusqu'ici Scroll hereQWebPage,Défiler vers la gauche Scroll leftQWebPage,Défiler vers la droite Scroll rightQWebPage(Défiler vers le haut Scroll upQWebPage&Chercher sur le WebSearch The WebQWebPage"Sélectionner tout Select allQWebPageFSélectionner jusqu'à la fin du blocSelect to the end of the blockQWebPageNSélectionner jusqu'à la fin du document!Select to the end of the documentQWebPageNSélectionner jusqu'à la fin de la ligneSelect to the end of the lineQWebPageBSélectionner le caractère suivantSelect to the next characterQWebPageNSélectionner jusqu'à la prochaine ligneSelect to the next lineQWebPage8Sélectionner le prochain motSelect to the next wordQWebPageFSélectionner le caractère précédent Select to the previous characterQWebPagePSélectionner jusqu'à la ligne précédenteSelect to the previous lineQWebPage:Sélectionner le mot précédentSelect to the previous wordQWebPageFSélectionner jusqu'au début du bloc Select to the start of the blockQWebPageNSélectionner jusqu'au début du document#Select to the start of the documentQWebPageNSélectionner jusqu'au début de la ligneSelect to the start of the lineQWebPageBAfficher Orthographe et GrammaireShow Spelling and GrammarQWebPageOrthographeSpellingQWebPageStopStopQWebPageSoumettreSubmitQWebPageSoumettreQSubmit (input element) alt text for elements with no alt, title, or valueSubmitQWebPage(Orientation du texteText DirectionQWebPagebCeci est un index. Veuillez saisir les mots-clé :3This is a searchable index. Enter search keywords: QWebPageEn hautTopQWebPageSouligné UnderlineQWebPageInconnuUnknownQWebPage&Inspecteur Web - %2Web Inspector - %2QWebPage*Qu'est-ce que c'est ? What's This?QWhatsThisAction**QWidget&Terminer&FinishQWizard &Aide&HelpQWizard&Suivant&NextQWizard&Suivant >&Next >QWizard< &Précédent< &BackQWizardAnnulerCancelQWizardSoumettreCommitQWizardSuivantContinueQWizardTerminerDoneQWizardPrécédentGo BackQWizardAideHelpQWizard%1 - [%2] %1 - [%2] QWorkspace&Fermer&Close QWorkspace&Déplacer&Move QWorkspace&Restaurer&Restore QWorkspace&Redimensionner&Size QWorkspace&Dérouler&Unshade QWorkspace FermerClose QWorkspaceMa&ximiser Ma&ximize QWorkspaceRéd&uire Mi&nimize QWorkspaceRéduireMinimize QWorkspace Restaurer en bas Restore Down QWorkspace&EnroulerSh&ade QWorkspace.&Rester au premier plan Stay on &Top QWorkspaceždéclaration d'encodage ou déclaration autonome attendue dans la déclaration XMLYencoding declaration or standalone declaration expected while reading the XML declarationQXmlperreur dans la déclaration de texte d'une entité externe3error in the text declaration of an external entityQXmlxune erreur s'est produise lors de l'analyse d'un commentaire$error occurred while parsing commentQXmllune erreur s'est produise lors de l'analyse du contenu$error occurred while parsing contentQXml une erreur s'est produite lors de l'analyse d'une définition de type de document5error occurred while parsing document type definitionQXmlpune erreur s'est produite lors de l'analyse d'un élément$error occurred while parsing elementQXmlvune erreur s'est produite lors de l'analyse d'une référence&error occurred while parsing referenceQXmlJerreur déclenchée par le consommateurerror triggered by consumerQXmlzappel d'entité externe parsée générale non permis dans la DTD;external parsed general entity reference not allowed in DTDQXmlŒappel d'entité externe parsée non permis dans la valeur d'un attributGexternal parsed general entity reference not allowed in attribute valueQXmllappel d'entité interne générale non permis dans la DTD4internal general entity reference not allowed in DTDQXmlPnom d'instruction de traitement invalide'invalid name for processing instructionQXmllettre attendueletter is expectedQXmlRplus d'une définition de type de document&more than one document type definitionQXml>aucune erreur ne s'est produiteno error occurredQXml$entités récursivesrecursive entitiesQXmljdéclaration autonome attendue dans la déclaration XMLAstandalone declaration expected while reading the XML declarationQXml"balise débalancée tag mismatchQXml&caractère impromptuunexpected characterQXml2fin de fichier impromptueunexpected end of fileQXmlfappel d'entité non parsée dans un contexte invalide*unparsed entity reference in wrong contextQXmlPversion attendue dans la déclaration XML2version expected while reading the XML declarationQXmlRvaleur invalide pour déclaration autonome&wrong value for standalone declarationQXmlT%1 n'est pas un identifiant PUBLIC valide.#%1 is an invalid PUBLIC identifier. QXmlStream@%1 n'est pas un encodage valide.%1 is an invalid encoding name. QXmlStreamf%1 est un nom d'instruction de traitement invalide.-%1 is an invalid processing instruction name. QXmlStream, mais eu ' , but got ' QXmlStream$Attribut redéfini.Attribute redefined. QXmlStream<Encodage %1 n'est pas supportéEncoding %1 is unsupported QXmlStream<Encodage du contenu incorrect.(Encountered incorrectly encoded content. QXmlStream2Entité '%1' non déclarée.Entity '%1' not declared. QXmlStreamAttendu  Expected  QXmlStream.Character data attendu.Expected character data. QXmlStreamXConteny supplémentaire à la fin du document.!Extra content at end of document. QXmlStreamDDéclaration de namespace illégale.Illegal namespace declaration. QXmlStream.Caractère XML invalide.Invalid XML character. QXmlStream"Nom XML invalide.Invalid XML name. QXmlStream*Version XML invalide.Invalid XML version string. QXmlStreamTAttribut invalide dans la déclaration XML.%Invalid attribute in XML declaration. QXmlStreamJRéférence vers un caractère invalide.Invalid character reference. QXmlStream$Document invalide.Invalid document. QXmlStream8Valeur de l'entité invalide.Invalid entity value. QXmlStreamRNom d'instruction de traitement invalide.$Invalid processing instruction name. QXmlStream\NDATA dans une déclaration d'entité paramètre.&NDATA in parameter entity declaration. QXmlStreamPLe préfixe de namespace '%1' non déclaré"Namespace prefix '%1' not declared QXmlStreamTOuverture et fermeture de balise invalide. Opening and ending tag mismatch. QXmlStream6Fin de document prématurée.Premature end of document. QXmlStream4Entité recursive détectée.Recursive entity detected. QXmlStreamˆRéférence vers une entité externe '%1' dans la valeur de l'attribut.5Reference to external entity '%1' in attribute value. QXmlStreamXRéférence vers une entité non analysée '%1'."Reference to unparsed entity '%1'. QXmlStreamRSéquence ']]>' interdite dans le contenu.&Sequence ']]>' not allowed in content. QXmlStreamR'Standalone' n'accepte que 'yes' ou 'no'."Standalone accepts only yes or no. QXmlStream2Balise ouvrante attendue.Start tag expected. QXmlStream~Le pseudo attribut standalone doit apparaître après l'encodage.?The standalone pseudo attribute must appear after the encoding. QXmlStreamInattendu ' Unexpected ' QXmlStreamjCaractère '%1' inattendu dans un 'public id literal'./Unexpected character '%1' in public id literal. QXmlStream4Version XML non supportée.Unsupported XML version. QXmlStreamVDéclaration XML après le début du document.)XML declaration not at start of document. QXmlStreamp%1 et %2 correspondent au début et à la fin d'une ligne.,%1 and %2 match the start and end of a line. QtXmlPatterns8%1 ne peut pas être récupéré%1 cannot be retrieved QtXmlPatterns€%1 contient 'octets', qui n'est pas autorisé pour l'encodage %2.E%1 contains octets which are disallowed in the requested encoding %2. QtXmlPatterns%1 est une type complexe. Caster vers des types complexes n'est pas possible. Cependant, caster vers des types atomiques comme %2 marche.s%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. QtXmlPatterns(%1 est un ivalide %2%1 is an invalid %2 QtXmlPatterns¢%1 est un flag invalide pour des expressions régulières. Les flags valides sont :?%1 is an invalid flag for regular expressions. Valid flags are: QtXmlPatternsH%1 est un URI de namespace invalide.%1 is an invalid namespace URI. QtXmlPatternsh%1 est un modèle d'expression régulière invalide: %2/%1 is an invalid regular expression pattern: %2 QtXmlPatternsV%1 est un nom de mode de template invalide.$%1 is an invalid template mode name. QtXmlPatternsB%1 est un type de schema inconnu.%1 is an unknown schema type. QtXmlPatterns@%1 est un encodage non supporté.%1 is an unsupported encoding. QtXmlPatternsR%1 n'est pas un caractère XML 1.0 valide.$%1 is not a valid XML 1.0 character. QtXmlPatterns|%1 n'est pas un nom valide pour une instruction de traitement.4%1 is not a valid name for a processing-instruction. QtXmlPatternsR%1 n'est pas une valeur numérique valide."%1 is not a valid numeric literal. QtXmlPatternsê%1 n'est pas un nom de destination valide dans une instruction de traitement. Ce doit être une valeur %2, par ex. %3.Z%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. QtXmlPatternsT%1 n'est pas une valeur valide du type %2.#%1 is not a valid value of type %2. QtXmlPatternsR%1 n'est pas un nombre entier de minutes.$%1 is not a whole number of minutes. QtXmlPatternsº%1 n'est pas un type atomique. Il est uniquement possible de caster vers des types atomiques.C%1 is not an atomic type. Casting is only possible to atomic types. QtXmlPatternsà%1 n'est pas dans les déclaration d'attribut in-scope. La fonctionnalité d'inport de schéma n'est pas supportée.g%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. QtXmlPatternsT%1 n'est pas une valeur valide de type %2.&%1 is not valid as a value of type %2. QtXmlPatterns^%1 correspond à des caractères de saut de ligne%1 matches newline characters QtXmlPatternsœ%1 doit être suivi par %2 ou %3, et non à la fin de la chaîne de remplacement.J%1 must be followed by %2 or %3, not at the end of the replacement string. QtXmlPatternsn%1 requiert au moins %n argument. %2 est donc invalide.p%1 requiert au moins %n arguments. %2 est donc invalide.=%1 requires at least %n argument(s). %2 is therefore invalid. QtXmlPatternsl%1 prend au maximum %n argument. %2 est donc invalide.n%1 prend au maximum %n arguments. %2 est donc invalide.9%1 takes at most %n argument(s). %2 is therefore invalid. QtXmlPatterns %1 a été appelé.%1 was called. QtXmlPatternsLUn commentaire ne peut pas contenir %1A comment cannot contain %1 QtXmlPatternsPUn commentaire ne peut pas finir par %1.A comment cannot end with a %1. QtXmlPatternsÞUn déclaration de namespace par défaut doit être placée avant toute fonction, variable ou declaration d'option.^A default namespace declaration must occur before function, variable, and option declarations. QtXmlPatternsŒUn constructeur direct d'élément est mal-formé. %1 est terminé par %2.EA direct element constructor is not well-formed. %1 is ended with %2. QtXmlPatterns\Une fonction avec la signature %1 existe déjà.0A function already exists with the signature %1. QtXmlPatternsÔUn module de bibliothèque ne peut pas être évalué directement. Il doit être importé d'un module principal.VA library module cannot be evaluated directly. It must be imported from a main module. QtXmlPatterns„Un paramètre de fonction ne peut pas être déclaré comme un tunnel.In an XSL-T pattern, function %1 cannot have a third argument. QtXmlPatternsÌDans un pattern XSL-T, seules les fonctions %1 et %2 (pas %3) peuvent être utilisées pour le matching.OIn an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. QtXmlPatternsÜDans un pattern XSL-T, le premier argument à la fonction %1 doit être un litéral ou une référence de variable.yIn an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. QtXmlPatternsDans un pattern XSL-T, le premier argument à la fonction %1 doit être une chaîne de caractères quand utilisé pour correspondance.hIn an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. QtXmlPatternsÎDans la chaîne de remplacement, %1 peut seulement être utilisé pour échapper lui-même ou %2 mais pas %3MIn the replacement string, %1 can only be used to escape itself or %2, not %3 QtXmlPatternsÄDans la chaîne de remplacement, %1 doit être suivi par au moins un chiffre s'il n'est pas échappé.VIn the replacement string, %1 must be followed by at least one digit when not escaped. QtXmlPatterns\Division entière (%1) par zéro (%2) indéfinie.0Integer division (%1) by zero (%2) is undefined. QtXmlPatternsTIl est impossible de se lier au préfixe %1+It is not possible to bind to the prefix %1 QtXmlPatterns\Il est impossible de redéclarer le préfixe %1.*It is not possible to redeclare prefix %1. QtXmlPatternsFIl sera impossible de récupérer %1.'It will not be possible to retrieve %1. QtXmlPatternsIl est impossible d'ajouter des attributs après un autre type de noeuds.AIt's not possible to add attributes after any other kind of node. QtXmlPatternshLes correspondances ne sont pas sensibles à la casseMatches are case insensitive QtXmlPatternsÀLes imports de module doivent être placés avant tout fonction, variable ou déclaration d'option.MModule imports must occur before function, variable, and option declarations. QtXmlPatternsZModule division (%1) par zéro (%2) indéfinie.0Modulus division (%1) by zero (%2) is undefined. QtXmlPatternsVLe mois %1 est hors de l'intervalle %2..%3.%Month %1 is outside the range %2..%3. QtXmlPatterns¸La multiplication d'une valeur du type %1 par %2 ou %3 (plus ou moins infini) est interdite.YMultiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. QtXmlPatternsLe namespace %1 peut seulement être lié à %2 (et doit être pré-déclaré).ONamespace %1 can only be bound to %2 (and it is, in either case, pre-declared). QtXmlPatternsÒLes declarations de namespace doivent être placées avant tout fonction, variable ou déclaration d'option.UNamespace declarations must occur before function, variable, and option declarations. QtXmlPatterns0Le réseau ne répond pas.Network timeout. QtXmlPatterns@Les fonctions externes ne sont pas supportées. Toutes les fonctions supportées peuvent êter utilisées directement sans les déclarer préalablement comme externes{No external functions are supported. All supported functions can be used directly, without first declaring them as external QtXmlPatternsjAucune fonction avec la signature %1 n'est disponible*No function with signature %1 is available QtXmlPatternsfAucun lien de namespace n'existe pour le préfixe %1-No namespace binding exists for the prefix %1 QtXmlPatternsvAucun lien de namespace n'existe pour le préfixe %1 dans %23No namespace binding exists for the prefix %1 in %2 QtXmlPatternsBAucun template nommé %1 n'existe.No template by name %1 exists. QtXmlPatterns¸Aucune des expressions pragma n'est supportée. Une expression par défault doit être présente^None of the pragma expressions are supported. Therefore, a fallback expression must be present QtXmlPatterns˜Seulement une déclaration %1 peut intervenir lors du prologue de la requête.6Only one %1 declaration can occur in the query prolog. QtXmlPatternsPSeulement un élément %1 peut apparaître.Only one %1-element can appear. QtXmlPatternsšSeule le Unicode CodepointCollation est supporté (%1), %2 n'est pas supporté.IOnly the Unicode Codepoint Collation is supported(%1). %2 is unsupported. QtXmlPatternsjSeul le préfixe %1 peut être lié à %2, et vice versa.5Only the prefix %1 can be bound to %2 and vice versa. QtXmlPatterns¨L'opérateur %1 ne peut pas être utilisé pour des valeurs atomiques de type %2 ou %3.>Operator %1 cannot be used on atomic values of type %2 and %3. QtXmlPatternspL'opérateur %1 ne peut pas être utilisé pour le type %2.&Operator %1 cannot be used on type %2. QtXmlPatternsZOverflow: ne peut pas représenter la date %1."Overflow: Can't represent date %1. QtXmlPatterns`Overflow : la date ne peut pas être représentée.$Overflow: Date can't be represented. QtXmlPatternsErreur: %1Parse error: %1 QtXmlPatternsŠLe préfixe %1 peut seulement être lié à %2 (et doit être prédéclaré).LPrefix %1 can only be bound to %2 (and it is, in either case, pre-declared). QtXmlPatterns`Le préfixe %1 est déjà déclaré dans le prologue.,Prefix %1 is already declared in the prolog. QtXmlPatternszLa Promotion de %1 vers %2 peut causer un perte de précision./Promoting %1 to %2 may cause loss of precision. QtXmlPatternsNLa cardinalité requise est %1; reçu %2./Required cardinality is %1; got cardinality %2. QtXmlPatternsTLe type requis est %1, mais %2 a été reçu.&Required type is %1, but %2 was found. QtXmlPatterns„Lancement d'une feuille de style XSL-T 1.0 avec un processeur 2.0.5Running an XSL-T 1.0 stylesheet with a 2.0 processor. QtXmlPatternsxLes noeuds de texte ne sont pas autorisés à cet emplacement.,Text nodes are not allowed at this location. QtXmlPatternsNL'axe %1 n'est pas supporté dans XQuery$The %1-axis is unsupported in XQuery QtXmlPatternsÐLa fonctionnalité "Schema Import" n'est pas supportée et les déclarations %1 ne peuvent donc intervenir.WThe Schema Import feature is not supported, and therefore %1 declarations cannot occur. QtXmlPatternsÌLa fonctionnalité "Schema Validation" n'est pas supportée. Les expressions %1 ne seront pas utilisées.VThe Schema Validation Feature is not supported. Hence, %1-expressions may not be used. QtXmlPatternsHL'URI ne peut pas avoir de fragmentsThe URI cannot have a fragment QtXmlPatterns†L'attribute %1 peut seulement apparaître sur le premier élément %2.9The attribute %1 can only appear on the first %2 element. QtXmlPatternsˆL'attribut %1 ne peut pas apparaître sur %2 quand il est fils de %3.?The attribute %1 cannot appear on %2, when it is a child of %3. QtXmlPatterns¢Le codepoint %1 dans %2 et utilisant l'encodage %3 est un caractère XML invalide.QThe codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. QtXmlPatterns’Les données d'une instruction de traitement ne peut contenir la chaîne %1AThe data of a processing instruction cannot contain the string %1 QtXmlPatternsLI'l n'y a pas de collection par défaut#The default collection is undefined QtXmlPatternsL'encodage %1 est invalide. Il doit contenir uniquement des caractères latins, sans blanc et doit être conforme à l'expression régulière %2.‰The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. QtXmlPatternsüLe premier argument de %1 ne peut être du type %2. Il doit être de type numérique, xs:yearMonthDuration ou xs:dayTimeDuration.uThe first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. QtXmlPatternsªLe premier argument de %1 ne peut être du type %2. Il doit être de type %3, %4 ou %5.PThe first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. QtXmlPatterns,Le focus est indéfini.The focus is undefined. QtXmlPatternsjL'initialisation de la variable %1 dépend d'elle-même3The initialization of variable %1 depends on itself QtXmlPatterns\L'item %1 ne correspond pas au type requis %2./The item %1 did not match the required type %2. QtXmlPatterns~Le mot-clé %1 ne peut pas apparaître avec un autre nom de mode.5The keyword %1 cannot occur with any other mode name. QtXmlPatterns La dernière étape dans un chemin doit contenir soit des noeuds soit des valeurs atomiques. Cela ne peut pas être un mélange des deux.kThe last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. QtXmlPatternsjLa fonctionnalité "module import" n'est pas supportée*The module import feature is not supported QtXmlPatterns\Le nom %1 ne se réfère à aucun type de schema..The name %1 does not refer to any schema type. QtXmlPatterns´Le nom d'un attribut calculé ne peut pas avoir l'URI de namespace %1 avec le nom local %2.ZThe name for a computed attribute cannot have the namespace URI %1 with the local name %2. QtXmlPatterns&Le nom d'une variable liée dans un expression for doit être different de la variable positionnelle. Les deux variables appelées %1 sont en conflit.‹The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. QtXmlPatterns€Le nom d'une expression d'extension doit être dans un namespace.;The name of an extension expression must be in a namespace. QtXmlPatternsÂLe nom d'une option doit avoir un préfixe. Il n'y a pas de namespace par défaut pour les options.TThe name of an option must have a prefix. There is no default namespace for options. QtXmlPatternsHLe namespace %1 est réservé; c'est pourquoi les fonctions définies par l'utilisateur ne peuvent l'utiliser. Essayez le préfixe prédéfini %2 qui existe pour ces cas.ŠThe namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. QtXmlPatterns¢L'URI de namespace ne peut être une chaîne vide quand on le lie à un préfixe, %1.JThe namespace URI cannot be the empty string when binding to a prefix, %1. QtXmlPatterns’L'URI de namespace dans le nom d'un attribut calculé ne peut pas être %1.DThe namespace URI in the name for a computed attribute cannot be %1. QtXmlPatternsšL'URI de namespace doit être une constante et ne peut contenir d'expressions.IThe namespace URI must be a constant and cannot use enclosed expressions. QtXmlPatternsþLe namespace d'une fonction utilisateur ne peut pas être vide (essayez le préfixe prédéfini %1 qui existe pour ce genre de cas)yThe namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) QtXmlPatternsLLe namespace d'une fonction utilisateur dans un module de bibliothèque doit être équivalent au namespace du module. En d'autres mots, il devrait être %1 au lieu de %2–The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 QtXmlPatterns(Le forme de normalisation %1 n'est pas supportée. Les formes supportées sont %2, %3, %4 et %5, et aucun, ie. une chaîne vide (pas de normalisation).‰The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). QtXmlPatterns~Le paramètre %1 est passé mais aucun %2 correspondant n'existe.;The parameter %1 is passed, but no corresponding %2 exists. QtXmlPatternsŠLe paramètre %1 est requis, mais aucun %2 correspondant n'est fourni.BThe parameter %1 is required, but no corresponding %2 is supplied. QtXmlPatterns>Le préfixe %1 ne peut être lié.The prefix %1 cannot be bound. QtXmlPatternshLe préfixe doit être un valide %1; %2 n'e l'est pas./The prefix must be a valid %1, which %2 is not. QtXmlPatternsÜLe noeuds racine du deuxième argument à la fonction %1 doit être un noeuds document. %2 n'est pas un document.gThe root node of the second argument to function %1 must be a document node. %2 is not a document node. QtXmlPatterns¬Le deuxième argument de %1 ne peut être du type %2. Il doit être de type %3, %4 ou %5.QThe second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. QtXmlPatternsZLe namespace cible d'un %1 ne peut être vide.-The target namespace of a %1 cannot be empty. QtXmlPatterns’La valeur de l'attribut %1 de l'élement %2 doit être %3 ou %4, et pas %5.IThe value for attribute %1 on element %2 must either be %3 or %4, not %5. QtXmlPatterns’La valeur de l'attribut de version XSL-T doit être du type %1, et non %2.TThe value of the XSL-T version attribute must be a value of type %1, which %2 isn't. QtXmlPatterns:La variable %1 est inutiliséeThe variable %1 is unused QtXmlPatterns¬Ce processeur ne comprend pas les Schemas. C'est pourquoi %1 ne peut pas être utilisé.CThis processor is not Schema-aware and therefore %1 cannot be used. QtXmlPatternsBL'heure %1:%2:%3.%4 est invalide.Time %1:%2:%3.%4 is invalid. QtXmlPatternsÜL'heure 24:%1:%2.%3 est invalide. L'heure est 24 mais les minutes, seconndes et millisecondes ne sont pas à 0;_Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0;  QtXmlPatternsÔLes élément d'une feuille de style de haut niveau doivent être dans un namespace non nul; %1 ne l'est pas.NTop level stylesheet elements must be in a non-null namespace, which %1 isn't. QtXmlPatterns‚Deux attributs de déclarations de namespace ont le même nom : %1.F•¾H4h¹HYvþHokI†I@NIANIICm¦J ©.J¼mÍJÄmuJÄÇ“K&1LDnÀL“oPSr%R{kTÇKMZr‡[`_ú[`ï‘\ÇŠH\ݪ_Ëz_Ø’1ºaŸÔEcŠ¿Ã"°¿ÃYׇ›$`‡›kx‡›iF‰i–$x–$Ãi–[jþ˜,kɦym¦yÅß§Ô7!§Ô´…§Ô±õ¨¥%€«ŒmK¬9xµ›_µ¶EXb¶E•-¶Eóò¶Þn_Ï•aÐ%' Ð%mIÖ ‘Ö0+Ö2cÖ6sØ5p/ì05’ì0[Õì0Åì0ÜŽì0pÉì0ôKö5q, |Ž D^Ü Duò+Ôx¥,£`$,£–2f¾*f¾O„f¾\¿f¾oæf¾ÈMf¾<Öf¾²¤gÕ0dlÀÒ‹¯³“‹¯´S˜Å]˘łrœDƒÊŸ`„+¡-R¡_,¡vš¦”-ƒ«`…ç«`ëÏ®y„°5‡£¹µþ¹µO´Àe/²Àe_ZÀevÏį³Úį´šÏÇ[qÏljw «yA~‘šZÒÁX^‘™á‘ò¶¤ÛåùÉžQ,ƒ3î¯Å™Ç-½$™èÍ&S.8È(4²r<(4òrp(4ú¿(5r¤(5‚rØ*¦y5ê*¦y³†*¦y°„*ÖT€–*ì0CË*ì0ò–+FÅÃñ+FÅôè+LôòÇ+f¾!°+f¾h¶+‹zM +‹¯6[+‹¯³õ+‹¯°ù+˜zMØ+˜Å"*+˜ÅY™+˜Åi.+¡€Ç+¡Ät+¡õe+į6¥+į´>+į±E+ÇúN7“e:9Π‚;®ƒ=»Þ…@Ñ9èBjHìC:žçŠF0i"?Fn4òFn4óG–”ZH/ƒj"Hw94éHw9Z@HâõÙ”I'›wàIë›K•Ië›=J+‚6íJ+‚lvJ6•7—J6•O*J6•Z³J6•_‚J6•ÄÝJ6•ÇíJ6•)ƒJ6•TŽJ6•[¥J6•l©J6•õòJcb0ûJ¹·MåKQÙÕKÅmL ¤n‰LZÂnçLƒ•Lƒ•O[L™b&ÚM5„_íMbÿ ïMe³É^MƒÃ N‹»yrO|ŠN·PFE:-PFEÆ0PFEöœQóÂzøRŠþ{ R½|"R̼VORýô{×SŠP!S8^›TÉóJTÉó|ËTÊ´TæÑ1zU?^!U¯|WÀUÞ}}+V1¼$“V1¼4TVl*BV†Â œVŠ¥BVŠ¥Ü\VŒ•uVñ}hVöEüWŒ£HWŒ£²ÖWT$ WT-„WT€´X~NXÇ9˜XÉÄ\öXÉÄàXË™]XýôûYÄó}—Yç¥ÆñYïÔƒþYöqhZ+À„[Zg•„ZkôÍZƒü~ãZ§›[:[;^gŠ[f3‡Ï\Š7Ü\]4ãÞ\]4ß\ƒµŸ\ƒµV \ú¿¸\ú¿‰Jat gc*ÁlG¹¹|^èD|AôæcÞ”‚üÅ¢TƒÅÉ?'„vXŽ„vñÿ…éÃ?‹fˆQŒ)CŠâŽ4LÀŽ5®Žã.-6CxE˜IA2J¥[³]0§ë‹én¨œ0"°I´z…º«yɵnRzɵnžZɵn¤Áɵn»úɵnõ_ɵnû@ɵnB¢ÉµnEÝËuË]ËÔE3ËÔ‹_Ð BãÓ*Î  Þ'Ž«<ãŽÞ€áå˜ËÑ%êMº ÒñlN©òEò­ŸòÎa<÷ËùŽðqùûpThà Á¥êS¢>_?HÊJÁ<äËpù4×5âÀ#Qép%UTåÞ(ÅŽs„*ä4ýž-ctP5-ct¬ì2Àé©3…¤Ð5vÐÓ›„JÁ?—2ð¨?»N÷´M¡ãÞƒNkyàU¿i >W÷~h§]Ýé0``êT]`ê.j•tÓôlglyz«;l}µÓeoiÁÍävtyPàvtyc01ý| %Ò½”"¾ /—ú'{™ú'9™úmu£·¤¾|)¥4žC_¥²)§´¦ìG¦ìçª6•Yª6•ùª6•ô³¬´S¿Í´^¡ˆÆ´ƒŠ6¶Š¥6$¶Š¥³¿¶Š¥°À·Rž'·TLº=ݦº÷ž5.¼~. f¾‚´¯h¾œû‚￾^‹¿¾â¿Eå^Ó¿EåâTÀ‚´_À‚´âšÄ{Ž´Ç=±ìgÊ8A%­Ï„²îÛA‡ÛÃŽ‘ß[y”âL´úJãQtW䤘²ì‚n%#òø‘vió‚¤TÍ󂤿½ó‚¤ùS󂤟ó‚¤Cœó‚¤HõØmÄ©õðMÃ|õðMôyöE”ƒ*öE”tw3ñw\žâþRâ^îY­ ÍI%Ó Žž@ÍÚá«{žá‘ýÅþ<8ü‹* ê‚b×!Ïe»¸&¸ž£)Õ‰Ÿ*/e‰Ð,N´Ÿ?;„àu?†4ŸøB‹yÖEcšÛF±åWéO«ÙZõf³\c‘d`àÂbœ@cÖƒz)fãĽg&4jCsImÑnqÓqšÓqÕbŠtßumu(µq™{>}ka”R½õ}Òˆà ‚Ó~ ‹³I—øÑ…È£y¾ _£–þAz©ßÒµŠ¯É$A ¯É$ÿƒ°‚µû´àäxµ¼°{À9kÁ+³&êÃ( ŠÊþ¸zÊôrñ5Î^"ÑKõÅÖŠÂNçã nÆãõɾÈä,Ô ~å•ôÐêËÖEêÝôáëÕÿrñ;yžõω5ùOž¡Åú-îM(Œµà„ùA›F4ßžº6æ7^qLàrî=&H„Ÿñ.Ž*/¥ÄŸP?Þ3VIxSLALÙlÚMþíyRå>òXE%ÝòYMáƒYMáÛ^Á¾K[dÄKäh^<ÕiïÓAûn«¡sscÞ—s¡®üwÞ\Z€»Ñƒÿˆxów-‰/^z.‹245Œ‡÷ŠŽ"%KåŽÛŠN‚at¢‘;TÁž–´NJT–»][ç–»]Ö—ÌÅ2è˜I¼$˜I¼4²˜I¼5 ˜I¼Z|˜I¼< ˜I¼”÷˜I¼–Œ˜I¼óZ™(²m¶œZÂÃÁŸIušŸYuÜŸivŸyv`Ÿ‰t’Ÿ™tÔŸ©uŸ¹uXŸétŸùtPŸIw쟉v䟙w&Ÿ©whŸ¹wªŸùv¢¡uD‡Ì¡uD’F¦Dóˆ¦oÃ1z«ŽöM=«Ž÷M¯¬,¥i¬,¥´¹¬,¥K ¬,¥mô¬,¥—B¬,¥²,¬«]?°æ>Im´é„b;¹Êå B¹Êå+R½rާÈ>ÔJ+Èq.×ûɘeo;Ë“îÝšÌ5$+ZÎ 4–×Ï8ÃMÑfR(âÑfRo¦ÕG>ž(Ö*ÂnØèŸÁàUçLžá›ïá_‰fèNÀp‡é•pë˜Çz!õ¬c?¿öûçøSÒ|MûPqФþV…\ þV…ÊÏÿfRhs|•=¬T˯œ”Èœ”rLœ”—Ç ‚ózS ‚ó͵ ×ä8 æ•ÒD©!’ž­N¬åqVäŽA¼‚¦ÖàÂZšúÔ¤µ¥…"o˜{%CÉ= &‹~{1&§Þ á)È2¬¢)ðž*V+­Â!|,ºÂ"Ï5˜3ZB5åÆxÑ8‘Äy_?"£½È?>u×lFuƒKN®{MîiÞNÚ>T°R¿òÝúV“||º]¿žy]¿ž£Ûe”L6g°^~†k¶Þ¢yô^9w€{y°‚w?íÈ‹ ²|Œ5tZŒ5tÞËŒFÅpÁŒ¼ŽË:ÎT‘ΞQã“å|ð˜G%´˜œn0²˜«nJu˜«nV™Øµõؚǥ÷›ˆ˜[›ˆ˜ƒjœ+¤ƒ˜œ+¤•ú¡`ÅÌÆ£n¾mô¦±t"d§{yè«”ìD¬;å®/þ ·®xAR¯rÉQ°9\~m°ˆÁ†Š°s~©°ª½<”±Ï¾³DµÞ%KȶˆÕ¦¶¸{ÎCò¸Œ¼ˆF½C-@¸½ÔdÐIÂ5Ë}ÎÆžZÆC^’Íƨ¥ &ƨ¥˜c˾ä¤OÒz(Ôiœ¶Õ§?—oÚZ>Ûi}ŠªÛz‹dLߺºbãÄb°çf•ê,ê—tJì`ÚWómˆ³üä^èþ!ž –äŸ ›R£ ›X> ɪú$ÁŽ~boa~bv!oÓ*xM«Œ9^ÉtWÛ `Þ¦!ë¿¢Q%?åˆ)ÑžL`+ÖuD+ï3D,8β,/œ´Nô/ô…$Õ/ô…4Œ1õ¹‹4~ô'6Ï ƒ.<…§¨? 2ñªA£•11DçÔG¾ñ‚¸GÎbuLAU®íOrñPѧZëQ…î‘RÌCqâSÅnµTµƒ?UôôUô¨'Uôå‡UÞTœn[Lý[óº]k*o%]ú®(u^ãnþ1_PÔ‹Ö_pÔ/œe‘)#ižäˆižä’“kQ¾Œm?$oÛN fxâÙËy;ǼÓ{3q{•½}u~û}w]Á}w}wÜ}¶¨+„à ¥„hsnÆÒˉlCŠê‚û‚Õä©yr°a’'Õ½T—B™íÞ‡›v£70›ƒt h›ƒt,ë «.^  «.A¡®3cý¥Pè=>¦iU(t®uÜŽµD„ú®µY´··ÝtDe·ÝtŽš·ÝtáV¸°ŽŒºç ó½-n¥½l´À_ ~JÂa±;Ã+çëAÉF±À5ÊC¾^ Ê¢äU¹Ê¢älʬÚ»ÊÆ´ðÊçdV¦ÊçdÀžÊçdúÆÊçdjÊçd ÃË0ÚÿÌ59¡wÑç8 Ø+˜ÆÚNSè䇘ëk˜Œì»Uë%îdåþ¯Bþáhw®öA–½¯f 2þV¾ ×Ãö?— …‘¡Ú!ž“Uo+ª¤”§,ŒDØô/ÿî"Ã2ìaE3”42ÞeT6’щ7·D¨9þåÄ:‰{¡:%TI°?;ÞnCU]ËDØØIàN/·J0žãKÕ+ØK¯á`U|kýV7ÞGo\¬,?\¯DËòarÅDŒn8å£Ûp&¡ÎÄt‰+”wÛDõ|(^á±|ãÙ=|¬,•}wZ M}š$]t}š$Œ¾}š$Ûˌϗ7nZ’7¦œVNa"Ÿ”ÖÓŸ±D—“ L>W¶¡ÒϧãN•ªÜqÏ*«Èy´K<\Kµf+Ƈ·ƒOÚ·ƒ`¹·ƒ¬‘ýž!uÅ>ªÆ×³3³Îû  Õ/ÂØéußIÚe“hhàŸýã“t…Wãûµ#•ä½Uºë7¢Ðë»Esøvþ¬lONjÎu$Â%5u‘›T(À©¬ e~Iöi~"Û’Îr€É!¯úi9%èŠÑäèüÿwÄrb~#²%’¾ ×'ÕîÙ-å.„þ.÷ŽR5kE?Õ=ƒâR=ƒâg=ƒâ®?ƒâ¶=?ƒâ»CtIxôEfĨŒNºP|nPËîHgV%îŒ V%îŽXU mÿZŒîmv`ååbwbD†ºbG·®f“d¾@gŸA1ÓhI•z‡iê$øÅx1 l@z*2i«|QRæÂ‚¨dýƒJ„‚¼†®žr؇•åŠU€j[ŠécOB‹(.®ˆ‹¬Ùj’•zaó•c.•,›¯4üªQžªf­¯µÞþµÞrêÁ¶°ã·w¸XÔÇÿºm‚kºå^ÈÏ»²eæX¼ìn3¬½ŒÈ%†5ìyÄØiw¡ÇC¼^Ê´5Ä0Ê´5õ$Ê¶ÕÆjÌÉÅ4ÞͳUÒûDð“Ó^ šÀÚÔ„ù£Û”#.ÝD„ù2ß'Nt‰âÜdý~ðF59òðF5Ňò»Y [ópÉ™bõ+>‘þüùI'½üùInEýAs$% äÑV4 }$ qeŒb Ú¤ßË Ú¥2š ôd“‚ íE¾Y íEø: î¤j Ac,ñ AcqŸ ÚôÎ 3š5ê© µ bÅ5† bb´ß b¾`_² b¾`ã- dÇY• gUò¸¦ iä3A# laôÜ^ o„kà uáÎ~ô xqê |o¾O¤ ‚|Åç Š·J6¢ ŒtÓ,^ ŒtÓpõ ŒÖô¡¯ Ž . Ö Ží÷ –é‚k* ˜ŠÞc ™)þF šF> šêÄìÿ Ÿ¥ÞeŽ ¢³ÄDÅ ¢³ÄẠ¦„„’¢ §²ã“ ¨B¾°¤ ©Ò‰%y «å4S ¬¯…sÁ ­>óG¡ ­‚µ( ¯kƒ¾Ó ²î¾[P ¸æÉ¥  ¸æÉ¿O ºn¹¥ ¼áN{ ¼çÃÀ# ÀV´í; ÉËÃÅ ÊY+f† ÑY>ãÀ ÜKç8 ÝÕ¶ø 팤ô“ îl~5{ ñ%'µv ö ® \ ÷»¼x. û/î  ûCsT =Ž èq~.  D:[ ü®L }´ ü9s o´c ¬Ž,3 )µž$? */åir .>¤º' 5Ýîa­ 7uóÿÑ ;Ù°D =äæ BÇé'ø Bòn?i Fõ‹Ý5 H ª" J‰"î_ K2éÛ RÛ®" Ty  ¶ Tþ^j" Uj4µá ]‘žëÛ ^&Äy `±í `±A½ `±Dú bÕ·ß b¿®šÔ c(å0£ c·E*q dÐÍ— eœÇ(I eœÇnð e¦eY e¨{g fŽ1…R fü*1³ g5U+• gînþþ kŸ,.€ rD"4+ t uj4­° w`N´ xšÄä¼ y5¤&B ~ó”£_ …éÓ@w ‡Î9/Ý ’$N2’ —¥» ˜IœCa ˜IœJŽ ˜IœXÆ šÉ;0Í œ{t œ¬Á œ¬Hø Ÿfµh Ÿjñž‘ ¨JÉ…¦ ª$PŽ ª$b( ¬%pG“ ¬,…!" ¬,…h< ¯=Â˜ä °ÌÕHL ¹N4B ¼ŒtÇà ¿`•ê ÂSdR ÂÆnE‘ Äãn& ÆBk‹ ÇvĆS Étï» ÉÌ$Oä Ë”€ú ÐP¸C“ ÐP¸ò_ ÔàĆL ÔàÄ Ý~t©Ø Þ68>7 Þ>>u1 è¼:Mf ëf # ëf jY ÷4 ó øÊ.¸ øûŽUÔ ý‡s&c ý‡sl§ ¶~Ж AA‰ó —9 $ ˜Ä[P ÷9Ã7 .÷ m,/[ Ï5O– #-tèÑ 0†NI 5ή A›ù™] CóU€T EÔ9,  IßÔ L‘¥Æ LöCý Löòô Mc\^M RÕî`Œ SÐ¢Ô V×§; W“å¹J Zƒ|ú \OtÌ] ]â$SÈ `àÁâ f)#× f)j  f=¦)¾ io>t l#‚* mû`M´ „‚åä ‹æ}R ŒH!æ ŒHhë Ü GI ŽýàMs n>º ‘$þk¦ ’.@ˆÑ “þ’2Ù — i šË<;k ›…† ¢×å{ £Ü 7V £Ü ´ë £Ü ²a £ü å< ¬ü% ¯ÙJ&Ÿ ¯ÙJlâ ´Ž ž ºçžä ¿t.þ­ ÂkÔ¯¯ ÃÓ‡7É ÇÉdž ÈMÄ/Þ ÈÇ5R ÊN>®Æ Ë/˜jŠ̺ó> Ï&Þ¨Œ Ô-D‚) ÖØ.²´ Û·å-) àrF âkÔ_e âkÔââ èU)“3 êéž‹ ðË<: óŸãQ3 óŸãcÖ óŸã­E õ0Ë}ˆ ö”ÄØ« $r‚¦ §é þ z+Ú"  „‡Š  „’ ŒIy« ‚%ó ¤Û èNy ö~ …sÆÛ ©´µ xH—ý ƒòºÁ $¿QÕ %6bR\ .ÉãL½ 2¦¢Œ 7F´þµ >ÏòŠZ >Ïò‹ >ÏòŒÅ >Ïò—H >Ïò¨ß >Ïò³8 >Ïòë‚ >Ïò >Ïò«î >Ïò¬> ?t|¼2 D€T G’ôþ IëËL Mbâ„¿ P@Þ « RVŽqÿ RVŽïù RV®) R¿nà4 S.Ÿ–· SGùð SÀ4 Yåõ— YçõÇ’ [•›¹R hÛ®y4 j7ogj p¡ÃM s©LX vô~v †šž#ö ŒÑB¥< Žèn ½TRó ½T¼u ½Tûº ½T@ ‘ñ ’›¢¦p “èÄUC “èÄy ”܇m ”Å yç –‚™C )dé„ Ÿ§T¹ ©‰·² ¬Á.SO ¬Á.žÕ ¬Á.½M ¬Á.ö¡ ¬Á.þ3 ¬Á.C ¬Á.FY ­—– °†Ô” µÑ– ¸aæ¹ » y:d »±ŽwÈ ¾e.:¢ ¾x¹Ð ÂÚC¿\ ÉhNxZ Ìôeh Î>X” Ò‚î Ó´ÓYâ àóx æ%´Õ² èíuÕ ë¬åÈ ñ­Þ.w ó|ôc€ ô’Þs— úù3P ýXt‹Â ÿünœ{ ¿9À\ t@H aœ^ 6È „ÕoË :b“¸ UqÛ à€ª ˆ£ ÊœK1 ñ”`&  õT* $a}  Á_ý #$î¯' #=—8¹ %™ny¢ (I$w (öN +>ºN8 +kžÜ 0ÒEü¢ 64d› ;ɾ± Fg[ K×9íF PtµÅó Ptµöb Sì,‡- T»>NG dBâl§ fèe\ fèeÏÁ g ð1 g­# iFCo’ iØÄn½ iØÄoþ jNÎK‡ jÓ®&Û kGnŒh lã"PX m9ÄÊ n¤îç u®~´ uþ; uüÁ›Ü v îv¾ v&¥ £ v{ðD w®\â w®Œ> w®Û= w}¤]* w}¤Œ} w}¤Ûƒ yÄnÉŒ |[®V €®à uŠo ƒÈô„y ƒÈôŽK „ÿ<? ŽJ©š —Ã^ÜÀ ¢}Ò± ªôR»/ ±žPîÝ ¶²íñ ¾xN Ä"¦€i ÇÒU·l ɰe'• ÍïF‡ü ÛùžX ÜX)´ ßbÈ­ ä&Þç çxÔ p êD*ê ë¼ópp ìÕ+e¬ ðt5ÅF ðt5ö$ ð¨<Ñ òŽdÑ ö¯>ŽV ø¾Æ« ø¾öÓ ú¾<©$ÁRèw¤;Ž @akèTFf‡ÛÉò‡ÛôgTFÅÚî&Z*‡«D1*‡«ó'/ÇEE/ÇEäc4Qt'=êB­'IÌ_”2K·õ¹ÔOO”¸8S×5XRu¹ãXÑ$ë[ µã[Ÿ øža.Å[Ža‚.ðgc=iÒÕ¯nyGÜvÉ…0œy$Aq€~¹–N%‹¬%8ƒ>BjŽÞÎuÏ“ª4ñÀ¨'î9f«Ó4¼ÿ´÷S¨t»Nž|»®^¼5Ç<½Ç—Úd¾èŽ“¿ß: ÄÇDªÇB¤BßÊæÂºÎæUÔ”P±ÖÃâ”Ürµµ+Ý–þßò[y[÷Þ^†“ýjQ]ýjQ™ ¶Ùpù íÒ%4 íÒlG¾#`lD:²–þ3"#G#$ÚU/%º4^•%º4uC,-¤¦-v›¶g0i)yã0’Àz»1cå%2wTyD¢Ã=OF74žHúù.¸Jd•¥K¡ò“ L$.úW÷¾fgc5^Bc5àÕg3+êi¯Tq6lÒWpþÅüyƒC>V{`©˜{~axa6$ѯY5_&òìÊ&òïŒDÉŽ‹{îpr•`鼜¿nNÅœâYðס[ôu¢÷>P—¥¾·ߨ§)¥É«Í£€-®þ>¯·%믷lb¹>bÊS¼‰¾‹¾Nf‡¿„ç£À Eç7Â"~äÄÜLiÉrÔEÖÉrÔ¯ùÌ-1ªþÐkyÖ ¡Qß'TàLnŠKè.éB÷2éPéƒøt2IÒû¾»†û¾ôíû¾B,û¾Ehþ”d* ÿUµ¼‘iºe0:@KBL 2:;04:C Close Tab CloseButton 5:>@@5:B=K9 URL Invalid URL FakeReply.!?5F80;L=K5 2>7<>6=>AB8 AccessibilityPhonon::1I5=85 CommunicationPhonon::3@KGamesPhonon:: C7K:0MusicPhonon::#254><;5=8O NotificationsPhonon:: 845>VideoPhonon::Ö<html>5@5:;NG5=85 =0 72C:>2>5 CAB@>9AB2> <b>%1</b><br/>, :>B>@>5 4>ABC?=> 8 8<55B 2KAH89 ?@8>@8B5B.</html>xSwitching to the audio playback device %1
which just became available and has higher preference.Phonon::AudioOutput¶<html>2C:>2>5 CAB@>9AB2> <b>%1</b> =5 @01>B05B.<br/>C45B 8A?>;L7>20BLAO <b>%2</b>.</html>^The audio playback device %1 does not work.
Falling back to %2.Phonon::AudioOutput:>72@0I5=85 : CAB@>9AB2C '%1'Revert back to device '%1'Phonon::AudioOutputÌ=8<0=85: >E>65, >A=>2=>9 <>4C;L GStreamer =5 CAB0=>2;5=. >445@6:0 2845> 8 0C48> >B:;NG5=0~Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabledPhonon::Gstreamer::Backend=8<0=85: >E>65, ?0:5B gstreamer0.10-plugins-good =5 CAB0=>2;5=. 5:>B>@K5 2>7<>6=>AB8 2>A?@>872545=8O 2845> =54>ABC?=K.„Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled.Phonon::Gstreamer::BackendàBACBAB2C5B =5>1E>48<K9 :>45:. 0< =C6=> CAB0=>28BL A;54CNI85 :>45:8 4;O 2>A?@>872545=8O 40==>3> A>45@68<>3>: %0`A required codec is missing. You need to install the following codec(s) to play this content: %0Phonon::Gstreamer::MediaObjectþ52>7<>6=> =0G0BL 2>A?@>872545=85. @>25@LB5 CAB0=>2:C GStreamer 8 C1548B5AL, GB> ?0:5B libgstreamer-plugins-base CAB0=>2;5=.wCannot start playback. Check your GStreamer installation and make sure you have libgstreamer-plugins-base installed.Phonon::Gstreamer::MediaObject\5 C40;>AL 45:>48@>20BL 8AB>G=8: <5480-40==KE.Could not decode media source.Phonon::Gstreamer::MediaObjectN5 C40;>AL =09B8 8AB>G=8: <5480-40==KE.Could not locate media source.Phonon::Gstreamer::MediaObjectˆ5 C40;>AL >B:@KBL 72C:>2>5 CAB@>9AB2>. #AB@>9AB2> C65 8A?>;L7C5BAO.:Could not open audio device. The device is already in use.Phonon::Gstreamer::MediaObjectR5 C40;>AL >B:@KBL 8AB>G=8: <5480-40==KE.Could not open media source.Phonon::Gstreamer::MediaObjectH525@=K9 B8? 8AB>G=8:0 <5480-40==KE.Invalid source type.Phonon::Gstreamer::MediaObject>ABC? 70?@5IQ= Access denied Phonon::MMF#65 ACI5AB2C5BAlready exists Phonon::MMF*>A?@>872545=85 72C:0 Audio Output Phonon::MMFtC48>- 8;8 2845>-A>AB>2;ONI0O =5 <>65B 1KBL 2>A?@>872545=0-Audio or video components could not be played Phonon::MMF8H81:0 2>A?@>872545=8O 72C:0Audio output error Phonon::MMF@5 C40;>AL CAB0=>28BL A>548=5=85Could not connect Phonon::MMFH81:0 DRM DRM error Phonon::MMF(H81:0 45:>48@>20=8O Decoder error Phonon::MMF(!>548=5=85 @07>@20=> Disconnected Phonon::MMFA?>;L7C5BAOIn use Phonon::MMF654>AB0B>G=0O H8@8=0 :0=0;0Insufficient bandwidth Phonon::MMF 5:>@@5:B=K9 URL Invalid URL Phonon::MMF*5:>@@5:B=K9 ?@>B>:>;Invalid protocol Phonon::MMF<H81:0 A5B52>3> >1<5=0 40==K<8Network communication error Phonon::MMF!5BL =54>ABC?=0Network unavailable Phonon::MMF5B >H81:8No error Phonon::MMF5 =0945= Not found Phonon::MMF5 3>B>2 Not ready Phonon::MMF"5 ?>445@68205BAO Not supported Phonon::MMF*54>AB0B>G=> @5AC@A>2 Out of memory Phonon::MMFCBL =5 =0945=Path not found Phonon::MMF>ABC? 70?@5IQ=Permission denied Phonon::MMF*H81:0 ?@>:A8-A5@25@0Proxy server error Phonon::MMF>@>:A8-A5@25@ =5 ?>445@68205BAOProxy server not supported Phonon::MMF@#AB@>9AB2> 2>A?@>872545=8O 72C:0The audio output device Phonon::MMF.58725AB=0O >H81:0 (%1)Unknown error (%1) Phonon::MMF8H81:0 2>A?@>872545=8O 2845>Video output error Phonon::MMF&H81:0 >B:@KB8O URLError opening URL Phonon::MMF::AbstractMediaPlayer*H81:0 >B:@KB8O D09;0Error opening file Phonon::MMF::AbstractMediaPlayer45 3>B>2 : 2>A?@>872545=8NNot ready to play Phonon::MMF::AbstractMediaPlayer2>A?@>872545=85 7025@H5=>Playback complete Phonon::MMF::AbstractMediaPlayerN5 C40;>AL CAB0=>28BL C@>25=L 3@><:>AB8Setting volume failed Phonon::MMF::AbstractMediaPlayer %1 F%1 HzPhonon::MMF::AudioEqualizer:B82=>EnabledPhonon::MMF::EffectFactoryrH81:0 >B:@KBK8O 8AB>G=8:0: B8? <5480-40==KE =5 >?@545;Q=8Error opening source: media type could not be determinedPhonon::MMF::MediaObjectbH81:0 >B:@KBK8O 8AB>G=8:0: B8? =5 ?>445@68205BAO(Error opening source: type not supportedPhonon::MMF::MediaObject#@>25=L (%) Level (%)Phonon::MMF::StereoWidening57 72C:0MutedPhonon::VolumeSlideræA?>;L7C9B5 40==K9 ?>;7C=>: 4;O =0AB@>9:8 3@><:>AB8. @09=55 ;52>5 ?>;>65=85 A>>B25BAB2C5B 0%, :@09=55 ?@02>5 - %1%WUse this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%Phonon::VolumeSlider@><:>ABL: %1% Volume: %1%Phonon::VolumeSlider&%1, %2 =5 >?@545;Q=%1, %2 not definedQ3Accel#40;8BLDelete Q3DataTable5BFalse Q3DataTableAB028BLInsert Q3DataTable0True Q3DataTable1=>28BLUpdate Q3DataTablez%1 $09; =5 =0945=. @>25@LB5 ?@028;L=>ABL ?CB8 8 8<5=8 D09;0.+%1 File not found. Check path and filename. Q3FileDialog&#40;8BL&Delete Q3FileDialog&5B&No Q3FileDialog&&OK Q3FileDialog&B:@KBL&Open Q3FileDialog&5@58<5=>20BL&Rename Q3FileDialog&!>E@0=8BL&Save Q3FileDialog"&5 C?>@O4>G820BL &Unsorted Q3FileDialog&0&Yes Q3FileDialogb<qt>K 459AB28B5;L=> E>B8B5 C40;8BL %1 "%2"?</qt>1Are you sure you wish to delete %1 "%2"? Q3FileDialogA5 D09;K (*) All Files (*) Q3FileDialogA5 D09;K (*.*)All Files (*.*) Q3FileDialogB@81CBK Attributes Q3FileDialog 0704Back Q3FileDialog B<5=0Cancel Q3FileDialog>>?8@>20BL 8;8 ?5@5<5AB8BL D09;Copy or Move a File Q3FileDialog!>740BL ?0?:CCreate New Folder Q3FileDialog0B0Date Q3FileDialog#40;8BL %1 Delete %1 Q3FileDialog>4@>1=K9 284 Detail View Q3FileDialog0B0;>3Dir Q3FileDialog0B0;>38 Directories Q3FileDialog0B0;>3: Directory: Q3FileDialog H81:0Error Q3FileDialog$09;File Q3FileDialog&<O D09;0: File &name: Q3FileDialog&"8? D09;0: File &type: Q3FileDialog09B8 :0B0;>3Find Directory Q3FileDialog5B 4>ABC?0 Inaccessible Q3FileDialog !?8A>: List View Q3FileDialog&0?:0: Look &in: Q3FileDialog<OName Q3FileDialog>20O ?0?:0 New Folder Q3FileDialog>20O ?0?:0 %1 New Folder %1 Q3FileDialog>20O ?0?:0 1 New Folder 1 Q3FileDialog*25@E =0 >48= C@>25=LOne directory up Q3FileDialogB:@KBLOpen Q3FileDialogB:@KBL Open  Q3FileDialog<@54?@>A<>B@ A>45@68<>3> D09;0Preview File Contents Q3FileDialog>@54?@>A<>B@ 8=D>@<0F88 > D09;5Preview File Info Q3FileDialog&1=>28BLR&eload Q3FileDialog">;L:> GB5=85 Read-only Q3FileDialog'B5=85 8 70?8AL Read-write Q3FileDialog'B5=85: %1Read: %1 Q3FileDialog!>E@0=8BL :0:Save As Q3FileDialogK1@0BL :0B0;>3Select a Directory Q3FileDialog.>:070BL A:&@KBK5 D09;KShow &hidden files Q3FileDialog  07<5@Size Q3FileDialog#?>@O4>G8BLSort Q3FileDialog> &40B5 Sort by &Date Q3FileDialog> &8<5=8 Sort by &Name Q3FileDialog> &@07<5@C Sort by &Size Q3FileDialog!?5FD09;Special Q3FileDialog"!AK;:0 =0 :0B0;>3Symlink to Directory Q3FileDialog!AK;:0 =0 D09;Symlink to File Q3FileDialog$!AK;:0 =0 A?5FD09;Symlink to Special Q3FileDialog"8?Type Q3FileDialog">;L:> 70?8AL Write-only Q3FileDialog0?8AL: %1 Write: %1 Q3FileDialog:0B0;>3 the directory Q3FileDialogD09;the file Q3FileDialog AAK;:C the symlink Q3FileDialog:5 C40;>AL A>740BL :0B0;>3 %1Could not create directory %1 Q3LocalFs*5 C40;>AL >B:@KBL %1Could not open %1 Q3LocalFs>5 C40;>AL ?@>G8B0BL :0B0;>3 %1Could not read directory %1 Q3LocalFsL5 C40;>AL C40;8BL D09; 8;8 :0B0;>3 %1%Could not remove file or directory %1 Q3LocalFs@5 C40;>AL ?5@58<5=>20BL %1 2 %2Could not rename %1 to %2 Q3LocalFs,5 C40;>AL 70?8A0BL %1Could not write %1 Q3LocalFs0AB@>8BL... Customize... Q3MainWindowK@>2=OBLLine up Q3MainWindowD?5@0F8O >AB0=>2;5=0 ?>;L7>20B5;5<Operation stopped by the userQ3NetworkProtocol B<5=0CancelQ3ProgressDialog@8<5=8BLApply Q3TabDialog B<5=0Cancel Q3TabDialog> C<>;G0=8NDefaults Q3TabDialog!?@02:0Help Q3TabDialogOK Q3TabDialog&>?8@>20BL&Copy Q3TextEdit&AB028BL&Paste Q3TextEdit&&>2B>@8BL 459AB285&Redo Q3TextEdit$&B<5=8BL 459AB285&Undo Q3TextEditG8AB8BLClear Q3TextEdit&K@570BLCu&t Q3TextEditK45;8BL 2AQ Select All Q3TextEdit0:@KBLClose Q3TitleBarK:@K205B >:=>Closes the window Q3TitleBarB!>45@68B :><0=4K C?@02;5=8O >:=><*Contains commands to manipulate the window Q3TitleBarrB>1@0605B =0720=85 >:=0 8 A>45@68B :><0=4K C?@02;5=8O 8<FDisplays the name of the window and contains controls to manipulate it Q3TitleBar@ 072>@0G8205B >:=> =0 25AL M:@0=Makes the window full screen Q3TitleBar 0A?0E=CBLMaximize Q3TitleBar!25@=CBLMinimize Q3TitleBar !2>@0G8205B >:=>Moves the window out of the way Q3TitleBard>72@0I05B @0A?0E=CB>5 >:=> 2 =>@<0;L=>5 A>AB>O=85&Puts a maximized window back to normal Q3TitleBar`>72@0I05B A2Q@=CB>5 >:=> 2 =>@<0;L=>5 A>AB>O=85&Puts a minimized window back to normal Q3TitleBar>AAB0=>28BL Restore down Q3TitleBar>AAB0=>28BL Restore up Q3TitleBar!8AB5<=>5 <5=NSystem Q3TitleBar>;LH5...More... Q3ToolBar(=58725AB=>) (unknown) Q3UrlOperatorœ@>B>:>; '%1' =5 ?>445@68205B :>?8@>20=85 8;8 ?5@5<5I5=85 D09;>2 8;8 :0B0;>3>2IThe protocol `%1' does not support copying or moving files or directories Q3UrlOperator`@>B>:>; '%1' =5 ?>445@68205B A>740=85 :0B0;>3>2;The protocol `%1' does not support creating new directories Q3UrlOperatorZ@>B>:>; '%1' =5 ?>445@68205B 4>AB02:C D09;>20The protocol `%1' does not support getting files Q3UrlOperator`@>B>:>; '%1' =5 ?>445@68205B ?@>A<>B@ :0B0;>3>26The protocol `%1' does not support listing directories Q3UrlOperatorZ@>B>:>; '%1' =5 ?>445@68205B >B?@02:C D09;>20The protocol `%1' does not support putting files Q3UrlOperatorv@>B>:>; '%1' =5 ?>445@68205B C40;5=85 D09;>2 8;8 :0B0;>3>2@The protocol `%1' does not support removing files or directories Q3UrlOperator‚@>B>:>; '%1' =5 ?>445@68205B ?5@58<5=>20=85 D09;>2 8;8 :0B0;>3>2@The protocol `%1' does not support renaming files or directories Q3UrlOperator>@>B>:>; '%1' =5 ?>445@68205BAO"The protocol `%1' is not supported Q3UrlOperatorB&<5=0&CancelQ3Wizard&025@H8BL&FinishQ3Wizard&!?@02:0&HelpQ3Wizard&0;55 >&Next >Q3Wizard< &0704< &BackQ3Wizard*B:070=> 2 A>548=5=88Connection refusedQAbstractSocket6@5<O =0 A>548=5=85 8AB5:;>Connection timed outQAbstractSocket#75; =5 =0945=Host not foundQAbstractSocket!5BL =54>ABC?=0Network unreachableQAbstractSocketH?5@0F8O A A>:5B>< =5 ?>445@68205BAO$Operation on socket is not supportedQAbstractSocket$!>:5B =5 ?>4:;NGQ=Socket is not connectedQAbstractSocketF@5<O =0 >?5@0F8N A A>:5B>< 8AB5:;>Socket operation timed outQAbstractSocket&K45;8BL 2AQ &Select AllQAbstractSpinBox(03 22&5@E&Step upQAbstractSpinBox(03 2=&87 Step &downQAbstractSpinBox 060BLPressQAccessibleButton:B828@>20BLActivate QApplicationB:B828@C5B 3;02=>5 >:=> ?@>3@0<<K#Activates the program's main window QApplicationr@>3@0<<=K9 <>4C;L '%1' B@51C5B Qt %2, =0945=0 25@A8O %3.,Executable '%1' requires Qt %2, found Qt %3. QApplicationDH81:0 A>2<5AB8<>AB8 181;8>B5:8 QtIncompatible Qt Library Error QApplicationLTRQT_LAYOUT_DIRECTION QApplicationB&<5=0&Cancel QAxSelect&1J5:B COM: COM &Object: QAxSelectK1@0BLOK QAxSelect0K1>@ :><?>=5=BK ActiveXSelect ActiveX Control QAxSelectB<5B8BLCheck QCheckBox5@5:;NG8BLToggle QCheckBox!=OBL >B<5B:CUncheck QCheckBoxF&>1028BL : ?>;L7>20B5;LA:8< F25B0<&Add to Custom Colors QColorDialog&A=>2=K5 F25B0 &Basic colors QColorDialog.&>;L7>20B5;LA:85 F25B0&Custom colors QColorDialog&5;Q=K9:&Green: QColorDialog&@0A=K9:&Red: QColorDialog &0A:&Sat: QColorDialog &/@::&Val: QColorDialog&;LD0-:0=0;:A&lpha channel: QColorDialog!&8=89:Bl&ue: QColorDialog &">=:Hu&e: QColorDialogK1>@ F25B0 Select Color QColorDialog0:@KBLClose QComboBox5BFalse QComboBoxB:@KBLOpen QComboBox0True QComboBox$%1: C65 ACI5AB2C5B%1: already existsQCoreApplication"%1: =5 ACI5AB2C5B%1: does not existQCoreApplication%1: >H81:0 ftok%1: ftok failedQCoreApplication%1: ?CAB>9 :;NG%1: key is emptyQCoreApplication2%1: =54>AB0B>G=> @5AC@A>2%1: out of resourcesQCoreApplication6%1: =52>7<>6=> A>740BL :;NG%1: unable to make keyQCoreApplication2%1: =58725AB=0O >H81:0 %2%1: unknown error %2QCoreApplication>52>7<>6=> 7025@H8BL B@0=70:F8NUnable to commit transaction QDB2Driver,52>7<>6=> A>548=8BLAOUnable to connect QDB2Driver<52>7<>6=> >B>720BL B@0=70:F8NUnable to rollback transaction QDB2Driver^52>7<>6=> CAB0=>28BL 02B>7025@H5=85 B@0=70:F89Unable to set autocommit QDB2Driver:52>7<>6=> ?@82O70BL 7=0G5=85Unable to bind variable QDB2Result<52>7<>6=> 2K?>;=8BL 2K@065=85Unable to execute statement QDB2ResultB52>7<>6=> ?>;CG8BL ?5@2CN AB@>:CUnable to fetch first QDB2ResultH52>7<>6=> ?>;CG8BL A;54CNICN AB@>:CUnable to fetch next QDB2Result:52>7<>6=> ?>;CG8BL 70?8AL %1Unable to fetch record %1 QDB2Result@52>7<>6=> ?>43>B>28BL 2K@065=85Unable to prepare statement QDB2ResultAMAM QDateTimeEditPMPM QDateTimeEditamam QDateTimeEditpmpm QDateTimeEdit QDialQDialQDialSliderHandle SliderHandleQDialSpeedoMeter SpeedoMeterQDial >B>2>DoneQDialog'B> MB>? What's This?QDialogB&<5=0&CancelQDialogButtonBox&0:@KBL&CloseQDialogButtonBox&5B&NoQDialogButtonBox&&OKQDialogButtonBox&!>E@0=8BL&SaveQDialogButtonBox&0&YesQDialogButtonBox@5@20BLAbortQDialogButtonBox@8<5=8BLApplyQDialogButtonBox B<5=0CancelQDialogButtonBox0:@KBLCloseQDialogButtonBox,0:@KBL 157 A>E@0=5=8OClose without SavingQDialogButtonBoxB:;>=8BLDiscardQDialogButtonBox5 A>E@0=OBL Don't SaveQDialogButtonBox!?@02:0HelpQDialogButtonBox@>?CAB8BLIgnoreQDialogButtonBox&5B 4;O 2A5E N&o to AllQDialogButtonBoxOKQDialogButtonBoxB:@KBLOpenQDialogButtonBox!1@>A8BLResetQDialogButtonBox*>AAB0=>28BL 7=0G5=8ORestore DefaultsQDialogButtonBox>2B>@8BLRetryQDialogButtonBox!>E@0=8BLSaveQDialogButtonBox!>E@0=8BL 2A5Save AllQDialogButtonBox0 4;O &2A5E Yes to &AllQDialogButtonBox0B0 87<5=5=8O Date Modified QDirModel84Kind QDirModel<OName QDirModel  07<5@Size QDirModel"8?Type QDirModel0:@KBLClose QDockWidget@8:@5?8BLDock QDockWidgetB:@5?8BLFloat QDockWidget 5=LH5LessQDoubleSpinBox >;LH5MoreQDoubleSpinBox&0:@KBL&OK QErrorMessageL&>:07K20BL MB> A>>1I5=85 2 40;L=59H5<&Show this message again QErrorMessage*B;04>G=>5 A>>1I5=85:Debug Message: QErrorMessage&@8B8G5A:0O >H81:0: Fatal Error: QErrorMessage@54C?@5645=85:Warning: QErrorMessage@52>7<>6=> A>740BL %1 4;O 2K2>40Cannot create %1 for outputQFile>52>7<>6=> >B:@KBL %1 4;O 22>40Cannot open %1 for inputQFile:52>7<>6=> >B:@KBL 4;O 2K2>40Cannot open for outputQFile@52>7<>6=> C40;8BL 8AE>4=K9 D09;Cannot remove source fileQFile$09; ACI5AB2C5BDestination file existsQFile"!1>9 70?8A8 1;>:0Failure to write blockQFile¦>A;54>20B5;L=K9 D09; =5 1C45B ?5@58<5=>20= A 8A?>;L7>20=85< ?>1;>G=>3> :>?8@>20=8O0Will not rename sequential file using block copyQFileŽ%1 0B0;>3 =5 =0945=. @>25@LB5 ?@028;L=>ABL C:070==>3> 8<5=8 :0B0;>30.K%1 Directory not found. Please verify the correct directory name was given. QFileDialog‚%1 $09; =5 =0945=. @>25@LB5 ?@028;L=>ABL C:070==>3> 8<5=8 D09;0.A%1 File not found. Please verify the correct file name was given. QFileDialogN%1 C65 ACI5AB2C5B. %>B8B5 70<5=8BL 53>?-%1 already exists. Do you want to replace it? QFileDialog&K1@0BL&Choose QFileDialog&#40;8BL&Delete QFileDialog&>20O ?0?:0 &New Folder QFileDialog&B:@KBL&Open QFileDialog&5@58<5=>20BL&Rename QFileDialog&!>E@0=8BL&Save QFileDialogb'%1' 70I8IQ= >B 70?8A8. AQ-@02=> E>B8B5 C40;8BL?9'%1' is write protected. Do you want to delete it anyway? QFileDialogA524>=8<Alias QFileDialogA5 D09;K (*) All Files (*) QFileDialogA5 D09;K (*.*)All Files (*.*) QFileDialogJK 459AB28B5;L=> E>B8B5 C40;8BL '%1'?!Are sure you want to delete '%1'? QFileDialog 0704Back QFileDialog65 C40;>AL C40;8BL :0B0;>3.Could not delete directory. QFileDialog!>740BL ?0?:CCreate New Folder QFileDialog>4@>1=K9 284 Detail View QFileDialog0B0;>38 Directories QFileDialog0B0;>3: Directory: QFileDialog8A:Drive QFileDialog$09;File QFileDialog&<O D09;0: File &name: QFileDialog0?:0 A D09;0<8 File Folder QFileDialog"8?K D09;>2:Files of type: QFileDialog09B8 :0B0;>3Find Directory QFileDialog 0?:0Folder QFileDialog ?5@Q4Forward QFileDialog !?8A>: List View QFileDialog5@59B8 ::Look in: QFileDialog>9 :><?LNB5@ My Computer QFileDialog>20O ?0?:0 New Folder QFileDialogB:@KBLOpen QFileDialog( >48B5;LA:89 :0B0;>3Parent Directory QFileDialog$5402=85 4>:C<5=BK Recent Places QFileDialog#40;8BLRemove QFileDialog!>E@0=8BL :0:Save As QFileDialog /@;K:Shortcut QFileDialog>:070BL Show  QFileDialog.>:070BL A:&@KBK5 D09;KShow &hidden files QFileDialog58725AB=K9Unknown QFileDialog %1 1%1 GBQFileSystemModel %1 1%1 KBQFileSystemModel %1 1%1 MBQFileSystemModel %1 "1%1 TBQFileSystemModel%1 109B %1 byte(s)QFileSystemModel%1 109B%1 bytesQFileSystemModelì<b><O "%1" =5 <>65B 1KBL 8A?>;L7>20=>.</b><p>>?@>1C9B5 8A?>;L7>20BL 8<O <5=LH59 4;8=K 8/8;8 157 A8<2>;>2 ?C=:BC0F88.oThe name "%1" can not be used.

Try using another name, with fewer characters or no punctuations marks.QFileSystemModel><?LNB5@ComputerQFileSystemModel0B0 87<5=5=8O Date ModifiedQFileSystemModel,5:>@@5:B=>5 8<O D09;0Invalid filenameQFileSystemModel84KindQFileSystemModel>9 :><?LNB5@ My ComputerQFileSystemModel<ONameQFileSystemModel  07<5@SizeQFileSystemModel"8?TypeQFileSystemModel N10OAny QFontDatabase@01A:0OArabic QFontDatabase@<O=A:0OArmenian QFontDatabase5=30;LA:0OBengali QFontDatabase 'Q@=K9Black QFontDatabase 8@=K9Bold QFontDatabase8@8;;8F0Cyrillic QFontDatabase!@54=89Demi QFontDatabase>;C68@=K9 Demi Bold QFontDatabase520=038@8 Devanagari QFontDatabase@C78=A:0OGeorgian QFontDatabase@5G5A:0OGreek QFontDatabaseC460@0B8Gujarati QFontDatabaseC@<C:E8Gurmukhi QFontDatabase 2@8BHebrew QFontDatabase C@A82Italic QFontDatabase/?>=A:0OJapanese QFontDatabase0==040Kannada QFontDatabaseE<5@A:0OKhmer QFontDatabase>@59A:0OKorean QFontDatabase0>AA:0OLao QFontDatabase0B8=8F0Latin QFontDatabase!25B;K9Light QFontDatabase0;0O;LA:0O Malayalam QFontDatabase090=<0@A:0OMyanmar QFontDatabase:>N'Ko QFontDatabase1KG=K9Normal QFontDatabase0:;>==K9Oblique QFontDatabase30<8G5A:0OOgham QFontDatabase@8OOriya QFontDatabase C=8G5A:0ORunic QFontDatabase(8B09A:0O C?@>IQ==0OSimplified Chinese QFontDatabase!8=30;LA:0OSinhala QFontDatabase!8<2>;L=0OSymbol QFontDatabase!8@89A:0OSyriac QFontDatabase"0<8;LA:0OTamil QFontDatabase "5;C3CTelugu QFontDatabase "00=0Thaana QFontDatabase"09A:0OThai QFontDatabase"815BA:0OTibetan QFontDatabase,8B09A:0O B@048F8>==0OTraditional Chinese QFontDatabaseL5B=0<A:0O Vietnamese QFontDatabase &(@8DB&Font QFontDialog& 07<5@&Size QFontDialog&>4GQ@:=CBK9 &Underline QFontDialog-DD5:BKEffects QFontDialog&0G5@B0=85 Font st&yle QFontDialog @8<5@Sample QFontDialogK1>@ H@8DB0 Select Font QFontDialog0GQ@&:=CBK9 Stri&keout QFontDialog&!8AB5<0 ?8AL<0Wr&iting System QFontDialog<5 C40;>AL A<5=8BL :0B0;>3: %1Changing directory failed: %1QFtp<!>548=5=85 A C7;>< CAB0=>2;5=>Connected to hostQFtpB#AB0=>2;5=> A>548=5=85 A C7;>< %1Connected to host %1QFtpD5 C40;>AL A>548=8BLAO A C7;><: %1Connecting to host failed: %1QFtp$!>548=5=85 70:@KB>Connection closedQFtpLB:07 2 A>548=5=88 4;O ?5@540G8 40==KE&Connection refused for data connectionQFtp@ A>548=5=88 A C7;>< %1 >B:070=>Connection refused to host %1QFtpL@5<O =0 A>548=5=85 A C7;>< %1 8AB5:;>Connection timed out to host %1QFtp.!>548=5=85 A %1 70:@KB>Connection to %1 closedQFtp<5 C40;>AL A>740BL :0B0;>3: %1Creating directory failed: %1QFtp:5 C40;>AL 703@C78BL D09;: %1Downloading file failed: %1QFtp#75; %1 =0945= Host %1 foundQFtp"#75; %1 =5 =0945=Host %1 not foundQFtp#75; =0945= Host foundQFtp@5 C40;>AL ?@>G8B0BL :0B0;>3: %1Listing directory failed: %1QFtp:5 C40;>AL 02B>@87>20BLAO: %1Login failed: %1QFtp2!>548=5=85 =5 CAB0=>2;5=> Not connectedQFtp<5 C40;>AL C40;8BL :0B0;>3: %1Removing directory failed: %1QFtp65 C40;>AL C40;8BL D09;: %1Removing file failed: %1QFtp$58725AB=0O >H81:0 Unknown errorQFtp:5 C40;>AL >B3@C78BL D09;: %1Uploading file failed: %1QFtp$58725AB=0O >H81:0 Unknown error QHostInfo#75; =5 =0945=Host not foundQHostInfoAgent*5:>@@5:B=>5 8<O C7;0Invalid hostnameQHostInfoAgent$<O C7;0 =5 7040=>No host name givenQHostInfoAgent,58725AB=K9 B8? 04@5A0Unknown address typeQHostInfoAgent$58725AB=0O >H81:0 Unknown errorQHostInfoAgent*"@51C5BAO 02B>@870F8OAuthentication requiredQHttp<!>548=5=85 A C7;>< CAB0=>2;5=>Connected to hostQHttpB#AB0=>2;5=> A>548=5=85 A C7;>< %1Connected to host %1QHttp$!>548=5=85 70:@KB>Connection closedQHttp*B:070=> 2 A>548=5=88Connection refusedQHttpd A>548=5=88 >B:070=> (8;8 2@5<O >6840=8O 8AB5:;>)!Connection refused (or timed out)QHttp:!>548=5=85 A C7;>< %1 70:@KB>Connection to %1 closedQHttp"0==K5 ?>2@5645=KData corruptedQHttpDH81:0 70?8A8 >B25B0 =0 CAB@>9AB2> Error writing response to deviceQHttp*HTTP-70?@>A =5 C40;AOHTTP request failedQHttp–0?@>H5=> A>548=5=85 ?> ?@>B>:>;C HTTPS, => ?>445@6:0 SSL =5 A:><?8;8@>20=0:HTTPS connection requested but SSL support not compiled inQHttp#75; %1 =0945= Host %1 foundQHttp"#75; %1 =5 =0945=Host %1 not foundQHttp#75; =0945= Host foundQHttp0#75; B@51C5B 02B>@870F8NHost requires authenticationQHttpR5:>@@5:B=>5 HTTP-D@03<5=B8@>20=85 40==KEInvalid HTTP chunked bodyQHttpD5:>@@5:B=K9 HTTP-703>;>2>: >B25B0Invalid HTTP response headerQHttp@5 C:070= A5@25@ 4;O ?>4:;NG5=8ONo server set to connect toQHttpN"@51C5BAO 02B>@870F8O =0 ?@>:A8-A5@25@5Proxy authentication requiredQHttpB@>:A8-A5@25@ B@51C5B 02B>@870F8NProxy requires authenticationQHttp0?@>A ?@5@20=Request abortedQHttp628B8@>20=85 SSL =5 C40;>ALSSL handshake failedQHttpJ!5@25@ =5>6840==> @07>@20; A>548=5=85%Server closed connection unexpectedlyQHttp:58725AB=K9 <5B>4 02B>@870F88Unknown authentication methodQHttp$58725AB=0O >H81:0 Unknown errorQHttp6#:070= =58725AB=K9 ?@>B>:>;Unknown protocol specifiedQHttp4525@=0O 4;8=0 A>45@68<>3>Wrong content lengthQHttp*"@51C5BAO 02B>@870F8OAuthentication requiredQHttpSocketEngineN5 ?>;CG5= HTTP->B25B >B ?@>:A8-A5@25@0(Did not receive HTTP response from proxyQHttpSocketEngineXH81:0 >1<5=0 40==K<8 A ?@>:A8-A5@25@>< HTTP#Error communicating with HTTP proxyQHttpSocketEnginehH81:0 @071>@0 70?@>A0 02B>@870F88 >B ?@>:A8-A5@25@0/Error parsing authentication request from proxyQHttpSocketEngine^!>548=5=85 A ?@>:A8-A5@25@>< =5>6840==> 70:@KB>#Proxy connection closed prematurelyQHttpSocketEngineJ A>548=5=88 ?@>:A8-A5@25@>< >B:070=>Proxy connection refusedQHttpSocketEngineB@>:A8-A5@25@ 70?@5B8; A>548=5=85Proxy denied connectionQHttpSocketEngineZ@5<O =0 A>548=5=85 A ?@>:A8-A5@25@>< 8AB5:;>!Proxy server connection timed outQHttpSocketEngine.@>:A8-A5@25@ =5 =0945=Proxy server not foundQHttpSocketEngine85 C40;>AL =0G0BL B@0=70:F8NCould not start transaction QIBaseDriver6H81:0 >B:@KB8O 107K 40==KEError opening database QIBaseDriver>52>7<>6=> 7025@H8BL B@0=70:F8NUnable to commit transaction QIBaseDriver<52>7<>6=> >B>720BL B@0=70:F8NUnable to rollback transaction QIBaseDriverd5 C40;>AL ?>;CG8BL @5AC@AK 4;O A>740=8O 2K@065=8OCould not allocate statement QIBaseResultJ5 C40;>AL >?8A0BL 2E>4OI55 2K@065=85"Could not describe input statement QIBaseResult85 C40;>AL >?8A0BL 2K@065=85Could not describe statement QIBaseResultJ5 C40;>AL ?>;CG8BL A;54CNI89 M;5<5=BCould not fetch next item QIBaseResult.5 C40;>AL =09B8 <0AA82Could not find array QIBaseResult>5 C40;>AL =09B8 40==K5 <0AA820Could not get array data QIBaseResultJ5 C40;>AL =09B8 8=D>@<0F8N > 70?@>A5Could not get query info QIBaseResultN5 C40;>AL =09B8 8=D>@<0F8N > 2K@065=88Could not get statement info QIBaseResult@5 C40;>AL ?>43>B>28BL 2K@065=85Could not prepare statement QIBaseResult85 C40;>AL =0G0BL B@0=70:F8NCould not start transaction QIBaseResult852>7<>6=> 70:@KBL 2K@065=85Unable to close statement QIBaseResult>52>7<>6=> 7025@H8BL B@0=70:F8NUnable to commit transaction QIBaseResult.52>7<>6=> A>740BL BLOBUnable to create BLOB QIBaseResult652>7<>6=> 2K?>;=8BL 70?@>AUnable to execute query QIBaseResult.52>7<>6=> >B:@KBL BLOBUnable to open BLOB QIBaseResult252>7<>6=> ?@>G8B0BL BLOBUnable to read BLOB QIBaseResult052>7<>6=> 70?8A0BL BLOBUnable to write BLOB QIBaseResultD5B A2>1>4=>3> <5AB0 =0 CAB@>9AB25No space left on device QIODevice<$09; 8;8 :0B0;>3 =5 ACI5AB2C5BNo such file or directory QIODevice>ABC? 70?@5IQ=Permission denied QIODevice:!;8H:>< <=>3> >B:@KBKE D09;>2Too many open files QIODevice$58725AB=0O >H81:0 Unknown error QIODevice&5B>4 22>40 S60 FEPFEP QInputContext(5B>4 22>40 Mac OS XMac OS X input method QInputContext&5B>4 22>40 S60 FEPS60 FEP input method QInputContext&5B>4 22>40 WindowsWindows input method QInputContext*5B>4 22>40 X-A5@25@0XIM QInputContext*5B>4 22>40 X-A5@25@0XIM input method QInputContext"#:068B5 7=0G5=85:Enter a value: QInputDialogL52>7<>6=> 703@C78BL 181;8>B5:C %1: %2Cannot load library %1: %2QLibraryR52>7<>6=> @07@5H8BL A8<2>; "%1" 2 %2: %3$Cannot resolve symbol "%1" in %2: %3QLibraryL52>7<>6=> 2K3@C78BL 181;8>B5:C %1: %2Cannot unload library %1: %2QLibraryD5 C40;>AL 2K?>;=8BL mmap '%1': %2Could not mmap '%1': %2QLibraryF5 C40;>AL 2K?>;=8BL unmap '%1': %2Could not unmap '%1': %2QLibraryf@>25@>G=0O 8=D>@<0F8O 4;O <>4C;O '%1' =5 A>2?0405B)Plugin verification data mismatch in '%1'QLibrary\$09; '%1' - =5 O2;O5BAO :>@@5:B=K< <>4C;5< Qt.'The file '%1' is not a valid Qt plugin.QLibrary„>4C;L '%1' 8A?>;L7C5B =5A><5AB8<CN 181;8>B5:C Qt. (%2.%3.%4) [%5]=The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]QLibraryØ>4C;L '%1' 8A?>;L7C5B =5A><5AB8<CN 181;8>B5:C Qt. (52>7<>6=> A>2<5AB8BL @5;87=K5 8 >B;04>G=K5 181;8>B5:8.)WThe plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)QLibrary¸>4C;L '%1' 8A?>;L7C5B =5A><5AB8<CN 181;8>B5:C Qt. 68405BAO :;NG "%2", => ?>;CG5= :;NG "%3"OThe plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"QLibraryF8=0<8G5A:0O 181;8>B5:0 =5 =0945=0.!The shared library was not found.QLibrary$58725AB=0O >H81:0 Unknown errorQLibrary&>?8@>20BL&Copy QLineEdit&AB028BL&Paste QLineEdit&&>2B>@8BL 459AB285&Redo QLineEdit$&B<5=8BL 459AB285&Undo QLineEdit&K@570BLCu&t QLineEdit#40;8BLDelete QLineEditK45;8BL 2AQ Select All QLineEdit,%1: 4@5A 8A?>;L7C5BAO%1: Address in use QLocalServer(%1: 5:>@@5:B=>5 8<O%1: Name error QLocalServer&%1: >ABC? 70?@5IQ=%1: Permission denied QLocalServer2%1: 58725AB=0O >H81:0 %2%1: Unknown error %2 QLocalServer*%1: H81:0 A>548=5=8O%1: Connection error QLocalSocket2%1: B:070=> 2 A>548=5=88%1: Connection refused QLocalSocket<%1: 0B03@0<<0 A;8H:>< 1>;LH0O%1: Datagram too large QLocalSocket(%1: 5:>@@5:B=>5 8<O%1: Invalid name QLocalSocket<%1: 0:@KB> C40;5==>9 AB>@>=>9%1: Remote closed QLocalSocket:%1: H81:0 >1@0I5=8O : A>:5BC%1: Socket access error QLocalSocketN%1: @5<O =0 >?5@0F8N A A>:5B>< 8AB5:;>%1: Socket operation timed out QLocalSocketH%1: H81:0 2K45;5=8O @5AC@A>2 A>:5B0%1: Socket resource error QLocalSocketP%1: ?5@0F8O A A>:5B>< =5 ?>445@68205BAO)%1: The socket operation is not supported QLocalSocket,%1: 58725AB=0O >H81:0%1: Unknown error QLocalSocket2%1: 58725AB=0O >H81:0 %2%1: Unknown error %2 QLocalSocket852>7<>6=> =0G0BL B@0=70:F8NUnable to begin transaction QMYSQLDriver>52>7<>6=> 7025@H8BL B@0=70:F8NUnable to commit transaction QMYSQLDriver,52>7<>6=> A>548=8BLAOUnable to connect QMYSQLDriver@52>7<>6=> >B:@KBL 107C 40==KE 'Unable to open database ' QMYSQLDriver<52>7<>6=> >B>720BL B@0=70:F8NUnable to rollback transaction QMYSQLDriverX52>7<>6=> ?@82O70BL @57C;LB8@CNI85 7=0G5=8OUnable to bind outvalues QMYSQLResult:52>7<>6=> ?@82O70BL 7=0G5=85Unable to bind value QMYSQLResultJ52>7<>6=> 2K?>;=8BL A;54CNI89 70?@>AUnable to execute next query QMYSQLResult652>7<>6=> 2K?>;=8BL 70?@>AUnable to execute query QMYSQLResult<52>7<>6=> 2K?>;=8BL 2K@065=85Unable to execute statement QMYSQLResult452>7<>6=> ?>;CG8BL 40==K5Unable to fetch data QMYSQLResult@52>7<>6=> ?>43>B>28BL 2K@065=85Unable to prepare statement QMYSQLResult:52>7<>6=> A1@>A8BL 2K@065=85Unable to reset statement QMYSQLResultP52>7<>6=> A>E@0=8BL A;54CNI89 @57C;LB0BUnable to store next result QMYSQLResult<52>7<>6=> A>E@0=8BL @57C;LB0BUnable to store result QMYSQLResulth52>7<>6=> A>E@0=8BL @57C;LB0BK 2K?>;=5=8O 2K@065=8O!Unable to store statement results QMYSQLResult(5>703;02;5=>) (Untitled)QMdiArea%1 - [%2] %1 - [%2] QMdiSubWindow&0:@KBL&Close QMdiSubWindow&5@5<5AB8BL&Move QMdiSubWindow&>AAB0=>28BL&Restore QMdiSubWindow& 07<5@&Size QMdiSubWindow - [%1]- [%1] QMdiSubWindow0:@KBLClose QMdiSubWindow!?@02:0Help QMdiSubWindow &0A?0E=CBL Ma&ximize QMdiSubWindow 0A?0E=CBLMaximize QMdiSubWindow5=NMenu QMdiSubWindow&!25@=CBL Mi&nimize QMdiSubWindow!25@=CBLMinimize QMdiSubWindow>AAB0=>28BLRestore QMdiSubWindow>AAB0=>28BL Restore Down QMdiSubWindow(!25@=CBL 2 703>;>2>:Shade QMdiSubWindow$AB020BLAO &A25@EC Stay on &Top QMdiSubWindow2>AAB0=>28BL 87 703>;>2:0Unshade QMdiSubWindow0:@KBLCloseQMenuK?>;=8BLExecuteQMenuB:@KBLOpenQMenu59AB28OActionsQMenuBarz<h3> Qt</h3><p>0==0O ?@>3@0<<0 8A?>;L7C5B Qt 25@A88 %1.</p>8

About Qt

This program uses Qt version %1.

 QMessageBox ´<p>Qt - MB> 8=AB@C<5=B0@89 4;O @07@01>B:8 :@>AA?;0BD>@<5==KE ?@8;>65=89 =0 C++.</p><p>Qt ?@54>AB02;O5B A>2<5AB8<>ABL =0 C@>2=5 8AE>4=KE B5:AB>2 <564C MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux 8 2A5<8 ?>?C;O@=K<8 :><<5@G5A:8<8 20@80=B0<8 Unix. "0:65 Qt 4>ABC?=0 4;O 2AB@08205<KE CAB@>9AB2 2 2845 Qt 4;O Embedded Linux 8 Qt 4;O Windows CE.</p><p>Qt 4>ABC?=0 ?>4 B@5<O @07;8G=K<8 ;8F5=78O<8, @07@01>B0==K<8 4;O C4>2;5B2>@5=8O @07;8G=KE B@51>20=89.</p><p>Qt ?>4 =0H59 :><<5@G5A:>9 ;8F5=7859 ?@54=07=0G5=0 4;O @0728B8O ?@>?@85B0@=>3>/:><<5@G5A:>3> ?@>3@0<<=>3> >15A?5G5=8O, :>340 K =5 65;05B5 ?@54>AB02;OBL 8AE>4=K5 B5:ABK B@5BL8< AB>@>=0<, 8;8 2 A;CG05 =52>7<>6=>AB8 ?@8=OB8O CA;>289 ;8F5=789 GNU LGPL 25@A88 2.1 8;8 GNU GPL 25@A88 3.0.</p><p>Qt ?>4 ;8F5=7859 GNU LGPL 25@A88 2.1 ?@54=07=0G5=0 4;O @07@01>B:8 ?@>3@0<<=>3> >15A?5G5=8O A >B:@KBK<8 8AE>4=K<8 B5:AB0<8 8;8 :><<5@G5A:>3> ?@>3@0<<=>3> >15A?5G5=8O ?@8 A>1;N45=88 CA;>289 ;8F5=788 GNU LGPL 25@A88 2.1.</p><p>Qt ?>4 ;8F5=7859 GNU General Public License 25@A88 3.0 ?@54=07=0G5=0 4;O @07@01>B:8 ?@>3@0<<=KE ?@8;>65=89 2 B5E A;CG0OE, :>340 K E>B5;8 1K 8A?>;L7>20BL B0:85 ?@8;>65=8O 2 A>G5B0=88 A ?@>3@0<<=K< >15A?5G5=85< =0 CA;>28OE ;8F5=788 GNU GPL A 25@A88 3.0 8;8 5A;8 K 3>B>2K A>1;N40BL CA;>28O ;8F5=788 GNU GPL 25@A88 3.0.</p><p>1@0B8B5AL : <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> 4;O >17>@0 ;8F5=789 Qt.</p><p>Copyright (C) 2010 >@?>@0F8O Nokia 8/8;8 5Q 4>G5@=85 ?>4@0745;5=8O.</p><p>Qt - ?@>4C:B :><?0=88 Nokia. 1@0B8B5AL : <a href="http://qt.nokia.com/">qt.nokia.com</a> 4;O ?>;CG5=8O 4>?>;=8B5;L=>9 8=D>@<0F88.</p>

Qt is a C++ toolkit for cross-platform application development.

Qt provides single-source portability across MS Windows, Mac OS X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.

Qt is available under three different licensing options designed to accommodate the needs of our various users.

Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.

Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.

Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.

Please see qt.nokia.com/products/licensing for an overview of Qt licensing.

Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).

Qt is a Nokia product. See qt.nokia.com for more information.

 QMessageBox QtAbout Qt QMessageBox!?@02:0Help QMessageBox*!:@KBL ?>4@>1=>AB8...Hide Details... QMessageBox0:@KBLOK QMessageBox.>:070BL ?>4@>1=>AB8...Show Details... QMessageBox$K1>@ @568<0 22>40 Select IMQMultiInputContextR5@5:;NG0B5;L @568<0 <=>65AB25==>3> 22>40Multiple input method switcherQMultiInputContextPluginº5@5:;NG0B5;L @568<0 <=>65AB25==>3> 22>40, 8A?>;L7C5<K9 2 :>=B5:AB=>< <5=N B5:AB>2KE 28465B>2MMultiple input method switcher that uses the context menu of the text widgetsQMultiInputContextPluginN@C3>9 A>:5B C65 ?@>A;CH8205B MB>B ?>@B4Another socket is already listening on the same portQNativeSocketEngine|>?KB:0 8A?>;L7>20BL IPv6 =0 ?;0BD>@<5, =5 ?>445@6820NI59 IPv6=Attempt to use IPv6 socket on a platform with no IPv6 supportQNativeSocketEngine*B:070=> 2 A>548=5=88Connection refusedQNativeSocketEngine6@5<O =0 A>548=5=85 8AB5:;>Connection timed outQNativeSocketEngineN0B03@0<<0 A;8H:>< 1>;LH0O 4;O >B?@02:8Datagram was too large to sendQNativeSocketEngine#75; =54>ABC?5=Host unreachableQNativeSocketEngine<5:>@@5:B=K9 45A:@8?B>@ A>:5B0Invalid socket descriptorQNativeSocketEngineH81:0 A5B8 Network errorQNativeSocketEngineB@5<O =0 A5B52CN >?5@0F8N 8AB5:;>Network operation timed outQNativeSocketEngine!5BL =54>ABC?=0Network unreachableQNativeSocketEngine*?5@0F8O A =5-A>:5B><Operation on non-socketQNativeSocketEngine*54>AB0B>G=> @5AC@A>2Out of resourcesQNativeSocketEngine>ABC? 70?@5IQ=Permission deniedQNativeSocketEngine4@>B>:>; =5 ?>445@68205BAOProtocol type not supportedQNativeSocketEngine 4@5A =54>ABC?5=The address is not availableQNativeSocketEngine4@5A 70I8IQ=The address is protectedQNativeSocketEngine,4@5A C65 8A?>;L7C5BAO#The bound address is already in useQNativeSocketEnginef5:>@@5:B=K9 B8? ?@>:A8-A5@25@0 4;O 40==>9 >?5@0F88,The proxy type is invalid for this operationQNativeSocketEngine@#40;Q==K9 C75; 70:@K; A>548=5=85%The remote host closed the connectionQNativeSocketEnginef52>7<>6=> 8=8F80;878@>20BL H8@>:>25I0B5;L=K9 A>:5B%Unable to initialize broadcast socketQNativeSocketEngineX52>7<>6=> 8=8F80;878@>20BL =5-1;>G=K9 A>:5B(Unable to initialize non-blocking socketQNativeSocketEngine:52>7<>6=> ?>;CG8BL A>>1I5=85Unable to receive a messageQNativeSocketEngine<52>7<>6=> >B?@028BL A>>1I5=85Unable to send a messageQNativeSocketEngine&52>7<>6=> 70?8A0BLUnable to writeQNativeSocketEngine$58725AB=0O >H81:0 Unknown errorQNativeSocketEngineH?5@0F8O A A>:5B>< =5 ?>445@68205BAOUnsupported socket operationQNativeSocketEngine$H81:0 >B:@KB8O %1Error opening %1QNetworkAccessCacheBackend,H81:0 70?8A8 2 %1: %2Write error writing to %1: %2QNetworkAccessDebugPipeBackendZ52>7<>6=> >B:@KBL %1: #:070= ?CBL : :0B0;>3C#Cannot open %1: Path is a directoryQNetworkAccessFileBackend,H81:0 >B:@KB8O %1: %2Error opening %1: %2QNetworkAccessFileBackend.H81:0 GB5=8O 87 %1: %2Read error reading from %1: %2QNetworkAccessFileBackend`0?@>A =0 >B:@KB85 D09;0 2=5 D09;>2>9 A8AB5<K %1%Request for opening non-local file %1QNetworkAccessFileBackend,H81:0 70?8A8 2 %1: %2Write error writing to %1: %2QNetworkAccessFileBackendZ52>7<>6=> >B:@KBL %1: #:070= ?CBL : :0B0;>3CCannot open %1: is a directoryQNetworkAccessFtpBackendBH81:0 2 ?@>F5AA5 703@C7:8 %1: %2Error while downloading %1: %2QNetworkAccessFtpBackendBH81:0 2 ?@>F5AA5 >B3@C7:8 %1: %2Error while uploading %1: %2QNetworkAccessFtpBackendb!>548=5=85 A %1 =5 C40;>AL: B@51C5BAO 02B>@870F8O0Logging in to %1 failed: authentication requiredQNetworkAccessFtpBackendD>4E>4OI89 ?@>:A8-A5@25@ =5 =0945=No suitable proxy foundQNetworkAccessFtpBackendD>4E>4OI89 ?@>:A8-A5@25@ =5 =0945=No suitable proxy foundQNetworkAccessHttpBackendLH81:0 703@C7:8 %1 - >B25B A5@25@0: %2)Error downloading %1 - server replied: %2 QNetworkReply258725AB=K9 ?@>B>:>; "%1"Protocol "%1" is unknown QNetworkReply"?5@0F8O >B<5=5=0Operation canceledQNetworkReplyImpl852>7<>6=> =0G0BL B@0=70:F8NUnable to begin transaction QOCIDriver>52>7<>6=> 7025@H8BL B@0=70:F8NUnable to commit transaction QOCIDriver652>7<>6=> 8=8F80;878@>20BLUnable to initialize QOCIDriver252>7<>6=> 02B>@87>20BLAOUnable to logon QOCIDriver<52>7<>6=> >B>720BL B@0=70:F8NUnable to rollback transaction QOCIDriver852>7<>6=> A>740BL 2K@065=85Unable to alloc statement QOCIResultj52>7<>6=> ?@82O70BL AB>;15F 4;O ?0:5B=>3> 2K?>;=5=8O'Unable to bind column for batch execute QOCIResultX52>7<>6=> ?@82O70BL @57C;LB8@CNI85 7=0G5=8OUnable to bind value QOCIResultN52>7<>6=> 2K?>;=8BL ?0:5B=>5 2K@065=85!Unable to execute batch statement QOCIResult<52>7<>6=> 2K?>;=8BL 2K@065=85Unable to execute statement QOCIResultF52>7<>6=> >?@545;8BL B8? 2K@065=8OUnable to get statement type QOCIResultJ52>7<>6=> ?5@59B8 : A;54CNI59 AB@>:5Unable to goto next QOCIResult@52>7<>6=> ?>43>B>28BL 2K@065=85Unable to prepare statement QOCIResult>52>7<>6=> 7025@H8BL B@0=70:F8NUnable to commit transaction QODBCDriver,52>7<>6=> A>548=8BLAOUnable to connect QODBCDriverŠ52>7<>6=> A>548=8BLAO - @0925@ =5 ?>445@68205B B@51C5<K9 DC=:F8>=0;EUnable to connect - Driver doesn't support all functionality required QODBCDriver\52>7<>6=> >B:;NG8BL 02B>7025@H5=85 B@0=70:F89Unable to disable autocommit QODBCDriverZ52>7<>6=> 2:;NG8BL 02B>7025@H5=85 B@0=70:F89Unable to enable autocommit QODBCDriver<52>7<>6=> >B>720BL B@0=70:F8NUnable to rollback transaction QODBCDriverèQODBCResult::reset: 52>7<>6=> CAB0=>28BL 'SQL_CURSOR_STATIC' 0B@81CB>< 2K@065=85. @>25@LB5 =0AB@>9:8 4@0925@0 ODBCyQODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResult:52>7<>6=> ?@82O70BL 7=0G5=85Unable to bind variable QODBCResult<52>7<>6=> 2K?>;=8BL 2K@065=85Unable to execute statement QODBCResult452>7<>6=> ?>;CG8BL 40==K5Unable to fetch QODBCResultB52>7<>6=> ?>;CG8BL ?5@2CN AB@>:CUnable to fetch first QODBCResultH52>7<>6=> ?>;CG8BL ?>A;54=NN AB@>:CUnable to fetch last QODBCResultH52>7<>6=> ?>;CG8BL A;54CNICN AB@>:CUnable to fetch next QODBCResultJ52>7<>6=> ?>;CG8BL ?@54K4CICN AB@>:CUnable to fetch previous QODBCResult@52>7<>6=> ?>43>B>28BL 2K@065=85Unable to prepare statement QODBCResult(5:>@@5:B=K9 URI: %1Invalid URI: %1QObject*5:>@@5:B=>5 8<O C7;0Invalid hostnameQObject$<O C7;0 =5 7040=>No host name givenQObjectB?5@0F8O =5 ?>445@68205BAO 4;O %1Operation not supported on %1QObjectf#40;Q==K9 C75; =5>6840==> ?@5@20; A>548=5=85 4;O %13Remote host closed the connection prematurely on %1QObject.H8:0 A>:5B0 4;O %1: %2Socket error on %1: %2QObject<ONameQPPDOptionsModel=0G5=85ValueQPPDOptionsModel85 C40;>AL =0G0BL B@0=70:F8NCould not begin transaction QPSQLDriver>5 C40;>AL 7025@H8BL B@0=70:F8NCould not commit transaction QPSQLDriver<5 C40;>AL >B>720BL B@0=70:F8NCould not rollback transaction QPSQLDriver,52>7<>6=> A>548=8BLAOUnable to connect QPSQLDriver,52>7<>6=> ?>4?8A0BLAOUnable to subscribe QPSQLDriver*52>7<>6=> >B?8A0BLAOUnable to unsubscribe QPSQLDriver252>7<>6=> A>740BL 70?@>AUnable to create query QPSQLResult@52>7<>6=> ?>43>B>28BL 2K@065=85Unable to prepare statement QPSQLResult!0=B8<5B@K (cm)Centimeters (cm)QPageSetupWidget $>@<0FormQPageSetupWidgetKA>B0:Height:QPageSetupWidgetN9<K (in) Inches (in)QPageSetupWidget;L1><=0O LandscapeQPageSetupWidget>;OMarginsQPageSetupWidget8;;8<5B@K (mm)Millimeters (mm)QPageSetupWidget@85=B0F8O OrientationQPageSetupWidget  07<5@ AB@0=8FK: Page size:QPageSetupWidget C<030PaperQPageSetupWidget AB>G=8: 1C<038: Paper source:QPageSetupWidget">G:8 (pt) Points (pt)QPageSetupWidget=86=0OPortraitQPageSetupWidget,5@52Q@=CB0O 0;L1><=0OReverse landscapeQPageSetupWidget(5@52Q@=CB0O :=86=0OReverse portraitQPageSetupWidget(8@8=0:Width:QPageSetupWidget=86=55 ?>;5 bottom marginQPageSetupWidget;52>5 ?>;5 left marginQPageSetupWidget?@02>5 ?>;5 right marginQPageSetupWidget25@E=55 ?>;5 top marginQPageSetupWidget.>4C;L =5 1K; 703@C65=.The plugin was not loaded. QPluginLoader$58725AB=0O >H81:0 Unknown error QPluginLoaderN%1 C65 ACI5AB2C5B. %>B8B5 70<5=8BL 53>?/%1 already exists. Do you want to overwrite it? QPrintDialogX%1 - MB> :0B0;>3. K15@8B5 4@C3>5 8<O D09;0.7%1 is a directory. Please choose a different file name. QPrintDialog&0@0<5B@K << &Options << QPrintDialog&0@0<5B@K >> &Options >> QPrintDialog&5G0BL&Print QPrintDialog2<qt>%>B8B5 70<5=8BL?</qt>%Do you want to overwrite it? QPrintDialogA0A0 QPrintDialog$A0 (841 x 1189 <<)A0 (841 x 1189 mm) QPrintDialogA1A1 QPrintDialog"A1 (594 x 841 <<)A1 (594 x 841 mm) QPrintDialogA2A2 QPrintDialog"A2 (420 x 594 <<)A2 (420 x 594 mm) QPrintDialogA3A3 QPrintDialog"A3 (297 x 420 <<)A3 (297 x 420 mm) QPrintDialogA4A4 QPrintDialogJA4 (210 x 297 <<, 8.26 x 11.7 4N9<>2)%A4 (210 x 297 mm, 8.26 x 11.7 inches) QPrintDialogA5A5 QPrintDialog"A5 (148 x 210 <<)A5 (148 x 210 mm) QPrintDialogA6A6 QPrintDialog"A6 (105 x 148 <<)A6 (105 x 148 mm) QPrintDialogA7A7 QPrintDialog A7 (74 x 105 <<)A7 (74 x 105 mm) QPrintDialogA8A8 QPrintDialogA8 (52 x 74 <<)A8 (52 x 74 mm) QPrintDialogA9A9 QPrintDialogA9 (37 x 52 <<)A9 (37 x 52 mm) QPrintDialogA524>=8<K: %1 Aliases: %1 QPrintDialogB0B0 QPrintDialog&B0 (1000 x 1414 <<)B0 (1000 x 1414 mm) QPrintDialogB1B1 QPrintDialog$B1 (707 x 1000 <<)B1 (707 x 1000 mm) QPrintDialogB10B10 QPrintDialog B10 (31 x 44 <<)B10 (31 x 44 mm) QPrintDialogB2B2 QPrintDialog"B2 (500 x 707 <<)B2 (500 x 707 mm) QPrintDialogB3B3 QPrintDialog"B3 (353 x 500 <<)B3 (353 x 500 mm) QPrintDialogB4B4 QPrintDialog"B4 (250 x 353 <<)B4 (250 x 353 mm) QPrintDialogB5B5 QPrintDialogJB5 (176 x 250 <<, 6.93 x 9.84 4N9<>2)%B5 (176 x 250 mm, 6.93 x 9.84 inches) QPrintDialogB6B6 QPrintDialog"B6 (125 x 176 <<)B6 (125 x 176 mm) QPrintDialogB7B7 QPrintDialog B7 (88 x 125 <<)B7 (88 x 125 mm) QPrintDialogB8B8 QPrintDialogB8 (62 x 88 <<)B8 (62 x 88 mm) QPrintDialogB9B9 QPrintDialogB9 (44 x 62 <<)B9 (44 x 62 mm) QPrintDialogC5EC5E QPrintDialog$C5E (163 x 229 <<)C5E (163 x 229 mm) QPrintDialog >;L7>20B5;LA:89Custom QPrintDialogDLEDLE QPrintDialog$DLE (110 x 220 <<)DLE (110 x 220 mm) QPrintDialogExecutive Executive QPrintDialogRExecutive (191 x 254 <<, 7.5 x 10 4N9<>2))Executive (7.5 x 10 inches, 191 x 254 mm) QPrintDialogh%1 =54>ABC?5= 4;O 70?8A8. K15@8B5 4@C3>5 8<O D09;0.=File %1 is not writable. Please choose a different file name. QPrintDialog$09; ACI5AB2C5B File exists QPrintDialog FolioFolio QPrintDialog(Folio (210 x 330 <<)Folio (210 x 330 mm) QPrintDialog LedgerLedger QPrintDialog*Ledger (432 x 279 <<)Ledger (432 x 279 mm) QPrintDialog LegalLegal QPrintDialogJLegal (216 x 356 <<, 8.5 x 14 4N9<>2)%Legal (8.5 x 14 inches, 216 x 356 mm) QPrintDialog LetterLetter QPrintDialogLLetter (216 x 279 <<, 8.5 x 11 4N9<>2)&Letter (8.5 x 11 inches, 216 x 279 mm) QPrintDialog>:0;L=K9 D09; Local file QPrintDialog0:@KBLOK QPrintDialog 5G0BLPrint QPrintDialog"5G0BL 2 D09; ...Print To File ... QPrintDialog5G0B0BL 2A5 Print all QPrintDialog"5G0B0BL 480?07>= Print range QPrintDialog&K45;5==K9 D@03<5=BPrint selection QPrintDialog&5G0BL 2 D09; (PDF)Print to File (PDF) QPrintDialog45G0BL 2 D09; (Postscript)Print to File (Postscript) QPrintDialogTabloidTabloid QPrintDialog,Tabloid (279 x 432 <<)Tabloid (279 x 432 mm) QPrintDialogb=0G5=85 '>B' =5 <>65B 1KBL 1>;LH5 7=0G5=8O '4>'.7The 'From' value cannot be greater than the 'To' value. QPrintDialog,US Common #10 EnvelopeUS Common #10 Envelope QPrintDialog6>=25@B US #10 (105x241 <<)%US Common #10 Envelope (105 x 241 mm) QPrintDialog0?8AL %1 D09;0 Write %1 file QPrintDialog$A>548=5=> ;>:0;L=>locally connected QPrintDialog=58725AB=>unknown QPrintDialog%1%%1%QPrintPreviewDialog0:@KBLCloseQPrintPreviewDialog-:A?>@B 2 PDF Export to PDFQPrintPreviewDialog(-:A?>@B 2 PostscriptExport to PostScriptQPrintPreviewDialog5@20O AB@0=8F0 First pageQPrintPreviewDialog0 2AN AB@0=8FCFit pageQPrintPreviewDialog> H8@8=5 Fit widthQPrintPreviewDialog;L1><=0O LandscapeQPrintPreviewDialog$>A;54=OO AB@0=8F0 Last pageQPrintPreviewDialog$!;54CNI0O AB@0=8F0 Next pageQPrintPreviewDialog$0@0<5B@K AB@0=8FK Page SetupQPrintPreviewDialog$0@0<5B@K AB@0=8FK Page setupQPrintPreviewDialog=86=0OPortraitQPrintPreviewDialog&@54K4CI0O AB@0=8F0 Previous pageQPrintPreviewDialog 5G0BLPrintQPrintPreviewDialog@>A<>B@ ?5G0B8 Print PreviewQPrintPreviewDialog6>:070BL B8BC;L=K5 AB@0=8FKShow facing pagesQPrintPreviewDialog6>:070BL >17>@ 2A5E AB@0=8FShow overview of all pagesQPrintPreviewDialog,>:070BL >4=C AB@0=8FCShow single pageQPrintPreviewDialog#25;8G8BLZoom inQPrintPreviewDialog#<5=LH8BLZoom outQPrintPreviewDialog>?>;=8B5;L=>AdvancedQPrintPropertiesWidget $>@<0FormQPrintPropertiesWidget!B@0=8F0PageQPrintPropertiesWidget( 07>1@0BL ?@> :>?8O<CollateQPrintSettingsOutput&25BColorQPrintSettingsOutput 568< F25B0 Color ModeQPrintSettingsOutput >?88CopiesQPrintSettingsOutput">;8G5AB2> :>?89:Copies:QPrintSettingsOutput&2CAB>@>==OO ?5G0BLDuplex PrintingQPrintSettingsOutput $>@<0FormQPrintSettingsOutputBB5=:8 A5@>3> GrayscaleQPrintSettingsOutput$> 4;8==>9 AB>@>=5 Long sideQPrintSettingsOutput5BNoneQPrintSettingsOutput0@0<5B@KOptionsQPrintSettingsOutput 0AB@>9:8 2K2>40Output SettingsQPrintSettingsOutput!B@0=8FK >B Pages fromQPrintSettingsOutputA5 Print allQPrintSettingsOutput80?07>= ?5G0B8 Print rangeQPrintSettingsOutput 1@0B=K9 ?>@O4>:ReverseQPrintSettingsOutput&K45;5==K9 D@03<5=B SelectionQPrintSettingsOutput&> :>@>B:>9 AB>@>=5 Short sideQPrintSettingsOutput4>toQPrintSettingsOutput&0720=85:&Name: QPrintWidget...... QPrintWidget $>@<0Form QPrintWidget 0A?>;>65=85: Location: QPrintWidgetK2>4 2 &D09;: Output &file: QPrintWidget!&2>9AB20 P&roperties QPrintWidget@>A<>B@Preview QPrintWidget@8=B5@Printer QPrintWidget"8?:Type: QPrintWidgetf5 C40;>AL >B:@KBL ?5@5=0?@02;5=85 22>40 4;O GB5=8O,Could not open input redirection for readingQProcessh5 C40;>AL >B:@KBL ?5@5=0?@02;5=85 2K2>40 4;O 70?8A8-Could not open output redirection for writingQProcessFH81:0 ?>;CG5=8O 40==KE >B ?@>F5AA0Error reading from processQProcess>H81:0 >B?@02:8 40==KE ?@>F5AACError writing to processQProcess(@>3@0<<0 =5 C:070=0No program definedQProcess8@>F5AA 7025@H8;AO A >H81:>9Process crashedQProcess@5 C40;>AL 70?CAB8BL ?@>F5AA: %1Process failed to start: %1QProcessJ@5<O =0 >?5@0F8N A ?@>F5AA>< 8AB5:;>Process operation timed outQProcessRH81:0 2K45;5=8O @5AC@A>2 (A1>9 fork): %1!Resource error (fork failure): %1QProcess B<5=0CancelQProgressDialogB:@KBLOpen QPushButtonB<5B8BLCheck QRadioButtonL=5?@028;L=K9 A8=B0:A8A :;0AA0 A8<2>;>2bad char class syntaxQRegExpL=5?@028;L=K9 ?@5420@8B5;L=K9 A8=B0:A8Abad lookahead syntaxQRegExpB=5?@028;L=K9 A8=B0:A8A ?>2B>@5=8Obad repetition syntaxQRegExpL8A?>;L7>20=85 >B:;NGQ==KE 2>7<>6=>AB59disabled feature usedQRegExp,=5:>@@5:B=0O :0B53>@8Oinvalid categoryQRegExp*=5:>@@5:B=K9 8=B5@20;invalid intervalQRegExpD=5:>@@5:B=>5 2>AL<5@8G=>5 7=0G5=85invalid octal valueQRegExpB4>AB83=CB> 2=CB@5==55 >3@0=8G5=85met internal limitQRegExp:>BACBAB2C5B ;52K9 @0745;8B5;Lmissing left delimQRegExp$>H81:8 >BACBAB2CNBno error occurredQRegExp"=5>6840==K9 :>=5Funexpected endQRegExp6H81:0 >B:@KB8O 107K 40==KEError opening databaseQSQLite2Driver852>7<>6=> =0G0BL B@0=70:F8NUnable to begin transactionQSQLite2Driver>52>7<>6=> 7025@H8BL B@0=70:F8NUnable to commit transactionQSQLite2Driver<52>7<>6=> >B>720BL B@0=70:F8NUnable to rollback transactionQSQLite2Driver<52>7<>6=> 2K?>;=8BL 2K@065=85Unable to execute statementQSQLite2Result<52>7<>6=> ?>;CG8BL @57C;LB0BKUnable to fetch resultsQSQLite2Result6H81:0 70:@KB8O 107K 40==KEError closing database QSQLiteDriver6H81:0 >B:@KB8O 107K 40==KEError opening database QSQLiteDriver852>7<>6=> =0G0BL B@0=70:F8NUnable to begin transaction QSQLiteDriver>52>7<>6=> 7025@H8BL B@0=70:F8NUnable to commit transaction QSQLiteDriver<52>7<>6=> >B>720BL B@0=70:F8NUnable to rollback transaction QSQLiteDriver$BACBAB2C5B 70?@>ANo query QSQLiteResultD>;8G5AB2> ?0@0<5B@>2 =5 A>2?0405BParameter count mismatch QSQLiteResult:52>7<>6=> ?@82O70BL ?0@0<5B@Unable to bind parameters QSQLiteResult<52>7<>6=> 2K?>;=8BL 2K@065=85Unable to execute statement QSQLiteResult452>7<>6=> ?>;CG8BL AB@>:CUnable to fetch row QSQLiteResult:52>7<>6=> A1@>A8BL 2K@065=85Unable to reset statement QSQLiteResult#A;>285 ConditionQScriptBreakpointsModel!>2?045=89 Hit-countQScriptBreakpointsModelIDIDQScriptBreakpointsModel@>?CI5=> Ignore-countQScriptBreakpointsModel 0A?>;>65=85LocationQScriptBreakpointsModel4=>:@0B=> Single-shotQScriptBreakpointsModel#40;8BLDeleteQScriptBreakpointsWidget >20ONewQScriptBreakpointsWidget(&09B8 2 AF5=0@88...&Find in Script...QScriptDebugger G8AB8BL :>=A>;L Clear ConsoleQScriptDebugger2G8AB8BL >B;04>G=K9 2K2>4Clear Debug OutputQScriptDebugger,G8AB8BL 6C@=0; >H81>:Clear Error LogQScriptDebugger@>4>;68BLContinueQScriptDebugger Ctrl+FCtrl+FQScriptDebuggerCtrl+F10Ctrl+F10QScriptDebugger Ctrl+GCtrl+GQScriptDebuggerB;04:0DebugQScriptDebuggerF10F10QScriptDebuggerF11F11QScriptDebuggerF3F3QScriptDebuggerF5F5QScriptDebuggerF9F9QScriptDebugger 09B8 &A;54CNI55 Find &NextQScriptDebugger"09B8 &?@54K4CI55Find &PreviousQScriptDebugger 5@59B8 : AB@>:5 Go to LineQScriptDebugger@5@20BL InterruptQScriptDebugger!B@>:0:Line:QScriptDebugger(K?>;=8BL 4> :C@A>@0 Run to CursorQScriptDebugger8K?>;=8BL 4> =>2>3> AF5=0@8ORun to New ScriptQScriptDebuggerShift+F11 Shift+F11QScriptDebuggerShift+F3Shift+F3QScriptDebuggerShift+F5Shift+F5QScriptDebugger>9B8 2 Step IntoQScriptDebugger K9B8 87 DC=:F88Step OutQScriptDebugger5@59B8 G5@57 Step OverQScriptDebugger@#AB0=>28BL/C1@0BL B>G:C >AB0=>20Toggle BreakpointQScriptDebugger”<img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;>8A: A =0G0;0J Search wrappedQScriptDebuggerCodeFinderWidget"#G8BK20BL @538AB@Case SensitiveQScriptDebuggerCodeFinderWidget0:@KBLCloseQScriptDebuggerCodeFinderWidget!;54CNI89NextQScriptDebuggerCodeFinderWidget@54K4CI89PreviousQScriptDebuggerCodeFinderWidget!;>20 F5;8:>< Whole wordsQScriptDebuggerCodeFinderWidget0720=85NameQScriptDebuggerLocalsModel=0G5=85ValueQScriptDebuggerLocalsModel#@>25=LLevelQScriptDebuggerStackModel 07<5I5=85LocationQScriptDebuggerStackModel0720=85NameQScriptDebuggerStackModel.#A;>285 B>G:8 >AB0=>20:Breakpoint Condition: QScriptEdit*#1@0BL B>G:C >AB0=>20Disable Breakpoint QScriptEdit2#AB0=>28BL B>G:C >AB0=>20Enable Breakpoint QScriptEdit@#AB0=>28BL/C1@0BL B>G:C >AB0=>20Toggle Breakpoint QScriptEdit">G:8 >AB0=>20 BreakpointsQScriptEngineDebugger>=A>;LConsoleQScriptEngineDebugger B;04>G=K9 2K2>4 Debug OutputQScriptEngineDebuggerC@=0; >H81>: Error LogQScriptEngineDebugger(03@C65==K5 AF5=0@88Loaded ScriptsQScriptEngineDebugger(>:0;L=K5 ?5@5<5==K5LocalsQScriptEngineDebugger*B;04G8: AF5=0@852 QtQt Script DebuggerQScriptEngineDebugger >8A:SearchQScriptEngineDebugger!B5:StackQScriptEngineDebugger84ViewQScriptEngineDebugger0:@KBLCloseQScriptNewBreakpointWidget=87Bottom QScrollBar ;52>9 3@0=8F5 Left edge QScrollBar0 AB@>:C 2=87 Line down QScrollBar0 AB@>:C 225@ELine up QScrollBar 0 AB@0=8FC 2=87 Page down QScrollBar"0 AB@0=8FC 2;52> Page left QScrollBar$0 AB@0=8FC 2?@02> Page right QScrollBar"0 AB@0=8FC 225@EPage up QScrollBar>;>65=85Position QScrollBar  ?@02>9 3@0=8F5 Right edge QScrollBar@>:@CB8BL 2=87 Scroll down QScrollBar@>:@CB8BL AN40 Scroll here QScrollBar @>:@CB8BL 2;52> Scroll left QScrollBar"@>:@CB8BL 2?@02> Scroll right QScrollBar @>:@CB8BL 225@E Scroll up QScrollBar 25@ETop QScrollBarR%1: A?5F8D8G5A:89 :;NG UNIX =5 ACI5AB2C5B%1: UNIX key file doesn't exist QSharedMemory$%1: C65 ACI5AB2C5B%1: already exists QSharedMemory,%1: @07<5@ <5=LH5 =C;O%1: create size is less then 0 QSharedMemory"%1: =5 ACI5AB2C5B%1: doesn't exist QSharedMemory"%1: =5 ACI5AB2C5B%1: doesn't exists QSharedMemory%1: >H81:0 ftok%1: ftok failed QSharedMemory.%1: =5:>@@5:B=K9 @07<5@%1: invalid size QSharedMemory*%1: =5:>@@5:B=K9 :;NG %1: key error QSharedMemory%1: ?CAB>9 :;NG%1: key is empty QSharedMemory$%1: =5 ?@8;>65==K9%1: not attached QSharedMemory2%1: =54>AB0B>G=> @5AC@A>2%1: out of resources QSharedMemory&%1: 4>ABC? 70?@5IQ=%1: permission denied QSharedMemory>%1: =5 C40;>AL 70?@>A8BL @07<5@%1: size query failed QSharedMemoryV%1: A8AB5<>9 =0;>65=K >3@0=8G5=8O =0 @07<5@$%1: system-imposed size restrictions QSharedMemory8%1: =52>7<>6=> 701;>:8@>20BL%1: unable to lock QSharedMemory6%1: =52>7<>6=> A>740BL :;NG%1: unable to make key QSharedMemoryX%1: =52>7<>6=> CAB0=>28BL :;NG =0 1;>:8@>2:C%1: unable to set key on lock QSharedMemory:%1: =52>7<>6=> @071;>:8@>20BL%1: unable to unlock QSharedMemory2%1: =58725AB=0O >H81:0 %2%1: unknown error %2 QSharedMemory++ QShortcut(>1028BL 2 871@0==>5 Add Favorite QShortcut"0AB@>9:0 O@:>AB8Adjust Brightness QShortcutAltAlt QShortcut5@5<>B:0 Audio Rewind QShortcut#HQ;Away QShortcut 0704Back QShortcutBackspace Backspace QShortcutBacktabBacktab QShortcut#A8;5=85 10A>2 Bass Boost QShortcut0AK =865 Bass Down QShortcut0AK 2KH5Bass Up QShortcut0B0@5OBattery QShortcutBluetooth Bluetooth QShortcut =830Book QShortcut1>7@520B5;LBrowser QShortcutCDCD QShortcut0;L:C;OB>@ Calculator QShortcut>72>=8BLCall QShortcut5@=89 @538AB@ Caps Lock QShortcutCapsLockCapsLock QShortcutG8AB8BLClear QShortcut0:@KBLClose QShortcut!>>1I5AB2> Community QShortcut>?8@>20BLCopy QShortcutCtrlCtrl QShortcutK@570BLCut QShortcutDOSDOS QShortcutDelDel QShortcut#40;8BLDelete QShortcut>:C<5=BK Documents QShortcut=87Down QShortcut72;5G5=85Eject QShortcutEndEnd QShortcut EnterEnter QShortcutEscEsc QShortcut EscapeEscape QShortcutF%1F%1 QShortcut71@0==>5 Favorites QShortcut$8=0=AKFinance QShortcut ?5@Q4Forward QShortcut3@0Game QShortcut5@59B8Go QShortcut>;>68BL B@C1:CHangup QShortcut!?@02:0Help QShortcutAB>@8OHistory QShortcutHomeHome QShortcut><0H=89 >D8A Home Office QShortcut"><0H=OO AB@0=8F0 Home Page QShortcut>@OG85 AAK;:8 Hot Links QShortcutInsIns QShortcutAB028BLInsert QShortcut8>4A25B:0 :;0280BC@K 1;54=55Keyboard Brightness Down QShortcut2>4A25B:0 :;0280BC@K O@G5Keyboard Brightness Up QShortcut::;/2K:; ?>4A25B:C :;0280BC@KKeyboard Light On/Off QShortcut";0280BC@=>5 <5=N Keyboard Menu QShortcut0?CAB8BL (0) Launch (0) QShortcut0?CAB8BL (1) Launch (1) QShortcut0?CAB8BL (2) Launch (2) QShortcut0?CAB8BL (3) Launch (3) QShortcut0?CAB8BL (4) Launch (4) QShortcut0?CAB8BL (5) Launch (5) QShortcut0?CAB8BL (6) Launch (6) QShortcut0?CAB8BL (7) Launch (7) QShortcut0?CAB8BL (8) Launch (8) QShortcut0?CAB8BL (9) Launch (9) QShortcut0?CAB8BL (A) Launch (A) QShortcut0?CAB8BL (B) Launch (B) QShortcut0?CAB8BL (C) Launch (C) QShortcut0?CAB8BL (D) Launch (D) QShortcut0?CAB8BL (E) Launch (E) QShortcut0?CAB8BL (F) Launch (F) QShortcut >GB0 Launch Mail QShortcut@>83@K20B5;L Launch Media QShortcut ;52>Left QShortcut K9B8 87 A8AB5<KLogoff QShortcut 5@5A;0BL ?8AL<> Mail Forward QShortcut  K=>:Market QShortcut.>A?@>8725AB8 A;54CNI55 Media Next QShortcut>A?@>872545=85 Media Play QShortcut0>A?@>8725AB8 ?@54K4CI55Media Previous QShortcut 0?8AL Media Record QShortcut4AB0=>28BL 2>A?@>872545=85 Media Stop QShortcutAB@5G0Meeting QShortcut5=NMenu QShortcutJ;85=B >1<5=0 <3=>25==K<8 A>>1I5=8O<8 Messenger QShortcutMetaMeta QShortcut*/@:>ABL <>=8B>@0 =865Monitor Brightness Down QShortcut*/@:>ABL <>=8B>@0 2KH5Monitor Brightness Up QShortcut C7K:0Music QShortcut>8 A09BKMy Sites QShortcut>2>AB8News QShortcut5BNo QShortcut &8D@>2K5 :;028H8Num Lock QShortcutNumLockNumLock QShortcut &8D@>2K5 :;028H8 Number Lock QShortcutB:@KBL URLOpen URL QShortcut ?F8OOption QShortcut 0 AB@0=8FC 2=87 Page Down QShortcut"0 AB@0=8FC 225@EPage Up QShortcutAB028BLPaste QShortcut PausePause QShortcut PgDownPgDown QShortcutPgUpPgUp QShortcut"5;5D>=Phone QShortcut7>1@065=8OPictures QShortcut$K:;NG5=85 ?8B0=8O Power Off QShortcut PrintPrint QShortcut5G0BL M:@0=0 Print Screen QShortcut1=>28BLRefresh QShortcut5@5703@C78BLReload QShortcutB25B8BLReply QShortcut ReturnReturn QShortcut ?@02>Right QShortcut>25@=CBL >:=0Rotate Windows QShortcut!>E@0=8BLSave QShortcut %@0=8B5;L M:@0=0 Screensaver QShortcutScroll Lock Scroll Lock QShortcutScrollLock ScrollLock QShortcut >8A:Search QShortcutK1@0BLSelect QShortcutB?@028BLSend QShortcut ShiftShift QShortcut03078=Shop QShortcut0AK?0=85Sleep QShortcut @>15;Space QShortcut&@>25@:0 >@D>3@0D88 Spellchecker QShortcut 0745;8BL M:@0= Split Screen QShortcut&-;5:B@>==0O B01;8FK Spreadsheet QShortcut 568< >6840=8OStandby QShortcutAB0=>28BLStop QShortcut!C1B8B@KSubtitle QShortcut>445@6:0Support QShortcut SysReqSysReq QShortcut !8AB5<=K9 70?@>ASystem Request QShortcutTabTab QShortcut0=5;L 7040G Task Panel QShortcut"5@<8=0;Terminal QShortcut @5<OTime QShortcut=AB@C<5=BKTools QShortcut;02=>5 <5=NTop Menu QShortcutCB5H5AB285Travel QShortcut(KA>:85 G0AB>BK =865 Treble Down QShortcut(KA>:85 G0AB>BK 2KH5 Treble Up QShortcut 25@EUp QShortcut 845>Video QShortcut84View QShortcut"8H5 Volume Down QShortcutK:;NG8BL 72C: Volume Mute QShortcut @><G5 Volume Up QShortcutWWWWWW QShortcut@>1C645=85Wake Up QShortcutM1-:0<5@0WebCam QShortcut"5A?@>2>4=0O A5BLWireless QShortcut$"5:AB>2K9 @540:B>@Word Processor QShortcut0Yes QShortcut#25;8G8BLZoom In QShortcut#<5=LH8BLZoom Out QShortcut iTouchiTouch QShortcut!B@0=8F0 2=87 Page downQSlider!B@0=8F0 2;52> Page leftQSlider!B@0=8F0 2?@02> Page rightQSlider!B@0=8F0 225@EPage upQSlider>;>65=85PositionQSlider8"8? 04@5A0 =5 ?>445@68205BAOAddress type not supportedQSocks5SocketEngineP!>548=5=85 =5 @07@5H5=> A5@25@>< SOCKSv5(Connection not allowed by SOCKSv5 serverQSocks5SocketEngine^!>548=5=85 A ?@>:A8-A5@25@>< =5>6840==> 70:@KB>&Connection to proxy closed prematurelyQSocks5SocketEngineN A>548=5=88 A ?@>:A8-A5@25@>< >B:070=>Connection to proxy refusedQSocks5SocketEngineZ@5<O =0 A>548=5=85 A ?@>:A8-A5@25@>< 8AB5:;>Connection to proxy timed outQSocks5SocketEngine,H81:0 A5@25@5 SOCKSv5General SOCKSv5 server failureQSocks5SocketEngineB@5<O =0 A5B52CN >?5@0F8N 8AB5:;>Network operation timed outQSocks5SocketEngineV5 C40;>AL 02B>@87>20BLAO =0 ?@>:A8-A5@25@5Proxy authentication failedQSocks5SocketEngine^5 C40;>AL 02B>@87>20BLAO =0 ?@>:A8-A5@25@5: %1Proxy authentication failed: %1QSocks5SocketEngine.@>:A8-A5@25@ =5 =0945=Proxy host not foundQSocks5SocketEngine0H81:0 ?@>B>:>;0 SOCKSv5SOCKS version 5 protocol errorQSocks5SocketEngineB><0=40 SOCKSv5 =5 ?>445@68205BAOSOCKSv5 command not supportedQSocks5SocketEngineTTL 8AB5:;> TTL expiredQSocks5SocketEngineX58725AB=0O >H81:0 SOCKSv5 ?@>:A8 (:>4 0x%1)%Unknown SOCKSv5 proxy error code 0x%1QSocks5SocketEngine B<5=0CancelQSoftKeyManager >B>2>DoneQSoftKeyManager KE>4ExitQSoftKeyManagerOkQSoftKeyManager0@0<5B@KOptionsQSoftKeyManagerK1@0BLSelectQSoftKeyManager 5=LH5LessQSpinBox >;LH5MoreQSpinBox B<5=0CancelQSql&B<5=8BL 87<5=5=8O?Cancel your edits?QSql>4B25@645=85ConfirmQSql#40;8BLDeleteQSql,#40;8BL 40==CN 70?8AL?Delete this record?QSqlAB028BLInsertQSql5BNoQSql(!>E@0=8BL 87<5=5=8O? Save edits?QSql1=>28BLUpdateQSql0YesQSql`52>7<>6=> ?@54>AB028BL A5@B8D8:0B 157 :;NG0, %1,Cannot provide a certificate with no key, %1 QSslSocketFH81:0 A>740=8O :>=B5:AB0 SSL: (%1)Error creating SSL context (%1) QSslSocket<H81:0 A>740=8O A5AA88 SSL, %1Error creating SSL session, %1 QSslSocket<H81:0 A>740=8O A5AA88 SSL: %1Error creating SSL session: %1 QSslSocket6H81:0 :28B8@>20=8O SSL: %1Error during SSL handshake: %1 QSslSocketTH81:0 703@C7:8 ;>:0;L=>3> A5@B8D8:0B0, %1#Error loading local certificate, %1 QSslSocketFH81:0 703@C7:8 70:@KB>3> :;NG0, %1Error loading private key, %1 QSslSocket"H81:0 GB5=8O: %1Error while reading: %1 QSslSocketT5?@028;L=K9 8;8 ?CAB>9 A?8A>: H8D@>2 (%1)!Invalid or empty cipher list (%1) QSslSocket@5 C40;>AL ?@>25@8BL A5@B8D8:0BK!No certificates could be verified QSslSocket5B >H81:8No error QSslSocketH48= 87 CA A5@B8D8:0B>2 =5:>@@5:B=K9%One of the CA certificates is invalid QSslSocketd0:@KBK9 :;NG =5 A>>B25BAB2C5B >B:@KB><C :;NGC, %1+Private key does not certify public key, %1 QSslSocket^CBL ?0@0<5B@0 basicConstraints A;8H:>< 4;8==K9!@>: 459AB28O A5@B8D8:0B0 8ABQ:The certificate has expired QSslSocketR!@>: 459AB28O A5@B8D8:0B0 5IQ =5 =0ABC?8; The certificate is not yet valid QSslSocketb!0<>?>4?8A0==K9 A5@B8D8:0B =5 O2;O5BAO 7025@5==K<-The certificate is self-signed, and untrusted QSslSocketV5 C40;>AL @0AH8D@>20BL ?>4?8AL A5@B8D8:0B00The certificate signature could not be decrypted QSslSocketj>;5 A5@B8D8:0B0 notAfter A>45@68B =5:>@@5:B=>5 2@5<O9The certificate's notAfter field contains an invalid time QSslSocketl>;5 A5@B8D8:0B0 notBefore A>45@68B =5:>@@5:B=>5 2@5<O:The certificate's notBefore field contains an invalid time QSslSocketš0720=85 C7;0 =5 A>2?0405B =8 A >4=8< 87 4>?CAB8<KE C7;>2 40==>3> A5@B8D8:0B0GThe host name did not match any of the valid hosts for this certificate QSslSocketb5 C40;>AL =09B8 A5@B8D8:0B 70?@0H820NI59 AB>@>=K)The issuer certificate could not be found QSslSocket<#75; =5 ?@54>AB028; A5@B8D8:0B(The peer did not present any certificate QSslSocket\5 C40;>AL ?@>G8B0BL >B:@KBK9 :;NG A5@B8D8:0B03The public key in the certificate could not be read QSslSocket’>@=52>9 CA A5@B8D8:0B >B<5G5= :0: '>B:07K20BL' 4;O 40==>3> 8A?>;L7>20=8OAThe root CA certificate is marked to reject the specified purpose QSslSocketŽ>@=52>9 CA A5@B8D8:0B =5 O2;O5BAO 7025@5==K< 4;O 40==>3> 8A?>;L7>20=8O7The root CA certificate is not trusted for this purpose QSslSocket¢>@=52>9 A5@B8D8:0B F5?>G:8 A5@B8D8:0B>2 A0<>?>4?8A0==K9 8 =5 O2;O5BAO 7025@5==K<KThe root certificate of the certificate chain is self-signed, and untrusted QSslSocket@5:>@@5:B=0O ?>4?8AL A5@B8D8:0B0+The signature of the certificate is invalid QSslSocket†@54AB02;5==K9 A5@B8D8:0B =5 ?@54=07=0G5= 4;O 40==>3> 8A?>;L7>20=8O7The supplied certificate is unsuitable for this purpose QSslSocketD52>7<>6=> @0AH8D@>20BL 40==K5: %1Unable to decrypt data: %1 QSslSocket<52>7<>6=> 70?8A0BL 40==K5: %1Unable to write data: %1 QSslSocket$58725AB=0O >H81:0 Unknown error QSslSocket$58725AB=0O >H81:0 Unknown error QStateMachine$%1: C65 ACI5AB2C5B%1: already existsQSystemSemaphore"%1: =5 ACI5AB2C5B%1: does not existQSystemSemaphore2%1: =54>AB0B>G=> @5AC@A>2%1: out of resourcesQSystemSemaphore&%1: 4>ABC? 70?@5IQ=%1: permission deniedQSystemSemaphore2%1: =58725AB=0O >H81:0 %2%1: unknown error %2QSystemSemaphore:52>7<>6=> >B:@KBL A>548=5=85Unable to open connection QTDSDriverF52>7<>6=> 8A?>;L7>20BL 107C 40==KEUnable to use database QTDSDriver @>:@CB8BL 2;52> Scroll LeftQTabBar"@>:@CB8BL 2?@02> Scroll RightQTabBarH?5@0F8O A A>:5B>< =5 ?>445@68205BAO$Operation on socket is not supported QTcpServer&>?8@>20BL&Copy QTextControl&AB028BL&Paste QTextControl&&>2B>@8BL 459AB285&Redo QTextControl$&B<5=8BL 459AB285&Undo QTextControl2!:>?8@>20BL &04@5A AAK;:8Copy &Link Location QTextControl&K@570BLCu&t QTextControl#40;8BLDelete QTextControlK45;8BL 2AQ Select All QTextControlB:@KBLOpen QToolButton 060BLPress QToolButtonJ0==0O ?;0BD>@<0 =5 ?>445@68205B IPv6#This platform does not support IPv6 QUdpSocket$>2B>@8BL 459AB285Redo QUndoGroup"B<5=8BL 459AB285Undo QUndoGroup<?CAB>> QUndoModel$>2B>@8BL 459AB285Redo QUndoStack"B<5=8BL 459AB285Undo QUndoStackFAB028BL C?@02;ONI89 A8<2>; Unicode Insert Unicode control characterQUnicodeControlCharacterMenuœLRE =48:0B>@ =0?8A0=8O A;520 =0?@02> 2=CB@8 B5:AB0, =0?8A0==>3> A?@020 =0;52>$LRE Start of left-to-right embeddingQUnicodeControlCharacterMenuJLRM =48:0B>@ =0?8A0=8O A;520 =0?@02>LRM Left-to-right markQUnicodeControlCharacterMenufLRO 5@5:@K20NI89 8=48:0B>@ =0?8A0=8O A;520 =0?@02>#LRO Start of left-to-right overrideQUnicodeControlCharacterMenu`PDF =48:0B>@ :>=F0 B5:AB0 A 4@C38< =0?@02;5=85<PDF Pop directional formattingQUnicodeControlCharacterMenuœRLE =48:0B>@ =0?8A0=8O A?@020 =0;52> 2=CB@8 B5:AB0, =0?8A0==>3> A;520 =0?@02>$RLE Start of right-to-left embeddingQUnicodeControlCharacterMenuJRLM =48:0B>@ =0?8A0=8O A?@020 =0;52>RLM Right-to-left markQUnicodeControlCharacterMenufRLO 5@5:@K20NI89 8=48:0B>@ =0?8A0=8O A?@020 =0;52>#RLO Start of right-to-left overrideQUnicodeControlCharacterMenuLZWJ 1J548=ONI89 A8<2>; =C;52>9 H8@8=KZWJ Zero width joinerQUnicodeControlCharacterMenu>ZWNJ  0745;8B5;L =C;52>9 H8@8=KZWNJ Zero width non-joinerQUnicodeControlCharacterMenu4ZWSP @>15; =C;52>9 H8@8=KZWSP Zero width spaceQUnicodeControlCharacterMenu252>7<>6=> >B>1@078BL URLCannot show URL QWebFrame<52>7<>6=> >B>1@078BL B8? MIMECannot show mimetype QWebFrame$$09; =5 ACI5AB2C5BFile does not exist QWebFrameX03@C7:0 D@59<0 ?@5@20=0 87<5=5=85< ?>;8B8:8'Frame load interrupted by policy change QWebFrame"0?@>A 1;>:8@>20=Request blocked QWebFrame0?@>A >B<5=Q=Request cancelled QWebFrame%1 (%2x%3 px)%1 (%2x%3 pixels)QWebPageF%1 4=59 %2 G0A>2 %3 <8=CB %4 A5:C=4&%1 days %2 hours %3 minutes %4 secondsQWebPage6%1 G0A>2 %2 <8=CB %3 A5:C=4%1 hours %2 minutes %3 secondsQWebPage$%1 <8=CB %2 A5:C=4%1 minutes %2 secondsQWebPage%1 A5:C=4 %1 secondsQWebPage%n D09;(0)%n D09;0%n D09;>2 %n file(s)QWebPage$>1028BL 2 A;>20@LAdd To DictionaryQWebPage> ;52><C :@0N Align LeftQWebPage> ?@02><C :@0N Align RightQWebPageC48>-M;5<5=B Audio ElementQWebPage„-;5<5=BK C?@02;5=8O 2>A?@>872545=85< 72C:0 8 >B>1@065=8O A>AB>O=8O2Audio element playback controls and status displayQWebPage05:>@@5:B=K9 HTTP-70?@>ABad HTTP requestQWebPage,0G0BL 2>A?@>872545=85Begin playbackQWebPage 8@=K9BoldQWebPage=87BottomQWebPage> F5=B@CCenterQWebPageD@>25@OBL 3@0<<0B8:C A >@D>3@0D859Check Grammar With SpellingQWebPage&@>25@:0 >@D>3@0D88Check SpellingQWebPageL@>25@OBL >@D>3@0D8N ?@8 =01>@5 B5:AB0Check Spelling While TypingQWebPage17>@... Choose FileQWebPage.G8AB8BL 8AB>@8N ?>8A:0Clear recent searchesQWebPage>?8@>20BLCopyQWebPageL>?8@>20BL 87>1@065=85 2 1CDD5@ >1<5=0 Copy ImageQWebPage.>?8@>20BL 04@5A AAK;:8 Copy LinkQWebPage0"5:CI55 A>AB>O=85 D8;L<0Current movie statusQWebPage("5:CI55 2@5<O D8;L<0Current movie timeQWebPageK@570BLCutQWebPage> C<>;G0=8NDefaultQWebPage,#40;8BL 4> :>=F0 A;>20Delete to the end of the wordQWebPage.#40;8BL 4> =0G0;0 A;>20Delete to the start of the wordQWebPage$0?@02;5=85 ?8AL<0 DirectionQWebPage@>H;> 2@5<5=8 Elapsed TimeQWebPage (@8DBKFontsQWebPage8=>?:0 "?>;=>M:@0==K9 @568<"Fullscreen ButtonQWebPage 0704Go BackQWebPage ?5@Q4 Go ForwardQWebPageF!:@KBL ?0=5;L ?@>25@:8 ?@02>?8A0=8OHide Spelling and GrammarQWebPage@>?CAB8BLIgnoreQWebPage@>?CAB8BL Ignore Grammar context menu itemIgnoreQWebPage&@5<O =5 >?@545;5=>Indefinite timeQWebPage #25;8G8BL >BABC?IndentQWebPage:AB028BL <0@:8@>20==K9 A?8A>:Insert Bulleted ListQWebPage8AB028BL =C<5@>20==K9 A?8A>:Insert Numbered ListQWebPage*AB028BL =>2CN AB@>:CInsert a new lineQWebPage.AB028BL =>2K9 ?0@03@0DInsert a new paragraphQWebPage@>25@8BLInspectQWebPage C@A82ItalicQWebPage>JavaScript: @54C?@5645=85 - %1JavaScript Alert - %1QWebPage<JavaScript: >4B25@645=85 - %1JavaScript Confirm - %1QWebPage2JavaScript: @>1;5<0 - %1JavaScript Problem - %1QWebPage.JavaScript: 0?@>A - %1JavaScript Prompt - %1QWebPage> H8@8=5JustifyQWebPage ;52>9 3@0=8F5 Left edgeQWebPage!;520 =0?@02> Left to RightQWebPage">B>:>2>5 25I0=85Live BroadcastQWebPage03@C7:0... Loading...QWebPage A:0BL 2 A;>20@5Look Up In DictionaryQWebPageF5@5<5AB8BL C:070B5;L 2 :>=5F 1;>:0'Move the cursor to the end of the blockQWebPageN5@5<5AB8BL C:070B5;L 2 :>=5F 4>:C<5=B0*Move the cursor to the end of the documentQWebPageH5@5<5AB8BL C:070B5;L 2 :>=5F AB@>:8&Move the cursor to the end of the lineQWebPageT5@5<5AB8BL C:070B5;L : A;54CNI5<C A8<2>;C%Move the cursor to the next characterQWebPageR5@5<5AB8BL C:070B5;L =0 A;54CNICN AB@>:C Move the cursor to the next lineQWebPageP5@5<5AB8BL C:070B5;L : A;54CNI5<C A;>2C Move the cursor to the next wordQWebPageV5@5<5AB8BL C:070B5;L : ?@54K4CI5<C A8<2>;C)Move the cursor to the previous characterQWebPageT5@5<5AB8BL C:070B5;L =0 ?@54K4CICN AB@>:C$Move the cursor to the previous lineQWebPageR5@5<5AB8BL C:070B5;L : ?@54K4CI5<C A;>2C$Move the cursor to the previous wordQWebPageH5@5<5AB8BL C:070B5;L 2 =0G0;> 1;>:0)Move the cursor to the start of the blockQWebPageP5@5<5AB8BL C:070B5;L 2 =0G0;> 4>:C<5=B0,Move the cursor to the start of the documentQWebPageJ5@5<5AB8BL C:070B5;L 2 =0G0;> AB@>:8(Move the cursor to the start of the lineQWebPage&=>?:0 "?@83;CH8BL" Mute ButtonQWebPage4K:;NG8BL 72C:>2K5 4>@>6:8Mute audio tracksQWebPage525@=>5 A;>2>No Guesses FoundQWebPage$09; =5 C:070=No file selectedQWebPage(AB>@8O ?>8A:0 ?CAB0No recent searchesQWebPageB:@KBL D@59< Open FrameQWebPage&B:@KBL 87>1@065=85 Open ImageQWebPageB:@KBL AAK;:C Open LinkQWebPage(B:@KBL 2 =>2>< >:=5Open in New WindowQWebPage #<5=LH8BL >BABC?OutdentQWebPage5@5GQ@:=CBK9OutlineQWebPage 0 AB@0=8FC 2=87 Page downQWebPage"0 AB@0=8FC 2;52> Page leftQWebPage$0 AB@0=8FC 2?@02> Page rightQWebPage"0 AB@0=8FC 225@EPage upQWebPageAB028BLPasteQWebPage0AB028BL, A>E@0=82 AB8;LPaste and Match StyleQWebPage=>?:0 "?0C70" Pause ButtonQWebPage:@8>AB0=>28BL 2>A?@>872545=85Pause playbackQWebPage0=>?:0 "2>A?@>872545=85" Play ButtonQWebPageV>A?@>872>48BL D8;L< 2 ?>;=>M:@0==>< @568<5Play movie in full-screen modeQWebPageAB>@8O ?>8A:0Recent searchesQWebPage1=>28BLReloadQWebPage AB0;>AL 2@5<5=8Remaining TimeQWebPage.AB0;>AL 2@5<5=8 D8;L<0Remaining movie timeQWebPage,#40;8BL D>@<0B8@>20=85Remove formattingQWebPage!1@>A8BLResetQWebPage&=>?:0 "?5@5<>B0BL" Rewind ButtonQWebPage(0G0BL D8;L< A=0G0;0 Rewind movieQWebPage  ?@02>9 3@0=8F5 Right edgeQWebPage!?@020 =0;52> Right to LeftQWebPage*!>E@0=8BL 87>1@065=85 Save ImageQWebPage4!>E@0=8BL ?> AAK;:5 :0:... Save Link...QWebPage@>:@CB8BL 2=87 Scroll downQWebPage@>:@CB8BL AN40 Scroll hereQWebPage @>:@CB8BL 2;52> Scroll leftQWebPage"@>:@CB8BL 2?@02> Scroll rightQWebPage @>:@CB8BL 225@E Scroll upQWebPage"A:0BL 2 =B5@=5BSearch The WebQWebPage0=>?:0 "?5@5<>B:0 =0704"Seek Back ButtonQWebPage2=>?:0 "?5@5<>B:0 2?5@Q4"Seek Forward ButtonQWebPage.KAB@0O ?5@5<>B:0 =0704Seek quickly backQWebPage0KAB@0O ?5@5<>B:0 2?5@Q4Seek quickly forwardQWebPageK45;8BL 2AQ Select allQWebPage.K45;8BL 4> :>=F0 1;>:0Select to the end of the blockQWebPage6K45;8BL 4> :>=F0 4>:C<5=B0!Select to the end of the documentQWebPage0K45;8BL 4> :>=F0 AB@>:8Select to the end of the lineQWebPage<K45;8BL 4> A;54CNI53> A8<2>;0Select to the next characterQWebPage8K45;8BL 4> A;54CNI59 AB@>:8Select to the next lineQWebPage8K45;8BL 4> A;54CNI53> A;>20Select to the next wordQWebPage>K45;8BL 4> ?@54K4CI53> A8<2>;0 Select to the previous characterQWebPage:K45;8BL 4> ?@54K4CI59 AB@>:8Select to the previous lineQWebPage:K45;8BL 4> ?@54K4CI53> A;>20Select to the previous wordQWebPage0K45;8BL 4> =0G0;0 1;>:0 Select to the start of the blockQWebPage8K45;8BL 4> =0G0;0 4>:C<5=B0#Select to the start of the documentQWebPage2K45;8BL 4> =0G0;0 AB@>:8Select to the start of the lineQWebPageJ>:070BL ?0=5;L ?@>25@:8 ?@02>?8A0=8OShow Spelling and GrammarQWebPage@D>3@0D8OSpellingQWebPage*B>1@065=85 A>AB>O=8OStatus DisplayQWebPageAB0=>28BLStopQWebPage0GQ@:=CBK9 StrikethroughQWebPageB?@028BLSubmitQWebPageB?@028BLQSubmit (input element) alt text for elements with no alt, title, or valueSubmitQWebPage>4AB@>G=K9 SubscriptQWebPage04AB@>G=K9 SuperscriptQWebPage$0?@02;5=85 B5:AB0Text DirectionQWebPage¦!1>9 2K?>;=5=8O AF5=0@8O =0 40==>9 AB@0=8F5. 5;05B5 >AB0=>28BL 2K?>;5=85 AF5=0@8O?RThe script on this page appears to have a problem. Do you want to stop the script?QWebPaged=45:A ?>8A:0. 2548B5 :;NG52K5 A;>20 4;O ?>8A:0: 3This is a searchable index. Enter search keywords: QWebPage 25@ETopQWebPage>4GQ@:=CBK9 UnderlineQWebPage58725AB=>UnknownQWebPage2:;NG8BL 72C:>2K5 4>@>6:8Unmute audio tracksQWebPage845>-M;5<5=B Video ElementQWebPage„-;5<5=BK C?@02;5=8O 2>A?@>872545=85< 2845> 8 >B>1@065=8O A>AB>O=8O2Video element playback controls and status displayQWebPage&Web-8=A?5:B>@ - %2Web Inspector - %2QWebPage'B> MB>? What's This?QWhatsThisAction**QWidget&025@H8BL&FinishQWizard&!?@02:0&HelpQWizard &0;55&NextQWizard&0;55 >&Next >QWizard< &0704< &BackQWizard B<5=0CancelQWizard5@540BLCommitQWizard@>4>;68BLContinueQWizard >B>2>DoneQWizard 0704Go BackQWizard!?@02:0HelpQWizard%1 - [%2] %1 - [%2] QWorkspace&0:@KBL&Close QWorkspace&5@5<5AB8BL&Move QWorkspace&>AAB0=>28BL&Restore QWorkspace& 07<5@&Size QWorkspace4&>AAB0=>28BL 87 703>;>2:0&Unshade QWorkspace0:@KBLClose QWorkspace &0A?0E=CBL Ma&ximize QWorkspace&!25@=CBL Mi&nimize QWorkspace!25@=CBLMinimize QWorkspace>AAB0=>28BL Restore Down QWorkspace*!2&5@=CBL 2 703>;>2>:Sh&ade QWorkspace$AB020BLAO &A25@EC Stay on &Top QWorkspacex2 >1JO2;5=88 XML >6840NBAO ?0@0<5B@K encoding 8;8 standaloneYencoding declaration or standalone declaration expected while reading the XML declarationQXmlH>H81:0 2 >1JO2;5=88 2=5H=53> >1J5:B03error in the text declaration of an external entityQXml4>H81:0 @071>@0 :><<5=B0@8O$error occurred while parsing commentQXml0>H81:0 @071>@0 4>:C<5=B0$error occurred while parsing contentQXmlP>H81:0 @071>@0 >1JO2;5=8O B8?0 4>:C<5=B05error occurred while parsing document type definitionQXml.>H81:0 @071>@0 M;5<5=B0$error occurred while parsing elementQXml*>H81:0 @071>@0 AAK;:8&error occurred while parsing referenceQXml8>H81:0 2K720=0 ?>;L7>20B5;5<error triggered by consumerQXml`2=5H=OO AAK;:0 =0 >1I89 >1J5:B =54>?CAB8<0 2 DTD;external parsed general entity reference not allowed in DTDQXml|2=5H=OO AAK;:0 =0 >1I89 >1J5:B =54>?CAB8<0 2 7=0G5=88 0B@81CB0Gexternal parsed general entity reference not allowed in attribute valueQXmlf2=CB@5==OO AAK;:0 =0 >1I89 >1J5:B =54>?CAB8<0 2 DTD4internal general entity reference not allowed in DTDQXmlD=5:>@@5:B=>5 8<O 48@5:B82K @071>@0'invalid name for processing instructionQXml>6840;0AL 1C:20letter is expectedQXmlFC:070=> 1>;55 >4=>3> B8?0 4>:C<5=B0&more than one document type definitionQXml$>H81:8 >BACBAB2CNBno error occurredQXml&@5:C@A82=K5 >1J5:BKrecursive entitiesQXml\2 >1JO2;5=88 XML >68405BAO ?0@0<5B@ standaloneAstandalone declaration expected while reading the XML declarationQXml BM3 =5 A>2?0405B tag mismatchQXml$=5>6840==K9 A8<2>;unexpected characterQXml.=5>6840==K9 :>=5F D09;0unexpected end of fileQXmlf=5@07>1@0==0O AAK;:0 =0 >1J5:B 2 =525@=>< :>=B5:AB5*unparsed entity reference in wrong contextQXmlV2 >1JO2;5=88 XML >68405BAO ?0@0<5B@ version2version expected while reading the XML declarationQXmlT=5:>@@5:B=>5 7=0G5=85 ?0@0<5B@0 standalone&wrong value for standalone declarationQXmlVH81:0 %1 2 %2, 2 AB@>:5 %3, AB>;1F5 %4: %5)Error %1 in %2, at line %3, column %4: %5QXmlPatternistCLI$H81:0 %1 2 %2: %3Error %1 in %2: %3QXmlPatternistCLI058725AB=>5 @0A?>;>65=85Unknown locationQXmlPatternistCLI`@54C?@5645=85 2 %1, 2 AB@>:5 %2, AB>;1F5 %3: %4(Warning in %1, at line %2, column %3: %4QXmlPatternistCLI.@54C?@5645=85 2 %1: %2Warning in %1: %2QXmlPatternistCLIF%1 - =525@=K9 845=B8D8:0B>@ PUBLIC.#%1 is an invalid PUBLIC identifier. QXmlStreamB%1 - =525@=>5 =0720=85 :>48@>2:8.%1 is an invalid encoding name. QXmlStream^%1 =525@=>5 =0720=85 >1@010BK205<>9 8=AB@C:F88.-%1 is an invalid processing instruction name. QXmlStream, ?>;CG8;8 ' , but got ' QXmlStream,B@81CB ?5@5>?@545;Q=.Attribute redefined. QXmlStream<>48@>2:0 %1 =5 ?>445@68205BAOEncoding %1 is unsupported QXmlStreamZ1=0@C65=> =525@=> 70:>48@>20==>5 A>45@68<>5.(Encountered incorrectly encoded content. QXmlStream01J5:B '%1' =5 >1JO2;5=.Entity '%1' not declared. QXmlStream6840;>AL  Expected  QXmlStream86840NBAO A8<2>;L=K5 40==K5.Expected character data. QXmlStream@8H=85 40==K5 2 :>=F5 4>:C<5=B0.!Extra content at end of document. QXmlStreamL525@=>5 >1JO2;5=85 ?@>AB@0=AB20 8<Q=.Illegal namespace declaration. QXmlStream05:>@@5:B=K9 A8<2>; XML.Invalid XML character. QXmlStream*5:>@@5:B=>5 8<O XML.Invalid XML name. QXmlStream6525@=0O AB@>:0 25@A88 XML.Invalid XML version string. QXmlStreamL5:>@@5:B=K9 0B@81CB 2 >1JO2;5=88 XML.%Invalid attribute in XML declaration. QXmlStream6525@=0O A8<2>;L=0O AAK;:0.Invalid character reference. QXmlStream,5:>@@5:B=K9 4>:C<5=B.Invalid document. QXmlStream<5:>@@5:B=>5 7=0G5=85 >1J5:B0.Invalid entity value. QXmlStreamX525@=>5 =0720=85 >1@010BK205<>9 8=AB@C:F88.$Invalid processing instruction name. QXmlStream:NDATA 2 >1JO2;5=88 ?0@0<5B@0.&NDATA in parameter entity declaration. QXmlStreamT@5D8:A ?@>AB@0=AB20 8<Q= '%1' =5 >1JO2;5="Namespace prefix '%1' not declared QXmlStreamVB:@K20NI89 BM3 =5 A>2?0405B A 70:@K20NI8<. Opening and ending tag mismatch. QXmlStream85>6840==K9 :>=5F 4>:C<5=B0.Premature end of document. QXmlStream:1=0@C65= @5:C@A82=K9 >1J5:B.Recursive entity detected. QXmlStreamd!AK;:0 =0 2=5H=89 >1J5:B '%1' 2 7=0G5=88 0B@81CB0.5Reference to external entity '%1' in attribute value. QXmlStreamJ!AK;:0 =0 =5>1@01>B0==K9 >1J5:B '%1'."Reference to unparsed entity '%1'. QXmlStreamd>A;54>20B5;L=>ABL ']]>' =54>?CAB8<0 2 A>45@68<><.&Sequence ']]>' not allowed in content. QXmlStream”A524>0B@81CB 'standalone' <>65B ?@8=8<0BL B>;L:> 7=0G5=8O 'yes' 8;8 'no'."Standalone accepts only yes or no. QXmlStream468405BAO >B:@K20NI89 BM3.Start tag expected. QXmlStreamŒA524>0B@81CB 'standalone' 4>;65= =0E>48BLAO ?>A;5 C:070=8O :>48@>2:8.?The standalone pseudo attribute must appear after the encoding. QXmlStream5>6840==>5 ' Unexpected ' QXmlStreamx5>6840==K9 A8<2>; '%1' 2 ;8B5@0;5 >B:@KB>3> 845=B8D8:0B>@0./Unexpected character '%1' in public id literal. QXmlStream85?>445@68205<0O 25@A8O XML.Unsupported XML version. QXmlStream^1JO2;5=85 XML =0E>48BAO =5 2 =0G0;5 4>:C<5=B0.)XML declaration not at start of document. QXmlStreamX%1 8 %2 A>>B25BAB2CNB =0G0;C 8 :>=FC AB@>:8.,%1 and %2 match the start and end of a line. QtXmlPatterns:%1 =5 <>65B 1KBL 2>AAB0=>2;5=%1 cannot be retrieved QtXmlPatterns‚%1 A>45@68B >:B5BK, :>B>@K5 =54>?CAB8<K 2 B@51C5<>9 :>48@>2:5 %2.E%1 contains octets which are disallowed in the requested encoding %2. QtXmlPatternsì%1 - A;>6=K9 B8?. @5>1@07>20=85 : A;>6=K< B8?0< =52>7<>6=>. 4=0:>, ?@5>1@07>20=85 : 0B><0@=K< B8?0< :0: %2 @01>B05B.s%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. QtXmlPatterns(%1 =5:>@@5:=> 4;O %2%1 is an invalid %2 QtXmlPatterns~%1 - =525@=K9 D;03 4;O @53C;O@=>3> 2K@065=8O. >?CAB8<K5 D;038:?%1 is an invalid flag for regular expressions. Valid flags are: QtXmlPatternsH%1 - =525@=K9 URI ?@>AB@0=AB20 8<Q=.%1 is an invalid namespace URI. QtXmlPatterns\%1 - =525@=K9 H01;>= @53C;O@=>3> 2K@065=8O: %2/%1 is an invalid regular expression pattern: %2 QtXmlPatternsV%1 O2;O5BAO =525@=K< H01;>=>< 8<5=8 @568<0.$%1 is an invalid template mode name. QtXmlPatternsJ%1 O2;O5BAO AE5<>9 =58725AB=>3> B8?0.%1 is an unknown schema type. QtXmlPatterns>>48@>2:0 %1 =5 ?>445@68205BAO.%1 is an unsupported encoding. QtXmlPatternsB!8<2>; %1 =54>?CAB8< 4;O XML 1.0.$%1 is not a valid XML 1.0 character. QtXmlPatternsp%1 O2;O5BAO =525@=K< =0720=85< 4;O 8=AB@C:F88 >1@01>B:8.4%1 is not a valid name for a processing-instruction. QtXmlPatternsP%1 O2;O5BAO =525@=K< G8A;>2K< ;8B5@0;><."%1 is not a valid numeric literal. QtXmlPatternsÒ%1 =5:>@@5:B=>5 F5;52>5 8<O 2 >1@010BK205<>9 8=AB@C:F88. <O 4>;6=> 1KBL 7=0G5=85< B8?0 %2, =0?@8<5@: %3.Z%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. QtXmlPatternsX%1 =5 O2;O5BAO ?@028;L=K< 7=0G5=85< B8?0 %2.#%1 is not a valid value of type %2. QtXmlPatternsP%1 =5 O2;O5BAO ?>;=K< :>;8G5AB2>< <8=CB.$%1 is not a whole number of minutes. QtXmlPatterns%1 - =5 0B><0@=K9 B8?. @5>1@07>20=85 2>7<>6=> B>;L:> : 0B><0@=K< B8?0<.C%1 is not an atomic type. Casting is only possible to atomic types. QtXmlPatternsæ%1 O2;O5BAO >1JO2;5=85< 0B@81CB0 2=5 >1;0AB8 >1JO2;5=89. <59B5 2 284C, 2>7<>6=>ABL 8<?>@B0 AE5< =5 ?>445@68205BAO.g%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. QtXmlPatternsH=0G5=85 %1 =5:>@@5:B=> 4;O B8?0 %2.&%1 is not valid as a value of type %2. QtXmlPatternsL%1 A>>B25BAB2C5B A8<2>;0< :>=F0 AB@>:8%1 matches newline characters QtXmlPatterns”'%1' 4>;6=> A>?@>2>640BLAO '%2' 8;8 '%3', => =5 2 :>=F5 70<5I05<>9 AB@>:8.J%1 must be followed by %2 or %3, not at the end of the replacement string. QtXmlPatterns|%1 ?@8=8<05B =5 <5=55 %n 0@3C<5=B0. !;54>20B5;L=>, %2 =525@=>.~%1 ?@8=8<05B =5 <5=55 %n 0@3C<5=B>2. !;54>20B5;L=>, %2 =525@=>.~%1 ?@8=8<05B =5 <5=55 %n 0@3C<5=B>2. !;54>20B5;L=>, %2 =525@=>.=%1 requires at least %n argument(s). %2 is therefore invalid. QtXmlPatterns|%1 ?@8=8<05B =5 1>;55 %n 0@3C<5=B0. !;54>20B5;L=>, %2 =525@=>.~%1 ?@8=8<05B =5 1>;55 %n 0@3C<5=B>2. !;54>20B5;L=>, %2 =525@=>.~%1 ?@8=8<05B =5 1>;55 %n 0@3C<5=B>2. !;54>20B5;L=>, %2 =525@=>.9%1 takes at most %n argument(s). %2 is therefore invalid. QtXmlPatterns %1 1K;> 2K720=>.%1 was called. QtXmlPatternsB><<5=B0@89 =5 <>65B A>45@60BL %1A comment cannot contain %1 QtXmlPatternsP><<5=B0@89 =5 <>65B >:0=G820BLAO =0 %1.A comment cannot end with a %1. QtXmlPatternsvAB@5G5=0 :>=AB@C:F8O, 70?@5IQ==0O 4;O B5:CI53> O7K:0 (%1).LA construct was encountered which is disallowed in the current language(%1). QtXmlPatternsÀ1JO2;5=85 ?@>AB@0=AB2> 8<Q= ?> C<>;G0=8N 4>;6=> 1KBL 4> >1JO2;5=8O DC=:F89, ?5@5<5==KE 8 >?F89.^A default namespace declaration must occur before function, variable, and option declarations. QtXmlPatterns”@O<>9 :>=AB@C:B>@ M;5<5=B0 A>AB02;5= =5:>@@5:B=>. %1 70:0=G8205BAO =0 %2.EA direct element constructor is not well-formed. %1 is ended with %2. QtXmlPatternsN$C=:F8O A A83=0BC@>9 %1 C65 ACI5AB2C5B.0A function already exists with the signature %1. QtXmlPatternsÈ>4C;L 181;8>B5:8 =5 <>65B 8A?>;L7>20BLAO =0?@O<CN. = 4>;65= 1KBL 8<?>@B8@>20= 87 >A=>2=>3> <>4C;O.VA library module cannot be evaluated directly. It must be imported from a main module. QtXmlPatternsf0@0<5B@ 2 DC=:F88 =5 <>65B 1KBL >1JO2;5= BC==5;5<.78F8>==K9 ?@548:0B 4>;65= 2KG8A;OBLAO :0: G8A;>2>5 2K@065=85.?A positional predicate must evaluate to a single numeric value. QtXmlPatternsX$C=:F8O AB8;59 4>;6=0 8<5BL 8<O A ?@5D8:A><.0A stylesheet function must have a prefixed name. QtXmlPatternsH(01;>= A 8<5=5< %1 C65 1K; >1JO2;5=.2A template with name %1 has already been declared. QtXmlPatterns²=0G5=85 B8?0 %1 =5 <>65B 1KBL CA;>285<. #A;>285< <>3CB O2;OBLAO G8A;>2>9 8 1C;52K9 B8?K.yA value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. QtXmlPatternsb=0G5=85 B8?0 %1 =5 <>65B 1KBL 1C;52K< 7=0G5=85<.:A value of type %1 cannot have an Effective Boolean Value. QtXmlPatternsÐ=0G5=85 B8?0 %1 4>;6=> A>45@60BL G5B=>5 :>;8G5AB2> F8D@. =0G5=85 %2 MB><C B@51>20=8N =5 C4>2;5B2>@O5B.PA value of type %1 must contain an even number of digits. The value %2 does not. QtXmlPatternsJ5@5<5==0O A 8<5=5< %1 C65 >1JO2;5=0.2A variable with name %1 has already been declared. QtXmlPatternsÒ 538>=0;L=>5 A<5I5=85 4>;6=> 1KBL 2 ?5@545;0E >B %1 4> %2 2:;NG8B5;L=>. %3 2KE>48B 70 4>?CAB8<K5 ?@545;K.HA zone offset must be in the range %1..%2 inclusive. %3 is out of range. QtXmlPatternsF5>4=>7=0G=>5 A>>B25BAB285 ?@028;C.Ambiguous rule match. QtXmlPatterns @3C<5=B A 8<5=5< %1 C65 >1JO2;5=. <O :064>3> 0@3C<5=B0 4>;6=> 1KBL C=8:0;L=K<.WAn argument with name %1 has already been declared. Every argument name must be unique. QtXmlPatternsFB@81CB A 8<5=5< %1 C65 ACI5AB2C5B.1An attribute by name %1 has already been created. QtXmlPatterns’#75;-0B@81CB =5 <>65B 1KBL ?>B><:>< C7;0-4>:C<5=B0. B@81CB %1 =5C<5AB5=.dAn attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. QtXmlPatternspB@81CB A 8<5=5< %1 C65 ACI5AB2C5B 4;O 40==>3> M;5<5=B0.?An attribute with name %1 has already appeared on this element. QtXmlPatternsZ0: <8=8<C< >48= M;5<5=B %1 4>;65= 1KBL 2 %2.3At least one %1 element must appear as child of %2. QtXmlPatternsb0: <8=8<C< >48= M;5<5=B %1 4>;65= 1KBL ?5@54 %2.-At least one %1-element must occur before %2. QtXmlPatternsd0: <8=8<C< >48= M;5<5=B %1 4>;65= 1KBL 2=CB@8 %2.-At least one %1-element must occur inside %2. QtXmlPatternsd>;6=0 ?@8ACBAB2>20BL :0: <8=8<C< >4=0 :><?>=5=B0.'At least one component must be present. QtXmlPatternsˆ0: <8=8<C< >48= @568< 4>;65= 1KBL C:070= 2 0B@81CB5 %1 M;5<5=B0 %2.FAt least one mode must be specified in the %1-attribute on element %2. QtXmlPatterns”0: <8=8<C< >4=0 :><?>=5=B0 2@5<5=8 4>;6=0 A;54>20BL 70 @0745;8B5;5< '%1'.?At least one time component must appear after the %1-delimiter. QtXmlPatternsFB@81CBK %1 8 %2 2708<>8A:;NG0NI85.+Attribute %1 and %2 are mutually exclusive. QtXmlPatternsœB@81CB %1 =5 <>65B 1KBL A5@80;87>20=, B0: :0: ?@8ACBAB2C5B =0 25@E=5< C@>2=5.EAttribute %1 can't be serialized because it appears at the top level. QtXmlPatternsTB@81CB %1 =5 <>65B ?@8=8<0BL 7=0G5=85 %2.&Attribute %1 cannot have the value %2. QtXmlPatterns<5=L %1 =525@5= 4;O <5AOF0 %2.Day %1 is invalid for month %2. QtXmlPatterns:5=L %1 2=5 480?07>=0 %2..%3.#Day %1 is outside the range %2..%3. QtXmlPatterns€5;5=85 G8A;0 B8?0 %1 =0 %2 (=5 G8A;>2>5 2K@065=85) =54>?CAB8<>.@Dividing a value of type %1 by %2 (not-a-number) is not allowed. QtXmlPatternsŠ5;5=85 G8A;0 B8?0 %1 =0 %2 8;8 %3 (?;NA 8;8 <8=CA =C;L) =54>?CAB8<>.LDividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. QtXmlPatternsP5;5=85 (%1) =0 =C;L (%2) =5 >?@545;5=>.(Division (%1) by zero (%2) is undefined. QtXmlPatterns<O :064>3> ?0@0<5B@0 H01;>=0 4>;6=> 1KBL C=8:0;L=K<, => %1 ?>2B>@O5BAO.CEach name of a template parameter must be unique; %1 is duplicated. QtXmlPatternsâC;52> 7=0G5=85 =5 <>65B 1KBL 2KG8A;5=> 4;O ?>A;54>20B5;L=>AB59, :>B>@K5 A>45@60B 420 8 1>;55 0B><0@=KE 7=0G5=8O.aEffective Boolean Value cannot be calculated for a sequence containing two or more atomic values. QtXmlPatterns”-;5<5=B %1 =5 <>65B 1KBL A5@80;87>20=, B0: :0: ?@8ACBAB2C5B 2=5 4>:C<5=B0.OElement %1 can't be serialized because it appears outside the document element. QtXmlPatternsx# M;5<5=B0 %1 =5 <>65B 1KBL :>=AB@C:B>@0 ?>A;54>20B5;L=>AB8..Element %1 cannot have a sequence constructor. QtXmlPatternsJ# M;5<5=B0 %1 =5 <>65B 1KBL ?>B><:>2. Element %1 cannot have children. QtXmlPatternsF-;5<5=B %1 =54>?CAB8< 2 MB>< <5AB5.+Element %1 is not allowed at this location. QtXmlPatternsB-;5<5=B %1 4>;65= 84B8 ?>A;54=8<.Element %1 must come last. QtXmlPatterns€-;5<5=B %1 4>;65= 8<5BL :0: <8=8<C< >48= 87 0B@81CB>2 %2 8;8 %3.=Element %1 must have at least one of the attributes %2 or %3. QtXmlPatternsŒ-;5<5=B %1 4>;65= 8<5BL 0B@81CB %2 8;8 :>=AB@C:B>@ ?>A;54>20B5;L=>AB8.EElement %1 must have either a %2-attribute or a sequence constructor. QtXmlPatternsÈA;8 >10 7=0G5=8O 8<5NB @538>=0;L=K5 A<5I5=8O, A<5I5=8O 4>;6=K 1KBL >48=0:>2K. %1 8 %2 =5 >48=0:>2K.bIf both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. QtXmlPatterns˜A;8 M;5<5=B %1 =5 8<55B 0B@81CB %2, C =53> =5 <>65B 1KBL 0B@81CB>2 %3 8 %4.EIf element %1 has no attribute %2, it cannot have attribute %3 or %4. QtXmlPatterns"@5D8:A =5 4>;65= 1KBL C:070=, 5A;8 ?5@2K9 ?0@0<5B@ - ?CAB0O ?>A;54>20B5;L=>ABL 8;8 ?CAB0O AB@>:0 (2=5 ?@>AB@0=AB20 8<Q=). K; C:070= ?@5D8:A %1.ŠIf the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. QtXmlPatterns² :>=AB@C:B>@5 ?@>AB@0=AB20 8<Q= 7=0G5=85 ?@>AB@0=AB20 8<Q= =5 <>65B 1KBL ?CAB>9 AB@>:>9.PIn a namespace constructor, the value for a namespace cannot be an empty string. QtXmlPatternsˆ <>4C;5 C?@>IQ==>9 B01;8FK AB8;59 >1O70= ?@8ACBAB2>20BL 0B@81CB %1.@In a simplified stylesheet module, attribute %1 must be present. QtXmlPatterns’ H01;>=5 XSL-T =5 <>65B 1KBL 8A?>;L7>20=0 >AL %1 - B>;L:> >A8 %2 8;8 %3.DIn an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. QtXmlPatterns~ H01;>=5 XSL-T C DC=:F88 %1 =5 4>;6=> 1KBL B@5BL53> 0@3C<5=B0.>In an XSL-T pattern, function %1 cannot have a third argument. QtXmlPatterns¨ H01;>=5 XSL-T B>;L:> DC=:F88 %1 8 %2 <>3CB 8A?>;L7>20BLAO 4;O A@02=5=8O, => =5 %3.OIn an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. QtXmlPatterns H01;>=5 XSL-T ?5@2K9 0@3C<5=B DC=:F88 %1 4>;65= 1KBL ;8B5@0;>< 8;8 AAK;:>9 =0 ?5@5<5==CN, 5A;8 DC=:F8O 8A?>;L7C5BAO 4;O A@02=5=8O.yIn an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. QtXmlPatternsè H01;>=5 XSL-T ?5@2K9 0@3C<5=B DC=:F88 %1 4>;65= 1KBL AB@>:>2K< ;8B5@0;><, 5A;8 DC=:F8O 8A?>;L7C5BAO 4;O A@02=5=8O.hIn an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. QtXmlPatternsÜ 70<5I05<>9 AB@>:5 A8<2>; '%1' <>65B 8A?>;L7>20BLAO B>;L:> 4;O M:@0=8@>20=8O A0<>3> A51O 8;8 '%2', => =5 '%3'MIn the replacement string, %1 can only be used to escape itself or %2, not %3 QtXmlPatternsº 70<5I05<>9 AB@>:5 '%1' 4>;6=> A>?@>2>640BLAO :0: <8=8<C< >4=>9 F8D@>9, 5A;8 =5M:@0=8@>20=>.VIn the replacement string, %1 must be followed by at least one digit when not escaped. QtXmlPatternsl&5;>G8A;5==>5 45;5=85 (%1) =0 =C;L (%2) =5 >?@545;5=>.0Integer division (%1) by zero (%2) is undefined. QtXmlPatternsB52>7<>6=> A2O70BL A ?@5D8:A>< %1+It is not possible to bind to the prefix %1 QtXmlPatternsJ52>7<>6=> ?5@5>?@545;8BL ?@5D8:A %1.*It is not possible to redeclare prefix %1. QtXmlPatternsBC45B =52>7<>6=> 2>AAB0=>28BL %1.'It will not be possible to retrieve %1. QtXmlPatternsz52>7<>6=> 4>102;OBL 0B@81CBK ?>A;5 ;N1>3> 4@C3>3> 2840 C7;0.AIt's not possible to add attributes after any other kind of node. QtXmlPatterns>!>>B25BAB28O @538AB@>=57028A8<KMatches are case insensitive QtXmlPatterns¦<?>@B8@C5<K5 <>4C;8 4>;6=K 1KBL C:070=K 4> >1JO2;5=8O DC=:F89, ?5@5<5==KE 8 >?F89.MModule imports must occur before function, variable, and option declarations. QtXmlPatternsd5;5=85 ?> <>4C;N (%1) =0 =C;L (%2) =5 >?@545;5=>.0Modulus division (%1) by zero (%2) is undefined. QtXmlPatterns<5AOF %1 2=5 480?07>=0 %2..%3.%Month %1 is outside the range %2..%3. QtXmlPatterns˜#<=>65=85 G8A;0 B8?0 %1 =0 %2 8;8 %3 (?;NA-<8=CA 15A:>=5G=>ABL) =54>?CAB8<>.YMultiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. QtXmlPatterns²@>AB@0=AB2> 8<Q= %1 <>65B 1KBL A2O70=> B>;L:> A %2 (2 40==>< A;CG05 C65 ?@54>?@545;5=>).ONamespace %1 can only be bound to %2 (and it is, in either case, pre-declared). QtXmlPatterns¦1JO2;5=85 ?@>AB@0=AB20 8<Q= 4>;6=> 1KBL 4> >1JO2;5=8O DC=:F89, ?5@5<5==KE 8 >?F89.UNamespace declarations must occur before function, variable, and option declarations. QtXmlPatterns8@5<O >6840=8O A5B8 8AB5:;>.Network timeout. QtXmlPatterns =5H=85 DC=:F88 =5 ?>445@6820NBAO. A5 ?>445@68205<K5 DC=:F88 <>3CB 8A?>;L7>20BLAO =0?@O<CN 157 ?5@2>=0G0;L=>3> >1JO2;5=8O 8E 2 :0G5AB25 2=5H=8E{No external functions are supported. All supported functions can be used directly, without first declaring them as external QtXmlPatterns@$C=:F8O A 8<5=5< %1 >BACBAB2C5B.&No function with name %1 is available. QtXmlPatternsF$C=:F8O A A83=0BC@>9 %1 >BACBAB2C5B*No function with signature %1 is available QtXmlPatternspBACBAB2C5B ?@82O7:0 : ?@>AB@0=AB2C 8<Q= 4;O ?@5D8:A0 %1-No namespace binding exists for the prefix %1 QtXmlPatternszBACBAB2C5B ?@82O7:0 : ?@>AB@0=AB2C 8<Q= 4;O ?@5D8:A0 %1 2 %23No namespace binding exists for the prefix %1 in %2 QtXmlPatterns>(01;>= A 8<5=5< %1 >BACBAB2C5B.No template by name %1 exists. QtXmlPatternspBACBAB2C5B 7=0G5=85 4;O 2=5H=59 ?5@5<5==>9 A 8<5=5< %1.=No value is available for the external variable with name %1. QtXmlPatternsD5@5<5==0O A 8<5=5< %1 >BACBAB2C5BNo variable with name %1 exists QtXmlPatternsª8 >4=> 87 2K@065=89 pragma =5 ?>445@68205BAO. >;6=> ACI5AB2>20BL 70?0A=>5 2K@065=85^None of the pragma expressions are supported. Therefore, a fallback expression must be present QtXmlPatterns‚">;L:> >4=> >1JO2;5=85 %1 <>65B ?@8ACBAB2>20BL 2 ?@>;>35 70?@>A0.6Only one %1 declaration can occur in the query prolog. QtXmlPatternsF>;65= 1KBL B>;L:> >48= M;5<5=B %1.Only one %1-element can appear. QtXmlPatternsš>445@68205BAO B>;L:> Unicode Codepoint Collation (%1). %2 =5 ?>445@68205BAO.IOnly the Unicode Codepoint Collation is supported(%1). %2 is unsupported. QtXmlPatternsh">;L:> ?@5D8:A %1 <>65B 1KBL A2O70= A %2 8 =0>1>@>B.5Only the prefix %1 can be bound to %2 and vice versa. QtXmlPatterns’?5@0B>@ %1 =5 <>65B 8A?>;L7>20BLAO 4;O 0B><0@=KE 7=0G5=89 B8?>2 %2 8 %3.>Operator %1 cannot be used on atomic values of type %2 and %3. QtXmlPatterns`?5@0B>@ %1 =5 <>65B 8A?>;L7>20BLAO 4;O B8?0 %2.&Operator %1 cannot be used on type %2. QtXmlPatternsZ5@5?>;=5=85: 5 C40QBAO ?@54AB028BL 40BC %1."Overflow: Can't represent date %1. QtXmlPatternsT5@5?>;=5=85: =52>7<>6=> ?@54AB028BL 40BC.$Overflow: Date can't be represented. QtXmlPatterns$H81:0 @071>@0: %1Parse error: %1 QtXmlPatternsœ@5D8:A %1 <>65B 1KBL A2O70= B>;L:> A %2 (2 40==>< A;CG05 C65 ?@54>?@545;5=>).LPrefix %1 can only be bound to %2 (and it is, in either case, pre-declared). QtXmlPatternsD@5D8:A %1 C65 >1JO2;5= 2 ?@>;>35.,Prefix %1 is already declared in the prolog. QtXmlPatterns\@5>1@07>20=85 %1 : %2 <>65B A=878BL B>G=>ABL./Promoting %1 to %2 may cause loss of precision. QtXmlPatternsJ5>1E>48<> %1 M;5<5=B>2, ?>;CG5=> %2./Required cardinality is %1; got cardinality %2. QtXmlPatternsD"@51C5BAO B8? %1, => >1=0@C65= %2.&Required type is %1, but %2 was found. QtXmlPatterns~K?>;=O5BAO B01;8F0 AB8;59 XSL-T 1.0 A >1@01>BG8:>< 25@A88 2.0.5Running an XSL-T 1.0 stylesheet with a 2.0 processor. QtXmlPatternsP"5:AB>2K5 C7;K =54>?CAB8<K 2 MB>< <5AB5.,Text nodes are not allowed at this location. QtXmlPatternsBAL %1 =5 ?>445@68205BAO 2 XQuery$The %1-axis is unsupported in XQuery QtXmlPatterns°>7<>6=>ABL 8<?>@B0 AE5< =5 ?>445@68205BAO, A;54>20B5;L=>, >1JO2;5=89 %1 1KBL =5 4>;6=>.WThe Schema Import feature is not supported, and therefore %1 declarations cannot occur. QtXmlPatterns¬>7<>6=>ABL ?@>25@:8 ?> AE5<5 =5 ?>445@68205BAO. K@065=8O %1 =5 <>3CB 8A?>;L7>20BLAO.VThe Schema Validation Feature is not supported. Hence, %1-expressions may not be used. QtXmlPatterns>URI =5 <>65B A>45@60BL D@03<5=BThe URI cannot have a fragment QtXmlPatternsfB@81CB %1 <>65B 1KBL B>;L:> C ?5@2>3> M;5<5=B0 %2.9The attribute %1 can only appear on the first %2 element. QtXmlPatterns|# %2 =5 <>65B 1KBL 0B@81CB0 %1, :>340 >= O2;O5BAO ?>B><:>< %3.?The attribute %1 cannot appear on %2, when it is a child of %3. QtXmlPatternsÖ!8<2>; A :>4>< %1, ?@8ACBAB2CNI89 2 %2 ?@8 8A?>;L7>20=88 :>48@>2:8 %3, =5 O2;O5BAO 4>?CAB8<K< A8<2>;>< XML.QThe codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. QtXmlPatterns~0==K5 >1@010BK205<>9 8=AB@C:F88 =5 <>3CB A>45@60BL AB@>:C '%1'AThe data of a processing instruction cannot contain the string %1 QtXmlPatterns>01>@ ?> C<>;G0=8N =5 >?@545;Q=#The default collection is undefined QtXmlPatterns>48@>2:0 %1 =525@=0. <O :>48@>2:8 4>;6=> A>45@60BL B>;L:> A8<2>;K ;0B8=8FK 157 ?@>15;>2 8 4>;6=> C4>2;5B2>@OBL @53C;O@=><C 2K@065=8N %2.‰The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. QtXmlPatternsþ5@2K9 0@3C<5=B %1 =5 <>65B 1KBL B8?0 %2. = 4>;65= 1KBL G8A;>2>3> B8?0, B8?0 xs:yearMonthDuration 8;8 B8?0 xs:dayTimeDuration.uThe first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. QtXmlPatterns˜5@2K9 0@3C<5=B %1 =5 <>65B 1KBL B8?0 %2. = 4>;65= 1KBL B8?0 %3, %4 8;8 %5.PThe first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. QtXmlPatterns&$>:CA =5 >?@545;Q=.The focus is undefined. QtXmlPatternsb=8F80;870F8O ?5@5<5==>9 %1 7028A8B >B A51O A0<>93The initialization of variable %1 depends on itself QtXmlPatternsb-;5<5=B %1 =5 A>>B25BAB2C5B =5>1E>48<><C B8?C %2./The item %1 did not match the required type %2. QtXmlPatternsŽ;NG52>5 A;>2> %1 =5 <>65B 2AB@5G0BLAO A ;N1K< 4@C38< =0720=85< @568<0.5The keyword %1 cannot occur with any other mode name. QtXmlPatternsê>A;54=OO G0ABL ?CB8 4>;6=0 A>45@60BL C7;K 8;8 0B><0@=K5 7=0G5=8O, => =5 <>65B A>45@60BL 8 B>, 8 4@C3>5 >4=>2@5<5==>.kThe last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. QtXmlPatternsZ>7<>6=>ABL 8<?>@B0 <>4C;59 =5 ?>445@68205BAO*The module import feature is not supported QtXmlPatternsd0720=85 %1 =5 A>>B25BAB2C5B =8 >4=><C B8?C AE5<K..The name %1 does not refer to any schema type. QtXmlPatterns¾0720=85 @0AG8BK205<>3> 0B@81CB0 =5 <>65B 8<5BL URI ?@>AB@0=AB20 8<Q= %1 A ;>:0;L=K< 8<5=5< %2.ZThe name for a computed attribute cannot have the namespace URI %1 with the local name %2. QtXmlPatterns<O ?5@5<5==>9, A2O70==>9 A 2K@065=85< for, 4>;6=> >B;8G0BLAO >B ?>78F8>==>9 ?5@5<5==>9. 25 ?5@5<5==K5 A 8<5=5< %1 :>=D;8:BCNB.‹The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. QtXmlPatterns|0720=85 2K@065=8O @0AH8@5=8O 4>;6=> 1KBL 2 ?@>AB@0=AB25 8<Q=.;The name of an extension expression must be in a namespace. QtXmlPatterns¬0720=85 >?F88 4>;6=> A>45@60BL ?@5D8:A. 5B ?@>AB@0=AB20 8<Q= ?> C<>;G0=8N 4;O >?F89.TThe name of an option must have a prefix. There is no default namespace for options. QtXmlPatternsf@>AB@0=BA2> 8<Q= %1 70@575@28@>20=>, ?>MB><C ?>;L7>20B5;LA:85 DC=:F88 =5 <>3CB 53> 8A?>;L7>20BL. >?@>1C9B5 ?@54>?@545;Q==K9 ?@5D8:A %2, :>B>@K9 ACI5AB2C5B 4;O ?>4>1=KE A8BC0F89.ŠThe namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. QtXmlPatterns¢URI ?@>AB@0=AB20 8<Q= =5 <>65B 1KBL ?CAB>9 AB@>:>9 ?@8 A2O7K20=88 A ?@5D8:A>< %1.JThe namespace URI cannot be the empty string when binding to a prefix, %1. QtXmlPatterns–URI ?@>AB@0=AB20 8<Q= 2 =0720=88 @0AAG8BK205<>3> 0B@81CB0 =5 <>65B 1KBL %1.DThe namespace URI in the name for a computed attribute cannot be %1. QtXmlPatterns˜URI ?@>AB@0=AB20 8<Q= 4>;6=> 1KBL :>=AB0=B>9 8 =5 <>65B A>45@60BL 2K@065=89.IThe namespace URI must be a constant and cannot use enclosed expressions. QtXmlPatterns,@>AB@0=AB2> 8<Q= 4;O ?>;L7>20B5;LA:8E DC=:F89 =5 <>65B 1KBL ?CABK< (?>?@>1C9B5 ?@54>?@545;Q==K9 ?@5D8:A %1, :>B>@K9 ACI5AB2C5B 4;O ?>4>1=KE A8BC0F89)yThe namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) QtXmlPatterns8@>AB@0=AB2> 8<Q= ?>;L7>20B5;LA:>9 DC=:F88 2 <>4C;5 181;8>B5:8 4>;65= A>>B25BAB2>20BL ?@>AB@0=AB2C 8<Q= <>4C;O. @C38<8 A;>20<8, >= 4>;65= 1KBL %1 2<5AB> %2–The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 QtXmlPatternsü$>@<0 =>@<0;870F88 %1 =5 ?>445@68205BAO. >445@6820NBAO B>;L:> %2, %3, %4, %5 8 ?CAB0O, B.5. ?CAB0O AB@>:0 (157 =>@<0;870F88).‰The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). QtXmlPatternsv5@540= ?0@0<5B@ %1 , => A>>B25BAB2CNI53> %2 =5 ACI5AB2C5B.;The parameter %1 is passed, but no corresponding %2 exists. QtXmlPatternsv5>1E>48< ?0@0<5B@ %1 , => A>>B25BAB2CNI53> %2 =5 ?5@540=>.BThe parameter %1 is required, but no corresponding %2 is supplied. QtXmlPatterns>@5D8:A%1 =5 <>65B 1KBL A2O70=.The prefix %1 cannot be bound. QtXmlPatterns¦5 C40QBAO A2O70BL ?@5D8:A %1. > C<>;G0=8N ?@5D8:A A2O70= A ?@>AB@0=AB2>< 8<Q= %2.SThe prefix %1 cannot be bound. By default, it is already bound to the namespace %2. QtXmlPatternsp@5D8:A 4>;65= 1KBL :>@@5:B=K< %1, => %2 8< =5 O2;O5BAO./The prefix must be a valid %1, which %2 is not. QtXmlPatternsº>@=52>9 C75; 2B>@>3> 0@3C<5=B0 DC=:F88 %1 4>;65= 1KBL 4>:C<5=B><. %2 =5 O2;O5BAO 4>:C<5=B><.gThe root node of the second argument to function %1 must be a document node. %2 is not a document node. QtXmlPatterns˜B>@>9 0@3C<5=B %1 =5 <>65B 1KBL B8?0 %2. = 4>;65= 1KBL B8?0 %3, %4 8;8 %5.QThe second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. QtXmlPatternsú&5;52>5 8<O 2 >1@010BK205<>9 8=AB@C:F88 =5 <>65B 1KBL %1 2 ;N1>9 :><18=0F88 =86=53> 8 25@E=53> @538AB@>2. <O %2 =5:>@@5:B=>.~The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. QtXmlPatternsd&5;52>5 ?@>AB@0=AB2> 8<Q= %1 =5 <>65B 1KBL ?CABK<.-The target namespace of a %1 cannot be empty. QtXmlPatternsŒ=0G5=85 0B@81CB0 %1 M;5<5=B0 %2 4>;6=> 1KBL 8;8 %3, 8;8 %4, => =5 %5.IThe value for attribute %1 on element %2 must either be %3 or %4, not %5. QtXmlPatternsœ=0G5=85 0B@81CB0 %1 4>;6=> 1KBL B8?0 %2, => %3 =5 A>>B25BAB2C5B 40==><C B8?C.=The value of attribute %1 must be of type %2, which %3 isn't. QtXmlPatterns’=0G5=85 0B@81CB0 25@A88 XSL-T 4>;6=> 1KBL B8?0 %1, => %2 8< =5 O2;O5BAO.TThe value of the XSL-T version attribute must be a value of type %1, which %2 isn't. QtXmlPatterns:5@5<5==0O %1 =5 8A?>;L7C5BAOThe variable %1 is unused QtXmlPatterns¨0==K9 >1@01>BG8: =5 @01>B05B A> AE5<0<8, A;54>20B5;L=>, %1 =5 <>65B 8A?>;L7>20BLAO.CThis processor is not Schema-aware and therefore %1 cannot be used. QtXmlPatterns4@5<O %1:%2:%3.%4 =525@=>.Time %1:%2:%3.%4 is invalid. QtXmlPatterns°@5<O 24:%1:%2.%3 =525@=>. 24 G0A0, => <8=CBK, A5:C=4K 8/8;8 <8;;8A5:C=4K >B;8G=K >B 0; _Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0;  QtXmlPatternsÀ-;5<5=BK 25@E=53> C@>2=O B01;8FK AB8;59 4>;6=K 1KBL 2 ?@>AB@0=AB25 8<5=, :>B>@K< %1 =5 O2;O5BAO.NTop level stylesheet elements must be in a non-null namespace, which %1 isn't. QtXmlPatterns„20 0B@81CB0 >1JO2;5=8O ?@>AB@0=AB2 8<Q= 8<5NB >48=0:>2>5 8<O: %1.2 2 ?@5>1@07>20=88, >6840;>AL %1, ?>;CG5=> %2.-Type error in cast, expected %1, received %2. QtXmlPatterns<58725AB2=K9 0B@81CB XSL-T %1.Unknown XSL-T attribute %1. QtXmlPatternsT=0G5=85 %1 B8?0 %2 1>;LH5 <0:A8<C<0 (%3).)Value %1 of type %2 exceeds maximum (%3). QtXmlPatternsR=0G5=85 %1 B8?0 %2 <5=LH5 <8=8<C<0 (%3).*Value %1 of type %2 is below minimum (%3). QtXmlPatterns|5@A8O %1 =5 ?>445@68205BAO. >445@68205BAO XQuery 25@A88 1.0.AVersion %1 is not supported. The supported XQuery version is 1.0. QtXmlPatternsôA;8 ?0@0<5B@ =5>1E>48<, 7=0G5=85 ?> C<>;G0=85 =5 <>65B 1KBL ?5@540=> G5@57 0B@81CB %1 8;8 :>=AB@C:B>@ ?>A;54>20B5;L=>AB8.rWhen a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. QtXmlPatterns¬A;8 %2 A>45@68B 0B@81CB %1, :>=AB@C:B>@ ?>A;54>20B5;L=>AB8 =5 <>65B 1KBL 8A?>;L7>20=.JWhen attribute %1 is present on %2, a sequence constructor cannot be used. QtXmlPatterns|@8 ?@5>1@07>20=88 %2 2 %1 8AE>4=>5 7=0G5=85 =5 <>65B 1KBL %3.:When casting to %1 from %2, the source value cannot be %3. QtXmlPatterns@8 ?@5>1@07>20=88 2 %1 8;8 ?@>872>4=K5 >B =53> B8?K 8AE>4=>5 7=0G5=85 4>;6=> 1KBL B>3> 65 B8?0 8;8 AB@>:>2K< ;8B5@0;><. "8? %2 =54>?CAB8<.When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. QtXmlPatternsüA;8 DC=:F8O %1 8A?>;L7C5BAO 4;O A@02=5=8O 2=CB@8 H01;>=0, 0@3C<5=B 4>;65= 1KBL AAK;:>9 =0 ?5@5<5==CN 8;8 AB@>:>2K< ;8B5@0;><.vWhen function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. QtXmlPatterns’!8<2>;K ?@>15;>2 C40;5=K, 70 8A:;NG5=85< B5E, GB> 1K;8 2 :;0AA0E A8<2>;>2OWhitespace characters are removed, except when they appear in character classes QtXmlPatternsP>4 %1 =525@5=, B0: :0: =0G8=05BAO A %2.-Year %1 is invalid because it begins with %2. QtXmlPatterns ?CAB>empty QtXmlPatterns@>2=> >48= exactly one QtXmlPatterns>48= 8;8 1>;55 one or more QtXmlPatterns=C;L 8;8 1>;55 zero or more QtXmlPatterns=C;L 8;8 >48= zero or one QtXmlPatternsˆ ý) ÿý, x2goclient-4.0.1.1/qt_sv.qm0000644000000000000000000020044612214040350012307 0ustar <¸dÊÍ!¿`¡½ÝB*ؾ+²Ã]4b;z;+¼;8‘;s;M4ŠO¿rOÊÀÅM}4²m4Ú¯¢+;.+;5é+;<+O+O5¹H4²äH·†J¼¶\K·LD¶ÛL“·/PS¸þZrĨ[`²‘[`Ø\ÝfM_ÃÆ&_Ãʯ1º=¿Ã4¿Ã6M‡›î‡›BÚ‡›³ ˜,´K§Ô›§ÔgÙ§ÔÍÙ¨¥«Œ¶2¶Þ¶³Ð%ŽÐ%D¹Ó·æì0Lì07Øì0pì0r™ì0¸sì0ÙÕö5¸Ÿ D:Ó DH+Ô½š,£;®,£È]ɵnaYɵnh÷ɵn‚ɵn†sɵn§1ɵnªnËÔ&¼ËÔSÊÐ BxÿãŽÞÁ˜êMºEqù˜ŒHÊ+z<äè%pù”…×5xŸ#Qé˜Ú%UT{Ç*ä4‡Þ2Àé”ÓCÅ„C„É•_CÎeÚD"õ0DÓ1N»M—­aR?@ðfPá Ùl‡‡¬ÈoR‡)hw¶^s<|{y“Œ•ìéžQ¡ÏWÒQ¨2q›¨2Ü™µ´.<9·Ù£~à dâÄy–òº„eéóurb¢ ¸äƒX"l®ém)(³-À¤QŒ/=NÄÏ1Ø$x5~MH< Äfx?»NÜêNky–a]Ýéì`ê1ë`ꊢ—ú÷™ú¹™úD㥲)d0ª6•5‚ª6•nôª6•Ú9´^¡Q+¶Š¥Ô¶Š¥g?¶Š¥ÌÞº=s‹º÷ž¡à¾‚´Ì)¾œûš¿¾±R¿¾Ö¯¿Eå±’¿EåÖíÀ‚´±ÎÀ‚´×'Ä{ŽÏËÊ8A=ÛAOAß[y’®âL´…›ó‚¤2Só‚¤kÿ󂤅/󂤋 󂤨=󂤬YõðMn·õðMÙÿöE”KÅöE”Tºw­w¯·!ÏeÔ)ÕÅs*/eŰ;„v@B‹y— O«ZõfÎå`àn%cÖƒ¾Nu(µ¸É¯É$¥µ¯É$å¿°‚µáÃ( ÅíÎ^æ`ã nŽ ä,Ô]NëÕÿ‘ ñ;y’&H„\½/¥Ä\FIxS,ÎYMáLYMáU h^ðiïÓ#jsscttwÞ¯}€»ÑLrŒ‡ƒÊŽÛŠ.ë–´N+ –»]¯–»]Ô`˜I¼#˜I¼h˜I¼Ö˜I¼6î˜I¼¢ƒ˜I¼Çõ˜I¼È±˜I¼Ù§ŸIº½ŸYºùŸi»5Ÿy»qŸ‰¹ÍŸ™º Ÿ©ºEŸ¹ºŸé¹UŸù¹‘ŸI¼ÙŸ‰»éŸ™¼%Ÿ©¼aŸ¹¼Ÿù»­¡uDP¡uDW¦oຬ,¥¬,¥h ¬,¥¶ƒ¬,¥Éi¬,¥Î¹Êå¹ÊåŸýɘe·VÌ5$ ¢ÑfR ^ÑfRFYèNÀ¸Aé•F¿õ¬c úöû•¹ûPqS þV…8 þV…Ô•œ”xœ”¹%œ”Éè ×ä8©›0¼‚c\%CÉ!?"£jÉKNËNMR¿òsã]¿žZ]]¿ž`sk¶ÞÁyô^/€{y™Œ¼ŽÂ˜G%JOšÇ¥Üf›ˆ˜®”›ˆ˜Ãœ+¤Ã?œ+¤È+¦±tö§{y™(¯rÉ—]°ˆÁÄ0°ª½¿µÞ%,k½C-¥UÂ5Ë¿Îƨ¥Öƨ¥Ê~˾ä`éÒz ÷Õ§?É–çf•o~bF~bHHoÓ È!ë¿^ý+ï3¨­/ô…ž/ô…¡ˆ6Ï ÂÙG¾ñKMLAU˼UôUôd¡Uô{tZËѵBZËÒµ~ZËÓµºZËÔµö^ãnä]e‘ —ižäPgižäWxy;ÇiÌ}uÀ±}w°¦}wÆû}wÖ Šê‚á Õäe‚›ƒt‘›ƒt > «.°à «.Ç2¥P裵D„àŠ·Ýt%Þ·ÝtU¶·Ýtw)À_ À@ÉF±lmÊ¢ä3!Ê¢ä‹ÛÊçd3ìÊçdlÌÊçd…ýÊçdŒ;ÊçdKÌ59^5ä‡Ê4ì»U€tþ¯Bçƒw®‚} …‘^–2ì<©6’ÑQÌCU]ÔÈDØç<KÕ U|´}arÅ©t‰ Þ}wZ}š$°i}š$ÆÁ}š$ÕÏZ’¢K´K<8FŤAÎû ‘¯Õ/Vuë»EJuV›TŸDi~_É›5kE¤ªXU E bDÄ`gŸA{iê$„½x1 ´¶z*2³n‚¨d‡FŠU€´•z=QºmK¼ìnl½ŒÈÁÚÇC¼:Ê´5o]Ê´5ÚœÚÔ„ßGÝD„ÞºâÜdã®ðF5žðF5ppò»YŽéüùI 3üùIElýAs³ äÑ3€ }$m¼ qeT# Ú¤uŽ íEk4 íE„^ Ac AcGF 3š5ô K!?BE bbÐW b¾`²S b¾`ר iä3"| laôrg ‚|Å} ŒtÓ ” ŒtÓG Ží•! Ÿ¥Þ=‹ ¢³Ä&< ¢³Äw §²yp ­>ó«è ­‚µ | ¸æÉb8 ¸æÉk• ÜKç ÝÕÑ– ñ%'Ðâ ö ® ÷»¼½ ü®Ž )µža */å³7 7uóæ =äJ} BÇéž´ Tþ^³á ]‘ž `±ZÓ `±¦J `±©‰ c(å | dÐÍÉ9 eœÇ Á eœÇEç fŽ1MÓ gînå> kŸ,Þ rD"å xšÄzµ ~ó”_û …éÓ! ‡Î9q ˜Iœ$Þ ˜Iœ+G ˜Iœ5H šÉ;_ œ¬mD œ¬­% ¨JÉÃÏ ¬%p(n ¬,…Ê ¬,…@ °ÌÕ)/ Ë”I ÐP¸% ÐP¸ØÝ ÔàÄNQ ÔàÄV Þ68£Ü è¼:-Ñ ëf  ëf A­ ÷4]Å ý‡sé ý‡sD AARV ˜Ä7Y m,Ý #-t~0 0†N)ð EÔ9 Î Lö%p LöÙ; Mc\:D SÐ_z V×c½ ]â$1Z f)c f)Aö io>èº mû`x wÇ ] ŒHŠ ŒH@† ‘$þC ’.@Å “þ’‡ — i“ £Ü Ð £Ü h? £Ü ÎE ¯ÙJ' ¯ÙJDP ¿t.ˆù ÂkÔÌj ÃÓ‡? ÈÇ ̺óIÑ Ô-DJ âkÔ² âkÔ×i èU)Wº ðË<| õ0Ë¿˜  „OÅ  „VÔ öÀ xHZ .Éã-> 7F´äí >ÏòRÓ >ÏòS >ÏòTx >ÏòYÒ >ÏòeE >ÏòfÐ >Ïò€Í >ÏòÌ >ÏòÊÏ >ÏòË D€TK IëË,™ RVŽGš RVŽØA RV®Ÿ” S.ŸÈÜ SÀ õ YåÛ [•›Ò² j7o?‡ p¡Ã-€ ŒÑBaØ ŽèçÌ ½T0 ½Tiv ½T†ñ ½TŽ” ’›¢c “èÄ2¿ “èÄ‹x –‚™™Ö )d~Ë ©‰Ñö ¬Á.0Ó ¬Á.[½ ¬Á.j@ ¬Á.‚Ñ ¬Á.ˆq ¬Á.§² ¬Á.ªî ¸a|¸ » y ë¬år úù t¥ :bX Êœ+à +>º.¥ 0ÒEâÊ ;É¾Í PtµpØ PtµÛ¬ fèe¯? fèeÕ g­œw iFC·­ iØÄE´ iØÄ¸ u®Àx w®¯í w®ÆK w®ÕW w}¤°) w}¤Æ„ w}¤Õ‘ ƒÈôLø ƒÈôUe —Ã^rÇ ªôRÓ· ÜX  êD 4 ðt5p3 ðt5Ûr ø¾qO ø¾Ü ø)¤« ú¾/T'}gT'è*‡«%¤*‡«Ùn/ÇE'/ÇEzJIÌ_XƒXRuÓ[Ÿ Þa.Å7•vÉ…,y$¦€~¹YK´÷SdêÇB¤$bÊæÂÓeÎ|<Ý–þšlò[y–µ íÒ íÒCƒ"#«x$ÚU%º4:Ž%º4GË-v›ÑC0i)¾0’À¾à1c{2wT½ÊD¢ÃZHúùJdYL$.ßÒc5±c5ÖvyƒCk{~a½X•`é”4¯·{¯·CξN>–Ðky’ZéPé˜;øt2*“û¾hû¾Šû¾¦·û¾©õiéôÅtkomst nekadPermission denied Phonon::MMF2%1, %2 är inte definierad%1, %2 not definedQ3Accel4Tvetydigt %1 hanteras inteAmbiguous %1 not handledQ3AccelTa bortDelete Q3DataTable FalsktFalse Q3DataTable InfogaInsert Q3DataTableSantTrue Q3DataTableUppdateraUpdate Q3DataTablep%1 Filen hittades inte. Kontrollera sökväg och filnamn.+%1 File not found. Check path and filename. Q3FileDialog&Ta bort&Delete Q3FileDialog&Nej&No Q3FileDialog&OK&OK Q3FileDialog &Öppna&Open Q3FileDialog&Byt namn&Rename Q3FileDialog &Spara&Save Q3FileDialog&Osorterad &Unsorted Q3FileDialog&Ja&Yes Q3FileDialogh<qt>Är du säker på att du vill ta bort %1 "%2"?</qt>1Are you sure you wish to delete %1 "%2"? Q3FileDialogAlla filer (*) All Files (*) Q3FileDialog Alla filer (*.*)All Files (*.*) Q3FileDialogAttribut Attributes Q3FileDialogTillbakaBack Q3FileDialog AvbrytCancel Q3FileDialog8Kopiera eller ta bort en filCopy or Move a File Q3FileDialogSkapa ny mappCreate New Folder Q3FileDialog DatumDate Q3FileDialogTa bort %1 Delete %1 Q3FileDialogDetaljvy Detail View Q3FileDialogKatalogDir Q3FileDialogKataloger Directories Q3FileDialogKatalog: Directory: Q3FileDialogFelError Q3FileDialogFilFile Q3FileDialogFil&namn: File &name: Q3FileDialogFil&typ: File &type: Q3FileDialogHitta katalogFind Directory Q3FileDialogOtillgänglig Inaccessible Q3FileDialog Listvy List View Q3FileDialogLeta &i: Look &in: Q3FileDialogNamnName Q3FileDialogNy mapp New Folder Q3FileDialogNy mapp %1 New Folder %1 Q3FileDialogNy mapp 1 New Folder 1 Q3FileDialog En katalog uppåtOne directory up Q3FileDialog ÖppnaOpen Q3FileDialog ÖppnaOpen  Q3FileDialog6Förhandsgranska filinnehållPreview File Contents Q3FileDialog<Förhandsgranska filinformationPreview File Info Q3FileDialogUppdat&eraR&eload Q3FileDialogSkrivskyddad Read-only Q3FileDialogLäs-skriv Read-write Q3FileDialogLäs: %1Read: %1 Q3FileDialogSpara somSave As Q3FileDialogVälj en katalogSelect a Directory Q3FileDialog"Visa &dolda filerShow &hidden files Q3FileDialogStorlekSize Q3FileDialogSorteraSort Q3FileDialog(Sortera efter &datum Sort by &Date Q3FileDialog&Sortera efter &namn Sort by &Name Q3FileDialog,Sortera efter &storlek Sort by &Size Q3FileDialogSpecialSpecial Q3FileDialog6Symbolisk länk till katalogSymlink to Directory Q3FileDialog.Symbolisk länk till filSymlink to File Q3FileDialog6Symbolisk länk till specialSymlink to Special Q3FileDialogTypType Q3FileDialogLässkyddad Write-only Q3FileDialogSkriv: %1 Write: %1 Q3FileDialogkatalogen the directory Q3FileDialog filenthe file Q3FileDialog"symboliska länken the symlink Q3FileDialog<Kunde inte skapa katalogen %1Could not create directory %1 Q3LocalFs(Kunde inte öppna %1Could not open %1 Q3LocalFs8Kunde inte läsa katalogen %1Could not read directory %1 Q3LocalFsXKunde inte ta bort filen eller katalogen %1%Could not remove file or directory %1 Q3LocalFsJKunde inte byta namn på %1 till %2Could not rename %1 to %2 Q3LocalFs4Kunde inte skriva till %1Could not write %1 Q3LocalFsAnpassa... Customize... Q3MainWindowRada uppLine up Q3MainWindow@Åtgärden stoppades av användarenOperation stopped by the userQ3NetworkProtocol AvbrytCancelQ3ProgressDialogVerkställApply Q3TabDialog AvbrytCancel Q3TabDialogStandardvärdenDefaults Q3TabDialog HjälpHelp Q3TabDialogOKOK Q3TabDialog&Kopiera&Copy Q3TextEditKlistra &in&Paste Q3TextEdit&Gör om&Redo Q3TextEdit &Ångra&Undo Q3TextEditTömClear Q3TextEditKlipp u&tCu&t Q3TextEditMarkera alla Select All Q3TextEdit StängClose Q3TitleBar Stänger fönstretCloses the window Q3TitleBar`Innehåller kommandon för att manipulera fönstret*Contains commands to manipulate the window Q3TitleBar’Visar namnet på fönstret och innehåller kontroller för att manipulera detFDisplays the name of the window and contains controls to manipulate it Q3TitleBar4Gör fönstret till helskärmMakes the window full screen Q3TitleBarMaximeraMaximize Q3TitleBarMinimeraMinimize Q3TitleBar2Flyttar fönstret ur vägenMoves the window out of the way Q3TitleBarnÅterställer ett maximerat fönster tillbaka till normalt&Puts a maximized window back to normal Q3TitleBarÅterställ nedåt Restore down Q3TitleBarÅterställ uppåt Restore up Q3TitleBar SystemSystem Q3TitleBar Mer...More... Q3ToolBar(okänt) (unknown) Q3UrlOperator¦Protokollet \"%1\" har inte stöd för att kopiera eller flytta filer eller katalogerIThe protocol `%1' does not support copying or moving files or directories Q3UrlOperatorxProtokollet \"%1\" har inte stöd för att skapa nya kataloger;The protocol `%1' does not support creating new directories Q3UrlOperatorhProtokollet \"%1\" har inte stöd för att hämta filer0The protocol `%1' does not support getting files Q3UrlOperatorpProtokollet \"%1\" har inte stöd för att lista kataloger6The protocol `%1' does not support listing directories Q3UrlOperatorhProtokollet \"%1\" har inte stöd för att lämna filer0The protocol `%1' does not support putting files Q3UrlOperatorŒProtokollet \"%1\" har inte stöd för att ta bort filer eller kataloger@The protocol `%1' does not support removing files or directories Q3UrlOperator–Protokollet \"%1\" har inte stöd för att byta namn på filer eller kataloger@The protocol `%1' does not support renaming files or directories Q3UrlOperator8Protokollet \"%\" stöds inte"The protocol `%1' is not supported Q3UrlOperator&Avbryt&CancelQ3Wizard&Färdig&FinishQ3Wizard &Hjälp&HelpQ3Wizard&Nästa >&Next >Q3Wizard< Till&baka< &BackQ3Wizard(Anslutningen nekadesConnection refusedQAbstractSocketHTidsgränsen för anslutning överstegsConnection timed outQAbstractSocket(Värden hittades inteHost not foundQAbstractSocket0Nätverket är inte nåbartNetwork unreachableQAbstractSocket0Uttaget är inte anslutetSocket is not connectedQAbstractSocketHTidsgräns för uttagsåtgärd överstegsSocket operation timed outQAbstractSocket&Stega uppåt&Step upQAbstractSpinBoxStega &nedåt Step &downQAbstractSpinBox TryckPressQAccessibleButtonAktiveraActivate QApplicationDAktiverar programmets huvudfönster#Activates the program's main window QApplicationVBinären \"%1\" kräver Qt %2, hittade Qt %3.,Executable '%1' requires Qt %2, found Qt %3. QApplication<Inkompatibelt Qt-biblioteksfelIncompatible Qt Library Error QApplicationLTRQT_LAYOUT_DIRECTION QApplication&Avbryt&Cancel QAxSelectCOM-&objekt: COM &Object: QAxSelectOKOK QAxSelect(Välj ActiveX ControlSelect ActiveX Control QAxSelect KryssaCheck QCheckBox VäxlaToggle QCheckBoxAvkryssaUncheck QCheckBox:&Lägg till i anpassade färger&Add to Custom Colors QColorDialog&Basfärger &Basic colors QColorDialog"&Anpassade färger&Custom colors QColorDialog &Grön:&Green: QColorDialog &Röd:&Red: QColorDialog&Mättnad:&Sat: QColorDialog&Ljushet:&Val: QColorDialogAlfa&kanal:A&lpha channel: QColorDialog Bl&å:Bl&ue: QColorDialogNya&ns:Hu&e: QColorDialog StängClose QComboBox FalsktFalse QComboBox ÖppnaOpen QComboBoxSantTrue QComboBoxBKunde inte verkställa transaktionUnable to commit transaction QDB2Driver$Kunde inte anslutaUnable to connect QDB2DriverJKunde inte rulla tillbaka transaktionUnable to rollback transaction QDB2DriverZKunde inte ställa in automatisk verkställningUnable to set autocommit QDB2Driver2Kunde inte binda variabelUnable to bind variable QDB2Result2Kunde inte köra frågesatsUnable to execute statement QDB2Result.Kunde inte hämta förstaUnable to fetch first QDB2Result,Kunde inte hämta nästaUnable to fetch next QDB2Result4Kunde inte hämta posten %1Unable to fetch record %1 QDB2Result<Kunde inte förbereda frågesatsUnable to prepare statement QDB2ResultAMAM QDateTimeEditPMPM QDateTimeEditamam QDateTimeEditpmpm QDateTimeEditVad är det här? What's This?QDialog&Avbryt&CancelQDialogButtonBox &Stäng&CloseQDialogButtonBox&Nej&NoQDialogButtonBox&OK&OKQDialogButtonBox &Spara&SaveQDialogButtonBox&Ja&YesQDialogButtonBox AvbrytAbortQDialogButtonBoxVerkställApplyQDialogButtonBox AvbrytCancelQDialogButtonBox StängCloseQDialogButtonBoxFörkastaDiscardQDialogButtonBoxSpara inte Don't SaveQDialogButtonBox HjälpHelpQDialogButtonBoxIgnoreraIgnoreQDialogButtonBoxN&ej till alla N&o to AllQDialogButtonBoxOKOKQDialogButtonBox ÖppnaOpenQDialogButtonBoxÅterställResetQDialogButtonBox0Återställ standardvärdenRestore DefaultsQDialogButtonBoxFörsök igenRetryQDialogButtonBox SparaSaveQDialogButtonBoxSpara allaSave AllQDialogButtonBoxJa till &alla Yes to &AllQDialogButtonBoxÄndringsdatum Date Modified QDirModelSortKind QDirModelNamnName QDirModelStorlekSize QDirModelTypType QDirModel StängClose QDockWidget MindreLessQDoubleSpinBoxMerMoreQDoubleSpinBox&OK&OK QErrorMessage6&Visa detta meddelande igen&Show this message again QErrorMessage,Felsökningsmeddelande:Debug Message: QErrorMessageÖdesdigert fel: Fatal Error: QErrorMessageVarning:Warning: QErrorMessage %1 Katalogen hittades inte. Kontrollera att det korrekta katalognamnet angavs.K%1 Directory not found. Please verify the correct directory name was given. QFileDialog%1 Filen hittades inte. Kontrollera att det korrekta filnamnet angavs.A%1 File not found. Please verify the correct file name was given. QFileDialogJ%1 finns redan. Vill du ersätta den?-%1 already exists. Do you want to replace it? QFileDialog&Ta bort&Delete QFileDialog &Öppna&Open QFileDialog&Byt namn&Rename QFileDialog &Spara&Save QFileDialogd\"%1\" är skrivskyddad. Vill du ta bort den ändå?9'%1' is write protected. Do you want to delete it anyway? QFileDialogAlla filer (*) All Files (*) QFileDialog Alla filer (*.*)All Files (*.*) QFileDialogTÄr du säker på att du vill ta bort \"%1\"?!Are sure you want to delete '%1'? QFileDialogTillbakaBack QFileDialog:Kunde inte ta bort katalogen.Could not delete directory. QFileDialogSkapa ny mappCreate New Folder QFileDialogDetaljerad vy Detail View QFileDialogKataloger Directories QFileDialogKatalog: Directory: QFileDialog EnhetDrive QFileDialogFilFile QFileDialogFil&namn: File &name: QFileDialogFiler av typen:Files of type: QFileDialogHitta katalogFind Directory QFileDialog FramåtForward QFileDialog Listvy List View QFileDialogMin dator My Computer QFileDialogNy mapp New Folder QFileDialog ÖppnaOpen QFileDialogFöräldrakatalogParent Directory QFileDialogSpara somSave As QFileDialog"Visa &dolda filerShow &hidden files QFileDialog OkäntUnknown QFileDialogÄndringsdatum Date ModifiedQFileSystemModelSortKindQFileSystemModelMin dator My ComputerQFileSystemModelNamnNameQFileSystemModelStorlekSizeQFileSystemModelTypTypeQFileSystemModel&Typsnitt&Font QFontDialog&Storlek&Size QFontDialog&Understruken &Underline QFontDialogEffekterEffects QFontDialogT&ypsnittsstil Font st&yle QFontDialogTestSample QFontDialogVälj typsnitt Select Font QFontDialogGenomstru&ken Stri&keout QFontDialogSkr&ivsystemWr&iting System QFontDialogBByte av katalog misslyckades: %1Changing directory failed: %1QFtp(Ansluten till värdenConnected to hostQFtp.Ansluten till värden %1Connected to host %1QFtpPAnslutning till värden misslyckades: %1Connecting to host failed: %1QFtp&Anslutningen stängdConnection closedQFtpLAnslutning vägrades för dataanslutning&Connection refused for data connectionQFtpHAnslutningen till värden %1 vägradesConnection refused to host %1QFtp:Anslutningen till %1 stängdesConnection to %1 closedQFtpPSkapandet av katalogen misslyckades: %1Creating directory failed: %1QFtpPNedladdningen av filen misslyckades: %1Downloading file failed: %1QFtp$Värden %1 hittades Host %1 foundQFtp.Värden %1 hittades inteHost %1 not foundQFtpVärden hittades Host foundQFtpNListning av katalogen misslyckades: %1Listing directory failed: %1QFtp8Inloggning misslyckades: %1Login failed: %1QFtpInte ansluten Not connectedQFtpTBorttagning av katalogen misslyckades: %1Removing directory failed: %1QFtpLBorttagning av filen misslyckades: %1Removing file failed: %1QFtpOkänt fel Unknown errorQFtpPUppladdningen av filen misslyckades: %1Uploading file failed: %1QFtpOkänt fel Unknown error QHostInfo(Värden hittades inteHost not foundQHostInfoAgentOkänd adresstypUnknown address typeQHostInfoAgentOkänt fel Unknown errorQHostInfoAgent$Ansluten till värdConnected to hostQHttp.Ansluten till värden %1Connected to host %1QHttp&Anslutningen stängdConnection closedQHttp(Anslutningen nekadesConnection refusedQHttp:Anslutningen till %1 stängdesConnection to %1 closedQHttp2HTTP-begäran misslyckadesHTTP request failedQHttp$Värden %1 hittades Host %1 foundQHttp.Värden %1 hittades inteHost %1 not foundQHttpVärden hittades Host foundQHttp2Ogiltig HTTP chunked bodyInvalid HTTP chunked bodyQHttp.Ogiltig HTTP-svarshuvudInvalid HTTP response headerQHttpLIngen server inställd att ansluta tillNo server set to connect toQHttpBegäran avbrötsRequest abortedQHttpHServern stängde oväntat anslutningen%Server closed connection unexpectedlyQHttpOkänt fel Unknown errorQHttp$Fel innehållslängdWrong content lengthQHttp:Kunde inte starta transaktionCould not start transaction QIBaseDriver4Fel vid öppning av databasError opening database QIBaseDriverBKunde inte verkställa transaktionUnable to commit transaction QIBaseDriverJKunde inte rulla tillbaka transaktionUnable to rollback transaction QIBaseDriver:Kunde inte allokera frågesatsCould not allocate statement QIBaseResultNKunde inte beskriva inmatningsfrågesats"Could not describe input statement QIBaseResult:Kunde inte beskriva frågesatsCould not describe statement QIBaseResult6Kunde inte hämta nästa postCould not fetch next item QIBaseResult,Kunde inte hitta kedjaCould not find array QIBaseResult.Kunde inte få kedjedataCould not get array data QIBaseResultDKunde inte gå frågesatsinformationCould not get query info QIBaseResultDKunde inte få frågesatsinformationCould not get statement info QIBaseResult<Kunde inte förbereda frågesatsCould not prepare statement QIBaseResult:Kunde inte starta transaktionCould not start transaction QIBaseResult6Kunde inte stänga frågesatsUnable to close statement QIBaseResultBKunde inte verkställa transaktionUnable to commit transaction QIBaseResult*Kunde inte skapa BLOBUnable to create BLOB QIBaseResult2Kunde inte köra frågesatsUnable to execute query QIBaseResult*Kunde inte öppna BLOBUnable to open BLOB QIBaseResult(Kunde inte läsa BLOBUnable to read BLOB QIBaseResult,Kunde inte skriva BLOBUnable to write BLOB QIBaseResult>Inget ledigt utrymme på enhetenNo space left on device QIODevice:Ingen sådan fil eller katalogNo such file or directory QIODeviceÅtkomst nekadPermission denied QIODevice*För många öppna filerToo many open files QIODeviceOkänt fel Unknown error QIODevice0Mac OS X-inmatningsmetodMac OS X input method QInputContext.Windows-inmatningsmetodWindows input method QInputContextXIMXIM QInputContext&XIM-inmatningsmetodXIM input method QInputContextOkänt fel Unknown errorQLibrary&Kopiera&Copy QLineEditKlistra &in&Paste QLineEdit&Gör om&Redo QLineEdit &Ångra&Undo QLineEditKlipp &utCu&t QLineEditTa bortDelete QLineEditMarkera alla Select All QLineEdit<Kunde inte påbörja transaktionUnable to begin transaction QMYSQLDriverBKunde inte verkställa transaktionUnable to commit transaction QMYSQLDriver$Kunde inte anslutaUnable to connect QMYSQLDriver:Kunde inte öppna databasen \"Unable to open database ' QMYSQLDriverJKunde inte rulla tillbaka transaktionUnable to rollback transaction QMYSQLDriver2Kunde inte binda utvärdenUnable to bind outvalues QMYSQLResult,Kunde inte binda värdeUnable to bind value QMYSQLResult2Kunde inte köra frågesatsUnable to execute query QMYSQLResult2Kunde inte köra frågesatsUnable to execute statement QMYSQLResult*Kunde inte hämta dataUnable to fetch data QMYSQLResult<Kunde inte förbereda frågesatsUnable to prepare statement QMYSQLResult>Kunde inte återställa frågesatsUnable to reset statement QMYSQLResult2Kunde inte lagra resultatUnable to store result QMYSQLResultPKunde inte lagra resultat från frågesats!Unable to store statement results QMYSQLResult%1 - [%2] %1 - [%2] QMdiSubWindow &Stäng&Close QMdiSubWindow&Flytta&Move QMdiSubWindowÅte&rställ&Restore QMdiSubWindow&Storlek&Size QMdiSubWindow StängClose QMdiSubWindow HjälpHelp QMdiSubWindowMa&ximera Ma&ximize QMdiSubWindowMaximeraMaximize QMdiSubWindowMenyMenu QMdiSubWindowMi&nimera Mi&nimize QMdiSubWindowMinimeraMinimize QMdiSubWindowÅterställ nedåt Restore Down QMdiSubWindow&Stanna kvar övers&t Stay on &Top QMdiSubWindow StängCloseQMenuKörExecuteQMenu ÖppnaOpenQMenu Om QtAbout Qt QMessageBox HjälpHelp QMessageBox Dölj detaljer,,,Hide Details... QMessageBoxOKOK QMessageBox Visa detaljer...Show Details... QMessageBox(Välj inmatningsmetod Select IMQMultiInputContextFVäxlare för flera inmatningsmetoderMultiple input method switcherQMultiInputContextPlugin Växlare för flera inmatningsmetoder som använder sammanhangsmenyn för textwidgarMMultiple input method switcher that uses the context menu of the text widgetsQMultiInputContextPluginVEtt annat uttag lyssnar redan på samma port4Another socket is already listening on the same portQNativeSocketEngine„Försök att använda IPv6-uttag på en plattform som saknar IPv6-stöd=Attempt to use IPv6 socket on a platform with no IPv6 supportQNativeSocketEngine*Anslutningen vägradesConnection refusedQNativeSocketEngineHTidsgränsen för anslutning överstegsConnection timed outQNativeSocketEngineHDatagram för för stor för att skickaDatagram was too large to sendQNativeSocketEngine(Värden är inte nåbarHost unreachableQNativeSocketEngine0Ogiltig uttagsbeskrivareInvalid socket descriptorQNativeSocketEngineNätverksfel Network errorQNativeSocketEngineLTidsgräns för nätverksåtgärd överstegsNetwork operation timed outQNativeSocketEngine0Nätverket är inte nåbartNetwork unreachableQNativeSocketEngine(Åtgärd på icke-uttagOperation on non-socketQNativeSocketEngine Slut på resurserOut of resourcesQNativeSocketEngineÅtkomst nekadPermission deniedQNativeSocketEngine2Protokolltypen stöds inteProtocol type not supportedQNativeSocketEngine8Adressen är inte tillgängligThe address is not availableQNativeSocketEngine&Adressen är skyddadThe address is protectedQNativeSocketEngine:Bindningsadress används redan#The bound address is already in useQNativeSocketEngine@Fjärrvärden stängde anslutningen%The remote host closed the connectionQNativeSocketEngineNKunde inte initiera uttag för broadcast%Unable to initialize broadcast socketQNativeSocketEngineTKunde inte initiera icke-blockerande uttag(Unable to initialize non-blocking socketQNativeSocketEngineBKunde inte ta emot ett meddelandeUnable to receive a messageQNativeSocketEngine@Kunde inte skicka ett meddelandeUnable to send a messageQNativeSocketEngine"Kunde inte skrivaUnable to writeQNativeSocketEngineOkänt fel Unknown errorQNativeSocketEngine2Uttagsåtgärden stöds inteUnsupported socket operationQNativeSocketEngine<Kunde inte påbörja transaktionUnable to begin transaction QOCIDriverBKunde inte verkställa transaktionUnable to commit transaction QOCIDriver&Kunde inte logga inUnable to logon QOCIDriverJKunde inte rulla tillbaka transaktionUnable to rollback transaction QOCIDriver:Kunde inte allokera frågesatsUnable to alloc statement QOCIResultNKunde inte binda kolumn för satskörning'Unable to bind column for batch execute QOCIResult,Kunde inte binda värdeUnable to bind value QOCIResult2Kunde inte köra satsfråga!Unable to execute batch statement QOCIResult2Kunde inte köra frågesatsUnable to execute statement QOCIResult0Kunde inte gå till nästaUnable to goto next QOCIResult<Kunde inte förbereda frågesatsUnable to prepare statement QOCIResultBKunde inte verkställa transaktionUnable to commit transaction QODBCDriver$Kunde inte anslutaUnable to connect QODBCDriver\Kunde inte inaktivera automatisk verkställningUnable to disable autocommit QODBCDriverXKunde inte aktivera automatisk verkställningUnable to enable autocommit QODBCDriverJKunde inte rulla tillbaka transaktionUnable to rollback transaction QODBCDriverQODBCResult::reset: Kunde inte ställa in \"SQL_CURSOR_STATIC\" som frågesatsattribut. Kontrollera konfigurationen för din ODBC-drivrutinyQODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResult2Kunde inte binda variabelUnable to bind variable QODBCResult2Kunde inte köra frågesatsUnable to execute statement QODBCResult.Kunde inte hämta förstaUnable to fetch first QODBCResult,Kunde inte hämta nästaUnable to fetch next QODBCResult<Kunde inte förbereda frågesatsUnable to prepare statement QODBCResultNamnNameQPPDOptionsModel VärdeValueQPPDOptionsModel<Kunde inte påbörja transaktionCould not begin transaction QPSQLDriverBKunde inte verkställa transaktionCould not commit transaction QPSQLDriverJKunde inte rulla tillbaka transaktionCould not rollback transaction QPSQLDriver$Kunde inte anslutaUnable to connect QPSQLDriver,Kunde inte skapa frågaUnable to create query QPSQLResult<Kunde inte förbereda frågesatsUnable to prepare statement QPSQLResultLiggande LandscapeQPageSetupWidgetSidstorlek: Page size:QPageSetupWidgetPapperskälla: Paper source:QPageSetupWidgetStåendePortraitQPageSetupWidgetOkänt fel Unknown error QPluginLoaderR%1 finns redan. Vill du skriva över den?/%1 already exists. Do you want to overwrite it? QPrintDialog$A0 (841 x 1189 mm)A0 (841 x 1189 mm) QPrintDialog"A1 (594 x 841 mm)A1 (594 x 841 mm) QPrintDialog"A2 (420 x 594 mm)A2 (420 x 594 mm) QPrintDialog"A3 (297 x 420 mm)A3 (297 x 420 mm) QPrintDialogDA4 (210 x 297 mm, 8.26 x 11.7 tum)%A4 (210 x 297 mm, 8.26 x 11.7 inches) QPrintDialog"A5 (148 x 210 mm)A5 (148 x 210 mm) QPrintDialog"A6 (105 x 148 mm)A6 (105 x 148 mm) QPrintDialog A7 (74 x 105 mm)A7 (74 x 105 mm) QPrintDialogA8 (52 x 74 mm)A8 (52 x 74 mm) QPrintDialogA9 (37 x 52 mm)A9 (37 x 52 mm) QPrintDialogAlias: %1 Aliases: %1 QPrintDialog&B0 (1000 x 1414 mm)B0 (1000 x 1414 mm) QPrintDialog$B1 (707 x 1000 mm)B1 (707 x 1000 mm) QPrintDialog B10 (31 x 44 mm)B10 (31 x 44 mm) QPrintDialog"B2 (500 x 707 mm)B2 (500 x 707 mm) QPrintDialog"B3 (353 x 500 mm)B3 (353 x 500 mm) QPrintDialog"B4 (250 x 353 mm)B4 (250 x 353 mm) QPrintDialogDB5 (176 x 250 mm, 6.93 x 9.84 tum)%B5 (176 x 250 mm, 6.93 x 9.84 inches) QPrintDialog"B6 (125 x 176 mm)B6 (125 x 176 mm) QPrintDialog B7 (88 x 125 mm)B7 (88 x 125 mm) QPrintDialogB8 (62 x 88 mm)B8 (62 x 88 mm) QPrintDialogB9 (44 x 62 mm)B9 (44 x 62 mm) QPrintDialog$C5E (163 x 229 mm)C5E (163 x 229 mm) QPrintDialog$DLE (110 x 220 mm)DLE (110 x 220 mm) QPrintDialogLExecutive (7.5 x 10 tum, 191 x 254 mm))Executive (7.5 x 10 inches, 191 x 254 mm) QPrintDialogfFilen %1 är inte skrivbar. Välj ett annat filnamn.=File %1 is not writable. Please choose a different file name. QPrintDialog(Folio (210 x 330 mm)Folio (210 x 330 mm) QPrintDialog*Ledger (432 x 279 mm)Ledger (432 x 279 mm) QPrintDialogDLegal (8.5 x 14 tum, 216 x 356 mm)%Legal (8.5 x 14 inches, 216 x 356 mm) QPrintDialogFLetter (8.5 x 11 tum, 216 x 279 mm)&Letter (8.5 x 11 inches, 216 x 279 mm) QPrintDialogOKOK QPrintDialogSkriv utPrint QPrintDialog*Skriv ut till fil ...Print To File ... QPrintDialogSkriv ut alla Print all QPrintDialog$Skriv ut intervall Print range QPrintDialog,Tabloid (279 x 432 mm)Tabloid (279 x 432 mm) QPrintDialogJUS Common #10 Envelope (105 x 241 mm)%US Common #10 Envelope (105 x 241 mm) QPrintDialoglokalt anslutenlocally connected QPrintDialog okäntunknown QPrintDialog StängCloseQPrintPreviewDialogLiggande LandscapeQPrintPreviewDialogStåendePortraitQPrintPreviewDialogSorteraCollateQPrintSettingsOutput KopiorCopiesQPrintSettingsOutputSidor från Pages fromQPrintSettingsOutputSkriv ut alla Print allQPrintSettingsOutput$Skriv ut intervall Print rangeQPrintSettingsOutputVal SelectionQPrintSettingsOutputtilltoQPrintSettingsOutputSkrivarePrinter QPrintWidget AvbrytCancelQProgressDialog ÖppnaOpen QPushButton KryssaCheck QRadioButton4felaktig teckenklasssyntaxbad char class syntaxQRegExp.felaktig seframåtsyntaxbad lookahead syntaxQRegExp4felaktig upprepningssyntaxbad repetition syntaxQRegExp8inaktiverad funktion användsdisabled feature usedQRegExp*ogiltigt oktalt värdeinvalid octal valueQRegExp$nådde intern gränsmet internal limitQRegExp2saknar vänster avgränsaremissing left delimQRegExp&inga fel inträffadeno error occurredQRegExpoväntat slutunexpected endQRegExp4Fel vid öppning av databasError opening databaseQSQLite2Driver<Kunde inte påbörja transaktionUnable to begin transactionQSQLite2DriverBKunde inte verkställa transaktionUnable to commit transactionQSQLite2DriverJKunde inte rulla tillbaka transaktionUnable to rollback transactionQSQLite2Driver2Kunde inte köra frågesatsUnable to execute statementQSQLite2Result2Kunde inte hämta resultatUnable to fetch resultsQSQLite2Result8Fel vid stängning av databasError closing database QSQLiteDriver4Fel vid öppning av databasError opening database QSQLiteDriver<Kunde inte påbörja transaktionUnable to begin transaction QSQLiteDriverBKunde inte verkställa transaktionUnable to commit transaction QSQLiteDriverJKunde inte rulla tillbaka transaktionUnable to rollback transaction QSQLiteDriver6Parameterantal stämmer inteParameter count mismatch QSQLiteResult6Kunde inte binda parametrarUnable to bind parameters QSQLiteResult2Kunde inte köra frågesatsUnable to execute statement QSQLiteResult(Kunde inte hämta radUnable to fetch row QSQLiteResult>Kunde inte återställa frågesatsUnable to reset statement QSQLiteResult StängCloseQScriptDebuggerCodeFinderWidgetNamnNameQScriptDebuggerLocalsModel VärdeValueQScriptDebuggerLocalsModelNamnNameQScriptDebuggerStackModelSökSearchQScriptEngineDebugger StängCloseQScriptNewBreakpointWidgetNederkantBottom QScrollBarVänsterkant Left edge QScrollBarRad nedåt Line down QScrollBarRada uppLine up QScrollBarSida nedåt Page down QScrollBarSida vänster Page left QScrollBarSida höger Page right QScrollBarSida uppåtPage up QScrollBarPositionPosition QScrollBarHögerkant Right edge QScrollBarRulla nedåt Scroll down QScrollBarRulla här Scroll here QScrollBarRulla vänster Scroll left QScrollBarRulla höger Scroll right QScrollBarRulla uppåt Scroll up QScrollBarÖverkantTop QScrollBar++ QShortcutAltAlt QShortcut BakåtBack QShortcutBacksteg Backspace QShortcutBacktabBacktab QShortcutFörstärk bas Bass Boost QShortcutSänk bas Bass Down QShortcutHöj basBass Up QShortcutRing uppCall QShortcutCaps Lock Caps Lock QShortcutCapsLockCapsLock QShortcutTömClear QShortcut StängClose QShortcutSammanhang1Context1 QShortcutSammanhang2Context2 QShortcutSammanhang3Context3 QShortcutSammanhang4Context4 QShortcutCtrlCtrl QShortcutDelDel QShortcut DeleteDelete QShortcutNedDown QShortcutEndEnd QShortcut EnterEnter QShortcutEscEsc QShortcut EscapeEscape QShortcutF%1F%1 QShortcutFavoriter Favorites QShortcutVändFlip QShortcut FramåtForward QShortcutLägg påHangup QShortcut HjälpHelp QShortcutHomeHome QShortcutHemsida Home Page QShortcutInsIns QShortcut InsertInsert QShortcutStarta (0) Launch (0) QShortcutStarta (1) Launch (1) QShortcutStarta (2) Launch (2) QShortcutStarta (3) Launch (3) QShortcutStarta (4) Launch (4) QShortcutStarta (5) Launch (5) QShortcutStarta (6) Launch (6) QShortcutStarta (7) Launch (7) QShortcutStarta (8) Launch (8) QShortcutStarta (9) Launch (9) QShortcutStarta (A) Launch (A) QShortcutStarta (B) Launch (B) QShortcutStarta (C) Launch (C) QShortcutStarta (D) Launch (D) QShortcutStarta (E) Launch (E) QShortcutStarta (F) Launch (F) QShortcutStarta e-post Launch Mail QShortcutStarta media Launch Media QShortcutVänsterLeft QShortcutMedia nästa Media Next QShortcutMedia spela upp Media Play QShortcut Media föregåendeMedia Previous QShortcutMedia spela in Media Record QShortcutMedia stopp Media Stop QShortcutMenyMenu QShortcutMetaMeta QShortcutNejNo QShortcutNum LockNum Lock QShortcutNumLockNumLock QShortcutNumber Lock Number Lock QShortcutÖppna urlOpen URL QShortcutPage Down Page Down QShortcutPage UpPage Up QShortcut PausePause QShortcut PgDownPgDown QShortcutPgUpPgUp QShortcut PrintPrint QShortcutPrint Screen Print Screen QShortcutUppdateraRefresh QShortcut ReturnReturn QShortcut HögerRight QShortcut SparaSave QShortcutScroll Lock Scroll Lock QShortcutScrollLock ScrollLock QShortcutSökSearch QShortcutVäljSelect QShortcut ShiftShift QShortcutMellanslagSpace QShortcutAvvaktaStandby QShortcut StoppaStop QShortcut SysReqSysReq QShortcutSystem RequestSystem Request QShortcutTabTab QShortcutSänk diskant Treble Down QShortcutHöj diskant Treble Up QShortcutUppUp QShortcutSänk volym Volume Down QShortcutVolym tyst Volume Mute QShortcutHöj volym Volume Up QShortcutJaYes QShortcutSida nedåt Page downQSliderSida vänster Page leftQSliderSida höger Page rightQSliderSida uppåtPage upQSliderPositionPositionQSliderLTidsgräns för nätverksåtgärd överstegsNetwork operation timed outQSocks5SocketEngine AvbrytCancelQSoftKeyManagerVäljSelectQSoftKeyManager MindreLessQSpinBoxMerMoreQSpinBox AvbrytCancelQSql2Avbryt dina redigeringar?Cancel your edits?QSqlBekräftaConfirmQSqlTa bortDeleteQSql&Ta bort denna post?Delete this record?QSql InfogaInsertQSqlNejNoQSql&Spara redigeringar? Save edits?QSqlUppdateraUpdateQSqlJaYesQSqlOkänt fel Unknown error QSslSocketOkänt fel Unknown error QStateMachine6Kunde inte öppna anslutningUnable to open connection QTDSDriver8Kunde inte använda databasenUnable to use database QTDSDriverRulla vänster Scroll LeftQTabBarRulla höger Scroll RightQTabBar&Kopiera&Copy QTextControlKlistra &in&Paste QTextControl&Gör om&Redo QTextControl &Ångra&Undo QTextControl$Kopiera &länkplatsCopy &Link Location QTextControlKlipp u&tCu&t QTextControlTa bortDelete QTextControlMarkera alla Select All QTextControl ÖppnaOpen QToolButton TryckPress QToolButtonHDenna plattform saknar stöd för IPv6#This platform does not support IPv6 QUdpSocket Gör omRedo QUndoGroup ÅngraUndo QUndoGroup <tom> QUndoModel Gör omRedo QUndoStack ÅngraUndo QUndoStack:Infoga unicode-kontrolltecken Insert Unicode control characterQUnicodeControlCharacterMenu U+202A$LRE Start of left-to-right embeddingQUnicodeControlCharacterMenu U+200ELRM Left-to-right markQUnicodeControlCharacterMenu U+202D#LRO Start of left-to-right overrideQUnicodeControlCharacterMenu U+202CPDF Pop directional formattingQUnicodeControlCharacterMenu U+202B$RLE Start of right-to-left embeddingQUnicodeControlCharacterMenu U+200FRLM Right-to-left markQUnicodeControlCharacterMenu U+202E#RLO Start of right-to-left overrideQUnicodeControlCharacterMenu U+200DZWJ Zero width joinerQUnicodeControlCharacterMenu U+200CZWNJ Zero width non-joinerQUnicodeControlCharacterMenu U+200BZWSP Zero width spaceQUnicodeControlCharacterMenuNederkantBottomQWebPageIgnoreraIgnoreQWebPageIgnorera Ignore Grammar context menu itemIgnoreQWebPageVänsterkant Left edgeQWebPageSida nedåt Page downQWebPageSida vänster Page leftQWebPageSida höger Page rightQWebPageSida uppåtPage upQWebPageÅterställResetQWebPageHögerkant Right edgeQWebPageRulla nedåt Scroll downQWebPageRulla här Scroll hereQWebPageRulla vänster Scroll leftQWebPageRulla höger Scroll rightQWebPageRulla uppåt Scroll upQWebPage StoppaStopQWebPageÖverkantTopQWebPage OkäntUnknownQWebPageVad är det här? What's This?QWhatsThisAction**QWidget&Färdig&FinishQWizard &Hjälp&HelpQWizard&Nästa >&Next >QWizard< Till&baka< &BackQWizard AvbrytCancelQWizard HjälpHelpQWizard%1 - [%2] %1 - [%2] QWorkspace &Stäng&Close QWorkspace&Flytta&Move QWorkspaceÅte&rställ&Restore QWorkspace&Storlek&Size QWorkspaceA&vskugga&Unshade QWorkspace StängClose QWorkspaceMa&ximera Ma&ximize QWorkspaceMi&nimera Mi&nimize QWorkspaceMinimeraMinimize QWorkspaceÅterställ nedåt Restore Down QWorkspaceSkugg&aSh&ade QWorkspace&Stanna kvar övers&t Stay on &Top QWorkspaceºkodningsdeklarering eller fristående deklarering förväntades vid läsning av XML-deklareringenYencoding declaration or standalone declaration expected while reading the XML declarationQXmlXfel i textdeklareringen av en extern entitet3error in the text declaration of an external entityQXmlPfel inträffade vid tolkning av kommentar$error occurred while parsing commentQXmlNfel inträffade vid tolkning av innehåll$error occurred while parsing contentQXmljfel inträffade vid tolkning av dokumenttypsdefinition5error occurred while parsing document type definitionQXmlLfel inträffade vid tolkning av element$error occurred while parsing elementQXmlNfel inträffade vid tolkning av referens&error occurred while parsing referenceQXml2fel utlöstes av konsumenterror triggered by consumerQXmlpextern tolkad allmän entitetsreferens tillåts inte i DTD;external parsed general entity reference not allowed in DTDQXml„extern tolkad allmän entitetsreferens tillåts inte i attributvärdeGexternal parsed general entity reference not allowed in attribute valueQXmlbintern allmän entitetsreferens tillåts inte i DTD4internal general entity reference not allowed in DTDQXmlPogiltigt namn för behandlingsinstruktion'invalid name for processing instructionQXml&bokstav förväntadesletter is expectedQXmlBfler än en dokumenttypsdefinition&more than one document type definitionQXml&inga fel inträffadeno error occurredQXml&rekursiva entiteterrecursive entitiesQXml‚fristående deklarering förväntades vid läsning av XML-deklareringAstandalone declaration expected while reading the XML declarationQXml"tagg stämmer inte tag mismatchQXmloväntat teckenunexpected characterQXml*oväntat slut på filenunexpected end of fileQXmlRotolkad entitetsreferens i fel sammanhang*unparsed entity reference in wrong contextQXmlhversion förväntades vid läsning av XML-deklareringen2version expected while reading the XML declarationQXmlHfel värde för fristående deklarering&wrong value for standalone declarationQXmlx2goclient-4.0.1.1/qt_zh_tw.qm0000644000000000000000000033356212214040350013020 0ustar <¸dÊÍ!¿`¡½ÝB+* +ÖQ@£‘A¤B¤ŠC¥D¥€E¦/F¦ªG§%H§I¨P¨½Q©>Rª7Sª²T«-U«¨V¬WW¬ÒX­JY­¿]3@;;*;8;€};³²M3hOá”Oð)Àç}3m3¸¯Ás(5¸+; ;+;5y+;;J+O +O5G1ÁÕE@©¼F•®4H4ÖrHYJ"HÚÛI®àJ¼Ù»JÄÙ–JÄÓK LDÚ0L“Ú„PSÜ#RM×Zræq[`Ñt[`\Ýkß_Ãçè_Ãð£1º<¿Ã ?¿Ã5㇛¥‡›AÞ‡›Ö™–$K–$Ò˜,×ŦyÙF¦yQ§Ô$§Ôrf§Ôøs¨¥y«ŒÙl¬9K_µ›:£¶E4‚¶Eî&¶E‹¶ÞÚ ÏîRÐ%½Ð%CGÓÛ1Ö#Ö½+Ö¾ÛÖÁÿì0íì07{ì0}Yì0€ì0Û¨ì0Öö5ÛÎ D9â DI6+Ôßý,£:ô,£îÛVŽHÊ*_<ä!dpù§Ä×5„ #Qé­æ%UT†p(ÅŽG˜*ä4•-ct.ã-ctôü2Àé¨95vŽ·AiW·ÙÆB¿PY¢à d{Äy©æÇtÕ]¹ìØ_oî²ÄbÙïy#U-òº„k“óuri< ¸ä’H Ü~jË Ydk öâ"l®"0)(,-À¤W£/=Næ˜1Ø$ƒÊ5~TÅ< Äl ?—2Ž ?»NM¡ã yNkyª^U¿iœêW÷~\œ]Ýé3`ê1¥`ê–Ðj•t‡lg›ålyzlJl}µ:oiÁ]vty/nvtyÓ61ýNV”"¾%N—ú ™úæ™úCo£+”¤¾h¥4žE–¥²)jRª6•5ª6•|*ª6•4´^¡Wj´ƒŠÁ ¶Š¥k¶Š¥qØ¶Š¥÷”·Rž ¡·T¢øº=€àº÷žÁ¼~.&Ó¾‚´ö¤¾œûä«¿¾Ð{¿¾“¿EåЭ¿EåÃÀ‚´ÐßÀ‚´óÄ{ŽùùÇ=±ŠáÊ8A¢ÛAV<ÛÃé¬ß[y¥,âL´“¿ä¤ðÁì‚n´«òø‘cøó‚¤1çó‚¤yÂ󂤓y󂤗ó‚¤Égó‚¤Ì+õØm|úõðM{íõðMúöE”SÐöE”ZAwÀwÏ4âþOÏ^îSj ÍIµ- ŽžDÚáôžáëÌÅþAv ê‚Òù!ÏeþT&¸ž(X)Õç[*/eçŒ;„‚¡B‹y«TEcš0œF±å4 O«šÓZõfùS\cëw`à{jbœC™cÖƒà…fãÄ)g&4‡jCG_mÑn`öqòNqÕX½tßuêÀu(µÛø{>tH}kaíw½õO–ˆàèÓ~$гIx—øÑU\£y¾”£–þDq©ßÒs/¯É$ÇɯÉ$Ö°‚µè´àäK‰ÀÄÁ+³7‹Ã( ç¹ÊþŠÍÊôrŽqÎ^ AÑKõ ÐÖŠÂ-Õã n›bãõÉy/ä,ÔeÞêË ØëÕÿ¡Žñ;y¤6ùOž}ûú-îLùAò§žºÂX7^`=rƒ&H„e‹.Ž#C/¥ÄeB?Þ=}IxS+‹MþtRå>,;YMáTYMáZx^Á¾Kh^ £iïÓ#Ûsscus¡®.wÞÏ€»ÑTEˆxóJK‰/^fµ‹2=þŒ‡’ŒŽÛŠ-nat.–´N)ô–»]έ–»]÷—ÌÅ¿B˜I¼Î˜I¼?˜I¼—˜I¼6r˜I¼Å˜I¼íø˜I¼ï%˜I¼ŸIÝžŸYÝПiÞŸyÞ4Ÿ‰ÜÖŸ™ÝŸ©Ý:Ÿ¹ÝlŸéÜrŸùܤŸIß`Ÿ‰Þ˜Ÿ™ÞÊŸ©ÞüŸ¹ß.ŸùÞf¡uDVº¡uD]5¦D=¦oþ2¬,¥ œ¬,¥r”¬,¥Ìú¬,¥Ùâ¬,¥ï¥¬,¥ø¤¬«]®µ´é„|UØè|±ác)á_poèNÀÛ€é•E/ë˜ÇLÉõ¬c"{öû©eøSÒN‡ûPqX’þV…7¨þV… ÿfR?°œ” 휔ÜJœ”ð ‚óL÷ ‚ó6 ×äCæ•‹©±’žƒåäŽJ¼‚iÈúÔcÑ%CÉ Ò&‹~M«&§Þ3ø)È2m9)ðž9+­Â±t,ºÂ²¿?"£x§?>u ›KNöMî×+R¿òV“|N´]¿žd]¿žgÙk¶Þã yô^Ì€{y¯ Œ5täŒ5t ¯ŒFÅEœŒ¼Žä.:³‘ΞO*“åNà˜G%R°˜œn;ݙص‘ŒšÇ¥#›ˆ˜ÎA›ˆ˜å œ+¤å4œ+¤î­¦±t §{y®^«”Õ¬;åP†®xAPº¯rɫϰ9\Oÿ°ˆÁæ°sP+°ª½ z±Ï¾‡¿µÞ%+6¸{ÎF½C-Ç‹Â5ËáäÆž=ÆC^]œƨ¥ =ƨ¥ð€˾äh!ÒzüÔió£Õ§?ïÈÚZ>+-Ûz‹=ƒߺº ãÄ<¸çf•‰hómoúüä^cþ!žžQ É"ëú$zÙ~bD¢~bIcoÓ™Mlƒ!ë¿fû)ÑžK£+Öu[ë+ï3ɱ,8·/ô…´w/ô…À”1õ‹¨4~u6Ï äÜ? 2A£•½÷Dç#­G¾ñS„GÎbHŠLAUöaOré8Pѧ6ÏQ…î\|SÅn¡ Tµl\Uô£Uôj›Uô†/UÞTcxZËÑØ–ZËÒØÂZËÓØîZËÔÙ[Í1[c]k*Dr]ú®8‚^ãnò_pÔ¼Àe‘’ižäVôižä]pkQ¾+÷oÛN'‹y;Çx{¿§{î~}uâŸ}wÏó}wè“}w '}¶¨¹‡„ð·†Ò*^Šê‚9ÕäkDr°ÑÚ—B™íÞo@›v£Â˜›ƒtŸZ›ƒtºÙ «.Ð! «.辡®3=F¥PèÅÿ¦iU·nµD„™µY´t>·Ýt%«·ÝtZí·ÝtƒD¸°Ž2eºç%½-n-À_ âBÃ+ç‡ÉF±z ÊC¾UÚÊ¢ä2oÊ¢ä˜ÊÆ´—ÔÊçd2úÊçdzKÊçd“ÿÊçd˜ Êçdœ£Ë0 rÌ59fsÑçÃVØ+aÚNS˜Zä‡ðFì»UŠîd˜çþ¯B êþáh—Zw®‘É–½o  2þQq ×?x8 …‘f²+ª¤^Î,ŒD 3/ÿî52ì;Ë42ÞZ“6’ÑWÏ7·D€’:‰g¨?;Þ ÖCU]ÇDØ »IàN;DJ0ž mKÕK¯-U|×ëV7ÞH^\¬ºearÅÉ÷t‰QwÛF˜|(^\|ã n|¬ºŸ}wZž…}š$ÏÂ}š$èe}š$ øŒÏ—ÂÐZ’ÂüœVNWÛŸ” 8Ÿ±D`S L>R¡ä§ãNw ªÜq ´K<7×µf+¥·ƒ. ·ƒÑš·ƒô¹ýž4RÅÆÑÆ×³¿ÛÎû £¸Õ/\=àŸ/nãûµ³}ä½UŒë»ERuøvþƒ]uù%5Hõ›T·¬©lÔ e~J i~ nɱ§úi19%ÀÑäÿwdb0Q#²š"%’¾'Ø'ÕŒÑ-å.mW.÷Ž)u5kEÇ=ƒâ0G=ƒâÖ=ƒâõÎ?ƒâs°?ƒâvþCtIKºPËîIV%îYJV%î™$XU C¨ZŒî_`ååÒµbDæ1bG·n3f“dÿ¥gŸAVhI•M#iê$“)x1 Øz*2Öø|QR¦‚¨d”ƃJ„l†®ža¹ŠU€×’‹(.„»•z<=•c._ª/úªÕ"µÞrC¶°ãŠ6¸XÔºmSEºå^¹»²eZ¼ìn‰½ŒÈãÙ†5üÄØiJ«ÇC¼98Ê´5|‘Ê´5•ʶÕ~ÌÉÅÀÐÓ^ bvÚÔ„âÛ”#»÷ÝD„“ß'NbÖâÜdðF5ðF5}¼ò»YœaópÉaŠõ+>uküùI^üùICàýAsv äÑ2° }${' qeY‰ Ú¤‚ Ú¥¿ ôdì× íExî íE’ê î~¾ AcT AcF Úôêi 3š5‰· j2 bÅÁ< bbúu b¾`ÑD b¾`T gUòuO iä3#Y laôæ uáÎi­ xq$s |o¾M½ ‚|Ň_ Š·JÂ( ŒtÓã ŒtÓEÆ Ž .') Ží¨‡ ˜ŠÞY ™)þG] šF>.Ó Ÿ¥Þ=Á ¢³Ä%é ¢³Äƒ† ¦„„ì+ §²„Å ¨B¾†O ©Ò‰´å ­>óËä ­‚µ• ²î¾TY ¸æÉhø ¸æÉy~ ºnuþ ¼áNgD ÉËà ÊY+Õl ÜKçä ÝÕûœ 팤¿ îl~>j ñ%'úØ ö ® g ÷»¼ß’ û/î3„ =Ž#ç èqOÒ ü®› }´ŸÉ o´= ¬Ž9ª )µž´ */åÖ¿ .>¤vT 5ÝîX4 7uó ;Ùo© =äRÚ BÇé¶ö BònC J‰"Œm K2Ÿ RÛ®" Ty ž Tþ^×Y Uj4sl ]‘žŠ `±de `±È: `±ÊA bÕtÊ b¿®z5 c(彑 c·E¹ dÐÍï eœÇÊ eœÇDA e¨{Õ½ fŽ1U fü*¾e g5U¹õ gîn kŸ,« rD"ì t>c@ è¼:,T ëf ô ëf A ÷4f' øÊ.Q øûŽPã ý‡s2 ý‡sB¿ AAX —9Ÿ( ˜Ä7 ÷9{¼ ¼I m,` #-tˆ 0†N) 5΄^ A›ùñ& CóUQ‚ EÔ9 Iߨ L‘¥v Lö%E Lö³ Mc\9m RÕîWu SÐgD V×j W“å‹s ]â$1^ f)2 f)AB f=¦¸t io>!Ç mû` I wǰ xáR1Œ y¡r4G ƒô>Lk „‚ ‹æh¹ ŒH ŒH@ Ü '¯ nB© ‘$þB ’.@æ× “þ’ö — i¥§ ¢×µ £Ü S £Ü r¼ £Ü øÏ ¬ü%¯a ¯ÙJb ¯ÙJBî ´Ž%• ¿t.•¯ ÂkÔöÓ ÃÓ‡¬ ÈMļô ÈÇÁ ÊN>n ̺óRJ Ï&Þ€ß Ô-DS ÖØ.q' Û·å» àrGÎ âkÔÑ âkÔ# èU)]Þ ê鞘 ðË<» óŸã/³ óŸãÓ¶ óŸãõ? õ0Ëá¶ ö”Ä ö §é‚ z+  „V†  „] ŒILU ‚%QE èNeÖ öâ ©´ xH`— ƒòv¼ .Éã+× 7F´H >ÏòXb >ÏòXÚ >ÏòYÎ >Ïò`" >Ïòk >Ïòqu >ÏòŠB >Ïò¡U >ÏòôJ >Ïòô€ ?t|þ® D€T  IëË+^ P@ÞZ RVŽFd RVŽg RV®·æ S.ŸïH SGù¥ SÀÀ Yåø YçõK [•›üÔ hÛ®Kú j7o>á p¡Ã, vôiY †šž5Ù ŒÑBh° Žè!# ½T0Ý ½TwÚ ½T” ½T›¬ ‘ñ£+ ’›¢i‚ “èÄ2- “èÄ—‘ ”Å L –‚™¯ )dˆø Ÿ§Tu£ ©‰ü ¬Á.1 ¬Á.d÷ ¬Á.x\ ¬Á.‘ÿ ¬Á.•e ¬Á.É ¬Á.Ë ­—5 °†Ôí8 µÑwŸ ¸a‡ » ys »±Ždá ¾e.A- ÉhNe[ Î>R± Ò‚î&‹ àóÝ æ%´ ƒ èíu 2 ë¬åŸ ñ­Þ:’ ó|ôÓx ô’Þb@ úùK ýXtq³ ÿün{@ ¿9$ tÇQ aóY ?[ :b^- Uqk„ à€ä Êœ*Á  ÁW #$î…6 #=—õ %™nfK (I$èæ (öN2¼ +>º-$ +kžtÅ 0ÒEù 64Ô? ;ɾø+ Fg™­ K×9‹  Ptµ~ Ptµ T»>LÒ dBâ^’ fèeÎÖ fèeb g­²ò iFCÛ iØÄD iØÄÛW jÓ®¶# kGnr m9Ä1 n¤î)Ì u®âp uüÁó v îd7 v&¥Ÿ‹ v{ðÅ w®Ïb w®è w® œ w}¤Ï’ w}¤è8 w}¤ Ê |[®-± €®™\ ƒÈôT‘ ƒÈôZ¸ ŽJ©aù —Ã^€@ ¢}Òpq ªôRýñ ±žP§ ¶²Œ ¾xN÷ ÇÒUtƒ ɰe¶“ ÍïFo… Ûùž* ÜX ä&Þ-b êDÛ ë¼óEe ìÕ+Ôà ðt5}ƒ ðt5W ð¨Aå òŽZ ö¯>sC ø¾~¬ ø¾ð ø)¤ P ú¾ Rsw¤ÄÝ @a^#T' ‡Û ‡Û¯gT'[Úî7!*‡«%y*‡«æ/ÇE&e/ÇE…Q=êBmŒIÌ_^K·õ‹ÝOO”u XRuý-XÑ6f[ ‰f[Ÿ +a.Å7Da‚.2gcênyG,»vÉ…gy$È€~¹_σ>E ŽÞÎcž“ª4ŽÖ¨'î@…«Ó4ÿ1´÷SjÒ»®^¡ü½Ç— 7¾èŽ3¿ß:PÇB¤$aÊæÂý—ΆÁÜrµrìÝ–þ°1ò[yªÙ÷Þ^n~ íÒ; íÒBOG¾5}lDħ–þ("#Ëœ$ÚU %º49¯%º4H»-v›ûC0i)àU0’Ààí1c…ï2wTà#D¢Ã!HúùÛJd_`K¡òìwL$.1W÷¾[Lc5ÐLc5g3º.pþÅœ yƒC!–{~aßÇ6$*Y5 &ò‹4&ò>‹{î`#•`é§Lœ¿nM(¡[ô$&¢÷>N\®þ(±¯·Ö¯·BŒ¹>b\¼‰ÿÞ¾N>X¿„/À EïÂ"~1ÄÜL\ØÉrÔ&¨ÉrÔ÷Ðky¤±àLnpôè»¶éB÷¾›éPé¬ùøt2)žû¾wIû¾ÿû¾È…û¾Ê‹þ”d¸»ÿUµþçiŒP•Ü•‰R˜ Close Tab CloseButtonR©ˆÝn AccessibilityPhonon::Š  CommunicationPhonon::Jb2GamesPhonon::—ójMusicPhonon::wå NotificationsPhonon::_qPÏVideoPhonon::l<html>—óeHd­e>ˆÝn <b>%1</b> ]òSïOu(ÿ Vàpºg šØQ*QHk ÿ Vàkd\RcÛR0ŠrˆÝn0</html>xSwitching to the audio playback device %1
which just became available and has higher preference.Phonon::AudioOutputr<html>—óeHd­e>ˆÝn <b>%1</b> g*€ýKO\0<br/>e9u(˜Š-ˆÝn <b>%2</b>0</html>^The audio playback device %1 does not work.
Falling back to %2.Phonon::AudioOutputVÞ_©R0ˆÝn %1Revert back to device '%1'Phonon::AudioOutputd‹fTJÿ`¨Sï€ýl’g [‰ˆÝ GStreamer Yc›z _0 b@g —óeH‚_qPÏe/cô\ˆ«•Ü•‰0~Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabledPhonon::Gstreamer::Backendz‹fTJÿ`¨Sï€ýl’g [‰ˆÝ gstreamer0.10-plugins-good0 g N›_qPÏv„RŸ€ý\ˆ«•Ü•‰0„Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled.Phonon::Gstreamer::BackendkdQg[¹ÿ%0`A required codec is missing. You need to install the following codec(s) to play this content: %0Phonon::Gstreamer::MediaObjectq!lÕ‰ãx¼Z’šÔO†n0Could not decode media source.Phonon::Gstreamer::MediaObjectq!lÕ[šOMZ’šÔO†n0Could not locate media source.Phonon::Gstreamer::MediaObject"q!lÕ•‹U_—óeHˆÝn0ˆÝn]òW(Ou(N-0:Could not open audio device. The device is already in use.Phonon::Gstreamer::MediaObjectq!lÕ•‹U_Z’šÔO†n0Could not open media source.Phonon::Gstreamer::MediaObjectN TlÕv„O†nW‹aK0Invalid source type.Phonon::Gstreamer::MediaObjectk –PN ³Permission denied Phonon::MMF—\—óMutedPhonon::VolumeSliderBOu(kdnÑRÕVhO†Š¿et—ó‘Ï0g]æŠv„OMnpº 0%ÿ gSóŠv„pº %1%0WUse this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%Phonon::VolumeSlider —ó‘Ïÿ%1% Volume: %1%Phonon::VolumeSlider%1ÿ %2 g*[š©%1, %2 not definedQ3AccelN fxºv„ %1 \g*†UtAmbiguous %1 not handledQ3AccelR*–dDelete Q3DataTablePGFalse Q3DataTablecÒQeInsert Q3DataTablewTrue Q3DataTablefôe°Update Q3DataTable&%1 b~N R0j”hH0 ŠËj¢gåï_‘‚j”T 0+%1 File not found. Check path and filename. Q3FileDialog R*–d(&D)&Delete Q3FileDialog T&(&N)&No Q3FileDialog xº[š(&O)&OK Q3FileDialog •‹U_(&O)&Open Q3FileDialog‘Íe°T}T (&R)&Rename Q3FileDialog Q2[X(&S)&Save Q3FileDialogg*c’^(&U) &Unsorted Q3FileDialog f/(&Y)&Yes Q3FileDialog4<qt>`¨xº[š‰R*–d %1 "%2" UÎÿ</qt>1Are you sure you wish to delete %1 "%2"? Q3FileDialogb@g j”hH (*) All Files (*) Q3FileDialogb@g j”hH (*.*)All Files (*.*) Q3FileDialog\l`' Attributes Q3FileDialogÔVÞBack Q3FileDialogSÖmˆCancel Q3FileDialog‰ˆýbyûRÕj”hHCopy or Move a File Q3FileDialog ^úzËe°ŒÇe™Y>Create New Folder Q3FileDialogeågDate Q3FileDialog R*–d %1 Delete %1 Q3FileDialogŠs}0j¢‰– Detail View Q3FileDialogvî“Dir Q3FileDialogvî“ Directories Q3FileDialogvî“ÿ Directory: Q3FileDialog“/ФError Q3FileDialogj”hHFile Q3FileDialogj”T (&N)ÿ File &name: Q3FileDialogj”hHW‹aK(&T)ÿ File &type: Q3FileDialog\ b~vî“Find Directory Q3FileDialogq!lÕ[XSÖ Inaccessible Q3FileDialogRˆhj¢‰– List View Q3FileDialog\ b~e¼(&I)ÿ Look &in: Q3FileDialogT z1Name Q3FileDialoge°ŒÇe™Y> New Folder Q3FileDialoge°ŒÇe™Y> %1 New Folder %1 Q3FileDialog e°ŒÇe™Y> 1 New Folder 1 Q3FileDialog _€N N\dvî“One directory up Q3FileDialog•‹U_Open Q3FileDialog•‹U_ Open  Q3FileDialog ˜‰½j”hHQg[¹Preview File Contents Q3FileDialog ˜‰½j”hHŒÇŠ Preview File Info Q3FileDialog‘Íe° Qe(&E)R&eload Q3FileDialogU/‹€ Read-only Q3FileDialogSï‹€[ë Read-write Q3FileDialog ‹€SÖÿ%1Read: %1 Q3FileDialogSæ[Xe°j”Save As Q3FileDialogŠËxdÇNP vî“Select a Directory Q3FileDialog˜oy:–±…Ïj”(&H)Show &hidden files Q3FileDialogY'\Size Q3FileDialogc’^Sort Q3FileDialogOeågc’^(&D) Sort by &Date Q3FileDialogOT z1c’^(&N) Sort by &Name Q3FileDialogOY'\c’^(&S) Sort by &Size Q3FileDialogrykŠ{ÀžÞSpecial Q3FileDialogR0vî“v„{&†_#}PSymlink to Directory Q3FileDialogR0j”hHv„{&†_#}PSymlink to File Q3FileDialogR0rykŠ{ÀžÞv„{&†_#}PSymlink to Special Q3FileDialogW‹aKType Q3FileDialogU/[ë Write-only Q3FileDialog [ëQeÿ%1 Write: %1 Q3FileDialogkdvî“ the directory Q3FileDialogkdj”hHthe file Q3FileDialog kd{&†_#}P the symlink Q3FileDialogq!lÕ^úzËvî“ %1Could not create directory %1 Q3LocalFsq!lÕ•‹U_ %1Could not open %1 Q3LocalFsq!lÕ‹€SÖvî“ %1Could not read directory %1 Q3LocalFsq!lÕyû–dvî“ %1%Could not remove file or directory %1 Q3LocalFsq!lÕ\ %1 ‘Íe°T}T pº %2Could not rename %1 to %2 Q3LocalFsq!lÕ[ëQe %1Could not write %1 Q3LocalFs êŠ... Customize... Q3MainWindowc’RLine up Q3MainWindowOu(€]òN-kbdÍO\Operation stopped by the userQ3NetworkProtocolSÖmˆCancelQ3ProgressDialogYWu(Apply Q3TabDialogSÖmˆCancel Q3TabDialog˜Š-Defaults Q3TabDialogŠªfHelp Q3TabDialogxº[šOK Q3TabDialog ‰ˆý(&C)&Copy Q3TextEdit Œ¼N (&P)&Paste Q3TextEdit ‘ÍPZ(&R)&Redo Q3TextEdit _©SŸ(&U)&Undo Q3TextEditn–dClear Q3TextEdit RjN (&T)Cu&t Q3TextEditQhèxdÇ Select All Q3TextEdit•Ü•‰Close Q3TitleBar•Ü•‰‰–z—Closes the window Q3TitleBarST+‰dÍO\kd‰–z—v„cNä*Contains commands to manipulate the window Q3TitleBar$˜oy:‰–z—T z1ÿ N&ST+dÍO\[ƒv„c§R6QCNöFDisplays the name of the window and contains controls to manipulate it Q3TitleBar\‰–z—e>Y'R0Qhuk—bMakes the window full screen Q3TitleBargY'SMaximize Q3TitleBarg\SMinimize Q3TitleBar bЉ–z—yû•‹Moves the window out of the way Q3TitleBar\gY'S‰–z—e>VÞSŸY'\&Puts a maximized window back to normal Q3TitleBarTN `b_© Restore down Q3TitleBarTN `b_© Restore up Q3TitleBar|û}qSystem Q3TitleBar fôY...More... Q3ToolBarÿg*wåÿ  (unknown) Q3UrlOperator&ST[š %1 g*e/cô‰ˆýbyûRÕj”hHbvî“IThe protocol `%1' does not support copying or moving files or directories Q3UrlOperatorST[š %1 g*e/cô^úzËe°vî“;The protocol `%1' does not support creating new directories Q3UrlOperatorST[š %1 g*e/côSÖ_—j”hH0The protocol `%1' does not support getting files Q3UrlOperatorST[š %1 g*e/côRQúvî“6The protocol `%1' does not support listing directories Q3UrlOperatorST[š %1 g*e/cô[ëQej”hH0The protocol `%1' does not support putting files Q3UrlOperator ST[š %1 g*e/côyû–dj”hHbvî“@The protocol `%1' does not support removing files or directories Q3UrlOperator$ST[š %1 g*e/cô‘Íe°T}T j”hHbvî“@The protocol `%1' does not support renaming files or directories Q3UrlOperatorST[š %1 g*e/cô"The protocol `%1' is not supported Q3UrlOperator SÖmˆ(&C)&CancelQ3Wizard [Œb(&F)&FinishQ3Wizard Šªf(&H)&HelpQ3WizardN NP (&N)ÿ&Next >Q3WizardÿÔVÞ(&B)< &BackQ3Wizard#}Úˆ«bÒConnection refusedQAbstractSocket#}Ú>fBConnection timed outQAbstractSocket b~N R0N;j_Host not foundQAbstractSocket q!lÕOu(}²ïNetwork unreachableQAbstractSocketSocket v„dÍO\g*ˆ«e/cô$Operation on socket is not supportedQAbstractSocketSocket g*#}ÚSocket is not connectedQAbstractSocketSocket dÍO\>fBSocket operation timed outQAbstractSocketQhèxdÇ(&S) &Select AllQAbstractSpinBoxU®keTN (&S)&Step upQAbstractSpinBoxU®keTN (&D) Step &downQAbstractSpinBoxc N PressQAccessibleButtonU_RÕActivate QApplicationU_RÕz _v„N;‰–z—#Activates the program's main window QApplication6W÷ˆLj” %1 —‰ Qt %2ÿ OFSêb~R0 Qt %30,Executable '%1' requires Qt %2, found Qt %3. QApplicationQt Qý_^«N vø[¹v„“/ФIncompatible Qt Library Error QApplicationLTRQT_LAYOUT_DIRECTION QApplication SÖmˆ(&C)&Cancel QAxSelectCOM riNö(&O) COM &Object: QAxSelectxº[šOK QAxSelectxdÇ ActiveX c§R6Select ActiveX Control QAxSelectRþxCheck QCheckBoxRcÛToggle QCheckBoxSÖmˆRþxUncheck QCheckBoxe°XžR0ꊘO‚r(&A)&Add to Custom Colors QColorDialogWúg,˜O‚r(&B) &Basic colors QColorDialogꊘO‚r(&C)&Custom colors QColorDialog } (&G)ÿ&Green: QColorDialog }(&R)ÿ&Red: QColorDialog˜ýTŒ^¦(&S)ÿ&Sat: QColorDialogN®^¦(&V)ÿ&Val: QColorDialogAlpha ‚r˜;(&L)ÿA&lpha channel: QColorDialog …Í(&U)ÿBl&ue: QColorDialog‚rŠ¿(&E)ÿHu&e: QColorDialogxdǘO‚r Select Color QColorDialog•Ü•‰Close QComboBoxPGFalse QComboBox•‹U_Open QComboBoxwTrue QComboBox %1ÿ]ò[XW(%1: already existsQCoreApplication %1ÿN [XW(%1: does not existQCoreApplication%1ÿftok Y1eW%1: ftok failedQCoreApplication%1ÿ“uP(&N) &New Folder QFileDialog •‹U_(&O)&Open QFileDialog‘Íe°T}T (&R)&Rename QFileDialog Q2[X(&S)&Save QFileDialog&%1 g [ëQeOÝ‹w0 `¨xº[š‰R*–d[ƒUÎÿ9'%1' is write protected. Do you want to delete it anyway? QFileDialogb@g j”hH (*) All Files (*) QFileDialogb@g j”hH (*.*)All Files (*.*) QFileDialog`¨xº[š‰R*–d %1 UÎÿ!Are sure you want to delete '%1'? QFileDialogÔVÞBack QFileDialogq!lÕR*–dvî“0Could not delete directory. QFileDialog ^úzËe°ŒÇe™Y>Create New Folder QFileDialogŠs}0j¢‰– Detail View QFileDialogvî“ Directories QFileDialogvî“ÿ Directory: QFileDialogxÁxŸDrive QFileDialogj”hHFile QFileDialogj”T (&N)ÿ File &name: QFileDialog j”hHW‹aKÿFiles of type: QFileDialog\ b~vî“Find Directory QFileDialog_€RMForward QFileDialogRˆhj¢‰– List View QFileDialog\ b~e¼ÿLook in: QFileDialogbv„–ûf My Computer QFileDialoge°ŒÇe™Y> New Folder QFileDialog•‹U_Open QFileDialogr6vî“Parent Directory QFileDialog gÑv„W0e¹ Recent Places QFileDialogyû–dRemove QFileDialogSæ[Xe°j”Save As QFileDialog˜oy: Show  QFileDialog˜oy:–±…Ïj”(&H)Show &hidden files QFileDialogg*wåUnknown QFileDialog %1 GB%1 GBQFileSystemModel %1 KB%1 KBQFileSystemModel %1 MB%1 MBQFileSystemModel %1 TB%1 TBQFileSystemModel %1 OMQC}D%1 bytesQFileSystemModel^<b>q!lÕOu(T z1 "%1"0</b><p>ŠËOu(Qv[ƒT z1ÿ [WQCex\NžÞÿ bf/N ‰g jžÞ{&†_0oThe name "%1" can not be used.

Try using another name, with fewer characters or no punctuations marks.QFileSystemModel–ûfComputerQFileSystemModel‹Šfôeåg Date ModifiedQFileSystemModel N TlÕv„j”T Invalid filenameQFileSystemModelz.˜^KindQFileSystemModelbv„–ûf My ComputerQFileSystemModelT z1NameQFileSystemModelY'\SizeQFileSystemModelW‹aKTypeQFileSystemModelNûOUAny QFontDatabase–?bÉO/Arabic QFontDatabaseNžŽ\Tamil QFontDatabase TeluguTelugu QFontDatabase ThaanaThaana QFontDatabaselðŠžThai QFontDatabase‰…ÏTibetan QFontDatabase~AšÔN-e‡Traditional Chinese QFontDatabaseŠSW Vietnamese QFontDatabase [WW‹(&F)&Font QFontDialog Y'\(&S)&Size QFontDialog ^•}Ú(&U) &Underline QFontDialogeHgœEffects QFontDialog[WW‹j#_(&Y) Font st&yle QFontDialog{ÄO‹Sample QFontDialogxdÇ[WW‹ Select Font QFontDialogR*–d}Ú(&K) Stri&keout QFontDialog[ëQe|û}q(&I)Wr&iting System QFontDialog‹Šfôvî“fBY1eWÿ %1Changing directory failed: %1QFtp ]ò#}ÚR0N;j_Connected to hostQFtp]ò#c¥R0N;j_ %1Connected to host %1QFtp#}ÚR0N;j_Y1eWÿ %1Connecting to host failed: %1QFtp #}Ú]ò•Ü•‰Connection closedQFtp ŒÇe™#}Úˆ«bÒ&Connection refused for data connectionQFtp#}ÚR0N;j_ %1 ˆ«bÒConnection refused to host %1QFtp#}ÚR0N;j_ %1 >fBConnection timed out to host %1QFtpR0 %1 v„#}Ú]ò•Ü•‰Connection to %1 closedQFtp^úzËvî“fBY1eWÿ %1Creating directory failed: %1QFtpN j”hHfBY1eWÿ %1Downloading file failed: %1QFtpb~R0N;j_ %1 Host %1 foundQFtpb~N R0N;j_ %1Host %1 not foundQFtpb~R0N;j_ Host foundQFtpRQúvî“fBY1eWÿ %1Listing directory failed: %1QFtpv{QeY1eWÿ %1Login failed: %1QFtpg*#}Ú Not connectedQFtpyû–dvî“fBY1eWÿ %1Removing directory failed: %1QFtpyû–dj”hHfBY1eWÿ %1Removing file failed: %1QFtp g*wåv„“/Ф Unknown errorQFtpN P³j”hHfBY1eWÿ %1Uploading file failed: %1QFtp g*wåv„“/Ф Unknown error QHostInfo b~N R0N;j_Host not foundQHostInfoAgent g*c[šN;j_No host name givenQHostInfoAgentg*wåv„OMW@W‹aKUnknown address typeQHostInfoAgent g*wåv„“/Ф Unknown errorQHostInfoAgent—‰Š‹IAuthentication requiredQHttp ]ò#}ÚR0N;j_Connected to hostQHttp]ò#c¥R0N;j_ %1Connected to host %1QHttp #}Ú]ò•Ü•‰Connection closedQHttp#}Úˆ«bÒConnection refusedQHttp#}Úˆ«bÒÿb#}Ú>fBÿ !Connection refused (or timed out)QHttpR0 %1 v„#}Ú]ò•Ü•‰Connection to %1 closedQHttp ŒÇe™]òd kÀData corruptedQHttp[ëQeVÞaÉR0ˆÝnfBv|u“/Ф Error writing response to deviceQHttpHTTP ‰lBY1eWHTTP request failedQHttp0HTTPS #}Ú—‰v„ SSL e/côN&g*}è‹o2O†:HTTPS connection requested but SSL support not compiled inQHttpb~R0N;j_ %1 Host %1 foundQHttpb~N R0N;j_ %1Host %1 not foundQHttpb~R0N;j_ Host foundQHttp N;j_—‰Š‹IHost requires authenticationQHttpN TlÕv„ HTTP S@XJN;šÔInvalid HTTP chunked bodyQHttpN TlÕv„ HTTP VÞ‰†j˜-Invalid HTTP response headerQHttpl’g Š-[š‰#}ÚR0TêP O:g VhNo server set to connect toQHttpNãtO:g Vh—‰Š‹IProxy authentication requiredQHttpNãtO:g Vh—‰Š‹IProxy requires authenticationQHttp‰lBN-kbRequest abortedQHttpSSL nY1eWSSL handshake failedQHttpO:g Vhq!˜‹f•Ü•‰#}Ú%Server closed connection unexpectedlyQHttp g*wåv„“/Ф Unknown errorQHttpc[šN†g*wåv„ST[šUnknown protocol specifiedQHttp“/Фv„Qg[¹•w^¦Wrong content lengthQHttp—‰Š‹IAuthentication requiredQHttpSocketEngine$g*_žNãtO:g Vhc¥e6R0 HTTP VÞaÉ(Did not receive HTTP response from proxyQHttpSocketEngine&‚ HTTP NãtO:g Vh€o~kfBv|u“/Ф#Error communicating with HTTP proxyQHttpSocketEngine(RVg_žNãtO:g VhP³O†v„Š‹I‰lBfBv|u“/Ф/Error parsing authentication request from proxyQHttpSocketEngineNãtO:g Vh#}Ú]òN kc^8•Ü•‰#Proxy connection closed prematurelyQHttpSocketEngineNãtO:g Vh#}Úˆ«bÒProxy connection refusedQHttpSocketEngineNãtO:g VhbÒ}U#}ÚProxy denied connectionQHttpSocketEngineNãtO:g Vh#}Ú>fB!Proxy server connection timed outQHttpSocketEngineb~N R0NãtO:g VhProxy server not foundQHttpSocketEngine q!lÕ•‹YËN‹RÙCould not start transaction QIBaseDriver•‹U_ŒÇe™^«v|u“/ФError opening database QIBaseDriver q!lÕcÐN¤N‹RÙUnable to commit transaction QIBaseDriver q!lÕSÍIN‹RÙUnable to rollback transaction QIBaseDriver q!lÕ‘MneXðCould not allocate statement QIBaseResultq!lÕcÏð8QeeXð"Could not describe input statement QIBaseResult q!lÕcÏðeXðCould not describe statement QIBaseResultq!lÕb“SÖN NP ˜vîCould not fetch next item QIBaseResult b~N R0–cRCould not find array QIBaseResultq!lÕSÖ_—–cRŒÇe™Could not get array data QIBaseResultq!lÕSÖ_—gåŠbŒÇŠ Could not get query info QIBaseResultq!lÕSÖ_—eXðŒÇŠ Could not get statement info QIBaseResult q!lÕn–P™eXðCould not prepare statement QIBaseResult q!lÕ•‹YËN‹RÙCould not start transaction QIBaseResult q!lÕ•Ü•‰eXðUnable to close statement QIBaseResult q!lÕcÐN¤N‹RÙUnable to commit transaction QIBaseResultq!lÕ^úzË BLOBUnable to create BLOB QIBaseResult q!lÕW÷ˆLgåŠbUnable to execute query QIBaseResultq!lÕ•‹U_ BLOBUnable to open BLOB QIBaseResultq!lÕ‹€SÖ BLOBUnable to read BLOB QIBaseResultq!lÕ[ëQe BLOBUnable to write BLOB QIBaseResultˆÝnN ]òq!zz•“No space left on device QIODeviceb~N R0Šrj”hHbvî“No such file or directory QIODevicek –PN ³Permission denied QIODevice •‹U_NYj”hHToo many open files QIODevice g*wåv„“/Ф Unknown error QIODeviceMac OS X 8QelÕMac OS X input method QInputContextWindows 8QelÕWindows input method QInputContextXIMXIM QInputContextXIM 8QelÕXIM input method QInputContext ŠË8QeP<ÿEnter a value: QInputDialogq!lÕ QeQý_^« %1ÿ%2Cannot load library %1: %2QLibrary$q!lÕS͉ã %2 Qgv„{&†_ %1ÿ%3$Cannot resolve symbol "%1" in %2: %3QLibraryq!lÕSx Qý_^« %1ÿ%2Cannot unload library %1: %2QLibraryq!lÕ mmap '%1'ÿ%2Could not mmap '%1': %2QLibrary q!lÕ unmap '%1'ÿ%2Could not unmap '%1': %2QLibrary$W( %1 N-v„Yc›z _xºŠŒÇe™N {&T)Plugin verification data mismatch in '%1'QLibrary(j”hH %1 N f/TlÕv„ Qt Yc›z _0'The file '%1' is not a valid Qt plugin.QLibraryFYc›z _ %1 Ou(N vø[¹v„ Qt Qý_^«ÿ%2.%3.%4ÿ 0%50=The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]QLibraryTYc›z _ %1 Ou(N vø[¹v„ Qt Qý_^«0ÿN €ý\–d“/‚‘ËQúrHv„Qý_^«m÷W(Nw0ÿ WThe plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)QLibraryJYc›z _ %1 Ou(N vø[¹v„ Qt Qý_^«0˜g^úiË”p %2ÿ S{_—R0 %3OThe plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"QLibraryb~N R0RN«Qý_^«!The shared library was not found.QLibrary g*wåv„“/Ф Unknown errorQLibrary ‰ˆý(&C)&Copy QLineEdit Œ¼N (&P)&Paste QLineEdit ‘ÍPZ(&R)&Redo QLineEdit _©SŸ(&U)&Undo QLineEdit RjN (&T)Cu&t QLineEditR*–dDelete QLineEditQhèxdÇ Select All QLineEdit%1ÿOMW@Ou(N-%1: Address in use QLocalServer%1ÿT z1“/Ф%1: Name error QLocalServer%1ÿ[XSÖˆ«bÒ%1: Permission denied QLocalServer%1ÿg*wåv„“/Ф %2%1: Unknown error %2 QLocalServer%1ÿ#}Ú“/Ф%1: Connection error QLocalSocket%1ÿ#}Úˆ«bÒ%1: Connection refused QLocalSocket%1ÿŒÇe™SNY'%1: Datagram too large QLocalSocket%1ÿN TlÕv„T z1%1: Invalid name QLocalSocket%1ÿ`zï]ò•Ü•‰%1: Remote closed QLocalSocket%1ÿSocket OMW@“/Ф%1: Socket access error QLocalSocket%1ÿSocket dÍO\>fB%1: Socket operation timed out QLocalSocket%1ÿSocket ŒÇn“/Ф%1: Socket resource error QLocalSocket%1ÿsocket dÍO\g*e/cô)%1: The socket operation is not supported QLocalSocket%1ÿg*wåv„“/Ф%1: Unknown error QLocalSocket%1ÿg*wåv„“/Ф %2%1: Unknown error %2 QLocalSocket q!lÕ•‹YËN‹RÙUnable to begin transaction QMYSQLDriver q!lÕcÐN¤N‹RÙUnable to commit transaction QMYSQLDriverq!lÕ#}ÚUnable to connect QMYSQLDriverq!lÕ•‹U_ŒÇe™^«Unable to open database ' QMYSQLDriver q!lÕSÍIN‹RÙUnable to rollback transaction QMYSQLDriverq!lÕ}PT8QúP<Unable to bind outvalues QMYSQLResult q!lÕ}PTexP<Unable to bind value QMYSQLResultq!lÕW÷ˆLN NP gåŠbUnable to execute next query QMYSQLResult q!lÕW÷ˆLgåŠbUnable to execute query QMYSQLResult q!lÕW÷ˆLeXðUnable to execute statement QMYSQLResult q!lÕb“SÖŒÇe™Unable to fetch data QMYSQLResult q!lÕn–P™eXðUnable to prepare statement QMYSQLResult q!lÕ‘ÍneXðUnable to reset statement QMYSQLResultq!lÕQ2[XN NP }PgœUnable to store next result QMYSQLResult q!lÕQ2[X}PgœUnable to store result QMYSQLResultq!lÕQ2[XeXð}Pgœ!Unable to store statement results QMYSQLResult ÿg*T}T ÿ  (Untitled)QMdiArea%1 - [%2] %1 - [%2] QMdiSubWindow •Ü•‰(&C)&Close QMdiSubWindow yûRÕ(&M)&Move QMdiSubWindow VÞ_©(&R)&Restore QMdiSubWindow Y'\(&S)&Size QMdiSubWindow - [%1]- [%1] QMdiSubWindow•Ü•‰Close QMdiSubWindowŠªfHelp QMdiSubWindowgY'S(&X) Ma&ximize QMdiSubWindowgY'SMaximize QMdiSubWindowxU®Menu QMdiSubWindowg\S(&N) Mi&nimize QMdiSubWindowg\SMinimize QMdiSubWindowVÞ_©Restore QMdiSubWindowTN `b_© Restore Down QMdiSubWindown…=Shade QMdiSubWindowuYW(˜zï(&T) Stay on &Top QMdiSubWindowSÖmˆn…=Unshade QMdiSubWindow•Ü•‰CloseQMenuW÷ˆLExecuteQMenu•‹U_OpenQMenu •Üe¼ QtAbout Qt QMessageBoxŠªfHelp QMessageBox–±…ÏŠs`Å...Hide Details... QMessageBoxxº[šOK QMessageBox˜oy:Šs`Å...Show Details... QMessageBox xdÇ8QelÕ Select IMQMultiInputContextY‘Í8QelÕRcÛVhMultiple input method switcherQMultiInputContextPlugin*Ou(e‡[WQCNöN-v„Qge‡xU®v„Y‘Í8QelÕRcÛVhMMultiple input method switcher that uses the context menu of the text widgetsQMultiInputContextPlugin,SæNP socket ]ò}“W(vã€}T NP #c¥Wà4Another socket is already listening on the same portQNativeSocketEngine>ŠfWW(l’g IPv6 e/côv„^sSðN Ou( IPv6 socket=Attempt to use IPv6 socket on a platform with no IPv6 supportQNativeSocketEngine#}Úˆ«bÒConnection refusedQNativeSocketEngine#}Ú>fBConnection timed outQNativeSocketEngineŒÇe™NY'q!lÕQúDatagram was too large to sendQNativeSocketEngineq!lÕ#}ÚR0N;j_Host unreachableQNativeSocketEngineN TlÕv„ socket cÏð[PInvalid socket descriptorQNativeSocketEngine}²ï“/Ф Network errorQNativeSocketEngine }²ïdÍO\>fBNetwork operation timed outQNativeSocketEngine q!lÕOu(}²ïNetwork unreachableQNativeSocketEngine\ —^ socket dÍO\Operation on non-socketQNativeSocketEngineŒÇnN ³Out of resourcesQNativeSocketEnginek –PN ³Permission deniedQNativeSocketEngineST[šW‹aKg*e/côProtocol type not supportedQNativeSocketEngine q!lÕSÖ_—OMW@The address is not availableQNativeSocketEnginekdOMW@]òˆ«OÝ‹wThe address is protectedQNativeSocketEngine}PTv„OMW@]ò}“W(Ou(N-#The bound address is already in useQNativeSocketEngineNãtO:g VhW‹aKq!lÕe/côkddÍO\,The proxy type is invalid for this operationQNativeSocketEngine`zïN;j_•Ü•‰N†#}Ú%The remote host closed the connectionQNativeSocketEngineq!lÕRYËS^ãd­ socket%Unable to initialize broadcast socketQNativeSocketEngine q!lÕRYËS—^–;dË`' socket(Unable to initialize non-blocking socketQNativeSocketEngine q!lÕc¥e6Š `oUnable to receive a messageQNativeSocketEngine q!lÕQúŠ `oUnable to send a messageQNativeSocketEngineq!lÕ[ëQeUnable to writeQNativeSocketEngine g*wåv„“/Ф Unknown errorQNativeSocketEngineg*e/côv„ socket dÍO\Unsupported socket operationQNativeSocketEngine•‹U_ %1 v|u“/ФError opening %1QNetworkAccessCacheBackend[ëQe %1 fBv|u“/Фÿ%2Write error writing to %1: %2QNetworkAccessDebugPipeBackend q!lÕ•‹U_ %1ÿkdï_‘f/NP vî“#Cannot open %1: Path is a directoryQNetworkAccessFileBackend•‹U_ %1 v|u“/Фÿ%2Error opening %1: %2QNetworkAccessFileBackend_ž %1 ‹€SÖ“/Фÿ%2Read error reading from %1: %2QNetworkAccessFileBackend‰lB•‹U_—^g,W0zïj”hH %1%Request for opening non-local file %1QNetworkAccessFileBackend[ëQe %1 fBv|u“/Фÿ%2Write error writing to %1: %2QNetworkAccessFileBackendq!lÕ•‹U_ %1ÿf/NP vî“Cannot open %1: is a directoryQNetworkAccessFtpBackendN %1 fBv|u“/Фÿ%2Error while downloading %1: %2QNetworkAccessFtpBackendN P³ %1 fBv|u“/Фÿ%2Error while uploading %1: %2QNetworkAccessFtpBackendv{Qe %1 Y1eWÿ—‰Š‹I0Logging in to %1 failed: authentication requiredQNetworkAccessFtpBackendb~N R0Tiv„NãtO:g VhNo suitable proxy foundQNetworkAccessFtpBackendb~N R0Tiv„NãtO:g VhNo suitable proxy foundQNetworkAccessHttpBackend(N %1 fBv|u“/Ф%O:g VhVÞaÉÿ%2)Error downloading %1 - server replied: %2 QNetworkReplyg*wåv„ST[š %1Protocol "%1" is unknown QNetworkReplySÖmˆdÍO\Operation canceledQNetworkReplyImpl q!lÕ•‹YËN‹RÙUnable to begin transaction QOCIDriver q!lÕcÐN¤N‹RÙUnable to commit transaction QOCIDriver q!lÕRYËSUnable to initialize QOCIDriverq!lÕv{QeUnable to logon QOCIDriver q!lÕSÍIN‹RÙUnable to rollback transaction QOCIDriver q!lÕ‘MneXðUnable to alloc statement QOCIResultq!lÕ}PTkOMNåPZbyk!W÷ˆL'Unable to bind column for batch execute QOCIResult q!lÕ}PTexP<Unable to bind value QOCIResultq!lÕW÷ˆLbyk!eXð!Unable to execute batch statement QOCIResult q!lÕW÷ˆLeXðUnable to execute statement QOCIResultq!lÕóR0N NP Unable to goto next QOCIResult q!lÕn–P™eXðUnable to prepare statement QOCIResult q!lÕcÐN¤N‹RÙUnable to commit transaction QODBCDriverq!lÕ#c¥Unable to connect QODBCDriverq!lÕ•Ü•‰êRÕcÐN¤RŸ€ýUnable to disable autocommit QODBCDriverq!lÕ•‹U_êRÕcÐN¤RŸ€ýUnable to enable autocommit QODBCDriver q!lÕSÍIN‹RÙUnable to rollback transaction QODBCDriverˆQODBCResult::reset: q!lÕŠ-[š SQL_CURSOR_STATIC PZpºeXð\l`'0ŠËj¢gå`¨v„ ODBC šERÕz _v„Š-[šyQODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResult q!lÕ}PT‹ŠexUnable to bind variable QODBCResult q!lÕW÷ˆLeXðUnable to execute statement QODBCResultq!lÕb“SÖUnable to fetch QODBCResultq!lÕb“SÖ{,N{FUnable to fetch first QODBCResultq!lÕb“SÖg_ŒN{FUnable to fetch last QODBCResultq!lÕb“SÖN N{FUnable to fetch next QODBCResultq!lÕb“SÖRMN{FUnable to fetch previous QODBCResult q!lÕn–P™eXðUnable to prepare statement QODBCResultN TlÕv„}²W@ÿ%1Invalid URI: %1QObject g*c[šN;j_No host name givenQObjectW( %1 N N e/côkddÍO\Operation not supported on %1QObject&e¼ %1 N `zïN;j_•Ü•‰N†N kc^8v„#}Ú3Remote host closed the connection prematurely on %1QObject&%1 N v|u socket “/Фÿ%2Socket error on %1: %2QObjectT z1NameQPPDOptionsModelP<ValueQPPDOptionsModel q!lÕ•‹YËN‹RÙCould not begin transaction QPSQLDriver q!lÕcÐN¤N‹RÙCould not commit transaction QPSQLDriver q!lÕSÍIN‹RÙCould not rollback transaction QPSQLDriverq!lÕ#}ÚUnable to connect QPSQLDriverq!lÕŠ•±Unable to subscribe QPSQLDriver q!lÕSÖmˆŠ•±Unable to unsubscribe QPSQLDriver q!lÕ^úzËgåŠbUnable to create query QPSQLResult q!lÕn–P™eXðUnable to prepare statement QPSQLResultQlRCentimeters (cm)QPageSetupWidgetˆhU®FormQPageSetupWidgetšØ^¦ÿHeight:QPageSetupWidget‚ñT  Inches (in)QPageSetupWidgetjkT LandscapeQPageSetupWidgetŠ}ãMarginsQPageSetupWidgetQlS˜Millimeters (mm)QPageSetupWidgete¹T OrientationQPageSetupWidget }_5Y'\ÿ Page size:QPageSetupWidget}_5PaperQPageSetupWidget }_5O†nÿ Paper source:QPageSetupWidgetžÞ Points (pt)QPageSetupWidget~1TPortraitQPageSetupWidgetSÍ^jkTReverse landscapeQPageSetupWidgetSÍ^~1TReverse portraitQPageSetupWidget[ì^¦ÿWidth:QPageSetupWidgetN }ã bottom marginQPageSetupWidget]æ}ã left marginQPageSetupWidgetSó}ã right marginQPageSetupWidgetN }ã top marginQPageSetupWidgetYc›z _g* Qe0The plugin was not loaded. QPluginLoader g*wåv„“/Ф Unknown error QPluginLoader%1 ]ò[XW(0 `¨‰‰†[ë[ƒUÎÿ/%1 already exists. Do you want to overwrite it? QPrintDialog$%1 f/NP vî“0 ŠËxdÇQvNÖj”T 07%1 is a directory. Please choose a different file name. QPrintDialogdÍO\ (&O) << &Options << QPrintDialogdÍO\ (&O) >> &Options >> QPrintDialog RSp(&P)&Print QPrintDialog <qt>`¨‰‰†[ë[ƒUÎÿ</qt>%Do you want to overwrite it? QPrintDialogA0A0 QPrintDialog$A0 (841 x 1189 mm)A0 (841 x 1189 mm) QPrintDialogA1A1 QPrintDialog"A1 (594 x 841 mm)A1 (594 x 841 mm) QPrintDialogA2A2 QPrintDialog"A2 (420 x 594 mm)A2 (420 x 594 mm) QPrintDialogA3A3 QPrintDialog"A3 (297 x 420 mm)A3 (297 x 420 mm) QPrintDialogA4A4 QPrintDialogBA4 (210 x 297 mm, 8.26 x 11.7 ‚ñT )%A4 (210 x 297 mm, 8.26 x 11.7 inches) QPrintDialogA5A5 QPrintDialog"A5 (148 x 210 mm)A5 (148 x 210 mm) QPrintDialogA6A6 QPrintDialog"A6 (105 x 148 mm)A6 (105 x 148 mm) QPrintDialogA7A7 QPrintDialog A7 (74 x 105 mm)A7 (74 x 105 mm) QPrintDialogA8A8 QPrintDialogA8 (52 x 74 mm)A8 (52 x 74 mm) QPrintDialogA9A9 QPrintDialogA9 (37 x 52 mm)A9 (37 x 52 mm) QPrintDialog R%T ÿ%1 Aliases: %1 QPrintDialogB0B0 QPrintDialog&B0 (1000 x 1414 mm)B0 (1000 x 1414 mm) QPrintDialogB1B1 QPrintDialog$B1 (707 x 1000 mm)B1 (707 x 1000 mm) QPrintDialogB10B10 QPrintDialog B10 (31 x 44 mm)B10 (31 x 44 mm) QPrintDialogB2B2 QPrintDialog"B2 (500 x 707 mm)B2 (500 x 707 mm) QPrintDialogB3B3 QPrintDialog"B3 (353 x 500 mm)B3 (353 x 500 mm) QPrintDialogB4B4 QPrintDialog"B4 (250 x 353 mm)B4 (250 x 353 mm) QPrintDialogB5B5 QPrintDialogBB5 (176 x 250 mm, 6.93 x 9.84 ‚ñT )%B5 (176 x 250 mm, 6.93 x 9.84 inches) QPrintDialogB6B6 QPrintDialog"B6 (125 x 176 mm)B6 (125 x 176 mm) QPrintDialogB7B7 QPrintDialog B7 (88 x 125 mm)B7 (88 x 125 mm) QPrintDialogB8B8 QPrintDialogB8 (62 x 88 mm)B8 (62 x 88 mm) QPrintDialogB9B9 QPrintDialogB9 (44 x 62 mm)B9 (44 x 62 mm) QPrintDialogC5EC5E QPrintDialog$C5E (163 x 229 mm)C5E (163 x 229 mm) QPrintDialogêŠCustom QPrintDialogDLEDLE QPrintDialog$DLE (110 x 220 mm)DLE (110 x 220 mm) QPrintDialogExecutive Executive QPrintDialogJExecutive (7.5 x 10 ‚ñT , 191 x 254 mm))Executive (7.5 x 10 inches, 191 x 254 mm) QPrintDialog(j”hH %1 q!lÕ[ëQe0 ŠËxdÇQv[ƒj”T 0=File %1 is not writable. Please choose a different file name. QPrintDialog j”hH]ò[XW( File exists QPrintDialog FolioFolio QPrintDialog"\ •‹ (210 x 330 mm)Folio (210 x 330 mm) QPrintDialog LedgerLedger QPrintDialog*Ledger (432 x 279 mm)Ledger (432 x 279 mm) QPrintDialog LegalLegal QPrintDialogBLegal (8.5 x 14 ‚ñT , 216 x 356 mm)%Legal (8.5 x 14 inches, 216 x 356 mm) QPrintDialog LetterLetter QPrintDialogDLetter (8.5 x 11 ‚ñT , 216 x 279 mm)&Letter (8.5 x 11 inches, 216 x 279 mm) QPrintDialog g,W0zïj”hH Local file QPrintDialogxº[šOK QPrintDialogRSpPrint QPrintDialogRSpR0j”hH...Print To File ... QPrintDialogQhèRSp Print all QPrintDialogRSp{ÄW  Print range QPrintDialog RSpxdÇS@Print selection QPrintDialogRSpR0j”hHÿPDFÿ Print to File (PDF) QPrintDialog"RSpR0j”hHÿPostscriptÿ Print to File (Postscript) QPrintDialogTabloidTabloid QPrintDialog,Tabloid (279 x 432 mm)Tabloid (279 x 432 mm) QPrintDialogwYËexPY'Zoom inQPrintPreviewDialog~.\Zoom outQPrintPreviewDialog2–ŽAdvancedQPrintPropertiesWidgetˆhU®FormQPrintPropertiesWidget˜—bPageQPrintPropertiesWidgeth!\ CollateQPrintSettingsOutput˜O‚rColorQPrintSettingsOutput˜O‚rj!_ Color ModeQPrintSettingsOutputNýexCopiesQPrintSettingsOutputNýexÿCopies:QPrintSettingsOutput–Ù]åRSpDuplex PrintingQPrintSettingsOutputˆhU®FormQPrintSettingsOutputpp–Ž GrayscaleQPrintSettingsOutput•wŠ Long sideQPrintSettingsOutputq!NoneQPrintSettingsOutputx˜OptionsQPrintSettingsOutput8QúŠ-[šOutput SettingsQPrintSettingsOutput c[š˜—bÿ_ž Pages fromQPrintSettingsOutputQhèRSp Print allQPrintSettingsOutputRSp{ÄW  Print rangeQPrintSettingsOutputSÍTReverseQPrintSettingsOutputxdÇS@ SelectionQPrintSettingsOutputwíŠ Short sideQPrintSettingsOutputR0toQPrintSettingsOutputT z1(&N)ÿ&Name: QPrintWidget...... QPrintWidgetˆhU®Form QPrintWidgetOMnÿ Location: QPrintWidget8Qúj”hH(&F)ÿ Output &file: QPrintWidget \l`'(&R) P&roperties QPrintWidget˜‰½Preview QPrintWidgetSpˆhj_Printer QPrintWidgetW‹aKÿType: QPrintWidgetq!lÕ•‹U_8Qe\TNå‹€SÖ,Could not open input redirection for readingQProcessq!lÕ•‹U_8Qú\TNå[ëQe-Could not open output redirection for writingQProcess_žˆLz ‹€SÖfBv|u“/ФError reading from processQProcess[ëQeˆLz fBv|u“/ФError writing to processQProcess ˆLz ]ò])opProcess crashedQProcess ˆLz dÍO\>fBProcess operation timed outQProcess ŒÇn“/Фÿfork Y1eWÿ ÿ%1!Resource error (fork failure): %1QProcessSÖmˆCancelQProgressDialog•‹U_Open QPushButtonRþxCheck QRadioButton“/Фv„[WQC˜^R%ŠžlÕbad char class syntaxQRegExp “/Фv„ lookahead ŠžlÕbad lookahead syntaxQRegExp“/Фv„‘͉†ŠžlÕbad repetition syntaxQRegExpOu(]ò•Ü•‰v„RŸ€ýdisabled feature usedQRegExpN TlÕv„Qk2OMP<invalid octal valueQRegExp GR0Qgè–PR6met internal limitQRegExp\N†]æe¹v„S@–”{&missing left delimQRegExp l’g v|u“/Фno error occurredQRegExpg*˜gGR0}P\>unexpected endQRegExp•‹U_ŒÇe™^«v|u“/ФError opening databaseQSQLite2Driver q!lÕ•‹YËN‹RÙUnable to begin transactionQSQLite2Driver q!lÕcÐN¤N‹RÙUnable to commit transactionQSQLite2Driver q!lÕSÍIN‹RÙUnable to rollback transactionQSQLite2Driver q!lÕW÷ˆLeXðUnable to execute statementQSQLite2Result q!lÕb“SÖ}PgœUnable to fetch resultsQSQLite2Result•Ü•‰ŒÇe™^«v|u“/ФError closing database QSQLiteDriver•‹U_ŒÇe™^«v|u“/ФError opening database QSQLiteDriver q!lÕ•‹YËN‹RÙUnable to begin transaction QSQLiteDriver q!lÕcÐN¤N‹RÙUnable to commit transaction QSQLiteDriver q!lÕSÍIN‹RÙUnable to rollback transaction QSQLiteDriverl’g gåŠbNo query QSQLiteResultSÃexex‘ÏN {&TParameter count mismatch QSQLiteResult q!lÕ}PTSÃexUnable to bind parameters QSQLiteResult q!lÕW÷ˆLeXðUnable to execute statement QSQLiteResult q!lÕb“SÖRUnable to fetch row QSQLiteResult q!lÕ‘ÍneXðUnable to reset statement QSQLiteResultR*–dDeleteQScriptBreakpointsWidget~|~ŒContinueQScriptDebugger•Ü•‰CloseQScriptDebuggerCodeFinderWidgetT z1NameQScriptDebuggerLocalsModelP<ValueQScriptDebuggerLocalsModelT z1NameQScriptDebuggerStackModeld\ SearchQScriptEngineDebugger•Ü•‰CloseQScriptNewBreakpointWidget^•zïBottom QScrollBar]æŠ}ã Left edge QScrollBar\ N c’R Line down QScrollBar\ N c’RLine up QScrollBar˜—bN e¹ Page down QScrollBar˜—b]æe¹ Page left QScrollBar˜—bSóe¹ Page right QScrollBar˜—bN e¹Page up QScrollBarOMnPosition QScrollBarSóŠ}ã Right edge QScrollBar_€N crŽø Scroll down QScrollBarW(kdcrŽø Scroll here QScrollBar_€]æcrŽø Scroll left QScrollBar_€SócrŽø Scroll right QScrollBar_€N crŽø Scroll up QScrollBar˜zïTop QScrollBar %1ÿ]ò[XW(%1: already exists QSharedMemory%1ÿ^úzËY'\\e¼ 0%1: create size is less then 0 QSharedMemory %1ÿN [XW(%1: doesn't exists QSharedMemory%1ÿftok Y1eW%1: ftok failed QSharedMemory%1ÿN TlÕv„Y'\%1: invalid size QSharedMemory%1ÿ“uP<“/Ф %1: key error QSharedMemory%1ÿ“uP Media Play QShortcut Z’šÔRMN™–Media Previous QShortcutZ’šÔ“—ó Media Record QShortcutZ’šÔP\kb Media Stop QShortcutxU®Menu QShortcutMetaMeta QShortcut—ójMusic QShortcutT&No QShortcutex[W“–[šNum Lock QShortcutex[W“–[šNumLock QShortcutex[W“–[š Number Lock QShortcut•‹U_}²W@Open URL QShortcut_€N N˜ Page Down QShortcut_€N N˜Page Up QShortcutŒ¼N Paste QShortcut PausePause QShortcut PgDownPgDown QShortcutPgUpPgUp QShortcut PrintPrint QShortcutRSp‡¢^U Print Screen QShortcutR7e°Refresh QShortcut‘Íe° QeReload QShortcut ReturnReturn QShortcutSó“uRight QShortcutQ2[XSave QShortcutcrŽø“–[š Scroll Lock QShortcutcrŽø“–[š ScrollLock QShortcutd\ Search QShortcutxdÇSelect QShortcut ShiftShift QShortcutzzv}“uSpace QShortcut_…T}Standby QShortcutP\kbStop QShortcut SysReqSysReq QShortcut|û}q‰lB SysRqSystem Request QShortcutTabTab QShortcutTreble Down Treble Down QShortcutTreble Up Treble Up QShortcutN “uUp QShortcut_qPÏVideo QShortcut—ó‘Ï–MON Volume Down QShortcut—\—ó Volume Mute QShortcut—ó‘ÏcКØ Volume Up QShortcutf/Yes QShortcut˜—bN e¹ Page downQSlider˜—b]æe¹ Page leftQSlider˜—bSóe¹ Page rightQSlider˜—bN e¹Page upQSliderOMnPositionQSliderOMW@W‹aKg*ˆ«e/côAddress type not supportedQSocks5SocketEngine$#}Úg*ˆ« SOCKSv5 O:g VhQAŠ1(Connection not allowed by SOCKSv5 serverQSocks5SocketEngineNãtO:g Vh#}Ú]òN kc^8•Ü•‰&Connection to proxy closed prematurelyQSocks5SocketEngineNãtO:g Vh#}Úˆ«bÒConnection to proxy refusedQSocks5SocketEngineNãtO:g Vh#}Ú>fBConnection to proxy timed outQSocks5SocketEngine"N‚,v„ SOCKSv5 O:g Vh“/ФGeneral SOCKSv5 server failureQSocks5SocketEngine }²ïdÍO\>fBNetwork operation timed outQSocks5SocketEngineNãtO:g VhŠ‹IY1eWProxy authentication failedQSocks5SocketEngineNãtO:g VhŠ‹IY1eWÿ%1Proxy authentication failed: %1QSocks5SocketEngineb~N R0NãtO:g VhProxy host not foundQSocks5SocketEngineSOCKS 5 v„ST[š“/ФSOCKS version 5 protocol errorQSocks5SocketEngineSOCKSv5 cNäg*ˆ«e/côSOCKSv5 command not supportedQSocks5SocketEngine TTL >fB TTL expiredQSocks5SocketEngine4g*wåv„ SOCKSv5 NãtO:g Vh“/ФNãx¼ 0x%1%Unknown SOCKSv5 proxy error code 0x%1QSocks5SocketEngineSÖmˆCancelQSoftKeyManager[ŒbDoneQSoftKeyManager–â•‹ExitQSoftKeyManagerx˜OptionsQSoftKeyManagerxdÇSelectQSoftKeyManager\LessQSpinBoxfôYMoreQSpinBoxSÖmˆCancelQSql‰SÖmˆ}è/UÎÿCancel your edits?QSqlxºŠConfirmQSqlR*–dDeleteQSql‰R*–d{F}“UÎÿDelete this record?QSqlcÒQeInsertQSqlT&NoQSql‰Q2[X}è/Nv„Qg[¹UÎÿ Save edits?QSqlfôe°UpdateQSqlf/YesQSqll’g ‘Ñ”pq!lÕcÐO›a‘‹Iÿ%1,Cannot provide a certificate with no key, %1 QSslSocket$^úzË SSL Qge‡fBv|u“/Фÿ%1ÿ Error creating SSL context (%1) QSslSocket&^úzË SSL ]åO\–ŽkµfBv|u“/Фÿ%1Error creating SSL session, %1 QSslSocket&^úzË SSL ]åO\–ŽkµfBv|u“/Фÿ%1Error creating SSL session: %1 QSslSocketSSL T kefBv|u“/Фÿ%1Error during SSL handshake: %1 QSslSocket Qeg,W0a‘‹IfBv|u“/Фÿ%1#Error loading local certificate, %1 QSslSocket QeyÁ”pfBv|u“/Фÿ%1Error loading private key, %1 QSslSocket‹€SÖfBv|u“/Фÿ%1Error while reading: %1 QSslSocketN TlÕbzzv}v„R [ÆnU®ÿ%1ÿ !Invalid or empty cipher list (%1) QSslSocketq!lÕ[ëQeŒÇe™ÿ%1Unable to write data: %1 QSslSocket g*wåv„“/Ф Unknown error QSslSocket g*wåv„“/Ф Unknown error QStateMachine %1ÿ]ò[XW(%1: already existsQSystemSemaphore %1ÿN [XW(%1: does not existQSystemSemaphore%1ÿŒÇnN ³%1: out of resourcesQSystemSemaphore%1ÿ[XSÖˆ«bÒ%1: permission deniedQSystemSemaphore%1ÿg*wåv„“/Ф %2%1: unknown error %2QSystemSemaphore q!lÕ•‹U_#}ÚUnable to open connection QTDSDriverq!lÕOu(ŒÇe™^«Unable to use database QTDSDriver_€]æcrŽø Scroll LeftQTabBar_€SócrŽø Scroll RightQTabBarSocket v„dÍO\g*ˆ«e/cô$Operation on socket is not supported QTcpServer ‰ˆý(&C)&Copy QTextControl Œ¼N (&P)&Paste QTextControl ‘ÍPZ(&R)&Redo QTextControl _©SŸ(&U)&Undo QTextControl‰ˆý#}POMW@(&L)Copy &Link Location QTextControl RjN (&T)Cu&t QTextControlR*–dDelete QTextControlQhèxdÇ Select All QTextControl•‹U_Open QToolButtonc N Press QToolButtonkd^sSðN e/cô IPv6#This platform does not support IPv6 QUdpSocket‘ÍPZRedo QUndoGroup_©SŸUndo QUndoGroupÿzzv}ÿ QUndoModel‘ÍPZRedo QUndoStack_©SŸUndo QUndoStackcÒQe„,W x¼c§R6[WQC Insert Unicode control characterQUnicodeControlCharacterMenuLRE ]æR0Só]LQewžÞ$LRE Start of left-to-right embeddingQUnicodeControlCharacterMenuLRM ]æR0SójŠLRM Left-to-right markQUnicodeControlCharacterMenuLRO ]æR0Só‰†[ëwžÞ#LRO Start of left-to-right overrideQUnicodeControlCharacterMenuPDF _HQúe¹Th<_PDF Pop directional formattingQUnicodeControlCharacterMenuRLE SóR0]æ]LQewžÞ$RLE Start of right-to-left embeddingQUnicodeControlCharacterMenuRLM SóR0]æjŠRLM Right-to-left markQUnicodeControlCharacterMenuRLO SóR0]扆[ëwžÞ#RLO Start of right-to-left overrideQUnicodeControlCharacterMenuZWJ –ö[ì^¦#c¥VhZWJ Zero width joinerQUnicodeControlCharacterMenuZWNJ –ö[ì^¦—^#c¥VhZWNJ Zero width non-joinerQUnicodeControlCharacterMenuZWSP –ö[ì^¦zzv}ZWSP Zero width spaceQUnicodeControlCharacterMenu q!lÕ˜oy:}²W@Cannot show URL QWebFrameq!lÕ˜oy: MIME W‹aKCannot show mimetype QWebFrame j”hHN [XW(File does not exist QWebFrame ŠËlB]òˆ«–;dËRequest blocked QWebFrame ŠËlB]òSÖmˆRequest cancelled QWebFrame%1ÿ%2x%3 PÏ} ÿ %1 (%2x%3 pixels)QWebPage %n P j”hH %n file(s)QWebPage e°XžR0[WQxAdd To DictionaryQWebPageN ‚ov„ HTTP ŠËlBBad HTTP requestQWebPage|—šÔBoldQWebPage^•zïBottomQWebPagej¢gåbü[W‚e‡lÕCheck Grammar With SpellingQWebPagej¢gåbü[WCheck SpellingQWebPagebS[WfBzËSsj¢gåbü[WCheck Spelling While TypingQWebPagexdÇj”hH Choose FileQWebPagen–dgÑv„d\ Clear recent searchesQWebPage‰ˆýCopyQWebPage‰ˆý_qPÏ Copy ImageQWebPage‰ˆý#}P Copy LinkQWebPageRjN CutQWebPage˜Š-DefaultQWebPageR*–dR0kdU®[Wv„}P\>Delete to the end of the wordQWebPageR*–dR0kdU®[Wv„w˜-Delete to the start of the wordQWebPagee¹T DirectionQWebPage[WW‹FontsQWebPage_€VÞGo BackQWebPage_€RM Go ForwardQWebPage–±…Ïbü[W‚e‡lÕHide Spelling and GrammarQWebPage_ýueIgnoreQWebPage_ýue Ignore Grammar context menu itemIgnoreQWebPagegåšWInspectQWebPageeœšÔItalicQWebPage$JavaScript ‹fTJ % %1JavaScript Alert - %1QWebPage$JavaScript xºŠ % %1JavaScript Confirm - %1QWebPage$JavaScript cÐy: % %1JavaScript Prompt - %1QWebPage]æŠ}ã Left edgeQWebPage W([WQxˆád\ Look Up In DictionaryQWebPageyûRÕn8jR0NP S@XJv„}P\>'Move the cursor to the end of the blockQWebPageyûRÕn8jR0NP e‡Növ„}P\>*Move the cursor to the end of the documentQWebPageyûRÕn8jR0NˆLv„}P\>&Move the cursor to the end of the lineQWebPageyûRÕn8jR0N NP [WQC%Move the cursor to the next characterQWebPageyûRÕn8jR0N NˆL Move the cursor to the next lineQWebPageyûRÕn8jR0N NP U®[W Move the cursor to the next wordQWebPageyûRÕn8jR0RMNP [WQC)Move the cursor to the previous characterQWebPageyûRÕn8jR0RMNˆL$Move the cursor to the previous lineQWebPageyûRÕn8jR0RMNP U®[W$Move the cursor to the previous wordQWebPageyûRÕn8jR0NP S@XJv„w˜-)Move the cursor to the start of the blockQWebPageyûRÕn8jR0NP e‡Növ„w˜-,Move the cursor to the start of the documentQWebPageyûRÕn8jR0NˆLv„w˜-(Move the cursor to the start of the lineQWebPageb~N R0Sï€ýv„Qg[¹No Guesses FoundQWebPageg*xSÖNûOUj”hHNo file selectedQWebPagel’g gÑv„d\ No recent searchesQWebPage•‹U_hFg¶ Open FrameQWebPage•‹U__qPÏ Open ImageQWebPage•‹U_#}P Open LinkQWebPage W(e°‰–z—•‹U_Open in New WindowQWebPageYhF}ÚOutlineQWebPage˜—bN e¹ Page downQWebPage˜—b]æe¹ Page leftQWebPage˜—bSóe¹ Page rightQWebPage˜—bN e¹Page upQWebPageŒ¼N PasteQWebPage gÑv„d\ Recent searchesQWebPage‘Íe° QeReloadQWebPage‘ÍnResetQWebPageSóŠ}ã Right edgeQWebPageQ2[X_qPÏ Save ImageQWebPageQ2[X#}P... Save Link...QWebPage_€N crŽø Scroll downQWebPageW(kdcrŽø Scroll hereQWebPage_€]æcrŽø Scroll leftQWebPage_€SócrŽø Scroll rightQWebPage_€N crŽø Scroll upQWebPaged\ zÙSðSearch The WebQWebPagexdÇR0NP S@XJv„}P\>Select to the end of the blockQWebPagexdÇR0NP e‡Növ„}P\>!Select to the end of the documentQWebPagexdÇR0NˆLv„}P\>Select to the end of the lineQWebPagexdÇR0N NP [WQCSelect to the next characterQWebPage xdÇR0N NˆLSelect to the next lineQWebPagexdÇR0N NP U®[WSelect to the next wordQWebPagexdÇR0RMNP [WQC Select to the previous characterQWebPage xdÇR0RMNˆLSelect to the previous lineQWebPagexdÇR0RMNP U®[WSelect to the previous wordQWebPagexdÇR0NP S@XJv„w˜- Select to the start of the blockQWebPagexdÇR0NP e‡Növ„w˜-#Select to the start of the documentQWebPagexdÇR0NˆLv„w˜-Select to the start of the lineQWebPage˜oy:bü[W‚e‡lÕShow Spelling and GrammarQWebPagebü[WSpellingQWebPageP\kbStopQWebPagecÐN¤SubmitQWebPagecÐN¤QSubmit (input element) alt text for elements with no alt, title, or valueSubmitQWebPagee‡[We¹TText DirectionQWebPage"f/Sïd\ v„}"_0ŠË8Qe•Ü“u[Wÿ03This is a searchable index. Enter search keywords: QWebPage˜zïTopQWebPage^•}Ú UnderlineQWebPageg*wåUnknownQWebPage}²zÙgåšWVh%%2Web Inspector - %2QWebPage f/NÀž¼ÿ What's This?QWhatsThisAction+*QWidget [Œb(&F)&FinishQWizard Šªf(&H)&HelpQWizardN NP (&N)&NextQWizardN NP (&N)ÿ&Next >QWizardÿÔVÞ(&B)< &BackQWizardSÖmˆCancelQWizardcÐN¤CommitQWizard~|~ŒContinueQWizard[ŒbDoneQWizard_€VÞGo BackQWizardŠªfHelpQWizard%1 - [%2] %1 - [%2] QWorkspace •Ü•‰(&C)&Close QWorkspace yûRÕ(&M)&Move QWorkspace VÞ_©(&R)&Restore QWorkspace Y'\(&S)&Size QWorkspaceSÖmˆn…=(&U)&Unshade QWorkspace•Ü•‰Close QWorkspacegY'S(&X) Ma&ximize QWorkspaceg\S(&N) Mi&nimize QWorkspaceg\SMinimize QWorkspaceTN `b_© Restore Down QWorkspace n…=(&A)Sh&ade QWorkspaceuYW(˜zï(&T) Stay on &Top QWorkspace*‹€SÖ XML [£TJfBaÉg }èx¼[£TJbshzË[£TJYencoding declaration or standalone declaration expected while reading the XML declarationQXmlW(Yè[æšÔN-v„e‡[W[£TJg “/Ф3error in the text declaration of an external entityQXmlRVgŠ;‰ãfBv|u“/Ф$error occurred while parsing commentQXmlRVgQg[¹fBv|u“/Ф$error occurred while parsing contentQXmlRVge‡NöW‹aK[š©fBv|u“/Ф5error occurred while parsing document type definitionQXmlRVgQC} fBv|u“/Ф$error occurred while parsing elementQXmlRVgSÀfBv|u“/Ф&error occurred while parsing referenceQXmlu(b6‰øv|v„“/Фerror triggered by consumerQXml*W( DTD N-N QAŠ1Ou(YèRVgv„[æšÔSÀ;external parsed general entity reference not allowed in DTDQXml&W(\l`'Punexpected end of fileQXml W(“/Фv„Qge‡N-g g*RVgv„[æšÔSÀ*unparsed entity reference in wrong contextQXml‹€SÖ XML [£TJfBaÉg rHg,†_2version expected while reading the XML declarationQXmlshzË[£TJfBv„P<“/Ф&wrong value for standalone declarationQXml(%1 pºN TlÕv„ PUBLIC ‹XR%[P0#%1 is an invalid PUBLIC identifier. QXmlStream%1 pºN TlÕv„}èx¼T z10%1 is an invalid encoding name. QXmlStream%1 f/N TlÕv„†UtcNäT z10-%1 is an invalid processing instruction name. QXmlStreamÿ OFf/w R0v„f/  , but got ' QXmlStream \l`'‘Í[š©0Attribute redefined. QXmlStream}èx¼ %1 N e/cô0Encoding %1 is unsupported QXmlStreamGR0N kcxºv„}èx¼Qg[¹0(Encountered incorrectly encoded content. QXmlStream[æšÔ %1 g*[£TJ0Entity '%1' not declared. QXmlStream ˜gaÉpº  Expected  QXmlStream˜gv„[WQCŒÇe™0Expected character data. QXmlStreame‡Nö\>zïg Y™v„Qg[¹0!Extra content at end of document. QXmlStreamN TlÕv„T}T zz•“[£TJ0Illegal namespace declaration. QXmlStreamN TlÕv„ XML [WQC0Invalid XML character. QXmlStreamN TlÕv„ XML T z10Invalid XML name. QXmlStreamN TlÕv„ XML rHg,[WN20Invalid XML version string. QXmlStreamXML [£TJN-g N TlÕv„\l`'0%Invalid attribute in XML declaration. QXmlStreamN TlÕv„[WQCSÀ0Invalid character reference. QXmlStreamN TlÕv„e‡Nö0Invalid document. QXmlStreamN TlÕv„[æšÔP<Invalid entity value. QXmlStreamN TlÕv„†UtcNäT z10$Invalid processing instruction name. QXmlStreamW(SÃex[æšÔ[£TJg NDATA0&NDATA in parameter entity declaration. QXmlStream T}T zz•“v„RMn[WN2 %1 g*[£TJ"Namespace prefix '%1' not declared QXmlStream•‹U_‚}Pg_v„j|dN \ z10 Opening and ending tag mismatch. QXmlStreame‡Nö}P\>N kcxº0Premature end of document. QXmlStreamPun,R0^ô[æšÔ0Recursive entity detected. QXmlStream W(\l`'P"0&Sequence ']]>' not allowed in content. QXmlStream"shzË[æšÔSêc¥S× yes b no0"Standalone accepts only yes or no. QXmlStream˜gaÉg •‹YËj|d0Start tag expected. QXmlStream"shzËv„†[dì\l`'_ŘW(}èx¼NK_ŒQúsþ0?The standalone pseudo attribute must appear after the encoding. QXmlStream—^˜g Unexpected ' QXmlStream(W(Ql•‹Nãx¼[WQCN-GR0—^˜gv„[WQC %10/Unexpected character '%1' in public id literal. QXmlStreamg*e/côv„ XML rHg,0Unsupported XML version. QXmlStreamXML [£TJl’g W(e‡Nö•‹YˆU0)XML declaration not at start of document. QXmlStream(%1 ‚ %2 {&TN†NˆLv„•‹YË‚}P\>0,%1 and %2 match the start and end of a line. QtXmlPatterns%1 q!lÕSÖ_—%1 cannot be retrieved QtXmlPatterns4%1 ST+N†W(‰lBv„}èx¼ %2 QgN QAŠ1v„Qk2OMP<0E%1 contains octets which are disallowed in the requested encoding %2. QtXmlPatternsN%1 f/‰exW‹aKÿ q!lÕIcÛb‰exW‹aK0q6€ ÿ IcÛpºSŸW‹aKÿ Y‚ %2 f/SïˆLv„0s%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. QtXmlPatterns%1 f/N TlÕv„ %2%1 is an invalid %2 QtXmlPatterns0%1 f/kc‰ˆhy:_N-N TlÕv„e×j0TlÕv„e×jg ÿ?%1 is an invalid flag for regular expressions. Valid flags are: QtXmlPatterns%1 f/N TlÕv„T}T zz•“}²W@0%1 is an invalid namespace URI. QtXmlPatterns$%1 f/N TlÕv„kc‰ˆhy:_j#_ÿ%2/%1 is an invalid regular expression pattern: %2 QtXmlPatterns%1 N f/TlÕv„j#g,j!_T z10$%1 is an invalid template mode name. QtXmlPatterns%1 f/g*wåv„j_R6W‹aK0%1 is an unknown schema type. QtXmlPatterns%1 f/P g*ˆ«e/côv„}èx¼0%1 is an unsupported encoding. QtXmlPatterns(%1 N f/TlÕv„ XML 1.0 [WQC0$%1 is not a valid XML 1.0 character. QtXmlPatterns%1 N f/†UtcNäv„TlÕT z104%1 is not a valid name for a processing-instruction. QtXmlPatterns%1 N f/TlÕv„exP<0"%1 is not a valid numeric literal. QtXmlPatternsH%1 N f/NP TlÕv„†UtcNäv„vîjT z10_Řf/ %2 v„P<ÿ O‹Y‚ %30Z%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. QtXmlPatterns"%1 N f/TlÕv„ %2 W‹aKv„P<0#%1 is not a valid value of type %2. QtXmlPatterns%1 N f/R”v„exP<0$%1 is not a whole number of minutes. QtXmlPatterns(%1 N f/NP SŸW‹aK0Sê€ýIcÛpºSŸW‹aK0C%1 is not an atomic type. Casting is only possible to atomic types. QtXmlPatterns2%1 N f/{ÄW Qg\l`'[£TJ0lèaj_R6S/QeRŸ€ýg*e/cô0g%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. QtXmlPatterns"%1 N f/TlÕv„ %2 W‹aKv„P<0&%1 is not valid as a value of type %2. QtXmlPatterns%1 {&TN†cÛˆL[WQC%1 matches newline characters QtXmlPatterns8%1 _Œ—b_Řß„W %2 b %3ÿ € —^SÖNã[WN2v„}P\>0J%1 must be followed by %2 or %3, not at the end of the replacement string. QtXmlPatterns6%1 ó\—‰ %n P SÃexÿ Vàkd %2 f/N TlÕv„0=%1 requires at least %n argument(s). %2 is therefore invalid. QtXmlPatterns8%1 gYSê€ýg %n P SÃexÿ Vàkd %2 f/N TlÕv„09%1 takes at most %n argument(s). %2 is therefore invalid. QtXmlPatterns%1 ]òˆ«T|Së0%1 was called. QtXmlPatternsŠ;‰ãN €ýST+ %1A comment cannot contain %1 QtXmlPatternsŠ;‰ãN €ýNå %1 PZ}P\>A comment cannot end with a %1. QtXmlPatterns2˜Š-v„T}T zz•“[£TJ_ŘW(Qý_0‹Šex‚x˜[£TJNKRM0^A default namespace declaration must occur before function, variable, and option declarations. QtXmlPatterns2vôc¥QC} ^úiËVhl’g [Œetu"u0%1 Nå %2 }Pg_0EA direct element constructor is not well-formed. %1 is ended with %2. QtXmlPatterns ]ò}“g |=zàpº %1 v„Qý_[XW(00A function already exists with the signature %1. QtXmlPatterns*N €ývôc¥Š{—Qý_j!}D0_؉_žN;j!}DS/Qe0VA library module cannot be evaluated directly. It must be imported from a main module. QtXmlPatterns.Qý_Qgv„SÃexN €ýˆ«[£TJpºSÿtunnelÿ 0W‹aK %1 v„P<_ŘST+PvexP ex[W0exP< %2 g*{&TkdhNö0PA value of type %1 must contain an even number of digits. The value %2 does not. QtXmlPatterns>S@WßOMyû_Řf/W( %1 R0 %2 {ÄW NKQg0%3 ]ò…Qú{ÄW 0HA zone offset must be in the range %1..%2 inclusive. %3 is out of range. QtXmlPatternsN fxºv„‰RG{&T0Ambiguous rule match. QtXmlPatternsT pº %1 v„\l`']òˆ«^úzË01An attribute by name %1 has already been created. QtXmlPatterns>\l`'žÞN €ýPZpºe‡NöžÞv„[P{ÀžÞ0Vàkdÿ \l`' %1 v„OMnN Ti0dAn attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. QtXmlPatterns"%2 _Řó\g NP [PQC} %103At least one %1 element must appear as child of %2. QtXmlPatterns*ó\NP QC} %1 ‰QúsþW( %2 NKRM0-At least one %1-element must occur before %2. QtXmlPatterns*ó\NP QC} %1 ‰QúsþW( %2 NKQg0-At least one %1-element must occur inside %2. QtXmlPatterns_ŘˆhTó\NP }DNö0'At least one component must be present. QtXmlPatterns2W(QC} %2 v„ %1 \l`'N-ó\‰c[šNP j!_0FAt least one mode must be specified in the %1-attribute on element %2. QtXmlPatterns*W(R–”{& %1 _Œ_Řó\g NP fB•“}DNö0?At least one time component must appear after the %1-delimiter. QtXmlPatterns \l`' %1 ‚ %2 _|kdN’e¥0+Attribute %1 and %2 are mutually exclusive. QtXmlPatterns.\l`'QC} %1 q!lÕ^RSÿ VàpºO‚åQC} %1 l’g \l`' %2ÿ RGN_N €ýg \l`' %3 b %40EIf element %1 has no attribute %2, it cannot have attribute %3 or %4. QtXmlPatternshY‚gœ{,NP SÃexf/zz^Rÿ bf/•w^¦pº 0 v„[WN2ÿl’g T}T zz•“ÿ ÿ RGq!lÕc[šRMn[WN20OFf/`¨c[šN† %10ŠIf the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. QtXmlPatterns,W(|!Sv„j#_ˆhj!}DN-ÿ \l`' %1 _Ř[XW(0@In a simplified stylesheet module, attribute %1 must be present. QtXmlPatternsBW( XSL-T j#_Qgÿ N €ýu( %1 Žøÿ Sê€ýu( %2 b %30DIn an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. QtXmlPatterns8W( XSL-T j#_Qgÿ Qý_ %1 v„N €ýg {,N P SÃex0>In an XSL-T pattern, function %1 cannot have a third argument. QtXmlPatternsHW( XSL-T j#_Qgÿ Sêg Qý_ %1ÿ %2 SïNåu(e¼kÔ\ 0%3 N ˆL0OIn an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. QtXmlPatternsTW( XSL-T j#_Qgÿ Qý_ %1 v„{,NP SÃex_Řf/e‡[Wb‹ŠexSÀÿ NåO¿u(e¼kÔ\ 0yIn an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. QtXmlPatternsJW( XSL-T j#_Qgÿ Qý_ %1 v„{,NP SÃex_Řf/[WN2ÿ NåO¿u(e¼kÔ\ 0hIn an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. QtXmlPatterns>W(SÖNã[WN2N-ÿ %1 Sê€ýu(e¼êŽ«b %2 v„+8ÿ € —^ %30MIn the replacement string, %1 can only be used to escape itself or %2, not %3 QtXmlPatterns\W‹aK %1 NXNå %2 b %3ÿkcbŒ q!–PY'ÿ f/N QAŠ1v„0YMultiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. QtXmlPatternsfB0Network timeout. QtXmlPatternsDg*e/côYèQý_0b@g e/côv„T+_SïNåvôc¥Ou(€ N —‰QH[£TJpºYèQý_0{No external functions are supported. All supported functions can be used directly, without first declaring them as external QtXmlPatternsl’g |=zàpº %1 v„Qý_SïOu(*No function with signature %1 is available QtXmlPatterns RMn[WN2 %1 l’g }PTT}T zz•“-No namespace binding exists for the prefix %1 QtXmlPatterns,W( %2 v„RMn[WN2 %1 l’g }PTT}T zz•“3No namespace binding exists for the prefix %1 in %2 QtXmlPatternsl’g T pº %1 v„j#g,[XW(0No template by name %1 exists. QtXmlPatterns4g*e/cô pragma eXð0Vàk!ÿ _Řg ˜Š-v„eXð0^None of the pragma expressions are supported. Therefore, a fallback expression must be present QtXmlPatterns"Sêg NP %1 [£TJSïNåW(gåŠbN-06Only one %1 declaration can occur in the query prolog. QtXmlPatternsSê€ýQúsþNP QC} %10Only one %1-element can appear. QtXmlPatternsXSêe/cô Unicode Codepoint Collationÿ%1ÿ 0%2 g*e/cô0;IOnly the Unicode Codepoint Collation is supported(%1). %2 is unsupported. QtXmlPatterns0Sêg RMn[WN2 %1 €ý‚ %2 }PT0SÍNKN¦q605Only the prefix %1 can be bound to %2 and vice versa. QtXmlPatterns6dÍO\QC %1 N €ýu(e¼W‹aK %2 ‚ %3 v„SŸexP<0>Operator %1 cannot be used on atomic values of type %2 and %3. QtXmlPatterns"dÍO\QC %1 N €ýu(e¼W‹aK %20&Operator %1 cannot be used on type %2. QtXmlPatternsn¢OMÿq!lÕˆhy:eåg %10"Overflow: Can't represent date %1. QtXmlPatternsn¢OMÿq!lÕˆhy:eåg0$Overflow: Date can't be represented. QtXmlPatternsRVg“/Фÿ%1Parse error: %1 QtXmlPatterns svg/bg.svg svg/bg_hildon.svg svg/line.svg svg/onlogo.svg svg/x2gologo.svg svg/passform.svg svg/sessionbut.svg svg/sessionbut_grey.svg png/ico.png png/ico_mini.png png/sess_ico.png png/ico_440x180.png png/power-button.png icons/128x128/x2go.png icons/128x128/x2gosession.png icons/128x128/create_file.png icons/128x128/lxde.png icons/128x128/preferences.png icons/128x128/rdp.png icons/64x64/audio.png icons/64x64/personal.png icons/64x64/create_file.png icons/64x64/lxde.png icons/64x64/preferences.png icons/64x64/rdp.png icons/32x32/edit.png icons/32x32/edit_settings.png icons/32x32/exit.png icons/32x32/file-open.png icons/32x32/new_file.png icons/32x32/create_file.png icons/32x32/lxde.png icons/32x32/preferences.png icons/32x32/rdp.png icons/32x32/reconnect.png icons/32x32/tbhide.png icons/32x32/tbshow.png icons/32x32/attach.png icons/32x32/detach.png icons/32x32/suspend.png icons/32x32/stop.png icons/32x32/auth.png icons/32x32/x2goclient.png icons/32x32/resolution.png icons/32x32/contest.png icons/32x32/apps.png icons/32x32/open_dir.png icons/32x32/suspend_session.png icons/32x32/stop_session.png icons/16x16/audio.png icons/16x16/file-open.png icons/16x16/delete.png icons/16x16/edit.png icons/16x16/gnome.png icons/16x16/unity.png icons/16x16/xfce.png icons/16x16/mate.png icons/16x16/kde.png icons/16x16/new_file.png icons/16x16/resolution.png icons/16x16/session.png icons/16x16/x2go.png icons/16x16/tbshow.png icons/16x16/X.png icons/16x16/create_file.png icons/16x16/lxde.png icons/16x16/preferences.png icons/16x16/rdp.png icons/22x22/applications-development.png icons/22x22/applications-education.png icons/22x22/applications-games.png icons/22x22/applications-graphics.png icons/22x22/applications-internet.png icons/22x22/applications-multimedia.png icons/22x22/applications-office.png icons/22x22/applications-other.png icons/22x22/applications-system.png icons/22x22/applications-utilities.png icons/22x22/preferences-system.png txt/packs txt/encodings x2goclient_de.qm x2goclient_da.qm x2goclient_es.qm x2goclient_fi.qm x2goclient_fr.qm x2goclient_nb_no.qm x2goclient_ru.qm x2goclient_sv.qm x2goclient_zh_tw.qm qt_de.qm qt_da.qm qt_es.qm qt_fr.qm qt_ru.qm qt_sv.qm qt_zh_tw.qm x2goclient-4.0.1.1/sessionbutton.cpp0000644000000000000000000006211612214040350014237 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "sessionbutton.h" #include "x2goclientconfig.h" #include #include #include #include "x2gosettings.h" #include #include #include #include #include #include #include "onmainwindow.h" #include "x2gologdebug.h" #include #include SessionButton::SessionButton ( ONMainWindow* mw,QWidget *parent, QString id ) : SVGFrame ( ":/svg/sessionbut.svg",false,parent ) { editable=mw->sessionEditEnabled(); QPalette pal=palette(); pal.setColor ( QPalette::Active, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::Text, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::Text, QPalette::Mid ); setPalette(pal); QFont fnt=font(); if ( mw->retMiniMode() ) #ifdef Q_WS_HILDON fnt.setPointSize ( 10 ); #else fnt.setPointSize ( 9 ); #endif setFont ( fnt ); setFocusPolicy ( Qt::NoFocus ); bool miniMode=mw->retMiniMode(); if ( !miniMode ) setFixedSize ( 340,190 ); else setFixedSize ( 250,145 ); par= mw; connect ( this,SIGNAL ( clicked() ),this,SLOT ( slotClicked() ) ); sid=id; cmdBox=new QComboBox ( this ); cmdBox->setMouseTracking ( true ); cmdBox->setFrame ( false ); QPalette cpal=cmdBox->palette(); cpal.setColor ( QPalette::Button,QColor ( 255,255,255 ) ); cpal.setColor ( QPalette::Base,QColor ( 255,255,255 ) ); cpal.setColor ( QPalette::Window,QColor ( 255,255,255 ) ); cmdBox->setPalette ( cpal ); geomBox=new QComboBox ( this ); geomBox->setMouseTracking ( true ); geomBox->setFrame ( false ); geomBox->setEditable ( true ); geomBox->setEditable ( false ); geomBox->update(); geomBox->setPalette ( cpal ); sessName=new QLabel ( this ); sessStatus=new QLabel ( this ); fnt=sessName->font(); fnt.setBold ( true ); sessName->setFont ( fnt ); icon=new QLabel ( this ); cmd=new QLabel ( this ); cmd->setMouseTracking ( true ); serverIcon=new QLabel ( this ); geomIcon=new QLabel ( this ); geomIcon->setMouseTracking ( true ); cmdIcon=new QLabel ( this ); cmdIcon->setMouseTracking ( true ); server=new QLabel ( this ); geom=new QLabel ( this ); geom->setMouseTracking ( true ); sound=new QPushButton ( this ); soundIcon=new QLabel ( this ); sound->setPalette ( cpal ); sound->setFlat ( true ); sound->setMouseTracking ( true ); connect ( sound,SIGNAL ( clicked() ),this, SLOT ( slot_soundClicked() ) ); editBut=new QPushButton ( this ); editBut->setMouseTracking ( true ); connect ( editBut,SIGNAL ( pressed() ),this,SLOT ( slotShowMenu() ) ); editBut->setIcon ( QIcon ( par->iconsPath ( "/16x16/preferences.png" ) ) ); editBut->setIconSize ( QSize ( 16,16 ) ); editBut->setFixedSize ( 24,24 ); editBut->setFlat ( true ); editBut->setPalette ( cpal ); sessMenu=new QMenu ( this ); connect ( sessMenu,SIGNAL ( aboutToHide() ),this, SLOT ( slotMenuHide() ) ); act_edit=sessMenu->addAction ( QIcon ( mw->iconsPath ( "/16x16/edit.png" ) ), tr ( "Session preferences..." ) ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) act_createIcon=sessMenu->addAction ( QIcon ( mw->iconsPath ( "/16x16/create_file.png" ) ), tr ( "Create session icon on desktop..." ) ); #endif act_remove=sessMenu->addAction ( QIcon ( mw->iconsPath ( "/16x16/delete.png" ) ), tr ( "Delete session" ) ); connect ( act_edit,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotEdit() ) ); connect ( act_remove,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotRemove() ) ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) connect ( act_createIcon,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotCreateSessionIcon() ) ); #endif editBut->setToolTip ( tr ( "Session actions" ) ); cmdBox->setToolTip ( tr ( "Select type" ) ); geomBox->setToolTip ( tr ( "Select resolution" ) ); sound->setToolTip ( tr ( "Toggle sound support" ) ); icon->move ( 10,10 ); if ( !miniMode ) { sessName->move ( 80,34 ); sessStatus->move(80,50); editBut->move ( 307,156 ); serverIcon->move ( 58,84 ); server->move ( 80,84 ); cmdIcon->move ( 58,108 ); cmd->move ( 80,108 ); cmdBox->move ( 80,108 ); geomIcon->move ( 58,132 ); geom->move ( 80,132 ); geomBox->move ( 80,132 ); soundIcon->move ( 58,156 ); sound->move ( 76,156 ); } else { editBut->move ( 218,113 ); sessName->move ( 64,11 ); sessStatus->hide(); serverIcon->move ( 66,44 ); server->move ( 88,44 ); cmdIcon->move ( 66,68 ); cmd->move ( 88,68 ); cmdBox->move ( 88,68 ); geomIcon->move ( 66,92 ); geom->move ( 88,92 ); geomBox->move ( 88,92 ); soundIcon->move ( 66,116 ); sound->move ( 86,116 ); } if (mw->brokerMode) { icon->move(10,30); sessName->move(90,50); sessStatus->move(90,70); setFixedHeight(120); } cmdBox->hide(); geomBox->hide(); QPixmap spix; spix.load ( par->iconsPath ( "/16x16/session.png" ) ); serverIcon->setPixmap ( spix ); serverIcon->setFixedSize ( 16,16 ); QPixmap rpix; rpix.load ( par->iconsPath ( "/16x16/resolution.png" ) ); geomIcon->setPixmap ( rpix ); geomIcon->setFixedSize ( 16,16 ); QPixmap apix; apix.load ( par->iconsPath ( "/16x16/audio.png" ) ); soundIcon->setPixmap ( apix ); soundIcon->setFixedSize ( 16,16 ); redraw(); connect ( cmdBox,SIGNAL ( activated ( const QString& ) ),this, SLOT ( slot_cmd_change ( const QString& ) ) ); connect ( geomBox,SIGNAL ( activated ( const QString& ) ),this, SLOT ( slot_geom_change ( const QString& ) ) ); editBut->setFocusPolicy ( Qt::NoFocus ); sound->setFocusPolicy ( Qt::NoFocus ); cmdBox->setFocusPolicy ( Qt::NoFocus ); geomBox->setFocusPolicy ( Qt::NoFocus ); setMouseTracking(true); if (!editable) { editBut->hide(); cmdBox->hide(); geomBox->hide(); sessMenu->hide(); sound->setEnabled(false); } if (mw->brokerMode) { cmd->hide(); cmdIcon->hide(); server->hide(); serverIcon->hide(); geom->hide(); geomIcon->hide(); sound->hide(); soundIcon->hide(); } } SessionButton::~SessionButton() {} void SessionButton::slotClicked() { emit sessionSelected ( this ); } void SessionButton::slotEdit() { // editBut->setFlat ( true ); emit signal_edit ( this ); } void SessionButton::slotRemove() { emit ( signal_remove ( this ) ); } void SessionButton::redraw() { bool snd; X2goSettings *st; if (par->brokerMode) st=new X2goSettings(par->config.iniFile,QSettings::IniFormat); else st= new X2goSettings( "sessions" ); sessName->setText ( st->setting()->value ( sid+"/name", ( QVariant ) tr ( "New Session" ) ).toString()); QString status=st->setting()->value ( sid+"/status", ( QVariant ) QString::null ).toString(); if (status == "R") { sessStatus->setText("("+tr("running")+")"); } if (status == "S") { sessStatus->setText("("+tr("suspended")+")"); } QString sessIcon=st->setting()->value ( sid+"/icon", ( QVariant ) ":icons/128x128/x2gosession.png" ).toString(); QPixmap* pix; if (!par->brokerMode || sessIcon == ":icons/128x128/x2gosession.png") pix=new QPixmap( sessIcon ); else { pix=new QPixmap; pix->loadFromData(QByteArray::fromBase64(sessIcon.toAscii())); } if ( !par->retMiniMode() ) icon->setPixmap ( pix->scaled ( 64,64,Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) ); else icon->setPixmap ( pix->scaled ( 48,48,Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) ); delete pix; QString sv=st->setting()->value ( sid+"/host", ( QVariant ) QString::null ).toString(); QString uname=st->setting()->value ( sid+"/user", ( QVariant ) QString::null ).toString(); server->setText ( uname+"@"+sv ); QString command=st->setting()->value ( sid+"/command", ( QVariant ) tr ( "KDE" ) ). toString(); rootless=st->setting()->value ( sid+"/rootless", false ).toBool(); published=st->setting()->value ( sid+"/published", false ).toBool(); cmdBox->clear(); cmdBox->addItem ( "KDE" ); cmdBox->addItem ( "GNOME" ); cmdBox->addItem ( "LXDE" ); cmdBox->addItem ( "XFCE" ); cmdBox->addItem ( "MATE" ); cmdBox->addItem ( "UNITY" ); cmdBox->addItem ( tr ( "RDP connection" ) ); cmdBox->addItem ( tr ( "XDMCP" ) ); cmdBox->addItem ( tr ( "Connection to local desktop" ) ); cmdBox->addItem ( tr ( "Published applications" ) ); cmdBox->addItems ( par->transApplicationsNames() ); bool directRDP=false; QPixmap cmdpix; if ( command=="KDE" ) { cmdpix.load ( par->iconsPath ( "/16x16/kde.png" ) ); cmdBox->setCurrentIndex ( KDE ); } else if ( command =="GNOME" ) { cmdpix.load ( par->iconsPath ( "/16x16/gnome.png" ) ); cmdBox->setCurrentIndex ( GNOME ); } else if ( command =="UNITY" ) { cmdpix.load ( par->iconsPath ( "/16x16/unity.png" ) ); cmdBox->setCurrentIndex ( UNITY ); } else if ( command == "XFCE" ) { cmdpix.load ( par->iconsPath ( "/16x16/xfce.png" ) ); cmdBox->setCurrentIndex ( XFCE ); } else if ( command == "MATE" ) { cmdpix.load ( par->iconsPath ( "/16x16/mate.png" ) ); cmdBox->setCurrentIndex ( MATE ); } else if ( command =="LXDE" ) { cmdpix.load ( par->iconsPath ( "/16x16/lxde.png" ) ); cmdBox->setCurrentIndex ( LXDE ); } else if ( command =="SHADOW" ) { cmdpix.load ( par->iconsPath ( "/16x16/X.png" ) ); cmdBox->setCurrentIndex ( SHADOW ); command=tr ( "Connection to local desktop" ); } else if ( command =="RDP" ) { if (st->setting()->value ( sid+"/directrdp", ( QVariant ) false ).toBool()) directRDP=true; cmdpix.load ( par->iconsPath ( "/16x16/rdp.png" ) ); cmdBox->setCurrentIndex ( RDP ); command=tr ( "RDP connection" ); } else if ( command =="XDMCP" ) { cmdpix.load ( par->iconsPath ( "/16x16/X.png" ) ); cmdBox->setCurrentIndex ( XDMCP ); command=tr ( "XDMCP" ); } else if (published) { cmdpix.load ( par->iconsPath ( "/16x16/X.png" ) ); command=tr ("Published applications"); cmdBox->setCurrentIndex (PUBLISHED); } else { cmdpix.load ( par->iconsPath ( "/16x16/X.png" ) ); command=par->transAppName ( command ); int id= cmdBox->findText ( command ); if ( id ==-1 ) { cmdBox->addItem ( command ); cmdBox->setCurrentIndex ( cmdBox->count()-1 ); } else cmdBox->setCurrentIndex ( id ); } cmdIcon->setPixmap ( cmdpix ); cmd->setText ( command ); geomBox->clear(); geomBox->addItem ( tr ( "fullscreen" ) ); uint displays=QApplication::desktop()->numScreens(); if (!directRDP) for (uint i=0;iaddItem ( tr( "Display " )+QString::number(i+1)); //add maximun available area geomBox->addItem( QString::number(QApplication::desktop()->availableGeometry(i).width()) + "x" + QString::number(QApplication::desktop()->availableGeometry(i).height())); } #ifndef Q_WS_HILDON geomBox->addItem ( "1440x900" ); geomBox->addItem ( "1280x1024" ); geomBox->addItem ( "1024x768" ); geomBox->addItem ( "800x600" ); #else geomBox->addItem ( tr ( "window" ) ); #endif if ( st->setting()->value ( sid+"/fullscreen", ( QVariant ) false ).toBool() ) { geom->setText ( tr ( "fullscreen" ) ); } else if (st->setting()->value ( sid+"/multidisp", ( QVariant ) false ).toBool() && !directRDP) { uint disp=st->setting()->value ( sid+"/display", ( QVariant ) 1 ).toUInt(); if (disp<=displays) { geom->setText( tr( "Display " )+QString::number(disp)); } else { geom->setText( tr( "Display " )+QString::number(1)); } for (int i=0;icount();++i) if (geomBox->itemText(i)==geom->text()) { geomBox->setCurrentIndex(i); break; } } else { #ifndef Q_WS_HILDON QString g=QString::number ( st->setting()->value ( sid+"/width" ).toInt() ); g+="x"+QString::number ( st->setting()->value ( sid+"/height" ).toInt() ); geom->setText ( g ); if ( geomBox->findText ( g ) ==-1 ) geomBox->addItem ( g ); geomBox->setCurrentIndex ( geomBox->findText ( g ) ); #else geom->setText ( tr ( "window" ) ); geomBox->setCurrentIndex ( 1 ); #endif } if (directRDP) { geomBox->addItem ( tr("Maximum") ); if (st->setting()->value ( sid+"/maxdim", ( QVariant ) false ).toBool()) { geom->setText ( tr("Maximum") ); geomBox->setCurrentIndex ( geomBox->findText ( tr("Maximum") )); } } snd=st->setting()->value ( sid+"/sound", ( QVariant ) true ).toBool(); if ( snd ) sound->setText ( tr ( "Enabled" ) ); else sound->setText ( tr ( "Disabled" ) ); soundIcon->setEnabled ( snd ); QFontMetrics fm ( sound->font() ); sound->setFixedSize ( fm.size ( Qt::TextSingleLine,sound->text() ) + QSize ( 8,4 ) ); sessName->setMinimumSize ( sessName->sizeHint() ); geom->setMinimumSize ( geom->sizeHint() ); cmd->setMinimumSize ( cmd->sizeHint() ); server->setMinimumSize ( server->sizeHint() ); delete st; } void SessionButton::mousePressEvent ( QMouseEvent * event ) { SVGFrame::mousePressEvent ( event ); loadBg ( ":/svg/sessionbut_grey.svg" ); } void SessionButton::mouseReleaseEvent ( QMouseEvent * event ) { SVGFrame::mouseReleaseEvent ( event ); int x=event->x(); int y=event->y(); loadBg ( ":/svg/sessionbut.svg" ); if ( x>=0 && x< width() && y>=0 && yisVisible() ) if ( event->x() > cmd->x() && event->x() < cmd->x() + cmd->width() && event->y() >cmd->y() && event->y() y() + cmd->height() ) { if ( cmdBox->width() width() ) cmdBox->setFixedWidth ( cmd->width() +20 ); if ( cmdBox->height() !=cmd->height() ) cmdBox->setFixedHeight ( cmd->height() ); cmd->hide(); cmdBox->show(); } if ( cmdBox->isVisible() ) if ( event->x() < cmdBox->x() || event->x() > cmdBox->x() + cmdBox->width() || event->y() y() || event->y() >cmdBox->y() + cmdBox->height() ) { cmdBox->hide(); cmd->show(); } if ( sound->isFlat() ) { if ( event->x() > sound->x() && event->x() < sound->x() + sound->width() && event->y() >sound->y() && event->y() y() + sound->height() ) { sound->setFlat ( false ); } } else { if ( event->x() < sound->x() || event->x() > sound->x() + sound->width() || event->y() y() || event->y() >sound->y() + sound->height() ) { sound->setFlat ( true ); } } if ( editBut->isFlat() ) { if ( event->x() > editBut->x() && event->x() < editBut->x() + editBut->width() && event->y() >editBut->y() && event->y() y() + editBut->height() ) editBut->setFlat ( false ); } else { if ( event->x() < editBut->x() || event->x() > editBut->x() + editBut->width() || event->y() y() || event->y() >editBut->y() + editBut->height() ) editBut->setFlat ( true ); } if ( geom->isVisible() ) if ( event->x() > geom->x() && event->x() < geom->x() + geom->width() && event->y() >geom->y() && event->y() y() + geom->height() ) { if ( geomBox->width() width() ) geomBox->setFixedWidth ( geom->width() +20 ); if ( geomBox->height() !=geom->height() ) geomBox->setFixedHeight ( geom->height() ); geom->hide(); geomBox->show(); } if ( geomBox->isVisible() ) if ( event->x() < geomBox->x() || event->x() > geomBox->x() + geomBox->width() || event->y() y() || event->y() >geomBox->y() + geomBox->height() ) { geomBox->hide(); geom->show(); } } void SessionButton::slot_soundClicked() { bool snd=!soundIcon->isEnabled(); soundIcon->setEnabled ( snd ); if ( snd ) sound->setText ( tr ( "Enabled" ) ); else sound->setText ( tr ( "Disabled" ) ); QFontMetrics fm ( sound->font() ); sound->setFixedSize ( fm.size ( Qt::TextSingleLine,sound->text() ) + QSize ( 8,4 ) ); X2goSettings st ( "sessions" ); st.setting()->setValue ( sid+"/sound", ( QVariant ) snd ); st.setting()->sync(); } void SessionButton::slot_cmd_change ( const QString& command ) { cmd->setText ( command ); QPixmap pix; bool newRootless=rootless; published=false; QString cmd=command; if ( command=="KDE" ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/kde.png" ) ); } else if ( command =="GNOME" ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/gnome.png" ) ); } else if ( command =="LXDE" ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/lxde.png" ) ); } else if ( command =="UNITY" ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/unity.png" ) ); } else if ( command == "XFCE" ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/xfce.png" ) ); } else if ( command == "MATE" ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/mate.png" ) ); } else if ( command ==tr ( "Connection to local desktop" ) ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/X.png" ) ); cmd="SHADOW"; } else if ( command == tr ( "RDP connection" ) ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/rdp.png" ) ); cmd="RDP"; } else if ( command == tr ( "XDMCP" ) ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/X.png" ) ); cmd="XDMCP"; } else pix.load ( par->iconsPath ( "/16x16/X.png" ) ); cmdIcon->setPixmap ( pix ); X2goSettings st ( "sessions" ); if ( command=="startkde" ) { cmd="KDE"; newRootless=false; } if ( command=="gnome-session" ) { cmd="GNOME"; newRootless=false; } if ( command=="LXDE" ) { cmd="LXDE"; newRootless=false; } if ( command=="unity" ) { cmd="UNITY"; newRootless=false; } if ( command=="xfce4-session" ) { cmd="XFCE"; newRootless=false; } if ( command=="mate-session" ) { cmd="MATE"; newRootless=false; } if (command== tr("Published applications")) { published=true; cmd="PUBLISHED"; } bool found=false; cmd=par->internAppName ( cmd,&found ); if ( found ) newRootless=true; st.setting()->setValue ( sid+"/command", ( QVariant ) cmd ); st.setting()->setValue ( sid+"/rootless", ( QVariant ) newRootless ); st.setting()->setValue ( sid+"/published", ( QVariant ) published ); st.setting()->sync(); } void SessionButton::slot_geom_change ( const QString& new_g ) { geom->setText ( new_g ); X2goSettings st ( "sessions" ); if ( new_g==tr ( "fullscreen" ) ) { st.setting()->setValue ( sid+"/fullscreen", ( QVariant ) true ); st.setting()->setValue ( sid+"/multidisp", ( QVariant ) false ); st.setting()->setValue ( sid+"/maxdim", ( QVariant ) false ); } else if ( new_g==tr ( "Maximum" )) { st.setting()->setValue ( sid+"/fullscreen", ( QVariant ) false ); st.setting()->setValue ( sid+"/multidisp", ( QVariant ) false ); st.setting()->setValue ( sid+"/maxdim", ( QVariant ) true ); } else if (new_g.indexOf(tr("Display "))==0) { QString g= new_g; g.replace(tr("Display "),""); st.setting()->setValue ( sid+"/multidisp", ( QVariant ) true ); st.setting()->setValue ( sid+"/display", ( QVariant ) g.toUInt()); st.setting()->setValue ( sid+"/fullscreen", ( QVariant ) false ); st.setting()->setValue ( sid+"/maxdim", ( QVariant ) false ); } else { QString new_geom=new_g; #ifdef Q_WS_HILDON new_geom="800x600"; #endif st.setting()->setValue ( sid+"/fullscreen", ( QVariant ) false ); st.setting()->setValue ( sid+"/multidisp", ( QVariant ) false ); st.setting()->setValue ( sid+"/maxdim", ( QVariant ) false ); QStringList lst=new_geom.split ( 'x' ); st.setting()->setValue ( sid+"/width", ( QVariant ) lst[0] ); st.setting()->setValue ( sid+"/height", ( QVariant ) lst[1] ); } st.setting()->sync(); } bool SessionButton::lessThen ( const SessionButton* b1, const SessionButton* b2 ) { return b1->sessName->text().toLower().localeAwareCompare ( b2->sessName->text().toLower() ) <0; } QString SessionButton::name() { return sessName->text(); } void SessionButton::slotMenuHide() { editBut->setDown ( false ); editBut->setFlat ( true ); } void SessionButton::slotShowMenu() { sessMenu->popup ( mapToGlobal ( QPoint ( editBut->x() +editBut->width(), editBut->y() +editBut->height() ) ) ); } void SessionButton::slotCreateSessionIcon() { par->slotCreateDesktopIcon ( this ); } x2goclient-4.0.1.1/sessionbutton.h0000644000000000000000000000603512214040350013702 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef SESSIONBUTTON_H #define SESSIONBUTTON_H #include "SVGFrame.h" #include #include class ONMainWindow; class QComboBox; class QPushButton; /** @author Oleksandr Shneyder */ class SessionButton : public SVGFrame { Q_OBJECT public: enum {KDE,GNOME,LXDE,XFCE,MATE,UNITY,RDP,XDMCP,SHADOW,PUBLISHED,OTHER,APPLICATION}; SessionButton ( ONMainWindow* mw, QWidget* parent,QString id ); ~SessionButton(); QString id() { return sid; } void redraw(); const QPixmap* sessIcon() { return icon->pixmap(); } static bool lessThen ( const SessionButton* b1, const SessionButton* b2 ); QString name(); private: QString sid; QLabel* sessName; QLabel* sessStatus; QLabel* icon; QComboBox* cmdBox; QLabel* cmd; QLabel* serverIcon; QLabel* geomIcon; QLabel* cmdIcon; QLabel* server; QPushButton* editBut; QLabel* geom; QMenu* sessMenu; QComboBox* geomBox; QPushButton* sound; QLabel* soundIcon; ONMainWindow* par; QAction* act_edit; QAction* act_createIcon; QAction* act_remove; bool rootless; bool published; bool editable; private slots: void slotClicked(); void slotEdit(); void slot_soundClicked(); void slot_cmd_change ( const QString& command ); void slot_geom_change ( const QString& new_g ); void slotRemove(); void slotMenuHide(); void slotShowMenu(); void slotCreateSessionIcon(); signals: void sessionSelected ( SessionButton* ); void signal_edit ( SessionButton* ); void signal_remove ( SessionButton* ); void clicked(); protected: virtual void mouseMoveEvent ( QMouseEvent * event ); virtual void mousePressEvent ( QMouseEvent * event ); virtual void mouseReleaseEvent ( QMouseEvent * event ); }; #endif x2goclient-4.0.1.1/sessionmanagedialog.cpp0000644000000000000000000001427312214040350015335 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "x2goclientconfig.h" #include "sessionmanagedialog.h" #include "onmainwindow.h" #include #include #include #include #include #include #include #include "sessionbutton.h" SessionManageDialog::SessionManageDialog ( QWidget * parent, bool onlyCreateIcon, Qt::WFlags f ) : QDialog ( parent, f ) { QVBoxLayout* ml=new QVBoxLayout ( this ); QFrame *fr=new QFrame ( this ); QHBoxLayout* frLay=new QHBoxLayout ( fr ); QPushButton* ok=new QPushButton ( tr ( "E&xit" ),this ); QHBoxLayout* bLay=new QHBoxLayout(); sessions=new QListView ( fr ); frLay->addWidget ( sessions ); QPushButton* newSession=new QPushButton ( tr ( "&New session" ),fr ); editSession=new QPushButton ( tr ( "&Session preferences" ),fr ); removeSession=new QPushButton ( tr ( "&Delete session" ),fr ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) if ( !ONMainWindow::getPortable() ) createSessionIcon=new QPushButton ( tr ( "&Create session icon on desktop..." ),fr ); #endif par= ( ONMainWindow* ) parent; newSession->setIcon ( QIcon ( par->iconsPath ( "/16x16/new_file.png" ) ) ); editSession->setIcon ( QIcon ( par->iconsPath ( "/16x16/edit.png" ) ) ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) if ( !ONMainWindow::getPortable() ) createSessionIcon->setIcon ( QIcon ( par->iconsPath ( "/16x16/create_file.png" ) ) ); #endif removeSession->setIcon ( QIcon ( par->iconsPath ( "/16x16/delete.png" ) ) ); QVBoxLayout* actLay=new QVBoxLayout(); actLay->addWidget ( newSession ); actLay->addWidget ( editSession ); actLay->addWidget ( removeSession ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) if ( !ONMainWindow::getPortable() ) actLay->addWidget ( createSessionIcon ); #endif actLay->addStretch(); frLay->addLayout ( actLay ); if ( onlyCreateIcon ) { newSession->hide(); editSession->hide(); removeSession->hide(); } QShortcut* sc=new QShortcut ( QKeySequence ( tr ( "Delete","Delete" ) ),this ); connect ( ok,SIGNAL ( clicked() ),this,SLOT ( close() ) ); connect ( sc,SIGNAL ( activated() ),removeSession,SIGNAL ( clicked() ) ); connect ( removeSession,SIGNAL ( clicked() ),this,SLOT ( slot_delete() ) ); connect ( editSession,SIGNAL ( clicked() ),this,SLOT ( slot_edit() ) ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) if ( !ONMainWindow::getPortable() ) connect ( createSessionIcon,SIGNAL ( clicked() ), this,SLOT ( slot_createSessionIcon() ) ); #endif connect ( newSession,SIGNAL ( clicked() ),this,SLOT ( slotNew() ) ); bLay->setSpacing ( 5 ); bLay->addStretch(); bLay->addWidget ( ok ); ml->addWidget ( fr ); ml->addLayout ( bLay ); fr->setFrameStyle ( QFrame::StyledPanel | QFrame::Raised ); fr->setLineWidth ( 2 ); setSizeGripEnabled ( true ); setWindowIcon ( QIcon ( ( ( ONMainWindow* ) parent )->iconsPath ( "/32x32/edit.png" ) ) ); setWindowTitle ( tr ( "Session management" ) ); loadSessions(); connect ( sessions,SIGNAL ( clicked ( const QModelIndex& ) ), this,SLOT ( slot_activated ( const QModelIndex& ) ) ); connect ( sessions,SIGNAL ( doubleClicked ( const QModelIndex& ) ), this,SLOT ( slot_dclicked ( const QModelIndex& ) ) ); } SessionManageDialog::~SessionManageDialog() {} void SessionManageDialog::loadSessions() { QStringListModel *model= ( QStringListModel* ) sessions->model(); if ( !model ) model=new QStringListModel(); sessions->setModel ( model ); QStringList lst; model->setStringList ( lst ); const QList *sess=par->getSessionsList(); for ( int i=0;isize();++i ) lst<at ( i )->name(); model->setStringList ( lst ); removeSession->setEnabled ( false ); editSession->setEnabled ( false ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) if ( !ONMainWindow::getPortable() ) createSessionIcon->setEnabled ( false ); #endif sessions->setEditTriggers ( QAbstractItemView::NoEditTriggers ); } void SessionManageDialog::slot_activated ( const QModelIndex& ) { removeSession->setEnabled ( true ); editSession->setEnabled ( true ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) if ( !ONMainWindow::getPortable() ) createSessionIcon->setEnabled ( true ); #endif } void SessionManageDialog::slot_dclicked ( const QModelIndex& ) { slot_edit(); } void SessionManageDialog::slotNew() { par->slotNewSession(); loadSessions(); } void SessionManageDialog::slot_edit() { int ind=sessions->currentIndex().row(); if ( ind<0 ) return; par->slotEdit ( par->getSessionsList()->at ( ind ) ); loadSessions(); } void SessionManageDialog::slot_createSessionIcon() { int ind=sessions->currentIndex().row(); if ( ind<0 ) return; par->slotCreateDesktopIcon ( par->getSessionsList()->at ( ind ) ); } void SessionManageDialog::slot_delete() { int ind=sessions->currentIndex().row(); if ( ind<0 ) return; par->slotDeleteButton ( par->getSessionsList()->at ( ind ) ); loadSessions(); } x2goclient-4.0.1.1/sessionmanagedialog.h0000644000000000000000000000406012214040350014773 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef SESSIONMANAGEDIALOG_H #define SESSIONMANAGEDIALOG_H #include "x2goclientconfig.h" #include class QListView; class QPushButton; class QModelIndex; class ONMainWindow; /** @author Oleksandr Shneyder */ class SessionManageDialog : public QDialog { Q_OBJECT public: SessionManageDialog ( QWidget * parent, bool onlyCreateIcon=false, Qt::WFlags f=0 ); ~SessionManageDialog(); void loadSessions(); private: QListView* sessions; QPushButton* editSession; QPushButton* removeSession; QPushButton* createSessionIcon; ONMainWindow* par; private slots: void slot_activated ( const QModelIndex& index ); void slotNew(); void slot_edit(); void slot_createSessionIcon(); void slot_delete(); void slot_dclicked ( const QModelIndex& index ); }; #endif x2goclient-4.0.1.1/sessionwidget.cpp0000644000000000000000000007112512214040350014207 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "sessionwidget.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include "onmainwindow.h" #include "x2gosettings.h" #include #include #include SessionWidget::SessionWidget ( QString id, ONMainWindow * mw, QWidget * parent, Qt::WindowFlags f ) : ConfigWidget ( id,mw,parent,f ) { QVBoxLayout* sessLay=new QVBoxLayout ( this ); #ifdef Q_WS_HILDON sessLay->setMargin ( 2 ); #endif sessName=new QLineEdit ( this ); icon=new QPushButton ( QString::null,this ); if ( !miniMode ) { icon->setIconSize ( QSize ( 100,100 ) ); icon->setFixedSize ( 100,100 ); } else { icon->setIconSize ( QSize ( 48,48 ) ); icon->setFixedSize ( 48,48 ); } icon->setFlat ( true ); QHBoxLayout* slay=new QHBoxLayout(); slay->addWidget ( new QLabel ( tr ( "Session name:" ),this ) ); slay->addWidget ( sessName ); QHBoxLayout* ilay=new QHBoxLayout(); ilay->addWidget ( icon ); ilay->addWidget ( new QLabel ( tr ( "<< change icon" ),this ) ); #ifndef Q_WS_HILDON QGroupBox *sgb=new QGroupBox ( tr ( "&Server" ),this ); #else QFrame* sgb=this; #endif server=new QLineEdit ( sgb ); uname=new QLineEdit ( sgb ); sshPort=new QSpinBox ( sgb ); sshPort->setValue ( mainWindow->getDefaultSshPort().toInt() ); sshPort->setMinimum ( 1 ); sshPort->setMaximum ( 999999999 ); #ifdef Q_OS_LINUX rdpPort=new QSpinBox ( sgb ); rdpPort->setValue ( mainWindow->getDefaultSshPort().toInt() ); rdpPort->setMinimum ( 1 ); rdpPort->setMaximum ( 999999999 ); #endif key=new QLineEdit ( sgb ); #ifndef Q_WS_HILDON openKey=new QPushButton ( QIcon ( mainWindow->iconsPath ( "/32x32/file-open.png" ) ), QString::null,sgb ); QVBoxLayout *sgbLay = new QVBoxLayout ( sgb ); #else QPushButton* openKey=new QPushButton ( QIcon ( mainWindow->iconsPath ( "/16x16/file-open.png" ) ), QString::null,sgb ); QVBoxLayout *sgbLay = new QVBoxLayout (); #endif QHBoxLayout *suLay =new QHBoxLayout(); QVBoxLayout *slLay =new QVBoxLayout(); QVBoxLayout *elLay =new QVBoxLayout(); slLay->addWidget ( new QLabel ( tr ( "Host:" ),sgb ) ); slLay->addWidget ( new QLabel ( tr ( "Login:" ),sgb ) ); lPort=new QLabel ( tr ( "SSH port:" ),sgb ); slLay->addWidget ( lPort ); elLay->addWidget ( server ); elLay->addWidget ( uname ); elLay->addWidget ( sshPort ); #ifdef Q_OS_LINUX elLay->addWidget ( rdpPort ); #endif suLay->addLayout ( slLay ); suLay->addLayout ( elLay ); #ifdef Q_WS_HILDON sshPort->setFixedHeight ( int ( sshPort->sizeHint().height() *1.5 ) ); #endif QHBoxLayout *keyLay =new QHBoxLayout(); lKey=new QLabel ( tr ( "Use RSA/DSA key for ssh connection:" ),sgb ); keyLay->addWidget (lKey ); keyLay->addWidget ( key ); keyLay->addWidget ( openKey ); sgbLay->addLayout ( suLay ); sgbLay->addLayout ( keyLay ); cbAutoLogin=new QCheckBox(tr("Try auto login (ssh-agent or default ssh key)"),sgb); cbKrbLogin=new QCheckBox(tr("Kerberos 5 (GSSAPI) authentication"),sgb); sgbLay->addWidget(cbAutoLogin); sgbLay->addWidget(cbKrbLogin); cbProxy=new QCheckBox(tr("Use Proxy server for SSH connection"),sgb); proxyBox=new QGroupBox(tr("Proxy server"),sgb); sgbLay->addWidget(cbProxy); sgbLay->addWidget(proxyBox); QGridLayout* proxyLaout=new QGridLayout(proxyBox); QButtonGroup* proxyType=new QButtonGroup(proxyBox); proxyType->setExclusive(true); rbSshProxy=new QRadioButton(tr("SSH"),proxyBox); rbHttpProxy=new QRadioButton(tr("HTTP"),proxyBox); proxyType->addButton(rbSshProxy); proxyType->addButton(rbHttpProxy); proxyHost=new QLineEdit(proxyBox); proxyPort=new QSpinBox(proxyBox); proxyPort->setMinimum ( 1 ); proxyPort->setMaximum ( 999999999 ); cbProxySameUser=new QCheckBox(tr("Same login as on X2Go Server"), proxyBox); proxyLogin=new QLineEdit(proxyBox); cbProxySamePass=new QCheckBox(tr("Same password as on X2Go Server"), proxyBox); proxyKeyLabel=new QLabel( tr ( "RSA/DSA key:" ), proxyBox); proxyKey=new QLineEdit(proxyBox); pbOpenProxyKey=new QPushButton ( QIcon ( mainWindow->iconsPath ( "/16x16/file-open.png" ) ), QString::null,proxyBox ); cbProxyAutologin=new QCheckBox(tr("ssh-agent or default ssh key"),proxyBox); proxyLaout->addWidget(new QLabel(tr("Type:"),proxyBox),0,0,1,2); proxyLaout->addWidget(rbSshProxy,1,0,1,2); proxyLaout->addWidget(rbHttpProxy,2,0,1,2); proxyLaout->addWidget(new QLabel(tr("Host:"),proxyBox),3,0); proxyLaout->addWidget(new QLabel(tr("Port:"),proxyBox),4,0); proxyLaout->addWidget(proxyHost,3,1); proxyLaout->addWidget(proxyPort,4,1); proxyLaout->addWidget(cbProxySameUser,0,3,1,3); proxyLaout->addWidget(lProxyLogin=new QLabel(tr("Login:"),proxyBox),1,3,1,1); proxyLaout->addWidget(proxyLogin,1,4,1,2); proxyLaout->addWidget(cbProxySamePass,2,3,1,3); proxyLaout->addWidget(proxyKeyLabel,3,3,1,1); proxyLaout->addWidget(proxyKey,3,4,1,1); proxyLaout->addWidget(pbOpenProxyKey,3,5,1,1); proxyLaout->addWidget(cbProxyAutologin,4,3,1,3); #ifndef Q_WS_HILDON QGroupBox *deskSess=new QGroupBox ( tr ( "&Session type" ),this ); QGridLayout* cmdLay=new QGridLayout ( deskSess ); #else QFrame* deskSess=this; QHBoxLayout* cmdLay=new QHBoxLayout (); cmdLay->addWidget ( new QLabel ( tr ( "Session type:" ),this ) ); #endif sessBox=new QComboBox ( deskSess ); cmd=new QLineEdit ( deskSess ); cmdCombo=new QComboBox ( deskSess ); cmdCombo->setEditable ( true ); sessBox->addItem ( "KDE" ); sessBox->addItem ( "GNOME" ); sessBox->addItem ( "LXDE" ); sessBox->addItem ( "XFCE" ); sessBox->addItem ( "MATE" ); sessBox->addItem ( "UNITY" ); sessBox->addItem ( tr ( "Connect to Windows terminal server" ) ); sessBox->addItem ( tr ( "XDMCP" ) ); sessBox->addItem ( tr ( "Connect to local desktop" ) ); sessBox->addItem ( tr ( "Custom desktop" ) ); sessBox->addItem ( tr ( "Single application" ) ); sessBox->addItem ( tr ( "Published applications" ) ); cmdLay->addWidget ( sessBox,0,1,Qt::AlignLeft ); leCmdIp=new QLabel ( tr ( "Command:" ),deskSess ); pbAdvanced=new QPushButton ( tr ( "Advanced options..." ),deskSess ); cmdLay->addWidget ( leCmdIp,0,2 ); cmdLay->setColumnStretch(6,1); cmdLay->addWidget ( cmd ,0,3); cmdLay->addWidget ( cmdCombo,0,4 ); cmdLay->addWidget ( pbAdvanced ,0,5); cmdCombo->setSizePolicy ( QSizePolicy::Expanding, QSizePolicy::Preferred ); cmdCombo->hide(); pbAdvanced->hide(); cmdCombo->addItem ( "" ); cmdCombo->addItems ( mainWindow->transApplicationsNames() ); cmdCombo->lineEdit()->setText ( tr ( "Path to executable" ) ); cmdCombo->lineEdit()->selectAll(); #ifndef Q_WS_HILDON sessLay->addLayout ( slay ); sessLay->addLayout ( ilay ); if ( !miniMode ) sessLay->addSpacing ( 15 ); sessLay->addWidget ( sgb ); sessLay->addWidget ( deskSess ); #ifdef Q_OS_LINUX cbDirectRDP=new QCheckBox(tr("Direct RDP Connection"), deskSess); cmdLay->addWidget(cbDirectRDP,1,0,1,6); cbDirectRDP->hide(); connect(cbDirectRDP,SIGNAL(clicked()), this, SLOT(slot_rdpDirectClicked())); #endif #else QVBoxLayout* sHildILay = new QVBoxLayout(); sHildILay->addLayout ( slay ); sHildILay->addLayout ( ilay ); sHildILay->addStretch(); QHBoxLayout* sHildLay = new QHBoxLayout(); sHildLay->addLayout ( sHildILay ); QFrame* vl=new QFrame; vl->setLineWidth ( 0 ); vl->setFrameStyle ( QFrame::VLine|QFrame::Plain ); sHildLay->addWidget ( vl ); sHildLay->setSpacing ( 6 ); sHildLay->addLayout ( sgbLay ); sessLay->addLayout ( sHildLay ); sessLay->addStretch(); sessLay->addLayout ( cmdLay ); #endif sessLay->addStretch(); connect ( icon,SIGNAL ( clicked() ),this,SLOT ( slot_getIcon() ) ); connect ( openKey,SIGNAL ( clicked() ),this,SLOT ( slot_getKey() ) ); connect ( pbAdvanced,SIGNAL ( clicked() ),this, SLOT ( slot_rdpOptions() ) ); connect ( sessBox,SIGNAL ( activated ( int ) ),this, SLOT ( slot_changeCmd ( int ) ) ); connect ( sessName,SIGNAL ( textChanged ( const QString & ) ),this, SIGNAL ( nameChanged ( const QString & ) ) ); connect (server, SIGNAL(textChanged(const QString&)),this, SLOT(slot_emitSettings())); connect (uname, SIGNAL(textChanged(const QString&)),this, SLOT(slot_emitSettings())); #ifdef Q_OS_LINUX connect (rdpPort, SIGNAL(valueChanged(int)),this, SLOT(slot_emitSettings())); #endif connect ( pbOpenProxyKey,SIGNAL ( clicked() ),this,SLOT ( slot_proxyGetKey()) ); connect ( proxyType, SIGNAL ( buttonClicked(int)) ,this,SLOT ( slot_proxyType())); connect (cbProxy, SIGNAL(clicked(bool)), this, SLOT(slot_proxyOptions())); connect (cbProxySameUser, SIGNAL(clicked(bool)), this, SLOT(slot_proxySameLogin())); readConfig(); cbKrbLogin->setChecked(false); cbKrbLogin->setVisible(false); } SessionWidget::~SessionWidget() { } void SessionWidget::slot_proxyGetKey() { QString path; QString startDir=ONMainWindow::getHomeDirectory(); #ifdef Q_OS_WIN if ( ONMainWindow::getPortable() && ONMainWindow::U3DevicePath().length() >0 ) { startDir=ONMainWindow::U3DevicePath() +"/"; } #endif path = QFileDialog::getOpenFileName ( this, tr ( "Open key file" ), startDir, tr ( "All files" ) +" (*)" ); if ( path!=QString::null ) { #ifdef Q_OS_WIN if ( ONMainWindow::getPortable() && ONMainWindow::U3DevicePath().length() >0 ) { if ( path.indexOf ( ONMainWindow::U3DevicePath() ) !=0 ) { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "x2goclient is running in " "portable mode. You should " "use a path on your usb device " "to be able to access your data " "whereever you are" ), QMessageBox::Ok,QMessageBox::NoButton ); slot_getKey(); return; } path.replace ( ONMainWindow::U3DevicePath(), "(U3)" ); } #endif proxyKey->setText ( path ); } } void SessionWidget::slot_proxyOptions() { proxyBox->setVisible(cbProxy->isChecked() && cbProxy->isVisible()); } void SessionWidget::slot_proxySameLogin() { lProxyLogin->setDisabled(cbProxySameUser->isChecked()); proxyLogin->setDisabled(cbProxySameUser->isChecked()); } void SessionWidget::slot_proxyType() { bool isSsh=rbSshProxy->isChecked(); cbProxyAutologin->setVisible(isSsh); proxyKey->setVisible(isSsh); proxyKeyLabel->setVisible(isSsh); pbOpenProxyKey->setVisible(isSsh); } #ifdef Q_OS_LINUX void SessionWidget::slot_rdpDirectClicked() { bool isDirectRDP=cbDirectRDP->isChecked(); if (cbDirectRDP->isHidden()) isDirectRDP=false; pbAdvanced->setVisible((!isDirectRDP) && (sessBox->currentIndex()==RDP)); leCmdIp->setVisible(!isDirectRDP); cmd->setVisible(!isDirectRDP); key->setVisible(!isDirectRDP); cbAutoLogin->setVisible(!isDirectRDP); lKey->setVisible(!isDirectRDP); openKey->setVisible(!isDirectRDP); sshPort->setVisible(!isDirectRDP); rdpPort->setVisible(isDirectRDP); cbProxy->setVisible(!isDirectRDP); proxyBox->setVisible(!isDirectRDP && cbProxy->isChecked()); if (isDirectRDP) { lPort->setText(tr("RDP port:")); } else { lPort->setText(tr("SSH port:")); } emit directRDP(isDirectRDP); slot_emitSettings(); } #endif void SessionWidget::slot_getIcon() { QString path= QFileDialog::getOpenFileName ( this, tr ( "Open picture" ), QDir::homePath(), tr ( "Pictures" ) +" (*.png *.xpm *.jpg)" ); if ( path!=QString::null ) { sessIcon=path; icon->setIcon ( QIcon ( sessIcon ) ); } } void SessionWidget::slot_getKey() { QString path; QString startDir=ONMainWindow::getHomeDirectory(); #ifdef Q_OS_WIN if ( ONMainWindow::getPortable() && ONMainWindow::U3DevicePath().length() >0 ) { startDir=ONMainWindow::U3DevicePath() +"/"; } #endif path = QFileDialog::getOpenFileName ( this, tr ( "Open key file" ), startDir, tr ( "All files" ) +" (*)" ); if ( path!=QString::null ) { #ifdef Q_OS_WIN if ( ONMainWindow::getPortable() && ONMainWindow::U3DevicePath().length() >0 ) { if ( path.indexOf ( ONMainWindow::U3DevicePath() ) !=0 ) { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "x2goclient is running in " "portable mode. You should " "use a path on your usb device " "to be able to access your data " "whereever you are" ), QMessageBox::Ok,QMessageBox::NoButton ); slot_getKey(); return; } path.replace ( ONMainWindow::U3DevicePath(), "(U3)" ); } #endif key->setText ( path ); } } void SessionWidget::slot_changeCmd ( int var ) { leCmdIp->setText ( tr ( "Command:" ) ); pbAdvanced->hide(); #ifdef Q_OS_LINUX cbDirectRDP->hide(); #endif leCmdIp->show(); cmd->show(); if ( var==APPLICATION ) { cmd->hide(); cmdCombo->setVisible ( true ); cmdCombo->setEnabled(true); cmdCombo->lineEdit()->selectAll(); cmdCombo->lineEdit()->setFocus(); } else { cmdCombo->hide(); cmd->setVisible ( true ); if ( var==OTHER || var == RDP || var == XDMCP ) { cmd->setText ( "" ); cmd->setEnabled ( true ); cmd->selectAll(); cmd->setFocus(); if ( var==RDP ) { leCmdIp->setText ( tr ( "Server:" ) ); pbAdvanced->show(); cmd->setText ( rdpServer ); #ifdef Q_OS_LINUX cbDirectRDP->show(); #endif } if ( var== XDMCP ) { leCmdIp->setText ( tr ( "XDMCP server:" ) ); cmd->setText ( xdmcpServer ); } } else { cmd->setEnabled ( false ); cmd->setText ( "" ); } } #ifdef Q_OS_LINUX slot_rdpDirectClicked(); #endif } void SessionWidget::slot_rdpOptions() { bool ok; QString text = QInputDialog::getText ( this, tr ( "Connect to Windows terminal server" ), tr ( "rdesktop command line options:" ), QLineEdit::Normal, rdpOptions, &ok ); rdpOptions= text; } void SessionWidget::readConfig() { X2goSettings st ( "sessions" ); sessName->setText ( st.setting()->value ( sessionId+"/name", ( QVariant ) tr ( "New session" ) ).toString() ); sessIcon=st.setting()->value ( sessionId+"/icon", ( QVariant ) ":icons/128x128/x2gosession.png" ).toString(); icon->setIcon ( QIcon ( sessIcon ) ); server->setText ( st.setting()->value ( sessionId+"/host", ( QVariant ) QString::null ).toString() ); uname->setText ( st.setting()->value ( sessionId+"/user", ( QVariant ) QString::null ).toString() ); key->setText ( st.setting()->value ( sessionId+"/key", ( QVariant ) QString::null ).toString() ); cbAutoLogin->setChecked(st.setting()->value ( sessionId+"/autologin", ( QVariant ) false ).toBool()); cbKrbLogin->setChecked(st.setting()->value ( sessionId+"/krblogin", ( QVariant ) false ).toBool()); sshPort->setValue ( st.setting()->value ( sessionId+"/sshport", ( QVariant ) mainWindow->getDefaultSshPort().toInt() ).toInt() ); #ifdef Q_OS_LINUX rdpPort->setValue ( st.setting()->value ( sessionId+"/rdpport",3389 ).toInt() ); #endif cbProxy->setChecked(st.setting()->value ( sessionId+"/usesshproxy", false ).toBool() ); QString prtype= st.setting()->value ( sessionId+"/sshproxytype", "SSH" ).toString() ; if(prtype=="HTTP") { rbHttpProxy->setChecked(true); } else { rbSshProxy->setChecked(true); } proxyLogin->setText(st.setting()->value ( sessionId+"/sshproxyuser", QString() ).toString() ); proxyKey->setText(st.setting()->value ( sessionId+"/sshproxykeyfile", QString() ).toString() ); proxyHost->setText(st.setting()->value ( sessionId+"/sshproxyhost", QString() ).toString() ); proxyPort->setValue(st.setting()->value ( sessionId+"/sshproxyport", 22 ).toInt() ); cbProxySamePass->setChecked(st.setting()->value ( sessionId+"/sshproxysamepass", false ).toBool() ); cbProxySameUser->setChecked(st.setting()->value ( sessionId+"/sshproxysameuser", false ).toBool() ); cbProxyAutologin->setChecked(st.setting()->value ( sessionId+"/sshproxyautologin", false ).toBool() ); if(proxyHost->text().indexOf(":")!=-1) { QStringList parts=proxyHost->text().split(":"); proxyHost->setText(parts[0]); proxyPort->setValue(parts[1].toInt()); } QTimer::singleShot(1, this,SLOT(slot_proxySameLogin())); QTimer::singleShot(2, this,SLOT(slot_proxyType())); QTimer::singleShot(3, this,SLOT(slot_proxyOptions())); QStringList appNames=st.setting()->value ( sessionId+"/applications" ).toStringList(); bool rootless=st.setting()->value ( sessionId+"/rootless",false ).toBool(); bool published=st.setting()->value ( sessionId+"/published",false ).toBool(); QString command=st.setting()->value ( sessionId+"/command", ( QVariant ) mainWindow->getDefaultCmd() ).toString(); rdpOptions=st.setting()->value ( sessionId+"/rdpoptions", ( QVariant ) "" ).toString(); rdpServer=st.setting()->value ( sessionId+"/rdpserver", ( QVariant ) "" ).toString(); xdmcpServer=st.setting()->value ( sessionId+"/xdmcpserver", ( QVariant ) "localhost" ).toString(); #ifdef Q_OS_LINUX cbDirectRDP->setChecked(st.setting()->value ( sessionId+"/directrdp",false ).toBool()); #endif for ( int i=0; itransAppName ( appNames[i] ); if ( cmdCombo->findText ( app ) ==-1 ) cmdCombo->addItem ( app ); } if ( published ) { sessBox->setCurrentIndex( PUBLISHED ); cmdCombo->setDisabled(true); slot_changeCmd(PUBLISHED); } else if ( rootless ) { sessBox->setCurrentIndex ( APPLICATION ); QString app=mainWindow->transAppName ( command ); cmdCombo->lineEdit()->setText ( app ); slot_changeCmd ( APPLICATION ); } else { if ( command=="KDE" ) { sessBox->setCurrentIndex ( KDE ); cmd->setEnabled ( false ); } else if ( command=="GNOME" ) { sessBox->setCurrentIndex ( GNOME ); cmd->setEnabled ( false ); } else if ( command=="LXDE" ) { sessBox->setCurrentIndex ( LXDE ); cmd->setEnabled ( false ); } else if ( command=="UNITY" ) { sessBox->setCurrentIndex ( UNITY ); cmd->setEnabled ( false ); } else if ( command=="XFCE" ) { sessBox->setCurrentIndex ( XFCE ); cmd->setEnabled ( false ); } else if ( command=="SHADOW" ) { sessBox->setCurrentIndex ( SHADOW ); cmd->setEnabled ( false ); } else if ( command=="RDP" ) { leCmdIp->setText ( tr ( "Server:" ) ); sessBox->setCurrentIndex ( RDP ); cmd->setEnabled ( true ); cmd->setText ( rdpServer ); pbAdvanced->show(); #ifdef Q_OS_LINUX cbDirectRDP->show(); slot_rdpDirectClicked(); #endif } else if ( command=="XDMCP" ) { leCmdIp->setText ( tr ( "XDMCP server:" ) ); sessBox->setCurrentIndex ( XDMCP ); cmd->setEnabled ( true ); cmd->setText ( xdmcpServer ); } else { cmd->setText ( command ); sessBox->setCurrentIndex ( OTHER ); cmd->setEnabled ( true ); } } if ( sessName->text() ==tr ( "New session" ) ) { sessName->selectAll(); sessName->setFocus(); } #ifdef Q_OS_LINUX slot_rdpDirectClicked(); #endif } void SessionWidget::setDefaults() { cmd->setText ( "" ); sessBox->setCurrentIndex ( KDE ); cmdCombo->clear(); cmdCombo->addItem ( "" ); cmdCombo->addItems ( mainWindow->transApplicationsNames() ); cbAutoLogin->setChecked(false); cbKrbLogin->setChecked(false); cmdCombo->lineEdit()->setText ( tr ( "Path to executable" ) ); cmdCombo->lineEdit()->selectAll(); slot_changeCmd ( 0 ); cmd->setEnabled ( false ); sessIcon=":icons/128x128/x2gosession.png"; icon->setIcon ( QIcon ( sessIcon ) ); sshPort->setValue ( mainWindow->getDefaultSshPort().toInt() ); #ifdef Q_OS_LINUX rdpPort->setValue (3389); #endif cbProxy->setChecked(false); rbSshProxy->setChecked(true); proxyKey->setText(QString::null); proxyPort->setValue(22); cbProxySamePass->setChecked(false); cbProxySameUser->setChecked(false); cbProxyAutologin->setChecked(false); QTimer::singleShot(1, this,SLOT(slot_proxySameLogin())); QTimer::singleShot(2, this,SLOT(slot_proxyType())); QTimer::singleShot(3, this,SLOT(slot_proxyOptions())); } void SessionWidget::saveSettings() { X2goSettings st ( "sessions" ); st.setting()->setValue ( sessionId+"/name", ( QVariant ) sessName->text() ); st.setting()->setValue ( sessionId+"/icon", ( QVariant ) sessIcon ); st.setting()->setValue ( sessionId+"/host", ( QVariant ) server->text() ); st.setting()->setValue ( sessionId+"/user", ( QVariant ) uname->text() ); st.setting()->setValue ( sessionId+"/key", ( QVariant ) key->text() ); #ifdef Q_OS_LINUX st.setting()->setValue ( sessionId+"/rdpport", ( QVariant ) rdpPort->value() ); #endif st.setting()->setValue ( sessionId+"/sshport", ( QVariant ) sshPort->value() ); st.setting()->setValue(sessionId+"/autologin",( QVariant ) cbAutoLogin->isChecked()); st.setting()->setValue(sessionId+"/krblogin",( QVariant ) cbKrbLogin->isChecked()); #ifdef Q_OS_LINUX st.setting()->setValue(sessionId+"/directrdp",( QVariant ) cbDirectRDP->isChecked()); #endif QString command; bool rootless=false; bool published=false; if ( sessBox->currentIndex() < OTHER ) command=sessBox->currentText(); else command=cmd->text(); if ( sessBox->currentIndex() == RDP ) { command="RDP"; rdpServer=cmd->text(); } if ( sessBox->currentIndex() == XDMCP ) { command="XDMCP"; xdmcpServer=cmd->text(); } if ( sessBox->currentIndex() == SHADOW ) { command="SHADOW"; } QStringList appList; for ( int i=-1; icount(); ++i ) { QString app; if ( i==-1 ) app=mainWindow->internAppName ( cmdCombo->lineEdit()->text () ); else app=mainWindow->internAppName ( cmdCombo->itemText ( i ) ); if ( appList.indexOf ( app ) ==-1 && app!="" && app!=tr ( "Path to executable" ) ) { appList.append ( app ); } } if ( sessBox->currentIndex() ==APPLICATION ) { rootless=true; command=mainWindow->internAppName ( cmdCombo->lineEdit()->text() ); } if ( sessBox->currentIndex() == PUBLISHED) published=true; st.setting()->setValue ( sessionId+"/rootless", ( QVariant ) rootless ); st.setting()->setValue ( sessionId+"/published", ( QVariant ) published ); st.setting()->setValue ( sessionId+"/applications", ( QVariant ) appList ); st.setting()->setValue ( sessionId+"/command", ( QVariant ) command ); st.setting()->setValue ( sessionId+"/rdpoptions", ( QVariant ) rdpOptions ); st.setting()->setValue ( sessionId+"/rdpserver", ( QVariant ) rdpServer ); st.setting()->setValue ( sessionId+"/xdmcpserver", ( QVariant ) xdmcpServer ); st.setting()->setValue ( sessionId+"/usesshproxy",cbProxy->isChecked()); if(rbHttpProxy->isChecked()) { st.setting()->setValue ( sessionId+"/sshproxytype","HTTP"); } else { st.setting()->setValue ( sessionId+"/sshproxytype","SSH"); } st.setting()->setValue (sessionId+"/sshproxyuser",proxyLogin->text()); st.setting()->setValue (sessionId+"/sshproxykeyfile",proxyKey->text()); st.setting()->setValue (sessionId+"/sshproxyhost",proxyHost->text()); st.setting()->setValue (sessionId+"/sshproxyport",proxyPort->value()); st.setting()->setValue (sessionId+"/sshproxysamepass",cbProxySamePass->isChecked()); st.setting()->setValue (sessionId+"/sshproxysameuser",cbProxySameUser->isChecked()); st.setting()->setValue (sessionId+"/sshproxyautologin",cbProxyAutologin->isChecked()); st.setting()->sync(); } QString SessionWidget::sessionName() { return sessName->text(); } #ifdef Q_OS_LINUX void SessionWidget::slot_emitSettings() { emit settingsChanged(server->text(), QString::number( rdpPort->value()), uname->text()); } #endif x2goclient-4.0.1.1/sessionwidget.h0000644000000000000000000000653312214040350013655 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef SESSIONWIDGET_H #define SESSIONWIDGET_H #include "configwidget.h" /** @author Oleksandr Shneyder */ class QLineEdit; class QSpinBox; class QPushButton; class QComboBox; class QLabel; class QCheckBox; class QGroupBox; class QRadioButton; class SessionWidget : public ConfigWidget { Q_OBJECT public: SessionWidget ( QString id, ONMainWindow * mv, QWidget * parent = 0, Qt::WindowFlags f = 0 ); ~SessionWidget(); void setDefaults(); void saveSettings(); QString sessionName(); private slots: void slot_getIcon(); void slot_getKey(); void slot_changeCmd ( int var ); void slot_rdpOptions(); void slot_proxyOptions(); void slot_proxyType(); void slot_proxySameLogin(); void slot_proxyGetKey(); public slots: #ifdef Q_OS_LINUX void slot_rdpDirectClicked(); void slot_emitSettings(); #endif private: enum {KDE,GNOME,LXDE,XFCE,MATE,UNITY,RDP,XDMCP,SHADOW,OTHER,APPLICATION,PUBLISHED}; QLineEdit* sessName; QLineEdit* uname; QLineEdit* server; QSpinBox* sshPort; #ifdef Q_OS_LINUX QSpinBox* rdpPort; #endif QLineEdit* key; QCheckBox* cbAutoLogin; QCheckBox* cbKrbLogin; #ifdef Q_OS_LINUX QCheckBox* cbDirectRDP; #endif QString sessIcon; QPushButton* icon; QLineEdit* cmd; QComboBox* cmdCombo; QComboBox* sessBox; QLabel* leCmdIp; QLabel* lPort; QLabel* lKey; QPushButton* pbAdvanced; QString rdpOptions; QString rdpServer; QString xdmcpServer; QPushButton* openKey; QGroupBox* proxyBox; QCheckBox* cbProxy; QRadioButton* rbSshProxy; QRadioButton* rbHttpProxy; QLineEdit* proxyHost; QSpinBox* proxyPort; QLineEdit* proxyLogin; QLabel* lProxyLogin; QCheckBox* cbProxySameUser; QCheckBox* cbProxySamePass; QCheckBox* cbProxyAutologin; QLineEdit* proxyKey; QPushButton* pbOpenProxyKey; QLabel* proxyKeyLabel; private: void readConfig(); signals: void nameChanged ( const QString & ); #ifdef Q_OS_LINUX void directRDP(bool); void settingsChanged(const QString &, const QString &, const QString &); #endif }; #endif x2goclient-4.0.1.1/settingswidget.cpp0000644000000000000000000006322312214040350014364 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "settingswidget.h" #include "onmainwindow.h" #include #include #include #include #include #include #include #include #include "x2gosettings.h" #include #include #include #include #include #include "x2gologdebug.h" #include SettingsWidget::SettingsWidget ( QString id, ONMainWindow * mw, QWidget * parent, Qt::WindowFlags f ) : ConfigWidget ( id,mw,parent,f ) { multiDisp=(QApplication::desktop()->screenCount()>1); #ifdef Q_WS_HILDON QTabWidget* tabSettings=new QTabWidget ( this ); QFrame* dgb=new QFrame(); QFrame* kgb=new QFrame(); QFrame* sbgr=new QFrame(); tabSettings->addTab ( dgb, tr ( "&Display" ) ); tabSettings->addTab ( kgb,tr ( "&Keyboard" ) ); tabSettings->addTab ( sbgr,tr ( "Sound" ) ); #else QGroupBox *dgb=new QGroupBox ( tr ( "&Display" ),this ); kgb=new QGroupBox ( tr ( "&Keyboard" ),this ); sbgr=new QGroupBox ( tr ( "Sound" ),this ); #endif QVBoxLayout *dbLay = new QVBoxLayout ( dgb ); QVBoxLayout *sndLay=new QVBoxLayout ( sbgr ); QHBoxLayout* sLay=new QHBoxLayout ( ); QVBoxLayout* sLay_sys=new QVBoxLayout ( ); QVBoxLayout* sLay_opt=new QVBoxLayout ( ); sLay->addLayout ( sLay_sys ); sLay->addLayout ( sLay_opt ); QVBoxLayout* setLay=new QVBoxLayout ( this ); QButtonGroup* radio = new QButtonGroup ( dgb ); fs=new QRadioButton ( tr ( "Fullscreen" ),dgb ); #ifndef Q_WS_HILDON custom=new QRadioButton ( tr ( "Custom" ),dgb ); #else custom=new QRadioButton ( tr ( "Window" ),dgb ); #endif display=new QRadioButton ( tr ( "Use whole display" ),dgb ); maxRes=new QRadioButton ( tr ( "Maximum available" ),dgb ); radio->addButton ( fs ); radio->addButton ( custom ); radio->setExclusive ( true ); radio->addButton(display); radio->addButton(maxRes); width=new QSpinBox ( dgb ); height=new QSpinBox ( dgb ); cbSetDPI=new QCheckBox ( tr ( "Set display DPI" ),dgb ); DPI=new QSpinBox ( dgb ); DPI->setRange ( 1,1000 ); cbXinerama= new QCheckBox(tr( "Xinerama extension (support for two or more physical displays)"),dgb); QHBoxLayout *dgLay =new QHBoxLayout(); QHBoxLayout *dwLay =new QHBoxLayout(); QHBoxLayout *ddLay =new QHBoxLayout(); QHBoxLayout *dispLay= new QHBoxLayout(); ddLay->addWidget ( cbSetDPI ); ddLay->addWidget ( DPI ); ddLay->addStretch(); ddLay->setSpacing ( 15 ); dgLay->addWidget ( fs ); dgLay->addStretch(); dwLay->addWidget ( custom ); dwLay->addSpacing ( 15 ); dwLay->addWidget ( widthLabel=new QLabel ( tr ( "Width:" ),dgb ) ); dwLay->addWidget ( width ); width->setRange ( 0,10000 ); dwLay->addWidget ( heightLabel=new QLabel ( tr ( "Height:" ),dgb ) ); dwLay->addWidget ( height ); height->setRange ( 0,10000 ); dwLay->addStretch(); dispLay->addWidget(display); dispLay->addWidget(maxRes); dispLay->addSpacing(15); dispLay->addWidget(lDisplay=new QLabel(tr("&Display:"),dgb)); dispLay->addWidget(displayNumber=new QSpinBox(dgb)); pbIdentDisp=new QPushButton(tr("&Identify all displays"), dgb); dispLay->addWidget(pbIdentDisp); dispLay->addStretch(); lDisplay->setBuddy(displayNumber); displayNumber->setMinimum(1); displayNumber->setMaximum(QApplication::desktop()->screenCount()); if (!multiDisp) { displayNumber->hide(); lDisplay->hide(); pbIdentDisp->hide(); display->hide(); } lDisplay->setEnabled ( false ); displayNumber->setEnabled ( false ); dbLay->addLayout ( dgLay ); dbLay->addLayout ( dwLay ); dbLay->addLayout(dispLay); QFrame* dhl=new QFrame ( dgb ); hLine1=dhl; dhl->setFrameStyle ( QFrame::HLine | QFrame::Sunken ); dbLay->addWidget ( dhl ); dbLay->addLayout ( ddLay ); dhl=new QFrame ( dgb ); hLine2=dhl; dhl->setFrameStyle ( QFrame::HLine | QFrame::Sunken ); dbLay->addWidget ( dhl ); dbLay->addWidget ( cbXinerama ); #ifdef Q_WS_HILDON width->hide(); height->hide(); widthLabel->hide(); heightLabel->hide(); #endif kbd=new QCheckBox ( tr ( "Keep current keyboard Settings" ),kgb ); layout=new QLineEdit ( kgb ); type=new QLineEdit ( kgb ); QVBoxLayout *kbLay = new QVBoxLayout ( kgb ); QVBoxLayout *klLay = new QVBoxLayout(); QVBoxLayout *kwLay = new QVBoxLayout(); QHBoxLayout *ksLay = new QHBoxLayout(); klLay->addWidget ( layoutLabel= new QLabel ( tr ( "Keyboard layout:" ),kgb ) ); klLay->addWidget ( typeLabel= new QLabel ( tr ( "Keyboard model:" ),kgb ) ); kwLay->addWidget ( layout ); kwLay->addWidget ( type ); ksLay->addLayout ( klLay ); ksLay->addLayout ( kwLay ); kbLay->addWidget ( kbd ); kbLay->addLayout ( ksLay ); sound=new QCheckBox ( tr ( "Enable sound support" ),sbgr ); QButtonGroup* sndsys=new QButtonGroup; pulse=new QRadioButton ( "PulseAudio",sbgr ); arts=new QRadioButton ( "arts",sbgr ); esd=new QRadioButton ( "esd",sbgr ); sndsys->addButton ( pulse,PULSE ); sndsys->addButton ( arts,ARTS ); sndsys->addButton ( esd,ESD ); sndsys->setExclusive ( true ); rbStartSnd=new QRadioButton ( tr ( "Start sound daemon" ),sbgr ); rbNotStartSnd=new QRadioButton ( tr ( "Use running sound daemon" ),sbgr ); cbSndSshTun=new QCheckBox ( tr ( "Use SSH port forwarding to tunnel\n" "sound system connections through firewalls" ),sbgr ); cbDefSndPort=new QCheckBox ( tr ( "Use default sound port" ),sbgr ); sbSndPort=new QSpinBox ( sbgr ); sbSndPort->setMinimum ( 1 ); sbSndPort->setMaximum ( 99999999 ); QHBoxLayout *sndPortLay = new QHBoxLayout(); lSndPort=new QLabel ( tr ( "Sound port:" ),sbgr ); sndPortLay->addWidget ( lSndPort ); sndPortLay->addWidget ( sbSndPort ); sLay_sys->addWidget ( pulse ); sLay_sys->addWidget ( arts ); sLay_sys->addWidget ( esd ); sLay_opt->addWidget ( rbStartSnd ); sLay_opt->addWidget ( rbNotStartSnd ); sLay_opt->addWidget ( cbSndSshTun ); QFrame* hl=new QFrame ( sbgr ); hl->setFrameStyle ( QFrame::HLine | QFrame::Sunken ); sLay_opt->addWidget ( hl ); sLay_opt->addWidget ( cbDefSndPort ); sLay_opt->addLayout ( sndPortLay ); sndLay->addWidget ( sound ); sndLay->addLayout ( sLay ); #ifdef Q_OS_WIN arts->hide(); hl->hide(); cbDefSndPort->hide(); lSndPort->hide(); sbSndPort->hide(); #endif cbClientPrint=new QCheckBox ( tr ( "Client side printing support" ), this ); #ifdef Q_OS_DARWIN arts->hide(); pulse->hide(); esd->setChecked ( true ); #endif #ifndef Q_WS_HILDON setLay->addWidget ( dgb ); setLay->addWidget ( kgb ); setLay->addWidget ( sbgr ); #ifdef Q_OS_LINUX #ifdef CFGCLIENT rdpBox=new QGroupBox ( tr ( "RDP Client" ),this ); setLay->addWidget ( rdpBox ); rRdesktop=new QRadioButton ("rdesktop",rdpBox ); rRdesktop->setChecked(true); rXfreeRDP=new QRadioButton ( "xfreerdp",rdpBox); QButtonGroup* rClient=new QButtonGroup(rdpBox); rClient->addButton ( rRdesktop ); rClient->addButton ( rXfreeRDP ); rClient->setExclusive ( true ); QGridLayout *rdpLay=new QGridLayout(rdpBox); rdpLay->addWidget(rRdesktop,0,0); rdpLay->addWidget(rXfreeRDP,1,0); rdpLay->addWidget(new QLabel(tr("Additional parameters:")),2,0); rdpLay->addWidget(new QLabel(tr("Command line:")),3,0); cmdLine=new QLineEdit(rdpBox); cmdLine->setReadOnly(true); params=new QLineEdit(rdpBox); rdpLay->addWidget(cmdLine,4,0,1,2); rdpLay->addWidget(params,2,1); connect (rClient, SIGNAL(buttonClicked(int)), this, SLOT(updateCmdLine())); connect (radio, SIGNAL(buttonClicked(int)), this, SLOT(updateCmdLine())); connect (params, SIGNAL(textChanged(QString)), this, SLOT(updateCmdLine())); connect (width, SIGNAL(valueChanged(int)), this, SLOT(updateCmdLine())); connect (height, SIGNAL(valueChanged(int)), this, SLOT(updateCmdLine())); #endif //CFGCLIENT #endif //Q_OS_LINUX #else setLay->addWidget ( tabSettings ); // cbClientPrint->hide(); #endif //Q_WS_HILDON setLay->addWidget ( cbClientPrint ); setLay->addStretch(); connect ( custom,SIGNAL ( toggled ( bool ) ),width, SLOT ( setEnabled ( bool ) ) ); connect ( custom,SIGNAL ( toggled ( bool ) ),height, SLOT ( setEnabled ( bool ) ) ); connect ( custom,SIGNAL ( toggled ( bool ) ),widthLabel, SLOT ( setEnabled ( bool ) ) ); connect ( custom,SIGNAL ( toggled ( bool ) ),heightLabel, SLOT ( setEnabled ( bool ) ) ); connect ( display,SIGNAL ( toggled ( bool ) ),displayNumber, SLOT ( setEnabled ( bool ) ) ); connect ( display,SIGNAL ( toggled ( bool ) ),lDisplay, SLOT ( setEnabled ( bool ) ) ); connect(pbIdentDisp, SIGNAL(clicked()), this, SLOT (slot_identDisplays())); connect ( cbSetDPI,SIGNAL ( toggled ( bool ) ),DPI, SLOT ( setEnabled ( bool ) ) ); connect ( kbd,SIGNAL ( toggled ( bool ) ),layout, SLOT ( setDisabled ( bool ) ) ); connect ( kbd,SIGNAL ( toggled ( bool ) ),layoutLabel, SLOT ( setDisabled ( bool ) ) ); connect ( kbd,SIGNAL ( toggled ( bool ) ),type, SLOT ( setDisabled ( bool ) ) ); connect ( kbd,SIGNAL ( toggled ( bool ) ),typeLabel, SLOT ( setDisabled ( bool ) ) ); connect ( sound,SIGNAL ( toggled ( bool ) ),this, SLOT ( slot_sndToggled ( bool ) ) ); connect ( sndsys,SIGNAL ( buttonClicked ( int ) ),this, SLOT ( slot_sndSysSelected ( int ) ) ); connect ( rbStartSnd,SIGNAL ( clicked ( ) ),this, SLOT ( slot_sndStartClicked() ) ); connect ( rbNotStartSnd,SIGNAL ( clicked ( ) ),this, SLOT ( slot_sndStartClicked() ) ); connect ( cbDefSndPort,SIGNAL ( toggled ( bool ) ),this, SLOT ( slot_sndDefPortChecked ( bool ) ) ); kbd->setChecked ( true ); custom->setChecked ( true ); readConfig(); } SettingsWidget::~SettingsWidget() { } #ifdef Q_OS_LINUX void SettingsWidget::setDirectRdp(bool direct) { cbClientPrint->setVisible(!direct); kgb->setVisible(!direct); sbgr->setVisible(!direct); cbSetDPI->setVisible(!direct); cbXinerama->setVisible(!direct); display->setVisible(!direct); maxRes->setVisible(direct); DPI->setVisible(!direct); lDisplay->setVisible(!direct); displayNumber->setVisible(!direct); pbIdentDisp->setVisible(!direct); hLine1->setVisible(!direct); hLine2->setVisible(!direct); rdpBox->setVisible(direct); if (direct) { if (display->isChecked()) { display->setChecked(false); custom->setChecked(true); } } else { if (maxRes->isChecked()) { maxRes->setChecked(false); custom->setChecked(true); } } } #endif void SettingsWidget::slot_identDisplays() { pbIdentDisp->setEnabled(false); identWins.clear(); for (int i=0; iscreenCount(); ++i) { QMainWindow *mw=new QMainWindow( this, Qt::FramelessWindowHint|Qt::X11BypassWindowManagerHint|Qt::WindowStaysOnTopHint); mw->setFixedSize(150,200); QLabel* fr=new QLabel(QString::number(i+1), mw); QFont f=fr->font(); f.setBold(true); f.setPointSize(56); fr->setFont(f); fr->setAlignment(Qt::AlignCenter); mw->setCentralWidget(fr); fr->setFrameStyle(QFrame::Box); QRect geom=QApplication::desktop()->screenGeometry(i); int x_pos=geom.width()/2-75; int y_pos=geom.height()/2-100; x_pos=565; identWins<move(geom.x()+x_pos, geom.y()+y_pos); mw->show(); mw->raise(); } QTimer::singleShot(1200,this, SLOT(slot_hideIdentWins())); } void SettingsWidget::slot_hideIdentWins() { QMainWindow* mw; foreach(mw,identWins) { mw->close(); } pbIdentDisp->setEnabled(true); } void SettingsWidget::slot_sndSysSelected ( int system ) { rbStartSnd->show(); rbNotStartSnd->show(); cbSndSshTun->hide(); cbDefSndPort->setChecked ( true ); cbDefSndPort->setEnabled ( true ); switch ( system ) { case PULSE: { rbStartSnd->hide(); rbNotStartSnd->hide(); cbSndSshTun->show(); cbSndSshTun->setEnabled ( true ); break; } case ARTS: { cbDefSndPort->setChecked ( false ); cbDefSndPort->setEnabled ( false ); sbSndPort->setValue ( 20221 ); break; } case ESD: { #ifdef Q_OS_WIN rbStartSnd->hide(); rbNotStartSnd->hide(); cbSndSshTun->show(); cbSndSshTun->setEnabled ( false ); cbSndSshTun->setChecked ( true ); #endif sbSndPort->setValue ( 16001 ); break; } } slot_sndStartClicked(); } void SettingsWidget::slot_sndToggled ( bool val ) { arts->setEnabled ( val ); pulse->setEnabled ( val ); esd->setEnabled ( val ); rbStartSnd->setEnabled ( val ); rbNotStartSnd->setEnabled ( val ); cbSndSshTun->setEnabled ( false ); if ( pulse->isChecked() ) cbSndSshTun->setEnabled ( val ); lSndPort->setEnabled ( val ); if ( !arts->isChecked() ) cbDefSndPort->setEnabled ( val ); sbSndPort->setEnabled ( val ); if ( val ) slot_sndStartClicked(); } void SettingsWidget::slot_sndStartClicked() { bool start=rbStartSnd->isChecked(); #ifdef Q_OS_WIN start=false; #endif if ( pulse->isChecked() ) { lSndPort->setEnabled ( true ); sbSndPort->setEnabled ( true ); cbDefSndPort->setEnabled ( true &&sound->isChecked()); } else { lSndPort->setEnabled ( !start ); sbSndPort->setEnabled ( !start ); cbDefSndPort->setEnabled ( !start ); } if ( arts->isChecked() ) cbDefSndPort->setEnabled ( false ); if ( ( !start && esd->isChecked() ) ||pulse->isChecked() ) slot_sndDefPortChecked ( cbDefSndPort->isChecked() ); } void SettingsWidget::slot_sndDefPortChecked ( bool val ) { sbSndPort->setEnabled ( !val ); lSndPort->setEnabled ( !val ); if ( val ) { if ( pulse->isChecked() ) sbSndPort->setValue ( 4713 ); if ( arts->isChecked() ) sbSndPort->setValue ( 20221 ); if ( esd->isChecked() ) sbSndPort->setValue ( 16001 ); } } void SettingsWidget::readConfig() { X2goSettings st ( "sessions" ); fs->setChecked ( st.setting()->value ( sessionId+"/fullscreen", ( QVariant ) mainWindow->getDefaultFullscreen() ).toBool() ); custom->setChecked ( ! st.setting()->value ( sessionId+"/fullscreen", ( QVariant ) mainWindow->getDefaultFullscreen() ).toBool() ); width->setValue ( st.setting()->value ( sessionId+"/width", ( QVariant ) mainWindow->getDefaultWidth() ).toInt() ); height->setValue ( st.setting()->value ( sessionId+"/height", ( QVariant ) mainWindow->getDefaultHeight() ).toInt() ); if (multiDisp) { bool md=st.setting()->value ( sessionId+"/multidisp", ( QVariant ) false).toBool(); if (md) display->setChecked(true); int disp=st.setting()->value ( sessionId+"/display", ( QVariant ) 1).toUInt(); if (disp<= displayNumber->maximum()) displayNumber->setValue(disp); else displayNumber->setValue(1); } #ifdef Q_OS_LINUX #ifdef CFGCLIENT maxRes->setChecked(st.setting()->value ( sessionId+"/maxdim", false).toBool()); QString client=st.setting()->value ( sessionId+"/rdpclient","rdesktop").toString(); if(client=="rdesktop") rRdesktop->setChecked(true); else rXfreeRDP->setChecked(true); params->setText(st.setting()->value ( sessionId+"/directrdpsettings","").toString()); #endif #endif cbSetDPI->setChecked ( st.setting()->value ( sessionId+"/setdpi", ( QVariant ) mainWindow->getDefaultSetDPI() ).toBool() ); cbXinerama->setChecked ( st.setting()->value ( sessionId+"/xinerama", ( QVariant ) false).toBool()); DPI->setEnabled ( cbSetDPI->isChecked() ); DPI->setValue ( st.setting()->value ( sessionId+"/dpi", ( QVariant ) mainWindow->getDefaultDPI() ).toUInt() ); kbd->setChecked ( !st.setting()->value ( sessionId+"/usekbd", ( QVariant ) mainWindow->getDefaultSetKbd() ).toBool() ); layout->setText ( st.setting()->value ( sessionId+"/layout", ( QVariant ) mainWindow->getDefaultLayout() ).toString() ); type->setText ( st.setting()->value ( sessionId+"/type", ( QVariant ) mainWindow->getDefaultKbdType() ).toString() ); bool snd=st.setting()->value ( sessionId+"/sound", ( QVariant ) mainWindow->getDefaultUseSound() ).toBool(); QString sndsys=st.setting()->value ( sessionId+"/soundsystem", "pulse" ).toString(); bool startServ=st.setting()->value ( sessionId+"/startsoundsystem", true ).toBool(); bool sndInTun=st.setting()->value ( sessionId+"/soundtunnel", true ).toBool(); bool defSndPort=st.setting()->value ( sessionId+"/defsndport", true ).toBool(); int sndPort= st.setting()->value ( sessionId+"/sndport",4713 ).toInt(); if ( startServ ) rbStartSnd->setChecked ( true ); else rbNotStartSnd->setChecked ( true ); pulse->setChecked ( true ); slot_sndSysSelected ( PULSE ); #ifdef Q_OS_WIN if ( sndsys=="arts" ) { sndsys="pulse"; } #endif if ( sndsys=="arts" ) { arts->setChecked ( true ); slot_sndSysSelected ( ARTS ); } #ifdef Q_OS_DARWIN sndsys="esd"; #endif if ( sndsys=="esd" ) { esd->setChecked ( true ); slot_sndSysSelected ( ESD ); } cbSndSshTun->setChecked ( sndInTun ); sound->setChecked ( snd ); if ( !defSndPort ) sbSndPort->setValue ( sndPort ); cbDefSndPort->setChecked ( defSndPort ); if ( sndsys=="arts" ) cbDefSndPort->setChecked ( false ); slot_sndToggled ( snd ); slot_sndStartClicked(); if(!sound) cbDefSndPort->setEnabled(false); cbClientPrint->setChecked ( st.setting()->value ( sessionId+"/print", true ).toBool() ); } void SettingsWidget::setDefaults() { fs->setChecked ( false ); display->setChecked ( false ); lDisplay->setEnabled ( false ); displayNumber->setEnabled ( false ); custom->setChecked ( true ); width->setValue ( 800 ); height->setValue ( 600 ); cbSetDPI->setChecked ( mainWindow->getDefaultSetDPI() ); DPI->setValue ( mainWindow->getDefaultDPI() ); DPI->setEnabled ( mainWindow->getDefaultSetDPI() ); kbd->setChecked ( !mainWindow->getDefaultSetKbd() ); layout->setText ( tr ( "us" ) ); type->setText ( tr ( "pc105/us" ) ); sound->setChecked ( true ); pulse->setChecked ( true ); slot_sndToggled ( true ); slot_sndSysSelected ( PULSE ); cbSndSshTun->setChecked ( true ); rbStartSnd->setChecked ( true ); cbClientPrint->setChecked ( true ); cbXinerama->setChecked ( false ); } void SettingsWidget::saveSettings() { X2goSettings st ( "sessions" ); st.setting()->setValue ( sessionId+"/fullscreen", ( QVariant ) fs->isChecked() ); st.setting()->setValue ( sessionId+"/multidisp", ( QVariant ) display->isChecked() ); st.setting()->setValue ( sessionId+"/display", ( QVariant ) displayNumber->value() ); #ifdef Q_OS_LINUX #ifdef CFGCLIENT st.setting()->setValue ( sessionId+"/maxdim", ( QVariant ) maxRes->isChecked() ); if (rXfreeRDP->isChecked()) st.setting()->setValue ( sessionId+"/rdpclient", ( QVariant ) "xfreerdp" ); else st.setting()->setValue ( sessionId+"/rdpclient", ( QVariant ) "rdesktop" ); st.setting()->setValue ( sessionId+"/directrdpsettings", ( QVariant ) params->text()); #endif #endif st.setting()->setValue ( sessionId+"/width", ( QVariant ) width->value() ); st.setting()->setValue ( sessionId+"/height", ( QVariant ) height->value() ); //if maxRes is checked width and height are setted to max area available if (maxRes->isChecked() || st.setting()->value(sessionId + "/multidisp", (QVariant) false).toBool() || st.setting()->value(sessionId + "/maxdim", (QVariant) false).toBool()) { //get screen number int selectedScreen = st.setting()->value(sessionId + "/display", (QVariant) -1).toInt(); //get max available desktop area for selected screen int height = QApplication::desktop()->availableGeometry(selectedScreen).height(); int width = QApplication::desktop()->availableGeometry(selectedScreen).width(); //save max resolution st.setting()->setValue (sessionId + "/width", (QVariant) width); st.setting()->setValue (sessionId + "/height", (QVariant) height); } st.setting()->setValue ( sessionId+"/dpi", ( QVariant ) DPI->value() ); st.setting()->setValue ( sessionId+"/setdpi", ( QVariant ) cbSetDPI->isChecked() ); st.setting()->setValue ( sessionId+"/xinerama", ( QVariant ) cbXinerama->isChecked() ); st.setting()->setValue ( sessionId+"/usekbd", ( QVariant ) !kbd->isChecked() ); st.setting()->setValue ( sessionId+"/layout", ( QVariant ) layout->text() ); st.setting()->setValue ( sessionId+"/type", ( QVariant ) type->text() ); st.setting()->setValue ( sessionId+"/sound", ( QVariant ) sound->isChecked() ); if ( arts->isChecked() ) st.setting()->setValue ( sessionId+"/soundsystem", ( QVariant ) "arts" ); if ( esd->isChecked() ) st.setting()->setValue ( sessionId+"/soundsystem", ( QVariant ) "esd" ); if ( pulse->isChecked() ) st.setting()->setValue ( sessionId+"/soundsystem", ( QVariant ) "pulse" ); st.setting()->setValue ( sessionId+"/startsoundsystem", ( QVariant ) rbStartSnd->isChecked() ); st.setting()->setValue ( sessionId+"/soundtunnel", ( QVariant ) cbSndSshTun->isChecked() ); st.setting()->setValue ( sessionId+"/defsndport", ( QVariant ) cbDefSndPort->isChecked() ); st.setting()->setValue ( sessionId+"/sndport", ( QVariant ) sbSndPort->value() ); st.setting()->setValue ( sessionId+"/print", ( QVariant ) cbClientPrint->isChecked() ); st.setting()->sync(); } #ifdef Q_OS_LINUX void SettingsWidget::setServerSettings(QString server, QString port, QString user) { this->server=server; this->port=port; this->user=user; updateCmdLine(); } void SettingsWidget::updateCmdLine() { #ifdef CFGCLIENT QString client="xfreerdp"; QString userOpt; if (user.length()>0) { userOpt=" -u "; userOpt+=user; } if (rRdesktop->isChecked()) { client="rdesktop"; } QString grOpt; if (fs->isChecked()) { grOpt=" -f "; } if (maxRes->isChecked()) { grOpt=" -D -g x"; } if (custom->isChecked()) { grOpt=" -g "+QString::number(width->value())+"x"+QString::number(height->value()); } cmdLine->setText(client +" "+params->text()+ grOpt +userOpt+" -p <"+tr("password")+"> "+ server+":"+port ); #endif } #endif x2goclient-4.0.1.1/settingswidget.h0000644000000000000000000000645112214040350014031 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef SETTINGSWIDGET_H #define SETTINGSWIDGET_H #include /** @author Oleksandr Shneyder */ class QSpinBox; class QRadioButton; class QCheckBox; class QLineEdit; class QSpinBox; class QLabel; class QPushButton; class QMainWindow; class QGroupBox; class SettingsWidget : public ConfigWidget { Q_OBJECT public: SettingsWidget ( QString id, ONMainWindow * mw, QWidget * parent=0, Qt::WindowFlags f=0 ); ~SettingsWidget(); void setDefaults(); void saveSettings(); #ifdef Q_OS_LINUX void setDirectRdp(bool direct); public slots: void setServerSettings(QString server, QString port, QString user); void updateCmdLine(); #endif private slots: void slot_sndSysSelected ( int system ); void slot_sndToggled ( bool val ); void slot_sndStartClicked(); void slot_sndDefPortChecked ( bool val ); void slot_identDisplays(); void slot_hideIdentWins(); private: enum {PULSE,ARTS,ESD}; QSpinBox* width; QSpinBox* height; QSpinBox* displayNumber; QRadioButton* fs; QCheckBox* kbd; QLineEdit* layout; QLineEdit* type; QRadioButton* custom; QRadioButton* display; QRadioButton* maxRes; QRadioButton* arts; QRadioButton* pulse; QRadioButton* esd; QCheckBox* sound; QRadioButton* rbStartSnd; QRadioButton* rbNotStartSnd; QCheckBox* cbSndSshTun; QCheckBox* cbClientPrint; QCheckBox* cbDefSndPort; QCheckBox* cbSetDPI; QCheckBox* cbXinerama; QLabel* lSndPort; QSpinBox* sbSndPort; QSpinBox* DPI; QLabel* widthLabel; QLabel* heightLabel; QLabel* layoutLabel; QLabel* typeLabel; QLabel* lDisplay; bool multiDisp; QPushButton* pbIdentDisp; QList identWins; QGroupBox *kgb; QGroupBox *sbgr; #ifdef Q_OS_LINUX QGroupBox *rdpBox; QRadioButton* rRdesktop; QRadioButton* rXfreeRDP; QLineEdit* cmdLine; QLineEdit* params; QString server; QString user; QString port; #endif QFrame* hLine1; QFrame* hLine2; private: void readConfig(); }; #endif x2goclient-4.0.1.1/sharewidget.cpp0000644000000000000000000002410512214040350013622 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "sharewidget.h" #include "onmainwindow.h" #include #include #include #include #include #include #include #include #include #include #include #include "x2gologdebug.h" #include #include #include "x2gosettings.h" ShareWidget::ShareWidget ( QString id, ONMainWindow * mw, QWidget * parent, Qt::WindowFlags f ) : ConfigWidget ( id,mw,parent,f ) { QGroupBox *egb=new QGroupBox ( tr ( "&Folders" ),this ); expTv=new QTreeView ( egb ); expTv->setItemsExpandable ( false ); expTv->setRootIsDecorated ( false ); model=new QStandardItemModel ( 0,2 ); ldir=new QLabel ( egb ); model->setHeaderData ( 0,Qt::Horizontal,QVariant ( ( QString ) tr ( "Path" ) ) ); model->setHeaderData ( 1,Qt::Horizontal,QVariant ( ( QString ) tr ( "Automount" ) ) ); expTv->setEditTriggers ( QAbstractItemView::NoEditTriggers ); QPushButton* openDir=new QPushButton ( QIcon ( mainWindow->iconsPath ( "/16x16/file-open.png" ) ), QString::null,egb ); QPushButton* addDir=new QPushButton ( tr ( "Add" ),egb ); QPushButton* delDir=new QPushButton ( tr ( "Delete" ),egb ); #ifdef Q_WS_HILDON QSize sz=addDir->sizeHint(); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); addDir->setFixedSize ( sz ); sz=delDir->sizeHint(); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); delDir->setFixedSize ( sz ); #endif QLabel *dirPrompt=new QLabel ( tr ( "Path:" ),egb ); dirPrompt->setFixedSize ( dirPrompt->sizeHint() ); openDir->setFixedSize ( openDir->sizeHint() ); ldir->setFrameStyle ( QFrame::StyledPanel|QFrame::Sunken ); cbFsConv=new QCheckBox ( tr ( "Filename encoding" ),egb ); QHBoxLayout* enclay=new QHBoxLayout; cbFrom=new QComboBox ( egb ); cbTo=new QComboBox ( egb ); lFrom=new QLabel ( tr ( "local:" ),egb ); lTo=new QLabel ( tr ( "remote:" ),egb ); enclay->addWidget ( cbFsConv ); enclay->addWidget ( lFrom ); enclay->addWidget ( cbFrom ); enclay->addWidget ( lTo ); enclay->addWidget ( cbTo ); enclay->addStretch(); loadEnc ( cbFrom ); loadEnc ( cbTo ); cbFsSshTun=new QCheckBox ( tr ( "Use ssh port forwarding to tunnel file system " "connections through firewalls" ),egb ); QVBoxLayout* expLay=new QVBoxLayout ( this ); expLay->addWidget ( egb ); QHBoxLayout *tvLay=new QHBoxLayout ( egb ); QHBoxLayout *dirLAy=new QHBoxLayout(); dirLAy->addWidget ( dirPrompt ); dirLAy->addWidget ( ldir ); dirLAy->addWidget ( openDir ); QVBoxLayout* leftLay=new QVBoxLayout(); leftLay->addLayout ( dirLAy ); leftLay->addSpacing ( 10 ); leftLay->addWidget ( expTv ); expLay->addLayout ( enclay ); expLay->addWidget ( cbFsSshTun ); QVBoxLayout* rightLay=new QVBoxLayout(); rightLay->addWidget ( addDir ); rightLay->addStretch(); rightLay->addWidget ( delDir ); rightLay->addStretch(); tvLay->addLayout ( leftLay ); tvLay->addSpacing ( 10 ); tvLay->addLayout ( rightLay ); expTv->setModel ( ( QAbstractItemModel* ) model ); QFontMetrics fm1 ( expTv->font() ); expTv->header()->resizeSection ( 1, fm1.width ( tr ( "Automount" ) ) +10 ); connect ( openDir,SIGNAL ( clicked() ),this,SLOT ( slot_openDir() ) ); connect ( addDir,SIGNAL ( clicked() ),this,SLOT ( slot_addDir() ) ); connect ( delDir,SIGNAL ( clicked() ),this,SLOT ( slot_delDir() ) ); connect ( cbFsConv,SIGNAL ( clicked() ),this ,SLOT ( slot_convClicked() ) ); readConfig(); } ShareWidget::~ShareWidget() { } void ShareWidget::slot_openDir() { QString startDir=ONMainWindow::getHomeDirectory(); #ifdef Q_OS_WIN if ( ONMainWindow::getPortable() && ONMainWindow::U3DevicePath().length() >0 ) { startDir=ONMainWindow::U3DevicePath() +"/"; } #endif QString path= QFileDialog::getExistingDirectory ( this, tr ( "Select folder" ), startDir ); if ( path!=QString::null ) { #ifdef Q_OS_WIN if ( ONMainWindow::getPortable() && ONMainWindow::U3DevicePath().length() >0 ) { if ( path.indexOf ( ONMainWindow::U3DevicePath() ) !=0 ) { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "x2goclient is running in " "portable mode. You should " "use a path on your usb device " "to be able to access your data " "whereever you are" ), QMessageBox::Ok,QMessageBox::NoButton ); slot_openDir(); return; } path.replace ( ONMainWindow::U3DevicePath(), "(U3)" ); } #endif ldir->setText ( path ); } } void ShareWidget::slot_addDir() { QString path=ldir->text(); if ( path.length() <1 ) return; for ( int i=0;irowCount();++i ) if ( model->index ( i,0 ).data().toString() ==path ) return; QStandardItem *item; item= new QStandardItem ( path ); model->setItem ( model->rowCount(),0,item ); item= new QStandardItem(); item->setCheckable ( true ); model->setItem ( model->rowCount()-1,1,item ); ldir->setText ( QString::null ); } void ShareWidget::slot_delDir() { model->removeRow ( expTv->currentIndex().row() ); } void ShareWidget::readConfig() { X2goSettings st ( "sessions" ); QString exportDir=st.setting()->value ( sessionId+"/export", ( QVariant ) QString::null ).toString(); cbFsSshTun->setChecked ( st.setting()->value ( sessionId+"/fstunnel", true ).toBool() ); QStringList lst=exportDir.split ( ";",QString::SkipEmptyParts ); QString toCode=st.setting()->value ( sessionId+"/iconvto", ( QVariant ) "UTF-8" ).toString(); #ifdef Q_OS_WIN QString fromCode=st.setting()->value ( sessionId+"/iconvfrom", ( QVariant ) tr ( "WINDOWS-1252" ) ).toString(); #endif #ifdef Q_OS_DARWIN QString fromCode=st.setting()->value ( sessionId+"/iconvfrom", ( QVariant ) "UTF-8" ).toString(); #endif #ifdef Q_OS_LINUX QString fromCode=st.setting()->value ( sessionId+"/iconvfrom", ( QVariant ) tr ( "ISO8859-1" ) ).toString(); #endif cbFsConv->setChecked ( st.setting()->value ( sessionId+"/useiconv", ( QVariant ) false ).toBool() ); slot_convClicked(); int ind=cbFrom->findText ( fromCode ); if ( ind !=-1 ) cbFrom->setCurrentIndex ( ind ); ind=cbTo->findText ( toCode ); if ( ind !=-1 ) cbTo->setCurrentIndex ( ind ); for ( int i=0;isetItem ( model->rowCount(),0,item ); item= new QStandardItem(); item->setCheckable ( true ); if ( tails[1]=="1" ) item->setCheckState ( Qt::Checked ); model->setItem ( model->rowCount()-1,1,item ); } } void ShareWidget::setDefaults() { cbFsSshTun->setChecked ( true ); QString toCode="UTF-8"; #ifdef Q_OS_WIN QString fromCode=tr ( "WINDOWS-1252" ); #endif #ifdef Q_OS_DARWIN QString fromCode="UTF-8"; #endif #ifdef Q_OS_LINUX QString fromCode=tr ( "ISO8859-1" ); #endif cbFsConv->setChecked ( false ); slot_convClicked(); int ind=cbFrom->findText ( fromCode ); if ( ind !=-1 ) cbFrom->setCurrentIndex ( ind ); ind=cbTo->findText ( toCode ); if ( ind !=-1 ) cbTo->setCurrentIndex ( ind ); } void ShareWidget::saveSettings() { X2goSettings st ( "sessions" ); st.setting()->setValue ( sessionId+"/fstunnel", ( QVariant ) cbFsSshTun->isChecked() ); QString exportDirs; for ( int i=0;irowCount();++i ) { #ifndef Q_OS_WIN exportDirs+=model->index ( i,0 ).data().toString() +":"; #else exportDirs+=model->index ( i,0 ).data().toString() +"#"; #endif if ( model->item ( i,1 )->checkState() ==Qt::Checked ) exportDirs+="1;"; else exportDirs+="0;"; } st.setting()->setValue ( sessionId+"/export", ( QVariant ) exportDirs ); st.setting()->setValue ( sessionId+"/iconvto",cbTo->currentText() ); st.setting()->setValue ( sessionId+"/iconvfrom",cbFrom->currentText() ); st.setting()->setValue ( sessionId+"/useiconv",cbFsConv->isChecked() ); st.setting()->sync(); } void ShareWidget::loadEnc ( QComboBox* cb ) { QFile file ( ":/txt/encodings" ); if ( !file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) return; QTextStream in ( &file ); while ( !in.atEnd() ) { QString line = in.readLine(); line=line.replace ( "//","" ); cb->addItem ( line ); } } void ShareWidget::slot_convClicked() { bool val=cbFsConv->isChecked(); cbTo->setEnabled ( val ); cbFrom->setEnabled ( val ); lTo->setEnabled ( val ); lFrom->setEnabled ( val ); } x2goclient-4.0.1.1/sharewidget.h0000644000000000000000000000402612214040350013267 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef SHAREWIDGET_H #define SHAREWIDGET_H #include /** @author Oleksandr Shneyder */ class QTreeView; class QStandardItemModel; class QLabel; class QCheckBox; class QComboBox; class ShareWidget : public ConfigWidget { Q_OBJECT public: ShareWidget ( QString id, ONMainWindow * mw, QWidget * parent=0, Qt::WindowFlags f=0 ); ~ShareWidget(); void setDefaults(); void saveSettings(); private slots: void slot_openDir(); void slot_addDir(); void slot_delDir(); void slot_convClicked(); private: QTreeView* expTv; QStandardItemModel* model; QLabel *ldir; QCheckBox* cbFsSshTun; QCheckBox* cbFsConv; QComboBox* cbFrom; QComboBox* cbTo; QLabel* lFrom; QLabel* lTo; private: void readConfig(); void loadEnc ( QComboBox* cb ); }; #endif x2goclient-4.0.1.1/sshmasterconnection.cpp0000644000000000000000000012240712214040350015411 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "x2goclientconfig.h" #include "x2gologdebug.h" #include "sshmasterconnection.h" #include #include #include "sshprocess.h" #include #include #include #include #ifndef Q_OS_WIN #include #endif #include #ifndef Q_OS_WIN #include /* for socket(), connect(), send(), and recv() */ #include /* for sockaddr_in and inet_addr() */ #include #include #include #endif #include "onmainwindow.h" #define PROXYTUNNELPORT 44444 #undef DEBUG // #define DEBUG #undef SSH_DEBUG // #define SSH_DEBUG static bool isLibSshInited=false; SshMasterConnection::SshMasterConnection (QObject* parent, QString host, int port, bool acceptUnknownServers, QString user, QString pass, QString key, bool autologin, bool krblogin, bool useproxy, ProxyType type, QString proxyserver, quint16 proxyport, QString proxylogin, QString proxypassword, QString proxykey, bool proxyautologin ) : QThread ( parent ) { #if defined ( Q_OS_DARWIN ) // Mac OS X provides only 512KB stack space for secondary threads. // As we put a 512KB buffer on the stack later on, we need a bigger stack space. setStackSize (sizeof (char) * 1024 * 1024 * 2); #endif tcpProxySocket = NULL; tcpNetworkProxy = NULL; sshProxy= NULL; sshProxyReady=false; nextPid=0; breakLoop=false; this->host=host; this->port=port; this->user=user; this->pass=pass; this->key=key; this->autologin=autologin; this->acceptUnknownServers=acceptUnknownServers; this->useproxy=useproxy; this->proxytype=type; this->proxyautologin=proxyautologin; this->proxykey=proxykey; this->proxyserver=proxyserver; this->proxyport=proxyport; this->proxylogin=proxylogin; this->proxypassword=proxypassword; reverseTunnel=false; mainWnd=(ONMainWindow*) parent; kerberos=krblogin; #ifdef DEBUG if (kerberos) x2goDebug<<"starting ssh connection with kerberos authentication"<host=host; this->port=port; this->user=user; this->pass=pass; this->key=key; this->autologin=autologin; this->acceptUnknownServers=acceptUnknownServers; this->useproxy=useproxy; this->proxyserver=proxyserver; this->proxyport=proxyport; this->proxylogin=proxylogin; this->proxypassword=proxypassword; this->proxytype=type; this->proxyautologin=proxyautologin; this->proxykey=proxykey; this->localProxyPort=localProxyPort; reverseTunnelLocalHost=localHost; reverseTunnelLocalPort=localPort; reverseTunnelCreator=creator; reverseTunnel=true; reverseTunnelRemotePort=remotePort; mainWnd=mwd; #ifdef DEBUG x2goDebug<<"SshMasterConnection, instance "<startTunnel ( host, port, "127.0.0.1",localProxyPort,false,this, SLOT ( slotSshProxyTunnelOk(int)), SLOT ( slotSshProxyTunnelFailed(bool,QString,int))); } int SshMasterConnection::copyFile(const QString& src, const QString dst, QObject* receiver, const char* slotFinished) { SshProcess* proc=new SshProcess(this, nextPid++); if(receiver && slotFinished) { connect(proc, SIGNAL(sshFinished(bool,QString,int)), receiver, slotFinished); } proc->start_cp(src,dst); processes<pid; } int SshMasterConnection::executeCommand(const QString& command, QObject* receiver, const char* slotFinished) { SshProcess* proc=new SshProcess(this, nextPid++); if(receiver && slotFinished) { connect(proc, SIGNAL(sshFinished(bool,QString,int)), receiver, slotFinished); } proc->startNormal(command); processes<pid; } QString SshMasterConnection::getSourceFile(int pid) { foreach (SshProcess* proc, processes) { if(proc->pid==pid) return proc->getSource(); } return QString ::null; } int SshMasterConnection::startTunnel(const QString& forwardHost, uint forwardPort, const QString& localHost, uint localPort, bool reverse, QObject* receiver, const char* slotTunnelOk, const char* slotFinished) { SshProcess* proc=new SshProcess(this, nextPid++); if(receiver && slotFinished) { connect(proc, SIGNAL(sshFinished(bool,QString,int)), receiver, slotFinished); } if(receiver && slotTunnelOk) { connect(proc, SIGNAL(sshTunnelOk(int)), receiver, slotTunnelOk); } proc->startTunnel(forwardHost, forwardPort, localHost, localPort, reverse); processes<pid; } void SshMasterConnection::slotSshProxyConnectionError(QString err1, QString err2) { breakLoop=true; emit connectionError(tr("SSH proxy connection error"),err1+" "+err2); } void SshMasterConnection::slotSshProxyServerAuthError(int errCode, QString err, SshMasterConnection* con) { emit serverAuthError(errCode, tr("SSH proxy connection error: ")+err, con); } void SshMasterConnection::slotSshProxyUserAuthError(QString err) { breakLoop=true; emit userAuthError(tr("SSH proxy connection error: ")+err); } void SshMasterConnection::slotSshProxyTunnelOk(int) { #ifdef DEBUG x2goDebug<<"Ssh proxy tunnel established"; #endif sshProxyReady=true; } void SshMasterConnection::slotSshProxyTunnelFailed(bool , QString output, int) { breakLoop=true; emit connectionError(tr("Failed to create SSH proxy tunnel"), output); } SshMasterConnection* SshMasterConnection::reverseTunnelConnection ( SshProcess* creator, int remotePort, QString localHost, int localPort ) { SshMasterConnection* con=new SshMasterConnection (this, mainWnd, host,port,acceptUnknownServers,user,pass, key,autologin, remotePort,localHost, localPort,creator, useproxy, proxytype, proxyserver, proxyport, proxylogin, proxypassword, proxykey, proxyautologin, localProxyPort ); con->kerberos=kerberos; connect ( con,SIGNAL ( ioErr ( SshProcess*,QString,QString ) ),this,SIGNAL ( ioErr ( SshProcess*,QString,QString ) ) ); connect ( con,SIGNAL ( stdErr ( SshProcess*,QByteArray ) ),this,SIGNAL ( stdErr ( SshProcess*,QByteArray ) ) ); connect ( con,SIGNAL ( reverseListenOk ( SshProcess* ) ), this, SIGNAL ( reverseListenOk ( SshProcess* ) ) ); con->keyPhrase=keyPhrase; con->keyPhraseReady=true; con->start(); reverseTunnelConnectionsMutex.lock(); reverseTunnelConnections.append ( con ); reverseTunnelConnectionsMutex.unlock(); return con; } void SshMasterConnection::slotSshProxyServerAuthAborted() { breakLoop=true; } void SshMasterConnection::run() { #ifdef DEBUG x2goDebug<<"SshMasterConnection, instance "<start(); while(! sshProxyReady) { if(breakLoop) { quit(); return; } this->usleep(200); } } disconnectSessionFlag=false; if ( !isLibSshInited ) { #ifdef DEBUG x2goDebug<<"libSsh not inited yet, initting\n"; #endif if ( ssh_init() !=0 ) { QString err=tr ( "Can not initialize libssh" ); #ifdef DEBUG x2goDebug<getHomeDirectory()+"/ssh").toAscii()); #endif ssh_options_set(my_ssh_session, SSH_OPTIONS_LOG_VERBOSITY, &verbosity); ssh_options_set(my_ssh_session, SSH_OPTIONS_TIMEOUT, &timeout); if (useproxy && proxytype == PROXYHTTP) { socket_t proxysocket = SSH_INVALID_SOCKET; tcpNetworkProxy = new QNetworkProxy( QNetworkProxy::HttpProxy, proxyserver, proxyport, proxylogin, proxypassword); tcpProxySocket = new QTcpSocket(); tcpProxySocket->setProxy( *tcpNetworkProxy ); tcpProxySocket->connectToHost(host, port); proxysocket = tcpProxySocket->socketDescriptor(); if (!tcpProxySocket->waitForConnected(30000)) { QString message=tr ( "Can not connect to proxy server" ); #ifdef DEBUG x2goDebug<usleep(100); writeHostKeyMutex.lock(); if(writeHostKeyReady) { if(writeHostKey) ssh_write_knownhost(my_ssh_session); writeHostKeyMutex.unlock(); break; } writeHostKeyMutex.unlock(); } ssh_disconnect ( my_ssh_session ); ssh_free ( my_ssh_session ); return; } if(disconnectSessionFlag) { #ifdef DEBUG x2goDebug<<"session already disconnected, exiting"<getHomeDirectory()+"/ssh").toAscii()); #ifdef DEBUG x2goDebug<<"setting SSH DIR to "<getHomeDirectory()+"/ssh"; #endif #endif if ( userAuth() ) { if(disconnectSessionFlag) { #ifdef DEBUG x2goDebug<<"session already disconnected, exiting"<=0; --i) { delete processes[i]; } #ifdef DEBUG x2goDebug<<"SshMasterConnection, instance "<usleep(200); keyPhraseMutex.lock(); if(keyPhraseReady) ready=true; keyPhraseMutex.unlock(); if(ready) break; } } if(keyPhrase==QString::null) break; rc = ssh_userauth_autopubkey ( my_ssh_session, keyPhrase.toAscii() ); if(i++==2) { break; } } if ( rc != SSH_AUTH_SUCCESS ) { QString err=ssh_get_error ( my_ssh_session ); authErrors<getHomeDirectory() +"/.x2go/ssh/gen"; dr.mkpath ( keyPath ); QTemporaryFile fl ( keyPath+"/key" ); fl.open(); keyName=fl.fileName(); fl.setAutoRemove ( false ); QTextStream out ( &fl ); out<usleep(200); keyPhraseMutex.lock(); if(keyPhraseReady) ready=true; keyPhraseMutex.unlock(); if(ready) break; } } if(keyPhrase==QString::null) break; prkey=privatekey_from_file(my_ssh_session, keyName.toAscii(), 0,keyPhrase.toAscii()); if(i++==2) { break; } } if (!prkey) { #ifdef DEBUG x2goDebug<<"Failed to get private key from "<=0; --i ) { QStringList lst=copyRequests[i].dst.split ( "/" ); QString dstFile=lst.last(); lst.removeLast(); QString dstPath=lst.join ( "/" ); #ifdef DEBUG x2goDebug<<"dst path:"< "<=0; --i) { delete reverseTunnelConnections[i]; } reverseTunnelConnectionsMutex.unlock(); channelConnectionsMutex.lock(); #ifdef DEBUG x2goDebug<<"Deleting channel connections"<0 ) copy(); copyRequestMutex.unlock(); if ( reverseTunnel ) { ssh_channel newChan=channel_forward_accept ( my_ssh_session,0 ); if ( newChan ) { #ifdef DEBUG x2goDebug<<"new forward connection"<0 ) FD_SET ( tcpSocket, &rfds ); if ( channelConnections.at ( i ).channel==0l ) { #ifdef DEBUG x2goDebug<<"creating new channel"<0 ) { #ifdef DEBUG x2goDebug<<"forwarding new channel, local port: "<maxsock ) maxsock=tcpSocket; } channelConnectionsMutex.unlock(); retval=ssh_select ( read_chan,out_chan,maxsock+1,&rfds,&tv ); delete [] read_chan; delete [] out_chan; if ( retval == -1 ) { #ifdef DEBUG x2goDebug<<"select error\n"; #endif continue; } #ifdef DEBUG // x2goDebug<<"select exited"<=0; --i ) { int tcpSocket=channelConnections.at ( i ).sock; ssh_channel channel=channelConnections.at ( i ).channel; if ( channel==0l ) continue; if ( channel_poll ( channel,1 ) >0 ) { #ifdef DEBUG // x2goDebug<<"read err data from channel\n"; #endif nbytes = channel_read ( channel, buffer, sizeof ( buffer )-1, 1 ); emit stdErr ( channelConnections[i].creator, QByteArray ( buffer,nbytes ) ); #ifdef DEBUG // x2goDebug<0 ) { #ifdef DEBUG // x2goDebug<<"read data from channel "< 0 ) { if ( tcpSocket>0 ) { if ( send ( tcpSocket,buffer, nbytes,0 ) != nbytes ) { QString errMsg=tr ( "error writing to socket" ); #ifdef DEBUG x2goDebug<<"error writing "< 0 ) { if ( channel_write ( channel, buffer, nbytes ) !=nbytes ) { QString err=ssh_get_error ( my_ssh_session ); QString errorMsg=tr ( "channel_write failed" ); emit ioErr ( channelConnections[i].creator, errorMsg, err ); #ifdef DEBUG x2goDebug<0 ) { #ifndef Q_OS_WIN shutdown(tcpSocket, SHUT_RDWR); #endif close ( tcpSocket ); } SshProcess* proc=channelConnections[item].creator; channelConnections.removeAt ( item ); emit channelClosed ( proc ); } x2goclient-4.0.1.1/sshmasterconnection.h0000644000000000000000000001625612214040350015062 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef SSHMASTERCONNECTION_H #define SSHMASTERCONNECTION_H #include #include #include #include #include #include #include #include class ONMainWindow; class SshProcess; struct ChannelConnection { ssh_channel channel; int sock; SshProcess* creator; int forwardPort; int localPort; QString forwardHost; QString localHost; QString command; bool operator==(ChannelConnection& t) { return (channel==t.channel); } }; struct CopyRequest { SshProcess* creator; QString src; QString dst; }; class SshMasterConnection: public QThread { Q_OBJECT public: enum ProxyType {PROXYSSH, PROXYHTTP}; void run(); SshMasterConnection(QObject* parent, QString host, int port, bool acceptUnknownServers, QString user, QString pass, QString key, bool autologin, bool krblogin=false, bool useproxy=false, ProxyType type=PROXYSSH, QString proxyserver=QString::null, quint16 proxyport=0, QString proxylogin=QString::null, QString proxypassword=QString::null, QString proxyKey=QString::null, bool proxyAutologin=false); ~SshMasterConnection(); static void finalizeLibSsh(); void addChannelConnection(SshProcess* creator, int sock, QString forwardHost, int forwardPort, QString localHost, int localPort, void* channel=0l); void addChannelConnection(SshProcess* creator, QString cmd); void addCopyRequest(SshProcess* creator, QString src, QString dst); void writeKnownHosts(bool); void setKeyPhrase(QString); int executeCommand(const QString& command, QObject* receiver=0, const char* slotFinished=0); int startTunnel(const QString& forwardHost, uint forwardPort, const QString& localHost, uint localPort, bool reverse=false, QObject* receiver=0, const char* slotTunnelOk=0, const char* slotFinished=0); int copyFile(const QString& src, const QString dst, QObject* receiver=0, const char* slotFinished=0); QString getSourceFile(int pid); void setAcceptUnknownServers(bool accept) { acceptUnknownServers=accept; } SshMasterConnection* reverseTunnelConnection(SshProcess* creator, int remotePort, QString localHost, int localPort); QString getHost() { return host; } QString getUser() { return user; } int getPort() { return port; } bool useKerberos() { return kerberos; }; private: SshMasterConnection(QObject* parent, ONMainWindow* parWnd, QString host, int port, bool acceptUnknownServers, QString user, QString pass, QString key,bool autologin, int remotePort, QString localHost, int localPort, SshProcess* creator, bool useproxy=false, ProxyType type=PROXYSSH, QString proxyserver=QString::null, quint16 proxyport=0, QString proxylogin=QString::null, QString proxypassword=QString::null, QString proxyKey=QString::null, bool proxyAutologin=false, int localProxyPort=0); bool sshConnect(); bool userAuthWithPass(); bool userAuthAuto(); bool userAuthWithKey(); bool userAuth(); void channelLoop(); void finalize(int arg1); void copy(); int serverAuth(QString& errorMsg); #ifdef Q_OS_WIN void parseKnownHosts(); #endif private slots: void slotSshProxyServerAuthError ( int,QString, SshMasterConnection* ); void slotSshProxyServerAuthAborted (); void slotSshProxyUserAuthError ( QString ); void slotSshProxyConnectionError ( QString,QString ); void slotSshProxyConnectionOk(); void slotSshProxyTunnelOk(int); void slotSshProxyTunnelFailed(bool result, QString output, int); private: ssh_session my_ssh_session; QList channelConnections; QList copyRequests; QList reverseTunnelConnections; QMutex channelConnectionsMutex; QMutex copyRequestMutex; QMutex disconnectFlagMutex; QMutex reverseTunnelConnectionsMutex; QMutex writeHostKeyMutex; bool writeHostKey; bool writeHostKeyReady; int nextPid; QList processes; QString keyPhrase; bool keyPhraseReady; QMutex keyPhraseMutex; QString host; int port; QString user; QString pass; QString key; bool useproxy; QString proxyserver; quint16 proxyport; QString proxylogin; QString proxypassword; ProxyType proxytype; bool proxyautologin; QString proxykey; QStringList authErrors; bool autologin; bool disconnectSessionFlag; bool reverseTunnel; int reverseTunnelRemotePort; int localProxyPort; int reverseTunnelLocalPort; bool acceptUnknownServers; QString reverseTunnelLocalHost; SshProcess* reverseTunnelCreator; ONMainWindow* mainWnd; bool kerberos; QString sshProcErrString; QTcpSocket *tcpProxySocket; QNetworkProxy *tcpNetworkProxy; SshMasterConnection* sshProxy; bool sshProxyReady; bool breakLoop; signals: void stdErr(SshProcess* caller, QByteArray data); void stdOut(SshProcess* caller, QByteArray data); void ioErr(SshProcess* caller, QString error, QString lastSessionError); void copyErr(SshProcess* caller, QString error, QString lastSessionError); void copyOk(SshProcess* caller); void channelClosed(SshProcess* caller); void connectionError(QString message, QString lastSessionError); void serverAuthError(int errCode, QString lastSessionError, SshMasterConnection*); void serverAuthAborted(); void userAuthError(QString error); void newReverceTunnelConnection(SshProcess* creator, void* newChannel); void reverseListenOk(SshProcess* creator); void connectionOk( QString host); void needPassPhrase(SshMasterConnection*); }; #endif // SSHMASTERCONNECTION_H x2goclient-4.0.1.1/sshprocess.cpp0000644000000000000000000001564412214040350013520 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "x2goclientconfig.h" #include "x2gologdebug.h" #include "sshmasterconnection.h" #include "sshprocess.h" #include #ifndef Q_OS_WIN #include #include #endif #undef DEBUG // #define DEBUG SshProcess::SshProcess(SshMasterConnection* master, int pid): QObject(0) { masterCon=master; serverSocket=0; connect(master,SIGNAL(stdErr(SshProcess*,QByteArray)),this,SLOT(slotStdErr(SshProcess*,QByteArray))); connect(master,SIGNAL(ioErr(SshProcess*,QString,QString)),this,SLOT(slotIOerr(SshProcess*,QString,QString))); tunnel=false; normalExited=true; this->pid=pid; } SshProcess::~SshProcess() { #ifdef DEBUG x2goDebug<<"ssh process destructor"; #endif if (serverSocket>0) { #ifdef Q_OS_WIN closesocket(serverSocket); WSACleanup(); #else close(serverSocket); #endif } } void SshProcess::slotCheckNewConnection() { fd_set rfds; struct timeval tv; tv.tv_sec = 0; tv.tv_usec = 0; FD_ZERO(&rfds); FD_SET(serverSocket, &rfds); if (select(serverSocket+1,&rfds,NULL,NULL,&tv)<=0) return; #ifdef DEBUG x2goDebug<<"new tcp connection\n"; #endif int tcpSocket=accept(serverSocket, (struct sockaddr*)&address,&addrlen); #ifdef DEBUG x2goDebug<<"new socket:"<addChannelConnection(this, tcpSocket, forwardHost, forwardPort, localHost, ntohs(address.sin_port)); } void SshProcess::tunnelLoop() { serverSocket=socket(AF_INET, SOCK_STREAM, 0); if (serverSocket<=0) { QString err=tr("Error creating socket"); x2goDebug<start(100); emit sshTunnelOk(pid); #ifdef DEBUG x2goDebug<<"Direct tunnel: waiting for connections on "<addChannelConnection(this, shcmd); connect(masterCon,SIGNAL(stdOut(SshProcess*,QByteArray)),this,SLOT(slotStdOut(SshProcess*,QByteArray))); connect(masterCon,SIGNAL(channelClosed(SshProcess*)), this,SLOT(slotChannelClosed(SshProcess*))); } void SshProcess::start_cp(QString src, QString dst) { connect(masterCon, SIGNAL(copyErr(SshProcess*,QString,QString)), this, SLOT(slotCopyErr(SshProcess*,QString,QString))); connect(masterCon, SIGNAL(copyOk(SshProcess*)), this,SLOT(slotCopyOk(SshProcess*))); scpSource=src; masterCon->addCopyRequest(this,src,dst); } void SshProcess::startTunnel(const QString& forwardHost, uint forwardPort, const QString& localHost, uint localPort, bool reverse) { this->forwardHost=forwardHost; this->forwardPort=forwardPort; this->localHost=localHost; this->localPort=localPort; tunnel=true; if (!reverse) tunnelLoop(); else { connect(masterCon, SIGNAL(reverseListenOk(SshProcess*)), this, SLOT(slotReverseTunnelOk(SshProcess*))); tunnelConnection=masterCon->reverseTunnelConnection(this, forwardPort, localHost, localPort); } } void SshProcess::slotStdErr(SshProcess* creator, QByteArray data) { if (creator!=this) return; #ifdef DEBUG x2goDebug<<"new err data:"<0 ) { normalExited=false; output=stdErrString; #ifdef DEBUG x2goDebug<<"have only stderr, something must be wrong"<, (C) 2006 // // Copyright: See COPYING file that comes with this distribution // // #include "x2goclientconfig.h" #include "sshprocess.h" #include #include "x2gologdebug.h" #include #include #include #include #include #include #ifdef Q_OS_WIN #include "wapi.h" #endif #include "onmainwindow.h" sshProcess::sshProcess ( QObject* parent, const SshProxy* proxy, const QString& user, const QString& host,const QString& pt, const QString& cmd,const QString& pass, const QString& key, bool acc ) : QProcess ( parent ) { sudoErr=false; QString root=((ONMainWindow*)parent)->getHomeDirectory() +"/.x2go"; isTunnel=false; isCopy=false; fwX=false; sshPort=pt; localSocket=0l; serverSocket=0l; this->user=user; this->host=host; command=cmd; this->pass=pass; this->key=key; autoAccept=acc; env = QProcess::systemEnvironment(); cleanEnv ( true ); #ifdef Q_OS_DARWIN //run x2goclient from bundle QDir dir ( QApplication::applicationDirPath() ); dir.cdUp(); dir.cd ( "MacOS" ); QString askpass_var="SSH_ASKPASS="; askpass_var+=dir.absolutePath() +"/x2goclient"; env.insert ( 0, askpass_var ); #else env.insert ( 0, "SSH_ASKPASS=x2goclient" ); #endif askpass=root+"/ssh"; QDir dr ( askpass ); if ( !dr.exists() ) if ( !dr.mkpath ( askpass ) ) { QString message=tr ( "Unable to create: " ); message+=askpass; throw message; } #ifdef Q_OS_WIN env.insert ( 0, "DISPLAY=localhost:0" ); //don't care if real display is not 0 //we need it only to start askpass //which is not X application askpass=wapiShortFileName ( askpass ); extraOptions=" -o UserKnownHostsFile=\""+ askpass +"/known_hosts\" -o ServerAliveInterval=300 "; #else extraOptions=" -o ServerAliveInterval=300 "; #endif if ( proxy->use ) { extraOptions+=" -o ProxyCommand=\""+proxy->bin+" "+ user+"@"+proxy->host+" -p "+proxy->port+"\" "; } askpass+="/socaskpass-XXXXXX"; QTemporaryFile fl ( askpass ); if ( !fl.open() ) { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Cannot create temporary file" ) ); } askpass=fl.fileName(); fl.setAutoRemove ( false ); fl.close(); QFile::remove ( askpass ); env.insert ( 0, "X2GO_PSOCKET="+askpass ); setEnvironment ( env ); } sshProcess::~sshProcess() { QFile::remove ( askpass ); QFile::remove ( askpass+".log" ); if ( state() ==QProcess::Running ) kill(); if ( serverSocket ) { serverSocket->close(); delete serverSocket; } } void sshProcess::slot_error ( QProcess::ProcessError ) {} void sshProcess::slot_finished ( int exitCode, QProcess::ExitStatus status ) { hidePass(); /* x2goDebug<listen ( askpass ) ) { QFile fl ( askpass ); fl.setPermissions ( QFile::ReadOwner|QFile::WriteOwner ); cleanEnv(); passcookie=cookie(); env.insert ( 0, "X2GO_PCOOKIE="+passcookie ); if ( accept ) env.insert ( 0, "X2GO_PACCEPT=yes" ); else env.insert ( 0, "X2GO_PACCEPT=no" ); setEnvironment ( env ); connect ( serverSocket,SIGNAL ( newConnection() ), this,SLOT ( slot_pass_connection() ) ); } else { x2goDebug<<"listen server socket error!!: "<close(); delete serverSocket; serverSocket=0l; } if ( QFile::exists ( askpass ) ) QFile::remove ( askpass ); } void sshProcess::startTunnel ( QString h,QString lp, QString rp,bool rev,bool accept ) { if(!rev) x2goDebug<<"tunnel :"<=0;--i ) { if ( all ) { if ( ( env[i].indexOf ( "X2GO_PCOOKIE" ) !=-1 ) || ( env[i].indexOf ( "X2GO_PACCEPT" ) !=-1 ) || ( env[i].indexOf ( "GPG_AGENT_INFO" ) !=-1 ) || ( env[i].indexOf ( "SSH_AUTH_SOCK" ) !=-1 ) || ( env[i].indexOf ( "SSH_AGENT_PID" ) !=-1 ) ) { env.removeAt ( i ); } } else { if ( ( env[i].indexOf ( "X2GO_PCOOKIE" ) !=-1 ) || ( env[i].indexOf ( "X2GO_PACCEPT" ) !=-1 ) ) { env.removeAt ( i ); } } } } void sshProcess::slot_pass_connection() { if ( localSocket ) delete localSocket; localSocket=serverSocket->nextPendingConnection (); if ( localSocket ) { connect ( localSocket,SIGNAL ( readyRead() ),this, SLOT ( slot_read_cookie_from_socket() ) ); } } void sshProcess::slot_read_cookie_from_socket() { char buffer[140]; int read=localSocket->read ( buffer,139 ); if ( read<=0 ) { QString message="Cannot get cookie from askpass program"; throw message; } buffer[read]=0; QString cookie ( buffer ); if ( cookie!=passcookie ) { QString message="Got wrong cookie from askpass program"; throw message; } localSocket->write ( pass.toAscii().data(),pass.toAscii().length() ); QTimer::singleShot ( 100, this, SLOT ( hidePass() ) ); } void sshProcess::setEnvironment ( QStringList newEnv ) { env+=newEnv; QProcess::setEnvironment ( env ); } x2goclient-4.0.1.1/sshprocess.h0000644000000000000000000000565312214040350013164 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef SSHPROCESS_H #define SSHPROCESS_H #include #include #ifndef Q_OS_WIN #include #endif #include "sshmasterconnection.h" class SshProcess : public QObject { Q_OBJECT friend class SshMasterConnection; private: SshProcess(SshMasterConnection* master, int pid); ~SshProcess(); void startNormal(const QString& cmd); void startTunnel(const QString& forwardHost, uint forwardPort, const QString& localHost, uint localPort, bool reverse=false); void start_cp(QString src, QString dst); QString getSource() { return scpSource; } void tunnelLoop(); private: SshMasterConnection* masterCon; SshMasterConnection* tunnelConnection; int pid; QString forwardHost; QString localHost; QString command; QString scpSource; quint16 forwardPort; quint16 localPort; uint serverSocket; struct sockaddr_in address; #ifndef Q_OS_WIN socklen_t addrlen; #else int addrlen; #endif QString stdOutString; QString stdErrString; QString abortString; bool tunnel; bool normalExited; private slots: void slotCheckNewConnection(); void slotStdErr(SshProcess* creator, QByteArray data); void slotStdOut(SshProcess* creator, QByteArray data); void slotIOerr(SshProcess* creator,QString message, QString sshSessionErr); void slotChannelClosed(SshProcess* creator); void slotReverseTunnelOk(SshProcess* creator); void slotCopyOk(SshProcess* creator); void slotCopyErr(SshProcess* creator,QString message, QString sshSessionErr); signals: void sshFinished ( bool result, QString output, int processId); void sshTunnelOk(int processId); }; #endif // SSHPROCESS_H x2goclient-4.0.1.1/sshprocess.h.bc0000644000000000000000000000440612214040350013542 0ustar // // C++ Interface: sshprocess // // Description: // // // Author: Oleksandr Shneyder , (C) 2006 // // Copyright: See COPYING file that comes with this distribution // // #include "x2goclientconfig.h" #ifndef SSHPROCESS_H #define SSHPROCESS_H #include /** @author Oleksandr Shneyder */ class QLocalServer; class QLocalSocket; struct SshProxy; class sshProcess : public QProcess { Q_OBJECT public: sshProcess ( QObject* parent, const SshProxy* proxy, const QString& user, const QString& host,const QString& pt, const QString& cmd, const QString& pass, const QString& key=QString::null, bool acc=false ); virtual ~sshProcess(); void startNormal ( bool accept=false ); QString getResponce(); void startTunnel ( QString host,QString localPort,QString remotePort, bool reverse=false,bool accept=false ); void start_cp ( QString src, QString dst, bool accept=false ); QString getSource() {return source;} QString setsid(); void setErrorString ( const QString& str ); void setFwX ( bool s ) {fwX=s;} virtual void setEnvironment ( QStringList newEnv ); private: QString askpass; QString user; QString host; QString command; QString pass; QString key; QString errorString; QString outputString; QString passcookie; QLocalServer* serverSocket; QLocalSocket* localSocket; bool needPass; bool autoAccept; bool isTunnel; bool isCopy; QString sshPort; QString tunnelHost; QString localPort; QString source; QString destination; QString remotePort; QStringList env; bool reverse; bool fwX; bool sudoErr; QString extraOptions; private slots: void slot_error ( QProcess::ProcessError ); void slot_finished ( int, QProcess::ExitStatus ); void slot_stderr(); void slot_stdout(); void hidePass(); void slot_pass_connection(); void slot_read_cookie_from_socket(); private: void printPass ( bool accept=false ); void printKey ( bool accept=false ); QString cookie(); void cleanEnv ( bool all=false ); signals: void sshFinished ( bool,QString,sshProcess* ); void sudoConfigError ( QString,sshProcess* ); void sshTunnelOk(); }; #endif x2goclient-4.0.1.1/svg/bg-anim.svg0000644000000000000000000000600012214040350013434 0ustar x2goclient-4.0.1.1/svg/bg_hildon.svg0000644000000000000000000004056412214040350014064 0ustar image/svg+xml x2goclient-4.0.1.1/svg/bg.svg0000644000000000000000000001420312214040350012516 0ustar image/svg+xml x2goclient-4.0.1.1/SVGFrame.cpp0000644000000000000000000000766412214040350012741 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "SVGFrame.h" #include "x2goclientconfig.h" #include #include #include "x2gologdebug.h" #include SVGFrame::SVGFrame ( QString fname,bool st,QWidget* parent, Qt::WFlags f ) :QFrame ( parent,f ) { empty=false; #ifdef Q_OS_WIN parentWidget=0; #endif if ( fname==QString::null ) empty=true; if ( !empty ) { repaint=true; drawImg=st; renderer=new QSvgRenderer ( this ); renderer->load ( fname ); if ( drawImg ) { setAutoFillBackground ( true ); QPalette pal=palette(); QImage img ( renderer->defaultSize(), QImage::Format_ARGB32_Premultiplied ); QPainter p ( &img ); renderer->render ( &p ); pal.setBrush ( QPalette::Window,QBrush ( QPixmap::fromImage ( img ) ) ); setPalette ( pal ); } else { QTimer *timer = new QTimer ( this ); connect ( timer, SIGNAL ( timeout() ), this, SLOT ( update() ) ); if ( renderer->animated() ) { timer->start ( 1000/renderer->framesPerSecond() ); x2goDebug<<"Animated, fps:"<framesPerSecond() <render ( &p ); } QFrame::paintEvent ( event ); } void SVGFrame::resizeEvent ( QResizeEvent* event ) { QFrame::resizeEvent ( event ); emit resized ( event->size() ); if ( drawImg && event->size().width() >0 && event->size().height() >0 &&!empty ) { QPalette pal=palette(); QImage img ( event->size(),QImage::Format_ARGB32_Premultiplied ); QPainter p ( &img ); if ( p.isActive() ) renderer->render ( &p ); pal.setBrush ( QPalette::Window,QBrush ( QPixmap::fromImage ( img ) ) ); setPalette ( pal ); } } QSize SVGFrame::sizeHint() const { if ( !empty ) return renderer->defaultSize(); return QFrame::sizeHint(); } void SVGFrame::loadBg ( QString fl ) { renderer->load ( fl ); update(); } #ifdef Q_OS_WIN #include "wapi.h" void SVGFrame::mousePressEvent ( QMouseEvent * event ) { /* if ( isVisible() ) { int vBorder; int hBorder; int barHeight; if ( parentWidget ) wapiGetBorders ( parentWidget->winId(), vBorder, hBorder, barHeight ); x2goDebug<<"svg frame: "<pos() << ":"<pos() ) <<":"<type(), QPoint(0,0), event->button(), event-> buttons(), event->modifiers()); QFrame::mousePressEvent ( nevent ); return; }*/ QFrame::mousePressEvent ( event ); } #endif x2goclient-4.0.1.1/SVGFrame.h0000644000000000000000000000404112214040350012370 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef SVGFRAME_H #define SVGFRAME_H #include "x2goclientconfig.h" #include #include class SVGFrame: public QFrame { Q_OBJECT public: SVGFrame ( QString fname, bool st, QWidget* parent=0, Qt::WFlags f=0 ); SVGFrame ( QWidget* parent=0, Qt::WFlags f=0 ); void setRepaintable ( bool val ) { repaint=val; } void loadBg ( QString fl ); virtual QSize sizeHint() const; private: QSvgRenderer* renderer; bool repaint; bool drawImg; bool empty; protected: virtual void paintEvent ( QPaintEvent* event ); virtual void resizeEvent ( QResizeEvent* event ); #ifdef Q_OS_WIN virtual void mousePressEvent ( QMouseEvent * event ); private: QWidget* parentWidget; public: void setMainWidget ( QWidget* widg ) { parentWidget=widg; } #endif signals: void resized ( const QSize ); }; #endif x2goclient-4.0.1.1/svg/line.svg0000644000000000000000000000460112214040350013056 0ustar image/svg+xml x2goclient-4.0.1.1/svg/macinstaller_background.svg0000644000000000000000000005616212214040350017015 0ustar image/svg+xml x2goclient x2goclient-4.0.1.1/svg/onlogo.svg0000644000000000000000000000762212214040350013432 0ustar image/svg+xml x2goclient-4.0.1.1/svg/passform.svg0000644000000000000000000001212212214040350013756 0ustar image/svg+xml x2goclient-4.0.1.1/svg/sessionbut_grey.svg0000644000000000000000000000330312214040350015351 0ustar image/svg+xml x2goclient-4.0.1.1/svg/sessionbut.svg0000644000000000000000000001614512214040350014333 0ustar image/svg+xml x2goclient-4.0.1.1/svg/unity.svg0000644000000000000000000001154112214040350013300 0ustar x2goclient-4.0.1.1/svg/x2gologo.svg0000644000000000000000000002220412214040350013666 0ustar image/svg+xml x2goclient-4.0.1.1/svg/xfce.svg0000644000000000000000000010675612214040350013072 0ustar image/svg+xml x2goclient-4.0.1.1/trayicon-1.patch0000644000000000000000000001662412214040350013626 0ustar diff -rupN /tmp/x2goclient-3.01/configdialog.cpp x2goclient-3.01/configdialog.cpp --- /tmp/x2goclient-3.01/configdialog.cpp 2009-11-26 23:22:51.000000000 +0100 +++ x2goclient-3.01/configdialog.cpp 2011-01-21 17:49:11.000000000 +0100 @@ -54,6 +54,10 @@ ConfigDialog::ConfigDialog ( QWidget * p st.beginGroup ( "settings" ); #endif + trayIconEnabledEdit = new QCheckBox ( tr ( "Minimize to tray after establishing connection" ) ); + trayIconEnabledEdit->setChecked ( st.value ( "trayEnabled", false ).toBool() ); + frLay->addWidget(trayIconEnabledEdit); + #ifdef USELDAP if ( !embedMode ) { @@ -328,6 +332,8 @@ void ConfigDialog::slot_accepted() st.beginGroup ( "settings" ); #endif + st.setValue ( "trayEnabled", trayIconEnabledEdit->isChecked() ); + #ifdef USELDAP if ( !embedMode ) { diff -rupN /tmp/x2goclient-3.01/configdialog.h x2goclient-3.01/configdialog.h --- /tmp/x2goclient-3.01/configdialog.h 2009-11-10 22:38:21.000000000 +0100 +++ x2goclient-3.01/configdialog.h 2011-01-21 17:45:17.000000000 +0100 @@ -77,6 +77,8 @@ class ConfigDialog : public QDialog ConnectionWidget* conWidg; SettingsWidget* setWidg; + QCheckBox *trayIconEnabledEdit; + public slots: void slot_accepted(); void slot_checkOkStat(); diff -rupN /tmp/x2goclient-3.01/onmainwindow.cpp x2goclient-3.01/onmainwindow.cpp --- /tmp/x2goclient-3.01/onmainwindow.cpp 2009-11-27 23:55:06.000000000 +0100 +++ x2goclient-3.01/onmainwindow.cpp 2011-01-21 17:57:02.000000000 +0100 @@ -388,6 +383,34 @@ ONMainWindow::ONMainWindow ( QWidget *pa SLOT ( slot_resize ( const QSize ) ) ); slot_resize ( fr->size() ); + + if(!trayEnabled){ + trayIconActiveConnectionMenu = NULL; + trayIconConnectionMenu = NULL; + trayIcon = NULL; + } + else{ + // setup the tray icon context menu + QMenu *trayIconMenu = new QMenu(this); + trayIconMenu->addAction(tr("Open client"), + this, SLOT(show())); + trayIconActiveConnectionMenu = trayIconMenu->addMenu(tr("Active connections")); + trayIconConnectionMenu = trayIconMenu->addMenu(tr("Open connection")); + + trayIconMenu->addSeparator(); + trayIconMenu->addAction(tr("Quit"), + this, SLOT(trayQuit())); + + // setup the tray icon itself + trayIcon = new QSystemTrayIcon(this); + connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), + this, SLOT(trayIconActivated(QSystemTrayIcon::ActivationReason))); + connect(trayIcon, SIGNAL(messageClicked()), this, SLOT(trayMessageClicked())); + trayIcon->setContextMenu(trayIconMenu); + trayIcon->setIcon(QIcon ( ":icons/128x128/x2go.png") ); + trayIcon->setToolTip(tr("Left click to open the X2GoClient window or right click to get the context menu.")); + trayIcon->show(); + } } ONMainWindow::~ONMainWindow() @@ -587,7 +610,7 @@ void ONMainWindow::initWidgetsNormal() connect ( act_edit,SIGNAL ( triggered ( bool ) ),this, SLOT ( slot_manage() ) ); connect ( act_exit,SIGNAL ( triggered ( bool ) ),this, - SLOT ( close() ) ); + SLOT ( trayQuit() ) ); connect ( act_tb,SIGNAL ( toggled ( bool ) ),this, SLOT ( displayToolBar ( bool ) ) ); stb=addToolBar ( tr ( "Show toolbar" ) ); @@ -746,6 +769,26 @@ void ONMainWindow::slot_resize ( const Q void ONMainWindow::closeEvent ( QCloseEvent* event ) { + // do not exit application, if tray icon is visible + if(!trayIcon || !trayIcon->isVisible()){ + trayQuit(); + } + else{ +// if(!trayQuitInfoShown){ +// QMessageBox::information(this, windowTitle(), +// tr("The program will keep running in the " +// "system tray. To terminate the program, " +// "choose Quit in the context menu " +// "of the system tray entry.")); +// trayQuitInfoShown = true; +// } + hide(); + event->ignore(); + } +} + +void ONMainWindow::trayQuit() +{ if ( !startMaximized && !startHidden && !embedMode ) { #ifndef Q_OS_WIN @@ -761,9 +804,9 @@ void ONMainWindow::closeEvent ( QCloseEv st.setValue ( "mainwindow/pos",QVariant ( pos() ) ); st.setValue ( "mainwindow/maximized", QVariant ( isMaximized() ) ); +// st.setValue ( "trayQuitInfoShown", trayQuitInfoShown); st.sync(); } - QMainWindow::closeEvent ( event ); if ( nxproxy!=0l ) { if ( nxproxy->state() ==QProcess::Running ) @@ -823,6 +866,10 @@ void ONMainWindow::closeEvent ( QCloseEv closeEmbedWidget(); #endif } + + // is used, because closeEvent() only hides the window + // because of the QSystemTrayIcon + qApp->quit(); } void ONMainWindow::loadSettings() @@ -875,6 +922,9 @@ void ONMainWindow::loadSettings() #endif showToolBar=st1.value ( "toolbar/show", ( QVariant ) true ).toBool(); + // tray stuff + trayEnabled = st1.value( "trayEnabled", false ).toBool(); +// trayQuitInfoShown = st1.value( "trayQuitInfoShown", false ).toBool(); } QString ONMainWindow::iconsPath ( QString fname ) { @@ -2135,6 +2185,7 @@ bool ONMainWindow::startSession ( const slot_listSessions ( false,message,0 ); return false; } + return true; } @@ -3517,6 +3568,9 @@ void ONMainWindow::slot_retResumeSess ( } } } + + if(trayEnabled) + hide(); } @@ -7957,3 +8011,28 @@ void ONMainWindow::slotHideEmbedToolBarT showTbTooltip=false; QToolTip::hideText(); } + +void ONMainWindow::trayIconActivated(QSystemTrayIcon::ActivationReason reason ) +{ + switch(reason){ +// use single left click on unix +// and double click on windows (Is it standard behaviour conform?) +#ifdef Q_OS_UNIX + case QSystemTrayIcon::Trigger: +#else + case QSystemTrayIcon::DoubleClick: +#endif + if(isVisible()) + hide(); + else + show(); + break; + default: + break; + } +} + +void ONMainWindow::trayMessageClicked() +{ + +} diff -rupN /tmp/x2goclient-3.01/onmainwindow.h x2goclient-3.01/onmainwindow.h --- /tmp/x2goclient-3.01/onmainwindow.h 2009-11-26 22:20:26.000000000 +0100 +++ x2goclient-3.01/onmainwindow.h 2011-01-21 17:29:01.000000000 +0100 @@ -30,6 +30,7 @@ #include "LDAPSession.h" #include "embedwidget.h" #include +#include #ifdef Q_OS_WIN #include @@ -58,6 +59,7 @@ class QModelIndex; class sshProcess; class IMGFrame; class QStandardItemModel; +class QMenu; struct user { int uin; @@ -507,6 +509,13 @@ class ONMainWindow : public QMainWindow QString defaultSessionId; QString defaultUserName; bool defaultUser; + + // Tray icon stuff + QSystemTrayIcon *trayIcon; + QMenu *trayIconActiveConnectionMenu, *trayIconConnectionMenu; + bool trayEnabled; +// bool trayQuitInfoShown; + SessionButton* createBut ( const QString& id ); void placeButtons(); QString getKdeIconsPath(); @@ -563,6 +572,23 @@ class ONMainWindow : public QMainWindow void displayToolBar ( bool ); void showSessionStatus(); + // tray icon stuff + /** + * @brief Is called when clicked on the QSystemTrayIcon. + */ + void trayIconActivated(QSystemTrayIcon::ActivationReason reason); + /** + * @brief Is called when a message from QSystemTrayIcon is clicked. + */ + void trayMessageClicked(); + /** + * @brief Is called when Quit from context menu of QSystemTrayIcon is clicked. + * + * Prepares everything to quit the application. It has the functionality of + * the old (before QSystemTrayIcon is used) closeEvent() function. + */ + void trayQuit(); + public slots: void slot_config(); void slotNewSession();x2goclient-4.0.1.1/txt/encodings0000644000000000000000000003224212214040350013324 0ustar 437// 500// 500V1// 850// 851// 852// 855// 856// 857// 860// 861// 862// 863// 864// 865// 866// 866NAV// 869// 874// 904// 1026// 1046// 1047// 8859_1// 8859_2// 8859_3// 8859_4// 8859_5// 8859_6// 8859_7// 8859_8// 8859_9// 10646-1:1993// 10646-1:1993/UCS4/ ANSI_X3.4-1968// ANSI_X3.4-1986// ANSI_X3.4// ANSI_X3.110-1983// ANSI_X3.110// ARABIC// ARABIC7// ARMSCII-8// ASCII// ASMO-708// ASMO_449// BALTIC// BIG-5// BIG-FIVE// BIG5-HKSCS// BIG5// BIG5HKSCS// BIGFIVE// BRF// BS_4730// CA// CN-BIG5// CN-GB// CN// CP-AR// CP-GR// CP-HU// CP037// CP038// CP273// CP274// CP275// CP278// CP280// CP281// CP282// CP284// CP285// CP290// CP297// CP367// CP420// CP423// CP424// CP437// CP500// CP737// CP775// CP803// CP813// CP819// CP850// CP851// CP852// CP855// CP856// CP857// CP860// CP861// CP862// CP863// CP864// CP865// CP866// CP866NAV// CP868// CP869// CP870// CP871// CP874// CP875// CP880// CP891// CP901// CP902// CP903// CP904// CP905// CP912// CP915// CP916// CP918// CP920// CP921// CP922// CP930// CP932// CP933// CP935// CP936// CP937// CP939// CP949// CP950// CP1004// CP1008// CP1025// CP1026// CP1046// CP1047// CP1070// CP1079// CP1081// CP1084// CP1089// CP1097// CP1112// CP1122// CP1123// CP1124// CP1125// CP1129// CP1130// CP1132// CP1133// CP1137// CP1140// CP1141// CP1142// CP1143// CP1144// CP1145// CP1146// CP1147// CP1148// CP1149// CP1153// CP1154// CP1155// CP1156// CP1157// CP1158// CP1160// CP1161// CP1162// CP1163// CP1164// CP1166// CP1167// CP1250// CP1251// CP1252// CP1253// CP1254// CP1255// CP1256// CP1257// CP1258// CP1282// CP1361// CP1364// CP1371// CP1388// CP1390// CP1399// CP4517// CP4899// CP4909// CP4971// CP5347// CP9030// CP9066// CP9448// CP10007// CP12712// CP16804// CPIBM861// CSA7-1// CSA7-2// CSASCII// CSA_T500-1983// CSA_T500// CSA_Z243.4-1985-1// CSA_Z243.4-1985-2// CSA_Z243.419851// CSA_Z243.419852// CSDECMCS// CSEBCDICATDE// CSEBCDICATDEA// CSEBCDICCAFR// CSEBCDICDKNO// CSEBCDICDKNOA// CSEBCDICES// CSEBCDICESA// CSEBCDICESS// CSEBCDICFISE// CSEBCDICFISEA// CSEBCDICFR// CSEBCDICIT// CSEBCDICPT// CSEBCDICUK// CSEBCDICUS// CSEUCKR// CSEUCPKDFMTJAPANESE// CSGB2312// CSHPROMAN8// CSIBM037// CSIBM038// CSIBM273// CSIBM274// CSIBM275// CSIBM277// CSIBM278// CSIBM280// CSIBM281// CSIBM284// CSIBM285// CSIBM290// CSIBM297// CSIBM420// CSIBM423// CSIBM424// CSIBM500// CSIBM803// CSIBM851// CSIBM855// CSIBM856// CSIBM857// CSIBM860// CSIBM863// CSIBM864// CSIBM865// CSIBM866// CSIBM868// CSIBM869// CSIBM870// CSIBM871// CSIBM880// CSIBM891// CSIBM901// CSIBM902// CSIBM903// CSIBM904// CSIBM905// CSIBM918// CSIBM921// CSIBM922// CSIBM930// CSIBM932// CSIBM933// CSIBM935// CSIBM937// CSIBM939// CSIBM943// CSIBM1008// CSIBM1025// CSIBM1026// CSIBM1097// CSIBM1112// CSIBM1122// CSIBM1123// CSIBM1124// CSIBM1129// CSIBM1130// CSIBM1132// CSIBM1133// CSIBM1137// CSIBM1140// CSIBM1141// CSIBM1142// CSIBM1143// CSIBM1144// CSIBM1145// CSIBM1146// CSIBM1147// CSIBM1148// CSIBM1149// CSIBM1153// CSIBM1154// CSIBM1155// CSIBM1156// CSIBM1157// CSIBM1158// CSIBM1160// CSIBM1161// CSIBM1163// CSIBM1164// CSIBM1166// CSIBM1167// CSIBM1364// CSIBM1371// CSIBM1388// CSIBM1390// CSIBM1399// CSIBM4517// CSIBM4899// CSIBM4909// CSIBM4971// CSIBM5347// CSIBM9030// CSIBM9066// CSIBM9448// CSIBM12712// CSIBM16804// CSIBM11621162// CSISO4UNITEDKINGDOM// CSISO10SWEDISH// CSISO11SWEDISHFORNAMES// CSISO14JISC6220RO// CSISO15ITALIAN// CSISO16PORTUGESE// CSISO17SPANISH// CSISO18GREEK7OLD// CSISO19LATINGREEK// CSISO21GERMAN// CSISO25FRENCH// CSISO27LATINGREEK1// CSISO49INIS// CSISO50INIS8// CSISO51INISCYRILLIC// CSISO58GB1988// CSISO60DANISHNORWEGIAN// CSISO60NORWEGIAN1// CSISO61NORWEGIAN2// CSISO69FRENCH// CSISO84PORTUGUESE2// CSISO85SPANISH2// CSISO86HUNGARIAN// CSISO88GREEK7// CSISO89ASMO449// CSISO90// CSISO92JISC62991984B// CSISO99NAPLPS// CSISO103T618BIT// CSISO111ECMACYRILLIC// CSISO121CANADIAN1// CSISO122CANADIAN2// CSISO139CSN369103// CSISO141JUSIB1002// CSISO143IECP271// CSISO150// CSISO150GREEKCCITT// CSISO151CUBA// CSISO153GOST1976874// CSISO646DANISH// CSISO2022CN// CSISO2022JP// CSISO2022JP2// CSISO2022KR// CSISO2033// CSISO5427CYRILLIC// CSISO5427CYRILLIC1981// CSISO5428GREEK// CSISO10367BOX// CSISOLATIN1// CSISOLATIN2// CSISOLATIN3// CSISOLATIN4// CSISOLATIN5// CSISOLATIN6// CSISOLATINARABIC// CSISOLATINCYRILLIC// CSISOLATINGREEK// CSISOLATINHEBREW// CSKOI8R// CSKSC5636// CSMACINTOSH// CSNATSDANO// CSNATSSEFI// CSN_369103// CSPC8CODEPAGE437// CSPC775BALTIC// CSPC850MULTILINGUAL// CSPC862LATINHEBREW// CSPCP852// CSSHIFTJIS// CSUCS4// CSUNICODE// CSWINDOWS31J// CUBA// CWI-2// CWI// CYRILLIC// DE// DEC-MCS// DEC// DECMCS// DIN_66003// DK// DS2089// DS_2089// E13B// EBCDIC-AT-DE-A// EBCDIC-AT-DE// EBCDIC-BE// EBCDIC-BR// EBCDIC-CA-FR// EBCDIC-CP-AR1// EBCDIC-CP-AR2// EBCDIC-CP-BE// EBCDIC-CP-CA// EBCDIC-CP-CH// EBCDIC-CP-DK// EBCDIC-CP-ES// EBCDIC-CP-FI// EBCDIC-CP-FR// EBCDIC-CP-GB// EBCDIC-CP-GR// EBCDIC-CP-HE// EBCDIC-CP-IS// EBCDIC-CP-IT// EBCDIC-CP-NL// EBCDIC-CP-NO// EBCDIC-CP-ROECE// EBCDIC-CP-SE// EBCDIC-CP-TR// EBCDIC-CP-US// EBCDIC-CP-WT// EBCDIC-CP-YU// EBCDIC-CYRILLIC// EBCDIC-DK-NO-A// EBCDIC-DK-NO// EBCDIC-ES-A// EBCDIC-ES-S// EBCDIC-ES// EBCDIC-FI-SE-A// EBCDIC-FI-SE// EBCDIC-FR// EBCDIC-GREEK// EBCDIC-INT// EBCDIC-INT1// EBCDIC-IS-FRISS// EBCDIC-IT// EBCDIC-JP-E// EBCDIC-JP-KANA// EBCDIC-PT// EBCDIC-UK// EBCDIC-US// EBCDICATDE// EBCDICATDEA// EBCDICCAFR// EBCDICDKNO// EBCDICDKNOA// EBCDICES// EBCDICESA// EBCDICESS// EBCDICFISE// EBCDICFISEA// EBCDICFR// EBCDICISFRISS// EBCDICIT// EBCDICPT// EBCDICUK// EBCDICUS// ECMA-114// ECMA-118// ECMA-128// ECMA-CYRILLIC// ECMACYRILLIC// ELOT_928// ES// ES2// EUC-CN// EUC-JISX0213// EUC-JP-MS// EUC-JP// EUC-KR// EUC-TW// EUCCN// EUCJP-MS// EUCJP-OPEN// EUCJP-WIN// EUCJP// EUCKR// EUCTW// FI// FR// GB// GB2312// GB13000// GB18030// GBK// GB_1988-80// GB_198880// GEORGIAN-ACADEMY// GEORGIAN-PS// GOST_19768-74// GOST_19768// GOST_1976874// GREEK-CCITT// GREEK// GREEK7-OLD// GREEK7// GREEK7OLD// GREEK8// GREEKCCITT// HEBREW// HP-GREEK8// HP-ROMAN8// HP-ROMAN9// HP-THAI8// HP-TURKISH8// HPGREEK8// HPROMAN8// HPROMAN9// HPTHAI8// HPTURKISH8// HU// IBM-803// IBM-856// IBM-901// IBM-902// IBM-921// IBM-922// IBM-930// IBM-932// IBM-933// IBM-935// IBM-937// IBM-939// IBM-943// IBM-1008// IBM-1025// IBM-1046// IBM-1047// IBM-1097// IBM-1112// IBM-1122// IBM-1123// IBM-1124// IBM-1129// IBM-1130// IBM-1132// IBM-1133// IBM-1137// IBM-1140// IBM-1141// IBM-1142// IBM-1143// IBM-1144// IBM-1145// IBM-1146// IBM-1147// IBM-1148// IBM-1149// IBM-1153// IBM-1154// IBM-1155// IBM-1156// IBM-1157// IBM-1158// IBM-1160// IBM-1161// IBM-1162// IBM-1163// IBM-1164// IBM-1166// IBM-1167// IBM-1364// IBM-1371// IBM-1388// IBM-1390// IBM-1399// IBM-4517// IBM-4899// IBM-4909// IBM-4971// IBM-5347// IBM-9030// IBM-9066// IBM-9448// IBM-12712// IBM-16804// IBM037// IBM038// IBM256// IBM273// IBM274// IBM275// IBM277// IBM278// IBM280// IBM281// IBM284// IBM285// IBM290// IBM297// IBM367// IBM420// IBM423// IBM424// IBM437// IBM500// IBM775// IBM803// IBM813// IBM819// IBM848// IBM850// IBM851// IBM852// IBM855// IBM856// IBM857// IBM860// IBM861// IBM862// IBM863// IBM864// IBM865// IBM866// IBM866NAV// IBM868// IBM869// IBM870// IBM871// IBM874// IBM875// IBM880// IBM891// IBM901// IBM902// IBM903// IBM904// IBM905// IBM912// IBM915// IBM916// IBM918// IBM920// IBM921// IBM922// IBM930// IBM932// IBM933// IBM935// IBM937// IBM939// IBM943// IBM1004// IBM1008// IBM1025// IBM1026// IBM1046// IBM1047// IBM1089// IBM1097// IBM1112// IBM1122// IBM1123// IBM1124// IBM1129// IBM1130// IBM1132// IBM1133// IBM1137// IBM1140// IBM1141// IBM1142// IBM1143// IBM1144// IBM1145// IBM1146// IBM1147// IBM1148// IBM1149// IBM1153// IBM1154// IBM1155// IBM1156// IBM1157// IBM1158// IBM1160// IBM1161// IBM1162// IBM1163// IBM1164// IBM1166// IBM1167// IBM1364// IBM1371// IBM1388// IBM1390// IBM1399// IBM4517// IBM4899// IBM4909// IBM4971// IBM5347// IBM9030// IBM9066// IBM9448// IBM12712// IBM16804// IEC_P27-1// IEC_P271// INIS-8// INIS-CYRILLIC// INIS// INIS8// INISCYRILLIC// ISIRI-3342// ISIRI3342// ISO-2022-CN-EXT// ISO-2022-CN// ISO-2022-JP-2// ISO-2022-JP-3// ISO-2022-JP// ISO-2022-KR// ISO-8859-1// ISO-8859-2// ISO-8859-3// ISO-8859-4// ISO-8859-5// ISO-8859-6// ISO-8859-7// ISO-8859-8// ISO-8859-9// ISO-8859-9E// ISO-8859-10// ISO-8859-11// ISO-8859-13// ISO-8859-14// ISO-8859-15// ISO-8859-16// ISO-10646// ISO-10646/UCS2/ ISO-10646/UCS4/ ISO-10646/UTF-8/ ISO-10646/UTF8/ ISO-CELTIC// ISO-IR-4// ISO-IR-6// ISO-IR-8-1// ISO-IR-9-1// ISO-IR-10// ISO-IR-11// ISO-IR-14// ISO-IR-15// ISO-IR-16// ISO-IR-17// ISO-IR-18// ISO-IR-19// ISO-IR-21// ISO-IR-25// ISO-IR-27// ISO-IR-37// ISO-IR-49// ISO-IR-50// ISO-IR-51// ISO-IR-54// ISO-IR-55// ISO-IR-57// ISO-IR-60// ISO-IR-61// ISO-IR-69// ISO-IR-84// ISO-IR-85// ISO-IR-86// ISO-IR-88// ISO-IR-89// ISO-IR-90// ISO-IR-92// ISO-IR-98// ISO-IR-99// ISO-IR-100// ISO-IR-101// ISO-IR-103// ISO-IR-109// ISO-IR-110// ISO-IR-111// ISO-IR-121// ISO-IR-122// ISO-IR-126// ISO-IR-127// ISO-IR-138// ISO-IR-139// ISO-IR-141// ISO-IR-143// ISO-IR-144// ISO-IR-148// ISO-IR-150// ISO-IR-151// ISO-IR-153// ISO-IR-155// ISO-IR-156// ISO-IR-157// ISO-IR-166// ISO-IR-179// ISO-IR-193// ISO-IR-197// ISO-IR-199// ISO-IR-203// ISO-IR-209// ISO-IR-226// ISO/TR_11548-1/ ISO646-CA// ISO646-CA2// ISO646-CN// ISO646-CU// ISO646-DE// ISO646-DK// ISO646-ES// ISO646-ES2// ISO646-FI// ISO646-FR// ISO646-FR1// ISO646-GB// ISO646-HU// ISO646-IT// ISO646-JP-OCR-B// ISO646-JP// ISO646-KR// ISO646-NO// ISO646-NO2// ISO646-PT// ISO646-PT2// ISO646-SE// ISO646-SE2// ISO646-US// ISO646-YU// ISO2022CN// ISO2022CNEXT// ISO2022JP// ISO2022JP2// ISO2022KR// ISO6937// ISO8859-1// ISO8859-2// ISO8859-3// ISO8859-4// ISO8859-5// ISO8859-6// ISO8859-7// ISO8859-8// ISO8859-9// ISO8859-9E// ISO8859-10// ISO8859-11// ISO8859-13// ISO8859-14// ISO8859-15// ISO8859-16// ISO11548-1// ISO88591// ISO88592// ISO88593// ISO88594// ISO88595// ISO88596// ISO88597// ISO88598// ISO88599// ISO88599E// ISO885910// ISO885911// ISO885913// ISO885914// ISO885915// ISO885916// ISO_646.IRV:1991// ISO_2033-1983// ISO_2033// ISO_5427-EXT// ISO_5427// ISO_5427:1981// ISO_5427EXT// ISO_5428// ISO_5428:1980// ISO_6937-2// ISO_6937-2:1983// ISO_6937// ISO_6937:1992// ISO_8859-1// ISO_8859-1:1987// ISO_8859-2// ISO_8859-2:1987// ISO_8859-3// ISO_8859-3:1988// ISO_8859-4// ISO_8859-4:1988// ISO_8859-5// ISO_8859-5:1988// ISO_8859-6// ISO_8859-6:1987// ISO_8859-7// ISO_8859-7:1987// ISO_8859-7:2003// ISO_8859-8// ISO_8859-8:1988// ISO_8859-9// ISO_8859-9:1989// ISO_8859-9E// ISO_8859-10// ISO_8859-10:1992// ISO_8859-14// ISO_8859-14:1998// ISO_8859-15// ISO_8859-15:1998// ISO_8859-16// ISO_8859-16:2001// ISO_9036// ISO_10367-BOX// ISO_10367BOX// ISO_11548-1// ISO_69372// IT// JIS_C6220-1969-RO// JIS_C6229-1984-B// JIS_C62201969RO// JIS_C62291984B// JOHAB// JP-OCR-B// JP// JS// JUS_I.B1.002// KOI-7// KOI-8// KOI8-R// KOI8-RU// KOI8-T// KOI8-U// KOI8// KOI8R// KOI8U// KSC5636// L1// L2// L3// L4// L5// L6// L7// L8// L10// LATIN-9// LATIN-GREEK-1// LATIN-GREEK// LATIN1// LATIN2// LATIN3// LATIN4// LATIN5// LATIN6// LATIN7// LATIN8// LATIN9// LATIN10// LATINGREEK// LATINGREEK1// MAC-CENTRALEUROPE// MAC-CYRILLIC// MAC-IS// MAC-SAMI// MAC-UK// MAC// MACCYRILLIC// MACINTOSH// MACIS// MACUK// MACUKRAINIAN// MIK// MS-ANSI// MS-ARAB// MS-CYRL// MS-EE// MS-GREEK// MS-HEBR// MS-MAC-CYRILLIC// MS-TURK// MS932// MS936// MSCP949// MSCP1361// MSMACCYRILLIC// MSZ_7795.3// MS_KANJI// NAPLPS// NATS-DANO// NATS-SEFI// NATSDANO// NATSSEFI// NC_NC0010// NC_NC00-10// NC_NC00-10:81// NF_Z_62-010// NF_Z_62-010_(1973)// NF_Z_62-010_1973// NF_Z_62010// NF_Z_62010_1973// NO// NO2// NS_4551-1// NS_4551-2// NS_45511// NS_45512// OS2LATIN1// OSF00010001// OSF00010002// OSF00010003// OSF00010004// OSF00010005// OSF00010006// OSF00010007// OSF00010008// OSF00010009// OSF0001000A// OSF00010020// OSF00010100// OSF00010101// OSF00010102// OSF00010104// OSF00010105// OSF00010106// OSF00030010// OSF0004000A// OSF0005000A// OSF05010001// OSF100201A4// OSF100201A8// OSF100201B5// OSF100201F4// OSF100203B5// OSF1002011C// OSF1002011D// OSF1002035D// OSF1002035E// OSF1002035F// OSF1002036B// OSF1002037B// OSF10010001// OSF10010004// OSF10010006// OSF10020025// OSF10020111// OSF10020115// OSF10020116// OSF10020118// OSF10020122// OSF10020129// OSF10020352// OSF10020354// OSF10020357// OSF10020359// OSF10020360// OSF10020364// OSF10020365// OSF10020366// OSF10020367// OSF10020370// OSF10020387// OSF10020388// OSF10020396// OSF10020402// OSF10020417// PT// PT2// PT154// R8// R9// RK1048// ROMAN8// ROMAN9// RUSCII// SE// SE2// SEN_850200_B// SEN_850200_C// SHIFT-JIS// SHIFT_JIS// SHIFT_JISX0213// SJIS-OPEN// SJIS-WIN// SJIS// SS636127// STRK1048-2002// ST_SEV_358-88// T.61-8BIT// T.61// T.618BIT// TCVN-5712// TCVN// TCVN5712-1// TCVN5712-1:1993// THAI8// TIS-620// TIS620-0// TIS620.2529-1// TIS620.2533-0// TIS620// TS-5881// TSCII// TURKISH8// UCS-2// UCS-2BE// UCS-2LE// UCS-4// UCS-4BE// UCS-4LE// UCS2// UCS4// UHC// UJIS// UK// UNICODE// UNICODEBIG// UNICODELITTLE// US-ASCII// US// UTF-7// UTF-8// UTF-16// UTF-16BE// UTF-16LE// UTF-32// UTF-32BE// UTF-32LE// UTF7// UTF8// UTF16// UTF16BE// UTF16LE// UTF32// UTF32BE// UTF32LE// VISCII// WCHAR_T// WIN-SAMI-2// WINBALTRIM// WINDOWS-31J// WINDOWS-874// WINDOWS-936// WINDOWS-1250// WINDOWS-1251// WINDOWS-1252// WINDOWS-1253// WINDOWS-1254// WINDOWS-1255// WINDOWS-1256// WINDOWS-1257// WINDOWS-1258// WINSAMI2// WS2// YU// x2goclient-4.0.1.1/txt/packs0000644000000000000000000000114112214040350012446 0ustar nopack 8 64 256 512 4k 32k 64k 256k 2m 16m 256-rdp 256-rdp-compressed 32k-rdp 32k-rdp-compressed 64k-rdp 64k-rdp-compressed 16m-rdp 16m-rdp-compressed rfb-hextile rfb-tight rfb-tight-compressed 8-tight 64-tight 256-tight 512-tight 4k-tight 32k-tight 64k-tight 256k-tight 2m-tight 16m-tight 8-jpeg-% 64-jpeg 256-jpeg 512-jpeg 4k-jpeg 32k-jpeg 64k-jpeg 256k-jpeg 2m-jpeg 16m-jpeg-% 8-png-jpeg-% 64-png-jpeg 256-png-jpeg 512-png-jpeg 4k-png-jpeg 32k-png-jpeg 64k-png-jpeg 256k-png-jpeg 2m-png-jpeg 16m-png-jpeg-% 8-png-% 64-png 256-png 512-png 4k-png 32k-png 64k-png 256k-png 2m-png 16m-png-% 16m-rgb-% 16m-rle-%x2goclient-4.0.1.1/userbutton.cpp0000644000000000000000000000545512214040350013535 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "x2goclientconfig.h" #include "userbutton.h" #include #include #include #include "onmainwindow.h" UserButton::UserButton ( ONMainWindow* wnd, QWidget *par, QString name, QString fullName, QPixmap& foto, QPalette& bgpal, int width,int height ) : QPushButton ( par ) { user=name; fname=fullName; image=foto; setFocusPolicy ( Qt::NoFocus ); setAutoFillBackground ( true ); setFlat ( true ); bgpal.setColor ( QPalette::Active, QPalette::WindowText, QPalette::Mid ); bgpal.setColor ( QPalette::Active, QPalette::ButtonText, QPalette::Mid ); bgpal.setColor ( QPalette::Inactive, QPalette::WindowText, QPalette::Mid ); bgpal.setColor ( QPalette::Inactive, QPalette::ButtonText, QPalette::Mid ); setPalette ( bgpal ); bool miniMode=wnd->retMiniMode(); if ( width==0 || height==0 ) { if ( !miniMode ) { setFixedSize ( 340,100 ); } else setFixedSize ( 250,100 ); } else { setFixedSize ( width,height ); } QLabel* f=new QLabel ( this ); QString text=name+"\n("+fullName+")"; QLabel* n=new QLabel ( text,this ); if ( !miniMode ) n->move ( 110,25 ); else n->move ( 90,25 ); f->setPixmap ( foto ); f->setMaximumSize ( 80,80 ); if ( !miniMode ) f->move ( 10,10 ); else f->move ( 5,10 ); connect ( this,SIGNAL ( clicked() ),this,SLOT ( slotClicked() ) ); } UserButton::~UserButton() {} void UserButton::slotClicked() { emit userSelected ( this ); } x2goclient-4.0.1.1/userbutton.h0000644000000000000000000000370112214040350013172 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef USERBUTTON_H #define USERBUTTON_H #include "x2goclientconfig.h" #include /** @author Oleksandr Shneyder */ class QPixmap; class ONMainWindow; class UserButton : public QPushButton { Q_OBJECT public: UserButton ( ONMainWindow* wnd, QWidget *parent, QString username, QString fullName, QPixmap& foto, QPalette& backGround, int width=0,int height=0 ); ~UserButton(); QString username() {return user;} QString fullName() {return fname;} const QPixmap& foto() {return image;} const QPixmap& background() {return bg;} private: QString user; QString fname; QPixmap image; QPixmap bg; private slots: void slotClicked(); signals: void userSelected ( UserButton* ); }; #endif x2goclient-4.0.1.1/VERSION0000644000000000000000000000001012214040350011645 0ustar 4.0.1.1 x2goclient-4.0.1.1/version.h0000644000000000000000000000233512214040350012447 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #define VERSION "4.0.1.1" x2goclient-4.0.1.1/wapi.cpp0000644000000000000000000003570312214040350012262 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef _WIN32_WINDOWS #define _WIN32_WINDOWS 0x0500 #define _WIN32_WINNT 0x0500 #define WINVER 0x0500 #endif #include "x2goclientconfig.h" #ifdef Q_OS_WIN #include #include #include "wapi.h" #include "x2gologdebug.h" long wapiSetFSWindow ( HWND hWnd, const QRect& desktopGeometry ) { long style=GetWindowLong ( hWnd,GWL_STYLE ); SetWindowPos ( hWnd, HWND_TOP, desktopGeometry.x(), desktopGeometry.y(), desktopGeometry.width(), desktopGeometry.height(), SWP_FRAMECHANGED ); SetWindowLong ( hWnd, GWL_STYLE, WS_VISIBLE | WS_SYSMENU | WS_CLIPCHILDREN | WS_CLIPSIBLINGS ); SetWindowPos ( hWnd, HWND_TOP, desktopGeometry.x(), desktopGeometry.y(), desktopGeometry.width(), desktopGeometry.height(), SWP_FRAMECHANGED ); SetForegroundWindow ( hWnd ); return style; } void wapiRestoreWindow( HWND hWnd, long style, const QRect& desktopGeometry ) { SetWindowLong ( hWnd, GWL_STYLE,style); SetWindowPos ( hWnd, HWND_TOP, desktopGeometry.x(), desktopGeometry.y(), desktopGeometry.width(), desktopGeometry.height(), SWP_FRAMECHANGED ); } void wapiHideFromTaskBar ( HWND wnd ) { ShowWindow ( wnd, SW_HIDE ) ; SetWindowLong ( wnd, GWL_EXSTYLE, GetWindowLong ( wnd, GWL_EXSTYLE ) & ~WS_EX_APPWINDOW ); SetWindowLong ( wnd, GWL_EXSTYLE, GetWindowLong ( wnd, GWL_EXSTYLE ) | WS_EX_TOOLWINDOW ); ShowWindow ( wnd, SW_SHOW ) ; } HWND wapiSetParent ( HWND child, HWND par ) { HWND wn=SetParent ( child,par ); if ( par ) SetWindowLong ( child, GWL_STYLE, GetWindowLong ( child, GWL_STYLE ) | WS_CHILD ); else SetWindowLong ( child, GWL_STYLE, GetWindowLong ( child, GWL_STYLE ) &~ WS_CHILD ); SetWindowLong ( child, GWL_STYLE, GetWindowLong ( child, GWL_STYLE ) | WS_POPUP ); return wn; } bool wapiClientRect ( HWND wnd, QRect& rect ) { RECT rcWindow; if ( GetClientRect ( wnd,&rcWindow ) ) { rect.setCoords ( rcWindow.left, rcWindow.top, rcWindow.right,rcWindow.bottom ); return true; } return false; } bool wapiWindowRectWithoutDecoration ( HWND wnd, QRect& rect ) { RECT rcWindow; if ( GetClientRect ( wnd,&rcWindow ) ) { POINT pnt; pnt.x=0; pnt.y=0; ClientToScreen(wnd,&pnt); rect.setRect ( pnt.x, pnt.y, rcWindow.right-rcWindow.left,rcWindow.bottom-rcWindow.top ); return true; } return false; } bool wapiWindowRect ( HWND wnd, QRect& rect ) { RECT rcWindow; if ( GetWindowRect ( wnd,&rcWindow ) ) { rect.setCoords ( rcWindow.left, rcWindow.top, rcWindow.right,rcWindow.bottom ); return true; } return false; } bool wapiGetBorders ( HWND wnd, int& vBorder, int& hBorder, int& barHeight ) { WINDOWINFO wifo; wifo.cbSize=sizeof ( WINDOWINFO ); if ( !GetWindowInfo ( wnd,&wifo ) ) return false; vBorder=wifo.cxWindowBorders; hBorder=wifo.cyWindowBorders; TITLEBARINFO bifo; bifo.cbSize=sizeof ( TITLEBARINFO ); if ( !GetTitleBarInfo ( wnd,&bifo ) ) return false; barHeight=bifo.rcTitleBar.bottom-bifo.rcTitleBar.top; return true; } bool wapiShowWindow ( HWND wnd, wapiCmdShow nCmdShow ) { int cmd=WAPI_SHOWNORMAL; switch ( nCmdShow ) { case WAPI_FORCEMINIMIZE: cmd=SW_FORCEMINIMIZE; break; case WAPI_HIDE: cmd=SW_HIDE; break; case WAPI_MAXIMIZE: cmd=SW_MAXIMIZE; break; case WAPI_MINIMIZE: cmd=SW_MINIMIZE; break; case WAPI_RESTORE: cmd=SW_RESTORE; break; case WAPI_SHOW: cmd=SW_SHOW; break; case WAPI_SHOWDEFAULT: cmd=SW_SHOWDEFAULT; break; case WAPI_SHOWMAXIMIZED: cmd=SW_SHOWMAXIMIZED; break; case WAPI_SHOWMINIMIZED: cmd=SW_SHOWMINIMIZED; break; case WAPI_SHOWMINNOACTIVE: cmd=SW_SHOWMINNOACTIVE; break; case WAPI_SHOWNA: cmd=SW_SHOWNA; break; case WAPI_SHOWNOACTIVATE: cmd=SW_SHOWNOACTIVATE; break; case WAPI_SHOWNORMAL: cmd=SW_SHOWNORMAL; break; } return ShowWindow ( wnd, cmd ); } bool wapiUpdateWindow ( HWND wnd ) { return RedrawWindow ( wnd,0,0,RDW_INVALIDATE ); } bool wapiMoveWindow ( HWND wnd, int x, int y, int width, int height, bool repaint ) { return MoveWindow ( wnd, x, y, width, height, repaint ); } HWND wapiFindWindow ( const ushort * className, const ushort * text ) { return FindWindowEx ( 0,0, ( LPCTSTR ) className, ( LPCTSTR ) text ); } bool wapiSetWindowText( HWND wnd, const QString& text) { return SetWindowText(wnd, (LPCTSTR)text.utf16() ); } void wapiSetWindowIcon ( HWND wnd, const QPixmap& icon) { int iconx=GetSystemMetrics(SM_CXICON); int icony=GetSystemMetrics(SM_CYICON); int smallx=GetSystemMetrics(SM_CXSMICON); int smally=GetSystemMetrics(SM_CXSMICON); HICON largeIcon=0; HICON smallIcon=0; largeIcon=icon.scaled(iconx,icony, Qt::IgnoreAspectRatio,Qt::SmoothTransformation).toWinHICON (); smallIcon=icon.scaled(smallx,smally, Qt::IgnoreAspectRatio,Qt::SmoothTransformation).toWinHICON (); x2goDebug<<"large icon: "<0) { TCHAR* buf=new TCHAR[len+1]; len=GetLogicalDriveStrings(len,buf); for (int i=0; iPrimaryGroup ); } if ( primaryGroupName ) { *primaryGroupName=getNameFromSid ( pGroupInfo->PrimaryGroup, retSysName ); } if ( pGroupInfo ) GlobalFree ( pGroupInfo ); } if ( retSid || retUname ) { PTOKEN_USER pUserInfo=0; DWORD dwResult=0; DWORD dwSize=0; if ( !GetTokenInformation ( hToken, TokenUser, NULL, dwSize, &dwSize ) ) { dwResult = GetLastError(); if ( dwResult != ERROR_INSUFFICIENT_BUFFER ) { CloseHandle ( hToken ); return false; } } pUserInfo = ( PTOKEN_USER ) GlobalAlloc ( GPTR, dwSize ); if ( ! GetTokenInformation ( hToken, TokenUser, pUserInfo, dwSize, &dwSize ) ) { if ( pUserInfo ) GlobalFree ( pUserInfo ); CloseHandle ( hToken ); return false; } if ( retSid ) { *retSid=getStringFromSid ( pUserInfo->User.Sid ); } if ( retUname ) { *retUname=getNameFromSid ( pUserInfo->User.Sid, retSysName ); } if ( pUserInfo ) GlobalFree ( pUserInfo ); } CloseHandle ( hToken ); return true; } void wapiShellExecute ( const QString& operation, const QString& file, const QString& parameters, const QString& dir, HWND win ) { if ( parameters==QString::null ) ShellExecute ( win, ( LPCTSTR ) ( operation.utf16() ), ( LPCTSTR ) ( file.utf16() ),0, ( LPCTSTR ) ( dir.utf16() ),SW_SHOWNORMAL ); else ShellExecute ( win, ( LPCTSTR ) ( operation.utf16() ), ( LPCTSTR ) ( file.utf16() ), ( LPCTSTR ) ( parameters.utf16() ), ( LPCTSTR ) ( dir.utf16() ),SW_SHOWNORMAL ); } QString wapiGetDefaultPrinter() { TCHAR *prName; DWORD length; GetDefaultPrinter ( 0,&length ); if ( !length ) return QString::null; prName=new TCHAR[length]; GetDefaultPrinter ( prName,&length ); if ( !length ) { delete []prName; return QString::null; } QString printer=QString::fromUtf16 ( ( const ushort* ) prName ); delete []prName; return printer; } QStringList wapiGetLocalPrinters() { QStringList printers; PRINTER_INFO_4 *info_array; DWORD sizeOfArray; DWORD bufSize=0; DWORD sizeNeeded=0; EnumPrinters ( PRINTER_ENUM_LOCAL,0,4,NULL,bufSize, &sizeNeeded,&sizeOfArray ); if ( !sizeNeeded ) { return printers; } info_array= ( PRINTER_INFO_4* ) new char[sizeNeeded]; if ( !info_array ) return printers; bufSize=sizeNeeded; EnumPrinters ( PRINTER_ENUM_LOCAL,0,4, ( LPBYTE ) info_array,bufSize, &sizeNeeded,&sizeOfArray ); if ( !sizeNeeded || !sizeOfArray ) { delete []info_array; return printers; } for ( uint i=0; i. * ***************************************************************************/ #ifndef _WAPI_H #define _WAPI_H #include "x2goclientconfig.h" #ifdef Q_OS_WIN #include #include #include #include #include enum wapiCmdShow { WAPI_FORCEMINIMIZE, WAPI_HIDE, WAPI_MAXIMIZE, WAPI_MINIMIZE, WAPI_RESTORE, WAPI_SHOW, WAPI_SHOWDEFAULT, WAPI_SHOWMAXIMIZED, WAPI_SHOWMINIMIZED, WAPI_SHOWMINNOACTIVE, WAPI_SHOWNA, WAPI_SHOWNOACTIVATE, WAPI_SHOWNORMAL }; enum wapiBtnEvent { WAPI_LBUTTONUP, WAPI_LBUTTONDOWN }; HWND wapiSetParent ( HWND child, HWND par ); bool wapiClientRect ( HWND wnd, QRect& rect ); bool wapiWindowRect ( HWND wnd, QRect& rect ); bool wapiWindowRectWithoutDecoration(HWND wnd, QRect& rect) ; bool wapiShowWindow ( HWND wnd, wapiCmdShow nCmdShow ); bool wapiUpdateWindow ( HWND wnd ); bool wapiSetWindowText ( HWND wnd, const QString& text); void wapiSetWindowIcon ( HWND wnd, const QPixmap& icon); bool wapiMoveWindow ( HWND wnd, int x, int y, int width, int height, bool repaint ); bool wapiGetBorders ( HWND wnd, int& vBorder, int& hBorder, int& barHeight ); void wapiSetCallBackProc ( void ( *prc ) ( wapiBtnEvent, QPoint ) ); void wapiHideFromTaskBar ( HWND wnd ); HWND wapiFindWindow ( const ushort * className, const ushort * text ); QString wapiShortFileName ( const QString& longName ); bool wapiAccountInfo ( QString* retSid, QString* retUname, QString* primaryGroupSID, QString* primaryGroupName, QString* retSysName ); void wapiShellExecute ( const QString& operation, const QString& file, const QString& parameters, const QString& dir,HWND win=0 ); QString wapiGetDefaultPrinter(); QStringList wapiGetLocalPrinters(); long wapiSetFSWindow ( HWND hWnd, const QRect& desktopGeometry ); void wapiRestoreWindow ( HWND hWnd, long style, const QRect& desktopGeometry ); QString wapiGetDriveByLabel(const QString& label); QString wapiGetUserName(); #endif #endif x2goclient-4.0.1.1/x2goclientconfig.h0000644000000000000000000000300512214040350014221 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #if !defined(_X2GOCLIENT_CONFIG_H_) #define _X2GOCLIENT_CONFIG_H_ #include #include #include //#define LOGFILE QDir::homePath()+"/x2goclient.log" #if !defined Q_OS_WIN #define USELDAP #endif #ifdef Q_OS_WIN #undef USELDAP #endif #if defined Q_WS_HILDON #undef USELDAP #endif #endif x2goclient-4.0.1.1/x2goclient.cpp0000644000000000000000000000243412214040350013373 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "ongetpass.h" int main(int argc, char *argv[]) { return x2goMain(argc,argv); } x2goclient-4.0.1.1/x2goclient_da.ts0000644000000000000000000035472612214040350013721 0ustar AppDialog Published Applications Not sure if this is the best name for it. Udgivne Programmer Search: Søg: &Start &Start &Close &Luk Multimedia Multimedie Development Udvikling Education Undervisning Game Spil Graphics Grafik Network Netværk Office Kontor Settings Indstillinger System System Utility Tilbehør Other Andet BrokerPassDialogUi Dialog Dialog Old password: Nuværende kodeord: New password: Nyt kodeord: Confirm password: Bekræft kodeord: TextLabel TekstMærkat BrokerPassDlg Passwords do not match Kodeord er ikke ens CUPSPrintWidget Form Formular Name: Navn: Properties Egenskaber State: Tilstand: Accepting jobs: Accepterer jobs: Type: Type: Location: Placering: Comment: Kommentar: Idle Inaktiv Printing Printer Stopped Stoppet Yes Ja No Nej CUPSPrinterSettingsDialog No option selected Ingen indstilling valgt This value is in conflict with other option Denne værdi er I strid med en anden indstilling Options conflict Indstillings konflikt ConTest Connectivity test Forbindelses test HTTPS connection: HTTPS forbindelse: SSH connection: SSH forbindelse: Connection speed: Forbindelseshastighed: Failed Mislykket 0 Kb/s 0 Kb/s OK OK Socket operation timed out Cannot be adquately translated Failed: Mislykkedes: ConfigDialog General Generelt Display icon in system tray Vis ikon i meddelelsesomrÃ¥de Hide to system tray when minimized Minimer til meddelelsesomrÃ¥de Hide to system tray when closed Skjul imeddelelsesomrÃ¥de nÃ¥r programmet lukkes Hide to system tray after connection is established Minimer til meddelelsesomrÃ¥de efter forbindelse til server Restore from system tray after session is disconnected Vis hovedvindue efter forbindelse er afbrudt Use LDAP Brug LDAP Server URL: Server URL: BaseDN: BasisDN: Failover server 1 URL: Failover server 1 URL: Failover server 2 URL: Failover server 2 URL: X-Server settings X-server indstillinger X11 application: X11 applikation: X11 version: X11 version: Find X11 application Find X11 applikation Clientside SSH port for file system export usage: Klientens SSH port til filsystem-eksportering: Start session embedded inside website Start session indlagt i et website Advanced options Avancerede indstillinger Defaults Standardindstillinger &OK &OK &Cancel &Annuller Settings Indstillinger Printing Udskrift Warning Advarsel x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2goclient kunne ikke finde nogen X11 Applikationer. Installer venligtst Apple X11 eller specificer stien til applikationen Your are using X11 (Apple X-Window Server) version Du bruger X11 (Apple X Window Server) version . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). . Denne version forÃ¥rsager problemer med X applikationer i 24bit farver. Du bør opdatere dit X11 miljø (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path Der blev ikke fundet en X11 applikation i den specificerede sti &Connection &Forbindelse &Settings &Indstillinger ConnectionWidget &Connection speed &Forbindelseshastighed Connection speed: Forbindelseshastighed: C&ompression K&omprimering Method: Metode: Compression method: Komprimeringsmetode: Image quality: Billedkvalitet: CupsPrinterSettingsDialog Dialog Dialog General Generelt Page size: Sidestørrelse: Paper type: Papirtype: Paper source: Papirkilde: Duplex Printing Duplex Udskrivning None Intet Long side Lang side Short side Kort side Driver settings Driver indstillinger Option Indstilling Value Værdi No option selected Ingen mulighed valgt text tekst EditConnectionDialog &Session &Session &Connection &Forbindelse &Settings &Indstillinger &Shared folders &Delte mapper &OK &OK &Cancel &Annuller Defaults Standard Session preferences - Sessions indstillinger ExportDialog &Cancel &Annuller &share &del &Preferences ... &Indstillinger ... &Custom folder ... &Brugerspecificeret Mappe ... Delete Delete Slet share folders del mapper Select folder Vælg mappe HttpBrokerClient us us pc105/us pc105/us Error Fejl Login failed!<br>Please try again Login fejlede<br>Forsøg igen Your session was disconnected. To get access to your running session, please return to the login page or use the "reload" function of your browser. Din session blev frakoblet. For at fÃ¥ adgang til din igangværende session, skal du gÃ¥ til login siden eller trykke pÃ¥ "opdater" i din browser. Host key for server changed. It is now: Serverens Host key er ændret. Den er nu: For security reasons, connection will be stopped Forbindelsen afbrydes af sikkerhedsÃ¥rsager The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Serverens host key blev fundet, men en anden type nøgle eksisterer. En angriber kan ændre standardnøglen pÃ¥ serveren for at narre din klient til at tro at nøglen ikke eksisterer Could not find known host file.If you accept the host key here, the file will be automatically created Kunne ikke finde known host fil. Hvis du accepterer serverens host key, vil filen automatisk blive skabt The server is unknown. Do you trust the host key? Public key hash: Serveren er ukendt. Stoler du pÃ¥ denne host key? Public key hash: Host key verification failed Host key bekræftelsen fejlede Yes Ja No Nej Enter passphrase to decrypt a key Indtast kodeord for at dekryptere en nøgle Authentication failed Autentificering fejlede <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>Serveren bruger et ugyldigt sikkerhedscertifikat</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>Du bør ikke tilføje en undtagelse hvis du bruger en ubeskyttet internetforbindelse, eller hvis du ikke er vant til at se advarsler fra denne server.</p> Secure connection failed Der kunne ikke skabes en sikker forbindelse Issued to: Udstedt til: Common Name(CN) Common Name(CN) Organization(O) Organization(O) Organizational Unit(OU) Organizational Unit(OU) Serial Number Serienummer Issued by: Udstedt af: Validity: Gyldighed: Issued on Udstedt den expires on udløber den Fingerprints: Fingeraftryk: SHA1 SHA1 MD5 MD5 Exit X2Go Client Luk X2go-Klienten Add exception Tilføj undtagelse ONMainWindow Starting x2goclient... Starter x2goclient... us us pc105/us pc105/us X2Go Client X2go klient connecting forbinder Internet browser Internet browser Email client Email klient OpenOffice.org OpenOffice.org Terminal Terminal Starting x2goclient in portable mode... data directory is: Starter x2goclient i flyttebar tilstand... data filsti er: &Settings ... &Indstillinger ... Support ... Support ... About X2GO client om X2GO klient Started x2goclient. Startede x2goclient. Can't load translator: Kan ikke Ã¥bne translator: Translator: Oversætter: installed. Installeret. Share folder... Del mappe... Suspend Suspender Terminate Afbryd Reconnect Genoptag Detach X2Go window Løsriv X2go vindue Minimize toolbar Minimer værktøjslinie Session: Session: &Quit &Afslut Ctrl+Q Ctrl+Q Quit Afslut &New session ... &Ny session ... Ctrl+N Ctrl+N Session management... SessionshÃ¥ndtering... Ctrl+E Ctrl+E &Create session icon on desktop... &Opret sessionsikon pÃ¥ skrivebordet... &Set broker password... &Sæt broker kodeord... &Connectivity test... &forbindelsestest... Show toolbar Vis værktøjslinie About Qt Om Qt Ctrl+Q exit Ctrl+Q &Session &Session &Options &Indstillinger &Help &Hjælp Login: Login: Error Fejl Operation failed Handling fejlede Password changed Kodeord er ændret Wrong password! Forkert kodeord! Connecting to broker Forbinder til broker <b>Authentication</b> <b>Autentifikation</b> Restore Gendan Not connected Ikke forbundet Multimedia Multimedie Development Udvikling Education Undervisning Game Spil Graphics Grafik Network Netværk Office Kontor Settings Indstillinger System System Utility Tilbehør Other Andet Left mouse button to hide/restore - Right mouse button to display context menu Venstre museknap skjuler/gendanner - Højre museknap viser kontekst menu Closing x2goclient... Lukker x2goclient... Closed x2goclient. Lukkede x2goclient. Please check LDAP settings Undersøg LDAP indstillinger no X2Go server found in LDAP ingen X2go server fundet i LDAP Create session icon on desktop Opret sessionsikon pÃ¥ skrivebord Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Skrivebordsikoner kan indstilles til ikke at vise x2goklienten (skjult tilstand). Hvis du vil bruge denne feature skal du konfigurere login med gpg nøgle eller gpg smart card. SlÃ¥ skjult tilstand til? New Session Ny Session X2Go Link to session X2go Link til session No X2Go sessions found, closing. Ingen X2Go sessioner Fundet, Lukker. X2Go sessions not found X2go sessioner blev ikke fundet Are you sure you want to delete this session? Er du sikker pÃ¥ at du vil slette denne session? KDE KDE RDP connection RDP forbindelse XDMCP XDMCP Connection to local desktop Forbindelse til lokalt skrivebord on pÃ¥ Starting connection to server: Starter forbindelse til server: to til Connection Error( Forbindelses Fejl( Couldn't find a SSH connection. Kunne ikke finde en SSH forbindelse. Enter passphrase to decrypt a key Indtast kodeord for at dekryptere en nøgle Host key for server changed. It is now: Serverens Host key er ændret. Den er nu: For security reasons, connection will be stopped Forbindelsen afbrydes af sikkerhedsÃ¥rsager The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Serverens host key blev fundet, men en anden type nøgle eksisterer. En angriber kan ændre standardnøglen pÃ¥ serveren for at narre din klient til at tro at nøglen ikke eksisterer Could not find known host file.If you accept the host key here, the file will be automatically created Kunne ikke finde known host fil. Hvis du accepterer serverens host key, vil filen automatisk blive skabt The server is unknown. Do you trust the host key? Public key hash: Serveren er ukendt. Stoler du pÃ¥ denne host key? Public key hash: Host key verification failed Host key bekræftelsen fejlede Yes Ja No Nej Authentication failed: Godkendelse Fejlede: Authentication failed Autentifikationen fejlede Enter password for SSH proxy Indtast password til SSH proxy <b>Connection failed</b> <b>Forbindelsen mislykkedes</b> <b>Wrong password!</b><br><br> <b>Forkert Kodeord!</b><br><br> Connection failed: Forbindelse Fejlede: - Wrong password. Forkert password. unknown ukendt No server availabel Ingen server tilgængelig Server not availabel Server er ikke tilgængelig Select session: Vælg session: running kører suspended suspenderet Desktop Skrivebord single application enkelt applikation shadow session skygge session Information Information No accessible desktop found Intet tilgængeligt skrivebord fundet Filter Filtrer Select desktop: Vælg skrivebord: Warning Advarsel Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to Din nuværende farvedybde er anderledes end din x2go sessions farvedybde. Dette kan skabe problemer med at genoptage sessionen og i de fleste tilfælde <b>vil du miste din session</b> og være nødt til at starte en ny! det anbefales kraftigt at skifte farvedybden pÃ¥ dit Display til 24 or 32 24 eller 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? bit og genstart din X server før du genoptager din x2go session.<br>Vil du fortsætte alligevel? suspending suspenderer terminating afslutter <b>Wrong Password!</b><br><br> <b>Forkert Kodeord!</b><br><br> New session started Ny session er startet Session resumed Session genoptaget Unable to create folder: Ikke i stand til at lave mappe: Unable to write file: Ikke i stand til at skrive filen: Emergency exit. Nødudgang. Waiting for proxy to exit. Venter pÃ¥ at proxy lukker. Failed, killing the proxy. Fejlede med at dræbe proxy. Wrong parameter: Forkerte parameter: Unable to create folder: Kunne ikke oprette mappe: Unable to write file: Kunne ikke skrive fil: Attach X2Go window Tilkobl X2Go vindue Unable to create SSL tunnel: Kunne ikke oprette SSL tunnel: Unable to create SSL Tunnel: Kunne ikke oprette SSL Tunnel: Finished Afsluttet starting starter resuming fortsætter Connection timeout, aborting Forbindelsestimeout, afslutter aborting afslutter Are you sure you want to terminate this session? Unsaved documents will be lost Er du sikker pÃ¥ du vil afslutte denne session? Ugemte dokumenter vil gÃ¥ tabt Session Session Display Display Creation time Skabelsestid <b>Connection failed</b> : <b>Forbindelse mislykkedes</b> : (can't open file) (kan ikke Ã¥bne fil) (file not exists) (fil eksisterer ikke) (directory not exists) (mappe eksisterer ikke) wrong value for argument"--link" Ugyldig værdi for "--link" argumentet wrong value for argument"--sound" Ugyldig værdi for "--sound" argumentet wrong value for argument"--geometry" Ugyldig værdi for "--geometry" argumentet wrong value for argument"--set-kbd" Ugyldig værdi for "--set-kbd" argumentet wrong value for argument"--ldap" Ugyldig værdi for "--ldap" argumentet wrong value for argument"--ldap1" Ugyldig værdi for "--ldap1" argumentet wrong value for argument"--ldap2" Ugyldig værdi for "--ldap2" argumentet wrong value for argument"--pack" Ugyldig værdi for "--pack" argumentet wrong parameter: Forkert parameter: Options Indstillinger Available pack methodes: Tilgængelige pakkemetoder: RSA file empty. RSA fil er tom. Can not open key: Kan ikke Ã¥bne nøgle: Support Support </b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>x2goplugin mode blev sponsoreret af <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <br>Klient til brug med X2go's netværksbaserede computermiljø. Denne klient vil kunne forbinde til X2go servere og starte, stoppe, fortsætte og afslutte (igangværende) skrivebordssessioner. X2Go-klienten lagrer forskellige server forbindelser og kan automatisk lave forespørgsler til LDAP tjenester om autentificeringsdata. Den kan desuden bruges som fuldskærmslogin (erstatning for loginmanagers som xdm) Besøg venligst x2go.org for yderligere information. <b>X2Go Client V. <b>X2Go Client V. Please check LDAP Settings Undersøg venligst dine LDAP indstillinger No valid card found Intet gyldigt kort fundet Card not configured. Kort er ikke konfigureret. This card is unknown by X2Go system X2Go systemet kan ikke genkende dette kort Unable to create file: Ikke i stand til at skabe fil: Can't connect to X server Please check your settings Kan ikke forbinde til x server Undersøg venligst dine indstillinger Can't start X server Please check your settings Kan ikke starte x server Undersøg venligst dine indstillinger Can't start X Server Please check your installation Kan ikke starte x server Undersøg venligst din installation Unable to execute: Kunne ikke eksekvere: Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package Fjernserveren understøtter ikke filsystemseksportering igennem en SSH Tunnel Opdater venligst til en nyere version af x2goserver pakken Unable to read : Kunne ikke læse : Unable to write : Kunne ikke skrive : WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 Error getting window geometry (window closed)? Fejl med at hente vindue geomatri (vinduet lukkede)? X2Go Session X2Go Session wrong value for argument"speed" Ugyldig værdi for "speed" argumentet Password: Kodeord: Keyboard layout: Tastatur layout: Ok Ok Cancel Annuller <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>Sessions ID:<br>Server:<br>Brugernavn:<br>Display:<br>Skabelsestid:<br>Status:</b> Applications... Applikationer... Abort Afbryd Show details Vis detaljer Resume Fortsæt New Ny Full access Fuld adgang View only Kun synlig Status Status Command Kommando Type Type Server Server Client IP Klient IP Session ID Sessions ID User Bruger Only my desktops Kun mine skriveborde sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> sshd er ikke startet, du fÃ¥r brug for sshd til udskrifter og fildeling du kan installere sshd med <b>sudo apt-get install openssh-server</b> Restore toolbar Gendan værktøjslinie <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <br><b>&nbsp;&nbsp;&nbsp;Klik pÃ¥ denne knap&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;for at gendanne værktøjslinien&nbsp;&nbsp;&nbsp;</b><br> PrintDialog Print - X2Go Client Udskrift - X2Go klient Print Udskrift You've deactivated the x2go client printing dialog. Du har deaktiveret x2go klientens udskriftsdialog. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) Du kan reaktivere denne dialog i x2goclient indstillingsdialogen (Menu -> Instinger -> Indstillinger PrintProcess Save File Gem Fil PDF Document (*.pdf) PDF Dokument (*.pdf) Failed to execute command: Eksekvering af kommando fejlede: Printing error Udskriftsfejl PrintWidget Form Formel Print Udskriv View as PDF Se som PDF Print settings Printerindstillinger Printer: Printer: Print using default Windows PDF Viewer (Viewer application needs to be installed) Print med Windows standard PDF Viewer (Viewer applikationen skal være installeret) Printer command: Printer kommando: ... ... Viewer settings Fremviser indstillinger Open in viewer application Ã…ben i fremviserapplikation Command: Kommando: Save to disk Gem til disk Show this dialog before start printing Vis denne dialog før udskrift starter Please configure your client side printing settings.<br><br>If you want to print the created file, you'll need an external application. Typically you can use <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> and <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>You can find further information <a href="http://www.x2go.org/index.php?id=49">here</a>. Konfigurer venligst dine printerindstillinger pÃ¥ klientsiden.<br><br>Hvis du vil udskrive den skabte fil, vil du fÃ¥ brug for en ekstern applikation. Du kan typisk bruge <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> og <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>Du kan finde yderligere informationer <a href="http://www.x2go.org/index.php?id=49">her</a>. PrinterCmdDialog Printer command Printer kommando Command Kommando Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Indtast din specialiserede printer kommando. f.eks.: kprinter lpr -P hp_laserjet Output format Output format Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Vælg venligst det rette format til udskriftsfil (i forhold til dit udskriftsmiljø - Hvis du bruger CUPS kan du bruge PDF) PDF PDF PS PS Data structure Datastruktur Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): vælg venligst den rette metode til udskriftsfilinput (nogle kommandoer accepterer udskriftsfiler som programoptioner, nogle venter pÃ¥ data pÃ¥ standard input): standard input (STDIN) standard input (STDIN) Specify path as program parameter Specificer sti som programparameter Please enter your customized or individual printing command. Example: Indtaste venligst din specialiserede/ individuelle udskriftskommando f.eks: <Path to gsprint.exe> -query -color ? <Path to gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? Ingen respons modtaget fra fjern server. Vil du dræbe den nuværende session? SessionButton Session preferences... Sessionspreferencer... Create session icon on desktop... Opret sessionsikon pÃ¥ skrivebordet... Delete session Slet session Session actions Sessionshandlinger Select type Vælg type Select resolution Vælg opløsningen Toggle sound support Til/fravælg lydunderstøttelse New Session Ny session running kører suspended suspenderet KDE KDE RDP connection RDP forbindelse XDMCP XDMCP Connection to local desktop Forbindelse til lokalt skrivebord Published applications Udgivne Programmer fullscreen Fuldskærm Display Display window vindue Maximum Maximum Enabled Aktiveret Disabled Deaktiveret SessionManageDialog E&xit E&xit &New session &Ny session &Session preferences &Sessionsindstilliger &Delete session &Slet session &Create session icon on desktop... &Opret sessionsikon pÃ¥ skrivebordet... Delete Delete Slet Session management SessionshÃ¥ndtering SessionWidget Session name: Sessionsnavn: << change icon << skift ikon &Server &Server Host: Host: Login: Login: SSH port: SSH port: Use RSA/DSA key for ssh connection: Brug RSA/DSA nøgle til ssh forbindelse: Try auto login (ssh-agent or default ssh key) Prøv automatisk login (ssh-agent eller standard ssh nøgle) Kerberos 5 (GSSAPI) authentication Kerberos 5 (GSSAPI) autentificering Use Proxy server for SSH connection Brug Proxy Server til SSH-forbindelse Proxy server Proxy server SSH SSH HTTP HTTP Same login as on X2Go Server Samme login som pÃ¥ X2Go Server Same password as on X2Go Server Samme password som pÃ¥ X2Go Server RSA/DSA key: RSA/DSA nøgle: ssh-agent or default ssh key ssh-agent eller standard ssh nøgle Type: Type: Port: Port: &Session type &Sessionstype Session type: Sessionstype: Connect to Windows terminal server Forbind til Windows terminalserver XDMCP XDMCP Connect to local desktop Forbindelse til lokalt skrivebord Custom desktop Specialiseret skrivebord Single application Enkelt applikation Published applications Udgivne applikationer Command: Kommando: Advanced options... Avancerede indstillinger... Path to executable Sti til Program Direct RDP Connection Direkte RDP Forbindelse RDP port: RDP port: Open picture Ã…ben billede Pictures Billeder Open key file Ã…ben nøglefil All files Alle filer Error Fejl x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2go klienten kører i portable mode. Du bør bruge en sti pÃ¥ din usb enhed sÃ¥ du kan fÃ¥ adgang til dine data uanset hvor du er Server: Server: XDMCP server: XDMCP server: rdesktop command line options: rdesktop kommandolinie parametre: New session Ny session SettingsWidget &Display &Display &Keyboard &Tastatur Sound Lyd RDP Client RDP Klient Fullscreen Fuldskærm Custom Tilpasset Window Vindue Use whole display Bruge hele displayet Maximum available Maximalt tilgængelige Set display DPI Sæt display DPI Xinerama extension (support for two or more physical displays) Xinerama udvidelse (understøtter to eller flere fysiske displays) Width: Bredde: Height: Højde: &Display: &Display: &Identify all displays &Identificer alle displays Keep current keyboard Settings Behold nuværende tastaturindstillinger Keyboard layout: Tastatur layout: Keyboard model: Tastaturmodel: Enable sound support Aktiver lydsupport Start sound daemon Start Lyddaemon Use running sound daemon Brug kørende Lyddaemon Use SSH port forwarding to tunnel sound system connections through firewalls brug SSH port forwarding til at føre lydsystemets forbindelse igennem firewalls Use default sound port Brug standard lydport Sound port: Lydport: Client side printing support Support til udskrifter pÃ¥ klientsiden Additional parameters: Yderligere paramentre: Command line: Kommandolinje: us us pc105/us pc105/us password kodeord ShareWidget &Folders &Mapper Path Sti Automount Automonter Add Tilføj Delete Slet Path: Sti: Filename encoding Encoding af filnavne local: Lokal: remote: Fjern: Use ssh port forwarding to tunnel file system connections through firewalls Brug ssh port forwarding til at føre filsystemsforbindelser igennem firewalls Select folder Vælg mappe Error Fejl x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2go klienten kører i portable mode. Du bør bruge en sti pÃ¥ din usb enhed sÃ¥ du kan fÃ¥ adgang til dine data uanset hvor du er WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 SshMasterConnection SSH proxy connection error SSH proxy forbindelsesfejl SSH proxy connection error: SSH proxy forbindelsesfejl: Failed to create SSH proxy tunnel SSH proxy tunnel kunne ikke etableres Can not initialize libssh Kunne ikke starte libssh Can not create ssh session Kunne ikke skabe ssh session Can not connect to proxy server Kan ikke forbinde til proxy server Can not connect to Kunne ikke forbinde til Authentication failed Autentifikation fejlede channel_forward_listen failed channel_forward_listen fejlede Can not open file Kan ikke Ã¥bne fil Can not create remote file Kan ikke skabe fjern fil Can not write to remote file Kan ikke skrive i fjern fil can not connect to kan ikke forbinde til channel_open_forward failed channel_open_forward fejlede channel_open_session failed channel_open_sesion fejlede channel_request_exec failed channel_request_exec fejlede error writing to socket Fejl ved skriven til socket error reading channel fejl ved læsning af channel channel_write failed channel_write fejlede error reading tcp socket fejl i læsning af tcp socket SshProcess Error creating socket Fejl i skabelse af socket Error binding Fejl i binding XSettingsWidget Open File Ã…ben Fil Executable (*.exe) Eksekverbar (*.exe) XSettingsWidgetUI Form Formel You must restart the X2Go Client for the changes to take effect Du skal genstarte X2Go klienten før ændringerne træder i kraft use integrated X-Server brug integreret X-Server do not use primary clipboard brug ikke den primær udklipsholder use custom X-Server brug tilpasset X-Server custom X-Server tilpasser X-Server executable: eksekverbar: start X-Server on X2Go Client start start X-Server sammen med X2Go klient command line options: Kommandolinje parametre: X-Server command line options X-Server Kommandolinje parametre window mode: Vindue: fullscreen mode: Fuldskærm: single application: Enkelt applikation: x2goclient-4.0.1.1/x2goclient_de.ts0000644000000000000000000045364112214040350013721 0ustar AppDialog Published Applications Veröffentlichte Anwendungen Search: Suche: &Start &Starten &Close S&chließen Multimedia Unterhaltungsmedien Development Entwicklung Education Bildung Game Spiele Graphics Grafik Network Internet Office Büroprogramme Settings Einstellungen System Systemwerkzeuge Utility Dienstprogramme Other Sonstige BrokerPassDialogUi Dialog Dialog Old password: Altes Kennwort: New password: Neues Kennwort: Confirm password: Kennwort wiederholen: TextLabel TextLabel BrokerPassDlg Passwords do not match Kennwörter stimmen nicht überein CUPSPrintWidget Idle Inaktiv Printing Druckt Stopped Angehalten Yes Ja No Nein Form Form Name: Name: Properties Eigenschaften State: Status: Accepting jobs: Aufträge werden angenommen: Type: Typ: Location: Adresse: Comment: Kommentar: CUPSPrinterSettingsDialog No option selected Keine Einstellung ausgewählt This value is in conflict with other option Dieser Wert erzeugt einen Konflikt mit einer anderen Option Options conflict Einstellungskonflikt ConTest Connectivity test Verbindungstest HTTPS connection: HTTPS-Verbindung: SSH connection: SSH-Verbindung: Connection speed: Verbindungsgeschwindigkeit: Failed Fehlgeschlagen 0 Kb/s 0 Kb/s OK Ok Socket operation timed out Zeitüberschreibung bei Socket-Operation Failed: Fehlgeschlagen: ConfigDialog Use LDAP benutze LDAP LDAP Settings LDAP Einstellungen Server URL: Server URL: BaseDN: BaseDN: &OK &OK &Cancel A&bbrechen Failover Server 1 URL: Failover Server 1 URL: Failover Server 2 URL: Failover Server 2 URL: X-Server Settings X-Server Konfiguration Custom X-Server Eigener X-Server Reset to defaults Voreinstellungen Command: Befehl: Display: Displaynummer: Settings Konfiguration Applications (*.exe);;All Files (*.*) Anwendungen (*.exe);;Alle Dateien (*.*) Arguments: Argumente: Working directory: Arbeitsverzeichnis: X11 Application: X11 Applikation: X11 Version: X11 Version: Find X11 Application Suche X11 Applikation Warning Warnung x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2goclient konnte keine passende X11 Installation finden. Bitte Installieren Sie Apple X11 oder wählen Sie den Pfad zu einer gültigen Installation Your are using X11 (Apple X-Window Server) version Sie verwenden die Apple X11 Umgebung in der Version . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). . Es ist bekannt, dass bei dieser Version Darstellungsprobleme bei 24 Farbtiefe auftreten. Wir empfehlen Ihnen ein Update auf eine neuere Version (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path Unter dem angegebenden Pfad konnte keine gültige X11 Installation gefunden werden Clientside SSH Port For File System Export Usage: SSH-Port für die Dateisystemfreigabe auf Clientseite: LDAP settings LDAP Einstellungen Failover server 1 URL: Failover Server 1 URL: Failover server 2 URL: Failover Server 2 URL: X-Server settings X-Server Konfiguration X11 application: X11 Applikation: X11 version: X11 Version: Find X11 application Suche X11 Applikation Clientside SSH port for file system export usage: SSH-Port für die Dateisystemfreigabe auf Clientseite: General Allgemein Printing Druck Start session embedded inside website Sitzung innerhalb einer Webseite anzeigen Display icon in system tray Symbol im Systemabschnitt der Kontrolleiste anzeigen Hide to system tray when minimized In den Systemabschnitt der Kontrolleiste minimieren Hide to system tray when closed Statt Schließen in den Systemabschnitt der Kontrolleiste minimieren Hide to system tray after connection is established Bei Verbindung in den Systemabschnitt der Kontrolleiste minimieren Restore from system tray after session is disconnected Nach Verbindungsende wiederherstellen Advanced options Erweiterte Einstellungen Defaults Voreinstellungen &Connection &Verbindung &Settings &Einstellungen ConnectionWidget &Connection speed &Verbindungsgeschwindigkeit Connection speed: Verbindungsgeschwindigkeit: C&ompression K&ompression Method: Methode: Compression method: Methode: Image quality: Bildqualität: CupsPrinterSettingsDialog Dialog Dialog General Allgemein Page size: Seitenformat: Paper type: Papiertyp: Paper source: Papiereinzug: Duplex Printing Beidseitiger Druck None Kein Duplexdruck Long side Lange Seite Short side Kurze Seite Driver settings Treiber-Einstellungen Option OPtion Value Value No option selected Keine Einstellung ausgewählt text text EditConnectionDialog &Session &Sitzung &Connection &Verbindung &Settings &Einstellungen &OK &OK &Cancel Ab&brechen Defaults Voreinstellungen Session Name: Sitzungsname: << change Icon << Symbol ändern &Server &Server Host: Host: Use RSA/DSA key for ssh connection: RSA-/DSA-Schlüssel verwenden (ssh): &Desktop Session &Desktop Sitzung Custom Eigener Command: Befehl: &Connection Speed &Verbindungsgeschwindigkeit C&ompression K&ompression Method: Methode: Image Quality: Bildqualität: &Display &Display Fullscreen Vollbild Width: Breite: Height: Höhe: &Keyboard &Tastatur Keep current Keyboard Settings Tastaturlayout behalten Keyboard Layout: Tastaturlayout: Keyboard Model: Tastatur: Sound Audio Enable Sound Support Audiounterstützung aktivieren Automount automatisch verbinden Add Hinzufügen Delete Löschen New Session Neue Sitzung Session Preferences - Sitzungsvoreinstellungen - Open Key File Öffne Schlüssel All Files alle Dateien us de pc105/us pc105/de &Shared Folders &freigegebene Ordner Login: Login: &Folders &Ordner Path Pfad Path: Pfad: Open Picture Öffne Bild Pictures Bilder Select Folder wähle Ordner SSH Port: SSH-Port: Path to executable Pfad zum Programm Window Fenster &Shared folders &freigegebene Ordner Session name: Sitzungsname: << change icon << Symbol ändern SSH port: SSH-Port: &Session type &Sitzungsart Session type: Sitzungsart: Custom desktop Andere Desktopumgebung Single application Anwendung &Connection speed &Verbindungsgeschwindigkeit Connection speed: Verbindungsgeschwindigkeit: Compression method: Methode: Image quality: Bildqualität: Keep current keyboard Settings Tastaturlayout behalten Keyboard layout: Tastaturlayout: Keyboard model: Tastatur: Enable sound support Audiounterstützung aktivieren Start sound daemon Starte Sound Server Use running sound daemon Benutze existierenden Sound Server Use SSH port forwarding to tunnel sound system connections through firewalls Benutze Port-Weiterleitung über Tunnel um Audiosignale über Firewalls zu verbinden Use default sound port Benutze standard Audio Port Sound port: Audio Port: Use ssh port forwarding to tunnel file system connections through firewalls Benutze SSH-Port-Weiterleitung über Tunnel um Dateisysteme über Firewalls zu verbinden New session Neue Sitzung Session preferences - Sitzungsvoreinstellungen - Open picture Öffne Bild Open key file Öffne Schlüssel All files Alle Dateien Select folder Wähle Ordner Client side printing support Clientseitige Druckunterstützung Connect to Windows terminal server Verbindung mit Windows Terminalserver herstellen Advanced options... Erweiterte Einstellungen... Server: Server: rdesktop command line options: rdesktop Kommandozeilenoptionen: ExportDialog &Cancel A&bbrechen &Preferences ... &Voreinstellungen ... Delete Delete lösche &share &Freigeben &Custom Folder ... &Anderer Ordner ... share Folders Ordner freigeben Select Folder wähle Ordner &Custom folder ... &Anderer Ordner ... share folders Ordner freigeben Select folder Wähle Ordner HttpBrokerClient us de pc105/us pc105/de Host key for server changed. It is now: Host-Key des Servers hat sich geändert. Er lautet jetzt: For security reasons, connection will be stopped Aus Sicherheitsgründen wird der Verbindungsaufbau abgebrochen The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Der Hostkey des Servers konnte nicht gefunden werden aber ein anderer Schlüsseltyp existiert. Ein Angreifer kann den Schlüssel verändert haben, um dem Client vorzutäuschen, dass der Schlüssel nicht existiert Could not find known host file.If you accept the host key here, the file will be automatically created Die ,,Known Host''-Datei konnte nicht gefunden werden. Wenn Sie den Host-Key hier akzeptieren, dann wird die Datei automatisch erstellt. The server is unknown. Do you trust the host key? Public key hash: Der Server ist unbekannt. Vertrauen Sie diesem Host-Key? Öffentlicher Schlüssel: Host key verification failed Hostkey Überprüfung fehlgeschlagen Yes Ja No Nein Enter passphrase to decrypt a key Bitte Kennwort eingeben, um den Key zu entschlüsseln Authentication failed Anmeldung fehlgeschlagen Error Fehler Login failed!<br>Please try again Anmeldung fehlgeschlagen!<br>Bitte noch einmal versuchen <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>Server benutzt ein ungültiges Zertifikat.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>Sie sollten keine Ausnahme setzen, wenn Sie sich in einem Netzwerk befinden, dem sich nicht vertrauen oder wenn Sie für diese Verbindung bereits eine Ausnahme akzeptiert haben.</p> Secure connection failed Sichere Verbindung fehlgeschlagen Issued to: Ausgestellt für: Common Name(CN) Common Name(CN) Organization(O) Organization(O) Organizational Unit(OU) Organizational Unit(OU) Serial Number Serial Number Issued by: Ausgestellt von: Validity: Validity: Issued on Issued on expires on expires on Fingerprints: Fingerabdrücke: SHA1 SHA1 MD5 MD5 Exit X2Go Client X2Go Client beenden Add exception Ausnahme hinzufügen Your session was disconnected. To get access to your running session, please return to the login page or use the "reload" function of your browser. Die aktuelle Sitzung wurde unterbrochen. Um erneut Zugriff auf ihre Sitzung zu erhalten, kehren Sie zur Startseite zurück oder aktualisieren Sie die aktuelle Seite über den Browserbefehl "Aktuelle Seite neu laden". ONMainWindow us de pc105/us pc105/de Support ... Support ... Session: Sitzung: &Quit &Beenden Ctrl+Q Strg+Q Quit Beenden &New Session ... &Neue Sitzung ... Ctrl+N Strg+N Session Management... Sitzungsverwaltung... Ctrl+E Strg+E LDAP &Settings ... LDAP &Konfiguration ... Restore toolbar Wergzeugleiste wieder anzeigen About X2GO Client Über X2GoClient About Qt Über QT Session Sitzung Ctrl+Q exit Strg +Q &Session &Sitzung &Options &Einstellungen &Help &Hilfe New session started Neue Sitzung gestartet Session resumed Sitzung fortgesetzt Unable to create folder: Ordner kann nicht erstellt werden: Unable to write file: Datei kann nicht geschrieben werden: Emergency exit. Notausgang. Waiting for proxy to exit. Warten darauf, dass der Proxy sich beendet Failed, killing the proxy. Fehlgeschlagen, töte Proxy. Wrong parameter: Falscher Parameter: RSA file empty. RSA Datei leer. Can not open key: Schlüssel kann nicht geöffnet werden: Card not configured. Smartcard nicht konfiguriert. Error getting window geometry (window closed)? Fehler beim Ermitteln der Fenstergeometrie (Fenster geschlossen?). Password: Passwort: Keyboard layout: Tastaturlayout: Ok Ok Cancel Abbrechen Applications... Anwendungen... Invalid reply from broker Ungültige Antwort vom Session-Broker Error Fehler KDE KDE on on Login: Benutzername: Select session: Wähle Sitzung: Resume Fortfahren Suspend Anhalten Terminate Beenden New Neu Display Display Status Status Server Server Creation Time Startzeit Client IP Client IP running aktiv suspended angehalten Unable to create Folder: Ordner kann nicht erzeugt werden: Unable to write File: Datei kann nicht geschrieben werden: Unable to create SSL Tunnel: SSL Tunnel kann nicht erzeugt werden: Warning Warnung connecting verbinde starting starte resuming aktiviere Connection timeout, aborting Zeitüberschreitung aborting Abbruch <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation Time:<br>Status:</b> <b>Sitzungs ID:<br>Server:<br>Login:<br>Display:<br>Startzeit:<br>Status:</b> Abort Abbruch Show Details Zeige Details (can't open file) (kann Datei nicht öffnen) (file not exists) (Datei existiert nicht) (directory not exists) (Verzeichnis existiert nicht) wrong value for argument"--link" unerwarteter Wert "--link" wrong value for argument"--sound" unerwarteter Wert "--sound" wrong value for argument"--geometry" unerwarteter Wert "--geometry" wrong value for argument"--set-kbd" unerwarteter Wert "--set-kbd" wrong value for argument"--ldap" unerwarteter Wert "--ldap" wrong value for argument"--pack" unerwarteter Wert "--pack" wrong parameter: unerwarteter Wert: Available pack methodes: Liste aller Packmethoden: Support Support </b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> Please check LDAP Settings Bitte überprüfen Sie die LDAP Einstellungen no X2Go Server found in LDAP LDAP enthält keinen X2GoServer Are you sure you want to delete this Session? Sind Sie sicher, dass Sie die Sitzung löschen wollen? <b>Connection failed</b> <b>Verbindung fehlgeschlagen</b> No Server availabel es konnte kein Server gefunden werden Session ID Sitzungs ID suspending anhalten terminating beende <b>Connection failed</b> : <b>Verbindung fehlgeschlagen</b> : Share Folder... Ordner freigeben... Usage: x2goclient [Options] Options: --help Print this message --help-pack Print availabel pack methods --no-menu Hide menu bar --maximize Start maximized --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established --ldap=<host:port:dn> Start with LDAP Support. Example: --ldap=ldapserver:389:o=organization,c=de --command=<cmd> Set default command, default value 'KDE' --sound=<0|1> Enable sound, default value '1' --geomerty=<W>x<H>|fullscreen Set default geometry, default value '800x600' --link=<modem|isdn|adsl|wan|lan> Set default link type, default 'lan' --pack=<packmethod> Set default pack method, default '16m-jpeg-9' --kbd-layout=<layout> Set default keyboard layout, default 'us' --kbd-type=<typed> Set default keyboard type, default 'pc105/us' --set-kbd=<0|1> Overwrite current keyboard settings, default '0' Usage: x2goclient [Options] Options: --help Print this message --help-pack Print availabel pack methods --no-menu Hide menu bar --maximize Start maximized --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established --ldap=<host:port:dn> Start with LDAP Support. Example: --ldap=ldapserver:389:o=organization,c=de --command=<cmd> Set default command, default value 'KDE' --sound=<0|1> Enable sound, default value '1' --geomerty=<W>x<H>|fullscreen Set default geometry, default value '800x600' --link=<modem|isdn|adsl|wan|lan> Set default link type, default 'lan' --pack=<packmethod> Set default pack method, default '16m-jpeg-9' --kbd-layout=<layout> Set default keyboard layout, default 'us' --kbd-type=<typed> Set default keyboard type, default 'pc105/us' --set-kbd=<0|1> Overwrite current keyboard settings, default '0' Unable to read : Lesefehler: Unable to write : Schreibfehler: <b>X2Go Client V. 2.0.1</b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <b>X2GoClient V. 2.0.1</b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2GoServers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten Sie auf x2go.org. <b>Wrong Password!</b><br><br> <b>Falsches Passwort!</b><br><br> wrong value for argument"--ldap1" unerwarteter Wert "--ldap1" wrong value for argument"--ldap2" unerwarteter Wert "--ldap2" Usage: x2goclient [Options] Options: --help Print this message --help-pack Print availabel pack methods --no-menu Hide menu bar --maximize Start maximized --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established --ldap=<host:port:dn> Start with LDAP Support. Example: --ldap=ldapserver:389:o=organization,c=de --ldap1=<host:port> LDAP Failover Server #1 --ldap2=<host:port> LDAP Failover Server #2 --command=<cmd> Set default command, default value 'KDE' --sound=<0|1> Enable sound, default value '1' --geomerty=<W>x<H>|fullscreen Set default geometry, default value '800x600' --link=<modem|isdn|adsl|wan|lan> Set default link type, default 'lan' --pack=<packmethod> Set default pack method, default '16m-jpeg-9' --kbd-layout=<layout> Set default keyboard layout, default 'us' --kbd-type=<typed> Set default keyboard type, default 'pc105/us' --set-kbd=<0|1> Overwrite current keyboard settings, default '0' Usage: x2goclient [Options] Options: --help Print this message --help-pack Print availabel pack methods --no-menu Hide menu bar --maximize Start maximized --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established --ldap=<host:port:dn> Start with LDAP Support. Example: --ldap=ldapserver:389:o=organization,c=de --ldap1=<host:port> LDAP Failover Server #1 --ldap2=<host:port> LDAP Failover Server #2 --command=<cmd> Set default command, default value 'KDE' --sound=<0|1> Enable sound, default value '1' --geomerty=<W>x<H>|fullscreen Set default geometry, default value '800x600' --link=<modem|isdn|adsl|wan|lan> Set default link type, default 'lan' --pack=<packmethod> Set default pack method, default '16m-jpeg-9' --kbd-layout=<layout> Set default keyboard layout, default 'us' --kbd-type=<typed> Set default keyboard type, default 'pc105/us' --set-kbd=<0|1> Overwrite current keyboard settings, default '0' Unable to create file: Datei konnte nicht erzeugt werden: No valid card found Es wurde keine gültige Karte gefunden This card is unknown by X2Go System Diese Karte ist dem X2Go-System unbekannt &Settings ... &Konfiguration ... Options Einstellungen Can't read host rsa key: RSA Schlüssel konnte nicht gelesen werden: Can't connect to X-Server Verbindung zu X-Server konnte nicht hergestellt werden Can't connect to X server Please check your settings Can't connect to X-Server Please check your settings Verbindung zu X-Server konnte nicht hergestellt werden Bitte überprüfen Sie Ihre Einstellungen Can't start X-Server X-Server konnte nicht gestartet werden Can't start X Server Please check your settings X-Server konnte nicht gestartet werden Überprüfen Sie Ihre Einstellungen Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to Die aktuell verwendete Farbtiefe unterscheidet sich von der der wiederherzustellenden Sitzung. Der Versuch, die Sitzung fortzuführen kann zu Fehlern führen, inbesondere dem <b>Verlust der ganzen Sitzung</b>. Um Fehler zu vermeiden wird empfohlen, die aktuelle Farbtiefe auf 24 or 32 24 oder 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? bit zu ändern und den verwendeten X-server neu zu starten, bevor Sie sich mit der Sitzung verbinden. Trotzdem versuchen die Sitzung fortzuführen? Yes Ja No Nein <b>X2Go Client V. <b>X2GoClient V. </b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2GoServers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. </b><br> (C. 2006-2008 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2008 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2GoServers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. OpenOffice.org Terminal unknown unbekannt Command Befehl Type Typ Desktop Desktopumgebung single application Anwendung shadow session <br>Sudo configuration error <br>Fehler in der Sudo Konfiguration Unable to execute: Befehl konnte nicht ausgeführt werden: X2Go Client Internet browser Webbrowser Email client E-Mail-Programm &New session ... &Neue Sitzung ... Session management... Sitzungsverwaltung... Show toolbar Zeige Wergzeugleiste About X2GO client Über X2GoClient Please check LDAP settings Bitte überprüfen Sie die LDAP Einstellungen no X2Go server found in LDAP LDAP enthält keinen X2GoServer Are you sure you want to delete this session? Sind Sie sicher, dass Sie die Sitzung löschen wollen? <b>Wrong password!</b><br><br> <b>Falsches Passwort!</b><br><br> No server availabel es konnte kein Server gefunden werden Not connected Active connection Nicht verbunden Creation time Startzeit Unable to create folder: Ordner kann nicht erzeugt werden: Enter passphrase to decrypt a key Bitte Kennwort eingeben, um den Schlüssel zu öffnen No X2Go sessions found, closing. Keine X2Go Sitzung gefunden, Programm wird geschlossen. Starting connection to server: Verbindung mit Server wird gestartet: to auf Connection Error( Verbindungsfehler( Couldn't find a SSH connection. Konnte keine SSH Verbindung finden. Host key for server changed. It is now: Host-Key des Servers hat sich geändert. Er lautet jetzt: For security reasons, connection will be stopped Aus Sicherheitsgründen wird der Verbindungsaufbau abgebrochen The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Der Host-Key des Servers konnte nicht gefunden werden aber ein anderer Schlüsseltyp existiert. Ein Angreifer kann den Schlüssel verändert haben, um dem Client vorzutäuschen, dass der Schlüssel nicht existiert Could not find known host file.If you accept the host key here, the file will be automatically created Die ,,Known Host''-Datei konnte nicht gefunden werden. Wenn Sie den Host-Key hier akzeptieren, dann wird die Datei automatisch erstellt. The server is unknown. Do you trust the host key? Public key hash: Der Server ist unbekannt. Vertrauen Sie diesem Host-Key? Öffentlicher Schlüssel: Host key verification failed Die Überprüfung des Host-Keys schlug fehl Authentication failed: Anmeldung fehlgeschlagen: Authentication failed Anmeldung fehlgeschlagen Enter password for SSH proxy Kennwort für SSH Proxy eingeben Connection failed: Verbindung fehlgeschlagen: - Wrong password. - Falsches Kennwort. Server not availabel Server nicht verfügbar Unable to write file: Datei kann nicht geschrieben werden: Unable to create SSL tunnel: SSL Tunnel kann nicht erzeugt werden: <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>Sitzungs ID:<br>Server:<br>Login:<br>Display:<br>Startzeit:<br>Status:</b> Share folder... Ordner freigeben... Show details Zeige Details This card is unknown by X2Go system Diese Karte ist dem X2Go-System unbekannt Can't start X server Please check your settings X-Server lässt sich nicht starten. Bitte überprüfen Sie Ihre Installation Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package Der gewählte server unterstützt kein Dateisystemexport via SSH Tunnel Bitte installieren sie eine neuere Version von x2goserver &Create session icon on desktop... &Desktopsymbol erzeugen... Starting x2goclient... X2Go Client wird gestartet... Starting x2goclient in portable mode... data directory is: Portable X2Go Client wird gestartet... Datenverzeichnis ist: Started x2goclient. X2Go Client ist gestartet. Can't load translator: Kann Übersetzer nicht laden: Translator: Übersetzung: installed. installiert. &Set broker password... &Kennwort für Session-Broker setzen... &Connectivity test... &Verbindungstest... Operation failed Operation fehlgeschlagen Password changed Das Kennwort wurde geändert Wrong password! Falsches Kennwort! <b>Authentication</b> <b>Authentifizierung</b> Restore Wiederherstellen Multimedia Unterhaltungsmedien Development Entwicklung Education Bildung Game Spiele Graphics Grafik Network Internet Office Büroprogramme Settings Einstellungen System Systemwerkzeuge Utility Dienstprogramme Other Sonstige Left mouse button to hide/restore - Right mouse button to display context menu Left click to open the X2GoClient window or right click to get the context menu. Linke Maustaste: verstecken/wiederherstellen - rechte Maustaste: Kontextmenü Closing x2goclient... X2Go Client wird geschossen... Closed x2goclient. X2Go Client wurde geschlossen. Create session icon on desktop Desktopsymbol erzeugen Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Der Aufruf über Desktopsymbole kann erfolgen, ohne dass der X2GoClient sichtbar wird (versteckter Modus). Diesen Modus können Sie nutzen, wenn Sie den Loginvorgang über einen GPG-Schlüssel oder eine GPG-Smartcard konfiguriert haben. Wollen Sie den versteckten Modus nutzen? New Session Neue Sitzung X2Go sessions not found Keine X2Go-Sitzungen gefunden RDP connection RDP Verbindung X2Go Link to session Detach X2Go window Fenster abkoppeln Attach X2Go window Fenster einbetten Finished Beendet Are you sure you want to terminate this session? Unsaved documents will be lost Die Sitzung wird beendet. Sind Sie sicher?<br>Ungespeicherte Dokumente gehen verloren </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2009 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2GoServers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. Can't start X Server Please check your installation X-Server lässt sich nicht starten. Bitte überprüfen Sie Ihre Installation X2Go Session X2Go-Sitzung Minimize toolbar Symbole verstecken <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <br><b>&nbsp;&nbsp;&nbsp;zum Wiederherstellen&nbsp;&nbsp;&nbsp;<br> &nbsp;&nbsp;&nbsp;der Werkzeugleiste&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;hier klicken&nbsp;&nbsp;&nbsp;</b><br> Can't open config file: Konfigurationsdatei lässt sich nicht öffnen: sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> SSHD konnte nicht gefunden werden. SSHD wird für Dateifreigaben und Druck benötigt. Sie können SSHD über folgenden Befehl installieren: <b>sudo apt-get install openssh-server</b> Connection to local desktop Zugriff auf lokalen Desktop Information Hinweis Filter Filter Select desktop: Desktopauswahl: View only Nur betrachten User Benutzer XDMCP XDMCP No accessible desktop found Kein freigegebener Desktop gefunden Full access Vollzugriff Only my desktops Nur eigene Desktops Reconnect Neu verbinden Connecting to broker Verbinden mit Broker </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>x2goplugin Modus wurde gefördert durch <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2GoServers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 wrong value for argument"speed" wrong value for argument"speed" application/x2go:x2go:Configuration File for X2Go Session application/x2go:x2go:Konfigurationsdatei für eine X2Go-Sitzung PrintDialog Print Druck You've deactivated the x2go client printing dialog. Sie haben den clientseitigen Druckdialog deaktiviert. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) Über die Clienteinstellungen (Menü -> Einstellungen -> Konfiguration) können Sie den Dialog wieder einblenden Print - X2Go Client Drucken - X2GoClient PrintProcess Save File Datei speichern PDF Document (*.pdf) PDF Dokument (*.pdf) Failed to execute command: Befehl konnte nicht ausgeführt werden: Printing error Druckfehler PrintWidget Form Form Print Druck View as PDF Als PDF anzeigen Print settings Druckeinstellungen Printer command: Druckbefehl: ... ... Viewer settings Anzeigeoptionen Open in viewer application Als PDF (Anzeige) öffnen Command: Befehl: Save to disk Als Datei speichern Show this dialog before start printing Diesen Dialog vor Druckstart anzeigen Please configure your client side printing settings.<br><br>If you want to print the created file, you'll need an external application. Typically you can use <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> and <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>You can find further information <a href="http://www.x2go.org/index.php?id=49">here</a>. Legen Sie hier die Druckerkonfiguration für den clientseitigen Druck fest.<br><br>Um die erzeugten Dateien auf einem Drucker ausgeben zu können, wird ein externes Programm benötigt. Typischerweise wird <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">Ghostprint</a> und <a href="http://pages.cs.wisc.edu/~ghost/gsview/">Ghostview</a> verwendet<br>Weiterführende Infromationen erhalten Sie <a href="http://www.x2go.org/index.php?id=6">hier</a>. Printer: Drucker: Print using default Windows PDF Viewer (Viewer application needs to be installed) Mit Hilfe eines PDF-Anzeigeprogramms drucken (PDF-Anzeigeprogramm muss installiert sein) PrinterCmdDialog Printer command Druckbefehl Command Befehl Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Bitte geben Sie einen individuellen Druckbefehl an. Beispiele: kprinter lpr -P hp_laserjet Output format Ausgabeformat Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Bitte wählen Sie ein Dateiformat für den Druck (passend zu Ihrer Druckumgebung - bei Verwendung von CUPS können Sie z.B, PDF nutzen) PDF PDF PS PS Data structure Datenstruktur Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): Bitte wählen Sie die Ausgabeform für die Druckübergabe (Einige Druckumgebungen erwarten Dateien als Programmoptionen, andere erwarten die Ausgabe als "standard input"): standard input (STDIN) standard input (STDIN) Specify path as program parameter Geben Sie den Pfad als Programmoption an Please enter your customized or individual printing command. Example: Bitte geben Sie einen individuellen Druckbefehl an. Beispiel: <Path to gsprint.exe> -query -color <Pfad zur gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? Keine Antwort vom Server. Möchten Sie die Sitzung unterbrechen? SessionButton Session Preferences... Sitzungsvoreinstellungen... Delete Session... Sitzung löschen... Select Type Auswahl Select Resolution Wähle Auflösung Toggle Sound support Aktiviere Audiounterstützung New Session Neue Sitzung KDE KDE Published applications Veröffentlichte Anwendungen fullscreen Vollbild Display Anzeige Maximum Maximum Enabled aktiviert Disabled deaktiviert /usr/bin/startkde /usr/bin/startkde window Fenster Session preferences... Sitzungseinstellungen... Create session icon on desktop... Desktopsymbol erzeugen... Delete session Sitzung entfernen Session actions Optionen Select type Typ Select resolution Auflösung Toggle sound support Sound running aktiv suspended angehalten RDP connection RDP Verbindung Connection to local desktop Zugriff auf lokalen Desktop XDMCP XDMCP SessionManageDialog E&xit Be&enden &New Session &Neue Sitzung &Session Preferences &Sitzungsvoreinstellungen &Delete Session &Sitzung löschen Delete Delete löschen Session Management Sitzungsverwaltung &New session &Neue Sitzung &Session preferences &Sitzungsvoreinstellungen &Delete session &Sitzung löschen Session management Sitzungsverwaltung &Create session icon on desktop... &Desktopsymbol erzeugen... SessionWidget Session name: Sitzungsname: << change icon << Symbol ändern &Server &Server Host: Host: Login: Login: SSH port: SSH-Port: Use RSA/DSA key for ssh connection: RSA-/DSA-Schlüssel verwenden (ssh): Try auto login (ssh-agent or default ssh key) Anmeldung über voreingestellten SSH-Schlüssel oder ssh-agent Kerberos 5 (GSSAPI) authentication Kerberos5 (GSSAPI) Authentifizierung Use Proxy server for SSH connection Proxy Server für SSH Verbindung verwenden Proxy server Proxy-Server SSH SSH HTTP HTTP Same login as on X2Go Server Gleiche Anmeldung wie für X2Go-Server Same password as on X2Go Server Gleiches Kennwort wie für X2Go-Server RSA/DSA key: RSA/DSA-Schlüssel: ssh-agent or default ssh key SSH-Agent oder SSH-Standardschlüssel Type: Typ: Port: Port: &Session type &Sitzungsart Session type: Sitzungsart: Connect to Windows terminal server Verbindung mit Windows Terminalserver herstellen Custom desktop Andere Desktopumgebung Single application Anwendung Published applications Veröffentlichte Anwendungen Command: Befehl: Advanced options... Erweiterte Einstellungen... Path to executable Pfad zum Programm Direct RDP Connection Direkte RDP Verbindung RDP port: RDP port: Open picture Öffne Bild Pictures Bilder Open key file Öffne Schlüssel All files Alle Dateien Server: Server: rdesktop command line options: rdesktop Kommandozeilenoptionen: New session Neue Sitzung Connect to local desktop Zugriff auf lokalen Desktop XDMCP server: XDMCP Server: XDMCP XDMCP Error Fehler x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient wird gerade als portable Anwendung ausgeführt. Sie sollten einen Pfad auf dem USB-Medium wählen, um von überall aus auf Ihre Daten zugreifen zu können. SettingsWidget &Display &Display &Keyboard &Tastatur Sound Audio RDP Client RDP Client Fullscreen Vollbild Custom Eigener Window Fenster Use whole display Ganzen Bildschirm verwenden Maximum available Maximal verfügbare Größe Set display DPI Auflösung festlegen (DPI) Xinerama extension (support for two or more physical displays) Xinerama-Erweiterung (unterstützt zwei oder mehr Bildschirme) Width: Breite: Height: Höhe: &Display: &Bildschirm: &Identify all displays &Alle Bildschirme identifizieren Keep current keyboard Settings Tastaturlayout behalten Keyboard layout: Tastaturlayout: Keyboard model: Tastatur: Enable sound support Audiounterstützung aktivieren Start sound daemon Starte Sound Server Use running sound daemon Benutze existierenden Sound Server Use SSH port forwarding to tunnel sound system connections through firewalls Benutze Port-Weiterleitung über Tunnel um Audiosignale über Firewalls zu verbinden Use default sound port Benutze standard Audio Port Sound port: Audio Port: Client side printing support Clientseitige Druckunterstützung Additional parameters: Zusätzliche Parameter: Command line: Kommandozeile: us de pc105/us pc105/de password Kennwort ShareWidget &Folders &Ordner Path Pfad Automount automatisch verbinden Add Hinzufügen Delete Löschen Path: Pfad: Use ssh port forwarding to tunnel file system connections through firewalls Benutze SSH-Port-Weiterleitung über Tunnel um Dateisysteme über Firewalls zu verbinden Select folder Wähle Ordner Filename encoding Kodierung der Dateinamen WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 local: lokal: remote: entfernt: Error Fehler x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient befindet sich im portablen Ausführungsmodus. Wenn Sie einen Pfad ausserhalb des USB Geräts wählen, können sie auf die Daten nicht von überall aus zugreifen SshMasterConnection SSH proxy connection error Verbindungsfehler SSH-Proxy SSH proxy connection error: SSH-Proxy Verbindungsfehler: Failed to create SSH proxy tunnel Aufbau des SSH-Proxy-Tunnels fehlgeschlagen Can not initialize libssh Kann libssh nicht initialisieren Can not create ssh session Kann SSH-Sitzung nicht erstellen Can not connect to proxy server Verbindung zu Proxy-Server nicht möglich Can not connect to Verbindungsaufbau nicht möglich Authentication failed Anmeldung fehlgeschlagen channel_forward_listen failed channel_forward_listen schlug fehl Can not open file Kann Datei nicht öffnen Can not create remote file Kann entfernte Datei nicht öffnen Can not write to remote file Kann entfernte Datei nicht schreiben can not connect to Kann Verbindung nicht herstellen zu channel_open_forward failed channel_open_forward schlug fehl channel_open_session failed channel_open_session schlug fehl channel_request_exec failed channel_request_exec schlug fehl error writing to socket Fehler beim Schreiben auf Socket error reading channel Channel Lesefehler channel_write failed Channel Schreibfehler error reading tcp socket Lesefehler TCP-Socket SshProcess Error creating socket Socket-Fehler beim Erstellen Error binding Socket-Bind-Fehler XSettingsWidget Open File Datei öffnen Executable (*.exe) Ausführbare Datei (*.exe) XSettingsWidgetUI Form Formular You must restart the X2Go Client for the changes to take effect Sie müssen X2GoClient neu starten, um die Änderungen zu aktivieren use integrated X-Server integrierten X-Server verwenden do not use primary clipboard Nicht das primäre Clipboard verwenden use custom X-Server benutzerdefinierten X-Server verwenden custom X-Server benutzerdefinierter X-Server executable: Ausführbare Datei: start X-Server on X2Go Client start X-Server auf X2GoClient starten command line options: Kommandozeilenoptionen: X-Server command line options Kommandozeilenoptionen des X-Servers window mode: Fenstermodus: fullscreen mode: Vollbildmodus: single application: Einzelanwendung: sshProcess Unable to create: Erstellung fehlgeschlagen: Yes Ja No Nein Unable to write: Schreibfehler: Error Fehler Cannot create temporary file Temporäre Datei konnte nicht angelegt werden Host key verification failed Host-Key Überprüfung fehlgeschlagen x2goclient-4.0.1.1/x2goclient_es.ts0000644000000000000000000036035312214040350013735 0ustar AppDialog Published Applications Aplicaciones Publicadas Search: Buscar: &Start &Iniciar &Close &Cerrar Multimedia Multimedia Development Desarrollo Education Educación Game Juegos Graphics Gráficos Network Red Office Oficina Settings Preferencias System Sistema Utility Utilidades Other Otras BrokerPassDialogUi Dialog Diálogo Old password: Contraseña anterior: New password: Nueva contraseña: Confirm password: Repetir nueva contraseña: TextLabel Etiqueta BrokerPassDlg Passwords do not match Las contraseñas introducidas no coinciden CUPSPrintWidget Form Formulario Name: Nombre: Properties Propiedades State: Estado: Accepting jobs: Aceptando trabajos: Type: Tipo: Location: Ubicación: Comment: Comentarios: Idle Ocupada Printing Imprimiendo Stopped Detenida Yes Si No No CUPSPrinterSettingsDialog No option selected No se seleccionó ninguna opción This value is in conflict with other option Este valor entra en conflico con otra opción Options conflict Conflicto de opciones ConTest Connectivity test Test de conexión HTTPS connection: Conexión HTTPS: SSH connection: Conexión SSH: Connection speed: Velocidad de la conexión: Failed Error 0 Kb/s 0 Kb/s OK Ok Socket operation timed out Tiempo de espera sobrepasado en la conexión con el socket Failed: Error: ConfigDialog General General Display icon in system tray Mostrar icono de notificación en la bandeja del sistema Hide to system tray when minimized Ocultar icono de notificación al minimizar Hide to system tray when closed Ocultar icono de notificación al cerrar Hide to system tray after connection is established Ocultar icono de notificación tras la conexión Restore from system tray after session is disconnected Restaurar ventana al desconectar la conexión Use LDAP Usar LDAP Server URL: URL del servidor: BaseDN: BaseDN: Failover server 1 URL: URL del Servidor LDAP alternativo 1: Failover server 2 URL: URL del Servidor LDAP alternativo 2: X-Server settings Configuración del servidor X X11 application: Aplicación X11: X11 version: Versión de X11: Find X11 application Encontrar aplicación X11 Clientside SSH port for file system export usage: Puerto SSH del lado del cliente para exportar el sistema de archivos: Start session embedded inside website Iniciar sesión dentro del sitio web Advanced options Opciones avanzadas Defaults Valores defecto &OK &Ok &Cancel &Cancelar Settings Propiedades Printing Impresión Warning Advertencia x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2gocliente no puede encontrar ninguna aplicación X11. Instala Apple X11 o selecciona la ruta para la aplicación Your are using X11 (Apple X-Window Server) version Estás usando X11 (Servdio X-Windows de Apple) versión . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). . Esta versión tiene problemas con aplicaciones X con 24bits de color. Deberías actualizar tu entorno X11 (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path No se encontró una aplicación X11 válida en la ruta seleccionada &Connection &Conexión &Settings &Propiedades ConnectionWidget &Connection speed &Velocidad de la conexión Connection speed: Velocidad de la conexión: C&ompression C&ompresión Method: Método: Compression method: Método de compresión: Image quality: Calidad de la imagen: CupsPrinterSettingsDialog Dialog Diálogo General General Page size: Tamaño de página: Paper type: Tipo de papel: Paper source: Origen del papel: Duplex Printing Doble cara None Ninguna Long side A lo largo Short side A lo ancho Driver settings Propiedades del controlador Option Opción Value Valor No option selected No se seleccionó ninguna opción text texto EditConnectionDialog &Session &Sesión &Connection &Conexión &Settings &Propiedades &Shared folders C&arpetas compartidas &OK &Ok &Cancel &Cancelar Defaults Valores por defecto Session preferences - Preferencias de la sesión ExportDialog &Cancel &Cancelar &share &compartir &Preferences ... &Preferencias ... &Custom folder ... &Carpeta personalizada ... Delete Delete Eliminar share folders compartir carpetas Select folder Elegir carpeta HttpBrokerClient us us pc105/us pc105/us Error Error Login failed!<br>Please try again Falló el inicio de sesión<br>Inténtalo de nuevo Your session was disconnected. To get access to your running session, please return to the login page or use the "reload" function of your browser. Tu sesión se desconectó. Para tener acceso a tu sesión en ejecución vuelve a la página de inicio de sesión o usa al función "recargar" de tu navegador. Host key for server changed. It is now: La clave del servidor ha cambiado. Ahora es: For security reasons, connection will be stopped La conexión ha finalizado por razones de seguridad The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist No se ha encontrado la clave para este servidor aunque se han encontrado claves de otro tipo. Un hacker podría cambiar la clave por defecto del servidor para hacer creer al cliente que la clave no existe Could not find known host file.If you accept the host key here, the file will be automatically created No se encontró el archivos de claves conocidas en este equipo. Si aceptas se creará en nuevo archivo de claves The server is unknown. Do you trust the host key? Public key hash: Este servidor es desconocido. ¿Confiar en su clave? Hash de su clave pública: Host key verification failed Falló la comprobación de la clave del equipo Yes Si No No Enter passphrase to decrypt a key Introduce la frase de paso para desencriptar la clave Authentication failed Fallo de autenticación <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>El servidor usa un certificado de seguridad no válido.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>No deberías añadir una excepción de seguridad si estás usando una conexión a internet en la que no confías plenamente o si habitualmente no hay avisos de seguridad para este servidor</p> Secure connection failed Fallo en la seguridad de la conexión Issued to: Issued to: Common Name(CN) Common Name(CN) Organization(O) Organization(O) Organizational Unit(OU) Organizational Unit(OU) Serial Number Serial Number Issued by: Issued by: Validity: Validity: Issued on Issued on expires on expires on Fingerprints: Fingerprints: SHA1 SHA1 MD5 MD5 Exit X2Go Client Salir del cliente X2Go Add exception Añadir excepción ONMainWindow Starting x2goclient... Iniciando el cliente X2Go us us pc105/us pc105/us X2Go Client Cliente X2Go connecting conectando Internet browser Navegador web Email client Cliente de correo OpenOffice.org OpenOffice.org Terminal Terminal Starting x2goclient in portable mode... data directory is: Iniciando x2goclint en modo portable... el directorio de los datos es: &Settings ... &Preferencias ... Support ... Soporte ... About X2GO client Acerca del cliente X2Go Started x2goclient. Cliente X2Go iniciado. Can't load translator: No se puede cargar el traductor. Translator: Traductor: installed. instalado. Share folder... Compartir carpeta... Suspend Suspender Terminate Terminar Reconnect Reconectar Detach X2Go window Abrir nueva ventana X2go Minimize toolbar Minimar barra Session: Sesión: &Quit &Salir Ctrl+Q Ctrl+S Quit Salir &New session ... &Nueva sesión ... Ctrl+N Ctrl+N Session management... Gestión de sesiones... Ctrl+E Ctrl+E &Create session icon on desktop... &Crear icono de sesión en el escritorio... &Set broker password... &Seleccionar contraseña para el broker... &Connectivity test... Test de &conectividad Show toolbar Mostrar barra About Qt Sobre Qt Ctrl+Q exit Ctrl+S &Session &Sesión &Options &Opciones &Help &Ayuda Login: Usuario: Error Error Operation failed Falló la operación Password changed Contraseña cambiada Wrong password! ¡Contraseña errónea! Connecting to broker Conectando al broker <b>Authentication</b> <b>Autenticación</b> Restore Restaurar Not connected No conectado Multimedia Multimedia Development Desarrollo Education Educación Game Juegos Graphics Gráficos Network Redes Office Oficina Settings Ajustes System Sistema Utility Utilidades Other Otros Left mouse button to hide/restore - Right mouse button to display context menu Botón izquierdo del ratón para ocultar/restaurar - Botón derecho del ratón para mostrar el menú contextual Closing x2goclient... Cerrando x2goclient Closed x2goclient. x2goclient finalizado. Please check LDAP settings Comprueba los datos de conexión LDAP no X2Go server found in LDAP no se encontró ningún servidor X2Go en el LDAP Create session icon on desktop Crear icono de sesión en el escritorio Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Los iconoes del escritorio pueden configurarse para no mostrar la ventana del cliente x2go (modo oculto). Si quieres usar esta característica tienes que configurar el inicio de sesión usando una clave gpg o una smart card. ¿Usar el cliente x2go en modo oculto? New Session Nueva sesión X2Go Link to session Enlace a la sesión X2go No X2Go sessions found, closing. No se han encontrado sesiones X2Go. X2Go sessions not found No se encontró ninguna sesión X2Go Are you sure you want to delete this session? ¿Eliminar esta sesión? KDE KDE RDP connection Conexión RDP XDMCP XDMCP Connection to local desktop Conectar al escritorio local on on Starting connection to server: Iniciando conección con el servidor: to a Connection Error( Error en la conexión ( Couldn't find a SSH connection. No se pudo encontrar la conexión SSH. Enter passphrase to decrypt a key Introduce la frase de paso para desencriptar la clave Host key for server changed. It is now: La clave del servidor ha cambiado. Ahora es: For security reasons, connection will be stopped Se ha detenido la conexión por razones de seguridad The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist No se ha encontrado la clave para este servidor aunque se han econtrado otras. Un hacker podría cambiar la clave por defecto del servidor para hacer creer al cliente que la clave no existe Could not find known host file.If you accept the host key here, the file will be automatically created No se encontró el archivos de claves en este equipo. Si aceptas se creará en nuevo archivo de claves The server is unknown. Do you trust the host key? Public key hash: Este servidor es desconocido. ¿Confiar en su clave? Hash de su clave pública: Host key verification failed Falló la comprobación de la clave del equipo Yes Si No No Authentication failed: Fallo en la autenticación: Authentication failed Falló la autenticación Enter password for SSH proxy Introduce la contraseña para el proxy SSH <b>Connection failed</b> <b>Error en la conexión</b> <b>Wrong password!</b><br><br> <b>Contraseña incorrecta</b><br><br> Connection failed: Fallo en la conexión: - Wrong password. - Contraseña incorrecta. unknown desconocido No server availabel Servidor no disponible Server not availabel Servidor no disponible Select session: Seleccionar sesión: running activa suspended suspendida Desktop Escritorio single application aplicación shadow session sesión tipo shadow Information Información No accessible desktop found No se encontró ningún escritorio al que conectarse Filter Filtro Select desktop: Elige escritorio: Warning Atención Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to Tu profundidad de color actual es diferente de la profundidad de color de tu sesión de x2go. ¡Esto suele provocar problemas en la reconección y en la mayoría de los casos <b>perderás la sesión</b> y tendrás que iniciar una nueva! Te recomendamos cambiar la profundidad de color de tu pantalla a 24 or 32 24 o 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? bit y reiniciar tu servidor X antes de reconectar a esta sesión x2go. <br>¿Recuperar esta sesión? suspending suspendiendo terminating terminando <b>Wrong Password!</b><br><br> <b>¡Contraseña incorrecta!</b><br><br> New session started Iniciada nueva sesión Session resumed Sesión suspendida Unable to create folder: No se ha podido crear la carpeta: Unable to write file: No se ha podido guardar el archivo: Emergency exit. Salida de emergencia. Waiting for proxy to exit. Esperando a la salida del proxy. Failed, killing the proxy. Error, finalizando el proxy. Wrong parameter: Parámetro incorrecto: Unable to create folder: No se ha podido crear la carpeta: Unable to write file: No se ha podido guardar el archivo: Attach X2Go window Añadir ventana X2Go Unable to create SSL tunnel: No fue posible crear el tunel SSL: Unable to create SSL Tunnel: No fue posible crear el tunel SSL: Finished Finalizada starting iniciando resuming Not sure if trying to connect to a resumed session or the running session is being resumed. Current translation is for trying to connect a resumed session. If not wil be better something like "desconectando" restaurando Connection timeout, aborting Tiempo de conexión finalizado. Cancelando aborting cancelando Are you sure you want to terminate this session? Unsaved documents will be lost ¿Seguro que quieres finalizar la sesión? Los documentos no guardados se perderán Session Sesión Display Monitor Creation time Not sure if "creation time" means the date the session was created Sesión creada en <b>Connection failed</b> : <b>Error en la conexión</b> : (can't open file) (no se puede abrir el archivo) (file not exists) (el archivo no existe) (directory not exists) (la carpeta no existe) wrong value for argument"--link" valor incorrecto para el argumento "--link" wrong value for argument"--sound" valor incorrecto para el argumento "--sound" wrong value for argument"--geometry" valor incorrecto para el argumento "--geometry" wrong value for argument"--set-kbd" valor incorrecto para el argumento "--set-kdb" wrong value for argument"--ldap" valor incorrecto para el argumento "--ldap" wrong value for argument"--ldap1" valor incorrecto para el argumento "--ldap1" wrong value for argument"--ldap2" valor incorrecto para el argumento "--ldap2" wrong value for argument"--pack" valor incorrecto para el argumento "--pack" wrong parameter: parámetro incorrecto: Options Opciones Available pack methodes: Métodos disponibles: RSA file empty. Archivo RSA vacío. Can not open key: No se puede abrir la clave: Support Soporte </b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>el modo x2goplugin fue patrocinado por <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <br>Cliente para usar con el sistema de acceso remoto X2Go. Este cliente es capaz de conectar con él/los servidor/es X2go y iniciar, parar, guardar y terminar (si están en ejecucion) sesiones de escritorio. El Cliente X2Go almacena diferentes conexiones a servidores y puede recuperar de manera automática datos de autenticación desde directorios LDAP. Además puede usarse como un sistema de inicio de sesión a pantalla completa (reemplazando a gestores de inicio de sesión como xdm). Visita x2go.org para más información. <b>X2Go Client V. <b>cliente X2Go v. Please check LDAP Settings Revisa las opciones acceso a LDAP No valid card found No se encontró una semart card válida Card not configured. Tarjeta no configurada. This card is unknown by X2Go system El sistema C2Go no reconocoe esta smart card Unable to create file: Impoble crear el archivo: Can't connect to X server Please check your settings No se puede conectar con el servidor X Comprueba los datos de configuración Can't start X server Please check your settings No se puede iniciar el servidor X Comprueba los datos de configuración Can't start X Server Please check your installation No se puede iniciar el servidor X Comprueba la instalación del sistema Unable to execute: Imposible ejecutar el comando: Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package El servidor remoto no soporta el sistema de archivos exportado a través del tunel SSH Actualiza el paquete x2goserver en el servidor Unable to read : Imposible leer: Unable to write : Imposible escribir: WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 Error getting window geometry (window closed)? Fallo al obtener el tamaño de la ventana (ventana cerrada)? X2Go Session Sesión X2Go wrong value for argument"speed" valor incorrecto para el argumento "velocidad" Password: Contraseña: Keyboard layout: Tipo de teclado: Ok Ok Cancel Cancelar <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>ID de Sesión:<br>Servidor:<br>Nombre de usuario:<br>Monitor:<br>Sesión creada en:<br>Estado:</b> Applications... Aplicaciones... Abort Cancelar Show details Mostrar detalles Resume Desconectar New Nueva Full access Acceso completo View only Sólo ver Status Estado Command Comando Type Tipo Server Servidor Client IP IP del cliente Session ID ID de la Sesión User Usuario Only my desktops Sólo mis escritorios sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> no se ha iniciado sshd. Necesitas iniciar sshd para imprimir y para compartir carpetas puedes instalar sshd con <b>sudo apt-get install openssh-server</b> Restore toolbar Restaurar barra de herramientas <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <br><b>&nbsp;&nbsp;&nbsp;Haz clic en este botón&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;para restaurar la barra de herramientas&nbsp;&nbsp;&nbsp;</b><br> PrintDialog Print - X2Go Client Imprimir - Cliente X2Go Print Imprimir You've deactivated the x2go client printing dialog. Has desactiva el diálogo de impresión del cliente x2go. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) Puedes reactivar este diálogo dentro de las preferencia del cliente x2go (Menú -> Opciones - > Preferencias) PrintProcess Save File Guardar Archivo PDF Document (*.pdf) Documento PDF (*.pdf) Failed to execute command: Fallo al ejecutar el comando: Printing error Error de impresión PrintWidget Form Formulario Print Imprimir View as PDF Mostrar como PDF Print settings Opciones de impresión Printer: Impresora: Print using default Windows PDF Viewer (Viewer application needs to be installed) Imprimir usando el Visor PDF por defecto (se necesita instalar un visor de PDF) Printer command: Comando de impresión: ... ... Viewer settings Parámetros del visor Open in viewer application Abrir con el programa Command: Comando: Save to disk Guardar como archivo Show this dialog before start printing Mostrar este diálogo antes de imprimir Please configure your client side printing settings.<br><br>If you want to print the created file, you'll need an external application. Typically you can use <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> and <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>You can find further information <a href="http://www.x2go.org/index.php?id=49">here</a>. Configura los parámetros de impresión en el lado del cliente.<br><br>Si quieres imprimir el archivo creado necesitas un programa externo. Normalmente puedes usar <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> y <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>Puedes encontrar más información<a href="http://www.x2go.org/index.php?id=49">aquí</a>. PrinterCmdDialog Printer command Comando para imprimir Command Comando Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Introduce tu comando personalizado para imprimir. Ejemplos: kprinter lpr -P hp_larserjet Output format Formato de salida Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Selecciona el formato de impresión (de acuerdo a tu entorno de impresión - si usas CUPS puedes usar PDF) PDF PDF PS PS Data structure Estructura de datos Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): Selecciona el método de entrada para el archivo de impresión (algunos comando aceptan archivos de impresión como opciones; otros reciben datos de la entrada estándar): standard input (STDIN) entrada estándar (STDIN) Specify path as program parameter especificar ruta como parámetro del programa Please enter your customized or individual printing command. Example: Introduce el comando personalizado de impresión. Ejemplo: <Path to gsprint.exe> -query -color <Ruta a gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? No se ha recibido respuesta del servidor remoto. ¿Finalizar la sesión actual? SessionButton Session preferences... Preferencias de la sesión... Create session icon on desktop... Crear icono de sesión en el escritorio... Delete session Borrar sesión Session actions Acciones sobre la sesión Select type Elegir tipo Select resolution Elegir resolución Toggle sound support Alternar entre soporte para sonido activo sí o no New Session Nueva sesión running activa suspended suspendida KDE KDE RDP connection Conexión RDP XDMCP XDMCP Connection to local desktop Conexión al escritorio local Published applications Aplicaciones publicadas fullscreen pantalla completa Display Monitor window ventana Maximum Máximo Enabled Activo Disabled Desacactivado SessionManageDialog E&xit &Salir &New session &Nueva sesión &Session preferences &Preferencias de la sesión &Delete session &Eliminar sesión &Create session icon on desktop... &Crear icono de sesion en el escritorio... Delete Delete Eliminar Session management Manejo de sesiones SessionWidget Session name: Nombre de la sesión: << change icon << cambiar icono &Server &Servidor Host: Host: Login: Usuario: SSH port: Puerto SSH: Use RSA/DSA key for ssh connection: Usar claves RSA/DSA para la conexión ssh: Try auto login (ssh-agent or default ssh key) Intentar auto inicio de sesión (a través del agente ssh o de la clave ssh por defecto) Kerberos 5 (GSSAPI) authentication Autenticación Kerberos 5 (GSSAPI) Use Proxy server for SSH connection Usar servidor Proxy para la conexión SSH Proxy server Servidor Proxy SSH SSH HTTP HTTP Same login as on X2Go Server Mismos datos de inicio de sesión que en el servidor X2GO Same password as on X2Go Server Misma contraseña que el servidor X2Go RSA/DSA key: Clave RSA/DSA: ssh-agent or default ssh key agente ssh o clave ssh por defecto Type: Tipo: Port: Puerto: &Session type Tipo de &sesión Session type: Tipo de sesión: Connect to Windows terminal server Conectar a Windows Terminal Server XDMCP XDMCP Connect to local desktop Conectar al escritorio local Custom desktop Escritorio personalizado Single application Aplicación Published applications Aplicaciones publicadas Command: Comando: Advanced options... Opciones avanzadas... Path to executable Ruta al ejecutable Direct RDP Connection Conexión RDP directa RDP port: Puerto RDP: Open picture Abrir imagen Pictures Imágenes Open key file Archivo con la clave open All files Todos los archivos Error Error x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are el cliente x2go está ejecutándose en modo portable. Debería usar una ruta hacia tu dispositivo usb donde poder usar tus datos dondequiera estés Server: Servidor: XDMCP server: Servidor XDMCP: rdesktop command line options: opciones de línea de comando para rdesktop: New session Nueva sesión SettingsWidget &Display &Monitor &Keyboard &Teclado Sound Sonido RDP Client Cliente RDP Fullscreen Pantalla completa Custom Personalizado Window Ventana Use whole display Usar toda la pantalla Maximum available Máxima disponible Set display DPI Especificar DPI Xinerama extension (support for two or more physical displays) Extensión Xinerama (soporta dos o más monitores físicos) Width: Ancho: Height: Alto: &Display: &Monitor: &Identify all displays &Identificar monitores Keep current keyboard Settings Mantener las preferencias actuales para el teclado Keyboard layout: Mapa del teclado: Keyboard model: Modelo de teclado: Enable sound support Activar soporte de sonido Start sound daemon Iniciar demonio de sonido Use running sound daemon Usar el demonio de sonido actual Use SSH port forwarding to tunnel sound system connections through firewalls Usar el tunel de puertos SSH para el sonido en conexiones a través de firewalls Use default sound port Usar el puerto para el sonido por defecto Sound port: Puerto de sonido: Client side printing support Soporte para imprimir en el cliente Additional parameters: Parámetros adicionales: Command line: Línea de comando: us us pc105/us pc105/us password contraseña ShareWidget &Folders Car&petas Path Ruta Automount Automontar Add Añadir Delete Eliminar Path: Ruta: Filename encoding Codificación para los nombres de archivo local: local: remote: remoto: Use ssh port forwarding to tunnel file system connections through firewalls Usar tunel de puertos SSH para el sistema de archivos a través de firewalls Select folder Elegir carpeta Error Error x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are el cliente x2go está ejecutándose en modo portable. Debería usar una ruta hacia tu dispositivo usb donde poder usar tus datos dondequiera estés WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 SshMasterConnection SSH proxy connection error Error en la conexión con el proxy SSH SSH proxy connection error: Error en la conexión con el proxy SSH: Failed to create SSH proxy tunnel Fallo al crear el tunel SSH a través del proxy Can not initialize libssh No se puede inicializar libssh Can not create ssh session No se puede crear la sesión ssh Can not connect to proxy server No hay conexión con el servidor proxy Can not connect to No se puede conectar a Authentication failed Fallo de autenticación channel_forward_listen failed error en channel_forward_listen Can not open file No se puede abrir el archivo Can not create remote file No se puede crear el archivo remoto Can not write to remote file No se puede escribir en el archivo remoto can not connect to no se puede conectar a channel_open_forward failed error en channel_open_forward channel_open_session failed error en channel_open_session channel_request_exec failed error en channel_request_exec error writing to socket error escribiendo en el socket error reading channel error leyendo el canal channel_write failed error en channel_write error reading tcp socket error leyendo el socket tcp SshProcess Error creating socket Error creando el socket Error binding Error rellenando XSettingsWidget Open File Abrir Archivo Executable (*.exe) Ejecutable (*.exe) XSettingsWidgetUI Form Formulario You must restart the X2Go Client for the changes to take effect Debes reiniciar el Cliente X2Go para que los cambios se apliquen correctamente use integrated X-Server usar el Servidor X integrado do not use primary clipboard no usar el portapapeles principal use custom X-Server usar Servidor X personalizado custom X-Server Servidor X personalizado executable: ejecutable: start X-Server on X2Go Client start iniciar ServidorX en el inicio del cliente X2Go command line options: opciones de la línea de comando: X-Server command line options Opciones para la línea de comandos del Servidor X window mode: modo ventana: fullscreen mode: modo pantalla completa: single application: modo aplicación: x2goclient-4.0.1.1/x2goclient_fi.ts0000644000000000000000000034156612214040350013731 0ustar AppDialog Published Applications Search: &Start &Close Multimedia Development Education Game Graphics Network Office Settings System Utility Other BrokerPassDialogUi Dialog Old password: New password: Confirm password: TextLabel BrokerPassDlg Passwords do not match CUPSPrintWidget Form Name: Properties State: Accepting jobs: Type: Location: Comment: Idle Printing Stopped Yes No CUPSPrinterSettingsDialog No option selected This value is in conflict with other option Options conflict ConTest Connectivity test HTTPS connection: SSH connection: Connection speed: Failed 0 Kb/s OK Socket operation timed out Failed: ConfigDialog General Display icon in system tray Hide to system tray when minimized Hide to system tray when closed Hide to system tray after connection is established Restore from system tray after session is disconnected Use LDAP Server URL: BaseDN: Failover server 1 URL: Failover server 2 URL: X-Server settings X11 application: X11 version: Find X11 application Clientside SSH port for file system export usage: Start session embedded inside website Advanced options Defaults &OK &Cancel Settings Printing Warning x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application Your are using X11 (Apple X-Window Server) version . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path &Connection &Settings ConnectionWidget &Connection speed Connection speed: C&ompression Method: Compression method: Image quality: CupsPrinterSettingsDialog Dialog General Page size: Paper type: Paper source: Duplex Printing None Long side Short side Driver settings Option Value No option selected text EditConnectionDialog &Session &Connection &Settings &Shared folders &OK &Cancel Defaults Session preferences - ExportDialog &Cancel &share &Preferences ... &Custom folder ... Delete Delete share folders Select folder HttpBrokerClient Host key for server changed. It is now: For security reasons, connection will be stopped The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Could not find known host file.If you accept the host key here, the file will be automatically created The server is unknown. Do you trust the host key? Public key hash: Host key verification failed Yes No Enter passphrase to decrypt a key Authentication failed Error Login failed!<br>Please try again <br><b>Server uses an invalid security certificate.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> Secure connection failed Issued to: Common Name(CN) Organization(O) Organizational Unit(OU) Serial Number Issued by: Validity: Issued on expires on Fingerprints: SHA1 MD5 Exit X2Go Client Add exception ONMainWindow Starting x2goclient... us pc105/us X2Go Client connecting Internet browser Email client OpenOffice.org Terminal Starting x2goclient in portable mode... data directory is: &Settings ... Support ... About X2GO client Started x2goclient. Can't load translator: Translator: installed. Share folder... Applications... Suspend Terminate Reconnect Detach X2Go window Minimize toolbar Session: &Quit Ctrl+Q Quit &New session ... Ctrl+N Session management... Ctrl+E &Create session icon on desktop... &Set broker password... &Connectivity test... Show toolbar About Qt Ctrl+Q exit &Session &Options &Help Login: Error Operation failed Password changed Wrong password! Connecting to broker <b>Authentication</b> Restore Not connected Multimedia Development Education Game Graphics Network Office Settings System Utility Other Left mouse button to hide/restore - Right mouse button to display context menu Closing x2goclient... Closed x2goclient. Please check LDAP settings no X2Go server found in LDAP Create session icon on desktop Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? New Session X2Go Link to session No X2Go sessions found, closing. Are you sure you want to delete this session? KDE RDP connection XDMCP Connection to local desktop on Starting connection to server: to Connection Error( Couldn't find a SSH connection. Enter passphrase to decrypt a key Host key for server changed. It is now: For security reasons, connection will be stopped The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Could not find known host file.If you accept the host key here, the file will be automatically created The server is unknown. Do you trust the host key? Public key hash: Host key verification failed Yes No Authentication failed: Authentication failed Enter password for SSH proxy <b>Connection failed</b> <b>Wrong password!</b><br><br> Connection failed: - Wrong password. unknown No server availabel Server not availabel Select session: running suspended Desktop single application shadow session Information No accessible desktop found Filter Select desktop: Warning Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to 24 or 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? suspending terminating <b>Wrong Password!</b><br><br> New session started Session resumed Unable to create folder: Unable to write file: Attach X2Go window Unable to create SSL tunnel: Unable to create SSL Tunnel: Emergency exit. Waiting for proxy to exit. Failed, killing the proxy. Finished starting resuming Connection timeout, aborting aborting Are you sure you want to terminate this session? Unsaved documents will be lost Session Display Creation time <b>Connection failed</b> : (can't open file) (file not exists) (directory not exists) wrong value for argument"--link" wrong value for argument"--sound" wrong value for argument"--geometry" wrong value for argument"--set-kbd" wrong value for argument"--ldap" wrong value for argument"--ldap1" wrong value for argument"--ldap2" wrong value for argument"--pack" Wrong parameter: Options Available pack methodes: Unable to create folder: RSA file empty. Can not open key: Support </b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <b>X2Go Client V. Please check LDAP Settings No valid card found Card not configured. This card is unknown by X2Go system Unable to create file: Can't connect to X server Please check your settings Can't start X server Please check your settings Can't start X Server Please check your installation Unable to execute: Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package Unable to read : Unable to write : WINDOWS-1252 ISO8859-1 Error getting window geometry (window closed)? X2Go Session wrong value for argument"speed" Password: Keyboard layout: Ok Cancel <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> Abort Show details Resume New Full access View only Status Command Type Server Client IP Session ID User Only my desktops sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> Restore toolbar <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> PrintDialog Print - X2Go Client Print You've deactivated the x2go client printing dialog. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) PrintProcess Save File PDF Document (*.pdf) Failed to execute command: Printing error PrintWidget Form Print View as PDF Print settings Printer: Print using default Windows PDF Viewer (Viewer application needs to be installed) Printer command: ... Viewer settings Open in viewer application Command: Save to disk Show this dialog before start printing Please configure your client side printing settings.<br><br>If you want to print the created file, you'll need an external application. Typically you can use <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> and <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>You can find further information <a href="http://www.x2go.org/index.php?id=49">here</a>. PrinterCmdDialog Printer command Command Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Output format Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) PDF PS Data structure Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): standard input (STDIN) Specify path as program parameter Please enter your customized or individual printing command. Example: <Path to gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? SessionButton Session preferences... Create session icon on desktop... Delete session Session actions Select type Select resolution Toggle sound support New Session running suspended KDE RDP connection XDMCP Connection to local desktop Published applications fullscreen Display window Maximum Enabled Disabled SessionManageDialog E&xit &New session &Session preferences &Delete session &Create session icon on desktop... Delete Delete Session management SessionWidget Session name: << change icon &Server Host: Login: SSH port: Use RSA/DSA key for ssh connection: Try auto login (ssh-agent or default ssh key) Kerberos 5 (GSSAPI) authentication Use Proxy server for SSH connection Proxy server SSH HTTP Same login as on X2Go Server Same password as on X2Go Server RSA/DSA key: ssh-agent or default ssh key Type: Port: &Session type Session type: Connect to Windows terminal server XDMCP Connect to local desktop Custom desktop Single application Published applications Command: Advanced options... Path to executable Direct RDP Connection Open key file All files Error x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are RDP port: Open picture Pictures Server: XDMCP server: rdesktop command line options: New session SettingsWidget &Display &Keyboard Sound Fullscreen Custom Window Use whole display Maximum available Set display DPI Xinerama extension (support for two or more physical displays) Width: Height: &Display: &Identify all displays Keep current keyboard Settings Keyboard layout: Keyboard model: Enable sound support Start sound daemon Use running sound daemon Use SSH port forwarding to tunnel sound system connections through firewalls Use default sound port Sound port: Client side printing support RDP Client Additional parameters: Command line: us pc105/us password ShareWidget &Folders Path Automount Add Delete Path: Filename encoding local: remote: Use ssh port forwarding to tunnel file system connections through firewalls Select folder Error x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are WINDOWS-1252 ISO8859-1 SshMasterConnection SSH proxy connection error SSH proxy connection error: Failed to create SSH proxy tunnel Can not initialize libssh Can not create ssh session Can not connect to proxy server Can not connect to Authentication failed channel_forward_listen failed Can not open file Can not create remote file Can not write to remote file can not connect to channel_open_forward failed channel_open_session failed channel_request_exec failed error writing to socket error reading channel channel_write failed error reading tcp socket SshProcess Error creating socket Error binding XSettingsWidget Open File Executable (*.exe) XSettingsWidgetUI Form You must restart the X2Go Client for the changes to take effect use integrated X-Server do not use primary clipboard use custom X-Server custom X-Server executable: start X-Server on X2Go Client start command line options: X-Server command line options window mode: fullscreen mode: single application: x2goclient-4.0.1.1/x2goclient_fr.ts0000644000000000000000000022422012214040350013725 0ustar AppDialog Published Applications Applications publiées Search: Rechercher: &Start &Démarrer &Close &Fermer Multimedia Multimedia Development Développement Education Éducation Game Jeux Graphics Graphismes Network Internet Office Bureautique Settings Préférences System Système Utility Accessoires Other Autres BrokerPassDialogUi Dialog Old password: Ancien mot de passe: New password: Nouveau mot de passe: Confirm password: Confirmez le mot de passe: TextLabel TextLabel BrokerPassDlg Passwords do not match Les mots de passe ne correspondent pas CUPSPrintWidget Idle Printing En cours d'impression Stopped Arrêté Yes Oui No Non Form Formulaire Name: Nom: Properties Propriétés State: État: Accepting jobs: En attentes de travaux: Type: Type: Location: Emplacement: Comment: Commentaire: CUPSPrinterSettingsDialog No option selected Pas d'options séléctionnées This value is in conflict with other option Cette valeur est en conflit avec une autre option Options conflict Conflits d'options ConTest Connectivity test Test de connectivité HTTPS connection: Connection HTTPS: SSH connection: Connection SSH: Connection speed: Vitesse de connection: Failed Échec 0 Kb/s OK Ok Socket operation timed out Failed: Échec: ConfigDialog General Général Display icon in system tray Afficher l'icone dans la barre des tâches Hide to system tray when minimized Cacher dans la barre des tâches à la réduction de la fenêtre Hide to system tray when closed Cacher dans la barre des tâches à la fermeture de la fenêtre Hide to system tray after connection is established Cacher dans la barre des tâches quand la session est établie Restore from system tray after session is disconnected Cacher dans la barre des tâches quand la session est déconnectée Use LDAP Utiliser LDAP Server URL: URL du serveur: BaseDN: BaseDN: Failover server 1 URL: Failover en backup ? URL du premier serveur de backup: Failover server 2 URL: URL du second serveur de backup: X-Server settings Préférences du serveur X X11 application: Applications X11: X11 version: Version X11: Find X11 application Trouver une application X11 Clientside SSH port for file system export usage: Port SSH coté client pour l'export du système de fichiers: Start session embedded inside website Démarrer une session embarquée dans le site web Advanced options Options avancées Defaults Défauts &OK &Ok &Cancel &Annuler Settings Préférences Printing Impression Warning Attention x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2goclient ne peut pas trouve d'application X11 adaptée. Merci d'installer Apple X11 ou de séléctionner le chemin de l'application Your are using X11 (Apple X-Window Server) version Vous utilisez X11 (Server X-Window Apple) version . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). Cette version pose des problèmes avec les applications X en mode de couleurs 24bits. Vous devriez mettre à jour votre environement X11 (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path Pas d'application X11 trouvée dans le chemin sélectionné. &Connection &Connection &Settings &Préférences ConnectionWidget &Connection speed Vitesse de &connection Connection speed: Vitesse de connection: C&ompression C&ompression C&ompression Method: Méthode: Compression method: Méthode de compression: Image quality: Qualité d'image: CupsPrinterSettingsDialog Dialog General Général Page size: Taille de page: Paper type: Type de papier: Paper source: Source de papier: Duplex Printing None Long side Bord long Short side Bord court Driver settings Préférences de pilote Option Option Value Valeur No option selected Pas d'option sélectionnée text texte EditConnectionDialog &Session &Session &Connection &Connection &Settings &Préférences &Shared folders &Dossiers partagés &OK &Ok &Cancel &Cancel Defaults Défauts Session preferences - Préférences de session - ExportDialog &Cancel &Annuler &share &Partager &Preferences ... &Préférences ... &Custom folder ... &Dossier personnalisé ... Delete Delete Effacer share folders partager des dossiers Select folder Choisir un dossier HttpBrokerClient Error Erreur Login failed!<br>Please try again Identification échouée !<br>Merci de réessayer Host key for server changed. It is now: La clef du serveur a changée. C'est maintenant: For security reasons, connection will be stopped Pour des raisons de sécurité, la connection va être stoppée. The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist La clef de ce serveur n'a pas été trouvée mais un autre type de clef existe. Un attaquant peut avoir changé la clef par défaut du serveur pour faire croire à votre client que la clef n'existe pas Could not find known host file.If you accept the host key here, the file will be automatically created Impossible de trouver le fichier des hôtes connus. Si vous acceptez l'hôte maintenant, le fichier sera créé automatiquement The server is unknown. Do you trust the host key? Public key hash: Le serveur n'est pas connu. Avez-vous confiance en cette clef ? Hash de la clef publique: Host key verification failed La vérification de la clef d'hôte a échouée Yes Oui No Non Enter passphrase to decrypt a key Entrez la phrase de passe pour déchiffrer la clef Authentication failed Identification échouée <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>Le serveur utilise un certificat de sécurité invalide.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>Vous ne devriez pas ajouter d'exeption si vous n'avez pas une entière confiance en la connection Internet que vous utilisez ou si vous n'avez pas l'habitude de voir cet avertissement pour ce serveur.</p> Secure connection failed Connection sécurisée échouée Issued to: Accordé à: Common Name(CN) Common Name(CN) Organization(O) Organization(O) Organizational Unit(OU) Organizational Unit(OU) Serial Number Numéro de série Issued by: Accordé par: Validity: Validité: Issued on Accordé sur expires on expire le Fingerprints: Fingerprints: SHA1 SHA1 MD5 MD5 Exit X2Go Client Quitter X2Go Client Add exception Ajouter une exception ONMainWindow us us pc105/us pc105/us X2Go Client X2Go Client connecting Connection en cours Internet browser Navigateur Internet Email client Client e-mail OpenOffice.org OpenOffice.org Terminal Terminal &Settings ... &Préférences ... Support ... Support ... About X2GO client Apropos de X2Go Client Share folder... Partager le dossier... Suspend Suspendre Terminate Terminer Reconnect Reconnecter Detach X2Go window Détacher la fenêtre X2Go Minimize toolbar Réduire la barre d'outils Session: Session: &Quit &Quiter Ctrl+Q Quit Quitter &New session ... &Nouvelle session ... Ctrl+N Session management... Gestion de sessions... Ctrl+E &Create session icon on desktop... &Créer une icone de session sur le bureau... &Set broker password... Configurer le mot de passe du broker... &Connectivity test... Test de &Connectivité... Show toolbar Afficher la barre d'outils About Qt À propos de Qt Ctrl+Q exit &Session &Session &Options &Options &Help &Aide Login: Identifiant: Operation failed Opération échouée Password changed Mot de passe modifié Wrong password! Mauvais mot de passe ! <b>Authentication</b> <b>Identification</b> Restore Réstauration Not connected Non connecté Multimedia Development Développement Education Éducation Game Jeux Graphics Graphismes Network Internet Office Bureautique Settings Préférences System Système Utility Accessoires Other Autres Left mouse button to hide/restore - Right mouse button to display context menu Bouton de gauche de la souris pour cacher/afficher - Bouton de droite de la souris pour afficher le menu contextuel Error Erreur Please check LDAP settings Merci de vérifier les réglages LDAP no X2Go server found in LDAP Pas de serveur X2Go trouvé dans LDAP Create session icon on desktop Créer une icone de session sur le bureau Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Les icones de bureau peuvent être configurées pour ne pas afficher X2Go Client (mode caché). Si vous voulez utiliser cette fonctionnalité, vous aurez besoin de configurer l'identification par clef GPG ou par Smart Card GPG. Utiliser le mode caché de X2Go Client ? New Session Nouvelle session X2Go Link to session X2Go sessions not found Sessions X2Go non trouvées Are you sure you want to delete this session? Êtes vous sûr de vouloir effacer cette session ? KDE RDP connection Connection RDP XDMCP Connection to local desktop Connection au bureau local on <b>Connection failed</b> <b>Connection échouée</b> <b>Wrong password!</b><br><br> <b>Mauvais mot de passe !</b><br><br> unknown inconnu No server availabel Pas de serveur disponible Select session: Sélectionnez la session: running en cours suspended suspendue Desktop Bureau single application application simple shadow session Information Information No accessible desktop found Aucun bureau distant trouvé Filter Filtre Select desktop: Selectionnez un bureau: Warning Attention Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to La profondeur de couleur de votre serveur X est différente de celle de votre session X2Go. Cela peut pauser problème pour se reconnecter et la plupart du temps, <b>vous allez perdre la session</b>. Vous êtes fortement encouragé à changer la profondeur de couleur de couleur de votre serveur X à 24 or 32 24 ou 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? bits et redémarrer votre serveur X avant de vous reconnecter à votre session.<br>Souhaitez-vous tout de même rétablir cette session ? Yes Oui Enter passphrase to decrypt a key Entrez une phrase de passe pour déchiffrer une clef Host key for server changed. It is now: La clef d'hôte du serveur a changée. La nouvelle clef est: For security reasons, connection will be stopped Pour des raisons de sécurité, la connection va être stoppée The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist La clef d'hôte pour ce serveur n'a pas été trouvée mais un autre type de clef a été trouvé. Un attaquant peut avoir changé la clef par défaut du serveur pour faire croire à votre client que la clef n'existe pas Could not find known host file.If you accept the host key here, the file will be automatically created Impossible de trouver le fichier des hôtes connus. Si vouss acceptez la clef d'hôte ici, le fichier sera automatiquement créé The server is unknown. Do you trust the host key? Public key hash: Le serveur est inconnu. Avez vous confiance en la clef d'hôte ? Hash de la clef publique: No Non Host key verification failed La vérification de la clef d'hôte a échouée Authentication failed L'autentification a échouée Enter password for SSH proxy Entrez un mot de passe pour le proxy SSH Server not availabel Le serveur n'est pas disponible suspending suspension terminating en train de se terminer <b>Wrong Password!</b><br><br> <b>Mauvais mot de passe !</b><br><br> Unable to create folder: Impossible de créer le dossier: Unable to write file: Impossible de créer le fichier: Attach X2Go window Atacher la fenêtre X2Go Unable to create SSL tunnel: Impossible de créer un tunnel SSL: Unable to create SSL Tunnel: Impossible de créer un tunnel SSL: Finished Fini starting démarrage resuming rétablissement Connection timeout, aborting Connection expirée, abandon en cours aborting abandon en cours Are you sure you want to terminate this session? Unsaved documents will be lost Session Display Creation time <b>Connection failed</b> : (can't open file) (file not exists) (directory not exists) wrong value for argument"--link" wrong value for argument"--sound" wrong value for argument"--geometry" wrong value for argument"--set-kbd" wrong value for argument"--ldap" wrong value for argument"--ldap1" wrong value for argument"--ldap2" wrong value for argument"--pack" Options Available pack methodes: Support </b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <b>X2Go Client V. Please check LDAP Settings No valid card found This card is unknown by X2Go system Unable to create file: Can't start X server Please check your settings Can't connect to X server Please check your settings Can't start X Server Please check your installation Unable to execute: Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package Unable to read : Unable to write : X2Go Session Password: Keyboard layout: Ok Cancel <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> Applications... Abort Show details Resume New Full access View only Status Command Type Server Client IP Session ID User Only my desktops sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> Restore toolbar <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> Connecting to broker WINDOWS-1252 ISO8859-1 wrong value for argument"speed" Starting x2goclient... Starting x2goclient in portable mode... data directory is: Started x2goclient. Can't load translator: Translator: installed. Closing x2goclient... Closed x2goclient. No X2Go sessions found, closing. Starting connection to server: to Connection Error( Couldn't find a SSH connection. Authentication failed: Connection failed: - Wrong password. New session started Session resumed Unable to create folder: Unable to write file: Emergency exit. Waiting for proxy to exit. Failed, killing the proxy. Wrong parameter: RSA file empty. Can not open key: Card not configured. Error getting window geometry (window closed)? PrintDialog Print You've deactivated the x2go client printing dialog. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) Print - X2Go Client PrintProcess Save File PDF Document (*.pdf) Failed to execute command: Printing error PrintWidget Please configure your client side printing settings.<br><br>If you want to print the created file, you'll need an external application. Typically you can use <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> and <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>You can find further information <a href="http://www.x2go.org/index.php?id=49">here</a>. Form Formulaire Print View as PDF Print settings Printer: Print using default Windows PDF Viewer (Viewer application needs to be installed) Printer command: ... Viewer settings Open in viewer application Command: Save to disk Show this dialog before start printing PrinterCmdDialog Please enter your customized or individual printing command. Example: <Path to gsprint.exe> -query -color Printer command Command Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Output format Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) PDF PS Data structure Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): standard input (STDIN) Specify path as program parameter QObject No response received from the remote server. Do you want to terminate the current session? SessionButton Session preferences... Create session icon on desktop... Delete session Session actions Select type Select resolution Toggle sound support New Session Nouvelle session running en cours suspended suspendue KDE RDP connection Connection RDP XDMCP Connection to local desktop Connection au bureau local Published applications fullscreen Display window Maximum Enabled Disabled SessionManageDialog E&xit &New session &Session preferences &Delete session &Create session icon on desktop... &Créer une icone de session sur le bureau... Delete Delete Effacer Session management SessionWidget Session name: << change icon &Server Host: Login: Identifiant: SSH port: Use RSA/DSA key for ssh connection: Try auto login (ssh-agent or default ssh key) Kerberos 5 (GSSAPI) authentication Use Proxy server for SSH connection Proxy server SSH HTTP Same login as on X2Go Server Same password as on X2Go Server RSA/DSA key: ssh-agent or default ssh key Type: Type: Port: &Session type Session type: Connect to Windows terminal server XDMCP Connect to local desktop Custom desktop Single application Published applications Command: Advanced options... Path to executable Direct RDP Connection RDP port: Open picture Pictures Open key file All files Server: XDMCP server: rdesktop command line options: New session Error Erreur x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are SettingsWidget &Display &Keyboard Sound RDP Client Fullscreen Custom Window Use whole display Maximum available Set display DPI Xinerama extension (support for two or more physical displays) Width: Height: &Display: &Identify all displays Keep current keyboard Settings Keyboard layout: Keyboard model: Enable sound support Start sound daemon Use running sound daemon Use SSH port forwarding to tunnel sound system connections through firewalls Use default sound port Sound port: Client side printing support Additional parameters: Command line: us us pc105/us pc105/us password ShareWidget &Folders Path Automount Add Delete Effacer Path: Use ssh port forwarding to tunnel file system connections through firewalls Select folder Choisir un dossier Filename encoding WINDOWS-1252 ISO8859-1 local: remote: Error Erreur x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are SshMasterConnection SSH proxy connection error SSH proxy connection error: Failed to create SSH proxy tunnel Can not initialize libssh Can not create ssh session Can not connect to proxy server Can not connect to Authentication failed channel_forward_listen failed Can not open file Can not create remote file Can not write to remote file can not connect to channel_open_forward failed channel_open_session failed channel_request_exec failed error writing to socket error reading channel channel_write failed error reading tcp socket SshProcess Error creating socket Error binding XSettingsWidget Open File Executable (*.exe) XSettingsWidgetUI Form Formulaire You must restart the X2Go Client for the changes to take effect use integrated X-Server use custom X-Server custom X-Server executable: start X-Server on X2Go Client start command line options: X-Server command line options window mode: fullscreen mode: single application: do not use primary clipboard x2goclient-4.0.1.1/x2goclient_nb_no.ts0000644000000000000000000042755512214040350014431 0ustar AppDialog Published Applications Publiserte applikasjoner Search: Søk: &Start &Start &Close &Lukk Multimedia Multimedia Development Utvikling Education Opplæring Game Spill Graphics Grafikk Network Office Kontor Settings Innstillinger System System Utility Verktøy Other Andre BrokerPassDialogUi Dialog Dialog Old password: Gammelt passord: New password: Nytt passord: Confirm password: Bekreft passordet: TextLabel hm... Am I supposed to translate this? TestLabel BrokerPassDlg Passwords do not match Passordene stemmer ikke CUPSPrintWidget Idle Inaktiv Printing Skriver Stopped Stoppet Yes Ja No Nei Form Form Name: Navn: Properties Egenskaper State: Status: Accepting jobs: Aksepterer jobber: Type: Type: Location: Plassering: Comment: Kommentar: CUPSPrinterSettingsDialog No option selected Ingen alternativer valgt This value is in conflict with other option Dette alternativet er i konflikt med et annet alternativ Options conflict Alternativskonflikt ConTest Connectivity test Tilkoblings-test HTTPS connection: HTTPS tilkobling: SSH connection: SSH tilkobling: Connection speed: Due to the limited space in the UI dialog, I couldn't choose the "correct" word for speed here, so I had to choose a shorter one which isn't the best translation, but it will do. Sambandsfart: Failed Feilet 0 Kb/s 0 Kb/s OK OK Socket operation timed out Grr..! really hard to get this correctly translated, should rather keep the english words here, as we don't have any good ones for these in technical terms Sokkel handlingen ble tidsavbrutt Failed: Feilet: ConfigDialog General Genrelt Display icon in system tray Vis ikon i systemkurven Hide to system tray when minimized Skjul til systemkurven ved minimering Hide to system tray when closed Skjul til systemkurven ved lukking Hide to system tray after connection is established Skjul til systemkurven etter tilkoblingen er opprettet Restore from system tray after session is disconnected Gjenopprett fra systemkurven etter sesjonen blir frakoblet Use LDAP Benytt LDAP Server URL: Server URL: BaseDN: According to what I could gather these parts of the certificate shouldn't be translated BaseDN: Failover server 1 URL: URL til reserveserver 1: Failover server 2 URL: URL til reserveserver 2: X-Server settings X-Server innstillinger X11 application: X11 applikasjon: X11 version: X11 versjon: Find X11 application Finn X11 applikasjon Clientside SSH port for file system export usage: Klientside SSH port for bruk av filsystem eksport: Start session embedded inside website Start sesjonen innebygd i websiden Advanced options Avanserte alternativer Defaults Standardoppsett &OK &OK &Cancel &Avbryt Settings Innstillinger Printing Utksrift Warning Advarsel x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2goclient kan ikke finne en passende X11 applikasjon. Vennligst installer Apple X11, eller oppgi stien til applikasjonen Your are using X11 (Apple X-Window Server) version Du benytter X11 (Apple X-Window Server) versjon . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). . Denne versjonen forÃ¥rsaker problemer med X-applikasjoner i 24biters fargemodus. Du burde oppdatere ditt X11 oppsett (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path Ingen passende X11 applikasjon ble funnet i valgt sti &Connection &Tilkobling &Settings &Innstillinger ConnectionWidget &Connection speed &Sambandsfart Connection speed: Sambandsfart: C&ompression &Komprimering Method: Metode: Compression method: Komprimeringsmetode: Image quality: Bildekvalitet: CupsPrinterSettingsDialog Dialog Dialog General Generelt Page size: Arkstørrelse: Paper type: Papirtype: Paper source: Papirkilde: Duplex Printing Tosidig utskrift None Ingen Long side Langsiden Short side Kortsiden Driver settings Driver innstillinger Option Alternativ Value Verdi No option selected Ingen alternativer er valgt text tekst EditConnectionDialog &Session &Sesjon &Connection Tilk&obling &Settings &Innstillinger &Shared folders &Delte mapper &OK &OK &Cancel &Avbryt Defaults Standardoppsett Session preferences - Sesjonsinnstillinger - ExportDialog &Cancel &Avbryt &share d&el &Preferences ... &Innstillinger ... &Custom folder ... &Egentilpasset mappe ... Delete Delete Slett share folders delte mapper Select folder Valgt mappe HttpBrokerClient us hm... Am I supposed to translate this? The German one had it translated, so I did the same. no pc105/us hm... Am I supposed to translate this? The German one had it translated, so I did the same. pc105/no Host key for server changed. It is now: Vertsnøkkel for serveren har endret seg. Den er nÃ¥: For security reasons, connection will be stopped Av hensyn til sikkerheten vil tilkoblingen bli stoppet The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Vertsnøkkelen for denne serveren ble ikke funnet, men en annen type av nøkkel eksisterer. En angriper kan endre standard server nøkkel for Ã¥ lure klienten din til Ã¥ tro at nøkkelen ikke finnes Could not find known host file.If you accept the host key here, the file will be automatically created Kan ikke finne "known host" filen. Om du aksepterer vertsnøkkelen her vil filen automatisk bli opprettet The server is unknown. Do you trust the host key? Public key hash: Serveren er ukjent. Stoler du pÃ¥ vertsnøkkelen? Offentlig nøkkel: Host key verification failed Verifiseringen av vertsnøkkelen feilet Yes Ja No Nei Enter passphrase to decrypt a key Oppgi passordfrase for dekryptere en nøkkel Authentication failed Autentisering feilet Error Feil Login failed!<br>Please try again Innlogging feilet! <br>Vennligst forsøk igjen <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>Servereren benytter et ugyldig sikkerhetssertifikat.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>Du burde ikke legge til et unntak om du benytter en internett forbindelse som du ikke stoler 100% pÃ¥, eller om du ikke er vant med Ã¥ se advarsler for denne serveren.</p> Secure connection failed Sikker tilkobling feilet Issued to: Utstedet til: Common Name(CN) Navn (CN) Organization(O) Organisation (O) Organizational Unit(OU) Organisasjonsenhet (OU) Serial Number Serienummer Issued by: Utstedet av: Validity: Gyldighet: Issued on Utstedet den expires on Utløper den Fingerprints: Fingeravtrykk: SHA1 SHA1 MD5 MD5 Exit X2Go Client Avlsutt X2Go Klienten Add exception Legg til unntak Your session was disconnected. To get access to your running session, please return to the login page or use the "reload" function of your browser. Sesjonen din ble koblet ned. For Ã¥ fÃ¥ tilgang til den kjørende sesjonen din, vennligst returner til innloggingssiden, eller benytt "oppdater" funksjonen i nettleseren din. ONMainWindow us no pc105/us pc105/de Support ... Need to double-check this one Støtte ... Session: Sesjon: &Quit &Avslutt Ctrl+Q Ctrl+Q Quit Avslutt &New Session ... &Neue Sitzung ... Ctrl+N Ctrl+N Session Management... Sitzungsverwaltung... Ctrl+E Ctrl+E LDAP &Settings ... LDAP &Konfiguration ... Restore toolbar Gjenopprett verktøylinjen About X2GO Client Über X2GO Client About Qt Om QT Session Sesjon Ctrl+Q exit Ctrl+Q &Session &Sesjon &Options &Innstillinger &Help &Hjelp New session started Ny sesjon startet Session resumed Sesjon gjenopptatt Unable to create folder: Klarer ikke Ã¥ opprette katalogen: Unable to write file: Klarer ikke Ã¥ skrive til filen: Emergency exit. Avsluttning grunnet nødstilfelle. Waiting for proxy to exit. Venter pÃ¥ at proxy skal avslutte. Failed, killing the proxy. Feilet, dreper derfor proxy. Wrong parameter: Feil parameter: RSA file empty. RSA filen er tom. Can not open key: Kan ikke Ã¥pne nøkkelfilen: Card not configured. Kortet er ikke konfigurert. Error getting window geometry (window closed)? Feil under uthenting av vindusgeometrien (Er vinduet lukket?) Password: Passord: Keyboard layout: Tastatur utseende: Ok Ok Cancel Avbryt Applications... Applikasjoner... Invalid reply from broker Need to update/create the Norwegian documentation to make clear what the "megeleren" actually is in this context. Ugyldig svar fra megleren Error Feil KDE KDE on pÃ¥ Login: Brukernavn: Select session: Velg sesjon: Resume Gjenoppta Suspend I disagree with the word 'Suspend' here, if it was suspending then the session would be paused. As this is not the case, it's more like disconnect (and the counterpart: reconnect). I used the translation fro 'Disconnect' here, and will research the possibility of changing the Suspend word to Disconnect also in the english translation. Koble fra Terminate Need to revisit this word to see if the chosen one is *strong* enough Avslutte New Ny Display Skjerm Status Status Server Server Creation Time Startzeit Client IP Klient IP running aktiv suspended Frakoblet Unable to create Folder: Ordner kann nicht erzeugt werden: Unable to write File: Datei kann nicht geschrieben werden: Unable to create SSL Tunnel: Klarer ikke Ã¥ opprette SSL tunnel: Warning Advarsel connecting kobler til starting starter resuming gjenopptar Connection timeout, aborting Tilkoblingen tidsavbrutt, avbryter aborting Avbryter <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation Time:<br>Status:</b> <b>Sitzungs ID:<br>Server:<br>Login:<br>Display:<br>Startzeit:<br>Status:</b> Abort Avbryt Show Details Zeige Details (can't open file) (kan ikke Ã¥pne filen) (file not exists) (filen finnes ikke) (directory not exists) (mappen finnes ikke) wrong value for argument"--link" Chose to use 'parameteren' here, the direct translation is 'argument', but didn't fit in my opinion. The cmdline arguments, will they be translated as well? ugyldig verdi for parameteren "--link" wrong value for argument"--sound" ugyldig verdi for parameteren "--sound" wrong value for argument"--geometry" ugyldig verdi for parameteren "--geometry" wrong value for argument"--set-kbd" ugyldig verdi for parameteren "--set-kbd" wrong value for argument"--ldap" ugyldig verdi for parameteren "--ldap" wrong value for argument"--pack" ugyldig verdi for parameteren "--pack" wrong parameter: ugyldig parameter: Available pack methodes: Tilgjengelige pakkemetoder: Support Will have to revisit this one, not sure if it fits Støtte </b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> Please check LDAP Settings Vennligst sjekk LDAP innstillingene no X2Go Server found in LDAP LDAP enthält keinen X2Go Server Are you sure you want to delete this Session? Sind Sie sicher, dass Sie die Sitzung löschen wollen? <b>Connection failed</b> <b>Tilkoblingen feilet</b> No Server availabel es konnte kein Server gefunden werden Session ID Sesjons ID suspending Kobler fra terminating Avslutter <b>Connection failed</b> : <b>Tilkoblingen feilet</b> : Share Folder... Ordner freigeben... Usage: x2goclient [Options] Options: --help Print this message --help-pack Print availabel pack methods --no-menu Hide menu bar --maximize Start maximized --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established --ldap=<host:port:dn> Start with LDAP Support. Example: --ldap=ldapserver:389:o=organization,c=de --command=<cmd> Set default command, default value 'KDE' --sound=<0|1> Enable sound, default value '1' --geomerty=<W>x<H>|fullscreen Set default geometry, default value '800x600' --link=<modem|isdn|adsl|wan|lan> Set default link type, default 'lan' --pack=<packmethod> Set default pack method, default '16m-jpeg-9' --kbd-layout=<layout> Set default keyboard layout, default 'us' --kbd-type=<typed> Set default keyboard type, default 'pc105/us' --set-kbd=<0|1> Overwrite current keyboard settings, default '0' Usage: x2goclient [Options] Options: --help Print this message --help-pack Print availabel pack methods --no-menu Hide menu bar --maximize Start maximized --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established --ldap=<host:port:dn> Start with LDAP Support. Example: --ldap=ldapserver:389:o=organization,c=de --command=<cmd> Set default command, default value 'KDE' --sound=<0|1> Enable sound, default value '1' --geomerty=<W>x<H>|fullscreen Set default geometry, default value '800x600' --link=<modem|isdn|adsl|wan|lan> Set default link type, default 'lan' --pack=<packmethod> Set default pack method, default '16m-jpeg-9' --kbd-layout=<layout> Set default keyboard layout, default 'us' --kbd-type=<typed> Set default keyboard type, default 'pc105/us' --set-kbd=<0|1> Overwrite current keyboard settings, default '0' Unable to read : need to check the length of the norwegian string here, I don't know how it will look in the UI Klarer ikke Ã¥ lese: Unable to write : need to check the length of the norwegian string here, I don't know how it will look in the UI Klarer ikke Ã¥ skrive: <b>X2Go Client V. 2.0.1</b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <b>X2Go Client V. 2.0.1</b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2Go Servers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. <b>Wrong Password!</b><br><br> Should we actually tell that it's the password that's wrong? Isn't that considered bad practice in regards to security? I propose to use "Wrong Username or Password!" instead. <b>Feil passord!</b><br><br> wrong value for argument"--ldap1" ugyldig verdi for parameteren "--ldap1" wrong value for argument"--ldap2" ugyldig verdi for parameteren "--ldap2" Usage: x2goclient [Options] Options: --help Print this message --help-pack Print availabel pack methods --no-menu Hide menu bar --maximize Start maximized --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established --ldap=<host:port:dn> Start with LDAP Support. Example: --ldap=ldapserver:389:o=organization,c=de --ldap1=<host:port> LDAP Failover Server #1 --ldap2=<host:port> LDAP Failover Server #2 --command=<cmd> Set default command, default value 'KDE' --sound=<0|1> Enable sound, default value '1' --geomerty=<W>x<H>|fullscreen Set default geometry, default value '800x600' --link=<modem|isdn|adsl|wan|lan> Set default link type, default 'lan' --pack=<packmethod> Set default pack method, default '16m-jpeg-9' --kbd-layout=<layout> Set default keyboard layout, default 'us' --kbd-type=<typed> Set default keyboard type, default 'pc105/us' --set-kbd=<0|1> Overwrite current keyboard settings, default '0' Usage: x2goclient [Options] Options: --help Print this message --help-pack Print availabel pack methods --no-menu Hide menu bar --maximize Start maximized --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established --ldap=<host:port:dn> Start with LDAP Support. Example: --ldap=ldapserver:389:o=organization,c=de --ldap1=<host:port> LDAP Failover Server #1 --ldap2=<host:port> LDAP Failover Server #2 --command=<cmd> Set default command, default value 'KDE' --sound=<0|1> Enable sound, default value '1' --geomerty=<W>x<H>|fullscreen Set default geometry, default value '800x600' --link=<modem|isdn|adsl|wan|lan> Set default link type, default 'lan' --pack=<packmethod> Set default pack method, default '16m-jpeg-9' --kbd-layout=<layout> Set default keyboard layout, default 'us' --kbd-type=<typed> Set default keyboard type, default 'pc105/us' --set-kbd=<0|1> Overwrite current keyboard settings, default '0' Unable to create file: Klarer ikke Ã¥ opprette filen: No valid card found Ingen gyldige kort ble funnet This card is unknown by X2Go System Diese Karte ist dem X2Go System unbekannt &Settings ... Need to revisit the keybindings in all the Norwegian strings to check for consistency and collisions &Innstillinger ... Options Hm.. Should we actually use different words here in Norwegian? Or could they mean the same? Need to check the UI first Alternativer Can't read host rsa key: RSA Schlüssel konnte nicht gelesen werden: Can't connect to X-Server Klarte ikke Ã¥ koble til X-Serveren Can't connect to X server Please check your settings Can't connect to X-Server Please check your settings Klarte ikke Ã¥ koble til X-Serveren Vennligst sjekk innstillingene dine Can't start X-Server X-Server konnte nicht gestartet werden Can't start X Server Please check your settings Klarte ikke Ã¥ starte X-Serveren Vennligst sjekk instillingene dine Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to Din nÃ¥værende fargedybde er forskjellig fra fargedybden i din x2go sesjon. Dette kan skape problemer ved gjenoppkobling til denne sesjonen, og i de fleste tilfellene <b>vil du miste hele sesjonen</b>. og du mÃ¥ starte en ny en! Det er sterkt anbefalt Ã¥ endre fargedybden pÃ¥ skjemen din til 24 or 32 24 eller 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? bit og deretter restarte X-Serveren før du kobler til denne x2go sesjonen. <br>Gjenoppta denne sesjonen uansett? Yes Ja No Nei <b>X2Go Client V. <b>X2Go klient V. <b>X2Go Client V. </b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2Go Servers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. </b><br> (C. 2006-2008 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2008 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2Go Servers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. OpenOffice.org OpenOffice.org Terminal Terminal unknown ukjent Command Kommando Type Type Desktop Skrivebord single application enkel applikasjon shadow session hm.. Need to revisit this one, not sure if I should use a better technical term in Norwegian skygge sesjonen <br>Sudo configuration error <br>Fehler in der Sudo Konfiguration Unable to execute: Klarte ikke Ã¥ utføre: X2Go Client X2Go klient Internet browser Nettleser Email client Epost program &New session ... &Ny sesjon ... Session management... SesjonshÃ¥ndtering... Show toolbar Vis verktøylinje About X2GO client Om X2GO klient Please check LDAP settings Vennligst sjekk LDAP innstillingene no X2Go server found in LDAP Inge X2Go server ble funnet i LDAP Are you sure you want to delete this session? Er du sikker pÃ¥ at du ønsker Ã¥ fjerne denne sesjonen? <b>Wrong password!</b><br><br> <b>Feil passord!</b><br><br> No server availabel Ingen tilgjengelig server Not connected Active connection Ikke tilkoblet Creation time Opprettelsestidspunkt Unable to create folder: Klarer ikke Ã¥ opprette katalogen: Enter passphrase to decrypt a key Oppgi passordfrase for dekryptere en nøkkel No X2Go sessions found, closing. Ingen X2Go sesjoner ble funnet, lukker. Starting connection to server: Starter tilkobling til server: to til Connection Error( Tilkoblingsfeil( Couldn't find a SSH connection. Klarte ikke Ã¥ finne en SSH tilkobling. Host key for server changed. It is now: Vertsnøkkel for serveren har endret seg. Den er nÃ¥: For security reasons, connection will be stopped Av hensyn til sikkerheten vil tilkoblingen bli stoppet The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Vertsnøkkelen for denne serveren ble ikke funnet, men en annen type av nøkkel eksisterer. En angriper kan endre standard server nøkkel for Ã¥ lure klienten din til Ã¥ tro at nøkkelen ikke finnes Could not find known host file.If you accept the host key here, the file will be automatically created Kan ikke finne "known host" filen. Om du aksepterer vertsnøkkelen her vil filen automatisk bli opprettet The server is unknown. Do you trust the host key? Public key hash: Serveren er ukjent. Stoler du pÃ¥ vertsnøkkelen? Offentlig nøkkel: Host key verification failed Verifiseringen av vertsnøkkelen feilet Authentication failed: Autentisering feilet: Authentication failed PÃ¥logging feilet Enter password for SSH proxy Oppgi passord for SSH proxy Connection failed: Tilkoblingen feilet: - Wrong password. - Feil passord. Server not availabel Serveren er ikke tilgjengelig Unable to write file: Klarer ikke Ã¥ skrive til filen: Unable to create SSL tunnel: Klarte ikke Ã¥ opprette SSL tunnel: <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> Uncertain if the translation for "Creation time" is the most fitting one. <b>Sesjons ID:<br>Server:<br>Brukernavn:<br>Skjerm:<br>Opprettet:<br>Status:</b> Share folder... Del mappe... Show details Vis detailjer This card is unknown by X2Go system Need to double-check if the translation of "card" is suitable here Dette kortet er ukjent for X2Go systemet Can't start X server Please check your settings Klarte ikke Ã¥ starte X-Serveren Vennligst sjekk instillingene dine Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package Serveren støtter ikke eksport av filsystemet over en SSH Tunnel Vennligst oppdater til en nyere x2goserver pakke &Create session icon on desktop... &Opprett sesjonsikon pÃ¥ skrivebordet... Starting x2goclient... virker som om det er egennavnet "x2goclient" som er ment her, beholder engelsk versjon Starter x2goclient... Starting x2goclient in portable mode... data directory is: virker som om det er egennavnet "x2goclient" som er ment her, beholder engelsk versjon Starter x2goclient i portabel modus... data-katalogen er: Started x2goclient. virker som om det er egennavnet "x2goclient" som er ment her, beholder engelsk versjon Startet x2goclient. Can't load translator: Kan ikke laste oversetter: Translator: Oversetter: installed. installert. &Set broker password... Still uncertain what to best use as a translation for "broker" &Sett megler passord... &Connectivity test... &Tilkoblings-test... Operation failed Handlingen feilet Password changed Passordet er endret Wrong password! Feil passord! <b>Authentication</b> <b>Autentisering</b> Restore Gjenopprett Multimedia Multimedia Development Utvikling Education Opplæring Game Spill Graphics Grafikk Network Nettverk Office Kontor Settings Innstillinger System System Utility Verktøy Other Andre Left mouse button to hide/restore - Right mouse button to display context menu Left click to open the X2GoClient window or right click to get the context menu. According to the Norwegian skolelinux translation projects discussion on the words "context menu", I've chosen to follow their guidance and used "sprettoppmeny" Venstre museknapp for Ã¥ skjule/gjenopprette - Høyre museknapp viser sprettoppmeny Closing x2goclient... virker som om det er egennavnet "x2goclient" som er ment her, beholder engelsk versjon Lukker x2goclient... Closed x2goclient. virker som om det er egennavnet "x2goclient" som er ment her, beholder engelsk versjon Lukket x2goclient. Create session icon on desktop Opprett sesjonsikon pÃ¥ skrivebordet Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Skrivebordsikoner kan konfigureres til Ã¥ ikke vise x2goklient (skjult modus). Om du ønsker Ã¥ benytte denne muligheten mÃ¥ du konfigurere pÃ¥logging ved bruk av en GPG-nøkkel, eller et GPG basert smartkort. Ønsker du Ã¥ aktivere skjult modus for x2goklient? New Session Ny sesjon X2Go sessions not found X2Go sesjoner ble ikke funnet RDP connection RDP tilkobling X2Go Link to session Uncertain of the context here, need to doublecheck this. X2Go kobling til sesjon Detach X2Go window Løsne X2Go vindu Attach X2Go window Feste X2Go vindu Finished Ferdig Are you sure you want to terminate this session? Unsaved documents will be lost Er du sikker pÃ¥ at du vil avslutte denne sesjonen? Ulagrede data vil gÃ¥ tapt </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2009 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2Go Servers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. Can't start X Server Please check your installation Klarer ikke Ã¥ starte X Serveren Vennligst sjekk din installasjon X2Go Session X2Go sesjon Minimize toolbar Minimer verktøylinje <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <br><b>&nbsp;&nbsp;&nbsp;Trykk her&nbsp;&nbsp;&nbsp;<br> &nbsp;&nbsp;&nbsp;for Ã¥ gjenopprette&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;verktøylinjen&nbsp;&nbsp;&nbsp;</b><br> Can't open config file: Konfigurationsdatei lässt sich nicht öffnen: sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> sshd er ikke startet og du trenger denne for skriver- og fildeling. Du kan installere sshd med: <b>sudo apt-get install openssh-server</b> Connection to local desktop Tilkobling til lokalt skrivebord Information Informasjon Filter Filter Select desktop: Velg skrivebord: View only Kun vis User Bruker XDMCP XDMCP No accessible desktop found Ingen tilgjengelige skrivebord ble funnet Full access Full tilgang Only my desktops Kun mine skrivebord Reconnect Gjenoppkoble Connecting to broker Koble til megleren </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>x2goplugin modusen ble sponset av <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2Go Servers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 wrong value for argument"speed" wrong value for argument"speed" application/x2go:x2go:Configuration File for X2Go Session application/x2go:x2go:Konfiguration Datei für eine X2Go Sitzung PrintDialog Print - X2Go Client Utskrift - X2Go klient Print note to myself: Need to doublecheck the context of this word, other places 'utskrift' is a better translation, but I'm guessing this the actual print-button text. Skriv ut You've deactivated the x2go client printing dialog. Du har deaktivert X2Go klientens utskriftsdialog. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) Hm... This indicates that I might have overlooked the usage of the word 'settings' somewhere - will have to look how this will look. Du kan reaktivere denne dialogen ved Ã¥ benytte x2goclient innstillingene (Meny -> Innstillinger -> Innstillinger) PrintProcess Save File Lagre fil PDF Document (*.pdf) PDF Dokuemtn (*.pdf) Failed to execute command: Klarte ikke Ã¥ utføre kommandoen: Printing error Utskriftsfeil PrintWidget Form Skjema Print Utskrift View as PDF Vis som PDF Print settings Utskriftsinnstillinger Printer: Skriver: Print using default Windows PDF Viewer (Viewer application needs to be installed) Skriv ut via standard Windows PDF leser (lese programmet mÃ¥ være installert) Printer command: Utskriftskommando: ... ... Viewer settings Instillinger for PDF leser Open in viewer application Ã…pne i leseprogrammet Command: Kommando: Save to disk Lagre til disk Show this dialog before start printing Vis denne dialogen før start av utskrift Please configure your client side printing settings.<br><br>If you want to print the created file, you'll need an external application. Typically you can use <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> and <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>You can find further information <a href="http://www.x2go.org/index.php?id=49">here</a>. Vennligst sett opp innstillingene for utskrift pÃ¥ klientsiden.<br><br>Om du ønsker Ã¥ skrive ut den opprettede filen sÃ¥ trengs en ekstern applikasjon. Typisk kan du benytte<a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> og <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>Du kan finne ytterlig informasjon <a href="http://www.x2go.org/index.php?id=49">her</a>. PrinterCmdDialog Printer command Utskriftskommando Command Kommando Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Vennligst skriv inn din egen, eller individuelle utskriftskommando. Eksempler: kprinter lpr -P hp_laserjet Output format Utformat Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Vennligst velg filformat for utskrift (relatert til ditt uskriftsoppsett - om du benytter CUPS kan du bruke PDF) PDF PDF PS PS Data structure Datastruktur Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): Vennligst velg metoden for inndatafil for utskrift (noen kommandoer aksepterer utskriftsfiler som programparametere, noen forventer data pÃ¥ standard inn): standard input (STDIN) Standard inn (STDIN) Specify path as program parameter Spesifiser stien som programparameter Please enter your customized or individual printing command. Example: Vennligst skriv inn din egen, eller individuelle utskriftskommando. Eksempel: <Path to gsprint.exe> -query -color Need to doublecheck this one <Sti til gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? Ingen respons mottatt fra serveren. Ønsker du Ã¥ avslutte gjeldende sesjon? SessionButton Session preferences... Sesjonsinnstillinger... Create session icon on desktop... Opprett sesjonsikon pÃ¥ skrivebordet... Delete session Slett sesjon Session actions Sesjonshandlinger Select type Velg type Select resolution Velg oppløsning Toggle sound support SlÃ¥ av/pÃ¥ lydstøtte New Session Ny sesjon running aktiv suspended frakoblet KDE KDE RDP connection RDP tilkobling XDMCP XDMCP Connection to local desktop Tilkobling til lokalt skrivebord Published applications Publiserte applikasjoner fullscreen fullskjerm Display Skjerm window vindu Maximum Maksimalt Enabled Aktivert Disabled Deaktivert SessionManageDialog E&xit &Avslutt &New session &Ny sesjon &Session preferences &Sesjonsinnstillinger &Delete session S&lett sesjon &Create session icon on desktop... &Opprett sesjonsikon pÃ¥ skrivebordet... Delete Delete Slett Session management SesjonshÃ¥ndtering SessionWidget Session name: Sesjonsnavn: << change icon << endre ikon &Server &Server Host: Vert: Login: Brukernavn: SSH port: SSH port: Use RSA/DSA key for ssh connection: Bruk RSA/DSA nøkkel for SSH tilkobling: Try auto login (ssh-agent or default ssh key) Forsøk automatisk pÃ¥logging (SSH agent, eller standard SSH nøkkel) Kerberos 5 (GSSAPI) authentication Kerberos 5 (GSSAPI) autentisering Use Proxy server for SSH connection Bruk proxyserver for SSH tilkobling Proxy server Proxyserver SSH SSH HTTP HTTP Same login as on X2Go Server Samme innlogging som pÃ¥ X2Go Server Same password as on X2Go Server Samme passord som pÃ¥ X2Go Server RSA/DSA key: RSA/DSA nøkkel: ssh-agent or default ssh key SSH-agent, eller standard SSH nøkkel Type: Type: Port: Port: &Session type &Sesjontype Session type: Sesjontype: Connect to Windows terminal server Koble til Windows terminal server XDMCP XDMCP Connect to local desktop Koble til lokalt skrivebord Custom desktop The normal "brukertilpasset" doesn't fit here Selvvalgt skrivebord Single application Enkel applikasjon Published applications Publiserte applikasjoner Command: Kommando: Advanced options... Avanserte alternativer... Path to executable Sti til programfil Direct RDP Connection Direktekobling med RDP RDP port: RDP port: Open picture Ã…pne bilde Pictures Bilder Open key file Ã…pne nøkkelfil All files Alle filer Error Feil x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient kjører i portabel modus. Du burde bruke en sti pÃ¥ din USB enhet for Ã¥ kunne benytte dataene dine uavhengig av hvor du er Server: Server: XDMCP server: XDMCP server: rdesktop command line options: rdesktop kommandolinjevalg: New session Ny sesjon SettingsWidget &Display &Skjerm &Keyboard &Tastatur Sound Lyd RDP Client RDP klient Fullscreen Fullskjerm Custom Tilpasset Window Vindu Use whole display Bruk hele skjermen Maximum available Maksimalt tilgjengelig Set display DPI Sett skjermens DPI Xinerama extension (support for two or more physical displays) Xinerama utvidelse (støtte for to, eller flere fysiske skjermer) Width: Bredde: Height: Høyde: &Display: &Skjerm: &Identify all displays &Identifiser alle skjermer Keep current keyboard Settings Behold gjeldende tastaturoppsett Keyboard layout: Tastatur utseende: Keyboard model: Tastatur modell: Enable sound support Aktiver lydstøtte Start sound daemon The translated word for daemon is not easy to understand in this context, I choose to use 'tjener' since I never use this as a translation for 'server' Start lydtjeneren Use running sound daemon Benytt kjørende lydtjener Use SSH port forwarding to tunnel sound system connections through firewalls Benytt SSH port videresendring for Ã¥ tunnelere lydsystem forbindelser gjennom brannmurer Use default sound port Benytt standard lyd port Sound port: Lyd port: Client side printing support Klientside utskrifts støtte Additional parameters: Ekstra parametere: Command line: Kommandolinje: us no pc105/us pc105/no password passord ShareWidget &Folders &Mapper Path Sti Automount Automonter Add Legg til Delete Slett Path: Sti: Filename encoding Tegnkoding av filnavn local: lokal: remote: ouch! This word is really hard to get right in Norwegian in these contextes... fjerntliggende: Use ssh port forwarding to tunnel file system connections through firewalls Benytt SSH port videresendring for Ã¥ tunnelere lydsystem forbindelser gjennom brannmurer Select folder Velg mappe Error Feil x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient kjører i portabel modus. Du burde bruke en sti pÃ¥ din USB enhet for Ã¥ kunne benytte dataene dine uavhengig av hvor du er WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 SshMasterConnection SSH proxy connection error SSH proxy tilkoblingsfeil SSH proxy connection error: SSH proxy tilkoblingsfeil: Failed to create SSH proxy tunnel Klarte ikke Ã¥ opprette SSH proxy tunnel Can not initialize libssh I need to revisit the word 'initiere', a better word could be 'klargjøre' Klarer ikke Ã¥ initiere libssh Can not create ssh session Klarer ikke Ã¥ opprette ssh sesjon Can not connect to proxy server Klarte ikke Ã¥ koble til proxyserver Can not connect to Klarer ikke Ã¥ koble til Authentication failed Autentisering feilet channel_forward_listen failed I'm not sure if this is a static variable which shouldn't be translated or not, but I left it as I believe it's a variable. channel_forward_listen feilet Can not open file Kan ikke Ã¥pne filen Can not create remote file Klarer ikke Ã¥ opprette fil over nettverket Can not write to remote file Klarer ikke Ã¥ skrive til filen over nettverket can not connect to Klarer ikke Ã¥ koble til channel_open_forward failed channel_open_forward feilet channel_open_session failed channel_open_session feilet channel_request_exec failed channel_request_exec feilet error writing to socket Really not any great words to best translate socket into... feil ved skriving til sokkelen error reading channel feil under lesing av kanalen channel_write failed channel_write feilet error reading tcp socket feil ved lesing av tcp sokkelen SshProcess Error creating socket feil under opprettelse av sokkelen Error binding Feil ved binding XSettingsWidget Open File Ã…pne fil Executable (*.exe) Programfil (*.exe) XSettingsWidgetUI Form Skjema You must restart the X2Go Client for the changes to take effect Du mÃ¥ restarte X2Go klienten for at endringene skal tre i kraft use integrated X-Server Benytt integrert X-Server do not use primary clipboard ikke benytt primær utklippstavle use custom X-Server Benytt egentilpasset X-Server custom X-Server egentilpasset X-Server executable: programfil: start X-Server on X2Go Client start start X-Serveren nÃ¥r X2Go klienten startes command line options: Not sure if this is the best translation, but I'll stick to this for now kommandolinjevalg: X-Server command line options Not sure if this is the best translation, but I'll stick to this for now X-Server kommandolinjevalg window mode: Vindus-modus: fullscreen mode: fullskjerm-modus: single application: Not sure if this is the best translation, but I'll stick to this for now enkeltapplikasjon: x2goclient-4.0.1.1/x2goclient.pro0000755000000000000000000001137612214040350013421 0ustar # Diese Datei wurde mit dem qmake-Manager von KDevelop erstellt. # ------------------------------------------- # Unterordner relativ zum Projektordner: . # Das Target ist eine Anwendung: #include (x2goclientconfig.pri) CONFIG += $$(X2GO_CLIENT_TARGET) CONFIG += $$(X2GO_LINUX_STATIC) #CONFIG += console FORMS += cupsprintsettingsdialog.ui \ cupsprintwidget.ui \ printdialog.ui \ printercmddialog.ui \ printwidget.ui \ xsettingsui.ui \ brokerpassdialog.ui \ contest.ui \ appdialog.ui TRANSLATIONS += \ x2goclient_de.ts \ x2goclient_da.ts \ x2goclient_es.ts \ x2goclient_fi.ts \ x2goclient_ru.ts \ x2goclient_nb_no.ts \ x2goclient_sv.ts \ x2goclient_fr.ts \ x2goclient_zh_tw.ts HEADERS += configdialog.h \ editconnectiondialog.h \ exportdialog.h \ imgframe.h \ LDAPSession.h \ onmainwindow.h \ sessionbutton.h \ sessionmanagedialog.h \ sshmasterconnection.h \ sshprocess.h \ SVGFrame.h \ userbutton.h \ x2goclientconfig.h \ x2gologdebug.h \ printprocess.h \ cupsprint.h \ cupsprintwidget.h \ cupsprintersettingsdialog.h \ printwidget.h \ printercmddialog.h \ printdialog.h \ wapi.h \ sessionwidget.h \ configwidget.h \ connectionwidget.h \ settingswidget.h \ sharewidget.h \ clicklineedit.h \ httpbrokerclient.h \ ongetpass.h \ onmainwindow_privat.h \ x2gosettings.h \ brokerpassdlg.h \ contest.h \ xsettingswidget.h \ appdialog.h SOURCES += sharewidget.cpp \ settingswidget.cpp\ configwidget.cpp \ sessionwidget.cpp \ connectionwidget.cpp \ configdialog.cpp \ editconnectiondialog.cpp \ exportdialog.cpp \ imgframe.cpp \ LDAPSession.cpp \ onmainwindow.cpp \ sessionbutton.cpp \ sessionmanagedialog.cpp \ sshmasterconnection.cpp \ sshprocess.cpp \ SVGFrame.cpp \ userbutton.cpp \ x2gologdebug.cpp \ printprocess.cpp \ cupsprint.cpp \ cupsprintwidget.cpp \ cupsprintersettingsdialog.cpp \ printwidget.cpp \ printercmddialog.cpp \ printdialog.cpp \ wapi.cpp \ clicklineedit.cpp \ httpbrokerclient.cpp \ ongetpass.cpp \ x2gosettings.cpp \ brokerpassdlg.cpp \ contest.cpp \ xsettingswidget.cpp \ appdialog.cpp LIBS += -lssh plugin { TARGET = x2goplugin } else { RC_FILE = x2goclient.rc SOURCES += x2goclient.cpp TARGET = x2goclient DEFINES += CFGCLIENT message(if you want to build x2goplugin you should export X2GO_CLIENT_TARGET=plugin) } !isEmpty(TRANSLATIONS) { isEmpty(QMAKE_LRELEASE) { win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\lrelease.exe else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease } isEmpty(TS_DIR):TS_DIR = . TSQM.name = lrelease ${QMAKE_FILE_IN} TSQM.input = TRANSLATIONS TSQM.output = $$TS_DIR/${QMAKE_FILE_BASE}.qm TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} TSQM.CONFIG = no_link QMAKE_EXTRA_COMPILERS += TSQM PRE_TARGETDEPS += compiler_TSQM_make_all } else:message(No translation files in project) TEMPLATE = app DEPENDPATH += . INCLUDEPATH += . RESOURCES += resources.rcc linux-g++ { message(building $$TARGET with ldap and cups) LIBS += -lldap -lcups -lX11 -lXpm DEFINES += __linux__ } linux-g++-64 { message(building $$TARGET with ldap and cups) LIBS += -lldap -lcups -lX11 -lXpm DEFINES += __linux__ } x2go_linux_static { message (linking all libs statically) DEFINES += __linux__ LIBS -= -lssh LIBS += -lssh_static -lssl -lXpm QMAKE_LFLAGS = -Bstatic $$QMAKE_LFLAGS } macx { message(building $$TARGET with ldap and cups) LIBS += -framework LDAP -lcups -lcrypto -lssl -lz } win32-* { message(building $$TARGET for windows without ldap and cups) LIBS += -lwinspool -lws2_32 CONFIG += static release } QT += svg network ICON = icons/x2go-mac.icns QMAKE_INFO_PLIST = Info.plist plugin { DEFINES += CFGPLUGIN linux-g++ { include(qtbrowserplugin-2.4_1-opensource/src/qtbrowserplugin.pri) } linux-g++-64 { include(qtbrowserplugin-2.4_1-opensource/src/qtbrowserplugin.pri) } win32-* { DEFINES += QT_NODLL CONFIG += qaxserver include(qtbrowserplugin-2.4_1-opensource/src/qtbrowserplugin.pri) } RC_FILE = x2goplugin.rc } x2goclient-4.0.1.1/x2goclient.pro.maemo0000644000000000000000000000320312214040350014501 0ustar # Diese Datei wurde mit dem qmake-Manager von KDevelop erstellt. # ------------------------------------------- # Unterordner relativ zum Projektordner: . # Das Target ist eine Anwendung: TRANSLATIONS += x2goclient_de.ts TRANSLATIONS += x2goclient_ru.ts HEADERS += configdialog.h \ editconnectiondialog.h \ exportdialog.h \ imgframe.h \ LDAPSession.h \ onmainwindow.h \ sessionbutton.h \ sessionmanagedialog.h \ sshprocess.h \ SVGFrame.h \ userbutton.h \ x2goclientconfig.h \ x2gologdebug.h \ printprocess.h \ printwidget.h \ printercmddialog.h \ printdialog.h \ embedwidget.h \ wapi.h \ sessionwidget.h \ configwidget.h \ connectionwidget.h \ settingswidget.h \ sharewidget.h \ clicklineedit.h SOURCES += sharewidget.cpp \ settingswidget.cpp\ configwidget.cpp \ sessionwidget.cpp \ connectionwidget.cpp \ configdialog.cpp \ editconnectiondialog.cpp \ exportdialog.cpp \ imgframe.cpp \ LDAPSession.cpp \ ongetpass.cpp \ onmainwindow.cpp \ sessionbutton.cpp \ sessionmanagedialog.cpp \ sshprocess.cpp \ SVGFrame.cpp \ userbutton.cpp \ x2gologdebug.cpp \ printprocess.cpp \ printwidget.cpp \ printercmddialog.cpp \ printdialog.cpp \ embedwidget.cpp \ wapi.cpp \ clicklineedit.cpp TEMPLATE = app TARGET = DEPENDPATH += . INCLUDEPATH += . RESOURCES += resources.rcc RC_FILE = x2goclient.rc QT += svg network ICON =icons/x2go-mac.icns QMAKE_MAC_SDK =/Developer/SDKs/MacOSX10.5.sdk CONFIG +=x86 ppc FORMS += cupsprintsettingsdialog.ui \ cupsprintwidget.ui \ printwidget.ui \ printercmddialog.ui \ printdialog.ui x2goclient-4.0.1.1/x2goclient.rc0000644000000000000000000000007412214040350013213 0ustar IDI_ICON1 ICON DISCARDABLE "icons/x2go-win-48.ico" x2goclient-4.0.1.1/x2goclient_ru.ts0000644000000000000000000046200012214040350013744 0ustar AppDialog Published Applications Удаленные Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Search: ПоиÑк: &Start &ПуÑк &Close &Закрыть Multimedia Мультимедиа Development Разработка Education Обучение Game Игры Graphics Графика Network Сеть Office ÐžÑ„Ð¸Ñ Settings УÑтановки System СиÑтема Utility Утилиты Other Другие BrokerPassDialogUi Dialog Диалог Old password: Старый пароль: New password: Ðовый пароль: Confirm password: Подтвердить пароль: TextLabel метка BrokerPassDlg Passwords do not match Пароли не Ñовпадают CUPSPrintWidget Idle Ожидание Printing Печать Stopped ОÑтановлен Yes Да No Ðет Form Форма Name: ИмÑ: Properties СвойÑтва State: СоÑтоÑние: Accepting jobs: Принимает заданиÑ: Type: Тип: Location: РаÑположение: Comment: Комментарий: CUPSPrinterSettingsDialog No option selected Ðет выбранных параметров This value is in conflict with other option Выбранное значение конфликтует Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ опциÑми Options conflict Конфликт опций ConTest Connectivity test ТеÑÑ‚ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ HTTPS connection: HTTPS Ñоединение: SSH connection: SSH Ñоединение: Connection speed: СкороÑть ÑоединениÑ: Failed Ошибка 0 Kb/s OK Socket operation timed out Failed: Ошибка: ConfigDialog Use LDAP ИÑпользовать LDAP LDAP Settings УÑтановки LDAP Server URL: URL Сервера: BaseDN: BaseDN: Failover Server 1 URL: Failover Server 1 URL: Failover Server 2 URL: Failover Server 2 URL: X-Server Settings УÑтановки X-Сервера Xming Xming XWin (Cygwin) XWin (Cygwin) Custom X-Server Другой X-Сервер Reset to defaults По умолчанию Command: ИÑполнÑемый файл: Arguments: Ðргументы: Display: ДиÑплей: Working directory: Рабочий каталог: &OK &OK &Cancel О&тмена Settings УÑтановки Applications (*.exe);;All Files (*.*) ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ (*.exe);;Ð’Ñе файлы (*.*) X11 Application: X11: X11 Version: ВерÑÐ¸Ñ X11: Find X11 Application ПоиÑк X11 Warning Предупреждение x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2goclient не Ñмог найти уÑтановленное на Вашем компьютере приложение X11. ПожалуйÑта уÑтановите X11 или укажите путь к уÑтановленному приложению Your are using X11 (Apple X-Window Server) version Ð’Ñ‹ иÑпользуете приложение X11 верÑии . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). . Ð”Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¸Ð¼ÐµÐµÑ‚ проблемы Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÐ¼ в 24-Ñ… битных цветовых режимах. Обновите пожалуйÑта ваше X11 приложение (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path Приложение X11 не найдено в заданом каталоге Clientside SSH Port For File System Export Usage: SSH порт на Ñтороне клиента Ð´Ð»Ñ ÑкÑпорта файловой ÑиÑтемы: LDAP settings УÑтановки LDAP Failover server 1 URL: Failover Server 1 URL: Failover server 2 URL: Failover Server 2 URL: X-Server settings УÑтановки X-Сервера X11 application: X11: X11 version: ВерÑÐ¸Ñ X11: Find X11 application ПоиÑк X11 Clientside SSH port for file system export usage: SSH порт на Ñтороне клиента Ð´Ð»Ñ ÑкÑпорта файловой ÑиÑтемы: General Общие Printing Печать Start session embedded inside website Отображать ÑеÑÑию вÑтроенной в веб Ñтраницу Display icon in system tray Отображать пиктограму в ÑиÑтемном трее Hide to system tray when minimized СпрÑтать в ÑиÑтемный трей при Ñворачивании Hide to system tray when closed СпрÑтать в ÑиÑтемный трей при закрытии Hide to system tray after connection is established СпрÑтать в ÑиÑтемный трей поÑле уÑтановки ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Restore from system tray after session is disconnected ВоÑÑтановить при разрыве ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Advanced options Продвинутые уÑтановки Defaults По умолчанию &Connection С&оединение &Settings &УÑтановки ConnectionWidget &Connection speed &Тип ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Connection speed: Тип ÑоединениÑ: C&ompression С&жатие Method: Метод: Compression method: Метод ÑжатиÑ: Image quality: КачеÑтво изображениÑ: CupsPrinterSettingsDialog Dialog Диалог General Общие Page size: Формат бумаги: Paper type: Тип бумаги: Paper source: Подача бумаги: Duplex Printing ДвуÑтороннÑÑ Ð¿ÐµÑ‡Ð°Ñ‚ÑŒ None Ðет Long side По широкой Ñтороне Short side По узкой Ñтороне Driver settings Опции драйвера Option ÐžÐ¿Ñ†Ð¸Ñ Value Значение No option selected Ðет выбранных параметров text текÑÑ‚ EditConnectionDialog &Session &СеÑÑÐ¸Ñ &Connection С&оединение &Settings &УÑтановки &Shared Folders &ЭкÑпорт каталогов &OK &OK &Cancel О&тмена Defaults По умолчанию Session Name: Ð˜Ð¼Ñ ÑеÑÑии: << change Icon << изменить значок &Server &Сервер Host: ХоÑÑ‚: Login: Пользователь: SSH Port: SSH порт: Use RSA/DSA key for ssh connection: RSA/DSA ключ Ð´Ð»Ñ ssh ÑоединениÑ: &Desktop Session &Оконный менеджер Custom Другой Command: Команда: &Connection Speed &Тип ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ C&ompression С&жатие Method: Метод: Image Quality: КачеÑтво изображениÑ: &Display &ДиÑплей Fullscreen ПолноÑкранный режим Width: Ширина: Height: Ð’Ñ‹Ñота: &Keyboard &Клавиатура Keep current Keyboard Settings ИÑпользовать текущие уÑтановки Keyboard Layout: РаÑкладка Клавиатуры: Keyboard Model: Модель клавиатуры: Sound Звук Enable Sound Support Ðктивировать звук &Folders &Каталоги Path РаÑположение Automount СоединÑть автоматичеÑки Add Добавить Delete Удалить Path: РаÑположение: New Session ÐÐ¾Ð²Ð°Ñ ÑеÑÑÐ¸Ñ Session Preferences - УÑтановки ÑеÑÑии - Open Picture Открыть изображение Pictures Ð˜Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Open Key File Открыть файл Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼ All Files Ð’Ñе файлы us ru pc105/us pc105/ru Select Folder Выбор каталога &Session Type &Тип ÑеÑÑии Session Type: Тип ÑеÑÑии: Custom Desktop Другой оконный менеджер Single Application Приложение Path to executable Путь к иÑполнÑемому файлу Connection Speed: СкороÑть ÑоединениÑ: Compression Method: Метод комреÑÑии: Window Окно &Shared folders &ЭкÑпорт каталогов Session name: Ð˜Ð¼Ñ ÑеÑÑии: << change icon << изменить значок SSH port: SSH порт: &Session type &Тип ÑеÑÑии Session type: Тип ÑеÑÑии: Custom desktop Другой оконный менеджер Single application Приложение &Connection speed &Тип ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Connection speed: СкороÑть ÑоединениÑ: Compression method: Метод комреÑÑии: Image quality: КачеÑтво изображениÑ: Keep current keyboard Settings ИÑпользовать текущие уÑтановки Keyboard layout: РаÑкладка Клавиатуры: Keyboard model: Модель клавиатуры: Enable sound support Ðктивировать звук Start sound daemon ЗапуÑкать звуковой Ñервер Use running sound daemon ИÑпользовать запущенный звуковой Ñервер Use SSH port forwarding to tunnel sound system connections through firewalls ИÑпользовать SSH туннель Ð´Ð»Ñ Ð·Ð²ÑƒÐºÐ¾Ð²Ð¾Ð¹ ÑиÑтемы Use default sound port ИÑпользовать порт по умолчанию Sound port: Порт: Use ssh port forwarding to tunnel file system connections through firewalls ИÑпользовать SSH туннель Ð´Ð»Ñ ÑкÑпорта файловой ÑиÑтемы New session ÐÐ¾Ð²Ð°Ñ ÑеÑÑÐ¸Ñ Session preferences - УÑтановки ÑеÑÑии - Open picture Открыть изображение Open key file Открыть файл Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼ All files Ð’Ñе файлы Select folder Выбор каталога Client side printing support Печать на Ñтороне клиента Connect to Windows terminal server Соединение Ñ Ñ‚ÐµÑ€Ð¼Ð¸Ð½Ð°Ð»ÑŒÐ½Ñ‹Ð¼ Ñервером Windows Advanced options... Продвинутые уÑтановки... Server: Сервер: rdesktop command line options: Опции командной Ñтроки rdesktop: ExportDialog &Cancel О&тмена &share &Соединить &Preferences ... &ÐаÑтройки ... &Custom Folder ... &Другой каталог ... Delete Delete Удалить share Folders ЭкÑпорт каталогов Select Folder Выбор каталога &Custom folder ... &Другой каталог ... share folders ЭкÑпорт каталогов Select folder Выбор каталога HttpBrokerClient us ru pc105/us pc105/ru Host key for server changed. It is now: Ключ на Ñервере изменен: For security reasons, connection will be stopped Из Ñоображений безопаÑноÑти Ñоединение будет разорвано The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Ключ Ð´Ð»Ñ Ñтого Ñервера не найден, но другой вариант ключа ÑущеÑтвует. Злоумышленик мог изменить ключ Ñервера по умолчаниÑ, что бы ввеÑти ваш клиент в заблуждение, что Ñтот ключ не ÑущеÑтвует Could not find known host file.If you accept the host key here, the file will be automatically created Ðе могу найти файл Ñ ÐºÐ»ÑŽÑ‡Ð°Ð¼Ð¸. ЕÑли вы примете Ñтот ключ, файл будет Ñоздан автоматичеÑки The server is unknown. Do you trust the host key? Public key hash: Сервер не извеÑтен. ДоверÑете ли вы Ñтому ключу? Public key hash: Host key verification failed Ошибка проверки ключа Yes Да No Ðет Enter passphrase to decrypt a key Введите фразу-пароль Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° Authentication failed Ошибка авторизации Error Ошибка Login failed!<br>Please try again Ошибка авторизации<br>Повторите попытку <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>Сервер иÑпользует недоÑтоверный SSL Ñертификат.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>Вам не Ñледует добавлÑть иÑключение еÑли вы иÑпользуете интернет Ñоединение в котором вы не полноÑтью уверены или еÑли вы не должны были бы получить подобное предупрежедение при Ñоединении Ñ Ñтим Ñервером</p> Secure connection failed БезопаÑное Ñоединение невозможно Issued to: Issued to: Common Name(CN) Common Name(CN) Organization(O) Organization(O) Organizational Unit(OU) Organizational Unit(OU) Serial Number Serial Number Issued by: Issued by: Validity: Validity: Issued on Issued on expires on expires on Fingerprints: Fingerprints: SHA1 SHA1 MD5 MD5 Exit X2Go Client Выход Add exception Добавить иÑключение Your session was disconnected. To get access to your running session, please return to the login page or use the "reload" function of your browser. Ваша ÑеÑÑÐ¸Ñ Ð±Ð¾Ð»ÑŒÑˆÐµ не дейÑтвительна. Чтобы продолжить Ñоединение, вернитеÑÑŒ на Ñтраницу региÑтрации или иÑпользуйте функцию Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñтраницы броузера. ONMainWindow us ru pc105/us pc105/ru Support ... Поддержка ... Session: СеÑÑиÑ: &Quit &Выход Ctrl+Q Ctrl+Q Quit Выход &New Session ... &ÐÐ¾Ð²Ð°Ñ ÑеÑÑÐ¸Ñ ... Ctrl+N Ctrl+N Session Management... Управление ÑеÑÑиÑми... Ctrl+E Ctrl+E &Settings ... &УÑтановки ... Restore toolbar ВоÑÑтановить панель инÑтрументов About X2GO Client О программе "X2GO Client" About Qt О Qt Session СеÑÑÐ¸Ñ Ctrl+Q exit Ctrl+Q &Session &СеÑÑÐ¸Ñ &Options &Опции &Help &Помощь Login: Пользователь: New session started Session resumed Unable to create folder: Unable to write file: Emergency exit. Waiting for proxy to exit. Failed, killing the proxy. Wrong parameter: RSA file empty. Can not open key: Card not configured. Error getting window geometry (window closed)? Password: Пароль: Keyboard layout: РаÑкладка Клавиатуры: Ok ОК Cancel Отмена Applications... ПриложениÑ... Invalid reply from broker Ðеверный ответ брокера Error Ошибка Please check LDAP Settings Проверте наÑтройки LDAP no X2Go Server found in LDAP Сервер X2Go не найден в LDAP Are you sure you want to delete this Session? Удалить ÑеÑÑию? KDE KDE on на <b>Connection failed</b> <b>Ошибка ÑоединениÑ</b><br> <b>Wrong Password!</b><br><br> <b>Ðеверный пароль!</b><br><br> No Server availabel Ðе доÑтупен ни один Ñервер Select session: СеÑÑиÑ: Resume ВоÑÑтановить Suspend Прервать Terminate Завершить New ÐÐ¾Ð²Ð°Ñ Display ДиÑплей Status Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Server Сервер Creation Time Ð’Ñ€ÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Client IP IP клиента Session ID ID ÑеÑÑии running активна suspended прервана Warning Предупреждение Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to Глубина цвета вашего диÑÐ¿Ð»ÐµÑ Ð½Ðµ ÑоответÑтвует глубине цвета данной ÑеÑÑии. Это может помешать воÑÑтановлению ÑеÑÑии и в большинÑтве Ñлучаев<b>ÑеÑÑÐ¸Ñ Ð±ÑƒÐ´ÐµÑ‚ утерÑна</b> РекомендуетÑÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ глубину цвета вашего диÑÐ¿Ð»ÐµÑ Ð½Ð°(sp) 24 or 32 24 или 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? бит и перезапуÑтить X-Ñервер до воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑÑии.<br>Попробовать воÑÑтановить ÑеÑÑию не ÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð½Ð° данное предупреждение? Yes Да No X2Go sessions found, closing. Starting connection to server: to Connection Error( Couldn't find a SSH connection. Enter passphrase to decrypt a key Введите фразу-пароль Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° Host key for server changed. It is now: Ключ на Ñервере изменен: For security reasons, connection will be stopped Из Ñоображений безопаÑноÑти Ñоединение будет разорвано The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Ключ Ð´Ð»Ñ Ñтого Ñервера не найден, но другой вариант ключа ÑущеÑтвует. Злоумышленик мог изменить ключ Ñервера по умолчаниÑ, что бы ввеÑти ваш клиент в заблуждение, что Ñтот ключ не ÑущеÑтвует Could not find known host file.If you accept the host key here, the file will be automatically created Ðе могу найти файл Ñ ÐºÐ»ÑŽÑ‡Ð°Ð¼Ð¸. ЕÑли вы примете Ñтот ключ, файл будет Ñоздан автоматичеÑки The server is unknown. Do you trust the host key? Public key hash: Сервер не извеÑтен. ДоверÑете ли вы Ñтому ключу? Public key hash: No Ðет Host key verification failed Ошибка проверки ключа Authentication failed: Authentication failed Ошибка авторизации Enter password for SSH proxy Введите пароль Ð´Ð»Ñ SSH прокÑи Connection failed: - Wrong password. Server not availabel Сервер не доÑтупен suspending прерываетÑÑ terminating завершаетÑÑ Unable to create Folder: Ðевозможно Ñоздать каталог: Unable to write File: Ðевозможно запиÑать файл: Unable to create SSL Tunnel: Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ SSL тунелÑ: connecting Ñоединение starting запуÑк resuming воÑÑтановление Connection timeout, aborting Таймаут ÑоединениÑ, отмена aborting отмена <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation Time:<br>Status:</b> <b>ID ÑеÑÑии:<br>Сервер:<br>Пользователь:<br>ДиÑплей:<br>Ð’Ñ€ÐµÐ¼Ñ ÑозданиÑ:<br>СтатуÑ:</b> Abort Отмена Share Folder... ЭкÑпорт каталога... Show Details Показать детали <b>Connection failed</b> : <b>Ошибка ÑоединениÑ</b>(new line): (can't open file) (невозможно открыть файл) (file not exists) (файл не ÑущеÑтвует) (directory not exists) (каталог не ÑущеÑтвует) wrong value for argument"--link" wrong value for argument"--sound" wrong value for argument"--geometry" wrong value for argument"--set-kbd" wrong value for argument"--ldap" wrong value for argument"--ldap1" wrong value for argument"--ldap2" wrong value for argument"--pack" wrong parameter: wrong parameter: Options Опции Available pack methodes: Available pack methodes: Support Поддержка </b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> Can't read host rsa key: Ðевозможно прочитать RSA ключ: Unable to read : Ðевозможно прочитать : Unable to write : Ðевозможно запиÑать : <b>X2Go Client V. <b>X2Go Client V. </b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Клиент Ñетевого Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ X2Go. Данный клиент предназначен Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ñервером (Ñерверами) X2Go и запуÑка, воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð½Ð¾Ð¹ ÑеÑÑии. Клиент X2Go ÑохранÑет наÑтройки Ñоединений и может запрашивать информацию о пользователÑÑ… из LDAP. Ð’ поÑледнем Ñлучае клиент может иÑпользоватьÑÑ ÐºÐ°Ðº менеджер входа в ÑиÑтему (замена менеджера подобного xdm) Ð´Ð»Ñ Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ "тонких клиентов" X2Go. ПоÑетите http://x2go.org Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ детальной информации. No valid card found Формат карты неизвеÑтен This card is unknown by X2Go System Эта карта не Ñконфигурирована Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ X2Go Unable to create file: Ðевозможно Ñоздать файл: Can't connect to X-Server Ðевозможно приÑоединитьÑÑ Ðº X-Ñерверу Can't connect to X server Please check your settings Can't connect to X-Server Please check your settings Ðевозможно приÑоединитьÑÑ Ðº X-Ñерверу Проверьте наÑтройки Can't start X-Server Ðевозможно запуÑтить X-Сервер Can't start X Server Please check your settings Ðевозможно запуÑтить X-Сервер Проверьте наÑтройки </b><br> (C. 2006-2008 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2008 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Клиент Ñетевого Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ X2Go. Данный клиент предназначен Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ñервером (Ñерверами) X2Go и запуÑка, воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð½Ð¾Ð¹ ÑеÑÑии. Клиент X2Go ÑохранÑет наÑтройки Ñоединений и может запрашивать информацию о пользователÑÑ… из LDAP. Ð’ поÑледнем Ñлучае клиент может иÑпользоватьÑÑ ÐºÐ°Ðº менеджер входа в ÑиÑтему (замена менеджера подобного xdm) Ð´Ð»Ñ Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ "тонких клиентов" X2Go. ПоÑетите http://x2go.org Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ детальной информации. Internet Browser Веб-броузер Email Client Почтовый клиент OpenOffice.org Terminal Терминал unknown неизвеÑтно Command Команда Type Тип Desktop Оконный менеджер single application приложение shadow session Ñ‚ÐµÐ½ÐµÐ²Ð°Ñ ÑеÑÑÐ¸Ñ <br>Sudo configuration error <br>Ошибка наÑтроек "sudo" Unable to execute: Ðевозможно выполнить: X2Go Client Internet browser Веб-броузер Email client Почтовый клиент &New session ... &ÐÐ¾Ð²Ð°Ñ ÑеÑÑÐ¸Ñ ... Session management... Управление ÑеÑÑиÑми... Show toolbar Панель инÑтрументов About X2GO client О программе "X2GO Client" Please check LDAP settings Проверьте наÑтройки LDAP no X2Go server found in LDAP Сервер X2Go не найден в LDAP Are you sure you want to delete this session? Удалить ÑеÑÑию? <b>Wrong password!</b><br><br> <b>Ðеверный пароль!</b><br><br> No server availabel Ðе доÑтупен ни один Ñервер Not connected Active connection Соединение не уÑтановлено Creation time Ð’Ñ€ÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Unable to create folder: Ðевозможно Ñоздать каталог: Unable to write file: Ðевозможно запиÑать файл: Unable to create SSL tunnel: Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ SSL тунелÑ: <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>ID ÑеÑÑии:<br>Сервер:<br>Пользователь:<br>ДиÑплей:<br>Ð’Ñ€ÐµÐ¼Ñ ÑозданиÑ:<br>СтатуÑ:</b> Share folder... ЭкÑпорт каталога... Show details Показать детали This card is unknown by X2Go system Эта карта не Ñконфигурирована Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ X2Go Can't start X server Please check your settings Ðевозможно запуÑтить X-Сервер Проверьте наÑтройки Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package Удаленный Ñервер не поддерживает ÑкÑпорт файловой ÑиÑтемы через SSH туннель ПожалуйÑта обновите пакет x2goserver &Create session icon on desktop... &Создать Ñрлык ÑеÑÑии на рабочем Ñтоле... Starting x2goclient... Starting x2goclient in portable mode... data directory is: Started x2goclient. Can't load translator: Translator: installed. &Set broker password... &УÑтановить пароль на брокере... &Connectivity test... &ТеÑÑ‚ ÑоединениÑ... Operation failed Ошибка Password changed Пароль изменен Wrong password! Ðеверный пароль! <b>Authentication</b> <b>ÐвторизациÑ</b> Restore ВоÑÑтановить Multimedia Мультимедиа Development Разработка Education Обучение Game Игры Graphics Графика Network Сеть Office ÐžÑ„Ð¸Ñ Settings УÑтановки System СиÑтема Utility Утилиты Other Другие Left mouse button to hide/restore - Right mouse button to display context menu Left click to open the X2GoClient window or right click to get the context menu. Щелчок левой кнопкой: ÑпрÑтать/воÑÑтановить - правой: отобразить контекÑтное меню Closing x2goclient... Closed x2goclient. Create session icon on desktop Создать Ñрлык ÑеÑÑии на рабочем Ñтоле Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Ярлык ÑеÑÑии может инициировать Ñоединение без Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð° X2Go (Ñкрытый режим). ЕÑли вы хотите иÑпользовать Ñкрытый режим, вам необходимо наÑтроить ключ Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ иÑпользовать PGP Ñмарт карту. Ðктивировать Ñкрытый режим? New Session ÐÐ¾Ð²Ð°Ñ ÑеÑÑÐ¸Ñ X2Go sessions not found СеÑÑÐ¸Ñ X2Go не найдена RDP connection RDP Ñоединение X2Go Link to session Detach X2Go window ОтÑоединить окно Attach X2Go window ПриÑоединить окно Finished завершена Are you sure you want to terminate this session? Unsaved documents will be lost Ð’Ñ‹ уверены, что хотите удалить Ñту ÑеÑÑию? Ð’Ñе неÑохраненные документы будут утерÑны </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2009 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Клиент Ñетевого Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ X2Go. Данный клиент предназначен Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ñервером (Ñерверами) X2Go и запуÑка, воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð½Ð¾Ð¹ ÑеÑÑии. Клиент X2Go ÑохранÑет наÑтройки Ñоединений и может запрашивать информацию о пользователÑÑ… из LDAP. Ð’ поÑледнем Ñлучае клиент может иÑпользоватьÑÑ ÐºÐ°Ðº менеджер входа в ÑиÑтему (замена менеджера подобного xdm) Ð´Ð»Ñ Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ "тонких клиентов" X2Go. ПоÑетите http://x2go.org Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ детальной информации. Can't start X Server Please check your installation Ðевозможно запуÑтить X Server ПереуÑтановите X2Go Client X2Go Session СеÑÑÐ¸Ñ X2Go Minimize toolbar Свернуть панель <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <br><b>&nbsp;&nbsp;&nbsp;Щелкните по Ñтой иконке&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;чтобы воÑÑтановить панель инÑтрументов&nbsp;&nbsp;&nbsp;</b><br> Can't open config file: Ðевозможно открыть файл: sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> sshd не функционирует, ssd необходим Ð´Ð»Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð¸ и ÑкÑпорта файловой ÑиÑтемы Ð’Ñ‹ можете уÑтановить sshd при помощи команды <b>sudo apt-get install openssh-server</b> Connection to local desktop Соединение Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¼ деÑктопом Information Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Filter Фильтр Select desktop: Выбрать деÑктоп: View only Только Ñмотреть User Пользователь XDMCP XDMCP No accessible desktop found ДоÑтупный деÑктоп не найден Full access Полный доÑтуп Only my desktops Только мои деÑктопы Reconnect Повторить Ñоединение Connecting to broker Соединение Ñ Ð±Ñ€Ð¾ÐºÐµÑ€Ð¾Ð¼ </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>x2goplugin был разработан при поддержке <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <br>Клиент Ñетевого Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ X2Go. Данный клиент предназначен Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ñервером (Ñерверами) X2Go и запуÑка, воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð½Ð¾Ð¹ ÑеÑÑии. Клиент X2Go ÑохранÑет наÑтройки Ñоединений и может запрашивать информацию о пользователÑÑ… из LDAP. Ð’ поÑледнем Ñлучае клиент может иÑпользоватьÑÑ ÐºÐ°Ðº менеджер входа в ÑиÑтему (замена менеджера подобного xdm) Ð´Ð»Ñ Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ "тонких клиентов" X2Go. ПоÑетите http://x2go.org Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ детальной информации. WINDOWS-1252 WINDOWS-1251 ISO8859-1 KOI8-R wrong value for argument"speed" wrong value for argument"speed" application/x2go:x2go:Configuration File for X2Go Session application/x2go:x2go:Файл наÑтроек ÑеÑÑии X2Go PrintDialog Print Печать You've deactivated the x2go client printing dialog. Отключение диалога печати. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ диалога печати воÑпользуйтеÑÑŒ диалогом уÑтановок (меню -> опции -> уÑтановки) Print - X2Go Client Печать - X2Go Client PrintProcess Save File Сохранить файл PDF Document (*.pdf) Документ PDF (*.pdf) Failed to execute command: Ðевозможно выполнить команду: Printing error Ошибка печати PrintWidget Form Форма Print Печать View as PDF ПроÑмотр PDF Print settings ÐаÑтройки печати Printer command: Команда печати: ... ... Viewer settings ÐаÑтройки проÑмотра Open in viewer application Открыть программой проÑмотра Command: Команда: Save to disk Сохранить на диÑке Show this dialog before start printing Открывать Ñтот диалог перед печатью Please configure your client side printing settings.<br><br>If you want to print the created file, you'll need an external application. Typically you can use <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> and <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>You can find further information <a href="http://www.x2go.org/index.php?id=49">here</a>. ÐаÑтройка програмы печати<br><br>Ð”Ð»Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð¸ Ñгенерированных файлов вам понадобитÑÑ ÑÐ¿ÐµÑ†Ð¸Ð°Ð»ÑŒÐ½Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° печати. Мы рекомендуем иÑпользовать <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> и <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>Более детальную информацию о наÑтройках программы печати вы можете найти <a href="http://www.x2go.org/index.php?id=49">здеÑÑŒ</a>. Printer: Принтер: Print using default Windows PDF Viewer (Viewer application needs to be installed) Печать при помощи Ñтандартной программы Windows Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра PDF (Программа проÑмотра должна быть уÑтановленна) PrinterCmdDialog Printer command Команда печати Command Команда Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet ПожалуйÑта введите выбранную вами команду печати. Примеры: kprinter lpr -P hp_laserjet Output format Формат вывода Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) ПожалуйÑта выберите формат файла печати (еÑли вы иÑпользуете CUPS, вы можете выбрать PDF) PDF PDF PS PS Data structure Структура данных Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): ПожалуйÑта выберите метод ввода файла печати (некоторые программы требуют указать Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° печати в параметрах командной Ñтроки, другие читают данные из уÑтройÑтва Ñтандартного ввода): standard input (STDIN) Ñтандартный ввод (STDIN) Specify path as program parameter Указать путь к файлу в параметре командной Ñтроки Please enter your customized or individual printing command. Example: ПожалуйÑта введите выбранную вами команду печати. Пример: <Path to gsprint.exe> -query -color <Путь к gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? Ðет ответа от Ñервера. Прервать текущую ÑеÑÑию? SessionButton Session Preferences... УÑтановки ÑеÑÑии... Delete Session... Удалить ÑеÑÑию... Select Type Выбор деÑктопа Select Resolution Выбор Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ñкрана Toggle Sound support Ðктивировать звук New Session ÐÐ¾Ð²Ð°Ñ ÑеÑÑÐ¸Ñ Published applications Удаленные Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ fullscreen ПолноÑÐºÑ€Ð°Ð½Ð½Ð°Ñ ÑеÑÑÐ¸Ñ Display ДиÑплей Maximum МакÑимальное Enabled активирован Disabled деактивирован window окно Session preferences... УÑтановки ÑеÑÑии... Create session icon on desktop... Создать Ñрлык ÑеÑÑии на рабочем Ñтоле... Delete session Удалить ÑеÑÑию Session actions Опции Select type Тип ÑеÑÑии Select resolution Выбрать разрешение Toggle sound support Звук running активна suspended прервана KDE KDE RDP connection RDP Ñоединение Connection to local desktop Соединение Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¼ деÑктопом XDMCP XDMCP SessionManageDialog E&xit &Выход &New Session &ÐÐ¾Ð²Ð°Ñ ÑеÑÑÐ¸Ñ &Session Preferences &УÑтановки ÑеÑÑии &Delete Session У&далить ÑеÑÑию Delete Delete Удалить Session Management Управление ÑеÑÑиÑми &New session &ÐÐ¾Ð²Ð°Ñ ÑеÑÑÐ¸Ñ &Session preferences &УÑтановки ÑеÑÑии &Delete session У&далить ÑеÑÑию Session management Управление ÑеÑÑиÑми &Create session icon on desktop... &Создать Ñрлык ÑеÑÑии на рабочем Ñтоле... SessionWidget Session name: Ð˜Ð¼Ñ ÑеÑÑии: << change icon << изменить значок &Server &Сервер Host: ХоÑÑ‚: Login: Пользователь: SSH port: SSH порт: Use RSA/DSA key for ssh connection: RSA/DSA ключ Ð´Ð»Ñ ssh ÑоединениÑ: Try auto login (ssh-agent or default ssh key) ÐвтоматичеÑкое Ñоединение Ñ SSH ключом по умолчанию или программой ssh-agent Kerberos 5 (GSSAPI) authentication ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Kerberos 5 (GSSAPI) Use Proxy server for SSH connection ИÑпользовать прокÑи Ñервер Ð´Ð»Ñ SSH ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Proxy server ПрокÑи Ñервер SSH SSH HTTP HTTP Same login as on X2Go Server Такое же Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº на Ñервере X2Go Same password as on X2Go Server Такой же пароль как на Ñервере X2Go RSA/DSA key: Ключ RSA/DSA: ssh-agent or default ssh key ÐвтоматичеÑкое Ñоединение Ñ SSH ключом по умолчанию или программой ssh-agent Type: Тип: Port: Порт: &Session type &Тип ÑеÑÑии Session type: Тип ÑеÑÑии: Connect to Windows terminal server Соединение Ñ Ñ‚ÐµÑ€Ð¼Ð¸Ð½Ð°Ð»ÑŒÐ½Ñ‹Ð¼ Ñервером Windows Custom desktop Другой оконный менеджер Single application Приложение Published applications Удаленные Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Command: Команда: Advanced options... Продвинутые уÑтановки... Path to executable Путь к иÑполнÑемому файлу Direct RDP Connection ПрÑмое RDP Ñоединение RDP port: RDP порт: Open picture Открыть изображение Pictures Ð˜Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Open key file Открыть файл Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼ All files Ð’Ñе файлы Server: Сервер: rdesktop command line options: Опции командной Ñтроки rdesktop: New session ÐÐ¾Ð²Ð°Ñ ÑеÑÑÐ¸Ñ Connect to local desktop Соединение Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¼ деÑктопом XDMCP server: Сервер XDMCP: XDMCP XDMCP Error Ошибка x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient запущен в "переноÑимом" режиме. ПожалуйÑта выберите путь находÑщийÑÑ Ð² пределах иÑпользуемого ноÑÐ¸Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, что бы вÑегда иметь доÑтуп к Вашим данным SettingsWidget &Display &ДиÑплей &Keyboard &Клавиатура Sound Звук RDP Client Клиент RDP Fullscreen ПолноÑкранный режим Custom Другой Window Окно Use whole display ИÑпользовать веÑÑŒ диÑплей Maximum available МакÑимально доÑтупное Set display DPI УÑтановить DPI Xinerama extension (support for two or more physical displays) Xinerama (поддержка двух и более физичеÑких диÑплеев) Width: Ширина: Height: Ð’Ñ‹Ñота: &Display: &ДиÑплей: &Identify all displays &Идентифицировать диÑплеи Keep current keyboard Settings ИÑпользовать текущие уÑтановки Keyboard layout: РаÑкладка Клавиатуры: Keyboard model: Модель клавиатуры: Enable sound support Ðктивировать звук Start sound daemon ЗапуÑкать звуковой Ñервер Use running sound daemon ИÑпользовать запущенный звуковой Ñервер Use SSH port forwarding to tunnel sound system connections through firewalls ИÑпользовать SSH туннель Ð´Ð»Ñ Ð·Ð²ÑƒÐºÐ¾Ð²Ð¾Ð¹ ÑиÑтемы Use default sound port ИÑпользовать порт по умолчанию Sound port: Порт: Client side printing support Печать на Ñтороне клиента Additional parameters: Дополнительные параметры: Command line: ÐšÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ Ñтрока: us ru pc105/us pc105/ru password пароль ShareWidget &Folders &Каталоги Path РаÑположение Automount СоединÑть автоматичеÑки Add Добавить Delete Удалить Path: РаÑположение: Use ssh port forwarding to tunnel file system connections through firewalls ИÑпользовать SSH туннель Ð´Ð»Ñ ÑкÑпорта файловой ÑиÑтемы Select folder Выбор каталога Filename encoding Кодировка имен файлов WINDOWS-1252 WINDOWS-1251 ISO8859-1 KOI8-R local: локальнаÑ: remote: удалённаÑ: Error Ошибка x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient запущен в "переноÑимом" режиме. ПожалуйÑта выберите путь находÑщийÑÑ Ð² пределах иÑпользуемого ноÑÐ¸Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, что бы вÑегда иметь доÑтуп к Вашим данным SshMasterConnection SSH proxy connection error Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ SSH прокÑи Ñервером SSH proxy connection error: Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ SSH прокÑи Ñервером: Failed to create SSH proxy tunnel Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ SSH прокÑи Ñ‚ÑƒÐ½ÐµÐ»Ñ Can not initialize libssh Can not create ssh session Can not connect to proxy server Ðевозможно приÑоединитьÑÑ Ðº прокÑи Ñерверу Can not connect to Authentication failed channel_forward_listen failed Can not open file Can not create remote file Can not write to remote file can not connect to channel_open_forward failed channel_open_session failed channel_request_exec failed error writing to socket error reading channel channel_write failed error reading tcp socket SshProcess Error creating socket Error binding XSettingsWidget Open File Открыть Файл Executable (*.exe) ИÑполнÑемый файл (*.exe) XSettingsWidgetUI Form Форма You must restart the X2Go Client for the changes to take effect ПерезапуÑтите программу, что бы Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ñтупили в Ñилу use integrated X-Server иÑпользовать вÑтроенный X-Server do not use primary clipboard use custom X-Server иÑпользовать другой X-Server custom X-Server Другой X-Сервер executable: ИÑполнÑемый файл: start X-Server on X2Go Client start запуÑкать X-Server при запуÑке X2Go Client command line options: аргументы командной Ñтроки: X-Server command line options Опции командной Ñтроки X-Server window mode: оконный режим: fullscreen mode: полноÑкранный режим: single application: приложение: sshProcess Unable to create: Ðевозможно Ñоздать: Yes Да No Ðет Unable to write: Ðевозможно запиÑать: Error Ошибка Cannot create temporary file Ðевозможно Ñоздать временный файл x2goclient-4.0.1.1/x2goclient_sv.ts0000644000000000000000000035616712214040350013766 0ustar AppDialog Published Applications Publicerade applikationer Search: Sök: &Start &Starta &Close S&täng Multimedia Ljud och video Development Programmering Education Utbildning Game Spel Graphics Grafik Network Nätverk Office Kontor Settings Inställningar System System Utility Verktyg Other Övrigt BrokerPassDialogUi Dialog Dialog Old password: Gammalt lösenord: New password: Nytt lösenord: Confirm password: Bekräfta lösenord: TextLabel TextLabel BrokerPassDlg Passwords do not match Lösenorden matchar inte CUPSPrintWidget Form Formulär Name: Namn: Properties Inställningar State: Status: Accepting jobs: Mottar jobb: Type: Typ: Location: Placering: Comment: Kommentar: Idle Vilande Printing Skriver ut Stopped Stoppad Yes Ja No Nej CUPSPrinterSettingsDialog No option selected Inget valt This value is in conflict with other option Detta värde är i konflikt med ett annat värde Options conflict Värdekonflikt ConTest Connectivity test Anslutningstest HTTPS connection: HTTPS-anslutning: SSH connection: SSH-anslutning: Connection speed: Anslutningshastighet: Failed Misslyckades 0 Kb/s 0 kB/s OK OK Socket operation timed out Couldn't find a good translation for socket Socketoperation överskred tidsgräns Failed: Misslyckades: ConfigDialog General Allmänna Display icon in system tray Visa ikon i systemfältet Hide to system tray when minimized Dölj i systemfältet när minimerad Hide to system tray when closed Dölj i systemfältet när stängd Hide to system tray after connection is established Dölj i systemfältet när anslutning har upprättats Restore from system tray after session is disconnected Ã…terställ frÃ¥n systemfältet när session kopplats frÃ¥n Use LDAP Använd LDAP Server URL: Server URL: BaseDN: Bas DN: Failover server 1 URL: Redundant server 1 URL: Failover server 2 URL: Redundant server 2 URL: X-Server settings X-server inställningar X11 application: X11-applikation: X11 version: X11-version: Find X11 application Hitta X11-applikation Clientside SSH port for file system export usage: SSH-port pÃ¥ klienten för export av filsystem: Start session embedded inside website Starta session inuti webbplats Advanced options Avancerade alternativ Defaults Standardinställningar &OK &OK &Cancel &Avbryt Settings Inställningar Printing Utskrifter Warning Varning x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2goclient kunde inte hitta nÃ¥gon X11-applikation. Installera Apple X11 eller ange sökväg till applikationen Your are using X11 (Apple X-Window Server) version Du använder X11 (Apple X-Windows Server) version . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). Denna version orsakar problem med X11-applikation i 24-bitars färgdjup. Du bör uppdatera din X11-miljö (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path Ingen X11-applikation hittades i angiven sökväg &Connection &Anslutning &Settings &Inställningar ConnectionWidget &Connection speed &Anslutningshastighet Connection speed: Anslutningshastighet: C&ompression K&omprimering Method: Metod: Compression method: Komprimeringsmetod: Image quality: Bildkvalitet: CupsPrinterSettingsDialog Dialog Dialog General Allmänt Page size: Sidstorlek: Paper type: Papperstyp: Paper source: Papperskälla: Duplex Printing Dubbelsidig utskrift None Ingen Long side LÃ¥ngsida Short side Kortsida Driver settings Drivrutinsinställningar Option Alternativ Value Värde No option selected Inget alternativ valt text text EditConnectionDialog &Session &Session &Connection &Anslutning &Settings &Inställningar &Shared folders &Delade mappar &OK &OK &Cancel &Avbryt Defaults Standardinställningar Session preferences - Sessionsinställningar - ExportDialog &Cancel &Avbryt &share &Dela &Preferences ... &Inställningar... &Custom folder ... &Anpassad mapp... Delete Delete Radera share folders Dela mappar Select folder Välj mapp HttpBrokerClient us Swedish keyboard layout se pc105/us Swedish keyboard model pc105/se Error Fel Login failed!<br>Please try again Inloggning misslyckades!<br>Var god försök igen Your session was disconnected. To get access to your running session, please return to the login page or use the "reload" function of your browser. Din session har kopplats frÃ¥n. För att Ã¥teransluta sessionen, Ã¥tergÃ¥ till inloggningssidan eller ladda om sidan i webbläsaren. Host key for server changed. It is now: Nyckel för server har ändrats. Den är nu: For security reasons, connection will be stopped Anslutningen avbryts av säkerhetsskäl The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Servern svarade inte med förväntad nyckeltyp. Det kan innebära att servern är komprometterad Could not find known host file.If you accept the host key here, the file will be automatically created Hittar ej fil för kända servrar. Om du accepterar serverns nyckel sÃ¥ kommer filen att skapas automatiskt The server is unknown. Do you trust the host key? Public key hash: Okänd server. Litar du pÃ¥ denna nyckel? Publik nyckel: Host key verification failed Verifiering av serverns nyckel misslyckades Yes Ja No Nej Enter passphrase to decrypt a key Ange lösenord för att dekryptera nyckel Authentication failed Autentisering misslyckades <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>Servern använder ett ogiltigt certifikat.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>Du bör ej lägga till ett undantag om du inte använder en betrodd uppkoppling eller om du inte brukar fÃ¥ en varning för denna server.</p> Secure connection failed Säker anslutning misslyckades Issued to: Utgivet till: Common Name(CN) Common Name(CN) Organization(O) Organization(O) Organizational Unit(OU) Organizational Unit(OU) Serial Number Serienummer Issued by: Utgivare: Validity: Giltighetstid: Issued on Utgivningsdatum expires on giltigt till Fingerprints: Fingeravtryck: SHA1 SHA1 MD5 MD5 Exit X2Go Client Avsluta X2Go-klienten Add exception Lägg till undantag ONMainWindow Starting x2goclient... Startar x2goclient... us se pc105/us pc105/se X2Go Client X2Go-klient connecting ansluter Internet browser Webbläsare Email client E-postklient OpenOffice.org OpenOffice.org Terminal Terminal Starting x2goclient in portable mode... data directory is: Startar x2goclient i portabelt läge ... datakatalog är: &Settings ... &Inställningar... Support ... Hjälp ... About X2GO client Om X2Go-klient Started x2goclient. Startade x2goclient. Can't load translator: Kan inte ladda översättare: Translator: Översättare: installed. installerad. Share folder... Dela mapp ... Suspend Vila Terminate Avsluta Reconnect Ã…teranslut Detach X2Go window Koppla lös X2Go-fönster Minimize toolbar Minimera verktygsrad Session: Session: &Quit &Avsluta Ctrl+Q Ctrl+Q Quit Avsluta &New session ... &Ny session... Ctrl+N Ctrl+N Session management... Added Alt shortcut, same letter as Ctrl shortcut (like &New session...) S&essionshantering... Ctrl+E Ctrl+E &Create session icon on desktop... S&kapa sessionsgenväg pÃ¥ Skrivbordet... &Set broker password... &Ange agentlösenord... &Connectivity test... &Testa anslutning... Show toolbar Visa verktygsrad About Qt Om Qt Ctrl+Q exit Ctrl+Q &Session &Session &Options &Alternativ &Help &Hjälp Login: Användare: Error Fel Operation failed Operation misslyckades Password changed Lösenord ändrat Wrong password! Fel lösenord! Connecting to broker Ansluter till agent <b>Authentication</b> <b>Autentisering</b> Restore Ã…terställ Not connected Ej ansluten Multimedia Ljud och video Development Programmering Education Utbildning Game Spel Graphics Grafik Network Nätverk Office Kontor Settings Inställningar System System Utility Verktyg Other Övrigt Left mouse button to hide/restore - Right mouse button to display context menu Vänster musknapp för att dölja/Ã¥terställa - Höger musknapp för att visa snabbmeny Closing x2goclient... Stänger x2goclient... Closed x2goclient. Stängt x2goclient. Please check LDAP settings Kontrollera LDAP-inställningar no X2Go server found in LDAP ingen X2Go-server hittades i LDAP Create session icon on desktop Skapa sessionsgenväg pÃ¥ Skrivbordet Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Skrivbordsgenvägar kan konfigureras att inte visa X2Go-klienten (dolt läge). Om du vill aktivera den funktionen mÃ¥ste du använda inloggning med GPG-nyckel, GPG-smartkort eller SSH-nyckel. Använd dolt läge? New Session Ny session X2Go Link to session Länk till X2Go-session No X2Go sessions found, closing. Inga X2Go-sessioner hittades, stänger. X2Go sessions not found X2Go-sessioner hittades inte Are you sure you want to delete this session? Är du säker pÃ¥ att du vill radera denna session? KDE KDE RDP connection RDP-anslutning XDMCP XDMCP Connection to local desktop Anslutning till lokalt Skrivbord on pÃ¥ Starting connection to server: Startar anslutning till server: to till Connection Error( Anslutningsfel( Couldn't find a SSH connection. Kunde inte hitta en SSH-anslutning. Enter passphrase to decrypt a key Ange lösenord för att dekryptera nyckel Host key for server changed. It is now: Nyckel för server har ändrats. Den är nu: For security reasons, connection will be stopped Anslutningen avbryts av säkerhetsskäl The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Servern svarade inte med förväntad nyckeltyp. Det kan innebära att servern är komprometterad Could not find known host file.If you accept the host key here, the file will be automatically created Hittar ej fil för kända servrar. Om du accepterar serverns nyckel sÃ¥ kommer filen att skapas automatiskt The server is unknown. Do you trust the host key? Public key hash: Okänd server. Litar du pÃ¥ denna nyckel? Publik nyckel: Host key verification failed Verifiering av serverns nyckel misslyckades Yes Ja No Nej Authentication failed: Autentisering misslyckades: Authentication failed Autentisering misslyckades Enter password for SSH proxy Ange lösenord för SSH-proxy <b>Connection failed</b> <b>Anslutning misslyckades</b> <b>Wrong password!</b><br><br> <b>Fel lösenord!</b><br><br> Connection failed: Anslutning misslyckades: - Wrong password. - Fel lösenord. unknown okänt No server availabel Ingen server tillgänglig Server not availabel Server ej tillgänglig Select session: Välj session: running aktiv suspended vilande Desktop Skrivbord single application Applikation shadow session Skuggsession Information Information No accessible desktop found Inget tillgängligt Skrivbord hittades Filter Filter Select desktop: Välj Skrivbord: Warning Varning Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to Ditt nuvarande färgdjup matchar inte X2Go-sessionens färgdjup. Det kan orsaka problem vid Ã¥teranslutning av sessionen och i de flesta fall <b>förlorar du sessionen</b> och mÃ¥ste starta en ny! Det är starkt rekommenderat att du ändrar färdgjup till 24 or 32 24 eller 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? bitar och startar om X-servern innan du Ã¥teransluter till denna X2Go-session.<br>Ã…teranslut session ändÃ¥? suspending försätter i vila terminating avslutar <b>Wrong Password!</b><br><br> <b>Fel lösenord!</b><br><br> New session started Ny session startad Session resumed Session Ã¥terupptagen Unable to create folder: Kunde ej skapa katalog: Unable to write file: Kunde ej skriva till fil: Emergency exit. Akut avslut. Waiting for proxy to exit. Väntar pÃ¥ att proxy ska avslutas. Failed, killing the proxy. Misslyckades, dödar proxy. Wrong parameter: Felaktig parameter: Unable to create folder: Kunde inte skapa mapp: Unable to write file: Kunde ej skriva till fil: Attach X2Go window Koppla X2Go-fönster Unable to create SSL tunnel: Kunde ej skapa SSL-tunnel: Unable to create SSL Tunnel: Kunde ej skapa SSL-tunnel: Finished avslutad starting startar resuming Ã¥teransluter Connection timeout, aborting Anslutning passerade tidsgränsen, avbryter aborting avbryter Are you sure you want to terminate this session? Unsaved documents will be lost Är du säker pÃ¥ att du vill avsluta sessionen? Data som ej sparats kommer att förloras Session Session Display Display Creation time Skapad <b>Connection failed</b> : <b>Anslutning misslyckades</b> : (can't open file) (kan inte öppna fil) (file not exists) (filen finns inte) (directory not exists) (mapp finns inte) wrong value for argument"--link" fel värde för "--link" wrong value for argument"--sound" fel värde för "--sound" wrong value for argument"--geometry" fel värde för "--geometry" wrong value for argument"--set-kbd" fel värde för "--set-kbd" wrong value for argument"--ldap" fel värde för "--ldap" wrong value for argument"--ldap1" fel värde för "--ldap1" wrong value for argument"--ldap2" fel värde för "--ldap2" wrong value for argument"--pack" fel värde för "--pack" wrong parameter: felaktig parameter: Options Alternativ Available pack methodes: Tillgängliga kompressionsmetoder: RSA file empty. RSA-fil tom. Can not open key: Kan inte öppna nyckel: Support Hjälp </b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (&copy; 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <br>Klient för X2Go. Denna klient kan ansluta till X2Go-servrar och starta/stoppa/Ã¥teransluta/avsluta (aktiva) sessioner. X2Go-klienten kan spara anslutningsinställningar samt använda LDAP för autentisering. Klienten kan även användas som inloggningsskärm (ersättning för exempelvis xdm). Besök <a href="http://www.x2go.org">www.x2go.org</a> för vidare information. <b>X2Go Client V. <b>X2Go-klient V. Please check LDAP Settings Kontrollera LDAP-inställningar No valid card found Inget giltigt kort hittades Card not configured. Kort ej konfigurerat. This card is unknown by X2Go system Kortet är okänt Unable to create file: Kunde ej skapa filen: Can't start X server Please check your settings Kan ej starta X-server Kontrollera dina inställningar Can't connect to X-Server Kan ej ansluta till X-server Can't connect to X server Please check your settings Can't connect to X-Server Please check your settings Kan ej ansluta till X-server Kontrollera dina inställningar Can't start X Server Please check your settings Kan ej starta X-server Kontrollera dina inställningar Can't start X Server Please check your installation Kan ej starta X-server Kontrollera installation Unable to execute: Kunde ej exekvera: Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package Servern stöder ej filsystemsexport via SSH-tunnel Uppdatera till en nyare version av x2goserver Unable to read : Kunde ej läsa : Unable to write : Kunde ej skriva till : WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 Error getting window geometry (window closed)? Ett fel uppstod när fönstergeometri hämtades (fönster stängt)? X2Go Session X2Go-session wrong value for argument"speed" fel värde för "speed" Password: Lösenord: Keyboard layout: Swenglish, but commonly used. Tangentbordslayout: Ok OK Cancel Avbryt <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>Sessions-ID:<br>Server:<br>Användare:<br>Display:<br>Skapad:<br>Status:</b> Applications... Applikationer... Abort Avbryt Show details Visa detaljer Resume Ã…teranslut New Ny Full access Fullständig Ã¥tkomst View only Endast visa Status Status Command Kommando Type Typ Server Server Client IP Klient-IP Session ID Sessions-ID User Användare Only my desktops Bara mina Skrivbord sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> sshd ej startad, du behöver sshd för utskrifter och fildelning du kan installera sshd med (Debian/Ubuntu) <b>sudo apt-get install openssh-server</b> Restore toolbar Ã…terställ verktygsrad <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <br><b>&nbsp;&nbsp;&nbsp;Klicka denna knapp&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;för att Ã¥terställa verktygsrad&nbsp;&nbsp;&nbsp;</b><br> Invalid reply from broker Ogiltigt svar frÃ¥n agent PrintDialog Print - X2Go Client Utskrift - X2Go-klient Print Utskrift You've deactivated the x2go client printing dialog. Du har inaktiverat utskriftsdialogen i X2Go. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) Du kan Ã¥teraktivera denna dialog via X2Go-klientens inställningar (Meny -> Alternativ -> Inställningar) PrintProcess Save File Spara fil PDF Document (*.pdf) PDF-dokument (*.pdf) Failed to execute command: Kunde ej exekverka kommando: Printing error Utskriftsfel PrintWidget Form Formulär Print Skriv ut View as PDF Visa som PDF Print settings Utskriftsinställningar Printer: Skrivare: Print using default Windows PDF Viewer (Viewer application needs to be installed) Skriv ut via Windows standard PDF-visare (PDF-visare mÃ¥ste installeras) Printer command: Utskriftskommando: ... ... Viewer settings Inställningar för visning Open in viewer application Öppna i applikation Command: Kommando: Save to disk Spara till disk Show this dialog before start printing Visa denna dialog innan utskrift Please configure your client side printing settings.<br><br>If you want to print the created file, you'll need an external application. Typically you can use <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> and <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>You can find further information <a href="http://www.x2go.org/index.php?id=49">here</a>. Konfigurera utskriftsinställningar för klienten.<br><br>Om du vill skriva ut den skapade filen sÃ¥ behöver du en extern applikation. Du kan oftast använda <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> och <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>Mer information finns <a href="http://www.x2go.org/index.php?id=49">här</a>. PrinterCmdDialog Printer command Utskriftskommando Command Kommando Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Ange anpassat utskriftskommando, exempel: kprinter lpr -P hp_laserjet Output format Utskriftsformat Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Välj filformat för utskrift (om du använder CUPS sÃ¥ kan du använda PDF) PDF PDF PS PS Data structure Datastruktur Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): Välj metod för utskrift av fil (vissa kommandon har egna parametrar för utskrift, andra väntar pÃ¥ indata): standard input (STDIN) Indata (STDIN) Specify path as program parameter Ange sökväg som programparameter Please enter your customized or individual printing command. Example: Ange anpassat utskriftskommando, exempel: <Path to gsprint.exe> -query -color <Sökväg till gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? Inget svar frÃ¥n fjärrserver. Vill du avsluta den aktuella sessionen? SessionButton Session preferences... Sessionsinställningar... Create session icon on desktop... Skapa sessionsgenväg pÃ¥ Skrivbordet... Delete session Radera session Session actions Sessionshantering Select type Välj typ Select resolution Välj upplösning Toggle sound support Växla ljudstöd New Session Ny session running aktiv suspended vilande KDE KDE RDP connection RDP-anslutning XDMCP XDMCP Connection to local desktop Anslutning till lokalt Skrivbord Published applications Publicerade applikationer fullscreen Fullskärm Display Display window fönster Maximum Maximerad Enabled PÃ¥ Disabled Av SessionManageDialog E&xit &Avbryt &New session &Ny session &Session preferences There are "..." on every other button so why not here ... &Sessionsinställningar... &Delete session &Radera session &Create session icon on desktop... S&kapa sessionsgenväg pÃ¥ Skrivbordet... Delete Delete Radera Session management Sessionshantering SessionWidget Session name: Sessionsnamn: << change icon << klicka för att ändra ikon &Server &Server Host: Servernamn: Login: Användare: SSH port: SSH-port: Use RSA/DSA key for ssh connection: Använd denna RSA-/DSA-nyckel för SSH-anslutning: Try auto login (ssh-agent or default ssh key) Prova automatisk inloggning (ssh-agent eller standard SSH-nyckel) Kerberos 5 (GSSAPI) authentication Kerberos 5 (GSSAPI)-autentisering Use Proxy server for SSH connection Använd proxyserver för SSH-anslutning Proxy server Proxyserver SSH SSH HTTP HTTP Same login as on X2Go Server Samma inloggning som för X2Go Server Same password as on X2Go Server Samma lösenord som för X2Go Server RSA/DSA key: RSA-/DSA-nyckel: ssh-agent or default ssh key ssh-agent eller standard SSH-nyckel Type: Typ: Port: Port: &Session type &Sessionstyp Session type: Sessionstyp: Connect to Windows terminal server Anslut till Windows Terminal Server (RDP) XDMCP XDMCP Connect to local desktop Anslut till lokalt Skrivbord Custom desktop Anpassat Skrivbord Single application Applikation Published applications Publicerade applikationer Command: Kommando: Advanced options... Avancerade alternativ... Path to executable Sökväg till exekverbar fil Direct RDP Connection Direktanslutning via RDP RDP port: RDP-port: Open picture Öppna bild Pictures Bilder Open key file Öppna nyckelfil All files Alla filer Error Fel x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are X2Go-klienten körs i portabelt läge. Du bör använda en sökväg till en USB-enhet för att möjliggöra flyttbara inställningar Server: Server: XDMCP server: XDMCP-server: rdesktop command line options: rdesktop kommandoradsalternativ: New session Ny session SettingsWidget &Display &Skärm &Keyboard &Tangentbord Sound Ljud RDP Client RDP-klient Fullscreen Fullskärm Custom Anpassad Window Fönster Use whole display Använd hela skärmen Maximum available Maximerad Set display DPI Ange skärmupplösning (DPI) Xinerama extension (support for two or more physical displays) Xinerama (stöd för tvÃ¥ eller fler skärmar) Width: Bredd: Height: Höjd: &Display: &Skärm: &Identify all displays &Identifiera alla skärmar Keep current keyboard Settings BehÃ¥ll aktuella tangentbordsinställningar Keyboard layout: Tangentbordslayout: Keyboard model: Tangentbordsmodell: Enable sound support Aktivera ljudstöd Start sound daemon Starta ljudserver Use running sound daemon Använd aktiv ljudserver Use SSH port forwarding to tunnel sound system connections through firewalls Couldn't find a good translation for port forwarding. Använd SSH port forwarding för att tunnla ljudström genom brandväggar Use default sound port Använd standardport för ljud Sound port: Ljudport: Client side printing support Stöd för utskrifter via klienten Additional parameters: Extra parametrar: Command line: Kommandorad: us se pc105/us pc105/se password lösenord ShareWidget &Folders &Mappar Path Sökväg Automount Montera automatiskt Add Lägg till Delete Radera Path: Sökväg: Filename encoding Kodtabell för filnamn local: lokal: remote: fjärr: Use ssh port forwarding to tunnel file system connections through firewalls Använd SSH port forwarding för att tunnla filsystemsanslutningar genom brandväggar Select folder Välj mapp Error Fel x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are X2Go-klienten körs i portabelt läge. Du bör använda en sökväg till en USB-enhet för att möjliggöra flyttbara inställningar WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 SshMasterConnection SSH proxy connection error Anslutningsfel SSH-proxy SSH proxy connection error: Anslutningsfel SSH-proxy: Failed to create SSH proxy tunnel Kunde ej skapa SSH-proxytunnel Can not initialize libssh Kan ej initialisera libssh Can not create ssh session Kan ej skapa SSH-session Can not connect to proxy server Kan ej ansluta till proxyserver Can not connect to Kan inte ansluta till Authentication failed Autentisering misslyckades channel_forward_listen failed channel_forward_listen misslyckades Can not open file Kan inte öppna fil Can not create remote file Kan inte skapa fjärrfil Can not write to remote file Kan inte skriva till fjärrfil can not connect to kan inte ansluta till channel_open_forward failed channel_open_forward misslyckades channel_open_session failed channel_open_session misslyckades channel_request_exec failed channel_request_exec misslyckades error writing to socket ett fel uppstod vid skrivning till socket error reading channel ett fel uppstod när kanal skulle läsas channel_write failed channel_write misslyckades error reading tcp socket ett fel uppstod när tcp socket skulle läsas SshProcess Error creating socket Ett fel uppstod när socket skulle skapas Error binding Ett fel uppstod vid anslutning till socket XSettingsWidget Open File Öppna fil Executable (*.exe) Exekverbar (*.exe) XSettingsWidgetUI Form Formulär You must restart the X2Go Client for the changes to take effect Du mÃ¥ste starta om X2Go-klienten för att ändringar ska aktiveras use integrated X-Server Använd integrerad X-server do not use primary clipboard Använd inte primär urklippsbuffert use custom X-Server Använd anpassad X-server custom X-Server Anpassad X-server executable: Binär: start X-Server on X2Go Client start Starta X-server när X2Go-klienten startas command line options: Kommandoradsalternativ: X-Server command line options Kommandoradsalternativ för X-server window mode: Fönsterläge: fullscreen mode: Fullskärmsläge: single application: Applikation: x2goclient-4.0.1.1/x2goclient_zh_tw.ts0000644000000000000000000035402212214040350014455 0ustar AppDialog Published Applications Search: &Start &Close Multimedia Development Education Game Graphics Network Office Settings 設定 System Utility Other BrokerPassDialogUi Dialog å°è©±æ¡† Old password: 舊密碼: New password: 新密碼: Confirm password: è«‹å†è¼¸å…¥ä¸€é新密碼: TextLabel BrokerPassDlg Passwords do not match 密碼ä¸ç›¸ç¬¦ CUPSPrintWidget Form 表單 Name: å§“å: Properties 屬性 State: 狀態: Accepting jobs: 接收的工作: Type: 類別: Location: ä½ç½®: Comment: 註解: Idle é–’ç½® Printing æ­£åœ¨åˆ—å° Stopped å·²åœæ­¢ Yes 是 No å¦ CUPSPrinterSettingsDialog No option selected 尚未é¸å–任何é¸é … This value is in conflict with other option 此設定值與其它é¸é …è¡çª Options conflict é¸é …è¡çª ConTest Connectivity test é€£ç·šæ¸¬å¼ HTTPS connection: 加密HTTP連線: SSH connection: SSH連線: Connection speed: 連線速度: Failed 失敗 0 Kb/s 0 Kb/s OK 確定 Socket operation timed out 網路æ“作逾時 Failed: 失敗: ConfigDialog General 一般設定 Display icon in system tray 在系統狀態列中顯示圖示 Hide to system tray when minimized 最å°åŒ–時縮至系統狀態列 Hide to system tray when closed 關閉時隱è—至系統狀態列 Hide to system tray after connection is established 連線建立後隱è—至系統狀態列 Restore from system tray after session is disconnected 當工作階段斷線後從系統狀態列中還原 Use LDAP 使用LDAP Server URL: 伺æœå™¨ç¶²å€: BaseDN: Failover server 1 URL: å‚™æ´ä¼ºæœå™¨ç¶²1 ç¶²å€: Failover server 2 URL: å‚™æ´ä¼ºæœå™¨ç¶²2 ç¶²å€: X-Server settings X伺æœå™¨è¨­å®š X11 application: X11應用程å¼: X11 version: X11版本: Find X11 application 尋找X11æ‡‰ç”¨ç¨‹å¼ Clientside SSH port for file system export usage: 檔案系統匯出時用戶端所使用的SSH連接埠: Start session embedded inside website 將工作階段嵌入至網站內 Advanced options 進階é¸é … Defaults é è¨­ &OK 確定(&O) &Cancel å–æ¶ˆ(&C) Settings 設定 Printing 列å°åŠŸèƒ½ Warning 警告 x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application X2Go用戶端無法找到åˆé©çš„X11應用程å¼ï¼Œè«‹å®‰è£Apple X11æˆ–æ˜¯é¸æ“‡æ‡‰ç”¨ç¨‹å¼çš„路徑 Your are using X11 (Apple X-Window Server) version 您正在使用X11(Apple X-Window 伺æœå™¨) 版本 . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). . 此版本在24ä½å…ƒè‰²å½©æ¨¡å¼æ™‚會有å•題,請å‡ç´šæ‚¨çš„X11環境 (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path åœ¨æ‚¨é¸æ“‡çš„路徑中沒有åˆé©çš„X11æ‡‰ç”¨ç¨‹å¼ &Connection 連線(&C) &Settings 設定(&S) ConnectionWidget &Connection speed 連線速度(&C) Connection speed: 連線速度: C&ompression 壓縮(&o) Method: æ–¹å¼: Compression method: 壓縮方å¼: Image quality: å½±åƒå“質: CupsPrinterSettingsDialog Dialog å°è©±æ¡† General 一般設定 Page size: é é¢å°ºå¯¸: Paper type: 紙張類型: Paper source: 紙張來æº: Duplex Printing é›™é¢åˆ—å° None ç„¡ Long side 長邊翻轉 Short side 短邊翻轉 Driver settings 驅動程å¼è¨­å®š Option é¸é … Value 數值 No option selected ç›®å‰æ²’有é¸å–任何é¸é … text 文字 EditConnectionDialog &Session 工作階段(&S) &Connection 連線(&C) &Settings 設定(&S) &Shared folders 共享資料夾(&S) &OK 確定(&O) &Cancel å–æ¶ˆ(&C) Defaults é è¨­å€¼ Session preferences - 工作階段å好設定 - ExportDialog &Cancel å–æ¶ˆ(&C) &share 分享(&s) &Preferences ... å好設定(&P) ... &Custom folder ... 自訂資料夾(&C) ... Delete Delete 刪除 share folders 共享資料夾 Select folder 鏿“‡è³‡æ–™å¤¾ HttpBrokerClient us us pc105/us pc105/us Error 錯誤 Login failed!<br>Please try again 登入失敗! <br>è«‹å†è©¦ä¸€æ¬¡ Your session was disconnected. To get access to your running session, please return to the login page or use the "reload" function of your browser. æ‚¨çš„å·¥ä½œéšŽæ®µå·²ä¸­æ–·é€£ç·šã€‚è«‹è¿”å›žç™»å…¥ç•«é¢æˆ–是在ç€è¦½å™¨ä¸­é‡æ–°è¼‰å…¥é é¢ä»¥é‡æ–°é€£å›žä¹‹å‰çš„工作階段。 Host key for server changed. It is now: 主機的SSH密鑰已經更æ›ã€‚ ç¾åœ¨çš„密鑰為: For security reasons, connection will be stopped 由於安全性的考é‡ï¼Œç›®å‰çš„連線已被中止 The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist ç›®å‰æ²’有找到伺æœå™¨ä¸Šçš„主機密鑰,ä¸éŽæœ‰å…¶å®ƒé¡žåž‹çš„密鑰存在。惡æ„的攻擊者å¯èƒ½æœƒåˆ©ç”¨æ”¹è®Šé è¨­çš„伺æœå™¨å¯†é‘°ä¾†è®“您的用戶端èªç‚ºåŽŸæœ¬çš„å¯†é‘°ä¸¦ä¸å­˜åœ¨ Could not find known host file.If you accept the host key here, the file will be automatically created ç›®å‰æ²’有發ç¾å·²çŸ¥çš„主機檔案。如果您接å—ç›®å‰çš„主機密鑰,這個檔案將會自動被建立。 The server is unknown. Do you trust the host key? Public key hash: 此為未知的伺æœå™¨ï¼Œæ‚¨è¦é¸æ“‡ä¿¡ä»»æ­¤ä¸»æ©Ÿå¯†é‘°å—Ž? 此公開密鑰的雜湊值為: Host key verification failed 主機密鑰驗證任失敗 Yes 是 No å¦ Enter passphrase to decrypt a key Authentication failed <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>伺æœä½¿å™¨ä½¿ç”¨äº†ä¸åˆæ³•的安全憑證</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> Secure connection failed Issued to: Common Name(CN) Organization(O) Organizational Unit(OU) Serial Number Issued by: Validity: Issued on expires on Fingerprints: SHA1 MD5 Exit X2Go Client Add exception ONMainWindow Starting x2goclient... us us pc105/us pc105/us X2Go Client X2Go用戶端 connecting 正在連線 Internet browser ç¶²é ç€è¦½å™¨ Email client é›»å­éƒµä»¶è»Ÿé«” OpenOffice.org Terminal 終端機 Starting x2goclient in portable mode... data directory is: &Settings ... 設定(&S) ... Support ... æ”¯æ´ ... About X2GO client 關於X2GO用戶端 Started x2goclient. Can't load translator: Translator: installed. Share folder... 共享資料夾... Suspend æš«åœ Terminate 終止 Reconnect 釿–°é€£ç·š Detach X2Go window 脫離X2Go視窗 Minimize toolbar 將工具列最å°åŒ– Session: 工作階段: &Quit 離開(&Q) Ctrl+Q Quit 離開 &New session ... 新增工作階段(&N) ... Ctrl+N Session management... 工作階段管ç†å“¡... Ctrl+E &Create session icon on desktop... 在桌é¢ä¸Šå»ºç«‹å·¥ä½œéšŽæ®µåœ–示(&C)... &Set broker password... 設定代ç†ä¼ºæœå™¨å¯†ç¢¼(&S)... &Connectivity test... 連線能力測試(&C)... Show toolbar 顯示工具列 About Qt 關於Qt Ctrl+Q exit &Session 工作階段(&S) &Options é¸é …(&O) &Help 幫助(&H) Login: 登入: Error 錯誤 Operation failed 更改密碼失敗 Password changed 密碼已更改æˆåŠŸ Wrong password! 輸入了錯誤的密碼! Connecting to broker 連線至連線代ç†ä¼ºæœå™¨ <b>Authentication</b> <b>身份驗證</b> Restore 還原 Not connected 尚未連線 Multimedia Development Education Game Graphics Network Office Settings 設定 System Utility Other Left mouse button to hide/restore - Right mouse button to display context menu 按滑鼠左éµä»¥éš±è—或還原視窗, å³éµé¡¯ç¤ºé¸å–® Closing x2goclient... Closed x2goclient. Please check LDAP settings 請確èªLDAP的設定 no X2Go server found in LDAP 在LDAP環境中沒有找到X2Go伺æœå™¨ Create session icon on desktop 在桌é¢ä¸Šå»ºç«‹å·¥ä½œéšŽæ®µåœ–示 Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? 桌é¢åœ–示å¯ä»¥è¢«è¨­å®šç‚ºä¸é¡¯ç¤ºX2Go用戶端的模å¼(éš±è—æ¨¡å¼)。如果您想è¦ä½¿ç”¨éš±è—模å¼ï¼Œæ‚¨å¿…需è¦å°‡ç™»å…¥æ–¹å¼è¨­å®šæˆä½¿ç”¨GPG金匙或是GPG IC智慧å¡ã€‚ 是å¦è¦ä½¿ç”¨X2Goç”¨æˆ¶ç«¯çš„éš±è—æ¨¡å¼? New Session 新的工作階段 X2Go Link to session X2Goå·¥ä½œéšŽæ®µçš„é€£çµ No X2Go sessions found, closing. X2Go sessions not found 無法找到X2Go的工作 Are you sure you want to delete this session? 您確定è¦åˆªé™¤æ­¤å·¥ä½œéšŽæ®µå—Ž? KDE RDP connection RDP連線 XDMCP Connection to local desktop é€£ç·šè‡³æœ¬åœ°æ¡Œé¢ on æ–¼ Starting connection to server: to Connection Error( Couldn't find a SSH connection. Enter passphrase to decrypt a key Host key for server changed. It is now: 主機的SSH密鑰已經更æ›ã€‚ ç¾åœ¨çš„密鑰為: For security reasons, connection will be stopped 由於安全性的考é‡ï¼Œç›®å‰çš„連線已被中止 The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist ç›®å‰æ²’有找到伺æœå™¨ä¸Šçš„主機密鑰,ä¸éŽæœ‰å…¶å®ƒé¡žåž‹çš„密鑰存在。惡æ„的攻擊者å¯èƒ½æœƒåˆ©ç”¨æ”¹è®Šé è¨­çš„伺æœå™¨å¯†é‘°ä¾†è®“您的用戶端èªç‚ºåŽŸæœ¬çš„å¯†é‘°ä¸¦ä¸å­˜åœ¨ Could not find known host file.If you accept the host key here, the file will be automatically created ç›®å‰æ²’有發ç¾å·²çŸ¥çš„主機檔案。如果您接å—ç›®å‰çš„主機密鑰,這個檔案將會自動被建立。 The server is unknown. Do you trust the host key? Public key hash: 此為未知的伺æœå™¨ï¼Œæ‚¨è¦é¸æ“‡ä¿¡ä»»æ­¤ä¸»æ©Ÿå¯†é‘°å—Ž? 此公開密鑰的雜湊值為: Host key verification failed 主機密鑰驗證任失敗 Yes 是 No å¦ Authentication failed: Authentication failed èªè­‰å¤±æ•— Enter password for SSH proxy <b>Connection failed</b> <b>連線失敗</b> <b>Wrong password!</b><br><br> <b>䏿­£ç¢ºçš„密碼!</b><br><br> Connection failed: - Wrong password. unknown 未知 No server availabel 伺æœå™¨ä¸å­˜åœ¨l Server not availabel 伺æœå™¨ä¸å­˜åœ¨| Select session: è«‹é¸æ“‡å·¥ä½œéšŽæ®µ: running 正在執行中 suspended å·²æš«åœ Desktop æ¡Œé¢ single application å–®ä¸€çš„æ‡‰ç”¨ç¨‹å¼ shadow session Information 資訊 No accessible desktop found ç›®å‰æ²’有找到å¯è¨ªå•çš„å·¥ä½œæ¡Œé¢ Filter 篩é¸å™¨ Select desktop: è«‹é¸æ“‡å·¥ä½œæ¡Œé¢: Warning 警告 Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to 您目å‰ä½¿ç”¨èˆ‡x2go工作階段ä¸åŒçš„色彩設定。å¯èƒ½æœƒé€ æˆé€£ç·šçš„ä¸ç©©å®šï¼Œä¸¦ä¸”很å¯èƒ½æœƒå–ªå¤±ç›®å‰çš„工作階段。強烈建議先將目å‰ä½¿ç”¨çš„色彩設定設為 24 or 32 24或32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? ä½å…ƒä¸¦ä¸”釿–°å•Ÿå‹•X-server,之後å†é‡æ–°é€£æŽ¥é€™ä¸€å€‹å·¥ä½œéšŽæ®µã€‚<br>è«‹å•æ‚¨ç„¡è«–å¦‚ä½•éƒ½è¦æ¢å¾©æ­¤å·¥ä½œéšŽæ®µçš„連線嗎? suspending 正在暫åœå·¥ä½œä¸­ terminating 正在中止工作中 <b>Wrong Password!</b><br><br> <b>䏿­£ç¢ºçš„密碼!</b><br><br> New session started Session resumed Unable to create folder: Unable to write file: Emergency exit. Waiting for proxy to exit. Failed, killing the proxy. Wrong parameter: Unable to create folder: 無法創建資料夾: Unable to write file: 檔案無法寫入: Attach X2Go window 連接X2Go視窗 Unable to create SSL tunnel: 無法建立SSL通é“: Unable to create SSL Tunnel: 無法建立SSL通é“: Finished å·²å®Œæˆ starting 正在開始 resuming 正在還原 Connection timeout, aborting 連線超時,中止中 aborting 中止中 Are you sure you want to terminate this session? Unsaved documents will be lost 您確定è¦çµ‚止目å‰çš„工作階段嗎? 所有未存檔的資料都將會éºå¤± Session 工作階段 Display 顯示 Creation time 創建時間 <b>Connection failed</b> : <b>連線失敗</b> : (can't open file) (無法開啟檔案) (file not exists) (檔案ä¸å­˜åœ¨) (directory not exists) (目錄ä¸å­˜åœ¨) wrong value for argument"--link" "--link"åƒæ•¸çš„值錯誤 wrong value for argument"--sound" "--sound"åƒæ•¸çš„值錯誤 wrong value for argument"--geometry" "--geometry"åƒæ•¸çš„值錯誤 wrong value for argument"--set-kbd" "--set-kbd"åƒæ•¸çš„值錯誤 wrong value for argument"--ldap" "--ldap"åƒæ•¸çš„值錯誤 wrong value for argument"--ldap1" "--ldap1"åƒæ•¸çš„值錯誤 wrong value for argument"--ldap2" "--ldap2"åƒæ•¸çš„值錯誤 wrong value for argument"--pack" "--pack"åƒæ•¸çš„值錯誤 wrong parameter: éŒ¯èª¤çš„åƒæ•¸: Options é¸é … Available pack methodes: å¯ç”¨çš„åŒ…è£æ–¹æ³•: RSA file empty. Can not open key: Support æ”¯æ´ </b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>x2goplugin mode是由 <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a>æä¾›è´ŠåŠ©<br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <b>X2Go Client V. <b>X2Go 客戶端 V. Please check LDAP Settings 請檢查LDAP的設定 No valid card found 沒有發ç¾åˆæ³•çš„å¡ç‰‡ Card not configured. This card is unknown by X2Go system X2Go系統無法辨識此張å¡ç‰‡ Unable to create file: 檔案無法創建: Can't start X server Please check your settings Can't connect to X-Server 無法連接至X伺æœå™¨ Can't connect to X server Please check your settings Can't connect to X-Server Please check your settings 無法連接至X伺æœå™¨ 請檢查您的設定值 Can't start X Server Please check your settings 無法啟動X伺æœå™¨ 請檢查您的設定值 Can't start X Server Please check your installation 無法啟動X伺æœå™¨ 請檢查X伺æœå™¨å®‰æ˜¯å¦æœ‰å®‰è£æ­£ç¢º Unable to execute: 無法執行: Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package é ç«¯ä¼ºæœå™¨ç„¡æ³•支æ´SSH通é“åž‹å¼çš„共用檔案系統,請å‡ç´šè‡³è¼ƒæ–°çš„X2Go伺æœå™¨æ¿æœ¬ Unable to read : 無法讀å–: Unable to write : 無法寫入: WINDOWS-1252 ISO8859-1 Error getting window geometry (window closed)? X2Go Session X2Go工作階段 wrong value for argument"speed" 錯誤的"speed"åƒæ•¸å€¼ Password: 密碼: Keyboard layout: 鑑盤佈局: Ok 確定 Cancel å–æ¶ˆ <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>工作階段識別碼:<br>伺æœå™¨:<br>使用者å稱:<br>顯示:<br>創建時間:<br>狀態:</b> Applications... Abort 退出 Show details 顯示細節 Resume æ¢å¾© New 新增 Full access å®Œå…¨å­˜å– View only 僅查看 Status 狀態 Command 指令 Type 型態 Server 伺æœå™¨ Client IP 客戶端IP Session ID 工作階段識別碼 User 使用者 Only my desktops åªé¸æ“‡æˆ‘çš„æ¡Œé¢ sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> SSH伺æœå™¨æ²’有執行起來,é ç«¯åˆ—å°èˆ‡æª”案共享功能需è¦å…ˆå®‰è£SSH伺æœå™¨ 您å¯ä»¥ä½¿ç”¨ä¸‹åˆ—指令來安è£SSH伺æœå™¨: <b>sudo apt-get install openssh-server</b> Restore toolbar 還原工具列 <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <br><b>&nbsp;&nbsp;&nbsp;按此按鈕&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;還原工具列&nbsp;&nbsp;&nbsp;</b><br> Invalid reply from broker 代ç†ä¼ºæœå™¨çš„回應ä¸åˆæ³• PrintDialog Print - X2Go Client åˆ—å° - X2Go用戶端 Print åˆ—å° You've deactivated the x2go client printing dialog. 您已經åœç”¨X2Go用戶端的列å°å°è©±æ¡† You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) 您å¯èƒ½éœ€è¦æ–¼X2Go用戶端的設定å°è©±æ¡†ä¸­(é¸å–® -> é¸é … -> 設定)釿–°å•Ÿç”¨é€™å€‹å°è©±æ¡† PrintProcess Save File 儲存檔案 PDF Document (*.pdf) PDF文件 (*.pdf) Failed to execute command: 執行命令失敗: Printing error 列å°éŒ¯èª¤ PrintWidget Form 表單 Print åˆ—å° View as PDF 以PDFæ ¼å¼æŸ¥çœ‹ Print settings 列å°è¨­å®š Printer: å°è¡¨æ©Ÿ: Print using default Windows PDF Viewer (Viewer application needs to be installed) 以é è¨­çš„Windows PDF閱讀器列å°(必需è¦å®‰è£é–±è®€å™¨) Printer command: å°è¡¨æ©ŸæŒ‡ä»¤: ... Viewer settings 閱讀器設定 Open in viewer application 在閱讀器程å¼è£¡é–‹å•Ÿ Command: 指令: Save to disk 儲存到ç£ç¢Ÿè£¡ Show this dialog before start printing 開始列å°å‰å…ˆé¡¯ç¤ºæ­¤å°è©±æ¡† Please configure your client side printing settings.<br><br>If you want to print the created file, you'll need an external application. Typically you can use <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> and <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>You can find further information <a href="http://www.x2go.org/index.php?id=49">here</a>. 請設定您的客戶端列å°è¨­å®š<br><br>您會需è¦ä¸€å€‹å¤–部的程å¼ä¾†é€²è¡Œåˆ—å°å·¥ä½œï¼Œæ‚¨å¯ä»¥ä½¿ç”¨ <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> ä»¥åŠ <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>如需進一步的資訊,請åƒè€ƒ <a href="http://www.x2go.org/index.php?id=49">這個網å€</a>. PrinterCmdDialog Printer command å°è¡¨æ©ŸæŒ‡ä»¤ Command 指令 Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet è«‹è¼¸å…¥æ‚¨è‡ªå®šçš„åˆ—å°æŒ‡ä»¤ã€‚ 例如: kprinter lpr -P hp_laserjet Output format è¼¸å‡ºæ ¼å¼ Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) è«‹é¸æ“‡æ‚¨è¦è¼¸å‡ºçš„æª”æ¡ˆæ ¼å¼ (如果您是使用CUPSåˆ—å°æœå‹™ï¼Œæ‚¨å¯èƒ½æ˜¯ä½¿ç”¨PDF) PDF PS Data structure æ•¸æ“šçµæ§‹ Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): è«‹é¸æ“‡åˆ—å°è³‡æ–™çš„輸入方å¼: standard input (STDIN) 標準輸入 (STDIN) Specify path as program parameter 指定一個路徑åšç‚ºç¨‹å¼çš„åƒæ•¸ Please enter your customized or individual printing command. Example: è«‹è¼¸å…¥æ‚¨è‡ªå®šçš„åˆ—å°æŒ‡ä»¤ 範例: <Path to gsprint.exe> -query -color <Path to gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? SessionButton Session preferences... 工作階段å好設定... Create session icon on desktop... 在桌é¢ä¸Šå»ºç«‹å·¥ä½œéšŽæ®µåœ–示 Delete session 刪除工作階段 Session actions 工作階段動作 Select type 鏿“‡é¡žåž‹ Select resolution 鏿“‡è§£æžåº¦ Toggle sound support 切æ›è²éŸ³æ”¯æ´ New Session 新工作階段 running 執行中 suspended å·²æš«åœ KDE RDP connection RDP連線 XDMCP Connection to local desktop é€£ç·šè‡³æœ¬åœ°æ¡Œé¢ Published applications fullscreen 全螢幕 Display 顯示 window 視窗 Maximum Enabled 啟用 Disabled åœç”¨ SessionManageDialog E&xit 離開(&x) &New session 建立新的工作階段(&N) &Session preferences 工作階段å好設定(&S) &Delete session 刪除工作階段(&D) &Create session icon on desktop... 在桌é¢ä¸Šå»ºç«‹å·¥ä½œéšŽæ®µåœ–示(&C)... Delete Delete 刪除 Session management 管ç†å·¥ä½œéšŽæ®µ SessionWidget Session name: 工作階段å稱: << change icon << æ›´æ›åœ–示 &Server 伺æœå™¨(&S) Host: 主機: Login: 登入帳號: SSH port: SSH連接埠: Use RSA/DSA key for ssh connection: 使用RSA/DSA密鑰於SSH連線: Try auto login (ssh-agent or default ssh key) 嘗試自動登入 (sshä»£ç†æˆ–é è¨­SSH密鑰) Kerberos 5 (GSSAPI) authentication Kerberos 5 (GSSAPI) èªè­‰ Use Proxy server for SSH connection Proxy server SSH HTTP Same login as on X2Go Server Same password as on X2Go Server RSA/DSA key: ssh-agent or default ssh key Type: 類別: Port: &Session type 工作階段類型(&S) Session type: 工作階段類型: Connect to Windows terminal server 連線至微軟終端伺æœå™¨ XDMCP Connect to local desktop é€£ç·šè‡³æœ¬åœ°æ¡Œé¢ Custom desktop 自訂桌é¢é¡žåž‹ Single application å–®ä¸€æ‡‰ç”¨ç¨‹å¼ Published applications Command: 指令: Advanced options... 進階設定... Path to executable 執行路徑 Direct RDP Connection RDP port: Open picture 開啟圖片 Pictures 圖片 Open key file 開啟密鑰檔案 All files 所有檔案 Error 錯誤 x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are X2Go用戶端目å‰ç‚ºå¯æ”œå¼æ¨¡å¼ï¼Œæ‚¨æ‡‰è©²è¦ä½¿ç”¨æ‚¨çš„USBè£ç½®çš„è·¯å¾‘ä¾†å­˜å–æ‚¨çš„資料 Server: 伺æœå™¨: XDMCP server: XDMCP 伺æœå™¨: rdesktop command line options: rdesktop 指令é¸é …: New session 新的工作階段 SettingsWidget &Display 顯示(&D) &Keyboard éµç›¤(&K) Sound è²éŸ³ RDP Client Fullscreen 全螢幕 Custom 自定 Window 視窗 Use whole display 使用整個顯示器 Maximum available Set display DPI 設定顯示DPI Xinerama extension (support for two or more physical displays) Xinerama延伸功能(支æ´å…©å€‹ä»¥ä¸Šçš„螢幕) Width: 寬度: Height: 高度: &Display: 顯示器(&D): &Identify all displays è¾¨èªæ‰€æœ‰é¡¯ç¤ºå™¨(&I) Keep current keyboard Settings ä¿æŒç›®å‰çš„éµç›¤è¨­å®š Keyboard layout: éµç›¤ä½ˆå±€: Keyboard model: éµç›¤åž‹è™Ÿ: Enable sound support å•Ÿç”¨éŸ³æ•ˆæ”¯æ´ Start sound daemon 開啟è²éŸ³èƒŒæ™¯ç¨‹å¼ Use running sound daemon 使用目å‰çš„éŸ³æ•ˆèƒŒæ™¯ç¨‹å¼ Use SSH port forwarding to tunnel sound system connections through firewalls 使用SSH連接埠轉é€ä¾†å»ºç«‹ å¯é€šéŽé˜²ç«ç‰†çš„è²éŸ³é€šé“ Use default sound port 使用é è¨­çš„è²éŸ³é€£æŽ¥åŸ  Sound port: è²éŸ³é€£æŽ¥åŸ : Client side printing support ç”¨æˆ¶ç«¯åˆ—å°æ”¯æ´ Additional parameters: Command line: us us pc105/us pc105/us password ShareWidget &Folders 資料夾(&F) Path 路徑 Automount 自動掛載 Add 新增 Delete 刪除 Path: 路徑: Filename encoding æª”æ¡ˆç·¨ç¢¼æ–¹å¼ local: 本地端: remote: é ç«¯: Use ssh port forwarding to tunnel file system connections through firewalls 使用SSH連接埠轉é€ä¾†å»ºç«‹å¯é€šéŽé˜²ç«ç‰†çš„æª”æ¡ˆç³»çµ±é€šé“ Select folder 鏿“‡è³‡æ–™å¤¾ Error 錯誤 x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are X2Go用戶端目å‰ç‚ºå¯æ”œå¼æ¨¡å¼ï¼Œæ‚¨æ‡‰è©²è¦ä½¿ç”¨æ‚¨çš„USBè£ç½®çš„è·¯å¾‘ä¾†å­˜å–æ‚¨çš„資料 WINDOWS-1252 ISO8859-1 SshMasterConnection SSH proxy connection error SSH proxy connection error: Failed to create SSH proxy tunnel Can not initialize libssh libssh無法åˆå§‹åŒ– Can not create ssh session 無法建立SSH工作階段 Can not connect to proxy server Can not connect to 無法連線至 Authentication failed 驗證失敗 channel_forward_listen failed channel_forward_listen失敗 Can not open file 無法開啟檔案 Can not create remote file 無法創建é ç«¯æª”案 Can not write to remote file 無法寫入資料至é ç«¯æª”案 can not connect to 無法連線至 channel_open_forward failed channel_open_forward失敗 channel_open_session failed channel_open_session失敗 channel_request_exec failed channel_request_exec失敗 error writing to socket error reading channel channel_write failed error reading tcp socket SshProcess Error creating socket Error binding XSettingsWidget Open File 開啟檔案 Executable (*.exe) 執行檔 (*.exe) XSettingsWidgetUI Form 表單 You must restart the X2Go Client for the changes to take effect You must restart the X2go Client for the changes to take effect æ‚¨å¿…éœ€é‡æ–°å•Ÿå‹•X2go用戶端以讓設定變更生效 use integrated X-Server 使用內建的X伺æœå™¨ do not use primary clipboard use custom X-Server 使用自定的X伺æœå™¨ custom X-Server 自定X伺æœå™¨ executable: 執行路徑: start X-Server on X2Go Client start ç•¶X2Go用戶端啟動時啟動X伺æœå™¨ command line options: 指令列é¸é …: X-Server command line options X伺æœå™¨æŒ‡ä»¤åˆ—é¸é … window mode: 視窗模å¼: fullscreen mode: 全螢幕模å¼: single application: 單一應用程å¼: x2goclient-4.0.1.1/x2gologdebug.cpp0000644000000000000000000000303712214040350013705 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "x2gologdebug.h" #include "x2goclientconfig.h" #ifdef LOGFILE #include X2goLogDebug::X2goLogDebug():QTextStream() { logFile.setFileName(LOGFILE); if(logFile.open(QIODevice::WriteOnly|QIODevice::Text|QIODevice::Append)) { setDevice(&logFile); } } X2goLogDebug::~X2goLogDebug() { logFile.close(); } #endif x2goclient-4.0.1.1/x2gologdebug.h0000644000000000000000000000524112214040350013351 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef X2GOLOGDEBUG_H #define X2GOLOGDEBUG_H #include #include #include "x2goclientconfig.h" #include "onmainwindow.h" /** @author Oleksandr Shneyder */ #define __x2goPrefix "x2go-" #define __x2goDebugPrefix "DEBUG-" #define __x2goInfoPrefix "INFO-" #define __x2goWarningPrefix "WARNING-" #define __x2goErrorPrefix "ERROR-" #define __x2goPostfix "> " #ifdef LOGFILE class X2goLogDebug: public QTextStream { public: X2goLogDebug(); ~X2goLogDebug(); private: QFile logFile; }; #define __x2goDebug X2goLogDebug()<<"\n" #define __x2goInfo X2goLogDebug()<<"\n" #define __x2goWarning X2goLogDebug()<<"\n" #define __x2goError X2goLogDebug()<<"\n" #else #include #define __x2goDebug qDebug().nospace() #define __x2goInfo qDebug().nospace() #define __x2goWarning qWarning().nospace() #define __x2goError qCritical().nospace() #endif //LOGFILE #define x2goDebugf __x2goDebug <<__x2goPrefix<<__x2goDebugPrefix <<__FILE__<<":"<<__LINE__<<__x2goPostfix #define x2goInfof(NUM) __x2goInfo <<__x2goPrefix<<__x2goInfoPrefix < # (c) 2012 Heinz-M. Graesing GNU GPL v2.0+ # Last updated on: Dez/01/2012 by Heinz-M. Graesing # ---------------------------------------------------------------------------- usage="mksizedsymbols.sh -f sourcefile.svg" sizes=( 12 16 32 48 64 128 ) counter="0" while getopts "f:h" options; do case $options in f ) if [ -f $OPTARG ] ;then file=$OPTARG ((counter+=1)) fi ;; h ) echo $usage exit 0 ;; \? ) echo $usage exit 1;; esac done if [ -e "$file" ];then for i in "${sizes[@]}" do echo $i inkscape --without-gui --export-area-page --export-width=$i --export-height=$i --file=$file --export-png=${file%.*}-$i.png done exit 0 else echo $usage exit 1 fi x2goclient-4.0.1.1/x2go-logos/x2go-logo-colored.svg0000644000000000000000000010435612214040350016602 0ustar image/svg+xml 12.06.2007 Heinz-M. Graesing obviously-nice obviously-nice http://www.x2go.org/artwork DE Logo x2goclient-4.0.1.1/x2go-logos/x2go-logo-rotated.svg0000644000000000000000000027414612214040350016622 0ustar image/svg+xml x2go Logo 12.06.2007 Heinz-M. Graesing obviously-nice obviously-nice http://www.x2go.org/artwork DE Logo image/svg+xml x2go Logo 12.06.2007 Heinz-M. Graesing obviously-nice obviously-nice http://www.x2go.org/artwork DE Logo image/svg+xml x2go Logo 12.06.2007 Heinz-M. Graesing obviously-nice obviously-nice http://www.x2go.org/artwork DE Logo x2goclient-4.0.1.1/x2go-logos/x2go-logo.svg0000644000000000000000000003027412214040350015152 0ustar image/svg+xml x2go Logo 12.06.2007 Heinz-M. Graesing obviously-nice obviously-nice http://www.x2go.org/artwork DE Logo x2goclient-4.0.1.1/x2go-logos/x2go-mascot.svg0000644000000000000000000005431512214040350015502 0ustar image/svg+xml x2go mascot "phoca" 02.06.2009 Heinz-M. Graesing Heinz-M. Graesing obviously-nice http://www.x2go.org/artwork DE x2go mascot x2goclient-4.0.1.1/x2goplugin.rc0000644000000000000000000000202612214040350013232 0ustar 1 TYPELIB "x2goplugin.rc" 1 VERSIONINFO FILEVERSION 4,0,1,1 PRODUCTVERSION 4,0,1,1 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x4L FILETYPE 0x2L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904e4" BEGIN VALUE "CompanyName", "Obviously Nice\0" VALUE "FileDescription", "Allows you to start X2Go session in a webbrowser\0" VALUE "FileExtents", "x2go\0" VALUE "FileOpenName", "Configuration File for X2Go Session (*.x2go)\0" VALUE "FileVersion", "4, 0, 1 ,1\0" VALUE "InternalName", "x2goplugin\0" VALUE "LegalCopyright", "Copyright © 2010-2013 Obviously Nice\0" VALUE "MIMEType", "application/x2go\0" VALUE "OriginalFilename", "npx2goplugin.dll\0" VALUE "ProductName", "X2GoClient Plug-in 4.0.1.1\0" VALUE "ProductVersion", "4, 0, 1, 1\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1252 END END x2goclient-4.0.1.1/x2gosettings.cpp0000644000000000000000000000475012214040350013760 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "x2gosettings.h" #include "x2goclientconfig.h" #include "x2gologdebug.h" #include "onmainwindow.h" #include X2goSettings::X2goSettings(QString fileContent, QSettings::Format format) { cfgFile=new QTemporaryFile(); cfgFile->open(); QTextStream out(cfgFile); out<close(); set=new QSettings ( cfgFile->fileName(), format ); } X2goSettings::X2goSettings ( QString group ) { cfgFile=0l; if (group=="sessions" && ONMainWindow::getSessionConf().length()>0) { set=new QSettings ( ONMainWindow::getSessionConf(), QSettings::IniFormat ); return; } #ifndef Q_OS_WIN set=new QSettings ( ONMainWindow::getHomeDirectory() + "/.x2goclient/"+group, QSettings::NativeFormat ); #else if ( !ONMainWindow::getPortable() ) { set=new QSettings ( "Obviously Nice","x2goclient" ); set->beginGroup ( group ); } else { set=new QSettings ( ONMainWindow::getHomeDirectory() + "/.x2goclient/"+group, QSettings::IniFormat ); } #endif } X2goSettings::~X2goSettings() { delete set; if (cfgFile) delete cfgFile; } x2goclient-4.0.1.1/x2gosettings.h0000644000000000000000000000320112214040350013413 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef X2GOSETTINGS_H #define X2GOSETTINGS_H #include class QTemporaryFile; /** @author Oleksandr Shneyder */ class X2goSettings { public: X2goSettings ( QString group ); X2goSettings ( QString fileContent, QSettings::Format format); ~X2goSettings(); QSettings* setting() { return set; } private: QSettings* set; QTemporaryFile* cfgFile; }; #endif x2goclient-4.0.1.1/xsettingsui.ui0000644000000000000000000001534412214040350013542 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) XSettingsWidgetUI 0 0 583 495 Form 12 75 true You must restart the X2Go Client for the changes to take effect true Qt::Vertical 20 97 use integrated X-Server true do not use primary clipboard use custom X-Server false custom X-Server executable: true start X-Server on X2Go Client start false command line options: X-Server command line options window mode: fullscreen mode: single application: rbOther toggled(bool) groupBox setEnabled(bool) 142 198 196 373 cbOnstart toggled(bool) label_2 setVisible(bool) 83 300 88 332 cbOnstart toggled(bool) leCmdOptions setVisible(bool) 152 300 406 332 cbOnstart toggled(bool) groupBox_2 setHidden(bool) 73 300 53 474 pbExec clicked() XSettingsWidgetUI slotSetExecutable() 561 269 498 333 rbXming toggled(bool) cbNoPrimary setEnabled(bool) 68 132 129 162 slotSetExecutable() x2goclient-4.0.1.1/xsettingswidget.cpp0000644000000000000000000000734712214040350014561 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "xsettingswidget.h" #include "x2gosettings.h" #include XSettingsWidget::XSettingsWidget(QWidget* parent) { setupUi(this); X2goSettings st ( "settings" ); rbXming->setChecked(st.setting()->value("useintx",true).toBool()); rbOther->setChecked(!(st.setting()->value("useintx",true).toBool())); cbNoPrimary->setChecked(st.setting()->value("noprimaryclip",false).toBool()); leExec->setText(st.setting()->value("xexec","C:\\program files\\vcxsrv\\vcxsrv.exe").toString()); leCmdOptions->setText(st.setting()->value("options","-multiwindow -notrayicon -clipboard").toString()); cbOnstart->setChecked(true); cbOnstart->setChecked(st.setting()->value("onstart",true).toBool()); leWinMod->setText(st.setting()->value("optionswin","-screen 0 %wx%h -notrayicon -clipboard").toString()); leFSMod->setText(st.setting()->value("optionsfs","-fullscreen -notrayicon -clipboard").toString()); leSingApp->setText(st.setting()->value("optionssingle","-multiwindow -notrayicon -clipboard").toString()); // spDelay->setValue(st.setting()->value("delay",3).toInt()); pbExec->setIcon( QPixmap ( ":/icons/16x16/file-open.png" ) ); } XSettingsWidget::~XSettingsWidget() { } void XSettingsWidget::slotSetExecutable() { QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "C:\\", tr("Executable (*.exe)")); if (fileName.length()) leExec->setText(fileName); } void XSettingsWidget::setDefaults() { rbXming->setChecked(true); leExec->setText("C:\\program files\\vcxsrv\\vcxsrv.exe"); leCmdOptions->setText("-multiwindow -notrayicon -clipboard"); cbOnstart->setChecked(true); leWinMod->setText("-screen 0 %wx%h -notrayicon -clipboard"); leFSMod->setText("-fullscreen -notrayicon -clipboard"); leSingApp->setText("-multiwindow -notrayicon -clipboard"); // spDelay->setValue(3); } void XSettingsWidget::saveSettings() { X2goSettings st ( "settings" ); st.setting()->setValue("useintx",rbXming->isChecked()); st.setting()->setValue("xexec",leExec->text()); st.setting()->setValue("options",leCmdOptions->text()); st.setting()->setValue("onstart",cbOnstart->isChecked()); st.setting()->setValue("noprimaryclip", cbNoPrimary->isChecked()); st.setting()->setValue("optionswin",leWinMod->text()); st.setting()->setValue("optionsfs",leFSMod->text()); st.setting()->setValue("optionssingle",leSingApp->text()); // st.setting()->setValue("delay",spDelay->value()); st.setting()->sync(); } x2goclient-4.0.1.1/xsettingswidget.h0000644000000000000000000000311412214040350014212 0ustar /************************************************************************** * Copyright (C) 2005-2012 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef XSETTINGSWIDGET_H #define XSETTINGSWIDGET_H #include #include "ui_xsettingsui.h" class XSettingsWidget : public QWidget, private Ui_XSettingsWidgetUI { Q_OBJECT public: XSettingsWidget(QWidget* parent = 0); virtual ~XSettingsWidget(); void setDefaults(); void saveSettings(); private slots: void slotSetExecutable(); }; #endif // XSETTINGSWIDGET_H